论文部分内容阅读
随着物联网技术的快速发展,应用嵌入式微处理器系统开发的各种电子设备,越来越受到人们的欢迎,以其携带方便和能耗低、可靠性高等优点,占领了越来越多的微处理器市场。而作为影响处理器性能的关键因素,流水线的设计及优化至关重要。作为对微处理器发展产生巨大影响的精简指令系统(RISC),自80年代被提出以来,以其简单的指令格和寻址方式等优点,已经被已经广泛的应用到了处理器体系架构的设计当中。也正是由于这些优点,使得指令的流水化处理更加方便。MIPS公司开发出的MIPS32架构,就是一个具有RISC所有优点的经典流水线处理器架构。本文是在对MIPS32架构研究的基础上,实现了对微处理器五级流水线结构的设计,目标是让大部分的指令都可以在一个时钟周期内执行完成,只有除法指令与乘累加、乘累减指令执行需要多个时钟周期,这样就可以使使流水线的处理效率最大化。文中会详细的介绍MIPS架构的指令集、寄存器堆、Cache设计和对异常的处理等内容。在对微处理器设计中流水线各阶段的功能需求与指令执行时存在的数据相关、结构相关、控制相关等问题进行分析和研究的基础之上,对流水线的五个阶段进行了详细的模块划分,最后使用硬件描述语言Verilog编写代码来实现每个模块所应有的具体功能。在本设计中要实现的五级流水线包含了取指、译码、执行、访存和回写五个阶段。取指阶段要完成的工作就是从指令存储器读出PC寄存器指定的当前地址中的指令信息,并根据控制信号对下一次要访问的指令地址信息进行预判,IF/ID寄存器模块是存放指令信息的流水线寄存器。译码阶段要对取出的指令信息进行译码分析,从寄存器堆中取出源操作数并给出转移类指令的跳转地址,因此译码阶段设计了用于指令译码和转移判断的ID模块以及用于存放数据的Regfile模块ID/EX寄存器模块,ID/EX寄存器用于存放译码阶段得到的各类信息。执行阶段会对译码得到的各类数据进行相关运算,此阶段设计有EX模块、DIV模块和EX/MEM寄存器模块,需要执行的大部分运算都会在EX模块中的ALU运算单元内完成,DIV模块专门用来进行除法运算,执行完成后的各类数据会存放在流水线寄存器EX/MEM中。访存阶段会对存储器访问指令和异常情况进行处理,这些指令的执行会发生在MEM模块中,RAM模块用于存放所需的数据,访存阶段完成后结果会存放在MEM/WB寄存器中。回写阶段设计有四个模块,其中协处理器CP0模块用来对异常情况进行控制,LLbit寄存器模块是执行ll和sc指令时需要用到的的一个特殊的寄存器模块,HILO寄存器模块是用于存放乘除法指令结果的模块,CTRL模块产生控制信号可以对流水线实现暂停和清除等功能。最后再使用Mentor公司的仿真软件Modelsim对各模块进行功能仿真,将仿真的结果与预期结果进行对比,得出正确的结果则说明了设计的正确性。