2019-2020-1 20175320 《信息安全系統設計基礎》第七週學習總結

2019-2020-1 20175320 《信息安全系統設計基礎》第七週學習總結

1、教材學習內容總結

本週咱們瞭解了存儲器的層次結構,瞭解了存儲器的種類以及工做方式,並知道了程序代碼應該對高速緩存友好。如下是對本章內容的總結。html

存儲技術

一、隨機訪問寄存器:
隨機訪問存儲器可分爲靜態隨機訪問存儲器以及動態隨機訪問存儲器。靜態RAM速度快、成本高,一般用做高速緩存,動態RAM對干擾較爲敏感,速度較慢,成本較爲低廉,經常使用做系統內存。編程

  • 靜態RAM將每一個位存儲在一個雙穩態的存儲器單元中,只要有電,它就會永遠地保持它的值。DRAM將每一個位存儲爲對一個電容的充電,電容要週期性地進行刷新,且只要有供電,SRAM就會保持不變。
  • DRAM中有d個超單元,每一個超單元都由w個DRAM組成,而d個超單元的組織爲r行c列的組織。
  • DRAM中的行地址與列地址使用相同的DRAM地址引腳,且是先將行的內容複製到內部行緩衝區,而後哦再根據列地址找到相應的列。這樣雖然減小了地址引腳的數量,可是增長了訪問時間。

二、磁盤存儲以及固態硬盤
磁盤由盤片組成,一個盤片有兩個面,一個面中又包含磁道、扇區以及間隙。一個磁盤的容量等於字節數乘以扇區數乘以磁道數乘以表面數乘以盤片數。固態硬盤由一個或多個閃存芯片和閃存翻譯層組成。數組

  • 對扇區的訪問時間主要有三個部分:尋到時間、旋轉時間和傳送時間
  • 磁盤中有一個小的硬件/固件設備,稱爲磁盤控制器,維護着邏輯塊號和實際磁盤扇區之間的映射關係
  • 閃存由塊組成,一個塊由頁組成,塊在寫的時候會磨損,且固態硬盤的讀取速度快於寫的速度

局部性

局部性是指程序傾向於引用鄰近於其餘最近引用過的數據項的數據項,或者最近引用過的數據項自己。這種傾向性,被稱爲局部性。局部性一般有兩種不一樣的形式:時間局部性和空間局部性。在一個具備良好時間局部性的程序中,被引用過一次的內存位置極可能在不遠的未來再被屢次引用。在一個具備良好空間局部性的程序中,若是一個內存位置被引用了一次,那麼程序極可能在不遠的未來引用附近的一個內存位置。局部性良好的程序能夠更加高效地利用存儲器。緩存

存儲器層次結構

在存儲器的層次結構中,通常而言,從高層往低層走,存儲設備變得更慢、更便宜和更大,從高層到低層,訪問週期愈來愈長。對於第k層,它做爲第k+1層的緩存,第k層的緩存包含第k+1層的一個子集的副本。安全

  • 當程序須要第k+1層的某個數據對象d時,它首先在當前存儲在第k層的一個塊中查找d。若是d恰好緩存在第k層中,那麼這就是緩存命中。
  • 當第k層中沒有緩存數據對象d,那麼就是緩存不命中,當發生緩存不命中時,第k層的緩存從第k+1層緩存中取出包含d的那個塊,若是第k層的緩存已經滿了,可能就會覆蓋現存的一個塊。不命中又分爲冷不命中、衝突不命中以及容量不命中,咱們在編程時首要考慮的就是代碼會不會使得高速緩存屢次發生衝突不命中。

高速緩存存儲器

高速緩存一般被組織爲一個有着S個高速緩存組的數組,每一個組包含E個高速緩存行,每行有B個字節數據塊組成。而每組又有一個有效位,用於標記該行是否有效,t個標記位,用於表示不一樣的行。學習

  • 高速緩存的大小C可表示爲C=S* E * B
  • m位地址可找到對應的高速緩存,其中有t位標記,用於表示每組不一樣的行,s位組索引,;用於表示不一樣的組,b位塊偏移,用於找到所需內容的開始位置。
  • 而在實際使用中,高速緩存可分爲直接映射高速緩存、組相聯高速緩存以及全相聯高速緩存。直接映射高速緩存即一個組中只有一個行,組相聯高速緩存即一個組中能夠有多個行,全相聯高速緩存即只有一個組,一個組中有多個行。
  • 高速緩存有直寫與寫回兩種狀況,而不命中又有寫分配與非寫分配兩種。直寫多對應非寫分配,寫回可能是寫分配的
  • 高速緩存塊的大小不宜太大或過小,太大傳送時間比較長,過短空間局部性很差,相連度過高會增長命中時間,過低會提升衝突不命中的狀況

編寫高速緩存友好的代碼

對高速緩存友好的代碼會讓最多見的狀況運行的塊,且會盡可能減少每一個循環內部的緩存不命中數量。因爲高速緩存讀取以及修改的特色,咱們在編寫代碼時儘可能確保對局部變量的反覆引用,且多使用步長爲1的引用模式。翻譯

2、教材學習中的問題和解決過程

多爲基礎概念,沒有遇到較大困難。設計

3、代碼調試中的問題和解決過程

本週主要是理論內容,代碼量不大,運行過程當中並無碰到問題。調試

4、代碼託管

5、上週考試錯題總結

6、其餘(感悟、思考等,可選)

本章的內容主要介紹了存儲器組織結構,以及高速緩存的運行方式。雖然內容並非不少,難度也不是很大,但涉及了許多的基礎概念,若是基礎概念以及名詞不太清楚,那麼後面基於一些專有名詞的內容就會變得比較困難。htm

7、學習進度條

博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 30篇 400小時
第三週 1/1 13/13
第四周 1/2 22/35
第五週 1/3 30/65
第六週 1/4 25/90
第七週 1/5 22/112

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。 耗時估計的公式 :Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法

參考資料

相關文章
相關標籤/搜索