在電腦存儲系統的層次結構中,介於中央處理器和主記憶體之間的高速小容量記憶體。它和主記憶體一起構成一級的記憶體。高速緩衝記憶體和主記憶體之間資訊的調度和傳送是由硬體自動進行的,程式師感覺不到高速緩衝記憶體的存在,因而它對程式師是透明的。

  作用 在電腦技術發展過程中,主記憶體存取速度一直比中央處理器操作速度慢得多,使中央處理器的高速處理能力不能充分發揮,整個電腦系統的工作效率受受到影響。有很多方法可用來緩和中央處理器和主存儲器之間速度不匹配的矛盾,如采用多個通用寄存器、多存儲體交叉存取等,在存儲層次上采用高速緩沖存儲器也是常用的方法之一。很多大、中型計算機以及新近的一些小型機、微型機也都采用高速緩沖存儲器。

  高速緩沖存儲器的容量一般隻有主存儲器的幾百分之一,但它的存取速度能與中央處理器相匹配。根據程序局部性原理,正在使用的主存儲器某一單元鄰近的那些單元將被用到的可能性很大。因而,當中央處理器存取主存儲器某一單元時,計算機硬件就自動地將包括該單元在內的那一組單元內容調入高速緩沖存儲器,中央處理器即將存取的主存儲器單元很可能就在剛剛調入到高速緩沖存儲器的那一組單元內。於是,中央處理器就可以直接對高速緩沖存儲器進行存取。在整個處理過程中,如果中央處理器絕大多數存取主存儲器的操作能為存取高速緩沖存儲器所代替,計算機系統處理速度就能顯著提高。

  原理 高速緩沖存儲器通常由高速存儲器、聯想存儲器、替換邏輯電路和相應的控制線路組成(見圖)。在有高速緩沖存儲器的計算機系統中,中央處理器存取主存儲器的地址劃分為行號、列號和組內地址三個字段。於是,主存儲器就在邏輯上劃分為若幹行;每行劃分為若幹的存儲單元組;每組包含幾個或幾十個字。高速存儲器也相應地劃分為行和列的存儲單元組。二者的列數相同,組的大小也相同,但高速存儲器的行數卻比主存儲器的行數少得多。聯想存儲器用於地址聯想,有與高速存儲器相同行數和列數的存儲單元。當主存儲器某一列某一行存儲單元組調入高速存儲器同一列某一空著的存儲單元組時,與聯想存儲器對應位置的存儲單元就記錄調入的存儲單元組在主存儲器中的行號。當中央處理器存取主存儲器時,硬件首先自動對存取地址的列號字段進行譯碼,以便將聯想存儲器該列的全部行號與存取主存儲器地址的行號字段進行比較:若有相同的,表明要存取的主存儲器單元已在高速存儲器中,稱為命中,硬件就將存取主存儲器的地址映射為高速存儲器的地址並執行存取操作;若都不相同,表明該單元不在高速存儲器中,稱為脫靶,硬件將執行存取主存儲器操作並自動將該單元所在的那一主存儲器單元組調入高速存儲器相同列中空著的存儲單元組中,同時將該組在主存儲器中的行號存入聯想存儲器對應位置的單元內。

  當出現脫靶而高速存儲器對應列中沒有空的位置時,便淘汰該列中的某一組以騰出位置存放新調入的組,這稱為替換。確定替換的規則叫替換算法,常用的替換算法有:最近最少使用法(LRU)、先進先出法(FIFO)和隨機法(RAND)等。替換邏輯電路就是執行這個功能的。另外,當執行寫主存儲器操作時,為保持主存儲器和高速存儲器內容的一致性,對命中和脫靶須分別處理:①寫操作命中時,可采用寫直達法(即同時寫入主存儲器和高速存儲器)或寫回法(即隻寫入高速存儲器並標記該組修改過。淘汰該組時須將內容寫回主存儲器);②寫操作脫靶時,可采用寫分配法(即寫入註存儲器並將該組調入高速存儲器)或寫不分配法(即隻寫入主存儲器但不將該組調入高速存儲器)。

  高速緩沖存儲器的性能常用命中率來衡量。影響命中率的因素是高速存儲器的容量、存儲單元組的大小、組數多少、地址聯想比較方法、替換算法、寫操作處理方法和程序特性等。

  采用高速緩沖存儲器技術的計算機已相當普遍。有的計算機還采用多個高速緩沖存儲器,如系統高速緩沖存儲器、指令高速緩沖存儲器和地址變換高速緩沖存儲器等,以提高系統性能。隨著主存儲器容量不斷增大,高速緩沖存儲器的容量也越來越大。

  

參考書目

 蘇東莊:《計算機系統結構》,國防工業出版社,北京,1981。