方旭東,吳俊杰
(1.國防大學(xué)聯(lián)合作戰(zhàn)學(xué)院,北京 100091,2.國防科技大學(xué)計算機(jī)學(xué)院量子信息研究所兼高性能計算國家重點(diǎn)實(shí)驗(yàn)室,湖南 長沙 410073)
進(jìn)入21世紀(jì)后,人類正加速邁入數(shù)字化時代,大數(shù)據(jù)、云計算、人工智能等的發(fā)展方興未艾,它們離不開海量數(shù)據(jù)的支撐。根據(jù)IDC(International Data Corporation)預(yù)測,人類所有的數(shù)量容量將從2018年的33 ZB快速上升到2025年的175 ZB,并且這種上升趨勢正在加劇[1]。
另一方面,傳統(tǒng)的基于CMOS工藝的存儲技術(shù)已經(jīng)接近發(fā)展的極限,依靠縮小器件尺寸提高存儲器容量和密度的方法在可以預(yù)見的未來將變得不可行。所以,必須尋找不同于傳統(tǒng)CMOS器件存儲機(jī)理的新型存儲介質(zhì),來制造速度更快、容量更大、功耗更低、體積更小、壽命更長、可靠性更高的存儲器。
一個不容忽視的問題是,當(dāng)前的計算機(jī)普遍采用馮·諾依曼體系結(jié)構(gòu),其運(yùn)算和存儲分離的特性,使得存儲器和處理器多年來發(fā)展極不對稱,導(dǎo)致了存儲墻(Memory Wall)的出現(xiàn),嚴(yán)重影響計算機(jī)性能的持續(xù)增長[2]。為了緩解甚至最終解決存儲墻問題,必須尋求新的計算使能器件。
憶阻器被發(fā)現(xiàn)是除電阻、電容、電感之外的第4種基本電路元件[3,4]。憶阻器具有可作為下一代存儲器件的諸多優(yōu)異特性,包括高密度、低功耗、高耐久度、易于集成、CMOS工藝兼容性等特性,而且與動態(tài)隨機(jī)存取存儲器(DRAM)不同,憶阻器具有非易失特性,存儲的信息在掉電情況下也不會丟失[5]。
更為重要的是,憶阻器被證明具有融合計算和存儲的能力,被認(rèn)為是一種全新的計算使能器件。2010年,惠普實(shí)驗(yàn)室的研究人員實(shí)現(xiàn)了基于憶阻器的蘊(yùn)含狀態(tài)邏輯(Stateful Logic),并證明這種計算是邏輯完備的[6]。這表明可以通過狀態(tài)邏輯計算對基于憶阻器的存儲結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行直接處理,從而實(shí)現(xiàn)運(yùn)算和存儲的有機(jī)融合。
此外,憶阻器所展現(xiàn)的阻值隨通過電量漸變的特性,和神經(jīng)元細(xì)胞之間通過突觸傳遞信號的機(jī)制類似,使得憶阻器適合用于模擬神經(jīng)元細(xì)胞,實(shí)現(xiàn)神經(jīng)擬態(tài)計算[7-10]。
憶阻器所具備的優(yōu)異特性,使得它成為一種使能器件,有望成為下一代存儲器件?;趹涀杵鞯挠嬎愦鎯θ诤辖Y(jié)構(gòu)有望緩解甚至解決存儲墻問題,值得對其進(jìn)行深入的研究。
然而,當(dāng)前憶阻器尚處于實(shí)驗(yàn)室制備階段,相關(guān)研究主要集中在器件機(jī)理和制備的層面,結(jié)構(gòu)級研究較少,而面向應(yīng)用的體系結(jié)構(gòu)級研究則更少。鑒于此,本文按照從原理到結(jié)構(gòu)再到應(yīng)用的順序,對該領(lǐng)域相關(guān)研究進(jìn)行綜述。首先詳細(xì)分析了狀態(tài)邏輯的實(shí)現(xiàn)原理以及改進(jìn)方法,接著梳理了基于憶阻器交叉桿的狀態(tài)邏輯設(shè)計方法,然后概括了基于憶阻器的數(shù)據(jù)存儲結(jié)構(gòu)的設(shè)計原理和實(shí)現(xiàn)結(jié)構(gòu),并探討了面向應(yīng)用的計算存儲融合體系結(jié)構(gòu)技術(shù),最后進(jìn)行總結(jié)和展望。
自從憶阻器被發(fā)現(xiàn)以來,關(guān)于憶阻器的應(yīng)用研究如火如荼,涉及多個領(lǐng)域[11,12],主要有非易失性存儲器[13,14]、狀態(tài)邏輯計算[6,15 - 18]、神經(jīng)擬態(tài)計算[7 - 10,19 - 22]等。在前2類應(yīng)用中,憶阻器作為數(shù)字器件,主要利用其狀態(tài)可在高阻態(tài)HRS(High Resistive State)和低阻態(tài)LRS(Low Resistive State)快速翻轉(zhuǎn)的特性;在第3類應(yīng)用中,憶阻器作為模擬器件,主要利用憶阻器阻值可根據(jù)外界電壓激勵連續(xù)變化的特性,模擬生物神經(jīng)元細(xì)胞突觸實(shí)現(xiàn)神經(jīng)擬態(tài)學(xué)習(xí),以及構(gòu)建混沌電路[23]。
本文內(nèi)容限定于憶阻器狀態(tài)邏輯相關(guān)研究,即將憶阻器作為一種數(shù)字器件。狀態(tài)邏輯計算是基于憶阻器的高低阻態(tài)切換所實(shí)現(xiàn)的計算,計算的輸入輸出都采用憶阻器的阻值表示[6,16,24 - 27]。
蘊(yùn)含邏輯(Implication Logic)作為第1種被提出的狀態(tài)邏輯,具有十分重要的意義[6]。它證明了憶阻器電路可以進(jìn)行狀態(tài)邏輯計算,實(shí)現(xiàn)計算和存儲的融合。蘊(yùn)含邏輯的電路和真值表如圖1[6]所示。
Figure 1 HP implication logic圖1 惠普蘊(yùn)含邏輯
從圖1a中可以看出,蘊(yùn)含電路由2個憶阻器P和Q,一個接地電阻RG,及水平與垂直納米線構(gòu)成。水平納米線與垂直納米線通過憶阻器相連,并通過負(fù)載電阻RG接地。RG阻值介于憶阻器2個阻態(tài)的阻值之間,即ROFF>>RG>>RON。這里ROFF表示憶阻器高阻態(tài)的阻值,代表邏輯0,RON表示憶阻器低阻態(tài)的阻值,代表邏輯1。憶阻器P和Q具有閾值效應(yīng),閾值電壓的絕對值為VT,即只有當(dāng)施加在憶阻器上的電壓的絕對值大于VT時,憶阻器的阻態(tài)才可能變化。若同時對P和Q施加電壓脈沖VCOND和VSET,即可完成蘊(yùn)含操作,結(jié)果保存在Q的阻值中。此處,VCOND被稱為條件脈沖,VSET被稱為置位脈沖,p和q代表憶阻器P和Q的邏輯值。蘊(yùn)含邏輯的工作原理可根據(jù)P的初始狀態(tài),分以下2種情況解釋:
(1)當(dāng)P處于高阻態(tài)(p=0)時,由于ROFF>>RG,所以RG上的電壓幾乎為0,于是Q2端的電壓VQ≈VSET(>VT)。此時,無論Q處于哪種狀態(tài),都將被置為低阻態(tài)(q=1)。上述情況對應(yīng)于圖1b中真值表的Case 1和Case 2。
(2)當(dāng)P處于低阻態(tài)(p=1)時,由于RG>>RONO,所以RG上的電壓幾乎為VCOND,于是Q2端的電壓VQ≈VSET-VCOND( 綜合上述2種情況,P和Q的狀態(tài)蘊(yùn)含被計算出來,結(jié)果保持在Q的阻值中。 從圖1b的真值表可以看出,如果Q初始時處于高阻態(tài)(q=0),蘊(yùn)含操作等價于對憶阻器P的值進(jìn)行取反的FALSE操作。而如果單獨(dú)對一個憶阻器施加一個清零電壓脈沖VCLEAR(|VCLEAR|>VT),可以直接將憶阻器的阻值切換到高阻態(tài)(邏輯“0”)。 根據(jù)數(shù)理邏輯的基本原理可知,蘊(yùn)含與取反運(yùn)算構(gòu)成邏輯完備集{IMP,FALSE},所有布爾邏輯運(yùn)算都可以基于蘊(yùn)含和取反操作實(shí)現(xiàn)。也就是說,基于憶阻器的狀態(tài)邏輯計算是完備的,可以實(shí)現(xiàn)所有的邏輯計算。 由惠普提出的蘊(yùn)含邏輯,雖然是邏輯完備的,但也存在一定問題,主要表現(xiàn)在2個方面:一是運(yùn)算效率較低,蘊(yùn)含邏輯雖然是完備的,但復(fù)雜邏輯操作分解為蘊(yùn)含邏輯需要較多操作步驟,效率較低,需要尋找與非(NAND)或者或非(NOR)等更高效的原子操作;二是運(yùn)算過程會破壞輸入,圖1所示的蘊(yùn)含邏輯中,憶阻器Q參與狀態(tài)邏輯計算,并保存計算結(jié)果,輸出結(jié)果有可能覆蓋輸入值,因此運(yùn)算過程會破壞輸入。 3M1R邏輯就是對惠普蘊(yùn)含邏輯的一種改進(jìn)[17,28]。3M1R邏輯基本計算結(jié)構(gòu)由通過字線WL(Word Line)和位線BL(Bit Line)相連的3個憶阻器A、B、Y和1個分壓電阻RC構(gòu)成,如圖2[17]所示。通過在A和B上施加電壓脈沖VR,在Y上施加電壓脈沖VDD,3M1R可以1步實(shí)現(xiàn)與非(NAND)操作,而IMP邏輯和FALSE邏輯需要分3步才能實(shí)現(xiàn)NAND邏輯。3M1R電路結(jié)構(gòu)本質(zhì)上和惠普蘊(yùn)含邏輯是一樣的,所以它也具備邏輯完備性,它的優(yōu)點(diǎn)是邏輯操作不會破壞輸入狀態(tài)。 Figure 2 Schematic of the NAND gate in 3M1R圖2 3M1R實(shí)現(xiàn)NAND的邏輯電路 而MAGIC邏輯采用另一種改進(jìn)思路[18]。MAGIC在實(shí)現(xiàn)或非(NOR)邏輯時,其基本電路單元由2個正向并聯(lián)的憶阻器和1個反向憶阻器串聯(lián)構(gòu)成,如圖3[18]所示。和3M1R一樣,MAGIC不會破壞輸入狀態(tài)。和IMP、3M1R相比,MAGIC可以較高效地實(shí)現(xiàn)所有的邏輯操作,并且采用全憶阻器實(shí)現(xiàn),從而容易實(shí)現(xiàn)交叉桿集成。此外,MAGIC運(yùn)算時只需要1個電壓V0就可實(shí)現(xiàn)邏輯操作。MAGIC的缺點(diǎn)是脈沖電壓V0約束要求很高,實(shí)現(xiàn)不同的邏輯運(yùn)算時的V0值不同,實(shí)際實(shí)現(xiàn)難度較大。 Figure 3 Schematic of the NOR gate in MAGIC圖3 MAGIC實(shí)現(xiàn)NOR的邏輯電路 有一類狀態(tài)邏輯的實(shí)現(xiàn),是通過憶阻器2端不同的輸入電壓來實(shí)現(xiàn)憶阻器狀態(tài)翻轉(zhuǎn),從而實(shí)現(xiàn)狀態(tài)邏輯計算的[29,30]。它的狀態(tài)轉(zhuǎn)化可以根據(jù)有限狀態(tài)機(jī)得出,但輸入輸出量綱不同,使得它們進(jìn)行大規(guī)模交叉桿集成時難度更大。 還有一類狀態(tài)邏輯通過將多個單極性/雙極性憶阻器串聯(lián)/并聯(lián),以對外呈現(xiàn)新的阻值切換特性,從而實(shí)現(xiàn)更高效的邏輯計算[15,31,32]。比如,DBM(Dual-Bit-Memristor)器件通過新的制備方法得到,等效于將1個單極性憶阻器和1個多極性憶阻器串聯(lián)到一起,從而得到更高效的狀態(tài)邏輯操作效率[32]。然而,這類器件的制備相對復(fù)雜,需要在器件復(fù)雜度和狀態(tài)邏輯操作效率之間進(jìn)行折衷。 所有的狀態(tài)邏輯實(shí)現(xiàn)歸根結(jié)底是基于憶阻器阻值的條件切換特性,通過時間維度上的分步迭代來實(shí)現(xiàn)邏輯功能。狀態(tài)邏輯的最大優(yōu)勢在于邏輯完備的計算在存儲中發(fā)生,而且代表輸入、輸出的物理量都是阻值,可以方便實(shí)現(xiàn)級聯(lián),甚至可通過流水線實(shí)現(xiàn)并行邏輯操作。狀態(tài)邏輯具有的計算和存儲融合能力,使得這種計算結(jié)構(gòu)有可能超越經(jīng)典的馮·諾依曼體系結(jié)構(gòu)。 第2節(jié)中提到狀態(tài)邏輯計算是單比特的計算,為了充分發(fā)揮狀態(tài)邏輯在存儲位置直接進(jìn)行計算的優(yōu)勢,必須將狀態(tài)邏輯從單個比特位拓展到多個比特位,或者說并行計算的模式。為了實(shí)現(xiàn)并行狀態(tài)邏輯計算,首先應(yīng)該在交叉桿中實(shí)現(xiàn)基本邏輯的并行操作。更進(jìn)一步,應(yīng)該設(shè)計出基于更通用的、抽象層次更高的公共操作,為高層操作實(shí)現(xiàn)提供基礎(chǔ)。 基于憶阻器交叉桿結(jié)構(gòu),將基本蘊(yùn)含邏輯操作從一維(單比特)擴(kuò)展到多維(多比特并行)是非常直觀的。圖4[33]展示了規(guī)模為2×N的交叉桿,它由N條水平納米線和2條垂直納米線組成,其中存儲了2個N位數(shù)據(jù)D(d0d1…dN-1)和K(k0k1…kN-1)。垂直納米線稱為字線,水平納米線稱為位線。那么,圖4中任意一條位線上的2個憶阻器,以及該位線的接地電阻這三者組成了1個單比特與(AND)邏輯電路。所以,N條位線上一共有N個與邏輯電路。如果在字線C1和C2上分別施加電壓脈沖VCOND和VCLEAR,那么N個與操作將并行執(zhí)行[33]。執(zhí)行完成后,K中存儲的數(shù)據(jù)是D和K按位與的結(jié)果。按同樣的方法,可以將基本狀態(tài)邏輯擴(kuò)展成為對應(yīng)的并行邏輯。和單比特狀態(tài)邏輯相比,并行狀態(tài)邏輯有望將操作的效率提高N倍,N表示位線長度,即并行度。 Figure 4 Schematic of the parallel AND gate圖4 并行與邏輯實(shí)現(xiàn)電路 iMemComp進(jìn)一步給出了動態(tài)實(shí)現(xiàn)并行狀態(tài)邏輯操作的方法[34]。iMemComp將交叉桿的每一行都稱為一個“處理器”,即由一條字線和多條位線交叉處的憶阻器形成邏輯門電路。這些一位的“處理器”在交叉桿中同時受到電壓激勵,從而實(shí)現(xiàn)并行狀態(tài)邏輯計算,如圖5[34]所示。圖5中HRS指高阻態(tài)(邏輯0),LRS指低阻態(tài)(邏輯1),IN和OUT分別指代輸入和輸出憶阻器。 Figure 5 Parallel computing schematic in iMemComp based on multiple one-bit processors圖5 iMemComp中多個單比特“處理器”并行邏輯計算結(jié)構(gòu) iMemComp的優(yōu)點(diǎn)是在每個“處理器”中設(shè)置了一些可配置的憶阻器,用來實(shí)現(xiàn)可重構(gòu)計算。所謂可重構(gòu)計算,是指不改變電路結(jié)構(gòu)的情況下,通過重置操作(RESET)設(shè)置憶阻器的阻值,使得相同的電路實(shí)現(xiàn)不同的狀態(tài)邏輯計算。 拷貝操作將交叉桿中的N位數(shù)據(jù)拷貝到交叉桿的另一個位置,是實(shí)現(xiàn)交叉桿中數(shù)據(jù)遷移,支持狀態(tài)邏輯重構(gòu),進(jìn)而構(gòu)建高層體系結(jié)構(gòu)的一個重要操作。 在圖4中,如果存儲K的憶阻器預(yù)先被置位,那么并行與邏輯實(shí)現(xiàn)的效果等價于并行復(fù)制邏輯,即D被拷貝到存儲K的憶阻器中。這樣的并行復(fù)制邏輯被稱為拷貝邏輯[33]。從上述過程可以看出,只需要2個時間步,就可以實(shí)現(xiàn)憶阻器交叉桿中2個N位數(shù)據(jù)之間的拷貝操作。 比較操作是一種較為重要的邏輯操作,其中判斷2個N位數(shù)值是否相等的等值比較是比較操作的基礎(chǔ),被廣泛應(yīng)用于微處理器、通信系統(tǒng)和控制系統(tǒng)中。比如,在微處理器中,等值比較器用來判斷流水線中前后2條指令是否數(shù)據(jù)相關(guān),從而決定流水線是否需要暫停;在通信系統(tǒng)的路由芯片中,等值比較器用于檢測到達(dá)的數(shù)據(jù)包攜帶的目的地址和路由器地址是否相等,從而決定接收或是轉(zhuǎn)發(fā)該數(shù)據(jù)包;控制系統(tǒng)中,等值比較器用于檢測控制變量(時間、溫度等)是否達(dá)到預(yù)設(shè)值,從而決定是否觸發(fā)相應(yīng)控制動作。 一種基于并行異或(XOR)狀態(tài)邏輯實(shí)現(xiàn)的等值比較結(jié)構(gòu)如圖6[35,36]所示。采用該結(jié)構(gòu),輸入的二維像素值首先被轉(zhuǎn)化為一維,并被編碼到N位輸入憶阻器(Entry Data)。輸入憶阻器和交叉桿上的模式憶阻器(Database 1)執(zhí)行并行異或操作,得到每一位的異或比較結(jié)果,形成N位的輸出值(Output Data)。N位輸出值再通過數(shù)字比較器(Digital Comparator)進(jìn)行轉(zhuǎn)化,最終結(jié)果由一個模擬憶阻器的阻值表示。該方法的優(yōu)點(diǎn)是利用了憶阻器交叉桿執(zhí)行狀態(tài)邏輯的并行性。但是,在綜合N位輸出值得出比較結(jié)果時,采用了數(shù)值比較器,結(jié)果又采用模擬憶阻器表示,導(dǎo)致外圍電路龐大,不易集成。 Figure 6 Graphic pixel comparison schematic based on parallel XOR logic gate圖6 基于并行異或邏輯實(shí)現(xiàn)的圖形像素比較操作結(jié)構(gòu) 國防科技大學(xué)憶阻器研究團(tuán)隊(duì)提出了通用等值比較邏輯[33]。對2個N位數(shù)據(jù)D(d0d1…dN-1)和K(k0k1…kN-1)進(jìn)行等值比較,分解為表達(dá)式: ∨(dN-1∧kN-1)]∧ (1) 實(shí)現(xiàn)表達(dá)式(1)的N位等值比較電路由1個憶阻器交叉桿陣列、N+5個CMOS控制開關(guān)、1個計算脈沖產(chǎn)生器、1個控制脈沖產(chǎn)生器、N+1個接地電阻5部分組成,如圖7[33]所示,其中,N為等值比較電路能比較的數(shù)據(jù)位數(shù)(或者說字長)。 Figure 7 Universal N-bit equivalent comparison logic circuit圖7 通用N位等值比較邏輯電路 等值比較過程被分解為2次比較過程,每次比較過程都由“清零—取反—或非—讀取”4個操作組成,分別完成式(1)式中2個或非邏輯表達(dá)式的計算。如果其中任何1次子比較過程完成后,結(jié)果憶阻器的阻值為高阻態(tài)(邏輯0),那么可以判定D和K不相等;如果2次比較過程之后,結(jié)果憶阻器的阻值都為低阻態(tài)(邏輯1),那么可以判定D和K相等。 (1)清零。清零操作所要達(dá)到的效果是使得存儲中間結(jié)果T(t0t1…tN-1)的憶阻器T0T1…TN-1和結(jié)果憶阻器MRES被置為高阻態(tài)(邏輯0)。 (2)取反。將數(shù)據(jù)K(k0k1…kN-1)按位求反結(jié)果(k0k1…kN-1)命名為K。此時,K被保存到中間結(jié)果憶阻器T0T1…TN-1中,得到中間計算結(jié)果T(t0t1…tN-1)。 (3)或非。或非操作完成了式(1)的第1個子表達(dá)式的運(yùn)算,運(yùn)算結(jié)果保存在憶阻器MRES中。 (4)讀取。如果VOUT的輸出接近0,那么結(jié)果憶阻器MRES處于最大阻值狀態(tài)(ROFF),于是式(1)的第1個或非表達(dá)式的計算結(jié)果為0,所以式(1)的值必為0,故D和K不相等,比較過程結(jié)束;如果VOUT的輸出接近讀脈沖VREAD,那么結(jié)果憶阻器MRES接近最小阻值狀態(tài)(RON),于是式(1)的第1個子表達(dá)式的計算結(jié)果為1,此時式(1)的值尚無法確定,需要進(jìn)行第2次比較過程,比較過程類似。 第1次比較過程中的每一步,圖7中計算脈沖產(chǎn)生器的輸出線W1~W4、控制脈沖產(chǎn)生器的縱向控制脈沖輸出線WC1~WC4和橫向控制脈沖輸出線WL0~WLN上應(yīng)產(chǎn)生的脈沖如表1[33]所示,其中,計算脈沖包括以下4種脈沖:幅度為VCLEAR的清零脈沖、幅度為VCOND的條件脈沖、幅度為VSET的置位脈沖和幅度為VREAD的讀脈沖;而控制脈沖為VSOPEN。 采用通用等值比較邏輯的實(shí)現(xiàn)方法進(jìn)行2個多位數(shù)據(jù)之間的比較,最少只需4個時間步得出2個數(shù)據(jù)不相等的比較結(jié)果,最多需要8個時間步得出2個數(shù)據(jù)相等的比較結(jié)果。該方法的優(yōu)點(diǎn)是,比較過程全部采用狀態(tài)邏輯實(shí)現(xiàn),易于交叉桿集成,而且在最壞情況下,比較次數(shù)不會隨著比較數(shù)據(jù)的字長的增大而增加。缺點(diǎn)是比較時間步不是常量。 專用等值比較邏輯是對通用等值比較邏輯的一種改進(jìn)[33]。通過觀察可以發(fā)現(xiàn),采用狀態(tài)邏輯計算式(1)中的2個或非邏輯表達(dá)式時,除了輸入不同,計算步驟是相同的。專用等值比較邏輯的電路由2套完全相同的電路組成,每一套都和通用等值比較邏輯的電路(如圖7所示)完全一致。待比較數(shù)據(jù)D(d0d1…dN-1)和K(k0k1…kN-1)以及它們的按位互補(bǔ)值D(d0d1…dN-1)和K(k0k1…kN-1),被分別存儲在圖8a和圖8b中,因此等值比較的比較過程中不再需要進(jìn)行清零和求反操作。 專用等值比較邏輯在保留通用等值比較邏輯優(yōu)點(diǎn)的基礎(chǔ)上,采用空間換時間的方式,增加了邏輯電路,但縮短了實(shí)現(xiàn)等值比較所需的時間步。采 Figure 8 Dedicated equivalent comparison logic circuit圖8 專用等值比較邏輯電路 用專用等值比較邏輯實(shí)現(xiàn)方法,進(jìn)行2個多位數(shù)據(jù)之間的比較,最少只需3個時間步就可以得出2個數(shù)據(jù)不相等的比較結(jié)果,最多只需4個時間步就可以得出2個數(shù)據(jù)相等的等值比較結(jié)果。相比通用的等值比較邏輯實(shí)現(xiàn),最好情況和最壞情況下比較的效率都有大幅改進(jìn)。 為了充分利用狀態(tài)邏輯計算和存儲融合的優(yōu)勢,以及基于憶阻器交叉桿的存儲器具有的高密度、存儲非易失的優(yōu)點(diǎn),必須設(shè)計適當(dāng)?shù)臄?shù)據(jù)存儲結(jié)構(gòu)。本節(jié)介紹“數(shù)據(jù)HOME自治”的概念,以及基于“數(shù)據(jù)HOME自治結(jié)構(gòu)”的憶阻存儲器結(jié)構(gòu)[33,37 - 39]。 數(shù)據(jù)HOME自治定義:數(shù)據(jù)可在其存放位置進(jìn)行不受外界干擾的自我管理,實(shí)現(xiàn)預(yù)定的操作和服務(wù)的數(shù)據(jù)處理機(jī)制[33]。 Table 1 Voltage pulse sequence of the first comparison process in the Universal N-bit equivalent comparison logic 這里,“數(shù)據(jù)HOME”指存放數(shù)據(jù)的宿主。計算機(jī)中,“數(shù)據(jù)HOME”即是存儲器芯片?!白灾巍敝复鎯ο到y(tǒng)能夠不受外界干擾,自我管理實(shí)現(xiàn)預(yù)定的操作和服務(wù)。 圖9[33]從靜態(tài)角度闡述了“數(shù)據(jù)HOME自治”原理。傳統(tǒng)計算結(jié)構(gòu)下,運(yùn)算與存儲分離,與數(shù)據(jù)存儲相關(guān)的上層軟件(文件系統(tǒng)、數(shù)據(jù)庫等)只能通過處理器配合存儲器完成各種數(shù)據(jù)操作,如圖9a所示。而如果可以實(shí)現(xiàn)運(yùn)算和存儲的融合,以前依賴軟件在處理器上運(yùn)行才能完成的部分功能被固化到存儲器中,如圖9b所示。存儲器依靠自身的運(yùn)算能力完成特定的數(shù)據(jù)操作,比如數(shù)據(jù)查詢、訪問控制、糾檢錯和加解密等。 Figure 9 Static interpretation of the “Data Home Autonomy” principle圖9 “數(shù)據(jù)Home自治”原理靜態(tài)解釋 圖10[33]從動態(tài)角度對比了2種結(jié)構(gòu)下數(shù)據(jù)處理的過程。馮·諾依曼體系結(jié)構(gòu)下,數(shù)據(jù)存儲和數(shù)據(jù)處理在空間上分離,導(dǎo)致了存儲墻問題,如圖10a所示。而采用運(yùn)算存儲融合結(jié)構(gòu),對數(shù)據(jù)的部分處理在存儲器中完成,如圖10b所示。 Figure 10 Dynamic interpretation of the “Data Home Autonomy” principle圖10 “數(shù)據(jù)HOME自治”原理動態(tài)解釋 “數(shù)據(jù)HOME自治”使得:(1)通過減少數(shù)據(jù)的讀出寫入,降低了數(shù)據(jù)被非法訪問的風(fēng)險;(2)由于部分?jǐn)?shù)據(jù)處理在存儲器中完成,極大緩解了存儲墻問題的壓力;(3)存儲器中容易以更高的并行度實(shí)現(xiàn)更細(xì)粒度的數(shù)據(jù)處理,比如在位級(bit)或字級(word)完成一些數(shù)據(jù)操作(例如數(shù)據(jù)比較等),提高了數(shù)據(jù)處理的效率。 數(shù)據(jù)HOME自治結(jié)構(gòu)定義:把采用數(shù)據(jù)HOME自治原理實(shí)現(xiàn)的存儲結(jié)構(gòu)稱為“數(shù)據(jù)HOME自治結(jié)構(gòu)”,或者稱為“數(shù)據(jù)HOME自治體”[33]。 “數(shù)據(jù)HOME自治”的原理用于指導(dǎo)實(shí)現(xiàn)“數(shù)據(jù)HOME自治結(jié)構(gòu)”時,要求:(1)底層器件必須具備融合計算和存儲的能力,或者說邏輯區(qū)域和存儲區(qū)域的輪換能力。這就要求數(shù)據(jù)區(qū)和存儲區(qū)工藝兼容,并且結(jié)構(gòu)等價。(2)可以實(shí)現(xiàn)計算存儲的融合,在數(shù)據(jù)所在位置進(jìn)行計算。 傳統(tǒng)CMOS工藝中,處理器和存儲器兩者目標(biāo)不同,導(dǎo)致制作工藝和封裝工藝都不同,所以傳統(tǒng)CMOS器件不滿足這2個要求,而憶阻器則完全不同。對于基于憶阻器交叉桿的存儲結(jié)構(gòu)而言,數(shù)據(jù)區(qū)即是邏輯區(qū),邏輯區(qū)即是數(shù)據(jù)區(qū),兩者都基于交叉桿結(jié)構(gòu),功能和特性上完全等價。狀態(tài)邏輯則能實(shí)現(xiàn)計算存儲的融合。 一種可能的基于憶阻器的“數(shù)據(jù)HOME自治”結(jié)構(gòu)如圖11[33,37,38]所示。從圖11中可以看出,該結(jié)構(gòu)由數(shù)據(jù)區(qū)、邏輯區(qū)和配置電路3個部分組成。其中,數(shù)據(jù)區(qū)用于存儲數(shù)據(jù);邏輯區(qū)進(jìn)行邏輯運(yùn)算,用于對區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行處理;配置電路配合邏輯區(qū)完成運(yùn)算并控制數(shù)據(jù)區(qū)和邏輯區(qū)的輪換。 Figure 11 Memristor-based “DATA HOME Autonomy” structure 圖11 基于憶阻器的“數(shù)據(jù) Home 自治”結(jié)構(gòu) 基于憶阻器的“數(shù)據(jù)HOME自治”結(jié)構(gòu)所具備的這種融合計算和存儲的能力,使得它只需接收特定的操作命令,就可啟動自治結(jié)構(gòu)內(nèi)部的數(shù)據(jù)處理過程,并視情況輸出處理結(jié)果。處理過程中無需CPU干預(yù),計算在數(shù)據(jù)所在位置進(jìn)行,除內(nèi)部的數(shù)據(jù)傳輸之外,基本不存在存儲層次間的數(shù)據(jù)傳輸過程(輸出處理結(jié)果除外),從而大大節(jié)省了數(shù)據(jù)開銷。所以,基于憶阻器的“數(shù)據(jù)HOME自治”結(jié)構(gòu)有望極大提高特定計算的效率,有效緩解傳統(tǒng)計算架構(gòu)中的存儲墻問題。 根據(jù)“數(shù)據(jù)HOME自治”原理和基于憶阻器的“數(shù)據(jù)HOME自治”結(jié)構(gòu),圖12展示了一種憶阻存儲器結(jié)構(gòu)[33,37 - 39]。憶阻存儲器可由多個Bank構(gòu)成,而每個Bank又由多個憶阻Tile和多個功能部件構(gòu)成。圖12中的憶阻存儲器由4個憶阻Bank 構(gòu)成,其中Bank 0中包含4個憶阻Tile和多種功能部件。 Figure 12 Memristive memory architecture圖12 憶阻存儲器結(jié)構(gòu) 憶阻Tile是指憶阻存儲器中用于數(shù)據(jù)存儲和邏輯運(yùn)算的憶阻器交叉桿區(qū)域,是憶阻存儲器中數(shù)據(jù)的駐地,也是對數(shù)據(jù)進(jìn)行狀態(tài)邏輯操作的基本單位。一種可能的憶阻Tile結(jié)構(gòu)如圖13[33]所示。 Figure 13 Memristive Tile structure圖13 憶阻Tile結(jié)構(gòu) 操作控制模塊負(fù)責(zé)控制計算脈沖產(chǎn)生器和控制脈沖產(chǎn)生器。在憶阻存儲器上進(jìn)行的操作不管多么復(fù)雜,最終都是通過Tile上的狀態(tài)邏輯操作實(shí)現(xiàn)的。操作控制模塊能夠產(chǎn)生公共基本操作所需的計算脈沖序列和控制脈沖序列的功能模塊,可以根據(jù)不同需求對憶阻器Tile進(jìn)行配置和重構(gòu)。 圖12中的憶阻存儲器結(jié)構(gòu)和圖13中的憶阻Tile結(jié)構(gòu)設(shè)計基本涵蓋了近期關(guān)于支持狀態(tài)邏輯計算的存儲結(jié)構(gòu)設(shè)計[17,30,40-49],這些狀態(tài)邏輯電路設(shè)計一般都包含憶阻器交叉桿結(jié)構(gòu)設(shè)計、外圍電路以及脈沖序列產(chǎn)生方法3部分。該設(shè)計的優(yōu)勢是以“數(shù)據(jù)HOME”結(jié)構(gòu)為理論指導(dǎo),設(shè)計了功能模塊完整的、具有自主運(yùn)算能力的存儲結(jié)構(gòu)。缺點(diǎn)是受制于器件制備能力,并沒有制作出實(shí)際的憶阻存儲器。 體系結(jié)構(gòu)研究最終是為了面向應(yīng)用,提高應(yīng)用的執(zhí)行效率。然而,并不是所有應(yīng)用都可通過采用基于憶阻器的“數(shù)據(jù)HOME自治”結(jié)構(gòu)帶來性能加速。一般來說,實(shí)施“數(shù)據(jù)HOME自治”對應(yīng)用的數(shù)據(jù)存儲特性和處理特性都有要求。 “數(shù)據(jù)HOME自治”結(jié)構(gòu)要求應(yīng)用所處理的數(shù)據(jù)必須是結(jié)構(gòu)化的。憶阻存儲結(jié)構(gòu)是基于交叉桿實(shí)現(xiàn)的。交叉桿結(jié)構(gòu)非常規(guī)整,適合存儲結(jié)構(gòu)規(guī)整、類型統(tǒng)一的結(jié)構(gòu)化數(shù)據(jù),而不適合存儲非結(jié)構(gòu)化數(shù)據(jù)。 “數(shù)據(jù)HOME自治”結(jié)構(gòu)要求應(yīng)用所進(jìn)行的數(shù)據(jù)處理任務(wù)必須是簡單的。狀態(tài)邏輯是一種用時間換空間的操作,如果對數(shù)據(jù)的操作過于復(fù)雜,轉(zhuǎn)化成狀態(tài)邏輯操作序列可能過長,從而導(dǎo)致實(shí)現(xiàn)效率低下。而某些操作的復(fù)雜度可能超出了狀態(tài)邏輯可以接受的范圍,必須由CPU來完成。如果應(yīng)用對數(shù)據(jù)的操作包含大量簡單同質(zhì)化操作,則適合采用狀態(tài)邏輯實(shí)現(xiàn)。 應(yīng)當(dāng)按照這2個要求去尋找適合“數(shù)據(jù)HOME自治”結(jié)構(gòu)實(shí)現(xiàn)的應(yīng)用。然而即使找到了適合的應(yīng)用,面向應(yīng)用進(jìn)行自上而下全流程體系結(jié)構(gòu)設(shè)計的工作并不多見。國防科技大學(xué)憶阻器團(tuán)隊(duì)開展了面向關(guān)系數(shù)據(jù)庫存儲體系結(jié)構(gòu)[33]、存儲加密體系結(jié)構(gòu)技術(shù)[37]、圖像處理體系結(jié)構(gòu)[38,50]、自治容錯體系結(jié)構(gòu)技術(shù)[39]4個方向的體系結(jié)構(gòu)級研究。下面以基于憶阻器的關(guān)系數(shù)據(jù)庫存儲體系設(shè)計為例,闡述相關(guān)設(shè)計思路。 關(guān)系數(shù)據(jù)庫作為目前最重要的數(shù)據(jù)處理模型和工具,在當(dāng)前乃至未來相當(dāng)長的一段時間內(nèi)仍將廣泛使用。關(guān)系數(shù)據(jù)庫的存儲特性和操作特性非常適合采用“數(shù)據(jù)HOME自治”結(jié)構(gòu)實(shí)現(xiàn),并且憶阻存儲器將有效提高關(guān)系數(shù)據(jù)庫的性能[33]。 在設(shè)計存儲結(jié)構(gòu)時,他們采用了將二位數(shù)據(jù)表映射到物理存儲(交叉桿)中的實(shí)現(xiàn)方式,如圖14[33]所示。這種數(shù)據(jù)存儲設(shè)計的優(yōu)點(diǎn)是直觀,并且支持記錄的隨機(jī)尋址。 Figure 14 A data table and its possible mapping to the memristor crossbar圖14 數(shù)據(jù)表及其在憶阻器交叉桿上可能的映射方式 所有數(shù)據(jù)庫的數(shù)據(jù)操作歸類為單元組一元操作、全關(guān)系一元操作和全關(guān)系二元操作。其中,單元組一元操作包括掃描操作、選擇操作和投影操作;全關(guān)系一元操作包括去重操作、排序操作和分組操作;全關(guān)系二元操作包括并/交/差操作、乘積操作和連接操作。他們通過分析這些操作的底層實(shí)現(xiàn)機(jī)理,將這些操作完全通過比較和拷貝2種操作實(shí)現(xiàn),并設(shè)計了在憶阻存儲器中高效實(shí)現(xiàn)這些操作的方法。 值得一提的是,設(shè)計憶阻存儲器中關(guān)系數(shù)據(jù)庫查詢操作的實(shí)現(xiàn)方法,基于如下嚴(yán)格的假設(shè): (1)假設(shè)憶阻存儲器上可以實(shí)現(xiàn)元組拷貝操作和比較操作; (2)假設(shè)關(guān)系數(shù)據(jù)已存儲在憶阻存儲器Tile中; (3)只關(guān)心查詢操作的實(shí)現(xiàn)過程,不考慮對查詢結(jié)果的處理; (4)待查詢的關(guān)系和結(jié)果關(guān)系的所有元組都可容納在一個基本Tile或者擴(kuò)展Tile內(nèi); (5)進(jìn)行操作的記錄之間都是按位對齊的,并且進(jìn)行的比較操作都是對元組之間的關(guān)鍵字進(jìn)行比較。 Table 2 The worst case complexity analysis of the query operation in the memristive memory 為了對基于憶阻存儲器的關(guān)系查詢操作進(jìn)行分析和評價,設(shè)計了憶阻存儲器的性能模型。該模型對憶阻存儲器中進(jìn)行關(guān)系數(shù)據(jù)庫單元組一元操作、全關(guān)系一元操作和全關(guān)系二元操作等查詢操作的時間開銷進(jìn)行分析。若用N和M分別代表關(guān)系R和關(guān)系S中的元組數(shù)目,那么這些操作在最壞情況下的計算復(fù)雜度如表2所示。通過HSPICE對這些單元組一元操作、全關(guān)系一元操作和全關(guān)系二元操作進(jìn)行模擬測評,并和基于磁盤的關(guān)系查詢操作進(jìn)行對比發(fā)現(xiàn),面向關(guān)系數(shù)據(jù)庫的存儲體系結(jié)構(gòu)以及憶阻存儲器可以有效地加速關(guān)系數(shù)據(jù)庫的基本查詢操作[33]。 隨著CMOS器件逼近物理尺寸極限,業(yè)界一直在尋求新型使能器件或者技術(shù),以延續(xù)摩爾定律。其中,基于憶阻器的狀態(tài)邏輯就是一種極有發(fā)展前景的使能技術(shù)。狀態(tài)邏輯可以實(shí)現(xiàn)真正意義上計算和存儲的融合,有望開創(chuàng)全新的計算架構(gòu)。 為了研究基于憶阻器的計算存儲融合體系結(jié)構(gòu),本文按照從原理到結(jié)構(gòu)再到應(yīng)用的順序展開論述。首先闡述了惠普實(shí)驗(yàn)室提出的蘊(yùn)含狀態(tài)邏輯的實(shí)現(xiàn)原理,針對其存在的缺點(diǎn),詳細(xì)介紹了2種狀態(tài)邏輯改進(jìn)方法。接著探討將狀態(tài)邏輯從單比特位操作擴(kuò)展為多比特位并行操作的方法,闡述拷貝操作和比較操作的實(shí)現(xiàn)方法。然后介紹了數(shù)據(jù)HOME自治原理,概括基于憶阻器的數(shù)據(jù)存儲結(jié)構(gòu)的設(shè)計原理和實(shí)現(xiàn)結(jié)構(gòu)。最后以關(guān)系數(shù)據(jù)庫存儲體系結(jié)構(gòu)設(shè)計為例,探討了面向應(yīng)用的計算存儲融合體系結(jié)構(gòu)技術(shù)。 然而,當(dāng)前基于憶阻器狀態(tài)邏輯的面向應(yīng)用的體系結(jié)構(gòu)還處于理論設(shè)計階段。原因是多方面的:(1)因?yàn)閷τ趹涀杵鞯钠骷墮C(jī)理的研究一直在深入,制備憶阻器材料的選擇尚無定論,研究人員還在尋求均一性更好、切換效應(yīng)更明顯、器件狀態(tài)偏移更小的憶阻器;(2)憶阻器交叉桿內(nèi)在的寫串?dāng)_、寄生電阻(電容)、潛通路等問題,嚴(yán)重影響著交叉桿規(guī)模的擴(kuò)展;(3)和CMOS計算相比,狀態(tài)邏輯計算采用時間換空間的方法獲取優(yōu)勢,但對于復(fù)雜邏輯操作,需要迭代執(zhí)行的時間步驟,以及由此帶來的外圍電路的開銷,很可能得不償失;(4)設(shè)計狀態(tài)邏輯時,缺少自動化設(shè)計工具支持。這些因素限制了憶阻器從實(shí)驗(yàn)室走向?qū)嵱谩?/p> 以上提到的4個方面研究應(yīng)該并重,在可見的將來,基于憶阻器的狀態(tài)邏輯計算應(yīng)該提高執(zhí)行穩(wěn)定性和效率,充分利用交叉桿的并行性,開發(fā)更高效的原子操作,如多位數(shù)據(jù)的大小比較等,并找準(zhǔn)應(yīng)用領(lǐng)域,設(shè)計面向應(yīng)用的高層體系結(jié)構(gòu),成為特定應(yīng)用的高效加速部件。同時,應(yīng)和CMOS電路結(jié)合設(shè)計,發(fā)揮各自的優(yōu)點(diǎn)。2.2 狀態(tài)邏輯優(yōu)化研究
2.3 狀態(tài)邏輯分類
3 基于憶阻器交叉桿的狀態(tài)邏輯設(shè)計
3.1 基本邏輯并行實(shí)現(xiàn)
3.2 拷貝操作
3.3 比較操作
4 基于憶阻器的數(shù)據(jù)存儲結(jié)構(gòu)
4.1 數(shù)據(jù)HOME自治原理
4.2 基于憶阻器的數(shù)據(jù)HOME自治結(jié)構(gòu)
4.3 憶阻存儲器結(jié)構(gòu)設(shè)計
5 面向應(yīng)用研究
5.1 “數(shù)據(jù)HOME自治”結(jié)構(gòu)對應(yīng)用的要求
5.2 關(guān)系數(shù)據(jù)庫存儲體系結(jié)構(gòu)技術(shù)
6 結(jié)束語