存儲(chǔ)器系統(tǒng)可以簡(jiǎn)單的認(rèn)為CPU存放指令和數(shù)據(jù)的地方,但是現(xiàn)實(shí)中,它是一個(gè)具有不同容量,成本和訪問(wèn)時(shí)間的存儲(chǔ)設(shè)備的層次結(jié)構(gòu)。CPU寄存器保存著最常用的數(shù)據(jù),靠近CPU的小的快速的高速緩存存儲(chǔ)器作為存儲(chǔ)在相對(duì)慢速的主存儲(chǔ)器中數(shù)據(jù)和指令子集的緩沖區(qū)域。主存暫時(shí)存放存儲(chǔ)在較大的慢速磁盤上的數(shù)據(jù),而這些磁盤又作為存儲(chǔ)在通過(guò)網(wǎng)絡(luò)連接的其他機(jī)器的磁盤或磁帶上的數(shù)據(jù)的緩沖區(qū)域。
如果你的程序需要的數(shù)據(jù)時(shí)存儲(chǔ)在CPU寄存器中的,那么在執(zhí)行期間,在0個(gè)周期內(nèi),就能訪問(wèn)到它們。如果存儲(chǔ)在高速緩存中,需要1~10個(gè)周期,如果存儲(chǔ)在主存中,需要50~100個(gè)周期,如果存在磁盤上,需要大約20000000個(gè)周期!
存儲(chǔ)技術(shù)
隨機(jī)訪問(wèn)存儲(chǔ)器(random-access memory,RAM)分為兩類---靜態(tài)的和動(dòng)態(tài)的。靜態(tài)RAM,SRAM比動(dòng)態(tài)RAM,DRAM快,也貴。SRAM用來(lái)作為高速緩存存儲(chǔ)器,既可以在CPU芯片上,也可以不在CPU芯片上,DRAM用來(lái)作為主存以及圖形系統(tǒng)的幀緩沖區(qū)。
靜態(tài)RAM,SRAM
將每個(gè)位存儲(chǔ)在一個(gè)雙穩(wěn)態(tài)的存儲(chǔ)器單元里,每個(gè)單元是用一個(gè)六晶體管電路來(lái)實(shí)現(xiàn)的。由于SRAM存儲(chǔ)器單元的雙穩(wěn)態(tài)特性,只要有點(diǎn)電,它就會(huì)永久地保持它的值,即使有干擾,例如電子噪音,來(lái)擾亂電壓,當(dāng)干擾消除時(shí),電路就會(huì)恢復(fù)到穩(wěn)定值。
動(dòng)態(tài)RAM,DRAM
非易失性存儲(chǔ)器
如果斷電,SRAM和DRAM會(huì)丟失他們的信息,從這個(gè)意義上說(shuō),他們是易失的(volatile),另一方面,非易失性存儲(chǔ)器(nonvolatile memory)即使是在關(guān)電后,仍然保持著他們的信息,有很多種非失性存儲(chǔ)器,整體上都是稱為ROM(read-only memory,只讀存儲(chǔ)器)。
總線和訪問(wèn)主存
數(shù)據(jù)流通過(guò)稱為總線的共享電,在處理器和DRAM主存之間來(lái)來(lái)回回,每次CPU都和主存之間的數(shù)據(jù)傳送都是通過(guò)一系列步驟來(lái)完成的,這些步驟稱為總線事務(wù)(bus transaction)。讀事務(wù)(read trnsaction)從主存?zhèn)魉蛿?shù)據(jù)到CPU,寫事務(wù)(write transaction)從CPU傳送數(shù)據(jù)到主存。
一個(gè)指令:move A,%eax
這里,要求地址A的內(nèi)容,被加載到寄存器%eax中。CPU芯片上稱為總線接口的電路發(fā)起總線上的讀事務(wù)。讀事務(wù)時(shí)由三個(gè)步驟組成的:
首先CPU將地址A放到系統(tǒng)總線上,I/O連接器將信號(hào)傳遞到存儲(chǔ)器總線;
接下來(lái),主存儲(chǔ)器感覺(jué)到存儲(chǔ)器總線上的地址信號(hào),從存儲(chǔ)器總線讀地址,從DRAM取出數(shù)據(jù)字,并將數(shù)據(jù)寫到存儲(chǔ)器總線。
I/O橋接器將存儲(chǔ)器總線信號(hào)翻譯成系統(tǒng)總線信號(hào),然后傳遞到系統(tǒng)總線,
最后,CPU感覺(jué)到系統(tǒng)總線上的數(shù)據(jù),從總線上讀數(shù)據(jù),并將數(shù)據(jù)拷貝到寄存器%eax。
當(dāng)CPU執(zhí)行一個(gè)寫事務(wù)時(shí):
首先,CPU將地址放到系統(tǒng)總線上,存儲(chǔ)器從主存從主存總線讀出地址,并等待數(shù)據(jù)到達(dá)
接下來(lái),CPU將%eax中的數(shù)據(jù)字拷貝到系統(tǒng)總線
最后,主存從存儲(chǔ)器總線讀出數(shù)據(jù)字,然后再將這些存儲(chǔ)到DRAM中。
磁盤存儲(chǔ)
磁盤時(shí)為了保存大量數(shù)據(jù)的存儲(chǔ)設(shè)備,存儲(chǔ)數(shù)據(jù)的數(shù)量級(jí)可以大大幾十到幾百千兆字節(jié),而基于RAM的存儲(chǔ)器只能有幾百或者幾千兆字節(jié),不過(guò),從磁盤上讀取信息需要幾百毫秒,比從DRAM讀慢了10萬(wàn)倍,比從SRAM讀慢了100萬(wàn)倍。
磁盤構(gòu)造
磁盤時(shí)由盤片構(gòu)成的,每個(gè)盤片有兩面,表面覆蓋著磁性記錄材料,盤片中間,有一個(gè)可以旋轉(zhuǎn)地主軸,它使得盤片以固定的旋轉(zhuǎn)速率旋轉(zhuǎn),通常是5400~15000(轉(zhuǎn)每分鐘)。磁 盤通常包含一個(gè)或者多個(gè)這樣的盤片,且裝在一個(gè)密封的容器內(nèi)。
磁盤時(shí)由一個(gè)或者多個(gè)疊放在一起的盤片組成的,他們存放在一個(gè)密封的包裝內(nèi),如圖所示,整個(gè)裝置被稱為磁盤驅(qū)動(dòng)器(disk drive)。通常稱為磁盤。
術(shù)語(yǔ)柱面,用來(lái)描述多個(gè)盤片驅(qū)動(dòng)器的構(gòu)造,這里,柱面是所有盤片表面上到中心主軸的距離相等的磁道的集合。
磁盤容量
由以下三個(gè)因素決定:
記錄密度(recording density位/英寸):磁道一英寸的段中可以放入的位數(shù)
磁道密度(track density道/英寸):從盤片中心出發(fā)半徑為一英寸的段內(nèi)可以有的磁道數(shù)。
面密度(areal density,位/平方米):記錄密度與磁道密度的乘積。
磁盤操作:
磁盤用連接到一個(gè)傳動(dòng)臂(actuator arm)的讀/寫頭(read/write head)來(lái)讀寫存儲(chǔ)在磁性表面的位,驅(qū)動(dòng)器可以將讀/寫頭定位到任何期望的磁道上,讀/寫頭垂直排列,一直行動(dòng),在任何時(shí)刻,所有的讀/寫頭都位于同一個(gè)柱面上。
存儲(chǔ)器層次結(jié)構(gòu)
一般而言,從高層往底層走,存儲(chǔ)設(shè)備變得越來(lái)越大,越來(lái)越慢,越來(lái)越便宜,在最高層是一少量的快速CPU寄存器,CPU可以在一個(gè)始終周期內(nèi)訪問(wèn)他們,接下來(lái)是一個(gè)或多個(gè)小型/中型的機(jī)遇SRAM的高速緩存存儲(chǔ)器,可以在幾個(gè)時(shí)鐘周期內(nèi)訪問(wèn)他們。然后是一個(gè)大的基于DRAM的主存,可以在幾十或者幾百個(gè)周期內(nèi)訪問(wèn)他們,接下來(lái)是慢速但是容量很大的本地磁盤。最后,有些系統(tǒng)甚至包括了一層附加的遠(yuǎn)程服務(wù)器上的磁盤,要通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)他們
高速緩存存儲(chǔ)器
早期只有三層:CPU寄存器、主DRAM存儲(chǔ)器和磁盤存儲(chǔ)設(shè)備、不過(guò)由于CPU和主存之家逐漸增大的差距,系統(tǒng)設(shè)計(jì)者被迫在CPU寄存器堆和主存之間插入了一個(gè)小的SRAM存儲(chǔ)區(qū),稱為L1高速緩存,后來(lái)又插入了一個(gè)L2高速緩存。
聯(lián)系客服