一種可配置的動態時間片輪轉調度算法
【專利摘要】本發明公開了一種可配置的動態時間片輪轉調度算法,該調度算法適用于在線跟蹤系統中多個在線跟蹤單元需要通過單一傳輸接口進行數據輸出的情況。該算法通過配置相應的門限值、時間片長度以及優先級,結合對在線跟蹤單元的活動態判斷,采用兩種查詢方式對各在線跟蹤單元的數據輸出請求進行仲裁。本發明能夠在低資源消耗、低數據溢出率以及高可擴展性的前提下實現對多路跟蹤數據的合成,從而解決在線跟蹤系統中的多數據緩存隊列的調度問題。
【專利說明】
一種可配置的動態時間片輪轉調度算法
技術領域
[0001]本發明屬于總線仲裁技術領域,具體地說是一種結合門限和活動態判斷的可配置動態時間片輪轉調度算法。
【背景技術】
[0002]當異構多核SoC逐漸成為集成電路的主流時,快速有效的調試技術已經成為降低SoC設計成本的關鍵。在線調試技術能夠在完全不干擾多核系統運行下實時獲取想要的調試信息,是調試設計的重要研究方向。在線調試必然涉及到在線跟蹤系統的設計,為減少對芯片管腳資源的占用,在線跟蹤系統通常只設置一個輸出端口,故輸出端口成為在線跟蹤系統的帶寬瓶頸。對于多核系統的在線跟蹤而言,多資源節點的跟蹤數據需要匯合至單一跟蹤傳輸接口,用于多數據緩存隊列的合成調度算法是多核系統的在線跟蹤設計的關鍵技術之一,也是決定數據傳輸效率和緩存利用率的關鍵因素。其設計常需要考慮數據溢出率、隊列優先級、隊列切換開銷、面積約束和時間約束等等。
[0003]常見的解決在線跟蹤數據合成的調度方法有:ARM的CoreSight架構中的TraceFunnel模塊。該模塊通過為每個隊列設置互不相同的優先級和各隊列相同的最小響應粒度HTC(H0ld Time Cycle),采用非搶占式窮盡優先響應方式,每次響應至少為HTC。這種調度方式的硬件開銷小,但窮盡優先響應方式往往造成高優先級隊列的緩沖空間尚未充分利用而低優先級隊列溢出嚴重;再如LBF(Local Binary Fitting)算法優先響應歸一化緩沖區長度(對長與緩沖容量之比)最大的緩沖隊列,但歸一化需要除法操作,使得該算法實現復雜,并且緩沖區長度間的相互比較使得擴展性差;緩沖隊列沒有優先級差別,也未考慮減少隊列切換次數;也有提出依照不同概率對各優先級隊列進行響應的方法,但產生隨機數及相關運算的硬件代價過高。
【發明內容】
[0004]本發明是為了克服現有技術存在的不足之處,提供一種可配置的動態時間片輪轉調度算法,以期能在低資源消耗、低數據溢出率以及高可擴展性的前提下實現對多路跟蹤數據的合成,從而能夠解決在線跟蹤系統中的多數據緩存隊列的調度問題。
[0005]本發明為解決技術問題采用如下技術方案:
[0006]本發明一種可配置的動態時間片輪轉調度算法,是應用于在線跟蹤系統中,所述在線跟蹤系統包括:η個在線跟蹤單元、一個總線仲裁單元和一個跟蹤傳輸接口;所述η個在線跟蹤單元分別對應于η個資源節點,用于采集相應資源節點中的數據,并在請求得到響應后將數據傳輸至所述總線仲裁單元;所述總線仲裁單元通過所述跟蹤傳輸接口進行數據輸出;其特點是,所述總線仲裁單元是按如下步驟對請求進行動態時間片輪轉調度:
[0007]步驟1、設置門限
[0008]根據所述η個在線跟蹤單元中各自緩存FIFO容量設置相應的門限值,記為(A1,A2,...,Ai,...,An},Ai表示第i個在線跟蹤單元的門限值;I < i <n;
[0009]當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊2仏時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為緊急態請求;
[0010]當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長(XAifB1時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為增長態請求;
[0011]當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊=0時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為空態請求;
[0012]步驟2、所述總線仲裁單元對所述第i個在線跟蹤單元的緩存FIFO寫使能進行檢測,若緩存FIFO寫使能為高電平,則判定所述第i個在線跟蹤單元為活動態;若緩存FIFO寫使能為低電平,則判定所述第i個在線跟蹤單元為非活動態;
[0013]步驟3、所述總線仲裁單元根據第i個在線跟蹤單元的緩存FIFO容量設置相應的時間片長度,記為(SiS2r^S1,…,SnKS1表示第i個在線跟蹤單元的時間片長度;
[0014]步驟4、所述總線仲裁單元設置η個在線跟蹤單元的響應優先級;
[0015]步驟5、所述總線仲裁單元中設置一緊急態寄存器U,所述第i個在線跟蹤單元對應于所述緊急態寄存器U中的第i位;
[0016]當第i個在線跟蹤單元處于緊急態時,則將緊急態寄存器U中的第i位設置為“I”;
[0017]當第i個在線跟蹤單元處于增長態或空態時,則將緊急態寄存器U中的第i位設置為 “O”;
[0018]步驟6、所述總線仲裁單元設置一活動態寄存器V,所述第i個在線跟蹤單元對應于所述活動寄存器V中的第i位;
[0019]當第i個在線跟蹤單元處于活動態時,則將活動態寄存器V中的第i位設置為“I”;
[0020]當第i個在線跟蹤單元處于非活動態時,則將活動態寄存器V中的第i位設置為“O” ;
[0021]步驟7、所述總線仲裁單元設置一請求寄存器R,所述第i個在線跟蹤單元對應于所述請求寄存器R中的第i位;
[0022]當第i個在線跟蹤單元的緩存FIFO為非空時,則將所述請求寄存器R中的第i位設置為“I”;
[0023]當第i個在線跟蹤單元的緩存FIFO為空時,則將所述請求寄存器R中的第i位設置為 “O”;
[0024]步驟8、所述總線仲裁單元對所述緊急態寄存器U進行按位“或”操作,得到操作結果u ;
[0025]步驟9、所述總線仲裁單元對所述活動寄存器V進行按位“或”操作,得到操作結果
V;
[0026]步驟10、所述總線仲裁單元對所述請求寄存器R進行按位“或”操作,得到操作結果r;
[0027]步驟11、假設第i個在線跟蹤單元最先接收到數據,則將所述第i個在線跟蹤單元作為當前響應跟蹤單元;此時,所述操作結果r為“I”,并啟動計數器進行計數;
[0028]步驟12、當計數器的值小于當前響應跟蹤單元的時間片長度且請求寄存器R中當前響應跟蹤單元所對應的位為“I”時,所述總線仲裁單元獲取所述當前響應跟蹤單元的數據,并傳輸至跟蹤傳輸接口進行輸出,同時執行步驟13;
[0029]步驟13、判斷操作結果r是否為“O”,若為“O”,則停止計數器并清零;并返回步驟11;若不為“O”,則同時執行步驟14、步驟16、步驟18和步驟20后,再執行步驟22;
[0030]步驟14;所述總線仲裁單元獲取其余在線跟蹤單元中處于緊急態且活動態的在線跟蹤單元;判斷處于緊急態且活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟15;否則按照響應優先級從高到低的順序進行查詢,獲得優先級最高且處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元;
[0031]步驟15、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元;
[0032]步驟16、所述總線仲裁單元獲取其余在線跟蹤單元中處于緊急態的在線跟蹤單元;判斷處于緊急態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟17;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元;
[0033]步驟17、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元;
[0034]步驟18、所述總線仲裁單元獲取其余在線跟蹤單元中處于增長態和活動態的在線跟蹤單元;判斷處于增長態和活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟19;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元;
[0035]步驟19、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元;
[0036]步驟20、所述總線仲裁單元獲取其余在線跟蹤單元中處于增長態的在線跟蹤單元;判斷處于增長態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟21;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態的在線跟蹤單元,作為第四響應跟蹤單元;
[0037]步驟21、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態的在線跟蹤單元,作為第四響應跟蹤單元;
[0038]步驟22、當操作結果U= I且V= I時;以所述第一響應跟蹤單元作為下個響應跟蹤單元;
[0039]當操作結果U = I且V = O時;以所述第二響應跟蹤單元作為下個響應跟蹤單元;
[0040]當操作結果U = O且V = I時;以所述第三響應跟蹤單元作為下個響應跟蹤單元;
[0041]當操作結果U = O且V = O時;以所述第四響應跟蹤單元作為下個響應跟蹤單元;
[0042]步驟23、當計數器的值等于當前響應跟蹤單元的時間片長度或請求寄存器R中當前響應跟蹤單元所對應的位為“O”時,計數器清零;并將所述下個響應跟蹤單元作為當前響應跟蹤單元后,返回步驟12執行。
[0043]與已有技術相比,本發明有益效果體現在:
[0044]1、本發明的通過為各個在線跟蹤單元提供可配置的門限值、優先級以及時間片,并結合活動態的判斷,根據優先級的不同,采用兩種不同的查詢方式,克服了現有技術中高數據溢出率、高資源消耗以及可擴展性差等問題,從而使總線仲裁響應各個在線跟蹤單元的時間更加合理,減少了隊列切換和硬件開銷,提高了緩沖利用率。
[0045]2、本發明使得各個在線跟蹤單元能夠根據各自對應的緩存容量設置相應的門限值,并通過緊急態判斷,使總線仲裁優先響應緊急態的在線跟蹤單元;解決了Trace Funnel技術中高優先級的緩沖空間尚未充分利用而低優先級的溢出嚴重問題,降低了數據溢出率。
[0046]3、本發明中總線仲裁單元通過對各在線跟蹤單元的活動態進行判斷,結合緊急態的判斷,對在線跟蹤單元進行分類,在每一類中,根據配置的優先級是否相同,采用兩種查詢方式判斷出下一響應跟蹤單元;這種多方面的考慮使得總線仲裁單元響應各在線跟蹤單元的時間分配更加合理,提高了緩沖利用率。
[0047]4、本發明使得各個在線跟蹤單元能夠根據各自對應的緩存容量設置相應的時間片,充分考慮各在線跟蹤單元所需響應時間,有效減少隊列切換代價。
[0048]5、本發明通過設置緊急態寄存器、活動態寄存器以及請求寄存器來分別存儲各個在線跟蹤單元的狀態;當需要增加在線跟蹤單元時,只需要增加寄存器位寬即可,故該算法的可擴展性很好。
[0049]6、本發明的硬件實現中主要的邏輯運算是“或”運算,無需算術運算,資源消耗小;該模塊在Xilinx公司Virtex 7系列的XC7V2000T FPGA芯片上進行原型驗證,資源消耗為33個靜態寄存器和529個靜態LUT。
【具體實施方式】
[0050]本實施例中,一種可配置的動態時間片輪轉調度算法,是應用于在線跟蹤系統中,在線跟蹤系統包括:η個在線跟蹤單元、一個總線仲裁單元和一個跟蹤傳輸接口;η個在線跟蹤單元分別對應于η個資源節點,用于采集相應資源節點中的數據,并在請求得到響應后將數據傳輸至總線仲裁單元;總線仲裁單元通過跟蹤傳輸接口進行數據輸出;
[0051]總線仲裁單元是按如下步驟對請求進行動態時間片輪轉調度:
[0052]步驟1、設置門限
[0053]根據η個在線跟蹤單元中各自緩存FIFO容量設置相應的門限值,記為…,A1,…,AnKA1表示第i個在線跟蹤單元的門限值;I Si Sn;由于資源節點中的數據特性不同,在線跟蹤單元采集到的數據量也不同,為了節約硬件資源,在線跟蹤單元中的緩存FIFO容量也是各不相同的。為了后續緊急態判斷的合理性,門限值也需作不同設置。首先根據一個在線跟蹤單元中FIFO容量設置合適的門限值,再根據該在線跟蹤單元中門限值與容量的比例,設置其余在線跟蹤單元的門限值,如:當FIFO容量為512的在線跟蹤單元的門限值設置為400時;則FIFO容量為256的在線跟蹤單元的門限值需設置為200。
[0054]當第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊2仏時,則總線仲裁單元將第i個在線跟蹤單元所發送的請求設置為緊急態請求;
[0055]當第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長OfA^B1時,則總線仲裁單元將第i個在線跟蹤單元所發送的請求設置為增長態請求;
[0056]當第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊=0時,則總線仲裁單元將第i個在線跟蹤單元所發送的請求設置為空態請求;
[0057]步驟2、總線仲裁單元對第i個在線跟蹤單元的緩存FIFO寫使能進行檢測,若緩存FIFO寫使能為高電平,則判定第i個在線跟蹤單元為活動態;若緩存FIFO寫使能為低電平,則判定第i個在線跟蹤單元為非活動態;
[0058]步驟3、總線仲裁單元根據第i個在線跟蹤單元的緩存FIFO容量設置相應的時間片長度,記為{&,&,…,S1,…,SnKS1表示第i個在線跟蹤單元的時間片長度;時間片長度的設置也應同門限的設置規律相同,如:當FIFO容量為512的在線跟蹤單元的時間片長度值設置為64時;則FIFO容量為256的的在線跟蹤單元的時間片長度值需設置為32。此外時間片長度太大會增加緩存溢出風險,太小則會導致隊列頻繁切換,增加時間浪費和帶寬浪費。
[0059]步驟4、總線仲裁單元設置η個在線跟蹤單元的響應優先級;優先級可以全部相同,可以全部不同,可以局部相同。該算法的硬件實現中,每個在線跟蹤單元的優先級用一個寄存器的值來表示,該值越大則優先級越高。
[0060]步驟5、總線仲裁單元中設置一緊急態寄存器U,第i個在線跟蹤單元對應于緊急態寄存器U中的第i位;
[0061]當第i個在線跟蹤單元處于緊急態時,則將緊急態寄存器U中的第i位設置為“I”;
[0062]當第i個在線跟蹤單元處于增長態或空態時,則將緊急態寄存器U中的第i位設置為 “O”;
[0063]步驟6、總線仲裁單元設置一活動態寄存器V,第i個在線跟蹤單元對應于活動寄存器V中的第i位;
[0064]當第i個在線跟蹤單元處于活動態時,則將活動態寄存器V中的第i位設置為“I”;
[0065]當第i個在線跟蹤單元處于非活動態時,則將活動態寄存器V中的第i位設置為“O” ;
[0066]步驟7、總線仲裁單元設置一請求寄存器R,第i個在線跟蹤單元對應于請求寄存器R中的第i位;
[0067]當第i個在線跟蹤單元的緩存FIFO為非空時,則將請求寄存器R中的第i位設置為丄;
[0068]當第i個在線跟蹤單元的緩存FIFO為空時,則將請求寄存器R中的第i位設置為“O” ;
[0069]R與U相同位的值只可能出現“I”與T、“I”與“O”以及“O”與“O”三種不同情況,當R與U相同位的值不同時,可知該位對應的在線跟蹤單元處于增長態。
[0070]步驟8、總線仲裁單元對緊急態寄存器U進行按位“或”操作,得到操作結果U。當u等于I時,則表示存在處于緊急態的在線跟蹤單元;當u等于O時,則表示不存在處于緊急態的在線跟蹤單元;
[0071]步驟9、總線仲裁單元對活動寄存器V進行按位“或”操作,得到操作結果V。當V等于I時,則表示存在處于活動態的在線跟蹤單元;當V等于O時,則表示不存在處于活動態的在線跟蹤單元;
[0072]步驟10、總線仲裁單元對請求寄存器R進行按位“或”操作,得到操作結果r。當r等于I時,則表示存在在線跟蹤單元正在請求仲裁單元的響應;當r等于O時,則表示所有在線跟蹤單元的緩沖FIFO均不存在數據需要輸出;
[0073]步驟11、假設第i個在線跟蹤單元最先接收到數據,則將第i個在線跟蹤單元作為當前響應跟蹤單元;此時,操作結果r為“I”,并啟動計數器進行計數;
[0074]步驟12、當計數器的值小于當前響應跟蹤單元的時間片長度且請求寄存器R中當前響應跟蹤單元所對應的位為“I”時,總線仲裁單元獲取當前響應跟蹤單元的數據,并傳輸至跟蹤傳輸接口進行輸出,同時執行步驟13;
[0075]步驟13、判斷操作結果r是否為“O”,若為“O”,則停止計數器并清零;并返回步驟11;若不為“O”,則同時執行步驟14、步驟16、步驟18和步驟20后,再執行步驟22;
[0076]步驟14;總線仲裁單元獲取其余在線跟蹤單元中處于緊急態且活動態的在線跟蹤單元;判斷處于緊急態且活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟15;否則按照響應優先級從高到低的順序進行查詢,獲得優先級最高且處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元;
[0077]步驟15、總線仲裁單元從緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元;這里順時針查詢方式是指,假設緊急態寄存器U中當前響應跟蹤單元所對應的位是第i位,則判斷i+Ι所對應的在線跟蹤單元是否滿足既是緊急態又是活動態的條件,若滿足則將其作為第一響應跟蹤單元,若不滿足,則繼續判斷i+2位,直至輪轉到第i位。
[0078]步驟16、總線仲裁單元獲取其余在線跟蹤單元中處于緊急態的在線跟蹤單元;判斷處于緊急態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟17;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元;
[0079 ]步驟17、總線仲裁單元從緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元;
[0080]步驟18、總線仲裁單元獲取其余在線跟蹤單元中處于增長態和活動態的在線跟蹤單元;判斷處于增長態和活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟19;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元;
[0081 ]步驟19、總線仲裁單元從緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元;
[0082]步驟20、總線仲裁單元獲取其余在線跟蹤單元中處于增長態的在線跟蹤單元;判斷處于增長態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟21;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態的在線跟蹤單元,作為第四響應跟蹤單元;
[0083]步驟21、總線仲裁單元從緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態的在線跟蹤單元,作為第四響應跟蹤單元;
[0084]步驟22、當操作結果U = I且V = I時;以第一響應跟蹤單元作為下個響應跟蹤單元;
[0085]當操作結果u = I且v = 0時;以第二響應跟蹤單元作為下個響應跟蹤單元;
[0086]當操作結果U = O且V = I時;以第三響應跟蹤單元作為下個響應跟蹤單元;
[0087]當操作結果U = O且V = O時;以第四響應跟蹤單元作為下個響應跟蹤單元;
[0088]步驟23、當計數器的值等于當前響應跟蹤單元的時間片長度或請求寄存器R中當前響應跟蹤單元所對應的位為“O”時,計數器清零;并將下個響應跟蹤單元作為當前響應跟蹤單元后,返回步驟12執行。
【主權項】
1.一種可配置的動態時間片輪轉調度算法,是應用于在線跟蹤系統中,所述在線跟蹤系統包括:η個在線跟蹤單元、一個總線仲裁單元和一個跟蹤傳輸接口;所述η個在線跟蹤單元分別對應于η個資源節點,用于采集相應資源節點中的數據,并在請求得到響應后將數據傳輸至所述總線仲裁單元;所述總線仲裁單元通過所述跟蹤傳輸接口進行數據輸出;其特征是,所述總線仲裁單元是按如下步驟對請求進行動態時間片輪轉調度: 步驟1、設置門限 根據所述η個在線跟蹤單元中各自緩存FIFO容量設置相應的門限值,記為…,A1,…,An} ,A1表示第i個在線跟蹤單元的門限值;I < i < η; 當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊2仏時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為緊急態請求; 當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長(XAifB1時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為增長態請求; 當所述第i個在線跟蹤單元中存儲的數據所形成的緩沖隊列長隊=0時,則所述總線仲裁單元將所述第i個在線跟蹤單元所發送的請求設置為空態請求; 步驟2、所述總線仲裁單元對所述第i個在線跟蹤單元的緩存FIFO寫使能進行檢測,若緩存FIFO寫使能為高電平,則判定所述第i個在線跟蹤單元為活動態;若緩存FIFO寫使能為低電平,則判定所述第i個在線跟蹤單元為非活動態; 步驟3、所述總線仲裁單元根據第i個在線跟蹤單元的緩存FIFO容量設置相應的時間片長度,記為故,&,...,S1,…,SnKS1表示第i個在線跟蹤單元的時間片長度; 步驟4、所述總線仲裁單元設置η個在線跟蹤單元的響應優先級; 步驟5、所述總線仲裁單元中設置一緊急態寄存器U,所述第i個在線跟蹤單元對應于所述緊急態寄存器U中的第i位; 當第i個在線跟蹤單元處于緊急態時,則將緊急態寄存器U中的第i位設置為“I” ; 當第i個在線跟蹤單元處于增長態或空態時,則將緊急態寄存器U中的第i位設置為“O” ; 步驟6、所述總線仲裁單元設置一活動態寄存器V,所述第i個在線跟蹤單元對應于所述活動寄存器V中的第i位; 當第i個在線跟蹤單元處于活動態時,則將活動態寄存器V中的第i位設置為“I” ; 當第i個在線跟蹤單元處于非活動態時,則將活動態寄存器V中的第i位設置為“O” ; 步驟7、所述總線仲裁單元設置一請求寄存器R,所述第i個在線跟蹤單元對應于所述請求寄存器R中的第i位; 當第i個在線跟蹤單元的緩存FIFO為非空時,則將所述請求寄存器R中的第i位設置為丄; 當第i個在線跟蹤單元的緩存FIFO為空時,則將所述請求寄存器R中的第i位設置為“O” ; 步驟8、所述總線仲裁單元對所述緊急態寄存器U進行按位“或”操作,得到操作結果u; 步驟9、所述總線仲裁單元對所述活動寄存器V進行按位“或”操作,得到操作結果V; 步驟10、所述總線仲裁單元對所述請求寄存器R進行按位“或”操作,得到操作結果r; 步驟11、假設第i個在線跟蹤單元最先接收到數據,則將所述第i個在線跟蹤單元作為當前響應跟蹤單元;此時,所述操作結果r為“I”,并啟動計數器進行計數; 步驟12、當計數器的值小于當前響應跟蹤單元的時間片長度且請求寄存器R中當前響應跟蹤單元所對應的位為“I”時,所述總線仲裁單元獲取所述當前響應跟蹤單元的數據,并傳輸至跟蹤傳輸接口進行輸出,同時執行步驟13; 步驟13、判斷操作結果r是否為“O”,若為“O”,則停止計數器并清零;并返回步驟11;若不為“O”,則同時執行步驟14、步驟16、步驟18和步驟20后,再執行步驟22; 步驟14;所述總線仲裁單元獲取其余在線跟蹤單元中處于緊急態且活動態的在線跟蹤單元;判斷處于緊急態且活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟15;否則按照響應優先級從高到低的順序進行查詢,獲得優先級最高且處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元; 步驟15、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態和活動態的在線跟蹤單元,作為第一響應跟蹤單元; 步驟16、所述總線仲裁單元獲取其余在線跟蹤單元中處于緊急態的在線跟蹤單元;判斷處于緊急態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟17;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元; 步驟17、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于緊急態的在線跟蹤單元,作為第二響應跟蹤單元; 步驟18、所述總線仲裁單元獲取其余在線跟蹤單元中處于增長態和活動態的在線跟蹤單元;判斷處于增長態和活動態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟19;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元; 步驟19、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態和活動態的在線跟蹤單元,作為第三響應跟蹤單元; 步驟20、所述總線仲裁單元獲取其余在線跟蹤單元中處于增長態的在線跟蹤單元;判斷處于增長態的在線跟蹤單元的響應優先級是否相同,若相同,則執行步驟21;否則按照響應優先級從高到低的順序進行查詢,獲得到優先級最高且處于增長態的在線跟蹤單元,作為第四響應跟蹤單元; 步驟21、所述總線仲裁單元從所述緊急態寄存器U中當前響應跟蹤單元所對應的位開始,按照順時針輪轉查詢相應的在線跟蹤單元;獲得處于增長態的在線跟蹤單元,作為第四響應跟蹤單元; 步驟22、當操作結果U= I且V= I時;以所述第一響應跟蹤單元作為下個響應跟蹤單元; 當操作結果U= I且v = 0時;以所述第二響應跟蹤單元作為下個響應跟蹤單元; 當操作結果u = 0且V= I時;以所述第三響應跟蹤單元作為下個響應跟蹤單元; 當操作結果u = 0且v = 0時;以所述第四響應跟蹤單元作為下個響應跟蹤單元;步驟23、當計數器的值等于當前響應跟蹤單元的時間片長度或請求寄存器R中當前響應跟蹤單元所對應的位為“O”時,計數器清零;并將所述下個響應跟蹤單元作為當前響應跟蹤單元后,返回步驟12執行。
【文檔編號】G06F13/366GK105824769SQ201610147991
【公開日】2016年8月3日
【申請日】2016年3月14日
【發明人】宋宇鯤, 焦瑞, 張多利, 王存
【申請人】合肥工業大學