第四章 16位及32位计算机的引脚 - 图文

更新时间:2023-10-05 17:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一:8086微处理器的引脚

1、 概述

1)40管脚双列直插式CPU

GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD(RQ/GT0) HLDA(RQ/GT1) WR(LOCK) 8086 M/IO(S2) AD3 DT/R(S1) AD2 8086引脚2)8086可以工作在最大、最小两种工作模式下。有8个引脚在不同的模式下定义是不一样 的。

3)数据线的宽度是16位,地址线是20位。其内存的寻址范围是1MB。 4)地址数据分时复用。

理解一下分时复用。

T1 给出地址,该地址会被锁存到一

个地址锁存器中。存储器的地址实际上来自于锁存器。

T2 写周期 数据由输出方写到数据

总线上 T3 读周期

输入方从数据总线读走数据 T4 收尾,并且为下一次读写做准备 周期:外频。

2、 最小模式下8086微处理器的引脚 1) A0/D0~A15/D15

T1 地址总线的低16 T2、T3、T4是16数据总线 2) A16/S3

T1 地址 T2T3T4状态

3) A17/S4

T1 地址 T2T3T4状态

S3S4这两个状态是表示当前访问的段是哪个。 4) A18/S5

T1 地址 T2T3T4状态 S5与IF标志位相同

5) A19/S6

T1 地址 T2T3T4状态 S6 未定义

6) ALE (address lock enable)地址锁存信

号。

在T时有效。

T1

CLK M/IO

A19~A16/S6~S3

BHE/S7 AD15~AD0

ALE RD DT/R DEN

T2 T3 T4

低:I/O

A19~A16 BHE A15 ~ A0

高: M S6 ~ S3 S7 D15 ~ D0

地址锁存器8282,74LS373

STB是选通信号,正脉冲,D触发器特性:STB为高电平时,Q端将随D端变化而变化。STB为低电平,不管D端是什么,Q端都不会变。

因此,我们就可以将CPU的ALE链接到8282的STB引脚。作为地址信号,他始终要有效,所以OE接地。

注意的是:8086CPU地址总线是20根,

所以需要3片8282。

7) BHE/s7 奇存储器有效信号

T1 BHE 因此BHE也是需要通过

8282地址锁存器锁存的。 T2 T3 T4 S7状态 s7状态未定义

16位及32位存储器的原理示意图如下:

8) 双向数据收发信号 DT/R CPU 向外写数据DT/R是高电平 CPU 从外面读数据DT/R是低电平 此引脚需要跟8286双向数据收发器链接

A0

828

B 0 B 1 B 2 B 3 B 4 B 5 B 6 B 7

T

A 1 A 2 A 3 A 4 A 5 A 6 A 7 OE

T 方向控制信号

T = 1 则数据是从 A 到 B T = 0 则数据是从 B 到 A

因此: 8286的T引脚可与CPU的DT/R连接。 8286还有一个数据输出允许引脚OE 9) DEN 数据允许引脚

当CPU输入或输出数据时,该引脚有效。 所以,8286双向数据收发器的OE引脚连接到CPU的DEN.

8086CPU的数据线是16根,所以8086CPU

构成系统中需要2片8286双向数据收发器。 10)M/IO

当CPU访问存储器时M/IO为高电平。

比如:CPU执行如下指令: MOV AX,[2000] MOV AX,[SI] ADD AX,[SI]

当CPU访问IO设备时M/IO位低电平。 IN AL,21H OUT 20H,AL

键盘有两个地址: 0060H 00064H IN AL,0060H

11)RD WR

当CPU从外面读数据时RD = 0 WR = 1 当CPU向外面写数据时RD = 1 WR = 0

CPU在执行指令时,他自己是知道是要读还是要写。与CPU连接的双向数据收发器以及存储器和外设是不知道CPU要是要读还是要写,CPU给8286双向数据收发器一个DT/R,同时CPU会给存储器或外设IO两个信号,一个是RD,一个是WR。

12)中断控制引脚

INTR :可屏蔽中断请求信号 FLAG.IF = 1 允许中断 FLAG.IF = 0 禁止中断 INTA :可屏蔽中断响应信号

NMI :不可屏蔽中断请求信号 在计算机发展的过程中,中断是一个里程碑式的技术。计算机之所以可以实现一个多任务的系统。其主要原因是因为有中断。

中断执行过程:

中断类型号:00~0FFH 必须强调一下:00~07H 这8个中断类型号,被系统占用了。

INT 21H

硬件中断响应的过程:

1、8259上的IRi,提出中断请求。 2、8259响应,将i的编码存储到8259.ICW2中。

3、8259通过其INT引脚和CPU的INTR引脚向CPU提出请求。

4、如果CPU允许中断(CPU.IF=1),CPU会通过INTR引脚,发出两个INTR周期,在第二个INTR周期内,CPU将8259.ICW2中的中断类型号读入到CPU中。

5、CPU根据中断类型号,在中断向量表中找到中断服务程序的入口地址,转入到中断服务程序执行之。 13)总线请求信号 HOLD 总线请求 HLDA 总线响应

14)READY

准备好(存储器或外设),

存储器和外设都是低速器件,CPU是高速器件。

总线周期,或者说CPU访问一次外设或存储器的过程分为T1 T2 T3 T4 四个周期。

如果在T1T2T3T4这四个周期内,无法完成读写,为了保证CPU能够正确读取数据,硬件上CPU有一个READY引脚,存储器芯片、IO接口芯片也有一个READY引脚。那么在T3结束前,CPU会采集READY引脚的状态,如果为高电平,则进入T4。否则,在T3和T4之间插入一个Tw等待周期。如图:

)TEST

TEST 引脚,他是一个硬件停机,或者叫硬件等待。

TEST引脚与一条控制器指令WAIT有密切关系。其执行过程如下图:

15

16)CLK

时钟信号。来自于8284时钟发生器。在PC_XT机器上来自于MC14818(CMOS),

8284的输出:

1、REST 8284将RES引脚上的输入 经过同步后的输出信号。接

CPU的RESET引脚。

2、OSC 晶体振荡器反向后的输出 PCLK 时钟源6分频后的输出。 CLK 时钟源3分频后的输出。主

3、READY 是8284将RDY1或RDY2同步后输出,接CPU的READY。

8284的输入: i. F/C

时钟源可以来自于晶体振荡器,也可以来自于外部EFI,如果F/C=0表示来自于晶体振荡器。否则来自于EFI.

EFI 外部时钟源 X1 X2 接石英晶体

2、AEN1 RDY1 来自于存储器或IO

的READY信号

AEN2 RDY2 来自于存储器或IO

的READY信号

3、RES 来自于RESET按钮

的信号。

17、RESET引脚 CPU的复位引脚。

如果RESET引脚上至少出现4个CLK周期

这些信号准备好了。

7)A20M 地址线A20屏蔽信号.低电平有效 I386工作于实模式时,A20M=0 ,CPU只能

访问1MB的内存空间。地址总线只有A2~A19以及BE0、BE1有效。

8)READY 准备好信号 9)LOCK

总线锁定信号。

3、 微处理器面向中断的接口信号

硬件中断响应过程:

INTR 可屏蔽中断请求信号

当CPU的状态标志寄存器FLAG的

IF标志位为1时,INTR引脚出现一个高电平或正脉冲,CPU响应中断。也就是CPU会发出两个INTA周期给

8259.

当CPU的状态标志寄存器FLAG的IF

标志位为0时,CPU禁止中断。此时即使INTR上有中断请求信号,CPU也不会响应。 INTA 中断响应信号

当CPU响应中断时,会通过INTA

引脚向8259中断控制器,发两个INTA周期。其中、在第二个INTA周期时,CPU会从8259.ICW2中读中断类型号到CPU内部。

NMI 不可屏蔽中断请求信号

此引脚只要有信号,都会引起CPU

中断。NMI的中断类型号,是固定的,是02H。

在实模式下:也就是说在中断向量表中不可屏蔽中断的中断向量的存储地址为,00008H~0000BH

4、 微处理器面向总线响应的信号

HOLD 总线请求信号 HLDA 总线响应信号 其链接方式如下图:

的高电平。那么CPU就复位了。复位意味着什么呢?

复位后,CPU内部的寄存器将变成如下的值: CS = FFFFH 其他的寄存器都为0000H 这表明CPU复位后或启动时执行的第一条

指令的地址是:CS*16+IP = FFFF0H.

BIOS:系统初始化程序及系统自检程序。

系统引导程序。

BIOS是ROM存储器(flash),这个ROM

的地址空间必须包含FFFF0H这个地址。 FFFF0~FFFFFH

三:最大模式下的8086微处理器的引脚

1、 RQ0/GT0 RQ1/GT1

最大模式下的总线请求和总线允许信号。 在与总线控制器8237链接时候,在CPU与8237之间是要加入一个总线仲裁器。 HLOD

HLDA 2、 LOCK

最小模式下没有的。

必须了解一下,什么叫最小模式?什么叫最大模式?

模式:是指系统中能够控制三总线的芯片的个数。 什么叫控制三总线?

就是能够提供地址信号和控制信号的芯片。也就说,该芯片是否具有控制访问内存或外设的能力。

在最小模式下系统中只有CPU能控制总线。 在最大模式下,会有多个芯片具有总线控制能力。一般微机系统中CPU、DMAC、浮点数处理器都可以控制总线。

LOCK 总线锁定信号

当CPU在执行某些指令时,不允许别的总线控制器控制总线。比如正在执行CALL,再比如正在响应中断。

也就是说LOCK是CPU输出的信号,如果为高电平,表示不允许别的总线控制器控制总线。示意图如下

从图上可以看出当LOCK = 1时,CPU的HOLD引脚始终为0。

那么,CPU在执行指令时,可以给指令前加一个LOCK前缀。如:

LOCK MOV EAX,EBX 当该指令执行时LOCK = 1; MOVSB DS:SI ES:DI SI = SI+1 DI+1 REP MOVSB DS:SI ES:DI SI = SI+1 DI+1 CX = CX -1

CX==0?

S2 S1 S0 状态信号

因为s2对应着最小模式的M/IO S1对应值最小模式的DT/R S0对应值最小模式的DEN

最大模式 最小模式 QR0/GT0 HLOD QR1/GT1 HLDA LOCK WR S2 M/IO S1 DT/R S0 DEN QS0 A LE QS1 INTA

也就是说,在最大模式下CPU不再提供WR ALE INTA DEN等信号,但是访问存储器或访问外设,还响应中断一定是需要这些信号的。

所以、在最大模式下,只提过三个状态信号,表示CPU在执行何种操作。而访问内存和IO所需的控制信号由一个叫8288总线控制器对CPU提供的S2S1S0的状态译码后提过。

S2 S1 S0这些状态表示是何种操作呢?

CPU 工作于最大模式下时,在执行某种操作时,会将执行的操作的代码,也就是如上图所示的S2S1S0的状态,发送给总线控制器8288.8288会将这些状态翻译成总线控制信号。

8288的引脚图以及逻辑结构图如下:

V GND CC AD15 8086AD14

逻辑图

1、状态译码器 S2S1S0

3、 存储器IO读写信号发生器

MRDC 存储器读 MRTC 存储器写 AMRTC 存储器提前写 IORC IO读 IOWC IO写 AIOWC IO提前写 INTA 中断响应信号

因为CPU内部使用的是TTL器件

而外设或内存使用的是MOS器件

4、 总线控制信号发生器

DT/R 数据传送方向控制信号 DEN 数据允许信号 ALE 地址锁存信号

所以CPU的写很快

而IO或存储器的写相对较慢。 总线周期分为4个时钟周期 T1 T2 T3 T4 给地址 读周期 写周期 结束 MWTC 在T3有效

AMWTC 在T2就有效 提前写,边读边写 AIOWC 在T2就有效 提前写,边读边写 四:8086的总线周期 周期的分类:

时钟周期 就是一个CLK周期 机器周期 就是CPU执行一个基本

操作的时间。对于8086的CPU来说,他的一个机器周期是4个时钟周期。T1 T2 T3 T4

指令周期 就是执行一条指令所需的

时间。指令周期不固定。

通常指令周期是机器周期

的整数倍。

总线访问周期 是指CPU访问内存或外

设设的时间。

通常是T1 T2 T3 Tw T4

1、 复位周期

是在CPU的RESET引脚至少出现4个时钟周期的高点平后CPU复位。

2、 存储器/IO访问周期

3、 中断响应周期

包括了两个INTA周期

其中在第二个INTA周期会从中断控制器8259的ICW2中读一个中断类型号到CPU内部去。 4、 总线响应周期

五:80386CPU的引脚

多处理器 流水线 取指 译码 执行

1、80386CPU的引脚的分类 1)DMA接口引脚 HOLD HLDA 2)中断接口引脚 INTR INTA NMI

3)协处理器接口引脚 4)存储器IO接口引脚

2、32位微处理器面向存储器和IO的接口信号线 1)32位微处理器的工作模式 I、实模式

在实模式下,32位微处理器相当于16

位的处理器8086。

II、保护模式

保护模式,32位处理器

2)A2~A31 i386的地址总线

当i386工作于实模式时,地址线总线只有

A2~A19是有效的。A0由BE0提供,A1由BE1提供。

3)BE0~BE3 字节选择线

i386CPU数据总线是32位,分成4个字节。 与存储器链接时,需要4个存储体。分别

是地址能被4整除的、地址减1能被4整除的、地址减2能被4整除的、地址减2能被4整除的。BE0~BE3,分别作为这4个存储体的字节允许信号。

4)D0~D31数据信号线

若i386工作于实模式,数据线只有低16位

有效。存储器的访问范围,在是模式下只有1MB。

如果工作于保护模式,D0~D31都有效。 5)M/IO

当访问内存时M/IO=1 当访问IO时M/IO=0;

用于区分是访问内存还是访问IO.也就是当前

地址是内存地址呢还是IO端口地址。

6)总线控制信号

M/IO M/IO=1 访问内存 M/IO=0 访问外设 D/C D数据,C控制 访问内存 访问IO

中断响应、总线响应、取指令 D/C = 1 访问内存或IO,

D/C = 0 执行表示:中断响应、总线

响应、取指令

本质上讲:D/C=1表示CPU执行的

操作是由执行指令引起的。

D/C=0 是CPU执行的控制操作。

这个操作时CPU本身具有功能。

W/R 读写信号 W/R=1 写 W/R=0 读

i386M/O、D/C、W/R这三个信号,有点类似

于8086工作于最大模式时的S2、S1、S0这三个信号。

M/IO D/C W/R 总线周期 备注 0 0 0 中断响应 在第二个INTA周期,从8259的ICW2中读出中断类型号 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 未定义 读IO 写IO 读代码 停机 CPU从内存中取指令 CPU暂停或关机 指令。比如: MOV EAX,[EBP-4] 1 1 1 写存储器 CPU执行一条写数据的指令。比如: MOV [EBP-4],EAX

ADS 地址状态信号

ADS = 1 表示M/IO、D/C、W/R、地址

信号线(A2~A31)、字节允许信号(BE0~BE3)这些信号没有准备好。

ADS = 0 表示M/IO、D/C、W/R、地址信号线

(A2~A31)、字节允许信号(BE0~BE3)

读存储器 CPU执行一条取数据的

本文来源:https://www.bwwdw.com/article/n9pd.html

Top