Download presentation
Presentation is loading. Please wait.
1
第 2 章 8086 系 统 结 构 中国科学技术大学 何克东
2
的结构 8086的内部结构从功能分成两个单元 总线接口单元BIU——管理8086与系统总线的接口,负责CPU对存储器和外设进行访问 执行单元EU——负责指令的译码、执行和数据的运算 两个单元相互独立,分别完成各自操作 两个单元可以并行执行,实现指令取指和执行的流水线操作
3
一、 8086内部结构 1. 指令执行部件EU EU功能:告诉BIU从何处取指令或数据,完成指令译码和执行指令。 EU的组成:
一、 内部结构 1. 指令执行部件EU EU功能:告诉BIU从何处取指令或数据,完成指令译码和执行指令。 EU的组成: (1)算术逻辑运算单元ALU (2)标志寄存器FR/PSW (3)寄存器组 (4)EU控制器
4
2. 总线接口部件BIU BIU功能:地址形成、取指令、指令排队、读/写操作数和总线控制。
向EU提供指令和数据,把EU的处理结果送给存储器或接口。 BIU的组成: (1)16位段寄存器 CS — 代码段寄存器 DS — 数据段寄存器 ES — 附加段寄存器 SS — 堆栈段寄存器 (2)16位指令指针寄存器 (3)20位物理地址加法器 (4)6字节指令队列 (5)总线控制逻辑
5
二、 8086CPU的寄存器组织 寄存器的特殊用途和隐含性质 25页 ALU 数据寄存器 15 8 7 0 控制逻辑 AX AH AL BX
寄存器的特殊用途和隐含性质 25页 数据寄存器 控制逻辑 AX AH AL BX BH BL 指针及变址寄存器 段寄存器 CX CH CL DX DH DL SP CS BP DS ALU SI SS DI ES IP PSW
6
数据寄存器 指针及变址寄存器 AX(Accumulator) 累加器 BX(Base) 基地址寄存器 CX(Count) 计数器
DX(Data) 数据寄存器 指针及变址寄存器 SP(Stack Pointer) 堆栈指针寄存器 BP(Base Pointer) 基地址指针寄存器 SI(Source Index) 源变址寄存器 DI(Destination Index) 目标变址寄存器
7
段寄存器 控制寄存器 CS(Code Segment )代码段寄存器 DS(Data Segment )数据段寄存器
ES( Extra Segment )附加段寄存器 SS(Stack Segment )堆栈段寄存器 控制寄存器 IP(Instruction Pointer)指令指针寄存器 PSW(Program Status Word)/ FR(Flags)程序状态字/标志寄存器
8
的引脚信号 数据和地址引脚 读写控制引脚 中断请求和响应引脚 总线请求和响应引脚 其它引脚
9
在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低16位地址A15~A0
1. 数据和地址信号-1 AD15~AD0(Address/Data) 地址/数据分时复用引脚,双向、三态 在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低16位地址A15~A0 其他时间用于传送16位数据D15~D0
10
A19/S6~A16/S3(Address/Status) 地址/状态分时复用引脚,输出、三态
1. 数据和地址信号-2 A19/S6~A16/S3(Address/Status) 地址/状态分时复用引脚,输出、三态 这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16 在访问外设的第一个时钟周期全部输出低电平无效 其他时间输出状态信号S6~S3
11
ALE(Address Latch Enable) 地址锁存允许,输出、三态、高电平有效
2. 读写控制信号 ALE(Address Latch Enable) 地址锁存允许,输出、三态、高电平有效 ALE引脚高有效时,表示复用引脚:AD15~AD0和A19/S6~A16/S3正在传送地址信息。 由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来。
12
2. 读写控制信号(续1) M / IO ( Memory / Input and Output) 存储器或I/O访问,输出、三态
该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址 该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O口地址
13
2. 读写控制信号(续2) WR(Write) 写控制,输出、三态、低电平有效 有效时,表示CPU正在写出数据给存储器或I/O端口
RD(Read) 读控制,输出、三态、低电平有效 有效时,表示CPU正在从存储器或I/O端口读入数据
14
2. 读写控制信号(续3) READY 存储器或I/O口就绪,输入、高电平有效 在总线操作周期中,8086 CPU会在第3个时钟周期的前沿测试该引脚 如果测到高有效,CPU直接进入第4个时钟周期 如果测到无效,CPU将插入等待周期Tw CPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。
15
2. 读写控制信号(续4) DEN(Data Enable) 数据允许,输出、三态、低电平有效
有效时,表示当前数据总线上正在传送数据,可利用它来控制对数据总线的驱动 DT/R(Data Transmit/Receive) 数据发送/接收,输出、三态 该信号表明当前总线上数据的流向 高电平时数据自CPU输出(发送) 低电平时数据输入CPU(接收)
16
3. 中断请求和响应信号 INTR(Interrupt Request) 可屏蔽中断请求,输入、高电平有效
有效时,表示请求设备向CPU申请可屏蔽中断 该请求的优先级别较低,并可通过关中断指令CLI清除标志寄存器中的IF标志、从而对中断请求进行屏蔽
17
3. 中断请求和响应信号(续1) INTA(Interrupt Acknowledge) 可屏蔽中断响应,输出、低电平有效
有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期。 中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线。
18
3. 中断请求和响应信号(续2) NMI(Non-Maskable Interrupt) 不可屏蔽中断请求,输入、上升沿有效。
有效时,表示外界向CPU申请不可屏蔽中断。 该请求的优先级别高于INTR,并且不能在CPU内被屏蔽。 当系统发生紧急情况时,可通过他向CPU申请不可屏蔽中断服务。
19
4. 总线请求和响应信号 HOLD 总线保持(即总线请求),输入、高电平有效 有效时,表示总线请求设备向CPU申请占有总线
20
4. 总线请求和响应信号(续1) HLDA(HOLD Acknowledge) 总线保持响应(即总线响应),输出、高电平有效
有效时,表示CPU已响应总线请求并已将总线释放 此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线 待到总线请求信号HOLD无效,总线响应信号HLDA也转为无效,CPU重新获得总线控制权
21
5. 其它信号 RESET 复位请求,输入、高电平有效 该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作
8088复位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0H,DS=ES=SS=0000H。
22
5. 其它信号(续1) CLK(Clock) 时钟输入 系统通过该引脚给CPU提供内部定时信号。8086的标准工作时钟为5MHz
IBM PC/XT机的8088采用了4.77MHz的时钟,其周期约为210ns
23
5. 其它信号(续2) Vcc 电源输入,向CPU提供+5V电源 GND 接地,向CPU提供参考地电平
MN/MX(Minimum/Maximum) 组态选择,输入 接高电平时,8086/8088引脚工作在最小组态;反之,8086/8088工作在最大组态
24
5. 其它信号(续3) TEST 测试,输入、低电平有效 该引脚与WAIT指令配合使用
当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行 也就是说,WAIT指令使CPU产生等待,直到引脚有效为止 在使用协处理器8087时,通过引脚和WAIT指令,可使8086与8087的操作保持同步
25
8088与8086CPU的不同之处 8088的指令队列是4个字节;8086的指令队列是6个字节
8088是准16位处理器;8086是标准16位处理器 8088连接的存储器不分存储体; 8086连接的存储器分奇偶存储体
26
2.3 8086存储器组织 EA=偏移地址 / [基址]+[变址]+[位移量] 1.存储器分段 2.物理地址形成
存储器组织 1.存储器分段 2.物理地址形成 物理地址:存储器的绝对地址也称实地址。 逻辑地址:程序中使用的地址。 物理地址=段地址+EA(有效地址) 段地址=(段寄存器)×16 EA=偏移地址 / [基址]+[变址]+[位移量]
27
物理地址 段寄存器 1000 10000H 段基址 EA=1000H 11000H 位移量 disp 11002H
28
1000 +120 0 1120 0 例: (DS)=1000H, EA=1200H 物理地址=(段寄存器)×16+EA
偏移地址 =1200H 11200H ∴物理地址=11200H
29
地址形成(36页) 操作类型 隐含段地址 段前缀 偏移地址 取指令 CS 无 IP 堆栈操作 SS SP BP为基址 CS、DS、ES
有效地址EA 通用数据操作 DS CS、ES、SS 源字符串 SI 目标字符串 ES DI
30
二、 8086存储器结构 对准字 00001 00000 00003 00002 00005 00004 512K×8位 奇地址 存储体 (A0=1) 偶地址 (A0=0) FFFFF FFFFE BHE D15~D D7~D A0 存储器分体结构示意图 非对准字
31
8086存储器结构 对准字 00001 00000 00003 00002 00005 00004 512K×8位 奇地址 存储体 (A0=1) 偶地址 (A0=0) FFFFF FFFFE BHE D15~D D7~D A0 存储器分体结构示意图 低 高 非对准字
32
BHE、A0的控制作用(37页) 操作 0 0 0 1 1 0 1 1 总线使用情况 BHE A0 从偶地址开始读/写1个字
从偶地址开始读/写1个字 AD15~AD0 从奇地址开始读/写1个字节 AD15~AD8 从偶地址开始读/写1个字节 AD7~AD0 无效 从奇地址开始读/写1个字
33
三、堆栈的概念 堆栈主要用于中断及子程序调用。用来存放返回地址、要保护的现场等。 也可以用于数据的暂时保存。
34
SS 栈顶 78H 56H 34H 12H 栈底 SP 堆栈(Stack)
35
2.4 8086系统配置 最小模式 最小模式为单处理器系统,系统中所需要的控制信号由CPU直接提供。 最大模式
系统配置 最小模式 最小模式为单处理器系统,系统中所需要的控制信号由CPU直接提供。 最大模式 最大模式为多处理器系统,每个处理器执行自己的程序,常用的处理器有数值运算协处理器8087,输入/输出处理器8089。系统中所需的信号由总线控制器8288提供。
36
最小/最大模式的特点 最小模式 最大模式 MN/MX接+5V MN/MX接地 构成单处理器系统 构成多处理器系统 系统控制信号由CPU提供
系统控制信号由总线控制器8288提供 最小/最大模式的特点
37
2.5 8086CPU时序 时序(Timing)是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。
38
复位时各内部寄存器的值 标志寄存器 清零 IP 0000H CS FFFFH DS SS ES PSW 空 其它寄存器
39
时钟周期(Clock Cycle):CPU时钟频率的倒数,最小时间单位,也称T状态。
总线周期(Bus Cycle):BIU完成一次访问存储器或I/O端口操作所需要的时间,一个总线周期最少由4个时钟周期组成。 指令周期(Instruction Cycle):执行一条指令所需要的时间,一个指令周期由几个总线周期组成。 当需要延长总线周期时需要插入等待状态Tw
40
任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码。
任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期。 只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期。 CPU响应可屏蔽中断时生成中断响应总线周期。
41
T1状态:输出20位存储器地址:M/IO输出高电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址。
T2状态——输出控制信号RD。 T3和Tw状态——检测数据传送是否能够完成。 T4状态——前沿读取数据,完成数据传送。 8086读总线周期(最小模式)50页
Similar presentations