用于網絡接口芯片的寄存器多源訪問調度方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及網絡接口芯片中寄存器訪問技術,具體涉及一種用于網絡接口芯片的寄存器多源訪問調度方法及裝置。
【背景技術】
[0002]網絡接口芯片(Network Interface Chip ,NIC)是基于PCIE G3標準的互連通信主機接口芯片,支持用戶級的通信操作,用于通用服務器、通用計算結點和自主計算結點的高速接入。NIC中實現用戶級通信操作的一個重要前提是虛擬化硬件資源,為每個進程形成一個獨占使用硬件的編程視圖,保證多進程并發(fā)執(zhí)行時,對通信操作請求處理的原子性。NIC通信硬件接口為此實現了虛端口(Virtual Port,VP)機制,每個虛端口由一組可編程寄存器和相應的內存數據結構組成,不同虛端口的寄存器編址在不同地址區(qū)域中。通過內存映射技術,寄存器映射到進程的用戶地址空間,實現用戶層的直接訪問。除了用戶可編程的寄存器外,為了實現對NIC芯片的配置和監(jiān)控功能,NIC中還包含一組配置和監(jiān)控寄存器。監(jiān)控平臺和系統(tǒng)管理服務器通過訪問配置和監(jiān)控寄存器可以實時了解系統(tǒng)的運行狀況。
[0003]從NIC中寄存器訪問方式來看,寄存器訪問源可以分為帶內訪問請求源和帶外訪問請求源兩類。NIC芯片的寄存器帶內訪問基于正常的報文數據通路傳遞寄存器訪問控制命令,帶內訪問有兩種途徑,一種是管理服務器通過網絡端口發(fā)送和接收管理報文實現帶內管理,另外一種是計算結點通過PCIE端口進行寄存器的訪問實現帶內管理。NIC芯片的寄存器帶外訪問基于I2C(Inter — Integrated Circuit)總線和JTAG(Joint Test Act1nGroup)邊界掃描,完成芯片配置與監(jiān)控,I2C和JTAG在寄存器訪問上實現相同的功能,互為冗余和備份。
[0004]NIC芯片中有多個子模塊,每個子模塊擁有一定數量的寄存器,這些寄存器構成一個寄存器模塊。在寄存器模塊訪問實現上,典型的處理結構有星形結構和環(huán)形結構。和星形結構相比,環(huán)形結構實現寄存器訪問能夠減少長走線的數目,減輕后端布局布線的壓力。但環(huán)形結構多個模塊串在一起,其訪問延遲較大。
[0005]綜上,NIC芯片中對寄存器訪問的處理,需要滿足以下需求:(I)用戶可編程寄存器的快速訪問:用戶級通信操作的性能和可編程寄存器訪問的延遲密切相關,盡可能提高其訪問速度,可以有效提高NIC芯片的性能;(2)多個寄存器訪問請求源的合理調度:NIC芯片中有來自計算結點及管理服務器的帶內寄存器訪問請求源,以及來自12C和JTAG的帶外請求源,需要對多個請求源進行合理的調度處理;(3)寄存器訪問實現利于芯片后端布局布線:NIC芯片中寄存器訪問總控模塊對多個子模塊的寄存器訪問,需要盡量減少長走線,減少后端的擁塞。由于上述的三個需求相互關聯、相互制約。例如,對于需求(I)來講,星形的實現結構能夠減少訪問延遲,提高訪問速度,但和需求(3)相矛盾,不利于后端實現。并且提高用戶可編程寄存器的訪問速度也和多個寄存器訪問請求源的調度密切相關?,F有的寄存器訪問的調度及實現方案,通常都是單個請求源的,對寄存器的訪問延遲沒有多樣化的要求,并且在實現的方案上要么采用星形結構,要么采用環(huán)形結構?,F有技術的寄存器訪問方法的實現難以滿足NIC芯片中寄存器訪問處理的上述三個需求。
【發(fā)明內容】
[0006]本發(fā)明要解決的技術問題是針對網絡接口芯片中不同請求源對訪問速度的差異化需求,提供一種用于網絡接口芯片的寄存器多源訪問調度方法及裝置,使得不同訪問源均可以對網絡接口芯片的所有寄存器進行訪問、用戶可編程寄存器訪問延遲低、且有利于后端布局布線。
[0007]為了解決上述技術問題,本發(fā)明采用的技術方案為:
[0008]—種用于網絡接口芯片的寄存器多源訪問調度方法,如圖1所示,其實施步驟如下:
[0009]I)按源分類緩存寄存器訪問請求:請求分類單元根據請求源的類型將來自多種請求源的寄存器訪問請求分別緩存至請求分類緩存單元;
[0010]2)基于訪問速度差異構建快/慢速寄存器訪問環(huán):快速訪問公用模塊預先將包含用戶可編程寄存器、部分控制及狀態(tài)寄存器的寄存器模塊串聯組成快速寄存器訪問環(huán);同時,慢速訪問公用模塊將不包含用戶可編程寄存器、部分控制及狀態(tài)寄存器的寄存器模塊串聯組成慢速寄存器訪問環(huán);
[0011]3)采用雙環(huán)并行調度策略,根據權重分配和訪問地址把緩存的請求分配到快/慢速寄存器訪問環(huán):針對快速寄存器訪問環(huán)、慢速寄存器訪問環(huán)采用雙環(huán)并行調度策略,快速訪問調度模塊按照快速訪問調度機制預設的權重分配將寄存器訪問請求分配到快速寄存器訪問環(huán),并根據寄存器訪問請求的訪問地址,將寄存器訪問請求緩存到快速寄存器訪問環(huán)中的相匹配的寄存器模塊;同時,慢速訪問調度模塊按照慢速訪問調度機制預設的權重分配將寄存器訪問請求分配到慢速寄存器訪問環(huán),并根據寄存器訪問請求的訪問地址,將寄存器訪問請求緩存到慢速寄存器訪問環(huán)中相匹配的寄存器模塊;
[0012]4)快/慢速寄存器訪問環(huán)并行處理訪問請求并返回寄存器訪問應答:所述快速寄存器訪問環(huán)中的每一個節(jié)點根據寄存器訪問地址,選擇對連接的寄存器模塊進行操作或者將寄存器訪問請求或寄存器訪問應答進行轉發(fā),最終快速寄存器訪問環(huán)向請求源返回寄存器訪問應答;同時,所述慢速寄存器訪問環(huán)中的每一個節(jié)點根據寄存器訪問地址選擇對連接的寄存器模塊進行操作或者將寄存器訪問請求或寄存器訪問應答進行轉發(fā),最終向請求源返回寄存器訪問應答。
[0013]作為本發(fā)明用于網絡接口芯片的寄存器多源訪問調度方法的進一步改進:
[0014]所述請求源的類型包括來自計算結點的寄存器訪問請求、來自管理服務器的寄存器訪問請求和來自帶外的寄存器訪問請求;所述步驟3)中針對快速訪問調度機制預設的權重分配調度分配到快速寄存器訪問環(huán)時,所述針對快速訪問調度機制預設的權重分配具體是指來自計算結點的寄存器訪問請求、來自管理服務器的寄存器訪問請求和來自帶外的寄存器訪問請求采用差異化的權重分配方法,給予來自計算結點的寄存器訪問請求隊列更大的權重,給予管理服務器和帶外的寄存器請求隊列較小的權重,使得快調度機制能夠優(yōu)先處理來自計算結點的請求;所述步驟3)中針對慢速訪問調度機制預設的權重分配調度分配到慢速寄存器訪問環(huán)時,所述針對慢速訪問調度機制預設的權重分配具體是指來自計算結點的寄存器訪問請求、來自管理服務器的寄存器訪問請求和來自帶外的寄存器訪問請求采用差異化的權重分配方法,給予來自計算結點的寄存器訪問請求隊列更大的權重,給予管理服務器和帶外的寄存器請求隊列較小的權重,使得快調度機制能夠優(yōu)先處理來自計算結點的請求。
[0015]所述針對快速訪問調度機制預設的權重分配中來自計算結點的寄存器訪問請求、來自管理服務器的寄存器訪問請求和來自帶外的寄存器訪問請求三者的調度權重為2:1:1;所述針對慢速訪問調度機制預設的權重分配中來自計算結點的寄存器訪問請求、來自管理服務器的寄存器訪問請求和來自帶外的寄存器訪問請求三者的預設調度權重為1:1:1。
[0016]所述快速寄存器訪問環(huán)中各個節(jié)點間傳遞的寄存器數據寬度為64位;所述慢速寄存器訪問環(huán)中各個節(jié)點間傳遞的寄存器數據寬度為32位。
[0017]本發(fā)明還提供一種用于網絡接口芯片的寄存器多源訪問調度裝置,如圖2所示,包括請求分類單元、請求分類緩存單元、快速訪問調度模塊、慢速訪問調度模塊、快速寄存器訪問環(huán)、慢速寄存器訪問環(huán):
[0018]請求分類單元,用于根據請求源的類型將寄存器訪問請求分類;請求分類單元與請求源和請求分類緩存單元相連,從請求源接收不同類型的寄存器訪問請求,根據請求源的類型將寄存器訪問請求分類,并發(fā)送到請求分類緩存單元;
[0019]請求分類緩存單元,用于根據請求源的類型分別緩存來自多種請求源的寄存器訪問請求;請求分類緩存單元與請求分類單元、快速訪問調度模塊和慢速訪問調度模塊相連,從請求分類單元接收寄存器訪問請求并進行緩存,而后根據快速訪問調度模塊的調度將寄存器訪問請求發(fā)送至快速訪問調度模塊,根據慢速訪問調度模塊的調度將寄存器訪問請求發(fā)送至慢速訪問調度模塊;
[0020]快速訪問調度模塊,用于根據寄存器訪問請求的訪問地址,將寄存器訪問請求按照快速訪問調度機制預設的權重,分配調度并緩存至快速寄存器訪問環(huán)中相匹配的寄存器模塊;快速訪問調度模塊與請求分類緩存單元和快速寄存器訪問環(huán)相連,從請求分類緩存單元接收寄存器訪問請求,根據寄存器訪問請求的訪問地址,將寄存器訪問請求按照快速訪問調度機制預設的權重,分配調度并緩存至快速寄存器訪問環(huán)中相匹配的寄存器模塊;[0021 ]慢速訪問調度模塊,用于根據寄存器訪問請求的訪問地址,將寄存器訪問請求按照慢速訪問調度機制預設的權重,分配調度并緩存至慢速寄存器訪問環(huán)中相匹配的寄存器模塊;慢速訪問調度模塊與請求分類緩存單元和慢速寄存器訪問環(huán)相連,從請求分類緩存單元接收寄存器訪問請求,根據寄存器訪問請求的訪問地址,將寄存器訪問請求按照慢速訪問調度機制預設的權重,分配調度并緩存至慢速寄存器訪問環(huán)中相匹配的寄存器模塊;
[0022]快速寄存器訪問環(huán),由包含用戶可編程寄存器、部分控制及狀態(tài)寄存器的寄存器模塊所在的節(jié)點串聯組成快速寄存器訪問環(huán);快速寄存器訪問環(huán)與快速訪問調度模塊相連,從快速訪問調度模塊接收寄存器訪問請求,并根據寄存器訪問請求的地址緩存至快速寄存器訪問環(huán)中相應節(jié)點的寄存器中,所述快速寄存器訪問環(huán)中的每一個節(jié)點根據寄存器訪問地址選擇對連接的寄存器模塊進行操作或者將寄存器訪問請求或寄存器訪問應答進行轉發(fā),最終快速寄存器訪問環(huán)向請求源返回寄存器訪問應答;
[0023]慢速寄存器訪問環(huán),由不包含用戶可編程寄存器、部分控制及狀態(tài)寄存器的寄存器模塊所在的節(jié)點串聯組成慢速寄存器訪問環(huán);慢速寄存器訪問環(huán)與慢速訪問調度模塊相連,從慢速訪問調度模塊接收寄存器訪問請求,并根據寄存器訪問請求的地址緩存至慢速寄存器訪問環(huán)中相應節(jié)點的寄存器中,所述慢速寄存器訪問環(huán)中的每一個節(jié)點根據寄存器訪問地址選擇對連接的寄存器模塊進行操作或者將寄存器訪問請求或寄存器訪問應答進行轉發(fā),最終向請求源返回寄存器訪問應