《深入理解計算機系統》1.1:計算機系統漫遊

目錄

信息 = 位+上下文

 系統的硬件組成

1.總線

2.I/O設備

3.主存

4.處理器

運行hello程序


信息 = 位+上下文

系統中的所有信息,包括磁盤文件、內存中的程序、內存中存放的用戶數據以及網絡上傳送的數據,都是由一串比特表示的。區分不同數據對象的唯一方法是我們讀到這些數據對象時的上下文。比如在不同的上下文中,一個同樣的字節序列可能表示一個整數、浮點數、字符串或者機器指令。

程序被其他程序翻譯成不同的格式

 系統的硬件組成

1.總線

貫穿整個系統的是一組電子管道,稱作總線,它攜帶信息字節並負責在各個部件間傳遞。通常總線被設計成傳送定長的字節塊,也就是字。字中的字節數(即字長)是一個基本的系統參數,各個系統中都不盡相同。現在大多數機器字長要麼是4個字節(32位),要麼是8個字節(64位)。

2.I/O設備

I/O設備是系統與外部世界的聯繫通道。每個I/O設備都通過一個控制器或適配器與I/O總線相連。控制器和適配器之間的區別主要在於它們的封裝方式。控制器是I/O設備本身或者系統的主印製電路板(通常稱作主板)上的芯片組。而適配器則是一塊插在主板插槽上的卡。無論如何,它們的功能都是在I/O設備之間傳遞信息。

3.主存

主存是一個臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據。從物理上來說,主存是一組動態隨機存取存儲器(DRAM)芯片組成的。從邏輯上來說,存儲器是一個線性字節數組,每個字節都有其唯一的地址(數組索引),這些地址是從0開始的。

4.處理器

中央處理單元(CPU),簡稱處理器,是解釋(或執行)存儲在主存中指令的引擎。處理器的核心是一個大小爲一個字的存儲設備(或寄存器),稱爲程序計數器(PC)。在任何時刻,PC都指向主存中的某條機器語言指令(即含有該條指令的地址)。

指令指示的簡單操作並不多,它們圍繞着主存、寄存器文件和算術/邏輯單元(ALU)進行。寄存器文件是一個小的存儲設備,由一些單個字長的寄存器組成,每個寄存器都有唯一的名字。ALU計算新的數據和地址值,CPU在指令的要求下可能會執行這些操作:

1.加載:從主存複製一個字節或者一個字到寄存器,以覆蓋寄存器原來的內容。

2.存儲:從寄存器複製一個字節或者一個字到主存的某個位置,以覆蓋這個位置上原來的內容。

3.操作:把兩個寄存器的內容複製到ALU,ALU對這兩個字做算術運算,並將結果存放到一個寄存器中,以覆蓋該寄存器中原來的內容。

4.跳轉:從指令本身中抽取一個字,並將這個字複製到程序計數器(PC)中,以覆蓋PC中原來的值。

處理器看似是指令集架構的簡單實現,但實際上現代處理器使用了非常複雜的機制來加速程序的執行。因此,我們將處理器的指令集架構處理器的微體系結構區分開來:前者描述的是每條機器代碼指令的效果;後者描述的是處理器實際實現。

運行hello程序

這個簡單的示例揭示了一個重要的問題,即系統花費了大量的時間把信息從一個地方挪到另一個地方~

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