CPU的结构和功能

 

 

CPU的功能

 

对于冯·诺依曼结构的计算机而言,一旦程序进入存储器后,就可由计算机自动完成取指令和执行指令的任务,控制器就是专用于完成此项工作的,它负责协调并控制计算机各部件执行程序的指令序列,其基本功能是取指令、分析指令和执行指令。

 

1.取指令

控制器必须具备能自动地从存储器中取出指令的功能。为此,要求控制器能自动形成指令的地址,并能发出取指令的命令,将对应此地址的指令取到控制器中。第一条指令的地址可以人为指定,也可由系统设定。

2.分析指令

分析指令包括两部分内容:其一,分析此指令要完成什么操作,即控制器需发出什么操作命令;其二,分析参与这次操作的操作数地址,即操作数的有效地址。

3.执行指令

执行指令就是根据分析指令产生的“操作命令”和“操作数地址”的要求,形成操作控制信号序列(不同的指令有不同的操作控制信号序列),通过对运算器、存储器以及I/O设备的操作,执行每条指令。

此外,控制器还必须能控制程序的输入和运算结果的输出(即控制主机与I/O设备交换信息)以及对总线的管理,甚至能处理机器运行过程中出现的异常情况(如掉电)和特殊请求(如打印机请求打印一行字符),即处理中断的能力。

总之,CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令所需的控制命令(称操作控制)、对各种操作加以时间上的控制(称时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。

 

 

 

 

CPU的寄存器

CPU中的寄存器大致可分为两类:一类属于用用户可见寄存器,用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而减少对主存的访问次数;另一类属于控制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。

1.用户可见寄存器

通常CPU执行机器语言访问的寄存器为用户可见寄存器,按其特征又可分为以下几类:

(1)通用寄存器

通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种建起方式所需的寄存器。例如,基址寻址所需的基址寄存器、变址寻址所需的变址寄存器和堆栈寻址所需的栈指针,都可用通用寄存器代替。

(2)数据寄存器

数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围,有些机器允许使用两个连读的寄存器存放双倍字长的值。还有些机器的数据寄存器只能用于保存数据,不能用于操作数地址的计算

(3)地址寄存器

地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式,如用基址寻址的段指针(存放基地址)、用于变址寻址的变址寄存器和用于堆栈的栈指针。地址寄存器的位数必须足够长,以满足最大地址范围。

(4)条件码寄存器

2.控制和状态寄存器

CPU中有一类寄存器用于控制CPU的操作或运算。在一些机器里,大部分这类寄存器对用户是透明的。如以下四种寄存器在指令执行过程中起重要作用。

(1)MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。

(2)MDR:存储器数据寄存器,用于存放欲存入存储器中数据或最近从存储器中读出的数据。

(3)PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。

(4)IR:指令寄存器,存放当前欲执行的指令。

 

 

 

 

 

 

指令周期

 

指令周期的基本概念

CPU每取出并执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间。

CPU采用中断方式实现主机与I/O设备交换信息时,CPU在每条指令执行阶段结束前,都要发中断查询信号,以检测是否有某个I/O设备提出中断请求。如果有请求,CPU则要进入中断响应阶段,又称中断周期。在此阶段,CPU必须将程序断点保存到存储器中。这样,一个完整的指令周期应包括取指、间址、执行和中断4个子周期。

 

 

 

 

 

指令流水

为了提高访存速度,一方面要提高存储芯片的性能,另一方面可以从体系结构上,如采用多体、Cache等分级存储措施来提高存储器的性能/价格比。为了提高主机与I/O交换信息的速度,可以采用DMA方式,也可以采用多总线结构,将速度不一的I/O分别挂到不同带宽的总线上,以解决总线的瓶颈问题。为了提高运算速度,可以采用高速芯片和快速进位链,以及改进算法等措施。为了进一步提高处理机速度,通常可从提高器件的性能和改进系统的结构,开发系统的并行性两方面入手。

(1)提高器件的性能

提高器件的性能一直是提高整机性能的重要途径,但是由于半导体器件的集成度越来越接近物理极限,使器件速度的提高越来越慢。

(2)改进系统的结构,开发系统的并行性。

所谓并行,包含同时性和并发性两个方面。前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段发生。也就是说,在同一时刻或同一时间段内两种或两种以上性质相同或不同的功能,只要在时间上互相重叠,就存在并行性。

并行性体现在不同等级上。通常分为4个级别:作业级或程序级、任务级或进程级、指令之间级和指令内部级。前两级为粗粒度,又称为过程级;后两级为细粒度,又称指令级。粗粒度并行性一般用算法(软件)实现,细粒度并行性一般用硬件实现。从计算机体系上看,粗粒度并行性是在多个处理机上分别运行多个进程 ,由多台处理机合作完成一个程序;细粒度并行性是指在处理机的操作级和指令级的并行性,其中的指令的流水作业就是一项重要技术。

 

 

 

 

 

指令流水原理

指令流水类似于工厂的装配线,装配线利用了产品在装配的不同阶段其装配过程不同这一特点,使不同产品处于不同的装配段上,即每个装配段同时对不同产品进行加工,这样可大大提高装配效率。将这种装配产生线的思想 用到指令的执行上,就引出了指令流水的概念。

完成一条指令实际上也可分为许多阶段。为了简单起见,把指令的处理过程分为取指令和执行指令两个阶段,在不采用流水技术的计算机里,取指令和执行指令是周而复始的重复出现,各条指令按顺序串行执行的。进一步分析发现,这种顺序执行虽然控制简单,但执行各部件的利用率不高,如指令部件工作时,执行部件基本空闲,而执行部件工作时,指令部件基本空闲。如果指令执行不访问主存,则完全可以利用这段时间取下一条指令,这样使取下一条指令的操作和执行当前指令的操作同时进行,这就是两条指令的重叠,即指令的二级流水。

 

 

 

影响流水线性能的因素

要使流水线具有良好的性能,必须设法使流水线能畅通流动,即必须做到充分流水,不发生断流。但通常由于在流水过程中会出现三种相关,使流水不断流实现起来很困难,这三种相关是结构相关、数据相关和控制相关。

结构相关是当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。

数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生。

控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值