本公開一般地涉及半導(dǎo)體集成電路,更具體地,涉及一種基于憶阻器的運算存儲陣列設(shè)備及其操作方法。
背景技術(shù):
:理想的憶阻器具有開關(guān)特性:憶阻器處于高阻態(tài)可以被視為邏輯“0”,當(dāng)施加正向置位電壓時,憶阻器由高阻態(tài)切換到低阻態(tài);憶阻器處于低阻態(tài)可以被視為邏輯“1”,當(dāng)施加反相復(fù)位電壓時,憶阻器由低阻態(tài)切換到高阻態(tài)。狀態(tài)電壓未達到閾值電壓,憶阻器的狀態(tài)不會發(fā)生改變。兩個憶阻器與一個基準單元(通常為電阻)構(gòu)成一個邏輯運算子單元。在所述邏輯運算子單元中,通過在憶阻器的一端施加不同的電壓并且將基準單元一端接地,就可以實現(xiàn)“實質(zhì)蘊涵”(IMP)邏輯,這種邏輯和“非”邏輯一起具備邏輯完備性?;趹涀杵鞯倪壿嬰娐芬揽繎涀杵髌骷母呒啥葍?yōu)勢及其非易失特性成為了取代CMOS邏輯電路、甚至淘汰傳統(tǒng)馮諾依曼計算機體系結(jié)構(gòu)的優(yōu)秀候選者。目前對于憶阻器陣列的邏輯操作主要以IMP邏輯為基礎(chǔ),輔以FALSE實現(xiàn)各種邏輯操作。當(dāng)要實現(xiàn)的邏輯結(jié)構(gòu)比較復(fù)雜時,利用這種方法所需要的憶阻器不光數(shù)量龐大,而且操作步驟冗長繁瑣。技術(shù)實現(xiàn)要素:為了解決現(xiàn)有技術(shù)在實現(xiàn)復(fù)雜邏輯時,所需要的憶阻器數(shù)量龐大并且操作步驟冗長的缺陷,本發(fā)明提出了一種運算存儲邏輯設(shè)備及其操作方法通過將“實質(zhì)蘊含”IMP邏輯與暗算、“非”FALSE邏輯運算、“或”O(jiān)R邏輯運算以及多輸入邏輯運算相結(jié)合,從而有效地減少了實現(xiàn)特定算術(shù)功能(如全加器)所需的憶阻器數(shù)量和操作步驟。根據(jù)本公開的一個方面,提出了一種基于憶阻器的運算存儲陣列設(shè)備的操作方法,所述基于憶阻器的運算存儲陣列設(shè)備包括:沿第一方向延伸的多條字線;沿與第一方向交叉的第二方向延伸的多條位線;分別設(shè)置于各位線和各字線的交叉點處且與相應(yīng)位線和相應(yīng)字線連接的多個阻變單元,每一阻變單元在高阻態(tài)和低阻態(tài)之間可切換并因此存儲相應(yīng)的數(shù)據(jù);連接到每一條字線的基準單元,基準單元的一端連接到字線,而另一端連接到控制器,其中基準單元的阻值在阻變單元的高阻態(tài)阻值和低阻態(tài)阻值之間;以及控制器,所述方法包括通過控制器向位線及相應(yīng)字線的基準單元施加電壓脈沖序列,將“實質(zhì)蘊含”IMP邏輯運算、“非”FALSE邏輯運算、“或”O(jiān)R邏輯運算和多輸入邏輯運算相結(jié)合,對連接到同一條字線的阻變單元中存儲的數(shù)據(jù)進行多種復(fù)雜邏輯運算,其中所述阻變單元是憶阻器。根據(jù)本公開的另一個方面,提出了一種基于憶阻器的運算存儲陣列設(shè)備,包括:沿第一方向延伸的多條字線;沿與第一方向交叉的第二方向延伸的多條位線;分別設(shè)置于各位線和各字線的交叉點處且與相應(yīng)位線和相應(yīng)字線連接的多個阻變單元,每一阻變單元在高阻態(tài)和低阻態(tài)之間可切換并因此存儲相應(yīng)的數(shù)據(jù);連接到每一條字線的基準單元,基準單元的一端連接到字線,而另一端連接到控制器,其中基準單元的阻值在阻變單元的高阻態(tài)阻值和低阻態(tài)阻值之間;以及控制器,用于通過向位線及相應(yīng)字線的基準單元施加電壓脈沖序列,將“實質(zhì)蘊含”IMP邏輯運算、“非”FALSE邏輯運算、“或”O(jiān)R邏輯運算和多輸入邏輯運算相結(jié)合,對連接到同一條字線的阻變單元中存儲的數(shù)據(jù)進行多種復(fù)雜邏輯運算,其中所述阻變單元是憶阻器。根據(jù)本公開的實施例,提供了一種新型的基于阻變器件陣列來執(zhí)行傳統(tǒng)布爾邏輯操作,有效地減少了實現(xiàn)特定算術(shù)功能(如全加器)所需的憶阻器數(shù)量和操作步驟。附圖說明通過以下參照附圖對本公開實施例的描述,本公開的上述以及其他目的、特征和優(yōu)點將更為清楚,在附圖中:圖1示意性示出了基于憶阻器的阻變器件陣列結(jié)構(gòu);圖2示意性示出了阻變器件的結(jié)構(gòu);圖3示意性示出了根據(jù)本公開實施例的“實質(zhì)蘊涵”邏輯的運算方式;圖4示意性示出了根據(jù)本公開實施例的“或”邏輯的運算方式;圖5示意性示出了根據(jù)本公開實施例的三輸入邏輯的運算方式;圖6示意性示出了根據(jù)本公開實施例的多輸入邏輯的運算方式;圖7示意性示出了根據(jù)本公開實施例的另一種三輸入邏輯的運算方式;圖8示意性示出了根據(jù)本公開實施例的另一種多輸入邏輯的運算方式;以及圖9示意性示出了根據(jù)本公開實施例的全加器操作的運算方式;具體實施方式以下,將參照附圖來描述本公開的實施例。但是應(yīng)該理解,這些描述只是示例性的,而并非要限制本公開的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本公開的概念。在附圖中示出了根據(jù)本公開實施例的各種結(jié)構(gòu)示意圖。這些圖并非是按比例繪制的,其中為了清楚表達的目的,放大了某些細節(jié),并且可能省略了某些細節(jié)。圖中所示出的各種元件的形狀以及它們之間的相對大小、位置關(guān)系僅是示例性的,實際中可能由于制造公差或技術(shù)限制而有所偏差,并且本領(lǐng)域技術(shù)人員根據(jù)實際所需可以另外設(shè)計具有不同形狀、大小、相對位置的元件。圖1示意性示出了基于憶阻器的阻變器件陣列結(jié)構(gòu)。如圖1所示,根據(jù)該實施例的運算存儲陣列包括沿第一方向(例如,圖中水平方向)延伸的多條(在此,假設(shè)m條)字線20,以及沿與第一方向交叉(例如,垂直)的第二方向(例如,圖中豎直方向)延伸的多條(在此,假設(shè)n條)位線30,具體地,BL1、BL2、BL3…、BLn。在字線20和位線30的交叉點處,設(shè)置有阻變單元10。阻變單元10的一端連接至相應(yīng)的字線20,且另一端連接至相應(yīng)的位線30。因此,阻變單元10形成為m×n的陣列。阻變單元10可在高阻態(tài)和低阻態(tài)之間切換,并因此可以存儲相應(yīng)的數(shù)據(jù)。通常,由高阻態(tài)到低阻態(tài)的轉(zhuǎn)變稱為編程(program)或者置位(SET),由低阻態(tài)到高阻態(tài)的轉(zhuǎn)變稱為擦除(erase)或者復(fù)位(RESET)。阻變單元10可以包括阻變器件。例如,阻變器件可以具有金屬-絕緣體-金屬的三明治結(jié)構(gòu),即在兩層金屬電極之間加入一層具有阻變特性的介質(zhì)薄膜材料。阻變器件的工作原理是在阻變材料兩端施加大小或者極性不同的電壓,控制阻變材料的電阻值在高低電阻態(tài)之間轉(zhuǎn)換。圖2示意性示出了阻變器件的結(jié)構(gòu)。阻變器件10可以包括設(shè)于金屬電極101和102之間的薄膜阻變材料103。金屬電極101和102可以包括Cu、Ti、TiN、Ta、TaN、W、WN、Al、Pt、Si、Ir等,阻變材料103可以包括HfO2、Ta2O5、TiO2、Al2O3、SiO2、GeSe、GeS等或其組合。各層的厚度可以根據(jù)所應(yīng)用的集成工藝而定。盡管在圖2的示例中將三層示出為正方體的上下堆疊,但是阻變器件的結(jié)構(gòu)不限于此,例如可以是長方體或圓柱體的上下堆疊,或者可以是柱狀徑向堆疊。由于阻變器件具有非易失存儲數(shù)據(jù)的特性,因此每個阻變單元都可以看成存儲器,阻變器件處于高阻態(tài)和低阻態(tài)分別對應(yīng)了存儲“0”和“1”,通過(電壓)脈沖信號可以控制對每個單元進行讀寫。本領(lǐng)域存在多種方式對這種阻變單元進行數(shù)據(jù)讀取/寫入等存儲器操作,在此不再贅述。此外,本領(lǐng)域存在多種方式來設(shè)置陣列的外圍電路(例如,譯碼器電路、讀出放大電路等),以將這種陣列用作非易失性存儲器,因此在此對該陣列中涉及存儲器操作的電路不再贅述。根據(jù)本公開的實施例,除了存儲功能之外,阻變單元還能直接參與計算。例如,根據(jù)不同運算的需要,處于同一字線上的若干阻變單元可以預(yù)先被設(shè)定為某些阻態(tài)的組合,通過在相應(yīng)的位線上輸入脈沖序列進行運算,最后的運算結(jié)果可以直接存儲在相應(yīng)的阻變單元中,可以直接用于輸出,或者繼續(xù)用于后面的計算。具體地,如果需要對一個或多個第一阻變單元中存儲的數(shù)據(jù)(“運算數(shù)”)進行運算,可以向該一個或多個第一阻變單元以及連接到同一條字線的另外的一個或多個第二阻變單元相對應(yīng)的位線施加與所要進行的邏輯運算相對應(yīng)的電壓脈沖序列,在第一阻變單元以及第二阻變單元中的至少一個阻變單元中得到對運算數(shù)進行邏輯運算的結(jié)果。這將在以下進一步詳細描述。運存器可執(zhí)行的運算不是固定的,可以根據(jù)用戶需要隨時進行編程。編程后,如果不進行擦寫,該運算功能將始終保持在該編程區(qū)域。運算功能包括傳統(tǒng)CPU可以執(zhí)行的所有邏輯,如“與”、“或”、“非”、“與非”、“或非”、“加法”、“乘法”等,這將在以下進一步詳細描述。實現(xiàn)不同運算功能的區(qū)別僅在于阻變單元的狀態(tài)和輸入脈沖序列不同,與阻變單元在陣列中所處的位置無關(guān)。因此,陣列中的任何阻變單元都可以實現(xiàn)存儲或者運算功能。因此,該系統(tǒng)具有運算和存儲不分離的特點,運算和存儲可以在同一位置完成,不需要數(shù)據(jù)傳輸?shù)臅r間和空間。為了向位線施加信號,各位線30的一端可以連接至控制器50,以便有選擇地接收輸入脈沖序列、接地或保持電浮置。此外,各字線20的一端可以連接有基準單元40,具體地,Rc1、Rc2、Rc3…、Rcm,基準單元40的另一端也可以連接到控制器50,以便有選擇地接收輸入脈沖序列、接地或電浮置。如下所述,基準單元40主要用于與高阻態(tài)或低阻態(tài)的阻變單元相結(jié)合,以便將相應(yīng)位線設(shè)置為基準電壓(GND)或者VDD。例如,基準單元40可以包括具有一定阻值的固定電阻或者具有一定阻值狀態(tài)的偽阻變單元。這種偽阻變單元可以具有與阻變單元相同的結(jié)構(gòu),但是并不用于存儲,而是主要用于提供運算基準。基準單元40的阻值可以設(shè)在阻變單元高阻態(tài)阻值和低阻態(tài)阻值之間,例如,可以設(shè)為高阻態(tài)阻值和低阻態(tài)阻值的幾何平均值。各字線20的另一端可以連接到輸出模塊(未示出),以便輸出阻變單元10中的數(shù)據(jù)。為方便理解,以下各種操作中所提到的“步驟數(shù)量”均不包含“預(yù)復(fù)位”(為實現(xiàn)某種邏輯,需要預(yù)先將某些阻變單元復(fù)位到高阻態(tài))。“實質(zhì)蘊涵”邏輯操作IMP圖3示意性示出了根據(jù)本公開實施例的“實質(zhì)蘊涵”邏輯的運算方式。如圖3所示,對于連接到同一字線WLi的阻變單元Rij和輔助阻變單元Rik中存儲的數(shù)據(jù)“A”和“B”,通過向阻變單元Rij連接的位線BLj施加電壓VDD/2,在輔助阻變單元Rik連接的位線BLk上施加電壓VDD,同時將連接到同一字線的基準單元的另一端接地,即可在阻變單元Rik中得到邏輯“實質(zhì)蘊涵”運算結(jié)果,表示為通過一步操作就可以實現(xiàn)這種邏輯,但兩個輸入阻變單元數(shù)據(jù)中的一個將被擦除。(為了方便理解,我們在后續(xù)描述中使用A、B等阻變單元的邏輯值來代替阻變單元的名稱,如Rij、Rik等)?!盎颉边壿嫴僮鱋R圖4示意性示出了根據(jù)本公開實施例的“或”邏輯的運算方式。如圖4所示,對于連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”,通過將阻變單元Rij連接到的位線BLj接地,在輔助阻變單元Rik連接到的位線BLk上施加電壓VDD,同時對連接到同一字線的基準單元的另一端施加電壓VDD/2,即可在阻變單元Rik中得到邏輯“或”運算結(jié)果,表示為B'=A+B;B'表示為運算后B單元存儲的數(shù)據(jù)。同樣通過一步操作就可以實現(xiàn)這種邏輯,但兩個輸入阻變單元數(shù)據(jù)中的一個將被抹掉?!胺恰边壿嫴僮鱊OT如果需要對某一阻變單元Rij中的數(shù)據(jù)“A”進行邏輯“非”運算,那么可以調(diào)用與該阻變單元Rij連接到同一字線WLi的一(輔助)阻變單元Rik。只需在該輔助阻變單元Rik中預(yù)先寫入“0”,然后對各個信號線施加上述“實質(zhì)蘊涵”邏輯相同的信號,即可在輔助阻變單元Rik中得到邏輯“非”運算結(jié)果,表示為通過一步操作就可以實現(xiàn)這種邏輯,但兩個輸入阻變單元數(shù)據(jù)中的一個將被擦除。“復(fù)制”邏輯操作COPY如果需要對某一阻變單元Rij中的數(shù)據(jù)“A”“復(fù)制”到連接在同一字線WLi的另一阻變單元Rik中。只需在該輔助阻變單元Rik中預(yù)先寫入“0”,然后對各個信號線施加與上述“或”邏輯相同的信號,即可在輔助阻變單元Rik中得到阻變單元Rij中的數(shù)據(jù),表示為B'=A。通過一步操作就可以實現(xiàn)這種邏輯?;谝陨纤姆N基本操作,可以采用不同的操作組合衍生出多種“或”和“與”操作,這幾種操作可以避免抹掉輸入單元的數(shù)據(jù),所需操作步驟和阻變單元數(shù)量會有所增加。衍生的邏輯操作如下。衍生的“或”邏輯操作如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯“或”運算然后存到第三個單元C中;即C=A+B,則可以調(diào)用連接到該字線WLi上的輸出阻變單元Ril。在該輸出阻變單元Ril中預(yù)先寫入“0”,先對將Rij的值COPY到Ril中,即C=A,然后對Ril和Rik進行OR操作,結(jié)果存儲在Ril中,即C=A+B。如果先COPY操作得到C=A,后IMP操作可以得到如果在該輸出阻變單元Ril中預(yù)先寫入“0”,先對將Rij的值取反(NOT)存儲到Ril中,即然后對Ril和Rik進行OR操作,結(jié)果存儲在Ril中,即如果先NOT得到后IMP操作可以得到通過兩步操作即可實現(xiàn)此邏輯,需要三個阻變單元。衍生的“與”邏輯操作如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯“與”運算,則可以調(diào)用連接到該字線WLi的一個輔助阻變單元Ril和一個輸出單元Rip。在阻變單元Ril和Rip中,預(yù)先存入“0”?;谝陨纤姆N衍生的“或”邏輯操作結(jié)果存儲在Ril中,然后將其分別取反存儲在Rip中,即可得到四種衍生的“與”邏輯操作,表示為D=ABA‾BAB‾A‾B‾.]]>通過三步操作就可以實現(xiàn)這種邏輯,需要四個阻變單元。“異或”邏輯如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯“異或”運算,則可以調(diào)用連接到該字線WLi的三個(輔助)阻變單元Ril、Rim和Rin。在阻變單元Ril、Rim和Rin中預(yù)先存入“0”。根據(jù)異或邏輯的分解公式,可以看到異或可以根據(jù)以上提到的兩步的衍生“或”操作實現(xiàn)。即先將寫到Ril中,寫到Rim中,再將即寫到Rin中。通過六步操作即可實現(xiàn)此邏輯,需要五個阻變單元。多輸入邏輯操作-方式1如圖5所示,如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯“或”運算即C=A+B,則可以調(diào)用連接到該字線WLi的一(輔助)阻變單元Ril。在該輔助阻變單元Ril中預(yù)先寫入“0”,通過將阻變單元Rij和阻變單元Rik連接到的位線BLj和BLk接地,在輔助阻變單元Ril連接到的位線BLl上施加電壓V,同時向連接到同一字線的基準單元的另一端施加電壓V/2,即可在阻變單元Ril中得到邏輯“或”運算結(jié)果,表示為C=A+B。通過一步操作就可以實現(xiàn)這種邏輯,需要三個阻變單元。多輸入邏輯操作-方式2如圖6所示,如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯“非與”運算即則可以調(diào)用連接到該字線WLi的一(輔助)阻變單元Ril。在該輔助阻變單元Ril中預(yù)先寫入“0”,通過向阻變單元Rij和阻變單元Rik連接到的位線BLj和BLk施加電壓V/2,在輔助阻變單元Ril連接到的位線BLl上施加電壓V,同時將連接到同一字線的基準單元的另一端接地,即可在阻變單元Ril中得到邏輯“非與”運算結(jié)果,表示為通過一步操作就可以實現(xiàn)這種邏輯,需要三個阻變單元?;谝陨蟽煞N多輸入邏輯操作,將其稱作“多輸入或”和“多輸入非與”,可以衍生出以下多種“或”和“與”操作方式。相對于之前的雙輸入“或”和“與”操作方式,可以在后面“全加”運算中有效地減少所需阻變器件的數(shù)量和簡化操作步驟。如果需要對連接到同一字線WLi的阻變單元Rij和Rik中存儲的數(shù)據(jù)“A”和“B”進行邏輯運算,則可以調(diào)用連接到該字線WLi的兩個(輔助)阻變單元Ril和Rip。在阻變單元Ril和Rip中,預(yù)先存入“0”。先將Rij中數(shù)據(jù)的非寫入Ril,即再對Rik、Ril和Rip做“多輸入或”,可以得到或者先將Rij中數(shù)據(jù)的非寫入Ril,即再對Rik、Ril和Rip做“多輸入與”,可以得到或者先將Rik中數(shù)據(jù)的非寫入Ril,即再對Rij、Ril和Rip做“多輸入或”,可以得到或者先將Rik中數(shù)據(jù)的非寫入Ril,即再對Rij、Ril和Rip做“多輸入與”,可以得到以上四種多輸入衍生操作,需要兩步操作,四個邏輯單元?!叭印边\算如圖9所示,不考慮進位的加法運算為“半加”運算,即“異或”邏輯。而考慮進位的加法運算稱為“全加”運算?!叭印边\算包括三個輸入“A”、“B”和前一位的進位“Ci-1”,同時包括兩個輸出,即本位的和“S”和向下一位的進位“C”。通過合理分配上述實施事例中所示的多種基本邏輯操作及其衍生操作,運算只需調(diào)用處于同一字線上的八個阻變單元,總共十步操作即可完成一位全加器功能。全加器邏輯如下所示:如圖9所示,阻變單元Rij和Ril分別存儲兩個加數(shù)A和B,阻變單元Riq存儲前一位的進位Ci-1,輔助阻變單元1-5分別預(yù)先存入“0”。運算后輔助阻變單元4和5中分別存儲進位Ci及運算和S。運算時,第一步通過對阻變單元Ci-1和輔助阻變單元1進行NOT運算在輔助阻變單元1中得到第二步通過對阻變單元A和輔助阻變單元1進行NOT運算在輔助阻變單元2中得到第三步通過對阻變單元B和輔助阻變單元2進行OR運算在輔助阻變單元2中得到第四步通過對阻變單元A、B和輔助阻變單元3進行“多輸入與操作”在輔助阻變單元3中得到第五步通過對輔助阻變單元2和3進行IMP操作在輔助阻變單元3中得到A⊙B;第六步對輔助阻變單元1、3和4進行“多輸入與操作”在輔助阻變單元4中得到第七步通過對輔助阻變單元2和4進行IMP操作在輔助阻變單元4中得到第八步通過對阻變單元Ci-1和輔助阻變單元3、5進行“多輸入與操作”在輔助阻變單元5中得到第九步通過對輔助阻變單元1和3進行IMP操作在輔助阻變單元1中得到第十步通過對輔助阻變單元1和5進行IMP操作在輔助阻變單元5中得到即在以上的操作中,經(jīng)常會用到“輔助”阻變單元。這些輔助阻變單元可以是尚未存儲有數(shù)據(jù)的“空閑”阻變單元,或者可以是專門設(shè)置用于幫助運算的專用輔助阻變單元。例如,可以針對每一字線設(shè)置若干專用輔助阻變單元。輔助阻變單元可以按需被預(yù)寫入操作數(shù)的副本或者“0”(高阻態(tài))等。根據(jù)本公開的實施例,提出了一種基于阻變器件的陣列結(jié)構(gòu)及新型操作方法,有效地減少了實現(xiàn)特定算術(shù)功能(如全加器)所需的憶阻器數(shù)量和操作步驟。以上對本公開的實施例進行了描述。但是,這些實施例僅僅是為了說明的目的,而并非為了限制本公開的范圍。本公開的范圍由所附權(quán)利要求及其等價物限定。不脫離本公開的范圍,本領(lǐng)域技術(shù)人員可以做出多種替代和修改,這些替代和修改都應(yīng)落在本公開的范圍之內(nèi)。當(dāng)前第1頁1 2 3