TWI772034B - 記憶體內運算系統 - Google Patents
記憶體內運算系統 Download PDFInfo
- Publication number
- TWI772034B TWI772034B TW110118502A TW110118502A TWI772034B TW I772034 B TWI772034 B TW I772034B TW 110118502 A TW110118502 A TW 110118502A TW 110118502 A TW110118502 A TW 110118502A TW I772034 B TWI772034 B TW I772034B
- Authority
- TW
- Taiwan
- Prior art keywords
- signal
- flip
- flop
- circuit
- electrically connected
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Complex Calculations (AREA)
Abstract
一種記憶體內運算系統包含一靜態隨機存取記憶體陣列、一漣波進位運算單元、一運算控制單元及一自動切換寫回單元,該運算控制單元用以控制該靜態隨機存取記憶體輸出欲進行運算之兩個儲存資料的邏輯數據,該漣波進位運算單元依據該邏輯數據輸出兩個儲存資料的運算數據,該自動切換寫回單元再將運算數據回存該靜態隨機存取記憶體陣列中而完成記憶體內運算。
Description
本發明是關於一種記憶體內運算系統,特別是關於一種具有靜態隨機存取記憶體陣列之記憶體內運算系統。
現今計算機系統有著進行人工智慧、類神經網路之等需要大量運算資源的需求,使得運算速度一直是計算機系統的發展重點,但計算機系統的運算速度基於其基礎設計而存在著范紐曼瓶頸(von Neumann bottleneck),也就是因為中央處理單元及記憶體分別獨立設置,使得中央處理單元與記憶體之間的數據傳輸時間成為了無法降低的運算時間,導致以先進半導體製程製成的中央處理單元及記憶體雖然已有著突破性的運算速度,但整體計算機系統的運算速度仍受到范紐曼瓶頸的限制,為了打破這個限制,可在記憶體單元內完成運算之記憶體內運算系統已經成為計算機系統提高運算速度的研究重點之一。
本發明的主要目的在於藉由運算控制單元及自動切換寫回單元達成記憶體內運算系統的數據運算並將運算結果自動回存至記憶體中,因此可突破運算瓶頸而大幅提高運算速度。
本發明之一種記憶體內運算系統包含一靜態隨機存取記憶體陣列、一漣波進位運算單元、一運算控制單元及一自動切換寫回單元,該靜態隨機存取記憶體陣列具有複數個記憶體單元、複數個2T開關單元組及一預充電電路,各該記憶體單元具有一儲存節點及一反儲存節點,各該2T開關單元組電性連接各該記憶體單元之該儲存節點及該反儲存節點,該預充電電路電性連接該些2T開關單元組,該些2T開關單元組輸出複數個邏輯數據,該漣波進位運算單元電性連接該些2T開關單元組以接收該些邏輯數據,且該漣波進位運算單元輸出複數個運算數據,該運算控制單元電性連接該靜態隨機存取記憶體陣列,該運算控制單元用以輸出複數個控制訊號至該預充電電路及該些2T開關單元組,以控制該預充電電路及各該2T開關單元組的開啟或關閉,該自動切換寫回單元電性連接該漣波進位運算單元及該靜態隨機存取記憶體陣列,以由該些漣波進位運算單元接收該些運算數據,且該自動切換寫回單元將該些運算數據寫回該靜態隨機存取記憶體陣列之該些記憶體單元中。
本發明藉由該運算控制單元輸出之訊號控制該靜態隨機存取記憶體陣列進行該些邏輯數據運算,並藉由該漣波進位運算單元依據該些邏輯數據求得所需之該些運算數據,最後藉由該自動切換寫回單元將該些運算數據寫回該靜態隨機存取記憶體陣列中,由於直接於記憶體中完成運算,可突破運算瓶頸而大幅提高運算速度。
請參閱第1圖,其為本發明之一實施例,一種記憶體內運算系統100的功能方塊圖,其包含一靜態隨機存取記憶體陣列110、一漣波進位運算單元120、一運算控制單元130、一自動切換寫回單元140、一SRAM控制單元150及一欄選擇器160。
請參閱第2圖,為本實施例之該靜態隨機存取記憶體陣列110電路圖,該靜態隨機存取記憶體陣列110具有複數個記憶體單元111、複數個2T開關單元組112及複數個預充電電路113,各該記憶體單元111具有一儲存節點Q及一反儲存節點Qb,各該2T開關單元組112電性連接各該記憶體單元111之該儲存節點Q及該反儲存節點Qb,該預充電電路113電性連接該些2T開關單元組112,該些2T開關單元組112輸出複數個邏輯數據。
在本實施例中,共具有4列×4欄之16個該記憶體單元111,每個記憶體單元111皆電性連接一組該2T開關單元組,其中,請參閱第3圖,各該2T開關單元組112具有一進位值2T開關112a、一反或值2T開關112b及一及值2T開關112c。該進位值2T開關112a電性連接該記憶體單元111之該儲存節點Q及一反進位值線11,且該進位值2T開關112a受到一進位運算控制訊號S及該記憶體單元111之該儲存節點Q之電位的控制。該反或值2T開關112b電性連接該記憶體單元111之該儲存節點Q及一反或值線12,且該反或值2T開關112b受到一邏輯運算控制訊號C及該記憶體單元111之該儲存節點Q之電位的控制。該及值2T開關112c電性連接該記憶體單元111之該反儲存節點Qb及一及值線13,且及值2T開關112c受到該邏輯運算控制訊號C及該記憶體單元111之該反儲存節點Qb之電位的控制。
請參閱第2及3圖,同一欄之該記憶體單元111之該2T開關單元組112電性連接同一個該預充電電路113。請參閱第3圖,該預充電電路113具有3個該預充電電晶體113a,各該充電電晶體113a分別電性連接該反進位值線11、該反或值線12及該及值線13,各該充電電晶體113a受一預充電控制訊號PreC控制而在導通時將該反進位值線11、該反或值線12及該及值線13拉至高電位。此外,分別電性連接至該反進位值線11、該反或值線12及該及值線13的三個旁路電容BC則用以穩定電壓值。
請參閱第4圖,為本實施例之該記憶體單元111的電路圖,該記憶體單元111為7T之靜態隨機存取單端讀取記憶體架構,其具有2個P型電晶體MP201~202及5個N型電晶體MN201~205,其中相互電性連接之P型電晶體MP201~202用以鎖存儲存於該儲存節點Q及該反儲存節點Qb中的數據,N型電晶體MN201~203則分別受3個控制訊號WL、WA、WAB控制進行數據的讀取或寫入,N型電晶體MN204~205則分別提供該儲存節點Q及該反儲存節點Qb一個放電路經,以避免漏電流累積而導致儲存數據的反轉。
請再參閱第4圖,一反位元線14電性連接該記憶體單元111以讀取該記憶體單元111之該反儲存節點Qb數據,或是將數據寫入該記憶體單元111中,一位元線15則經由一反向器INV電性連接該反位元線14以得到儲存於該儲存節點Q中之數據的電位大小。N型電晶體MN206則受到一預放電控制訊號PreD控制,以在該記憶體單元111進行寫入前導通時將該反位元線14放電至低電位,以避免影響該記憶體單元111的數據讀取及寫入。
在本實施例中,該記憶體單元111在寫入0時,該預放電控制訊號PreD上升至高電位使該N型電晶體MN206導通,該反位元線14放電至低電位,同時,控制訊號WL、WAB為高電位,WA為低電位而導通N型電晶體MN201、MN203,截止N型電晶體MN202,使該儲存節點Q降至低電位而完成寫入0。該記憶體單元111在寫入1時,該預放電控制訊號PreD上升至高電位使該N型電晶體MN206導通,該反位元線14放電至低電位,同時,控制訊號WL、WA為高電位,WAB為低電位而導通N型電晶體MN201、MN202,截止N型電晶體MN203,使該反儲存節點Qb降至低電位導通該P型電晶體MP202而完成寫入1。該記憶體單元111於讀取時,該預放電控制訊號PreD下降至低電位使該N型電晶體MN206截止,同時,控制訊號WL、WA為高電位,WAB為低電位而導通N型電晶體MN201、MN202,截止N型電晶體MN203,使該反儲存節點Qb的電位傳送至該反位元線14,並經由該反向器反向至該位元線15而完成讀取。
請參閱第5及6圖,該些2T開關單元組112輸出該些邏輯數據包含一反進位值CB、一反或值NOR及一及值AND,且進行記憶體內運算時,其中一個該進位值2T開關112a及其中兩個該反或值2T開關112b及該及值2T開關112c開啟,其餘之該些進位值2T開關112a、該些反或值2T開關112b及該些及值2T開關112c關閉。
請參閱第5圖,該反進位值CB是兩組多位元之數據相加時,前一位元進行加法運算而得並存入該記憶體單元111中之進位值的反向值。以該進位值為1儲存於第2位元之該記憶體單元111為例,在讀取該反進位值CB時,先以該預充電電路113拉高該反進位值線11的電位,再將該進位運算控制訊號S2提高至高電位,由於第2位元之該儲存節點Q2所儲存的進位值為1,使得第2位元之該進位值2T開關112a導通,該反進位值線11經由該進位值2T開關112a接地而降至低電位,即得到該進位值1的反向值0。
請參閱第6圖,該反或值NOR及該及值AND則是分別儲存於兩個位元之該記憶體單元111之數據之間的邏輯數據,以儲存於第0位元之值1及儲存於第1位元之值0進行運算為例。先以該預充電電路113拉高該反或值線12及該及值線13的電位,再將該邏輯運算控制訊號C0及C1提高至高電位,由於第0位元之該儲存節點Q0所儲存的值為1,該反儲存節點Qb0所儲存的值為0,使得第0位元之該反或值2T開關112b導通、該及值2T開關112c截止,該反或值線12經由該反或值2T開關112b接地而降至低電位。由於第1位元之該儲存節點Q1所儲存的值為0,該反儲存節點Qb1所儲存的值為1,使得第1位元之該反或值2T開關112b截止、該及值2T開關112c導通,該及值線13經由該及值2T開關112c接地而降至低電位,而可得到反或值NOR與該及值AND皆為0的結果。
請參閱第6圖,接著以儲存於第0位元之值0及儲存於第1位元之值0進行運算為例,先以該預充電電路113拉高該反或值線12及該及值線13的電位,再將該邏輯運算控制訊號C0及C1提高至高電位,由於第0位元之該儲存節點Q0所儲存的值為0,該反儲存節點Qb0所儲存的值為1,使得第0位元之該反或值2T開關112b截止、該及值2T開關112c導通,該及值線13經由該及值2T開關112c接地而降至低電位。由於第1位元之該儲存節點Q1所儲存的值為0,該反儲存節點Qb1所儲存的值為1,使得第1位元之該反或值2T開關112b截止、該及值2T開關112c導通,該及值線13經由該及值2T開關112c接地而降至低電位,而可得到反或值為1與該及值為0的結果。
請參閱第1圖,該漣波進位運算單元120電性連接該些2T開關單元組112以接收該些邏輯數據,且該漣波進位運算單元120根據該些邏輯數據輸出複數個運算數據。請參閱第7圖,在本實施例中,該漣波進位運算單元120具有一邏輯計算電路121、一加法電路122及一進位電路123,該邏輯計算電路121電性連接該些2T開關單元組112以接收該反進位值CB、該反或值NOR及該及值AND,且該邏輯計算電路121根據該反進位值CB、該反或值NOR及該及值AND輸出複數個邏輯運算數據,在本實施例中,該些邏輯運算數據包含一反及值NAND、一反互斥或值XNOR、一互斥或值XOR及一進位值Cl。在本實施例中,該邏輯計算電路121具有三個反向器及一個反或閘,以藉由該些邏輯閘的邏輯運算得到該些邏輯運算數據。
請參閱第7圖,該加法電路122電性連接該些2T開關組112及該邏輯計算電路121以接收該反進位值CB、該互斥或值XOR、該進位值Cl及該反互斥或值XNOR,且該加法單元122根據該些邏輯數據及該些邏輯運算數據輸出一加法值SUM,在本實施例中,該加法電路122由兩個P型電晶體MP6、MP7及兩個N型電晶體MN9、MN10構成,該些電晶體藉由該反進位值CB、該互斥或值XOR、該進位值Cl及該反互斥或值XNOR的控制輸出該加法值SUM。
該進位電路123電性連接該些2T開關單元組112及該邏輯計算電路121以接收該及值AND、該互斥或值XOR、該進位值Cl、該反互斥或值XNOR及該反及值NAND,且該加法單元122根據該邏輯數據及該些該些邏輯運算數據輸出一進位值CO。在本實施例中,該進位電路123由三個P型電晶體MP3、MP4、MP5及三個N型電晶體MN6、MN7、MN8構成,該些電晶體藉由該及值AND、該互斥或值XOR、該進位值Cl、該反互斥或值XNOR及該反及值NAND的控制輸出該進位值CO。
較佳的,該及值線13之該及值AND還可作為兩個位元之數據進相乘而得的積值PRO,而該邏輯計算電路121邏輯運算而得之該互斥閘值XOR則還可作為兩個位元之數據的符號相乘而得的符號值SIG,因此,該漣波進位運算單元120除了可用於計算兩個位元之數據之間的加法運算外,還可用於兩個具符號之數據之間的乘法運算。
請參閱第1及8圖,該運算控制單元130電性連接該靜態隨機存取記憶體陣列110,該運算控制單元130用以輸出複數個控制訊號至該靜態隨機存取記憶體陣列110之該預充電電路113及該些2T開關單元組112,以控制該預充電電路113及各該2T開關單元組112的開啟或關閉,進而讓對應位址之該記憶體單元111所儲存的數據進行加法或乘法之運算。
請參閱第8圖,在本實施例中,該運算控制單元130具有一運算時脈控制電路131、一自動預充電切換控制電路132、一位址選擇電路133及一內運算控制電路134,該運算時脈控制電路131用以接收一加法運算訊號ADD、一乘法運算訊號MUL及一時脈訊號Clk,且該運算時脈控制電路131輸出一運算訊號OP、一總運算訊號Opprec、一寫入選擇訊號Wrsel及一反讀取寫入訊號Dffwr,在本實施例中,該運算時脈控制電路131具有一第一或閘131a、一第一正反器131b、一第二正反器131c、一第三正反器131d及一第四正反器131e,該第一或閘131a接收該加法運算訊號ADD及該乘法運算訊號MUL,且該第一或閘131a輸出該運算訊號OP,其中,該加法運算訊號ADD或該乘法運算訊號MUL上升至高電位表示進行記憶體準備進行加法或乘法運算,因此,該運算訊號OP上升至高電位。
該第一正反器131b接收一讀寫控制訊號wr_en及該時脈訊號Clk,且該第一正反器131b經由緩衝器輸出一讀取寫入訊號Dffwr,該第一正反器131b輸出之該讀取寫入訊號Dffwr使用以讓該讀寫控制訊號wr_en與該時脈訊號Clk同步。該第二正反器131c電性連接該第一或閘131a,該第二正反器131c接收該時脈訊號Clk及該運算訊號OP,且該第二正反器131c輸出該總運算訊號Opprec,該第二正反器131c輸出之該總運算訊號Opprec是用以讓該運算訊號OP與該時脈訊號Clk同步。該第三正反器131d電性連接該第一或閘131a及該第一正反器131b以接收該運算訊號OP及該讀取寫入訊號Dffwr,且該第三正反器131d輸出該寫入選擇訊號Wrsel,該第三正反器131d用以將該讀取寫入訊號Dffwr除頻而輸出該寫入選擇訊號Wrsel。該第四正反器131e電性連接第一正反器131b,該第四正反器接收該讀取寫入訊號Dffwr及該時脈訊號Clk,且該第四正反器131e經由緩衝器輸出該反讀取寫入訊號Dffwrb,該第四正反器131e用以反向該讀取寫入訊號Dffwr而輸出該反讀取寫入訊號Dffwrb。
該自動預充電切換控制電路132電性連接該運算時脈控制電路131以接收該總運算訊號Opprec、該寫入選擇訊號Wrsel及該反讀取寫入訊號Dffwr,且該自動預充電切換控制電路132輸出一預充電觸發訊號PreC_bit。在本實施例中,該自動預充電時脈控制電路132具有一第五正反器132a、一第六正反器132b、一計數器132c及一第一解碼器132d。該第五正反器132a電性連接運算時脈控制電路131以接收該總運算訊號Opprec及該運算訊號OP,且該第五正反器132a輸出一計數啟動訊號Cimp,第五正反器132a輸出之該計數啟動訊號Cimp用以在該總運算訊號Opprec上升至高電位時啟動該計數器132c進行計數。
該第六正反器132b電性連接該第三正反器131d及該第四正反器131e以接收該寫入選擇訊號Wrsel及該反讀取寫入訊號Dffwrb,且該第六正反器132b輸出一預充電時脈訊號PreCclk,該第六正反器132b輸出之該預充電時脈訊號PreCclk為該寫入選擇訊號Wrsel及該反讀取寫入訊號Dffwrb之間的作動,用以決定該第一解碼器132d輸出之訊號產生的頻率。該計數器132c電性連接該第五正反器132a及該第六正反器132b以接收該計數啟動訊號Cimp及該預充電時脈訊號PreCclk,且該計數器132c受到該計數啟動訊號Cimp觸發後開始計數並輸出一計數訊號ct,該第一解碼器132d電性連接該計數器132c以接收該計數訊號ct,且該第一解碼器132d輸出該預充電觸發訊號PreC_bit,該預充電觸發訊號PreC_bit用以觸發不同欄的該預充電電路113。
該位址選擇電路133電性連接該運算時脈控制電路131以接收該運算訊號OP,該位址選擇電路133另接收一第一運算位址訊號OpX_add、一第二運算位址訊號OpY_add、一符號位址訊號MS_add及一運算結果位址訊號CR_add,且該位址選擇電路133輸出一運算位址控制訊號w0、一進位位址控制訊號w2及一運算結果位址控制訊號CR_DFF,該運算位址控制訊號w0、該進位位址控制訊號w2及該運算結果位址控制訊號CR_DFF用以決定欲進行運算的該記憶體單元111位址及運算後之運算結果欲儲存的該記憶體單元111位址。
在本實施例中,該位址選擇電路133具有一第七正反器133a、一第八正反器133b、一第九正反器133c、一第十正反器133d、一第二解碼器133e、一第三解碼器133f、一第四解碼器133g及一第二或閘133h。該第七正反器133a電性連接該第一或閘131a,該第七正反器133a接收該運算訊號OP及該第一運算位址訊號OpX_add,且該第七正反器133a輸出一第一運算列訊號OpX,該第八正反器133b電性連接該第一或閘131a,該第八正反器133b接收該運算訊號OP及該第二運算位址訊號OpY_add,且該第八正反器133b輸出一第二運算列訊號OpY,該第九正反器133c電性連接該第一或閘133c,該第九正反器133c接收該運算訊號OP及該符號位址訊號MS_add,且該第九正反器133c輸出一進位列訊號MS,該第十正反器133d電性連接該第一或閘131a,該第十正反器133d接收該運算訊號OP及該預算結果位址訊號CR_DFF,且該第十正反器133d輸出該運算結果位址控制訊號CR_DFF。
該第二解碼器133e電性連接該第七正反器133a以接收該第一運算列訊號OpX,且該第二解碼器133e輸出一第一解碼訊號,該第三解碼器133f電性連接該第八正反器133b以接收該第二運算列訊號OpY,且該第三解碼器133f輸出一第二解碼訊號,該第四解碼器133g電性連接該第八正反器133b以接收該進位列訊號MS,且該第四解碼器133g輸出該進位位址控制訊號w2,該第二或閘133h電性連接該第一解碼器132d及該第二解碼器133e以接收該第一解碼訊號及該第二解碼訊號,且該第二或閘133h輸出該運算位址控制訊號w0。
該內運算控制電路134電性連接該運算時脈控制電路131、該自動預充電切換控制電路132及該位址選擇電路133以接收該運算訊號OP、該反讀取寫入訊號Dffwrb、該預充電觸發訊號PreC_bit、該運算位址控制訊號w0及該進位位址控制訊號w2,且該內運算控制電路134輸出一預充電控制訊號PreC、一邏輯運算控制訊號C及一進位運算控制訊號S至該預充電電路113及該些2T開關單元組112進行控制。
在本實施例中,該內運算控制電路134具有一預充電控制器134a及一內運算記憶體控制器134b,該預充電控制器134a電性連接該運算時脈控制電路131以接收該運算訊號OP及該反讀取寫入訊號Dffwrb,且該預充電控制器134a輸出一運算位元控制訊號sc及一預充電位元控制訊號pcc,由於記憶體內運算需先對該反進位值線11、該反或值線12及該及值線13進行預充電後再進行該些2T開關單元組112的切換,因此,該預充電控制器134a藉由延遲元件讓該預充電位元控制訊號pcc先觸發該預充電電路113進行預充電後再由該運算位元控制訊號sc觸發2T開關單元組112。
該內運算記憶體控制器134b電性連接該預充電控制器134a、該自動預充電切換控制電路132及該位址選擇電路133,該內運算記憶體控制器134b接收該運算位元控制訊號sc、該預充電位元控制訊號pcc、該預充電觸發訊號PreC_bit、該運算位址控制訊號w0及該進位位址控制訊號w2,且該內運算記憶體控制器134b輸出該預充電控制訊號PreC、該邏輯運算控制訊號C及該進位運算控制訊號S。其中,該內運算記憶體控制器134b讓該預充電觸發訊號PreC_bit由該預充電位元控制訊號pcc觸發而得到該預充電控制訊號PreC,並讓該運算位址控制訊號w0及該進位位址控制訊號w2由該運算位元控制訊號sc觸發而得到該邏輯運算控制訊號C及該進位運算控制訊號S,該預充電控制訊號PreC用以對該些預充電電路進行控制,該邏輯運算控制訊號C及該進位運算控制訊號S則用以對該些2T開關單元組112進行控制,以將對其中兩個該記憶體單元111的儲存數據進行運算。
請參閱第1圖,該自動切換寫回單元140電性連接該漣波進位運算單元120及該靜態隨機存取記憶體陣列110,以由該些漣波進位運算單元120接收該些運算數據,且該自動切換寫回單元140將該些運算數據寫回該靜態隨機存取記憶體陣列110之該些記憶體單元111中。
請參閱第9圖,該自動切換寫回單元140具有一位元線自動切換電路141、一資料切換電路142及一字元線自動切換電路143,該位元線自動切換電路141電性連接該運算時脈控制電路131以接收該寫入選擇訊號Wrsel及該讀取寫入訊號Dffwr,且該位元線自動切換電路141輸出一位元線切換訊號BL_auto,在本實施例中,該自動切換寫回單元141具有一第十一正反器141a及一位元線計數器141b,該第十一正反器141a接收反向之該寫入選擇訊號Wrsel及反向之該讀取寫入訊號Dffwr,並以反向之該讀取寫入訊號Dffwr觸發該寫入選擇訊號Wrsel而輸出一位元線時脈訊號BL_Clk至該位元線計數器141b進行計數,該位元線計數器141b輸出該位元線切換訊號BL_auto,以決定欲存入之該記憶體單元111的欄數。
該字元線自動切換電路143電性連接該運算時脈控制電路131及該位址選擇電路133,該字元線自動切換電路143接收該加法運算訊號ADD、該乘法運算訊號MUL、該運算訊號OP、該反讀取寫入訊號Dffwrb、該符號位址訊號MS_add及該運算結果位址控制訊號CR_DFF,且該字元線自動切換電路143輸出一字元線切換訊號WL_auto。在本實施例中,該字元線自動切換電路143具有一及閘143a、一第十二正反器143b、一第一多工器143c、一第二多工器143d及一第三或閘143e。該及閘143a接收該反讀取寫入訊號Dffwrb及該運算訊號OP,該第十二正反器143b電性連接該及閘143a,且該第十二正反器143輸出一記憶體內運算選擇訊號CIM_datasel,該記憶體內運算選擇訊號CIM_datasel用以在加法運算中交替切換存入加法值、進位值以及在乘法運算中交替切換存入積值、符號值。
該第一多工器143c電性連接該第十二正反器143b,且該第一多工器接收該加法運算訊號ADD、該符號位址訊號MS_add、該運算結果位址控制訊號CR_DFF及該記憶體內運算選擇訊號CIM_datasel,當該加法訊算訊號ADD為高電位時,該第一多工器143c啟動,並由該記憶體內運算選擇訊號CIM_datasel選擇其輸出為該符號位址訊號MS_add或該運算結果位址控制訊號CR_DFF。該第二多工器143d電性連接該第十二正反器143b,且該第二多工器接收該乘法運算訊號MUL、該符號位址訊號MS_add、該運算結果位址控制訊號CR_DFF及該記憶體內運算選擇訊號CIM_datasel,當該乘法運算訊號MUL為高電位時,該第二多工器啟動,並由該記憶體內運算選擇訊號CIM_datasel其輸出為該符號位址訊號MS_add或該運算結果位址控制訊號CR_DFF。該第三或閘143e電性連接該第一多工器143c及該第二多工器143d,且該第三或閘143e輸出該字元線切換訊號WL_auto,以決定欲存入之該記憶體單元111的列數。
該資料切換電路142電性連接該位元線自動切換電路141及該漣波進位運算單元120,該資料切換電路142接收該位元線切換訊號BL_auto及該些運算數據,且該資料切換電路142輸出一記憶體內運算資料CIM_Data。在本實施例中,該資料切換電路142具有一第三多工器142a、一第四多工器142b、一第五多工器142c、一第六多工器142d、一第七多工器142e、一第八多工器142f、一第二及閘142g、一第三及閘142h及一第四或閘142i。該第三多工器142a接收該加法值SUM及該位元線切換訊號BL_auto,並依據該位元線切換訊號BL_auto輸出對應位元線之該加法值SUM。該第四多工器142b接收該進位值CO及該位元線切換訊號BL_auto,並依據該位元線切換訊號BL_auto輸出對應位元線之該進位值CO。該第五多工器142c接收該積值PRO及該位元線切換訊號BL_auto,並依據該位元線切換訊號BL_auto輸出對應位元線之該積值SUM。該第六多工器142d接收該符號值SIG及該位元線切換訊號BL_auto,並依據該位元線切換訊號BL_auto輸出對應位元線之該符號值SIG。
該第七多工器142e電性連接該第三多工器142a及該第四多工器142b,且該第七多工器142e接收該記憶體內運算選擇訊號CIM_datasel,該第七多工器142e輸出一加法運算結果訊號add_data,該加法運算結果訊號add_data由該記憶體內運算選擇訊號CIM_datasel切換為該加法值SUM或該進位值CO。該第八多工器142f電性連接該第五多工器142c及該第六多工器142d,且該第八多工器142f接收該記憶體內運算選擇訊號CIM_datasel,該第八多工器142f輸出一乘法運算結果訊號mul_data,該乘法運算結果訊號mul_data由該記憶體內運算選擇訊號CIM_datasel切換為該積值PRO或該符號值SIG。
該第二及閘142g接收該加法運算結果訊號add_data及該加法運算訊號ADD,以由該加法運算訊號ADD啟動該第二及閘142g輸出該加法運算結果訊號add_data,該第三及閘142h接收該乘法運算結果訊號mul_data及該乘法運算訊號MUL,以由該乘法運算訊號MUL啟動該第三及閘142h輸出該乘法運算結果訊號mul_data。該第四或閘142i電性連接該第二及閘142g及該第三及閘142h,且該第四或閘輸出該記憶體內運算資料CIM_Data。
請參閱第1圖,該SRAM控制單元150接收一重置訊號rst、一字元位址訊號W_add、一位元位址訊號B_add、一輸入數據Data、該讀寫控制訊號wr_en及該時脈訊號Clk。於一般讀寫模式中,該SRAM控制單元150根據該重置訊號rst、該字元位址訊號W_add、該位元位址訊號B_add、該讀寫控制訊號wr_en及該時脈訊號clk輸出該些控制訊號WS、WA、WAB、WL及該預充電控制訊號PreD至該靜態隨機存取記憶體陣列110進行數據的寫入或讀取,並經由該欄選擇器160的選擇輸出為輸出數據Data_out。在記憶體內運算模式中,該SRAM控制單元150接收該自動切換寫回單元140之該位元線切換訊號BL_auto、該字元線切換訊號WL_auto及該記憶體內運算資料CIM_Data,以根據該位元線切換訊號BL_auto及該字元線切換訊號WL_auto輸出該些控制訊號WS、WA、WAB、WL控制該靜態隨機存取記憶體陣列110存入該記憶體內運算資料CIM_Data。
本發明藉由該運算控制單元130輸出之訊號控制該靜態隨機存取記憶體陣列110進行該些邏輯數據運算,並藉由該漣波進位運算單元120依據該些邏輯數據求得所需之該些運算數據,最後藉由該自動切換寫回單元140將該些運算數據寫回該靜態隨機存取記憶體陣列110中,由於直接於記憶體中完成運算,可突破運算瓶頸而大幅提高運算速度。
本發明之保護範圍當視後附之申請專利範圍所界定者為準,任何熟知此項技藝者,在不脫離本發明之精神和範圍內所作之任何變化與修改,均屬於本發明之保護範圍。
100:記憶體內運算系統110:靜態隨機存取記憶體陣列
111:記憶體單元Q:儲存節點
Qb:反儲存節點112:2T開關單元組
112a:進位值2T開關112b:反或值2T開關
112c:及值2T開關113:預充電電路
120:漣波進位運算單元121:邏輯計算電路
122:加法電路123:進位電路
130:運算控制單元131:運算時脈控制電路
131a:第一或閘131b:第一正反器
131c第二正反器131d:第三正反器
131e:第四正反器132:自動預充電切換控制電路
132a:第五正反器132b:第六正反器
132c:計數器132d:第一解碼器
133:位址選擇電路133a:第七正反器
133b:第八正反器133c:第九正反器
133d:第十正反器133e:第二解碼器
133f:第三解碼器133g:第四解碼器
133h:第二或閘134:內運算控制電路
134a:預充電控制器134b:內運算記憶體控制器
140:自動切換寫回單元141:位元線自動切換電路
141a:第十一正反器141b:位元線計數器
142:資料切換電路142a:第三多工器
142b:第四多工器142c:第五多工器
142d:第六多工器142e:第七多工器
142f:第八多工器142g:第二及閘
142h:第三及閘142i:第四或閘
143:字元線自動切換電路143a:及閘
143b:第十二正反器143c:第一多工器
143d:第二多工器143e:第三或閘
150:SRAM控制單元160:欄選擇器
11:反進位值線12:反或值線
13:及值線14:反位元線
15:位元線SUM:加法值
CO:進位值ADD:加法運算訊號
MUL:乘法運算單元Clk:時脈訊號
OP:運算訊號Opprec:總運算訊號
Wrsel:寫入選擇訊號Dffwrb:反讀取寫入訊號
PreC_bit:預充電觸發訊號OpX_add:第一運算位址訊號
OpY_add:第二運算位址訊號MS_add:符號位址訊號
CR_add:運算結果位址訊號w0:運算位址控制訊號
w2:進位位址控制訊號CR_DFF:運算結果位址控制訊號
PreC:預充電控制訊號C:邏輯運算控制訊號
S:進位運算控制訊號wr_en:讀寫控制訊號
Dffwr:讀取寫入訊號Cimp:計數啟動訊號
PreCclk:預充電時脈訊號ct:計數訊號
OpX:第一運算列訊號OpY:第二運算列訊號
MS:進位列訊號sc:運算位元控制訊號
pcc:預充電位元控制訊號BL_auto:位元線控制訊號
CIM_Data:記憶體內運算資料WL_auto:字元線切換訊號
MP201~202:P型電晶體MN201~206:N型電晶體
WS、WA、WAB、WL:控制訊號PRO:積值
SIG:符號值add_data:加法運算結果訊號
mul_data:乘法運算結果訊號Data_out:輸出數據
BL_Clk:位元線時脈訊號CIM_datasel:記憶體內運算選擇訊號
CB:反進位值NOR:反或值
AND:及值NAND:反及值
XNOR:反互斥或值XOR:互斥或值
Cl:進位值rst:重置訊號
W_add:字元位址訊號B_add:位元位址訊號
Data:輸入數據PreD:預放電控制訊號
第1圖:依據本發明之一實施例,一記憶體內運算系統的功能方塊圖。
第2圖:依據本發明之一實施例,一靜態隨機存取記憶體陣列的電路圖。
第3圖:依據本發明之一實施例,該靜態隨機存取記憶體陣列的局部電路圖。
第4圖:依據本發明之一實施例,一記憶體單元的電路圖。
第5圖:依據本發明之一實施例,一進位值2T開關的作動示意圖。
第6圖:依據本發明之一實施例,一反或值2T開關及一及值2T開關的作動示意圖。
第7圖:依據本發明之一實施例,一漣波進位運算單元的電路圖。
第8圖:依據本發明之一實施例,一運算控制單元的電路圖。
第9圖:依據本發明之一實施例,一自動切換寫回單元的電路圖。
100:記憶體內運算系統
110:靜態隨機存取記憶體陣列
120:漣波進位運算單元
130:運算控制單元
140:自動切換寫回單元
150:SRAM控制單元
160:欄選擇器
SUM:加法值
CO:進位值
ADD:加法運算訊號
MUL:乘法運算單元
Clk:時脈訊號
Wrsel:寫入選擇訊號
Dffwrb:反讀取寫入訊號
OpX_add:第一運算位址訊號
OpY_add:第二運算位址訊號
MS_add:符號位址訊號
CR_add:運算結果位址訊號
CR_DFF:運算結果位址控制訊號
PreC:預充電控制訊號
C:邏輯運算控制訊號
S:進位運算控制訊號
wr_en:讀寫控制訊號
BL_auto:位元線控制訊號
CIM_Data:記憶體內運算資料
WL_auto:字元線切換訊號
WS、WA、WAB、WL:控制訊號
PRO:積值
SIG:符號值
Data_out:輸出數據
BL_Clk:位元線時脈訊號
CB:反進位值
NOR:反或值
AND:及值
rst:重置訊號
W_add:字元位址訊號
B_add:位元位址訊號
Data:輸入數據
PreD:預放電控制訊號
Claims (9)
- 一種記憶體內運算系統,其包含:一靜態隨機存取記憶體陣列,具有複數個記憶體單元、複數個2T開關單元組及一預充電電路,各該記憶體單元具有一儲存節點及一反儲存節點,各該2T開關單元組電性連接各該記憶體單元之該儲存節點及該反儲存節點,該預充電電路電性連接該些2T開關單元組,該些2T開關單元組輸出複數個邏輯數據;一漣波進位運算單元,電性連接該些2T開關單元組以接收該些邏輯數據,該漣波進位運算單元具有一邏輯計算電路、一加法電路及一進位電路,該邏輯計算電路電性連接該些2T開關單元組以接收該些邏輯數據,且該邏輯計算電路根據該些邏輯數據輸出複數個邏輯運算數據,該加法電路電性連接該些2T開關組及該邏輯計算電路以接收該些邏輯數據及該些邏輯運算數據,且該加法單元根據該些邏輯數據及該些邏輯運算數據輸出一加法值,該進位電路電性連接該些2T開關單元組及該邏輯計算電路以接收該邏輯數據及該些邏輯運算數據,且該進位電路根據該邏輯數據及該些該些邏輯運算數據輸出一進位值;一運算控制單元,電性連接該靜態隨機存取記憶體陣列,該運算控制單元用以輸出複數個控制訊號至該預充電電路及該些2T開關單元組,以控制該預充電電路及各該2T開關單元組的開啟或關閉;以及一自動切換寫回單元,電性連接該漣波進位運算單元,以由該漣波進位運算單元接收該加法值及進位值,且該自動切換寫回單元經由一SRAM控制單元將該加法值及進位值寫回該靜態隨機存取記憶體陣列之該些記憶體單元中。
- 如請求項1之記憶體內運算系統,其中各該2T開關單元組具有一進位值2T開關、一反或值2T開關及一及值2T開關,該進位值2T開關電性連接該 記憶體單元之該儲存節點及一反進位值線,該反或值2T開關電性連接該記憶體單元之該儲存節點及一反或值線,該及值2T開關電性連接該記憶體單元之該反儲存節點及一及值線。
- 如請求項2之記憶體內運算系統,其中進行記憶體內運算時,其中一個該進位值2T開關及其中兩個該反或值2T開關及該及值2T開關開啟,其餘之該些進位值2T開關、該些反或值2T開關及該些及值2T開關關閉。
- 如請求項1之記憶體內運算系統,其中該運算控制單元具有一運算時脈控制電路、一自動預充電切換控制電路、一位址選擇電路及一內運算控制電路,該運算時脈控制電路用以接收一加法運算訊號、一乘法運算訊號及一時脈訊號,且該運算時脈控制電路輸出一運算訊號、一總運算訊號、一寫入選擇訊號及一反讀取寫入訊號,該自動預充電切換控制電路電性連接該運算時脈控制電路以接收該總運算訊號、該寫入選擇訊號及該反讀取寫入訊號,且該自動預充電切換控制電路輸出一預充電觸發訊號,該位址選擇電路電性連接該運算時脈控制電路以接收該運算訊號,該位址選擇電路另接收一第一運算位址訊號、一第二運算位址訊號、一符號位址訊號及一運算結果位址訊號,且該位址選擇電路輸出一運算位址控制訊號、一進位位址控制訊號及一運算結果位址控制訊號,該內運算控制電路電性連接該運算時脈控制電路、該自動預充電切換控制電路及該位址選擇電路以接收該運算訊號、該反讀取寫入訊號、該預充電觸發訊號、該運算位址控制訊號及該進位位址控制訊號,且該內運算控制電路輸出一預充電控制訊號、一邏輯運算控制訊號及一進位運算控制訊號至該預充電電路及該些2T開關單元組。
- 如請求項4之記憶體內運算系統,其中該運算時脈控制電路具有 一第一或閘、一第一正反器、一第二正反器、一第三正反器及一第四正反器,該第一或閘接收該加法運算訊號及該乘法運算訊號,且該第一或閘輸出該運算訊號,該第一正反器接收一讀寫控制訊號及該時脈訊號,且該第一正反器輸出一讀取寫入訊號,該第二正反器電性連接該第一或閘,該第二正反器接收該時脈訊號及該運算訊號,且該第二正反器輸出該總運算訊號,該第三正反器電性連接該第一或閘及該第一正反器以接收該運算訊號及該讀取寫入訊號,且該第三正反器輸出該寫入選擇訊號,該第四正反器電性連接第一正反器,該第四正反器接收該讀取寫入訊號及該時脈訊號,且該第四正反器輸出該反讀取寫入訊號。
- 如請求項4之記憶體內運算系統,其中該自動預充電時脈控制電路具有一第五正反器、一第六正反器、一計數器及一第一解碼器,該第五正反器電性連接運算時脈控制電路以接收該總運算訊號及該運算訊號,且該第五正反器輸出一計數啟動訊號,該第六正反器電性連接該第三正反器及該第四正反器以接收該寫入選擇訊號及該反讀取寫入訊號,且該第六正反器輸出一預充電時脈訊號,該計數器電性連接該第五正反器及該第六正反器以接收該計數啟動訊號及該預充電時脈訊號,且該計數器輸出一計數訊號,該第一解碼器電性連接該計數器以接收該計數訊號,且該第一解碼器輸出該預充電觸發訊號。
- 如請求項5之記憶體內運算系統,其中該位址選擇電路具有一第七正反器、一第八正反器、一第九正反器、一第十正反器、一第二解碼器、一第三解碼器、一第四解碼器及一第二或閘,該第七正反器電性連接該第一或閘,該第七正反器接收該運算訊號及該第一運算位址訊號,且該第七正反器輸出一第一運算列訊號,該第八正反器電性連接該第一或閘,該第八正反器接收該運算訊號及該第二運算位址訊號,且該第八正反器輸出一第二運算列訊號,該第九正反 器電性連接該第一或閘,該第九正反器接收該運算訊號及該符號位址訊號,且該第九正反器輸出一進位列訊號,該第十正反器電性連接該第一或閘,該第十正反器接收該運算訊號及該預算結果位址訊號,且該第十正反器輸出該運算結果位址控制訊號,該第二解碼器電性連接該第七正反器以接收該第一運算列訊號,且該第二解碼器輸出一第一解碼訊號,該第三解碼器電性連接該第八正反器以接收該第二運算列訊號,且該第三解碼器輸出一第二解碼訊號,該第四解碼器電性連接該第九正反器以接收該進位列訊號,且該第四解碼器輸出該進位位址控制訊號,該第二或閘電性連接該第一解碼器及該第二解碼器以接收該第一解碼訊號及該第二解碼訊號,且該第二或閘輸出該運算位址控制訊號。
- 如請求項5之記憶體內運算系統,該內運算控制電路具有一預充電控制器及一內運算記憶體控制器,該預充電控制器電性連接該運算時脈控制電路以接收該運算訊號及該反讀取寫入訊號,且該預充電控制器輸出一運算位元控制訊號及一預充電位元控制訊號,該內運算記憶體控制器電性連接該預充電控制器、該自動預充電切換控制電路及該位址選擇電路,該內運算記憶體控制器接收該運算位元控制訊號、該預充電位元控制訊號、該預充電觸發訊號、該運算位址控制訊號及該進位位址控制訊號,且該內運算記憶體控制器輸出該預充電控制訊號、該邏輯運算控制訊號及該進位運算控制訊號。
- 如請求項4之記憶體內運算系統,其中該自動切換寫回單元具有一位元線自動切換電路、一資料切換電路及一字元線自動切換電路,該位元線自動切換電路電性連接該運算時脈控制電路以接收該寫入選擇訊號及該讀取寫入訊號,且該位元線自動切換電路輸出一位元線切換訊號,該資料切換電路電性連接該位元線自動切換電路及該漣波進位運算單元,該資料切換電路接收該位元 線切換訊號及該些運算數據,且該資料切換電路輸出一記憶體內運算資料,該字元線自動切換電路電性連接該運算時脈控制電路及該位址選擇電路,該字元線自動切換電路接收該加法運算訊號、該乘法運算訊號、該運算訊號、該反讀取寫入訊號、該符號位址訊號及該運算結果位址控制訊號,且該字元線自動切換電路輸出一字元線切換訊號。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110118502A TWI772034B (zh) | 2021-05-21 | 2021-05-21 | 記憶體內運算系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110118502A TWI772034B (zh) | 2021-05-21 | 2021-05-21 | 記憶體內運算系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI772034B true TWI772034B (zh) | 2022-07-21 |
TW202247012A TW202247012A (zh) | 2022-12-01 |
Family
ID=83439709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110118502A TWI772034B (zh) | 2021-05-21 | 2021-05-21 | 記憶體內運算系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI772034B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200504998A (en) * | 2003-05-09 | 2005-02-01 | Toshiba Kk | Semiconductor memory device |
TW201015574A (en) * | 2008-10-14 | 2010-04-16 | Hynix Semiconductor Inc | Trimming circuit of semiconductor memory apparatus and trimming method thereof |
TW201839775A (zh) * | 2017-01-03 | 2018-11-01 | 慧榮科技股份有限公司 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
TW202044263A (zh) * | 2019-05-27 | 2020-12-01 | 國立中山大學 | 記憶體內運算系統及其記憶體裝置 |
-
2021
- 2021-05-21 TW TW110118502A patent/TWI772034B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200504998A (en) * | 2003-05-09 | 2005-02-01 | Toshiba Kk | Semiconductor memory device |
TW201015574A (en) * | 2008-10-14 | 2010-04-16 | Hynix Semiconductor Inc | Trimming circuit of semiconductor memory apparatus and trimming method thereof |
TW201839775A (zh) * | 2017-01-03 | 2018-11-01 | 慧榮科技股份有限公司 | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 |
TW202044263A (zh) * | 2019-05-27 | 2020-12-01 | 國立中山大學 | 記憶體內運算系統及其記憶體裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202247012A (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414677B (zh) | 一种适用于全连接二值化神经网络的存内计算电路 | |
TWI570716B (zh) | 記憶體裝置及操作方法 | |
CN112581996A (zh) | 基于磁性随机存储器的时域存内计算阵列结构 | |
US7990759B2 (en) | Hardened memory cell | |
CN112558919B (zh) | 一种存内计算位单元及存内计算装置 | |
CN111429956B (zh) | 一种多模式可计算的sram单元电路及其控制方法 | |
CN116364137A (zh) | 一种同侧双位线的8t单元、逻辑运算电路及cim芯片 | |
TWI772034B (zh) | 記憶體內運算系統 | |
CN112951290B (zh) | 一种基于非易失性随机存储器的内存计算电路及装置 | |
CN118215964A (zh) | 使用复位-置位锁存器的具有单端感测的存储器 | |
CN116340256A (zh) | 一种基于dice结构sram的存内计算单元以及阵列 | |
Izhar et al. | Logic Circuit Implementation for Enabling SRAM Based In Memory Computing | |
CN111105830A (zh) | 存储器装置 | |
Monga et al. | A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM | |
Bagamma et al. | Implementation of 5–32 address decoders for SRAM memory in 180nm technology | |
TWI706414B (zh) | 記憶體內運算系統及其記憶體裝置 | |
TW202219955A (zh) | 偽三埠靜態隨機存取記憶體資料路徑 | |
CN116670763A (zh) | 具有电容性耦合写入操作的存储器内计算位单元 | |
US7366032B1 (en) | Multi-ported register cell with randomly accessible history | |
CN117577162B (zh) | 一种冗余地址寄存器结构、冗余地址寄存器阵列及存储器 | |
US11763866B1 (en) | SRAM with scan mode | |
TW202333153A (zh) | 具有短脈衝模式位址比較器的偽雙埠sram | |
CN113921057A (zh) | 一种在内存中实现迭代式异或计算的8t sram电路结构 | |
JP3793580B2 (ja) | 半導体記憶装置及びラインメモリの制御方法 | |
Kumar et al. | Efficient Implementation of Fast Half Adder using 8T SRAM for In-Memory Computing Applications |