Chapter 1 計算機系統的概論
現代計算機
1.1 計算機的發展
- 第一臺電子計算機
- 計算機的五代變化
- 中國計算機的發展
- 計算機的分類
- 計算機的發展趨勢
現代計算機問世之前
計算機的發展也經歷了機械式計算機、機電式計算機和萌芽期的電子計算機3個階段。了解幾個階段的著名科學家的貢獻。
- 1642年,法國數學家帕斯卡采用與鐘表類似的齒輪傳動裝置,制造了最早的十進制加法器。
- 1678年,德國數學家萊布尼茨制造的計算機可以進行十進制乘、除運算。
- 英國數學家巴貝奇:
- 1822年制作差分機時提出一種設想,每次只完成一次算術運算,將發展為自動完成某個特定的完整運算過程。
- 1834年設計了一種通用解析機,它可以進行各種算術和邏輯運算,能解多元方程組。
- 巴貝奇的設想包含了現代計算機的一些主要思想,已經有了程序控制方式的雛形,但限于當時的技術條件而未能實現。
- 1941年德國克蘭德·楚澤(Konrad Zuse,1910—1995年)制成了全自動的繼電器計算機Z-3,它已經具備了二進制運算、數字存儲地址的指令形式等現代計算機的特征
- 1940—1947年,在美國也相繼推出了MARK-1、MARK-2、Model-1、Model-5等繼電器計算機。
- 繼電器的開關速度太慢,大約為百分之一秒,使當時的計算機速度受到很大限制。
事物的發展是一個曲折的、復雜的漫長過程。
第一臺電子計算機
1946年 美國 ENIAC
- 采用十進制,邏輯線路復雜。
- 無存儲器,只有20個10位的累加器,存儲20個十進制數。
- 不完全具有“內部存儲程序”功能,采用布線接板進行控制,必須通過開關和插線來安裝計算程序,甚至要搭接幾天,計算速度被這一工作抵消了。
馮?諾依曼思想
1945年數學家馮?諾依曼對計算機的組成結構提出了重大的改進理論:
- 計算機中采用二進制,數據和指令均采用二進制存儲在存儲器中,二進制的采用將大大簡化機器的邏輯線路。
- 編好的程序和原始數據事先存入存儲器,然后再啟動計算機工作,從而大大加快運算進程。
- 進一步明確指出整個計算機的結構應由5個部分組成:運算器、控制器、存儲器、輸入裝置和輸出裝置。
馮·諾依曼 計算機結構體系
計算機的五代
現代計算機的發展大體分為五個年代,主要依據三個方面進行劃分:
硬件技術對計算機更新換代的影響
第一代(1946-1957年)電子管計算機
- 邏輯元件 —— 電子管
- 數據表示 —— 定點數
- 主 存 —— 磁鼓或磁芯
- 輔 存 —— 磁帶
- 軟 件 —— 機器語言、匯編語言
- 應 用 —— 科學計算
IBM650 小型機于1954年12月推出,是第一代計算機中銷量最廣的計算機
第二代(1958-1964年)晶體管計算機
- 邏輯元件 —— 晶體管
- 輔 存 —— 磁盤、磁帶
- 主 存 —— 鐵淦氧磁芯
- 運算方式 —— 浮點運算
- 軟 件 —— 操作系統、高級語言(FORTRAN、ALGOL等)
- 應 用 —— 科學計算、數據處理、過程控制
CDC6600 大型機于1963年8月由控制數據公司(CDC)推出,當時很受各原子能機構、航空宇航、氣象研究等機構的認可。安裝了35萬個晶體管,運算速度為1Mflops。至1969年,CDC6600以及改進型CDC7600巨型機共售出150余臺。
第三代(1965-1971年)中小規模集成電路計算機
- 中小規模集成電路成為主要部件,過渡到半導體存儲器。
- 體積更小,功耗更低,速度更快,一般為幾十萬次至幾百萬次每秒。減少了焊點和接插件,可靠性更高。
- 出現了分時操作系統,使得計算機在中心程序的控制協調下可以同時運行許多不同的程序。出現了標準化的程序設計語言和人機會話式語言,如BASIC,采用了結構化程序設計方法。
- 應用:科學計算、數據處理、過程控制
- 出現了小型計算機。 1965年美國的DEC(數字設備公司)推出第一臺商業化集成電路為主的小型計算機PDP-8。
1964年由IBM推出的IBM 360 是最早采用集成電路的通用計算機,也是影響最大的第三代計算機。平均運算速度從每秒幾千次到一百萬次,它的主要特點是通用化、系列化和標準化。
第四代(1972年至今) LSI和VLSI計算機
- 以Intel公司的第一代微處理器Intel 4004為標志。
- 1972年,第一部真正的個人計算機(PC)誕生。隨著“半導體”及“晶體管”的發展,世界各國也不斷翻開計算機史上新的一頁。
- 1981年,IBM推出個人計算機(Personal Computer,PC),主要用于家庭、辦公室和學校。
- 微電子技術的發展促使計算機的體積越來越小,從桌上到膝上,再到掌上;成本越來越低,性能和可靠性越來越高
- 操作系統也不斷完善,應用軟件也變得豐富多彩,計算機的應用遍及社會各個領域,成為人們不可缺少的工具。
第五代計算機
- 20世紀80年代初,日本首先提出第五代計算機發展計劃,引起各發達國家競相開始研究。
- 第五代計算機的主要思想:模擬人類視神經控制系統,本身具有學習機理,能模仿人的視神經網絡進行工作。它不僅能進行數值計算或處理一般的信息,主要能面向知識處理,具有形式化推理、聯想、學習和解釋的能力,能夠幫助人們進行判斷、決策、開拓未知領域和獲得新的知識。需要人工智能的理論和技術,涉及通信技術、仿生學等多種科學技術。
- 目前人工智能技術在模式識別、知識處理方面已經取得很大的進步,并產生了明顯的經濟效益。應用大量專家知識和推理方法解決復雜問題的專家系統,已經廣泛用于管理調度、輔助決策、故障診斷、教育咨詢等各個方面。
- 計算機在文字、語音、圖形圖像的識別與理解,及機器翻譯等領域的應用也取得重大進展,相關產品也已經問世。
存儲器的發展
存儲器技術的發展是促進計算機的一個重要因素
- 20世紀50~60年代:磁芯存儲器——所有計算機存儲器都是由微小的鐵磁體環
- 1970年:半導體存儲器——美國仙童半導體公司生產出了第一個較大容量半導體存儲器
- 從1970年起,半導體存儲器經歷了11代:單個芯片為1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB直至更高
摩爾定律
摩爾定律:“集成電路芯片上所集成的電路的數目,每隔18個月就翻一番”。當初預測這個假定只能維持10年左右,然而芯片制造技術的進步讓摩爾定律保持了40年。
集成電路:依據一片集成電路芯片上包含的邏輯門個數或元件個數分小規模集成電路SSI(邏輯門數小于10門或含元件數小于100個);中規模集成電路MSI(所含邏輯門數為10~99門或含元件數100~999個);大規模集成電路LSI(邏輯門數為100~9999門或含元件數1000~99999個);超大規模集成電路VLSI(106~107個元件或10000個以上邏輯門);巨大規模集成電路ULSI(107~109個元件;GSI集成109以上個元件)。
中央處理器的發展
- 1971年,Intel 4004 CPU
- 1978年,Intel 8086 CPU
中國計算機的發展
- 1958年,中科院計算所研制成功的小型電子管通用計算機----103機,標志著我國第一臺電子計算機的誕生。
- 1965年,中科院計算所研制成功第一臺大型晶體管計算機109乙,之后推出109丙機,該機在兩彈試驗中發揮了重要作用。
- 1974年,清華大學等單位聯合設計、研制成功采用集成電路的DJS-130小型計算機,運算速度達每秒100萬次。
- 1983年,國防科技大學研制成功運算速度上億次每秒的銀河-Ⅰ巨型機,這是我國高速計算機研制的一個重要里程碑
- 1985年,電子工業部計算機管理局研制成功與IBM PC兼容的長城0520 CH微型計算機。
- 1992年,國防科大研究出銀河-Ⅱ通用并行巨型機,浮點運算峰值速度達4億次每秒,為共享主存儲器的四處理機向量機,其向量中央處理機的中小規模集成電路是我國自行設計的,總體上達到20世紀80年代中后期的國際先進水平。
- 1993年,國家智能計算機研究開發中心研制成功曙光一號,是國內首次以基于超大規模集成電路的通用微處理器芯片和標準UNIX操作系統開發的并行計算機。
- 1995年,曙光推出曙光1000(含36個處理機),是國內第一臺具有大規模并行處理機(MPP)結構的超級計算機,浮點運算的峰值速度為25億次每秒。曙光1000與美國Intel公司1990年推出的大規模并行機體系結構與實現技術相近,與國外的差距縮小到5年左右。
- 1997年,國防科大研制成功銀河-Ⅲ百億次并行巨型計算機系統,采用可擴展分布共享存儲并行處理體系結構,由130多個處理結點組成,浮點運算峰值性能為130億次每秒,系統綜合技術達到20世紀90年代中期國際先進水平。
- 2001年,中科院計算所研制出我國第一款通用CPU(龍芯)芯片。 2002年,在具有我國自主知識產權的龍騰服務器上采用了“龍芯-1”CPU。該服務器是國內第一臺完全實現自有產權的產品,在國防、安全等部門發揮了重大作用。
- 我國在超級計算機的技術上發展迅猛,國防科技大學計算機研究所研制的“銀河”系列機,中科院計算技術研究所研制的“曙光”系列機,以及國家并行計算機工程技術中心研制的“神威”系列機,都先后登上全球超級計算排行榜的前列。2016年6月20日,“神威·太湖之光” 超級計算機系統在法蘭克福世界超算大會上,登頂國際TOP500榜首,至2017年11月13日仍據榜首。
計算機的發展 —趨勢
- 未來計算機性能向著微型化、網絡化、智能化和巨型化的方向發展。
- 計算機結構和元件:電子電路的局限性將會使電子計算機的發展受到限制,人們已經開始研制不使用集成電路的計算機,例如生物計算機、光子計算機、量子計算機等,并取得了一定的進展。
計算機的分類
計算機的分類方法較多,根據處理的對象、用途和規模不同可有不同的分類方法。
1.按處理的對象劃分
(1)模擬計算機
用一種連續變化的模擬量作為運算對象的計算機。
特點:運算過程是連續的,計算精度較低,電路結構復雜,抗干擾能力極差,應用范圍較窄。
(2)數字計算機
參與運算的數值用非連續的數字量表示,運算過程按數字位進行,具有邏輯判斷等功能。相比模擬計算機,計算精度高,運算速度快,抗干擾能力強。
2.根據計算機的用途劃分
(1)通用計算機
用于解決一般問題,其適應性強,應用面廣,可用于科學計算、數據處理和過程控制等領域,但其運行效率、速度和經濟性依據不同的應用對象會受到不同程度的影響。
(2)專用計算機
用于解決某一特定方面的問題,配有專門開發的軟件和硬件,應用于軍事、自動化控制或儀器儀表等領域。專用計算機針對某類問題能顯示出最有效、最快速和最經濟的特性,但它的適應性較差。
3.根據計算機的規模劃分
衡量計算機的規模的主要技術指標:字長、運算速度、存儲容量、外部設備、輸入和輸出能力、配置軟件豐富與否、價格高低等。
根據計算機的規模可分為巨型計算機、小巨型計算機、大型主機、小型計算機、微型計算機、圖形工作站等。
(1)巨型計算機:又稱超級計算機,一般用于國防尖端技術和科學計算等領域。速度最快,容量最大,體積最大,造價也最高。
(2)大型主機:包括通常所說的大、中型計算機。具有較高的運算速度和較大的存儲容量,一般用于科學計算、數據處理或用作網絡服務器。隨著微機與網絡的迅速發展,很多應用中正在被高檔微型計算機所取代。
(3)小型計算機:指采用8-32顆處理器,性能和價格介于PC服務器和大型主機之間的一種高性能 64 位計算機。例如DEC公司的PDP-11系列、VAX-11系列等。一般用于工業自動控制、醫療設備中的數據采集等方面。
(4)微型計算機:是目前發展最快、應用最廣泛的一種計算機。PC(Personal Computer個人計算機)是現在比較流行的微型計算機。其中央處理器采用微處理芯片,體積小輕便。
(5)圖形工作站:是以個人計算環境和分布式網絡環境為前提的高性能計算機,其規模介于微型機和小型機之間。通常配有高分辨率的大屏幕顯示器及容量很大的內存和外部存儲器,具有較強的信息處理功能和高性能的圖形、圖像處理功能以及聯網功能。主要應用在專業的圖形處理和影視創作等領域,
1.2計算機系統的硬件
概述
- 計算機的硬件是指組成計算機的所有電子器件和機電裝置的總稱,是構成計算機的物質基礎。
- 現代計算機的硬件:運算器、控制器、存儲器、輸入設備和輸出設備五大功能部件組成。
- 本節主要介紹計算機硬件組成結構,及其各功能部件協調工作的簡單工作原理。
馮?諾依曼結構
馮?諾依曼計算機的主要特點
(1)計算機硬件系統由5個基本部分組成:運算器、控制器、存儲器、輸入設備和輸出設備。
(2)數據和指令都采用0或1組成的二進制編碼。
(3)采用存儲程序的方式,事先將程序(包括指令和數據)存入存儲器中,計算機在運行程序時自動地、連續地從存儲器中依次取出指令并加以執行,直到程序執行完畢,不需要人工干預。
其核心思想:程序存儲并按地址順序執行。
早期的馮?諾依曼計算機---- 以運算器為中心
輸入輸出設備與存儲器之間的數據傳輸都需通過運算器。結構復雜、控制復雜。
現代計算機---- 以存儲器為核心,總線結構
典型的單CPU、單總線結構圖:
運算器和控制器合稱為中央處理單元(CPU,Central Processing Unit)。
系統連線減少,結構變得清晰,大大簡化了硬件的設計。
知識拓展
組成部件
計算機硬件系統由5個基本部件組成:運算器、控制器、存儲器、輸入設備和輸出設備。構成計算機的五大部件有相對獨立的功能,在控制器的控制下協調統一地完成各自不同的工作。
存儲器----組成結構
- 功能:用來存放計算機要執行的程序或者程序所處理的數據。
- 組成結構
存儲體
地址譯碼電路
讀寫控制電路
輸入輸出線路
存儲器----幾個基本概念
-
存儲單元:對應一個地址編號、存放一定位數二進制代碼的電路集合。
-
存儲字長:一個存儲單元存放的二進制信息也稱為一個存儲字,其位數稱為存儲字長。
-
單元地址:存儲單元的地址編號。
-
單元內容:存儲單元中存放的二進制信息。
-
存儲容量:存儲器能夠存放的二進制信息的總量稱為其存儲容量。
兩種表示形式:
-
存儲器芯片:用字數×字長表示,如1K×4位,它表示一個芯片有1K個單元,每個單元可以存放4位二進制代碼;
-
系統的存儲器:通常用字節數表示,如4GB、1TB。
存儲容量的數量單位
- 位/比特(bit):存儲器容量的最小表示單位,二進制編碼序列中的一個0或1就是一個比特位。
- 字節(B、Byte):也是計算機中最常用、最基本單位。一個字節等于8個比特,即1 Byte=8bit。
- 其他數量單位
KB(Kilo Byte)、MB(Mega Byte)、GB(Giga Byte)、TB(Tera Byte)、PB(Peta Byte)、EB(Exa Byte)、ZB(Zetta Byte)和YB(Yatta Byte)等。
數量關系:1KB= 1024B,1 MB=1024KB,1GB= 1024MB,…,它們之間存在1024倍的數量級關系。
事實上,1K=2(10)? 10(3),1M=2(20)? 10(6),1G=2(30)? 10(9)等等 。
存儲器----內存與外存
- 內存:CPU能夠直接訪問的存儲器。內存的存取速度較高,一般由半導體器件構成。其位成本較高,容量有限。
- 外存:屬于外部設備,它不能被CPU直接訪問,其內容需要導入到內存才能被CPU訪問。
- 通常外存用來存放永久保存的、大量的程序或數據;內存存放一些臨時的或少量的數據和程序。
注意:
目前內存是由半導體存儲器構成,但不能說半導體存儲器就是內存。
- 為了解決速度、容量、成本之間的矛盾,計算機系統中通常采用主存、輔存和高速緩存的三級結構。三者之間協調工作的原理,詳見第4章介紹。
運算器
- 基本功能:計算機系統中進行數據加工和處理的部件,完成各種算術和邏輯運算。
- 基本組成:核心部件是算術邏輯運算單元ALU(Arithmetic Logic Unit),另外還包含累加器和若干個寄存器。基本組成結構如下圖所示。
控制器
控制器是整個計算機的指揮中心,它發布各種操作命令控制計算機的各功能部件有條不紊地進行工作。
(1)控制器的功能
(2)程序和指令
程序是為計算機解決某一問題或完成某一任務,由一組特定編程語句構成的有序集合。
編程語言分高級語言、匯編語言和機器語言三種。
指令是計算機硬件能夠直接執行,完成一些基本操作的編程語句,它屬于機器語言。
指令編碼中包含兩部分信息:操作碼表明指令進行何種操作,地址碼部分表明指令操作的數據位置。指令的一般格式如下:
例如:假設某計算機只有8條指令,其操作碼可用3位二進制編碼來定義,如表1-1所示。
101 1000表示從1000單元取數送入累加器;
001 1000表示從1000單元取數和累加器相加,結果存入累加器。
不同的計算機的指令的格式及編碼規則會有區別,詳細內容參考第5章指令系統。
各部件協調工作過程
輸入輸出設備及適配器
- 輸入設備:把人們熟悉的某種形式的信息轉換為計算機內部能夠識別的二進制信息形式。理想的計算機輸入設備應該“會看”、“會聽”,即能夠把人們用文字或語言所表達的問題,直接送入計算機內部處理。目前常用的輸入設備有鍵盤、鼠標、掃描儀、光筆、攝像頭、語音輸入裝置等。
- 輸出設備:將計算機處理的結果轉變為人或其他設備能接收或識別的信息形式。理想的輸出設備應該“會寫”、“能講”。目前常用的顯示器、打印機、繪圖儀。 輸入輸出設備統稱外圍設備,簡稱外設。
- 適配器:保證外圍設備與主機之間可靠地進行信息的交流。不同類型的外設有不同的適配器,如顯卡是顯示器的適配器。
總線
- 總線是連接計算機系統各部件并進行數據傳送的公共通道,是構成計算機系統的骨架。
- 傳統總線,按其傳送的信號的作用不同分為地址總線 (AB,Address Bus)、數據總線 (DB,Data Bus)、控制總線 (CB,Control Bus) 三種。
計算機系統中有多種總線,關于總線相關概念和技術的內容在第8章詳細介紹。
幾個常用術語
數據流和指令流
- 計算機中存儲或流動的信息既有指令又有數據,從形式上看,它們都是二進制數碼,控制器是如何區分哪些表示的是指令哪些是數據呢?
- 在取指令階段,從內存中讀出的信息流是指令流,它流向控制器;
- 在執行指令階段,從內存中讀出或寫入內存的信息流是數據流,它由內存流向運算器,或者由運算器流向內存。
1.3 計算機系統的軟件
概述
軟件泛指在計算機硬件上運行的各類程序、數據文件及相關的文檔資料。
程序是計算機可以執行的,而文檔不能執行。程序是計算機軟件的主體,所以一般說到軟件主要是指程序。
軟件系統指一臺計算機中全部程序的統稱。
軟件的作用是擴大計算機系統的功能,提高計算機系統的效率,為計算機運行服務提供技術支持。
按照軟件的功能不同,人們把計算機的軟件劃分為系統軟件、應用軟件兩大類。
系統軟件是為整個計算機系統配置的、不依賴于特定應用領域的一些通用軟件,用來管理計算機的硬件系統或軟件資源。只有在系統軟件的管理下,計算機的各硬件部分才能協調一致地工作。系統軟件還為應用軟件提供運行環境,離開系統軟件,應用軟件同樣也不能運行。
系統軟件也有很多種,主要包括操作系統、語言處理程序和數據庫管理系統三大類。
應用軟件是為解決某個特定應用領域的實際問題而編制的程序。
應用軟件從其服務對象的角度,又可分為專用應用軟件和通用應用軟件兩類。
系統軟件
1.操作系統
操作系統(Operating System,OS)是直接運行在“裸機”上的最基本的必備的系統軟件。
計算機系統各種資源(包括硬件資源和軟件資源)的管理者、控制者、調度者和監督者,合理地組織計算機的工作流程,協調計算機各部件之間、系統和用戶之間的關系。其目標是提高各類資源的利用率,方便用戶使用計算機系統,為其他軟件的開發提供必要的基礎和軟件接口。
2.語言處理程序
計算機程序設計的語言可分為三大類:機器語言、匯編語言和高級語言。
機器語言是計算機的硬件可以直接識別并執行的二進制編碼語言,但難以記憶和使用。
將匯編語言源程序翻譯成機器語言目標程序的稱作匯編程序。
編譯程序則是將高級語言程序翻譯成機器語言目標程序的軟件。
無論是匯編程序還是編譯程序,它們都是用于處理軟件語言的程序,統稱為語言處理程序。
3.數據庫管理系統
數據庫應用系統主要由數據庫、數據庫管理系統以及相應的應用程序組成。
數據管理系統,簡稱DBMS(Database Managment System),是為數據庫的建立、使用和維護而配置的軟件。它建立在操作系統的基礎之上,對數據庫進行統一的管理和控制。利用它可以方便地建立、刪除、維護數據庫,對庫中數據進行各種操作。它是數據庫應用系統開發人員與數據庫之間聯系的橋梁。它是一個平臺,是一種系統軟件。
常用的數據庫管理軟件有Oracle、Sybase、MySQL、Informix
應用軟件
應用軟件是為解決某個特定應用領域的實際問題而編制的程序。
如:解決科學與工程計算問題的科學計算軟件,實現生產過程自動化的控制軟件,用于企業財務、人事管理的管理軟件,具有人工智能的專家系統等等。
應用軟件從其服務對象的角度,又可分為專用應用軟件和通用應用軟件兩類。
1.專用的應用軟件
專用的應用軟件是按照用戶的特定需求,用于解決特定問題而開發的軟件。其應用面較窄,往往只限于特定的部門及其下屬單位使用。這種軟件的運行效率較高,開發成本較高。如前面提到的某企業的人事管理軟件,或某特定的生產過程的控制軟件等。
2.通用的應用軟件
通用的應用軟件是指計算機的應用過程中,迅速推廣使用并不斷更新的一些通用工具軟件。如現在計算機中普遍都安裝的文字處理軟件Word、電子表格處理軟件Excel等許多辦公工具軟件。
1.4 計算機系統的多層次結構
計算機系統以硬件為基礎,通過配置軟件擴充功能,形成了一個十分復雜的有機系統。
采用層次結構的觀點和方法去描述計算機系統的組成與功能,有利于正確理解計算機系統的工作過程,明確軟件、硬件在計算機系統中的地位和作用,控制計算機系統的復雜性。
計算機系統分層的方法有很多種,常用的層次結構模型:從系統內部的有機組成和程序設計語言功能的角度劃分的。
從計算機系統組成角度劃分層次結構
自上而下看反映了應用計算機求解問題的過程
從下向上看,直觀展示了構成一個計算機系統時的的逐級生成過程。
從語言功能角度劃分層次結構
如果將計算機功能抽象為“能執行某種程序設計語言編寫的程序”的機器,可以按語言功能劃分計算機層次結構。
實際機器:只能執行機器語言的物理實體,是計算機系統的硬件。
虛擬機(Virtual Machine):一種特殊的軟件,它在計算機平臺和終端用戶之間創建一種環境,終端用戶可以基于這個軟件所創建的環境來操作自己的軟件。使用某種語言編程的程序員,看到的就是可以執行這種語言的機器,即具有這種語言功能的虛擬機。
多層次結構小結:
計算機系統雖然復雜,但具有明顯的層次性。
采用分層的觀點來分析或設計計算機時,可以根據需要,忽略一些無關的細節,針對相應層次去觀察、分析計算機的組成、性能和工作機理,或進行系統各層面的設計,使得復雜的問題變得更容易解決。
比如,有人專門致力于微處理器的研制工作,有人致力于操作系統的開發,也有人專門進行編譯程序的開發等等。
本書重點討論的是第1、第2層中計算機硬件組成的基本原理和實現方法。
硬件和軟件的邏輯等價性:
計算機系統以硬件為基礎,通過配置軟件擴充其功能。在計算機系統設計時,硬件只完成最基本的功能,復雜的功能通過軟件實現。
早期的計算機,硬件和軟件之間的界限十分清楚。隨著計算機技術的發展,軟件、硬件之間的界限變得越來越模糊。許多功能既可以由硬件實現,也可以在硬件支持下靠軟件實現。例如,乘法運算,可由硬件乘法器實現,也可以由乘法子程序實現。
- 隨著微電子技術的發展,集成芯片上制作復雜邏輯電路的成本越來越低,原來依靠軟件實現的功能轉化為大規模、超大規模的集成電路直接實現,出現了軟件硬化,這樣系統將具有更高的處理速度和更強的功能。軟件硬化成為一種趨勢。
- 從系統設計者的角度來說,需要確定哪些功能由硬件實現,哪些功能由軟件實現。對用戶來說,更關心的是系統具有哪些功能。這些功能是硬件還是軟件實現,對用戶來說,在邏輯上是等價的。
- 存儲程序工作方式
- 程序執行過程
- 高級語言程序與機器語言程序的轉換
- 預處理、編譯、匯編、鏈接
- 程序和指令的執行過程
- 取指令、分析指令、執行指令
1.5 計算機的主要性能指標
人們在選擇或設計一臺計算機時,要知道從哪些方面衡量一臺計算機的性能。衡量計算機性能的指標有很多種,而且不同用途的計算機其側重點也有所不同。
這里主要從速度、容量兩方面簡單介紹幾種常用的性能指標,包括主頻、機器字長、存儲容量、存儲器帶寬、運算速度等。
1.主頻
- CPU的工作節拍是由主時鐘信號控制的,這個時鐘信號的頻率就是CPU的主頻。
- 主頻或時鐘周期(主頻的倒數)在很大程度上影響著計算機的工作速度。在一定程度上,主頻越高,CPU的工作速度越高。
2.機器字長
- 指CPU的運算器一次最多能直接處理的二進制信息的位數
- 位數越多,運算精度越高。它由CPU內部的寄存器、加法器以及總線的位數決定,因此也直接影響著硬件的代價。
3.存儲器帶寬
單位時間內從存儲器讀出的二進制位數的多少,稱為存儲器帶寬。它也是影響計算機工作速度的一個重要指標。
4.運算速度
計算機的運算速度與很多因素有關,如機器的主頻、執行何種操作、主存的存取速度等都有關系。衡量計算機運算速度不能單從某一方面來定,必須綜合考慮每條指令的執行時間以及它們在全部操作中所占的比例。目前,一般用以下三個參數描述:CPI、MIPS、FLOPS
4.運算速度
(1)CPI(Cycle Per Instruction)指的是執行一條指令的平均時鐘周期數。計算公式為:
(2)MIPS(Million Instruction Per Second) 指平均每秒執行定點指令的百萬條數。對于一個給定的程序,算式為:
(3)FLOPS(Floating-point Operation Per Second):表示每秒執行浮點操作的次數,算式為:
4.運算速度
MPIS在一定程度上可以反應機器的運算速度。但它過于依賴指令集,用來比較指令集不同的機器性能不準確。
FLOPS取決于機器和程序兩方面,只能用來衡量機器浮點操作的性能,不能體現機器的整體性能。不過,FLOPS是基于操作而不是基于指令,用來比較兩種不同的機器相對來說好些。當然,浮點操作的類型不同,運算時間相差會很大,如浮點加遠遠快于浮點除
與計算機運算速度相關的參數還有3個:
- 吞吐量:一臺計算機在某一時間間隔內能夠處理的信息量。
- 響應時間:從輸入有效到系統產生響應之間間隔的時間。
- CPU執行時間:CPU執行一段程序所占用的時間。 CPU執行時間=程序時鐘周期數*時鐘周期
5.存儲容量
計算機的存儲系統包含主存和外存以及高速緩存。相對于主存,高速緩存的容量很小。外存不能被CPU直接訪問,需要執行的程序與處理的數據要調入主存才能被CPU訪問。計算機處理能力的大小在很大程度上與主存有關。因此一般來說,計算機存儲容量指的是主存容量的大小。
存儲容量:表示存儲器中可以存放的所有二進制位的總數
關于存儲器的容量前面已經介紹,這里不再贅述。
計算機的體系結構、組成與實現 【知識拓展】
計算機體系結構(Computer Architecture)
- 主要研究硬件和軟件功能的劃分,確定硬件和軟件的界面,即哪些功能應劃分給硬件子系統完成,哪些功能應劃分到軟件子系統中完成。更多說的是計算機的外特性,是硬件子系統的結構概念及其功能特性。
- 對于不同的計算機系統,從機器語言或匯編語言程序員的角度看,具有不同的屬性。但高級語言程序員看,它們幾乎沒什么區別,具有相同的屬性。因此,計算機系統是機器語言或者匯編語言的程序設計人員所見到的計算機系統的屬性。
計算機組成(Computer Organization)
- 計算機組成是依據體系結構所確定的硬件子系統的概念結構和功能特性,研究硬件子系統各組成部件的內部結構和相互聯系,實現機器指令級的各種功能和特性,是計算機體系結構的邏輯實現。
- 例如:AMD Opteron 64與Intel Pentium 4的指令系統相同,即兩者的系統結構相同,但內部組成不同,流水線和Cache結構完全不同。
計算機實現(Computer Implementation)
- 計算機實現是指計算機組成的物理實現。它包括處理器、主存儲器等部件的物理結構,器件的集成度和速度,器件、模塊、插件、底板的劃分與連接,專用器件的設計,電源、冷卻、裝配等技術及有關的制造技術和工藝等。
三者之間的關系
系統結構的不同使得采用的組成技術產生差異,計算機組成也會影響系統結構。計算機實現是計算機系統結構和組成的基礎,其技術的發展,特別是器件技術的發展,促進了組成和結構的發展。計算機系統結構、組成和實現之間的關系如圖1-10所示。
隨著計算機技術的迅猛發展,三者之間的關系將變得越來越模糊。
本章小結
- 計算機系統以硬件為基礎,通過配置軟件擴充其功能。軟硬件在邏輯上是等價的。計算機設計時,軟件和硬件功能的分配要綜合考慮成本、速度、可靠性等多種因素。
- 采用分層的觀點來分析或設計計算機,可以根據需要,忽略一些無關的細節,針對相應層次去觀察、分析計算機的組成、性能和工作機理,或進行系統各層面的設計,使得復雜的問題變得更容易解決。
- 以計算機系統組成的角度劃分層次,有利于認識計算機系統的構成過程;以語言的角度劃分層次,有助于理解各種語言的實質和實現途徑。
發布評論請先 登錄
相關推薦
評論