CPU内部主要由运算器、控制器、寄存器三大部分组成。

运算器 负责算术运算(+ - * / 基本运算和附加运算)和逻辑运算(包括 移位、逻辑测试或比较两个值等)。
控制器 负责应对所有的信息情况,调度运算器把计算做好。
寄存器 它们可用来暂存指令、数据和地址。既要对接控制器的命令,传达命令给运算器;还要帮运算器记录处理完或者将要处理的数据。

CPU组成 运算器、控制器、寄存器
1.1 控制器
控制器由程序计数器(PC,Program Counter)、指令寄存器(IR,Instruction Register)、指令译码器(ID,Instruction Decoder)、时序产生器(Timing Generator)、操作控制器(Control Unit)组成。
指令寄存器IR,是用来存放当前正在执行的的一条指令,存放的内容来自于数据寄存器(DR,Data Register)。当一条指令需要被执行时,先要把它从内存取到数据寄存器,然后再送到指令寄存器IR中。
指令译码器ID,在计算机执行一条指定的指令时,必须首先分析这条指令的操作码是什么,以决定操作的性质和方法,然后控制计算机的其他各部件协同完成指令表达的功能,这中间的分析工作就是指令译码器ID完成的。
程序计数器PC,用来存放下一条要执行指令的地址,它与存储器(内存)之间有一条直接通路。执行指令时,首先需要根据程序计数器PC中存放的指令地址,将指令由内存取到指令寄存器IR,完成“取指令”的操作。程序计数器PC本身具有自动加1的功能,可以自动给出下一条指令的地址,如此循环,执行每一条指令。
时序产生器,类似于“时间作息表”,给计算机各部分提供工作所需的时间标志,一般是利用定时脉冲的顺序和不同的脉冲间隔来实现。
操作控制器,根据指令所需完成的操作和信号,发出各种微操作命令序列,用以控制所有被控对象,完成指令的执行。
整个控制器的运行逻辑是先按照程序计数器所指出的指令地址,从内存中取出一条指令到指令寄存器IR,然后指令译码器ID对指令进行分析,之后操作控制器根据指令的功能向有关部件发出控制命令,执行控制指令的操作。完成操作之后,程序计数器加1,再重复执行上述操作。

1.2 运算器
运算器,一般最少包括3个寄存器和1个算术逻辑单元(ALU),现代计算机内部往往设有通用寄存器组。

寄存器,一种有限存储容量的高速存储部件,可用来暂存指令、数据和位址。寄存器有很多种类,一般涉及到四则运算的有3类,ACC(Accumulator)为累加器,MQ(Multiplier-Quotient Register)为乘商寄存器,X为操作数寄存器,3类寄存器在完成不同运算时,所存放的操作数类别也各不相同。

运算器
关于乘积高位和乘积低位的概念,以十进制为例,百位就是十位的高位,十位是百位的低位。两个16位数相乘,结果可能会有32位,那左半部分的16位就是乘积高位,存储到ACC中,右半部分的16位就是乘积低位,存储到MQ中。
算术逻辑单元(ALU,Arithmetic and Logic Unit),是算术运算和逻辑运算的部件。算术运算包括加、减、乘的整数运算,逻辑运算是与、或、非和异或等逻辑操作,还有移位、比较和传送等操作。
移位运算,将一个字符向左或向右移动位,或是浮动特定位,包含带符号延伸和无符号延伸,在程序中应用很广泛。

1.3 寄存器
在CPU中至少要有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)。这些寄存器用来暂存一个计算机字,其数目可以根据需要进行扩充。

数据寄存器
数据寄存器(Data Register,DR)又称数据缓冲寄存器,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。
数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中。
数据寄存器的作用是 :
(1)作为CPU和主存、外围设备之间信息传送的中转站;
(2)弥补CPU和主存、外围设备之间在操作速度上的差异;
(3)在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。

指令寄存器
指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。
当执行一条指令时,首先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。
指令包括操作码和地址码两个字段,为了执行指令,必须对操作码进行测试,识别出所要求的操作,指令译码器(Instruction Decoder,ID)就是完成这项工作的。指令译码器对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上,在时序部件定时信号的作用下,产生具体的操作控制信号。
指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码,即可向操作控制器发出具体操作的特定信号。

程序计数器
程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址。
在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。
当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。若为单字长指令,则(PC)+1àPC,若为双字长指令,则(PC)+2àPC,以此类推。
但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定,而不是像通常的那样通过顺序递增PC的内容来取得。
因此,程序计数器的结构应当是具有寄存信息和计数两种功能的结构。

地址寄存器
地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址。
由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。
当CPU和主存进行信息交换,即CPU向主存存入数据/指令或者从主存读出数据/指令时,都要使用地址寄存器和数据寄存器。
如果我们把外围设备与主存单元进行统一编址,那么,当CPU和外围设备交换信息时,我们同样要使用地址寄存器和数据寄存器。

累加寄存器
累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。
累加器的功能是:当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果。
显然,运算器中至少要有一个累加寄存器。

程序状态字寄存器
程序状态字(Program Status Word,PSW)用来表征当前运算的状态及程序的工作方式。
程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等,这些标志位通常用1位触发器来保存。
除此之外,程序状态字寄存器还用来保存中断和系统工作状态等信息,以便CPU和系统及时了解机器运行状态和程序运行状态。
因此,程序状态字寄存器是一个保存各种状态条件标志的寄存器。

注意:
MAR/MDR 在CPU中
MAR(地址寄存器)的作用是:用来存放预访问的存储单元的地址,其位数对应存储单元的个数。
MDR(数据寄存器)的作用是:是存储器数据寄存器,用来存放从存储体某单元取出的代码。
转载于https://www.cnblogs.com/gnivor/p/15679241.html,侵权联系删除。

CPU运算器、控制器、寄存器相关推荐

  1. (二)【软件设计师】计算机系统—CPU运算器控制器

    文章目录 一.CPU 1.计算机硬件基本组成(了解) 2.中央处理单元(了解) 3.CPU组成 4.例题 二.运算器 1.运算器有两个主要功能 2.简要介绍运算器中各组成部件的功能 三.控制器 1.例 ...

  2. 【系统架构设计师】计算机组成与体系结构 ① ( 计算机组成 | CPU | 存储器 | 总线 | IO 外设 | CPU 组成 | 运算器 | 控制器 )

    文章目录 一.计算机组成与体系结构 二.计算机组成结构 三.CPU 组成 1.运算器 2.控制器 一.计算机组成与体系结构 计算机组成与体系结构 对应 大学的 计算机组成原理 课程 , 主要分为 : ...

  3. CPU组成元素:运算器+控制器

    目录标题 一.计算机硬件组成概述(Introduction to Computer Hardware Components) 1.1 计算机系统的基本构架(Basic Architecture of ...

  4. Intel X86 CPU系列的寄存器

    一.32位CPU系统级寄存器和数据结构 二.寄存器分类介绍 通用寄存器:8个,分别为EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI 标志寄存器:1个,EFLAGS 控制寄存器:5个,分 ...

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

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

  6. ICH4芯片LAN控制器寄存器

    Intel手册第六章 寄存器和内存映射 ICH9的寄存器放在处理器的I/O空间里.内存空间里和在PCI配置空间里的一套PCI配置寄存器中.这章描述ICH9的I/O和内存映射在一套寄存器层上.寄存器存取 ...

  7. 微型计算机的中央控制器包括,在微型计算机中CPU里控制器的作用是( )。

    相关题目与解析 微型计算机中,运算器和控制器的总称是().A.CPUB.ROMC.主机D.逻辑器 对于微型计算机来说,()的工作速度基本上决定了计算机的运算速度.A.控制器B.运算器C.CPUD.存储 ...

  8. 微处理器件介绍:CPU/微控制器、DSP、FPGA、GPU

    简单的微处理器件有51单片机.AVR单片机等,复杂的微处理器有电脑或手机中使用的不同架构的CPU,介于二者之间的还有诸如STM32等功能强大的嵌入式微控制器芯片.当然,有数据处理功能的芯片还有应用于信 ...

  9. 驱动中如何访问CPU中的寄存器?

    如果都是在memory空间的话,CPU内部的寄存器(非CPU核的寄存器)和外设上的寄存器地位是同等的,因此映射方法也是2种:1是静态映射(S3C2410的基本上是这种),2是ioremap,注意映射的 ...

  10. 计算机内部控制器的功能是,cpu中控制器的功能是什么

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. CPU是计算机的核心部件,负责读取指令.解码指令和执行指令.CPU主要由控制器和计算器两部分组成,其中还包括缓存.数据和总线来实现 ...

最新文章

  1. pragma pack(1) and #pragma pack(push,1)
  2. 不同品牌的内存条可以混用吗_混用不同品牌护肤品的技巧
  3. djano 模型查询
  4. 需求与范围驾驭深刻反省总结
  5. java thread setname_Java Thread setName()方法
  6. 利用SQL Server 2005特性删除表中重复数据
  7. [css] 如何将元素的所有css属性恢复为初始化状态?
  8. 前端学习(619):变量的小案例二
  9. 吉林大学计算机英语成绩,吉林大学复试出结果,初试分差84分,复试成绩却相差无几!...
  10. python实现共空间模式CSP
  11. 求两条轨迹间的hausdorff距离_「中考专题」瓜豆原理|第二讲 线段型路径轨迹...
  12. java匹配机制_Java Spring:需要通配符@RequestMapping来匹配所有BUT / images / *以及对原始URL的访问权限...
  13. 第1章-导言-知识点
  14. CodeforcesRound#498 (Div.3)E题Military Problem
  15. 经典的同态滤波算法的优化及其应用参数配置
  16. 读书百客:《陋室铭》赏析
  17. 解决minicom串口被锁Device /dev/ttyS? is locked
  18. show和shown区别
  19. MySql新增、修改、删除表字段、字段数据类型、长度等(附带各种实际案例语句)
  20. L3-020 至多删三个字符 (30 分)

热门文章

  1. LAMP+haproxy+varnish实现网站访问的动静分离及静态资源缓存
  2. [paper]Defense against Adversarial Attacks Using High-Level Representation Guided Denoiser
  3. 如何同步公众号内容到头条自媒体?
  4. ipv6的 bind dns 正向解析与反向解析
  5. 2008,AMD发展史上的一个分水岭
  6. DBSCAN算法原理分析
  7. 卷积神经网络残差计算
  8. 佟年计算机大赛,佟年的人设是什么?
  9. 问题 G: LZY的计算器
  10. oracle表空间配额(quota)与UNLIMITED TABLESPACE系统权限