全文预览

华科组成原理课程设计-mips流水线cpu

上传者:似水流年 |  格式:doc  |  页数:21 |  大小:28KB

文档介绍
流水线冲突(数据冲突,控制冲突)的处理,以及对中断的处理。Р 三、设计内容Р 1. 指令选取Р 本系统能执行16条MIPS指令,指令基本情况如表1所示。Р 表1. 系统支持的MIPS指令集Р 从指令类型来讲,这16条指令覆盖了算逻运算、访存、无条件跳转和有条件跳转,已Р 5Р 基本覆盖一个指令集所需的所有基本指令。Р 从寻址方式来讲,这16条指令覆盖了寄存器寻址(R-TYPE指令),立即数寻址(I-TYPE指令),基址偏移量寻址(LW/SW),直接寻址(J)。Р 16条MIPS指令并不是本设计的极限,只是受到实验板资源的限制,我们仅仅完成了MIPS32指令集中的16条而已。本设计通过简单的拓展可以轻松实现整个MIPS32指令集。Р 2. 非流水5段CPU模型Р 2.1 初始数据通路Р 设计往往都是从简单到复杂,循序渐进。好高骛远则往往求之而不得。因此我们并没有从流水线模型直接下手,而是首先设计了一个类似经典5段RISC流水线结构的非流水5段CPU模型。由于不涉及流水,所以所有的指令周期均为单周期,数据通路见图3。Р 图3. 非流水5段CPU初始数据通路Р 2.2 5段具体操作Р 在这个数据通路上每条指令需要花费5个时钟周期,这5个时钟周期相应的操作如下:Р 2.2.1取指令周期(IF)Р IR←Mem[PC]Р NPC←PC+1Р 以PC中的值从指令cache中取出一条指令,放入指令寄存器IR;同时PC值Р 加1,然后放入NPC,这时NPC中的值为顺序的下调指令的地址。Р 2.2.2指令译码/读寄存器周期(ID)Р A←Regs[rs]Р B←Regs[rt]Р imm←((IR16)16##IR16..31)Р 对指令进行译码,并以指令中的rs和rt字段作为地址访问通用寄存器组,将Р 6Р 读出的数据让如A和B寄存器中。同时IR的低16位进行有符号或者无符号扩展,然后存入

收藏

分享

举报
下载此文档