在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5935|回复: 24

求助设计流水线的几个问题~

[复制链接]
发表于 2009-5-18 22:56:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好:
         我现在要设计一个多发射乱序执行的超标量流水线,有几个问题想问问大家:
         我的多发射是指什么呢?是在IF阶段一个时钟周期取多条指令吗?还是指在译码以后一个时钟周期发射多条指令给执行单元?如果是后者,那么是不是在IF阶段一个时钟周期也要取多条指令呢?
         我的load和store指令该怎么处理呢?
         希望大家给些建议,谢谢大家!
发表于 2009-5-19 15:10:23 | 显示全部楼层
多发射一般指后者,IF阶段还是一条一条的取了,只是一般情况下 (icache not missing)在fetch阶段动作会快于Decode,而且一般会有预取的机制,在decode与fetch之间一般会有一个pre-fetch buffer来存这些指令。至于能不能多发射关键要看指令间的dependence,三种都要考虑。一般在decode后是有一个专门的issue部件的,不过如果是简单流水线的话,decode来做这事了.
请注意以上只是一般处理器的情况,特殊的当然是nothing impossible
 楼主| 发表于 2009-5-21 21:49:33 | 显示全部楼层
那么我是不是应该用多时钟控制啊?在取指阶段用快时钟频率?或者在取指的时候我一次取多条指令呢?
发表于 2009-5-22 09:06:33 | 显示全部楼层
同一个时钟,只是取指是一个cycle一条,而decode可能是四五个cycle才一条。
发表于 2009-5-22 09:07:46 | 显示全部楼层
一次多取几个指令也是可以的,不过那样会给设计上代来一定的复杂度,做为一个pipeline,还是一次一条就OK了
发表于 2009-5-22 13:01:31 | 显示全部楼层


                               
登录/注册后可看大图






==========================
番禺机械回收 物资回收 番禺废品
 楼主| 发表于 2009-5-24 01:20:17 | 显示全部楼层
还有个小问题,就是在设计运算模块时候,我不用专门设计一个Load和Store模块吧?它们本质上就是ALU,是吧?是不是在双发射时候,我只要设计两个ALU单元和一个乘法单元就可以了啊?
发表于 2009-5-24 13:44:03 | 显示全部楼层
不错啊
发表于 2009-5-25 00:09:16 | 显示全部楼层

个人的理解。

multi-issue与是否一个cycle取多条指令没有直接的关系。
即使每个cycle取一条指令,仍然可以有多发射的机会,因为指令执行不一定能每个cycle完成一条,所以处于执行过程中的指令可以是多条。同时发射的指令也可以多条。
另外,多发射与乱序执行也没有直接关系。
发表于 2009-7-6 15:09:10 | 显示全部楼层

不同体系下的不同选择

在单核结构下:对不同复杂度的指令是通过变周期来优化的。
在多核结构下:可以通过任务化分来使用多核(粗分),也可通过多发射去实现,并行的多指令执行,便这一是要CPU结构支持,二也要编译软件支持。这是我的观点,实现并行,看实现的复杂度与性能了,前一个的性能比不得后一个的性能好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-27 00:50 , Processed in 0.038354 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表