學習計時:共xxx小時html 讀書:算法 代碼:編程 做業:數組 博客:參考資料:教材 參考博客: 閆佳歆http://www.cnblogs.com/20135202yjx/p/4907828.html緩存
|
1、學習目標安全 |
1. 瞭解常見的存儲技術(RAM、ROM、磁盤、固態硬盤等)
2. 理解局部性原理
3. 理解緩存思想
4. 理解局部性原理和緩存思想在存儲層次結構中的應用
5. 高速緩存的原理和應用
|
2、學習資源markdown |
1. 教材:第六章《存儲器層次結構》網絡 2. 課程資料:https://www.shiyanlou.com/courses/413 實驗6、七,課程邀請碼:W7FQKW4Y異步 3. 教材中代碼運行、思考一下,讀代碼的學習方法見這。性能
|
3、學習方法 |
1. 進度很重要:必須跟上每週的進度,閱讀,練習,問答,項目。我會認真對待每一位同窗,請你不要由於困難半途而廢。
2. 問答很重要:遇到知識難點請多多提問,這是你的權利更是您對本身負責的義務。問答到博客園討論小組:http://group.cnblogs.com/103791/
3. 實踐很重要:解決書中習題,實踐書中實例,完成每週項目,纔算真的消化了這本好書。經過實驗樓環境或本身安裝的虛擬機在實踐中進行學習
4. 實驗報告很重要:詳細記錄你完成項目任務的思路,得到老師點評和幫助本身複習。學習完成後在博客園中(http://www.cnblogs.com/)把學習過程經過博客發表,博客標題「信息安全系統設計基礎第七週學習總結」
|
4、學習任務 |
1. 閱讀教材,完成課後練習(書中有參考答案) 重點:6.2 6.3 6.4 6.8 6.9 6.10 6.11 6.12 6.13 2. 考覈:練習題把數據變換一下 3. 實驗:須要動手的到實驗樓中練習一下
|
五、後續學習預告(可選): |
複習前面Linux 命令,Linux 編程基礎,教材前七章內容 |
六、學習過程 |
1. 存儲技術
瞭解三種常見存儲技術:RAM/ROM/磁盤 隨機訪問存儲器:分爲靜態RAM和動態RAM。 靜態比動態更快。(1)靜態RAM(SRAM):將每一個位存儲在一個雙穩態的存儲器單元裏。 (2)動態RAM(SRAM):將每一個位存儲爲對一個電容的充電。電容很小,大約有30毫微微法拉。每一個單元由一個電容和一個訪問晶體管組成。 DRAM對干擾很是敏感。當電容的電壓被擾亂後(暴露在光線下),將永遠不會恢復。
2.存儲器模塊DRAM芯片包裝在存儲器模塊中,是插在主板的擴展槽上的。
3.加強的DRAM
ROM是非易失的,統稱爲只讀存儲器
4.閃存FLASH基於EEPROM,爲大量的電子設備提供快速而持久的非易失性存儲。 關於閃存的實際應用:ssd固態硬盤
固態硬盤(Solid State Drives),簡稱固盤,固態硬盤(Solid State Drive)用固態電子存儲芯片陣列而製成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態硬盤在接口的規範和定義、功能及使用方法上與普通硬盤的徹底相同,在產品外形和尺寸上也徹底與普通硬盤一致。被普遍應用於軍事、車載、工控、視頻監控、網絡監控、網絡終端、電力、醫療、航空、導航設備等領域。
對比傳統硬盤
固態硬盤的接口規範和定義、功能及使用方法上與普通硬盤幾近相同,外形和尺寸也基本與普通的 2.5英寸硬盤一致。
固態硬盤具備傳統機械硬盤不具有的快速讀寫、質量輕、能耗低以及體積小等特色,同時其劣勢也較爲明顯。儘管IDC認爲SSD已經進入存儲市場的主流行列,但其價格仍較爲昂貴,容量較低,一旦硬件損壞,數據較難恢復等;而且亦有人認爲固態硬盤的耐用性(壽命)相對較短。
影響固態硬盤性能的幾個因素主要是:主控芯片、NAND閃存介質和固件。在上述條件相同的狀況下,採用何種接口也可能會影響SSD的性能。
主流的接口是SATA(包括3Gb/s和6Gb/s兩種)接口,亦有PCIe 3.0接口的SSD問世。
因爲SSD與普通磁盤的設計及數據讀寫原理的不一樣,使得其內部的構造亦有很大的不一樣。通常而言,固態硬盤(SSD)的構造較爲簡單,而且也可拆開;因此咱們一般看到的有關SSD性能評測的文章之中大多附有SSD的內部拆卸圖。
而反觀普通的機械磁盤,其數據讀寫是靠盤片的高速旋轉所產生的氣流來托起磁頭,使得磁頭無限接近盤片,而又不接觸,並由步進電機來推進磁頭進行換道數據讀取。因此其內部構造相對較爲複雜,也較爲精密,通常狀況下不容許拆卸。一旦人爲拆卸,極有可能形成損害,磁盤沒法正常工做。這也是爲什麼在對磁盤進行評測時,咱們基本看不到關於磁盤拆卸圖的緣由。
5.磁盤存儲(1)磁盤構造
(2)磁盤容量——一個磁盤上能夠記錄的最大位數影響因素:
提升面密度便可提升容量。 現代大容量磁盤——多區記錄將柱面的集合分割成不相交的子集合(記錄區),每一個區包含一組連續的柱面; 一個區中的每一個柱面的每條磁道都有相同數量的扇區,這個扇區的數量由該區中最裏面的磁道所能包含的扇區數肯定 注意:軟盤還是老式方法,每條磁道的扇區數是常數 (3)計算公式:
6.固體磁盤固態硬盤是一種基於閃存的存儲技術【區別於旋轉磁盤:固態磁盤沒有移動的部分。 1.組成一個SSD包由一個或多個閃存芯片和閃存翻譯層組成: 閃存芯片——對應旋轉磁盤中機械驅動器 閃存翻譯層(硬件/固件設備)——對應磁盤控制器 2.讀/寫(1)順序讀寫速度至關,順序讀比順序寫稍微快一點 (2)隨機讀寫寫比讀慢一個數量級 緣由:底層閃存基本屬性決定。 一個閃存由B個塊的序列組成,每一個塊由P頁組成。一般頁的大小是512~4kb,塊是由32~128頁組成的,塊的大小爲16kb~512kb。 數據是以頁爲單位讀寫的。 優勢
缺點
存儲技術優點
7.局部性(1)對程序數據引用的局部性步長爲k的引用模式定義:一個連續變量中,每隔k個元素進行訪問,就被稱爲步長爲k的引用模式。 步長爲1的引用模式:就是順序訪問一個向量的每一個元素,有時也被稱爲順序引用模式,它是程序中 空間局部性常見和重要的來源。 通常來講,隨着步長增長,空間局部性降低。 多維數組(以二維數組爲例)int sumarraycols(int a[M][N]) { int i,j,sum = 0; for(i=0;i<N;i++) for(j=0;j<M;j++) sum += a[i][j]; return sum; } 和 int sumarraycols(int a[M][N]) { int i,j,sum = 0; for(j=0;j<M;j++) for(i=0;i<N;i++) sum += a[i][j]; return sum; } 上面的代碼是按照行優先順序執行的,下面的代碼是按照列優先順序執行的,而c數組在存儲器中是按照行順序存放的,因此第一個空間局部性良好,第二個空間局部性不好。
(2)取指令的局部性程序指令是存放在存儲器中的,CPU必須取出(讀出)這些指令。 可是代碼區別於程序數據的一個重要屬性是:在運行時它是不能被修改的。 (3)局部性小結量化評價一個程序中局部性的簡單原則:
8.存儲器層次結構//存儲器山即:每層存儲設備都是下一層的「緩存」
9.緩存高速緩存:是一個小而快速的存儲設備,它做爲存儲在更大、更慢的設備中的數據對象的緩衝區域。 緩存:使用高速緩存的過程稱爲緩存。 數據老是以塊大小爲傳送單元在第k層與第k+1層之間來回拷貝。任一對相鄰的層次之間塊大小是固定的,可是其餘的層次對之間能夠有不一樣的塊大小。 通常來講:層越低,塊越大。
10.高速緩存存儲器L1高速緩存:位於CPU寄存器文件和主存之間,訪問速度2-4個時鐘週期 L2高速緩存:位於L1高速緩存和主存之間,訪問速度10個時鐘週期 L3高速緩存:位於L2高速緩存和主存之間,訪問速度30或40個時鐘週期
11.組相聯高速緩存E路組相聯高速緩存:1<E<C/B (1)組選擇和直接的同樣。 (2)行匹配和字選擇形式是(key, value),用key做爲標記和有效位去匹配,匹配上了以後返回value。 重要思想:組中的任意一行均可以包含任何映射到這個組的存儲器塊,因此告訴緩存必須搜索組中的每一行。 判斷匹配的標準依舊是兩個充分必要條件: 1.有效 2.標記匹配 (3)行替換有空行替換空行,沒有空行,應用替換策略:
12.全相聯高速緩存(E=C/B)(1)組選擇只有一個組,默認組0,沒有索引位,地址只被劃分紅了一個標記和一個塊偏移。 (2)行匹配和字選擇同組相聯。 只適合作小的高速緩存。
13.寫①寫命中時,更新低一層中的拷貝的方法:(1)直寫,當即將w的高速緩存塊協會到緊接着的低一層中缺點:每次寫都會引發總線流量。 (2)寫回,只有當替換算法要驅逐更新過的塊時,才寫到緊接着的低一層中
②寫不命中的處理方法(1)寫分配---一般寫回對應加載相應的低一層中的塊到高速緩存中,而後更新這個高速緩存塊。 (2)非寫分配---一般直寫對應避開高速緩存,直接把這個字寫在低一層中。 |
7、遇到的問題及解決 |
1.對ssd固態硬盤的替換有興趣,打算給筆記本換一下。 解決:筆記本怎麼更換ssd固態硬盤_百度經驗http://jingyan.baidu.com/article/48b37f8d08128f1a6564886b.html
|
8、其餘 |
(提示:此處由學生填寫,靈感,領悟等) |