TMS320C6x的流水线分为TMS320C62x/C64x定点流水线和TMS320C67x浮点流水线,如图2-10所示。定点流水线和浮点流水线都包含取指、译码和执行三个阶段。它们之间的不同之处在于,定点流水线的执行阶段包含5个节拍,浮点流水线的执行阶段包含10个节拍。
TMS320C6x的每条指令具有固定的取指和译码节拍,但每条指令的执行节拍数却不固定,有的指令有一个执行节拍,有的有两个执行节拍。根据指令执行节拍的不同,TMS320C62x/C64x的指令可以划分为6种类型,TMS320C67x的指令可以划分为9种类型。
图2-10 定点流水线和浮点流水线指令节拍
1.取指
取指,就是将指令从程序存储器读取到CPU。取指的过程按照先后顺序,细分为4个节拍,这4个节拍分别如下。
1)PG:程序地址产生(Program Address Generate);CPU生成程序地址。
2)PS:程序地址发送(Program Address Send);程序地址送到程序地址总线。
3)PW:程序访问等待(Program Address Ready Wait);存储器将指令送到程序总线。
4)PR:程序取指包接收(Program Fetch Packet Receive);CPU读取指令。
TMS320C6x的程序总线宽度为256位,每条指令的长度固定为32位,所以,TMS320C6000取指一次,可以同时取到8条指令,这8条指令称为一个取指包(Fetch Packet,FP)。每个FP中的并行执行的指令构成一个执行包(ExecutePacket,EP)。
图2-11显示了TMS320C6x指令通过取指流水线的过程。从图2-11中可以清楚地看到,在取指阶段的每个节拍上,都有8条指令同时处理。
2.译码
译码阶段分为2个节拍,如图2-12所示,依先后顺序分别如下。(www.xing528.com)
图2-11 流水线的取指周期
a)取指各节拍的先后顺序 b)取指各节拍的功能框图 c)取指包通过流水线取指级的各节拍流程
1)DP:指令分配;首先将每个取指包分组,并行执行的指令为一组,即每个执行包为一组。然后将执行包一组一组地分配到相应的功能单元,每个时钟周期分配一组。
2)DC:指令译码;各功能单元完成指令译码。
在DP节拍,如果处在该节拍上的取指包由两个或两个以上执行包组成,会产生流水线阻塞(Pineline Stall)。
图2-12 流水线的译码周期
a)译码各节拍的先后顺序 b)流水线译码各节拍流程
3.执行
TMS320C62x/C64x定点流水线的执行阶段划分为5个节拍(E1~E5)。TMS320C67x浮点流水线的执行阶段划分为10个节拍(E1~E10)。TMS320C64x流水线的执行周期5个节拍上执行的操作如图2-13所示。
图2-13 TMS320C64x流水线的执行周期
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。