數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)工程師考試考點(diǎn)分析與真題詳解(第4版)

第1章計(jì)算機(jī)組成與結(jié)構(gòu)

根據(jù)考試大綱,本章要求考生掌握以下知識(shí)點(diǎn):

CPU和存儲(chǔ)器的組成、性能、基本工作原理。

常用I/O設(shè)備、通信設(shè)備的性能,以及基本工作原理。

I/O接口的功能、類型和特點(diǎn)。

QSC/RISC、流水線操作、多處理機(jī)及并行處理。

1.1計(jì)算機(jī)組成

中央處理器是計(jì)算機(jī)的控制、運(yùn)算中心,它主要通過總線和其他設(shè)備進(jìn)行聯(lián)系。另外,

在嵌入式系統(tǒng)設(shè)計(jì)中,外部設(shè)備也常常直接連接到中央處理器的外部I/O(Input/Output,

輸入/輸出)腳的相關(guān)引腳上。

中央處理器的類型和品種異常豐富,各種中央處理器的性能也差別很大,有不同的內(nèi)部

結(jié)構(gòu)及不同的指令系統(tǒng)。但都是基于馮?諾依曼結(jié)構(gòu),因而其基本組成部分相似。

1.1.1運(yùn)算器

運(yùn)算器的主要功能是在控制器的控制下完成各種算術(shù)運(yùn)算、邏輯運(yùn)算和其他操作。一個(gè)

計(jì)算過程需要用到加法器/累加器、數(shù)據(jù)寄存器、狀態(tài)寄存器等。

加法是運(yùn)算器的基本功能,在大多數(shù)中央處理器中,其他計(jì)算也是經(jīng)過變換后使用加法

進(jìn)行的,一個(gè)位加法的邏輯圖如圖1-1所示。

Z,Z

C,c,+G+(G+1

XX工

圖1-1位加法邏輯圖

其中Xi、Yi是加數(shù)和被加數(shù),Ci+1是低位進(jìn)位,Ci是進(jìn)位,Zi是和。

為完成多位數(shù)據(jù)加法,可以通過增加電路和部件,使簡(jiǎn)單的加法器能夠變?yōu)榇?、并?/p>

加法器,超前進(jìn)位加法器等。

運(yùn)算器的位數(shù),即運(yùn)算器一次能對(duì)多少位的數(shù)據(jù)做加法。這是衡量中央處理器的一個(gè)重

要指標(biāo)。

1.1.2控制器

控制器是中央處理器的核心,它控制和協(xié)調(diào)整個(gè)計(jì)算機(jī)的動(dòng)作,其組成如圖1-2所示。

控制通常需要程序計(jì)數(shù)器(ProgramCounter,PC\指令寄存器(InstructionRegister,IR)、

指令譯碼器(InstructionDecoder,ID)、定時(shí)和控制電路,以及脈沖源、中斷(在圖1-2

中未表示)等共同組成。

運(yùn)算電

內(nèi)

累加粉曲

標(biāo)志寄存強(qiáng)

通用寄存強(qiáng)

圖1-2控制器的組成

控制器各組件的說明如下。

指令寄存器(IR):中央處理器,執(zhí)行的操作碼存放在這里。

指令譯碼器(ID):將操作碼解碼,告訴中央處理器該做什么。

定時(shí)和控制電路(Timing/ControlCircuit):用來產(chǎn)生各種微操作控制信號(hào)。

程序計(jì)數(shù)器(PC):程序計(jì)數(shù)器中存放的是下一條指令的地址。由于多數(shù)情況下程序

是順序執(zhí)行,所以程序計(jì)算數(shù)器設(shè)計(jì)成能自動(dòng)加1.當(dāng)出現(xiàn)轉(zhuǎn)移指令、中斷等情況時(shí),就需

要重填程序計(jì)數(shù)器。程序計(jì)數(shù)器可能是下一條指令的絕對(duì)地址,也可能是相對(duì)地址,即地址

偏移量。

標(biāo)志寄存器(FlagsRegister,FR):這個(gè)寄存器通常記錄運(yùn)算器的重要狀態(tài)或特征,包

括是否溢出、結(jié)果為0、被0除等。這個(gè)寄存器的每一位表示一個(gè)特征。標(biāo)志寄存器的典型

應(yīng)用是作為跳轉(zhuǎn)指令的判斷條件。

堆棧和堆棧指針(StackPointer,SP):堆棧可以由一組寄存器或在存儲(chǔ)器內(nèi)的特定區(qū)

域組成。由于寄存器數(shù)量總是有限的,所以大多數(shù)系統(tǒng)采用了使用存儲(chǔ)器的軟件堆棧。指向

堆棧頂部的指針稱為堆棧指針。

寄存器組:上面提及的程序計(jì)數(shù)器、標(biāo)志寄存器等為專用寄存器,都有特定的功能和用

途。

通用寄存器的功能由程序指令決定,最常見的應(yīng)用是放置計(jì)算的中間結(jié)果,減少對(duì)存儲(chǔ)

器的訪問次數(shù)。通常寄存器的寬度和運(yùn)算器的位數(shù)是一致的。

1.1.3存儲(chǔ)器系統(tǒng)

這里的存儲(chǔ)器是指中央處理器通過總線直接能訪問的存儲(chǔ)器,通常稱為內(nèi)存。硬盤等需

通過I/O接口訪問的存儲(chǔ)器常稱為外存或者輔存。

存儲(chǔ)器的作用顯然是存儲(chǔ)數(shù)據(jù),包括指令、指令帶的數(shù)據(jù)(這正是馮?諾依曼結(jié)構(gòu)的特

點(diǎn)之一)和中央處理器處理后的結(jié)果(包括中間結(jié)果)。

中央處理器對(duì)存儲(chǔ)器的訪問需通過控制地址、數(shù)據(jù)總線進(jìn)行。存儲(chǔ)器的數(shù)據(jù)組織是線性

的,所存儲(chǔ)的數(shù)據(jù)都有整齊的"編號(hào)",即訪問地址。存儲(chǔ)器一般每個(gè)存儲(chǔ)單元中有8位數(shù)據(jù),

其容量是其存儲(chǔ)單元的總和。

存儲(chǔ)器的性能指標(biāo)如下。

存取時(shí)間:指的是從中央處理器發(fā)出指令到操作完成的時(shí)間。

傳輸率:或稱為數(shù)據(jù)傳輸帶寬,指單位時(shí)間內(nèi)寫入或讀取的數(shù)據(jù)的多少,顯然,存取時(shí)

間越少,則傳輸率越高。

存儲(chǔ)密度:在單位面積中的存儲(chǔ)容量,人們?cè)诓粩嘣黾舆@個(gè)值。

有關(guān)存儲(chǔ)器系統(tǒng)的詳細(xì)內(nèi)容,請(qǐng)閱讀本書第2章。

1.1.4時(shí)序產(chǎn)生器和控制方式

為了使得計(jì)算機(jī)各部件同步工作,計(jì)算機(jī)中都有一個(gè)脈沖源,通常是晶振。這個(gè)脈沖源

產(chǎn)生主振脈沖,主振脈沖的時(shí)間間隔為主振周期,即時(shí)鐘周期。中央處理器執(zhí)行指令的時(shí)間

(包括取指)為指令周期,由于指令可能有不同的復(fù)雜度,所以,每種指令的指令周期可能

不同。CPU(CentralProcessUnit)周期也稱機(jī)器周期,一般是從內(nèi)存中讀一個(gè)指令的最

短時(shí)間。CPU周期又由若干個(gè)時(shí)鐘周期組成。指令周期與時(shí)鐘周期的關(guān)系如圖1-3所示。

通常把CPU執(zhí)行指令的各個(gè)微操作遵循的時(shí)間順序叫時(shí)序。時(shí)序圖是形象地表示信號(hào)

線上信息變化的時(shí)間序列的圖形。

組合邏輯控制和微程序控制是兩種基本的控制方式。

1.組合邏輯控制

使用專門邏輯電路的控制方式,它的實(shí)現(xiàn)有硬件接線控制和可編程邏輯陣列兩種。硬件

連線法最直接,可以用較少的元件實(shí)現(xiàn)最快的速度,但是如果要更改,只有重新設(shè)計(jì)??删?/p>

程邏輯陣列采用低成本大規(guī)模集成電路的方式。組合邏輯控制靈活性很差,在復(fù)雜指令系統(tǒng)

計(jì)算機(jī)中難以處理不斷增加的復(fù)雜指令,但是它使用的電子原件少,在精簡(jiǎn)指令計(jì)算機(jī)中發(fā)

揮了很大的作用。

2.微程序控制

為提高控制的靈活性,許多中央處理器采用了微程序控制的控制方法,先看如下的幾個(gè)

概念。

微程序:微程序?qū)?yīng)一組機(jī)器指令,若干個(gè)微指令序列形成一段微程序。而微指令又可

細(xì)分為若干個(gè)微操作。微程序存在控制內(nèi)存內(nèi)。

微操作:微操作是最基本的操作,可分為相容性微操作和不相容性微操作,這兩種微操

作的區(qū)別在于:是否能在一個(gè)CPU周期內(nèi)并行執(zhí)行。

3.微指令格式

微指令格式如圖1-4所示。

竦作控制字段國(guó)于控制字建

圖1-4微指令的格式

在如圖1-4所示的前半部分,存放著對(duì)各種控制門進(jìn)行激活或關(guān)閉的控制信息;后半

部分是后續(xù)微指令的地址。微指令格式實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)中的單向列表。

操作控制字段的格式有如下兩種。

水平型微指令:操作控制字段的每一位控制不同的控制門,可以在一個(gè)微指令中定義。

執(zhí)行多個(gè)并行的微操作的優(yōu)點(diǎn)是效率高、靈活,執(zhí)行時(shí)間短。

垂直型微指令:與水平型微指令相比,其格式要短,一條微指令中包括的微操作少,只

有1~2個(gè)。由于其指令字短,所以比較容易掌握。

在實(shí)踐中也常常使用混合型微指令,即水平型微指令和垂直型微指令的混合。

1.1.5指令流、數(shù)據(jù)流和計(jì)算機(jī)的分類

首先介紹指令流和數(shù)據(jù)流的定義。

指令流:機(jī)器執(zhí)行的指令序列。

數(shù)據(jù)流:由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果。

1.計(jì)算機(jī)根據(jù)多倍性的分類

按照計(jì)算機(jī)在一個(gè)執(zhí)行階斷能執(zhí)行的指令或能處理數(shù)據(jù)的最大可能個(gè)數(shù),人們把計(jì)算機(jī)

分成4種,如表1-1所示。

表1-1多倍性分類

指令流單(sin*)多(multiple)

單(single'1SISDNASD

多(multiple''SIMD

SISD(SingleInstructionSingleData,單指令流單數(shù)據(jù)流):這是最簡(jiǎn)單的方式,計(jì)

算機(jī)每次處理一條指令,并只對(duì)一個(gè)操作部件分配數(shù)據(jù)。

SIMD(SingleInstructionMultipleData,單指令流多數(shù)據(jù)流):具備SIMD點(diǎn)的常

常是并行處理機(jī),這種處理機(jī)具備多個(gè)處理單元,每次都執(zhí)行同樣的指令,對(duì)不同的數(shù)據(jù)單

元進(jìn)行處理。這種計(jì)算機(jī)非常適合于處理矩陣計(jì)算等。

MISD(MultipleInstructionSingleData,多指令流單數(shù)據(jù)流):這種處理方式比較難

以想象,有多個(gè)處理單元,同時(shí)執(zhí)行不同的指令,但針對(duì)的是單一數(shù)據(jù)。有資料認(rèn)為流水線

處理機(jī),是每個(gè)數(shù)據(jù)由不同操作部件對(duì)其進(jìn)行處理。

MIMD(MultipleInstructionMultipleData,多指令流多數(shù)據(jù)流):這是一種全面的

并行處理,典型的是多處理機(jī)。這種計(jì)算機(jī)的設(shè)計(jì)和控制都很復(fù)雜。

2.計(jì)算機(jī)按照程序流程機(jī)制的分類

1)控制流計(jì)算機(jī)

這是通常見到的計(jì)算機(jī),使用程序計(jì)數(shù)器(PC)來確定下一條指令的地址。指令程序

流由程序員直接控制,其主存是共享的,存儲(chǔ)區(qū)可以為多指令修改(后面將會(huì)提到),這容

易產(chǎn)生數(shù)據(jù)相關(guān)性,對(duì)并行性不利。

2)數(shù)據(jù)流計(jì)算機(jī)

在馮?諾依曼體系中,計(jì)算機(jī)是指令流驅(qū)動(dòng)的,而數(shù)據(jù)流則是處于被動(dòng)地位,這看起來

合理,但在某些時(shí)候也不盡然。相對(duì)比的是數(shù)據(jù)流驅(qū)動(dòng),即一旦數(shù)據(jù)準(zhǔn)備好,則立即開始執(zhí)

行相關(guān)的指令,這種非馮?諾依曼體系仍然在探索中。目前,對(duì)馮?諾依曼體系的改良已有相

當(dāng)?shù)某晒?,即流水線技術(shù)和并行計(jì)算機(jī)。

在數(shù)據(jù)流計(jì)算機(jī)中,數(shù)據(jù)不在共享的存儲(chǔ)器中,而是在指令間傳送,成為令牌。當(dāng)需要

使用該數(shù)據(jù)的指令收到令牌,開始執(zhí)行之后,該令牌即消失,執(zhí)行的指令將執(zhí)行的結(jié)果數(shù)據(jù)

當(dāng)做新的令牌發(fā)送。這種方式不再需要程序計(jì)數(shù)器及共享的存儲(chǔ)器,但需要檢測(cè)數(shù)據(jù)可用性

的專門部件,以建立、識(shí)別、處理數(shù)據(jù)令牌標(biāo)記所需要的時(shí)間和空間。

在其他一些方面,數(shù)據(jù)流計(jì)算機(jī)還有一些困難需要克服。例如,在數(shù)據(jù)流計(jì)算機(jī)中,由

于沒有程序計(jì)數(shù)器,使得程序的調(diào)試和診斷變得困難。因?yàn)闆]有共享的存儲(chǔ)器,也就無(wú)法控

制其分配,無(wú)法支持?jǐn)?shù)組、遞歸等操作。

3)歸約機(jī)(ReductionsMachine)

亦稱需求驅(qū)動(dòng),是對(duì)一個(gè)操作結(jié)果的需求而啟動(dòng)的。歸約機(jī)采用一種“惰性計(jì)算”的方式,

操作只有在另一條指令需要這個(gè)操作的結(jié)果時(shí)才執(zhí)行。例如,當(dāng)計(jì)算5+(6x2-10)時(shí),

歸約機(jī)并非先去計(jì)算6x2,而是先計(jì)算整個(gè)算式,碰到(6x2-10)再啟動(dòng)一個(gè)過程去計(jì)算它,

最后碰到需要計(jì)算6x2,計(jì)算后一層層退回,得到整個(gè)算術(shù)的值。由于需求驅(qū)動(dòng)可減少那些

不必要的求值操作,因而可以提高系統(tǒng)效率。

歸約機(jī)是一種面向函數(shù)式語(yǔ)言,或以函數(shù)式語(yǔ)言為機(jī)器語(yǔ)言的機(jī)器。函數(shù)式語(yǔ)言程序沒

有諸如指令計(jì)數(shù)器、數(shù)據(jù)存儲(chǔ)器和程序當(dāng)前狀態(tài)之類的概念。這種語(yǔ)言的程序是純數(shù)學(xué)意義

上的函數(shù),它作用于程序的輸入,得到的結(jié)果值就是程序的輸出。因此它不具有副作用,保

證了程序各部分的并發(fā)執(zhí)行。

1.1.6處理器性能

計(jì)算機(jī)系統(tǒng)是一個(gè)極其復(fù)雜的系統(tǒng),不同的指令系統(tǒng)、不同的體系實(shí)現(xiàn)方式、不同數(shù)量

的硬件及不同部件的組合,都對(duì)計(jì)算機(jī)的性能造成這樣或那樣的影響。而且不同的應(yīng)用對(duì)處

理器的性能方面有不同的要求。這就要求對(duì)處理器性能評(píng)價(jià)需要綜合考慮,全面地衡量處理

器的性能。

1.影響處理器性能的因素

1)基本字長(zhǎng)

運(yùn)算器進(jìn)行計(jì)算的位數(shù)稱為基本字長(zhǎng)。字長(zhǎng)越長(zhǎng),處理器計(jì)算的精度就越高,復(fù)雜度也

越高。這是因?yàn)榛咀珠L(zhǎng)增加不但要增加運(yùn)算器的復(fù)雜度,而且需要同時(shí)增加寄存器和總線

的寬度。

2)數(shù)據(jù)通路寬度

數(shù)據(jù)通路寬度指的是數(shù)據(jù)總線一次所能并行傳送的位數(shù)。它體現(xiàn)了信息的傳送能力,從

而影響計(jì)算機(jī)的有效處理速度。在處理器內(nèi)部,數(shù)據(jù)通路的寬度一般是基本字長(zhǎng),而外部總

線的數(shù)據(jù)通路寬度則不一定。如果外部數(shù)據(jù)通路寬度小于基本字長(zhǎng),那么運(yùn)算器需要的數(shù)據(jù),

必需多次通過總線從主存?zhèn)鬟f到處理器內(nèi)部。

3)指令系統(tǒng)

不同的指令系統(tǒng)對(duì)處理器的性能也有非常大的影響。在前面已經(jīng)討論過精簡(jiǎn)指令系統(tǒng)和

復(fù)雜指令系統(tǒng)之間的不同。另外,有的處理器對(duì)一些專門的應(yīng)用增加了專門的指令,使得這

些處理器在處理專門任務(wù)時(shí)能夠"得心應(yīng)手

4)時(shí)鐘頻率

通常來說,提高處理器的時(shí)鐘頻率能夠提高系統(tǒng)的性能,因?yàn)樵谕瑯拥臅r(shí)間內(nèi),提高時(shí)

鐘頻率,使得時(shí)鐘周期減少,從而指令的執(zhí)行時(shí)間減少。

5)流水線技術(shù)

處理器使用流水線技術(shù)能夠使不同指令的不同執(zhí)行部分,使用不同的處理單元同時(shí)執(zhí)

行。例如,將一個(gè)指令的取指、移碼、取操作數(shù)、執(zhí)行、寫結(jié)果分別由不同的處理單元處理,

能有效地提高處理器的性能。另外,處理器把這些不同的處理單元在硬件上重復(fù),形成多條

流水線,以期更加提高性能。無(wú)疑,流水線增加了處理器的復(fù)雜度,不但處理單元要分開,

而且需要增加流水線管理部分的電路。

6)內(nèi)部數(shù)據(jù)/指令緩存

使用存儲(chǔ)器內(nèi)部的數(shù)據(jù)或指令緩存,能夠減少處理器訪問較慢的內(nèi)存的次數(shù),從而提高

處理器的性能。緩存當(dāng)然越大越好。在緩存命令失敗時(shí),就需要從主存提取數(shù)據(jù),這個(gè)判斷

需要增加控制電路。如果緩存太小或管理不當(dāng),有可能對(duì)性能造成負(fù)面影響。

2.處理器性能的評(píng)價(jià)

評(píng)價(jià)處理器性能可以是直接給出處理器每條指令的執(zhí)行時(shí)間,或者是指令系統(tǒng)中的指令

執(zhí)行時(shí)間的某種加權(quán)評(píng)價(jià),以及計(jì)算處理器每秒能執(zhí)行多少個(gè)加法指令"個(gè)MIPS(Million

InstructionsPerSecond每秒百萬(wàn)條指令)指的是處理器每秒能完成1x106條指令。

這樣的簡(jiǎn)單評(píng)價(jià)方法隨著計(jì)算機(jī)應(yīng)用的不斷發(fā)展顯得過于簡(jiǎn)單,局限性也日益暴露,由

此很快便出現(xiàn)了改進(jìn)的方法,主要有以下3種。

1)等效指令速度法

這種方法把指令分成若干種不同的類型,分別統(tǒng)計(jì)各種類型的指令在整個(gè)程序中的比例

和執(zhí)行時(shí)間,以此來計(jì)算等效指令速度。

采用固定比率的方法來計(jì)算處理器的執(zhí)行時(shí)間,不能靈活地適應(yīng)不同的程序應(yīng)用存在的

指令頻率不同,不能反映出不同處理器之間數(shù)據(jù)長(zhǎng)度和指令功能強(qiáng)弱對(duì)處理器性能的影響,

同時(shí)也不能反映處理器內(nèi)部數(shù)據(jù)緩存、流水線等對(duì)性能的影響。

2)數(shù)據(jù)處理速度法

這種方法試圖給出處理器的"數(shù)據(jù)處理速度”.這只考慮了不同指令及不同操作數(shù)的平均

長(zhǎng)度對(duì)處理器性能的影響。這種方法主要對(duì)處理器和主存儲(chǔ)器的速度進(jìn)行度量,沒有涉及

Cache,多功能部件等技術(shù)對(duì)性能的影響。

3)核心程序法

這種方法在歸納總結(jié)應(yīng)用程序中,把使用得最為頻繁的那部分程序作為核心程序。即將

這些程序放在不同的處理器上運(yùn)行,運(yùn)行時(shí)間作為不同處理器的性能評(píng)價(jià)依據(jù)。使用精挑細(xì)

選的核心程序,能夠比較全面地評(píng)價(jià)處理器對(duì)某種應(yīng)用程序的性能。與實(shí)際的應(yīng)用程序相比,

核心程序由于比較小,所以緩存利用率就高。

有關(guān)性能評(píng)價(jià)方面的詳細(xì)內(nèi)容,請(qǐng)閱讀本書第3章。

1.2指令系統(tǒng)

指令系統(tǒng)是中央處理器所有指令的集合,也是高級(jí)語(yǔ)言編制的基礎(chǔ)。指令系統(tǒng)的選擇和

確定涉及很多方面,是一個(gè)復(fù)雜的問題。

通常一個(gè)指令可分解為操作碼和地址碼兩個(gè)部分。操作碼確定指令的類型,地址碼確定

指令所要處理的數(shù)據(jù)。根據(jù)地址碼的個(gè)數(shù)可以有4址指令、3址指令,甚至有0址指令。

根據(jù)指令的長(zhǎng)度特點(diǎn),一個(gè)指令系統(tǒng)可能是定長(zhǎng)指令字結(jié)構(gòu),即指令系統(tǒng)中所有的指令

的長(zhǎng)度都相同,特點(diǎn)是控制簡(jiǎn)單。如果指令的長(zhǎng)度不固定,復(fù)雜的指令長(zhǎng)度較長(zhǎng),就是變長(zhǎng)

指令字結(jié)構(gòu),這種結(jié)構(gòu)的指令很容易擴(kuò)展,但是增加了解碼系統(tǒng)的復(fù)雜度。

1.2.1尋址方式

根據(jù)地址碼代表的地址類型,指令系統(tǒng)可以有以下5種。

1.立即尋址

地址碼就是操作數(shù),這種尋址方式不必再次訪問內(nèi)存去取操作數(shù)。當(dāng)然,也無(wú)法修改操

作數(shù)。

2.直接尋址

地址碼就是主存內(nèi)數(shù)據(jù)的絕對(duì)地址,不必做任何換算。不足之處在于尋址范圍有限,地

址碼的位數(shù)限制了尋址空間,而計(jì)算機(jī)的發(fā)展趨勢(shì)是計(jì)算機(jī)擁有越來越大的內(nèi)存。而使用變

長(zhǎng)指令結(jié)構(gòu)可以突破限制,但是該指令會(huì)變得臃腫。

3.寄存器尋址

地址碼的地址是寄存器的地址。與內(nèi)存尋址比較而言,訪問寄存器的速度是非??斓?

所以使用寄存器尋址有非??斓乃俣?。不足之處在于寄存器的數(shù)量和數(shù)據(jù)寬度有限。

4.間接尋址

地址碼指向主存中的數(shù)據(jù),這個(gè)數(shù)據(jù)仍然是一個(gè)地址,這種方式提高了尋址的靈活性,

擴(kuò)大了尋址的范圍。但由于要多次讀主存,速度大為降低。

5.寄存器間接尋址

地址碼保存的是寄存器地址,相對(duì)應(yīng)的寄存器中保存的是數(shù)據(jù)的地址,這樣既快又有靈

活性,是一種廣泛使用的尋址方式。

6.變址尋址

變址尋址,是將地址碼和變址寄存器內(nèi)容相加后形成數(shù)據(jù)的地址。由于變址寄存器能自

動(dòng)修改,因而這種方式對(duì)數(shù)組運(yùn)算、字符串操作等批量數(shù)據(jù)的處理非常有效。

7.基址尋址

與變址尋址類似,是將變址寄存器改成基址寄存器,不同之處在于,基址寄存器的內(nèi)容

是基本不變的,改變的是指令中地址碼的部分內(nèi)容,主要作用是擴(kuò)大尋址空間和再定位。

8.頁(yè)面尋址

頁(yè)面尋址是將主存分組成若干個(gè)區(qū),尋址時(shí)使用區(qū)碼加區(qū)內(nèi)偏移的方式確定位置。

9.相對(duì)尋址

相對(duì)尋址也與變址尋址類似,這時(shí)變址寄存器換成了程序計(jì)數(shù)器。

1.2.2指令類型

從功能來言,常用的指令有如下幾種。

1.數(shù)據(jù)傳送指令

這些指令負(fù)責(zé)數(shù)據(jù)在寄存器和主存之間的傳遞,其中數(shù)據(jù)交換指令是數(shù)據(jù)的雙向移動(dòng),

而堆棧操作指令是專門對(duì)堆棧的PUSH和POP操作。

2.運(yùn)算類指令

包括算術(shù)運(yùn)算、邏輯運(yùn)算、移位運(yùn)算方面的指令。這類指令一般會(huì)改變標(biāo)志寄存器的狀

移位運(yùn)算是一種特殊的運(yùn)算,又分算術(shù)移位、邏輯移位和循環(huán)移位3類。在算術(shù)移位

中左移則在空位補(bǔ)0,右移則補(bǔ)符號(hào)位;邏輯移位無(wú)論左移右移都補(bǔ)0;循環(huán)移位是把移動(dòng)空

位由移出的位來填補(bǔ)的移位,又分帶符號(hào)位移動(dòng)的大循環(huán)和不帶符號(hào)位移動(dòng)的小循環(huán)。

其中算術(shù)左移等于是對(duì)操作數(shù)做乘以2的操作,而算術(shù)右移等于對(duì)操作數(shù)做除以2的

操作。

3.程序控制指令

控制程序流程改變的指令也非常多,包括了條件轉(zhuǎn)移指令、無(wú)條件轉(zhuǎn)移指令、循環(huán)控制

指令、程序調(diào)用和返回指令、中斷指令等。

4.輸入/輸出類指令

這類指令只有輸入/輸出獨(dú)立編碼才需要,對(duì)于統(tǒng)一編碼的部分而言是不需要的。

5.數(shù)據(jù)處理類指令

數(shù)據(jù)處理指令包括一些比較復(fù)雜的指令,如數(shù)據(jù)轉(zhuǎn)換指令、字符串操作指令、壓縮和擴(kuò)

展指令等。

1.2.3CISC和RISC

隨著硬件成本的下降,人們傾向于向中央處理器加入越來越多、越來越復(fù)雜的指令,?同

時(shí),為了兼容老產(chǎn)品,原來的指令也要保留。這樣,整個(gè)指令系統(tǒng)就向著越來越大、越來越

復(fù)雜的趨勢(shì)發(fā)展。在計(jì)算機(jī)處理能力越來越強(qiáng)的同時(shí),中央處理器的設(shè)計(jì)也越來越復(fù)雜,這

無(wú)疑大大增加了設(shè)計(jì)周期,更增加了設(shè)計(jì)失誤的可能性。

事物的另外一個(gè)方面在于,指令的復(fù)雜性和中央處理器功能的增加,似乎不一定是成正

比的。人們發(fā)現(xiàn)在許多方面存在一個(gè)稱為20%~80%的定律,即系統(tǒng)中20%的部分發(fā)揮了

80%的作用。通過對(duì)CISC指令系統(tǒng)的研究,發(fā)現(xiàn)系統(tǒng)在80%的時(shí)間里執(zhí)行的是20%的指

令。

在這種情況下,便出現(xiàn)了精簡(jiǎn)指令設(shè)計(jì)思想。這種計(jì)算機(jī)的指令結(jié)構(gòu)不追求全面和復(fù)雜,

而是只實(shí)現(xiàn)那些經(jīng)常被執(zhí)行的指令一由于指令比復(fù)雜指令結(jié)構(gòu)的計(jì)算機(jī)少得多,所以稱為精

簡(jiǎn)指令計(jì)算機(jī)。

先看著名的公式P=IxCPIxT.

式中:

P:計(jì)算機(jī)執(zhí)行程序所需要的時(shí)間。

I:機(jī)器指令數(shù)。

CPI:平均每條指令所需要的機(jī)器周期數(shù)。

T:每個(gè)機(jī)器周期的時(shí)間。

CISC(ComplexInstructionSetComputer,復(fù)雜指令集計(jì)算機(jī))在指令數(shù)上占優(yōu),而

RISC(ReducedInstructionSetComputer,精簡(jiǎn)指令集計(jì)算機(jī))在CPI上則快得多。這是

兩種結(jié)構(gòu)的兩個(gè)方向。從這個(gè)公式可以發(fā)現(xiàn),在理論上兩者都有優(yōu)勢(shì),即不能認(rèn)為精簡(jiǎn)指令

計(jì)算機(jī)就好,復(fù)雜指令計(jì)算機(jī)就不好。事實(shí)上這兩種設(shè)計(jì)方法很難找到截然不同的界限,而

且在實(shí)際的芯片中,這兩種設(shè)計(jì)方法也有相互滲透的地方。

CISC和RISC的對(duì)比如表1-2所示。

表1-2CISC和RISC的簡(jiǎn)單對(duì)比

CISCRISC

指令條數(shù)多只選取最常見的指令

指令復(fù)雜度高低

指令長(zhǎng)度變化短、固定

指令執(zhí)行周期隨指令變化大大多在一個(gè)機(jī)器周期完成

指令格式復(fù)雜簡(jiǎn)單

尋址方式多少

涉及訪問主存指令多極少,大部分只有存和取兩條指令

通用寄存器數(shù)里一般大里

譯碼方式徵程序控制硬件電路

對(duì)編譯系統(tǒng)要求低高

1.2.4RISC結(jié)構(gòu)特點(diǎn)

1.精簡(jiǎn)指令系統(tǒng)采用硬件布線邏輯控制

不是說硬件方式不夠靈活嗎?確實(shí),對(duì)于復(fù)雜指令系統(tǒng)而言,這是它的致命缺點(diǎn)。但對(duì)

于指令少、格式簡(jiǎn)單的精簡(jiǎn)指令系統(tǒng)而言,采用微程序控制就顯得多余了,而硬件方式占用

元件少的優(yōu)點(diǎn)就體現(xiàn)出來了--騰出的地方可以在中央處理器中放置更多的通用寄存器,同

時(shí),硬件方式的譯碼速度也要快得多。

2.大量通用寄存器

RISC大量減少了對(duì)內(nèi)存的訪問指令。許多精簡(jiǎn)指令計(jì)算機(jī)只有兩條指令與內(nèi)存交換數(shù)

據(jù):LOAD和STORE.計(jì)算的中間結(jié)果放在寄存器中,由于訪問寄存器的速度遠(yuǎn)遠(yuǎn)高于訪問

主存的速度,因而這種減少存儲(chǔ)器訪問次數(shù)的做法提高了精簡(jiǎn)指令計(jì)算機(jī)的效率。

同時(shí),大量的通用寄存器使得可以使用寄存器完成程序調(diào)用的參數(shù)傳遞,這樣在程序調(diào)

用時(shí),減少了對(duì)主存的訪問,而在結(jié)構(gòu)化的程序中,大量使用了程序調(diào)用,這也無(wú)疑也提高

了精簡(jiǎn)指令計(jì)算機(jī)的效率。

精簡(jiǎn)指令計(jì)算機(jī)采用"重疊寄存器窗口技術(shù)”進(jìn)行寄存器的組織,如圖1-5所示。

圖1-5中有3個(gè)過程(過程X、Y和Z),X的輸出是Y的輸入,通過這種方式傳遞參

數(shù),不需要保護(hù)現(xiàn)場(chǎng),從而減少了堆棧的操作。當(dāng)然,這樣的調(diào)用,其層數(shù)是有限制的,層

數(shù)過多甚至是遞歸函數(shù)時(shí),就一定要借助于主存的堆棧。

圖1-5寄存器的組織

3.RISC普遍采用流水線技術(shù)

由于RISC指令結(jié)構(gòu)簡(jiǎn)單,除了訪問主存的指令速度慢之外,其他指令執(zhí)行時(shí)間大多相

同,這有利于發(fā)揮流水線的優(yōu)勢(shì)。同時(shí),大量的寄存器使得編譯優(yōu)化成為可能,可以盡量減

少數(shù)據(jù)相關(guān)的問題,減少流水線閑置時(shí)間。

4.RISC的存儲(chǔ)系統(tǒng)

為了加快主存存取速度,大多數(shù)精簡(jiǎn)指令計(jì)算機(jī)采用了緩存技術(shù),有的更是把指令和數(shù)

據(jù)緩存分開設(shè)置,這樣取指和讀數(shù)可以同時(shí)進(jìn)行。當(dāng)指令或數(shù)據(jù)在緩存中時(shí),就不需要去主

存中提取,如果頻繁地修改某個(gè)地址的數(shù)據(jù),數(shù)據(jù)緩存也能減少寫主存的次數(shù)。顯然緩存越

大,越能減少主存存取次數(shù)。

如果緩存命令失敗,就必須訪問主存,這就增加了控制電路的復(fù)雜性。

5.對(duì)編譯器的影響

精簡(jiǎn)指令系統(tǒng)對(duì)編譯系統(tǒng)的影響有兩個(gè)方面。一方面由于指令簡(jiǎn)單、選擇有限、尋址方

式也少,這樣編譯系統(tǒng)不需要在眾多的指令中選擇最佳指令和指令組合,這就降低了對(duì)編譯

系統(tǒng)的要求。另一方面由于存在大量的通用寄存器,如何充分利用這些寄存器優(yōu)化編譯,使

編譯后的指令代碼更能適應(yīng)流水線的要求,這都對(duì)精簡(jiǎn)指令計(jì)算機(jī)的編譯器提出了更高的要

求。如果沒有編譯器的支持,精簡(jiǎn)指令計(jì)算機(jī)的多寄存器、流水線技術(shù)、移動(dòng)寄存器窗口等

都難以發(fā)揮最佳的作用。

1.3并行處理和并行處理機(jī)

單個(gè)處理器的處理能力總是有限的,但是可以把許多處理器通過特定的方式聯(lián)合起來,

以得到很高的處理能力,解決單個(gè)處理器無(wú)法完成的任務(wù)。戰(zhàn)勝國(guó)際象棋冠軍的“深藍(lán)”計(jì)算

機(jī)是一種32節(jié)點(diǎn)的IBM(SP)計(jì)算機(jī)。每個(gè)節(jié)點(diǎn)的SP使用的是裝有8個(gè)專用的VLSI國(guó)

際象棋處理器的單一微通道卡,總共有256個(gè)處理器并行運(yùn)行。"深藍(lán)”的程序代碼是用C

語(yǔ)言編寫的并在AIX操作系統(tǒng)下運(yùn)行。這種網(wǎng)絡(luò)是可擴(kuò)充的并行系統(tǒng),它能在標(biāo)準(zhǔn)國(guó)際象

棋比賽中為選手每步所分配的3分鐘內(nèi)計(jì)算出500-1000億步。

1.3.1并行性概念

并行,即是兩個(gè)工作在執(zhí)行過程中的事件,在時(shí)間上存在著重疊。

有關(guān)并行嚴(yán)格的定義有如下幾種。

同時(shí)性:多個(gè)事件同時(shí)發(fā)生。

并發(fā)性:多個(gè)事件在同一個(gè)時(shí)間間隔內(nèi)發(fā)生。絕對(duì)同時(shí)是不存在的,只是事件的間隙太

小,以至于不能被機(jī)器識(shí)別。

控制并行:控制并行使多個(gè)操作同時(shí)進(jìn)行,如流水線,它的并行性受到流水線長(zhǎng)度、功

能單元等限制,對(duì)程序員而言,這種并行是透明的。

數(shù)據(jù)并行:數(shù)據(jù)并行是多個(gè)相同的處理單元對(duì)多個(gè)不同的數(shù)據(jù)同時(shí)進(jìn)行相同的處理,這

種方式開發(fā)潛力最大,與控制并行相比,代碼容易編寫和調(diào)試。

粒度:粒度是指進(jìn)程中所含計(jì)算量的尺寸大小,通常使用其中的指令數(shù)作為計(jì)量方式。

時(shí)延:時(shí)延是各子系統(tǒng)之間通信開銷的時(shí)間量度。

并行度:并行度是指在并行計(jì)算機(jī)中,單位時(shí)間內(nèi)執(zhí)行程序的處理單元的數(shù)量。并行性

是個(gè)廣泛的概念,從硬件到軟件各個(gè)層次都在利用并行性,以提高計(jì)算機(jī)性能。

1.3.2并行性等級(jí)

從低到高級(jí)別的并行性如下。

L指令或語(yǔ)句級(jí)

典型粒度(指令數(shù))小于20,一條指令的各微指令同時(shí)運(yùn)行。優(yōu)點(diǎn)是可借助于優(yōu)化的編

譯器,自動(dòng)將源碼編譯成并行指令。

2.循環(huán)級(jí)

如果循環(huán)中的指令不相關(guān),可使之向量化,讓這些指令同時(shí)執(zhí)行。粒度大約不到500

條,是在并行或向量計(jì)算機(jī)運(yùn)行的最優(yōu)程序結(jié)構(gòu)。

以上兩種均認(rèn)為是細(xì)粒度計(jì)算。

3.過程級(jí)和子程序級(jí)

前者的典型粒度小于2000條,后者到幾千條。這種并行性比以上兩種細(xì)粒度級(jí)要困

難,需要分析過程之間的相關(guān)性。目前,還沒有好的編譯器能編譯出好的中粒度或粗粒度程

序。

4.作業(yè)程序級(jí)

對(duì)應(yīng)的是獨(dú)立的程序,粒度數(shù)有幾萬(wàn)條指令。一般由加載程序和操作系統(tǒng)來處理這種級(jí)

別的并行。如時(shí)間輪片法、非占先式、占先式等方法,是操作系統(tǒng)常用的程序并行調(diào)動(dòng)法。

詳細(xì)的討論請(qǐng)參考操作系統(tǒng)部分。

一般粒度越細(xì),并行潛力越大,同時(shí)通信和調(diào)度的開銷也增加。另外,最早硬件只處理

指令內(nèi)部的并行性,而由操作系統(tǒng)等軟件負(fù)責(zé)程序的并行,而現(xiàn)在發(fā)展趨勢(shì)是硬件越來越充

當(dāng)中粒度和粗粒度的并行實(shí)現(xiàn)者,多處理機(jī)就是這樣的例子。

上面討論的是指令執(zhí)行方面的并行性,在數(shù)據(jù)并行性方面也有不同的級(jí)別,從低到高分

別是:一次只對(duì)一個(gè)字的一位進(jìn)行處理位串字串方式;一次對(duì)一個(gè)字的全部位進(jìn)行處理位并

字串方式;一次對(duì)許多字的同一位進(jìn)行處理的位串字并方式,對(duì)許多字的全部或部分位進(jìn)行

處理的位并字并方式。

1.3.3提高計(jì)算機(jī)并行性的措施

分時(shí)也可以看做是一種并行技術(shù)。在宏觀上看它實(shí)現(xiàn)各種任務(wù)是并行的,但在實(shí)際上是

把CPU時(shí)間切片,即各工作之間占一定時(shí)間片,這雖然沒有時(shí)間上的重疊,但在各種任務(wù)

不需要真正完全占用資源的情況下,特別有效和具備低成本的優(yōu)勢(shì)。這樣的例子有很多,如

DMA(直接存儲(chǔ)器存?。┛刂破骱椭醒胩幚砥鲗?shí)現(xiàn)對(duì)總線控制的切換方式之一就是分時(shí)一

當(dāng)操作系統(tǒng)在單個(gè)中央處理器的硬件系統(tǒng)上實(shí)現(xiàn)各種任務(wù)的并行時(shí),其實(shí)也是采用分時(shí)的方

法。

分時(shí)可能是各部分平均占有時(shí)間片,也可以是占有的時(shí)間片資源各不相同,優(yōu)先級(jí)高的

占有時(shí)間片多。分時(shí)處理也稱為資源共享。

更多的并行技術(shù)是以空間換時(shí)間,使用多個(gè)功能單元同時(shí)工作。多個(gè)功能單元可能是同

類型的,如陣列機(jī)。這種方式也稱為資源重復(fù)。資源重復(fù)也經(jīng)常用于提高系統(tǒng)的可靠性,隨

著硬件價(jià)格的不斷降低,資源重復(fù)越來越多地用在了提高計(jì)算機(jī)并行處理能力上。

多個(gè)功能單元也可能是不同類型的,如流水線技術(shù)將取指、譯碼、執(zhí)行等工作分開,形

成流水線。這種方式也稱為時(shí)間重疊,在同一個(gè)時(shí)間內(nèi)完成任務(wù)的不同功能。

并行性仍然在不停的發(fā)展之中,在輸入/輸出處理中的中斷技術(shù)、DMA技術(shù)、通道技

術(shù)都在不斷提高計(jì)算機(jī)和外設(shè)處理并行性,在指令處理方面的流水線技術(shù)、并行計(jì)算機(jī)、多

處理機(jī)、大規(guī)模并行處理機(jī)(MassivelyParallelProcessing,MPP)、對(duì)稱多處理機(jī)

(SymmetricalMulti-Processing,SMP)的不斷發(fā)展也在各個(gè)方面提高計(jì)算機(jī)的并行處理

能力。其中MPP和SMP集中幾千個(gè)中央處理器進(jìn)行協(xié)作計(jì)算。在軟件方面,編譯系統(tǒng)對(duì)

指令的優(yōu)化、操作系統(tǒng)對(duì)任務(wù)的調(diào)度都在提高系統(tǒng)的并行性。

在提高計(jì)算機(jī)并行性的各方面中,硬件的發(fā)展最迅速,而主要的問題是集中在軟件和應(yīng)

用方面。編譯器對(duì)粗粒度的并行性還沒有好的解決方法才梟作系統(tǒng)對(duì)多處理器的支持還有限,

特別是對(duì)并行計(jì)算的編程仍然十分困難和費(fèi)力。

1.3.4并行處理機(jī)

并行處理機(jī)是基于SIMD結(jié)構(gòu)的,即以增加硬件資源,同時(shí)對(duì)多個(gè)數(shù)據(jù)進(jìn)行類似的處

理,從而提高速度的方法可以是簡(jiǎn)單地增加處理單元的個(gè)數(shù),所以潛力大。

并行處理機(jī)只有一個(gè)控制單元,但有多個(gè)處理單元。在控制單元的控制下,所有處理單

元進(jìn)行同樣的運(yùn)算,不同的是進(jìn)行運(yùn)算的數(shù)據(jù)不同。如果是非并行計(jì)算的程序部分,則由控

制器完成。從這里我們可以看出,并行處理機(jī)特別適用于矩陣計(jì)算。所以,并行處理機(jī)也稱

為矩陣計(jì)算機(jī)。

1.并行處理機(jī)的性能參數(shù)

處理單元個(gè)數(shù)。

控制器的指令系統(tǒng)??刂破魈幚泶刑幚碇噶詈蜆?biāo)量類指令。

運(yùn)算器的指令系統(tǒng)。包括算術(shù)、邏輯運(yùn)算、數(shù)據(jù)尋位、屏蔽等數(shù)據(jù)操作指令。這些指令

是由控制器傳送到處于“活躍”狀態(tài)的運(yùn)算器上,并由運(yùn)算器執(zhí)行。這些指令是向量類指令。

屏蔽方案集。控制器如何充許或禁止某個(gè)運(yùn)算器。

數(shù)據(jù)尋位功能集。運(yùn)算器之間通信的設(shè)置模式的集合。

2.并行處理機(jī)的分類

按照存儲(chǔ)器的分布,并行處理機(jī)分為共享式并行處理機(jī)和分布式存儲(chǔ)并行處理機(jī),集中

和分布看來是計(jì)算機(jī)系統(tǒng)永恒的兩個(gè)方面。集中意味著緊耦合,而分布意味著松耦合。

1)分布式存儲(chǔ)并行處理機(jī)

分布式存儲(chǔ)并行處理機(jī)的結(jié)構(gòu)如圖1-6所示。

PE:處解元

CU:控制^元

LM:本地存儲(chǔ)單元

圖1-6分布式存儲(chǔ)并行處理機(jī)的結(jié)構(gòu)

在分布式存儲(chǔ)并行處理機(jī)中,主要是要使得每個(gè)處理單元需要使用的數(shù)據(jù)盡量在本地存

儲(chǔ)單元中,如果需要其他處理單元的數(shù)據(jù),就不得不需要借助于互聯(lián)網(wǎng)絡(luò)或者是控制器的轉(zhuǎn)

發(fā)了。

2)共享式分布處理機(jī)

共享式分布處理機(jī)的結(jié)構(gòu)如圖1-7所示。

校制單元之間互信息

cu:校制單元

PE:處理單元

SM:共享存儲(chǔ)爵

圖1-7共享式分布處理機(jī)結(jié)構(gòu)

該結(jié)構(gòu)與分布式存儲(chǔ)并行處理機(jī)不同的是增加了共享的存儲(chǔ)器,共享的存儲(chǔ)器難免在不

同的處理單元訪問時(shí)發(fā)生沖突,這就需要設(shè)計(jì)一些算法來分配存儲(chǔ)器中的數(shù)據(jù),所以共享存

儲(chǔ)器并行計(jì)算機(jī)的互聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)也更加復(fù)雜。

3.并行處理機(jī)的特點(diǎn)

1)強(qiáng)大的向量運(yùn)算能力

并行計(jì)算機(jī)通常是專用計(jì)算機(jī),它在有限差分、矩陣、信號(hào)處理等向量計(jì)算和矩陣計(jì)算

方面有特別的優(yōu)勢(shì),人們能夠通過數(shù)學(xué)理論和算法把這些計(jì)算轉(zhuǎn)換成對(duì)數(shù)組或者向量的處

理,然后利用并行處理計(jì)算機(jī)的多個(gè)處理單元,對(duì)數(shù)組或向量的不同數(shù)據(jù)部分進(jìn)行相同的操

作過程,就能夠獲得很高的運(yùn)算速度。所以,并行計(jì)算機(jī)特別適合于大量的運(yùn)算。

2)使用資源重復(fù)的并行方式

并行計(jì)算機(jī)的各個(gè)運(yùn)算器的運(yùn)算是在控制器的操作下"同時(shí)”進(jìn)行的。提高大型計(jì)算的運(yùn)

算速度在于增加運(yùn)算器的數(shù)量,而不是并行計(jì)算機(jī)的復(fù)雜程度,所以對(duì)于并行計(jì)算機(jī)適合的

特定領(lǐng)域,并行計(jì)算機(jī)能夠處理非常龐大的運(yùn)算。

3)標(biāo)量運(yùn)算的作用

在并行處理計(jì)算機(jī)中,不可避免地仍然存在著普通的標(biāo)量運(yùn)算和程序控制,這些是由控

制器來完成的,所以控制器的性能對(duì)并行處理機(jī)的性能也有很大的影響。

4.編譯系統(tǒng)

具備識(shí)別高級(jí)語(yǔ)言中的向量計(jì)算的編譯系統(tǒng),對(duì)提高程序的通用性很有幫助。

1.3.5雙機(jī)系統(tǒng)

雙機(jī)系統(tǒng)是用兩個(gè)主機(jī)來代替一個(gè)主機(jī)的工作。雙機(jī)系統(tǒng)主要可以提高系統(tǒng)并行性,也

可以一臺(tái)計(jì)算機(jī)作為工作機(jī),另外一臺(tái)作為熱備份。從外部訪問的客戶端而言,雙機(jī)系統(tǒng)是

透明的,客戶端認(rèn)為只有一臺(tái)機(jī)器在服務(wù)。

要實(shí)現(xiàn)雙機(jī)系統(tǒng),需要一系列軟硬件支持。

從硬件來說,雙機(jī)系統(tǒng)至少要有共享的外存儲(chǔ)器,其中一臺(tái)機(jī)器所做的工作結(jié)果能被另

外一臺(tái)訪問。雙機(jī)系統(tǒng)還需要兩個(gè)機(jī)器之間的聯(lián)絡(luò)線,通過聯(lián)絡(luò)線雙方得到對(duì)方的狀態(tài)。不

使用網(wǎng)絡(luò)作為聯(lián)絡(luò)線是因?yàn)榫W(wǎng)絡(luò)有可能中斷。

從軟件來說,雙機(jī)系統(tǒng)需要一個(gè)支持共享外存儲(chǔ)器的底層軟件,這個(gè)軟件仲裁決定哪一

臺(tái)機(jī)器使用共享外存儲(chǔ)器。還需要一個(gè)對(duì)外的接受連接軟件,這個(gè)軟件仲裁哪臺(tái)機(jī)器處理外

部的連接請(qǐng)求。狀態(tài)管理軟件監(jiān)視雙方的狀態(tài)并及時(shí)對(duì)出現(xiàn)的問題進(jìn)行處理。

1.4多處理機(jī)系統(tǒng)

并行處理機(jī)只有一個(gè)控制器,由這個(gè)控制器控制所有的運(yùn)算器,而多處理機(jī)則有多個(gè)控

制器,分別控制對(duì)應(yīng)的運(yùn)算器。

多處理機(jī)屬于MIMD體系,它有多個(gè)處理單元,同時(shí)對(duì)不同的數(shù)據(jù)進(jìn)行不同的處理;

指令流和數(shù)據(jù)流都是并行,這決定了多處理機(jī)是為解決復(fù)雜問題而設(shè)計(jì)的。這些復(fù)雜問題包

括了我們熟悉的天氣預(yù)報(bào),由于影響天氣變化的因素太多,所以想做預(yù)報(bào)就必須給計(jì)算機(jī)系

統(tǒng)加入大量的運(yùn)算過程,而尷尬的情況是,當(dāng)計(jì)算的時(shí)間比要預(yù)報(bào)的時(shí)間還要長(zhǎng)時(shí),就變成

了驗(yàn)證而不是預(yù)報(bào)了。我們已經(jīng)發(fā)現(xiàn)天氣預(yù)報(bào)準(zhǔn)多了,還能夠提前發(fā)布“黃金周”的天氣預(yù)報(bào),

這也是計(jì)算機(jī)發(fā)展的一個(gè)佐證吧。

從多個(gè)處理器之間的關(guān)系而言,多處理機(jī)又分為對(duì)稱多處理機(jī)和非對(duì)稱多處理機(jī)。如果

所有處理機(jī)都能同樣訪問所存外圍設(shè)備,就是對(duì)稱的多處理機(jī);相反,只有部分處理機(jī)(稱

主處理機(jī))能執(zhí)行操作系統(tǒng),而附屬處理機(jī)在主處理機(jī)的監(jiān)督和控制下,就是非對(duì)稱的多處

理機(jī)。并行處理機(jī)不需要這樣的分類,它的控制單元只有一個(gè),而屬于被控制的處理單元有

很多。所有處理單元的地位是一樣的。

1.4.1訪問存儲(chǔ)器方式

多處理機(jī)有多個(gè)處理單元,這就產(chǎn)生了這些處理單元如何訪問內(nèi)存的問題。主要有兩種

方式:共享存儲(chǔ)方式和分布式存儲(chǔ)方式。共享存儲(chǔ)訪問方式又稱為緊耦合系統(tǒng),分布式存儲(chǔ)

方式又稱為松耦合系統(tǒng)。

共享存儲(chǔ)方式多處理機(jī)有公共的共享存儲(chǔ)器。多個(gè)處理機(jī)能夠訪問共享的存儲(chǔ)器,并使

用共享的存儲(chǔ)器傳遞共享公共信息及參數(shù)等。其特點(diǎn)是容易管理和利用資源,常常適用于多

用戶的一般應(yīng)用和分時(shí)應(yīng)用,也能加快大程序的運(yùn)行速度,但處理機(jī)數(shù)目有限,不易擴(kuò)充。

各個(gè)處理機(jī)對(duì)共享存儲(chǔ)器的訪問方式有:均勻存儲(chǔ)器存取、非均勻存儲(chǔ)器存取和只有高

速緩存的多處理機(jī)。

1.均勻存儲(chǔ)器存取(Uniform-MemoryAccess.UMA)

采用這種方式訪問共享存儲(chǔ)器的多處理機(jī),所有處理機(jī)對(duì)所有存儲(chǔ)單元有相同的存取時(shí)

間,所以稱為“均勻",結(jié)構(gòu)如圖1-8所示。

校制單元之間互信息

cu:校制單元

PE:處理單元

SM:共享存儲(chǔ)籌

圖1-8均勻存儲(chǔ)器存取的多處理機(jī)

2.非均勻存儲(chǔ)器存取

與均勻存儲(chǔ)器存取不同的是,在這種多處理機(jī)中,不同的處理機(jī)訪問不同存儲(chǔ)單元的存

取時(shí)間是不同的。

這就決定了有多種實(shí)現(xiàn)方式,典型的是共享本地存儲(chǔ)方式,結(jié)構(gòu)如圖L9所示。顯然

多個(gè)處理機(jī)訪問本地存儲(chǔ)很快,而訪問其他處理機(jī)的存儲(chǔ)器則需要經(jīng)過互聯(lián)網(wǎng)絡(luò)。

cu:控制單元

PE=處理及元

槌存他地元

圖1-9共享本地存儲(chǔ)式

還有層次機(jī)群,層次機(jī)群擴(kuò)展了上面的結(jié)構(gòu),增加了全局共享存儲(chǔ)器,其結(jié)構(gòu)如圖1-10

所示。

CTT.「m.ILMKBM

圖1-10層次機(jī)群

非均勻存儲(chǔ)多處理機(jī)的特點(diǎn)是:容易擴(kuò)充,但復(fù)雜的數(shù)據(jù)結(jié)構(gòu)難以在處理機(jī)之間傳遞。

3.只有高速緩存的多處理機(jī)

這是非均勻存儲(chǔ)訪問處理機(jī)的一個(gè)特例,外理機(jī)內(nèi)沒有內(nèi)置的或共享的存儲(chǔ)器,只有高

速緩存,數(shù)據(jù)從哪里來是由目錄模塊決定的,結(jié)構(gòu)如圖L11所示。

cu.控制單元

PE處密單元

圖1-11只有高速緩存的多處理機(jī)

4.分布式存儲(chǔ)多處理機(jī)

與共享存儲(chǔ)器訪問方式不同,這種方式是每個(gè)處理機(jī)獨(dú)占本地存儲(chǔ)器,各處理機(jī)通過信

息網(wǎng)絡(luò)相連。這更像計(jì)算機(jī)網(wǎng)絡(luò)的結(jié)構(gòu),如圖1-12所示。

PE:進(jìn)息單元

CU=控刎/元

LM:內(nèi)餐存愜能無(wú)

圖1-12分布式存儲(chǔ)多處理機(jī)

1.4.2互聯(lián)方式

以上講述的“互聯(lián)網(wǎng)絡(luò)”只是一個(gè)方框,其實(shí)多處理機(jī)和共享存儲(chǔ)器、輸入/輸出設(shè)備等

之間的通信性能是多處理機(jī)性能的重要一環(huán),主要的互聯(lián)方式有以下4種。

1.總線

總線方式是最簡(jiǎn)單的方法??偩€按照層次可分為:處理機(jī)板上的本地總線,為所有插入

板提供信息通路的底板總線、同輸入/輸出外設(shè)交換信息的輸入/輸出總線??偩€方式適用于

多處理機(jī)個(gè)數(shù)少于100的系統(tǒng),這主要是受到了組裝技術(shù)的限制,而數(shù)據(jù)的傳輸率受到總

線帶寬和速度的限制。

2.開關(guān)網(wǎng)絡(luò)和交叉開關(guān)

開關(guān)網(wǎng)絡(luò)為處理機(jī)和共享存儲(chǔ)器之間提供了一個(gè)動(dòng)態(tài)互聯(lián)通路,如圖>13所示。

處理機(jī)SM~SM:共享存脩器

開關(guān)網(wǎng)絡(luò)

SM

圖1-13開關(guān)網(wǎng)絡(luò)

如果中間的開關(guān)網(wǎng)絡(luò)同時(shí)連接到達(dá)一定的數(shù)量后,不能再容納新的連接,那么這種網(wǎng)絡(luò)

就是阻塞網(wǎng)絡(luò)。

交叉開關(guān)提供了非阻塞網(wǎng)絡(luò)的連接,它使用一組開關(guān)陣列將處理機(jī)和共享存儲(chǔ)器連接,

如圖1-14所示。

SM:共享存儲(chǔ)爵

P:處理機(jī)

圖1-14交叉開關(guān)

每個(gè)交叉的節(jié)點(diǎn)都是開關(guān),可以連接或斷開,這樣以空間矩陣來?yè)Q時(shí)間的方式需要使用

大量的連線和交叉點(diǎn)開關(guān),所以只有處理機(jī)和共享存儲(chǔ)器數(shù)目較少時(shí)才可能使用這種方式,

而且一旦建成,便很難擴(kuò)充。

3.開關(guān)樞紐

與交叉開關(guān)不同的是,開關(guān)樞紐不使用交叉矩陣這樣龐大的硬件結(jié)構(gòu),它由仲裁單元和

開關(guān)單元組成。仲裁單元完成沖突處理,開關(guān)單元完成連接。其方式和通信中的交換機(jī)有些

相似。

4.多端口存儲(chǔ)器

這事實(shí)上是將交叉點(diǎn)仲裁邏輯移動(dòng)到存儲(chǔ)器去控制的方法,如圖1-15所示。

SM:共享存儲(chǔ)器

F:處理機(jī)

圖1-15多端口存儲(chǔ)器

每個(gè)存儲(chǔ)器模塊有多個(gè)存取端口,由存儲(chǔ)器負(fù)責(zé)分解多個(gè)處理機(jī)的沖突請(qǐng)求。這種存儲(chǔ)

器模式的成本和交叉開關(guān)類似,也需要大量的連線。而且存儲(chǔ)器端口數(shù)目是固定的,一旦開

始生產(chǎn)之后就無(wú)法增加。

1.4.3同步

如果多機(jī)系統(tǒng)存在共享主存,當(dāng)不同的處理器需要處理相同存儲(chǔ)單元的數(shù)據(jù)時(shí),就會(huì)引

起沖突,這時(shí)需要使用同步技術(shù)來保證操作的正常執(zhí)行。

1.測(cè)試與設(shè)置

使用測(cè)試與設(shè)置的方法,可對(duì)多個(gè)處理器訪問的主存單元設(shè)置一個(gè)“信號(hào)燈",當(dāng)某個(gè)處

理器需要寫該單元時(shí),先查看信號(hào)燈,如果允許寫,則這個(gè)處理器設(shè)置信號(hào)燈為不能操作的

狀態(tài),然后開始寫操作。當(dāng)寫操作完成時(shí),則放開信號(hào)燈。如果發(fā)現(xiàn)信號(hào)燈是不允許寫的狀

態(tài),則這個(gè)處理器過程必須以某種方式等待信號(hào)燈的釋放。

當(dāng)存在多個(gè)處理器需要同時(shí)訪問主存單元時(shí),這些處理器只能以串行的方式來處理。處

理器進(jìn)行串行處理的能力稱為:MSYPS,即處理器一秒內(nèi)能執(zhí)行的串行程序數(shù),它的速度是

MIPS1/5-1/10.

當(dāng)某個(gè)處理器發(fā)現(xiàn)需要操作的主存單元不能操作時(shí),它有兩種方式,一種是重復(fù)測(cè)試,

另外一種是該任務(wù)進(jìn)入待操作的隊(duì)列。當(dāng)該主存單元可以操作時(shí),按照隊(duì)列的次序,選擇下

一個(gè)操作的處理器任務(wù)。重復(fù)測(cè)試基本上是在浪費(fèi)處理器的時(shí)間,而且,不斷地重復(fù)測(cè)試會(huì)

加劇對(duì)信號(hào)燈操作的頻率,甚至使得釋放信號(hào)燈的程序等待。而隊(duì)列處理讓處理器在等待時(shí)

間能處理一些其他工作。另外一方面是,任務(wù)的入隊(duì)和出隊(duì)都非常消耗資源,而且出隊(duì)和入

隊(duì)的操作也要涉及對(duì)共享主存單元的訪問,這個(gè)訪問同樣會(huì)出現(xiàn)同步的問題。

2.加1和減1指令

測(cè)試和設(shè)置方法適合于對(duì)長(zhǎng)度為1的主存單元進(jìn)行訪問控制。對(duì)于一片區(qū)域的主存單

元的控制可以使用加1減1指令的同步技術(shù)。使用這個(gè)方法,處理器對(duì)主存加1減1的指

令必須具備不可中斷的特性。這里的信號(hào)燈不是一個(gè)可以操作與否的開關(guān),而是返回一個(gè)存

儲(chǔ)單元的全部?jī)?nèi)容。先把信號(hào)燈設(shè)置一個(gè)非負(fù)數(shù),當(dāng)一個(gè)處理器需要訪問長(zhǎng)度為X的共享

區(qū)域中的某個(gè)單元時(shí),先對(duì)信號(hào)燈進(jìn)行減1操作,如果減1后,信號(hào)燈是一個(gè)非負(fù)數(shù),則

認(rèn)為可以訪問。當(dāng)訪問結(jié)束后進(jìn)行加1操作。如果發(fā)現(xiàn)減1后信號(hào)燈為負(fù)數(shù),則說明不能

再容納更多的處理器進(jìn)行操作了,則立即進(jìn)行加1操作,并進(jìn)入等待,這與測(cè)試和設(shè)置中

的方法是一樣的。

3.比較交換指令

與上面的兩種使用信號(hào)燈的方法不同,使用比較交換指令的同步方法不需要對(duì)共享數(shù)據(jù)

設(shè)置信號(hào)燈,也就不必加鎖。當(dāng)一個(gè)處理器處理完數(shù)據(jù),需要將數(shù)據(jù)寫入共享主存時(shí),先比

較一下該主存單元的數(shù)據(jù)和處理前讀到的數(shù)據(jù)是否相同,如果相同則直接將結(jié)果寫入,如果

不同則按照新的值重新計(jì)算處理。

這種方式最大的好處在于不需要加鎖,能夠明顯提升MSYPS值。但是它不能判斷原值

在經(jīng)過了其他處理器一系列修改后,又恢復(fù)到原來的值的情況。

4.取和加指令

這種方法試圖給出一種不需要加鎖,也可以并行處理的方式。它是把增量值加到共享主

存單元上。從理論上來說,這種方式適合于許多處理器同時(shí)處理同一個(gè)共享內(nèi)存單元時(shí),它

比需要不斷重復(fù)測(cè)試的其他方法更加有效。同樣,這種支持并行的指令也使得需要考慮的各

種情況大為增加,更加難以實(shí)現(xiàn)。

1.4.4多處理機(jī)特點(diǎn)

多處理機(jī)的特點(diǎn)就是"復(fù)雜",體現(xiàn)在以下5個(gè)方面。

L結(jié)構(gòu)復(fù)雜性

書中提及的多處理機(jī)結(jié)構(gòu)只是有代表性的幾種,為了適應(yīng)復(fù)雜和各種各樣需要解決的問

題,多處理機(jī)之間的互聯(lián)網(wǎng)絡(luò)、數(shù)據(jù)傳遞的種類相當(dāng)多。由于這種復(fù)雜性,所以多處理機(jī)的

數(shù)量還無(wú)法大量增加。

2.程序并行性識(shí)別

與流水線及并行處理機(jī)不同,多處理機(jī)的并行性不再是細(xì)粒度并行,而是中、粗粒度并

行,是在過程和子程序級(jí)別以上的并行。如何識(shí)別程序并行性是非常困難的。

3.需要專門的并行指令

在程序中需要專門的一種控制并發(fā)指令。這種指令用來表示可以并發(fā)執(zhí)行的多個(gè)程序段

之間的并發(fā)關(guān)系,并且可以控制它們并發(fā)執(zhí)行。這樣,在一個(gè)任務(wù)執(zhí)行的時(shí)候,可以產(chǎn)生一

些其他任務(wù)和這個(gè)任務(wù)并發(fā)執(zhí)行,這稱為并行任務(wù)的派生。這種派生同樣復(fù)雜,隨程序的性

質(zhì)及程序的流程不同而有不同的變化。

4.同步措施

在并發(fā)的各個(gè)處理機(jī)執(zhí)行不同的程序或程序段中,經(jīng)常會(huì)存在數(shù)據(jù)往來或者控制依賴,

這種相互關(guān)系需要專門的同步措施來調(diào)節(jié)不同的處理機(jī)執(zhí)行過程和執(zhí)行內(nèi)容。當(dāng)然,最好是

能盡量減少不同處理機(jī)運(yùn)行程序的依賴性,做到人們經(jīng)常提的"高內(nèi)聚,低耦合”.

5.資源分配和任務(wù)調(diào)度

多處理機(jī)的各個(gè)處理機(jī)執(zhí)行的并發(fā)任務(wù)之間需要的資源變化很復(fù)雜,各個(gè)處理機(jī)執(zhí)行的

情況也各不相同,資源分配和任務(wù)調(diào)度非常困難。

1.5輸入/輸出及其控制

曾經(jīng)在科幻作品中有大膽的設(shè)想:給玻璃瓶中的大腦施加視覺、聽覺、觸覺等信號(hào),這

個(gè)大腦能夠意識(shí)到自己是在玻璃瓶中而不是在現(xiàn)實(shí)中嗎?

借助于輸入、輸出設(shè)備,我們才能"操縱計(jì)算機(jī)“和“知道它在工作”.

1.5.1主要輸入/輸出設(shè)備

計(jì)算機(jī)的輸入/輸出設(shè)備品種繁多,主要有如下幾種。

1.紙帶機(jī)、卡片機(jī)

這都是“古老的"大型計(jì)算機(jī)的輸入設(shè)備,機(jī)器指令以打孔等方式存在于紙帶、卡片上,

由紙帶機(jī)和卡片機(jī)輸入計(jì)算機(jī),以后人們可能只能從博物館看到這些設(shè)備。

2.鍵盤、鼠標(biāo)

鍵盤負(fù)責(zé)輸入字符,鼠標(biāo)負(fù)責(zé)指示位置,進(jìn)行選擇或點(diǎn)取等操作。在嵌入式系統(tǒng)中,鍵

盤往往簡(jiǎn)化成少數(shù)的幾個(gè)鍵。手寫筆是鼠標(biāo)的擴(kuò)展。

3.顯示器

顯示器是人們最熟悉的電腦輸出設(shè)備,現(xiàn)在越來越多的從業(yè)人員工作時(shí)的大部分時(shí)間是

盯著顯示器度過的。顯示器正向著越來越大、越來越清晰的方向發(fā)展,其類型分為CRT顯

示器和液晶顯示器兩類。在嵌入式系統(tǒng)中顯示器往往簡(jiǎn)化為小屏幕CD或數(shù)碼管。觸摸屏實(shí)

際上是顯示器和鼠標(biāo)的結(jié)合體。

4.外存

外存是主存的輔助和延伸,有軟盤、硬盤、光存儲(chǔ)器、磁帶機(jī)、閃存等。

5.打印機(jī)

打印機(jī)有針打、噴墨、激光打印機(jī)。繪圖儀是一種特殊的打印機(jī),專門用于大幅面的圖

形精確輸出。

6.圖形圖像攝影輸入設(shè)備

這些是新興的輸入設(shè)備,包括掃描儀、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)等。這些設(shè)備能夠把圖像

攝影等信息輸入計(jì)算機(jī),極大地豐富了個(gè)人計(jì)算機(jī)在普通家庭的作用。圖形圖像已經(jīng)形成了

TWAINS標(biāo)準(zhǔn)接口,軟件通過這個(gè)標(biāo)準(zhǔn)接口,能與各種不同的圖像輸入設(shè)備進(jìn)行交互。數(shù)

字?jǐn)z像機(jī)是通過USB,1394或者專用的視頻捕捉設(shè)備與個(gè)人計(jì)算機(jī)進(jìn)行交互的。

1.5.2輸入/輸出控制器

由于外設(shè)的復(fù)雜多樣性(控制方式、數(shù)據(jù)傳輸速率、數(shù)據(jù)格式也各不相同),同時(shí)不斷

有新類型的外設(shè)出現(xiàn),這使得很難使用中央處理器來和它們直接打交道。同時(shí)這些外設(shè)的數(shù)

據(jù)傳送速度往往遠(yuǎn)遠(yuǎn)低于系統(tǒng)總線的速度,因而不適合把它們直接掛在系統(tǒng)總線上。

輸入/輸出控制器用來協(xié)調(diào)和控制數(shù)據(jù)的輸入/輸出,其具體功能包括緩沖鎖存數(shù)據(jù)、地

址譯碼、傳遞命令、碼制轉(zhuǎn)換、電平轉(zhuǎn)換等。其結(jié)構(gòu)如圖1-16所示。

圖1-16輸入/輸出控制器

數(shù)據(jù)寄存器:CPU或外設(shè)數(shù)據(jù)的緩沖。

狀態(tài)寄存器:向中央處理器指示控制器和外設(shè)的狀態(tài)。

控制寄存器:由中央處理器寫入該輸入/輸出控制器的識(shí)別的指令,指示輸入/輸出控制

器去和外設(shè)交互,將數(shù)據(jù)寄存器的內(nèi)容寫入外設(shè),或者將外設(shè)的數(shù)據(jù)寫入數(shù)據(jù)寄存器,并將

此過程的狀態(tài)寫入狀態(tài)寄存器。

控制電路:是輸入/輸出控制的核心,負(fù)責(zé)輸入/輸出控制器的行為。

1.5.3外設(shè)的識(shí)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論