目录

文章目录

  • 目录
  • CPU 的基本组成
    • 控制单元(控制器)
    • 运算单元(运算器)
    • 存储单元(寄存器组和片内缓存)
  • CPU 的工作原理

CPU 的基本组成

微处理器的出现得益于集成电路的发展,将控制器和运算器集成在一个芯片上,称为中央处理器(CPU)。

CPU 从逻辑上可以分为 3 个模块:

  1. 控制单元
  2. 运算单元
  3. 存储单元

这 3 部分由 CPU 的片内总线连接起来。片内总线,指计算机各芯片内部传送信息的通道。

控制单元(控制器)

控制单元是 CPU 的指挥控制中心,主要由 PC 程序计数器、指令寄存器 IR(Instruction Register)、指令译码器 ID(Instruction Decoder)和操作控制器 OC(Operation Controller)组成。控制单元工作时,PC 根据程序依次从存储器中取出一条条指令并暂存在 IR 中,通过 ID 分析指令的内容,以确定应该进行什么操作,然后通过 OC 按照确定的时序,向相应的部件发出微操作控制信号。OC 中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。


PC 程序计数器:又叫 PC 寄存器(Program Counter Register),本质是指令地址寄存器(Instruction Address Register)。存放当前正在执行的指令的地址或即将要执行的下一条指令的地址。有两种方式形成指令地址:一是顺序执行通过程序计数器 +1 得到下一条指令的地址;二是跳跃执行通过跳转类指令得到下一条指令的地址。

IR 指令寄存器(Instruction Register):区别于指令地址寄存器,是存放当前正在执行的指令。以便在指令执行的过程中控制完成一条指令的全部功能。

ID 指令译码器:对指令的操作码(OPCODE)进行解析,并产生相应的控制型号。

脉冲源及启停线路:脉冲源产生一定频率的脉冲作为 CPU 的时钟脉冲,是 CPU 工作周期的基准信号。而启停线路则保证了可靠地送出或封锁完整的时钟脉冲。

时序控制信号形成部件:在 CLK 时钟的作用下,根据当前正在执行的指令的需要,产生对应的时间控制信号,并根据被控功能部件的反馈信号调整时序控制信号。

运算单元(运算器)

运算单元是可以执行算术运算(e.g. 加减乘除)和逻辑运算(e.g. 与或非、位移、比较)。运算单元所进行的全部操作都由控制单元发出的控制信号指挥,运算单元是单纯的执行部件。

定点运算部件:由逻辑运算部件(ALU)、若干个寄存器、移位电路、计数器和门电路组成。其中 ALU 主要完成加减法算术运算及逻辑运算。
浮点运算部件:由阶码运算部件和尾数运算部件组成。阶码部分仅执行加减法运算,尾数部分则可执行加减乘除运算。

存储单元(寄存器组和片内缓存)

存储单元是 CPU 暂存数据的地方,保存着等待处理的数据,或是已经处理过的数据。CPU 访问寄存器的速度比访问主存储器的速度更快,采用寄存器,可以减少 CPU 访问内存的次数,从而提高工作速度。但因为受到芯片面积和集成度的限制,寄存器组的容量不会很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,寄存相应的数据。而通用寄存器的用途则更加广泛,并可由程序员规定其用途。

寄存器由多个触发器(Flip-Flop)或锁存器(Latches)组成的简单电路,触发器和锁存器是两种原理不同的数字电路组成的逻辑门,属于数字电路领域。N 个触发器或锁存器就可以组成一个 N Bit 的寄存器,能够保存 N 为数据。我们常说的 64 位 Intel CPU,其寄存器就是 64 位的,所以其最大的直接寻址空间就为 264 bit。需要注意的是,并不是说寄存器是 64 位的,那么该 CPU 只支持使用 264 bit 的存储器空间,因为 CPU 除了支持直接寻址方式之外,还支持基址寄存器寻址方式,实现了基于内存分页的地址寻址方式,寻址空间得到了巨大的提升。

CPU 的工作原理

控制单元在时序脉冲的作用下,从程序入口将第一条指令的地址写入 PC 程序计数器(本质是寄存器),控制单元将 PC 程序计数器的指令地址送到地址总线上,CPU 就将这个地址指向的指令读到 IR 指令寄存器,再通过 ID 指令译码器进行译码,了解指令的操作内容和操作数。对于执行指令过程中所需要用到的操作数,会将操作数的地址码也送到地址总线上,CPU 就将这个地址指向的数据读取到寄存器组中暂存起来。最后 OC 操作控制器发出控制型号到运算单元,由运算单元完成对数据的加工处理。然后 PC 程序计数器自增,周而复始,一条一条指令执行下去,直到停电为止。

将过程简化为下述步骤

  1. 取指令
  2. 分析指令
  3. 执行指令
  4. 修改指令计数器

上述步骤的执行期间还可能会穿插着

  • 控制程序和数据的输入与结果输出:根据程序的内容或人工干预,控制单元在适当的时候向输入/输出设备发出相应的指令来完成 I/O 功能。
  • 对异常情况和某些请求的处理:在特定的时刻(异常中断、输入/输出中断),由相应的部件或设备向 CPU 发出中断请求信号或 DMA 请求信号。
    • 中断请求信号:待 CPU 执行完当前指令后,响应该中断请求,中止当前执行的程序,转而执行中断程序。待中断程序执行完后,再回到原程序继续执行下去。
    • DMA 请求信号:待 CPU 完成当前机器周期的操作后,暂停工作,让出总线给 I/O 设备。待完成 I/O 设备和存储器之间的数据传输之后,CPU 从暂时中止的机器周期开始继续执行原程序的指令。

计算机组成原理 — CPU 中央处理器相关推荐

  1. 【计算机组成原理】中央处理器(一)—— CPU 的功能与基本结构

    [计算机组成原理]中央处理器(一)-- CPU 的功能与基本结构 一.现代计算机的结构 1. 运算器的基本组成 2. 控制器的基本组成 二.CPU 的功能 1. 运算器的基本结构 2. 控制器的基本结 ...

  2. 计算机组成原理 控制器.ppt,计算机组成原理(CPU的控制器部件)课件.ppt

    <计算机组成原理(CPU的控制器部件)课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理(CPU的控制器部件)课件.ppt>文档 ...

  3. 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)

    计算机组成原理CPU单周期数据通路(MIPS) [计算机组成原理]CPU:单周期数据通路(MIPS) 寄存器传送语言RTL 1)R(r)表示寄存器r的内容 2)M(address)表示主存储器地址ad ...

  4. 计算机组成原理CPU与译码器,计算机组成原理CPU的结构和功能.ppt

    计算机组成原理CPU的结构和功能 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码 ...

  5. 简单了解计算机组成原理 -- CPU与操作系统

    本文主要是从程序运行来看计算机组成原理 我们平时常说的程序, 大多指的是一个可执行文件 .exe, 当双击 .exe文件运行时, 操作系统就会读取这个文件, 将其加载到内存中, 由CPU中的寄存器读取 ...

  6. 计算机组成原理:中央处理器

    CPU:包括运算器和控制器 CPU中的主要寄存器:CPU中的寄存器用来暂时保存运算和控制过程中的中间结果,最终结果以及控制,状态信息的,它可以分为通用寄存器和专用寄存器两大类. 通用寄存器:通用寄存器 ...

  7. 概念模型计算机实验总结,计算机组成原理——cpu的简单模型实验报告

    #cpu与简单模型机 姓名:学号: 班级:计科班 实验名称:CPU与简单模型机实验性质:综合型实验时间:2018.12.1 一.实验目的 (1) 掌握一个简单 CPU 的组成原理. (2) 在掌握部件 ...

  8. 计算机组成原理 cpu图,计算机组成原理和结构图式(第三章 CPU子系统)(示例代码)...

    计算机组成原理和结构图式(第三章 CPU子系统) 1.运算部件 ?图3-39 M:存储部件(存储单元在存储部件中) R:通用寄存器组 ALU:逻辑运算部件 任务:输入/直送,加工,输出 运算器构成 输 ...

  9. 计算机组成原理cpu模型详解,计算机组成原理第九讲(CPU模型).ppt

    <计算机组成原理第九讲(CPU模型).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第九讲(CPU模型).ppt(29页珍藏版)>请在装配图网上搜索. 1.计算机组成 ...

最新文章

  1. JavaScript 中一句话的思索:this是函数在执行时所处的作用域
  2. pageadminCMS.Net Framework的安装教程
  3. Upload Picture to application server
  4. 使用selenium启动(无界面)浏览器的隐私模式
  5. CMS :内容管理系统
  6. 摩托罗拉edge S30冠军版今日开售:价格最便宜12+512G手机
  7. [转]设置修改CentOS系统时区
  8. IDA pdb 自动下载
  9. IBM 亮相HIMSS 2010 亚太区博览会
  10. 淘宝消费者行为分析实例(pandas, matplotlib, pyechart)(超详细)
  11. linux系统属于操作系统吗,linux属于什么操作系统
  12. matlab 相位解旋绕,相位解缠绕方法-南京航空航天大学学报.PDF
  13. 用opencv检测convexity defects
  14. AI算法工程师 | 02人工智能基础-Python基础(四)os模块_打开读取文件
  15. android仿华为系统相册之智能相册开发
  16. 网易云音乐PC客户端加密API逆向解析
  17. 计算机怎么样保存文件,电脑怎样保存表格文件
  18. 逆向-360逆向writeup
  19. eating的中文意思_eating是什么意思_eating的翻译_音标_读音_用法_例句_爱词霸在线词典...
  20. mysql 类型_MySQL 数据类型有哪些?

热门文章

  1. Swift 1.1语言函数参数的特殊情况本地参数名外部参数名
  2. ​Unity资源Assetmport New Asset对话框
  3. vba 当前文件名_值得收藏的VBA编程常用代码3640
  4. anaconda怎么运行python程序_第一个python程序,从安装python环境到人生第一个py脚本运行全过程...
  5. PHP支持模板,让ThinkPHP5支持模板主题(参照ThinkPHP3.2)
  6. DIY混合BCI刺激系统:SSVEP-P300 LED刺激
  7. IBM推出127量子比特处理器,超越谷歌和中科大
  8. 清华唐杰团队:一文看懂NLP预训练模型前世今生
  9. 大货车事故频发,智能物流可减少19.9%事故率
  10. NVIDIA专家实战演示,教你快速搭建基于Python的车辆信息识别系统