高級(jí)計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)點(diǎn).doc_第1頁(yè)
高級(jí)計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)點(diǎn).doc_第2頁(yè)
高級(jí)計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)點(diǎn).doc_第3頁(yè)
高級(jí)計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)點(diǎn).doc_第4頁(yè)
高級(jí)計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)點(diǎn).doc_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念多級(jí)層次結(jié)構(gòu)從計(jì)算機(jī)語(yǔ)言的角度,把計(jì)算機(jī)系統(tǒng)按功能劃分成多級(jí)層次結(jié)構(gòu)。虛擬機(jī)器由軟件實(shí)現(xiàn)的機(jī)器。解釋語(yǔ)言實(shí)現(xiàn)的一種基本技術(shù)。每當(dāng)一條N+1級(jí)指令被譯碼后,就直接去執(zhí)行一串等效的N級(jí)指令,然后再去取下一條N+1級(jí)的指令,依此重復(fù)進(jìn)行。翻譯語(yǔ)言實(shí)現(xiàn)的一種基本技術(shù)。先把N+1級(jí)程序全部變換成N級(jí)程序后,再去執(zhí)行新產(chǎn)生的N級(jí)程序,在執(zhí)行過(guò)程中N+1級(jí)程序不再被訪問(wèn)。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)程序員所看到的計(jì)算機(jī)的屬性,即概念性結(jié)構(gòu)與功能特性。經(jīng)典計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)概念的實(shí)質(zhì)計(jì)算機(jī)系統(tǒng)中軟、硬件界面的確定,其界面之上的是軟件的功能,界面之下的是硬件和固件的功能。透明性在計(jì)算機(jī)技術(shù)中,對(duì)本來(lái)存在的事物或?qū)傩?,但從某種角度看又好象不存在的概念稱為透明性。計(jì)算機(jī)組成計(jì)算機(jī)系統(tǒng)的邏輯實(shí)現(xiàn)。計(jì)算機(jī)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)的物理實(shí)現(xiàn)。馮氏分類法馮氏分類法是用系統(tǒng)的最大并行度對(duì)計(jì)算機(jī)進(jìn)行分類。它是由馮澤云先生于1972年提出的。最大并行度計(jì)算機(jī)系統(tǒng)在單位時(shí)間內(nèi)能夠處理的最大的二進(jìn)制位數(shù)??梢杂闷矫嬷苯亲鴺?biāo)系中的一個(gè)點(diǎn)代表一個(gè)計(jì)算機(jī)系統(tǒng),其橫坐標(biāo)表示字寬(n位),縱坐標(biāo)表示一次能同時(shí)處理的字?jǐn)?shù)(m字)。mn就表示了其最大并行度。Flynn分類法按照指令流和數(shù)據(jù)流的多倍性進(jìn)行分類,它是M.J.Flynn于1966年提出的。指令流機(jī)器執(zhí)行的指令序列。數(shù)據(jù)流由指令流調(diào)用的數(shù)據(jù)序列。多倍性在系統(tǒng)受限的部件上,同時(shí)處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大數(shù)目。以經(jīng)常性事件為重點(diǎn)對(duì)于大概率事件(最常見(jiàn)的事件),賦予它優(yōu)先的處理權(quán)和資源使用權(quán),以獲得全局的最優(yōu)結(jié)果。系統(tǒng)的加速比對(duì)系統(tǒng)中的某些部件進(jìn)行改進(jìn),改進(jìn)后的系統(tǒng)性能與改進(jìn)前的系統(tǒng)性能之比。Amdahl定律加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中所占的重要性??筛倪M(jìn)比例在改進(jìn)前的系統(tǒng)中,可改進(jìn)部分的執(zhí)行時(shí)間在總的執(zhí)行時(shí)間中所占的比例。部件加速比可改進(jìn)部分改進(jìn)以后性能提高的倍數(shù)。它是改進(jìn)前所需的執(zhí)行時(shí)間與改進(jìn)后執(zhí)行時(shí)間的比。程序的局部性原理程序在執(zhí)行時(shí)所訪問(wèn)地址的分布不是隨機(jī)的,而是相對(duì)地簇聚;這種簇聚包括指令和數(shù)據(jù)兩部分。程序的時(shí)間局部性程序即將用到的信息很可能就是目前正在使用的信息。程序的空間局部性程序即將用到的信息很可能與目前正在使用的信息在空間上相鄰或者臨近。CPU性能公式程序執(zhí)行的CPU時(shí)間= CPI IC / 時(shí)鐘頻率IC 程序執(zhí)行過(guò)程中所處理的指令數(shù)。反映了計(jì)算機(jī)指令集的結(jié)構(gòu)和編譯技術(shù)。CPI指令時(shí)鐘數(shù)。CPI = 總時(shí)鐘周期數(shù) / IC反映了計(jì)算機(jī)實(shí)現(xiàn)技術(shù)、計(jì)算機(jī)指令集的結(jié)構(gòu)和計(jì)算機(jī)組織。響應(yīng)時(shí)間從事件開(kāi)始到結(jié)束之間的時(shí)間,也稱為執(zhí)行時(shí)間。即計(jì)算機(jī)完成某一任務(wù)所花費(fèi)的全部時(shí)間,包括訪問(wèn)磁盤(pán)、訪問(wèn)存儲(chǔ)器、輸入/輸出、操作系統(tǒng)開(kāi)銷等。流量在單位時(shí)間內(nèi)所能完成的工作量。CPU時(shí)間CPU為用戶程序工作的時(shí)間,不包含I/O等待時(shí)間及運(yùn)行其他程序的時(shí)間。可細(xì)分為用戶CPU時(shí)間及系統(tǒng)CPU時(shí)間。核心測(cè)試程序由從真實(shí)程序中提取的較短但很關(guān)鍵的代碼構(gòu)成。小測(cè)試程序通常是指代碼在幾十行到100行的具有一些特定目的的測(cè)試程序。用戶可以隨時(shí)編寫(xiě)一些這樣的程序來(lái)測(cè)試系統(tǒng)的各種功能,并產(chǎn)生用戶已預(yù)知的輸出結(jié)果,如皇后問(wèn)題、迷宮問(wèn)題、快速排序、求素?cái)?shù)、計(jì)算等。合成測(cè)試程序首先對(duì)大量的應(yīng)用程序中的操作進(jìn)行統(tǒng)計(jì),得到各種操作比例,再按這個(gè)比例構(gòu)造測(cè)試程序。Whetstone與Dhrystone是最流行的合成測(cè)試程序?;鶞?zhǔn)測(cè)試程序套件為了能比較全面地反映計(jì)算機(jī)在各個(gè)方面的處理性能,通常采用整套測(cè)試程序。這組程序稱為基準(zhǔn)測(cè)試程序套件,它是由各種不同的真實(shí)應(yīng)用程序構(gòu)成的。目前最成功和最常見(jiàn)的測(cè)試程序套件是SPEC系列。事務(wù)處理測(cè)試程序主要測(cè)試在線事務(wù)處理(On-Line Transaction Processing,OLTP)系統(tǒng)的性能,包括數(shù)據(jù)庫(kù)訪問(wèn)和更新等。存儲(chǔ)程序計(jì)算機(jī)馮諾依曼結(jié)構(gòu)計(jì)算機(jī)輸入/輸出方式程序控制(程序等待、程序中斷)、DMA、通道、I/O處理機(jī)相聯(lián)存儲(chǔ)器CAM可按內(nèi)容訪問(wèn)的存儲(chǔ)器。相聯(lián)處理機(jī)以相聯(lián)存儲(chǔ)器為核心的處理機(jī)。相聯(lián)存儲(chǔ)器除了完成信息檢索任務(wù)外,還能進(jìn)行一些算術(shù)邏輯運(yùn)算。系列機(jī)由同一廠家生產(chǎn)的具有相同的系統(tǒng)結(jié)構(gòu),但具有不同組成和實(shí)現(xiàn)的一系列不同型號(hào)的機(jī)器。軟件兼容同一個(gè)軟件可以不加修改地運(yùn)行于系統(tǒng)結(jié)構(gòu)相同的各檔機(jī)器,而且它們所獲得的結(jié)果一樣,差別只在于運(yùn)行時(shí)間不同。兼容機(jī)不同廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)。向上(下)兼容按某檔計(jì)算機(jī)編制的程序,不加修改的就能運(yùn)行于比它高(低)檔的計(jì)算機(jī)。向前(后)兼容按某個(gè)時(shí)期投入市場(chǎng)的某種型號(hào)機(jī)器編制的程序,不加修改地就能運(yùn)行于在它之前(后)投入市場(chǎng)的機(jī)器。模擬用軟件的方法在一臺(tái)現(xiàn)有的機(jī)器(稱為宿主機(jī)host)上實(shí)現(xiàn)另一臺(tái)機(jī)器(稱為虛擬機(jī))的指令集。仿真用一臺(tái)現(xiàn)有機(jī)器(稱為宿主機(jī))上的微程序去解釋實(shí)現(xiàn)另一臺(tái)機(jī)器(稱為目標(biāo)機(jī))的指令集。并行性在同一時(shí)刻或是同一時(shí)間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不相同的工作。只要時(shí)間上互相重疊,就存在并行性。同時(shí)性兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生的并行性。并發(fā)性兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生的并行性。字串位串每次只對(duì)一個(gè)字的一位進(jìn)行處理。這是最基本的串行處理方式。字串位并同時(shí)對(duì)一個(gè)字的全部位進(jìn)行處理,不同字之間是串行的。字并位串同時(shí)對(duì)許多字的同一位(稱為位片)進(jìn)行處理。全并行同時(shí)對(duì)許多字的全部位或部分位進(jìn)行處理。指令內(nèi)部并行單條指令中各微操作之間的并行。指令級(jí)并行并行執(zhí)行兩條或兩條以上的指令。線程級(jí)并行并行執(zhí)行兩個(gè)或兩個(gè)以上的線程,通常是以一個(gè)進(jìn)程內(nèi)派生的多個(gè)線程為調(diào)度單位。任務(wù)級(jí)或過(guò)程級(jí)并行并行執(zhí)行兩個(gè)或兩個(gè)以上的過(guò)程或任務(wù)(程序段),以子程序或進(jìn)程為調(diào)度單元。作業(yè)或程序級(jí)并行并行執(zhí)行兩個(gè)或兩個(gè)以上的作業(yè)或程序。時(shí)間重疊多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流使用同一套硬件設(shè)備的各個(gè)部分,以加快硬件周轉(zhuǎn)而贏得速度。資源重復(fù)通過(guò)重復(fù)設(shè)置資源,尤其是硬件資源,大幅度提高計(jì)算機(jī)系統(tǒng)的性能。資源共享是一種軟件方法,它使多個(gè)任務(wù)按一定時(shí)間順序輪流使用同一套硬件設(shè)備。同構(gòu)型(對(duì)稱型)多處理機(jī)由多個(gè)同類型,至少擔(dān)負(fù)同等功能的處理機(jī)組成,同時(shí)處理同一作業(yè)中能并行執(zhí)行的多個(gè)任務(wù)。異構(gòu)型(非對(duì)稱型)多處理機(jī)由多個(gè)不同類型,至少擔(dān)負(fù)不同功能的處理機(jī)組成,按照作業(yè)要求的順序,利用時(shí)間重疊原理,依次對(duì)它們的多個(gè)任務(wù)進(jìn)行加工,各自完成規(guī)定的功能動(dòng)作。分布處理系統(tǒng)把若干臺(tái)具有獨(dú)立功能的處理機(jī)(或計(jì)算機(jī))相互連接起來(lái),在操作系統(tǒng)的全盤(pán)控制下,統(tǒng)一協(xié)調(diào)地工作,而最少依賴集中的程序、數(shù)據(jù)或硬件。耦合度反映多機(jī)系統(tǒng)各機(jī)器之間物理連接的緊密程度和交互作用能力的強(qiáng)弱。松散耦合通過(guò)通道或通信線路實(shí)現(xiàn)計(jì)算機(jī)間互連,共享某些外圍設(shè)備,機(jī)間的相互作用是在文件或數(shù)據(jù)集一級(jí)進(jìn)行。緊密耦合機(jī)間物理連接的頻帶較高,它們往往通過(guò)總線或高速開(kāi)關(guān)實(shí)現(xiàn)互連,可以共享主存。第2章 計(jì)算機(jī)指令集結(jié)構(gòu)設(shè)計(jì)堆棧型機(jī)器其CPU中存儲(chǔ)操作數(shù)的主要單元是堆棧。累加器型機(jī)器其CPU中存儲(chǔ)操作數(shù)的主要單元是累加器。通用寄存器型機(jī)器CPU中存儲(chǔ)操作數(shù)的主要單元是通用寄存器。三種類型指令集結(jié)構(gòu)根據(jù)CPU內(nèi)部存儲(chǔ)單元類型,將指令集結(jié)構(gòu)分為堆棧型指令集結(jié)構(gòu)、累加器型指令集結(jié)構(gòu)和通用寄存器型指令集結(jié)構(gòu)。通用寄存器型指令集結(jié)構(gòu)的三種類型寄存器寄存器型(RR:Register-Register)寄存器存儲(chǔ)器型(RM:Register-Memory)存儲(chǔ)器存儲(chǔ)器型(MM:Memory-Memory)CISC復(fù)雜指令集計(jì)算機(jī)。RISC精簡(jiǎn)指令集計(jì)算機(jī)。指令集結(jié)構(gòu)的完整性在一個(gè)有限可用的存儲(chǔ)空間內(nèi),對(duì)于任何可解的問(wèn)題,編制計(jì)算程序時(shí),指令集所提供的指令足夠使用。指令集結(jié)構(gòu)的規(guī)整性沒(méi)有或盡可能減少例外的情況和特殊的應(yīng)用,以及所有運(yùn)算都能對(duì)稱、均勻地在存儲(chǔ)器單元或寄存器單元之間進(jìn)行。規(guī)整性主要包括對(duì)稱性和均勻性。對(duì)稱性指所有與指令集有關(guān)的存儲(chǔ)單元的使用、操作碼的設(shè)置等都是對(duì)稱的。均勻性指對(duì)于各種不同的操作數(shù)類型、字長(zhǎng)、操作種類和數(shù)據(jù)存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。面向高級(jí)語(yǔ)言(HL)的機(jī)器采用各種對(duì)高級(jí)語(yǔ)言和編譯程序提供支持的措施,使機(jī)器語(yǔ)言和高級(jí)語(yǔ)言的語(yǔ)義差距比傳統(tǒng)的馮諾依曼型機(jī)器縮小許多。這種機(jī)器統(tǒng)稱為面向高級(jí)語(yǔ)言(HL)的機(jī)器。間接執(zhí)行型高級(jí)語(yǔ)言機(jī)器使高級(jí)語(yǔ)言成為機(jī)器的匯編語(yǔ)言。即高級(jí)語(yǔ)言和機(jī)器語(yǔ)言是一一對(duì)應(yīng)的,這種機(jī)器稱為間接執(zhí)行型高級(jí)語(yǔ)言機(jī)器。直接執(zhí)行型高級(jí)語(yǔ)言機(jī)器高級(jí)語(yǔ)言機(jī)器本身沒(méi)有機(jī)器語(yǔ)言,或者說(shuō)高級(jí)語(yǔ)言就作為機(jī)器語(yǔ)言。它可以直接由硬件或固件對(duì)高級(jí)語(yǔ)言源程序的語(yǔ)句逐條進(jìn)行解釋并執(zhí)行。這種機(jī)器稱為直接執(zhí)行型高級(jí)語(yǔ)言機(jī)器。跳轉(zhuǎn)當(dāng)控制指令為無(wú)條件改變控制流時(shí),稱之為跳轉(zhuǎn)。分支當(dāng)控制指令是有條件改變控制流時(shí),稱之為分支。位置無(wú)關(guān)代碼在執(zhí)行時(shí)與它被載入的位置無(wú)關(guān)。 操作數(shù)類型面向應(yīng)用、面向軟件系統(tǒng)所處理的各種數(shù)據(jù)結(jié)構(gòu)。操作數(shù)表示硬件結(jié)構(gòu)能夠識(shí)別、指令系統(tǒng)可以直接調(diào)用的那些數(shù)據(jù)結(jié)構(gòu)。操作數(shù)的類型主要有:整數(shù)(定點(diǎn))、浮點(diǎn)、十進(jìn)制、字符、字符串、向量、堆棧等。變長(zhǎng)編碼格式指令的長(zhǎng)度是可變的。定長(zhǎng)編碼格式將操作類型和尋址方式組合編碼在操作碼中,所有指令的長(zhǎng)度是固定唯一的?;旌闲途幋a格式通過(guò)提供一定類型的指令字長(zhǎng),期望能夠兼顧降低目標(biāo)代碼長(zhǎng)度和降低譯碼復(fù)雜度兩個(gè)目標(biāo)。第3章 流水線技術(shù)一次重疊執(zhí)行方式把執(zhí)行第k條指令與取第k+l條指令同時(shí)進(jìn)行。二次重疊執(zhí)行方式為了進(jìn)一步提高執(zhí)行速度,可以增加指令重疊執(zhí)行的程度。把取第k+l條指令提前到與分析第k條指令同時(shí)進(jìn)行,把分析第k+l條指令與執(zhí)行第k條指令同時(shí)進(jìn)行。哈佛結(jié)構(gòu)程序空間和數(shù)據(jù)空間相互獨(dú)立,因而具有獨(dú)立的指令總線和數(shù)據(jù)總線的系統(tǒng)結(jié)構(gòu)。先行控制技術(shù)緩沖技術(shù)和預(yù)處理技術(shù)的結(jié)合。緩沖技術(shù)在工作速度不固定的兩個(gè)功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù)指預(yù)取指令、對(duì)指令進(jìn)行加工以及預(yù)取操作數(shù)等。流水線技術(shù)將一個(gè)重復(fù)的時(shí)序過(guò)程分解成為若干個(gè)子過(guò)程,而每一個(gè)子過(guò)程都可有效地在其專用功能段上與其他子過(guò)程同時(shí)執(zhí)行。時(shí)(間)空(間)圖用來(lái)描述流水線的工作,橫坐標(biāo)表示時(shí)間,縱坐標(biāo)代表流水線的各段。流水線的深度流水線的段數(shù)。通過(guò)時(shí)間流水線中第一個(gè)任務(wù)流出結(jié)果所需的時(shí)間。單功能流水線只能完成一種固定功能的流水線。功能流水線流水線的各段可以進(jìn)行不同的連接,從而使流水線在不同的時(shí)間,或者在同一時(shí)間完成不同的功能。TI ASC的多功能流水線靜態(tài)流水線在同一時(shí)間內(nèi),流水線的各段只能按同一種功能的連接方式工作。動(dòng)態(tài)流水線在同一時(shí)間內(nèi),當(dāng)某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻在實(shí)現(xiàn)另一種運(yùn)算。部件級(jí)流水線(運(yùn)算操作流水線)把處理機(jī)的算術(shù)邏輯部件分段,以便為各種數(shù)據(jù)類型進(jìn)行流水操作。處理機(jī)級(jí)流水線(指令流水線)把解釋指令的過(guò)程按照流水方式處理。處理機(jī)間流水線(宏流水線)由兩個(gè)以上的處理機(jī)串行地對(duì)同一數(shù)據(jù)流進(jìn)行處理,每個(gè)處理機(jī)完成一項(xiàng)任務(wù)。標(biāo)量流水處理機(jī)不具有向量數(shù)據(jù)表示,僅對(duì)標(biāo)量數(shù)據(jù)進(jìn)行流水處理的處理機(jī)。向量流水處理機(jī)具有向量數(shù)據(jù)表示,并通過(guò)向量指令對(duì)向量的各元素進(jìn)行處理的流水處理機(jī)。線性流水線流水線的各段串行連接,沒(méi)有反饋回路。非線性流水線流水線中除有串行連接的通路外,還有反饋回路。非線性流水線的調(diào)度在非線性流水線中,確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任務(wù)不會(huì)與先前進(jìn)入流水線的任務(wù)發(fā)生沖突爭(zhēng)用流水段。順序流水線流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序完全相同。每一個(gè)任務(wù)在流水線的各段中是一個(gè)跟著一個(gè)順序流動(dòng)的。亂序流水線流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序可以不同,允許后進(jìn)入流水線的任務(wù)先完成(從輸出端流出)。又稱為無(wú)序流水線、錯(cuò)序流水線、異步流水線。吞吐率在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量。最大吞吐率流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定狀態(tài)后所得到的吞吐率。流水線的瓶頸流水線中最慢的一段。消除瓶頸段的兩種方法細(xì)分瓶頸段、重復(fù)設(shè)置瓶頸段加速比流水線的速度與等功能的非流水線的速度之比。效率流水線的設(shè)備利用率。排空時(shí)間流水線中最后一個(gè)任務(wù)通過(guò)流水線所需的時(shí)間。 流水寄存器建立時(shí)間在觸發(fā)寫(xiě)操作的時(shí)鐘信號(hào)到達(dá)之前,寄存器輸入必須保持穩(wěn)定的時(shí)間。流水寄存器傳輸延遲時(shí)鐘信號(hào)到達(dá)后到寄存器輸出可用的時(shí)間。時(shí)鐘偏移開(kāi)銷流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相同)。相關(guān)指兩條指令之間存在某種依賴關(guān)系。確定程序中指令之間存在什么樣的相關(guān),對(duì)于充分發(fā)揮流水線的效率有重要的意義。數(shù)據(jù)相關(guān)對(duì)于兩條指令i(在前)和j(在后),如果下述條件之一成立,則稱指令j與指令i數(shù)據(jù)相關(guān): (1)指令j使用指令i產(chǎn)生的結(jié)果;(2)指令j與指令k數(shù)據(jù)相關(guān),而指令k又與指令i數(shù)據(jù)相關(guān)。名指指令所訪問(wèn)的寄存器或存儲(chǔ)器單元的名稱。名相關(guān)如果兩條指令使用相同的名,但是它們之間并沒(méi)有數(shù)據(jù)流動(dòng),則稱這兩條指令存在名相關(guān)。反相關(guān)如果指令j(在后)寫(xiě)的名與指令i(在前)讀的名相同,則稱指令i和j發(fā)生了反相關(guān)。反相關(guān)指令之間的執(zhí)行順序是必須嚴(yán)格遵守的,以保證i讀的值是正確的。輸出相關(guān)如果指令j(在后)和指令i(在前)寫(xiě)相同的名,則稱指令i和j發(fā)生了輸出相關(guān)。輸出相關(guān)指令的執(zhí)行順序是不能顛倒的,以保證最后的結(jié)果是指令j寫(xiě)進(jìn)去的。換名技術(shù)通過(guò)改變指令中操作數(shù)的名來(lái)消除名相關(guān)。寄存器換名對(duì)于寄存器操作數(shù)進(jìn)行換名稱為寄存器換名。這個(gè)過(guò)程既可以用編譯器靜態(tài)實(shí)現(xiàn),也可以用硬件動(dòng)態(tài)完成。控制相關(guān)由分支指令引起的相關(guān)。它需要根據(jù)分支指令的執(zhí)行結(jié)果來(lái)確定后續(xù)指令是否執(zhí)行。流水線沖突指對(duì)于具體的流水線來(lái)說(shuō),由于相關(guān)的存在,使得指令流中的下一條指令不能在指定的時(shí)鐘周期執(zhí)行。結(jié)構(gòu)沖突因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。數(shù)據(jù)沖突當(dāng)相關(guān)的指令靠得足夠近時(shí),它們?cè)诹魉€中的重疊執(zhí)行或者重新排序會(huì)改變指令讀/寫(xiě)操作數(shù)的順序,使之不同于它們非流水實(shí)現(xiàn)時(shí)的順序,則發(fā)生了數(shù)據(jù)沖突??刂茮_突流水線遇到分支指令和其他會(huì)改變PC值的指令所引起的沖突。流水線氣泡流水線中插入的暫停周期。定向技術(shù)當(dāng)流水線中出現(xiàn)數(shù)據(jù)沖突時(shí),可以將計(jì)算結(jié)果從其產(chǎn)生的地方直接送到其他指令中需要它的地方,或所有需要它的功能單元,避免暫停。寫(xiě)后讀沖突(RAW)考慮流水線中的兩條指令i 和j,且i在j之前進(jìn)入流水線中,j的執(zhí)行要用到i的計(jì)算結(jié)果,當(dāng)它們?cè)诹魉€中重疊執(zhí)行時(shí),j可能在i寫(xiě)入其計(jì)算結(jié)果之前就先行對(duì)保存該結(jié)果的寄存器進(jìn)行讀操作,從而得到錯(cuò)誤的值。寫(xiě)后寫(xiě)沖突(WAW)考慮流水線中的兩條指令i 和j,且i在j之前進(jìn)入流水線中,j和i的目的寄存器相同,當(dāng)它們?cè)诹魉€中重疊執(zhí)行時(shí),j可能在i寫(xiě)入其計(jì)算結(jié)果之前就先行對(duì)該結(jié)果寄存器進(jìn)行寫(xiě)操作,從而導(dǎo)致寫(xiě)入順序錯(cuò)誤,在目的寄存器中留下的是i寫(xiě)入的值,而不是j寫(xiě)入的值。讀后寫(xiě)沖突(WAR)考慮流水線中的兩條指令i 和j,且i在j之前進(jìn)入流水線中,j可能在i讀取某個(gè)源寄存器的內(nèi)容之前就先對(duì)該寄存器進(jìn)行寫(xiě)操作,導(dǎo)致i后來(lái)讀取到的值是錯(cuò)誤的。流水線調(diào)度或指令調(diào)度當(dāng)流水線中出現(xiàn)沖突時(shí),編譯器通過(guò)重新排列代碼的順序來(lái)消除流水線中的暫停,這種技術(shù)稱為流水線調(diào)度。凍結(jié)或排空流水線在流水線中,處理分支最簡(jiǎn)單的方法,保持或清除流水線在分支指令之后讀入的任何指令,直到知道分支指令的目標(biāo)地址以及分支轉(zhuǎn)移是否成功為止。分支延遲由分支指令引起的延遲。預(yù)測(cè)分支失敗的方法當(dāng)流水線譯碼到一條分支指令時(shí),流水線繼續(xù)取指令,并允許該分支指令后的指令繼續(xù)在流水線中流動(dòng)。當(dāng)流水線確定分支轉(zhuǎn)移成功與否以及分支的目標(biāo)地址之后,如果分支轉(zhuǎn)移成功,流水線必須將在分支指令之后取出的所有指令轉(zhuǎn)化為空操作,并在分支的目標(biāo)地址處重新取出有效的指令;如果分支轉(zhuǎn)移失敗,那么可以將分支指令看作是一條普通指令,流水線正常流動(dòng),無(wú)需將在分支指令之后取出的所有指令轉(zhuǎn)化為空操作。預(yù)測(cè)分支成功的方法一旦流水線譯碼到一條指令是分支指令,且完成了分支目標(biāo)地址的計(jì)算,我們就假設(shè)分支轉(zhuǎn)移成功,并開(kāi)始在分支目標(biāo)地址處取指令執(zhí)行。“延遲分支”方法其主要思想是從邏輯上“延長(zhǎng)”分支指令的執(zhí)行時(shí)間。設(shè)延遲長(zhǎng)度為n的分支指令后面有n個(gè)分支延遲槽,選擇n條有效和有用的指令放入分支延遲槽中,無(wú)論分支成功與否,流水線都會(huì)執(zhí)行這些指令。處于分支延遲槽中的指令“掩蓋”了流水線原來(lái)必須插入的暫停周期。水平(橫向)處理方式在橫向處理方式中,向量計(jì)算是按行的方式從左到右橫向地進(jìn)行。若向量長(zhǎng)度為N,則水平處理方式相當(dāng)于執(zhí)行N次循環(huán)。若使用流水線,在每次循環(huán)中可能出現(xiàn)數(shù)據(jù)相關(guān)和功能轉(zhuǎn)換,不適合對(duì)向量進(jìn)行流水處理。垂直(縱向)處理方式將整個(gè)向量按相同的運(yùn)算處理完畢之后,再去執(zhí)行其他運(yùn)算。存儲(chǔ)器存儲(chǔ)器型操作的運(yùn)算流水線向量運(yùn)算指令的源/目向量都放在存儲(chǔ)器內(nèi),使得流水線運(yùn)算部件的輸入、輸出端直接與存儲(chǔ)器相聯(lián),構(gòu)成MM型的運(yùn)算流水線。分組(縱橫)處理方式把長(zhǎng)度為N的向量分為若干組,每組長(zhǎng)度為n,組內(nèi)按縱向方式處理,依次處理各組,組數(shù)為N/n,適合流水處理。寄存器寄存器型操作的運(yùn)算流水線可設(shè)長(zhǎng)度為n的向量寄存器,使每組向量運(yùn)算的源/目向量都在向量寄存器中,流水線的運(yùn)算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成RR型運(yùn)算流水線。Vi沖突并行工作的各向量指令的源向量或結(jié)果向量的Vi有相同的。功能部件沖突向量功能部件沖突指的是同一個(gè)向量功能部件被一條以上的并行工作向量指令所使用。鏈接技術(shù)兩條向量指令出現(xiàn)“寫(xiě)后讀”相關(guān)時(shí),若它們不存在功能部件沖突和向量寄存器(源或目的)沖突,就有可能把它們所用的功能部件頭尾相接,形成一條鏈接流水線,進(jìn)行流水處理。鏈接流水線的流水時(shí)間在鏈接流水線中,從第一個(gè)操作數(shù)開(kāi)始流動(dòng)到第一個(gè)結(jié)果產(chǎn)生并存入向量寄存器所需的時(shí)間。向量循環(huán)或分段開(kāi)采技術(shù)當(dāng)向量的長(zhǎng)度大于向量寄存器的長(zhǎng)度時(shí),就必須把長(zhǎng)向量分成固定長(zhǎng)度的段,然后循環(huán)分段處理,一次循環(huán)只處理一個(gè)向量段。向量處理機(jī)的峰值性能R:當(dāng)向量長(zhǎng)度為無(wú)窮大時(shí),向量處理機(jī)的最高性能,也稱為峰值性能。半性能向量長(zhǎng)度向量處理機(jī)的運(yùn)行性能達(dá)到其峰值性能的一半時(shí)所必須滿足的向量長(zhǎng)度。向量長(zhǎng)度臨界值對(duì)于某一計(jì)算任務(wù)而言,向量方式的處理速度優(yōu)于標(biāo)量串行方式處理速度時(shí)所需的最小向量長(zhǎng)度。第4章 指令級(jí)并行指令級(jí)并行當(dāng)指令之間不存在相關(guān)時(shí),它們可以在流水線中重疊起來(lái)并行執(zhí)行。這種指令序列中存在的潛在并行性稱為指令級(jí)并行?;境绦驂K如果一串連續(xù)的代碼除了入口和出口以外,沒(méi)有其他的分支指令和轉(zhuǎn)入點(diǎn),則稱之為一個(gè)基本程序塊。循環(huán)級(jí)并行性循環(huán)體中指令之間的并行性。程序順序由源程序確定的在完全串行方式下指令的執(zhí)行順序。保持異常行為無(wú)論怎么改變指令的執(zhí)行順序,都不能改變程序中異常的發(fā)生情況。即原來(lái)程序中是怎么發(fā)生的,改變執(zhí)行順序后還是怎么發(fā)生。靜態(tài)調(diào)度技術(shù)依靠編譯器對(duì)代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不是在程序執(zhí)行的過(guò)程中、而是在編譯期間進(jìn)行代碼調(diào)度和優(yōu)化。靜態(tài)調(diào)度通過(guò)把相關(guān)的指令拉開(kāi)距離來(lái)減少可能產(chǎn)生的停頓。動(dòng)態(tài)調(diào)度方法在流水線中出現(xiàn)相關(guān)時(shí),通過(guò)硬件重新安排指令的執(zhí)行順序,來(lái)調(diào)整相關(guān)指令實(shí)際執(zhí)行時(shí)的關(guān)系,減少處理器空轉(zhuǎn)。不精確異常當(dāng)執(zhí)行指令i導(dǎo)致發(fā)生異常時(shí),處理機(jī)的現(xiàn)場(chǎng)(狀態(tài))與嚴(yán)格按程序順序執(zhí)行時(shí)指令i的現(xiàn)場(chǎng)不同。精確異常當(dāng)執(zhí)行指令i導(dǎo)致發(fā)生異常時(shí),處理機(jī)的現(xiàn)場(chǎng)跟嚴(yán)格按程序順序執(zhí)行時(shí)指令i的現(xiàn)場(chǎng)相同。Tomasulo算法的核心思想 記錄和檢測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減少到最少; 通過(guò)寄存器換名來(lái)消除WAR沖突和WAW沖突。保留站設(shè)置在運(yùn)算部件的入口,每個(gè)保留站中保存一條已經(jīng)流出并等待到本功能部件執(zhí)行的指令(相關(guān)信息),包括操作碼、操作數(shù)以及用于檢測(cè)和解決沖突的信息。CDB公共數(shù)據(jù)總線。它是一條重要的數(shù)據(jù)通路,所有功能部件的計(jì)算結(jié)果都要送到CDB上,由它把這些結(jié)果直接送到(播送到)各個(gè)需要該結(jié)果的地方。動(dòng)態(tài)分支預(yù)測(cè)技術(shù)在程序運(yùn)行時(shí),根據(jù)分支指令過(guò)去的表現(xiàn)來(lái)預(yù)測(cè)其將來(lái)的行為。如果分支行為發(fā)生了變化,預(yù)測(cè)結(jié)果也跟著改變。動(dòng)態(tài)分支預(yù)測(cè)技術(shù)的目的有兩個(gè):預(yù)測(cè)分支是否成功和盡快找到分支目標(biāo)地址(或指令),從而避免因控制相關(guān)而造成流水線停頓。分支歷史表BHT記錄分支指令最近一次或幾次的執(zhí)行情況(成功或不成功),并據(jù)此進(jìn)行預(yù)測(cè)。BTB分支目標(biāo)緩沖器。用專門(mén)的硬件實(shí)現(xiàn)的一張表格。表格中的每一項(xiàng)至少有兩個(gè)字段: 執(zhí)行過(guò)的成功分支指令的地址; 預(yù)測(cè)的分支目標(biāo)地址。前瞻執(zhí)行對(duì)分支指令的結(jié)果進(jìn)行猜測(cè),并假設(shè)這個(gè)猜測(cè)總是對(duì)的,然后按這個(gè)猜測(cè)結(jié)果繼續(xù)取、流出和執(zhí)行后續(xù)的指令。只是執(zhí)行指令的結(jié)果不是寫(xiě)回到寄存器或存儲(chǔ)器,而是放到一個(gè)稱為ROB的緩沖器中。等到相應(yīng)的指令得到“確認(rèn)”(即確實(shí)是應(yīng)該執(zhí)行的)后,才將結(jié)果寫(xiě)入寄存器或存儲(chǔ)器。ROB再定序緩沖器。在指令操作完成后到指令被確認(rèn)的這一時(shí)間段內(nèi),為指令保存數(shù)據(jù)。多流出技術(shù)在每個(gè)時(shí)鐘周期流出多條指令。超標(biāo)量處理機(jī)一種多流出處理機(jī)。在每個(gè)時(shí)鐘周期流出的指令條數(shù)不固定,依代碼的具體情況而定,不過(guò)有個(gè)上限。設(shè)這個(gè)上限為n,就稱該處理機(jī)為n流出。超長(zhǎng)指令字VLIW技術(shù)一種多指令流出技術(shù)。在每個(gè)時(shí)鐘周期流出的指令條數(shù)是固定的,這些指令構(gòu)成一條長(zhǎng)指令或者一個(gè)指令包,在這個(gè)指令包中,指令之間的并行性是通過(guò)指令顯式地表示出來(lái)的。超流水線處理機(jī)在一個(gè)時(shí)鐘周期內(nèi)能夠分時(shí)流出多條指令的處理機(jī)。循環(huán)展開(kāi)技術(shù)開(kāi)發(fā)循環(huán)級(jí)并行的一種基本技術(shù)。它將循環(huán)體展開(kāi)若干次,將循環(huán)級(jí)并行轉(zhuǎn)化為指令級(jí)并行。這個(gè)過(guò)程既可以通過(guò)編譯器靜態(tài)完成,也可以通過(guò)硬件動(dòng)態(tài)進(jìn)行。第5章 存儲(chǔ)層次存儲(chǔ)器的三個(gè)主要指標(biāo)從用戶的角度來(lái)看,存儲(chǔ)器的三個(gè)主要指標(biāo)是:容量、速度和價(jià)格。多級(jí)存儲(chǔ)層次由若干個(gè)采用不同實(shí)現(xiàn)技術(shù)的存儲(chǔ)器構(gòu)成的存儲(chǔ)器系統(tǒng)。各存儲(chǔ)器處在離CPU不同距離的層次上。其目標(biāo)是速度接近于離CPU最近的存儲(chǔ)器的速度,容量達(dá)到離CPU最遠(yuǎn)的存儲(chǔ)器的容量。命中率HCPU在第一級(jí)存儲(chǔ)器中找到所需數(shù)據(jù)的概率。不命中率或失效率FCPU在第一級(jí)存儲(chǔ)器中找不到所需數(shù)據(jù)的概率。失效開(kāi)銷CPU向第二級(jí)存儲(chǔ)器發(fā)出訪問(wèn)請(qǐng)求到把這個(gè)數(shù)據(jù)塊調(diào)入第一級(jí)存儲(chǔ)器所需的時(shí)間。平均訪問(wèn)時(shí)間TATA 命中時(shí)間 失效率 失效開(kāi)銷“Cache主存”層次在CPU和主存之間增加一級(jí)速度快、但容量較小而每位價(jià)格較貴的高速緩沖存儲(chǔ)器。借助于輔助軟硬件,它與主存構(gòu)成一個(gè)有機(jī)的整體,以彌補(bǔ)主存速度的不足?!爸鞔孑o存”層次“主存輔存”層次的目的是為了彌補(bǔ)主存容量的不足。它是在主存外面增加一個(gè)容量更大、每位價(jià)格更便宜、但速度更慢的存儲(chǔ)器。它們依靠輔助軟硬件的作用,構(gòu)成一個(gè)整體。全相聯(lián)映像當(dāng)把一個(gè)塊從主存調(diào)入Cache時(shí),它可以被放置到Cache中的任意一個(gè)位置。直接映像當(dāng)把一個(gè)塊從主存調(diào)入Cache時(shí),它只能被放置到Cache中唯一的一個(gè)位置。組相聯(lián)映像當(dāng)把一個(gè)塊從主存調(diào)入Cache時(shí),它可以被放置到Cache中唯一的一個(gè)組中的任何一個(gè)位置(Cache被等分為若干組,每組由若干個(gè)塊構(gòu)成)。n路組相聯(lián)在組相聯(lián)映像中,如果每組中有n個(gè)塊,則稱該映像規(guī)則為n路組相聯(lián)。相聯(lián)度組相聯(lián)映像中每組中的塊數(shù)。目錄表目錄表所包含的項(xiàng)數(shù)與Cache的塊數(shù)相同,每一項(xiàng)對(duì)應(yīng)于Cache中的一個(gè)塊,用于指出當(dāng)前該塊中存放的信息是哪個(gè)主存塊的。候選位置一個(gè)主存塊可能映像到Cache中的一個(gè)或多個(gè)Cache塊位置,這些Cache塊位置稱為候選位置。隨機(jī)法隨機(jī)地選擇被替換的塊。先進(jìn)先出法(FIFO)選擇最早調(diào)入的塊作為被替換的塊。最近最少使用法(LRU)選擇近期最少被訪問(wèn)的塊作為被替換的塊。寫(xiě)直達(dá)法在執(zhí)行“寫(xiě)”操作時(shí),不僅把信息寫(xiě)入Cache中相應(yīng)的塊,而且也寫(xiě)入下一級(jí)存儲(chǔ)器中相應(yīng)的塊。寫(xiě)回法在執(zhí)行“寫(xiě)”操作時(shí),只把信息寫(xiě)入Cache中相應(yīng)的塊。該塊只有在被替換時(shí),才被寫(xiě)回主存。按寫(xiě)分配法寫(xiě)失效時(shí),先把所寫(xiě)單元所在的塊調(diào)入Cache,然后再進(jìn)行寫(xiě)入。不按寫(xiě)分配法寫(xiě)失效時(shí),直接寫(xiě)入下一級(jí)存儲(chǔ)器中,而不把相應(yīng)的塊調(diào)入Cache。分離Cache將單一的Cache分為兩個(gè)Cache:一個(gè)專門(mén)存放指令,另一個(gè)專門(mén)存放數(shù)據(jù)?;旌螩ache將指令和數(shù)據(jù)放在一個(gè)統(tǒng)一的Cache中。強(qiáng)制性失效當(dāng)?shù)谝淮卧L問(wèn)一個(gè)塊時(shí),該塊不在Cache中,需從下一級(jí)存儲(chǔ)器中調(diào)入Cache,這就是強(qiáng)制性失效。容量失效如果程序執(zhí)行時(shí)所需的塊不能全部調(diào)入Cache中,則當(dāng)某些塊被替換后,若又重新被訪問(wèn),就會(huì)發(fā)生失效。這種失效稱為容量失效。沖突失效在組相聯(lián)或直接映像Cache中,若太多的塊映像到同一組(塊)中,則會(huì)出現(xiàn)該組中某個(gè)塊被別的塊替換(即使別的組或塊有空閑位置),然后又被重新訪問(wèn)的情況。這就發(fā)生了沖突失效。2:1的Cache經(jīng)驗(yàn)規(guī)則大小為N的直接映像Cache的失效率約等于大小為N/2的兩路組相聯(lián)Cache的失效率。Victim Cache在Cache與下一級(jí)存儲(chǔ)器的數(shù)據(jù)通路之間增設(shè)一個(gè)全相聯(lián)的小Cache,用來(lái)存放由于失效而被丟棄(替換)的那些塊。偽相聯(lián)一種既能獲得多路組相聯(lián)Cache的低失效率,又能獲得直接映像Cache的命中速度的相聯(lián)辦法。采用這種方法時(shí),在命中情況下,訪問(wèn)Cache的過(guò)程和直接映像Cache中的情況相同;而發(fā)生失效時(shí),在訪問(wèn)下一級(jí)存儲(chǔ)器之前,會(huì)先檢查Cache另一個(gè)位置(塊),看是否匹配。確定這個(gè)“另一塊”的一種簡(jiǎn)單的方法是將索引字段的最高位取反,然后按照新索引去尋找“偽相聯(lián)組”中的對(duì)應(yīng)塊。如果這一塊的標(biāo)識(shí)匹配,則稱發(fā)生了“偽命中”。否則,就只好訪問(wèn)下一級(jí)存儲(chǔ)器。寄存器預(yù)取預(yù)取時(shí),把數(shù)據(jù)取到寄存器中。Cache預(yù)取預(yù)取時(shí),只將數(shù)據(jù)取到Cache中,不放入寄存器。故障性預(yù)取在預(yù)取時(shí),若出現(xiàn)虛地址故障或違反保護(hù)權(quán)限,則會(huì)發(fā)生異常。非故障性預(yù)取或非綁定預(yù)取預(yù)取時(shí),若出現(xiàn)虛地址故障或違反保護(hù)權(quán)限,則不會(huì)發(fā)生異常。非阻塞Cache或非鎖定CacheCache在等待預(yù)取數(shù)據(jù)返回的同時(shí),還能繼續(xù)提供指令和數(shù)據(jù)。子塊放置技術(shù)把一個(gè)Cache塊劃分為若干個(gè)小塊,稱為子塊。為每一個(gè)子塊賦一位有效位,用于說(shuō)明該子塊中的數(shù)據(jù)是否有效。失效時(shí)只從下一級(jí)存儲(chǔ)器調(diào)入一個(gè)子塊。請(qǐng)求字當(dāng)從存儲(chǔ)器向CPU調(diào)入一塊時(shí),塊中只有一個(gè)字是CPU立即需要的,這個(gè)字稱為請(qǐng)求字。盡早重啟動(dòng)在請(qǐng)求字沒(méi)有到達(dá)時(shí),CPU處于等待狀態(tài)。一旦請(qǐng)求字到達(dá),就立即發(fā)送給CPU,讓等待的CPU盡早重啟動(dòng),繼續(xù)執(zhí)行。請(qǐng)求字優(yōu)先調(diào)塊時(shí),首先向存儲(chǔ)器請(qǐng)求CPU所要的請(qǐng)求字。請(qǐng)求字一旦到達(dá),就立刻送往CPU,讓CPU繼續(xù)執(zhí)行,同時(shí)從存儲(chǔ)器調(diào)入該塊的其余部分。失效下的命中Cache在失效時(shí)仍允許CPU進(jìn)行其它的命中訪問(wèn)。局部失效率對(duì)于某一級(jí)Cache來(lái)說(shuō):局部失效率該級(jí)Cache的失效次數(shù)/到達(dá)該級(jí)Cache的訪存次數(shù)全局失效率對(duì)于某一級(jí)Cache來(lái)說(shuō):全局失效率該級(jí)Cache的失效次數(shù)/CPU發(fā)出的訪存總次數(shù)虛擬Cache訪問(wèn)Cache的索引和標(biāo)識(shí)都是虛擬地址的一部分。物理Cache訪問(wèn)Cache的索引和標(biāo)識(shí)都是物理地址的一部分。進(jìn)程標(biāo)識(shí)符字段(PID)虛擬Cache中,為了減少清空Cache的次數(shù),在地址標(biāo)識(shí)中增加一個(gè)進(jìn)程標(biāo)識(shí)符字段,指出Cache中各塊的數(shù)據(jù)是屬于哪個(gè)程序的。同義或別名虛擬Cache中,操作系統(tǒng)和用戶程序?qū)τ谕粋€(gè)物理地址可能采用兩種以上不同形式的虛擬地址來(lái)訪問(wèn),這些地址稱為同義或別名。虛擬索引物理標(biāo)識(shí)方法直接用虛地址中的頁(yè)內(nèi)位移作為訪問(wèn)Cache的索引,但標(biāo)識(shí)卻是物理地址。CPU發(fā)出訪存請(qǐng)求后,在進(jìn)行虛實(shí)地址轉(zhuǎn)換的同時(shí),可并行進(jìn)行標(biāo)識(shí)的讀取。在完成地址變換之后,再把得到的物理地址與標(biāo)識(shí)進(jìn)行比較。它既能得到虛擬Cache的好處,又能得到物理Cache的優(yōu)點(diǎn)。多字寬存儲(chǔ)器結(jié)構(gòu)這是提高存儲(chǔ)器帶寬的最簡(jiǎn)單的方法。把主存的寬度增加為原來(lái)的若干倍。多體交叉存儲(chǔ)器把存儲(chǔ)芯片組織為多個(gè)體,讓它們并行工作,從而能一次讀或?qū)懚鄠€(gè)字。存儲(chǔ)器的各個(gè)體是按字交叉的。獨(dú)立存儲(chǔ)體將存儲(chǔ)器分為若干個(gè)獨(dú)立的存儲(chǔ)體,每個(gè)體有獨(dú)立的地址線、獨(dú)立的數(shù)據(jù)總線,有多個(gè)存儲(chǔ)控制器,以允許多個(gè)體獨(dú)立操作。體沖突多個(gè)請(qǐng)求要訪問(wèn)同一個(gè)體。DRAM專用交叉結(jié)構(gòu)Nibble方式、Page方式、Static column方式。TLB一個(gè)專用的高速緩沖器,用于存放近期經(jīng)常使用的頁(yè)表項(xiàng),其內(nèi)容是頁(yè)表部分內(nèi)容的一個(gè)副本。第6章 輸入/輸出系統(tǒng)輸入/輸出系統(tǒng)簡(jiǎn)稱I/O系統(tǒng),它包括I/O設(shè)備以及I/O設(shè)備與處理機(jī)的連接。存儲(chǔ)外設(shè)可靠性能的參數(shù)可靠性、可用性和可信性系統(tǒng)可靠性指系統(tǒng)從初始狀態(tài)開(kāi)始一直提供服務(wù)的能力。通常用平均無(wú)故障時(shí)間MTTF(Mean Time To Failure)來(lái)衡量。系統(tǒng)的失效率平均無(wú)故障時(shí)間MTTF的倒數(shù)。系統(tǒng)可用性系統(tǒng)正常工作時(shí)間在連續(xù)兩次正常服務(wù)間隔時(shí)間中所占的比率。系統(tǒng)的可信性指服務(wù)的質(zhì)量,即在多大程度上可以合理地認(rèn)為服務(wù)是可靠的。有效構(gòu)建方法在構(gòu)建系統(tǒng)的過(guò)程中消除故障隱患,這樣建立起來(lái)的系統(tǒng)就不會(huì)出現(xiàn)故障。糾錯(cuò)方法在系統(tǒng)構(gòu)建中設(shè)計(jì)容錯(cuò)部件,即使出現(xiàn)故障,也可以通過(guò)容錯(cuò)信息保證系統(tǒng)正常工作。RAID廉價(jià)磁盤(pán)冗余陣列或獨(dú)立磁盤(pán)冗余陣列。RAID0采用數(shù)據(jù)分塊技術(shù),把數(shù)據(jù)分布在多個(gè)盤(pán)上,無(wú)冗余信息。RAID1鏡像盤(pán)。每當(dāng)數(shù)據(jù)寫(xiě)入一個(gè)磁盤(pán)時(shí),也將該數(shù)據(jù)寫(xiě)到另一個(gè)冗余盤(pán)(鏡像盤(pán)),形成數(shù)據(jù)的兩個(gè)備份(數(shù)據(jù)鏡像)。如果一個(gè)磁盤(pán)失效,系統(tǒng)可以到鏡像盤(pán)中獲得所需要的數(shù)據(jù)。RAID2位交叉式漢明編碼陣列。數(shù)據(jù)字以位交叉方式分別記錄在各個(gè)磁盤(pán)上,編碼位被存放在多個(gè)校驗(yàn)(Ecc)磁盤(pán)的對(duì)應(yīng)位上。RAID3位交叉奇偶校驗(yàn)盤(pán)陣列。數(shù)據(jù)以位或字節(jié)交叉的方式存于各盤(pán),冗余的奇偶校驗(yàn)信息存儲(chǔ)在專用的冗余盤(pán)上。特點(diǎn)是可以獲得非常高的數(shù)據(jù)傳輸率。缺點(diǎn)是一次只能執(zhí)行一個(gè)I/O請(qǐng)求。RAID4專用奇偶校驗(yàn)獨(dú)立存取盤(pán)陣列。數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤(pán),冗余的奇偶校驗(yàn)信息存放在一個(gè)專用盤(pán)上。RAID5塊交叉分布式奇偶校驗(yàn)盤(pán)陣列,是旋轉(zhuǎn)奇偶校驗(yàn)獨(dú)立存取的陣列。即數(shù)據(jù)以塊交叉的方式存于各盤(pán),但無(wú)專用的冗余盤(pán),而是把冗余的奇偶校驗(yàn)信息均勻地分布在所有磁盤(pán)上。RAID6雙維奇偶校驗(yàn)獨(dú)立存取盤(pán)陣列。即數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤(pán),冗余的檢、糾錯(cuò)信息均勻地分布在所有磁盤(pán)上??扇萑屉p盤(pán)出錯(cuò)。分離事務(wù)總線將總線事務(wù)分成請(qǐng)求和應(yīng)答兩部分。在請(qǐng)求和應(yīng)答之間的空閑時(shí)間內(nèi),總線可以供其他的I/O使用,這樣就不必在整個(gè)I/O過(guò)程中都獨(dú)占總線。又稱為流水總線、懸掛總線或者包交換總線。I/O總線標(biāo)準(zhǔn)定義如何將設(shè)備與計(jì)算機(jī)進(jìn)行連接的文檔。通道處理機(jī)能夠執(zhí)行有限I/O指令,并且能夠被多臺(tái)外圍設(shè)備共享的小型DMA專用處理機(jī)。字節(jié)多路通道一種簡(jiǎn)單的共享通道,主要為多臺(tái)低速或中速的外圍設(shè)備服務(wù)。當(dāng)多臺(tái)設(shè)備同時(shí)連接到一個(gè)字節(jié)多路通道上時(shí),通道每連接一個(gè)外圍設(shè)備,只傳送一個(gè)字節(jié),然后又與另一臺(tái)設(shè)備連接,并傳送一個(gè)字節(jié)。依次循環(huán)工作。數(shù)組多路通道適于為高速設(shè)備服務(wù)。通道每連接一臺(tái)高速設(shè)備,傳送一個(gè)數(shù)據(jù)塊,傳送完成后,又與另一臺(tái)高速設(shè)備連接,再傳送一個(gè)數(shù)據(jù)塊。依次循環(huán)工作。選擇通道適于為多臺(tái)高速外圍設(shè)備服務(wù)。在傳送數(shù)據(jù)期間,該通道只能為一臺(tái)高速外圍設(shè)備服務(wù),但在不同的時(shí)間內(nèi)可以選擇不同的設(shè)備。通道流量一個(gè)通道在數(shù)據(jù)傳送期間,單位時(shí)間內(nèi)能夠傳送的最大數(shù)據(jù)量。通道最大流量一個(gè)通道在滿負(fù)荷工作狀態(tài)下的流量。虛擬DMA允許DMA設(shè)備直接使用虛擬地址,在DMA期間由硬件將虛擬地址映射到物理地址。異步I/O允許進(jìn)程在發(fā)出I/O請(qǐng)求后繼續(xù)執(zhí)行,直到該進(jìn)程需要使用請(qǐng)求的數(shù)據(jù)。異步I/O允許多個(gè)I/O請(qǐng)求同時(shí)處理以最大限度地利用帶寬。第7章 互連網(wǎng)絡(luò)互連網(wǎng)絡(luò)一種由開(kāi)關(guān)元件按照一定的拓?fù)浣Y(jié)構(gòu)和控制方式構(gòu)成的網(wǎng)絡(luò),用來(lái)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)中結(jié)點(diǎn)之間的相互連接。這些結(jié)點(diǎn)可以是處理器、存儲(chǔ)模塊或其他設(shè)備。線路交換源結(jié)點(diǎn)和目的結(jié)點(diǎn)之間的物理通路在整個(gè)數(shù)據(jù)傳送期間一直保持連接。分組交換把信息分割成許多組(又稱為包),將它們分別送入互連網(wǎng)絡(luò)。這些數(shù)據(jù)包可以通過(guò)不同的路徑傳送,到目的結(jié)點(diǎn)后再拼合出原來(lái)的數(shù)據(jù)。在分組交換中,結(jié)點(diǎn)之間不存在固定連接的物理通路。集中控制方式集中控制方式中,有一個(gè)全局的控制器接收所有的通信請(qǐng)求,并由它設(shè)置互連網(wǎng)絡(luò)的開(kāi)關(guān)連接。分散控制方式分散控制方式中,不存在全局的控制器,通信請(qǐng)求的處理和開(kāi)關(guān)的設(shè)置由互連網(wǎng)絡(luò)分散地進(jìn)行。靜態(tài)拓?fù)浣Y(jié)構(gòu)在各結(jié)點(diǎn)之間有專用的連接通路,且在運(yùn)行過(guò)程中不能改變。動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)根據(jù)需要設(shè)置互連網(wǎng)絡(luò)中的開(kāi)關(guān),從而對(duì)結(jié)點(diǎn)之間的連接通路進(jìn)行重新組合,實(shí)現(xiàn)所要求的通信模式。互連函數(shù)用變量x表示輸入(設(shè)x=0,1,N1),用函數(shù)f(x)表示輸出,通過(guò)數(shù)學(xué)表達(dá)式建立輸入端與輸出端的一一對(duì)應(yīng)關(guān)系。即在互連函數(shù)f的作用下,輸入端x連接到輸出端f(x)。也稱為置換函數(shù)或排列函數(shù)。循環(huán)互連函數(shù)f(x)有時(shí)可以采用循環(huán)表示,即:(x0 x1 x2 xj-1)。它表示f(x0)=x1,f(x1)=x2,f(xj-1)=x0j稱為該循環(huán)的長(zhǎng)度。交換函數(shù)實(shí)現(xiàn)二進(jìn)制地址編碼中第k位互反的輸入端與輸出端之間的連接。其表達(dá)式為均勻洗牌函數(shù)將輸入端分成數(shù)目相等的兩半,前一半和后一半按類似均勻混洗撲克牌的方式交叉地連接到輸出端(輸出端相當(dāng)于混洗的結(jié)果)。其函數(shù)關(guān)系可表示為 即把輸入端的二進(jìn)制編號(hào)循環(huán)左移一位。逆均勻洗牌函數(shù)將輸入端的二進(jìn)制編號(hào)循環(huán)右移一位而得到所連接的輸出端編號(hào)。其互連函數(shù)為逆均勻洗牌是均勻洗牌的逆函數(shù)。蝶式互連函數(shù)把輸入端的二進(jìn)制編號(hào)的最高位與最低位互換位置,便得到了輸出端的編號(hào)。定義為反位序函數(shù)將輸入端二進(jìn)制編號(hào)的位序顛倒過(guò)來(lái)求得相應(yīng)輸出端的編號(hào)。其互連函數(shù)為PM2I函數(shù)一種移數(shù)函數(shù),它是將各輸入端都循環(huán)移動(dòng)一定的位置連到輸出端。其函數(shù)為PM2+i (x) x2i mod NPM2-i(x) x2i mod N 其中,0xN1,0in1,nlog2N,N為結(jié)點(diǎn)數(shù)。網(wǎng)絡(luò)規(guī)模一般說(shuō)來(lái),網(wǎng)絡(luò)用圖來(lái)表示。這種圖由用有向邊或無(wú)向邊連接的有限個(gè)結(jié)點(diǎn)構(gòu)成。其結(jié)點(diǎn)數(shù)稱為網(wǎng)絡(luò)規(guī)模。結(jié)點(diǎn)度與結(jié)點(diǎn)相連接的邊的數(shù)目。入度在單向通道的情況下,進(jìn)入結(jié)點(diǎn)的通道數(shù)。出度在單向通道的情況下,從結(jié)點(diǎn)出來(lái)的通道數(shù)。距離對(duì)于網(wǎng)絡(luò)中的任意兩個(gè)結(jié)點(diǎn),從一個(gè)結(jié)點(diǎn)出發(fā)到另一個(gè)結(jié)點(diǎn)終止所需要跨越的邊數(shù)的最小值。網(wǎng)絡(luò)直徑網(wǎng)絡(luò)中任意兩個(gè)結(jié)點(diǎn)間最短路徑長(zhǎng)度的最大值。等分寬度在將某一網(wǎng)絡(luò)切成相等兩半的各種切法中,沿切口的最小通道邊數(shù)。結(jié)點(diǎn)之間的線長(zhǎng)兩個(gè)結(jié)點(diǎn)之間連線的長(zhǎng)度,用米、千米等表示。對(duì)稱網(wǎng)絡(luò)對(duì)于一個(gè)網(wǎng)絡(luò),如果從其中的任何一個(gè)結(jié)點(diǎn)看,拓?fù)浣Y(jié)構(gòu)都是一樣的,則稱此網(wǎng)絡(luò)為對(duì)稱網(wǎng)絡(luò)。線性陣列一種一維的線性網(wǎng)絡(luò),其中N個(gè)結(jié)點(diǎn)用N-1個(gè)鏈路連成一行。內(nèi)部結(jié)點(diǎn)度為2,端結(jié)點(diǎn)度為1,直徑為N-1,等分寬度b=1。環(huán)用一條附加鏈路將線性陣列的兩個(gè)端點(diǎn)連接起來(lái)而構(gòu)成的??梢詥蜗蚬ぷ鳎部梢噪p向工作。它是對(duì)稱的,結(jié)點(diǎn)度是常數(shù)2。雙向環(huán)的直徑為N/2,單向環(huán)的直徑是N。帶弦環(huán)在環(huán)的基礎(chǔ)上,給每個(gè)結(jié)點(diǎn)增加一條或兩條鏈路。增加的鏈路愈多,結(jié)點(diǎn)度愈高,網(wǎng)絡(luò)直徑就愈小。全連接網(wǎng)絡(luò)一種環(huán)網(wǎng)。其中任何兩個(gè)結(jié)點(diǎn)之間都有鏈路相連。循環(huán)移數(shù)網(wǎng)絡(luò)通過(guò)在環(huán)上每個(gè)結(jié)點(diǎn)到所有與其距離為2的整數(shù)冪的結(jié)點(diǎn)之間都增加一條附加鏈而構(gòu)成的。這就是說(shuō),如果j-i=2 r,r=0,1,2,n-1,網(wǎng)絡(luò)規(guī)模N=2n,則結(jié)點(diǎn)i與結(jié)點(diǎn)j連接。這種循環(huán)移數(shù)網(wǎng)絡(luò)的結(jié)點(diǎn)度為d=2n-1,直徑D=n/2。超立方體一種二元n立方體結(jié)構(gòu)。一般說(shuō)來(lái),一個(gè)n立方體由N=2n 個(gè)結(jié)點(diǎn)組成,它們分布在n維上,每維有兩個(gè)結(jié)點(diǎn)。交叉開(kāi)關(guān)網(wǎng)絡(luò)每個(gè)輸入端通過(guò)一個(gè)交叉點(diǎn)開(kāi)關(guān)無(wú)阻塞地與一個(gè)空閑輸出端相連。它是單級(jí)無(wú)阻塞置換網(wǎng)絡(luò),帶寬和互連特性最好。第8章 多處理機(jī)集中式共享存儲(chǔ)器結(jié)構(gòu)由幾個(gè)到幾十個(gè)處理器構(gòu)成的MIMD機(jī)器。各處理器通過(guò)大容量的Cache和總線互連,共享一個(gè)單獨(dú)的物理存儲(chǔ)器。又稱為對(duì)稱式共享存儲(chǔ)器結(jié)構(gòu)機(jī)器或者UMA機(jī)器。分布式存儲(chǔ)器結(jié)構(gòu)處理器的規(guī)模較大,存儲(chǔ)器分布到各個(gè)處理器上,而非采用集中式。系統(tǒng)中每個(gè)結(jié)點(diǎn)包含了處理器、存儲(chǔ)器、IO以及互連網(wǎng)絡(luò)接口。通信延遲通信延遲發(fā)送開(kāi)銷跨越時(shí)間傳輸延遲接收開(kāi)銷跨越時(shí)間數(shù)字信號(hào)從發(fā)送方的線路端傳送到接收方的線路端所經(jīng)過(guò)的時(shí)間。傳輸時(shí)間全部的消息量除以線路帶寬。分布式共享存儲(chǔ)器或可縮放共享存儲(chǔ)器體系結(jié)構(gòu)物理上分離的多個(gè)存儲(chǔ)器作為一個(gè)邏輯上共享的存儲(chǔ)空間進(jìn)行編址,如果一個(gè)處理器具有訪問(wèn)權(quán),就可以訪問(wèn)任何一個(gè)其他的局部存儲(chǔ)器。共享存儲(chǔ)器機(jī)器共享地址空間的機(jī)器。利用load和store指令中的地址隱含地進(jìn)行數(shù)據(jù)通信。消息傳遞機(jī)器多個(gè)地址空間的機(jī)器。數(shù)據(jù)通信要通過(guò)處理器間顯式地傳遞消息來(lái)完成。私有數(shù)據(jù)供一個(gè)單獨(dú)的處理器使用的數(shù)據(jù)。共享數(shù)據(jù)供多個(gè)處理器使用的數(shù)據(jù)。共享數(shù)據(jù)的遷移把遠(yuǎn)程的共享數(shù)據(jù)項(xiàng)副本放在本處理器局部的Cache中使用,從而降低了對(duì)遠(yuǎn)程共享數(shù)據(jù)的訪問(wèn)延遲。共享數(shù)據(jù)的復(fù)制把多個(gè)處理器需要同時(shí)讀取的共享數(shù)據(jù)項(xiàng)的副本放在各自局部Cache中使用。復(fù)制不僅降低了訪存的延遲,也減少了訪問(wèn)共享數(shù)據(jù)所產(chǎn)生的沖突。Cache一致性協(xié)議對(duì)多個(gè)處理器維護(hù)Cache一致性的協(xié)議。寫(xiě)順序化寫(xiě)操作順序化,使得對(duì)同一存儲(chǔ)器單元所進(jìn)行的寫(xiě)操作順序在所有處理器看來(lái)都是相同的。目錄用一種專用的存儲(chǔ)器所記錄的數(shù)據(jù)結(jié)構(gòu),它記錄著可以進(jìn)入Cache的每個(gè)數(shù)據(jù)塊的訪問(wèn)狀態(tài)、該塊在各個(gè)處理器的共享狀態(tài)以及是否修改過(guò)等信息。監(jiān)聽(tīng)法當(dāng)物理存儲(chǔ)器中的數(shù)據(jù)塊被調(diào)入Cache時(shí),其共享狀態(tài)信息與該數(shù)據(jù)塊一起放在該Cache中。系統(tǒng)中沒(méi)有集中的狀態(tài)表。這些Cache通常連在共享存儲(chǔ)器的總線上,各個(gè)Cache控制器通過(guò)監(jiān)聽(tīng)總線來(lái)判斷它們是否有總線上請(qǐng)求的數(shù)據(jù)塊。寫(xiě)作廢協(xié)議在一個(gè)處理器寫(xiě)某個(gè)數(shù)據(jù)項(xiàng)之前保證它對(duì)該數(shù)據(jù)項(xiàng)有唯一的訪問(wèn)權(quán)。寫(xiě)更新協(xié)議當(dāng)一個(gè)處理器寫(xiě)某數(shù)據(jù)項(xiàng)時(shí),通過(guò)廣播使其他Cache中所有對(duì)應(yīng)的該數(shù)據(jù)項(xiàng)副本進(jìn)行更新。宿主結(jié)點(diǎn)存放有存儲(chǔ)器塊和對(duì)應(yīng)地址目錄項(xiàng)的結(jié)點(diǎn)。原子交換將一個(gè)存儲(chǔ)單元的值和一個(gè)寄存器的值進(jìn)行交換,且交換是不可分的。旋轉(zhuǎn)鎖指處理器環(huán)繞一個(gè)鎖不停地旋轉(zhuǎn)而請(qǐng)求獲得該鎖。柵欄同步并行循環(huán)程序中一個(gè)常用的同步操作。柵欄強(qiáng)制所有到達(dá)該柵欄的進(jìn)程進(jìn)行等待,直到全部的進(jìn)程到達(dá)柵欄,然后釋放全部的進(jìn)程,從而形成同步。柵欄的典型實(shí)現(xiàn)是用兩個(gè)旋轉(zhuǎn)鎖:一個(gè)用來(lái)記錄到達(dá)柵欄的進(jìn)程數(shù),另一個(gè)用來(lái)封鎖進(jìn)程直至最后一個(gè)進(jìn)程到達(dá)柵欄。細(xì)粒度多線程技術(shù)在每條指令之間都能進(jìn)行線程的切換,從而導(dǎo)致多個(gè)線程的交替執(zhí)行。通常以時(shí)間片輪轉(zhuǎn)的方法實(shí)現(xiàn)這樣的交替執(zhí)行,在輪轉(zhuǎn)的過(guò)程中跳過(guò)當(dāng)時(shí)處于停頓的線程。粗粒度多線程技術(shù)線程之間的切換只發(fā)生在時(shí)間較長(zhǎng)的停頓出現(xiàn)時(shí)。同時(shí)多線程技術(shù)簡(jiǎn)稱SMT。它是一種在多流出、動(dòng)態(tài)調(diào)度的處理器上同時(shí)開(kāi)發(fā)線程級(jí)并行和指令級(jí)并行的技

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論