TWI704569B - 積體電路及其運算方法 - Google Patents
積體電路及其運算方法 Download PDFInfo
- Publication number
- TWI704569B TWI704569B TW108138931A TW108138931A TWI704569B TW I704569 B TWI704569 B TW I704569B TW 108138931 A TW108138931 A TW 108138931A TW 108138931 A TW108138931 A TW 108138931A TW I704569 B TWI704569 B TW I704569B
- Authority
- TW
- Taiwan
- Prior art keywords
- integrated circuit
- input voltages
- memory cells
- bit lines
- memory
- Prior art date
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
積體電路包括記憶體陣列、多條字元線、多條位元線以及頁面緩衝器。記憶體陣列包括多個記憶體胞元,分別經配置以被寫入權重。多條字元線分別連接多個記憶體胞元中的一列記憶體胞元。多條位元線分別連接多個記憶體胞元的彼此串聯連接的一欄記憶體胞元。多條位元線的在記憶體陣列的一區塊中的多者或多條字元線的在記憶體陣列的多個區塊中的多者經配置以接收多個輸入電壓,且接收多個輸入電壓的記憶體胞元經配置以將寫入權重與接收的輸入電壓相乘。頁面緩衝器耦合至記憶體陣列,且經配置以感測權重與輸入電壓的多個乘積。
Description
本揭露是有關於一種積體電路及其運算方法,且特別是有關於一種記憶體電路及其運算方法。
在以范紐曼型架構(Von Neumann architecture)設計出的計算機中,資料儲存單元與資料處理單元彼此分離。資料必須經由輸入/輸出端口(input/output,I/O)與匯流排(bus)而在資料儲存單元與資料處理單元之間往返,故耗時與耗能。此外,對於巨量資料的處理,於單元之間的資料往返產生處理效能上的瓶頸。近年來,隨著人工智慧(artificial intelligence,AI)技術的興起,計算機所需處理的資料量大幅增加,此造成上述的效能瓶頸日益嚴重。
本揭露提供一種積體電路,可操作於記憶體模式與運算模式中。
本揭露的積體電路包括:記憶體陣列,包括多個記憶體胞
元,分別經配置以被寫入權重;多條字元線與多條位元線,其中所述多條字元線分別連接所述多個記憶體胞元中的一列記憶體胞元,所述多條位元線分別連接所述多個記憶體胞元的彼此串聯連接的一欄記憶體胞元,所述多條位元線的在所述記憶體陣列的一區塊中的多者或所述多條字元線的在所述記憶體陣列的多個區塊中的多者經配置以接收多個輸入電壓,且所述多個記憶體胞元中接收所述多個輸入電壓的多者經配置以將寫入的所述多個權重中的多者與接收的所述多個輸入電壓相乘;以及頁面緩衝器,耦合至所述記憶體陣列,且經配置以感測所述多個權重的所述多者與所述多個輸入電壓的多個乘積。
在一些實施例中,所述多條位元線的在所述區塊中的所述多者接收所述多個輸入電壓,且所述多條字元線的在所述區塊中的一者經配置以接收讀取電壓,而所述多條字元線的在所述區塊中的其他者經配置以接收通行電壓。
在一些實施例中,對應於所述多條位元線的所述多者與所述多條字元線的所述一者的記憶體胞元經配置以將儲存的所述多個權重的所述多者與接收的所述多個輸入電壓相乘,且產生所述多個乘積。
在一些實施例中,積體電路更包括計數器,其中所述計數器耦合至所述頁面緩衝器,且經配置以加總所述多個乘積。
在一些實施例中,所述多個輸入電壓的至少兩者彼此相異。
在一些實施例中,所述多個輸入電壓彼此相同。
在一些實施例中,所述頁面緩衝器包括第一快取以及第二快取。所述第一快取經配置以接收由所述多個權重的所述多者與所述多個輸入電壓的所述多個乘積轉換而成的多個第一邏輯訊號,並被預先寫入由多個額外輸入電壓轉換而成的多個第二邏輯訊號。所述第二快取經配置以將所述多個第一邏輯訊號與所述多個第二邏輯訊號相乘並累加所述多個第一邏輯訊號與所述多個第二邏輯訊號的多個乘積。
在一些實施例中,所述多個額外輸入電壓的至少兩者彼此相異且經轉換為不同的邏輯訊號。
在一些實施例中,所述多條字元線的在所述多個區塊中的所述多者經配置以接收所述多個輸入電壓,所述多個區塊中的一者的字元線電性隔離於所述多個區塊的另一者的字元線,所述多條位元線分別被所述記憶體陣列的所述多個區塊共用,且所述多條位元線的一者經配置以接收讀取電壓,而所述多條位元線的其他者經配置以接收通行電壓。
在一些實施例中,對應至所述多條字元線的所述多者與所述多條位元線的所述一者的記憶體胞元經配置以將儲存的所述多個權重的多者與接收的所述多個輸入電壓相乘,且產生所述多個乘積。
在一些實施例中,所述多個乘積經由所述多條位元線中的所述一者中而被加總。
在一些實施例中,對應至所述多條字元線的所述多者與所述多條位元線的所述一者的記憶體胞元具有大於或等於0V的起始電壓。
在一些實施例中,所述記憶體陣列為反及快閃記憶體陣列,且所述多個記憶體胞元為多個快閃記憶體胞元。
在一些實施例中,所述頁面緩衝器的數量為多數,且所述記憶體陣列的一區塊具有多個子區塊,所述多個子區塊分別耦合至所述多個頁面緩衝器的一者。
本揭露的積體電路的運算方法包括:進行至少一程式化操作,以將多個權重分別寫入所述多個記憶體胞元;將多個輸入電壓施加至所述多條位元線的在所述記憶體陣列的一區塊中的多者或所述多條字元線的在所述記憶體陣列的多個區塊中的多者,其中接收所述多個輸入電壓的記憶體胞元經配置以將儲存的所述多個權重中的多者與接收的所述多個輸入電壓相乘,以得到多個乘積;以及經由所述頁面緩衝器或經由所述多條位元線的一者加總所述多個乘積。
在一些實施例中,施加所述多個輸入電壓的步驟與加總所述多個乘積的步驟構成一循環,且所述積體電路的所述運算方法包括進行多次所述循環。
在一些實施例中,所述多次循環的一者的施加所述多個輸入電壓的步驟在所述多次循環的後一者的施加所述多個輸入電壓的步驟之前。
在一些實施例中,所述多次循環的一者的施加所述多個輸入電壓的步驟在時間上交疊於所述多次循環的前一者的加總所述多個乘積的步驟。
在一些實施例中,所述多個輸入電壓施加至所述多條位元線的在所述一區塊中的所述多者,且所述頁面緩衝器經配置以加總所述多個乘積。
在一些實施例中,所述多個輸入電壓施加至所述多條字元線的在所述多個區塊中的所述多者,且所述多個乘積經由所述多條位元線中的所述一者而被加總。
基於上述,本揭露的積體電路可操作於記憶體模式與運算模式中。積體電路包括記憶體陣列,例如是反及快閃記憶體陣列。積體電路可執行積項之和函數,且可用於人工智慧應用、仿神經型態運算系統以及機器學習系統的學習程序。在記憶體模式中,將權重寫入至記憶體陣列的記憶體胞元中。在運算模式中,將儲存的權重與經由位元線或字元線而傳遞至記憶體胞元的輸入電壓相乘,且累加上述權重與輸入電壓的乘積。相較於范紐曼型架構在與資料儲存單元(例如是記憶體積體電路)分離的資料處理單元(例如是中央處理單元)中執行運算,本揭露的積體電路可操作於記憶體模式與運算模式兩者中。因此,資料不再需要往返於資料處理單元與資料儲存單元之間,且可顯著地提高運算速度。特別來說,使用於將權重寫入記憶體胞元以及接收權重與輸入電壓的乘積的頁面緩衝器藉由大量且具有高平行度的位元線而耦合至記憶體陣列,
故頁面緩衝器具有相當高的頻寬。因此,積體電路可應用於巨量資料的運算,且可能不會出現如范紐曼型架構的效能瓶頸。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10、10a、10b、20:積體電路
100、100’、200:記憶體陣列
BL:位元線
BK1、BK2:區塊
BS:子區塊間匯流排系統
CA1:第一快取
CA2:第二快取
CT:計數器
GSL:接地選擇線
GST:接地選擇電晶體
MC:記憶體胞元
PB、PB’:頁面緩衝器
S100、S102、S1021、S1022、S102n、S104、S1041、S1042、S104n:步驟
SL:源極線
SSL:串選擇線
SST:串選擇電晶體
TL:子區塊
Wi、W1、W2:權重
WL、WL1、WL2、WL3、WLn:字元線
X、Xi、X1、X2:輸入電壓
圖1A是依照本揭露的一些實施例的積體電路的示意圖。
圖1B是圖1A所示例性繪示的積體電路的運算方法的流程圖。
圖2是依照本揭露的一些實施例的積體電路的示意圖。
圖3是依照本揭露的一些實施例的積體電路的示意圖。
圖4是依照本揭露的一些實施例的積體電路的示意圖。
圖1A是依照本揭露的一些實施例的積體電路10的示意圖。圖1B是圖1A所示例性繪示的積體電路10的運算方法的流程圖。
請參照圖1A,積體電路10可為記憶體電路,例如是非揮發性記憶體電路。在一些實施例中,積體電路10為反及快閃記憶體(NAND flash memory)電路,且可運用於例如是仿神經型態運算系統(neuromorphic computing system)、機器學習系統
(machine learning system)及人工智慧等包括執行乘積累加(multiply-and-accumulate,MAC)運算步驟的應用。MAC運算步驟可由積項之和(sum-of-products)函數來表示,如式(1)所示:
在式(1)中,經累加的多個積項分別為輸入值Xi與權重Wi的乘積。經累加的多個積項的權重Wi值可彼此相異。權重可經指定為一組常數,且多個積項之和隨著輸入值的改變而變化。此外,在演算法執行學習程序(learning procedure)時,多個學習程序的權重可彼此相異,而從多次積項之和中進行學習。舉例而言,經由在電腦中所進行的遠端訓練取得權重,且將此些權重下載至積體電路10。此些權重隨著遠端訓練的模式更改後,可再下載並更新積體電路10內的權重。
積體電路10包括記憶體陣列100。記憶體陣列100具有多個記憶體胞元MC。在一些實施例中,記憶體陣列100為三維記憶體陣列。如圖1A所示,各區塊(block)的記憶體胞元MC經配置為具有多數欄(或稱為串(string))與多數列(或稱為頁(page))。在積體電路10為反及快閃記憶體電路的實施例中,記憶體胞元MC可為浮置閘極電晶體(floating gate transistor)、半導體-氧化物-氮化物-氧化物-半導體(Semiconductor-oxide-nitride-oxide-semiconductor,SONOS)電晶體或其類似者。每一欄(或稱串)的記憶體胞元MC串連連接,且連接於一位元線BL與一源極線SL之間。在一些實施例中,多數欄(或稱串)的記憶體胞元MC共用
一條源極線SL。另一方面,多條字元線WL(如圖1A所示,例如是包括字元線WL1、字元線WL2、字元線WL3...與字元線WLn)中的一者連接每一列(或稱頁)的記憶體胞元MC。在一些實施例中,記憶體陣列100更包括串選擇電晶體SST與接地選擇電晶體GST。在此些實施例中,每一欄(或稱串)的記憶體胞元MC連接於串選擇電晶體SST與接地選擇電晶體GST之間。多個串選擇電晶體SST可分別連接至多條位元線BL的其中一者,而多個接地選擇電晶體GST可連接至源極線SL。此外,串選擇線SSL連接一列的串選擇電晶體SST,而接地選擇線GSL連接一列的接地選擇電晶體GST。
積體電路10可操作於記憶體模式與運算模式中。在記憶體模式中,可運用程式化操作、抹除操作與讀取操作而將資料寫入於記憶體胞元MC,或由記憶體胞元MC讀取資料。耦合至記憶體陣列100的周邊電路可支援上述的程式化操作、抹除操作與讀取操作。舉例而言,周邊電路可包括解碼器(未繪示)、頁面緩衝器(page buffer)PB等。在程式化操作期間,選擇一字元線WL與一些位元線BL,且經由頁面緩衝器PB與所選的字元線WL而將資料寫入對應於所選的字元線WL與位元線BL的記憶體胞元MC中。另一方面,在讀取操作期間,經由頁面緩衝器PB與所選的位元線BL而將資料由對應於所選的字元線WL與位元線BL的記憶體胞元MC讀出。在一些實施例中,每一程式化操作將資料寫入一頁的記憶體胞元MC,而每一讀取操作將資料由一頁的記憶體胞
元MC讀出。在積體電路10經配置以執行積項之和函數(如式(1)所示)的實施例中,藉由多次上述的程式化操作而將權重Wi(例如是包括圖1A所示的權重W1與權重W2)寫入於多個記憶體胞元MC中。寫入於多個記憶體胞元MC的權重Wi決定此些記憶體胞元MC的電導(conductance)或跨導(transconductance)。在一些實施例中,藉由雙位元模式(binary mode)而對記憶體胞元MC進行程式化,且權重Wi經儲存為雙位元位準(binary levels)。在替代實施例中,權重Wi經儲存為多位元位準或類比碼(analog code)。舉例而言,多位元位準可為N個位準,其中N為大於2的正整數。
在積體電路10的運算模式中,使儲存於記憶體胞元MC中的權重Wi與輸入電壓Xi相乘,且累加多個權重Wi與對應輸入電壓Xi的多個乘積。在一些實施例中,記憶體陣列100的一區塊的多條位元線BL經配置以接收輸入電壓Xi(如圖1A所示,例如是包括輸入電壓X1與輸入電壓X2)。在一些實施例中,此些位元線BL所接收的多個輸入電壓Xi具有特定分布(pattern),且此些輸入電壓Xi的至少兩者彼此相異。舉例而言,藉由雙位元模式施加多個輸入電壓Xi,且其中輸入電壓X1為高邏輯位準“1”,而輸入電壓X2為低邏輯位準“0”。作為替代地,多個輸入電壓Xi可經施加為多位元位準(例如是N個位準,其中N為大於2的正整數)或類比碼。記憶體陣列100的一區塊的多條字元線WL的一者經選擇而接收讀取電壓(read voltage),而記憶體陣列100的此區塊
的其他字元線WL則接收通行電壓(pass voltage)。在一些實施例中,連接至經選擇的字元線WL的一頁記憶體胞元MC接收讀取電壓而被導通。此外,當位元線BL將輸入電壓Xi輸入至此些導通的記憶體胞元MC時,儲存於此些導通的記憶體胞元MC中的多個權重Wi與對應的輸入電壓Xi相乘。在輸入電壓Xi經由位元線BL而傳遞至記憶體胞元MC的實施例中,儲存於記憶體胞元MC的權重Wi可視為記憶體胞元的電導(conductance),且權重Wi與輸入電壓Xi的乘積以電流的形式輸出。由於權重Wi與輸入電壓Xi的相乘發生於記憶體陣列100中,此乘法操作可視為一種記憶體內運算(in-memory computing)。
在一些實施例中,多個權重Wi與對應輸入電壓Xi的多個乘積輸出至經由位元線BL而耦合至記憶體陣列100的頁面緩衝器PB。頁面緩衝器PB中的感測放大器(sense amplifier,未繪示)可經配置以感測此些輸出的電流訊號。此外,耦合至頁面緩衝器PB的計數器(counter)CT可經配置以加總此些輸出的電流訊號(亦即多個權重Wi與對應輸入電壓Xi的多個乘積)。雖然圖1A所繪示的頁面緩衝器PB與計數器CT為彼此分離的構件,但頁面緩衝器PB與計數器CT也可替代地經整合為單一構件。頁面緩衝器PB與計數器CT設置於環繞記憶體陣列100的區域中,且緊鄰記憶體陣列100。因此,經由頁面緩衝器PB與計數器CT執行的加法操作可視為一種近記憶體運算(near-memory computing)。
至此,已藉由記憶體內運算(將多個權重Wi與對應輸入
電壓Xi相乘)以及近記憶體運算(將多個權重Wi與對應輸入電壓Xi的多個乘積加總)來執行積項之和函數(如式(1)所示)。相較於范紐曼型架構在與資料儲存單元(例如是記憶體積體電路)分離的資料處理單元(例如是中央處理單元)中執行運算,本揭露的積體電路10可操作於記憶體模式與運算模式兩者中。因此,資料不再需要往返於資料處理單元與資料儲存單元之間,且可顯著地提高運算速度。特別來說,使用於將權重Wi寫入記憶體胞元MC以及接收權重Wi與輸入電壓Xi的乘積的頁面緩衝器PB藉由大量且具有高平行度(parallelism)的位元線BL而耦合至記憶體陣列100,故頁面緩衝器PB具有相當高的頻寬。因此,積體電路10可應用於巨量資料的運算,且可能不會出現如范紐曼型架構的效能瓶頸。在一些實施例中,頁面緩衝器PB可具有大於或等於32kB的頻寬。
請參照圖1A與圖1B,積體電路10的運算方法可包括下列步驟。在步驟S100中,藉由進行多次上述的程式化操作而將權重Wi寫入至多個記憶體胞元MC。
在步驟S102中,將多個輸入電壓Xi施加至連接於一條字元線WL(例如是字元線WL1)的一頁記憶體胞元MC的位元線。如此一來,權重Wi與輸入電壓Xi於記憶體胞元MC中相乘,且權重Wi與輸入電壓Xi的乘積以電流訊號的形式經由位元線BL而輸出。此外,頁面緩衝器PB經配置以感測此些輸出的電流訊號。在步驟S104中,藉由例如是計數器CT的構件而加總此些輸出的電流訊號。步驟S102與步驟S104可構成對於單一頁面的記憶體
胞元MC執行積項之和函數的單一循環。隨後,進行其他循環,以對於其他頁面的記憶體胞元MC執行積項之和函數。舉例而言,其他循環包括含有步驟S1021與步驟S1041的循環、含有步驟S1022與步驟S1042的循環...以及含有步驟S102n與步驟S104n的循環等。在對於相鄰頁面的記憶體胞元MC執行積項之和函數的連續兩個循環中,將輸入電壓Xi施加至相鄰頁面的記憶體胞元MC的步驟中的一者(例如是步驟S1021)在另一者(例如是步驟S102)之後,且可至少部分地重疊於較先進行的循環中加總電流訊號的步驟(例如是步驟S104)。基於此管線式流程設計(pipeline timing flow design),一些步驟在時間上彼此交疊,故可進一步地提高積體電路10的運算速度。
圖2是依照本揭露的一些實施例的積體電路10a的示意圖。參照圖2所描述的積體電路10a及其運算方法相似於參照圖1A、圖1B所描述的積體電路10及其運算方法。以下僅描述兩者的差異處,相同或相似的部分則不再贅述。
請參照圖2,在一些實施例中,在運算模式中,記憶體陣列100的一區塊的多條位元線BL接收相同的輸入電壓X。換言之,在此些實施例中,此些位元線BL所接收的多個輸入電壓X並不具有特定分布(pattern)。舉例而言,在雙位元模式下,所有的位元線BL可經配置以接收為低邏輯位準“1”的輸入電壓X。如此一來,儲存於多個記憶體胞元MC內的多個權重Wi與相同的輸入電壓X相乘,且所得的多個乘積以電流訊號的形式經由放大感測
器(未繪示)轉換為邏輯訊號(例如是1與0),而輸入至頁面緩衝器PB’。在一些實施例中,頁面緩衝器PB’包括第一快取(cache)CA1與第二快取CA2。第一快取CA1經配置以接收並暫存上述的邏輯訊號(以下稱第一邏輯訊號),且被預先寫入由多個輸入電壓Xi所轉換而成的另一些邏輯訊號(以下稱第二邏輯訊號)。此些輸入電壓Xi具有特定分布(pattern)。換言之,多個輸入電壓Xi的至少兩者彼此相異。舉例而言,在雙位元模式下,多個輸入電壓Xi的一者可經轉換為高邏輯位準訊號“1”,而多個輸入電壓Xi的另外一者可經轉換為低邏輯位準訊號“0”。隨後,第二快取CA2內的計數器(未繪示)經配置以對第一邏輯訊號與第二邏輯訊號執行乘積累加運算。換言之,第二快取CA2經配置以將第一邏輯訊號與第二邏輯訊號相乘,並將所得的多個乘積加總。至此,已藉由乘法操作與加法操作執行積項之和函數,且上述的乘法操作與加法操作均可視為近記憶體運算。
圖3是依照本揭露的一些實施例的積體電路10b的示意圖。參照圖3所描述的積體電路10b及其運算方法相似於參照圖1A、圖1B所描述的積體電路10及其運算方法。以下僅描述兩者的差異處,相同或相似的部分則不再贅述。
請參照圖3,在一些實施例中,積體電路10b的記憶體陣列100’之一區塊(block)被分割為多個子區塊(tile)。舉例而言,如圖3所示,記憶體陣列100’的一區塊被分割為4個子區塊TL。多個子區塊TL分別包括記憶體陣列100’的一部分,且多個子區
塊TL彼此實體上分離。需注意的是,以簡潔起見,圖3僅繪示出各子區塊TL的位元線BL與字元線WL,而省略繪示各子區塊TL的其他構件(例如是包括如圖1A所示的記憶體胞元MC、串選擇電晶體SST、接地選擇電晶體GST、串選擇線SSL以及接地選擇線GSL)。多個子區塊TL沿著多數欄與多數列陣列排列。在一些實施例中,子區塊間匯流排系統(inter-tile bus system)BS耦合至多個子區塊TL且延伸於多個子區塊TL之間。此外,子區塊間匯流排系統BS更可耦合至定序控制器(sequencing controller,未繪示)。再者,各子區塊TL耦合至包括頁面緩衝器PB與計數器CT的周邊電路。在一些實施例中,耦合至同一欄中相鄰子區塊TL的周邊電路彼此相向,且耦合至同一列中相鄰子區塊TL的周邊電路位於此些子區塊TL的同一側。然而,所屬領域中具有通常知識者可依據設計需求而調整子區塊TL的數量以及子區塊TL與周邊電路的配置方式,本揭露並不以此為限。此外,在一些實施例中,各子區塊TL耦合至列解碼器與欄解碼器(均未繪示)。藉由將記憶體陣列100’分割為多個子區塊TL,可降低積體電路10b的電阻電容延遲效應(RC delay),而可進一步地提高積體電路10b的運算速度。
圖4是依照本揭露的一些實施例的積體電路20的示意圖。參照圖4所描述的積體電路20及其運算方法相似於參照圖1A、圖1B所描述的積體電路10及其運算方法。以下僅描述兩者的差異處,相同或相似的部分則不再贅述。
圖4繪示出積體電路20的記憶體陣列200之多個區塊,例如是包括區塊BK1與區塊BK2。記憶體陣列200的各區塊相似於圖1A所繪示的記憶體陣列100之區塊,且具有多數欄(或稱串)與多數列(或稱頁)的記憶體胞元MC。多條字元線WL的一者連接每一列的記憶體胞元MC,而每一欄(或稱串)的記憶體胞元MC連接於位元線BL與源極線SL之間。在一些實施例中,同一區塊中,多數欄(或稱串)的記憶體胞元MC共用同一源極線SL。此外,一區塊(例如是區塊BK1)的字元線WL與另一區塊(例如是區塊BK2)的字元線WL彼此不相連(或稱電性隔離),而不同區塊(例如是區塊BK1與區塊BK2)的位元線BL則彼此相連。換言之,多個區塊分別具有獨立的字元線WL,而具有共用的位元線BL。在一些實施例中,不同區塊的源極線SL可彼此耦接。在替代實施例中,一區塊(例如是區塊BK1)的源極線SL與另一區塊(例如是區塊BK2)的源極線SL彼此不相連(或稱電性隔離)。
當積體電路20操作於記憶體模式中時,藉由參照圖1A所描述的多個程式化操作而將多個權重Wi寫入記憶體陣列200的多個記憶體胞元MC。另一方面,當積體電路20操作於運算模式中時,不同區塊的多條字元線WL以及不同區塊所共用的一條位元線BL被選擇,且經選擇的字元線WL接收輸入電壓Xi。在一些實施例中,此些輸入電壓Xi具有特定分布(pattern),且此些輸入電壓Xi的至少兩者彼此相異。舉例而言,在雙位元模式下,多
個輸入電壓Xi的一者為高邏輯位準“1”,而多個輸入電壓Xi的另外一者為低邏輯位準“0”。此外,經選擇的位元線BL接收讀取電壓,而其他位元線BL接收通行電壓(例如是0V)。儲存於對應至所選擇的字元線WL與位元線的記憶體胞元MC內的權重Wi在此些記憶體胞元MC中與輸入電壓Xi相乘。在經由字元線WL而將輸入電壓Xi傳遞至記憶體胞元MC的實施例中,儲存在記憶體胞元MC中的權重Wi可視為記憶體胞元MC的跨導(transconductance)。多個權重Wi與對應輸入電壓Xi的多個乘積以電流訊號的形式而經由所選擇的位元線BL輸出。由於每一位元線BL被記憶體陣列200的不同區塊共用,此些來自於不同區塊的輸出電流訊號在所選擇的位元線BL處被累加。在一些實施例中,藉由耦合至記憶體陣列200的頁面緩衝器PB而感測多個權重Wi與對應輸入電壓Xi的多個乘積之和。
基於如圖4所示的配置方式,乘法操作是在記憶體胞元MC內進行,而加法操作是經由不同區塊所共用的位元線BL來進行。因此,乘法操作與加法操作均可視為記憶體內運算。
在參照圖4所說明的實施例中,在對記憶體胞元MC進行程式化操作之前,可避免使記憶體胞元MC過抹除(over-erased)。也就是說,在記憶體胞元MC為N型電晶體的實施例中,經抹除的記憶體胞元的起始電壓(threshold voltage)大於或等於0V。如此一來,在運算模式中,對應於未選的(unselected)字元線WL的記憶體胞元MC可接收例如是0V的通行電壓,而可被完全地關
閉(turn off)。因此,輸出的電流訊號可僅由對應至所選的字元線WL與位元線BL的記憶體胞元MC所貢獻,故可提升積體電路20的可靠度。
綜上所述,本揭露的積體電路可操作於記憶體模式與運算模式中。積體電路包括記憶體陣列,例如是反及快閃記憶體陣列。積體電路可執行積項之和函數,且可用於人工智慧應用、仿神經型態運算系統以及機器學習系統的學習程序。在記憶體模式中,將權重寫入至記憶體陣列的記憶體胞元中。在運算模式中,將儲存的權重與經由位元線或字元線而傳遞至記憶體胞元的輸入電壓相乘,且累加上述權重與輸入電壓的乘積。相較於范紐曼型架構在與資料儲存單元(例如是記憶體積體電路)分離的資料處理單元(例如是中央處理單元)中執行運算,本揭露的積體電路可操作於記憶體模式與運算模式兩者中。因此,資料不再需要往返於資料處理單元與資料儲存單元之間,且可顯著地提高運算速度。特別來說,使用於將權重寫入記憶體胞元以及接收權重與輸入電壓的乘積的頁面緩衝器藉由大量且具有高平行度的位元線而耦合至記憶體陣列,故頁面緩衝器具有相當高的頻寬。因此,積體電路可應用於巨量資料的運算,且可能不會出現如范紐曼型架構的效能瓶頸。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
10:積體電路
100:記憶體陣列
BL:位元線
CT:計數器
GSL:接地選擇線
GST:接地選擇電晶體
MC:記憶體胞元
PB:頁面緩衝器
SL:源極線
SSL:串選擇線
SST:串選擇電晶體
Wi、W1、W2:權重
WL、WL1、WL2、WL3、WLn:字元線
Xi、X1、X2:輸入電壓
Claims (14)
- 一種積體電路,包括: 記憶體陣列,包括多個記憶體胞元,分別經配置以被寫入權重; 多條字元線與多條位元線,其中所述多條字元線分別連接所述多個記憶體胞元中的一列記憶體胞元,所述多條位元線分別連接所述多個記憶體胞元的彼此串聯連接的一欄記憶體胞元,所述多條位元線的在所述記憶體陣列的一區塊中的多者或所述多條字元線的在所述記憶體陣列的多個區塊中的多者經配置以接收多個輸入電壓,且所述多個記憶體胞元中接收所述多個輸入電壓的多者經配置以將寫入的所述多個權重中的多者與接收的所述多個輸入電壓相乘;以及 頁面緩衝器,耦合至所述記憶體陣列,且經配置以感測所述多個權重的所述多者與所述多個輸入電壓的多個乘積。
- 如申請專利範圍第1項所述的積體電路,其中所述多條位元線的在所述區塊中的所述多者接收所述多個輸入電壓,且所述多條字元線的在所述區塊中的一者經配置以接收讀取電壓,而所述多條字元線的在所述區塊中的其他者經配置以接收通行電壓。
- 如申請專利範圍第2項所述的積體電路,其中對應於所述多條位元線的所述多者與所述多條字元線的所述一者的記憶體胞元經配置以將儲存的所述多個權重的所述多者與接收的所述多個輸入電壓相乘,且產生所述多個乘積。
- 如申請專利範圍第3項所述的積體電路,更包括計數器,其中所述計數器耦合至所述頁面緩衝器,且經配置以加總所述多個乘積。
- 如申請專利範圍第2項所述的積體電路,其中所述多個輸入電壓的至少兩者彼此相異。
- 如申請專利範圍第2項所述的積體電路,其中所述多個輸入電壓彼此相同。
- 如申請專利範圍第6項所述的積體電路,其中所述頁面緩衝器包括第一快取以及第二快取,所述第一快取經配置以接收由所述多個權重的所述多者與所述多個輸入電壓的所述多個乘積轉換而成的多個第一邏輯訊號並被預先寫入由多個額外輸入電壓轉換而成的多個第二邏輯訊號,且所述第二快取經配置以將所述多個第一邏輯訊號與所述多個第二邏輯訊號相乘並累加所述多個第一邏輯訊號與所述多個第二邏輯訊號的多個乘積。
- 如申請專利範圍第7項所述的積體電路,其中所述多個額外輸入電壓的至少兩者彼此相異且經轉換為不同的邏輯訊號。
- 如申請專利範圍第1項所述的積體電路,其中所述多條字元線的在所述多個區塊中的所述多者經配置以接收所述多個輸入電壓,所述多個區塊中的一者的字元線電性隔離於所述多個區塊的另一者的字元線,所述多條位元線分別被所述記憶體陣列的所述多個區塊共用,且所述多條位元線的一者經配置以接收讀取電壓,而所述多條位元線的其他者經配置以接收通行電壓。
- 如申請專利範圍第9項所述的積體電路,其中對應至所述多條字元線的所述多者與所述多條位元線的所述一者的記憶體胞元經配置以將儲存的所述多個權重的多者與接收的所述多個輸入電壓相乘,且產生所述多個乘積。
- 如申請專利範圍第10項所述的積體電路,其中所述多個乘積經由所述多條位元線中的所述一者中而被加總。
- 如申請專利範圍第10項所述的積體電路,其中對應至所述多條字元線的所述多者與所述多條位元線的所述一者的記憶體胞元具有大於或等於0 V的起始電壓。
- 如申請專利範圍第1項所述的積體電路,其中所述記憶體陣列為反及快閃記憶體陣列,且所述多個記憶體胞元為多個快閃記憶體胞元。
- 如申請專利範圍第1項所述的積體電路,其中所述頁面緩衝器的數量為多數,且所述記憶體陣列的一區塊具有多個子區塊,所述多個子區塊分別耦合至所述多個頁面緩衝器的一者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108138931A TWI704569B (zh) | 2019-10-29 | 2019-10-29 | 積體電路及其運算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108138931A TWI704569B (zh) | 2019-10-29 | 2019-10-29 | 積體電路及其運算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI704569B true TWI704569B (zh) | 2020-09-11 |
TW202117714A TW202117714A (zh) | 2021-05-01 |
Family
ID=73644169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108138931A TWI704569B (zh) | 2019-10-29 | 2019-10-29 | 積體電路及其運算方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI704569B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI760942B (zh) * | 2020-11-26 | 2022-04-11 | 國立中正大學 | 可變延遲計算裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5973958A (en) * | 1998-06-23 | 1999-10-26 | Advanced Micro Devices, Inc. | Interlaced storage and sense technique for flash multi-level devices |
US20130003459A1 (en) * | 2011-06-28 | 2013-01-03 | Seagate Technology Llc | Read Error Recovery for Solid-State Memory Based on Cumulative Background Charges |
US20190189221A1 (en) * | 2017-12-19 | 2019-06-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, memory systems and methods of operating nonvolatile memory devices |
US10381071B1 (en) * | 2018-07-30 | 2019-08-13 | National Tsing Hua University | Multi-bit computing circuit for computing-in-memory applications and computing method thereof |
TW201935325A (zh) * | 2018-02-13 | 2019-09-01 | 旺宏電子股份有限公司 | 用於類神經計算機系統的裝置結構 |
-
2019
- 2019-10-29 TW TW108138931A patent/TWI704569B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5973958A (en) * | 1998-06-23 | 1999-10-26 | Advanced Micro Devices, Inc. | Interlaced storage and sense technique for flash multi-level devices |
US20130003459A1 (en) * | 2011-06-28 | 2013-01-03 | Seagate Technology Llc | Read Error Recovery for Solid-State Memory Based on Cumulative Background Charges |
US20190189221A1 (en) * | 2017-12-19 | 2019-06-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, memory systems and methods of operating nonvolatile memory devices |
TW201935325A (zh) * | 2018-02-13 | 2019-09-01 | 旺宏電子股份有限公司 | 用於類神經計算機系統的裝置結構 |
US10381071B1 (en) * | 2018-07-30 | 2019-08-13 | National Tsing Hua University | Multi-bit computing circuit for computing-in-memory applications and computing method thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI760942B (zh) * | 2020-11-26 | 2022-04-11 | 國立中正大學 | 可變延遲計算裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202117714A (zh) | 2021-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102302187B1 (ko) | 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치 | |
US10262745B2 (en) | Apparatuses and methods using dummy cells programmed to different states | |
US9858993B2 (en) | Non-volatile memory device and method of programming the same | |
KR102402668B1 (ko) | 비휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 저장 장치 | |
US8385120B2 (en) | Method of programming a nonvolatile memory device | |
KR20190073943A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
US10268575B2 (en) | Nonvolatile memory device and memory system including the same | |
KR20190012771A (ko) | 컨트롤러 및 그 동작 방법 | |
KR20100111532A (ko) | 불휘발성 메모리 장치의 프로그램 방법 | |
US10607704B2 (en) | Semiconductor memory device and method of operating the same | |
KR20180027276A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
CN111798904A (zh) | 非易失性存储器装置、其操作方法和存储器系统 | |
US11923018B2 (en) | Semiconductor memory device and method with multiple verify voltages | |
KR20180065268A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
KR20190073128A (ko) | 메모리 장치 및 그 동작 방법 | |
TWI704569B (zh) | 積體電路及其運算方法 | |
CN111341370B (zh) | 半导体存储器装置、控制器、存储装置及其操作方法 | |
US10937511B2 (en) | Semiconductor memory device, memory system including controller, and method of operating controller | |
US20200183618A1 (en) | Non-volatile memory devices and methods of operating same | |
US11081182B2 (en) | Integrated circuit and computing method thereof | |
TWI836661B (zh) | 記憶體 | |
JP7503678B2 (ja) | 半導体装置内における信号転送の管理 | |
US11017844B2 (en) | Semiconductor memory device | |
US20220180931A1 (en) | Semiconductor memory device and method of operating the same | |
US20240170070A1 (en) | Operation method of memory, memory, memory system, and electronic device |