TWI601149B - 用於執行乘法運算之方法及裝置 - Google Patents
用於執行乘法運算之方法及裝置 Download PDFInfo
- Publication number
- TWI601149B TWI601149B TW104129201A TW104129201A TWI601149B TW I601149 B TWI601149 B TW I601149B TW 104129201 A TW104129201 A TW 104129201A TW 104129201 A TW104129201 A TW 104129201A TW I601149 B TWI601149 B TW I601149B
- Authority
- TW
- Taiwan
- Prior art keywords
- comp
- stored
- bit vector
- column
- coupled
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17732—Macroblocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
Description
本發明大體上係關於半導體記憶體裝置及方法,且更特定言之,本發明係關於與在記憶體中執行乘法運算有關之裝置及方法。
記憶體器件通常提供為電腦或其他電子系統中之內部半導體積體電路。存在諸多不同類型之記憶體,其包含揮發性記憶體及非揮發性記憶體。揮發性記憶體需要電力來維持其資料(例如主機資料、錯誤資料等等)且尤其包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、同步動態隨機存取記憶體(SDRAM)及閘流體隨機存取記憶體(TRAM)。非揮發性記憶體可藉由在未被供電時保持儲存資料而提供永久性資料,且可尤其包含反及(NAND)快閃記憶體、反或(NOR)快閃記憶體及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻性隨機存取記憶體(RRAM)及磁阻性隨機存取記憶體(MRAM),諸如自旋力矩轉移隨機存取記憶體(STT RAM))。
電子系統通常包含若干處理資源(例如一或多個處理器),其等可擷取及執行指令且將所執行指令之結果儲存至一適合位置。一處理器可包括若干功能單元(例如,本文中指稱功能單元電路(FUC))(諸如算術邏輯單元(ALU)電路、浮點單元(FPU)電路及/或一組合邏輯區塊),例如,其等可執行指令以對資料(例如一或多個運算元)執行邏輯運
算,諸如「及」、「或」、「非」、「反及」、「反或」及「互斥或」邏輯運算。
一電子系統中之若干組件可涉及將指令提供至功能單元電路來執行。可由(例如)一處理資源(諸如一控制器及/或主機處理器)產生指令。可將資料(例如將對其執行指令以執行邏輯運算之運算元)儲存於可由FUC存取之一記憶體陣列中。可自憶體陣列擷取指令及/或資料且可在FUC開始對資料執行指令之前序列化及/或緩衝指令及/或資料。此外,因為可透過FUC而在一或多個時脈週期中執行不同類型之運算,所以亦可序列化及/或緩衝運算及/或資料之中間結果。
在諸多例項中,處理資源(例如處理器及/或相關聯之FUC)可位於記憶體陣列之外部,且可存取資料(例如,經由處理資源與記憶體陣列之間的一匯流排而執行指令)。可經由一匯流排而將資料自記憶體陣列移動至記憶體陣列外部之暫存器。
100‧‧‧計算系統
110‧‧‧主機
130‧‧‧記憶體陣列
140‧‧‧控制電路
142‧‧‧位址電路
144‧‧‧輸入/輸出(I/O)電路
146‧‧‧列解碼器
148‧‧‧寫入電路
150‧‧‧感測電路
152‧‧‧行解碼器
154‧‧‧控制匯流排
156‧‧‧輸入/輸出(I/O)匯流排
120‧‧‧記憶體器件
202-1‧‧‧電晶體
202-2‧‧‧電晶體
203-1‧‧‧電容器/儲存元件
203-2‧‧‧電容器/儲存元件
204-X‧‧‧字線/存取線/列X
204-Y‧‧‧字線/存取線/列Y
205-1‧‧‧資料線(D)
205-2‧‧‧資料線(D_)
206‧‧‧感測放大器
207-1‧‧‧下拉電晶體
207-2‧‧‧下拉電晶體
208-1‧‧‧負載/通路電晶體
208-2‧‧‧負載/通路電晶體
209-1‧‧‧n通道電晶體(NMOS電晶體)
209-2‧‧‧n通道電晶體(NMOS電晶體)
212-1‧‧‧主動負控制信號線(ACCUMB)
212-2‧‧‧主動正控制信號線(ACCUM)
213-1‧‧‧ANDinv控制信號線
213-2‧‧‧ORinv控制信號線
214-1‧‧‧下拉電晶體
214-2‧‧‧下拉電晶體
215‧‧‧鎖存器
216-1‧‧‧電晶體
216-2‧‧‧電晶體
217-1‧‧‧鎖存器輸入
217-2‧‧‧鎖存器輸入
218-1‧‧‧負載/通路電晶體
218-2‧‧‧負載/通路電晶體
219‧‧‧控制信號(SHIFT)
221-1‧‧‧隔離電晶體
221-2‧‧‧隔離電晶體
221-3‧‧‧隔離電晶體
221-4‧‧‧隔離電晶體
222‧‧‧控制信號(NORM)
223‧‧‧移位電路
224‧‧‧電晶體
225-1‧‧‧電晶體
225-2‧‧‧電晶體
227-1‧‧‧n通道電晶體(NMOS電晶體)
227-2‧‧‧n通道電晶體(NMOS電晶體)
228‧‧‧主動負控制信號(RnIF)
229-1‧‧‧p通道電晶體(PMOS電晶體)
229-2‧‧‧p通道電晶體(PMOS電晶體)
230‧‧‧記憶體陣列
231‧‧‧計算組件/累加器
233-1‧‧‧鎖存器輸入
233-2‧‧‧鎖存器輸入
238‧‧‧平衡電壓
239-1‧‧‧電晶體
239-2‧‧‧電晶體
250‧‧‧感測電路
264‧‧‧靜態鎖存器/次級鎖存器
265‧‧‧主動正控制信號(ACT)
291-1‧‧‧參考電壓/負控制信號線
330‧‧‧記憶體陣列
303‧‧‧記憶體胞
303-0至303-J‧‧‧記憶體胞
304-0至304-R‧‧‧存取線
305-0至305-S‧‧‧感測線
306‧‧‧感測放大器(SA)
306-0至306-U‧‧‧感測放大器(SA)
308-0至308-V‧‧‧存取器件/電晶體
310-0至310-W‧‧‧行解碼線
312‧‧‧次級感測放大器(SSA)
331‧‧‧計算組件(CC)
331-0至331-X‧‧‧計算組件(CC)
334‧‧‧輸入/輸出(I/O)線
431‧‧‧位元向量(Comp_Comp)
433‧‧‧位元向量(Dynamic Mask)
435‧‧‧位元向量(Static Mask)
437‧‧‧位元向量(Carry)
439‧‧‧位元向量(Intermediate)
441‧‧‧位元向量(Iterator)
443‧‧‧位元向量(Srca)
445‧‧‧位元向量(Srcb)
447‧‧‧位元向量(Vector Mask)
449‧‧‧位元向量(Dest)
451-1至451-6‧‧‧列
451-7.a至451-7.x‧‧‧列
453-7.a至453-7.x‧‧‧列
455-7.a至455-7.x‧‧‧列
503‧‧‧信號
504‧‧‧列啟動信號
504-0‧‧‧列信號
504-1‧‧‧列信號
505-1‧‧‧資料線電壓信號
505-2‧‧‧資料線電壓信號
511‧‧‧Passd控制信號
511-1‧‧‧控制信號(Passd)
511-2‧‧‧控制信號(Passsb)
512-1‧‧‧累加器控制信號(ACCUMB)
512-2‧‧‧累加器控制信號(ACCUM)
526‧‧‧平衡信號
528‧‧‧負控制信號
590‧‧‧正控制信號
705-1‧‧‧感測線
705-2‧‧‧感測線
706‧‧‧感測放大器
713-5‧‧‧邏輯運算選擇邏輯
731‧‧‧計算組件
742‧‧‧交換閘/交換電晶體
750‧‧‧感測電路
750-1‧‧‧隔離電晶體
750-2‧‧‧隔離電晶體
752‧‧‧邏輯選擇電晶體
754‧‧‧邏輯選擇電晶體
762‧‧‧邏輯選擇電晶體
764‧‧‧邏輯選擇電晶體
793-1‧‧‧通閘
793-2‧‧‧通閘
844‧‧‧行A
845‧‧‧行B
847‧‧‧列
856‧‧‧「不打開」行
870‧‧‧「打開真」
871‧‧‧「打開反相」
875‧‧‧連接路徑
876‧‧‧列
877‧‧‧列
878‧‧‧列
879‧‧‧列
880‧‧‧標頭
ACT‧‧‧控制信號
EQ‧‧‧控制信號
FF‧‧‧邏輯選擇控制信號
FT‧‧‧邏輯選擇控制信號
GND‧‧‧接地
ISO‧‧‧控制信號
PASS‧‧‧邏輯運算選擇邏輯信號
PASS*‧‧‧邏輯運算選擇邏輯信號
RnIF‧‧‧負控制信號
TF‧‧‧邏輯選擇控制信號
TT‧‧‧邏輯選擇控制信號
VDD‧‧‧供應電壓
圖1係根據本發明之若干實施例之呈包含一記憶體器件之一計算系統之形式的一裝置之一方塊圖。
圖2A繪示根據本發明之若干實施例之一記憶體陣列之一部分之一示意圖。
圖2B係繪示根據本發明之若干實施例之感測電路之一部分的一示意圖。
圖3繪示根據本發明之若干實施例之一記憶體陣列之一部分之一示意圖。
圖4A繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。
圖4B繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。
圖4C繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。
圖4D繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。
圖5A至圖5D繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之時序圖。
圖6A至圖6B繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之時序圖。
圖7係繪示根據本發明之若干實施例之具有可選邏輯運算選擇邏輯之感測電路的一示意圖。
圖8係繪示根據本發明之若干實施例之由一感測電路實施之可選邏輯運算結果的一邏輯表。
本發明包含與記憶體之乘法運算有關之裝置及方法。可藉由使包括可變位元長度之位元向量相乘而執行一乘法運算。例如,一乘法運算可包含:使具有若干第一元素之一第一向量與具有若干第二元素之一第二向量相乘。可將該第一向量儲存於耦合至一記憶體陣列之一第一存取線及若干感測線的一群組之記憶體胞中。可將該第二向量儲存於耦合至該記憶體陣列之一第二存取線及該若干感測線的一群組之記憶體胞中。該乘法運算可包含:在無需經由一輸入/輸出(I/O)線而傳送資料之情況下執行經由一控制器(例如經組態以控制感測電路之一控制器)所執行之若干「及」運算、「或」運算及「移位」運算。
如本文中所使用,一第一元素及一第二元素可為彼此相乘之數值。待相乘之元素可指稱一乘法運算之運算元。在若干實施例中,該等元素可為可作為位元向量儲存於記憶體中之數值。例如,可使具有一第一值且經儲存為一第一位元向量之一第一元素(例如一第一運算
元)與具有一第二值且經儲存為一第二位元向量之一第二元素(例如一第二運算元)相乘以獲得一相乘結果。
在若干實例中,一元素可表示可作為一位元向量儲存於記憶體中之一目標及/或其他建構。作為一實例,一乘法運算可經執行以藉由使表示各自目標之位元向量相乘而使目標相乘。
本發明之若干實施例可提供比先前方法少之執行若干乘法運算(例如乘法函數)所涉及之計算量及/或時間。例如,可歸因於並行(例如,同時)執行若干乘法運算之各種部分的一能力而減少計算量及/或時間。如本文中所描述般執行若干乘法運算亦可比先前方法減少電力消耗。根據若干實施例,可在無需經由一匯流排(例如資料匯流排、位址匯流排、控制匯流排等等)而自記憶體陣列及/或感測電路傳送出資料之情況下對元素(例如呈儲存於一陣列中之位元向量之形式的資料)執行一乘法運算。一乘法運算可涉及:執行若干運算(例如「及」運算、「或」運算及「移位」運算等等)。然而,實施例不受限於此等實例。
在各種先前方法中,可經由包括輸入/輸出(I/O)線之一匯流排而將待相乘之元素(例如一第一值及一第二值)自陣列及感測電路傳送至若干暫存器。可由一處理資源(諸如一處理器、微處理器及/或計算引擎)使用該若干暫存器,該處理資源可包括經組態以執行適當邏輯運算之ALU電路及/或其他功能單元電路。然而,通常可由該ALU電路執行僅一單一乘法函數,且經由一匯流排而將資料自暫存器傳送至記憶體/自記憶體傳送至暫存器可涉及大量電力消耗及時間需求。即使該處理資源位於相同於記憶體陣列之一晶片上,但在將資料自陣列移出至計算電路(例如ALU)時會消耗大量電力,其可涉及:執行一感測線位址存取(例如,起動一行解碼信號)以將資料自感測線傳送至I/O線上;將資料移動至陣列周邊;及將資料提供至(例如)與執行一乘法運
算相關聯之一暫存器。
在本發明之下列詳細描述中,參考構成本發明之一部分的附圖,且在附圖中藉由繪示而展示可如何實踐本發明之一或多個實施例。此等實施例經足夠詳細地描述以使一般技術者能夠實踐本發明之該等實施例,且應瞭解:可利用其他實施例;及可在不脫離本發明之範疇之情況下作出程序、電性及/或結構變化。如本文中所使用,標示符「S」、「T」、「U」、「V」、「W」等等(尤其是相對於圖式中之元件符號的標示符)指示:可包含若干所標示之特定特徵。如本文中所使用,「若干」特定事物可係指此等事物之一或多者(例如,若干記憶體陣列可係指一或多個記憶體陣列)。
本文中之圖遵循一編號規定,其中第一個或前幾個數字對應於圖號且剩餘數字識別圖式中之一元件或組件。可藉由使用類似數字而識別不同圖之間的類似元件或組件。例如,231可係指圖2中之元件「31」,且可將圖3中之一類似元件稱為331。應瞭解,本文中之各種實施例中所展示之元件可經新增、經交換及/或經消除以便提供本發明之若干額外實施例。另外,應瞭解,圖中所提供之元件之比例及相對尺度意欲繪示本發明之某些實施例,且不應被視為意指限制。
圖1係根據本發明之若干實施例之呈包含一記憶體器件120之一計算系統100之形式的一裝置之一方塊圖。如本文中所使用,一記憶體器件120、一記憶體陣列130及/或感測電路150亦可被單獨視為一「裝置」。
系統100包含一主機110,其耦合至包含一記憶體陣列130之記憶體器件120。主機110可為一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一行動電話或一記憶體卡讀取器、以及各種其他類型之主機。主機110可包含一系統主機板及/或背板且可包含若干處理資源(例如一或多個處理器、微處理器或某一其他類型之控制
電路)。系統100可包含單獨積體電路,或主機110及記憶體器件120兩者可位於相同積體電路上。系統100可為(例如)一伺服器系統及/或一高效能計算(HPC)系統及/或該HPC系統之一部分。雖然圖1中所展示之實例繪示具有一範紐曼(Von Neumann)架構之一系統,但本發明之實施例可實施於非範紐曼架構(例如一杜林機(Turing machine))(其可不包含通常與一範紐曼架構相關聯之一或多個組件(例如CPU、ALU等等))中。
為清楚起見,系統100已被簡化以聚焦於與本發明特定相關之特徵。記憶體陣列130可為(例如)DRAM陣列、SRAM陣列、STT RAM陣列、PCRAM陣列、TRAM陣列、RRAM陣列、反及快閃陣列及/或反或快閃陣列。陣列130可包括配置成由存取線(其在本文中可指稱字線或選擇線)耦合之列及由感測線(其在本文中可指稱數位線或資料線)耦合之行的記憶體胞。雖然圖1中展示一單一陣列130,但實施例不受限於此。例如,記憶體器件120可包含若干陣列130(例如若干DRAM記憶體胞庫)。將結合圖2及圖3而描述一實例性DRAM陣列。
記憶體器件120包含用於鎖存經由一I/O匯流排156(例如一資料匯流排)透過I/O電路144而提供之位址信號的位址電路142。位址信號由一列解碼器146及一行解碼器152接收及解碼以存取記憶體陣列130。可藉由使用感測電路150來感測感測線上之電壓及/或電流變化而自記憶體陣列130讀取資料。感測電路150可自記憶體陣列130讀取一頁資料(例如一列資料)且鎖存該頁資料。I/O電路144可用於經由I/O匯流排156而與主機110雙向資料通信。寫入電路148用於將資料寫入至記憶體陣列130。
控制電路140解碼由控制匯流排154自主機110提供之信號。此等信號可包含用於控制對記憶體陣列130執行之操作(其包含資料讀取操作、資料寫入操作及資料抹除操作)的晶片啟用信號、寫入啟用信號
及位址鎖存信號。在各種實施例中,控制電路140負責執行來自主機110之指令。控制電路140可為一狀態機、一定序器或某一其他類型之控制器。
下文結合圖2A及圖2B而進一步描述感測電路150之一實例。例如,在若干實施例中,感測電路150可包括若干感測放大器及若干計算組件,其等可包括用作一累加器之一鎖存器且可用於執行邏輯運算(例如,對與互補感測線相關聯之資料執行邏輯運算)。在若干實施例中,感測電路(例如150)可用於執行乘法運算(使用儲存於陣列130中之資料作為輸入)且將乘法運算之結果儲存回至陣列130,無需經由一感測線位址存取之傳送(例如,無需起動一行解碼信號)。因而,可使用感測電路150來執行一乘法函數,而非由感測電路150外部之處理資源(例如,由與主機110相關聯之一處理器及/或位於器件120上(例如,位於控制電路140或別處上)之其他處理電路,諸如ALU電路)執行一乘法函數;及/或除由感測電路150外部之該處理資源執行一乘法函數之外,亦可使用感測電路150來執行一乘法函數。
在各種先前方法中,與(例如)一乘法運算相關聯之資料將經由感測電路而自記憶體讀取,且被提供至一外部ALU。該外部ALU電路將使用元素(其可指稱運算元或輸入)來執行乘法函數,且結果可經由區域I/O線而傳送回至陣列。相比而言,在本發明之若干實施例中,感測電路(例如150)經組態以對儲存於記憶體陣列130中之記憶體胞中之資料執行一乘法運算且將結果儲存回至陣列130,無需啟用耦合至感測電路之一區域I/O線。
因而,在若干實施例中,可無需陣列130及感測電路150外部之暫存器及/或一ALU來執行乘法函數,此係因為感測電路150可經操作以執行使用記憶體陣列130之位址空間來執行乘法函數時所涉及之適當計算。另外,可在不使用一外部處理資源之情況下執行乘法函數。
圖2A繪示根據本發明之若干實施例之一記憶體陣列230之一部分之一示意圖。一記憶體胞包括一儲存元件(例如電容器)及一存取器件(例如電晶體)。例如,電晶體202-1及電容器203-1構成一記憶體胞,且電晶體202-2及電容器203-2構成一記憶體胞,等等。在此實例中,記憶體陣列230係一DRAM陣列之1T1C(1個電晶體1個電容器)記憶體胞。在若干實施例中,記憶體胞可為破壞性讀取記憶體胞(例如,讀取儲存於記憶體胞中之資料破壞資料,使得最初儲存於記憶體胞中之資料在被讀取之後被刷新)。將記憶體陣列230之記憶體胞配置成由字線204-X(列X)、204-Y(列Y)等等耦合之列及由互補資料線對DIGIT(n-1)/DIGIT(n-1)_、DIGIT(n)/DIGIT(n)_、DIGIT(n+1)/DIGIT(n+1)_耦合之行。對應於各對互補資料線之個別資料線亦可分別指稱資料線205-1(D)及205-2(D_)。雖然圖2A中僅展示3對互補資料線,但本發明之實施例不受限於此,且一陣列之記憶體胞可包含額外記憶體胞行及/或資料線(例如4,096個、8,192個、16,384個等等)。
記憶體胞可耦合至不同資料線及/或字線。例如,一電晶體202-1之一第一源極/汲極區域可耦合至資料線205-1(D),電晶體202-1之一第二源極/汲極區域可耦合至電容器203-1,且一電晶體202-1之一閘極可耦合至字線204-Y。一電晶體202-2之一第一源極/汲極區域可耦合至資料線205-2(D_),電晶體202-2之一第二源極/汲極區域可耦合至電容器203-2,且一電晶體202-2之一閘極可耦合至字線204-X。如圖2A中所展示,記憶體胞板可耦合至電容器203-1及203-2之各者。記憶體胞板可為可在各種記憶體陣列組態中將一參考電壓(例如接地)施加至其之一共同節點。
根據本發明之若干實施例,記憶體陣列230耦合至感測電路250。在此實例中,感測電路250包括對應於記憶體胞之各自行(例
如,耦合至各自互補資料線對)的一感測放大器206及一計算組件231。感測放大器206可包括一交叉耦合鎖存器,其在本文中可指稱一初級鎖存器。可(例如)如相對於圖2B所描述般組態感測放大器206。
在圖2A所繪示之實例中,對應於計算組件231之電路包括一靜態鎖存器264及尤其實施一動態鎖存器之額外10個電晶體。計算組件231之動態鎖存器及/或靜態鎖存器在本文中可共同稱為一次級鎖存器,其可用作一累加器。因而,計算組件231可操作為一累加器及/或在本文中指稱一累加器。計算組件231可耦合至資料線D 205-1及D_205-2之各者,如圖2A中所展示。然而,實施例不受限於此實例。計算組件231之電晶體可全部為(例如)n通道電晶體(例如NMOS電晶體)。
在此實例中,資料線D 205-1可耦合至電晶體216-1及239-1之一第一源極/汲極區域,以及耦合至負載/通路電晶體218-1之一第一源極/汲極區域。資料線D_205-2可耦合至電晶體216-2及239-2之一第一源極/汲極區域,以及耦合至負載/通路電晶體218-2之一第一源極/汲極區域。
負載/通路電晶體218-1及218-2之閘極可共同耦合至一LOAD控制信號,或分別耦合至一PASSD/PASSDB控制信號,如下文將進一步討論。負載/通路電晶體218-1之一第二源極/汲極區域可直接耦合至電晶體216-1及239-2之閘極。負載/通路電晶體218-2之一第二源極/汲極區域可直接耦合至電晶體216-2及239-1之閘極。
電晶體216-1之一第二源極/汲極區域可直接耦合至下拉電晶體214-1之一第一源極/汲極區域。電晶體239-1之一第二源極/汲極區域可直接耦合至下拉電晶體207-1之一第一源極/汲極區域。電晶體216-2之一第二源極/汲極區域可直接耦合至下拉電晶體214-2之一第一源極/汲極區域。電晶體239-2之一第二源極/汲極區域可直接耦合至下拉電晶體207-2之一第一源極/汲極區域。下拉電晶體207-1、207-2、214-1
及214-2之各者之一第二源極/汲極區域可一起共同耦合至一參考電壓291-1(例如接地(GND))。下拉電晶體207-1之一閘極可耦合至一AND控制信號線,下拉電晶體214-1之一閘極可耦合至一ANDinv控制信號線213-1,下拉電晶體214-2之一閘極可耦合至一ORinv控制信號線213-2,且下拉電晶體207-2之一閘極可耦合至一OR控制信號線。
電晶體239-1之閘極可指稱節點S1,且電晶體239-2之閘極可指稱節點S2。圖2A中所展示之電路將累加器資料動態地儲存於節點S1及S2上。啟動LOAD控制信號致使負載/通路電晶體218-1及218-2導通,且藉此將互補資料載入至節點S1及S2上。可將LOAD控制信號升高至大於VDD之一電壓以使一全VDD位準傳至S1/S2。然而,將LOAD控制信號升高至大於VDD之一電壓係選用的,且圖2A中所展示之電路之功能性不取決於升高至大於VDD之一電壓的LOAD控制信號。
圖2A中所展示之計算組件231之組態具有下列益處:當下拉電晶體207-1、207-2、214-1及214-2在起動感測放大器206之前(例如,在感測放大器206之預接種期間)導通時,使感測放大器之功能性平衡。如本文中所使用,起動感測放大器206係指:啟用感測放大器206以設定初級鎖存器,且隨後停用感測放大器206以保持經設定之初級鎖存器。在停用平衡(在感測放大器中)之後但在感測放大器起動之前執行邏輯運算可節約電力使用,此係因為不必使用全導軌電壓(例如VDD、GND)來「翻轉」感測放大器之鎖存器。
使電晶體反相可在執行某些邏輯運算時下拉一各自資料線。例如,與電晶體214-1(其具有耦合至一ANDinv控制信號線213-1之一閘極)串聯之電晶體216-1(其具有耦合至動態鎖存器之S2的一閘極)可經操作以下拉資料線205-1(D),且與電晶體214-2(其具有耦合至一ORinv控制信號線213-2之一閘極)串聯之電晶體216-2(其具有耦合至動態鎖存器之S1的一閘極)可經操作以下拉資料線205-2(D_)。
鎖存器264可藉由耦合至一主動負控制信號線212-1(ACCUMB)及一主動正控制信號線212-2(ACCUM)而可控地啟用,而非經組態以藉由耦合至接地及VDD而連續地啟用。在各種實施例中,負載/通路電晶體208-1及208-2可各具有耦合至一LOAD控制信號或一PASSD/PASSDB控制信號之一者的一閘極。
根據一些實施例,負載/通路電晶體218-1及218-2之閘極可共同耦合至一LOAD控制信號。在其中負載/通路電晶體218-1及218-2之閘極共同耦合至LOAD控制信號之組態中,電晶體218-1及218-2可為負載電晶體。啟動LOAD控制信號致使負載電晶體導通,且藉此將互補資料載入至節點S1及S2上。可將LOAD控制信號升高至大於VDD之一電壓以使一全VDD位準傳至S1/S2。然而,可選擇無需將LOAD控制信號升高至大於VDD之一電壓,且圖2A中所展示之電路之功能性不取決於升高至大於VDD之一電壓的LOAD控制信號。
根據一些實施例,負載/通路電晶體218-1之閘極可耦合至一PASSD控制信號,且負載/通路電晶體218-2之閘極可耦合至一PASSDb控制信號。在其中電晶體218-1及218-2之閘極分別耦合至PASSD控制信號及PASSDb控制信號之一者的組態中,電晶體218-1及218-2可為通路電晶體。可不同於負載電晶體而操作通路電晶體(例如,在不同時間及/或在不同電壓/電流條件下)。因而,通路電晶體之組態可不同於負載電晶體之組態。
例如,負載電晶體經建構以處置與將資料線耦合至區域動態節點S1及S2相關聯之負載。通路電晶體經建構以處置與將資料線耦合至一相鄰累加器(例如,透過移位電路223,如圖2A中所展示)相關聯之較重負載。根據一些實施例,負載/通路電晶體218-1及218-2可經組態以適應對應於一通路電晶體之較重負載,但經耦合且經操作為一負載電晶體。經組態為通路電晶體之負載/通路電晶體218-1及218-2亦可用
作負載電晶體。然而,經組態為負載電晶體之負載/通路電晶體218-1及218-2無法用作通路電晶體。
在若干實施例中,包含鎖存器264之計算組件231可包括與一陣列(例如圖2A中所展示之陣列230)之對應記憶體胞之電晶體依照節距形成之若干電晶體,其等耦合至該陣列,可遵從一特定特徵大小(例如4F2、6F2等等)。根據各種實施例,鎖存器264包含透過負載/通路電晶體218-1及218-2而耦合至一對互補資料線D 205-1及D_205-2的四個電晶體208-1、208-2、209-1及209-2。然而,實施例不受限於此組態。鎖存器264可為一交叉耦合鎖存器(例如,一對電晶體(諸如n通道電晶體(例如NMOS電晶體)209-1及209-2)之閘極與另一對電晶體(諸如p通道電晶體(例如PMOS電晶體)208-1及208-2)之閘極交叉耦合)。如本文中將進一步描述,交叉耦合鎖存器264可指稱一靜態鎖存器。
可將各自資料線D及D_上之電壓或電流提供至交叉耦合鎖存器264之各自鎖存器輸入217-1及217-2(例如次級鎖存器之輸入)。在此實例中,鎖存器輸入217-1耦合至電晶體208-1及209-1之一第一源極/汲極區域以及耦合至電晶體208-2及209-2之閘極。類似地,鎖存器輸入217-2可耦合至電晶體208-2及209-2之一第一源極/汲極區域以及耦合至電晶體208-1及209-1之閘極。
在此實例中,電晶體209-1及209-2之一第二源極/汲極區域共同耦合至一負控制信號線212-1(例如類似於圖2B中相對於初級鎖存器所展示之控制信號RnIF的接地(GND)或ACCUMB控制信號)。電晶體208-1及208-2之一第二源極/汲極區域共同耦合至一正控制信號線212-2(例如類似於圖2B中相對於初級鎖存器所展示之控制信號ACT的VDD或ACCUM控制信號)。正控制信號212-2可提供一供應電壓(例如VDD)且負控制信號212-1可為一參考電壓(例如接地)以啟用交叉耦合鎖存器264。根據一些實施例,電晶體208-1及208-2之第二源極/汲極區域共
同直接耦合至該供應電壓(例如VDD)且電晶體209-1及209-2之第二源極/汲極區域共同直接耦合至該參考電壓(例如接地)以便連續啟用鎖存器264。
經啟用之交叉耦合鎖存器264操作以放大鎖存器輸入217-1(例如第一共同節點)與鎖存器輸入217-2(例如第二共同節點)之間的一差動電壓,使得鎖存器輸入217-1被驅動至經啟動之正控制信號電壓(例如VDD)或經啟動之負控制信號電壓(例如接地),且鎖存器輸入217-2被驅動至經啟動之正控制信號電壓(例如VDD)或經啟動之負控制信號電壓(例如接地)之另一者。
如圖2A中所展示,感測放大器206及計算組件231可經由移位電路223而耦合至陣列230。在此實例中,移位電路223包括分別耦合至資料線205-1(D)及205-2(D_)之一對隔離器件(例如隔離電晶體221-1及221-2)。隔離電晶體221-1及221-2耦合至一控制信號222(NORM),控制信號222在被啟動時啟用(例如,接通)隔離電晶體221-1及221-2以將對應感測放大器206及計算組件231耦合至記憶體胞之一對應行(例如,耦合至一對對應互補資料線205-1(D)及205-2(D_)、及對應於繪示於左邊互補感測線對上之DIGIT(n-1)及DIGIT(n-1)_的計算組件231-6及對應於繪示於右邊互補感測線對上之DIGIT(n+1)及DIGIT(n+1)_的計算組件231-6)。根據各種實施例,隔離電晶體221-1及221-2之導通可指稱移位電路223之一「正常」組態。
在圖2A所繪示之實例中,移位電路223包含耦合至一互補控制信號219(SHIFT)之另一對(例如一第二對)隔離器件(例如隔離電晶體221-3及221-4),其等可(例如)在撤銷NORM時被啟動。隔離電晶體221-3及221-4可經操作(例如,經由控制信號219)使得一特定感測放大器206及計算組件231耦合至一對不同互補資料線(例如不同於隔離電晶體221-1及221-2將特定感測放大器206及計算組件231耦合至其之互
補資料線對的一對互補資料線),或可將一特定感測放大器206及計算組件231耦合至另一記憶體陣列(且使特定感測放大器206及計算組件231與一第一記憶體陣列隔離)。根據各種實施例,例如,移位電路223可經配置為感測放大器206之一部分(例如,感測放大器206內之一部分)。
雖然圖2A中所展示之移位電路223包含用於將特定感測電路250(例如一特定感測放大器206及對應計算組件231)耦合至一對特定互補資料線205-1(D)及205-2(D_)(例如DIGIT(n)及DIGIT(n)_)的隔離電晶體221-1及221-2且隔離電晶體221-3及221-4經配置以在一特定方向上將特定感測電路250耦合至一對相鄰互補資料線(例如展示於圖2A中之右邊的相鄰資料線DIGIT(n+1)及DIGIT(n+1)_),但本發明之實施例不受限於此。例如,移位電路可包含:隔離電晶體221-1及221-2,其等用於將特定感測電路耦合至一對特定互補資料線(例如DIGIT(n)及DIGIT(n)_);及隔離電晶體221-3及221-4,其等經配置以便用於在一另一特定方向上將特定感測電路耦合至一對相鄰互補資料線(例如展示於圖2A中之左邊的相鄰資料線DIGIT(n-1)及DIGIT(n-1)_)。
本發明之實施例不受限於圖2A中所展示之移位電路223之組態。在若干實施例中,可在(例如)無需經由一I/O線(例如區域I/O線(IO/IO_))而自感測電路250傳送出資料之情況下結合執行計算函數(諸如加法函數及減法函數)(例如,結合感測放大器206及計算組件231)而操作移位電路223,諸如圖2A中所展示之移位電路。
雖然圖2A中未展示,但記憶體胞之各行可耦合至一行解碼線,該行解碼線可經啟動以經由區域I/O線而將一資料值自一對應感測放大器206及/或計算組件231傳送至陣列外部之一控制組件(諸如一外部處理資源(例如主機處理器及/或其他功能單元電路))。該行解碼線可耦合至一行解碼器(例如行解碼器152)。然而,如本文中所描述,在
若干實施例中,無需經由此等I/O線而傳送資料以根據本發明之實施例而執行邏輯運算。在若干實施例中,可結合感測放大器206及計算組件231而操作移位電路223以(例如)在無需將資料傳送至陣列外部之一控制組件之情況下執行。
圖2B係繪示根據本發明之若干實施例之感測電路之一部分的一示意圖。根據各種實施例,感測放大器206可包括一交叉耦合鎖存器。然而,感測放大器206之實施例不受限於一交叉耦合鎖存器。作為一實例,圖2B中之感測放大器206可為電流模式感測放大器及/或單端感測放大器(例如耦合至一個資料線之感測放大器)。此外,本發明之實施例不受限於一折疊資料線架構。
在若干實施例中,一感測放大器(例如206)可包括與一陣列(例如圖2A中所展示之230)之對應計算組件231及/或記憶體胞之電晶體依照節距形成之若干電晶體,其等耦合至該陣列,可遵從一特定特徵大小(例如4F2、6F2等等)。感測放大器206包括一鎖存器215,其包含耦合至一對互補資料線D 205-1及D_205-2之四個電晶體。鎖存器215可為一交叉耦合鎖存器(例如,一對電晶體(諸如n通道電晶體(例如NMOS電晶體)227-1及227-2)之閘極與另一對電晶體(諸如p通道電晶體(例如PMOS電晶體)229-1及229-2)之閘極交叉耦合)。如本文中將進一步描述,包括電晶體227-1、227-2、229-1及229-2之鎖存器215可指稱一初級鎖存器。然而,實施例不受限於此實例。
可將各自資料線D及D_上之電壓或電流提供至交叉耦合鎖存器215之各自鎖存器輸入233-1及233-2(例如次級鎖存器之輸入)。在此實例中,鎖存器輸入233-1耦合至電晶體227-1及229-1之一第一源極/汲極區域以及耦合至電晶體227-2及229-2之閘極。類似地,鎖存器輸入233-2可耦合至電晶體227-2及229-2之一第一源極/汲極區域以及耦合至電晶體227-1及229-1之閘極。計算組件231(其在本文中可指稱一
累加器)可耦合至交叉耦合鎖存器215之鎖存器輸入233-1及233-2,如圖中所展示;然而,實施例不受限於圖2B中所展示之實例。
在此實例中,電晶體227-1及227-2之一第二源極/汲極區域共同耦合至一主動負控制信號228(RnIF)。電晶體229-1及229-2之一第二源極/汲極區域共同耦合至一主動正控制信號265(ACT)。ACT信號265可為一供應電壓(例如VDD)且RnIF信號可為一參考電壓(例如接地)。啟動信號228及265以啟用交叉耦合鎖存器215。
經啟用之交叉耦合鎖存器215操作以放大鎖存器輸入233-1(例如第一共同節點)與鎖存器輸入233-2(例如第二共同節點)之間的一差動電壓,使得鎖存器輸入233-1被驅動至ACT信號電壓及RnIF信號電壓之一者(例如,被驅動至VDD及接地之一者),且鎖存器輸入233-2被驅動至ACT信號電壓及RnIF信號電壓之另一者。
感測放大器206亦可包含經組態以使資料線D及D_平衡(例如,結合使感測放大器準備一感測操作)之電路。在此實例中,該平衡電路包括一電晶體224,其具有耦合至電晶體225-1之一第一源極/汲極區域及資料線D 205-1的一第一源極/汲極區域。電晶體224之一第二源極/汲極區域可耦合至電晶體225-2之一第一源極/汲極區域及資料線D_205-2。電晶體224之一閘極可耦合至電晶體225-1及225-2之閘極。
電晶體225-1及225-2之第二源極/汲極區域耦合至可等於VDD/2之一平衡電壓238(例如VDD/2),其中VDD係與陣列相關聯之一供應電壓。電晶體224、225-1及225-2之閘極可耦合至控制信號226(EQ)。因而,啟動EQ以啟用電晶體224、225-1及225-2,其使資料線D有效地短接至資料線D_,使得資料線D及D_平衡至平衡電壓VDD/2。根據本發明之若干實施例,可使用感測放大器206及計算組件231來執行若干邏輯運算,且將結果儲存於感測放大器及/或計算組件中。
可在若干模式中操作感測電路250以執行邏輯運算,該若干模式
包含:一第二模式,其中邏輯運算之一結果最初儲存於感測放大器206中;及一第一模式,其中邏輯運算之一結果最初儲存於計算組件231中。下文相對於圖6A及圖6B而描述感測電路250在該第二模式中之操作,且下文相對於圖5A至圖5D而描述感測電路250在該第一模式中之操作。另外,關於該第一操作模式,可在感測前模式(例如,在邏輯運算控制信號啟用之前起動感測放大器)及感測後模式(例如,在邏輯運算控制信號啟用之後起動感測放大器)兩者中操作感測電路250,其中一邏輯運算之一結果最初儲存於感測放大器206中。
如下文將進一步描述,感測放大器206可結合計算組件231而操作以執行各種邏輯運算(使用來自一陣列之資料作為輸入)。在若干實施例中,可在無需經由一資料線位址存取而傳送資料之情況下(例如,無需起動一行解碼信號,使得資料經由區域I/O線而自陣列及感測電路傳送至外部電路)將一邏輯運算之結果儲存回至陣列。因而,本發明之若干實施例可能夠使用比各種先前方法少之電力來執行邏輯運算及與邏輯運算相關聯之計算函數。另外,因為若干實施例無需橫跨I/O線而傳送資料以執行計算函數(例如,在記憶體與分立處理器之間),所以若干實施例可實現比先前方法增強之一並行處理能力。
圖3繪示根據本發明之若干實施例之一記憶體陣列330之一部分的一示意圖。陣列330包含耦合至存取線304-0、304-1、304-2、304-3、304-4、304-5、304-6…304-R之列及感測線305-0、305-1、305-2、305-3、305-4、305-5、305-6、305-7…305-S之行的記憶體胞(統稱為記憶體胞303,且更明確言之,指稱記憶體胞303-0至303-J)。記憶體陣列330不受限於存取線及/或感測線之一特定數目,且術語「列」及「行」之使用不意指存取線及/或感測線之一特定實體結構及/或定向。雖然圖中未描繪,但記憶體胞之各行可與一對對應互補感測線(例如圖2A中之互補感測線205-1及205-2)相關聯。
記憶體胞之各行可耦合至感測電路(例如圖1中所展示之感測電路150)。在此實例中,該感測電路包括耦合至各自感測線305-0、305-1、305-2、305-3、305-4、305-5、305-6、305-7…305-S之若干感測放大器306-0、306-1、306-2、306-3、306-4、306-5、306-6、306-7...306-U。感測放大器306經由存取器件(例如電晶體)308-0、308-1、308-2、308-3、308-4、308-5、308-6、308-7…308-V而耦合至輸入/輸出(I/O)線334(例如一區域I/O線)。在此實例中,該感測電路亦包括耦合至各自感測線之若干計算組件331-0、331-1、331-2、331-3、331-4、331-5、331-6、331-7…331-X。行解碼線310-1至310-W分別耦合至電晶體308-1至308-V之閘極,且可經選擇性地啟動以將由各自感測放大器306-0至306-U感測及/或儲存於各自計算組件331-0至331-X中之資料傳送至一次級感測放大器312。在若干實施例中,計算組件331可與其對應行之記憶體胞及/或與對應感測放大器306依照節距形成。
在若干實施例中,感測電路(例如計算組件331及感測放大器306)經組態以對儲存於陣列330中之元素執行一乘法運算。作為一實例,可將第一複數個元素儲存於耦合至一特定存取線(例如304-0)及若干感測線(例如305-0至305-S)之一第一群組之記憶體胞中,且可將第二複數個元素儲存於耦合至一不同存取線(例如304-1)及各自若干感測線(305-0至305-S)之一第二群組之記憶體胞中。可使該第一複數個元素之各元素與該第二複數個元素之一各自者相乘,且可將乘法運算之結果(例如,作為一或若干位元向量)儲存於耦合至一特定存取線(例如304-0至304-R)及若干感測線(例如305-0至305-S)之一第三群組之記憶體胞中。該第三群組之記憶體胞可(例如)耦合至一存取線304-R或耦合至存取線304-0至304-R之至少一者。即,該第三群組之記憶體胞可為相同於該第一群組之記憶體胞或該第二群組之記憶體胞的一群組之
記憶體胞(例如,可將一乘法運算之一結果覆寫於一當前儲存元素上)。
下文結合圖4A至圖4D而描述一實例性乘法運算,圖4A至圖4D繪示表,其展示根據本文中所描述之若干實施例之與執行一乘法運算相關聯之若干特定階段中之一陣列(例如330)之記憶體胞之狀態。圖4A至圖4D中所展示之表之列之參考編號對應於下文將描述之偽碼之各自參考編號(例如,列451-1對應於偽碼之參考編號1,列451-7a及453-7a對應於偽碼之參考編號7a,等等)。表之各列指示乘法運算之一特定階段中之若干位元向量431(Comp_Comp)、433(Dynamic Mask)、435(Static Mask)、437(Carry)、439(Intermediate)、441(Iterator)、443(srca)、445(srcb)、447(Vector Mask)及449(Dest)之值。
圖4A至圖4D中所展示之實例與使儲存於耦合至存取線304-0及感測線305-0至305-31之記憶體胞中之一第一5個元素與儲存於耦合至存取線304-1及感測線305-0至305-31之記憶體胞中之一各自第二5個元素相乘相關聯。在下列實例中,該第一5個元素由一第一位元向量srca 443(例如[0011 0001 00000101 00001000 00001100],其可用十六進位記法表示為[3 2 04 08 0c]且在圖4A至圖4D中展示為「0x3204080c」)表示,其中該第一4個元素之各元素由一8位元寬之位元向量表示,且該第二5個元素由一第二位元向量srcb 445(例如[0011 0011 00000101 00000001 00000011],其可用十六進位記法表示為[3 3 05 02 03]且在圖4A至圖4D中展示為「0x33050203」)表示。第一位元向量srca 443與第二位元向量srcb 445相乘之預期結果係位元向量[0x96141024],其展示於圖4D中所展示之表之列455-7x中(例如Dest 449)。
在此實例中,位元向量srca 443及srcb445具有32個位元之一長度且srca 443之第「i」元素與srcb 445之第「i」元素相乘(例如,srca 443之第一元素與srcb 445之第一元素相乘,srca 443之第二元素與
srcb 445之第二元素相乘,等等),使得5個元素對相乘。在此實例中,由srca 443及srcb 445之各者表示之5個元素具有一可變長度。例如,srca 443及srcb 445之第一元素及第二元素分別由4位元向量表示(例如,第一元素及第二元素包括4個位元)且srca 443及srcb 445之第三元素、第四元素及第五元素分別由8位元向量表示(例如,第三元素、第四元素及第五元素包括8個位元)。應注意,雖然圖4A至圖4D中使用十六進位記法,但在乘法運算期間將位元向量作為二進位資料型樣儲存於陣列中。此外,在本文所描述之實例中,逗號及/或空格可用於使一位元向量內之個別元素分離。例如,在上述實例中,位元向量443及445各包括由空格分離之5個元素。實施例不受限於一特定元素大小(例如,不受限於特定數目個元素及/或每元素之特定數目個位元)。乘法運算之結果可儲存於陣列(例如330)(其中儲存包括相乘元素之向量)中,及/或可傳送至該陣列之外部(例如,傳送至一主機之功能單元電路)。
srca 443(例如呈十六進位之[3 2 04 08 0c])及srcb 445(例如呈十六進位之[3 3 05 02 03])之元素對相乘之預期結果係[9 6 14 10 24]。如下文將進一步描述,可將一乘法運算之結果作為一位元向量儲存於一特定群組之記憶體胞中。例如,在圖4A至圖4D之實例中,對應於Dest 449之記憶體胞用於儲存乘法運算之結果。因而,在圖4A至圖4D中所描述之實例結束時,Dest 449之值係呈十六進位之[9 6 14 10 24](例如二進位數[1001 0110 00010100 00010000 00100100]),其表示對應於5個元素對之5個所得值(例如3×3=9、2×3=6、4×5=20、8×2=16、及12×3=36)。
如下文將進一步描述,可結合使源位元向量443及445之各自元素對相乘(例如,使srca位元向量443之元素與srcb位元向量445之各自元素相乘)而使用位元向量433(Dynamic Mask)、435(Static Mask)、
437(Carry)、439(Intermediate)、441(Iterator)、447(Vector_Mask)及449(Dest)。可將位元向量433、435、437、439、441、447及449儲存於耦合至特定存取線之各自群組之記憶體胞中,該各自群組之記憶體胞可指稱暫時儲存列(例如儲存可在一乘法運算之各種階段期間更新之資料的列)。作為一實例,位元向量433、435、437、439、441、447及449可分別具有相同於srca位元向量443及srcb位元向量445之一長度,且可儲存於耦合至相同於srca位元向量及srcb位元向量之感測線(例如感測線305-0至305-31)的記憶體胞中。例如,位元向量433可具有32個位元之一長度且可儲存於耦合至存取線304-2及感測線305-0至305-31之一群組之記憶體胞中,位元向量435可具有32個位元之一長度且可儲存於耦合至存取線304-3及感測線305-0至305-31之一群組之記憶體胞中,位元向量437可具有32個位元之一長度且可儲存於耦合至存取線304-4及感測線305-0至305-31之一群組之記憶體胞中,位元向量439可具有32個位元之一長度且可儲存於耦合至存取線304-5及感測線305-0至305-31之一群組之記憶體胞中,位元向量441可具有32個位元之一長度且可儲存於耦合至存取線304-6及感測線305-0至305-31之一群組之記憶體胞中,位元向量447可具有32個位元之一長度且可儲存於耦合至存取線304-7(圖中未展示)及感測線305-0至305-31之一群組之記憶體胞中,且位元向量449可具有32個位元之一長度且可儲存於耦合至存取線304-8(圖中未展示)及感測線305-0至305-31之一群組之記憶體胞中。位元向量431(Comp_Comp)表示儲存於對應於感測線(例如此實例中之感測線305-0至305-31)之感測電路(例如計算組件331及/或感測放大器306)中之資料,該等感測線具有耦合至其之儲存相乘元素之記憶體胞。
在結合圖4A至圖4D所描述之實例中,可將srca位元向量443之第一元素(例如十六進位值「3」)(例如,作為一4位元之位元向量[0011])
儲存於記憶體胞303-0至303-3中,且可將srcb位元向量445之第一元素(例如十六進位值「3」)(例如,作為一4位元之位元向量[0011])儲存於耦合至存取線304-1(例如列1)及感測線305-0至305-3之記憶體胞中。作為一實例,可將各自位元向量(例如[0011]及[0011])之最高有效位元(MSB)儲存於耦合至感測線305-0之記憶體胞中,且可將各自位元向量之下一MSB儲存於耦合至感測線305-1之記憶體胞中,…,且可將各自位元向量之最低有效位元(LSB)儲存於耦合至感測線305-3之記憶體胞中。如本文中所使用,將一位元向量之最左位元視作MSB;然而,實施例不受限於此。
在若干實例中,一乘法運算包含:執行若干「及」運算、「或」運算及「移位」運算。該乘法運算包含:在無需經由一輸入/輸出(I/O)線而傳送資料之情況下執行「及」運算、「或」運算及「移位」運算以使一第一元素與一第二元素相乘。可使用依照節距之感測電路及互補感測線之若干行之各者來執行該若干「及」運算、「或」運算及「移位」運算。
下列偽碼表示用於根據本發明之若干實施例而在一記憶體中執行若干乘法運算之可執行指令。使用參考編號1至7來指代實例性偽碼,參考編號1至7對應於圖4A至圖4D之表中所展示之列之參考編號。例如,參考編號1(例如「載入srca、srcb及vector mask」)對應於列451-1,參考編號2(例如「獲得全部暫時列」)對應於列451-2,且參考編號7.a(例如「將srcb載入Comp_Comp中」)對應於列451-7.a、453-7.a及455-7.a,如圖4A至圖4D中所展示。
1.載入srca、srcb及Vector_Mask
2.獲得全部暫時列
3.判定MSB且儲存於Comp_Comp、Dynamic_Mask中
4.藉由使總位元長度右移而判定LSB,儲存於Dynamic_Mask
中
5.將Vector_Mask載入至Comp_Comp中,左移,執行與Dynamic_Mask之「或」運算,且使用Comp_Comp來覆寫Dynamic_Mask
6. 將Vector_Mask之反數載入至Comp_Comp中,儲存於Static_Mask中
7.循環,直至BlockOR終止
7.a將srcb載入Comp_Comp中
7.b使Comp_Comp與Dynamic_Mask進行「及」運算
7.c將Comp_Comp儲存於Intermediate、Iterator中
7.d副迴圈,直至BlockOR終止
i.將Intermediate載入Comp_Comp中
ii.左移
iii.執行與Intermediate之「或」運算
iv.儲存於Intermediate中
v.將Iterator載入Comp_Comp中
vi.左移
vii.執行與Static_Mask之「及」運算
viii.儲存於Iterator中
7.e將srca載入Comp_Comp中
7.f儲存於Carry中
7.g將Dynamic_Mask載入Comp_Comp中
7.h右移
7.i執行與Static_Mask之「及」運算
7.j儲存於Iterator中
7.k副迴圈,直至BlockOR終止
i.將Carry載入Comp_Comp中
ii.左移
iii.儲存於Carry中
iv.將Iterator載入Comp_Comp中
v.右移
vi.執行與Static_Mask之「及」運算
vii.儲存於Iterator中
7.l將Carry載入Comp_Comp中
7.m執行與Intermediate之「及」運算
7.n儲存於Intermediate中
7.o儲存於Carry中
7.p使Intermediate與Dest半相加,輸出Dest及Carry
7.q將Carry載入Comp_Comp中
7.r使Comp_Comp與Static_Mask進行「及」運算
7.s使Comp_Comp左移
7.t對於Comp_Comp BlockOR中之任何真位元
i.將Comp_Comp儲存於Carry中
ii.使Dest與Carry半相加,輸出Dest及Carry
iii.將Carry載入Comp_Comp中
iv.使Comp_Comp與Static_Mask進行「及」運算
v.使Comp_Comp左移
7.u將Dynamic_Mask載入Comp_Comp中
7.v左移
7.w執行與Static_Mask之「及」運算
7.x將Comp_Comp儲存於Dynamic_Mask中
為了討論,會將上述偽碼分成與執行一乘法運算(例如,使srca
位元向量443之5個元素與srcb位元向量445之對應5個元素相乘)相關聯之一設置階段及一乘法階段。由參考編號1至6指代之偽碼可對應於設置階段。可對若干乘法運算同時執行設置階段。在圖4A至圖4D所繪示之實例中,加粗繪示之一位元向量值指示位元向量之值之一變化(例如,圖4A中加粗展示儲存於對應於Dynamic_Mask 433之記憶體胞中之位元向量之值以指示自如列451-2中所展示之[0x00000000]改變至如列451-3中所展示之[0x80000000])。圖4A繪示與執行一乘法運算之設置階段相關聯之若干位元向量之值。由參考編號7(例如7.a至7.x)指代之偽碼可對應於乘法階段。
在若干實施例中,可對將相乘之全部元素同時執行設置階段。圖4A中展示對應於設置階段中所執行之若干運算的結果(例如所得之儲存位元向量)。圖4A中之表之列451-1至451-6分別對應於由參考編號1至6指代之上述偽碼指令。因而,列451-1至451-6指示設置階段之執行期間之位元向量431、433、435、437、441、443、445、447及449之值,如由上述偽碼所描述。上述偽碼之參考編號1(例如「載入srca、srcb及Vector_Mask」)與將一第一源位元向量(例如srca位元向量443)、一第二源位元向量(例如srcb位元向量445)及一掩碼位元向量(例如Vector_Mask位元向量447)儲存於一陣列(例如陣列330)中相關聯。源位元向量表示待相乘之元素(例如運算元)。Vector_Mask 447指示各相乘元素對之一最高有效位元(MSB)。作為一實例,包括一MSB位置中之一「1」及剩餘位元位置中之全部「0」之一位元型樣可用於指示源位元向量(例如srca 443及srcb 445)之組成元素之MSB。因而,Vector_Mask 447之位元型樣識別待相乘之各自元素件對之長度。如圖4A之列451-1中所展示,在此實例中,Vector_Mask 447係一32位元之十六進位位元向量[88808080](例如二進位數[1000 1000 10000000 10000000 10000000]),其指示:srca 443及srcb 445之前兩個元素具有
4個位元之一長度,且srca 443及srcb 445之第三元素、第四元素及第五元素具有8個位元之一長度。
圖4A中所展示之表之列451-1繪示srca位元向量443及srcb位元向量445在儲存於(例如,載入)一陣列(例如330)中之後之值。如上文所提及,雖然為方便起見,圖4A至圖4D中用由前導「0x」標示之十六進位形式展示位元向量之值(例如,將位元向量443之值展示為0x3204080C),但可將位元向量作為二進位資料型樣儲存於陣列中。另外,如圖4A至圖4D中所展示,位元向量[0x0]指示一位元向量[0x00000000]且為便於參考而縮短。如上文所提及,與上述偽碼之執行相關聯之一實例性乘法運算包含:使srca位元向量443之第一元素(例如二進位數[0011]/十六進位數[0x3])與srcb位元向量445之第一元素(例如二進位數[0011]/十六進位數[0x3])相乘,使srca位元向量443之第二元素(例如二進位數[0010]/十六進位數[0x2])與srcb位元向量445之第二元素(例如二進位數[0011]/十六進位數[0x3])相乘,使srca位元向量443之第三元素(例如二進位數[00000100]/十六進位數[0x04])與srcb位元向量445之第三元素(例如二進位數[00000101]/十六進位數[0x05])相乘,使srca位元向量443之第四元素(例如二進位數[00001000]/十六進位數[0x08])與srcb位元向量445之第四元素(例如二進位數[00000010]/十六進位數[0x02])相乘,且使srca位元向量443之第五元素(例如二進位數[00001100]/十六進位數[0x0c])與srcb位元向量445之第五元素(例如二進位數[00000011]/十六進位數[0x03])相乘。即,使srca位元向量443之第i元素與srcb位元向量445之第i元素相乘。圖4A中所展示之列451-1亦指示:在設置階段期間「清除」用於儲存乘法運算之結果(例如Dest位元向量449)的記憶體胞(例如,將一邏輯「0」儲存於記憶體胞之各者中)。如圖4A中所展示,位元向量449具有0x0之一值。如上文所提及,可將Dest 449儲存於耦合至存取線304-8及感
測線305-0至305-31之一群組之記憶體胞中。
上述偽碼之參考編號2(例如「獲得全部暫時列」)與使用作暫時儲存列之若干群組之記憶體胞初始化相關聯。初始化係指指定及/或指派用於儲存特定位元向量之特定存取線用於執行乘法運算。即,該若干群組之記憶體胞可為耦合至各自存取線(例如列)之初始化及/或指定記憶體胞群組,該等存取線儲存與執行乘法運算相關聯之資料(例如,暫時地)。例如,一第一群組之記憶體胞可耦合至一特定存取線(例如繪示為列2之304-2)且可儲存指稱一「Dynamic_Mask」位元向量433之一位元向量。一第二群組之記憶體胞可耦合至另一存取線(例如繪示為列3之304-3)且可儲存指稱一「Static_Mask」位元向量435之一位元向量。一第三群組之記憶體胞可耦合至另一存取線(例如繪示為列4之304-4)且可儲存指稱一「Carry」位元向量437之一位元向量。一第四群組之記憶體胞可耦合至另一存取線(例如繪示為列5之304-5)且可儲存指稱一「Intermediate」位元向量439之一位元向量。一第五群組之記憶體胞可耦合至另一存取線(例如繪示為列6之304-6)且可儲存指稱一「Iterator」位元向量441之一位元向量。一第六群組之記憶體胞可耦合至另一存取線(例如繪示為列7之304-7,圖3中未展示)且可儲存「Vector_Mask」位元向量447。在若干實施例中,可將「Dest」位元向量449儲存於耦合至另一存取線(例如304-8、列8,圖中未展示)(其可被視作一暫時儲存列)之一群組之記憶體胞中。實施例不受限於特定數目個暫時儲存列及/或特定存取線上之對應位元向量之儲存。此外,雖然用於儲存位元向量433、435、437、439、441、447及449之記憶體胞群組可指稱「列」,但各自記憶體胞群組可包括比耦合至一特定存取線之全部記憶體胞少之記憶體胞。此外,在若干實施例中,暫時儲存列可係指無法由一使用者定址之存取線(例如一使用者可定址位址空間外之存取線)。在若干實例中,將儲存於對應於暫時
儲存列之記憶體胞中之位元向量儲存於耦合至相同於相乘元素對之感測線的記憶體胞中。即,可將源位元向量443及445之LSB儲存於耦合至相同於與儲存位元向量433、435、437、439、441、447、449之LSB的記憶體胞耦合之感測線之一感測線的記憶體胞中,且可將源位元向量443及445之MSB儲存於耦合至相同於與儲存位元向量433、435、437、439、441、447、449之MSB的記憶體胞耦合之感測線之一感測線的記憶體胞中。例如,若位元向量之各者具有32個位元之一長度,則可將位元向量443、445、433、435、437、439、441、447及449之各者之LSB儲存於耦合至一相同感測線(例如305-31)之記憶體胞中且可將位元向量443、445、433、435、437、439、441、447及449之各者之MSB儲存於耦合至一相同感測線(例如305-0)之記憶體胞中。
Dynamic_Mask位元向量433可(例如)作為一掩碼用於指示源位元向量(例如443及445)內及/或相乘之元素對內之一或若干特定位元位置。Dynamic_Mask 433被視作一動態掩碼,此係因為其值可在執行乘法運算時改變(例如,係動態的)。Static_Mask 435亦可用於提供一掩碼來執行乘法運算。Static_Mask 435被視作一靜態掩碼,此係因為其值在乘法運算期間不改變。如下文將進一步描述,Static_Mask 435之位元型樣可為Vector_Mask 447之位元型樣之反數(例如,使得Static_Mask 435之位元型樣可在對應於各自相乘元素對之一者之一MSB的各位元位置處包括一「0」且在剩餘位元位置處包括一「0」)。如下文將進一步描述,Carry 437可用於儲存與執行乘法運算相關聯之一或若干進位值。當執行乘法運算時,Intermediate 439及Iterator 441可用於儲存暫時資料值。Dest 447可用於儲存乘法運算之結果。圖4A之列451-2展示具有0x0(例如十六進位位元向量[00000000]或二進位位元向量[00000000000000000000000000000000])之一值的初始化位元向量433、435、437、439、441及449之各者。
上述偽碼之參考編號3(例如「判定MSB且儲存於Comp_Comp、Dynamic_Mask中」)與判定包括待相乘元素之位元向量(例如srca 443及srcb 445)之MSB且將指示位元向量(例如443及/或445)之MSB的一位元型樣作為一位元向量儲存於一陣列(例如330)內之特定位置中相關聯。作為一實例,指示位元向量443及/或445之MSB的位元型樣可(例如,作為一位元向量)儲存於用於儲存Dynamic_Mask 433之記憶體胞群組中且可作為Comp_Comp位元向量431儲存於感測電路(例如計算組件331-0至331-31及/或感測放大器306-0至306-31)中。在若干實施例中,指示srca位元向量及srcb位元向量之MSB的位元型樣包括MSB位置中之一「1」位元及剩餘位元位置中之一「0」位元。例如,如圖4A之表之列451-3中所展示,Comp_Comp位元向量431及Dynamic_Mask位元向量433各包括位元向量[0x80000000](呈十六進位形式),其對應於其中MSB係一「1」且剩餘31個位元係「0」之一32位元向量。例如,耦合至感測線305-0之感測電路(例如計算組件331-0及/或感測放大器306-0)可鎖存一「1」且耦合至感測線305-1至305-31之感測電路(例如計算組件331-1至331-31及/或感測放大器306-1至306-31)可各鎖存一「0」。
上述偽碼之參考編號4(例如「藉由使總長度右移而判定LSB,儲存於Dynamic Mask中」)與判定包括待相乘元素之位元向量(例如srca 443及srcb 445)之一LSB且將指示該LSB之一位元型樣儲存於陣列內之一特定位置中(例如,儲存於用於儲存Dynamic_Mask 433之記憶體胞群組中)相關聯。可藉由對用於指示位元向量443及445之MSB的位元型樣執行若干右移而判定指示srca 443及srcb 445之LSB的位元型樣。該右移數目對應於比srca位元向量443及srcb位元向量445之總長度小1(例如31個移位,此係因為在此實例中總長度係32個位元)。如圖4A之列451-3中所展示,在執行對應於參考編號4之偽碼之前,指示MSB之
位元型樣(例如[0x80000000])駐存於對應於Comp_Comp 431之感測電路中。因而,可藉由對Comp_Comp 431執行31個右移使得Comp_Comp 431之各位元右移31個位元位置(例如,使儲存於耦合至感測線305-0之感測電路中之位元之值移位至耦合至感測線305-31之感測電路)而判定對應於位元向量443及445之LSB的位元型樣。在此實例中,對Comp_Comp 431(例如[0x80000000])執行31個右移導致Comp_Comp 431之值變為[0x00000001](例如,如圖4A之列451-4中所展示)。可將Comp_Comp 431之值複製至對應於Dynamic_Mask 433之記憶體胞。因而,如圖4A之列451-4中所展示,Dynamic_Mask 433亦儲存[0x00000001](例如指示位元向量443及445之LSB的位元型樣)。
上述偽碼之參考編號5(例如「將Vector Mask載入至Comp_Comp中,左移,執行與Dynamic_Mask之「或」運算,且使用Comp_Comp來覆寫Dynamic_Mask」)與在執行乘法階段之前(例如,在執行對應於參考編號7之上述偽碼之前)將指示各自相乘元素對之LSB的一位元型樣儲存於儲存Dynamic_Mask 433之記憶體胞中相關聯。在此實例中,位元型樣中之「1」用於指示各自元素之LSB之位元位置(例如,定位)。因而,如圖4A之列451-5中所展示,Dynamic_Mask 433係指示srca 443及srcb 445之各自元素對之LSB的[0x11010101](例如二進位數[0001 0001 00000001 00000001 00000001]),其包括具有4個位元之一長度的一第一元素對、具有4個位元之一長度的一第二元素對、具有8個位元之一長度的一第三元素對、具有8個位元之一長度的一第四元素對、及具有8個位元之一長度的一第五元素對。可藉由將Vector Mask位元向量447(例如位元向量[0x88808080])載入至對應於Comp_Comp 431之感測電路中而獲得指示各自元素對之LSB的位元向量(例如[0x11010101])。可使現儲存[0x88808080]之Comp_Comp位元向量431左移一個位元位置,使得Comp_Comp 431儲存
[0x11010100]。使儲存為Comp_Comp 431之經移位位元向量(例如位元向量[0x11010100])與Dynamic_Mask位元向量433(例如位元向量[0x00000001])(其當前指示位元向量443及445之LSB)進行「或」運算,且將該「或」運算之結果(例如位元向量[0x11010101])儲存為(例如,覆寫)Dynamic_Mask 433。
如本文中所使用,對一第一位元向量及一第二位元向量執行一邏輯運算可包含:對該等位元向量之對應位元位置處之各自位元之各者並行地執行該邏輯運算。作為一實例,對一第一位元向量「a」(例如[a0 a1 a2 a3])及一第二位元向量「b」(例如[b0 b1 b2 b3])執行之一邏輯「或」運算之結果係一位元向量「c」(例如[c0 c1 c2 c3]),其之MSB(例如c0)係位元向量「a」之MSB與位元向量「b」之MSB之「或」運算結果,位元向量「c」之下一MSB係位元向量「a」之下一MSB與位元向量「b」之下一MSB之「或」運算結果,且位元向量「c」之LSB係位元向量「a」之LSB與位元向量「b」之LSB之「或」運算結果(例如,c0=a0「或」b0;c1=a1「或」b1;c2=a2「或」b2;c3=a3「或」b3)。例如,對一位元向量[1110]及位元向量[1000]執行一「或」運算將導致位元向量[1110](例如,所得位元向量之MSB係「1」,此係因為「1」與「1」之「或」運算結果係「1」;下一MSB係「1」,此係因為「1」與「0」之「或」運算結果係「1」;下一MSB係「1」,此係因為「1」與「0」之「或」運算結果係「1」;且LSB係「0」,此係因為「0」與「0」之「或」運算結果係「0」。)
參考編號6(例如「將Vector_Mask之反數儲存於Static_Mask中」)與將Vector Mask位元向量447(例如[0x88808080])之反數儲存於對應於Static_Mask 435之記憶體胞中相關聯。例如,可將Vector_Mask 447載入至Comp_Comp 431中,使得Comp_Comp 431儲存[0x88808080]。可使Comp_Comp位元向量反相(例如,經由一反相運算,諸如下文將
進一步描述),使得Comp_Comp 431儲存[0x777f7f7f],可將[0x777f7f7f]儲存為(例如,複製至)對應於Static_Mask 435之記憶體胞(例如,藉由啟動對應於Static_Mask 435之記憶體胞耦合至其之存取線)。因此,如圖4A中之列451-6處所繪示,Static_Mask 435儲存位元向量[0x777F7F7F](例如二進位數[0111 0111 01111111 01111111 01111111]),其在對應於各自相乘位元對(例如srca 443及srcb 445之元素對)之各者的MSB位置處包括一「0」且在剩餘位元位置處包括一「1」。
因此,在對應於上述偽碼之參考編號1至6的設置階段結束時,且如圖4A之列451-6中所展示:Dynamic_Mask 433儲存[0x11010101](例如二進位數[0001 0001 00000001 00000001 00000001]),其在對應於各自相乘元素對之LSB位置處包括一「1」且在剩餘位元位置處包括一「0」;Vector_Mask 447儲存[0x88808080](例如二進位數[1000 1000 10000000 10000000 10000000]),其在對應於各自相乘元素對之MSB位置處包括一「1」且在剩餘位元位置處包括一「0」;Static_Mask 435儲存[0x777F7F7F](例如二進位數[0111 0111 01111111 01111111 01111111]),其係Vector_Mask 447之反數且在對應於各自相乘元素對之MSB位置處包括一「0」及在剩餘位元位置處包括一「1」;srca 443儲存[0x3204080C](例如二進位數[0011 0010 00000100 00001000 00001100]),其表示包括十進位值「3」之一第一元素、包括十進位值「2」之一第二元素、包括十進位值「4」之一第三元素、包括十進位值「8」之一第四元素、及包括十進位值「12」之一第五元素;srcb 445儲存[0x33050203](例如二進位數[0011 0011 00000101 00000010 00000011]),其表示包括十進位值「3」之一第一元素、包括十進位值「3」之一第二元素、包括十進位值「5」之一第三元素、
包括十進位值「2」之一第四元素、及包括十進位值「3」之一第五元素;且位元向量437(Carry)、439(Intermediate)、441(Iterator)及449(Dest)儲存[0x0](例如,將一「0」儲存於其位元位置(在此實例中,其係32個位元位置)之各者中)。
上述偽碼之參考編號7(例如「循環,直至BlockOR終止」)對應於根據本發明之若干實施例之一乘法運算之乘法階段。參考編號7對應於一迴圈(例如一「For迴圈」、一「While迴圈」、一「Do迴圈」等等),其包括:執行對應於參考編號7.a至7.x之偽碼,直至滿足一特定條件。在此實例中,該特定條件係一BlockOR運算終止(例如,藉由使一「0」或假位元返回,其指示Comp_Comp 431之當前位元型樣包括全部「0」,例如,對應於Comp_Comp 431之計算組件及/或感測放大器全部不儲存一「1」或真位元)。因而,乘法階段可包括:執行對應於參考項7.a至7.x之偽碼之若干迭代,其中在各迭代結束時執行一BlockOR運算。下文將進一步描述一BlockOR運算。如本文中所使用,對應於參考編號7之迴圈可指稱一「主迴圈」。如下文將描述,執行對應於參考編號7之主迴圈可包含:執行若干副迴圈,亦可執行該若干副迴圈,直至滿足一特定條件(例如,直至一BlockOR運算終止)。例如,下文將結合對應於參考編號7.d(例如7.d.i至7.d.viii)及7.k(例如7.k.i至7.k-vii)之偽碼而描述副迴圈。
執行主迴圈之次數可基於相乘元素對之長度。例如,執行主迴圈之次數可等於元素對之最長者之長度。例如,在其中最長元素對包括8個位元(例如,第三元素對、第四元素對及第五元素對包括8個位元)之此實例中,可執行8次主迴圈(例如,在主迴圈之第八迭代之後,對應於參考編號7之BlockOR運算終止)。然而,實施例不受限於此實例。例如,可根據相乘元素之特定位元型樣而在更少迭代之後終止主迴圈(例如,若相乘之位元型樣具有若干前導「0」,則該等位元
位置不會改變乘積之結果)。
因而,可執行與判定相乘元素對之一特定位元位置之乘法運算之一貢獻相關聯之主迴圈之各迭代。例如,主迴圈之一第一迭代可經執行以判定各自相乘元素對之一LSB位置(例如srca 443及srcb 445之5個元素對之LSB位置)之乘法運算之一貢獻,主迴圈之一第二迭代可經執行以判定各自相乘元素對之下一LSB位置(例如srca位元向量443及srcb位元向量445之下一LSB位置)之乘法運算之一貢獻,等等。作為一實例,結合主迴圈之一迭代而判定一特定位元位置之乘法運算之一貢獻可涉及:對各自元素對之經判定部分乘積執行一移位(例如左移),且將經移位之部分乘積加至先前已判定之對應部分乘積和。在完成主迴圈之最後迭代之後(例如,在對一最後迭代執行對應於參考編號7.x之偽碼之後),暫時列可經釋放以完成乘法運算。在若干實例中,可將乘法運算之結果儲存於陣列330中。在若干實例中,可使乘法運算之結果發送及/或返回至一主機,諸如圖1中之主機110。在若干實例中,可循序地執行主迴圈之各迭代。圖4B、圖4C及圖4D各繪示在對應於主迴圈之各種操作階段中(例如,在對應於參考編號7.a至7.x之偽碼之執行期間)之位元向量(例如431、433、435、437、439、441、443、445、447及449)之值(例如,圖4B繪示與主迴圈之一第一迭代相關聯之位元向量值,圖4C繪示與主迴圈之一第二迭代相關聯之位元向量值,且圖4D繪示與主迴圈之一第三迭代相關聯之位元向量值)。
在若干實施例中,可執行與判定耦合至一特定群組之感測線(例如305-0至305-S)之計算組件(例如331-0至331-X)及/或感測放大器(例如306-0至306-U)之一或多者(例如任何者)是否儲存一特定資料值(例如一「1」或一「0」)相關聯之一「BlockOR」運算。例如,判定耦合至感測線305-0至305-31之計算組件331-0至331-31之任何者是否儲存
一特定資料值可包含:將一區域I/O線(諸如圖3中所展示之區域I/O線334)充電(例如,預充電)至一特定電壓,且接著感測(例如,經由一次級感測放大器,諸如圖3中所展示之SSA 312)該區域I/O線上之電壓是否回應於將對應於鎖存於選定計算組件331-0至331-31中之資料的電壓傳送(例如,並行地)至該區域I/O線而改變(例如,改變達大於一臨限量)。可經由控制電路(諸如圖1中所展示之控制電路140)及/或感測電路(諸如圖1中所展示之電路150)而將該I/O線(例如I/O線334)預充電至(例如)一電壓,諸如一供應電壓(例如Vcc)或一接地電壓(例如0伏特)。
傳送對應於鎖存於選定計算組件331-0至331-31中之資料的電壓可包含:啟動(例如,並行地)對應於選定感測電路(例如此實例中之計算組件331-0至331-31)之行解碼線(例如圖3中之行解碼線310-0至310-W),使得各自電晶體308-1至308-31被啟用(例如,接通)。
作為一實例,為判定選定計算組件331-0至331-31之一或多者是否儲存(例如,鎖存)一資料值「1」(例如一邏輯1,其可由一供應電壓Vcc表示),可將I/O線(例如I/O線334)預充電至一接地電壓(例如0伏特,其可表示一鎖存資料值「0」)。可啟動對應行解碼線310-0至310-31,且若選定計算組件331-0至331-31之一或多者儲存一邏輯1(例如Vcc),則SSA(例如SSA 312)可感測I/O線(例如I/O線334)上之電壓之一上拉(例如,增大),其指示:選定計算組件331-0至331-31之至少一者儲存一「1」,其可由BlockOR運算使一「真」位元(例如「1」)返回指示。在此實例中,若計算組件331-0至331-31之任何者不儲存一「1」,則I/O線上之電壓不會被上拉,其可由BlockOR運算使一假位元(例如「0」)返回指示。
替代地,為判定選定計算組件331-0至331-31之一或多者是否儲存(例如,鎖存)一資料值「0」,可將I/O線(例如I/O線334)預充電至一
供應電壓(例如Vcc)。可啟動對應行解碼線310-0至310-31,且若選定計算組件331-0至331-31之一或多者儲存一邏輯0(例如0伏特),則SSA(例如SSA 312)可感測I/O線(例如I/O線334)上之電壓之一下拉(例如,減小),其指示:選定計算組件331-0至331-31之至少一者儲存一「0」。
判定耦合至選定行解碼線(例如行解碼線310-0至310-W)之一或多個計算組件(例如331-0至331-X)及/或感測放大器(例如306-0至306-U)是否儲存一特定資料值(例如一資料值「1」)係:有效地執行一邏輯「或」運算(例如,此係因為若資料值之任何者係「1」,則運算使一「1」返回,且僅當全部資料值係「0」時,運算使一「0」返回),其係運算可指稱一「BlockOR」運算之原因。本發明之實施例不受限於區域I/O線之特定預充電電壓及/或對應於邏輯「1」及邏輯「0」之特定電壓值。
圖4B繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。圖4B繪示對應於與上文由參考編號7指代之偽碼相關聯之乘法階段的主迴圈之一第一迭代(例如7.a至7.x之一第一迭代)期間之若干位元向量431、433、435、437、439、441、443、445、447及449之值。
上述偽碼之參考項7.a(例如「將srcb載入Comp_Comp中」)與將srcb位元向量445(例如位元向量[0x33050203],其可儲存於耦合至一特定存取線及感測線305-0至305-31之記憶體胞中)載入至對應於Comp_Comp 431之適當感測電路(例如此實例中之計算組件331-0至331-31及/或感測放大器306-0至306-31)中相關聯。例如,可將對應於srcb 445之第一元素(例如[0x3]或二進位數[0011])的4個位元載入至計算組件331-0至331-3中(例如,其中將MSB載入至計算組件331-0中且將各隨後下一最高有效位元載入至隨後對應計算組件331-1至331-3
中,使得一「0」儲存於計算組件331-0及331-1中且一「1」儲存於計算組件331-2及331-3中)。可將srcb位元向量445之隨後元素(例如第二元素([0x3])、第三元素([0x05])、第四元素([0x02])及第五元素([0x03]))載入至隨後對應計算組件331-4至331-31中。因而,圖4B中所展示之表之列451-7.a繪示具有[0x33050203]之一值的位元向量431。
在參考項7.b(例如「使Comp_Comp與Dynamic_Mask進行「及」運算」)處,可對Comp_Comp位元向量431及Dynamic_Mask位元向量433(為了此實例,其可儲存於耦合至存取線304-2及感測線331-0至331-31之記憶體胞中)執行一「及」邏輯運算。可將該「及」運算之結果保存於對應於Comp_Comp 431之感測電路中。
因為將srcb位元向量445之值載入至計算組件331-0至331-31中(例如,在參考項7.a處),所以Comp_Comp 431與Dynamic_Mask 433之「及」運算結果類比於srcb 445與Dynamic_Mask 433之「及」運算結果。在此實例中,Comp_Comp 431(例如[0011 0011 00000101 00000010 00000011],其係[0x33050203])與Dynamic_Mask 433(例如[0001 0001 00000001 00000001 00000001],其係[0x11010101])之「及」運算導致位元向量[0001 0001 00000001 00000000 00000001](例如[0x11010001]),其作為Comp_Comp 431保存於對應感測電路中。因此,圖4B之列451-7.b將Comp_Comp 431繪示為[0x11010001]。「及」運算之結果可用作隨後操作階段中之一中間掩碼。例如,「1」位元可指示將促成乘法運算之一特定迭代的一元素。即,因為第一元素、第二元素、第三元素及第五元素在對應於中間掩碼之各元素的最低有效位元位置中包含一「1」,所以該等元素將促成乘法運算之第一迭代(參閱與用於如何進一步產生中間掩碼之圖4B中之列451-7.d相關聯之參考項7.d之描述)。在其LSB中包含一「1」之元
素之貢獻可包含來自執行乘法運算之進位值。
在參考項7.c(例如「將Comp_Comp儲存於Intermediate、Iterator中」)處,將參考項7.b處所執行之「及」運算之結果(例如位元向量[0x11010001])儲存於(例如,寫入至)儲存Intermediate 439之記憶體胞及儲存Iterator 441之記憶體胞中。作為一實例,可將Intermediate 439儲存於耦合至存取線304-5及感測線305-0至305-31之記憶體胞中,且可將Iterator 441儲存於耦合至存取線304-6及感測線305-0至305-31之記憶體胞中。如下文將進一步描述,可藉由啟動儲存特定位元向量(例如Intermediate 439及Iterator)之記憶體胞耦合至其之存取線(例如存取線304-5及304-6)而將Comp_Comp 431之值複製至對應於該等特定位元向量之記憶體胞。因而,圖4B中所展示之表之列451-7.c繪示具有[0x11010001]之一值的Intermediate 439及Iterator 441。
在參考項7.d(例如「副迴圈,直至BlockOR終止」)處,重複對應於參考編號7.d.i至7.d.viii之一副迴圈,直至一BlockOR運算使Comp_Comp 431包括全部「0」之一指示返回。副迴圈(例如參考項7.d.i至7.d.viii)經執行以產生待儲存為Intermediate 439之一掩碼。在參考項7.d.i(例如「將Intermediate載入Comp_Comp中」)處,將Intermediate 439(例如[0x11010001])載入至Comp_Comp 431(例如計算組件331-0至331-31)中。在參考項7.d.ii(例如「左移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x11010001])之各位元左移一個計算組件以導致儲存於Comp_Comp 431中之位元向量[22020002]。即,使第一元素(例如元素[0001]或[0x1])之各位元左移以導致元素[0010]。使第二元素[0001]移位以導致[0010],使第三元素[00000001]移位以導致[00000010],使第四元素[00000000]移位以導致[00000000],且使第五元素[00000001]移位以導致[00000010]。第五元素之最低有效位元(LSB)(例如「1」)左移且LSB位置現儲存一
「0」,此係因為在此實例中,右邊之一計算組件中無位元來指示何種位元移位至該LSB位置中(例如,在第五元素之LSB之右邊無位元儲存於一計算組件(若其被指定,則其將為計算組件331-32)中)。
在參考項7.d.iii(例如「執行與Intermediate之「或」運算」)處,使用儲存於Comp_Comp 431中之位元向量(例如[0x22020002])及儲存於Intermediate中之位元向量(例如[0x11010001])來執行一「或」運算以導致位元向量[0x33030003]。在參考項7.d.iv(例如「儲存於Intermediate中」)處,將所得位元向量(例如[0x33030003])儲存為Intermediate 439。在參考項7.d.v(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例如[0x11010001])載入至Comp_Comp 431中。在參考項7.d.vi(例如「左移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x11010001])之各位元左移一個計算組件以導致儲存於Comp_Comp 431中之位元向量[0x22020002]。在參考項7.d.vii(例如「執行與Static_Mask之「及」運算」)處,使儲存於Comp_Comp 431中之位元向量與Static_Mask 435(例如[0x777f7f7f])進行「及」運算。在參考項7.d.viii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如來自[0x22020002]與[0x777f7f7f]之「及」運算的[0x22020002])儲存為Iterator 441。因為在「及」運算結束時,位元向量[0x22020002]仍位於Comp_Comp 431中,所以對位元向量[0x22020002]執行參考項7(例如「迴圈,直至(若干)BlockOR終止」)處之BlockOR運算以判定位元向量中是否存在一「1」。因為位元向量[0x22020002]含有至少一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第二迴圈包含:在參考項7.d.i處,將Intermediate 439(例如[0x33030003])載入至Comp_Comp 431中,且在參考項7.d.ii處,執行一左移。左移導致位元向量[0x66060006]。在參考項7.d.iii處,使左移之結果(例如[0x66060006])與Intermediate(例如
[0x33030003])進行「或」運算以導致位元向量[0x77070007]。在參考項7.d.iv處,將所得位元向量(例如[0x77070007])儲存為Intermediate 439。在參考項7.d.v處,將Iterator 441(例如[0x22020002])載入至Comp_Comp 431中。在參考項7.d.vi處,使Iterator 441左移以導致Comp_Comp 431中之位元向量[0x44040004]。在參考項7.d.vii處,使Comp_Comp 431中之所得位元向量[0x44040004]與Static_Mask 435(例如[0x777f7f7f])進行「及」運算。在參考項7.d.viii處,將「及」運算之結果(例如[0x44040004])儲存為Iterator 441。在第二迴圈之結束時執行一BlockOR運算,且因為[0x44040004]位元向量儲存於Comp_Comp 431中且包含一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第三迴圈導致一左移Intermediate位元向量(例如[0xee0e000e])與Intermediate(例如[0x77070007])進行「或」運算。將該「或」運算之結果(例如[0xff0f000f])儲存為Intermediate 439。使Iterator 441左移(導致[0x88080008])且與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致儲存為Iterator 441之位元向量[0x88080008]。對儲存於Comp_Comp 431中之位元向量[0x88080008]執行之一BlockOR運算導致迴圈之一重複。
參考項7.d.i至7.d.viii之第三迴圈導致[0xff1f001f]之一Intermediate位元向量439及[0x00100010]之一Iterator位元向量441。因為位元向量[0x00100010]包含一「1」,所以執行一BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第四迴圈導致[0xff3f003f]之一Intermediate位元向量439及[0x00200020]之一Iterator位元向量441。對[0x00200020]執行之BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第五迴圈導致[0xff7f007f]之一Intermediate位元向量439及[0x00400040]之一Iterator位元向量441。對[0x00400040]執行之BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第六迴圈導致
[0xffff00ff]之一Intermediate位元向量439及[0x00000000]之一Iterator位元向量441(例如,使Iterator[0x00800080]與Static_Mask[0x777f7f7f]進行「或」運算導致[0x00000000])。對[0x00000000]執行之BlockOR運算指示終止迴圈且移動至參考項7.e。如圖4B中之列451-7.d處所展示,Comp_Comp 431儲存一[0x0](其指示所儲存之最後Iterator位元向量441),Intermediate 439係[0xffff00ff],且Iterator 441係[0x00000000](由[0x0]指示)。
在參考項7.e(例如「將srca載入Comp_Comp中」)處,將srca位元向量443(例如[0x3204080c])載入至對應計算組件(例如,經儲存為Comp_Comp 431)中。例如,可將srca位元向量之第一元素(例如第一元素位元向量[0011])之位元儲存於對應計算組件中,使得一第一計算組件及一第二計算組件(例如計算組件331-0及331-1)儲存一「0」且一第三計算組件及一第四計算組件(例如計算組件331-2及331-3)儲存一「1」。在此實例中,額外計算組件(例如計算組件331-4至331-31)儲存srca位元向量443之第二元素、第三元素、第四元素及第五元素。
在參考項7.f(例如「儲存於Carry中」)處,將儲存於Comp_Comp 431中之位元向量(例如srca位元向量[0x3204080c])儲存為Carry 437,如列451-7.f處所展示。在參考項7.g(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask位元向量433(例如[0x11010101])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如圖4B中之列451-7.g處所展示。在參考項7.h(例如「右移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x11010101])之位元之各者右移一個計算組件以導致位元向量[0x08808080],如列451-7.h處所展示。在參考項7.i(例如「執行與Static_Mask之「及」運算」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x08808080])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算。在參考項7.j(例
如「儲存於Iterator中」)處,將「及」運算之結果(例如位元向量[0x00000000],由[0x0]指示)儲存為Iterator 441,如列451-7.j處所展示。
在參考項7.k(例如「副迴圈,直至(若干)BlockOR終止」)處,重複包含參考項7.k.i至7.k.vii之一副迴圈,直至無「1」儲存於計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.i(例如「將Carry載入Comp_Comp中」)處,副迴圈開始於將Carry 437(例如[0x3204080c])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.ii(例如「左移」)處,執行一移位運算,其係基於乘法運算之一迭代(例如參考項7.a至7.x)。例如,在乘法運算之一第一迭代(例如由圖4B繪示之參考項7.a至7.x)期間,副迴圈(例如,包含參考項7.k.i至7.k.vii)包含:執行位元向量之位元之零個移位。在乘法運算之一第二迭代(例如由圖4C繪示之參考項7.a至7.x)期間,副迴圈包含:對位元向量之各位元執行一(1)個左移。對於乘法運算之一第三迭代,各位元左移兩(2)個計算組件。因為此係乘法運算之第一迭代,所以使位元向量移位零個位置。
在參考項7.k.iii(例如「儲存於Carry中」)處,將載入計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x3204080c])儲存為Carry 437,如列451-7.k處所展示。在參考項7.k.iv(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例如[0x0])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.v(例如「右移」)處,使載入Comp_Comp 431中之位元向量(例如[0x0])之位元之各者右移(例如,使[0x00000000]之各位元右移一個位置以導致[0x00000000])。在參考項7.k.vi(例如「執行與Static_Mask之「及」運算」)處,使經移位之位元向量(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x00000000](由[0x0]指
示)。在參考項7.k.vii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如[0x0])儲存為Iterator 441,如列451-7.k處所展示。
在參考項7.l(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如[0x3204080c])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列451-7.l處所展示。在參考項7.m(例如「執行與Intermediate之「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x3204080c])與Intermediate 439(例如[0xffff00ff])進行「及」運算,其中該「及」運算之結果(例如[0x3204000c])位於計算組件(例如,經儲存為Comp_Comp 431)中,如列451-7.m處所展示。在參考項7.n(例如「儲存於Intermediate中」)處,將「及」運算之結果(例如[0x3204000c])儲存為Intermediate 439(例如,將[0x3204000c]覆寫於先前所儲存之位元向量上),如列451-7.n處所展示。在參考項7.o(例如「儲存於Carry中」)處,將Comp_Comp 431(例如[0x3204000c])儲存為Carry 437(例如,覆寫於先前Carry 437上)。
在參考項7.p(例如「使Intermediate與Dest半相加,輸出Dest及Carry」)處,對Intermediate 439(例如[0x3204000c])及Dest 449(例如[0x0])執行一半加運算。一半加運算可包含:對一對運算元執行一「互斥或」運算且對該對運算元執行一「及」運算。可將該「互斥或」運算之結果(例如該半加運算之「和」)儲存於一第一位置中(例如,經儲存為Dest 449)且可將該「及」運算之結果(例如該半加運算之「進位」)儲存於一第二位置中(例如,經儲存為Carry 437)。
可藉由若干「反及」運算、「或」運算及「及」運算而對兩個位元向量執行一「互斥或」運算。對該兩個位元向量之「互斥或」運算可包含:對一「反及」運算之一結果及一「或」運算之一結果執行一「及」運算(例如,A XOR B=(A OR B)AND(A NAND B))。例如,可
對一第一位元向量(例如[0011])及一第二位元向量(例如[0110])執行一「互斥或」運算。該「互斥或」運算包含可對該第一位元向量及該第二位元向量執行以導致一位元向量[1101]之一「反及」運算(例如,使[0011]與[0110]進行「及」運算以導致[0010],且使[0010]位元向量反相以導致一「互斥或」結果[1101])。該「互斥或」運算包含可對該第一位元向量及該第二位元向量執行以導致位元向量[0111]之一「或」運算(例如,使[0011]與[0110]進行「或」運算)。該「互斥或」運算包含可對該「反及」運算之結果(例如「反及」運算結果[1101])及該「或」運算之結果(例如「或」運算結果[0111])執行之一「及」運算。該「及」運算之結果(例如,使[1101]與[0111]進行「及」運算)係位元向量[0101],其係對該第一位元向量(例如[0011])及該第二位元向量(例如[0110])執行之一「互斥或」運算之結果。
如列451-7.p處所展示,將對Intermediate 439(例如[0x3204000c])及Dest 449(例如[0x0])之「互斥或」運算之結果(例如[0x3204000c])儲存為Dest 449(例如,儲存於一群組之記憶體胞(諸如耦合至存取線304-R及感測線305-0至305-31之記憶體胞)中)。將「及」運算之結果(例如,[0x00000000]與[0x3204000c]進行「及」運算以導致[0x00000000])儲存為Carry 437(例如,儲存於耦合至存取線304-4及感測線305-0至305-31之記憶體胞中)。即,在列451-7.p處,Carry 437係[0x00000000](由[0x0]指示)。
在參考項7.q(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如[0x0])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列451-7.q處所展示。在參考項7.r(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使Comp_Comp 431(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致[0x0],如列451-7.r處所展示。在參考項7.s(例如「使Comp_Comp左移」)處,
使Comp_Comp 431(例如[0x0])之各位元左移以導致位元向量[0x0](在此實例中未經改變,此係因為位元向量中不存在「1」來左移)。
在參考項7.t(例如「對於Comp_Comp BlockOR中之任何真位元」)處,重複地執行自參考項7.t.i至7.t.v之一副迴圈,直至在該副迴圈之結束時儲存於計算組件中之位元向量中不存在「1」位元(例如,Comp_Comp 431中無「1」)。在參考項7.t.i(例如「將Comp_Comp儲存於Carry中」)處,將Comp_Comp 431(例如[0x0])儲存為Carry 437。在參考項7.t.ii(例如「使Dest與Carry半相加,輸出Dest及Carry」)處,對Dest 449(例如[0x3204000c])及Carry 437(例如[0x0])執行一半加運算。將對Dest 449(例如[0x3204000c])及Carry 437(例如[0x0])執行之一「互斥或」運算之結果(例如[0x3204000c])儲存為Dest 449(例如,覆寫於先前所儲存之位元向量(在此實例中為相同位元向量)上)。將對Dest 449(例如[0x3204000c])及Carry 437(例如[0x0])執行之一「及」運算之結果(例如[0x0])儲存為Carry 437。在參考項7.t.iii(例如「將Carry載入Comp_Comp中」)處,將Carry(例如[0x0])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.t.iv(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使位元向量(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x0]。在參考項7.t.v(例如「使Comp_Comp左移」)處,使來自「及」運算之儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如位元向量[0x0])之各位元左移一個位置以導致位元向量[0x0]。因為參考項7.t.v係自7.t.i至7.t.v之副迴圈之結束,所以BlockOR運算(如上文所描述)經執行以判定Comp_Comp 431中是否存在一「1」。因為[0x00000000]中不存在「1」,所以副迴圈終止。
在參考項7.u(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask位元向量433(例如[0x11010101])載入至計算組件(例
如,經儲存為Comp_Comp 431)中,如圖4B中之列451-7.u處所展示。在參考項7.v(例如「左移」)處,使Comp_Comp 431(例如[0x11010101])之各位元左移一個位置以導致位元向量[0x22020202],如列451-7.v處所展示。在參考項7.w(例如「執行與Static_Mask之「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x22020202])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x22020202]。在參考項7.x(例如「將Comp_Comp儲存於Dynamic_Mask中」)處,將Comp_Comp 431儲存為Dynamic_Mask位元向量433,如列451-7.x處所展示。
因為包含參考項7.a至7.x之迴圈終止於一BlockOR運算判定在該迴圈結束時儲存於計算組件中之位元向量中不存在「1」時,所以對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x22020202])執行一BlockOR運算。該BlockOR運算判定位元向量[0x22020202]包含一「1」且自參考項7.a至7.x之迴圈重複,如圖4C中所描述。
圖4C繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。例如,圖4C之列453-7.a至453-7.x繪示乘法階段之一第二迭代(例如對應於上文由參考編號7指代之偽碼的迴圈之一第二迭代)期間之位元向量431、433、435、437、439、441、443、445、447及449之值。在上述偽碼之參考項7.a(例如「將srcb載入Comp_Comp中」)處,可將srcb位元向量445(例如位元向量[0x33050203])載入至適當計算組件(例如此實例中之計算組件331-0至331-31)中。例如,可將對應於第一元素(例如[0x3]或二進位數[0011])之4個位元載入至計算組件331-0至331-3中(例如,其中將MSB載入至計算組件331-0中且將各隨後下一最高有效位
元載入至隨後對應計算組件331-1至331-3中,使得一「0」儲存於計算組件331-0及331-1中且一「1」儲存於計算組件331-2及331-3中)。可將srcb位元向量445之隨後元素(例如第二元素([0x3])、第三元素([0x05])、第四元素([0x02])及第五元素([0x03]))載入至隨後對應計算組件331-4至331-31中。因而,圖4C中所展示之表之列453-7.a繪示具有[0x33050203]之一值的位元向量431。
在參考項7.b(例如「使Comp_Comp與Dynamic_Mask進行「及」運算」)處,可對列453-7.a中所展示(例如,鎖存於計算組件331-0至331-31中)之Comp_Comp 431(例如位元向量[0x33050203])及Dynamic_Mask 433(例如位元向量[0x22020202],其可儲存於耦合至存取線304-2及感測線331-0至331-31之記憶體胞中)執行一「及」邏輯運算。
因為將srcb位元向量445之值載入至計算組件331-0至331-31中,所以Comp_Comp 431與Dynamic_Mask 433之「及」運算結果類比於對srcb位元向量445及Dynamic_Mask位元向量433執行一「及」運算之結果。因而,使位元向量[0011 0011 00000101 00000010 00000011](例如[0x33050203])與位元向量[0010 0010 00000010 00000010 00000010](例如[0x22020202])進行「及」運算,其導致位元向量[0010 0010 00000000 00000010 00000010](例如[0x22000202])。在若干實例中,可將「及」邏輯運算之結果作為Comp_Comp 431保存於計算組件(例如331-0至331-31)中。例如,列453-7.b將Comp_Comp 431繪示為[0x22000202]。
在參考項7.c(例如「將Comp_Comp儲存於Intermediate、Iterator中」)處,將參考項7.b處所執行之「及」運算之結果(例如位元向量[0x22000202])儲存於(例如,寫入至)儲存Intermediate 439之記憶體胞及儲存Iterator 441之記憶體胞中。作為一實例,可將Intermediate 439
儲存於耦合至存取線304-5及感測線305-0至305-31之記憶體胞中。圖4C中所展示之表之列453-7.c繪示具有[0x22000202]之一值的Intermediate 439及Iterator 441。
在參考項7.d(例如「副迴圈,直至(若干)BlockOR終止」)處,重複對應於參考項7.d.i至7.d.viii之一副迴圈,直至在一迴圈結束時無「1」位元儲存於計算組件(例如,經儲存為Comp_Comp 431)中。該副迴圈(例如參考項7.d.i至7.d.viii)經執行以產生待儲存為Intermediate 439之一掩碼。在參考項7.d.i(例如「將Intermediate載入Comp_Comp中」)處,將Intermediate 439(例如[0x22000202])作為Comp_Comp 431載入至計算組件中。在參考項7.d.ii(例如「左移」)處,使儲存為Comp_Comp 431之位元向量(例如[0x22000202])之各位元左移一個計算組件以導致儲存為Comp_Comp 431之位元向量[44000404]。即,使第一元素(例如元素[0010]或[0x2])之各位元左移以導致元素[0100]。使第二元素[0010]移位以導致[0100],使第三元素[00000000]移位以導致[00000000],使第四元素[00000010]移位以導致[00000100],且使第五元素[00000010]移位以導致[00000100]。第五元素之最低有效位元(LSB)(例如「0」)左移且該LSB位置仍儲存一「0」,此係因為在此實例中,右邊之一計算組件中無位元來指示何種位元移位至該LSB位置中(例如,在第五元素之LSB之右邊無位元儲存於一計算組件(若其被指定,則其將為計算組件331-32)中)。
在參考項7.d.iii(例如「執行與Intermediate之「或」運算」)處,使用Comp_Comp 431(例如[0x44000404])及Intermediate 439(例如[0x22000202])之位元來執行一「或」運算以導致位元向量[0x66000606]。在參考項7.d.iv(例如「儲存於Intermediate中」)處,將所得位元向量(例如[0x66000606])儲存為Intermediate 439。在參考項7.d.v(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例
如[0x22000202])作為Comp_Comp 431載入至計算組件中。在參考項7.d.vi(例如「左移」)處,使儲存為Comp_Comp 431之位元向量(例如[0x22000202])之各位元左移一個計算組件以導致儲存為Comp_Comp 431之位元向量[0x44000404]。在參考項7.d.vii(例如「執行與Static_Mask之「及」運算」)處,使Comp_Comp 431(例如[0x44000404])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x44000404]。在參考項7.d.viii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如來自[0x44000404]與[0x777f7f7f]之「及」運算的[0x44000404])儲存為Iterator 441。因為在「及」運算結束時,將位元向量[0x44000404]保存於計算組件(例如Comp_Comp 431)中,所以對位元向量[0x44000404]執行參考項7.d(例如「副迴圈,直至(若干)BlockOR終止」)處之BlockOR運算以判定Comp_Comp 441中是否存在一「1」。因為位元向量[0x44000404]含有至少一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第二迴圈包含:在參考項7.d.i處,將Intermediate 439(例如[0x66000606])載入至計算組件(例如,經儲存為Comp_Comp 431)中,且在參考項7.d.ii處,執行一左移。該左移導致位元向量[0xcc000c0c]。在參考項7.d.iii處,使左移之結果(例如[0xcc000c0c])與Intermediate 439(例如[0x66000606])進行「或」運算以導致位元向量[0xee000e0e]。在參考項7.d.iv處,將所得位元向量(例如[0xee000e0e])儲存為Intermediate 439(例如,覆寫於先前Intermediate位元向量上)。在參考項7.d.v處,將Iterator 441(例如[0x44000404])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.d.vi處,使Iterator 441之各位元左移以導致Comp_Comp 431為[0x88000808]。在參考項7.d.vii處,使所得Comp_Comp 431(例如[0x88000808])與Static_Mask 435(例如[0x777f7f7f])進行「及」運
算。在參考項7.d.viii處,將「及」運算之結果(例如[0x00000808])儲存為Iterator 441。在第二迴圈結束時執行一BlockOR運算,且因為Comp_Comp 431(例如[0x00000808])包含一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第三迴圈導致一左移Intermediate 439(例如[0xdc001c1c])與Intermediate 439(例如[0xee000e0e])進行「或」運算。將該「或」運算之結果(例如[0xfe001e1e])儲存為Intermediate 439(例如,覆寫於先前Intermediate位元向量上)。使Iterator 441左移(導致[0x00001010])且與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致儲存為Iterator 441之位元向量[0x00001010]。對Comp_Comp 431(例如0x00001010)執行之一BlockOR運算導致迴圈之一重複。參考項7.d.i至7.d.viii之第四迴圈導致Intermediate 439為[0xfe003e3e]且Iterator 441為[0x00002020]。對[0x00002020]執行之BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第五迴圈導致Intermediate 439為[0xfe007e7e]且Iterator 441為[0x00004040]。對[0x00004040]執行之BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第六迴圈導致Intermediate 439為[0xfe00fefe]且Iterator 441為[0x00000000](例如,Iterator[0x00008080]與Static_Mask[0x777f7f7f]之「或」運算導致位元向量[0x00000000])。對[0x00000000]執行之BlockOR運算指示終止迴圈。
在參考項7.e(例如「將srca載入Comp_Comp中」)處,將srca位元向量443(例如[0x3204080c])載入至對應計算組件(例如,經儲存為Comp_Comp 431)中。例如,可將srca位元向量之第一元素(例如第一元素位元向量[0011])之位元儲存於對應計算組件中,使得一第一計算組件及一第二計算組件(例如計算組件331-0及331-1)儲存一「0」且一第三計算組件及一第四計算組件(例如計算組件331-2及331-3)儲存一「1」。在此實例中,額外計算組件(例如計算組件331-4至331-31)儲存
srca位元向量443之第二元素、第三元素、第四元素及第五元素。
在參考項7.f(例如「儲存於Carry中」)處,將Comp_Comp 431(例如srca位元向量[0x3204080c])儲存為Carry 437,如列453-7.f處所展示。在參考項7.g(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask 433(例如[0x22020202])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如圖4C中之列453-7.g處所展示。在參考項7.h(例如「右移」)處,使Comp_Comp 431(例如[0x22020202])之位元之各者右移一個計算組件以導致位元向量[0x11010101],如列453-7.h處所展示。在參考項7.i(例如,「執行與Static_Mask之「及」運算」)處,使Comp_Comp 431(例如[0x11010101])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算。在參考項7.j(例如「儲存於Iterator中」)處,將「及」運算之結果(例如位元向量[0x11010101])儲存為Iterator 441,如列453-7.j處所展示。
在參考項7.k(例如「副迴圈,直至(若干)BlockOR終止」)處,重複包含參考項7.k.i至7.k.vii之一副迴圈,直至無「1」儲存於計算組件中(例如,Comp_Comp 431不含「1」)。在參考項7.k.i(例如「將Carry載入Comp_Comp中」)處,副迴圈開始於將Carry 437(例如[0x3204080c])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.ii(例如「左移」)處,執行一移位運算,其係基於乘法運算之一迭代(例如參考項7.a至7.x)。例如,在乘法運算之一第一迭代(例如由圖4B繪示之參考項7.a至7.x)期間,副迴圈(例如,包含參考項7.k.i至7.k.vii)包含:執行位元向量之位元之零個移位。在乘法運算之一第二迭代(例如由圖4C繪示之參考項7.a至7.x)期間,副迴圈包含:對位元向量之各位元執行一(1)個左移。對於乘法運算之一第三迭代,各位元左移兩(2)個計算組件。因為此係乘法運算之第二迭代,所以使位元向量之位元之各者左移一個位置。即,使儲存於計算
組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x3204080c])之各位元左移一個位置以導致位元向量[0x64081018]。
在參考項7.k.iii(例如「儲存於Carry中」)處,將來自左移之儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x64081018])儲存為Carry 437,如列453-7.k處所展示。在參考項7.k.iv(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例如[0x11010101])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.v(例如「右移」)處,使Comp_Comp 431(例如[0x11010101])之位元之各者右移(例如,使[0x11010101]之各位元右移一個位置以導致[0x08808080])。在參考項7.k.vi(例如「執行與Static_Mask之「及」運算」)處,使經移位之位元向量(例如[0x08808080])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x00000000](由[0x0]指示)。在參考項7.k.vii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如[0x0])儲存為Iterator 441,如列453-7.k處所展示。一旦一BlockOR運算經執行以判定位元向量中不存在「1」,則包含參考項7.k.i至7.k.vii之副迴圈終止。即,對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x00000000])執行一BlockOR運算。因為位元向量[0x00000000]不含一「1」,所以副迴圈終止。
在參考項7.l(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如[0x64081018])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列453-7.l處所展示。在參考項7.m(例如「執行與Intermediate之「及」運算」)處,使Comp_Comp 431(例如[0x64081018])與Intermediate 439(例如[0xfe00fefe])進行「及」運算,其中將該「及」運算之結果(例如[0x64001018])保存於計算組件(例如,經儲存為Comp_Comp 431)中,如列453-7.m處所展示。在參
考項7.n(例如「儲存於Intermediate中」)處,將「及」運算之結果(例如[0x64001018])儲存為Intermediate 439(例如,將[0x64001018]覆寫於先前所儲存之位元向量上),如列453-7.n處所展示。在參考項7.o(例如「儲存於Carry中」)處,將保存於計算組件中之Comp_Comp 431(例如[0x64001018])儲存為Carry 437,如列453-7.o處所展示。
在參考項7.p(例如「使Intermediate與Dest半相加,輸出Dest及Carry」)處,對Intermediate 439(例如[0x64001018])及Dest 449(例如[0x3204000c])執行一半加運算。一半加運算包含:執行一「互斥或」運算及一「及」運算。可將該「互斥或」運算之結果儲存於一第一位置中(例如,經儲存為Dest 449)且可將該「及」運算之結果儲存於一第二位置中(例如,經儲存為Carry 437)。如列453-7.p處所展示,將對Intermediate 439(例如[0x64001018])及Dest 449(例如[0x3204000c])執行之該「互斥或」運算之結果(例如[0x56041014])儲存為Dest 449(例如,儲存於一群組之記憶體胞(諸如耦合至存取線304-R及感測線305-0至305-31之記憶體胞)中)。將該「及」運算之結果(例如,[0x64001018]與[0x3204000c]進行「及」運算以導致[0x20000008])儲存為Carry 437(例如,儲存於耦合至存取線304-4及感測線305-0至305-31之記憶體胞中)。即,在453-7.p處,Carry 437係[0x20000008]。
在參考項7.q(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如[0x20000008])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列453-7.q處所展示。在參考項7.r(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使儲存於計算組件中之位元向量(例如[0x20000008])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致[0x20000008],如列453-7.r處之Comp_Comp 431中所展示。在參考項7.s(例如「使Comp_Comp左移」)處,使儲存於計算組
件中之位元向量(例如[0x20000008])之各位元左移以導致位元向量[0x40000010],如列453-7.s處之Comp_Comp 431中所展示。
在參考項7.t(例如「對於Comp_Comp BlockOR中之任何真位元」)處,重複地執行自參考項7.t.i至7.t.v之一副迴圈,直至在該副迴圈結束時儲存於計算組件中之位元向量中不存在「1」位元。在參考項7.t.i(例如「將Comp_Comp儲存於Carry中」)處,將儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x40000010])儲存為Carry 437。在參考項7.t.ii(例如「使Dest與Carry半相加,輸出Dest及Carry」)處,對Dest 449(例如[0x56041014])及Carry 437(例如[0x40000010])執行一半加運算。將對Dest 449(例如[0x56041014])及Carry 437(例如[0x40000010])執行之一「互斥或」運算之結果(例如[0x16041004])儲存為Dest 449(例如,覆寫於先前所儲存之位元向量(在此實例中為相同位元向量)上)。將對Dest 449(例如[0x56041014])及Carry 437(例如[0x40000010])執行之一「及」運算之結果(例如[0x40000010])儲存為Carry 437。
在參考項7.t.iii(例如「將Carry載入Comp_Comp中」)處,將Carry(例如[0x40000010])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.t.iv(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x40000010])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x40000010]。在參考項7.t.v(例如「使Comp_Comp左移」)處,使來自「及」運算之儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如位元向量[0x40000010])之各位元左移一個位置以導致位元向量[0x80000020]。因為參考項7.t.v係包含參考項7.t.i至7.t.v之副迴圈之結束,所以BlockOR運算(如上文所描述)經執行以判定儲存
於計算組件中之位元向量中是否存在一「1」。因為[0x80000020]中存在一「1」,所以副迴圈重複。
包含參考項7.t.i至7.t.v之副迴圈之第二迴圈包含:在參考項7.t.i(例如「將Comp_Comp儲存於Carry中)處,將位元向量(例如[80000020])儲存於計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.t.ii(例如「使Dest與Carry半相加,輸出Dest及Carry」)處,對Dest 449(例如[0x16041004])及Carry 437(例如[0x80000020])執行一「互斥或」運算及一「及」運算。將該「互斥或」運算之結果(例如[0x96041024])儲存為Dest 449,如列453-7.t處所展示。將該「及」運算之結果(例如[0x0])儲存為Carry 437,如列453-7.t處所展示。在參考項7.t.iii(例如「將Carry載入Comp_Comp中」)處,將Carry 437載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.t.iv(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致[0x0]。在參考項7.t.v(例如「使Comp_Comp左移」)處,使儲存於計算組件中之位元向量(例如[0x0])之位元之各者左移一個位置。因為此係包含7.t.i至7.t.v之副迴圈之第二迴圈之結束,所以BlockOR運算經執行以判定儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x0],如列453-7.t處所展示)中是否存在一「1」。因為[0x0]中不存在一「1」,所以副迴圈終止。
在參考項7.u(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask位元向量433(例如[0x22020202])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如圖4C中之列453-7.u處所展示。在參考項7.v(例如「左移」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x22020202])之各位元左移一個
位置以導致位元向量[0x44040404],如列453-7.v處所展示。在參考項7.w(例如「執行與Static_Mask之「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x44040404])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x44040404]。在參考項7.x(例如「將Comp_Comp儲存於Dynamic_Mask中」)處,將儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x44040404])儲存為Dynamic_Mask位元向量433,如列453-7.x處所展示。
因為包含參考項7.a至7.x之迴圈終止於一BlockOR運算判定在該迴圈結束時儲存於計算組件中之位元向量中不存在「1」時,所以對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x44040404])執行一BlockOR運算。該BlockOR運算判定:位元向量[0x44040404]包含一「1」且自參考項7.a至7.x之迴圈重複,如圖4D中所描述。
圖4D繪示一表,其展示根據本發明之若干實施例之與執行一乘法運算相關聯之一特定階段中之一陣列之記憶體胞之狀態。例如,圖4D之列455-7.a至455-7.x繪示乘法階段之一第三迭代(例如對應於上文由參考編號7指代之偽碼的迴圈之一第三迭代)期間之位元向量431、433、435、437、439、441、443、445、447及449之值。在上述偽碼之參考項7.a(例如「將srcb載入Comp_Comp中」)處,可將srcb位元向量445(例如位元向量[0x33050203])載入至適當計算組件(例如此實例中之計算組件331-0至331-31)中,如圖4D中之列455-7.a處所展示。例如,可將對應於第一元素(例如[0x3]或二進位數[0011])之4個位元載入至計算組件331-0至331-3中及/或感測放大器306-0至306-3中(例如,其中將MSB載入至耦合至感測線305-0之感測電路中且將各隨後下一最高有效位元載入至隨後對應計算組件331-1至331-3中,使得一「0」
儲存於計算組件331-0及331-1中且一「1」儲存於計算組件331-2及331-3中)。可將srcb位元向量445之隨後元素(例如第二元素([0x3])、第三元素([0x05])、第四元素([0x02])及第五元素([0x03]))載入至隨後對應計算組件331-4至331-31中。因而,圖4D中所展示之表之列455-7.a繪示具有[0x33050203]之一值的位元向量431。
在參考項7.b(例如「使Comp_Comp與Dynamic_Mask進行「及」運算」)處,可對列455-7.a中所展示(例如,鎖存於計算組件331-0至331-31中)之位元向量431(例如位元向量[0x33050203])及Dynamic_Mask位元向量433(例如位元向量[0x44040404],其可儲存於耦合至存取線304-2及感測線331-0至331-31之記憶體胞中)執行一「及」邏輯運算。
因為將srcb位元向量445之值載入至計算組件331-0至331-31中,所以位元向量431與Dynamic_Mask 433之「及」運算結果類比於對srcb位元向量445及Dynamic_Mask位元向量433執行一「及」運算之結果。因而,使位元向量[0011 0011 00000101 00000010 00000011](例如[0x33050203])與位元向量[0100 0100 00000100 00000100 00000100](例如[0x44040404])進行「及」運算,其導致位元向量[0000 0000 00000100 00000000 00000000](例如[0x00040000])。在若干實例中,可將「及」邏輯運算之結果作為位元向量431保存於計算組件(例如331-0至331-31)中。例如,列455-7.b將Comp_Comp位元向量431繪示為[0x00040000]。
在參考項7.c(例如「將Comp_Comp儲存於Intermediate、Iterator中」)處,將參考項7.b處所執行之「及」運算之結果(例如位元向量[0x00040000])儲存於(例如,寫入至)儲存Intermediate 439之記憶體胞及儲存Iterator 441之記憶體胞中。作為一實例,可將Intermediate 439儲存於耦合至存取線304-5及感測線305-0至305-31之記憶體胞中。圖
4D中所展示之表之455-7.c繪示具有[0x00040000]之一值的Intermediate 439及Iterator 441。
在參考項7.d(例如「副迴圈,直至(若干)BlockOR終止」)處,重複包含參考項7.d.i至7.d.viii之一副迴圈,直至在一迴圈結束時無「1」位元儲存於計算組件(例如,經儲存為Comp_Comp 431)中。副迴圈(例如參考項7.d.i至7.d.viii)經執行以產生待儲存為Intermediate 439之一掩碼。在參考項7.d.i(例如「將Intermediate載入Comp_Comp中」)處,將Intermediate 439(例如[0x00040000])載入至Comp_Comp 431(例如計算組件331-0至331-31)中。在參考項7.d.ii(例如「左移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x00040000])之各位元左移一個計算組件以導致儲存於Comp_Comp 431中之位元向量[0x00080000]。即,使第一元素(例如元素[0000]或[0x0])之各位元左移以導致元素[0000]。使第二元素[0000]移位以導致[0000],使第三元素[00000100]移位以導致[00001000],使第四元素[00000000]移位以導致[00000000],且使第五元素[00000000]移位以導致[00000000]。第五元素之最低有效位元(LSB)(例如「0」)左移且該LSB位置仍儲存一「0」,此係因為在此實例中,右邊之一計算組件中無位元來指示何種位元移位至該LSB位置中(例如,在第五元素之LSB之右邊無位元儲存於一計算組件(若其被指定,則其將為計算組件331-32)中)。
在參考項7.d.iii(例如「執行與Intermediate之「或」運算」)處,使用儲存於Comp_Comp 431中之位元向量(例如[0x00080000])及Intermediate(例如[0x00040000])來執行一「或」運算以導致位元向量[0x000c0000]。在參考項7.d.iv(例如「儲存於Intermediate中」)處,將所得位元向量(例如[0x000c0000])儲存為Intermediate 439。在參考項7.d.v(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例
如[0x00040000])載入至Comp_Comp 431中。在參考項7.d.vi(例如「左移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x00040000])之各位元左移一個計算組件以導致儲存於Comp_Comp 431中之位元向量[0x00080000]。在參考項7.d.vii(例如「執行與Static_Mask之「及」運算」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x00080000])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x00080000]。在參考項7.d.viii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如來自[0x00080000]與[0x777f7f7f]之「及」運算的[0x00080000])儲存為Iterator 441。因為在「及」運算結束時,將位元向量[0x00080000]保存於計算組件(例如Comp_Comp 431)中,所以使用計算組件(例如,經儲存為Comp_Comp 431)來對位元向量[0x00080000]執行參考項7.d(例如「副迴圈,直至(若干)BlockOR終止」)處之BlockOR運算以判定位元向量中是否存在一「1」。因為位元向量[0x00080000]含有至少一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第二迴圈包含:在參考項7.d.i處,將Intermediate 439(例如[0x000c0000])載入至計算組件(例如,經儲存為Comp_Comp 431)中,且在參考項7.d.ii處,執行一左移。該左移導致位元向量[0x00180000]。在參考項7.d.iii處,使該左移之結果(例如[0x00180000])與Intermediate(例如[0x000c0000])進行「或」運算以導致位元向量[0x001c0000]。在參考項7.d.iv處,將所得位元向量(例如[0x001c0000])儲存為Intermediate 439。在參考項7.d.v處,將Iterator 441(例如[0x00080000])載入至Comp_Comp 431中。在參考項7.d.vi處,使Iterator 441左移以導致Comp_Comp 431中之位元向量[0x00100000]。在參考項7.d.vii處,使Comp_Comp 431中之所得位元向量[0x00100000]與Static_Mask 435(例如[0x777f7f7f])進行「及」運
算。在參考項7.d.viii處,將「及」運算之結果(例如[0x00100000])儲存為Iterator 441。在第二迴圈結束時執行一BlockOR運算,且因為[0x00100000]位元向量儲存於Comp_Comp 431中且包含一「1」,所以迴圈重複。
參考項7.d.i至7.d.viii之第三迴圈導致一左移Intermediate位元向量(例如[0x00380000])與Intermediate(例如[0x001c0000])進行「或」運算。將該「或」運算之結果(例如[0x003c0000])儲存為Intermediate 439。使Iterator 441左移(導致[0x00200000])且與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致儲存為Iterator 441之位元向量[0x00200000]。對儲存於Comp_Comp 431中之位元向量[0x00200000]執行之一BlockOR運算導致迴圈之一重複。參考項7.d.i至7.d.viii之第四迴圈導致[0x007c0000]之一Intermediate位元向量439及[0x00400000]之一Iterator位元向量441。對[0x00400000]執行之BlockOR運算指示重複迴圈。參考項7.d.i至7.d.viii之第五迴圈導致[0x00fc0000]之一Intermediate位元向量439及[0x00000000]之一Iterator位元向量441(此係因為經移位之Iterator係[0x00800000],其在與Static_Mask[0x777f7f7f])進行「及」運算時變成[0x00000000])。對[0x00000000]執行之BlockOR運算指示終止迴圈。
在參考項7.e(例如「將srca載入Comp_Comp中」)處,將srca位元向量443(例如[0x3204080c])載入至對應計算組件(例如,經儲存為Comp_Comp 431)中。例如,可將srca位元向量之第一元素(例如第一元素位元向量[0011])之位元儲存於對應計算組件中,使得一第一計算組件及一第二計算組件(例如計算組件331-0及331-1)儲存一「0」且一第三計算組件及一第四計算組件(例如計算組件331-2及331-3)儲存一「1」。在此實例中,額外計算組件(例如計算組件331-4至331-31)儲存srca位元向量443之第二元素、第三元素、第四元素及第五元素。
在參考項7.f(例如「儲存於Carry中」)處,將儲存於Comp_Comp 431中之位元向量(例如srca位元向量[0x3204080c])儲存為Carry 437,如列455-7.f處所展示。在參考項7.g(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask位元向量433(例如[0x44040404])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如圖4D中之列455-7.g處所展示。在參考項7.h(例如「右移」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x44040404])之位元之各者右移一個計算組件以導致位元向量[0x22020202],如列455-7.h處所展示。在參考項7.i(例如「執行與Static_Mask之「及」運算」)處,使儲存於Comp_Comp 431中之位元向量(例如[0x22020202])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算。在參考項7.j(例如「儲存於Iterator中」)處,將「及」運算之結果(例如位元向量[0x22020202])儲存為Iterator 441,如列455-7.j處所展示。
在參考項7.k(例如「副迴圈,直至(若干)BlockOR終止」)處,重複包含參考項7.k.i至7.k.vii之一副迴圈,直至無「1」儲存於計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.i(例如「將Carry載入Comp_Comp中」)處,副迴圈開始於將Carry 437(例如[0x3204080c])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.ii(例如「左移」)處,執行一移位運算,其係基於乘法運算之一迭代(例如參考項7.a至7.x)。例如,在乘法運算之一第三迭代期間,將使Carry 437(例如[0x3204080c])之各位元左移兩(2)個計算組件。在包含參考項7.k.i至7.k.vii之副迴圈之一第一迴圈期間,將使位元向量之位元之各者左移一個位置。即,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x3204080c])之各位元左移一個位置以導致位元向量[0x74081018]。
在參考項7.k.iii(例如「儲存於Carry中」)處,將來自左移之儲存
於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x74081018]儲存為Carry 437,如列455-7.k處所展示。在參考項7.k.iv(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例如[0x22020202])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.v(例如「右移」)處,使載入Comp_Comp 431中之位元向量(例如[0x22020202])之位元之各者右移(例如,使[0x22020202]之各位元右移一個位置以導致[0x11010101])。在參考項7.k.vi(例如「執行與Static_Mask之「及」運算」)處,使經移位之位元向量(例如[0x11010101])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x11010101]。在參考項7.k.vii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如[0x11010101])儲存為Iterator 441,如列455-7.k處所展示。在第一副迴圈(例如,包含參考項7.k.i至7.k.vii)結束時對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x11010101])執行一BlockOR運算。位元向量[0x11010101]包含一「1」,所以副迴圈重複。
在參考項7.k.i(例如「將Carry載入Comp_Comp中」)處,第二迴圈開始於將Carry 437(例如[0x74081018])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.ii(例如「左移」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x74081018])之各位元左移一個位置以導致位元向量[0xc8102030]。
在參考項7.k.iii(例如「儲存於Carry中」)處,將來自左移之儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0xc8102030])儲存為Carry 437,如列455-7.k處所展示。在參考項7.k.iv(例如「將Iterator載入Comp_Comp中」)處,將Iterator 441(例如[0x11010101])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考項7.k.v(例如「右移」)處,使載入Comp_Comp 431中之位
元向量(例如[0x08808080])之位元之各者右移(例如,使[0x11010101]之各位元右移一個位置以導致[0x08808080])。在參考項7.k.vi(例如「執行與Static_Mask之「及」運算」)處,使經移位之位元向量(例如[0x08808080])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x00000000]。在參考項7.k.vii(例如「儲存於Iterator中」)處,將「及」運算之結果(例如[0x00000000])儲存為Iterator 441,如列455-7.k處所展示。在第一副迴圈(例如,包含參考項7.k.i至7.k.vii)結束時對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x00000000],由[0x0]指示)執行一BlockOR運算。例如,將位元向量[0x0]儲存於列455-7.k處所展示之計算組件(例如,經儲存為Comp_Comp 431)中且計算組件對[0x0]位元向量之位元執行BlockOR運算。因為[0x00000000]位元向量中不存在「1」,所以副迴圈終止。
在參考項7.l(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如[0xc8102030])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列455-7.l處所展示。在參考項7.m(例如「執行與Intermediate之「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0xc8102030])與Intermediate(例如[0x00fc0000])進行「及」運算,其中將該「及」運算之結果(例如[0x00100000])保存於計算組件(例如,經儲存為Comp_Comp 431)中,如列455-7.m處所展示。在參考項7.n(例如「儲存於Intermediate中」)處,將「及」運算之結果(例如[0x00100000])儲存為Intermediate 439(例如,將[0x00100000]覆寫於先前所儲存之位元向量上),如列455-7.n處所展示。在參考項7.o(例如「儲存於Carry中」)處,將保存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x00100000])儲存為Carry 437,如列455-7.o處所展示。
在參考項7.p(例如「使Intermediate與Dest半相加,輸出Dest及Carry」)處,對Intermediate 439(例如[0x00100000])及Dest 449(例如[0x96041024])執行一半加運算。一半加運算包含:執行一「互斥或」運算及一「及」運算。可將該「互斥或」運算之結果儲存於一第一位置中(例如,經儲存為Dest 449)且可將該「及」運算之結果儲存於一第二位置中(例如,經儲存為Carry 437)。如列455-7.p處所展示,將對Intermediate 439(例如[0x00100000])及Dest 449(例如[0x96041024])執行之該「互斥或」運算之結果(例如[0x96141024])儲存為Dest 449(例如,儲存於一群組之記憶體胞(諸如耦合至存取線304-R及感測線305-0至305-31之記憶體胞)中)。將該「及」運算之結果(例如,[0x96041024]與[0x00100000]進行「及」運算以導致[0x00000000])儲存為Carry 437(例如,儲存於耦合至存取線304-4及感測線305-0至305-31之記憶體胞中)。即,在列455-7.p處,Carry 437係[0x0](指示[0x00000000])。
在參考項7.q(例如「將Carry載入Comp_Comp中」)處,將Carry 437(例如由[0x0]指示之[0x00000000])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如列455-7.q處所展示。在參考項7.r(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使儲存於計算組件中之位元向量(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致[0x0],如列453-7.r處之Comp_Comp 431中所展示)。在參考項7.s(例如「使Comp_Comp左移」)處,使儲存於計算組件中之位元向量(例如[0x0])之各位元左移以導致位元向量[0x0],如列455-7.s處之Comp_Comp 431中所展示。
在參考項7.t(例如「對於Comp_Comp BlockOR中之任何真位元」)處,重複地執行自參考項7.t.i至7.t.v之一副迴圈,直至在該副迴圈結束時儲存於計算組件中之位元向量中不存在「1」位元。在參考
項7.t.i(例如「將Comp_Comp儲存於Carry中」)處,將儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x0])儲存為Carry 437。在參考項7.t.ii(例如「使Dest與Carry半相加,輸出Dest及Carry」)處,對Dest 449(例如[0x96141024])及Carry 437(例如[0x0])執行一半加運算。將對Dest 449(例如[0x96141024])及Carry 437(例如[0x0])執行之一「互斥或」運算之結果(例如[0x96141024])儲存為Dest 449(例如,覆寫於先前所儲存之位元向量(在此實例中為相同位元向量)上)。將對Dest 449(例如[0x96141024])及Carry 437(例如[0x0])執行之一「及」運算之結果(例如[0x0])儲存為Carry 437。
在參考項7.t.iii(例如「將Carry載入Comp_Comp中」)處,將Carry(例如[0x0])載入至計算組件(例如,經儲存為Comp_Comp 431)中。在參考7.t.iv(例如「使Comp_Comp與Static_Mask進行「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x0])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x0]。在參考項7.t.v(例如「使Comp_Comp左移」)處,使來自「及」運算之儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如位元向量[0x0])之各位元左移一個位置以導致位元向量[0x0]。因為參考項7.t.v係包含參考項7.t.i至7.t.v之副迴圈之結束,所以BlockOR運算(如上文所描述)經執行以判定儲存於計算組件中之位元向量中是否存在一「1」。因為[0x0]中不存在一「1」,所以副迴圈終止。
在參考項7.u(例如「將Dynamic_Mask載入Comp_Comp中」)處,將Dynamic_Mask位元向量433(例如[0x44040404])載入至計算組件(例如,經儲存為Comp_Comp 431)中,如圖4D中之列455-7.u處所展示。在參考項7.v(例如「左移」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x44040404])之各位元左移一個
位置以導致位元向量[0x88080808],如列455-7.v處所展示。在參考項7.w(例如「執行與Static_Mask之「及」運算」)處,使儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x88080808])與Static_Mask 435(例如[0x777f7f7f])進行「及」運算以導致位元向量[0x00080808]。在參考項7.x(例如「將Comp_Comp儲存於Dynamic_Mask中」)處,將儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x00080808])儲存為Dynamic_Mask位元向量433,如列455-7.x處所展示。
因為包含參考項7.a至7.x之迴圈終止於一BlockOR運算判定在該迴圈結束時儲存於計算組件中之位元向量中不存在「1」時,所以對儲存於計算組件(例如,經儲存為Comp_Comp 431)中之位元向量(例如[0x00080808])執行一BlockOR運算。該BlockOR運算判定位元向量[0x00080808]包含一「1」且對應於參考編號7(例如參考項7.a至7.x)之迴圈重複若干隨後迭代。下文指示隨後迭代之結果;然而,未描述細節,此係因為該等隨後迭代未改變儲存乘法運算之結果(例如表示元素對之乘積的一位元向量)的Dest 449(例如[0x96141024])之值。例如,在一第四迭代之執行期間,Dynamic_Mask 433具有[0x00080808]之一值,在一第五迭代之執行期間,Dynamic_Mask 433具有[0x00101010]之一值,在一第六迭代之執行期間,Dynamic_Mask 433具有[0x00202020]之一值,在一第七迭代之執行期間,Dynamic_Mask 433具有[0x00404040]之一值,且在一第八迭代之執行期間,Dynamic_Mask 433具有[0x00000000]之一值(此係因為Dynamic_Mask位元向量[0x00808080]與Static_Mask[0x777f7f7f]進行「及」運算以導致位元向量[0x00000000])。將Dynamic_Mask位元向量[0x00000000]載入至計算組件中且執行BlockOR運算。因為Comp_Comp 431之值係[0x00000000](由[0x0])指示),所以BlockOR運算使一「0」返回且迴
圈終止。
因為在三(3)個迭代之後判定兩個位元向量(例如srca位元向量443[0x3204080c]及srcb位元向量445[0x33050203])之一乘積,所以第四迭代至第八迭代將繼續使用具有相同值(例如[0x96141024])之Dest,且無進一步進位值來加至該乘積中。迭代之次數對應於相乘之位元向量之固定寬度(即,在此實例中,各相乘元素之一位元寬度係8個位元)。所得位元向量[0x96141024]係位元向量[0x3204080c]與[0x33050203]之一乘積。即,第一位元向量[0x3204080c]之一第一元素[0x3]與第二位元向量[0x33050203]之一第一元素[0x3]相乘導致一第一乘積元素[0x9](例如所得位元向量[0x96141024](其經儲存為列455-7.x處之Dest 449)之第一元素)。第一位元向量之一第二元素[0x2]與第二位元向量之一第二元素[0x3]相乘導致一第二乘積元素[0x6]。第一位元向量之一第三元素[0x04]與第二位元向量之一第三元素[0x05]相乘導致一第三乘積元素[0x14](其表示十(10)進位值20)。第一位元向量之一第四元素[0x08]與第二位元向量之一第四元素[0x02]相乘導致一第四乘積元素[0x10](其表示十(10)進位值16)。第一位元向量之一第五元素[0x0c]與第二位元向量之一第五元素[0x03]相乘導致一第五乘積元素[0x24](其表示十(10)進位值36)。
圖5A繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之一時序圖。下文相對於執行邏輯運算且將一結果最初儲存於計算組件231(例如累加器之次級鎖存器)中而描述圖2A之感測電路250之功能性。圖5A中所展示之時序圖繪示與使用圖2A中所繪示之感測電路來執行一邏輯運算(例如一R輸入邏輯運算)之一第一操作階段相關聯之信號(例如電壓信號)。相對於圖5A所描述之第一操作階段可為(例如)一「及」、「反及」、「或」或「反或」運算之一第一操作階段。執行圖5A中所繪示之操作階段可涉及:消耗比先前處理
方法(其可涉及:在導軌電壓之間(例如,在一供應電壓與接地之間)提供一全擺動)顯著更少之能量(例如,約一半)。
在圖5A所繪示之實例中,對應於互補邏輯值(例如「1」及「0」)之導軌電壓係一供應電壓(VCC)及一參考電壓(例如接地(Gnd))。在執行一邏輯運算之前,一平衡可發生,使得互補資料線D及D_在一平衡電壓(VCC/2)處短接在一起,如先前所描述。
下文將描述之一邏輯運算之第一操作階段涉及:將該邏輯運算之一第一運算元載入至累加器中。圖5A中所展示之時間參考(例如t1等等)未必表示相同於其他時序圖中之類似時間參考的一絕對或相對時間。
在時間t1處,撤銷平衡信號526,且接著啟用一選定列(例如對應於一記憶體胞(其資料值將被感測且用作一第一輸入)之列)。信號504-0表示施加至選定列(例如圖2A中所展示之列Y 204-Y)之電壓信號。當列信號504-0達到對應於選定記憶體胞之存取電晶體(例如圖2A中所展示之202-1)之臨限電壓(Vt)時,存取電晶體接通且將資料線D耦合至選定記憶體胞(例如,若記憶體胞係一1T1C DRAM記憶體胞,則耦合至圖2A中所展示之電容器203-1),其在時間t2與t3之間產生資料線D與D_之間的一差動電壓信號(例如分別由資料線上之信號505-1及505-2所指示)。由信號503表示選定記憶體胞之電壓。歸因於能量守恆,在資料線D與D_之間產生差動信號(例如,藉由將記憶體胞耦合至資料線D)不消耗能量,此係因為可將與啟用/停用列信號504-0相關聯之能量攤銷於耦合至列之複數個記憶體胞上。
在時間t3處,啟用感測放大器(例如圖2A中所展示之206)(例如,一正控制信號590(例如,對應於圖2B中所展示之ACT 265)升至高態且負控制信號528(例如,對應於圖2B中所展示之RnIF 228)降為低態),該感測放大器放大資料線D與D_之間的差動信號以導致對應於
一邏輯「1」之一電壓(例如VDD)或對應於一邏輯「0」之一電壓(例如接地)作用於資料線D上(且另一電壓作用於互補資料線D_上),使得所感測之資料值儲存於感測放大器206之初級鎖存器中。主要能量消耗發生於將資料線D(205-1)自平衡電壓VDD/2充電至導軌電壓VDD時。在實例中,圖5A展示對應於資料線D上之一邏輯「1」的資料線電壓505-1及505-2。
根據一些實施例,感測放大器206之初級鎖存器可透過各自通路電晶體而耦合至互補資料線D及D_(圖2A中未展示,但呈類似於鎖存器264透過圖2A中所展示之負載/通路電晶體218-1及218-2而耦合至資料線D及D_之方式的一組態)。Passd控制信號511控制一通路電晶體。Passdb控制信號控制另一通路電晶體,此處,Passdb控制信號可表現為相同於Passd控制信號。
在時間t4處,可啟用通路電晶體(若存在)(例如,經由施加至控制線(其耦合至通路電晶體之各自閘極)之各自Passd及Passdb控制信號511升至高態)。在時間t5處,經由圖2A中所展示之各自控制線212-1及212-2而啟動累加器正控制信號512-1(例如Accumb)及累加器正控制信號512-2(例如Accum)。如下文將描述,累加器控制信號ACCUMB 512-1及ACCUM 512-2可保持啟動以用於隨後操作階段。因而,在此實例中,啟動控制信號ACCUMB 512-1及ACCUM 512-2以啟用圖2A中所展示之計算組件231之次級鎖存器(例如累加器)。將儲存於感測放大器206中之所感測資料值傳送(例如,複製)至次級鎖存器(其包含動態鎖存器及鎖存器264)。
在時間t6處,Passd控制信號511(及Passdb控制信號)降為低態,藉此切斷通路電晶體(若存在)。然而,因為累加器控制信號ACCUMB 512-1及ACCUM 512-2保持啟動,所以將一累加結果儲存(例如,鎖存)於次級鎖存器(例如累加器)中。在時間t7處,撤銷列信號504-0,且
在時間t8處停用陣列感測放大器(例如,撤銷感測放大器控制信號528及590)。
在時間t9處,平衡資料線D及D_(例如,啟動平衡信號526),如藉由資料線電壓信號505-1及505-2自其各自導軌值移動至平衡電壓(VDD/2)所繪示。平衡歸因於能量守恆定律而幾乎不消耗能量。如上文結合圖2B所描述,平衡可涉及:在一平衡電壓(在此實例中,其係VDD/2)處將互補資料線D及D_短接在一起。平衡可發生於(例如)一記憶體胞感測操作之前。
圖5B及圖5C分別繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之時序圖。圖5B及圖5C中所展示之時序圖繪示與執行一邏輯運算(例如一R輸入邏輯運算)之若干中間操作階段相關聯之信號(例如電壓信號)。例如,圖5B中所展示之時序圖對應於一R輸入「反及」運算或一R輸入「及」運算之若干中間操作階段,且圖5C中所展示之時序圖對應於一R輸入「反或」運算或一R輸入「或」運算之若干中間操作階段。例如,執行一「及」或「反及」運算可包含:在一初始操作階段(諸如相對於圖5A所描述之初始操作階段)之後一或多次執行圖5B中所展示之操作階段。類似地,執行一「或」或「反或」運算可包含:在一初始操作階段(諸如相對於圖5A所描述之初始操作階段)之後一或多次執行相對於圖5C中所展示及所描述之操作階段。
如圖5B及圖5C中所繪示之時序圖中所展示,在時間t1處,停用平衡(例如,撤銷平衡信號526),且接著啟用一選定列(例如對應於一記憶體胞(其資料值將被感測且用作一輸入,諸如一第二輸入、第三輸入等等)之列)。信號504-1表示施加至選定列(例如圖2A中所展示之列Y 204-Y)之電壓信號。當列信號504-1達到對應於選定記憶體胞之存取電晶體(例如圖2A中所展示之202-1)之臨限電壓(Vt)時,存取電晶體
接通且將資料線D耦合至選定記憶體胞(例如,若記憶體胞係一1T1C DRAM記憶體胞,則耦合至電容器203-1),其在時間t2與t3之間產生資料線D與D_之間的一差動電壓信號(例如分別由信號505-1及505-2所指示)。由信號503表示選定記憶體胞之電壓。歸因於能量守恆,在D與D_之間產生差動信號(例如,藉由將記憶體胞耦合至資料線D)不消耗能量,此係因為可將與啟用/停用列信號504-1相關聯之能量攤銷於耦合至列之複數個記憶體胞上。
在時間t3處,啟用感測放大器(例如圖2A中所展示之206)(例如,一正控制信號590(例如,對應於圖2B中所展示之ACT 265)升至高態,且負控制信號528(例如圖2B中所展示之RnIF 228)降為低態),該感測放大器放大D與D_之間的差動信號以導致對應於一邏輯「1」之一電壓(例如VDD)或對應於一邏輯「0」之一電壓(例如接地)作用於資料線D上(且另一電壓作用於互補資料線D_上),使得所感測之資料值儲存於感測放大器206之初級鎖存器中。主要能量消耗發生於將資料線D(205-1)自平衡電壓VDD/2充電至導軌電壓VDD時。
如圖5B及圖5C中所繪示之時序圖中所展示,在時間t4處(例如,在感測選定記憶體胞之後),根據特定邏輯運算而啟動圖5B中所展示之控制信號511-1(Passd)及圖5C中所展示之控制信號511-2(Passdb)之僅一者(例如,啟用通路電晶體(若存在)之僅一者)。例如,因為圖5B中所繪示之時序圖對應於一「反及」或「及」運算之一中間階段,所以在時間t4處啟動控制信號511-1(Passd)以接通將初級鎖存器耦合至資料線D之通路電晶體且Passdb控制信號保持撤銷以使將初級鎖存器耦合至資料線D_之通路電晶體保持切斷。相反地,因為圖5C中所繪示之時序圖對應於一「反或」或「或」運算之一中間階段,所以在時間t4處啟動控制信號511-2(Passdb)以接通將初級鎖存器耦合至資料線D_之通路電晶體且控制信號Passd保持撤銷以使將初級鎖存器耦合至
資料線D之通路電晶體保持切斷。自上文回想到,在相對於圖5A所描述之最初操作階段期間啟動累加器控制信號512-1(Accumb)及512-2(Accum),且累加器控制信號512-1(Accumb)及512-2(Accum)在(若干)中間操作階段期間保持啟動。
因為先前已啟用累加器,所以僅啟動Passd(如圖5B中所展示之511-1)導致對應於圖5B中所展示之電壓信號505-1(其對應於資料線D)之資料值累加。類似地,僅啟動Passdb(如圖5C中所展示之511-2)導致對應於電壓信號505-2(其對應於資料線D_)之資料值累加。例如,在圖5B中所繪示之時序圖中所展示之一實例性「及」/「反及」運算(其中僅啟動Passd 511-1)中,若儲存於第二選定記憶體胞中之資料值係一邏輯「0」,則與次級鎖存器相關聯之累加值被確證為低態,使得次級鎖存器儲存邏輯「0」。若儲存於第二選定記憶體胞中之資料值並非為一邏輯「0」,則次級鎖存器保持其儲存之第一選定記憶體胞資料值(例如一邏輯「1」或一邏輯「0」)。因而,在此「及」/「反及」運算實例中,次級鎖存器用作一「零(0)」累加器。
類似地,在圖5C中所繪示之時序圖中所展示之一實例性「或」/「反或」運算(其中僅啟動Passdb 511-2)中,若儲存於第二選定記憶體胞中之資料值係一邏輯「1」,則與次級鎖存器相關聯之累加值被確證為高態,使得次級鎖存器儲存邏輯「1」。若儲存於第二選定記憶體胞中之資料值並非為一邏輯「1」,則次級鎖存器保持其儲存之第一選定記憶體胞資料值(例如一邏輯「1」或一邏輯「0」)。因而,在此「或」/「反或」運算實例中,次級鎖存器有效地用作一「一(1)」累加器,此係因為D_上之電壓信號505-2設定累加器之真資料值。
在一中間操作階段(諸如圖5B或圖5C中所展示之中間操作階段)結束時,撤銷Passd信號511-1(例如,用於「及」/「反及」運算)或Passdb信號511-2(例如,用於「或」/「反或」運算)(例如,在時間t5
處),停用選定列(例如,在時間t6處),停用感測放大器(例如,在時間t7處),且平衡發生(例如,在時間t8處)。一中間操作階段(諸如圖5B或圖5C中所繪示之中間操作階段)可經重複以累加來自若干額外列之結果。作為一實例,可在一隨後(例如,第二)時間對一第三記憶體胞執行圖5B及/或圖5C中所繪示之時序圖之序列,在一隨後(例如,第三)時間對一第四記憶體胞執行圖5B及/或圖5C中所繪示之時序圖之序列,等等。例如,對於一10輸入「反或」運算,圖5C中所展示之中間階段可發生9次以提供10輸入邏輯運算之9個輸入,其中在初始操作階段(例如相對於圖5A所描述)期間判定第十輸入。
圖5D繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之一時序圖。圖5D中所繪示之時序圖展示與執行一邏輯運算(例如一R輸入邏輯運算)之一最後操作階段相關聯之信號(例如電壓信號)。例如,圖5D中所繪示之時序圖對應於一R輸入「及」運算或一R輸入「或」運算之一最後操作階段。
例如,執行一R輸入之一最後操作階段可包含:在結合圖5B及/或圖5C所描述之(若干)中間操作階段之若干迭代之後,執行圖5D中所展示之操作階段。下文所展示之表3指示對應於與根據本文中所描述之若干實施例執行若干R輸入邏輯運算相關聯之操作階段之序列的圖。
可(例如)藉由將一「及」運算之R-1次迭代之結果儲存於感測放
大器中,接著在進行最後操作階段以儲存結果之前使感測放大器反相而實施一「反及」運算(如下文將描述)。可(例如)藉由將一「或」運算之R-1次迭代之結果儲存於感測放大器中,接著在進行最後操作階段以儲存結果之前使感測放大器反相而實施一「反或」運算(如下文將描述)。
結合將一R輸入邏輯運算之一結果儲存至陣列(例如圖2A中所展示之陣列230)之一列而描述圖5D之時序圖中所繪示之最後操作階段。然而,如上文所描述,在若干實施例中,可將結果儲存至一適合位置而非儲存回至陣列(例如,經由I/O線而儲存至與一控制器及/或主機處理器相關聯之一外部暫存器,儲存至一不同記憶體器件之一記憶體陣列,等等)。
如圖5D中所繪示之時序圖中所展示,在時間t1處,平衡經停用(例如,平衡信號526經撤銷)使得資料線D及D_浮動。在時間t2處,Passd控制信號511(及Passdb信號)經啟動以用於一「及」或「或」運算。
啟動Passd控制信號511(及Passdb信號)(例如,與一「及」或「或」運算相關聯)以將儲存於圖2A中所展示之計算組件231之次級鎖存器中之累加輸出傳送至感測放大器206之初級鎖存器。例如,對於一「及」運算,若先前操作階段(例如圖5A中所繪示之第一操作階段及圖5B中所繪示之中間操作階段之一或多個迭代)中所感測之記憶體胞之任何者儲存一邏輯「0」(例如,若「及」運算之R輸入之任何者係一邏輯「0」),則資料線D_將攜載對應於邏輯「1」之一電壓(例如VDD)且資料線D將攜載對應於邏輯「0」之一電壓(例如接地)。對於此「及」運算實例,若先前操作階段中所感測之全部記憶體胞儲存一邏輯「1」(例如,若「及」運算之全部R輸入係邏輯「1」),則資料線D_將攜載對應於邏輯「0」之一電壓且資料線D將攜載對應於邏輯
「1」之一電壓。接著,在時間t3處,啟用感測放大器206之初級鎖存器(例如,一正控制信號590(例如,對應於圖2B中所展示之ACT 265)升至高態且負控制信號528(例如,對應於圖2B中所展示之RnIF 228)降為低態),感測放大器206放大資料線D與D_之間的差動信號,使得資料線D此時攜載各自輸入資料值之「及」運算結果,如自先前操作階段期間所感測之記憶體胞所判定。因而,若輸入資料值之任何者係一邏輯「0」,則資料線D將接地,且若全部輸入資料值係一邏輯「1」,則資料線D將具有VDD。
對於一「或」運算,若先前操作階段(例如圖5A之第一操作階段及圖5C中所展示之中間操作階段之一或多個迭代)中所感測之記憶體胞之任何者儲存一邏輯「1」(例如,若「或」運算之R輸入之任何者係一邏輯「1」),則資料線D_將攜載對應於邏輯「0」之一電壓(例如接地)且資料線D將攜載對應於邏輯「1」之一電壓(例如VDD)。對於此「或」運算實例,若先前操作階段中所感測之全部記憶體胞儲存一邏輯「0」(例如,若「或」運算之全部R輸入係邏輯「0」),則資料線D將攜載對應於邏輯「0」之一電壓且資料線D_將攜載對應於邏輯「1」之一電壓。接著,在時間t3處,啟用感測放大器206之初級鎖存器且資料線D此時攜載各自輸入資料值之「或」運算結果,如自先前操作階段期間所感測之記憶體胞所判定。因而,若輸入資料值之任何者係一邏輯「1」,則資料線D將具有VDD,且若全部輸入資料值係一邏輯「0」,則資料線D將接地。
接著,可將R輸入「及」或「或」邏輯運算之結果儲存回至圖2A中所展示之陣列230之一記憶體胞。在圖5D所展示之實例中,將R輸入邏輯運算之結果儲存至耦合至最後啟用列(例如最後邏輯運算運算元之列)之一記憶體胞。將邏輯運算之結果儲存至一記憶體胞僅涉及:藉由啟用特定列而啟用相關聯之列存取電晶體。將記憶體胞之電
容器驅動至資料線D上對應於資料值(例如邏輯「1」或邏輯「0」)之一電壓,其本質上覆寫先前儲存於選定記憶體胞中之任何資料值。應注意,選定記憶體胞可為一相同記憶體胞,其儲存用作邏輯運算之一輸入的一資料值。例如,可將邏輯運算之結果儲存回至儲存邏輯運算之一運算元的一記憶體胞。
圖5D中所繪示之時序圖展示:在時間t7處,正控制信號590及負控制信號528經撤銷(例如,信號590降為低態且信號528升至高態)以停用圖2A中所展示之感測放大器206。在時間t4處,撤銷在時間t2處啟動之Passd控制信號511(及Passdb信號)。實施例不受限於此實例。例如,在若干實施例中,可在時間t4之後(例如,在撤銷Passd控制信號511(及Passdb信號)之後)啟用圖2A中所展示之感測放大器206。
如圖5D中所展示,在時間t5處,啟用一選定列(例如,藉由列啟動信號504升至高態,其將選定記憶體胞之電容器驅動至對應於儲存於累加器中之邏輯值的電壓)。在時間t6處,停用選定列。在時間t7處,停用圖2A中所展示之感測放大器206(例如,在圖5D中撤銷正控制信號528及負控制信號590),且在時間t8處,平衡發生(例如,啟動信號526且使互補資料線505-1(D)及505-2(D_)上之電壓達到平衡電壓,如圖5D中所展示)。
雖然上文相對於用於執行「及」及「或」邏輯運算之圖5D而討論執行一R輸入之一最後運算階段的實例,但實施例不受限於此等邏輯運算。例如,「反及」及「反或」運算亦可涉及儲存回至陣列230之一記憶體胞的一R輸入之一最後運算階段,其使用控制信號來操作圖2A中所繪示之感測電路。
下文描述圖2A之感測電路250之功能性且下文在表1中相對於執行邏輯運算且將一結果最初儲存於感測放大器206中而概述圖2A之感測電路250之功能性。將一特定邏輯運算之結果最初儲存於感測放大
器206之初級鎖存器中可提供比先前方法(其中結果可最初駐存於一計算組件231之一次級鎖存器(例如累加器),且接著隨後被傳送至(例如)感測放大器206)改良之多功能性。
將一特定運算之結果最初儲存於感測放大器206中(例如,不必執行一額外操作來將結果自計算組件231(例如累加器)移動至感測放大器206)係有利的,此係因為(例如)可在不執行一預充電週期(例如,不對互補資料線205-1(D)及/或205-2(D_)執行一預充電週期)之情況下將結果寫入至一列(記憶體胞陣列之一列)或寫回至累加器中。
圖6A繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之一時序圖。圖6A繪示與對一第一運算元及一第二運算元初始化一「及」邏輯運算相關聯之一時序圖。在此實例中,將該第一運算元儲存於耦合至一第一存取線(例如列X)之一記憶體胞中且將該第二運算元儲存於耦合至一第二存取線(例如列Y)之一記憶體胞中。雖然實例涉及對儲存於對應於一特定行之記憶體胞中之資料執行一「及」運算,但實施例不受限於此。例如,可使整列之資料值與一不同列之資料值進行並行「及」運算。例如,若一陣列包括2,048個行,則可並行執行2,048個「及」運算。
圖6A繪示與操作感測電路(例如圖2A中之250)來執行「及」邏輯運算相關聯之若干控制信號。「EQ」對應於施加至感測放大器206之一平衡信號,「列X」對應於施加至存取線204-X之一啟動信號,「列
Y」對應於施加至存取線204-Y之一啟動信號,「Act」及「RnIF」對應於施加至感測放大器206之一各自主動正控制信號及主動負控制信號,「LOAD」對應於一負載控制信號(例如圖2A中所展示之LOAD/PASSD及LOAD/PASSDb),且「AND」對應於圖2A中所展示之AND控制信號。圖6A亦繪示波形圖,其展示列X資料值及列Y資料值之各種資料值組合之一「及」邏輯運算期間之對應於感測放大器206之數位線D及D_上及對應於計算組件231(例如Accum)之節點S1及S2上之信號(例如電壓信號)(例如,圖式對應於各自資料值組合00、10、01、11)。下文相對於與圖2A中所展示之電路之一「及」運算相關聯之偽碼而討論特定時序圖波形。
可將與將儲存於耦合至列204-X之一記憶體胞中之一第一資料值載入(例如,複製)至累加器中相關聯之偽碼之一實例概述如下:將列X複製至累加器中:撤銷EQ;打開列X;起動感測放大器(此後,列X資料駐存於感測放大器中);啟動LOAD(感測放大器資料(列X)被傳送至累加器之節點S1及S2且動態地駐存於節點S1及S2上);撤銷LOAD;關閉列X;預充電。
在上述偽碼中,「撤銷EQ」指示:在t1處停用對應於感測放大器206之一平衡信號(圖6A中所展示之EQ信號),如圖6A中所展示(例如,使得互補資料線(例如205-1(D)及205-2(D_))不再短接至VDD/2)。在停用平衡之後,啟用(例如,選擇、打開,諸如,藉由啟動一信號來選擇一特定列)一選定列(例如列X),如由偽碼中之「打開列X」所
指示且如圖6A之信號列X之t2處所展示。當施加至列X之電壓信號達到對應於選定記憶體胞之存取電晶體(例如202-2)之臨限電壓(Vt)時,存取電晶體接通且將資料線(例如205-2(D_))耦合至選定記憶體胞(例如,耦合至電容器203-2),其在資料線之間產生一差動電壓信號。
在啟用列X之後,上述偽碼中之「起動感測放大器」指示:感測放大器206經啟用以設定初級鎖存器,且隨後被停用。例如,如圖6A中之t3處所展示,ACT正控制信號(例如圖2B中所展示之265)升至高態且RnIF負控制信號(例如如圖2B中所展示之228)降為低態,其放大205-1(D)與D_205-2之間的差動信號以導致對應於一邏輯1之一電壓(例如VDD)或對應於一邏輯0之一電壓(例如GND)作用於資料線205-1(D)上(且對應於另一邏輯狀態之電壓作用於互補資料線205-2(D_)上)。將所感測之資料值儲存於感測放大器206之初級鎖存器中。主要能量消耗發生於將資料線(例如205-1(D)或205-2(D_))自平衡電壓VDD/2充電至導軌電壓VDD時。
圖6A中所繪示之四組可行感測放大器及累加器信號(例如列X資料值及列Y資料值之各組合之一組信號)展示資料線D及D_上之信號之行為。將列X資料值儲存於感測放大器之初級鎖存器中。應注意,圖2A展示:對應於列X之記憶體胞(其包含儲存元件203-2及存取電晶體202-2)耦合至互補資料線D_,同時對應於列Y之記憶體胞(其包含儲存元件203-1及存取電晶體202-1)耦合至資料線D。然而,如圖2A中可見,對應於一「0」資料值之儲存於包括存取電晶體202-2之記憶體胞(其對應於列X)中之電荷致使資料線D_(存取電晶體202-2耦合至其)上之電壓升至高態且對應於一「1」資料值之儲存於包括存取電晶體202-2之記憶體胞中之電荷致使資料線D_上之電壓降為低態,其與資料狀態與儲存於對應於列Y(其耦合至資料線D)之記憶體胞(其對應於存取電晶體202-1)中之電荷之間的對應性相反。當將資料值寫入至各
自記憶體胞時,適當地解釋在耦合至不同資料線之記憶體胞中儲存電荷的此等差異。
在起動感測放大器之後,上述偽碼中之「啟動LOAD」指示:LOAD控制信號升至高態(如圖6A中之t4處所展示)以致使負載/通路電晶體218-1及218-2導通。依此方式,啟動LOAD控制信號以啟用計算組件231之累加器中之次級鎖存器。將儲存於感測放大器206中之所感測資料值傳送(例如,複製)至次級鎖存器。如圖6A中所繪示之四組可行感測放大器及累加器信號之各者所展示,累加器之次級鎖存器之輸入處之行為指示:次級鎖存器載入有列X資料值。如圖6A中所展示,累加器之次級鎖存器可根據先前儲存於動態鎖存器中之資料值而翻轉(例如,參閱列X=「0」且列Y=「0」及列X=「1」且列Y=「0」時之累加器信號)或不翻轉(例如,參閱列X=「0」且列Y=「1」及列X=「1」且列Y=「1」時之累加器信號)。
在自儲存於感測放大器中(且呈現於圖2A中之資料線205-1(D)及205-2(D_)上)之資料值設定次級鎖存器之後,上述偽碼中之「撤銷LOAD」指示:LOAD控制信號變回為低態(如圖6A中之t5處所展示)以致使負載/通路電晶體218-1及218-2停止導通且藉此使動態鎖存器與互補資料線隔離。然而,資料值保持動態地儲存於累加器之次級鎖存器中。
在將資料值儲存於次級鎖存器上之後,停用(例如,不選、關閉,諸如,藉由撤銷一特定列之一選擇信號)選定列(例如列X),如由「關閉列X」所指示且如圖6A中之t6處所指示,其可藉由存取電晶體切斷以使選定記憶體胞與對應資料線解耦合而完成。一旦關閉選定列且使記憶體胞與資料線隔離,則可對資料線預充電,如由上述偽碼中之「預充電」所指示。可藉由一平衡操作而完成資料線之一預充電,如圖6A中藉由EQ信號在t7處升至高態所指示。如圖6A中之t7處所繪示
之四組可行感測放大器及累加器信號之各者所展示,平衡操作致使資料線D及D_上之電壓各恢復至VDD/2。平衡可發生於(例如)一記憶體胞感測操作或邏輯運算(如下文將描述)之前。
與對第一資料值(現儲存於圖2A中所展示之感測放大器206及計算組件231之次級鎖存器中)及第二資料值(儲存於耦合至列Y 204-Y之一記憶體胞202-1中)執行「及」或「或」運算相關聯之一隨後操作階段包含:執行取決於是否將執行一「及」運算或一「或」運算之特定步驟。下文概述與對駐存於累加器中之資料值(例如儲存於耦合至列X 204-X之記憶體胞202-2中之第一資料值)及第二資料值(例如儲存於耦合至列Y 204-Y之記憶體胞202-1中之資料值)進行「及」運算及「或」運算相關聯之偽碼之實例。與對資料值進行「及」運算相關聯之實例性偽碼可包含:撤銷EQ;打開列Y;起動感測放大器(此後,列Y資料駐存於感測放大器中);關閉列Y,在下一操作中,邏輯運算之結果將被放置於感測放大器上,其將覆寫啟用之任何列,即使當關閉列Y時,感測放大器仍含有列Y資料值;啟動「及」運算,此導致感測放大器被寫入函數(例如列X「及」列Y)之值,若累加器含有一「0」(即,節點S2上對應於一「0」之一電壓及節點S1上對應於一「1」之一電壓),則感測放大器資料被寫入一「0」,若累加器含有一「1」(即,節點S2上對應於一「1」之一電壓及節點S1上對應於一「0」之一電壓),則感測放大器資料保持不
變(列Y資料),此操作使累加器中之資料不變;撤銷「及」運算;預充電。
在上述偽碼中,「撤銷EQ」指示:停用對應於感測放大器206之一平衡信號(例如,使得互補資料線205-1(D)及205-2(D_)不再短接至VDD/2),如圖6A中之t8處所繪示。在停用平衡後,啟用一選定列(例如列Y),如由上述偽碼中之「打開列Y」所指示且如圖6A中之t9處所展示。當施加至列Y之電壓信號達到對應於選定記憶體胞之存取電晶體(例如202-1)之臨限電壓(Vt)時,存取電晶體接通且將資料線(例如D_205-1)耦合至選定記憶體胞(例如,耦合至電容器203-1),其在資料線之間產生一差動電壓信號。
在啟用列Y之後,上述偽碼中之「起動感測放大器」指示:感測放大器206經啟用以放大205-1(D)與205-2(D_)之間的差動信號以導致對應於一邏輯1之一電壓(例如VDD)或對應於一邏輯0之一電壓(例如GND)作用於資料線205-1(D)上(且對應於另一邏輯狀態之電壓作用於互補資料線205-2(D_)上)。如圖6A中之t10處所展示,ACT正控制信號(例如圖2B中所展示之265)升至高態且RnIF負控制信號(例如圖2B中所展示之228)降為低態以起動感測放大器。將來自記憶體胞202-1之所感測資料值儲存於感測放大器206之初級鎖存器中,如先前所描述。次級鎖存器仍對應於來自記憶體胞202-2之資料值,此係因為動態鎖存器未被改變。
在將自耦合至列Y之記憶體胞202-1感測之第二資料值儲存於感測放大器206之初級鎖存器中之後,上述偽碼中之「關閉列Y」指示:若不期望將「及」邏輯運算之結果儲存回對應於列Y之記憶體胞中,則可停用選定列(例如列Y)。然而,圖6A展示:列Y經保持啟用
使得邏輯運算之結果可儲存回對應於列Y之記憶體胞中。可藉由存取電晶體切斷以使選定記憶體胞202-1與資料線205-1(D)解耦合而完成使對應於列Y之記憶體胞隔離。在選定列Y經組態(例如,以隔離記憶體胞或不隔離記憶體胞)之後,上述偽碼中之「啟動「及」運算」指示:AND控制信號升至高態(如圖6A中之t11處所展示)以致使下拉電晶體207-1導通。依此方式,啟動AND控制信號致使函數(例如列X「及」列Y)之值寫入至感測放大器。
在第一資料值(例如列X)儲存於累加器231之動態鎖存器中且第二資料值(例如列Y)儲存於感測放大器206中之後,若計算組件231之動態鎖存器含有一「0」(即,節點S2上對應於一「0」之一電壓及節點S1上對應於一「1」之一電壓),則感測放大器資料被寫入一「0」(不管先前儲存於感測放大器中之資料值如何),此係因為節點S1上對應於一「1」之電壓致使電晶體209-1導通,藉此透過電晶體209-1、下拉電晶體207-1及資料線205-1(D)而將感測放大器206耦合至接地。當一「及」運算之任何資料值係「0」時,結果係一「0」。此處,當第二資料值(在動態鎖存器中)係一「0」時,不管第一資料值之狀態如何,「及」運算之結果係一「0」,因此,感測電路之組態致使「0」結果被寫入且最初儲存於感測放大器206中。此操作使累加器中之資料值保持不變(例如,來自列X)。
若累加器之次級鎖存器含有一「1」(例如,來自列X),則「及」運算之結果取決於儲存於感測放大器206中之資料值(例如,來自列Y)。若儲存於感測放大器206中之資料值(例如,來自列Y)亦為一「1」,則「及」運算之結果應為一「1」,但若儲存於感測放大器206中之資料值(例如,來自列Y)亦為一「0」,則「及」運算之結果應為一「0」。感測電路250經組態使得若累加器之動態鎖存器含有一「1」(即,節點S2上對應於一「1」之一電壓及節點S1上對應於一「0」之
一電壓),則電晶體209-1不導通,感測放大器不耦合至接地(如上文所描述),且先前儲存於感測放大器206中之資料值保持不變(例如列Y資料值,因此,若列Y資料值係一「1」,則「及」運算結果係一「1」,且若列Y資料值係一「0」,則「及」運算結果係一「0」)。此操作使累加器中之資料值保持不變(例如,來自列X)。
在將「及」運算之結果最初儲存於感測放大器206中之後,上述偽碼中之「撤銷「及」運算」指示:AND控制信號降為低態(如圖6A中之t12處所展示)以致使下拉電晶體207-1停止導通以使感測放大器206(及資料線205-1(D))與接地隔離。若先前未撤銷「及」運算,則可關閉列Y(如圖6A中之t13處所展示)且可停用感測放大器(如在圖6A中之t14處藉由ACT正控制信號降為低態且RnIF負控制信號升至高態所展示)。在使資料線隔離之後,上述偽碼中之「預充電」可藉由一平衡操作而致使資料線之一預充電,如先前所描述(例如,開始於圖6A中所展示之t14處)。
替代地,圖6A展示針對一「及」邏輯運算(其涉及運算元之可行組合(例如列X/列Y資料值00、10、01及11)之各者)之耦合至感測放大器(例如圖2A中所展示之206)之資料線(例如圖2A中所展示之205-1(D)及205-2(D_))上之電壓信號之行為及計算組件(例如圖2A中所展示之231)之次級鎖存器之節點S1及S1上之電壓信號之行為。
雖然圖6A中所繪示之時序圖及上文所描述之偽碼指示在開始將第二運算元(例如列Y資料值)載入至感測放大器中之後初始化「及」邏輯運算,但可藉由在開始將第二運算元(例如列Y資料值)載入至感測放大器中之前初始化「及」邏輯運算而成功地操作圖2A中所展示之電路。
圖6B繪示根據本發明之若干實施例之與使用感測電路來執行若干邏輯運算相關聯之一時序圖。圖6B繪示與在開始將第二運算元(例
如列Y資料值)載入至感測放大器中之後初始化一「或」邏輯運算相關聯之一時序圖。圖6B繪示用於第一運算元資料值及第二運算元資料值之各種組合的感測放大器信號及累加器信號。下文相對於與圖2A中所展示之電路之一「及」邏輯運算相關聯之偽碼而討論特定時序圖信號。
一隨後操作階段可交替地與對第一資料值(現儲存於感測放大器206及計算組件231之次級鎖存器中)及第二資料值(儲存於耦合至列Y204-Y之一記憶體胞202-1中)執行「或」運算相關聯。未相對於圖6B而重複先前相對於圖6A中所展示之時間t1至t7所描述之將列X資料載入至感測放大器及累加器中之操作。與對資料值進行「或」運算相關聯之實例性偽碼可包含:撤銷EQ;打開列Y;起動感測放大器(此後,列Y資料駐存於感測放大器中);關閉列Y,當關閉列Y時,感測放大器仍含有列Y資料值;啟動「或」運算,此導致感測放大器被寫入至函數(例如列X「或」列Y)之值,其可如下所述般覆寫來自先前儲存於感測放大器中之列Y之資料值:若累加器含有一「0」(即,節點S2上對應於一「0」之一電壓及節點S1上對應於一「1」之一電壓),則感測放大器資料保持不變(列Y資料),若累加器含有一「1」(即,節點S2上對應於一「1」之一電壓及節點S1上對應於一「0」之一電壓),則感測放大器資料被寫入一「1」,
此操作使累加器中之資料保持不變;撤銷「或」運算;預充電。
上述偽碼中所展示之「撤銷EQ」(圖6B中之t8處所展示)、「打開列Y」(圖6B中之t9處所展示)、「起動感測放大器」(圖6B中之t10處所展示)及「關閉列Y」(圖6B中之t13處所展示,且其可發生於初始化特定邏輯函數控制信號之前)指示相同於先前相對於「及」運算偽碼所描述之功能性的功能性。一旦適當地組態選定列Y之組態(例如,若邏輯運算結果將儲存於對應於列Y之記憶體胞中,則啟用選定列Y,或若邏輯運算結果將不儲存於對應於列Y之記憶體胞中,則關閉選定列Y以隔離記憶體胞),則上述偽碼中之「啟動「或」運算」指示:OR控制信號升至高態,如圖6B中之t11處所展示,其致使下拉電晶體207-2導通。依此方式,啟動OR控制信號致使函數(例如列X「或」列Y)之值寫入至感測放大器。
在第一資料值(例如列X)儲存於計算組件231之次級鎖存器中且第二資料值(例如列Y)儲存於感測放大器206中之後,若累加器之動態鎖存器含有一「0」(即,節點S2上對應於一「0」之一電壓及節點S1上對應於一「1」之一電壓),則「或」運算之結果取決於儲存於感測放大器206中之資料值(例如,來自列Y)。若儲存於感測放大器206中之資料值(例如,來自列Y)係一「1」,則「或」運算之結果應為一「1」,但若儲存於感測放大器206中之資料值(例如,來自列Y)亦為一「0」,則「或」運算之結果應為一「0」。感測電路250經組態使得若累加器之動態鎖存器含有一「0」(即,節點S2上對應於一「0」之電壓),則電晶體209-2切斷且不導通(且下拉電晶體207-1亦切斷,此係因為未確證AND控制信號),因此感測放大器206不耦合至接地(任一側),且先前儲存於感測放大器206中之資料值保持不變(例如列Y資料
值,使得若列Y資料值係一「1」,則「或」運算結果係一「1」,且若列Y資料值係一「0」,則「或」運算結果係一「0」)。
若累加器之動態鎖存器含有一「1」(即,節點S2上對應於一「1」之一電壓及節點S1上對應於一「0」之一電壓),則電晶體209-2導通(下拉電晶體207-2亦導通,此係因為已確證OR控制信號),且耦合至資料線205-2(D_)之感測放大器206之輸入耦合至接地,此係因為節點S2上對應於一「1」之電壓致使電晶體209-2與下拉電晶體207-2(其因為已確證OR控制信號而亦導通)一起導通。依此方式,不管先前儲存於感測放大器中之資料值如何,當累加器之次級鎖存器含有一「1」時,將一「1」最初儲存於感測放大器206中作為「或」運算之一結果。此操作使累加器中之資料保持不變。替代地,圖6B展示針對一「或」邏輯運算(其涉及運算元之可行組合(例如列X/列Y資料值00、10、01及11)之各者)之耦合至感測放大器(例如圖2A中所展示之206)之資料線(例如圖2A中所展示之205-1(D)及205-2(D_))上之電壓信號之行為及計算組件231之次級鎖存器之節點S1及S2上之電壓信號之行為。
在將「或」運算之結果最初儲存於感測放大器206中之後,上述偽碼中之「撤銷「或」運算」指示:OR控制信號降為低態(如圖6B中之t12處所展示)以致使下拉電晶體207-2停止導通以使感測放大器206(及資料線D_205-2)與接地隔離。若先前未撤銷「或」運算,則可關閉列Y(如圖6B中之t13處所展示)且可停用感測放大器(如圖6B中之t14處藉由ACT正控制信號降為低態且RnIF負控制信號升至高態所展示)。在隔離資料線之後,上述偽碼中之「預充電」可藉由一平衡操作而致使資料線之一預充電,如先前所描述且如圖6B中之t14處所展示。
圖2A中所繪示之感測電路250可提供如下額外邏輯運算靈活性。
藉由在上文所描述之「及」運算及「或」運算中用AND控制信號之操作替代ANDinv控制信號之操作及/或用OR控制信號之操作替代ORinv控制信號之操作,邏輯運算可自{列X「及」列Y}改變至{~列X「及」列Y}(其中「~列X」指示列X資料值之一相反者,例如「非」列X)且可自{列X「或」列Y}改變至{~列X「或」列Y}。例如,在涉及反相資料值之一「及」運算期間,可確證ANDinv控制信號而非AND控制信號,且在涉及反相資料值之一「或」運算期間,可確證ORinv控制信號而非OR控制信號。啟動ANDinv控制信號致使電晶體214-1導通且啟動ORinv控制信號致使電晶體214-2導通。在各情況中,確證適當反相控制信號可翻轉感測放大器且致使最初儲存於感測放大器206中之結果成為使用反相列X資料值及真列Y資料值之「及」運算之結果或使用反相列X資料值及真列Y資料值之「或」運算之結果。一資料值之一真或互補版本可用於累加器中以(例如)藉由首先載入待反相之一資料值且接著載入不被反相之一資料值而執行邏輯運算(例如「及」、「或」)。
在類似於上文相對於使上文所描述之「及」運算及「或」運算之資料值反相所描述之方法的一方法中,圖2A中所展示之感測電路可藉由將未反相資料值放置至累加器之動態鎖存器中且使用該資料來使感測放大器206中之資料值反相而執行一「非」(例如反相)運算。如先前所提及,啟動ANDinv控制信號致使電晶體214-1導通且啟動ORinv控制信號致使電晶體214-2導通。ORinv及/或ANDinv控制信號用於實施「非」函數,如下文將進一步描述:將列X複製至累加器中;撤銷EQ;打開列X;起動感測放大器(此後,列X資料駐存於感測放大器中);
啟動LOAD(感測放大器資料(列X)被傳送至累加器之節點S1及S2且動態地駐存於節點S1及S2上);撤銷LOAD;啟動ANDinv及ORinv(其將互補資料值放置於資料線上),此導致感測放大器中之資料值反相(例如,感測放大器鎖存器翻轉),此操作使累加器中之資料保持不變;撤銷ANDinv及ORinv;關閉列X;預充電。
上述偽碼中所展示之「撤銷EQ」、「打開列X」、「起動感測放大器」、「啟動LOAD」及「撤銷LOAD」指示相同於「及」運算及「或」運算之偽碼之前之上文所描述之「將列X複製至累加器中」初始操作階段之偽碼中之相同操作的功能性。然而,並非在將列X資料載入至感測放大器206中且複製至動態鎖存器中之後關閉列X且預充電,而是累加器之動態鎖存器中之資料值之一互補版本可放置於資料線上且因此藉由啟用(例如,致使電晶體導通)及停用反相電晶體(例如ANDinv及ORinv)而傳送至感測放大器206。此導致感測放大器206自先前儲存於感測放大器中之真資料值翻轉至儲存於感測放大器中之一互補資料值(例如反相資料值)。即,可藉由啟動及撤銷ANDinv及ORinv而將累加器中之資料值之一真或互補版本傳送至感測放大器。此操作使累加器中之資料保持不變。
因為圖2A中所展示之感測電路250將「及」、「或」及「非」邏輯運算之結果最初儲存於感測放大器206中(例如,儲存於感測放大器節點上),所以可將此等邏輯運算結果容易且快速地傳達至任何啟用列,傳達至邏輯運算完成之後所啟動之任何列,及/或傳達至計算組
件231之次級鎖存器中。亦可藉由在感測放大器206起動之前適當起動AND、OR、ANDinv及/或ORinv控制信號(且操作使一閘極耦合至特定控制信號之對應電晶體)而使「及」、「或」及/或「非」邏輯運算之感測放大器206及定序互換。
當依此方式執行邏輯運算時,可使感測放大器206預接種有來自累加器之動態鎖存器之一資料值以減小所利用之總電流,此係因為:當將累加器函數複製至感測放大器206時,感測放大器206不具有全導軌電壓(例如供應電壓或接地/參考電壓)。使用一預接種感測放大器206之一操作序列迫使資料線之一者達到參考電壓(使互補資料線具有VDD/2)或使互補資料線保持不變。當感測放大器206起動時,感測放大器206將各自資料線拉至全導軌。使用此操作序列將覆寫一啟用列中之資料。
可藉由使用一傳統DRAM隔離(ISO)方案來多工化(「muxing」)兩個相鄰資料線互補對而完成一「移位」運算。根據本發明之實施例,移位電路223可用於使儲存於耦合至一對特定互補資料線之記憶體胞中之資料值移位至對應於一對不同互補資料線之感測電路250(例如感測放大器206)(例如(諸如)對應於一對左邊或右邊相鄰互補資料線之一感測放大器206)。如本文中所使用,一感測放大器206對應於當隔離電晶體221-1及221-2導通時該感測放大器耦合至其之互補資料線對。「移位」運算(右移或左移)不將列X資料值預複製至累加器中。可將使列X右移之操作概述如下:撤銷常態且啟動移位;撤銷EQ;打開列X;起動感測放大器(此後,經移位之列X資料駐存於感測放大器中);
啟動常態且撤銷移位;關閉列X;預充電。
在上述偽碼中,「撤銷常態且啟動移位」指示:一NORM控制信號降為低態以致使移位電路223之隔離電晶體221-1及221-2不導通(例如,使感測放大器與對應互補資料線對隔離)。SHIFT控制信號升至高態以致使隔離電晶體221-3及221-4導通,藉此將感測放大器206耦合至左邊相鄰互補資料線對(例如,在用於左邊相鄰互補資料線對之非導通隔離電晶體221-1及221-2之記憶體陣列側上)。
在組態移位電路223之後,上述偽碼中所展示之「撤銷EQ」、「打開列X」及「起動感測放大器」指示相同於「及」運算及「或」運算之偽碼之前之上文所描述之「將列X複製至累加器中」初始操作階段之偽碼中之相同操作的功能性。在此等操作之後,耦合至左邊相鄰互補資料線對之記憶體胞之列X資料值右移且儲存於感測放大器206中。
在上述偽碼中,「啟動常態且撤銷移位」指示:一NORM控制信號升至高態以致使移位電路223之隔離電晶體221-1及221-2導通(例如,將感測放大器耦合至對應互補資料線對),且SHIFT控制信號降為低態以致使隔離電晶體221-3及221-4不導通且使感測放大器206與左邊相鄰互補資料線對隔離(例如,在用於左邊相鄰互補資料線對之非導通隔離電晶體221-1及221-2之記憶體陣列側上)。因為仍啟用列X,所以透過隔離電晶體221-1及221-2而將已右移之列X資料值傳送至對應互補資料線對之列X。
在使列X資料值右移至對應互補資料線對之後,停用選定列(例如列X),如由上述偽碼中之「關閉列X」所指示,其可藉由存取電晶體切斷以使選定記憶體胞與對應資料線解耦合而完成。一旦關閉選定
列且使記憶體胞與資料線隔離,則可對資料線預充電,如由上述偽碼中之「預充電」所指示。可藉由一平衡操作而完成資料線之一預充電,如上文所描述。可將使列X左移之操作概述如下:啟動常態且撤銷移位;撤銷EQ;打開列X;起動感測放大器(此後,列X資料駐存於感測放大器中);撤銷常態且啟動移位,將感測放大器資料(經左移之列X)傳送至列X;關閉列X;預充電。
在上述偽碼中,「啟動常態且撤銷移位」指示:一NORM控制信號升至高態以致使移位電路223之隔離電晶體221-1及221-2導通,且SHIFT控制信號降為低態以致使隔離電晶體221-3及221-4不導通。此組態將感測放大器206耦合至一對對應互補資料線且使感測放大器與右邊相鄰互補資料線對隔離。
在組態移位電路之後,上述偽碼中所展示之「撤銷EQ」、「打開列X」及「起動感測放大器」指示相同於「及」運算及「或」運算之偽碼之前之上文所描述之「將列X複製至累加器中」初始操作階段之偽碼中之相同操作的功能性。在此等操作之後,將耦合至對應於感測電路250之互補資料線對的記憶體胞之列X資料值儲存於感測放大器206中。
在上述偽碼中,「撤銷常態且啟動移位」指示:一NORM控制信號降為低態以致使移位電路223之隔離電晶體221-1及221-2不導通(例如,使感測放大器與對應互補資料線對隔離),且SHIFT控制信號升至高態以致使隔離電晶體221-3及221-4導通以將感測放大器耦合至左邊
相鄰互補資料線對(例如,在用於左邊相鄰互補資料線對之非導通隔離電晶體221-1及221-2之記憶體陣列側上)。因為仍啟用列X,所以將已左移之列X資料值傳送至左邊相鄰互補資料線對之列X。
在使列X資料值左移至左邊相鄰互補資料線對之後,停用選定列(例如列X),如由「關閉列X」所指示,其可藉由存取電晶體切斷以使選定記憶體胞與對應資料線解耦合而完成。一旦關閉選定列且使記憶體胞與資料線隔離,則可對資料線預充電,如由上述偽碼中之「預充電」所指示。可藉由一平衡操作而完成資料線之一預充電,如上文所描述。
圖7係繪示根據本發明之若干實施例之具有可選邏輯運算選擇邏輯之感測電路的一示意圖。圖7展示耦合至一對互補感測線705-1及705-2之一感測放大器706、及經由通閘793-1及793-2而耦合至感測放大器706之一計算組件731。通閘793-1及793-2之閘極可由可自邏輯運算選擇邏輯713-5輸出之一邏輯運算選擇邏輯信號PASS控制。圖7展示標記為「A」之計算組件731及標記為「B」之感測放大器706以指示:儲存於計算組件731中之資料值係「A」資料值且儲存於感測放大器706中之資料值係「B」資料值,如相對於圖8所繪示之邏輯表中所展示。
圖7中所繪示之感測電路750包含邏輯運算選擇邏輯713-5。在此實例中,邏輯713-5包括由一邏輯運算選擇邏輯信號PASS*控制之交換閘742。邏輯運算選擇邏輯713-5亦包括四個邏輯選擇電晶體:邏輯選擇電晶體762,其耦合於交換電晶體742之閘極與一TF信號控制線之間;邏輯選擇電晶體752,其耦合於通閘793-1及793-2之閘極與一TT信號控制線之間;邏輯選擇電晶體754,其耦合於通閘793-1及793-2之閘極與一FT信號控制線之間;及邏輯選擇電晶體764,其耦合於交換電晶體742之閘極與一FF信號控制線之間。邏輯選擇電晶體762及
752之閘極透過隔離電晶體750-1(其具有耦合至一ISO信號控制線之一閘極)而耦合至真感測線(例如705-1),且邏輯選擇電晶體764及754之閘極透過隔離電晶體750-2(其亦具有耦合至一ISO信號控制線之一閘極)而耦合至互補感測線(例如705-2)。
邏輯選擇電晶體752及754之操作係類似地基於TT及FT選擇信號之狀態及確證ISO信號時各自互補感測線上之資料值。邏輯選擇電晶體762及764亦依類似於控制交換電晶體742之一方式操作。即,為打開(例如,接通)交換電晶體742,啟動TF控制信號(例如,呈高態)(其中真感測線上之資料值係「1」),或啟動FF控制信號(例如,呈高態)(其中互補感測線上之資料值係「1」)。若各自控制信號或對應感測線(例如特定邏輯選擇電晶體之閘極耦合至其之感測線)上之資料值不呈高態,則不會由一特定邏輯選擇電晶體打開交換電晶體742。
PASS*控制信號未必與PASS控制信號互補。例如,可同時啟動PASS控制信號及PASS*控制信號兩者或可同時撤銷PASS控制信號及PASS*控制信號兩者。然而,同時啟動PASS控制信號及PASS*控制信號兩者使互補感測線對短接在一起,其可為待避免之一破壞性組態。圖8中所繪示之邏輯表中匯總圖7中所繪示之感測電路之邏輯運算結果。
圖8係繪示根據本發明之若干實施例之可由圖7中所展示之感測電路實施之可選邏輯運算結果的一邏輯表。四個邏輯選擇控制信號(例如TF、TT、FT及FF)可與呈現於互補感測線上之一特定資料值一起用於選擇實施涉及儲存於感測放大器706及計算組件731中之起始資料值的複數邏輯運算之一者。四個控制信號與呈現於互補感測線上之一特定資料值一起控制通閘793-1及793-2及交換電晶體742,其繼而影響起動之前/起動之後之計算組件731及/或感測放大器706中之資料值。可選地控制交換電晶體742之能力尤其促進實施涉及反相資料值
(例如反相運算元及/或反相結果)之邏輯運算。
圖8中所繪示之邏輯表展示844處之行A中所展示之儲存於計算組件731中之起始資料值及845處之行B中所展示之儲存於感測放大器706中之起始資料值。圖8之邏輯表中之其他3個頂部行標頭(「不打開」、「打開真」及「打開反相」)係指通閘793-1及793-2及交換電晶體742之狀態,通閘793-1及793-2及交換電晶體742可根據四個邏輯選擇控制信號(例如TF、TT、FT及FF)之狀態以及確證ISO控制信號時呈現於互補感測線對705-1及705-2上之一特定資料值而分別被控制為「打開」或「關閉」。「不打開」行856對應於通閘793-1及793-2及交換電晶體742兩者處於一非導通(例如,切斷)條件中,「打開真」870對應於通閘793-1及793-2處於一導通條件中,且「打開反相」871對應於交換電晶體742處於一導通條件中。圖8之邏輯表中未反映對應於通閘793-1及793-2及交換電晶體742兩者處於一導通條件中之組態,此係因為此導致感測線短接在一起。
經由通閘793-1及793-2及交換電晶體742之選擇性控制,圖8之邏輯表之上部分之第一組之兩列之三行之各者可與第一組下方之第二組之兩列之三行之各者結合以提供3×3=9個不同結果組合以對應於9個不同邏輯運算,如由875處所展示之各種連接路徑所指示。圖8中所繪示之邏輯表中匯總可由感測電路750實施之9個不同可選邏輯運算。
圖8中所繪示之邏輯表之下部分之行展示包含邏輯選擇控制信號之狀態的一標頭880。例如,將一第一邏輯選擇控制信號之狀態提供於列876中,將一第二邏輯選擇控制信號之狀態提供於列877中,將一第三邏輯選擇控制信號之狀態提供於列878中,且將一第四邏輯選擇控制信號之狀態提供於列879中。列847中匯總對應於結果之特定邏輯運算。
因而,圖7中所展示之感測電路可用於執行如圖8中所展示之各
種邏輯運算。例如,感測電路750可經操作以執行與根據本發明之若干實施例執行記憶體中之一乘法運算相關聯之各種邏輯運算(例如「及」邏輯運算及「或」邏輯運算)。
根據各種實施例,可在一記憶體中處理器(PIM)器件之一記憶體陣列核心中實現一般計算,諸如(例如)6F2或4F2記憶體胞大小之一DRAM每記憶體胞一個晶體(例如1T1C)組態。本文中所描述之某些實例性裝置及方法之一潛在優點可為累加速率,其可藉由在無需自記憶體陣列(例如DRAM)傳送出資料或無需起動一行解碼之情況下並行計算整個資料庫而達成。例如,可減少及/或消除資料傳送時間。另外,本發明之裝置可使用耦合至一資料線之記憶體胞(例如一行之16K個記憶體胞)中之資料值來同時執行「及」或「或」運算。
在先前方法之感測電路(其中移出用於邏輯運算處理之資料(例如,使用32或64位元暫存器))中,可並行執行比本發明之裝置少之操作。依此方式,有效地提供比涉及一中央處理單元(CPU)(其與記憶體分立,使得資料必須傳送於CPU與記憶體之間)之習知組態顯著更高之產量。根據本發明之一裝置及/或方法亦可使用比其中CPU與記憶體分立之組態少之能量/面積。此外,本發明之一裝置及/或方法可基於較少能量/面積優點而改良,此係因為記憶體陣列中邏輯運算藉由消除某些資料值傳送而節約能量。
303-0至303-J‧‧‧記憶體胞
304-0至304-R‧‧‧存取線
305-0至305-S‧‧‧感測線
306-0至306-U‧‧‧感測放大器(SA)
308-0至308-V‧‧‧存取器件/電晶體
310-0至310-W‧‧‧行解碼線
312‧‧‧次級感測放大器(SSA)
331-0至331-X‧‧‧計算組件(CC)
334‧‧‧輸入/輸出(I/O)線
Claims (23)
- 一種用於執行乘法運算之方法,其包括:對下列各者執行一乘法運算:一第一向量,其包括儲存於耦合至一記憶體陣列之一第一存取線及若干感測線的一群組之記憶體胞中之若干第一元素,其中該第一向量之一第一元素及一第二元素被儲存於耦合至該第一存取線之該群組之記憶體胞中;及一第二向量,其包括儲存於耦合至該記憶體陣列之一第二存取線及該若干感測線的一群組之記憶體胞中之若干第二元素,其中該第二向量之一第三元素及一第四元素被儲存於耦合至該第二存取線之該群組之記憶體胞中。
- 如請求項1之方法,其中在無需經由一I/O線而傳送資料之情況下執行該若干「及」運算、「或」運算及「移位」運算包括:在無需一感測線位址存取之情況下執行該若干「及」運算、「或」運算及「移位」運算。
- 如請求項1之方法,其進一步包括:將該乘法運算之一結果儲存於耦合至一第三存取線之一群組之記憶體胞中。
- 如請求項1之方法,其進一步包括:將該乘法運算之一結果儲存於耦合至該第一存取線之該群組之記憶體胞及耦合至該第二存取線之該群組之記憶體胞之至少一者中。
- 如請求項1至4中任一項之方法,其中執行該若干「及」運算、「或」運算及「移位」運算包括:使用耦合至該等記憶體胞之感測電路來執行該若干「及」運算、「或」運算及「移位」運算。
- 如請求項5之方法,其中使用感測電路來執行該若干「及」運 算、「或」運算及「移位」運算包括:使用感測放大器及計算組件來執行該若干「及」運算、「或」運算及「移位」運算,其中該等感測放大器及該等計算組件各包括與該等記憶體胞依照節距形成之各自若干電晶體。
- 如請求項1至4中任一項之方法,其中執行該等乘法運算包括執行若干運算迭代,其中該若干運算之各迭代包括判定對應於該若干第一元素之各者及該若干第二元素之各者之一各自位元位置的一資料值比重。
- 如請求項1之方法,其中該第一元素及該第三元素具有一第一位元長度且該第二元素及該第四元素具有一第二位元長度。
- 一種用於執行乘法運算之裝置,其包括:一第一群組之記憶體胞,其耦合至一第一存取線且經組態以儲存一第一元素;一第二群組之記憶體胞,其耦合至該第一存取線且經組態以儲存一第二元素;一第三群組之記憶體胞,其耦合至一第二存取線且經組態以儲存一第三元素;及一第四群組之記憶體胞,其耦合至該第二存取線且經組態以儲存一第四元素;及一控制器,其經組態以控制感測電路在無需經由一輸入/輸出(I/O)線而傳送資料之情況下藉由執行若干運算而使該第一元素與該第三元素相乘且使該第二元素與該第四元素相乘,其中該第一元素及該第三元素係一第一位元長度且該第二元素及該第四元素係一第二位元長度。
- 如請求項9之裝置,其中該控制器進一步經組態以控制該感測電路判定該第一元素、該第二元素、該第三元素及該第四元素之 一最低有效位元。
- 如請求項9之裝置,其中該控制器進一步經組態以控制該感測電路判定該第一元素、該第二元素、該第三元素及該第四元素之一最高有效位元。
- 如請求項9之裝置,其包括耦合至一第三存取線之一第五群組之記憶體胞,其中該控制器經組態以致使該第一元素與該第三元素相乘之一結果及該第二元素與該第四元素相乘之一結果儲存於該第五群組之記憶體胞中。
- 如請求項9之裝置,其中該第一群組之記憶體胞及該第三群組之記憶體胞耦合至第一若干感測線且該第二群組之記憶體胞及該第四群組之記憶體胞耦合至第二若干感測線。
- 如請求項9至13中任一項之裝置,其中該感測電路包括與該等記憶體胞依照節距形成之若干電晶體。
- 如請求項9至13中任一項之裝置,其中該第一位元長度及該第二位元長度係不同位元長度。
- 一種用於執行乘法運算之方法,其包括:對下列各者執行一乘法運算:一第一元素,其具有一第一位元長度,該第一元素儲存於耦合至一記憶體陣列之一第一存取線及第一若干感測線的一第一群組之記憶體胞中;一第二元素,其具有一第二位元長度,該第二元素儲存於耦合至該記憶體陣列之該第一存取線及第二若干感測線的一第二群組之記憶體胞中;一第三元素,其具有該第一位元長度,該第三元素儲存於耦合至該記憶體陣列之一第二存取線及該第一若干感測線的一第三群組之記憶體胞中;及 一第四元素,其具有該第二位元長度,該第四元素儲存於耦合至該記憶體陣列之該第二存取線及該第二若干感測線的一群組之記憶體胞中;其中執行該乘法運算包含:在無需經由一輸入/輸出(I/O)線而傳送資料之情況下執行若干「及」運算、「或」運算及「移位」運算;且將該乘法運算之一結果作為一第五元素及一第六元素儲存於耦合至一第三存取線之一群組之記憶體胞中。
- 如請求項16之方法,其中執行該乘法運算包括使用一動態掩碼元素及一靜態掩碼元素來執行若干運算迭代,其中該若干運算之各迭代包括判定對應於該第一元素、該第二元素、該第三元素及該第四元素之一各自位元位置的一資料值比重。
- 如請求項17之方法,其中該若干運算迭代之一第一迭代包括:判定對應於該第一元素、該第二元素、該第三元素及該第四元素之一第一位元位置的一資料值在一相乘結果中之比重。
- 如請求項18之方法,其中該若干運算迭代之一第二迭代包括:判定對應於該第一元素、該第二元素、該第三元素及該第四元素之一第二位元位置的一資料值比重。
- 如請求項18至19中任一項之方法,其中該動態掩碼指示該第一迭代期間之該第一元素、該第二元素、該第三元素及該第四元素之一最低有效位元(LSB)位置。
- 如請求項17至19中任一項之方法,其中執行該乘法運算包括:藉由下列操作而判定該靜態掩碼元素:將指示該第一元素、該第二元素、該第三元素及該第四元素之各者之一最高有效位元的一元素載入至該感測電路中;及使指示該最高有效位元之該元素反相。
- 一種用於執行乘法運算之裝置,其包括:第一若干記憶體胞,其耦合至若干感測線及一第一存取線,其中該第一若干記憶體胞經組態以儲存一第一元素及一第二元素;第二若干記憶體胞,其耦合至該若干感測線及一第二存取線,其中該第二若干記憶體胞儲存一第三元素及一第四元素;及一控制器,其經組態以控制感測電路:在無需執行一感測線位址存取之情況下藉由執行包括「及」運算、「或」運算及「移位」運算之若干運算而使該第一若干元素之各者與該第二若干元素之一對應元素相乘,包含使該第一元素與該第三元素相乘及使該第二元素與該第四元素相乘。
- 一種用於執行乘法運算之方法,其包括:對下列各者執行一記憶體陣列中之一乘法運算:複數個(M個)第一元素,其等儲存於耦合至一記憶體陣列之一第一存取線及若干感測線的一第一群組之記憶體胞中,其中複數個(M個)第一元素中之一第一元素及一第二元素具有不同位元長度;及複數個(M個)第二元素,其等儲存於耦合至該記憶體陣列之一第二存取線及該若干感測線的一第二群組之記憶體胞中,其中複數個(M個)第二元素中之一第三元素及一第四元素分別具有該等不同位元長度;及提供指示該複數M個第一元素之各元素與該複數M個第二元素之一對應元素之一乘積的一乘法運算結果,其中該乘法運算結 果包含使該第一元素與該第三元素相乘及使該第二元素與該第四元素相乘之一結果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462045119P | 2014-09-03 | 2014-09-03 | |
US14/834,065 US9904515B2 (en) | 2014-09-03 | 2015-08-24 | Multiplication operations in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201631574A TW201631574A (zh) | 2016-09-01 |
TWI601149B true TWI601149B (zh) | 2017-10-01 |
Family
ID=55402839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104129201A TWI601149B (zh) | 2014-09-03 | 2015-09-03 | 用於執行乘法運算之方法及裝置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US9904515B2 (zh) |
TW (1) | TWI601149B (zh) |
WO (1) | WO2016036602A1 (zh) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9904515B2 (en) * | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9898252B2 (en) * | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
WO2016144726A1 (en) | 2015-03-12 | 2016-09-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9959923B2 (en) | 2015-04-16 | 2018-05-01 | Micron Technology, Inc. | Apparatuses and methods to reverse data stored in memory |
US9704541B2 (en) | 2015-06-12 | 2017-07-11 | Micron Technology, Inc. | Simulating access lines |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
US10379772B2 (en) | 2016-03-16 | 2019-08-13 | Micron Technology, Inc. | Apparatuses and methods for operations using compressed and decompressed data |
US9910637B2 (en) | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10120740B2 (en) | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US10388393B2 (en) | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US10074416B2 (en) | 2016-03-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10607665B2 (en) | 2016-04-07 | 2020-03-31 | Micron Technology, Inc. | Span mask generation |
US9818459B2 (en) | 2016-04-19 | 2017-11-14 | Micron Technology, Inc. | Invert operations using sensing circuitry |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10042608B2 (en) | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
US9659610B1 (en) | 2016-05-18 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for shifting data |
US10049707B2 (en) | 2016-06-03 | 2018-08-14 | Micron Technology, Inc. | Shifting data |
US10387046B2 (en) | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US10037785B2 (en) | 2016-07-08 | 2018-07-31 | Micron Technology, Inc. | Scan chain operation in sensing circuitry |
US10388360B2 (en) | 2016-07-19 | 2019-08-20 | Micron Technology, Inc. | Utilization of data stored in an edge section of an array |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
US9972367B2 (en) | 2016-07-21 | 2018-05-15 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US9767864B1 (en) | 2016-07-21 | 2017-09-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in a sensing circuitry element |
US10303632B2 (en) | 2016-07-26 | 2019-05-28 | Micron Technology, Inc. | Accessing status information |
US10468087B2 (en) | 2016-07-28 | 2019-11-05 | Micron Technology, Inc. | Apparatuses and methods for operations in a self-refresh state |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US11029951B2 (en) | 2016-08-15 | 2021-06-08 | Micron Technology, Inc. | Smallest or largest value element determination |
US10606587B2 (en) | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
US10466928B2 (en) | 2016-09-15 | 2019-11-05 | Micron Technology, Inc. | Updating a register in memory |
US10387058B2 (en) | 2016-09-29 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods to change data category values |
US10014034B2 (en) | 2016-10-06 | 2018-07-03 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10529409B2 (en) | 2016-10-13 | 2020-01-07 | Micron Technology, Inc. | Apparatuses and methods to perform logical operations using sensing circuitry |
US9805772B1 (en) | 2016-10-20 | 2017-10-31 | Micron Technology, Inc. | Apparatuses and methods to selectively perform logical operations |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10423353B2 (en) | 2016-11-11 | 2019-09-24 | Micron Technology, Inc. | Apparatuses and methods for memory alignment |
US9761300B1 (en) | 2016-11-22 | 2017-09-12 | Micron Technology, Inc. | Data shift apparatuses and methods |
US10402340B2 (en) | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10268389B2 (en) * | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
US10838899B2 (en) | 2017-03-21 | 2020-11-17 | Micron Technology, Inc. | Apparatuses and methods for in-memory data switching networks |
US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
US11222260B2 (en) | 2017-03-22 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for operating neural networks |
US10049721B1 (en) | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10147467B2 (en) | 2017-04-17 | 2018-12-04 | Micron Technology, Inc. | Element value comparison in memory |
US10043570B1 (en) | 2017-04-17 | 2018-08-07 | Micron Technology, Inc. | Signed element compare in memory |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10942843B2 (en) | 2017-04-25 | 2021-03-09 | Micron Technology, Inc. | Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10013197B1 (en) | 2017-06-01 | 2018-07-03 | Micron Technology, Inc. | Shift skip |
US10262701B2 (en) | 2017-06-07 | 2019-04-16 | Micron Technology, Inc. | Data transfer between subarrays in memory |
US10152271B1 (en) | 2017-06-07 | 2018-12-11 | Micron Technology, Inc. | Data replication |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
US10162005B1 (en) | 2017-08-09 | 2018-12-25 | Micron Technology, Inc. | Scan chain operations |
US10534553B2 (en) | 2017-08-30 | 2020-01-14 | Micron Technology, Inc. | Memory array accessibility |
US10416927B2 (en) | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
US10346092B2 (en) | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
US10409739B2 (en) | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
US10522210B2 (en) | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US10614875B2 (en) | 2018-01-30 | 2020-04-07 | Micron Technology, Inc. | Logical operations using memory cells |
US11194477B2 (en) | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
US10437557B2 (en) | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US10725696B2 (en) | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
US10440341B1 (en) | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US10877752B2 (en) | 2018-09-28 | 2020-12-29 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
US11048434B2 (en) * | 2018-09-28 | 2021-06-29 | Intel Corporation | Compute in memory circuits with time-to-digital computation |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10769071B2 (en) | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US10483978B1 (en) | 2018-10-16 | 2019-11-19 | Micron Technology, Inc. | Memory device processing |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
KR20200082617A (ko) | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치 |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
US11360768B2 (en) | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
CN110633069B (zh) * | 2019-09-06 | 2022-09-16 | 安徽大学 | 一种基于静态随机存储器的乘法电路结构 |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
RU2717934C1 (ru) * | 2019-12-19 | 2020-03-27 | федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Устройство для детектирования границ диапазона единичных бит |
US11500613B2 (en) * | 2020-02-06 | 2022-11-15 | National Tsing Hua University | Memory unit with multiply-accumulate assist scheme for multi-bit convolutional neural network based computing-in-memory applications and computing method thereof |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
US11449269B2 (en) | 2020-07-22 | 2022-09-20 | Micron Technology, Inc. | Edge compute components under a memory array |
RU2763903C1 (ru) * | 2021-04-29 | 2022-01-11 | федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Устройство групповой структуры для детектирования границ диапазона единичных бит |
RU2763859C1 (ru) * | 2021-04-29 | 2022-01-11 | федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Устройство для детектирования единичных групп бит в бинарной последовательности |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638317A (en) * | 1990-08-22 | 1997-06-10 | Texas Instruments Incorporated | Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit |
US5986942A (en) * | 1998-01-20 | 1999-11-16 | Nec Corporation | Semiconductor memory device |
US20030222879A1 (en) * | 2002-04-09 | 2003-12-04 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
US6943579B1 (en) * | 2002-12-20 | 2005-09-13 | Altera Corporation | Variable fixed multipliers using memory blocks |
US20080215937A1 (en) * | 2004-01-29 | 2008-09-04 | International Business Machines Corporation | Remote bist for high speed test and redundancy calculation |
US8533245B1 (en) * | 2010-03-03 | 2013-09-10 | Altera Corporation | Multipliers with a reduced number of memory blocks |
Family Cites Families (274)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380046A (en) | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
JPS6032911B2 (ja) | 1979-07-26 | 1985-07-31 | 株式会社東芝 | 半導体記憶装置 |
US4435792A (en) | 1982-06-30 | 1984-03-06 | Sun Microsystems, Inc. | Raster memory manipulation apparatus |
US4727474A (en) | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
EP0214718A3 (en) | 1985-07-22 | 1990-04-04 | Alliant Computer Systems Corporation | Digital computer |
US5201039A (en) | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US4843264A (en) | 1987-11-25 | 1989-06-27 | Visic, Inc. | Dynamic sense amplifier for CMOS static RAM |
US5276643A (en) | 1988-08-11 | 1994-01-04 | Siemens Aktiengesellschaft | Integrated semiconductor circuit |
JPH0713858B2 (ja) | 1988-08-30 | 1995-02-15 | 三菱電機株式会社 | 半導体記憶装置 |
US5023838A (en) | 1988-12-02 | 1991-06-11 | Ncr Corporation | Random access memory device with integral logic capability |
US4958378A (en) | 1989-04-26 | 1990-09-18 | Sun Microsystems, Inc. | Method and apparatus for detecting changes in raster data |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
EP0446721B1 (en) | 1990-03-16 | 2000-12-20 | Texas Instruments Incorporated | Distributed processing memory |
US5034636A (en) | 1990-06-04 | 1991-07-23 | Motorola, Inc. | Sense amplifier with an integral logic function |
US5210850A (en) | 1990-06-15 | 1993-05-11 | Compaq Computer Corporation | Memory address space determination using programmable limit registers with single-ended comparators |
US5546343A (en) | 1990-10-18 | 1996-08-13 | Elliott; Duncan G. | Method and apparatus for a single instruction operating multiple processors on a memory chip |
JPH06103599B2 (ja) | 1990-11-16 | 1994-12-14 | 三菱電機株式会社 | 半導体集積回路装置 |
US5325519A (en) | 1991-10-18 | 1994-06-28 | Texas Microsystems, Inc. | Fault tolerant computer with archival rollback capabilities |
FR2685973B1 (fr) | 1992-01-03 | 1994-02-25 | France Telecom | Point memoire pour memoire associative. |
KR950005095Y1 (ko) | 1992-03-18 | 1995-06-22 | 문정환 | 양방향성 그로벌 비트 라인을 갖는 dram |
JPH06215160A (ja) | 1992-08-25 | 1994-08-05 | Texas Instr Inc <Ti> | データ処理方法および装置 |
KR950004854B1 (ko) | 1992-10-08 | 1995-05-15 | 삼성전자 주식회사 | 반도체 메모리 장치 |
US5440482A (en) | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
US5485373A (en) | 1993-03-25 | 1996-01-16 | Taligent, Inc. | Language-sensitive text searching system with modified Boyer-Moore process |
US5369622A (en) | 1993-04-20 | 1994-11-29 | Micron Semiconductor, Inc. | Memory with isolated digit lines |
US5754478A (en) | 1993-04-20 | 1998-05-19 | Micron Technology, Inc. | Fast, low power, write scheme for memory circuits using pulsed off isolation device |
JP2663838B2 (ja) | 1993-07-27 | 1997-10-15 | 日本電気株式会社 | 半導体集積回路装置 |
JP3252306B2 (ja) | 1993-08-10 | 2002-02-04 | 株式会社日立製作所 | 半導体不揮発性記憶装置 |
JP3904244B2 (ja) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
US5430687A (en) | 1994-04-01 | 1995-07-04 | Xilinx, Inc. | Programmable logic device including a parallel input device for loading memory cells |
JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
US5655113A (en) | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
JPH0831168A (ja) | 1994-07-13 | 1996-02-02 | Hitachi Ltd | 半導体記憶装置 |
US5481500A (en) | 1994-07-22 | 1996-01-02 | International Business Machines Corporation | Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories |
US5615404A (en) | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
US5638128A (en) | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
US5724366A (en) | 1995-05-16 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
KR0146530B1 (ko) | 1995-05-25 | 1998-09-15 | 김광호 | 단속제어회로를 구비한 반도체 메모리 장치와 제어방법 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
JP2812262B2 (ja) | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
JP2817836B2 (ja) | 1995-11-30 | 1998-10-30 | 日本電気株式会社 | 半導体メモリ装置 |
JP3356612B2 (ja) | 1996-02-29 | 2002-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 高速な輪郭スムージング方法及び装置 |
US6092186A (en) | 1996-05-07 | 2000-07-18 | Lucent Technologies Inc. | Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device |
US5915084A (en) | 1996-09-30 | 1999-06-22 | Advanced Micro Devices, Inc. | Scannable sense amplifier circuit |
US5991209A (en) | 1997-04-11 | 1999-11-23 | Raytheon Company | Split sense amplifier and staging buffer for wide memory architecture |
JP3592887B2 (ja) | 1997-04-30 | 2004-11-24 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6510098B1 (en) | 1997-05-28 | 2003-01-21 | Cirrus Logic, Inc. | Method and apparatus for transferring data in a dual port memory |
JPH1115773A (ja) | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
US5935263A (en) | 1997-07-01 | 1999-08-10 | Micron Technology, Inc. | Method and apparatus for memory array compressed data testing |
US5953738A (en) | 1997-07-02 | 1999-09-14 | Silicon Aquarius, Inc | DRAM with integral SRAM and arithmetic-logic units |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
US6181698B1 (en) | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6025221A (en) | 1997-08-22 | 2000-02-15 | Micron Technology, Inc. | Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks |
US5991785A (en) | 1997-11-13 | 1999-11-23 | Lucent Technologies Inc. | Determining an extremum value and its index in an array using a dual-accumulation processor |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6163862A (en) | 1997-12-01 | 2000-12-19 | International Business Machines Corporation | On-chip test circuit for evaluating an on-chip signal using an external test signal |
JP3488612B2 (ja) | 1997-12-11 | 2004-01-19 | 株式会社東芝 | センス増幅回路 |
JPH11260057A (ja) | 1998-03-13 | 1999-09-24 | Nec Corp | 半導体記憶装置 |
JPH11265995A (ja) | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH11306751A (ja) | 1998-04-22 | 1999-11-05 | Toshiba Corp | 半導体記憶装置 |
US6005799A (en) | 1998-08-06 | 1999-12-21 | Silicon Aquarius | Methods and circuits for single-memory dynamic cell multivalue data storage |
US6141286A (en) | 1998-08-21 | 2000-10-31 | Micron Technology, Inc. | Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines |
US7409694B2 (en) | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
JP2000173269A (ja) | 1998-12-08 | 2000-06-23 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR100381968B1 (ko) | 1998-12-30 | 2004-03-24 | 주식회사 하이닉스반도체 | 고속동작용디램 |
US5999435A (en) | 1999-01-15 | 1999-12-07 | Fast-Chip, Inc. | Content addressable memory device |
US6389507B1 (en) | 1999-01-15 | 2002-05-14 | Gigabus, Inc. | Memory device search system and method |
US6134164A (en) | 1999-04-22 | 2000-10-17 | International Business Machines Corp. | Sensing circuit for a memory cell array |
US6741104B2 (en) | 1999-05-26 | 2004-05-25 | Micron Technology, Inc. | DRAM sense amplifier for low voltages |
US6157578A (en) | 1999-07-15 | 2000-12-05 | Stmicroelectronics, Inc. | Method and apparatus for accessing a memory device |
US6208544B1 (en) | 1999-09-09 | 2001-03-27 | Harris Corporation | Content addressable memory cell providing simultaneous read and compare capability |
US6578058B1 (en) | 1999-10-06 | 2003-06-10 | Agilent Technologies, Inc. | System and method for comparing values from target systems |
US7124221B1 (en) | 1999-10-19 | 2006-10-17 | Rambus Inc. | Low latency multi-level communication interface |
US6418498B1 (en) | 1999-12-30 | 2002-07-09 | Intel Corporation | Integrated system management memory for system management interrupt handler independent of BIOS and operating system |
JP4627103B2 (ja) | 2000-01-18 | 2011-02-09 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
US6687175B1 (en) | 2000-02-04 | 2004-02-03 | Renesas Technology Corporation | Semiconductor device |
WO2001065359A2 (en) | 2000-02-29 | 2001-09-07 | Peter Petrov | Method and apparatus for building a memory image |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
JP3983969B2 (ja) | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6678678B2 (en) | 2000-03-09 | 2004-01-13 | Braodcom Corporation | Method and apparatus for high speed table search |
JP3822412B2 (ja) | 2000-03-28 | 2006-09-20 | 株式会社東芝 | 半導体記憶装置 |
US6965648B1 (en) | 2000-05-04 | 2005-11-15 | Sun Microsystems, Inc. | Source synchronous link integrity validation |
EP1307884A2 (en) | 2000-07-07 | 2003-05-07 | Mosaid Technologies Incorporated | A high speed dram architecture with uniform access latency |
US6466499B1 (en) | 2000-07-11 | 2002-10-15 | Micron Technology, Inc. | DRAM sense amplifier having pre-charged transistor body nodes |
US7302582B2 (en) | 2000-08-21 | 2007-11-27 | United States Postal Service | Delivery point validation system |
US6301164B1 (en) | 2000-08-25 | 2001-10-09 | Micron Technology, Inc. | Antifuse method to repair columns in a prefetched output memory architecture |
US6704828B1 (en) | 2000-08-31 | 2004-03-09 | Micron Technology, Inc. | System and method for implementing data pre-fetch having reduced data lines and/or higher data rates |
US6948056B1 (en) | 2000-09-28 | 2005-09-20 | Intel Corporation | Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages |
US6304477B1 (en) | 2001-01-31 | 2001-10-16 | Motorola, Inc. | Content addressable magnetic random access memory |
US6563754B1 (en) | 2001-02-08 | 2003-05-13 | Integrated Device Technology, Inc. | DRAM circuit with separate refresh memory |
US6650158B2 (en) | 2001-02-21 | 2003-11-18 | Ramtron International Corporation | Ferroelectric non-volatile logic elements |
US6807614B2 (en) | 2001-07-19 | 2004-10-19 | Shine C. Chung | Method and apparatus for using smart memories in computing |
US7546438B2 (en) | 2001-07-19 | 2009-06-09 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory computing |
ITRM20010531A1 (it) | 2001-08-31 | 2003-02-28 | Micron Technology Inc | Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash. |
US7260672B2 (en) | 2001-09-07 | 2007-08-21 | Intel Corporation | Using data stored in a destructive-read memory |
US7062689B2 (en) | 2001-12-20 | 2006-06-13 | Arm Limited | Method and apparatus for memory self testing |
US7058880B1 (en) | 2001-12-26 | 2006-06-06 | Altera Corporation | Techniques for programming and verifying data in a programmable circuit |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US6707729B2 (en) | 2002-02-15 | 2004-03-16 | Micron Technology, Inc. | Physically alternating sense amplifier activation |
JP2003331598A (ja) | 2002-05-13 | 2003-11-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
US7406494B2 (en) | 2002-05-14 | 2008-07-29 | Texas Instruments Incorporated | Method of generating a cycle-efficient bit-reverse index array for a wireless communication system |
JP2003346484A (ja) | 2002-05-23 | 2003-12-05 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US6789099B2 (en) | 2002-06-10 | 2004-09-07 | International Business Machines Corporation | Sense-amp based adder with source follower evaluation tree |
US7054178B1 (en) | 2002-09-06 | 2006-05-30 | Etron Technology, Inc. | Datapath architecture for high area efficiency |
US6987693B2 (en) | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7079407B1 (en) | 2002-10-18 | 2006-07-18 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device including match line sensing |
US6765834B2 (en) | 2002-11-19 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | System and method for sensing memory cells of an array of memory cells |
US6731542B1 (en) | 2002-12-05 | 2004-05-04 | Advanced Micro Devices, Inc. | Circuit for accurate memory read operations |
KR100546307B1 (ko) | 2002-12-05 | 2006-01-26 | 삼성전자주식회사 | 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃 |
AU2002353406A1 (en) | 2002-12-27 | 2004-07-22 | Solid State System Co., Ltd. | Nonvolatile memory unit with specific cache |
US7346903B2 (en) | 2003-02-04 | 2008-03-18 | Sun Microsystems, Inc. | Compiling and linking modules of a cycle-based logic design |
US6768679B1 (en) | 2003-02-10 | 2004-07-27 | Advanced Micro Devices, Inc. | Selection circuit for accurate memory read operations |
US6819612B1 (en) | 2003-03-13 | 2004-11-16 | Advanced Micro Devices, Inc. | Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage |
US6865122B2 (en) | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US7454451B2 (en) | 2003-04-23 | 2008-11-18 | Micron Technology, Inc. | Method for finding local extrema of a set of values for a parallel processing element |
US7447720B2 (en) | 2003-04-23 | 2008-11-04 | Micron Technology, Inc. | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements |
US7574466B2 (en) | 2003-04-23 | 2009-08-11 | Micron Technology, Inc. | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements |
US9015390B2 (en) | 2003-04-25 | 2015-04-21 | Micron Technology, Inc. | Active memory data compression system and method |
DE10319271A1 (de) | 2003-04-29 | 2004-11-25 | Infineon Technologies Ag | Speicher-Schaltungsanordnung und Verfahren zur Herstellung |
US7142464B2 (en) | 2003-04-29 | 2006-11-28 | Saifun Semiconductors Ltd. | Apparatus and methods for multi-level sensing in a memory array |
JP3898152B2 (ja) | 2003-05-27 | 2007-03-28 | ローム株式会社 | 演算機能付き記憶装置および演算記憶方法 |
US7827372B2 (en) | 2003-09-04 | 2010-11-02 | Nxp B.V. | Intergrated circuit and a method of cache remapping |
US6956770B2 (en) | 2003-09-17 | 2005-10-18 | Sandisk Corporation | Non-volatile memory and method with bit line compensation dependent on neighboring operating modes |
US7177183B2 (en) | 2003-09-30 | 2007-02-13 | Sandisk 3D Llc | Multiple twin cell non-volatile memory array and logic block structure and method therefor |
US7913125B2 (en) | 2003-11-04 | 2011-03-22 | Lsi Corporation | BISR mode to test the redundant elements and regular functional memory to avoid test escapes |
US6950771B1 (en) | 2003-12-09 | 2005-09-27 | Xilinx, Inc. | Correlation of electrical test data with physical defect data |
US7631236B2 (en) | 2004-01-29 | 2009-12-08 | International Business Machines Corporation | Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method |
JP4819316B2 (ja) | 2004-02-23 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7088606B2 (en) | 2004-03-10 | 2006-08-08 | Altera Corporation | Dynamic RAM storage techniques |
US7020017B2 (en) | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7120063B1 (en) | 2004-05-07 | 2006-10-10 | Spansion Llc | Flash memory cell and methods for programming and erasing |
US8522205B2 (en) | 2004-05-18 | 2013-08-27 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
JP2006127460A (ja) | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
US7061817B2 (en) | 2004-06-30 | 2006-06-13 | Micron Technology, Inc. | Data path having grounded precharge operation and test compression capability |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US7434024B2 (en) | 2004-08-30 | 2008-10-07 | Ati Technologies, Inc. | SIMD processor with register addressing, buffer stall and methods |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US20060069849A1 (en) | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
US20060149804A1 (en) | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US7230851B2 (en) | 2004-12-23 | 2007-06-12 | Sandisk Corporation | Reducing floating gate to floating gate coupling effect |
KR100673901B1 (ko) | 2005-01-28 | 2007-01-25 | 주식회사 하이닉스반도체 | 저전압용 반도체 메모리 장치 |
US7543119B2 (en) | 2005-02-10 | 2009-06-02 | Richard Edward Hessel | Vector processor |
US7624313B2 (en) | 2005-03-28 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | TCAM BIST with redundancy |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7193898B2 (en) | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
KR100720644B1 (ko) | 2005-11-17 | 2007-05-21 | 삼성전자주식회사 | 메모리 장치 및 메모리 그 동작 방법 |
JP4804479B2 (ja) | 2005-12-13 | 2011-11-02 | スパンション エルエルシー | 半導体装置およびその制御方法 |
JP5129450B2 (ja) | 2006-01-16 | 2013-01-30 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US8077533B2 (en) | 2006-01-23 | 2011-12-13 | Freescale Semiconductor, Inc. | Memory and method for sensing data in a memory using complementary sensing scheme |
JP4989900B2 (ja) | 2006-01-31 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US7400532B2 (en) | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
KR100755370B1 (ko) | 2006-04-17 | 2007-09-04 | 삼성전자주식회사 | 반도체 메모리 장치 |
TW200828333A (en) | 2006-04-28 | 2008-07-01 | Samsung Electronics Co Ltd | Sense amplifier circuit and sense amplifier-based flip-flop having the same |
US7752417B2 (en) | 2006-06-05 | 2010-07-06 | Oracle America, Inc. | Dynamic selection of memory virtualization techniques |
US7372715B2 (en) | 2006-06-14 | 2008-05-13 | Micron Technology, Inc. | Architecture and method for NAND flash memory |
US8069377B2 (en) | 2006-06-26 | 2011-11-29 | Micron Technology, Inc. | Integrated circuit having memory array including ECC and column redundancy and method of operating the same |
US7724559B2 (en) | 2006-07-14 | 2010-05-25 | International Business Machines Corporation | Self-referenced match-line sense amplifier for content addressable memories |
US7443729B2 (en) | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7885119B2 (en) | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
US7692466B2 (en) | 2006-08-18 | 2010-04-06 | Ati Technologies Ulc | Sense amplifier based flip-flop |
US7805587B1 (en) | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7471536B2 (en) | 2006-12-08 | 2008-12-30 | Texas Instruments Incorporated | Match mismatch emulation scheme for an addressed location in a CAM |
KR100821616B1 (ko) | 2006-12-14 | 2008-04-16 | 한국과학기술원 | 반도체 집적회로의 두 숫자 비교기 |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7743303B2 (en) | 2007-01-22 | 2010-06-22 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
US7937535B2 (en) | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US7804718B2 (en) | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US7492640B2 (en) | 2007-06-07 | 2009-02-17 | Sandisk Corporation | Sensing with bit-line lockout control in non-volatile memory |
JP2009009665A (ja) | 2007-06-29 | 2009-01-15 | Elpida Memory Inc | 半導体記憶装置 |
US7996749B2 (en) | 2007-07-03 | 2011-08-09 | Altera Corporation | Signal loss detector for high-speed serial interface of a programmable logic device |
US7489543B1 (en) | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
US7694195B2 (en) | 2007-08-14 | 2010-04-06 | Dell Products L.P. | System and method for using a memory mapping function to map memory defects |
US7869273B2 (en) | 2007-09-04 | 2011-01-11 | Sandisk Corporation | Reducing the impact of interference during programming |
US7787319B2 (en) | 2007-09-06 | 2010-08-31 | Innovative Silicon Isi Sa | Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same |
US8042082B2 (en) | 2007-09-12 | 2011-10-18 | Neal Solomon | Three dimensional memory in a system on a chip |
US7965564B2 (en) | 2007-09-18 | 2011-06-21 | Zikbit Ltd. | Processor arrays made of standard memory cells |
US7663928B2 (en) | 2007-10-09 | 2010-02-16 | Ememory Technology Inc. | Sense amplifier circuit having current mirror architecture |
WO2009052525A1 (en) | 2007-10-19 | 2009-04-23 | Virident Systems, Inc. | Managing memory systems containing components with asymmetric characteristics |
US7924628B2 (en) | 2007-11-14 | 2011-04-12 | Spansion Israel Ltd | Operation of a non-volatile memory array |
US7979667B2 (en) | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
US7755960B2 (en) | 2007-12-17 | 2010-07-13 | Stmicroelectronics Sa | Memory including a performance test circuit |
US8495438B2 (en) | 2007-12-28 | 2013-07-23 | Texas Instruments Incorporated | Technique for memory imprint reliability improvement |
US7808854B2 (en) | 2008-02-19 | 2010-10-05 | Kabushiki Kaisha Toshiba | Systems and methods for data transfers between memory cells |
JP5194302B2 (ja) | 2008-02-20 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
US8332580B2 (en) | 2008-04-02 | 2012-12-11 | Zikbit Ltd. | System, method and apparatus for memory with embedded associative section for computations |
US20090254694A1 (en) | 2008-04-02 | 2009-10-08 | Zikbit Ltd. | Memory device with integrated parallel processing |
US7957206B2 (en) | 2008-04-04 | 2011-06-07 | Micron Technology, Inc. | Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same |
US8339824B2 (en) | 2008-07-02 | 2012-12-25 | Cooke Laurence H | Nearest neighbor serial content addressable memory |
US8417921B2 (en) | 2008-08-15 | 2013-04-09 | Apple Inc. | Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector |
US8555037B2 (en) | 2008-08-15 | 2013-10-08 | Apple Inc. | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture |
US8259509B2 (en) | 2008-08-18 | 2012-09-04 | Elpida Memory, Inc. | Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality |
EP2319244A1 (en) | 2008-08-19 | 2011-05-11 | Thomson Licensing | Cabac/avc compliant watermarking of syntax elements in compressed video |
ITRM20080543A1 (it) | 2008-10-09 | 2010-04-10 | Micron Technology Inc | Architettura e metodo per la programmazione di memorie. |
KR101596283B1 (ko) | 2008-12-19 | 2016-02-23 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
KR101622922B1 (ko) | 2009-03-06 | 2016-05-20 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
US8484276B2 (en) | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
KR20100134235A (ko) | 2009-06-15 | 2010-12-23 | 삼성전자주식회사 | 반도체 메모리 장치 |
US7898864B2 (en) | 2009-06-24 | 2011-03-01 | Sandisk Corporation | Read operation for memory with compensation for coupling based on write-erase cycles |
US8412987B2 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
US8412985B1 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Hardwired remapped memory |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
US9076527B2 (en) | 2009-07-16 | 2015-07-07 | Mikamonu Group Ltd. | Charge sharing in a TCAM array |
JP4951041B2 (ja) | 2009-08-06 | 2012-06-13 | 株式会社東芝 | 半導体記憶装置 |
JP5568133B2 (ja) | 2009-08-18 | 2014-08-06 | ダウ コーニング コーポレーション | 多層経皮パッチ |
US8059438B2 (en) | 2009-08-28 | 2011-11-15 | International Business Machines Corporation | Content addressable memory array programmed to perform logic operations |
US8077532B2 (en) | 2009-09-02 | 2011-12-13 | Micron Technology, Inc. | Small unit internal verify read in a memory device |
US8482975B2 (en) | 2009-09-14 | 2013-07-09 | Micron Technology, Inc. | Memory kink checking |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
WO2011048522A2 (en) | 2009-10-21 | 2011-04-28 | Zikbit Ltd. | Neighborhood operations for parallel processing |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US8650232B2 (en) | 2009-10-26 | 2014-02-11 | Via Technologies, Inc. | System and method for determination of a horizontal minimum of digital values |
KR101634340B1 (ko) | 2009-11-03 | 2016-06-28 | 삼성전자주식회사 | 반도체 메모리 장치의 프로그램 방법 |
US8583896B2 (en) | 2009-11-13 | 2013-11-12 | Nec Laboratories America, Inc. | Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain |
KR20110054773A (ko) | 2009-11-18 | 2011-05-25 | 삼성전자주식회사 | 비트라인 디스털번스를 개선하는 반도체 메모리 장치 |
US8089815B2 (en) | 2009-11-24 | 2012-01-03 | Sandisk Technologies Inc. | Programming memory with bit line floating to reduce channel-to-floating gate coupling |
US8605015B2 (en) | 2009-12-23 | 2013-12-10 | Syndiant, Inc. | Spatial light modulator with masking-comparators |
JP2011146102A (ja) | 2010-01-15 | 2011-07-28 | Elpida Memory Inc | 半導体装置及びデータ処理システム |
CN102141905B (zh) | 2010-01-29 | 2015-02-25 | 上海芯豪微电子有限公司 | 一种处理器体系结构 |
US8164942B2 (en) | 2010-02-01 | 2012-04-24 | International Business Machines Corporation | High performance eDRAM sense amplifier |
WO2011137189A1 (en) | 2010-04-27 | 2011-11-03 | Cornell Research Foundation | System and methods for mapping and searching objects in multidimensional space |
KR101119371B1 (ko) | 2010-04-29 | 2012-03-06 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 이의 동작 방법 |
US8559232B2 (en) | 2010-05-03 | 2013-10-15 | Aplus Flash Technology, Inc. | DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation |
US8351278B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Jam latch for latching memory array output data |
KR101143471B1 (ko) | 2010-07-02 | 2012-05-11 | 에스케이하이닉스 주식회사 | 센스앰프 및 이를 포함하는 반도체 장치 |
US20120017039A1 (en) | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
US8462532B1 (en) | 2010-08-31 | 2013-06-11 | Netlogic Microsystems, Inc. | Fast quaternary content addressable memory cell |
US8347154B2 (en) | 2010-09-21 | 2013-01-01 | International Business Machines Corporation | Use of hashing function to distinguish random and repeat errors in a memory system |
US8478969B2 (en) | 2010-09-24 | 2013-07-02 | Intel Corporation | Performing a multiply-multiply-accumulate instruction |
US8904115B2 (en) | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8332367B2 (en) | 2010-10-20 | 2012-12-11 | International Business Machines Corporation | Parallel data redundancy removal |
KR101148352B1 (ko) | 2010-11-02 | 2012-05-21 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작 방법 |
JP5528987B2 (ja) | 2010-11-11 | 2014-06-25 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置 |
US8553482B2 (en) | 2010-11-29 | 2013-10-08 | Apple Inc. | Sense amplifier and sense amplifier latch having common control |
US9165023B2 (en) | 2011-01-31 | 2015-10-20 | Freescale Semiconductor, Inc. | Integrated circuit device and method for determining an index of an extreme value within an array of values |
KR20120088973A (ko) | 2011-02-01 | 2012-08-09 | 삼성전자주식회사 | 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치 |
JP2012174016A (ja) | 2011-02-22 | 2012-09-10 | Renesas Electronics Corp | データ処理装置およびそのデータ処理方法 |
JP5259765B2 (ja) | 2011-03-29 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体メモリ |
US8725730B2 (en) | 2011-05-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Responding to a query in a data processing system |
US8706958B2 (en) | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
WO2013062596A1 (en) | 2011-10-28 | 2013-05-02 | Hewlett-Packard Development Company, L.P. | Row shifting shiftable memory |
US8891297B2 (en) | 2011-11-01 | 2014-11-18 | Micron Technology, Inc. | Memory cell sensing |
US9830158B2 (en) | 2011-11-04 | 2017-11-28 | Nvidia Corporation | Speculative execution and rollback |
KR101321481B1 (ko) | 2011-11-04 | 2013-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 테스트 회로 |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
GB2511957B (en) | 2011-11-22 | 2015-02-11 | Mips Tech Inc | Processor with kernel mode access to user space virtual addresses |
US9665371B2 (en) | 2011-11-30 | 2017-05-30 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
CN104115115B (zh) | 2011-12-19 | 2017-06-13 | 英特尔公司 | 用于多精度算术的simd整数乘法累加指令 |
KR20130072869A (ko) | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 프리차지 회로 및 비휘발성 메모리 장치 |
WO2013095592A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Apparatus and method for vector compute and accumulate |
US20130286705A1 (en) | 2012-04-26 | 2013-10-31 | David B. Grover | Low power content addressable memory hitline precharge and sensing circuit |
US8938603B2 (en) | 2012-05-31 | 2015-01-20 | Samsung Electronics Co., Ltd. | Cache system optimized for cache miss detection |
US20130332707A1 (en) | 2012-06-07 | 2013-12-12 | Intel Corporation | Speed up big-number multiplication using single instruction multiple data (simd) architectures |
KR102062301B1 (ko) | 2013-01-03 | 2020-01-03 | 삼성전자주식회사 | 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법 |
US20140215185A1 (en) | 2013-01-29 | 2014-07-31 | Atmel Norway | Fetching instructions of a loop routine |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9424031B2 (en) | 2013-03-13 | 2016-08-23 | Intel Corporation | Techniques for enabling bit-parallel wide string matching with a SIMD register |
US9171153B2 (en) | 2013-05-17 | 2015-10-27 | Hewlett-Packard Development Company, L.P. | Bloom filter with memory element |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9639458B2 (en) | 2013-09-26 | 2017-05-02 | Emu Solutions, Inc. | Reducing memory accesses for enhanced in-memory parallel operations |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
TWM485601U (zh) | 2014-04-10 | 2014-09-01 | Joinsoon Electronics Mfg Co | 防治電信號受到干擾的電路結構 |
EP3140743B1 (en) | 2014-05-08 | 2021-11-24 | Micron Technology, INC. | Hybrid memory cube system interconnect directory-based cache coherence methodology |
US10825496B2 (en) | 2014-05-08 | 2020-11-03 | Micron Technology, Inc. | In-memory lightweight memory coherence protocol |
US9898252B2 (en) * | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
US9904515B2 (en) * | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9904574B2 (en) * | 2014-12-23 | 2018-02-27 | Successfactors, Inc | Parallel computing without requiring antecedent code deployment |
US10061590B2 (en) * | 2015-01-07 | 2018-08-28 | Micron Technology, Inc. | Generating and executing a control flow |
US9921777B2 (en) * | 2015-06-22 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for data transfer from sensing circuitry to a controller |
US9910637B2 (en) * | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10388393B2 (en) * | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
-
2015
- 2015-08-24 US US14/834,065 patent/US9904515B2/en active Active
- 2015-08-28 WO PCT/US2015/047488 patent/WO2016036602A1/en active Application Filing
- 2015-09-03 TW TW104129201A patent/TWI601149B/zh active
-
2018
- 2018-02-26 US US15/905,083 patent/US10409555B2/en active Active
-
2019
- 2019-09-06 US US16/563,063 patent/US10705798B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638317A (en) * | 1990-08-22 | 1997-06-10 | Texas Instruments Incorporated | Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit |
US5986942A (en) * | 1998-01-20 | 1999-11-16 | Nec Corporation | Semiconductor memory device |
US20030222879A1 (en) * | 2002-04-09 | 2003-12-04 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
US6943579B1 (en) * | 2002-12-20 | 2005-09-13 | Altera Corporation | Variable fixed multipliers using memory blocks |
US20080215937A1 (en) * | 2004-01-29 | 2008-09-04 | International Business Machines Corporation | Remote bist for high speed test and redundancy calculation |
US8533245B1 (en) * | 2010-03-03 | 2013-09-10 | Altera Corporation | Multipliers with a reduced number of memory blocks |
Also Published As
Publication number | Publication date |
---|---|
US10409555B2 (en) | 2019-09-10 |
US20190391789A1 (en) | 2019-12-26 |
US20180189031A1 (en) | 2018-07-05 |
US9904515B2 (en) | 2018-02-27 |
US10705798B2 (en) | 2020-07-07 |
US20160063284A1 (en) | 2016-03-03 |
TW201631574A (zh) | 2016-09-01 |
WO2016036602A1 (en) | 2016-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI601149B (zh) | 用於執行乘法運算之方法及裝置 | |
TWI576761B (zh) | 記憶體中之乘法運算 | |
TWI596619B (zh) | 記憶體中之比較運算 | |
TWI609264B (zh) | 記憶體中之除法運算 | |
TWI602191B (zh) | 藉由記憶體中向量之元素之資料移位 | |
TWI620058B (zh) | 記憶體中之交換運算 | |
CN107408403B (zh) | 存储器中的最长元素长度确定 | |
TWI575449B (zh) | 用於比較多個元素之裝置及方法 | |
US9898253B2 (en) | Division operations on variable length elements in memory | |
CN108885885B (zh) | 存储器中的数据收集 | |
CN106471582B (zh) | 用于使用感测电路来执行逻辑操作的设备及方法 | |
TWI545498B (zh) | 用於判定總數計數之裝置及方法 | |
JP6216878B2 (ja) | メモリ用の除算演算 |