高速緩沖存儲(chǔ)器(Cache)其原始意義是指存取速度比一般隨機(jī)存取記憶體(RAM)來(lái)得快的一種RAM,一般而言它不像系統(tǒng)主記憶體那樣使用DRAM技術(shù),而使用昂貴但較快速的SRAM技術(shù),也有快取記憶體的名稱。
高速緩沖存儲(chǔ)器是存在于主存與CPU之間的一級(jí)存儲(chǔ)器, 由靜態(tài)存儲(chǔ)芯片(SRAM)組成,容量比較小但速度比主存高得多, 接近于CPU的速度。在計(jì)算機(jī)存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)中,是介于中央處理器和主存儲(chǔ)器之間的高速小容量存儲(chǔ)器。它和主存儲(chǔ)器一起構(gòu)成一級(jí)的存儲(chǔ)器。高速緩沖存儲(chǔ)器和主存儲(chǔ)器之間信息的調(diào)度和傳送是由硬件自動(dòng)進(jìn)行的。
高速緩沖存儲(chǔ)器最重要的技術(shù)指標(biāo)是它的命中率。
在計(jì)算機(jī)存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)中,介于中央處理器和主存儲(chǔ)器之間的高速小容量存儲(chǔ)器。它和主存儲(chǔ)器一起構(gòu)成一級(jí)的存儲(chǔ)器。高速緩沖存儲(chǔ)器和主存儲(chǔ)器之間信息的調(diào)度和傳送是由硬件自動(dòng)進(jìn)行的,程序員感覺(jué)不到高速緩沖存儲(chǔ)器的存在,因而它對(duì)程序員是透明的。
高速緩沖存儲(chǔ)器的作用
在計(jì)算機(jī)技術(shù)發(fā)展過(guò)程中,主存儲(chǔ)器存取速度一直比中央處理器操作速度慢得多,使中央處理器的高速處理能力不能充分發(fā)揮,整個(gè)計(jì)算機(jī)系統(tǒng)的工作效率受到影響。有很多方法可用來(lái)緩和中央處理器和主存儲(chǔ)器之間速度不匹配的矛盾,如采用多個(gè)通用寄存器、多存儲(chǔ)體交叉存取等,在存儲(chǔ)層次上采用高速緩沖存儲(chǔ)器也是常用的方法之一。很多大、中型計(jì)算機(jī)以及新近的一些小型機(jī)、微型機(jī)也都采用高速緩沖存儲(chǔ)器。
高速緩沖存儲(chǔ)器的容量一般只有主存儲(chǔ)器的幾百分之一,但它的存取速度能與中央處理器相匹配。根據(jù)程序局部性原理,正在使用的主存儲(chǔ)器某一單元鄰近的那些單元將被用到的可能性很大。因而,當(dāng)中央處理器存取主存儲(chǔ)器某一單元時(shí),計(jì)算機(jī)硬件就自動(dòng)地將包括該單元在內(nèi)的那一組單元內(nèi)容調(diào)入高速緩沖存儲(chǔ)器,中央處理器即將存取的主存儲(chǔ)器單元很可能就在剛剛調(diào)入到高速緩沖存儲(chǔ)器的那一組單元內(nèi)。于是,中央處理器就可以直接對(duì)高速緩沖存儲(chǔ)器進(jìn)行存取。在整個(gè)處理過(guò)程中,如果中央處理器絕大多數(shù)存取主存儲(chǔ)器的操作能為存取高速緩沖存儲(chǔ)器所代替,計(jì)算機(jī)系統(tǒng)處理速度就能顯著提高。
2
高速緩沖存儲(chǔ)器
高速緩沖存儲(chǔ)器的原理
高速緩沖存儲(chǔ)器通常由高速存儲(chǔ)器、聯(lián)想存儲(chǔ)器、替換邏輯電路和相應(yīng)的控制線路組成(見(jiàn)圖)。在有高速緩沖存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中,中央處理器存取主存儲(chǔ)器的地址劃分為行號(hào)、列號(hào)和組內(nèi)地址三個(gè)字段。于是,主存儲(chǔ)器就在邏輯上劃分為若干行;每行劃分為若干的存儲(chǔ)單元組;每組包含幾個(gè)或幾十個(gè)字。高速存儲(chǔ)器也相應(yīng)地劃分為行和列的存儲(chǔ)單元組。二者的列數(shù)相同,組的大小也相同,但高速存儲(chǔ)器的行數(shù)卻比主存儲(chǔ)器的行數(shù)少得多。
聯(lián)想存儲(chǔ)器用于地址聯(lián)想,有與高速存儲(chǔ)器相同行數(shù)和列數(shù)的存儲(chǔ)單元。當(dāng)主存儲(chǔ)器某一列某一行存儲(chǔ)單元組調(diào)入高速存儲(chǔ)器同一列某一空著的存儲(chǔ)單元組時(shí),與聯(lián)想存儲(chǔ)器對(duì)應(yīng)位置的存儲(chǔ)單元就記錄調(diào)入的存儲(chǔ)單元組在主存儲(chǔ)器中的行號(hào)。
當(dāng)中央處理器存取主存儲(chǔ)器時(shí),硬件首先自動(dòng)對(duì)存取地址的列號(hào)字段進(jìn)行譯碼,以便將聯(lián)想存儲(chǔ)器該列的全部行號(hào)與存取主存儲(chǔ)器地址的行號(hào)字段進(jìn)行比較:若有相同的,表明要存取的主存儲(chǔ)器單元已在高速存儲(chǔ)器中,稱為命中,硬件就將存取主存儲(chǔ)器的地址映射為高速存儲(chǔ)器的地址并執(zhí)行存取操作;若都不相同,表明該單元不在高速存儲(chǔ)器中,稱為脫靶,硬件將執(zhí)行存取主存儲(chǔ)器操作并自動(dòng)將該單元所在的那一主存儲(chǔ)器單元組調(diào)入高速存儲(chǔ)器相同列中空著的存儲(chǔ)單元組中,同時(shí)將該組在主存儲(chǔ)器中的行號(hào)存入聯(lián)想存儲(chǔ)器對(duì)應(yīng)位置的單元內(nèi)。
當(dāng)出現(xiàn)脫靶而高速存儲(chǔ)器對(duì)應(yīng)列中沒(méi)有空的位置時(shí),便淘汰該列中的某一組以騰出位置存放新調(diào)入的組,這稱為替換。確定替換的規(guī)則叫替換算法,常用的替換算法有:最近最少使用法(LRU)、先進(jìn)先出法(FIFO)和隨機(jī)法(RAND)等。替換邏輯電路就是執(zhí)行這個(gè)功能的。另外,當(dāng)執(zhí)行寫主存儲(chǔ)器操作時(shí),為保持主存儲(chǔ)器和高速存儲(chǔ)器內(nèi)容的一致性,對(duì)命中和脫靶須分別處理:寫操作命中時(shí),可采用寫直達(dá)法(即同時(shí)寫入主存儲(chǔ)器和高速存儲(chǔ)器)或?qū)懟胤ǎ粗粚懭敫咚俅鎯?chǔ)器并標(biāo)記該組修改過(guò)。
淘汰該組時(shí)須將內(nèi)容寫回主存儲(chǔ)器);寫操作脫靶時(shí),可采用寫分配法(即寫入注存儲(chǔ)器并將該組調(diào)入高速存儲(chǔ)器)或?qū)懖环峙浞ǎ粗粚懭胫鞔鎯?chǔ)器但不將該組調(diào)入高速存儲(chǔ)器)。
高速緩沖存儲(chǔ)器的性能常用命中率來(lái)衡量。影響命中率的因素是高速存儲(chǔ)器的容量、存儲(chǔ)單元組的大小、組數(shù)多少、地址聯(lián)想比較方法、替換算法、寫操作處理方法和程序特性等。
采用高速緩沖存儲(chǔ)器技術(shù)的計(jì)算機(jī)已相當(dāng)普遍。有的計(jì)算機(jī)還采用多個(gè)高速緩沖存儲(chǔ)器,如系統(tǒng)高速緩沖存儲(chǔ)器、指令高速緩沖存儲(chǔ)器和地址變換高速緩沖存儲(chǔ)器等,以提高系統(tǒng)性能。隨著主存儲(chǔ)器容量不斷增大,高速緩沖存儲(chǔ)器的容量也越來(lái)越大。
評(píng)論