摘要:針對目前交換機的輸入緩沖區讀延遲增大導致交叉開關吞吐率下降的問題,提出了多VC共享預取結構SPB,用于隱藏數據緩沖區SRAM的讀延遲.設計了旁路寫入控制、讀寫地址管理、預取管理等關鍵功能,用Verilog語言實現了SPB結構,通過模擬器測試了SPB結構的讀寫性能.模擬和分析結果表明,采用SPB結構的輸入緩沖區能夠降低讀寫延遲,提高輸入緩沖區的寫入和讀出吞吐率.SPB結構能夠被方便地應用于靜態分配多隊列或動態分配多隊列緩沖區中,加快緩沖區的讀寫速度,從而提高整個交換機的吞吐率.
關鍵詞:交換機;緩沖電路;訪問控制
中圖分類號:TP338 文獻標識碼:A
A Multi-VC Shared Prefetch Structure for Input-buffered Switch
ZHANG He-ying, WANG Ke-fei, LIU Lu, XIAO Li-quan
(College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China)
Abstract: At present, the read latency of input buffer in switch is increasing, which greatly decreases the throughput of crossbar. To address this issue, a multi-VC shared prefetch structure was proposed in order to hide the read latency of data buffer implemented by SRAM with registered output. Some critical functions of SPB were designed, such as bypass write control, the management of write and read address, prefetch control, etc. Moreover, the SPB structure was implemented in Verilog and its performance was tested by cycle accurate simulator. The simulation results and analysis show that input buffer with SPB structure will not only decrease the read and write latency but also increase the throughput of the input buffer. The SPB structure proposed can be used in combination with either SAMQ or DAMQ buffer to speed up the read and write operation of the buffer, and further improve the throughput of the whole switch.
Key words: switches; buffer circuits; access control
高速互連網絡是超級計算機中的關鍵部件之一,在很大程度上決定了超級計算機的通信性能和整機性能.交換機是高速互連網絡的主要組成部分,其交換結構、緩沖區管理、微體系結構等關鍵技術一直是研究的熱點[1-5].根據緩沖區的位置可以將交換機劃分為:輸入緩沖交換機、輸出緩沖交換機、交叉點緩沖交換機等[6].其中輸入緩沖交換機無需交叉開關加速,容易實現,是目前高速互連網絡交換機的常用結構.
在高速互連網絡中,為了提高鏈路的利用率,單根物理鏈路通常被多個虛信道(Virtual Channel,簡稱VC)共享[7].相應地,輸入緩沖區需要接收多個VC的數據,并分別存放,這種緩沖區稱為多VC共享緩沖區.根據實現方式,可以將多VC共享緩沖區分為靜態多VC共享緩沖區和動態多VC共享緩沖區[8].靜態多VC共享緩沖區也稱為靜態分配多隊列SAMQ(Statically Allocated Multi-Queue),為每個VC分配獨立的緩沖區空間,每個VC只能使用固定位置、確定數量的緩沖空間.動態多VC共享緩沖區的典型代表是動態分配多隊列DAMQ(Dynamically Allocated Multi-Queue),所有共享緩沖區的VC的數據在緩沖區中隨機存放,每個VC占用的空間可以根據需要動態變化,只要緩沖區中有空閑空間,理論上任何一個VC都可以申請占用,除非出于緩沖區分配的公平性考慮,限制某些VC占用過多的緩沖區空間[9].動態多VC共享緩沖區相比于靜態多VC共享緩沖區能夠有效提高緩沖區利用率,但是實現復雜.隨著采用瓦片結構的大規模交叉開關的普及[3,10],交換芯片內部需要的存儲資源極大地增加,導致芯片面積開銷急劇增大.為了減少緩沖區占用的面積資源,DAMQ結構被用于構建大規模交叉開關的輸入緩沖區和行列緩沖區.
在輸入緩沖交換機的緩沖區實現中,無論是靜態多VC共享緩沖區還是動態多VC共享緩沖區,一般都采用標準SRAM(Static Random Access Memory)存儲器來實現.隨著工作頻率的提高,為了保證讀出數據的穩定可靠,SRAM的讀時序發生了重大變化.工作頻率低于700 MHz的SRAM讀延遲通常為1個時鐘周期,工作頻率大于700 MHz的SRAM讀延遲普遍增加為2個時鐘周期.這種SRAM一般被稱為寄存型SRAM,增加的延遲是由于將輸出的數據在SRAM內部寄存一拍(時鐘周期也稱為拍)才輸出而導致的.僅僅1個時鐘周期的延遲,對于交換機調度性能的影響非常大.在交換機輸入端口輸入的數據量比較大的情況下,從輸入緩沖區中連續讀出數據可以隱藏單個數據的讀出延遲.但是,當交換機的輸入端口輸入的數據量比較小,讀出數據非連續時,單個數據的讀出延遲無法隱藏,導致交換機吞吐率下降,數據轉發延遲增加.為了提高交換機的吞吐率,需要隱藏輸入緩沖區的讀出延遲,最理想的讀出時序是在讀請求輸入的同一時鐘周期讀出數據.
文獻[8]采用預取方法隱藏緩沖區的讀出延遲,用寄存器組為每個VC構造獨立的預取緩沖區,將數據提前從共享數據緩沖區讀出,保存到預取緩沖區.當交換機的端口數比較多,或者VC數量比較多的情況下,寄存器組占用的存儲空間比較大,而且不方便芯片設計的后端布局布線.為此,本文提出一種基于標準存儲單元RA(寄存器陣列Register Array)的多VC共享預取結構用于隱藏緩沖區讀出延遲,同時減少面積資源開銷.采用本文提出的預取結構,可以保證交換機的輸入緩沖區具有零延遲的讀寫性能,從而提高輸入緩沖交換機的吞吐率.
1 多VC共享預取結構
輸入緩沖交換機主要包括輸入端口、輸入緩沖區、仲裁器、輸出端口等.目前,出于節約成本和IP(Intellectual property)資源可獲得性考慮,高速互連網絡交換機的輸入緩沖區主要采用SRAM來實現.輸入緩沖區的深度是物理鏈路傳輸帶寬與點到點往返傳輸延遲之積,寬度是網絡中傳輸的最小數據單元,例如報文微片flit.隨著芯片工作頻率的提高,為了保證從SRAM中讀出數據的信號完整性和驅動能力,SRAM將讀出數據寄存輸出,導致讀延遲增大.工作頻率大于700 MHz的SRAM讀延遲為2個時鐘周期,即第一個時鐘周期收到讀請求和讀地址,第三個時鐘周期輸出數據.增加的讀延遲對交換機交叉開關的設計產生了較大的影響,需要屏蔽增加的讀延遲,才能夠保證交叉開關的吞吐率.
為此,本文提出了用快速多端口存儲器RA構建預取緩沖區以屏蔽SRAM讀延遲的輸入緩沖區結構,稱為SPB(Shared Prefetch Buffer).RA能夠在讀請求有效的當拍輸出數據,但是容量一般比SRAM小,適合用于保存少量數據、要求讀寫延遲比較低的場合.為了隱藏2個時鐘周期的SRAM讀延遲,每個VC在RA中至少需要占用3個存儲單元.為了避免計算地址時的加法運算,在預取緩沖區RA中為每個VC分配4個固定位置的存儲單元.不失一般性,假設n個VC共享同一個物理鏈路,n一般為大于1的自然數.輸入緩沖區需要保存n個VC的數據,預取緩沖區RA的深度為4n,寬度與數據緩沖區SRAM相同.在預取緩沖區RA中分配給每個VC的存儲空間地址見表1.
1.1 帶SPB結構的輸入緩沖區總體結構
帶有多VC共享預取結構SPB的輸入緩沖區總體結構如圖1所示,主要包括數據緩沖區SRAM,SRAM讀寫地址管理模塊,預取緩沖區RA,RA旁路寫入及讀寫地址管理模塊等.數據緩沖區SRAM用于保存從交換機輸入端口的物理鏈路上輸入的多個VC的數據,每個VC的數據按照FIFO(First-In First-Out)方式組織;SRAM讀寫地址管理模塊根據對SRAM的讀寫請求,生成讀寫SRAM的讀地址和寫地址;預取緩沖區RA用于保存提前從SRAM中讀出的數據,由于RA需要能夠同時接收從SRAM讀出的數據和旁路寫入的數據,因此選擇具有兩個寫端口和一個讀端口的RA作為預取緩沖區,每個VC的數據在預取緩沖區中也以FIFO方式組織.RA旁路寫入及讀寫地址管理模塊主要實現如下功能:1)根據數據寫入請求和數據讀出請求,計算每個VC在SRAM中保存的數據數量;2)根據每個VC在SRAM和RA中保存的數據數量,決定將輸入端口寫入的數據直接保存到預取緩沖區RA中還是寫入到SRAM中,分別生成RA旁路寫入請求和SRAM寫入請求;3)根據接收到的數據讀出請求和每個VC在SRAM中保存數據的計數值,生成SRAM讀請求;4)根據每個VC對RA的占用情況,生成預取緩沖區RA的兩個寫地址和一個讀地址,其中從SRAM讀出的數據通過寫端口1保存到RA中,旁路寫入的數據通過寫端口2保存到RA中.
SRAM讀寫地址管理模塊的具體實現與采用靜態方式或動態方式在VC之間分配數據緩沖區有關,文獻[8]給出了采用動態方式分配數據緩沖區的詳細實現細節.采用靜態方式分配數據緩沖區的實現比較簡單,一般是將數據緩沖區平均分配給n個VC,每個VC的數據存放在固定的存儲區域,按照FIFO方式組織.SRAM讀寫地址管理模塊分別根據對數據緩沖區的讀請求和寫請求遞增讀地址和寫地址.該模塊的具體實現不是本文的研究重點,在此不再贅述,本文主要研究RA旁路寫入及讀寫地址管理模塊的詳細實現.
1.2 SPB預取緩沖區讀寫管理
預取緩沖區讀寫管理集中在RA旁路寫入及讀寫地址管理模塊,主要根據接收到的數據寫入請求決定將數據寫入SRAM還是RA,以及寫入到RA中的位置;根據接收到的數據讀出請求決定從RA的哪個位置輸出數據.每個VC具有獨立的RA旁路寫入及讀寫地址管理模塊,相互之間的連接關系如圖2所示.RA旁路寫入及讀寫地址管理模塊的輸入信號包括數據寫入請求、數據讀出請求、SRAM讀響應,輸出信號包括RA旁路寫入請求、RA寫地址1、RA寫地址2、RA讀地址、SRAM讀請求、SRAM寫入請求等.
每個VC的RA旁路寫入及讀寫地址管理模塊從交換機的輸入端口接收數據寫入請求,從交換機的交叉開關仲裁器接收數據讀出請求,從數據緩沖區SRAM接收SRAM讀響應;生成SRAM寫入請
求和SRAM讀請求發送到SRAM讀寫地址管理模塊及數據緩沖區SRAM中;生成RA旁路寫入請求發送到預取緩沖區RA,每個時鐘周期最多有一個VC的RA旁路寫入請求有效,n個VC的RA旁路寫入請求中只要有一個有效,即在預取緩沖區RA的寫端口2生成寫請求;當SRAM讀響應有效時,生成寫請求發送到預取緩沖區RA的寫端口1;根據預取緩沖區RA的寫端口1的寫入請求,在n個VC的RA寫地址1中進行多路選擇,寫入請求有效的VC的RA寫地址1將被選中作為RA的寫端口1的寫地址,從SRAM中預取的數據將被保存到預取緩沖區的寫地址1指向的位置.類似地,根據預取緩沖區RA的寫端口2的寫入請求,在n個VC的RA寫地址2中進行多路選擇,寫入請求有效的VC的RA寫地址2將被選中作為RA的寫端口2的寫地址,旁路寫入的數據將被寫入到預取寄存器RA的寫地址2指向的位置.
RA旁路寫入及讀寫地址管理模塊根據數據讀出請求,生成對RA的讀請求,每個時鐘周期最多有一個VC的數據讀出請求有效,只要有VC的數據讀出請求有效即生成對預取緩沖區RA的讀請求;根據數據讀出請求,從n個VC的RA讀地址中進行多路選擇,數據讀出請求有效的VC的RA讀地址被選中作為預取緩沖區RA的讀地址.從讀地址輸出的數據將被發送到交換機的交叉開關仲裁器,通過交叉開關轉發到輸出端口.
1.3 RA旁路寫入及讀寫地址管理
每個VC的RA旁路寫入及讀寫地址管理模塊的結構均相同,如圖3所示.主要包括RA旁路寫入管理模塊、SRAM數據計數模塊、SRAM讀請求生成模塊、RA讀地址管理模塊、SRAM讀響應寫入管理模塊等.
1.3.1 RA旁路寫入管理模塊
RA旁路寫入管理模塊接收數據寫入請求,生成RA旁路寫入請求和RA寫地址2,或者生成SRAM寫入請求.RA寫地址2是預取緩沖區RA的第2寫端口的寫地址.
每個VC在預取緩沖區RA中占用4個存儲空間,為了記錄每個存儲空間是否保存了有效數據,為每個存儲空間設置狀態變量.該狀態變量有3種取值,分別為:
0:沒有保存數據,也沒有請求從數據緩沖區SRAM中讀數據;
1:沒有保存數據,但是已經請求從數據緩沖區SRAM中讀數據;
2:保存了有效數據.
輸入緩沖區電路復位時,預取緩沖區RA中分配給每個VC的4個存儲單元的狀態被設置為0.收到VC的數據寫入請求時,根據該VC在SRAM中保存的數據的計數值和預取緩沖區4個存儲單元的狀態決定是否可以將輸入端口輸入的數據旁路寫入到預取緩沖區.具體判斷方法如下:若該VC在SRAM中保存的數據的計數值為0,而且預取緩沖區4個存儲單元中至少有一個的狀態為0,則生成RA旁路寫入請求;否則,生成SRAM寫入請求.如果預取緩沖區的4個存儲單元中僅有一個狀態為0,將該存儲單元的地址作為RA寫地址2,發送到預取緩沖區RA的寫端口2,將該存儲單元的狀態改為2;否則,若預取緩沖區的4個存儲單元中有多個狀態為0,需要將旁路寫入的數據保存到最早進入0狀態的存儲單元,以保持數據寫入的順序.為此,需要標識最早進入狀態0的存儲單元,本文采用基于順序號的識別方法.根據進入狀態0的順序,為4個存儲單元分配順序號,編號為1到4.相應地,為每個旁路寫入請求按照到達順序分配順序號,編號也為1到4.兩個順序號匹配的存儲單元被選擇用于存儲當前旁路寫入的數據,將其地址作為寫地址2,發送到預取寄存器RA的寫端口2.兩個順序號被循環使用.匹配順序號的寫入方式能夠保證旁路寫入的數據以FIFO方式被保存在預取寄存器中.
1.3.2 SRAM數據計數模塊
SRAM數據計數模塊負責生成每個VC保存在SRAM中的數據的總數,實現方法比較簡單.輸入緩沖區復位時,將計數值初始化為0;接收到SRAM寫入請求時,對計數值加1;接收到SRAM讀請求時,對計數值減1;同時接收到這兩個信號,計數值保持不變.將生成的計數值發送到RA旁路寫入管理模塊和SRAM讀請求生成模塊,作為相關判斷依據.
1.3.3 SRAM讀請求生成模塊
SRAM讀請求生成模塊接收到數據讀出請求時,如果該VC在SRAM中的數據計數值大于0,表明該VC有數據保存在SRAM中,交叉開關仲裁器從預取緩沖區讀出數據的同時,SRAM讀請求生成模塊生成對SRAM的讀請求.這樣可以保證預取緩沖區有數據被讀出時,能夠及時從數據緩沖區SRAM中讀出數據,提前保存到預取緩沖區RA中.此外,由于交叉開關仲裁器發出的數據讀出請求在每個時鐘周期最多對一個VC有效,由該讀請求觸發對SRAM的讀請求,可以保證每個時鐘周期最多有一個VC將會發出SRAM讀請求,避免了多個VC同時讀SRAM的情況的發生.
1.3.4 RA讀地址管理模塊
RA讀地址管理模塊負責生成預取緩沖區RA的讀地址.當輸入緩沖區電路復位時,RA讀地址被初始化為0;接收到數據讀出請求時,RA讀地址加1,當RA讀地址為3時,加1后變為0.將RA讀地址發送到預取緩沖區RA的讀端口,當數據讀出請求有效時,從RA讀地址指向的存儲單元輸出數據,發送到交叉開關的輸出端口.此時,如果該VC在SRAM中保存的數據數量大于0,將RA讀地址指向的存儲單元的狀態改為1,表明該存儲單元請求從SRAM讀出數據;否則,將RA讀地址指向的存儲單元的狀態改為0,并分配順序號,表明該存儲單元可以接收相同順序號的旁路數據.
1.3.5 SRAM讀響應寫入管理模塊
從數據緩沖區SRAM中讀出的數據將被保存到預取緩沖區RA中,等待交叉開關仲裁器讀取.SRAM讀響應中包含數據有效信號和從SRAM中讀出的數據.當SRAM讀響應有效時,預取緩沖區的4個存儲單元中至少有一個存儲單元可以接收SRAM讀響應中攜帶的數據.若僅有一個存儲單元可以接收,則將該存儲單元的地址作為預取緩沖區寫端口1的寫地址,即RA寫地址1,發送到預取緩沖區RA的寫端口1.相應地,SRAM讀響應的數據被保存到RA寫地址1指向的存儲單元中,將該存儲單元的狀態從1更新為2.如果有兩個或兩個以上的存儲單元可以接收SRAM讀響應的數據,需要將數據保存到最早變為可以接收SRAM讀響應的存儲單元.仍然采用順序號來區別狀態都為1的存儲單元.順序號的取值范圍為1到4,當有存儲單元狀態變為1時,將當前的順序號分配給該存儲單元,將順序號加1;當順序號等于4時,加1后變為1,達到循環使用的目的.同時,對SRAM讀響應也進行編號,編號范圍為1~4,當SRAM讀響應有效時,讀響應攜帶的數據將被保存到相同順序號的狀態為1的存儲單元中,將該存儲單元的狀態從1更新為2;同時,編號加1,當編號為4時,加1后變為1.匹配順序號的寫入方式能夠保證從SRAM讀出的數據以FIFO方式被保存在預取緩沖區中.
采用上述預取緩沖區讀寫管理實現了寫入數據的旁路寫入和SRAM寫入,數據從預取緩沖區讀出,并對數據緩沖區SRAM中的數據進行預取,以屏蔽讀出延遲.下面,將對上述SPB結構進行實現和測試,證明其實現了快速讀寫的性能.
2 性能測試與分析
我們用Verilog硬件描述語言實現了本文提出的SPB預取結構,SRAM的管理采用文獻[8]提出的DAMQ結構,6個VC共享輸入緩沖區和預取緩沖區,采用模擬器對讀寫性能進行了模擬測試.文獻[8]提出的DAMQ-PF緩沖區管理機制采用寄存器組構建預取緩沖區并設計了相應的預取緩沖區管理方法,采用本文提出的SPB結構作為預取緩沖區的緩沖區管理機制被稱為DAMQ-SPB.通過比較DAMQ,DAMQ-PF和DAMQ-SPB的性能,發現DAMQ-SPB的讀寫延遲、吞吐率均與DAMQ-PF相當,讀寫延遲低于DAMQ,吞吐率高于DAMQ.
2.1 訪問延遲
輸入緩沖區的訪問延遲包括數據寫入延遲和數據讀出延遲.傳統DAMQ的寫入延遲為3個時鐘周期,讀出延遲也為3個時鐘周期[9].如果采用增加了讀延遲的寄存型SRAM,傳統DAMQ的讀延遲將會大于3個時鐘周期.由于采用預取緩沖區屏蔽SRAM的讀延遲和空閑地址隊列的讀延遲,DAMQ-PF實現了零延遲寫入和讀出.DAMQ-SPB的寫入過程與DAMQ-PF基本相同,區別在于DAMQ-PF將旁路寫入的數據保存到寄存器組成的預取緩沖區,而DAMQ-SPB將旁路寫入的數據保存到標準存儲單元RA組成的預取緩沖區.由于DAMQ-SPB的旁路寫入時序與DAM-PF相同,因此,DAMQ-SPB能夠實現零延遲寫入.與寫入過程類似,從DAMQ-SPB讀出數據時,是從預取緩沖區RA中讀出,其讀延遲為0.因此,DAMQ-SPB能夠實現零延遲讀出.
圖4給出了DAMQ-SPB的讀寫波形,圖中,clk為700 MHz的工作時鐘;w_en是輸入緩沖區的數據寫入請求,每一位對應一個VC;w_data是218位的寫入數據;vc_r_en是數據讀出請求,與數據寫入請求類似,每一位對應一個VC;vci_r_data_reg是讀出的數據,i為VC號,取值范圍為0到5.從圖中可以看出,數據寫入請求可以連續有效,即每個時鐘周期均可以向DAMQ-SPB緩沖區寫入不同VC或者相同VC的數據.數據讀出請求也可以連續有效,每一個時鐘周期都可以從DAMQ-SPB緩沖區讀出不同VC或相同VC的數據,而且在讀請求有效的當拍輸出數據,表明實現了零延遲的數據讀出.
2.2 吞吐率
輸入緩沖區的寫入吞吐率定義為每個時鐘周期平均接收的數據數量,具體計算公式為:寫入吞吐率=寫入數據的時鐘周期總數/測試運行的時鐘周期總數.類似地,輸入緩沖區的讀出吞吐率定義為每個時鐘周期平均輸出的數據數量,具體計算公式為:讀出吞吐率=輸出數據的時鐘周期總數/測試運行的時鐘周期總數.可以看出寫入吞吐率和讀出吞吐率的變化范圍為0~1.表2給出了DAMQ,DAMQ-PF和DAMQ-SPB的最大寫入吞吐率和讀出吞吐率.最大寫入吞吐率是指只要輸入緩沖區可以接收數據,就寫入數據到輸入緩沖區.最大讀出吞吐率是指只要輸入緩沖區中有數據,就從輸入緩沖區讀出數據.
從表2可以看出,DAMQ的最大寫入吞吐率和讀出吞吐率最低,DAMQ-PF和DAMQ-SPB都能夠獲得很高的吞吐率.原因是DAMQ的寫入延遲和讀出延遲比較大,導致吞吐率下降.DAMQ-PF和DAMQ-SPB可以每個時鐘周期接收數據,因此能夠獲得100%的寫入吞吐率.由于讀出操作受寫入操作限制,只有寫入數據到輸入緩沖區之后,才能夠從中讀出數據,在相同的測試時間內讀出數據的數量總小于寫入數據的數量,因此3種算法的讀出吞吐率略小于寫入吞吐率.如果降低寫入吞吐率,讀出吞吐率也會隨之降低,如表3所示.DAMQ-PF的測試結果與DAMQ-SPB相同,表中沒有列出.表3中的寫入吞吐率是測試激勵可以控制的,讀出吞吐率隨著寫入吞吐率或者流量注入率的改變而變化,一般會低于寫入吞吐率,二者越接近表明緩沖區讀延遲低,讀出吞吐率高.
2.3 面積
為了提高超級計算機的組裝密度,互連網絡交換機的端口數呈現不斷上升的趨勢,世界知名超級計算機研制廠商已經陸續推出了多達48個或64個端口的交換機.這類多端口交換機的出現導致交換機內部微體系結構發生了巨大變化,目前普遍采用基于瓦片的多級交換結構.這種結構相比于傳統的單級交換結構,具有結構規整,易于后端布局布線的突出優點,但是對存儲資源的需求也急劇增加.以文獻[3]提出的64端口交換機為例,傳統的單級交換結構最少僅需64個緩沖區,而基于瓦片結構的交換機不僅需要輸入緩沖區,還需要行緩沖區和列緩沖區,緩沖區的數目增加到1 088個.如果采用文獻[8]提出的DAMQ-PF緩沖區,為了隱藏讀延遲,需要的寄存器數量為1 088×6×3×Wflit,其中Wflit為一個微片的寬度,不同的網絡可以定義不同寬度的flit.在DAMQ-SPB的實現中,Wflit為218 bit.如果DAMQ-PF也采用218 bit的微片,需要的寄存器數量為4 269 312個.在40 nm的芯片制造工藝下,每個寄存器的面積大約為9 μm2,寄存器占用的面積至少為38.4 mm2.這些寄存器之間還需要大量的連線,將會占用更大的面積.如果采用DAMQ-SPB結構,用RA代替寄存器構造預取緩沖區,需要的兩寫一讀、深度為18、寬度為218 bit的RA的數量為1 088個,這些RA占用的面積約為1 088×42 013 μm2=45.7 mm2.為了避免計算讀寫地址時的加法運算,在預取緩沖區中為每個VC分配4個存儲單元,需要采用深度為24的RA,占用的面積約為1 088×56 018 μm2=60.9 mm2,需要的寄存器數量為5 692 416個,占用的面積至少為51.2 mm2.可以看出,用RA實現的預取緩沖區占用的面積資源稍大于寄存器實現的預取緩沖區.但是,寄存器實現的預取緩沖區需要的連線資源遠遠大于RA實現的預取緩沖區.而且,RA實現的預取緩沖區除了控制邏輯占用面積資源之外,存儲器本身不需要額外的連線資源,因此更易于布局布線的實現.
3 結 論
本文針對目前采用SRAM實現的交換機輸入緩沖區讀延遲增大的問題,提出了一種新的多VC共享預取結構SPB,用于隱藏數據緩沖區SRAM的讀延遲.給出了旁路寫入控制、讀寫地址管理、預取管理等功能模塊的詳細實現,利用Verilog語言實現了SPB結構,對其讀寫性能進行了測試.測試結果表明,帶有SPB結構的緩沖區具有低延遲、高吞吐率的讀寫性能.SPB結構既可以與SAMQ緩沖區結合使用,也可以與DAMQ緩沖區結合使用,而且能夠方便地擴展到用于隱藏數據緩沖區SRAM更大的讀出延遲,具有良好的可擴展性和可用性.
參考文獻
[1] JAMALI M, KHADEMZADEH A. Improving the performance of interconnection networks using DAMQ buffer schemes[J]. IJCSNS International Journal of Computer Science and Network Security, 2009, 9(7):7-13.
[2] KODI A, SARATHY A, LOURI A. Adaptive channel buffers in on-chip interconnection networks—a power and performance analysis[J]. IEEE Transactions on Computers, 2008, 57(9): 1169-1181.
[3] KIM J, DALLY W J, TOWLES B, et al. Microarchitecture of a high-radix router[C]//Proceedings of the 32nd Annual International Symposium on Computer Architecture. New York: ACM, 2005: 420-431.
[4] SCOTT S, ABTS D, KIM J, et al. The blackwidow high-radix clos network[C]//Proceedings of the 33rd Annual International Symposium on Computer Architecture. New York: ACM, 2006:16-28.
[5] AHN J H, CHOO S, KIM J. Network within a network approach to create a scalable high-radix router microarchitecture[C]//Proceedings of 2012 IEEE 18th International Symposium on High Performance Computer Architecture (HPCA). New York: IEEE, 2012:1-12.
[6] MCKEOWN N, MEKKITTIKUL A. Achieving 100% throughput in an input-queued switch[J]. IEEE Transactions on Communications, 1999, 47(8):1260-1267.
[7] DALLY W J, TOWLES B. Principles and practices of interconnection networks[M]. San Francisco: Morgan Kaufmann Publishers, 2004.
[8] ZHANG He-ying, WANG Ke-fei, DAI Yi, et al. A multi-VC dynamically shared buffer with prefetch for network on chip[C]//Proceedings of 2012 IEEE Seventh International Conference on Networking, Architecture, and Storage. Washington, DC: IEEE Computer Society, 2012:320-327.
[9] TAMIR Y, FRAZIER G L. Dynamically-allocated multi-queue buffers for VLSI communication switches[J]. IEEE Transactions on Computers, 1992, 14(6): 725-737.
[10]VISHNU A, TEN BRUGGENCATE M, OLSON R. Evaluating the potential of cray gemini interconnect for PGAS communication runtime systems[C]//Proceedings of 2011 IEEE 19th Annual Symposium on High Performance Interconnects. Washington, DC: IEEE Computer Society, 2011:70-77.