【微机原理与接口技术】80x86的引脚信号及总线时序
【微机原理与接口技术】80x86的引脚信号及总线时序
8086处理器是Intel公司于1978年推出的第一款16位微处理器,它在计算机发展史上具有重要地位。本文将详细介绍8086处理器的40个引脚信号及其功能,以及其总线时序的工作原理。
8086处理器共有 40 个引脚。学习 8086 引脚信号的目标就是分类学习这40个引脚(总线)信号:
- 数据和地址引脚
- 读写控制引脚
- 中断请求和响应引脚
- 总线请求和响应引脚
- 其它引脚(时钟信号、复位信号、组态选择输入、测试输入引脚、电源 VCC 和 地线 GND)
地址/数据信号
数量最多的处理器引脚是地址引脚和数据引脚,但功能单一。为减少引脚个数,8086采用了引脚信号分时复用的方法。所谓“分时复用”,是指同一引脚在不同的时刻具有不同的功能。
下面是最常见的地址总线和数据总线的复用,即数据总线在不同的时刻还具有地址总线的功能:
A D 15 ~ A D 0 AD_{15}~AD_0AD15 ~AD0 (Address/Data)
地址/数据分时复用引脚,共16个引脚
用作地址总线时是单向输出信号;用作数据总线时是双向信号,具有三态输出能力
在访问存储器或外设的总线操作中
这些引脚在第一个时钟周期输出存储器或 I/O 端口的低 16 位地址A 15 ∽ A 0 A_{15}\backsim{A_0}A15 ∽A0
其他时间用于传送 16 位数据D 15 ∽ D 0 D_{15}\backsim{D_0}D15 ∽D0A 19 / S 6 ~ A 16 / S 3 A_{19}/S_{6}~A_{16}/S_3A19 /S6 ~A16 /S3 (Address/Status)
地址/状态分时复用引脚,是一组4个具有三态能力的输出信号
引脚在访问存储器的第一个时钟周期输出高 4 位地址
在访问外设的第一个时钟周期输出低电平,无效
其他时间输出状态信号(反映处理器工作状态)
状态信息S 6 S_6S6 总为低电平,表示8086与总线相连
S 5 S_5S5 反映当前允许中断标志的状态
- B H E ‾ / S 7 \overline{BHE}/S_7BHE/S7 (Byte High Enable/Status)
- 高字节允许/状态分时复用引脚,三态、输出信号
- 访问存储器或外设的第一个时钟周期
- 输出低有效信号,表示使用数据总线的高字节传送数据
- 输出高电平信号,表示使用数据总线的低字节传送数据
- 其他时间输出状态信号
读写控制信号
基本读写引脚(构成基本总线操作)
ALE(Address Latch Enable)
地址锁存允许,三态、输出、高电平有效
有效时,表示复用引脚正在传送地址信号
8086 的A 19 / S 6 ~ A 16 / S 3 A_{19}/S_{6}~A_{16}/S_3A19 /S6 ~A16 /S3 和A 15 ~ A 0 A_{15}~A_0A15 ~A0 是复用信号,需要地址锁存器将地址信息保存起来,为外接存储器或外设提供地址信息
需要锁存的信息是:地址信号及B H E ‾ \overline{BHE}BHE信号M / I O ‾ M/\overline{IO}M/IO(Memory/Input and Output)(二合一信号)
访问存储器或者I/O,三态、输出、高低电平均有效
高电平(M),表示处理器访问存储器
低电平时(I O ‾ \overline{IO}IO),表示处理器访问I/O端口
W R ‾ \overline{WR}WR(Write)
写控制,三态、输出、低电平有效
有效时,表示处理器正将数据写到存储单元或I/O端口
R D ‾ \overline{RD}RD(Read)
读控制,三态、输出、低电平有效
有效时,表示处理器正从存储单元或I/O端口读取数据
基本总线操作
- 存储器读(Memory Read)
- 处理器从存储器读取代码或读取操作数
- 每条指令执行前都需要经过取指操作进入处理器
- 以存储单元为源操作数的指令在执行时需要从主存获取操作数
- 存储器写(Memory Write)
- 处理器向存储器写入操作数
- 以存储单元为目的操作数的指令在执行时需要将结果保存在主存中
- I/O读(Input/Output Read)
- 处理器从外设读取操作数
- 只有执行输入指令IN时才启动一个I/O读总线操作
- I/O写(Input/Output Write)
- 处理器向外设写入操作数
- 只有执行输出指令OUT时才才启动一个I/O写总线操作
读写控制信号的组合
8086处理器利用M / I O ‾ M/\overline{IO}M/IO、W R ‾ \overline{WR}WR和R D ‾ \overline{RD}RD这 3 种最基本的控制信号组合后控制 4 种基本的总线周期
从表中可以很明显的看出对应关系
同步操作引脚
读写操作需要保证存储器或外设与处理器速度一致,慢速的 I/O 或存储器发出一个信号(READY信号),让快速的处理器等待
- READY信号
- 是一个输入给处理器的信号,高电平有效表示可进行数据读写
- 所以,存储器或I/O端口可利用该信号无效来请求处理器等待数据的到达
- 处理器在进行读写前检测READY引脚
中断请求和响应引脚
INTR(Interrupt Request)
可屏蔽中断请求,高电平有效的输入信号
有效时,表示中断请求设备向处理器申请可屏蔽中断
中断IF标志对该中断请求进行屏蔽(STI(IF=1),CLI(IF=0))
主要用于实现外设数据交换的中断服务
I N T A ‾ \overline{INTA}INTA(Interrupt Acknowledge)
可屏蔽中断响应,低电平有效的输出信号
有效时,表示来自INTR引脚的中断请求已被处理器响应
NMI(Non-Maskable Interrupt)
不可屏蔽中断请求,上升沿有效的输入信号
有效时,表示外界向CPU申请不可屏蔽中断
中断级别高于可屏蔽中断请求INTR
常用于处理系统发生故障等紧急情况下的中断服务
总线请求和响应引脚
HOLD
总线请求,高电平有效的输入信号
有效时,表示其他总线主控设备申请使用总线
HLDA(HOLD Acknowledge)
总线响应,高电平有效的输出信号
有效时,表示处理器已响应总线请求并将总线释放
CPU进行总线释放:处理器的地址总线、数据总线及具有三态输出能力的控制总线呈现高阻状态,使总线请求设备可以顺利接管和使用总线
其它引脚
RESET
复位,高电平有效的输入信号
有效时,将迫使处理器回到其初始状态
8086复位后,寄存器 CS=FFFFH,IP=0000H
复位后第一条执行的指令在物理地址FFFF0H处,即主存地址高端
通常系统会安排一条段间无条件转移指令JMP,将控制转移到程序入口
CLK(Clock)
时钟输入,频率稳定的数字信号
处理器的基本操作节拍
频率的倒数是时钟周期的时间长度
M N / M X ‾ MN/\overline{MX}MN/MX(组态选择输入)
选择CPU工作于最小/最大组态
最小组态模式
构成小规模的应用系统,如系统中只有一个8086
8086本身提供所有的系统总线信号最大组态模式
构成较大规模的应用系统,例如与数学协处理器8087一起构成系统时
此时,8086和总线控制器8288共同形成系统总线信号T E S T ‾ \overline{TEST}TEST
测试输入引脚,用于与数字协处理器8087保持同步操作
8086的总线时序
- 处理器以统一的时钟信号为基准,控制其他信号跟随时钟相应改变,实现总线操作
- 8086处理器的基本总线周期由4个时钟周期构成,分别使用T1、T2、T3、T4表述
- 每个时钟周期,8086将进行不同的具体操作、处于不同的操作状态(State)
- 4个基本总线周期
- 读总线周期:存储器读和I/O读
- 写总线周期:存储器写和I/O写
写总线周期
写总线周期用来完成对存储器或I/O的一次写操作
T1状态
输出20位存储器地址A 19 ~ A 0 A_{19}~A_0A19 ~A0
M / I O ‾ M/\overline{IO}M/IO输出高电平,表示存储器操作
或者M / I O ‾ M/\overline{IO}M/IO输出低电平,表示 I/O 操作
ALE 输出正脉冲,表示复用总线输出地址
T2状态
输出控制信号W R ‾ \overline{WR}WR和数据D 15 ~ D 0 D_{15}~D_0D15 ~D0
T3状态
检测数据传送是否能够完成
T4状态
完成数据传送
写总线周期时序
没有插入等待状态的基本总线周期由4个T状态组成,编号为 T1~T4
在有些情况下,外设或存储器速度较慢,不能及时地配合CPU传送数据
这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟1周期Tw(可在T3、T4 间插人若干个等待状态Tw)
参考教材 《微机原理与接口技术——基于IA-32处理器和32位汇编语言(第5版)》