共1条
1/1 1 跳转至页
流水线的流水性能 (3)
FP:fetch packet.取指包,由八条指令组成;
EP:execute packet.执行包,由一条到八条指令
组成;
[ Instruction ∈ EP ∈ FP ]
一个EP中的指令是并行执行的,它们的执行占用不
同的功能单元。
对流水线的流水产生影响的三个因素:
--------------------------------------------
1.取指包中执行包的数目;
2.执行包中指令类型;(NOP n)
3.系统存储器的性能与安排;
具体说明如下:
--------------------------------------------
1.DSP的硬件内核在指令流水线的DP周期对一个取
指包进行扫描来决定是否停止流水线的流水:如果
被扫描的取指包里面包含了多于一个的执行包,那
么流水线停止流水。流水线停止流水后,取指包中
的执行包逐个依次进入DC周期,当最后一个执行包
进入DC周期后,流水线重新开始流水;
2.指令:NOP n不改变任何寄存器的值(n=1-9)
该指令的作用就是stall流水线的流水n个周期,这
样,下一个执行包里面的指令的执行就延迟了n个
周期了。这样有一种效果就是:当前的执行包里面
的指令执行的结果对于下一个执行包来说就延时了
n个周期。
3.C62x系列DSP把存储空间配置成程序存储空间和数
据存储空间,它们占用不同的物理存储空间。而对于
这两者的存取操作的流水线是一样的,都是占用5个
周期,不同的是它们占用不同的周期:
程序空间的存取:PG-PS-PW-PR-DP
数据空间的存取:E1-E2-E3-E4-E5
Memory stall:当存储器来不及响应CPU提交的存取
访问要求时,指令流水线的流水停止,直到存取要
求得到满足。它可能发生在两个周期:PW/E3;
4.C62x系列DSP的片上数据存储器被划分为多个bank,
每个bank只有一个端口和DMEMC相连,供CPU访问。为
此,如果一个执行包里面指令对同一个bank进行访问
时,由于一个周期内一个bank只能被访问一次,所以
会产生阻塞;解决的办法就是在组织数据的时候,把
执行指令包里面要访问的数据安排在不同的bank里面,
这样就可以不需要插入extra phase了。
关键词: 流水线 流水 性能 指令
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
