程式設計師視角的計算機系統 1 5 緩衝問題

2021-10-20 16:28:47 字數 1290 閱讀 6139

程式設計師視角的計算機系統 1.5 緩衝問題

從這個簡單的例子上的乙個重要的課程是乙個系統花費了大量的時間來把資訊從乙個地方

移到另乙個地方。在你好程式中的機器指令剛開始時儲存在磁碟中。當程式被載入時,它

們被複製到記憶體中。當處理器執行程式時,指令從記憶體複製到處理器中。相似的是,資料

字串「hello,world」,剛開始時在磁碟上,被複製到記憶體中,然後被從記憶體中複製到顯示

器上。從乙個程式設計師的視角來看,這種複製是無用的,它減慢了程式的真正的工作。因此

對於系統的設計者的乙個主要的目標是把這些複製的操作執行得越快越好。

由於物理定律,更大的儲存裝置是比小的儲存裝置更慢的。裝置越快,成本越高。例如

在乙個經典的系統中,乙個磁碟驅動器可能比記憶體大1000倍,但是可能的是處理器從乙個磁碟讀取

乙個字的時間是從記憶體讀取乙個字的時間的1000萬倍。

相似的是,乙個經典的暫存器檔案僅儲存幾百個位元組的資訊,記憶體可以儲存十億以上的位元組。然而

處理器能讀取暫存器檔案的速度比從記憶體中讀取快100倍。甚至更糟的是,正如半導體技術隨時間

的發展,這個處理器與記憶體的鴻溝持續變大了。讓處理器執行得更快比讓記憶體執行得更快,是更容易的,

更便宜的。

為了處理處理器與記憶體的鴻溝,系統設計者使用了更小的,更快的儲存裝置,叫做緩衝記憶體(或者簡單地稱為緩衝)

它用來作為臨時性資訊儲存區,在近期的未來,處理器是需要它的。在圖1。8中顯示了乙個經典的系統中的緩衝記憶體。

在處理器的晶元中,乙個l1緩衝儲存上萬的位元組,並且能夠被讀取,以接近暫存器檔案的速度。乙個更大的l2緩衝

能儲存十萬甚至是百萬個位元組的資料,以特定的匯流排連線到處理器。對於處理器來說,讀取l2比讀取l1,可能花5倍

的時間,但這仍然比讀取記憶體快5到10倍。l1與l2的緩衝以一種硬體技術來實現,這種硬體技術是靜態隨機讀取記憶體

(sram)更新的更強有力的系統甚至有了**的緩衝:l1,l2,l3。緩衝背後的思想是利用區域性性,能夠讓乙個非常

大的記憶體和乙個非常快的讀取速度的效果都能得到。區域性性是指對於程式來說,有乙個區域性的區域讀取**和資料

的很大的可能性。通過設定緩衝區來臨時性的儲存經常讀取的資料,我們能使用速度快的緩衝,來執行絕大部分原

屬於記憶體的操作。

在本書中,最重要的課程之一是,關注緩衝儲存的應用程式設計師能夠探索緩衝,以乙個神奇的次序來提高他們的程式

的效能。在第6章中,你能學到更多的更詳細的關於這些重要裝置的知識和如何使用它們。

程式設計師視角的計算機系統 2 1 2 字

程式設計師視角的計算機系統 2.1.2 字 每個計算機都有乙個字的大小,顯示出整數和指標資料的名義上的大小。因為乙個虛擬位址 被這樣的乙個字進行編碼,字的大小確定的最重要的系統引數是虛擬位址空間的大小。也就是 對於乙個機器而言,乙個w位長的字大小,虛擬位址的範圍是從0到2 w 1,程式能讀取的最多 ...

程式設計師視角的計算機系統 第一章 計算機系統 之旅

程式設計師視角的計算機系統 第一章 計算機系統 之旅 乙個計算機系統由硬體和系統軟體組成,硬體和軟體一起工作來執行應用程式。系統的特定的實現隨時間的流逝而改變,但是它的本質性的概念不會改變。所有的計算機系統都有相似的硬體和軟體元件來執行相似的功能。這本書為程式設計師 而寫,程式設計師們需要在他們的工...

程式設計師視角的計算機系統 2 2 整數的表示

程式設計師視角的計算機系統 2.2 整數的表示 在這一部分中,我們描述用位元來編碼整數的兩種不同的方式。乙個僅能夠表示非負的整數。另乙個能夠表示所有的整數。我們將看到它們的數學性質與它們的機器級別的實現是高度相關 的。我們也調查研究了在適合不同的長度的表示時的擴充套件與收縮乙個編碼過的整數的效果。2...