本週咱們瞭解了存儲器的層次結構,瞭解了存儲器的種類以及工做方式,並知道了程序代碼應該對高速緩存友好。如下是對本章內容的總結。html
一、隨機訪問寄存器:
隨機訪問存儲器可分爲靜態隨機訪問存儲器以及動態隨機訪問存儲器。靜態RAM速度快、成本高,一般用做高速緩存,動態RAM對干擾較爲敏感,速度較慢,成本較爲低廉,經常使用做系統內存。編程
二、磁盤存儲以及固態硬盤
磁盤由盤片組成,一個盤片有兩個面,一個面中又包含磁道、扇區以及間隙。一個磁盤的容量等於字節數乘以扇區數乘以磁道數乘以表面數乘以盤片數。固態硬盤由一個或多個閃存芯片和閃存翻譯層組成。數組
局部性是指程序傾向於引用鄰近於其餘最近引用過的數據項的數據項,或者最近引用過的數據項自己。這種傾向性,被稱爲局部性。局部性一般有兩種不一樣的形式:時間局部性和空間局部性。在一個具備良好時間局部性的程序中,被引用過一次的內存位置極可能在不遠的未來再被屢次引用。在一個具備良好空間局部性的程序中,若是一個內存位置被引用了一次,那麼程序極可能在不遠的未來引用附近的一個內存位置。局部性良好的程序能夠更加高效地利用存儲器。緩存
在存儲器的層次結構中,通常而言,從高層往低層走,存儲設備變得更慢、更便宜和更大,從高層到低層,訪問週期愈來愈長。對於第k層,它做爲第k+1層的緩存,第k層的緩存包含第k+1層的一個子集的副本。安全
高速緩存一般被組織爲一個有着S個高速緩存組的數組,每一個組包含E個高速緩存行,每行有B個字節數據塊組成。而每組又有一個有效位,用於標記該行是否有效,t個標記位,用於表示不一樣的行。學習
對高速緩存友好的代碼會讓最多見的狀況運行的塊,且會盡可能減少每一個循環內部的緩存不命中數量。因爲高速緩存讀取以及修改的特色,咱們在編寫代碼時儘可能確保對局部變量的反覆引用,且多使用步長爲1的引用模式。翻譯
多爲基礎概念,沒有遇到較大困難。設計
本週主要是理論內容,代碼量不大,運行過程當中並無碰到問題。調試
本章的內容主要介紹了存儲器組織結構,以及高速緩存的運行方式。雖然內容並非不少,難度也不是很大,但涉及了許多的基礎概念,若是基礎概念以及名詞不太清楚,那麼後面基於一些專有名詞的內容就會變得比較困難。htm
博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|
目標 | 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就接近了。