第七章考試要點
一、體系結(jié)構(gòu)的基本概念
�。ㄒ唬� 體系結(jié)構(gòu)的定義
1.Amdahl的定義
1964年G.M.Amdahl(阿姆達爾)在介紹IBM360系統(tǒng)時指出:計算機體系結(jié)構(gòu)是站在程序員的角度所看到的計算機屬性,即程序員要能編寫出可在機器上正確運行的程序所必須了解的概念性結(jié)構(gòu)和功能特性。這是關(guān)于體系結(jié)構(gòu)的早期定義,從此,計算機體系結(jié)構(gòu)(computer architecture)一詞便廣泛地使用起來。
2.Myers的定義
1982年,梅爾斯(G.J.Myers)在他所著《計算機體系結(jié)構(gòu)的進展》(advances in Computer Architecture)一書中,定義了組成計算機系統(tǒng)的若干層次,每一層都提供一定的功能支持它上面的一層,并把不同層之間的界面定義為某種類型的體系結(jié)構(gòu)。Myers的定義發(fā)展了Amdahl的概念性結(jié)構(gòu)的思想,明確了傳統(tǒng)體系結(jié)構(gòu)就是指硬件與軟件之間的界面,即指令集體系結(jié)構(gòu)。根據(jù)這個層次模型,我們可以進一步引入虛擬機的概念,例如,系統(tǒng)虛擬機就是把操作系統(tǒng)提供的命令和功能調(diào)用當(dāng)作該虛擬機的機器語言。又如,高級語言虛擬機就是把某種高級語言當(dāng)作它的機器語言。從這個觀點來看,說“BASIC就是計算機”也不無道理。從Myers的定義可以看出,計算機系統(tǒng)組織包括了各種體系結(jié)構(gòu),因此指令集體系統(tǒng)構(gòu)就成為計算機系統(tǒng)組織的一個子集。
3.Baer的定義
1984年拜爾(J.L.Baer)在一篇題為“計算機體系結(jié)構(gòu)”(Computer Architecture)的文章中,給出了一個含義更加廣泛的定義:體系結(jié)構(gòu)是由結(jié)構(gòu)、組織、實現(xiàn)、性能四個基本方面組成。其中,結(jié)構(gòu)指計算機系統(tǒng)各種硬件的互連;組織指各種部件的動態(tài)聯(lián)系與管理;實現(xiàn)指各模塊設(shè)計的組裝完成;性能指計算機系統(tǒng)的行為表現(xiàn)。這個定義發(fā)展了Amdahl的功能特性思想。顯然,這里的計算機系統(tǒng)組織又成為體系結(jié)構(gòu)的一個子集。
4.我們的觀點
目前,國內(nèi)流行的幾本體系結(jié)構(gòu)的教材,大多采用Myers的說法。因而,常對計算機體系結(jié)構(gòu)、計算機組織、計算機實現(xiàn)三者的關(guān)系加以區(qū)別:
�。�1)計算機體系結(jié)構(gòu)(computer architecture)是指計算機的概念性結(jié)構(gòu)和功能屬性。
(2)計算機組織(computer organization)是指計算機體系結(jié)構(gòu)的邏輯實現(xiàn),包括機器內(nèi)的數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計等。我們平常也把它稱為計算機組成原理。
(3)計算機實現(xiàn)(computer implementation)是指計算機組織的物理實現(xiàn)。
�。ǘ� 體系結(jié)構(gòu)的繼承與發(fā)展
1.傳統(tǒng)體系結(jié)構(gòu)的形成
1964年Amdahl在宣布IBM360系統(tǒng)時,也就是提出前述體系結(jié)構(gòu)的定義時,還提出了采用系列機的思想。系列機的出現(xiàn)被認為是計算機發(fā)展史上的一個重要里程碑。采用系列機的思想后,比較好地解決了硬件技術(shù)飛速發(fā)展與軟件環(huán)境要求相對穩(wěn)定的矛盾。這就要求在比較長的時間內(nèi),保證系列機的體系結(jié)構(gòu)基本不變。其中,最重要的是確定好它的指令系統(tǒng)、數(shù)據(jù)表示以及其它概念性的結(jié)構(gòu)。
2.IBM對體系結(jié)構(gòu)繼承性的貢獻
IBM系列機的出現(xiàn)對體系結(jié)構(gòu)繼承性的形成產(chǎn)生過很大的影響。
�。�1)IBM第一代計算機1953年4月7日,IBM公司IBM701大型科學(xué)計算機面世。
�。�2)IBM第二代計算機1958年IBM推出了它的第二代主流產(chǎn)品7000系列晶體管計算機。
�。�3)IBM第三代計算機1961年IBM公司提出了“360系統(tǒng)計劃”。360系統(tǒng)的主要貢獻是:確立了體系結(jié)構(gòu)的概念。1971年IBM公司又推出370系統(tǒng)取代360系統(tǒng)。它繼承了360的體系結(jié)構(gòu),并且進一步實施“微碼決策”。1977年IBM公司又推出3030系列,繼承了370系統(tǒng)的體系結(jié)構(gòu),進一步實施“微碼決策”,大幅度改善了多虛存操作系統(tǒng)MVS/SE,增強了安全保密性和神秘色彩,使兼容廠家難以仿制。
�。�4)IBM第四代計算機1979年IBM公司又推出4300系列、3080系列,1985年又推出3090系列。90年代它又推出IBM9000系列。
3.馮?諾依曼結(jié)構(gòu)的特點
把馮?諾依曼計算機(Von Neumann computer)的特點歸納如下:
(1)使用單一處理部件來完成計算、存儲及通信工作。
�。�2)使用線性組織的定長存儲單元來存儲程序,存儲時對指令和數(shù)據(jù)不加區(qū)別。
�。�3)存儲空間的單元是直接尋址的。
�。�4)使用二進制機器語言,其指令完成基本操作碼的簡單操作。
�。�5)對計算進行集中的順序的控制。
4.普林斯頓結(jié)構(gòu)與哈佛結(jié)構(gòu)
有人就把馮?諾依曼結(jié)構(gòu)稱為普林斯頓體系結(jié)構(gòu)(Princetion architecture)。與此相對的一種結(jié)構(gòu)則稱為哈佛體系結(jié)構(gòu)(Harvard architecture)。哈佛體系結(jié)構(gòu)的主要特點是把指令和數(shù)據(jù)分開進行存儲。今天,我們所說的哈佛結(jié)構(gòu)主要是指在單一的主存儲器情況下,帶有兩個分離的指令高速緩存(instruction cache)和數(shù)據(jù)高速緩存(data cache)。
5.非馮?諾依曼結(jié)構(gòu)的發(fā)展
馮結(jié)構(gòu)既為計算機的發(fā)展鋪平了道路,又因“集中的、順序的控制”而成為性能提高的瓶頸。因此,計算機科學(xué)家仍在不斷地探索各種非馮?諾依曼結(jié)構(gòu)的計算機。例如,函數(shù)式編程語言計算機、數(shù)據(jù)流計算機就是著名的非馮?諾依曼結(jié)構(gòu)。
(三) 體系結(jié)構(gòu)的分類
1.宏觀上按處理機數(shù)量的分類
�。�1)單處理系統(tǒng)單處理系統(tǒng)(uniprocessing system)是利用一個處理單元與其它外部設(shè)備結(jié)合起來,實現(xiàn)存儲、計算、通信、輸入與輸出等功能的系統(tǒng)。
�。�2)并行處理與多處理系統(tǒng)并行處理與多處理系統(tǒng)(parallel processing and multiprocessing system)是為了充分發(fā)揮問題求解過程中處理的并行性,利用兩個以上的處理機互連起來,彼此進行通信協(xié)調(diào),以便共同求解一個大問題的計算機系統(tǒng)。
(3)分布式處理系統(tǒng)分布式處理系統(tǒng)(distributed processing system)是指物理上遠距離而松耦合的多計算機系統(tǒng)。其中,物理上的遠距離意味著通信時間與處理時間相比已不可忽略,在通信線路上的數(shù)據(jù)傳輸速率要比在處理機內(nèi)部總線上傳輸慢得多,這也正是松耦合的含義。
2.微觀上按并行程度的分類
�。�1)Flynn的分類法1966年M.J.Flynn提出按指令流和數(shù)據(jù)流的多少進行分類的方法。他首先定義了:指令流是機器執(zhí)行的指令序列;數(shù)據(jù)流是由指令調(diào)用的數(shù)據(jù)序列。然后,他把計算機系統(tǒng)分為四類。
①單指令流、單數(shù)據(jù)流(SISD)計算機
�、趩沃噶盍�、多數(shù)據(jù)流(SIMD)計算機
�、鄱嘀噶盍鳌螖�(shù)據(jù)流(MISD)計算機
�、芏嘀噶盍鳌⒍鄶�(shù)據(jù)流(MIMD)計算機
�。�2)馮澤云分類法1972年美籍華人馮澤云(Tse-yun Feng)教授提出按并行度(degree of parallelism)對各種計算機系統(tǒng)進行結(jié)構(gòu)分類的方法。他把計算機系統(tǒng)分成四類:①字串行、位串行(WSBS)計算機②字并行、位串行(WPBS)計算機③字串行、位并行(WSBP)計算機④字并行、位并行(WPBP)計算機
�。�3)Handler分類法1977年德國的漢德勒(Wolfgang Handler)提出一個基于硬件并行程度的計算并行度的方法。他把計算機的硬件結(jié)構(gòu)分為三個層次:處理機級、每個處理機中的算邏單元級、每個算邏單元中的邏輯門電路級。分別計算機這三級中可以并行或流水處理的程序,即可算出某系統(tǒng)的并行度。
�。�4)Kuck分類法1978年美國的庫克(David J.Kuck)提出與Flynn分類法類似的方法,只是他用了指令流和執(zhí)行流(execution stream)及其多重性來描述計算機系統(tǒng)控制結(jié)構(gòu)的特征。他把系統(tǒng)結(jié)構(gòu)分為四類:
�、賳沃噶盍�、單執(zhí)行流(SISE)
�、趩沃噶盍鳌⒍鄨�(zhí)行流(SIME)
�、鄱嘀噶盍鳌螆�(zhí)行流(MISE)
�、芏嘀噶盍�、多執(zhí)行流(MIME),它們是典型的多處理機系統(tǒng)。一種好的分類法能幫助我們深入地理解體系結(jié)構(gòu)的特點,使人們能更好掌握計算機的工作原理以及發(fā)展趨勢。但很難說已經(jīng)有令人滿意的分類法被學(xué)術(shù)界一致認可。
二、指令系統(tǒng)
�。ㄒ唬� 指令集體系結(jié)構(gòu)的分類
1.分類的依據(jù)
從體系結(jié)構(gòu)的觀點對指令集進行分類,可以根據(jù)下述五種尺度:
�。�1)操作數(shù)在CPU中的存儲方式,即操作數(shù)從主存中取來后要把它保存在什么地方。
(2)顯式操作數(shù)的數(shù)量,即在條典型的指令中有多少個顯式命名的操作數(shù)。
�。�3)操作數(shù)的位置,即任一個ALU指令的操作數(shù)能否放在主存中,或者必須把某些操作甚至全部操作數(shù)都放在CPU的內(nèi)部存儲器中?如果某操作數(shù)要放在主存中,那么它是如何定位的?
�。�4)指令的操作,即在指令集中提供哪些操作?
�。�5)操作數(shù)的類型與大小,即每個操作數(shù)是什么類型、尺寸大小,以及怎樣對它規(guī)定。
希望與更多計算機等級考試的網(wǎng)友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |