CPU的功能和组成
中央处理器称为CPU。 所谓中央处理器是控制计算机来自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU。
CPU的功能
(1)指令控制:保证机器按规定的顺序执行指令
(2)操作控制:CPU管理并产生由内存取出的每条指令的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动
(3)时间控制:对各种操作实施时间上的控制
(4)数据加工:对数据进行算术运算和逻辑运算处理。完成数据的加工处理,这是CPU的根本的任务。
CPU的任务:
(1)取指令:CPU必须从存储器(寄存器、cache、主存)读取指令
(2)解释指令:必须对指令进行译码,以确定所要求的动作
(3)取数据:指令的执行可能要求从存储器或I/O模块读取数据
(4)处理数据:指令的执行可能要求对数据完成某些算术或逻辑运算
(5)写数据:执行的结果可能要求写数据到存储器或I/O模块
CPU的组成:
![](http://p.ananas.chaoxing.com/star3/origin/79c64f6b2a1b28a252df18017cb7ad5b.png)
图6.1-1 CPU的内部结构
控制器:有程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,他是发布命令的决策机构,即完成协调和智慧整个计算机系统的操作。 控制器的主要功能有:
(1)从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置。
(2)对指令进行译码或测试,并产生相应的操作控制型号,以便启动规定的动作。
(3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向。
运算器:
有算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器MDR和条件状态寄存器PSW组成。是数据加工处理部件。主要功能:
(1)执行所有的算术运算;
(2)执行所有的逻辑运算,并进行逻辑测试。
CPU中的主要寄存器
寄存器分为两类:
(1)用户可见寄存器(user-visibleregister):允许机器语言或汇编语言的编程人员通过优化寄存器的使用而减少对主存的访问。
通用寄存器(general-purposeregister):可被程序员指派各种用途。即任何通用寄存器能为任何操作码容纳操作数。
数据寄存器(dataregister):仅可用于保持数据而不能用于操作数地址的计算。
地址寄存器(addressregister):可以是自身有某些通用性,或是专用于某种具体的寻址方式,如:段指针、变址寄存器等。
标志寄存器(状态寄存器,flag register): 用于保存状态标志(conditioncode)的寄存器。
(2)控制和状态寄存器(controland status register):由控制器来控制CPU的操作,并由拥有特权的操作系统程序来控制程序的执行。在大多数机器上,是用户不可见的。某些在控制或操作系统模式下执行的机器指令是用户可见的。
程序计数器(PC):存放下一条要待取指令的地址;
指令寄存器(IR):存有最近取来的指令;
存储器地址寄存器(MAR):存有存储器位置的地址。
存储器数据寄存器(MDR):存有将被写入存储器的数据字或最近从存储器读出的字。
![](http://p.ananas.chaoxing.com/star3/origin/d5c30dfa97223e8d437a3239564eed7e.png)
图6.1-2 CPU模型
主要技术参数
(1)字长:是指在单位时间内同时处理的二进制数据的位数。CPU按照其处理信息的字长可以分为:8位CPU、16位CPU、32位CPU和64位CPU。
(2)主频(内部工作频率):表示在CPU内数字脉冲信号震荡的速度,与CPU实际的预案算能并没有直接关系。主频的倒数是时钟周期,这是CPU种最小的时间元素。 每个动作至少需要一个时钟周期。
(3)外部工作频率:是主板为CPU提供的基准时钟频率。
(4)前端总线频率:前端总线(Front Side Bus),通常FSB表示, 它是CPU和外界交换数据的最主要通道,主要连接主存、显卡等数据吞吐率高的部件,因此前端总线的数据传输能力对计算机整体性能作用很大。
(5)QPI数据传输速率:快速通道互联(Quick Path Interconnect, QPI),是一种取代FSB的基于包传输的高速点到点连接技术。一个基本的QPI数据包是80位。
(6)工作电压:是指CPU正常工作所需的电压。目前台式机的电压低于3V。 笔记本电脑的电压为1.2V。
(7)地址总线宽度:地址总线宽度决定了CPU可以访问的最大的物理地址空间,简单地说就是CPU到底能够使用多大容量的主存。
(8)数据总线宽度:数据总线宽度决定了CPU与外部cache、主存以及输入输出设备之间进行一次数据传输的信息量。
数据总线和地址总线是相互独立的,数据总线宽度指明了芯片的信息传递能力,而地址总线宽度说明了芯片可以访问多少个主存单元。