《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》課件(單博煒)第1、2章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論、指令系統(tǒng)_第1頁
《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》課件(單博煒)第1、2章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論、指令系統(tǒng)_第2頁
《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》課件(單博煒)第1、2章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論、指令系統(tǒng)_第3頁
《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》課件(單博煒)第1、2章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論、指令系統(tǒng)_第4頁
《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》課件(單博煒)第1、2章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論、指令系統(tǒng)_第5頁
已閱讀5頁,還剩186頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程簡介課本:《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》同時(shí)可看的幾本中文參考書:鄭緯民,湯志忠《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》第二版,2006,清華大學(xué)出版社白中英《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)》第三版,2010,科學(xué)出版社

課程成績總成績=平時(shí)成績*30%+期末成績*70%平時(shí)成績=點(diǎn)名成績+平時(shí)作業(yè)期末成績=期末考試成績外文參考書ComputerArchitecture:AQuantitativeApproachbyDavidPattersonandJohnHennessy,4thedition,MorganKaufmann,2009ComputerOrganizationandDesignbyJohnHennessyandDavidPatterson,4thedition,MorganKaufmann,2007JohnHennessy此書作者M(jìn)IPS系統(tǒng)的奠基人斯坦福大學(xué)校長IEEE,ACMFellow美國國家科學(xué)院院士,美國國家工程院院士硬件專業(yè)的課程順序數(shù)字邏輯->組成原理->系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)屬于專業(yè)課,著重講述并行計(jì)算機(jī)系統(tǒng)的基本概念、結(jié)構(gòu)、分析和設(shè)計(jì)方法課程目錄第1章計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論基本概念并行性的發(fā)展分類性能評價(jià)第2章指令系統(tǒng)數(shù)據(jù)表示指令系統(tǒng)的優(yōu)化設(shè)計(jì)計(jì)算機(jī)指令系統(tǒng)的發(fā)展方向第3章流水線技術(shù)與向量處理技術(shù)流水線基本原理流水線性能分析流水線中的相關(guān)及處理先進(jìn)的流水線調(diào)度技術(shù)指令級并行技術(shù)向量處理技術(shù)課程目錄第4章存儲(chǔ)系統(tǒng)存儲(chǔ)系統(tǒng)及性能并行主存系統(tǒng)虛擬存儲(chǔ)器高速緩沖存儲(chǔ)器第5章并行處理機(jī)并行處理機(jī)的結(jié)構(gòu)與特點(diǎn)并行處理機(jī)的互聯(lián)網(wǎng)絡(luò)幾種典型的并行處理機(jī)第1章計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論主要介紹:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念和多級層次結(jié)構(gòu)分析計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),計(jì)算機(jī)組成與計(jì)算機(jī)實(shí)現(xiàn)的含義、研究內(nèi)容及其相互關(guān)系討論計(jì)算機(jī)系統(tǒng)并行性發(fā)展的技術(shù)途徑與分類研究系統(tǒng)結(jié)構(gòu)一般的性能評價(jià)標(biāo)準(zhǔn)

1.1.1計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)(computersystem)=硬件(hardware)+軟件(software)按照功能劃分成多級層次結(jié)構(gòu)M0-M6M0-M1屬于計(jì)算機(jī)組織與結(jié)構(gòu)M3-M5屬于系統(tǒng)軟件M6是應(yīng)用軟件分級有利于正確理解計(jì)算機(jī)系統(tǒng)的工作;明確軟件硬件固件的地位和作用;有利于理解各種語言的實(shí)質(zhì)有利于設(shè)計(jì)新的計(jì)算機(jī)系統(tǒng)語言實(shí)現(xiàn)的兩種基本技術(shù)翻譯(translation)解釋(interpretation)1.1.2計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)、組成和實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(computerarchitecture)也稱為計(jì)算機(jī)體系結(jié)Amdahl--1964年在介紹IBM360系統(tǒng)時(shí)提出計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的定義:計(jì)算機(jī)體系結(jié)構(gòu)時(shí)程序設(shè)計(jì)者所看到的計(jì)算機(jī)的屬性,即概念性結(jié)構(gòu)與功能特性。不同層次的程序設(shè)計(jì)者所看到的計(jì)算機(jī)屬性顯然不同,一個(gè)計(jì)算機(jī)系統(tǒng)中,低層機(jī)器概念性結(jié)構(gòu)和功能特性對高層機(jī)器的程序設(shè)計(jì)者是透明的。研究內(nèi)容包括:數(shù)據(jù)表示:數(shù)據(jù)類型和格式尋址規(guī)則:尋址方式,表示,地址計(jì)算寄存器定義:各類寄存器指令系統(tǒng):指令的操作類型個(gè)格式存儲(chǔ)系統(tǒng):編址單位、編址方式、存儲(chǔ)容量,編址空間中斷系統(tǒng):中斷類型,分級,處理程序的功能,入口地址機(jī)器工作狀態(tài):定義和切換I/O系統(tǒng):I/O設(shè)備的連接方式、主機(jī)與I/O設(shè)備之間的數(shù)據(jù)傳送方式和格式、傳送的數(shù)據(jù)量以及I/O操作的結(jié)束與出錯(cuò)標(biāo)志等信息保護(hù)。包括信息保護(hù)方式和硬件對信息保護(hù)的支持計(jì)算機(jī)組成計(jì)算機(jī)組成(computerorganization)是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn),包括機(jī)器內(nèi)部的數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計(jì)等。計(jì)算機(jī)組成設(shè)計(jì)要確定的內(nèi)容數(shù)據(jù)通路的寬度。指在數(shù)據(jù)總線上能一次并行傳送的信息位數(shù)。專用部件的設(shè)置。包括設(shè)置哪些專用部件,如乘除法專用部件、浮點(diǎn)運(yùn)算部件、字符處理、地址運(yùn)算部件,以及每種專用部件的個(gè)數(shù)。這些都取決于機(jī)器所需達(dá)到的速度,專用部件的使用頻度及允許的價(jià)格等因素。各種操作對部件的共享程度。若部件共享程度高,則價(jià)格便宜,但會(huì)由于共享部件的分時(shí)使用而降低操作的速度;若設(shè)置多個(gè)功能部件降低共享程度,通過增加并行度以提高速度,系統(tǒng)的價(jià)格會(huì)隨之升高。功能部件的并行度。如功能部件的控制和處理方式是采用順序串行方式,還是采用重疊、流水、分布處理方式??刂茩C(jī)構(gòu)的組成方式。如控制機(jī)構(gòu)是采用硬聯(lián)控制還是微程序控制,是采用單機(jī)處理還是多機(jī)處理或功能分布處理。緩沖和排隊(duì)技術(shù)。包括在部件之間如何設(shè)置及設(shè)置多大容量的緩沖器來彌補(bǔ)它們的速度差異;在安排等待處理事件的順序時(shí),采用隨機(jī)、先進(jìn)先出、先進(jìn)后出、優(yōu)先級、循環(huán)隊(duì)等方式中的哪一種。預(yù)估、預(yù)判技術(shù)。如采用何種原則來預(yù)測未來行為,以優(yōu)化性能和優(yōu)化處理??煽啃约夹g(shù)。如采用怎樣的冗余技術(shù)和容錯(cuò)技術(shù)來提高可靠性。計(jì)算機(jī)實(shí)現(xiàn)計(jì)算機(jī)實(shí)現(xiàn)(computerimplementation)是計(jì)算機(jī)組成的物理實(shí)現(xiàn),包括處理機(jī)、主存等部件的物理結(jié)構(gòu),器件的集成度和速度,器件、模塊、插件、底板的劃分與連接,專用器件的設(shè)計(jì),微組裝技術(shù),信號傳輸,電源、冷卻及整機(jī)裝配技術(shù)等。它著眼于器件技術(shù)和微組裝技術(shù),其中,器件技術(shù)在實(shí)現(xiàn)技術(shù)中起著主導(dǎo)作用。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、組成和實(shí)現(xiàn)三者的關(guān)系舉例機(jī)器指令集的確定屬于系統(tǒng)結(jié)構(gòu)指令的實(shí)現(xiàn),如取指令、取操作數(shù)、運(yùn)算、送結(jié)果等具體操作和排序方式屬于計(jì)算機(jī)組織乘法器,加法器的物理實(shí)現(xiàn),如器件的選定,所使用的封裝技術(shù),屬于計(jì)算機(jī)實(shí)現(xiàn)計(jì)算機(jī)等級分為巨型,大型,中型,小型,微型等若干級計(jì)算機(jī)工業(yè)在處理性能和價(jià)格的關(guān)系上可以有兩種途徑:一種是維持價(jià)格不變,充分利用器件技術(shù)等的進(jìn)展不斷提高機(jī)器的性能,即沿圖1.3中的水平實(shí)線發(fā)展;另一種是在性能基本不變的情況下,利用器件技術(shù)等的進(jìn)展不斷降低機(jī)器的價(jià)格,即沿圖1.3中虛線往下發(fā)展。系列機(jī)所謂系列機(jī)的概念,是在軟、硬件界面上設(shè)計(jì)好一種系統(tǒng)結(jié)構(gòu),然后軟件設(shè)計(jì)者按此系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)軟件;硬件設(shè)計(jì)者根據(jù)機(jī)器速度、性能、價(jià)格的不同,選擇不同的期間,采用不同的硬件技術(shù)和組成與實(shí)現(xiàn)技術(shù),研制并提供不同檔次的機(jī)器。在系列機(jī)上必須保證用戶看到一致的機(jī)器屬性,例如,IBMAS400系列,數(shù)據(jù)總線有16、32、64位的區(qū)別,但數(shù)據(jù)表示方式一致。系列機(jī)之間必須保持軟件兼容(softwarecompatibility)。系列機(jī)軟件兼容是指同一個(gè)軟件(目標(biāo)程序)可以不加修改地運(yùn)行于系統(tǒng)結(jié)構(gòu)相同的各檔次機(jī)器中,模擬與仿真要求在A機(jī)器上用虛擬機(jī)的概念實(shí)現(xiàn)B機(jī)器的指令系統(tǒng),如圖1.4所示,即B機(jī)器的每一條機(jī)器指令由A機(jī)器的一段機(jī)器語言程序去解釋執(zhí)行,從而可使B機(jī)器的程序能在A機(jī)器上運(yùn)行。這種用機(jī)器語言程序解釋實(shí)現(xiàn)軟件移植的方法稱為模擬(simulation),被模擬的B機(jī)器稱為虛擬機(jī)(virtualmachine),A機(jī)器稱為宿主機(jī)(hostmachine)。這種用微程序直接解釋另一種機(jī)器指令系統(tǒng)實(shí)現(xiàn)軟件移植的方法稱為仿真(emulation)。進(jìn)行仿真工作的A機(jī)器稱為宿主機(jī),被仿真的B機(jī)器稱為目標(biāo)機(jī)(targetmachine),為仿真所編寫的解釋微程序稱為仿真微程序。仿真與模擬的主要區(qū)別在于解釋所用的語言:仿真用微程序解釋,其解釋程序在微程序存儲(chǔ)器中,而模擬用機(jī)器語言解釋,其解釋程序在主存儲(chǔ)器中。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中并行性的發(fā)展研究計(jì)算機(jī)體系結(jié)構(gòu)的目的是提高計(jì)算機(jī)系統(tǒng)的性能。開發(fā)計(jì)算機(jī)系統(tǒng)的并行性,是計(jì)算機(jī)體系結(jié)構(gòu)的重要研究內(nèi)容之一。馮·諾依曼型計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五個(gè)部分組成。隨著計(jì)算機(jī)應(yīng)用領(lǐng)域的擴(kuò)大和計(jì)算機(jī)技術(shù)的發(fā)展,人們已經(jīng)逐漸認(rèn)識到早期計(jì)算機(jī)所采用的馮·諾依曼型結(jié)構(gòu)存在的問題,不斷地對這種結(jié)構(gòu)加以改進(jìn)并開發(fā)全新的系統(tǒng)結(jié)構(gòu)。并行性概念所謂并行性(parallelism)是指在同一時(shí)刻或是同一時(shí)間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不相同的工作。只要時(shí)間上相互重疊,就存在并行性。嚴(yán)格來講,把兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生的并行性叫做同時(shí)性(simultaneity);把兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生的并行性叫做并發(fā)性(concurrency)。在進(jìn)行并行處理時(shí),其每次處理的規(guī)模大小可能是不同的,這可用并行性顆粒度(granularity)來表示。顆粒度用于衡量軟件進(jìn)程所含計(jì)算量的大小,最簡單的方法是用程序段中指令的條數(shù)來表示。顆粒度一般可分為細(xì)粒度、中粒度和粗粒度三種,若程序段中指令條數(shù)小于500條,稱為細(xì)粒度,500~2000條指令之間稱為中粒度,大于2000條稱為粗粒度。并行性的等級按照并行顆粒度不同從低到高可以分為指令內(nèi)部并行。指令內(nèi)部的微操作之間的并行。指令級并行(ILP,InstructionLevelParallel)。并行執(zhí)行兩條或多條指令。任務(wù)級或過程級并行。并行執(zhí)行兩個(gè)或多個(gè)過程或任務(wù)(程序段)。作業(yè)或程序級并行。在多個(gè)作業(yè)或程序間的并行。提高并行性的途徑時(shí)間重疊:多個(gè)處理過程在時(shí)間上相互錯(cuò)開,輪流重疊的使用同一套硬件設(shè)備的各個(gè)部分,以加快硬件周轉(zhuǎn)來提高處理速度。時(shí)間重疊原則上不要求重復(fù)的硬件設(shè)備資源重復(fù):通過重復(fù)設(shè)置資源,尤其是硬件資源,大幅度提高計(jì)算機(jī)系統(tǒng)的性能資源共享:是一種軟件方法,它使多個(gè)任務(wù)按一定時(shí)間順序輪流使用同一套資源。資源共享既降低了成本,提高了系統(tǒng)資源利用率,也可以相應(yīng)地提高整個(gè)系統(tǒng)的性能。并行處理的發(fā)展過程可從單處理機(jī)系統(tǒng)和多計(jì)算機(jī)系統(tǒng)兩個(gè)方向來實(shí)現(xiàn)圖1.6單機(jī)系統(tǒng)中的并行性時(shí)間重疊流水線處理機(jī)pipeline圖1.7指令串行執(zhí)行和流水執(zhí)行多機(jī)系統(tǒng)發(fā)展也遵循著時(shí)間重疊、資源重復(fù)和資源共享的技術(shù)途徑表1.1三種類型多處理機(jī)比較項(xiàng)

目同構(gòu)型多處理機(jī)異構(gòu)型多處理機(jī)分布處理系統(tǒng)目的提高系統(tǒng)性能(可靠性、速度)提高系統(tǒng)使用效率兼顧效率與性能技術(shù)途徑資源重復(fù)(機(jī)間互連)時(shí)間重疊(功能專用化)資源共享(網(wǎng)絡(luò)化)組成同類型(同等功能)不同類型(不同功能)不限制分工方式任務(wù)分布功能分布硬件、軟件、數(shù)據(jù)等各種資源分布工作方式一個(gè)作業(yè)由多機(jī)協(xié)同并行地完成一個(gè)作業(yè)由多機(jī)協(xié)同串行地完成一個(gè)作業(yè)由一臺(tái)處理機(jī)完成,必要時(shí)才請求它機(jī)協(xié)作控制形式常采用浮動(dòng)控制方式采用專用控制方式分布控制方式耦合度緊密耦合松散耦合松散、緊密耦合對互連網(wǎng)絡(luò)的要求快速、靈活、可重構(gòu)專用快速、靈活、簡單、通用表1.1三種類型多處理機(jī)比較1.3計(jì)算機(jī)系統(tǒng)的分類研究計(jì)算機(jī)系統(tǒng)的分類方法有助于認(rèn)識計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)和組成的特點(diǎn),理解系統(tǒng)的工作原理和性能。從不同的角度,可以提出不同的分類方法,這里主要介紹兩種常用的分類方法。Flynn分類法Michae1.J.Flynn于1966年提出按指令流和數(shù)據(jù)流的多倍性對計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)進(jìn)行分類的方法。指令流(instructionstream)是指機(jī)器執(zhí)行的指令序列;數(shù)據(jù)流(datastream)是指由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果;四種分類

(c)MISD計(jì)算機(jī)(a)SISD計(jì)算機(jī)(b)SIMD計(jì)算機(jī)(d)MIMD計(jì)算機(jī)馮氏分類法1972年,美籍華人馮澤云提出用最大并行度(degreeofparallelism)對計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)進(jìn)行分類。所謂最大并行度Pm,是指計(jì)算機(jī)系統(tǒng)在單位時(shí)間內(nèi)能夠處理的最大的二進(jìn)制位數(shù)。最大并行度Pm定量地反映了對數(shù)據(jù)處理的并行性。

Pm=n*m

式中,n表示同時(shí)處理時(shí)一個(gè)字中的二進(jìn)制位數(shù);m表示能同時(shí)處理的字?jǐn)?shù)。按計(jì)算機(jī)對數(shù)據(jù)處理方式,由Pm值可得下列四種計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)類型。字串位串(WSBS)。其n=1,m=1,這是第一代計(jì)算機(jī)發(fā)展初期的純串行計(jì)算機(jī),如EDVAC。字串位并(WSBP)。其n>l,m=l,這是傳統(tǒng)并行的單處理機(jī),我們?nèi)粘J褂玫拇蠖鄶?shù)機(jī)器都屬于這種類型。字并位串(WPBS)。其n=l,m>l(即位片處理),如STARAN、早期的MPP、DAP等,它們都是20世紀(jì)70年代研制的并行處理機(jī)。字并位并(WPBP),其n>l,m>l(即全并行處理),如Cmmp、ILLIAC-IV以及PEPE等,它們都具有很好的并行性。系統(tǒng)結(jié)構(gòu)發(fā)展的因素現(xiàn)代計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的重大變化與改進(jìn):高級語言與機(jī)器語言的語義距離縮小硬件子系統(tǒng)與操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)軟件相適應(yīng)出現(xiàn)了與LSI,VLSI器件相適應(yīng)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)系統(tǒng)功能分散化、專業(yè)化高可靠性的容錯(cuò)計(jì)算機(jī)專用計(jì)算機(jī)串行向并行轉(zhuǎn)變突破指令驅(qū)動(dòng),出現(xiàn)數(shù)據(jù)驅(qū)動(dòng)和需求驅(qū)動(dòng)人工智能計(jì)算機(jī)1.4計(jì)算機(jī)性能的評價(jià)1.經(jīng)常性事件優(yōu)先原則是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中最重要和最常用的原則。這個(gè)原則的基本思想是:對于經(jīng)常發(fā)生的事件,賦予它優(yōu)先的處理權(quán)和資源使用權(quán),加快它的處理速度,以便提高整個(gè)系統(tǒng)的性能。在進(jìn)行計(jì)算機(jī)設(shè)計(jì)時(shí),如果需要權(quán)衡,就必須側(cè)重常見事件,使最常發(fā)生的事件優(yōu)先。此原則也適用于資源分配。著重改進(jìn)經(jīng)常性事件性能,能夠明顯提高計(jì)算機(jī)性能。通常,經(jīng)常性事件的處理比較簡單,容易使之更快完成。例如,CPU在進(jìn)行加法運(yùn)算時(shí),運(yùn)算結(jié)果可能產(chǎn)生溢出,但無溢出為更經(jīng)常發(fā)生的事件。因此,應(yīng)針對無溢出情況進(jìn)行優(yōu)化設(shè)計(jì),加快無溢出加法計(jì)算速度。雖然發(fā)生溢出時(shí)機(jī)器速度可能會(huì)減慢,但由于溢出事件發(fā)生概率很小,所以總體上機(jī)器性能還是提高了。2.Amdahl定律如何確定經(jīng)常性事件以及如何加快處理這些事件是Amdahl定律需要解決的問題。Amdahl定律指出:系統(tǒng)中某部件由于采用某種更快的執(zhí)行方式后,整個(gè)系統(tǒng)性能的提高與這種執(zhí)行方式在系統(tǒng)中使用頻率或占總執(zhí)行時(shí)間的比例有關(guān)。系統(tǒng)加速比依賴于兩個(gè)因素:(1)可改進(jìn)部分在原系統(tǒng)執(zhí)行時(shí)間中所占的比例。例如,一個(gè)需運(yùn)行60s的程序中有20s的運(yùn)算可以加速,那么該比例就是20/60。(2)可改進(jìn)部分改進(jìn)以后的性能提高。例如,系統(tǒng)改進(jìn)后執(zhí)行程序,其中可改進(jìn)部分花費(fèi)的時(shí)間為2s。,而改進(jìn)前該部分需花費(fèi)的時(shí)間為5s,則性能提高為5/2。(1)改進(jìn)后系統(tǒng)的總執(zhí)行時(shí)間Tn

(2)改進(jìn)前后整個(gè)系統(tǒng)的加速比Sn(1-Fe)表示不可改進(jìn)比例。當(dāng)Fe

=0,即無改進(jìn)部分時(shí),Sn=1,所以系統(tǒng)性能提高幅度受改進(jìn)部分所占比例的限制。當(dāng)

時(shí),有

由此得到Amdahl定律的一個(gè)重要推論:若只針對整個(gè)系統(tǒng)的一部分進(jìn)行優(yōu)化.則系統(tǒng)獲取的性能改善極限值受Fe的約束,系統(tǒng)加速比不大于1/(1-Fe)。例題[例1.1]設(shè)在系統(tǒng)整個(gè)運(yùn)行時(shí)間中某部件的處理時(shí)間占30%,若改進(jìn)后速度加快到15倍,問整個(gè)系統(tǒng)性能將提高多少?解:由題可知Fe=0.3,Se=15,則

[例1.2]若在整個(gè)測試程序的執(zhí)行時(shí)間中,求浮點(diǎn)數(shù)平方根FPSQR的操作占10%?,F(xiàn)有兩種改進(jìn)方案:一種是采用FPSQR硬件,使其速度加快到10倍;另一種是使所有浮點(diǎn)數(shù)指令FP速度加快到4倍,并設(shè)FP指令占整個(gè)程序執(zhí)行時(shí)間的40%。請比較兩種方案的優(yōu)劣。解:硬件方案,F(xiàn)e=0.1,Se=10,則FP加速方案,F(xiàn)e=0.4,Se=4,則比較結(jié)果可知,F(xiàn)P加速方案更優(yōu)。注意,結(jié)論的前提是程序量的40%為FP指令。3.程序訪問的局部性原理所謂程序訪問的局部性原理,是指程序在執(zhí)行過程中所訪問地址的分布有相對簇聚的傾向,這種簇聚表現(xiàn)在指令和數(shù)據(jù)兩方面。程序局部性包括時(shí)間上的局部性和空間上的局部性:前者是指程序即將用到的信息很可能是目前正在使用的信息;后者是指程序即將用到的信息很可能與目前正在使用的信息在程序空間上是相鄰或相近的。程序訪問的局部性原理是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)之一。在很多地方,尤其在處理與存儲(chǔ)相關(guān)的問題時(shí),經(jīng)常運(yùn)用這一原理。程序訪問的局部性原理為我們提供了設(shè)計(jì)計(jì)算機(jī)系統(tǒng)時(shí),解決高性能和低成本之間的矛盾的途徑。1.4.2CPU性能公式為了衡量CPU的性能,可以將程序執(zhí)行的時(shí)間進(jìn)行分解。一個(gè)程序在計(jì)算機(jī)上運(yùn)行所花費(fèi)的CPU時(shí)間可表示為或者CPU時(shí)間=總CPU時(shí)鐘周期數(shù)×?xí)r鐘周期T若將程序執(zhí)行過程中所處理的指令數(shù)記為IC,可以獲得一個(gè)與計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)有關(guān)的參數(shù),即每條指令的平均時(shí)鐘周期數(shù)CPI(ClockCyclesPerInstruction):程序執(zhí)行的CPU時(shí)間可寫為這個(gè)公式通常稱為CPU性能公式,它表明CPU性能與三種系統(tǒng)結(jié)構(gòu)技術(shù)相關(guān)。時(shí)鐘頻率f:反映了計(jì)算機(jī)實(shí)現(xiàn)技術(shù)和計(jì)算機(jī)組織。機(jī)器指令的平均時(shí)鐘周期數(shù)CPI:反映了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)組織和指令集的設(shè)計(jì)與實(shí)現(xiàn)。程序使用的指令條數(shù)IC:反映了計(jì)算機(jī)指令集的結(jié)構(gòu)和編譯技術(shù)。在程序執(zhí)行過程中,要用到不同類型的指令。假設(shè)計(jì)算機(jī)系統(tǒng)有n種指令,ICi表示第i種指令在程序中執(zhí)行的次數(shù),CPIi表示執(zhí)行一條第i種指令所需的平均時(shí)鐘周期數(shù),則程序執(zhí)行的CPU時(shí)間為則CPI可表示為式中,

表示了第i種指令在程序中所占比例。上面這些公式均稱為CPU性能公式。[例1.3]若浮點(diǎn)數(shù)指令FP占全部指令的30%,其中浮點(diǎn)數(shù)平方根FPSQR指令占全部指令的4%,F(xiàn)P操作的CPI為5,F(xiàn)PSQR操作的CPI為20,其他指令的平均CPI為1.25?,F(xiàn)提出兩種改進(jìn)方案,一種是把FPSQR操作的CPI減至3,另一種是把所有FP操作的CPI減至3,試比較兩種方案對系統(tǒng)性能的提高程度。解:改進(jìn)之前,系統(tǒng)的指令平均時(shí)鐘周期數(shù)CPI為方案A:如果使FPSQR操作的時(shí)鐘周期數(shù)由CPIFPSQR=20降至

,則整個(gè)系統(tǒng)的CPI為方案B:如果使所有FP操作的平均時(shí)鐘周期數(shù)由CPIFP=5降至

,則整個(gè)系統(tǒng)的CPI為從降低整個(gè)系統(tǒng)的指令平均時(shí)鐘周期數(shù)的程度來看,方案A優(yōu)于方案B。分別計(jì)算兩種方案的加速比:從加速比來看.同樣得出方案A優(yōu)于方案B的結(jié)論。[例1.4]設(shè)機(jī)器A和機(jī)器B對條件轉(zhuǎn)移采用的處理方法不同。CPUA采用比較指令和條件轉(zhuǎn)移指令的處理方法,實(shí)現(xiàn)一次條件轉(zhuǎn)移需執(zhí)行兩條指令,條件轉(zhuǎn)移指令和比較指令各占執(zhí)行指令總數(shù)的15%。CPUB,采用比較與條件轉(zhuǎn)移指令合一的處理方法,實(shí)現(xiàn)一次條件轉(zhuǎn)移只需執(zhí)行一條指令。若規(guī)定兩臺(tái)機(jī)器執(zhí)行條件轉(zhuǎn)移指令需2個(gè)時(shí)鐘周期,其他指令只需1個(gè)時(shí)鐘周期,CPUB的時(shí)鐘周期比CPUA慢20%,請比較:(1)CPUA和CPUB哪個(gè)工作速度更快?(2)若CPUB的時(shí)鐘周期只比CPUA慢10%,哪個(gè)CPU工作速度更快?

解:(1)計(jì)算機(jī)器A的CPIA為CPIA=0.15×2+0.85×1=1.15CPUA時(shí)間=ICA×CPIA×TA=1.15TA×ICAICA是CPUA的指令條數(shù)。由于CPUB無比較指令,所以ICB=0.85ICA,使CPUB的轉(zhuǎn)移指令所占比例為15%÷805%=17.65%,計(jì)算機(jī)器B的CPIB

為CPIB=0.18×2+0.82×1=1.18又因?yàn)镃PUB的TB比CPUA的TA慢20%,所以TB=1.2TACPUB時(shí)間=ICB×CPIB×TB=0.85ICA×1.18×1.2TA=1.2TA×ICA比較可知,CPUA時(shí)間<CPUB時(shí)間,故CPUA比CPUB工作速度快。(2)此時(shí)有TB=1.1TA,據(jù)前結(jié)論CPUA時(shí)間=1.15TA×ICACPUB時(shí)間=0.85ICA×1.18×1.1TA=1.1TA×ICA因此CPUB時(shí)間<CPUA時(shí)間,故CPUB的工作速度更快些。1.4.1系統(tǒng)結(jié)構(gòu)的性能評價(jià)標(biāo)準(zhǔn)衡量計(jì)算機(jī)性能的唯一固定而且可靠的標(biāo)準(zhǔn)就是機(jī)器真正執(zhí)行程序的時(shí)間。這里的執(zhí)行時(shí)間是計(jì)算機(jī)在完成一個(gè)任務(wù)時(shí),包括訪問磁盤、訪問存儲(chǔ)器、I/O操作及系統(tǒng)開銷所花費(fèi)的全部時(shí)間,也稱為計(jì)算機(jī)的響應(yīng)時(shí)間。CPU時(shí)間是指CPU工作的時(shí)間,不包括I/O等待時(shí)間。它可分為CPU執(zhí)行用戶程序的用戶CPU時(shí)間和CPU花費(fèi)在操作系統(tǒng)上的系統(tǒng)CPU時(shí)間。在此討論的CPU性能指的是用戶CPU時(shí)間。因此,計(jì)算機(jī)性能可分為基于響應(yīng)時(shí)間的“系統(tǒng)性能”度量方法和基于用戶CPU時(shí)間的“CPU性能”度量方法。下面主耍討論CPU性能。1.MIPS和MFLOPSMIPS(MillionInstructionsPerSecond),即百萬條指令每秒是目前較為流行的描述計(jì)算機(jī)性能的替代標(biāo)準(zhǔn)之一。對于一個(gè)給定的程序,MIPS定義為MIPS是單位時(shí)間內(nèi)執(zhí)行指令的次數(shù)。若用Te表示程序的執(zhí)行時(shí)間,則Te的表達(dá)式為[例1.5]已知某處理機(jī)的CPI=0.5,時(shí)鐘頻率為450MHz,試計(jì)算該處理機(jī)的運(yùn)算速度。解:由于處理機(jī)的時(shí)鐘頻率為fc=450MHz,可求得運(yùn)算速度為即該處理機(jī)的運(yùn)算速度為900MIPS。機(jī)器的MIPS越高,說明機(jī)器速度越快,故MIPS可從一定程度上反映機(jī)器的性能。但是用MIPS評價(jià)機(jī)器的性能存在以下問題。MIPS依賴于機(jī)器的指令集,所以用MIPS來衡量指令集不同的機(jī)器的性能優(yōu)劣是很不準(zhǔn)確的。

在同一臺(tái)機(jī)器上,MIPS會(huì)因程序不同而發(fā)生變化,有時(shí)其差異會(huì)很大。MIPS的評價(jià)結(jié)果可能與采用正確的性能評價(jià)方法的評價(jià)結(jié)果相反。一個(gè)典型例子就是具有可選硬件浮點(diǎn)運(yùn)算部件的機(jī)器。因?yàn)楦↑c(diǎn)運(yùn)算速度低于整數(shù)運(yùn)算,所以很多機(jī)器提供可選的硬件浮點(diǎn)運(yùn)算部件。結(jié)果是用硬件實(shí)現(xiàn)浮點(diǎn)運(yùn)算的時(shí)間少,而用軟件實(shí)現(xiàn)浮點(diǎn)運(yùn)算的MIPS高,導(dǎo)致MIPS評價(jià)結(jié)果與機(jī)器實(shí)際性能相反。因此MIPS標(biāo)準(zhǔn)只適宜于評價(jià)標(biāo)量機(jī),因?yàn)樵跇?biāo)量機(jī)中執(zhí)行一條指令,一般可得到一個(gè)運(yùn)算結(jié)果,而在向量機(jī)中,執(zhí)行一條向量指令通??傻玫蕉鄠€(gè)運(yùn)算結(jié)果。所以,用MIPS來衡量向量機(jī)是不合適的。另一種替代標(biāo)準(zhǔn)是MFLOPS(MillionFloatingPointOperationsPerSecond),即百萬次浮點(diǎn)運(yùn)算每秒。MFLOPS定義為:

由于MFLOPS衡量機(jī)器性能時(shí)存在下述缺陷,故也不能作為系統(tǒng)性能評價(jià)的標(biāo)準(zhǔn)。(1)MFLOPS只能衡量機(jī)器浮點(diǎn)操作的性能,而不能體現(xiàn)機(jī)器的整體性能。例如編譯程序,不管機(jī)器的性能有多好,它的MFLOPS部不會(huì)太高。(2)MFLOPS的衡量是基于浮點(diǎn)操作而非指令來進(jìn)行的,所以它可以用來比較不同指令集的機(jī)器之間的浮點(diǎn)操作性能,但比較的結(jié)果并非可靠。由于不同機(jī)器的浮點(diǎn)運(yùn)算集可能不同,例如,機(jī)器A有浮點(diǎn)除法指令,而機(jī)器B沒有,它們對浮點(diǎn)操作的支持就會(huì)不同,完成程序中的浮點(diǎn)除法時(shí),前者的浮點(diǎn)操作次數(shù)比后者少得多,執(zhí)行時(shí)間也少于后者,所以難以按MFLOPS評價(jià)它們的性能優(yōu)劣。(3)MFLOPS取決于機(jī)器和程序兩個(gè)方面,不同程序在同一機(jī)器上的MFLOPS會(huì)不相同。例如,運(yùn)行由100%浮點(diǎn)加法組成的程序所得到的MFLOPS值將比運(yùn)行由100%浮點(diǎn)除法組成的程序所得到的MFLOPS值高。因此用單個(gè)程序的MFLOPS值不能反映機(jī)器的性能。MFLOPS和MIPS之間的量值關(guān)系沒有統(tǒng)一標(biāo)準(zhǔn),一般認(rèn)為在標(biāo)量計(jì)算機(jī)中執(zhí)行一次浮點(diǎn)運(yùn)算需要2~5條指令,平均約需3條指令,故有1MFLOPS≈3MIPS。[例1.6]用一臺(tái)處理機(jī)執(zhí)行標(biāo)準(zhǔn)測試程序,程序所含的各類指令數(shù)量和執(zhí)行每類指令所用時(shí)鐘周期數(shù)如表1.4所示,處理機(jī)的時(shí)鐘頻率為50MHz,求有效CPI、MIPS速率和程序的執(zhí)行時(shí)間。表1.4標(biāo)準(zhǔn)測試程序中各類指令數(shù)和相應(yīng)所需的時(shí)鐘周期數(shù)指令類型整數(shù)運(yùn)算數(shù)據(jù)傳送浮點(diǎn)運(yùn)算控制傳送指令數(shù)時(shí)鐘周期數(shù)43000134000217000260002解:指令的總數(shù)為

43000+34000+17000+6000=100000條其中各類指令所占的比例分別是:整數(shù)運(yùn)算為43%,數(shù)據(jù)傳送為34%,浮點(diǎn)運(yùn)算為17%,控制傳送為6%。

(1)有效CPI為

1×0.43+2×0.34+2×0.17+2×0.06=1.57CPI(2)MIPS速率為(3)程序的執(zhí)行時(shí)間為2.性能測試機(jī)器的性能需要采用基準(zhǔn)測試程序來測試評價(jià),衡量計(jì)算機(jī)性能的標(biāo)準(zhǔn)是程序的執(zhí)行時(shí)間?;鶞?zhǔn)測試程序是為比較測試機(jī)器性能而專門編寫的程序,它考慮了各種操作和各種程序的比例,可以是一組或多組程序。將n個(gè)測試程序在機(jī)器上運(yùn)行,記錄它們的執(zhí)行時(shí)間,然后可按下述方法對n個(gè)執(zhí)行時(shí)間進(jìn)行處理來評價(jià)機(jī)器性能。常用的基準(zhǔn)測試軟件:superPI,linpack(1)平均執(zhí)行時(shí)間平均執(zhí)行時(shí)間是各測試程序執(zhí)行時(shí)間的算術(shù)平均值。其中,Ti為第i個(gè)測試程序的執(zhí)行時(shí)間。(2)加權(quán)執(zhí)行時(shí)間加權(quán)執(zhí)行時(shí)間是各測試程序執(zhí)行時(shí)間的加權(quán)平均值。其中,權(quán)因子Wi是第i個(gè)測試程序在總共n個(gè)測試程序中所占的權(quán)重,

。本章小結(jié)本章主要討論了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念。首先,在計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)概念的基礎(chǔ)上,定義了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),并闡述了計(jì)算機(jī)組成和計(jì)算機(jī)實(shí)現(xiàn)的含義以及它們和計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)之間的關(guān)系。然后進(jìn)一步探討了計(jì)算機(jī)系統(tǒng)中對系統(tǒng)結(jié)構(gòu)產(chǎn)生影響的重要特性。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)研究的主要內(nèi)容之一就是通過并行性技術(shù)提高計(jì)算機(jī)系統(tǒng)的性能。本章講述了并行性技術(shù)的基本概念,討論了提高計(jì)算機(jī)系統(tǒng)并行性所采用的時(shí)間重疊、資源重復(fù)和資源共享三種技術(shù)途徑,以及從單機(jī)或多機(jī)系統(tǒng)沿不同技術(shù)途徑發(fā)展而形成的同構(gòu)型、異構(gòu)型和分布式處理等不同類型的多處理機(jī)系統(tǒng)。在此基礎(chǔ)上介紹了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的Flynn和馮氏兩種分類方法。對計(jì)算機(jī)系統(tǒng)技術(shù)性能進(jìn)行定量分析是研究和發(fā)展現(xiàn)代計(jì)算機(jī)的重要手段之一。本章介紹了計(jì)算機(jī)系統(tǒng)性能的評價(jià)標(biāo)準(zhǔn),討論了對計(jì)算機(jī)系統(tǒng)進(jìn)行定量分析的技術(shù)和方法。軟件對于系統(tǒng)結(jié)構(gòu)的影響軟件是促進(jìn)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)發(fā)展的最重要因素為了滿足軟件的可移植性的要求有如下三種解決方法系列機(jī)方法系列機(jī):一個(gè)廠家生產(chǎn)相同的系統(tǒng)結(jié)構(gòu),但不同組成和型號的機(jī)器,做到向后兼容例如:IBM370系列機(jī) AnnouncedSeptember23,1970,IBM370-145模擬和仿真方法模擬:用軟件方法在一臺(tái)計(jì)算機(jī)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng),若在A計(jì)算機(jī)上實(shí)現(xiàn)B計(jì)算機(jī)的指令系統(tǒng),此時(shí),A稱為宿主機(jī),B稱為虛擬機(jī)統(tǒng)一的高級語言方法將CPU和外圍設(shè)備之間進(jìn)行對接的接口設(shè)備具有:控制,緩沖,狀態(tài),轉(zhuǎn)換,整理,程序中斷的功能應(yīng)用對于系統(tǒng)結(jié)構(gòu)的影響主要是一些科學(xué)問題的高性能計(jì)算器件對于系統(tǒng)結(jié)構(gòu)的影響五代計(jì)算機(jī)的典型特征系統(tǒng)結(jié)構(gòu)的生命周期定量分析技術(shù)系統(tǒng)設(shè)計(jì)的定量原理大概率事件優(yōu)先原理:對于大概率事件,賦予它優(yōu)先的處理權(quán)和資源使用權(quán),以獲得全局的最優(yōu)結(jié)果Amdahl定律:加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中的重要性

加速比計(jì)算機(jī)執(zhí)行某個(gè)任務(wù)的總時(shí)間中可被改進(jìn)部分的時(shí)間所占的百分比,記為Fe;提高的倍數(shù)記為Se;改進(jìn)后的時(shí)間Tˊ=T0(1-Fe+Fe/Se)加速比n=T0/Tˊ=1/(1-Fe+Fe/Se)例題1.6假設(shè)系統(tǒng)某一個(gè)部件的處理速度加快9倍,但該部件的原處理時(shí)間僅為整個(gè)運(yùn)行時(shí)間的45%,則采用加快措施后能使整個(gè)系統(tǒng)的性能提高多少?解:Fe=0.45;Se=9所以n=1/(1-Fe+Fe/Se)=1/(1-0.45+0.45/9)=1/0.6=1.667例題1.7假定要將某一執(zhí)行部件改進(jìn)后速度提高10倍,改進(jìn)后被改進(jìn)部件執(zhí)行時(shí)間占系統(tǒng)總運(yùn)行時(shí)間的50%。問改進(jìn)后,獲得的加速比n?解:假設(shè)系統(tǒng)改進(jìn)前執(zhí)行時(shí)間T,改進(jìn)后為Tˊ,則

n=T/Tˊ=1/(1-Fe+Fe/Se)

Tˊ=(1-Fe+Fe/Se)*T又50%Tˊ=Fe*T/1050%Tˊ=(1-Fe)*TFe=5*(Tˊ/T)

所以n=T/Tˊ=5.5例題1.8上例中的部件在改進(jìn)前的執(zhí)行時(shí)間占改進(jìn)后的百分比是多少?解:

n=1/(1-Fe+Fe/Se)=1/(1-Fe+Fe/10)=5.5Fe=91%CPU性能公式CPU的運(yùn)行周期稱為時(shí)鐘周期。用時(shí)間長度(ns)或頻率(MHz)來表示。一個(gè)程序所花費(fèi)的CPU時(shí)間Tcpu如下表示:

Tcpu=Nc*t=Nc/f其中,Nc是CPU時(shí)鐘周期,t是時(shí)長,f是頻率程序執(zhí)行時(shí)間的另一表述指令條數(shù)IN,每條指令平均時(shí)鐘周期數(shù)CPI

Tcpu=IN*CPI*t=(IN*CPI)/f上式表示,CPU性能與3個(gè)因素有關(guān):時(shí)鐘頻率f;每條指令所花的時(shí)鐘周期CPI指令條數(shù)IN時(shí)鐘周期總數(shù)的另一計(jì)算方法其中:Ii表示i指令在程序中執(zhí)行的次數(shù);CPIi表示i指令所需的平均時(shí)鐘周期數(shù);n為指令種類數(shù)。例1.9 有兩臺(tái)機(jī)器A,B,他們對于條件轉(zhuǎn)移指令的處理采用各不相同的設(shè)計(jì)方案:①CPUA采用一條比較指令來設(shè)置相應(yīng)的條件碼,由緊隨其后的一條轉(zhuǎn)移指令對此條件碼進(jìn)行測試,以確定是否進(jìn)行轉(zhuǎn)移,因此實(shí)現(xiàn)一次條件轉(zhuǎn)移需要比較和測試兩條指令;②CPUB采用比較和測試兩種功能合在一條指令的方法,實(shí)現(xiàn)條件轉(zhuǎn)移只需一條指令。 假設(shè)在這兩臺(tái)機(jī)器的指令系統(tǒng)中,執(zhí)行條件轉(zhuǎn)移指令需要2個(gè)時(shí)鐘周期,而其他指令只需1個(gè)時(shí)鐘周期。又假設(shè)CPUA中,條件轉(zhuǎn)移指令占總執(zhí)行指令條數(shù)的20%。由于每條轉(zhuǎn)移指令都需要一條比較指令,所以比較指令也將占20%。由于CPUB在轉(zhuǎn)移指令中包含了比較功能,因此它的時(shí)鐘周期就比CPUA要慢25%。問CPUA和CPUB哪個(gè)工作速度更快?解:設(shè)CPUA的時(shí)鐘周期長度為tA,CPUB的時(shí)鐘周期長度為tB,

CPIA=0.2×2+0.8×1=1.2 TCPUA=INA×1.2×tA, CPUB中由于沒有比較指令,轉(zhuǎn)移指令由原來占20%上升為20%÷80%=25%,它須要個(gè)時(shí)鐘周期,而其余的75%指令只需要1個(gè)時(shí)鐘周期,所以 CPIB=0.25×2+0.75×1=1.25 CPIB中由于沒有比較指令,因此INB=0.8×INA。又因?yàn)閠B=1.25tA,所以 TCPUB=INB×CPIB×tB

=0.8INA×1.25×1.25tA

=1.25INA×tA

所以可見TCPUA<TCPUB例1.10上例中,如果CPUB的時(shí)鐘周期只比CPUA的慢10%,那么哪一個(gè)CPU會(huì)工作的更快些?解:TCPUA=INA×1.2×tA

因?yàn)閠B=1.1tA

TCPUB=0.8INA×1.25×1.1tA=1.1INA×tA 所以可見TCPUB<TCPUA程序訪存的局部性原理一個(gè)程序用90%的執(zhí)行時(shí)間去執(zhí)行僅占10%的程序代碼此原理成為存儲(chǔ)器體系的構(gòu)造基礎(chǔ)實(shí)質(zhì)是:程序往往重復(fù)使用它剛剛使用過的數(shù)據(jù)和指令性能評價(jià)標(biāo)準(zhǔn)時(shí)間指標(biāo):完成同樣的工作量,花費(fèi)的時(shí)間最少,則性能最高以SuperPI為例常用的幾種評價(jià)指標(biāo)MIPS—millioninstructionspersecond

每秒百萬條指令數(shù)

MIPS定義為:其中IN是指令總數(shù);TE是執(zhí)行所需時(shí)間;t為時(shí)鐘周期長度;f是時(shí)鐘頻率,是t的倒數(shù) MIPS存在的不足之處MIPS依賴于指令系統(tǒng),比較不同指令系統(tǒng)是不準(zhǔn)確的在同一臺(tái)機(jī)器上,MIPS因程序不同而變化僅適于評估標(biāo)量計(jì)算機(jī)MFLOPSmillionfloatingpointoperationpersecond每秒百萬浮點(diǎn)操作MFLOPS基于操作而非指令,可比較兩種不同機(jī)器;只能衡量浮點(diǎn)操作,而不能體現(xiàn)整體性能測試程序真實(shí)程序。例如:C編譯程序,Tex軟件,CAD工具核心程序。例如:Linpack小測試程序。例如:Quicksort綜合測試程序。例如:Whetstone例1.11用一臺(tái)40MHz處理執(zhí)行標(biāo)準(zhǔn)測試程序,它包含的混合指令數(shù)和相應(yīng)所需的時(shí)鐘周期數(shù)如表1.2所示,求有效CPI,MIPS速率和程序執(zhí)行時(shí)間T指令類型指令數(shù)時(shí)鐘周期數(shù)整數(shù)運(yùn)算450001數(shù)據(jù)傳送320002浮點(diǎn)運(yùn)算150002控制傳送80002解:利用前述公式MIPS速率=f/(CPI×106)=(40×106)/(1.55×106)=25.8(百萬條指令/秒)程序執(zhí)行時(shí)間T=IN/(MIPS×106)=(100000)/(25.8×106)=0.003875(秒)性能比較下表列出兩個(gè)程序在A、B、C三臺(tái)機(jī)器上的執(zhí)行時(shí)間(秒)ABCW(1)W(2)W(3)程序11.0010.0020.000.500.9090.999程序21000.00100.0020.000.500.0910.001加權(quán)算術(shù)平均Am(1)500.5055.0020.00加權(quán)算術(shù)平均Am(2)91.9118.1920.00加權(quán)算術(shù)平均Am(3)2.0010.0920.00程序執(zhí)行的衡量標(biāo)準(zhǔn)算術(shù)平均值法加權(quán)算術(shù)平均值

2.調(diào)和平均值法如果性能是用速度(MFLOPS)表示,可以采用調(diào)和平均值法來比較:

Ri表示第i個(gè)程序的速度,Ri=1/Ti;而Ti為第i個(gè)程序的執(zhí)行時(shí)間幾何平均值基本思想源于性能規(guī)格化

例1.12已知4個(gè)程序在A,B,C三臺(tái)計(jì)算機(jī)上的執(zhí)行時(shí)間如表假設(shè)4個(gè)程序中每一個(gè)都有100000000條指令要執(zhí)行,計(jì)算這3臺(tái)計(jì)算機(jī)中每臺(tái)機(jī)器上每個(gè)程序的MIPS速率用算術(shù)平均(Am)和調(diào)和平均(Hm)法來比較3臺(tái)計(jì)算機(jī)的相對性能程序執(zhí)行時(shí)間/s計(jì)算機(jī)A計(jì)算機(jī)B計(jì)算機(jī)C程序111020程序2100010020程序3500100050程序4100800100解:(1)程序MIPS速率(百萬指令/秒)計(jì)算機(jī)A計(jì)算機(jī)B計(jì)算機(jī)C程序1100105程序20.115程序30.20.12程序410.1251解:(2)平均執(zhí)行時(shí)間MIPS速率(百萬指令/秒)計(jì)算機(jī)A計(jì)算機(jī)B計(jì)算機(jī)C算術(shù)平均(Am)25.32.813.25調(diào)和平均(Hm)0.250.22.1成本與價(jià)格構(gòu)成價(jià)格的各個(gè)因素可以通過占成本或價(jià)格的百分比來表示價(jià)格由原料成本,直接成本,毛利和折扣等因素構(gòu)成性能/成本問題復(fù)雜系統(tǒng)結(jié)構(gòu)中并行性的發(fā)展并行性:是指系統(tǒng)具有可以同時(shí)進(jìn)行運(yùn)算或操作的特性,它包括同時(shí)性和并發(fā)性同時(shí)性:兩個(gè)或兩個(gè)以上的事件在同一時(shí)刻發(fā)生并發(fā)性:兩個(gè)或兩個(gè)以上的事件在同一時(shí)間間隔發(fā)生并行性的分級從處理數(shù)據(jù)的角度字串位串字串位并字并位串高低全并行從執(zhí)行程序的角度指令內(nèi)部并行指令級并行任務(wù)級或過程級并行高低全并行單處理機(jī)系統(tǒng),并行性升到某一級別后,通過軟件來實(shí)現(xiàn)多處理機(jī)系統(tǒng),并行性由硬件實(shí)現(xiàn)提高并行性的技術(shù)途徑時(shí)間重疊資源重復(fù)時(shí)間重疊+資源重復(fù)資源共享單處理機(jī)系統(tǒng)中并行性主導(dǎo)作用:時(shí)間重疊原理,開發(fā)了計(jì)算機(jī)系統(tǒng)中的指令級并行物質(zhì)基礎(chǔ):部件功能專用化資源重復(fù)資源共享多處理機(jī)系統(tǒng)中的并行性也遵循時(shí)間重疊,資源重復(fù),資源共享耦合度:反映多機(jī)系統(tǒng)各機(jī)器之間物理連接的緊密程度與交互作用能力的強(qiáng)弱緊耦合:計(jì)算機(jī)間物理連接的頻帶較高,一般通過總線或高速開關(guān)實(shí)現(xiàn)計(jì)算機(jī)互聯(lián)松耦合:一般通過通道或通信線路實(shí)現(xiàn)計(jì)算機(jī)間的互聯(lián)多處理機(jī)將處理功能分散給各個(gè)專用處理機(jī)去完成----異構(gòu)型多處理機(jī)系統(tǒng)提高計(jì)算機(jī)系統(tǒng)速度----通過多處理機(jī)的并行處理,同構(gòu)型多處理機(jī)系統(tǒng)20世紀(jì)70年代之后,隨著芯片技術(shù)的飛速發(fā)展,為并行計(jì)算機(jī)系統(tǒng)提供強(qiáng)大物質(zhì)基礎(chǔ)20世紀(jì)90年代來的我國并行機(jī)機(jī)器型號完成時(shí)間研制單位CPU芯片CPU數(shù)機(jī)器類型曙光1號1993中科院計(jì)算所M880004-16SMP曙光10001995中科院計(jì)算所I860/xr36MPPYH-31997國防科大MIPSR4000128Cluster神威11999國家并行計(jì)算機(jī)工程技術(shù)中心64-bitAlpha384Cluster深騰68002003聯(lián)想Itanium2,1.3GHz1024Cluster曙光4000A2004中科院計(jì)算所AMDOpteron2.2GHz64位2560Cluster超級刀片系統(tǒng)2004深圳星盈XeonEM64T按照刀片擴(kuò)充ClusterKD-50-I2007中科大龍芯2F330Cluster天河一號實(shí)物神威太湖之光并行處理機(jī)的系統(tǒng)結(jié)構(gòu)類型SISDSIMDMISDMIMD并行處理機(jī)體系結(jié)構(gòu)分類SISDSIMDMISDMIMD單處理機(jī)向量處理機(jī)多處理機(jī)機(jī)群系統(tǒng)本章作業(yè)1-1,1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9,1-10,1-11

本章結(jié)束謝謝!

第二章指令系統(tǒng)本章將介紹數(shù)據(jù)表示 尋址方式指令系統(tǒng)討論在計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中如何給程序設(shè)計(jì)者提供合理的機(jī)器級界面,以及指令系統(tǒng)的改進(jìn)對計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)產(chǎn)生的影響及其發(fā)展趨勢數(shù)據(jù)表示數(shù)據(jù)表示:指的是能由機(jī)器硬件直接識別和引用的數(shù)據(jù)類型。數(shù)據(jù)表示直接與計(jì)算機(jī)的數(shù)據(jù)處理部件相對應(yīng),當(dāng)機(jī)器定義了某種數(shù)據(jù)類型的運(yùn)算指令并設(shè)置了相應(yīng)的處理硬件,能夠直接對這種類型的數(shù)據(jù)進(jìn)行處理時(shí),機(jī)器就具有了該類型的數(shù)據(jù)表示。和數(shù)據(jù)結(jié)構(gòu)的關(guān)系數(shù)據(jù)結(jié)構(gòu)研究的是實(shí)際應(yīng)用中所要用到的各種數(shù)據(jù)元素或信息單元之間的結(jié)構(gòu)關(guān)系。常見的數(shù)據(jù)結(jié)構(gòu)有標(biāo)量、向量、串、隊(duì)、棧、陣列、鏈表、樹、圖等。數(shù)據(jù)結(jié)構(gòu)不一定能被機(jī)器直接識別和處理,但可通過軟件映像,將其變換成機(jī)器中所具有的各種數(shù)據(jù)表示來實(shí)現(xiàn)。因此,數(shù)據(jù)表示是數(shù)據(jù)結(jié)構(gòu)的子集,機(jī)器具有不同的數(shù)據(jù)表示就可以為數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)提供不同程度的支持,故數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是機(jī)器軟、硬件的交界面。在機(jī)器中如何進(jìn)行軟、硬功能的分配,合理設(shè)置數(shù)據(jù)表示,以得到對應(yīng)用中遇到的數(shù)據(jù)結(jié)構(gòu)有較高的實(shí)現(xiàn)效率等問題,是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)研究的內(nèi)容。數(shù)據(jù)表示例子早期的機(jī)器只有定點(diǎn)教據(jù)表示。隨著計(jì)算機(jī)技術(shù)的發(fā)展和機(jī)器功能的不斷提高,現(xiàn)在邏輯(布爾)數(shù)、定點(diǎn)數(shù)(整數(shù))、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù)、字符串等,都已成為計(jì)算機(jī)的基本數(shù)據(jù)表示。一般計(jì)算機(jī)的數(shù)據(jù)字長有8位、16位、32位等。計(jì)算機(jī)的指令系統(tǒng)可支持對字節(jié)(8位)、半字(16位)、單字(32位)和雙字(64位)的運(yùn)算。變址操作的設(shè)置為向量、陣列數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)提供了直接支持,可以不必修改程序,僅用循環(huán)的辦法就能實(shí)現(xiàn)對整個(gè)向量、陣列的各個(gè)元素進(jìn)行運(yùn)算處理。然而,目前計(jì)算機(jī)系統(tǒng)中存儲(chǔ)器一維順序存儲(chǔ)的線性結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)中經(jīng)常要求的多維離散結(jié)構(gòu)仍存在很大差距,不利于數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。而且數(shù)據(jù)結(jié)構(gòu)的發(fā)展總是領(lǐng)先于機(jī)器的數(shù)據(jù)表示,根據(jù)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的需要來設(shè)計(jì)和改進(jìn)系統(tǒng)結(jié)構(gòu)成為我們的重要任務(wù)。在計(jì)算機(jī)中確定數(shù)據(jù)表示,應(yīng)從其能否提高運(yùn)算速度、能否減少CPU與主存間的通信量和系統(tǒng)開銷,以及它的通用性和利用率等各種因素加以綜合考慮。下面討論一下計(jì)算機(jī)中的幾種高級數(shù)據(jù)表示。高級數(shù)據(jù)表示自定義數(shù)據(jù)表示向量、數(shù)組數(shù)據(jù)表示1.自定義數(shù)據(jù)類型對于處理運(yùn)算符和數(shù)據(jù)類型的關(guān)系,高級語言和機(jī)器語言的差別很大。高級語言用類型說明語句指明數(shù)據(jù)的類型,讓數(shù)據(jù)類型直接與數(shù)據(jù)本身聯(lián)系在一起,運(yùn)算符對不同類型的數(shù)據(jù)是通用的。傳統(tǒng)的機(jī)器語言中對數(shù)據(jù)沒有類型說明,而使用不同的指令操作碼區(qū)分對不同類型數(shù)據(jù)的操作。編譯時(shí)要把高級語言程序中的數(shù)據(jù)類型說明語句和運(yùn)算符變換成機(jī)器語言中不同類型指令的操作碼,并驗(yàn)證操作數(shù)類型的合法性,這會(huì)增加編譯的負(fù)擔(dān)。為了在數(shù)據(jù)表示上縮短高級語言與機(jī)器語言的語義差距,可采用自定義數(shù)據(jù)表示。帶標(biāo)志符的數(shù)據(jù)表示定義每個(gè)數(shù)據(jù)由類型標(biāo)志位和數(shù)據(jù)值兩部分組成,用類型標(biāo)志位指明數(shù)據(jù)值部分究竟是二進(jìn)制整數(shù)、十進(jìn)制整數(shù)、浮點(diǎn)數(shù)、字符串,還是地址字,將數(shù)據(jù)類型與數(shù)據(jù)本身直接聯(lián)系在一起。這樣,機(jī)器語言中的操作碼可以同高級語言中的運(yùn)算符一樣,對各種數(shù)據(jù)類型的操作可以通用。我們稱這種數(shù)據(jù)表示為帶標(biāo)志符的數(shù)據(jù)表示。標(biāo)志符由編譯程序建立,對高級語言程序來說是透明的,以減輕應(yīng)用程序員的負(fù)擔(dān)。優(yōu)點(diǎn)采用標(biāo)志符數(shù)據(jù)表示的機(jī)器,具有簡化指令系統(tǒng)和裎序設(shè)計(jì)、簡化編譯程序及編譯過程、方便實(shí)現(xiàn)一致性校驗(yàn)、能夠用硬件自動(dòng)完成數(shù)據(jù)類型轉(zhuǎn)換以及支持?jǐn)?shù)據(jù)庫系統(tǒng)的實(shí)現(xiàn)與數(shù)據(jù)類型無關(guān)的要求等優(yōu)點(diǎn)。數(shù)據(jù)描述符對于向量、數(shù)組、記錄這類每個(gè)元素都具有相同屬性的數(shù)據(jù),可定義一個(gè)數(shù)據(jù)描述符來說明其共同的類型信息。數(shù)據(jù)描述符和標(biāo)志符的差別在于:標(biāo)志符與每個(gè)數(shù)據(jù)相連,共同存在一個(gè)存儲(chǔ)單元中,描述單個(gè)數(shù)據(jù)的類型特征;描述符則與數(shù)據(jù)分開存放,用來描述所要訪問的數(shù)據(jù)是整塊數(shù)據(jù)還是單個(gè)數(shù)據(jù)、訪問該數(shù)據(jù)塊或數(shù)據(jù)元素所需要的地址以及其他特征信息等。標(biāo)志符與數(shù)據(jù)一同出現(xiàn)在程序中并同時(shí)被訪問,而采用數(shù)據(jù)描述符時(shí)程序中只出現(xiàn)描述符,只有當(dāng)描述符被訪問時(shí)才根據(jù)其中的信息形成操作數(shù)地址,然后再訪問數(shù)據(jù)。2.向量、數(shù)組數(shù)據(jù)表示向量、數(shù)組數(shù)據(jù)表示是為支持向量、數(shù)組數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)和快速運(yùn)算而設(shè)置的。在具有向量、數(shù)組數(shù)據(jù)表示的向量處理機(jī)中,硬件上設(shè)置有以流水或陣列方式處理的高速運(yùn)算器,而其指令系統(tǒng)中則包含功能豐富的向量或陣列運(yùn)算指令。只需一條如下的向量運(yùn)算指令就可以方便地實(shí)現(xiàn)諸如

ci=

ai+5+bi

i=10,11,…,1000的向量運(yùn)算功能。指令中源向量A、B及結(jié)果向量C的向量參數(shù)包括其基地址、位移量、向量長度和向量元素步距等參數(shù)。優(yōu)點(diǎn)用一條向量、數(shù)組指令同時(shí)實(shí)現(xiàn)對整個(gè)向量、數(shù)組的高速處理,同時(shí)編譯程序也得到簡化。3.堆棧數(shù)據(jù)表示為了能高效實(shí)現(xiàn)編譯和子程序調(diào)用中的堆棧數(shù)據(jù)結(jié)構(gòu),很多機(jī)器都設(shè)置有堆棧數(shù)據(jù)表

示。具有堆棧數(shù)據(jù)表示的機(jī)器稱為堆棧機(jī)器。堆棧機(jī)器對堆棧數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的支持體現(xiàn)在以下幾個(gè)方面:(1)有功能豐富的堆棧操作類指令,可對堆棧中的數(shù)據(jù)直接進(jìn)行各種運(yùn)算和處理。(2)由若干高速寄存器組成的硬件堆棧,并控制它與主存中的堆棧區(qū)在邏輯上組成一

個(gè)整體,使堆棧具有寄存器的訪問速度和圭存的容量。(3)有力地支持子程序的嵌套和遞歸調(diào)用。(4)有力地支持高級語言程序的編譯。例如在機(jī)器HP-3000中除一般的訪存指令外還有一組堆棧指令,格式為主操作碼為0000時(shí)表示為堆棧指令。其功能為按照先A操作后B操作的順序?qū)m敽痛螚m數(shù)膬蓚€(gè)操作數(shù)進(jìn)行運(yùn)算,結(jié)果存于原操作數(shù)所在位置如有高級語言算術(shù)表達(dá)式A/B+C*(D+E)其逆波蘭表達(dá)式為AB/CDE+*+作為編譯時(shí)的中間語言,直接生成堆棧機(jī)器指令程序?yàn)長OAD A ;sp←sp+1,M(sp)←M(A)LOAD B ;sp←sp+1,M(sp)←M(B)DIV DEL ;除法,sp←sp-1LOAD CLOADDADDM E ;M(sp)←M(sp)+M(A)MUL ADD ;乘法,加法在堆棧機(jī)器中的實(shí)現(xiàn)過程如圖在堆棧機(jī)器中實(shí)現(xiàn)算術(shù)表達(dá)式,可以簡化編譯,在較大程度上縮小高級語言和機(jī)器語言之間的語義差距。浮點(diǎn)數(shù)尾數(shù)的下溢處理如浮點(diǎn)數(shù)運(yùn)算過程中因相乘或各種右移,會(huì)使尾數(shù)超出運(yùn)算器和存儲(chǔ)器的字長范圍。超長尾數(shù)部分丟棄會(huì)造成精度損失,如果用兩倍字長存儲(chǔ)和運(yùn)算來保證精度,則會(huì)增加存儲(chǔ)空間和運(yùn)算時(shí)間。對于一般的應(yīng)用,應(yīng)考慮在尾數(shù)的下溢處理中如何采取措施以盡量減少運(yùn)算中的精度損失。1.截?cái)喾ǚ椒ㄊ呛唵蔚貙⑾乱绮糠纸厝?。其最大誤差在整數(shù)二進(jìn)制運(yùn)算中接近于1,在分?jǐn)?shù)二進(jìn)制運(yùn)算中接近于2-m(m為尾數(shù)的二進(jìn)制位數(shù))。對正數(shù)誤差恒為負(fù),統(tǒng)計(jì)平均誤差為負(fù)且無法調(diào)節(jié)。該方法誤差較大,但實(shí)現(xiàn)簡單,無須增加硬件及處理時(shí)間。2.舍入法方法是將尾數(shù)多保留一位(溢出部分的最高位),處理時(shí)該保留位加1后舍去。其誤差

有正有負(fù),最大誤差小于截?cái)喾?,平均誤差無法調(diào)節(jié)。統(tǒng)計(jì)平均誤差接近于0,稍偏正。該

方法實(shí)現(xiàn)簡單,增加硬件少,但處理速度慢。處理時(shí)間最長的情況是從尾數(shù)最低位向最高位

進(jìn)位,并發(fā)生上溢而需要右移規(guī)格化。3.恒置1法方法是將尾數(shù)規(guī)定字長的最低位恒置1。其誤差有正有負(fù),最大誤差為1。統(tǒng)計(jì)平均誤

差接近于0,稍偏正。平均誤差無法調(diào)節(jié)。該方法實(shí)現(xiàn)簡單,無須增加硬件,處理速度快。4.查表舍入法其方法基于存儲(chǔ)邏輯的思想,用ROM或PLA存放下溢處理表,如圖2.2所示。表的k

位地址來自尾數(shù)最低的k-l位和準(zhǔn)備舍掉部分的最高位,表的內(nèi)容則是2k個(gè)k-l位下溢處理結(jié)果。一般情況下,下溢處理結(jié)果按舍人法編碼;當(dāng)尾數(shù)的最低k-l位為全1時(shí),則采用截?cái)喾ㄐ纬上乱缣幚斫Y(jié)果,即仍保持k-l位為全1。下溢處理表中的內(nèi)容由設(shè)計(jì)者填入,處理時(shí)僅需從表中讀出處理結(jié)果,處理速度比舍入法快。該方法可根據(jù)具體情況設(shè)置處理結(jié)果,平均誤差可調(diào)節(jié)至趨于0,但需增加硬件。2.2指令系統(tǒng)的優(yōu)化設(shè)計(jì)指令系統(tǒng)是程序設(shè)計(jì)者看到的機(jī)器主要屬性和軟、硬件的主要界面,它對計(jì)算機(jī)功能的確定至關(guān)重要。指令系統(tǒng)的設(shè)計(jì)主要包括指令功能設(shè)計(jì)和指令格式設(shè)計(jì)兩方面,其內(nèi)容與前述數(shù)據(jù)表示以及尋址方式密切相關(guān)。本節(jié)從尋址方式及相關(guān)問題人手,著重討論指令格式的優(yōu)化及指令系統(tǒng)的改進(jìn)和發(fā)展的途徑。尋址方式分析指令尋找所需操作數(shù)或信息的方式稱為尋址方式。計(jì)算機(jī)用到的數(shù)據(jù)、指令等信息通常保存在通用寄存器、主存、堆棧以及設(shè)備寄存器或某砦專門寄存器等部件中。為了訪問這些部件,首先要對它們進(jìn)行編址。1.編址方式部件的編址方式一般有以下幾種:各種部件分類獨(dú)立編址,構(gòu)成多個(gè)一維的線性地址空間。用不同的指令訪問不同的部件。各種部件統(tǒng)一編址.構(gòu)成一個(gè)一維線性地址空間。在指令中通過不同的地址訪問不同的部件。隱式編址。對像堆?;蚰承S眉拇嫫鞯炔考捎檬孪燃s定好的方式隱式尋址,以加快對其尋址和訪問的速度。目前,大多數(shù)計(jì)算機(jī)都采用將主存、通用寄存器、堆棧分類編址,并分別形成面向寄存器、堆棧和主存的尋址方式。由指令格式中的地址碼形成操作數(shù)的物理地址的方式和過程,在計(jì)箅機(jī)組成原理課中已有過詳細(xì)的介紹,如立即尋址、直接尋址、間接尋址、相對尋址、變址尋址等,在此不再討論。2.程序定位技術(shù)程序員編寫程序時(shí)使用的地址稱為邏輯地址,而主存物理地址指的是程序在主存中的實(shí)際地址,計(jì)算機(jī)只能根據(jù)物理地址尋址和訪問信息。所謂程序定位就是把指令和數(shù)據(jù)的邏輯地址轉(zhuǎn)換成主存物理地址的過程。程序定位技術(shù)可分為三種:直接定位、靜態(tài)再定位和動(dòng)態(tài)再定位。(1)直接定位程序員在編寫程序時(shí)直接指明程序和數(shù)據(jù)在實(shí)際主存中存放的位置。此時(shí)主存物理地址和邏輯地址是一致的,從而由邏輯地址構(gòu)成的程序空間和由主存物理地址構(gòu)成的主存空間(也稱實(shí)存空間)也是一致的。這種定位方式只在初期的計(jì)算機(jī)中應(yīng)用過。后來出現(xiàn)的操作系統(tǒng)可以管理主存中同時(shí)存放的多道程序,而程序員編程時(shí)并不知道該程序?qū)⒋娣旁谥鞔嬷惺裁次恢?,所以各道程序的邏輯地址都是?開始編址。當(dāng)程序裝入主存時(shí)需要進(jìn)行邏輯地址空間到物理地址空間的變換,即進(jìn)行程序的定位。(2)靜態(tài)再定位這是在目的程序裝入主存時(shí)通過調(diào)用裝入程序,用軟件方法把目的程序的邏輯地址變換成物理地址,而在程序執(zhí)行過程中,物理地址不再改變的程序定位技術(shù)。由于這種技術(shù)基于VonNeumann型機(jī)器指令可修改的特點(diǎn),不符合程序可再人性的要求,所以逐漸也被淘汰(3)動(dòng)態(tài)再定位程序不做任何變換直接裝入主存,同時(shí)將裝入主存的起始地址存入對應(yīng)該道程序使用的基址寄存器。在程序執(zhí)行時(shí),通過地址加法器將邏輯地址加上基址寄存器的程序起始地址(簡稱基址)形成物理地址后訪問主存。這是借鑒數(shù)據(jù)變址尋址的思想而拓展的程序基址尋址定位方法,其過程如圖2.3所示。我們將這種在執(zhí)行每條指令時(shí)才形成訪存物理地址的方法稱為動(dòng)態(tài)再定位。按整數(shù)邊界存儲(chǔ)的概念通常一臺(tái)機(jī)器中存放的信息有多種不同的寬度,這些信息在存儲(chǔ)器中如何存放關(guān)系到物理地址空間的信息分布問題。按字節(jié)編址的機(jī)器可尋址到字節(jié),但機(jī)器的信息寬度有多種,如IBM370的信息有字節(jié)(8位)、半字(雙字節(jié))、單字(4字節(jié))和雙字(8字節(jié))等不同寬度。主存寬度64位,即一個(gè)存儲(chǔ)周期可訪問8個(gè)字芾。各種寬度的信息均按其首字節(jié)的字節(jié)地址進(jìn)行訪問。信息在存儲(chǔ)器中的分布方式有兩種。一種是任意存儲(chǔ),如圖2.4(a)所示。這樣可能會(huì)出現(xiàn)一個(gè)信息跨主存字邊界存儲(chǔ)的情況,這時(shí)對寬度小于或等于主存寬度信息也要用兩個(gè)存儲(chǔ)周期才能訪問到,使訪問速度顯著降低。另一種是按整數(shù)邊界存儲(chǔ)。為了避免發(fā)生信息跨主存邊界存儲(chǔ)的情況,以保證任何時(shí)候都只用一個(gè)存儲(chǔ)周期訪問到所需信息,要求信息在主存中存放的地址必須是該信息寬度(字節(jié)數(shù))的整數(shù)倍,如圖2.4(b)所示。

(a)(b)這時(shí)各種寬度的信息在存儲(chǔ)器中存放的地址必須滿足:字節(jié)信息地址為 ×…××××半字信息地址為 ×…×××0單字信息地址為 ×…××00雙字信息地址為 ×…×000這就是信息在存儲(chǔ)器中按整數(shù)邊界存儲(chǔ)的概念。信息在存儲(chǔ)器中按整數(shù)邊界存儲(chǔ),雖然可以保證訪問速度,但會(huì)造成存儲(chǔ)空間的浪費(fèi)。隨著主存器件價(jià)格的不斷下降,主存容量顯著擴(kuò)大,目前在權(quán)衡速度和價(jià)格時(shí)為了保證訪問速度,一般都要求在主存中必須按整數(shù)邊界存儲(chǔ)信息。指令格式的優(yōu)化指令系統(tǒng)優(yōu)化設(shè)計(jì)的實(shí)質(zhì)是指令格式的優(yōu)化,其目標(biāo)是用最短的位數(shù)來表示指令內(nèi)容,使程序中指令的平均字長最短,以節(jié)省程序的存儲(chǔ)空間。同時(shí),要盡量降低硬件實(shí)現(xiàn)的復(fù)雜程度。指令由操作碼和地址碼兩部分組成,所以指令格式的優(yōu)化也要從這兩方面人手,并考慮其綜合效果。1.操作碼的優(yōu)化操作碼優(yōu)化編碼的目的是為了縮短指令字的長度,減少程序的總位數(shù)及增加指令字所能表示的操作信息和地址信息。二進(jìn)制操作碼的信息源熵為,其中pi表示第i種操作碼在程序中出現(xiàn)的概率然后計(jì)算采用實(shí)際編碼方案的信息冗余量

,此冗余量越小編碼質(zhì)量越高或者計(jì)算實(shí)際編碼的平均碼長

(li表示第i種操作碼的碼長),其值接近H者編碼質(zhì)量高。[例2.1]設(shè)有一臺(tái)模型機(jī),共有七種不同功能的指令,各指令的使用頻度如表2.1所示,計(jì)算該指令集的信息源熵。解:計(jì)算指令的信息源熵為 =0.45×1.152+0.30×1.737+0.15×2.737+0.05×4.322+0.03×5.059+0.01×6.644+0.01×6.644=1.95位

結(jié)果說明這七種指令的最少平均編碼位數(shù)只需1.95位。操作碼的表示方法有等長操作碼編碼、Huffman編碼和擴(kuò)展操作碼編碼。我們通過前面的實(shí)例來介紹以上三種編碼方法并比較各自的特點(diǎn)。(1)等長操作碼編碼所有操作碼編碼長度相同,且對N種操作碼采用等長操作碼編碼時(shí),其編碼長度至少需要

位。如對表2.1給出指令集,若采用等長操作碼編碼則平均碼長為3位,相對于指令信息源熵的信息冗余量為

。等長操作碼的特點(diǎn)是編碼簡單,規(guī)整性好,實(shí)現(xiàn)容易,但信息冗余量大,會(huì)造成存儲(chǔ)空間的浪費(fèi)。(2)Huffman編碼Huffman編碼是將Huffman壓縮概念運(yùn)用于指令操作碼而得到的一種編碼,目的是縮短操作碼的平均碼長。操作碼的Huffman壓縮思想是:當(dāng)各種指令出現(xiàn)的頻度不均等時(shí),對出現(xiàn)頻度最高的指令用最短的位數(shù)來表示,而對出現(xiàn)頻度較低的指令用較長的位數(shù)來表示,會(huì)使表示的平均位數(shù)縮短。Huffman編碼的一般過程為:利用最小概率合并法,構(gòu)造Huffman樹。對Huffman樹的所有分支進(jìn)行代碼分配,兩個(gè)分支按左1右0或者相反均可。從根結(jié)點(diǎn)開始,沿分支到達(dá)各頻度指令所經(jīng)過的代碼序列即為該頻度指令的Huffman編碼。應(yīng)當(dāng)指出,用上述方法構(gòu)造的Huffman樹以及各指令的Huffman編碼均不是唯一的,但采用Huffman編碼所得操作碼的平均長度是唯一的。[例2.2]對表2.1給出指令集進(jìn)行Huffman編碼,并計(jì)算編碼的平均碼長和信息冗余量。解:采用最小概率合并法構(gòu)造的Huffman樹如圖2.5所示。計(jì)算Huffman編碼的平均碼長為

=0.45×1+0.30×2+0.15×3+0.05×4+0.03×5+0.01×6+0.01×6=1.97Huffman編碼的信息冗余量為與采用3位等長操作碼的信息冗余量35%相比要小得多。Huffman編碼方法形成的操作碼很不規(guī)整,列2.2中的七條指令就形成六種不同長度的操作碼。這樣既不利于硬件的譯碼,也不利于軟件的編譯,同時(shí)也很難與地址碼配合實(shí)現(xiàn)指令格式的整體優(yōu)化。Huffman編碼的特點(diǎn)是平均碼長短,信息冗余量小,但編碼規(guī)整性差,實(shí)現(xiàn)困難。(3)擴(kuò)展操作碼編碼擴(kuò)展操作碼編碼實(shí)際是一種結(jié)合Huffman壓縮思想的不等長二進(jìn)制編碼方式。它的操作碼長度只限于幾種碼長,以便于實(shí)現(xiàn)和分級譯碼。編碼仍保持用短碼表示概率高的操作碼,用長碼表示概率低的操作碼的Huffman壓縮思想,以降低信息冗余量。擴(kuò)展編碼法有等長擴(kuò)展編碼法和不等長擴(kuò)展編碼法兩種方法,區(qū)別在于不同碼長操作碼的擴(kuò)展位數(shù)是否相同。[例2.3]對表2.1給出的指令集分別采用等長擴(kuò)展和不等長擴(kuò)展方式進(jìn)行編碼,并計(jì)算編碼的平均碼長和信息冗余量。解:對給定指令集采用2-4等長擴(kuò)展編碼和1—2-3-5不等長擴(kuò)展編碼。2-4等長擴(kuò)展編碼:用三個(gè)2位編碼表示三種使用頻度高的指令,留一個(gè)2位編碼11作為將操作碼擴(kuò)展為4位的標(biāo)志,4位編碼中低2位的四個(gè)編碼可以分別表示其余四種使用頻度較低的指令。具體編碼如表2.3所示。1-2-3-7不等長擴(kuò)展編碼方案可以構(gòu)成7個(gè)編碼,具體編碼如表2.4所示。擴(kuò)展操作碼編碼的特點(diǎn)是平均碼長較短,信息冗余量較小,編碼規(guī)整性好,實(shí)現(xiàn)較容易。這是一種很實(shí)用的優(yōu)化編碼方法。操作碼的擴(kuò)展編碼會(huì)因選擇擴(kuò)展標(biāo)志不同而形成多種不同的擴(kuò)展編碼方案。例如,對4-8-12等長擴(kuò)展編碼,就可以有15/15/15和8/64/512等多種擴(kuò)展編碼方法。具體略去。地址碼的優(yōu)化地址碼是指令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論