热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

CH5:CPU

文章目录知识点重难点指令周期指令流程图微程序控制器中容易混淆的概念各类时间周期微指令格式流水和并行加速比杂项知识点CPU的功能指令控制:控制指令执行顺序程序计数器PC


文章目录

  • 知识点
  • 重难点
    • 指令周期
    • 指令流程图
    • 微程序控制器中容易混淆的概念
    • 各类时间周期
    • 微指令格式
    • 流水和并行
    • 加速比
    • 杂项


知识点


  • CPU的功能

    • 指令控制:控制指令执行顺序
    1. 程序计数器 PC
    2. 内存地址寄存器 MAR/AR
    3. 内存数据寄存器 MDR/DR
    • 操作控制:解释与运行指令
    1. 指令寄存器 IR
    2. 指令译码器 ID
    3. 操作控制器
    • 时序控制:给出时钟信号
    1. 时序发生器
    • 数据加工:运算和处理数据
    1. 算术逻辑运算单元 ALU
    2. 浮点运算器
    3. 通用寄存器组(用于存放给运算器的操作数、结果等 运算器的工作区)
    4. 状态条件寄存器 PSWR(存储运算后的进位标志 结果为0标志 等等 如CF OF ZF标志等等)
  • CPU的基本组成

    • 控制器:指令控制+操作控制+时序控制
    • PC+IR+ID+时序发生器+操作控制器(没有AR和DR)
      1. 取指
      2. 分析
      3. 执行
    • 运算器:数据加工
    • ALU+浮点运算器+通用寄存器组+状态条件寄存器
      1. 算术运算
      2. 逻辑运算+逻辑测试
  • CPU中的主要寄存器

    1. 指令寄存器 IR
    2. 数据寄存器 DR
    3. 地址寄存器 AR
    4. 程序计数器 PC
    5. 通用寄存器组(如 RAX RBX RBP 等等)
    6. 状态条件寄存器 PSWR
  • 数据通路

    1. ABUS:地址总线
    2. DBUS:数据总线
    3. IBUS:指令总线
    4. 其它设备
  • 操作控制器:根据指令操作码和时序信号,产生操作控制信号,以便正确建立数据通路,完成取指令和执行指令的控制。

    1. 硬布线控制器
    2. 微程序控制器
  • 指令周期

    • 指令周期=取指令+执行指令
  • CPU周期(机器周期)

  • 时钟周期(节拍脉冲,节拍周期,T周期)

    • 最基本时间单位
    • 一个指令周期=多个时钟周期
  • 指令执行过程

    1. 取指令:一般是每个指令周期的第一个CPU周期(指令译码一般也在第一个CPU周期)
    2. 取操作数
    3. 执行指令
  • 指令流程图:可以不写控制信号。但如果题目要求则需要写控制信号

  • 时序发生器和时序控制方式

    • 控制器的时序控制方式
    1. 同步控制
    2. 异步控制
    3. 联合控制
    • 时序信号的体制(时序信号的构成)
    1. 基本:电位-脉冲制
    2. 三级
    3. 二级
    • 时序信号发生器
    1. 时钟源
    2. 环形脉冲发生器
    3. 节拍脉冲和读写时序译码逻辑
    4. 启停控制逻辑
  • 微程序控制器和微程序控制技术

    • 控制部件:控制器(CPU内)
    • 执行部件:运算器(CPU内)、存储器、I/O设备 等
    • 微命令:控制部件执行部件发出的控制命令
    • 微操作:执行部件根据控制命令执行的操作
      • 相容性和相斥性微操作
    • 微指令:一组实现特定功能的微命令的集合
      • 微指令通常存放在 控制存储器(控存)
    • 微周期
    • 微程序:实现一条机器指令(汇编代码)的微指令的序列
      • 一条机器指令与一个微程序对应
    • 微程序控制器的组成
      • 控制存储器(+地址译码器) CM
      • 微地址寄存器
      • 微命令寄存器
      • 微地址转移逻辑
      • (机器)指令寄存器
    • 微指令格式
      1. 微操作码/操作控制字段 uOP
      2. 顺序控制字段:条件选择(判别测试)字段+微地址码(下一个微指令的微地址)
      3. 实际上是由判别测试字段+微地址码共同决定下一个微指令的微地址
      4. 判别测试字段决定是否进行某判别测试而不影响判别测试的结果是对还是错
    • 微指令格式的具体分类
      1. 水平型微指令
        • 直接控制法
        • 编码表示法
          • 分段编码法
          • 垂直编码法
        • 混合表示法
      2. 垂直型微指令:和垂直编码法类似
    • 形成微地址的方法
      1. 计数器方式:微程序计数器 uPC(可以和微地址寄存器合并)
      2. 多路转移方式:判别测试字段(允许某种判别测试)+状态条件(如 CF标志位等)->选中下一个微地址
  • 硬布线控制器

    • 讨论层级只有微操作
    • 硬布线控制器设计的具体步骤:
      1. 画出指令流程图
      2. 设计控制时序(节拍电位+节拍脉冲)
      3. 微操作综合(将微操作安排在合适的节拍电位和节拍脉冲上,列出各微操作的布尔代数表达式)
      4. 电路实现
  • 流水技术

    • 时间并行:流水
    • 空间并行
    • 时间+空间并行(生产车间的多条流水线)
      • 实例:超标量流水技术——一个机器周期内同时执行多条指令(空间并行),每条指令以流水方式执行
    • 时空图
    • 流水线的分类
    • 线性流水线的三个阶段:填充+稳定流水+排空
    • 线性流水线的时钟周期与频率
    • 线性流水线的加速比
      • 潜在加速比=流水线级数
    • 线性流水线的吞吐率
      • 最大吞吐率=时钟周期长的倒数
    • 流水线的相关问题

重难点


指令周期


  • 本课程对指令周期、CPU周期的设计只要求定性设计,不要求定量设计,即只需要执行顺序关系合理即可,每一条指令分配多少CPU周期不要求。
  • 设计指令流程图算法流程图大致类似,无需关注每个矩形框(一个CPU周期)中包含多少操作,只需关注执行顺序关系即可。
  • 指令周期实例:
    在这里插入图片描述

一般CPU周期大体划分为取指令和执行指令各一个CPU周期,还可以细分



指令流程图


  • 指令流程图实例
    在这里插入图片描述
  • 每一个指令流程图都要包含前面的指令公操作
  • 菱形和前一个矩形同属于同一个CPU周期
  • 设计指令流程时要注意:不要在同一个CPU周期内执行两个互斥操作,如需要在同一条总线上传输数据的两个操作就是一种互斥操作。

微程序控制器中容易混淆的概念

在这里插入图片描述
在这里插入图片描述


  • 微地址码:一般用于存储下一条微指令的地址。微地址码一定是微指令的地址码 可选实现微指令地址跳转功能 用于取下一条微指令。
  • 可使用机器指令的操作码字段作为其对应微程序的第一条微指令的地址。

在这里插入图片描述


  • op是机器指令的操作码字段

各类时间周期


  • 指令周期:取出一条指令并执行该指令所需的时间
  • CPU周期:CPU和内存交换一次信息的时间(取出一条指令所需的时间)
  • T周期:操作的最基本时间单位
  • 微(指令)周期:取出一条微指令并执行该微指令所需的时间
  • 大多数时候机器周期(CPU周期) = 时钟周期,时钟周期不再用于节拍脉冲的描述,而是用于描述CPU周期
  • 一个CPU周期由多个T周期构成

微指令格式


  • 原则上将相斥性微操作对应的微命令安排在编码表示法中的操作字段的同一个子字段
  • 编码表示法中一个子字段的n位二进制码只能表示2n−12^n-12n1个微命令而不是2^n个微命令
  • n位状态条件标志可以实现2n2^n2n路转移

流水和并行


  • 流水是时间上的并行。类似于工厂中的流水线,同时执行不同的工作,顺序完成任务。
  • 并行是空间。同时执行相同的工作,比方说同时下载多个软件,下载工作就是并行完成的。
  • 在工厂中有多个流水线,流水线和流水线之间就是并行的,一条流水线内就是流水。这是流水和并行的结合。

加速比


  • 线性非流水线串行输出一个任务的时间/线性流水线输出一个任务的时间
  • 在稳定流水期间,非流水线的经历所有过程段才能输出一个任务,线性流水线只需要经历一个时钟周期就能输出一个任务
  • 若题目中没有说明,则无需考虑流水线的填充和放空阶段,直接视为稳定流水即可。
  • 若题目中没有说明,任务量视为1个;否则考察n个任务量
  • 当任务数量足够大时(远大于过程段个数),则稳定流水期足够长,可以忽略填充阶段和放空阶段。

杂项


  • 如何理解时序控制?对于所有操作,如取操作数、将操作数送入ALU、ALU输出运算结果,不仅要关注操作的执行顺序,还要关注操作执行的时间点、时间长度。时序控制就是指定各个操作在哪个时刻执行、执行多久、以及操作之间的执行顺序。
  • 计算机将时间分成无数个个离散的时间点,脉冲信号是这些时间点的标志(时间戳)。可以把脉冲信号视为计算机内部给计算机硬件参照的闹钟。比方说,一个CPU周期内第三次高电平时ALU的两个输入端有效。时序发生器可以给一个CPU周期的脉冲,在第三次高电平时,ALU就会取两个输入端的数据进行运算。脉冲信号就像闹钟一样提醒硬件执行某些操作。
  • 看懂数据通路!
  • 节拍电位长度=一个CPU周期?
  • CPU周期 指令周期的分割 只是定性分析 不是定量 执行顺序正确合理即可,怎么分割都行
  • 标量流水线:只有一条流水线
  • 超标量流水线:有多条流水线
  • 微指令的本质:(其中的微命令)就是给某些端口有效信号(例如给LAR有效电平),接着等待下一次时序发生器给的脉冲信号使得操作执行。 故仅凭借微指令是无法驱动微操作完成的,还需要有时序信号来驱动。

推荐阅读
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了数模国赛的报名参加方法,包括学校报名和自己报名的途径。同时给出了建模竞赛的建议,重在历练的同时掌握方法以及弥补自己的短板。此外,还分享了论文的结构和模型求解部分的注意事项,包括数学命题的表述规范和计算方法的原理等。 ... [详细]
  • 数据对比分析图PPT(127.0.0.1表示什么)的使用方法和意义
    本文介绍了数据对比分析图PPT的使用方法和意义,解释了127.0.0.1的含义,并提供了相关资源下载。同时还讨论了目标管理的概念和MBO的实施方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 如何使用计算机控制遥控车的步骤和电路制作方法
    本文介绍了使用计算机控制遥控车的步骤和电路制作方法。首先,需要检查发送器的连接器和跳线,以确定命令的传递方式。然后,通过连接跳线和地面,将发送器与电池的负极连接,以实现遥控车的前进。接下来,制作一个简单的电路,使用Arduino命令将连接到跳线的电线接地,从而实现将Arduino命令转化为发送器命令。最后,通过焊接晶体管和电阻,完成电路制作。详细的步骤和材料使用方法将在正文中介绍。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
龙龙玖号_367
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有