加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 什么是ARM流水線
    • ARM 流水線特性
    • 基本ARM微架構(gòu)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

淺談ARM 架構(gòu)中的流水線

09/20 11:04
3.4萬
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

什么是ARM流水線

流水線(Pipelining)是 RISC(精簡指令集處理器用來執(zhí)行指令的機(jī)制,通過獲取指令來加速執(zhí)行,而其他指令同時(shí)被解碼和執(zhí)行。這反過來又允許內(nèi)存系統(tǒng)和處理器連續(xù)工作。每個(gè) ARM 系列的流水線設(shè)計(jì)都不同。

流水線是一種設(shè)計(jì)技術(shù)或過程,它在提高計(jì)算機(jī)微控制器處理器中的數(shù)據(jù)處理效率方面發(fā)揮著重要作用。通過將處理器保持在一個(gè)連續(xù)的獲取、解碼和執(zhí)行過程中,稱為(FETCH-DECODE-EXECUTE(F&E) 循環(huán))。

由于 RISC 強(qiáng)調(diào)編譯器的復(fù)雜性,ARM 器件需要流水線。每一級(jí)流水相當(dāng)于1個(gè)周期,即n個(gè)階段=n個(gè)周期。

圖1 三級(jí)流水線示意圖

 

如圖1,F(xiàn)etch (取指)從內(nèi)存中加載一條指令;Decode(譯碼)識(shí)別要執(zhí)行的指令;Execute (執(zhí)行)處理指令并將結(jié)果write back(寫回)到寄存器;通過重疊執(zhí)行不同指令的上述不同階段,提高了執(zhí)行速度。

圖2 F&E循環(huán)示意圖

ARM 流水線特性

 

ARM 流水線在完全通過execution stage之前不會(huì)處理該指令。在執(zhí)行階段,PC總是指向指令地址+8字節(jié);當(dāng)處理器處于thumb state時(shí),PC 總是指向指令地址 + 4 個(gè)字節(jié);在執(zhí)行分支指令或通過直接修改 PC 進(jìn)行分支時(shí),會(huì)導(dǎo)致 ARM 內(nèi)核刷新它的流水線;即使已引發(fā)中斷,執(zhí)行階段的指令也會(huì)完成其執(zhí)行。

ARM7系列

如圖1所示,它有 3 級(jí)流水線。它可以在3個(gè)周期內(nèi)完成它的過程。它具有基本的 FETCH-DECODE-EXECUTE(F&E) 循環(huán)。這就是為什么 ARM 7 的吞吐量低于其其他家族成員的原因。它處理 32 位數(shù)據(jù)。

ARM 9系列

圖3 五級(jí)流水線示意圖

 

ARM 9 中的流水線與 ARM 7 類似,但ARM 9有 5 個(gè)階段,完成該過程需要5個(gè)周期。Fetch(取值)-它將從內(nèi)存中獲取指令。Decode(解碼) - 它解碼在第一個(gè)周期中獲取的指令。ALU(arithmetic logic unit,即算術(shù)邏輯單元) - 它執(zhí)行(Execute)在前一階段已解碼的指令。LS1(Memory) 加載/存儲(chǔ)由加載或存儲(chǔ)指令指定的數(shù)據(jù)。LS2(Write) 提取(零或符號(hào))擴(kuò)展由字節(jié)或半字加載指令加載的數(shù)據(jù)。由于階段和效率的增加,吞吐量比 ARM 7 高 10%-13%。ARM 9 的核心頻率略高于 ARM 7。

ARM 10系列

圖4  六級(jí)流水線示意圖

 

這是一個(gè)六級(jí)流水線。這又需要 6 個(gè)周期才能完成該過程。與 ARM 9 相同,但有一個(gè)issue階段,用于檢查指令是否準(zhǔn)備好在以便當(dāng)前階段解碼。它的吞吐量幾乎是 ARM 7 的兩倍。核心頻率高于ARM 9。流水線的階段數(shù)量可能會(huì)根據(jù)每個(gè)周期處理的指令集增加或減少(在大多數(shù)情況下,階段傾向于增加以提高效率)。

基本ARM微架構(gòu)

圖5  某arm微架構(gòu)示意圖

 

Barrel Shifter:Barrel Shifter(桶形移位器)是一種數(shù)字電路,可以將數(shù)據(jù)字移位指定位數(shù),而無需使用任何時(shí)序邏輯,僅使用純組合邏輯,即它固有地提供二進(jìn)制操作。

ALU:該單元執(zhí)行各種算術(shù)和邏輯運(yùn)算。

Address register and increment:寄存器存儲(chǔ)地址,增量器遞增相同以指向下一條指令。

Data register:數(shù)據(jù)寄存器,當(dāng)數(shù)據(jù)寫入內(nèi)存或從內(nèi)存中讀取時(shí),它用作一個(gè)緩沖區(qū)來存儲(chǔ)數(shù)據(jù)。

Instruction Decoder:顧名思義,它對指令進(jìn)行解碼并相應(yīng)地發(fā)出控制信號(hào)。因此,指令解碼器與發(fā)出控制信號(hào)的控制邏輯相關(guān)聯(lián)。指令通過數(shù)據(jù)總線(在底部)獲取并提供給指令解碼和控制單元。該單元對指令進(jìn)行解碼,,然后指令由 ALU、乘法器和桶形移位器使用寄存器組中的寄存器執(zhí)行。

CPI和MIPS

 

CPI( Clock cycle Per Instruction)表示每條計(jì)算機(jī)指令執(zhí)行所需的時(shí)鐘周期,有時(shí)簡稱為指令的平均周期數(shù)??梢杂脕肀硎?a class="article-link" target="_blank" href="/baike/1552575.html">CPU的性能。對CPU來說,在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動(dòng)作。時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,控制著計(jì)算機(jī)的工作節(jié)奏。時(shí)鐘頻率越高,時(shí)鐘周期就越短,工作速度也就越快。

MIPS是每秒鐘處理了多少百萬條指令,計(jì)算公式:MIPS=主頻/CPI * 10的6次方。

從流水線的角度理解建立時(shí)間

 

建立時(shí)間的含義:一個(gè)時(shí)鐘周期內(nèi),一級(jí)流水的指令執(zhí)行必須完成;否則可能會(huì)出現(xiàn)數(shù)據(jù)冒險(xiǎn),因?yàn)椴煌噶畹牧魉牟煌瑂tage是重疊執(zhí)行的。

圖6 流水線的重疊執(zhí)行示意圖

部分參考文獻(xiàn)

《Pipelining in ARM》,作者:jiganrahul01;

《Explain pipelining in ARM processor》,作者:ques10;

Arm

Arm

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術(shù)圈成員。

微信公眾號(hào)