天天看點

CAM(Content Addressable Memory)介紹

轉自:http://blog.sina.com.cn/s/blog_541cfd6601010j7b.html

CAM是一種特殊的存儲器。所謂CAM,即内容尋址存儲器。CAM存儲器在其每個存儲單元都包含了一個内嵌的比較邏輯,寫入CAM的資料會和其内部存儲的每一個資料進行比較,并傳回與端口資料相同的所有内部資料的位址。概括地講,RAM是一個根據位址讀、寫資料的存儲單元,而CAM和RAM恰恰相反,它傳回的是與端口資料内容相比對的位址。CAM的應用也比較廣泛,比如在路由器中的位址交換表,CPU的Cache控制器(Tag陣列)等。

CAM(Content Addressable Memory)介紹

CAM工作原理:

CAM(Content Addressable Memory)介紹

    一次典型的CAM查找操作過程為:首先,CAM接收外部的查找指令并把查找資料存儲到比較寄存器中,比較寄存器和掩碼寄存器的内容來共同組成系統的一個查找字(search word),這些查找字廣播到每一組相關聯字中,每一組相關聯字都有一個比對鍊(matchline),比對鍊訓示查找字與存儲字是否一緻(比對或不比對),比對鍊把結果回報到優先譯碼器中,優先譯碼器産生一個二進制的比對位置定位和一個比對命中信号。

由于在CAM存儲器中可能存在多個字的同時比對,因而使用了一個優先譯碼器而不是簡單的譯碼器。當有多個字同時比對時,優先譯碼器選擇最高優先權的比對位址映射到比對結果,在CAM中低位址字具有高優先權。

比對煉工作原理:

CAM(Content Addressable Memory)介紹

Ø  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)信号。