1、计算机系统能力竞赛 nscscc2019西北工业大学西北工业大学2 2队队指导老师:张萌指导老师:张萌 安建峰安建峰参赛队员:刘艺杰参赛队员:刘艺杰 刘梦缘刘梦缘 井幸斌井幸斌第1页,共16页。CPU概况实现内容83条指令8种异常2种中断10种CP0寄存器AXI接口ICacheDCache Xilinx IP核乘法器、除法器第2页,共16页。CONTENTSCONTENTS五级流水线CacheCachePmonPmon的探索PART 01PART 02PART 03PART 04总结第3页,共16页。五级流水线01第4页,共16页。CPU结构图第5页,共16页。冒险处理数据冒险统一在译码阶段做
2、旁路结构冒险通过SOC总线前做仲裁,指令优先控制冒险译码级处理分支指令,无需分支预测第6页,共16页。乘法器&除法器1.采用Xilinx Vivado提供的IP核,实现了独立的乘法器和除法器2.对Xilinx IP核的配置参数进行了评估,确定乘法器1周期、除法器8周期出结果不会成为关键路径第7页,共16页。CacheCache02第8页,共16页。ICACHE&DCACHEICACHE&DCACHE1.ICache和Dcache:容量16KB,每块16字,直接映射2.参数选择:块大小16字符合AXI接口burst传输单次最大传输长度3.外设访问处理:旁路高位地址为0 xbfaf的访存命中率:i
3、cache平均99.91%dcache load平均99.78%dcache store 平均99.84%第9页,共16页。写策略选择:Write back or Write through?Write through策略:Write back策略:性能分:12.71性能分:28.91性能提升比重:平均提升 209%第10页,共16页。PmonPmon的探索03第11页,共16页。PmonPmon探索1.反汇编分析指令2.进行筛选,选出需要添加的指令3.功能验证和性能测试4.上板抓信号,在线调试遗憾:最终未能成功BEQL BGEZALLBGEZL BGTZL BLEZL BLTZALL BLT
4、ZL BNEL LL LWL LWR SC SWL SWR TEQ TEQI TGE TGEI TGEIU TGEU TLT TLTI TLTIU TLTU TNE TNEI TLBWI TLBR TLBP 第12页,共16页。总结04第13页,共16页。总结1.使用Chisel3面向对象语言进行设计,75天完成五级流水线及cache的完整开发2.实现结果:CPU主频50 MHz,IPC得分29.1第14页,共16页。开发周期6月17日:7天 学习Chisel3语言 6月812日:5天 实现7条指令单周期 6月1320日:8天 实现57条指令流水线 6月2128日:7天 完成流水线功能验证 6
5、月29日7月2日:5天 完成FPGA第一个可运行版本 7月35日:3天 加入SRAM总线 7月613日:8天 vivado功能测试通过 7月1416日:3天 加入ICache,DCache 7月1719日:3天 加入AXI总线 7月2026日:7天 AXI接口功能测试通过 7月2729日:3天 性能测试通过 7月30日:1天 上板通过功能测试 7月31日8月2号:3天 上板通过性能测试,频率43Mhz 8月35日:3天 改进cache,频率提升到51Mhz 8月69日:4天 增加指令到83条 8月1015日:6天 Pmon启动尝试第15页,共16页。谢谢请各位专家批评指正!第16页,共16页。