看了一下午终于看懂Y86体系结构了
1失控的胖子吧
全部回复
仅看楼主
level 1
炒饭仙人 楼主
流水线什么的好像很高端的样子。
还有各种冒险,气泡和暂停。
2012年11月23日 14点11分 1
level 1
炒饭仙人 楼主
看完Y86,就去改DotA。
2012年11月23日 15点11分 2
level 1
炒饭仙人 楼主

Y86的流水线总共分为六个阶段:取指、译码、执行、访存、写回、更新PC。
除了更新PC是瞬间完成的外,其他的阶段在每个周期里面各运行一次。
2012年11月25日 02点11分 4
level 1
炒饭仙人 楼主
取指:读取指令代码,获得指令名、功能名和参数(寄存器或值),并预测下一个PC值的地址。
译码:从寄存器读入最多两个操作数,可以是取指的参数,也可以是指定寄存器。
执行:将两个操作数——可以是译码阶段获得,也可以是参数——进行操作,获得结果。
访存:从内存中读取内容或者向内存中写入内容,也可以同时进行。
写回:将操作数写回寄存器,最多两个。
2012年11月25日 02点11分 5
level 1
炒饭仙人 楼主
由于不同语句在同时运行,所以会有冒险出现。
如果下一条语句使用了上一条语句的计算结果,可以用直接转发来解决。
如果下一条语句使用了上一条语句的访存结果,需要插入一个气泡。
如果某条语句是ret,那么需要暂停三条语句直到取出地址。
如果某条语句是跳转语句,并且对条件预测错误,那么需要删除预测错误导致执行的语句。
2012年11月25日 02点11分 6
level 1
水的一比,马了再看
2012年11月30日 03点11分 7
1