当前位置:首页 > 专业实践最终报告(郭良鹏 樊照程) - 图文
清 华 大 学
计算机科学与技术系
计算机专业实践
专题名称: 开放式CPU设计与测试 课题名称:五级流水带cache(块传输、拖后写、LRU)的CPU设计与测试
组员 郭良鹏 学号 2002011689 班号 计22 组员 樊照程 学号 2002011690 班号 计22 指导老师 汤志忠 辅导老师 李山山、潘珂、王剑 成绩:
二零零五年九月
目 录
1. 引言 ................................................................................................................... 3
1.1 实验目的 .................................................................................................. 3 1.2 国内外研究现状 ...................................................................................... 3 1.3 实验环境 .................................................................................................. 3 1.4 主要成果 .................................................................................................. 3 2. 设计报告 ........................................................................................................... 4
2.1 实验方法 .................................................................................................. 4 2.2 总体说明 .................................................................................................. 4 2.3 各部分说明 .............................................................................................. 5 3.测试报告 ........................................................................................................ 18
3.1 测试程序 ................................................................................................ 18 3.2 测试结果 ................................................................................................ 18 3.3 性能分析 ................................................................................................ 31 4.总结 ................................................................................................................ 35
4.1 实验总结 ................................................................................................ 35 4.2 取得的收获 ............................................................................................ 36 4.3 意见与建议 ............................................................................................ 38 5.参考文献 ........................................................................................................ 38 6.附录: ............................................................................................................ 39
6.1 附录A:组员分工 ................................................................................ 39
1. 引言
1.1 实验目的
本次实验要求学生在开放式教学CPU设计与测试系统中进行CPU的设计与测试实验。目的在于通过实验使实验者不仅能够学习CPU的设计、验证和测试方法,还能够学会相关工具软件的使用方法。本专题能够使学生综合运用汇编语言程序设计、计算机组成原理、数字系统设计自动化(EDA)、计算机体系结构等课程的知识,并在编程、调试能力上有很大提高。由于目前CPU的技术已经很成熟了,本实验成果可能的应用前景应该在教学实验中,可以指导之后的学生更好地完成相关课程的实验、专业实践等。 1.2 国内外研究现状
可以说,当前CPU的设计与制造技术已经相当完善与成熟了,比如最新的Intel公司CPU产品——the Intel? Pentium? 4 Processor with HT Technology?,超线程、两级cache结构、多级流水线、主频已达3.8GHz。所以虽然说我们的专业实践有很强的开放性与研究性,但是其实验证性还是占很大的比重,基本上我们的设计都是参考已有的很完善的设计成果的。 1.3 实验环境
◆硬件环境: 实验箱、下载线、串口通讯线、电源线 实验平台:通过RS232接口和PC机进行通讯,RS232插座安装在实验箱背部。
子板:通过接插开关安装在实验平台上。
RS232通讯电缆:当使用DebugController软件将用户写的CPU调试程序写进实验平台上的存储器中时或者调试CPU时,在PC机上运行的DebugController需要和实验平台通讯。
◆交叉编译软件: DebugController
其功能一是将用户按照自已定义的指令集编写的伪汇编形式的CPU调试程序转换机器代码,并装入实验平台上的存储器中。二是调试用户设计的CPU及用户编写的调试程序。对本次实验所使用的硬件和软件环境进行必要的介绍和说明。
◆编程模拟环境:Quartus II 4.2
Altera公司的EDA软件。作用是为FPGA器件等超大规模芯片提供设计复杂数字逻辑电路的工具,并将设计好的方案下载到芯片中去。支持Verilog、VHDL等硬件描述语言的编译、模拟、自动布线等。 1.4 主要成果
◆实现了比较完备的16位指令集,包括算术逻辑运算指令、移位操作类指令、数据传输类指令、转移控制指令、堆栈指令、子程序调用及返回指令等共46条。 ◆指令运行实现了五级流水线结构,很好地解决了数据冒险和分支冒险等流水线相关控制问题。
◆具有数据cache和指令cache:都采用两路组相连方式、与内存交换数据成块传输、拖后写(write back)方式、写分配(write allocate)写缺失策略、实现了LRU替换算法,并且有读写缓冲。
◆比较完备的模拟波形、测试代码,方便的调试方式(将数据cache的内容显示在DebugController界面里),保证CPU功能的正确性。
总之,我们的CPU具有完整性、规整性、高效率和通用性等优点。
2. 设计报告
2.1 实验方法
设计方法总结如下:
A ,采用了自顶向下和自底向上相结合的设计方法,先设计总体数据通路,给出具体引线和信号,在分模块用代码实现,在实现过程中一些问题又需要反过来在局部修改数据通路。这样的方法可以最大限度保持同组的两个人能够并行工作,而无须随时协调。
B,采用参考资料和自己设计相结合的办法。我们主要参考了MIPS的指令系统和数据通路。这使我们能够充分利用已有的计算机体系结构成果,而不用自己解决所有问题。但是由于我们要实现的硬件平台与参考资料中的大不相同,又决定了我们必须要做适应性的修改和自己的创造(例如pc每次加1而不是4,因为我们是按字寻址。Cache必须自己设计一个内存接口以解决指令和数据的冲突并且实现成块传送,而在实际计算机中显然不是这样的)。 2.2 总体说明
2.2.1 指令系统:
参考了多种指令系统(8086/8088指令系统,MIPS,Tec2000指令系统等)后,最终以MIPS的32位指令系统为蓝图,转化为适合本CPU平台的16位指令系统。实现了比较完备的16位指令集,包括算术逻辑运算指令、移位操作类指令、数据传输类指令、转移控制指令、堆栈指令、子程序调用及返回指令等共46条。
2.2.2 CPU逻辑设计:
CPU是计算机中的重要组成部分,通常的CPU包括运算器、控制器、存储器等,在统一时钟的控制下各模块相互配合完成各种运算、控制功能。我们设计的CPU是有指令cache和数据cache的五级流水线CPU,其中cache采取两路组相连、拖后写(write back)方式,实现了LRU替换算法,并且有buffer缓冲。五级流水线将指令的执行过程划分为指令预取(IF)、指令解码,读寄存器堆(ID)、执行或计算地址(EX)、存储储器访问(MEM)、回写(WB)五个阶段(参见上图)。为实现流水线,在基本的CPU结构里又增加了四个寄存器(IF/ID Reg,ID/EX reg,EX/MEM Reg, MEM/WB reg),存储每条指令在该流水线阶段所需的数据和信号;冒险检测模块和数据转发模块,处理数据冒险和分支冒险。
在我们的CPU里,指令的五级流水线执行示例如下:
时间(按时钟周期)
CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 指
IF ID EX MEM WB 令
执
IF ID EX MEM WB 行
顺
IF ID MEM WB EX
IF ID IF EX ID MEM EX WB MEM WB图2-2-1 5级指令流水的示意图 它表明了流水技术能够充分利用资源提高效率
共分享92篇相关文档