本申請(qǐng)要求享有于2015年3月5日遞交的、美國臨時(shí)專利申請(qǐng)62/157162的優(yōu)先權(quán),通過引用將其并入本文。
技術(shù)領(lǐng)域
本發(fā)明總體上涉及存儲(chǔ)器單元,并且具體涉及在6T SRAM存儲(chǔ)器陣列中的多單元操作。
背景技術(shù):
在本領(lǐng)域中已知存儲(chǔ)大量數(shù)據(jù)的存儲(chǔ)器陣列。多年以來,制造者和設(shè)計(jì)者致力于使陣列物理上更小但在其中存儲(chǔ)的數(shù)據(jù)量更大。
計(jì)算設(shè)備通常具有:一個(gè)或多個(gè)存儲(chǔ)器陣列以存儲(chǔ)數(shù)據(jù),以及中央處理單元(CPU)和其它硬件以處理數(shù)據(jù)。CPU通常經(jīng)由總線連接到存儲(chǔ)器陣列。不幸的是,盡管CPU速度在近些年來極大地增加了,但是總線速度并沒有以相同速度增加。因此,總線連接成為操作速度增加的瓶頸。
大數(shù)據(jù)的發(fā)展領(lǐng)域和機(jī)器學(xué)習(xí)算法涉及計(jì)算大量數(shù)據(jù)。在計(jì)算期間從存儲(chǔ)器讀取數(shù)據(jù)和向存儲(chǔ)器寫入數(shù)據(jù)是CPU敏感的,并且當(dāng)IO是整個(gè)計(jì)算的重要部分時(shí)可能花費(fèi)較長(zhǎng)時(shí)間來完成。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,提供了一種多存儲(chǔ)器單元操作器,包括:非破壞性存儲(chǔ)器陣列、激活單元,以及多列解碼器。所述非破壞性存儲(chǔ)器陣列每列具有第一位線和第二位線。所述激活單元同時(shí)激活所述存儲(chǔ)器陣列的列中的至少兩個(gè)單元,從而在所述第一位線上生成所述至少兩個(gè)單元的數(shù)據(jù)和互補(bǔ)數(shù)據(jù)的多個(gè)布爾函數(shù)輸出,并在所述第二位線上生成所述數(shù)據(jù)和所述互補(bǔ)數(shù)據(jù)的不同的多個(gè)布爾函數(shù)輸出。所述多列解碼器至少激活多個(gè)選定列的所述第一位線和所述第二位線以用于讀取或?qū)懭搿?/p>
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述多列解碼器還包括寫入單元,所述寫入單元用于將所述選定列的所述第一位線、所述第二位線或所述第一位線與所述第二位線兩者的輸出寫入到所述存儲(chǔ)器陣列中。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述多列解碼器包括預(yù)充電器,所述預(yù)充電器用于在讀取之前將所述第一位線和所述第二位線預(yù)充電到預(yù)定義的預(yù)充電電壓。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述多列解碼器包括:充電器,其用于利用狀態(tài)值對(duì)選定列的所述第一位線充電,并利用選定列的所述狀態(tài)值的互補(bǔ)值對(duì)所述第二位線充電,以用于將所述狀態(tài)值寫入到所述選定列中被激活的單元;以及預(yù)充電器,其用于在寫入期間將非選定列的所述第一位線和所述第二位線預(yù)充電到預(yù)定義的預(yù)充電電壓。
另外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述多列解碼器包括輸出單元,所述輸出單元用于在選定的所述非選定列的所述第一位線和所述第二位線中的一個(gè)或兩者上輸出值,以用于在所述寫入期間進(jìn)行讀取。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述操作器還包括搜索單元,所述搜索單元用于針對(duì)具有與輸入值匹配的值的單元搜遍所述數(shù)據(jù),在所匹配的值上執(zhí)行操作以生成經(jīng)處理的值,并將所述經(jīng)處理的值寫回到其相關(guān)聯(lián)的所述單元。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述單元是SRAM(靜態(tài)隨機(jī)訪問存儲(chǔ)器)單元,例如,6晶體管SRAM單元。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述多列解碼器還包括計(jì)算器,所述計(jì)算器用于通過多次讀取操作并通過將讀取結(jié)果寫入到所述存儲(chǔ)器陣列中的其它位置來執(zhí)行存儲(chǔ)器內(nèi)計(jì)算,所述結(jié)果被用于后續(xù)計(jì)算。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述布爾運(yùn)算是NOR、NAND、AND和OR。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,還提供了一種用于操作用于計(jì)算的存儲(chǔ)器陣列的方法。所述方法包括:同時(shí)激活在每列具有第一位線和第二位線的非破壞性存儲(chǔ)器陣列的列中的至少兩個(gè)單元,從而在所述第一位線上生成被存儲(chǔ)在所述至少兩個(gè)單元中的數(shù)據(jù)和所述至少兩個(gè)單元的互補(bǔ)數(shù)據(jù)的多個(gè)布爾函數(shù)輸出,并在所述第二位線上生成所述數(shù)據(jù)和所述互補(bǔ)數(shù)據(jù)的不同的多個(gè)布爾函數(shù)輸出。所述方法還包括:激活多個(gè)選定列的所述第一位線和所述第二位線以用于讀取或?qū)懭搿?/p>
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,第二激活還包括:將所述選定列的所述第一位線、所述第二位線或所述第一位線與所述第二位線兩者的輸出寫入到所述存儲(chǔ)器陣列中。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述第二激活包括:在讀取之前將所述第一位線和所述第二位線預(yù)充電到預(yù)定義的預(yù)充電電壓。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述第二激活包括:利用狀態(tài)值對(duì)選定列的所述第一位線充電,并利用選定列的所述狀態(tài)值的互補(bǔ)值對(duì)所述第二位線充電,以用于將所述狀態(tài)值寫入到所述選定列中被激活的單元;并且在寫入期間將非選定列的所述第一位線和所述第二位線預(yù)充電到預(yù)定義的預(yù)充電電壓。
另外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述第二激活包括:在選定的所述非選定列的所述第一位線和所述第二位線中的一個(gè)或兩者上輸出值,以用于在所述寫入期間進(jìn)行讀取。
此外,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述方法還包括:針對(duì)具有與輸入值匹配的值的單元搜遍所述數(shù)據(jù),在所匹配的值上執(zhí)行操作以生成經(jīng)處理的值,并將所述經(jīng)處理的值寫回到其相關(guān)聯(lián)的所述單元。
最后,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,所述第二激活還包括:通過多次讀取操作并通過將讀取結(jié)果寫入到所述存儲(chǔ)器陣列中的其它位置來執(zhí)行存儲(chǔ)器內(nèi)計(jì)算,所述結(jié)果被用于后續(xù)計(jì)算。
附圖說明
在說明書的結(jié)論部分特地指出并明顯要求保護(hù)關(guān)于本發(fā)明的主題。然而,通過在結(jié)合附圖進(jìn)行閱讀時(shí)參考后續(xù)詳細(xì)描述,可以在組織和操作方法兩者及其目標(biāo)、特征和優(yōu)點(diǎn)的方面最佳地理解本發(fā)明,在附圖中:
圖1是6T SRAM存儲(chǔ)器單元的圖;
圖2是SRAM存儲(chǔ)器陣列的示意性圖示;
圖3是根據(jù)本發(fā)明的優(yōu)選實(shí)施例構(gòu)造和操作的在SRAM存儲(chǔ)器陣列中的存儲(chǔ)器計(jì)算操作的示意性圖示;
圖4一起是在圖3的SRAM存儲(chǔ)器陣列中的操作的示范性集合的真值表圖示;
圖5是在SRAM存儲(chǔ)器陣列中的多單元寫入操作的示意性圖示;
圖6是現(xiàn)有技術(shù)的全加法器電路的電路圖圖示;并且
圖7是使用本發(fā)明的全加法器運(yùn)算的示意性圖示。
可以理解的是,為了簡(jiǎn)明且圖示清晰,在圖中示出的元件不必按比例繪制。例如,為了清晰起見,一些元件的維度可以相對(duì)于另一些元件被夸大。此外,在認(rèn)為適當(dāng)時(shí),可以在圖中重復(fù)附圖標(biāo)記以指示對(duì)應(yīng)的元件或模擬元件。
具體實(shí)施方式
在以下的詳細(xì)描述中,闡述了眾多具體細(xì)節(jié)以便提供對(duì)本文發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員可以理解的是,可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其它實(shí)例中,沒有詳細(xì)描述已知的方法、流程和部件,以免使本發(fā)明難以理解。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到,通過啟用并發(fā)的多單元操作而不是在標(biāo)準(zhǔn)6T SRAM存儲(chǔ)器陣列的每個(gè)計(jì)算周期進(jìn)行單次行訪問,可以更有效地使用標(biāo)準(zhǔn)的6T SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器)存儲(chǔ)器陣列。
根據(jù)本發(fā)明的實(shí)施例,在每個(gè)計(jì)算周期進(jìn)行多行訪問,引起能夠執(zhí)行多單元操作,例如,多單元寫入操作和多單元計(jì)算。
現(xiàn)在參考圖1,其圖示了包括六個(gè)晶體管的6T SRAM存儲(chǔ)器單元100;參考圖2,其圖示了多個(gè)6T SRAM 100的存儲(chǔ)器陣列200。
6T SRAM單元100的四個(gè)晶體管(為了簡(jiǎn)明起見,未在圖中示出)形成簡(jiǎn)單的標(biāo)準(zhǔn)觸發(fā)器元件102,所述標(biāo)準(zhǔn)觸發(fā)器元件102具有被定義為邏輯“0”狀態(tài)和“1”狀態(tài)的兩個(gè)穩(wěn)定電壓狀態(tài)。通常,高電壓值定義邏輯“1”,而低電壓值定義邏輯“0”。該單元經(jīng)由數(shù)據(jù)信號(hào)Q具體化其存儲(chǔ)的值并經(jīng)由數(shù)據(jù)信號(hào)Q’具體化其互補(bǔ)值。因此,如果單元100存儲(chǔ)值“1”,則數(shù)字信號(hào)Q中的電壓值反映值“1”,并且在互補(bǔ)數(shù)據(jù)信號(hào)Q’中的電壓值反映值“0”。
使用兩條位線BL和BL’來將數(shù)據(jù)轉(zhuǎn)移到單元中和從單元中轉(zhuǎn)移數(shù)據(jù)以用于讀取操作和寫入操作。位線BL和BL’經(jīng)由控制對(duì)單元訪問的兩個(gè)晶體管N1和N2分別被連接到觸發(fā)器102。
如圖2所示,存儲(chǔ)器陣列200中的單元被布置在矩陣中。在同一列中的所有單元連接到同一位線對(duì)BL和BL’。在同一行的所有單元連接到同一字線WL,所述字線WL連接到每個(gè)單元的訪問晶體管N1和N2。列解碼器210通過利用適當(dāng)?shù)碾妷簩?duì)選定列的位線對(duì)BL和BL’充電來控制列選擇。行解碼器220通過將字線WL充電到高來控制行選擇。針對(duì)操作的選定單元是駐留在字線WL與位線對(duì)BL和BL’的交叉處的單元。
當(dāng)行解碼器220選擇字線WL時(shí),單元100連接到其位線BL和BL’,并且可以針對(duì)讀取操作或?qū)懭氩僮鬟M(jìn)行訪問。當(dāng)字線WL未被選擇時(shí),位線BL和BL’可能未連接到單元100,并因此未傳達(dá)單元內(nèi)容或未將數(shù)據(jù)寫入到單元中。
為了讀取6T SRAM單元100的狀態(tài),列解碼器210將位線BL和BL’兩者預(yù)充電到高電壓水平,之后,行解碼器220激活其字線WL。一旦字線WL被激活,數(shù)據(jù)信號(hào)Q和Q’的電壓水平將分別影響位線BL和BL’。根據(jù)位線BL和BL’的電壓值確定單元的內(nèi)容。如果數(shù)據(jù)信號(hào)Q的值為低,則被預(yù)充電到高值的BL的電壓值將由于連接到數(shù)據(jù)信號(hào)Q而降低,這是因?yàn)镼為低。如果數(shù)據(jù)信號(hào)Q的值為高,則位線BL的電壓值將保持為高。相同的邏輯也應(yīng)用于互補(bǔ)數(shù)據(jù)信號(hào)Q’和位線BL’。如果數(shù)據(jù)信號(hào)Q’的值為低,則位線BL’的電壓值將由于連接到數(shù)據(jù)信號(hào)Q’而降低。如果數(shù)據(jù)信號(hào)Q’的值為高,則位線BL’的電壓值將保持為高。在就緒狀態(tài),位線對(duì)BL和BL’中的一個(gè)將降低,同時(shí)另一個(gè)將保持為高,這是因?yàn)閿?shù)據(jù)信號(hào)Q和Q’是互補(bǔ)的。
在讀取操作期間,比較位線BL和BL’的值,并且如果位線BL的水平高于位線BL’的水平,則單元100據(jù)說存儲(chǔ)值“1”;如果位線BL的水平低于位線BL’的水平,則單元100據(jù)說存儲(chǔ)值“0”。
為了將值寫入到6T SRAM單元100,列解碼器210將位線BL充電到與要被寫入的值相關(guān)聯(lián)的電壓水平,并且將位線BL’充電到互補(bǔ)電壓水平。具體地,為了在單元100中存儲(chǔ)值“1”,將位線BL充電到高電壓水平且將位線BL’充電到低電壓水平;并且為了在單元100中存儲(chǔ)值“0”,將位線BL充電到低電壓水平且將位線BL’充電到低電壓水平。為了執(zhí)行寫入操作,激活字線WL,并將位線BL上的電壓水平轉(zhuǎn)移到數(shù)據(jù)信號(hào)Q,且將位線BL’上的電壓水平轉(zhuǎn)移到數(shù)據(jù)信號(hào)Q’。因此,在該狀態(tài)下觸發(fā)器102是穩(wěn)定的。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到,當(dāng)同時(shí)激活多條字線時(shí),連接多行中的單元的位線對(duì)的電壓水平受連接到位線的所有選定單元的數(shù)據(jù)信號(hào)影響。具體地,申請(qǐng)人已經(jīng)認(rèn)識(shí)到,當(dāng)位線BL和BL’在讀取之前被預(yù)充電時(shí),如果連接到位線的激活單元的數(shù)據(jù)信號(hào)為低,則將連接所有激活單元的整個(gè)位線的電壓水平拉低。只有當(dāng)連接到位線的所有選定單元的數(shù)據(jù)信號(hào)為高時(shí),位線的電壓水平將維持為高。事實(shí)上,申請(qǐng)人已經(jīng)認(rèn)識(shí)到,連接若干選定單元的位線的電壓水平反映在所有選定單元中存儲(chǔ)的值上執(zhí)行的布爾運(yùn)算“AND”和“NOR”的結(jié)果。
另外,在兩個(gè)位線上的合成電壓水平不再是如在標(biāo)準(zhǔn)6T SRAM存儲(chǔ)器陣列中一樣的互補(bǔ)。它們可能具有相同的電壓水平。這如圖3所示,現(xiàn)在將參考圖3。
圖3示出了包括多個(gè)單元(示出了三個(gè)單元301、302和303)、列解碼器310和行解碼器320的存儲(chǔ)器陣列300。列解碼器310可以包括預(yù)充電器312、充電器314和寫入單元316。
在圖3中,通過行解碼器320和位線(這里標(biāo)記為BLQ和BLQ’)同時(shí)激活兩個(gè)字線WLa和WLb,其被預(yù)充電器312預(yù)充電到固定電壓水平。如上所述,位線BLQ和BLQ’上的電壓水平受列中的每個(gè)選定單元的數(shù)據(jù)信號(hào)的電壓水平影響。在圖3中,單元301的數(shù)據(jù)信號(hào)Q的電壓水平表示邏輯值“1”,而單元302的數(shù)據(jù)信號(hào)Q的電壓水平表示邏輯值“0”。因此,單元301的互補(bǔ)數(shù)據(jù)信號(hào)Q’的電壓水平表示邏輯值“0”,而單元302的互補(bǔ)數(shù)據(jù)信號(hào)Q’的電壓水平表示邏輯值“1”。
在連接單元301和302的數(shù)據(jù)信號(hào)Q的位線BLQ上的合成電壓水平將為低,這反映了單元301和302的數(shù)據(jù)信號(hào)Q的布爾“AND”。另外,其還反映單元301和302的互補(bǔ)數(shù)據(jù)信號(hào)Q’的布爾“NOR”。因此,位線BLQ上的合成電壓水平反映AND(Q)和NOR(Q’)。
類似地,在連接單元301和302的互補(bǔ)數(shù)據(jù)信號(hào)Q’的位線BLQ’上的電壓水平反映互補(bǔ)數(shù)據(jù)信號(hào)Q’的布爾“AND”,以及數(shù)據(jù)信號(hào)Q的布爾“NOR”,即:AND(Q’)和NOR(Q)。
可以理解的是,通過本發(fā)明任何類型的邏輯是可能的,這取決于信號(hào)Q是如何定義的。例如,如果我們將“0”定義為“真”且將“1”定義為“假”,則位線BLQ上的合成電壓水平反映NAND(Q)和(WHAT?)。
當(dāng)布爾代數(shù)支持關(guān)聯(lián)屬性時(shí),可以將分組變量關(guān)聯(lián)到一起,而不改變等式的真值;因此,在位線BLQ和BLQ’上反映的值是布爾運(yùn)算的結(jié)果,而不管選定單元的數(shù)量。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到,由于位線BLQ和BLQ’兩者的電壓水平可以被同時(shí)讀取,因此操作的計(jì)算時(shí)間可以減少50%,這是因?yàn)閱蝹€(gè)計(jì)算周期提供兩個(gè)不同布爾運(yùn)算的結(jié)果,一個(gè)結(jié)果在BLQ上反映而另一個(gè)在BLQ’上反映。
現(xiàn)在參考圖4,其是給出在6T SRAM存儲(chǔ)器陣列中存儲(chǔ)的數(shù)據(jù)的示范性值的表格。存儲(chǔ)器陣列具有6行(標(biāo)記為1-6)和3列(標(biāo)記為Col-1、Col-2和Col-3)。在表格中,每個(gè)單元具有其列出的數(shù)據(jù)信號(hào)Q和Q’。
在Col-1中的所有單元連接到同一位線對(duì)BLQ和BLQ’。在列-1中的一些單元具有“1”的數(shù)據(jù)信號(hào)Q(在行1、2和5中的單元),而其它的具有“0”的數(shù)據(jù)信號(hào)Q(在行3、4和6中的單元)。Q’具有互補(bǔ)值。
表格示出了在列-1的位線BLQ上的合成值是“0”,這是因?yàn)樵诹蠧ol-1中存在至少一個(gè)這樣的單元:所述單元的Q值為低并且該低值拉低整體位線。表格還示出了在Col-1的位線BLQ’上的合成值也是“0”,這是因?yàn)樵诹蠧ol-1中存在至少一個(gè)這樣的單元:所述單元的Q’值為低并且該低值拉低整體位線。因此,在位線BL上的值可以是AND(Q)。另一方式是NOR(Q’)。
在第二列Col-2中,所有的數(shù)據(jù)信號(hào)Q的值是“0”。其BLQ的值因此是“0”,這是因?yàn)榇嬖诰哂械椭档闹辽僖粋€(gè)單元。然而,其BLQ’的值是“1”,這是因?yàn)樗械幕パa(bǔ)數(shù)據(jù)信號(hào)Q’的值為高。
在第三列Col-3中的所有單元存儲(chǔ)“1”。因此,位線BLQ的值是“1”,并且位線BLQ’的值出于上述相同的原因是“0”。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在列解碼器310中的寫入單元316(圖3)可以直接將位線的結(jié)果寫回到存儲(chǔ)器陣列300的單元中的一個(gè)(例如,單元303)中。申請(qǐng)人已經(jīng)認(rèn)識(shí)到,還可以如上所述通過選擇若干行來并發(fā)地將值寫入遍及SRAM陣列的若干單元。針對(duì)多個(gè)寫入操作,列解碼器310可以以指令命令充電器314對(duì)用于要被寫入的單元的列的位線對(duì)BLQ和BLQ’充電到要被寫入的適當(dāng)值,并且可以以指令命令與充電器312對(duì)不應(yīng)被寫入的所有列的位線對(duì)BLQ和BLQ’預(yù)充電。對(duì)列的兩個(gè)位線BLQ和BLQ’預(yù)充電可以防止單元被寫入,這是因?yàn)楫?dāng)觸發(fā)器的兩個(gè)位線都為高時(shí)不能在新狀態(tài)中穩(wěn)定。
現(xiàn)在參考圖5,其是包括3行和3列(總共9個(gè)存儲(chǔ)器單元)的小型存儲(chǔ)器陣列500的范例。圖5的陣列只是范例;任何尺寸的陣列可以使用在本文中描述的相同原理操作。為了促進(jìn)對(duì)下文描述的寫入操作的理解,圖5中的存儲(chǔ)器陣列500的三行以大寫字母標(biāo)記為A、B和C,而存儲(chǔ)器陣列500的列以小寫字母標(biāo)記為a、b和c,并且在陣列中的每個(gè)單元可以通過其行和列標(biāo)記進(jìn)行參考。存儲(chǔ)器陣列500還包括用于激活多行的行解碼器502以及用于對(duì)多列進(jìn)行充電和預(yù)充電的列解碼器504。
在圖5中,為了僅將值“1”寫入到單元“Ab”(在行“A”列“b”中的單元)和“Cb”(在行“C”列“b”中的單元),存儲(chǔ)器陣列500可以執(zhí)行以下操作:行解碼器502可以選擇分別控制行A和行C的字線WLA和WLC。列解碼器504可以對(duì)不應(yīng)被寫入的列(列“a”和列“c”(BLa、BL’a、BLc和BL’c))的位線預(yù)充電。此外,列解碼器504可以利用期望值對(duì)列b的位線充電(即,可以以“1”對(duì)BLb充電,并且以“0”對(duì)BL’b充電)。
在該范例中,按照期望,僅將值1提供給列“b”、行“A”和行“C”中的單元。在陣列500中的所有其它單元不被改變。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到,使用本文描述的寫入方法可以僅在兩個(gè)周期中寫入整個(gè)陣列。在一個(gè)實(shí)施例中,在第一周期中使陣列無效,并且在第二周期中將值“1”寫入到應(yīng)被設(shè)置為“1”的所有單元。在另一實(shí)施例中,將值“1”寫入到應(yīng)當(dāng)具有值“1”的單元,并且在第二周期上執(zhí)行對(duì)其它單元寫入值“0”的多個(gè)寫入操作。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到可以一起實(shí)現(xiàn)這兩個(gè)操作。
已知的是,可以根據(jù)NOR門構(gòu)建任何電路或邏輯單元,這是因?yàn)槠涫枪δ芡耆倪\(yùn)算,并且因此可以使用上述多行選擇操作來計(jì)算任何布爾運(yùn)算。為了實(shí)施任何其它操作,可以將位線(BLQ或BLQ’)上的作為NOR門的輸出的信號(hào)寫入到SRAM陣列的單獨(dú)位置中,并且可以用作到另外的NOR門的輸入,從而實(shí)現(xiàn)其它布爾運(yùn)算。
例如,可以使用本發(fā)明實(shí)施全加法器?,F(xiàn)在參考圖6,其示出了設(shè)計(jì)有邏輯門的全加法器電路;現(xiàn)在還參考圖7,其示出了如何利用本發(fā)明實(shí)施相同的計(jì)算。
在圖6的全加法器電路中,存在兩個(gè)輸入X和Y,以及進(jìn)位信號(hào)Z。逆變器13、14和15轉(zhuǎn)變信號(hào)X、Y和Z以產(chǎn)生其互補(bǔ)信號(hào)X_bar、Y_bar和Z_zar。門19-22中的每個(gè)組合六個(gè)信號(hào)中的三個(gè)以生成臨時(shí)信號(hào)XYZ_bar、XY_barZ、X_barYZ和X_barY_barZ_bar。門25-27中的每個(gè)轉(zhuǎn)變兩個(gè)信號(hào)的組合以產(chǎn)生X_barY_bar。Y_barZ_bar和X_barZ_bar。最后,門23根據(jù)門19-22的組合輸出產(chǎn)生X與Y的總和,并且門28根據(jù)門25-27的組合輸出產(chǎn)生輸出進(jìn)位值C。
圖7示出了被存儲(chǔ)在存儲(chǔ)器陣列300的各個(gè)單元中的值。三個(gè)初始單元存儲(chǔ)兩個(gè)輸入X和Y以及進(jìn)位信號(hào)Z。在前三個(gè)周期中的每個(gè)中,讀取初始單位的互補(bǔ)信號(hào)以生成互補(bǔ)信號(hào)X_bar、Y_bar和Z_bar并在三個(gè)其它單元中存儲(chǔ)互補(bǔ)信號(hào)X_bar、Y_bar和Z_bar(圖7中的箭頭在它們發(fā)生的周期中結(jié)束,并且在用于計(jì)算的數(shù)據(jù)的存儲(chǔ)器單元中開始)。
在接著的四個(gè)周期中的每個(gè)中,激活這六個(gè)存儲(chǔ)器單元中的不同的三個(gè),并且將結(jié)果寫入到存儲(chǔ)器陣列300的不同單元中,以生成臨時(shí)信號(hào)XYZ_bar、XY_barZ、X_barYZ和X_barY_barZ_bar。
在接著的三個(gè)周期中,激活互補(bǔ)存儲(chǔ)器單元中的不同的兩個(gè),以產(chǎn)生并存儲(chǔ)X_barY_bar、Y_barZ_bar和X_barZ_bar。最后,在最后的兩個(gè)周期中,通過激活存儲(chǔ)臨時(shí)信號(hào)XYZ_bar、XY_barZ、X_barYZ和X_barY_barZ_bar的單元產(chǎn)生X與Y的總和S,并且通過激活存儲(chǔ)臨時(shí)信號(hào)X_barY_bar、Y_barZ_bar和X_barZ_bar的單元產(chǎn)生輸出進(jìn)位值C。然后將總和S和輸出進(jìn)位C寫回到存儲(chǔ)器陣列300中。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到可以以多種方式利用上述選擇性寫入。例如,其可以用于更新在搜索操作中發(fā)現(xiàn)的數(shù)據(jù),所述搜索操作例如是在2012年5月31日公開的、題目為“TCAM SEARCH UNIT INCLUDING A DISTRIBUTOR TCAM AND DRAM AND A METHOD FOR DIVIDING A DATABASE OF TCAM RULES”、美國公開號(hào)2012/0137060的申請(qǐng)人的共同申請(qǐng)中討論的TCAM搜索,其被指定給本發(fā)明的共同受讓人??梢运阉鞅淮鎯?chǔ)在存儲(chǔ)器陣列中的大數(shù)據(jù)庫,以發(fā)現(xiàn)具有特定值或不匹配特定輸入值的所有單元。然后可以將在搜索中發(fā)現(xiàn)的被存儲(chǔ)在單元中的值寫入新值。以這種方式,可以發(fā)現(xiàn)故障單元。
還可以以這種方式執(zhí)行乘法。搜索可以查找具有特定值(例如,具有值6)的所有“字節(jié)”(單元組)。然后選擇性寫入將被存儲(chǔ)在單元中的值重新寫為36,從而提供一種在大數(shù)據(jù)庫上執(zhí)行平方運(yùn)算的快速方式。
申請(qǐng)人已經(jīng)認(rèn)識(shí)到,利用本發(fā)明,可以在同一周期中讀取和寫入不同列。需要回想的是,在寫入操作期間,可以將要被寫入的列中的位線對(duì)充電到針對(duì)要被寫入的值的適當(dāng)電壓,并且不應(yīng)被寫入的所有列的位線對(duì)BL和BL’被預(yù)充電,這是因?yàn)楫?dāng)觸發(fā)器的兩個(gè)位線都為高時(shí)不能在新狀態(tài)中穩(wěn)定。然而,如申請(qǐng)人已經(jīng)認(rèn)識(shí)到的,非寫入列的預(yù)充電使得非寫入列準(zhǔn)備進(jìn)行讀取,并且因此可以在其它列被寫入的同時(shí)讀取這些列。
可以理解的是,本文針對(duì)6T SRAM描述的操作可以被實(shí)施在每列具有兩個(gè)位線的任何非破壞性或非易失性存儲(chǔ)器陣列上,并且其中,一個(gè)位線與存儲(chǔ)的電荷相關(guān)聯(lián),而另一位線與存儲(chǔ)的電荷的互補(bǔ)值相關(guān)聯(lián)。
盡管在本文中已經(jīng)圖示和描述了本發(fā)明的某些特征,但是本領(lǐng)域普通技術(shù)人員現(xiàn)在可以想到許多修改、替換、改變和等價(jià)方案。因此,可以理解的是,權(quán)利要求旨在覆蓋落入本發(fā)明的真實(shí)范圍內(nèi)的所有這種修改和改變。