麻省理工学院电气工程与计算机科学系
6.004 电子运算结构
实验6B
注意:实验6的这部分实验是可选的,并且可以一直到课程的最后一天再提交。完成这个实
验你最多可以获得7分,但完成全部7个实验需要花费一些力气,所以你应当在完成实验6A和实
验7之后再进行这个实验。
描述
在实验的这一部分,我们将要求你最优化Beta计算机设计的价格-性能。“价格”是由电路
的面积来确定的,JSim在每次模拟运行结束后会报告这个面积(它在网表窗口底部的消息区以
平方微米为单位来报告面积大小)。“性能”是由完成一组基准测试程序所需要的时间来确定
的。尽管有些不太可靠,但基准程序是表现处理器性能方面的传统方法。在lab6Bcheckoff.uasm
中找到基准测试程序套件,它包括四个基准测试文件:
1
基准测试文件 对某个子程序执行两次调用,该子程序对它的参数执行无符号数除
法,然后将商和余数保存在主存储器中。
2 11
基准测试文件 执行两次子程序调用:一次是对一个有 个元素的列表进行原地反
“ ” 便
转,第二次是比较被反转的列表和 答案 列表,以 查看进展是否顺利。
3
基准测试文件 在存储器中原来代码的上方对自身进行拷贝,然后跳向拷贝的第一
2
个存储单元。对这个过程重复 次。
4 ——
基准测试文件 仅执行大量的寄存器算术运算,并将结果写入到存储器中 对于
流水线和超标量计算机来说,这应该是很容易的事情。
要想了解有关每个基准测试程序所写的那些值的详细情况,请参见lab6Bcheckoff.uasm 。在
非采用流水线技术的Beta计算机中,执行该套件需要936个周期。
注意:长时间模拟大电路能够生成非常大的历史文件,所以它能在模拟结束时花
费一些时间来准备绘制波形图。请平静耐心地等待选择绘制图形的信号数量。
由于你的已经最优化的设计或许与实验分发材料中所描述的Beta计算机的操作情况不一样,
核对文件(lab6Bcheckoff.jsim )与到目前为止我们在这学期已经看过的其他核对文件相比有少许
不同。它根本就没有包含任何测试电路;你需要为CLK和RESET提供主存储器、波形生成器等
等——无论怎样对你的设计进行优化,都必须能够正确执行。网表的惟一约束条件是你必须提
供一个32位宽、1024个存储单元、名叫“Xmem ”的主存储器,用来存储基准测试程序和保存结
果。核对文件对该存储器的某些存储单元进行检测,以便查看是否已经成功地执行完基准测试
程序。所得的分数是由下列公式来确定的:
Benmark®=1e-10/(*< 电路面积,单位为平方米>)
分数= (Benmark−20 )/2[min=0 ,max=7]
6.004 电子运算结构 - 1 - 实验6B
你的电路越小,它完成基准测试程序的速度就会越快,基准测试结果也就会越好。对于完
成情况非常类似于实验分发材料中所描述的Beta计算机设计来说,如果基准测试分数低于20并且
已被提交的话,则会获得一分或者两分。所以你需要进行一些创新——请参见提示部分给出的
一些建议。
你的网表应该具有以下形式:
// 类似于实验分发材料中所描述的实验6B的Beta计算机实现方案
.include "nominal.jsim"
.include "stdcell.jsim"