什麼是關聯記憶體?


關聯記憶體可以被視為一個儲存單元,其儲存的資訊可以透過資訊本身的內容而不是地址或儲存位置來識別訪問。關聯記憶體也稱為**內容定址記憶體 (CAM)**。

關聯記憶體的框圖如圖所示。它包括一個記憶體陣列和用於m個字(每個字n位)的邏輯。引數暫存器A和鍵暫存器K各有n位,每個字一位。

匹配暫存器M有m位,每個記憶體字一位。記憶體中的每個字都與引數暫存器的內容並行比較。

與引數暫存器位匹配的字會在匹配暫存器中設定相應的位。匹配過程結束後,匹配暫存器中已設定的位表示其對應的字已匹配。

對於那些在匹配暫存器中對應的位已設定的字,可以透過順序訪問記憶體來高效讀取。

鍵暫存器支援掩碼,用於選擇引數字中的特定欄位或鍵。如果鍵暫存器包含全1,則整個引數將與每個記憶體字進行比較。

因此,只有那些在鍵暫存器中相應位置為1的引數位才會被比較。因此,鍵提供了一個掩碼或識別資料片段,它決定了如何建立對記憶體的引用。

下圖可以定義關聯記憶體中記憶體陣列和外部暫存器之間的關係。

陣列中的單元用字母C表示,有兩個下標。第一個下標表示字號,第二個下標表示字中的位位置。因此,單元Cij是字i中位j的單元。

引數暫存器中的位與陣列中第j列的所有位進行比較,條件是Kj = 1。這對於所有列j = 1, 2,..., n都適用。

如果引數的所有未掩碼位與字i中的位匹配,則匹配暫存器中相應的位Mi被設定為1。如果引數的一個或多個未掩碼位與該字不匹配,則Mi被清零。

更新於:2021年7月27日

24K+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告