1. 程式人生 > >深入理解計算機系統(1.2)------存儲設備

深入理解計算機系統(1.2)------存儲設備

高速 計算 想法 知識 1-1 運用 文件 字符 設備

  上一章我們講解了hello world 程序在計算機系統中是如何運行的。 hello 程序的機器指令最初是存放在磁盤上的,當程序加載時,他們被復制到主存;當處理器運行程序的時候,指令又從主存復制到處理器。相似的,數據串"Hello World" 初始時在磁盤上,然後復制到主存,最後從主存上復制到顯示設備。

  從程序員的角度來看,上面的復制就是開銷,減緩了程序的真正工作。因此如何將這些復制操作盡快完成則是系統設計者的一個主要目標。

1、從磁盤加載可執行文件到主存

  技術分享

2、將輸出字符串從內存寫到顯示器

  技術分享

  

3、高速緩存存儲器

  那麽如何減少這種由數據復制所引起的開銷呢?

  根據機械原理,較大的存儲設備比 較小的存儲設備運行的慢,而快速設備的造價遠高於同類的低速設備。類似的,一個典型的寄存器文件只存儲幾百字節的信息,而主存裏可以存放幾十億字節。然而處理器從寄存器文件中讀數據的速度要比從主存中讀取幾乎快100倍。而且隨著半導體技術的進步,這兩者差距還在加大。因此加快處理器的運行速度比加快主存的運行速度要容易和便宜的多。針對這種處理器和主存之間的差異,系統設計者采用了更小、更快的存儲設備,也就是高速緩存存儲器(簡稱高速緩存),作為暫時的集結區域,用來存放處理器近期可能會需要的信息,類似於Java Web 框架的緩存機制。如下圖:

  技術分享

  

4、存儲設備的金字塔結構

  在處理器和一個又大又慢的設備(比如主存)之間插入一個更小更快的存儲設備(例如高速緩存)的想法已經是一個普遍的觀念。實際上,每個計算機系統中的存儲設備都被組織成了一個存儲器層次結構。如下圖所示:

  技術分享

  存儲器層次結構的主要思想是一層上的存儲器作為低一層存儲器的高速緩存,因此,寄存器文件就是L1的高速緩存,L1是L2的高速緩存,L3是主存的高速緩存,而主存又是磁盤的高速緩存。

  正如可以運用不同的高速緩存的知識來提高程序性能一樣,程序員同樣可以利用對整個存儲器層次結構的理解來提高程序性能。這個後面我們會詳細講解。

5、本章總結

  本章主要介紹了高速緩存的產生的原理以及存儲器設備的層次結構,如何理解整個存儲器的層次結構,對於提高程序性能有很大的幫助。下一章將講解操作系統的抽象概念。

深入理解計算機系統(1.2)------存儲設備