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

中央处理器CPU

中央处理器CPU

  • cpu的组成(从功能方面来看)
  • cpu的执行过程
    • ★.取指令阶段
    • ★.解码阶段
    • ★.执行阶段

重点
1.cpu的组成
2.cpu怎么执行程序(命令)

cpu的组成(从功能方面来看)

  • 寄存器:用来临时存储数据和操作数据

  • 控制单元:由逻辑门组成,识别内存上的指令并生成一系列的控制信号来指挥其它部件。
    主要职责
    指令解码:对内存中读取的内容进行解码,确定操作类型,不同的指令由不同的逻辑电路解码。
    操作控制:根据译码的结果,产生相应的控制信号,控制数据的流动和处理。
    时序控制: “时钟”以精确的间隔产生电信号,控制单元用这电信号来促进cpu的内部操作。

  • 运算器(ALU):主要执行算术运算和逻辑运算,它接受来自控制单元的指令和操作操作数后对这些数据进行运算处理,并将结果暂时存入控制单元的寄存器中,关闭ALU后将值写入相应的寄存器中。

  • 时钟:以精确的时间间隔发出电信号(也是时钟信号),控制单元接受这电信号后有节奏的控制cpu的内部操作。cpu执行程序的速度就是时钟速度,单位是赫兹。1HZ就是表示1秒一个周期。

cpu的执行过程

计算机启动时所有寄存器从0开始
接下来举一个cpu执行第一条命令的例子(寄存器的值全是0)

★.取指令阶段

  1. 首先将“指令地址寄存器”连接到RAM。
  2. 根据寄存器的值为0,返回RAM地址为0的数据到“指令寄存器”里。

指令地址寄存器:追踪程序运行到哪里了,存当前指令的内存地址。
指令寄存器:存当前指令。

在这里插入图片描述

★.解码阶段

1.前四位是操作码0010表示把地址14的数据写入寄存器A
2 “ 检查是否LOAD_A指令的电路”对这些指令进行解码操作
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

★.执行阶段

  1. “ 检查是否LOAD_A指令的电路 ” 打开RAM的“允许读取线”,把地址14传过去。
  2. RAM拿到值0000 0011后把值传到寄存器A中
  3. 用 “ 检查是否LOAD_A指令的电路”来启动寄存器A的 “ 启动寄存器A的“允许写入线”。
    在这里插入图片描述
    最后 “检查是否LOAD_A指令的电路 ” 中的值+1。就结束了。

不同的指令由不同的逻辑电路解码,这些逻辑电路会配置cpu的组件来执行对应操作。由于逻辑电路的多样性,就把这些解码电路包装成一个整体。
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣第五十题——Pow(x,n)
  • Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
  • 【Linux】-----进度条小程序
  • 计算机毕业设计选题推荐-课程教学辅助系统-Java/Python项目实战
  • 【教程】Python语言的地球科学常见数据——植被指数数据-GIMMS NDVI的处理
  • Python基础教程(二)字符串和函数
  • CSS学习 01 利用鼠标悬停制造文本隐藏效果
  • 【大模型从入门到精通2】openAI api的入门介绍2
  • java基础 之 集合与栈的使用(四)
  • 智能仪表板DevExpress Dashboard v24.1 - 新增级联参数过滤
  • 数据结构(7):查找
  • 【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上
  • Mybatis的注解开发学习笔记
  • 【香橙派系列教程】(六)嵌入式SQLite数据库
  • 【gpt预测与推理区别】
  • 【翻译】babel对TC39装饰器草案的实现
  • 03Go 类型总结
  • Android优雅地处理按钮重复点击
  • Apache的基本使用
  • crontab执行失败的多种原因
  • Date型的使用
  • ES6语法详解(一)
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascript弹出层-初探
  • javascript面向对象之创建对象
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux Process Manage
  • October CMS - 快速入门 9 Images And Galleries
  • Python_OOP
  • Redis 中的布隆过滤器
  • RxJS: 简单入门
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue-router的history模式发布配置
  • 阿里云Kubernetes容器服务上体验Knative
  • 爱情 北京女病人
  • 给新手的新浪微博 SDK 集成教程【一】
  • 理解在java “”i=i++;”所发生的事情
  • 聊一聊前端的监控
  • 前端自动化解决方案
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用Gradle第一次构建Java程序
  • -- 数据结构 顺序表 --Java
  • 详解NodeJs流之一
  • C# - 为值类型重定义相等性
  • Semaphore
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #数据结构 笔记三
  • (02)Unity使用在线AI大模型(调用Python)
  • (04)odoo视图操作
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (7)STL算法之交换赋值
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Matlab)使用竞争神经网络实现数据聚类
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)