[TOC]
1.CPU的功能
功能:对指令流和数据流组成的信息流在时间、空间上实现正常控制
2.CPU的组成
2.1 控制器
2.1.1 控制器的功能
- 取指令
- 指令译码
- 控制指令执行
- 控制程序和数据的输入与结果溢出
- 处理异常情况和请求
2.1.2 控制器的组成
指令部件
指令部件包括程序计数器、指令寄存器、指令译码器和地址形成不见
地址形成部件:根据指令的不同寻址方式,形成操作数的有效地址
时序部件
时序部件包括脉冲源、启停控制逻辑和节拍信号发生器
启停控制逻辑:只有通过启停控制逻辑将计算机启动后,主时钟脉冲才允许进入,并启动节拍信号发生器 节拍信号发生器:经过节拍信号发生器后产生出各个机器周期中的节拍信号,用以控制计算机完成每一步微操作微操作信号发生器
微操作:最基本的不可分割的操作称为微操作。微操作信号发生器也称控制单元CU。不同的机器指令具有不同的微操作序列
中断控制逻辑
用来控制中断处理的硬件逻辑
2.1.3 控制器的分类
- 组合逻辑控制器(硬部件控制器)
- 优点:速度快
- 缺点:调试、维修较为困难,难以实现自动化;一旦控制部件构成后,要想增加新的控制功能几乎不可能
- 存储逻辑控制器(微程序控制器)
- 优点:具有设计规整、调试、维修、更改以及扩充指令方便,易于实现自动化设计
- 缺点:指令的执行速度比组合逻辑控制器慢
- 组合逻辑和存储逻辑结合型控制器(可编程逻辑阵列控制器,PLA)
- PLA控制器克服了两者的缺点
控制器的实现方式可以不同,但是产生微操作控制信号的功能是相同的
产生微操作控制的条件都是:时序信号,操作码译码信号和被控制部件的反馈信号等综合而成
2.2 运算器
- 执行所有的算术运算
- 执行所有的逻辑运算,并进行逻辑测试
3.CPU的五个专用寄存器
- 指令寄存器:存放当前计算机正在执行的指令,直至该指令被执行完毕
- 程序计数器:读取指令的地址,或以成秀计数器的内容为基准计算操作数地址。当现行指令执行完毕时,通常由程序计数器提供下一条要执行的指令的地址
- 程序状态字寄存器:存放程序状态字。程序状态字的各位表征算数或逻辑指令运行或测试的结果建立的各种状态和条件信息以及系统状态和中断信息等
- 存储器地址寄存器:保存当前CPU所访问的主存储器单元地址
- 存储器数据寄存器:用来暂时存放由主存储器读出的一条指令或一个数据字
4.时序系统与控制方式
4.1 时序系统
指令周期
读取并执行一条指令所需的时间称为一个指令周期 不同指令的指令周期是不完全相同的机器周期
机器周期又称CPU周期;一般把一个指令周期划分为若干个机器周期,每个机器周期完成一个基本操作
一般CPU周期有:取指周期、取数周期、执行周期和中断周期等
取指周期完成三件事:从内存中取出指令;将PC的内容递增,为取下一个指令做准备;对指令操作码进行译码或测试,以确定执行哪一些微操作- 非访内指令:
- 一般需要2个CPU周期:取指周期、执行周期
- 直接访内指令
- 一般需要3个CPU周期
- 第一个CPU周期取出指令
- 第二个CPU周期将操作数地址送往地址寄存器并完成地址译码,得到操作数
- 第三个CPU周期取出操作数并进行运算
- 一般需要3个CPU周期
- 间接访内指令
- 一般需要4个CPU周期
- 第一个CPU周期取出指令
- 第二个CPU周期将操作数地址送往地址寄存器并完成地址译码,得到操作数地址
- 第三个CPU周期取出操作数地址,再进行地址译码,得到操作数
- 第四个CPU周期去除操作数并进行运算
- 一般需要4个CPU周期
- 程序控制指令
- 一般需要2个CPU周期
- 第一个CPU周期取出指令
- 第二个CPU周期向PC送一个目标地址,使下一条指令不再是这一条指令的下一条指令,实现指令执行顺序的跳转
- 一般需要2个CPU周期
- 非访内指令:
时钟周期(节拍)
把一个机器周期分成若干相等的时间段,每一个时间段内完成一步操作,这个时间段即为时间周期,又称节拍
脉冲
有的操作还需要严格的定时脉冲,以确定在哪一时刻写入
4.2 控制方式
同步控制方式
同步控制方式中,每个周期状态中产生统一数目的节拍电位和工作脉冲
- 优点:同步控制方式设计简单,操作控制容易实现。
- 缺点:会有较多的空闲节拍和空闲工作脉冲,形成较大数量的时间浪费,影响和降低执行执行的速度
异步控制方式
按每个指令、操作的时间需要而占用时间的一种控制方式。
通常由前一操作执行完毕时产生的结束信号,或由下一操作的执行部件发出就绪信号作为下一操作的起始信号
- 优点:效率高
- 缺点:硬件实现复杂
5. 指令运行基本过程
取指令与公共操作
取指令阶段完成的任务是将现行指令从主存储器中取出送到指令寄存器IR中
- 将程序计数器PC提供的地址送往存储器地址寄存器MAR,并送地址总线AB
- 向存储器发读命令
- 将读取的现行指令通过数据总线DB送到存储器数据寄存器MDR,然后再送到指令寄存器中,用符号表示为:IR->((PC))
- 将PC的内容递增,为取下一条指令做好准备