專利名稱:一種處理器系統(tǒng)及其訪存方法
技術領域:
本發(fā)明涉及處理器領域,特別是涉及由多核處理器組成的處理器系統(tǒng)領 域,更具體地說,本發(fā)明涉及一種處理器系統(tǒng)及其訪存方法。
背景技術:
多核處理器是指在單個芯片上集成多個微處理器核的一種處理器體系結 構,可以并行地執(zhí)行程序代碼,在不提升處理器工作頻率的情況下,降低處理 器的功耗,并獲得很高的聚合性能。在這種處理器中互連結構是芯片的中樞,
處理器核、2級緩存(Cache)及輸入輸出(I/O)等模塊通過互連結構連接構 筑成完整的芯片,并通過互連結構完成數(shù)據(jù)信息的傳輸交換,因此互連結構的 設計直接決定著多核處理器系統(tǒng)的擴展性、實現(xiàn)復雜度和通信效率。
與由單處理器核芯片為基礎構筑的多處理器系統(tǒng)相比,多核處理器的互連 設計面臨諸多限制。首先,多核互連結構需要在芯片上的2維環(huán)境下實現(xiàn),給 芯片互連拓撲結構的選擇帶來制約,超立方體等多維互連結構不能直接應用于 多核處理器的片上互連。其次,在片上環(huán)境中,互連結構的走線數(shù)量和走線通 道受限于金屬層數(shù)(一般為6-8層)的制約。第三,在進入納米級工藝后,互 連線的延遲取代門延遲成為主導芯片時延的主要因素,導致模塊間的全局數(shù)據(jù) 通信延遲增大。
在上述因素的影響下,傳統(tǒng)的互連方法如總線、交叉開關、2維網格(MESH) 等難以滿足多核處理器對可擴展性、效率等方面的要求。例如,總線結構需要 實現(xiàn)全局的仲裁機制,難以克服線延遲的影響,同時,多個模塊共享總線又會 對可擴展性和效率造成影響。交叉開關雖然可以避免實現(xiàn)全局仲裁,但是其資 源消耗(包括走線、緩沖區(qū)等)與連接模塊的數(shù)量成平方關系,不具有良好的 可擴展性。2維MESH結構是一種分布式的控制結構,雖然可以克服總線和交 叉開關的弊端,具有一定的擴展性,但是需要實現(xiàn)較為復雜的路由控制機制。
申請?zhí)枮?00810062164. 1的中國發(fā)明專利,公開了一種嵌入式異構多核體系片上通信互聯(lián)組織層次的實現(xiàn)方法,與本發(fā)明相比,它只適用于嵌入式異
構多核的片上通信互連,具有一定的局限性;并且其采用總線互連方式,對多 核處理器的擴展性造成制約。申請?zhí)枮?00710103959.8的中國發(fā)明專利,公 開了一種多處理器系統(tǒng),與本發(fā)明相比,它雖然也是利用了交叉開關,但并沒 有實現(xiàn)共享二級緩存,使得在路由實現(xiàn)上增加了開銷,通信效率較低,并且也 對多核處理器的擴展性造成制約。
發(fā)明內容
本發(fā)明的目的在于提供一種處理器系統(tǒng)及其訪存方法,是采用二維網格 (Mesh)作為處理器系統(tǒng)的基本互連拓撲結構,并在Mesh網絡中的每個結點 設置一個交叉開關,來實現(xiàn)核間的數(shù)據(jù)傳輸。其能夠提高多核處理器系統(tǒng)的擴 展性,實現(xiàn)復雜度和通信效率。
為實現(xiàn)本發(fā)明的目的而提供的一種多核處理器,采用二維網格作為基本互 連拓撲結構,所述二維網格中的每個結點包括交叉開關,主設備,以及從設 備,其中
所述交叉開關,用于連接所述主設備和從設備,以及與所述二維網格中的 其他相鄰結點的交叉開關互連,進行處理器核間的數(shù)據(jù)傳輸;
所述主設備,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀/ 寫請求;
所述從設備,用于通過與所述交叉開關連接,接受所述主設備的請求并進 行數(shù)據(jù)或狀態(tài)響應。
所述從設備的數(shù)據(jù)都能夠被所有主設備共享。
所述交叉開關,包括至少五個主設備接口模塊,和至少五個從設備接口 模塊,其中
四個主設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個主設備接口模塊包括兩級內部 緩存;
其余主設備接口模塊中的每一主設備接口模塊,用于連接主設備,所述每 一主設備接口模塊包括兩級內部緩存;
四個從設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、北四個方向的二維網格中的其他結點互連,每個從設備接口模塊包括兩級內部
緩存;
其余從設備接口模塊中的每一從設備接口模板,用于連接從設備,所述每 一從設備接口模塊包括兩級內部緩存。
所述主設備接口模塊和所述從設備接口模塊都包括五類數(shù)據(jù)傳輸通道,分 別是寫地址通道、寫數(shù)據(jù)通道、讀地址通道、讀數(shù)據(jù)通道和寫應答通道,其中 寫地址通道、寫數(shù)據(jù)通道、和讀地址通道由主設備發(fā)向從設備;讀數(shù)據(jù)通道和 寫應答通道由從設備發(fā)向主設備。
所述四個主設備接口模塊和所述四個從設備接口模塊空閑時,還用于連接 I/O控制器。
為實現(xiàn)本發(fā)明的目的還提供一種處理器系統(tǒng),包括1/0總線,還包括 至少一個多核處理器和1/0控制器,其中
所述多核處理器,采用二維網格作為基本互連拓撲結構,多核處理器間通 過所述I/0總線連接,所述二維網格中的每個結點包括交叉開關,主設備, 以及從設備,其中
所述交叉開關,用于連接所述主設備和從設備,以及與所述二維網格中的 其他相鄰結點的交叉開關互連,進行處理器核間的數(shù)據(jù)傳輸;
所述主設備,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀寫 請求;
所述從設備,用于通過與所述交叉開關連接,接受所述主設備的請求并進 行數(shù)據(jù)或狀態(tài)響應。
所述1/0控制器,與所述二維網格的邊界結點連接,用于實現(xiàn)所述多核處 理器間的數(shù)據(jù)傳輸。
所述從設備的數(shù)據(jù)都能夠被所有主設備共享。
所述交叉開關,包括至少五個主設備接口模塊,和至少五個從設備接口 模塊,其中
四個主設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個主設備接口模塊包括兩級內部 緩存;
其余主設備接口模塊中的每一主設備接口模塊,用于連接主設備,所述每
15一主設備接口模塊包括兩級內部緩存;
四個從設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個從設備接口模塊包括兩級內部 緩存;
其余從設備接口模塊中的每一從設備接口模板,用于連接從設備,所述每 一從設備接口模塊包括兩級內部緩存。
所述主設備接口模塊和所述從設備接口模塊都包括五類數(shù)據(jù)傳輸通道,分 別是寫地址通道、寫數(shù)據(jù)通道、讀地址通道、讀數(shù)據(jù)通道和寫應答通道,其中 寫地址通道、寫數(shù)據(jù)通道、和讀地址通道由主設備發(fā)向從設備;讀數(shù)據(jù)通道和 寫應答通道由從設備發(fā)向主設備。
所述四個主設備接口模塊和所述四個從設備接口模塊空閑時,還用于連接 I/O控制器。
所述I/O控制器,根據(jù)所述多核處理器的二維網絡中各結點在所述處理器 系統(tǒng)中的編號,對傳輸數(shù)據(jù)進行解打包操作,實現(xiàn)所述處理器系統(tǒng)中多核處理 器間的數(shù)據(jù)通信。
相應于本發(fā)明的一種多核處理器,還提供一種多核處理器的訪存方法,所 述方法包括下列步驟
步驟100.構建采用二維網格作為基本互連拓撲結構的多核處理器的核間 互連結構在所述二維網格中的每個結點中設置一個的交叉開關、多個主設備 和多個從設備;將所述交叉開關與多個主設備和多個從設備連接,并與二維網 格中的其他相鄰結點相連接;
步驟200.為所述多核處理器中的各種設備統(tǒng)一編號;
步驟300.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址與 所述編號的對應關系實現(xiàn)多核處理器上處理器核間的訪存操作。
所述主設備,包括處理器核和/或I/O設備。
所述從設備,包括被分為與所述主設備對應的共享二級緩存模塊的二級緩 存和/或1/0設備。
所述步驟IOO,包括下列步驟
步驟110.將所述交叉幵關中的四個主設備接口模塊和四個從設備接口模 塊分別與東、南、西、北四個方向的二維網格中其他相鄰結點相連接;步驟120.將所述交叉開關中的其余主設備接口模塊與所述主設備連接; 步驟130.將所述交叉開關中的其余從設備接口模塊與所述從設備連接。
所述步驟200,包括下列步驟
步驟210.根據(jù)所述結點在二維網格中的位置,為所述多核處理器中的結 點分配結點編號;
步驟220.為所述結點內的交叉開關的主設備接口模塊和從設備接口模塊 分配結點內接口編號;
步驟230.為所述結點內的與交叉開關連接的主/從設備分配全局編號。
所述全局編號,是根據(jù)所述結點編號與所述結點內接口編號組合拼接而 成,用于決定請求的路由。
步驟200中,在為各種設備統(tǒng)一編號時,為所述多核處理器的各個結點中 包含的二級緩存統(tǒng)一編址,每個二級緩存對應一個宿主結點,并在宿主結點處 維護共享二級緩存模塊的目錄。
所述歩驟300,包括下列步驟
步驟310.按照固定映射或軟件配置的方式獲得物理地址與所述編號的對 應關系;
步驟320.根據(jù)所述物理地址與所述編號的對應關系,實現(xiàn)多核處理器上 處理器核的訪存操作。
所述步驟310,包括下列步驟
步驟311.判斷軟件是否對物理地址進行過配置,若有,則進入步驟312;
否則,進入步驟313;
步驟312.按照軟件配置方式獲得物理地址與所述編號的對應關系; 步驟313.按照固定映射的方式獲得物理地址與所述編號的對應關系。 所述軟件配置方式,是指用戶通過設置在所述交叉開關內部的基址、掩碼、
編號三個寄存器,配置所述物理地址空間與從設備或方向接口的編號的對應關
系,進行地址匹配;通過設置在所述交叉開關內部的屬性寄存器進行屬性匹配。 所述固定映射方式,是指芯片出廠時默認根據(jù)從設備和東、西、南、北四
個方向主/從接口的編號,將其編號直接映射到相應物理地址上。 所述步驟320,包括下列步驟
步驟321.主設備根據(jù)配置地址窗口或固定路由表決定發(fā)送所述讀/寫請
17求的路由路徑,通過交叉開關向從設備發(fā)送讀/寫請求;
步驟322.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請求 的路徑進行路由,通過交叉開關向所述主設備返回讀/寫應答。
所述步驟321,包括下列步驟
步驟3211.判斷所述從設備是否與所述主設備位于同一結點內,若是,則 進入步驟3212;否則,進入步驟3213;
步驟3212.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求的 路由路徑,將所述讀/寫請求發(fā)送到與所述從設備連接的CSL模塊后將讀/寫請 求放入請求隊列發(fā)送給相應CSL模塊,送往與之相連的從設備;
步驟3213.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結點 的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到與 所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模塊,
送往與之相連的從設備。
所述步驟322,包括下列步驟
步驟3221.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應答 后先緩存一拍;
步驟3222.所述CSL模塊在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求 的主設備的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反 向傳輸所述讀/寫應答傳輸?shù)脚c所述主設備相連接的交叉開關的CML模塊仲 裁;
步驟3223.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后對 讀/寫應答緩存一拍,并在下一拍送往相應主設備。 所述步驟3212,包括下列步驟
步驟3212 (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交叉 開關的CML模塊;
步驟3212 (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并在 下一拍根據(jù)配置地址窗口或固定路由表決定與從設備連接的CSL模塊后進入 請求隊列發(fā)送給相應CSL模塊;
步驟3212 (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁,仲 裁后對請求進行緩存,并在下一拍送往與之相連的從設備。所述步驟3213,包括下列步驟
步驟3213 (a).根據(jù)所述從設備所在的結點的結點編號,決定需要轉發(fā) 的方向接口 ,所述主設備發(fā)送所述讀/寫請求到所述方向接口并通過與所述方 向接口連接的CML模塊將所述讀/寫請求轉發(fā)到轉發(fā)結點;
步驟3213 (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊接 收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若是, 則執(zhí)行步驟3212;否則,返回步驟3213 (a)。
所述步驟3213 (a),包括下列步驟
步驟3213 (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交 叉開關的CML模塊;
步驟3213 U2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一拍, 并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將讀/ 寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;
步驟3213 (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁,仲
裁后對請求進行緩存,并在下一拍送往與之相連的方向接口 。
步驟3222中,所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊處
均需要經過兩級緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。 相應于本發(fā)明的一種處理器系統(tǒng),還提供一種處理器系統(tǒng)的訪存方法,所
述方法包括下列步驟
步驟100,.構建采用二維網格作為基本互連拓撲結構的處理器系統(tǒng)在
所述二維網格中的每個結點中設置一個交叉開關、多個主設備和多個從設備;
將所述交叉開關與多個主設備和多個從設備連接,并與二維網格中的其他相鄰
結點相連接;在所述處理器系統(tǒng)中的多核處理器的二維網格的邊界結點連接
I/O控制器,多核處理器之間通過I/O總線連接;
步驟200'.為所述處理器系統(tǒng)中的各種設備統(tǒng)一編號;
歩驟300,.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址
與所述編號的對應關系實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。
所述主設備,包括處理器核和/或i/o設備。
所述從設備,包括被分為與所述主設備對應的共享二級緩存模塊的二級緩 存和/或1/0設備。
19所述步驟100',包括下列步驟
步驟110,.將所述交叉開關的四個主設備接口模塊和四個從設備接口模
塊分別與東、南、西、北四個方向的二維網格中其他相鄰結點相連接;
步驟120,.將所述邊界結點上空閑的連接東、南、西、北四個方向的主
設備接口模塊和從設備接口模塊與I/O控制器連接;
步驟130'.將所述交叉開關的其余主設備接口模塊與所述主設備連接; 步驟140'.將所述交叉開關的其余從設備接口模塊與所述從設備連接; 步驟150,.將所述處理器系統(tǒng)中的多核處理器之間通過I/O總線連接。 所述步驟200',包括下列步驟
步驟210'.根據(jù)所述多核處理器在處理器系統(tǒng)中的位置,為所述多核處 理器分配多核處理器編號;
步驟220'.根據(jù)所述多核處理器內的結點在二維網格中的位置,為所述 結點分配結點編號;
步驟230'.為所述多核處理器內的結點的交叉開關的主設備接口模塊和 從設備接口模塊分配結點內接口編號;
步驟240'.為所述多核處理器內的結點內的與交叉開關連接的主/從設 備分配全局編號。
所述全局編號,是根據(jù)所述多核處理器編號、所述結點編號以及所述結點 內接口編號組合拼接而成,用于決定請求的路由。
步驟200'中,在統(tǒng)一編號時,所述處理器系統(tǒng)中的多核處理器的各個結 點中包含的二級緩存統(tǒng)一編址,每個二級緩存對應一個宿主結點,并在宿主結 點處維護共享二級緩存模塊的目錄。
所述歩驟300',包括下列步驟
步驟310'.按照固定映射或軟件配置的方式獲得物理地址與所述編號的 對應關系;
步驟320'.根據(jù)所述物理地址與所述編號的對應關系,通過所述I/0控 制器和1/0總線實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。 所述歩驟310',包括下列步驟
歩驟311'.判斷軟件是否對物理地址進行過配置,若有,則進入歩驟 312,;否則,進入步驟313';步驟312'.按照軟件配置方式獲得物理地址與所述編號的對應關系; 步驟313'.按照固定映射的方式獲得物理地址與所述編號的對應關系。 所述軟件配置方式,是指用戶通過設置在所述交叉開關內部的基址、掩碼、 編號三個寄存器,配置所述物理地址空間與從設備或方向接口的編號的對應關 系,進行地址匹配;通過設置在所述交叉開關內部的屬性寄存器進行屬性匹配。 所述固定映射方式,是指芯片出廠時默認根據(jù)從設備和東、西、南、北四 個方向主/從接口的編號,將其編號直接映射到相應物理地址上。 所述歩驟320',包括下列步驟
步驟321'.所述主設備根據(jù)配置地址窗口或固定路由表,決定發(fā)送讀/寫 請求的路由路徑,向從設備發(fā)送讀/寫請求;
步驟322'.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請 求的路由路徑,向所述主設備返回讀/寫應答。
所述步驟321',包括下列步驟
步驟3211,.判斷所述從設備是否與所述主設備位于同一多核處理器內, 若是,則進入步驟3212,;否則,進入步驟3215';
歩驟3212'.判斷所述從設備是否與所述主設備位于同一結點內,若是, 則進入步驟3213,;否則,進入歩驟3214';
步驟3213'.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求 的路由路徑,將所述讀/寫請求發(fā)送到與所述從設備連接的CSL模塊后將讀/ 寫請求放入請求隊列;
步驟3214'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結 點的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到 與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模 塊;
步驟3215'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的多 核處理器的編號,決定發(fā)送所述讀/寫請求的路由路徑,通過I/O控制器將所 述讀/寫請求轉發(fā)到與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊 列發(fā)送給相應CSL模塊。
所述歩驟3213',包括下列步驟
步驟3213' (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交叉開關的CML模塊;
步驟3213' (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并 在下一拍根據(jù)配置地址窗口或固定路由表決定與從設備或方向接口連接的 CSL模塊后進入請求隊列發(fā)送給相應CSL模塊;
步驟3213, (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的從設備。
所述歩驟3214,,包括下列步驟
步驟3214' (a).根據(jù)所述從設備所在的結點的結點編號,決定需要轉 發(fā)的方向接口,并通過與所述轉發(fā)的方向接口連接的CML模塊將所述讀/寫請 求轉發(fā)到轉發(fā)結點;
步驟3214' (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊 接收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若 是,則執(zhí)行步驟3213,;否則,執(zhí)行歩驟3214, (a)。
所述歩驟3214, (a),包括下列步驟
步驟3214' (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的 交叉開關的CML模塊;
歩驟3214, (a2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一 拍,并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將 讀/寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;
步驟3214, (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的方向接口 。
所述步驟3215',包括下列步驟
步驟3215' (a).所述主設備根據(jù)所述從設備的全局編號確定所述從設 備所在的結點的結點編號,再根據(jù)結點編號確定所述從設備所在的多核處理器 的編號;
步驟3215' (b).所述主設備所在的多核處理器按照數(shù)據(jù)傳輸協(xié)議格式 將所述讀/寫請求通過所述主設備所在多核處理器的邊界結點的I/O控制器打 包成數(shù)據(jù)包,并根據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給 轉發(fā)多核處理器;
步驟3215, (c).轉發(fā)多核處理器通過其邊界結點的I/O控制器對數(shù)據(jù)
22包進行解包操作得到讀/寫請求,并判斷所述轉發(fā)多核處理器是否是所述從設
備所在的多核處理器,若是,則執(zhí)行步驟3212' ~3214';否則執(zhí)行步驟3215, (b)。
所述步驟3215, (b),包括下列步驟
步驟3215' (bl).判斷所述主設備發(fā)送的讀/寫請求是否需要經過轉發(fā) 結點才能到達希望轉發(fā)的邊界結點,若是,則執(zhí)行步驟3214';否則,執(zhí)行 步驟3215' (b2);
步驟3215' (b2).通過所述邊界結點的I/O控制器打包成數(shù)據(jù)包,并根 據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給轉發(fā)多核處理器。
所述步驟322',包括下列歩驟
步驟3221'.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應 答后先緩存一拍;
步驟3222'.并在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求的主設備
的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反向傳輸所 述讀/寫應答傳輸?shù)脚c所述主設備相連接的交叉開關的CML模塊仲裁;
步驟3223'.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后 對讀/寫應答緩存一拍,并在下一拍送往相應主設備。
步驟3222'中,所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊 處均需要經過兩級緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。
本發(fā)明的有益效果在于
1. 本發(fā)明將交叉開關與Mesh網絡結構相結合,實現(xiàn)了多核處理器的可擴 展性;
2. 本發(fā)明中通過處理器核間共享二級Cache,實現(xiàn)了并行訪問的同時降低 了訪問延時;
3. 本發(fā)明中通過在交叉開關內部包含四級緩存,使得數(shù)據(jù)通道能夠全流水 地傳輸和交換數(shù)據(jù)。
圖1A是本發(fā)明一種多核處理器的結構示意圖lB是本發(fā)明的多核處理器基于二維Mesh的互連結構的擴展圖;圖2是本發(fā)明中交叉開關的結構示意圖; 圖3是本發(fā)明中單結點實施例的結構示意圖; 圖4是本發(fā)明一種多核處理器的訪存方法的流程圖; 圖5是本發(fā)明中構建多核處理器的核間互連結構的流程圖; 圖6是本發(fā)明中為多核處理器中為各模塊統(tǒng)一編號的流程圖; 圖7是本發(fā)明中獲得物理地址與所述編號的對應關系的流程圖; 圖8是本發(fā)明中按照固定映射方式得到的物理地址與編號的映射關系示 意圖9是本發(fā)明中多核處理器上處理器核進行訪存操作的流程圖10是本發(fā)明多核處理器中主設備向從設備發(fā)送讀/寫請求的流程圖11是本發(fā)明的多核處理器中從設備向主設備返回讀/寫應答的流程圖12是本發(fā)明一種處理器系統(tǒng)的結構示意圖13A、圖13B和圖13C是本發(fā)明中多處理器互連的擴展圖14是本發(fā)明一種處理器系統(tǒng)的訪存方法的流程圖15是本發(fā)明中構建多核處理器的核間互連結構的流程圖16是本發(fā)明中為處理器系統(tǒng)中的設備統(tǒng)一編址的流程圖17是本發(fā)明中獲得物理地址與所述編號的對應關系的方法流程圖18是本發(fā)明中實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作的流程圖19是本發(fā)明中主設備向從設備發(fā)送發(fā)送讀/寫請求的流程圖20是本發(fā)明中從設備向主設備返回讀/寫應答的流程圖21是本發(fā)明的處理器系統(tǒng)上訪存操作的實施例的示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實 施例,對本發(fā)明的一種處理器系統(tǒng)及其訪存方法進行進一步詳細說明。應當理 解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的一種處理器系統(tǒng)及其訪存方法,應用于多核處理器,所述多核處 理器是采用二維網格(Mesh)作為處理器系統(tǒng)的基本互連拓撲結構,并在Mesh 網絡中的每個結點設置一個交叉開關,來實現(xiàn)核間的數(shù)據(jù)傳輸。其能夠提高多 核處理器系統(tǒng)的擴展性,實現(xiàn)復雜度和通信效率。下面結合上述目標詳細介紹本發(fā)明的一種多核處理器,圖1A是本發(fā)明一
種多核處理器的結構示意圖,圖IB是本發(fā)明的多核處理器基于二維Mesh的互 連結構的擴展圖,如圖1A和圖IB所示,多核處理器采用可擴展的二維網格 (MESH)作為多核處理器的基本互連拓撲結構,所述MASH網絡中的每個結點 包括交叉開關l,主設備2,以及從設備3,其中
所述交叉開關1,用于連接所述主設備和從設備,以及與所述MASH網絡 中的其他結點互連,進行核間的數(shù)據(jù)傳輸;
所述主設備2,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀 寫請求;
所述從設備3,用于通過與所述交叉開關連接,接受所述主設備的請求并 進行數(shù)據(jù)或狀態(tài)響應。
按照多核處理器中各設備的功能可以分為主和從兩類。主設備是指能夠主 動發(fā)起讀寫請求的設備,例如處理器核,外設組件互連標準(Peripheral Component Interconnection, PCI)、超傳輸總線(Hyper Transport, HT)等 1/0控制器;從設備是指能夠接受主模塊的請求并進行數(shù)據(jù)或狀態(tài)響應的設 備,例如二級Cache, PCI、 HT等I/0控制器。
每一個所述從設備都被片內的所有主設備共享,可以被并行訪問,降低了 訪問延時。
較佳地,所述處理器核,可以選擇不同應用需求的處理器核,可以是64 位的龍芯通用處理器核,也可以是專用的計算型處理器核,通過配置不同的核 可滿足不同的應用需求。
圖2是本發(fā)明中交叉開關的結構示意圖,如圖2所示,所述交叉開關l, 包括至少5個主設備接口 (Crossbar-Master-Link, CML)模塊ll,和至少 5個從設備接口 (Crossbar-Slave-Link, CSL)模塊12,其中 至少一個CML模塊ll,包括兩級內部緩存,用于連接主設備; 四個CML模塊ll,包括兩級內部緩存,用于分別與交叉開關所在結點的 東南西北四個方向的Mesh網絡中其他結點互連;
至少一個CSL模塊12,包括兩級內部緩存,用于連接從設備; 四個CSL模塊12,包括兩級內部緩存,用于分別與交叉開關所在結點的 東南西北四個方向的Mesh網絡中其他結點互連。所述交叉開關的每個CML模塊和CSL模塊包括5類數(shù)據(jù)傳輸通道,分別是 寫地址通道(AW)、寫數(shù)據(jù)通道(W)、讀地址通道(AR)、讀數(shù)據(jù)通道(R)、 寫應答通道(B)。其中AW、 W、 AR由主設備發(fā)向從設備,稱為主通道;剩余 的R、 B由從設備發(fā)向主設備,稱為從通道。
考慮到主/從設備與交叉開關的連線較長,連線的延遲將大大超過交叉開 關的邏輯本身的延遲,本發(fā)明在交叉開關內部包含四級緩存,每個CML模塊或 CSL模塊都包含兩級緩存,使得數(shù)據(jù)通道能夠全流水地傳輸和交換數(shù)據(jù)。
在邊界結點上,空閑的用于連接東南西北四個方向的MASH網絡中其他結 點的CML/CSL模塊還可以用于連接其它功能模塊,PCI、 HT等IO控制器模塊 可以從這些空閑模塊接入到多核處理器中。
作為一種可實施方式,由于I/0控制器可能同時包括主從功能,因此在連 接上需要同時占用一個CML模塊和一個CSL模塊。
CML模塊從主設備收到請求后先緩存一拍,并在下一拍將請求發(fā)送給相應 CSL模塊;CSL模塊對來自不同CML模塊的請求進行仲裁,仲裁后對請求緩存 一拍,并在下一拍送往與CSL模塊連接的從設備;CSL模塊收到從設備發(fā)來的 應答后先緩存一拍,然后在下一拍送到CML模塊仲裁;CML模塊對來自不同CSL 模塊的應答進行仲裁,仲裁后對應答緩存一拍,并在下一拍送往與CML模塊連 接的主設備,以此實現(xiàn)多核處理器內部的數(shù)據(jù)傳輸。
圖3是本發(fā)明中單結點實施例的結構示意圖,如圖3所示,較佳地,作為 一種可實施方式,本發(fā)明的多核處理器采用可擴展的二維Mesh互連結構,Mesh 互連結構中包含多個結點,每個結點又包括 一個8*8交叉開關,四個處理器 核Cl、 C2、 C3和C4,和被分為四個體的共享二級緩存(Cache)。所述四個 處理器核分別連接交叉開關的4個CML模塊,被分為四個體的共享二級Cache 分別連接交叉開關的4個CSL模塊,交叉開關的其余4個CML模塊和4個CSL 模塊分別與東(E)南(S)西(W)北(N)四個方向的MASH網絡中其他結點 互連。
相應于本發(fā)明的一種多核處理器,還提供所述一種多核處理器的訪存方法。
圖4是本發(fā)明一種多核處理器的訪存方法的流程圖,如圖4所示,所述方
法,包括下列步驟
26步驟100.構建采用二維網格作為基本互連拓撲結構的多核處理器的核間 互連結構;
圖5是本發(fā)明中構建多核處理器的核間互連結構的流程圖,如圖5所示, 所述步驟100,包括下列步驟
步驟110.在所述二維網格中的每個結點中設置一個的交叉開關、多個主 設備和多個從設備;
步驟120.將所述交叉開關與多個主設備和多個從設備連接,并與Mesh網
絡中的其他結點互連;
所述步驟120,進一歩包括下列步驟
步驟121.將所述交叉開關的4個主設備接口模塊和4個從設備接口模塊 分別與東(E)南(S)西(W)北(N)四個方向的Mesh網絡中其他相鄰結點 互連;
步驟122.將所述交叉開關的其余主設備接口模塊與所述結點中的主設備 連接;
步驟123.將所述交叉開關的其余從設備接口模塊與所述結點中的從設備 連接;
較佳地,作為一種可實施方式,所述方法中,假設主設備為處理器核,從 設備是二級Cache,交叉開關為8*8的交叉開關,那么將四個處理器核分別連 接交叉開關的4個CML模塊,將二級Cache分為四個模塊,分別連接交叉開關 的4個CSL模塊,四個模塊共享此二級Cache,交叉開關的其余4個CML模塊 和4個CSL模塊分別與東(E)南(S)西(W)北(N)四個方向的Mesh網絡 中其他結點互連。
若交叉開關選擇9*9的交叉開關,那么將有5個CML模塊和5個CSL模塊 用于連接主從設備,但仍然是必須留出4個CML模塊和4個CSL模塊分別與東 (E)南(S)西(W)北(N)四個方向的MASH網絡中其他結點互連。這也是 本發(fā)明的巧妙之處,與現(xiàn)有技術相比,利用與相鄰結點的連接,實現(xiàn)了多核處 理器的核間通信,同時還不會增加單個交叉開關的工作量,簡化了路由算法。
本發(fā)明中二級Cache分布在不同的結點中,被多核處理器內的所有處理器 核共享。針對結點中含有四個處理器核的情況,每個結點的二級Cache根據(jù)地 址分成交叉存取的四個模塊,可以被并行訪問。即結點中有多少個處理器核就應當將二級Cache分成可并行訪問的多少個模塊。步驟200.為多核處理器中的各種設備統(tǒng)一編號;
本發(fā)明的多核處理器采用固定的X-Y路由算法,點到點的路由是固定的,即先橫向后縱向的傳輸方式。為了實現(xiàn)簡單高效的X-Y路由算法,邏輯上需要根據(jù)設備所在的接口模塊位置來確定路由。在本發(fā)明中,每個結點被分配一個全局結點編號,由系統(tǒng)結點的規(guī)模來確定結點編號的寬度。每個結點內交叉開關的CML模塊和CSL模塊獨立編號,每個CML模塊/CSL模塊可對應一個結點內主/從編號。在路由實現(xiàn)時,與交叉開關的接口模塊相連的設備都會分配一個全局編號,該編號由結點編號與結點內接口編號組合拼接而成,用于決定請求的路由。
圖6是本發(fā)明中為多核處理器中為各模塊統(tǒng)一編號的流程圖,如圖6所示,所述步驟200,包括下列歩驟
歩驟210.根據(jù)所述結點在二維網格中的位置,為多核處理器中的結點分配結點編號;
所述結點編號由結點在Mesh網絡的位置決定。第一排左邊第一個結點編號為0,相鄰右邊結點編號為1,以此類推,直到第一排結點全部被編號,則進入第二排,若第一排最右邊的結點編號為n,則第二排左邊第一個結點的編號為n+l,以此規(guī)律將Mesh網絡中的所有結點編號。
上述編號均是以十進制表示,但在路由實現(xiàn)時,則以二進制表示,二進制的位數(shù)由Mesh網絡中結點的個數(shù)決定。4個結點,則以2位二進制數(shù)表示,8個結點則以3位二進制數(shù)表示。
作為一種可實施方式,以4個結點為例,按照2X2的Mesh方式進行排列,上面一排左邊結點編號為O (二進制表示為OO),右邊結點編號為l (二進制表示為01),下面一排左邊結點編號為2 (二進制表示為10),右邊結點編號為3 (二進制表示為11)。
步驟220.為所述結點內的交叉開關的CML模塊和CSL模塊分配結點內接口編號;
Mesh網絡中每個結點包括了一個交叉開關,每個交叉開關上有多個CML模塊和多個CSL模塊,每個模塊都固定對應一個本結點內的編號,CML模塊和CSL模塊的編號獨立。
28作為一種可實施方式,以8*8的交叉開關為例,如圖3所示,交叉開關內 的8個CML模塊編號依次為0 7; 8個CSL模塊編號依次為0 7。其中CML0、 CML1、 CML2、 CML3分別連接4個處理器核,CSL0、 CSL1、 CSL2、 CSL3分別連 接被分為4個模塊的共享二級Cache;東、西、南、北四個方向接口分別對應 CML4、 CSL4, CML5、 CSL5, CML6、 CSL6, CML7、 CSL7 (分主與從)。
同理,上述編號均是以十進制表示,但在路由實現(xiàn)時,則以二進制表示, 二進制的位數(shù)由交叉開關的接口模塊的個數(shù)決定。8個接口模塊,則以3位二 進制數(shù)表示。即CML0的編號為000, CML1的編號為001, CML2的編號為010, CML3的編號為011, CML4的編號為100, CML5的編號為101, CML6的編號為 110, CML7的編號為111。
步驟230.為所述結點內的與交叉開關連接的主/從設備分配全局編號。
在路由實現(xiàn)時,與交叉開關的接口模塊相連的主/從設備都會被分配一個 全局編號,該編號由結點編號與結點內接口編號組合拼接而成,用于決定請求 的路由。
在編址過程中,所有結點中包含的二級Cache統(tǒng)一編址,每個二級Cache 對應一個宿主結點,并在宿主結點處維護共享相應二級Cache的模塊的目錄。
作為一種可實施方式,以結點編號為1 (01)的結點為例,4個處理器核 分別對應全局編號8 (01-000) 、 9 (01-001) 、 10 (01-010)和11 (01-011); 共享二級Cache的4個模塊分別對應從編號8 (01-000) 、 9 (01-001) 、 10 ((U-OIO)和ll (01-011);東、西、南、北4個方向主/從接口分別對應全 局編號12 (01-100) 、 13 (01-101) 、 14 (01-110)和15 (01-111)。
步驟300.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址與 所述編號的對應關系實現(xiàn)多核處理器上處理器核的訪存操作。
步驟310.按照固定映射或軟件配置的方式獲得物理地址與所述編號的對 應關系;
圖7是本發(fā)明中獲得物理地址與所述編號的對應關系的流程圖,如圖7 所示,所述步驟310,包括下列步驟
步驟311.判斷軟件是否對物理地址進行過配置,若有,則進入步驟312; 否則,進入步驟313;
步驟312.按照軟件配置方式獲得物理地址與所述編號的對應關系;所述軟件配置方式,是指用戶可以通過軟件來設置某段物理地址空間對應 的編號。所述物理地址空間對應的編號由所述交叉開關內的基址、掩碼、編號、 屬性四個寄存器進行管理配置
所述基址寄存器,以2的冪次大小對齊,用于標示某段地址空間的基地址;
所述掩碼寄存器,采用類似網絡掩碼高位為1的格式,用于標示所述某段 地址空間的大?。?br>
所述編號寄存器,用于配置對應從設備或方向接口的編號;
所述屬性寄存器,由3位組成,分別表示該段地址空間是否允許取指,是
否允許塊讀,窗口是否使能。其中,第o位表示該配置窗口是否被激活,第l
位表示是否可以進行取指令操作,第2位表示是否允許塊訪問。 地址匹配公式為"(地址&掩碼)二=基址"。
用戶通過基址、掩碼、編號三個寄存器,配置物理地址空間與從設備或方 向接口的編號的對應關系,進行地址匹配;通過屬性寄存器進行屬性匹配,只 有當?shù)刂菲ヅ浜蛯傩云ヅ渫瑫r符合才認為該窗口命中匹配,若有其一不符合, 則窗口沒有命中,即表示軟件沒有對該地址進行過配置,則采用缺省的固定映 射方式。
本發(fā)明的多核處理器缺省采用固定映射方式,在上電啟動時,配置寄存器 都處于未激活狀態(tài),使用時需要使用軟件對其進行配置。
步驟313.按照固定映射的方式獲得物理地址與所述編號的對應關系。
所述固定映射方式,是指芯片出廠時默認根據(jù)從設備和東、西、南、北四 個方向主/從接口的編號,將其編號直接映射到相應物理地址上。
圖8是本發(fā)明中按照固定映射方式得到的物理地址與編號的映射關系示 意圖。
作為一種可實施方式,如圖8所示,以16位物理地址和4個結點為例, 16位物理地址的高2位[15:14]對應結點的結點編號,其中物理地址[15:14] 位為0、 1、 2、 3分別對應結點0、 1、 2、 3,每個結點擁有固定的14位地址 空間;在結點內14位的地址空間的高3位(以8*8的交叉開關為例,因此需 要3位表示)[13:11]對應結點內接口編號,其中東、南、西、北四個方向接 口,其地址的[13:11]為4、 5、 6、 7的4個11位物理地址分別對應東、南、 西、北四個方向接口;而地址[13:11]為0、 1、 2、 3的4個11位物理地址則由4個二級Cache共享。那么按照固定映射關系得到的結點編號為1的結點內, 結點內接口編號為7的方向接口對應到物理空間上的物理地址為 01111***********;同理,按照固定映射關系得到的結點編號為1的結點內,
結點內接口編號為3的二級共享Cache模塊對應到物理空間上的物理地址為 01011氺氺氺氺氺氺氺氺氺氺氺。
較佳地,不同于方向接口的映射關系,可以根據(jù)實際應用的訪問行為,來 決定二級Cache的交叉組成方式。4個11位物理地址與4個二級共享Cache
模塊的對應關系還可以根據(jù)系統(tǒng)的配置參數(shù)進行實時配置,運行時由配置參數(shù) 來決定地址的哪幾位對應的所述二級共享Cache模塊的編號。舉例來說,若在 實際應用訪問時需要占用物理地址[13:11]位的地址空間,或者物理地址 [13:11]位的地址空間損壞,那么可以使用物理地址的任意三位(例如[10: 8]) 對應所述二級共享Cache模塊的編號。
步驟320.根據(jù)所述物理地址與所述編號的對應關系,實現(xiàn)多核處理器上 處理器核的訪存操作。
本發(fā)明中以交叉開關為基礎的多核處理器包括5類數(shù)據(jù)傳輸通道,分別是 寫地址通道(AW)、寫數(shù)據(jù)通道(W)、讀地址通道(AR)、讀數(shù)據(jù)通道(R)、 寫應答通道(B)。其中AW、 W、 AR由主設備發(fā)向從設備,稱為主通道;剩余 的R、 B由從設備發(fā)向主設備,稱為從通道。主通道的數(shù)據(jù)類型主要包括讀寫 請求、 一致性維護和一致性應答,數(shù)據(jù)包中包含了地址信息,路由選擇根據(jù)訪 問地址進行。從通道的數(shù)據(jù)類型主要包括讀寫應答、 一致性維護命令等,數(shù)據(jù) 包中包含了目標主設備的編號,路由選擇根據(jù)目標編號進行。
圖9是本發(fā)明中多核處理器上處理器核進行訪存操作的流程圖,如圖9 所示,所述步驟320,包括下列步驟
步驟321.主設備根據(jù)配置地址窗口或固定路由表決定發(fā)送所述讀/寫請 求的路由路徑,通過交叉開關向從設備發(fā)送讀/寫請求;
圖10是本發(fā)明多核處理器中主設備向從設備發(fā)送讀/寫請求的流程圖;如 圖10所示,所述步驟321,包括下列步驟
步驟3211.判斷所述從設備是否與所述主設備位于同一結點內,若是,則 進入步驟3212;否則,進入步驟3213;
步驟3212.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求的步驟3212 (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交叉 開關的CML模塊;
步驟3212 (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并在 下一拍根據(jù)配置地址窗口或固定路由表決定與從設備連接的CSL模塊后進入 請求隊列發(fā)送給相應CSL模塊;
步驟3212 (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁,仲 裁后對請求進行緩存,并在下一拍送往與之相連的從設備。
步驟3213.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結點 的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到與 所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模塊,
送往與之相連的從設備-,
所述步驟3213,包括下列步驟
步驟3213 (a).根據(jù)所述從設備所在的結點的結點編號,決定需要轉發(fā) 的方向接口,所述主設備發(fā)送所述讀/寫請求到所述方向接口并通過與所述方 向接口連接的CML模塊將所述讀/寫請求轉發(fā)到轉發(fā)結點;
所述步驟3213 (a),包括下列步驟
步驟3213 (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交 叉開關的CML模塊;
步驟3213 (a2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一拍, 并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將讀/ 寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;
步驟3213 (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁,仲 裁后對請求進行緩存,并在下一拍送往與之相連的方向接口。
步驟3213 (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊接
收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若是, 則執(zhí)行步驟3212;否則,返回歩驟3213 (a)。
作為一種可實施方式,按照上面的假設,對于向落在本地結點地址范圍內
32的訪問,若地址的[13]位為0時,則判斷訪問目標是二級Cache共享模塊,再 根據(jù)配置參數(shù)或固定路由表確定由地址的[12][11]位來決定與目標二級 Cache共享模塊相連接的CSL模塊;若地址[13]為1,則判斷訪問目標是連接 在方向接口的功能模塊,貝l油地址[12][ll]位來決定目標方向接口。
對于不在本地結點地址范圍內的訪問,根據(jù)目標結點號和本地結點號按照
X-Y路由的順序,決定需要轉發(fā)的接口號。當需要由位于西北方向的O號結點 傳遞到位于東南方向的3號結點時,需要通過位于0號結點的4號接口 (即東 面方向接口)將其轉發(fā)到位于0號結點東面的1號結點,1號結點從其6號接 口 (即西面方向接口)接受到數(shù)據(jù)包后,繼續(xù)進行下次轉發(fā)判斷;轉發(fā)對應l 號結點的4號接口 (即東面方向接口)。
步驟322.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請求 的路徑進行路由,通過交叉開關向所述主設備返回讀/寫應答。
圖11是本發(fā)明的多核處理器中從設備向主設備返回讀/寫應答的流程圖, 如圖11所示,所述步驟322,包括下列步驟
步驟3221.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應答 后先緩存一拍;
步驟3222.所述CSL模塊在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求 的主設備的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反 向傳輸所述讀/寫應答到與所述主設備相連接的交叉開關的CML模塊仲裁;
所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊處均需要經過兩級 緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。
本步驟中,返回讀/寫應答的路徑與發(fā)出的讀/寫請求的路徑一致,但是因 為主從通道是分離的,所以返回讀/寫應答還是要進行路由。
步驟3223.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后對 讀/寫應答緩存一拍,并在下一拍送往相應主設備。
相對于主通道,從通道(R, B)信號處理比較直接,目標編號直接由slave 通道中標示目標主模塊的RID與BID信號決定,不需要進行復雜的轉換,按照 固定X-Y路由判斷其需要發(fā)送的本地端口號即可。
本發(fā)明還提供一種處理器系統(tǒng),其通過I/0鏈路間的數(shù)據(jù)轉換傳輸,多核 處理器間可以繼續(xù)以統(tǒng)一的網格(Mesh)結構形式組成一個大規(guī)模處理器系統(tǒng),實現(xiàn)大規(guī)模處理器系統(tǒng)的數(shù)據(jù)傳輸。
圖12是本發(fā)明一種處理器系統(tǒng)的結構示意圖,圖13A、圖13B和圖13C 是本發(fā)明中多處理器互連的擴展圖,如圖12、圖13A、圖13B和圖13C所述, 所述處理器系統(tǒng),包括1/0總線3,,其特征在于,還包括至少一個多核 處理器r禾口V0控制器2',其中
所述多核處理器r ,采用可擴展的二維網格作為多核處理器的基本互連
拓撲結構,通過所述I/0總線3'互連;
所述I/0控制器2',與所述二維網格的邊界結點連接,根據(jù)多核處理器
的所述二維網絡中各結點在處理器系統(tǒng)中的編號,將讀/寫請求進行解打包操 作后轉發(fā),實現(xiàn)處理器系統(tǒng)上處理器核的訪存操作。
所述多核處理器l'的結構,己經在上述文字中作了詳細說明,在此不再
一一贅述。多核處理器間通過i/o總線連接構成處理器系統(tǒng),主設備所在的多
核處理器的I/O控制器將讀/寫請求打包成符合I/O總線數(shù)據(jù)格式的數(shù)據(jù)包, 通過I/O總線傳輸給從設備所在的多核處理器,從設備所在的多核處理器的 1/0控制器接收來自1/0總線的數(shù)據(jù)包,并對該數(shù)據(jù)包進行解包操作,將解包 得到的讀/寫請求傳輸給從設備。
較佳地,作為一種可實施方式,如圖13C所述,假設多核處理器內采用 2*2的Mesh結構,4個多核處理器共同組成一個以4*4的Mesh網絡為結構形 式的處理器系統(tǒng)。4個多核處理器分別接受編號參數(shù)為0 (二進制表示為00)、 1 (二進制表示為01) 、 2 (二進制表示為10) 、 3 (二進制表示為11)。以 此判斷,O號多核處理器內4個結點編號分別為0 (二進制表示為00-00) 、 1 (二進制表示為00-01) 、 2 (二進制表示為00-10) 、 3 (二進制表示為00-11); l號多核處理器的4個結點編號分別為4 (二進制表示為01-00) 、 5 (二進制 表示為01-01) 、 6 (二進制表示為01-10) 、 7 (二進制表示為01-11) ; 2 號多核處理器的4個結點編號分別為8 (二進制表示為10-00) 、 9 (二進制表 示為10-01) 、 10 (二進制表示為10-10) 、 11 (二進制表示為10-11) ; 3 號多核處理器的4個結點編號分別為12 (二進制表示為11-00) 、 13 (二進制 表示為11-01) 、 14 (二進制表示為11-10) 、 15 (二進制表示為11-11)。 在路由時,交叉開關依然采用普通的與4*4mesh結構的多核處理器的路由方式 相同的路由方式,當讀/寫請求到達邊界的I/0控制器時,由I/0控制器將讀/寫請求打包編碼為I/O總線數(shù)據(jù)格式的數(shù)據(jù)包,沿I/O總線發(fā)送至相鄰多核處 理器。相鄰多核處理器的I/O控制器接收到數(shù)據(jù)包后,將包含讀/寫請求的數(shù) 據(jù)包解包為多核處理器內部的數(shù)據(jù)傳輸格式,繼續(xù)進行路由發(fā)送。
相應于本發(fā)明的一種處理器系統(tǒng),還提供一種處理器系統(tǒng)的訪存方法。
圖14是本發(fā)明一種處理器系統(tǒng)的訪存方法的流程圖,如圖14所示,所述
處理器系統(tǒng)的訪存方法,包括下列步驟
步驟100'.構建采用二維網格作為基本互連拓撲結構的處理器系統(tǒng);
圖15是本發(fā)明中構建多核處理器的核間互連結構的流程圖,如圖15所示, 所述步驟100',包括下列步驟
步驟110,.在所述二維網格中的每個結點中設置一個交叉開關、多個主 設備和多個從設備;
每一個所述從設備的數(shù)據(jù)都被所有主設備共享。
所述主設備,包括但不限于處理器核和i/o設備。
所述從設備,包括被分為與所述主設備對應的共享二級緩存模塊的二級緩 存和/或I/0設備。
步驟120'.將所述交叉開關與多個主設備和多個從設備連接,并與二維
網格中的其他相鄰結點相連接;
所述步驟120',包括下列步驟
步驟121'.將所述交叉開關的四個主設備接口模塊和四個從設備接口模 塊分別與東、南、西、北四個方向的二維網格中其他相鄰結點相連接;
步驟122'.將所述交叉開關的其余主設備接口模塊與所述主設備連接; 步驟123'.將所述交叉開關的其余從設備接口模塊與所述從設備連接; 步驟130'.在所述處理器系統(tǒng)中的多核處理器的二維網格的邊界結點連 接I/O控制器,多核處理器之間通過I/O總線連接; 所述步驟130',包括下列步驟
步驟131'.將所述邊界結點上空閑的連接東、南、西、北四個方向的主
設備接口模塊和從設備接口模塊與VO控制器連接;
步驟132'.將所述處理器系統(tǒng)中的多核處理器之間通過I/O總線連接。 步驟200'.為所述處理器系統(tǒng)中的多核處理器,以及多核處理器的二維
網格中的各結點、結點中的交叉開關和各種設備統(tǒng)一編號;
35圖16是本發(fā)明中為處理器系統(tǒng)中的設備統(tǒng)一編址的流程圖,如圖16所示, 所述步驟20(T ,包括下列步驟
步驟210'.根據(jù)所述多核處理器在處理器系統(tǒng)中的位置,為所述多核處 理器分配多核處理器編號;
歩驟220'.根據(jù)所述多核處理器內的結點在二維網格中的位置,為所述 結點分配結點編號;
步驟230,.為所述多核處理器內的結點的交叉開關的主設備接口模塊和 從設備接口模塊分配結點內接口編號;
歩驟240,.為所述多核處理器內的結點內的與交叉開關連接的主/從設 備分配全局編號。
所述全局編號,是根據(jù)所述多核處理器編號、所述結點編號以及所述結點 內接口編號組合拼接而成,用于決定請求的路由。
在步驟200'中,在統(tǒng)一編號時,所述處理器系統(tǒng)中的多核處理器的各個 結點中包含的二級緩存統(tǒng)一編址,每個二級緩存對應一個宿主結點,并在宿主 結點處維護共享二級緩存模塊的目錄。
步驟300'.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址
與所述編號的對應關系實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。 所述步驟300',包括下列歩驟
步驟310,.按照固定映射或軟件配置的方式獲得物理地址與所述編號的 對應關系;
圖17是本發(fā)明中獲得物理地址與所述編號的對應關系的方法流程圖,如
圖17所示,所述步驟310',包括下列步驟
步驟311'.判斷軟件是否對物理地址進行過配置,若有,則進入步驟312;
否則,進入步驟313;
步驟312'.按照軟件配置方式獲得物理地址與所述編號的對應關系; 步驟313'.按照固定映射的方式獲得物理地址與所述編號的對應關系。 步驟320'.根據(jù)所述物理地址與所述編號的對應關系,通過所述I/0控
制器和I/O總線實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。
圖18是本發(fā)明中實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作的流程圖,如圖
18所示,所述步驟320',包括下列歩驟步驟32r .所述主設備根據(jù)配置地址窗口或固定路由表,決定發(fā)送讀/寫
請求的路由路徑,向從設備發(fā)送讀/寫請求;
圖19是本發(fā)明中主設備向從設備發(fā)送發(fā)送讀/寫請求的流程圖,如圖19 所示,所述步驟321',包括下列步驟.-
步驟3211,.判斷所述從設備是否與所述主設備位于同一多核處理器內, 若是,則進入步驟3212';否則,進入步驟3215';
步驟3212'.判斷所述從設備是否與所述主設備位于同一結點內,若是, 則進入步驟3213';否則,進入步驟3214,;
歩驟3213'.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求 的路由路徑,將所述讀/寫請求發(fā)送到與所述從設備連接的CSL模塊后將讀/ 寫請求放入請求隊列;
歩驟3213'具體說明了主設備和從設備位于同一多核處理器的同一結點 內的情形,所述步驟3213',包括下列步驟
歩驟3213' (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交 叉開關的CML模塊;
步驟3213, (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并 在下一拍根據(jù)配置地址窗口或固定路由表決定與從設備或方向接口連接的 CSL模塊后進入請求隊列發(fā)送給相應CSL模塊;
步驟3213, (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的從設備或方向接口 。
步驟3214'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結 點的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到 與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模 塊;
步驟3214'具體說明了主設備和從設備位于同一多核處理器的不同結點 的情形,所述步驟3214,,包括下列步驟
步驟3214' (a).執(zhí)行步驟3213',根據(jù)所述從設備所在的結點的結點 編號,決定需要轉發(fā)的方向接口,并通過與所述轉發(fā)的方向接口連接的CML 模塊將所述讀/寫請求轉發(fā)到轉發(fā)結點;
所述歩驟3214, (a),包括下列步驟步驟3214' (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的 交叉開關的CML模塊;
步驟3214' U2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一 拍,并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將 讀/寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;
步驟3214, (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的方向接口。
步驟3214, (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊 接收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若 是,則執(zhí)行步驟3213';否則,執(zhí)行步驟3214' (a)。
步驟3215'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的多 核處理器的編號,決定發(fā)送所述讀/寫請求的路由路徑,通過I/0控制器將所 述讀/寫請求轉發(fā)到與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊 列發(fā)送給相應CSL模塊;
步驟3215'具體說明了主設備和從設備位于不同多核處理器上的情形, 所述歩驟3215',包括下列步驟
步驟3215' (a).所述主設備根據(jù)所述從設備的全局編號確定所述從設 備所在的結點的結點編號,再根據(jù)結點編號確定所述從設備所在的多核處理器 的編號;
步驟3215' (b).所述主設備所在的多核處理器按照數(shù)據(jù)傳輸協(xié)議格式 將所述讀/寫請求通過所述主設備所在多核處理器的邊界結點的I/O控制器打 包成數(shù)據(jù)包,并根據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給 轉發(fā)多核處理器;
步驟3215, (b),包括下列步驟
步驟3215' (bl).判斷所述主設備發(fā)送的讀/寫請求是否需要經過轉發(fā) 結點才能到達希望轉發(fā)的邊界結點,若是,則執(zhí)行步驟3214';否則,執(zhí)行 步驟3215' (b2);
步驟3215, (b2).通過所述邊界結點的I/O控制器打包成數(shù)據(jù)包,并根 據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給轉發(fā)多核處理器。
步驟3215' (c).轉發(fā)多核處理器通過其邊界結點的I/O控制器對數(shù)據(jù)
38包進行解包操作得到讀/寫請求,并判斷所述轉發(fā)多核處理器是否是所述從設
備所在的多核處理器,若是,則執(zhí)行步驟3212' 3214,;否則執(zhí)行步驟3215' (b)。
步驟322'.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請 求的路由路徑,向所述主設備返回讀/寫應答。
圖20是本發(fā)明中從設備向主設備返回讀/寫應答的流程圖,如圖20所示, 所述步驟322',包括下列步驟
步驟3221'.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應 答后先緩存一拍;
步驟3222'.并在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求的主設備 的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反向傳輸所 述讀/寫應答到與所述主設備相連接的交叉開關的CML模塊仲裁;
所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊處均需要經過兩級 緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。
歩驟3223'.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后
對讀/寫應答緩存一拍,并在下一拍送往相應主設備。
相對于主通道,從通道(R, B)信號處理比較直接,目標編號直接由slave 通道中標示目標主模塊的RID與BID信號決定,不需要進行復雜的轉換,按照 固定X-Y路由判斷其需要發(fā)送的本地端口號即可。
圖21是本發(fā)明的處理器系統(tǒng)上訪存操作的實施例的示意圖。
較佳地,作為一種可實施方式,如圖21所示,根據(jù)處理器系統(tǒng)部分的假 設,以實現(xiàn)處理器核0 (00-00-000)向共享二級緩存模塊123 (11-11-011) 發(fā)送讀/寫請求為例,處理器系統(tǒng)上訪存操作,包括下列步驟
步驟一.處理器核0 (00-00-000)將讀/寫請求通過與之連接的交叉開關 的方向接口 5 (00-00-100)傳輸給結點l (00-01),結點l (00-01)再通過 其內部的交叉開關的方向接口 12 (00-01-100)傳輸給與之相連接的I/0控制 器;
步驟二.所述I/O控制器根據(jù)共享二級緩存模塊的編號123 (11-11-011), 確定所述共享二級緩存模塊123位于結點15 (11-11)內,再根據(jù)結點15確 定其位于多核處理器3 (11)內。因此,多核處理器0 (00)內的I/0控制器將讀/寫請求打包成數(shù)據(jù)包通過I/O總線傳輸給多核處理器1 (01);
步驟三.所述多核處理器1 (01)的I/O控制器接收到數(shù)據(jù)包后,對其進
行解包操作,并將解包后的讀/寫請求傳輸給與之相連接的結點4 (01-00), 結點4 (01-00)將讀/寫請求傳輸給結點5 (01-01),結點5 (01-01)在將 讀/寫請求傳輸給結點7 (01-11),結點7 (01-11)再將讀/寫請求傳輸給與 之相連接的1/0控制器,該讀/寫請求傳輸方式與步驟一相同;
步驟四.重復步驟二,與結點7 (01-11)相連接的1/0控制器,將讀/寫 請求打包成數(shù)據(jù)包通過I/O總線傳輸給多核處理器3 (11);
步驟五.重復步驟三,多核處理器3 (11)的I/0控制器接收到數(shù)據(jù)包后, 對其進行解包操作,并將解包后的讀/寫請求通過結點13 (11-01)傳輸?shù)浇Y 點15 (11-11),最終到達共享二級緩存模塊123 011)。
本發(fā)明的有益效果在于
1. 本發(fā)明將交叉開關與Mesh網絡結構相結合,實現(xiàn)了多核處理器的可擴 展性;
2. 本發(fā)明中通過處理器核間共享二級Cache,實現(xiàn)了并行訪問的同時降低 了訪問延時;
3. 本發(fā)明中通過在交叉開關內部包含四級緩存,使得數(shù)據(jù)通道能夠全流水 地傳輸和交換數(shù)據(jù)。
通過結合附圖對本發(fā)明具體實施例的描述,本發(fā)明的其它方面及特征對本 領域的技術人員而言是顯而易見的。
以上對本發(fā)明的具體實施例進行了描述和說明,這些實施例應被認為其只 是示例性的,并不用于對本發(fā)明進行限制,本發(fā)明應根據(jù)所附的權利要求進行 解釋。
權利要求
1. 一種多核處理器,其特征在于,采用二維網格作為基本互連拓撲結構,所述二維網格中的每個結點包括交叉開關,主設備,以及從設備,其中所述交叉開關,用于連接所述主設備和從設備,以及與所述二維網格中的其他相鄰結點的交叉開關互連,進行處理器核間的數(shù)據(jù)傳輸;所述主設備,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀/寫請求;所述從設備,用于通過與所述交叉開關連接,接受所述主設備的請求并進行數(shù)據(jù)或狀態(tài)響應。
2. 根據(jù)權利要求1所述的多核處理器,其特征在于,所述從設備的數(shù)據(jù)都 能夠被所有主設備共享。
3. 根據(jù)權利要求1所述的多核處理器,其特征在于,所述交叉開關,包括至少五個主設備接口模塊,和至少五個從設備接口模塊,其中四個主設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個主設備接口模塊包括兩級內部緩存;其余主設備接口模塊中的每一主設備接口模塊,用于連接主設備,所述每 一主設備接口模塊包括兩級內部緩存;四個從設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個從設備接口模塊包括兩級內部 緩存;其余從設備接口模塊中的每一從設備接口模板,用于連接從設備,所述每 一從設備接口模塊包括兩級內部緩存。
4. 根據(jù)權利要求3所述的多核處理器,其特征在于,所述主設備接口模塊 和所述從設備接口模塊都包括五類數(shù)據(jù)傳輸通道,分別是寫地址通道、寫數(shù)據(jù) 通道、讀地址通道、讀數(shù)據(jù)通道和寫應答通道,其中寫地址通道、寫數(shù)據(jù)通道、 和讀地址通道由主設備發(fā)向從設備;讀數(shù)據(jù)通道和寫應答通道由從設備發(fā)向主 設備。
5. 根據(jù)權利要求3所述的多核處理器,其特征在于,所述四個主設備接口模塊和所述四個從設備接口模塊空閑時,還用于連接1/0控制器。
6. —種處理器系統(tǒng),包括1/0總線,其特征在于,還包括至少一個多 核處理器和I/0控制器,其中所述多核處理器,采用二維網格作為基本互連拓撲結構,多核處理器間通 過所述I/0總線連接,所述二維網格中的每個結點包括交叉開關,主設備, 以及從設備,其中所述交叉開關,用于連接所述主設備和從設備,以及與所述二維網格中的 其他相鄰結點的交叉開關互連,進行處理器核間的數(shù)據(jù)傳輸;所述主設備,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀寫 請求;所述從設備,用于通過與所述交叉開關連接,接受所述主設備的請求并進 行數(shù)據(jù)或狀態(tài)響應。所述I/0控制器,與所述二維網格的邊界結點連接,用于實現(xiàn)所述多核處 理器間的數(shù)據(jù)傳輸。
7. 根據(jù)權利要求6所述的處理器系統(tǒng),其特征在于,所述從設備的數(shù)據(jù)都能夠被所有主設備共享。
8. 根據(jù)權利要求6所述的處理器系統(tǒng),其特征在于,所述交叉開關,包括 至少五個主設備接口模塊,和至少五個從設備接口模塊,其中四個主設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個主設備接口模塊包括兩級內部 緩存;其余主設備接口模塊中的每一主設備接口模塊,用于連接主設備,所述每 一主設備接口模塊包括兩級內部緩存;四個從設備接口模塊,用于分別與所述交叉開關所在結點的東、南、西、 北四個方向的二維網格中的其他結點互連,每個從設備接口模塊包括兩級內部,其余從設備接口模塊中的每一從設備接口模板,用于連接從設備,所述每 一從設備接口模塊包括兩級內部緩存。
9. 根據(jù)權利要求8所述的處理器系統(tǒng),其特征在于,所述主設備接口模塊 和所述從設備接口模塊都包括五類數(shù)據(jù)傳輸通道,分別是寫地址通道、寫數(shù)據(jù)通道、讀地址通道、讀數(shù)據(jù)通道和寫應答通道,其中寫地址通道、寫數(shù)據(jù)通道、 和讀地址通道由主設備發(fā)向從設備;讀數(shù)據(jù)通道和寫應答通道由從設備發(fā)向主 設備。
10. 根據(jù)權利要求8所述的處理器系統(tǒng),其特征在于,所述四個主設備接 口模塊和所述四個從設備接口模塊空閑時,還用于連接1/0控制器。
11. 根據(jù)權利要求6所述的處理器系統(tǒng),其特征在于,所述I/0控制器, 根據(jù)所述多核處理器的二維網絡中各結點在所述處理器系統(tǒng)中的編號,對傳輸 數(shù)據(jù)進行解打包操作,實現(xiàn)所述處理器系統(tǒng)中多核處理器間的數(shù)據(jù)通信。
12. —種多核處理器的訪存方法,其特征在于,所述方法包括下列步驟 步驟100.構建采用二維網格作為基本互連拓撲結構的多核處理器的核間互連結構在所述二維網格中的每個結點中設置一個的交叉開關、多個主設備 和多個從設備;將所述交叉開關與多個主設備和多個從設備連接,并與二維網 格中的其他相鄰結點相連接;步驟200.為所述多核處理器中的各種設備統(tǒng)一編號;步驟300.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址與所述編號的對應關系實現(xiàn)多核處理器上處理器核間的訪存操作。
13. 根據(jù)權利要求12所述的多核處理器的訪存方法,其特征在于,所述主 設備,包括處理器核和/或I/0設備。
14. 根據(jù)權利要求12所述的多核處理器的訪存方法,其特征在于,所述從 設備,包括被分為與所述主設備對應的共享二級緩存模塊的二級緩存和/或 1/0設備。
15. 根據(jù)權利要求12所述的多核處理器的訪存方法,其特征在于,所述步 驟IOO,包括下列步驟步驟110.將所述交叉開關中的四個主設備接口模塊和四個從設備接口模 塊分別與東、南、西、北四個方向的二維網格中其他相鄰結點相連接;步驟120.將所述交叉開關中的其余主設備接口模塊與所述主設備連接; 步驟130.將所述交叉開關中的其余從設備接口模塊與所述從設備連接。
16. 根據(jù)權利要求15所述的多核處理器的訪存方法,其特征在于,所述步 驟200,包括下列步驟-步驟210.根據(jù)所述結點在二維網格中的位置,為所述多核處理器中的結點分配結點編號;步驟220.為所述結點內的交叉開關的主設備接口模塊和從設備接口模塊 分配結點內接口編號步驟230.為所述結點內的與交叉開關連接的主/從設備分配全局編號。
17. 根據(jù)權利要求16所述的多核處理器的訪存方法,其特征在于,所述全 局編號,是根據(jù)所述結點編號與所述結點內接口編號組合拼接而成,用于決定 請求的路由。
18. 根據(jù)權利要求14所述的多核處理器的訪存方法,其特征在于,步驟 200中,在為各種設備統(tǒng)一編號時,為所述多核處理器的各個結點中包含的二 級緩存統(tǒng)一編址,每個二級緩存對應一個宿主結點,并在宿主結點處維護共享 二級緩存模塊的目錄。
19. 根據(jù)權利要求14所述的多核處理器的訪存方法,其特征在于,所述步 驟300,包括下列步驟步驟310.按照固定映射或軟件配置的方式獲得物理地址與所述編號的對 應關系;步驟320.根據(jù)所述物理地址與所述編號的對應關系,實現(xiàn)多核處理器上 處理器核的訪存操作。.
20. 根據(jù)權利要求19所述的多核處理器的訪存方法,其特征在于,所述步 驟310,包括下列步驟步驟311.判斷軟件是否對物理地址進行過配置,若有,則進入步驟312; 否則,進入步驟313;步驟312.按照軟件配置方式獲得物理地址與所述編號的對應關系; 步驟313.按照固定映射的方式獲得物理地址與所述編號的對應關系。
21. 根據(jù)權利要求20所述的多核處理器的訪存方法,其特征在于,所述軟 件配置方式,是指用戶通過設置在所述交叉開關內部的基址、掩碼、編號三個 寄存器,配置所述物理地址空間與從設備或方向接口的編號的對應關系,進行 地址匹配;通過設置在所述交叉開關內部的屬性寄存器進行屬性匹配。
22. 根據(jù)權利要求20所述的多核處理器的訪存方法,其特征在于,所述固 定映射方式,是指芯片出廠時默認根據(jù)從設備和東、西、南、北四個方向主/ 從接口的編號,將其編號直接映射到相應物理地址上。
23. 根據(jù)權利要求19所述的多核處理器的訪存方法,其特征在于,所述步 驟320,包括下列步驟步驟321.主設備根據(jù)配置地址窗口或固定路由表決定發(fā)送所述讀/寫請 求的路由路徑,通過交叉開關向從設備發(fā)送讀/寫請求;步驟322.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請求 的路徑進行路由,通過交叉開關向所述主設備返回讀/寫應答。
24. 根據(jù)權利要求23所述的多核處理器的訪存方法,其特征在于,所述步 驟321,包括下列步驟歩驟3211.判斷所述從設備是否與所述主設備位于同一結點內,若是,則 進入步驟3212;否則,進入歩驟3213;步驟3212.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求的 路由路徑,將所述讀/寫請求發(fā)送到與所述從設備連接的CSL模塊后將讀/寫請 求放入請求隊列發(fā)送給相應CSL模塊,送往與之相連的從設備;步驟3213.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結點 的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到與 所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模塊,送往與之相連的從設備。
25. 根據(jù)權利要求23所述的多核處理器的訪存方法,其特征在于,所述步 驟322,包括下列步驟歩驟3221.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應答 后先緩存一拍;步驟3222.所述CSL模塊在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求 的主設備的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反 向傳輸所述讀/寫應答傳輸?shù)脚c所述主設備相連接的交叉開關的CML模塊仲 裁;步驟3223.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后對 讀/寫應答緩存一拍,并在下一拍送往相應主設備。
26. 根據(jù)權利要求24所述的多核處理器的訪存方法,其特征在于,所述步 驟3212,包括下列步驟步驟3212 (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交叉開關的CML模塊;步驟3212 (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并在 下一拍根據(jù)配置地址窗口或固定路由表決定與從設備連接的CSL模塊后進入 請求隊列發(fā)送給相應CSL模塊;步驟3212 (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁,仲裁后對請求進行緩存,并在下一拍送往與之相連的從設備。
27. 根據(jù)權利要求26所述的多核處理器的訪存方法,其特征在于,所述步 驟3213,包括下列步驟步驟3213 (a).根據(jù)所述從設備所在的結點的結點編號,決定需要轉發(fā) 的方向接口,所述主設備發(fā)送所述讀/寫請求到所述方向接口并通過與所述方 向接口連接的CML模塊將所述讀/寫請求轉發(fā)到轉發(fā)結點;步驟3213 (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊接 收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若是, 則執(zhí)行步驟3212;否則,返回步驟3213 (a)。
28. 根據(jù)權利要求27所述的多核處理器的訪存方法,其特征在于,所述步 驟3213 (a),包括下列步驟歩驟3213 (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交 叉開關的CML模塊;步驟3213 (a2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一拍, 并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將讀/ 寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;步驟3213 (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁,仲 裁后對請求進行緩存,并在下一拍送往與之相連的方向接口。
29. 根據(jù)權利要求25所述的多核處理器的訪存方法,其特征在于,步驟 3222中,所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊處均需要經 過兩級緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。
30. —種處理器系統(tǒng)的訪存方法,其特征在于,所述方法包括下列步驟 步驟100,.構建采用二維網格作為基本互連拓撲結構的處理器系統(tǒng)在所述二維網格中的每個結點中設置一個交叉開關、多個主設備和多個從設備; 將所述交叉開關與多個主設備和多個從設備連接,并與二維網格中的其他相鄰結點相連接;在所述處理器系統(tǒng)中的多核處理器的二維網格的邊界結點連接1/0控制器,多核處理器之間通過I/0總線連接;步驟200'.為所述處理器系統(tǒng)中的各種設備統(tǒng)一編號;步驟300'.獲得物理地址與所述編號的對應關系,并根據(jù)所述物理地址與所述編號的對應關系實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。
31. 根據(jù)權利要求30所述的處理器系統(tǒng)的訪存方法,其特征在于,所述主 設備,包括處理器核和/或I/0設備。
32. 根據(jù)權利要求30所述的處理器系統(tǒng)的訪存方法,其特征在于,所述從 設備,包括被分為與所述主設備對應的共享二級緩存模塊的二級緩存和/或 1/0設備。
33. 根據(jù)權利要求30所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟100',包括下列步驟步驟110'.將所述交叉開關的四個主設備接口模塊和四個從設備接口模 塊分別與東、南、西、北四個方向的二維網格中其他相鄰結點相連接;步驟120'.將所述邊界結點上空閑的連接東、南、西、北四個方向的主 設備接口模塊和從設備接口模塊與1/0控制器連接;步驟130'.將所述交叉開關的其余主設備接口模塊與所述主設備連接; 步驟140'.將所述交叉開關的其余從設備接口模塊與所述從設備連接; 步驟150'.將所述處理器系統(tǒng)中的多核處理器之間通過I/O總線連接。
34. 根據(jù)權利要求30所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟200',包括下列步驟步驟210'.根據(jù)所述多核處理器在處理器系統(tǒng)中的位置,為所述多核處 理器分配多核處理器編號;步驟220'.根據(jù)所述多核處理器內的結點在二維網格中的位置,為所述 結點分配結點編號;步驟230'.為所述多核處理器內的結點的交叉開關的主設備接口模塊和 從設備接口模塊分配結點內接口編號;步驟240'.為所述多核處理器內的結點內的與交叉開關連接的主/從設 備分配全局編號。
35. 根據(jù)權利要求34所述的處理器系統(tǒng)的訪存方法,其特征在于,所述全局編號,是根據(jù)所述多核處理器編號、所述結點編號以及所述結點內接口編號 組合拼接而成,用于決定請求的路由。
36. 根據(jù)權利要求32所述的處理器系統(tǒng)的訪存方法,其特征在于,步驟 200,中,在統(tǒng)一編號時,所述處理器系統(tǒng)中的多核處理器的各個結點中包含 的二級緩存統(tǒng)一編址,每個二級緩存對應一個宿主結點,并在宿主結點處維護 共享二級緩存模塊的目錄。
37. 根據(jù)權利要求33所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟300',包括下列步驟步驟310'.按照固定映射或軟件配置的方式獲得物理地址與所述編號的 對應關系;步驟320'.根據(jù)所述物理地址與所述編號的對應關系,通過所述I/0控 制器和I/O總線實現(xiàn)處理器系統(tǒng)中處理器核的訪存操作。
38. 根據(jù)權利要求37所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟310',包括下列步驟步驟311'.判斷軟件是否對物理地址進行過配置,若有,則進入步驟 312';否則,進入步驟313';步驟312'.按照軟件配置方式獲得物理地址與所述編號的對應關系; 歩驟313'.按照固定映射的方式獲得物理地址與所述編號的對應關系。
39. 根據(jù)權利要求37所述的處理器系統(tǒng)的訪存方法,其特征在于,所述軟 件配置方式,是指用戶通過設置在所述交叉開關內部的基址、掩碼、編號三個 寄存器,配置所述物理地址空間與從設備或方向接口的編號的對應關系,進行 地址匹配;通過設置在所述交叉開關內部的屬性寄存器進行屬性匹配。
40. 根據(jù)權利要求37所述的處理器系統(tǒng)的訪存方法,其特征在于,所述固 定映射方式,是指芯片出廠時默認根據(jù)從設備和東、西、南、北四個方向主/ 從接口的編號,將其編號直接映射到相應物理地址上。
41. 根據(jù)權利要求37所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟320',包括下列步驟歩驟321'.所述主設備根據(jù)配置地址窗口或固定路由表,決定發(fā)送讀/寫 請求的路由路徑,向從設備發(fā)送讀/寫請求;步驟322'.所述從設備接收到所述讀/寫請求后,按照發(fā)來所述讀/寫請求的路由路徑,向所述主設備返回讀/寫應答。
42. 根據(jù)權利要求41所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟321',包括下列步驟步驟3211'.判斷所述從設備是否與所述主設備位于同一多核處理器內, 若是,則進入步驟3212,;否則,進入步驟3215,;步驟3212'.判斷所述從設備是否與所述主設備位于同一結點內,若是, 則進入步驟3213,;否則,進入步驟3214,;步驟3213'.根據(jù)配置地址窗口或固定路由表,決定發(fā)送所述讀/寫請求 的路由路徑,將所述讀/寫請求發(fā)送到與所述從設備連接的CSL模塊后將讀/ 寫請求放入請求隊列;步驟3214'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的結 點的結點編號,決定發(fā)送所述讀/寫請求的路由路徑,將所述讀/寫請求轉發(fā)到 與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊列發(fā)送給相應CSL模 塊;步驟3215'.根據(jù)配置地址窗口或固定路由表,確定所述從設備所在的多 核處理器的編號,決定發(fā)送所述讀/寫請求的路由路徑,通過I/0控制器將所 述讀/寫請求轉發(fā)到與所述從設備連接的CSL模塊后將讀/寫請求放入請求隊 列發(fā)送給相應CSL模塊。
43. 根據(jù)權利要求42所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟3213',包括下列歩驟步驟3213' (a).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的交 叉開關的CML模塊;步驟3213, (b).所述交叉開關的CML模塊收到數(shù)據(jù)后先緩存一拍,并 在下一拍根據(jù)配置地址窗口或固定路由表決定與從設備或方向接口連接的 CSL模塊后進入請求隊列發(fā)送給相應CSL模塊;步驟3213' (c).所述CSL模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的從設備。
44. 根據(jù)權利要求42所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟3214',包括下列步驟步驟3214' (a).根據(jù)所述從設備所在的結點的結點編號,決定需要轉發(fā)的方向接口,并通過與所述轉發(fā)的方向接口連接的CML模塊將所述讀/寫請 求轉發(fā)到轉發(fā)結點;步驟3214, (b).轉發(fā)結點通過與轉發(fā)結點的方向接口連接的CML模塊 接收所述讀/寫請求,并判斷所述轉發(fā)結點是否是所述從設備所在的結點,若 是,則執(zhí)行步驟3213';否則,執(zhí)行步驟3214, (a)。
45. 根據(jù)權利要求44所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟3214' (a),包括下列步驟步驟3214' (al).所述主設備將要發(fā)送的讀/寫請求發(fā)送到與之相連的 交叉開關的CML模塊;歩驟3214' (a2).所述交叉開關的CML模塊收到讀/寫請求后先緩存一 拍,并在下一拍根據(jù)配置地址窗口或固定路由表決定所述轉發(fā)的方向接口,將 讀/寫請求發(fā)送給與所述轉發(fā)方向接口相連接的CML模塊;步驟3214, (a3).所述CML模塊對來自不同CML模塊的請求進行仲裁, 仲裁后對請求進行緩存,并在下一拍送往與之相連的方向接口。
46. 根據(jù)權利要求42所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟3215,,包括下列步驟步驟3215' (a).所述主設備根據(jù)所述從設備的全局編號確定所述從設 備所在的結點的結點編號,再根據(jù)結點編號確定所述從設備所在的多核處理器 的編號;步驟3215' (b).所述主設備所在的多核處理器按照數(shù)據(jù)傳輸協(xié)議格式 將所述讀/寫請求通過所述主設備所在多核處理器的邊界結點的I/O控制器打 包成數(shù)據(jù)包,并根據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給 轉發(fā)多核處理器;步驟3215' (c).轉發(fā)多核處理器通過其邊界結點的I/O控制器對數(shù)據(jù) 包進行解包操作得到讀/寫請求,并判斷所述轉發(fā)多核處理器是否是所述從設 備所在的多核處理器,若是,則執(zhí)行步驟3212' 3214';否則執(zhí)行歩驟3215' (b)。
47. 根據(jù)權利要求46所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步 驟3215' (b),包括下列步驟步驟3215' (bl).判斷所述主設備發(fā)送的讀/寫請求是否需要經過轉發(fā)結點才能到達希望轉發(fā)的邊界結點,若是,則執(zhí)行步驟3214';否則,執(zhí)行步驟3215' (b2);步驟3215' (b2).通過所述邊界結點的I/O控制器打包成數(shù)據(jù)包,并根據(jù)所述從設備所在的多核處理器的編號將所述數(shù)據(jù)包發(fā)送給轉發(fā)多核處理器。
48. 根據(jù)權利要求41所述的處理器系統(tǒng)的訪存方法,其特征在于,所述步驟322',包括下列步驟步驟3221'.與所述從設備相連接的CSL模塊收到從設備發(fā)出的讀/寫應答后先緩存一拍;步驟3222'.并在下一拍根據(jù)應答信號中的相應發(fā)出讀/寫請求的主設備的編號確定主設備后,按照發(fā)來所述讀/寫請求的路徑進行路由,反向傳輸所述讀/寫應答傳輸?shù)脚c所述主設備相連接的交叉開關的CML模塊仲裁;步驟3223'.所述CML模塊對來自不同CSL模塊的應答進行仲裁,仲裁后對讀/寫應答緩存一拍,并在下一拍送往相應主設備。
49. 根據(jù)權利要求48所述的多核處理器的訪存方法,其特征在于,步驟3222'中,所述反向傳輸?shù)倪^程中,在每一個CML模塊和CSL模塊處均需要經過兩級緩存,先緩存一拍,并在下一拍將所述讀/寫應答傳輸出去。
全文摘要
本發(fā)明公開了一種處理器系統(tǒng)及其訪存方法。所述系統(tǒng),包括I/O總線,還包括至少一個多核處理器和I/O控制器,所述多核處理器,采用二維網格作為基本互連拓撲結構,多核處理器間通過所述I/O總線連接,所述二維網格中的每個結點包括交叉開關,主設備,以及從設備,其中所述交叉開關,用于連接所述主設備和從設備,以及與所述二維網格中的其他相鄰結點的交叉開關互連,進行處理器核間的數(shù)據(jù)傳輸;所述主設備,用于通過與所述交叉開關連接,向所述從設備主動發(fā)起讀寫請求;所述從設備,用于通過與所述交叉開關連接,接受所述主設備的請求并進行數(shù)據(jù)或狀態(tài)響應。所述I/O控制器,與所述二維網格的邊界結點連接,用于實現(xiàn)所述多核處理器間的數(shù)據(jù)傳輸。
文檔編號G06F15/173GK101477512SQ200910077030
公開日2009年7月8日 申請日期2009年1月16日 優(yōu)先權日2009年1月16日
發(fā)明者胡偉武, 翔 高 申請人:中國科學院計算技術研究所