用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法,存儲(chǔ)設(shè)備以及存儲(chǔ)系統(tǒng)的制作方法
【專利摘要】根據(jù)一個(gè)實(shí)施例,一種用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法包括將包括優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求從所述存儲(chǔ)設(shè)備中的處理元件發(fā)送到所述存儲(chǔ)設(shè)備中的交叉互連。通過(guò)所述交叉互連,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到所述存儲(chǔ)設(shè)備中與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)器控制器。在所述存儲(chǔ)控制器接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求。將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求。所述存儲(chǔ)器控制器基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。
【專利說(shuō)明】用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法,存儲(chǔ)設(shè)備以及存儲(chǔ)系統(tǒng)
【背景技術(shù)】
[0001]本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)器,并且尤其是涉及存儲(chǔ)設(shè)備內(nèi)的流量?jī)?yōu)先化。
[0002]當(dāng)計(jì)算機(jī)接通電源并運(yùn)行時(shí),計(jì)算機(jī)系統(tǒng)常常需要相當(dāng)數(shù)量的高速存儲(chǔ)器(諸如隨機(jī)存取存儲(chǔ)器(RAM))以容納信息(諸如數(shù)據(jù)和程序)。隨著計(jì)算機(jī)系統(tǒng)已經(jīng)提高了性能和復(fù)雜性,存儲(chǔ)設(shè)備的需求已經(jīng)不斷增長(zhǎng)。
[0003]從主處理器到存儲(chǔ)設(shè)備上的位置的通信可以涉及相當(dāng)長(zhǎng)的數(shù)據(jù)訪問(wèn)時(shí)間和延遲。主處理器訪問(wèn)存儲(chǔ)器所花費(fèi)的時(shí)間例如可以是數(shù)百個(gè)周期,包括:認(rèn)識(shí)到數(shù)據(jù)不在緩沖器中(對(duì)于存儲(chǔ)器讀取)的時(shí)間,從主處理器的處理器核穿過(guò)模塊或其他封裝到I/o的時(shí)間,在多處理器/共享存儲(chǔ)系統(tǒng)中建立到存儲(chǔ)器的通道的仲裁時(shí)間,以及在存儲(chǔ)單元中放入和取出數(shù)據(jù)的時(shí)間。試圖同時(shí)訪問(wèn)共享存儲(chǔ)器的多個(gè)資源之間的競(jìng)爭(zhēng)增加了系統(tǒng)時(shí)延和功率需求。
【發(fā)明內(nèi)容】
[0004]根據(jù)一個(gè)實(shí)施例,一種用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法,包括將包括優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求從所述存儲(chǔ)設(shè)備中的處理元件發(fā)送到所述存儲(chǔ)設(shè)備中的交叉互連(crossbar interconnect)。通過(guò)所述交叉互連,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的所述存儲(chǔ)設(shè)備中的存儲(chǔ)器控制器。在所述存儲(chǔ)控制器處接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求。將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求。所述存儲(chǔ)器控制器基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。
[0005]另外的示例性實(shí)施例包括存儲(chǔ)設(shè)備。所述存儲(chǔ)設(shè)備包括耦合到交叉互連的處理元件。所述處理元件被配置為將包括優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求發(fā)送到所述交叉互連。所述交叉互連被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)器控制器。所述存儲(chǔ)器控制器被耦合到存儲(chǔ)器以及所述交叉互連。所述存儲(chǔ)控制器包括隊(duì)列并且被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求,并且基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。
[0006]通過(guò)本發(fā)明的技術(shù)實(shí)現(xiàn)了另外的特征和優(yōu)點(diǎn)。本發(fā)明的其它實(shí)施例和方面在本文中進(jìn)行了詳細(xì)描述,并且被認(rèn)為是本發(fā)明的一部分。為更好地理解本發(fā)明的優(yōu)點(diǎn)和特征,請(qǐng)參照以下描述和附圖。
【專利附圖】
【附圖說(shuō)明】
[0007]在說(shuō)明書(shū)結(jié)尾處的權(quán)利要求中特別指出并明確要求了本發(fā)明的主題。從以下結(jié)合附圖的詳細(xì)描述中本發(fā)明的上述和其它特征、以及優(yōu)點(diǎn)是明顯的,在附圖中:
[0008]圖1示出了依照一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的框圖;[0009]圖2示出了依照一個(gè)實(shí)施例的存儲(chǔ)設(shè)備的框圖;
[0010]圖3示出了依照一個(gè)替代實(shí)施例的存儲(chǔ)設(shè)備的框圖;以及
[0011]圖4示出了依照一個(gè)實(shí)施例的用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法的流程圖。
【具體實(shí)施方式】
[0012]實(shí)施例是針對(duì)具有主處理器和一個(gè)或多個(gè)具有片上流量?jī)?yōu)先化的主動(dòng)存儲(chǔ)(active memory)設(shè)備的計(jì)算機(jī)系統(tǒng)。存儲(chǔ)器中的功率和時(shí)延是影響系統(tǒng)性能和能量的重要因素。在示例性實(shí)施例中,存儲(chǔ)器流量的優(yōu)先化減少了帶寬競(jìng)爭(zhēng)和功率,以提高系統(tǒng)性能。每個(gè)主動(dòng)存儲(chǔ)設(shè)備可包括連接來(lái)自主處理器、多個(gè)處理元件、以及多個(gè)存儲(chǔ)控制器的若干鏈路的交叉互連開(kāi)關(guān)的片上網(wǎng)絡(luò)??衫萌舾商卣饕栽鰪?qiáng)存儲(chǔ)器流量?jī)?yōu)先化。流量?jī)?yōu)先化可以通過(guò)在每個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的源處通過(guò)關(guān)鍵度(critical ity)和進(jìn)展的硬件或軟件指示來(lái)本地設(shè)置優(yōu)先級(jí),以分布式的方式進(jìn)行管理,或者通過(guò)片上進(jìn)展監(jiān)視器來(lái)全局控制進(jìn)展,以集中式的方式進(jìn)行管理。流量?jī)?yōu)先化管理可實(shí)現(xiàn)在處理元件中,實(shí)現(xiàn)在交叉互連中,和/或?qū)崿F(xiàn)在存儲(chǔ)器控制器中。
[0013]在實(shí)施例中,處理元件能夠執(zhí)行各種任務(wù),諸如算術(shù)運(yùn)算、加載、存儲(chǔ)和遞減。每個(gè)處理元件可執(zhí)行被加載到車道指令緩沖器(lane instruction buffer)中的指令序列,以卸載主處理器對(duì)在主動(dòng)存儲(chǔ)設(shè)備中訪問(wèn)的數(shù)據(jù)所執(zhí)行的操作。多個(gè)處理元件可訪問(wèn)每個(gè)存儲(chǔ)設(shè)備中的存儲(chǔ)器。
[0014]在一個(gè)實(shí)施例中,每個(gè)主動(dòng)存儲(chǔ)設(shè)備包括組成三維(3D)存儲(chǔ)設(shè)備的多個(gè)存儲(chǔ)器層,其中存儲(chǔ)芯片的各個(gè)列形成與存儲(chǔ)器控制器通信的?;驇?kù)(vault)。在一個(gè)實(shí)施例中,多個(gè)存儲(chǔ)器庫(kù)位于主動(dòng)存儲(chǔ)設(shè)備上,其中每個(gè)庫(kù)具有各自的存儲(chǔ)器控制器。棧還可包括被配置為與主動(dòng)存儲(chǔ)設(shè)備中的存儲(chǔ)器和其它處理元件進(jìn)行通信的處理元件。在其它實(shí)施例中,處理元件是與存儲(chǔ)器棧物理分離的,但是仍是主動(dòng)存儲(chǔ)設(shè)備的一部分,其中處理元件被放入池中并且可以用于使用所述設(shè)備內(nèi)的任何存儲(chǔ)器棧來(lái)執(zhí)行指令。在一個(gè)實(shí)施例中,處理元件通過(guò)開(kāi)關(guān)的交叉互連和存儲(chǔ)器控制器來(lái)訪問(wèn)庫(kù)中的被選地址。在一個(gè)實(shí)施例中,多個(gè)存儲(chǔ)設(shè)備、棧以及處理元件可經(jīng)由通過(guò)耦合多個(gè)交叉互連所形成的互連網(wǎng)絡(luò)進(jìn)行通信。在實(shí)施例中,存儲(chǔ)器棧包括堆疊在一起的多個(gè)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM)管芯(die),其中每個(gè)DRAM管芯分成若干存儲(chǔ)體(bank)。此外,在示例中,在每個(gè)管芯中的垂直排列的一組存儲(chǔ)體可被稱為由庫(kù)控制器或存儲(chǔ)器控制器訪問(wèn)的庫(kù)。
[0015]實(shí)施例包括具有存儲(chǔ)器控制器和處理元件的多個(gè)存儲(chǔ)器庫(kù),其被稱為主動(dòng)存儲(chǔ)設(shè)備。主動(dòng)存儲(chǔ)設(shè)備可執(zhí)行使用存儲(chǔ)設(shè)備內(nèi)的多個(gè)位置(例如,存儲(chǔ)在特定地址的數(shù)據(jù))作為操作數(shù)的一組復(fù)雜的操作。提供了一個(gè)過(guò)程,由此對(duì)存儲(chǔ)設(shè)備內(nèi)的這些操作數(shù)自主執(zhí)行指令和操作。指令和操作可被存儲(chǔ)在存儲(chǔ)設(shè)備自身內(nèi),并且不從主處理器發(fā)送,其中所存儲(chǔ)的指令被提供給處理元件以便由存儲(chǔ)設(shè)備中的處理元件進(jìn)行處理。在一個(gè)實(shí)施例中,處理元件是可編程引擎,其包含車道指令緩沖器,指令單元(包括分支能力和指令解碼),矢量、標(biāo)量和屏蔽寄存器文件的混合,用于在存儲(chǔ)器和寄存器文件之間移動(dòng)數(shù)據(jù)的多個(gè)加載/存儲(chǔ)單元,以及用于各種數(shù)據(jù)類型的算術(shù)和邏輯處理的多個(gè)執(zhí)行單元。在處理元件中還包括用于將虛擬地址轉(zhuǎn)換或翻譯成物理地址的地址轉(zhuǎn)換能力,對(duì)存儲(chǔ)器和處理元件之間的數(shù)據(jù)移動(dòng)進(jìn)行排序的統(tǒng)一加載/存儲(chǔ)隊(duì)列,以及用于與主處理器通信的處理器通信單元。[0016]圖1示出了依照一個(gè)實(shí)施例的包括一個(gè)或多個(gè)具有片上流量?jī)?yōu)先化的主動(dòng)處理器設(shè)備的計(jì)算機(jī)系統(tǒng)的框圖。在圖1中示出的計(jì)算機(jī)系統(tǒng)100包括計(jì)算機(jī)處理器102、存儲(chǔ)器106、包括開(kāi)關(guān)的交叉互連的互連網(wǎng)絡(luò)104、存儲(chǔ)器控制器105、以及處理元件108。
[0017]在一個(gè)實(shí)施例中,存儲(chǔ)器106和存儲(chǔ)器控制器105經(jīng)由互連網(wǎng)絡(luò)104耦合到計(jì)算機(jī)處理器102。在計(jì)算機(jī)處理器102上執(zhí)行的過(guò)程可以通過(guò)互連網(wǎng)絡(luò)104發(fā)出存儲(chǔ)器訪問(wèn)請(qǐng)求,或者向處理元件108提供導(dǎo)致存儲(chǔ)器訪問(wèn)請(qǐng)求的指令。在一個(gè)示例中,寫(xiě)請(qǐng)求包含將被寫(xiě)到存儲(chǔ)器106的數(shù)據(jù),以及標(biāo)識(shí)存儲(chǔ)器106中該數(shù)據(jù)將被寫(xiě)到的位置的實(shí)地址。
[0018]在一個(gè)實(shí)施例中,從計(jì)算機(jī)處理器102通過(guò)互連網(wǎng)絡(luò)104發(fā)送到處理元件108的命令指定了包括設(shè)置動(dòng)作、執(zhí)行動(dòng)作和完成通知?jiǎng)幼鞯闹噶钚蛄?。設(shè)置動(dòng)作可包括配置動(dòng)作,諸如直接從存儲(chǔ)器106將配置信息加載到處理元件108的命令。通過(guò)在存儲(chǔ)器106中提供配置信息,處理元件108能夠在接收到命令后被適當(dāng)?shù)嘏渲?。在一個(gè)實(shí)施例中,配置信息可包括用于在虛擬地址和存儲(chǔ)器中的實(shí)地址之間進(jìn)行轉(zhuǎn)換的信息。此外,配置信息可包括通過(guò)確保準(zhǔn)確性和一致性來(lái)維持在處理元件和請(qǐng)求者(例如,主處理器)之間的存儲(chǔ)器映射和轉(zhuǎn)換的一致性的信息。設(shè)置動(dòng)作還可包括從存儲(chǔ)器106將代碼(諸如指令序列)加載到處理元件108。執(zhí)行動(dòng)作包括執(zhí)行包括加載、存儲(chǔ)、算術(shù)/邏輯和其它指令的代碼。
[0019]在實(shí)施例的另外模式中,處理元件108通過(guò)互連網(wǎng)絡(luò)104耦合到主處理器或計(jì)算機(jī)處理器102,并且從計(jì)算機(jī)處理器102接收命令。命令對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的指令,以在存儲(chǔ)器106上進(jìn)行訪問(wèn)和執(zhí)行操作。在該實(shí)施例中,(一個(gè)或多個(gè))指令執(zhí)行并形成對(duì)應(yīng)于存儲(chǔ)器106中的位置的虛擬地址。存儲(chǔ)器控制器105和/或處理元件108在存儲(chǔ)器106內(nèi)的實(shí)地址處存儲(chǔ)數(shù)據(jù)。在一個(gè)實(shí)施例中,當(dāng)存儲(chǔ)或取回?cái)?shù)據(jù)時(shí),處理元件108將虛擬地址映射到存儲(chǔ)器106中的實(shí)地址。計(jì)算機(jī)處理器102向存儲(chǔ)器106提供命令,其中處理元件108接收該命令并從存儲(chǔ)器106中取來(lái)對(duì)應(yīng)的指令。在一個(gè)實(shí)施例中,處理元件108接收作為命令一部分的任務(wù),其中可將該任務(wù)的一部分發(fā)回給計(jì)算機(jī)處理器102以便執(zhí)行。由于若干因素(諸如數(shù)據(jù)位置和對(duì)功能的支持),計(jì)算機(jī)處理器102可能更適合于執(zhí)行由所述任務(wù)指定的功能。在一個(gè)實(shí)施例中,存儲(chǔ)器106、存儲(chǔ)器控制器105、互連網(wǎng)絡(luò)104、以及處理元件108被合并到與主處理器102通信的單個(gè)設(shè)備(諸如主動(dòng)存儲(chǔ)設(shè)備)中。
[0020]系統(tǒng)100是可用于執(zhí)行本文所描述的處理的配置的一種示例。雖然系統(tǒng)100被示出只有單個(gè)存儲(chǔ)器106、存儲(chǔ)器控制器105、互連網(wǎng)絡(luò)104、處理元件108、以及計(jì)算機(jī)處理器102,但是應(yīng)當(dāng)理解,其它實(shí)施例還可在具有兩個(gè)或更多個(gè)存儲(chǔ)器106、存儲(chǔ)器控制器105、處理元件108或計(jì)算機(jī)處理機(jī)102的其它系統(tǒng)中運(yùn)行。在一個(gè)實(shí)施例中,存儲(chǔ)器106、存儲(chǔ)器控制器105、互連網(wǎng)絡(luò)104、處理元件108、以及計(jì)算機(jī)處理器102未位于同一計(jì)算機(jī)內(nèi)。例如,存儲(chǔ)器106、處理元件108以及存儲(chǔ)器控制器105可位于一個(gè)物理位置(例如,在存儲(chǔ)器模塊上)中,而計(jì)算機(jī)處理器102位于在另一個(gè)物理位置中(例如,計(jì)算機(jī)處理器102經(jīng)由互連網(wǎng)絡(luò)104或其它網(wǎng)絡(luò)訪問(wèn)存儲(chǔ)器控制器105)。另外,本文所描述的處理的部分可跨域存儲(chǔ)器106、存儲(chǔ)器控制器105、互連網(wǎng)絡(luò)104、處理元件108和計(jì)算機(jī)處理器102中的一個(gè)或多個(gè)。
[0021]存儲(chǔ)器106可存儲(chǔ)一個(gè)或多個(gè)不同的程序,其每個(gè)包含用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的有序列表。例如,存儲(chǔ)在存儲(chǔ)器106中的軟件可包括操作系統(tǒng)(未示出)、源代碼112、以及一個(gè)或多個(gè)應(yīng)用。如圖1所示,存儲(chǔ)器106存儲(chǔ)源代碼112和編譯器110。替代地,編譯器110可在系統(tǒng)100之外的系統(tǒng)上被存儲(chǔ)和執(zhí)行,編譯器110為系統(tǒng)100產(chǎn)生可執(zhí)行程序(諸如可執(zhí)行體114)。編譯器110包括許多功能組件,其用于實(shí)現(xiàn)如本文將進(jìn)一步描述的示例性實(shí)施例的一個(gè)或多個(gè)特征、過(guò)程、方法、功能以及操作。在一個(gè)實(shí)施例中,編譯器110將源代碼112編譯和鏈接成將在處理元件108內(nèi)執(zhí)行的可執(zhí)行體114。為改進(jìn)流量?jī)?yōu)先化,編譯器Iio可被配置為當(dāng)為處理元件108生成可執(zhí)行體114時(shí),確定加載和使用與來(lái)自處理元件108的存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)之間的加載至使用距離。編譯器110可在用于處理元件108的可執(zhí)行體114的可執(zhí)行指令中設(shè)置加載至使用距離提示。基于加載至使用識(shí)別的松弛(slack)可以導(dǎo)致對(duì)于較大的加載至使用距離使用請(qǐng)求準(zhǔn)許協(xié)議將存儲(chǔ)器訪問(wèn)請(qǐng)求格式化為較低功率的非推測(cè)性請(qǐng)求,或?qū)τ谳^小的加載至使用距離將其格式化為較高功率的推測(cè)性請(qǐng)求。
[0022]圖2是根據(jù)一個(gè)實(shí)施例的存儲(chǔ)設(shè)備200的框圖。在一個(gè)實(shí)施例中,存儲(chǔ)設(shè)備200是包括耦合到交叉互連204的處理元件(PE) 202A和202B (—般稱為處理元件或多個(gè)處理元件202)的主動(dòng)存儲(chǔ)設(shè)備。存儲(chǔ)設(shè)備200還包括分別耦合到交叉互連204以及耦合到存儲(chǔ)器庫(kù)208A和208B (—般稱為存儲(chǔ)器庫(kù)或多個(gè)存儲(chǔ)器庫(kù)208)的存儲(chǔ)器控制器206A和206B(一般稱為存儲(chǔ)器控制器或多個(gè)存儲(chǔ)器控制器206)。存儲(chǔ)設(shè)備200還可包括一個(gè)或多個(gè)耦合到交叉互連204的附加處理元件202N。一個(gè)或多個(gè)附加元件210還可耦合到交叉互連204,諸如存儲(chǔ)器控制器206、存儲(chǔ)器庫(kù)208、以及諸如圖1的計(jì)算機(jī)處理器102的主處理器的附加組。存儲(chǔ)器庫(kù)208A和208B每一個(gè)都可包括獨(dú)立并行可訪問(wèn)的以三維塊區(qū)域排列的多層棧式可尋址存儲(chǔ)器元件。
[0023]交叉互連204使用開(kāi)關(guān)的網(wǎng)絡(luò)(未示出)提供用于在存儲(chǔ)設(shè)備200的部分之間通信的快速和高帶寬路徑。交叉互連204包括被配置為接收存儲(chǔ)器訪問(wèn)請(qǐng)求的仲裁器212。每一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求都可包括路由標(biāo)簽和優(yōu)先級(jí)值。仲裁器212基于比較存儲(chǔ)器訪問(wèn)請(qǐng)求相互之間的優(yōu)先級(jí)值在存儲(chǔ)器訪問(wèn)請(qǐng)求之間進(jìn)行仲裁。仲裁器212可支持用于非推測(cè)性請(qǐng)求的請(qǐng)求準(zhǔn)許協(xié)議,其中仲裁器212接收調(diào)度請(qǐng)求并用指示請(qǐng)求資源(例如,處理元件202)何時(shí)將被準(zhǔn)許訪問(wèn)以通過(guò)交叉互連204傳遞通信的調(diào)度槽進(jìn)行響應(yīng)。仲裁器212還可支持推測(cè)性請(qǐng)求協(xié)議。如果仲裁器212接收到推測(cè)性請(qǐng)求并且通過(guò)交叉互連204的路徑是可用的,則可立即準(zhǔn)許該推測(cè)性請(qǐng)求;否則,可以拒絕該推測(cè)性請(qǐng)求。被仲裁器212拒絕的請(qǐng)求可在本地進(jìn)行排隊(duì)以重試或者請(qǐng)求資源可負(fù)責(zé)重新發(fā)送該請(qǐng)求。
[0024]在存儲(chǔ)器控制器206的隊(duì)列214中收集成功通過(guò)交叉互連204路由的存儲(chǔ)器訪問(wèn)請(qǐng)求。每個(gè)存儲(chǔ)器控制器206可以具有單獨(dú)的隊(duì)列,以存儲(chǔ)用于其各自庫(kù)208的存儲(chǔ)器訪問(wèn)請(qǐng)求。例如,存儲(chǔ)器控制器206A包括隊(duì)列214A以緩沖到由存儲(chǔ)器控制器206A控制的棧式存儲(chǔ)器芯片的庫(kù)208A的存儲(chǔ)器訪問(wèn)請(qǐng)求,以及存儲(chǔ)器控制器206B包括隊(duì)列214B以緩沖到由存儲(chǔ)器控制器206B控制的棧式存儲(chǔ)器芯片的庫(kù)208B的存儲(chǔ)器訪問(wèn)請(qǐng)求。
[0025]每個(gè)處理元件202包括支持流量?jī)?yōu)先化的特征。例如,處理元件202A包括車道指令緩沖器(LIB) 216A、進(jìn)展計(jì)數(shù)器(PC) 218A、加載存儲(chǔ)隊(duì)列(LSQ) 220A、以及存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器(PR)222A。類似的,處理元件202B包括車道指令緩沖器216B、進(jìn)展計(jì)數(shù)器218B、加載存儲(chǔ)隊(duì)列220B、以及存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222B。車道指令緩沖器216A和216B包括用于由處理元件202A和202B中的每一個(gè)處理元件執(zhí)行的指令序列,諸如圖1的可執(zhí)行體114的部分。[0026]處理元件202A和202B中的每一個(gè)處理元件可以以不同的速率在指令中前進(jìn)。當(dāng)?shù)竭_(dá)執(zhí)行檢查點(diǎn)或者執(zhí)行了預(yù)定數(shù)目的指令時(shí),處理元件202A和202B中的每一個(gè)處理元件可以更新其各自的進(jìn)展計(jì)數(shù)器218A和218B。在進(jìn)展計(jì)數(shù)器218A和218B中的變化可導(dǎo)致存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222A和222B中的變化。例如,進(jìn)展計(jì)數(shù)器218A和218B中的較低進(jìn)展指示可導(dǎo)致存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222A和222B中的較高優(yōu)先級(jí)值,而進(jìn)展計(jì)數(shù)器218A和218B中的較高進(jìn)展指示可導(dǎo)致存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222A和222B中的較低優(yōu)先級(jí)值以給予在指令中前進(jìn)較慢的處理元件202優(yōu)先權(quán)。
[0027]存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222A和222B可基于相對(duì)于加載存儲(chǔ)隊(duì)列220A和220B的加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度進(jìn)行調(diào)整,其中加載存儲(chǔ)隊(duì)列220A和220B緩沖存儲(chǔ)器訪問(wèn)請(qǐng)求序列,以及在處理元件202和存儲(chǔ)器控制器206之間發(fā)送的數(shù)據(jù)。存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222k和222B還可基于指示代碼段的關(guān)鍵度或在指令緩沖器216A和216B中的指令中的存儲(chǔ)器訪問(wèn)請(qǐng)求的加載至使用距離的應(yīng)用代碼或編譯器提示來(lái)進(jìn)行調(diào)整。
[0028]雖然圖2只示出了存儲(chǔ)設(shè)備200中的兩個(gè)處理元件202A和202B、存儲(chǔ)器控制器206A和206B、以及存儲(chǔ)器庫(kù)208A和208B,但是存儲(chǔ)設(shè)備200中的元件的數(shù)量可以變化。在一個(gè)示例中,處理單元202的數(shù)量可以大于存儲(chǔ)器庫(kù)208的數(shù)量。在另一個(gè)實(shí)施例中,存儲(chǔ)設(shè)備200可包括少于存儲(chǔ)器庫(kù)208的處理元件202。在實(shí)施例中,處理元件202被放入池中并可用于訪問(wèn)存儲(chǔ)設(shè)備200中的任何存儲(chǔ)器庫(kù)208。例如,存儲(chǔ)設(shè)備200可包括十六個(gè)存儲(chǔ)器庫(kù)208和存儲(chǔ)器控制器206,但是只有八個(gè)處理元件202。這八個(gè)處理元件202被放入池中,并且用作用于訪問(wèn)耦合到交叉互連204的任何存儲(chǔ)器庫(kù)208的資源。在另一個(gè)示例中,存儲(chǔ)設(shè)備可以是被動(dòng)的,其中存儲(chǔ)設(shè)備由耦合到交叉互連204的外部請(qǐng)求者(如圖1的計(jì)算機(jī)處理器102)進(jìn)行控制。
[0029]圖3示出了依照一個(gè)替代實(shí)施例的存儲(chǔ)設(shè)備300的框圖。如圖2的存儲(chǔ)設(shè)備200那樣,圖3的存儲(chǔ)設(shè)備300是主動(dòng)存儲(chǔ)設(shè)備,其包括處理單元202A和202B、一個(gè)或多個(gè)附加處理元件202N、交叉互連204、耦合到存儲(chǔ)器庫(kù)208A和208B的存儲(chǔ)器控制器206A和206B、一個(gè)或多個(gè)附加元件210、仲裁器212、隊(duì)列214A和214B、車道指令緩沖器216A和216B、進(jìn)展計(jì)數(shù)器218A和218B、加載存儲(chǔ)隊(duì)列220A和220B、以及存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222k和222B。另外,存儲(chǔ)設(shè)備300還包括用于全局流量?jī)?yōu)先化的進(jìn)展監(jiān)視器(PM) 302。
[0030]進(jìn)展監(jiān)視器302接收進(jìn)展計(jì)數(shù)器218A和218B的進(jìn)展計(jì)數(shù)器值,以及來(lái)自存儲(chǔ)設(shè)備300中的任何其他進(jìn)展計(jì)數(shù)器218的進(jìn)展計(jì)數(shù)器值。進(jìn)展監(jiān)視器302比較進(jìn)展計(jì)數(shù)器值,并調(diào)整存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222k和222B,以及存儲(chǔ)設(shè)備300中的其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222,以對(duì)于具有較少進(jìn)展的處理元件202增加優(yōu)先級(jí),以及對(duì)于具有較多進(jìn)展的處理元件202減少優(yōu)先級(jí)。全局地調(diào)整存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222能夠?qū)е聦?duì)于超前運(yùn)行的任務(wù)減少功率,并且對(duì)于落后的任務(wù)提供較小的時(shí)延,以平衡存儲(chǔ)設(shè)備300內(nèi)的整體進(jìn)展。
[0031]圖4是用于諸如在圖1-3的系統(tǒng)100和存儲(chǔ)設(shè)備200和300中的存儲(chǔ)器流量?jī)?yōu)先化的示例性過(guò)程的流程圖400。在框402,將包括優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求從存儲(chǔ)設(shè)備(諸如存儲(chǔ)設(shè)備200或300)中的處理元件202發(fā)送到交叉互連204。所述優(yōu)先級(jí)值是基于處理元件202中的存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222來(lái)設(shè)置的。
[0032]在框404,存儲(chǔ)器訪問(wèn)請(qǐng)求通過(guò)交叉互連204路由到與該存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)設(shè)備中的存儲(chǔ)器控制器206。在交叉互連204處可以接收該存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求。仲裁器212基于將該存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求的一個(gè)或多個(gè)優(yōu)先級(jí)值進(jìn)行比較,在該存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求之間進(jìn)行仲裁。
[0033]在框406,在存儲(chǔ)器控制器206處接收存儲(chǔ)器訪問(wèn)請(qǐng)求以訪問(wèn)由存儲(chǔ)器控制器206控制的棧式存儲(chǔ)器芯片的庫(kù)208中的存儲(chǔ)器。在框408,存儲(chǔ)器控制器206將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在存儲(chǔ)器控制器206的隊(duì)列214中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求,其中所述多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)自所述處理元件202和一個(gè)或多個(gè)其它處理元件。
[0034]在框410,存儲(chǔ)器控制器206基于最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。存儲(chǔ)器控制器206可調(diào)整隊(duì)列214中的存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)。例如,存儲(chǔ)器控制器206可接收加載存儲(chǔ)隊(duì)列220已經(jīng)到達(dá)相對(duì)于加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度的閾值水平的指示,并且基于所述指示增加隊(duì)列214中來(lái)自處理元件202的存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值。存儲(chǔ)器控制器206還可基于下列因素中的一個(gè)或多個(gè)來(lái)調(diào)整存儲(chǔ)在隊(duì)列214中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值:隊(duì)列214中來(lái)自同一個(gè)處理元件202的存儲(chǔ)器訪問(wèn)請(qǐng)求的數(shù)量;來(lái)自同一個(gè)處理元件202的最后到達(dá)的存儲(chǔ)器訪問(wèn)請(qǐng)求的最新優(yōu)先級(jí);以及隊(duì)列214中的存儲(chǔ)器訪問(wèn)請(qǐng)求的年齡。
[0035]存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222可以基于各種因素進(jìn)行調(diào)整以動(dòng)態(tài)地修改存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)。例如,存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222可以基于指示代碼段的關(guān)鍵度的應(yīng)用代碼提示來(lái)進(jìn)行調(diào)整。存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222還可基于來(lái)自編譯器110的加載至使用距離提示來(lái)進(jìn)行調(diào)整,其中較大的加載至使用距離與較低優(yōu)先級(jí)相關(guān)聯(lián),以及較小的加載至使用距離與較高優(yōu)先級(jí)相關(guān)聯(lián)??苫谳^低優(yōu)先級(jí)值,將存儲(chǔ)器訪問(wèn)請(qǐng)求作為非推測(cè)性請(qǐng)求進(jìn)行處理,以及基于較高優(yōu)先級(jí)值,將存儲(chǔ)器訪問(wèn)請(qǐng)求作為推測(cè)性請(qǐng)求進(jìn)行處理。存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222還可基于相對(duì)于處理元件202中的加載存儲(chǔ)隊(duì)列220的加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度進(jìn)行調(diào)整。存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222還可基于進(jìn)展計(jì)數(shù)器218的值進(jìn)行調(diào)整,其中進(jìn)展計(jì)數(shù)器218基于在處理元件202中所執(zhí)行的指令的相對(duì)數(shù)量來(lái)進(jìn)行更新。基于進(jìn)展計(jì)數(shù)器218對(duì)存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器222的調(diào)整可由處理元件202本地進(jìn)行管理,或由進(jìn)展監(jiān)視器302全局進(jìn)行管理。
[0036]技術(shù)效果包括減少時(shí)延和功率,同時(shí)平衡通過(guò)存儲(chǔ)器控制器和交叉互連訪問(wèn)共享存儲(chǔ)器庫(kù)的存儲(chǔ)設(shè)備的處理元件中的計(jì)算。
[0037]本文所使用的術(shù)語(yǔ)僅是出于描述特定實(shí)施例的目的,并且不是旨在限制本發(fā)明。如本文所使用的,單數(shù)形式“一”、“一個(gè)”和“所述”旨在也包括復(fù)數(shù)形式,除非上下文中以其他方式清楚地指出。還應(yīng)當(dāng)理解,當(dāng)在本說(shuō)明書(shū)中使用時(shí),術(shù)語(yǔ)“包含”和/或“包括”指定存在闡明的特征、整數(shù)、步驟、操作、元素、和/或組件,但是不排除存在或附加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元素組件、和/或其組合。
[0038]在下面的權(quán)利要求中的所有裝置或步驟加功能元件的對(duì)應(yīng)的結(jié)構(gòu)、材料、動(dòng)作、以及等同物旨在包括用于與如明確要求的其它所要求的元件組合執(zhí)行功能的任何結(jié)構(gòu)、材料、或動(dòng)作。出于說(shuō)明和描述的目的已經(jīng)提供了本發(fā)明的描述,但是不是旨在窮盡或?qū)⒈景l(fā)明限制于所公開(kāi)的形式。對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不背離本發(fā)明的范圍和精神的前提下,許多修改和變化將是明顯的。所選擇和描述的實(shí)施例是為了更好的解釋本發(fā)明的原理和實(shí)際應(yīng)用,以及使得本領(lǐng)域的其它普通技術(shù)人員能夠理解具有如適合于所預(yù)期的特定使用的各種修改的各種實(shí)施例的本發(fā)明。
[0039]進(jìn)而,如所屬【技術(shù)領(lǐng)域】的技術(shù)人員所知道,本公開(kāi)的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本公開(kāi)的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0040]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0041]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0042]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0043]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本公開(kāi)操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0044]以上將參照根據(jù)本公開(kāi)實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本公開(kāi)。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0045]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0046]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中所指定的功能/動(dòng)作的過(guò)程。
[0047]附圖中的流程圖和框圖顯示了根據(jù)本公開(kāi)的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
【權(quán)利要求】
1.一種用于存儲(chǔ)設(shè)備中的流量?jī)?yōu)先化的方法,所述方法包含: 將包含優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求從所述存儲(chǔ)設(shè)備中的處理元件發(fā)送到所述存儲(chǔ)設(shè)備中的交叉互連; 通過(guò)所述交叉互連,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到所述存儲(chǔ)設(shè)備中與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)器控制器; 在所述存儲(chǔ)控制器處接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求; 將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求;以及 由所述存儲(chǔ)器控制器基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的方法,還包含: 基于在所述處理元件中的存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,設(shè)置所述優(yōu)先級(jí)值。
3.根據(jù)權(quán)利要求2所述的方法,還包含: 基于指示代碼段的關(guān)鍵度的應(yīng)用代碼提示,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
4.根據(jù)權(quán)利要求2 所述的方法,還包含: 基于來(lái)自編譯器的加載至使用距離提示,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器; 基于較低優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為非推測(cè)性請(qǐng)求進(jìn)行處理;以及 基于較高優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為推測(cè)性請(qǐng)求進(jìn)行處理。
5.根據(jù)權(quán)利要求2所述的方法,還包含: 基于相對(duì)于所述處理元件中的加載存儲(chǔ)隊(duì)列的加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
6.根據(jù)權(quán)利要求5所述的方法,還包含: 在所述存儲(chǔ)器控制器處接收所述加載存儲(chǔ)隊(duì)列已經(jīng)到達(dá)相對(duì)于所述加載存儲(chǔ)隊(duì)列容量的所述加載存儲(chǔ)隊(duì)列深度的閾值水平的指示;以及 基于所述指示,增加所述存儲(chǔ)器控制器的所述隊(duì)列中的來(lái)自所述處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值。
7.根據(jù)權(quán)利要求2所述的方法,還包含: 基于在所述處理元件中所執(zhí)行的指令的相對(duì)數(shù)目,更新所述處理元件中的進(jìn)展計(jì)數(shù)器;以及 基于所述進(jìn)展計(jì)數(shù)器,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
8.根據(jù)權(quán)利要求7所述的方法,還包含: 在進(jìn)展監(jiān)視器處接收所述進(jìn)展計(jì)數(shù)器的進(jìn)展計(jì)數(shù)器值; 將所述進(jìn)展計(jì)數(shù)器值與從一個(gè)或多個(gè)其它處理元件接收的一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器值進(jìn)行比較;以及 調(diào)整所述處理元件的所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器和所述一個(gè)或多個(gè)其它處理元件的一個(gè)或多個(gè)其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,以便為具有較少進(jìn)展的處理元件增加優(yōu)先級(jí),以及為具有較多進(jìn)展的處理元件減少優(yōu)先級(jí)。
9.根據(jù)權(quán)利要求1所述的方法,還包含: 在所述交叉互連處接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求;以及基于將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值與所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求的一個(gè)或多個(gè)優(yōu)先級(jí)值進(jìn)行比較,在所述交叉互連中在所述存儲(chǔ)器訪問(wèn)請(qǐng)求和所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求之間進(jìn)行仲裁。
10.根據(jù)權(quán)利要求1所述的方法,還包含: 基于下列因素中的一個(gè)或多個(gè),調(diào)整存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的所述多個(gè)存儲(chǔ)訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值: 在所述隊(duì)列中的來(lái)自同一處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的數(shù)目; 來(lái)自同一處理元件的最后到達(dá)的存儲(chǔ)器訪問(wèn)請(qǐng)求的最新優(yōu)先級(jí);以及 所述隊(duì)列中的所述存儲(chǔ)器訪問(wèn)請(qǐng)求的年齡。
11.一種存儲(chǔ)設(shè)備,包含: 耦合到交叉互連的處理元件,所述處理元件被配置為將包含優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求發(fā)送到所述交叉互連; 所述交叉互連,其被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)器控制器;以及 所述存儲(chǔ)器控制器,其耦合到存儲(chǔ)器和所述交叉互連,所述存儲(chǔ)器控制器包含隊(duì)列,并且被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求并基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求。
12.根據(jù)權(quán)利要求11所述的存儲(chǔ)設(shè)備,其中所述處理元件還包含存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,并且所述處理元件進(jìn)一步被配置為基于在所述處理元件中的所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,設(shè)置所述優(yōu)先級(jí)值。
13.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中基于指示代碼段的關(guān)鍵度的應(yīng)用代碼提示,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
14.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理元件進(jìn)一步被配置為: 基于來(lái)自編譯器的加載至使用距離提示,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器; 基于較低優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為非推測(cè)性請(qǐng)求進(jìn)行處理;以及 基于較高優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為推測(cè)性請(qǐng)求進(jìn)行處理。
15.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理元件還包含加載存儲(chǔ)隊(duì)列,并且所述處理元件進(jìn)一步被配置為基于相對(duì)于所述加載存儲(chǔ)隊(duì)列的加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度來(lái)調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
16.根據(jù)權(quán)利要求15所述的存儲(chǔ)設(shè)備,其中所述存儲(chǔ)器控制器進(jìn)一步被配置為: 接收所述加載存儲(chǔ)隊(duì)列已經(jīng)到達(dá)相對(duì)于所述加載存儲(chǔ)隊(duì)列容量的所述加載存儲(chǔ)隊(duì)列深度的閾值水平的指示;以及 基于所述指示,增加所述存儲(chǔ)器控制器的所述隊(duì)列中的來(lái)自所述處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值。
17.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理元件還包含進(jìn)展計(jì)數(shù)器,并且所述處理元件進(jìn)一步被配置為: 基于在所述處理元件中所執(zhí)行的指令的相對(duì)數(shù)目,更新所述處理元件中的所述進(jìn)展計(jì)數(shù)器;以及基于所述進(jìn)展計(jì)數(shù)器,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
18.根據(jù)權(quán)利要求17所述的存儲(chǔ)設(shè)備,還包含: 一個(gè)或多個(gè)其它處理元件,其包含一個(gè)或多個(gè)其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器和一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器;以及 進(jìn)展監(jiān)視器,其耦合到所述處理元件和所述一個(gè)或多個(gè)其它處理元件,所述進(jìn)展監(jiān)視器被配置為: 接收所述進(jìn)展計(jì)數(shù)器的進(jìn)展計(jì)數(shù)器值以及來(lái)自所述一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器的一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器值; 將所述進(jìn)展計(jì)數(shù)器值與所述一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器值進(jìn)行比較;以及調(diào)整所述處理元件的所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器和所述一個(gè)或多個(gè)其它處理元件的所述一個(gè)或多個(gè)其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,以便為具有較少進(jìn)展的處理元件增加優(yōu)先級(jí),以及為具有較多進(jìn)展的處理元件減少優(yōu)先級(jí)。
19.根據(jù)權(quán)利要求11所述的存儲(chǔ)設(shè)備,其中所述交叉互連還包含仲裁器,所述仲裁器被配置為: 接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求;以及基于將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值與所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求的一個(gè)或多個(gè)優(yōu)先級(jí)值進(jìn)行比較,在所述存儲(chǔ)器訪問(wèn)請(qǐng)求和所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求之間進(jìn)行仲裁。
20.根據(jù)權(quán)利要求11所述的存儲(chǔ)設(shè)備,其中所述存儲(chǔ)器控制器進(jìn)一步被配置為基于下列因素中的一個(gè)或多個(gè),調(diào)整存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的所述多個(gè)存儲(chǔ)訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值: 在所述隊(duì)列中的來(lái)自同一處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的數(shù)目; 來(lái)自同一處理元件的最后到達(dá)的存儲(chǔ)器訪問(wèn)請(qǐng)求的最新優(yōu)先級(jí);以及 所述隊(duì)列中的所述存儲(chǔ)器訪問(wèn)請(qǐng)求的年齡。
21.一種存儲(chǔ)系統(tǒng),包含: 耦合到存儲(chǔ)設(shè)備的交叉互連的處理元件,以及耦合到所述存儲(chǔ)設(shè)備的所述交叉互連的一個(gè)或多個(gè)其它處理元件,所述處理元件被配置為將包含優(yōu)先級(jí)值的存儲(chǔ)器訪問(wèn)請(qǐng)求發(fā)送到所述交叉互連;以及 所述存儲(chǔ)設(shè)備,其包含: 多個(gè)存儲(chǔ)器控制器; 耦合到所述多個(gè)存儲(chǔ)器控制器中的每一個(gè)存儲(chǔ)器控制器的棧式存儲(chǔ)器的庫(kù); 所述交叉互連,其被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求路由到所述多個(gè)存儲(chǔ)器控制器中的與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的存儲(chǔ)器控制器;以及 與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的所述存儲(chǔ)器控制器,其包含隊(duì)列,并且被配置為將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值與存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值進(jìn)行比較,以確定最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求并基于所述最高優(yōu)先級(jí)的存儲(chǔ)器訪問(wèn)請(qǐng)求執(zhí)行下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求,所述多個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)自所述處理元件和所述一個(gè)或多個(gè)其它處理元件。
22.根據(jù)權(quán)利要求21所述的存儲(chǔ)系統(tǒng),其中所述處理元件還包含存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,并且所述處理元件進(jìn)一步被配置為基于所述處理元件中的所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,設(shè)置所述優(yōu)先級(jí)值。
23.根據(jù)權(quán)利要求22所述的存儲(chǔ)系統(tǒng),其中基于指示代碼段的關(guān)鍵度的應(yīng)用代碼提示,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
24.根據(jù)權(quán)利要求22所述的存儲(chǔ)系統(tǒng),還包含編譯器,其被配置為當(dāng)生成用于所述處理元件的可執(zhí)行指令時(shí),確定與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的數(shù)據(jù)的加載和使用之間的加載至使用距離,以及在用于所述處理元件的所述可執(zhí)行指令中設(shè)置加載至使用距離提示,其中所述處理元件進(jìn)一步被配置為: 基于來(lái)自所述編譯器的所述加載至使用距離提示來(lái)調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,其中較大的加載至使用距離與較高優(yōu)先級(jí)相關(guān)聯(lián),以及較小加載至使用距離與較低優(yōu)先級(jí)相關(guān)聯(lián); 基于較低優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為非推測(cè)性請(qǐng)求進(jìn)行處理;以及 基于較高優(yōu)先級(jí)值,將所述存儲(chǔ)器訪問(wèn)請(qǐng)求作為推測(cè)性請(qǐng)求進(jìn)行處理。
25.根據(jù)權(quán)利要求22所述的存儲(chǔ)系統(tǒng),其中所述處理元件還包含加載存儲(chǔ)隊(duì)列,并且所述處理元件進(jìn)一步被配置為基于相對(duì)于所述加載存儲(chǔ)隊(duì)列的加載存儲(chǔ)隊(duì)列容量的加載存儲(chǔ)隊(duì)列深度來(lái)調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
26.根據(jù)權(quán)利要求25所述的存儲(chǔ)系統(tǒng),其中與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的所述存儲(chǔ)器控制器進(jìn)一步被配置為: 接收所述加載存儲(chǔ)隊(duì)列已經(jīng)到達(dá)相對(duì)于所述加載存儲(chǔ)隊(duì)列容量的所述加載存儲(chǔ)隊(duì)列深度的閾值水平的指示;以及 基于所述指示,增加所述存儲(chǔ)器控制器的所述隊(duì)列中來(lái)自所述處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的優(yōu)先級(jí)值。
27.根據(jù)權(quán)利要求22所述的存儲(chǔ)系統(tǒng),其中所述處理元件還包含進(jìn)展計(jì)數(shù)器,并且所述處理元件進(jìn)一步被配置為: 基于在所述處理元件中所執(zhí)行的指令的相對(duì)數(shù)目,更新所述處理元件中的所述進(jìn)展計(jì)數(shù)器;以及 基于所述進(jìn)展計(jì)數(shù)器,調(diào)整所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器。
28.根據(jù)權(quán)利要求27所述的存儲(chǔ)系統(tǒng),其中所述一個(gè)或多個(gè)其它處理元件包含一個(gè)或多個(gè)其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器和一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器;并且還包含: 進(jìn)展監(jiān)視器,其耦合到所述處理元件和所述一個(gè)或多個(gè)其它處理元件,所述進(jìn)展監(jiān)視器被配置為: 接收所述進(jìn)展計(jì)數(shù)器的進(jìn)展計(jì)數(shù)器值以及來(lái)自所述一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器的一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器值; 將所述進(jìn)展計(jì)數(shù)器值與所述一個(gè)或多個(gè)其它進(jìn)展計(jì)數(shù)器值進(jìn)行比較;以及 調(diào)整所述處理元件的所述存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器和所述一個(gè)或多個(gè)其它處理元件的所述一個(gè)或多個(gè)其它存儲(chǔ)器請(qǐng)求優(yōu)先級(jí)寄存器,以便為具有較少進(jìn)展的處理元件增加優(yōu)先級(jí),以及為具有較多進(jìn)展的處理元件減少優(yōu)先級(jí)。
29.根據(jù)權(quán)利要求21所述的存儲(chǔ)系統(tǒng),其中所述交叉互連還包含仲裁器,所述仲裁器被配置為:接收所述存儲(chǔ)器訪問(wèn)請(qǐng)求和一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求;以及基于將所述存儲(chǔ)器訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值與所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求的一個(gè)或多個(gè)優(yōu)先級(jí)值進(jìn)行比較,在所述存儲(chǔ)器訪問(wèn)請(qǐng)求和所述一個(gè)或多個(gè)其它存儲(chǔ)器訪問(wèn)請(qǐng)求之間進(jìn)行仲裁。
30.根據(jù)權(quán)利要求21所述的存儲(chǔ)系統(tǒng),其中與所述存儲(chǔ)器訪問(wèn)請(qǐng)求相關(guān)聯(lián)的所述存儲(chǔ)器控制器進(jìn)一步被配置為基于下列因素中的一個(gè)或多個(gè),調(diào)整存儲(chǔ)在所述存儲(chǔ)器控制器的所述隊(duì)列中的所述多個(gè)存儲(chǔ)訪問(wèn)請(qǐng)求的所述優(yōu)先級(jí)值: 在所述隊(duì)列中來(lái)自同一處理元件的存儲(chǔ)器訪問(wèn)請(qǐng)求的數(shù)目; 來(lái)自同一處理元件的最后到達(dá)的存儲(chǔ)器訪問(wèn)請(qǐng)求的最新優(yōu)先級(jí);以及 所述隊(duì)列中的所述 存儲(chǔ)器訪問(wèn)請(qǐng)求的年齡。
【文檔編號(hào)】G06F13/18GK103914412SQ201410007821
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2014年1月8日 優(yōu)先權(quán)日:2013年1月9日
【發(fā)明者】B·M·弗萊舍, T·W·福克斯, H·M·雅各布森, R·奈爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司