当前位置: 首页 > news >正文

【【萌新编写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的操作。
在这里插入图片描述
结束了 ,恕我无能 我就在这本书上大概提炼到这么多 换一本书提炼一点精华

http://www.lryc.cn/news/165413.html

相关文章:

  • error:03000086:digital envelope routines::initialization error
  • 暴涨130万粉仅用3个月,一招转型成B站热门UP主
  • 【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍
  • leetcode第362场周赛补题
  • SpringMvc 之crud增删改查应用
  • 【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控
  • 《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3架构升级
  • Flutter中实现交互式Webview的方法
  • 【Java Web】用Redis优化登陆模块
  • 华为云云耀云服务器L实例评测|docker私有仓库部署手册
  • JAVA-3DES对称加解密工具(不依赖第三方库)
  • 基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)
  • net自动排课系统完整源码(适合智慧校园)
  • Matlab匿名函数教程
  • 【Vue】一文让你进入Vue的大门
  • Linux mmap读/写触发共享文件页生命周期
  • linux 用户、组操作
  • MySQL报错this is incompatible withsal mode=only full group by处理办法
  • Mybatis 动态语言 - mybatis-freemarker
  • 软件源码开发,网络中的“摄像头”:运维监控系统
  • ping命令
  • MFC:程序的托盘显示
  • AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)
  • JS装饰器的介绍
  • 微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)
  • 关于for in 循环会遍历原型链上的属性的问题
  • 冠达管理:人民币升值板块个股?
  • 27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》
  • mysql的索引结构
  • SMT生产中基板的机械清洁处理法有哪些