高速緩衝存儲器檢視原始碼討論檢視歷史
高速緩衝存儲器 |
高速緩衝存儲器(Cache)其原始意義是指存取速度比一般隨機存取記憶體(RAM)來得快的一種RAM,一般而言它不像系統主記憶體那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術,也有快取記憶體的名稱。高速緩衝存儲器是存在於主存與CPU之間的一級存儲器, 由靜態存儲芯片(SRAM)組成,容量比較小但速度比主存高得多, 接近於CPU的速度。在計算機存儲系統的層次結構中,是介於中央處理器和主存儲器之間的高速小容量存儲器。它和主存儲器一起構成一級的存儲器。高速緩衝存儲器和主存儲器之間信息的調度和傳送是由硬件自動進行的。高速緩衝存儲器最重要的技術指標是它的命中率。
簡介
高速緩衝存儲器通常由高速存儲器、聯想存儲器、替換邏輯電路和相應的控制線路組成。在有高速緩衝存儲器的計算機系統中,中央處理器存取主存儲器的地址劃分為行號、列號和組內地址三個字段。於是,主存儲器就在邏輯上劃分為若干行;每行劃分為若干的存儲單元組;每組包含幾個或幾十個字。高速存儲器也相應地劃分為行和列的存儲單元組。二者的列數相同,組的大小也相同,但高速存儲器的行數卻比主存儲器的行數少得多。聯想存儲器用於地址聯想,有與高速存儲器相同行數和列數的存儲單元。當主存儲器某一列某一行存儲單元組調入高速存儲器同一列某一空着的存儲單元組時,與聯想存儲器對應位置的存儲單元就記錄調入的存儲單元組在主存儲器中的行號。當中央處理器存取主存儲器時,硬件首先自動對存取地址的列號字段進行譯碼,以便將聯想存儲器該列的全部行號與存取主存儲器地址的行號字段進行比較:若有相同的,表明要存取的主存儲器單元已在高速存儲器中,稱為命中,硬件就將存取主存儲器的地址映射為高速存儲器的地址並執行存取操作;若都不相同,表明該單元不在高速存儲器中,稱為脫靶,硬件將執行存取主存儲器操作並自動將該單元所在的那一主存儲器單元組調入高速存儲器相同列中空着的存儲單元組中,同時將該組在主存儲器中的行號存入聯想存儲器對應位置的單元內。
評價
主-輔存存儲層次 由於計算機主存容量相對於程序員所需要的容量來說總是太小,程序與數據從輔存調入主存是由程序員自己安排的,程序員必須花費很大精力和時間把大程序預先分成塊,確定好這些程序塊在輔存中的位置和裝入主存的地址,而且還要預先安排好程序運行時各塊如何和何時調入調出,因此存在存儲空間的分配問題。操作系統的形成和發展使得程序員儘可能擺脫主、輔存之間的地址定位,同時形成了支持這些功能的「輔助硬件」,通過軟件、硬件的結合,把主存和輔存統一成了一個整體,如圖所示。這時,由主存、輔存形成了一個存儲層次,即存儲系統。從整體看,其速度接近於主存的速度,其容量則接近於輔存的容量,而每位的平均價格也接近於廉價的慢速的輔存平均價格。這種系統不斷發展和完善,就逐步形成了現在廣泛使用的虛擬存儲系統。在系統中,應用程序員可用機器指令地址碼對整個程序統一編址,如同程序員具有對應這個地址碼寬度的全部虛存空間一樣。該空間可以比主存實際空間大得多,以致可以存得下整個程序。這種指令地址碼稱為虛地址(虛存地址、虛擬地址)或邏輯地址,其對應的存儲容量稱為虛存容量或虛存空間;而把實際主存的地址稱為物理地址、實(存)地址,其對應的存儲容量稱為主存容量、實存容量或實(主)存空間。[1]