提到流水线,最先想到的可能是流水线车间中的产品制造过程。
工业上的流水线,又称装配线,指每一个生产单位只专注处理某一个片段的工作,以提高工作效率及产量。
在计算机领域中,也有流水线的概念,其核心原理也是和工业上的流水线一致。
1 计算机中的流水线概念
流水(pipelining),或流水技术,是指把并行性(或并发性)嵌入到计算机系统中,它可以把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
其特点归纳包括:
- 一条流水线通常由多个流水段组成
- 每段由专用功能部件,各部件顺序连接,不断流
- 各段时间时间尽量短、并尽量一致,不一致时最慢子过程称为瓶颈
- 流水线的操作周期,为其最耗时的那段(瓶颈)所需的时间
- 使用流水线,可同时指向多条指令,提高了各部件的利用率和系统的吞吐率
2 嵌入式ARM中的五级流水线
嵌入式处理器设计中,通常用到五级流水线(如ARM9):
- 取指(IF):从存储器中取出指令,将其放入指令流水线
- 译码(ID):对指令进行译码解码
- 执行(EX):利用逻辑运算单元进行运算的执行
- 访存(MEM):在需要的情况下,进行数据存储器的访问
- 回写(WB):将指令产生的结果,回写到寄存器中,包括任何从存储器中读取的数据
3 流水线实例分析
3.1 实例1
某三级流水线,操作步骤包括:取指、分析、执行,每级的执行时间为5、2、3,求从头到尾执行完100条指令所需的时间
5+2+3+5x99=505
3.2 实例2
某三级流水线,操作步骤包括:取指、分析、执行,每级的执行时间为4、2、3,求从头到尾执行完100条指令所需的时间
4+2+3+4x99=405
4 总结
本篇介绍了计算机与嵌入式领域中的流水线概念,并通过实例分析了流水线的处理时间该如何计算。