




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE40CPU中指令流水線技術(shù)研究摘要流水線技術(shù)是提高系統(tǒng)吞吐率的一項強大的實現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。20世界60年代早期的一些高端機器中第一次采用了流水線技術(shù)。第一個采用指令流水線的機器是IBM7030(又稱作Stretch計算機)。后來的CDC6600同時采用了流水線和多功能部件。到了20世紀(jì)80年代,流水線技術(shù)成為RISC處理器設(shè)計方法中最基本的技術(shù)之一。RISC設(shè)計方法的大部分技術(shù)都直接或者間接以提高流水線性能為目標(biāo)。從此以后,流水線技術(shù)也被有效地應(yīng)用到CISC處理器的設(shè)計中。Inteli486是IA32體系結(jié)構(gòu)中的第一個流水線實現(xiàn)。Digital的VAX和Motorola的M68K的流水線版本在商業(yè)上也取得了成功。流水線技術(shù)是當(dāng)前指令集處理器設(shè)計中廣泛采用的技術(shù)。在這里我們將重點放在(標(biāo)量)流水線處理器的設(shè)計。流水線處理器設(shè)計中的許多方法和技術(shù),例如用于檢測和化解相關(guān)的流水線互鎖機制,都是標(biāo)量處理器設(shè)計的基本方法。當(dāng)前的趨勢是朝著超深度流水線的方向發(fā)展。流水線的深度已經(jīng)從不到10發(fā)展到超過20.深度流水是獲得高速始終頻率的必要條件,這是提高處理器性能的一個非常有效的方法。有跡象表明。這種趨勢還將持續(xù)下去。[關(guān)鍵詞]流水線技術(shù)猜測法中斷處理吞吐率指令重疊加快短循環(huán)程序的處理AbstractPipelinetechnologyistoimprovethesystemthroughputofapowerfultechnology,anddoesnotrequirerepetitivesethardware.The20worldearly60'ssomehigh-endmachinesusedthefirstpipelinetechnology.ThefirstuseoftheinstructionpipelinemachineisIBM7030(alsocalledStretchcomputer).LaterCDC6600atthesametimelinesandmultiplefunctionalcomponents.Inthenineteeneighties,pipelinetechnologytobecometheRISCprocessordesignmethodisoneofthemostbasictechniques.ThedesignmethodofRISCmostofthetechniquesaredirectlyorindirectlytoimproveperformanceasthegoalline.Sincethen,assemblylinetechniqueshavealsobeenappliedeffectivelytotheCISCprocessor.Inteli486isIA32architectureisthefirstinapipelinedimplementation.DigitalVAXandMotorolaM68Kpipelinedversionalsoachievedsuccessinbusiness.Pipelinetechnologyisthecurrentinstructionsetprocessoriswidelyusedinthedesignoftechnology.Herewewillfocusonthe(scalar)pipelinedprocessordesign.Apipelinedprocessorinthedesignofmanymethodsandtechniques,forexample,usedtodetectandresolvetherelevantpipelineinterlockmechanism,isascalarprocessordesignmethod.Thecurrenttrendistowardssuperdepthlinedirection.Pipelinedepthhaslessthan10tothedevelopmentofmorethan20depthofwaterisalwaysnecessarytoobtainhighspeedfrequency,whichistoimprovetheperformanceofaveryeffectivemethod.Therearesigns.Thistrendwillcontinue.Keywords:Pipelinetechnologyforecastmethodofinterruptprocessingthroughputinstructionoverlappingaccelerateshortcycleprogramprocessing目錄第一章 緒論 31.1 現(xiàn)代RISC中的流水線技術(shù) 31.1.1 超流水線技術(shù) 31.1.2 超標(biāo)量技術(shù) 41.1.3 流水技術(shù)在Pentium系列微處理器中的實現(xiàn) 4第二章 流水線基礎(chǔ) 72.1 流水線概念 72.1.1 指令重疊 72.1.2 流水線 82.1.3 流水線的特點 92.1.4 流水線的分類 102.2 流水線的主要性能 112.2.1 吞吐率 122.2.2 加速比和效率 12第三章 指令流水線設(shè)計 153.1 流水線理想假設(shè) 153.1.1 一致的運算分量 153.1.2 重復(fù)的運算 163.1.3 獨立的運算 173.2 指令流水線 183.2.1 指令流水線設(shè)計 183.2.2 指令集體系結(jié)構(gòu)的影響 193.2.3 流水線分級的考慮 203.3 流水線處理器設(shè)計 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.3 采取轉(zhuǎn)移延遲 324.4.4 加快短循環(huán)程序的處理 32第五章 中斷處理與流水線調(diào)度 355.1 中斷處理 355.2 流水線調(diào)度 35第六章 總結(jié)與展望 39致謝 41參考文獻(xiàn) 42緒論流水線技術(shù)是提高系統(tǒng)吞吐率的一項強大的實現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。20世界60年代早期的一些高端機器中第一次采用了流水線技術(shù)。第一個采用指令流水線的機器是IBM7030(又稱作Stretch計算機)。后來的CDC6600同時采用了流水線和多功能部件。到了20世紀(jì)80年代,流水線技術(shù)成為RISC處理器設(shè)計方法中最基本的技術(shù)之一。RISC設(shè)計方法的大部分技術(shù)都直接或者間接以提高流水線性能為目標(biāo)。從此以后,流水線技術(shù)也被有效地應(yīng)用到CISC處理器的設(shè)計中。Inteli486是IA32體系結(jié)構(gòu)中的第一個流水線實現(xiàn)。Digital的VAX和Motorola的M68K的流水線版本在商業(yè)上也取得了成功。流水線技術(shù)是當(dāng)前指令集處理器設(shè)計中廣泛采用的技術(shù)。在這里我們將重點放在(標(biāo)量)流水線處理器的設(shè)計。流水線處理器設(shè)計中的許多方法和技術(shù),例如用于檢測和化解相關(guān)的流水線互鎖機制,都是標(biāo)量處理器設(shè)計的基本方法。當(dāng)前的趨勢是朝著超深度流水線的方向發(fā)展。流水線的深度已經(jīng)從不到10發(fā)展到超過20.深度流水是獲得高速始終頻率的必要條件,這是提高處理器性能的一個非常有效的方法。有跡象表明。這種趨勢還將持續(xù)下去。現(xiàn)代RISC中的流水線技術(shù)超流水線技術(shù)超級流水線(超級流水線集)技術(shù)是用在一個并行處理技術(shù)。在他稀疏的水,增加的數(shù)量和提高頻率,從而在每個機器周期完成一個或2個浮點操作。其實質(zhì)是以時間換取空間。超純水機的特點是在所有的功能單位只使用水,并具有更高的時鐘頻率和更深的水的深度。超標(biāo)量技術(shù)超標(biāo)量(SuperScalar)技術(shù)是RISC采用的有一種處理技術(shù)。它通過內(nèi)裝多條流水線來同時執(zhí)行多個處理。其實質(zhì)就是以空間換取時間。流水線實現(xiàn)中的問題及解決:這是一個問題的連續(xù)流動,這似乎并沒有流下,從而獲得更高的效率。停止的原因很多,除了編譯生成的目標(biāo)程序可以發(fā)揮結(jié)構(gòu)的作用,水,或存儲系統(tǒng)可以提供一個連續(xù)流動所需的指令和操作數(shù),基本上還出現(xiàn)相關(guān),轉(zhuǎn)移和中斷指令相關(guān)的。解偏相關(guān)有2種方法:后退方法和路徑的方法;解決全球相互關(guān)系有三種方法:猜測轉(zhuǎn)移,加快推進形成條件代碼,加快短循環(huán)程序處理。流水技術(shù)在Pentium系列微處理器中的實現(xiàn)流水線技術(shù)早在英特爾凌動芯片已經(jīng)實現(xiàn)。奔騰系列處理器產(chǎn)品是一個高級的超標(biāo)量處理器。它是建筑在一般整數(shù)流水線和一個浮點單元在線,這使處理器執(zhí)行整數(shù)指令。一對透明的軟件動態(tài)分支預(yù)測機制可以使分支流水線堵塞最小化。奔騰處理器可以在一個時鐘周期內(nèi)完成2指示,流水線完成命令。第一個邏輯管叫“你”的流水線,一次電話“五”流水線。在任何一個給定的指令解碼時,它是安排后面的指令將被檢查。和,如果可能的話,第一個指令被分配到“你”流水線執(zhí)行指令,其次是分配到“勝利”的流水線執(zhí)行。如果不是,那么第一個指令設(shè)置為“你”“五”流水線流水線執(zhí)行,不安排指令操作。教學(xué)中的操作和流水線的順序執(zhí)行所產(chǎn)生的效果是完全一樣的。當(dāng)流水線堵塞,隨后的指令指令是阻止任何流水線。技術(shù)的奔騰處理器的整數(shù)流水線增加一個額外的處理階段。指令代碼緩沖區(qū)緩存預(yù)取,美聯(lián)儲的“預(yù)”(公積金)階段,并在“提取”(女)階段的教學(xué)語法分析。此外,所有前綴的解碼階段。在教學(xué)第一先出(先進先出)指令緩沖區(qū)中的語法分析和指令解碼分開,緩沖區(qū)位于的階段,the1stage(D1)之間的解碼。先進先出緩沖空間指令處理最多四個指示。先進先出緩沖區(qū)是透明的,當(dāng)它是空的,沒有額外的延遲。在每個時鐘周期的指令,指令緩沖區(qū)(按有效代碼字節(jié),和其他因素,如前綴)。然后,對指令的先進先出緩沖射出去,到d1stage。由于指令的平均執(zhí)行效率為每個時鐘周期不超過2指令,所以通常全是先進先出。只要是先進先出,你可以防止取指令和語法分析產(chǎn)生阻塞。如果這阻塞,先進先出也可以使阻塞的執(zhí)行管線階段發(fā)生。但如果是先進先出空,因為沒有指令流水線操作,這可能導(dǎo)致執(zhí)行一個塊。長指令或一個前綴可以在先進先出入口產(chǎn)生阻塞。超流水線(SuperPipeline)在本質(zhì)上仍為一種流水線技術(shù),但它做了以下的改進:1、流水線條數(shù)從奔騰的兩條增至三條,還有十一個獨立的執(zhí)行單元并行支持。2、在實施無序執(zhí)行(采取所有加工)技術(shù)。當(dāng)一個指令需要一些數(shù)據(jù)并不能立即執(zhí)行,它將被刪除線和等數(shù)據(jù),處理器是立即執(zhí)行的指示下,就像在裝配線發(fā)現(xiàn)產(chǎn)品不合格,但被淘汰,等原因。這樣,可以防止無法執(zhí)行命令影響整個生產(chǎn)線的效率。3、在p6instruction分為更細(xì)的相位,使邏輯設(shè)計,工藝等更為簡化,提高了速度。在486chip,指令一般分為五個部分,奔騰也是如此。在六,由于采用了類似的精簡指令集計算機技術(shù),一個指令分為十四階段。這大大提高了線速度。六系列處理器使用動態(tài)執(zhí)行結(jié)構(gòu)。結(jié)構(gòu)通過一個硬件寄存器重命名和分支預(yù)測的方法,將亂序執(zhí)行和投機執(zhí)行的合成。這些處理器有一個有序的進入流水線,它將英特爾386macro指令分為簡單的微操作(或國外)和一個可以處理這些微操作外序的超標(biāo)量處理器核心。亂序處理器內(nèi)核包含幾行,連接整數(shù),浮點數(shù)和跳躍,內(nèi)存執(zhí)行單元。幾種不同的執(zhí)行單元可以集成在同一行。例如:一個整數(shù)地址邏輯單元和浮點執(zhí)行單元(加法器,乘法器和除法器)共用線。數(shù)據(jù)緩沖區(qū)緩存由一個專用的讀端口和其他存儲端口交錯成。最簡單的手術(shù)(國際鋁,浮點此外,甚至浮點乘法)每時鐘周期才能完成一個工作通量裝配線。浮點除法不能進入流水線,長和短延遲延遲操作可以在平行處理。六系列線由三部分組成:前端(按序有序的組織單位,核心(前端)序序核心)單元和有序退出(有序退休)單位。英特爾最近推出的奔騰Ⅲ處理器使用的p6dynamic執(zhí)行技術(shù),包括多個分支預(yù)測,數(shù)據(jù)流分析,推測執(zhí)行。同時,奔騰Ⅲ處理器有一個流水線浮點單元(浮點運算單元),可支持32位,64位和80位浮點運算。英特爾最近發(fā)表的奔騰4,奔騰4basic指令管線長度達(dá)到20級,是六建筑2倍,更比AMDAthlon。時間線可以使處理器運行在更高的頻率,從而提高處理器的性能,但可能有一些指令執(zhí)行延遲。流水線基礎(chǔ)加快機器語言的解釋過程,提高機器的速度是一個基本任務(wù)的計算機設(shè)計。這可以實現(xiàn)的方式。一種方法是增加了設(shè)備的速度,更好的算法,增加指令的微平行度,減少解釋過程需要擊敗多項措施加快機器指令的解釋。另一種方法是使用重疊和水的方法,同時,多個2解釋整個過程,從而加快整個機器語言程序的解釋。流水線技術(shù)現(xiàn)已廣泛應(yīng)用于微處理芯片的關(guān)鍵技術(shù),英特爾公司的微處理器應(yīng)用技術(shù)首次實現(xiàn)。流水線概念指揮控制方法三:序列的方法,重疊,運行模式。順序法是指機器指令序列之間的串行執(zhí)行的機器指令,和每個微指令的執(zhí)行順序。雖然這種方法的優(yōu)點是控制簡單但速度上不去,利用率低的機器零件。重疊模式是指解釋第鉀指令操作完成之前開始的鉀1instruction解釋。通常使用的重疊,即,在任何時間,命令解析單元和指令執(zhí)行部只有相鄰指令重疊的解釋。這意味著指令解釋速度增加,控制不是很復(fù)雜,但出現(xiàn)沖突,轉(zhuǎn)移,相關(guān)的問題,這些都是需要在設(shè)計解決。水是一個并行或并行嵌入計算機系統(tǒng)中的一種形式。它是重疊的連續(xù)過程分解為一個進程的個數(shù),每個進程的特殊模塊獨立有效的并行工程技術(shù)。論“流”可以被視為“重疊”的延伸。不同的是一個“重疊”只是一個指令的解釋是分解成2個過程,與“水”分解為多個子過程。指令重疊一個指令執(zhí)行過程可以分為取指令,類型和執(zhí)行一三個過程(圖2.1)。取指令,取出指令,指令寄存器。教學(xué)分析指指令的操作碼進行譯碼,解決和地址字段地址操作數(shù)的真正形成,這是地址讀取操作,但準(zhǔn)備取下一條指令是預(yù)先形成的下一條指令的地址。指令執(zhí)行是指一些操作,加工業(yè)務(wù),或存儲操作結(jié)果。指令的重疊解釋方法是指,在解釋的指令操作完成之前,開始解釋鉀1instruction。假設(shè)這三個過程,分別以不同的硬件(命令控制器,分析和執(zhí)行單元),當(dāng)K線指令在分析階段,該控制器在空閑狀態(tài),這個時候可以為鉀1instruction到取指令操作,當(dāng)K線的指令被執(zhí)行時,解析器在空閑狀態(tài),并可以進行鉀1instruction分析(圖2.2)。顯然,重疊的解釋方式和不能加快指令來實現(xiàn)的,但可以加速相鄰的指令和程序的解釋。圖2.1機器指令的順序執(zhí)行方式圖2.2指令的重疊解釋方式流水線水實際上是重疊延伸,上面提到的重疊模型實際上是一個simple3水模型。如果分析和執(zhí)行階段分為指令解碼,執(zhí)行操作,存儲和計算結(jié)果,當(dāng)鉀1instruction在指令執(zhí)行的操作時可以開始解碼,而不必等到分析鉀完全結(jié)束。這樣一個指令周期可以同時executing5指令。裝配線的工作方式是一個反復(fù)的過程分解成幾個子進程,每個進程可以與其他子過程在同一時間。由于這種工作方法在工程和生產(chǎn)線是非常相似的,因此,他把工作流程。該處理器可以用在幾乎所有地區(qū)的工作流程。在指令執(zhí)行使用線,到指令流水線。手術(shù)操作元件,如浮點加法器,浮點乘法器可以被用來作為部分的流水線,流水線。訪問主存儲器單元也可用于流水線。即使在處理器,機器也可以使用流水線。圖2.3指令流水線流水線的特點從上面的分析中可以看到,在處理機中采用流水線方式與采用傳統(tǒng)的串行方式相比,具有一下特點:1、在處理流水線必須是連續(xù)的任務(wù),只有不斷提供任務(wù)才能充分發(fā)揮效率的流水線。比如說呢。如果浮點加法器的充分發(fā)揮,需要連續(xù)提供浮點加法器。然而,由于程序本身的原因和程序設(shè)計過程所造成的一些原因,數(shù)據(jù)關(guān)聯(lián),不可能為浮點加法器是提供一個連續(xù)運行。因此,在使用流水線的方式處理,尤其是當(dāng)線的多個系列,應(yīng)該在軟件和硬件方面的線提供連續(xù)的任務(wù),為了提高效率,流水線。2、任務(wù)分解成幾個相關(guān)的任務(wù),每個任務(wù)由一個專門的功能組件實現(xiàn)。因此,線實際上是一個功能成分分解成多個獨立的功能部件,并依靠多個功能部件并行工作縮短程序的執(zhí)行時間。在流水線,任務(wù)通常被稱為一個過程,或一個功能段。3、在每一個功能單位線回有一個緩沖寄存器,或鎖存器,用于保存所執(zhí)行的結(jié)果。這是因為在每一段的延遲可以不相等,因此,在轉(zhuǎn)移的任務(wù),必須通過緩沖寄存器。當(dāng)一個函數(shù)的時間范圍較大,設(shè)立多個緩沖寄存器。4、線段的對稱性,即相同的時間要求盡可能,否則將造成“堵”,“停止”和其他問題。執(zhí)行時間最長的部分將成為整個線路的“瓶頸”,那么,線段將受到限制,不能充分發(fā)揮作用。只有當(dāng)全是滿滿的,整個流水線的效率可以得到充分發(fā)揮。為了設(shè)計出高效率的流水線,要充分注意上述問題。流水線的分類從不同的角度,根據(jù)不同的角度,可以分成許多不同類型的線。通常所說的一些線路,通常按一定的角度,或從一個特定角度線的分類結(jié)果。因此,從名字上只能反映一維線功能或特征。按照流水線的各功能段之間是否有反饋信號,可以把流水線分為線性流水線合非線性流水線。線性線是線各功能部分的每一個系列,輸入數(shù)據(jù)從流水線部分進入,從另一部分流出。數(shù)據(jù)流水線通過,沒有一個功能部分流經(jīng)的第一,只有通過A線性線通常只能完成固定功能,在現(xiàn)代計算機系統(tǒng),線性線已被廣泛應(yīng)用在指令執(zhí)行過程中,各種算術(shù)運算,內(nèi)存訪問操作。圖2.4非線性流水線非線性流水線經(jīng)常用于遞歸調(diào)用,或者構(gòu)成多功能流水線。根據(jù)線使用不同層次,可以將流水線分成功能組件,處理器和處理器和其他類型。處理器的流水線階段的指令流水線,他把一個指令執(zhí)行過程分解成若干個子過程,每個子進程中的一個獨立的功能部件。特征線,又稱為操作線,如浮點加法器流水線,浮點乘法器組件。處理器間流水線也被稱為流水線,一般是兩年多處理器通過記憶的串行連接,每個處理器在數(shù)據(jù)流的不同部分分別進行處理。圖2.6指令流水線流水線又可分為單功能流水線和多功能流水線。顧名思義,單功能流水線只能完成固定的單一功能,多流水線通過各個段間進行不同的連接,在不同的時間內(nèi)或者統(tǒng)一時間內(nèi)通過不同的連接方式完成不同的功能。多功能流水線,根據(jù)同一時間是否可以連接到各種不同的方式,并執(zhí)行各種任務(wù),你可以把多功能流水線分為靜態(tài)和動態(tài)線。靜態(tài)線是在同一時間,多功能流水線部分只有按照一定的固定連接,實現(xiàn)一個固定功能。只有當(dāng)根據(jù)連接方式工作的所有任務(wù)脫節(jié),重新連接,完成其他功能。動態(tài)線的同時,可以根據(jù)不同的連接方式,完成各種不同的功能。這一次請求行功能不能沖突。除了以上幾種分類方法外,還可以根據(jù)其他標(biāo)準(zhǔn),從不同角度對流水線進行分類。流水線的主要性能衡量流水線主要性能的指標(biāo)主要有吞吐率,加速比和效率。吞吐率吞吐率是指在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或者輸出的結(jié)果數(shù)量。即:式(2.1)中,n為任務(wù)數(shù),是處理完成n個任務(wù)做用的時間。本式為計算吞吐率最基本的公式。有的時候我們還需要求一條流水線的最大吞吐率:式(2.2)中為第k個子過程所花費的時間。最大吞吐率受限于流水線中最慢子過程即瓶頸子過程所需要的時間。為了提高流水線的最大吞吐率,首先要找出瓶頸,然后設(shè)法消除此瓶頸。消除瓶頸有兩種辦法,一是將瓶頸子過程再細(xì)分,另一種辦法是通過重復(fù)設(shè)置多套瓶頸段并聯(lián),讓他們交叉進行。后一種方法需要解決好在各并行子過程之間的任務(wù)分配合同步控制,比起瓶頸子過程再細(xì)分控制要復(fù)雜、設(shè)備量要多一些。加速比和效率完成一批任務(wù),不使用流水線所花的時間與使用流水線所用時間直比即為流水線的加速比。如果不使用流水線,即順序執(zhí)行所用時間為,使用流水線的執(zhí)行時間為,則流水線的加速比為:這是計算流水線加速比的基本公式。流水線效率是指設(shè)備的利用率和流水線。在時空圖,線效率定義為,任務(wù)時間區(qū)域與鉀功能區(qū)占用空間面積比。因此,效率線包含2個方面的時間和空間因素。事實上,在任務(wù)的時間區(qū)域是順序執(zhí)行的任務(wù)使用的總時間。而一個流水線,完整的總?cè)蝿?wù)在顳區(qū),這是一個對完成任務(wù)的總時間。是一個段線效率可表示為:此式是計算流水線效率的一般公式。如果流水線各段執(zhí)行時間均相等,且輸入的n個任務(wù)是連續(xù)的,則一條k段流水線的效率為:從流水線的時空圖上來看,上式分母部分是完成n個任務(wù)所用時間與k個功能段所圍成的總面積,而分子部分則是k個功能段實際所占有的面積。因此,利用時空圖來計算流水線的效率十分方便。指令流水線設(shè)計我們做任何事情,都希望能夠達(dá)到理想狀態(tài),但這往往是不現(xiàn)實的,我們研究理想狀態(tài)的意義就在于給出一個衡量的標(biāo)準(zhǔn),并且努力向這個標(biāo)準(zhǔn)靠近,這在指令流水線的設(shè)計過程中也不例外。流水線理想假設(shè)為目的的指令流水線,我們希望能夠最大限度地提高系統(tǒng)性能。然而在實踐中,但往往不這樣做,因為只有在理想的條件下,等級度流水線設(shè)計可以提高吞吐量的時間,理想的情況是主要基于三假說,我們稱它為“線理想的假設(shè)”,他是正確評估流水線設(shè)計。設(shè)計各種方案解決實際線和線之間的矛盾,理想的假設(shè),它們構(gòu)成的主要工藝流水線的設(shè)計。流水線的理想假設(shè)包括:一致的運算分量:要完成的整個運算量可以均勻的分成延遲一只的若干分量。重復(fù)的運算:輸入數(shù)據(jù)有大量相同的、重復(fù)的運算。獨立的運算:所有相同的重復(fù)運算之間沒有相關(guān)性。一致的運算分量第一行的理想的假說解釋,會使計算部分水均勻地分為鉀延遲相同的組件。這意味著以前的設(shè)計可以分為鉀平衡水段。如果以前的總計算延遲,不是設(shè)計類型的水循環(huán),然后鉀流水線設(shè)計風(fēng)格的周期是鉀,也就是流水在每一段的延遲。基于這一假設(shè),時鐘頻率可以增加,并提高吞吐量倍。在實際的流水線設(shè)計,這種假設(shè)可能不成立。總操作組件完全均勻的分成幾個部分是不可能的。在3級流水線浮點加法器的例子,設(shè)置總延遲for500ns,線分為3個部分,每個部分都200ns延遲,容錯,200ns。顯然,總延誤是不均勻分布在整個線路的三段。因為線路時鐘周期決定推遲最長延遲時間較短,所以會有一些無效或失敗時。如浮點加法器的后半部分,這是100ns的無效時間,我們可以稱它為“內(nèi)部碎片”。由于內(nèi)部分裂,執(zhí)行同樣的操作延遲將增加。有一種內(nèi)在的假設(shè),即水段之間引入緩沖不會帶來額外的延遲線時鐘信號,也不引入額外的延遲。同樣,假設(shè)在實踐中是不成立的。在一些例子中,為了保證信號的時鐘信號準(zhǔn)確地成立的,注冊成立,所以總時鐘周期延長,從而導(dǎo)致實際業(yè)績可能不到3次。第一行的理想假設(shè)主要包含以下兩點:以前的操作部件分為多個部分,不引入一個無效的時間;一個緩沖和時鐘不會帶來額外的延遲介紹。在芯片級設(shè)計,可以使用一些鎖,如·鎖可以使時鐘產(chǎn)生延遲盡可能小。那么如何來操作均勻分成各種水段構(gòu)成的流水線設(shè)計的第一個挑戰(zhàn)。我們的目標(biāo)是,盡可能使所有水段保持平衡,減少內(nèi)部分裂。由于各水段不能完全平衡內(nèi)部分裂是不滿足第一行的理想假設(shè)的主要原因,這將是一個架空,并導(dǎo)致鉀級管線設(shè)計吞吐量增長達(dá)到理想的倍。重復(fù)的運算第二線的理想的假說解釋,線反復(fù)執(zhí)行相同的操作。這意味著在一組輸入數(shù)據(jù),一些運營商是相同的,這些操作執(zhí)行。每次執(zhí)行時,線路提供組件執(zhí)行順序是相同的。因為浮點加法器的例子,將含有大量浮點數(shù)在一起,對每一個操作數(shù)是通過same3線。這一集,每次重復(fù)計算可以使用所有的小節(jié)線。在我們的例子,這顯然是建立。浮點加法滿足這個假設(shè),因為本線只完成一個功能,例如,浮點加法運算。如果你想設(shè)計一個流水線完成多種功能,這種假設(shè)是不滿意。例如,設(shè)計一個可以計算加法和乘法運算流水線可以計算。多功能流水線,一個單獨的功能可能不需要所有的流動部分,可由水段的不同子集完成不同的功能。因為輸入的數(shù)據(jù)在一個同步的方式通過流水線,有些數(shù)據(jù)可能不需要一些水段,當(dāng)他們經(jīng)過一段,什么也不做。這并沒有使用或自由流動的部分帶來另一種形式的流水線,可稱為“外碎片”。和內(nèi)部分裂的外部碎片是類似的,一個流水線架空,應(yīng)盡量減少。第二線的理想假設(shè)所有水段總是充分利用。除了表明不存在外部碎片,這個假設(shè)也說明了數(shù)據(jù)的處理是許多。第一數(shù)據(jù)線最后一段需要鉀鉀循環(huán)周期,稱為“填充”。最后的數(shù)據(jù)線的第一段,也需要鉀定期排空流水線。在灌裝和排空過程中,并不是所有的流水線階段的工作狀態(tài)。如果有大量輸入數(shù)據(jù)的處理,可以使線的填充和排空時間只有一小部分的總時間。因此,許多水段可認(rèn)為一直處于工作狀態(tài)。獨立的運算第三線假說解釋,線加工操作是相互獨立的。這意味著,所有同一時間居住在流水線的操作是不相關(guān)的,也就是說,任何兩者之間不存在的數(shù)據(jù)或控制。這一假設(shè)保證線在“流動”的工作方法,即后面操作不是因為存在相關(guān)性而等待操作完成。因為浮點加法器的例子,這個假設(shè)是成立的。如果有更多的操作數(shù)在一起,一對操作數(shù)的增加不是因為另一個加法的結(jié)果。這些操作可以依照“流”的處理。這一假設(shè)的一些行可能不成立。后面的操作可能需要在前面的結(jié)果,和2個操作也可能居住在流水線。如果是后者的經(jīng)營已進入了結(jié)果所需的水,但這次在術(shù)前尚未到達(dá)產(chǎn)生的結(jié)果流動段,這是背后的操作必須等待期。這是被稱為“流水線攤位”。如果一個操作暫停線一定時間,隨后的所有操作可能被迫停頓。流水線攤位不可避免地導(dǎo)致一些處于閑置狀態(tài),它可被視為一個動態(tài)外部碎片,從而使吞吐量率降低。如果相關(guān)是不可避免的,設(shè)計時,盡量多的停止線。指令流水線前三行是行的理想假設(shè)。在大多數(shù)情況下,算術(shù)流水線的實際情況與理想的假設(shè)是不太大。然而,對指令流水線,和實際情況之間的差距會更理想的假設(shè)。而連接過橋正式指令管線設(shè)計有趣和有挑戰(zhàn)性的地方。設(shè)計中的流水線處理器,三個假設(shè)成為三大挑戰(zhàn)。三大挑戰(zhàn),同時與探索的流水線處理器的設(shè)計理念。指令流水線設(shè)計設(shè)計中的命令行,三行,成為設(shè)計目標(biāo)。一個指令處理是精簡業(yè)務(wù),它必須被分成多個作為輔助操作,得到的平衡線。處理指令延遲時間成為“指令周期”,每一段時間延遲決定了機器周期。”。指令周期是一個邏輯概念,它指的是執(zhí)行的指令周期。一個程序,包括一個多元化的指令,程序的執(zhí)行相當(dāng)于相應(yīng)的操作重復(fù)執(zhí)行。機器周期是一個物理概念,它包含了數(shù)字邏輯電路的存儲單元的時鐘,同時它也是流水線時鐘周期。指令流水線設(shè)計的主要任務(wù)可以看作是將邏輯指令周期映射到物理機器周期。換句話說,就是將指令周期所對應(yīng)的運算分成一個子運算的序列,由流水線的各段運行。要有效的進行這種分割或者映射,必須考慮三條流水線的理想假設(shè)。符合業(yè)務(wù)的組成部分,我們將指令周期分為多個機器周期的過程稱為“定量水段”。在量化的流動部分,以盡量減少內(nèi)部分裂。如果在量化流動部分是不充分的考慮,將引入內(nèi)部碎片,從而影響線的利用率。第一行的理想假設(shè)帶來的指令流水線設(shè)計的第一個挑戰(zhàn),稱為平衡線。線平衡,減少內(nèi)部分裂。重復(fù)的運算與單一功能的算術(shù)的流水線是不一樣的,指令流水線是一種天然多功能流水線,即它必須能夠處理各種不同類型的指令。不同類型的指令需要稍微不同的子操作序列,相應(yīng)的硬件資源的不同。指令流水線的設(shè)計挑戰(zhàn)二連接,或整合不同類型不同的資源需求。線應(yīng)該能夠支持所有類型的指示;同時應(yīng)盡量減少對每種類型的指令是無效的或空的機器周期,也是降低外部碎片。獨立的運算運算流水線是一個數(shù)組的數(shù)據(jù),他們一般是不相關(guān)的。和算術(shù)流水線是不同的,指令流水線處理指令不完全是相互獨立的。因此,指令流水線必須有一套內(nèi)部機制,用來檢測指令發(fā)生之間的相關(guān)和有關(guān)的指令不會導(dǎo)致錯誤。相關(guān)的指令可能導(dǎo)致流水線攤位,導(dǎo)致失敗。如前所述,流水線停滯在動態(tài)外部碎片,這會降低流水線的吞吐量。因此,指令流水線設(shè)計的第三大挑戰(zhàn)是減少流水線攤位。指令集體系結(jié)構(gòu)的影響在正式討論指令流水線設(shè)計的三個主要挑戰(zhàn)之前,簡單的考慮一下指令集體系結(jié)構(gòu)對于指令流水線的影響,將很有啟發(fā)意義。下面將一次考慮三條流水線理想假設(shè)。一致的運算分量使水段保持均衡的第一個挑戰(zhàn),必須確保組件的延遲是一致的。研究教學(xué)過程的所有操作元件,有部分的長期拖延,以及部分不易破碎成細(xì)計算組件。在一個流水線處理器的設(shè)計,關(guān)鍵部件是訪問內(nèi)存。由于速度的差異之間的處理器和內(nèi)存,內(nèi)存訪問將成為關(guān)鍵運算部件。為使指令流水線的效率更高,應(yīng)在尋址模式進行優(yōu)化,并應(yīng)能夠緊跟高速緩存的處理器速度。重復(fù)的運算第一個挑戰(zhàn)是不同類型的指令的資源要求是統(tǒng)一的,它的主要目的是精簡指令集計算機系統(tǒng)結(jié)構(gòu)。減少指令類型的復(fù)雜性和多樣性的整合不同的指令類型可以減少困難的任務(wù)。復(fù)雜尋址模式不僅需要額外的內(nèi)存,并增加了對資源的需求的多樣性。所有這些資源整合到一個指令管線的看法相當(dāng)困難,和線的許多教學(xué)效率很低。這些指示將產(chǎn)生外部碎片,從而降低線路的利用率。一個精簡指令集計算機系統(tǒng)結(jié)構(gòu)的流水線,整合資源,簡單的把線更有效,減少外部碎片。獨立的運算第三個挑戰(zhàn)是盡量減少相關(guān)指令所造成的流水線攤位,這可能是一個流水線處理器的設(shè)計是最吸引人的地方。正確地完成操作,指令流水線必須檢測和解決相關(guān)的指令。復(fù)雜的處理方式,特別是與內(nèi)存訪問模式,因為內(nèi)存地址標(biāo)識符問題引起了相關(guān)檢測是非常困難的。一般來說,比較容易發(fā)現(xiàn)因為寄存器,寄存器的指令是明確指出。簡單和樁適合指令解碼和相關(guān)檢測。相關(guān)檢測和解決可以是靜態(tài)的,也可以從本機運行的硬件動態(tài)完整。編譯和運行分別決定如何處理,在動靜態(tài)界面(接口)定義。定義接口,將導(dǎo)致許多有趣的和微妙的平衡。平衡,必須被編譯,(微)結(jié)構(gòu)和微處理器設(shè)計緊密結(jié)合起來。流水線分級的考慮理想流動性能和流水線的深度(即,線段)是成正比的,因此似乎是最好的設(shè)計,增加行數(shù)。然而,由于時鐘約束,線分段數(shù)總是有一個物理限制。線的每一部分可以被視為一個組合邏輯加上最后鎖存器,信號通過后的鎖。定義的最大傳輸延時,即通過長度的延遲信號路徑;為的最小傳輸延遲,即通過短的信號路徑延遲;為建立正確的時鐘信號所需的時間,包括必要的建立和保持時間,保證正確的鎖存器,同時也包括可能的時鐘偏移,滿足不同鎖存時鐘沿最大時間差。第一組信號時的作用,假設(shè)在一個級別的輸入,然后輸出的最新有效。當(dāng)另一組信號在時間的輸入端子,以最快的時間就可以存L保證二組信號不覆蓋第一組的信號,必須滿足:該公式說明,信號可能到達(dá)的最早時刻不能早于信號正確鎖存的時刻。該不等式可以重寫為:其中就是最短時鐘周期T。因此,時鐘周期T必須比大,而最大時鐘頻率不能超過1/T。從中我們可以看到,時鐘最終決定管線深度,除了這一限制,如果考慮價格,即流水線間接成本,最好的設(shè)計通常不是最大的流水線深度。在一個流水線系統(tǒng)的硬件設(shè)計,必須考慮價格和性能的權(quán)衡。一般來說,價格相對深度的流水線流水線成線性增長。流水線深度一直是影響處理器效率的重要因素,流水線深度的增加可以讓處理器時鐘頻率進一步提高,但隨著流水線深度的增長帶來的處理器的單周期執(zhí)行效率降低、發(fā)熱量上升,同時容易產(chǎn)生分支預(yù)測等問題反面影響也會加劇,因此流水線長度的尺度把握一直是處理器設(shè)計中的一個重要核心問題。在設(shè)計流水線,要綜合各方面的因素,根據(jù)最佳性價比的要求來選擇流水線的最佳段數(shù)。流水線處理器設(shè)計流水線處理器設(shè)計中的主要問題就是縮小實際情況與理想假設(shè)之間的差異。所有關(guān)于流水線處理器的設(shè)計技術(shù),都可以看作是為解決這三個挑戰(zhàn)而進行的努力。保持流水段均衡要流水化的運算就是每個指令周期所要進行的工作。一個典型的指令周期可以根據(jù)功能劃分成以下5個基本分量:取指(IF,Instructionfetch)譯碼(ID,Instructiondecode)取操作數(shù)(OF,Operand(ds)fetch)執(zhí)行(EX,Instructionexecution)存儲(OS,Operandstore)一個典型的指示,從取指令周期開始,然后解碼,它決定了指令完成操作。一個指令是通常帶有一個或多個操作數(shù),操作數(shù)在寄存器或內(nèi)存,這取決于使用的尋址方式。一旦所需的錯誤計數(shù)都準(zhǔn)備好了,你可以執(zhí)行指定的操作指令。實施所產(chǎn)生的結(jié)果存儲起來,就算結(jié)束指令周期。分段指令周期是一個自然的方式是按照5個基本算術(shù)元件劃分,每個業(yè)務(wù)組件對應(yīng)一個流動部分,造成a5stage指令流水線,我們稱這些為基本指令流水線,簡稱槍花線。在與流水線,邏輯指令周期將被映射到5個物理機器周期。機器周期,指令周期的比例為5,這是反映了流動的程度和水段大小。定量的水段設(shè)計成指令周期分割平衡水段,以便盡量減少一些內(nèi)部分裂。定量的水部分的自然功能分區(qū)開始。作為基本算術(shù)組件。多個延遲更小的組件可以組合成一個新的組成部分,以獲取更平衡線。另外一個平衡線方法是相反的,不是有一個較短的延遲元件組合,但會延遲較長的操作部件被分成多個短時延的組成部分。該方法延遲短的組成部分為參考,長潛伏期操作部件分成較小的部分,使每一個組件的延遲和參考元件延遲幾乎。這將導(dǎo)致在一個機器周期粒度更細(xì),在更高程度。在具體進行指令流水線設(shè)計的時候,這兩種方法可以結(jié)合起來使用。不管在什么情況下,量化流水段的目標(biāo)都是盡量減小內(nèi)部碎片的開銷。統(tǒng)一指令類型第二線的理想假設(shè)需要線應(yīng)重復(fù)同樣的操作。為廣大的指令流水線,重復(fù)相同的操作理想的假設(shè)是不成立的。指令流水線指令重復(fù)處理不同的指令類型。雖然指令周期重復(fù),但每次過程的不同類型的指令。不同的指令類型有不同的資源要求,每個組成部分的業(yè)務(wù)訂單可能不一樣。指令流水線的要求,滿足不同需求,您必須提供所有類型的指令所需的所有操作元件的超集。一個單一的指令類型可能不需要所有的流動剖面線。一個單一的指令類型,不需要水段為某種形式的失敗或架空,即外部碎片。目的的統(tǒng)一指揮,是盡量減少所有指令式外碎片。要完成一次運算,計算機必須完成一下三個基本任務(wù):算術(shù)操作數(shù)據(jù)移動指令定序算術(shù)運算包括指定的操作執(zhí)行算術(shù)和邏輯運算,它最突出的部分操作,所以經(jīng)常和整個操作是等同的。一個處理器能夠支持大量的算術(shù)運算式。數(shù)據(jù)移動將負(fù)責(zé)操作數(shù)和結(jié)果存儲在地址的移動。通常是內(nèi)存地址的層次和專業(yè)指示移動數(shù)據(jù)。指令序列負(fù)責(zé)指令序列的測定。通常的運作程序,含有大量的指令,通過執(zhí)行一系列指令需要完成操作。該指令序列,或打電話程序,可以通過指令本身的確定。如何將這三個基本任務(wù)分派給ISA中的各種指令,是指令集實際中的關(guān)鍵問題。受RISC體系結(jié)果的影響,現(xiàn)在的大多數(shù)指令集體系結(jié)構(gòu)都有一些共同的特征。這些體系結(jié)果包括Hewlett-Packard的Precision體系結(jié)構(gòu),IBM的Power體系結(jié)構(gòu),IBM/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)起來。在一個典型的現(xiàn)代RISC體系結(jié)構(gòu)中,指令集采用一種專門的指令類型來完成三個基本任務(wù)中的一個,也就是說,每一種指令類型只完成三個基本任務(wù)中的一個。根據(jù)三個基本任務(wù),可以將指令分成三種類型:ALU指令完成算術(shù)和邏輯運算Load/store指令完成數(shù)據(jù)在寄存器及存儲器間的移動分支指令控制執(zhí)行指令的順序ALU指令所執(zhí)行的算術(shù)邏輯操作嚴(yán)格地針對寄存器操作數(shù)進行,只有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)致不同的資源需求?;具\算分量ALU指令類型IF-取指令(訪問I-cache)ID-解碼指令OF-訪問寄存器文件EX-執(zhí)行ALU操作OS-回寫寄存器文件表3.1ALU指令類型規(guī)范基本運算分量Load指令store指令I(lǐng)F-取指令(訪問I-cache)-取指令(訪問I-cache)ID-解碼指令-解碼指令OF-訪問寄存器文件(基地址)-生成有效地址(基地址+偏移量)-訪問(讀)內(nèi)存(訪問D-cache)-訪問FP寄存器文件(寄存器操作數(shù)及基地址)EX--OS-回寫寄存器文件-生成有效地址(基地址+偏移量)-訪問(寫)內(nèi)存(訪問D-cache)表3.2Load/store指令類型規(guī)范統(tǒng)一不同指令類型主要是將不同資源需求有效的整合到一條指令流水線中去,使得這條流水線適合于所有的指令類型。整合的目標(biāo)是,盡量減少流水線所需要的資源總數(shù),同時盡量提高流水線中所有資源的利用率。通常,資源的整合過程包含以下三個步驟。分析每種指令類型的運算分量序列,確定相應(yīng)的資源需求。找出指令類型之間的共性,合并相同的運算分量,已使用相同的流水段。如果在不違背指令語意的情況下存在一定的靈活性,可以改變或者重新排列分量的順序,以便進一步的整合??梢詫⑦@一過程應(yīng)用到表3.1和表3.2中。ALU,load,store指令類型的規(guī)范總結(jié)如圖3.3所示。現(xiàn)在我們由上至下實施統(tǒng)一的過程,檢查3個分量的序列合要求提供支持的硬件資源。這個過程產(chǎn)生了指令流水線各段的定義。ALULOADSTORE取指令取指令取指令更新PC更新PC更新PCIF解碼解碼解碼ID讀寄存器讀寄存器讀寄存器RDALU.Op生成地址生成地址ALU讀內(nèi)存寫內(nèi)存MEM寫寄存器寫寄存器WB圖3.3ALU,load,store指令類型的規(guī)范總結(jié)所有3種指令類型都有相同的IF和ID分量,因此,這兩個運算分量可以很容易的合并起來,并用來定義流水線的前兩個段,即IF和ID段,從而完成取指和譯碼工作。所有3種指令類型的OF分量都要讀寄存器文件。ALU指令訪問兩個寄存器并且獲得寄存器操作數(shù);load指令訪問一個寄存器并獲得地址;store指令訪問一個寄存器并且獲得操作數(shù),訪問另外一個寄存器以獲得基地址。在3中情況下都要訪問一個或者兩個寄存器,這些相似的分量可以合并到流水線的第三段,成RD段并從寄存器文件讀取最多兩個寄存器操作數(shù)。因此寄存器文件在每個時鐘周期內(nèi)必須支持兩個獨立的并行操作數(shù)。ALU指令要求有一個ALU功能單元來完成必要的算術(shù)邏輯運算。雖然load,store指令不需要執(zhí)行這樣的操作,但是他們需要生成有效的地址來訪存??梢钥闯觯刂飞煽梢杂葾LU功能單元來完成。因此,這些分量可以合并到流水線第4段,成為ALU段并包含一個ALU功能單元,完成算術(shù)邏輯運算或者有效地址的生成。ALU和load指令都需要想寄存器寫回結(jié)果,這是他們的最后一個運算分量。ALU指令將寄存器操作的結(jié)果寫回寄存器,load將訪存的數(shù)據(jù)寫入到目標(biāo)寄存器。ALU指令不需要訪存,因此,理論上向目標(biāo)寄存器回寫這一過程可以在ALU段之后立即進行。然而為了load指令回寫分量統(tǒng)一起來,ALU指令的寄存器回寫分量向后推遲了一段,在流水線的第6段進行,成為WB段。這將導(dǎo)致ALU指令在MEM段產(chǎn)生一個空閑周期。這是一種外部碎片并將給流水線帶來一些效率損失。通過對不同指令類型的整合,可以得到一條6級流水線,如圖3.3右側(cè)所示。減少流水線停頓第三線理想的假說認(rèn)為,流水線執(zhí)行的操作是相互獨立的。在一個等級的流水線,可能有不同的操作處理的指令流水線,具有最大鉀不同的指示,同時在流水線。這些指令可能不是相互獨立的。事實上,這些指令通常與。如果流水線指令不相關(guān),將有助于流水線流動,或者說,指令通過線路沒有任何流水線攤位。如果指令相關(guān)的,它必須檢測和解決有關(guān)。該解決方案可能需要流水線攤位。設(shè)計的挑戰(zhàn),目的是減少流量減少流水線攤位,防止通量下降率。關(guān)于具體怎樣判斷各種相關(guān)并且將其化解,將在下一章中進行討論。流水線中各種相關(guān)及其處理我們知道級數(shù)為n的流水線,在理想情況下可以提高處理性能n倍。但是,在實際中,有一些情況會阻止指令流中的下一條指令在預(yù)定的時鐘周期內(nèi)執(zhí)行,這些情況就稱為“相關(guān)冒險”或者“相關(guān)”。這一章,我們詳細(xì)的討論流水線中各種相關(guān)產(chǎn)生的原因及其處理方法。流水線中相關(guān)流水線相關(guān)阻止了流水線以理想的加速比改進處理器的性能。在流水線設(shè)計中,我們需要考慮以下三種相關(guān):資源相關(guān):當(dāng)硬件無法支持所有可能,同時重疊執(zhí)行指令組合,將有資源沖突,導(dǎo)致相關(guān)資源,也被稱為“結(jié)構(gòu)”。數(shù)據(jù)相關(guān):在流水線重疊執(zhí)行指令,如果指令依賴于前面的另一個指令執(zhí)行的結(jié)果,導(dǎo)致流水線攤位,你有數(shù)據(jù)相關(guān)??刂葡嚓P(guān):這種相關(guān)主要是由于轉(zhuǎn)移指令和其他能夠改變PC內(nèi)容的指令,在流水線進行處理時產(chǎn)生的。在接下來幾節(jié)中我們將對這三種相關(guān)分別進行討論。資源相關(guān)通常,一些功能不完全流水線是產(chǎn)生資源相關(guān)的基本原因。然后,當(dāng)一個指令序列的許多指令都使用這一功能,該指令將不在流水線連續(xù)起動過程。另一個原因,流水線沖突的主要原因是,在系統(tǒng)無行中的所有命令組合,提供了足夠的硬件資源。例如,一個機可能只有注冊成立寫端口,但是在某些情況下,可能需要在一個循環(huán)寄存器寫動作,這導(dǎo)致資源。當(dāng)一個指令序列滿足資源,流水線將暫停一個指令的執(zhí)行需要知道的資源閑置。許多流水線處理器指令和數(shù)據(jù)訪問只使用一個內(nèi)存流水線。因此,當(dāng)一個指令是必要的操作數(shù)的內(nèi)存訪問操作,數(shù)據(jù)訪問會占用內(nèi)存端口,那么處理器將是下一個指令存取,即線已暫停一個時鐘周期,以便按照指令集。我們在設(shè)計可以避免資源沖突。此外,在其他條件相同的情況下,沒有資源沖突處理器始終是更好地讓資源沖突的處理器有一個較小的消費物價指數(shù)。然而,在具體的設(shè)計中,在許多情況下,我們?nèi)匀豢梢源嬖谫Y源沖突,主要有2個原因,一是降低成本,此外,是降低單位延遲。所有過流部件可以使機器成本超出承受能力。如果在實踐中,一些沖突發(fā)生的頻率較低,可能不值得我們完全避免他們付出高昂的代價。此外,設(shè)置組件的流量或不完全流水線的成分,有可能會比完全流水線部件產(chǎn)生較小的總延遲。例如,稱重,疾病預(yù)防控制中心7600和聚合物2012floating點單位完全放棄了流水線設(shè)計,并選擇一個較小的延遲(每個操作數(shù)周期)方案。允許某些資源沖突可以減少部件的等待時間,因此,設(shè)計師可以在其他一些方面的機器的性能得到改善,從而彌補資源沖突不利。數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān)主要有3種,分別是指令相關(guān)、主存空間數(shù)相關(guān)和通用寄存器組相關(guān)。解決數(shù)據(jù)相關(guān)的方法主要有兩種,一種是退后分析法,在遇到數(shù)據(jù)相關(guān)時,退后本條指令的分析,直至所需要的數(shù)據(jù)寫入到相關(guān)的存儲單元中。另一種方法是設(shè)置專用通路,即不必等待所需要的數(shù)據(jù)寫入到相關(guān)的存儲單元中,而是經(jīng)專門設(shè)置的數(shù)據(jù)通路讀取所需要的數(shù)據(jù)。指令相關(guān)如果一個指令的內(nèi)容取決于前一個指令執(zhí)行的結(jié)果,可以產(chǎn)生相關(guān)的指令。之所以會有相關(guān)的指令,關(guān)鍵是由于馮諾伊曼型機器指令允許修改的。如果規(guī)定在程序運行過程中不允許修改的指令,不會出現(xiàn)相關(guān)的指令。此外,沒有修改指令也帶來了重要的好處是可以實現(xiàn)的程序是折返和程序的遞歸調(diào)用。然而,為了滿足需要的程序設(shè)計的靈活性,有時需要在運行過程中的修改指令,可以通過設(shè)置“執(zhí)行”的指令來解決。”執(zhí)行“370機指示提供一個命令。由於指令改為“執(zhí)行”操作的指令格式,指令相關(guān)變成幾個相關(guān)的,那么根據(jù)統(tǒng)一編號與處理。主存空間操作數(shù)相關(guān)由于操作數(shù)可能存放于主存,也可能存放在寄存器中,因此數(shù)相關(guān)可以分為主存空間操作數(shù)相關(guān)合通用寄存器組相關(guān)。一些內(nèi)存空間是相鄰的指令要求出現(xiàn)在同一單位第一次到主存儲器寫入和讀出的協(xié)會。如果前面的“執(zhí)行”和“分析”背后的相鄰的指示,在時間上重疊,將使“分析”的指令后,讀取的操作不需要的程序指令執(zhí)行完成之前,應(yīng)該寫的結(jié)果,從而導(dǎo)致錯誤。這種情況下避免錯誤,只有回到下一條指令的“分析”讀操作。為推動閱讀后,常用的方法是通過控制讀,寫幾個安排不同的訪問優(yōu)先解決。因為中央處理器和一個以上的通道可以直接訪問主內(nèi)存,中央處理器訪問可能被預(yù)取指令,讀取或?qū)懭?,信道接入可以讀,寫數(shù)據(jù),以控制通道,通道狀態(tài)字。這些訪問請求,如果發(fā)出的同時,會有沖突,因此需要由鎖存控制根據(jù)預(yù)先確定的優(yōu)先隊列處理。只要寫作水平高于閱讀水平的反應(yīng),對自然的解決這個主內(nèi)存空間相關(guān)的數(shù)。通用寄存器組相關(guān)在寄存器-寄存器型(RR型)指令和寄存器-存儲器型(RS)型指令的執(zhí)行過程中可能發(fā)生通用寄存器組數(shù)相關(guān)??聪旅鎯蓷l指令:k:OP,;=()OP()K+1:OP;=()OP()如果發(fā)生:稱數(shù)相關(guān)。如果發(fā)生:稱數(shù)相關(guān)。發(fā)生通用寄存器數(shù)相關(guān)的情況與寄存器本身的結(jié)構(gòu)合所采用的控制時序等也有關(guān)系。解決通用寄存器數(shù)相關(guān)主要有以下幾種方法:1.如果通用寄存器所使用的觸發(fā),但也在通用寄存器算術(shù)單元之間建立直接數(shù)據(jù)路徑,即不設(shè)置緩沖的注冊或鎖存器,不是通用寄存器數(shù)據(jù)的相關(guān)性。由于觸發(fā)器允許在同一節(jié)奏之間的循環(huán)移位寄存器。在這種情況下,不需要分析周期,在節(jié)奏可以完成從通用寄存器的選擇分別讀取操作等操作,操作數(shù)的算術(shù)單元完成操作,并將結(jié)果寫回寄存器。如果構(gòu)成通用寄存器的不是D觸發(fā)器,或者在通用寄存器到運算器之間設(shè)有緩沖寄存器或者鎖存器,則會發(fā)生寄存器數(shù)相關(guān)。2.將分析指令推后一個周期執(zhí)行。此方法跟前面處理主存空間數(shù)相關(guān)一樣,完全可以解決問題。3.將分析指令推后一個節(jié)拍。這種方法跟方法2相似,只是分的更細(xì)了。與方法2相比較,此方法在控制上稍嫌復(fù)雜,但是在速度上卻要快一些。4.設(shè)置“相關(guān)專用通路”。在推動“分析”和“設(shè)置專用道”是解決了流水線處理2種基本方法。為減少的速度,成本的硬件設(shè)備,基本不增加。后者是增加硬件成本和維修設(shè)備,流水線效率。在流水線的設(shè)計過程,權(quán)衡之間運行速度和價格等因素,選擇適當(dāng)?shù)姆椒???刂葡嚓P(guān)相關(guān)的數(shù)據(jù),控制將產(chǎn)生更大的性能損失??刂瞥绦驁?zhí)行的方向可能造成的相對變化,有時,我們也被稱為全球相關(guān)。程序的執(zhí)行可能改變方向的無條件轉(zhuǎn)移指令,一般條件轉(zhuǎn)移,轉(zhuǎn)移,復(fù)雜條件,中斷子程序調(diào)用。這里有一些常用的處理方法。猜測法設(shè)有條件轉(zhuǎn)移指i,其兩個分支分別為i和p,若轉(zhuǎn)移成功時按原來的順序從i接著往下執(zhí)行;若轉(zhuǎn)移成功是則轉(zhuǎn)向p執(zhí)行。流水方式是同時解釋多條指令,因此,當(dāng)指令i進入流水線,后面進i+1還是進p,只有等條件碼建立才能知道,而這一般要等這條條件轉(zhuǎn)移指令快流出流水線時才行。如果在此期間讓i后的指令都等著,流水線就會“斷流”,性能急劇下降。這種時候,絕大多數(shù)機器都采用猜測法來解決這一問題。所以,猜想法選擇哪支比較好?如果兩家分支概率接近,應(yīng)保持原來的順序,繼續(xù)執(zhí)行我+1,因為這些指令預(yù)取指令緩沖區(qū),可以迅速清除從指令緩沖區(qū),進入流水線不等待。如果你選擇的成功轉(zhuǎn)讓的分支,該命令是不可能在緩沖區(qū)的指令,這將需要很長的時間去,實際上停止線。預(yù)測方法,應(yīng)能保證預(yù)測錯誤恢復(fù)分支點原來的網(wǎng)站,通常有三種方式。一個是在指令解碼,好操作,轉(zhuǎn)讓條件代碼之前出現(xiàn)的任何操作;一個是讓他做完手術(shù),但不返回結(jié)果;另一個是讓它和正常情況下,不分青紅皂白地解釋,只要有可能破壞的原始狀態(tài)是后備緩沖區(qū)儲存期,一旦猜錯了后備緩沖區(qū)的內(nèi)容恢復(fù)分支點。早期前用2種方法?,F(xiàn)在,隨著價格,體積,設(shè)備技術(shù)的進步,一般采用第三種方法來確保效率。為了在猜錯時能盡快回復(fù)到原分支點,轉(zhuǎn)入另一分支,在沿猜測路徑向前流動的同時,還可以由存貯器預(yù)取轉(zhuǎn)移成功分支的頭幾條指令放在轉(zhuǎn)移目標(biāo)指令緩沖器中。以便在猜錯時,不必從訪存取p開始,減少了流水線的等待時間。加快和提前形成條件碼盡快、盡早獲得條件碼以便提前知道流向哪個分支,是會有利于流水機器簡化對轉(zhuǎn)移的處理的。這可以從兩方面采取措施。一是加快質(zhì)疑教學(xué)內(nèi)部條件代碼的形成,從指令執(zhí)行前結(jié)束,形成反應(yīng)結(jié)果的操作條件碼。例如,結(jié)果是積極的,消極的和無條件的代碼可以在手術(shù)前形成。amdahl470v/6英寸按照這個思路,在流水線的操作輸入裝置設(shè)置運氣,幾乎可以確定其條件指令代碼,以便具體操作可操作的結(jié)果狀態(tài)代碼的指令發(fā)送到分析組件。另一方面是在一個程序預(yù)先形成的條件代碼,這是特別適合回收計劃在判斷是否循環(huán)繼續(xù),轉(zhuǎn)讓的情況。例如,F(xiàn)ORTRAN做周期,執(zhí)行循環(huán)終端語句,總是對循環(huán)控制數(shù)減1,如果降低的結(jié)果for0out的回路,或繼續(xù)循環(huán)身體的一部分,這是通常使用的1和2等于零的條件轉(zhuǎn)移指令的實現(xiàn)。為了使等于零的條件轉(zhuǎn)移指令的條件代碼可以形成,可以減少to1of事前指示和不相關(guān)的其他指令之前,甚至在推進到循環(huán)開始。采取轉(zhuǎn)移延遲這是一個軟件方法靜態(tài)指令調(diào)度技術(shù)。沒有額外的硬件,在編譯目標(biāo)教學(xué)計劃,將轉(zhuǎn)移指令和前面不相關(guān)的一個或多個指令交換位置,讓成功轉(zhuǎn)移一直延遲到一個或一個以上的指令執(zhí)行后。這樣,可以使轉(zhuǎn)移造成的性能損失降低到0。加快短循環(huán)程序的處理一個小於長度的指令緩沖區(qū)容量可以短期循環(huán)程序整個一次性到指令緩沖區(qū),并暫停預(yù)取指令執(zhí)行周期,避免指令預(yù)取指令緩沖區(qū)循環(huán)指令執(zhí)行被開發(fā),可以減少內(nèi)存存取重復(fù)取號;但因為循環(huán)分支概率高,所以退出循環(huán)結(jié)束的條件轉(zhuǎn)移指令不斷猜測循環(huán)分支,由于減少了條件分支線斷線造成機會。有些機器也要執(zhí)行,讓預(yù)取指令都在正常使用的指令緩沖區(qū),轉(zhuǎn)移到目標(biāo)指令緩沖區(qū)。在檢測周期,可以轉(zhuǎn)移到指令緩沖區(qū)的內(nèi)容作為短周期控制程序,消除了第一個周期,再從主內(nèi)存和短周期中的程序指令操作的開銷。有些機器允許的指令緩沖寄存器連接使用,允許更大的循環(huán)程序也可以加速處理。中斷處理與流水線調(diào)度中斷處理和非線性流水線及多功能流水線調(diào)度問題也是設(shè)計指令流水線時非常值得注意的兩個大問題,在本章,我們將對這兩大問題進行初步的研究。中斷處理中斷導(dǎo)致線路斷開。然而,它的概率比條件的概率要低得多,這也是一個隨機事件。因此,機加工中斷是如何處理現(xiàn)場的保護和斷點恢復(fù),而不是如何縮短線路斷開時間。在執(zhí)行指令在我中斷,應(yīng)在執(zhí)行結(jié)束指令指示我,我+1已經(jīng)沒有開始執(zhí)行的地方,但水是在同一時間機器解釋多個指令,指示我,我++1…可能已進入流水線和部分解釋。一個流,其中的一些指令流的命令我吧。早期水機,如360/91,為簡化中斷處理,采用不精確斷點”方法。無論是否命令我,線路中斷,不再允許后續(xù)指令尚未進入進入,但已在流水線不斷流動的所有指令執(zhí)行,然后轉(zhuǎn)移到中斷處理程序。在這方面,斷點當(dāng)然不會是我,可能背后我+1,2+1…斷點是不確定的。只有當(dāng)指令在第一段中斷時,我的反應(yīng),斷點是準(zhǔn)確的。這種“不精確斷點”方法不好的編程和程序的調(diào)試。后來,水機多采用“精確斷點”的方法,如amdahl470/6。無論我在教學(xué)中,響應(yīng)中斷,中斷處理程序領(lǐng)域所有相應(yīng)的我,我到流水線指令的原始場均可以恢復(fù)。這種方法需要許多支持注冊,保證線路的每個指令能夠恢復(fù)原來的領(lǐng)域。如前所述,這些寄存器也”指令重試”,不需要另外設(shè)置。流水線調(diào)度由于線性線在每個任務(wù)的執(zhí)行,每個通過只有一個,所以每個鏡頭都是一個新的任務(wù),這些任務(wù)的線,沒有競爭相同的水段。非線性流水線是不同的。因為部分是安排之間的反饋回路,一個任務(wù)在運行過程中,可反復(fù)通過同一段或在一定的時期。所以,如果每一次的線到一個新的任務(wù),將產(chǎn)生幾個任務(wù)競爭同一時期使用的功能沖突現(xiàn)象。為了不沖突,有適當(dāng)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司房租租憑合同范本
- 勞動安全協(xié)議合同范本
- 包子店加盟簽約合同范本
- 人工打草合同范本
- 沖孔加工銷售合同范本
- 2024年河南省直第三人民醫(yī)院招聘筆試真題
- 第14課《回憶我的母親》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文七年級上冊
- 力工合同范例
- 中國鐵建合同范本
- 包月工作合同范本
- 菌菇智慧方艙栽培及食用菌菌包中心生產(chǎn)基地項目可行性研究報告
- 生物工程畢業(yè)設(shè)計開題報告
- 園林垃圾處理政策解讀
- GT 42456-2023 工業(yè)自動化和控制系統(tǒng)信息安全 IACS組件的安全技術(shù)要求
- 《胎心監(jiān)護及判讀》
- 養(yǎng)老院管理-護理員-績效考核表
- 奧爾夫技能考核方案
- 指數(shù)函數(shù)及其圖像與性質(zhì)教案
- BPO糊的生產(chǎn)工藝
- 裝飾裝修工程安全管理培訓(xùn)學(xué)習(xí)
- 非煤露天礦山風(fēng)險辨識與評估及風(fēng)險控制
評論
0/150
提交評論