欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多核處理器的數(shù)據(jù)管理方法及裝置的制作方法

文檔序號(hào):6333766閱讀:210來源:國知局
專利名稱:多核處理器的數(shù)據(jù)管理方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器領(lǐng)域,特別涉及一種多核處理器的數(shù)據(jù)管理方法及裝置。
背景技術(shù)
隨著信息技術(shù)的發(fā)展,對(duì)計(jì)算機(jī)處理器的處理運(yùn)算能力的需求越來越高,傳統(tǒng)的單核處理器已經(jīng)無法滿足需要,因此多核處理器(multi-core processor)和眾核處理器 (many-core processor)逐漸得到了廣泛應(yīng)用。多核處理器是指在一個(gè)處理器中集成兩個(gè)或兩個(gè)以上的處理器內(nèi)核,通過在各個(gè)內(nèi)核之間劃分任務(wù),實(shí)現(xiàn)了多個(gè)處理器內(nèi)核的并行運(yùn)行,從而提高了整個(gè)處理器的運(yùn)算處理能力。多核處理器可以分為同構(gòu)多核處理器(homogeneous multi-core processors)禾口異構(gòu)多核處理器(heterogeneous multi-core processors),其中,同構(gòu)多核處理器中包含多個(gè)結(jié)構(gòu)相同的處理器核心,而異構(gòu)多核處理器中包含多個(gè)結(jié)構(gòu)不同的處理器核心。在異構(gòu)多核處理器中,由于不同的處理器核心的結(jié)構(gòu)和/或指令集存在差異,使得能夠?qū)μ幚磉M(jìn)程進(jìn)行分工,將不同的任務(wù)分配至不同的處理器核心上執(zhí)行,提高執(zhí)行效率。申請(qǐng)?zhí)枮?00810039567. 4的中國專利申請(qǐng)中公開了一種基于可配置處理器及指令集擴(kuò)展的異構(gòu)多核處理器,圖1示出了該異構(gòu)多核處理器的結(jié)構(gòu)示意圖,包括片上總線 100、全能核/基本核101、第一擴(kuò)展核102、第二擴(kuò)展核103、仲裁器104和共享內(nèi)存105,其中,全能核/基本核101中基本核和全能核是互斥的,在一個(gè)異構(gòu)系統(tǒng)中僅能存在一個(gè)基本核或一個(gè)全能核,所述基本核包括基本指令集,用于執(zhí)行操作系統(tǒng)和應(yīng)用程序中沒有進(jìn)行過指令擴(kuò)展優(yōu)化的部分,并負(fù)責(zé)核間通信的控制;所述全能核包括所有指令集;所述第一擴(kuò)展核102和第二擴(kuò)展核103包括基本指令集,另外包括擴(kuò)展指令集,用于執(zhí)行應(yīng)用程序中進(jìn)行了指令擴(kuò)展優(yōu)化的部分,也可以執(zhí)行程序中未進(jìn)行指令擴(kuò)展優(yōu)化的部分,每一個(gè)擴(kuò)展核只包含一種擴(kuò)展指令集。上述異構(gòu)多核處理器中的各處理器核心都通過片上總線100連接,片上總線100通過一個(gè)仲裁器104連接到共享內(nèi)存105上,所述片上總線100用于處理器核心間的通信,所述仲裁器104用于控制各存儲(chǔ)器核對(duì)共享內(nèi)存105的訪問。上述異構(gòu)多核處理器包括多個(gè)不同的擴(kuò)展核構(gòu)成異構(gòu),分別包括不同的擴(kuò)展指令,根據(jù)應(yīng)用程序的特點(diǎn),將程序中的不同部分分配到相應(yīng)的擴(kuò)展核上,提高了執(zhí)行效率。但是,該技術(shù)方案中的每個(gè)擴(kuò)展核對(duì)所述內(nèi)存105的讀寫過程是相互獨(dú)立的,若在一運(yùn)算處理過程中,多個(gè)擴(kuò)展核都需要頻繁的對(duì)所述內(nèi)存105進(jìn)行讀寫,則所述片上總線100會(huì)產(chǎn)生大量的總線沖突, 使得數(shù)據(jù)的讀寫效率較低。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種多核處理器的數(shù)據(jù)管理方法及裝置,提高數(shù)據(jù)的讀寫效率。為解決上述問題,本發(fā)明提供了一種多核處理器的數(shù)據(jù)管理方法,所述多核處理器包括處理器核心陣列和處理器核心互連結(jié)構(gòu),所述處理器核心陣列包括多個(gè)處理器核
7心,所述處理器核心包括具有多個(gè)存儲(chǔ)單元的核內(nèi)存儲(chǔ)器,所述處理器核心互連結(jié)構(gòu)用于所述處理器核心陣列中任意兩處理器核心間的通信,所述多核處理器的數(shù)據(jù)管理方法包括對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址;根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸??蛇x的,還包括根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在多個(gè)處理器核心的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸??蛇x的,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括將所述多個(gè)處理器核心排序,對(duì)所述排序的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行連續(xù)編址,其中,同一處理器核心的核內(nèi)存儲(chǔ)器中存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)??蛇x的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。可選的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定處理器核心以外的其他處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行行編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)??蛇x的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
可選的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每一行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定行以外的其他行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行陣列編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)??蛇x的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中??蛇x的,所述主存中的多個(gè)主存單元的地址相連續(xù)或地址間具有固定間隔。為解決上述問題,本發(fā)明提供了一種多核處理器的數(shù)據(jù)管理裝置,所述多核處理器包括處理器核心陣列和處理器核心互連結(jié)構(gòu),所述處理器核心陣列包括多個(gè)處理器核心,所述處理器核心包括具有多個(gè)存儲(chǔ)單元的核內(nèi)存儲(chǔ)器,所述處理器核心互連結(jié)構(gòu)用于所述處理器核心陣列中任意兩處理器核心間的通信,所述多核處理器的數(shù)據(jù)管理裝置包括模式解析器,接收所述處理器核心的數(shù)據(jù)傳輸命令,對(duì)所述數(shù)據(jù)傳輸命令中的編址方式進(jìn)行解析,將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求, 所述編址方式是指對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址的方式;請(qǐng)求處理引擎,根據(jù)所述主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸??蛇x的,所述請(qǐng)求處理引擎包括響應(yīng)處理引擎,接收所述主存訪問請(qǐng)求,從所述主存中獲取讀取數(shù)據(jù)并生成多個(gè)核內(nèi)存儲(chǔ)器寫請(qǐng)求,將所述讀取數(shù)據(jù)寫入核內(nèi)存儲(chǔ)器??蛇x的,所述數(shù)據(jù)管理裝置還包括分布于每一處理器核心中的多個(gè)核間共享單元,用于接收所述處理器核心的數(shù)據(jù)傳輸命令,根據(jù)所述數(shù)據(jù)傳輸命令中的編址方式在多個(gè)處理器核心的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸??蛇x的,所述核間共享單元包括地址解析模塊、核心路由處理模塊、上網(wǎng)發(fā)送模塊和下網(wǎng)組包模塊,其中,
所述地址解析模塊,接收本地處理器核心的核內(nèi)存儲(chǔ)請(qǐng)求,提取所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址,并根據(jù)所述編址方式確定所述訪問地址是否歸屬所述本地處理器核心的核內(nèi)存儲(chǔ)器,若是,則訪問所述本地處理器核心的核內(nèi)存儲(chǔ)器,否則將所述核內(nèi)存儲(chǔ)請(qǐng)求發(fā)送至核心路由處理模塊;所述核心路由處理模塊,接收所述地址解析模塊發(fā)送的核內(nèi)存儲(chǔ)請(qǐng)求,根據(jù)所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址確定到達(dá)目標(biāo)處理器核心的發(fā)送路徑,將所述核內(nèi)存儲(chǔ)請(qǐng)求和發(fā)送路徑發(fā)送至所述上網(wǎng)發(fā)送模塊;所述上網(wǎng)發(fā)送模塊,將所述核內(nèi)存儲(chǔ)請(qǐng)求中的數(shù)據(jù)分拆為多個(gè)數(shù)據(jù)包,并根據(jù)所述發(fā)送路徑將所述多個(gè)數(shù)據(jù)包發(fā)送至所述處理器核心互連結(jié)構(gòu);所述下網(wǎng)組包模塊,通過所述處理器核心互連結(jié)構(gòu)接收到達(dá)本地處理器核心的數(shù)據(jù)包,對(duì)所述數(shù)據(jù)包進(jìn)行組包后訪問本地處理器核心的核內(nèi)存儲(chǔ)器。可選的,所述數(shù)據(jù)傳輸命令中的編址方式為連續(xù)編址,所述模式解析器包括連續(xù)編址傳輸管理模塊,將所述多個(gè)處理器核心排序,對(duì)所述排序的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行連續(xù)編址,其中,同一處理器核心的核內(nèi)存儲(chǔ)器中存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)??蛇x的,所述數(shù)據(jù)傳輸命令為單處理器核心讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述數(shù)據(jù)傳輸命令為單處理器核心寫入命令,所述請(qǐng)求處理引擎從預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。可選的,所述數(shù)據(jù)傳輸命令為廣播讀取命令,所述請(qǐng)求處理引擎從所述主存中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定處理器核心以外的其他處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述數(shù)據(jù)傳輸命令中的編址方式為行編址,所述模式解析器包括行編址傳輸管理模塊,對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行行編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù), 后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)??蛇x的,所述數(shù)據(jù)傳輸命令為行讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
10
可選的,所述數(shù)據(jù)傳輸命令為行寫入命令,所述請(qǐng)求處理引擎從預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中??蛇x的,所述數(shù)據(jù)傳輸命令為行廣播讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。可選的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每一行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定行以外的其他行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述數(shù)據(jù)傳輸命令中的編址方式為陣列編址,所述模式解析器包括陣列編址傳輸管理模塊,對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行陣列編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。可選的,所述數(shù)據(jù)傳輸命令為陣列讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中??蛇x的,所述數(shù)據(jù)傳輸命令為陣列寫入命令,所述請(qǐng)求處理引擎從所述多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。可選的,所述主存中的多個(gè)主存單元的地址相連續(xù)或地址間具有固定間隔。與現(xiàn)有技術(shù)相比,本技術(shù)具有以下優(yōu)點(diǎn)本技術(shù)方案的多核處理器的數(shù)據(jù)管理方法和裝置中,將各個(gè)處理器核心中的核內(nèi)存儲(chǔ)器進(jìn)行統(tǒng)一編址,在多個(gè)從核與主存之間同時(shí)進(jìn)行數(shù)據(jù)的讀或?qū)懀岣吡藬?shù)據(jù)的讀寫效率。另外,本技術(shù)方案提供了多種編址方式和相應(yīng)的數(shù)據(jù)傳輸方式,能夠滿足多種計(jì)算過程的應(yīng)用需要。


圖1是現(xiàn)有技術(shù)的一種異構(gòu)多核處理器的結(jié)構(gòu)示意圖;圖2是另一種異構(gòu)多核處理器的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例多核處理器的數(shù)據(jù)管理方法的流程示意圖;圖4是本發(fā)明實(shí)施例的多核處理器的數(shù)據(jù)管理裝置的一種結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例的多核處理器的數(shù)據(jù)管理裝置中的核間共享單元的結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例的多核處理器中的核內(nèi)存儲(chǔ)器的第一種編址方式示意圖7是基于圖6所示編址方式的一種數(shù)據(jù)傳輸方法的示意圖;圖8是本發(fā)明實(shí)施例的跨步讀寫過程的示意圖;圖9是基于圖6所示編址方式的另一種數(shù)據(jù)傳輸方法的示意圖;圖10是本發(fā)明實(shí)施例的多核處理器中的核內(nèi)存儲(chǔ)器的第二種編址方式示意圖;圖11是基于圖10所示編址方式的一種數(shù)據(jù)傳輸方法的示意圖;圖12是基于圖10所示編址方式的另一種數(shù)據(jù)傳輸方法的示意圖;圖13是本發(fā)明實(shí)施例的多核處理器中的核內(nèi)存儲(chǔ)器的第三種編址方式示意圖;圖14是基于圖13所示編址方式的一種數(shù)據(jù)傳輸方法的示意圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)的說明。圖2示出了本實(shí)施例的一種異構(gòu)多核處理器的結(jié)構(gòu)示意圖,如圖2所示,包括至少一個(gè)主核201、包括多個(gè)從核20 的處理器核心陣列204、第一互連結(jié)構(gòu)202和處理器核心互連結(jié)構(gòu)203,其中,所述第一互連結(jié)構(gòu)202和處理器核心互連結(jié)構(gòu)203用于所述主核 201與所述處理器核心陣列204間的通信;所述處理器核心互連結(jié)構(gòu)203用于所述從處理器核心陣列204中任意兩從核20 間的通信。所述主核201 —般為通用的處理器核心,所述從核20 為指令集和微結(jié)構(gòu)經(jīng)過精簡優(yōu)化的處理器核心。所述第一互連結(jié)構(gòu)202還用于所述主核201以及處理器核心陣列204與主存205 之間的通信。所述主核201經(jīng)由第一互連結(jié)構(gòu)202對(duì)主存205進(jìn)行讀取和寫入操作,而各從核20 則經(jīng)由處理器核心互連結(jié)構(gòu)203和第一互連結(jié)構(gòu)202實(shí)現(xiàn)對(duì)主存205的讀取和寫入操作。所述主核201、第一互連結(jié)構(gòu)202、處理器核心互連結(jié)構(gòu)203以及處理器核心陣列204集成于同一芯片上,而所述主存205為片外存儲(chǔ)器,即并未集成在所述多核處理器中,而是通過存儲(chǔ)器接口與所述第一互連結(jié)構(gòu)202連接,所述主存205可以是SDRAM等常用的存儲(chǔ)器。所述從核20 中還包括核內(nèi)存儲(chǔ)器(圖中未示出),該核內(nèi)存儲(chǔ)器為集成在芯片內(nèi)的片內(nèi)存儲(chǔ)器,如SRAM,用于存儲(chǔ)指令和/或數(shù)據(jù),其存儲(chǔ)空間較小,可以為數(shù)K至數(shù)十 K,用于對(duì)從核20 正在執(zhí)行的指令或者待處理的數(shù)據(jù)進(jìn)行暫存。所述處理器核心互連結(jié)構(gòu)203為總線結(jié)構(gòu)(bus)、交叉開關(guān)(crossbar)或格柵網(wǎng)絡(luò)(mesh),本實(shí)施例中具體為格柵網(wǎng)絡(luò),所述第一互連結(jié)構(gòu)202為總線結(jié)構(gòu),相應(yīng)的,所述第一互連結(jié)構(gòu)202和處理器核心互連結(jié)構(gòu)203包括各自的控制器(圖中未示出),用于對(duì)第一互連結(jié)構(gòu)202和處理器核心互連結(jié)構(gòu)203各自的占用、釋放等進(jìn)行裁決。本實(shí)施例的多核處理器的數(shù)據(jù)管理方法用于管理圖2中所示多核處理器中的各個(gè)從核20 與主存205之間的數(shù)據(jù)交互,對(duì)各個(gè)從核20 中的核內(nèi)存儲(chǔ)器進(jìn)行統(tǒng)一編址, 之后根據(jù)編址方式實(shí)現(xiàn)多個(gè)從核20 與主存205之間的數(shù)據(jù)傳輸,減少了總線沖突,提高了數(shù)據(jù)讀寫效率。另外,由于本方法針對(duì)的多核處理器中,各個(gè)從核20 可以通過所述處理器核心互連結(jié)構(gòu)203實(shí)現(xiàn)兩兩之間的通信,因此在數(shù)據(jù)讀取過程中,可以將一較大的數(shù)據(jù)段一次性從主存205中讀出,存儲(chǔ)于多個(gè)從核20 中,使得處理器核心陣列204中的某一從核20 需要讀取該數(shù)據(jù)段中的某部分?jǐn)?shù)據(jù)時(shí),可以直接通過所述處理器核心互連結(jié)構(gòu)203從其他從核20 中獲取數(shù)據(jù),而不必直接訪問所述主存205,避免了多個(gè)從核20 同時(shí)訪問主存205導(dǎo)致的瓶頸問題。需要說明的是,本實(shí)施例的多核處理器的數(shù)據(jù)管理方法不僅可以針對(duì)圖2所示的多核處理器,還可以針對(duì)其他通過處理器核心互連結(jié)構(gòu)實(shí)現(xiàn)任意兩處理器核心間通信的多核處理器,如對(duì)于圖2中所示的多核處理器結(jié)構(gòu),若其中不包括所述主核201和第一互連結(jié)構(gòu)202,將所述主存205掛接在處理器核心互連結(jié)構(gòu)203上來實(shí)現(xiàn)各從核20 與主存205 的通信,則本實(shí)施例的多核處理器的數(shù)據(jù)管理方法仍然可以適用。圖3示出了本實(shí)施例的多核處理器的數(shù)據(jù)管理方法的流程示意圖,包括執(zhí)行步驟S200,對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址;執(zhí)行步驟S201,根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸。圖4示出了本實(shí)施例的多核處理器的數(shù)據(jù)管理裝置的結(jié)構(gòu)示意圖。本實(shí)施例的多核處理器的數(shù)據(jù)管理裝置包括模式解析器206,接收處理器核心 (本實(shí)施例中具體為各個(gè)從核)的數(shù)據(jù)傳輸命令,對(duì)所述數(shù)據(jù)傳輸命令中的編址方式進(jìn)行解析,將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求,所述主存訪問請(qǐng)求包括主存讀請(qǐng)求和主存寫請(qǐng)求,所述核內(nèi)存儲(chǔ)器訪問請(qǐng)求包括核內(nèi)存儲(chǔ)器讀請(qǐng)求和核內(nèi)存儲(chǔ)器寫請(qǐng)求,所述編址方式是指對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址的方式;請(qǐng)求處理引擎207,根據(jù)所述主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求在至少一個(gè)從核的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸。在一具體實(shí)施例中,所述數(shù)據(jù)傳輸命令具體為從主存中讀取預(yù)定的數(shù)據(jù),并將所述數(shù)據(jù)傳輸至多個(gè)從核中,所述模式解析器206將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存讀請(qǐng)求和核內(nèi)存儲(chǔ)器寫請(qǐng)求,請(qǐng)求處理引擎207根據(jù)所述多個(gè)主存讀請(qǐng)求分別從主存中讀取相應(yīng)的數(shù)據(jù),之后再根據(jù)所述多個(gè)核內(nèi)存儲(chǔ)器寫請(qǐng)求將從主存中讀取到的數(shù)據(jù)寫入相應(yīng)的從核的核內(nèi)存儲(chǔ)器中。從核寫入主存的過程與讀取主存的過程類似,這里就不再贅述。在一優(yōu)選的實(shí)施例中,所述模式解析器206中還包括連續(xù)編址傳輸管理模塊 206a、行編址傳輸管理模塊206b、陣列編址傳輸管理模塊206c,分別用于管理各個(gè)編址方式下的地址分配和數(shù)據(jù)傳輸,下文將進(jìn)行詳細(xì)描述。所述請(qǐng)求處理引擎207還包括響應(yīng)處理引擎207a,用于在讀取主存的過程中,接收所述模式解析器206產(chǎn)生的主存訪問請(qǐng)求,訪問主存,從主存中獲取讀取數(shù)據(jù)(即獲取主存響應(yīng))并生成多個(gè)核內(nèi)存儲(chǔ)器寫請(qǐng)求,將所述讀取數(shù)據(jù)寫入響應(yīng)的從核的核內(nèi)存儲(chǔ)器中。本實(shí)施例中,所述請(qǐng)求處理引擎207掛接在處理器核心互連結(jié)構(gòu)203上,通過處理器核心互連結(jié)構(gòu)203實(shí)現(xiàn)各個(gè)從核與主存之間的數(shù)據(jù)訪問ο另外,本實(shí)施例的核處理器的數(shù)據(jù)管理裝置還包括分布于每一個(gè)從核中的多個(gè)核間共享單元,用于接收從核的數(shù)據(jù)傳輸命令,根據(jù)所述數(shù)據(jù)傳輸命令中的編址方式在多個(gè)從核的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸。所述核間共享單元的結(jié)構(gòu)如圖5所示,包括地址解析模塊208、核心路由處理模塊209、上網(wǎng)發(fā)送模塊210和下網(wǎng)組包模塊211。其中,所述地址解析模塊208接收本地處理器核心(即該核間共享單元所屬的從核)的核內(nèi)存儲(chǔ)請(qǐng)求(包括核內(nèi)存儲(chǔ)的讀請(qǐng)求和寫請(qǐng)求),提取所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址,并根據(jù)所述編址方式確定所述訪問地址是否歸屬所述本地處理器核心的核內(nèi)存儲(chǔ)器220,若是,則訪問所述本地處理器核心的核內(nèi)存儲(chǔ)器220,否則將所述核內(nèi)存儲(chǔ)請(qǐng)求發(fā)送至核心路由處理模塊209 ;所述核心路由處理模塊209接收所述地址解析模塊208發(fā)送的核內(nèi)存儲(chǔ)請(qǐng)求,根據(jù)所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址確定到達(dá)目標(biāo)處理器核心的發(fā)送路徑,將所述核內(nèi)存儲(chǔ)請(qǐng)求和發(fā)送路徑發(fā)送至所述上網(wǎng)發(fā)送模塊210 ; 所述上網(wǎng)發(fā)送模塊210將所述核內(nèi)存儲(chǔ)請(qǐng)求中的數(shù)據(jù)分拆為多個(gè)數(shù)據(jù)包,并根據(jù)所述發(fā)送路徑將所述多個(gè)數(shù)據(jù)包發(fā)送至處理器核心互連結(jié)構(gòu);所述下網(wǎng)組包模塊211通過所述處理器核心互連結(jié)構(gòu)接收到達(dá)本地處理器核心的數(shù)據(jù)包,對(duì)所述數(shù)據(jù)包進(jìn)行組包后訪問本地處理器核心的核內(nèi)存儲(chǔ)器。在一具體實(shí)施例中,地址解析模塊208接收到的本地處理器核心的核內(nèi)存儲(chǔ)請(qǐng)求具體為向其他從核的核內(nèi)存儲(chǔ)器中寫入數(shù)據(jù),經(jīng)過解析后將所述核內(nèi)存儲(chǔ)請(qǐng)求發(fā)送至核心路由處理模塊209,所述核心路由處理模塊209確定所述本地處理器核心至目標(biāo)處理器核心的發(fā)送路徑并將待發(fā)送的數(shù)據(jù)和發(fā)送路徑發(fā)送至上網(wǎng)發(fā)送模塊210,所述上網(wǎng)發(fā)送模塊 210將待發(fā)送的數(shù)據(jù)分拆為多個(gè)數(shù)據(jù)包,分拆的過程可以為發(fā)送至某一從核的數(shù)據(jù)作為一個(gè)或一組數(shù)據(jù)包,發(fā)送至另一個(gè)從核的數(shù)據(jù)作為另一個(gè)或一組數(shù)據(jù)包,之后根據(jù)發(fā)送路徑把多個(gè)數(shù)據(jù)包通過處理器核心互連結(jié)構(gòu)發(fā)送至目標(biāo)處理器核心,在目標(biāo)處理器核心接收到所述數(shù)據(jù)包后,本地處理器核心通過下網(wǎng)組包模塊211接收目標(biāo)處理器核心產(chǎn)生的響應(yīng)信號(hào)。此外,若所述本地處理器核心的核內(nèi)存儲(chǔ)請(qǐng)求的訪問地址屬于本地處理器核心的核內(nèi)存儲(chǔ)器220,則在完成數(shù)據(jù)的寫入過程后,核內(nèi)存儲(chǔ)器220還產(chǎn)生響應(yīng)信號(hào)并發(fā)送至本地處理器核心。在另一具體實(shí)施例中,所述下網(wǎng)組包模塊211通過處理器核心互連結(jié)構(gòu)接收來自其他處理器核心的數(shù)據(jù)包,將多個(gè)數(shù)據(jù)包拼合組包形成寫入數(shù)據(jù)并寫入所述核內(nèi)存儲(chǔ)器 220,即當(dāng)前的從核相當(dāng)于目標(biāo)處理器核心。寫入后,所述核內(nèi)存儲(chǔ)器220產(chǎn)生的響應(yīng)信號(hào)通過上網(wǎng)發(fā)送模塊210發(fā)送至發(fā)出所述數(shù)據(jù)包的從核。下面詳細(xì)說明本技術(shù)方案的編址方式和相應(yīng)的數(shù)據(jù)傳輸過程進(jìn)行詳細(xì)說明,為了能夠清楚的說明本技術(shù)方案,本實(shí)施例中涉及的從核個(gè)數(shù)為64個(gè),但本技術(shù)方案并不限于對(duì)64個(gè)從核的數(shù)據(jù)管理,還可以為其他數(shù)量,如32個(gè)、1 個(gè)等。圖6示出了本實(shí)施例的第一種編址方式示意圖,具體包括將全部從核排序,對(duì)所述排序的從核內(nèi)的核內(nèi)存儲(chǔ)器中的存儲(chǔ)單元進(jìn)行連續(xù)編址,其中,同一從核的核內(nèi)存儲(chǔ)器中的存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一從核的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一從核的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。例如,從核00中的存儲(chǔ)單元的地址為0至1023,從核01中的存儲(chǔ)單元的地址為IOM至2047,以此類推。圖7示出了基于所述第一種編址方式(即連續(xù)編址)的一種數(shù)據(jù)傳輸方法,具體包括從一預(yù)定從核(本實(shí)施例中為從核12)的核內(nèi)存儲(chǔ)器中按照所述存儲(chǔ)地址的次序依次獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元m0至mk),將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中,即數(shù)據(jù)寫入的過程,在一具體實(shí)施例中可以為所述模式解析器接收到某一預(yù)定從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后,交由所述連續(xù)編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行連續(xù)編址,并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存寫請(qǐng)求)和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器讀請(qǐng)求),所述請(qǐng)求處理引擎根據(jù)所述多個(gè)核內(nèi)存儲(chǔ)器讀請(qǐng)求從所述預(yù)定從核中獲取多個(gè)數(shù)據(jù)單元,并根據(jù)所述多個(gè)主存寫請(qǐng)求經(jīng)由所述從處理器核心互連結(jié)構(gòu)依次寫入主存中,寫入的過程可以為寫入主存中的多個(gè)地址連續(xù)的主存單元(即連續(xù)存儲(chǔ))或?qū)懭胫鞔嬷械亩鄠€(gè)地址間存在預(yù)定間隔的主存單元中(即跨步存儲(chǔ),例如多個(gè)主存單元的地址分別為0、2、4、6...),采用連續(xù)存儲(chǔ)還是跨步存儲(chǔ)取決于所述數(shù)據(jù)傳輸命令的具體內(nèi)容?;蛘撸瑥乃鲋鞔娴亩鄠€(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元m0至mk),將所述多個(gè)數(shù)據(jù)單元按照所述存儲(chǔ)地址的次序依次存儲(chǔ)于一預(yù)定從核(本實(shí)施例中為從核12)的核內(nèi)存儲(chǔ)器中,即數(shù)據(jù)讀取的過程,在一具體實(shí)施例中可以為所述模式解析器接收到所述預(yù)定從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后,交由所述連續(xù)編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行連續(xù)編址,并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存讀請(qǐng)求)和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器寫請(qǐng)求),所述請(qǐng)求處理引擎通過所述從處理器核心互連結(jié)構(gòu)從主存中獲取多個(gè)數(shù)據(jù)單元并依次寫入所述預(yù)定從核的核內(nèi)存儲(chǔ)器中, 從主存中獲取多個(gè)數(shù)據(jù)單元可以為從地址連續(xù)的多個(gè)主存單元(即連續(xù)讀取)或地址間具有預(yù)定間隔的多個(gè)主存單元(即跨步讀取)中獲取所述數(shù)據(jù)單元。其中,所述主存單元是與所述存儲(chǔ)單元對(duì)應(yīng)的存儲(chǔ)字、存儲(chǔ)段等。圖8示出了所述跨步存儲(chǔ)和跨步讀取過程的示意圖,即在主存的地址間具有預(yù)定間隔的主存單元和從核的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)的傳輸。該圖僅是示意,所述從核的核內(nèi)存儲(chǔ)器為地址連續(xù)的多個(gè)存儲(chǔ)單元,可以是同一從核內(nèi)的地址連續(xù)的存儲(chǔ)單元,也可以是不同從核中的地址連續(xù)的存儲(chǔ)單元。所述跨步存儲(chǔ)和跨步讀取過程同樣適用于其他的編址方式。圖9示出了基于所述第一種編址方式(即連續(xù)編址)的另一種數(shù)據(jù)傳輸方法,具體包括從所述主存中獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為mO至mk),將所述多個(gè)數(shù)據(jù)單元按照所述存儲(chǔ)地址的次序依次廣播存儲(chǔ)于多個(gè)從核的核內(nèi)存儲(chǔ)器中,即數(shù)據(jù)的廣播讀取過程。根據(jù)程序運(yùn)行的局部性原理(Principle of Locality),在一個(gè)特定時(shí)間段內(nèi),一個(gè)程序運(yùn)行的絕大部分時(shí)間是基于局部范圍內(nèi)的一小段數(shù)據(jù)或者指令的,因此,將主存中的數(shù)據(jù)同時(shí)廣播讀入多個(gè)從核中,避免了不同從核在一時(shí)間段內(nèi)頻繁讀取同一數(shù)據(jù)段造成的主存的瓶頸問題。其中,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)從核的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每個(gè)從核的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中或者存儲(chǔ)于指定從核以外的其他從核的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中(即對(duì)指定的從核屏蔽)。圖10示出了本實(shí)施例的第二種編址方式(即行編址)示意圖,具體包括對(duì)所述處理器核心陣列的從核的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行行編址,其中,同一行相鄰列的從核的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的從核的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一行最后一列的從核的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。本實(shí)施例中將所述多個(gè)從核劃分為8行8列,第一行的從核00的第一
存儲(chǔ)單元的地址為0,第一行的從核01的第一存儲(chǔ)單元的地址為1......第一行的從核10
的第二存儲(chǔ)單元的地址為8,第一行的從核11的第二存儲(chǔ)單元的地址為9......第一行的
從核07最后一存儲(chǔ)單元的地址為8191,相應(yīng)的,第二行中的從核10的第一存儲(chǔ)單元的地址為8192,第二行中的從核11的第一存儲(chǔ)單元的地址為8193......以此類推。圖11示出了基于所述第二種編址方式(即行編址)的一種數(shù)據(jù)傳輸方法,具體包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元mO至mk),將所述多個(gè)數(shù)據(jù)單元按照所述存儲(chǔ)地址的次序依次存儲(chǔ)于一預(yù)定行(本實(shí)施例中為第二行)的從核的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中,即數(shù)據(jù)的讀取過程。在一具體實(shí)施例中可以為所述模式解析器接收到某一從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后, 交由所述行編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行行續(xù)編址,并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存讀請(qǐng)求)和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器寫請(qǐng)求),所述請(qǐng)求處理引擎通過所述處理器核心互連結(jié)構(gòu)從主存中獲取多個(gè)數(shù)據(jù)單元并依次寫入所述預(yù)定行的從核的核內(nèi)存儲(chǔ)器中,從主存中獲取多個(gè)數(shù)據(jù)單元可以為從地址連續(xù)的多個(gè)主存單元(即連續(xù)讀取)或地址間具有預(yù)定間隔的多個(gè)主存單元中獲取所述數(shù)據(jù)單元(即跨步讀取)?;蛘?,從一預(yù)定行(本實(shí)施例中為第二行)的從核的核內(nèi)存儲(chǔ)器中按照所述存儲(chǔ)地址的次序依次獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元m0至mk),將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中,即數(shù)據(jù)的寫入過程。在一具體實(shí)施例中,可以為所述模式解析器接收到某一從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后,交由行編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行行續(xù)編址,并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存寫請(qǐng)求)和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器讀請(qǐng)求),所述請(qǐng)求處理引擎從所述預(yù)定行的從核中獲取多個(gè)數(shù)據(jù)單元并經(jīng)由所述處理器核心互連結(jié)構(gòu)依次寫入主存中,寫入的過程可以為寫入主存中的多個(gè)地址連續(xù)的主存單元或?qū)懭胫鞔嬷械亩鄠€(gè)地址間存在預(yù)定間隔的主存單元中(即跨步存儲(chǔ))。上述的數(shù)據(jù)讀取過程中,并不是簡單的將相同的包括多個(gè)數(shù)據(jù)單元的數(shù)據(jù)段復(fù)制至行內(nèi)的各個(gè)從核,而是將一數(shù)據(jù)段依次分布存儲(chǔ)于行內(nèi)的各個(gè)從核,當(dāng)單個(gè)從核的核內(nèi)存儲(chǔ)器的存儲(chǔ)容量有限時(shí),使得一次性讀入所述處理器核心陣列的數(shù)據(jù)段的數(shù)據(jù)單元較多,避免了多次訪問主存,另外,由于各從核可以通過所述處理器核心互連結(jié)構(gòu)以及核間共享單元進(jìn)行高效的數(shù)據(jù)交互,因此從核在對(duì)所需的數(shù)據(jù)進(jìn)行讀取時(shí),可以先在處理器核心陣列內(nèi)部中進(jìn)行搜索,而不必直接訪問主存去獲取,改善了主存的瓶頸問題。圖12示出了基于所述第二種編址方式(即行編址)的另一種數(shù)據(jù)傳輸方法,具體包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元mO至 mk),將所述多個(gè)數(shù)據(jù)單元按照所述存儲(chǔ)地址的次序依次廣播存儲(chǔ)于多行從核的核內(nèi)存儲(chǔ)器中,即數(shù)據(jù)的行廣播讀取過程。類似的,根據(jù)程序運(yùn)行的局部性原理,本方法可以避免不同的從核在一時(shí)間段內(nèi)頻繁讀取同一數(shù)據(jù)段造成的主存的瓶頸問題。所述廣播存儲(chǔ)于多行從核的核內(nèi)存儲(chǔ)器中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每一行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中或存儲(chǔ)于指定行以外的其他行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中(即對(duì)指定行屏蔽)。圖13示出了本實(shí)施例的第三種編址方式(即陣列編址)示意圖,具體包括對(duì)所述多個(gè)從核的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行陣列編址,其中,同一行相鄰列的從核的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的從核的核內(nèi)存儲(chǔ)器與前一行最后一列的從核的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。本實(shí)施例中劃分為8行 8列,第一行的從核00的第一存儲(chǔ)單元的地址為0,第一行的從核01的第一存儲(chǔ)單元的地
址為1......第一行的從核07的第一存儲(chǔ)單元的地址為7,相應(yīng)的,第二行的從核10的第
一存儲(chǔ)單元的地址為8,第二行的從核11的第一存儲(chǔ)單元的地址為9......依次類推。圖14示出了基于所述第三種編址方式(即陣列編址)的一種數(shù)據(jù)傳輸方法,具體包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元m0至 mk),將所述多個(gè)數(shù)據(jù)單元按照所述存儲(chǔ)地址的次序依次存儲(chǔ)于各從核的核內(nèi)存儲(chǔ)器中,即數(shù)據(jù)的陣列讀取過程。在一具體實(shí)施例中可以為所述模式解析器接收到某一從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后,交由陣列編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行陣列編址,并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存讀請(qǐng)求) 和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器寫請(qǐng)求),所述請(qǐng)求處理引擎通過所述處理器核心互連結(jié)構(gòu)從主存中獲取多個(gè)數(shù)據(jù)單元并依次寫入所述各個(gè)從核的核內(nèi)存儲(chǔ)器中,從主存中獲取多個(gè)數(shù)據(jù)單元可以為從地址連續(xù)的多個(gè)主存單元(即連續(xù)讀取)或地址間具有預(yù)定間隔的多個(gè)主存單元中獲取所述數(shù)據(jù)單元(即跨步讀取)?;蛘?,從所述多個(gè)從核的核內(nèi)存儲(chǔ)器中按照所述存儲(chǔ)地址的次序依次獲取多個(gè)數(shù)據(jù)單元(本實(shí)施例中為數(shù)據(jù)單元mO至 mk),將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中,即數(shù)據(jù)的陣列寫入過程。在一具體實(shí)施例中,可以為所述模式解析器接收到某一從核的數(shù)據(jù)傳輸命令,對(duì)其中的編址方式進(jìn)行解析后,交由所述陣列編址傳輸管理模塊對(duì)各從核的核內(nèi)存儲(chǔ)器進(jìn)行陣列編址, 并將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求(具體為主存寫請(qǐng)求)和核內(nèi)存儲(chǔ)器訪問請(qǐng)求(具體為核內(nèi)存儲(chǔ)器讀請(qǐng)求),所述請(qǐng)求處理引擎從所述處理器核心陣列中依次獲取多個(gè)數(shù)據(jù)單元并經(jīng)由所述處理器核心互連結(jié)構(gòu)依次寫入主存中,寫入的過程可以為寫入主存中的多個(gè)地址連續(xù)的主存單元(即連續(xù)存儲(chǔ))或?qū)懭胫鞔嬷械亩鄠€(gè)地址間存在預(yù)定間隔的主存單元中(即跨步存儲(chǔ))。上述的數(shù)據(jù)陣列讀取過程中,將一數(shù)據(jù)段依次分布存儲(chǔ)于處理器核心陣列的各個(gè)從核中,使得一次性讀入所述處理器核心陣列的數(shù)據(jù)段的數(shù)據(jù)單元較多,避免了多次訪問主存;另外,由于各從核可以在所述核間共享單元的控制下通過所述處理器核心互連結(jié)構(gòu)進(jìn)行高效的數(shù)據(jù)交互,因此從核在對(duì)所需的數(shù)據(jù)進(jìn)行讀取時(shí),可以先在從處理器核心陣列內(nèi)部中進(jìn)行搜索,而不必直接訪問主存去獲取,改善了主存的瓶頸問題。綜上,本技術(shù)方案的多核處理器的數(shù)據(jù)管理方法和裝置中,將各個(gè)從核中的核內(nèi)存儲(chǔ)器進(jìn)行統(tǒng)一編址,在多個(gè)從核與主存之間同時(shí)進(jìn)行數(shù)據(jù)的讀或?qū)?,提高了?shù)據(jù)的讀寫效率。另外,本技術(shù)方案將一較大的數(shù)據(jù)段一次性讀入后存儲(chǔ)于多個(gè)從核中,根據(jù)程序的局部性原理,避免了不同從核在一時(shí)間段內(nèi)頻繁讀取同一數(shù)據(jù)段造成的主存的瓶頸問題。此外,本技術(shù)方案采用規(guī)則化的主存訪問方式,提高了主存和核內(nèi)存儲(chǔ)器中的存儲(chǔ)控制器的使用效率;并利用行廣播、陣列廣播等傳輸模式,將多次數(shù)據(jù)訪問合并,減少了主存的訪問量,避免了零散訪問主存導(dǎo)致的效率損失,提高了數(shù)據(jù)總線等互連結(jié)構(gòu)的利用率。進(jìn)一步的,本技術(shù)方案提供了多種編址方式和相應(yīng)的數(shù)據(jù)傳輸方式,能夠滿足多種計(jì)算過程的應(yīng)用需要。本發(fā)明雖然已以較佳實(shí)施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
權(quán)利要求
1.一種多核處理器的數(shù)據(jù)管理方法,其特征在于,所述多核處理器包括處理器核心陣列和處理器核心互連結(jié)構(gòu),所述處理器核心陣列包括多個(gè)處理器核心,所述處理器核心包括具有多個(gè)存儲(chǔ)單元的核內(nèi)存儲(chǔ)器,所述處理器核心互連結(jié)構(gòu)用于所述處理器核心陣列中任意兩處理器核心間的通信;所述多核處理器的數(shù)據(jù)管理方法包括對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址;根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸。
2.如權(quán)利要求1所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,還包括根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在多個(gè)處理器核心的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸。
3.如權(quán)利要求1所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括將所述多個(gè)處理器核心排序,對(duì)所述排序的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行連續(xù)編址,其中,同一處理器核心的核內(nèi)存儲(chǔ)器中存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
4.如權(quán)利要求3所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
5.如權(quán)利要求3所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
6.如權(quán)利要求3所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
7.如權(quán)利要求6所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
8.如權(quán)利要求6所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定處理器核心以外的其他處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
9.如權(quán)利要求1所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行行編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
10.如權(quán)利要求9所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
11.如權(quán)利要求9所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
12.如權(quán)利要求9所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
13.如權(quán)利要求12所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每一行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
14.如權(quán)利要求12所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定行以外的其他行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
15.如權(quán)利要求1所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址包括對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行陣列編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
16.如權(quán)利要求15所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
17.如權(quán)利要求15所述的多核處理器的數(shù)據(jù)管理方法,其特征在于,所述根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸包括從所述多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
18.如權(quán)利要求4至8、10至14、16至17中任一項(xiàng)所述的多核處理器的數(shù)據(jù)管理方法, 其特征在于,所述主存中的多個(gè)主存單元的地址相連續(xù)或地址間具有固定間隔。
19.一種多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述多核處理器包括處理器核心陣列和處理器核心互連結(jié)構(gòu),所述處理器核心陣列包括多個(gè)處理器核心,所述處理器核心包括具有多個(gè)存儲(chǔ)單元的核內(nèi)存儲(chǔ)器,所述處理器核心互連結(jié)構(gòu)用于所述處理器核心陣列中任意兩處理器核心間的通信,所述多核處理器的數(shù)據(jù)管理裝置包括模式解析器,接收所述處理器核心的數(shù)據(jù)傳輸命令,對(duì)所述數(shù)據(jù)傳輸命令中的編址方式進(jìn)行解析,將所述數(shù)據(jù)傳輸命令轉(zhuǎn)換為多個(gè)主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求,所述編址方式是指對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址的方式;請(qǐng)求處理引擎,根據(jù)所述主存訪問請(qǐng)求和核內(nèi)存儲(chǔ)器訪問請(qǐng)求在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸。
20.如權(quán)利要求19所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述請(qǐng)求處理引擎包括響應(yīng)處理引擎,接收所述主存訪問請(qǐng)求,從所述主存中獲取讀取數(shù)據(jù)并生成多個(gè)核內(nèi)存儲(chǔ)器寫請(qǐng)求,將所述讀取數(shù)據(jù)寫入核內(nèi)存儲(chǔ)器。
21.如權(quán)利要求19所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,還包括分布于每一處理器核心中的多個(gè)核間共享單元,用于接收所述處理器核心的數(shù)據(jù)傳輸命令,根據(jù)所述數(shù)據(jù)傳輸命令中的編址方式在多個(gè)處理器核心的核內(nèi)存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸。
22.如權(quán)利要求21所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述核間共享單元包括地址解析模塊、核心路由處理模塊、上網(wǎng)發(fā)送模塊和下網(wǎng)組包模塊,其中,所述地址解析模塊,接收本地處理器核心的核內(nèi)存儲(chǔ)請(qǐng)求,提取所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址,并根據(jù)所述編址方式確定所述訪問地址是否歸屬所述本地處理器核心的核內(nèi)存儲(chǔ)器,若是,則訪問所述本地處理器核心的核內(nèi)存儲(chǔ)器,否則將所述核內(nèi)存儲(chǔ)請(qǐng)求發(fā)送至核心路由處理模塊;所述核心路由處理模塊,接收所述地址解析模塊發(fā)送的核內(nèi)存儲(chǔ)請(qǐng)求,根據(jù)所述核內(nèi)存儲(chǔ)請(qǐng)求中的編址方式和訪問地址確定到達(dá)目標(biāo)處理器核心的發(fā)送路徑,將所述核內(nèi)存儲(chǔ)請(qǐng)求和發(fā)送路徑發(fā)送至所述上網(wǎng)發(fā)送模塊;所述上網(wǎng)發(fā)送模塊,將所述核內(nèi)存儲(chǔ)請(qǐng)求中的數(shù)據(jù)分拆為多個(gè)數(shù)據(jù)包,并根據(jù)所述發(fā)送路徑將所述多個(gè)數(shù)據(jù)包發(fā)送至所述處理器核心互連結(jié)構(gòu);所述下網(wǎng)組包模塊,通過所述處理器核心互連結(jié)構(gòu)接收到達(dá)本地處理器核心的數(shù)據(jù)包,對(duì)所述數(shù)據(jù)包進(jìn)行組包后訪問本地處理器核心的核內(nèi)存儲(chǔ)器。
23.如權(quán)利要求19所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令中的編址方式為連續(xù)編址,所述模式解析器包括連續(xù)編址傳輸管理模塊,將所述多個(gè)處理器核心排序,對(duì)所述排序的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行連續(xù)編址,其中,同一處理器核心的核內(nèi)存儲(chǔ)器中存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
24.如權(quán)利要求23所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為單處理器核心讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
25.如權(quán)利要求23所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為單處理器核心寫入命令,所述請(qǐng)求處理引擎從預(yù)定處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
26.如權(quán)利要求23所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為廣播讀取命令,所述請(qǐng)求處理引擎從所述主存中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
27.如權(quán)利要求沈所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
28.如權(quán)利要求沈所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定處理器核心以外的其他處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
29.如權(quán)利要求19所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令中的編址方式為行編址,所述模式解析器包括行編址傳輸管理模塊,對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行行編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器中第一個(gè)存儲(chǔ)單元的存儲(chǔ)地址與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中最后一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
30.如權(quán)利要求四所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為行讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
31.如權(quán)利要求四所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為行寫入命令,所述請(qǐng)求處理引擎從預(yù)定行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
32.如權(quán)利要求四所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為行廣播讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
33.如權(quán)利要求32所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于每一行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
34.如權(quán)利要求32所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述將所述多個(gè)數(shù)據(jù)單元廣播存儲(chǔ)于多行的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中是指將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于指定行以外的其他行處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
35.如權(quán)利要求19所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令中的編址方式為陣列編址,所述模式解析器包括陣列編址傳輸管理模塊,對(duì)所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行陣列編址,其中,同一行相鄰列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù),后一行第一列的處理器核心的核內(nèi)存儲(chǔ)器與前一行最后一列的處理器核心的核內(nèi)存儲(chǔ)器中同一個(gè)存儲(chǔ)單元的存儲(chǔ)地址相連續(xù)。
36.如權(quán)利要求35所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為陣列讀取命令,所述請(qǐng)求處理引擎從所述主存的多個(gè)主存單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述處理器核心陣列的處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中。
37.如權(quán)利要求35所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述數(shù)據(jù)傳輸命令為陣列寫入命令,所述請(qǐng)求處理引擎從所述多個(gè)處理器核心的核內(nèi)存儲(chǔ)器的連續(xù)多個(gè)存儲(chǔ)單元中獲取多個(gè)數(shù)據(jù)單元,將所述多個(gè)數(shù)據(jù)單元存儲(chǔ)于所述主存的多個(gè)主存單元中。
38.如權(quán)利要求M至觀、30至34、36至37中任一項(xiàng)所述的多核處理器的數(shù)據(jù)管理裝置,其特征在于,所述主存中的多個(gè)主存單元的地址相連續(xù)或地址間具有固定間隔。
全文摘要
一種多核處理器的數(shù)據(jù)管理方法及裝置,所述多核處理器包括處理器核心陣列和處理器核心互連結(jié)構(gòu),所述處理器核心陣列包括多個(gè)處理器核心,所述處理器核心包括具有多個(gè)存儲(chǔ)單元的核內(nèi)存儲(chǔ)器,所述處理器核心互連結(jié)構(gòu)用于所述處理器核心陣列中任意兩處理器核心間的通信,所述方法包括對(duì)所述處理器核心的核內(nèi)存儲(chǔ)器的存儲(chǔ)單元分配存儲(chǔ)地址;根據(jù)所述存儲(chǔ)單元的存儲(chǔ)地址在至少一個(gè)處理器核心的核內(nèi)存儲(chǔ)器和主存之間進(jìn)行數(shù)據(jù)傳輸。本發(fā)明提高了數(shù)據(jù)的讀寫效率,利用批量化的訪存方式,將多次數(shù)據(jù)訪問合并,避免了零散訪問主存的效率損失問題,并提供了多種編址方式和相應(yīng)的數(shù)據(jù)傳輸方式,能夠滿足多種計(jì)算過程的應(yīng)用需要。
文檔編號(hào)G06F12/02GK102446159SQ201010508870
公開日2012年5月9日 申請(qǐng)日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者唐勇, 李宏亮, 胡蘇太, 謝向輝, 鄭方, 郝子宇 申請(qǐng)人:無錫江南計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
焉耆| 甘泉县| 江门市| 广元市| 龙陵县| 中西区| 南投市| 龙里县| 兴业县| 辽阳市| 博兴县| 克什克腾旗| 赤水市| 抚顺市| 文化| 丽水市| 岐山县| 黎城县| 中阳县| 长丰县| 武平县| 井冈山市| 大埔区| 砚山县| 读书| 济源市| 浦江县| 宁城县| 西畴县| 逊克县| 平凉市| 沂水县| 中阳县| 穆棱市| 巴塘县| 锡林郭勒盟| 和平区| 台南市| 荔浦县| 东海县| 随州市|