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