用于可編程電路的緩存調(diào)試系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及用于可編程電路的緩存調(diào)試系統(tǒng)。提供一種具有片上系統(tǒng)電路系統(tǒng)的集成電路,該片上系統(tǒng)電路系統(tǒng)包括片上系統(tǒng)互連件和微處理器單元子系統(tǒng)。子系統(tǒng)可包括執(zhí)行存儲器中存儲的指令的微處理器核。緩存可用于為微處理器核緩存數(shù)據(jù)。存儲器一致性控制單元可用于在微處理器單元子系統(tǒng)操作期間保持存儲器一致性。存儲器一致性控制單元可通過總線耦合到片上系統(tǒng)互連件。可在總線中插入命令轉(zhuǎn)換器。命令轉(zhuǎn)換器可具有與互連件通信的從接口和與存儲器一致性控制單元通信的主接口。集成電路可具有可編程電路系統(tǒng),其被編程以實(shí)現(xiàn)耦合到互連件的調(diào)試主機(jī)。在調(diào)試操作期間,命令轉(zhuǎn)換器可轉(zhuǎn)換來自調(diào)試主機(jī)的命令。
【專利說明】用于可編程電路的緩存調(diào)試系統(tǒng)
[0001]本申請要求于2013年7月25日提交的美國專利申請?zhí)?3/951,104的優(yōu)先權(quán),通過引用將其全部內(nèi)容并入本文。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及調(diào)試集成電路(例如具有硬連接電路系統(tǒng)如片上系統(tǒng)電路系統(tǒng)的可編程集成電路)的操作。
【背景技術(shù)】
[0003]可編程集成電路,例如現(xiàn)場可編程門陣列(FPGA),包含能夠由用戶編程以執(zhí)行定制功能的邏輯電路系統(tǒng)。片上系統(tǒng)(SOC)集成電路包括微處理器電路系統(tǒng)、存儲器、互連總線和外圍設(shè)備。一些集成電路包括基于在許多現(xiàn)場可編程門陣列電路中建立的可編程邏輯電路系統(tǒng)類型的第一部分,以及基于硬連接片上系統(tǒng)電路系統(tǒng)的第二部分。這些集成電路(其有時(shí)被稱為片上系統(tǒng)現(xiàn)場可編程門陣列(S0CFPGA))由于可編程電路系統(tǒng)的存在而表現(xiàn)出靈活性以及由于硬連接片上系統(tǒng)電路系統(tǒng)的存在而表現(xiàn)出巨大的處理能力。
[0004]一些片上系統(tǒng)集成電路的調(diào)試方案是侵入式的,并且要求中斷處理電路系統(tǒng)。雖然現(xiàn)有的非侵入式調(diào)試方案不要求在調(diào)試期間中斷處理電路系統(tǒng),但僅允許存取有限的性能監(jiān)控信息和指令跟蹤。
[0005]因此,期望能夠在具有處理器和存儲器的集成電路上執(zhí)行改進(jìn)的調(diào)試操作。
【發(fā)明內(nèi)容】
[0006]可提供具有片上系統(tǒng)電路系統(tǒng)的集成電路,該片上系統(tǒng)電路系統(tǒng)包括片上系統(tǒng)互連件和微處理器單元子系統(tǒng)。微處理器單元子系統(tǒng)還可包括一級緩存、二級緩存、存儲器管理單元、存儲器一致性控制單元和執(zhí)行存儲器中存儲的指令的微處理器核。
[0007]緩存可用于為微處理器核緩存數(shù)據(jù)。存儲器一致性控制單元可用于在微處理器單元子系統(tǒng)的操作期間保持存儲器一致性。
[0008]存儲器一致性控制單元可通過總線耦合到片上系統(tǒng)互連件。命令轉(zhuǎn)換器可在總線中插入。命令轉(zhuǎn)換器可具有與互連件通信的從接口和與存儲器一致性控制單元中的從接口通信的主接口。
[0009]集成電路可為片上系統(tǒng)現(xiàn)場可編程門陣列或包括可編程電路系統(tǒng)的其它集成電路??删幊屉娐废到y(tǒng)可包括互連可編程邏輯區(qū)域的可編程互連件??删幊屉娐废到y(tǒng)可通過從外部設(shè)備(例如程序員或配置集成電路)將配置數(shù)據(jù)加載到可編程邏輯區(qū)域中的存儲器兀件被編程。
[0010]可對可編程電路系統(tǒng)進(jìn)行編程以實(shí)現(xiàn)調(diào)試主機(jī)(debug master,調(diào)試主機(jī)/調(diào)試主接口)。調(diào)試主機(jī)可使用總線耦合到外部調(diào)試工具。用戶可使用調(diào)試工具提供指令給調(diào)試主機(jī),以執(zhí)行所需的調(diào)試操作。響應(yīng)所述指令,調(diào)試主機(jī)可以發(fā)布命令??赏ㄟ^片上系統(tǒng)互連件將命令提供給命令轉(zhuǎn)換器中的從接口。命令轉(zhuǎn)換器可以轉(zhuǎn)換在從接口上接收的命令,并且可以使用命令轉(zhuǎn)換器中的主接口將相應(yīng)的轉(zhuǎn)換命令提供給存儲器一致性控制單元。
[0011]本發(fā)明進(jìn)一步特征、性質(zhì)和各種優(yōu)點(diǎn)從附圖及以下優(yōu)選實(shí)施例的詳細(xì)描述中將更加明顯。
【專利附圖】
【附圖說明】
[0012]圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于具有硬連接片上系統(tǒng)電路系統(tǒng)的集成電路(如可編程集成電路)的說明性調(diào)試系統(tǒng)的示圖,其中,硬連接片上系統(tǒng)電路系統(tǒng)可提供有編程的和硬連接的調(diào)試主機(jī)和其他資源用于支持調(diào)試操作。
[0013]圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例,使用圖1的系統(tǒng)執(zhí)行調(diào)試操作所涉及的說明性步驟的流程圖。
[0014]圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例,使用圖1的系統(tǒng)執(zhí)行一致性調(diào)試操作所涉及的說明性步驟的流程圖。
[0015]圖4是根據(jù)本發(fā)明的實(shí)施例,使用圖1的系統(tǒng)以在不中斷處理電路系統(tǒng)或修改應(yīng)用程序代碼的情況下,通過執(zhí)行對緩存的后門存取來執(zhí)行調(diào)試所涉及的說明性步驟的流程圖。
【具體實(shí)施方式】
[0016]一種示例性系統(tǒng)類型可用于執(zhí)行調(diào)試操作,如圖1的系統(tǒng)10所示。如圖1所示,受測集成電路(例如集成電路10)可耦合到外部設(shè)備(例如調(diào)試工具4和編程設(shè)備6)。編程設(shè)備6可用于對集成電路10進(jìn)行編程,以執(zhí)行所期望的定制邏輯功能。調(diào)試工具4可用于在集成電路10上執(zhí)行測試。
[0017]作為一個(gè)示例,集成電路10可為具有可編程邏輯類型的可編程集成電路,其有時(shí)被稱為片上系統(tǒng)現(xiàn)場可編程門陣列(S0CFPGA),或可以是具有可編程電路系統(tǒng)30的其它可編程器件??删幊屉娐废到y(tǒng)30可包括輸入/輸出電路系統(tǒng)12,用于驅(qū)動信號離開器件10并用于經(jīng)由輸入/輸出引腳14從其它器件接收信號?;ミB資源16(如全局和局部垂直和水平導(dǎo)線和總線)可用于在器件10上路由信號?;ミB資源16可包括導(dǎo)線和在各導(dǎo)線之間的可編程連接,因此有時(shí)可被稱為可編程互連件16。
[0018]可編程電路系統(tǒng)30可包括可編程邏輯塊,例如可編程邏輯區(qū)域18??删幊踢壿媴^(qū)域18可包括組合和時(shí)序邏輯電路系統(tǒng),并且可經(jīng)配置以執(zhí)行定制邏輯功能??删幊袒ミB件16可包含可編程電路系統(tǒng),因此可被認(rèn)為是一種可編程邏輯類型。
[0019]集成電路10中的每個(gè)可編程邏輯塊18可包含可編程存儲器元件20。能夠使用引腳14和輸入/輸出電路系統(tǒng)12向存儲器元件20加載配置數(shù)據(jù)(也稱為編程數(shù)據(jù))。能夠從外部資源(例如配置集成電路即,本身已經(jīng)加載有來自程序員的配置數(shù)據(jù)的配置集成電路)加載配置數(shù)據(jù),或從其它外部編程設(shè)備(例如基于在計(jì)算機(jī)或其它計(jì)算設(shè)備上運(yùn)行的編程軟件的編程工具)加載配置數(shù)據(jù)。用于提供配置數(shù)據(jù)給器件10的外部編程設(shè)備在圖1中被為編程設(shè)備6。
[0020]一旦加載有配置數(shù)據(jù),集成電路10的可編程電路系統(tǒng)30中的存儲器元件的每個(gè)提供相應(yīng)的靜態(tài)控制輸出信號,其控制可編程邏輯18中的相關(guān)邏輯部件的狀態(tài)。存儲器元件20可使用任何適合的易失性和/或非易失性存儲器結(jié)構(gòu),例如隨機(jī)存取存儲器(RAM)單元、熔斷器、反熔絲、可編程只讀存儲器存儲單元、掩模編程和激光編程結(jié)構(gòu)等。因?yàn)樵诰幊唐陂g存儲器元件20加載有配置數(shù)據(jù),因此存儲器元件20有時(shí)被稱為配置存儲器或配置RAM0
[0021]如果需要,可編程電路系統(tǒng)30可提供有內(nèi)部存儲器(例如存儲器塊24)以用于存儲可編程邏輯18中實(shí)現(xiàn)的定制電路產(chǎn)生和使用的數(shù)據(jù)。專用電路(有時(shí)稱為硬連接電路)也可包括在可編程電路系統(tǒng)30中。例如,數(shù)字信號處理電路可合并到可編程電路系統(tǒng)30中。
[0022]除了使用可編程電路系統(tǒng)30的資源為用戶實(shí)現(xiàn)所期望的定制邏輯電路之外,也可使用來自編程設(shè)備6的配置數(shù)據(jù)對可編程電路系統(tǒng)30進(jìn)行編程,以實(shí)現(xiàn)測試相關(guān)的電路,例如調(diào)試主機(jī)40。
[0023]集成電路10可包含硬連接電路系統(tǒng)32。存儲器接口電路系統(tǒng)可用于在集成電路10和外部存儲器42 (例如,隨機(jī)存取存儲器)之間提供接口。電路系統(tǒng)32還可包括內(nèi)部隨機(jī)存取存儲器44。高速緩沖存儲器46 (例如一級(LI)和二級(L2)高速緩沖存儲器)可用于為存儲器44和/或42緩存數(shù)據(jù)。
[0024]集成電路10可為片上系統(tǒng)現(xiàn)場可編程門陣列,其中可編程電路系統(tǒng)30用作現(xiàn)場可編程門陣列塊,并且其中電路系統(tǒng)32用作片上系統(tǒng)塊。可編程電路系統(tǒng)30的存在允許定制集成電路10,以產(chǎn)生多種多樣的不同的邏輯設(shè)計(jì)。片上系統(tǒng)電路系統(tǒng)32的存在允許采用硬連接電路處理非常適合硬連接電路的任務(wù),例如視頻處理、微處理器應(yīng)用、通信(例如,使用通用異步收發(fā)器(UART))和磁盤驅(qū)動器控制功能等。
[0025]硬連接電路系統(tǒng)32可包括用于支持調(diào)試操作的硬連接電路,例如調(diào)試主機(jī)48。硬連接調(diào)試主機(jī)48和/或調(diào)試主機(jī)40 (其在可編程電路系統(tǒng)30的可編程邏輯構(gòu)造中實(shí)現(xiàn))可通過路徑(如路徑50)與調(diào)試工具4通信。路徑50可為聯(lián)合測試行動組(JTAG)路徑或其它適合的通信路徑。
[0026]硬連接電路32可包括互連件,例如互連件52 (有時(shí)被稱為片上系統(tǒng)互連件)。調(diào)試主機(jī)48可具有主總線接口,例如主接口 54,其中,調(diào)試主機(jī)48利用主接口 54與互連件52中的相關(guān)從接口 56通信。調(diào)試主機(jī)40的主接口 58可類似地與互連件52中的從接口60通信。
[0027]微處理器單元子系統(tǒng)64可用于處理硬連接電路系統(tǒng)32的處理任務(wù)。子系統(tǒng)64可包括存儲器一致性控制單元70、一個(gè)或更多個(gè)微處理器核68或其它微處理器電路系統(tǒng)、緩存46和存儲器管理單元66。存儲器一致性控制單元70可用于在存儲器存取操作期間保持緩存和存儲器的一致性。
[0028]外圍設(shè)備62可使用從電路和主電路經(jīng)由互連件52耦合到集成電路10中的資源。外圍設(shè)備62可包括通信模塊(例如,UART電路)、圖形處理單元、視頻加速器、調(diào)制解調(diào)器、顯示控制器、硬盤驅(qū)動控制器和其它用于集成電路10的支持電路。與使用可編程電路系統(tǒng)30相比,使用硬連接電路系統(tǒng)來執(zhí)行通過外圍設(shè)備62和微處理器核68執(zhí)行的功能通常更加高效,但這樣的功能,如果需要,可使用可編程電路系統(tǒng)30部分或完整實(shí)現(xiàn)。
[0029]總線82可在子系統(tǒng)64和互連件52之間耦合??稍诳偩€82中插入命令轉(zhuǎn)換器76。命令轉(zhuǎn)換器76保持存儲器一致性,并用作互連件52和微處理器單元子系統(tǒng)64之間的接口。
[0030]互連件52可具有接口,用于支持與資源(例如子系統(tǒng)64 (經(jīng)由路徑160)、內(nèi)部存儲器44(經(jīng)由路徑162)和外部存儲器42 (經(jīng)由路徑164))通信。因此,在內(nèi)部存儲器內(nèi)容可能已經(jīng)被緩存時(shí),調(diào)試主機(jī)40具有兩條路徑存取內(nèi)部存儲器內(nèi)容(其中的第二條包括一致性存取):1)直接經(jīng)由互連件52和路徑162 ;2a)經(jīng)由互連件52、轉(zhuǎn)換器76、存儲器一致性控制單元70、互連件52,內(nèi)部存儲器44或2b)互連件52、轉(zhuǎn)換器76、存儲器一致性控制單元70以及L1/L2緩存46。
[0031]測試復(fù)雜電路(例如集成電路10)能夠具有挑戰(zhàn)性。利用圖1所示類型的配置,諸如調(diào)試工具4的設(shè)備可用于幫助測試集成電路10,而集成電路10正在系統(tǒng)8中使用。在操作期間,微處理器核68可執(zhí)行存儲器(例如,存儲器44、42和/或46)中存儲的指令,并且可編程電路系統(tǒng)30可執(zhí)行定制邏輯功能。利用調(diào)試工具4執(zhí)行的調(diào)試操作能夠用于輔助識別性能問題,例如在微處理器電路68上運(yùn)行的代碼的問題和/或集成電路10中的其它電路系統(tǒng)操作的問題。
[0032]調(diào)試工具4可提供用戶接口,使用該用戶接口,用戶能夠控制對集成電路10的測試(調(diào)試)操作。調(diào)試工具4可以使用專用測試硬件、在一個(gè)或更多個(gè)計(jì)算機(jī)上運(yùn)行的測試軟件或在計(jì)算設(shè)備上運(yùn)行的其它測試軟件來實(shí)現(xiàn)。聯(lián)網(wǎng)或單機(jī)計(jì)算機(jī)系統(tǒng)可用于實(shí)現(xiàn)調(diào)試工具4。調(diào)試工具4中的鍵盤、觸摸控制器、顯示器和其它輸入輸出設(shè)備可用于收集來自用戶的輸入以及向用戶提供輸出。
[0033]優(yōu)選地,調(diào)試工具4允許用戶定義將要在集成電路10的調(diào)試期間執(zhí)行的調(diào)試操作。使用調(diào)試工具4可執(zhí)行的調(diào)試操作的示例包括從所期望的存儲器位置讀取數(shù)據(jù)、寫入數(shù)據(jù)到期望的存儲器位置、讀取以及寫入與具體緩存位置關(guān)聯(lián)的數(shù)據(jù)和觀測系統(tǒng)操作等。在設(shè)置操作期間,可給調(diào)試工具4提供關(guān)于將要調(diào)試的具體集成電路性能(例如,關(guān)于電路32的片上系統(tǒng)布局的信息、關(guān)于電路30的資源的信息等)的信息(例如,數(shù)據(jù)庫信息和/或來自用戶的手動輸入信息)。
[0034]使用這些信息,調(diào)試工具4可與集成電路10中的一個(gè)或更多個(gè)調(diào)試主機(jī)(例如調(diào)試主機(jī)40和48)交互。每個(gè)調(diào)試主機(jī)與調(diào)試工具接口,并提供耦合到片上系統(tǒng)互連件52的總線主接口(參見,例如,主接口 54和58)。在測試期間,調(diào)試主機(jī)作為中間物,其允許調(diào)試工具4與耦合到片上系統(tǒng)互連件52的資源(例如外圍設(shè)備62和微處理器單元子系統(tǒng)64)通信。
[0035]如果需要,調(diào)試主機(jī)可經(jīng)配置以包括期望的存儲器地址和與調(diào)試操作關(guān)聯(lián)的其它信息。通過將此信息配置到調(diào)試主機(jī)(例如,通過使用編程設(shè)備6或其它編程技術(shù)在可編程電路系統(tǒng)30中實(shí)現(xiàn)調(diào)試主機(jī)40),能夠提高測試速度。
[0036]在可編程電路系統(tǒng)30中實(shí)現(xiàn)調(diào)試主機(jī)的優(yōu)點(diǎn)在于測試是可能的,其中,作為一個(gè)示例,調(diào)試主機(jī)經(jīng)編程具有150個(gè)預(yù)定義讀取位置,其中每個(gè)位置被讀取一百次,以觀測在核68上運(yùn)行的應(yīng)用程序如何執(zhí)行。另一方面,硬連接調(diào)試主機(jī)(例如調(diào)試主機(jī)48)在其性能方面比較通用,因此在調(diào)試主機(jī)48上實(shí)施的可比較測試程序在每次執(zhí)行測試時(shí),需要重新加載150個(gè)不同的讀取位置中的每一個(gè)一次。
[0037]通常,調(diào)試主機(jī)40或調(diào)試主機(jī)48可用于利用調(diào)試工具4執(zhí)行調(diào)試操作。調(diào)試工具4使用調(diào)試主機(jī)40執(zhí)行測試的配置在此處有時(shí)被描述為說明性示例。
[0038]互連件52可包括用作電路系統(tǒng)32的主總線(有時(shí)稱為SOC互連總線)的總線資源。互連件52也可包括總線主接口和總線從接口。電路系統(tǒng)32可包括一致性端口總線82,以提供對存儲器一致性控制單元的存取??偩€82可在子系統(tǒng)64 (存儲器一致性控制單元70)和互連件52之間耦合??稍诳偩€82中插入片上系統(tǒng)命令轉(zhuǎn)換器76。片上系統(tǒng)命令轉(zhuǎn)換器76可具有通過總線82與主接口 80通信的片上系統(tǒng)命令轉(zhuǎn)換器從接口 78,和用于通過總線82與存儲器一致性控制單元從接口 72通信的片上系統(tǒng)命令轉(zhuǎn)換器主接口 74。如果需要,主接口 74和從接口 72之間的總線82的區(qū)段可表示從接口 78和主接口 80之間的總線82的區(qū)段的子集。主接口 80可與片上系統(tǒng)互連件從接口(例如從接口 56和60)通信。
[0039]圖2示出可利用系統(tǒng)8執(zhí)行的示例性調(diào)試操作類型。
[0040]在步驟84,編程設(shè)備6 (例如,外部配置集成電路和/或基于計(jì)算機(jī)的編程工具)可用于將配置數(shù)據(jù)加載到可編程電路系統(tǒng)30中。配置數(shù)據(jù)優(yōu)選包括對可編程電路系統(tǒng)30進(jìn)行編程以在可編程電路系統(tǒng)30中實(shí)現(xiàn)調(diào)試主機(jī)40 (例如,在可編程電路30的部分中),從而執(zhí)行所期望的調(diào)試操作的配置數(shù)據(jù)??删幊屉娐废到y(tǒng)30的其它部分可用于形成用戶邏輯。通過形成定制調(diào)試主機(jī),能夠比使用硬連接調(diào)試主機(jī)更高效地執(zhí)行調(diào)試操作(例如,通過避免重復(fù)重載結(jié)合調(diào)試主機(jī)48描述的操作類型)。電路系統(tǒng)30還可以結(jié)合電路系統(tǒng)32的操作被測試。
[0041]在步驟86,用戶(即,操作調(diào)試工具4的測試人員)可開始系統(tǒng)操作。在操作期間,集成電路10的處理資源(例如,核68)可執(zhí)行集成電路10的存儲電路(例如,電路系統(tǒng)32中的存儲器和緩存)中存儲的指令。存儲器一致性控制單元70可用于保持存儲器一致性。運(yùn)行的軟件(即,在核68上運(yùn)行的應(yīng)用程序)設(shè)置存儲器管理單元66。例如,存儲器管理單元設(shè)置確定具體存儲器地址范圍是否是可緩存、回寫行為、通寫行為、排序行為(強(qiáng)序(strongly ordered)或非強(qiáng)序,存儲器類型特性(器件存儲器或普通存儲器)等。
[0042]在步驟88,用戶可設(shè)置調(diào)試工具4。具體地,用戶可使用鍵盤或其他設(shè)備通知調(diào)試工具4片上系統(tǒng)電路系統(tǒng)32正在使用的地址空間。用戶還優(yōu)選通知調(diào)試工具4調(diào)試主機(jī)的性能(例如,通信時(shí)使用的調(diào)試參數(shù)、調(diào)試主機(jī)40的JTAG標(biāo)識符(ID)等),并且通知調(diào)試工具4在測試期間要作出的讀和寫請求上將要執(zhí)行的關(guān)于地址轉(zhuǎn)換器的詳細(xì)信息。
[0043]測試開始前,用戶可分析集成電路10上加載的應(yīng)用程序(例如,在核68上運(yùn)行的應(yīng)用程序)的性質(zhì),以確定執(zhí)行哪種類型的調(diào)試操作。例如,用戶可能感興趣在應(yīng)用程序操作期間檢查具體存儲器位置處的存儲器內(nèi)容,以揭示關(guān)于應(yīng)用程序是否在令人滿意地操作的信息。用戶可分析應(yīng)用程序的結(jié)構(gòu)和與應(yīng)用程序關(guān)聯(lián)的存儲器管理單元(MMU)設(shè)置,以識別調(diào)試的目標(biāo)存儲器地址。作為另一個(gè)示例,用戶可能感興趣觀測當(dāng)具體數(shù)據(jù)被寫入緩存以強(qiáng)制應(yīng)用程序發(fā)生非預(yù)期的行為時(shí)(強(qiáng)制的無效緩存條目、預(yù)獲取緩存條目),應(yīng)用程序如何執(zhí)行。確定將要執(zhí)行哪種類型的測試后,用戶可繼續(xù)設(shè)置測試系統(tǒng)8。
[0044]在步驟90,用戶可設(shè)置片上系統(tǒng)命令轉(zhuǎn)換器76。用戶可使用調(diào)試工具4 (例如,通過調(diào)試工具將可視用戶接口上的命令行呈現(xiàn)給用戶)來執(zhí)行設(shè)置操作。響應(yīng)用戶的命令行條目或其它指令,調(diào)試工具4可使用調(diào)試主機(jī)40和互連件52與轉(zhuǎn)換器76通信。步驟90處的設(shè)置操作期間,向轉(zhuǎn)換器76提供關(guān)于主片上系統(tǒng)互連總線標(biāo)識符的轉(zhuǎn)換、存儲器地址的轉(zhuǎn)換和緩存屬性的轉(zhuǎn)換的信息。用戶能夠在轉(zhuǎn)換器76中設(shè)置參數(shù),例如,在一個(gè)說明性方案中,主接口 ID、AxUSER和AxCACHE參數(shù)。這些片上系統(tǒng)命令轉(zhuǎn)換器參數(shù)設(shè)置命令轉(zhuǎn)換器76在命令轉(zhuǎn)換器從接口 78和命令轉(zhuǎn)換器主接口 74之間執(zhí)行的轉(zhuǎn)換。
[0045]在步驟92,用戶指示調(diào)試工具4執(zhí)行調(diào)試操作,并且調(diào)試工具4收集來自用戶的這些指令。可使用系統(tǒng)8執(zhí)行的調(diào)試操作的示例包括一致性存儲器調(diào)試、對L2緩存的后門存取、L2緩存的性能分析、應(yīng)用程序緩存活動的監(jiān)測、處理器活動的監(jiān)測、在處理器上運(yùn)行的應(yīng)用程序上強(qiáng)制具體行為等。
[0046]在步驟94,調(diào)試工具4指示調(diào)試主機(jī)40發(fā)布命令,以實(shí)現(xiàn)期望的調(diào)試操作。發(fā)布的命令可以是,例如,存儲器存取命令(讀取命令和/或?qū)懭朊?。作為響應(yīng),調(diào)試主機(jī)40使用主接口 58將命令提供給互連件52中的從接口 60。
[0047]在步驟96,主接口 80接收來自從接口 60的命令,并將命令提供給轉(zhuǎn)換器76的從接口 78。從接口 78接收用于轉(zhuǎn)換器76的命令。步驟96處轉(zhuǎn)換器76接收的命令可為存儲器存取命令,例如讀取命令和/或?qū)懭朊睢?br>
[0048]在步驟98,命令轉(zhuǎn)換器76可根據(jù)在步驟90的設(shè)置操作期間建立的命令轉(zhuǎn)換器設(shè)置參數(shù)來執(zhí)行轉(zhuǎn)換操作。可執(zhí)行的轉(zhuǎn)換操作的示例包括主片上系統(tǒng)互連總線標(biāo)識符的轉(zhuǎn)換、存儲器地址的轉(zhuǎn)換和緩存屬性的轉(zhuǎn)換。轉(zhuǎn)換操作在從接口 78( S卩,經(jīng)由本示例中的互連件52和接口 60和80接收來自調(diào)試主機(jī)40中的主接口 58的命令的接口)和主接口 74之間執(zhí)行。轉(zhuǎn)換命令(例如,基于其命令轉(zhuǎn)換器76已經(jīng)執(zhí)行地址轉(zhuǎn)換的存儲器存取命令)可用于調(diào)試電路系統(tǒng)10。例如,能夠?qū)⒕唧w緩存能力、回寫和通寫行為強(qiáng)制到LI和/或L2緩存上。
[0049]在步驟100,存儲器一致性控制單元70可接收來自轉(zhuǎn)換器76的轉(zhuǎn)換命令(即,從接口 72可通過總線82經(jīng)由主接口 74接收轉(zhuǎn)換命令)。
[0050]在步驟102,隨著集成電路10響應(yīng)轉(zhuǎn)換命令,用戶可觀測轉(zhuǎn)換命令對系統(tǒng)性能的影響(例如,通過收集數(shù)據(jù)、觀測輸出信號等),并且能夠分析這些測試結(jié)果。
[0051]圖2的調(diào)試技術(shù)可用于執(zhí)行一致性調(diào)試操作而不影響應(yīng)用程序和處理器執(zhí)行。
[0052]圖3是包括執(zhí)行一致性調(diào)試操作(即,保持存儲器一致性的調(diào)試操作)所涉及的說明性步驟的流程圖。在圖3的示例中,數(shù)據(jù)被存儲在隨機(jī)存取存儲器(RAM)地址范圍0x8000_0000-0x8000_FFFF上,并且微處理器核68操作這個(gè)數(shù)據(jù)(執(zhí)行讀取、寫入和修改)。
[0053]在步驟104,編程設(shè)備6 (例如,外部配置集成電路和/或基于計(jì)算機(jī)的編程工具)可用于將配置數(shù)據(jù)加載到可編程電路系統(tǒng)30中。如結(jié)合圖2所描述的,配置數(shù)據(jù)優(yōu)選地包括對可編程電路系統(tǒng)30編程以實(shí)施調(diào)試主機(jī)40和主接口 58從而執(zhí)行所期望的調(diào)試操作的配置數(shù)據(jù)。
[0054]在步驟106,用戶可以啟動系統(tǒng)操作,起動系統(tǒng)8以使集成電路10的處理資源(例如,核68)可以執(zhí)行集成電路10的存儲電路(例如,電路系統(tǒng)32中的存儲器和緩存)中所存儲的指令。在系統(tǒng)操作期間,存儲器一致性控制單元70可用于保持存儲器一致性。
[0055]在核68上運(yùn)行的應(yīng)用程序設(shè)置存儲器管理單元66。例如,存儲器管理單元66的存儲器管理單元設(shè)置確定具體存儲器地址范圍是否是可緩存、回寫行為、通寫行為、排序行為(強(qiáng)序或非強(qiáng)序)、存儲器類型行為(器件存儲器或普通存儲器)等。在本示例中,存儲器管理單元設(shè)置操作確定RAM地址范圍0x8000_0000-0x8000_FFFF是否可緩存。
[0056]在步驟108,用戶可設(shè)置調(diào)試工具4。具體地,用戶可使用鍵盤或其他設(shè)備通知調(diào)試工具4片上系統(tǒng)電路系統(tǒng)32正在使用的地址空間。用戶還可以通知調(diào)試工具4調(diào)試主機(jī)的性能(例如,通信時(shí)使用的調(diào)試參數(shù)、調(diào)試主機(jī)40的JTAGID等),并且可以通知調(diào)試工具4在測試期間要作出的讀和寫請求上將要執(zhí)行的關(guān)于地址轉(zhuǎn)換的詳細(xì)信息。
[0057]測試開始前,用戶可分析集成電路10上所加載的應(yīng)用程序(例如,在核68上運(yùn)行的應(yīng)用程序)的性質(zhì),以確定執(zhí)行哪種類型的調(diào)試操作。作為一個(gè)示例,用戶可能有興趣在應(yīng)用程序操作期間檢查具體存儲器位置處的存儲器內(nèi)容。用戶可分析應(yīng)用程序的結(jié)構(gòu)和與應(yīng)用程序關(guān)聯(lián)的存儲器管理單元66的存儲器管理單元(MMU)設(shè)置,以識別調(diào)試的目標(biāo)存儲器地址。
[0058]在步驟110,用戶可設(shè)置片上系統(tǒng)命令轉(zhuǎn)換器76。用戶可使用調(diào)試工具4上的命令行來執(zhí)行設(shè)置操作。響應(yīng)用戶的命令行條目,調(diào)試工具4可使用調(diào)試主機(jī)40和與轉(zhuǎn)換器76通信的互連件52。在步驟110處的設(shè)置操作期間,用戶可使用參數(shù),如AxUSER和AxCACHE參數(shù),來指示命令轉(zhuǎn)換器76如何通過總線82與存儲器一致性控制單元70通信。在操作期間,存儲器一致性控制單元70使用參數(shù),如AxUSER和AxCACHE參數(shù),確定緩存行為。因此關(guān)于存儲器的緩存行為的詳細(xì)信息(即,在圖3的示例中,RAM地址范圍0x8000_0000-0x8000_FFFF是否可緩存)反映在AxUSER和AxCACHE參數(shù)中。
[0059]在這些設(shè)置操作期間,用戶對存儲器一致性控制單元70中的AxUSER和AxCACHE參數(shù)進(jìn)行編程,以匹配存儲器管理單元66的設(shè)置。在本示例中,調(diào)試過程將包括監(jiān)測RAM地址范圍0x8000_0000-0x8000_FFFF上的數(shù)據(jù)。步驟110的設(shè)置操作也包括設(shè)置將由命令轉(zhuǎn)換器76執(zhí)行的命令轉(zhuǎn)換操作(例如,地址轉(zhuǎn)換)。在操作中,轉(zhuǎn)換器76將由命令轉(zhuǎn)換器從接口 78所接收的命令轉(zhuǎn)換器從接口地址轉(zhuǎn)換到命令轉(zhuǎn)換器主接口 74上的相應(yīng)的命令轉(zhuǎn)換器主接口地址。作為一個(gè)示例,步驟110可包括設(shè)置命令轉(zhuǎn)換器76,以將命令轉(zhuǎn)換器從接口地址0x0000_0000轉(zhuǎn)換到命令轉(zhuǎn)換器主接口地址0x8000_0000。
[0060]在步驟112,用戶指示調(diào)試工具4執(zhí)行調(diào)試操作,并且用戶通過調(diào)試工具4收集這些指令。在圖3的示例(一致性調(diào)試)中,用戶使用調(diào)試工具的命令行,指示調(diào)試工具讀取地址0x8000_0000。已經(jīng)通知調(diào)試工具4合適的地址轉(zhuǎn)換操作以執(zhí)行用戶提供的讀取請求。因此,調(diào)試工具4將所請求的讀地址(0x8000_0000)轉(zhuǎn)換到0x0000_0000 (作為一個(gè)示例)。[0061 ] 在步驟114,調(diào)試主機(jī)40發(fā)布存儲器存取請求(即,在本示例中,調(diào)試主機(jī)40發(fā)布存儲器讀取請求到0x0000_0000)。
[0062]在步驟116,命令轉(zhuǎn)換器76接收來自調(diào)試主機(jī)的存儲器存取請求。在本示例中,命令轉(zhuǎn)換器從接口 78接收讀取請求(即,命令轉(zhuǎn)換器76的命令轉(zhuǎn)換器從接口 78接收針對0x0000_0000的讀取請求)。
[0063]在步驟118,命令轉(zhuǎn)換器76可根據(jù)在步驟110的設(shè)置操作期間所建立的命令轉(zhuǎn)換器設(shè)置參數(shù)來執(zhí)行轉(zhuǎn)換操作。具體地,命令轉(zhuǎn)換器76將從調(diào)試工具接收的命令轉(zhuǎn)換器從接口地址轉(zhuǎn)換到相應(yīng)的命令轉(zhuǎn)換器主接口地址(即,在本示例中,RAM地址范圍0x8000_0000-0x8000_FFFF中的地址)。已經(jīng)通知命令轉(zhuǎn)換器76 (在步驟110)合適的地址轉(zhuǎn)換以執(zhí)行來自調(diào)試主機(jī)的讀取請求。命令轉(zhuǎn)換器從接口 78可具有,作為一個(gè)示例,IGB的地址空間,并且命令轉(zhuǎn)換器執(zhí)行的地址轉(zhuǎn)換可允許此IGB的地址空間被映射到微處理器單元子系統(tǒng)64中的IGB的地址空間的四分之一。
[0064]在步驟120,存儲器一致性控制單元70可接收來自轉(zhuǎn)換器76的轉(zhuǎn)換命令(即,從接口 72可通過總線82經(jīng)由主接口 74接收轉(zhuǎn)換命令)。在本示例中,接收與讀取請求關(guān)聯(lián)的命令轉(zhuǎn)換器主接口地址0x8000_0000。
[0065]在步驟122,存儲器一致性控制單元70可處理存儲器存取請求。具體地,存儲器一致性控制單元70可啟動一致性讀取以獲得RAM地址范圍0x8000_0000處的請求數(shù)據(jù)。
[0066]存儲器一致性控制單元70知道RAM/緩存中的數(shù)據(jù)的狀態(tài)。因此,存儲器一致性控制單元70能夠獲得從適當(dāng)位置(即,L2緩存或LI緩存或RAM42/44)讀取的數(shù)據(jù)的有效版本。調(diào)試主機(jī)不需要知道數(shù)據(jù)存儲細(xì)節(jié),因?yàn)檫@些操作通過存儲一致性控制單元70管理。讀取被認(rèn)為是“一致的”,因?yàn)榇鎯ζ饕恢滦钥刂茊卧缽哪墨@得數(shù)據(jù)的有效版本。
[0067]在步驟124,可分析系統(tǒng)的性能。數(shù)據(jù)已經(jīng)被讀取,以響應(yīng)于讀取請求從存儲器一致性控制單元提供給命令轉(zhuǎn)換器,并且從命令轉(zhuǎn)換器提供給調(diào)試主機(jī)。調(diào)試工具接收來自調(diào)試主機(jī)的數(shù)據(jù)用于分析,并用于將調(diào)試結(jié)果呈現(xiàn)給用戶。在調(diào)試過程期間不中斷微處理器單元子系統(tǒng)64的操作。在調(diào)試期間,即使從緩存讀取數(shù)據(jù),也不中斷微處理器單元子系統(tǒng)64和核68。
[0068]圖4中示出用于調(diào)試系統(tǒng)8的另一個(gè)說明性方案。圖4的示例包括對L2緩存的后門存取,而不中斷處理器核68或修改應(yīng)用程序代碼(即,執(zhí)行對緩存后門存取的調(diào)試操作)。在本示例中,存儲器位置范圍0X8000_0000-0X8000_00FF處的數(shù)據(jù)在L2緩存中緩存。核68從這個(gè)位置執(zhí)行或操作此數(shù)據(jù)(讀取、寫入和修改)。
[0069]在步驟126,編程設(shè)備6 (例如,外部配置集成電路和/或基于計(jì)算機(jī)的編程工具)可用于將配置數(shù)據(jù)加載到可編程電路系統(tǒng)30中。加載到可編程電路系統(tǒng)30 ( S卩,到存儲器元件20)的配置數(shù)據(jù)優(yōu)選包括配置可編程電路系統(tǒng)30以實(shí)現(xiàn)用于執(zhí)行期望的調(diào)試操作的調(diào)試主機(jī)40的配置數(shù)據(jù)。通過形成定制調(diào)試主機(jī)的方式,能夠比使用硬連接調(diào)試主機(jī)更有效地執(zhí)行調(diào)試操作(例如,通過避免重復(fù)重載如結(jié)合調(diào)試主機(jī)48所描述的操作)。
[0070]在步驟128,用戶(即,操作調(diào)試工具4的測試人員)可啟動系統(tǒng)8。當(dāng)被啟動時(shí),核68開始運(yùn)行并執(zhí)行應(yīng)用程序(即,代碼)。所運(yùn)行的應(yīng)用程序設(shè)置存儲器管理單元66。在本示例中,存儲器管理單元設(shè)置定義存儲器地址范圍0x8000_0000-0x8000_00FF在L2緩存中可緩存。
[0071]在步驟130,用戶可設(shè)置調(diào)試工具4。具體地,用戶可使用鍵盤或其他設(shè)備通知調(diào)試工具4片上系統(tǒng)電路系統(tǒng)32正在使用地址空間。用戶還優(yōu)選地通知調(diào)試工具4調(diào)試主機(jī)的性能(例如,通信時(shí)使用的調(diào)試參數(shù)、調(diào)試主機(jī)40的JTAGID等),并且通知調(diào)試工具4地址轉(zhuǎn)換以執(zhí)行用戶提供的讀取和寫入請求。
[0072]測試開始前,用戶可分析集成電路10上所加載的應(yīng)用程序(例如,在核68上運(yùn)行的應(yīng)用程序)的性質(zhì),以確定執(zhí)行哪種類型的調(diào)試操作。例如,用戶可能有興趣檢查當(dāng)應(yīng)用程序的行為通過將數(shù)據(jù)寫入具體緩存位置而改變時(shí),應(yīng)用程序是如何執(zhí)行的。
[0073]在步驟132,用戶可使用命令行或與調(diào)試工具4關(guān)聯(lián)的其它接口來設(shè)置片上系統(tǒng)命令轉(zhuǎn)換器76。用戶可使用AxUSER和AxCACHE參數(shù)來指示命令轉(zhuǎn)換器76如何通過總線82與存儲器一致性控制單元70通信。存儲器一致性控制單元70使用AxUSER和AxCACHE參數(shù)確定緩存行為。在圖4的示例中,調(diào)試過程包括在對應(yīng)地址范圍0x8000_0000-0x8000_00FF的L2緩存中重寫數(shù)據(jù),以強(qiáng)制存儲器一致性控制單元70上的非預(yù)期行為。用戶將AxUSER和AxCACHE參數(shù)編程到存儲器一致性控制單元70,以強(qiáng)制地址范圍0x8000_0000_0x8000_00FF在L2緩存中可緩存,以及相對L2緩存回寫。
[0074]用戶能夠通過使用AxUser和AxCACHE參數(shù),以及通過重寫數(shù)據(jù)到L2緩存在存儲器一致性控制單元上強(qiáng)制發(fā)生的非預(yù)期行為的示例包括強(qiáng)制緩存行無效、強(qiáng)制處理器頁表中所定義的不可緩存區(qū)的寫入分配和強(qiáng)制對具體緩存區(qū)域的寫入。步驟132的操作包括設(shè)置將由命令轉(zhuǎn)換器76執(zhí)行的地址轉(zhuǎn)換。在操作中,命令轉(zhuǎn)換器76將由命令轉(zhuǎn)換器從接口78接收的命令轉(zhuǎn)換器從接口地址轉(zhuǎn)換到命令轉(zhuǎn)換器主接口 74上相應(yīng)的命令轉(zhuǎn)換器主接口地址。在本示例中,用戶設(shè)置命令轉(zhuǎn)換器76以將從接口地址0x0000_0000轉(zhuǎn)換到主接口地址 0x8000_0000。
[0075]在步驟134,用戶指示調(diào)試工具4執(zhí)行調(diào)試操作,并且用戶通過調(diào)試工具4收集這些指令。在本示例中(對L2緩存的后門存取),用戶指示調(diào)試工具根據(jù)調(diào)試工具命令行將數(shù)據(jù)寫入到地址0x8000_0000。已經(jīng)通知調(diào)試工具合適的地址轉(zhuǎn)換操作以執(zhí)行用戶提供的寫入命令。因此,調(diào)試工具4將地址0x8000_0000的寫入命令轉(zhuǎn)換到地址0x0000_0000 (在本示例中)。
[0076]在步驟136,調(diào)試主機(jī)40發(fā)布相應(yīng)的存儲器寫入命令。在本示例中,調(diào)試主機(jī)40發(fā)布寫入命令到地址0x0000_0000。
[0077]在步驟138,主接口 80接收命令,并將命令提供給轉(zhuǎn)換器76的從接口 78。從接口78接收命令。在本示例中,從接口 78和轉(zhuǎn)換器76接收0x0000_0000的寫入命令。
[0078]在步驟140,命令轉(zhuǎn)換器76可根據(jù)在步驟90的設(shè)置操作期間建立的命令轉(zhuǎn)換器設(shè)置參數(shù)來執(zhí)行轉(zhuǎn)換操作。具體地,轉(zhuǎn)換器76將來自調(diào)試工具的從接口 78的從接口地址轉(zhuǎn)換到主接口 74的相應(yīng)的主接口地址。已經(jīng)通知轉(zhuǎn)換器76合適的地址轉(zhuǎn)換以執(zhí)行來自調(diào)試主機(jī)的寫入命令。因此,轉(zhuǎn)換器76將命令轉(zhuǎn)換器從接口地址0x0000_0000轉(zhuǎn)換到命令轉(zhuǎn)換器主接口地址0x8000_0000。如關(guān)于圖3的示例所描述的,從接口 78可有IGB的地址空間。轉(zhuǎn)換器76執(zhí)行的地址轉(zhuǎn)換可允許這個(gè)IGB的地址空間映射到子系統(tǒng)64中的IGB的地址空間的四分之一。
[0079]在步驟142,存儲器一致性控制單元70可接收來自轉(zhuǎn)換器76的轉(zhuǎn)換命令(即,從接口 72可通過總線82經(jīng)由主接口 74接收轉(zhuǎn)換的寫入命令)。在圖4示例中,轉(zhuǎn)換器76的從接口 78接收與寫入命令關(guān)聯(lián)的命令轉(zhuǎn)換器主接口地址0x8000_0000。
[0080]在步驟144,存儲器一致性控制單元70處理存儲器寫入命令。在本示例中,存儲器一致性控制單元啟動寫入,以在對應(yīng)指定的存儲器地址0x8000_0000的L2緩存位置中存儲數(shù)據(jù)。向L2緩存寫入數(shù)據(jù)后,可通過觀測應(yīng)用程序執(zhí)行的變化和/或使用調(diào)試工具4觀測系統(tǒng)8來觀測與所寫入數(shù)據(jù)關(guān)聯(lián)的強(qiáng)制行為。通過這種方式,出于調(diào)試目的,能夠在不中斷內(nèi)核68以及子系統(tǒng)64上運(yùn)行的應(yīng)用程序不知道調(diào)試工具4的這種侵入的情況下,能夠改變子系統(tǒng)64的操作。電路10(如,核68)上運(yùn)行的應(yīng)用程序代碼(軟件)未發(fā)生改變。
[0081]附加實(shí)施例:
[0082]附加實(shí)施例1:一種可操作以與外部調(diào)試工具接口的集成電路,其中,用戶利用外部調(diào)試工具提供調(diào)試命令,所述集成電路包括:可編程電路系統(tǒng);從可編程電路系統(tǒng)的部分實(shí)現(xiàn)的調(diào)試主機(jī),其中所述調(diào)試主機(jī)耦合到調(diào)試工具,以接收來自調(diào)試工具的命令;耦合到調(diào)試主機(jī)的片上系統(tǒng)互連件;微處理器子系統(tǒng),其具有處理電路系統(tǒng)、緩存和存儲器一致性控制單元,其中所述微處理器子系統(tǒng)利用總線耦合到片上系統(tǒng)互連件;以及在總線中插入的命令轉(zhuǎn)換器,其中所述命令轉(zhuǎn)換器轉(zhuǎn)換從調(diào)試主機(jī)接收到的命令并通過總線將相應(yīng)的轉(zhuǎn)換命令提供給存儲器一致性控制單元。
[0083]附加實(shí)施例2:如附加實(shí)施例1所述的集成電路,其中所述可編程電路系統(tǒng)包括:可編程互連件;和可編程邏輯陣列區(qū)域,其通過可編程互連件耦合并且包含加載有配置數(shù)據(jù)的存儲器元件。
[0084]附加實(shí)施例3:如附加實(shí)施例2所述的集成電路,進(jìn)一步包括片上系統(tǒng)電路系統(tǒng),其中形成有片上系統(tǒng)互連件、微處理器子系統(tǒng)和命令轉(zhuǎn)換器。
[0085]附加實(shí)施例4:如附加實(shí)施例3所述的集成電路,進(jìn)一步包括在調(diào)試主機(jī)和調(diào)試工具之間耦合的聯(lián)合測試行動組路徑,其中調(diào)試主機(jī)經(jīng)配置以接收來調(diào)試工具的指令,其命令調(diào)試主機(jī)發(fā)布存儲器存取命令。
[0086]附加實(shí)施例5:如附加實(shí)施例4所述的集成電路,其中命令轉(zhuǎn)換器包括:命令轉(zhuǎn)換器從接口,其耦合到片上系統(tǒng)互連件以接收來自調(diào)試主機(jī)的存儲器存取命令;以及命令轉(zhuǎn)換器主接口,其耦合到存儲器一致性控制單元,其中所述命令轉(zhuǎn)換器經(jīng)配置以轉(zhuǎn)換存儲器存取命令并且經(jīng)配置以利用命令轉(zhuǎn)換器主接口將轉(zhuǎn)換的存儲器存取命令提供給存儲器一致性控制單元。
[0087]附加實(shí)施例6:如附加實(shí)施例5所述的集成電路,其中存儲器元件經(jīng)配置以接收來自外部編程設(shè)備的配置數(shù)據(jù)。
[0088]附加實(shí)施例7:如附加實(shí)施例5所述的集成電路,其中片上系統(tǒng)電路系統(tǒng)包括耦合到片上系統(tǒng)互連件的外圍設(shè)備。
[0089]附加實(shí)施例8:如附加實(shí)施例7所述的集成電路,其中外圍設(shè)備包括選自包括下列項(xiàng)的組的外圍設(shè)備=UART電路、圖形處理單元、視頻加速器、調(diào)制解調(diào)器、顯示控制器和硬盤驅(qū)動器控制器。
[0090]附加實(shí)施例9:一種調(diào)試具有可編程電路系統(tǒng)和片上系統(tǒng)電路系統(tǒng)的集成電路的方法,包括:對可編程電路系統(tǒng)編程以在可編程電路系統(tǒng)中實(shí)現(xiàn)調(diào)試主機(jī);使用調(diào)試主機(jī)發(fā)布命令;通過片上系統(tǒng)電路系統(tǒng)中的片上互連件將命令從調(diào)試主機(jī)提供給命令轉(zhuǎn)換器;使用命令轉(zhuǎn)換器轉(zhuǎn)換命令;以及使用片上系統(tǒng)電路系統(tǒng)中的微處理器單元子系統(tǒng)的存儲器一致性控制單元處理來自命令轉(zhuǎn)換器的轉(zhuǎn)換命令。
[0091]附加實(shí)施例10:如附加實(shí)施例9所述的方法,進(jìn)一步包括在通過片上系統(tǒng)互連件將命令提供給命令轉(zhuǎn)換器之前,設(shè)置命令轉(zhuǎn)換器。
[0092]附加實(shí)施例11:如附加實(shí)施例10所述的方法,其中命令轉(zhuǎn)換器包括耦合到片上系統(tǒng)互連件的從總線接口以及與存儲器一致性控制單元中的從接口通信的主總線接口,并且其中設(shè)置命令轉(zhuǎn)換器包括提供參數(shù)給命令轉(zhuǎn)換器,所述參數(shù)設(shè)置將在命令轉(zhuǎn)換器的從總線接口和命令轉(zhuǎn)換器的主總線接口之間執(zhí)行的轉(zhuǎn)換操作。
[0093]附加實(shí)施例12:如附加實(shí)施例11所述的方法,其中轉(zhuǎn)換命令包括轉(zhuǎn)換存儲器存取命令中的存儲器地址。
[0094]附加實(shí)施例13:如附加實(shí)施例10所述的方法,其中設(shè)置命令轉(zhuǎn)換器包括設(shè)置命令轉(zhuǎn)換器以將至少第一存儲器地址轉(zhuǎn)換到至少第二存儲器地址。
[0095]附加實(shí)施例14:如附加實(shí)施例13所述的方法,其中轉(zhuǎn)換命令包括轉(zhuǎn)換存儲器讀取請求。
[0096]附加實(shí)施例15:如附加實(shí)施例14所述的方法,其中微處理器單元子系統(tǒng)包括微處理器核,方法進(jìn)一步包括:響應(yīng)存儲器讀取請求,使用存儲器一致性控制單元啟動一致性讀取以獲得所請求的數(shù)據(jù);以及在不中斷微處理器核的情況下,將數(shù)據(jù)從存儲器一致性單元提供給調(diào)試主機(jī)。
[0097]附加實(shí)施例16:如附加實(shí)施例13所述的方法,其中轉(zhuǎn)換命令包括轉(zhuǎn)換存儲器寫入命令。
[0098]附加實(shí)施例17:如附加實(shí)施例16所述的方法,其中微處理器單元子系統(tǒng)包括微處理器核,所述方法進(jìn)一步包括:響應(yīng)存儲器寫入命令,在不中斷微處理器核的情況下,使用存儲器一致性控制單元啟動數(shù)據(jù)的寫入。
[0099]附加實(shí)施例18:—種調(diào)試包含可編程電路系統(tǒng)和微處理器單元子系統(tǒng)的集成電路的方法,包括:對可編程電路系統(tǒng)進(jìn)行編程以形成調(diào)試主機(jī);使用外部調(diào)試工具,接收來自用戶的將要執(zhí)行的調(diào)試操作的指令;響應(yīng)指令,命令調(diào)試主機(jī)在集成電路中的互連件上發(fā)布命令;使用命令轉(zhuǎn)換器,轉(zhuǎn)換由調(diào)試主機(jī)發(fā)布的命令;以及使用微處理器單元子系統(tǒng)中的存儲器一致性控制單元接收轉(zhuǎn)換命令。
[0100]附加實(shí)施例19:如附加實(shí)施例18所述的方法,其中集成電路包括片上系統(tǒng)現(xiàn)場可編程門陣列集成電路,并且其中轉(zhuǎn)換命令包括轉(zhuǎn)換存儲器讀取請求以執(zhí)行一致性調(diào)試操作。
[0101]附加實(shí)施例20:如附加實(shí)施例18所述的方法,其中集成電路包括片上系統(tǒng)現(xiàn)場可編程門陣列集成電路,并且其中轉(zhuǎn)換命令包括轉(zhuǎn)換存儲器寫入請求以執(zhí)行對緩存的后門存取操作。
[0102]前述實(shí)施例僅僅是本發(fā)明原理的示例,并且在不偏離本發(fā)明的范圍和精神的情況下,本領(lǐng)域技術(shù)人員能夠作出各種修改。
【權(quán)利要求】
1.一種可操作以與外部調(diào)試工具接口的集成電路,利用所述外部調(diào)試工具,用戶提供調(diào)試命令,所述集成電路包括: 可編程電路系統(tǒng); 由所述可編程電路系統(tǒng)的一部分實(shí)現(xiàn)的調(diào)試主機(jī),其中所述調(diào)試主機(jī)耦合到所述調(diào)試工具以接收來自所述調(diào)試工具的命令; 片上系統(tǒng)互連件,其耦合到所述調(diào)試主機(jī); 微處理器子系統(tǒng),其具有處理電路系統(tǒng)、緩存和存儲器一致性控制單元,其中所述微處理器子系統(tǒng)利用總線耦合到所述片上系統(tǒng)互連件;和 命令轉(zhuǎn)換器,其插入在所述總線中,其中所述命令轉(zhuǎn)換器轉(zhuǎn)換從所述調(diào)試主機(jī)接收到的命令,并通過所述總線將相應(yīng)的轉(zhuǎn)換命令提供給所述存儲器一致性控制單元。
2.根據(jù)權(quán)利要求1所述的集成電路,其中所述可編程電路系統(tǒng)包括: 可編程互連件;和 可編程邏輯陣列區(qū)域,其通過所述可編程互連件耦合并包括加載有配置數(shù)據(jù)的存儲器元件。
3.根據(jù)權(quán)利要求2所述的集成電路,進(jìn)一步包括片上系統(tǒng)電路系統(tǒng),在其中,形成有所述片上系統(tǒng)互連件、所述微處理器子系統(tǒng)和所述命令轉(zhuǎn)換器。
4.根據(jù)權(quán)利要求3所述的集成電路,進(jìn)一步包括在所述調(diào)試主機(jī)和所述調(diào)試工具之間耦合的聯(lián)合測試行動組路徑,其中所述調(diào)試主機(jī)經(jīng)配置以接收來自所述調(diào)試工具的指令,所述指令命令所述調(diào)試主機(jī)發(fā)布存儲器存取命令。
5.根據(jù)權(quán)利要求4所述的集成電路,其中所述命令轉(zhuǎn)換器包括: 命令轉(zhuǎn)換器從接口,其耦合到所述片上系統(tǒng)互連件以接收來自所述調(diào)試主機(jī)的所述存儲器存取命令;和 命令轉(zhuǎn)換器主接口,其耦合到所述存儲器一致性控制單元,其中所述命令轉(zhuǎn)換器經(jīng)配置以轉(zhuǎn)換所述存儲器存取命令,并且經(jīng)配置以利用所述命令轉(zhuǎn)換器主接口將所轉(zhuǎn)換的存儲器存取命令提供給所述存儲器一致性控制單元。
6.根據(jù)權(quán)利要求5所述的集成電路,其中所述存儲器元件經(jīng)配置以接收來自外部編程設(shè)備的所述配置數(shù)據(jù)。
7.根據(jù)權(quán)利要求5所述的集成電路,其中所述片上系統(tǒng)電路系統(tǒng)包括耦合到所述片上系統(tǒng)互連件的外圍設(shè)備。
8.根據(jù)權(quán)利要求7所述的集成電路,其中所述外圍設(shè)備包括選自包括下列設(shè)備的組的外圍設(shè)備=UART電路系統(tǒng)、圖形處理單元、視頻加速器、調(diào)制解調(diào)器、顯示控制器和硬盤驅(qū)動器控制器。
9.一種調(diào)試具有可編程電路系統(tǒng)和片上系統(tǒng)電路系統(tǒng)的集成電路的方法,其包括: 對所述可編程電路系統(tǒng)進(jìn)行編程以在所述可編程電路系統(tǒng)中實(shí)現(xiàn)調(diào)試主機(jī); 使用所述調(diào)試主機(jī)發(fā)布命令; 通過所述片上系統(tǒng)電路系統(tǒng)中的片上系統(tǒng)互連件將來自所述調(diào)試主機(jī)的所述命令提供給命令轉(zhuǎn)換器; 使用所述命令轉(zhuǎn)換器轉(zhuǎn)換所述命令;以及 使用所述片上系統(tǒng)電路系統(tǒng)的微處理器單元子系統(tǒng)中的存儲器一致性控制單元,處理來自所述命令轉(zhuǎn)換器的轉(zhuǎn)換命令。
10.根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括在通過所述片上系統(tǒng)互連件將所述命令提供給所述命令轉(zhuǎn)換器之前設(shè)置所述命令轉(zhuǎn)換器。
11.根據(jù)權(quán)利要求10所述的方法,其中所述命令轉(zhuǎn)換器包括耦合到所述片上系統(tǒng)互連件的從總線接口以及與所述存儲器一致性控制單元中的從接口通信的主總線接口,并且其中設(shè)置所述命令轉(zhuǎn)換器包括提供參數(shù)給所述命令轉(zhuǎn)換器,所述參數(shù)設(shè)置將要在所述命令轉(zhuǎn)換器的所述從總線接口和所述命令轉(zhuǎn)換器的所述主總線接口之間執(zhí)行的轉(zhuǎn)換操作。
12.根據(jù)權(quán)利要求11所述的方法,其中轉(zhuǎn)換所述命令包括轉(zhuǎn)換存儲器存取命令中的存儲器地址。
13.根據(jù)權(quán)利要求10所述的方法,其中設(shè)置所述命令轉(zhuǎn)換器包括設(shè)置所述命令轉(zhuǎn)換器以將至少第一存儲器地址轉(zhuǎn)換到至少第二存儲器地址。
14.根據(jù)權(quán)利要求13所述的方法,其中轉(zhuǎn)換所述命令包括轉(zhuǎn)換存儲器讀取請求。
15.根據(jù)權(quán)利要求14所述的方法,其中所述微處理器單元子系統(tǒng)包括微處理器核,所述方法進(jìn)一步包括: 響應(yīng)所述存儲器讀取請求,使用所述存儲器一致性控制單元啟動一致讀取以獲得所請求的數(shù)據(jù); 將來自所述存儲器一致性控制單元的所述數(shù)據(jù)提供給所述調(diào)試主機(jī),而不中斷所述微處理器核。
16.根據(jù)權(quán)利要求13所述的方法,其中轉(zhuǎn)換所述命令包括轉(zhuǎn)換存儲器寫入命令。
17.根據(jù)權(quán)利要求16所述的方法,其中所述微處理器單元子系統(tǒng)包括微處理器核,所述方法進(jìn)一步包括: 響應(yīng)所述存儲器寫入命令,使用所述存儲器一致性控制單元啟動數(shù)據(jù)的寫入,而不中斷所述微處理器核。
18.—種調(diào)試包含可編程電路系統(tǒng)和微處理器單元子系統(tǒng)的集成電路的方法,其包括: 對所述可編程電路系統(tǒng)進(jìn)行編程以形成調(diào)試主機(jī); 使用外部調(diào)試工具,接收來自用戶的、與將要執(zhí)行的調(diào)試操作有關(guān)的指令; 響應(yīng)所述指令,命令所述調(diào)試主機(jī)在所述集成電路中的互連件上發(fā)布命令; 使用命令轉(zhuǎn)換器,轉(zhuǎn)換由所述調(diào)試主機(jī)發(fā)布的所述命令;以及 使用所述微處理器單元子系統(tǒng)中的存儲器一致性控制單元,接收轉(zhuǎn)換命令。
19.根據(jù)權(quán)利要求18所述的方法,其中所述集成電路包括片上系統(tǒng)現(xiàn)場可編程門陣列集成電路,并且其中轉(zhuǎn)換所述命令包括轉(zhuǎn)換存儲器讀取請求以執(zhí)行一致性調(diào)試操作。
20.根據(jù)權(quán)利要求18所述的方法,其中所述集成電路包括片上系統(tǒng)現(xiàn)場可編程門陣列集成電路,并且其中轉(zhuǎn)換所述命令包括轉(zhuǎn)換存儲器寫入請求以執(zhí)行對緩存的后門存取操作。
【文檔編號】G06F11/22GK104346247SQ201410359964
【公開日】2015年2月11日 申請日期:2014年7月25日 優(yōu)先權(quán)日:2013年7月25日
【發(fā)明者】M·雷格尤納斯, S·海丁格 申請人:阿爾特拉公司