云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 专业实践最终报告(郭良鹏 樊照程) - 图文

专业实践最终报告(郭良鹏 樊照程) - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 6:04:11

A,指令和数据同时缺失,这时候需要解决冲突。先把指令的缺失块读入再把数据的缺失块读入。

指令和数据 同时缺失

指令缺失时间 数据缺失时间 读出缺失的指令 读出缺失的数据 读出第一个字指令

第二个字 第三个字 第四个字 缺失的整个指令块 读出第一个字数据 第二个字 第三个字 缺失的整个数据块 B,写缺失,而且两路cache块都是脏块,要把脏块写到内存上才能把写缺失的cache块读入cache,然后再在读入的cache块上进行相应的写操作。 读入写缺失 的块到缓冲 (4个字) 读信号

缺失期间整个流水线停顿

写信号

把较早访问的脏块写回到内存中

通过上面较为复杂的测试例子,和一些一般的普通情况,就可以基本确认cache可以按照基本的想法运转了。

◆各阶段分别单独模拟:

各小模块都通过软件模拟后,就可以把指令执行的各阶段整合到一起,进行软件模拟。例如:

下图是将Stage2(ID)和Stage3(EX)结合起来的测试结果之一:

下图是将Stage4(MEM)、Stage5(WB)结合起来的测试结果之一:

这一阶段同样需要设计包括各种情况的测试波形,对每种情况都加以分析(类似于各模块单独测试,不再赘述),以便保证该模块功能的完全正确。特别地,在此阶段模拟过程中,有时下层模块都是正确的,但整合在一起就出现看似“莫名其妙不可思议”的问题,这时就需要把中间的相关连线接出来,仔细分析,特别是看信号的时序配合,找出并解决问题。

◆整合成CPU进行模拟:

各个指令阶段都模拟正确后,就可以整合成完整的CPU了,这时可以把指令预先写到内存(memory)中,只需给出输入信号clk、reset即可,模拟波形的输入比较方便,但是因为小模块太多,需要把很多信号都接出来加以分析。例如一个模拟波形如下(可见模拟输出的繁杂):

此阶段可以编一些完整的测试程序(需要用机器码编写,但是相对于之前的设计输入波形工作量已降低很多),比如将老师提供的<>改写成我们自己指令系统对应的<>、<>、<>,专门测试指令CALL,RET,POP,PUSH,POPF,PUSHF的<<新增指令测试(1)>>,专门测试指令MUL,DIV,MULI,DIVI的<<新增指令测试(2)>>,分析检验运行结果。(注:这些测试指令都参见 3.2.2 硬件测试 )。

注意软件模拟的时候,因为无法与实际的存储器相连,我们编写了指令存储区(Instruction_Memory)、数据存储区(Data_Memory),用于模拟与内存的指令读出、数据读出与写入。当此阶段软件模拟通过后,就可以将这两个模拟内存删除,写入FPGA进行硬件测试。

3.2.2 硬件测试

此阶段采用的大多是单片机控制FPGA-CPU模式调试,特色之处在于为了方便cache的测试和演示,把数据cache的4块共16个字映射到没有用到的R16-R31寄存器,这样就可以在DebugController运行的过程中随时看到cache状态的变化),加速了调试过程。由于我们的指令系统比较完备,这种模式下就可以很方便地用汇编语言编写一些较长较复杂的程序进行测试。

◆ 标准测试程序一:

测试25*8,最后结果96H(150)放入R2中,下图说明测试正确

◆改编的测试程序2,主要测试读写和cache

;T2.txt ,memory copy , 内存读写测试 ; 本程序是在标准测试2后面加了一段程序, ; 作用是在内存中连续写16个字, ; 以便把cache中的脏块数据全部写回内存 ; (它的原理)是根据cache的特性来实现的 ; (每块4个字,两路组相连, rlu替换算法)

LLI r0,0xff LLI r1,0xff LHI r1,1

LLI r2,0x20 label1: MOV r3,r0 ADD r3,r2

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

A,指令和数据同时缺失,这时候需要解决冲突。先把指令的缺失块读入再把数据的缺失块读入。 指令和数据 同时缺失 指令缺失时间 数据缺失时间 读出缺失的指令 读出缺失的数据 读出第一个字指令 第二个字 第三个字 第四个字 缺失的整个指令块 读出第一个字数据 第二个字 第三个字 缺失的整个数据块 B,写缺失,而且两路cache块都是脏块,要把脏块写到内存上才能把写缺失的cache块读入cache,然后再在读入的cache块上进行相应的写操作。 读入写缺失 的块到缓冲 (4个字) 读信号 缺失期间整个流水线停顿 写信号 把较早访问的脏块写回到内存中 通过上面较为复杂的测试例子,和一些一般的普通情况,就可以基本确认cache可以按照基本的想法运转了。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com