計算機組成原理:第一章-計算機系統體系結構_第1頁
計算機組成原理:第一章-計算機系統體系結構_第2頁
計算機組成原理:第一章-計算機系統體系結構_第3頁
計算機組成原理:第一章-計算機系統體系結構_第4頁
計算機組成原理:第一章-計算機系統體系結構_第5頁
已閱讀5頁,還剩21頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一計算機系統體系結構1.1什么是計算機體系結構本章的第一個概念是計算機系統(computersystem)。計算機系統包括讀取并執行程序的中央處理單元(CPU,

保存程序和數據的存儲器以及將芯片轉換為實用系統的其他子系統。

這些子系統會使CPU與顯示器、打印機、Internet等外部設備之間的通信變得更加容易。cpu(處理器):計算機實際執行程序的部分微處理器:在單個硅片上實現的CPU微機:圍繞微處理器構建的計算機計算機的性能既取決于CPU;也取決于其他子系統。如果不能高效進行數據傳輸,

僅僅提高CPU的性能是毫無意義的。Figure

SEQFigure\*ARABIC1:信息(程序和數據):保存在存儲器中;計算機會使用不同類型的存儲器,達到不同的目的。如果不能叫信息保存在正確的存儲器,那么CPU的速度再快也將毫無意義Cache:保存常用的數據是高速專用的存儲器。主存:存放大量的工作數據,斷電消失輔存:指磁盤等,用于存儲海量的數據。永久存儲組成計算機的各個子系統通過總線連接在一起,

數據通過總線從計算機中的一個位置傳遞到另一個位置。什么是計算機Figure

SEQFigure\*ARABIC2:輸入:指用戶交給計算機的信息輸出:指計算機返回給用戶的信息可編程計算機接收兩種類型的輸入:它將要處理的數據,

以及準確描述要如何處理輸入數據的程序。

程序不過是計算機所執行的完成給定任務的操作序列。Figure

SEQFigure\*ARABIC3:CPU讀程序并完成程序指定的操作。內部使用寄存器來保存數據存儲器系統保存兩類信息:程序,程序處理或產生的數據計算機從存儲器中讀出指令并執行這些指令(即完成或執行指令定義的動作)。

執行指令時,可能要從存儲器中讀出數據,對數據進行操作,將數據寫回存儲器。寄存器是CPU內部用來存放數據的存儲單元。時鐘提供了脈沖流,

所有內部操作都在時鐘脈沖的觸發下進行。時鐘頻率是決定計算機速度的一個因素程序執行過程Figure

SEQFigure\*ARABIC4:CPU先讀取一條指令;在CPU分析或解碼指令;從存儲器中讀出這條指令所需的所有數據。LOADX:從存儲器中讀出變量X的值。并將它暫存到寄存器中LOADY:從存儲器中讀出變量X的值。并將它暫存到寄存器中Z=X+Y:將兩個寄存器中的內容相加,并將結果寫在第三個寄存器中STOREZ:將結果寫回到存儲單元z中###計算機指令盡管計算機能夠執行上百種不同指令,但下面的6條基本指令可以將所有計算機指令進行分類:MovA,B:將B的值復制到ALOADA,B:將存儲單元B的值復制到寄存器A中STOREA,B:將寄存器B的值復制到存儲單元A中ADDA,B:A與B相加,結果保存到A中TESTA:測試A的值是否為oBEQZ:若最后一次測試結果為TRUE,執行地址Z處的代碼,否則繼續執行1.2體系結構和組成體系結構:描述了一些與計算機組成方式有關的內容;因為不同的用戶會從完全不同的角度看待計算機。寄存器用來存放一個單位的數據或字數據的存儲單元。使用它保存數據的位數來描述典型的有8位、16位、32位和64位。與存儲器中的字存儲單元沒有本質區別。唯一區別在于寄存器里cpu近,

訪問速度遠遠大于存儲器計算機體系結構通常被認為是程序員視角中的計算機程序員看到的是計算機的抽象視圖;計算機的實際硬件和實現都被隱藏起來了這個抽象視圖現在通常被稱作指令集體系結構(ISA)計算機組成表示其體系結構的具體實現機器碼匯編語言高級語言計算機上執行的代碼表示為二進制1和0組成的串,被稱作機器碼(machinecode)。

每種計算機都只能執行一種特定的機器碼。人類可讀的機器碼(例如ADDR0,Time)叫作匯編語言。能夠在類型完全不同的計算機上運行,與底層計算機體系結構幾乎沒有關系的代碼叫作高級語言

(比如C或Java)。在執行之前,高級語言程序必須首先被編譯為計算機的本地機器碼。體系結構與組成是不能完全分離的。例如;微處理器內的32位寄存器可以按照

與16位計算機相同的方式實現,如使用16位數據總線,以16位為單位傳輸數據,

功能單元也是16位的。如果程序員指示計算機將寄存器A中的32位數據復制到寄存器B中,

他將要執行一個32位操作,但16位計算機將執行兩個16位操作,

這對程序員來說是完全不可見的。按照這個例子,我們可以說一臺計算機的體系結構是32位的,但它的組成卻是16位的。指令集體系結構包括:數據類型(每個字的位數以及各個位的含義),

用來保存臨時結果的寄存器,指令的類型和格式,以及尋址方式

(表示數據在存儲器中存放位置的方法)。不同層次的程序員看到的計算機是不一樣的。匯編語言程序員看到的計算機與C或Java

等高級語言程序員看到的有很大的區別。即使都是高級語言程序員,C程序員所看到的也與Prolog或LISP程序員看到的有很大的不同。微代碼(Microcode)與微處理器無關。微代碼定義了一組基本操作(微指令),

通過執行這些操作可以解釋執行機器碼。ADDP,Q,R是一條典型的機器指令,

而微指令可能像“將數據從寄存器X移到總線Y上”那么簡單。

如何定義微指令是芯片設計者的職責。術語“體系結構(architecture)”代表計算機的抽象指令集體系結構(它的指令集)術語“組成(organization)”代表計算機的實際硬件實現“組成”一詞也會被用于描述完整的計算機,包括它的CPU、存儲器、

總線以及輸入/輸出機制。術語“微體系結構(microarchitecture)”代表CPU的實現1.2.1計算機系統和技術Figure

SEQFigure\*ARABIC5:技術:說明了計算機組件的工藝的重要性(例如,芯片制造技術決定了芯片的速度和功耗)。計算機速度是設計計算機首要考慮的問題。摩爾定律:芯片的集成度每18個月翻一番。應用:表示計算機的最終應用。一些計算機被用于汽車的嵌入式控制系統,一些被用于游戲機,還有一些用于家庭或辦公室。工具:一些計算機之外的因素也會影響計算機設計最先進的計算機使用了最新的制造技術。Figure

SEQFigure\*ARABIC6:設備技術:決定了計算機的速度及其存儲系統的容量,

包括那些用于制造處理器和主存的半導體技術;制造硬盤的磁技術;

用于CD-ROM、DVD和藍光光碟的光技術;以及網絡連接技術??偩€技術:結構、組成和控制均對計算機性能有很大影響。外設(如調制解調器、鍵盤、打印機和顯示系統)與應用(如桌上排版、圖形和多媒體)等技術,

都會影響計算機系統的設計。1.2.2計算機體系結構在計算機科學中的地位計算機與計算機科學不能被分開計算機體系結構課程會概述計算機是如何工作的,計算機能做什么,并告訴學生們一臺典型的存儲程序計算機是如何運轉的。計算機是計算機科學的心臟——沒有計算機,計算機科學只能作為理論數學的一個分支。理解計算機體系結構對從事計算機領域的工作具有重要幫助。計算機體系結構不能完全與軟件分離。計算機體系結構支撐了計算機科學課程體系中其他領域的許多重要觀點。時鐘時鐘是用于生成連續的間隔固定的電脈沖流。之所以被稱作時鐘,是因為可用這些電脈沖來計時或確定計算機內所有事件的順序時鐘可用它的重復速率或頻率來定義。時鐘也可以用時鐘脈沖的寬度或持續時間來定義,即頻率的倒數事件由時鐘信號觸發的數字電路被稱作同步的,因為它們由時鐘信號來同步。1.3計算機發展計算機的發展歷史豐富而復雜,遠比許多人想象得久遠。1.3.1機械計算機人類是會計算的生物。穴居人發明數學也許不是為了在濕冷的天氣里玩數獨游戲,而是為了丈量土地、建造房屋和報稅。羅馬人將鵝卵石放在小托盤上表示數字。后來,他們沿著線滑動鵝卵石輔助進行加法或減法,從而完成計算。中亞的一些商店,那里的人們用算盤快速地進行計算。1642年,法國數學家布萊士·帕斯卡(BlaisePascal)設計了一個原始的機械加減法計算裝置,

能夠借助發條完成加減法。1694年,德國數學家弗里德·威廉·萊布尼茨GottfriedwilhelmLeibnite)制作了一臺

復雜的機械計算器,能夠完成加減乘除運算。這些設備都不能稱作現代意義上的計算機,因為它們都是不可編程的。可編程這個概念產生于工業革命時期,出于工業化控制的需要。1801年,人們發明了提花織機,能夠自動地將預先設計好的圖案織在布上

提花織機使用穿孔木制卡片控制織在紡織品上的圖案

卡片上的一個位置上有沒有洞決定水平方向的線是在垂直方向的線之前還是之后。

每個打了孔的卡片就是一個程序,因為每個孔的圖案指定了一個唯一的操作序列。1882年,查爾斯·巴貝奇(CharlesBabbage)在英格蘭設計了一臺叫作差分機

(differenceengine)的計算裝置,能夠自動地計算構造數學表所需的多項式的值。

巴貝奇沒有完成他的差分機,1855年PerGeorgScheutz在瑞典制造出差分機。1.3.2機電式計算機機電(electromechanical)指那些有活動件但卻由電控制的零件。1867年發明的打字機和1879年發明的穿孔制表機(穿孔卡片輸入機)

都促進了機電式計算機的發展。機電式計算機是連接機械時代與以真空管、晶體管和集成電路

為代表的電子時代的紐帶。20世紀40年代康拉德.楚澤在德國制造出自己設計的計算機,在第二次世界大戰期間該計算機用來設計飛機。楚澤的計算機是第一臺可編程計算機;而同時代的其他機器都不是軟件可編程的,只能算作是自動計算器。

楚澤還設計了世界上第一種程序設計語言,叫作Plankalküil,1.3.3早期電子計算機1937年~1942年,約翰·文森特·阿塔那索夫(JohnV.Atanasoff)制造出第一臺電子計算機

(ABC),用于解線性方程。1944年制造的巨像計算機(Colossus)是另一臺早期計算機,它安放于布萊切利園,

二戰期間用來破譯德軍的恩格瑪密文。巨像計算機使用真空管,是一臺真正的電子計算機,

但它不能存儲程序,因而只能完成專門的任務。1945年,J.莫奇利(J.Mauchly)和J.??颂?J.Eckert)設計了ENIAC,

一臺能夠處理10位10進制數的真空管計算機,但它不能像今天我們編寫程序那樣編程。埃克特和莫奇利還設計了一臺更先進的計算機——EDVAC,具有存儲程序的特征。在英格蘭,曼徹斯特大學的研究人員于1948年設計出世界上第一臺可操作的存儲程序計算機

——曼徹斯特寶寶。AT&T貝爾實驗室在1948年發明了晶體管,之后發展出了半導體,

它在功能上與真空管等效,但體積更小,功耗更低。晶體管的發明,

使將多個晶體管放在一塊硅片上構成一個完整的電路成為可能。到20世紀60年代中期,IBM設計出System/360體系結構,

在從商用的小型機到科學計算的大型機的產品線上實現了兼容和互操作性。

正是IBMSystem/360導致了計算機體系結構這一概念的出現(即指令集體系結構)。1.3.4微機和PC革命到20世紀70年代,Intel公司和摩托羅拉公司都發布了8位微處理器。

第一臺可用的微機Altair8800是由MITS公司于1975年推向市場的?;贗ntel的技術和微軟的操作系統軟件,IBM在20世紀80年代推出了個人電腦(PC機)。

由于它的開放式體系結構,PC機在第三方軟、硬件開發者中流行起來。

Intel將8080微處理器擴展為包括16位80286(1982年)和32位80386(1985年),

以及含有64位數據總線的Pentium(1990年)。1.3.5摩爾定律和進步的歷程“摩爾定律”一詞是卡沃·米德(CarverMead)于1975年根據戈登·摩爾(GordonMoore)

所觀察到集成電路的集成度每兩年翻一番的現象而創造的。摩爾定律當然是一個經驗性的觀測結果,但在過去的40年里,

技術的進步的確導致芯片內晶體管數量呈指數式增長。這一增長還伴隨著集成電路速度的相應提升。

集成電路內晶體管數量的增加還導致體系結構復雜度的急劇增加以及一些極其聰明的性能提升方法的出現。RISC(精簡指令集)與CISC(復雜指令集)1.3.6存儲技術發展覆蓋著電容的旋轉的磁鼓陰極射線管鐵氧體磁心存儲器磁盤光存儲器1.3.7普適計算計算是無所不在的。1.3.8多媒體計算機多媒體處理能力是現代計算機(包括普適的和傳統的個人計算機)的一個重要特征。多媒體處理(處理和存儲音頻/視頻數據)需要很大的存儲容量以及完成大量簡單

重復操作的實時處理聲音樣本和圖像像素的能力。1.4存儲程序計算機1.4.1問題Figure

SEQFigure\*ARABIC7:求最大游程,即同一個數字連續出現的最大次數1.4.2解決問題如果我們從數串的左邊開始逐個檢查數字,在任何一個位置,我們都會得到以下兩個結果之一:要么這個數與前一個相同,序列還在增長;要么這個數與上一個不同,前一個序列結束,一個新的序列開始。Figure

SEQFigure\*ARABIC8:1.4.3構造一個算法算法的一些符號

算法

1.4.4計算機需要通過什么來解決問題盡管這個問題相對簡單,它卻含有解決任一問題所需的全部元素有將信息從一個位置傳遞到另一個的賦值操作有加、減等算術運算還有根據計算結果(如比較)從兩個候選動作中選擇一個的操作。Figure

SEQFigure\*ARABIC9:1.4.5存儲器下圖描述了程序怎樣找出保存在一個假想存儲器中的數串的最大序列長度。

必須強調的是,這個程序是概念上的而不是實際的,因為真正的計算機指令比其更加基礎。這幅圖叫作存儲器映射,它展示了信息在存儲器中的存放位置。

它是存儲器的一幅快照,因為它表示存儲器在某個特定時刻的狀態。

存儲器映射也包含程序使用的變量和數字串。存儲程序計算機會將指令、變量和常量全部保存在同一個存儲器內。Figure

SEQFigure\*ARABIC10:寄存器傳輸語言(RTL):描述性的語言,不能被執行使用文字描述計算機的操作很不方便。使用RTL可以更加容易地定義計算機內發生的操作。RTL符號描述[內存地址]表示存儲單元的內容[內存地址]=value在指定地址保存value的值[內存地址1]<--[內存地址2]+1地址2的數據加上1寫入到地址1存儲系統

描述了存儲系統的組成。處理器將一個放在地址總線上的地址以及一個用于選擇讀操作或寫操作

(它們有時也被稱作讀或寫周期)的控制信號發送給存儲器。在讀周期中,存儲器將數據放在數據總線上供CPU讀取。在寫周期中,放在數據總線上的數據被寫入存儲器。信息進入或離開存儲器的位置(或計算機系統的其他功能部分)叫作端口。盡管上圖存儲器是簡化后的版本,它卻準確地描述了將數據和指令連續存放的計算機存儲器。

一臺真正的計算機會使用存儲系統層次(每個層次都有可能采用不同的技術來實現)。

這些層次包括保存頻繁被訪問數據的速度非??斓腃ache、主存,以及速度非常慢的輔存

在這一層次中大量數據會一直保存在磁盤、光盤或DVD中,直到使用時才會被調入主存。1.5存儲程序概念存儲程序計算機的基本操作

執行指令

在這臺機器上執行一條指令需要至少兩次訪存。第一次訪存是讀取指令。第二次訪存要么從存儲器中讀出指令需要的數據,

要么將它之前的指令產生的或修改過的數據寫回存儲器。三地址指令存儲程序計算機的一種直觀合理的指令格式可以用下面的形式表示operationAddress1,Address2,Address3operation表示要執行的指令的動作Address_i分別是操作數在存儲器中的位置。在這條一般性的指令中,操作數為數據的地址,而不是數據本身。RTL:[Address1]<--[Address2]Operation[Address3]Figure

SEQFigure\*ARABIC11:指令的4個字段、cpu、存儲器和指令執行方式之間關系:解釋執行指令

Figure

SEQFigure\*ARABIC12:兩地址指令指令格式如下OperationAddress1,Address2Address2為源操作數,Address1既是源操作數也是目的操作數。RTL語言:[P]<--[P]Operation[Q]實際的計算機中,一般都不允許同一條指令中使用兩個存儲地址;

大多數計算機規定一個地址是存儲器地址,另一個地址是寄存器。單地址指令指令格式如下operationaddress指令中只提供了一個操作數地址指令卻需要至少兩個地址,處理器不得不使用一個不需要顯式地址的第二操作數。

也就是說,第二個操作數來自CPU內一個叫作累加器(accumulator)的寄存器。操作結果將一直保存在寄存器中,直到另一條指令將它送入存儲器。Figure

SEQFigure\*ARABIC13:計算機分類存儲器–存儲器型:一條指令能夠從存儲器中讀出源操作數,對數據完成某個操作,

并將結果保存在存儲器中寄存器–存儲器型:它們能夠處理兩個數據,

其中一個位于存儲器中,另一個位于寄存器中(結果要么被寫回存儲器,要么被寫回寄存器)。寄存器―寄存器型:計算機只能對寄存器中的內容進行操作;使用LOAD指令將數據讀入寄存器使用STORE指令將數據從寄存器送回存儲器。1.6計算機系統概覽CPU變成計算機系統的存儲系統和總線系統。存儲器被視作一個巨大的通過地址訪問的數組。例如,如果用數組M表示存儲器,那么它的第i個元素可以表示為M[i];存儲器非常重要,因為它的大小(即存儲容量)決定了程序能夠存儲的數據量,

它的速度(訪問時間)決定了程序的數據

溫馨提示

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

評論

0/150

提交評論