本發(fā)明大體上涉及半導(dǎo)體存儲器設(shè)備及方法,且更特定來說,涉及關(guān)于產(chǎn)生且執(zhí)行控制流的設(shè)備及方法。
背景技術(shù):
存儲器裝置通常提供為計算機或其它電子系統(tǒng)中的內(nèi)部半導(dǎo)體集成電路。存在許多不同類型的存儲器,包含易失性存儲器及非易失性存儲器。易失性存儲器可需要電力以維持其數(shù)據(jù)(例如,主機數(shù)據(jù)、錯誤數(shù)據(jù)等)且包含隨機存取存儲器(ram)、動態(tài)隨機存取存儲器(dram)、靜態(tài)隨機存取存儲器(sram)、同步動態(tài)隨機存取存儲器(sdram)與晶閘管隨機存取存儲器(tram)等。非易失性存儲器可通過在未供電時留存所存儲數(shù)據(jù)而提供永久性數(shù)據(jù)且可包含與非(nand)快閃存儲器、或非(nor)快閃存儲器及電阻可變存儲器(例如相變隨機存取存儲器(pcram)、電阻性隨機存取存儲器(rram)及磁阻性隨機存取存儲器(mram),例如自旋扭矩轉(zhuǎn)移隨機存取存儲器(sttram))等。
電子系統(tǒng)通常包含數(shù)個處理資源(例如,一或多個處理器),其可檢索及執(zhí)行指令(例如,控制流)且將所執(zhí)行指令的結(jié)果存儲到合適位置。處理器可包括數(shù)個功能單元(例如,在此處被稱為功能單元電路,例如算術(shù)邏輯單元(alu)電路、浮點單元(fpu)電路及/或組合邏輯塊),舉例來說,所述功能單元可執(zhí)行指令以對數(shù)據(jù)(例如,一或多個操作數(shù))實行例如與(and)、或(or)、非(not)、與非、或非及異或(xor)邏輯運算的邏輯運算。
在將指令提供到功能單元電路以供執(zhí)行中可涉及電子系統(tǒng)中的數(shù)個組件。舉例來說,指令可由例如控制器及/或主機處理器的處理資源產(chǎn)生。數(shù)據(jù)(例如,將對其執(zhí)行指令以實行邏輯運算的操作數(shù))可存儲于可通過功能單元電路存取的存儲器陣列中??蓮拇鎯ζ麝嚵袡z索指令及/或數(shù)據(jù)且可在功能單元電路開始對數(shù)據(jù)執(zhí)行指令之前串行化及/或緩沖指令及/或數(shù)據(jù)。此外,因為可通過功能單元電路以一或多個時鐘循環(huán)執(zhí)行不同類型的運算,所以還可串行化及/或緩沖運算及/或數(shù)據(jù)的中間結(jié)果。
在許多例子中,處理資源(例如,處理器及/或相關(guān)聯(lián)的功能單元電路)可在存儲器陣列外部,且可存取數(shù)據(jù)(例如,經(jīng)由處理資源與存儲器陣列之間的總線)以執(zhí)行指令。數(shù)據(jù)可經(jīng)由總線從存儲器陣列移動到存儲器陣列外部的寄存器。
附圖說明
圖1是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)的形式的設(shè)備的框圖。
圖2是根據(jù)先前技術(shù)的呈計算系統(tǒng)的形式的設(shè)備的框圖。
圖3是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)的形式的設(shè)備的框圖。
圖4是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)的形式的設(shè)備的框圖。
圖5是根據(jù)本發(fā)明的數(shù)個實施例的控制流及控制流的執(zhí)行的框圖。
圖6說明根據(jù)本發(fā)明的數(shù)個實施例的存儲器陣列的部分的示意圖。
圖7是說明根據(jù)本發(fā)明的數(shù)個實施例的具有可選邏輯運算選擇邏輯的感測電路的示意圖。
圖8是說明根據(jù)本發(fā)明的數(shù)個實施例的通過感測電路實施的可選邏輯運算結(jié)果的邏輯表。
圖9說明根據(jù)本發(fā)明的數(shù)個實施例的與使用感測電路實行邏輯運算及移位運算相關(guān)聯(lián)的時序圖。
具體實施方式
本發(fā)明的實例提供關(guān)于產(chǎn)生且執(zhí)行控制流的設(shè)備及方法。一種實例設(shè)備可包含:第一裝置,其經(jīng)配置以產(chǎn)生控制流指令;及第二裝置,其包含存儲器單元的陣列、執(zhí)行所述控制流指令的執(zhí)行單元及經(jīng)配置以控制對存儲于所述陣列中的數(shù)據(jù)的所述控制流指令的執(zhí)行的控制器。
如在本文中使用,控制流是指其中執(zhí)行指令(例如,程序的敘述及/或函數(shù)調(diào)用)的順序。其中執(zhí)行數(shù)個指令的順序可根據(jù)跳躍、無條件分支、條件分支、循環(huán)、返回及/或停止以及與程序相關(guān)聯(lián)的其它指令類型而變化。在數(shù)個實例中,數(shù)個指令還可為函數(shù)調(diào)用。如果-則語句是條件分支的實例。可通過第一裝置(例如,主機處理器)評估相關(guān)聯(lián)于如果-則語句評估的條件以產(chǎn)生控制流。舉例來說,在通過第一裝置評估條件的情況下,可通過第二裝置執(zhí)行第一組指令或第二組指令。舉例來說,第一裝置可進一步評估循環(huán)(例如,for循環(huán)、while循環(huán))以產(chǎn)生通過第二裝置執(zhí)行的數(shù)個指令及與數(shù)個指令相關(guān)聯(lián)的順序。
在各種先前方法中,產(chǎn)生控制流且通過相同裝置(例如,主機處理器)執(zhí)行與控制流相關(guān)聯(lián)的指令。舉例來說,產(chǎn)生數(shù)個指令及與指令相關(guān)聯(lián)的執(zhí)行順序的相同裝置還根據(jù)所產(chǎn)生順序執(zhí)行數(shù)個指令。在相同裝置中產(chǎn)生控制流且執(zhí)行與控制流相關(guān)聯(lián)的指令可包含在執(zhí)行指令之前產(chǎn)生控制流。舉例來說,如果單個裝置正在產(chǎn)生控制流且執(zhí)行相關(guān)聯(lián)指令,那么無法同時產(chǎn)生控制流且執(zhí)行指令。
在根據(jù)本發(fā)明的數(shù)個實例中,第一裝置可產(chǎn)生控制流且第二裝置可執(zhí)行對應(yīng)于控制流的指令。舉例來說,可在產(chǎn)生控制流的同時執(zhí)行控制流。如在本文中使用,對應(yīng)于控制流的指令(可被稱為“控制流指令”)意指涉及操縱數(shù)據(jù)的指令。舉例來說,涉及操縱數(shù)據(jù)的指令包含涉及對數(shù)據(jù)實行計算(其可包含數(shù)學(xué)運算(例如,加法、減法、乘法及/或除法))的指令,其可包含實行例如and、or、反相等等的各種布爾(boolean)邏輯運算。不涉及操縱數(shù)據(jù)的指令的實例包含存儲器命令,例如數(shù)據(jù)讀取、數(shù)據(jù)寫入及數(shù)據(jù)刷新操作。
作為實例,第一裝置可為主機。舉例來說,主機可包含中央處理單元(cpu)、芯片上系統(tǒng)(soc)及專用集成電路(asic)中的一者。作為實例,soc可包括耦合到數(shù)個存儲器裝置的一或多個處理器及一或多個控制器(例如,通道控制器)。第二裝置可為存儲器裝置,其包含存儲器陣列、執(zhí)行單元(其可包括包含數(shù)個計算組件的感測電路)及控制執(zhí)行單元執(zhí)行指令的控制器。存儲器裝置的控制器可操作執(zhí)行單元的計算組件以協(xié)調(diào)與控制流相關(guān)聯(lián)的指令的執(zhí)行。
作為實例,可通過實行數(shù)個運算來執(zhí)行由主機產(chǎn)生的指令。舉例來說,“加法”指令包含實行各種邏輯運算。如在本文中使用,可互換地使用指令及運算。運算可為比較運算、交換運算及/或邏輯運算(例如,and運算、or運算、shift運算、invert運算等等)。然而,實施例不限于這些實例。如在本文中使用,將執(zhí)行單指令多數(shù)據(jù)(simd)運算定義為對多個元素并行(例如,同時)實行相同運算。如在本文中使用,元素是可(例如,作為位向量)存儲于存儲器陣列中的數(shù)值。
在本發(fā)明的以下詳細(xì)描述中,參考形成本發(fā)明的部分且其中通過圖解展示可如何實踐本發(fā)明的一或多個實施例的所附圖式。足夠詳細(xì)描述這些實施例以使所屬領(lǐng)域的一般技術(shù)人員能夠?qū)嵺`本發(fā)明的實施例,且應(yīng)理解,可在不脫離本發(fā)明的范圍的情況下利用其它實施例且做出過程、電及/或結(jié)構(gòu)的改變。如在本文中使用,標(biāo)示符“j”、“n”、“r”、“s”、“u”、“v”、“w”及“x”(尤其關(guān)于圖式中的參考數(shù)字)可指示可包含如此指定的數(shù)個特定特征。如在本文中使用,“數(shù)個”特定事物可指代一或多個此類事物(例如,數(shù)個存儲器陣列可指代一或多個存儲器陣列)。
本文中的圖遵循編號慣例,其中首位或前幾位數(shù)字對應(yīng)于圖式圖號,且剩余數(shù)字識別圖式中的元件或組件??赏ㄟ^使用類似數(shù)字來識別不同圖之間的類似元件或組件。舉例來說,110可參考圖1中的元件“10”,且類似元件可在圖2中被參考為210。如將了解,可添加、交換及/或消除在本文的各種實施例中展示的元件,以便提供本發(fā)明的數(shù)個額外實施例。另外,如將了解,在圖式中提供的元件的比例及相對尺寸希望說明本發(fā)明的特定實施例,且不應(yīng)視為限制意義。
圖1是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)100的形式的設(shè)備的框圖。如在本文中使用,主機110、存儲器裝置120、存儲器陣列130及/或感測電路150還可被單獨視為“設(shè)備”及/或裝置。
系統(tǒng)100包含經(jīng)耦合到存儲器裝置120的主機110,存儲器裝置120包含存儲器陣列130。主機110可為主機系統(tǒng),例如個人膝上型計算機、桌上型計算機、數(shù)碼相機、移動電話或存儲器卡讀取器以及各種其它類型的主機。主機110可包含系統(tǒng)主板及/或背板,且可包含數(shù)個處理資源(例如,一或多個處理器、微處理器或某一其它類型的控制電路),例如cpu、soc、asic及/或存儲器緩沖器(例如,已注冊雙列直插存儲器模塊(dimm))。系統(tǒng)100可包含單獨集成電路,或主機110及存儲器裝置120兩者可位于相同集成電路上。舉例來說,系統(tǒng)100可為服務(wù)器系統(tǒng)及/或高性能計算(hpc)系統(tǒng)及/或其部分。盡管在圖1中展示的實例說明具有馮·諾伊曼(vonneumann)架構(gòu)的系統(tǒng),但本發(fā)明的實施例可以非馮·諾伊曼架構(gòu)(例如,圖靈機(turingmachine),其可不包含通常與馮·諾伊曼架構(gòu)相關(guān)聯(lián)的一或多個組件(例如,cpu、alu等等))來實施。
為明確起見,系統(tǒng)100已經(jīng)簡化以集中于與本發(fā)明特定相關(guān)的特征。舉例來說,存儲器陣列130可為dram陣列、sram陣列、sttram陣列、pcram陣列、tram陣列、rram陣列、nand快閃陣列及/nor快閃陣列。陣列130可包括經(jīng)布置成通過存取線(在本文中可稱為字線或選擇線)耦合的行及通過感測線(在本文中可稱為數(shù)字線或數(shù)據(jù)線)耦合的列的存儲器單元。盡管在圖1中展示單個陣列130,但實施例并不如此受限制。舉例來說,存儲器裝置120可包含數(shù)個陣列130(例如,數(shù)個dram存儲器單元庫)。相關(guān)聯(lián)于圖6描述例示性dram陣列。
存儲器裝置120包含地址電路142以鎖存經(jīng)由i/o總線156(例如,數(shù)據(jù)總線)通過i/o電路144提供的地址信號。通過行解碼器146及列解碼器152來接收及解碼地址信號以存取存儲器陣列130??赏ㄟ^使用感測電路150來感測感測線上的電壓及/或電流改變以從存儲器陣列130讀取數(shù)據(jù)。感測電路150可從存儲器陣列130讀取及鎖存頁(例如,行)數(shù)據(jù)。i/o電路144可被用于經(jīng)由i/o總線156與主機110的雙向數(shù)據(jù)通信。寫入電路148用于將數(shù)據(jù)寫入到存儲器陣列130。
控制器140解碼通過控制總線154從主機110提供的信號。這些信號可包含用于控制對存儲器陣列130實行的操作(包含數(shù)據(jù)讀取、數(shù)據(jù)寫入及數(shù)據(jù)擦除操作)的芯片啟用信號、寫入啟用信號及地址鎖存信號。在各種實施例中,控制器140負(fù)責(zé)執(zhí)行來自主機110的指令。控制器140可為狀態(tài)機、序列發(fā)生器或某一其它類型的控制器。
如在下文進一步描述,控制器140可包括多個控制器(例如,單獨控制器單元)。在數(shù)個實施例中,感測電路150可包括數(shù)個感測放大器及數(shù)個計算組件,所述計算組件可包括累加器且可用于(例如,對與互補感測線相關(guān)聯(lián)的數(shù)據(jù))實行邏輯運算。在數(shù)個實施例中,感測電路(例如,150)可用于對存儲于陣列130中的數(shù)據(jù)實行(例如,執(zhí)行)運算且在不經(jīng)由感測線地址存取傳送數(shù)據(jù)(例如,不觸發(fā)列解碼信號)的情況下及/或在不啟用耦合到感測電路的本地i/o線的情況下將排序運算的結(jié)果存儲回到陣列130。因而,運算可使用感測電路150實行而非通過感測電路150外部的處理資源(例如,通過與主機110相關(guān)聯(lián)的處理器及/或定位于裝置120上(例如,在控制器140上或別處)的其它處理電路,例如alu電路)實行,及/或除了通過感測電路150外部的處理資源實行之外,還可使用感測電路150實行。在數(shù)個實施例中,感測電路150可被稱為執(zhí)行單元。執(zhí)行單元可耦合到存儲器陣列130及/或可與存儲器陣列130解耦合。
因而,在數(shù)個實施例中,由于感測電路150可經(jīng)控制以實行在使用存儲器陣列130的地址空間實行運算中所涉及的適當(dāng)計算,因此在陣列130及感測電路150外部的寄存器及/或alu可無需實行各種運算。另外,可在不使用外部處理資源的情況下實行運算。舉例來說,例如主機110的外部處理資源可產(chǎn)生控制流,但主機110(例如,主機的alu)可不用于實行與執(zhí)行對應(yīng)于控制流的指令相關(guān)聯(lián)的計算。
圖2是根據(jù)先前技術(shù)的呈計算系統(tǒng)200的形式的設(shè)備的框圖。系統(tǒng)200包含主機210、存儲器裝置220-1及存儲器裝置220-2。主機210包含alu260及高速緩沖存儲器262。存儲器裝置220-1包含存儲器陣列230。
如在本文中使用,主機210是第一裝置且存儲器裝置220-1是第二裝置。存儲器裝置220-1及/或存儲器裝置220-2可為易失性存儲器及/或非易失性存儲器。舉例來說,存儲器裝置220-1可為易失性存儲器(例如,dram)且存儲器裝置220-2可為非易失性存儲器(例如,硬盤驅(qū)動器、固態(tài)驅(qū)動器(ssd)等等)。
在數(shù)個先前方法中,主機210可從存儲器裝置220-1請求數(shù)據(jù)。存儲器裝置220-1可將存儲于存儲器陣列230中的數(shù)據(jù)傳送到主機210。如果存儲器裝置220-1不具有所請求數(shù)據(jù),那么存儲器裝置220-1可從存儲器裝置220-2檢索數(shù)據(jù)(例如,經(jīng)由由箭頭272表示的合適接口)。存儲器裝置220-1可將從存儲器裝置220-2檢索的數(shù)據(jù)存儲于存儲器陣列230中??赏ㄟ^主機210將數(shù)據(jù)存儲于高速緩沖存儲器262中。舉例來說,數(shù)據(jù)可為與實行特定任務(wù)(例如,程序)相關(guān)聯(lián)的一組可執(zhí)行指令。
主機210可使用alu260以識別需從存儲于高速緩沖存儲器262中的數(shù)據(jù)執(zhí)行的數(shù)個指令的位置。在通過alu260識別每一指令之后,主機210可執(zhí)行經(jīng)識別指令(如由箭頭268指示)。舉例來說,主機210可產(chǎn)生控制流且可進一步執(zhí)行與控制流相關(guān)聯(lián)的指令。
圖3是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)300的形式的設(shè)備的框圖。系統(tǒng)300包含主機310、存儲器裝置320-1及存儲器裝置320-2。在此實例中,主機310包含alu360及高速緩沖存儲器362,且存儲器裝置320-1包含控制器340、存儲器陣列330及感測電路350。
主機310可被稱為第一裝置且可包括cpu、soc(例如,其可包含數(shù)個處理器及數(shù)個通道控制器(未展示))及/或asic以及其它類型的裝置。主機310可用于產(chǎn)生控制流,其包含指令及與指令相關(guān)聯(lián)的執(zhí)行順序。在數(shù)個實例中,主機310可利用alu360產(chǎn)生控制流。在圖5中進一步描述產(chǎn)生控制流。
主機310可從存儲器裝置320-1請求與程序相關(guān)聯(lián)的數(shù)據(jù)。存儲器裝置可從存儲器陣列330檢索所請求數(shù)據(jù)。存儲器裝置可將數(shù)據(jù)傳回到主機310。主機可將數(shù)據(jù)存儲于高速緩沖存儲器362中且利用alu360產(chǎn)生控制流。在數(shù)個實例中,數(shù)據(jù)可為與一組可執(zhí)行指令(例如,程序)相關(guān)聯(lián)的數(shù)據(jù)。程序可以各種格式表示。舉例來說,程序可表示為源文件、匯編文件、目標(biāo)文件及/或可執(zhí)行文件。在數(shù)個實例中,可動態(tài)地產(chǎn)生程序。舉例來說,可經(jīng)由匯編文件及/或緩沖器提供程序。
主機310可使用從存儲器陣列330檢索的數(shù)據(jù)以產(chǎn)生控制流。舉例來說,alu360可用于檢索表示運算的數(shù)個指令。圖5進一步描繪產(chǎn)生指令的過程。
與圖2的實例(其中在主機210上執(zhí)行通過主機210產(chǎn)生的控制流指令(例如,如由箭頭268指示))相比,在圖3中展示的實例中,主機310可將控制流指令及與指令相關(guān)聯(lián)的執(zhí)行順序提供到存儲器裝置320-1以用于在裝置320-1上執(zhí)行(例如,經(jīng)由在裝置320-1本地的執(zhí)行單元)。舉例來說,盡管主機310包含alu360(其可經(jīng)配置以執(zhí)行通過主機310產(chǎn)生的控制流指令),但在數(shù)個實施例中,通過主機310產(chǎn)生的控制流指令的執(zhí)行發(fā)生在單獨裝置(例如,存儲器裝置320-1)上。作為實例,存儲器裝置320-1可在控制器340處從主機310接收控制流指令。舉例來說,控制器340可經(jīng)由存儲器裝置320-1的緩沖器、存儲器陣列及/或移位電路接收指令。
控制器340可控制對經(jīng)存儲于存儲器陣列330中的存儲器單元中的數(shù)據(jù)的控制流的執(zhí)行。舉例來說,控制器340可通過控制感測電路350來控制指令的執(zhí)行,感測電路350可充當(dāng)執(zhí)行單元以執(zhí)行與控制流指令相關(guān)聯(lián)的數(shù)個運算。相比之下,在圖2中展示的存儲器裝置220-1可具有控制器(未展示);然而,此控制器將控制除命令流指令以外的指令的執(zhí)行。舉例來說,裝置220-1上的控制器可控制存儲器命令操作(例如數(shù)據(jù)讀取、數(shù)據(jù)寫入及數(shù)據(jù)刷新操作,其并不涉及與計算相關(guān)聯(lián)的數(shù)據(jù)的操縱)的執(zhí)行,但將不控制命令流指令的執(zhí)行。
控制流指令可包含數(shù)個運算,包含and運算、or運算、invert(反相)運算及/或shift(移位)運算。數(shù)個運算可包含其它運算。舉例來說,運算可為任何數(shù)目個二進制運算及非二進制運算,例如加法運算、乘法運算及/或比較運算。在數(shù)個實例中,可在未經(jīng)由圖6中的輸入/輸出(i/o)線634傳送數(shù)據(jù)的情況下執(zhí)行數(shù)個運算。
控制器340可控制經(jīng)耦合到多個感測線(例如,圖6中的感測線605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s,統(tǒng)稱為感測線605)且經(jīng)形成于與陣列330中的多個存儲器單元(例如,圖6中的存儲器單元603-0、603-1、603-2、603-3、603-4、603-5、603-6、…、603-j,統(tǒng)稱為存儲器單元603)的間距上的多個計算組件(例如,圖6中的計算組件631-0、631-1、631-2、631-3、631-4、631-5、631-6、631-7、…、631-x,統(tǒng)稱為計算組件631)??刂破鬟€可控制經(jīng)耦合到多個計算組件631的多個感測放大器(例如,圖6中的感測放大器606-0、606-1、606-2、606-3、606-4、606-5、606-6、606-7、…、606-u,統(tǒng)稱為感測放大器606)。控制器340可控制計算組件631及感測放大器606以執(zhí)行指令。
舉例來說,控制器340可激活陣列330中的數(shù)個感測線605及存取線(例如,圖6中的存取線604-0、606-1、606-2、606-3、606-4、606-5、606-6、…、606-r,統(tǒng)稱為存取線604)以讀取陣列330中的數(shù)據(jù)。數(shù)據(jù)可被存儲于感測放大器606及/或計算組件631中??刂破?40可進一步激活與計算組件631及/或感測放大器606相關(guān)聯(lián)的感測線605、存取線604及/或鎖存器,以對經(jīng)存儲于感測線605及/或計算組件631中的數(shù)據(jù)執(zhí)行數(shù)個運算。
控制器340還可激活感測線605及/或存取線604,以將運算的結(jié)果(例如,數(shù)個指令的執(zhí)行結(jié)果)存儲回到陣列330。在數(shù)個實例中,控制器340可進一步將運算的結(jié)果及/或運算已經(jīng)執(zhí)行的指示傳送回到主機310。
在數(shù)個實例中,控制器340可包括數(shù)個控制器。舉例來說,控制器340可包括第一控制器及數(shù)個第二控制器。第一控制器可從主機310接收數(shù)個指令。指令可包含實行(例如)加法運算的指令。舉例來說,第一控制器可將數(shù)個指令轉(zhuǎn)譯為數(shù)個and運算、or運算、invert運算及/或shift運算。第一控制器可將and運算、or運算、invert運算及/或shift運算提供到數(shù)個第二控制器。數(shù)個第二控制器可控制計算組件631及感測放大器606以執(zhí)行and運算、or運算、invert運算及/或shift運算。舉例來說,數(shù)個第二控制器可激活與計算組件631及/或感測放大器606相關(guān)聯(lián)的感測線605、存取線604及/或鎖存器以執(zhí)行and運算、or運算、invert運算及/或shift運算。在數(shù)個實例中,數(shù)個第二控制器中的每一者可控制計算組件631及/或感測放大器606以執(zhí)行and運算、or運算、invert運算及/或shift運算中的至少一者。
根據(jù)數(shù)個實施例,其上產(chǎn)生控制流的裝置(例如,主機310)可獨立于其上執(zhí)行對應(yīng)控制流指令的裝置(存儲器裝置320-1)。作為實例,控制流可產(chǎn)生為數(shù)個部分。舉例來說,主機310可產(chǎn)生包含第一部分及第二部分的控制流,其中第一部分包括第一數(shù)目個控制流指令且第二部分包括第二數(shù)目個控制流指令。作為實例,主機310可產(chǎn)生與控制流的第一部分相關(guān)聯(lián)的第一數(shù)目個指令且將其提供到存儲器裝置320-1。當(dāng)?shù)谝粩?shù)目個指令的執(zhí)行發(fā)生在存儲器裝置320-1上時,主機310可產(chǎn)生與控制流的第二部分相關(guān)聯(lián)的第二數(shù)目個指令(例如,控制流的第二部分的產(chǎn)生可與控制流的第一部分的執(zhí)行同時發(fā)生)。存儲器裝置320-1可將第一數(shù)目個指令的執(zhí)行的結(jié)果傳回到主機310且主機310可將第二數(shù)目個指令提供到存儲器裝置320-1。存儲器裝置320-1可將第二數(shù)目個指令的執(zhí)行的結(jié)果及/或已執(zhí)行第二數(shù)目個指令的指示提供到主機310。
將控制流的產(chǎn)生與控制流的執(zhí)行分開提供在產(chǎn)生控制流的同時執(zhí)行控制流的能力。此外,將控制流的產(chǎn)生與控制流的執(zhí)行分開無需將結(jié)合控制流的執(zhí)行而進行運算的數(shù)據(jù)移動到主機310,這是由于經(jīng)由與主機310分開的裝置(例如,320-1)上的執(zhí)行單元執(zhí)行控制流指令。
圖4是根據(jù)本發(fā)明的數(shù)個實施例的呈計算系統(tǒng)的形式的設(shè)備的框圖。系統(tǒng)400包含可類似于圖3中的主機310的主機410。圖4還包含存儲器裝置420-1、420-2、…、420-n(例如,統(tǒng)稱為存儲器裝置420),其可類似于存儲器裝置320。
在此實例中,存儲器裝置420中的每一者包含控制器、存儲器陣列及感測電路。舉例來說,存儲器裝置420-1包含控制器440-1、存儲器陣列430-1及感測電路450-1,存儲器裝置420-2包含控制器440-2、存儲器陣列430-2及感測電路450-2,且存儲器裝置420-n包含控制器440-n、存儲器陣列430-n及感測電路450-n??刂破?40-1、控制器440-2、…、及控制器440-n統(tǒng)稱為控制器440。陣列430-1、陣列430-2、…、及陣列430-n統(tǒng)稱為陣列430。感測電路450-1、感測電路450-2、…、及感測電路450-n統(tǒng)稱為感測電路450。如在下文進一步描述,在數(shù)個實施例中,感測電路450可經(jīng)操作(例如,通過對應(yīng)控制器440)以充當(dāng)執(zhí)行單元。
主機410可產(chǎn)生數(shù)個不同控制流。控制流中的每一者可與特定存儲器裝置420相關(guān)聯(lián)。舉例來說,第一控制流可與存儲器裝置420-1相關(guān)聯(lián),第二控制流可與存儲器裝置420-2,…相關(guān)聯(lián),且第n控制流可與存儲器裝置420-n相關(guān)聯(lián)。從主機410到裝置420-1到420-n的箭頭表示其上可傳送數(shù)據(jù)、地址及/或命令的接口(例如,總線)。然而,舉例來說,裝置420可經(jīng)由共用總線耦合到主機410。
作為實例,不同控制流中的每一者可與單個(例如,相同)程序相關(guān)聯(lián)及/或不同控制流可與不同程序相關(guān)聯(lián)。舉例來說,第一控制流及第二控制流可與第一程序相關(guān)聯(lián)且第n控制流可與第二(例如,不同)程序相關(guān)聯(lián)。第一控制流可與獨立于第一程序的第二部分的第一程序的第一部分相關(guān)聯(lián)。第二控制流可與獨立于第一程序的第一部分的第一程序的第二部分相關(guān)聯(lián)。如果執(zhí)行與程序的第一部分相關(guān)聯(lián)的數(shù)個指令并不影響與程序的第二部分相關(guān)聯(lián)的第二數(shù)目個指令的執(zhí)行,那么第一部分可被視為獨立于程序的第二部分。
存儲器裝置420中的每一者可執(zhí)行來自與多個控制流相關(guān)聯(lián)的多個指令的不同指令。舉例來說,存儲器裝置420-1可執(zhí)行與第一控制流相關(guān)聯(lián)的第一數(shù)目個指令,存儲器裝置420-2可執(zhí)行與第二控制流相關(guān)聯(lián)的第二數(shù)目個指令,…,且存儲器裝置420-n可執(zhí)行與第n控制流相關(guān)聯(lián)的第n數(shù)目個指令。
與圖2的實例(其中控制流的產(chǎn)生及對應(yīng)控制流指令的執(zhí)行發(fā)生在相同裝置上)相比,本發(fā)明的實施例可涉及分開控制流的產(chǎn)生與控制流的執(zhí)行,此可允許數(shù)個過程同時執(zhí)行。如在本文中使用,過程是指經(jīng)執(zhí)行的程序的例子。舉例來說,可在執(zhí)行第二程序的同時執(zhí)行過程。
數(shù)個過程的同時執(zhí)行可包含在存儲器裝置420執(zhí)行控制流時產(chǎn)生控制流的主機410。舉例來說,主機410可產(chǎn)生第一控制流。主機410可將第一控制流提供到存儲器裝置420-1。當(dāng)存儲器裝置420-1經(jīng)由控制器440-1、存儲器陣列430-1及感測電路450-1執(zhí)行與第一控制流相關(guān)聯(lián)的第一數(shù)目個指令時,主機410可產(chǎn)生第二控制流。當(dāng)存儲器裝置420-1執(zhí)行與第一控制流相關(guān)聯(lián)的第一數(shù)目個指令時,主機410可將第二控制流提供到存儲器裝置420-2。當(dāng)存儲器裝置420-1及存儲器裝置420-2分別執(zhí)行與第一控制流相關(guān)聯(lián)的第一數(shù)目個指令及與第二控制流相關(guān)聯(lián)的第二數(shù)目個指令時,主機410可產(chǎn)生且提供第n控制流到存儲器裝置420-n。存儲器裝置420-2可經(jīng)由控制器440-2、存儲器陣列430-2及感測電路450-2執(zhí)行第二數(shù)目個指令。存儲器裝置420中的每一者可同時執(zhí)行與不同控制流相關(guān)聯(lián)的不同多個指令。舉例來說,存儲器裝置410-2可執(zhí)行第一數(shù)目個指令,存儲器裝置410-2可執(zhí)行第二數(shù)目個指令,且存儲器裝置410-n可同時執(zhí)行第n數(shù)目個指令。存儲器裝置410-n可經(jīng)由控制器440-n、存儲器陣列430-n及感測電路450-n執(zhí)行第n數(shù)目個指令。
存儲器裝置420中的每一者可傳回不同多個指令的執(zhí)行的結(jié)果及/或已執(zhí)行不同多個指令的指示。舉例來說,當(dāng)執(zhí)行第二數(shù)目個指令及第n數(shù)目個指令(例如,分別在裝置420-2及420-n上)時,存儲器裝置420-1可對主機410通知已執(zhí)行第一數(shù)目個指令。主機410可基于與第一控制流的第一數(shù)目個指令相關(guān)聯(lián)的結(jié)果而產(chǎn)生與第一控制流相關(guān)聯(lián)的不同控制流。當(dāng)存儲器裝置420-2及存儲器裝置420-n分別執(zhí)行第二數(shù)目個指令及第n數(shù)目個指令時,主機410可將不同控制流提供到存儲器裝置420-1??蛇B續(xù)產(chǎn)生不同控制流中的每一者。舉例來說,可在產(chǎn)生第一控制流之后產(chǎn)生第二控制流且可在產(chǎn)生第一控制流及第二控制流之后產(chǎn)生第n控制流??赏瑫r(例如,在相同時間)執(zhí)行與不同控制流相關(guān)聯(lián)的不同數(shù)目個指令中的每一者??稍诋a(chǎn)生不同控制流的同時執(zhí)行與控制流相關(guān)聯(lián)的不同數(shù)目個指令中的每一者。
圖4的實例通過將控制流的產(chǎn)生與控制流的執(zhí)行分開而提供產(chǎn)生數(shù)個控制流且同時執(zhí)行數(shù)個控制流的能力。與如在圖2的實例中所提供那樣一次執(zhí)行單個控制流相比,同時執(zhí)行數(shù)個控制流可增大生產(chǎn)率且可同時利用更大數(shù)目個計算資源。作為實例,主機410的alu460可經(jīng)配置以確定產(chǎn)生及/或在裝置420中分布控制流以用于執(zhí)行的方式。
圖5是根據(jù)本發(fā)明的數(shù)個實施例的控制流及控制流的執(zhí)行的框圖。圖5說明包含裝置510及裝置520的系統(tǒng)500。產(chǎn)生控制流可包含提取、解碼且產(chǎn)生控制流指令,控制流指令可包含存儲器可操作指令。執(zhí)行存儲器可操作指令包含:接收存儲器可操作指令586;操作執(zhí)行單元(例如,通過激活存取線、感測線及鎖存器);及傳回存儲器可操作指令的執(zhí)行的結(jié)果。
在圖5中展示的實例中,裝置510可為經(jīng)配置以產(chǎn)生控制流的主機(例如,主機410),且裝置520可為經(jīng)配置以執(zhí)行通過裝置510產(chǎn)生的至少一些控制流指令的存儲器裝置(例如,裝置420)。提取、解碼及/或產(chǎn)生存儲器可操作指令可被分類為主機可操作指令。主機可操作指令是主機(例如,裝置510)用于產(chǎn)生存儲器可操作指令的指令。舉例來說,主機可操作指令是主機用于產(chǎn)生由裝置520執(zhí)行的數(shù)個操作的指令。在下文進一步描述存儲器可操作指令。
如在上文描述,裝置510可為主機且裝置520可為存儲器裝置。主機510可與程序計數(shù)器相關(guān)聯(lián)。程序計數(shù)器保持待執(zhí)行的下一指令的存儲器地址。程序計數(shù)器可經(jīng)累加以獲得后繼指令的地址。
在580處,裝置510使用程序計數(shù)器從存儲器提取指令。在提取操作結(jié)束時,程序計數(shù)器可指向?qū)⒃谙乱谎h(huán)讀取的下一指令。裝置510可將所提取指令存儲于高速緩沖存儲器中。舉例來說,高速緩沖存儲器可為指令寄存器及/或另一形式的存儲器。
在582處,裝置510解碼所提取指令。解碼所提取指令可包含基于與所提取指令相關(guān)聯(lián)的操作碼確定待經(jīng)實行的運算。舉例來說,裝置510可解碼指令(例如,所提取指令)以確定待實行加法運算。
在584處,裝置510產(chǎn)生存儲器可操作指令。產(chǎn)生存儲器可操作指令可包含動態(tài)地產(chǎn)生存儲器可操作指令。動態(tài)地產(chǎn)生存儲器可操作指令可同義于動態(tài)地產(chǎn)生控制流,這是因為存儲器可操作指令可為與控制流相關(guān)聯(lián)的控制流指令??稍谘b置510評估經(jīng)解碼指令以產(chǎn)生存儲器可操作指令時動態(tài)地產(chǎn)生存儲器可操作指令。裝置510可通過評估經(jīng)解碼指令以產(chǎn)生存儲器可操作指令而動態(tài)地產(chǎn)生存儲器可操作指令。舉例來說,經(jīng)解碼指令可為如果則語句。可由裝置510動態(tài)地評估如果則語句。裝置510可基于如果則語句的評估動態(tài)地選擇第一存儲器可操作指令而非第二存儲器可操作指令。在數(shù)個實例中,可在已編譯程序之后動態(tài)地產(chǎn)生存儲器可操作指令。
如在本文中使用,存儲器可操作指令是指待由裝置520執(zhí)行的指令。存儲器可操作指令可包含邏輯運算(例如,and運算、or運算等等)、加法運算、減法運算、乘法運算、除法運算及/或比較運算以及可與控制流指令相關(guān)聯(lián)的其它類型的運算。此外,存儲器可操作指令可包含讀取操作及/或?qū)懭氩僮?例如,并不涉及操縱數(shù)據(jù)的存儲器命令)。
可由裝置510產(chǎn)生多個存儲器可操作指令或可產(chǎn)生單個存儲器可操作指令。在586處,裝置520可接收存儲器可操作指令??稍诳刂破?例如,控制器340)處接收存儲器可操作指令。在588處,裝置520可激活存取線、感測線及/或鎖存器以執(zhí)行存儲器可操作指令。舉例來說,控制器可激活與裝置520中的存儲器陣列及/或感測電路相關(guān)聯(lián)的數(shù)個存取線、感測線及/或鎖存器。激活數(shù)個存取線、感測線及/或鎖存器可將數(shù)據(jù)從陣列移動到感測電路中。
控制器可進一步激活感測電路中的存取線、感測線及/或鎖存器以對存儲于感測電路中的數(shù)據(jù)執(zhí)行存儲器可操作指令。在數(shù)個實例中,存儲器可操作指令的執(zhí)行的結(jié)果可存儲回到陣列。在590處,可將存儲器可操作指令的結(jié)果傳回到裝置510。
在數(shù)個實例中,裝置510及裝置520至少部分解碼指令。舉例來說,裝置510可部分解碼指令以產(chǎn)生存儲器可操作指令。裝置510可將經(jīng)部分解碼的存儲器可操作指令提供到裝置520中的控制器。解碼器可進一步解碼存儲器可操作指令且執(zhí)行經(jīng)完全解碼的存儲器可操作指令。
在數(shù)個實例中,當(dāng)在裝置520上執(zhí)行存儲器可操作指令時,裝置510可留存對存儲器可操作指令的部分控制。裝置510可通過部分解碼存儲器可操作指令來留存對存儲器可操作指令的部分控制。舉例來說,裝置510可通過將虛擬地址轉(zhuǎn)譯為物理存儲器地址來部分解碼存儲器可操作指令且裝置520可從經(jīng)轉(zhuǎn)譯物理存儲器地址檢索指令。裝置510可通過將虛擬地址轉(zhuǎn)譯為物理存儲器地址來留存對存儲器可操作指令的部分控制。
圖6說明根據(jù)本發(fā)明的數(shù)個實施例的存儲器陣列630的部分的示意圖。陣列630包含耦合到存取線604-0、604-1、604-2、604-3、604-4、604-5、604-6、…、604-r的行及感測線605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s的列(其可統(tǒng)稱為存取線604及感測線605)的存儲器單元603-0、603-1、603-3、603-4、603-5、603-6、603-7、603-8、……、603-j(例如,統(tǒng)稱為存儲器單元603)。存儲器陣列630不限于特定數(shù)目個存取線及/或感測線,且使用術(shù)語“行”及“列”并不意味存取線及/或感測線的特定物理結(jié)構(gòu)及/或定向。盡管未描繪,存儲器單元的每一列可與一對對應(yīng)互補感測相關(guān)聯(lián)。舉例來說,陣列630可為例如圖3中的陣列330或圖4中的陣列430的陣列。
存儲器單元的每一列可耦合到感測電路(例如,在圖1中展示的感測電路150)。在此實例中,感測電路包括耦合到相應(yīng)感測線605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s的數(shù)個感測放大器606-0、606-1、606-2、606-3、606-4、606-5、606-6、606-7、…、606-u(例如,統(tǒng)稱為感測放大器606)。感測放大器606經(jīng)由存取裝置(例如,晶體管)608-0、608-2、608-3、608-4、608-5、608-6、608-7、…、608-v耦合到輸入/輸出(i/o)線634(例如,本地i/o線)。在此實例中,感測電路還包括耦合到相應(yīng)感測線的數(shù)個計算組件631-0、631-1、631-2、631-3、631-4、631-5、631-6、631-7、…、631-x(統(tǒng)稱為計算組件631)。列解碼線610-0到610-w分別耦合到晶體管608-0到608-v的柵極,且可經(jīng)選擇性地激活以將通過相應(yīng)感測放大器606-0到606-u感測及/或存儲于相應(yīng)計算組件631-0到631-x中的數(shù)據(jù)傳送到次級感測放大器612及/或到陣列630外部的處理資源(例如,經(jīng)由i/o線634)。在數(shù)個實施例中,計算組件631可形成于與其對應(yīng)行的存儲器單元及/或與對應(yīng)感測放大器606的間距上。
可通過控制器(例如,140、340及440)控制感測電路(例如,計算組件631及感測放大器606)以執(zhí)行根據(jù)本文中描述的數(shù)個實施例的控制流操作。結(jié)合圖3到5描述的實例證明如何可對存儲于例如陣列630的陣列中的數(shù)據(jù)(例如,元素)執(zhí)行運算。
圖7是說明根據(jù)本發(fā)明的數(shù)個實施例的具有可選邏輯運算選擇邏輯的感測電路的示意圖。圖7展示耦合到相應(yīng)互補感測線對705-1及705-2的數(shù)個感測放大器706及經(jīng)由傳遞門707-1及707-2耦合到感測放大器706的對應(yīng)數(shù)目個計算組件731??赏ㄟ^邏輯運算選擇邏輯信號pass控制傳遞門707-1及707-2的柵極。舉例來說,邏輯運算選擇邏輯713-6的輸出可耦合到傳遞門707-1及707-2的柵極。
根據(jù)在圖7中說明的實施例,計算組件731可包括經(jīng)配置以向左及向右移位數(shù)據(jù)值的可負(fù)載移位寄存器的相應(yīng)階(例如,移位單元)。舉例來說,如在圖7中說明,移位寄存器的每一計算組件731(例如,階)包括一對右移位晶體管781及786、一對左移位晶體管789及790及一對反相器787及788。可將信號phase1r、phase2r、phase1l及phase2l施加到相應(yīng)控制線782、783、791及792以結(jié)合實行與根據(jù)本文中描述的實施例相關(guān)聯(lián)的邏輯運算及/或移位數(shù)據(jù)而啟用/停用對應(yīng)計算組件831的鎖存器上的反饋。在下文關(guān)于圖9進一步描述移位數(shù)據(jù)的實例(例如,從特定計算組件731到相鄰計算組件731)。
邏輯運算選擇邏輯713-6包含交換門742以及用以控制傳遞門707-1及707-2及交換門742的邏輯。邏輯運算選擇邏輯713-6包含四個邏輯選擇晶體管:邏輯選擇晶體管762,其耦合在交換晶體管742的柵極與tf信號控制線之間;邏輯選擇晶體管752,其耦合在傳遞門707-1及707-2的柵極與tt信號控制線之間;邏輯選擇晶體管754,其耦合在傳遞門707-1及707-2的柵極與ft信號控制線之間;及邏輯選擇晶體管764,其耦合在交換晶體管742的柵極與ff信號控制線之間。通過隔離晶體管750-1(具有耦合到iso信號控制線的柵極)將邏輯選擇晶體管762及752的柵極耦合到真感測線。通過隔離晶體管750-2(還具有耦合到iso信號控制線的柵極)將邏輯選擇晶體管764及754的柵極耦合到互補感測線。圖9說明與使用在圖7中展示的感測電路實行邏輯運算及移位運算相關(guān)聯(lián)的時序圖。
圖8是說明根據(jù)本發(fā)明的數(shù)個實施例的通過感測電路(例如,在圖7中展示的感測電路)實施的可選邏輯運算結(jié)果的邏輯表。四個邏輯選擇控制信號(例如,tf、tt、ft及ff)可連同存在于互補感測線上的特定數(shù)據(jù)值一起用于選擇多個邏輯運算中的一者以實施涉及存儲于感測放大器706及計算組件731中的開始數(shù)據(jù)值。四個控制信號(例如,tf、tt、ft及ff)連同存在于互補感測線上(例如,節(jié)點s及s*上)的特定數(shù)據(jù)值一起控制傳遞門707-1及707-2及交換晶體管742,其又影響在觸發(fā)之前/之后計算組件731及/或感測放大器706中的數(shù)據(jù)值。可選擇性地控制交換晶體管742的能力促進實施尤其涉及反相數(shù)據(jù)值(例如,反相操作數(shù)及/或反相結(jié)果)的邏輯運算。
在圖8中說明的邏輯表8-1展示在844處的欄a中展示的存儲于計算組件731中的開始數(shù)據(jù)值及在845處的欄b中展示的存儲于感測放大器706中的開始數(shù)據(jù)值。邏輯表8-1中的其它3欄標(biāo)頭是指傳遞門707-1及707-2以及交換晶體管742的狀態(tài),其可取決于四個邏輯選擇控制信號(例如,tf、tt、ft及ff)的狀態(tài)以及iso控制信號經(jīng)斷言時存在于所述對互補感測線705-1及705-2上的特定數(shù)據(jù)值而分別經(jīng)控制為打開或關(guān)閉。“notopen”欄對應(yīng)于都處于非傳導(dǎo)條件下的傳遞門707-1及707-2以及交換晶體管742,“opentrue”欄對應(yīng)于處于傳導(dǎo)條件下的傳遞門707-1及707-2,且“openinvert”欄對應(yīng)于處于傳導(dǎo)條件下的交換晶體管742。邏輯表8-1中未反映對應(yīng)于都處于傳導(dǎo)條件下的傳遞門707-1及707-2以及交換晶體管742的配置,這是由于此導(dǎo)致感測線短接在一起。
經(jīng)由傳遞門707-1及707-2以及交換晶體管742的選擇性控制,邏輯表8-1的上部的三列中的每一者可與邏輯表8-1的下部的三列中的每一者組合以提供對應(yīng)于九個不同邏輯運算的九個(例如,3x3)不同結(jié)果組合,如通過在875處展示的各種連接路徑指示。在邏輯表8-2中概述可由感測電路750實施的九個不同可選邏輯運算。
邏輯表8-2的列展示標(biāo)頭880,其包含邏輯選擇控制信號(例如,ff、ft、tf、tt)的狀態(tài)。舉例來說,在行876中提供第一邏輯選擇控制信號(例如,ff)的狀態(tài),在行877中提供第二邏輯選擇控制信號(例如,ft)的狀態(tài),在行878中提供第三邏輯選擇控制信號(例如,tf)的狀態(tài),且在行879中提供第四邏輯選擇控制信號(例如,tt)的狀態(tài)。在行847中概述對應(yīng)于結(jié)果的特定邏輯運算。
圖9說明根據(jù)本發(fā)明的數(shù)個實施例的與使用感測電路執(zhí)行邏輯and運算及移位運算相關(guān)聯(lián)的時序圖。圖9包含對應(yīng)于信號eq、rowx、rowy、senseamp、tf、tt、ft、ff、phase1r、phase2r、phase1l、phase2l、iso、pass、pass*、digit及digit_的波形。eq信號對應(yīng)于與感測放大器(例如,感測放大器706)相關(guān)聯(lián)的平衡信號(未展示)。rowx及rowy信號對應(yīng)于施加到相應(yīng)存取線(例如,在圖6中展示的存取線row1及row2)的信號以存取選定存儲器單元(或單元的行)。senseamp信號對應(yīng)于用于啟用/停用感測放大器(例如,感測放大器706)的信號。tf、tt、ft及ff信號對應(yīng)于例如在圖7中展示的邏輯選擇控制信號(例如,耦合到邏輯選擇晶體管762、752、754及764的信號)。phase1r、phase2r、phase1l及phase2l信號對應(yīng)于提供到在圖7中展示的相應(yīng)控制線782、783、791及792的控制信號(例如,時鐘信號)。iso信號對應(yīng)于耦合到在圖7中展示的隔離晶體管750-1及750-2的柵極的信號。pass信號對應(yīng)于耦合到在圖7中展示的傳遞晶體管707-1及707-2的柵極的信號,且pass*信號對應(yīng)于耦合到交換晶體管742的柵極的信號。digit及digit_信號對應(yīng)于存在于相應(yīng)感測線705-1(例如,digit(n))及705-2(例如,digit(n)_)上的信號。
在圖9中展示的時序圖與對存儲于陣列的第一存儲器單元中的數(shù)據(jù)值及存儲于第二存儲器單元中的數(shù)據(jù)值實行邏輯and運算相關(guān)聯(lián)。存儲器單元可對應(yīng)于陣列的特定列(例如,包括一對互補感測線的列)且可耦合到相應(yīng)存取線(例如,rowx及rowy)。在描述圖9中展示的邏輯and運算時,將參考在圖7中描述的感測電路。舉例來說,在圖9中描述的邏輯運算可包含:將rowx存儲器單元的數(shù)據(jù)值(例如,“rowx”數(shù)據(jù)值)存儲于對應(yīng)計算組件731(其可稱為累加器731)的鎖存器(例如,“a”數(shù)據(jù)值)中;將rowy存儲器單元的數(shù)據(jù)值(例如,“rowy”數(shù)據(jù)值)存儲于對應(yīng)感測放大器706的鎖存器(例如,“b”數(shù)據(jù)值)中;及對rowx數(shù)據(jù)值及rowy數(shù)據(jù)值實行選定邏輯運算(例如,此實例中的邏輯and運算),其中將選定邏輯運算的結(jié)果存儲于計算組件731的鎖存器中。
如在圖9中展示,在時間t1,停用感測放大器706的平衡(例如,eq降低)。在時間t2,rowx升高以存取(例如,選擇)rowx存儲器單元。在時間t3,啟用感測放大器706(例如,senseamp升高),這響應(yīng)于rowx數(shù)據(jù)值(例如,如通過digit及digit_信號展示)而將互補感測線705-1及705-2驅(qū)動到適當(dāng)軌電壓(例如,vdd及gnd),且將rowx數(shù)據(jù)值鎖存于感測放大器706中。在時間t4,phase2r及phase2l信號降低,這停用計算組件731的鎖存器上的反饋(例如,通過分別關(guān)斷晶體管786及790),使得可在邏輯運算期間覆寫存儲于計算組件中的值。而且,在時間t4,iso降低,這停用隔離晶體管750-1及750-2。在時間t5,啟用tt及ft(例如,升高),這導(dǎo)致pass升高(例如,由于晶體管752或754將取決于節(jié)點st2或節(jié)點sf2的哪一者在時間t4停用iso時為高而傳導(dǎo))(回想起當(dāng)iso停用時,節(jié)點st2及sf2的電壓動態(tài)地駐留于相應(yīng)啟用晶體管752及754的柵極上)。pass升高啟用傳遞晶體管707-1及707-2,使得將對應(yīng)于rowx數(shù)據(jù)值的digit及digit_信號提供到相應(yīng)計算組件節(jié)點st2及sf2。在時間t6,停用tt及ft,這導(dǎo)致pass降低,從而停用傳遞晶體管707-1及707-2。注意,由于tf及ff信號保持低,因此pass*在時間t5與t6之間保持低。在時間t7,停用rowx,且啟用phase2r、phase2l及iso。在時間t7啟用phase2r及phase2l啟用計算組件731的鎖存器上的反饋,使得rowx數(shù)據(jù)值鎖存于其中。在時間t7啟用iso再次將節(jié)點st2及sf2耦合到啟用晶體管752、754、762及764的柵極。在時間t8,啟用平衡(例如,eq升高,使得digit及digit_經(jīng)驅(qū)動到例如vdd/2的平衡電壓)且停用感測放大器706(例如,senseamp降低)。
在rowx數(shù)據(jù)值鎖存于計算組件731中的情況下,停用平衡(例如,eq在時間t9降低)。在時間t10,rowy升高以存取(例如,選擇)rowy存儲器單元。在時間t11,啟用感測放大器706(例如,senseamp升高),這響應(yīng)于rowy數(shù)據(jù)值(例如,如通過digit及digit_信號展示)而將互補感測線705-1及705-2驅(qū)動到適當(dāng)軌電壓(例如,vdd及gnd),且將rowy數(shù)據(jù)值鎖存于感測放大器706中。在時間t12,phase2r及phase2l信號降低,這停用計算組件731的鎖存器上的反饋(例如,通過分別關(guān)斷晶體管786及790),使得可在邏輯運算期間覆寫存儲于計算組件中的值。而且,在時間t12,iso降低,這停用隔離晶體管750-1及750-2。由于此實例中的所要邏輯運算是and運算,因此在時間t13,啟用tt而tf、ft及ff保持停用(如在表8-2中展示,ff=0,ft=0,tf=0且tt=1對應(yīng)于邏輯and運算)。啟用tt是否導(dǎo)致pass升高取決于在時間t12停用iso時存儲于計算組件731中的值。舉例來說,如果節(jié)點st2在停用iso時為高,那么啟用晶體管752將傳導(dǎo),且如果節(jié)點st2在時間t12停用iso時為低,那么啟用晶體管將不傳導(dǎo)。
在此實例中,如果pass在時間t13升高,那么啟用傳遞晶體管707-1及707-2,使得將對應(yīng)于rowy數(shù)據(jù)值的digit及digit_信號提供到相應(yīng)計算組件節(jié)點st2及sf2。因而,存儲于計算組件731中的值(例如,rowx數(shù)據(jù)值)可取決于digit及digit_的值(例如,rowy數(shù)據(jù)值)而翻轉(zhuǎn)。在此實例中,如果pass在時間t13保持低,那么不啟用傳遞晶體管707-1及707-2,使得對應(yīng)于rowy數(shù)據(jù)值的digit及digit_信號保持與計算組件731的節(jié)點st2及sf2隔離。因而,計算組件中的數(shù)據(jù)值(例如,rowx數(shù)據(jù)值)將保持相同。
在時間t14,停用tt,這導(dǎo)致pass降低(或保持低),使得停用傳遞晶體管707-1及707-2。注意,由于tf及ff信號保持低,因此pass*在時間t13與t14之間保持低。在時間t15,停用rowy,且啟用phase2r、phase2l及iso。在時間t15啟用phase2r及phase2l啟用計算組件731的鎖存器上的反饋,使得and運算(例如,“a”and“b”)的結(jié)果鎖存于其中。在時間t15啟用iso再次將節(jié)點st2及sf2耦合到啟用晶體管752、754、762及764的柵極。在時間t16,啟用平衡(例如,eq升高,使得digit及digit_經(jīng)驅(qū)動到平衡電壓)且停用感測放大器706(例如,senseamp降低)。
可經(jīng)由i/o線將and運算的結(jié)果(在此實例中,其最初存儲于計算組件731中)傳送回到存儲器陣列(例如,到經(jīng)由互補感測線耦合到rowx、rowy及/或不同行的存儲器單元)及/或到外部位置(例如,外部處理組件)。
圖9還包含(例如,在901處)與移位數(shù)據(jù)(例如,從計算組件731到相鄰計算組件731)相關(guān)聯(lián)的發(fā)信號。在圖9中展示的實例說明兩個左移位,使得存儲于對應(yīng)于列“n”的計算組件中的數(shù)據(jù)值向左移位到對應(yīng)于列“n-2”的計算組件。如在時間t16展示,停用phase2r及phase2l,這停用計算組件鎖存器上的反饋,如在上文描述。為實行第一左移位,在時間t17啟用phase1l且在時間t18停用phase1l。啟用phase1l導(dǎo)致晶體管789傳導(dǎo),這導(dǎo)致節(jié)點sf1處的數(shù)據(jù)值向左移動到左相鄰計算組件731的節(jié)點sf2。隨后在時間t19啟用phase2l且在時間t20停用phase2l。啟用phase2l導(dǎo)致晶體管790傳導(dǎo),這導(dǎo)致來自節(jié)點st1的數(shù)據(jù)值向左移動到節(jié)點st2從而完成左移位。
上述序列(例如,啟用/停用phase1l且隨后啟用/停用phase2l)可經(jīng)重復(fù)以實現(xiàn)所要數(shù)目個左移位。舉例來說,在此實例中,通過在時間t21啟用phase1l且在時間t22停用phase1l而實行第二左移位。隨后在時間t23啟用phase2l以完成第二左移位。繼第二左移位之后,phase2l保持啟用且phase2r經(jīng)啟用(例如,在時間t24),使得啟用反饋以將數(shù)據(jù)值鎖存于計算組件鎖存器中。
盡管已在本文中說明及描述特定實施例,但所屬領(lǐng)域的一般技術(shù)人員將了解,經(jīng)計算以實現(xiàn)相同結(jié)果的布置可取代展示的特定實施例。本發(fā)明希望涵蓋本發(fā)明的一或多個實施例的調(diào)適或變動。應(yīng)理解,已以闡釋性方式而非限制性方式做出上述描述。所屬領(lǐng)域的技術(shù)人員在檢視上述描述后將明白在本文中未具體描述的上述實施例的組合及其它實施例。本發(fā)明的一或多個實施例的范圍包含其中使用上述結(jié)構(gòu)及方法的其它應(yīng)用。因此,應(yīng)參考所附權(quán)利要求書以及此權(quán)利要求書所授權(quán)的等效物的全范圍確定本發(fā)明的一或多個實施例的范圍。
在前述具體實施方式中,出于簡化本發(fā)明的目的,將一些特征集中于單個實施例中。本發(fā)明的此方法不應(yīng)解釋為反映本發(fā)明的所揭示實施例必須使用多于每一權(quán)利要求中明確敘述的特征的意圖。而是,如所附權(quán)利要求書反映,本發(fā)明標(biāo)的物在于少于單個所揭示實施例的所有特征。因此,特此將所附權(quán)利要求書并入具體實施方式中,其中每一權(quán)利要求獨立地作為單獨實施例。