本發(fā)明屬于半導(dǎo)體(semiconductor)和cmos超大規(guī)模集成電路(ulsi)中的存內(nèi)計(jì)算(compute-in-memory),具體涉及一種基于存儲器陣列進(jìn)行向量矩陣乘法計(jì)算(vector?matrix?multiplication,vmm)中使用的模數(shù)轉(zhuǎn)換電路(analog-to-digitalconverter,adc)。
背景技術(shù):
1、隨著人工智能和深度學(xué)習(xí)技術(shù)的不斷進(jìn)步,人工神經(jīng)網(wǎng)絡(luò)在自然語言處理、圖像識別、自動駕駛、圖神經(jīng)網(wǎng)絡(luò)等領(lǐng)域得到了廣泛應(yīng)用。然而,網(wǎng)絡(luò)規(guī)模的擴(kuò)大導(dǎo)致數(shù)據(jù)在內(nèi)存與傳統(tǒng)計(jì)算設(shè)備(如cpu和gpu)之間的傳輸消耗了大量能量,這種現(xiàn)象被稱為馮諾依曼瓶頸。在人工神經(jīng)網(wǎng)絡(luò)算法中,最主要的計(jì)算任務(wù)是向量矩陣乘法(vector?matrixmultiplication)。存內(nèi)計(jì)算(compute-in-memory)通過將權(quán)重存儲在存儲器單元中,并在陣列中進(jìn)行向量矩陣乘法計(jì)算,從而避免了數(shù)據(jù)在內(nèi)存與計(jì)算單元之間的頻繁傳輸,被認(rèn)為是一種有望解決馮諾依曼瓶頸的有效方法。
2、如圖1所示,存內(nèi)計(jì)算通常采用數(shù)?;旌嫌?jì)算方法。存儲器單元可以是sram、dram等易失性存儲器,也可以是flash、rram、pcram、mram等非易失性存儲器。向量矩陣乘法計(jì)算的權(quán)重被存儲在存儲器中,輸入通過數(shù)模轉(zhuǎn)換器(dac)或緩沖器(buffer)實(shí)現(xiàn),計(jì)算結(jié)果以位線(bl)上的電流或電壓表示。計(jì)算結(jié)果需要通過模數(shù)轉(zhuǎn)換器(adc)讀取,存內(nèi)計(jì)算中常用的adc結(jié)構(gòu)包括逐次逼近型adc(sar-adc)和快閃型adc(flash-adc)。
3、為了實(shí)現(xiàn)高精度的向量矩陣乘法計(jì)算,需要高精度的adc進(jìn)行模數(shù)轉(zhuǎn)換讀取。傳統(tǒng)sar-adc和flash-adc的結(jié)構(gòu)如圖2所示。sar-adc的電容陣列的面積和功耗都會隨著讀出精度的增加呈指數(shù)增長,flash-adc所需的靈敏放大器(sa)數(shù)量和總功耗也會隨讀出精度的增加而指數(shù)增長。由于數(shù)?;旌洗鎯?nèi)計(jì)算需要并行使用大量adc讀取,單個adc的面積和功耗增加大大提升了系統(tǒng)的總面積和功耗,這成為數(shù)?;旌洗鎯?nèi)計(jì)算在面積和能效提升方面的瓶頸。
技術(shù)實(shí)現(xiàn)思路
1、針對以上問題,本發(fā)明提出了一種逐次逼近閃存模數(shù)轉(zhuǎn)換器,首先對輸入信號進(jìn)行粗量化,然后進(jìn)行多次細(xì)量化,最終實(shí)現(xiàn)對信號的轉(zhuǎn)換。
2、本發(fā)明的技術(shù)方案如下:
3、一種逐次逼近閃存模數(shù)轉(zhuǎn)換器,其特征在于,包含一個vref產(chǎn)生單元、個逐次逼近閃存模數(shù)模塊、數(shù)字控制模塊,逐次逼近閃存模塊由1個靈敏放大器、1個boost電容和1個2n1-1選1多路選擇器,靈敏放大器的正端連接輸入電壓,基準(zhǔn)電壓vref直接通過開關(guān)連接至靈敏放大器的負(fù)端,或通過開關(guān)連接boost電容的左側(cè),2n1-1選1多路選擇器將需要抬升的電壓連接至boost電容的右側(cè)對boost電容進(jìn)行充電,在比較的相位時切開與boost電容的連接,boost電容的右側(cè)連接至比靈敏放大器的負(fù)端。靈敏放大器用于比較兩個電壓大小并輸出比較結(jié)果,若待測電壓比當(dāng)前vref[i]大,則輸出高電平“1”,若待測電壓比當(dāng)前vref[i]小,則輸出低電平“0”;2n1-1選1多路選擇器根據(jù)比較得到的out[n1:1],并選擇合適的下步的量化基本電壓,將此電壓存儲在boost電容中,在下步比較時抬升靈敏放大器的參考電壓vref,個逐次逼近閃存模數(shù)模塊一次比較得到個溫度計(jì)碼(個“0”或者“1”);數(shù)字控制模塊包括溫度計(jì)解碼器和比特拼接模塊,溫度計(jì)解碼器將單次操作輸出的個溫度計(jì)碼轉(zhuǎn)換為二進(jìn)制編碼out[n1:1],比特拼接模塊將n2步操作得到的二進(jìn)制編碼整合,得到最終的n(n=n1×n2)比特輸出。
4、進(jìn)一步,提供一種逐次逼近閃存模數(shù)轉(zhuǎn)換器的運(yùn)算方法,一次操作完成n1比特的粗量化,通過n2步的操作完成n比特的細(xì)量化,其中n=n1×n2,其步驟包括:
5、1)cim陣列的累積信號vin直接輸入連接至個逐次逼近閃存模塊,輸入信號連接靈敏放大器的正端,個靈敏放大器的負(fù)端依次連接至vref_1st[1],在整個參考電壓vref內(nèi)均勻分布,逐次逼近閃存模塊單次比較的輸出精度為n1,溫度計(jì)解碼器通過一次比較得到個溫度計(jì)碼,將其轉(zhuǎn)換為二進(jìn)制編碼out_1st[n1:1];
6、2)2n1-1選1多路選擇器根據(jù)二進(jìn)制編碼結(jié)果out_1st[n1:1]確定下一步的量化基準(zhǔn)電壓的整個量化大小為將每個boost電容的左端連接vss,右端連接vref_2nd,存儲此次轉(zhuǎn)換的量化基本電壓;
7、3)將個boost電容的左端依次連接的電平大小均勻的分布在0和vref/n1之間,個boost電容的右端斷開與vref_2nd的連接,直接連接靈敏放大器的輸入端,依次將參考電壓抬升至vref_2nd[i]+vref_2nd,溫度計(jì)解碼器將輸入信號與此參考電壓進(jìn)行比較,得到個溫度計(jì)碼并轉(zhuǎn)換為二進(jìn)制編碼out_2nd[n1:1];
8、4)重復(fù)步驟2)-步驟3),依次改變boost存儲的電壓值,使其電壓值逐次逼近輸入電壓vin,直至得到最后一步輸出out_n2th[n1:1]。
9、本發(fā)明的有益效果如下:
10、本發(fā)明逐次逼近閃存模數(shù)轉(zhuǎn)換器(multi-step?n?bit?sar-flash-adc)通過多步(n2)量化,對輸入信號vin進(jìn)行粗量化再細(xì)量化,逐步縮短量化步長,每次量化的輸出精度為n1比特,直至達(dá)到靈敏放大器的失調(diào)電壓限制,即完成了n(n=n1×n2)比特的量化。本發(fā)明相較于n比特的flash?adc來說,靈敏放大器的數(shù)量由2n-1減少至以n=16,n1=4為例,靈敏放大器數(shù)量由65535減少至15;相較于n比特的sar?adc來說,數(shù)字控制邏輯更加簡單,并且避免了二進(jìn)制電容陣列的使用,其面積和功耗小于同精度的flash?adc和sar?adc。
1.一種逐次逼近閃存模數(shù)轉(zhuǎn)換器,其特征在于,包含一個vref產(chǎn)生單元、個逐次逼近閃存模數(shù)模塊、數(shù)字控制模塊,逐次逼近閃存模塊由1個靈敏放大器、1個boost電容和1個2n1-1選1多路選擇器,靈敏放大器的正端連接輸入電壓,基準(zhǔn)電壓vref直接通過開關(guān)連接至靈敏放大器的負(fù)端,或通過開關(guān)連接boost電容的左側(cè),2n1-1選1多路選擇器將需要抬升的電壓連接至boost電容的右側(cè)對boost電容進(jìn)行充電,在比較的相位時切開與boost電容的連接,boost電容的右側(cè)連接至比靈敏放大器的負(fù)端。靈敏放大器用于比較兩個電壓大小并輸出比較結(jié)果,若待測電壓比當(dāng)前vref[i]大,則輸出高電平“1”,若待測電壓比當(dāng)前vref[i]小,則輸出低電平“0”;2n1-1選1多路選擇器根據(jù)比較得到的out[n1:1],并選擇合適的下步的量化基本電壓,將此電壓存儲在boost電容中,在下步比較時抬升靈敏放大器的參考電壓vref,個逐次逼近閃存模數(shù)模塊一次比較得到個溫度計(jì)碼(個“0”或者“1”);數(shù)字控制模塊包括溫度計(jì)解碼器和比特拼接模塊,溫度計(jì)解碼器將單次操作輸出的個溫度計(jì)碼轉(zhuǎn)換為二進(jìn)制編碼out[n1:1],比特拼接模塊將n2步操作得到的二進(jìn)制編碼整合,得到最終的n(n=n1×n2)比特輸出。
2.如權(quán)利要求1所述的逐次逼近閃存模數(shù)轉(zhuǎn)換器,其特征在于,所述vref產(chǎn)生單元設(shè)置在cim的adc中。
3.如權(quán)利要求1所述的的逐次逼近閃存模數(shù)轉(zhuǎn)換器,其特征在于,基準(zhǔn)電壓vref直接通過開關(guān)連接至靈敏放大器的負(fù)端,或通過開關(guān)連接boost電容。
4.如權(quán)利要求1所述的逐次逼近閃存模數(shù)轉(zhuǎn)換器的運(yùn)算方法,一次操作完成n0比特的粗量化,通過n2步的操作完成n比特的細(xì)量化,其中n=n1×n2,其步驟包括: