500 likes | 684 Views
第二章 8086系统结构. 第一节 8086 CPU 的结构 第二节 8086 CPU 引脚功能 第三节 8086/8088存储器组织 第四节 8086系统配置. 第一节 8086 CPU 的结构. 执行部件( EU) 和总线接口部件( BIU) 寄存器结构. 执行部件( EU) 和总线接口部件( BIU). 8086 CPU 的内部结构由两部分组成: 总线接口部件 BIU、 执行部件( EU), 采 用流水线工作方式 总线接口部件 BIU: 负责取指令;存、取操作数 执行部件( EU): 负责分析指令、执行指令. EU. BIU. 段寄存器 指令指针.
E N D
第二章 8086系统结构 • 第一节 8086CPU的结构 • 第二节 8086CPU引脚功能 • 第三节 8086/8088存储器组织 • 第四节 8086系统配置
第一节 8086CPU的结构 • 执行部件(EU)和总线接口部件(BIU) • 寄存器结构
执行部件(EU)和总线接口部件(BIU) 8086CPU的内部结构由两部分组成: 总线接口部件BIU、执行部件(EU),采 用流水线工作方式 总线接口部件BIU:负责取指令;存、取操作数 执行部件(EU):负责分析指令、执行指令
EU BIU 段寄存器 指令指针 通用寄存器 地址生成和总线控制 操作数 指令队列 ALU 标志
BIU 总线接口部件 组成:段寄存器 16位 CS SS DS ES 指令指针(IP)存放指令的偏移地址 地址形成逻辑完成逻辑地址到物理地址转换 指令队列 采用FIFO结构,预取指令 总线控制逻辑 发出总线控制信号
任务: 把段寄存器和IP相加形成20BIT有效地址 16*CS+IP 取指令 8086 如果队列中有2字节以上空格,EU不要求总线,则BIU预取指令 8088 如果队列中有1字节以上空格,EU不要求总线,则BIU预取指令 EU要求总线周期,有EU提供信号和地址来源,BIU进入总线,存取数据
EU执行部件 组成:ALU算术逻辑运算单元 PSW标志寄存器 存放运算结果特征 寄存器组存放中间结果 EU控制器取指令控制、时序控制 任务:从队列中取指令控制 访问M和I/O 由EU通知BIU提供信号和地址来源 内部:根据指令要求对寄存器和标志管理
寄存器结构 • 通用寄存器 • 指针和变址寄存器 • 段寄存器 • 指令指针 • 标志寄存器
通用寄存器组 EAX AX AH AL EBX BX BH BL ECX CX CH CL EDX DX DH DL • 可8位、16位使用 用于存放数据或地址 • 专用功能 BX——基址寄存器 AX——累加器 CX——计数器 AX,DX——用于乘、除
指针和变址寄存器 ESP EBP ESI EDI SP 堆栈指针 BP 基址寄存器 SI 源变址寄存器 DI 目的变址寄存器 用于堆栈操作 用于变址操作 这四个寄存器只能按16位操作 用于堆栈和变址操作计算操作数的有效地址
段寄存器 存放每一段的起始地址 用于存放程序 CS*16+IP——取指 用于存放堆栈 SS*16+SP——堆栈 用于存放数据 DS*16+SP,BP,SI 用于存放数据 ES*16+BP,DI CS 代码段寄存器 SS 堆栈段寄存器 DS 数据段寄存器 ES 附加段寄存器
指令指针IP • 每执行一条指令,IP自动加1 • IP指向偏移地址,有效地址16*CS+IP • 程序员不能直接修改IP,(通过转移、调用、中断、中断返回)
标志寄存器PSW 标志寄存器用来存放运算结果的特征 • 6位状态位 • 3位控制位
若最高位产生进位或借位,则CF置1 若最高位无进位或借位,则CF清0 状态位: CF进位标志: 若运算结果中“1”的个数为偶数个,PF置1 若运算结果中“1”的个数为奇数个,PF清0 PF奇偶标志: 第3位向第4位有进位或借位 AF置1 第3位向第4位无进位或借位 AF清0 AF辅助进位标志: ZF 零标志: 若运算结果为0,则ZF为1,否则ZF为0 若运算结果为正,SF为0 若运算结果为负,SF为1 SF符号标志: OF溢出标志:若运算结果产生溢出OF为1,否则OF为0
DF=0,地址指针自动增加(由低到高) DF=1,地址指针自动减少(由高到低) 控制位: DF方向标志 TF 陷阱标志 若TF=1,CPU出单步工作方式,每执行一条指令,产生一次单步中断 IF中断标志 当IF=1时,允许中断, 当IF=0时,禁止中断
第二节 8086CPU引脚功能 8086芯片共计40个引脚,主要分成三类:地址线 数据线和控制线。外加电源。CPU芯片的引脚完 全反映了该芯片的内部功能以及和外界部件的交 互方式。学习这部分内容着重考察CPU内部的功 能模块以及输入输出需求,掌握引脚的功能定义。 学习要求: 信号名称 信号含义 有效电平 输入/输出 状态(两态/三态) 信号来源
一、8086 CPU引脚及功能 • 地址总线和数据总线 *AD15~AD0: 地址/数据总线 双向 三态 注:8086/8088地址线,数据线分时使用 总线的第一周期作地址线(16bit宽A15~A0) 其余周期 作数据线 (8086 16bit/8088 8bit) *A19~A16/S6~S3:地址/状态 三态 输出 注:这四条线分时使用复用 总线的第一周期作地址线A19~A16 (与A15~A0构成20bit) 其余周期 作状态线 S6~S3 注:8086访问存储器,使用20条地址线 8086访问I/O , 使用16条地址线
S6~S3:状态线 S6:为低电平 S5指示中断允许IF状态 S4 S3指示哪一个段寄存器 S4 S3 段寄存器 0 0 ES 0 1 SS 1 0 CS或非存储器操作 1 1 DS
控制总线 控制总线是传送控制信号的一组信号线,有 输入,输出。
*MN/MX线:最小/最大方式控制线 若MN/MX=1,8086处于最小方式 若MN/MX=0,8086处于最大方式 8086具有两种系统配置方式:最小模式和最大模式,分 别对应单机系统和多机系统。 最小模式:由8086提供全部控制信号 最大模式:由专用总线控制器8288提供总线控制信号 在不同模式 8086的有些引脚不完全相同
受MN/MX影响的控制信号 脚 最大 最小 脚 最大 最小 28 S2 IO/M 27 S1 DT/R 26 S0 DEN 30 RQ/GT0 HOLD 24 QS1 INTA 31 RQ/GT1 HLDA 25 QS0 ALE 29 LOCK WR
*S2~S0:总线周期状态信号 S2 S1 S0 操作类型 0 0 0 中断响应 0 0 1 读I/O端口 0 1 0 写I/O端口 0 1 1 暂停 1 0 0 取指 1 0 1 读存储器 1 1 0 写存储器 1 1 1 无效
最小方式: *IO/M 存储器/输入输出请求信号 *DT/R 数据发送/接受端 *DEN 数据允许端
*RQ/GT0 *RQ/GT1 在最大方式下:这两条信号为总线的请求和回答 信号 、两信号功能相同 、RQ/GT0 优先、 双向 /RQ /GT 释放 在T4或下一个T1输出/GT
在最小方式 *HOLD 总线请求信号、 输入 、高电平有效 *HLDA 总线响应信号、输出、高电平有效
最大方式: QS1 QS0 为指令队列状态信号、输出、高电平 有效 QS1 QS0 队列状态 0 0 无操作 0 1 取指令队列第一字节 1 0 队列空 1 1 取指令队列后续字节
最小方式: INTA 中断响应信号、输出、低电平有效 ALE 地址锁存允许信号、输出、高电平 有效
LOCK 最大方式有效、总线优先封锁信号 三态、输出、低电平有效 WR 最小方式有效、写信号、三态、输 出、低电平有效
不受MN/MX影响的控制信号 *RD读信号 三态 输出 、低电平有效 *READY 准备就绪信号 、输出、 高电平有效 *INTR 中断请求信号、输入、高电平有效 *NMI 非屏蔽中断请求信号、 输入 、正沿触发 *TEST 测试信号 、输入 、低电平有效 *RESET 复位信号、 输入、 高电平有效
复位后,8086CPU的状态: 寄存器 状态 PSW 0000H CS FFFFH DS 0000H SS 0000H ES 0000H IP 0000H 指令队列 清空
其它 CLK:时钟信号,由8284时钟产生 VCC:电源 5V(5%) VSS: 地
二、8086与8088引脚不同 • 数据线(8086:AD15~AD0,8088:AD7~AD0) • 存储器/输入输出控制线不同(8086:M/IO,8088 M/IO) • BHE/S7不同( BHE是总线高允许)
第三节 8086/8088存储器组织 • 一、存储器分段管理 • 二、物理地址的计算方法 • 三、逻辑地址来源 • 四、8086/8088存储器分体结构 • 五、堆栈的概念
一、存储器分段管理 • 20根地址线可寻址1MB地址空间,而实际寄存器 是16位,只能寻址64KB空间。于是采用分段管理 方式,每个段不超过64KB。段之间可连续,可分 离,可重叠。 • 段的首地址有限制,必须能被16整除。即低四位全为0。 1 Paragraph = 16 Bytes 每个存储单元由段地址和偏移地址组成
二、物理地址的计算方法 • CPU内部寄存器是16位,给出的地址也是16位,不 能直接用于20位地址空间的寻址,因此必须寻求一种 将16位逻辑地址转换成20位物理地址的方法。 • 逻辑地址:段基址和偏移地址组成,无符号16位二进 制数,是程序设计是采用的地址。 • 物理地址:存储器绝对地址。 物理地址=16*段地址+偏移地址
三、逻辑地址来源 常用搭配关系: (CS, IP), (DS, SI/DI/BX), (SS, SP/BP) 等等。
四、8086/8088存储器分体结构 • 8086 A1~A19 A0 BHE SEL A0~A18 SEL A0~A18 奇地址512K*8 偶地址512K*8 D7~D0 D7~D0 D7~D0 D15~D8
8088 A0~A19 A19~A0 1M*8 D7~D0 D7~D0
五、堆栈的概念 • 专用存储区域,暂时保存数据。“后进先出”(LIFO) • SS—段基址,SP—栈顶单元地址 • 堆栈生长方向:由高地址区向低地址区增长。 • 用途:中断,子程序调用,暂存或交换数据。
例如:SS=C000H,SP=1000H,则 C0000H SP C1000H 〈64k 栈底
第四节 8086系统配置 8086具有两种系统配置方式:最小模式和最大模 式,分别对应单机系统和多机系统。 注意学习一般的计算机系统的基本配置方式,配 置的策略,建立微型机系统的基本配置模型。
一、基本总线接口部件 • 地址锁存器8282/8283 • 数据总线缓冲器8286/8287 • 时钟发生器8284 • 总线控制器8288 • 总线裁决器8289
1. 地址锁存器8282/8283 • 8282(不反相)和8283(反相)具有三态输出的锁存缓冲器,用于锁存、缓冲、多路输出 • 8282的逻辑图 • 8086系统中,8282(8283)用于地址锁存器 • 连接: ALE——STB OE——接地 DI——AD DO——A(地址)
DI0 DO0 D Q CLK DO1 DI1 DO2 DI2 DO7 DI7 OE STB
2、数据总线缓冲器8286/8287 • 8286(不反相)8287(反相)具有8路双向缓冲电路,可实现8位数据的双向传送,8286/8287具有很强总线驱动能力,可作为总线驱动器 • 8286逻辑图 • 8086系统中,8286(8287)为总线驱动器 • 连接:T——DT/R OE——DEN A——AD B——D(数据)
A0 B0 B1 A1 A2 B2 B7 A7 或 或 OE T
3、时钟发生器8284 • 提供整个CPU芯片的时钟控制信号,是实现精确控制的必要条件。 • 三大功能模块: • 时钟信号发生器 OSC:14.318MHz CLK: 4.77MHz, 占空比1/3,供CPU PCLK: 2.385MHz,占空比1/2,供外设 • 复位生成电路 • 就绪控制电路
4、总线控制器8288 由于8086系统配置为多处理器系统,有多个具有自主性 的总线控制设备,原先的一些引脚用来传送其他控制信 号,因此需要增加独立的总线控制器来输出总线控制命 令。 引脚功能: • 总线状态信号 • 控制输入信号 • 总线命令信号 • 总线控制信号 两种工作方式: I/O总线方式:局部总线方式 系统总线方式
5、总线裁决器8289 当系统中存在多个对总线具有主控权的设备时,每个主 控设备需要增设8289来对总线进行合理分配,将总线使 用权赋给优先权最高的设备。 引脚功能: • 状态信号:8086CPU输出 • 控制信号 • 多总线命令信号 • 系统信号
二、最大方式和最小方式基本配置 • 最小配置:1片8284、3片8282、2片8286 • 最大配置:除最小配置,外加8288、8289