
CPU
文章平均质量分 94
huanghongxun
这个作者很懒,什么都没留下…
展开
-
简单的多周期MIPS I CPU设计(一)—— 综述
目录新系列~为了准备数电期末作品而开的新坑~本系列文章将介绍我的MIPS I CPU的实现,我们先规定我们的路线图:MIPS I中的R型、I型、J型指令,暂不支持syscall和break指令流水线寄存器重编号有一级指令缓存以及一级数据缓存支持数据联络(通过UART与电脑传输数据)待以后实现的:整数乘除法流水线浮点处理单元与闪存的交互异常处理器分支预测值...原创 2018-06-25 13:27:46 · 4782 阅读 · 1 评论 -
简单的多周期MIPS I CPU设计(二)—— 指令执行阶段
上一篇:综述 下一篇:主存通常我们将RISC CPU的指令的执行过程分为5个步骤,分别是取指令(IF)、解码(ID)、执行(EX)、内存读写(MEM)、寄存器写(WB)。我们要实现CPU,可以将5个步骤做成5个子模块分别设计,这样可以大大降低我们的开发复杂度。取指令(IF)CPU在取指令阶段(IF阶段)时,先向一级指令缓存要指令,要到指令后我们将程序计数器(PC)自增1(1表示移动一...原创 2018-06-26 23:52:21 · 8340 阅读 · 0 评论 -
简单的多周期MIPS I CPU设计(三)—— 主存
上一篇:阶段 下一篇:流水线内存内存分为SRAM和DRAM两大类,均为阵列式,由于Vivado已经提供了Block Memory Generator,这里就不对内存做过多介绍了。Vivado的BMG的读写操作都要延迟到第3个周期才完成。\subsection{缓存}我们知道,内存读取数据的速度是比较慢的(因为大容量的DRAM内部使用电容存储数据),而CPU执行指令的速度是比较快的...原创 2018-06-27 00:49:46 · 2289 阅读 · 0 评论 -
简单的多周期MIPS I CPU设计(四)—— 寄存器重命名
上一篇:主存· 下一篇:流水线原理寄存器重命名法将原来的32个寄存器映射到两组寄存器,分别是标准规定的32个寄存器,我们称作虚拟寄存器或者架构寄存器和CPU内置的物理寄存器。我们建立虚拟寄存器到物理寄存器的映射关系,并将数据(指令产生的结果)存放于CPU内置的物理寄存器。这样一来我们在解码阶段将会得到虚拟寄存器的地址,并根据这个地址找到物理寄存器的地址并进行操作。实现为了实现映射...原创 2018-06-27 01:24:30 · 2323 阅读 · 0 评论 -
简单的多周期MIPS I CPU设计(五)—— UART数据通道
上一篇:寄存器重命名 下一篇:流水线UART被用于硬件之间的数据交互,我们要是用的学习板Basys3上 已经搭载了FT2232芯片将USB数据信号转换为UART的TxD和RxD端 信号。我将利用UART将程序从电脑上下载到Basys3板,并使得我 们烧到板上的CPU加载指令并执行,且将执行的结果传输回电脑。数据格式为了数据的传输,我们需要预先规定数据传输协议。同时规定数据 传...原创 2018-06-27 01:36:08 · 1303 阅读 · 0 评论 -
简单的多周期MIPS I CPU设计(六)—— 流水线
上一篇:寄存器重命名 下一篇:分支预测单周期CPU问题早期的RISC CPU采用了简单的单周期执行模式,也就是说每个时钟周期只执行一条指令。这样做的好处是设计简单:CPU只需要一条一条指令执行,在上一条指令完全执行完成之后再执行下一条指令。如果从软件设计的角度来看这个设计的话,也就是单线程程序了。我们在设计单线程程序时只需要考虑指令间的逻辑顺序就可以了。相对地,我们在设计多线程程序时就需...原创 2018-06-27 14:03:51 · 11100 阅读 · 0 评论