760 likes | 929 Views
微型计算机原理. 及接口技术. 授课教师: 周茂霞. 第 2 章. 80X86CPU. 本章主要内容:. 1 、 16 位微处理器 8086/8088CPU 的内部编程结构 2 、内部寄存器的功能 3 、 CPU 外部管脚的作用 4 、系统对存储器的分段管理 5 、 IBM PC/XT 系统主机板的配置 6 、高档的 80X86 和 pentium 系列微处理器的功能结构、主要特点介绍。. 1M 64K. 分析直接寻址的范围,可访问的输入 / 输出接口地址范围.
E N D
微型计算机原理 及接口技术 授课教师: 周茂霞
第 2 章 80X86CPU
本章主要内容: 1、16位微处理器8086/8088CPU的内部编程结构 2、内部寄存器的功能 3、CPU外部管脚的作用 4、系统对存储器的分段管理 5、IBM PC/XT系统主机板的配置 6、高档的80X86和pentium系列微处理器的功能结构、主要特点介绍。
1M 64K 分析直接寻址的范围,可访问的输入/输出接口地址范围 8086 封装在标准40条引脚双列直插式管壳内(DIP),内含29000个晶体,有16位数据线和20条地址线。 工作频率:8086为5M HZ, 8086-2为8M HZ, 8086-1为10M HZ 8088CPU与8086异同:准16位微处理器,其内部寄存器、内部运算器以及内部操作都与8086基本相同,不同之处是外部的区别,8088外部数据总线为8位。 推出8088原因:兼容已有的一整套intel外围设备接口芯片。
2.1.1 8088/8086CPU的内部编程结构 • 重点:分为哪两个部件?各部件的组成和功能如何? • 8088/8086CPU从功能上分: • (1)总线接口部件(BIU):功能,负责CPU与存储器、I/O端口传送数据。即从内存取指令,送指令队列缓冲器。 • (2)执行部件(EU):功能,负责指令的译码、执行指令。 • CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或外设端口中取数据,将数据传送给执行部件,或把执行部件执行的结果传送给指定的内存单元或外设端口中。
2.1.1 8086/8088CPU的内部编程结构 总线接口单元(BIU) 地址总线20位 数据总线16位 执行单元(EU) 队列总线8位 图 2-1 8086的内部编程结构
一. 总线接口部件BIU 2.1.1 8088/8086CPU的内部编程结构 • 组成: (1)4个段地址寄存器 CS——16位的代码段寄存器 DS——16位的数据段寄存器 ES——16位的扩展段寄存器 SS——16位的堆栈段寄存器 (2)IP——16位指令指针寄存器 (3) 20位的物理地址加法器和总线控制电路 (4)6字节的指令队列 缓冲器
一. 总线接口部件BIU 2.1.1 8088/8086CPU的内部编程结构 • 组成: 1、指令队列缓冲器: 8086指令队列为6字节,8088指令队列4字节。8086/8088使用队列装置,采用流水线操作,8086预取6字节指令代码。都在执行指令的同时,从内存取出下一个字节或几个字节的指令代码,放在指令队列中,这样CPU执行完一条指令可以立即执行下一条指令,这种重叠操作的特点,提高了总线的信息传输效率和整个系统的执行速度。 总结:BIU与EU 两个单元相互独立,分别完成各自操作 两个单元可以并行执行,实现指令取指和执行的流水线操作
D15 D4 D3 D2 D1 D0 段地址左移4位 • 组成: 2、8086地址加法器 和段寄存器 段寄存器地址 0 0 0 0 偏移地址 高16位地址 加减器 高16位地址 + IP16位偏移量 物理地址 20位物理地址 图2-2物理地址的产生过程
假设代码寄存器CS=EA00H IP=08800H 求物理地址? • 组成: 2、8086地址加法器 和段寄存器 高16位地址 高16位地址 + + IP16位偏移量 20位物理地址
二. 执行部件 EU执行部件不与系统直接相连,它的功能只是负责译码和执行指令,发各样的控制信号。执行的结果或执行指令的所需要的数据,由EU向BIU发出请求,再由BIU对存储器或外设存取。 • 组成: (1)算术逻辑单元、 (2)标志寄存器、 (3)通用寄存器组 (4)暂存寄存器 (5)EU控制电路:控制、定时与逻辑电路,接收从BIU指令队列取来的指令,经指令译码形成各种定时控制信号。
8088的内部结构 地址加法器 20位 ∑ AH AL BH BL CH CL 8位 CS 通用 寄存器 DH DL DS SP SS 输入/输出控制电路 BP ES SI IP 外部总线 DI 内部暂存器 16位 执行部分控制电路 1 2 3 4 ALU 8位 指令队列 标志寄存器 总线接口部件 (BIU) 执行部件 (EU) 返回
FLAGS 16位标志寄存器 标志寄存器:用来存放指令执行过程的结果和特征,以便控制程序的走向。 状态标志位:反映记录算术或逻辑运算的结果或特征,有6个位,计算机根据运算的结果自动把相应的位置1或0。 控制标志位:用指令来设置,用来控制CPU的操作,由程序设置或清除。
FLAGS 16位标志寄存器 [例2.1]设AL=0111 1110B, BL=0010 1000B求 AL+BL=? ADD AL,BL;AL AL+BL 1、最高位没有产生进位,CF=0 2、AF=1 3、PF=1 4、D6CF=1 5、OF= D6CF + CF=1 这些位计算机自动完成。 0 1 1 1 1 1 1 0 +0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0
2.2 8086/8088 引脚信号与工作模式 2.2 .18086/8088 引脚信号 40条引脚线按功能可以分为5类: 一、地址/数据总线 二、地址/状态线 三、控制总线 四、电源线 和地线GND 括号为最大模式引脚名
2.2 8086/8088 引脚信号与工作模式 2.2 .18086/8088 引脚信号 40条引脚线按功能可以分为5类: 一、地址/数据总线 二、地址/状态线 三、控制总线 四、电源线 和地线GND 括号为最大模式引脚名
一、地址/数据总线AD15—AD0(Address Data Bus) 8086:这是分时复用 的地址数据总线,传送地址时,三态输出;传送数据时,双向三态输入/输出。 8088: AD7—AD0:分时复用, AD8—AD15,只用来输出地址。 优点:分时复用的方法才能使40条引脚实现20位地址,16位数据及众多控制信号和状态信号的传输,节省了引脚。
二、地址/状态A19/s6—A16/s3(Address/ Status) 分时复用 的地址状态总线,三态输出; 在总线周期T1状态,做为地址总线的高4位; 其它状态,作为状态信号: S6恒等0,表示CPU当前连在总线上; S5表示中断允许标志位的状态,S5=0表示CPU可以响应可屏蔽中断的请求,S5=1,表示CPU禁止一切可屏蔽中断。 S4,S3的组合表明当前正在使用的段寄存器。 S4 S3 状态 0 0 正在使用ES扩展段寄存器 0 1 正在使用SS堆栈段寄存器 1 0 正在使用CS或位采用任何段寄存器 1 1 正在使用DS扩展段寄存器
三、控制总线(Control Bus) • 1、NMI:非屏蔽中断引脚(输入),不受IF影响,不能用软件屏蔽,只要此信号出现,就在执行完当前的指令后,引起中断。 • 2、INTR:可屏蔽中断请求信号引脚。(输入,高电平有效),IF=1,CPU响应中断,停止执行的指令序列,转向中断服务子程序。 • 3、RESET:系统复位信号引脚(输入高电平有效) • 复位后内部寄存器状态DS、SS、ES、IP 、FLAGS都置0000H • 指令队列:清除 • CS:FFFFH
三、控制总线(Control Bus) • 4、 CLK:系统时钟,输入。通常与8284集成电路的时钟发生器相连,为系统提供时钟信号。 • 5、 RD:读控制信号三态输出,低电平有效,表示CPU将要执行一个存储器或I/O端口的读操作。 • 6、READY:准备好(输入) READY高电平是表示存储器、外部设备已准备好,CPU可以传送数据,当为低电平时,CPU采集到后,进入等待状态。 • 7、 TEST:测试信号引脚(输入), • 它用于多处理器系统,且只有在执行WAIT指令是才使用,当CPU执行WAIT指令时,每隔5个时钟周期对该线进行测试。若为高电平,仍等待,若为低电平等待结束。
三、控制总线(Control Bus) • 8、BHE/ S7:高8位数据总线允许/状态复用引脚(三态 输出) BHE 在总线周期的T1状态输出,当有信号时,表示总线高8位上数据有效;S7在T2---T4时输出。 • 9、 MN/MX:最大/最小模式控制引脚 • MN/MX为高电平时工作在最小模式, • MN/MX为低电平时工作在最大模式 • 四、VCC:电源引脚 • GND:接地(2条)
2.2 8086/8088 引脚信号与工作模式 2.2 .2 8086/8088 的工作模式 8086/8088有两种工作模式 最小工作模式:单处理机模式 最大工作模式:多处理机模式 两种方式下系统配置不同
2.2 .2 8086/8088 的工作模式 DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 锁 存 器 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 STB OE 一、总线接口芯片: 地址锁存器和总线驱动器 1、地址锁存器:暂存寄存器,根据CPU控制信息的状态 将总线上的地址信息暂存起来。 8282(或74LS373)是带有三态门的八位锁存器。2个控制信号。 为什么要地址锁存器? 8282
DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 锁 存 器 DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 STB OE 2.2 .2 8086/8088 的工作模式 当控制选通信号STB由高变低时,满足建立时间要求的输入数据被输入到锁存器中。 当控制信号线OE为低电平时,三态门处于导通状态,允许输出,数据出现在输出端上,当OE端为高电平时,输出三态门断开,输出缓冲器处于高阻抗。 ALE 8282
2.2 .2 8086/8088 的工作模式 总线收发器 A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 T OE 2、双向总线驱动器(总线收发器) 由于数据CPU与存储器或I/O接口之间的传送是双向的,所以要求总线驱动器是双向的。 8286是一种三态输出的8位同相双向总线驱动器,用于数据的双向传送,缓冲、驱动。 输入控制引脚T:方向控制器,T为高电平时A到B传送数据,T为低电平时B到 A传送数据。 门控端OE:低电平有效, OE=1 A组B组处于高阻状态 DT/R 8286
二、最小模式 当8086的第33引脚MN/ MX 固定接到+5V时, 就处于最小工作模式。既单处理器系统方式,它适合较小规模的应用。
地址锁存信号ALE控制8282的STB,用8282锁存器产生地址总线。地址锁存信号ALE控制8282的STB,用8282锁存器产生地址总线。 8286产生缓冲的数据总线,8086的DEN为低电平允许数据经8286传送, DT/R数据收发控制方向,接到8286的T引脚, DT/R=0时,CPU接收来自数据总线上的数据, DT/R=1时,CPU向数据总线发送数据,控制总线负载轻,不用驱动,直接从CPU引脚引出。 在最小工作模式下,CPU提供了所有的控制信号。 系统总线类型分为:地址总线、数据总线、控制与状态总线、中断与DMA信号。
最小方式:系统只有一个微处理器,产生全部控制信号。最小方式:系统只有一个微处理器,产生全部控制信号。 INTA:中断响应信号(输出) ALE:地址锁存允许信号(输出 DEN:数据允许信号 DT/R:数据接收/发送(输出) M/IO:存储器/输入输出控制信号(输出) WR:写信号(输出) HOLD:总线保持请求信号(输入 HLDA:总线保持响应信号(输出)
三、最大模式 当8086的第33引脚MN/ MX 固定接到地时, 就处于最大工作模式。既多处理器系统方式。 最大模式与最小摸小模式的主要区别:最大模式外加8288总线控制器,最小模式控制总线直接从CPU引脚引出,最大模式下通过8288对CPU发出的控制信号进行变换组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及数据收发器8286的控制信号,使总线控制功能更加完善。 最大模式是多处理机模式,需要协调主处理器与协处理器的工作问题,需要从硬件与软件两个方面解决。 8288因此需要加在最大模式系统中。
比较两种工作模式可以知道: 最小工作模式的控制信号直接从CPU中获得。 最大工作模式从S0 、S1、S2的组合中获得,所以加一片8288总线控制器。 2.2 .2 8086/8088 的工作模式
1、QS1和QS0 :指令队列状态信号。输出,两个信号电平的不同组合,指明了8086/8088内部指令队列的状态。 QS1 QS0 0 0 无操作 0 1 从指令队列的第一 个字节取走代码 1 0 队列为空 1 1 除第一字节外,还 取 走后 续字节中 的代码 2.2 .2 8086/8088 的工作模式
2、 S2、S1、S0:总线周期状态信号,输出。8288对此信号译码,产生内存及I/O端口的读/写控制信号。
3、 LOCK(WR)总线封锁信号.当其有效,其他主设备不能获得总线控制权。 4、RQ/GT1(HOLD),RQ/GT0(HALD):总线请求/允许信号。允许8086/8088以外的两个处理器向CPU发送使用总线的请求信号。总线请求与总线允许在同一条线上,方向相反。 RQ/GT0的优先级 比RQ/GT1高 2.2 .2 8086/8088 的工作模式
2.2 .2 8086/8088 的工作模式 5、INTA——中断响应信号,输出、低电平有效。 与最小模式下的INTA信号含义相同,即通知申请中断的外设,中断已被响应,将“中断类型码”放在数据总线上 由上可知,在最大模式下,对存储器的读/写和对I/O端口的读/写分别使用了独立读/写命令;而在最小模式下则是用M/IO(或IO/M)与RD或WR信号的组合来控制读/写操作的。
2.3 8086/8088 的总线操作时序 2.3 .1 指令周期与总线周期 指令周期:从取指令到执行完指令所需要的时间。 不同指令的指令周期不同。指令周期由一个个基本操作构成的。 总线周期:CPU从存储器或输入输出端口存取一个字节(或 一个字)所需要的时间。 总线操作:CPU为了与存储器或外设端口交换数据,需要执行一个 周期,这就是总线操作。按数据传输的方向,总线操作可以分为 总线读操作与总线写操作。 总线读操作:CPU将数据写入存储器或外设端口。 总线写操作:CPU从存储器或外设端口读数据。
2.3 .1 指令周期与总线周期 时钟周期:一个最基本的总线周期由4个时钟周期构成,一个时钟周期就是一个T状态. 时钟周期是CPU的组基本的计量单位,由计算机的主频决定。如:主频f=5MHz,时钟周期tc=1/f=1/5=0.2us
缓冲 地址/数据总线 浮空 地址输出 数据输入 读周期 地址/数据总线 地址输出 数据输出 写周期 2.3 .1 指令周期与总线周期 典型的BIU总线周期波形图 CPU向总线发出地址信息,以指示要寻址的存储器单元或外设端口的地址,CPU从总线撤消地址,低16位总线成高阻状态,为传输数据做准备,地址总线的最高四位用来输出本周期的状态信息,表示中断允许状态或当前正在使用的段寄存器的名字。
缓冲 地址/数据总线 浮空 地址输出 数据输入 读周期 地址/数据总线 地址输出 数据输出 写周期 2.3 .1 指令周期与总线周期 典型的BIU总线周期波形图 多路的低16位总线,出现CPU写出或CPU从存储器或I/O端口读入的数据。若系统中选用的存储器或外设的工作速度较慢,不能在T3状态把数据送到数据总线上,就要用硬件电路来产生READY信号,在T3状态启动前,向CPU发送一个‘数据未准备好’信号,则会在T3后与T4前状态之间插入等待状态TW,以后在每一个TW的前沿,采样READY信号,直到READY变为高电平,才会在当前TW结束后,进入T4状态。在TW状态,8088的状态信息和控制信号均维持不变。
缓冲 地址/数据总线 浮空 地址输出 数据输入 读周期 地址/数据总线 地址输出 数据输出 写周期 2.3 .1 指令周期与总线周期 Ti 典型的BIU总线周期波形图 当CPU和内存或I/O接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。如果在一个总线周期之后,不立即执行下一个总线周期,那么系统总线就处于空闲状态,此时执行空闲周期。空闲周期包含多个时钟周期。 前个周期为写,低16位继续驱动数据信息 前个周期为读,低16位继续高阻
2.3 .2 总线读操作时序 左图为最小模式下CPU读操作时序。 T1 T2 T3 T4
2.3 8086/8088 的总线操作时序 2.3 .2 总线读操作时序 ⑴在T1状态,CPU首先要判断 是从存储器读数据,还是从 I/O端口读取数据 。这可用控制信号 M / IO指出,若是存储器读,则M / IO为高;若使从 I/O端口读 ,则 M / IO为低 。有效电平一直保持整个总线周期(T4状态)
2.3 8086/8088 的总线操作时序 2.3 .2 总线读操作时序 (2)在T2状态,地址信号消失,AD15~AD0转为高阻,为下面读出数据作准备。 在T2状态DEN变为低电平,从而在系统中接有数据收发器8286的系统中,允许数据传输。 读信号RD在T2状态变为有效,允许将被地址信息选中的存储器单元或I/O端口中的数据读出。 ⑶在T3状态,被选中的存储单元或I/O端口把数据送到数据总线,CPU通过AD15~AD0来读取。
2.3 8086/8088 的总线操作时序 2.3 .2 总线读操作时序 ⑶在T3状态,被选中的存储单元或I/O端口把数据送到数据总线,以备CPU来读取。 ⑷在T4状态,在T4状态的前沿,CPU采样数据总线,获得数据。 若系统中选用的存储器或外设的工作速度较慢,不能在T3状态把数据送到数据总线上,就要用硬件电路来产生READY信号,则会在T3和T4状态之间插入等待状态TW,以后在每一个TW的前沿,采样READY信号,是到READY变为高电平,才会在当前TW结束后,进入T4状态,图表示式插入一个TW的读周期时序。 ⑸在TW状态,8086的状态信息和控制信号均维持不变。
2.3 8086/8088 的总线操作时序 2.3 .3 总线写操作时序 ① ② ④ ⑦ ③ ⑨ ⑥ ② ⑧ ⑤
2.3 8086/8088 的总线操作时序 2.3 .3 总线写操作时序 和读周期时序一样,最基本的写周期已由4个T状态组成,当存储器或外设端口的工作速度较慢时,以须在T3和T4状态时间插入一个或几个TW状态。 ⑴在T1状态, M / IO变为有效,以之处是对存储器还是对外设端口进行写操作。若写入存储器, M / IO为高,若写入I/O端口, M / IO为则为低。 如① 该有效电平保持到T4。 与读周期一样,在T1状态需提供存储器和外设端口地址,并同样要正脉冲ALE信号把地址信息锁存到地址锁存器8282中。 当系统中接有数据收发器8286时,CPU在T1状态时DT/R为高电平,以表示执行的是写操作。 BHE高数据位有效电平,如④ ⑤
2.3 8086/8088 的总线操作时序 2.3 .3 总线写操作时序 ⑵在T2状态,地址信号发出后,CPU把要写入存储器或外接设备端口的数据,送到AD15~AD0上,同时,CPU在高4位地址/状态复用线上送出状态信息S6~S3。 写信号WR在T2状态变为有效,此信号与读存储器中的RD信号一样,一直维持信号不变。⑶在T3状态,CPU进行提供S6~S3状态信息和数据,并维持有关控制信号不变。 ⑷在T4状态CPU完成对指定的存储器或外设端口的数据写入,数据和地址都会被删除。
2.4 8086/8088 存储器的组织与管理 2.4 .1 存储器的组织 • 存储器组织: • 20条地址总线,按字节编址,可寻址空间1MB,存储单元地址为20位二进制数,地址范围00000~FFFFFH。 • 字节序列存放顺序:低位字节低地址,高位字节高地址。 • 任何两个相邻字节单元可以存放一个的16位数据,称为一个字。 • 规则字:字的地址是偶地址的字。 • 不规则字:字的地址是奇地址的字。 • 高位字节: • 低位字节: MEA MEA MEA 00000H 00001H FFFFEH FFFFFH 偶地址字 21000H 21001H 82000H 82001H 82002H 奇地址字
2.4 8086/8088 存储器的组织与管理 2.4 .1 存储器的组织 考虑8088的读写数据的情况: 1、8位数据总线,因此以字节为单位访问内存; 2、一个总线周期读取一个字节的指令代码; 3、对于8088把字操作数存放在偶数地址开始的存储单元,在运行程序时,与操作数存放在奇地址开始的存储单元一样; 4、如果要移植程序到8086系统时,把操作数存放在偶数地址开始的存储单元,将会获得最大的吞吐量,所以字操作数一般存放在偶数地址开始的单元中。