劉 曉 劉迪軍 張有光 羅力川 康 旺
①(北京航空航天大學(xué)電子信息與工程學(xué)院 北京 100191)
②(北京航空航天大學(xué)集成電路科學(xué)與工程學(xué)院 北京 100191)
隨著半導(dǎo)體工藝特征尺寸的不斷縮小,傳統(tǒng)的基于互補金屬氧化物半導(dǎo)體 (Complementary Metal Oxide Semiconductor, CMOS)工藝的電路遭遇了性能瓶頸。當(dāng)工藝節(jié)點微縮到納米級別時,由量子隧穿效應(yīng)導(dǎo)致的漏電流成為制約傳統(tǒng)存儲器發(fā)展的重要因素[1–4]。同時,傳統(tǒng)的計算系統(tǒng)采用馮·諾依曼體系結(jié)構(gòu),使用處理單元與存儲單元分離的設(shè)計方案,隨著集成電路工藝尺寸的不斷縮小,處理單元和存儲單元之間的性能差距越來越大,導(dǎo)致在多計算任務(wù)中,大部分的能耗和時間都消耗在數(shù)據(jù)移動過程中,而不是數(shù)據(jù)計算中,限制了當(dāng)代計算系統(tǒng)的進(jìn)一步發(fā)展。存內(nèi)計算[5,6]是將邏輯單元與存儲單元高度集成在一起,使得數(shù)據(jù)能在存儲單元中完成邏輯運算操作,有效避免通過 I/O 端口對儲單元的大量讀寫操作,從而解決了存儲器對數(shù)據(jù)處理單元性能限制的問題。在眾多新型存儲器件當(dāng)中,自旋電子器件由于其非易失性、天然抗輻射、高速度[7,8]等特點,成為當(dāng)今學(xué)術(shù)界和工業(yè)界存儲器技術(shù)研究的熱點之一。近年來,自旋器件在內(nèi)存單元[9,10]和邏輯單元[11,12]設(shè)計中也得到了廣泛的研究與應(yīng)用。
全加器(Full Adder, FA)是算術(shù)邏輯單元(Arithmetic and Logic Unit, ALU)中最基本的操作之一,因此FA在ALU結(jié)構(gòu)中起著重要的作用。之前在文獻(xiàn)[13]和文獻(xiàn)[14]中提出的磁全加器(Magnetic Full Adder, MFA) 存在寫操作慢和寫功耗高兩個缺點。文獻(xiàn)[13,14]提出的MFAs是基于通過自旋轉(zhuǎn)移轉(zhuǎn)矩(Spin Transfer Torque, STT)[15]方法翻轉(zhuǎn)的傳統(tǒng)磁隧道結(jié)(Magnetic Tunnel Junction,MTJ)器件進(jìn)行設(shè)計的。然而STT方式進(jìn)行數(shù)據(jù)寫入時具有較高的寫入功耗和延遲,而且還存在數(shù)據(jù)讀寫串?dāng)_的問題。 基于自旋軌道矩(Spin Orbit Torque, SOT)的設(shè)計方案[16],雖然在一定程度上解決了STT器件讀寫方面的問題,但是SOT MTJ器件結(jié)構(gòu)需要兩個接入晶體管(一個用于寫入,另一個用于讀取),因此比兩端STT MTJ需要更大的單元面積。近年來,一種新型的具有面內(nèi)交換偏置的電壓控制自旋軌道轉(zhuǎn)矩(Voltage-Control SOT,VC-SOT)驅(qū)動的MTJ 器件[17]引起了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。無外磁場輔助的SOT翻轉(zhuǎn)可以通過面內(nèi)交換偏置實現(xiàn)。通過控制加在 MTJ上的偏置電壓和反鐵磁(AntiFerroMagnetic, AFM)層的雙向SOT電流,可以實現(xiàn)MTJ電阻狀態(tài)的快速切換。此外,VC-SOT MTJ器件的讀寫電流小于STT和SOT驅(qū)動的器件,因此VC-SOT MTJ可以達(dá)到較低的能耗。
本文基于VC-SOT-MTJ器件設(shè)計了一個存內(nèi)計算全加器,其主要貢獻(xiàn)為:
(1)提出一個高度并行的存內(nèi)計算邏輯陣列。類似于單個器件的操作,該邏輯陣列可以通過輸入信號的配置進(jìn)行不同邏輯運算功能。同時,本文提出的存內(nèi)計算邏輯陣列不僅支持陣列間的并行操作,單個陣列不同行之間也可以通過輸入信號的配置執(zhí)行不同的邏輯運算,實現(xiàn)更為高效的并行計算模式。
(2)提出一個存內(nèi)計算全加器。本文提出的全加器可以實現(xiàn)高度并行運算,仿真結(jié)果表明該全加器可實現(xiàn)更快的計算速度(1.11 ns/bit)和更低的計算功耗(5.07 fJ/bit)。
本文的其余部分組織如下。第2節(jié)簡要介紹了VC-SOT MTJ器件的基本結(jié)構(gòu)。第2節(jié)介紹了基于VC-SOT-MTJ器件的基本結(jié)構(gòu)。第3節(jié)介紹基于VC-SOT-MTJ的可復(fù)用可重構(gòu)的邏輯陣列。第4節(jié)介紹了一種可并行復(fù)用的1 bit全加器設(shè)計方案。仿真結(jié)果和性能分析結(jié)果見第5節(jié),最后,第6節(jié)對本文進(jìn)行了總結(jié)。
MTJ是自旋電子學(xué)中數(shù)據(jù)存儲的基本單元之一,它主要由兩層鐵磁層及一層氧化層構(gòu)成,結(jié)構(gòu)排列為:鐵磁層、氧化層、鐵磁層。其中,磁矩固定的鐵磁層稱為固定層,另一層磁矩會隨外磁場變化的鐵磁層稱為自由層,位于中間的氧化層被稱為隧穿勢壘層。當(dāng)固定層與自由層的磁矩呈平行排列時,MTJ表現(xiàn)為低阻值狀態(tài),可以用“0”表示。反過來,當(dāng)固定層與自由層的磁矩呈反平行排列時,MTJ表現(xiàn)為高阻值狀態(tài),可以用“1”表示。因此,對于MTJ來說,可以用其電阻值的大小來進(jìn)行對應(yīng)數(shù)據(jù)的存儲。圖1顯示了一個典型的VCSOT MTJ的結(jié)構(gòu)。該器件包含一個AFM層(例如,IrMn) ,其上有一個MTJ。最近,我們觀察到一種新的無磁開關(guān)機制[15],它采用了 IrMn/CoFeB/MgO結(jié)構(gòu),并借助面內(nèi)交換偏置實現(xiàn)了無磁SOT開關(guān)。如圖1所示,新機制還采用了VCMA效應(yīng),通過施加?xùn)艠O電壓 Vbia,能夠顯著降低了SOT開關(guān)電流。執(zhí)行寫入操作時,在MTJ上方施加偏置電壓(Vbia)以減少切換磁化方向所需的能量勢壘,從而降低臨界SOT寫電流。此時在AFM中施加適當(dāng)?shù)腟OT寫電流(在降低的臨界開關(guān)電流和常規(guī)開關(guān)電流之間)可以切換MTJ自由層磁化方向。MTJ自由層的磁化方向?qū)⒏鶕?jù)SOT寫入電流的方向改變。當(dāng)AFM中通過從左到右的寫入電流時,MTJ的磁化狀態(tài)將切換為平行狀態(tài),反之,當(dāng)AFM中通過從右到左的寫入電流時,MTJ的磁化狀態(tài)將切換為反平行狀態(tài)。
圖1 VC-SOT MTJ器件結(jié)構(gòu)
本文采用的VC-SOT MTJ器件支持在重金屬層上進(jìn)行多個MTJ器件的堆疊?;赩C-SOT MTJ器最近文獻(xiàn)[18]提出了一種適合SOT器件的有效的方法來實現(xiàn)一組布爾邏輯函數(shù)的完整集合。本文采用了文獻(xiàn)[18]中的布爾邏輯設(shè)計方法,圖2所示為使用單個VC-SOT MTJ器件實現(xiàn)的AND, OR和XOR邏輯功能,其中A表示施加偏置電壓Vbia邏輯1(例如,Vbia=1.2 V)或邏輯0(例如,Vbia= 0 V));Bi表示具有MTJ器件的初始電阻狀態(tài)(用“1”表示高阻值狀態(tài),“0”表示低阻值狀態(tài));C表示設(shè)備寫入電流的方向(用“1”從左向右的寫入電流,“0”從右至左的寫入電流);Bi+1表示計算結(jié)果。其余的布爾邏輯函數(shù)也可以通過重新配置輸入來類似地執(zhí)行。
圖2 基于單個VC-SOT MTJ器件的3個基本的布爾邏輯函數(shù)
本文提出了一個高度并行的存內(nèi)計算可重構(gòu)陣列(Reconfigurable Array),簡稱VC-RA。如圖3(b)所示,以每條重金屬層上集成8個MTJ器件的存內(nèi)計算可重構(gòu)陣列為例進(jìn)行說明。陣列中每一行上的MTJ單元,由于其集成在相同的重金屬層上,可以并行地執(zhí)行相同的讀寫操作以實現(xiàn)圖2所示的布爾邏輯。同時,通過激活不同字線(Word Line, WL)上的晶體管,可以實現(xiàn)多行并行計算。與文獻(xiàn)[18]提出的可重構(gòu)陣列不同的是,VC-RA具有更好的可重構(gòu)性和更高的運算并行度。首先,圖3(a)中所示的邏輯陣列在執(zhí)行多行并行操作時,受到同一個寫電流的控制,因此只能執(zhí)行相同的邏輯運算,而圖3(b)中的VC-RA不同行上的寫入電流可通過寫入驅(qū)動器進(jìn)行配置,不同行之間可以通過配置不同方向的寫入電流執(zhí)行不同的邏輯操作。其次,文獻(xiàn)[18]中字線(Bit line, BL)方向上的A1~A8信號在多行之間共享,因此同一個邏輯陣列無法進(jìn)行不同操作數(shù)的邏輯操作。當(dāng)操作數(shù)不同時,單個陣列只能順序執(zhí)行。以圖3(b)中第n行為例,VC-FA可以通過WLn1~WLn8控制偏置電壓選通晶體管的開閉。當(dāng)A1~A8輸入的操作數(shù)全為“1”,并且字線選通信號僅WLn1=WLn2=“1”,其余信號為“0”時, A1~A8作用于MTJ器件上端的偏置電壓為{1,1,0,0,0,0,0,0},同時,不同行之間可以獨立的偏置電壓選通信號的配置,因此VC-FA可以支持不同操作數(shù)的邏輯運算??傊琕C-FA不僅可以在單一陣列內(nèi)部并行執(zhí)行不同的邏輯運算,還支持不同操作數(shù)并行處理。下面將對VC-FA的與、或、異或邏輯操作進(jìn)行詳細(xì)簡要的說明。
圖3 存內(nèi)計算可重構(gòu)邏輯陣列
對于“與”和“或”邏輯函數(shù),其操作與圖2(a)和圖2(b)中所示的單個器件操作方式類似。首先,通過行譯碼器選中需要進(jìn)行邏輯操作的字線WL,并將列方向上的所有晶體管都打開。然后將圖3(b)所示的8個操作數(shù)(A1~A8)分別提供給8列,同時在重金屬層中施加一個適當(dāng)大小的SOT寫電流,電流的方向(即C的取值)決定了該行需要執(zhí)行的邏輯類型(“0”表示“與”,“1”表示“或”)。
圖4所示為4個MTJ陣列結(jié)構(gòu)的“XOR”邏輯功能(包括兩步操作和一個預(yù)讀操作)。首先,通過讀取放大器將存儲在4個MTJ中的數(shù)據(jù)同時讀出。數(shù)據(jù)讀出后,第1步將MTJs中數(shù)據(jù)為“0”的對應(yīng)列上的選通晶體管S1和S3打開,而其他列保持關(guān)閉狀態(tài),將A1~A4提供給各列。同時,在AFM層中施加一個從左至右的寫入電流,即C=1。第2步,將MTJs中數(shù)據(jù)為“1”的對應(yīng)列上的選通晶體管S2和S4打開,而其他列設(shè)置為關(guān)閉,輸入A1~A4保持不變,此時在AFM層中施加一個從右至左的寫入電流寫入“0”。至此,異或操作執(zhí)行完畢。由于VC-FA陣列內(nèi)部不同行之間支持不同邏輯的邏輯運算,所以異或操作執(zhí)行過程中,我們可以并行地執(zhí)行“與”和“或”邏輯的任意兩兩組合。
圖4 VC-SOT MTJ陣列結(jié)構(gòu)中的“XOR”邏輯功能
一位全加法器是處理器中最基本的算術(shù)函數(shù)之一。然而,現(xiàn)有的存內(nèi)計算全加器[18]無法滿足數(shù)據(jù)的大規(guī)模并行需求。為此,本文基于VC-SOT MT可重構(gòu)陣列提出了一種并行一位全加器設(shè)計,簡稱VC-FA,以解決以前的工作的局限性。在數(shù)學(xué)上,一位全加器可以表示為
其中,X和Y是兩個操作數(shù),Z是進(jìn)位初始值,Zi是進(jìn)位計算結(jié)果。本文采用了文獻(xiàn)[18]中的全加器并行計算方法,其并行計算過程如圖5所示。具體的計算過程如下:(1)將操作數(shù)X, Y和Z從數(shù)據(jù)MRAM中讀出并存放在數(shù)據(jù)寄存器中,這里將最初存放操作數(shù)X, Y和Z的MRAM分別記為M1,M2和M3。(2)在M1中執(zhí)行XY的操作,M2中執(zhí)行X ⊕Y的操作,M3不進(jìn)行操作。(3)將(2)中的計算結(jié)果讀取之對應(yīng)的寄存器中。(4)在M2中并行完成X ⊕Y ⊕Z,M3中 順 序 執(zhí) 行Z(X ⊕Y) 和XY+Z(X ⊕Y)的操作,M3中的兩步操作與M2的異或可并行執(zhí)行。值得注意的是,由于文獻(xiàn)[18]中的同一個邏輯陣列單元只能夠順序完成不同的邏輯操作,因此文獻(xiàn)[18]中并行存算一體架構(gòu)需要3個不同的邏輯陣列來并行完成圖5所示的全加器并行操作,如圖6(a)中紅色虛線框區(qū)域所示。同時,操作過程中寄存器中的數(shù)據(jù)需要在這3個可重構(gòu)陣列間進(jìn)行傳遞,增加了數(shù)據(jù)傳輸?shù)难訒r。與之不同的是,VC-FA可以在同一個可重構(gòu)陣列中并行執(zhí)行不同的邏輯操作,因此VC-FA的并行存算一體陣列僅需要一個邏輯陣列來并行執(zhí)行全加器操作,如圖6(b)紅色方框所示。其他邏輯陣列可以靈活地配置成存儲單元或者邏輯單元,文獻(xiàn)[18]中的可重構(gòu)陣列配置為邏輯陣列進(jìn)行并行運算時,只能3個1組進(jìn)行配置。與文獻(xiàn)[18]相比,本文提出的存內(nèi)計算邏輯陣列,在相同規(guī)模陣列結(jié)構(gòu)下,具有更高的并行度,支持更大規(guī)模的并行運算。
圖5 VC-FA數(shù)據(jù)處理流程
圖6 并行存算一體陣列結(jié)構(gòu)
采用40 nm CMOS 工藝和一個基于 VC-SOT MTJ 緊湊模型(用 Verilog-A 語言編寫)[17]對本文提出的一位全加器進(jìn)行設(shè)計和評估。表1 列出了VC-SOT MTJ相關(guān)的關(guān)鍵參數(shù)。
表1 VC-SOT MTJ模型的參數(shù)和變量
圖7所示為VC-FA時序仿真波形。本仿真以3組1 bit全加法器為例,這意味著每一行重金屬上有3個MTJ器件。3組操作數(shù){X1,X2,X3},{Y1,Y2,Y3}和{Z1,Z2,Z3}分別存放在圖3(b)可重構(gòu)陣列中的不同行中。參數(shù)A-X1~A-X3為存放操作數(shù)X的可重構(gòu)陣列上的偏置電壓,參數(shù)A-Y1~A-Y3和AZ1~A-Z3同理;參數(shù)B-X1~B-X3對應(yīng)X的可重構(gòu)陣列上緩存單元的電阻狀態(tài),用于存儲邏輯計算的結(jié)果,其中mz表示縱向的磁化矢量;參數(shù)Ic-X為存放操作數(shù)X的可重構(gòu)陣列對應(yīng)行上的SOT寫電流。這里假設(shè)3組操作數(shù)的初始值{X1,X2,X3}={1,1,1},{Y1,Y2,Y3}={1,1,0}, {Z1,Z2,Z3}={1,0,1},從圖7步驟1中參數(shù)B-X1~B-X3可以看出。如圖7所示,本文提出的存內(nèi)計算并行全加器正確地實現(xiàn)了3 組加法運算(s u n={1,0,0},Zi+1={1,1,1})。
圖7 基于VC-SOT MTJ的并行全加法器時序仿真波形
表2顯示了VC-FA與文獻(xiàn)[18]中加法器的性能的對比。這里的延遲和功耗被平均到每1 bit。當(dāng)全加器操作僅使用一個可重構(gòu)單元時,VC-FA延時和功耗與文獻(xiàn)[18]中的加法器相比分別減少了60.02%和51.58%。當(dāng)全加器操作使用多個可重構(gòu)單元時,VC-FA延時與文獻(xiàn)[18]中的加法器相比分別減少了74.36%,功耗與使用一個可重構(gòu)陣列式相同。在只使用一個可重構(gòu)陣列式,VC-FA可以實現(xiàn)如圖5所示的并行邏輯計算,但是文獻(xiàn)[18]的可重構(gòu)單元只能分7步串行完成該加法操作,因此VC-FA在延時上有較大的性能優(yōu)勢。同時受益于VC-SOT MTJ器件在偏置電壓下的超低寫電流,其功耗也得到了很大的改善。
表2 全加器性能對比
本文基于VC-SOT MTJ器件,提出可一種新的存內(nèi)計算可重構(gòu)邏輯陣列。該可重構(gòu)陣列不僅支持不同操作數(shù)之間的并行運算,還能夠?qū)崿F(xiàn)陣列內(nèi)的多邏輯并行運算。在此基礎(chǔ)上,本文設(shè)計了存內(nèi)計算并行加法器VC-FA 。仿真結(jié)果表明,VCFA可以并行完成加法操作,并在多個陣列并行模式下實現(xiàn)約1.11 ns/bit和約5.07 fJ/bit的性能。后續(xù)將統(tǒng)籌考慮外圍電路的面積與功耗開銷,并基于現(xiàn)有VC-FA進(jìn)行多比特全加器的設(shè)計與研究,以適應(yīng)復(fù)雜應(yīng)用的計算需求。