您的当前位置:首页正文

ICS pipeline lab总结

2024-11-29 来源:个人技术集锦

ICS pipeline lab总结

这个lab分为三部分,part A,part B,part C。以下为简述,具体注意点在每一部分。
part A:用Y86书写三个汇编函数,要求有初始化与栈的处理。
part B:书写HCL语言添加IIADDL与ILEAVE指令于SEQ中
part C:书写HCL语言添加IIADDL与ILEAVE指令于PIPE中,并重新书写汇编代码,优化CPE

part A

注意几个问题,一是初始化与栈看书不要写错,二是gcc编译的IA32翻译为Y86时候为了出现数组下标,所以代码中用指针而非数组,三是翻译时候注意leave,四是如果代码很长,栈开大一点以防覆盖代码。

part B

简单的一个过渡part

part C

腥风血雨开始了,首先,我不知道是我打开方式不对还是本身的bug,本地评测机器总是有时候会评测不准正确性,总是对老版本评测(记忆不确切了,但是好多人遇到过这个问题,感觉还是没仔细阅读writeup的原因?)
首先填补流水线,考虑优化,最常见的是用iaddl,优化到约14
循环展开,减少跳转并且内部写读两个写两个减少load/use,差不多可以10
再换一换指令顺序就可以了。
当然有同学优化流水线,要比10小很多这是必须的,但是我真心不会。

显示全文