lcytms 发表于 2017-8-1 22:31:51

32位MIPS处理器研究及其软硬件建模

32位MIPS处理器研究及其软硬件建模

lcytms 发表于 2017-8-1 22:36:20

摘 要

SOC内部集成的处理器,在设计前端表现为用HDL描述的RTL模型,即IP软核。
本文在详细研究32位MIPS处理器体系结构的基础之上,分别用C语言和Verilog HDL对MIPS处理器进行软件建模和硬件建模,设计与32位MIPS指令集完全兼容的处理器。

本文首先针对设计应用研究了微处理器体系结构设计的一些高级技术,如并行设计、高速缓存和分支预测等。
然后详细介绍了MIPS32TM指令集及其软件编译流程,并在此基础上给出了CPU模拟器的设计方案。
软件形式的CPU模拟器用于探索处理器体系结构的设计形式和辅助硬件设计。

第五章是硬件建模的基础,首先给出了ASIC和SOC设计的一般流程,指出软硬件建模和FPGA验证在SOC设计中的极端重要性,随后介绍了Wishbone片上总线协议,并给出了本设计所使用的总线方案。
本文第六章给出了MIPS32TM兼容处理器的硬件建模方案,包括寄存器组、算术逻辑单元、数据通道、控制器、存储系统和分支预测器等,分析了流水线的阶数对处理器性能的影响以及各种流水竞争的处理方法,给出了六级流水线数据通道、Cache和分支预测器的设计方案。
本文最后给出了设计的验证方案,包括功能仿真和FPGA验证,还给出了基于该软核进行SOC设计与验证的方案。

本文的主要成果是设计了一个CPU模拟器和三个版本的硬件模型,命名为OCMIPS,三者均为六级流水线,MIPS32TM指令集兼容,各版本的指令集见附录A。
OCMIPS(V1.0)使用静态分支预测器,可运行C程序,通过了FPGA验证;
OCMIPS(V2.0)集成动态分支预测器,可运行C程序,通过了功能仿真,可综合;
OCMIPS(V3.0)集成动态分支预测器和二通道关联数据Cache,可运行汇编程序,通过了功能仿真,可综合。

本文分析了经典五级流水线的时序瓶颈,采用六级流水线设计,相对五级流水线而言较大幅度的提高了CPU主频,在此基础上还对分支预测器和Cache的建模方法进行了有益的探索。
OCMIPS(V1.0)核心用Synplify Pro 8.1综合,基于Xilinx Spartan3系列XC3S400芯片的最高频率为80MHz,占用3386个LUT(47%)。   

关键字:MIPS,CPU,SOC,模拟器,高速缓存,分支预测

lcytms 发表于 2017-8-1 22:43:12

图目录

图 2-1计算机三大组成部分..................................................................................................5
图 2-2基本流水线(时间重叠)。经典五级流水线,见6.3.3.1节................................7
图 2-3超标量流水线(时间重叠和空间重叠)..................................................................7
图 2-4 存储系统分层架构.....................................................................................................8
图 2-5 Cache的寻址方式.......................................................................................................9
图 2-6直接映射......................................................................................................................9
图 2-7二相关映射................................................................................................................10
图 2-8全相关映射................................................................................................................11
图 2-9一位饱和计数器........................................................................................................12
图 2-10二位饱和计数器......................................................................................................13
图 2-11 双向预测器图.........................................................................................................13
图 2-12局部预测器..............................................................................................................14
图 2-13索引全局预测器......................................................................................................15
图 3-1 存储格式...................................................................................................................17
图 3-2指令格式....................................................................................................................19
图 3-3 寄存器类型指令.......................................................................................................19
图 3-4立即数类型指令........................................................................................................19
图 3-5跳转类型指令............................................................................................................20
图 4-1模拟器的体系结构....................................................................................................26
图 4-2 CPU读写操作流程
图 4-3局部预测器和索引共享全局预测器流程.28
图 5-1 SOC结构框图...........................................................................................................31
图 5-2 ASIC设计流程..........................................................................................................34
图 5-3 SOC设计流程(修改自).................................................................................35
图 5-4 Wishbone接口定义(重绘自)........................................................................39
图 5-5 OCMIPS典型的写时序(左)和读时序(右)....................................................40
图 6-1寄存器组的方框图....................................................................................................41
图 6-2 寄存器组接口信号...................................................................................................42
图 6-3 ALU接口信号...........................................................................................................43
图 6-4控制逻辑....................................................................................................................43
图 6-5取指单元控制信号....................................................................................................44
图 6-6 ALU控制信号.............................................................................................................45
图 6-7控制逻辑和数据通道................................................................................................47
图 6-8寄存器类型算术指令................................................................................................48
图 6-9立即数类型算术指令................................................................................................48
图 6-10立即数类型加载指令..............................................................................................49
图 6-11立即数类型存储指令..............................................................................................49
图 6-12立即数类型分支指令..............................................................................................50
图 6-13跳转指令..................................................................................................................50
图 6-14单指令单周期数据通道..........................................................................................50
图 6-15单指令单周期..........................................................................................................51
图 6-16组合逻辑的分割......................................................................................................51
图 6-17单指令多周期..........................................................................................................51
图 6-18单指令多周期数据通道..........................................................................................52
图 6-19流水线......................................................................................................................53
图 6-20五级流水线数据通道..............................................................................................54
图 6-21六级流水线数据通道..............................................................................................55
图 6-22结构竞争..................................................................................................................57
图 6-23数据竞争..................................................................................................................57
图 6-24数据前置..................................................................................................................58
图 6-25数据竞争(lw)......................................................................................................58
图 6-26流水阻塞..................................................................................................................58
图 6-27流水泡......................................................................................................................59
图 6-28 数据竞争的检测与处理.........................................................................................59
图 6-29 前置单元接口信号.................................................................................................60
图 6-30控制竞争(无延迟槽)..........................................................................................61
图 6-31存储系统架构..........................................................................................................61
图 6-32 存储系统对外接口(V3.0).................................................................................62
图 6-33 MT48LC16M16A2读时序(爆发传输).......................................................64
图 6-34主存状态机(读取操作)......................................................................................64
图 6-35 主存接口信号.........................................................................................................65
图 6-36 主存控制器接口信号.............................................................................................65
图 6-37 Cache架构...............................................................................................................66
图 6-38 有效位、标签位和数据位存储器.........................................................................67
图 6-39 数据Cache接口信号.............................................................................................67
图 6-40 Cache控制器...........................................................................................................68
图 6-41 Cache控制器接口信号...........................................................................................69
图 6-42分支预测..................................................................................................................70
图 6-43双向预测器..............................................................................................................71
图 6-44 分支预测器接口框图.............................................................................................71
图 6-45 OCMIPS(V2.0)的内部架构...............................................................................72
图 6-46 基于OCMIPS(V2.0)构建SOC........................................................................73
图 7-1验证架构与流程........................................................................................................74
图 7-2 基于OCMIPS的SOC架构......................................................................................82
图 7-3 FPGA验证环境.........................................................................................................84

芙蓉王 发表于 2017-8-2 09:39:32

       32位MIPS处理器研究及其软硬件建模
页: [1]
查看完整版本: 32位MIPS处理器研究及其软硬件建模