[go: up one dir, main page]

TWI812391B - 記憶體內運算電路 - Google Patents

記憶體內運算電路 Download PDF

Info

Publication number
TWI812391B
TWI812391B TW111129843A TW111129843A TWI812391B TW I812391 B TWI812391 B TW I812391B TW 111129843 A TW111129843 A TW 111129843A TW 111129843 A TW111129843 A TW 111129843A TW I812391 B TWI812391 B TW I812391B
Authority
TW
Taiwan
Prior art keywords
output capacitor
bit line
pairs
output
digital
Prior art date
Application number
TW111129843A
Other languages
English (en)
Other versions
TW202407580A (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 國立臺灣大學
Priority to TW111129843A priority Critical patent/TWI812391B/zh
Application granted granted Critical
Publication of TWI812391B publication Critical patent/TWI812391B/zh
Publication of TW202407580A publication Critical patent/TW202407580A/zh

Links

Images

Landscapes

  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Information Transfer Systems (AREA)
  • Static Random-Access Memory (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

一種記憶體內運算電路包括多個數位類比轉換器,多個運算陣列以及多個電荷處理網路。數位類比轉換器將外部資料轉換為輸入資料,且數位類比轉換器與對應的多個輸出電容器對串聯。運算陣列自雙端接收所述輸入資料並執行運算以輸出第一運算值。電荷處理網路通過與輸出電容器對串聯的開關對以在預定時間區間內接收並累積第一運算值。多個電荷處理網路將第一運算值的電荷平均分配至選定的輸出電容器對,並將多個輸出電容器對的兩端的電壓差值進行比較以輸出第二運算值。

Description

記憶體內運算電路
本發明是有關於一種記憶體內運算電路,且特別是關於一種使用靜態隨機存取記憶體的記憶體內運算電路。
隨著人工智慧(artificial intelligence;AI)與機器學習 (machine learning;ML)的技術不斷進步,基於神經網路之機器學習架構在語音及影像辨識等應用上已達到出色的準確率。相較於傳統的雲端運算,邊緣運算能夠實現較低運算延遲以及較佳的效能。同時,由於不用將資料上傳雲端,避免了資料被第三方竊取的風險,能夠有效提高資料的安全性,也能降低設備對於網絡的依賴性。
然而,邊緣運算受限於終端設備之能量與運算資源,使得於終端設備上實現機器學習架構極具挑戰性。為因應終端AI應用,記憶體內運算(computing-in-memory;CIM)之記憶體電路架構逐漸崛起。藉由直接在記憶體內進行運算以避免大量資料搬運,此記憶體架構不但能夠打破傳統馮紐曼架構(Von Neumann architecture)下的記憶體瓶頸,同時能夠實現乘法與加法的平行化運算,藉此大幅度提升整體運算效能。然而,由於記憶體內運算之記憶體需要額外的資料轉換介面,其包含數位類比及類比數位轉換器等,由於這些類比元件的效能會影響整體電路的吞吐量(throughput)、能耗與面積使用效率,使得記憶體內運算之記憶體的效能受限,進而限制此種記憶體架構的應用。
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。
本發明提供一種記憶體內運算電路包括多個數位類比轉換器,多個運算陣列以及多個電荷處理網路。數位類比轉換器將外部資料轉換為輸入資料,且數位類比轉換器與對應的多個輸出電容器對串聯。運算陣列自雙端接收所述輸入資料並執行運算以輸出第一運算值。電荷處理網路通過與輸出電容器對串聯的開關對以在預定時間區間內接收並累積第一運算值。多個電荷處理網路將第一運算值的電荷平均分配至選定的輸出電容器對,並將多個輸出電容器對的兩端的電壓差值進行比較以輸出第二運算值。
本發明提供一種應用於終端AI設備之高吞吐量、高能量與面積使用效率之記憶體內運算之靜態隨機存取記憶體(CIM SRAM)電路架構。藉由改善資料處理與轉換電路,以克服CIM SRAM目前在電路性能上所受到的限制,並改善電路的額外能量消耗及運算線性度受限的問題,藉此提高整體記憶體之運算速度、能量使用效率與線性度。除此之外,本發明也提供一種統一電荷處理網路(unified charge processing network;UCPN),其同時提供了訊號處理和資料轉換功能以提高能量使用效率,並同時提升電路效能以及晶片在實體設計時的晶片面積的使用效率。
本發明提供的一種記憶體內運算電路,為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明概念的特徵和實現所述特徵的方法可通過參考實施例的以下詳細描述和隨附圖式更容易地加以理解。下文中,將參考隨附圖式更詳細地描述實施例,在所述隨附圖式中,相同參考標號通篇指代相同元件。然而,本發明可以各種不同形式體現,且不應理解為受限於僅本文中說明的實施例。相反,將這些實施例作為實例來提供以使得本揭露將透徹且完整,且將向本領域的技術人員充分地傳達本發明的各方面和特徵。因此,可能並不描述對於本領域普通技術人員對本發明的方面和特徵的完整理解非必要的工藝、元件以及技術。除非另外指出,否則相同參考標號貫穿隨附圖式和書面描述表示相同元件,且因此將不重複其描述。在圖式中,為清楚起見,可能放大元件、層以及區域的相對大小。
在以下描述中,出於解釋的目的,闡述許多特定細節以提供對各種實施例的透徹理解。然而,顯而易知,可在沒有這些具體細節或有一或多種等效佈置的情況下實踐各種實施例。在其它情況下,以框圖的形式示出眾所周知的結構和裝置以便避免不必要地混淆各種實施例。
本文中使用的術語僅用於描述特定實施例的目的,且並不希望限制本發明。如本文中所使用,除非上下文另作明確指示,否則單數形式“一(a/an)”也意欲包含複數形式。將進一步理解,術語“包括(comprises/comprising)”、“具有(have/having)”、“包含(includes/including)”當在本說明書中使用時,表示所陳述特徵、整體、步驟、操作、元件和/或元件的存在,但不排除一或多個其它特徵、整體、步驟、操作、元件、元件和/或其群組的存在或增加。如本文中所使用,術語“和/或”包含相關聯的所列項中的一或多個的任何和所有組合。
如本文中所使用,術語“大體上”、“約”、“大致”以及類似術語用作近似的術語且不用作程度的術語,且意圖考慮將由本領域普通技術人員識別的測量值或計算值中的固有偏差。考慮到所討論的測量和與特定量的測量相關聯的誤差(即,測量系統的限制),如本文中所使用,“約”或“大致”包含所陳述值且意指在由本領域的普通技術人員確定的特定值的偏差的可接受範圍內。舉例來說,“約”可意味著在一或多個標準差內,或在所陳述值的± 30%、20%、10%、5%內。此外,當描述本發明的實施例時,使用“可”是指“本發明的一或多個實施例”。
當某一實施例可以不同方式實施時,特定處理次序可與所描述次序不同地執行。舉例來說,兩個連續描述的電路或元件可實質上同時執行或以與所描述次序相反的次序執行。
在本文中參考作為實施例和/或中間結構的示意說明的截面圖示來描述各種實施例。因而,應預期到作為例如製造技術和/或公差的結果而與圖示的形狀的差異。此外,出於描述根據本揭露的概念的實施例的目的,本文中所揭露的特定結構或功能性描述僅為說明性的。因此,本文中所揭露的實施例不應理解為受限於區域的特定圖示形狀,而是包含由(例如)製造引起的形狀偏差。
本文中所描述的根據本發明實施例的電子或電子裝置和/或任何其它相關裝置或元件可利用任一適合的硬體、韌體(例如專用積體電路)、軟體或軟體、韌體以及硬體的組合實施。舉例來說,這些裝置的各種元件可形成於一個積體電路(integrated circuit;IC)晶片上或在獨立IC晶片上。此外,這些裝置的各種元件可實施於柔性印刷電路膜、帶載封裝(tape carrier package;TCP)、印刷電路板(printed circuit board;PCB)上,或形成於一個基底上。此外,這些裝置的各種元件可以是在一或多個計算裝置中在一或多個處理器上運行、執行電腦程式指令以及與其它系統元件交互以用於執行本文中所描述的各種功能的進程或執行緒。電腦程式指令儲存於可使用例如隨機存取記憶體(random access memory;RAM)的標準記憶體裝置在計算裝置中實施的記憶體內。電腦程式指令也可儲存在例如CD-ROM、快閃記憶體驅動器或類似物的其它非暫時性電腦可讀媒體中。此外,本領域的技術人員應認知到可將各種計算裝置的功能組合或集成到單個計算裝置中,或可將特定計算裝置的功能分佈於一或多個其它計算裝置上而不脫離本發明的示例性實施例的精神和範圍。
除非另外定義,否則本文中所使用的所有術語(包含技術和科學術語)具有本發明所屬領域的普通技術人員所通常理解的相同意義。將進一步理解,術語(例如常用詞典中所定義的那些術語)應解釋為具有與其在相關技術的上下文和/或本說明書中的含義一致的含義,且不應在理想化或過分形式化的意義上進行解釋,除非在本文中這樣明確地定義。
為了實現新興的人工智慧應用,提出了記憶體內運算(CIM)架構來提升機器學習處理任務的計算效率。由於CIM架構是通過直接在記憶體內進行計算,避免了大量的資料移動。這使得能量使用效率遠高於傳統的Von Neumann計算架構,後者的能量損耗主要是由資料移動造成的。CIM靜態隨機存取記憶體的優點是可以直接處理從位元線(bit-line;BL)上所獲得的資訊,使得移動資料所需的能量最小化,並且可以進行平行化處理以執行高效的乘法和累加(multiplication and accumulation;MAC)運算。雖然CIM SRAM可以實現更高的能量使用效率,然而其操作頻率(operating frequency)和吞吐量相對低於現有的ML加速器。因此,會限制CIM SRAM可以應用的空間。因此,必須進一步提高CIM SRAM電路架構的吞吐量和執行效率,使其運算速度和吞吐量性能可以與高速運算或高性能的ML加速器相匹配,以實現高速運算或高性能的Al應用。
本發明的CIM SRAM使用MAC 運算處理和資料轉換電路(data conversion circuits)來支援ML的運算任務。首先,本發明採用位元線控制搭配電荷重分配架構(charge redistribution architecture)以進行有效的MAC計算。藉由此架構,可有效提升CIM SRAM的分類能力(classification performance),而不會受到SRAM的存取電晶體( access transistor)所產生的非理想效應,例如:電晶體不匹配(transistor mismatch)與資料相依(data-dependent)的電流特性所影響。
除此之外,本發明還採用動態二進位加權的電流導向式(dynamic binary-weighted current-steering)數位類比轉換器(digital-to-analog converter;DAC)的架構來提升在高速操作下的能量效率和線性度(linearity)的效能。此外,也使用整合式的電荷處理網路(unified charge processing network;UCPN),以同時提供高效的信號處理和資料轉換功能,除了有效地提升吞吐量、能量和面積效率(energy-area-efficiency),也分別克服了使用額外資料處理和轉換電路所導致的CIM SRAM的性能瓶頸。
另一方面,本發明亦使用逐次逼近類比數位轉換器(successive-approximation ADC;SAR ADC)電路架構搭配底板取樣(bottom-plate sampling)以提升資料轉換效能。藉由此架構除了可以減少CIM SRAM電路架構中的能量損耗,此外,也可有效改善輸出解析度(output resolution)和轉換時間(conversion time)並實現快速的轉換速度,以達到高吞吐量和高解析度的高效能CIM SRAM。
請參照圖1,圖1是根據本發明的一實施例的一種記憶體內運算電路的系統方塊(circuit block)示意圖。
在本實施例中,記憶體內運算電路100包括:多個電荷處理網路110、多個數位類比轉換器(DAC)120、多個運算陣列(101、1021、102N)、至少一個驅動電路(和/或解碼電路)130以及用來讀寫資料的輸入輸出電路140。其中,多個運算陣列包括多個運算庫(1021、102N)。
在本實施例中,解碼電路130用來接收一輸入致能訊號(未繪示)以將經編碼的外部資料進行解碼而得到解碼後的相應位址。其中,每一個位址對應到多個運算陣列(101、1021、102N)中特定的運算(或記憶)單元。驅動電路130通過多條字元線(WL、WL1、WLN)驅動相應的位址所對應的多個運算陣列(101、1021、102N)的其中至少一者,並且通過多條字元線(WL、WL1、WLN)與類比數位轉換器(analog -to- digital converter;ADC)電性連接。在本實施例中,ADC為SAR ADC。在一實施例中,ADC也可以是快閃式ADC(flash ADC)、管線式ADC(pipeline ADC)、管線式逐次逼近ADC(pipeline-SAR ADC),本實施例中不加以限制。
在本實施例中,多個DAC 120經配置以將輸入輸出電路140所傳入的數位外部資料轉換為類比輸入資料DIN、DIN1、DINM。在本實施例中,多個DAC 120中的每一者與對應的多個輸出電容器對串聯(請參見下文)。
在本實施例中,運算陣列(101、1021、102N)自對應的雙端(埠)接收來自位元線(BL、BL1、BLM)的輸入資料(DIN、DIN1、DINM)。字元線(WL、WL1、WLN)在特定的位址處導通後輸出運算致能訊號(EN、EN 1、EN N),並將位元線(BL、BL1、BLM)上的輸入資料(DIN、DIN1、DINM)與運算(或記憶)單元101進行運算。舉例來說,運算(或記憶)單元101可由左右對稱的兩個存取控制電晶體(或傳輸電晶體)(access transistors) (2T)(未繪示)和由四個電晶體(4T)組成的閂鎖器(latch)所構成(未繪示)。舉例來說,左側的其中一個電晶體與字元線連接,左側的另一電晶體則與閂鎖器(latch)連接。換言之,在本實施例中,運算單元101是由10個電晶體組成的靜態隨機存取記憶體(static random access memory;SRAM)所構成,本發明不加以限制。
其中,閂鎖器可在兩端儲存兩個互補的邏輯電壓準位作為權重。舉例來說,閂鎖器的兩端可儲存邏輯1或邏輯0。舉例來說,當字元線WL導通後,傳輸電晶體接到閂鎖器的其中一端具有邏輯1的權重,則在此示例中,與權重進行乘法運算後,原來位於位元線BL上的輸入資料(DIN、DIN1、DINM)會經由傳輸電晶體釋放,而在位元線BL上輸出運算值(輸出電壓或輸出電流)為邏輯0。相反地,當字元線WL導通後,傳輸電晶體接到閂鎖器的其中一端具有邏輯0的權重,則在此示例中,與權重進行相乘運算後,原來位於位元線BL上的輸入資料(DIN、DIN1、DINM)會經由傳輸電晶體釋放,而在位元線BL上輸出運算值(輸出電壓或輸出電流)為邏輯1。因此,在與權重進行相乘運算後,與左右對稱的SRAM的兩端相連接的位元線BL的端點上具有互補的邏輯準位。換言之,與運算(或記憶)單元101相接的對應的兩條位元線BL具有互補的邏輯準位。換言之,若與運算(或記憶)單元101相接的其中一條位元線具有例如邏輯1的電壓準位,則另一條位元線(或稱為反相位元線)具有互補的例如邏輯0的反相電壓準位。
在一實施例中,閂鎖器可以是由SR正反器所構成的閂鎖器,此處不加以限制。閂鎖器可以作為時脈閘控(clock gating),以記憶本次時間週期的比較狀態,而無須在下一週期重新改變訊號的狀態,因此可以減少時脈訊號的切換,而可有效降低電路的動態功率損耗,並可同時優化時鐘樹(clock tree)結構,以減少設置時間(setup timing)及增加電壓轉換的效率。
若電荷處理網路110通過與輸出電容器對(請參見下文)串聯的開關對以在預定時間區間內接收並累積第一運算值(即,與權重相乘後的運算值)。電荷處理網路110一方面將多個輸出電容器對所儲存的電荷傳送至全域位元線(請參見下文)進行累加(或累積),另一方面也同時將第一運算值的電荷透過多條位元線BL平均分配至輸出電容器對中選定的(或「有值的」,「邏輯準位非0的」)輸出電容器中(即,進行先相乘後累加運算後取一次平均值),最後將累加後取平均的兩端的電壓差值輸入比較器中進行比較,並基於比較結果輸出第二運算值。換言之,將全域位元線(請參見下文)的電壓差值傳至SAR ADC進行運算,輸出的運算值恰為輸入資料DIN、DIN1、DINM與權重相乘取平均的結果。
請參照圖2,圖2是根據本發明的一實施例的一種記憶體內運算電路的部分系統方塊示意圖。
圖2示出了本發明所提出的CIM SRAM電路系統200的示例性架構。在本實施例中,CIM SRAM電路系統 200由64個7位元(7-bit)DAC(120、1201、120M)、16個運算庫(102、1021、102N’)、CIM SRAM巨集150A、150B以及輸入輸出電路140所組成。其中,集合來自CIM SRAM巨集150B運算後的輸出(O9、O16)(例如:具有8個輸出)及CIM SRAM巨集150A的運算庫(102、1021、102N’)運算後的輸出(O1、O8)(例如:具有8個輸出)即為卷積輸出(convolution output)160。在本實施例中,CIM SRAM電路系統200提供的資料轉換能力相當於16個7位元解析度的ADC。在本實施例中,最大濾波深度(filter depth)為64。在本實施例中,每一運算庫(102、1021、102N’)包括多個局部運算單元(local computing units;LCU)103。在一實施例中,CIM SRAM巨集150包括8個運算庫(未繪示)。換言之,CIM SRAM巨集150中的運算庫(未繪示)與運算庫(102、1021、102N’)組成一具有16個運算庫的CIM SRAM電路系統200。
在本實施例中,LCU 103接收來自DAC(120、1201、120M)將數位的外部訊號IN轉換成對應的類比輸入訊號(電壓),以便對運算庫(102、1021、102N’)進行預充電(pre-charging)。接著,在運算庫(102、1021、102N’)中進行相乘(或乘法)運算。最後,UCPN累積相乘(或乘法)的運算結果,並輸出相應的數位訊號。
請參照圖3,圖3是根據本發明的圖2的一實施例的一種運算庫的方塊示意圖。
在本實施例中,運算庫102包括多個LCU 103、多個運算單元、多個控制輸入資料是否透過對應的互補式位元線(RBL­_0、RBLB­_0、RBL­_N、RBLB­_N)傳入運算單元的訊號(或開關)(EN_RBL0、EN_RBLB0、EN_RBLN、EN_RBLN)、符號位元開關SSW以及電荷處理網路170。在本實施例中,電荷處理網路170運算後,透過ADC輸出一運算值ADC_OUT。其中ADC所輸出的運算值ADC_OUT為7位元(7-bits)的輸出訊號。
在本實施例中,運算單元包括多個權重單元(W 0,0,…,W 15,63)。在一實施例中,運算單元的權重單元不加以限制。在本實施例中,多個權重單元(W 0,0,…,W 15,0)、(W 0,63,…,W 15,63)彼此平行連接。多個權重單元(W 0,0,…,W 15,0)、(W 0,63,…,W 15,63)的每一者的兩端分別與對應的多個位元線對的其中至少一者電性連接。舉例來說,權重單元(W 0,0,…,W 15,0)的兩端分別與位元線對RBL_0、RBLB_0電性連接。其中,每個權重單元(W 0,0,…,W 15,63)儲存相應的權重(邏輯0或邏輯1)。另一方面,權重單元(W 0,63,…,W 15,63)的兩端分別與位元線對RBL_N、RBLB_N電性連接。其中,每個權重單元(W 0,0,…,W 15,63)儲存相應的權重(邏輯0或邏輯1)。在一實施例中,每個權重單元(W 0,0,…,W 15,63)所儲存的權重可視運算需求而預先決定,本實施例不加以限制。
在本實施例中,在多個權重單元(W 0,0,…,W 15,0)、(W 0,63,…,W 15,63)的相應的權重固定下執行運算時,基於被選擇到的多個權重單元的其中一者(例如,W 15,0或W 15,63)進行運算,未被選擇到的其餘權重單元(例如,W 0,0,…,W 14,0或W 0,63,…,W 14,63)維持閒置狀態。
在本實施例中,符號位元開關SSW的兩端分別與對應的多個位元線對(RBL_0、RBLB_0)、(RBL_N、RBLB_N)的其中至少一者電性連接,其中在預充電期間之前,基於輸入資料的正負值決定對應的所述符號位元開關。換言之,在本實施例中,利用符號位元開關SSW以控制位元線對(RBL_0、RBLB_0)、(RBL_N、RBLB_N)使輸入資訊(輸入訊號)產生正負值(正負電壓)。
請參照圖4,圖4是根據本發明的一實施例的數位類比轉換器(digital-to-analog converter;DAC)的電路示意圖。
請同時參照圖3和圖4,在本實施例中,DAC(120、1201、120M)是動態二進位加權的電流導向式DAC。在本實施例中,DAC(120、1201、120M)包括動態的二進位加權的電流源陣列CS,以及與多個輸出電容器對C1串聯的多條邏輯電壓準位互補的位元線對。換言之,DAC(120、1201、120M)包括由多個電流源開關SW0、SW1、SWM構成的動態的二進位加權的電流源陣列CS。藉由這些電流源開關SW0、SW1、SWM,可根據輸入資料選擇或切換所需的電流源陣列CS,以提供相應的電流。在一實施例中,來自DAC(120、1201、120M)的輸入資料為電流導向式資料。在一實施例中,來自DAC(120、1201、120M)的輸入資料為電壓導向式資料。
在一實施例中,DAC(120、1201、120M)具有多組平行連接(或並聯)的電流源組。舉例來說,電流源組包括至少一個電流源CS。在一替代性的實施例中,DAC(120、1201、120M)具有多組平行連接(或並聯)的電流源組,其中每一組電流源組包括彼此平行連接的多個電流源CS。在一替代性的實施例中,每一個電流源組的彼此平行連接的電流源CS數目之間呈現2的冪次數列。舉例來說,第一組電流源組具有一個電流源CS, 第二組電流源組具有兩個彼此平行連接的電流源CS,…,第五組電流源組具有三十二個彼此平行連接的電流源CS,換言之,圖4的N值為32,依此類推。在一實施例中,每一個電流源CS至少包含一個開關SW0、SW1、SWM。舉例來說,第一組電流源組具有一個電流源CS、三個閘級偏壓BIAS以及一個電流源開關SW0。舉例來說,第二組電流源組具有兩個電流源CS,每個電流源CS包括三個閘級偏壓BIAS,以及一個電流源開關SW1。換言之,第二組電流源組具有兩個電流源開關SW1。舉例來說,第五組電流源組具有五個彼此並聯的電流源CS,每個電流源CS包括三個閘級偏壓BIAS,以及一個電流源開關SWM。換言之,第五組電流源組具有五個電流源開關SWM。其中,在一實施例中,電流源組中彼此並聯的電流源數目不加以限制,可視需求而設計。
在本實施例中,DAC(120、1201、120M)包括由多條位元線RBL、RBLB以及多個位元線上的電容CRBL、CRBLB(請參閱圖5)組成的輸出電容C1。藉由此種DAC(120、1201、120M)架構設計,可將DAC的能量使用效率提升2.01倍,且其線性度亦有效提升為0.65 ENOB(effective number of bits)。其中,ENOB為有效位元數,用以衡量數據轉換器相對於輸入信號在奈奎斯特帶寬上的轉換質量(以位為單位)的參數
請參照圖5,圖5是根據本發明的一實施例的局部運算單元(local computing unit;LCU)的電路示意圖。
在本實施例中,LCU 103包括兩個DAC輸入開關410、十六個記憶單元420、四個符號位元開關SSW以及電荷處理網路170。
在一示例性實施例中,運算陣列的同一列上具有六十四個LCU 103,每個LCU 103內又有十六個10T SRAM單元作為濾波運算的儲存處,其中十五組為閒置的SRAM單元,每一次運算只會啟動其中一組SRAM單元。在實際運算過程中可以依照不同需求或演算法隨時切換所需的SRAM單元。
在本實施例中,DAC輸入開關410包括位元線致能訊號(開關)EN_RBL、EN_RBLB。其中,位元線致能訊號(開關)EN_RBL、EN_RBLB用以決定是否允許接收來自DAC 120的輸入資訊。其中DAC 120基於DAC致能訊號EN_DAC以決定是否啟動該DAC進行運作。
在本實施例中,記憶單元420包括互補的位元線RBL、RBLB、在讀取期間同時控制多個傳輸電晶體是否導通的字元線RWL、左右對稱的兩個存取控制電晶體(2T)以及由四個電晶體(4T)構成的閂鎖器,其中閂鎖器具有互補的輸出端Q、QB。換言之,記憶單元420是由十六個10T SRAM所組成的架構。
在本實施例中,四個符號位元開關SSW包括控制位元線RBL是否可以將輸入資訊(訊號)傳入電荷處理網路170中的全域位元線GRBL_P的DAC輸入控制訊號DAC_6、控制位元線RBLB是否可以將反相輸入資訊(訊號)傳入電荷處理網路170中的全域位元線GRBL_N的DAC輸入控制訊號DAC_6、控制位元線RBL是否可以將反相輸入資訊(訊號)傳入電荷處理網路170中的全域位元線GRBL_P的DAC輸入控制訊號DAC_6B以及控制位元線RBLB是否可以將反相輸入資訊(訊號)傳入電荷處理網路170中的全域位元線GRBL_N的DAC輸入控制訊號DAC_6B。
在本實施例中,四個符號位元開關採用交叉式耦合配置,使輸入資訊(訊號)具有正負電壓形式。
在本實施例中,電荷處理網路170具有兩個ADC開關節點以接收ADC的輸出資訊(訊號),其中所述輸出資訊(訊號)經過其中一端接收一ADC參考電壓的反相器(未繪示)而輸出相應的ADC輸入控制訊號ADC_NB、ADCB_NB。
在一實施例中,反相器可用以將輸入資訊(訊號)作位元反相運算(即一補數),再將結果加 1,即為該數值的二補數。在二補數系統中,一個負數是以其對應正數的二補數來表示。二補數系統可以在加法或減法處理中,毋需因為數字的正負而使用不同的計算方式。只要使用一種加法電路即可處理有號數加法。類似地,減法可以用一個數加上另一個數的二補數來表示,因此只要採用加法電路及二補數電路即可完成各種有號數加法及減法。
在本實施例中,電荷處理網路170還具有兩個開關SEL,用以在位元線RBL及輸入控制訊號ADC_NB、ADCB_NB之間作出相應的切換。
請參照圖6A到圖6D,圖6A到圖6D是根據本發明的一實施例的LCU的不同階段的操作步驟示意圖及其時序示意圖。
在本實施例中,由LCU進行的乘法操作包括三個步驟。DAC預充電期間T1、相乘運算期間T2以及資料傳輸期間T3。
在本實施例中,在DAC預充電期間T1之前,首先根據所欲啟動的符號位元設置DAC符號位元開關,並將輸出電容C_RBL、C_RBLB的底板(bottom-plate)相應地連接到位元線RBL、RBLB上。參考操作610的操作方式,在DAC預充電期間T1,位元線致能訊號(開關)EN_RBL和DAC致能訊號EN_DAC被啟動。與輸出電容C_RBL、C_RBLB相連接的兩條全域位元線(global read bit lines) GRBL_P、GRBL­_N在初始時被接地以將該全域位元線GRBL_P、GRBL­_N上的電壓釋放掉至接地的電壓準位(例如,邏輯0),以確保兩個輸出電容C_RBL、C_RBLB之間的電壓差即為DAC被預充電的電壓。
在本實施例中,參考操作620的操作方式,在相乘運算期間T2,預充電路徑將被開路(open)(即,位元線致能訊號(開關)EN_RBL開路),輸出電容C_RBL、C_RBLB將保持在預充電期間T1時的DAC預充電的電壓。接著,字元線RWL被致能以進行相乘運算。基於存儲在SRAM中的權重單元資料,位元線RBL或位元線RBLB上的電壓將被放電到零。放電過程結束後,字元線RWL將被禁能(disabled)以完成相乘運算。
在本實施例中,參考操作630的操作方式,在資料傳輸期間T3,基於開關(訊號)SEL將輸出電容C_RBL、C_RBLB的底板切換到UCPN 170中的ADC開關節點。傳輸的資料(電荷)在全域位元線GRBL_P、GRBL­_N上累積。對應參照圖6D,全域位元線GRBL_P、GRBL­_N上的電壓擺幅隨資料傳輸期間T3的時間增加而逐漸減少。在一實施例中,在資料傳輸期間T3,一開始全域位元線GRBL­_N上的電壓擺幅相較於全域位元線GRBL­_P上的電壓擺幅還要高,在資料傳輸期間T3後期,全域位元線GRBL­_N上的電壓擺幅會逐漸趨於與全域位元線GRBL­_P上的電壓擺幅相同。在ADC的輸出波形圖中示出了ADC的輸出訊號ADC_OUT變化情形。其中,ADC的輸出訊號ADC_OUT在資料傳輸期間T3為一7位元(7-bit)的輸出訊號。最後在UCPN170中進一步處理並轉換為數位輸出。在本實施例中,其中多個輸出電容器對C_RBL、C_RBLB實質上具有相同的電容值。在一實施例中,所有的輸出電容器C_RBL、C_RBLB均具有相同的電容值,而形成單一電容陣列(unitary capacitor array)。在資料傳輸期間T3,電容陣列720(參見圖7)在UCPN 170中可被重複使用(reusable)。在一實施例中,在SAR ADC的每次反覆運算中,不同數量的輸出電容器C_RBL、C_RBLB對C_RBL、C_RBLB以2的冪次逐漸進行切換,以實現動態的二進位加權的電容器切換。
參照圖6D,DAC預充電期間T1、相乘運算期間T2以及資料傳輸期間T3的波型關係可參照圖6A到圖6C以及上文的說明,且本領域之相關技術人員可清楚判讀,因而在此並不贅述。在本實施例中,一個完整的時脈訊號CLK週期包括預充電期間T1、相乘運算期間T2以及資料傳輸期間T3。
請參照圖7,圖7是根據本發明的一實施例的整合式的電荷處理網路(unified charge processing network;UCPN)的電路示意圖。
在本實施例中,使用整合式UCPN 170,不僅同時提供訊號處理和資料傳輸及轉換功能,也提升整體能量使用效率和面積使用效率。在多條互補的位元線RBL_0、RBLB_0、RBL_63、RBLB_63上僅使用單一的電容陣列720。其中,電容陣列720包括多個輸出電容 C_RBL 0、C_RBL63、C_RBLB、C_RBLB0、C_RBLB63,以在資料運算期間存儲MAC結果。在架構720下,電容陣列720也同時作為ADC的開關電容,藉以將運算結果進行轉換,以產生數位資訊。據此,本發明將晶片上的面積使用效率提高了1.15倍。此外,整合式的UCPN 170也減少了訊號傳播的路徑,並實質上有效地減低因為使用多個輸出電容C_RBL0、C_RBLB0、C_RBL63、C_RBLB63分壓造成全域位元線GRBL_P、GRBL­_N上的輸出電壓擺幅下降的影響,同時也不需要使用額外的自舉式電路(bootstrap circuit)來提升傳送至比較器中進行比較的電壓準位以改善資料轉換精度,並藉此降低額外的面積消耗。換言之,在架構710下,整合式的UCPN 170包括一比較器,其輸出結果OUT經由SAR ADC再將比較器的輸出結果OUT轉成7-bits的輸出。特別是,整合式的UCPN 170可以有效避免多個輸出電容的電荷重分佈所造成輸出電壓擺幅降低的影響,同時因為與SAR ADC共用電容,而可節省晶片上的電容開銷(overhead)。
在本實施例中,整合式UCPN 170包括與多個輸出電容器對C_RBL0、C_RBLB0、C_RBL63、C_RBLB63串聯的所述多個開關對,其中所述多個開關對通過對應的多個反向器接收位元線對RBL_0、RBLB_0、RBL_63、RBLB_63上邏輯電壓準位互補的類比數位轉換控制訊號(ADC_0、ADCB_0)、(ADC_63、ADCB_63)。
在一實施例中,運算陣列420包括多條位元線RBL_0、RBLB_0以及多條字元線。多條位元線RBL_0、RBLB_0、RBL_63、RBLB_63包括邏輯電壓準位互補的多個位元線對。其中,多條位元線RBL_0、RBLB_0、RBL_63、RBLB_63在預充電期間被所述多個DAC充電至一預定電壓以對多個輸出電容器對C_RBL0、C_RBLB0、C_RBL63、C_RBLB63進行電荷累積,並將多個輸出電容器對C_RBL0、C_RBLB0、C_RBL63、C_RBLB63的電容器底板連接到相應的多個位元線對RBL_0、RBLB_0、RBL_63、RBLB_63。
在一實施例中,多條字元線在預充電期間結束後基於字元線致能訊號決定外部資料是否與對應的多個運算陣列執行對應的運算。在一實施例中,多個DAC的每一者在預充電期間基於數位類比轉換致能訊號、位元線致能訊號以及反相(互補)位元線致能訊號決定是否將所述外部資料輸入至對應的運算陣列中。
在一實施例中,開關對包括第一開關以及第二開關。第一開關,響應於時脈訊號在預定時間區間進行切換以連接第一位元線或第一反向器,其中第一反向器接收第一類比數位轉換控制訊號。第二開關,響應於時脈訊號在預定時間區間進行切換以連接第二位元線或第二反向器,其中第二反向器接收第二類比數位轉換控制訊號,其中第一位元線與所述第二位元線在執行運算階段時,其相應的邏輯電壓準位彼此互補。
在一實施例中,輸出電容器對包括第一輸出電容器及第二輸出電容器。第一輸出電容器基於第一開關在預定時間區間將第一輸出電容器的一端電性連接至第一位元線,其中第一輸出電容器被預充電到一第一電壓準位。
在一實施例中,第二輸出電容器基於第二開關在預定時間區間將第二輸出電容器的一端電性連接至所述第二位元線,其中第一輸出電容器被預充電到一第二電壓準位,其中第一輸出電容器的另一端以及第二輸出電容器的另一端分別電性連接至一比較器。比較器可用以比較第一電壓準位與第二電壓準位的電壓差值。
在一實施例中,電荷處理網路包括第一全域位元線和第二全域位元線。第一全域位元線耦接至第一輸出電容器的另一端及比較器的正端。第二全域位元線耦接至第二輸出電容器的另一端及比較器的負端,其中在預充電期間之前,第一全域位元線以及第二全域位元線被接地,使所述第一全域位元線以及所述第二全域位元線上的電壓準位為零。
在一實施例中,在資料傳輸期間,第一開關響應於時脈訊號在資料傳輸期間將第一輸出電容器的一端切換至第一反向器,且第二開關響應於時脈訊號在資料傳輸期間將第二輸出電容器的一端切換至第二反向器。其中,輸入資料在第一全域位元線以及第二全域位元線上進行累積運算。
在一實施例中,在預充電期間,第一輸出電容器與第二輸出電容器之間的電壓差為所述DAC進行預充電的電壓。
在一實施例中,多個電荷處理網路的每一者與多條位元線電性連接,其中多條位元線共用由多個輸出電容器對組成的一輸出電容器電容陣列。
在一實施例中,多個電荷處理網路將共用的輸出電容器電容陣列進行底板取樣並執行一次電荷重分佈處理,以在相應的全域位元線上輸出相應的輸出電壓值。
在一實施例中,多個電荷處理網路在使用SAR ADC執行運算期間,利用共用的輸出電容器電容陣列可以同時儲存乘加運算的結果。
在一實施例中,輸出電壓值是基於輸入資料經過累加運算後再取平均的結果。其中,輸出電壓值經過SAR ADC進行運算,輸出輸入資料與多個運算陣列中的相應的權重單元相乘後再取平均的結果。
綜上所述,本發明諸實施例所述的記憶體內運算電路可以是基於使用靜態隨機存取記憶體的記憶體內運算電路。本發明也提供一種應用於終端AI設備之高吞吐量、高能量與面積使用效率之記憶體內運算之靜態隨機存取記憶體(CIM SRAM)電路架構。
藉由改善資料處理與轉換電路,以克服CIM SRAM目前在電路性能上所受到的限制,並可改善電路的額外能量消耗及運算線性度受限的問題,藉此提高整體記憶體之運算速度、能量使用效率與線性度。除此之外,本發明也提供一種UCPN,其同時提供了訊號處理和資料轉換功能以提高能量使用效率,並同時提升電路效能以及晶片在實體設計時的晶片面積的使用效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:記憶體內運算電路 101:運算單元 102、1021、102N’:運算庫 103:局部運算單元 110、170:電荷處理網路 120、1201、120M:數位類比轉換器 130:驅動電路、解碼器 140:輸入輸出電路 150A、150B:CIM SRAM巨集 200:CIM SRAM 電路系統 410:DAC輸入開關 420:記憶單元 610、620、630:操作 700、710、720:架構 BIAS:偏壓 BL、BL1、BLM、RBL­_0、RBL­_63、RBLB­_0、RBLB­_63、RBL­_N、RBLB­_N:位元線 C1、C_RBL、C_RBL 0、C_RBL63、C_RBLB、C_RBLB0、C_RBLB63:輸出電容 CLK:時脈訊號 CS:電流源 DIN、DIN1、DINM:輸入資料 DAC_6、DAC_6B:DAC輸入控制訊號 ADC_0、ADC_63、ADC_NB、ADCB_0、ADCB_63、ADCB_NB:ADC輸入控制訊號 EN、EN1、ENN:字元線致能訊號 EN_DAC:DAC致能訊號 EN_RBL、EN_RBL0、EN_RBLB、EN_RBLB0、EN_RBLN、EN_RBLBN:位元線致能訊號(開關) GRBL_P、GRBL­_N:全域位元線 IN:外部資料 O1、O8、O9、O16、OUT、160、ADC_OUT:輸出訊號 Q、Q_0、Q_63、QB、QB_0、QB_63:輸出端 SEL、SW0、SW1、SWM:開關 SSW:符號位元開關 T1:預充電期間 T2:相乘運算期間 T3:資料傳輸期間 WL、WL1、WLN、RWL:字元線 W 0,0、W 1,0、W 2,0、W 13,0、W 14,0、W 15,0、W 0,63、W 1,63、W 2, 63、W 3, 63、W 13, 63、W 14, 63、W 15, 63:權重單元
圖1是根據本發明的一實施例的一種記憶體內運算電路的系統方塊(circuit block)示意圖。 圖2是根據本發明的一實施例的一種記憶體內運算電路的部分系統方塊示意圖。 圖3是根據本發明的圖2的一實施例的一種運算庫的方塊示意圖。 圖4是根據本發明的一實施例的數位類比轉換器(digital-to-analog converter;DAC)的電路示意圖。 圖5是根據本發明的一實施例的局部運算單元(local computing unit;LCU)的電路示意圖。 圖6A到圖6D是根據本發明的一實施例的LCU的不同階段的操作步驟示意圖及其時序示意圖。 圖7是根據本發明的一實施例的整合式的電荷處理網路(unified charge processing network;UCPN)的電路示意圖。
100:記憶體內運算電路
101:運算單元
102、1021、102N’:運算庫
110:電荷處理網路
120:數位類比轉換器
130:驅動電路、解碼電路
140:輸入輸出電路
BL、BL1、BLM:位元線
DIN、DIN1、DINM:輸入資料
EN、EN1、ENN:字元線致能訊號
WL、WL1、WLN:字元線

Claims (19)

  1. 一種記憶體內運算電路,包括:多個數位類比轉換器,所述多個數位類比轉換器中的其中至少一者將外部資料轉換為輸入資料,所述多個數位類比轉換器中的每一者與對應的多個輸出電容器對串聯;多個運算陣列,所述多個運算陣列中的其中至少一者自雙端接收所述輸入資料並執行運算以輸出第一運算值;以及多個電荷處理網路,所述多個電荷處理網路中的其中至少一者通過與所述多個輸出電容器對串聯的多個開關對以在預定時間區間內接收並累積所述第一運算值,其中所述多個電荷處理網路將所述第一運算值的電荷平均分配至選定的所述多個輸出電容器對的其中至少一者,並將所述多個輸出電容器對的其中至少一者的兩端的電壓差值進行比較以輸出第二運算值,其中所述多個運算陣列包括:多條位元線,其中所述多條位元線包括邏輯電壓準位互補的多個位元線對,其中所述多條位元線在預充電期間被所述多個數位類比轉換器充電至一預定電壓以對所述多個輸出電容器對進行電荷累積,並將所述多個輸出電容器對的電容器底板連接到相應的所述多個位元線對;以及多條字元線,在所述預充電期間後基於字元線致能訊號決定所述外部資料是否與對應的所述多個運算陣列執行對應的運算。
  2. 如請求項1所述的記憶體內運算電路,其中所述多個數位類比轉換器包括動態二進位加權的電流源陣列,以及與所述多個輸出電容器對串聯的多條邏輯電壓準位互補的位元線對,其中所述輸入資料為電流導向式資料。
  3. 如請求項1所述的記憶體內運算電路,其中所述多個電荷處理網路的每一者包括與所述多個輸出電容器對串聯的所述多個開關對,其中所述多個開關對通過對應的多個反向器接收邏輯電壓準位互補的類比數位轉換控制訊號。
  4. 如請求項3所述的記憶體內運算電路,其中所述多個運算陣列還包括:多個運算庫,所述多個運算庫中的每一者包括多個運算單元,所述多個運算單元中的每一者包括:多個權重單元,其中所述多個權重單元彼此平行連接,且所述多個權重單元的每一者的兩端分別與對應的所述多個位元線對的其中至少一者電性連接,其中所述多個權重單元儲存相應的權重。
  5. 如請求項4所述的記憶體內運算電路,其中在所述多個權重單元的相應的所述權重固定下執行運算時,基於被選擇到的所述多個權重單元的其中一者進行運算,未被選擇到的其餘權重單元維持閒置狀態。
  6. 如請求項4所述的記憶體內運算電路,其中所述多個運算庫中的每一者還包括: 符號位元開關,所述符號位元開關分別與對應的所述多個位元線對的其中至少一者電性連接,其中在所述預充電期間之前基於所述輸入資料的正負值決定對應的所述符號位元開關。
  7. 如請求項4所述的記憶體內運算電路,其中所述運算單元中的每一者是由10個電晶體組成的靜態隨機存取記憶體。
  8. 如請求項1所述的記憶體內運算電路,其中所述多個輸出電容器對實質上具有相同的電容值。
  9. 如請求項1所述的記憶體內運算電路,其中所述多個數位類比轉換器的每一者在預充電期間基於數位類比轉換致能訊號、第一位元線致能訊號以及第二位元線致能訊號決定是否將所述外部資料輸入至對應的運算陣列中。
  10. 如請求項1所述的記憶體內運算電路,其中所述多個開關對包括:第一開關,響應於時脈訊號在預定時間區間進行切換以連接第一位元線或第一反向器,其中所述第一反向器接收第一類比數位轉換控制訊號;以及第二開關,響應於所述時脈訊號在所述預定時間區間進行切換以連接第二位元線或第二反向器,其中所述第二反向器接收第二類比數位轉換控制訊號,其中所述第一位元線與所述第二位元線在執行運算階段時,其相應的邏輯電壓準位彼此互補。
  11. 如請求項10所述的記憶體內運算電路,其中所述多個輸出電容器對的每一者包括: 第一輸出電容器,基於所述第一開關在所述預定時間區間將所述第一輸出電容器的一端電性連接至所述第一位元線,其中所述第一輸出電容器被預充電到一第一電壓準位;以及第二輸出電容器,基於所述第二開關在所述預定時間區間將所述第二輸出電容器的一端電性連接至所述第二位元線,其中所述第二輸出電容器被預充電到一第二電壓準位,其中所述第一輸出電容器的另一端以及所述第二輸出電容器的另一端分別電性連接至一比較器,以比較所述第一電壓準位與所述第二電壓準位的所述電壓差值。
  12. 如請求項11所述的記憶體內運算電路,其中所述多個電荷處理網路的每一者包括:第一全域位元線,耦接至所述第一輸出電容器的所述另一端及所述比較器的正端;以及第二全域位元線,耦接至所述第二輸出電容器的所述另一端及所述比較器的負端,其中在所述預充電期間之前,所述第一全域位元線以及所述第二全域位元線被接地,使所述第一全域位元線以及所述第二全域位元線上的電壓準位為零。
  13. 如請求項12所述的記憶體內運算電路,其中在資料傳輸期間,所述第一開關響應於所述時脈訊號在所述資料傳輸期間將所述第一輸出電容器的一端切換至所述第一反向器,且所述第二開關響應於所述時脈訊號在所述資料傳輸期間將所述第二輸 出電容器的一端切換至所述第二反向器,其中所述輸入資料在所述第一全域位元線以及所述第二全域位元線進行累積運算。
  14. 如請求項11所述的記憶體內運算電路,其中在所述預充電期間,所述第一輸出電容器與所述第二輸出電容器之間的電壓差為所述數位類比轉換器進行預充電的電壓。
  15. 如請求項1所述的記憶體內運算電路,其中所述多個電荷處理網路的每一者與所述多條位元線電性連接,其中所述多條位元線共用由所述多個輸出電容器對組成的一輸出電容器電容陣列。
  16. 如請求項15所述的記憶體內運算電路,其中所述多個電荷處理網路將共用的所述輸出電容器電容陣列進行底板取樣並執行一次電荷重分佈處理,以在相應的全域位元線上輸出相應的輸出電壓值。
  17. 如請求項16所述的記憶體內運算電路,其中所述多個電荷處理網路在使用逐次逼近類比數位轉換器執行運算期間,利用共用的所述輸出電容器電容陣列同時儲存乘加運算的結果。
  18. 如請求項16所述的記憶體內運算電路,其中所述輸出電壓值是基於所述輸入資料經過累加運算後再取平均的結果,其中所述輸出電壓值經過逐次逼近類比數位轉換器進行運算,輸出所述輸入資料與所述多個運算陣列中的相應的權重單元相乘後再取平均的結果。
  19. 如請求項1所述的記憶體內運算電路,還包括: 解碼電路,接收一輸入致能訊號以將經編碼的所述外部資料進行解碼而得到解碼後的相應位址;驅動電路,通過多條字元線驅動所述位址所對應的所述多個運算陣列的其中至少一者,並且通過所述多條字元線與數位類比轉換器電性連接;以及輸入輸出電路,其中所述輸入輸出電路通過多條位元線將所述外部資料傳送至所述多個數位類比轉換器中的其中至少一者。
TW111129843A 2022-08-09 2022-08-09 記憶體內運算電路 TWI812391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111129843A TWI812391B (zh) 2022-08-09 2022-08-09 記憶體內運算電路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111129843A TWI812391B (zh) 2022-08-09 2022-08-09 記憶體內運算電路

Publications (2)

Publication Number Publication Date
TWI812391B true TWI812391B (zh) 2023-08-11
TW202407580A TW202407580A (zh) 2024-02-16

Family

ID=88585856

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111129843A TWI812391B (zh) 2022-08-09 2022-08-09 記憶體內運算電路

Country Status (1)

Country Link
TW (1) TWI812391B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202013264A (zh) * 2018-05-29 2020-04-01 英屬開曼群島商意騰科技股份有限公司 適用於人工神經元的記憶體內運算記憶體裝置之結構
US20210241820A1 (en) * 2020-01-30 2021-08-05 Texas Instruments Incorporated Computation in-memory architecture for analog-to-digital conversion
CN113946310A (zh) * 2021-10-08 2022-01-18 上海科技大学 一种用于卷积神经网络的内存计算eDRAM加速器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202013264A (zh) * 2018-05-29 2020-04-01 英屬開曼群島商意騰科技股份有限公司 適用於人工神經元的記憶體內運算記憶體裝置之結構
US20210241820A1 (en) * 2020-01-30 2021-08-05 Texas Instruments Incorporated Computation in-memory architecture for analog-to-digital conversion
CN113946310A (zh) * 2021-10-08 2022-01-18 上海科技大学 一种用于卷积神经网络的内存计算eDRAM加速器

Also Published As

Publication number Publication date
TW202407580A (zh) 2024-02-16

Similar Documents

Publication Publication Date Title
US12009054B2 (en) Computing-in-memory circuitry
CN115048075B (zh) 基于电容耦合的sram存算一体芯片
US12007890B2 (en) Configurable in memory computing engine, platform, bit cells and layouts therefore
US11538509B2 (en) Compute-in-memory with ternary activation
KR102207909B1 (ko) 비트라인의 전하 공유에 기반하는 cim 장치 및 그 동작 방법
CN113255904A (zh) 电压裕度增强型电容耦合存算一体单元、子阵列及装置
CN117130978A (zh) 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法
Jeong et al. A ternary neural network computing-in-memory processor with 16T1C bitcell architecture
US20210150328A1 (en) Hierarchical Hybrid Network on Chip Architecture for Compute-in-memory Probabilistic Machine Learning Accelerator
CN109979503A (zh) 一种在内存中实现汉明距离计算的静态随机存储器电路结构
Tsai et al. RePIM: Joint exploitation of activation and weight repetitions for in-ReRAM DNN acceleration
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
CN116821048A (zh) 一种存算一体芯片及其操作方法
CN118072788A (zh) 存算一体电路、芯片及电子设备
CN118034644B (zh) 一种基于eDRAM的高密度高可靠性存内计算电路
US12249395B2 (en) Memory device supporting in-memory MAC operation between ternary input data and binary weight using charge sharing method and operation method thereof
TWI812391B (zh) 記憶體內運算電路
CN117271436A (zh) 基于sram的电流镜互补存内计算宏电路、及芯片
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
CN119356640B (zh) 随机计算的cim电路及适于机器学习训练的mac运算电路
CN118298872B (zh) 输入权重比特位可配置的存内计算电路及其芯片
US20240330178A1 (en) Configurable in memory computing engine, platform, bit cells and layouts therefore
CN115525250A (zh) 内存计算电路
Xuan et al. AiDAC: A Low-Cost In-Memory Computing Architecture with All-Analog Multi-Bit Compute and Interconnect