高速緩沖存儲(chǔ)器通常由高速存儲(chǔ)器、聯(lián)想存儲(chǔ)器、替換邏輯電路和相應(yīng)的控制線路組成。在有高速緩沖存儲(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)列中沒有空的位置時(shí),便淘汰該列中的某一組以騰出位置存放新調(diào)入的組,這稱為替換。確定替換的規(guī)則叫替換算法,常用的替換算法有:最近最少使用算法(LRU)、先進(jìn)先出法(FIFO)和隨機(jī)法(RAND)等。替換邏輯電路就是執(zhí)行這個(gè)功能的。另外,當(dāng)執(zhí)行寫主存儲(chǔ)器操作時(shí),為保持主存儲(chǔ)器和高速存儲(chǔ)器內(nèi)容的一致性,對(duì)命中和脫靶須分別處理。
高速緩沖存儲(chǔ)器存儲(chǔ)層次
主-輔存存儲(chǔ)層次由于計(jì)算機(jī)主存容量相對(duì)于程序員所需要的容量來說總是太小,程序與數(shù)據(jù)從輔存調(diào)入主存是由程序員自己安排的,程序員必須花費(fèi)很大精力和時(shí)間把大程序預(yù)先分成塊,確定好這些程序塊在輔存中的位置和裝入主存的地址,而且還要預(yù)先安排好程序運(yùn)行時(shí)各塊如何和何時(shí)調(diào)入調(diào)出,因此存在存儲(chǔ)空間的分配問題。
操作系統(tǒng)的形成和發(fā)展使得程序員盡可能擺脫主、輔存之間的地址定位,同時(shí)形成了支持這些功能的“輔助硬件”,通過軟件、硬件的結(jié)合,把主存和輔存統(tǒng)一成了一個(gè)整體,如圖所示。這時(shí),由主存、輔存形成了一個(gè)存儲(chǔ)層次,即存儲(chǔ)系統(tǒng)。從整體看,其速度接近于主存的速度,其容量則接近于輔存的容量,而每位的平均價(jià)格也接近于廉價(jià)的慢速的輔存平均價(jià)格。這種系統(tǒng)不斷發(fā)展和完善,就逐步形成了現(xiàn)在廣泛使用的虛擬存儲(chǔ)系統(tǒng)。
在系統(tǒng)中,應(yīng)用程序員可用機(jī)器指令地址碼對(duì)整個(gè)程序統(tǒng)一編址,如同程序員具有對(duì)應(yīng)這個(gè)地址碼寬度的全部虛存空間一樣。該空間可以比主存實(shí)際空間大得多,以致可以存得下整個(gè)程序。這種指令地址碼稱為虛地址(虛存地址、虛擬地址)或邏輯地址,其對(duì)應(yīng)的存儲(chǔ)容量稱為虛存容量或虛存空間;而把實(shí)際主存的地址稱為物理地址、實(shí)(存)地址,其對(duì)應(yīng)的存儲(chǔ)容量稱為主存容量、實(shí)存容量或?qū)崳ㄖ鳎┐婵臻g
高速緩沖存儲(chǔ)器在電腦硬件中的位置分析
固化在CPU中的高速二級(jí)緩存這個(gè)硬件是固化在CPU中的,你在外面是看不到的。CPU檔次的高低有相當(dāng)一部分依賴于其二級(jí)緩存的大小。
CPU內(nèi)
也就是所謂的L1Cache,L2Cache,L3Cache
L應(yīng)該是Level的縮寫吧
速度以L1最快,L3最慢
不過就算是L3,速度也比內(nèi)存快很多很多很多
購買的時(shí)候有關(guān)心這個(gè)啊
比如說到CPU緩存,一般指L2和L3Cache
因?yàn)長1是用來存儲(chǔ)短指令的,比較小,也沒必要做很大
但是不同公司的CPU按照架構(gòu)不同,對(duì)L2和L3依賴程度不一樣
比如Intel的CPU就是L2,L3越大,性能越好
而AMD的某些型號(hào)CPU就取消掉了L3,但是性能不見得比同級(jí)別Intel的來得差
自從酷睿時(shí)代開始以后,Intel的CPU就沒有那么依賴L2,L3了,但是在奔4時(shí)代以前,L2,L3對(duì)超長流水線架構(gòu)的CPU是很重要的。