提到流水線,最先想到的可能是流水線車(chē)間中的產(chǎn)品制造過(guò)程。
工業(yè)上的流水線,又稱(chēng)裝配線,指每一個(gè)生產(chǎn)單位只專(zhuān)注處理某一個(gè)片段的工作,以提高工作效率及產(chǎn)量。
在計(jì)算機(jī)領(lǐng)域中,也有流水線的概念,其核心原理也是和工業(yè)上的流水線一致。
1 計(jì)算機(jī)中的流水線概念
流水(pipelining),或流水技術(shù),是指把并行性(或并發(fā)性)嵌入到計(jì)算機(jī)系統(tǒng)中,它可以把重復(fù)的順序處理過(guò)程分解為若干子過(guò)程,每個(gè)子過(guò)程能在專(zhuān)用的獨(dú)立模塊上有效地并發(fā)工作。
其特點(diǎn)歸納包括:
- 一條流水線通常由多個(gè)流水段組成每段由專(zhuān)用功能部件,各部件順序連接,不斷流各段時(shí)間時(shí)間盡量短、并盡量一致,不一致時(shí)最慢子過(guò)程稱(chēng)為瓶頸流水線的操作周期,為其最耗時(shí)的那段(瓶頸)所需的時(shí)間使用流水線,可同時(shí)指向多條指令,提高了各部件的利用率和系統(tǒng)的吞吐率
2 嵌入式ARM中的五級(jí)流水線
嵌入式處理器設(shè)計(jì)中,通常用到五級(jí)流水線(如ARM9):
- 取指(IF):從存儲(chǔ)器中取出指令,將其放入指令流水線譯碼(ID):對(duì)指令進(jìn)行譯碼解碼執(zhí)行(EX):利用邏輯運(yùn)算單元進(jìn)行運(yùn)算的執(zhí)行訪存(MEM):在需要的情況下,進(jìn)行數(shù)據(jù)存儲(chǔ)器的訪問(wèn)回寫(xiě)(WB):將指令產(chǎn)生的結(jié)果,回寫(xiě)到寄存器中,包括任何從存儲(chǔ)器中讀取的數(shù)據(jù)
3 流水線實(shí)例分析
3.1 實(shí)例1
某三級(jí)流水線,操作步驟包括:取指、分析、執(zhí)行,每級(jí)的執(zhí)行時(shí)間為5、2、3,求從頭到尾執(zhí)行完100條指令所需的時(shí)間
5+2+3+5x99=505
3.2 實(shí)例2
某三級(jí)流水線,操作步驟包括:取指、分析、執(zhí)行,每級(jí)的執(zhí)行時(shí)間為4、2、3,求從頭到尾執(zhí)行完100條指令所需的時(shí)間
4+2+3+4x99=405
4 總結(jié)
本篇介紹了計(jì)算機(jī)與嵌入式領(lǐng)域中的流水線概念,并通過(guò)實(shí)例分析了流水線的處理時(shí)間該如何計(jì)算。