20145327 《資訊安全系統設計基礎》第七周學習總結
教材學習内容總結
6.1 節
了解三種常見存儲技術:RAM/ROM/磁盤;
RAM有SRAM和DRAM,特點和應用;
ROM有PROM,EPROM,E2PROM,FLASH;
磁盤是重點,涉及到後面的i/o和檔案系統,做好相關練習
磁盤結構:盤片、磁道、扇區、間隙、柱面;磁盤驅動器
磁盤容量
通路時間:尋道、旋轉、傳送
邏輯磁盤塊:這個很重要,記憶體可以看成位元組數組、磁盤可以看成塊數組
總線
資料總線、控制總線、位址總線
系統總線、存儲總線、I/O總線:p395圖要了解
讀寫事務:P389圖要能了解
随機通路存儲器分為兩類:靜态和動态。靜态RAM(即SRAM)比動态RAM(即DRAM)更快,但也貴得多。SRAM用來作為高速緩存存儲器,既可以在CPU晶片上,也可以在片下。DRAM用來作為主存以及圖形系統的幀緩沖區。
6.1.1随機通路存儲器
1)靜态RAM
a.SRAM将每個位存儲在一個雙穩态的存儲器單元裡。每個單元是用一個六半導體電路來實作的。可以無限期地保持在兩個不同的電壓配置或狀态之一。其他任何狀态都是不穩定的——從不穩定狀态開始,電路會迅速轉移到兩個穩定狀态中的一個。
b.原理類似于“倒轉的鐘擺”。
c.SRAM存儲器單元的雙穩态特性,隻要有電,他就會永遠保持它的值。
DRAM将每個位存儲為對一個電容的充電。DRAM存儲器單元對幹擾非常敏感。
6.1.2磁盤存儲
磁盤制造
每個表面是由一組稱為磁道(track)的同心圓組成;每個磁道被劃分成一組扇區(sector);每個扇區包含相等數量的資料位(通常是512位元組);這些資料編碼在扇區上的磁性材料中。扇區之間由一些間隙(gap)分隔開,這些間隙中不存在資料位。間隙存儲用來辨別扇區的格式化位。
磁盤容量清單項
磁盤容量是由以下技術因素決定的:
記錄密度 磁道密度 面密度
磁盤操作
(1)任何時刻,所有的讀寫頭都位于同一柱面上。
(2)在傳動臂末端的讀/寫頭在磁盤表面高度約0.1微米處一層薄薄的氣墊上飛翔,速度大約為80km/h。磁盤以扇區大小的塊來讀寫資料。
(3)對扇區的通路時間有三個主要部分組成:
1.尋道時間(seek time):為了讀取某個目标扇區的内容,傳動臂把讀/寫頭首先定位到包含目标扇區的磁道上。所需時間即為尋道時間,約等于最大旋轉時間。
2.旋轉時間(rotational latency):定位到期望的磁道後,驅動器等待目标扇區的第一個位旋轉到讀/寫頭下。 Tmax rotation = 1/最大旋轉數率 Tavg rotation = (1/2) × Tmax rotation
3.傳送時間(transfer time):Tavg transfer = (1/最大旋轉數率) × (1/每磁道的平均扇區數)
邏輯磁盤塊
現代磁盤構造複雜,有多個盤面,這些盤面上有不同的記錄區。為了對作業系統隐藏這樣的複雜性,現代磁盤将它們的構造簡化為一個b個扇區大小的邏輯塊的序列,編号為0,1,2,...b-1。磁盤中有一個小的硬體/固件裝置,稱為磁盤控制器,維護着邏輯塊号的和實際(實體)磁盤扇區之間的映射關系。
6.1.3固态硬碟
固态硬碟是一種基于閃存的存儲技術,在某些情況下是傳統旋轉磁盤的極有吸引力的替代産品。
它擁有更高速的存儲速度,更低的能耗,完全沒有噪音。
6.1.4存儲技術趨勢
從我們對存儲技術的讨論中,可以總結出幾個很重要的思想。
不同的存儲技術有不同的價格和性能折中。SRAM比DRAM快一點,而DRAM比磁盤要快很多。另一方面,快速存儲總是比慢速存儲要貴的。SRAM每位元組的造價比DRAM高,DRAM的造價又比磁盤高得多。
SSD位于DRAM和旋轉磁盤之間。
不同存儲技術的價格和性能屬性以截然不同的速率變化着。
DRAM和磁盤的性能滞後于CPU的性能。
6.2 節
局部性原理:時間局部性、空間局部性,有能力者了解一下p429最後一段“存儲器山”
資料引用局部性
取指令局部性
局部性的分類:
時間局部性
空間局部性
一些量化評價一個程式中局部性的簡單原則:
1.重複引用同一個變量的程式有良好的時間局部性。
2.對于具有步長為k的引用模式的程式,步長越小,空間局部性越好;在存儲器中以大步長跳來跳去的程式空間局部性會很差。
3.對于取指令來說,循環有很好的時間和空間局部性。循環體越小,循環疊代次數越多,局部性越好。
4.有良好局部性的程式比局部性差的程式運作得更快
6.3 節
存儲層次結構:系統觀(1+1>2)(舉一反三:對稱不對稱加密形成的混合加密系統,混合動力汽車...)
中心思想:每層儲存設備都是下一層的“緩存”
對照p408的表了解
6.3.1 存儲器層次結構中的緩存
高速緩存:一個小而快速的儲存設備,它作為存儲在更大、也更慢的裝置中的資料對象的緩沖區域
存儲器層次結構的中心思想:對于每個K,位于k層的更快更小的儲存設備作為位于k+1層的更大更慢的儲存設備的緩存。
緩存命中:當程式需要第k+1層的某個資料對象d時,它首先在目前存儲在第k層的一個塊中查找d,如果d剛好在第k層,則就是緩存命中
2.緩存不命中
如果第k層中沒有沒有緩存資料對象,就是緩存不命中。
3.緩存不命中的種類
一個空的緩存有時稱為冷緩存
6.3.2存儲器層次結構概念小結
概括來說,基于緩存的存儲器層次結構行之有效,是因為較慢的儲存設備比較快的儲存設備更便宜,還因為程式往往展示局部性:
利用時間局部性:由于時間局部性,同資料對象可能會被多次使用,一旦一個資料對象在第一次不命中時被拷貝到緩存中,我們就會期望後面該目标有一系列的通路命中。因為緩存比低層的儲存設備更快,對後面的命中的服務會比最開始的不命中快很多。
利用空間局部性:塊通常包含有多個資料對象。由于空間局部性,我們會期望後面對話中其他對家的通路能夠補償不命中後拷貝該塊的花費。
6.4節
6.4.1通用的高速緩存存儲器結構[^1]
一個計算機系統每個存儲位址有m位,形成M=2^m個不同的位址。
高速緩存被組織成一個有S=2s個高速緩存組的數組,每個組包含E個高速緩存行,每個行是由一個B=2b位元組的資料塊、一位有效位以及t=m-(b+s)個标記位組成,唯一辨別存儲在這個高速緩存行中的塊。
高速緩存的結構用元組(S,E,B,m)來描述,高速緩存的大小C = S * E * B。
位址: t位 s位 b位
标記 組索引 塊偏移
s個組索引位:一個無符号整數,說明字必須存儲在哪個組中。
t個标記位:組中的哪一行包含這個字。
b個塊偏移位:在B個位元組的資料塊中的字偏移。
6.4.2直接映射高速緩存
每個組隻有一行(E = 1)的高速緩存被稱為直接映射高速緩存(direct-mapped cache)。
高速緩存确定一個請求是否命中,然後抽取出被請求的字的過程,分為三步
組選擇 行比對 字抽取
直接映射高速緩存中的組選擇
如果把高速緩存看作一個關于組的一維數組,那麼這些組索引就是一個到這個數組的索引。如果我們把塊看作一個位元組的數組,而位元組偏移是這個數組的一個索引。
直接映射高速緩存中的行比對
當且僅當設定了有效位,而且告訴緩存行中的标記與w的位址中标記相比對時,這一行中包含w的一個拷貝。(有效位+标記)
直接映射高速緩存中的字選擇
塊偏移位提供了所需要的字的第一個位元組的偏移。
直接映射高速緩存中不命中時的行替換
綜合:運作中直接映射高速緩存
直接映射高速緩存中的沖突不命中
6.4.4全相連高速緩存
E = C/B
隻有一個組,這個組包含所有的高速緩存行,位址中沒有組索引位,位址隻被劃分成了一個标記和一個塊偏移。
因為全相聯高速緩存需要并行搜尋許多相比對的行,是以構造相對是困難的;是以隻适合做小的高速緩存;如虛拟存儲器系統中的TLB,它緩存頁表項。
全相聯高速緩存中的行比對和字選擇與組相聯高速緩存中的一樣
6.4.7高速緩存參數的性能影響
有許多名額來衡量高速緩存的性能:
不命中率:它是這樣計算的:不命中數量/引用數量
命中率:命中的存儲器引用比率
命中時間:命中時間的數量級是幾個時鐘周期
不命中處罰
6.5 編寫高速緩存友好的代碼
1.對局部變量的反複引用是好的,因為編譯器能夠将它們緩存在寄存器檔案中(時間局部性)。
2.步長為1的引用模式是好的,因為存儲器層次結構中所有層次上的緩存都是将資料存儲為連續的塊(空間局部性)。
教材學習中的問題和解決過程
這道練習題是如何分最好情況與随機情況
本周代碼托管截圖
代碼連結
學習進度條
代碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小時 |
第一周 | 100/100 | 2/2 | 10/10 |
第二周 | 100/200 | 1/3 | 20/30 |
第三周 | 80/280 | 1/4 | 15/45 |
第五周 | 100/380 | 1/5 | 15/60 |
第六周 | 100/480 | 1/6 | 15/75 |
第七周 | 20/500 | 1/7 | 15/90 |
參考資料
- 《深入了解計算機系統V2》學習指導