《計算機系統:系統架構與作業系統的高度整合》——第2章處理器體系結構
本節書摘來自華章計算機《計算機系統:系統架構與作業系統的高度整合》一書中的第2章,作者:(美)拉姆阿堪德蘭(Ramachandran, U.)(美)萊希(Leahy, W. D.)著, 更多章節內容可以訪問雲棲社群“華章計算機”公眾號檢視。
第2章 處理器體系結構
處理器設計圍繞兩個體系結構的問題:指令集和機器結構。在計算機發展的早期(大約是20世紀60年代和70年代),曾有一段時間處理器設計完全被看作電子工程師的工作。計算機上大規模地使用匯編語言程式設計,因此,指令集越是花哨,應用程式就越趨向簡單。這是當時流行的傳統觀念。隨著現代程式語言的出現—如20世紀60年代的Algol語言—以及編譯技術的快速發展,處理器設計顯然不再僅僅是一項關於硬體的工作。特別地,指令集的設計與編譯器如何有效地為處理器生成程式碼密切相關。在這個意義上,程式語言對於指令集的設計有相當大的影響。
讓我們來了解程式語言是如何影響指令集設計的。高階語言中諸如賦值語句和表示式這樣的結構會對映到算術/邏輯指令和載入/儲存指令。高階語言支援的資料抽象需要指令集提供不同精度的運算元以及定址模式。條件語句和迴圈結構需要條件和無條件跳轉指令。更進一步來說,高階語言中像過程這樣的模組化結構需要從處理器體系結構中獲得附加的抽象支援。
應用對於指令集設計也有著重要的影響。例如,科學計算和工程計算在早期計算中佔據主導地位。相應地,20世紀70年代和80年代的高階系統在指令集上支援浮點運算。當前某些時候,手機和其他嵌入式系統的計算佔了主導地位,隨著計算融入社會的各個層面,毫無疑問這個趨勢將持續下去。音訊和視訊這樣的流媒體應用在手持裝置上變得很平常。自然地,這些應用的需求(例如,單獨一條指令對許多資料進行操作)開始影響指令集的設計。
在硬體上直接支援一個具體的系統軟體或應用的需求並非總是可行或划算的。例如,在計算機發展的早期,低端的計算機通過軟體庫使用指令集中可用的整數運算來實現浮點運算。直到今天,複雜的操作(例如求餘弦)依然不應該由通用處理器的指令集直接支援。替代的方法是,一些專門的系統軟體(稱為數學庫)通過將這些複雜操作對映為指令集中的簡單指令來實現它們。
作業系統對於指令集的設計也有影響。一個處理器可能會同時執行多個程式。想想你的桌上型電腦或掌上電腦,上面執行著若干個程式,但是卻沒有多個處理器。因此,在我們切換到另一個程式之前,需要記住一個程式正在做什麼。你可以想象一個動作麻利的廚師在4口鍋裡炒4個不同的菜,她記住了每道菜做到了哪個階段並適時加入調料。作業系統是這樣的一個軟體實體(即是它自身的一個程式),它像廚師處理不同的菜一樣,安排不同的程式在處理器上執行。作業系統自身也對處理器設計有影響,在後面討論程式不連續性和記憶體管理的章節中這會變得很顯而易見。
相關文章
- 作業系統體系結構作業系統
- 作業系統(二):作業系統結構作業系統
- 作業系統結構作業系統
- 計算機作業系統|作業系統引論計算機作業系統
- Android系統架構-----Android的系統體系架構Android架構
- 作業系統與多核處理器作業系統
- 作業系統:計算機的生態系統作業系統計算機
- 計算機系統4-> 計組與體系結構1 | 基礎概念與系統評估計算機
- 計算機體系結構 - 作業1計算機
- 微機結構和作業系統作業系統
- 計算機作業系統教程 2 作業系統概述計算機作業系統
- 作業系統核心結構作業系統
- 計算機作業系統計算機作業系統
- 程式設計體系結構(09):分散式系統架構程式設計分散式架構
- 計算機的作業系統計算機作業系統
- 計算機系統5-> 計組與體系結構2 | MIPS指令集(上)| 指令系統計算機
- CPU、指令集、體系結構以及作業系統作業系統
- 計算機系統008 - 作業系統概況計算機作業系統
- 【高階作業系統-陳渝】Architecture-計算機架構作業系統計算機架構
- 第3章 系統架構架構
- 計算機組成與系統結構 cache 原理與計算計算機
- Hbase 系統架構與資料結構架構資料結構
- 【作業系統】--處理器排程作業系統
- 處理器、指令集架構和作業系統——32-bit與64-bit架構作業系統
- Fuchsia 作業系統的四層結構作業系統
- 計算機系統結構--複習(Part 1)計算機
- 微服務架構下的系統整合微服務架構
- 計算機作業系統掃盲計算機作業系統
- 計算機重灌Windows作業系統計算機Windows作業系統
- 計算機導論作業系統計算機作業系統
- 計算機體系結構計算機
- 計算機系統結構的基礎知識計算機
- 系統架構設計筆記(87)—— 計算機病毒與防治架構筆記計算機
- 工作總結--系統架構架構
- 系統架構師大會:中國系統架構師的盛宴架構
- 軟體系統架構有感架構
- 雲端計算分散式平行計算:系統架構分散式架構
- Java 系統架構設計Java架構