一種總線性能分析方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及總線性能分析領(lǐng)域,尤其涉及一種總線性能分析方法和裝置。
【背景技術(shù)】
[0002 ]隨著智能時(shí)代的到來,基于ARM內(nèi)核的S0C集成電路得到了空前的發(fā)展,在ARM總線架構(gòu)中,基于AXI (Advanced extensible Interface)總線協(xié)議的一致性互聯(lián)目前是S0C互聯(lián)的主流。在很多IP設(shè)計(jì)中都會掛接在AXI BUS上,AXI總線的性能很大程度上反映了IP性能。因此對于此類IP性能分析就顯得很必要,目前對于AXI總線讀寫IP性能的分析模塊邏輯復(fù)雜,占用面積很大,這對S0C設(shè)計(jì)規(guī)劃是一個(gè)很大的挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0003]為此,需要提供一種總線性能分析方法和裝置,解決現(xiàn)有總線性能分析結(jié)構(gòu)模塊復(fù)雜、占用面積大的問題。
[0004]為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種總線性能分析方法,包括如下步驟:
[0005]地址檢測步驟:檢測讀地址通道有一筆命令信息發(fā)出時(shí)開始計(jì)時(shí);
[0006]數(shù)據(jù)檢測步驟:檢測讀數(shù)據(jù)通道有該筆命令信息返回的數(shù)據(jù)信息時(shí)停止計(jì)時(shí),得到延遲時(shí)間;
[0007 ] 時(shí)間記錄步驟:記錄延遲時(shí)間并返回地址檢測步驟。
[0008]進(jìn)一步地,所述地址檢測步驟中“開始計(jì)時(shí)”包括開始計(jì)算時(shí)鐘周期個(gè)數(shù);
[0009]所述數(shù)據(jù)檢測步驟中“停止計(jì)時(shí),得到延遲時(shí)間”包括停止計(jì)算時(shí)鐘周期個(gè)數(shù),根據(jù)時(shí)鐘周期的個(gè)數(shù)和時(shí)鐘周期的時(shí)間的乘積得到延遲時(shí)間。
[0010]進(jìn)一步地,所述時(shí)間記錄步驟在記錄延遲時(shí)間時(shí),判斷該延遲時(shí)間是否大于最大延遲時(shí)間,如果是則將該延遲時(shí)間記錄為最大延遲時(shí)間,并返回地址檢測步驟,否則返回地址檢測步驟。
[0011 ] 進(jìn)一步地,所述時(shí)間記錄步驟在記錄延遲時(shí)間時(shí),計(jì)算該延遲時(shí)間與平均延遲時(shí)間的算術(shù)平均值為新的平均延遲時(shí)間并返回地址檢測步驟。
[0012]進(jìn)一步地,所述總線為AXI總線;則在地址檢測步驟檢測讀地址通道有一筆命令信息發(fā)出時(shí)記錄該命令信號對應(yīng)的標(biāo)識信息;在數(shù)據(jù)檢測步驟通過檢測標(biāo)識信息來檢測讀數(shù)據(jù)通道有該筆命令信息返回的數(shù)據(jù)信息。
[0013]以及本發(fā)明還提供一種總線性能分析裝置,包括如下模塊:
[0014]讀寫命令模塊和性能統(tǒng)計(jì)模塊,所述讀寫命令模塊和性能統(tǒng)計(jì)模塊連接,性能統(tǒng)計(jì)模塊包含有初始化模塊,其中:
[0015]初始化模塊:用于初始化各個(gè)狀態(tài)、模塊并初始化性能分析條件給性能統(tǒng)計(jì)模塊;
[0016]讀寫命令模塊:用于與總線連接并發(fā)送讀寫命令到總線上;
[0017]性能統(tǒng)計(jì)模塊:用于檢測讀地址通道有一筆命令信息發(fā)出時(shí)開始計(jì)時(shí),檢測讀數(shù)據(jù)通道有該筆命令信息返回的數(shù)據(jù)信息時(shí)停止計(jì)時(shí),得到延遲時(shí)間,記錄延遲時(shí)間并根據(jù)性能分析條件分析性能狀態(tài),而后重新使能性能統(tǒng)計(jì)模塊自身。
[0018]進(jìn)一步地,所述性能分析條件包括最大延遲時(shí)間和平均延遲時(shí)間。
[0019]區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案通過檢測每一個(gè)延時(shí)后,并在檢測完畢后進(jìn)行下一個(gè)檢測,這樣所需要的存儲空間小,消耗的代價(jià)小,在實(shí)現(xiàn)的時(shí)候可以降低性能分析模塊邏輯的面積和復(fù)雜度。
【附圖說明】
[0020]圖1為一實(shí)施例的結(jié)構(gòu)示意圖;
[0021 ]圖2為方法實(shí)施例的流程圖;
[0022]圖3為一實(shí)施例的狀態(tài)不意圖;
[0023 ]圖4為本發(fā)明一實(shí)施例的裝置架構(gòu)圖。
[0024]附圖標(biāo)記說明:
[0025]301、讀寫命令模塊,302、性能統(tǒng)計(jì)模塊,303、初始化模塊。
【具體實(shí)施方式】
[0026]為詳細(xì)說明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合具體實(shí)施例并配合附圖詳予說明。
[0027]請參閱圖1到圖4,本實(shí)施例首先提供了一種總線性能分析方法,總線性能分析很重要的步驟是獲取總線讀寫命令的延時(shí),并根據(jù)延遲時(shí)間來評判總線性能,延遲時(shí)間長的總線比延遲時(shí)間短的總線的性能要差。如圖1所示,本方法包括如下步驟,步驟S101地址檢測步驟:檢測讀地址通道有一筆命令信息發(fā)出時(shí)開始計(jì)時(shí)。而后進(jìn)入步驟S102數(shù)據(jù)檢測步驟:檢測讀數(shù)據(jù)通道有該筆命令信息返回的數(shù)據(jù)信息時(shí)停止計(jì)時(shí),從而可以得到延遲時(shí)間。而后進(jìn)入在步驟S103時(shí)間記錄步驟:記錄延遲時(shí)間并返回地址檢測步驟。本發(fā)明在記錄時(shí)間的時(shí)候,只需要一個(gè)線程對地址或數(shù)據(jù)通道進(jìn)行記錄即可,并可記錄下延遲時(shí)間,而現(xiàn)有技術(shù)需要使用多個(gè)線程對地址或數(shù)據(jù)通道進(jìn)行多個(gè)并發(fā)地檢測,多個(gè)線程占用的資源非常大,而本發(fā)明的單個(gè)線程占用的資源小,實(shí)現(xiàn)起來的邏輯架構(gòu)也小,實(shí)現(xiàn)簡單。根據(jù)記錄下來的延遲時(shí)間,即可以分析出總線的性能。
[0028]計(jì)時(shí)時(shí)間具有多種實(shí)現(xiàn)方式,在本發(fā)明中,所述地址檢測步驟中“開始計(jì)時(shí)”包括開始計(jì)算時(shí)鐘周期個(gè)數(shù);所述數(shù)據(jù)檢測步驟中“停止計(jì)時(shí),得到延遲時(shí)間”包括停止計(jì)算時(shí)鐘周期個(gè)數(shù),根據(jù)時(shí)鐘周期的個(gè)數(shù)和時(shí)鐘周期的時(shí)間的乘積得到延遲時(shí)間。直接使用系統(tǒng)時(shí)鐘進(jìn)行計(jì)時(shí),計(jì)時(shí)更加準(zhǔn)確。
[0029]對于不同的總線性能分析指標(biāo),如需要最大延遲時(shí)間,則本發(fā)明進(jìn)一步可以包含如下步驟,如圖1所示,所述時(shí)間記錄步驟在記錄延遲時(shí)間時(shí),在步驟S104判斷該延遲時(shí)間是否大于最大延遲時(shí)間,如果是則進(jìn)入步驟S105將該延遲時(shí)間記錄為最大延遲時(shí)間,并返回步驟S101地址檢測步驟,否則直接返回步驟S101地址檢測步驟。這樣,本發(fā)明在取得最大時(shí)間時(shí)也只需要一個(gè)線程即可完成,該線程記錄時(shí)間后直接比較并記錄最大的延遲時(shí)間,在檢測完畢后,記錄下的延遲時(shí)間即為總線的最大延遲時(shí)間。當(dāng)然,初始時(shí)的最大延遲時(shí)間可以是0,而后檢測到延遲時(shí)間后即可以比較并記錄。而現(xiàn)有技術(shù)需要多個(gè)線程同時(shí)記錄每個(gè)命令讀地址通道的地址發(fā)出時(shí)間和每個(gè)讀數(shù)據(jù)通道的數(shù)據(jù)返回時(shí)間,并得到每個(gè)命令的延遲時(shí)間,并在結(jié)束后比較所有的延遲時(shí)間才能得到最大延遲時(shí)間,這樣不僅需要多個(gè)線程,而且需要多個(gè)存儲位置進(jìn)行存儲才行,即現(xiàn)有技術(shù)占用的資源相對較大,而本發(fā)明可以利用較小的資源得到總線最大延遲時(shí)間,從而得到總線的性能。在延遲時(shí)間采用時(shí)鐘周期計(jì)數(shù)的實(shí)施例中,比較延遲時(shí)間可以采用比較時(shí)鐘周期的方式進(jìn)行。
[0030]在某些實(shí)施例中,需要總線的平均延遲時(shí)間對總線性能進(jìn)行評價(jià),則本發(fā)明在上述任一實(shí)施例的基礎(chǔ)上還可以包含有如下步驟。如圖2所示,圖2中的前面步驟S201到S203與圖1中的步驟S101到步驟S103相同,在步驟S203時(shí)間記錄步驟在記錄延遲時(shí)間時(shí),進(jìn)入步驟S204計(jì)算該延遲時(shí)間與平均延遲時(shí)間的算術(shù)平均值為新的平均延遲時(shí)間并返回步驟S201地址檢測步驟。這樣,本發(fā)明只需要一個(gè)線程即可直接得到平均延遲時(shí)間,在檢測結(jié)束后,記錄下來的延遲時(shí)間即為平均延遲時(shí)間。而現(xiàn)有技術(shù)需要記錄多個(gè)命令的延遲時(shí)間后,并進(jìn)行平均后才能得到,需要的存儲空間較大,占用的資源多。本發(fā)明在第一次獲取到延遲時(shí)間時(shí),此時(shí)的平均延遲時(shí)間并未獲得,應(yīng)該將該延遲時(shí)間記為平均延遲時(shí)間,而后從第二次獲取到延遲時(shí)間即可正常進(jìn)行算術(shù)平均計(jì)算,即將平均延遲時(shí)間和本次的延遲時(shí)間加和后除二即可。在延遲時(shí)間采用時(shí)鐘周期計(jì)數(shù)的實(shí)施例中,對延遲時(shí)間進(jìn)行算術(shù)平均計(jì)算可以采用對時(shí)鐘周期進(jìn)行算術(shù)平均計(jì)算的方式進(jìn)行。
[0031]本發(fā)明的上述方法可以應(yīng)用于多種總線,在某些實(shí)施例中,該總線為AXI總線。則在地址檢測步驟檢測讀地址通道有一筆命令信息發(fā)出時(shí)記錄該命令信號對應(yīng)的標(biāo)識信息;在數(shù)據(jù)檢測步驟通過檢測標(biāo)識信息來檢測讀數(shù)據(jù)通道有該筆命令信息返回的數(shù)據(jù)信息。為了進(jìn)一步說明在本發(fā)明獲取延遲時(shí)間的方法如何應(yīng)用到AXI總線上,以下結(jié)合圖3進(jìn)行說明。其中,AR通道表示的是讀地址通道,在該通道會發(fā)出cmd(命令)信息,該cmd信息包括每一筆transact1n(交易)的ID信息(標(biāo)識信息)以及地址和控制信號。圖3中的R通道表示的是讀數(shù)據(jù)通道,該通道會返回cmd所對對應(yīng)的data(數(shù)據(jù)),并帶有ID信息,可以和控制信號一一匹配。根據(jù)ID信息即可將讀地址通道的命令和讀數(shù)據(jù)通道的數(shù)據(jù)進(jìn)行對應(yīng)。其中,cmd還包括數(shù)據(jù)讀寫使能,讀寫地址,傳輸位寬,傳輸個(gè)數(shù)等信息。data還包括數(shù)據(jù)總線傳輸內(nèi)容。圖中圓圈內(nèi)具有數(shù)字表明是第