亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種片上系統(tǒng)芯片及相應(yīng)的監(jiān)控方法

文檔序號:6491054閱讀:332來源:國知局
一種片上系統(tǒng)芯片及相應(yīng)的監(jiān)控方法
【專利摘要】本發(fā)明涉及一種片上系統(tǒng)芯片,其包括主設(shè)備、從設(shè)備、高速總線和監(jiān)控裝置。其中,所述主設(shè)備連接所述高速總線的第一端口,所述從設(shè)備連接所述高速總線的第二端口,從而使所述主設(shè)備具有訪問所述從設(shè)備的能力。所述監(jiān)控裝置設(shè)置在所述高速總線的所述第一端口與所述主設(shè)備之間、和/或所述高速總線的所述第二端口與所述從設(shè)備之間,用于基于高速總線通訊協(xié)議以記錄通過所述第一端口和/或所述第二端口的各個命令的狀態(tài)信息。且當出現(xiàn)有一個命令的狀態(tài)信息表示所述命令的操作處于超時狀態(tài)時,則上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點。
【專利說明】一種片上系統(tǒng)芯片及相應(yīng)的監(jiān)控方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及芯片技術(shù),特別是關(guān)于一種片上系統(tǒng)芯片(System On Chip, S0C)及相應(yīng)的監(jiān)控方法。
【背景技術(shù)】
[0002]隨著芯片集成化趨勢的發(fā)展,越來越多的芯片需要采用內(nèi)部高速總線(BUS)來交互數(shù)據(jù)。隨著多核化趨勢發(fā)展以及芯片集成越來越多的功能,芯片內(nèi)部的高速總線的復(fù)雜度也越來越高。而復(fù)雜的總線出現(xiàn)問題的概率也越來越高,對于其調(diào)試和定位一直是困擾芯片前端設(shè)計、EDA/FPGA/Emulator驗證以及芯片軟件開發(fā)、調(diào)試的主要問題。
[0003]目前,芯片內(nèi)的高速總線協(xié)議一般都是基于多通道處理。例如,ARM (AdvancedRISC Machines)公司的 AXI (Advanced Extensible Interface)總線具有 5 個通道,其分為讀命令通道(AR)、寫命令通道(AW)、寫數(shù)據(jù)通道(W)、讀數(shù)據(jù)返回通道(R)、和寫響應(yīng)返回通道⑶。
[0004]圖1為現(xiàn)有技術(shù)中利用高速總線(BUS)連接主設(shè)備(Master)和從設(shè)備(Slave)的示意圖。如圖1所示,主設(shè)備11和從設(shè)備12之間的高速總線13具有5個通道,即讀命令通道(Read Address Channel) 14、讀數(shù)據(jù)返回通道(Read Data Channel) 15、寫命令通道(Write Address Channel) 16、寫數(shù)據(jù)通道(Write Data Channel) 17、和寫響應(yīng)返回通道(Write Resp Channel) 18。其中,主設(shè)備11定義為命令和寫數(shù)據(jù)的主動發(fā)起方和響應(yīng)返回的接收方,而從設(shè)備12定義為命令的接收方和讀數(shù)據(jù)以及響應(yīng)的發(fā)起方。一般地,處理器作為主設(shè)備11,其具有主端口而與高速總線13的主端口連接配合,以主動讀取數(shù)據(jù);而存儲器(memory)作為從設(shè)備12,其具有從端口而與高速總線13的從端口連接配合,以供主設(shè)備11來讀取數(shù)據(jù)并返回響應(yīng)。
[0005]圖2為圖1所示的高速總線中每個通道的時序圖。如圖2所示,每個通道都采用全握手機制,即當ready脈沖沒有到來的時候,vaild脈沖就不會撤銷,其也不能發(fā)出下一個命令。
[0006]圖3為現(xiàn)有的片上系統(tǒng)芯片S0C(System On Chip)的示意圖。如圖3所示,片上系統(tǒng)芯片30包括多個主設(shè)備(master) 31、多個從設(shè)備(slave) 32、甚至多個高速總線(Bus) 33ο其中,圖3中的表不輸出方向的箭頭方向表不主設(shè)備31的命令輸出,而表不輸入方向的箭頭方向表示從設(shè)備32接收命令。每一根箭頭方向都對應(yīng)高速總線的5個通道。如果高速總線的任意節(jié)點,例如任意主設(shè)備,從設(shè)備或者總線的端口中任意一個或者多個通道出現(xiàn)問題,由于高速總線33互聯(lián)將所有的主設(shè)備31和所有從設(shè)備32連接在一起,因此所有的主設(shè)備31都可以訪問所有的從設(shè)備32,如果任意節(jié)點出現(xiàn)問題,則其會導(dǎo)致出現(xiàn)問題的節(jié)點擴展開。也就是說,只要有操作經(jīng)過出現(xiàn)問題的節(jié)點,則該操作就無法完成。因此,只要一個節(jié)點出現(xiàn)問題,其就可能影響到整個系統(tǒng),使整個片上系統(tǒng)芯片出現(xiàn)死鎖狀態(tài)。
[0007]當出現(xiàn)死鎖狀態(tài)時,則所有的任務(wù)都停止執(zhí)行。而隨著片上系統(tǒng)芯片的規(guī)模越來越大,總線互聯(lián)越來越復(fù)雜的情況下,上述問題更加突出。此外,高速總線一般都可以一次性發(fā)出多個未完成的命令,而且支持命令亂序返回,因此其也進一步增加了定位出現(xiàn)問題的節(jié)點的難度。
[0008]目前業(yè)界已經(jīng)開發(fā)出高速總線監(jiān)控技術(shù)以解決上述問題。目前已知的總線監(jiān)控技術(shù)其主要原理在于選擇記錄高速總線節(jié)點的所有行為,然后通過組包、壓縮后形成數(shù)據(jù)流,送入片上系統(tǒng)芯片內(nèi)部的緩存中進行存儲,或者通過片上系統(tǒng)芯片的端口送到片外的存儲模塊以進行存儲。該功能業(yè)界一般稱為追蹤(Trace)方法,類似于示波器做信號采樣存儲,然后事后恢復(fù)出來以供調(diào)試人員分析。
[0009]業(yè)界大的芯片公司,一般都采用自行開發(fā)總線調(diào)試的系統(tǒng),包括工具鏈等。但是隨著ARM芯片公司的產(chǎn)品的使用越來越廣泛,ARM芯片公司定義的Coresight調(diào)試組件和系統(tǒng)中逐漸被很多公司使用。ARM芯片公司最近也開發(fā)出了對于其最高速的AXI高速總線的調(diào)試組件。
[0010]圖4為現(xiàn)有技術(shù)中采用ARM芯片公司的總線調(diào)試技術(shù)的片上系統(tǒng)芯片的示意圖。如圖4所示,片上系統(tǒng)芯片40包括ARM處理器核心(ARM core) 41、存儲器內(nèi)容直接搬移模塊(Direct Memory Access, DMA)42、數(shù)字信號處理器核心(DSP core)43、雙通道同步動態(tài)隨機存儲控制器(DDR controller) 44、內(nèi)部靜態(tài)隨機存儲器(Internal SRAM) 45、和其他外圍設(shè)備(Other Peripheral) 46。
[0011]其中,ARM處理器核心41、存儲器內(nèi)容直接搬移模塊42、數(shù)字信號處理器核心43作為主設(shè)備(Master),而雙通道同步靜態(tài)隨機存儲控制器44、內(nèi)部靜態(tài)隨機存儲器45和其他的外圍設(shè)備46作為從設(shè)備(slave)。主設(shè)備和從設(shè)備之間通過AXI高速總線47而連接。此外,AXI高速總線47與主設(shè)備和從設(shè)備進行連接的端口可以設(shè)置總線追蹤(BusTrace)裝置48,以記錄經(jīng)過該端口的各個命令。其中,總線追蹤裝置48可以根據(jù)實際需要設(shè)置在AXI高速總線47的一些端口上,以與主設(shè)備或者從設(shè)備連接。在此處,與ARM處理器核心41、存儲器內(nèi)容直接搬移模塊42、數(shù)字信號處理器核心43、雙通道同步靜態(tài)隨機存儲控制器44、內(nèi)部靜態(tài)隨機存儲器45連接的AXI高速總線47的端口處設(shè)置了總線追蹤裝置48。
[0012]在片上系統(tǒng)芯片工作過程中,總線追蹤裝置48作為調(diào)試組件,其記錄通過AXI高速總線47的對應(yīng)端口的命令發(fā)出、返回響應(yīng)等等事件,并將事件內(nèi)容組成一個格式的幀,并且合并入每個總線追蹤裝置48分配的唯一的ID以作為標識。然后,記錄的內(nèi)容通過調(diào)試總線49輸出。其中調(diào)試總線49可以是ARM公司定義的ATB調(diào)試總線,其獨立于AXI高速總線47。然后通過ATB調(diào)試總線49,AXI高速總線47的各個端口的相關(guān)信息最后被存儲在片上系統(tǒng)芯片40中的緩沖器(buffer)中,或者存儲到片外的DDR存儲器中,或者通過高速端口(High Speed 1/0)輸出至片外。
[0013]測試人員可以通過ARM所提供的工具鏈,讀取片上系統(tǒng)芯片中的緩沖器或者片外的DDR存儲器,以讀取其存儲的內(nèi)容,通過解析各個總線追蹤裝置48的ID以及幀格式,從而在還原對應(yīng)的總線追蹤裝置48在一段時間內(nèi)所記錄的AXI總線47的對應(yīng)端口的相關(guān)信
肩、O
[0014]上述ARM公司的總線調(diào)試技術(shù),在原理上不能支持定時定位問題,而是屬于事后的被動系統(tǒng)。在片上系統(tǒng)芯片運行中出現(xiàn)其他問題后,測試人員可以通過查看總線追蹤裝置48所導(dǎo)出的歷史記錄,在事后進行分析,從而定位出哪里出現(xiàn)了問題,其分析定位的工作量和要求都比較高。[0015]此外,由于總線追蹤裝置48所對應(yīng)的存放空間有限,因此,使用上述調(diào)試技術(shù)一般要求能夠找出出現(xiàn)問題附近時間點的一個或者多個觸發(fā)條件來觸發(fā)追蹤開始或者停止,或者找到過濾條件,使總線追蹤裝置48只記錄特殊條件滿足情況下的總線行為。而觸發(fā)條件或者過濾條件的尋找需要手工分析并進行設(shè)定,如果設(shè)定不對,則可能就不會記錄到問題時間點附近的行為,那么就需要反復(fù)復(fù)現(xiàn)問題場景,因此其調(diào)試效率較低。
[0016]現(xiàn)有的基于追蹤的總線監(jiān)控技術(shù),從原理上也不支持異?;謴?fù),其只是對出現(xiàn)的問題進行記錄,然后再后續(xù)供調(diào)試人員進行事后分析。
[0017]另,上述總線調(diào)試技術(shù)是采用實時將行為事件導(dǎo)出并進行存儲,由于總線的操作一般都是比較快速的,因此在一段時間內(nèi),其事件會比較多。如果要在一段時間內(nèi)記錄足夠的信息,保證不丟失,其會對存儲空間和總線性能有一定的要求和代價。
[0018]如果事件內(nèi)容是存儲在片上系統(tǒng)芯片內(nèi),則片上系統(tǒng)芯片內(nèi)的緩沖器需要有足夠大的空間,則其將對應(yīng)地增加功耗成本。
[0019]如果事件內(nèi)容是存儲在片外的DDR存儲器內(nèi),則其需要占用DDR存儲器的端口流量,而總線事件比較密集的時候一般也會是總線對DDR存儲器訪問比較密集的時候,其可能對DDR存儲器帶寬要求一般會同步增加變化,因此其對于系統(tǒng)性能有較大的影響。
[0020]如果事件內(nèi)容是通過高速端口導(dǎo)出到片外,則對于PAD選型以及印刷電路板PCB設(shè)計具有較高的要求,同時片外的硬件需要向ARM公司進行購買,成本比較高。
[0021]此外,上述ARM公司的總線調(diào)試技術(shù)需要使用ARM公司的工具鏈支持,不能支持自行定位新的追蹤內(nèi)容,靈活性較差。
[0022]目前,業(yè)界還流行TI (Texas Instruments,德州儀器)公司開發(fā)的總線調(diào)試技術(shù),其總線追蹤技術(shù)與ARM公司的基本類似,其不同僅在于,TI公司的總線調(diào)試技術(shù)中,輸入的事件是可來自于TI公司的VBUSM高速總線,而并不是ARM公司的AXI高速總線,而將總線追蹤裝置的記錄內(nèi)容導(dǎo)出到緩沖器的總線是采用TI公司自有的VBUSP測試總線,而并不是ARM公司的ATB測試總線。此外,TI公司的總線調(diào)試技術(shù)只支持將總線追蹤裝置輸出的內(nèi)容導(dǎo)入到片上系統(tǒng)芯片內(nèi)部的緩沖器,其并不支持將總線追蹤裝置輸出的內(nèi)容導(dǎo)入到片外的DDR存儲器或者利用高速端口導(dǎo)出片外。
[0023]TI公司的總線調(diào)試技術(shù)具有和ARM公司的總線調(diào)試技術(shù)相同的缺陷,且由于其并不支持將總線追蹤裝置輸出的內(nèi)容導(dǎo)入到片外的DDR存儲器或者利用高速端口導(dǎo)出片外,因此其對于片內(nèi)功耗成本的影響要更高于ARM公司的總線調(diào)試技術(shù)。
[0024]因此,如何快速定位到高速總線出現(xiàn)問題的節(jié)點并進行修復(fù),是目前亟待解決的問題之一。

【發(fā)明內(nèi)容】

[0025]因此,本發(fā)明提供一種片上系統(tǒng)芯片及相應(yīng)的監(jiān)控方法,以在出現(xiàn)異常時主動上報、快速定位出現(xiàn)異常的節(jié)點并復(fù)位出現(xiàn)異常的節(jié)點。
[0026]具體地,本發(fā)明實施例提供一種片上系統(tǒng)芯片,其包括主設(shè)備、從設(shè)備、高速總線和監(jiān)控裝置。其中,所述主設(shè)備連接所述高速總線的第一端口,而所述從設(shè)備連接所述高速總線的第二端口,從而使所述主設(shè)備具有訪問所述從設(shè)備的能力。所述監(jiān)控裝置設(shè)置在所述高速總線的所述第一端口與所述主設(shè)備之間、和/或所述高速總線的所述第二端口與所述從設(shè)備之間,用于基于高速總線通訊協(xié)議以記錄通過所述第一端口和/或所述第二端口的各個命令的狀態(tài)信息。且當出現(xiàn)有一個命令的狀態(tài)信息表示所述命令的操作處于超時狀態(tài)時,則上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點。
[0027]本發(fā)明實施例另提供一種應(yīng)用于片上系統(tǒng)芯片的監(jiān)控方法,其中,所述片上系統(tǒng)芯片包括主設(shè)備、從設(shè)備、高速總線、及監(jiān)控裝置,所述主設(shè)備連接所述高速總線的第一端口,所述從設(shè)備連接所述高速總線的第二端口從而使所述主設(shè)備具有訪問所述從設(shè)備的能力,而所述監(jiān)控裝置設(shè)置在所述高速總線的所述第一端口與所述主設(shè)備之間、和/或所述高速總線的所述第二端口與所述從設(shè)備之間。其中,所述監(jiān)控方法包括:利用所述監(jiān)控裝置基于高速總線通訊協(xié)議而記錄通過所述第一端口和/或所述第二端口的各個命令的狀態(tài)信息;當出現(xiàn)有一個命令的狀態(tài)信息表示所述命令的操作處于超時狀態(tài)時,所述監(jiān)控裝置上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點。
[0028]本發(fā)明上述各個實施例可達成如下有益效果:通過在高速總線的端口處設(shè)置的監(jiān)控裝置來記錄各個命令的狀態(tài),并在命令超時時上報中斷,從而能夠非??焖俚卦趶?fù)雜的總線互聯(lián)系統(tǒng)中定位出出現(xiàn)問題的節(jié)點在哪里,并通過分析監(jiān)控裝置所提供的各個命令的狀態(tài)找到出現(xiàn)問題的原因是由命令的發(fā)起方還是接收方異常而引起,并根據(jù)命令的狀態(tài)找出出現(xiàn)的問題是在哪個階段。本發(fā)明是主動上報異常,而現(xiàn)有技術(shù)是在后期通過被動式的解析和分析出現(xiàn)異常的節(jié)點,因此本發(fā)明極大地提高了定位效率、不需要重現(xiàn)場景,也不需要將所有的數(shù)據(jù)導(dǎo)出進行分析,其極大地減少了工作量。
[0029]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
【專利附圖】

【附圖說明】
[0030]圖1為現(xiàn)有技術(shù)中利用高速總線連接主設(shè)備和從設(shè)備的示意圖;
[0031]圖2為圖1所示的高速總線中每個通道的時序圖;
[0032]圖3為現(xiàn)有的片上系統(tǒng)芯片SOC(System On Chip)的示意圖;
[0033]圖4為現(xiàn)有技術(shù)中采用ARM芯片公司的總線調(diào)試技術(shù)的片上系統(tǒng)芯片的示意圖;
[0034]圖5為本發(fā)明實施例的片上系統(tǒng)芯片的示意圖;
[0035]圖6為圖5所示的監(jiān)控裝置的示意圖;
[0036]圖7為圖6所示的監(jiān)控裝置分配同一身份序號ID的不同命令給不同緩沖器的操作示意圖;
[0037]圖8為圖6所示的監(jiān)控裝置中任一個緩沖器的示意圖;
[0038]圖9為緩沖器記錄的讀命令的命令狀態(tài)的示意圖;
[0039]圖10為緩沖器記錄的寫命令的命令狀態(tài)的示意圖;
[0040]圖11為當監(jiān)控裝置所對應(yīng)的模塊為命令的接受方時,監(jiān)控裝置進行異常復(fù)位方法的流程示意圖;
[0041]圖12為當監(jiān)控裝置所對應(yīng)的模塊為命令的發(fā)起方時,監(jiān)控裝置進行異常復(fù)位方法的流程示意圖;
[0042]圖13為本發(fā)明實施例的對發(fā)生異常的節(jié)點進行復(fù)位的示意圖;[0043]圖14為本發(fā)明實施例的監(jiān)控裝置與總線追蹤裝置結(jié)合應(yīng)用的示意圖。
【具體實施方式】
[0044]為更進一步闡述本發(fā)明為達成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的片上系統(tǒng)芯片其【具體實施方式】、方法、步驟及功效,詳細說明如后。
[0045]有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點及功效,在以下配合參考圖式的較佳實施例詳細說明中將可清楚的呈現(xiàn)。通過【具體實施方式】的說明,當可對本發(fā)明為達成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖式僅是提供參考與說明之用,并非用來對本發(fā)明加以限制。
[0046]圖5為本發(fā)明實施例的片上系統(tǒng)芯片的示意圖。如圖5所示,本發(fā)明的片上系統(tǒng)芯片100包括主設(shè)備110、從設(shè)備120、高速總線130、和監(jiān)控裝置140,主設(shè)備110連接高速總線130的第一端口,第一端口即主設(shè)備110接入高速總線130的端口,從設(shè)備120連接高速總線130的第二端口,第二端口即從設(shè)備120接入高速總線130的端口,從而使主設(shè)備110具有訪問從設(shè)備120的能力。在本實施例中,具體以三個高速總線(BUS0、BUS1和BUS2)相互連接為例來介紹本發(fā)明,需要說明的是,本領(lǐng)域技術(shù)人員應(yīng)當知道,在芯片采用內(nèi)部高速總線交互數(shù)據(jù)時,通常包括至少一個主設(shè)備110、至少一個從設(shè)備120、至少一個高速總線130、和至少一個監(jiān)控裝置140,因此,圖5作為一種【具體實施方式】,不用于限制本發(fā)明。在圖5中,每個高速總線130均連接兩個主設(shè)備110和兩個從設(shè)備120。主設(shè)備110是連接在高速總線130的第一端口上(例如每個總線130的m0或者ml端口),而從設(shè)備120是連接在高速總線130的第二端口上(例如每個總線130的sO或者Si端口)。此外,高速總線130之間還通過其他的第一端口與第二端口進行相互連接以在不同的高速總線130之間進行數(shù)據(jù)傳輸,例如高速總線BUSO的通過第一端口 m2與高速總線BUS2的第二端口 s4進行連接,從而將BUS2的數(shù)據(jù)傳輸給BUS0,這里可以將BUS2視作BUSO的主設(shè)備,而高速總線BUSO的第二端口 s2與高速總線BUS2的第一端口 m4連接,從而實現(xiàn)高速總線BUSO與高速總線BUS2的相互連接;類似地,高速總線BUSl與高速總線BUS2也通過相同的方式進行連接,從而實現(xiàn)三個高速總線130的相互連接,因此,其中任意一個主設(shè)備110都可以通過互聯(lián)的三個高速總線130實現(xiàn)對任意一個從設(shè)備120的訪問。
[0047]在高速總線130的第一端口和/或第二端口處設(shè)置監(jiān)控裝置140,以記錄通過第一端口和/或第二端口的各個命令的狀態(tài)信息,且當出現(xiàn)有一個命令的狀態(tài)信息表示該命令的操作處于超時狀態(tài)時,則上報中斷以快速定位高速總線130上出現(xiàn)問題的節(jié)點,本領(lǐng)域技術(shù)人員應(yīng)當知道,這里的節(jié)點就是指連接在高速總線130上的主設(shè)備110或者從設(shè)備120,根據(jù)出現(xiàn)問題的節(jié)點信息,可以定位具體是主設(shè)備110還是從設(shè)備120出的問題。此夕卜,監(jiān)控裝置140在上報中斷快速定位高速總線130出現(xiàn)問題的節(jié)點后,該節(jié)點處的監(jiān)控裝置140可以代替對應(yīng)的主設(shè)備110或從設(shè)備120以虛擬方式完成處于超時狀態(tài)的命令,并對對應(yīng)的主設(shè)備110或者從設(shè)備120執(zhí)行復(fù)位操作。也就是說,在本發(fā)明中,監(jiān)控裝置140可以監(jiān)控是否有異常狀況發(fā)生,追蹤異常發(fā)生地,以及進行復(fù)位操作(Debug RecoveryTrace, DRT)。
[0048]本發(fā)明可以在每個高速總線130的每個端口處均設(shè)置一個監(jiān)控裝置140,以分別記錄通過每個端口的各個命令的狀態(tài)信息。當然,其也可以根據(jù)實際需要只在高速總線130的某些端口處設(shè)置監(jiān)控裝置140。本領(lǐng)域技術(shù)人員可以理解的是,由于異常一般只經(jīng)常發(fā)生在主設(shè)備110和從設(shè)備120上,而各個高速總線130本身一般是不會發(fā)生異常,因此可只在高速總線130的與主設(shè)備110或者從設(shè)備120連接的端口處設(shè)置監(jiān)控裝置140。在本發(fā)明實施例中,高速總線BUSO的兩個與主設(shè)備相連的第一端口 m0和ml處分別設(shè)置了監(jiān)控裝置140,高速總線BUSl的兩個與主設(shè)備相連的第一端口 m0和ml以及兩個與從設(shè)備相連的第二端口 sO和Si處分別設(shè)置了監(jiān)控裝置140,而高速總線BUS2的兩個與主設(shè)備相連的第一端口 m0和ml以及兩個與從設(shè)備相連的第二端口 sO和si處分別設(shè)置了監(jiān)控裝置140,以分別記錄對應(yīng)的主設(shè)備110和從設(shè)備發(fā)送/接收的各個命令的狀態(tài)。
[0049]基于高速總線通訊協(xié)議,高速總線130基本上都支持命令和數(shù)據(jù)分離,因此在數(shù)據(jù)并沒有傳輸完成前(即讀或者寫操作),命令是可以提前發(fā)出。而基于系統(tǒng)的可實現(xiàn)性,高速總線130的各個端口能夠提前發(fā)出的命令個數(shù)是有一定限度的,這個限度一般可以稱為最大的未完結(jié)命令(outstanding)的數(shù)目。例如最大的未完結(jié)命令的數(shù)目為4,則其表示可以在讀/寫操作沒有完成的情況下,能夠支持發(fā)出四個命令,而第五個命令必須等待第一個命令所對應(yīng)的數(shù)據(jù)讀或者寫操作完成后才能發(fā)出。
[0050]基于高速總線130的各個端口支持的最大的未完結(jié)命令的數(shù)目的限制,對應(yīng)的監(jiān)控裝置140中需要設(shè)置數(shù)量匹配最大的未完結(jié)命令數(shù)目的緩沖器,以記錄未完成命令數(shù)目個命令的狀態(tài)信息,所述狀態(tài)信息包括各個命令的狀態(tài)、地址Addr、身份訊號ID等等信息。如果命令正常完成,且后續(xù)有命令繼續(xù)帶來,則監(jiān)控裝置140中的緩沖器可被依次覆蓋。
[0051]圖6為圖5所示的監(jiān)控裝置的示意圖。在此,以一個連接在總線的端口,且支持讀命令的最大的未完成命令數(shù)目為4,寫命令的最大的未完成命令數(shù)目為4的監(jiān)控裝置為例,來介紹本發(fā)明。
[0052]如圖6所示,監(jiān)控裝置200包括讀緩沖模塊210、寫緩沖模塊220、重置(RESET)模塊230和控制(CTRL)模塊240。其中,讀緩沖模塊210包括多個讀緩沖器(Read Buffer,RBUF) 211,而寫緩沖模塊220包括多個寫緩沖器(Write Buffer,WBUF) 221。為了支持最大的未完成命令數(shù)目為4的讀/寫命令,因此在本實施例中,讀緩沖模塊210包括4個讀緩沖器211,例如讀緩沖器RBUF0、RBUF1、RBUF2、RBUF3,分別用于記錄分配至讀緩沖器211的讀命令的狀態(tài)信息;而寫緩沖模塊220包括4個寫緩沖器221,例如寫緩沖器WBUFO、WBUFUWBUF2、WBUF3,分別用于記錄分配至寫緩沖器221的寫命令的狀態(tài)信息。重置模塊230分別連接讀緩沖模塊210和寫緩沖模塊220以重置讀緩沖模塊210中的讀緩沖器211和/或?qū)懢彌_模塊220中的寫緩沖器221。而控制模塊240分別連接讀緩沖模塊210和寫緩沖模塊220以控制讀緩沖模塊210中的讀緩沖器211和/或?qū)懢彌_模塊220中的寫緩沖器221以虛擬方式完成主設(shè)備110或者從設(shè)備120的未完成的讀命令或者寫命令。
[0053]監(jiān)控裝置200的輸入包括第一端口信息/第二端口信息以及軟件配置參數(shù),其中第一端口信息/第二端口信息包括讀/寫命令、讀/寫數(shù)據(jù)、寫響應(yīng)、讀響應(yīng)等等信息。而監(jiān)控裝置200的輸出為其內(nèi)的各個緩沖器(讀緩沖器211及/或?qū)懢彌_器221)中存儲的各個命令的狀態(tài)信息,例如讀/寫超時中斷、讀/寫命令超時狀態(tài)、讀/寫緩沖器狀態(tài)、讀/寫命令狀態(tài)、讀/寫命令順序(order)、讀/寫命令身份序號(ID)信息、讀/寫命令地址(addr)信息、復(fù)位主設(shè)備/從設(shè)備時模擬主設(shè)備/從設(shè)備生成的信號、讀/寫命令延時等等。[0054]由于監(jiān)控裝置200需要支持高速總線,而高速總線的未完成命令數(shù)目內(nèi)的命令一般都支持不同的身份序號ID,即源端發(fā)出的命令具有對應(yīng)的身份序號ID,不同身份序號ID之間的命令可以以亂序的方式而執(zhí)行并返回響應(yīng),而同一個身份序號的不同命令之間必須以順序的方式執(zhí)行并返回響應(yīng)。因此,監(jiān)控裝置200需要支持以亂序和順序的方式來分別處理不同的命令,其需要解決如何將命令放入哪個緩沖器內(nèi),以及如何找到當前的操作是對應(yīng)哪個命令的問題。
[0055]在本發(fā)明中,在分配各個命令至不同的緩沖器時,屬于不同身份序號ID的命令分別分配給不同的緩沖器;而屬于同一身份訊號的不同命令在分配給不同的緩沖器時,還進一步按照順序分配對應(yīng)的操作順序order,以標識同一身份序號ID的不同命令的先后順序。而后續(xù)的數(shù)據(jù)、響應(yīng)操作在總線協(xié)議中都會含有身份序號ID標識,當監(jiān)控裝置200監(jiān)控到高速總線的端口的操作后,其可以根據(jù)身份序號ID標識,找到其內(nèi)部符合身份序號ID標識的所有緩沖器,然后找到這些緩沖器中操作順序order最小的緩沖器,更新其對應(yīng)的狀態(tài)息,判斷其是否超時。
[0056]圖7為圖6所示的監(jiān)控裝置分配同一身份序號ID的不同命令給不同緩沖器的操作示意圖。如圖7所示,數(shù)字代表對應(yīng)各個命令的操作順序order ;緩沖器中有數(shù)字,則代表對應(yīng)的緩沖器存儲過命令;實線圓框代表新命令的存儲;虛線圓框代表命令完成;而虛線方框代表命令的操作順序order發(fā)生改變。
[0057]如圖7所示,在Tl時刻,第一個命令發(fā)出,其存儲在緩沖器bufferO中,且其操作順序order為O ;在T2時刻,第一個命令并未完成,第二個命令發(fā)出,其存儲在緩沖器bufferl中,且其操作順序order為I ;在T3時刻,第一個命令和第二個命令都并未完成,第三個命令發(fā)出,其存儲在緩沖器buffer2中,且其操作順序order為2 ;在T4時刻,第二個命令完成,即存儲在緩沖器bufferl中的命令完成,此時所有命令的操作順序order保持不變;在了5時刻,再來一個新命令時,由于原本存儲在緩沖器bufferl中的第二個命令已經(jīng)完成(其操作順序order為I),因此其他緩沖器中存儲的命令如果其操作順序order小于原本存儲在緩沖器bufferl中的第二個命令的操作順序(為I),例如,緩沖器bufferO中存儲的第一個命令的操作順序order為0,則其操作順序保持不變;而其他緩沖器中存儲的命令如果其操作順序order大于原本存儲在緩存器bufferl中的第二個命令的操作順序order (為I),例如,緩沖器bufferO中存儲的第三個命令的操作順序order原本為2,則將其操作順序order減I,即緩沖器bufferO中存儲的第三個命令的操作順序order變?yōu)镮,而新命令存儲在緩沖器bufferl中,且其操作順序為2。
[0058]圖7所不的分配操作順序order的方式是針對屬于同一身份序號ID的不同命令,即按照順序的方式來處理這些屬于同一身份序號ID的不同命令;而對于屬于不同身份序號ID的命令,按照亂序得方式分別對其分配不同的緩沖器即可。
[0059]圖8為圖6所示的監(jiān)控裝置中任一個緩沖器的示意圖。如圖8所示,緩沖器300的輸入包括命令信息、所有緩沖器信息、和軟件配置參數(shù);而緩沖器的輸出包括單個緩沖器信息、讀延時、讀超時狀態(tài)、讀超時中斷、讀命令跳轉(zhuǎn)狀態(tài)、未完成的數(shù)據(jù)量等等。
[0060]如圖8所示,緩沖器300內(nèi)包括命令有效發(fā)出單元310、命令狀態(tài)單元321、命令身份序號存儲單元322、命令操作順序單元323、未處理的數(shù)據(jù)量(beat數(shù))單元324、命令處理完畢單元325、命令跳轉(zhuǎn)狀態(tài)單元326、讀命令延時單元327、超時狀態(tài)單元328、超時中斷單元329、緩沖器狀態(tài)單元331、和命令地址存儲單元332。其中,命令有效發(fā)出單元310用以記錄分配到緩沖器300的命令是否有效寫入緩沖器300中;命令狀態(tài)單元321用以記錄分配到緩沖器300的命令的狀態(tài)信息是占用還是空閑;命令身份序號存儲單元322用以記錄分配到緩沖器300的命令的身份序號ID ;命令操作順序單元323用以記錄分配到緩沖器300的命令的操作順序order ;未處理完的數(shù)據(jù)量單元324用以記錄分配到緩沖器300的命令所對應(yīng)的數(shù)據(jù)中未處理完的數(shù)據(jù)量(beat數(shù));命令處理完畢單元325用以記錄分配到緩沖器300的命令是否在配置的時間內(nèi)完成;命令跳轉(zhuǎn)狀態(tài)單元326用以記錄分配到緩沖器300的命令當前的具體狀態(tài);讀命令延時單元327用以記錄分配到緩沖器300的命令在配置的時間內(nèi)完成時,則獲得命令延時;超時狀態(tài)單元328用以記錄分配到緩沖器300中的命令的超時狀態(tài);超時中斷單元329用以在所述命令的狀態(tài)跳轉(zhuǎn)到超時狀態(tài)時,上報中斷;緩沖器狀態(tài)單元331用以記錄緩沖器的狀態(tài);而命令地址存儲單元332用以記錄分配到緩沖器的命令的存儲地址。
[0061]從圖8可知,在本發(fā)明中,緩沖器300可以至少記錄分配到該緩沖器的命令的狀態(tài)、身份序號ID、未處理完的數(shù)據(jù)量(beat數(shù))、操作順序order。這四個信息是各個緩沖器必須要記錄的。當然,各個緩沖器還可以設(shè)計為進一步記錄分配到該緩沖器的命令的存儲地址、緩沖器狀態(tài)等等其它相關(guān)內(nèi)容,這些可維可測的要求可以按照實際需要而進行選擇。
[0062]在本發(fā)明中,可以分別利用緩沖器來記錄分配到緩沖器的命令的狀態(tài)(其記錄在命令跳轉(zhuǎn)狀態(tài)單元326),以AXI高速總線協(xié)議中的讀命令為例,通過緩沖器的記錄,其命令狀態(tài)圖9所示。其中,圖9所示的各個狀態(tài)含義如下:
[0063]IDLE:空閑狀態(tài),緩沖器中還未存儲讀命令;
[0064]RCM_ACT:讀命令有效發(fā)出,但未被接收,即arvalid有效,arready無效;
[0065]RCM_ACK:讀命令有效發(fā)出并被接收,即arvalid和arready都有效;
[0066]RDAT_ACT:讀命令是被處理的命令,讀數(shù)據(jù)有效發(fā)出,但未被接收,即rid匹配,rlow 為 I, rvalid 有效,rready 無效;
[0067]RDAT_ACK:讀命令是被處理的命令,讀數(shù)據(jù)有效發(fā)出,且被接收,即rid匹配,rlow為I, rvalid和rready均有效;但沒有讀出最后一個數(shù)據(jù),即rlast無效;
[0068]RDAT_FSH:讀命令是被處理的命令,且發(fā)出最后一個數(shù)據(jù)并被接收,即rid匹配,rlow為I, rvalid、rready和rlast均有效;當緩沖器再次被讀命令占用時,直接從該狀態(tài)跳轉(zhuǎn),否則保持該狀態(tài)。
[0069]以AXI高速總線協(xié)議中的寫命令為例,通過緩沖器的記錄,其命令狀態(tài)如圖10所示,其中,圖10所示的各個狀態(tài)的含義如下:
[0070]WIDLE:空閑狀態(tài),緩沖器未存儲過寫命令;
[0071]WAIT_WACT:寫命令有效發(fā)出,數(shù)據(jù)未發(fā)出;
[0072]WDAT_ACT:處理寫命令,且寫數(shù)據(jù)有效發(fā)出,但未被接收,即id匹配,wlow為1,wvalid 有效,wready 無效;
[0073]WDAT_ACK:處理寫命令,且寫數(shù)據(jù)有效發(fā)出,并且被接收,即id匹配,wlow為1,wvalid> wready 有效,wlast 無效;
[0074]WDAT_FSH:處理寫命令,且寫數(shù)據(jù)有效發(fā)出,并且被接收,而且是最后一個寫數(shù)據(jù),即 id 匹配,wlow 為 I, wvalid、wready> wlast 有效;[0075]WCM_ACT:命令有效發(fā)出,但未被接收,即awvalid有效,awready無效;
[0076]WCM_ACK:命令有效發(fā)出,并且被接收,即awvalid和awready均有效;
[0077]WLST_FSH:寫數(shù)據(jù)完成;
[0078]BRSP_ACT:處理寫命令,寫響應(yīng)有效發(fā)出,但未被接收,即bid匹配,blow為1,bvalid 有效,bready 無效;
[0079]BRSP_FSH:處理寫命令,寫響應(yīng)有效發(fā)出,并且被接收,即bid匹配,blow為1,bvalid和bready均有效;而當緩沖器再次被寫命令占用時,則直接從該狀態(tài)跳轉(zhuǎn),否則保持該狀態(tài)。
[0080]通過上述對命令的各個狀態(tài)的記錄,監(jiān)控裝置可以記錄各個命令是否可在配置的時間內(nèi)完成。如果在配置的時間內(nèi)沒有跳轉(zhuǎn)到完成狀態(tài),則監(jiān)控裝置可直接主動上報中斷。在本發(fā)明中,每一個監(jiān)控裝置均對應(yīng)一個相應(yīng)的主設(shè)備或者從設(shè)備,因此本發(fā)明可以根據(jù)主動上報中斷的監(jiān)控裝置的位置,而快速地定位是哪個主設(shè)備或者從設(shè)備出現(xiàn)了問題。
[0081 ] 此外,本發(fā)明的片上系統(tǒng)芯片還可以利用監(jiān)控裝置而查詢流經(jīng)監(jiān)控裝置的各個命令的狀態(tài)。通過查詢各個命令的狀態(tài),從而查詢出出現(xiàn)超時的命令,查詢超時的原因是由命令的發(fā)起方還是接收方(其對應(yīng)于高速總線上的端口所連接的主設(shè)備或者從設(shè)備)而引起的,此外,可以進一步通過命令的身份序號ID而查出現(xiàn)超時的命令是由哪個主模塊所引起的或者通過命令的地址而查詢出現(xiàn)超時的命令是由哪個從模塊引起的,從而非常方便地定位出高速總線上出現(xiàn)問題的節(jié)點。
[0082]舉例而言,如圖5所示,當利用高速總線BUSl的第二端口 sO所對應(yīng)的監(jiān)控裝置DRT4監(jiān)控到流經(jīng)第二端口 sO的命令出現(xiàn)超時,則監(jiān)控裝置DRT4會上報中斷,且本發(fā)明的片上系統(tǒng)芯片可以根據(jù)上報的中斷而確定此命令的超時原因是由命令的發(fā)起方還是接收方所引起的,且具體是哪個模塊所引起的,例如從監(jiān)控裝置DRT4中的緩沖器的指示,得到命令CMD3超時,并且命令CMD3的狀態(tài)指示是由于命令發(fā)起方引起的(如命令跳轉(zhuǎn)狀態(tài)停留在WCM_ACK狀態(tài)而超時),而系統(tǒng)中命令CMD3的身份序號ID對應(yīng)的高速總線BusO的第一端口 ml,那么可以定位到是高速總線BusO的第一端口 ml所連接的主設(shè)備的寫命令發(fā)出去了,但是并沒有發(fā)寫數(shù)據(jù)而引起的系統(tǒng)異常。當然,本領(lǐng)域技術(shù)人員可以理解的是,圖5中高速總線BusO的第一端口 ml所連接的監(jiān)控裝置DRTl也可以直接主動上報中斷,通知片上系統(tǒng)芯片高速總線BusO的第一端口 ml所連接的主設(shè)備有一個命令出現(xiàn)了問題,且其問題在于寫命令發(fā)出去了,但是并沒有發(fā)寫數(shù)據(jù)。此外,本發(fā)明的監(jiān)控裝置還可以進一步對出現(xiàn)問題的高速總線的節(jié)點進行復(fù)位,以使片上系統(tǒng)芯片可以正常進行工作。
[0083]具體地,當監(jiān)控裝置上報中斷時,片上系統(tǒng)芯片可以通知對應(yīng)的監(jiān)控裝置其對應(yīng)的模塊(即對應(yīng)的主設(shè)備或者從設(shè)備)要進行異常復(fù)位,而由監(jiān)控裝置代替對應(yīng)的模塊繼續(xù)完成總線操作,從而保證不影響高速總線上的其它模塊的相關(guān)操作的完成。當對應(yīng)的模塊為命令的接受方時,其對應(yīng)的監(jiān)控裝置會代替對應(yīng)的接受方而發(fā)出返回響應(yīng),且發(fā)出的返回響應(yīng)其上會帶有錯誤標志,以保證在傳輸完成的情況下,能讓片上系統(tǒng)芯片識別出這是一個代替返回響應(yīng)的操作。而當對應(yīng)的模塊為命令的發(fā)起方時,其對應(yīng)的監(jiān)控裝置會代替對應(yīng)的發(fā)起方而發(fā)出代替的寫操作,且其進一步通過標識信號而讓對應(yīng)的寫操作完成,但是數(shù)據(jù)并不會真正地寫入至從設(shè)備中,以避免發(fā)出代替寫操作的監(jiān)控裝置成為真正的命令發(fā)起方。在利用監(jiān)控裝置完成代替操作后,則片上系統(tǒng)芯片進一步會對對應(yīng)的模塊執(zhí)行重置操作,從而使對應(yīng)的模塊復(fù)位。
[0084]以下以支持AXI高速總線協(xié)議的監(jiān)控裝置為例來接介紹本發(fā)明。圖11為當監(jiān)控裝置所對應(yīng)的模塊為命令的接受方時,所述監(jiān)控裝置進行異常復(fù)位方法的流程示意圖。如圖11所示,當監(jiān)控裝置所對應(yīng)的模塊為命令的接受方時,監(jiān)控裝置進行異常復(fù)位方法包括:
[0085]系統(tǒng)軟件判斷流經(jīng)監(jiān)控裝置的命令是否都已經(jīng)處理完畢;在此,可以通過超時上報得知流經(jīng)監(jiān)控裝置的命令是否都已經(jīng)處理完畢,如果超時上報未完成,說明有命令未處理完O
[0086]然后,當系統(tǒng)軟件判斷為否時,還需要進一步判斷命令未處理完是否是由于接受方引起的;在此,可以通過查詢監(jiān)控裝置中的緩沖器的命令跳轉(zhuǎn)狀態(tài)得知命令未處理完是否是由于接受方引起的。
[0087]當系統(tǒng)軟件判斷是由于接受方引起的超時,則系統(tǒng)軟件會通過配置統(tǒng)一的系統(tǒng)控制器通知監(jiān)控裝置開始進行重置操作,監(jiān)控裝置則開始找出未完成的讀命令的操作順序rorder最小的命令緩沖器;
[0088]監(jiān)控裝置根據(jù)找到的命令緩沖器中的rid和未完成數(shù)據(jù)量等信息,將所述命令的狀態(tài)信息中的rst_rvalid拉為高,直至所述命令的數(shù)據(jù)處理完畢,同時反饋dec_err信息;
[0089]在發(fā)出所述命令的最后一個數(shù)據(jù)時,同時發(fā)出rlast信息;
[0090]然后監(jiān)控裝置返回重新執(zhí)行上述判斷,直至流經(jīng)監(jiān)控裝置的所有命令都已經(jīng)處理完畢。
[0091]當監(jiān)控裝置完成上述操作后,會自動返回標志到統(tǒng)一的系統(tǒng)控制器,然后統(tǒng)一的系統(tǒng)控制器可以對監(jiān)控裝置對應(yīng)的從設(shè)備進行復(fù)位。當然,也可以設(shè)計成當系統(tǒng)軟件通過配置統(tǒng)一的系統(tǒng)控制器通知監(jiān)控裝置開始進行重置操作的同時,一并對從設(shè)備進行復(fù)位。此外,在對從設(shè)備解除復(fù)位操作時,需要先解除對從設(shè)備的復(fù)位操作,然后再開始對監(jiān)控裝置進行退出重置操作。
[0092]圖12為當監(jiān)控裝置所對應(yīng)的模塊為命令的發(fā)起方時,所述監(jiān)控裝置進行異常復(fù)位方法的流程示意圖。如圖12所示,當監(jiān)控裝置所對應(yīng)的模塊為命令的發(fā)起方時,監(jiān)控裝置進行異常復(fù)位方法包括:
[0093]系統(tǒng)軟件判斷流經(jīng)監(jiān)控裝置的命令是否都已經(jīng)處理完畢;在此,可以通過超時上報得知流經(jīng)監(jiān)控裝置的命令是否都已經(jīng)處理完畢,如果超時上報未完成,說明有命令未處
理完O
[0094]然后,當系統(tǒng)軟件判斷為否時,還需要進一步判斷命令未處理完是否是由于發(fā)起方引起的;在此,可以通過查詢監(jiān)控裝置中的緩沖器的命令跳轉(zhuǎn)狀態(tài)得知命令未處理完是否是由于發(fā)起方引起的。
[0095]當系統(tǒng)軟件判斷是由于發(fā)起方引起的超時,則系統(tǒng)軟件會通過配置統(tǒng)一的系統(tǒng)控制器通知監(jiān)控裝置開始進行重置操作,監(jiān)控裝置開始查找寫命令的操作順序《order最小的命令緩沖器;
[0096]監(jiān)控裝置根據(jù)找到的命令緩沖器中的Wid和未完成數(shù)據(jù)量等信息,將所述命令的狀態(tài)信息中的rst_Wvalid拉為高,直至所述命令的數(shù)據(jù)處理完畢;
[0097]在發(fā)出所述命令的最后一個數(shù)據(jù)時,同時發(fā)出wlast信息;[0098]然后監(jiān)控裝置返回重新執(zhí)行上述判斷,直至流經(jīng)監(jiān)控裝置的所有命令都已經(jīng)處理完畢。
[0099]當監(jiān)控裝置完成上述操作后,會自動返回標志到統(tǒng)一的系統(tǒng)控制器,然后統(tǒng)一的系統(tǒng)控制器可以對監(jiān)控裝置對應(yīng)的主設(shè)備進行復(fù)位。當然,也可以設(shè)計成當系統(tǒng)軟件通過配置統(tǒng)一的系統(tǒng)控制器通知監(jiān)控裝置開始進行重置操作的同時,一并對主設(shè)備進行復(fù)位。此外,在對主設(shè)備解除復(fù)位操作時,需要先解除對主設(shè)備的復(fù)位操作,然后再開始對監(jiān)控裝置退出重置操作。
[0100]本發(fā)明利用監(jiān)控裝置支持異常復(fù)位的功能,可以在片上系統(tǒng)芯片支持復(fù)位某一個高速總線所連接的某一主設(shè)備或者某一從設(shè)備,對總線操作不會造成死鎖影響,而所有的總線操作雖然不一定是正確的完成,但是其都可以利用監(jiān)控裝置而完成。在利用監(jiān)控裝置對發(fā)生超時的命令進行替代操作后,可以進一步地重置復(fù)位對應(yīng)的主設(shè)備或者從設(shè)備,使其可以重新開始工作。因此,在本發(fā)明中,特別是對于多核系統(tǒng)中,一個核的異常并不會導(dǎo)致整個系統(tǒng)都死鎖。當發(fā)生異常的核復(fù)位后,可以重新加載運行,當然對應(yīng)的軟件需要有一定的錯誤恢復(fù)能力來保證系統(tǒng)級的恢復(fù)。
[0101]圖13為本發(fā)明實施例的對發(fā)生異常的節(jié)點進行復(fù)位的示意圖。如圖13所示,當高速總線BUSl的第二端口 sO處的監(jiān)控裝置DRT4上報中斷超時時,片上系統(tǒng)芯片400中的系統(tǒng)控制器410通過分析監(jiān)控裝置DRT4中的命令的狀態(tài)信息可知,異常是由于高速總線BUSO的第一端口 ml處的主設(shè)備420所導(dǎo)致的,則系統(tǒng)控制器410會通知高速總線BUSO的第一端口 ml處的監(jiān)控裝置DRTl,代替主設(shè)備420而將其未完成的寫操作做完,或者將未接受完的讀操作和響應(yīng)接受完,然后對發(fā)生異常的主設(shè)備420進行重置復(fù)位,以修復(fù)異常。
[0102]如上所述,本發(fā)明的監(jiān)控裝置DRT可以利用其內(nèi)的緩沖器存儲命令的狀態(tài),并在發(fā)生命令超時時上報中斷。由于監(jiān)控裝置DRT中的緩沖器的數(shù)量一般設(shè)計為對應(yīng)于未完成命令outstanding的數(shù)目,因此監(jiān)控裝置只能記錄未完成的命令和已經(jīng)完成的outstanding數(shù)量內(nèi)的命令,如果超出,則已經(jīng)完成的命令就會被覆蓋住。而現(xiàn)有的總線追蹤技術(shù)雖然不能實時報錯和異?;謴?fù),但是其可以記錄較長一段時間內(nèi)的所有命令操作,而這是監(jiān)控裝置DRT所不能完成的。在此,可以將監(jiān)控裝置DRT與總線追蹤裝置結(jié)合在一起,從而即可以記錄較長一段時間內(nèi)的所有命令操作,又可以實時報錯和異?;謴?fù)。
[0103]圖14為本發(fā)明實施例的監(jiān)控裝置與總線追蹤裝置結(jié)合應(yīng)用的示意圖。如圖14所示,監(jiān)控裝置510可以進一步增加一個高速總線第一端口,用以和調(diào)試總線(例如ATB調(diào)試總線)550相連接,因此監(jiān)控裝置510可以通過調(diào)試總線550而將其記錄的所有完成的命令或者超時的命令送出到系統(tǒng)。其中ATB調(diào)試總線550可以為Trace Funnel總線。
[0104]此外,監(jiān)控裝置510還可以進一步增加一個交叉觸發(fā)端口,其與其他的總線追蹤裝置,例如數(shù)字信號處理器核心的總線追蹤裝置(DSP Core Trace) 520、ARM處理器核心的總線追蹤裝置(ARM Core Trace) 530等等,通過交叉觸發(fā)矩陣(Cross Trigger Matrix,CTM) 540而連接在一起,其中監(jiān)控裝置510可以通過交叉觸發(fā)矩陣540而與其它的總線追蹤裝置相互觸發(fā)開始或者停止記錄總線的對應(yīng)端口的命令和命令狀態(tài)。然后,再利用與監(jiān)控裝置510和其他的總線追蹤裝置相連的ATB調(diào)試總線550,例如Trace Funnel總線,而將記錄的命令和命令狀態(tài)導(dǎo)出。此外,本領(lǐng)域技術(shù)人員可以理解的是,交叉觸發(fā)矩陣540也可以用來在多個監(jiān)控裝置DRT之間相互觸發(fā)開始和停止。[0105]綜上所述,本發(fā)明的片上系統(tǒng)芯片在高速總線的端口處設(shè)置監(jiān)控裝置DRT來記錄命令的狀態(tài),并在命令超時時上報中斷,從而能夠非常快速地在復(fù)雜的總線互聯(lián)系統(tǒng)中定位出出現(xiàn)問題的節(jié)點在哪里,并找到出現(xiàn)問題的原因是由命令的發(fā)起方還是接收方異常而引起,并根據(jù)命令的狀態(tài)找出出現(xiàn)的問題是在哪個階段。本發(fā)明是主動上報異常并復(fù)位異常(即主動性的異常處理方式),而現(xiàn)有技術(shù)是在后期通過被動式的解析和分析出現(xiàn)異常的節(jié)點,因此本發(fā)明極大地提高了定位效率、不需要重現(xiàn)場景,也不需要將所有的數(shù)據(jù)導(dǎo)出進行分析,其極大地減少了工作量。
[0106]另,本發(fā)明還可以通過監(jiān)控裝置對出現(xiàn)異常的節(jié)點進行復(fù)位,其能夠支持復(fù)雜系統(tǒng)中的節(jié)點異?;謴?fù),其在多核系統(tǒng)中的作用特別大,特別是對于那些對可靠性要求高的系統(tǒng)。其中,監(jiān)控裝置可以在出現(xiàn)超時的命令時上報中斷,從而知道是哪一個節(jié)點出現(xiàn)了異常,然后復(fù)位此節(jié)點。在復(fù)位后,軟件可以解復(fù)位重新加載,開始運行,只要系統(tǒng)中的軟件架構(gòu)對應(yīng)支持恢復(fù)后的軟件操作即可,其可以避免整個系統(tǒng)死鎖現(xiàn)象的發(fā)生。
[0107]另本發(fā)明還可以將監(jiān)控裝置與總線追蹤裝置配合使用,提高了其兼容性,從而即可以記錄較長一段時間內(nèi)的所有命令操作,又可以實時報錯和異?;謴?fù)。
[0108]以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當可利用上述揭示的技術(shù)內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1.一種片上系統(tǒng)芯片,其特征在于,其包括:主設(shè)備、從設(shè)備、高速總線、及監(jiān)控裝置; 所述主設(shè)備連接所述高速總線的第一端口,所述從設(shè)備連接所述高速總線的第二端口,從而使所述主設(shè)備具有訪問所述從設(shè)備的能力; 所述監(jiān)控裝置設(shè)置在所述高速總線的所述第一端口與所述主設(shè)備之間、和/或所述高速總線的所述第二端口與所述從設(shè)備之間,用于基于高速總線通訊協(xié)議以記錄通過所述第一端口和/或所述第二端口的各個命令的狀態(tài)信息,且當出現(xiàn)有一個命令的狀態(tài)信息表示所述命令的操作處于超時狀態(tài)時,則上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點。
2.如權(quán)利要求1所述的片上系統(tǒng)芯片,其特征在于,在所述監(jiān)控裝置在上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點的步驟之后,所述節(jié)點處的所述監(jiān)控裝置代替對應(yīng)的所述主設(shè)備或所述從設(shè)備以虛擬方式完成處于超時狀態(tài)的所述命令,并對對應(yīng)的所述主設(shè)備或者所述從設(shè)備執(zhí)行復(fù)位操作。
3.如權(quán)利要求2所述的片上系統(tǒng)芯片,其特征在于,所述監(jiān)控裝置包括: 讀緩沖模塊,其包括至少一個讀緩沖器,用于記錄分配至所述讀緩沖器的讀命令的狀態(tài)息; 寫緩沖模塊,其包括至少一個寫緩沖器,用于記錄分配至所述寫緩沖器的寫命令的狀態(tài)息; 控制模塊,分別連接所述 讀緩沖模塊和所述寫緩沖模塊以控制所述讀緩沖模塊中的所述讀緩沖器和/或所述寫緩沖模塊中的所述寫緩沖器以虛擬方式完成所述主設(shè)備或者所述從設(shè)備的未完成的讀命令或者寫命令; 重置模塊,分別連接所述讀緩沖模塊和所述寫緩沖模塊以重置所述讀緩沖模塊中的所述讀緩沖器和/或所述寫緩沖模塊中的所述寫緩沖器。 其中,在所述讀緩沖模塊中的所述讀緩沖器和/或所述寫緩沖模塊中的所述寫緩沖器中,每一個緩沖器分別記錄分配到所述緩沖器中的命令的狀態(tài)、身份序號、未處理完的數(shù)據(jù)量和操作順序。
4.如權(quán)利要求3所述的片上系統(tǒng)芯片,其特征在于,所述讀緩沖模塊中的所述讀緩沖器的數(shù)量和所述寫緩沖模塊中的所述寫緩沖器的數(shù)量,分別與所述第一端口和所述第二端口各自支持的最大的未完結(jié)命令的數(shù)目相等,且所述第一端口支持的最大的未完結(jié)命令的數(shù)目和所述第二端口支持的最大的未完結(jié)命令的數(shù)目相同。
5.如權(quán)利要求4所述的片上系統(tǒng)芯片,其特征在于,所述監(jiān)控裝置的輸入包括第一端口信息/第二端口信息,而所述監(jiān)控裝置的輸出包括其內(nèi)的各個緩沖器中分配的各個命令的狀態(tài)信息和上報中斷。
6.如權(quán)利要求5所述的片上系統(tǒng)芯片,其特征在于,所述第一端口信息/第二端口信息包括讀/寫命令、讀/寫數(shù)據(jù)、寫響應(yīng)或者讀響應(yīng)。
7.如權(quán)利要求5所述的片上系統(tǒng)芯片,其特征在于,所述各個緩沖器分配的各個命令的狀態(tài)信息包括讀/寫超時中斷、讀/寫命令超時狀態(tài)、讀/寫緩沖器狀態(tài)、讀/寫命令狀態(tài)、讀/寫命令順序、讀/寫命令身份序號信息、讀/寫命令地址信息、復(fù)位主設(shè)備/從設(shè)備時模擬主設(shè)備/從設(shè)備生成的信號、讀/寫命令延時。
8.如權(quán)利要求5所述的片上系統(tǒng)芯片,其特征在于,所述監(jiān)控裝置分配各個命令至其內(nèi)的各個緩沖器以使各個緩沖器分別記錄分配的命令的狀態(tài)信息,其中,屬于不同身份序號的命令分別分配給不同的緩沖器;而屬于同一身份序號的不同命令分配給不同的緩沖器時,進一步按照順序分配對應(yīng)的操作順序,以標識同一身份序號的不同命令的先后順序。
9.如權(quán)利要求5所述的片上系統(tǒng)芯片,其特征在于,所述緩沖器包括: 命令有效發(fā)出單元,用以記錄分配到所述緩沖器的命令是否有效寫入所述緩沖器中; 命令狀態(tài)單元,用以記錄分配到所述緩沖器的命令的狀態(tài)信息是占用還是空閑; 命令身份序號存儲單元,用以記錄分配到所述緩沖器的命令的身份序號; 命令操作順序單元,用以記錄分配到所述緩沖器的命令的操作順序; 未處理完的數(shù)據(jù)量單元,用以記錄分配到所述緩沖器的命令所對應(yīng)的數(shù)據(jù)中未處理完的數(shù)據(jù)量; 命令處理完畢單元,用以記錄分配到所述緩沖器的命令是否在配置的時間內(nèi)完成; 命令跳轉(zhuǎn)狀態(tài)單元,用以記錄分配到所述緩沖器的命令當前的具體狀態(tài); 讀命令延時單元,用以記錄分配到所述緩沖器的命令在配置的時間內(nèi)完成時,則獲得命令延時; 超時狀態(tài)單元,用以記錄分配到所述緩沖器中的命令的超時狀態(tài); 超時中斷單元,用以在命令的狀態(tài)跳轉(zhuǎn)到超時狀態(tài)時,上報中斷; 緩沖器狀態(tài)單元,用以記錄所述緩沖器的狀態(tài);以及 命令地址存儲單元,用以記錄分配到所述緩沖器的命令的存儲地址。
10.如權(quán)利要求9所述的片上系統(tǒng)芯片,其特征在于,分配至所述緩沖器的命令為讀命令時,則所述緩沖器記錄的所述讀命令的狀態(tài)包括IDLE、RCM_ACT、RCM_ACK、RDAT_ACT、RDAT_ACK, RDAT_FSH0
11.如權(quán)利要求9所述的片上系統(tǒng)芯片,其特征在于,分配至所述緩沖器的命令為寫命令時,則所述緩沖器記錄的所述寫命令的狀態(tài)包括WIDLE、WAIT_WACT、WDAT_ACT、WDAT_ACK、WDAT_FSH、WCM_ACT、WCM_ACK、WLST_FSH、BRSP_ACT、BRSP_FSH。
12.如權(quán)利要求1-11任一項所述的片上系統(tǒng)芯片,其特征在于,所述監(jiān)控裝置進一步連接至調(diào)試總線,用以將其所記錄的各個命令的狀態(tài)信息導(dǎo)出,從而存儲所述監(jiān)控裝置所記錄的各個命令的狀態(tài)信息。
13.如權(quán)利要求1-11任一項所述的片上系統(tǒng)芯片,其特征在于,所述高速總線的所述端口處可以進一步設(shè)置總線追蹤裝置,以記錄經(jīng)過所述端口的各個命令,其中,所述總線追蹤裝置與所述監(jiān)控裝置相互配合,以記錄經(jīng)過所述端口的各個命令以及各個命令的狀態(tài)信息O
14.一種應(yīng)用于片上系統(tǒng)芯片的監(jiān)控方法,其特征在于,所述片上系統(tǒng)芯片包括主設(shè)備、從設(shè)備、高速總線、及監(jiān)控裝置,所述主設(shè)備連接所述高速總線的第一端口,所述從設(shè)備連接所述高速總線的第二端口從而使所述主設(shè)備具有訪問所述從設(shè)備的能力,而所述監(jiān)控裝置設(shè)置在所述高速總線的所述第一端口與所述主設(shè)備之間、和/或所述高速總線的所述第二端口與所述從設(shè)備之間;其中,所述監(jiān)控方法包括: 利用所述監(jiān)控裝置基于高速總線通訊協(xié)議而記錄通過所述第一端口和/或所述第二端口的各個命令的狀態(tài)信息; 當出現(xiàn)有一個命令的狀態(tài)信息表示所述命令的操作處于超時狀態(tài)時,所述監(jiān)控裝置上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點。
15.如權(quán)利要求14所述的監(jiān)控方法,其特征在于,在所述監(jiān)控裝置上報中斷以定位所述高速總線出現(xiàn)問題的節(jié)點的步驟之后,所述節(jié)點處的所述監(jiān)控裝置代替對應(yīng)的所述主設(shè)備或所述從設(shè)備以虛擬方式完成處于超時狀態(tài)的所 述命令,并對對應(yīng)的所述主設(shè)備或所述從設(shè)備執(zhí)行復(fù)位操作。
【文檔編號】G06F11/30GK103810074SQ201210457400
【公開日】2014年5月21日 申請日期:2012年11月14日 優(yōu)先權(quán)日:2012年11月14日
【發(fā)明者】牟澄磊, 韓奇 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1