當用虛地址訪問主存時,機器自動地把它經輔助軟件、硬件變換成主存實地址。查看這個地址所對應的單元內容是否已經裝入主存,如果在主存就進行訪問,如果不在主存內就經輔助軟件、硬件把它所在的那塊程序和數據由輔存調入主存,而后進行訪問。這些操作都不必由程序員來安排,也就是說,對應用程員員是透明的。 主-輔存層次解決了存儲器大容量要求和低成本之間的矛盾。 在速度方面,計算機的主存和CPU直保持了大約一個數量級的差距。顯然這個差距限制了CPU速度潛力的發(fā)揮。為了彌合這個差距,僅采用一種工藝的單一存儲器是行不通的,必須進一步從計算機系統(tǒng)結構和組織上去研究。設置高速緩沖存儲器(Cache)是解決存取速度的重要方法。在CPU和主存中間設置高速緩沖存儲器,構成高速緩存(Cache)-主存層次,要求Cache在速度上能跟得上CPU的要求。Cache-主存間的地址映象和調度吸取了比它較早出現的主-輔存存儲層次的技術,不同的是因其速度要求高,不是由軟、硬件結合而完全由硬件來實現。
地址映象是指某一數據在內存中的地址與在緩沖中的地址,兩者之間的對應關系。下面介紹三種地址映象的方式。1.全相聯方式地址映象規(guī)則:主存的任意一塊可以映象到Cache中的任意一塊(1) 主存與緩存分成相同大小的數據塊。(2) 主存的某一數據塊可以裝入緩存的任意一塊空間中。如果Cache的塊數為Cb,主存的塊數為Mb,則映象關系共有Cb×Mb種。目錄表存放在相關(聯)存儲器中,其中包括三部分:數據塊在主存的塊地址、存入緩存后的塊地址、及有效位(也稱裝入位)。由于是全相聯方式,因此,目錄表的容量應當與緩存的塊數相同。優(yōu)點:命中率比較高,Cache存儲空間利用率高。缺點:訪問相關存儲器時,每次都要與全部內容比較,速度低,成本高,因而應用少。2.直接相聯方式地址映象規(guī)則: 主存儲器中一塊只能映象到Cache的一個特定的塊中。
(1) 主存與緩存分成相同大小的數據塊。(2) 主存容量應是緩存容量的整數倍,將主存空間按緩存的容量分成區(qū),主存中每一區(qū)的塊數與緩存的總塊數相等。(3) 主存中某區(qū)的一塊存入緩存時只能存入緩存中塊號相同的位置。主存中各區(qū)內相同塊號的數據塊都可以分別調入緩存中塊號相同的地址中,但同時只能有一個區(qū)的塊存入緩存。由于主、緩存塊號相同,因此,目錄登記時,只記錄調入塊的區(qū)號即可。主、緩存塊號及塊內地址兩個字段完全相同。目錄表存放在高速小容量存儲器中,其中包括二部分:數據塊在主存的區(qū)號和有效位。目錄表的容量與緩存的塊數相同。優(yōu)點:地址映象方式簡單,數據訪問時,只需檢查區(qū)號是否相等即可,因而可以得到比較快的訪問速度,硬件設備簡單。缺點:替換操作頻繁,命中率比較低。3.組相聯映象方式組相聯的映象規(guī)則:(1) 主存和Cache按同樣大小劃分成塊。(2) 主存和Cache按同樣大小劃分成組。(3) 主存容量是緩存容量的整數倍,將主存空間按緩沖區(qū)的大小分成區(qū),主存中每一區(qū)的組數與緩存的組數相同。(4) 當主存的數據調入緩存時,主存與緩存的組號應相等,也就是各區(qū)中的某一塊只能存入緩存的同組號的空間內,但組內各塊地址之間則可以任意存放,即從主存的組到Cache的組之間采用直接映象方式;在兩個對應的組內部采用全相聯映象方式。主存地址與緩存地址的轉換有兩部分,組地址是按直接映象方式,按地址進行訪問,而塊地址是采用全相聯方式,按內容訪問。組相聯的地址轉換部件也是采用相關存儲器實現。優(yōu)點:塊的沖突概率比較低,塊的利用率大幅度提高,塊失效率明顯降低。缺點:實現難度和造價要比直接映象方式高。





