第七章考試要點(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è)子集。來源:www.examda.com
4.我們的觀點(diǎn)
目前,國內(nèi)流行的幾本體系結(jié)構(gòu)的教材,大多采用Myers的說法。因而,常對(duì)計(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)境要求相對(duì)穩(wěn)定的矛盾。這就要求在比較長的時(shí)間內(nèi),保證系列機(jī)的體系結(jié)構(gòu)基本不變。其中,最重要的是確定好它的指令系統(tǒng)、數(shù)據(jù)表示以及其它概念性的結(jié)構(gòu)。
2.IBM對(duì)體系結(jié)構(gòu)繼承性的貢獻(xiàn)
IBM系列機(jī)的出現(xiàn)對(duì)體系結(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í)對(duì)指令和數(shù)據(jù)不加區(qū)別。
(3)存儲(chǔ)空間的單元是直接尋址的。
(4)使用二進(jìn)制機(jī)器語言,其指令完成基本操作碼的簡(jiǎn)單操作。
(5)對(duì)計(jì)算進(jìn)行集中的順序的控制。
4.普林斯頓結(jié)構(gòu)與哈佛結(jié)構(gòu)
有人就把馮?諾依曼結(jié)構(gòu)稱為普林斯頓體系結(jié)構(gòu)(Princetion architecture)。與此相對(duì)的一種結(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)。 來源:www.examda.com
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)分為四類。
一、體系結(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è)子集。來源:www.examda.com
4.我們的觀點(diǎn)
目前,國內(nèi)流行的幾本體系結(jié)構(gòu)的教材,大多采用Myers的說法。因而,常對(duì)計(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)境要求相對(duì)穩(wěn)定的矛盾。這就要求在比較長的時(shí)間內(nèi),保證系列機(jī)的體系結(jié)構(gòu)基本不變。其中,最重要的是確定好它的指令系統(tǒng)、數(shù)據(jù)表示以及其它概念性的結(jié)構(gòu)。
2.IBM對(duì)體系結(jié)構(gòu)繼承性的貢獻(xiàn)
IBM系列機(jī)的出現(xiàn)對(duì)體系結(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í)對(duì)指令和數(shù)據(jù)不加區(qū)別。
(3)存儲(chǔ)空間的單元是直接尋址的。
(4)使用二進(jìn)制機(jī)器語言,其指令完成基本操作碼的簡(jiǎn)單操作。
(5)對(duì)計(jì)算進(jìn)行集中的順序的控制。
4.普林斯頓結(jié)構(gòu)與哈佛結(jié)構(gòu)
有人就把馮?諾依曼結(jié)構(gòu)稱為普林斯頓體系結(jié)構(gòu)(Princetion architecture)。與此相對(duì)的一種結(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)。 來源:www.examda.com
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)分為四類。