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