【笔记】CPU的结构和功能(一)

2023-11-04

一、CPU的结构

1.CPU的功能

  (1)取指令
  控制器必须具备能自动地从存储器中取出指令的功能

  (2)分析指令
  分析指令包括两部分内容:其一,分析此指令要完成什么操作,即控制器需发出什么操作命令;其二,分析参与这次操作的操作数地址,即操作数的有效地址。

  (3)执行指令
  执行指令就是根据分析指令产生的“操作命令”和“操作数地址”的要求,形成操作控制信号序列,通过对运算器、存储器以及I/O设备的操作,执行每条指令。

  CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令的控制命令(称操作控制)、对各种操作加以时间上的控制(称时间控制)、对数据进行算术运算和逻辑运算(称数据加工)、处理中断等功能。

2.CPU结构框图

3.CPU的寄存器

  CPU中的寄存器大致可分为两类:一类属于用户可见寄存器,用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而减少对主存的访问次数;另一类属于控制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。

用户可见寄存器

  (1)通用寄存器
  通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器。寄存器间接寻址时还可用通用寄存器存放有效地址的地址。

  (2)数据寄存器
  数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围。

  (3)地址寄存器
  地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式。

  (4)条件码寄存器
  条件码是CPU根据运算结果由硬件设置的位。将条件码放到一个或多个寄存器中,就构成了条件码寄存器。

控制和状态寄存器

  MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。
  MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。
  PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。
  IR:指令寄存器,存放当前欲执行的指令。
  PSW:程序状态字寄存器,存放条件码和其他状态信息。
  在具有中断系统的机器中还有中断标记寄存器。

4.控制单元和中断系统

  控制单元(CU)是提供完成计算机全部指令操作的微操作命令序列部件。微操作命令序列的形成方法有两种:一种是组合逻辑设计方法,为硬连线逻辑;另一种是微程序设计方法,为存储逻辑

二、指令周期

1.指令周期的基本概念

  CPU每取出并执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间。取指阶段完成取指令和分析指令的操作,又称取指周期;执行阶段完成执行指令的操作,又称执行周期

  由于各种指令操作功能不同,因此各种指令的指令周期是不相同的。

  简介寻址的指令周期就包括取指周期间址周期、**执行周期**3个阶段,其中间址周期用于取操作数的有效地址,因此间址周期介于取指周期和执行周期之间。

  如果有请求,CPU则要进入中断响应阶段,又称中断周期。在此阶段,CPU必须将程序断点保存到存储器中。一个完整的指令周期应包括**取值、间址、执行、中断**4个子周期。

  取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。这4个周期又可称为CPU的工作周期,为了区别它们在CPU内可设置4个标志触发器。

  FE、IND、EX、INT分别对应取值、间址、执行、中断4个周期,并以“1”状态表示有效,它们分别由 1FE1IND1EX1INT 1 → F E 、 1 → I N D 、 1 → E X 、 1 → I N T 这4个信号控制。

2.指令周期的数据流

取指周期数据流

  PC中存放现行指令的地址,该地址送到MAR并送至地址总线,然后由控制部件CU想存储器发读命令,使对应MAR所指单元的内容经数据总线送至MDR,再送至IR,并且CU控制PC内容加1,形成下一条指令的地址。

间址周期的数据流

  一旦取指周期结束,CU便检查IR中的内容,以确定其是否由间址操作,如果需要间址操作,则MDR中指示形式地址的右N位(记作Ad(MDR))将被送到MAR,又送至地址总线, 此后CU向存储器发读命令,以获取有效地址并存至MDR。

执行周期的数据流

  由于不同的指令在执行周期的操作不同,因此无法用统一数据流图表示。

中断周期的数据流

  由CU把用于保存程序断点的存储器特殊地址(如栈指针的内容)送往MAR,并送到地址总线上,然后由CU向存储器发写命令,并将PC的内容送到MDR,最终使程序断点经数据总线存入存储器。CU还需将中断服务程序的入口地址送至PC,为下一个指令周期的取指周期做好准备。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【笔记】CPU的结构和功能(一) 的相关文章

  • 计算机组成原理——总线

    一 总线概述 1 xff0e 基本概念 xff08 1 xff09 总线简图 每个总线可能由很多根信号线组成 xff08 2 xff09 总线的物理实现 如上图 xff0c 4根信号线组成 一根 总线 xff0c 所有硬件部件都可以通过这根
  • booth算法

    booth算法 1 booth算法定义 2 二进制乘法过程 3 二进制乘法转换成 booth乘法运算 4 Radix 2 Booth乘法器 5 Radix 4 Booth乘法器 6 Booth乘法器计算实例 1 booth算法定义 将乘数看
  • 计算机基本组成原理(简要笔记)

    计算机体系 一 冯 诺依曼体系结构 从Linux 服务器开发视角来看计算机 都是符合冯 诺依曼体系结构的 1 1 4大部分 1 1 1 输入 输出设备 输入设备 向计算机输入数据 比如通过摄像头 MIC 将图像 声音等转成二进制数据给计算机
  • Quartus II 13.0波形仿真

    先放结论 Quartus II 13 0有自带的仿真工具 能实现波形仿真 之前一直找不到关于Quartus II 13 0的波形仿真 然后百度的都是说quartus ii 9 0之后的版本就没有这个功能了 只能再下一个modelsim之类的
  • 计算机组成原理——第六章测试题(上)

    1单选 1分 计算机中的数据可以存放在 C 中 A 寄存器 B 主存 C 都可以 D 硬盘 2单选 1分 下列对源码 补码和反码叙述正确的是 B A 当真值为正时 原码和补码的表示形式不同 但其符号位都用 0 表示 B 三种机器数的最高位均
  • 《计算机组成原理实验》 单周期CPU

    计算机组成原理实验 单周期CPU 前言 这是中山大学2018年计算机组成原理实验中单周期CPU的实验报告 仿真与写板的内容暂略 所有源代码 包括写板 已经上传至我的github当中 欢迎大家访问 github个人主页 https stara
  • 计算机组成原理学习笔记——六、总线

    文章目录 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 6 2 总线仲裁 6 3 总线操作和定时 6 4 总线标准 小结 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 总线的猝发传送方式 一个总线周期内传输存储地址连
  • 存储器、运算器、控制器基本结构以及一条指令的执行

    Abstract 此篇文章讲述的是计算机存储器 控制器 运算器的基本结构组成以及指令的具体执行顺序 CPU包括运算器和控制器 而主机主要包括CPU和存储器 内容参考于 哈工大计算机组成原理 刘宏伟 存储器的基本组成 如下图所示 主存由存储体
  • 补码除法运算(加减交替法)

    x 补 00 1000 除数y 补 11 0101 两个数是异号 因此使用x 补 y 补 11 1101 11 1101继续与y 补 对比 发现是同号 商上1 余数11 1101向左移动一位 再加上 y 补 结果为00 0101 余数00
  • 关于存储器按字节寻址和按字寻址的理解

    关于存储器按字节寻址和按字寻址的理解 近日在学习MOOC上学习哈工大刘宏伟老师的 计算机系统组成原理 课程 在4 1节提到主存的时候简单地提到一下关于按字节寻址和按字寻址的寻址空间问题 个人非常疑惑于是各处搜索查找资料 下面是本人就这个问题
  • 计算机组成原理——万字详解

    引言 作为还在学习的学生和不断进步的同事 学习计算机组成原理具有以下几个重要的好处 它可以帮助你深入理解计算机系统的工作原理 包括处理器 存储器 输入输出设备等组成部分之间的交互关系 这种深入理解可以提高你对计算机系统的整体把握能力 让你能
  • 计算机组成原理慕课测试-第四单元

    计算机字长32位 主存容量为128MB 按字编址 其寻址范围为 0 32M 1 1 B 8b 1 kB 1024 B kB kilobajt 千 1 MB 1024 kB MB megabajt 兆 1 MB 1024 kB MB mega
  • 【计算机组成原理】实验4:存储器读写实验

    实验内容 一 实验原理 存储器是计算机的存储部件 用于存放程序和数据 存储器是计算机信息存储的核心 是计算机必不可少的部件之一 计算机就是按存放在存储器中的程序自动有序不间断地进行工作 本系统从提高存储器存储信息效率的角度设计数据通路 按现
  • 【计组笔记-5】详细测试c++中类型转换的溢出截断处理

    计组笔记 5 详细测试c 中类型转换的溢出截断处理 1 将小数赋值给float 2 将整数赋值给float 3 将整数赋值给int 3 1 算术溢出 3 2 非算术溢出 等于32位 3 3 非算术溢出 大于32位 4 将小数赋值给int 5
  • 浮点数

    为什么要有浮点数 从十进制科学计数法理解浮点数 计算机中二进制的浮点数 二进制中阶码的底也可以不为2 例如 二进制中阶码的底可以为4 为8等等 当阶码的底为2 假设阶码为 1 则小数点需要后移一位 即算数左移一位 当阶码的底为4时 假设阶码
  • 计算机组成原理--基于Logisim的海明校验码解码电路实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的海明校验码解码电路 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • 补码加减运算及判断溢出方法

    一 补码加减运算 二 判断溢出方法 1 符号位判溢出方法 对于加减运算 两个异号数相加或者两个同号数相减 结果的绝对值一定比任何一个数的绝对值要小 不会发生上溢出 两个异号数相减或者两个同号数相加的绝对值肯定比任何一个数要大 可能发生溢出
  • 第一章 计算机系统概论

    一 计算机系统简介 1 计算机软硬件概念 计算机是一种能够执行指令的电子设备 它由硬件和软件两部分组成 计算机硬件是指计算机系统中的物理组件 包括中央处理器 CPU 内存 硬盘 输入设备 如键盘 鼠标 输出设备 如显示器 打印机 等 这些硬
  • CF、SF、OF、ZF标志位

    没学汇编 这种题我真是做一道错一道 OF overflow flag 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出 对于无符号整数运算 OF没有意义 对于有符号数的溢出判断方式有 1 采用一位符号位 思想为 或 则为溢
  • 5.1 中央寄存器的原理和组成

    思维导图 中央处理器 CPU 核心原理与组成 引言 中央处理器 CPU 作为计算机的 大脑 在现代计算机硬件中扮演着至关重要的角色 本文旨在深入探讨CPU的基本原理和组成部分 为读者提供一个全面的理解 CPU的基本原理 1 信息处理 CPU

随机推荐

  • c#:浅析var关键字

    c 浅析var关键字 1 var关键字介绍 var关键字是c 3 5新增的特性 称为推断类型 弱类型 由var声明的变量 编译器会根据上下文来判断你到底想用什么类型 也就是说当你无法确定自己将使用什么类型时 就可以使用var var类似于o
  • R语言——(四)、数据读入与预处理

    文章目录 一 数据读入 1 直接输入数据 2 读R包中的数据 3 从外部文件读入数据 3 1 读入文本文件 TXT 3 2读入Excel格式文件 3 3读入其它格式文件 SAS数据 SPSS数据 Stata数据等 二 写入数据 三 数据预处
  • Angular Tracy 小笔记 其他 dos 命令,发布

    其他命令 Angular Material ng add angular material Add PWA support ng add angular pwa Add Dependency ng add Run and Watch Tes
  • Java中Steam流的详解

    在Java中 Stream是一种用于操作集合 Collection 和数组的高级抽象 它提供了一种功能强大且表达力丰富的编程模型 可以以声明性的方式对数据进行处理和转换 概述 Stream是Java 8引入的一种新的抽象 它使得我们可以以类
  • python 实现简易的学员管理系统

    文章目录 前言 基本思路 需求实现 1 实现菜单的功能 2 提示用户输入需要进行的操作 并执行相关操作 3 具体函数功能的实现 增加学员信息 显示所有学员信息 删除学员信息 修改学员信息 查询学员信息 整体代码展示 前言 前面我们已经学习了
  • c++数值极限numeric_limits

    一般来说 数值类型的极值是一个与平台相关的特性 c 标准程序库通过template numeric limits提供这些极值 取代传统C语言所采用的预处理常数 你仍然可以使用后者 其中整数常数定义于
  • c++字符串类型string和char数组的互转

    1 string转char include
  • TestFlight 添加测试人员 (内部测试人员)

    用有管理员身份的账号登陆 itunes connect 在登陆页面可以看到如下界面 选择用户和职能 会看到之前已经添加的用户 可以管理用户的app访问权限 找到 添加用户 输入用户的apple id一般是注册时候的邮箱地址形式 添加成功后会
  • GIT代码冲突解决方案,两种方案详细教程

    方法一 先pull 再进行commit 此种方法当工作区文件和远程仓库文件有冲突时不能完成pull的 需要先备份工作区文件 恢复文件与远程服务器一致 才能完成pull 然后将本地修改添加进去 commit push 这种操作修改文件较多时非
  • 如何使用TensorFlow进行序列建模和时间序列预测?

    如何使用TensorFlow进行序列建模和时间序列预测 使用TensorFlow进行序列建模和时间序列预测涉及以下主要步骤 数据准备 首先 你需要准备时间序列数据集 确保数据集包含适当的时间序列信息和相应的目标变量 你可能需要对数据进行预处
  • JVM 的 垃圾回收(GC)超全解析,面试官看了直呼内行!!还不快收藏起来

    我是目录 1 垃圾回收的时机 2 垃圾回收机制 如何判断对象已死 3 需要垃圾回收的内存 4 垃圾回收算法 5 垃圾回收过程 6 垃圾收集器 Garbage Collection GC Java进程在 启动后 会 创建垃圾回收线程 来对 内
  • C#网络编程TCP通信实例程序简单设计

    用TcpClient和TcpListener设计一个Tcp通信的例子 通信程序截图 2个客户端链接服务端测试截图 服务端 客户端 运行动态图 C 程序设计代码 BenXHSocket dll主要代码设计 SocketObject类 Proj
  • 京东自动抢茅台脚本(亲测可用,文末有新年礼物)

    点击上方 程序IT圈 选择 置顶公众号 关键时刻 第一时间送达 2021年第一天 祝大家新年快乐 文末给大家送个新款AirPods Pro 大家图个喜庆 这期为大家继续分享个GitHub上面的大神开源的项目 大家可以认真看看 然后把对自己刚
  • 线程的同步与互斥

    线程的同步与互斥 互斥 当一个公共资源同一时刻只能被一个进程或线程使用 多个进程或线程不能同时使用公共资源 如 当线程A在使用打印机时 其他线程都需要等待 同步 两个或两个以上的进程或线程在运行过程中协同步调 按预定的先后次序运行 如 A任
  • RK3588 烧写固件

    首先先安装驱动DriverInstall 上电 配置串口调试工具 一般使用MobaXterm rk3588 波特率1500000 串口软件有信息打印说明成功 进行下一步操作 升级固件里 选固件 选择updata img文件 再点升级 串口软
  • 【微信小程序】解决微信小程序textarea层级过高穿透问题

    先来张完美的效果图 说下遇到的问题 之前做过的一个项目改版碰到的病例上传页面发布按钮上一版本是在底部放置的 这一版改为了顶部固定 由于上传页面顶部有两个textarea输入框所以问题就产出了 之前使用的button和view标签布的局页面上
  • 2020浙江省赛(ZJCPC)赛后总结

    引言 2020注定是特殊的一年 其时间线受疫情影响 本该在上半年举办的活动全部放到了下半年 虽然能够在2020结束前能够举办已经很感谢主办方 然后10 17就在线上参加了2020浙江省大学生程序设计大赛 得益于参加过计量大学的模拟赛以及省赛
  • 【博客687】k8s informer的list-watch机制剖析

    k8s informer的list watch机制剖析 1 list watch场景 client go中的reflector模块首先会list apiserver获取某个资源的全量信息 然后根据list到的rv来watch资源的增量信息
  • python中object的用法_【Python】【基础知识】【内置函数】【object的使用方法】

    原英文帮助文档 classobject Return a new featureless object object is a base for all classes It has the methods that are common
  • 【笔记】CPU的结构和功能(一)

    一 CPU的结构 1 CPU的功能 2 CPU结构框图 3 CPU的寄存器 用户可见寄存器 控制和状态寄存器 4 控制单元和中断系统 二 指令周期 1 指令周期的基本概念 2 指令周期的数据流 取指周期数据流 间址周期的数据流 执行周期的数