【【萌新编写riscV之计算机体系结构之CPU 总二】】
萌新编写riscV之计算机体系结构之CPU 总二(我水平太差总结不到位)
在学习完软件是如何使用之后 我们接下来要面对的问题是 整个程序是如何运转的这一基本逻辑
中央处理器(central processing unit,CPU)的任务就是负责提取程序指令,并对指令进行译码,然后按程序规定的顺序对正确的数据执行各种操作。要了解计算机的.工.作原理,首先必须熟悉计算机的组成部分,以及各组件之间的相互关系。为了学习下一节将要介绍的简单体系结构,我们首先从般意义上来讨论在现代计算机控制级别的微观体系结构。
所有计算机都有中央处理器。中央处理器可以分成两部分。第一部分是数据通道(datapath),它是一种由存储单元(寄存器)和算术逻辑单元(对数据执行各种操作)所组成的网络。这些组件通过总线(总线是传递数据的电子线路)连接起来,并利用时钟来控制时间。CPU的第二部分是控制单元(control unit),该模块负责对各种操作进行排序并保证各种正确的数据适时地出现在所需的地方。这两部分组合在一起,就可以完成CPU的各种工作任务:提取指令、指令译码和按规定的顺序执行各种操作。数据通道和控制单元的设计将直接影响到计算机的性能。因此,接下来的内容将详细介绍CPU的这些组成部分。
小总结
上面这段话是复制粘贴的
其实归根结底就是表示 CPU可以分为两部分
一部分是 数据通道 通过传输数据的电子线路总线将存储数据的寄存器 与对数据执行各项操作的ALU连接起来
还有一部分是控制单元 合理的安排数据出现在哪里 或者说是指导何时该实现别的操作
一:寄存器结构
其实我一开始直接给到了一段代码 我发现它给定了 D触发器 用来操作当作寄存器实现 其实也有道理 我们在之前写状态机的时候 有用D触发器当寄存器的先例了
D触发器其实相当于是1位的寄存器 当我们需要比如说16位就用16个D触发器
二: 算术逻辑单元 ALU
上面大概介绍的是存储的 下面我们来介绍 更加重要的执行模块 算术逻辑单元 ALU ALU主要处理一些简单的逻辑运算 算术运算
三: 控制单元
控制单元(control unit)是CPU中的“警察”或“交通管理员”。控制单元负责监视所有指令的执行和各种信息的传送过程。控制单元负责从内存提取指令,对这些指令进行译码,确保数据适时地出现在正确的地方。控制单元还负责通知ALU应该使用哪一个寄存器,执行哪些中断服务程序,以及对所需执行的各种操作接通ALU中的正确电路。控制单元使用一个称为程序计数器( programcounter)的寄存器来寻找下一条要执行的指令的位置,并使用一个状态寄存器来存放某些特殊的操作状态,比如溢出、进位、借位和类似的状态等。4.7节将更详细地讨论控制单元。
感觉学了和没学一样上面的提示 太抽象了
取指-译码-执行(fetch-decode-execute)表示计算机运行程序时所遵循的步骤。CPU首先提取一条指令,即将指令从主存储器转移到指令寄存器;接着对指令进行译码,即确定指令的操作码和提取执行该指令所需的数据;然后执行这条指令,即执行指令规定的各种操作。注意,在这个循环过程中,计算机的大部分工作都是在执行从一个单元将数据复制到另一个单元的任务。当一个程序最初被装入到CPU时,第一条指令的地址也必须被装入PC中。下面列出了计算机工作周期的各个步骤,即特定时间周期内发生的各种操作。步骤1和步骤⒉组成了取指过程,步骤3表示译码过程,步骤4则是执行过程。1.将 PC中的内容复制到MAR:MAR(—PC。2. CPU转向主存储器,提取由MAR给出的地址单元中的指令,并将指令放入指令寄存器IR中。同时,PC自动加1,现在PC指向程序的下一条指令:IR(一M [MAR]和PC(-PC+1。注意,因为MARIE是按字编址的,所以 PC增量加1所产生的实际效果是下一个字的地址将占据 PC寄存器。如果MARIE是按字节编址的,则PC需要增量加2才能指向下一条指令的地址,原因是每条指令占有两个字节的宽度。而如果MARIE是一个32位字的按字节编址的计算机系统,则PC 需要进行增量加4的操作。
结束了 ,恕我无能 我就在这本书上大概提炼到这么多 换一本书提炼一点精华
相关文章:
【【萌新编写riscV之计算机体系结构之CPU 总二】】
萌新编写riscV之计算机体系结构之CPU 总二(我水平太差总结不到位) 在学习完软件是如何使用之后 我们接下来要面对的问题是 整个程序是如何运转的这一基本逻辑 中央处理器(central processing unit,CPU)的任务就是负责提取程序指令࿰…...
error:03000086:digital envelope routines::initialization error
项目背景 前端vue项目启动突然报错error:03000086:digital envelope routines::initialization error 我用的开发工具是vscode,node版本是v18.17.0 前端项目版本如下↓ 具体报错如下↓ 报错原因 node版本过高 解决方法 1输入命令 $env:NODE_OPTIONS"--op…...
暴涨130万粉仅用3个月,一招转型成B站热门UP主
- 导语 起号难、找不到内容方向、没流量、没粉丝等等运营困境环绕在创作者之间,近期,有黑马UP主短时间内就在B站涨粉百万,飞升成为热门UP主,以下,飞瓜数据(B站版)剖析黑马UP主运营技巧…...
【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍
目录 注意:以下操作前提是要确保你输入法是英文模式 一、进入和退出各个模式的方法 1.命令模式 2.底行模式 3.插入模式 4.视图模式 5.替换模式 二、在命令模式中一些常用的操作 1.移动光标 2.删除文字 3.复制 4.替换 5.撤销上一次操作 6.更改 7.跳至指…...
leetcode第362场周赛补题
8029. 与车相交的点 - 力扣(LeetCode) 思路:差分数组 class Solution { public:int numberOfPoints(vector<vector<int>>& nums) {int diff[102] {}; for(auto p : nums)//差分{diff[p[0]] ;diff[p[1] 1] -- ;}int res …...
SpringMvc 之crud增删改查应用
目录 1.创建项目 2.配置文件 2.1pom.xml文件 2.2 web.xml文件 2.3 spring-context.xml 2.4 spring-mvc.xml 2.5 spring-MyBatis.xml 2.6 jdbc.properties 数据库 2.7 generatorConfig.xml 2.8 日志文件log4j2 3.后台代码 3.1 pageBean.java 3.2切面类 3.3 biz层…...
【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控
Skywalking skywalking是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式系统 一、Skywalking介绍 1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint …...
《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3架构升级
架构升级 GPU 支持 早在 Milvus 1.x 版本,我们就曾经支持过 GPU,但在 2.x 版本中由于切换成了分布式架构,同时出于对于成本方面的考虑,暂时未加入 GPU 支持。在 Milvus 2.0 发布后的一年多时间里,Milvus 社区对 GPU 的呼声越来越高,再加上 NVIDIA 工程师的大力配合——为…...
Flutter中实现交互式Webview的方法
前言: Flutter是一款强大的跨平台移动应用开发框架,而Webview则是在应用中展示Web内容的重要组件。本文将介绍如何在Flutter应用中实现交互式的Webview,以便为用户提供更加丰富的内容和功能。 1. 引入webview_flutter插件 要在Flutter应用中…...
【Java Web】用Redis优化登陆模块
使用Redis存储验证码 验证码需要频繁访问和封信,对性能要求高;验证码不需要永久保存,通常在很短时间内失效;分布式部署,存在Session共享问题; 使用Redis存储登陆凭证 处理每次请求时,都要查询用…...
华为云云耀云服务器L实例评测|docker私有仓库部署手册
【软件安装版本】【集群安装(是)(否)】 版本号 文档编写 文档审核 创建日期 修改日期 1.0 jzg jzg 2023.9.13 一. 部署规划与架构 1. 规划:(集群:网络规划&…...
JAVA-3DES对称加解密工具(不依赖第三方库)
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class EncryptUtil {// 密钥public static final String ENCR…...
基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)
本文介绍了如何使用Matlab实现惯性测量单元(IMU)和全球定位系统(GPS)组合导航数据融合的卡尔曼滤波算法。通过将IMU和GPS的测量数据进行融合,可以提高导航系统的精度和鲁棒性。我们将详细介绍卡尔曼滤波的原理和实现步…...
net自动排课系统完整源码(适合智慧校园)
目录 1 net自动排课系统完整源码(适合智慧校园) 1.1 后台管理admin 1.1.1 菜单 1.1.2 教学计划 net自动排课系统完整源码(适合智慧校园) 后台管理admin<%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&...
Matlab匿名函数教程
Matlab匿名函数是一种方便、简洁的函数定义方式,可以在不使用函数文件的情况下,直接在命令行或脚本中定义函数。本文将介绍Matlab匿名函数的基本语法和用法。 匿名函数的基本语法如下: function_handle (input_variables) expression其中&…...
【Vue】一文让你进入Vue的大门
Vue简介 官网 ● 英文官网 ● 中文官网 介绍与描述 Vue历史 Vue 是一套用来动态构建用户界面的渐进式JS框架 构建用户界面:把数据通过某种办法变成用户界面 渐进式:Vue可以自底向上逐层的应用,简单应用只需要一个轻量小巧的核心库,…...
Linux mmap读/写触发共享文件页生命周期
概述 Linux的mm内存子系统的核心功能就要要管理各种类型的page,确保能高效分配和释放,让物理内存得以最大化使用。初识内存系统往往关注的是page的申请和管理流程,容易忽略page的释放回收流程,其实理解mm中的内存回收和释放也是最核心的机制。 Linux内核为了支持各种场景…...
linux 用户、组操作
一、创建用户并设置密码 #创建用户 duoergun useradd duoergun #设置用户 duoergun 密码 passwd duoergun二、创建组 #创建组 qingdynasty groupadd qingdynasty三、用户添加到组,用户从组删除 #添加用户duoergun到组qingdynasty usermod -aG qingdynasty duoer…...
MySQL报错this is incompatible withsal mode=only full group by处理办法
问题说明 报这个错误是指,在查询分组时展示了非分组字段。举例: select id , user_name from user group by user_name;上述语句查询id和user_name字段,其中user_name进行了分组,id并没有分组,这时候mysql就会报上述…...
Mybatis 动态语言 - mybatis-freemarker
前面我们介绍了Mybatis动态SQL的使用;本篇我们介绍使用mybatis- freemarker动态语言生成动态SQL。 如果您对Mybatis动态SQL不太了解,建议您先进行了解后再阅读本篇,可以参考: Mybatis 动态SQL – 使用if,where标签动态生成条件语…...
软件源码开发,网络中的“摄像头”:运维监控系统
在日常生活中,我们不管是在大街小巷,还是在商场大厦都可以见到一个圆形或是方形带有镜片的“小盒子”,这个“小盒子”就是摄像头,摄像头作为一个能实时录制记录它能照到范围内的视频图像的工具,可以在丢失物品、抓捕坏…...
ping命令
打开运行窗口 首先,我们需要打开运行窗口,可以通过按下WinR组合键打开。然后,在窗口中输入cmd,进入dos命令。 在命令行中输入ping命令 在dos命令行中,我们可以通过输入ping命令来检测网络连接。例如,我们…...
MFC:程序的托盘显示
介绍 关键技术,API函数Shell_NotifyIcon,具体查看msdn吧 实现的主要代码 #define MY_TRAY_ICON_ID (1)/ //其他代码:略BEGIN_MESSAGE_MAP(CTestShowTrayDlg, CDialogEx)//...ON_MESSAGE(WM_MY_TRAY_ICON, &CTestShowTrayDlg::OnMessag…...
AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)
大家好,我是小梦,最近一直研究AI绘画。 不久前,我与大家分享了StableDiffusion的全面教程:“AI绘画:Stable Diffusion 终极宝典:从入门到精通 ” 然而,仍有些读者提出,虽然他们已经…...
JS装饰器的介绍
装饰器的基本介绍 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上。 装饰器使用expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的…...
微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)
一、需求 1、如果第一是视频,不进行自动轮播 2、可以手动滑动切换 3、点击播放视频,也可以手动滑动切换 4、视频播放完后,自动轮播 5、视频可以点击暂停和全屏播放二、最终效果 三、源码 播放icon使用了TDesign组件库 1、wxml <swiper c…...
关于for in 循环会遍历原型链上的属性的问题
关于for in 循环会遍历原型链上的属性的问题 for in可遍历原型链上扩展的属性,Object.keys() 只遍历自身属性 1.使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问: Object.prototype.say"cgl"; // 修改Object.p…...
冠达管理:人民币升值板块个股?
人民币增值是当前热门的论题之一。面对这一趋势,许多投资者开端重视人民币增值板块个股的投资时机。可是,终究哪些职业和个股能够从人民币增值中获益?下面从多个视点分析这个问题。 一、出口相关职业 跟着人民币增值,我国的出口企…...
27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》
下载地址:高比例清洁能源接入下计及需求响应的配电网重构 1主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》,以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标,针对配电网重构模型的非凸性&…...
mysql的索引结构
索引概述 索引( index )是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些…...
适合服务行业做推广的网站/电商怎么推广自己的产品
在Allegro中,Symbols有两种fix的形式,他们分别是: 1. Properties attached to symbol. 2. Inherited properties attached to symbol. 有时你会发现无论如何都移动不了器件,右键看不到move选项,可以看到fix选项说明…...
网站图片怎么做优化/竞价推广套户渠道商
在平时工作中,你是不是经常需要用到Word工具,本期Word妹与大家分享3个Word的小技巧。1、如何将横向文字更改为纵向?选中文本,点击布局——文字方向——选择垂直即可。如下图所示,如何将更改英文方向?直接选…...
个人怎么做网站优化/搜索推广是什么意思
记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的,但是客户反应说CPU占用很高,经…...
wordpress 评论邮件通知/设计网站模板
在数据库中,有一个值是日期来的。但在ASP.NET显示时,它还是有显示时间部分: 解决这个问题,也许你第一时间想到,在前端页去format一下日期格式,如:http://www.cnblogs.com/insus/archive/2010/05…...
彩票网站开发是否合法/北京seo加盟
编辑本博客 知识点: JsonResponse()Django直接序列化,不用json.dumps()request.session[valid_code]valid_code保存验证码一次请求伴随多次请求,如静态文件请求和验证码请求PIL模块掌握session存储验证码验证码刷新登录界面html <!DOCTYPE…...
做h5游戏的网站/百度app客服人工在线咨询
一、源码特点 PHP心理咨询网站系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为PHP APACHE,数据库为mysql5.0,使用php语言开发。 ph…...