第2章 微处理器与总线
2.1 复习笔记
一、微处理器概述
微处理器内部总体上由3个部分组成,即运算器、控制器和寄存器组,寄存器组又可视为运算器部件中的一部分。
1运算器
运算器由算术逻辑单元ALU(Arithmetic Logical Unit)、通用或专用寄存器组及内部总线3个部分组成,核心功能是实现数据的算术运算和逻辑运算。运算器又称算术逻辑运算单元。一位算术逻辑运算单元的结构示意图如图2-1所示。
图2-1 一位算术逻辑运算单元结构示意图
2控制器
(1)指令控制
计算机的工作过程是连续执行指令的过程,一般按照顺序一条条地取出并执行指令,只有在碰到转移类指令时才会改变顺序。控制器要能根据指令所在的地址按顺序或在遇到转移指令时按照转移地址取出指令,分析指令(指令译码),传送必要的操作数,并在指令执行结束后存放运算结果。
(2)时序控制
指令的执行是在时钟信号的严格控制下进行的,一条指令的执行时间称为指令周期,不同指令的指令周期中所包含的机器周期数是不相同的。
(3)操作控制
控制器的内部主要由以下几个部分组成:
①程序计数器PC(Programming Counter)。程序计数器用来存放下一条要执行指令在存储器中的地址。
②指令寄存器IR(Instruction Register)。指令寄存器用于存放从存储器中取出的待执行的指令。
③指令译码器ID(Instruction Decoder)。指令寄存器中待执行的指令须经过“翻译”,即指令译码,这是指令译码器的主要功能。
④时序控制部件。时序控制部件产生计算机工作中所需的各种时序信号。
⑤微操作控制部件。这部分是控制器的主体。在计算机中,一条指令的功能是通过按一定顺序执行一系列基本操作(微操作)来完成的,同时执行的一组微操作称为微指令。微操作控制部件用于产生与各条指令相对应的微操作。它根据当前正在执行的指令,在指令的各机器周期的各个节拍内产生相应的微操作控制信号,从而控制整个系统各部件的工作。
二、8088/8086微处理器
在硬件结构上,8088与存储器和I/O接口进行数据传输的外部数据总线宽度为8位,而8086的数据总线宽度为16位。
18088/8086CPU的特点
(1)8088/8086的指令流水线
8088/8086将指令流水线分配给CPU内两个独立的部件:执行单元(Execution Unit,EU)和总线接口单元(Bus Interface Unit,BIU)。EU负责分析指令(指令译码)和执行指令,BIU负责取指令、取操作数和写结果。
指令执行有顺序执行和并行执行两种方式。采用并行执行方式所花费的时间及对总线的利用率都较顺序执行方式有较大的提高。
(2)内存的分段管理技术
8088/8086采用了分段管理的方法,将内存地址空间分为多个逻辑段,再为逻辑段设置段地址,所以内存每个单元的地址都由两部分组成,即段地址和段内偏移地址。
(3)支持多处理器系统
8086/8088具有最小和最大两种工作模式以及内置的多任务处理能力,可通过模式选择引脚进行选择。最小模式又称单处理器模式;最大模式又称多处理器模式。
28088CPU的外部引脚及其功能
8088和8086CPU都是具有40条引出线的集成电路芯片,采用双列直插式封装。8088的许多引脚具有双重功能,采用分时复用方式工作。8088的最大和最小两种工作模式可以通过在输入引脚加上不同的电平来进行选择。当时,8088工作在最小模式,当时,8088工作在最大模式。
(1)最小模式下的引脚
A16~A19/S3~S6:地址、状态复用的引脚,三态输出。
A8~A15:中8位地址信号,三态输出。
AD0~AD7:地址、数据分时复用的双向信号线,三态。当ALE=1时,这些引脚上传输的是地址信号;当时,这些引脚上传输的是数据信号。
IO/:输入/输出/存储器控制信号,三态。若此引脚输出为低电平,访问存储器;若输出为高电平,则是访问I/O端口。
:写信号输出,三态。此引脚输出为低电平时,表示CPU正在对存储器或I/O端口进行写操作。
DT/:数据传送方向控制信号,三态。高电平时,CPU向存储器或I/O端口发送数据;低电平时,CPU从存储器或I/O接口接收数据。
:数据允许信号,三态。该信号有效时,表示数据总线上具有有效数据。常用作数据总线驱动器的片选信号。
ALE:地址锁存信号,三态输出,高电平有效。高电平时CPU地址线上有有效地址。
:读选通信号,三态输出,低电平有效。当其有效时,表示CPU正在对存储器或I/O接口进行读操作。
READY:外部同步控制输入信号,高电平有效。当其有效时,表示存储器或I/O设备已准备好,CPU可以进行数据传送。低电平时表明存储器或I/O设备没有准备好。
INTR:可屏蔽中断请求输入信号,高电平有效。CPU在每条指令的最后一个周期采样该信号,以决定是否进入中断响应周期。
:测试信号输入引脚,低电平有效。
NMI:非屏蔽中断请求输入信号,上升沿触发。这个引脚上的中断请求信号不能用软件屏蔽,CPU在当前指令执行结束后就进入中断过程。
RESET:系统复位输入信号,高电平有效。为使CPU完成内部复位过程,该信号至少要在4个时钟周期内保持有效。
:中断响应信号输出,低电平有效。是CPU对中断请求信号INTR的响应。
HOLD:总线保持请求信号输入,高电平有效。
HLDA:总线保持响应信号输出,高电平有效。是CPU对HOLD请求的响应信号。
(2)最大模式下的引脚
当加上低电平时,8088CPU工作在最大模式下。
①:总线周期状态信号,低电平有效,三态输出。
②、:总线请求/总线响应信号引脚。具有双向功能,既是总线请求输入也是总线响应输出。比优先级高。
③:总线封锁信号输出,低电平有效。该信号有效时,CPU锁定总线,不允许其他总线控制设备申请使用系统总线。
④QS1、QS0:指令队列状态输出。根据该状态信号,从外部可以跟踪CPU内部的指令队列。
⑤HIGH:在最大模式下始终为高电平输出。
38088/8086CPU的功能结构
(1)8088/8086CPU的内部结构
由执行单元EU和总线接口单元BIU两大部分构成。图2-2给出了8088微处理器的内部结构框图。
图2-2 8088处理器内部结构框图
执行单元EU的主要功能是:执行指令、分析指令、暂存中间运算结果并保留结果的特征。它由算术逻辑单元(运算器)ALU、通用寄存器、标志寄存器和EU控制电路组成。
总线接口单元BIU负责CPU与存储器、I/O接口之间的信息传送。它由段寄存器、指令指针寄存器、指令队列、地址加法器以及总线控制逻辑组成。
指令队列的存在使8086/8088的EU和BIU并行工作。
8086/8088采用了将地址空间分段的方法,即将220(1MB)的地址空间分为若干个64KB的段,然后用段基址加上段内偏移来访问物理存储器。
(2)8088/8086CPU的内部寄存器
8086/8088CPU内部共有14个16位寄存器。按其功能可分为三大类,即通用寄存器(8个)、段寄存器(4个)和控制寄存器(2个)。
①通用寄存器
通用寄存器包括数据寄存器、地址指针寄存器和变址寄存器。
a.数据寄存器AX、BX、CX、DX。
AX(Accumulator):累加器,常用于存放算术逻辑运算中的操作数。
BX(Base):基址寄存器,常用来存放访问内存时的基地址。
CX(Count):计数寄存器,在循环和串操作指令中用作计数器。
DX(Data):数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口的地址。
b.地址指针寄存器SP、BP。
SP(Stack Pointer):堆栈指针寄存器。
BP(Base Pointer):基址指针寄存器。
作为通用寄存器,SP和BP也可以存放数据。但更经常更重要的用途是存放内存单元的偏移地址,特别是SP在访问堆栈时作为指向堆栈栈顶的指针。
c.变址寄存器SI、DI。
SI(Source Index)称为源变址寄存器。
DI(Destination Index)称为目的变址寄存器。
②段寄存器CS、SS、DS、ES
CS(Code Segment)称为代码段寄存器,SS(Stack Segment)称为堆栈段寄存器,DS(Data Segment)称为数据段寄存器,ES(Extra Segment)称为附加数据段寄存器。段寄存器用于存放段基址,即段起始地址的高16位。
③控制寄存器IP、FLAGS
IP(Instruction Pointer)称为指令指针寄存器,用以存放预取指令的偏移地址。
FLAGS称为标志寄存器或程序状态字(PSW),它是16位寄存器,但只使用其中的9位。
48088/8086CPU的存储器组织
(1)物理地址与逻辑地址
8088/8086有20条地址线,可寻址的最大物理内存容量为1MB(220),其中任何一个内存单元都有一个20位的地址,称为内存单元的物理地址。
段基地址和段内偏移地址又称为逻辑地址。20位的物理地址与逻辑地址的关系如下:
物理地址=段基址×16+段内偏移
8086/8088CPU中有4个段寄存器,同时可以访问4个存储段。分段(段加偏移)寻址所带来的好处是允许程序在存储器内重定位(浮动),允许实模式下编写的程序在保护模式下运行。可重定位程序是一个不加修改就可以在任何存储区域中运行的程序。
(2)段寄存器的使用
在存储器中,信息按特征可分为程序代码、数据、堆栈等,存储器可以相应地划分为:程序段——用来存放程序的指令代码;数据段及附加数据段——用来存放数据和运算结果;堆栈段——用来传递参数、保存数据和状态信息。
8088/8086对访问不同内存段所使用的段寄存器和相应的偏移地址的来源有一些具体约定,如表2-1所示。
表2-1 8088/8086对段寄存器使用的约定
根据表2-1,访问存储器时,其段地址可以由“默认”的段寄存器提供,也可以由“指定”的段寄存器提供。1、2、4这3种类型的内存访问只能用默认的段寄存器,即取指令一定要使用CS;堆栈操作一定要使用SS;串操作指令的目的段基地址一定要用ES。
DS、ES和SS要用传送指令来进行设置,但在用户程序中不允许设置CS,CS一般由操作系统进行设置。
58088/8086CPU的工作时序
时序可分为两种不同的粒度:时钟周期和总线周期。一条指令的执行需要若干个总线周期才能完成,而一个总线周期又由若干个时钟周期构成。每个时钟脉冲的持续时间就称为一个时钟周期。一个总线周期包括多个时钟周期。
8088读一个总线周期如图2-3所示。
图2-3 8088读-总线周期
正常的8088总线周期,读或写,都由至少4个时钟周期(T1~T4)组成。在T1期间,地址信号线A15~A8、地址/状态复用信号线A19/S6~A16/S3和地址/数据复用信号线AD7~AD0分别输出地址A15~A8、A19~A16和A7~A0,同时输出地址锁存允许信号ALE。外部电路利用ALE将地址信号锁存到地址锁存器中,即在锁存器输出端得到完整的20位地址信号。之后,就可利用IO/、、等有关控制信号完成对内存或外设的读写操作。在写总线周期中,CPU从T2开始把数据送到总线上并维持到T4。在读总线周期中,CPU在T4开始时刻读入总线上的数据。CPU的读()或写()是在T4开始时刻(或、信号的后沿)进行的,这时数据线上的数据已经到达稳定状态。
三、总线
采用总线结构在系统设计、生产、使用和维护上的优越性:
(1)便于采用模块结构设计方法,简化系统设计。
(2)标准总线可以得到多个厂商的广泛支持,便于生产与之兼容的硬件板卡和软件。
(3)模块结构方式便于系统的扩充和升级。
(4)便于故障诊断和维修,同时也降低了成本。
1概述
(1)总线的概念
总线是一组信号线的集合,是计算机系统各部件之间传输地址、数据和控制信息的公共通路。
(2)总线的分类
①按传送信息的类型划分
a.数据总线(DB,Data Bus)。数据总线是计算机系统内各部件之间进行数据传送的路径,其传送方向是双向的。
b.地址总线(AB,Address Bus)。地址总线用于传送地址信息,即这类总线上所传送的一组二进制0或1表示的是某一个内存单元地址或I/O端口地址,其传送方向是单向的。
c.控制总线(CB,Control Bus)。控制总线用于传送各种控制信号,以实现对数据总线,地址总线的访问及使用情况进行控制。控制信号的作用是在系统内各部件之间发送操作命令和定时信号。
②按总线的层次结构划分
a.前端总线(或CPU总线)。前端总线包括地址总线、数据总线和控制总线。
b.系统总线(或I/O通道总线)。系统总线也包括地址总线、数据总线和控制总线,是主机系统与外围设备之间的通信通道。
c.外设总线。外设总线是指计算机主机与外部设备接口的总线,实际上是一种外设的接口标准。
(3)总线结构
在微机系统中,总线结构可划分为单总线结构和多总线结构。多总线结构中又以双总线结构为主。
(4)总线操作
①接到总线上的设备的两种工作方式:主控方式和从属方式。
②总线操作的特点:任意时刻,总线上只能允许一对设备(主控设备和从属设备)进行信息交换。
③一个总线周期分为5个步骤:总线请求、总线仲裁、寻址、传送数据和传送结束。对于只有一个主控设备的单处理器系统,不存在总线请求、仲裁和撤除问题,总线始终归它所有,此时的总线周期只有寻址和传送两个阶段。
(5)总线的主要性能指标
①总线的带宽
总线的带宽指的是单位时间内总线上可传送的数据量,单位是字节/秒(B/s)或兆字节/秒(MB/s)。
②总线的位宽
总线的位宽指的是总线能同时传送的数据位数,在工作频率固定的条件下,总线的带宽与位宽成正比。
③总线的工作频率(或总线的时钟频率)
总线的工作频率是指用于协调总线上的各种操作的时钟信号的频率,以MHz为单位。
2总线的基本功能
(1)总线的数据传送
数据在总线上传送时,为确保传送的可靠性,传送过程必须由定时信号控制。
定时实现的方式有3种:同步定时方式、异步定时方式和半同步定时方式。
(2)总线仲裁控制(或总线判优)
由于总线为多个部件所共享,在总线上某一时刻只能有一个总线主控部件控制总线。控制方式可以分成集中方式与分散方式两类。集中式控制方式主要有3种,分别为链式查询方式、计数器查询方式和独立请求方式。
(3)总线驱动及出错处理
①总线驱动
在计算机系统中,总线上连接的设备接口很多,每个接口电路都要从总线上吸收电流,因此需要总线驱动。
②数据传送过程中可能产生错误,解决的方法是在传输的数据中增加一些冗余位,使冗余位与传送的数据具有某种特殊的关系。
(4)总线驱动
在计算机系统中通常采用三态输出电路或集电极开路输出电路来驱动总线。后者速度较低,常用在I/O总线上。
3常用系统总线和外设总线标准
(1)系统总线标准
系统总线制订的标准有很多,例如ISA、EISA、MCA、PCI-E、PCI、AGP等。比较常见的有PCI、AGP。
(2)外设总线标准
外部设备总线用于实现计算机主机和外部设备之间的连接,不同于传统外设接口的专用性,外部设备总线是通用的,可在同一总线上连接很多不同的外部设备。常见的外部设备总线有USB和IEEE1394。
48088系统总线
(1)最小模式下的系统总线
最小模式下的8088系统总线构成如图2-4所示。图中,系统总线的20条地址线用3片8282(或74LS373)锁存器构成。8条双向的数据总线通过1片8286(或74LS245)双向总线驱动器连接到外部数据总线。CPU本身产生全部总线控制信号(DT/、、ALE和IO/)和命令输出信号(、或INTA),并提供请求访问总线的控制信号(HOLD/HLDA),该信号与总线主设备控制器兼容。
图2-4 8088的最小总线模式
(2)最大模式下的系统总线
在最大模式(又引脚接低电平)下,增添一个8288总线控制器就使CPU能支持系统总线上的多个处理器。图2-5为最大模式的系统组成框图。在最大模式下,由总线控制器提供所有总线控制信号和命令信号。CPU的部分引脚进行了重新定义以支持多处理器工作方式。8288总线控制器利用CPU输出的2、1、0状态信号来产生总线周期所需的全部控制和命令信号。
图2-5 8088的最大总线模式
系统总线信号的作用及互相之间的定时关系:
①地址信号线:A0~A19
②数据信号线:D0~D7。
③控制信号线:
、(访问存储器时的读、写控制信号);
、(访问I/O端口时的读、写控制信号)。