讀深入理解計算機系統 - 第一章 計算機系統漫遊 -1.4 處理器讀並解釋存儲在內存中的指令

1.4.1 系統的硬件組成

深入理解計算機系統1.4.1

1、 總線(BUS)

總線是整個系統的電子管道,如果把機子比作人體,那麼總線就是血管(這個比喻不是很恰當,但不扣細節的話可以這麼認爲,原因看下文)

總線分爲三部分: 總線控制器、接口、傳輸線(這纔是真正的血管,傳輸線傳輸電流,血管傳輸血液)

總控制器: 把控全局,因爲總線四通八達,與各個部件連接,所以必須有個掌控全局的角色.

接口: 總線與部件的連接處,由一個三態門和緩衝寄存器組成,三態門決定總線是否是要向這個組件傳輸數據,三個狀態分別是0、1和高抗阻.

傳輸線: 傳輸電子(信號)的電導線.分爲信息線,電源線,地線等.其中信息線又細分爲數據總線、地址總線和控制總線.

資料: https://www.docin.com/p-936761978.html

2、I/O設備

輸入設備、輸出設備、磁盤設備. 每個I/O設備都通過一個控制器或者適配器與I/O總線相連.控制器是I/O設備本身或者系統的主印製電路板(主板)上的芯片組;適配器是一塊插在主板插槽上的卡.

3、主存

主存是一個臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據.從物理上來說,主存是由一組動態隨機存儲器(DRAM)芯片組成.從邏輯上來說,存儲器是一個現象的字節數組,每個字節都有其唯一的地址(數組索引),這些地址是從零開始的.(現代計算機使用的是CPU、主存、輔存三級存儲系統)

隨機存儲器(RAM):(Random Access Memory)我們不僅可以從中讀取數據,而且還可以寫入數據。但是機器電源關閉時,它中數據就會丟失。內存條(SIMM)就是把RAM集成塊集中在一小塊電路板上。

只讀存儲器(ROM):(Read Only Memory)它是把數據或程序永久保存在其中,不能更改,只能讀取。即使機器斷電,數據也不會丟失。

高級緩存(Cache,基於SRAM):它是介於CPU與內存之間,常用有一級緩存(L1)、二級緩存(L2)、三級緩存(L3)(一般存在於Intel系列)。它的讀寫速度比內存還快,當CPU在內存中讀取或寫入數據時,數據會被保存在高級緩衝存儲器中,當下次訪問該數據時,CPU直接讀取高級緩衝存儲器,而不是更慢的內存。
L1高速緩存: 容量可以達到數萬字節,訪問數據幾乎與寄存器一樣快
L2高速緩存: 容量爲數十萬到數百萬字節,訪問數據速度比L1慢5倍,但比訪問內存快5~10倍.

輔助存儲器又稱外存儲器(簡稱外存)。它是指除CPU緩存和計算機內存以外的存儲器。

4、處理器

中央處理單元(CPU),是解釋(或執行)存儲在主存中指令的引擎.其構成包括PC(程序計數器)、寄存器文件、ALU(算數、邏輯單元)、總線接口.

PC: 一直都指向主存中的某條機器語言指令(實際是執行該條指令的內存地址),當一條指令執行結束或者跳轉時,指令會修改PC的值使其指向下一條指令地址.

寄存器文件:一個小的存儲設備,由一些單個字長的寄存器組成,每個寄存器都有唯一的名字.8個32位通用寄存器:eax,ebx,ecx,edx,ebp,esi,edi,esp(x86體系結構CPU).

ALU: 計算新的數據和地址值.

總線接口: CPU與外界相連的出入口.

下面是一些簡單操作的例子,CPU在指令的要求下可能會執行這些操作:

●加載:從主存複製一個字節或者一個字到寄存器,以覆蓋寄存器原來的內容。
●存儲:從寄存器複製一一個字節或者一個字到主存的某個位置,以覆蓋這個位置上原來的內容。
●操作:把兩個寄存器的內容複製到ALU,ALU對這兩個字做算術運算,並將結果存放到一個寄存器中,以覆蓋該寄存器中原來的內容。
●跳轉:從指令本身中抽取一個字,並將這個字複製到程序計數器(PC)中,以覆蓋PC中原來的值。

1.4.2 運行hello程序

1、用戶在命令行輸入./shell: USB控制器接受用戶輸入“hello”,傳入寄存器,然後由寄存器傳入主存.
在這裏插入圖片描述
2、用戶敲下回車: shell執行一系列指令加載hello文件,這些指令將hello文件內的代碼從外存複製到主存中,其中包括最終輸出的“hello,world\n”.
在這裏插入圖片描述
3、執行代碼: 一旦代碼被加載到主存內,處理器就開始執行hello程序的main程序中的機器語言指令.這些指令將“hello,world\n”字符串的字節從主存複製到寄存器文件,再從寄存器文件中複製到顯示設備,最終顯示在屏幕上.
在這裏插入圖片描述

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