20145238 《信息安全系統設計基礎》第7周學習總結
教材學習內容總結
存儲器系統
: 存儲器系統是一個具有不同容量、成本和訪問時間的存儲設備的層次結構。
1、RAM隨機訪問存儲器
分類:SRAM(靜態)、DRAM(動態)
特點:存儲單元的內容可按需隨意取出或存入,這種存儲器在斷電時將丟失其存儲內容,即掉電失憶(常說的電腦內存就是RAM的)。
-(1)SRAM
特點:1.不需要刷新電路即能保存它內部存儲的數據。2.集成度較低,需要很大的體積。3.存取快。4.抗干擾。
應用:一般用來作為計算機中的高速緩沖存儲器
優點:速度快,不必配合內存刷新電路,可提高整體的工作效率。
缺點:集成度低,功耗較大,相同的容量體積較大,而且價格較高,少量用于關鍵性系統以提高效率
-(2)DRAM
特點:每個位存儲為對電容的充電;周期性的用讀出然后寫回的方式刷新存儲器每個位。
應用:一般用來作為計算機中的高速緩沖存儲器
2、ROM只讀存儲器
分類:PROM、EPROM、E2PROM、FLASH
特點:一次寫入,反復讀取,即非易失性。
-(1)PROM(可編程只讀存儲器)
只能被編程一次。每個存儲器單元有一種熔絲,只能用高電流熔斷一次。
-(2)EPROM(可擦寫可編程只讀存儲器)
可重復擦除和編程次數達到1000次。
-(3)EEPROM(E2PROM電子可擦除可編程只讀存儲器)
: 不需要獨立編程設備,可直接在印制電路卡上進行。
: 編程次數可達100000次。
-(4)FLASH(閃存)
: 非易失性的內存,基于EEPROM。
3、磁盤
(1)結構、容量
由一些盤片構成,盤片的正反面都能存儲數據,每個盤片分成許多的磁道,每個磁道分成一些扇區。(通常一個扇區為512B。)
表面:每個盤片有兩個表面
- 主軸:盤片中央,可旋轉
- 旋轉速率:通常5400~15000/min
- 磁道:同心圓們
- 扇區:每個磁道被劃分為一組扇區
- 數據位:每個扇區包含相等數量的~,通常為512字節
- 間隙:存儲用來標識扇區的格式化位
- 磁盤驅動器-磁盤-旋轉磁盤
柱面:所有盤片表面上到主軸中心的距離相等的磁道的集合。
磁盤的容量 = 每扇區大小每磁道扇區數磁道數 2 盤片數量
(2)磁盤操作
磁盤以扇區大小的塊來讀寫數據。對扇區的訪問時間有三個主要部分:尋道時間、旋轉時間、傳送時間
- 尋道時間:為了讀取某個目標扇區的內容,傳動臂首先將讀寫頭定位到包含目標扇區的磁道上。移動傳動臂所需的時間稱為尋道時間。
- 旋轉時間:最大旋轉延遲Tmax rotation=1/RPM * 60secs/1min。平均旋轉時間Tavg rotation的一半。
- 傳送時間:Tavg transfer=1/RPM * 1/(平均扇區數/磁道) * 60secs/1min
- 估計總訪問時間=Tavg seek+Tavg rotation+Tavg transfer。因為尋道時間和旋轉延遲大致相等,所以將尋道時間乘以2可簡單估計磁盤訪問時間。
(3)邏輯磁盤塊
- 目的是為了向操作系統隱蔽磁盤的結構復雜性。磁盤將其呈現為一個有B個扇區的邏輯塊的序列;磁盤中有一個固件設備——磁盤控制器,維護者邏輯酷愛號和實際磁盤扇區之間的映射關系。操作系統是以邏輯塊號為單位進行尋址操作的。
(4)總線
- (I/O)設備是通過I/O總線(例如intel的PCI)連接到CPU和主存的。雖然它比系統總線和存儲器總線要慢,但是可以容納種類眾多的第三方I/O設備。比如:通用串行總線;圖形卡;主機總線適配器。
(5)I/O端口
- CPU使用一種稱為存儲器映射I/O的技術來向I/O設備發出命令的。在使用其的系統中,地址空間中,有一塊地址是為與I/O設備通信保留的;叫做I/O端口。
4、存儲技術趨勢
1.不同的存儲技術有不同的價格和性能折中。
2.不同存儲技術的價格和性能屬性以截然不同的速率變化著。
3.DRAM和磁盤的性能滯后于CPU的性能。
局部性:
- 計算機程序傾向于引用鄰近于其他最近引用過的數據項的數據或其本身;這種傾向性,被稱為局部性原理。包括:時間局部性,空間局部性。有良好局部性的程序比局部性差的程序運行的更快。
- 體現:在硬件層,局部性原理允許計算機設計者通過引入稱為高速緩存器的小而快的存儲器來保存最近被引用的指令和數據項;在操作系統級,局部性原理允許系統使用主存作為虛擬地址空間最近被使用的磁盤塊。
- 重復引用一個變量的程序具有良好的時間局部性;對于取指令來說,循環具有良好的時間和空間局部性。循環體越小,循環迭代次數越多,局部性越好。
5、存儲層次結構
1.中心思想:每層存儲設備都是下一層的“緩存”。
2.任何時刻,第k層的緩存包含第k+1層塊的一個子集的拷貝。
結構
- 高速緩存是一個小而快速的存儲設備,它作為存儲在更大也更慢的設備中的數據對象的緩沖區域。使用高速緩存的過程稱為緩存。
- 存儲器層次結構的中心思想:對于每個k,位于k層的更快更小的存儲設備作為位于k+1層的更大更慢的存儲設備的緩存。
- 第k+1層的存儲器被劃分成連續的數據對象片,稱為塊。數據總是以塊大小為傳送單元,在第k層和第k+1層之間來回拷貝。雖然在層次結構中任何一對相鄰的層次之間塊的大小是固定的,但是其他層次對之間可以有不同的塊大小。
1. 緩存命中
:當程序需要第k+1層的某個數據對象d時,首先在當前存儲于第k層的一個塊中查找d,且d剛好緩存在第k層。
2. 緩存不命中
:當程序需要第k+1層的某個數據對象d時,首先在當前存儲于第k層的一個塊中查找d,且第k層沒有緩存數據對象d。
覆蓋一個現存的塊的過程稱為替換或驅逐這個塊,被驅逐的這個塊也稱為犧牲塊。決定該替換哪個塊由緩存的替換策略控制。
3. 緩存不命中的種類
:如果第k層的緩存為空,則對任何數據對象的訪問都會不命中。
- 冷緩存:空的緩存,此類不命中稱為強制性不命中(冷不命中)。通常是短暫的事件,不會在反復訪問存儲器使得緩存暖身之后的穩定狀態出現。
- 只要發生了不命中,第k層的緩存就必須執行某個放置策略,確定把它從第k+1層中取出的塊放在哪里。
- 當工作集的大小超過緩存的大小時,緩存會經歷容量不命中。
4.緩存管理
:存儲器層次結構的本質是每一層存儲設備都是較低一層的緩存,在每一層上,某種形式的邏輯必須管理緩存。即某個東西要將緩存劃分成塊,在不同的層之間傳送塊,判斷是命中還是不命中,并處理它們。
6、高速緩存存儲器
- 作用:連接CPU和主存
- 每個存儲器地址有m位,形成M=2^m個不同地址。這m位被劃分成t個標記位、s個組索引位和b個塊偏移位。
- 這樣一個機器的高速緩存被組織成S=2^s個高速緩存組的數組;每個數組包含E個高速緩存行;每行由一個B=2^b字節的數據塊、一個有效位(指明這個行是否包含有效信息)、t=m-(b+s)個標記位(唯一標識存儲在這個高速緩存行中的塊)組成
直接映射高速緩存:
- 高速緩存確定一個請求是否命中,然后抽搐被請求字的過程,分為:組選擇,行匹配,字抽取
- 組選擇:從w的地址中抽取組索引;這些位被解釋成對應于一個組號的無符號整數
- 行匹配:對于直接映射高速緩存,行匹配是容易而且快的;因為每個組只有一行
- 字匹配:塊偏移提供的是這個字的第一個字節是從哪個位置開始的
教材學習中的問題和解決過程
課本習題
6.2磁盤容量 = 512字節/扇區400扇區/磁道10 000磁道/表面2表面/盤片2盤片/磁盤 = 8 192 000 000 字節 = 8.192G
6.3訪問時間 = Taveseek+Taverotation+Tavetransfer = 8ms+0.51/15000RPM60secs.min1000ms/s+1/15000RPM1/50060secs/min1000ms/s=8ms+2ms+0.008ms=10.008ms
6.4(1)最好的情況即順序映射:T=Taveseek+Taverotation+2Tmaxrotation=5ms+3ms+26ms=20ms (2)非順序映射,讀每一塊都需要Taveseek+Tavgrotation=8ms。所以讀2000塊總時間為T = 8ms*2000=16000ms=16s
6.11在填充了之后,對于x和y數組,只有在引用第0個和第4個元素的時候發生不命中。因而命中率為75%
代碼調試中的問題和解決過程
本周主要學習存儲技術及其原理,對于高速緩存的一步一步的過程理解的還是有點不夠深入,還需要自己多動手一步一步模擬cpu執行讀取時發生了什么。
本周代碼托管
代碼托管鏈接
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 500/1000 | 3/12 | 22/120 | |
第六周 | 100/1300 | 2/15 | 30/150 | |
第七周 | 500/1000 | 3/18 | 22/180 |
參考資料
- 《深入理解計算機系統V2》學習指導
- ...