TWI844086B - 輸入電路、記憶電路及其操作方法 - Google Patents
輸入電路、記憶電路及其操作方法 Download PDFInfo
- Publication number
- TWI844086B TWI844086B TW111133140A TW111133140A TWI844086B TW I844086 B TWI844086 B TW I844086B TW 111133140 A TW111133140 A TW 111133140A TW 111133140 A TW111133140 A TW 111133140A TW I844086 B TWI844086 B TW I844086B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- signal
- circuit
- selection
- selection circuit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 21
- 230000000295 complement effect Effects 0.000 claims abstract description 53
- 238000009825 accumulation Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 22
- 230000000737 periodic effect Effects 0.000 claims description 16
- 230000003247 decreasing effect Effects 0.000 claims description 9
- 230000002441 reversible effect Effects 0.000 claims description 7
- 230000036961 partial effect Effects 0.000 description 24
- 230000008878 coupling Effects 0.000 description 10
- 238000010168 coupling process Methods 0.000 description 10
- 238000005859 coupling reaction Methods 0.000 description 10
- 101150110971 CIN7 gene Proteins 0.000 description 9
- 102100039501 Chymotrypsinogen B Human genes 0.000 description 9
- 101000889273 Homo sapiens Chymotrypsinogen B Proteins 0.000 description 9
- 101150110298 INV1 gene Proteins 0.000 description 9
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Manipulation Of Pulses (AREA)
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
- Complex Calculations (AREA)
Abstract
一種電路包括配置為接收包括多個資料單元的訊號的資
料暫存器、耦合到資料暫存器的第一選擇電路、計數器、耦合到計數器的第二選擇電路以及耦合在計數器和第二選擇電路之間的反相器。資料暫存器輸出每個資料單元中的多個位元至第一選擇電路,計數器和反相器產生互補訊號,其中序向資料單元具有以反向步進的週期性的數值,第二選擇電路交替地將每個互補訊號作為選擇訊號輸出到第一選擇電路,第一選擇電路響應於選擇訊號以交替的序向順序輸出資料單元中的多個位元。
Description
本公開的實施例是有關於一種輸入電路、記憶電路及其操作方法。
記憶陣列常用於儲存,存取資料用於各種類型的計算,如邏輯或數學操作。為了執行這些操作,資料位元(data bits)在記憶陣列和電路之間移動以用於執行計算。在某些情況下,計算包含多層操作,而第一個操作的結果可作為第二個操作中的輸入資料。
根據本公開的一些實施例,提供一種電路包括配置為接收包括第一多個資料單元的第一訊號的第一資料暫存器、耦合到第一資料暫存器的第一選擇電路、第一計數器、耦合到第一計數器的的第二選擇電路,以及耦合於第一計數器和第二選擇電路之間的反相器。第一資料暫存器配置為輸出第一多個資料單元中的每個資料單元的多個位元至第一選擇電路,第一計數器和反相器配置為產生互補訊號,其中序向資料單元具有以反向步進的週期性數值,第二選擇電路配置為交替地輸出每個互補訊號作為第一選
擇電路的第一選擇訊號,並且第一選擇電路被配置為響應於第一選擇訊號,並以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元。
根據本公開的一些實施例,提供一種記憶電路包括輸入電路,輸入電路包括第一選擇電路,配置為接收第一選擇訊號;以及,第一計數器和第二計數器,耦合到第二選擇電路,其中第一計數器和第二計數器以及第二選擇電路分別配置為產生第一選擇訊號和第二選擇訊號;第一乘法器,耦合到第一選擇電路;加法器,耦合到第一乘法器;以及累加器,耦合到加法器並配置為接收第二選擇訊號,其中響應於第一選擇訊號,第一選擇電路配置為以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元到第一乘法器,並且響應於第二選擇訊號,累加器配置為基於第一選擇電路以交替的序向順序輸出第一多個資料單元的多個位元以執行第一累加操作和第二累加操作。
根據本公開的一些實施例,提供一種記憶電路的操作方法包括在輸入電路接收第一訊號,第一訊號包括第一多個資料單元;產生互補訊號,其中序向資料單元具有以反向步進的週期性數值;通過交替選擇互補訊號中的每個互補訊號來產生選擇訊號;以及響應於選擇訊號而以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元。
0011:第一資料單元
0101、1010:第二資料單元
100:資料序向電路
110、200:輸入電路
111、113:輸入路徑
112、114、116:輸出端
120:儲存元件
130:加法器
140、400:累加器
141:輸入端
210:訊號產生部分
500:方法
510、510-550、520、530、540、550:操作
A1、A5:加法器電路
BL、BM:額外位元
CLK:時脈訊號
CTRA、CTRB:計數器
DEL、DER、P0、P1、PSL、PSM、W0、W1:資料單元
DFF:正反器
FB1:第一回饋路徑
FB2:第二回饋路徑
IN0、IN1、OUT、SA、SEL、X、Y:訊號
INV1:反相器
M0、M1:乘法器
OUTB、PSB:資料匯流排
PS:部份和
R1、R2、R3:資料暫存器
S1-S3、S1、S2、S3、S4、S5:選擇電路
SDE:加總資料單元
SHL、SHR:移位器
結合附圖閱讀以下詳細說明,會最好地理解本公開的各個方面。應注意,根據本行業中的標準慣例,各種特徵並非按比例
繪製。事實上,為使論述清晰起見,可任意增大或減小各種特徵的尺寸。另外,圖式是作為本發明實施例的實施例進行例示,且並不旨在進行限制。
圖1是根據一些實施例的資料序向電路的示意圖,。
圖2是根據一些實施例的輸入電路的示意圖。
圖3A和3B分別是根據一些實施例的輸入電路的示意圖和輸入電路的操作參數。
圖4A和4B是根據一些實施例的累加器的示意圖。
圖5是根據一些實施例的執行資料排序操作的方法的流程圖。
本發明提供用於實施本發明的不同特徵的許多不同實施例。以下闡述組件、數值、運算、材料、佈置或類似物及排列的具體實施例以簡化本發明。當然,該些僅為實施例且不旨在進行限制。舉例而言,以下說明中將第一特徵形成於第二特徵「之上」或第二特徵「上」可包括其中第一特徵與第二特徵被形成為直接接觸的實施例,且亦可包括其中第一特徵與第二特徵之間可形成有附加特徵進而使得所述第一特徵與所述第二特徵可不直接接觸的實施例。另外,本發明可能在各種實施例中重複使用參考編號及/或字母。此種重複使用是出於簡潔及清晰的目的,而不是自身表示所論述的各種實施例及/或配置之間的關係。
此外,為易於說明,本文中可能使用例如「位於…之下(beneath)」、「位於…下方(below)」、「下部的(lower)」、「位於…
上方(above)」、「上部的(upper)」等空間相對性用語來闡述圖中所例示的一個元件或特徵與另一(其他)元件或特徵的關係。所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或運算中的不同定向。設備可具有其他定向(旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。
此外,為易於說明,本文中可能使用例如「位於…之下(beneath)」、「位於…下方(below)」、「下部的(lower)」、「位於…上方(above)」、「上部的(upper)」等空間相對性用語來闡述圖中所例示的一個元件或特徵與另一(其他)元件或特徵的關係。所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或運算中的不同定向。設備可具有其他定向(旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。
在各種實施例中,資料序向電路被配置為以交替的序向順序傳輸資料單元(元素)的位元(bits),使得連續傳輸的資料單元中的鄰近位元與最高有效位元(MSB)或最低有效位(LSB)中的其中一個相同。在一些應用中,例如記憶體內運算(CIM)操作,其中連續的資料單元更有可能具有相同值的MSB和/或LSB,因此資料序向電路能夠降低訊號切換頻率,因此與不以交替序列順序傳輸位元的方法相比之下可降低功率消耗。
圖1是根據一些實施例的資料序向電路100的示意圖。資料序向電路100,在一些實施例中也稱為電路100或記憶電路100,包括輸入電路110、儲存元件120、乘法器M0和M1、加法
器130、累加器140和資料匯流排OUTB。
輸入電路110包括分別被配置為接收訊號IN0[0:n]和IN1[0:n]的輸入路徑111和113,耦合到乘法器M0和M1並配置為輸出訊號X和Y的輸出端112和114,以及耦合到累加器140的輸入端141並被配置為輸出訊號SeqSel(在一些實施例中也稱為選擇訊號SeqSel)的輸出端116。乘法器M0和M1也耦合到儲存元件120和加法器130,並因此被配置為從儲存元件120接收各自的資料單元W0和W1,並將各自的資料單元P0和P1輸出到加法器130。加法器130通過資料匯流排PSB耦合到累加器140,並被配置為在資料匯流排PSB上輸出部份和(partial sum)PS。累加器140被配置為在資料匯流排PSB上接收部份和PS以及輸入端141上的訊號SeqSel,並在資料匯流排OUTB上輸出訊號OUT。
在一些實施例中,資料序向電路100不包括儲存元件120、乘法器M0和M1、加法器130、累加器140和資料匯流排OUTB,而是包括配置為在輸出端112和114上輸出訊號X和Y的輸入電路110,其配置不同於圖1中所描繪的,例如,耦合到一或多個外部電路。
兩個或多個電路元件被認為是基於直接電性連接或包括一或多個額外電路元件的電性連接,並因此能夠被電晶體或其他開關裝置控制,例如,通過一或多個電晶體或其他開關裝置使其具有電阻性或開路。
圖1中描繪的實施例是為了說明而簡化的非限制性實施例。在一些實施例中,資料序向電路100包括除了在圖1中所描繪和在下文所討論的那些電路單元之外的電路單元,例如,控制電
路或所描繪的電路單元的額外實施例。在一些實施例中,圖1中描繪的元件是記憶陣列的一部分,包括對應於輸入電路110、儲存元件120、乘法器M0和M1、加法器130和/或累加器140的多個實例的行和列。
在一些實施例中,資料序向電路100是CIM電路的一部分,包括配置為執行記憶體內運算的單元,例如卷積神經網路(CNN),其中陣列包括儲存的權重資料單元,例如資料單元W0和W1,它們以乘法和累加(MAC)操作的形式應用到一組或多組輸入資料單元,例如訊號IN0[0:n]和IN1[0:n]。
圖1中描繪的電路單元之間的關係是為了說明的目的而提供的非限制性實施例。在一些實施例中,總共有兩個以上的乘法器M0和M1對應於單個物件的儲存元件120、加法器130和/或累加器140。
在一些實施例中,訊號IN0[0:n]和IN1[0:n]中的每一個訊號也稱為輸入訊號IN0[0:n]和IN1[0:n],包含一組資料單元,每個資料單元包括位元數為n+1的預定總位元數,如下所述。
輸入電路110是一種電子電路,例如積體電路(IC),配置為接收一或多個輸入訊號,例如訊號IN0[0:n]和IN1[0:n],並將輸入訊號的資料單元作為對應的一或多個輸出訊號的連續部分,例如訊號X和Y。如下文所述,輸入電路110被配置為以交替的序向順序對資料單元中的位元進行傳輸,使得連續傳送的資料單元中的鄰近位元與MSB或LSB中的其中一個相同。在一些實施例中,輸入電路110包括下面關於圖2所討論的輸入電路200。
輸入路徑111和113中的每一個是一或多個訊號路徑,
配置為接收相應的訊號IN0[0:n]和IN1[0:n]。在各種實施例中,輸入路徑111和113中的每一個是配置為接收以串行傳輸(transmitted serially)的相應訊號IN0[0:n]或IN1[0:n]的輸入端或配置為接收以平行配置方式傳輸的相應訊號IN0[0:n]或IN1[0:n]的資料匯流排。
在圖1中描繪的實施例中,輸入電路110被配置為接收總共兩個輸入訊號,每個輸入訊號包括含有n個位元的資料單元。隨著每個輸入訊號、資料單元以及資料單元中的位元數量的增加,電路的複雜性和功率的消耗隨著功能增加而增加,例如,有效地處理處理大型資料集的能力。
在一些實施例中,輸入電路110配置為接收共1個或大於2個的輸入訊號。在一些實施例中,輸入電路110配置為接收總數可從4個到32個的輸入訊號。在一些實施例中,輸入電路110配置為接收總數從8個到16個的輸入訊號。
在一些實施例中,輸入電路110配置為接收具有位元數等於4的每個資料單元。在一些實施例中,輸入電路110配置為接收包括位元數小於或大於4的每個資料單元。在一些實施例中,輸入電路110配置為接收位元數包括1到16(即,可為1到16個不同的位元數)的每個資料單元。在一些實施例中,輸入電路110配置為接收包括位元數從8到12的每個資料單元。
在一些實施例中,輸入電路110配置為接收訊號IN0[0:n]和IN1[0:n]中資料單元的數量範圍從4到512的每個資料單元。在一些實施例中,輸入電路110被配置為接收訊號IN0[0:n]和IN1[0:n]中資料單元的數量範圍從32到128的每個資料單元。
輸入電路110包括一或多個資料暫存器(未在圖1中示出),配置為接收和暫時儲存訊號IN0[0:n]和IN1[0:n]中的資料單元,例如,通過包括一或多個閂鎖器或正反器電路。在多種實施例中,一或多個資料暫存器被配置為平行或串聯(行)接收訊號IN0[0:n]和IN1[0:n]的資料單元的位元資料。
一或多個資料暫存器耦合到一或多個選擇電路(圖1中未示出),例如多工器,並且被配置為輸出給定資料單元的位元到一或多個選擇電路。一或多個選擇電路被配置為連續地(依次地或序向地)輸出訊號IN0[0:n]和IN1[0:n]的資料單元作為訊號X和Y,其中資料單元的位元具有基於訊號SeqSel的邏輯準位的序向順序。
輸入電路110包括配置為接收一或多個時脈訊號(圖1中未示出)的訊號產生部分,例如,下文關於圖3A和3B所討論的時脈訊號CLK,以及產生在對應於第一序向順序的第一邏輯準位,例如,0到n,以及對應於與第一序向的順序相反的第二序向順序的第二邏輯準位,例如,n到0之間交替的訊號SeqSel。在一些實施例中,第一序向的順序是由LSB到MSB的順序,對應於從給定資料單元的LSB遞進(增加)到給定資料單元的MSB的順序,第二序向的順序是對應於從給定資料單元的MSB遞進(增加)到給定資料單元的LSB的順序。
訊號產生部分被配置為產生具有與資料單元同步的第一邏輯準位和第二邏輯準位的訊號SeqSel,使得給定資料單元的所有n位元都是以相同序向的順序輸出。在一些實施例中,第一邏輯準位對應資料序向電路100的第一操作模式,第二邏輯準位對
應資料序向電路100的第二操作模式。
因此,輸入電路110被配置為產生包括以交替的序向順序的對應訊號IN0[0:n]和IN1[0:n]的資料單元中的位元的訊號X和Y,使得連續傳送的資料單元中的鄰近位元與MSB或LSB中其中一個相同,並且產生與交替序列順序同步的且具有交替的邏輯準位的訊號SeqSel。
儲存元件,例如儲存元件120,是用來儲存一或多個資料單元的電性、機電、電磁或其他裝置,每個資料單元包括由邏輯狀態表示的一或多個資料位元。在一些實施例中,邏輯狀態對應於儲存在一部分或全部的儲存元件中的電荷的電壓準位。在一些實施例中,邏輯狀態對應於儲存元件的一部分或全部的物理特性,例如電阻或磁取向(magnetic orientation)。
在一些實施例中,儲存元件包括一或多個靜態隨機存取記憶體(SRAM)單元。在各種實施例中,SRAM單元,例如5-電晶體(5T)、6-電晶體(6T)、8-電晶體(8T)或9-電晶體(9T)SRAM單元,包括兩個到十二個電晶體數量。在一些實施例中,SRAM單元包括多軌SRAM單元。在一些實施例中,SRAM單元的長度至少是寬度的兩倍。
在一些實施例中,儲存元件包括一或多個動態隨機存取記憶體(DRAM)單元、電阻式隨機存取記憶體(RRAM)單元、磁阻隨機存取記憶體(MRAM)單元、鐵電式隨機存取記憶體(FeRAM)單元、NOR快閃記憶體單元、NAND快閃記憶體單元、導電橋接隨機存取記憶體(CBRAM)單元、資料暫存器,非揮發性記憶體(NVM)單元、3DNVM單元或其他能夠儲存位元資料的記
憶單元類型。在一些實施例中,儲存元件是記憶陣列的一部分或全部。
儲存元件120包括資料單元W0和W1。在包含資料序向電路100的CIM電路的一些實施例中,資料單元W0和W1對應於一或多個矩陣計算的權重資料。
隨著儲存在儲存元件120中的每個資料單元和每個資料單元中位元數量的增加,電路的複雜性和功率的消耗隨著功能的增加而增加,例如增加的權重資料解析度。
在圖1中描繪的實施例中,儲存元件120總共包括兩個資料單元W0和W1。在一些實施例中,儲存元件120包括一個或兩個以上的資料單元W0和W1。在一些實施例中,儲存元件120所包括的資料單元的數量從4個到1024個不等。在一些實施例中,儲存元件120所包括的資料單元的數量從8個到128個不等。
在一些實施例中,儲存元件120配置為儲存每資料單元中的位元數,例如資料單元W0和W1,位元數的範圍從1到16個。在一些實施例中,儲存元件120被配置為儲存每資料單元的位元數,位元數的範圍介於4個到8個之間。
儲存元件120包括一或多個I/O連接(未示出),邏輯狀態通過該I/O連接在寫入操作中被程式化,並且在讀取操作中被存取,例如乘法操作。
乘法器(例如乘法器M0或M1)是包括一或多個邏輯閘的電子電路,該邏輯閘被配置為基於接收到的資料位元(例如訊號X或Y中的一個位元)和接收到的資料(例如從儲存元件120接收到的資料單元W0或W1)來執行數學運算(例如乘法),從而
產生乘積資料單元(例如資料單元P0或P1)等於輸入資料位元和輸入資料單元的乘積。在一些實施例中,乘法器被配置為產生包括等於收到的資料單元的位元數的產品資料單元。在其他實施例中,乘法器包括一或多個AND或NOR閘或其他適合執行部分或全部乘法操作的電路。
因此,包括輸入電路110和乘法器M0以及M1的資料序向電路100被配置為使得乘法器M0和M1分別以上述的交替的位元序列順序接收對應的訊號X和Y,以便序向的(連續地)產生對應的資料單元P0和P1的對應實例(instances)以作為相應的資料單元W0和W1乘以訊號X和Y的以交替排序的位元的乘積。
加法器130是包括多層加法器電路(未示出)的電子電路,其中第一層配置為接收多個資料單元,例如資料單元P0和P1,最後一層包括單個邏輯加法裝置,配置為基於接收到的多個資料單元產生資料單元,例如部份和PS。在一些實施例中,第一層和最後一層之間的一或多個連續層中的每一個被配置為接收由前一層產生的具有第一數量的和(加總)資料單元(sum data elements),並基於第一數量的加總資料單元產生一個第二數量的和(加總)資料單元,其中第二數量是第一數量的一半。因此,總層數包括第一層和最後一層以及每個後續的層(successive layer)(如果存在的話)。
加法器130的總層數被配置為對應於接收到的資料單元的數量,例如資料單元P0和P1。在一些實施例中,加法器130包括從1到9的總層數。在一些實施例中,加法器130包括從2到
6的總層數。
加法器電路是包括一或多個邏輯閘的電子電路,其被配置為基於接收到的第一資料單元和第二資料單元(例如資料單元P0和P1)執行數學運算(例如加法),從而產生等於接收到的第一資料單元和第二資料單元之和的加總資料單元。在一些實施例中,加法器電路被配置為產生包括比接收到的第一資料單元和第二資料單元中的每一個的位元數大1的加總資料單元。在各種實施例中,加法器電路包括一或多個全加法器閘、半加法器閘、漣波進位(ripple-carry)加法器電路、進位保存(carry-save)加法器電路、進位選擇(carry-select)加法器電路、超前進位(carry-look-ahead)加法器電路或其他適合執行部分或全部加法操作的其他電路。
在一些實施例中,加法器130的每一層中的每個加法器電路被配置為產生對應的加總資料單元,包括比前一層的加總資料單元的位元數還要多1的位元數,或者在第一層的情況下,產生接收到的多個資料單元的資料單元。
資料匯流排PSB包括至少等於最後一層加法器電路的加總資料單元中的位元數的訊號路徑的數量。加法器130被配置為輸出從LSB到MSB排列的部份和PS的位元至資料匯流排PSB上。
在一些實施例中,資料匯流排PSB包括比最後一層加法器電路的加總資料單元至少大兩個位元數的訊號路徑,而加法器130配置為通過包括比最後一層加法器電路的加總資料單元至少大兩個位元數來產生並附加於部份和PS。
在一些實施例中,附加的至少兩個位元中的每一個具有低邏輯準位,並且加法器130被配置為在資料匯流排PSB的最外層訊號路徑處輸出的額外位元,使得在此操作中,部份和PS在LSB方向和MSB方向中的每一個方向上由至少具有一個低邏輯準位的位元延伸(extend)。在一些實施例中,加法器130被配置為在資料匯流排PSB的最外側的訊號路徑輸出額外位元,使得在此操作中,部份和PS在LSB和MSB方向的每一個方向上延伸(擴展)了比訊號IN0[0:n]、IN1[0:n]、X和Y的每個資料單元的位元數少一個的低邏輯準位位元的總數,即每個方向的低邏輯準位位元的總數等於n。
因此,包括輸入電路110和加法器130的資料序向電路100被配置為使得加法器130接收依序產生的資料單元P0和P1的實例(instances),並且依照上述討論的訊號X和Y的交替排序的位元依序產生部份和PS的實例,以作為依序產生的資料單元P0和P1的實例的總和.
累加器140是包括加法器電路、資料暫存器、第一移位器和第二移位器以及第一選擇電路和第二選擇電路(圖1中未示出)共同耦合於回饋設置(feedback arrangement)的電子電路。回饋設置包括在資料總線PSB和OUTB之間串聯耦合的第一選擇電路、加法器電路和資料暫存器,包括在資料匯流排OUTB和加法器電路之間串聯耦合的第二選擇電路和第一移位器的第一回饋路徑,以及包括在資料匯流排OUTB和加法器電路之間串聯耦合的第二選擇電路和第二移位器的第二回饋路徑。在一些實施例中,累加器140包括下面關於圖4A和4B討論的累加器400。
在各種實施例中,加法器電路、資料暫存器、兩個移位器和兩個選擇電路中的給定一個是獨立的電路、電路的集合或更大的電路的一部分。在一些實施例中,兩個移位器是相同移位器電路的部分,例如可重新配置的電路,和/或兩個選擇電路是相同電路的部分。
第一選擇電路與加法器130通過資料匯流排PSB而耦合,從而配置為接收資料匯流排PSB上的部份和PS的實例,並且第一選擇電路和第二選擇電路中的每一個都通過輸入端141耦合到輸入電路110,從而配置為接收來自輸入電路110訊號SeqSel。
第一選擇電路被配置為在操作中通過選擇如上所述的在第一LSB/MSB端附加的部份和PS的實例來響應於具有第一邏輯準位的訊號SeqSel,通過選擇如上所述的在第二LSB/MSB端附加的部份和PS的實例來響應於具有第二邏輯準位的訊號SeqSel,並且將選定的部份和PS(如附加的部份和PS)的實例,輸出到加法器電路。在各種實施例中,第一選擇電路被配置為基於從如上所述的加法器130或例如從第一選擇電路內的一或多個其他來源接收的額外位元來選擇附加的部份和PS。
第二選擇電路被配置為在操作中通過在第一回饋路徑中與第一移位器耦合以響應於具有第一邏輯準位的訊號SeqSel,並且通過在第二回饋路徑中與第二移位器耦合響應於具有第二邏輯準位的訊號SeqSel。第一移位器被配置為執行右移位(在LSB方向)或左移位(在MSB方向)操作中的其中一者,而第二移位器被配置為執行右移位或左移位操作中的另一者。
因此,第一選擇電路和第二選擇電路被配置為在操作中
選擇與被配置為執行右移位操作的第一移位器或第二移位器耦合十,同時選擇附加在LSB端的給定的部份和PS實例,並在選擇與配置為執行左移位操作的第一移位器或第二移位器耦合時,同時選擇附加在MSB端的給定部份和PS實例。
包括輸入電路110的資料序向電路100被配置為產生訊號SeqSel,在操作中,選擇附加在LSB端的部份和PS和與被配置為執行右移位操作的第一移位器或第二移位器耦合時,是與具有LSB到MSB序向的訊號X和Y同時執行。例如,在第一操作模式中,選擇在MSB端附加的部份和PS的實例和與配置為執行左移位操作的第一移位器或第二移位器耦合時,是與具有MSB到LSB序向的訊號X和Y同時執行,例如,在第二操作模式下。
加法器電路被配置為在操作中,以相應的序向順序接收部份和PS的實例,以及從第一移位器或第二移位器輸出的移位資料單元,並且基於部份和PS的實例以及移位資料單元的順序產生內部加總資料單元序列(未在圖1中顯示)。
資料暫存器配置為接收並儲存每一個內部加總資料單元,並將內部加總資料單元(內部和元素)作為訊號OUT輸出到資料匯流排OUTB以及第一回饋路徑和第二回饋路徑。
因此,累加器140被配置為響應於在輸入端141處接收到的訊號SeqSel,依據對應於具有LSB到MSB序向順序的訊號X和Y的部份和PS的實例的序向順序執行第一累加操作,以及根據對應於具有MSB到LSB序向順序的訊號X和Y的部份和PS的實例的序向順序執行第二累加操作。。
如上所述,資料序向電路100被配置為將訊號IN0[1:n]和
IN1[1:n]的連續的(序向的)資料單元中的n位元作為訊號X和Y以交替的序向順序傳輸到乘法器M0和M1,例如在第一操作模式和第二操作模式中,使得連續傳送的資料單元中的鄰近位元與MSB或LSB中的其中一個相同。包括如上所述的累加器140的資料序向電路100因此能夠執行矩陣操作,包括與不以交替序列順序傳輸位元的方法相比之下可降低訊號切換速率和並因此降低功率消耗。
圖2是根據一些實施例的輸入電路200的示意圖。輸入電路200可作為上述關於圖1討論的部分或全部的輸入電路110。
輸入電路200包括訊號產生部分210、資料暫存器R1和R2,以及選擇電路S2和S3。訊號產生部分210包括計數器CTRA和CTRB、反相器INV1和選擇電路S1。在一些實施例中,選擇電路S1-S3也被稱為多工器S1-S3。
在圖2中描繪的實施例中,輸入電路200包括上述配置為資料匯流排的輸入路徑111和113中的每一個,對於n=3的情況,可在其上接收相應的訊號IN0[0:n]和IN1[0:n],對應於每個資料單元總共有4個位元。在一些實施例中,輸入電路200包括以其他方式配置的輸入路徑111和113中的每一個,例如,可接收對應於每資料單元的總數少於或多於四個位元的訊號IN0[0:n]和IN1[0:n]。
資料暫存器R1耦合到輸入路徑111並因此配置為接收訊號IN0[0:n],在圖2中表示為包括位元IN0[0]到IN0[3]的單個資料單元。資料暫存器R1的輸出端(未標示)耦合到選擇電路S2的輸入端(未標示)。
資料暫存器R2耦合到輸入路徑113並因此被配置為接收訊號IN1[0:n],在圖2中表示為包括位元IN1[0]到IN1[3]的單個資料單元。資料暫存器R2的輸出端(未標示)耦合到選擇電路S3的輸入端(未標示)。
在圖2中描繪的實施例中,資料暫存器R1和R2中的每一個包括總共四個資料正反器DFF,對應於每個資料單元IN0[0]到IN0[3]和IN1[0]到IN1[3]的四個位元。每個資料正反器DFF配置為接收時脈訊號(未在圖2中顯示),這樣訊號IN0[0:n]和IN1[0:n]的資料單元的連續的(漸進的)實例(successive instances)被同步鎖存,並且基於時脈訊號輸出到相應的選擇電路S2和S3。在一些實施例中,每個資料正反器DFF都配置為接收上述討論的訊號SeqSel。
計數器CTRA和CTRB中的每一者被配置為基於產生上述的訊號SA或訊號SeqSel中的相應一者來接收時脈訊號。計數器CTRA的輸出端(未標示)與選擇電路S1和反相器INV1中的每個輸入端(未標示)耦合,反相器INV1的輸出端(未標示)與選擇電路S1的輸入端(未標示)耦合。計數器CTRB的輸出端(未標示)與選擇電路S1的輸入端(未標示)輸入端和上述的輸出端116耦合。選擇電路S1的輸出端(未標示)耦合到選擇電路S2和S3中的每一個輸入端(未標示),並且選擇電路S2和S3的輸出端(未標示)耦合到上述的相應的輸出端112和114。
在圖2中描繪的實施例中,計數器CTRA被配置為產生訊號SA,包括具有週期性數值(或循環數值(cyclical values))的序向資料單元,其從訊號IN0[0:n]和IN1[0:n]的每個資料單元中
編號最高的位元遞減到零,例如,從三到零。基於訊號SA,反相器INV1產生包括具有週期性數值的序向資料單元的訊號SAb,週期性數值具有從零遞增到訊號IN0[0:n]和IN1[0:n]的每個資料單元的最高編號的位元,例如從零增加到三。
因此,計數器CTRA和反相器INV1被配置為輸出互補訊號SA和SAb至選擇電路S1,其中序向資料單元具有沿相反方向步進的週期性數值。在一些實施例中,計數器CTRA和反相器INV1以其他方式配置為輸出互補訊號SA,Sab,其中序向資料單元具有以相反方向步進的週期性數值,例如,通過包括配置為產生訊號SA的計數器CTRA,訊號SA包括具有從零往訊號IN0[0:n]和IN1[0:n]的每個資料單元的最高編號的位元遞增的週期性數值的序向資料單元。
計數器CTRB被配置為產生訊號SeqSel,包括在等於訊號IN0[0:n]和IN1[0:n]的每個資料單元的位元數的時脈訊號的週期數中具有低邏輯準位和高邏輯準位。計數器CTRA和CTRB被配置為數值週期的終點(或,數值循環的終點)即為CTRA重新啟動數值週期(循環)的時間,並與訊號SeqSel在低邏輯準位和高邏輯準位之間的轉換同步。
選擇電路S1被配置為響應於訊號SeqSel的交替邏輯準位,將交替的訊號SA或SAb中的其中一者作為訊號SEL(在一些實施例中也稱為選擇訊號SEL)輸出到選擇電路S2和S3中的每一者。響應於訊號SEL,選擇電路S2配置為通過以對應於所選訊號SA和SAb的交替順序依序地(序向地)選擇位元IN0[0]到IN0[3]來產生訊號X,並且選擇電路S3配置為通過以對應於所選
訊號SA和SAb的交替順序依序地選擇位元IN1[0]到IN1[3]來產生訊號Y。
配置為接收訊號SEL並以交替的順序選擇位元的選擇電路的數量在圖2中所描繪的是一個非限制性實施例。在各種實施例中,輸入電路200包括選擇電路S2或S3中的一者,或除了配置為接收訊號SEL的選擇電路S2和S3之外還包括一或多個選擇電路。
通過上述的配置,輸入電路200能夠執行上述的關於輸入電路110和圖1的操作,例如,在第一操作模式和第二操作模式下操作,使得包括輸入電路200的電路能夠實現上述的關於資料序向電路100的優點。
圖3A和3B分別是根據一些實施例的輸入電路200的一部分和相應的操作參數的示意圖。圖3A包括計數器CTRA和CTRB、反相器INV1、選擇電路S1和S2以及資料暫存器R1,每一者都在前述圖2進行了討論。圖3B描繪了時脈訊號CLK和訊號IN0[0:n](描繪為IN0[3:0])、SA、SeqSel、SEL和X中的每一者,且為非限制性實施例,其中n=3對應於每資料單元都具有四個位元的訊號IN0[0:n]。
在圖3B所示的實施例中,訊號IN0[3:0]包括第一資料單元0011,包括對應於時脈訊號CLK的4個週期的4個位元,以及第二資料單元0101,包括對應於時脈訊號CLK的4個週期的4個位元。
計數器CTRA產生具有從11到00遞減順序的週期性數值(循環數值)的訊號SA,並且計數器CTRB產生在低邏輯準位
和高邏輯準位之間交替的訊號SeqSel。選擇電路S1因此產生具有從11到00依序遞減的第一序列值(對應於訊號SA),以及從00到11的依序遞增的第二序列值(對應於訊號SAb)的訊號SEL。
選擇電路S2通過以第一順序選擇訊號IN0[3:0]的第一資料單元0011中的位元產生訊號X的第一資料單元0011,使得訊號X的第一資料單元0011與訊號IN0[3:0]的第一資料單元0011匹配。選擇電路S2通過以第二順序選擇訊號IN0[3:0]的第二資料單元0101中的位元產生訊號X的第二資料單元1010,使得訊號X的第二資料單元1010具有與訊號IN0[3:0]的第二資料單元0101的順序相反的順序。
圖4A和4B是根據一些實施例的累加器400的示意圖。累加器400可作為上面關於圖1討論的部分或全部的累加器140。圖4A描繪了對應於具有第一邏輯準位的訊號SeqSel和具有LSB到MSB序向順序的訊號X和Y中的每一者的累加器400,例如,在第一操作模式下操作,並且圖4B描繪了對應於具有第二邏輯準位的訊號SeqSel和具有MSB到LSB序向順序的訊號X和Y中的每一者的累加器400,例如,在第二操作模式下操作。
累加器400包括選擇電路S4、加法器電路A1和串聯耦合在資料總線PSB和OUTB之間的資料暫存器R3,包括選擇電路S5和耦合在資料匯流排OUTB和加法器電路A1之間的右移位器SHR的第一回饋路徑FB1,以及包括選擇電路S5和耦合在資料匯流排OUTB和加法器電路A5之間的左移位器SHL的第二回饋路徑FB2。
選擇電路S4包括通過資料匯流排PSB耦合到加法器130
的多個輸入端(未標示),並由此配置為接收如上文所述關於加法器130和圖1所討論的資料匯流排PSB上所附加的部份和PS的實例。在圖4A和4B中描繪的實施例中,選擇電路S4被配置為從加法器130接收至少1個額外位元BL和至少1個額外位元BM。在一些實施例中,選擇電路S4以其他方式配置為接收部分或全部的額外位元BL和BM,例如,從選擇電路S4內接收。
選擇電路S4包括與輸入端141偶合的輸入端(未標示),並因此配置為從輸入電路110接收訊號SeqSel。如圖4A所描繪的,選擇電路S4被配置為在操作中通過選擇在LSB端附加具有至少一個額外位元BL的部份和PS的實例來響應於具有第一邏輯準位的訊號SeqSel,額外位元BM中,並且如圖4B所示,通過選擇在MSB端附加至少一個額外位元BM的部份和PS的實例來響應於具有第二邏輯準位的訊號SeqSel。
如在圖4A中所描繪的,選擇電路S4包括耦合到加法器電路A1的多個輸入端(未標示)的多個輸出端(未標示),並且因此被配置為將至少附加一個額外位元BL的部份和PS的選定實例作為資料單元PSL的實例輸出到加法器電路A1,並且,如圖4B所示,將至少附加了一個額外位元BM額外位元BM的部份和PS的選定實例作為資料單元PSM的實例輸出到加法器電路A1。
選擇電路S5包括與輸入端141耦合的輸入端(未標示),因此配置為從輸入電路110接收訊號SeqSel。如圖4A所示,選擇電路S5被配置為在操作中通過在第一回饋路徑FB1中與右移位器SHR耦合來響應於具有第一邏輯準位的訊號SeqSel,並且如圖4B所示,通過在第二回饋路徑FB2中與左移位器SHL耦合來響
應於具有第二邏輯準位的訊號SeqSel。
因此,選擇電路S4和選擇電路S5被配置為在第一回饋路徑FB1中的耦合移位器SHR中同時輸出資料單元PSL的實例,並且,選擇電路S4與選擇電路S5被配置為在第二回饋路徑FB2中的耦合移位器SHL中同時輸出資料單元PSM的實例。
包括輸入電路110的資料序向電路100被配置為產生訊號SeqSel,其中在操作中,選擇電路S4和選擇電路S5輸出資料單元PSL和第一回饋路徑FB1中的耦合移位器SHR的實例,並與具有LSB到MSB的序向順序的訊號X和Y同時執行,例如,在第一操作模式中,並且選擇電路S4和選擇電路S5輸出資料單元PSM和第二回饋路徑FB2中的耦合移位器SHL的實例,並與具有MSB到LSB的序向順序的訊號X和Y同時執行,例如在第二操作模式中。
移位器SHR和SHL中的每一者包括耦合到資料匯流排OUTB的多個輸入端(未標示)和耦合到選擇電路S5的多個輸入端(未標示)的多個輸出端(未標示),並且選擇電路S5包括耦合到加法器電路A1的多個輸入端的多個輸出端(未標示)。
因此,移位器SHR被配置為在操作中接收資料匯流排OUTB上的訊號OUT的實例並對所接收到的實例執行右移位(或,右移)功能,並且將右移的實例作為資料單元DER的實例輸出到選擇電路S5。因此,移位器SHL被配置為在操作中接收資料匯流排OUTB上的訊號OUT的實例,並對接收到的實例執行左移位(或,左移)功能,並且將左移的實例作為資料單元DEL的實例輸出到選擇電路S5。
在選擇電路S5於第一回饋路徑FB1中耦合連接到移位器SHR的期間,選擇電路S5因此可將資料單元DER的實例輸出到加法器電路A1,如圖4A所示,並且在選擇電路S5於第二回饋路徑FB2中耦合連接到移位器SHL的期間,選擇電路S5因此可將資料單元DEL的實例輸出到加法器電路A1,如圖4B所示。
因此,加法器電路A1被配置為在操作中與接收資料單元DER的實例同時接收資料單元PSL的實例,如圖4A所示,並且與接收資料單元DEL的實例同時接收資料單元PSM的實例,如圖4B所示。
加法器電路A1包括與資料暫存器R3的多個輸入端(未標示)耦合的多個輸出端(未標示),並因此配置為產生並將加總資料單元(或,和資料單元)SDE的實例序列等於資料單元PSL和DER的實例之和(例如,在第一操作模式中)或資料單元PSM和DEL的實例之和(例如,在第二操作模式中)輸出到資料暫存器R3。
資料暫存器R3被配置為接收時脈訊號,例如上述關於圖3A和3B的時脈訊號CLK,並且包括耦合到資料匯流排OUTB的多個輸出端(未標示)。因此,資料暫存器R3被配置為根據時脈訊號接收、儲存以及將加總資料單元(instances of sum data element)SDE的實例作為訊號OUT輸出至資料匯流排OUTB以及第一回饋路徑FB1和第二回饋路徑FB2。在各種實施例中,時脈訊號是由輸入電路110接收的一或多個時脈訊號,或者是與輸入電路100接收的一或多個時脈訊號同步的單獨的(分開的(separate))時脈訊號,據此,累加器400的操作與輸入電路110
的操作為同步。
因此,累加器400被配置為在操作中響應於具有第一邏輯準位的訊號SeqSel,基於對應於具有LSB到MSB的序向順序的訊號X和Y的資料單元PSL的實例執行第一累加操作,並且響應於具有第二邏輯準位的訊號SeqSel,基於對應於具有MSB到LSB的序向順序的訊號X和Y的資料單元PSM的實例執行第二累加操作。
通過上述的配置,累加器400能夠執行上述關於累加器140和圖1所討論的矩陣操作,例如在第一操作模式和第二操作模式下操作,使得包括累加器400的電路能夠實現上述的關於資料序向電路100的益處。
圖5是根據一些實施例的操作資料序向電路的方法500的流程圖。方法500可與資料序向電路一起使用,例如上面關於圖1-4B所討論的資料序向電路100。在各種實施例中,方法500包括執行包括部分的或全部的操作510-550的序向(排序)操作和/或執行包括操作510-550的部分的或全部的操作510-55的矩陣操作,將於下文討論。
圖5中描述的方法500的操作順序僅用於說明;方法500的操作能夠以不同於圖5中順序執行。在一些實施例中,除了圖5中描繪的那些操作之外,也可在圖5中描繪的操作之前、之間、期間和/或之後執行。在一些實施例中,方法500的操作是執行CIM操作的方法的子集。
在一些實施例中,在操作510處,在輸入電路處接收包括第一多個資料單元的第一訊號。在一些實施例中,接收第一訊號
包括在輸入電路110接收訊號IN0[0:n],如上面關於圖1-3B所述。
在一些實施例中,在輸入電路110處接收第一訊號包括在輸入電路110處接收第二訊號,第二訊號包括第二多個資料單元。在一些實施例中,在輸入電路110處接收第二訊號包括在輸入電路110處接收訊號IN1[0:n],如上文關於圖1-3B所述。
在操作520處,產生互補訊號,其中序向資料單元具有以反向步進的週期性數值。在一些實施例中,產生互補訊號包括產生訊號SA和SAb,如上文關於圖2-3B所討論。
在一些實施例中,產生互補訊號包括使用第一計數器,例如上面關於圖2-3B討論的計數器CTRA,以產生包括具有從第一多個資料單元的每個資料單元的最高位(最高編號)的位元遞減到零的數值的序向資料單元的互補訊號中的第一個互補訊號,例如,訊號SA,並使用反相器,例如反相器INV1,的序向資料單元,,以產生包括具有從零遞增到第一多個資料單元的每個資料單元的最高位的位元的數值的序向資料單元的互補訊號中的第二個互補訊號,例如,訊號SAb。
在操作530,通過交替地選擇互補訊號中的每一者來產生選擇訊號。在一些實施例中,產生選擇訊號包括產生選擇訊號SEL,如上文關於圖1-3B所討論。
交替地選擇每一個互補訊號包括使用選擇電路,例如上面關於圖2討論的選擇電路S1。
在一些實施例中,選擇訊號是第一選擇訊號,而產生選擇訊號包括產生第二選擇訊號,例如上面關於圖1-4B討論的訊號SeqSel。
在一些實施例中,產生第二選擇訊號包括使用第二計數器,例如上述關於圖2所討論的計數器CTRB,產生第二選擇訊號。在一些實施例中,產生第二選擇訊號包括從輸入電路輸出第二選擇訊號,例如,如上文關於圖1-4B所討論的從輸入電路110輸出訊號SeqSel。
在操作540,響應於選擇訊號,第一多個資料單元中的資料單元中的多個位元是以交替的序向順序輸出。在一些實施例中,輸出第一多個資料單元中的資料單元中的多個位元包括輸出訊號X,如上述關於圖1-4B所討論。
在一些實施例中,輸出第一多個資料單元中的資料單元中的多個位元包括以交替的序向順序輸出第二多個資料單元中的資料單元中的多個位元。在一些實施例中,輸出第二多個資料單元中的資料單元中的多個位元包括輸出訊號Y,如上述關於圖1-4B所討論。
在一些實施例中,輸出第一多個資料單元和/或第二多個資料單元包括將多個位元輸出到一或多個乘法器,例如上述關於圖1-4B討論的乘法器M0和/或M1.
在一些實施例中,在操作550,累加器基於輸入電路以交替的序向順序輸出第一多個資料單元中的資料單元中的多個位元而可用來執行第一累加操作和第二累加操作。在一些實施例中,使用累加器包括使用上述關於圖1-4B討論的累加器140。
在一些實施例中,使用累加器執行第一累加操作包括使用配置為執行右移位操作的第一移位器,例如上述關於圖4A和4B
討論的移位器SHR,並且使用累加器執行第二累加操作包括使用配置為執行左移位操作的第二移位器,例如移位器SHL。
在一些實施例中,使用累加器執行第一累加操作包括在選擇電路以交替的序向順序為LSB到MSB的序向順序的第一序向順序輸出第一多個資料單元中的資料單元中的多個位元,同時執行右移位操作。並且使用累加器執行第二累加操作包括在第一選擇電路以交替的序向順序是MSB到LSB的序向順序的第二序向順序輸出第一多個資料單元中的資料單元中的多個位元,同時執行左移位操作。
通過執行方法500的部分或全部的操作,輸入訊號的序向(連續)資料單元(successive data elements)的位元以交替的序向順序傳輸到乘法器,例如,在第一操作模式和第二操作模式下,使得序向傳輸的資料單元的鄰近位元與MSB或LSB的其中一者相同,而可實現上述關於資料序向電路100的益處。
在一些實施例中,一種電路包括配置為接收包括第一多個資料單元的第一訊號的第一資料暫存器、耦合到第一資料暫存器的第一選擇電路、第一計數器、耦合到第一計數器的的第二選擇電路,以及耦合於第一計數器和第二選擇電路之間的反相器。第一資料暫存器配置為輸出第一多個資料單元中的每個資料單元的多個位元至第一選擇電路,第一計數器和反相器配置為產生互補訊號,其中序向資料單元具有以反向步進的週期性數值,第二選擇電路配置為交替地輸出每個互補訊號作為第一選擇電路的第一選擇訊號,並且第一選擇電路被配置為響應於第一選擇訊號,並以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元。在一
些實施例中,第一計數器被配置為產生互補訊號中的第一個互補訊號,包括具有第一多個資料單元中的每個資料單元中的從最高位的位元值遞減到零的所有數值的序向資料單元,以及反相器被配置為產生互補訊號中的第二個互補訊號,包括具有第一多個資料單元中的每個資料單元中的從零遞增到最高位的位元值的所有數值的序向資料單元。在一些實施例中,第二計數器配置為輸出一第二選擇訊號到第二選擇電路,其中第二選擇電路被配置為響應於具有第一邏輯準位的所述第二選擇訊號而輸出所述互補訊號中的第一個互補訊號作為所述第一選擇訊號,以及響應於所述具有第二邏輯準位的第二選擇訊號而輸出所述互補訊號中的第二個互補訊號作為所述第一選擇訊號。在一些實施例中,第一選擇電路被配置為將第一訊號的資料單元的多個位元輸出到記憶體內運算(CIM)電路的乘法器,以及第二選擇電路被配置為將第二選擇訊號輸出到CIM電路的累加器。在一些實施例中,第一計數器和第二計數器被配置為第二計數器產生與互補訊號的週期性數值的第一計數器重啟週期同步,而在第一邏輯準位和第二邏輯準位之間轉換的第二選擇訊號。在一些實施例中,電路更包括第二資料暫存器,配置為接收包括第二多個資料單元的第二訊號;以及第三選擇電路,耦合到第二資料暫存器,並配置為接收第一選擇訊號,其中第二資料暫存器配置為輸出第二多個資料單元的每個資料單元中的多個位元至第三選擇電路中,並且第三選擇電路配置為響應於第一選擇訊號而以交替的序向順序輸出第二多個資料單元的多個位元。在一些實施例中,第一資料暫存器包括多個正反器,其被配置為依序儲存第一多個資料單元中的每個資料單元所對應的多個
位元。在一些實施例中,第第一多個資料單元中的每個資料單元中的所述多個位元總共包括四個位元。
在一些實施例中,記憶電路包括輸入電路,輸入電路包括第一選擇電路,配置為接收第一選擇訊號;以及,第一計數器和第二計數器,耦合到第二選擇電路,其中第一計數器和第二計數器以及第二選擇電路分別配置為產生第一選擇訊號和第二選擇訊號;第一乘法器,耦合到第一選擇電路;加法器,耦合到第一乘法器;以及累加器,耦合到加法器並配置為接收第二選擇訊號,其中響應於第一選擇訊號,第一選擇電路配置為以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元到第一乘法器,並且響應於第二選擇訊號,累加器配置為基於第一選擇電路以交替的序向順序輸出第一多個資料單元的多個位元以執行第一累加操作和第二累加操作。在一些實施例中,輸入電路還包括第三選擇電路,配置為接收第一選擇訊號和包括第二多個資料單元的第二訊號,記憶電路還包括一個耦合到加法器的第二乘法器,響應於第一選擇訊號,第三選擇電路配置為以交替的序向順序輸出第二多個資料單元的資料單元的多個位元到第二乘法器,並且累加器配置為進一步基於第三選擇電路而以交替的序向順序輸出第二多個資料單元的多個位元來執行第一累加操作和第二累加操作。在一些實施例中,記憶電路更包括配置為儲存第一儲存資料單元和第二儲存資料單元的儲存裝置,其中第一乘法器配置為通過將第一儲存資料單元與第一多個資料單元中的每一個位元相乘,以輸出第一乘積資料單元至加法器,第二乘法器配置為通過將第二儲存資料單元與第二多個資料單元中的每一個位元相乘,以輸出第二乘積
資料單元至加法器,並且加法器配置為通過將對應的所述第一乘積資料單元和第二乘積資料單元相加,以將部份和資料單元輸出到累加器。在一些實施例中,加法器被配置為進一步輸出每個在部份和資料單元的最低有效位元(LSB)方向上具有低邏輯準位的第一位元,以及在部份和資料單元的最高有效位元(MSB)方向上具有低邏輯準位的第二位元。在一些實施例中,累加器包括第四選擇電路,其被配置為響應於第二選擇訊號,選擇在第一累加操作中附加有第一位元並且在第二累加操作中附加有第二位元的部份和資料單元。在一些實施例中,第一計數器和反相器配置為產生互補訊號,其中序向資料單元具有以反向步進的週期性數值,第二計數器配置為產生包括交替的邏輯準位的第二選擇訊號,並且第二選擇電路配置為輸出每個互補訊號作為響應於第二選擇訊號的第一選擇訊號。在一些實施例中,第一移位器被配置為執行右移位操作;以及第二移位器,被配置為執行左移位操作,其中累加器配置為在第一累加操作中將第一移位器耦合到第一回饋路徑,並且在第二累加操作中將第二移位器耦合到第二回饋路徑。在一些實施例中,累加器被配置為執行包括右移位操作的第一累加操作,並且第一選擇電路以交替的序向順序的第一序向順序作為由LSB到MSB的序向順序同時輸出第一多個資料單元中的資料單元的多個位元,以及執行包括左移位操作的第二累加操作,並且第一選擇電路以交替的序向順序的第一序向順序作為由MSB到LSB的序向順序同時輸出第一多個資料單元中的資料單元的多個位元。
在一些實施例中,一種記憶電路的操作方法包括在輸入電路接收第一訊號,第一訊號包括第一多個資料單元;產生互補訊號,
其中序向資料單元具有以反向步進的週期性數值;通過交替選擇互補訊號中的每個互補訊號來產生選擇訊號;以及響應於選擇訊號而以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元。在一些實施例中,在輸入電路接收第一訊號包括在輸入電路處接收第二訊號,第二訊號包括第二多個資料單元,以及輸出所述第一多個資料單元中的資料單元的多個位元包括以交替的序向順序輸出第二多個資料單元中的資料單元的多個位元。在一些實施例中,產生互補訊號包括使用計數器產生互補訊號中的第一個互補訊號,包括具有第一多個資料單元中的每個資料單元中的從最高位的位元值遞減到零的所有數值的序向資料單元;以及使用反相器產生互補訊號中的第二個互補訊號,包括具有第一多個資料單元中的每個資料單元中的從零遞增到最高位的位元值的所有數值的序向資料單元。在一些實施例中,方法包括使用累加器並基於輸入電路執行第一累加操作和第二累加操作,並以交替的序向順序輸出第一多個資料單元中的資料單元的多個位元。
本公開概述了各種實施例,以使所屬領域中的技術人員可更好地理解本公開的各個方面。所屬領域中的技術人員應理解,他們可容易地使用本公開作為設計或修改其他製程及結構的基礎來施行與本文中所介紹的實施例相同的目的和/或實現與本文中所介紹的實施例相同的優點。所屬領域中的技術人員還應認識到,這些等效構造並不背離本公開的精神及範圍,而且他們可在不背離本公開的精神及範圍的條件下對其作出各種改變、代替及變更。
100:資料序向電路
110:輸入電路
111、113:輸入路徑
112、114、116:輸出端
120:儲存元件
130:加法器
140:累加器
141:輸入端
P0、P1、W0、W1:資料單元
IN0、IN1、OUT、X、Y:訊號
M0、M1:乘法器
OUTB、PSB:資料匯流排
PS:部份和
Claims (10)
- 一種輸入電路,包括:第一資料暫存器,配置為接收包括第一多個資料單元的第一訊號;第一選擇電路,耦合到所述第一資料暫存器;第一計數器;第二選擇電路,耦合到所述第一計數器;以及反相器,耦合於所述第一計數器和所述第二選擇電路之間,其中,所述第一資料暫存器配置為輸出所述第一多個資料單元中的每個資料單元的多個位元至所述第一選擇電路,所述第一計數器和所述反相器被配置為產生互補訊號,其中序向資料單元具有以反向步進的週期性數值,所述第二選擇電路配置為交替地輸出每個所述互補訊號作為所述第一選擇電路的一第一選擇訊號,並且所述第一選擇電路被配置為響應於所述第一選擇訊號,並以交替的序向順序輸出所述第一多個資料單元中的所述資料單元的所述多個位元。
- 如請求項1所述的輸入電路,其中所述第一計數器被配置為產生所述互補訊號中的第一個互補訊號,包括具有所述第一多個資料單元中的每個資料單元中的從最高位的位元值遞減到零的所有數值的所述序向資料單元,以及所述反相器被配置為產生所述互補訊號中的第二個互補訊號,包括具有所述第一多個資料單元中的每個資料單元中的從零 遞增到所述最高位的位元值的所有數值的所述序向資料單元。
- 如請求項1所述的輸入電路,更包括:第二計數器,配置為輸出一第二選擇訊號到所述第二選擇電路,其中所述第二選擇電路被配置為:響應於具有第一邏輯準位的所述第二選擇訊號而輸出所述互補訊號中的第一個互補訊號作為所述第一選擇訊號,以及響應於所述具有第二邏輯準位的第二選擇訊號而輸出所述互補訊號中的第二個互補訊號作為所述第一選擇訊號。
- 如請求項3所述的輸入電路,其中所述第一計數器和所述第二計數器被配置為:所述第二計數器產生與所述互補訊號的所述週期性數值的所述第一計數器重啟週期同步,而在所述第一邏輯準位和所述第二邏輯準位之間轉換的所述第二選擇訊號。
- 一種記憶電路包括:輸入電路,包括:第一選擇電路,配置為接收第一選擇訊號和包括第一多個資料單元的第一訊號;以及第一計數器和第二計數器,耦合到第二選擇電路,其中所述第一計數器和所述第二計數器以及所述第二選擇電路分別配置為產生所述第一選擇訊號和第二選擇訊號;第一乘法器,耦合到所述第一選擇電路;加法器,耦合到所述第一乘法器;以及累加器,耦合到所述加法器並配置為接收所述第二選擇訊號,其中 響應於所述第一選擇訊號,所述第一選擇電路配置為以交替的序向順序輸出所述第一多個資料單元中的所述資料單元的多個位元到所述第一乘法器,並且響應於所述第二選擇訊號,所述累加器配置為基於所述第一選擇電路以所述交替的序向順序輸出所述第一多個資料單元的所述多個位元以執行第一累加操作和第二累加操作。
- 如請求項5所述的記憶電路,其中所述輸入電路還包括第三選擇電路,配置為接收所述第一選擇訊號和包括第二多個資料單元的第二訊號,所述記憶電路還包括一個耦合到所述加法器的第二乘法器,響應於所述第一選擇訊號,所述第三選擇電路配置為以所述交替的序向順序輸出所述第二多個資料單元的所述資料單元的多個位元到所述第二乘法器,並且所述累加器配置為進一步基於所述第三選擇電路而以所述交替的序向順序輸出所述第二多個資料單元的所述多個位元來執行所述第一累加操作和第二累加操作。
- 如請求項5所述的記憶電路,其中所述累加器包括:第一移位器,配置為執行右移位操作;以及第二移位器,配置為執行左移位操作,其中所述累加器配置為在所述第一累加操作中將所述第一移位器耦合到第一回饋路徑,並且在所述第二累加操作中將所述第二移位器耦合到第二回饋路徑。
- 如請求項7所述的記憶電路,其中所述累加器被配置為: 執行包括右移位操作的所述第一累加操作,並且所述第一選擇電路以所述交替的序向順序的第一序向順序作為由LSB到MSB的序向順序同時輸出所述第一多個資料單元中的所述資料單元的所述多個位元,以及執行包括左移位操作的所述第二累加操作,並且所述第一選擇電路以所述交替的序向順序的第一序向順序作為由MSB到LSB的序向順序同時輸出所述第一多個資料單元中的所述資料單元的所述多個位元。
- 一種記憶電路的操作方法,所述方法包括:在輸入電路接收第一訊號,所述第一訊號包括第一多個資料單元;產生互補訊號,其中序向資料單元具有以反向步進的週期性數值;通過交替選擇所述互補訊號中的每個互補訊號來產生選擇訊號;以及響應於所述選擇訊號而以交替的序向順序輸出所述第一多個資料單元中的所述資料單元的所述多個位元。
- 如請求項9所述的方法,更包括:使用累加器並基於所述輸入電路執行第一累加操作和第二累加操作,並以所述交替的序向順序輸出所述第一多個資料單元中的所述資料單元的所述多個位元。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163286324P | 2021-12-06 | 2021-12-06 | |
US63/286,324 | 2021-12-06 | ||
US17/729,692 | 2022-04-26 | ||
US17/729,692 US11853596B2 (en) | 2021-12-06 | 2022-04-26 | Data sequencing circuit and method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202324411A TW202324411A (zh) | 2023-06-16 |
TWI844086B true TWI844086B (zh) | 2024-06-01 |
Family
ID=86382039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111133140A TWI844086B (zh) | 2021-12-06 | 2022-09-01 | 輸入電路、記憶電路及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11853596B2 (zh) |
KR (1) | KR20230085057A (zh) |
CN (1) | CN115910151A (zh) |
DE (1) | DE102022110841A1 (zh) |
TW (1) | TWI844086B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206555A1 (en) * | 2003-10-16 | 2006-09-14 | Canon Kabushiki Kaisha | Operation circuit and operation control method thereof |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
US20200174749A1 (en) * | 2018-12-03 | 2020-06-04 | Samsung Electronics Co., Ltd. | Semiconductor memory device employing processing in memory (pim) and method of operating the semiconductor memory device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2907877A (en) * | 1954-05-18 | 1959-10-06 | Hughes Aircraft Co | Algebraic magnitude comparators |
CA2287034A1 (en) * | 1998-12-03 | 2000-06-03 | Lucent Technologies, Inc. | A memory operated in a modified ping-pong mode |
-
2022
- 2022-04-26 US US17/729,692 patent/US11853596B2/en active Active
- 2022-05-03 DE DE102022110841.4A patent/DE102022110841A1/de active Pending
- 2022-06-23 KR KR1020220076902A patent/KR20230085057A/ko unknown
- 2022-07-14 CN CN202210834518.XA patent/CN115910151A/zh active Pending
- 2022-09-01 TW TW111133140A patent/TWI844086B/zh active
-
2023
- 2023-11-30 US US18/524,587 patent/US20240094943A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206555A1 (en) * | 2003-10-16 | 2006-09-14 | Canon Kabushiki Kaisha | Operation circuit and operation control method thereof |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
US20200174749A1 (en) * | 2018-12-03 | 2020-06-04 | Samsung Electronics Co., Ltd. | Semiconductor memory device employing processing in memory (pim) and method of operating the semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
DE102022110841A1 (de) | 2023-06-07 |
TW202324411A (zh) | 2023-06-16 |
US20240094943A1 (en) | 2024-03-21 |
KR20230085057A (ko) | 2023-06-13 |
US20230176770A1 (en) | 2023-06-08 |
CN115910151A (zh) | 2023-04-04 |
US11853596B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Haj-Ali et al. | Efficient algorithms for in-memory fixed point multiplication using magic | |
CN110597484B (zh) | 基于存内计算的多比特全加器、多比特全加运算控制方法 | |
TW202001884A (zh) | 記憶體計算電路 | |
TWI771014B (zh) | 記憶體電路及其操作方法 | |
Kim et al. | Memristive stateful logic for edge Boolean computers | |
CN108182959B (zh) | 基于阻变器件交叉阵列结构实现逻辑计算的方法 | |
US9933998B2 (en) | Methods and apparatuses for performing multiplication | |
CN114675805A (zh) | 存储器中计算累加器 | |
CN114974337B (zh) | 一种基于自旋磁随机存储器的时间域存内计算电路 | |
Yavits et al. | Sparse matrix multiplication on CAM based accelerator | |
Fernandez et al. | ReRAM-based ratioed combinational circuit design: a solution for in-memory computing | |
Lalchhandama et al. | In-memory computing on resistive ram systems using majority operation | |
TWI844086B (zh) | 輸入電路、記憶電路及其操作方法 | |
CN113658625A (zh) | 基于1t1r阵列的可重构状态逻辑操作电路及方法 | |
CN105264775A (zh) | 基于阻变器件的多位全加器及其操作方法 | |
Monga et al. | A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM | |
CN112951290B (zh) | 一种基于非易失性随机存储器的内存计算电路及装置 | |
Reuben et al. | Carry-free addition in resistive ram array: n-bit addition in 22 memory cycles | |
CN108109655B (zh) | 基于mig逻辑的rram迭代乘法器电路及实现方法 | |
CN114721622B (zh) | 基于忆阻器的加法器、驱动方法及电子设备 | |
US20230418557A1 (en) | Data computation circuit and method | |
Mandal et al. | ReRAM-based in-memory computation of galois field arithmetic | |
US20230418600A1 (en) | Non-volatile memory die with latch-based multiply-accumulate components | |
CN116126285A (zh) | 计算装置和操作计算装置的方法 | |
Goswami et al. | Single Cycle XOR (SCXOR) and Stateful n-bit Parallel Adder Implementation Using 2D RRAM Crossbar |