【【萌新编写RiscV之经典计算机组成与设计RISCV书记录 总4】】

news2024/11/24 18:48:55

萌新编写RiscV之经典计算机组成与设计RISCV书记录 总4

其实我一开始不想做这个因为实在是实现的功能复杂 但是都差不多的逻辑

基本目的
实现下列操作
条件分支指令branch if equal (beq)。
算术逻辑指令 add sub and or
条件分支指令branch if equal (beq)。

我们确定一下CPU的基本逻辑可以发现对于绝大部分指令来说前几步都是一样的。
1.程序计数器(PC)发送到指令所在的存储单元,并从中取出指令。
2.根据指令的某些字段选择要读取的一个或两个寄存器。对于1 d指令,只需要读取一个寄存器,但大多数其他指令需要读取两个寄存器。
例如,所有类型的指令在读取寄存器后都使用算术逻辑单元(ALU)。存储器访问指令用ALU进行地址计算,算术逻辑指令用ALU来执行运算,而条件分支指令用ALU进行比较。但是经过ALU后,完成各类指令所需的操作就不同了。存储器访问指令需要访问存储器以读取数据或存储数据。算术逻辑指令或载人指令需要将来自ALU或存储器的数据写回寄存器。而条件分支指令需要根据比较结果更改下一条指令的地址;否则,下一条指令的地址会通过PC加4来获得。
1读取指令 2.访问寄存器 3.再通过ALU进行判断 下一步该如何实现
在这里插入图片描述
我们现在面对的整个逻辑 实现功能是 先从1.PC程序计数器获得指令在指令存储器中的地址 (PC取到的是指令的地址)
2.我们再通过指令寄存器这一媒介将传入的疑似32位数据 分段成各个我们想要的东西 例如经典的指令ADD
func rs2 rs1 func3 rd op
在这里插入图片描述
就像这样 其实我看一些risc 的设计中将读指令和指令分段2个项目结合和分开 其实都可以
接下来 我们将数据传入ALU 让ALU进行操作 因为是基本的形式 我们ALU只能简单的进行数据的回传 加 利用传过来的数据简单的操作 注意很多时候我们的存取操作需要加入另一个Data memory 来辅助实现
这样形成的CPU功能是孱弱的 我们改进一下加入一个 大的control 控制 来改进问题的实现

在这里插入图片描述
我们的目的是实现
在这里插入图片描述
我们目前所需要的注意的是 RISC-V
内部的数据通路分为2个单元 一个是处理数据的组合逻辑单元
和存储状态的存储单元

我们会使用D触发器 作为 存储状态的单元 因为 D触发器是最简单的带有2个输入和一个输出 并且由简单的clk时序控制

在本书中会大多数选用 上升沿作为触发的标准
然后我们开始考虑如何建立数据通路的问题
我们把整体的结构分成三部分来便于理解 1 指令寄存器 2 PC 3 自增Add(加法器)
在这里插入图片描述
PC叫程序计数器 用以保存当前指令的地址 并会用上半部分的加法器 增加PC的值获得下一条地址

第二部分 寄存器堆 和ALU
在这里插入图片描述
为了保证指令的合理性和便利性
我们在指令寄存器上添加了多个端口 两个读取 一个写入 还有一个data 传输用来接收 来自data memory传输的信号 然后有两个输出

第三部分就是一个Data memory 和 立即数的扩展
在这里插入图片描述
将整个电路图进行组合就可以形成 一个简易处理多条指令的 CPU结构
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新ChatGPT网站源码+支持GPT4.0+支持Midjourney绘画+支持国内全AI模型

一、智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&…

【MySQL从删库到跑路 | 基础第二篇】——谈谈SQL中的DML语句

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 前言 前面我们…

华为Mate 60难以撼动苹果的市场份额

来源:猛兽财经 作者:猛兽财经 总结: (1)一些分析师认为,如果华为能够大规模生产Mate 60,那么华为的新智能手机将对苹果的市场份额构成威胁。 (2)还有消息称中国将禁止某…

【Node.js】模块化:

文章目录 1、模块化的基本概念2、Node.js 中模块化【1】Node.js 中模块的分类【2】加载模块【3】模块作用域【4】向外共享模块作用域中的成员【5】模块化规范 3、npm与包(包/依赖/插件)【1】包的基本知识:【2】开发属于自己的包【3】发布包 4…

在网站标题中使用可以让搜索引擎更容易(识别网站的主要内容)

随着互联网的飞速发展,越来越多的企业开始重视网站的优化。优化网站排名不仅可以增加曝光率和点击率,也可以提高品牌知名度和销售额。本文将从关键字优化方案入手,为大家详细介绍如何提升网站排名。 什么是关键字? 关键字是指用…

ChatGPT 网站合集/NovelAI tag生成器/Novel资源大全

ChatGPT 网站合集 https://github.com/xx025/carrot NovelAI tag生成器 https://wolfchen.top/tag/ Novel资源大全 https://wolfchen.top/tag/doc.html 简单地说,Stable Diffusion被修改后做出了NovelAI,NovelAI离家出走便有了Naifu Naifu简单好上手&am…

Java多线程篇(2)——mesi与内存屏障与volatile

文章目录 CPU高速缓存高速缓存storeBufferinvalidate message queue JMM 内存屏障volatile CPU高速缓存 高速缓存 每个cpu核心都有自己的高速缓存,结构如下 有缓存必有一致性问题,CPU0和CPU1之间的缓存是如何保持一致的。比较常见的一种做法就是 MESI…

mysql convert函数 解决读取double为科学计数法问题

convert顾名思义就是转化, cast差不多 MySQL CONVERT() 函数 | 参考手册 为什么需要这个函数? mysql是弱类型的 where stringcol1 and intcol1 都行 会自动转化,那我为什么还要呢? mysql有个类型是double ,基本没人…

第二本书交稿了

大家好,我是飞哥! 就在刚刚,我把新书的markdown源文件提交给出版社老师了,也就是说新书正式交稿了! 上一本咱们书咱们写的是Linux网络方面的,书名是《深入理解Linux网络》。 咱们这本书帮助很多之前惧怕内核…

美东一公司的郁闷面试题

说是题目可以用不同的语言,但是貌似 Java 是多线程的,用 Java 写肯定容易不少。 但,觉得这个题目用多线程简直是有点脱了裤子放屁。 完整题目内容 题目的网站内容如下: Please complete the following challenge in one of th…

使用这款免费的洗稿软件究竟是好还是坏

嘿,大家好!今天,我们要聊一聊一个备受争议的话题:洗稿软件(147SEO改写软件)。这些软件声称可以帮助你在写作时省下不少功夫,但究竟是好还是坏呢? 咱们都知道,写作是一门艺术,也是一项…

华策影视AIGC工程师招聘; 百度大模型创业松;主流大语言模型的技术原理细节;AIGC Prompt的七个缺陷 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🎯 华策影视AIGC工程师招聘,AIGC在「文娱领域」的真正落地 逛即刻时发现关注的AI博主 杨昌 发布了自己公司的招聘信息&#x…

Postgresql中检测内存越界或use after free的简便方法

1 使用场景 在Postgresql的内存管理模块中,最常用的aset.c提供的内存池实现,该实现提供了两个非常实用的开关来解决常见的内存越界问题: memdebug.c * About CLOBBER_FREED_MEMORY:** If this symbol is defined, all freed memory is over…

git之工作中实际应用篇(非常适合刚到公司上班但是git不太熟又不好意思问同事的友友)

目录 前言当你刚到一个公司写代码,交自己的分支提交并推送了代码,但是有所更改第二天拉取代码切换分支远程分支太多&&本地仓库太多checkout检出失败的情况未完待续 前言 此篇用于记录笔者在工作中用到git遇到的问题及大部分的操作。 区别于理论…

无涯教程-JavaScript - FALSE函数

描述 FALSE函数返回逻辑值FALSE。 语法 FALSE () 争论 FALSE函数没有参数。 Notes 您还可以在工作表或公式中直接键入FALSE单词,Microsoft Excel会将其解释为逻辑值FALSE。 提供FALSE功能主要是为了与其他电子表格程序兼容。 适用性 Excel 2007,Excel 2010,Excel 2013…

【用unity实现100个游戏之11】复刻经典mirror消消乐游戏

文章目录 前言开始项目开始一、方块网格生成二、方块交换三、添加交换的动画效果四、水平消除检测五、垂直消除检测六、完善删除功能七、效果优化(移动方块后再进行消除检测)八、方块下落十、方块填充十一、后续 源码参考完结 前言 欢迎来到经典消消乐游…

数据清洗:数据挖掘的前期准备工作

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

释放潜能!RunnerGo:性能测试的全新视角

在数字化时代,性能测试已成为企业持续发展的关键一环。但面对繁杂的工具和流程,很多企业却陷入了无从选择的困境。现在,一款名为RunnerGo的全新性能测试工具正悄然崭露头角。 RunnerGo,一款由国内开发者自主研发的全栈式性能测试…

最新模块化设计小程序系统源码完整版:开源可二开,支持DIY

随着互联网的快速发展,小程序已成为各行各业开展业务的重要工具。而模块化设计小程序系统源码完整版则是一种高效、灵活、易维护的解决方案。 分享一个最新的模块化设计小程序系统源码完整版,源码开源可二开,支持自由DIY设计,含完…

华为云新用户:定义,优惠券及专享活动

在当今的数字化时代,云计算已成为企业与个人的必备服务。华为云,作为全球领先的云计算服务提供商,吸引了众多新用户的关注。本文将详细介绍华为云新用户的定义、优惠券及专享活动相关内容,帮助大家更好地了解华为云新用户优惠政策…