存儲(chǔ)器訪(fǎng)問(wèn)期間的數(shù)據(jù)重排序的制作方法
【專(zhuān)利摘要】實(shí)施例包括與重排序從動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)檢索的數(shù)據(jù)相關(guān)聯(lián)的系統(tǒng)、方法和裝置。存儲(chǔ)器控制器可以配置成從中央處理單元(CPU)接收指令并且基于指令從DRAM檢索順序數(shù)據(jù)。存儲(chǔ)器控制器然后可以配置成重排序順序數(shù)據(jù)并且將經(jīng)重排序的數(shù)據(jù)放置在向量寄存器文件的一個(gè)或多個(gè)位置中。
【專(zhuān)利說(shuō)明】
存儲(chǔ)器訪(fǎng)問(wèn)期間的數(shù)據(jù)重排序
技術(shù)領(lǐng)域
[0001 ]本發(fā)明的實(shí)施例一般涉及存儲(chǔ)器訪(fǎng)問(wèn)的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]本文所提供的【背景技術(shù)】描述出于一般地呈現(xiàn)公開(kāi)內(nèi)容的上下文的目的。當(dāng)前提名的發(fā)明人的就在本【背景技術(shù)】章節(jié)中加以描述而言的工作以及在提交時(shí)原本可能未取得現(xiàn)有技術(shù)資格的描述的方面既不明確地也不暗含地被承認(rèn)是針對(duì)本公開(kāi)的現(xiàn)有技術(shù)。除非本文中以其它方式指示,本章節(jié)中所描述的方法不是本公開(kāi)中的權(quán)利要求的現(xiàn)有技術(shù),且不因包含在本章節(jié)中而被承認(rèn)是現(xiàn)有技術(shù)。
[0003]可能要求密集型計(jì)算的許多應(yīng)用以及特別是高性能計(jì)算應(yīng)用(諸如圖形)可能對(duì)向量起作用。例如,數(shù)據(jù)可以被加載到向量寄存器文件中且然后由與彼此并行工作的多個(gè)向量處理單元處理。具體地,可以將數(shù)據(jù)劃分在向量寄存器文件的多個(gè)向量寄存器之間,并且然后,向量處理單元可以處理給定向量寄存器中的數(shù)據(jù)。
[0004]在實(shí)施例中,從多個(gè)存儲(chǔ)器地址檢索數(shù)據(jù)并將數(shù)據(jù)寫(xiě)入到向量寄存器中的過(guò)程可以被稱(chēng)為“聚集”操作。相反,將數(shù)據(jù)從向量寄存器寫(xiě)入到多個(gè)存儲(chǔ)器地址位置中的過(guò)程可以被稱(chēng)為“分散”操作。
【附圖說(shuō)明】
[0005]通過(guò)結(jié)合附圖的以下詳細(xì)描述,將容易理解實(shí)施例。為了便于該描述,相似的附圖標(biāo)記指代相似的結(jié)構(gòu)元件。在附圖的各圖中通過(guò)示例的方式而非通過(guò)限制的方式圖示了實(shí)施例。
[0006]圖1圖示了依照各種實(shí)施例的包括存儲(chǔ)器控制器的示例系統(tǒng)。
[0007]圖2圖示了依照各種實(shí)施例的存儲(chǔ)器重排序操作的示例表。
[0008]圖3圖示了依照各種實(shí)施例的存儲(chǔ)器重排序操作的可替換示例表。
[0009]圖4圖示了依照各種實(shí)施例的用于重排序從存儲(chǔ)器讀取的數(shù)據(jù)的示例過(guò)程。
[0010]圖5圖示了依照各種實(shí)施例的配置成施行本文所描述的過(guò)程的示例系統(tǒng)。
【具體實(shí)施方式】
[0011]在以下詳細(xì)描述中,參照形成其部分的附圖,其中相似的附圖標(biāo)記自始至終指代相似的部分,并且其中通過(guò)圖示的方式示出了可實(shí)踐的實(shí)施例。要理解的是,在不脫離于本公開(kāi)的范圍的情況下,可以利用其它實(shí)施例并且可以做出結(jié)構(gòu)或邏輯改變。因此,以下詳細(xì)描述不應(yīng)在限制的意義上理解,并且實(shí)施例的范圍由隨附權(quán)利要求及其等同物限定。
[0012]本文描述了與順序數(shù)據(jù)的處理相關(guān)聯(lián)的裝置、方法和存儲(chǔ)介質(zhì)。具體地,在遺留系統(tǒng)中,向量寄存器文件可以包括多個(gè)向量寄存器,并且多個(gè)向量處理單元化單元可以配置成處理每一個(gè)相應(yīng)向量寄存器的數(shù)據(jù)。例如,順序數(shù)據(jù)可以被劃分成一系列數(shù)據(jù)“組塊”,并且每一個(gè)組塊可以由不同的向量處理單元來(lái)處理。
[0013]在一些實(shí)施例中,對(duì)于具體向量處理單元而言,處理具體數(shù)據(jù)組塊而非另一數(shù)據(jù)組塊可能是合期望的。在現(xiàn)有遺留系統(tǒng)中,順序數(shù)據(jù)可以從存儲(chǔ)器讀取,并且順序數(shù)據(jù)的每一個(gè)組塊可以被放置到向量寄存器文件的向量寄存器中。接著,可以攪亂各種向量寄存器中的數(shù)據(jù)的次序,使得所期望的數(shù)據(jù)組塊處于向量寄存器文件的所期望的向量寄存器中。最后,數(shù)據(jù)可以由各種向量處理單元來(lái)處理。
[0014]然而,本文中的實(shí)施例提供了一種過(guò)程,其可以提高將數(shù)據(jù)加載到向量處理單元中并處理該數(shù)據(jù)的效率。具體地,在本文所描述的實(shí)施例中,中央處理單元(CPU)可以向與其中存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器(諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))耦合的存儲(chǔ)器控制器發(fā)送命令?;谠撁睿鎯?chǔ)器控制器可以從DRAM檢索數(shù)據(jù)并在數(shù)據(jù)被加載到向量寄存器文件的一個(gè)或多個(gè)向量寄存器中之前重排序數(shù)據(jù)。然后,存儲(chǔ)器控制器可以根據(jù)重排序?qū)⒔?jīng)重排序的數(shù)據(jù)加載到向量寄存器文件的一個(gè)或多個(gè)向量寄存器中。可以通過(guò)在檢索過(guò)程期間而不是在數(shù)據(jù)被加載到向量寄存器文件中之后重排序數(shù)據(jù)來(lái)實(shí)現(xiàn)各種益處。例如,被要求從CPU傳輸?shù)男盘?hào)的數(shù)目可以減少。此外,加載和處理時(shí)間以及因而系統(tǒng)的等待時(shí)間可以減少。還可以實(shí)現(xiàn)附加或可替換的益處。
[0015]各種操作可以以最有助于理解所要求保護(hù)的主題的方式而被依次描述為多個(gè)分立的動(dòng)作或操作。然而,描述的次序不應(yīng)當(dāng)被解釋為暗示這些操作必然是依賴(lài)于次序的。特別地,這些操作可以不以呈現(xiàn)的次序施行。所描述的操作可以以與所描述的實(shí)施例不同的次序施行。可以施行各種附加操作,和/或可以在附加實(shí)施例中省略所描述的操作。
[0016]出于本公開(kāi)的目的,短語(yǔ)“A和/或B”和“A或B”意指(A)、(B)或(A和B)。出于本公開(kāi)的目的,短語(yǔ)“A、B和/或C"意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
[0017]描述可以使用短語(yǔ)“在一個(gè)實(shí)施例中”或者“在實(shí)施例中”,其均可以是指相同或不同實(shí)施例中的一個(gè)或多個(gè)。另外,如關(guān)于本公開(kāi)的實(shí)施例所使用的術(shù)語(yǔ)“包含”、“包括”、“具有”等是同義的。
[0018]如本文所使用的,術(shù)語(yǔ)“電路”可以是指下述各項(xiàng)、是下述各項(xiàng)的一部分或包括下述各項(xiàng):執(zhí)行一個(gè)或多個(gè)軟件或固件程序的專(zhuān)用集成電路(ASIC)、電子電路、處理器(共享、專(zhuān)用或組)和/或存儲(chǔ)器(共享、專(zhuān)用或組)、組合邏輯電路和/或提供所描述的功能性的其它合適硬件組件。如本文所使用的,“計(jì)算機(jī)實(shí)現(xiàn)的方法”可以是指由一個(gè)或多個(gè)處理器、具有一個(gè)或多個(gè)處理器的計(jì)算機(jī)系統(tǒng)、諸如智能電話(huà)之類(lèi)的移動(dòng)設(shè)備(其可以包括一個(gè)或多個(gè)處理器)、平板電腦、膝上型計(jì)算機(jī)、機(jī)頂盒、游戲控制臺(tái)等執(zhí)行的任何方法。
[0019]圖1描繪了系統(tǒng)100的示例,系統(tǒng)100可以允許數(shù)據(jù)到向量寄存器文件中的更高效的聚集。在實(shí)施例中,CPU 105,并且具體地,CPU 105的元件,諸如以下討論的向量寄存器文件130,可以經(jīng)由一個(gè)或多個(gè)總線(xiàn)與存儲(chǔ)器控制器110耦合。在實(shí)施例中,存儲(chǔ)器控制器110可以此外與DRAM 120耦合。在本文所描述的實(shí)施例中,DRAM 120可以是同步DRAM(SDRAM)、雙數(shù)據(jù)速率(DDR)DRAM(諸如第二代(DDR2)、第三代(DDR3)或第四代(DDR4)DRAM)或某種其它類(lèi)型的DRAM。在一些實(shí)施例中,存儲(chǔ)器控制器110可以經(jīng)由DDR通信鏈路125與DRAM 120耦入口 ο
[0020]在實(shí)施例中,存儲(chǔ)器控制器110可以此外與CPU105的向量寄存器文件130耦合,向量寄存器文件130可以包括多個(gè)向量寄存器135a、135b和135c。在一些實(shí)施例中,向量寄存器文件130可以被稱(chēng)為單指令多數(shù)據(jù)(SIMD)寄存器文件。每一個(gè)向量寄存器可以配置成存儲(chǔ)由存儲(chǔ)器控制器110從DRAM 120檢索的數(shù)據(jù)的部分。在實(shí)施例中,向量寄存器文件130可以與CPU 105的多個(gè)向量處理單元140a、140b和140c耦合。向量處理單元140a、140b和140c可以配置成與向量處理單元140a、140b或140c中的另一個(gè)處理向量寄存器文件130的不同的一個(gè)或多個(gè)向量寄存器135a、135b或135c中的數(shù)據(jù)的另一部分并行地處理向量寄存器文件130的向量寄存器135a、135b或135c中的一個(gè)或多個(gè)中的數(shù)據(jù)的部分。例如,向量處理單元140a可以與向量處理單元140b處理向量寄存器135b的數(shù)據(jù)并行地處理向量寄存器135a的數(shù)據(jù)。盡管圖1僅將向量寄存器文件130描繪為具有三個(gè)向量寄存器135a、135b和135c,但是在其它實(shí)施例中,向量寄存器文件130可以具有更多或更少的向量寄存器。此外,系統(tǒng)100可以包括比圖1中描繪的三個(gè)向量處理單元140a、140b和140c更多或更少的向量處理單元。
[0021]盡管某些元件被示出為彼此的元件或者與彼此耦合,但是在其它實(shí)施例中,一個(gè)或多個(gè)元件可以以片上系統(tǒng)(SoC)或系統(tǒng)級(jí)封裝(SiP)配置而處于相同芯片或封裝上,或者可以與彼此分離。例如,向量寄存器文件130和/或向量處理單元140a、140b和140c中的一個(gè)或多個(gè)可以與CPU 105分離??商鎿Q地,單個(gè)芯片可以包括CPU 105、存儲(chǔ)器控制器110、向量寄存器文件130和向量處理單元140a、140b或140c中的一個(gè)或多個(gè)。
[0022]在一些實(shí)施例中,存儲(chǔ)器控制器110可以包含一個(gè)或多個(gè)模塊或電路,諸如存儲(chǔ)器檢索電路145、重排序電路150和存儲(chǔ)電路155。在實(shí)施例中,存儲(chǔ)器檢索電路145可以配置成從DRAM 120檢索數(shù)據(jù)的一個(gè)或多個(gè)部分。重排序電路150,如以下將進(jìn)一步詳細(xì)討論的,可以配置成重排序由存儲(chǔ)器檢索電路145檢索的數(shù)據(jù)。存儲(chǔ)電路155可以配置成將經(jīng)重排序的數(shù)據(jù)放置到向量寄存器文件130中。
[0023]在實(shí)施例中,CPU105可以配置成向存儲(chǔ)器控制器110傳輸指令。指令,其可以為SMD指令,可以包括例如供存儲(chǔ)器控制器110生成“ACTIVE”命令的指令。在一些實(shí)施例中,指令可以是或者包括來(lái)自CPU 105的“LOAD”或“MOV”指令,其可以包括所期望的數(shù)據(jù)在DRAM120中的位置的指示。ACTIVE命令可以使存儲(chǔ)器控制器110激活(打開(kāi))其中可存儲(chǔ)或檢索數(shù)據(jù)的DRAM 120中的存儲(chǔ)器位置或“頁(yè)”。在一些實(shí)施例中,由ACTIVE命令打開(kāi)的位置可以包括數(shù)千個(gè)字節(jié)的數(shù)據(jù)。如果對(duì)存儲(chǔ)器的隨后訪(fǎng)問(wèn)在所打開(kāi)的頁(yè)的范圍內(nèi),僅地址的子集可能需要被供給以選擇頁(yè)內(nèi)的數(shù)據(jù)。在實(shí)施例中,ACTIVE命令還可以標(biāo)識(shí)其中存儲(chǔ)數(shù)據(jù)的DRAM 120的行地址。
[0024]在ACTIVE命令之后,存儲(chǔ)器控制器110可以生成“READ”或“WRITE”命令。在一些實(shí)施例中,READ或WRITE命令可以響應(yīng)于生成了ACTIVE命令的相同指令而生成,并且在其它實(shí)施例中,READ或WRITE命令可以響應(yīng)于來(lái)自CPU 105的分離指令而生成。在一些實(shí)施例中,ACTIVE、READ或WRITE命令中的一個(gè)或全部可以包括DRAM 120的存儲(chǔ)器地址,諸如DRAM 120中的位置的列地址或行地址。具體地,來(lái)自CPU 105的指令可以包括一個(gè)或多個(gè)存儲(chǔ)器地址,其可以被轉(zhuǎn)化成DRAM 120中的具體行和列地址。該轉(zhuǎn)化可以由存儲(chǔ)器控制器110完成并可以專(zhuān)用于實(shí)現(xiàn)其它目的,諸如均勻地分布對(duì)DRAM 120的訪(fǎng)問(wèn)。由于DRAM 120可以被組織為2D陣列,因此ACTIVE、READ或WRITE命令中的行地址可以選擇其中存儲(chǔ)所期望的數(shù)據(jù)的DRAM 120的行,并且ACTIVE、READ或WRITE命令的列地址可以選擇被訪(fǎng)問(wèn)的DRAM 120的列。在一些實(shí)施例中,行和列地址可以被鎖存在一些DRAM中。
[0025]CPU 105可以在數(shù)個(gè)時(shí)鐘周期之后向存儲(chǔ)器控制器110傳輸指令??商鎿Q地,⑶U105可以向存儲(chǔ)器控制器110傳輸指令,并且存儲(chǔ)器控制器110可以在數(shù)個(gè)時(shí)鐘周期之后實(shí)現(xiàn)指令。例如,在一些實(shí)施例中,存儲(chǔ)器控制器110可能能夠根據(jù)存儲(chǔ)器控制器110的一個(gè)或多個(gè)預(yù)設(shè)參數(shù)追蹤某些命令之間的時(shí)鐘周期的數(shù)目。在實(shí)施例中,可以在tRCD周期中測(cè)量數(shù)目,tRCD周期可以對(duì)應(yīng)于存儲(chǔ)器控制器110發(fā)布行地址選通(RAS)到存儲(chǔ)器控制器110發(fā)布列地址選通(CAS )之間的時(shí)間。
[0026]在一些實(shí)施例中,來(lái)自CPU的指令可以通過(guò)READ命令使存儲(chǔ)器控制器110將數(shù)據(jù)讀取到向量寄存器135a、135b或135c中的一個(gè)或多個(gè)中。數(shù)據(jù)的該讀取可以是通過(guò)斷言與諸如其中存儲(chǔ)數(shù)據(jù)的DRAM 120的存儲(chǔ)器位置的列地址或行地址之類(lèi)的命令的部分相對(duì)應(yīng)的DRAM 120的管腳來(lái)完成的。DRAM 120的一個(gè)或多個(gè)管腳可以對(duì)應(yīng)于READ命令的列地址。通過(guò)這些管腳的斷言,可以在“突發(fā)”中將數(shù)據(jù)從DRAM 120遞送至存儲(chǔ)器控制器110,如以下更加詳細(xì)描述的。
[0027]具體地,DRAM120可以具有多個(gè)管腳,通過(guò)該多個(gè)管腳,其可以傳輸或接收來(lái)自存儲(chǔ)器控制器110的具體信號(hào)。在具體管腳上接收的命令可以使DRAM 120施行具體功能,例如讀取數(shù)據(jù),如以上描述的,或者寫(xiě)入數(shù)據(jù),如以下描述的。
[0028]相反,WRITE命令可以使存儲(chǔ)器控制器110將數(shù)據(jù)從向量寄存器135a、135b和135c寫(xiě)入到由WRITE命令指定的DRAM 120的存儲(chǔ)器位置。
[0029]在一些實(shí)施例中,存儲(chǔ)在DRAM120中的數(shù)據(jù)可以是順序數(shù)據(jù)。作為順序數(shù)據(jù)的示例,數(shù)據(jù)可以是64字節(jié)長(zhǎng)且被組織在八個(gè)8字節(jié)組塊中。64字節(jié)的第一8字節(jié)組塊可以被稱(chēng)為第O組塊,64字節(jié)的第二 8字節(jié)組塊可以被稱(chēng)為第I組塊,以此類(lèi)推??傮w上,順序數(shù)據(jù)可以由組塊0、1、2、3、4、5、6和7組成。
[0030]在一些實(shí)施例中,CPU 105可以包括高速緩存115。如圖1中所示,在一些實(shí)施例中,高速緩存115可以與存儲(chǔ)器控制器110和/或向量寄存器文件130耦合且處于其之間。在一些實(shí)施例中,高速緩存115還可以與向量處理單元140a、140b和140c中的一個(gè)或多個(gè)耦合。在一些實(shí)施例中,向量處理單元140a、140b和140c和/或向量寄存器文件130中的一個(gè)或多個(gè)可以配置成在試圖借助于存儲(chǔ)器控制器110訪(fǎng)問(wèn)來(lái)自DRAM 120的數(shù)據(jù)之前訪(fǎng)問(wèn)來(lái)自高速緩存115的數(shù)據(jù)。
[0031]具體地,諸如CPU105之類(lèi)的許多現(xiàn)代微處理器可以采用高速緩存來(lái)減少系統(tǒng)的平均等待時(shí)間。高速緩存115可以包括一個(gè)或多個(gè)層,諸如LI層、L2層、L3層等。在實(shí)施例中,對(duì)系統(tǒng)100的DRAM 120中的數(shù)據(jù)的訪(fǎng)問(wèn)可以基于存儲(chǔ)器控制器110的高速緩存線(xiàn)的大小。例如,在一些實(shí)施例中,高速緩存線(xiàn)大小可以是64字節(jié)。在該實(shí)施例中,將64字節(jié)高速緩存線(xiàn)從DRAM 120傳送至向量寄存器文件130可以要求八個(gè)連續(xù)8字節(jié)數(shù)據(jù)組塊。
[0032]在其中使用標(biāo)量寄存器和標(biāo)量寄存器文件的本文中未不出的一些遺留實(shí)施例中,如與本實(shí)施例的向量寄存器文件130形成對(duì)比,可能合期望的是,不作為順序數(shù)據(jù)中的第一個(gè)的組塊(其可以在本文中被稱(chēng)為經(jīng)優(yōu)先化的組塊)在其它組塊之前被輸入到標(biāo)量寄存器文件,使得與標(biāo)量寄存器相關(guān)聯(lián)的處理器(例如CPU 105)可以在從DRAM(諸如DRAM 120)讀取順序數(shù)據(jù)的其余部分的同時(shí)立即在數(shù)據(jù)上操作。向標(biāo)量寄存器提供經(jīng)優(yōu)先化的組塊可能是合期望的,因?yàn)闃?biāo)量寄存器可能僅能夠一次處理單個(gè)數(shù)據(jù)組塊,如與可與配置成與彼此并行地處理順序數(shù)據(jù)的組塊的一個(gè)或多個(gè)向量處理單元140a、140b和140cf禹合的諸如向量寄存器文件130之類(lèi)的向量寄存器文件形成對(duì)比。在一些實(shí)施例中,READ命令可以配置成至少部分地基于READ命令的起始列地址以及是否READ命令包括突發(fā)類(lèi)型是順序的還是交織的指示來(lái)訪(fǎng)問(wèn)來(lái)自DRAM 120的經(jīng)優(yōu)先化的組塊,如以下進(jìn)一步詳細(xì)解釋的。
[0033]在本公開(kāi)的實(shí)施例中,類(lèi)似的READ命令可以用于訪(fǎng)問(wèn)來(lái)自DRAM 120的順序數(shù)據(jù)。然而,在本公開(kāi)的實(shí)施例中,READ命令還可以用于確定哪個(gè)數(shù)據(jù)組塊被放置在向量寄存器文件的哪個(gè)向量寄存器(諸如向量寄存器文件130的向量寄存器135a、135b和135c)中??赡芎掀谕氖?,將特定數(shù)據(jù)組塊放置在特定向量寄存器中,使得給定向量處理單元可以處理該數(shù)據(jù)組塊。例如,在一些實(shí)施例中,可能合期望的是,向量處理單元140a處理順序數(shù)據(jù)的第二組塊而同時(shí)向量處理單元140b處理順序數(shù)據(jù)的第四組塊。給定向量處理單元對(duì)數(shù)據(jù)組塊的處理可以基于具體算法、過(guò)程的要求或某種其它要求。
[0034]具體地,在一些實(shí)施例中,向量運(yùn)算符可以被稱(chēng)為SMD命令。在實(shí)施例中,利用具體數(shù)據(jù)組塊填充向量寄存器文件130的向量寄存器135a、135b和135c可以使用一個(gè)或多個(gè)SM)命令而完成。具體地,SM)指令可以用于攪亂順序數(shù)據(jù)的32位或64位向量元素,其中諸如向量寄存器文件130或存儲(chǔ)器操作數(shù)之類(lèi)的向量寄存器文件作為選擇器。
[0035]圖2描繪了可以用于重排序向量寄存器文件中的順序數(shù)據(jù)的組塊的表的示例。如以上所指出的,CPU 105可以向存儲(chǔ)器控制器110傳輸READ命令。READ命令可以包括起始列地址。此外或可替換地,READ命令可以包括從DRAM 120檢索順序數(shù)據(jù)將是順序的還是交織的指示。在順序突發(fā)模式中,順序數(shù)據(jù)的組塊可以以增大地址次序被訪(fǎng)問(wèn),當(dāng)?shù)竭_(dá)結(jié)尾時(shí)卷繞回到塊的起始。相反,交織突發(fā)模式可以使用異或(XOR)運(yùn)算基于起始地址和計(jì)數(shù)器值來(lái)標(biāo)識(shí)組塊。在一些實(shí)施例中,交織突發(fā)模式可以更簡(jiǎn)單或者在計(jì)算上更高效,因?yàn)閄OR運(yùn)算可以比可以用于順序突發(fā)模式的“加法”運(yùn)算更簡(jiǎn)單地實(shí)現(xiàn)在邏輯門(mén)上。
[0036]如圖2中所示,基于起始列地址和從CPU105接收的指令中(例如以上討論的“LOAD”或“MOV”指令中)的突發(fā)類(lèi)型指示,存儲(chǔ)器控制器110可以訪(fǎng)問(wèn)順序數(shù)據(jù),重排序順序數(shù)據(jù),且然后將經(jīng)重排序的數(shù)據(jù)存儲(chǔ)在向量寄存器文件130的向量寄存器135a、135b和135c中。具體地,存儲(chǔ)器控制器110的存儲(chǔ)器檢索電路145可以訪(fǎng)問(wèn)存儲(chǔ)在DRAM 120中的順序數(shù)據(jù)。對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)可以至少部分地基于DRAM 120中的數(shù)據(jù)的列和/或行地址的READ命令中的指示。
[0037]接著,存儲(chǔ)器控制器110,并且具體為存儲(chǔ)器控制器110的重排序電路150,可以重排序由存儲(chǔ)器檢索電路145從DRAM 120檢索的順序數(shù)據(jù)。具體地,順序數(shù)據(jù)的組塊可以是根據(jù)突發(fā)類(lèi)型的指示和READ命令的起始列地址來(lái)重排序的。作為示例,假定順序數(shù)據(jù)由被組織成8個(gè)每一個(gè)8字節(jié)且被標(biāo)記為組塊O、1、2、3、4、5、6和7的順序組塊的64字節(jié)組成。在該示例中,READ命令可以具有“1、O、O”的起始列地址。如圖2所指示,該起始列地址可以指示順序數(shù)據(jù)應(yīng)當(dāng)被重排序?yàn)榻M塊4、5、6、7、0、1、2和3。換言之,“1、0、0”的起始列地址可以指示應(yīng)當(dāng)交換順序數(shù)據(jù)的第一32字節(jié)和順序數(shù)據(jù)的第二32字節(jié)。在該示例中,突發(fā)類(lèi)型是順序還是交織的READ命令中的指示可以不影響重排序。
[0038]存儲(chǔ)器控制器110的存儲(chǔ)電路155然后可以根據(jù)由READ命令指示的重排序?qū)⒔?jīng)重排序的數(shù)據(jù)存儲(chǔ)在向量寄存器文件的向量寄存器135a、135b和135c中。例如,繼續(xù)以上示例,組塊4可以存儲(chǔ)在向量寄存器135a中以供向量處理單元140a處理,組塊5可以存儲(chǔ)在向量寄存器135b中以供向量處理單元140b處理,組塊6可以存儲(chǔ)在向量寄存器135c中以供向量處理單元140c處理,以此類(lèi)推。
[0039]在其它實(shí)施例中,可以添加一個(gè)或多個(gè)附加的接口和/或邏輯以包括超出圖2中所列舉的序列的其它數(shù)據(jù)排列。圖3描繪了可指示使用附加接口對(duì)數(shù)據(jù)的重排序的表的示例。具體地,可以向CPU 105添加額外的管腳,使得數(shù)據(jù)的額外位可以連同READ命令一起被傳輸至存儲(chǔ)器控制器110。如圖3的實(shí)施例中所示,額外的管腳可以允許經(jīng)重排序的順序數(shù)據(jù)的高達(dá)八個(gè)附加排列。
[0040]圖4描繪了可由如上描述的存儲(chǔ)器控制器110施行的示例過(guò)程。最初,存儲(chǔ)器控制器110可以在400處從CPU(諸如CPU 105)接收指令。指令可以是例如以上討論的READ命令。
[0041]接著,存儲(chǔ)器控制器110可以在405處從DRAM(諸如DRAM 120)檢索順序數(shù)據(jù)。具體地,存儲(chǔ)器控制器110的存儲(chǔ)器檢索電路145可以從DRAM 120檢索順序數(shù)據(jù)。
[0042]在從DRAM檢索順序數(shù)據(jù)之后,存儲(chǔ)器控制器110,并且具體為存儲(chǔ)器控制器110的重排序電路150,可以在410處根據(jù)來(lái)自CPU 105的指令重排序順序數(shù)據(jù)。例如,存儲(chǔ)器控制器110可以根據(jù)起始列地址、突發(fā)類(lèi)型的指示或在一個(gè)或多個(gè)附加接口或邏輯元件(諸如來(lái)自CPU 105的管腳)上接收的指示中的一個(gè)或多個(gè)重排序數(shù)據(jù),如以上描述的。
[0043]在重排序數(shù)據(jù)之后,存儲(chǔ)器控制器110,并且具體為存儲(chǔ)器控制器110的存儲(chǔ)電路155,可以在415處根據(jù)重排序?qū)㈨樞驍?shù)據(jù)的第一部分放置在向量寄存器文件的第一非順序位置中。具體地,存儲(chǔ)器控制器Il0可以將數(shù)據(jù)組塊放置在向量寄存器文件的向量寄存器(諸如向量寄存器文件130的向量寄存器135a)中。數(shù)據(jù)組塊可以是順序數(shù)據(jù)的第一組塊。接著,存儲(chǔ)器控制器110,并且具體為存儲(chǔ)器控制器110的存儲(chǔ)電路155,可以在420處根據(jù)重排序?qū)㈨樞驍?shù)據(jù)的第二部分放置在向量寄存器文件的第二非順序位置中。例如,存儲(chǔ)器控制器110可以將順序數(shù)據(jù)的第二組塊放置在向量寄存器文件的向量寄存器(諸如向量寄存器文件130的向量寄存器135c)中。該過(guò)程然后可以在425處結(jié)束。
[0044]將理解的是,以上描述的組塊和向量寄存器僅僅是可由存儲(chǔ)器控制器用于重排序從DRAM(諸如DRAM 120)檢索的順序數(shù)據(jù)且將經(jīng)重排序的數(shù)據(jù)存儲(chǔ)在向量寄存器文件的向量寄存器(諸如向量寄存器文件130的向量寄存器135a、135b和135c)中的過(guò)程的示例。“第一和第二”的描述在本文中用于區(qū)分順序數(shù)據(jù)的兩個(gè)不同組塊,且不應(yīng)當(dāng)被解釋為將描述限制到順序數(shù)據(jù)的僅前兩個(gè)組塊。類(lèi)似地,如本文關(guān)于向量寄存器所使用的“第一和第二”的描述意圖是描述性的而非限制性的。
[0045]盡管關(guān)于數(shù)據(jù)的64字節(jié)給出以上示例,但是數(shù)據(jù)重排序過(guò)程可以被進(jìn)一步擴(kuò)展到更大的范圍。例如,盡管突發(fā)次序被描述為僅包括8個(gè)組塊,但是在其它實(shí)施例中可以使用更多或更少數(shù)目的組塊。此外,每一個(gè)組塊可以包括更多或更少字節(jié)的數(shù)據(jù)。在一些實(shí)施例中,諸如DRAM 120之類(lèi)的DRAM可以包括在數(shù)千位的量級(jí)上的數(shù)據(jù),并且順序數(shù)據(jù)的組塊和/或長(zhǎng)度可以被擴(kuò)充成包括增加的數(shù)據(jù)量。擴(kuò)充可根據(jù)以上描述的過(guò)程重排序的數(shù)據(jù)的量的一種方式可以是:使用READ命令中的附加列地址,或者使用附加管腳從CPU向存儲(chǔ)器控制器傳輸附加數(shù)據(jù),如以上在圖3中所描述的。在其它實(shí)施例中,數(shù)據(jù)重排序過(guò)程可以被擴(kuò)展到數(shù)據(jù)的“步幅”,其中取代于順序數(shù)據(jù)包括連續(xù)組塊{0,1,2,3,4,5,6,7},順序數(shù)據(jù)可以包括非連續(xù)組塊{O ,2,4,6,8,10,12,14}或者某個(gè)其它的順序非連續(xù)增量。在一些實(shí)施例中,改變被發(fā)送到存儲(chǔ)器控制器或READ命令的列地址的數(shù)據(jù)的量可能要求DRAM中的附加邏輯以處理附加命令或數(shù)據(jù)。此外,盡管以上描述的過(guò)程關(guān)于向量寄存器文件130加以描述,但是在一些實(shí)施例中,從DRAM檢索順序數(shù)據(jù)、重排序數(shù)據(jù)且然后將數(shù)據(jù)供給到寄存器的過(guò)程可以用于將數(shù)據(jù)供給到標(biāo)量寄存器,其中超出僅經(jīng)優(yōu)先化的數(shù)據(jù)組塊的數(shù)據(jù)組塊的具體次序是合期望的。
[0046]圖5圖示依照各種實(shí)施例的了示例計(jì)算設(shè)備500,其中可以合并諸如早前描述的CPU 105、存儲(chǔ)器控制器110和/SDRAM 120之類(lèi)的系統(tǒng)。計(jì)算設(shè)備500可以包括數(shù)個(gè)組件、一個(gè)或多個(gè)附加處理器504和至少一個(gè)通信芯片506。
[0047]在各種實(shí)施例中,一個(gè)或多個(gè)處理器504或CPU 105每一個(gè)可以包括一個(gè)或多個(gè)處理器核。在各種實(shí)施例中,該至少一個(gè)通信芯片506可以物理和電耦合到該一個(gè)或多個(gè)處理器504或CPU 105。在另外的實(shí)現(xiàn)方式中,通信芯片506可以是該一個(gè)或多個(gè)處理器504或CPU105的一部分。在各種實(shí)施例中,計(jì)算設(shè)備500可以包括印刷電路板(PCB)502。對(duì)于這些實(shí)施例,該一個(gè)或多個(gè)處理器504、CPU 105和通信芯片506可以設(shè)置在其上。在可替換實(shí)施例中,各種組件可以在不采用PCB 502的情況下耦合。
[0048]取決于其應(yīng)用,計(jì)算設(shè)備500可以包括可以或可以不物理和電耦合到PCB 502的其它組件。這些其它組件包括但不限于易失性存儲(chǔ)器(例如DRAM 120)、諸如ROM 508之類(lèi)的非易失性存儲(chǔ)器、I/O控制器514、數(shù)字信號(hào)處理器(未示出)、密碼處理器(未示出)、圖形處理器516、一個(gè)或多個(gè)天線(xiàn)518、顯示器(未示出)、觸摸屏顯示器520、觸摸屏控制器522、電池524、音頻編解碼器(未示出)、視頻編解碼器(未示出)、全球定位系統(tǒng)(GPS)設(shè)備528、羅盤(pán)530、加速度計(jì)(未示出)、陀螺儀(未示出)、揚(yáng)聲器532、攝像機(jī)534和大容量存儲(chǔ)設(shè)備(諸如硬盤(pán)驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器、壓縮盤(pán)(CD)、數(shù)字多功能盤(pán)(DVD))(未示出)等等。在各種實(shí)施例中,CPU 105可以與其它組件集成在相同管芯上以形成片上系統(tǒng)(SoC),如圖1中所示。在實(shí)施例中,DRAM 120和/SROM 508中的一個(gè)或全部二者可以是或可以包括交叉點(diǎn)非易失性存儲(chǔ)器。
[0049]在各種實(shí)施例中,計(jì)算設(shè)備500可以包括駐留持久或非易失性存儲(chǔ)器,例如閃速存儲(chǔ)器512。在一些實(shí)施例中,一個(gè)或多個(gè)處理器504、CPU 105和/或閃速存儲(chǔ)器512可以包括存儲(chǔ)編程指令的關(guān)聯(lián)固件(未示出),所述編程指令被配置成響應(yīng)于一個(gè)或多個(gè)處理器504、CPU 105或存儲(chǔ)器控制器110執(zhí)行編程指令而使得計(jì)算設(shè)備500能夠?qū)嵺`以上關(guān)于圖4描述的塊的全部或所選方面。在各種實(shí)施例中,這些方面可以附加地或可替換地使用與該一個(gè)或多個(gè)處理器504、CPU 105、存儲(chǔ)器控制器110或閃速存儲(chǔ)器512分離的硬件而實(shí)現(xiàn)。
[0050]通信芯片506可以實(shí)現(xiàn)用于向計(jì)算設(shè)備500傳送數(shù)據(jù)和從計(jì)算設(shè)備500傳送數(shù)據(jù)的有線(xiàn)和/或無(wú)線(xiàn)通信。術(shù)語(yǔ)“無(wú)線(xiàn)”及其派生詞可以用于描述可通過(guò)使用通過(guò)非固體介質(zhì)進(jìn)行的調(diào)制電磁輻射來(lái)傳送數(shù)據(jù)的電路、設(shè)備、系統(tǒng)、方法、技術(shù)、通信信道等。該術(shù)語(yǔ)不暗示關(guān)聯(lián)設(shè)備不包含任何導(dǎo)線(xiàn),盡管在一些實(shí)施例中它們可能不包含。通信芯片506可以實(shí)現(xiàn)數(shù)個(gè)無(wú)線(xiàn)標(biāo)準(zhǔn)或協(xié)議中的任一個(gè),包括但不限于IEEE 802.20、通用分組無(wú)線(xiàn)電服務(wù)(GPRS)、演進(jìn)數(shù)據(jù)優(yōu)化(Ev-DO)、演進(jìn)高速分組接入(HSPA+)、演進(jìn)高速下行鏈路分組接入(HSDPA+)、演進(jìn)高速上行鏈路分組接入(HSUPA+)、全球移動(dòng)通信系統(tǒng)(GSM)、增強(qiáng)數(shù)據(jù)速率GSM演進(jìn)(EDGE )、碼分多址(⑶MA)、時(shí)分多址(TDMA )、數(shù)字增強(qiáng)無(wú)繩電信(DECT )、藍(lán)牙、其派生物、以及被指明為3G、4G、5G及更高的任何其它無(wú)線(xiàn)協(xié)議。計(jì)算設(shè)備500可以包括多個(gè)通信芯片506。例如,第一通信芯片506可以專(zhuān)用于諸如W1-Fi和藍(lán)牙之類(lèi)的較短距離無(wú)線(xiàn)通信,并且第二通信芯片506可以專(zhuān)用于諸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO和其它之類(lèi)的較長(zhǎng)距離無(wú)線(xiàn)通信。
[0051 ]在各種實(shí)現(xiàn)方式中,計(jì)算設(shè)備500可以是膝上型電腦、上網(wǎng)本、筆記本電腦、超極本、智能電話(huà)、計(jì)算平板、個(gè)人數(shù)字助理(PDA)、超移動(dòng)PC、移動(dòng)電話(huà)、臺(tái)式計(jì)算機(jī)、服務(wù)器、打印機(jī)、掃描儀、監(jiān)視器、機(jī)頂盒、娛樂(lè)控制單元(例如游戲控制臺(tái))、數(shù)字?jǐn)z像機(jī)、便攜式音樂(lè)播放器或數(shù)字視頻記錄器。在另外的實(shí)現(xiàn)方式中,計(jì)算設(shè)備500可以是處理數(shù)據(jù)的任何其它電子設(shè)備。
[0052]在實(shí)施例中,本公開(kāi)的第一示例可以包括一種存儲(chǔ)器控制器,包括:檢索電路,配置成至少部分地基于來(lái)自中央處理單元(CPU)的指令檢索包括以第一順序排序的多個(gè)部分的數(shù)據(jù);重排序電路,與檢索電路耦合且配置成至少部分地基于所接收到的指令重排序數(shù)據(jù)使得所述多個(gè)部分以不同于第一順序的第二順序排序;以及存儲(chǔ)電路,配置成至少部分地基于所接收到的指令以第二順序?qū)⑺龆鄠€(gè)部分存儲(chǔ)在向量寄存器文件的相應(yīng)多個(gè)位置中。
[0053]示例2可以包括示例I的存儲(chǔ)器控制器,其中第二順序至少部分地基于指令的起始列地址。
[0054]示例3可以包括示例I的存儲(chǔ)器控制器,其中第二順序至少部分地基于指令中的突發(fā)類(lèi)型的指示。
[0055]示例4可以包括示例3的存儲(chǔ)器控制器,其中突發(fā)類(lèi)型的指示是突發(fā)類(lèi)型是順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型的指示。
[0056]示例5可以包括示例I的存儲(chǔ)器控制器,其中第二順序至少部分地基于CPU的管腳設(shè)定。
[0057]示例6可以包括示例1-5中任一個(gè)的存儲(chǔ)器控制器,其中存儲(chǔ)器控制器與配置成存儲(chǔ)數(shù)據(jù)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)耦合。
[0058]示例7可以包括示例1-5中任一個(gè)的存儲(chǔ)器控制器,其中數(shù)據(jù)是64字節(jié)長(zhǎng)。
[0059]示例8可以包括示例7的存儲(chǔ)器控制器,其中所述多個(gè)部分中的每一個(gè)部分是8字節(jié)長(zhǎng)。
[0060]示例9可以包括一種方法,包括:通過(guò)存儲(chǔ)器控制器并且至少部分地基于從中央處理單元(CPU)接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;通過(guò)存儲(chǔ)器控制器將第一部分放置在向量寄存器文件的第一非順序位置中;以及通過(guò)存儲(chǔ)器控制器將第二部分放置在向量寄存器文件的第二非順序位置中。
[0061]示例10可以包括示例9的方法,其中存儲(chǔ)器控制器還配置成將第一部分放置在向量寄存器文件的第一非順序位置中以供與存儲(chǔ)器控制器耦合的第一向量處理單元處理;并且存儲(chǔ)器控制器還配置成將第二部分放置在向量寄存器文件的第二非順序位置中以供與存儲(chǔ)器控制器耦合的第二向量處理單元處理。
[0062]示例11可以包括示例9的方法,還包括通過(guò)存儲(chǔ)器控制器至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。
[0063]示例12可以包括示例9的方法,還包括通過(guò)存儲(chǔ)器控制器基于檢索是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型來(lái)從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。
[0064]示例13可以包括示例9-12中任一個(gè)的方法,其中順序數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中。
[0065]示例14可以包括示例9-12中任一個(gè)的方法,其中順序數(shù)據(jù)的第一部分是8字節(jié)的數(shù)據(jù)。
[0066]示例15可以包括示例14的方法,其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。
[0067]示例16可以包括一種裝置,包括:與存儲(chǔ)器控制器耦合且配置成存儲(chǔ)順序數(shù)據(jù)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM);與存儲(chǔ)器控制器耦合的中央處理單元(CPU),其中CPU配置成向存儲(chǔ)器控制器傳輸指令,并且其中存儲(chǔ)器控制器配置成:通過(guò)存儲(chǔ)器控制器并且至少部分地基于從CPU接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;以及將第一部分放置在向量寄存器文件的第一非順序位置中;以及將第二部分放置在向量寄存器文件的第二非順序位置中。
[0068]示例17可以包括示例16的裝置,還包括與存儲(chǔ)器控制器耦合的第一處理器和第二處理器;其中第一處理器配置成處理第一非順序位置中的第一部分;并且其中第二處理器配置成與第一處理器同時(shí)處理第二非順序位置中的第二部分。
[0069]示例18可以包括示例16的裝置,其中向量寄存器文件的第一非順序位置是至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇的。
[0070]示例19可以包括示例16的裝置,其中向量寄存器文件的第一非順序位置由存儲(chǔ)器控制器至少部分地基于指令是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型檢索第一部分和第二部分而從向量寄存器文件的多個(gè)位置選擇。
[0071]示例20可以包括示例16的裝置,其中向量寄存器文件的第一非順序位置是至少部分地基于CPU的管腳設(shè)定從向量寄存器文件的多個(gè)位置選擇的。
[0072]示例21可以包括示例16-20中任一個(gè)的裝置,其中指令為順序數(shù)據(jù)的第一部分,是8字節(jié)的數(shù)據(jù)。
[0073]示例22可以包括示例21的裝置,其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。
[0074]示例23可以包括一個(gè)或多個(gè)包括指令的計(jì)算機(jī)可讀介質(zhì),所述指令配置成在由存儲(chǔ)器控制器執(zhí)行指令時(shí)使存儲(chǔ)器控制器:至少部分地基于從中央處理單元(CPU)接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;將第一部分放置在向量寄存器文件的第一非順序位置中;以及將第二部分放置在向量寄存器文件的第二非順序位置中。
[0075]示例24可以包括示例23的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中指令還配置成使存儲(chǔ)器控制器:將第一部分放置在向量寄存器文件的第一非順序位置中以供與存儲(chǔ)器控制器耦合的第一向量處理單元處理;以及將第二部分放置在向量寄存器文件的第二非順序位置中以供與存儲(chǔ)器控制器耦合的第二向量處理單元處理。
[0076]示例25可以包括示例23的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中指令還配置成使存儲(chǔ)器控制器至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。
[0077]示例26可以包括示例23的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中指令還配置成使存儲(chǔ)器控制器基于檢索是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型來(lái)從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。
[0078]示例27可以包括示例23-26中任一個(gè)的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中順序數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中。
[0079]示例28可以包括示例23-26中任一個(gè)的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中順序數(shù)據(jù)的第一部分是8字節(jié)的數(shù)據(jù)。
[0080]示例29可以包括示例28的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。
[0081 ]示例30可以包括一種裝置,包括:至少部分地基于從中央處理單元(CPU)接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分的構(gòu)件,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;將第一部分放置在向量寄存器文件的第一非順序位置中的構(gòu)件;以及將第二部分放置在向量寄存器文件的第二非順序位置中的構(gòu)件。
[0082]示例31可以包括示例30的裝置,還包括:將第一部分放置在向量寄存器文件的第一非順序位置中以供第一向量處理單元處理的構(gòu)件;以及將第二部分放置在向量寄存器文件的第二非順序位置中以供第二向量處理單元處理的構(gòu)件。
[0083]示例32可以包括示例30的裝置,還包括至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置的構(gòu)件。
[0084]示例33可以包括示例30的裝置,還包括基于檢索是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置的構(gòu)件。
[0085]示例34可以包括示例30-33中任一個(gè)的裝置,其中順序數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中。
[0086]示例35可以包括示例30-33中任一個(gè)的裝置,其中順序數(shù)據(jù)的第一部分是8字節(jié)的數(shù)據(jù)。
[0087]示例36可以包括示例35的裝置,其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。
[0088]盡管本文已經(jīng)出于描述的目的而圖示和描述了某些實(shí)施例,但是本申請(qǐng)意圖覆蓋本文所討論的實(shí)施例的任何適配或變型。因此,明確意圖是本文所描述的實(shí)施例僅由權(quán)利要求限制。
[0089]在本公開(kāi)記載“一”或“第一”元件或其等同物的情況下,這樣的公開(kāi)包括一個(gè)或多個(gè)這樣的元件,其既不要求也不排除兩個(gè)或更多這樣的元件。另外,用于所標(biāo)識(shí)的元件的序數(shù)指示符(例如第一、第二或第三)用于區(qū)分元件,且不指示或暗示這樣的元件的所要求或限制的數(shù)目,它們也不指示這樣的元件的特定位置或次序,除非以其它方式具體陳述。
【主權(quán)項(xiàng)】
1.一種存儲(chǔ)器控制器,包括: 檢索電路,配置成至少部分地基于來(lái)自中央處理單元(CPU)的指令檢索包括以第一順序排序的多個(gè)部分的數(shù)據(jù); 重排序電路,與檢索電路耦合且配置成至少部分地基于所接收到的指令重排序數(shù)據(jù)使得所述多個(gè)部分以不同于第一順序的第二順序排序;以及 存儲(chǔ)電路,配置成至少部分地基于所接收到的指令以第二順序?qū)⑺龆鄠€(gè)部分存儲(chǔ)在向量寄存器文件的相應(yīng)多個(gè)位置中。2.權(quán)利要求1的存儲(chǔ)器控制器,其中第二順序至少部分地基于指令的起始列地址。3.權(quán)利要求1的存儲(chǔ)器控制器,其中第二順序至少部分地基于指令中的突發(fā)類(lèi)型的指不O4.權(quán)利要求3的存儲(chǔ)器控制器,其中突發(fā)類(lèi)型的指示是突發(fā)類(lèi)型是順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型的指示。5.權(quán)利要求1的存儲(chǔ)器控制器,其中第二順序至少部分地基于CPU的管腳設(shè)定。6.權(quán)利要求1-5中任一項(xiàng)的存儲(chǔ)器控制器,其中存儲(chǔ)器控制器與配置成存儲(chǔ)數(shù)據(jù)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)耦合。7.權(quán)利要求1-5中任一項(xiàng)的存儲(chǔ)器控制器,其中數(shù)據(jù)是64字節(jié)長(zhǎng)。8.權(quán)利要求7的存儲(chǔ)器控制器,其中所述多個(gè)部分中的每一個(gè)部分是8字節(jié)長(zhǎng)。9.一種方法,包括: 通過(guò)存儲(chǔ)器控制器并且至少部分地基于從中央處理單元(CPU)接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;通過(guò)存儲(chǔ)器控制器將第一部分放置在向量寄存器文件的第一非順序位置中;以及通過(guò)存儲(chǔ)器控制器將第二部分放置在向量寄存器文件的第二非順序位置中。10.權(quán)利要求9的方法,其中存儲(chǔ)器控制器還配置成將第一部分放置在向量寄存器文件的第一非順序位置中以供與存儲(chǔ)器控制器耦合的第一向量處理單元處理;并且 存儲(chǔ)器控制器還配置成將第二部分放置在向量寄存器文件的第二非順序位置中以供與存儲(chǔ)器控制器耦合的第二向量處理單元處理。11.權(quán)利要求9的方法,還包括通過(guò)存儲(chǔ)器控制器至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。12.權(quán)利要求9的方法,還包括通過(guò)存儲(chǔ)器控制器基于檢索是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型來(lái)從向量寄存器文件的多個(gè)位置選擇向量寄存器文件的第一非順序位置。13.權(quán)利要求9-12中任一項(xiàng)的方法,其中順序數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中。14.權(quán)利要求9-12中任一項(xiàng)的方法,其中順序數(shù)據(jù)的第一部分是8字節(jié)的數(shù)據(jù)。15.權(quán)利要求14的方法,其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。16.—種裝置,包括: 與存儲(chǔ)器控制器耦合且配置成存儲(chǔ)順序數(shù)據(jù)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM); 與存儲(chǔ)器控制器耦合的中央處理單元(CHJ),其中CTU配置成向存儲(chǔ)器控制器傳輸指令,并且其中存儲(chǔ)器控制器配置成: 通過(guò)存儲(chǔ)器控制器并且至少部分地基于從CPU接收的指令檢索順序數(shù)據(jù)的第一部分和順序數(shù)據(jù)的第二部分,第一部分和第二部分在順序數(shù)據(jù)中靠近于彼此;以及 將第一部分放置在向量寄存器文件的第一非順序位置中;以及 將第二部分放置在向量寄存器文件的第二非順序位置中。17.權(quán)利要求16的裝置,還包括與存儲(chǔ)器控制器耦合的第一處理器和第二處理器; 其中第一處理器配置成處理第一非順序位置中的第一部分;并且 其中第二處理器配置成與第一處理器同時(shí)處理第二非順序位置中的第二部分。18.權(quán)利要求16的裝置,其中向量寄存器文件的第一非順序位置是至少部分地基于指令中的起始列地址從向量寄存器文件的多個(gè)位置選擇的。19.權(quán)利要求16的裝置,其中向量寄存器文件的第一非順序位置由存儲(chǔ)器控制器至少部分地基于指令是根據(jù)順序突發(fā)類(lèi)型還是交織突發(fā)類(lèi)型檢索第一部分和第二部分而從向量寄存器文件的多個(gè)位置選擇。20.權(quán)利要求16的裝置,其中向量寄存器文件的第一非順序位置是至少部分地基于CPU的管腳設(shè)定從向量寄存器文件的多個(gè)位置選擇的。21.權(quán)利要求16-20中任一項(xiàng)的裝置,其中指令為順序數(shù)據(jù)的第一部分,是8字節(jié)的數(shù)據(jù)。22.權(quán)利要求21的裝置,其中順序數(shù)據(jù)是64字節(jié)的數(shù)據(jù)。
【文檔編號(hào)】G06F13/14GK105940381SQ201380081205
【公開(kāi)日】2016年9月14日
【申請(qǐng)日】2013年12月26日
【發(fā)明人】S-L.L.盧, C.夏, B.榮, A.謝菲爾
【申請(qǐng)人】英特爾公司