1.16k likes | 1.46k Views
第二章 16 位和 32 位的微处理器. 本章学习重点. 8086 的编程结构,尤其是寄存器组; 8086 标志寄存器各个标志的含义; 8086 的读写时序、总线操作和中断机制; Pentium 的先进技术; Pentium 的工作方式; Pentium 的原理结构、寄存器组和描述符; Pentium 的主要信号; Pentium 的总线状态; Pentium 的中断机制和中断描述符表; Pentium 的段页两级保护机制。. 微处理器的性能描述. 字长: 指 CPU 能同时处理的数据位数,也称为数据宽度。字长越长,计算能力越快,速度越快。
E N D
本章学习重点 8086的编程结构,尤其是寄存器组; 8086标志寄存器各个标志的含义; 8086的读写时序、总线操作和中断机制; Pentium的先进技术; Pentium的工作方式; Pentium的原理结构、寄存器组和描述符; Pentium的主要信号; Pentium的总线状态; Pentium的中断机制和中断描述符表; Pentium的段页两级保护机制。
微处理器的性能描述 字长:指CPU能同时处理的数据位数,也称为数据宽度。字长越长,计算能力越快,速度越快。 主频:CPU的时钟频率,这和CPU的运算速度密切相关,主频越高,运算速度越快。
2.1 16位微处理器8086 2.1.1 8086的编程结构 2.1.2 8086的引脚信号和工作模式 2.1.3 8086的操作和时序 2.1.4 8086的存储器编址和I/O编址
2.1.1 8086的编程结构 • 8086是Intel系列的16位微处理器,有16根数据线和20根地址线。 • 编程结构是指从程序员和使用者的角度看到的结构。 • 从功能上,8086分为两部分: • 总线接口部件(BIU):负责与存储器、I/O端口传送数据。 • 执行部件(EU):负责指令的执行。
8086的内部结构 2.2 8086/8088微处理器 微机原理第二章 IA-32结构的微处理器(6)
2.1.1 8086的编程结构 • 总线接口部件 • 4个段地址寄存器, • CS 16位的代码段寄存器 • DS 16位的数据段寄存器 • ES 16位的附加段寄存器 • SS 16位的堆栈段寄存器 • 16位的指令指针寄存器IP • 20位的地址加法器 • 6字节的指令队列缓冲器
2. 执行部件 4个通用寄存器,即AX、BX、CX、DX 4个专用寄存器,即BP、SP、SI、DI 标志寄存器 算术逻辑部件 2.1.1 8086的编程结构
状态标志寄存器F(9个状态标志位) 状态标志:状态标志用来反映EU执行算术和逻辑运算以后的结果特征。 2.1.1 8086的编程结构
控制标志位:控制CPU的操作 2.1.1 8086的编程结构
2.1.1 8086的编程结构 3. 8086的总线周期的概念 CPU是一个复杂的时序数字逻辑,其所有的操作都必须在统一的时钟下完成。由片外输入CLK引脚的时钟脉冲信号,是系统定时的基本脉冲,其频率称为主频,其周期称为时钟周期,有时时钟周期又称为T状态。时钟周期是CPU执行各种操作的最小时钟单位。 总线周期,指的是8086CPU通过总线,执行一次访问存储器或访问I/O端口的操作或操作的时间。若执行的是数据输出(从CPU),则称为"写"总线周期;若执行的是数据输入(到CPU),则称为"读"总线周期。。
典型的8086总线周期波形图 总线周期 总线周期 T1 T2 T3 T4 T1 T2 T3 T4 CLK 地址/数据 地址 缓冲 数据 地址 缓冲 数据 总线 • 在8086中,一个最基本的总线周期由4个时钟周期组成, 因此基本总线周期用T1,T2,T3,T4表示 ① T1状态,发地址信息 ② T2状态,总线的高4位输出状态信息 ④ T3之后,可能插入TW ③ T3状态,高4位状态信息,低16位数据 ⑤ 在T4状态,结束。
2.1 16位微处理器8086 2.1.1 8086的编程结构 2.1.2 8086的引脚信号和工作模式 2.1.3 8086的操作和时序 2.1.4 8086的存储器编址和I/O编址
2.1.2 8086的引脚信号和工作模式 1.最小模式和最大模式的概念 (1)最小模式:在系统中只有一个微处理器。 (2)最大模式:两个或多个微处理器(主处理器、协处理器) • 8087:数值运算协处理器,实现多种类的数值操作,如高精度的整数和浮点运算,也可以进行超越函数(如三角函数、对数函数)的计算 • 8089:输入/输出协处理器,有一套专门用于输入/输出的指令系统,直接为输入/输出设备服务。
2.1.2 8086的引脚信号和工作模式 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET 2.8086/8088的引脚信号和功能 ①数据线和地址线复用 ②有16根数据线 ③第21脚(RESET)为输入复位信号 ④第22引脚为“准备好”(READY)信号 ⑤高4位地址和状态线复用
2.1.2 8086的引脚信号和工作模式 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET GND VCC:地和电源 AD15~AD0:地址/数据复用 A19/S6~A16/S3 地址/状态复用 S6:8086当前与总线相连 S5:IF的值 S4、S3:当前使用的段寄存器 RD#:读信号输出 MN/MX#:最小和最大模式控制输入 BHE#/S7 :高8位数据总线允许/状态复用 TEST#:测试信号输入 RESET :复位信号输入 NMI:非屏蔽中断输入 READY :“准备好”信号输入 INTR:可屏蔽中断请求信号输入 CLK:时钟输入
2.1.2 8086的引脚信号和工作模式 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET 3.最小模式 HLDA:总线保持响应信号输出 HOLD:总线保持请求信号输入 WR#:写信号输出 M/IO#:存储器/输入输出控制信号输出 DT/R#:数据收发信号输出 DEN#:数据允许信号 ALE:地址锁存允许信号输出 INTA#:中断响应信号输出
2.1.2 8086的引脚信号和工作模式 8086在最小模式下的典型配置
2.1.2 8086的引脚信号和工作模式 最小模式连接特点: • MN/MX#端接+5V • 1片8284A作为时钟发生器 • 地址锁存器 • 存储器和外设较多时,需要总线收发器
2.1.2 8086的引脚信号和工作模式 • M/IO、RD、WR信号的关系
2.1.2 8086的引脚信号和工作模式 • 8284A和8086的连接
2.1.2 8086的引脚信号和工作模式 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD RQ/GT0 RQ/GT1 LOCK S2 S1 S0 QS0 QS1 TEST READY RESET 4. 最大模式 • QS1、QS0:指令队列状态信号输出 • S2#、S1#、S0#:总线周期状态信号输出 • LOCK#(lock):总线封锁信号输出 • RQ#/GT1#、RQ#/GT0#:总线请求信号输入、总线授权信号输出
8086在最大模式下的典型配置 : 2.1.2 8086的引脚信号和工作模式
2.1 16位微处理器8086 2.1.1 8086的编程结构 2.1.2 8086的引脚信号和工作模式 2.1.3 8086的操作和时序 2.1.4 8086的存储器编址和I/O编址
2.1.3 8086的操作和时序 • 8086的主要操作: • 系统的复位和启动操作; • 暂停操作; • 总线操作; • 中断操作; • 最小模式下的总线保持; • 最大模式下的总线请求/允许。
2.1.3 8086的操作和时序 1. 系统的复位和启动操作
2.1.3 8086的操作和时序 2. 总线操作 • 8086最小方式下的总线读操作 • 8086最小方式下的总线写操作
补充概念:堆栈 堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。 堆栈:在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则 。 堆栈的组织:堆栈指示器SP,它总是指向堆栈的栈顶堆栈的伸展方向既可以从高地址向低地址,也可以从低地址向高地址。8086/8088的堆栈的伸展方向是从高地址向低地址。 演示 微机原理第2章 16位和32位的微处理器(30)
2.1.3 8086的操作和时序 3.中断操作和中断系统 (1)什么是中断?8086的中断有哪些类型? • 中断是指当CPU正在执行程序时,外设(或其它中断源)向CPU发出请求,CPU暂停当前程序的执行,转向该外设服务(或称中断服务)程序,当中断服务程序运行结束后,返回原程序继续执行的过程。 • 中断可分为内部中断(软件中断)和外部中断(硬件中断) 除法错中断
2.1.3 8086的操作和时序 (2) 中断向量和中断向量表 阅读课本P27到P28中断向量和中断向量表部分的内容,思考如下问题: ① 8086有256种类型的中断,每一种类型的中断对应的中断服务程序的入口地址是不是固定的?系统怎样找到中断服务程序的入口地址? ② 假设某系统中对应于中断类型号为30H的中断处理子程序从1234H:5678H开始,则中断向量应该怎样存放? ③ 如果一个用户想定义某个中断,应该选择在什么范围?
中断向量表 地址指针 中断类型码 00000H 段基址×16 偏移地址 偏移地址 偏移地址 ×4 IP 代码段 段基址 CS 003FFH 2.1.3 8086的操作和时序 (2) 中断向量和中断向量表 中断向量:中断处理子程序的入口地址,每一个中断类型对应一个中断向量。
2.1.3 8086的操作和时序 (3) 硬件中断 • NMI • INTR
2.1.3 8086的操作和时序 中断的基本过程: • 中断检测 • 中断响应 • 中断处理 • 中断返回
(4) 硬件中断的响应和时序 阅读课本P29到P32页的相关内容,思考如下问题: ①简述8086的中断响应的总线周期 ②可屏蔽中断的响应过程是怎样的?CPU实际执行的与之相对应的总线时序是什么? ③可屏蔽中断与不可屏蔽中断的处理有什么不同? ④一个可屏蔽中断请求到来时,通常只要中断允许标志为1,便可在执行完当前指令后响应,在哪些情况下有例外? ⑤8086在中断响应期间为什么要将IF和TF清0? ⑥在对堆栈指针进行修改时,要特别注意什么问题?为什么?
2.1.3 8086的操作和时序 第1个总线周期,通知外设,CPU准备响应中断; 第2个总线周期,外设发送中断类型码
(4) 硬件中断的响应和时序 可屏蔽中断的响应过程 : ①读取中断类型号(中断响应周期) ②将标志寄存器的值推入堆栈(1个总线写周期) ③把标志寄存器的IF和TF清零 ④将断点保护到堆栈中。 (2个总线写周期) ⑤寻找中断向量,转入中断处理程序 (2个总线读周期)
2.1.3 8086的操作和时序 (5) 中断处理子程序 PUSH AX ;进一步保护中断现场 PUSH BX PUSH CX STI ;开放中断 ┇ ;中断处理的具体内容 POP CX ;恢复现场 POP BX POP AX RETI ;中断返回
2.1.3 8086的操作和时序 (6) 软件中断 阅读课本P32到P33的相关内容,思考: ① 软件中断有哪些特点? ② 在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么不同之处?
2.1.3 8086的操作和时序 4. 最小模式下的总线保持 利用HOLD和HLDA信号实现总线保持
2.1.3 8086的操作和时序 • 5. 最大模式下的总线请求/授权 利用RQ#/GT#实现总线请求/授权
2.1 16位微处理器8086 2.1.1 8086的编程结构 2.1.2 8086的引脚信号和工作模式 2.1.3 8086的操作和时序 2.1.4 8086的存储器编址和I/O编址
2.1.4 8086的存储器编址和I/O编址 1. 8086的存储器编址
2.1.4 8086的存储器编址和I/O编址 CS、DS、SS和其他寄存器组合指向存储单元的示意 :
2.1.4 8086的存储器编址和I/O编址 • 分段编址的好处 • 程序中的指令只涉及16位地址,减短了指令长度,提高了执行程序的速度。在程序执行过程中,不需要在1M空间中去寻址,多数情况下只在一个较小的存储器段中运行。 • 多数指令运行时,并不涉及段寄存器的值,而只涉及16位的偏移量。也为程序的浮动装配创造了条件。
2.1.4 8086的存储器编址和I/O编址 • 存储器中,有几个部分的用处是固定的: ① 00000~003FFH:中断向量表 ② B0000H~B0F9FH:单色显示器的显示缓冲区 ③ B8000H~BBF3FH:彩色显示器的显示缓冲区 ④ FFFF0H~FFFFFH :无条件转移指令
2.1.4 8086的存储器编址和I/O编址 存储器按字节组织,按字节分配地址 当存放的数为一个字(16位,2个字节)时,则将字的高位字节放在高地址中,将低位字节存放在低地址中; 当存放的数是双字形式(地址指针数据)时,则将低字(偏移量)存放在较低地址中,高字(段基址)存放在较高地址中 。 地址 字节数 字节数 字:0B23H 地址指针 段基址:2000H 偏移量:3000H 微机原理第2章 16位和32位微处理器(48)—教育技术07级
2.1.4 8086的存储器编址和I/O编址 对存放的字,其低位字节可以在奇数地址中(即从奇数地址开始存放),这种方式为非规则存放,这样存放的字为非规则字; 若是低位字节在偶数地址中(即从偶数地址开始存放)为规则存放,这样存放的字称为规则字。 非规则字 280CH 规则字 200BH 微机原理第2章 16位和32位微处理器(49)
2.1.4 8086的存储器编址和I/O编址 A19~A1 A0 BHE CS A19~A1(高字节) 奇地址存储体 512K×8 CS A19~A1(低字节) 偶地址存储体 512K×8 D15~D8 高8位数据线 D7~D0 低8位数据线 • 若一个字是规则存放,则对它的存取可在一个总线周期完成,而非规则字的存取则需二个总线周期。 A0=0:同时选中高位库和低位库,传送2字节; A0=1:只选中高字节,传送1字节 微机原理第2章 16位和32位微处理器(50)