本技術(shù)屬于數(shù)據(jù)檢索,更具體地,涉及一種模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)。
背景技術(shù):
1、內(nèi)容可尋址存儲(chǔ)器(cam)是一種以內(nèi)容而非地址來(lái)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器,它能高效地并行實(shí)現(xiàn)輸入數(shù)據(jù)與存儲(chǔ)數(shù)據(jù)之間的比較。除了用于網(wǎng)絡(luò)收發(fā)、路由尋址,近年來(lái),cam在機(jī)器學(xué)習(xí)、模式識(shí)別等領(lǐng)域得到了廣泛應(yīng)用,得益于其高速實(shí)現(xiàn)相似度搜索的能力。
2、對(duì)于大數(shù)據(jù)和大模型,隨著數(shù)據(jù)庫(kù)規(guī)模的不斷增大,采用cam實(shí)現(xiàn)檢索任務(wù)的硬件開(kāi)銷也急劇增大。相比于傳統(tǒng)的二值或三值cam,模擬cam能夠在模擬域?qū)崿F(xiàn)數(shù)據(jù)的存儲(chǔ)與搜索,不需要利用數(shù)模轉(zhuǎn)換器,在密度和能效上有著顯著優(yōu)勢(shì),更能勝任高維度、數(shù)據(jù)量大的應(yīng)用場(chǎng)景。
3、然而,大多數(shù)模擬cam不具備表達(dá)每一位數(shù)據(jù)之間的匹配程度大小的能力,這不能滿足機(jī)器學(xué)習(xí)和數(shù)據(jù)檢索任務(wù)對(duì)于相似度搜索的要求。如何提升模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)的數(shù)據(jù)檢索準(zhǔn)確度是本領(lǐng)域亟待解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)的缺陷,本技術(shù)的目的在于提升模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)的數(shù)據(jù)檢索準(zhǔn)確度。
2、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng),該系統(tǒng)包括:主處理器、至少一個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊和比較器,內(nèi)容可尋址存儲(chǔ)器子模塊具有m行n列的模擬內(nèi)容可尋址存儲(chǔ)器,m和n為正整數(shù),全部?jī)?nèi)容可尋址存儲(chǔ)器子模塊中同一行所存儲(chǔ)的模擬內(nèi)容代表一條存儲(chǔ)數(shù)據(jù);
3、主處理器用于將搜索數(shù)據(jù)拆分為s個(gè)搜索字段(當(dāng)s=1時(shí),搜索數(shù)據(jù)即為1個(gè)搜索字段),并將各個(gè)搜索字段分配到對(duì)應(yīng)的內(nèi)容可尋址存儲(chǔ)器子模塊,s為內(nèi)容可尋址存儲(chǔ)器子模塊的數(shù)量,搜索字段的位數(shù)小于或等于n;
4、內(nèi)容可尋址存儲(chǔ)器子模塊用于比較搜索字段中各個(gè)搜索字位與對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度,并輸出各行對(duì)應(yīng)的電流,一行對(duì)應(yīng)的電流是基于對(duì)應(yīng)行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流確定的,第一電流與差異度具有預(yù)設(shè)比例關(guān)系;
5、比較器用于基于各個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中各行對(duì)應(yīng)的電流,確定與搜索數(shù)據(jù)最匹配的目標(biāo)行。
6、此處對(duì)搜索數(shù)據(jù)、搜索字段和搜索字位的相關(guān)概念進(jìn)行說(shuō)明,搜索數(shù)據(jù)即為向內(nèi)容可尋址存儲(chǔ)器子模塊輸入的數(shù)據(jù),當(dāng)搜索數(shù)據(jù)長(zhǎng)度小于n時(shí),一條搜索數(shù)據(jù)可直接進(jìn)行搜索;當(dāng)搜索數(shù)據(jù)長(zhǎng)度大于n時(shí),一條搜索數(shù)據(jù)將被拆分為多個(gè)搜索字段;一個(gè)搜索字段可以包括多個(gè)位,搜索字位為搜索字段中的一位。
7、此處對(duì)存儲(chǔ)數(shù)據(jù)、存儲(chǔ)字段和存儲(chǔ)字位的相關(guān)概念進(jìn)行說(shuō)明,存儲(chǔ)數(shù)據(jù)即為向內(nèi)容可尋址存儲(chǔ)器子模塊存儲(chǔ)的數(shù)據(jù),當(dāng)存儲(chǔ)數(shù)據(jù)長(zhǎng)度小于n時(shí),一條存儲(chǔ)數(shù)據(jù)可直接存儲(chǔ)在一個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中;當(dāng)存儲(chǔ)數(shù)據(jù)長(zhǎng)度大于n時(shí),一條存儲(chǔ)數(shù)據(jù)將被拆分為多個(gè)存儲(chǔ)字段;一個(gè)存儲(chǔ)字段可以包括多個(gè)位,存儲(chǔ)字位為存儲(chǔ)字段中的一位。
8、此處對(duì)內(nèi)容可尋址存儲(chǔ)器子模塊的數(shù)據(jù)存儲(chǔ)方式進(jìn)行說(shuō)明,主處理器可以基于m條存儲(chǔ)數(shù)據(jù),將每一條存儲(chǔ)數(shù)據(jù)拆分為s個(gè)存儲(chǔ)字段(存儲(chǔ)字段為存儲(chǔ)數(shù)據(jù)中的一個(gè)字段),存儲(chǔ)字段的位數(shù)小于n;將每一條存儲(chǔ)數(shù)據(jù)的s個(gè)存儲(chǔ)字段,寫(xiě)入至各個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中的對(duì)應(yīng)行,一個(gè)模擬內(nèi)容可尋址存儲(chǔ)器用于存放一個(gè)存儲(chǔ)字位(存儲(chǔ)字位為存儲(chǔ)字段中的一位)對(duì)應(yīng)的模擬值。
9、例如,模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊,內(nèi)容可尋址存儲(chǔ)器子模塊具有3行4列的模擬內(nèi)容可尋址存儲(chǔ)器,可以將3條存儲(chǔ)數(shù)據(jù)均拆分為2個(gè)存儲(chǔ)字段,每個(gè)存儲(chǔ)字段具有4個(gè)存儲(chǔ)字位,第1條存儲(chǔ)數(shù)據(jù)的2個(gè)存儲(chǔ)字段分別存放到2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中的第1行,第2條存儲(chǔ)數(shù)據(jù)的2個(gè)存儲(chǔ)字段分別存放到2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中的第2行,依次類推。
10、此處對(duì)上述將搜索數(shù)據(jù)拆分為s個(gè)搜索字段進(jìn)行說(shuō)明,在模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有1個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊的情況下,可以將搜索數(shù)據(jù)作為1個(gè)搜索字段,在模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊的情況下,可以將搜索數(shù)據(jù)拆分為2個(gè)搜索字段,以此類推,在模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有s個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊的情況下,可以將搜索數(shù)據(jù)拆分為s個(gè)搜索字段。
11、此處對(duì)上述將各個(gè)搜索字段分配到對(duì)應(yīng)的內(nèi)容可尋址存儲(chǔ)器子模塊進(jìn)行舉例說(shuō)明,例如,模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有3個(gè)(也即s=3)內(nèi)容可尋址存儲(chǔ)器子模塊,可以將搜索數(shù)據(jù)拆分為3個(gè)搜索字段,并將第1個(gè)搜索字段分配給第1個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊,將第2個(gè)搜索字段分配給第2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊,將第3個(gè)搜索字段分配給第3個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊,實(shí)現(xiàn)為每一個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊分配一個(gè)搜索字段。
12、此處對(duì)上述比較搜索字段中各個(gè)搜索字位與對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度進(jìn)行舉例說(shuō)明,例如,內(nèi)容可尋址存儲(chǔ)器子模塊具有2行3列的模擬內(nèi)容可尋址存儲(chǔ)器,搜索字段具有3個(gè)搜索字位,在此情況下,內(nèi)容可尋址存儲(chǔ)器子模塊可以同時(shí)比較搜索字段中第1個(gè)搜索字位與第1列中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度,以及比較搜索字段中第2個(gè)搜索字位與第2列中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度,以及比較搜索字段中第3個(gè)搜索字位與第3列中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度??蛇x地,在搜索字段的位數(shù)nbit小于n的情況下,內(nèi)容可尋址存儲(chǔ)器子模塊的列數(shù)多于搜索字段的位數(shù),內(nèi)容可尋址存儲(chǔ)器子模塊可以比較搜索字段中各個(gè)搜索字位與前nbit列中對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容之間的差異度。
13、此處對(duì)上述一行對(duì)應(yīng)的電流是基于對(duì)應(yīng)行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流確定的進(jìn)行示例性說(shuō)明,例如,以第1行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流之和作為第1行對(duì)應(yīng)的電流,以第2行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流之和作為第2行對(duì)應(yīng)的電流,以此類推,以第m行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流之和作為第m行對(duì)應(yīng)的電流。
14、可以理解的是,通過(guò)將搜索數(shù)據(jù)拆分為s個(gè)搜索字段并將各個(gè)搜索字段分配到對(duì)應(yīng)的內(nèi)容可尋址存儲(chǔ)器子模塊,內(nèi)容可尋址存儲(chǔ)器子模塊可以存儲(chǔ)m條存儲(chǔ)數(shù)據(jù)(全部?jī)?nèi)容可尋址存儲(chǔ)器子模塊中同一行所存儲(chǔ)的模擬內(nèi)容代表一條存儲(chǔ)數(shù)據(jù))。
15、進(jìn)而內(nèi)容可尋址存儲(chǔ)器子模塊可以比較搜索字段中各個(gè)搜索字位與對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容(代表一個(gè)存儲(chǔ)字位)之間的差異度,并輸出各行對(duì)應(yīng)的電流至比較器,第一電流與差異度具有預(yù)設(shè)比例關(guān)系,第一電流能夠表征一條搜索數(shù)據(jù)中一個(gè)搜索字位與一條存儲(chǔ)數(shù)據(jù)中對(duì)應(yīng)的存儲(chǔ)字位之間的曼哈頓距離,具備表達(dá)每一位數(shù)據(jù)之間的匹配程度大小的能力,一行對(duì)應(yīng)的電流是基于對(duì)應(yīng)行中各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器(一行的模擬內(nèi)容可尋址存儲(chǔ)器所存儲(chǔ)的模擬內(nèi)容代表一個(gè)存儲(chǔ)字段)所輸出的第一電流之和確定的,因此一行對(duì)應(yīng)的電流能夠表征一條搜索數(shù)據(jù)中一個(gè)搜索字段與一條存儲(chǔ)數(shù)據(jù)中對(duì)應(yīng)的存儲(chǔ)字段之間的曼哈頓距離。
16、進(jìn)而比較器可以基于各個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊中各行對(duì)應(yīng)的電流,確定一條搜索數(shù)據(jù)與m條存儲(chǔ)數(shù)據(jù)中任一條存儲(chǔ)數(shù)據(jù)(也即全部?jī)?nèi)容可尋址存儲(chǔ)器子模塊中同一行所存儲(chǔ)的模擬內(nèi)容)之間的曼哈頓距離,進(jìn)而可以在m行中確定與搜索數(shù)據(jù)最匹配的目標(biāo)行,也即全部?jī)?nèi)容可尋址存儲(chǔ)器子模塊中目標(biāo)行所存儲(chǔ)的模擬內(nèi)容與搜索數(shù)據(jù)最匹配。
17、因此,本技術(shù)提供的模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng),數(shù)據(jù)的存儲(chǔ)及搜索均以模擬值的形式進(jìn)行,相比于二值或三值cam,存儲(chǔ)密度大幅提升。同時(shí),該模擬cam的輸出電流可以反映數(shù)據(jù)之間的曼哈頓距離,具備表達(dá)每一位數(shù)據(jù)之間的匹配程度大小的能力,能夠準(zhǔn)確地輸出搜索數(shù)據(jù)與存儲(chǔ)數(shù)據(jù)之間的差異值,能夠有效地提升模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)的數(shù)據(jù)檢索準(zhǔn)確度。該設(shè)計(jì)所具備的高密度、相似度搜索的能力能夠很好地滿足當(dāng)前機(jī)器學(xué)習(xí)以及數(shù)據(jù)檢索領(lǐng)域的應(yīng)用需求。
18、在一種可能的實(shí)現(xiàn)方式中,內(nèi)容可尋址存儲(chǔ)器子模塊包括電壓驅(qū)動(dòng)單元、模擬內(nèi)容可尋址存儲(chǔ)器陣列和電流讀出單元,模擬內(nèi)容可尋址存儲(chǔ)器陣列由m行n列的模擬內(nèi)容可尋址存儲(chǔ)器構(gòu)成;
19、電壓驅(qū)動(dòng)單元用于將搜索字段中各個(gè)搜索字位編碼成電壓信號(hào)(該電壓信號(hào)能夠表征搜索字位的內(nèi)容),并將各個(gè)搜索字位對(duì)應(yīng)的電壓信號(hào)輸入至對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器;
20、模擬內(nèi)容可尋址存儲(chǔ)器用于基于電壓信號(hào)和所存儲(chǔ)的模擬內(nèi)容(存儲(chǔ)字位對(duì)應(yīng)的模擬值),比較搜索字位和模擬內(nèi)容之間的差異度,并輸出第一電流至電流讀出單元;
21、電流讀出單元包括m個(gè)輸入端口和m個(gè)輸出端口,一個(gè)輸入端口對(duì)應(yīng)一個(gè)輸出端口,同一行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流(通過(guò)匹配線)進(jìn)入到電流讀出單元的同一輸入端口(不同行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流進(jìn)入到電流讀出單元的不同輸入端口);
22、電流讀出單元用于穩(wěn)定輸入端口的電壓,并將輸入端口的電流復(fù)制為輸出端口的電流;
23、比較器包括m個(gè)輸入端口(比較器的一個(gè)輸入端口對(duì)應(yīng)各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器陣列中的同一行),不同電流讀出單元中同一行對(duì)應(yīng)的輸出端口連接至比較器中同一個(gè)輸入端口;
24、比較器用于基于m個(gè)輸入端口的電流,確定與搜索數(shù)據(jù)最匹配的目標(biāo)行。
25、此處對(duì)上述同一行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流進(jìn)入到電流讀出單元的同一輸入端口進(jìn)行說(shuō)明,同一行的模擬內(nèi)容可尋址存儲(chǔ)器的電流輸出端連接到同一個(gè)匹配線,進(jìn)而同一行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流之和將通過(guò)匹配線進(jìn)入到電流讀出單元的輸入端口。
26、此處對(duì)不同電流讀出單元中同一行對(duì)應(yīng)的輸出端口連接至比較器中同一個(gè)輸入端口進(jìn)行舉例說(shuō)明,例如,模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)配置有2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊,內(nèi)容可尋址存儲(chǔ)器子模塊具有3行4列的模擬內(nèi)容可尋址存儲(chǔ)器,相應(yīng)地,比較器包括3個(gè)輸入端口,在此情況下,2個(gè)內(nèi)容可尋址存儲(chǔ)器子模塊的電流讀出單元中第1行對(duì)應(yīng)的輸出端口均連接至比較器中第1個(gè)輸入端口;第2行對(duì)應(yīng)的輸出端口均連接至比較器中第2個(gè)輸入端口;第3行對(duì)應(yīng)的輸出端口均連接至比較器中第3個(gè)輸入端口。
27、此處對(duì)搜索過(guò)程進(jìn)行說(shuō)明,搜索過(guò)程包括如下步驟:(1)主處理器確定模擬內(nèi)容可尋址存儲(chǔ)器工作模式為精確匹配模式或區(qū)間匹配模式,并將搜索數(shù)據(jù)輸入內(nèi)容可尋址存儲(chǔ)器子模塊,并啟動(dòng)電流讀出單元中的電壓鉗制電路,以穩(wěn)定匹配線電壓;(2)輸入的搜索數(shù)據(jù)通過(guò)電壓驅(qū)動(dòng)單元編碼為相應(yīng)的電壓值,輸入至模擬內(nèi)容可尋址存儲(chǔ)器陣列中,然后并行地與陣列中存儲(chǔ)的數(shù)據(jù)進(jìn)行搜索比較,結(jié)果反映在各匹配線電流上;(3)電流讀出單元將匹配線電流讀出后,通過(guò)比較器電路篩選出電流值最小的匹配線,該行即為匹配度最高的數(shù)據(jù)所在位置。
28、因此,比較器的一個(gè)輸入端口的電流能夠表征一條搜索數(shù)據(jù)與一條存儲(chǔ)數(shù)據(jù)之間的曼哈頓距離,進(jìn)而基于m個(gè)輸入端口的電流,可以在m行中確定與搜索數(shù)據(jù)最匹配的目標(biāo)行,也即全部?jī)?nèi)容可尋址存儲(chǔ)器子模塊中目標(biāo)行所存儲(chǔ)的模擬內(nèi)容與搜索數(shù)據(jù)最匹配。
29、在一種可能的實(shí)現(xiàn)方式中,模擬內(nèi)容可尋址存儲(chǔ)器包括:第一存儲(chǔ)單元(單元p)和第二存儲(chǔ)單元(單元n);
30、第一存儲(chǔ)單元用于基于本存儲(chǔ)單元所存儲(chǔ)的模擬內(nèi)容和電壓驅(qū)動(dòng)單元所提供的電壓信號(hào),比較搜索字位和模擬內(nèi)容之間的差異度;在搜索字位小于本存儲(chǔ)單元所存儲(chǔ)的模擬內(nèi)容的情況下,輸出與差異度成正比例的第二電流,否則,輸出電流為0;
31、第二存儲(chǔ)單元用于基于本存儲(chǔ)單元所存儲(chǔ)的模擬內(nèi)容和電壓驅(qū)動(dòng)單元所提供的電壓信號(hào),比較搜索字位和模擬內(nèi)容之間的差異度;在搜索字位大于本存儲(chǔ)單元所存儲(chǔ)的模擬內(nèi)容的情況下,輸出與差異度成正比例的第三電流,否則,輸出電流為0;
32、第一存儲(chǔ)單元的電流輸出端和第二存儲(chǔ)單元的電流輸出端共同通過(guò)匹配線連接至電流讀出單元的同一輸入端口,第一電流為第二電流和第三電流之和。
33、在一種可能的實(shí)現(xiàn)方式中,電壓驅(qū)動(dòng)單元用于將搜索字段中各個(gè)搜索字位編碼成第一電壓信號(hào)vblp、第二電壓信號(hào)第三電壓信號(hào)vbln和第四電壓信號(hào)
34、第一存儲(chǔ)單元包括:第一非易失器件、第二非易失器件和第一mosfet,電壓驅(qū)動(dòng)單元(通過(guò)第一位線)提供搜索字位對(duì)應(yīng)的第一電壓信號(hào)vblp至第一非易失器件的頂電極;第一非易失器件的底電極、第一mosfet的漏極和第二非易失器件的底電極三者電連接,電壓驅(qū)動(dòng)單元(通過(guò)第二位線)提供搜索字位對(duì)應(yīng)的第二電壓信號(hào)至第二非易失器件的頂電極;
35、第二存儲(chǔ)單元包括:第三非易失器件、第四非易失器件和第二mosfet,電壓驅(qū)動(dòng)單元(通過(guò)第三位線)提供搜索字位對(duì)應(yīng)的第三電壓信號(hào)vbln至第三非易失器件的頂電極,第三非易失器件的底電極、第二mosfet的漏極和第四非易失器件的底電極三者電連接,電壓驅(qū)動(dòng)單元(通過(guò)第四位線)提供搜索字位對(duì)應(yīng)的第四電壓信號(hào)至第四非易失器件的頂電極;
36、第一mosfet和第二mosfet為工作在二極管模式的n型晶體管,mosfet的漏極和柵極電連接,第一mosfet的源極和第二mosfet的源極通過(guò)匹配線共同連接至電流讀出單元的同一輸入端口;
37、非易失器件用于存放一條存儲(chǔ)數(shù)據(jù)中一個(gè)存儲(chǔ)字位對(duì)應(yīng)電導(dǎo)值;
38、vblp是通過(guò)以下公式確定的:vblp=vml+vgs+vp1,vp1=kvmax+(1-k)vmin;
39、是通過(guò)以下公式確定的:
40、vbln是通過(guò)以下公式確定的:vblp=vml+vgs+vn1;
41、是通過(guò)以下公式確定的:
42、其中,k表示搜索字位,vml表示匹配線上的電壓,vgs表示mosfet的柵極和源極之間的電壓,vp1表示第一非易失器件的頂電極與底電極之間的電壓,vp2表示第二非易失器件的頂電極與底電極之間的電壓,vn1表示第三非易失器件的頂電極與底電極之間的電壓,vn2表示第四非易失器件的頂電極與底電極之間的電壓,vmax表示非易失器件兩端的電壓差值的最大值,vmin表示非易失器件兩端的電壓差值的最小值。
43、此處對(duì)上述第一位線、第二位線、第三位線和第四位線進(jìn)行說(shuō)明,電壓驅(qū)動(dòng)單元可以配置有n組位線,一組位線對(duì)應(yīng)連接一列的模擬內(nèi)容可尋址存儲(chǔ)器,一組位線包括第一位線、第二位線、第三位線和第四位線,第一位線連接對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器中第一存儲(chǔ)單元(單元p)的第一非易失器件的頂電極,第二位線連接對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器中第一存儲(chǔ)單元(單元p)的第二非易失器件的頂電極,第三位線連接對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器中第二存儲(chǔ)單元(單元n)的第三非易失器件的頂電極,第四位線連接對(duì)應(yīng)列的模擬內(nèi)容可尋址存儲(chǔ)器中第二存儲(chǔ)單元(單元n)的第四非易失器件的頂電極。
44、此處對(duì)上述匹配線進(jìn)行說(shuō)明,電流讀出單元的每一個(gè)輸入端口上可以配置有一條匹配線,一條匹配線對(duì)應(yīng)連接一行的模擬內(nèi)容可尋址存儲(chǔ)器的mosfet的源極。
45、在一種可能的實(shí)現(xiàn)方式中,在第一匹配模式(精確匹配模式)下,第一非易失器件的電導(dǎo)值gp1、第二非易失器件的電導(dǎo)值gp2、第三非易失器件的電導(dǎo)值gn1和第四非易失器件的電導(dǎo)值gn2通過(guò)以下公式確定:
46、gp1=(1-j)gmax+jgmin;
47、gp2=j(luò)gmax+(1-j)gmin;
48、gn1=gp2,gn2=gp1;
49、其中,j表示存儲(chǔ)字位,gmax表示非易失器件的電導(dǎo)值的最大值,gmin表示非易失器件的電導(dǎo)值的最小值。
50、可選地,k和j均為歸一化的數(shù)據(jù),即0≤k,j≤1。
51、在一種可能的實(shí)現(xiàn)方式中,在第一匹配模式(精確匹配模式)下,預(yù)設(shè)比例關(guān)系通過(guò)以下公式確定:
52、iml=|k-j|·α;
53、α=vmaxgmax-vmingmin;
54、其中,iml表示第一電流,|k-j|表示差異度,α表示比例系數(shù)。
55、在一種可能的實(shí)現(xiàn)方式中,在第二匹配模式(區(qū)間匹配模式)下,第一非易失器件的電導(dǎo)值gp1、第二非易失器件的電導(dǎo)值gp2、第三非易失器件的電導(dǎo)值gn1和第四非易失器件的電導(dǎo)值gn2通過(guò)以下公式確定:
56、gp1=(1-jp)gmax+jpgmin;
57、gp2=j(luò)pgmax+(1-jp)gmin;
58、gn1=j(luò)ngmax+(1-jn)gmin;
59、gn2=(1-jn)gmax+jngmin;
60、其中,jp<jn,jp表示存儲(chǔ)字位的區(qū)間下限值,jn表示存儲(chǔ)字位的區(qū)間上限值,gmax表示非易失器件的電導(dǎo)值的最大值,gmin表示非易失器件的電導(dǎo)值的最小值。
61、在一種可能的實(shí)現(xiàn)方式中,在第二匹配模式(區(qū)間匹配模式)下,預(yù)設(shè)比例關(guān)系通過(guò)以下公式確定:
62、在k處于匹配區(qū)間[jp,jn]內(nèi)時(shí),iml=0;
63、在k<jp時(shí),iml=|k-jp|α;
64、在k>jn時(shí),iml=|k-jn|α;
65、α=vmaxgmax-vmingmin;
66、其中,iml表示第一電流,|k-jp|和|k-jn|表示差異度,α表示比例系數(shù)。
67、可選地,主處理器可以控制模擬內(nèi)容可尋址存儲(chǔ)器的工作模式(精確匹配模式或區(qū)間匹配模式),并接收比較器輸出的最終匹配結(jié)果(目標(biāo)行)。
68、在一種可能的實(shí)現(xiàn)方式中,非易失器件為阻變存儲(chǔ)器、鐵電存儲(chǔ)器、相變存儲(chǔ)器、自旋轉(zhuǎn)移力矩磁隨機(jī)存儲(chǔ)器、nor?flash器件或nand?flash器件。
69、在一種可能的實(shí)現(xiàn)方式中,搜索字位k與存儲(chǔ)字位j為分立的值。
70、在一種可能的實(shí)現(xiàn)方式中,電流讀出單元包括m個(gè)電流讀出子單元,電流讀出子單元包括電壓鉗制電路和電流鏡;
71、電壓鉗制電路用于穩(wěn)定對(duì)應(yīng)匹配線上的電壓,同一行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流通過(guò)同一個(gè)匹配線進(jìn)入到電流讀出子單元;
72、電流鏡用于復(fù)制對(duì)應(yīng)匹配線上的電流并輸出至比較器。
73、需要說(shuō)明的是,電流讀出子單元具有一個(gè)輸入端和一個(gè)輸出端,電流讀出子單元的輸入端作為電流讀出單元的一個(gè)輸入端,電流讀出子單元的輸出端作為電流讀出單元的一個(gè)輸出端,同一行的模擬內(nèi)容可尋址存儲(chǔ)器所輸出的第一電流通過(guò)同一個(gè)匹配線進(jìn)入到電流讀出子單元的輸入端,電流鏡的電流輸出口作為電流讀出子單元的輸出端。
74、在一種可能的實(shí)現(xiàn)方式中,在預(yù)設(shè)比例關(guān)系為正比例關(guān)系的情況下,比較器為敗者通吃電路(loser-take-all,lta)。
75、lta包括m個(gè)輸入端口(lta的一個(gè)輸入端口對(duì)應(yīng)各個(gè)模擬內(nèi)容可尋址存儲(chǔ)器陣列中的同一行),不同電流讀出單元中同一行對(duì)應(yīng)的輸出端口連接至lta中同一個(gè)輸入端口。lta將并行地對(duì)輸入電流進(jìn)行比較,找到其中最低的值,并將該行的輸出置為1,而其他行的輸出置為0。
76、總體而言,通過(guò)本技術(shù)所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
77、(1)本技術(shù)實(shí)施例提供的模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng),數(shù)據(jù)的存儲(chǔ)及搜索均以模擬值的形式進(jìn)行,相比于二值或三值cam,存儲(chǔ)密度大幅提升。同時(shí),該模擬cam的輸出電流可以反映數(shù)據(jù)之間的曼哈頓距離,具備表達(dá)每一位數(shù)據(jù)之間的匹配程度大小的能力,能夠準(zhǔn)確地輸出搜索數(shù)據(jù)與存儲(chǔ)數(shù)據(jù)之間的差異值,能夠有效地提升模擬域內(nèi)容可尋址存儲(chǔ)器系統(tǒng)的數(shù)據(jù)檢索精確度。該設(shè)計(jì)所具備的高密度、相似度搜索的能力能夠很好地滿足當(dāng)前機(jī)器學(xué)習(xí)以及數(shù)據(jù)檢索領(lǐng)域的應(yīng)用需求。
78、(2)本技術(shù)實(shí)施例提供的模擬內(nèi)容可尋址存儲(chǔ)器,能夠?qū)崿F(xiàn)與匹配度成比例的輸出,并可以配置為精確匹配模式以及區(qū)間匹配模式。精確匹配模式要求每個(gè)數(shù)據(jù)位必須完全一致,而在區(qū)間匹配模式下,數(shù)據(jù)在給定范圍內(nèi)均為匹配。相比于只能輸出“匹配”和“不匹配”的模擬內(nèi)容可尋址存儲(chǔ)器,能夠適應(yīng)不同應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)檢索精確度的要求,適用的應(yīng)用場(chǎng)景更加廣泛,特別是在機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)應(yīng)用中需要對(duì)數(shù)據(jù)進(jìn)行聚類或計(jì)算相似度的場(chǎng)景。
79、(3)本技術(shù)實(shí)施例采用電流讀出電路以及比較器電路直接將匹配線的模擬電流進(jìn)行比較并輸出結(jié)果,整個(gè)過(guò)程均在模擬電路中進(jìn)行,無(wú)需轉(zhuǎn)換到數(shù)字域進(jìn)行比較,避免了數(shù)模轉(zhuǎn)換器對(duì)硬件資源以及能耗的較大開(kāi)銷,在人工智能等領(lǐng)域相對(duì)于現(xiàn)有的計(jì)算系統(tǒng)有顯著的能效優(yōu)勢(shì)。