為了解在計算機系統中,程序是如何運行的,首先需要了解計算機系統的硬件組織。
1、總線
總線是貫穿整個系統一組電子管道,它攜帶信息字節并負責在各個部件間傳遞。通常總線被設計成傳送特定長的字節塊,也就是字(word)。字中的字節數是一個基本的系統參數,各個系統中都不盡相同。如32位操作系統一個字長是4個字節,64位操作系統一個字長是8個字節。
位(bit),音譯為“比特”,表示二進制位。位是計算機內部數據儲存的最小單位。
字節(byte) ,計算機中數據處理的基本單位,通常情況下一字節等于8位。
字 (word),計算機進行數據處理時,一次存取、加工和傳送的數據長度稱為字。一個字通常由一個或多個(一般是字節的整數位)字節構成。
2、I/O設備
I/O(輸入/輸出)設備是系統與外部世界的聯系通道,通常包括:
用戶輸入的鍵盤和鼠標;
用戶輸出的顯示器;
長期存儲數據和程序的磁盤驅動器(磁盤);
網絡設備等。
每個I/O設備都通過一個控制器或適配器與I/O總線相連。控制器和適配器的區別主要在于它們的封裝方式。控制器是I/O設備本身或者主板上的芯片組;適配器則是一塊插在主板槽上的卡。它們的功能都是在I/O總線和I/O設備之間傳遞信息。
3、主存
主存是一個臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據。從物理上來說,主存是由一組動態隨機存取存儲器(DRAM)芯片組成;從邏輯上來說,存儲器是一個線性的字節數組,每個字節都有其唯一的地址(數組索引),這些地址是從零開始的。
一般來說,組成程序的每條機器指令都由不同數量的字節構成。與C程序變量相對應的數據項的大小是根據類型變化的,比如在x86-64機器上 ,short類型的數據需要2個字節,int和float類型需要4個字節,而long和double類型需要8個字節。
4、處理器
處理器CPU是解釋或執行存儲在主存中指令的引擎。處理器的核心是一個大小為一個字的存儲設備(或寄存器),成為程序計數器(PC)。在任何時刻,PC都指向主存中的某條機器語言指令(即含有該條指令的地址)。
從系統通電開始,直到系統斷電,處理器一直在不斷地執行程序計數器指向的指令,再更新程序計數器,使其指向下一條指令。處理器看上去是按照一個非常簡單的指令執行模型來操作的,這個模型是由指令集架構決定的。在這個模型中,指令按照嚴格的順序執行,而執行一條指令包含執行一系列的步驟。處理器從程序計數器指向的內存處讀取指令,解釋指令中的位,執行該指令指示的簡單操作,然后更新PC,使其指向下一條指令,而這條指令并不一定和內存中剛剛執行的指令相鄰。
這樣的簡單操作并不多,它們圍繞著主存、寄存器文件和算數/邏輯單元進行。寄存器文件是一個小的存儲設備,由一些單個字長的寄存器組成,每個寄存器都有唯一的名字。算數/邏輯單元計算新的數據和地址值。CPU在指令的要求下可能會執行下面這些操作。
加載:從主存復制一個字節或一個字到寄存器,以覆蓋寄存器原來的內容。
存儲:從寄存器復制一個字節或一個字到到主存的某個位置,以覆蓋這個位置上原來的內容。
操作:把兩個寄存器的內容復制到ALU,ALU對這兩個字做算術運算,并將結果存放到一個寄存器中,以覆蓋該寄存器原來的內容。
跳轉:從指令本身中抽取一個字,并將這個字復制到程序計數器中,以覆蓋PC中原來的值。
處理器看上去是它的指令集架構的簡單實現,但實際上現代處理器使用了非常復雜的機制來加速程序的執行。
-
控制器
+關注
關注
112文章
16465瀏覽量
179614 -
cpu
+關注
關注
68文章
10911瀏覽量
213141 -
計算機
+關注
關注
19文章
7549瀏覽量
88719
發布評論請先 登錄
相關推薦
評論