【计算机组成原理】CPU概述

文章目录

  • CPU主要功能
  • CPU总体结构模型
    • 运算部件
    • 缓存部件
    • 寄存器组(堆)
    • 控制器
    • 时序部件

CPU主要功能

CPU是取指令并执行指令的部件

在这里插入图片描述

CPU总体结构模型

在这里插入图片描述

运算部件

运算部件用于对操作数进行运算,主要是算术运算/逻辑运算

运算部件的基本组成如下:

在这里插入图片描述

缓存部件

缓存部件用于缓存从主存中读取的部分指令/数据提高CPU从主存中读取指令/数据的效率,在CPU内部集成了多级缓存部件

在这里插入图片描述

寄存器组(堆)

寄存器用于存储各种用途的数据信息

部件选用:一般用小容量的多端口存储器来构成寄存器组,其中1个存储单元作为1个寄存器

  1. 通用寄存器:多个

    • 通用寄存器有全局唯一地址,可通过地址码访问,可在机器指令中直接使用
    • 通用寄存器主要用于提供操作数、地址码、存放运算结果等
  2. 暂存器

    • 暂存器的主要特点是:多个,内部专用,无需分配地址码,不能在机器指令中使用
    • 主要用于暂存产生的临时数据,以备在后续操作过程中使用
  3. 指令寄存器(IR)

    • 指令寄存器只有1个,用于存放指令代码
    • 从存储器(或者指令缓存)中读取到指令以后,就直接存入到指令寄存器中
  4. 程序计数器(PC)

    • 程序计数器仅有1个,用来指明指令在存储器中的存放位置,即存储单元的地址码

    【注】取指令结束后,PC保存的地址码自动修改,以指向下一条指令的存储单元,修改量取决于指令字长和存储器的编址单位

    在这里插入图片描述

  5. 程序状态字寄存器(PSW)

    程序状态字寄存器仅有1个,记录现行程序的运行状态和程序的工作模式

    • PSW - 特征位

      特征位也叫标志位反映CPU的当前状态

      指令执行时,根据情况自动设置这些特征位,作为后续操作的判断依据,通常有5类:

      在这里插入图片描述

    • PSW - 编程设定位

      PSW中某些位或字段可通过程序来设定,以决定程序的调试、对中断的响应、程序的运行模式等

      在这里插入图片描述

  6. 地址寄存器(MAR)

    • 地址寄存器只有1个,读写存储器时,先要定位存储单元,因此设置MAR来存放目标单元的地址码

    • 先将有效地址送入MAR,再启动后续的读写操作

  7. 数据寄存器(MDR)

    • 数据寄存器只有1个过渡性地存放CPU与主存之间交换的数据
    • 无论是从主存读取的数据,还是写入到主存的数据,都要经过MDR
  8. 堆栈指针(SP)

    • 堆栈指针仅有1个,固定存放堆栈的栈顶单元的地址码

    • 根据这个地址码,去读写堆栈

    在这里插入图片描述

【寄存器组 这部分的内容可以看我在 汇编专栏 中的 中央处理器CPU & 寄存器 这篇文章,对部分寄存器有详细介绍】

控制器

控制器主要用于:根据指令时钟信号外部信号等信息,产生各种控制信号(微命令),以便控制各种功能部件协同工作,完成指令

在这里插入图片描述

根据产生微命令的方式,有两类控制单元:

  1. 组合逻辑控制器

    组合逻辑硬件电路 → 控制信号

  2. 微程序控制器

    微程序译码 → 控制信号

控制器的主要工作内容:循环取指、执行、处理异常

控制器可分为两类:

  1. 硬布线控制器 (时序逻辑型) (硬件实现)
  2. 微程序控制器 (存储程序型) (软件实现)

时序部件

时序部件用于确保指令按照正确的顺序和时间序列进行执行,并与其他组件进行正确的协调

时序信号

时序信号是周期、节拍、脉冲等频率型信号序列,产生时序信号的部件称为时序发生器或时序系统,由1个低频振荡器和倍频逻辑组成

在这里插入图片描述

低频信号振荡器:它是一个低频脉冲源,能输出固定频率的基准脉冲信号(外频),作为系统时钟信号

系统时钟信号经过倍频放大以后,产生执行指令所需要的各种时序信号:

  1. 节拍信号,即CPU时钟周期信号
  2. 工作周期信号,即机器周期信号
  3. 指令周期信号

在这里插入图片描述

  • 指令周期包括若干(≥2)机器周期
  • 机器周期包括若干(≥1)时钟周期

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发——键值型数据库的基本使用与跨设备同步

1、简 述 ❓ 什么是键值型数据库 键值型数据库(KV-Store)是一种非关系型数据库,其数据以“键值”对的形式进行组织、索引和存储,其中“键”作为唯一标识符。 键值型数据库适合很少数据关系和业务关系的业务数据存储。 另外&#…

零基础认识:交换机,子网掩码,默认网关,以及路由器,IP地址,MAC地址

图解 物理层:使用MAC解决设备的身份证问题 通信的原始时代 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来…

【Canvas与标牌】Water Outages(停水)标牌

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>Wate Outages停水标志 Draft1</title><style type"tex…

CentOS 7 上安装 MySQL 8.0.40 (二进制安装)

要在 CentOS 7 上安装 MySQL 8.0.40&#xff0c;按照以下步骤操作&#xff1a; 下载安装包。 https://dev.mysql.com/downloads/mysql/ 下载之前查看系统c版本 解压安装包 首先&#xff0c;解压下载的 .tar.xz 安装包。 cd /path/to/your/downloads tar -xvf mysql-8.0…

汽车产业数字化转型:协同创新破解挑战,平衡安全与流通

在数字经济时代的浪潮中&#xff0c;数据资源和数据信息已成为驱动各行各业转型升级的“新石油”。汽车产业&#xff0c;作为国民经济的重要支柱&#xff0c;正经历着前所未有的变革。随着数字化创新和转型的深入&#xff0c;数据在汽车全产业链中的作用和价值日益凸显。在这个…

windows 脚本批量管理上千台服务器实战案例

如果你们有接触服务器&#xff0c;都是知道服务器有BMC管理界面的&#xff0c;这几天我在做项目中&#xff0c;需要不断的开关机服务器&#xff0c;如果一两台服务器登录BMC界面重启服务器还好&#xff0c;如果服务器数量非常的庞大&#xff0c;成百上千台&#xff0c;我们不可…

yarn : 无法加载文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁

关于执行安装yarn命令后执行yarn -v报错&#xff1a; 先确认执行安装yarn命令是否有误 # 安装yarn npm install yarn -g 终端输入set-ExecutionPolicy RemoteSigned 当然如果yarn -v仍然执行失败&#xff0c;考虑使用管理员方式运行IDEA&#xff0c; 注&#xff1a;如上操作…

Redis 数据结结构(一)—字符串、哈希表、列表

Redis&#xff08;版本7.0&#xff09;的数据结构主要包括字符串&#xff08;String&#xff09;、哈希表&#xff08;Hash&#xff09;、列表&#xff08;List&#xff09;、集合&#xff08;Set&#xff09;、有序集合&#xff08;Sorted Set&#xff09;、超日志&#xff08…

FPGA实战篇(按键控制LDE实验)

1.按键简介 按键开关是一种电子开关&#xff0c;属于电子元器件类。我们的开发板上有两种按键开关&#xff1a;第一种是本实验所使用的轻触式按键开关&#xff0c;简称轻触开关。使用时以向开关的操作方向施加压力使内部电路闭合接通&#xff0c;当撤销压力时开关断开&#xff…

4.模块化技术之子程序

总学习目录请点击下面连接 SAP ABAP开发从0到入职&#xff0c;冷冬备战-CSDN博客 目录 ​编辑 1.模块化基础和概述 使用模块化有什么好处 两大类模块化技术 程序局部的模块化 SAP系统内全局模块化 封装有什么好处&#xff1f; 2.子程序模块化 三种传递类型 子程序结构…

策略模式实战 - 猜拳游戏

**可以整体的替换一套算法&#xff0c;这就是策略模式。**这样对于同一个问题&#xff0c;可以有多种解决方案——算法实现的时候&#xff0c;可以通过策略模式来非常方便的进行算法的整体替换&#xff0c;而各种算法是独立封装好的&#xff0c;不用修改其内部逻辑。 具体的实…

新书速览|循序渐进Node.js企业级开发实践

《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践&#xff0c;系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分&#xff0c;第1部分基础知识&#xff08;第1&#xff5e;3章&#xff09;&#xf…

通过 FRP 实现 P2P 通信:控制端与被控制端配置指南

本文介绍了如何通过 FRP 实现 P2P 通信。FRP&#xff08;Fast Reverse Proxy&#xff09;是一款高效的内网穿透工具&#xff0c;能够帮助用户突破 NAT 和防火墙的限制&#xff0c;将内网服务暴露到公网。通过 P2P 通信方式&#xff0c;FRP 提供了更加高效、低延迟的网络传输方式…

游戏发布AppStore平台

首先&#xff0c;要注册一个开发者账号。这里不多说了&#xff0c;下载官方app“Developer”&#xff0c;然后买个能发布的账号&#xff0c;个人&#x1f4b2;99的就行。&#xff08;其实还有点麻烦&#xff0c;我的好像是人脸识别后出问题了&#xff0c;反正遇到问题找苹果官方…

【Linux系列】AWK 使用指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【算法】模拟

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;替换所有的问号 二&#xff1a;提莫攻击 三&#xff1a;z字形变换 四&#xff1a;外观…

Ubuntu环境安装RabbitMQ

1.安装Erlang RabbitMq需要Erlang语⾔的⽀持&#xff0c;在安装rabbitMq之前需要安装erlang # 更新软件包 sudo apt-get update # 安装 erlang sudo apt-get install erlang 查看erlang版本 : erl 退出命令:halt(). 2. 安装RabbitMQ # 更新软件包 sudo apt-get update # 安装 …

【STM32】定时器 —— 输出比较PWM

使用的单片机机型为STM32F103C8T6 文章目录 PWM输出比较编程实例输出比较呼吸灯舵机转向PWM控制直流电机 PWM 对于5V电路来说&#xff0c;输出只有高电平5V和低电平0V&#xff0c;控制LED灯就是点亮和熄灭&#xff0c;但如果想要控制其亮度呢&#xff1f;这就需要PWM PWM PWM…

Anaconda 下安装OpenCV 4.10.0

大家也可以使用pip安装。 pip install opencv-python4.10.0 这里使用conda安装 conda install opencv4.10.0 import cv2 print(cv2.__version__)

深入探索 C++ 类型转换的奥秘

目录 1. C语言中的类型转换 2.C的类型转换 &#xff08;1&#xff09;static_cast &#xff08;2&#xff09; dynamic_cast &#x1f60a;&#x1f60a;static_cast和dynamic_cast在面对继承和多态的父子类强转的区别&#xff1a; 1.static_cast 和 继承关系中的强转 …