CAM是一種特殊的存儲器。所謂CAM,即內容尋址存儲器。CAM存儲器在其每個存儲單元都包含了一個內嵌的比較邏輯,寫入CAM的數據會和其內部存儲的每一個數據進行比較,並返回與端口數據相同的所有內部數據的地址。概括地講,RAM是一個根據地址讀、寫數據的存儲單元,而CAM和RAM恰恰相反,它返回的是與端口數據內容相匹配的地址。CAM的應用也比較廣泛,比如在路由器中的地址交換表,CPU的Cache控制器(Tag陣列)等。
CAM工作原理:
一次典型的CAM查找操作過程為:首先,CAM接收外部的查找命令並把查找數據存儲到比較寄存器中,比較寄存器和掩碼寄存器的內容來共同組成系統的一個查找字(search word),這些查找字廣播到每一組相關聯字中,每一組相關聯字都有一個匹配鏈(matchline),匹配鏈指示查找字與存儲字是否一致(匹配或不匹配),匹配鏈把結果反饋到優先譯碼器中,優先譯碼器產生一個二進制的匹配位置定位和一個匹配命中信號。
由於在CAM存儲器中可能存在多個字的同時匹配,因而使用了一個優先譯碼器而不是簡單的譯碼器。當有多個字同時匹配時,優先譯碼器選擇最高優先權的匹配地址映射到匹配結果,在CAM中低地址字具有高優先權。
匹配煉工作原理:
Ø The search-data word is loaded into the search-data register.
Ø All match-lines are pre-charged to high (temporary match state).
Ø Search line drivers broadcast the search word onto the differential search lines.
Ø Each CAM core compares its stored bit against the bit on the corresponding search-lines.
Ø Match words that have at least one missing bit, discharge to ground.
CAM在Cache控制其中的應用
CAM在Cache控制其中的應用
CPU對Cache的搜索叫做Tag search,即通過Cache中的CAM(Content Addressed Memory)對希望得到的Tag數據進行搜索。CAM是一種存儲芯器,延遲很低。
CPU與Cache之間交換數據是以字為單位的,而Cache與內存之間交換數據是以塊為單位的,並且在Cache中,是以若干字組成的塊為基本單位的。一般情況下,CPU需要某個數據的時候,它會把所需數據的地址通過地址總線發出,一份發到與內存中,一份發到與Cache匹配的相聯存儲器(CAM)中,CAM通過分析對比地址,來確定所要的數據是否在Cache中,如果在,則以字為單位把CPU所需要的數據傳送給CPU,如果不在,則 CPU在內存中尋找到該數據,然后通過數據總線傳送給CPU,並且把該數據所在的塊傳送到Cache中。
CAM使用一組比較器,以比較輸入的標簽地址和存儲在每一個有效cache行中的cache-tag。訪問地址的tag部分被作為CAM的輸入,輸入標簽同時與所有cache標簽相比較。如果有一個匹配,那么數據就由cache存儲器提供;如果沒有匹配,存儲器控制器就會產生一個失效(miss)信號。
來源: http://blog.sina.com.cn/s/blog_541cfd6601010j7b.html