本發(fā)明涉及一種cxl交換芯片上的報文處理和傳輸裝置,屬于交換芯片。
背景技術:
1、現(xiàn)有的cxl交換芯片只支持cxl?2.0協(xié)議,其報文處理和傳輸過程仍然按照pcie的樹形結構進行,具有較大的局限性。同時,現(xiàn)有的cxl交換芯片的互聯(lián)以交換矩陣為主,無法應對端口數(shù)量的增加。
2、基于此,提出本發(fā)明。
技術實現(xiàn)思路
1、本發(fā)明提供了一種cxl交換芯片上的報文處理和傳輸裝置,其支持cxl3.0協(xié)議的傳輸和路由,同時通過圓環(huán)形拓撲片上網(wǎng)絡極大擴展了交換芯片的數(shù)據(jù)處理能力,提高了整體傳輸性能。具體技術方案如下:
2、一種cxl交換芯片上的報文處理和傳輸裝置,包括cxl交換接口單元模塊、圓環(huán)形拓撲片上網(wǎng)絡和cxl管理單元模塊;
3、所述cxl交換接口單元模塊用來接收和解析直接連接至cxl交換芯片的cxl設備所發(fā)送的.cache和.mem兩種子協(xié)議的報文,隨后將這些報文轉換并封裝為符合圓環(huán)形拓撲片上網(wǎng)絡標準的報文格式,進而通過圓環(huán)形拓撲片上網(wǎng)絡進行傳輸;同時,cxl交換接口單元模塊還需接收來自圓環(huán)形拓撲片上網(wǎng)絡的報文,將其轉換并封裝為相應的cxl子協(xié)議報文格式,隨后分發(fā)至其他cxl設備;
4、所述圓環(huán)形拓撲片上網(wǎng)絡包括路由節(jié)點和互聯(lián)通路,所述互聯(lián)通路為路由節(jié)點間傳輸通道,互聯(lián)通路負責將兩個路由節(jié)點進行點對點互聯(lián);
5、所述cxl管理單元模塊負責對所有cxl交換接口單元模塊和圓環(huán)形拓撲片上網(wǎng)絡進行初始化和配置。
6、更進一步的改進,所述cxl交換接口單元模塊包括pcie物理層、cxl控制器、.cache協(xié)議處理單元、.mem協(xié)議處理單元;
7、所述pcie物理層負責實現(xiàn)pcie協(xié)議標準中定義的物理層功能,涵蓋數(shù)據(jù)在高速串行鏈路上的發(fā)送/接收、編碼/解碼、鏈路訓練、擾碼/解擾以及狀態(tài)機初始化環(huán)節(jié);
8、所述cxl控制器負責實現(xiàn)cxl協(xié)議標準中數(shù)據(jù)鏈路層和事務層的功能要求,還涵蓋事務層報文的創(chuàng)建/解析、qos管理以及事務保序任務;
9、cxl控制器與pcie物理層之間通過標準的pipe接口進行連接;所述cxl控制器還具備兩組并行數(shù)據(jù)接口,分別連接至.cache協(xié)議處理單元、.mem協(xié)議處理單元以實現(xiàn)報文交互。
10、更進一步的改進,所述.cache協(xié)議處理單元包括.cache上行處理模塊和.cache下行處理模塊;
11、所述.cache上行處理模塊負責從cxl控制器接收.cache報文并轉發(fā),所述.cache上行處理模塊的功能包括.cache報文解析、cache?id路由表、tlp封裝模塊的功能;所述.cache上行處理模塊需要同時根據(jù)地址獲得圓環(huán)形拓撲片上網(wǎng)絡上目的節(jié)點的(x,y)坐標,輸出tdid信息;
12、所述cache?id路由表的功能為根據(jù)cache?id的信息,查找到目標端口的目的id,spid通過端口綁定信息獲得;
13、tlp封裝模塊責將d2h_req/d2h_rsp/d2h_data?tlp報文和對應的dpid打包輸出,同時根據(jù)dpid獲得圓環(huán)形拓撲片上網(wǎng)絡的目標節(jié)點id輸出到圓環(huán)形拓撲片上網(wǎng)絡中;
14、所述.cache下行處理模塊負責從圓環(huán)形拓撲片上網(wǎng)絡接收.cache報文并轉發(fā),所述.cache下行處理模塊的功能包括抽取報文中的h2d_req/h2d_rsp/d2h_req/d2h_rsp報文頭、報文數(shù)據(jù)、cache?id,并判斷報文中的cxl交換接口單元模塊id與自身所在的cxl交換接口單元模塊是否一致;若一致,則輸出報文頭、報文數(shù)據(jù)、cache?id到下游的tlp封裝模塊;若不一致,則將該報文作為非法報文丟棄并報錯;然后將接收到的報文頭、報文數(shù)據(jù)以及cache?id分成h2d_req、h2d_rsp、h2d_data、d2h_req、d2h_rsp、d2h_data這6個通道類型進行封裝。
15、更進一步的改進,所述.cache報文解析需要對.cache的h2d_req、h2d_rsp、h2d_data、d2h_req、d2h_rsp、d2h_data這6個通道的報文進行接收和解析,各個通道的報文獨立傳輸分別解析,需要抽取報文中cache?id字段,分別輸出如下信息:
16、h2d_req、h2d_rsp、h2d_data通道:輸出cache?id以及包含該cache?id的對應tlp報文到cache?id路由表;
17、d2h_req、d2h_rsp、d2h_data通道:d2h_req通道根據(jù)已經(jīng)綁定端口信息獲得cacheid并添加到報文中,此時發(fā)送包含該cache?id的對應報文到tlp封裝模塊;d2h_rsp和d2h_data根據(jù)端口綁定信息獲得對應dpid。
18、更進一步的改進,所述cxl交換芯片上的報文處理和傳輸裝置的.cache報文處理流程包括以下步驟:.cache報文首先經(jīng)由源cxl交換接口單元模塊的pcie物理層接收,并進行處理,然后由cxl控制器接收并處理該報文,隨后cxl交換接口單元模塊會對報文進行解析;h2d_req/h2d_rsp/h2d_data報文提取對應的cache?id和tlp,輸入到cache?id路由表進行查表,獲得dpid并發(fā)送報文到tlp封裝模塊;d2h_req/d2h_rsp/d2h_data報文根據(jù)綁定端口的信息獲得cacheid和dpid,發(fā)送報文到tlp封裝模塊;發(fā)送到tlp封裝模塊的報文進行tlp封裝并輸出tdid,發(fā)送到圓環(huán)形拓撲片上網(wǎng)絡中,進行路由、交換和保序,直到到達目的cxl交換接口單元模塊,隨后進行.cache報文封裝和發(fā)送,cxl控制器獲得報文后再傳輸?shù)絧cie物理層,至此完成整個.cache報文的傳輸。
19、更進一步的改進,所述.mem協(xié)議處理單元包括.mem上行處理模塊和.mem下行處理模塊;
20、所述.mem上行處理模塊負責按照m2s_req,?m2s_rwq,?m2s_birsp,?s2m_drs,s2m_ndr,?s2m_bisnp這6個通道類型對cxl控制器從.mem報文接口上輸入的.mem報文進行接收和.mem報文解析;
21、所述.mem上行處理模塊還需要同時根據(jù)地址獲得圓環(huán)形拓撲片上網(wǎng)絡上目的節(jié)點的(x,y)坐標,輸出tdid信息;
22、.mem報文解析模塊根據(jù)通道類型,抽取報文中的各個有效字段,分別輸出如下信息:
23、m2s_req通道、m2s_rwd通道均輸出hdm地址以及包含該hdm地址的對應通道報文到fast路由表,fast路由表查表后輸出目的端口dpid,再由tlp封裝模塊根據(jù)dpid獲得圓環(huán)形拓撲片上網(wǎng)絡的tdid,將報文打包輸出到圓環(huán)形拓撲片上網(wǎng)絡中;
24、s2m_drs通道、s2m_ndr通道和s2m_bisnp通道根據(jù)端口綁定的信息輸出dpid信息和對應的tdid到圓環(huán)形拓撲片上網(wǎng)絡直接進行路由;
25、m2s_birsp通道輸出bi?id,將此bi?id轉換為對應的dpid和tdid,輸出包含該biid的對應通道報文到圓環(huán)形拓撲片上網(wǎng)絡;
26、所述.mem下行處理模塊是用于接收從圓環(huán)形拓撲片上網(wǎng)絡傳輸過來的事務包,對事務包進行解包重組為cxl各通道的格式,同時根據(jù)下游連接的不同端口進行譯碼轉發(fā);所述.mem下行處理模塊抽取報文中的m2s_req/m2s_rwd/s2m_drs/s2m_ndr/s2m_bisnp/m2s_birsp報文頭、報文數(shù)據(jù)、設備id,并判斷報文中的dpid與自身所在的cxl交換接口單元模塊是否一致,若一致,則輸出上述報文頭、報文數(shù)據(jù)、邏輯設備id到下游的.mem報文封裝模塊;若不一致,則將該報文作為非法報文丟棄并報錯;
27、所述.mem報文封裝模塊負責將報文頭、報文數(shù)據(jù)以及設備id分成m2s_req、m2s_rwd、s2m_drs、s2m_ndr、s2m_bisnp、m2s_birsp這6個通道類型進行封裝。
28、更進一步的改進,所述cxl交換芯片上的報文處理和傳輸裝置的.mem報文處理流程包括以下步驟:.mem報文首先經(jīng)由源cxl交換接口單元模塊的pcie物理層接收,并進行處理,然后由cxl控制器接收并處理該報文,隨后cxl交換接口單元模塊會對報文進行解析;m2s_req/m2s_rwd報文提取對應的hdm地址和tlp,輸入到fast路由表進行查表,獲得dpid并發(fā)送報文到tlp封裝模塊;m2s_birsp根據(jù)bi?id直接獲得dpid,s2m_drs/s2m_ndr/s2m_bisnp報文根據(jù)綁定端口的信息獲得dpid,發(fā)送報文到tlp封裝模塊;發(fā)送到tlp封裝模塊的報文都進行tlp封裝并輸出tdid,發(fā)送到圓環(huán)形拓撲片上網(wǎng)絡中,進行路由、交換和保序,直到到達目的cxl交換接口單元模塊,隨后進行.mem報文封裝和發(fā)送,cxl控制器獲得報文后再傳輸?shù)絧cie物理層,至此完成整個.mem報文的傳輸。
29、更進一步的改進,所述路由節(jié)點用于連接.cache協(xié)議處理單元的.cache上行處理模塊、.cache下行處理模塊以及.mem協(xié)議處理單元的.mem上行處理模塊、.mem下行處理模塊,還負責tlp報文在網(wǎng)絡中的路由傳輸;
30、所述路由節(jié)點最多支持2個端口和cxl交換接口單元模塊相連,每個路由節(jié)點與1個cxl交換接口單元模塊或2個cxl交換接口單元模塊相連,路由節(jié)點與cxl交換接口單元模塊或路由節(jié)點與路由節(jié)點之間,均為雙向6通道,每個路由節(jié)點根據(jù)其所在位置按坐標進行編號,cxl交換接口單元模塊輸入目標節(jié)點的坐標,路由節(jié)點添加當前節(jié)點的坐標作為源節(jié)點坐標,對于特定的源節(jié)點與目的節(jié)點,根據(jù)源坐標tsid和目的坐標tdid進行路由。
31、更進一步的改進,路由時遵循最短路徑路由,也就是從源節(jié)點到目的節(jié)點的跳數(shù)最短進行路由;如果有多個路徑同時跳數(shù)最短,在默認情況下優(yōu)先從超通路路由;路由規(guī)則通過cxl管理單元模塊進行配置。
32、更進一步的改進,所述cxl管理單元模塊的初始化和配置內容包括:
33、1)、.cache協(xié)議處理單元中的cache?id路由表、tlp封裝模塊;
34、2)、.mem協(xié)議處理單元中的fast路由表、端口id寄存器;
35、3)、圓環(huán)形拓撲片上網(wǎng)絡路由控制寄存器組,此寄存器組控制路由算法和規(guī)則。
36、本發(fā)明的有益效果:
37、1、本發(fā)明提供的圓環(huán)形拓撲片上網(wǎng)絡具有帶寬高、延遲低、多通道并發(fā)的特點,對大量的內存數(shù)據(jù)訪問場景提供了高效的傳輸通道。
38、2、本發(fā)明具有高度可擴展性,cxl交換接口單元模塊數(shù)量和圓環(huán)形拓撲片上網(wǎng)絡尺寸可以根據(jù)實際需要非常高效的擴展。
39、3、本發(fā)明對芯片后端物理實現(xiàn)友好,利于芯片上的布局布線工作,能夠達到較高的工作頻率,從而獲得更高的性能。