RISC-V MCU中文社区

【求助】 指令流水线

发表于 活动专区 2023-02-24 10:52:05
0
1751
1

以经典的五级流水线为例,如果想要在这个基础上加“一次读多个数据”,“一次写多个数据”的存储访问自定义指令。需要考虑的问题有什么方面?以下是我考虑到的一些方面,欢迎各位大佬多多指点遗漏和不足的地方:

1. 添加loadf.w(连续load4个world)和loade.w(连续load8个world)两条自定义指令,易造成资源冲突,如果流水线级间没有valid-ready的握手行为,可行性如何?这种情况下,是否有其它解决方法?

2. 假设添加级间的握手后,在译码阶段,连续发射多条指令(发给执行单元),loadf.w和loade.w在WB阶段会执行多个周期,与后续无相关性的指令存在竞争关系(顺序发射,乱序执行顺序写回),这时,如果仲裁长指令优先写回,势必会导致流水线的反压。如果采用芯来e203里面的“前向旁路缓存”后,是否还存在一些没考虑到的地方。(从这方面思考,级间必然需要加握手,不然会导致丢失数据)

3. 流水线级间没有valid-ready握手行为的处理器,个人感觉在实现时,需要流水线的每个周期的执行时间固定才可,这种场景会有那些弊端?


4.(多thread调度的问题)在经典的五级流水线中,如何没有指令预测功能,可否在线程调度器上控制线程池中,同一虚拟线程(线程池中的一个thread,区别于物理上现在存在的并行thread)的前后两条指令间隔发送,然后不同虚拟线程交替执行,有无类似的参考?

喜欢1
用户评论
15621413802

15621413802 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板