以下內(nèi)容參考自data whale 組隊(duì)學(xué)習(xí)
存儲器的層次結(jié)構(gòu)
* CPU?寄存器保存最常用的數(shù)據(jù)比搭。
* 靠近?CPU?的小的愧膀、 快速的高速緩存存儲器作為相對慢速的主存儲器中數(shù)據(jù)和指令的緩沖區(qū)域。
* 主存作為容量較大添谊、速度較慢的磁盤上數(shù)據(jù)的緩沖區(qū)域芋膘。
* 磁盤可以作為通過網(wǎng)絡(luò)中其他機(jī)器上數(shù)據(jù)的緩沖區(qū)域宁昭。
存儲器層次結(jié)構(gòu)的中心思想是瓷患,對于每個(gè)?k剔氏,位于?k?層的更快更小的存儲設(shè)備作為位于?k?+ 1?層更大更慢的存儲設(shè)備的緩存塑猖。
存儲不同區(qū)域的性能區(qū)別:
假如數(shù)據(jù)存儲在寄存器中,那么?0?個(gè)時(shí)鐘周期內(nèi)就能訪問到它們; 如果存儲在高速緩存中谈跛,則需要?4?~?75?個(gè)周 期; 如果存儲在主存中羊苟,需要上百個(gè)周期; 如果存儲在磁盤上,則需要約幾千萬個(gè)周期币旧。
性能區(qū)別的原因:存儲技術(shù)的不同
隨機(jī)訪問存儲器 RAM
有電的時(shí)候才能存取數(shù)據(jù)
* 靜態(tài)RAM (SRAM):快践险、貴、不受干擾(每個(gè)位存儲在一個(gè)雙穩(wěn)態(tài)(bistable)存儲器單元中吹菱,其中每個(gè)單元用一個(gè) 六晶體管電路來實(shí)現(xiàn))
* 動態(tài)RAM (DRAM):常用來作為主存以及圖形系統(tǒng)的幀緩沖區(qū)巍虫。每個(gè)位存儲為對一個(gè)電容的充電,存儲器單元由一個(gè)電容和一個(gè)訪問晶體管組成鳍刷。(干擾敏感占遥,干擾結(jié)束無法恢復(fù))
磁盤
能夠永久存儲大量的數(shù)據(jù)。不過输瓜,從磁盤上讀信息的時(shí)間為毫秒級瓦胎,比從?DRAM?讀數(shù)據(jù)慢了?10?萬倍,比從?SRAM?讀數(shù)據(jù)慢?100?萬倍尤揣。
由一個(gè)或多個(gè)疊放盤片和可以旋轉(zhuǎn)的主軸構(gòu)成(全稱磁盤驅(qū)動器:disk drive搔啊,又稱旋轉(zhuǎn)硬盤或者機(jī)械硬盤),通過讀寫頭(連接到一個(gè)傳動臂一端)來讀寫位北戏。
盤片:兩個(gè)表面负芋,同心圓狀的磁道(track)組成。每條磁道由存儲數(shù)據(jù)的扇區(qū) (sector)和標(biāo)識扇區(qū)的間隙(gap)構(gòu)成嗜愈。其中每個(gè)扇區(qū)包含相等的數(shù)據(jù)位(通常為512?字節(jié))旧蛾,而間隙僅用于標(biāo)識扇區(qū)的格式化位,并不存儲數(shù)據(jù)蠕嫁。
盤容量主要由以下因素決定: 1 ?記錄密度(recording density)(位/英寸):磁道一英寸的段中可以放入的位數(shù)锨天。2 ?磁道密度(track density)(道/英寸):從盤片中心出發(fā)半徑上一英寸的段內(nèi)可以有的磁道數(shù)。3 ?面密度(areal density)(位/平方英寸):記錄密度與磁道密度的乘積剃毒。
磁盤讀寫數(shù)據(jù)的時(shí)間主要受以下因素影響: 1 ?尋道時(shí)間:讀寫數(shù)據(jù)時(shí)病袄,傳動臂首先需要將讀寫頭定位到包含目標(biāo)扇區(qū)的磁道上搂赋,這個(gè)移動過程所花的時(shí)間稱為尋道時(shí)間。尋道時(shí)間主要依賴于讀寫頭的位置和傳動臂在盤面上移動的速度益缠。經(jīng)過測量厂镇,現(xiàn)代驅(qū)動器中的平均尋道時(shí)間通常為?3?~?9 ms。一次尋道的最大時(shí)間可高達(dá)?20 ms左刽。2 ?旋轉(zhuǎn)時(shí)間:當(dāng)讀寫頭移動到了目標(biāo)磁道上,就需要等待目標(biāo)扇區(qū)的第一個(gè)位旋轉(zhuǎn)到讀寫頭下酌媒。這個(gè)過程所花的時(shí)間稱為旋轉(zhuǎn)時(shí)間欠痴。旋轉(zhuǎn)時(shí)間主要依賴于讀寫頭到達(dá)目標(biāo)磁道時(shí)目標(biāo)扇區(qū)的位置以及磁盤的旋轉(zhuǎn)速度。最壞的情況下讀寫頭必須等待磁盤旋轉(zhuǎn)一圈秒咨。3 ?傳送時(shí)間:當(dāng)目標(biāo)扇區(qū)的第一個(gè)位位于讀寫頭下時(shí)喇辽,驅(qū)動器開始讀或?qū)懺撋葏^(qū)的內(nèi)容。一個(gè)扇區(qū)的傳送時(shí)間依賴于旋轉(zhuǎn)速度和每條磁道的扇區(qū)數(shù)目雨席。
固態(tài)硬盤
(Solid State Disk, SSD)菩咨,一種基于閃存的存儲技術(shù),在?SSD?中陡厘,一個(gè)閃存由?B?個(gè)塊組成抽米,每個(gè)塊又由?P?頁組成,擦除次數(shù)過多后糙置,一頁所屬的塊會因磨損而損壞云茸。
局部性
局部性,指的是在每次引用數(shù)據(jù)時(shí)傾向于引用最近引用過的數(shù)據(jù)項(xiàng)鄰近的數(shù)據(jù) 項(xiàng)谤饭,或最近引用過的數(shù)據(jù)項(xiàng)本身标捺。一個(gè)編寫良好的程序通常要求具有好的局部性。
局部性分為時(shí)間局部性和空間局部性揉抵。良好的時(shí)間局部性指的是被引用過一次的數(shù) 據(jù)項(xiàng)會在不遠(yuǎn)的將來再次被多次引用;良好的空間局部性指的是亡容,如果某個(gè)數(shù)據(jù)在某個(gè)位置被引用了一次,那么在不遠(yuǎn)的將來將引用它附近的內(nèi)存位置冤今。
步長為?1?的引用模式時(shí)空間局部性較好的引用模式闺兢。一般來說,步長越大辟汰,空間局部性就越差列敲。
通用高速緩存存儲器組織結(jié)構(gòu)
* 直接映射高速緩存:?根據(jù)每個(gè)組的高速緩存行數(shù)?E,高速緩存被分為不同的類帖汞。每個(gè)組只有一行的高速緩存被稱為直接映射高速緩存戴而。(操作步驟:1)組選擇;2)行匹配;3)字抽取)
*?組相聯(lián)高速緩存:每個(gè)組都有多于一個(gè)的高速緩存行。通常稱?1?< E < C/B?的高速緩存為?E?路組相聯(lián)高速緩存翩蘸。(行匹配策略更復(fù)雜)
*?全相聯(lián)高速緩存:由一個(gè)包含所有高速緩存行的組(E?=?C/B)組成所意。在全相聯(lián)高速 緩存中,由于只有一個(gè)組,不需要進(jìn)行組選擇扶踊。(行匹配和字選擇與組相聯(lián)高速緩存都是一樣的泄鹏。)