日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4-存储器

發(fā)布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4-存储器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【README】

1.本文總結(jié)自B站 《計算機(jī)組成原理(哈工大劉宏偉)》的視頻講解,非常棒,墻裂推薦;


【1】概述

【1.1】存儲器分類

1)按存儲介質(zhì)分類

  • 1,?? ?半導(dǎo)體存儲器,分為 TTL, MOS 兩種; (易失)
  • 2,?? ?磁表面存儲器,非易失;
  • 3,?? ?磁芯存儲器,非易失;
  • 4,?? ?光盤存儲器,非易失;

2)按存取方式分類

3)按在計算機(jī)的作用分類?

  • Flash memory :閃存,閃速存儲器(斷電時不丟失數(shù)據(jù));
  • 高速緩沖存儲器-cache: 使用靜態(tài)ram做的,速度比主存快; 放在cpu 與 主存之間的;

【1.2】 存儲器層次結(jié)構(gòu)

【1.2.1】存儲器的3個主要特性關(guān)系

特性包括: 速度,容量,價格/位;??

寄存器:不僅僅是CPU中有寄存器,IO端口中也有寄存器;
用戶需求: 高速度,大容量,低價格;


【1.2.2】緩存-主存層次 與 主存-輔存層次

采用軟硬件,相結(jié)合的方法,把主存與輔存構(gòu)成一個整體;

  • 緩存主要解決主存低速度的問題;
  • 輔存主要解決主存的容量小的問題

【2】 主存儲器

【2.1】 主存儲器概述

【2.1.1】主存的基本組成

讀寫控制電路:

  • 如果是寫入,則把MDR的數(shù)據(jù)寫入到存儲體中MAR指定地址上;
  • 如果是讀出,則把存儲體上MAR地址的數(shù)據(jù)讀出到MDR寄存器;

【2.1.2】主存和cpu的聯(lián)系

控制信號,由控制器發(fā)出; 是讀還是寫?
CPU與主存之間的通信, 主要有3種信號

  • 信號1,數(shù)據(jù)信號;
  • 信號2,地址信號;
  • 信號3,控制信號;

【2.1.3】主存中存儲單元地址的分配

24根地址線,字節(jié)尋址是 2^24=16M字節(jié);

  • 字長為16位,即1字=2字節(jié);則按照機(jī)器字尋址 8M字(Word)
  • 字長為32位,即1字=4字節(jié);則按照機(jī)器字尋址 4M字(Word)

【2.1.4】主存技術(shù)指標(biāo)

存取時間 = 存入或取出數(shù)據(jù)所需時間;


【2.2】 半導(dǎo)體存儲芯片簡介

【2.2.1】半導(dǎo)體存儲芯片的基本結(jié)構(gòu)?

存儲矩陣: 存儲了0 1 信號(信息); 有多個存儲單元;
步驟如下:

  • 第1步:地址線傳送地址信號給存儲器;
  • 第2步:譯碼驅(qū)動程序 翻譯地址并選擇存儲單元;完成讀寫操作;
  • 第3步:把數(shù)據(jù)傳給讀寫電路,讀寫電路傳給數(shù)據(jù)線;

其他設(shè)備:

  • 片選線: 表示給定地址在哪幾個存儲器中可以尋址
  • 讀寫控制線:給出讀信號,還是寫信號;

地址線 10條 數(shù)據(jù)線4條, 芯片容量 1K*4 ;

  • 地址線10條表示可以尋址1k 個存儲單元;
  • 數(shù)據(jù)線4條表示每個存儲單元存儲4個bit;

1.2)片選信號線

?片選線信號: CS(chip select) 或? CE (chip enable)

片選信號線的作用:

一片 16K * 1bit 的存儲芯片的含義: 該芯片有16K個存儲單元,每個單元1個bit;把8個芯片組合(縱向擴(kuò)展)為1個大芯片,那大芯片的每個單元存儲空間為8個bit,即1個字節(jié);

存儲芯片擴(kuò)展方式:

  • 縱向擴(kuò)展:8片 16K*1位的存儲芯片可以擴(kuò)展到 16K*8bit 的 存儲芯片2 ;
  • 橫向擴(kuò)展:32片 16K*1位的存儲芯片,可以組成 4片 16K*8bit的存儲芯片3;

片選信號線作用:

  • 由上文知,存儲器(主存或內(nèi)存)不是由一個芯片構(gòu)成的,它是由多個小芯片組合(擴(kuò)展)而成的;
  • 正因為存儲器是把多個小芯片組合起來構(gòu)成的;在存取時,我們需要用片選信號選擇參與芯片擴(kuò)展的一組或一簇小芯片,如選中某組8個,則讀取這8個小芯片的bit位才能構(gòu)成一個字節(jié),多選或漏選一個小芯片,讀取的數(shù)據(jù)都是不正確的;

?【2.2.2】半導(dǎo)體存儲芯片的譯碼驅(qū)動方式

1)線選法:

地址線4條,可以尋址16個存儲單元;
數(shù)據(jù)線8條,每個存儲單元存儲8個bit;
存儲容量是 16*8 bit ;
那如果有20根地址線,則容量是1M*8bit,要尋址1M個單元,用單個譯碼器,則存儲器中地址譯碼器的線就有1M=100w條;(可以理解為單個地址譯碼器是一維空間尋址)

線選法缺點:成本非常高,不適用

2)重合法

地址譯碼器有2個,分為行地址譯碼器X,列地址譯碼器Y;

那如果有20根地址線,則容量是1M*8,那么存儲器中有2個譯碼器,分為行譯碼器1k條線,列譯碼器1k條線;共計2k條線;(相比于線選法,重合法更加高效,因為使用線選法的地址譯碼器需要1M根線);

可以理解為重合法是二維空間尋址

如 存儲存儲的設(shè)計結(jié)構(gòu)是 32 * 32 個;

則x,y軸地址譯碼器分別用 32根和32根線就可以定位二維空間中的某個存儲單元了;

而如果是一維線選法的話,地址譯碼器需要 32*32 根線;


【2.3】 隨機(jī)存取存儲器-RAM-random access memory

【2.3.1】 靜態(tài)RAM-SRAM

2)靜態(tài)ram舉例:

10個地址線,可以尋址1k個存儲單元;
4個數(shù)據(jù)線,每個存儲單元可以存儲4個bit;

補充:如何實現(xiàn)選一次四列

行地址0,則選中第0行;
列地址0,則選中4組中每組的第0列上的bit輸出;即(黃色部分);


?【2.3.2】動態(tài)RAM-DRAM

0)保存0和1的原理:

  • 電容當(dāng)中有電荷,則為1,否則為0;
  • 采用電容進(jìn)行表示;

1)動態(tài)ram基本電路

動態(tài)ram 4116芯片讀原理:

?

豎方向是行, 橫方向是列;
在讀放大器的左側(cè)那一行, 電容有電表示0,沒有電表示1;
讀放大器的右側(cè)正好相反;
讀放大器是一個蹺蹺板電路,左邊與右邊的電平相反;


4)動態(tài)刷新ram

為啥要刷新?

電容非常小,很容易漏電
在一段時間內(nèi),如果不對電容充電,則長時間,電容就會漏電,信息丟失;

動態(tài)ram刷新有3種方式:(集中刷新,分散刷新,異步刷新)
?

4.1) 集中刷新; 2ms內(nèi),對128行地址線進(jìn)行刷新;
2ms內(nèi)有4000個存取周期, 前面 3872個周期可以共cpu操作,后面128個周期需要用于刷新電容;也就是說? 0.5us*128=64us; 64個微秒內(nèi),動態(tài)ram是不能使用的

?

?4.2)分散刷新

一半時間用于存取或讀寫數(shù)據(jù),另一半時間用來刷新 動態(tài)ram

4.3)異步刷新(集中刷新與分散刷新相結(jié)合)


【2.3.3】動態(tài)ram與靜態(tài)ram的比較(重要*)

?單元電路:

  • 動態(tài)ram 每個單元電路,包括1個晶體管,1個電容; 簡單;
  • 靜態(tài)ram每個單元電路,包括6個晶體管; 復(fù)雜;

作用:

  • 動態(tài)ram 主要用于主存(速度稍慢,慢于靜態(tài)ram);
  • 靜態(tài)ram 主要用于緩存(速度快);


?【2.4】只讀存儲器rom(了解)


【2.5】 存儲器與cpu的連接(本章重點內(nèi)容*)

【2.5.1】存儲器容量擴(kuò)展?

  • bit位擴(kuò)展;(存儲單元的存儲容量擴(kuò)展)
  • 存儲字?jǐn)U展;(存儲單元的數(shù)量擴(kuò)展)
  • bit位,存儲字同時擴(kuò)展;

問題: 存儲器10根地址線,共計1k個存儲單元;每個單元存儲4個bit位(4位數(shù)據(jù));如何構(gòu)成 1k*8位 的存儲器
解決方法: 用2個 1k*4bit 的芯片;

1)bit位擴(kuò)展(增加單個存儲單元的存儲容量)

解決方法:把2個小芯片組合為1個大芯片來用; 同時做讀寫操作;2個小芯片同時工作

2)字?jǐn)U展(增加存儲字或存儲單元的數(shù)量)

?2個芯片不能同時工作
11條地址線;如果第11根A10等于0 選擇第1個芯片;如果A10等于1選擇第2個芯片;(高位bit A10 作為片選信號

3)字,位同時擴(kuò)展

存儲空間分配到4個存儲器當(dāng)中,每個存儲器兩個芯片(2個芯片為一組),共計8個芯片;

  • 000000000000~001111111111? = 1k個地址; 給第1組芯片;
  • 010000000000~011111111111 =? 1k個地址;給第2組芯片;
  • 100000000000~101111111111 =? 1k個地址;給第3組芯片;
  • 110000000000~111111111111 =? 1k個地址;給第4組芯片;

A11A10 作為片選信號; 取值為 00, 01, 10, 11 ;

片選信號作用(經(jīng)過片選譯碼器譯碼):選擇一組或一簇小芯片進(jìn)行尋址;


【2.5.2】存儲器與cpu的連接

1)地址線的連接:把低位bit作為地址信號;高位bit作為片選信號;
4)片選線的連接:對存儲器的訪問信號要在片選線進(jìn)行體現(xiàn); 每個存儲器芯片,都有一個地址范圍;(是訪問存儲器還是IO設(shè)備,根據(jù)地址范圍來判斷)
5)合理選擇存儲芯片

  • 是選擇 rom 還是ram? Rom存儲系統(tǒng)程序;ram存儲用戶程序
  • 是選擇2個1k*4還是1個1k*8;
  • 芯片數(shù)量竟可能少,片選邏輯盡可能簡單

【例】cpu與存儲器的連接圖

MREQ(低電平有效)信號線一定要用(不要忘記,非常重要);
只有當(dāng) MREQ是低電平時,訪問的地址才在存儲器范圍中;否則訪問的是IO設(shè)備;
ROM的數(shù)據(jù)線是單向的; RAM的數(shù)據(jù)線是雙向的;(上圖是重點)


【2.6】主存儲器校驗(跳過)


【2.7】提高訪存速度的措施

Cpu訪問速度從1985到2002年,每年提升 52%;
但內(nèi)存每10年訪問速度提高50%;
Cpu再快,cpu執(zhí)行的指令來自于內(nèi)存;數(shù)據(jù)來自于內(nèi)存;結(jié)果需要保存到內(nèi)存中;
如果cpu再快,但內(nèi)存慢,計算機(jī)整體運行速度也提不上來

提高訪存速度的方法有:

  • 單體多字系統(tǒng);
  • 多體并行系統(tǒng);

【2.7.1】單體多字系統(tǒng) (方法1)

增加存儲器的帶寬,即每次存取多個存儲單元(增加了單次存取的bit數(shù));
CPU一次能夠處理的bit(機(jī)器字長)為16bit;但存儲器字長可以設(shè)置為64位;
Cpu 可以一次性取出64位放入數(shù)據(jù)寄存器以便cpu處理;
問題是: 如果需要的數(shù)據(jù)不是連續(xù)存儲在64位數(shù)據(jù); 則以上方案不很好


?【2.7.2】多體并行系統(tǒng)(方法2)

多體并行系統(tǒng):包括4個存儲體; 前2位(高位)作為存儲器選擇信號;后4位是存儲體內(nèi)部地址編碼;

有兩種方式

  • 高位交叉:體號在前,體內(nèi)地址在后(在每個存儲器內(nèi)部編址);
  • 低位交叉: 編碼方式不一樣; 體內(nèi)地址在前,體號在后(使用所有存儲器進(jìn)行編址);

1) 高位交叉 :各個體并行工作

高位交叉的問題: 程序指令是連續(xù)存儲的;如果那樣的話,就只能對某一個存儲器進(jìn)行訪問,無法對其他3個存儲器進(jìn)行訪問(因為高位交叉編址不連續(xù),是跳躍的); 造成某一個存儲體非常繁忙,其他閑;
適合存儲器容量擴(kuò)展,但不適合提高存儲器帶寬

2)低位交叉: 各個體輪流編址

?2.1)低位交叉特點:(在不改變存取周期的情況下,增加存儲器帶寬)

存取周期為T; 總線周期為t(濤);把存取周期與總線周期區(qū)別開;

高位交叉用于存儲器容量擴(kuò)展;
低位交叉用于存儲器帶寬擴(kuò)展



【2.7.3】高性能存儲芯片


【3】高速緩沖存儲器(高速緩存) 單獨一篇文章;

?為啥引入緩存?
因為cpu的速度再快,但存儲器速度跟不上,那cpu整體速度也起不來,因為cpu需要和存儲器或內(nèi)存交互;所以需要在 cpu 和 主存之間添加一種速度比主存快,與寄存器接近的存儲介質(zhì),即高速緩沖存儲器;

計算機(jī)中高速緩存的訪問時間如下圖:

計算機(jī)中高速緩存的物理位置如下圖:


【3.1】概述

【3.1.1】問題提出

引入高速緩存可以提高cpu執(zhí)行速度的理論依據(jù)是局部性原理:

  • 時間局部性,當(dāng)前正在使用的指令和數(shù)據(jù),還將來還會被使用到;
  • 空間局部性: 當(dāng)前正在使用的指令和數(shù)據(jù),其相鄰地址的指令和數(shù)據(jù)也可能會被使用到;

【3.1.2】cache工作原理

主存有M塊; 緩存有C塊; M遠(yuǎn)遠(yuǎn)大于C;
緩存中:標(biāo)記存儲的是主存塊號;

命中率與cache容量和塊長有關(guān):
塊太小,則cpu從某緩存塊中沒有取幾條指令,則又會去訪問內(nèi)存;
塊長:在一個存取周期中從主存調(diào)出的信息長度; 如1個塊=4個存儲字,存儲字=存儲單元;

效率e的最大值為100%,全部訪問緩存;
效率e的最小值為 tc/tm ;



【3.1.3】cache基本結(jié)構(gòu)

【3.1.4】cache讀寫操作(非常重要,涉及數(shù)據(jù)一致性問題)

1.有些操作只在cache寫,沒有在主存寫; 所以寫操作一定要注意cache與主存的數(shù)據(jù)一致性問題(進(jìn)一步的,我們可以擴(kuò)展到 jvm的內(nèi)存可見性問題)
2.Cache寫操作:

  • 2.1寫直達(dá)法: 寫操作的數(shù)據(jù),既要寫入cache也要寫入主存;
  • 2.2 寫回法: 寫操作的數(shù)據(jù),只寫入cache,不寫入主存; 當(dāng)cache數(shù)據(jù)被替換時才寫回主存;(cache與主存的數(shù)據(jù)一致性問題)

如果多個cpu,對同一個內(nèi)存塊都有自己的cache副本,那多個cache副本就存在數(shù)據(jù)一致性問題; 這是并行計算機(jī)體系結(jié)構(gòu)中一個主要問題



【3.1.5】cache改進(jìn)

離cpu比較近的cache,直接就把cache做在cpu中,作為集成cache(片內(nèi)cache);
Cpu有多個核,每個核都有cache,多個核有共享cache;

統(tǒng)一緩存和分立緩存:

  • 統(tǒng)一緩存: 指令和數(shù)據(jù)放在同一個cache;
  • 分立緩存: 指令和數(shù)據(jù)放在不同的cache;

【3.2】cache與主存地址映射

Cache與主存的地址映射指的是: 主存當(dāng)中的任意一塊,如果要加載到cache的話, 可以加載到cache當(dāng)中的那些塊;根據(jù)映射方法不同,有3種映射,如下:

  • 直接映射;
  • 全相聯(lián)映射;
  • 組相聯(lián)映射;

【3.2.1】直接映射

?

主存儲器的第0塊(或第2^c塊),只能放到cache的第0塊;
主存儲器的第1塊,只能放到cache的第1塊; … …? 這種方法就稱為直接映射;
問題: cache的利用率不高


【3.2.2】全相聯(lián)映射

任何一個塊要從主存儲器調(diào)入cache,只要cache還有空閑塊,就可以調(diào)入;
則主存塊被調(diào)用 cache,那它可以被調(diào)入cache的任意一個塊中;

優(yōu)點:

  • cache利用率高了;

缺點:

  • 這會造成判斷是否cache命中的電路或邏輯非常復(fù)雜,因為需要一個一個去比較;

【3.2.3】組相聯(lián)映射(推薦*)

先把cache分為塊; 多個塊被分為一個組;如2個塊一個組;
把主存儲器分為塊;多個塊被分為一個組;如2個塊一個區(qū);
cache組的個數(shù),與主存儲器區(qū)的個數(shù),是相同的;

cache存放規(guī)則: 主存中0區(qū)的任意一塊,可以放入cache0組的任意一塊;
主存1區(qū),對應(yīng)cache1組;
……
某一主存塊J按模Q(cache組的個數(shù))映射到緩存的第i組的任意一塊;

【小結(jié)1】cache與主存映射的優(yōu)缺點

  • 直接相聯(lián):不靈活,cache利用率低,但速度快;
  • 全相聯(lián): 成本高,速度慢,但cache利用率比較高;
  • 組相聯(lián): 速度較快,利用率較高;

【小結(jié)2】cache與主存映射的3種方式應(yīng)用場景

  • 靠近cpu的cache采用直接相聯(lián);
  • 中間層次的cache采用組相聯(lián);
  • 距離cpu最遠(yuǎn)的cache采用全相聯(lián)方式;

【3.2.3】替換算法

【問題】

  • 當(dāng)cache不夠用了, 選擇哪一個cache塊從cache退出;

?


【4】輔助存儲器 (了解)

【4.1】概述

?

1.?? ?記錄密度

  • 道密度 Dt:硬盤單位長度有多少個磁道;
  • 位密度:Db,單位長度的磁盤保存了多少二進(jìn)制信息;

2.存儲容量 = n*k*s ;盤面 * 每個盤面磁道數(shù) * 每個磁道的二進(jìn)制信息; 磁盤每個磁道是一個同心圓,越往外,位密度越低;
3.平均尋址時間=尋道時間+等待時間;

  • 尋道時間:讀寫頭在硬盤表面進(jìn)行移動找到指定磁道的時間;
  • 等待時間: 找到磁道以后,讀寫頭停止,磁盤旋轉(zhuǎn),等待給定扇區(qū)旋轉(zhuǎn)到磁頭下面的時間;

【4.2】 磁記錄原理與記錄方式


【4.3】 硬磁盤存儲器

?【4.3.1】磁盤驅(qū)動器

【4.3.2】磁盤控制器


【4.4】 軟盤

?


【4.5】 光盤存儲器

?

總結(jié)

以上是生活随笔為你收集整理的4-存储器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。