專利名稱:眾核處理器及其空間訪問(wèn)的方法、主核的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及眾核處理器領(lǐng)域,特別涉及眾核處理器及其空間訪問(wèn)的方法、主核。
背景技術(shù):
隨著半導(dǎo)體技術(shù)的發(fā)展,傳統(tǒng)的單核處理器暴露出許許多多的局限,體系結(jié)構(gòu)設(shè)計(jì)者為了在處理器性能進(jìn)一步提升的同時(shí)降低功耗和散熱,提出了多核處理器 (multi-core processor)和眾核處理器(many-core processor)。多核處理器可以分為兩種同構(gòu)多核處理器和異構(gòu)多核處理器。同構(gòu)多核處理器內(nèi)的處理器核類型相同,在多核處理器中處于對(duì)等的地位;異構(gòu)多核處理器內(nèi)含有不同類型的處理器核,并且不同類型的處理器核在多核處理器內(nèi)部擔(dān)當(dāng)不同角色。眾核處理器與多核處理器相比,核心數(shù)量更多,而且眾核處理器通常都是異構(gòu)的。在使用眾核處理器時(shí),需要選擇某個(gè)或者某幾個(gè)核對(duì)其他核進(jìn)行運(yùn)行控制和空間管理,從而構(gòu)成主從式的架構(gòu),所述的管理核為主核,被管理的核為從核。
在異構(gòu)環(huán)境下,主核不能對(duì)從核空間進(jìn)行直接的訪問(wèn),需要由操作系統(tǒng)支撐,通過(guò)指定的接口和協(xié)議來(lái)進(jìn)行訪問(wèn)。例如,現(xiàn)有技術(shù)中CPU和GPU的異構(gòu)環(huán)境下,CPU并不能直接訪問(wèn)GPU的物理空間(顯存),需要由CPU通過(guò)空間映射來(lái)建立用戶虛擬空間和實(shí)際的物理空間的映射關(guān)系。在CPU和GPU的異構(gòu)環(huán)境下,CPU看到的GPU的物理空間是一維的地址空間,線性的虛擬地址就可以概括所有的GPU內(nèi)存空間。但在眾核空間下,由于從核數(shù)量眾多,主核看到的從核空間并不是一維線性的,每個(gè)從核在主核的空間視圖是完全一樣的, 但每個(gè)從核使用的物理空間又是不同的,這就帶來(lái)了多維空間映射和訪問(wèn)的問(wèn)題。
更多有關(guān)空間訪問(wèn)的方法還可以參考公開(kāi)號(hào)為CN101430651的中國(guó)發(fā)明專利申請(qǐng),其公開(kāi)了一種多核體系中空間訪問(wèn)的方法。發(fā)明內(nèi)容
本發(fā)明解決的問(wèn)題是現(xiàn)有技術(shù)中異構(gòu)眾核處理器環(huán)境下,由于從核物理空間分布存在多維性導(dǎo)致主核訪問(wèn)從核空間困難。
為解決上述問(wèn)題,本發(fā)明技術(shù)方案提供了一種眾核處理器空間訪問(wèn)的方法,包括 主核為從核創(chuàng)建頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表;所述從核向所述主核發(fā)送服務(wù)請(qǐng)求;所述主核裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表;所述主核從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址;所述主核使用所述物理地址訪問(wèn)所述從核的物理空間。
可選的,所述從核向主核發(fā)送服務(wù)請(qǐng)求通過(guò)核間中斷實(shí)現(xiàn),所述核間中斷提供中斷向量,所述主核裝載與發(fā)送請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表中包括 所述主核通過(guò)所述中斷向量確定發(fā)送服務(wù)請(qǐng)求的從核編號(hào);所述主核裝載與所述從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
可選的,所述服務(wù)請(qǐng)求的請(qǐng)求消息包含從核信息,所述主核裝載與發(fā)送請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表中包括所述主核通過(guò)所述從核信息確定發(fā)送服務(wù)請(qǐng)求的從核;所述主核裝載與所確定的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
可選的,所述主核還包括旁路轉(zhuǎn)換緩沖,所述主核從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則主核從旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
對(duì)應(yīng)的,本發(fā)明技術(shù)方案還提供了一種眾核處理器,包括主核、主存和從核,所述主核包括創(chuàng)建單元、裝載單元、映射單元和訪問(wèn)單元,所述主存包括頁(yè)表緩沖和進(jìn)程頁(yè)表, 所述從核包括請(qǐng)求單元和物理空間,其中所述創(chuàng)建單元適于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存中創(chuàng)建所述頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表; 所述裝載單元適于裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表;所述映射單元適于從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址;所述訪問(wèn)單元適于在映射單元產(chǎn)生物理地址后,根據(jù)物理地址訪問(wèn)所述從核的物理空間;所述請(qǐng)求單元適于向所述主核發(fā)送服務(wù)請(qǐng)求。
可選的,所述請(qǐng)求單元為中斷單元,適于通過(guò)中斷信號(hào)向主核發(fā)送服務(wù)請(qǐng)求,所述中斷單元還包括中斷向量寄存器,適于提供中斷向量,所述裝載單元裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表包括所述裝載單元通過(guò)所述中斷向量確定發(fā)送服務(wù)請(qǐng)求的從核編號(hào);所述裝載單元裝載與所述從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
可選的,所述請(qǐng)求單元向主核發(fā)送服務(wù)請(qǐng)求的請(qǐng)求消息包含從核信息,所述裝載單元裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表包括所述裝載單元通過(guò)所述從核信息確定發(fā)送服務(wù)請(qǐng)求的從核;所述裝載單元裝載與所確定的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
可選的,所述主核還包括旁路轉(zhuǎn)換緩沖和判斷單元,所述旁路轉(zhuǎn)換緩沖適于緩存頁(yè)表項(xiàng),所述判斷單元適于判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),所述映射單元從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括所述判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則所述映射單元從所述旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則所述裝載單元將所需頁(yè)表項(xiàng)從所述進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,所述映射單元再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
對(duì)應(yīng)的,本發(fā)明技術(shù)方案還提供了一種主核,包括創(chuàng)建單元、裝載單元、映射單元和訪問(wèn)單元,其中所述創(chuàng)建單元適于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存中創(chuàng)建所述頁(yè)表緩沖, 所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表;所述裝載單元適于裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表;所述映射單元適于從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址;所述訪問(wèn)單元適于在映射單元產(chǎn)生物理地址后,根據(jù)物理地址訪問(wèn)所述從核的物理空間。
可選的,還包括旁路轉(zhuǎn)換緩沖和判斷單元,所述旁路轉(zhuǎn)換緩沖適于緩存頁(yè)表項(xiàng),所述判斷單元適于判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),所述映射單元從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括所述判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則所述映射單元從所述旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則所述裝載單元將所需頁(yè)表項(xiàng)從所述進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,所述映射單元再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案提出了一種眾核處理器空間訪問(wèn)的方法。上述技術(shù)方案中主核為從核創(chuàng)建頁(yè)表緩沖,所述的頁(yè)表緩沖與所述從核對(duì)應(yīng)。從核向主核發(fā)送服務(wù)請(qǐng)求后,主核裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表中?,F(xiàn)有技術(shù)中,主從式的眾核處理器中從核數(shù)量眾多,各個(gè)從核向主核提出服務(wù)請(qǐng)求,需要主核根據(jù)進(jìn)程的統(tǒng)一邏輯空間映射各個(gè)從核的不同物理空間,就需要主核臨時(shí)建立邏輯空間到從核物理空間的映射頁(yè)表,增大了主核負(fù)擔(dān)。本技術(shù)方案中,主核事先為各個(gè)從核建立頁(yè)表緩沖,在接收到不同從核發(fā)送的服務(wù)請(qǐng)求后,只需在對(duì)應(yīng)的頁(yè)表緩沖中裝載頁(yè)表,無(wú)需重復(fù)為從核的物理空間建立頁(yè)表,確保了主核可以正確訪問(wèn)各個(gè)從核的空間,有效的屏蔽了異構(gòu)眾核環(huán)境下的多維空間訪問(wèn)復(fù)雜性,減少了主核訪問(wèn)各從核空間的開(kāi)銷(xiāo)。
進(jìn)一步的,本發(fā)明的技術(shù)方案所述的主核還包括了旁路轉(zhuǎn)換緩沖(TLB : Translation Lookaside Buffer),主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,再?gòu)呐月忿D(zhuǎn)換緩沖獲取頁(yè)表項(xiàng)。旁路轉(zhuǎn)換緩沖為片上的專用高速存儲(chǔ)器,將進(jìn)程部分頁(yè)表項(xiàng)裝載到旁路轉(zhuǎn)換緩沖后,在后續(xù)需要多次使用所述頁(yè)表項(xiàng)時(shí),首先通過(guò)判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),在判斷單元的判斷結(jié)果為是時(shí),直接從旁路轉(zhuǎn)換緩沖中獲取頁(yè)表項(xiàng),無(wú)需再讀取位于主存的進(jìn)程頁(yè)表中,提高了從核物理空間訪問(wèn)的效率。
圖1是本發(fā)明技術(shù)方案的眾核處理器空間訪問(wèn)方法的流程示意圖2是本發(fā)明技術(shù)方案的眾核處理器的結(jié)構(gòu)示意圖3是本發(fā)明實(shí)施例的眾核處理器空間訪問(wèn)方法的流程示意圖;
圖4是本發(fā)明實(shí)施例的眾核處理器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)的說(shuō)明。
現(xiàn)有技術(shù)中,沒(méi)有針對(duì)異構(gòu)眾核處理器的空間訪問(wèn)方法,現(xiàn)有的異構(gòu)處理器的空間訪問(wèn)方法也不適于眾核處理器的應(yīng)用場(chǎng)景。
背景技術(shù):
中的CPU和GPU的異構(gòu)環(huán)境下,GPU 從核的物理空間是一維線性的,而在異構(gòu)眾核處理器環(huán)境下,由于從核的數(shù)量眾多,各個(gè)從核使用的物理空間不同,是多維的,這就帶來(lái)了多維空間訪問(wèn)的問(wèn)題。本發(fā)明提供了一種異構(gòu)眾核環(huán)境下的多維空間訪問(wèn)的方法。
請(qǐng)參考圖1,本發(fā)明技術(shù)方案提供了一種眾核處理器空間訪問(wèn)的方法,所述眾核處理器空間訪問(wèn)的方法包括
步驟S101,主核為從核創(chuàng)建頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核--對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表。
步驟S102,所述從核向所述主核發(fā)送服務(wù)請(qǐng)求。
步驟S103,所述主核裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表。
步驟S104,所述主核從所述進(jìn)程頁(yè)表中獲取頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址。
步驟S105,所述主核使用所述物理地址訪問(wèn)所述從核的物理空間。
在異構(gòu)眾核處理器中,主核負(fù)責(zé)處理器的控制和管理,從核負(fù)責(zé)提供運(yùn)算能力,在程序的運(yùn)行過(guò)程中,從核會(huì)向主核請(qǐng)求相應(yīng)的系統(tǒng)服務(wù)。在主從架構(gòu)中,從核需要主核提供系統(tǒng)服務(wù),就需要在主核上運(yùn)行用戶進(jìn)程,用戶進(jìn)程再控制從核的運(yùn)行,這個(gè)用戶進(jìn)程在某些需求下,就會(huì)需要訪問(wèn)從核的物理空間,而且需要用統(tǒng)一的邏輯地址對(duì)從核的物理空間進(jìn)行訪問(wèn),即需要統(tǒng)一的邏輯地址映射從核的物理空間。
上述技術(shù)方案中,主核在進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)為各個(gè)從核建立了對(duì)應(yīng)的頁(yè)表緩沖,所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表,所述頁(yè)表包含頁(yè)表項(xiàng),所述頁(yè)表項(xiàng)即為各邏輯地址到物理地址的對(duì)應(yīng)關(guān)系。主核在收到從核發(fā)送的服務(wù)請(qǐng)求后,主核裝載與發(fā)送請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表中,主核再?gòu)倪M(jìn)程頁(yè)表中獲取頁(yè)表項(xiàng)。主核利用用戶進(jìn)程中的邏輯地址和從進(jìn)程頁(yè)表中獲取的所需頁(yè)表項(xiàng)運(yùn)算產(chǎn)生物理地址,所述的物理地址即為發(fā)送服務(wù)請(qǐng)求的從核的物理空間的地址。主核再使用該物理地址訪問(wèn)從核的物理空間,響應(yīng)從核的服務(wù)請(qǐng)求。
在本技術(shù)方案中,主核事先為各個(gè)從核建立頁(yè)表緩沖,在接收到不同從核發(fā)送的服務(wù)請(qǐng)求后,只需在對(duì)應(yīng)的頁(yè)表緩沖中裝載頁(yè)表,無(wú)需重復(fù)為從核的物理空間建立頁(yè)表,所以減少了主核訪問(wèn)各從核空間的開(kāi)銷(xiāo)。
對(duì)應(yīng)的,請(qǐng)參考圖2,圖2為本發(fā)明技術(shù)方案提供的眾核處理器的結(jié)構(gòu)示意圖,需要說(shuō)明的是,為了簡(jiǎn)潔明了,圖中僅示出主核和一個(gè)從核的連接關(guān)系。所述的眾核處理器包括包括主核201、主存202和從核203,所述主核201的 數(shù)量至少為一個(gè),所述從核203的數(shù)量為多個(gè),所述主核201對(duì)從核203進(jìn)行管理和服務(wù),形成主從式架構(gòu)。所述主核201包括創(chuàng)建單元201a、裝載單元201b、映射單元201c和訪問(wèn)單元201d,所述主存202包括頁(yè)表緩沖202a和進(jìn)程頁(yè)表202b,所述從核203包括請(qǐng)求單元203a和物理空間203b。
所述創(chuàng)建單元201a適于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存202中為從核203創(chuàng)建對(duì)應(yīng)的頁(yè)表緩沖202a,所述頁(yè)表緩沖202a與所述從核203 —一對(duì)應(yīng),所述頁(yè)表緩沖202a用于存儲(chǔ)頁(yè)表;所述裝載單元201b適于裝載與發(fā)送服務(wù)請(qǐng)求的從核203對(duì)應(yīng)的頁(yè)表緩沖202a 中的頁(yè)表到進(jìn)程頁(yè)表202b ;所述映射單元201c適于從所述進(jìn)程頁(yè)表202b中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址;所述訪問(wèn)單元201d適于在映射單元201c產(chǎn)生物理地址后,根據(jù)物理地址訪問(wèn)所述從核203的物理空間203b ;所述請(qǐng)求單元203a適于向所述主核 201發(fā)送服務(wù)請(qǐng)求。
下面結(jié)合實(shí)施例,對(duì)本發(fā)明技術(shù)方案的眾核處理器的空間訪問(wèn)方法進(jìn)行詳細(xì)說(shuō)明。請(qǐng)參考圖3所示的本實(shí)施例的眾核處理器的空間訪問(wèn)方法的流程示意圖,所述空間訪問(wèn)方法包括
步驟S301,主核為從核創(chuàng)建頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核--對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表。在異構(gòu)眾核處理器中,從核需要主核提供系統(tǒng)服務(wù),就需要在主核上運(yùn)行用戶進(jìn)程,用戶進(jìn)程再控制從核的運(yùn)行,這個(gè)用戶進(jìn)程在某些需求下,就會(huì)需要訪問(wèn)從核的物理空間,而且需要用統(tǒng)一的邏輯地址對(duì)從核的物理空間進(jìn)行訪問(wèn)。主核為每個(gè)從核建立對(duì)應(yīng)的頁(yè)表緩沖,所述的頁(yè)表緩沖保存了包含進(jìn)程邏輯空間到從核物理空間映射關(guān)系的頁(yè)表,確保主核通過(guò)獲取頁(yè)表緩沖中的頁(yè)表信息就可以訪問(wèn)對(duì)應(yīng)從核的物理空間。
步驟S302,從核通過(guò)核間中斷向主核發(fā)送服務(wù)請(qǐng)求。本實(shí)施例中,從核向主核發(fā)送服務(wù)請(qǐng)求通過(guò)核間中斷實(shí)現(xiàn),核間中斷是硬件提供的一種事件機(jī)制,對(duì)于主核來(lái)說(shuō)屬于異步事件,產(chǎn)生的方式與硬件實(shí)現(xiàn)的具體方式有關(guān)。在核間中斷機(jī)制下,存在中斷向量寄存器,適于提供中斷向量,所述的中斷向量包含此次中斷的信息,例如包含發(fā)送中斷請(qǐng)求的從核編號(hào)和中斷程序的程序入口。主核在收到從核發(fā)送的核間中斷后,進(jìn)入中斷響應(yīng)的處理流程,對(duì)從核提供系統(tǒng)服務(wù)。
步驟S303,主核通過(guò)中斷向量確定從核編號(hào)。所述中斷向量由硬件保證可靠傳輸, 保證主核獲取發(fā)送服務(wù)請(qǐng)求的從核編號(hào),正確訪問(wèn)對(duì)應(yīng)的頁(yè)表緩沖。
在本發(fā)明的其他實(shí)施例中,從核向主核發(fā)送服務(wù)請(qǐng)求的請(qǐng)求消息中包含了從核信息,主核通過(guò)請(qǐng)求消息來(lái)確定發(fā)送服務(wù)請(qǐng)求的從核。
步驟S304,主核裝載與從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表。在用戶進(jìn)程需要訪問(wèn)從核的物理空間時(shí),使用統(tǒng)一的邏輯地址對(duì)各個(gè)從核的物理空間進(jìn)行訪問(wèn)。所述的進(jìn)程頁(yè)表包含了進(jìn)程運(yùn)行過(guò)程中,所使用邏輯空間與物理空間的映射關(guān)系。將與從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表裝載到進(jìn)程頁(yè)表中,就是為了在用戶進(jìn)程為發(fā)送請(qǐng)求的從核服務(wù)時(shí),可以正確訪問(wèn)對(duì)應(yīng)從核的物理空間。
步驟S305,判斷旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若旁路轉(zhuǎn)換緩沖中包含所需頁(yè)表項(xiàng),則執(zhí)行步驟S307,若旁路轉(zhuǎn)換緩沖中不包含所需頁(yè)表項(xiàng)則執(zhí)行步驟S306。
步驟S306,主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖。旁路轉(zhuǎn)換緩沖 (TLB translation Lookaside Buffer)為片上的專用高速存儲(chǔ)器,通常為SRAM,具有速度快的特點(diǎn);主存為片外存儲(chǔ)器,通常為DRAM,訪問(wèn)速度遠(yuǎn)低于旁路轉(zhuǎn)換緩沖。根據(jù)程序執(zhí)行的局部性特點(diǎn),即在一段時(shí)間內(nèi)進(jìn)程訪問(wèn)的空間集中在較小的范圍內(nèi),若在每次映射過(guò)程中都需要訪問(wèn)進(jìn)程頁(yè)表獲取所需頁(yè)表項(xiàng),而進(jìn)程頁(yè)表位于片外的主存內(nèi),訪問(wèn)速度慢,將會(huì)降低主核訪問(wèn)從核物理空間的效率。所以主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,后續(xù)需要多次使用所述頁(yè)表項(xiàng)時(shí),首先判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng), 在判斷單元的判斷結(jié)果為是時(shí)直接從旁路轉(zhuǎn)換緩沖中獲取頁(yè)表項(xiàng),無(wú)需再讀取位于主存的進(jìn)程頁(yè)表中,提高了從核物理空間訪問(wèn)的效率。
步驟S307,主核從旁路轉(zhuǎn)換緩沖中獲取頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址。主核利用用戶進(jìn)程中的邏輯地址和從旁路轉(zhuǎn)換緩沖中獲取的頁(yè)表項(xiàng)運(yùn)算產(chǎn)生物理地址。在使用虛擬空間的操作系統(tǒng)中,每個(gè)進(jìn)程都被假設(shè)給予一個(gè)龐大的、連貫的虛擬空間,而實(shí)際的進(jìn)程所需的數(shù)據(jù)可能是分散在物理空間的不同區(qū)間當(dāng)中。所述的邏輯地址即為用戶進(jìn)程使用的虛擬空間的地址,所述的物理地址即為數(shù)據(jù)實(shí)際在物理空間的存放地址,而頁(yè)表項(xiàng)為邏輯地址到物理地址的對(duì)應(yīng)關(guān)系。
步驟S308,主核使用所述物理地址訪問(wèn)從核的物理空間。上述實(shí)施例中,從核通過(guò)核間中斷向主核發(fā)送服務(wù)請(qǐng)求,主核使用中斷向量確定從核編號(hào),在硬件上確保了主核正確確定發(fā)送請(qǐng)求的從核編號(hào),再在對(duì)應(yīng)的頁(yè)表緩沖中裝載頁(yè)表。另外,主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,再?gòu)呐月忿D(zhuǎn)換緩沖獲取頁(yè)表項(xiàng)。旁路轉(zhuǎn)換緩沖為集成于主核內(nèi)的片內(nèi)存儲(chǔ)器,具有較高的存取速度,將進(jìn)程部分頁(yè)表項(xiàng)裝載到旁路轉(zhuǎn)換緩沖后,在后續(xù)需要多次使用所述頁(yè)表項(xiàng)時(shí),首先通過(guò)判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),在判斷單元的判斷結(jié)果為是時(shí),直接從旁路轉(zhuǎn)換緩沖中獲取頁(yè)表項(xiàng),無(wú)需再讀取位于主存的進(jìn)程頁(yè)表中,達(dá)到正確高效的從核空間訪問(wèn)目的。
對(duì)應(yīng)的,請(qǐng)參考圖4,圖4為本發(fā)明實(shí)施例提供的眾核處理器的結(jié)構(gòu)示意圖,需要說(shuō)明的是,為了簡(jiǎn)潔明了,圖中僅示出主核和一個(gè)從核的連接關(guān)系。
所述眾核處理器包括主核401、主存402和從核403,所述主核401對(duì)從核403進(jìn)行管理和服務(wù),形成主從式架構(gòu)。所述主核401的數(shù)量至少為一個(gè),所述主核401 —般為通用的處理器核心,其指令集為完整指令集,包括相關(guān)的控制指令、運(yùn)算指令等,可以選自 ARM,MIPS、X86或PowerPC中的一種,因此具有較高的通用性。所述從核403的數(shù)量為多個(gè), 例如所述從核403的數(shù)量為64個(gè)、128個(gè)或者256個(gè)等等。所述從核403為指令集和微結(jié)構(gòu)經(jīng)過(guò)簡(jiǎn)化的處理器核心,但其結(jié)構(gòu)是針對(duì)運(yùn)算指令進(jìn)行過(guò)專門(mén)優(yōu)化的,使其可以較高效的執(zhí)行圖形處理或數(shù)字信號(hào)處理(DSP,Digital Signal Process)等計(jì)算密集型任務(wù),提高了所述運(yùn)算任務(wù)的執(zhí)行效率,進(jìn)而提高了整個(gè)眾核處理器的性能。
所述主核401包括創(chuàng)建單元401a、裝載單元401b、映射單元401c、訪問(wèn)單元401d, 旁路轉(zhuǎn)換緩沖401e和判斷單元401f ;所述主存402包括頁(yè)表緩沖402a和進(jìn)程頁(yè)表402b ; 所述從核403包括中斷單元403a和物理空間403b。
所述的創(chuàng)建單元401a用于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存402為各個(gè)從核創(chuàng)建頁(yè)表緩沖402a,所述頁(yè)表緩沖402a與所述從核403 —一對(duì)應(yīng),所述頁(yè)表緩沖402a用于存儲(chǔ)頁(yè)表。
所述頁(yè)表緩沖402a用于保存頁(yè)表,所述頁(yè)表包含頁(yè)表項(xiàng),所述頁(yè)表項(xiàng)即為進(jìn)程邏輯地址到從核物理地址的具體映射關(guān)系,所述的頁(yè)表緩沖402a與從核403 —一對(duì)應(yīng)。在異構(gòu)眾核處理器中,用戶進(jìn)程在某些需求下,就會(huì)需要訪問(wèn)從核403的物理空間403b,而且需要用統(tǒng)一的邏輯地址對(duì)從核403的物理空間403b進(jìn)行訪問(wèn)。主核401為每個(gè)從核403建立對(duì)應(yīng)的頁(yè)表緩沖402a,所述的頁(yè)表緩沖402a保存了包含進(jìn)程邏輯空間到從核物理空間 403b映射關(guān)系的頁(yè)表,確保主核401通過(guò)獲取頁(yè)表緩沖402a中的頁(yè)表信息就可以訪問(wèn)對(duì)應(yīng)從核403的物理空間403b。
所述進(jìn)程頁(yè)表402b保存了用戶進(jìn)程所使用邏輯空間與物理空間的對(duì)應(yīng)關(guān)系的頁(yè)表,所述的物理空間可以為任意所述從核403的物理空間403b。在使用虛擬空間的操作系統(tǒng)中,為了讓每個(gè)進(jìn)程擁有獨(dú)立的地址空間,每個(gè)進(jìn)程都被假設(shè)給予一個(gè)龐大的、連貫的空間,而實(shí)際的進(jìn)程所需的數(shù)據(jù)可能是分散在物理空間的不同區(qū)間當(dāng)中。頁(yè)表是一種數(shù)據(jù)結(jié)構(gòu),保存了這種用戶進(jìn)程使用的邏輯地址和數(shù)據(jù)保存在物理空間的物理地址之間的對(duì)應(yīng)關(guān)系O
所述中斷單元403a用于向所述主核401發(fā)送服務(wù)請(qǐng)求。在本實(shí)施例中,從核403 向主核401發(fā)送服務(wù)請(qǐng)求通過(guò)中斷單元403a發(fā)送核間中斷實(shí)現(xiàn)。所述核間中斷是硬件提供的一種事件機(jī)制,對(duì)于主核401來(lái)說(shuō)屬于異步事件,產(chǎn)生的方式與硬件實(shí)現(xiàn)的具體方式有關(guān),例如可以通過(guò)從核寫(xiě)通道或者寫(xiě)硬件的IO寄存器來(lái)產(chǎn)生核間中斷信號(hào)。所述的中斷單元403a包括中斷向量寄存器(未示出),用于提供中斷向量,所述的中斷向量包含此次中斷的信息,如發(fā)送中斷請(qǐng)求的從核編號(hào)。主核401在收到從核403發(fā)送的核間中斷后,進(jìn)入中斷響應(yīng)的處理流程對(duì)從核403提供系統(tǒng)服務(wù),可以通過(guò)從核編號(hào)訪問(wèn)對(duì)應(yīng)的頁(yè)表緩沖 402a,中斷向量由硬件保證可靠傳輸。9
所述裝載單元401b用于在接收到從核403發(fā)送的核間中斷后,使用中斷向量確定發(fā)送服務(wù)請(qǐng)求的從核編號(hào),并將與所述從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖402a中的頁(yè)表項(xiàng)裝載入進(jìn)程頁(yè)表402b。
在本發(fā)明的其他實(shí)施例中,從核403向主核401發(fā)送服務(wù)請(qǐng)求的請(qǐng)求消息中包含了從核信息,主核401通過(guò)請(qǐng)求消息來(lái)確定發(fā)送服務(wù)請(qǐng)求的從核403。
所述旁 路轉(zhuǎn)換緩沖(TLB !Translation Lookaside Buffer) 401e為集成于主核 401內(nèi)的片內(nèi)存儲(chǔ)器,如SRAM等,具有較高的存取速度,并且可以從硬件上保證按內(nèi)容并行查找。基于用戶進(jìn)程的局部性原理,即在一段時(shí)間內(nèi)進(jìn)程訪問(wèn)的空間集中在較小的范圍內(nèi), 若在每次映射過(guò)程中都需要訪問(wèn)進(jìn)程頁(yè)表402b獲取所需頁(yè)表項(xiàng),而進(jìn)程頁(yè)表402b位于片外的主存402內(nèi),所述主存402通常為DRAM,訪問(wèn)速度較慢,將會(huì)降低主核401訪問(wèn)從核403 物理空間403b的效率。所以主核401將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表402b裝載到旁路轉(zhuǎn)換緩沖 401e,后續(xù)需要多次使用所述頁(yè)表項(xiàng)時(shí),直接從旁路轉(zhuǎn)換緩沖401e中獲取頁(yè)表項(xiàng),提高了從核物理空間訪問(wèn)的效率。
所述判斷單元401f用于判斷所述旁路轉(zhuǎn)換緩沖401e中是否包含所需頁(yè)表項(xiàng),在判斷結(jié)果為是時(shí),裝載單元401b從旁路轉(zhuǎn)換緩沖401e中裝載所需頁(yè)表項(xiàng)到映射單元401c, 在判斷結(jié)果為否時(shí),裝載單元401b從進(jìn)程頁(yè)表402b中裝載所需頁(yè)表項(xiàng)到旁路轉(zhuǎn)換緩沖 401e,再?gòu)呐月忿D(zhuǎn)換緩沖401e裝載所需頁(yè)表項(xiàng)到映射電源401c。由于旁路轉(zhuǎn)換緩沖401e 為片內(nèi)存儲(chǔ)器,受限于芯片面積,容量較小,只能存放部分頁(yè)表,在主核401裝載頁(yè)表項(xiàng)前, 首先判斷所需頁(yè)表項(xiàng)是否存在于芳路轉(zhuǎn)換緩沖401e中,可以確保主核401正確獲取所需頁(yè)表項(xiàng),達(dá)到正確訪問(wèn)從核403的物理空間403b的目的。
所述映射單元401c用于從所述旁路轉(zhuǎn)換緩沖401e中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址。所述訪問(wèn)單元401d用于在映射單元401c產(chǎn)生物理地址后,使用物理地址訪問(wèn)所述從核403的物理空間403b。
本發(fā)明雖然已以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
權(quán)利要求
1.一種眾核處理器空間訪問(wèn)的方法,其特征在于,包括 主核為從核創(chuàng)建頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表; 所述從核向所述主核發(fā)送服務(wù)請(qǐng)求; 所述主核裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表; 所述主核從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址; 所述主核使用所述物理地址訪問(wèn)所述從核的物理空間。
2.如權(quán)利要求I所述的眾核處理器空間訪問(wèn)的方法,其特征在于,所述從核向主核發(fā)送服務(wù)請(qǐng)求通過(guò)核間中斷實(shí)現(xiàn),所述核間中斷提供中斷向量,所述主核裝載與發(fā)送請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表中包括 所述主核通過(guò)所述中斷向量確定發(fā)送服務(wù)請(qǐng)求的從核編號(hào); 所述主核裝載與所述從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
3.如權(quán)利要求I所述的眾核處理器空間訪問(wèn)的方法,其特征在于,所述服務(wù)請(qǐng)求的請(qǐng)求消息包含從核信息,所述主核裝載與發(fā)送請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表中包括 所述主核通過(guò)所述從核信息確定發(fā)送服務(wù)請(qǐng)求的從核; 所述主核裝載與所確定的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
4.如權(quán)利要求I所述的眾核處理器空間訪問(wèn)的方法,其特征在于,所述主核還包括旁路轉(zhuǎn)換緩沖,所述主核從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則主核從旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則主核將所需頁(yè)表項(xiàng)從進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
5.ー種眾核處理器,其特征在于,包括主核、主存和從核,所述主核包括創(chuàng)建單元、裝載単元、映射単元和訪問(wèn)單元,所述主存包括頁(yè)表緩沖和進(jìn)程頁(yè)表,所述從核包括請(qǐng)求單元和物理空間,其中 所述創(chuàng)建単元適于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存中創(chuàng)建所述頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表; 所述裝載単元適于裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表; 所述映射単元適于從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址; 所述訪問(wèn)単元適于在映射單元產(chǎn)生物理地址后,根據(jù)物理地址訪問(wèn)所述從核的物理空間; 所述請(qǐng)求単元適于向所述主核發(fā)送服務(wù)請(qǐng)求。
6.如權(quán)利要求5所述的眾核處理器,其特征在于,所述請(qǐng)求單元為中斷単元,適于通過(guò)中斷信號(hào)向主核發(fā)送服務(wù)請(qǐng)求,所述中斷單元還包括中斷向量寄存器,適于提供中斷向量,所述裝載単元裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表包括 所述裝載単元通過(guò)所述中斷向量確定發(fā)送服務(wù)請(qǐng)求的從核編號(hào); 所述裝載単元裝載與所述從核編號(hào)對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
7.如權(quán)利要求5所述的眾核處理器,其特征在于,所述請(qǐng)求単元向主核發(fā)送服務(wù)請(qǐng)求的請(qǐng)求消息包含從核信息,所述裝載單元裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表包括 所述裝載單元通過(guò)所述從核信息確定發(fā)送服務(wù)請(qǐng)求的從核; 所述裝載單元裝載與所確定的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表項(xiàng)到進(jìn)程頁(yè)表。
8.如權(quán)利要求5所述的眾核處理器,其特征在于,所述主核還包括旁路轉(zhuǎn)換緩沖和判斷單元,所述旁路轉(zhuǎn)換緩沖適于緩存頁(yè)表項(xiàng),所述判斷單元適于判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),所述映射單元從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括所述判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則所述映射單元從所述旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則所述裝載單元將所需頁(yè)表項(xiàng)從所述進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,所述映射單元再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
9.一種主核,其特征在于,包括創(chuàng)建單元、裝載單元、映射單元和訪問(wèn)單元,其中 所述創(chuàng)建單元適于進(jìn)程在系統(tǒng)中被創(chuàng)建時(shí)在主存中創(chuàng)建所述頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表; 所述裝載單元適于裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表; 所述映射單元適于從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址; 所述訪問(wèn)單元適于在映射單元產(chǎn)生物理地址后,根據(jù)物理地址訪問(wèn)所述從核的物理空間。
10.如權(quán)利要求9所述的主核,其特征在于,還包括旁路轉(zhuǎn)換緩沖和判斷單元,所述旁路轉(zhuǎn)換緩沖適于緩存頁(yè)表項(xiàng),所述判斷單元適于判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),所述映射單元從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng)包括所述判斷單元判斷所述旁路轉(zhuǎn)換緩沖中是否包含所需頁(yè)表項(xiàng),若是則所述映射單元從所述旁路轉(zhuǎn)換緩沖獲取頁(yè)表項(xiàng);若否則所述裝載單元將所需頁(yè)表項(xiàng)從所述進(jìn)程頁(yè)表裝載到旁路轉(zhuǎn)換緩沖,所述映射單元再?gòu)呐月忿D(zhuǎn)換緩沖獲取所需頁(yè)表項(xiàng)。
全文摘要
一種眾核處理器及其空間訪問(wèn)的方法、主核,其中,所述眾核處理器空間訪問(wèn)的方法包括主核為從核創(chuàng)建頁(yè)表緩沖,所述頁(yè)表緩沖與所述從核一一對(duì)應(yīng),所述頁(yè)表緩沖用于存儲(chǔ)頁(yè)表;所述從核向所述主核發(fā)送服務(wù)請(qǐng)求;所述主核裝載與發(fā)送服務(wù)請(qǐng)求的從核對(duì)應(yīng)的頁(yè)表緩沖中的頁(yè)表到進(jìn)程頁(yè)表;所述主核從所述進(jìn)程頁(yè)表中獲取所需頁(yè)表項(xiàng),并啟動(dòng)頁(yè)表映射產(chǎn)生物理地址;所述主核使用所述物理地址訪問(wèn)所述從核的物理空間。本發(fā)明的眾核處理器及其空間訪問(wèn)的方法、主核,有效的屏蔽了異構(gòu)眾核環(huán)境下的多維空間訪問(wèn)復(fù)雜性,實(shí)現(xiàn)了異構(gòu)眾核環(huán)境下從核空間正確高效的訪問(wèn)。
文檔編號(hào)G06F15/167GK102982001SQ20121043826
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年11月6日 優(yōu)先權(quán)日2012年11月6日
發(fā)明者鄭巖, 黃高陽(yáng), 陳斐, 殷紅武 申請(qǐng)人:無(wú)錫江南計(jì)算技術(shù)研究所