內(nèi)容可尋址存儲器設(shè)備的制造方法
【專利說明】
【背景技術(shù)】
[0001 ] 本申請要求享有2013年8月31日在印度遞交的申請N0.3910//CHE/2013的優(yōu)先權(quán)。該母申請的全部公開內(nèi)容因為所有目的通過引用方式合并于此。
[0002]除非在此處進行說明,否則此處所描述的方法不是本申請權(quán)利要求的現(xiàn)有技術(shù)并且不因包含在該部分中而承認是現(xiàn)有技術(shù)。
[0003]內(nèi)容可尋址存儲器(CAM)有時在處理器中用于對諸如在轉(zhuǎn)換后援緩存(TLB)中的小的數(shù)據(jù)結(jié)構(gòu)進行存儲和訪問。CAM還用于其它環(huán)境,諸如互聯(lián)網(wǎng)路由器、加密以及網(wǎng)絡(luò)入侵檢測,以及其它環(huán)境。CAM可用于加速執(zhí)行數(shù)據(jù)庫搜索或檢測模式的應(yīng)用,諸如在數(shù)據(jù)庫系統(tǒng)、計算機與通信網(wǎng)絡(luò)、以及高速切換系統(tǒng)中。
[0004]在操作期間,CAM的存儲陣列的所有行都可以被同時查找以定位特定值,因為該值可能駐存在CAM的任意行中??赡苄枰罅康墓β屎统掷m(xù)時間來執(zhí)行該查找。高功耗還會導(dǎo)致發(fā)熱,發(fā)熱會限制CAM的存儲密度。本公開探索這些問題以及其它問題。
[0005]概述
[0006]本文描述的技術(shù)一般地涉及將數(shù)據(jù)存儲在功能內(nèi)容可尋址存儲器(CAM)中以及從功能內(nèi)容可尋址存儲器(CAM)中取回數(shù)據(jù)。該功能CAM可經(jīng)由RAM的使用來仿真。各種所述的技術(shù)可以應(yīng)用于方法、系統(tǒng)、設(shè)備或其組合。
[0007]根據(jù)本公開的一些示例,描述了與在CAM中存儲數(shù)據(jù)有關(guān)的各種方法。一些示例的方法可以包括接收待存儲在CAM中的數(shù)據(jù)值。數(shù)據(jù)值可以包括兩個或更多個比特。CAM可以包括多個存儲器集。可以確定對應(yīng)于數(shù)據(jù)值的索引。索引可以基于數(shù)據(jù)值的對應(yīng)于索引比特集的比特子集來確定。CAM的存儲器集可以基于所確定的索引來識別,數(shù)據(jù)值可以存儲在所識別的存儲器集的存儲單元中。
[0008]根據(jù)本公開的另外的示例,描述了與從CAM中取回數(shù)據(jù)有關(guān)的各種技術(shù)。一些示例的方法可以包括:接收對應(yīng)于要從內(nèi)容可尋址存儲器(CAM)中取回的數(shù)據(jù)值的搜索關(guān)鍵字。搜索關(guān)鍵字可以包括兩個或更多個比特。CAM可以包括多個存儲器集。確定對應(yīng)于搜索關(guān)鍵字的索引。所確定的索引可被評估以識別對應(yīng)于所確定的索引的存儲器集??梢詮乃R別的存儲器集的存儲器集的存儲單元取回數(shù)據(jù)值。
[0009]根據(jù)本公開另外的示例,描述了內(nèi)容可尋址存儲器(CAM)設(shè)備。一些描述的CAM設(shè)備可以包括被配置為存儲多個數(shù)據(jù)值的多個存儲器集。每個存儲器集可以包括多個存儲單元。CAM設(shè)備可以進一步包括索引選擇模塊和存儲器訪問模塊。該索引選擇模塊可被配置為確定對應(yīng)于數(shù)據(jù)值或搜索關(guān)鍵字的索引以及識別與數(shù)據(jù)值或搜索關(guān)鍵字的索引相關(guān)聯(lián)的存儲器集。存儲器訪問模塊可被配置為從CAM的識別的存儲器集中的存儲單元讀或者向CAM的識別的存儲器集中的存儲單元寫。
[0010]前面的概述僅僅是示例性的,而不意在以任何方式進行限制。通過參考附圖以及下面的詳細說明,除了上文所描述的示例性的方案、實施例和特征之外,另外的方案、實施例和特征將變得清晰可見。
【附圖說明】
[0011]在附圖中:
[0012]圖1是將數(shù)據(jù)存儲在內(nèi)容可尋址存儲器(CAM)設(shè)備中的示例過程的圖示說明;
[0013]圖2是從內(nèi)容可尋址存儲器設(shè)備取回數(shù)據(jù)的示例過程的圖示說明;
[0014]圖3示出了存儲在CAM的多個存儲器集中的示例數(shù)據(jù)值以及數(shù)據(jù)中每個比特位置處的值的分布表;
[0015]圖4示出了具有對應(yīng)數(shù)據(jù)值的搜索關(guān)鍵字的示例表以及索引和與索引相關(guān)聯(lián)的存儲器集的索引表;
[0016]圖5是示出示例的內(nèi)容可尋址存儲器設(shè)備的功能組件的示意圖;
[0017]圖6是示出圖5的內(nèi)容可尋址存儲器設(shè)備中的數(shù)據(jù)值的存儲的示意圖;
[0018]圖7是示出從圖5的內(nèi)容可尋址存儲器設(shè)備中取回數(shù)據(jù)值的示意圖;以及
[0019]圖8是示出被布置成存儲數(shù)據(jù)在內(nèi)容可尋址存儲器設(shè)備中以及從內(nèi)容可尋址存儲器設(shè)備中取回數(shù)據(jù)的示例的計算設(shè)備的框圖。
[0020]以上附圖全部都根據(jù)本公開的至少一些實施例來布置。
【具體實施方式】
[0021]在下面的詳細說明中,將參考附圖,附圖構(gòu)成了詳細說明的一部分。在附圖中,除非上下文指出,否則相似的符號通常表示相似的部件。在詳細說明、附圖和權(quán)利要求中所描述的示例性實施例不意在限制??梢允褂闷渌鼘嵤├⑶铱梢宰龀銎渌淖?,而不偏離本文呈現(xiàn)的主題的精神或范圍。將易于理解的是,如本文大致描述且如圖中所圖示的,本公開的方案能夠以各種不同配置來布置、替代、組合、分離和設(shè)計,所有這些都在本文中明確地構(gòu)思出。
[0022]本公開的示例性實施例一般涉及用于內(nèi)容可尋址存儲器(CAM)的存儲器管理技術(shù)。該技術(shù)可實現(xiàn)將數(shù)據(jù)存儲在該內(nèi)容可尋址存儲器中以及從該內(nèi)容可尋址存儲器取回數(shù)據(jù),與常規(guī)CAM相比其具有降低的功耗和提高的操作速度。
[0023]在所描述的實施例中,CAM可以利用索引組織到存儲器集中。索引可以基于存儲在CAM中的數(shù)據(jù)值。該技術(shù)可允許集相關(guān)(set-associative)高速緩存作為CAM運行,并且可實現(xiàn)該CAM中的高效過濾和搜索操作。下面所述的索引和搜索技術(shù)可用于網(wǎng)絡(luò)路由器中并且可以實現(xiàn)該CAM在處理器中的使用用于支持諸如加密、安全、存儲器訪問過濾和芯片上通信量過濾的應(yīng)用。
[0024]圖1是將數(shù)據(jù)存儲在CAM設(shè)備中的示例的過程100的圖示說明。過程100可以包括由框102-108中的一個或多個所示的一個或多個操作、功能或動作。雖然按順序的次序示出,這些框還可以并行地執(zhí)行,和/或按照不同于本文所述的次序來執(zhí)行。而且,各個框可以組合成較少的框,劃分成額外的框,補充代表了其它操作、功能或動作的額外框,和/或基于特定實現(xiàn)方式而去除。過程100開始于框102。
[0025]在框102中,“接收待存儲在CAM中的具有兩個或更多個比特的數(shù)據(jù)值”,可以通過CAM接口來接收待存儲在CAM中的具有兩個或更多個比特的數(shù)據(jù)值。在該示例中,CAM可以包括被配置為存儲多個數(shù)據(jù)值的多個存儲器集。在一個示例的實施例中,CAM可以是被配置為用作CAM的集相關(guān)SRAM。
[0026]處理可以從框102繼續(xù)到框104,“確定對應(yīng)于數(shù)據(jù)值的索引”。在框104中,對應(yīng)于數(shù)據(jù)值的索引可以由CAM設(shè)備的索引選擇模塊來確定。該索引可以基于數(shù)據(jù)值的對應(yīng)于索引比特集的比特子集來確定。在一些示例中,在數(shù)據(jù)值存儲于CAM設(shè)備中的同時,索引比特集可以離線確定。在該示例中,索引比特集可通過評估存儲在CAM的多個存儲器集中的多個數(shù)據(jù)值來確定,并且該比特集可以從當(dāng)前呈現(xiàn)的數(shù)據(jù)值中被選為索引。評估可以包括確定存儲在CAM的多個存儲器集中的多個數(shù)據(jù)值中的每個比特位置處的值的分布。在一些示例中,所確定的索引可以由數(shù)據(jù)值中的對應(yīng)于索引比特集的比特值子集構(gòu)成。
[0027]在一些實施例中,在數(shù)據(jù)值存儲于CAM的存儲器集中時,專用處理器或處理線程/進程可用于評估數(shù)據(jù)值中每個比特位置處的離線值的分布。處理器可進一步配置為基于該分布來選定索引。該索引可以通過處理器來動態(tài)選定并且可用于將未來數(shù)據(jù)值存儲在CAM的多個存儲器集中。
[0028]在一些示例中,總體計數(shù)器可以由索引選擇模塊利用數(shù)據(jù)值來維護和更新以確定存儲在CAM中的值的分布。數(shù)據(jù)值的每個比特位置處的值可被評估,并且可以基于評估結(jié)果來更新總體計數(shù)器。在各個示例中,可以確定數(shù)據(jù)值的每個比特位置處的值的加權(quán)平均,并且可以基于所確定的加權(quán)平均來更新總體計數(shù)器。該索引可以利用總體計數(shù)器來選定,如下文要描述的。
[0029]在一些示例中,數(shù)據(jù)值的比特位置可被跟蹤以確定頻繁變化的數(shù)據(jù)的各個比特,從而確定存儲在CAM中的值的分布。這些比特可以由索引選擇模塊動態(tài)地選為索引。在一些實施例中,選擇可以利用對數(shù)據(jù)值的移位和掩碼操作來實現(xiàn)。例如,如果數(shù)據(jù)值的比特位置10、11、12和13被確定為索引比特,則在那些比特位置中具有比特值1且在