流水線拐袜,是一種把一個(gè)任務(wù)分解為若干個(gè)子任務(wù)冯凹,交付給不同執(zhí)行機(jī)構(gòu)或者部件進(jìn)行的技術(shù)佑女。目的是在可以讓多個(gè)機(jī)構(gòu)(資源)同時(shí)工作,使得機(jī)構(gòu)可以并行工作谈竿,從而提高工作效率团驱。下面將從周期與執(zhí)行時(shí)間、吞吐率空凸、加速比三個(gè)內(nèi)容進(jìn)行學(xué)習(xí)闡釋嚎花。
Part 1:周期與執(zhí)行時(shí)間
由于流水線的特點(diǎn)是并行工作,所以呀洲,并行的N個(gè)部件中紊选,周期取決于周期最長(zhǎng)的一個(gè)任務(wù)。則可推出道逗,執(zhí)行時(shí)間 = 第一條指令的執(zhí)行時(shí)間 + (n-1)* 流水線周期兵罢,特殊情況下可有N個(gè)任務(wù)執(zhí)行時(shí)間相同,則:執(zhí)行時(shí)間 = n*流水線周期滓窍。
在題目中往往存在理論情況和實(shí)踐情況兩種不同的處理方式卖词,下面通過例題來解釋。
例題:某計(jì)算機(jī)系統(tǒng)吏夯,一條指令的執(zhí)行需要經(jīng)歷取指令(2ms)此蜈、分析指令(4ms)、執(zhí)行指令(1ms)三個(gè)階段完成噪生,現(xiàn)在有100條指令裆赵,利用流水線技術(shù)需要多少時(shí)間?
①理論情況:一條指令的執(zhí)行時(shí)間= 2 + 4 + 1 = 7ms
則有:一條指令的執(zhí)行時(shí)間=(2+4+1) + (100-1)*4 = 403ms
②實(shí)際情況:一條指令執(zhí)行的周期= 最大任務(wù)時(shí)間跺嗽,則有第一個(gè)周期內(nèi)執(zhí)行的時(shí)間是(4ms + 4ms + 4ms )+(100-1) * 4 = 408ms
Part2:流水線的吞吐率
流水線的吞吐率是指在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量和輸出結(jié)果的數(shù)量战授。
有公式:吞吐率=任務(wù)數(shù) / 總時(shí)間。
流水線最大吞吐率=任務(wù)數(shù) / (流水線段數(shù) + 任務(wù)數(shù) - 1)* 流水線周期
當(dāng)任務(wù)數(shù)趨向于無求大的時(shí)候桨嫁,吞吐率最大= 1 /流水線周期植兰。
Part3:流水線的加速比
流水線的加速比是指,完成同一批任務(wù)瞧甩,不使用流水線所用的時(shí)間和使用流水線的時(shí)間所用的時(shí)間比例钉跷。有公式:加速比=不使用流水線時(shí)間 / 使用流水線時(shí)間弥鹦。
進(jìn)一步拆分可有:
①使用流水線時(shí)間= (流水線段數(shù) + 任務(wù)數(shù) - 1)* 流水線周期
②不使用流水線時(shí)間= 任務(wù)數(shù)*流水線段數(shù)*流水線周期
結(jié)合則有:加速比=(任務(wù)數(shù)*流水線段數(shù))/ 任務(wù)數(shù) + 流水線段數(shù) - 1
當(dāng)任務(wù)數(shù)趨向于無窮大的時(shí)候肚逸,有最大加速比=流水線段數(shù)爷辙。