為了解在計算機系統中,程序是如何運行的,首先需要了解計算機系統的硬件組織。
1、總線
總線是貫穿整個系統一組電子管道,它攜帶信息字節并負責在各個部件間傳遞。通常總線被設計成傳送特定長的字節塊,也就是字(word)。字中的字節數是一個基本的系統參數,各個系統中都不盡相同。如32位操作系統一個字長是4個字節,64位操作系統一個字長是8個字節。
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在指令的要求下可能會執行下面這些操作。
處理器看上去是它的指令集架構的簡單實現,但實際上現代處理器使用了非常複雜的機制來加速程序的執行。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!