




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘要流水線技術(shù)是提高系統(tǒng)吞吐率的一項(xiàng)強(qiáng)大的實(shí)現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。20世界60年代早期的一些高端機(jī)器中第一次采用了流水線技術(shù)。第一個(gè)采用指令流水線的機(jī)器是IBM7030(又稱作Stretch計(jì)算機(jī))。后來的CDC 6600同時(shí)采用了流水線和多功能部件。到了20世紀(jì)80年代,流水線技術(shù)成為RISC處理器設(shè)計(jì)方法中最基本的技術(shù)之一。RISC設(shè)計(jì)方法的大部分技術(shù)都直接或者間接以提高流水線性能為目標(biāo)。從此以后,流水線技術(shù)也被有效地應(yīng)用到CISC處理器的設(shè)計(jì)中。Intel i486是IA32體系結(jié)構(gòu)中的第一個(gè)流水線實(shí)現(xiàn)。Digital的VAX和Motorola的M68K的流水線版本在商業(yè)上
2、也取得了成功。流水線技術(shù)是當(dāng)前指令集處理器設(shè)計(jì)中廣泛采用的技術(shù)。在這里我們將重點(diǎn)放在(標(biāo)量)流水線處理器的設(shè)計(jì)。流水線處理器設(shè)計(jì)中的許多方法和技術(shù),例如用于檢測和化解相關(guān)的流水線互鎖機(jī)制,都是標(biāo)量處理器設(shè)計(jì)的基本方法。當(dāng)前的趨勢是朝著超深度流水線的方向發(fā)展。流水線的深度已經(jīng)從不到10發(fā)展到超過20.深度流水是獲得高速始終頻率的必要條件,這是提高處理器性能的一個(gè)非常有效的方法。有跡象表明。這種趨勢還將持續(xù)下去。 關(guān)鍵詞 流水線技術(shù) 猜測法 中斷處理 吞吐率 指令重疊 加快短循環(huán)程序的處理AbstractPipeline technology is to improve the system th
3、roughput of a powerful technology, and does not require repetitive set hardware. The 20 world early 60's some high-end machines used the first pipeline technology. The first use of the instruction pipeline machine is IBM7030(also called Stretch computer ). Later CDC6600at the same time lines and
4、 multiple functional components.In the nineteen eighties, pipeline technology to become the RISC processor design method is one of the most basic techniques. The design method of RISC most of the techniques are directly or indirectly to improve performance as the goal line. Since then, assembly line
5、 techniques have also been applied effectively to the CISC processor. Intel i486 is IA32 architecture is the first in a pipelined implementation. Digital VAX and Motorola M68K pipelined version also achieved success in business.Pipeline technology is the current instruction set processor is widely u
6、sed in the design of technology. Here we will focus on the ( scalar ) pipelined processor design. A pipelined processor in the design of many methods and techniques, for example, used to detect and resolve the relevant pipeline interlock mechanism, is a scalar processor design method.The current tre
7、nd is towards super depth line direction. Pipeline depth has less than10 to the development of more than 20depth of water is always necessary to obtain high speed frequency, which is to improve the performance of a very effective method. There are signs. This trend will continue.Keywords: Pipeline t
8、echnology forecast method of interrupt processing throughput instruction overlapping accelerate short cycle program processing目錄第一章緒論31.1現(xiàn)代RISC中的流水線技術(shù)31.1.1超流水線技術(shù)31.1.2超標(biāo)量技術(shù)41.1.3流水技術(shù)在Pentium系列微處理器中的實(shí)現(xiàn)4第二章流水線基礎(chǔ)72.1流水線概念72.1.1指令重疊72.1.2流水線82.1.3流水線的特點(diǎn)92.1.4流水線的分類102.2流水線的主要性能112.2.1吞吐率122.2.2加速比和效率12
9、第三章指令流水線設(shè)計(jì)153.1流水線理想假設(shè)153.1.1一致的運(yùn)算分量153.1.2重復(fù)的運(yùn)算163.1.3獨(dú)立的運(yùn)算173.2指令流水線183.2.1指令流水線設(shè)計(jì)183.2.2指令集體系結(jié)構(gòu)的影響193.2.3流水線分級的考慮203.3流水線處理器設(shè)計(jì)213.3.1保持流水段均衡213.3.2統(tǒng)一指令類型223.3.3減少流水線停頓26第四章流水線中各種相關(guān)及中斷處理274.1流水線中相關(guān)274.2資源相關(guān)274.3數(shù)據(jù)相關(guān)284.3.1指令相關(guān)284.3.2主存空間操作數(shù)相關(guān)294.3.3通用寄存器組相關(guān)294.4控制相關(guān)314.4.1猜測法314.4.2加快和提前形成條件碼324.4
10、.3采取轉(zhuǎn)移延遲324.4.4加快短循環(huán)程序的處理32第五章中斷處理與流水線調(diào)度355.1中斷處理355.2流水線調(diào)度35第六章總結(jié)與展望39致謝41參考文獻(xiàn)42第1章 緒論流水線技術(shù)是提高系統(tǒng)吞吐率的一項(xiàng)強(qiáng)大的實(shí)現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。20世界60年代早期的一些高端機(jī)器中第一次采用了流水線技術(shù)。第一個(gè)采用指令流水線的機(jī)器是IBM7030(又稱作Stretch計(jì)算機(jī))。后來的CDC 6600同時(shí)采用了流水線和多功能部件。到了20世紀(jì)80年代,流水線技術(shù)成為RISC處理器設(shè)計(jì)方法中最基本的技術(shù)之一。RISC設(shè)計(jì)方法的大部分技術(shù)都直接或者間接以提高流水線性能為目標(biāo)。從此以后,流水線技術(shù)
11、也被有效地應(yīng)用到CISC處理器的設(shè)計(jì)中。Intel i486是IA32體系結(jié)構(gòu)中的第一個(gè)流水線實(shí)現(xiàn)。Digital的VAX和Motorola的M68K的流水線版本在商業(yè)上也取得了成功。流水線技術(shù)是當(dāng)前指令集處理器設(shè)計(jì)中廣泛采用的技術(shù)。在這里我們將重點(diǎn)放在(標(biāo)量)流水線處理器的設(shè)計(jì)。流水線處理器設(shè)計(jì)中的許多方法和技術(shù),例如用于檢測和化解相關(guān)的流水線互鎖機(jī)制,都是標(biāo)量處理器設(shè)計(jì)的基本方法。當(dāng)前的趨勢是朝著超深度流水線的方向發(fā)展。流水線的深度已經(jīng)從不到10發(fā)展到超過20.深度流水是獲得高速始終頻率的必要條件,這是提高處理器性能的一個(gè)非常有效的方法。有跡象表明。這種趨勢還將持續(xù)下去。1.1 現(xiàn)代RIS
12、C中的流水線技術(shù)1.1.1 超流水線技術(shù)超級流水線(超級流水線集)技術(shù)是用在一個(gè)并行處理技術(shù)。在他稀疏的水,增加的數(shù)量和提高頻率,從而在每個(gè)機(jī)器周期完成一個(gè)或2個(gè)浮點(diǎn)操作。其實(shí)質(zhì)是以時(shí)間換取空間。超純水機(jī)的特點(diǎn)是在所有的功能單位只使用水,并具有更高的時(shí)鐘頻率和更深的水的深度。1.1.2 超標(biāo)量技術(shù)超標(biāo)量(Super Scalar)技術(shù)是RISC采用的有一種處理技術(shù)。它通過內(nèi)裝多條流水線來同時(shí)執(zhí)行多個(gè)處理。其實(shí)質(zhì)就是以空間換取時(shí)間。流水線實(shí)現(xiàn)中的問題及解決:這是一個(gè)問題的連續(xù)流動(dòng),這似乎并沒有流下,從而獲得更高的效率。停止的原因很多,除了編譯生成的目標(biāo)程序可以發(fā)揮結(jié)構(gòu)的作用,水,或存儲系統(tǒng)可以提
13、供一個(gè)連續(xù)流動(dòng)所需的指令和操作數(shù),基本上還出現(xiàn)相關(guān),轉(zhuǎn)移和中斷指令相關(guān)的。解偏相關(guān)有2種方法:后退方法和路徑的方法;解決全球相互關(guān)系有三種方法:猜測轉(zhuǎn)移,加快推進(jìn)形成條件代碼,加快短循環(huán)程序處理。1.1.3 流水技術(shù)在Pentium系列微處理器中的實(shí)現(xiàn)流水線技術(shù)早在英特爾凌動(dòng)芯片已經(jīng)實(shí)現(xiàn)。奔騰系列處理器產(chǎn)品是一個(gè)高級的超標(biāo)量處理器。它是建筑在一般整數(shù)流水線和一個(gè)浮點(diǎn)單元在線,這使處理器執(zhí)行整數(shù)指令。一對透明的軟件動(dòng)態(tài)分支預(yù)測機(jī)制可以使分支流水線堵塞最小化。奔騰處理器可以在一個(gè)時(shí)鐘周期內(nèi)完成2指示,流水線完成命令。第一個(gè)邏輯管叫“你”的流水線,一次電話“五”流水線。在任何一個(gè)給定的指令解碼時(shí),它
14、是安排后面的指令將被檢查。和,如果可能的話,第一個(gè)指令被分配到“你”流水線執(zhí)行指令,其次是分配到“勝利”的流水線執(zhí)行。如果不是,那么第一個(gè)指令設(shè)置為“你”“五”流水線流水線執(zhí)行,不安排指令操作。教學(xué)中的操作和流水線的順序執(zhí)行所產(chǎn)生的效果是完全一樣的。當(dāng)流水線堵塞,隨后的指令指令是阻止任何流水線。技術(shù)的奔騰處理器的整數(shù)流水線增加一個(gè)額外的處理階段。指令代碼緩沖區(qū)緩存預(yù)取,美聯(lián)儲的“預(yù)”(公積金)階段,并在“提取”(女)階段的教學(xué)語法分析。此外,所有前綴的解碼階段。在教學(xué)第一先出(先進(jìn)先出)指令緩沖區(qū)中的語法分析和指令解碼分開,緩沖區(qū)位于的階段,the1stage(D 1)之間的解碼。先進(jìn)先出緩沖
15、空間指令處理最多四個(gè)指示。先進(jìn)先出緩沖區(qū)是透明的,當(dāng)它是空的,沒有額外的延遲。在每個(gè)時(shí)鐘周期的指令,指令緩沖區(qū)(按有效代碼字節(jié),和其他因素,如前綴)。然后,對指令的先進(jìn)先出緩沖射出去,到d1stage。由于指令的平均執(zhí)行效率為每個(gè)時(shí)鐘周期不超過2指令,所以通常全是先進(jìn)先出。只要是先進(jìn)先出,你可以防止取指令和語法分析產(chǎn)生阻塞。如果這阻塞,先進(jìn)先出也可以使阻塞的執(zhí)行管線階段發(fā)生。但如果是先進(jìn)先出空,因?yàn)闆]有指令流水線操作,這可能導(dǎo)致執(zhí)行一個(gè)塊。長指令或一個(gè)前綴可以在先進(jìn)先出入口產(chǎn)生阻塞。超流水線(Super Pipeline)在本質(zhì)上仍為一種流水線技術(shù),但它做了以下的改進(jìn):1、流水線條數(shù)從奔騰的兩
16、條增至三條,還有十一個(gè)獨(dú)立的執(zhí)行單元并行支持。2、在實(shí)施無序執(zhí)行(采取所有加工)技術(shù)。當(dāng)一個(gè)指令需要一些數(shù)據(jù)并不能立即執(zhí)行,它將被刪除線和等數(shù)據(jù),處理器是立即執(zhí)行的指示下,就像在裝配線發(fā)現(xiàn)產(chǎn)品不合格,但被淘汰,等原因。這樣,可以防止無法執(zhí)行命令影響整個(gè)生產(chǎn)線的效率。3、在p6instruction分為更細(xì)的相位,使邏輯設(shè)計(jì),工藝等更為簡化,提高了速度。在486chip,指令一般分為五個(gè)部分,奔騰也是如此。在六,由于采用了類似的精簡指令集計(jì)算機(jī)技術(shù),一個(gè)指令分為十四階段。這大大提高了線速度。六系列處理器使用動(dòng)態(tài)執(zhí)行結(jié)構(gòu)。結(jié)構(gòu)通過一個(gè)硬件寄存器重命名和分支預(yù)測的方法,將亂序執(zhí)行和投機(jī)執(zhí)行的合成。這
17、些處理器有一個(gè)有序的進(jìn)入流水線,它將英特爾386macro指令分為簡單的微操作(或國外)和一個(gè)可以處理這些微操作外序的超標(biāo)量處理器核心。亂序處理器內(nèi)核包含幾行,連接整數(shù),浮點(diǎn)數(shù)和跳躍,內(nèi)存執(zhí)行單元。幾種不同的執(zhí)行單元可以集成在同一行。例如:一個(gè)整數(shù)地址邏輯單元和浮點(diǎn)執(zhí)行單元(加法器,乘法器和除法器)共用線。數(shù)據(jù)緩沖區(qū)緩存由一個(gè)專用的讀端口和其他存儲端口交錯(cuò)成。最簡單的手術(shù)(國際鋁,浮點(diǎn)此外,甚至浮點(diǎn)乘法)每時(shí)鐘周期才能完成一個(gè)工作通量裝配線。浮點(diǎn)除法不能進(jìn)入流水線,長和短延遲延遲操作可以在平行處理。六系列線由三部分組成:前端(按序有序的組織單位,核心(前端)序序核心)單元和有序退出(有序退休)
18、單位。英特爾最近推出的奔騰處理器使用的p6dynamic執(zhí)行技術(shù),包括多個(gè)分支預(yù)測,數(shù)據(jù)流分析,推測執(zhí)行。同時(shí),奔騰處理器有一個(gè)流水線浮點(diǎn)單元(浮點(diǎn)運(yùn)算單元),可支持32位,64位和80位浮點(diǎn)運(yùn)算。英特爾最近發(fā)表的奔騰4,奔騰4basic指令管線長度達(dá)到20級,是六建筑2倍,更比AM DAth lon。時(shí)間線可以使處理器運(yùn)行在更高的頻率,從而提高處理器的性能,但可能有一些指令執(zhí)行延遲。第2章 流水線基礎(chǔ)加快機(jī)器語言的解釋過程,提高機(jī)器的速度是一個(gè)基本任務(wù)的計(jì)算機(jī)設(shè)計(jì)。這可以實(shí)現(xiàn)的方式。一種方法是增加了設(shè)備的速度,更好的算法,增加指令的微平行度,減少解釋過程需要擊敗多項(xiàng)措施加快機(jī)器指令的解釋。另
19、一種方法是使用重疊和水的方法,同時(shí),多個(gè)2解釋整個(gè)過程,從而加快整個(gè)機(jī)器語言程序的解釋。流水線技術(shù)現(xiàn)已廣泛應(yīng)用于微處理芯片的關(guān)鍵技術(shù),英特爾公司的微處理器應(yīng)用技術(shù)首次實(shí)現(xiàn)。2.1 流水線概念指揮控制方法三:序列的方法,重疊,運(yùn)行模式。順序法是指機(jī)器指令序列之間的串行執(zhí)行的機(jī)器指令,和每個(gè)微指令的執(zhí)行順序。雖然這種方法的優(yōu)點(diǎn)是控制簡單但速度上不去,利用率低的機(jī)器零件。重疊模式是指解釋第鉀指令操作完成之前開始的鉀1instruction解釋。通常使用的重疊,即,在任何時(shí)間,命令解析單元和指令執(zhí)行部只有相鄰指令重疊的解釋。這意味著指令解釋速度增加,控制不是很復(fù)雜,但出現(xiàn)沖突,轉(zhuǎn)移,相關(guān)的問題,這些都
20、是需要在設(shè)計(jì)解決。水是一個(gè)并行或并行嵌入計(jì)算機(jī)系統(tǒng)中的一種形式。它是重疊的連續(xù)過程分解為一個(gè)進(jìn)程的個(gè)數(shù),每個(gè)進(jìn)程的特殊模塊獨(dú)立有效的并行工程技術(shù)。論“流”可以被視為“重疊”的延伸。不同的是一個(gè)“重疊”只是一個(gè)指令的解釋是分解成2個(gè)過程,與“水”分解為多個(gè)子過程。2.1.1 指令重疊一個(gè)指令執(zhí)行過程可以分為取指令,類型和執(zhí)行一三個(gè)過程(圖2.1)。取指令,取出指令,指令寄存器。教學(xué)分析指指令的操作碼進(jìn)行譯碼,解決和地址字段地址操作數(shù)的真正形成,這是地址讀取操作,但準(zhǔn)備取下一條指令是預(yù)先形成的下一條指令的地址。指令執(zhí)行是指一些操作,加工業(yè)務(wù),或存儲操作結(jié)果。指令的重疊解釋方法是指,在解釋的指令操作
21、完成之前,開始解釋鉀1instruction。假設(shè)這三個(gè)過程,分別以不同的硬件(命令控制器,分析和執(zhí)行單元),當(dāng)K線指令在分析階段,該控制器在空閑狀態(tài),這個(gè)時(shí)候可以為鉀1instruction到取指令操作,當(dāng)K線的指令被執(zhí)行時(shí),解析器在空閑狀態(tài),并可以進(jìn)行鉀1instruction分析(圖2.2)。顯然,重疊的解釋方式和不能加快指令來實(shí)現(xiàn)的,但可以加速相鄰的指令和程序的解釋。圖2.1 機(jī)器指令的順序執(zhí)行方式圖2.2 指令的重疊解釋方式2.1.2 流水線水實(shí)際上是重疊延伸,上面提到的重疊模型實(shí)際上是一個(gè)simple3水模型。如果分析和執(zhí)行階段分為指令解碼,執(zhí)行操作,存儲和計(jì)算結(jié)果,當(dāng)鉀1inst
22、ruction在指令執(zhí)行的操作時(shí)可以開始解碼,而不必等到分析鉀完全結(jié)束。這樣一個(gè)指令周期可以同時(shí)executing5指令。裝配線的工作方式是一個(gè)反復(fù)的過程分解成幾個(gè)子進(jìn)程,每個(gè)進(jìn)程可以與其他子過程在同一時(shí)間。由于這種工作方法在工程和生產(chǎn)線是非常相似的,因此,他把工作流程。該處理器可以用在幾乎所有地區(qū)的工作流程。在指令執(zhí)行使用線,到指令流水線。手術(shù)操作元件,如浮點(diǎn)加法器,浮點(diǎn)乘法器可以被用來作為部分的流水線,流水線。訪問主存儲器單元也可用于流水線。即使在處理器,機(jī)器也可以使用流水線。圖2.3 指令流水線2.1.3 流水線的特點(diǎn)從上面的分析中可以看到,在處理機(jī)中采用流水線方式與采用傳統(tǒng)的串行方式相
23、比,具有一下特點(diǎn):1、在處理流水線必須是連續(xù)的任務(wù),只有不斷提供任務(wù)才能充分發(fā)揮效率的流水線。比如說呢。如果浮點(diǎn)加法器的充分發(fā)揮,需要連續(xù)提供浮點(diǎn)加法器。然而,由于程序本身的原因和程序設(shè)計(jì)過程所造成的一些原因,數(shù)據(jù)關(guān)聯(lián),不可能為浮點(diǎn)加法器是提供一個(gè)連續(xù)運(yùn)行。因此,在使用流水線的方式處理,尤其是當(dāng)線的多個(gè)系列,應(yīng)該在軟件和硬件方面的線提供連續(xù)的任務(wù),為了提高效率,流水線。2、任務(wù)分解成幾個(gè)相關(guān)的任務(wù),每個(gè)任務(wù)由一個(gè)專門的功能組件實(shí)現(xiàn)。因此,線實(shí)際上是一個(gè)功能成分分解成多個(gè)獨(dú)立的功能部件,并依靠多個(gè)功能部件并行工作縮短程序的執(zhí)行時(shí)間。在流水線,任務(wù)通常被稱為一個(gè)過程,或一個(gè)功能段。3、在每一個(gè)功能
24、單位線回有一個(gè)緩沖寄存器,或鎖存器,用于保存所執(zhí)行的結(jié)果。這是因?yàn)樵诿恳欢蔚难舆t可以不相等,因此,在轉(zhuǎn)移的任務(wù),必須通過緩沖寄存器。當(dāng)一個(gè)函數(shù)的時(shí)間范圍較大,設(shè)立多個(gè)緩沖寄存器。4、線段的對稱性,即相同的時(shí)間要求盡可能,否則將造成“堵”,“停止”和其他問題。執(zhí)行時(shí)間最長的部分將成為整個(gè)線路的“瓶頸”,那么,線段將受到限制,不能充分發(fā)揮作用。只有當(dāng)全是滿滿的,整個(gè)流水線的效率可以得到充分發(fā)揮。為了設(shè)計(jì)出高效率的流水線,要充分注意上述問題。2.1.4 流水線的分類從不同的角度,根據(jù)不同的角度,可以分成許多不同類型的線。通常所說的一些線路,通常按一定的角度,或從一個(gè)特定角度線的分類結(jié)果。因此,從名字
25、上只能反映一維線功能或特征。按照流水線的各功能段之間是否有反饋信號,可以把流水線分為線性流水線合非線性流水線。線性線是線各功能部分的每一個(gè)系列,輸入數(shù)據(jù)從流水線部分進(jìn)入,從另一部分流出。數(shù)據(jù)流水線通過,沒有一個(gè)功能部分流經(jīng)的第一,只有通過A線性線通常只能完成固定功能,在現(xiàn)代計(jì)算機(jī)系統(tǒng),線性線已被廣泛應(yīng)用在指令執(zhí)行過程中,各種算術(shù)運(yùn)算,內(nèi)存訪問操作。圖2.4 非線性流水線非線性流水線經(jīng)常用于遞歸調(diào)用,或者構(gòu)成多功能流水線。根據(jù)線使用不同層次,可以將流水線分成功能組件,處理器和處理器和其他類型。處理器的流水線階段的指令流水線,他把一個(gè)指令執(zhí)行過程分解成若干個(gè)子過程,每個(gè)子進(jìn)程中的一個(gè)獨(dú)立的功能部件
26、。特征線,又稱為操作線,如浮點(diǎn)加法器流水線,浮點(diǎn)乘法器組件。處理器間流水線也被稱為流水線,一般是兩年多處理器通過記憶的串行連接,每個(gè)處理器在數(shù)據(jù)流的不同部分分別進(jìn)行處理。 圖2.6 指令流水線流水線又可分為單功能流水線和多功能流水線。顧名思義,單功能流水線只能完成固定的單一功能,多流水線通過各個(gè)段間進(jìn)行不同的連接,在不同的時(shí)間內(nèi)或者統(tǒng)一時(shí)間內(nèi)通過不同的連接方式完成不同的功能。多功能流水線,根據(jù)同一時(shí)間是否可以連接到各種不同的方式,并執(zhí)行各種任務(wù),你可以把多功能流水線分為靜態(tài)和動(dòng)態(tài)線。靜態(tài)線是在同一時(shí)間,多功能流水線部分只有按照一定的固定連接,實(shí)現(xiàn)一個(gè)固定功能。只有當(dāng)根據(jù)連接方式工作的所有任務(wù)脫
27、節(jié),重新連接,完成其他功能。動(dòng)態(tài)線的同時(shí),可以根據(jù)不同的連接方式,完成各種不同的功能。這一次請求行功能不能沖突。除了以上幾種分類方法外,還可以根據(jù)其他標(biāo)準(zhǔn),從不同角度對流水線進(jìn)行分類。2.2 流水線的主要性能衡量流水線主要性能的指標(biāo)主要有吞吐率,加速比和效率。2.2.1 吞吐率吞吐率是指在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或者輸出的結(jié)果數(shù)量。即: 式(2.1)中,n為任務(wù)數(shù),是處理完成n個(gè)任務(wù)做用的時(shí)間。本式為計(jì)算吞吐率最基本的公式。有的時(shí)候我們還需要求一條流水線的最大吞吐率: 式(2.2)中為第k個(gè)子過程所花費(fèi)的時(shí)間。最大吞吐率受限于流水線中最慢子過程即瓶頸子過程所需要的時(shí)間。為了提高流水線的
28、最大吞吐率,首先要找出瓶頸,然后設(shè)法消除此瓶頸。消除瓶頸有兩種辦法,一是將瓶頸子過程再細(xì)分,另一種辦法是通過重復(fù)設(shè)置多套瓶頸段并聯(lián),讓他們交叉進(jìn)行。后一種方法需要解決好在各并行子過程之間的任務(wù)分配合同步控制,比起瓶頸子過程再細(xì)分控制要復(fù)雜、設(shè)備量要多一些。2.2.2 加速比和效率完成一批任務(wù),不使用流水線所花的時(shí)間與使用流水線所用時(shí)間直比即為流水線的加速比。如果不使用流水線,即順序執(zhí)行所用時(shí)間為,使用流水線的執(zhí)行時(shí)間為,則流水線的加速比為: 這是計(jì)算流水線加速比的基本公式。流水線效率是指設(shè)備的利用率和流水線。在時(shí)空圖,線效率定義為,任務(wù)時(shí)間區(qū)域與鉀功能區(qū)占用空間面積比。因此,效率線包含2個(gè)方面
29、的時(shí)間和空間因素。事實(shí)上,在任務(wù)的時(shí)間區(qū)域是順序執(zhí)行的任務(wù)使用的總時(shí)間。而一個(gè)流水線,完整的總?cè)蝿?wù)在顳區(qū),這是一個(gè)對完成任務(wù)的總時(shí)間。是一個(gè)段線效率可表示為: 此式是計(jì)算流水線效率的一般公式。如果流水線各段執(zhí)行時(shí)間均相等,且輸入的n個(gè)任務(wù)是連續(xù)的,則一條k段流水線的效率為: 從流水線的時(shí)空圖上來看,上式分母部分是完成n個(gè)任務(wù)所用時(shí)間與k個(gè)功能段所圍成的總面積,而分子部分則是k個(gè)功能段實(shí)際所占有的面積。因此,利用時(shí)空圖來計(jì)算流水線的效率十分方便。第3章 指令流水線設(shè)計(jì)我們做任何事情,都希望能夠達(dá)到理想狀態(tài),但這往往是不現(xiàn)實(shí)的,我們研究理想狀態(tài)的意義就在于給出一個(gè)衡量的標(biāo)準(zhǔn),并且努力向這個(gè)標(biāo)準(zhǔn)靠近
30、,這在指令流水線的設(shè)計(jì)過程中也不例外。3.1 流水線理想假設(shè)為目的的指令流水線,我們希望能夠最大限度地提高系統(tǒng)性能。然而在實(shí)踐中,但往往不這樣做,因?yàn)橹挥性诶硐氲臈l件下,等級度流水線設(shè)計(jì)可以提高吞吐量的時(shí)間,理想的情況是主要基于三假說,我們稱它為“線理想的假設(shè)”,他是正確評估流水線設(shè)計(jì)。設(shè)計(jì)各種方案解決實(shí)際線和線之間的矛盾,理想的假設(shè),它們構(gòu)成的主要工藝流水線的設(shè)計(jì)。流水線的理想假設(shè)包括:1. 一致的運(yùn)算分量:要完成的整個(gè)運(yùn)算量可以均勻的分成延遲一只的若干分量。2. 重復(fù)的運(yùn)算:輸入數(shù)據(jù)有大量相同的、重復(fù)的運(yùn)算。3. 獨(dú)立的運(yùn)算:所有相同的重復(fù)運(yùn)算之間沒有相關(guān)性。3.1.1 一致的運(yùn)算分量第一
31、行的理想的假說解釋,會使計(jì)算部分水均勻地分為鉀延遲相同的組件。這意味著以前的設(shè)計(jì)可以分為鉀平衡水段。如果以前的總計(jì)算延遲,不是設(shè)計(jì)類型的水循環(huán),然后鉀流水線設(shè)計(jì)風(fēng)格的周期是鉀,也就是流水在每一段的延遲?;谶@一假設(shè),時(shí)鐘頻率可以增加,并提高吞吐量倍。在實(shí)際的流水線設(shè)計(jì),這種假設(shè)可能不成立??偛僮鹘M件完全均勻的分成幾個(gè)部分是不可能的。在3級流水線浮點(diǎn)加法器的例子,設(shè)置總延遲for500ns,線分為3個(gè)部分,每個(gè)部分都200ns延遲,容錯(cuò),200ns。顯然,總延誤是不均勻分布在整個(gè)線路的三段。因?yàn)榫€路時(shí)鐘周期決定推遲最長延遲時(shí)間較短,所以會有一些無效或失敗時(shí)。如浮點(diǎn)加法器的后半部分,這是100 n
32、s的無效時(shí)間,我們可以稱它為“內(nèi)部碎片”。由于內(nèi)部分裂,執(zhí)行同樣的操作延遲將增加。有一種內(nèi)在的假設(shè),即水段之間引入緩沖不會帶來額外的延遲線時(shí)鐘信號,也不引入額外的延遲。同樣,假設(shè)在實(shí)踐中是不成立的。在一些例子中,為了保證信號的時(shí)鐘信號準(zhǔn)確地成立的,注冊成立,所以總時(shí)鐘周期延長,從而導(dǎo)致實(shí)際業(yè)績可能不到3次。第一行的理想假設(shè)主要包含以下兩點(diǎn):以前的操作部件分為多個(gè)部分,不引入一個(gè)無效的時(shí)間;一個(gè)緩沖和時(shí)鐘不會帶來額外的延遲介紹。在芯片級設(shè)計(jì),可以使用一些鎖,如·鎖可以使時(shí)鐘產(chǎn)生延遲盡可能小。那么如何來操作均勻分成各種水段構(gòu)成的流水線設(shè)計(jì)的第一個(gè)挑戰(zhàn)。我們的目標(biāo)是,盡可能使所有水段保持平
33、衡,減少內(nèi)部分裂。由于各水段不能完全平衡內(nèi)部分裂是不滿足第一行的理想假設(shè)的主要原因,這將是一個(gè)架空,并導(dǎo)致鉀級管線設(shè)計(jì)吞吐量增長達(dá)到理想的倍。3.1.2 重復(fù)的運(yùn)算第二線的理想的假說解釋,線反復(fù)執(zhí)行相同的操作。這意味著在一組輸入數(shù)據(jù),一些運(yùn)營商是相同的,這些操作執(zhí)行。每次執(zhí)行時(shí),線路提供組件執(zhí)行順序是相同的。因?yàn)楦↑c(diǎn)加法器的例子,將含有大量浮點(diǎn)數(shù)在一起,對每一個(gè)操作數(shù)是通過same3線。這一集,每次重復(fù)計(jì)算可以使用所有的小節(jié)線。在我們的例子,這顯然是建立。浮點(diǎn)加法滿足這個(gè)假設(shè),因?yàn)楸揪€只完成一個(gè)功能,例如,浮點(diǎn)加法運(yùn)算。如果你想設(shè)計(jì)一個(gè)流水線完成多種功能,這種假設(shè)是不滿意。例如,設(shè)計(jì)一個(gè)可以計(jì)
34、算加法和乘法運(yùn)算流水線可以計(jì)算。多功能流水線,一個(gè)單獨(dú)的功能可能不需要所有的流動(dòng)部分,可由水段的不同子集完成不同的功能。因?yàn)檩斎氲臄?shù)據(jù)在一個(gè)同步的方式通過流水線,有些數(shù)據(jù)可能不需要一些水段,當(dāng)他們經(jīng)過一段,什么也不做。這并沒有使用或自由流動(dòng)的部分帶來另一種形式的流水線,可稱為“外碎片”。和內(nèi)部分裂的外部碎片是類似的,一個(gè)流水線架空,應(yīng)盡量減少。第二線的理想假設(shè)所有水段總是充分利用。除了表明不存在外部碎片,這個(gè)假設(shè)也說明了數(shù)據(jù)的處理是許多。第一數(shù)據(jù)線最后一段需要鉀鉀循環(huán)周期,稱為“填充”。最后的數(shù)據(jù)線的第一段,也需要鉀定期排空流水線。在灌裝和排空過程中,并不是所有的流水線階段的工作狀態(tài)。如果有大
35、量輸入數(shù)據(jù)的處理,可以使線的填充和排空時(shí)間只有一小部分的總時(shí)間。因此,許多水段可認(rèn)為一直處于工作狀態(tài)。3.1.3 獨(dú)立的運(yùn)算第三線假說解釋,線加工操作是相互獨(dú)立的。這意味著,所有同一時(shí)間居住在流水線的操作是不相關(guān)的,也就是說,任何兩者之間不存在的數(shù)據(jù)或控制。這一假設(shè)保證線在“流動(dòng)”的工作方法,即后面操作不是因?yàn)榇嬖谙嚓P(guān)性而等待操作完成。因?yàn)楦↑c(diǎn)加法器的例子,這個(gè)假設(shè)是成立的。如果有更多的操作數(shù)在一起,一對操作數(shù)的增加不是因?yàn)榱硪粋€(gè)加法的結(jié)果。這些操作可以依照“流”的處理。這一假設(shè)的一些行可能不成立。后面的操作可能需要在前面的結(jié)果,和2個(gè)操作也可能居住在流水線。如果是后者的經(jīng)營已進(jìn)入了結(jié)果所需的
36、水,但這次在術(shù)前尚未到達(dá)產(chǎn)生的結(jié)果流動(dòng)段,這是背后的操作必須等待期。這是被稱為“流水線攤位”。如果一個(gè)操作暫停線一定時(shí)間,隨后的所有操作可能被迫停頓。流水線攤位不可避免地導(dǎo)致一些處于閑置狀態(tài),它可被視為一個(gè)動(dòng)態(tài)外部碎片,從而使吞吐量率降低。如果相關(guān)是不可避免的,設(shè)計(jì)時(shí),盡量多的停止線。3.2 指令流水線前三行是行的理想假設(shè)。在大多數(shù)情況下,算術(shù)流水線的實(shí)際情況與理想的假設(shè)是不太大。然而,對指令流水線,和實(shí)際情況之間的差距會更理想的假設(shè)。而連接過橋正式指令管線設(shè)計(jì)有趣和有挑戰(zhàn)性的地方。設(shè)計(jì)中的流水線處理器,三個(gè)假設(shè)成為三大挑戰(zhàn)。三大挑戰(zhàn),同時(shí)與探索的流水線處理器的設(shè)計(jì)理念。3.2.1 指令流水線
37、設(shè)計(jì)設(shè)計(jì)中的命令行,三行,成為設(shè)計(jì)目標(biāo)。一個(gè)指令處理是精簡業(yè)務(wù),它必須被分成多個(gè)作為輔助操作,得到的平衡線。處理指令延遲時(shí)間成為“指令周期”,每一段時(shí)間延遲決定了機(jī)器周期?!?。指令周期是一個(gè)邏輯概念,它指的是執(zhí)行的指令周期。一個(gè)程序,包括一個(gè)多元化的指令,程序的執(zhí)行相當(dāng)于相應(yīng)的操作重復(fù)執(zhí)行。機(jī)器周期是一個(gè)物理概念,它包含了數(shù)字邏輯電路的存儲單元的時(shí)鐘,同時(shí)它也是流水線時(shí)鐘周期。指令流水線設(shè)計(jì)的主要任務(wù)可以看作是將邏輯指令周期映射到物理機(jī)器周期。換句話說,就是將指令周期所對應(yīng)的運(yùn)算分成一個(gè)子運(yùn)算的序列,由流水線的各段運(yùn)行。要有效的進(jìn)行這種分割或者映射,必須考慮三條流水線的理想假設(shè)。符合業(yè)務(wù)的組成
38、部分,我們將指令周期分為多個(gè)機(jī)器周期的過程稱為“定量水段”。在量化的流動(dòng)部分,以盡量減少內(nèi)部分裂。如果在量化流動(dòng)部分是不充分的考慮,將引入內(nèi)部碎片,從而影響線的利用率。第一行的理想假設(shè)帶來的指令流水線設(shè)計(jì)的第一個(gè)挑戰(zhàn),稱為平衡線。線平衡,減少內(nèi)部分裂。重復(fù)的運(yùn)算 與單一功能的算術(shù)的流水線是不一樣的,指令流水線是一種天然多功能流水線,即它必須能夠處理各種不同類型的指令。不同類型的指令需要稍微不同的子操作序列,相應(yīng)的硬件資源的不同。指令流水線的設(shè)計(jì)挑戰(zhàn)二連接,或整合不同類型不同的資源需求。線應(yīng)該能夠支持所有類型的指示;同時(shí)應(yīng)盡量減少對每種類型的指令是無效的或空的機(jī)器周期,也是降低外部碎片。獨(dú)立的運(yùn)
39、算 運(yùn)算流水線是一個(gè)數(shù)組的數(shù)據(jù),他們一般是不相關(guān)的。和算術(shù)流水線是不同的,指令流水線處理指令不完全是相互獨(dú)立的。因此,指令流水線必須有一套內(nèi)部機(jī)制,用來檢測指令發(fā)生之間的相關(guān)和有關(guān)的指令不會導(dǎo)致錯(cuò)誤。相關(guān)的指令可能導(dǎo)致流水線攤位,導(dǎo)致失敗。如前所述,流水線停滯在動(dòng)態(tài)外部碎片,這會降低流水線的吞吐量。因此,指令流水線設(shè)計(jì)的第三大挑戰(zhàn)是減少流水線攤位。3.2.2 指令集體系結(jié)構(gòu)的影響在正式討論指令流水線設(shè)計(jì)的三個(gè)主要挑戰(zhàn)之前,簡單的考慮一下指令集體系結(jié)構(gòu)對于指令流水線的影響,將很有啟發(fā)意義。下面將一次考慮三條流水線理想假設(shè)。一致的運(yùn)算分量 使水段保持均衡的第一個(gè)挑戰(zhàn),必須確保組件的延遲是一致的。研
40、究教學(xué)過程的所有操作元件,有部分的長期拖延,以及部分不易破碎成細(xì)計(jì)算組件。在一個(gè)流水線處理器的設(shè)計(jì),關(guān)鍵部件是訪問內(nèi)存。由于速度的差異之間的處理器和內(nèi)存,內(nèi)存訪問將成為關(guān)鍵運(yùn)算部件。為使指令流水線的效率更高,應(yīng)在尋址模式進(jìn)行優(yōu)化,并應(yīng)能夠緊跟高速緩存的處理器速度。重復(fù)的運(yùn)算 第一個(gè)挑戰(zhàn)是不同類型的指令的資源要求是統(tǒng)一的,它的主要目的是精簡指令集計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。減少指令類型的復(fù)雜性和多樣性的整合不同的指令類型可以減少困難的任務(wù)。復(fù)雜尋址模式不僅需要額外的內(nèi)存,并增加了對資源的需求的多樣性。所有這些資源整合到一個(gè)指令管線的看法相當(dāng)困難,和線的許多教學(xué)效率很低。這些指示將產(chǎn)生外部碎片,從而降低線路的
41、利用率。一個(gè)精簡指令集計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的流水線,整合資源,簡單的把線更有效,減少外部碎片。獨(dú)立的運(yùn)算 第三個(gè)挑戰(zhàn)是盡量減少相關(guān)指令所造成的流水線攤位,這可能是一個(gè)流水線處理器的設(shè)計(jì)是最吸引人的地方。正確地完成操作,指令流水線必須檢測和解決相關(guān)的指令。復(fù)雜的處理方式,特別是與內(nèi)存訪問模式,因?yàn)閮?nèi)存地址標(biāo)識符問題引起了相關(guān)檢測是非常困難的。一般來說,比較容易發(fā)現(xiàn)因?yàn)榧拇嫫?,寄存器的指令是明確指出。簡單和樁適合指令解碼和相關(guān)檢測。相關(guān)檢測和解決可以是靜態(tài)的,也可以從本機(jī)運(yùn)行的硬件動(dòng)態(tài)完整。編譯和運(yùn)行分別決定如何處理,在動(dòng)靜態(tài)界面(接口)定義。定義接口,將導(dǎo)致許多有趣的和微妙的平衡。平衡,必須被編譯,(
42、微)結(jié)構(gòu)和微處理器設(shè)計(jì)緊密結(jié)合起來。3.2.3 流水線分級的考慮理想流動(dòng)性能和流水線的深度(即,線段)是成正比的,因此似乎是最好的設(shè)計(jì),增加行數(shù)。然而,由于時(shí)鐘約束,線分段數(shù)總是有一個(gè)物理限制。線的每一部分可以被視為一個(gè)組合邏輯加上最后鎖存器,信號通過后的鎖。定義的最大傳輸延時(shí),即通過長度的延遲信號路徑;為的最小傳輸延遲,即通過短的信號路徑延遲;為建立正確的時(shí)鐘信號所需的時(shí)間,包括必要的建立和保持時(shí)間,保證正確的鎖存器,同時(shí)也包括可能的時(shí)鐘偏移,滿足不同鎖存時(shí)鐘沿最大時(shí)間差。第一組信號時(shí)的作用,假設(shè)在一個(gè)級別的輸入,然后輸出的最新有效。當(dāng)另一組信號在時(shí)間的輸入端子,以最快的時(shí)間就可以存L保證二
43、組信號不覆蓋第一組的信號,必須滿足: 該公式說明,信號可能到達(dá)的最早時(shí)刻不能早于信號正確鎖存的時(shí)刻。該不等式可以重寫為:其中就是最短時(shí)鐘周期T。因此,時(shí)鐘周期T必須比大,而最大時(shí)鐘頻率不能超過1/T。從中我們可以看到,時(shí)鐘最終決定管線深度,除了這一限制,如果考慮價(jià)格,即流水線間接成本,最好的設(shè)計(jì)通常不是最大的流水線深度。在一個(gè)流水線系統(tǒng)的硬件設(shè)計(jì),必須考慮價(jià)格和性能的權(quán)衡。一般來說,價(jià)格相對深度的流水線流水線成線性增長。流水線深度一直是影響處理器效率的重要因素,流水線深度的增加可以讓處理器時(shí)鐘頻率進(jìn)一步提高,但隨著流水線深度的增長帶來的處理器的單周期執(zhí)行效率降低、發(fā)熱量上升,同時(shí)容易產(chǎn)生分支預(yù)
44、測等問題反面影響也會加劇,因此流水線長度的尺度把握一直是處理器設(shè)計(jì)中的一個(gè)重要核心問題。在設(shè)計(jì)流水線,要綜合各方面的因素,根據(jù)最佳性價(jià)比的要求來選擇流水線的最佳段數(shù)。3.3 流水線處理器設(shè)計(jì)流水線處理器設(shè)計(jì)中的主要問題就是縮小實(shí)際情況與理想假設(shè)之間的差異。所有關(guān)于流水線處理器的設(shè)計(jì)技術(shù),都可以看作是為解決這三個(gè)挑戰(zhàn)而進(jìn)行的努力。3.3.1 保持流水段均衡要流水化的運(yùn)算就是每個(gè)指令周期所要進(jìn)行的工作。一個(gè)典型的指令周期可以根據(jù)功能劃分成以下5個(gè)基本分量:1. 取指(IF,Instruction fetch)2. 譯碼(ID,Instruction decode)3. 取操作數(shù)(OF,Operan
45、d(ds) fetch)4. 執(zhí)行(EX,Instruction execution)5. 存儲(OS,Operand store)一個(gè)典型的指示,從取指令周期開始,然后解碼,它決定了指令完成操作。一個(gè)指令是通常帶有一個(gè)或多個(gè)操作數(shù),操作數(shù)在寄存器或內(nèi)存,這取決于使用的尋址方式。一旦所需的錯(cuò)誤計(jì)數(shù)都準(zhǔn)備好了,你可以執(zhí)行指定的操作指令。實(shí)施所產(chǎn)生的結(jié)果存儲起來,就算結(jié)束指令周期。分段指令周期是一個(gè)自然的方式是按照5個(gè)基本算術(shù)元件劃分,每個(gè)業(yè)務(wù)組件對應(yīng)一個(gè)流動(dòng)部分,造成a5stage指令流水線,我們稱這些為基本指令流水線,簡稱槍花線。在與流水線,邏輯指令周期將被映射到5個(gè)物理機(jī)器周期。機(jī)器周期,指
46、令周期的比例為5,這是反映了流動(dòng)的程度和水段大小。定量的水段設(shè)計(jì)成指令周期分割平衡水段,以便盡量減少一些內(nèi)部分裂。定量的水部分的自然功能分區(qū)開始。作為基本算術(shù)組件。多個(gè)延遲更小的組件可以組合成一個(gè)新的組成部分,以獲取更平衡線。另外一個(gè)平衡線方法是相反的,不是有一個(gè)較短的延遲元件組合,但會延遲較長的操作部件被分成多個(gè)短時(shí)延的組成部分。該方法延遲短的組成部分為參考,長潛伏期操作部件分成較小的部分,使每一個(gè)組件的延遲和參考元件延遲幾乎。這將導(dǎo)致在一個(gè)機(jī)器周期粒度更細(xì),在更高程度。在具體進(jìn)行指令流水線設(shè)計(jì)的時(shí)候,這兩種方法可以結(jié)合起來使用。不管在什么情況下,量化流水段的目標(biāo)都是盡量減小內(nèi)部碎片的開銷。
47、3.3.2 統(tǒng)一指令類型第二線的理想假設(shè)需要線應(yīng)重復(fù)同樣的操作。為廣大的指令流水線,重復(fù)相同的操作理想的假設(shè)是不成立的。指令流水線指令重復(fù)處理不同的指令類型。雖然指令周期重復(fù),但每次過程的不同類型的指令。不同的指令類型有不同的資源要求,每個(gè)組成部分的業(yè)務(wù)訂單可能不一樣。指令流水線的要求,滿足不同需求,您必須提供所有類型的指令所需的所有操作元件的超集。一個(gè)單一的指令類型可能不需要所有的流動(dòng)剖面線。一個(gè)單一的指令類型,不需要水段為某種形式的失敗或架空,即外部碎片。目的的統(tǒng)一指揮,是盡量減少所有指令式外碎片。要完成一次運(yùn)算,計(jì)算機(jī)必須完成一下三個(gè)基本任務(wù):1. 算術(shù)操作2. 數(shù)據(jù)移動(dòng)3. 指令定序算
48、術(shù)運(yùn)算包括指定的操作執(zhí)行算術(shù)和邏輯運(yùn)算,它最突出的部分操作,所以經(jīng)常和整個(gè)操作是等同的。一個(gè)處理器能夠支持大量的算術(shù)運(yùn)算式。數(shù)據(jù)移動(dòng)將負(fù)責(zé)操作數(shù)和結(jié)果存儲在地址的移動(dòng)。通常是內(nèi)存地址的層次和專業(yè)指示移動(dòng)數(shù)據(jù)。指令序列負(fù)責(zé)指令序列的測定。通常的運(yùn)作程序,含有大量的指令,通過執(zhí)行一系列指令需要完成操作。該指令序列,或打電話程序,可以通過指令本身的確定。如何將這三個(gè)基本任務(wù)分派給ISA中的各種指令,是指令集實(shí)際中的關(guān)鍵問題。受RISC體系結(jié)果的影響,現(xiàn)在的大多數(shù)指令集體系結(jié)構(gòu)都有一些共同的特征。這些體系結(jié)果包括Hewlett-Packard的Precision體系結(jié)構(gòu),IBM的Power體系結(jié)構(gòu),I
49、BM/Motorola的PowerPC體系結(jié)構(gòu),還有Digital的Alpha體系結(jié)構(gòu)。這些現(xiàn)代ISA傾向于采用定長指令、正交的指令格式、load/store型體系結(jié)構(gòu)和簡單的尋址模式。這些體系結(jié)構(gòu)中的大多數(shù)都能與指令流水線很好的協(xié)調(diào)起來。在一個(gè)典型的現(xiàn)代RISC體系結(jié)構(gòu)中,指令集采用一種專門的指令類型來完成三個(gè)基本任務(wù)中的一個(gè),也就是說,每一種指令類型只完成三個(gè)基本任務(wù)中的一個(gè)。根據(jù)三個(gè)基本任務(wù),可以將指令分成三種類型:1. ALU指令 完成算術(shù)和邏輯運(yùn)算2. Load/store指令 完成數(shù)據(jù)在寄存器及存儲器間的移動(dòng)3. 分支指令 控制執(zhí)行指令的順序ALU指令所執(zhí)行的算術(shù)邏輯操作嚴(yán)格地針對
50、寄存器操作數(shù)進(jìn)行,只有l(wèi)oad和store指令能訪問數(shù)據(jù)存儲器。Load/store指令和分支指令都采用比較簡單的尋址模式,通常只支持帶偏移量的寄存器間接尋址模式。對于分支指令,還支持PC相對尋址。在下面列出關(guān)于前兩種指令類型的詳細(xì)規(guī)范,其中假設(shè)使用了指令cache(I-cache)和數(shù)據(jù)cache(D-cache)。比較表3.1與表3.1中的兩種主要指令類型規(guī)范,我們可以看到,兩種指令類型的初始化分量比較類似,然而后面的分量有些差異。這些語意上的差異將導(dǎo)致不同的資源需求?;具\(yùn)算分量 ALU指令類型 IF -取指令(訪問I-cache) ID -解碼指令 OF -訪問寄存器文件 EX -執(zhí)行
51、ALU操作 OS -回寫寄存器文件表3.1 ALU指令類型規(guī)范基本運(yùn)算分量Load指令store指令 IF-取指令(訪問I-cache)-取指令(訪問I-cache) ID-解碼指令-解碼指令 OF-訪問寄存器文件(基地址)-生成有效地址(基地址+偏移量)-訪問(讀)內(nèi)存(訪問D-cache)-訪問FP寄存器文件(寄存器操作數(shù)及基地址) EX- OS-回寫寄存器文件-生成有效地址(基地址+偏移量)-訪問(寫)內(nèi)存(訪問D-cache)表3.2 Load/store指令類型規(guī)范統(tǒng)一不同指令類型主要是將不同資源需求有效的整合到一條指令流水線中去,使得這條流水線適合于所有的指令類型。整合的目標(biāo)是,盡
52、量減少流水線所需要的資源總數(shù),同時(shí)盡量提高流水線中所有資源的利用率。通常,資源的整合過程包含以下三個(gè)步驟。1. 分析每種指令類型的運(yùn)算分量序列,確定相應(yīng)的資源需求。2. 找出指令類型之間的共性,合并相同的運(yùn)算分量,已使用相同的流水段。3. 如果在不違背指令語意的情況下存在一定的靈活性,可以改變或者重新排列分量的順序,以便進(jìn)一步的整合。可以將這一過程應(yīng)用到表3.1和表3.2中。ALU,load,store指令類型的規(guī)范總結(jié)如圖3.3所示。現(xiàn)在我們由上至下實(shí)施統(tǒng)一的過程,檢查3個(gè)分量的序列合要求提供支持的硬件資源。這個(gè)過程產(chǎn)生了指令流水線各段的定義。 ALU LOAD STORE 取指令 取指令
53、取指令 更新PC 更新PC 更新PC IF 解碼 解碼 解碼 ID 讀寄存器 讀寄存器 讀寄存器 RD ALU.Op 生成地址 生成地址 ALU 讀內(nèi)存 寫內(nèi)存 MEM 寫寄存器 寫寄存器 WB圖3.3 ALU,load,store指令類型的規(guī)范總結(jié)所有3種指令類型都有相同的IF和ID分量,因此,這兩個(gè)運(yùn)算分量可以很容易的合并起來,并用來定義流水線的前兩個(gè)段,即IF和ID段,從而完成取指和譯碼工作。所有3種指令類型的OF分量都要讀寄存器文件。ALU指令訪問兩個(gè)寄存器并且獲得寄存器操作數(shù);load指令訪問一個(gè)寄存器并獲得地址;store指令訪問一個(gè)寄存器并且獲得操作數(shù),訪問另外一個(gè)寄存器以獲得基
54、地址。在3中情況下都要訪問一個(gè)或者兩個(gè)寄存器,這些相似的分量可以合并到流水線的第三段,成RD段并從寄存器文件讀取最多兩個(gè)寄存器操作數(shù)。因此寄存器文件在每個(gè)時(shí)鐘周期內(nèi)必須支持兩個(gè)獨(dú)立的并行操作數(shù)。ALU指令要求有一個(gè)ALU功能單元來完成必要的算術(shù)邏輯運(yùn)算。雖然load,store指令不需要執(zhí)行這樣的操作,但是他們需要生成有效的地址來訪存??梢钥闯?,地址生成可以由ALU功能單元來完成。因此,這些分量可以合并到流水線第4段,成為ALU段并包含一個(gè)ALU功能單元,完成算術(shù)邏輯運(yùn)算或者有效地址的生成。ALU和load指令都需要想寄存器寫回結(jié)果,這是他們的最后一個(gè)運(yùn)算分量。ALU指令將寄存器操作的結(jié)果寫回
55、寄存器,load將訪存的數(shù)據(jù)寫入到目標(biāo)寄存器。ALU指令不需要訪存,因此,理論上向目標(biāo)寄存器回寫這一過程可以在ALU段之后立即進(jìn)行。然而為了load指令回寫分量統(tǒng)一起來,ALU指令的寄存器回寫分量向后推遲了一段,在流水線的第6段進(jìn)行,成為WB段。這將導(dǎo)致ALU指令在MEM段產(chǎn)生一個(gè)空閑周期。這是一種外部碎片并將給流水線帶來一些效率損失。通過對不同指令類型的整合,可以得到一條6級流水線,如圖3.3右側(cè)所示。3.3.3 減少流水線停頓第三線理想的假說認(rèn)為,流水線執(zhí)行的操作是相互獨(dú)立的。在一個(gè)等級的流水線,可能有不同的操作處理的指令流水線,具有最大鉀不同的指示,同時(shí)在流水線。這些指令可能不是相互獨(dú)立的。事實(shí)上,這些指令通常與。如果流水線指令不相關(guān),將有助于流水線流動(dòng),或者說,指令通過線路沒有任何流水線攤位。如果指令相關(guān)的,它必須檢測和解決有關(guān)。該解決方案可能需要流水線攤位。設(shè)計(jì)的挑戰(zhàn),目的是減少流量減少流水線攤位,防
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司轉(zhuǎn)讓股權(quán)合同
- 工地設(shè)備機(jī)械施工合同書
- 2025年寧波從業(yè)資格證應(yīng)用能力考些啥
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》2.3剖析用戶購買行為數(shù)據(jù)-教案
- 簡單版本的加工承攬合同6篇
- 工作室租房合同7篇
- 《愛心行動(dòng)-圖形與拼組》作業(yè)設(shè)計(jì)方案
- 水力學(xué)模擬考試題與參考答案
- 電工崗位試題庫及參考答案
- 個(gè)人工作計(jì)劃周工作計(jì)劃
- 學(xué)前比較教育全套教學(xué)課件
- 紅頭文件模板(完整版)
- 不服行政復(fù)議行政起訴狀
- 工傷事故應(yīng)急預(yù)案(三篇)
- 水利工程建設(shè)監(jiān)理人員培訓(xùn)講義課件
- 歷屆 最近十年 (新知杯)上海市初中數(shù)學(xué)競賽試卷及答案(含模擬試題及解答)
- 藥理學(xué)免疫器官和組織
- 2023年超齡員工承諾書 60歲以上員工承諾書(八篇)
- 《職場關(guān)系與溝通技巧》教案第15課上行溝通-與上級之間的溝通
- 四下語文學(xué)情分析
- 失業(yè)證明模板(通用6篇)
評論
0/150
提交評論