国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于自主存儲器的方法及系統(tǒng)的制作方法

      文檔序號:10517832閱讀:518來源:國知局
      用于自主存儲器的方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明揭示了一種方法、一種設(shè)備及一種系統(tǒng)。所述方法的實施例包含:自主存儲器裝置接收指令集,所述存儲器裝置執(zhí)行所述指令集,將所述指令集與響應(yīng)于所述指令集而從所述存儲器裝置恢復(fù)的任何數(shù)據(jù)組合成包,及從所述存儲器裝置發(fā)射所述包。
      【專利說明】用于自主存儲器的方法及系統(tǒng)
      [0001 ] 優(yōu)先權(quán)申請
      [0002]本申請案主張2013年12月2日申請的序列號為14/094,273的美國申請案的優(yōu)先權(quán)的權(quán)益,所述申請案以全文引用的方式并入本文中。
      【背景技術(shù)】
      [0003]存儲器裝置通常經(jīng)提供為計算機或其它電子裝置中的內(nèi)部半導(dǎo)體集成電路。存在許多不同類型的存儲器,包含隨機存取存儲器(RAM)、只讀存儲器(R0M)、動態(tài)隨機存取存儲器(DRAM)、同步動態(tài)隨機存取存儲器(SDRAM)及非易失性(例如,快閃)存儲器。
      [0004]若干非易失性存儲器裝置可經(jīng)組合以形成固態(tài)驅(qū)動器(SSD),所述固態(tài)驅(qū)動器可在計算機系統(tǒng)中仿真機械操作硬盤驅(qū)動器。固態(tài)驅(qū)動器可比機械硬驅(qū)動器(由于缺少移動的部件)提供更快存取與更大可靠性。
      [0005]至少部分地由于計算機系統(tǒng)的增加的性能,存儲器及固態(tài)驅(qū)動器制造商可始終處于增加其存儲器的性能的壓力下以便努力與計算機系統(tǒng)性能增加保持同步。一般需要使對存儲器的讀取及寫入更高效以釋放對計算機系統(tǒng)的任何操作負(fù)擔(dān)。
      【附圖說明】
      [0006]圖1圖解說明自主存儲器處理設(shè)備的實施例的功能性框圖。
      [0007]圖2圖解說明根據(jù)圖1的實施例的包解析器的實施例的框圖。
      [0008]圖3圖解說明根據(jù)圖1的實施例的程序計數(shù)器的實施例的框圖。
      [0009]圖4圖解說明根據(jù)圖1的實施例的指令存儲器的實施例的框圖。
      [0010]圖5圖解說明根據(jù)圖1的實施例的解碼邏輯的實施例的框圖。
      [0011]圖6圖解說明根據(jù)圖1的實施例的寄存器堆的實施例的框圖。
      [0012 ]圖7A及7B圖解說明根據(jù)圖1的實施例的執(zhí)行單元的實施例的框圖。
      [0013]圖8圖解說明根據(jù)圖1的實施例的解析器的實施例的框圖。
      [0014]圖9圖解說明根據(jù)圖1的實施例的包產(chǎn)生器的實施例的框圖。
      [0015]圖10圖解說明用于根據(jù)圖1的實施例的指令執(zhí)行的格式的實施例的圖式。
      [0016]圖11圖解說明存儲器系統(tǒng)的實施例的框圖。
      [0017]圖12圖解說明自主存儲器裝置中的自主存儲器處理設(shè)備的操作的實施例的流程圖。
      【具體實施方式】
      [0018]在以下詳細(xì)說明中,參考形成其一部分的附圖,且在附圖中以圖解方式展示特定實施例。在圖式中,貫穿數(shù)個視圖的相似編號基本上描述類似組件??衫闷渌鼘嵤├?,且可在不背離本發(fā)明的范圍的情況下作出結(jié)構(gòu)、邏輯及電改變。因此,不應(yīng)在一限制意義上理解以下詳細(xì)說明。
      [0019]本發(fā)明并不限于任何一種類型的存儲器。自主存儲器處理設(shè)備可與任何類型的存儲器裝置、存儲器裝置的群組或存儲器技術(shù)(包含半導(dǎo)體存儲器、光學(xué)存儲器或磁性存儲器)相關(guān)聯(lián)。舉例來說,存儲器可包含非易失性(例如,NAND快閃、NOR快閃、相變存儲器(PCM))或易失性(例如,DRAM、SRAM)。
      [0020]如本文中所使用,節(jié)點可包含:包解析器,其用于解析所接收包;包產(chǎn)生器,其用于產(chǎn)生待從節(jié)點發(fā)射到網(wǎng)絡(luò)的包;及網(wǎng)絡(luò)端口,其可將節(jié)點與任何網(wǎng)絡(luò)介接。所述節(jié)點可另外包含用于控制節(jié)點以及存儲器的操作以用于存儲數(shù)據(jù)的處理元件。在其它實施例中,所述節(jié)點可包含用于額外功能的額外硬件及/或軟件/固件。具有自主處理設(shè)備的自主存儲器裝置可被視為節(jié)點。
      [0021]圖1圖解說明自主存儲器處理設(shè)備的實施例的功能性框圖。此設(shè)備可與存儲器100相關(guān)聯(lián)且可用于釋放基于中央處理單元(CPU)的計算系統(tǒng)中的存儲器帶寬瓶頸。自主存儲器處理設(shè)備可位于自主存儲器裝置中。
      [0022]自主存儲器處理設(shè)備可包含包解析器101、程序計數(shù)器107、指令存儲器105、解碼邏輯103、寄存器堆109、解析器115、包產(chǎn)生器111、一個或多個執(zhí)行單元(EU)113及頁緩沖器117。圖1的元件及架構(gòu)僅為出于圖解目的,這是因為其它實施例可使用其它元件及其它架構(gòu)。
      [0023]圖2圖解說明包解析器101的框圖。包解析器101可耦合到網(wǎng)絡(luò)(例如,在存儲器100外部的網(wǎng)絡(luò))并從所述網(wǎng)絡(luò)接受數(shù)據(jù)包。包解析器101還可耦合到程序計數(shù)器107的輸入,使得包解析器101可使程序計數(shù)器107加載有從網(wǎng)絡(luò)接收于包中的程序計數(shù)(例如,指令存儲器位置)。包解析器101還可耦合到程序計數(shù)器107的輸出,使得程序計數(shù)器107可將其當(dāng)前程序計數(shù)(例如,指令存儲器位置)加載到包解析器101中。包解析器101可進(jìn)一步耦合到指令存儲器105及寄存器堆109的輸入以使從網(wǎng)絡(luò)接收于包中的數(shù)據(jù)(例如,指令)能夠加載到指令存儲器105及寄存器堆109中。
      [0024]圖3圖解說明程序計數(shù)器107的框圖。出于圖解目的,程序計數(shù)器107經(jīng)展示為32位計數(shù)器。然而,其它實施例可使用其它程序計數(shù)器大小。
      [0025]程序計數(shù)器107可具有來自包解析器101及程序計數(shù)器執(zhí)行單元(PCEU)IH的輸入,所述程序計數(shù)器執(zhí)行單元可為一個或多個執(zhí)行單元113的部分。程序計數(shù)器107可具有耦合到指令存儲器105的輸出。
      [0026]程序計數(shù)器107可含有程序計數(shù)值(例如,指令存儲器位置)以存取可含有程序(例如,可執(zhí)行指令)的指令存儲器105中的特定指令位置。可依據(jù)由包解析器101確定且從包解析器101接收的傳入包中的特定數(shù)據(jù)字段,或來自程序計數(shù)器執(zhí)行單元114的所計算值來設(shè)定所述程序計數(shù)值。接著,程序計數(shù)器107可將程序計數(shù)(例如,32位寄存器)的值輸出到指令存儲器105。
      [0027]圖4圖解說明指令存儲器105的框圖。指令存儲器105可包含用于存儲程序(例如,可執(zhí)行指令)的若干寄存器。包解析器101可耦合到指令存儲器105的寫入端口??捎砂馕銎?01寫入到指令存儲器105,使得在由包解析器101確定的傳入包內(nèi)接收的指令可從所述包加載到指令存儲器105中。
      [0028]指令存儲器105可包含兩個地址端口,所述兩個地址端口可各自接受用于存取指令存儲器105內(nèi)的特定位置的地址。一個地址可來自程序計數(shù)器107。另一地址可來自包產(chǎn)生器111。
      [0029]在一個操作期間,指令存儲器105可從由程序計數(shù)器107的地址指示的位置輸出指令(例如,數(shù)據(jù)端口)。此指令可被解碼且由執(zhí)行單元113執(zhí)行以便向執(zhí)行單元113作出關(guān)于待執(zhí)行的操作的指示。此指令可對執(zhí)行單元113給出操作數(shù)以及到寄存器堆109中的索引,所述索引用以向寄存器堆109作出關(guān)于要將何種數(shù)據(jù)輸出到執(zhí)行單元113以供處理的指示。
      [0030]圖5圖解說明解碼邏輯103的框圖。解碼邏輯103可包含執(zhí)行單元解碼邏輯501、解析器解碼邏輯502及多路分用功能503(例如,多路分用器)。
      [0031]到多路分用功能503的輸入可耦合到來自指令存儲器105的輸出的指令流。指令流中的一個或多個控制位可用于選擇所述指令流中的特定指令的目的地(例如,EU解碼邏輯501、解析器解碼邏輯502)。
      [0032]如果指令被發(fā)送到EU解碼邏輯501,則EU解碼邏輯501可處理所述指令以便將所述指令發(fā)送到執(zhí)行單元113中的一者。所述指令可向執(zhí)行單元113中的一者作出關(guān)于將執(zhí)行何種類型的操作的指示并且對執(zhí)行單元113中的一者給出將在指令的執(zhí)行期間使用的操作數(shù)。所述操作數(shù)可在寄存器堆109的寄存器中加索引且向所述寄存器作出關(guān)于將輸出何種數(shù)據(jù),使得執(zhí)行單元113中的一者可處理所述數(shù)據(jù)的指示。
      [0033]多路分用功能503還可將指令發(fā)送到耦合到解析器115的解析器解碼邏輯502。所述指令可控制解析器解碼邏輯502,解析器解碼邏輯502繼而指示解析器將存取頁緩沖器117的哪些分段以便將來自頁緩沖器117的特定分段的數(shù)據(jù)讀取到執(zhí)行單元113中的一者中以供處理。
      [0034]圖6圖解說明寄存器堆109的框圖。寄存器堆109可包含來自包解析器101、包產(chǎn)生器111、執(zhí)行單元113中的一者或多者的輸入,及存儲器讀取指示。存儲器讀取指示可為由解析器115產(chǎn)生的信號,所述信號指示完成存儲器操作的時間。寄存器堆109可包含到包產(chǎn)生器111、執(zhí)行單元113及解析器115的輸出。
      [0035]寄存器堆109可包含存儲器(例如,多個寄存器)以在正發(fā)生由執(zhí)行單元113進(jìn)行的處理的同時存儲變量。這些變量可包含響應(yīng)于一個或多個指令從存儲器檢索的數(shù)據(jù)。可由包解析器101寫入到寄存器堆109以便在所述寄存器內(nèi)設(shè)定初始條件且可由包產(chǎn)生器111從寄存器堆109讀取。執(zhí)行單元113中的每一者可通過多路復(fù)用功能從寄存器堆109接收變元。到包產(chǎn)生器111的輸出可用于將存儲于寄存器堆109的寄存器中的數(shù)據(jù)捆綁成包以供發(fā)射到網(wǎng)絡(luò)。
      [0036]圖7A圖解說明一般來說執(zhí)行單元113(例如,執(zhí)行單元(O到N)的實施例的框圖而圖7B圖解說明特定來說程序計數(shù)器執(zhí)行單元114的實施例的框圖。PCEU 114可被視為執(zhí)行單元113的群組的部分,但其可具有與其它執(zhí)行單元113不同的架構(gòu)。
      [0037]不存在對可包含于特定自主存儲器處理設(shè)備中的執(zhí)行單元113的特定數(shù)目的要求。一個設(shè)備可具有單個執(zhí)行單元113而另一設(shè)備可具有多個(例如,數(shù)百個)執(zhí)行單元。
      [0038]圖7A圖解說明執(zhí)行單元113可包含四個算術(shù)邏輯單元(ALU)701到70LALU1 703及ALU2 704的輸出可輸入到多路復(fù)用功能706??赏ㄟ^Comp ALU 702的輸出確定選擇哪一ALU703、704輸出,Comp ALU 702的輸出可用作用于多路復(fù)用功能706的選擇信號。第四ALU(ALUOut 701)可具有作為寄存器地址Rd的到寄存器堆109的輸出,所述輸出可對寄存器堆109指示由執(zhí)行單元113執(zhí)行的操作的結(jié)果將存儲的地方。
      [0039]下部三個ALU702到704及多路復(fù)用功能706可執(zhí)行如果-則-否則運算。多路復(fù)用功能706可提供“如果某一條件”,其中所述條件是由Comp ALU 702確定。因此,如果條件為真,則由Comp ALU 702的輸出選擇一個ALU(例如,ALUl 703)的輸出,否則由Comp ALU 702的輸出選擇另一ALU(例如,ALU2 704)的輸出。
      [0040]舉例來說,如果假定ALUl 703具有操作數(shù)輸入OpERANDI(R1)及0PERAND2(R2)以及命令輸入0PERAT0R1,且ALU2 704具有操作數(shù)輸入0PERAND3(R3)及0PERAND4(R4)以及命令輸A0PERAT0R2,如果-則-否則語句可類似于:
      [0041]如果(條件)
      [0042]則
      [0043]操作數(shù)10PERAT0R1操作數(shù)2
      [0044]否則
      [0045]操作數(shù)30PERAT0R2操作數(shù)4
      [0046]其中“操作數(shù)10PERAT0R1操作數(shù)2”可由ALUl 703提供,“操作數(shù)30PERAT0R2操作數(shù)4”可由ALU2 704提供,且“如果(條件)”可由Comp ALU 702及多路復(fù)用功能706提供。
      [0047]如隨后參考圖10的指令的格式所描述,可由指令提供操作數(shù)及算子或所述指令可指示操作數(shù)值位于哪一寄存器。舉例來說,0PERAND1 (Rl)可位于寄存器R1中,OPERAND(R2)可位于寄存器R2中,OPERAND(R3)可位于寄存器R3中,OPERAND (R4)可位于寄存器R4中。
      [0048]ALUl 703及ALU2 704可執(zhí)行相同運算或不同運算。換句話說,0PERAT0R1可與0PERAT0R2 相同或者OPERATOR I 可不同于0PERAT0R2。
      [0049]ALU Out 701可具有操作數(shù)輸入1?5及1?6(例如,寄存器1?5及1?6)以及命令輸入0PERAT0R3。通過ALU Out 701對來自抱及辦的值執(zhí)行命令0PERAT0R3所產(chǎn)生的結(jié)果Rd確定執(zhí)行單元113的結(jié)果所存儲的地方。
      [0050]Comp ALU 702可具有操作數(shù)輸入R7及R8(例如,寄存器R7及R8)以及命令輸入0PERAT0R4。如先前所討論,對來自R7及R8的值執(zhí)行命令0PERAT0R4的結(jié)果確定多路復(fù)用功能106的選擇。
      [0051 ]在以上ALU 701 到704中可用作命令(例如,0PERAT0R1、0PERAT0R2、0PERAT0R3、0PERAT0R4)的典型運算可包含加法、減法、邏輯AND、邏輯OR、邏輯NOT、邏輯NOR、等于、小于或等于、小于、不等于、大于或等于或者大于。這些運算僅為出于圖解目的,這是因為其它實施例可使用其它運算。
      [0052]圖7B圖解說明程序計數(shù)器執(zhí)行單元(PCEU)IH的架構(gòu)。此架構(gòu)可類似于執(zhí)行單元O至Ijn 113,但沒有了ALU Out 701。由于PCEU 114可專用于確定程序計數(shù)器107的新地址,因此由于用以存儲PCEU 114運算的結(jié)果的位置將為程序計數(shù)器107而不包含ALU Out 701。
      [0053]PCEU 114可包含具有操作數(shù)輸入R9及RlO以及命令輸入0PERAT0R5的Comp ALU710oALUl 711可包含操作數(shù)輸入Rll及R12以及命令輸入0PERAT0R6JLU2 712可包含操作數(shù)輸入Rl 3及Rl 4以及命令輸入0PERAT0R7。
      [0054]ALUl 711及ALU2 712的輸出可輸入到多路復(fù)用功能714<Xomp ALU 710的輸出可提供用于多路復(fù)用功能714的選擇信號。因此,如在先前所描述執(zhí)行單元113中,PCEU 114可提供如果-則-否則語句,其中多路復(fù)用功能714提供“如果某一條件”,其中所述條件是由Comp ALU 710確定。因此,如果條件為真,則由Comp ALU 710的輸出選擇一個ALU(例如,ALUl 711)的輸出,否則由Comp ALU 710的輸出選擇另一ALU(例如,ALU2 712)的輸出??蓪⒔Y(jié)果加載到程序計數(shù)器107中。
      [0055]如在先前所描述執(zhí)行單元113中,可從來自指令存儲器的指令加載待用于PCEU114中的算子及命令或者所述指令可指示哪一寄存器可含有值。
      [0056]圖8圖解說明解析器115的框圖。解析器115可包含存儲器寫入端口,所述存儲器寫入端口包含待寫入的地址以及數(shù)據(jù)。存儲器讀取地址端口可向存儲器提供將從中進(jìn)行讀取的地址,使得可將所讀取數(shù)據(jù)讀取到存儲器讀取數(shù)據(jù)端口中。當(dāng)存儲器讀取操作完成時,解析器115還可輸出存儲器讀取指示信號。解析器115可進(jìn)一步包含到執(zhí)行單元113的輸出、來自寄存器堆109的輸入及來自解析器解碼邏輯502的配置輸入。
      [0057]解析器115可具有對存儲器100的直接存取,使得其可從存儲器100的頁緩沖器117直接讀取或?qū)懭氲巾摼彌_器117。解析器115可存取頁緩沖器117的整個長度,使得為使處理較可管理,其可將頁緩沖器117細(xì)分成較小分段(例如,經(jīng)規(guī)則定義的分段)。舉例來說,解析器115可對頁緩沖器的前100字節(jié)操作,接著對接下來的100字節(jié)操作,且繼續(xù)此直到已讀取/寫入整個頁緩沖器117為止。為實現(xiàn)此,可對解析器115給出來自包解析器101的地址,所述包解析器確定待從頁緩沖器117讀取頁緩沖器117的哪一分段。
      [0058]解析器115可從寄存器堆109接收配置輸入,所述配置輸入可為解析器115指示解析頁緩沖器117的內(nèi)容的方式。解析器115可產(chǎn)生存儲器讀取指示信號,所述存儲器讀取指示信號為執(zhí)行程序指示新內(nèi)容可用于寄存器堆109中。
      [0059]圖9圖解說明包產(chǎn)生器111的實施例的框圖。所述包產(chǎn)生器可包含來自指令存儲器105及寄存器堆109的輸入以及到指令存儲器105及寄存器堆109的輸出。包產(chǎn)生器111另外具有到網(wǎng)絡(luò)的輸出以便輸出任何所產(chǎn)生包。
      [0060]包產(chǎn)生器111可產(chǎn)生針對指令存儲器105的地址及針對寄存器堆109的地址以便從這些元件105、109讀取數(shù)據(jù)。包產(chǎn)生器111可接著使用來自寄存器堆109的讀取數(shù)據(jù)(例如,來自指令存儲器105的指令及上下文(例如,數(shù)據(jù)、來自存儲器讀取的結(jié)果、來自所執(zhí)行操作的結(jié)果)),捆綁此數(shù)據(jù)并產(chǎn)生待經(jīng)由網(wǎng)絡(luò)發(fā)射的包。
      [0061]圖10圖解說明根據(jù)圖1的實施例的指令執(zhí)行的格式的實施例。每一指令1001到1003可存儲于指令存儲器中以供由執(zhí)行單元113執(zhí)行。
      [0062]指令的所圖解說明實施例包含四個指令1000到1003。每一指令可與執(zhí)行單元113的不同ALU相關(guān)聯(lián)。因此,如果執(zhí)行單元113包含不同數(shù)量的ALU,執(zhí)行格式可包含不同數(shù)量的指令1000到1003。在以下討論中參考圖10及圖7A的ALU兩者。
      [0063]第一指令1000(例如,指令D)可表示由執(zhí)行單元113中的一者進(jìn)行的運算的結(jié)果的目的地寄存器(例如,Rd)。如先前所討論,ALU Out 701可產(chǎn)生其中存儲有執(zhí)行單元113的結(jié)果的目的地寄存器Rd的地址。因此,ALU Out 701可與第一指令1000相關(guān)聯(lián)以用于產(chǎn)生寄存器Rd ο
      [0064]第二指令1001(例如,指令C)可表示由執(zhí)行單元113表示的如果-則-否則語句的條件。在所圖解說明實施例中,條件由比較值Vc表示。如先前所討論,Comp ALU 702可產(chǎn)生用作用于多路復(fù)用功能706的選擇信號的條件。因此,Comp ALU 702可與第二指令1001相關(guān)聯(lián)以用于比較Vc是否為真。
      [0065]第三指令1002(例如,指令T)可表示由執(zhí)行單元113表示的如果-則-否則語句的“則”結(jié)果。在所圖解說明實施例中,由Vt-如果為真的值表示“則”結(jié)果。如先前所討論,ALUl703可產(chǎn)生“則”結(jié)果。因此,ALUl 703可與第三指令1002相關(guān)聯(lián)以使“則”結(jié)果成為Vt。
      [0066]第四指令1003(例如,指令F)可表示由執(zhí)行單元113表示的如果-則-否則語句的“否則”結(jié)果。在所圖解說明實施例中,由Vf-如果為假的值表示“否則”結(jié)果。如先前所討論,ALU2 704可產(chǎn)生“否則”結(jié)果。因此,ALU2 704可與第四指令1003相關(guān)聯(lián)以實現(xiàn)Vf的“否則”結(jié)果。
      [0067]使用條件VC、“則”結(jié)果Vt、“否則”結(jié)果Vf及結(jié)果寄存器Rd,如果-則-否則語句可通過以下表示:
      [0068]如果(Vc==真)
      [0069]貝Ij
      [0070]Reg[Rd]: =Vt[0071 ] 否則
      [0072]Reg[Rd]: =Vf
      [0073]圖11圖解說明可并入有圖1的自主存儲器處理設(shè)備130的存儲器系統(tǒng)的實施例的框圖。存儲器系統(tǒng)可包含可經(jīng)由網(wǎng)絡(luò)1120與一個或多個存儲器裝置(例如,SSD) 1101、1102通信的控制器1100(例如,CPU)。網(wǎng)絡(luò)1120可為有線總線或無線通信(例如,WiFi)。
      [0074]存儲器裝置1101可包含本地存儲器100(例如,RAM、DRAM、SRAM、NAND快閃、NOR快閃、相變存儲器(PCM))以及圖1的自主存儲器處理設(shè)備130,所述本地存儲器構(gòu)成存儲器裝置1101的存儲部分。自主存儲器處理設(shè)備130可相對接近于存儲器100而定位(例如,同一裸片、同一裸片堆疊、同一存儲器模塊)。舉例來說,自主存儲器處理設(shè)備130可包含于處于存儲器100的存儲體等級的電路中。每一存儲體可具有不同自主存儲器處理設(shè)備130,使得一個存儲器芯片可具有基本上同時操作的自主存儲器處理設(shè)備130的多個實例。如本文中所使用,本地存儲器100可為不經(jīng)由網(wǎng)絡(luò)便能連接到自主存儲器處理設(shè)備130的存儲器。
      [0075]圖11的系統(tǒng)的裝置中的每一者可被視為節(jié)點。每一節(jié)點可經(jīng)由網(wǎng)絡(luò)1120與其它節(jié)點通信。節(jié)點中的每一者可基本上類似或者節(jié)點中的一者或多者可具有不同架構(gòu)。舉例來說,第一存儲器裝置1101可具有除程序計數(shù)器執(zhí)行單元114以外的僅單個執(zhí)行單元113,而第二存儲器裝置1102可具有除程序計數(shù)器執(zhí)行單元114以外的一個以上執(zhí)行單元113。
      [0076]因此,如隨后所描述,控制器1100(例如,源節(jié)點)可將含有指令及源節(jié)點的當(dāng)前處理狀態(tài)的消息(例如,包)發(fā)送到存儲器裝置1101(例如,目標(biāo)節(jié)點)。在另一實施例中,第一存儲器裝置1101可為源節(jié)點而第二存儲器裝置1102可為目標(biāo)節(jié)點。
      [0077]指令可包含對存儲器裝置1101的命令(例如,搜索、分類、比較)。存儲器裝置1101可在不受控制器干預(yù)的情況下執(zhí)行由命令指示的任務(wù)。自主存儲器處理設(shè)備130可發(fā)送并接收去往及來自其它節(jié)點1100、1102的消息、發(fā)送并接收去往及來自其它節(jié)點1100、1102的處理指令及狀態(tài)、還原并保存程序狀態(tài)、執(zhí)行處理指令、讀取并寫入本地存儲器及/或支持單個節(jié)點中的多個處理上下文。
      [0078]自主存儲器處理設(shè)備130架構(gòu)可提供添加及移除執(zhí)行單元113(例如,包括ALU)的動態(tài)、無縫靈活性,因此視需要賦予節(jié)點額外處理能力??稍谝韵虏僮鲗嵗袌D解說明執(zhí)行單元113在自主存儲器處理設(shè)備130中的動態(tài)添加及移除。
      [0079]可產(chǎn)生如下典型現(xiàn)有技術(shù)程序:
      [0080]指令I(lǐng) (ADD寄存器1、寄存器2、寄存器3)[0081 ] 指令2(SUB寄存器2、寄存器3、寄存器4)
      [0082]如在典型現(xiàn)有技術(shù)CPU系統(tǒng)中,這些指令中存在所暗示相依性。舉例來說,指令2可不能在指令I(lǐng)之前(或與指令I(lǐng)在同一循環(huán)中)執(zhí)行,這是因為在指令I(lǐng)有機會執(zhí)行之前,寄存器2中的值將被覆寫。
      [0083]在自主存儲器處理設(shè)備架構(gòu)中,可使用較復(fù)雜執(zhí)行單元(EU)架構(gòu)以便較少用以執(zhí)行程序所需的循環(huán)的數(shù)目。每一EU可含有各自執(zhí)行相異任務(wù)的若干不同ALU(例如,四個ALU)。因此,可產(chǎn)生如下針對自主存儲器處理設(shè)備所寫入的程序(假定具有一個EU加PCEU的架構(gòu)):
      [0084][ PCEU 指令 I] [EUl 指令 I]
      [0085][PCEl^$2][EUUg$2]
      [0086]每一[EU#指令#]可如下顯現(xiàn),如圖10中所圖解說明:
      [0087][目的地指令][比較指令][如果-真指令][如果-假指令]
      [0088]同樣,作為自主存儲器處理設(shè)備架構(gòu)的部分,處理器可具有嵌入于其內(nèi)的不同數(shù)目個EU。此可實現(xiàn)具有四個EU及一個PCEU的架構(gòu),舉例來說:
      [0089][ PCEU 指令 I ] [EUl 指令 I ] [EU2 指令 I ] [EU3 指令 I ] [EU4 指令 I ]
      [0090][PCEU 指令 2] [EUl 指令 2] [EU2 指令 2] [EU3 指令 2] [EU4 指令 2]
      [0091]由于在此循環(huán)中可不存在待執(zhí)行的額外工作的事實,因此這些EU指令中的任一者可為空的。此可由于在程序的特定階段缺少并行性。
      [0092]自主存儲器處理設(shè)備架構(gòu)可在系統(tǒng)中的一組異構(gòu)自主存儲器處理設(shè)備引擎之間實現(xiàn)互動(例如一個設(shè)備(“A”)可具有一個EU加PCEU,而同一互連系統(tǒng)中的另一設(shè)備(“B” )可具有4個EU加PCEU)。如果假定在此情景中,設(shè)備A需要將其上下文發(fā)送到設(shè)備“B”,可將程序封裝成指令的順序流且將其運送到設(shè)備“B”。設(shè)備“B”可接著以與如下相同的方式在其硬件上調(diào)度所述程序:
      [0093][PCEU 指令I(lǐng)] [EUl 指令I(lǐng)][空][空][空]
      [0094][PCEU 指令 2] [EUl 指令 2][空][空][空]
      [0095]...
      [0096]此可導(dǎo)致并行性損失,從而在系統(tǒng)中造成效率低下,這是因為每一程序最終將接近最窄的自主存儲器處理設(shè)備。
      [0097]在不確保在指令之間不存在任何相依性的情況下,可不將指令捆綁到并行EU中。由于此種比較在典型現(xiàn)有技術(shù)系統(tǒng)中可為計算上昂貴的,因此自主存儲器處理設(shè)備可使用指令“柵欄”旗標(biāo)的概念?!皷艡凇逼鞓?biāo)使應(yīng)用程序?qū)懭肫骰蚓幾g器能夠標(biāo)記指令流不再對所述流中的先前指令具有任何相依性的地方。此信息可使指令流能夠在不需要顯著處理額外開銷的情況下在一組異構(gòu)處理器上傳送并調(diào)度。
      [0098]舉例來說,以下指令流:[PCEU指令][EU指令I(lǐng)] [EU指令2] [EU指令3][柵欄標(biāo)記/指令][EU指令4] [EU指令5] [EU指令6] [EU指令7][柵欄旗標(biāo)/指令]可以以下方式在自主存儲器處理設(shè)備“A”上進(jìn)行調(diào)度(其中[F]指示“柵欄”標(biāo)記):[PCEU][1][PCEU][2][F][PCEU][3][PCEU] [4] [PCEU] [5] [PCEU] [6] [F] [PCEU] [7],且可在自主存儲器處理設(shè)備“B”中調(diào)度為:[PCEU][1][2][3][X][F][PCEU][4][5][6][7]0
      [0099]“柵欄”指令可在其被加載到給定自主存儲器處理設(shè)備(例如,“A”或“B” )的指令存儲器中時由包傳入邏輯處理?!皷艡凇逼鞓?biāo)的存在可存儲于指令存儲器中,但其在調(diào)度的上下文外部可為無意義的。然而,“柵欄”旗標(biāo)經(jīng)存儲為指令存儲器中的旗標(biāo),使得包傳出邏輯可重建原始流。
      [0100]作為自主存儲器處理設(shè)備的操作的實例(例如,存儲器搜索),可由包解析器101從網(wǎng)絡(luò)(例如,存儲器網(wǎng)絡(luò))接收包。包解析器101可將包解析成分段。一些分段可為上下文,這是因為其可含有表示當(dāng)包離開前一節(jié)點時所述前一節(jié)點所處的狀態(tài)的寄存器內(nèi)容。
      [0101]包可含有指令存儲器105中用于待執(zhí)行程序的開始位置。可將此開始點加載到程序計數(shù)器107中。包還可含有待加載到指令存儲器105中的指令集及可加載到寄存器堆109中的一組初始條件。初始條件可為通過指令從前一節(jié)點發(fā)送的變量。初始條件也可為以供由當(dāng)前執(zhí)行的程序使用的常數(shù)。
      [0102]程序計數(shù)器107中的值確定從指令存儲器105讀取哪一指令以供執(zhí)行。程序計數(shù)器107中的下一值可為來自前一值的增量或由程序計數(shù)器執(zhí)行單元114確定的所計算值。
      [0103]指令可設(shè)定解析器115的配置。解析器115可通過指令的執(zhí)行經(jīng)配置以從頁緩沖器117移除變量且最終執(zhí)行存儲器讀取操作。
      [0104]當(dāng)存儲器讀取操作發(fā)生時,變量可實時地移出頁緩沖器117內(nèi)容且向執(zhí)行單元113呈現(xiàn)為輸入。可從寄存器堆讀取其它潛在輸入,如通過程序指令所確定,且可向執(zhí)行單元113呈現(xiàn)所述潛在輸入以供處理。如先前所描述,“柵欄”可提供并行執(zhí)行數(shù)個連續(xù)指令的能力。無法并行執(zhí)行的指令可被推遲且在后一循環(huán)期間執(zhí)行。
      [0105]執(zhí)行單元113可將那些輸入變元處理為多組輸入變元,每一組均并行處理。因此,多個執(zhí)行單元113可產(chǎn)生輸出變量,所述輸出變量可接著被傳送回到寄存器堆,被傳送到解析器115以最終作為用于一個或多個存儲器寫入操作的數(shù)據(jù)而寫入到頁緩沖器117,或者輸出變量可進(jìn)入寄存器堆中以產(chǎn)生某一特定動作。所述動作可為由包產(chǎn)生器111產(chǎn)生包或起始新的存儲器讀取或存儲器寫入操作。
      [0106]可向包產(chǎn)生器111呈現(xiàn)待包含于包中的頁緩沖器117內(nèi)容(例如,搜索命令的結(jié)果)以經(jīng)由網(wǎng)絡(luò)將其發(fā)射到請求節(jié)點。所述包可包含到請求節(jié)點的指示任務(wù)(例如,搜索)已完成且結(jié)果包含于包中的消息。
      [0107]作為較廣泛的操作實例,網(wǎng)絡(luò)可包含自主存儲器裝置組構(gòu)(fabric),每一自主存儲器裝置均包含至少一個自主存儲器處理設(shè)備。數(shù)據(jù)群組可跨存儲器裝置組構(gòu)而存儲。當(dāng)期望搜索整個數(shù)據(jù)群組來尋求特定數(shù)據(jù)列表時,可將搜索程序推動到一個自主存儲器裝置中以搜索所述裝置來尋求特定數(shù)據(jù)列表。當(dāng)程序確定已搜索存儲于所述特定自主存儲器裝置內(nèi)的數(shù)據(jù)且不存在來自列表的所有數(shù)據(jù)時,可將程序捆綁成一個或多個包且將其傳送到另一自主存儲器裝置,其中所述裝置的自主存儲器處理設(shè)備可繼續(xù)搜索。程序的此捆綁可繼續(xù)直到已搜索自主存儲器裝置的整個組構(gòu)或已完成數(shù)據(jù)列表。在一些實施例中,也可將存在于特定自主存儲器裝置中的數(shù)據(jù)隨程序一起捆綁成包以供傳送。
      [0108]在圖12的流程圖中圖解說明此實施例。所圖解說明方法可在圖11的系統(tǒng)中由自主存儲器裝置1101中的自主存儲器處理設(shè)備130執(zhí)行。
      [0109]存儲器裝置1101可接收經(jīng)提供到自主存儲器處理設(shè)備130的包1201。設(shè)備130可解析包1203以移除指令、程序計數(shù)器及數(shù)據(jù),如先前所討論。接著可執(zhí)行指令1205以對存儲于存儲器100中的數(shù)據(jù)執(zhí)行所要任務(wù)。接著可將所述指令及由所述指令所產(chǎn)生的任何數(shù)據(jù)捆綁成包1207以供在網(wǎng)絡(luò)1209上發(fā)射。
      [0110]設(shè)備可被定義為電路、集成電路裸片、存儲器裝置、存儲器陣列或系統(tǒng)。
      [0111]結(jié)論
      [0112]自主存儲器裝置內(nèi)的自主存儲器處理設(shè)備的一個或多個實施例可執(zhí)行指令的處理以釋放傳統(tǒng)基于CPU的計算系統(tǒng)的存儲器帶寬瓶頸。可在節(jié)點當(dāng)中傳送含有指令集(例如,程序)及/或數(shù)據(jù)的包,使得可獨立于來自源節(jié)點或CPU的控制而通過指令對那些節(jié)點中的存儲器中的數(shù)據(jù)進(jìn)行操作。
      [0113]盡管本文中已圖解說明及描述特定實施例,但所屬領(lǐng)域的技術(shù)人員將了解,任何經(jīng)計算以實現(xiàn)相同目的的任何配置均可替代所展示的特定實施例。許多更改對所屬領(lǐng)域的技術(shù)人員來說將是顯而易見的。因此,本申請案打算涵蓋任何更改或變化。
      【主權(quán)項】
      1.一種方法,其包括: 在自主存儲器裝置處接收指令集; 在所述存儲器裝置中執(zhí)行所述指令集; 將所述指令集與響應(yīng)于所述指令集而從所述存儲器裝置恢復(fù)的任何數(shù)據(jù)組合成包;及 從所述存儲器裝置發(fā)射所述包。2.根據(jù)權(quán)利要求1所述的方法,其中在所述存儲器裝置處接收所述指令集及從所述存儲器裝置發(fā)射所述包分別包括:從耦合到所述存儲器裝置的網(wǎng)絡(luò)接收所述指令集及將所述包發(fā)射到所述網(wǎng)絡(luò)。3.根據(jù)權(quán)利要求1所述的方法,其中接收所述指令集包括接收包括所述指令集的包,且所述方法進(jìn)一步包括解析所述所接收包,所述方法包括: 給程序計數(shù)器加載與所述所接收指令集相關(guān)聯(lián)的初始程序計數(shù)器值; 給指令存儲器加載所述指令集;及 給寄存器堆加載與所述指令集相關(guān)聯(lián)的一組初始條件。4.根據(jù)權(quán)利要求3所述的方法,其中執(zhí)行所述指令集包括: 在執(zhí)行所述指令集的第一指令之后計算新程序計數(shù)器值;及 將所述新程序計數(shù)器值存儲于所述程序計數(shù)器中。5.根據(jù)權(quán)利要求1所述的方法,其中執(zhí)行所述指令集包括:在第一執(zhí)行單元中執(zhí)行第一指令且在第二執(zhí)行單元中執(zhí)行第二指令,其中所述第一及第二指令的所述執(zhí)行是基本上并行的。6.根據(jù)權(quán)利要求1所述的方法,其中所述存儲器裝置為多個節(jié)點中的第一節(jié)點,且從所述存儲器裝置發(fā)射所述包包括將所述包發(fā)射到所述多個節(jié)點中的第二節(jié)點。7.根據(jù)權(quán)利要求6所述的方法,且其進(jìn)一步包括: 從所述多個節(jié)點中的第三節(jié)點接收初始條件;及 將所述初始條件存儲于文件寄存器中。8.根據(jù)權(quán)利要求1所述的方法,其中所述指令集包括柵欄旗標(biāo),且存儲所述指令集包括: 將在所述柵欄旗標(biāo)之前的一個或多個指令存儲于指令存儲器中,且將在所述柵欄旗標(biāo)之后的一個或多個指令存儲于所述指令存儲器中。9.根據(jù)權(quán)利要求8所述的方法,且其進(jìn)一步包括: 在第一執(zhí)行單元中執(zhí)行在所述柵欄旗標(biāo)之前的所述一個或多個指令;及 在第二執(zhí)行單元中執(zhí)行在所述柵欄旗標(biāo)之后的所述一個或多個指令。10.根據(jù)權(quán)利要求9所述的方法,其中執(zhí)行在所述柵欄旗標(biāo)之前的所述一個或多個指令是與執(zhí)行在所述柵欄旗標(biāo)之后的所述一個或多個指令基本上同時執(zhí)行的。11.根據(jù)權(quán)利要求1所述的方法,其中執(zhí)行所述指令集包括: 向程序計數(shù)器執(zhí)行單元提供多個操作數(shù); 向所述程序計數(shù)器執(zhí)行單元提供算子;及 響應(yīng)于來自所述算子對所述多個操作數(shù)的執(zhí)行的結(jié)果而產(chǎn)生經(jīng)更新程序計數(shù)器值。12.—種設(shè)備,其包括: 包解析器,其經(jīng)配置以接收包括指令及開始位置的包; 指令存儲器,其耦合到所述包解析器且經(jīng)配置以接收所述指令; 程序計數(shù)器,其耦合到所述指令存儲器及所述包解析器,所述程序計數(shù)器經(jīng)配置以最初從所述包解析器接收所述開始位置且從所述指令存儲器在所述開始位置檢索指令;多個執(zhí)行單元,其耦合到所述指令存儲器以用于執(zhí)行所述指令; 解析器,其耦合到所述多個執(zhí)行單元,所述解析器經(jīng)配置以控制數(shù)據(jù)從本地存儲器的讀??; 寄存器堆,其耦合到所述解析器及所述指令存儲器,且經(jīng)配置以存儲來自所述解析器及所述包解析器的數(shù)據(jù);及 包產(chǎn)生器,其耦合到所述指令存儲器及所述寄存器堆,所述包產(chǎn)生器經(jīng)配置以產(chǎn)生包以供發(fā)射,所述包包括指令集及所述數(shù)據(jù)。13.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述多個執(zhí)行單元中的每一者包括: 多個算術(shù)邏輯單元ALU ;及 多路復(fù)用功能,其耦合于所述多個所述算術(shù)邏輯單元中的至少兩者的輸出之間。14.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述多個ALU包括與來自所述指令的每一指令相關(guān)聯(lián)的ALU。15.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述多個執(zhí)行單元中的每一者實施如果-則-否則語句。
      【文檔編號】G06F12/00GK105874436SQ201480072099
      【公開日】2016年8月17日
      【申請日】2014年12月1日
      【發(fā)明人】肯尼思·M·丘爾維茨, 肖恩·艾勒特, 亞明·D·艾卡爾, 王宏育
      【申請人】美光科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1