本發(fā)明屬于集成電路設計技術,涉及一種用于FC交換機芯片的快速轉發(fā)電路及方法。
背景技術:
在高速交換機的設計中,需要把接收的數(shù)據(jù)快速轉發(fā)出去,為保證較小的通信時延,必須在接收到數(shù)據(jù)包頭即開始轉發(fā),這就需要在數(shù)據(jù)包頭到達的很短時間內獲取到數(shù)據(jù)幀的路由目的、優(yōu)先級等有效信息,以便快速建立轉發(fā)鏈接,從而開始數(shù)據(jù)的轉發(fā)。
如圖2所示,F(xiàn)C幀的路由和優(yōu)先級信息包含在其幀頭數(shù)據(jù)中,如果采用單一雙端口存儲為數(shù)據(jù)緩沖的轉發(fā)電路,基于交換機的數(shù)據(jù)調度特性,讀取幀頭以獲取路由信息與讀取整幀數(shù)據(jù)以轉發(fā)這兩種行為,勢必產生存儲器讀接口的競爭,該做法會造成通信效率低,時延較大,且控制電路設計復雜。
技術實現(xiàn)要素:
發(fā)明目的:
為了解決上述背景中提及的問題,本發(fā)明提供一種用于FC交換機芯片的快速轉發(fā)電路及方法,通過接收存儲、入隊、出隊、讀出轉發(fā)之間的并行工作,可最大限度的提高通信效率,降低傳輸延遲,且電路簡單、易在芯片設計中實現(xiàn),可在多種FC交換機芯片中復用。
技術方案:
一種用于FC交換機芯片的快速轉發(fā)電路,包括:包括數(shù)據(jù)寫入模塊、幀排序FIFO、幀信息存儲器、數(shù)據(jù)幀存儲器、隊列調度器和讀出轉發(fā)模塊;其中,數(shù)據(jù)寫入模塊連接幀排序FIFO,同時連接幀信息存儲器和數(shù)據(jù)幀存儲器,同時,幀排序FIFO和幀信息存儲器與隊列調度器相連,讀出轉發(fā)模塊與隊列調度器和數(shù)據(jù)幀存儲器相連;
數(shù)據(jù)寫入模塊負責將數(shù)據(jù)幀由幀頭至幀尾依次寫入數(shù)據(jù)幀存儲器中,同時將FC幀的第2-第4個字,寫入幀信息存儲器,將緩沖塊號寫入幀排序FIFO;
幀排序FIFO深度為M,用于存儲緩沖邏輯塊號,幀排序FIFO的深度與緩沖邏輯塊個數(shù)保持一致;
幀信息存儲器為雙端口存儲器,包括M個邏輯緩沖分塊,每個分塊包含地址0、1、2,存儲3個字;
數(shù)據(jù)幀存儲器為雙端口存儲器,用于存儲數(shù)據(jù),包括M個4KB的邏輯分塊,每個分塊由地址0開始存放一個幀內容,從SOF開始;
隊列調度器從幀排序FIFO獲得緩沖邏輯塊號,并依據(jù)緩沖邏輯塊號從幀信息存儲器獲取幀路由和優(yōu)先級信息,建立虛擬輸出隊列,從隊列中調度出結果,通知讀出轉發(fā)模塊;
讀出轉發(fā)模塊用于從數(shù)據(jù)幀存儲器中讀出數(shù)據(jù),并從隊列調度器所建立的連接通路上將數(shù)據(jù)轉發(fā)至目的端口。
一種用于FC交換機芯片的快速轉發(fā)方法,包括數(shù)據(jù)接收存儲步驟、調度步驟和轉發(fā)步驟,其中
接收存儲步驟包括:
1)數(shù)據(jù)寫入模塊檢測是否有新數(shù)據(jù)幀進入交換機端口,若接收到數(shù)據(jù)幀,則按照接收數(shù)據(jù)流順序將接收到的幀由幀頭至幀尾依次寫入搜索到的數(shù)據(jù)幀存儲器空閑緩沖塊中,在寫入進行至FC幀的第2-第4個字,即包含路由信息的Header0、包含優(yōu)先級信息的Header1和Header2時,將其同時也寫入幀信息存儲器對應的存儲塊中;
2)幀信息存儲器的每個分塊地址0、1、2,分別存儲該FC幀包含路由和優(yōu)先級信息的FC幀Header0、Header1和Header2;
3)數(shù)據(jù)幀存儲器的每個分塊由地址0開始存放一個幀內容(從SOF開始),依次存放數(shù)據(jù)幀;
4)數(shù)據(jù)寫入模塊完成幀信息存儲器的寫入后,立即將緩沖塊號寫入幀排序FIFO,返回本步驟的1),繼續(xù)循環(huán)執(zhí)行,
調度步驟:
其隊列調度器始終檢測幀排序FIFO是否為空,若非空,則讀取到一個排隊中的幀所在緩沖號,依據(jù)該號尋址幀信息存儲器,獲取到該幀的路由及優(yōu)先級信息,使其進入針對輸出目的端口預先建立的虛擬輸出隊列中,完成入隊;重復執(zhí)行上述過程。
轉發(fā)步驟:
1)其隊列調度器始終檢測其建立的虛擬輸出隊列是否為空,若為非空,則依據(jù)交換機所支持的優(yōu)先級調度算法調度出結果,與對應目的端口建立連接,然后將該FC幀所在的緩沖塊號通知讀出轉發(fā)模塊;等待讀出轉發(fā)模塊返回的轉發(fā)成功信息之后,重復執(zhí)行本過程;
2)其讀出轉發(fā)模塊始終等待隊列調度器的通知,接收到器通知的緩沖塊號,即從該緩沖塊的0地址開始同時讀取數(shù)據(jù)幀存儲器,并將讀取到的數(shù)據(jù)通過隊列調度器建立的連接轉發(fā)至目的端口,直至幀結束,向隊列調度器返回數(shù)據(jù)轉發(fā)成功;重復執(zhí)行本過程;接收存儲步驟、調度步驟和轉發(fā)步驟均獨立并行運行。
有益效果:
本發(fā)明提供了一種數(shù)據(jù)接收、存儲及調度、轉發(fā)并行工作的電路及方法,通過增加幀信息存儲器和幀排序FIFO,在數(shù)據(jù)幀接收時把緩沖塊號在幀排序FIFO中排隊,數(shù)據(jù)存儲的同時將其攜帶的路由與優(yōu)先級信息存入專門的幀信息存儲器,簡化隊列調度器的同時,分離了控制信息通路與數(shù)據(jù)載荷通路,避免了傳統(tǒng)直通式交換時調度器獲取路由信息與數(shù)據(jù)轉發(fā)同時進行所造成的數(shù)據(jù)存儲器讀接口競爭,使接收存儲過程和入隊、出隊、讀出轉發(fā)步驟均獨立并行運行,可最大限度的提高通信效率,降低傳輸延遲,且電路簡單、易在芯片設計中實現(xiàn),可在多種FC交換機芯片中復用。
附圖說明
圖1是本發(fā)明于FC交換機芯片的快速轉發(fā)電路及方法的架構示意圖。
圖2為現(xiàn)有技術的轉發(fā)電路示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明做進一步描述:
用于FC交換機芯片的快速轉發(fā)電路,包括:包括數(shù)據(jù)寫入模塊1、幀排序FIFO2、幀信息存儲器3、數(shù)據(jù)幀存儲器4、隊列調度器5和讀出轉發(fā)模塊6;其中,數(shù)據(jù)寫入模塊1連接幀排序FIFO2,同時連接幀信息存儲器3和數(shù)據(jù)幀存儲器4,同時,幀排序FIFO2和幀信息存儲器3與隊列調度器5相連,讀出轉發(fā)模塊6與隊列調度器5和數(shù)據(jù)幀存儲器4相連;
數(shù)據(jù)寫入模塊1負責將數(shù)據(jù)幀由幀頭至幀尾依次寫入數(shù)據(jù)幀存儲器4中,同時將FC幀的第2-第4個字,寫入幀信息存儲器3,將緩沖塊號寫入幀排序FIFO2;
幀排序FIFO2深度為M,用于存儲緩沖邏輯塊號,幀排序FIFO2的深度與緩沖邏輯塊個數(shù)保持一致;
幀信息存儲器3為雙端口存儲器,包括M個邏輯緩沖分塊,每個分塊包含地址0、1、2,存儲3個字;
數(shù)據(jù)幀存儲器4為雙端口存儲器,用于存儲數(shù)據(jù),包括M個4KB的邏輯分塊,每個分塊由地址0開始存放一個幀內容,從SOF開始;
隊列調度器5從幀排序FIFO2獲得緩沖邏輯塊號,并依據(jù)緩沖邏輯塊號從幀信息存儲器3獲取幀路由和優(yōu)先級信息,建立虛擬輸出隊列,從隊列中調度出結果,通知讀出轉發(fā)模塊6;
讀出轉發(fā)模塊6用于從數(shù)據(jù)幀存儲器4中讀出數(shù)據(jù),并從隊列調度器5所建立的連接通路上將數(shù)據(jù)轉發(fā)至目的端口。
一種用于FC交換機芯片的快速轉發(fā)方法,包括數(shù)據(jù)接收存儲步驟、調度步驟和轉發(fā)步驟,其中
接收存儲步驟包括:
1)數(shù)據(jù)寫入模塊1檢測是否有新數(shù)據(jù)幀進入交換機端口,若接收到數(shù)據(jù)幀,則按照接收數(shù)據(jù)流順序將接收到的幀由幀頭至幀尾依次寫入搜索到的數(shù)據(jù)幀存儲器4空閑緩沖塊中,在寫入進行至FC幀的第2-第4個字,即Header0(包含路由信息)、Header1和Header2(包含優(yōu)先級信息)時,將其同時也寫入幀信息存儲器3對應的存儲塊中;
2)幀信息存儲器3的每個分塊地址0、1、2,分別存儲該FC幀包含路由和優(yōu)先級信息的FC幀Header0、Header1和Header2;
3)數(shù)據(jù)幀存儲器4的每個分塊由地址0開始存放一個幀內容(從SOF開始),依次存放數(shù)據(jù)幀;
4)數(shù)據(jù)寫入模塊1完成幀信息存儲器3的寫入后,立即將緩沖塊號寫入幀排序FIFO2,返回本步驟的1),繼續(xù)循環(huán)執(zhí)行。
調度步驟:
其隊列調度器5始終檢測幀排序FIFO2是否為空,若非空,則讀取到一個排隊中的幀所在緩沖號,依據(jù)該號尋址幀信息存儲器3,獲取到該幀的路由及優(yōu)先級信息,使其進入針對輸出目的端口預先建立的虛擬輸出隊列中,完成入隊;重復執(zhí)行上述過程。
轉發(fā)步驟:
1)其隊列調度器5始終檢測其建立的虛擬輸出隊列是否為空,若為非空,則依據(jù)交換機所支持的優(yōu)先級調度算法調度出結果,與對應目的端口建立連接,然后將該FC幀所在的緩沖塊號通知讀出轉發(fā)模塊6;等待轉發(fā)模塊6返回的轉發(fā)成功信息之后,重復執(zhí)行本過程;
2)其讀出轉發(fā)模塊6始終等待隊列調度器5的通知,接收到器通知的緩沖塊號,即從該緩沖塊的0地址開始同時讀取數(shù)據(jù)幀存儲器4,并將讀取到的數(shù)據(jù)通過隊列調度器5建立的連接轉發(fā)至目的端口,直至幀結束,向隊列調度器5返回數(shù)據(jù)轉發(fā)成功;重復執(zhí)行本過程;接收存儲過程和入隊、出隊、讀出轉發(fā)過程均獨立并行運行。
最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細地說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。