存儲(chǔ)器
隨機(jī)訪問存儲(chǔ)器
RAM(隨機(jī)存儲(chǔ)器)
SRAM
雙穩(wěn)態(tài)觸發(fā)器,有電就保持不變,干擾消除后時(shí)會(huì)恢復(fù)到穩(wěn)定值,晶體管多因此密集度低
DRAM
每個(gè)位存儲(chǔ)為對(duì)一個(gè)電容的充電,對(duì)干擾敏感,漏電所以需要刷新
刷新:
- 集中刷新:產(chǎn)生“死區(qū)”,2ms內(nèi)集中刷新每一行
- 分散刷新:沒有死區(qū)
- 異步刷新:結(jié)合前兩種方式,2ms內(nèi)刷新每一行
- 以行為單位,不需要“選片”,對(duì)CPU透明,一次刷新占用一個(gè)周期
SRAM & DRAM
都易失(關(guān)電后信息丟失)
ROM(只讀存儲(chǔ)器)(非易失性存儲(chǔ)器)
- MROM(掩模式ROM):無法更改內(nèi)容
- PROM(可編程ROM):熔絲,1次可編程
- EPROM(可擦寫可編程ROM):1000次
- EEPROM(電子可擦除PROM):100000次
- Flash:“晶體管浮體”保存電荷
- 閃存:基于EEPROM和Flash技術(shù),用MOS管的浮柵上有無電荷來存儲(chǔ)信息
- SSD(固態(tài)硬盤):基于閃存技術(shù),由存儲(chǔ)單元(閃存芯片)和控制單元(閃存翻譯層)組成
- U盤:基于閃存技術(shù),只是不如SSD容量大性能好
未格式化的硬盤容量要大于格式化后的實(shí)際容量
在固態(tài)硬盤中,數(shù)據(jù)存儲(chǔ)在閃存芯片中的塊(Block)中。當(dāng)需要修改數(shù)據(jù)時(shí),固態(tài)硬盤會(huì)將相應(yīng)的塊標(biāo)記為可擦除狀態(tài),并將數(shù)據(jù)寫入一個(gè)新的塊中。這是因?yàn)殚W存芯片的寫入操作是以塊為單位進(jìn)行的,無法直接在原來位置上修改部分?jǐn)?shù)據(jù)。
串行訪問存儲(chǔ)器
- 順序存取存儲(chǔ)器:磁帶
- 直接存取存儲(chǔ)器:磁盤、光盤
磁盤
構(gòu)造:
容量:
操作:
- 尋道時(shí)間:傳動(dòng)臂移動(dòng)到目標(biāo)磁道
- 旋轉(zhuǎn)時(shí)間:等待目標(biāo)扇區(qū)的第一個(gè)位旋轉(zhuǎn)到讀/寫頭下
- 傳送時(shí)間:讀寫的過程(與旋轉(zhuǎn)速率、每條磁道的扇區(qū)數(shù)有關(guān))
RAID(廉價(jià)磁盤冗余陣列)
RAID(Redundant Array of Independent Disks)是一種數(shù)據(jù)存儲(chǔ)技術(shù),通過將多個(gè)獨(dú)立的硬盤組合在一起,形成一個(gè)邏輯上的單一存儲(chǔ)單元,以提供更高的數(shù)據(jù)可靠性、性能或容量。通過數(shù)據(jù)分布和冗余來實(shí)現(xiàn)
柱面斜進(jìn)
性能指標(biāo)
多體模塊存儲(chǔ)器(提高訪存速度)
單體多字系統(tǒng)
指令和數(shù)據(jù)必須連續(xù)存放
在一個(gè)存取周期內(nèi),從同一地址取出4條 連續(xù) 指令,每隔1/4存取周期逐條送至CPU
多體并行系統(tǒng)
使不同的請(qǐng)求源同時(shí)訪問不同的體,并行工作
高位交叉編址(順序方式):總是先在一個(gè)模塊內(nèi)訪問,仍是順序存儲(chǔ)器
低位交叉編址(交叉方式):流水線方式并行存取
存儲(chǔ)器層次結(jié)構(gòu)
Cache(高速緩存存儲(chǔ)器)
由SRAM構(gòu)成 ,在CPU內(nèi),加速CPU訪存速度
Cache和主存的結(jié)構(gòu)原理以及訪問機(jī)制不同(主存按地址訪問,Cache是按內(nèi)容及地址訪問)
Cache與主存的映射由硬件自動(dòng)完成
CPU與Cache之間的數(shù)據(jù)交換以字為單位,Cache與主存之間的數(shù)據(jù)交換以Cache塊為單位
存儲(chǔ)層次
高速緩存的描述:(S,E,B,m) ,容量C=S X E X B
主存字塊標(biāo)記(tag)、組地址(索引)、字塊內(nèi)地址(偏移)
64KB數(shù)據(jù)cache、塊大小64B、共1024個(gè)塊、2路組相聯(lián);40位物理地址
塊內(nèi)偏移:64B=26,6位
索引:cache大小/(塊大小X相聯(lián)度)=64KB/(64BX2)=29,9位
tag:40-6-9=25位
m位物理地址被劃分為1個(gè)有效位、t個(gè)標(biāo)記位、s個(gè)組索引位、b個(gè)塊偏移位
- 有效位:該行是否包含有意義的信息
- 標(biāo)記位:唯一標(biāo)識(shí)存儲(chǔ)在這個(gè)行中的塊
映像規(guī)則
組選擇、行匹配、字抽取
- 直接映射:E=1,每組僅一行
- 組相聯(lián):1<E<C/B
- 全相聯(lián):E=C/B,僅一組(虛擬內(nèi)存系統(tǒng)的TLB)
查找算法
索引是地址的低g位(組數(shù)為G=2g),高位作為tag標(biāo)識(shí)
tag相同,并且有效位為1,即為找到
替換算法
隨機(jī)、先入先出、最近最少使用(LRU)、最不常使用(LFU)
寫策略
寫的塊不在cache中
- 按寫分配(寫時(shí)?。杭虞d較低一層的塊到cache,更新這個(gè)cache塊
- 不按寫分配(繞寫):直接寫到較低一層
寫的塊在cache中
- 寫直達(dá)法:既寫入cache,又寫入主存
- 寫回法:只寫到cache,當(dāng)cache被替換時(shí)才寫回主存,通過設(shè)置“臟位”(修改過,與主存不一致)
改進(jìn)cache性能
降低失效率
緩存不命中:
- 冷不命中/強(qiáng)制性不命中:緩存是空的,短暫事件
- 沖突不命中(抖動(dòng)):對(duì)象映射到同一個(gè)緩存塊,一直不命中,反復(fù)加載和驅(qū)逐相同高速緩存塊的組
- 容量不命中:緩存太小,不能處理這個(gè)工作集
調(diào)節(jié)cache塊大小
增加塊大小,減少強(qiáng)制不命中,但同時(shí)減少塊數(shù),增加沖突不命中,增加失效開銷
提高相聯(lián)度
降低失效率,但同時(shí)增加多路選擇器延遲增加命中時(shí)間
Victim Cache
位于cache和存儲(chǔ)器之間的又一級(jí)cache,采用命中率較高的全相聯(lián)策略,容量小而且僅僅在替換時(shí)發(fā)生作用。但同時(shí)多種命中時(shí)間會(huì)使CPU流水線的設(shè)計(jì)復(fù)雜化
硬件預(yù)取
指令和數(shù)據(jù)在處理器提出訪問請(qǐng)求之前預(yù)取,預(yù)取內(nèi)容可以直接放入cache或者訪問速度快于下一級(jí)存儲(chǔ)器的緩沖器
編譯器控制的預(yù)取
編譯時(shí)加入預(yù)取指令,使得指令和數(shù)據(jù)被用到之前發(fā)出預(yù)取請(qǐng)求
編譯器優(yōu)化
- 數(shù)組合并
- 內(nèi)外循環(huán)交換
- 循環(huán)融合
- 分塊
減少失效開銷
寫緩存、寫合并
讀失效優(yōu)先于寫
讀失效時(shí)檢查寫緩沖器的內(nèi)容,若沒有沖突并且存儲(chǔ)器可訪問,則可繼續(xù)處理讀失效
請(qǐng)求字處理
請(qǐng)求字:當(dāng)從存儲(chǔ)器向CPU調(diào)入一塊時(shí),塊中往往只有一個(gè)字是CPU立即需要的
當(dāng)CPU請(qǐng)求的字到達(dá)后,不等整個(gè)塊都調(diào)入cache,就把該字發(fā)給CPU并使處理器繼續(xù)運(yùn)行(盡早重啟動(dòng)、請(qǐng)求字優(yōu)先)
多級(jí)cache
第一級(jí)cache的速度影響CPU的時(shí)鐘頻率,第二級(jí)cache的速度只影響第一級(jí)cache的失效開銷
非阻塞cache
“失效下命中”:cache失效時(shí),不是完全拒絕CPU的訪問,而是能處理部分訪問,從而減少平均失效開銷
減少cache命中時(shí)間
容量小、結(jié)構(gòu)簡(jiǎn)單
虛擬cache
使用虛擬地址映射并訪問的cache
訪問流水化
提高cache帶寬
多體cache
不把cache當(dāng)作一個(gè)獨(dú)立的塊,而是劃分為獨(dú)立的幾個(gè)體,支持同時(shí)訪問。從而增大cache的帶寬
路預(yù)測(cè)
每一組cache中保存一些預(yù)測(cè)位,表示下次cache訪問本組應(yīng)該命中的cache塊
Trace Cache
L3組數(shù)=4MB / 16way / 每塊64B =212
L2組數(shù)=256KB / 4way /每塊64B =210,組地址10位,字塊內(nèi)地址64對(duì)應(yīng)6位,
因此,字塊標(biāo)記位數(shù)=47-10-6=31
L1組數(shù)=32KB / 8way /每塊64B =26,組地址6位
主存
提高主存性能
增加存儲(chǔ)器寬度
多體交叉
獨(dú)立存儲(chǔ)體
存儲(chǔ)器支持獨(dú)立的訪存請(qǐng)求
主存與CPU的連接
通過存儲(chǔ)器芯片拓展技術(shù),將多個(gè)芯片集成在一個(gè)內(nèi)存條
主存容量的拓展
- 位拓展法
8片8K X 1位的RAM芯片組成8K X 8位的存儲(chǔ)器
每片的數(shù)據(jù)線依次作為CPU數(shù)據(jù)線的一位
每片連接地址線A0—A12的方式相同,地址線連在一起
某一時(shí)刻選中所有芯片,片選線CS連在一起 - 字拓展法
4片16K X 8位的RAM芯片組成64K X 8位的存儲(chǔ)器
每片連接地址線和數(shù)據(jù)線的方式相同
數(shù)據(jù)線D0—D7連在一起,A15A14作為片選信號(hào)
同一時(shí)間只選中一個(gè)芯片 - 字位同時(shí)拓展法
連接
- 地址線:CPU地址線低位連接存儲(chǔ)芯片的地址線
- 數(shù)據(jù)線:擴(kuò)位存儲(chǔ)芯片,使與CPU相等
- 讀/寫命令線:高讀低寫,有時(shí)分開
- 片選線:剩余的高位地址與訪存控制信號(hào)MREQ(低電平有效)共同產(chǎn)生CS信號(hào)
線選法:尋址時(shí)地址線只能一位有效
譯碼片選法:二進(jìn)制編碼
存儲(chǔ)器的校驗(yàn)
漢明碼:
- 從1開始編號(hào)
- 在第1,2,4,8…位添加檢驗(yàn)位
- 第i個(gè)檢測(cè)位負(fù)責(zé)的數(shù)據(jù)位包括所有在二進(jìn)制表示中第i個(gè)位置為1的位
- 配偶原則:如C1應(yīng)使1,3,5,7…位中的1為偶數(shù)個(gè),即C1=b4⊕b3⊕b1
- P1=C1⊕b4⊕b3⊕b1
- 出錯(cuò)位:若P4P2P1=110,則第6位出錯(cuò)
- 欲傳遞的信息是正確的b4b3b2b1
局部性原理
時(shí)間局部性:該內(nèi)存位置本身將再被引用
空間局部性:附近的內(nèi)存位置將被引用文章來源:http://www.zghlxwxcb.cn/news/detail-440055.html
運(yùn)用局部性的設(shè)計(jì):文章來源地址http://www.zghlxwxcb.cn/news/detail-440055.html
- 緩存系統(tǒng):存儲(chǔ)經(jīng)常訪問的數(shù)據(jù),減少對(duì)主存儲(chǔ)器的訪問
- 虛擬內(nèi)存系統(tǒng):執(zhí)行過程中只會(huì)使用部分內(nèi)存頁面,這些頁面通常都是相鄰的
- 磁盤調(diào)度算法:FIFO、最短尋道時(shí)間優(yōu)先、電梯算法等,優(yōu)先訪問磁盤上相鄰的數(shù)據(jù)塊
- 分支預(yù)測(cè)技術(shù):分支通常重復(fù)執(zhí)行
到了這里,關(guān)于2.存儲(chǔ)器層次系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!