自己动手写CPU——第一篇

这篇具有很好参考价值的文章主要介绍了自己动手写CPU——第一篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 设计目标

从本章开始将一步一步实现教学版 openMIPS处理器。首先介绍系统的设计目标,其中详细说明了openMIPS处理器计划实现的5级流水线。

1.1 设计目标

openmips 设计的目标如下:

  1. 五级流水线,分别是:取指、译码、执行、访存、回写
  2. 哈佛结构。分开的指令和数据接口
  3. 32个32位整数寄存器
  4. 大端模式
  5. 向量化异常处理,支持精确异常处理
  6. 支持6个外部中断
  7. 具有32bit数据、地址总线宽度
  8. 能实现单周期乘法
  9. 支持延迟转移
    10.兼容MIPS32指令集架构,支持MIPS32指令集中的所有整数指令
  10. 大多数指令可以在一个时钟周期内完成

1.2 五级流水线

自己动手写CPU——第一篇

  1. 取指阶段:从指令寄存器读出指令,同时确定下一条指令地址
  2. 译码阶段:对指令进行译码,从通用寄存器中读出要使用的寄存器的值,如果指令中含有立即数,那么还要将立即数进行符号扩展或者无符号扩展。如果是转移指令,并且满足转移条件,那么给出转移目标,作为新的指令地址。
  3. 执行阶段:按照译码阶段给出的操作数、运算类型、进行运算,给出运算结果。如果是Load store指令,那么还会计算 load store的目标地址。
  4. 访存阶段:如果是load store指令,那么在此阶段会访问数据存储器,反之,只是将执行阶段的结果向下传递到回写阶段。同时在此阶段还要判断是否有异常需要处理。如果有,那么会清除流水线,然后转移到异常处理例程入口地址处继续执行。
  5. 回写阶段:将运算结果保存到目标寄存器。

自己动手写CPU——第一篇文章来源地址https://www.toymoban.com/news/detail-407244.html

到了这里,关于自己动手写CPU——第一篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一篇搞懂HashMap,手写HashMap

    1. 算法复杂度:大 O 表示法 大O表示法 是一种特殊的表示法,指出了算法的速度有多快。 O(n) :表示该算法需要计算n次,比如常见的for循环: O(1) :无论多少元素参与运算,复杂度始终是计算一次,这个就是典型的最优解。例如查找数组元素: 2. 位运算 二进制的位运算包括

    2023年04月09日
    浏览(28)
  • 自己动手写一个加载器

    当在 linux 命令行中 ./ 运行一个程序时,实际上操作系统会调用加载器将这个程序加载到内存中去执行。为了探究加载器的行为,今天我们就自己动手写一个简单的加载器。 加载器的工作原理: 从磁盘读取 bin 文件到内存,(bin 文件包含的是 CPU 可以直接执行的指令) 跳转到

    2024年02月05日
    浏览(39)
  • 自己动手写Docker学习笔记

    本文为《自己动手写 Docker》的学习,对于各位学习 docker 的同学非常友好,非常建议买一本来学习。 书中有摘录书中的一些知识点,不过限于篇幅,没有全部摘录 (主要也是懒) 。项目仓库地址为:JaydenChang/simple-docker (github.com) 1.1 kernel kernel (内核) 指大多数操作系统的核心部

    2024年02月05日
    浏览(33)
  • 自己动手绕线圈电感详细计算公式

    加载其电感量按下式计算:线圈公式 阻抗(ohm)=2 3.14159 F(工作频率) 电感量(mH),设定需用360ohm阻抗,因此:电感量(mH)=阻抗(ohm)÷(2 3.14159)÷F(工作频率)=360÷(2 3.14159)÷7.06=8.116mH 据此可以算出绕线圈数: 圈数=[电感量 {(18 圈直径(吋))+(40 圈长(吋))}]÷圈直径(吋) 圈数=[8.116*{(18 2.047)+

    2024年02月17日
    浏览(23)
  • 自己动手实现网页版的远程桌面

    因为一些原因,小编需要使用远程桌面软件,但小编实在穷,所以使用的是免费版的向日葵。就在前几天,免费版的向日葵莫名其妙崩了(各种重启都没用),虽然之后通过升级这种高级手段又重新可以用了,但是这在我幼小的心灵上留下了创伤,所以,我决定自己手写一个

    2023年04月14日
    浏览(41)
  • python模块: pygame(自己动手写游戏)

    目录 一、pygame的安装  二、pygame基础操作 1.基本窗体设置 2.surface组件  3.event事件 一、pygame的安装 在pycharm 左下角的终端上输入指令pip install pygame,按下回车键执行下载,推荐下载到虚拟环境上,即路径前方带有(venv)。或者不使用pycharm,在控制窗口输入执行该命令也可以(控

    2024年03月21日
    浏览(39)
  • 李沐-《动手学深度学习》--02-目标检测

    a . 算法步骤 使用启发式搜索算法来选择锚框(选出多个锚框大小可能不一,需要使用Rol pooling) 使用 预训练 好的模型(去掉分类层)对每个锚框进行特征抽取(如VGG,AlexNet…) 训练一个SVM来对每个类进行分类 训练一个线性回归模型来预测边缘框偏移 b . Rol Pooling ​ 每个锚框

    2024年01月25日
    浏览(33)
  • 多尺度目标检测【动手学深度学习】

            在上篇博客《锚框【目标检测】》中,我们以输入图像的每个像素为中心,生成多个锚框。基本而言,这些锚框代表了图像不同区域的样本。然而如果以每个像素都生成的锚框,最后可能会得到太多需要计算的锚框。想象一个561×728的输入图像,如果以每个像素为

    2024年02月13日
    浏览(23)
  • 详解自己动手添加一个函数实现任意字段调用

    是否遇到过想调用某些自定义字段,却发现dedecms的标签底层模板字段不包括这个字段呢?这就大大限制了灵活性,但dede也不可能让所有字段都允许调用的,那样就会大大降低系统效率,所以今天分享的是一个比较完美解决这个问题的方法,配合dede标签,几乎可以说没有什么

    2024年02月02日
    浏览(82)
  • 自己动手编写 Windows 防止锁屏脚本程序

    有些公司出于安全和保密工作考虑,会通过 Windows 组策略强制所有办公电脑在无操作的情况下 5 分钟或者 10 分钟自动锁屏,避免无关人士看到不该看的内容。作为程序员,十分反感这种一刀切的方案,一来很容易打断思路,比如正在写代码或者向别人展示时,突然锁屏了就挺

    2024年02月11日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包