王轩Lab3-Cache实验第二阶段指南

需积分: 0 0 下载量 29 浏览量 更新于2024-08-04 收藏 75KB DOCX 举报
"王轩的Lab3-Cache实验指导1,主要涵盖了Cache的实现、独立测试以及与CPU的联合测试,目的是验证Cache的正确性并评估性能。实验包括两个阶段:一是Cache的实现和独立测试,二是CPU与Cache的组合及性能测试。实验提供快速排序和伪·矩阵乘法两个benchmark,用于测试不同场景下的Cache性能。" 实验指导详细说明: 在Cache的实现和独立测试阶段,实验者需要编写Cache的Verilog代码,并进行独立测试,确保其功能正确,不依赖于CPU环境。这部分可以通过单独仿真Cache来完成,具体操作可以参考文档《Lab3-王轩-cache编写指导.docx》。 进入第二阶段,实验者需将第一阶段实现的Cache整合到Lab1中的CPU中,同时修改数据通路以统计CacheMiss次数,并在流水线中处理CacheMiss导致的流水线暂停(stall)。这一阶段的目标是验证CPU与Cache协同工作的正确性,并为撰写实验报告收集数据。 建立Vivado工程是实验的关键步骤之一。首先,创建一个新的Vivado工程,并将Lab1的CPU源代码放入CPUSrcCode目录。接着,将CPUSrcCode和CacheSrcCode目录下的所有.v和.sv文件添加到工程中。在“SimulationSource”配置中,指定./CPUSrcCode/cpu_tb.v为顶层文件,以便仿真整个CPU+cache系统。 在进行CPU+cache联合测试前,需要准备测试程序的指令和数据。对于快速排序benchmark: 1. 使用./ASM-Benchmark/generate_inst目录下的asm2verilog.py脚本,将QuickSort.S汇编程序转化为指令存储器文件InstructionCache.v,替换工程中原有的InstructionCache.v。 2. 同样使用asm2verilog.py脚本生成256个随机排列的数值,保存到mem.sv文件,用这些数据替换数据存储器的内容。 这两个步骤确保了CPU在仿真时有正确的指令和数据可供处理,从而可以进行快速排序的性能测试。 实验中还提供了一个伪·矩阵乘法的benchmark,其生成和加载过程类似快速排序,旨在通过不同的工作负载进一步评估Cache性能。通过对比这两个benchmark在Cache性能上的差异,实验者可以深入理解不同计算任务对Cache效率的影响,从而优化Cache设计。 总结,这个实验旨在通过实际操作让实验者深入理解Cache的工作原理,提高硬件设计能力,并学会分析和优化Cache性能。实验者需要掌握Verilog编程、CPU设计、Cache实现以及性能测试等相关技能,通过实践提升自己的专业素养。