本發(fā)明涉及集成電路領(lǐng)域,更確切地說,涉及兼具圖像識別功能的存儲器。
背景技術(shù):
::模式匹配和模式識別指在目標模式(被檢索的模式,targetpattern)中查找與檢索模式(用于檢索的模式,searchpattern)相同或接近的模式。其中,模式匹配要求查找到相同的模式,模式識別僅要求查找到接近的模式。除了特別說明,本說明書不區(qū)分模式匹配和模式識別,并用模式處理來統(tǒng)稱各種對模式進行的操作。模式處理(包括模式匹配和模式識別)應(yīng)用廣泛。常用的模式處理包括字符串匹配、代碼匹配、語音識別和圖像識別等。字符串匹配廣泛用于大數(shù)據(jù)分析(如金融數(shù)據(jù)分析、電商數(shù)據(jù)分析、生物信息學(xué))等領(lǐng)域:從大數(shù)據(jù)(目前多為文本數(shù)據(jù)庫,含有目標字符串)中查找檢索字符串,并進行統(tǒng)計分析。代碼匹配廣泛用于防惡意軟件(anti-malware,如網(wǎng)絡(luò)安全、計算機殺毒)等領(lǐng)域:從網(wǎng)絡(luò)數(shù)據(jù)包中查找病毒標識(virussignature)或檢查網(wǎng)絡(luò)數(shù)據(jù)包是否符合網(wǎng)絡(luò)規(guī)范(networkrules),從而決定網(wǎng)絡(luò)數(shù)據(jù)包是否安全。語音識別將通過語音傳感器搜集到、或存儲在語音檔案庫中的語音信號與聲學(xué)模型庫和語言模型庫匹配。圖像識別將通過圖像傳感器搜集到、或存儲到圖像檔案庫中的圖像信號與圖像模型庫匹配。隨著大數(shù)據(jù)時代的到來,傳統(tǒng)的模式庫(包括檢索模式庫和目標模式庫)已成為大型數(shù)據(jù)庫(tb級到pb級,甚至eb級):檢索模式庫(包括所有用于檢索的模式)的數(shù)據(jù)量已經(jīng)很大,而目標模式庫(包括所有被檢索的模式,通常為用戶數(shù)據(jù)庫)的數(shù)據(jù)量則更為巨大。目前計算機采用的vonneumann架構(gòu)已不能滿足大數(shù)據(jù)時代對模式處理的要求。在vonneumann架構(gòu)中,用于處理模式的處理器和用來存儲模式的存儲器是分離的:存儲器(如硬盤、光盤、磁帶等)僅用作存儲模式數(shù)據(jù),而不能對它進行任何模式處理;所有的模式處理都由外置處理器(如cpu、gpu)來完成。眾所周知,分離的處理器和存儲器之間帶寬有限,光是從模式庫中讀出所有數(shù)據(jù)就需要很長時間,更何況對它們進行處理分析。因此,對大型模式庫的模式處理需要耗費很長時間。模式處理的一個典型應(yīng)用是圖像識別。圖像識別的一種手段是根據(jù)圖像模型庫對用戶圖像進行模式識別。在識別時,模式處理器將用戶圖像數(shù)據(jù)與圖像模型庫中的圖像模型一一比較,尋找最接近的圖像模型。在傳統(tǒng)計算機架構(gòu)中,用戶圖像數(shù)據(jù)存儲在外存(如硬盤)中。外存只是一個單純的存儲器,其本身不具備任何圖像識別功能。當需要對一個新的圖像模型進行識別時,需要把計算機硬盤中的所有用戶圖像數(shù)據(jù)讀到處理器中進行圖像識別。由于傳統(tǒng)圖像處理器(如cpu、gpu)內(nèi)核數(shù)量有限、其圖像識別平行度低,而且從外存中讀出用戶圖像數(shù)據(jù)耗時很長,故傳統(tǒng)計算機架構(gòu)在處理圖像識別時效率低下。技術(shù)實現(xiàn)要素:本發(fā)明的主要目的是提高圖像識別的效率。本發(fā)明的另一目的是提供一種能高效地、兼具圖像識別功能的存儲器。為了實現(xiàn)這些以及別的目的,本發(fā)明提出一種兼具圖像識別功能的存儲器:它不僅能存儲模式數(shù)據(jù),還能對它實施模式處理。該存儲器芯片含有多個存儲處理單元,每個單元都含有一模式處理電路和至少一存儲至少一模式(包括目標模式和檢索模式)的3d-m(three-dimensionalmemory,簡稱為3d-m)陣列。3d-m陣列與模式處理電路的垂直集成帶來很多優(yōu)勢:由于3d-m陣列不占襯底面積,它可以集成在模式處理電路上,這能增加存儲容量、減少芯片面積。更重要的是,由于3d-m陣列和模式處理電路處于同一芯片中且距離很近,它們之間能實現(xiàn)一大帶寬電連接。通過采用大規(guī)模平行計算(每個存儲器芯片可以含有上萬個存儲處理單元),該存儲器能對大型模式庫實現(xiàn)快速模式處理。相應(yīng)地,本發(fā)明提出一種兼具圖像識別功能的存儲器(200),其特征在于含有:一傳輸至少一圖像模型的輸入總線(110);一半導(dǎo)體襯底(0)及多個存儲處理單元(100aa-100mn),所述多個存儲處理單元與該輸入總線(110)耦合,每個存儲處理單元(100ij)含有至少一三維存儲(3d-m)陣列(170)和一模式處理電路(180),其中:所述3d-m陣列(170)堆疊在該襯底(0)上方,該3d-m陣列(170)存儲至少一用戶圖像數(shù)據(jù);所述模式處理電路(180)位于該襯底(0)中,該模式處理電路(180)根據(jù)該圖像模型對該用戶圖像數(shù)據(jù)進行模式識別;所述3d-m陣列(170)和所述模式處理電路(180)通過多個接觸通道孔(1av,3av)耦合。附圖說明圖1是一種分布式模式處理器的電路框圖。圖2a-圖2c是三種存儲處理單元的電路框圖;圖3a是一種三維可寫存儲器(three-dimensionalwritablememory,簡稱為3d-w)及基于3d-w的存儲處理單元的截面圖;圖3b是一種三維印錄存儲器(three-dimensionalprintedmemory,簡稱為3d-p)及基于3d-p的存儲處理單元的截面圖。圖4是一種存儲處理單元的透視圖。圖5a-圖5c是三種存儲處理單元的襯底電路布局圖。注意到,這些附圖僅是概要圖,它們不按比例繪圖。為了顯眼和方便起見,圖中的部分尺寸和結(jié)構(gòu)可能做了放大或縮小。在不同實施例中,數(shù)字后面的字母后綴表示同一類結(jié)構(gòu)的不同實例;相同的數(shù)字前綴表示相同或類似的結(jié)構(gòu)。在本說明書中,“/”表示“和/或”。具體實施方式圖1表示一種兼具圖像識別功能的存儲器200,它是一種分布式模式處理器芯片。該處理器200含有mxn個存儲處理單元100aa-100mn。這些存儲處理單元100aa-100mn均形成在襯底0上。輸入總線110與各個存儲處理單元耦合,輸出總線120與各個存儲處理單元耦合。注意到,分布式模式處理器芯片200可以含有上萬個存儲處理單元100aa-100mn。如此數(shù)量眾多的存儲處理單元100aa-100mn可以保證大規(guī)模平行計算,以實現(xiàn)高速模式處理。每個存儲處理單元100ij都含有一模式處理電路170和至少一存儲至少一模式的3d-m陣列180。圖2a-圖2c是三種存儲處理單元100ij的電路框圖。在這些實施例中,一個模式處理電路180為不同數(shù)量的3d-m陣列170服務(wù)。圖2a中的模式處理電路180為一個3d-m陣列170服務(wù):存儲在3d-m陣列170中的模式數(shù)據(jù)通過大帶寬電連接160(參見圖3a-圖4)送入模式處理電路180,與輸入模式數(shù)據(jù)110進行模式匹配或模式識別,并產(chǎn)生輸出模式數(shù)據(jù)120。圖2b中的模式處理電路180為四個存儲陣列170a-170d服務(wù):存儲在3d-m陣列170a-170d中的模式數(shù)據(jù)通過大帶寬電連接160a-160d(參見圖3a-圖4)送入模式處理電路180,并與輸入模式數(shù)據(jù)110進行模式匹配或模式識別。圖2c中的模式處理電路180為八個存儲陣列170a-170d和170w-170z服務(wù):存儲在3d-m陣列170a-170d和170w-170z中的模式數(shù)據(jù)通過大帶寬電連接160a-160d和160w-160z(參見圖3a-圖4)送入模式處理電路180,并與輸入模式數(shù)據(jù)110進行模式匹配或模式識別。從以后的圖5a-圖5c可以看出,為更多3d-m陣列服務(wù)的模式處理電路180具有更大的面積和更強的功能。圖3a-圖3b表示兩種典型3d-m。圖3a是一種基于3d-w的存儲處理單元100ij的截面圖。3d-w存儲的信息采用電編程錄入。常見的3d-w有3d-xpoint。其它3d-w包括memristor、阻變存儲器(rram)、相變存儲器(pcm)、programmablemetallizationcell(pmc)、conductivebridgingrandom-accessmemory(cbram)等。根據(jù)其可編程的次數(shù),3d-w又分為三維一次編程存儲器(three-dimensionalone-time-programmablememory,簡稱為3d-otp)和三維多次編程存儲器(three-dimensionalmultiple-time-programmablememory,簡稱為3d-mtp)。顧名思義,3d-otp能編程一次,3d-mtp能編程多次(包括重復(fù)編程)。3d-otp工藝成熟,它可存儲檢索模式庫(如病毒標識庫、網(wǎng)絡(luò)規(guī)范庫、聲學(xué)模型庫、語言模型庫等),這些模式庫中的模式數(shù)據(jù)只增加不修改。3d-mtp是一種通用存儲器,它可用來存儲目標模式庫,如用戶數(shù)據(jù)(包括用戶代碼)等。基于3d-w的存儲處理單元100ij含有一形成在襯底0上的襯底電路層0k。存儲層16a堆疊在襯底電路0k之上,存儲層16b堆疊在存儲層16a之上。襯底電路層0k含有存儲層16a、16b的周邊電路,它包括晶體管0t及互連線0m。每個存儲層(如16a)含有多條第一地址線(如2a,沿y方向)、多條第二地址線(如1a,沿x方向)和多個3d-w存儲元(如1aa)。存儲層16a、16b分別通過接觸通道孔1av,3av與襯底0耦合。3d-w存儲元5aa含有一層編程膜12和一層二極管膜14。編程膜12可以是反熔絲膜(用于3d-otp),也可以是其它多次編程膜(用于3d-mtp)。二極管膜14具有如下的廣義特征:在讀電壓下,其電阻較??;當外加電壓小于讀電壓或者與讀電壓方向相反時,其電阻較大。二極管膜可以是p-i-n二極管,也可以是金屬氧化物(如tio2)二極管等。圖3b是一種基于3d-p的存儲處理單元100ij的截面圖。3d-p存儲的信息是在工廠生產(chǎn)過程中采用印刷方式錄入的(印錄法)。這些信息是永久固定的,出廠后不能改變。印錄法可以是光刻(photo-lithography)、納米壓印法(nano-imprint)、電子束掃描曝光(e-beamlithography)、duv掃描曝光、激光掃描曝光(laserprogramming)等。常見的3d-p有三維掩膜編程只讀存儲器(3d-mprom),它通過光刻法經(jīng)過掩膜編程錄入數(shù)據(jù)。3d-p的讀速度比3d-w快,它適合存儲固定的模式庫(如聲學(xué)模型庫和語言模型庫等),并實現(xiàn)高性能模式處理(如實現(xiàn)自然語言處理和實時語言翻譯等)。3d-p含有至少兩種存儲元5aa,6aa。存儲元6aa是一種低阻存儲元,存儲元5aa是一種高阻存儲元。低阻存儲元6aa含有一層二極管膜14,高阻存儲元5aa比低阻存儲元6aa多含一層高阻膜12。作為一個簡單的例子,高阻膜12可以是一層二氧化硅膜。該高阻膜12在工藝流程中利用印錄法在存儲元6aa處被物理移除。在圖3a-圖3b的3d-m(包括3d-w和3d-p)中,每個存儲層含有多個3d-m陣列。3d-m陣列是在一個存儲層中所有共享了至少一條地址線的存儲元之集合。在一個3d-m陣列中,所有地址線是連續(xù)的,并不與不同3d-m陣列共享任何地址線。另一方面,一個3d-m芯片含有多個3d-m模塊。每個3d-m模塊含有3d-m中的所有存儲層,其頂存儲層僅含一個3d-m陣列,而且該3d-m陣列在襯底上的投影決定了該3d-m模塊的邊界。圖4從另一個角度披露了存儲處理單元100ij的結(jié)構(gòu)。存儲模式的3d-m陣列170堆疊在襯底0的上方,處理模式的模式處理電路180位于襯底0中,并被3d-m陣列170至少部分覆蓋。3d-m陣列170和模式處理電路180之間通過由大量接觸通道孔1av、3av構(gòu)成的大帶寬電連接160實現(xiàn)通訊。由于接觸通道孔1av、3av數(shù)量眾多(可以上萬個)且長度很短(微米級),芯片內(nèi)電連接160的帶寬遠高于芯片間的通訊帶寬。3d-m陣列170與模式處理電路180的垂直集成帶來很多優(yōu)勢:由于3d-m陣列170不占襯底面積0,它可以集成在模式處理電路180上,這能增加存儲容量、減少芯片面積。更重要的是,由于3d-m陣列170和模式處理電路180處于同一芯片200中且距離很近,它們之間能實現(xiàn)較大帶寬。通過采用大規(guī)模平行計算,分布式模式處理器200能對大型模式庫實現(xiàn)快速模式處理。圖5a-圖5c披露了三種存儲處理單元的具體實現(xiàn)方式。圖5a的實施例對應(yīng)于圖2a中存儲處理單元100ij。模式處理電路180為一個3d-m陣列170服務(wù),它被3d-m陣列170完全覆蓋。在該實施例中,3d-m陣列170含有四個周邊電路,包括x解碼器15、15`和y解碼器(包括讀出電路)17、17`,模式處理電路180位于這四個周邊電路之間。在圖5a中,由于3d-m陣列170位于襯底電路0k上方,不在襯底電路0k中,在此用虛線表示其在襯底0上的投影。在本實施例中,模式處理電路180被局限在四個周邊電路之間,其面積不能超過3d-m陣列170的面積,故其面積較小、功能有限。該實施例較適于實現(xiàn)較簡單的模式處理(如字符串匹配和代碼匹配)。很明顯,較復(fù)雜的模式處理(如語音識別、圖像識別)需要更大的電路,這需要在3d-m陣列170下騰出更大的襯底面積,以便模式處理電路180的布局。圖5b-圖5c披露了兩種具有更大面積和更強功能的模式處理電路180。圖5b的實施例對應(yīng)于圖2b中存儲處理單元100ij。在該實施例中,一個模式處理電路180為四個3d-m陣列170a-170d服務(wù)。每個3d-m陣列(如170a)只有兩個周邊電路(如x解碼器15a和y解碼器17a)。在這四個3d-m陣列170a-170d下方,襯底電路0k可以自由布局,形成一模式處理電路180。很明顯,圖5b中的模式處理電路180可以是圖5a的四倍大,它能實現(xiàn)較復(fù)雜的模式處理功能。圖5c的實施例對應(yīng)于圖2c中存儲處理單元100ij。在該實施例中,一個模式處理電路180為八個3d-m陣列170a-170d和170w-170z服務(wù)。這八個3d-m陣列分為兩組150a、150b。每組(如150a)包括四個3d-m陣列(如170a-170d)。在第一組150a的四個3d-m陣列170a-170d下方,襯底電路可以自由布局,形成第一模式處理電路組件a180a。類似地,在第二組150b的四個3d-m陣列170w-170z下方,襯底電路也可以自由布局,形成第二模式處理電路組件b180b。第一模式處理電路組件180a和第二模式處理電路組件180b構(gòu)成模式處理電路180。在本實施例中,在相鄰周邊電路之間(如相鄰x解碼器15a,15c之間;在相鄰的y解碼器17a,17b之間;在相鄰的y解碼器17c,17d之間)留有間隙(如g),以形成布線通道190xa,190ya,190yb,供不同模式處理電路組件150a,150b之間、或不同模式處理電路之間實現(xiàn)通訊。很明顯,圖5c中的模式處理電路180可以是圖5a的八倍大,它能實現(xiàn)更復(fù)雜的模式處理功能。在本發(fā)明的一些實施例中,模式處理電路180僅需完成部分模式處理功能。比如說,模式處理電路180僅需完成簡單模式處理(如簡單特征的提取和處理)。經(jīng)過該簡單模式處理篩選后的模式將進一步通過輸出總線120送到更強大的外置處理器(如cpu、gpu)中完成最終模式處理。由于模式庫中的大部分模式會被簡單模式處理篩選掉,輸出的模式僅占模式庫的小部分,這能降低輸出總線120的帶寬壓力。在分布式模式處理器200中,存儲處理單元100ij可以采用兩種模式處理方式——類處理器方式和類存儲器方式。對于類處理器方式,存儲處理單元100ij對外界來說就像一個能用其自帶的檢索模式庫、對外來用戶數(shù)據(jù)進行模式處理的處理器。具體說來,存儲處理單元100ij的3d-m陣列170存儲檢索數(shù)據(jù)庫;存儲處理單元100ij的輸入數(shù)據(jù)110是用戶數(shù)據(jù)(包括用戶代碼),這些用戶數(shù)據(jù)一般說來是實時產(chǎn)生的,如網(wǎng)絡(luò)數(shù)據(jù)包;存儲處理單元100ij將用戶數(shù)據(jù)110與檢索模式庫進行模式匹配或模式識別。由于3d-m陣列170與模式處理器180之間具有大帶寬連接160,這種模式處理方式比傳統(tǒng)的、檢索模式庫存儲于分離存儲器的模式處理方式效率高。對于類存儲器方式,存儲處理單元100ij對外界來說像一個主要用于存儲用戶數(shù)據(jù)、且能利用自帶模式處理電路進行模式處理的存儲器。具體說來,用戶數(shù)據(jù)長久存儲在存儲處理單元100ij的3d-m陣列170中;存儲處理單元100ij的輸入數(shù)據(jù)110是檢索模式數(shù)據(jù);存儲處理單元100ij將檢索模式數(shù)據(jù)110與其用戶數(shù)據(jù)進行模式匹配或模式識別。注意到,多個采用類存儲器方式的分布式模式處理器芯片200可以像閃存芯片一樣封裝成存儲卡(如sd卡、tf卡)和固態(tài)硬盤,用于存儲海量的用戶數(shù)據(jù)(如用戶數(shù)據(jù)檔案)。由于每個分布式模式處理器芯片200中的每個存儲處理單元100ij都自帶一個模式處理電路180,這個模式處理電路180僅需處理該存儲處理單元100ij中3d-m陣列170存儲的數(shù)據(jù)。因此,不論存儲卡和固態(tài)硬盤的容量有多大,其模式處理的時間都接近單一模式處理電路180處理與其耦合的3d-m陣列170中存儲的數(shù)據(jù)之時間。這個巨大的優(yōu)勢對傳統(tǒng)處理器來說不可想象。在類存儲器方式中,存儲處理單元100ij是用戶數(shù)據(jù)的最終存儲器件。這與傳統(tǒng)的、含有嵌入式存儲器的處理器不同:傳統(tǒng)處理器中的嵌入式存儲器僅臨時存儲用戶數(shù)據(jù),用戶數(shù)據(jù)的最終存儲器件還是外置存儲器(如硬盤、光盤、磁帶等)。如果用戶數(shù)據(jù)長久存儲在傳統(tǒng)處理器中,則該傳統(tǒng)處理器僅能為這些數(shù)據(jù)服務(wù),而無法為其它數(shù)據(jù)服務(wù)。也就是說,大量用戶數(shù)據(jù)需要使用很多處理器。由于傳統(tǒng)處理器非常昂貴,這種處理方式代價過于高昂。與之比較,在本發(fā)明提出的存儲處理單元100ij中,模式處理電路180集成在3d-m陣列170下方,與3d-m陣列的周邊電路(如解碼器)同時形成。由于3d-m本來就要形成周邊電路,且周邊電路只在襯底0上占很小面積(參見圖5a-圖5c),大部分襯底面積可以用來形成模式處理電路180,模式處理電路180對于3d-m來說是免費的。因此,在分布式模式處理器芯片200上可以形成大量近似免費的模式處理電路180,每個模式處理電路180為特定的數(shù)據(jù)(存儲在與之耦合的3d-m陣列170中)服務(wù)。以下就分布式模式處理器的應(yīng)用做一簡單介紹。作為一個例子,分布式模式處理器200是一防惡意軟件(anti-malware)處理器,它主要用于網(wǎng)絡(luò)安全和計算機殺毒。網(wǎng)絡(luò)安全可采用類處理器方式:分布式模式處理器200的輸入數(shù)據(jù)110是網(wǎng)絡(luò)數(shù)據(jù)包,3d-m陣列170存儲網(wǎng)絡(luò)規(guī)范庫和病毒標識庫,模式處理電路180對它們進行模式匹配。計算機殺毒可采用類處理器方式和類存儲器方式:對于類處理器方式,計算機中存儲的用戶數(shù)據(jù)作為輸入數(shù)據(jù)110傳輸至分布式模式處理器200,3d-m陣列170存儲病毒標識庫,模式處理電路180對它們進行模式匹配;對于類存儲器方式,病毒標識作為輸入數(shù)據(jù)110傳送至分布式模式處理器200,用戶數(shù)據(jù)存儲在3d-m陣列170中,模式處理電路180對它們進行模式匹配。在類處理器方式中,3d-m可以是3d-otp或3d-mtp,它用于存儲網(wǎng)絡(luò)規(guī)范庫和病毒標識庫。在類存儲器方式中,3d-m最好是3d-mtp,它存儲用戶數(shù)據(jù)庫。作為另一個例子,分布式模式處理器200可用于大數(shù)據(jù)分析(如金融數(shù)據(jù)分析、電商數(shù)據(jù)分析、生物信息學(xué))。大數(shù)據(jù)分析涉及非結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù)。傳統(tǒng)的、采用關(guān)系型數(shù)據(jù)庫(relationaldatabase)的分析方法對此無能為力。分布式模式處理器200能提高大數(shù)據(jù)分析能力。為了提高效率,最好采用類存儲器方式:大數(shù)據(jù)作為檔案存儲在3d-m陣列170中,用于數(shù)據(jù)分析的關(guān)鍵詞作為輸入模式數(shù)據(jù)110送至分布式模式處理器200,模式處理電路180對它們進行模式匹配。在大數(shù)據(jù)分析中,3d-m最好是3d-mtp,它用于存儲用戶數(shù)據(jù)。分布式模式處理器200還可以用于語音識別和/或圖像識別。在識別過程中,可以采用類處理器方式和類存儲器方式。對于類處理器方式,用戶產(chǎn)生的語音/圖像數(shù)據(jù)作為輸入數(shù)據(jù)110送至分布式模式處理器200,3d-m陣列170存儲各種識別模型庫(如聲學(xué)模型庫、語言模型庫、圖像模型庫等),之后模式處理器180進行識別。對類存儲器方式,用戶產(chǎn)生的語音/圖像數(shù)據(jù)作為檔案存儲在3d-m陣列170中,需要查找的語言信號或圖像信號作為輸入數(shù)據(jù)110送至分布式模式處理器200,之后模式處理電路180進行識別和查找。在類處理器方式中,3d-m可以是3d-p、3d-otp或3d-mtp,它存儲聲學(xué)模型庫、語言模型庫、圖像模型庫等。在類存儲器方式中,3d-m最好是3d-mtp,它存儲語音/圖像檔案庫。應(yīng)該了解,在不遠離本發(fā)明的精神和范圍的前提下,可以對本發(fā)明的形式和細節(jié)進行改動,這并不妨礙它們應(yīng)用本發(fā)明的精神。因此,除了根據(jù)附加的權(quán)利要求書的精神,本發(fā)明不應(yīng)受到任何限制。當前第1頁12當前第1頁12