第3章計算機硬件基礎
本章學習目標
熟練掌握計算機硬件系統的基本組成。
了解計算機的指令系統與機器語言。
熟練掌握微型計算機系統的組成及其性能指標。本章先介紹計算機硬件的基本組成部分和馮·諾依曼體系結構,再介紹計算機的指令系統以及機器語言、匯編語言和高級語言,最后介紹微型計算機的組成及性能指標。
3.1計算機硬件的基本組成
計算機硬件(computerhardware)是指計算機系統中由電子、機械和光電元件等組成的各種物理裝置的總稱。這些物理裝置按系統結構的要求構成一個有機整體,為計算機軟件運行提供物質基礎。簡言之,計算機硬件的功能是輸入并存儲程序和數據,以及執行程序把數據加工成可以利用的形式。從外觀上來看,微機由主機箱和外部設備組成。主機箱內主要包括CPU、內存、主板、硬盤驅動器、光盤驅動器、各種擴展卡(聲卡、顯卡、網卡)、連接線和電源等;外部設備包括鼠標、鍵盤、顯示器、音箱、打印機、U盤和視頻設備等,這些設備通過接口和連接線與主機相連。計算機硬件的組成如圖3.1所示。
圖3.1計算機硬件的組成3.1.1馮·諾依曼機體系結構
馮·諾依曼理論的要點是,數字計算機的數制采用二進制;計算機應該按照程序順序執行。人們把馮·諾依曼的這個理論稱為馮·諾依曼體系結構,如圖3.2所示。
圖3.2馮·諾依曼體系結構
從ENIAC到當前最先進的計算機都采用的是馮·諾依曼體系結構,所以馮·諾依曼是當之無愧的數字計算機之父。
電子計算機的問世,最重要的奠基人是英國科學家艾蘭·圖靈(AlanTuring)和美籍匈牙利科學家馮·諾依曼(VonNeumann)。圖靈的貢獻是建立了圖靈機的理論模型,奠定了人工智能的基礎,而馮·諾依曼則是首先提出了計算機體系結構的設想。
1946年馮·諾依曼提出存儲程序原理,把程序本身當作數據來對待,程序和程序處理的數據用同樣的方式存儲,并確定了存儲程序計算機的五大組成部分和基本工作方法。半個多世紀以來,計算機制造技術發生了巨大變化,但馮·諾依曼體系結構仍然沿用至今。
計算機的基本原理是存儲程序和程序控制。預先要把指揮計算機如何進行操作的指令序列(稱為程序)和原始數據通過輸入設備輸送到計算機內存中。每一條指令中明確規定了計算機從哪個地址取數,進行什么操作,然后送到什么地址去等步驟。
計算機在運行時,先從內存中取出第一條指令,通過控制器的譯碼,按指令的要求,從存儲器中取出數據進行指定的運算和邏輯操作等加工,然后再按地址把結果送到內存中去。接下來,再取出第二條指令,在控制器的指揮下完成規定操作。依此進行下去,直至遇到停止指令。
程序與數據一樣存儲,按程序編排的順序,一步一步地取出指令,自動地完成指令規定的操作,是計算機最基本的工作原理。
1.馮·諾依曼體系結構
20世紀30年代中期,科學家馮·諾依曼大膽地提出,拋棄十進制,采用二進制作為數字計算機的數制基礎。同時,他還提出預先編制計算程序,然后由計算機來按照人們事前制定的計算順序來執行數值計算工作。
1945年6月,馮·諾依曼提出了在數字計算機內部的存儲器中存放程序的概念,按這一結構建造的計算機稱為存儲程序計算機,又稱為通用計算機。馮·諾依曼計算機主要由運算器、控制器、存儲器和輸入輸出設備組成,其特點是:程序以二進制代碼的形式存放在存儲器中;所有的指令都由操作碼和地址碼組成;指令在存儲器中按照執行的順序存放;以運算器和控制器作為計算機結構的中心等。馮·諾依曼計算機廣泛應用于數據處理和控制方面,但是也存在一定的局限性。
(1)采用存儲程序方式,指令和數據不加區別混合存儲在同一個存儲器中。數據和程序在內存中是沒有區別的,它們都是內存中的數據,當EIP(32位機的指令寄存器)指針指向哪,CPU就加載哪段內存中的數據,如果是不正確的指令格式,CPU就會發生錯誤中斷。指令和數據都可以送到運算器進行運算,即由指令組成的程序是可以修改的。
(2)存儲器是按地址訪問的線性編址的一維結構,每個單元的位數是固定的。
(3)指令由操作碼和地址組成。操作碼指明本指令的操作類型,地址碼指明操作數和地址。操作數本身無數據類型的標志,它的數據類型由操作碼確定。
(4)通過執行指令直接發出控制信號控制計算機的操作。指令在存儲器中按其執行順序存放,由指令記數器指明要執行的指令所在的單元地址。指令記數器只有一個,一般按順序遞增,但執行順序可隨運算結果或當時的外界條件而改變。
(5)以運算器為中心,I/O設備與存儲器間的數據傳送都要經過運算器。
(6)數據以二進制表示。
2.馮·諾依曼體系結構的特點
計算機系統由硬件系統和軟件系統兩大部分組成。馮·諾依曼體系結構奠定了現代計算機的基本結構,其特點如下。
(1)計算機處理的數據和指令一律用二進制數表示。
(2)順序執行程序。計算機運行過程中,把要執行的程序和處理的數據首先存入主存儲器(內存),計算機執行程序時,將自動地按順序從主存儲器中取出指令一條一條地執行,這一概念稱為順序執行程序。
(3)計算機硬件由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成。
運算器(arithmeticunit)由算術邏輯單元(ALU)、累加器、狀態寄存器和通用寄存器組等組成。算術邏輯單元的基本功能為加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、求補等操作。計算機運行時,運算器的操作和操作種類由控制器決定。運算器處理的數據來自存儲器;處理后的結果數據通常送回存儲器,或暫時寄存在運算器中。運算器與控制器共同組成了CPU的核心部分。
控制器(controlunit)是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。控制器從存儲器中逐條取出指令,分析每條指令規定的是什么操作以及所需數據的存放位置等,然后根據分析的結果向計算機其他部件發出控制信號,統一指揮整個計算機完成指令所規定的操作。計算機自動工作的過程,實際上是自動執行程序的過程,而程序中的每條指令都是由控制器來分析執行的,它是計算機實現“程序控制”的主要設備。
通常把控制器與運算器合稱為中央處理器(CentralProcessingUnit,CPU)。工業生產中總是采用最先進的超大規模集成電路技術來制造中央處理器,即CPU芯片。它是計算機的核心設備。它的性能(主要是工作速度和計算精度)對計算機的整體性能有全面的影響。
硬件系統的核心是中央處理器。它主要由控制器和運算器等組成,并采用大規模集成電路工藝制成的芯片,又稱為微處理器芯片。
CPU品質的高低,直接決定了一個計算機系統的檔次。反映CPU品質的最重要指標是主頻和數據傳送的位數。主頻說明了CPU的工作速度,主頻越高,CPU的運算速度越快。常用的CPU主頻有1.5GHz、2.0GHz、2.4GHz等。CPU傳送數據的位數是指計算機在同一時間能同時并行傳送的二進制信息位數。常說的16位機、32位機和64位機,是指該計算機中的CPU可以同時處理16位、32位和64位的二進制數據。隨著型號的不斷更新,微機的性能也不斷提高。
存儲器(memory)是計算機系統中的記憶設備,用來存放程序和數據。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。按用途可將存儲器分為主存儲器(內存)和輔助存儲器(外存)。外存通常是磁性介質或光盤等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用于暫時存放程序和數據,關閉電源或斷電后,內存中的數據會丟失。
輸入設備(inputdevice)是向計算機輸入數據和信息的設備,是計算機與用戶或其他設備通信的橋梁。輸入設備是用戶和計算機系統之間進行信息交換的主要裝置之一。鍵盤、鼠標、攝像頭、掃描儀、光筆、手寫輸入板、游戲桿和語音輸入裝置等都屬于輸入設備。輸入設備是人或外部與計算機進行交互的一種裝置,用于把原始數據和處理這些數據的程序輸入到計算機中。計算機能夠接收各種各樣的數據,既可以是數值型的數據,也可以是各種非數值型的數據,如圖形、圖像和聲音等都可以通過不同類型的輸入設備輸入到計算機中,進行存儲、處理和輸出。
輸出設備(outputdevice)用于接收計算機數據的輸出顯示、打印、播放聲音和控制外圍設備操作等,把各種計算結果數據或信息以數字、字符、圖像和聲音等形式表示出來。
3.馮·諾依曼體系結構的作用
馮·諾依曼體系結構是現代計算機的基礎,現在大多數計算機仍然采用馮·諾依曼體系結構,只是做了一些改進而已,并沒有從根本上突破馮·諾依曼體系結構。
根據馮·諾依曼體系結構構成的計算機必須具有如下功能:把需要的程序和數據送至計算機中;必須具有長期記憶程序、數據、中間結果及最終運算結果的能力;能夠完成各種算術、邏輯運算和數據傳送等數據加工處理的能力;能夠根據需要控制程序走向,并能根據指令控制機器的各部件協調操作;能夠按照要求將處理結果輸出給用戶。
將指令和數據同時存放在存儲器中,是馮·諾依曼體系結構的特點之一,計算機由控制器、運算器、存儲器、輸入設備和輸出設備5部分組成,馮·諾依曼提出的計算機體系結構奠定了現代計算機的結構理念。
3.1.2微處理器基礎
微處理器是用一片或幾片大規模集成電路組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。微處理器與傳統的中央處理器相比,具有體積小、質量小和容易模塊化等優點。微處理器的基本組成部分有寄存器堆、運算器、時序控制電路以及數據和地址總線。微處理器能完成取指令、執行指令以及與外界存儲器和邏輯部件交換信息等操作,是微型計算機的運算控制部分。它可與存儲器和外圍電路芯片組成微型計算機。
中央處理器是指計算機內部對數據進行處理并對處理過程進行控制的部件,伴隨著大規模集成電路技術的迅速發展,芯片集成度越來越高,CPU可以集成在一個半導體芯片上,這種具有中央處理器功能的大規模集成電路器件被統稱為微處理器。注意,微處理器本身并不等于微型計算機,僅僅是微型計算機的中央處理器。
微處理器已經無處不在,無論是錄像機、智能洗衣機、移動電話等家電產品,還是汽車引擎控制、數控機床、導彈精確制導等都要嵌入各類不同的微處理器。微處理器不僅是微型計算機的核心部件,也是各種數字化智能設備的關鍵部件。國際上的超高速巨型計算機、大型計算機等高端計算系統也都采用大量的通用高性能微處理器建造。
1.微處理器的分類
根據微處理器的應用領域,微處理器可以分為3類:通用高性能微處理器、嵌入式微處理器和數字信號處理器、微控制器。
通用處理器追求高性能,它們用于運行通用軟件,配備完備、復雜的操作系統。
嵌入式微處理器強調處理特定應用問題的高性能,主要用于運行面向特定領域的專用程序,配備輕量級操作系統,主要用于蜂窩電話、CD播放機等消費類家電。
微控制器價位相對較低,在微處理器市場上需求量最大,主要用于汽車、空調、自動機械等領域的自控設備。
2.微處理器的發展歷程
CPU從最初發展至今已經有幾十年的歷史了,按照其處理信息的字長,CPU可以分為4位微處理器、8位微處理器、16位微處理器、32位微處理器以及最新的64位微處理器,可以說個人計算機的發展是隨著CPU的發展而前進的。微機是指以大規模、超大規模集成電路為主要部件,以集成了計算機主要部件——控制器和運算器的微處理器(MicroProcessorUnit,MPU)為核心的計算機。經過多年的發展,微處理器的發展大致可分為6代。
(1)第一代(1971—1973年)。通常是4位或8位微處理器,典型的是Intel4004和Intel8008微處理器。Intel4004是一種4位微處理器,可進行4位二進制的并行運算,它有45條指令,速度為0.05MIPS(MillionInstructionsPerSecond,每秒百萬條指令)。Intel4004的功能有限,主要用于計算器、電動打字機、照相機、臺秤、電視機等家用電器上,使這些電器設備具有智能化,從而提高它們的性能。Intel8008是世界上第一種8位的微處理器。存儲器采用PMOS工藝。該階段計算機工作速度較慢,微處理器的指令系統不完整,存儲器容量很小,只有幾百字節,沒有操作系統,只有匯編語言。主要用于工業儀表和過程控制。
(2)第二代(1974—1977年)。典型的微處理器有Intel8080/8085,Zilog公司的Z80和Motorola公司的M6800。與第一代微處理器相比,集成度提高了1~4倍,運算速度提高了10~15倍,指令系統相對比較完善,已具備典型的計算機體系結構及中斷、直接存儲器存取等功能。
由于微處理器可用來完成很多以前需要用較大設備完成的計算任務,價格又便宜,于是各半導體公司開始競相生產微處理器芯片。但這些芯片基本沒有改變Intel8080的基本特點,都屬于第二代微處理器。它們均采用NMOS工藝,集成度約9000只晶體管,平均指令執行時間為1~2μs,采用匯編語言、BASIC、FORTRAN編程,使用單用戶操作系統。
(3)第三代(1978—1984年),即16位微處理器。1978年,Intel公司率先推出16位微處理器Intel8086,同時,為了方便原來的8位機用戶,Intel公司又提出了一種準16位微處理器Intel8088。1981年,美國IBM公司將8088芯片用于其研制的IBMPC機中,從而開創了全新的微機時代。也正是從Intel8088開始,個人計算機(PC)的概念開始在全世界范圍內發展起來。從8088應用到IBMPC機上開始,個人計算機真正走進了人們的工作和生活之中,它也標志著一個新時代的開始。
(4)第四代(1985—1992年),即32位微處理器。1985年10月17日,Intel公司劃時代的產品80386DX正式發布了,其內部包含27.5萬個晶體管,時鐘頻率為12.5MHz,后逐步提高到20MHz、25MHz、33MHz,最后還有少量的40MHz產品。
(5)第五代(1993—2005年)是奔騰(Pentium)系列微處理器時代。典型產品是Intel公司的奔騰系列芯片及與之兼容的AMD的K6系列微處理器芯片。內部采用了超標量指令流水線結構,并具有相互獨立的指令和數據高速緩存。隨著MMX(MultiMediaeXtended)微處理器的出現,使微機的發展在網絡化、多媒體化和智能化等方面跨上了更高的臺階。
(6)第六代(2005年至今)是酷睿(Core)系列微處理器時代。“酷睿”是一款領先節能的新型微架構,設計的出發點是提供卓然出眾的性能和能效,提高每瓦特性能,也就是所謂的能效比。早期的酷睿是基于筆記本處理器的。“酷睿2”英文名稱為Core2Duo,是Intel公司在2006年推出的新一代基于Core微架構的產品體系統稱,于2006年7月27日發布。“酷睿2”是一個跨平臺的構架體系,包括服務器版、桌面版和移動版三大領域。其中,服務器版的開發代號為Woodcrest,桌面版的開發代號為Conroe,移動版的開發代號為Merom。
“酷睿2”處理器的Core微架構是Intel公司的以色列設計團隊在Yonah微架構基礎之上改進而來的新一代Intel架構。最顯著的變化在于對各個關鍵部分進行強化。為了提高兩個核心的內部數據交換效率,采取共享式二級緩存設計,兩個核心共享高達4MB的二級緩存。
2010年6月,Intel公司再次發布革命性的處理器——第二代Corei3/i5/i7。它隸屬于第二代智能酷睿家族,全部基于全新的SandyBridge微架構,相比第一代產品主要有5點重要革新:①采用全新32nm的SandyBridge微架構,更低功耗,更強性能;②內置高性能GPU(核芯顯卡),視頻編碼、圖形性能更強;③睿頻加速技術2.0,更智能,更高效能;④引入全新環形架構,帶來更高帶寬與更低延遲;⑤全新的AVX、AES指令集,加強浮點運算與加密解密運算。
2012年4月24日,Intel公司正式發布了Ivybridge(IVB)處理器。22nmIvyBridge會將執行單元的數量翻一番,達到最多24個,自然會帶來性能上的進一步躍進。IvyBridge會加入支持DX11的集成顯卡。另外,新加入的XHCIUSB3.0控制器則共享其中4條通道,從而提供最多4個USB3.0,從而支持原生USB3.0。CPU的制作采用3D晶體管技術,耗電量會減少一半。
3.微處理器的組成
微處理器由算術邏輯單元(ArithmeticLogicalUnit,ALU)、累加器和通用寄存器組、程序記數器(也稱為指令指標器)、時序和控制邏輯部件、數據與地址鎖存器/緩沖器、內部總線組成。其中運算器和控制器是其主要組成部分。
1)算術邏輯單元
算術邏輯單元主要完成算術運算(+、-、×、÷、比較)和各種邏輯運算(與、或、非、異或、移位)等操作。ALU是組合電路,本身無寄存操作數的功能,因而必須有保存操作數的兩個寄存器:暫存器(TMP)和累加器(AC),累加器既向ALU提供操作數,又接收ALU的運算結果。
定時與控制邏輯是微處理器的核心控制部件,負責對整個計算機進行控制,包括從存儲器中取指令,分析指令(即指令譯碼)以確定指令操作和操作數地址,取操作數,執行指令規定的操作,送運算結果到存儲器或I/O端口等。它還向微機的其他各部件發出相應的控制信號,使CPU內外各部件間協調工作。
內部總線用來連接微處理器的各功能部件并傳送微處理器內部的數據和控制信號。
必須指出,微處理器本身并不能單獨構成一個獨立的工作系統,也不能獨立地執行程序,必須配上存儲器和輸入輸出設備構成一個完整的微型計算機后才能獨立工作。
2)存儲器
微型計算機的存儲器用來存放當前正在使用的或經常使用的程序和數據。存儲器按讀、寫方式分為隨機存儲器(RandomAccessMemory,RAM)和只讀存儲器(ReadOnlyMemory,ROM)。RAM也稱為讀/寫存儲器,工作過程中CPU可根據需要隨時對其內容進行讀或寫操作。RAM是易失性存儲器,即其內容在斷電后會全部丟失,因而只能存放暫時性的程序和數據。ROM的內容只能讀出不能寫入,斷電后其所存信息仍保留不變,是非易失性存儲器,所以ROM常用來存放永久件的程序和數據。如初始導引程序、監控程序、操作系統中的基本輸入輸出管理程序(BIOS)等。
3)I/O接口
輸入輸出接口電路是微型計算機的重要組成部件。它是微型計算機連接外部輸入輸出設備及各種控制對象并與外界進行信息交換的邏輯控制電路。由于外設的結構、工作速度、信號形式和數據格式等各不相同,因此它們不能直接掛接到系統總線上,必須用輸入輸出接口電路來做中間轉換,才能實現與CPU間的信息交換。I/O接口也稱為I/O適配器,不同的外設必須配備不同的I/O適配器。I/O接口電路是微機應用系統必不可少的重要組成部分。任何一個微機應用系統的研制和設計,實際上主要是I/O接口的研制和設計。
4)總線
總線是計算機系統中各部件之間傳送信息的公共通道,是微型計算機的重要組成部件。它由若干條通信線和起驅動隔離作用的各種三態門器件組成。微型計算機在結構形式上總是采用總線結構,即構成微機的各功能部件(微處理器、存儲器、I/O接口電路等)之間通過總線相連接,這是微型計算機系統結構上的獨特之處。采用總線結構之后,使系統中各功能部件間的相互關系轉變為各部件面向總線的單一關系,一個部件(功能板/卡)只要符合總線標準,就可以連接到采用這種總線標準的系統中,從而使系統功能擴充或更新容易,結構簡單,可靠性大大提高。在微型計算機中,根據總線所處位置和應用場合,總線被分為以下4級。
(1)片內總線。它位于微處理器芯片內部,故稱為芯片內部總線。用于微處理器內部ALU和各種寄存器等部件間的互連及信息傳送。由于受芯片面積及對外引腳數的限制,片內總線大多采用單總線結構,這有利于芯片集成度和成品率的提高,如果要求加快內部數據傳送速度,也可采用雙總線或三總線結構。