文章目录

  • 前言
  • 中央处理器(CPU)的组成
    • 控制器的组成
    • 运算器的组成
  • 中央处理器(CPU)的功能
  • 指令周期的组成
  • 指令周期的数据流
    • 取指周期:获取指令
    • 间址周期:获取操作数有效地址
    • 执行周期:获取操作数
    • 中断周期:处理中断请求,保存程序断点
  • 指令的执行方案
  • 数据通路的基本结构
  • 控制器的功能
  • 控制器的分类(根据产生微操作控制信号的方式)
  • 控制单元(CU)的输入来源
  • 中央处理器(CPU)的控制方式
  • 硬布线控制器设计步骤
  • 微程序设计的机器指令组成
  • 微程序控制器的组成
  • 微程序控制器的工作过程
  • 微指令的编码/控制方式
  • 微指令的地址形成方式
  • 微指令的格式
  • 微程序控制器的设计步骤
  • 微程序设计的分类
  • 中断(广义中断)的分类
  • 外中断事件
  • 内中断事件
  • 中断(广义中断)的响应过程
  • 提高中央处理器(CPU)效率的方式
  • 指令的执行过程(另一种角度:指令流水线)
  • 流水寄存器存储的信息
  • 流水线冒险的分类和处理方式
  • 流水线冒险的处理方式
  • 流水线的性能指标
  • 流水线的分类
  • 高级流水线技术
  • 计算机体系结构的分类(从指令、数据流数量的角度)
  • 硬件多线程的实现方式
  • 总结
  • 参考资料
  • 作者的话

前言

计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“中央处理器(CPU)”一章中重点知识总结成提纲。


中央处理器(CPU)的组成

  • 中央处理器(CPU)=控制单元(CU)+算术逻辑单元(ALU)+寄存器+中断系统
  • 中央处理器(CPU)=控制器+运算器

控制器的组成

  • 程序计数器(PC)
  • 指令寄存器(IR)
  • 指令译码器
  • 时序系统
  • 微操作信号发生器
  • 存储器地址寄存器(MAR)
  • 存储器数据寄存器(MDR)

运算器的组成

  • 算术逻辑单元(ALU)
  • 通用寄存器组
  • 暂存寄存器
  • 程序状态字寄存器(PSW)
  • 移位器
  • 计数器(CT)

其中,通用寄存器组包括:

  • 累加寄存器(ACC;16位:AX;32位:EAX)
  • 基地址寄存器(BR;16位:BX;32位:EBX)
  • 计数寄存器/程序计数器(PC;16位:CX;32位:ECX)
  • 数据寄存器((M)DR;16位:DX;32位:EDX)
  • 变址寄存器(IX,区别于指令寄存器(IR);ESI,EDI共两个)
  • 堆栈基指针(寄存器)(BP;32位:EBP)
  • 堆栈顶指针(寄存器)(SP;32位:ESP)

中央处理器(CPU)的功能

  • 指令控制(控制器功能)
  • 操作控制
  • 时间控制
  • 中断处理
  • 数据加工(运算器功能)

指令周期的组成

  • 指令周期=若干机器周期(CPU周期)
  • 机器周期=若干时钟周期(τ周期/节拍)

或(按时间顺序):

  • 取指周期(获取指令+分析指令)
  • 间址周期(获取操作数的有效地址;可无)
    执行周期(执行指令;可无)
  • 中断周期(处理中断;可无)

指令周期的数据流

取指周期:获取指令

  1. 程序计数器(PC)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  2. 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
  3. 主存储器(MM)的指令->数据总线->存储器数据寄存器(MDR)->指令寄存器(IR)

指令寄存器(IR)的指令操作码->控制单元(CU)

  1. 控制单元(CU)的控制信号->程序计数器(PC)+1

间址周期:获取操作数有效地址

以一次间址为示例:

  1. 指令寄存器(IR)或存储器数据寄存器(MDR)的指令地址码->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  2. 控制单元(CU)的读控制信号->控制总线->主存储器(MM)
  3. 主存储器(MM)的指令地址->数据总线->存储器数据寄存器(MDR)

执行周期:获取操作数

不同指令类型,获取操作数的操作不同,无统一数据流向。

中断周期:处理中断请求,保存程序断点

以在堆栈保存程序断点;先修改栈顶指针,后保存数据的进栈操作为示例:

  1. 控制单元(CU)的控制信号->堆栈顶指针(寄存器)(SP;32位:ESP)-1
  2. 堆栈顶指针(寄存器)(SP;32位:ESP)的指令地址->存储器地址寄存器(MAR)->地址总线->主存储器(MM)
  3. 控制单元(CU)的写命令->控制总线->主存储器(MM)
  4. 程序计数器(PC)的指令地址->存储器数据寄存器(MDR)->数据总线->主存储器(MM)
  5. 控制单元(CU)的中断服务程序入口地址->程序计数器(PC)

指令的执行方案

  • 单指令周期方案
  • 多指令周期方案
  • 流水线方案

数据通路的基本结构

在中央处理器(CPU)内部:

  • 总线结构(单总线、多总线)
  • 专用数据通路结构

控制器的功能

  • 从主存储器(MM)中获取一条指令,并指出下一条指令在主存储器(MM)中的地址
  • 对指令进行译码或测试,产生相应的操作控制信号,以启动规定的动作
  • 指挥并控制中央处理器(CPU)、主存储器(MM)、输入和输出设备之间的数据流动方向

控制器的分类(根据产生微操作控制信号的方式)

  • 硬布线控制器(组合逻辑控制器)
  • 微程序控制器

相同点:程序计数器(PC),指令寄存器(IR)。
不同点:确定和表示指令执行步骤的方法,产生控制各部件运行所需控制信号的方案。


控制单元(CU)的输入来源

  • 指令译码器根据指令操作码译码产生的指令信息
  • 节拍发生器根据机器周期产生的时钟周期信号
  • 程序状态字寄存器根据执行单元反馈信息存储的状态标志
  • 控制总线的控制信号。如中断请求、直接存储器访问(DMA)请求

中央处理器(CPU)的控制方式

  • 同步控制方式
  • 异步控制方式
  • 联合控制方式(大部分同步,小部分异步)

硬布线控制器设计步骤

  1. 分析指令周期中取值、间址、执行和中断周期的微操作序列
  2. 选择中央处理器(CPU)的控制方式
  3. 安排微操作序列执行时序
  4. 设计电路

其中设计电路包括:

(1)列微操作序列的操作时间表
(2)写微操作序列的最简表达式
(3)画微操作序列的电路逻辑图


微程序设计的机器指令组成

  • 一条机器指令编写成一个微程序
  • 微程序=若干微指令
  • 微指令=若干微命令/微操作
  • 微命令时微操作的控制信号,微操作是微命令的执行过程

将微指令类比指令,存在微地址、微操作码、微地址码、微周期等概念。


微程序控制器的组成

  • 微地址形成部件
  • 顺序逻辑单元
  • 控制/微存储器地址寄存器(CMAR)
  • 地址译码器
  • 控制存储器(CM)
  • 控制/微存储器数据寄存器(CMDR/μIR)

微程序控制器的工作过程

  1. 获取机器指令
  2. 获取机器指令对应微程序的入口地址
  3. 获取微指令
  4. 执行微指令
  5. 获取下一条微指令或下一条机器指令

微指令的编码/控制方式

  • 直接编方式
  • 字段直接编码方式
  • 字段间接编码方式/隐式编码方式
  • 混合编码

微指令的地址形成方式

  • 机器指令的操作码产生
  • 微指令的微地址码/下地址产生(断定方式)
  • 增量计数器法产生(自增1)
  • 分支转移产生
  • 测试网络产生
  • 硬件产生
  • 外部输入产生

微指令的格式

  • 水平型微指令
  • 垂直型微指令
  • 混合型微指令

微程序控制器的设计步骤

核心:编写微程序

  1. 分析指令周期中取值、间址、执行和中断周期的微命令/操作序列
  2. 根据微命令/操作和时钟周期设计微指令
  3. 确定微指令格式
  4. 编码微指令

微程序设计的分类

  • 静态微程序设计
  • 动态微程序设计
  • 毫微微程序设计

中断(广义中断)的分类

  • 中断(广义中断)=中断(狭义中断;外中断)+异常/例外/陷入(内中断)
  • 外中断(硬件中断)=可屏蔽中断+不可屏蔽中断
  • 内中断(不可屏蔽中断)=故障+自陷/陷阱/陷入(软件中断/程序性异常)+终止(硬件中断)

或:

  • 外中断=外设请求(如I/O操作完成)+人工干预(如用户强行终止进程)
  • 内中断=自愿中断+强迫中断
  • 自愿中断,指令中断(如系统调用时使用陷入/访管/Trap指令)
  • 强迫中断=硬件故障(如缺页)+软件中断(如整数除以0)

外中断事件

  • 输入/输出(I/O)设备处理。如键盘输入,打印机缺纸
  • 特殊事件。如用户按退出Esc键,定时器计数时间到
  • 紧急硬件故障。如电源掉电

缓存(Cache)缺失
直接存储器访问(DMA)传送结束


内中断事件

故障:

  • 地址越界
  • 非法操作码
  • 缺段或缺页
  • 溢出。如运算溢出,栈溢出
  • 整数除以0

自陷:

  • 系统调用
  • 条件自陷指令
  • 断点设置(x86机器中)
  • 单步跟踪(x86机器中)

终止:

  • 控制器错误
  • 存储器校验错误
  • 总线错误

存储保护错误


中断(广义中断)的响应过程

  1. 关中断
  2. 保存断点和程序状态
  3. 识别中断(广义中断)并转到相应的处理程序

提高中央处理器(CPU)效率的方式

  • 时间上并行:流水线技术
  • 空间上并行:超标量处理机

指令的执行过程(另一种角度:指令流水线)

  1. 取指(IF)
  2. 译码/读寄存器(ID)
  3. 执行/计算地址(EX)
  4. 访存(MEM)
  5. 写回(WB)

流水寄存器存储的信息

  • 数据通路的数据
  • 控制部件的控制信号

流水线冒险的分类和处理方式

  • 结构冒险(资源冲突)
  • 数据冒险(数据冲突):读后写相关,写后读相关,写后写相关
  • 控制冒险(控制冲突)

流水线冒险的处理方式

结构冒险(资源冲突):

  • 暂停相关指令
  • 资源重复配置

数据冒险(数据冲突):读后写相关,写后读相关,写后写相关:

  • 暂停相关指令
  • 数据旁路技术
  • 编译优化(调整指令顺序)

控制冒险(控制冲突):

  • 分支预测
  • 预取多方向的指令
  • 加快和提前形成条件码
  • 提高转移方向的猜准率

流水线的性能指标

  • 吞吐率
  • 加速比
  • 效率

流水线的分类

根据使用的硬件级别:

  • 部件功能级流水线
  • 处理器级流水线
  • 处理器间流水线

根据实现功能的个数:

  • 单功能流水线
  • 多功能流水线

根据同一时间内各流水段/功能段实现功能的连接方式:

  • 静态流水线(相同功能)
  • 动态流水线(不同功能)

根据各流水段/功能段间有无反馈信号:

  • 线性流水线(无)
  • 非线性流水线(有)

高级流水线技术

  • 超长指令字技术/静态多发射技术
  • 超标量流水线技术/动态多发射技术
  • 超流水线技术

计算机体系结构的分类(从指令、数据流数量的角度)

  • 单指令流单数据流(SISD)结构
  • 单指令流多数据流(SIMD)结构
  • 多指令流单数据流(MISD)结构
  • 多指令流多数据流(MIMD)结构

硬件多线程的实现方式

  • 粗粒度多线程
  • 细粒度多线程
  • 同时多线程(SMT)

总结

计算机组成原理的知识抽象、晦涩、不易理解并记忆,在此对“中央处理器(CPU)”一章中重点知识总结成提纲。


参考资料

  • 《2023年计算机组成原理考研复习指导》组编:王道论坛
  • 哔哩哔哩平台《王道计算机考研 计算机组成原理》视频课

作者的话

  • 感谢参考资料的作者/博主
  • 作者:夜悊
  • 版权所有,转载请注明出处,谢谢~
  • 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
  • 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
  • 文章在认识上有错误的地方, 敬请批评指正
  • 望读者们都能有所收获

“中央处理器(CPU)”学习提纲相关推荐

  1. 计算机中央的处理器由什么构成,计算机中央处理器CPU的由什么组成

    中央处理器(central processing unit,cpu)由运算器.控制器和寄存器组成,是计算机的核心,对计算机的整体性能有着决定性的影响.下面是学习啦小编给大家整理的一些有关计算机中央处理 ...

  2. 计算机中央处理器相关知识,软考程序员考点计算机硬件基础知识之中央处理器CPU...

    下面希赛小编为大家整理的软考程序员考点计算机硬件基础知识之中央处理器CPU,希望能帮助学友们.具体内容如下: 中央处理器 中央处理器(CPU,Central Processing Unit)是一块超大 ...

  3. cpu计算速度排行榜_中央处理器cpu性能排名

    CPU是什么 CPU是Central Processing Unit(中央处理器)的缩写,CPU一般由逻辑运算单元.控制单元和存储单元组成.在逻辑运算和控制单元中包括一些寄存器,这些寄存器用于CPU在 ...

  4. 微型计算机cpu组成部分是,微型计算机的中央处理器CPU由()和()两部分组成。 - 问答库...

    字长是指计算机()之间一次能够传递的数据位,位宽是CPU通过外据总线与()之间一次能够传递的数据位. 小学德育过程的基本矛盾是(). ["教育者与德育内容","教育者与德 ...

  5. 组装电脑基础知识之中央处理器CPU

    前言 本系列文章是为准备自己组装台式机的小伙伴写的关于中央处理器CPU.主板.显卡等部分的参考资料. 一.简介 中央处理器作为计算机系统的运算和控制核心,是信息处理.程序运行的最终执行单元. 二.参数 ...

  6. Go 微服务开发学习提纲

    公司的后端技术栈准备由PHP转向Go,并采用微服务架构重构老的业务,自己参考网上教程自学了一个月,已经开始具体的开发,现在把过去一个月的学习提纲整理出来,供感兴趣的同学进行参考,同时也会不断进行更新. ...

  7. “数组、矩阵与广义表”学习提纲

    文章目录 前言 数组 多维数组的存储方式 矩阵 常见的特殊矩阵 对称矩阵的压缩存储计算 三角矩阵的压缩存储计算 三对角矩阵的压缩存储计算 稀疏矩阵的压缩存储方式 广义表 广义表的属性 广义表的存储方式 ...

  8. React Native学习提纲

    React Native学习提纲 当前版本最后修订日期: 2015年10月21日 一. React.js入门基础 1.基础HTML/CSS与基础开发工具使用 - html基础 doctype.常用标签 ...

  9. 机器学习实战学习提纲

    机器学习实战学习提纲 学习目录 第一部分 分类 第1章 机器学习基础 第2章 k-近邻算法 第3章 决策树 第4章 基于概率论的分类方法:朴素贝叶斯 第5章 Logistic回归 第6章 支持向量机 ...

  10. 叶梓老师人工智能培训之强化学习与深度强化学习提纲(强化学习讲师培训)

    强化学习与深度强化学习提纲(强化学习讲师培训) 第一天 强化学习   第一课 强化学习综述 1.强化学习要解决的问题 2.强化学习方法的分类 3.强化学习方法的发展趋势 4.环境搭建实验(Gym,Te ...

最新文章

  1. 【错误总结】LaTex Warning: citation undefined
  2. 【控制】《多无人机协同控制技术》周伟老师-第5章-基于滑模控制的无人机编队运动控制策略
  3. Javascript 中 Array.push 要比 Array.concat 快 945 倍
  4. 小米 9 年,雷军开启 AIoT 与 5G 超级互联网时代!
  5. Pwn2Own 2020 曝出的Linux 内核漏洞已修复
  6. 电子表格和oracle,##请问数据库和电子表格之间有什么区别
  7. mt4 指标 涨跌幅 颜色k线_精品主图 精准K线买卖点提示通达信指标公式源码
  8. 【python】命令行参数argparse用法详解
  9. unity 企鹅砸小猪 笔记1
  10. javaw java_java与javaw区别
  11. excel中折线图怎样设置成箭头处没刻度线?
  12. 忍者必须死3突然服务器维修,《忍者必须死3》3月12日2:00停服维护公告
  13. MySQL中的竖列变横列
  14. 怎么拍照识别植物的名称呢?教大家一个识别小妙招
  15. 懂点前端——对CSS中的Padding、Border、Margin属性的理解
  16. cs1 cs2计算机课程,CS1是基本级还是CS2是基本级?
  17. PLC梯形图设计全自动洗衣机S7-1200博途以及PLC仿真实现之 4. 仿真演示过程
  18. 基于C++的民航订票系统的设计与实现
  19. ATMEGA8A-AU代理供应与方案开发
  20. lxml中检查元素是否含有子元素时提示Use specific 'len(elem)' or 'elem is not None' test instead.暨len函数和is not None的区别

热门文章

  1. Java比较时间相差几个月
  2. pingpangchat_如何解读《乒乓》这部动画?
  3. Hyper-V虚拟机联网设置
  4. 直播系统后台管理了解
  5. Linux Shell重定向Linux管道
  6. 3dmax如何拆分模型_3dmax怎么切割模型(3D模型怎么剪切)
  7. JDBC操作步骤和JDBC事务
  8. 主板CMOS怎么放电
  9. SAP ABAP 业务对象 BUS6043 AssetValueAdjust 资产折旧 BAPI 清单和相关 TCODE
  10. 如何查看本地服务器开启了哪些端口