讀書筆記:《深入理解計算機系統》 之 第六章 存儲器層次結構

計算機裏面的存儲有兩種,一種是我們常說的內存,一種則是外存例如硬盤。

 

隨機訪問存儲器也就是RAM,我們常說的內存,分爲靜態的(SRAM)和動態的(DRAM),靜態的一般用來作爲高速緩存存儲器,一般不會超過幾兆,而動態的作爲主存,一般有幾千兆。

內存屬於斷電後會失去存儲信息的存儲器,所以還存在着非易失性存儲器,在斷電後還能保存相關信息,也就是ROM,我們稱之爲只讀存儲器,閃存就是其中的一種。存儲在ROM設備中的程序稱爲固件,當一個計算機系統通電之後就會運行存儲在ROM中的固件,可以理解爲硬件內部的程序,例如聲卡有自己的固件,而我們電腦上需要裝驅動驅使聲卡起作用,驅動相當於系統與硬件的接口。

在計算機系統中,是通過總線連接主存和cpu來進行相關的數據的操作,總線相當於一個集成,部件連接着內存主線,CPU主線,還有其他的各種設備的主線,例如顯示器,鍵盤,鼠標等等。

 

除了內存存儲,還有磁盤存儲,而磁盤又分爲傳統硬盤和固態硬盤。

傳統的硬盤是通過旋轉磁盤進行尋址來查找數據的,有一個傳動臂在磁盤上的一層薄薄的氣墊上尋址,速度很快,80km/h,超出了我的想象,書裏有個比喻,相當於一個摩天大樓倒下後8秒內轉過一次地球。

而固態硬盤基於閃存技術,簡單的來說,它不需要移動,它是通過固件來進行訪問底層的存儲物理設備。

 

計算機的存儲方式對於我們的程序其實也有一定的影響,我們可以藉助計算機存儲的規則來使得我們的程序可以更快的查找到所需要的數據。

一個編寫良好的計算機程序具有良好的局部性,比如說時間局部性和空間局部性,這樣可以加快程序運行的速度。

例如,web瀏覽器將最近被引用的文檔放在本地磁盤上利用的就是時間局部性。

而空間局部性性,有一個經典的程序案例,下面兩個程序只是調換了i和j的位置,但是性能相差很大,因爲上面的具有良好的空間局部性,可以快速的按照內存存儲順序來查找數據,而下面的程序則需要有順序的跳躍查找,性能跟前面一個比可想而知。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章