計算機組成及體系第五章課件_第1頁
計算機組成及體系第五章課件_第2頁
計算機組成及體系第五章課件_第3頁
計算機組成及體系第五章課件_第4頁
計算機組成及體系第五章課件_第5頁
已閱讀5頁,還剩129頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

計算機組成體系

上海電機學院第一章計算機系統概論第二章運算方法和運算器第三章存儲系統第四章指令系統

第五章中央處理器第六章總線系統第七章外圍設備第八章輸入輸出系統第九章并行組織目錄計算機組成原理第5章中央處理器

5.1CPU的組成和功能 5.8流水CPU5.2

CPU的工作過程 5.9RISCCPU5.3時序產生器和控制方式 5.10多媒體CPU5.4微程序控制器 5.11CPU性能評價5.5微程序設計技術5.6硬布線控制器5.7傳統CPU5.1CPU的功能和組成

當代主流計算機所遵循的仍然是馮.諾依曼的“存儲程序、程序控制”思想

程序告訴計算機:應該逐步執行什么操作;在什么地方找到用來操作的數據,結果存到何處等

中央處理器是控制計算機自動完成取出指令和執行指令任務的部件。它是計算機的核心部件,通常簡稱為CPU(CentralProcessingUnit)5.1.1CPU的功能★程序控制即指令控制

保證機器按程序規定的順序取出執行(CPU首要任務)★操作控制

CPU產生每條指令所對應的操作信號,并把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作★時間控制

對各種操作的實施時間進行定時★數據加工

對數據進行算術運算和邏輯運算處理(CPU的根本任務)控制器與運算器的組成控制器:由程序計數器、指令寄存器、指令譯碼器、時序產生器和操作控制器組成。它是發布命令的“決策機構”,即完成協調和指揮整個計算機系統的操作。運算器:由算術邏輯單元(ALU)、累加寄存器、數據緩沖寄存器和狀態條件寄存器組成,它是數據加工處理部件。5.1.2CPU的基本組成

控制器完成對整個計算機系統操作的協調與指揮。

(1)控制機器從內存中取出一條指令,并指出下一條指令在內存中的位置;

(2)對指令進行譯碼,并產生相應的操作控制信號,送往相應的部件,啟動規定的動作;

(3)指揮并控制CPU、內存與輸入/輸出(I/O)設備之間數據流動的方向運算器是數據加工處理部件,所進行的全部操作由控制器發出的控制信號指揮

(1)執行所有的算術運算;

(2)執行所有的邏輯運算,并進行邏輯測試算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC存儲器I/OCPUALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制ccccc緩沖寄存器DRCPU的基本模型5.1.3

CPU中的主要寄存器

數據緩沖寄存器(DR)暫時存放由內存讀出或寫入的指令或數據字指令寄存器(IR)保存當前正在執行的一條指令程序計數器(PC)確定下一條指令的地址地址寄存器(AR)保存當前CPU所訪問的內存單元的地址累加寄存器(AC)最常使用的一個通用寄存器狀態條件寄存器(PSW)保存由算術和邏輯指令的結果建立的各種條件碼5.1.4操作控制器與時序產生器微操作與數據通路微操作:把指令分解成的一系列最基本、最簡單、不可再分的操作控制動作。數據通路:許多寄存器之間傳輸信息的通路稱為數據通路。5.1.4操作控制器與時序產生器操作控制器在各寄存器之間建立數據通路(傳送信息的通路)操作控制器的功能:就是根據指令操作碼和時序信號,產生各種操作控制信號,以便正確地建立數據通路,從而完成取指令和執行指令的控制組合邏輯控制器(時序邏輯型)微程序控制器(存儲邏輯型)時序產生器產生并發出計算機所需要的時序控制信號,對各種操作實施時間上的控制。5.2

CPU的工作過程—讀取指令指令地址送入主存地址寄存器讀主存,讀出內容送入指定的寄存器—分析指令—按指令規定內容執行指令不同指令的操作步驟數和具體操作內容差異很大—檢查有無中斷請求若無,則轉入下一條指令的執行過程形成下一條指令地址

指令的執行過程取指令執行指令5.2.1指令周期的基本概念

指令周期

:

CPU從內存取出一條指令并執行完這條指令的時間總和CPU周期

:

又稱機器周期(總線周期),CPU訪問內存所花的時間較長,因此用CPU從內存讀取一條指令字的所需的最短時間來定義

時鐘周期

:

通常稱為節拍脈沖或T周期。一個CPU周期包含若干個時鐘周期T

相互關系:

1個指令周期=若干個CPU周期

1個CPU周期=若干T周期

取指時間+執行指令時間指令周期·CPU周期·

時鐘周期020

CLA

;累加器清0021

ADD30

;(AC)+(30)→AC

022

STA40

;(AC)→(40)023

NOP

;空操作

024

JMP21

;21→PC

…030000006 ;數據

…040存和數 ;數據5條典型指令構成的簡單程序一個CPU周期一個CPU周期取指令階段執行指令階段開始取指令PC+1對指令譯碼執行指令取下條指令PC+15.2.2CLA指令的指令周期取出CLA指令算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA00002140算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制cccc+120212223243031CLAADD30STA40NOPJMP21000006000020CLACLA000021000000執行CLA指令5.2.3

ADD指令的指令周期一個CPU周期一個CPU周期取指令階段執行指令階段開始取指令PC+1對指令譯碼送操作數地址取下條指令PC+1取出操作數執行加操作一個CPU周期算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006取出并執行ADD指令5.2.4

STA指令的指令周期

取出并執行STA指令算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA400000220000230000400000060000060000065.2.5NOP指令和JMP指令的指令周期算術邏輯單元狀態條件寄存器程序計數器PC地址寄存器AR地址總線ABUS數據總線DBUS累加器AC緩沖寄存器DRALU指令寄存器IR指令譯碼器操作控制器時序產生器時鐘狀態反饋取指控制執行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000024JMP21JMP21000024000021000006000006000025000021取出并執行JMP指令例1:教材圖5-11所示為雙總線結構機器的數據通路,IR為指令寄存器,PC為程序計數器(具有自增功能),M為主存(受R/W信號控制),AR為地址寄存器,DR為數據緩沖寄存器,ALU由加、減控制信號決定完成何種操作,控制信號G控制的是一個門電路。另外,線上標注有小圈表示有控制信號,例中yi表示y寄存器的輸入控制信號,R1o為寄存器R1的輸出控制信號,未標字符的線為直通線,不受控制。(1)“ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,畫出其指令周期流程圖,假設該指令的地址已放入PC中。并列出相應的微操作控制信號序列。(2)“SUBR1,R3”指令完成(R3)-(R1)→R3的操作,畫出其指令期流程圖,并列出相應的微操作控制信號序列。5.3

時序產生器和控制方式

用二進制碼表示的指令和數據都放在內存里,那么CPU是怎樣識別出它們是數據還是指令呢?

從時間上來說:取指令事件發生在指令周期的第一個CPU周期中,即發生在“取指令”階段,而取數據事件發生在指令周期的后面幾個CPU周期中,即發生在“執行指令”階段。

從空間上來說:如果取出的代碼是指令,那么一定經DR送往指令寄存器IR,如果取出的代碼是數據,那么一定送往運算器。時間控制對計算機來說是非常重要的![思考]5.3.1時序信號的作用和體制

計算機的協調動作需要時間標志,而且需要采用多級時序體制。而時間標志則用時序信號來體現。操作控制器發出的各種控制信號都是時間因素(時序信號)和空間因素(部件位置)的函數。組成計算機硬件的器件特性決定了時序信號最基本的體制是電位—脈沖制。

數據準備好后,以電位的方式送觸發器控制信號來到后,用一個脈沖信號把數據裝入觸發器數據:電位控制信號:脈沖節拍電位-節拍脈沖硬布線控制器中的時序信號

硬布線控制器中,時序信號往往采用主狀態周期-節拍電位-節拍脈沖三級體制。主狀態周期(指令周期):包含若干個節拍周期,可以用一個觸發器的狀態持續時間來表示節拍電位(機器周期):表示一個CPU周期的時間,包含若干個節拍脈沖節拍脈沖(時鐘周期):表示較小的時間單位

節拍脈沖節拍電位1主狀態周期節拍電位2主狀態周期-節拍電位-節拍脈沖

微程序控制器中的時序信號微程序控制器中,時序信號則一般采用節拍電位-節拍脈沖二級體制。它只有一個節拍電位節拍脈沖中包含若干個節拍脈沖節拍脈沖把一個CPU周期劃分成幾個較小的時間間隔。時間間隔可以相等,也可以不相等。5.3.2時序信號產生器

IORQMREQRDWET1T2T3T4

IORQ°MREQ°RD°WE°T1°T2°T3°T4°MERQ’IORQ’RD’WR’Φ提供頻率穩定且電平匹配的方波時鐘脈沖信號由石英晶體振蕩器組成產生一組有序的間隔相等或不等的脈沖序列啟動停機啟??刂七壿嫻澟拿}沖和讀寫時序譯碼邏輯環形脈沖發生器時鐘脈沖源5.3.2時序信號產生器1.時鐘源時鐘源用來為環形脈沖發生器提供頻率穩定且電平匹配的方波時鐘脈沖信號。電路左邊是振蕩電路,右邊是整形電路,左邊的電路產生接近正弦波的波形,右邊非門則將其整形為一個理想的方波11RC1C25.3.2時序信號產生器2.環形脈沖發生器產生一組有序的間隔相等或不相等的脈沖序列。毛刺產生原因:電路內部原因以及寄存器參數的影響,避免方法:采用循環移位寄存器電路分析:S為置位端,R為復位端SRDCPQQ5.3.2時序信號產生器39C4C1C2C3Φ5.3.2時序信號產生器3.節拍脈沖和存儲器讀/寫時序的譯碼5.3.2時序信號產生器4.啟??刂七壿媶印⑼C是隨機的,對讀/寫時序信號也需要由啟停邏輯加以控制。當運行觸發器為“1”時,打開時序電路。當計算機啟動時,一定要從第1個節拍脈沖前沿開始工作。當運行觸發器“0”時,關閉時序產生器。停機時一定要在第4個節拍脈沖結束后關閉時序產生器。5.3.3控制方式

(1/4)控制器的控制方式:控制不同操作序列時序信號的方法,稱為控制器的控制方式??刂品绞降姆诸悾和娇刂品绞疆惒娇刂品绞酵惒铰摵峡刂品绞?.3.3控制方式

(2/4)一、同步控制方式在任何情況下,已定的指令在執行時所需的機器周期數和時鐘周期數都固定不變。根據不同情況,同步控制方式可選取如下方案:(1)采用完全統一的機器周期執行各種不同的指令。(2)采用不定長機器周期。(3)中央控制與局部控制結合5.3.3控制方式

(3/4)二、異步控制方式

1、執行一條指令需要多少節拍,不作統一的規定,而是根據每條指令的具體情況而定,需要多少,控制器就產生多少時標信號。

2、每一條指令執行完畢后都必須向控制時序部件發回一個回答信號,控制器收到回答信號后,才開始下一條指令的執行。

3、這種方式形成的操作控制序列沒有固定的CPU周期數或嚴格的時鐘周期與之同步。

5.3.3控制方式

(4/4)三、聯合控制方式情況(1)

大部分操作序列安排在固定的機器周期中,對某些時間難以確定的操作則以執行部件的“回答”信號作為本次操作的結束;情況(2)

機器周期的節拍脈沖數固定,但是各條指令周期的機器周期數不固定。5.4微程序控制器

微程序控制器同硬布線控制器相比較,具有規整性、靈活性、可維護性等一系列優點它利用軟件方法(微程序設計技術)來設計硬件微程序控制的基本思想就是把操作控制信號編成所謂的“微指令”,存放到一個只讀存儲器里(控制存儲器CM)。當機器運行時,一條又一條地讀出這些微指令,從而產生全機所需要的各種操作控制信號,是相應部件執行所規定的操作5.4.1微命令和微操作處理器內部可以分為:控制部件和執行部件控制部件:控制器運算器執行部件存儲器外圍設備5.4.1微命令和微操作控制部件與執行部件的聯系控制線反饋信息微命令:控制部件向執行部件發出的控制命令它是構成控制序列的最小單位。例如:打開或關閉某個控制門的電位信號、某個寄存器的打入脈沖等。微命令是控制計算機各部件完成某個基本微操作的命令。5.4.1微命令和微操作微操作:執行部件接受微命令后所進行的操作微命令和微操作是一一對應的。微命令是微操作的控制信號,微操作是微命令的操作過程。微操作是執行部件中最基本的操作。微命令→指令系統

微操作在執行部件中是最基本的操作相容性微操作微操作相斥性微操作微指令:實現一定操作功能的一組微命令微程序:實現一條機器指令功能的微指令序列指令系統=所有指令,指令=微程序微程序=若干微指令,微指令=一組微命令微命令→微操作

微指令基本格式

微指令給出的控制信號都是節拍電位信號,持續時間都是一個CPU周期。

微指令基本格式操作控制部分用來發出管理和指揮全機工作的控制信號。每一位表示一個微命令。當操作控制字段某一位信息為1時,表示發出微命令。順序控制部分用來決定下一條微指令的地址。

運算器操作時序與產生邏輯機器指令與微指令

程序機器指令1機器指令2機器指令i機器指令n……..………微指令2微指令1微指令i微指令n……..……..微程序5.4.3微程序控制器原理框圖

微程序控制器的組成控制存儲器

控制存儲器用來存放實現全部指令系統的微程序,它是一種只讀存儲器。要求是速度快,讀出周期要短。

微指令寄存器微指令寄存器用來存放由控制存儲器讀出的一條微指令信息。

地址轉移邏輯地址轉移邏輯就承擔自動完成修改微地址的任務。

5.4.4微程序舉例

5.4.5CPU周期與微指令周期的關系在串行方式的微程序控制器中,微指令周期等于讀出微指令的時間加上執行該條微指令的時間。為保證整個機器控制信號的同步,可以將一個微指令周期時間設計得恰好和CPU周期時間相等。5.4.6機器指令與微指令的關系一條機器指令對應一個微程序,這個微程序是由若干條微指令序列組成的。從指令與微指令,程序與微程序,地址與微地址一一對應的關系來看,前者與內存儲器有關,后者與控制存儲器有關。五條指令的微程序流程圖,每一個CPU周期就對應一條微指令。程序計數器PC地址寄存器AR緩沖寄存器DR指令寄存器IR微地址寄存器μAR微指令寄存器μIR主存儲器控制存儲器CM微命令地址譯碼器地址譯碼機器指令級微指令級5.5微程序設計技術5.5.1微命令編碼

直接表示法

編碼表示法

混合表示法

綜合考慮指令字長、靈活性、執行微程序速度等方面的要求1.直接表示法

特征:操作控制字段中的每一位代表一個微命令。優點:簡單直觀,其輸出直接用于控制。缺點:微指令字較長,因而使控制存儲器容量較大。2.編碼表示法特征:把一組相斥性的微命令信號組成一個小組(即一個字段),然后通過小組(字段)譯碼器對每一個微命令信號進行譯碼,譯碼輸出作為操作控制信號。優點:用較小的二進制信息位表示較多的微命令信號

缺點:微程序的執行速度稍稍減慢。5.5.2微地址的形成方法1.計數器方式特征:微地址寄存器通常改為計數器。順序執行的微指令序列就必須安排在控制存儲器的連續單元中。優點:微指令的順序控制字段較短,微地址產生機構簡單。缺點:多路并行轉移功能較弱,速度較慢,靈活性較差。

5.5.2微地址的形成方法2.多路轉移方式特征:一條微指令具有多個轉移分支的能力稱為多路轉移?!芭袆e測試”有n位標志,可實現微程序2的n次方路轉移,涉及微地址寄存器的n位。

優點:能以較短的順序控制字段配合,實現多路并行轉移,靈活性好,速度較快。缺點:轉移地址邏輯需要用組合邏輯方法設計。

5.5.3微指令格式

指令的編譯方法是決定微指令格式的主要因素。微指令的格式大體分成兩類:水平型微指令和垂直型微指令。水平型微指令

垂直型微指令

1.水平型微指令

一次能定義并執行多個并行操作微命令的微指令。按照控制字段的編碼方法不同,分為:全水平型字段譯碼法水平型直接和譯碼相混合的水平型

2.垂直型微指令(1)微指令中設置微操作碼字段,采用微操作碼編譯法,由微操作碼規定微指令的功能。在一條微指令中只有1—2個微操作命令,每條微指令的功能簡單。

2.垂直型微指令(2)水平型微指令與垂直型微指令(1)水平型微指令并行操作能力強,指令高效,快速,靈活,垂直型微指令則較差。(2)水平型微指令執行一條指令時間短,垂直型微指令執行時間長。(3)由水平型微指令解釋指令的微程序,有微指令字較長而微程序短的特點。垂直型微指令則相反。(4)水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對來說,比較容易掌握。

5.5.4動態微程序設計

1.靜態微程序設計對應于一臺計算機的機器指令只有一組微程序,而且這一組微程序設計好之后,一般無須改變而且也不好改變2.動態微程序設計采用EPROM作為控制存儲器。通過改變微指令和微程序來改變機器的指令系統可在一臺機器上仿真其它機器指令系統

5.6硬布線控制器把控制部件看作為產生專門固定時序控制信號的邏輯電路(以使用最少元件和取得最高操作速度為設計目標)。這種邏輯電路是一種由門電路和觸發器構成的復雜樹形邏輯網絡。

優點:速度較快

缺點:不容易修改添加新功能

問:與微程序控制相比,哪個速度快?為什么?

5.6.1硬布線控制器基本原理某一微操作控制信號C是指令操作碼譯碼器輸出Im、時序信號(Mi,Tk

)和狀態條件信號Bj的邏輯函數,即C=f(Im,Mi,Tk,Bj)2.指令執行流程對于硬布線控制器,時序產生器除要產生節拍脈沖信號外,還應當產生節拍電位信號。3.微操作控制信號的產生在微程序控制器中,微操作控制信號由微指令產生,并且可以重復使用。在硬布線控制器中,某一微操作控制信號由布爾代數表達式描述的輸出函數產生。如是脈沖有效,必須加入節拍脈沖信號進行相“與”。5.7傳統CPUM6800CPU是一個比較典型的單總線結構的微處理器M6800CPU是一種8位微處理器,采用單一的5V電源。時鐘脈沖采用兩相(φ1,φ2),主頻為1MHz,由外面加入CPU。M6800的CPU主要包括8位的ALU,16位的程序計數器、16位的堆棧指示器和16位的變址寄存器,兩個8位的累加器和一個8位的狀態條件碼寄存器,一個8位的指令寄存器以及指令譯碼與控制部件(即操作控制器)。此外還有一個8位的數據緩沖寄存器和一個16位的地址緩沖寄存器。ALU部件執行算術運算和邏輯操作,它們包括邏輯“與”、邏輯“或”、邏輯“異或”、求補、比較、加法、減法、十進制調整等。在M6800中,主存地址和外設地址是統一編址的,因此,在65536個地址中有一部分是為外圍設備使用的。傳統CPU舉例Intel8088CPUIntel8088是一種通用的準16位微處理器,其內部結構為16位,與外部交換的數據為8位。它可以處理16位數據(具有16位運算指令,包括乘除法指令),也可處理8位數據。它有20條地址線,直接尋址能力達到1M字節。CPU從功能上來說分成總線接口單元BIU和執行單元EU兩大部分。BIU負責與存儲器和外圍設備接口,即8088CPU與存儲器和外圍設備之間的信息傳送,都是由BIU進行的。EU部分負責指令的執行。取指部分與執行指令部分是獨立并行工作的,在一條指令的執行過程中,可取出下一條(或多條)指令,在指令流隊列寄存器中排隊。在一條指令執行完以后就可以立即執行下一條指令,減少了CPU為取指令而等待的時間,提高了系統的運行速度。傳統CPU舉例IBM370CPU32位CPUALU部件按功能不同分為如下三個子部件:(1)定點運算,包括整數計算和有效地址的計算;(2)浮點運算;(3)可變長運算,包括十進制算術運算和字符串操作。為了存放地址和數據,使用了兩組獨立的可編址寄存器,16個通用寄存器用來存放操作數和運算結果,且可用作變址寄存器。4個浮點寄存器用于浮點運算。數據寄存器DR、地址寄存器AR、指令寄存器IR是標準化的。Intel80486CPU32位CPU通過采用流水技術,以及微程序控制和硬布線邏輯控制相結合的方式,進一步縮短可變長指令的譯碼時間,達到基本指令可以在一個時鐘周期內完成。傳統CPU舉例486芯片內部包含一個8KB的數據和指令混合性cache,為頻繁訪問的指令和數據提供快速的內部存儲,從而使系統總線有更多的時間用于其他控制。486芯片內部包含了增強性80387協處理器,稱為浮點運算部件(FPU)。由于FPU功能擴充,且放在CPU內部,使引線縮短,故速度比80387提高了3—5倍。486CPU的內部數據總線寬度為64位,這也是它縮短指令周期的一個原因。而外部數據總線的寬度也可以自動轉換。地址信號線擴充到32位,可以處理4GB(232字節)的物理存儲空間。如果利用虛擬存儲器,其存儲空間達64TB(246字節)。5.8流水CPU洗衣房的流水作業三個階段:1.水洗(30)2.烘干(40)3.熨燙(20)ABCD6PM789TaskOrderTime3040404040205.8.1并行處理技術并行性(Parallelism): 在同一時刻或是同一時間間隔內完成兩種或兩種以上性質相同或不相同的工作同時性(Simultaneity):同一時刻發生的并行性并發性(Concurrency):同一個時間間隔內發生的并行性并行性的等級指令內部并行:微操作之間指令級并行(ILP:InstructionLevelParallel)線程級并行(TLP:ThreadLevelParallel)程序級并行系統級并行:分布式系統、多機系統、機群系統提高并行性的技術途徑時間重疊(Time-interleaving)=時間并行

多個過程在時間上相互錯開,輪流重疊地使用同一套硬件設備的各個部分資源重復(Resource-replication)=空間并行 通過重復設置資源(尤其是硬件資源),提高性能資源共享(Resource-sharing)

使多個任務按一定時間順序輪流使用同一套硬件設備單機系統中并行性的發展→9.1.3指令流水線,部件冗余,分時系統多機系統中并行性的發展→9.1.4多機系統耦合度:松散耦合、緊密耦合5.8.2流水CPU的結構指令流水線

IF(InstructionFetch) 取指令階段ID(InstructionDecode) 指令譯碼階段EX(Execute) 執行運算階段MEM(MemoryAccess) 存儲器訪問階段WB(WriteBack) 寫回結果階段WB流水線的時空圖流水線技術:把一個重復的過程分解為若干個子過程,每個子程序可以與其他子過程同時進行描述流水線的工作,最常用的方法是時間-空間圖(時空圖)橫坐標:表示時間,即各個任務在流水線中所經過的時間縱坐標:表示空間,即流水線的各個子過程,也稱為級、段、流水線深度(Stage)非流水計算機的時空圖每4個機器周期才有一個輸出結果流水計算機的時空圖每個機器周期可以輸出一個結果演示

設一m段流水線的各段經過時間均為Δt0,則第1條指令從流入到流出需要T0=mΔt0的流水建立時間,之后每隔Δt0就可以流出一條指令,其時—空圖如圖5.23所示(這里設m=4)。這樣,完成n個任務的解釋共需時間T=m·Δt0+(n-1)Δt0。在這段時間里,流水線的實際吞吐率

不僅實際的吞吐率總是小于最大的吞吐率,而且只有當n>>m時,才能使實際的吞吐率接近于理想的最大吞吐率。如果用加速比(SpeedupRatio,Sp)表示流水線方式相對非流水線順序串行方式速度提高的比值,那么,非流水線順序串行方式工作,連續完成n個任務需要n·m·Δt0的時間,因此,流水線方式工作的加速比

流水線的特點流水線實際上是把一個功能部件分解成多個獨立的子功能部件(一個任務也就分成了幾個子任務,每個子任務由一個子功能部件完成),并依靠多個子功能部件并行工作來縮短所有任務的執行時間流水線有助于提高整個程序(所有任務)的吞吐率,但并沒有減少每個指令(任務)的執行時間流水線各個功能段所需時間應盡量相等。否則,時間長的功能段將成為流水線的“瓶頸”,會造成流水線的“阻塞”(Stall)流水線開始需要“通過時間”(Fill)和最后需要“排空時間”(Drain)。流水線只有處理連續不斷的任務才能發揮其效率5.8.3流水線中的主要問題流水線中存在一些相關(沖突、冒險Hazard,相關、依賴Dependence,競爭Competition)的情況,它使得下一條指令無法在設計的時鐘周期內執行。這些相關將降低流水線性能主要有三種類型的相關(沖突)結構相關(資源沖突):當指令重疊執行過程中,硬件資源滿足不了指令重疊執行的要求數據相關(數據沖突):在同時執行的多條指令中,一條指令依賴前一條指令的執行結果(數據)卻無法得到控制相關(控制沖突):流水線遇到分支指令或其他改變PC值的指令1.資源相關

資源相關是指多條指令進入流水線后,在同一機器時鐘周期內爭用同一個功能部件所發生的沖突

例:假定一條指令流水線由五段組成,且僅有IF過程和MEM過程需要訪問存儲器解決辦法:后邊指令拖一拍再推進;增設一個功能部件I1與I4兩條指令在時鐘4爭用存儲器資源的相關沖突2.數據相關ADDR1,R2,R3 ;

R2+R3→R1SUBR4,R1,R5 ;

R1-R5→R4ANDR6,R1,R7 ;

R1∧R7→R0指令發生數據相關沖突

2.數據相關RAW(ReadAfterWrite)后面指令用到前面指令所寫的數據WAW(WriteAfterWrite)兩條指令寫同一個單元在簡單流水線中沒有此類相關,因為不會亂序執行WAR(WriteAfterRead)后面指令覆蓋前面指令所讀的單元在簡單流水線中沒有此類相關解決辦法:可以推后后繼指令對相關單元的讀操作設置相關的直接通路(Forwarding)

【例5】流水線中有三類數據相關沖突:寫后讀(RAW)相關;讀后寫(WAR)相關;寫后寫(WAW)相關⑴I1:ADDR1,R2,R3 ;R2+R3→R1

I2:SUBR4,R1,R5 ;R1-R5→R4

⑵I3:STAM(x),R3 ;R3→M(x)

I4:ADDR3,R4,R5 ;R4+R5→R3

⑶I5:MULR3,R1,R2 ;R1×R2→R3

I6:ADDR3,R4,R5 ;R4+R5→R3RAWWARWAW3.控制相關控制相關沖突由轉移指令(分支指令)引起執行轉移指令時,依據轉移條件的產生結果 可能為順序取下條指令 也可能轉移到新的目標地址取指令 地址不定,流水線需要暫停、發生斷流轉移指令主要有: 無條件轉移指令:跳轉、過程調用和返回 條件分支指令

解決辦法:延遲轉移法,轉移預測法指令動態調度策略簡單指令流水線技術的一個主要局限 指令順序發射(in-orderissue)=按序發射

指令順序執行(in-orderexecution)

如果一條指令在流水線中,與之相關的指令及其后面的指令都不能進行處理改進指令流水線,只要指令操作數就緒就執行, 指令亂序執行(out-of-orderexecution)

指令亂序結束(out-of-ordercompletion)MULR0,R2,R4ADDR6,R0,R8SUBR7,R3,R1多指令流出技術進一步改進指令流水線,實現一個時鐘周期發射(流出issue)多條指令超標量(Superscalar)處理器:每個時鐘周期發射多條指令(1~8)超長指令字(VLIW:VeryLongInstructionWord):通過編譯器調度無關的多條指令(4~16)形成一條長指令,每個時鐘周期發射一條長指令超級流水線(Superpipelining):將每個功能部件進一步流水化,使得一個功能部件在一個時鐘周期中可以處理多條指令(可以簡單地理解為很長的流水線)多發射流水線01234567T正常流水線超標量流水線0123456T0123456T超長指令字流水線3個操作01234567T超級流水線80486的整數指令流水線5級指令流水線,每級1個時鐘周期

PF指令預取(prefetch)

D1指令譯碼1(decodestage1) 對所有操作碼和尋址方式信息進行譯碼

D2指令譯碼2(decodestage2) 將操作碼擴展為ALU的控制信號,存儲器地址計算EX指令執行(execute) 完成ALU操作和Cache存取WB回寫(writeback) 更新在EX步驟得到的寄存器數據和狀態標志Pentium的超標量流水線類似80486的5級流水線,后3級可以在兩個流水線同時進行指令預取PF和指令譯碼D1步驟可以并行取出、譯碼2條簡單指令,然后分別發向U和V流水線在滿足指令配對的條件下,Pentium可以每個時鐘周期執行完2條指令V流水線U流水線地址生成D2地址生成D2指令預取PF指令譯碼D1執行EX執行EX回寫WB回寫WBPentium的超標量結構轉移指令地址寄存器V流水線ALUU流水線ALU移位器指令譯碼和配對控制單元分支目標緩沖器V流水線存儲地址產生器U流水線存儲地址產生器隊列B隊列A指令Cache指令預取電路分支目標地址產生分支地址PentiumIII的動態執行結構取指取數順序發送前端(取指與譯碼單元)讀取指令譯碼指令為微代碼處理指令分支亂序執行核心(分派與執行單元)調度和執行微代碼包含5個執行端口順序退出單元(退出單元)順序退出指令寫入寄存器和存儲器結果L1指令CacheL1數據Cache存數總線接口單元L2Cache系統總線重排序緩沖區ROB(指令池)等待執行的微代碼緩沖區5.9RISCCPURISC的三個要素

(1)一個有限的簡單的指令集

(2)CPU配備大量的通用寄存器

(3)強調對指令流水線的優化5.9.1RISC機器的特點⑴等長指令,典型長度是4個字節(32位)⑵尋址方式少且簡單,一般為2~3種⑶只有取數指令和存數指令訪問存儲器⑷指令數目一般少于100種,指令格式一般少于4種⑸指令功能簡單,控制器多采用硬布線方式⑹指令的執行時間為一個處理時鐘周期⑺整數寄存器的個數不少于32個⑻強調通用寄存器資源的優化使用⑼支持指令流水并強調指令流水的優化使用⑽RlSC技術的編譯程序復雜RISC與CISC的主要特征對比

比較內容CISCRISC指令系統復雜,龐大簡單,精簡指令數目一般大于200一般小于100指令格式一般大于4一般小于4尋址方式一般大于4一般小于4指令字長不固定等長可訪存指令不加限制只有LOAD/STORE指令各種指令使用頻率相差很大相差不大各種指令執行時間相差很大絕大多數在一個周期內完成優化編譯實現很難較容易程序源代碼長度較短較長控制器實現方式絕大多數為微程序控制主要采用硬布線控制軟件系統開發時間較短較長5.10多媒體CPU

VendorExtensionYear#InstrRegistersHPMAX-1and294,959,8(int)Int32x64bSunVIS95121(int)FP32x64bIntelMMX9757(int)FP8x64bAMD3DNow!9821(fp)FP8x64bMotorolaAltivec98162(int,fp)32x128b(new)IntelSSE9870(fp)8x128b(new)MIPSMIPS-3D?23(fp)FP32x64bAMDE3DNow!9924(fp)8x128(new)IntelSSE201144(int,fp)8x128(new)IntelSSE30313(int,fp)8x128(new)5.10.1多媒體技術的主要問題媒體(media):傳遞信息的媒介 包括存儲信息的實體與傳遞信息的載體多媒體(multimedia)技術:計算機把各種不同的電子媒質集成起來,統一進行存儲、處理和傳輸多媒體技術:將多媒體信息,經計算機設備獲取、編輯、存儲等處理后,以多媒體形式表現出來的技術多媒體技術解決的主要問題

1.圖像與聲音的壓縮技術

2.適應多媒體技術的軟件技術

3.計算機系統結構方面的技術

計算機體系結構的分類根據指令流和數據流的并行情況,Flynn[1966]提出了對所有計算機進行分類的簡單模型單指令流、單數據流SISD:單處理器系統單指令流、多數據流SIMD: 多媒體指令和向量計算機多指令流、單數據流MISD:尚無商用多指令流、多數據流MIMD: 每個處理器取用自己的指令并對自己的數據進行操作。通常使用現有的微處理器實現SIMDstandsforSingleInstructionMultipleDataSIMD指令SIMD指令是能夠同時處理多個數據的指令,用于擴展通用處理器對多媒體數據的處理能力許多應用需要多媒體處理能力桌面應用

3D圖形,語音識別,視頻/音頻解碼服務器 視頻/音頻編碼,數字圖書館和媒體挖掘,計算機動畫,3D建模和著色嵌入系統

3D圖形,視頻/音頻解碼編碼,圖像處理、信號處理MMX數據類型MMX(multimediaextensions)630緊縮4字PackedQuadword6332310緊縮雙字PackedDoubleword634847323116150緊縮字PackedWord63565548474039323124231615870緊縮字節PackedByteSSE/SSE2/SSE3數據類型SSE(StreamingSIMDExtensions)12764630緊縮雙精度浮點數PackedDouble-precisionFloating-point1279695646332310緊縮單精度浮點數PackedSingle-precisionFloating-pointSIMD指令-飽和運算a2+b2a2+b2a1+b1a1+b1a0+b0a0+b0SIMD指令-乘加運算****++SIMD指令-比較指令SIMD指令-類型轉換SIMD指令-操作模式SSE指令128位操作模式SSE指令32位操作模式5.11CPU性能評價CPU性能與3個要素有關時鐘頻率f每條指令需要的時鐘周期數CPI指令條數IN時鐘周期長度t=1/fCPU時鐘周期數Nc=CPI×IN5.11.1CPU性能公式第i類指令在總程序中占的比例補充例題假設在一般程序中浮點開平方操作FPSQR所占的比例為2%,它的CPI為100;其他浮點操作FP所占的比例為23%,它的CPI=4.0;其余75%指令的CPI=1.33,計算該處理機的CPI。如果FPSQR操作的CPI也為4.0,重新計算CPI。解答:CPI1=100×2%+4×23%+1.33×75%=3.92CPI2=4×25%+1.33×75%=2.00〔例題7〕有兩種條件分支指令的設計方案:①CPUA:比較指令設置條件碼,條件分支指令測試條件碼進行分支②CPUB:條件分支指令包括比較、并進行分支兩種方案中,條件分支指令占用2個時鐘周期、其他指令占用1個時鐘周期CPUA的條件分支指令占20%,比較指令也占20%CPUB的時鐘周期比CPUA慢25%哪個CPU更快?例題7解答CPIA=0.2×2+0.8×1=1.2CPU時間A=INA×1.2×tACPUB沒有獨立的比較指令:INB=0.8×INACPUB條件分支指令所占比例:

20%÷80%=25%=0.25CPIB=0.25×2+0.75×1=1.25CPU時間B=INB×CPIB×tB

=0.8×INA×1.25×tB

=INA×tBtB=tA+0.25×tA=

1.25×tACPU時間B=INA×1.25×tA

CPU時間A5.11.2性能評價標準最初:執行單項操作的時間,例如:加法操作時間改進為:平均指令執行時間=進一步成為容易理解的:每秒百萬條指令(MillionInstructionsPerSecond)同時出現:

MFLOPS(每秒百萬浮點操作)最終形成: 測試程序(Benchmarks)測試程序實際應用程序修正的(或者腳本化)應用程序核心測試程序LivermoreLoops和Linpack小型測試程序Quicksort,Puzzle和Sieve合成測試程序Whetstone和Dhrystone基準測試程序組件SPEC(StandardPerformanceEvaluationCorporation)SPEC89→SPEC92→SPEC95→SPEC200011個整數基準程序(CINT2000)14個浮點基準程序(CFP2000)WinBench99andWinstone2004WinBench99:measurestheperformanceofaPC'sgraphics,disk,processor,andvideosubsystemsBusinessWinstone2004:application-basedbenchmarkthatmeasuresaPC'soverallperformanceCPU時間與CPU性能衡量性能最可靠的標準:真實程序的執行時間真實程序的執行時間 =CPU時間+I/O操作等時間CPU時間 =用戶CPU時間+系統CPU時間CP

溫馨提示

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

評論

0/150

提交評論