共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |