流水线操作技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十一讲流水线操作技术

一、流水线操作

二、延迟分支转移的流水线图

三、条件招待指令的流水线图:

四、双寻址存储器的流水线冲突

五、流水线的冲突问题

指令字、单字指令、双字指令、多字指令:

指令字:表征指令的二进制代码,由操作码和操作数组成

单字指令:由16位二进制代码表示的指令(1个字)

双字指令:由32位二进制代码表示的指令(2个字)

多字指令:由n*16位二进制代码表示的指令(n个字)

说明:

1)执行一条单字指令至少需要1个指令周期(6个机器周期)

2)执行一条双字至少指令需要2个指令周期

3)程序执行时只能依次取出一个指令字,不能同时取出两个指令字

1)一般在一条指令中操作码占8位,其余为操作数位

2)若操作数不超过8位则为单字指令,否则为双字指令或多字指令3)立即数寻址为单字(立即数为3、5、8位),双字(9、16位)4)绝对地址寻址为双字指令

5)累加器寻址为单字(*ARx)或双字(#lk)指令

6)直接寻址为单字指令

7)间接寻址为单字指令

9)存储器映象寄存器寻址为单字指令

10)堆栈寻址为单字指令

双操作数间接寻址的指令格式:单字指令

机器周期、指令周期、

1个机器周期

1个指令周期

基于流水线的存储器访问:

二、延迟分支转移的流水线图:

取出要转移的

地址完成转移

知道要转移得到转移的地址将要转移的地址加载PAB

执行转移只需2个周期

实现转移

浪费2个周期

开始执行转移

实际使用4个周期

1)被冲洗掉的两个单周期指令并不占用转移后指令的执行阶段,它们刚好是在各级错开的。

2)在6级流水线中执行双字分支转移转移指令必须要4个机器(即4个指令周期)周期才能完成,在满流水线中执行相当于只占用2个指令周期(机器周期),另外2个周期可用于完成两条单周期指令或一条双周期指令的执行。

3)采用延迟分支转移指令可利用转移指令后的两个周期,即在延迟分支转移指令后安排两条单周期或一条双周期指令,该指令不能是分支或重

复指令。

4)具有延迟操作功能的指令有:

BD FBD BACCD FBACCD BANZD CALLD CALLD FCALLD FCALLD RETD FRETD RETED FRETED RETFD FRETD CCD RCD

例3-9 在完成R=(x+y)*z操作后转移至next r的程序段有两种编写方式:

利用普通分支转移指令B

LD @ x , A

ADD @ y , A

STL A , @ s

LD @ s , T

MPY @ z , A

STL A , @ R

B next

共8个指令字,10个指令周期利用延迟分支转移指令BD LD @ x , A

ADD @ y , A

STL A , @ s

LD @ s , T

BD next

MPY @ z , A

STL A , @ R

共8个指令字,8个指令周期

利用普通分支转移指令B LD @ x , A ADD @ y , A

STL A , @ s

LD @ s , T MPY @ z , A

STL A , @ R

B next

共8个指令字,10个指令周期LD @ x , A

ADD @ y , A

STL A , @ s

LD @ s , T

MPY @ z , A

STL A , @ R

B next

完成转移

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

LD @ x , A

ADD @ y , A

STL A , @ s

LD @ s , T

MPY @ z , A

STL A , @ R

BD next

完成转移

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

利用延迟分支转移指令BD LD @ x , A ADD @ y , A STL A , @ s LD @ s , T BD next MPY @ z , A STL A , @ R 共8个指令字,8个指令周期

三、条件招待指令的流水线图:

条件招待指令:XC n , cond [ , cond , [ ,cond ]]

求解条件决定后面

指令是否执行

1)条件执行指令是一条单字单周期指令,比条件跳转指令快。

2)条件在XC指令进入执行阶段的前两个周期已经求解出来,如果在这之后到执行前改变条件(如发生中断),将会造成无法预期的结果,所以要尽国避免在XC指令执行前两个周

期改变所规定的条件。

四、双寻址存储器的流水线冲突:

1。C54x片内的双寻址存储器(DARAM)分成若干独立的存储器块,允许CPU在单个周期内对其进行两次访问,包括三种情况:

1)在单周期内允许同时访问DARAM的不同块,不会带来时序上的冲突;

2)当流水线中的一条指令访问某一存储器块时,允许流水线中处于同一级的另一条指令访问另一存储器块,不会带来时序上的冲突;

3)允许处于流水线不同级上的两条指令同时访问同一个存储器块,不会带来时序上的冲突。

相关文档
最新文档