[go: up one dir, main page]

TWI744728B - 以sram為基礎的記憶體系統中處理 - Google Patents

以sram為基礎的記憶體系統中處理 Download PDF

Info

Publication number
TWI744728B
TWI744728B TW108143523A TW108143523A TWI744728B TW I744728 B TWI744728 B TW I744728B TW 108143523 A TW108143523 A TW 108143523A TW 108143523 A TW108143523 A TW 108143523A TW I744728 B TWI744728 B TW I744728B
Authority
TW
Taiwan
Prior art keywords
memory cell
item
group
patent application
memory
Prior art date
Application number
TW108143523A
Other languages
English (en)
Other versions
TW202044016A (zh
Inventor
聖雅 張
湯瑪斯 陳
雅各 克里斯多福 波提莫
宋石鳴
Original Assignee
密西根大學董事會
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 密西根大學董事會 filed Critical 密西根大學董事會
Publication of TW202044016A publication Critical patent/TW202044016A/zh
Application granted granted Critical
Publication of TWI744728B publication Critical patent/TWI744728B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Static Random-Access Memory (AREA)

Abstract

許多信號處理、機器學習以及科學計算應用程式都需要大量的乘積累加(Multiply-accumulate,MAC)運算。這種類型的運算對計算以及記憶體都要求很高。記憶體中處理已作為一種新技術提出,可以就地在大陣列的資料上進行直接計算,從而消除了昂貴的資料移動費用(overhead)。為了致能平行的多位元MAC運算,同時應用了寬度以及位準調變記憶體字元線。為了提高性能並提供對處理電壓-溫度變化的容忍度,使用了一個延遲鎖定迴路來生成用於驅動記憶體字元線的精細單位脈衝,並使用一個雙斜坡單斜率類比數位轉換器(Analog-to-digital converter,ADC)來轉換位元線輸出。該概念的原型是在由四個320×64計算靜態隨機存取記憶體(Static random-access memory,SRAM)所組成的180nm的互補式金氧半導體(Complementary Metal-Oxide-Semiconductor,CMOS)測試晶片所製作的,每個晶片都支援128×的平行的5b×5b的MAC以及32個5b輸出ADC,且在200MHz時功耗為16.6mW。

Description

以SRAM為基礎的記憶體系統中處理
【政府條款】
本發明是在美國國防部、國防高等研究計劃署授予HR0011-17-2-0018的政府支持下所完成的。政府在本發明中具有相當的權利。
本公開是關於記憶體中電腦應用程式以及記憶體系統設計中以SRAM為基礎的處理。
許多科學計算應用程式需要高精度算術運算,特別是乘積累加運算。一個很好的例子是偏微分方程(Partial differential equations,PDEs)的解法。PDE描述了許多物理現象,例如熱以及流體動力學。大多數的PDE是進行數值求解,首先透過以一網格來量化解空間,然後使用Jacobi方法疊代地精煉求解。
高精度PDE求解需要細網格以及很高的數值精度,從而導致需要處理、移動以及儲存大量資料。此外,PDE求解器通常需要數千次疊代才能收斂。雖然已經有提出硬體的PDE求解器,但是由於難以提供高計算密度以及高記憶體頻寬,因此要擴展加速器來支持實際問題將是一個挑戰。
近來,已經提出了記憶體中處理(Process in memory,PIM),也稱為記憶體中計算的一種新技術,其直接在記憶體中就地對大陣列的資料進行計算,以消除昂貴的資料移動費用。藉由克服記憶體牆,PIM在涉及平行乘積累加(MAC)運算的任務中,例如分類以及神經網路,具有同時實現高性能以及高效率的潛力。
以SRAM為基礎的PIM設計,依賴於SRAM陣列的位準及/或寬度調變的字元線來編碼乘數,並且平行啟動多個字元線。SRAM單元 在位元線放電時的電流代表乘積,且每條位元線上的總電流代表乘積的總和。或者,可以對位元線進行調變以對乘數進行編碼,然後將位元線合併以產生乘積的總和。
目前以SRAM為基礎的PIM設計,受到SRAM的二進制儲存裝置以及多位類比數位轉換費用的限制。部分的設計僅支援儲存在SRAM中的二進制被乘數;有些設計則選擇有限的輸出精度以及頻寬。為了消除對多位ADC的需求,一些設計將輸出量化為1b。為了減少ADC的數量,有些設計針對圓錐結構中的計算量身定制,在最終輸出中僅需要一個或少量的ADC。雖然上述這些方法已經有成功演示了,但不適用於需要疊代的多位運算以及在每次疊代中求解要更新的PDE求解器。
因此,期望在記憶體系統中實現以SRAM為基礎、支援對多位被乘數以及乘數的乘積累加運算的處理,並提供足夠數量的低成本類比數位轉換器以數位化其所有輸出。
本部分提供與本公開有關的背景資訊,但不一定要是習知技術。
本部分提供了本公開的總體概述,而不是將全部範圍或所有特徵完整公開。
本公開提供一種系統,用於對二進制數執行乘積累加運算。該系統包括排列成行及列的一記憶體單元陣列,使得陣列的每一列中的記憶體單元透過一相應的字元線互連,並且陣列的每一行透過一相應的位元線互連。一被乘數是一二進制數,該二進制數是由多位元所組成且在陣列中跨一記憶體單元群組儲存,以使二進制數中每個位元值儲存在記憶體單元群組中不同的一記憶體單元中。一給定記憶體單元群組中的每個記憶體單元,配置為接收用於指示一乘數的一輸入信號,以將乘數與儲存在給定記憶體單元中的位元值的乘積,輸出到給定記憶體單元的相應位元線上,其中使用寬度調變將乘數的數值編碼在輸入信號中。一驅動器電路,電性連接至一給定記憶體單元群組中的每個字元線,並以一組電壓驅動字元線的方式操作,其中電壓的大小會產生一個單元放電電流,該電流與儲存在相應記憶體 單元中的有效位元成比例。
該系統更包含一組輸入開關,該組輸入開關置於該驅動器電路與該給定記憶體單元群組之間。該組輸入開關中的每個輸入開關配置為接收該輸入信號,並持續一段時間開啟輸入開關,該段時間對應乘數在輸入信號上編碼的數值,從而利用驅動器電路提供的一組電壓來驅動用於給定群組的字元線。
在一具體實施例中,每個記憶體單元更定義為靜態隨機存取記憶體。具體而言,記憶體單元陣列中的每個記憶體單元,包含堆疊排列的一對存取電晶體以及配置為儲存一位元值的一儲存電路,使得通過該對存取電晶體所汲取的電流的大小由相應字元線上的電壓大小以及儲存在儲存電路中的位元值所確定。該對存取電晶體中的一存取電晶體的一閘極端電性耦合至相應的字元線,並且該對存取電晶體中的另一存取電晶體的一閘極端電性耦合至儲存電路。
在一些具體實施利中,系統配置為使用一殘差形式來求解偏微分方程。
根據本文提供的描述,很顯然地存在對其他領域的適用性。在發明內容中的描述以及特定示例僅是為了例示的目的,並不旨在限制本公開的範圍。
20:系統
21:記憶體單元
22:驅動器電路
23:輸入開關
24:字元線
25:位元線
31:SRAM陣列
32:SRAM陣列
33:電流鏡
34:群組解碼器
36:延遲鎖定迴路(DLL)電路
37:合併及選擇多工器
38:類比數位轉換器(ADC)
41:SRAM單元群組
42:讀取存取電晶體;存取電晶體
43:讀取存取電晶體;存取電晶體
44:儲存電路
50:延遲鎖定迴路(DLL)
51:電壓控制的延遲線
52:相位檢測器
本文所描述的圖式的目的僅在於例示所選的具體實施例,而不是所有可能的實現方式,並且無意限制本公開的範圍。
第一A圖至第一C圖是描繪PDE映射方法的示意圖:僅細網格、在粗網格上具有殘差的多網格,以及在兩種網格上均具有殘差的多網格;
第二圖是描繪一系統的示意圖,該系統用於執行涉及多位被乘數以及乘數的乘積累加運算;
第三圖為以折疊結構表示兩個320×32的SRAM陣列的一示例系統架構的方塊圖;
第四圖是例示用於MAC運算的一群組讀取的示意圖;
第五圖是用於字元線脈衝產生的一示例延遲鎖定迴路(Delay-locked loop,DLL)設計的示意圖;
第六圖是用於位元線讀出的5位元雙斜坡單斜率ADC設計的示意圖;
第七圖是示出5b多網格與單網格基線實施方案相比的收斂性的圖表;以及
第八圖是示出所提出的系統的性能以及能源效率的圖表。
遍及圖式中的若干視圖,相應的參考編號指示相應的部分。
現在將參考附圖更全面地描述示例具體實施例。
在不失一般性的情況下,帕松方程式的解用於解釋PDE求解器設計。帕松方程式在實際應用中廣泛使用。二維帕松方程式在(1)中描述。
Figure 108143523-A0202-12-0004-2
其中給定b(x,y)並尋求u(x,y)。為了求解帕松方程式,可以先使用有限差分法將PDE沿x以及y離散為步長為△x以及△y的網格,從而生成具有(2)所示形式的方程式系統。
Figure 108143523-A0202-12-0004-1
其中u i-1,j 表示在網格位置(i-1,j)的u值,u i+1,j 是在(i+1,j)的u值,依此類推。
形式(2)的方程式可以以矩陣形式Au=b來描寫(請注意,A是一個稀疏矩陣),可以使用等式(3)中的Jacobi疊代來求解。
u ( n+1)= Ru ( n )- b, (3)
其中R=A-I,它稱為模板矩陣(stencil matrix),且b在疊代過程中是一個常數。請注意,R也是一個稀疏矩陣。
如第一A圖所示,為了達到精確的解,在實現Jacobi方法時需要細步長的細網格。但是,細網格會導致大量資料,並且收斂速度會相對較慢。為了加快收斂速度,多網格方法除了如第一B圖所示之細網格之外還引入了粗網格。透過將粗網格疊代與細網格疊代交錯,可以減少低頻誤差,從而加快收斂速度。
如方程式(4)所述並且在第一B圖中以圖形方式例示,為了從細網格過渡到粗網格,施加限制以將殘差(residual)r投影到粗網格。要從粗網格過渡回到細網格,可應用內插值來將e投影到細網格,以用於更新u
r=b-Au (n)
Ae=restrict(r) (4)
u (n+1)=u (n)+interpolate( e )
粗網格計算使用方程式(5)的Jacobi疊代來求解誤差項e
e (n+1) =Re (n)- s , (5)
其中R是模板矩陣,而s是受限制的r。由於粗網格計算是在誤差上運行,因此降低了所需的數值精度。透過適當的數值窗(numerical windowing)並使用更多的疊代,可以將粗網格計算的精度降低到5b或更低。在本公開中,殘差方法被進一步擴展到細網格計算以將其精度降低到5b或更低,如第一C圖所示。細網格以及粗網格計算都執行Jacobi疊代。
這種低精度殘差方法使得可以將方程式(5)中的核心計算Re (n)映射到計算SRAM。模板矩陣R為稀疏的,使其儲存在SRAM中的效率極低。取而代之的是,可以將誤差e儲存在SRAM中,每個5b值儲存在連續列的5個單元中,並且將5b模板權重作為字元線脈衝施加到SRAM。MAC輸出量化為5b。
在典型的PIM設計中,同時啟動記憶體的所有列以釋放全部平行性。但是,在一PDE求解器中,R是稀疏的,因此啟動所有列是浪費的。因此,一次一個只能應用一組非零模板項目。例如,在求解方程式(2) 中的二維帕松方程式時,同時應用了四個模板項目。啟動記憶體列的子集也會降低位元線輸出的精度,僅需要5b輸出即可滿足PDE求解器所需的高精度。
第二圖描繪了根據本公開的用於對多位二進制數執行乘積累加運算的系統20的一部分。系統20通常包括:排列成行及列的記憶體單元21的一陣列,用於驅動將記憶體單元互連的字元線的一驅動器電路22;以及一組輸入開關23,其置於驅動器電路與記憶體單元之間。陣列的每一列中的記憶體單元透過各自的字元線24互連;然而,陣列的每一行中的記憶體單元透過各自的位元線25互連。在示例具體實施例中,每個記憶體單元更定義為靜態隨機存取記憶體(SRAM),儘管本公開也考量其他類型的記憶體單元。
對於由多位元組成的二進制數,將記憶體單元分組為記憶體單元群組,使得二進制數中的每個位元值儲存在記憶體單元群組內的不同記憶體單元中。例如,將5位元二進制數中每個位元值儲存在一群組的5個相鄰列的陣列中,其中最高有效位的數值儲存在群組頂部列的記憶體單元中,並且最低有效位的數值儲存在群組的底部列的記憶體單元中,如第二圖所示。藉此,乘積累加運算的被乘數是一個由多個位元組成的二進制數,並且在陣列中跨一記憶體單元群組儲存。容易理解的是,給定的一組記憶體單元中的列數可以或多或少地取決於二進制數中的位元數。
驅動器電路22電性連接至一給定記憶體單元群組中的每條字元線24,並且操作以一電壓驅動字元線。即,每一記憶體單元群組有一個驅動器電路。更具體地說,用於驅動一給定字元線的電壓的大小對應於儲存在相應記憶體單元中的有效位元。在示例具體實施例中,驅動器電路22可以實現為一電流鏡,該電流鏡具有用於記憶體單元群組中的每個字元線的一級(stage)。電流鏡產生電壓以驅動底部單元的字元線到頂部單元,以對應於各個有效位元提供1×、2×、4×、8×以及16×位元線放電電流。藉由本公開還可預想到其他類型的驅動器電路。
從第二圖中可見,一組輸入開關23置於驅動器電路22以及一給定記憶體單元群組之間。該組輸入開關23中的每個輸入開關配置為 接收一輸入信號。在示例具體實施例中,輸入信號表示乘數,並且乘數的數值使用寬度調變編碼在輸入信號中。假設使用4位元的二進制乘數,輸入信號中的每個脈衝具有從零(0)到十五(15)單位寬度中選擇的一寬度。輸入開關對應於脈衝寬度(即,在輸入信號上編碼的乘數的數值)持續一段時間開啟,從而利用驅動器電路提供的電壓來驅動相應的字元線。取決於應用的對象,應當理解乘數可以包括更多或更少的位元數。
在運算中,一給定記憶體單元群組中的每個記憶體單元配置為接收指示一乘數的一輸入信號。記憶體單元依次將乘數與儲存在給定記憶體單元中的位元值的乘積,輸出到耦合於一給定記憶體單元的相應位元線上。藉此,位元線上的電流的大小對應於乘數與儲存在給定記憶體單元群組中的二進制數的數值的乘積。應當注意的是,有效位元由用於驅動給定字元線的電壓的大小施加。
在一個示例具體實施例中,以四(4)個計算SRAM(compute-SRAM)為基礎,在180nm的CMOS中設計了一原型PDE求解器晶片。每個計算SRAM是一個320×64 8T SRAM陣列,並帶有週邊。四個計算SRAM可以用於計算四個獨立的高達64×64(5b網格值)的網格,或者可以將它們結合起來以支援高達127×127(5b網格值)的一網格。在此具體實施例中,儘管也可以使用更多的位元,但是精度可以在1b至5b之間配置。一緩衝區添加到每個計算SRAM,以在疊代之間轉送網格值。偏移量減法(offset subtraction)是在每個計算SRAM的輸出上執行,並使用一個單獨的記憶體來儲存偏移量s。晶片可以包含更多或更少的計算SRAM。同樣,每個SRAM陣列的大小可以變化。
請參考第三圖,320×64的計算SRAM是由兩個320×32 SRAM陣列31、32以折疊結構所製成。在180nm的CMOS中,計算SRAM佔0.467mm 2且時脈頻率為200MHz。它支援兩種模式:用於正常記憶體存取的單一讀/寫模式,以及用於MAC運算的一群組讀取模式。在群組讀取模式中,多達20列(即,四個5b群組)由群組解碼器34平行選擇。WL的5b寬度調變由延遲鎖定迴路(DLL)電路36所控制,並且5b位準調變透過電流鏡33所實現。合併及選擇多工器37允許部分乘積的類比加總。 32個合併的位元線(Bitlines,BLs)由32個5b類比數位轉換器(ADC)38所數位化。
第四圖進一步例示群組讀取模式,示出了用於MAC運算的四個模板項目(R 1,R 2,R 3,R 4),從SRAM的兩側施加到儲存在SRAM陣列中的20列內的四個誤差向量(e 1,e 2,e 3,e 4)。5b誤差值跨5個SRAM單元儲存,5個SRAM單元包括一SRAM單元群組41。MAC運算用以下方式成組進行:1)群組解碼器開啟對5個SRAM列群組的存取;2)藉由5b模板項目選擇字元線脈衝寬度(Pulse width,PW);3)電流鏡向一群組的5條字元線提供電壓,以實現1×、2×、4×、8×以及16×放電電流,以類比讀出5b誤差值;以及4)模板項目以及誤差值之間的乘積累積在位元線上。在此示例中,最多同時啟動4個單元群組,以在計算SRAM中平行啟用128個5b×5b的MAC。可以理解的是,可以啟動更多或更少的群組。
進一步為驅動器電路22以及記憶體單元21提供更多細節說明。在此示例具體實施例中,驅動器電路22由電流鏡實現。每個級都鏡像參考電流。透過對位元單元複本進行1×、2×、4×、8×以及16×大小調整,驅動器的每一級都會生成適當的電壓來驅動相應的字元線,使得群組中從底部到頂部的單元提供1×、2×、4×、8×以及16×的放電電流。當輸入信號使輸入開關23偏壓時,電壓被施加到記憶體單元21,其中電壓的大小對應於儲存在記憶體單元21中的有效位元。
記憶體單元21可以包括以堆疊排列的一對讀取存取電晶體42、43,讀取存取電晶體42、43電性耦合到一儲存電路44,其中儲存電路44配置為儲存一位元值。在此示例具體實施例中,儲存電路44更定義為例如具有常規6T排列的靜態隨機存取記憶體。該對存取電晶體中的一個存取電晶體42的一閘極端電性耦合至字元線,而另一個存取電晶體43的閘極端電性耦合至儲存電路。
在運算期間,通過該對存取電晶體42、43所汲取的電流的大小由相應字元線上的電壓大小以及儲存在儲存電路44中的位元值所確定。當儲存的位元值為零,則較下方的存取電晶體關閉,並且沒有電流通過該對存取電晶體汲取。相反地,當儲存的位元值為1時,較下方的存取電晶體開 啟,並且電流通過該對存取電晶體汲取。此外,電流的大小由施加到較上方的存取電晶體的閘極端的電壓大小所控制。藉此,在位元線上產生一單元放電電流的電壓的大小,與儲存在相應記憶體單元中的有效位元成比例。位元線上的電流大小表示乘數與儲存在記憶體單元中的位元值的乘積。在本示例中,位元線電壓下降,使得位元線上的電流大小反轉以產生乘積。可以預見的是,該反轉可以嵌入到ADC中或在數位化之後。
在一個具體實施例中,可以使用一個時脈週期,例如5ns作為單位脈衝寬度,使得5b字元線脈衝將花費32個時脈週期或160ns。為了在滿足合理的脈衝分辨率的同時提高性能,還可以使用一部分時脈週期,例如625ps或5ns時脈週期的第1/8作為單位脈衝寬度,因此5b字元線脈衝僅需20ns。為了確保良好地控制脈衝寬度,可以設計一個延遲鎖定迴路(DLL)電路來生成具有一段持續時間的脈衝,該段持續時間為一參考時鐘的時脈週期的一小部分。請參考第五圖,DLL 50在控制迴路中使用8級電壓控制的一延遲線51來產生一5ns時脈週期的8個相位。透過使用一相位檢測器52追蹤200MHz的參考時鐘,以連續地調整相位,並且透過延遲線的控制電壓來校正誤差。DLL在180nm原型設計中佔1,500μm 2,並消耗950μW。在製程、電壓及溫度(Process-voltage-temperature,PVT)變化的情況下,它為PW單元提供了12ps的最大追蹤誤差,比一開路方法更強大。本實現方式僅是示例性的,並且本公開設想了用於DLL的其他設計。
在一個具體實施例中,記憶體單元陣列中的每個位元線電性耦合至類比數位轉換器(ADC),以對位元線上的類比加總進行數位化。在一些具體實施例中,ADC可以電性耦合至一個以上的位元線,從而數位化跨位元線的電流總和。在任何情況下,ADC較佳是小型的以及具高能源效率,以避免成為設計的瓶頸。因此,排除了快閃記憶體或SAR架構。取而代之的是,可以選擇一種斜坡ADC,該ADC由一個斜坡參考以及一個由所有行共享的一計數器,以及每行一個比較器以及閂鎖組成。斜坡架構最大程度地減少了面積以及能量,但是一5b轉換需要32個時間步長。
從第六圖可見,為了提高轉換速度,可以採用一雙斜坡單斜率(Dual-ramp single-slope,DRSS)架構來進行2b粗斜坡比較,然後進行 3b細斜坡比較。位元線電壓是第一個與2b粗斜坡比較以獲得2b MSB,然後再選擇4個3b細斜坡之一進行比較以獲得3b LSB。雙斜坡方法將轉換時間減少到22+23=12個時間步長,比一串聯轉換架構更快。
在實現DRSS ADC時,一中央電路由32行共享,並且它由一電阻DAC產生兩個斜坡。一小型行電路由一前置放大器,跟著一再生比較器以及閂鎖組成。在原型設計中,計算SRAM中的32個ADC佔用0.044m2,在200MHz時轉換耗費8.91mW。在PVT變化的情況下,ADC的差分非線性(Differential nonlinearity,DNL)保持在0.5b以下,以確保即使不進行任何校準也能實現準確的5b轉換。
作為概念證明,製造並測試了180nm 11.0mm 2的一PDE求解器測試晶片。該晶片由一個PDE求解器以及BIST電路組成。當在200MHz以及室溫下進行群組讀取時,PDE求解器內核中的4個計算SRAM各自佔用570μm×820μm的功耗並消耗16.6mW的功耗。如第七圖所示,在運行Jacobi疊代時,5b多網格計算SRAM PDE求解器達到一容錯度為10-8,而與基線雙精度單網格實現方式相比,其收斂速度提高了4倍。
200MHz的計算SRAM在18個時脈週期內完成128個5b×5b MAC運算,包含4個週期字元線脈衝、1個週期位元線傳播、12個週期ADC以及1個週期閂鎖。PDE求解器晶片具有4個計算SRAM,每18個時脈週期執行512次5b×5b MAC運算。遵循A.Biswas等人在ISSCC(2018年,第488-490頁)中描述的方法「Conv-RAM:具有嵌入式卷積計算的一節能SRAM,用於低功耗以CNN為基礎的機器學習應用」,它對每個活動SRAM單元的一運算進行計數為2 Ops,每個計算SRAM的性能以及能量分別為14.2GOPS以及857GOPS/W。如第八圖所示,在較低的精度下,性能以及能源效率可以提高一倍以上。
為了例示以及描述的目的,本公開已經提供了前述具體實施例的描述。這並非旨在窮舉或限制本公開。特定具體實施例的各個元件或特徵通常不限於該特定具體實施例,而是在適用的情況下是可互換的,並且即使未具體示出或描述也可以在一選定具體實施例中使用。同樣也可以以許多方式變化。這類的變化不應被認為是背離本公開,並且所有這類的修改皆 欲包含在本公開的範圍內。
20:系統
21:記憶體單元
22:驅動器電路
23:輸入開關
24:字元線
25:位元線

Claims (17)

  1. 一種用於對二進制數執行乘積累加運算的系統,該系統包括:一記憶體單元陣列,排列成行及列,使得該陣列的每一列中的記憶體單元透過一相應的字元線互連,並且該陣列的每一行透過一相應的位元線互連,其中一被乘數是一二進制數,該二進制數是由多位元所組成且在該陣列中跨一記憶體單元群組儲存,以使該二進制數中每個位元值儲存在該記憶體單元群組中不同的一記憶體單元中;一給定記憶體單元群組中的每個記憶體單元,配置為接收用於指示一乘數的一輸入信號,且操作以將該乘數與儲存在該給定記憶體單元中的位元值的乘積,輸出到該給定記憶體單元的相應位元線上,其中使用寬度調變將該乘數的數值編碼在輸入信號中;以及一驅動器電路,電性連接至一給定記憶體單元群組中的每個字元線,並以一組電壓驅動該些字元線的方式操作,其中該電壓的大小會產生一個單元放電電流,該電流與儲存在相應記憶體單元中的有效位元成比例。
  2. 如申請專利範圍第1項所述的系統,更包括一組輸入開關,該組輸入開關置於該驅動器電路與該給定記憶體單元群組之間,該組輸入開關中的每個輸入開關配置為接收該輸入信號,並持續一段時間開啟該輸入開關,該段時間對應該乘數在該輸入信號上編碼的數值,從而利用該驅動器電路提供的一組電壓來驅動用於該給定群組的該等字元線。
  3. 如申請專利範圍第1項所述的系統,其中每個記憶體單元更定義為靜態隨機存取記憶體。
  4. 如申請專利範圍第1項所述的系統,其中該記憶體單元陣列中的每個記憶體單元,包含堆疊排列的一對存取電晶體以及配置為儲存一位元值的一儲存電路,使得通過該對存取電晶體所汲取的電流的大小由相應字元線上的電壓大小以及儲存在該儲存電路中的該位元值所確定。
  5. 如申請專利範圍第4項所述的系統,其中該對存取電晶體中的一存取電晶體的一閘極端電性耦合至相應的字元線,並且該對存取電晶體中的另一存取電晶體的一閘極端電性耦合至該儲存電路。
  6. 如申請專利範圍第1項所述的系統,其中該驅動器電路更定義為一電流鏡。
  7. 如申請專利範圍第1項所述的系統,更包括一參考時鐘源,產生一時脈信號;以及一延遲鎖定迴路,配置以接收該時脈信號,且操作以產生具有脈衝的該輸入信號,該等脈衝具有一持續時間,該持續時間為該時脈信號的時脈週期的一小部分。
  8. 如申請專利範圍第1項所述的系統,更包括一或多個類比數位轉換器,其中一類比數位轉換器電性耦合至一位元線並實現一雙斜坡單斜率轉換方法。
  9. 如申請專利範圍第1項所述的系統,配置為使用一殘差形式來求解偏微分方程。
  10. 一種用於對二進制數執行乘積累加運算的系統,該系統包括:一靜態隨機存取記憶體(SRAM)單元陣列,排列成行及列,使得該陣列的每一列中的記憶體單元透過一相應的字元線互連,並且該陣列的每一行透過一相應的位元線互連,其中一被乘數是一二進制數,該二進制數是由多位元所組成且在該陣列中跨一記憶體單元群組儲存,以使該二進制數中每個位元值儲存在該記憶體單元群組中不同的一記憶體單元中;一給定記憶體單元群組中的每個記憶體單元,配置為接收用於指示一乘數的一輸入信號,且操作以將該乘數與儲存在該給定記憶體單元中的位元 值的乘積,輸出到該給定記憶體單元的相應位元線上,其中使用寬度調變將該乘數的數值編碼在輸入信號中;一驅動器電路,電性連接至一給定記憶體單元群組中的每個字元線,並以一組電壓驅動該些字元線的方式操作,其中該電壓的大小會產生一個單元放電電流,該電流與儲存在相應記憶體單元中的有效位元成比例;以及一組輸入開關,置於該驅動器電路與該給定記憶體單元群組之間,該組輸入開關中的每個輸入開關配置為接收該輸入信號,並持續一段時間開啟該輸入開關,該段時間對應該乘數在該輸入信號上編碼的數值,從而利用該驅動器電路提供的一組電壓來驅動用於該給定群組的該等字元線。
  11. 如申請專利範圍第10項所述的系統,其中每個記憶體單元更定義為靜態隨機存取記憶體。
  12. 如申請專利範圍第10項所述的系統,其中該記憶體單元陣列中的每個記憶體單元,包含堆疊排列的一對存取電晶體以及配置為儲存一位元值的一儲存電路,使得通過該對存取電晶體所汲取的電流的大小由相應字元線上的電壓大小以及儲存在該儲存電路中的該位元值所確定。
  13. 如申請專利範圍第12項所述的系統,其中該對存取電晶體中的一存取電晶體的一閘極端電性耦合至相應的字元線,並且該對存取電晶體中的另一存取電晶體的一閘極端電性耦合至該儲存電路。
  14. 如申請專利範圍第10項所述的系統,其中該驅動器電路更定義為一電流鏡。
  15. 如申請專利範圍第10項所述的系統,更包括一參考時鐘源,產生一時脈信號;以及 一延遲鎖定迴路,配置以接收該時脈信號,且操作以產生具有脈衝的該輸入信號,該等脈衝具有一持續時間,該持續時間為該時脈信號的時脈週期的一小部分。
  16. 如申請專利範圍第10項所述的系統,更包括一或多個類比數位轉換器,其中一類比數位轉換器電性耦合至一位元線並實現雙斜坡單斜率轉換方法。
  17. 如申請專利範圍第10項所述的系統,配置為使用一殘差形式來求解偏微分方程。
TW108143523A 2018-11-29 2019-11-28 以sram為基礎的記憶體系統中處理 TWI744728B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/204,153 US11269629B2 (en) 2018-11-29 2018-11-29 SRAM-based process in memory system
US16/204153 2018-11-29

Publications (2)

Publication Number Publication Date
TW202044016A TW202044016A (zh) 2020-12-01
TWI744728B true TWI744728B (zh) 2021-11-01

Family

ID=70850826

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108143523A TWI744728B (zh) 2018-11-29 2019-11-28 以sram為基礎的記憶體系統中處理

Country Status (3)

Country Link
US (1) US11269629B2 (zh)
TW (1) TWI744728B (zh)
WO (1) WO2020112485A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880763B (zh) * 2020-07-14 2022-12-02 安徽大学 一种在内存中实现带有正负数乘加的sram电路
US11809838B2 (en) * 2020-09-08 2023-11-07 Macronix International Co., Ltd. Memory device and operation method thereof
CN112230883B (zh) * 2020-10-14 2021-06-01 上海芯旺微电子技术有限公司 一种用于乘法器零标志位的产生电路、乘法器和检测方法
CN112232501B (zh) * 2020-12-11 2021-09-28 中科南京智能技术研究院 一种存内计算装置
WO2022204916A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory device and operation method thereof
US11942148B2 (en) * 2021-04-23 2024-03-26 The Regents Of The University Of Michigan Mixed-signal interface circuit for non-volatile memory crossbar array
US11764801B2 (en) 2021-06-24 2023-09-19 Novatek Microelectronics Corp. Computing-in-memory circuit
CN113724764B (zh) * 2021-09-01 2023-11-10 北京航空航天大学 基于非易失存储器的乘法装置
CN114254743B (zh) * 2021-09-14 2024-03-15 安徽大学 一种基于rram阵列构成的二进制神经网络中并行乘累加运算的电路
US20230131308A1 (en) * 2021-10-25 2023-04-27 Taiwan Semiconductor Manufacturing Company, Ltd. Memory devices, computing devices, and methods for in-memory computing
KR20230168038A (ko) 2022-06-03 2023-12-12 삼성전자주식회사 전하 공유에 기반하여 멀티 비트 데이터에 대해 mac 연산을 수행하도록 구성되는 sram 셀 및 그 동작 방법
EP4566056A1 (en) * 2022-08-05 2025-06-11 Synthara AG Compact in-memory computer architecture
US12361982B2 (en) * 2022-08-30 2025-07-15 Stmicroelectronics International N.V. Memory architecture supporting both conventional memory access mode and digital in-memory computation processing mode
EP4354435A1 (de) 2022-10-11 2024-04-17 Semron GmbH Anordnung einer analogen multiplikationseinheit mit binären multiplikanden
CN116092553A (zh) * 2023-02-06 2023-05-09 上海高性能集成电路设计中心 一种兼具乘加功能的存储器
IT202300010893A1 (it) 2023-05-30 2024-11-30 St Microelectronics Int Nv Dispositivo di computazione in memoria per l'implementazione di almeno una rete neurale a piu' strati
CN118248193B (zh) * 2024-05-27 2024-07-30 安徽大学 基于参考电路动态匹配的高可靠性存内计算电路、芯片
CN118312468B (zh) * 2024-06-07 2024-08-16 安徽大学 一种带符号乘法的存内运算电路及cim芯片
CN119917452B (zh) * 2025-04-02 2025-06-17 安徽大学 一种多比特存内计算阵列结构及电子设备
US12531129B1 (en) * 2025-06-27 2026-01-20 Mythic, Inc. Systems and methods for implementing a feedback-informed memory programming of an integrated circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0448367A2 (en) * 1990-03-20 1991-09-25 Fujitsu Limited High speed digital parallel multiplier
US5473554A (en) * 1991-06-07 1995-12-05 National Semiconductor Corporation CMOS multiplexor
US7965564B2 (en) * 2007-09-18 2011-06-21 Zikbit Ltd. Processor arrays made of standard memory cells

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1433495A (en) * 1993-12-12 1995-06-27 Asp Solutions Usa, Inc. Apparatus and method for signal processing
US6809977B1 (en) * 2003-04-02 2004-10-26 Reflectivity, Inc Method for reading and writing memory cells of spatial light modulators used in display systems
US7289354B2 (en) * 2005-07-28 2007-10-30 Texas Instruments Incorporated Memory array with a delayed wordline boost
US10748603B2 (en) * 2018-09-28 2020-08-18 Intel Corporation In-memory multiply and accumulate with global charge-sharing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0448367A2 (en) * 1990-03-20 1991-09-25 Fujitsu Limited High speed digital parallel multiplier
US5473554A (en) * 1991-06-07 1995-12-05 National Semiconductor Corporation CMOS multiplexor
US7965564B2 (en) * 2007-09-18 2011-06-21 Zikbit Ltd. Processor arrays made of standard memory cells

Also Published As

Publication number Publication date
WO2020112485A1 (en) 2020-06-04
US11269629B2 (en) 2022-03-08
TW202044016A (zh) 2020-12-01
US20200174786A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
TWI744728B (zh) 以sram為基礎的記憶體系統中處理
Khaddam-Aljameh et al. HERMES-core—A 1.59-TOPS/mm 2 PCM on 14-nm CMOS in-memory compute core using 300-ps/LSB linearized CCO-based ADCs
US10297315B2 (en) Resistive memory accelerator
Chen et al. A 1.87-mm 2 56.9-GOPS accelerator for solving partial differential equations
Khaddam-Aljameh et al. An SRAM-based multibit in-memory matrix-vector multiplier with a precision that scales linearly in area, time, and power
TW202013264A (zh) 適用於人工神經元的記憶體內運算記憶體裝置之結構
Feinberg et al. An analog preconditioner for solving linear systems
US20250094126A1 (en) In-memory computation circuit and method
CN114830136B (zh) 功率高效的近存储器模拟乘法和累加(mac)
He et al. An RRAM-based digital computing-in-memory macro with dynamic voltage sense amplifier and sparse-aware approximate adder tree
Cheon et al. A 2941-TOPS/W charge-domain 10T SRAM compute-in-memory for ternary neural network
Lee et al. A charge-sharing based 8T SRAM in-memory computing for edge DNN acceleration
Chen et al. An SRAM-based accelerator for solving partial differential equations
Kneip et al. IMPACT: A 1-to-4b 813-TOPS/W 22-nm FD-SOI compute-in-memory CNN accelerator featuring a 4.2-POPS/W 146-TOPS/mm 2 CIM-SRAM with multi-bit analog batch-normalization
US10261977B2 (en) Resistive memory accelerator
Liu et al. An energy-efficient mixed-bit CNN accelerator with column parallel readout for ReRAM-based in-memory computing
Sehgal et al. A bit-serial, compute-in-SRAM design featuring hybrid-integrating ADCs and input dependent binary scaled precharge eliminating DACs for energy-efficient DNN inference
Jain et al. Broad-purpose in-memory computing for signal monitoring and machine learning workloads
Kushwaha et al. Multi-bit compute-in memory architecture using a C-2C ladder network
Laleni et al. A high-efficiency charge-domain compute-in-memory 1F1C macro using 2-bit FeFET cells for DNN processing
Wei et al. A 28-nm static-power-free fully parallel rram-based td cim macro with 1982 tops/w/bit for edge applications
Qiao et al. An eDRAM-based computing-in-memory macro with full-valid-storage and channel-wise-parallelism for depthwise neural network
Jiang et al. Compute-in-memory architecture
Kim et al. Union SRAM: PVT variation auto-compensated, bit precision configurable current mode 8T SRAM In memory MAC macro
Jang et al. Compute-in-memory with SAR ADC and 2T1C DRAM for MAC operations

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees