《計(jì)算機(jī)組成原理》課件第1章_第1頁
《計(jì)算機(jī)組成原理》課件第1章_第2頁
《計(jì)算機(jī)組成原理》課件第1章_第3頁
《計(jì)算機(jī)組成原理》課件第1章_第4頁
《計(jì)算機(jī)組成原理》課件第1章_第5頁
已閱讀5頁,還剩145頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第1章計(jì)算機(jī)系統(tǒng)概論1.1

計(jì)算機(jī)發(fā)展歷程1.2計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)及計(jì)算機(jī)組成1.3計(jì)算機(jī)系統(tǒng)的組成1.4計(jì)算機(jī)的工作過程1.5計(jì)算機(jī)性能1.6計(jì)算機(jī)的分類和應(yīng)用本章小結(jié)習(xí)題1

1.1計(jì)算機(jī)發(fā)展歷程

電子數(shù)字計(jì)算機(jī)是一種能夠自動、高速、精確地進(jìn)行信息處理的現(xiàn)代化電子設(shè)備。其基本特點(diǎn)是運(yùn)算速度快、記憶能力強(qiáng)、有邏輯判斷能力。電子數(shù)字計(jì)算機(jī)最初只是作為一

種計(jì)算工具,現(xiàn)已應(yīng)用于人類生產(chǎn)和生活的各個(gè)方面。1.1.1馮·諾依曼型計(jì)算機(jī)的特點(diǎn)和功能

1943年開始研制的電子數(shù)字積分器和計(jì)算機(jī)(ElectronicNumericalIntegratorAnd

Computer,ENIAC)是美國第一臺由程序控制的電子數(shù)字計(jì)算機(jī),由美國賓夕法尼亞大學(xué)莫爾(Moore)學(xué)院的莫克利(J.W.Mauchly)和??颂?J.P.Eckert)共同負(fù)責(zé)研制。當(dāng)時(shí)正值第二次世界大戰(zhàn),美國的軍隊(duì)非常迫切地需要對他們設(shè)計(jì)的新型火炮的彈道進(jìn)行計(jì)算,當(dāng)?shù)弥娮佑?jì)算機(jī)可以將彈道表的計(jì)算時(shí)間從幾天縮短到幾分鐘時(shí),美國陸軍部決定資助ENIAC計(jì)劃。直到1945年年底,ENIAC計(jì)算機(jī)才研制完成,并于1946年2月正式交付使用,它被公認(rèn)為世界上第一臺全電子通用數(shù)字計(jì)算機(jī)。

ENIAC計(jì)算機(jī)共使用了18000多個(gè)電子管,1500個(gè)繼電器,重達(dá)30噸,占地170m2,每秒可進(jìn)行5000次加法運(yùn)算,有一個(gè)存儲容量為1000比特(可存儲大約20個(gè)字長為10位的十進(jìn)制數(shù))的存儲器。但ENIAC計(jì)算機(jī)還不是存儲程序的計(jì)算機(jī),也就是說,程序并不是存放在存儲器中,而是通過人工設(shè)置開關(guān)和插拔電線以改變接線的方法來編排程序。ENIAC計(jì)算機(jī)還沒有采用二進(jìn)制的計(jì)算方式,而是采用十進(jìn)制的計(jì)算方式,它通過采用10條信號線來表示0~9之間的一個(gè)數(shù)據(jù)。

1950年第一臺存儲程序計(jì)算機(jī)EDVAC(ElectronicDiscreteVariableAutomaticComputer)誕生,它由美籍匈牙利數(shù)學(xué)家馮·諾依曼(VonNeumann)與莫爾(Moore)小組合作研制。

EDVAC計(jì)算機(jī)采用了二進(jìn)制的數(shù)據(jù)表示方法,并設(shè)置了能對二進(jìn)制數(shù)進(jìn)行運(yùn)算的算術(shù)邏輯運(yùn)算單元(ALU)。

該計(jì)算機(jī)采用存儲程序工作方式,程序存儲在主存儲器中,可以隨時(shí)修改。馮·諾依曼在他發(fā)表的《關(guān)于電子計(jì)算裝置邏輯結(jié)構(gòu)初探》報(bào)告中提出了存儲程序的思想。該思想可以概括如下:計(jì)算機(jī)要自動完成解題任務(wù),必須將事先設(shè)計(jì)好的、用以描述計(jì)算機(jī)解題過程的程序如同數(shù)據(jù)一樣采用二進(jìn)制形式存儲在機(jī)器中,計(jì)算機(jī)在工作時(shí)自動高速地從機(jī)器中逐條取出指令加以執(zhí)行。

以存儲程序原理為基礎(chǔ)的各類計(jì)算機(jī),統(tǒng)稱為馮·諾依曼計(jì)算機(jī)。早期經(jīng)典的馮·諾依曼計(jì)算機(jī)具有如下基本特點(diǎn):

(1)計(jì)算機(jī)由運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備五大部件組成。

(2)采用存儲程序的方式,程序和數(shù)據(jù)存放在同一存儲器中,并且沒有對兩者加以區(qū)分,指令和數(shù)據(jù)一樣可以送到運(yùn)算器進(jìn)行運(yùn)算,即由指令組成的程序是可以修改的。

(3)指令和數(shù)據(jù)均以二進(jìn)制編碼表示,采用二進(jìn)制運(yùn)算。

(4)指令由操作碼和地址碼組成,操作碼用來表示操作的類型,地址碼用來表示操作數(shù)和操作結(jié)果的地址。操作數(shù)類型由操作碼決定,操作數(shù)本身不能判定其數(shù)據(jù)類型。

(5)指令在存儲器中按其執(zhí)行順序存放,由指令計(jì)數(shù)器(又稱程序計(jì)數(shù)器)指明要執(zhí)行的指令所在的存儲單元的地址。一般情況下,每執(zhí)行完一條指令,指令計(jì)數(shù)器順序遞增。指

令的執(zhí)行順序可按運(yùn)算結(jié)果或外界條件而改變,但是解題的步驟仍然是順序的。

(6)機(jī)器以運(yùn)算器為中心,輸入/輸出設(shè)備與存儲器之間的數(shù)據(jù)傳送都通過運(yùn)算器。

經(jīng)典的馮·諾依曼計(jì)算機(jī)是以運(yùn)算器為中心的,如圖1.1所示。其中,輸入設(shè)備、輸出設(shè)備與存儲器之間的數(shù)據(jù)傳送都需通過運(yùn)算器。圖1.1馮·諾依曼型計(jì)算機(jī)硬件組成圖按照存儲程序原理,馮·諾依曼型計(jì)算機(jī)必須具備五大功能:

(1)輸入/輸出功能。計(jì)算機(jī)必須有能力把原始數(shù)據(jù)和解題步驟輸入到機(jī)器中,同時(shí)也可以把計(jì)算結(jié)果和計(jì)算過程中的情況輸出給使用者。

(2)記憶功能。計(jì)算機(jī)能夠存儲(記憶)原始數(shù)據(jù)和解題步驟,以及解題過程中產(chǎn)生的一些中間結(jié)果。

(3)計(jì)算功能。計(jì)算機(jī)應(yīng)能進(jìn)行一些基本的計(jì)算,并能利用這些基本計(jì)算組合成使用者所需的一切計(jì)算。

(4)判斷功能。計(jì)算機(jī)在完成一步操作后,應(yīng)具備從預(yù)先無法確定的幾種方案中選擇一種操作方案的能力,以保證解題過程的正確性。

(5)自我控制功能。計(jì)算機(jī)應(yīng)能保證程序執(zhí)行的正確性和各部件之間的協(xié)調(diào)性。

雖然計(jì)算機(jī)種類繁多,運(yùn)算處理能力有強(qiáng)有弱,但作為計(jì)算機(jī),它們的基本功能卻是相同的。即馮·諾依曼型計(jì)算機(jī)都應(yīng)當(dāng)具有輸入/輸出、記憶、計(jì)算、判斷和自我控制這五

大功能。

60多年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展和新應(yīng)用領(lǐng)域的開拓,通用計(jì)算機(jī)在設(shè)計(jì)時(shí)對馮·諾依曼結(jié)構(gòu)作了很多改進(jìn),使計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)有了很大的發(fā)展,例如機(jī)器程序與數(shù)據(jù)分開存放在不同的存儲器區(qū)域中,程序不允許修改,計(jì)算機(jī)不再以運(yùn)算器為中心,而是以存儲器為中心等。雖然有以上這些突破,但其本質(zhì)變化不大,習(xí)慣上仍稱之為馮·諾依曼型計(jì)

算機(jī)。

馮·諾依曼型計(jì)算機(jī)的局限性在于它的并行性有限,使工程設(shè)計(jì)人員一直未能找到構(gòu)建廉價(jià)且與大部分商用軟件兼容的快速系統(tǒng)的途徑。顯然,未受到要與馮·諾依曼體系結(jié)構(gòu)保持兼容性要求約束的工程師們,就可以自由地選擇使用許多不同的計(jì)算模式。許多不同的研究領(lǐng)域都屬于非馮·諾依曼模型的范疇,包括神經(jīng)網(wǎng)絡(luò)(利用人腦模型的思想作為計(jì)算范式)、基因算法(利用生物學(xué)和DNA演化的思想開發(fā)的算法)、量子計(jì)算機(jī)(在量子效應(yīng)和量子力學(xué)基礎(chǔ)上開發(fā)的進(jìn)行高速數(shù)學(xué)和邏輯運(yùn)算、存儲及處理量子信息的計(jì)算機(jī))、光子計(jì)算機(jī)(利用光子取代電子進(jìn)行數(shù)據(jù)運(yùn)算、傳輸和存儲的計(jì)算機(jī))、納米計(jì)算機(jī)(采用納米技術(shù)研發(fā)的新型高性能計(jì)算機(jī))和大規(guī)模并行處理機(jī)等。在這些新的體系結(jié)構(gòu)中,并行計(jì)算的概念是目前最流行的。1.1.2計(jì)算機(jī)的發(fā)展歷史

自從電子計(jì)算機(jī)問世60多年來,從使用器件的角度來說,計(jì)算機(jī)的發(fā)展經(jīng)歷了五個(gè)階段,習(xí)慣上稱為五代。

第一代為電子管計(jì)算機(jī)時(shí)代(1946年~1957年)。其主要特點(diǎn)是采用電子管作為基本器件,計(jì)算機(jī)的運(yùn)算速度為每秒幾千次至幾萬次,其體積龐大,成本很高,可靠性較低。在此

期間,計(jì)算機(jī)主要用于軍事和國防尖端技術(shù)方面的計(jì)算與研究工作,但它為計(jì)算機(jī)技術(shù)的發(fā)展奠定了基礎(chǔ),其研究成果后來擴(kuò)展到民用,又轉(zhuǎn)為工業(yè)產(chǎn)品,形成了計(jì)算機(jī)工業(yè)。

20世紀(jì)50年代中期,美國IBM公司在計(jì)算機(jī)行業(yè)中崛起,1954年12月推出的IBM650小型機(jī)是第一代計(jì)算機(jī)中銷售最廣的機(jī)器,銷售量超過了1000臺。

第二代為晶體管計(jì)算機(jī)時(shí)代(1958年~1964年)。在這個(gè)時(shí)期,計(jì)算機(jī)的主要器件逐步由電子管改為晶體管,運(yùn)算速度提高到每秒幾萬次至幾十萬次。與電子管計(jì)算機(jī)相比,晶

體管計(jì)算機(jī)縮小了體積,降低了功耗,提高了速度和可靠性。盡管使用了晶體管,這一代的計(jì)算機(jī)系統(tǒng)的體積還是過于龐大且價(jià)格也相當(dāng)昂貴,通常只有一些大學(xué)、政府機(jī)關(guān)和大型商業(yè)機(jī)構(gòu)才買得起。在這一時(shí)期,涌現(xiàn)了大量的計(jì)算機(jī)制造商。其中,IBM公司、數(shù)字儀器公司(DEC)和Univac公司(現(xiàn)在稱做Unisys公司)等主導(dǎo)了當(dāng)時(shí)的計(jì)算機(jī)產(chǎn)業(yè)。據(jù)統(tǒng)計(jì),IBM公司在這期間成功銷售了7094臺作為科學(xué)應(yīng)用和1401臺作為商業(yè)應(yīng)用的晶體管計(jì)算機(jī)。DEC公司在當(dāng)時(shí)則忙于建造PDP-1型的計(jì)算機(jī)系統(tǒng)。Univac公司推出了它的Unisys1100系列產(chǎn)品,出現(xiàn)了系列化思想的萌芽??刂茢?shù)據(jù)公司(CDC)在這個(gè)時(shí)期建造了世界上第一臺超級計(jì)算機(jī)CDC6600,這臺價(jià)格為1000萬美元的超級計(jì)算機(jī)每秒可以執(zhí)行1000萬條指令,采用60位字長,并且擁有在當(dāng)時(shí)令人吃驚的128KB的主存儲器。第三代為集成電路計(jì)算機(jī)時(shí)代(1965年~1971年)。在這個(gè)時(shí)期,計(jì)算機(jī)采用集成電路作為基本器件,在每個(gè)集成電路芯片上可集成幾十個(gè)至幾千個(gè)元件,計(jì)算機(jī)的運(yùn)算速度提

高到每秒幾十萬次至幾百萬次。由于采用了集成電路,計(jì)算機(jī)的體積、功耗和成本等進(jìn)一步下降,而速度和可靠性則相應(yīng)提高,這就促成了計(jì)算機(jī)應(yīng)用范圍的進(jìn)一步擴(kuò)大,占領(lǐng)

了諸如科學(xué)計(jì)算、數(shù)據(jù)處理、實(shí)時(shí)控制等多個(gè)應(yīng)用領(lǐng)域。

IBM360系列計(jì)算機(jī)是第一批采用集成電路制造的商用計(jì)算機(jī),也是影響最大的第三代計(jì)算機(jī)。IBM360系列機(jī)是IBM公司提供的第一代可以相互兼容的系列機(jī)產(chǎn)品,也就是說

這個(gè)系列的計(jì)算機(jī)都使用相同的匯編語言。這樣,一些小型機(jī)用戶可以很方便地升級到較大型的機(jī)器,而無需重新編寫原來所有的應(yīng)用軟件。除系列化之外,IBM360還具有通用化

和標(biāo)準(zhǔn)化的特點(diǎn),這在當(dāng)時(shí)來說是一種具有革命性的新思想。第四代為大規(guī)模和超大規(guī)模集成電路計(jì)算機(jī)時(shí)代(1972年~1990年)。在這個(gè)時(shí)期,計(jì)算機(jī)采用大規(guī)模和超大規(guī)模集成電路(VeryLargeScaleIntegration,VLSI)作為基本器件,在

每個(gè)集成電路芯片上可集成多達(dá)幾千個(gè)至幾十萬個(gè)元件。由于采用了大規(guī)模和超大規(guī)模集成電路,計(jì)算機(jī)的體積進(jìn)一步縮小,成本進(jìn)一步降低,可靠性進(jìn)一步提高,運(yùn)算速度可達(dá)每秒一千萬次至幾億次。

在這個(gè)時(shí)期,還引入了分時(shí)共享和多道程序處理的概念,即具有允許多個(gè)人同時(shí)使用一臺計(jì)算機(jī)的能力。具有分時(shí)共享能力的小型計(jì)算機(jī)系統(tǒng)的出現(xiàn),例如PDP-8、PDP-11的出現(xiàn),使得計(jì)算機(jī)逐步進(jìn)入到一些小型公司和許多大學(xué),應(yīng)用領(lǐng)域進(jìn)一步擴(kuò)大。在這個(gè)時(shí)期,由大規(guī)模集成電路組成的微型計(jì)算機(jī)和單片機(jī)開始出現(xiàn)。集成電路技術(shù)的發(fā)展同樣也促進(jìn)了功能更加強(qiáng)大的超級計(jì)算機(jī)的開發(fā),如CrayResearchCorporation公司于1976年推出了價(jià)格為880萬美元、用于向量處理的Cray-1超級計(jì)算機(jī)。Cray-1在性能上已經(jīng)遠(yuǎn)遠(yuǎn)超過了CDC6600,它可以在一秒鐘內(nèi)執(zhí)行超過1.6億條指令,并支持8MB的存儲器。第五代為巨大規(guī)模集成電路計(jì)算機(jī)時(shí)代(1991年至今)。這一代計(jì)算機(jī)采用巨大規(guī)模集成電路(UltraLargeScaleIntegration,ULSI)作為基本器件,在每個(gè)集成電路芯片上集成的元件超過一百萬個(gè),有的甚至達(dá)一千萬個(gè)以上。由于采用了巨大規(guī)模集成電路,計(jì)算機(jī)的體積進(jìn)一步縮小,成本進(jìn)一步降低,運(yùn)算速度可達(dá)每秒十億次至千萬億次。

在這個(gè)時(shí)期,微型計(jì)算機(jī)和嵌入式計(jì)算機(jī)得到了進(jìn)一步的發(fā)展,同時(shí)還出現(xiàn)了單芯片多核處理器、可重構(gòu)單芯片多核處理器等高性能處理器,以及采用這些高性能處理器構(gòu)成的超級計(jì)算機(jī)。單個(gè)處理器的運(yùn)算速度已達(dá)到每秒幾億次至幾百億次,由高性能微處理器構(gòu)建的超級計(jì)算機(jī)的速度可達(dá)到每秒一千萬億次浮點(diǎn)運(yùn)算(1PFLOPS)。例如,2008年6月18日,《全球超級計(jì)算機(jī)TOP500強(qiáng)名單》發(fā)布,IBM的走鵑(Roadrunner)超級計(jì)算機(jī)大幅超越了藍(lán)色基因/L(BlueGene/L),成為目前世界上運(yùn)行速度最快的超級計(jì)算機(jī),它是全球第一臺混合式超級計(jì)算機(jī),采用了Cell處理器和x86架構(gòu)的AMD皓龍?zhí)幚砥?,最高性能達(dá)1.026PFLOPS,正式宣告超級計(jì)算機(jī)的運(yùn)算能力進(jìn)入千萬億次級。由IBM和美國能源部(DOE)下屬的國家核安全局(NNSA)聯(lián)合開發(fā)的藍(lán)色基因/L超級計(jì)算機(jī)的Linpack性能(Linpack為一基準(zhǔn)測試程序)達(dá)478.2TFLOPS。

2008年6月25日,包含了近7000顆低功耗AMD四核皓龍?zhí)幚砥鞯膰a(chǎn)曙光5000A超級計(jì)算機(jī)在上海推出,最高性能達(dá)230TFLOPS,Linpack性能高達(dá)160TFLOPS。這個(gè)速度將有望讓中國高性能計(jì)算機(jī)再次躋身世界前十。這臺超百萬億次的計(jì)算機(jī)是目前中國運(yùn)算能力最強(qiáng)的超級計(jì)算機(jī),它不僅向世界再次展示了中國在高性能計(jì)算領(lǐng)域的強(qiáng)大實(shí)力,也為中國眾多重大科研項(xiàng)目鋪平了道路,為中國信息產(chǎn)業(yè)的長遠(yuǎn)發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。曙光公司將與龍芯公司合作,計(jì)劃于2010年推出我國第六代千萬億次超級計(jì)算機(jī)??傊?,從1946年計(jì)算機(jī)誕生以來,在保持芯片價(jià)格不變的前提下,微處理器芯片上的晶體管數(shù)每隔18~24個(gè)月便翻一番。在保持微處理器速度不變的前提下,微處理器芯片價(jià)

格每18~24個(gè)月將降低約48%,這就是著名的摩爾定律(Moore’sLaw)。在1965年,當(dāng)時(shí)為Intel公司奠基人的摩爾曾預(yù)測他的這個(gè)假定能夠維持10年左右的時(shí)間。然而,芯片制造術(shù)的進(jìn)步已經(jīng)讓摩爾定律維持了超過40年。因?yàn)檑E線和器件的尺寸取決于蝕刻光束的波長,而我們生成和聚焦短波長激光和X射線的能力有限。此外,芯片跡線的寬度將很快接近構(gòu)成跡線的材料的分子寬度,跡線不可能小于一個(gè)分子寬度。因此,當(dāng)采用當(dāng)前的微處理器設(shè)計(jì)和制造技術(shù)達(dá)到極限時(shí),摩爾定律所預(yù)測的集成電路的這種發(fā)展趨勢不可能再延續(xù)下去,除非計(jì)算機(jī)采用全新的技術(shù),如光子技術(shù)、量子技術(shù)、納米技術(shù)等。1.1.3計(jì)算機(jī)的發(fā)展趨勢

1.巨型化

巨型化計(jì)算機(jī)是指具有高速度、大容量、高吞吐量的計(jì)算機(jī)。巨型機(jī)又稱超級計(jì)算機(jī),它采用并行處理技術(shù)來改進(jìn)計(jì)算機(jī)結(jié)構(gòu),使計(jì)算機(jī)系統(tǒng)可同時(shí)執(zhí)行多條指令或同時(shí)對多個(gè)數(shù)據(jù)進(jìn)行處理,進(jìn)一步提高計(jì)算機(jī)的運(yùn)行速度。超級計(jì)算機(jī)通常由成百上千甚至更多的處理器(機(jī))組成,能完成普通計(jì)算機(jī)或服務(wù)器不能計(jì)算的大型復(fù)雜任務(wù)。從超級計(jì)算機(jī)獲得的數(shù)據(jù)分析和模擬結(jié)果,能推動各個(gè)領(lǐng)域尖端項(xiàng)目的研究與開發(fā)。目前,一般超級計(jì)算機(jī)的運(yùn)算速度可達(dá)每秒百萬億次浮點(diǎn)運(yùn)算。世界上最受歡迎的動畫片、很多耗巨資拍攝的電影

中使用的特技效果等都是在超級計(jì)算機(jī)上完成的。日本、美國和中國已成為世界上擁有每秒百萬億次浮點(diǎn)運(yùn)算超級計(jì)算機(jī)的國家,這些國家和其他國家正在進(jìn)一步研發(fā)更高速的超

級計(jì)算機(jī)。超級計(jì)算機(jī)的研發(fā)涉及的內(nèi)容很廣,主要包括高速微處理器、高速互連網(wǎng)絡(luò)、并行操作系統(tǒng)、并行編譯、并行算法、并行編程等,超級計(jì)算機(jī)已在科技界內(nèi)引起了開發(fā)

與創(chuàng)新的狂潮。

2.微型化

微型化計(jì)算機(jī)是指采用巨大規(guī)模集成電路組成的體積小、價(jià)格低、功能強(qiáng)的計(jì)算機(jī)。

這種計(jì)算機(jī)主要包括嵌入式計(jì)算機(jī)和微型計(jì)算機(jī)。嵌入式計(jì)算機(jī)已進(jìn)入儀器、儀表、家用電器等小型儀器設(shè)備中,同時(shí)也作為工業(yè)控制過程的心臟,使儀器設(shè)備實(shí)現(xiàn)“智能化”。隨著電子技術(shù)的進(jìn)一步發(fā)展,筆記本型、掌上型、嵌入式等計(jì)算機(jī)必將以更優(yōu)的性能價(jià)格比受到人們的歡迎。

3.網(wǎng)絡(luò)化

計(jì)算機(jī)與互聯(lián)網(wǎng)絡(luò)組成高速信息通道,互聯(lián)網(wǎng)絡(luò)擴(kuò)展了計(jì)算機(jī)的概念。全世界幾乎所有的國家都直接或間接地與Internet相連,使之成為一個(gè)全球范圍的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)。人們已充分領(lǐng)略到網(wǎng)絡(luò)的魅力,可以通過Internet與世界各地的其他用戶自由地進(jìn)行通信,可以共享計(jì)算機(jī)硬件資源、軟件資源和信息資源。目前,通信業(yè)界正在醞釀著空前的從互聯(lián)網(wǎng)到光網(wǎng)絡(luò)的革命。為了克服Internet本身的缺陷,滿足商業(yè)用戶對電子商務(wù)的需求,光速經(jīng)濟(jì)應(yīng)運(yùn)而生。該階段的網(wǎng)絡(luò)具備以下特性:達(dá)到99.999%的高可靠性,絕對的網(wǎng)絡(luò)安全性,接近零的網(wǎng)絡(luò)時(shí)延,無限的網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)交換容量,普遍的、靈活的寬帶接入。光網(wǎng)絡(luò)是互聯(lián)網(wǎng)絡(luò)的高級階段,是光電子技術(shù)發(fā)展的必然趨勢,是電子商務(wù)的必要條件。光網(wǎng)絡(luò)的出現(xiàn)將開拓全新的信息產(chǎn)業(yè)領(lǐng)域,使網(wǎng)絡(luò)設(shè)施發(fā)生根本改變。由于計(jì)算機(jī)間的通信不受時(shí)間、空間和帶寬的限制,網(wǎng)絡(luò)的發(fā)展將

從根本上改變?nèi)藗兊墓ぷ骱蜕罘绞健?/p>

4.智能化

智能化是指計(jì)算機(jī)模擬人類的智能活動,諸如感知、判斷、理解、學(xué)習(xí)、問題求解和圖像識別等。智能化的發(fā)展將使各種知識庫及人工智能技術(shù)得到進(jìn)一步普及,人們將用自然語言和機(jī)器對話。計(jì)算機(jī)將從數(shù)值計(jì)算為主過渡到知識推理為主,從而使計(jì)算機(jī)進(jìn)入知識處理階段。

5.多媒體化

多媒體化是指計(jì)算機(jī)具有全數(shù)字式、全動態(tài)、全屏幕的播放、編輯和創(chuàng)作多媒體信息的功能,具備控制和傳輸多媒體電子郵件、電視會議等多種功能。1.2計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)及計(jì)算機(jī)組成

1.2.1計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)

現(xiàn)代計(jì)算機(jī)的解題過程通常是先由用戶用高級語言編寫程序(稱做源程序),然后將它和數(shù)據(jù)一起送入計(jì)算機(jī)內(nèi),再由計(jì)算機(jī)將其翻譯成機(jī)器能識別的機(jī)器語言程序(稱做目標(biāo)程

序),機(jī)器自動運(yùn)行該機(jī)器語言程序,并將結(jié)果輸出。計(jì)算機(jī)的解題過程如圖1.2所示。圖1.2計(jì)算機(jī)的解題過程機(jī)器語言程序由計(jì)算機(jī)能夠直接識別和執(zhí)行的機(jī)器指令組成。這些機(jī)器指令與機(jī)器硬件直接對應(yīng),并能被其直接識別和執(zhí)行,然而使用機(jī)器語言編程既不方便,也無法適應(yīng)解題需要和計(jì)算機(jī)應(yīng)用范圍的擴(kuò)大。于是在20世紀(jì)50年代出現(xiàn)了一個(gè)比機(jī)器指令更方便使用或編程的指令集合,由它構(gòu)成新的語言,即匯編語言。匯編語言是一種符號語言,給程

序員編程提供了方便。盡管匯編語言的每個(gè)語句基本上仍與機(jī)器指令對應(yīng),卻并不能被機(jī)器直接識別和執(zhí)行。用匯編語言開發(fā)的程序經(jīng)過翻譯,轉(zhuǎn)換成機(jī)器能識別的機(jī)器語言后才

能在實(shí)際機(jī)器上執(zhí)行,這個(gè)翻譯過程是由匯編程序來實(shí)現(xiàn)的。匯編語言源程序可以在機(jī)器上運(yùn)行并獲得結(jié)果,是因?yàn)橛袇R編程序的支持。在匯編語言程序設(shè)計(jì)者看來,有了匯編程序的支持就好像有了一臺用匯編語言作為機(jī)器語言的機(jī)器。這里的機(jī)器是指能存儲和執(zhí)行程序的算法和數(shù)據(jù)結(jié)構(gòu)的集合體。我們把以軟件為主實(shí)現(xiàn)的機(jī)器,稱為虛擬機(jī)器,而把由硬件和固件實(shí)現(xiàn)的機(jī)器稱為實(shí)際機(jī)器。固件是將程序固化在

ROM中的一種部件,它是一種具有軟件特性的硬件,既具有硬件的快速性,又具有軟件的靈活性。顯然,虛擬機(jī)器的實(shí)現(xiàn)是構(gòu)筑在實(shí)際機(jī)器之上的。圖1.3給出了虛擬機(jī)器與實(shí)際機(jī)

器之間構(gòu)成的一個(gè)簡單的層次結(jié)構(gòu)。圖1.3虛擬機(jī)器和實(shí)際機(jī)器層次結(jié)構(gòu)舉例語言與虛擬機(jī)器之間存在著重要的對應(yīng)關(guān)系,每種機(jī)器都有由它能執(zhí)行的指令組成的機(jī)器語言。同時(shí),語言也定義了機(jī)器,即機(jī)器要能執(zhí)行這種語言所編寫的程序。有n層不同的語言,就對應(yīng)有n層不同的虛擬機(jī)。圖1.4給出了典型的現(xiàn)代計(jì)算機(jī)的多級層次結(jié)構(gòu)。匯編語言(L3)是面向機(jī)器的一種符號語言,其語法、語義結(jié)構(gòu)仍然和二進(jìn)制機(jī)器語言基本相

同,但與解題所需的差別較大,于是進(jìn)一步出現(xiàn)了面向題目和過程的高級語言(L4)。隨之研究出來的是這些語言的翻譯程序。由高級語言編寫的高級語言源程序,經(jīng)過翻譯轉(zhuǎn)換成匯

編語言程序或中間語言程序,然后再翻譯成機(jī)器語言程序,再在實(shí)際機(jī)器上運(yùn)行。圖1.4計(jì)算機(jī)系統(tǒng)的多級層次結(jié)構(gòu)高級語言的翻譯程序有編譯程序和解釋程序兩種。編譯程序是將編寫的源程序中全部語句翻譯成機(jī)器語言程序后,再執(zhí)行機(jī)器語言程序。假如一個(gè)題目需要重復(fù)計(jì)算幾遍,那么一旦翻譯之后,只要源程序不變,就不需要再次進(jìn)行翻譯。但源程序若有任何修改,都要重新經(jīng)過編譯。解釋程序則是在將源程序的一條語句翻譯成機(jī)器語言以后立即執(zhí)行它(而

且不再保存剛執(zhí)行完的機(jī)器語言程序),然后再翻譯執(zhí)行下一條語句。如此重復(fù),直到程序結(jié)束。它的特點(diǎn)是翻譯一次只能執(zhí)行一次,當(dāng)?shù)诙沃貜?fù)執(zhí)行該語句時(shí),又要重新翻譯,因而效率較低。ALGOL、FORTRAN、C和Pascal等語言是用編譯程序進(jìn)行翻譯的,而BASIC語言則有解釋和編譯兩種。隨著計(jì)算機(jī)應(yīng)用的發(fā)展,有大量數(shù)據(jù)需要存儲、檢索,于是數(shù)據(jù)庫及管理系統(tǒng)應(yīng)運(yùn)而生。為了提高應(yīng)用軟件的開發(fā)效率,縮短軟件開發(fā)周期,在20世紀(jì)80年代出現(xiàn)了面向應(yīng)用的應(yīng)用語言(L5)。到了20世紀(jì)90年代,大量基于數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用語言商品化軟件已在計(jì)算機(jī)應(yīng)用領(lǐng)域中獲得了廣泛應(yīng)用,它以數(shù)據(jù)庫管理系統(tǒng)所提供的功能為核心,進(jìn)一步構(gòu)造了開發(fā)高層應(yīng)用軟件系統(tǒng)的開發(fā)環(huán)境,例如,菜單生成、報(bào)表生成和多窗口表格設(shè)計(jì)系統(tǒng),圖形、圖像處理系統(tǒng),決策支持系統(tǒng)等。應(yīng)用語言具有面向應(yīng)用、簡單易學(xué)、用戶界面友好等一系列優(yōu)點(diǎn)。對于實(shí)際機(jī)器級,若采用微程序(L0)控制,則它又可分解成傳統(tǒng)機(jī)器級M1和微程序級M0。雖然目前很多機(jī)器上的操作系統(tǒng)(L2)已不再用匯編語言編寫,而是用高級語言,如C

語言編寫,但從實(shí)質(zhì)上看,操作系統(tǒng)是傳統(tǒng)機(jī)器的引申,它要提供傳統(tǒng)機(jī)器所沒有但為匯編語言和高級語言的使用和實(shí)現(xiàn)所需的某些基本操作和數(shù)據(jù)結(jié)構(gòu),如文件管理、進(jìn)程管理、

中斷管理、作業(yè)控制、存儲管理和輸入/輸出等,它們在許多機(jī)器上是經(jīng)機(jī)器語言程序解釋實(shí)現(xiàn)的。因此,操作系統(tǒng)級放在傳統(tǒng)機(jī)器級之上,匯編語言級之下。從功能上把一個(gè)復(fù)雜的計(jì)算機(jī)系統(tǒng)看成是由多個(gè)機(jī)器級構(gòu)成的層次結(jié)構(gòu),可以有如下的好處。首先,有利于理解軟件、硬件和固件在系統(tǒng)中的地位和作用。從系統(tǒng)層次的劃分可以看出,微程序機(jī)器級(M0)、傳統(tǒng)機(jī)器級(M1)、操作系統(tǒng)機(jī)器級(M2)不是為應(yīng)用程序員解題設(shè)計(jì)的,而是為運(yùn)行支持更高層次機(jī)器級程序所必需的編譯程序和解釋程序而設(shè)計(jì)的,以便能設(shè)計(jì)和實(shí)現(xiàn)新的虛擬機(jī)器級。在這之上的機(jī)器級(M3~M5級)則主要是為應(yīng)用程序設(shè)計(jì)人員解決各類實(shí)際應(yīng)用問題而設(shè)計(jì)的。其次,系統(tǒng)按層次進(jìn)行劃分,有利于理解各種語言的實(shí)質(zhì)和實(shí)現(xiàn)途徑。計(jì)算機(jī)各層次的語言總是通過低一級的語言翻譯來實(shí)現(xiàn)的,這就說明相鄰機(jī)器級之間的語義差別不能太大。再次,系統(tǒng)按層次進(jìn)行劃分,有利于推動計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展。例如,可以重新分配軟、硬件的比例,為虛擬機(jī)器的各個(gè)層次提供更多更好的硬件支持,改變硬件及器件快速發(fā)展而軟件卻日益復(fù)雜、開銷過大的狀況;可以用硬件和固件來實(shí)現(xiàn)高級語言和操作系統(tǒng)而形成高級語言機(jī)器和操作系統(tǒng)機(jī)器;可用真正的機(jī)器來取代各級虛擬機(jī),擺脫各級功能都在同一臺實(shí)際機(jī)器上實(shí)現(xiàn)的狀況,發(fā)展多處理機(jī)系統(tǒng)、分布式處理機(jī)系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)等系統(tǒng)結(jié)構(gòu)。最后,系統(tǒng)按層次進(jìn)行劃分,有利于理解計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的定義。把計(jì)算機(jī)按功能劃分成多個(gè)不同的層次結(jié)構(gòu),從各個(gè)層次的功能劃分和實(shí)現(xiàn)去了解計(jì)算機(jī)系統(tǒng),有助于更深入地了解系統(tǒng)結(jié)構(gòu)的定義。1.2.2計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)和計(jì)算機(jī)組成

在學(xué)習(xí)計(jì)算機(jī)組成時(shí),應(yīng)當(dāng)注意如何區(qū)分計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與計(jì)算機(jī)組成這兩個(gè)基本概念。

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)這個(gè)詞是Amdahl等人在1964年介紹IBM360時(shí)提出的。他們把系統(tǒng)結(jié)構(gòu)定義為由程序設(shè)計(jì)者所看到的一個(gè)計(jì)算機(jī)系統(tǒng)的屬性,即概念性結(jié)構(gòu)和功能特性。這

實(shí)際上是計(jì)算機(jī)系統(tǒng)的外特性。按照計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu),不同程序設(shè)計(jì)者所看到的計(jì)算機(jī)具有不同的屬性。在計(jì)算機(jī)技術(shù)中,一種本來存在的事物或?qū)傩裕瑥哪撤N角度看卻好像不存在,稱為透明性。通常,在一個(gè)計(jì)算機(jī)系統(tǒng)中,低層機(jī)器級的概念性結(jié)構(gòu)和功能特性,對高級語言程序員來說是透明的。例如高級語言程序員所看到的計(jì)算機(jī)屬性主要是軟件子系統(tǒng)和固件子系統(tǒng)的屬性,包括程序設(shè)計(jì)語言、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件等用戶界面,而匯編語言程序員所看到的計(jì)算機(jī)屬性主要是計(jì)算機(jī)的指令系統(tǒng)、尋址方式、寄存器組織、數(shù)據(jù)表示等。

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)研究的主要內(nèi)容是計(jì)算機(jī)系統(tǒng)的多級層次結(jié)構(gòu)中各級之間界面的定義及其上下的功能分配。通常所說的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),主要討論傳統(tǒng)機(jī)器級的系統(tǒng)結(jié)構(gòu),即從機(jī)器語言程序員的角度所看到的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。如圖1.4所示,傳統(tǒng)機(jī)器級之上的功能由軟件實(shí)現(xiàn),傳統(tǒng)機(jī)器級和微程序機(jī)器級的功能由硬件/固件實(shí)現(xiàn)。因此計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是研究軟、硬件功能的分配以及對機(jī)器級界面的確定,即由機(jī)器語言設(shè)計(jì)者或編譯程序設(shè)計(jì)者所看到的機(jī)器物理系統(tǒng)的抽象或定義。它是機(jī)器語言程序設(shè)計(jì)者或是編譯程序生成系統(tǒng)為使其所設(shè)計(jì)或生成的程序能在機(jī)器上正確運(yùn)行,所需看到和遵循的計(jì)算機(jī)屬性。它不包括機(jī)器內(nèi)部的數(shù)據(jù)流和控制流、邏輯設(shè)計(jì)或器件設(shè)計(jì)等。有關(guān)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的內(nèi)容,將在計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程中講授。計(jì)算機(jī)組成又稱計(jì)算機(jī)設(shè)計(jì),是指計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn)。它研究的內(nèi)容主要包括機(jī)器內(nèi)部的數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計(jì)等。它著眼于機(jī)器內(nèi)各事件的排序方式

與控制機(jī)構(gòu)、各部件的功能以及各部件間的聯(lián)系。計(jì)算機(jī)組成的設(shè)計(jì)是按所希望達(dá)到的性能價(jià)格比,最佳、最合理地把各種設(shè)備和部件組合成計(jì)算機(jī),以實(shí)現(xiàn)所確定的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。本教材主要討論基于傳統(tǒng)機(jī)器級系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)組成,即討論傳統(tǒng)機(jī)器M1和微程序機(jī)器M0的組成原理及設(shè)計(jì)思想,其他各級虛擬機(jī)的內(nèi)容,將在其他的軟件課程中講授。1.3計(jì)算機(jī)系統(tǒng)的組成

一個(gè)完整的計(jì)算機(jī)系統(tǒng)由硬件和軟件兩大部分組成。所謂硬件,是指計(jì)算機(jī)中的電子線路和物理裝置。它由看得見摸得著的各種電子元器件、各類光學(xué)、電子、機(jī)械設(shè)備的實(shí)

物組成,如主機(jī)、外設(shè)等。所謂軟件,按照國際標(biāo)準(zhǔn)化組織(ISO)的定義,是指計(jì)算機(jī)程序及運(yùn)用數(shù)據(jù)處理系統(tǒng)所必需的手續(xù)、規(guī)則和文件的總稱。軟件通常存儲在介質(zhì)上,人們可

以看到的是存儲軟件的介質(zhì),而軟件本身是看不見摸不著的。1.3.1計(jì)算機(jī)的硬件系統(tǒng)

現(xiàn)代計(jì)算機(jī)已經(jīng)由早期的馮·諾依曼體系結(jié)構(gòu)逐漸發(fā)展成為被稱為系統(tǒng)總線模型的計(jì)算機(jī)體系結(jié)構(gòu),如圖1.5所示。計(jì)算機(jī)硬件由運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備等五大部件組成。存儲器包括內(nèi)存儲器和輔助存儲器。內(nèi)存儲器簡稱內(nèi)存,它由高速緩沖存儲器Cache和主存儲器組成。主存儲器簡稱主存,它由半導(dǎo)體只讀存儲器(ROM)和半導(dǎo)體讀寫存儲器(RAM)組成。運(yùn)算器和控制器通常集成在同一個(gè)芯片上,稱為中央處理器(CPU)。現(xiàn)代CPU芯片上除了集成運(yùn)算器和控制器外,還有片內(nèi)高速緩沖存儲器Cache。圖1.5以系統(tǒng)總線連接的計(jì)算機(jī)結(jié)構(gòu)框圖

CPU和內(nèi)存合在一起稱為主機(jī)。我們將完成信息輸入到CPU或內(nèi)存儲器中的設(shè)備稱為輸入設(shè)備,而將完成CPU或內(nèi)存儲器中的信息輸出的設(shè)備稱為輸出設(shè)備。輔助存儲器簡稱輔存,由于位于主機(jī)之外,因此又稱為外存儲器,簡稱外存。輔存中的信息既可以讀出又可以寫入,因此輔存為輸入/輸出設(shè)備。輸入設(shè)備、輸出設(shè)備和輔助存儲器都位于主機(jī)之外,因此稱之為外圍設(shè)備,簡稱外設(shè)。由于外設(shè)的作用是完成輸入/輸出操作,因此外設(shè)又稱為I/O設(shè)備。輸入/輸出設(shè)備由適配器或接口電路、輸入/輸出設(shè)備本身組成。在計(jì)算機(jī)中,各部件間傳送的信號可分為三種類型,即地址、數(shù)據(jù)和控制信號。通常這些信號是通過系統(tǒng)總線來傳送的,系統(tǒng)總線包括三類傳輸線,即地址總線、數(shù)據(jù)總線和控制總線,如圖1.5所示。CPU發(fā)出的控制信號,經(jīng)控制總線送到存儲器和輸入/輸出設(shè)備,控制這些部件完成指定的操作。與此同時(shí),CPU(或其他設(shè)備)經(jīng)地址總線向存儲器或輸入/

輸出設(shè)備發(fā)送地址,使得計(jì)算機(jī)各個(gè)部件中的數(shù)據(jù)能根據(jù)需要互相傳送。輸入/輸出設(shè)備和存儲器有時(shí)也向CPU反饋一些信息,CPU可根據(jù)這些反饋信息來調(diào)整本身發(fā)出的控制信號?,F(xiàn)代計(jì)算機(jī)還允許輸入/輸出設(shè)備直接向存儲器提出讀/寫要求,控制數(shù)據(jù)完成DMA(直接存儲器存取)操作。

1.運(yùn)算器

運(yùn)算器是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算的部件。算術(shù)運(yùn)算是指按照算術(shù)規(guī)則進(jìn)行的運(yùn)算,如加、減、乘、除以及它們的復(fù)合運(yùn)算;邏輯運(yùn)算是指非算術(shù)性運(yùn)算,如比較、移位、邏

輯加、邏輯乘、邏輯非、異或操作等。運(yùn)算器通常由算術(shù)邏輯運(yùn)算單元(ArithmeticandLogicUnit,ALU)、通用寄存器和狀態(tài)字寄存器組成,如圖1.6所示。ALU是完成算術(shù)邏輯運(yùn)算的單元,由加法器以及其他邏輯運(yùn)算單元組成,是運(yùn)算器的核心。通用寄存器用于存放參與運(yùn)算的操作數(shù)或用于存放中間結(jié)果,通用寄存器的數(shù)據(jù)來自于存儲器或輸入設(shè)備,最后的結(jié)果存放到存儲器中或送至輸出設(shè)備。狀態(tài)字寄存器用于存放運(yùn)算的結(jié)果狀態(tài)和系統(tǒng)的工作狀態(tài)。圖1.6中的DR1、DR2均為數(shù)據(jù)暫存器,在單總線結(jié)構(gòu)的運(yùn)算器中用于臨時(shí)保存參與運(yùn)算的數(shù)據(jù)。在雙總線和三總線結(jié)構(gòu)的運(yùn)算器中,由于參與運(yùn)算的數(shù)據(jù)可通過不同的內(nèi)部數(shù)據(jù)總線進(jìn)行傳送,因此沒有設(shè)置數(shù)據(jù)暫存器。圖1.6運(yùn)算器組成簡圖

2.控制器

控制器是計(jì)算機(jī)的指揮中心,是發(fā)布命令的“決策機(jī)構(gòu)”,要完成協(xié)調(diào)和指揮整個(gè)計(jì)算機(jī)系統(tǒng)的操作。控制器的主要功能是產(chǎn)生計(jì)算機(jī)的全部操作控制信號,對取指令、分析指令和執(zhí)行指令的操作過程進(jìn)行控制。

控制器由程序計(jì)數(shù)器(PC)、指令寄存器(IR)、指令譯碼器、時(shí)序產(chǎn)生器和操作控制器組成。程序計(jì)數(shù)器的作用是給出指令在內(nèi)存中的地址,在取指令操作完成后,程序計(jì)數(shù)器的值自動加1(或其他某一個(gè)固定值,因機(jī)器而異),形成下一條指令在內(nèi)存中的地址,保證程序的順序執(zhí)行。如果當(dāng)前執(zhí)行的是轉(zhuǎn)移指令且轉(zhuǎn)移成功,將強(qiáng)制改變程序計(jì)數(shù)器的值,從而實(shí)現(xiàn)分支。指令寄存器用來保存正在執(zhí)行指令的指令代碼,并在指令執(zhí)行過程中始終保持不變。指令譯碼器的作用是對指令的操作碼進(jìn)行譯碼,從而識別指令功能。時(shí)序產(chǎn)生器的作用是產(chǎn)生各種節(jié)拍脈沖信號和節(jié)拍電位信號,對各種控制信號實(shí)施時(shí)間上的控制。操作控制器是控制器的核心,如圖1.7所示,它根據(jù)指令寄存器中指令的操作碼和尋址方式、態(tài)字寄存器中的狀態(tài)信息,以及時(shí)序產(chǎn)生器生成的時(shí)序信號,產(chǎn)生各種具有時(shí)間標(biāo)志的操作控制信號,對指令解釋的全部過程進(jìn)行控制。不同的指令完成不同的功能,操作控制器也會產(chǎn)生不同的操作控制信號,因此在了解控制器的工作原理之前,首先必須掌握指令系統(tǒng)的有關(guān)知識。圖1.7控制器的組成簡圖有關(guān)指令系統(tǒng)的內(nèi)容將在第4章詳細(xì)討論,而有關(guān)控制器的內(nèi)容將放在指令系統(tǒng)之后,在第5章詳細(xì)討論。

3.存儲器

計(jì)算機(jī)為了完成存儲程序和存儲數(shù)據(jù)的功能,必須具備能存儲信息的存儲器?,F(xiàn)代計(jì)算機(jī)以存儲器作為各種信息存儲和交流的中心,存儲器可與CPU、輸入/輸出設(shè)備交換信息,到存儲、緩沖和傳遞信息的作用。程序是指能實(shí)現(xiàn)一定功能的指令序列,數(shù)據(jù)是指令序列操作的對象,它們均以二進(jìn)制的形式表示。按照存儲程序的思想,程序和數(shù)據(jù)必須被存放到存儲器中。主存儲器中最

基本的存儲單位為存儲元,一個(gè)存儲元存儲一位的信息。CPU每次訪問主存儲器所能訪問到的所有存儲元的集合,構(gòu)成一個(gè)存儲單元。主存儲器的簡單組成如圖1.8所示,存儲單元按照某種順序編號,每個(gè)存儲單元對應(yīng)一個(gè)編號,稱為存儲單元地址。通過地址就可以訪問到相應(yīng)的存儲單元,在讀/寫命令的控制下對其內(nèi)容進(jìn)行讀/寫操作。圖1.8主存儲器的組成簡圖

4.輸入設(shè)備

輸入設(shè)備的作用是將原始數(shù)據(jù)和處理這些數(shù)據(jù)的程序送入計(jì)算機(jī)。常見的輸入設(shè)備包括鍵盤、鼠標(biāo)、掃描儀、數(shù)字照相機(jī)、攝像頭、數(shù)字化儀、話筒等。它們多是電子和機(jī)電的混合裝置,與運(yùn)算器和存儲器等純電子部件相比,其速度較慢。輸入設(shè)備將人們熟悉的信息形式,如數(shù)字、字母、符號、文字、圖形、圖像、聲音等通過接口電路或適配器轉(zhuǎn)換

成計(jì)算機(jī)能識別的二進(jìn)制信息并存入存儲器中。輸入設(shè)備與主機(jī)之間的接口電路具有地址選擇、控制、數(shù)據(jù)緩沖、狀態(tài)、信息轉(zhuǎn)換以及中斷控制等功能。

5.輸出設(shè)備

輸出設(shè)備的作用是將計(jì)算結(jié)果轉(zhuǎn)化為用戶或者設(shè)備所能識別或者接收的信息形式,如數(shù)字、字母、符號、文字、圖形、圖像、聲音等。常見的輸出設(shè)備包括顯示器、打印機(jī)、

繪圖儀、揚(yáng)聲器等。與運(yùn)算器和存儲器等純電子部件相比,其速度較慢。輸出設(shè)備與主機(jī)之間的連接也是通過接口電路或適配器來實(shí)現(xiàn)的。

常見的磁盤、光盤、磁帶機(jī)等輔助存儲器也是重要的外部設(shè)備,它們既可以作為輸入設(shè)備,也可以作為輸出設(shè)備;此外,輔助存儲器還有存儲信息的功能。它們與輸入/輸出設(shè)備一樣,也要通過接口電路或適配器與主機(jī)相連。

6.系統(tǒng)總線

系統(tǒng)總線是構(gòu)成計(jì)算機(jī)系統(tǒng)的骨架,是多個(gè)系統(tǒng)部件之間進(jìn)行數(shù)據(jù)傳送的公共通路。

借助系統(tǒng)總線,計(jì)算機(jī)在CPU、存儲器、輸入設(shè)備、輸出設(shè)備之間實(shí)現(xiàn)地址、數(shù)據(jù)、控制/狀態(tài)等信息的傳送操作。有關(guān)系統(tǒng)總線的內(nèi)容將在第6章詳細(xì)討論。利用系統(tǒng)總線實(shí)現(xiàn)主機(jī)與外設(shè)互連的接口,以及主機(jī)與外設(shè)的信息交換方式將在第8章詳細(xì)討論。1.3.2計(jì)算機(jī)的軟件系統(tǒng)

按照前面國際標(biāo)準(zhǔn)化組織(ISO)對軟件的定義,一般認(rèn)為軟件由程序與文檔兩部分組成。

程序是為了實(shí)現(xiàn)一定功能而編寫的指令序列,文檔則是描述程序操作及使用的有關(guān)資料。

程序可由計(jì)算機(jī)執(zhí)行,而文檔則不能由計(jì)算機(jī)執(zhí)行。程序是計(jì)算機(jī)軟件的主體,故一般所說的軟件都是指程序。

一臺計(jì)算機(jī)中全部程序的集合,統(tǒng)稱為這臺計(jì)算機(jī)的軟件系統(tǒng)。計(jì)算機(jī)軟件按功能的不同可分為系統(tǒng)軟件和應(yīng)用軟件兩大類。

1.系統(tǒng)軟件

系統(tǒng)軟件又稱系統(tǒng)程序,它是計(jì)算機(jī)設(shè)計(jì)者為了充分發(fā)揮計(jì)算機(jī)的效能而向用戶提供的一系列軟件。這些軟件主要用于實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的管理、調(diào)度、監(jiān)視和服務(wù)等功能,其

目的是為了方便用戶,提高計(jì)算機(jī)的使用效率、擴(kuò)充系統(tǒng)的功能。系統(tǒng)軟件主要包括語言處理程序、操作系統(tǒng)、服務(wù)性程序、數(shù)據(jù)庫管理系統(tǒng)等。

1)語言處理程序

計(jì)算機(jī)能直接識別和執(zhí)行的計(jì)算機(jī)語言是機(jī)器語言,即用“0”、“1”代碼表示的指令序列。但是用戶往往用程序設(shè)計(jì)語言編寫程序,如匯編語言、C語言、Pascal語言、FORTRAN語言、BASIC語言等,它們各自都規(guī)定了一套基本符號和語法規(guī)則。用這些語言編制的程序稱為源程序,用機(jī)器語言編制的程序稱為目標(biāo)程序。語言處理程序的功能就是將源程序翻譯成目標(biāo)程序。不同程序設(shè)計(jì)語言的源程序?qū)?yīng)于不同的語言處理程序,常見的語言處理程序包括各類匯編程序、編譯程序、解釋程序等。

2)操作系統(tǒng)

操作系統(tǒng)是指控制和管理計(jì)算機(jī)硬件和軟件資源、合理地組織計(jì)算機(jī)的工作流程以及方便用戶的程序的集合。操作系統(tǒng)的功能主要表現(xiàn)在三個(gè)方面:①控制和管理計(jì)算機(jī)系統(tǒng)

的硬件和軟件資源,使之能被有效地利用;②合理地組織計(jì)算機(jī)的工作流程,以增強(qiáng)系統(tǒng)的處理能力;③提供用戶與計(jì)算機(jī)之間的軟件接口,使用戶能通過操作系統(tǒng)方便地使用計(jì)

算機(jī)。操作系統(tǒng)的規(guī)模和功能可大可小,隨不同的要求而異。常見的操作系統(tǒng)如DOS、UNIX、Windows、Linux等。操作系統(tǒng)是系統(tǒng)軟件的核心。

3)服務(wù)性程序

服務(wù)性程序又稱實(shí)用程序,它是指為了幫助用戶使用和維護(hù)計(jì)算機(jī)、提供服務(wù)性手段而編制的一類程序。例如,用于程序的裝入、連接、編輯及調(diào)試用的裝入程序、連接程序、

編輯程序及調(diào)試程序,以及故障診斷程序、糾錯(cuò)程序等。

4)數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)又稱數(shù)據(jù)庫管理軟件,用來管理系統(tǒng)中的所有文件,實(shí)現(xiàn)數(shù)據(jù)共享。數(shù)據(jù)庫是為了滿足大型企業(yè)的數(shù)據(jù)處理和信息管理的需要,在文件系統(tǒng)的基礎(chǔ)上發(fā)展起來

的。數(shù)據(jù)庫包含大量文件,有數(shù)據(jù)、表格、文字檔案、信息資料等,它們彼此間存在著一定的關(guān)系,通過數(shù)據(jù)庫管理系統(tǒng)將它們聯(lián)系在一起,對它們進(jìn)行檢索、組合、擴(kuò)建,或按用戶要求形成新的文件。這類軟件在信息處理、情報(bào)檢索、辦公室自動化和各種管理信息系統(tǒng)中起著重要的支撐作用。

2.應(yīng)用軟件

應(yīng)用軟件又稱應(yīng)用程序,它是用戶利用計(jì)算機(jī)來解決某些應(yīng)用問題而編制的各種程序。

如科學(xué)計(jì)算程序、數(shù)據(jù)處理程序、過程控制程序、工程設(shè)計(jì)程序、企業(yè)管理程序、情報(bào)檢索程序等。隨著計(jì)算機(jī)的廣泛應(yīng)用,應(yīng)用軟件的數(shù)量和種類將越來越多。1.3.3計(jì)算機(jī)硬件與軟件的邏輯等價(jià)性

軟件和硬件在邏輯功能上是等效的,同一邏輯功能既可以用軟件也可以用硬件或固件實(shí)現(xiàn)。從原理上講,軟件實(shí)現(xiàn)的功能完全可以用硬件或固件完成,同樣,硬件實(shí)現(xiàn)的邏輯功能也可以由軟件的模擬來完成,只是性能、價(jià)格以及實(shí)現(xiàn)的難易程度不同而已。例如,在計(jì)算機(jī)中實(shí)現(xiàn)十進(jìn)制乘法這一功能,既可以用硬件來實(shí)現(xiàn),也可以用軟件來完成。用硬件實(shí)現(xiàn),需設(shè)計(jì)十進(jìn)制乘法機(jī)器指令,用硬件電路來實(shí)現(xiàn)該指令,其特點(diǎn)是完成這一功能的速度快,但需要更多的硬件。而用軟件來實(shí)現(xiàn)這個(gè)功能,則要采用加法、移位等指令通

過編程來實(shí)現(xiàn),其特點(diǎn)是實(shí)現(xiàn)的速度慢,但不需增加硬件。軟、硬件的功能分配比例可以在很寬的范圍內(nèi)變化,這種變化是動態(tài)的,軟、硬件功能分配的比例隨不同時(shí)期以及同一時(shí)期的不同機(jī)器的變化而變化。由于軟、硬件是緊密相關(guān)的,它們的界面常常是模糊不清的,在計(jì)算機(jī)系統(tǒng)的功能實(shí)現(xiàn)上,有時(shí)候很難分清哪些功能是由硬件完成的,哪些功能是由軟件完成的。在滿足應(yīng)用的前提下,軟、硬件功能

分配比例的確定,主要是看能否充分利用硬件、器件技術(shù)的現(xiàn)狀和進(jìn)展,使計(jì)算機(jī)系統(tǒng)達(dá)到較高的性能價(jià)格比。對于計(jì)算機(jī)系統(tǒng)的用戶,還要考慮他所直接面對的應(yīng)用語言所對應(yīng)

的機(jī)器級的發(fā)展?fàn)顩r。

1.4計(jì)算機(jī)的工作過程

1.4.1使用計(jì)算機(jī)求解的一個(gè)簡單例子

采用現(xiàn)代計(jì)算機(jī)系統(tǒng)求解問題時(shí),一般遵循如下步驟:首先由用戶提出任務(wù)并建立數(shù)學(xué)模型,其次是要確定便于計(jì)算機(jī)實(shí)現(xiàn)的算法,然后是選擇合適的語言編寫程序,最后是上機(jī)調(diào)試運(yùn)行。無論采用何種程序設(shè)計(jì)語言編寫程序,都必須翻譯成機(jī)器語言程序,即目標(biāo)程序后才能在計(jì)算機(jī)上運(yùn)行。機(jī)器語言程序是實(shí)現(xiàn)一定功能的機(jī)器指令(簡稱指令)序列。計(jì)算機(jī)的工作過程,就是執(zhí)行指令的過程。

1.一個(gè)簡單例子

[例1.1]用計(jì)算機(jī)求解z=x+y,其中x和y為已知數(shù)。解題步驟為:

①將x的值從主存單元取出,存入某一個(gè)寄存器;

②將y的值從主存單元取出,存入另一個(gè)寄存器;

③將x和y的值相加,運(yùn)算結(jié)果存入寄存器;

④將結(jié)果從寄存器取出,存入主存單元z中。

將上述解題步驟按照計(jì)算機(jī)的指令格式和指令系統(tǒng)編寫成對應(yīng)的機(jī)器指令,就完成了程序的編寫。

2.指令與指令系統(tǒng)簡介

指令是要求計(jì)算機(jī)執(zhí)行某種操作的命令,是計(jì)算機(jī)硬件能夠直接識別和執(zhí)行的二進(jìn)制機(jī)器指令。指令系統(tǒng)是指一臺計(jì)算機(jī)中所有機(jī)器指令的集合。一條指令通常由操作碼和地

址碼兩個(gè)字段組成,操作碼指出了指令要執(zhí)行的操作類型,即給出了指令的功能。地址碼指出了與操作數(shù)相關(guān)的地址或操作數(shù)本身,即規(guī)定了指令操作的對象。在指令格式中,不

同操作類型的指令其地址碼的個(gè)數(shù)可以不相同,可以是零個(gè)到多個(gè)。例1.1中計(jì)算機(jī)的指令格式如圖1.9所示,每條指令的長度均為16位,指令的前4位為操作碼,后12位為地址碼,

地址碼的個(gè)數(shù)可以是0個(gè)、2個(gè)或3個(gè),對應(yīng)的指令分別稱為零地址指令、二地址指令和三地址指令。假設(shè)該機(jī)指令系統(tǒng)中只包含有4條指令,如表1.1所示。圖1.9三類指令的指令格式

3.編寫機(jī)器語言程序

按照圖1.9中的指令格式和表1.1中的指令系統(tǒng),結(jié)合解題步驟,編寫出一個(gè)計(jì)算z=x+y的機(jī)器語言程序,如表1.2所示。設(shè)程序在主存空間的起始地址為0,x和y的值已事先存入到地址為10、11(十六進(jìn)制)的主存單元,運(yùn)算結(jié)果z要求存入到地址為12(十六進(jìn)制)的主存單元。

從表1.2可以看出,指令和數(shù)據(jù)都是以代碼的形式存儲于同一存儲器的,計(jì)算機(jī)在執(zhí)行時(shí)才加以區(qū)分,這是馮·諾依曼型計(jì)算機(jī)的基本原理。圖1.10一個(gè)簡單計(jì)算機(jī)的組成框1.4.2計(jì)算機(jī)工作過程

設(shè)一個(gè)簡單計(jì)算機(jī)的組成框圖如圖1.10所示(未畫出輸入設(shè)備和輸出設(shè)備),CPU由控制器和運(yùn)算器組成,控制器主要由一個(gè)8位的程序計(jì)數(shù)器(PC)、一個(gè)16位的指令寄存器(IR)、指令譯碼器、操作控制器和時(shí)序產(chǎn)生器組成,運(yùn)算器主要由ALU、狀態(tài)字寄存器(PSW)和16個(gè)16位的通用寄存器(R0~R15)組成。另外,運(yùn)算器中還包含兩個(gè)數(shù)據(jù)暫存器DR1和DR2。在單總線結(jié)構(gòu)的運(yùn)算器中,采用數(shù)據(jù)暫存器的目的在于臨時(shí)保存參與運(yùn)算的數(shù)據(jù)。主存儲器包含有256個(gè)存儲單元,存儲單元地址為0~FF(十六進(jìn)制),存儲單元的內(nèi)容如表1.2所示。下面結(jié)合圖1.10和表1.2中的機(jī)器語言程序,來說明計(jì)算機(jī)的工作過程。

首先按表1.2所列的指令和數(shù)據(jù),通過鍵盤輸入到主存的相應(yīng)存儲單元中,并置PC的初值為程序在主存空間的起始地址0,即程序從主存單元的0地址開始執(zhí)行。啟動機(jī)器后,

計(jì)算機(jī)便自動按主存中所存放的指令順序,有序地逐條取出指令、分析指令和執(zhí)行指令,直至執(zhí)行到程序的最后一條指令為止。

計(jì)算機(jī)工作的具體過程如下:①啟動機(jī)器后,操作控制器發(fā)出控制信號,將程序計(jì)數(shù)器(PC)的內(nèi)容(這里設(shè)置的初值為0)送至地址寄存器(AR),然后啟動對主存的讀操作,從主存的0地址中讀出一條指令,并將指令代碼“1110”(十六進(jìn)制)送入指令寄存器(IR),同時(shí)PC的內(nèi)容加1,形成下一條指令在主存中的地址。從而完成了第一條指令的取指操作過程。②通過指令譯碼器對指令寄存器(IR)中的操作碼“1”(十六進(jìn)制)進(jìn)行分析,識別出該指令的功能為取數(shù)指令,于是操作控制器發(fā)出操作控制信號,將指令寄存器(IR)中的地址碼部分“10”(十六進(jìn)制)送入地址寄存器(AR),然后啟動對主存的讀操作,從主存的10(十六進(jìn)制)地址中讀出x的內(nèi)容0002送入通用寄存器R1。從而完成了第一條指令的分析過程和執(zhí)行過程。③重復(fù)①、②的操作過程,由于PC的值在每次取指操作完成時(shí)都進(jìn)行了加1操作,因此計(jì)算機(jī)會自動地、順序地逐條取出指令、分析指令和執(zhí)行指令,直到執(zhí)行完停機(jī)指令后,機(jī)器便自動停機(jī)。

在指令執(zhí)行過程中也有可能遇到改變程序計(jì)數(shù)器PC值的轉(zhuǎn)移類指令,指令執(zhí)行的具體過程與計(jì)算機(jī)的硬件結(jié)構(gòu)有著密切的關(guān)系,但基本工作過程是相似的。在第5章我們還將

結(jié)合各類指令、各種尋址方式和時(shí)序信號,對計(jì)算機(jī)的工作過程進(jìn)行更深入的討論。

1.5計(jì)算機(jī)性能

1.5.1計(jì)算機(jī)性能的衡量尺度

1.響應(yīng)時(shí)間

響應(yīng)時(shí)間是指從用戶向計(jì)算機(jī)系統(tǒng)發(fā)送一個(gè)請求后,到系統(tǒng)對該請求作出響應(yīng)并獲得它所需要的結(jié)果所花的等待時(shí)間。其中包括訪問磁盤和訪問主存儲器的時(shí)間、CPU運(yùn)算時(shí)間、輸入/輸出動作時(shí)間以及操作系統(tǒng)工作的時(shí)間開銷等。

2.吞吐率

吞吐率是指系統(tǒng)響應(yīng)用戶請求的速率。對于CPU而言,吞吐率可表示為每秒鐘執(zhí)行的指令數(shù),或每秒鐘執(zhí)行的浮點(diǎn)操作次數(shù)。對于事務(wù)處理而言,吞吐率是指單位時(shí)間內(nèi)能處

理的事務(wù)數(shù),對應(yīng)的單位是TPS(TransactionsPerSecond)。在工作負(fù)載較低時(shí),系統(tǒng)的吞吐率隨工作負(fù)載的增加而線性增加。當(dāng)工作負(fù)載增加到一定程度時(shí),系統(tǒng)的吞吐率隨工作負(fù)

載的增加而達(dá)到一個(gè)峰值,這是因?yàn)橄到y(tǒng)的容量接近于飽和。吞吐率越高,計(jì)算機(jī)系統(tǒng)的處理能力就越強(qiáng)。

3.可擴(kuò)展性

如果一個(gè)計(jì)算機(jī)系統(tǒng)能加以擴(kuò)展以滿足不斷增長的對性能和功能的要求,或是能夠縮減資源以降低成本,則稱此計(jì)算機(jī)系統(tǒng)具有可擴(kuò)展性。可擴(kuò)展性意味著一個(gè)擴(kuò)展后的計(jì)算

機(jī)系統(tǒng)能夠提供更多的功能和更好的性能,并且為擴(kuò)展所花的代價(jià)必須合理,同時(shí)具有硬件和軟件兼容性。

4.可編程性、可靠性和可用性

可編程性主要是指程序設(shè)計(jì)的方便性??煽啃允侵敢粋€(gè)計(jì)算機(jī)系統(tǒng)能無故障運(yùn)行的可靠程度(指無故障運(yùn)行的工作時(shí)間)??捎眯允侵敢粋€(gè)計(jì)算機(jī)系統(tǒng)可正常使用的時(shí)間占總時(shí)間

的百分比。通過大量冗余的處理器、存儲器、磁盤、I/O設(shè)備、網(wǎng)絡(luò)及操作系統(tǒng)映像等,可提高計(jì)算機(jī)系統(tǒng)的可用性。

5.兼容性

兼容性是指一個(gè)系統(tǒng)可以通過使用下一代的部件,如一個(gè)更快的處理器、一個(gè)更快的存儲器、一個(gè)新版本的操作系統(tǒng)、一個(gè)更強(qiáng)功能的編譯器等,進(jìn)行擴(kuò)展,以使計(jì)算機(jī)系統(tǒng)具有更強(qiáng)的功能和更好的性能。概括為一句話就是,一個(gè)系統(tǒng)應(yīng)具有向后兼容性。通常所說的軟件兼容性是指在一臺機(jī)器上用其指令系統(tǒng)編寫的軟件可直接在其他機(jī)器上運(yùn)行。為

了保護(hù)用戶在軟件開發(fā)與投資上的利益,一個(gè)系統(tǒng)除了具有向后兼容性外,還應(yīng)具有向上兼容性。在系列機(jī)中,應(yīng)用軟件、操作系統(tǒng)和編譯器是兼容的,區(qū)別在于運(yùn)行所需的時(shí)間

不同。但兼容并不是絕對的、無條件的。1.5.2反映計(jì)算機(jī)性能的參數(shù)

1.主頻

通常所說的主頻指的是CPU的時(shí)鐘頻率,單位通常為MHz(1M=106)、GHz(1G=109)。CPU時(shí)鐘頻率的倒數(shù),稱為CPU時(shí)鐘周期,單位通常使用納秒(ns)。CPU的時(shí)鐘周期是計(jì)算機(jī)內(nèi)部操作的基本時(shí)間單位,即計(jì)算機(jī)內(nèi)部每一基本功能操作在一個(gè)或多個(gè)時(shí)鐘周期的時(shí)間內(nèi)完成。主頻是衡量一臺計(jì)算機(jī)速度的重要參數(shù),主頻越高,計(jì)算機(jī)的運(yùn)行速度就越快。

2.機(jī)器字長

機(jī)器字長是指運(yùn)算器一次能運(yùn)算的二進(jìn)制數(shù)的最多位數(shù),它與CPU內(nèi)通用寄存器的位數(shù)、CPU內(nèi)部數(shù)據(jù)總線的寬度有關(guān)。機(jī)器字長越長,數(shù)的表示范圍也越大,精度也越高。

機(jī)器字長越長,表示計(jì)算能力越強(qiáng)。倘若CPU字長較短,又要運(yùn)算位數(shù)較多的數(shù)據(jù),那么需要經(jīng)過兩次或多次的運(yùn)算才能完成,這樣勢必會影響整機(jī)的運(yùn)行速度。通常所說的32位

機(jī)、64位機(jī)等指的就是機(jī)器字長,它是計(jì)算機(jī)的重要性能指標(biāo)。常見的機(jī)器字長有8位、16位、32位和64位。

3.數(shù)據(jù)通路寬度

數(shù)據(jù)通路寬度是指數(shù)據(jù)總線一次所能并行傳送的數(shù)據(jù)的位數(shù)。它關(guān)系到信息的傳送能力,從而影響計(jì)算機(jī)的有效處理速度。CPU內(nèi)部的數(shù)據(jù)通路寬度一般等于機(jī)器字長,而外

部數(shù)據(jù)通路寬度則取決于系統(tǒng)總線。

4.運(yùn)算速度

計(jì)算機(jī)的運(yùn)算速度與許多因素有關(guān),如機(jī)器的主頻、所執(zhí)行的操作、主存本身的速度等。通常采用單位時(shí)間內(nèi)執(zhí)行指令的平均條數(shù)來衡量,單位為MIPS,即每秒執(zhí)行百萬條指

令。也可用平均一條指令執(zhí)行所花的時(shí)鐘周期數(shù)來衡量,單位為CPI。還可用單位時(shí)間內(nèi)執(zhí)行浮點(diǎn)操作的平均數(shù)來衡量,單位為MFLOPS,即每秒執(zhí)行百萬次浮點(diǎn)操作。

5.存儲容量

存儲容量是指一個(gè)存儲器中可以容納的存儲單元總數(shù)。存儲容量越大,所能存儲的信息就越多。存儲容量的單位有B(字節(jié))、KB(1K=210)、MB(1M=220)、GB(1G=230)、TB(1T=240)、PB(1P=250)、EB(1E=260)等。1.5.3性能因子CPI

設(shè)CPU的時(shí)鐘周期為TC,CPU的時(shí)鐘周期的倒數(shù)fC則是CPU的時(shí)鐘頻率。一個(gè)程序在CPU上運(yùn)行所需的時(shí)間TCPU可以用下述公式表示:(1.1)式中,IN表示要執(zhí)行程序中的指令總數(shù)(這里指動態(tài)執(zhí)行指令數(shù)),CPI(clockCyclesPerInstruction)表示執(zhí)行每條指令所需的平均時(shí)鐘周期數(shù)。由此公式可見,程序運(yùn)行的時(shí)間取決于三個(gè)特征:CPU的時(shí)鐘周期、每條指令所需的時(shí)鐘周期數(shù)以及程序中總的指令數(shù)。由CPI的含義可得到如下表達(dá)式:

(1.2)在程序執(zhí)行過程中,要用到不同類型的指令,令I(lǐng)i表示第i類指令在程序中的執(zhí)行次數(shù),CPIi表示執(zhí)行一條第i類指令所需的時(shí)鐘周期數(shù),n為程序中所有的指令種類數(shù)。則式(1.2)可以改寫為(1.3)因?yàn)镮N是一個(gè)常數(shù),所以式(1.3)可以改寫為(1.4)其中,Ii/IN表示第i類指令在程序中所占的比例。式(1.4)說明平均CPI或稱有效CPI等于每類指令的CPI和該類指令在整個(gè)程序中出現(xiàn)的百分比的乘積之和。1.5.4計(jì)算機(jī)性能常用指標(biāo)

1.MIPS(MillionInstructionsPerSecond,每秒百萬條指令)

這是一個(gè)用來描述計(jì)算機(jī)性能的尺度。對于一個(gè)給定的程序,MIPS定義為(1.5)在式(1.5)中假定TE=TCPU,即計(jì)算機(jī)的指令執(zhí)行時(shí)間就是CPU的執(zhí)行時(shí)間;fC表示CPU的時(shí)鐘頻率,它是CPU時(shí)鐘周期TC的倒數(shù)。由式(1.5)可得程序的執(zhí)行時(shí)間TE的表達(dá)式為(1.6)[例1.2]已知PentiumⅡ450處理機(jī)在運(yùn)行某一測試程序時(shí)所獲得的性能為0.5CPI,試計(jì)算PentiumⅡ450處理機(jī)在運(yùn)行該程序時(shí)所獲得的MIPS速率。

解:由于PentiumⅡ450處理機(jī)的fC=450MHz,因此,由式(1.5)可求出:即PentiumⅡ450處理機(jī)在運(yùn)行該程序時(shí)所獲得的MIPS速率為900MIPS。在使用MIPS作為性能指標(biāo)時(shí),存在以下不足之處:①M(fèi)IPS依賴于指令系統(tǒng),因此用MIPS來比較指令系統(tǒng)不同的機(jī)器的性能是不準(zhǔn)確的;②在同一臺機(jī)器上,MIPS因程序的不同而變化,有時(shí)會相差很大;③它只適宜于評估標(biāo)量機(jī),因?yàn)樵跇?biāo)量機(jī)中執(zhí)行一條指令,一般可得到一個(gè)運(yùn)算結(jié)果,而在向量機(jī)中,執(zhí)行一條向量指令通??傻玫蕉鄠€(gè)運(yùn)算結(jié)果。因此,用MIPS來衡量向量機(jī)是不合適的。

2.MFLOPS(MillionFloatingpointOperationsPerSecond,每秒百萬次浮點(diǎn)運(yùn)算)

MFLOPS可用如下公式表示:(1.7)其中,IFN表示程序中的浮點(diǎn)運(yùn)算次數(shù)。由于MFLOPS取決于機(jī)器和程序兩個(gè)方面,因此MFLOPS只能用來衡量機(jī)器浮點(diǎn)操作的性能,而不能體現(xiàn)機(jī)器的整體性能。例如對于編譯程序,不管機(jī)器的性能有多好,它的MFLOPS都不會太高。由于MFLOPS是基于操作而非指令的,因此它可以用來比較兩種不同的機(jī)器。這是因?yàn)橥怀绦蛟诓煌臋C(jī)器上執(zhí)行的指令可能不同,但是執(zhí)行的浮點(diǎn)運(yùn)算卻是完全相同的。

采用MFLOPS作為衡量單位時(shí),應(yīng)注意它的值不但會隨整數(shù)、浮點(diǎn)數(shù)操作混合比例的不同發(fā)生變化,而且也會隨快速和慢速浮點(diǎn)操作混合比例的變化而變化。例如,運(yùn)行由100%浮

點(diǎn)加組成的程序所得到的MFLOPS值將比由100%浮點(diǎn)除法組成的程序要高。[例1.3]用一臺40MHz處理機(jī)執(zhí)行標(biāo)準(zhǔn)測試程序,程序所含的混合指令數(shù)和每類指令的CPI如表1.3所示,求有效CPI、MIPS速率和程序的執(zhí)行時(shí)間。解:總的指令數(shù)為

45000+32000+15000+8000=100000條因此各類指令所占的比例分別是:整數(shù)運(yùn)算為45%,數(shù)據(jù)傳送為32%,浮點(diǎn)操作為15%,控制傳送為8%。

有效CPI、MIPS速率和程序的執(zhí)行時(shí)間分別計(jì)算如下:(1)有效CPI為

1×0.45+2×0.32+2×0.15+2×0.08=1.55CPI

(2)MIPS速率為

40×106/(1.55×106)≈25.8MIPS

(3)程序的執(zhí)行時(shí)間為

100000×1.55/(40×106)=0.003875s1.6計(jì)算機(jī)的分類和應(yīng)用

1.6.1計(jì)算機(jī)的分類

1.按信息的形式及處理方式分類

計(jì)算機(jī)按信息的形式及處理方式的不同,可分為電子數(shù)字計(jì)算機(jī)、電子模擬計(jì)算機(jī)和數(shù)字模擬混合計(jì)算機(jī)。在電子數(shù)字計(jì)算機(jī)中,處理的是二進(jìn)制數(shù)字信號,其特點(diǎn)是解題精度高、便于信息存儲、是通用性很強(qiáng)的計(jì)算工具。電子數(shù)字計(jì)算機(jī)能勝任科學(xué)計(jì)算、數(shù)據(jù)處理、計(jì)算機(jī)控制、計(jì)算機(jī)輔助設(shè)計(jì)與制造、人工智能、嵌入式應(yīng)用、網(wǎng)絡(luò)應(yīng)用以及

多媒體技術(shù)等領(lǐng)域的工作。通常所說的電子計(jì)算機(jī)指的就是電子數(shù)字計(jì)算機(jī)。在電子模擬計(jì)算機(jī)中,處理的是模擬信號,如溫度、壓力、電壓等隨時(shí)間連續(xù)變化的物理量。其基本運(yùn)算部件是由運(yùn)算放大器、電阻、電容、二極管等電子元件等構(gòu)成的反向器、加法器、函數(shù)運(yùn)算器、微分器、積分器等運(yùn)算電路。電子模擬計(jì)算機(jī)的特點(diǎn)是運(yùn)算速度快、運(yùn)算精度低、通用性差、信息存儲困難。這種計(jì)算機(jī)主要用于求解數(shù)學(xué)方程或自動控制模擬系統(tǒng)的連續(xù)變化過程。

數(shù)字模擬混合計(jì)算機(jī)綜合了數(shù)字計(jì)算機(jī)和模擬計(jì)算機(jī)的長處,既能處理數(shù)字信號,又能處理模擬信號,既能高速運(yùn)算,又便于信息存儲,但這種計(jì)算機(jī)設(shè)計(jì)困難,造價(jià)昂貴

2.按計(jì)算機(jī)的用途分類

計(jì)算機(jī)按用途的不同,可分為專用計(jì)算機(jī)和通用計(jì)算機(jī)。專用計(jì)算機(jī)是面向某個(gè)特定應(yīng)用領(lǐng)域設(shè)計(jì)的,具有效率高、速度快、價(jià)格低等優(yōu)點(diǎn),同時(shí)具有適應(yīng)性差的缺點(diǎn),如銀行系統(tǒng)的計(jì)算機(jī)、網(wǎng)絡(luò)計(jì)算機(jī)等。通用計(jì)算機(jī)則正好與專用計(jì)算機(jī)相反。我們通常所說的計(jì)算機(jī)指的是通用計(jì)算機(jī)。

3.按計(jì)算機(jī)的規(guī)模分類

計(jì)算機(jī)按規(guī)模的不同,可分為嵌入式計(jì)算機(jī)、微型計(jì)算機(jī)、工作站、小型計(jì)算機(jī)、大型計(jì)算機(jī)和超級計(jì)算機(jī)六類,如圖1.11所示。它們的差異存在于簡易性、體積、功耗、性能、存儲容量、指令系統(tǒng)和價(jià)格等方面。一般來說,嵌入式計(jì)算機(jī)結(jié)構(gòu)簡單、體積小(只作為系統(tǒng)的一個(gè)部件)、功能簡單、運(yùn)算速度較低、存儲容量小、指令系統(tǒng)簡單、價(jià)格低。而超級計(jì)算機(jī)的結(jié)構(gòu)復(fù)雜、體積大、功能強(qiáng)大、運(yùn)算速度高、存儲容量大、指令系統(tǒng)豐富、價(jià)格昂貴。介于嵌入式計(jì)算機(jī)與超級計(jì)算機(jī)之間的微型計(jì)算機(jī)、工作站、小型計(jì)算機(jī)和大型計(jì)算機(jī),它們的結(jié)構(gòu)規(guī)模依次增大,性能依次增強(qiáng)。圖1.11各類通用計(jì)算機(jī)之間的區(qū)別在很多的應(yīng)用中,計(jì)算機(jī)只作為一個(gè)部件,成為其他設(shè)備的一部分,如作為機(jī)器人的大腦或者作為家用電器的控制部件,這種計(jì)算機(jī)稱為嵌入式計(jì)算機(jī)。它的成本低,用途廣。嵌入式計(jì)算機(jī)的結(jié)構(gòu)通常是面向特定應(yīng)用,為特定應(yīng)用專門開發(fā)設(shè)計(jì)的。不同的嵌入式應(yīng)用有不同的要求,差異較大,需要根據(jù)不同的應(yīng)用進(jìn)行專門的開發(fā)設(shè)計(jì)。一般的嵌入式計(jì)算機(jī)的硬件包括微處理器、存儲器及外設(shè)器件的I/O接口、圖形控制器等,它以通用微處理器作為內(nèi)核,集成應(yīng)用所需的其他接口電路和存儲器接口。如果在嵌入式微處理器中集成了存儲器電路,則構(gòu)成了單片機(jī)。嵌入式系統(tǒng)設(shè)計(jì)通常采用SOC(片上系統(tǒng))的設(shè)計(jì)方式,大

部分對成本是十分敏感的,如用于電器和智能IC卡中的嵌入式系統(tǒng)。嵌入式計(jì)算機(jī)對性能要求不高,在設(shè)計(jì)中需要采用簡化的措施,最小化存儲器需求和最小化功耗需求,以

使成本控制在一定范圍內(nèi)。

微型計(jì)算機(jī)是設(shè)計(jì)用于滿足單個(gè)用戶的信息處理需要的計(jì)算機(jī)系統(tǒng),通常也稱為PC機(jī)(個(gè)人計(jì)算機(jī))、微機(jī),它是性能價(jià)格比高、應(yīng)用廣的計(jì)算機(jī)類型。便攜式計(jì)算機(jī)也屬于微型

計(jì)算機(jī),如膝上式計(jì)算機(jī)、筆記本計(jì)算機(jī)和手提式計(jì)算機(jī)。微型計(jì)算機(jī)執(zhí)行的處理任務(wù)包括文字處理、計(jì)算機(jī)游戲和中小型應(yīng)用程序。微型計(jì)算機(jī)系統(tǒng)中除了CPU和存儲器芯片外,還有大規(guī)模集成的外圍設(shè)備接口芯片,用于連接CPU、存儲器、圖形顯示設(shè)備、磁盤以及各種串行設(shè)備、并行設(shè)備、輸入/輸出總線等。微型計(jì)算機(jī)系統(tǒng)的CPU通常要求具有合理的成本和較高的性能。一般臺式計(jì)算機(jī)可以允許較高的耗電功率和風(fēng)扇方式散熱,而便攜式計(jì)算機(jī)則因?yàn)椴捎秒姵毓╇姾腕w積較小,要求省電且發(fā)熱量較小。工作站是一種比微型計(jì)算機(jī)功能更強(qiáng)大的計(jì)算機(jī),它與PC機(jī)的主要區(qū)別在于系統(tǒng)的配置和運(yùn)行的操作系統(tǒng),工作站的配置比PC機(jī)高。這種情況在科學(xué)和工程技術(shù)應(yīng)用中尤為突

出,與完成一般的企業(yè)和家庭處理任務(wù)相比,這類應(yīng)用中的處理任務(wù)需要更強(qiáng)的計(jì)算機(jī)硬件能力。硬件密集型任務(wù)包括復(fù)雜的數(shù)學(xué)計(jì)算、計(jì)算機(jī)輔助設(shè)計(jì)和操縱高分辨率視頻圖像。

工作站的能力常常接近于小型計(jì)算機(jī),不過工作站的總體設(shè)計(jì)是面向單用戶操作環(huán)境的。小型計(jì)算機(jī)用于為多個(gè)用戶提供信息處理,可以同時(shí)執(zhí)行許多應(yīng)用程序。支持多個(gè)用戶和程序時(shí),需要功能相當(dāng)強(qiáng)大的處理能力、存儲能力和輸入/輸出子系統(tǒng)。此外,小型計(jì)算機(jī)需要的系統(tǒng)軟件也比通常安裝在微型計(jì)算機(jī)上的更為復(fù)雜。支持多用戶的方法有很多,可以利用相對簡單的I/O設(shè)備(如視頻顯示器)將多個(gè)用戶和一個(gè)計(jì)算機(jī)系統(tǒng)連接起來。這時(shí),

所有的數(shù)據(jù)處理、數(shù)據(jù)存儲和網(wǎng)絡(luò)通信都由這個(gè)共享計(jì)算機(jī)系統(tǒng)處理。多個(gè)用戶也可以共享一個(gè)或多個(gè)資源(如打印機(jī)、數(shù)據(jù)庫和Web頁面)。小型計(jì)算機(jī)可以支持幾十個(gè)使用視頻

顯示終端的用戶,或者同時(shí)響應(yīng)幾百個(gè)對共享資源的請求。大型計(jì)算機(jī)用于為大量用戶和應(yīng)用程序提供信息處理,它區(qū)別于其他類型計(jì)算機(jī)的特性在于能夠存儲大量數(shù)據(jù),并將數(shù)據(jù)從一個(gè)地方快速移動到另一個(gè)地方。數(shù)據(jù)可以在幾十

個(gè)CPU、幾個(gè)輔助存儲器設(shè)備以及通過網(wǎng)絡(luò)連接的幾百或者幾千個(gè)用戶之間移動。雖然也需要快速CPU和大容量的主存儲器、輔助存儲器,不過大型計(jì)算機(jī)的最佳應(yīng)用主要還是在

于快速和有效的數(shù)據(jù)移動。超級計(jì)算機(jī)又稱巨型計(jì)算機(jī),是針對快速數(shù)學(xué)計(jì)算而設(shè)計(jì)的,主要用于計(jì)算密集型應(yīng)用程序,如模擬原子彈爆炸、模擬流體動力、3D建模、預(yù)測天氣、計(jì)算機(jī)動畫和大型數(shù)據(jù)

庫的實(shí)時(shí)分析。這樣的任務(wù)需要多個(gè)具有最高計(jì)算速度的CPU,對存儲和通信要求也非常高,不過它們排在計(jì)算速度之后。超級計(jì)算機(jī)使用最新的計(jì)算機(jī)技術(shù)。

4.按計(jì)算機(jī)的使用方式分類

計(jì)算機(jī)按使用方式的不同,可分為嵌入式計(jì)算機(jī)、桌面計(jì)算機(jī)和服務(wù)器,這是目前廣泛使用的分類方法。桌面計(jì)算機(jī)包括微型計(jì)算機(jī)和工作站,而服務(wù)器描述的計(jì)算機(jī)可以小到微型計(jì)算機(jī),也可以大到超級計(jì)算機(jī),因此,服務(wù)器的類型可以分為小型服務(wù)器、大型服務(wù)器和超級服務(wù)器。服務(wù)器這個(gè)術(shù)語不是指硬件能力的最低組合,而是指一種特定的使用模式。服務(wù)器是管理一個(gè)或多個(gè)共享資源的計(jì)算機(jī)系統(tǒng),這些資源包括文件系統(tǒng)、數(shù)據(jù)庫、Web站點(diǎn)、打印機(jī)和高速CPU,服務(wù)器允許用戶通過局域網(wǎng)或廣域網(wǎng)訪問這些共享資

源。服務(wù)器的硬件能力取決于共享的資源和同時(shí)訪問的用戶數(shù)量。例如,在局域網(wǎng)上的十幾個(gè)用戶之間共享一個(gè)文件系統(tǒng)和兩臺打印機(jī)時(shí),普通的微型計(jì)算機(jī)作為服務(wù)器就足夠了。

但當(dāng)共享資源的要求比較高時(shí),如幾千個(gè)用戶訪問的大型數(shù)據(jù)庫,可能就需要使用大型計(jì)算機(jī)服務(wù)器,有時(shí)還必須使用超級計(jì)算機(jī)作為服務(wù)器以增加用于計(jì)算機(jī)輔助設(shè)計(jì)和動畫設(shè)

計(jì)的計(jì)算能力。

5.按計(jì)算機(jī)的結(jié)構(gòu)分類

計(jì)算機(jī)按結(jié)構(gòu)的不同,可分為馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)和非馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)。

因?yàn)轳T·諾依曼曾在普林斯頓大學(xué)任教,故馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)又稱為普林斯頓結(jié)構(gòu)的計(jì)算機(jī)。在馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)中,指令和數(shù)據(jù)都以二進(jìn)制數(shù)據(jù)的形式存放在同一

個(gè)存儲器中。這種結(jié)構(gòu)存在存儲器訪問沖突,特別是當(dāng)CPU的工作速度越來越高,訪存操作速度顯得越來越慢的時(shí)候。為了解決訪存沖突,可以將指令存儲器和數(shù)據(jù)存儲器分開,形成兩個(gè)獨(dú)立的存儲器。這就構(gòu)成了非馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī),因?yàn)檫@種結(jié)構(gòu)是早期由哈佛大學(xué)研制的計(jì)算機(jī)中曾經(jīng)采用的結(jié)構(gòu)模型,故又稱之為哈佛結(jié)構(gòu)的計(jì)算機(jī)。這種結(jié)構(gòu)使數(shù)據(jù)訪問與指令訪問可以同時(shí)進(jìn)行,提高了并行性,從而提高了系統(tǒng)性能。在采用流水線技術(shù)的計(jì)算機(jī)中,由于

在每個(gè)時(shí)鐘周期中都可能需要進(jìn)行存儲器訪問,存儲器訪問沖突成為常態(tài),而哈佛結(jié)構(gòu)能夠減少這種沖突,從而提高存儲器的帶寬,因此哈佛結(jié)構(gòu)成為新型計(jì)算機(jī)中普遍采用的結(jié)構(gòu)。在微處理器中通常有Cache。Cache的構(gòu)成也可以有兩種:統(tǒng)一的Cache和分離的Cache。統(tǒng)一的Cache將程序運(yùn)行中的指令和數(shù)據(jù)緩存在同一個(gè)Cache中。分離的Cache則有一個(gè)

指令Cache和一個(gè)數(shù)據(jù)Cache,兩者相互分離。統(tǒng)一的Cache同樣存在訪問沖突問題,為了解決這種沖突,現(xiàn)在的微處理器普遍采用分離的Cache。采用了分離Cache的CPU結(jié)構(gòu)也被稱為哈佛結(jié)構(gòu)。1.6.2計(jì)算機(jī)的應(yīng)用

計(jì)算機(jī)的應(yīng)用領(lǐng)域已滲透到社會的各行各業(yè),正在改變著傳統(tǒng)的工作、學(xué)習(xí)和生活方式,推動著社會的發(fā)展。計(jì)算機(jī)的主要應(yīng)用領(lǐng)域如下。

1.科學(xué)計(jì)算

科學(xué)計(jì)算是指利用計(jì)算機(jī)來完成科學(xué)研究和工程技術(shù)中提出的數(shù)學(xué)問

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論