微型计算机的组成结构与工作过程
微机的组成结构
微机的组成
一台微型计算机由四部分组成:微处理器(简称CPU),存储器,输入输出接口和总线
它们以微处理器为核心,把存储器、I/O接口电路通过总线有机的结合在一起形成微型计算机
CPU主要包括运算器、控制器、寄存器组
存储器
功能:存放程序和数据
包括:随机存取存储器RAM和只读存储器ROM
输入输出接口:连接外设备和系统总线,完成信号转换,数据缓冲,与CPU进行信号联络等工作
总线为CPU和其他部件之间提供数据、地址和控制信息的传输通道
微型机的总线结构
1)地址总线AB
2)数据总线DB
3)控制总线CB
微机工作过程
程序存储和程序控制概念(冯诺依曼概念)
执行每一条指令都包括取指、译码和执行三个基本步骤
8086/8088微处理器
20根地址线,寻址范围2^20=1MB
这两种CPU根据系统规模的大小,均有两种工作模式:最大模式和最小模式
8086/8088CPU的编程结构
8086/8088CPU的编程结构
1)执行部件EU
功能:完成指令的译码与执行工作
2)总线接口部件BIU
功能:负责与存储器,I/O传送数据
BIU使用指令队列电路来实现流水线操作,该队列为先进先出队列(FIFO),有两个指针,8086允许预取6个字节,8088允许预取4个字节的指令代码
8086/8088CPU的内部寄存器
1)数据寄存器
2)段寄存器
代码段寄存器CS
数据段寄存器DS
堆栈段寄存器SS
附加段寄存器ES
3)指针寄存器
地址指针寄存器:
SP:堆栈指针寄存器,指示堆栈在内存中的相对位置
BP:基数指针寄存器,存放数据在内存中的基地址,使寻址方式更灵活
指令指针寄存器IP
控制CPU指令的执行顺序,存放指令代码在内存中的相对地址,顺序执行时,CPU每取一个指令字节,IP自动加1
所有指令的执行都是通过CS:IP来完成的,CS的值和IP的值一起确定下一条要取出的指令地址。
4)变址寄存器
源操作数变址寄存器SI:存放源数据的地址
目的操作数变址寄存器DI:存放目的数据的地址
5)标志寄存器PSW
状态标志位:
CF:进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
OF:溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=1
ZF:零标志位。当运算结果为零时ZF=1
SF:符号标志位。当运算结果的最高位为1(负数)时,SF=1
PF:奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=1
AF:半进位标志位。加(减)操作中,若位3向位4有进位(借位), AF=1.用于BCD(十进制)运算
控制标志位:
TF:单步标志位。TF=1时,使CPU处于单步运行方式。即每条指令执行完成后都产生中断,供用户检查各个寄存器及内存的当前状况,通常用于调试。
IF:中断标志位。IF=1时,CPU可以响应外部可屏蔽中断,否则,将外部可屏蔽中断屏蔽,即使有中断申请信号也不予理会
DF:方向标志位。串操作指令为自动减量指令,即从高地址向低地址处理字符串。串操作指令是对内存中连续的数据进行自动成批操作。
存储器组织
1)分段结构
8086/8088CPU对外20位地址,可访问1MB的内存空间,可是其内部寄存器都只有16位,最多可寻址64KB存储空间。
因此,引入了分段的概念。即将MB的存储空间分为若干个逻辑段,每个逻辑段具64KB的存储空间
程序在内存中是分段存放的,即指令代码,数据,堆栈分开存放。每段有明确的首地址,段和段之间的地址可以连续、断开、重叠。
这样,一个存储单元除了具有一个唯一的物理地址外,还具有多个逻辑地址。
2)段地址、段内地址(偏移地址)和物理地址
采用存储器的分段结构后,任何一个20位的物理地址都由段地址和段内地址(偏移地址)两部分构成,其中段内地址指出了操作数所在位置距段起始位置的偏移量,段地址和段内地址有时也称逻辑地址。形式为:段地址:段内地址
3)段寄存器的使用
8086/8088CPU的工作模式与引脚功能
数据线和地址线AD0-AD15
地址引线有20条,数据引线有16条,为了减少外接引线的数目,数据引线和地址引线的低16位是分时复用的。分时复用是通过ALE信号控制
控制信号线
8086的控制信号线一共有17条,一个VCC,两个GND。17+20+3=40
17根控制信号中,9根控制信号与最大最小模式无关,8根控制线在最大模式和最小模式中有不同的定义
一、共用控制信号
1)时钟信号CLK 19管脚,输入
2)NMI 17引脚,非屏蔽中断请求信号,输入,上升沿触发(边沿触发)。
不受中断标志IF的影响,不能用软件控制(屏蔽),每当该端输入一个正沿触发信号时,CPU就会在当前指令周期结束后,进入终端类型号为2的中断处理程序,在8086微机中,该中断用于I/O与内存的奇偶校验
3)INTR 18引脚 可屏蔽中断请求信号,输入,高电平有效(电平触发)。
4)
R
D
‾
\overline{RD}
RD 32引脚 读信号 输入,低电平有效
5)MN/
M
X
‾
\overline{MX}
MX(Min/Max) 33引脚 最大最小模式控制信号 输入。接高电平为工作在最小模式。
6)REDAY 22引脚 准备好信号 输入 高电平信号
7)
T
E
S
T
‾
\overline{TEST}
TEST 23引脚 测试信号 输入 低电平有效 和WAIT指令结合使用
8)RESET复位信号 21引脚 输入 高电平有效 高电平宽度至少大于四个时钟周期。
9)
B
H
E
‾
\overline{BHE}
BHE /
S
7
S_7
S7 34引脚 高8位数据总线允许/状态复用引脚,输出。 8086CPU特有信号
二、与系统最小工作模式有关的信号引脚
1)
I
N
T
A
‾
\overline{INTA}
INTA 24引脚 中断响应信号 输出
2)ALE 25引脚 地址锁存允许信号 输出 高电平有效
3)
D
E
N
‾
\overline{DEN}
DEN 26引脚 数据允许信号 输出 低电平有效
4)DT/
R
‾
\overline{R}
R 27引脚 数据收发方向控制信号 输出 高发低收
5)M/
I
O
‾
\overline{IO}
IO 28引脚 存储器 I/O控制信号 输出
高电平为对存储器的访问,低电平为对I/O口的访问
8808CPU为
M
‾
\overline{M}
M/IO
6)
W
R
‾
\overline{WR}
WR 29引脚 写信号 输出 低电平有效
7)HOLD 31引脚 总线保持请求信号 输入 高电平有效
8)HLDA 30引脚 总线保持响应信号 输出 高电平有效
三、与系统最大工作模式有关的信号引脚
1)
S
2
‾
\overline{S_2}
S2,
S
1
‾
\overline{S_1}
S1,
S
0
‾
\overline{S_0}
S0 26-28引脚 总线周期状态信号 输出
2)
R
Q
‾
\overline{RQ}
RQ /KaTeX parse error: Undefined control sequence: \overlineGT at position 1: \̲o̲v̲e̲r̲l̲i̲n̲e̲G̲T̲_0} 31引脚 总线请求输入,总线请求允许信号输出 输入输出双向
3)
R
Q
‾
\overline{RQ}
RQ /KaTeX parse error: Undefined control sequence: \overlineGT at position 1: \̲o̲v̲e̲r̲l̲i̲n̲e̲G̲T̲_1} 30引脚 总线请求输入,总线请求允许信号输出 输入输出双向 优先级低于31引脚
4)
L
O
C
K
‾
\overline{LOCK}
LOCK 29引脚 总线封锁信号 输出
5)QS1,QS0 24 25引脚 指令队列状态信号 输出
8086/8088微处理器工作模式及典型时序分析
CPU工作模式
工作模式选择 33引脚是最大最小工作模式控制引脚
典型时序分析
时钟周期为系统时钟频率的倒数,是CPU最基本的时间计量单位。
时钟周期又称为T状态。
通常所说的主频就是指时钟频率。如主频为5MHz,则其时钟信号的周期为干=1/5MHz=O.2us。
指令周期为执行一条指令所需要的时间
可以将指令周期划分为一个个总线周期,每个总线周期对应一种功能。
每当CPU要访问存储器或I/0端口,以及BIU取指令以填充指令队列缓冲器时,都要通过BIU单元访问总线,称为总线操作。
每一次访问总线的时间就是一个总线周期。若干个总线周期构成一个指令周期。
通常4个时钟周期组成一个总线周期,故基本总线周期有4个T状态
不同的指令,其指令周期中所包含的总线周期是不相同的。但归纳起来主要包括下列几种基本的总线周期:
存储器读/写总线周期
I/O端口读/写总线周期
中断响应总线周期
总线保持请求/总线保持响应总线周期