计算机组成原理(4)-中央处理器CPU

早期CPU由运算器和控制器组成,称为中央处理机。随着ULSI技术的发展,CPU芯片外部增加了一些逻辑功能部件,CPU越来越复杂,因此CPU基本部分有了运算器、cache、控制器三大部分,称为中央处理器。 

CPU具有的功能

指令控制:由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。

操作控制: CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应部件,从而控制这些部件按指令的要求进行动作。

时间控制:对各种操作实施时间上的定时。

数据加工:对数据进行算术运算和逻辑运算处理。

CPU的基本组成

控制器:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。

控制器的功能:

(1)从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置。

(2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。比如一次数据cache的读/写操作,一个算术逻辑运算操作,或一个输入/输出操作。

(3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向。

运算器:算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器DR和状态条件寄存器PSW组成。

运算器的功能:

(1)执行所有的算术运算。

(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。

 

CPU的结构

CPU中的主要寄存器

(1)数据缓冲寄存器(DR)

数据缓冲寄存器用来暂时存放ALU的运算结果,或由数据存储器读出的一个数据字,或来自外部接口的一个数据字。缓冲寄存器的作用是:

1.作为ALU运算结果和通用寄存器之间信息传送中时间上的缓冲;

2.补偿CPU和内存、外围设备之间在操作速度上的差别。

(2)指令寄存器(IR)

指令寄存器用来保存当前正在执行的一条指令。

1.当执行一条指令时,先把它从指令cache存储器(简称指存)读出,然后再传送至指令寄存器。

2.对操作码进行测试,以便识别所要求的操作。(指令译码器的工作)指令寄存器中操作码字段的输出就hi指令译码器的输入。

3.操作码一经译码之后,即可向操作控制器发出具体操作的特定信号。

(3)程序计数器(PC)

为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址

1.程序执行之前,必须将它的起始地址(第一条指令所在的指存单元地址)送入PC,因此PC的内容即是从指存提取的第一条指令的地址。

2.当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。

3.由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1.

(4)数据地址寄存器(AR)

用来保存当前CPU所访问的数据cache存储器中(简称数存)单元的地址。

1.作用:由于要对存储器阵列进行地址译码,所以必须使用地址寄存器来保持地址信息,直到一次读/写操作完成为止。

2.信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位脉冲输入端对应控制信号。(结构和数据缓冲寄存器、指令寄存器不一样)

3.在控制信号作用下,瞬时地将信息打入寄存器。

(5)通用寄存器(R0~R3)

当算术逻辑单元(ALU)执行算术或逻辑运算时,为ALU提供一个工作区。

例如:在执行一次假发运算时,选择两个操作数(分别放在两个寄存器)相加,所得的结果送回其中一个寄存器(如R2)中,而R2中原有的内容即被替换。

在众多通用寄存器中,其中任何一个可存放源操作数,也可存放结果操作数。

(6)状态字寄存器(PSW)

功能:

1.保存由算术指令逻辑指令运算或测试结果建立的各种条件代码。

如:运算结果进位状态(C),运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N)。这些标志通常为1位触发器保存。

2.保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。

指令周期

指令周期:取出一条指令并执行这条指令的时间。

单周期:在一个CPU周期中完成取指和执行操作(少数指令可实现)。

多周期:大多数指令需要在多个CPU周期中完成指令周期的全部操作。

五条基本指令

一、MOV指令(传送指令,RR型)

MOV RO,R1

MOV执行(R1)->R0

MOV取指周期

1.程序计数器PC中装入第一条指令地址101(八进制);

2.PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令;

3.从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR

4.程序计数器内容加1,变成102,为取下一条指令做好准备。

5.指令寄存器中的操作吗(OP)被译码;

6.CPU识别出是MOV指令。至此,取指周期即告结束。

MOV执行周期

1.操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器;

2.OC送出控制信号到ALU,指定ALU做传送操作;

3.OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。注意,任何时候DBUS上只能有一个数据。

4.OC送出控制信号,将DBUS上的数据,入到数据缓冲寄存器DR(10);

5.OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变为10.至此,MOV指令执行结束。

二、LAD指令(取数指令,RS型

LAD R1,6

LAD从数存6号单元取数(100)->R1

LAD取指周期

步骤和MOV取指周期相同。

LAD执行周期

1.操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上;

2.OC发出操作命令,将地址码6装入数存地址寄存器AR;

3.OC发出读命令,将数存6号单元中的数100读出到DBUS上;

4.OC发出命令,将DBUS上的数据100装入缓冲寄存器DR;

5.OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉。至此,LAD指令执行周期结束。

注意,数据总线DBUS上分时进行了地址传送和数据传送,所以需要2个CPU周期。

ADD指令(加法指令,RR型)

ADD R1,R2

ADD执行(R1)+(R2)->R2,结果为(R2)=120

ADD取指周期

步骤和MOV取指周期相同。

ADD执行周期

1.操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器;

2.OC送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作;

3.OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上;

4.OC送出控制命令。将DBUS上数据打入缓冲寄存器DR;ALU产生的进位信号保存状态字寄存器在PS中;

5.OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。至此,ADD指令执行周期结束。

STO指令(存数指令,RS型

STO R2,(R3)

STO用(R3)间接寻址,(R2)=120写入数存30号单元

STO取指周期

步骤和MOV取指周期相同。

STO执行周期

1.操作控制器OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元;

2.OC发出操作命令,打开通用寄存器输出三态门(不经过AU以节省时间),将地址30放到DBUS上;

3.OC发出操作命令,将地址30打入AR,并进行数存地址译码;

4.OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据;

5.OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上;

6.OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉。至此,STO指令执行周期结束。

注意,DBUS是单总线结构,先送地址(30),后送数据(120),必须分时传送。

JMP指令(转移指令)

无条件转移指令,用来改变程序的执行顺序。

JMP 101

JMP改变程序执行顺序到101号单元

JMP取指周期

步骤和MOV取指周期相同。

JMP执行周期

1.OC发生操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上;

2.OC发出操作控制命令,将DBUS上的地址码101打入到程序计数器PC中,PC中的原先内容106被更换。于是下一条指令不是从106号单元取出,而是转移到101号单元取出。至此,JMP指令执行周期结束。

小结:

所有指令的取指周期是完全相同的,而且是一个CPU周期。但是指令的执行周期,由于各条指令的功能不同,所用的CPU是各个不相同的。

其中MOV、ADD、JMP指令是一个CPU周期;LAD和STO指令是两个CPU周期。

 

  • 104
    点赞
  • 483
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值