320 likes | 453 Views
微型计算机技术. 教 学 指 导 (二). 太原广播电视大学 郭建勇. 第 2 章 微处理器的结构及微计算机的组成 微处理器是微计算机系统的核心部件。通过学习要求掌握 8086 微处理器内部结构的组成、各功能部件的作用及操作过程、最小方式下对外引脚信号的定义以及 8086 的中断结构。还要求掌握最小方式厂微计算机的基本组成及 8086 的总线操作时序。对于 80386 微处理器要求了解其内部结构、各功能部件的基本操作,以及在虚拟存储空间下存储器管理机制。 2 . 1 80x86 微处理器系列概况
E N D
微型计算机技术 教 学 指 导(二) 太原广播电视大学 郭建勇
第2章 微处理器的结构及微计算机的组成 • 微处理器是微计算机系统的核心部件。通过学习要求掌握8086微处理器内部结构的组成、各功能部件的作用及操作过程、最小方式下对外引脚信号的定义以及 8086的中断结构。还要求掌握最小方式厂微计算机的基本组成及8086的总线操作时序。对于80386微处理器要求了解其内部结构、各功能部件的基本操作,以及在虚拟存储空间下存储器管理机制。 • 2.1 80x86微处理器系列概况 • 1.从8080/8085到8086 • 1978年InteI公司推出了16位微处理器,命名为8086。这个微处理器与其前一代8位微处理器8080/8085相比: (1)8086有16位数据总线,处理器与片外传送数据时,一次可传送16位二进制数,而8080/8085一次只能传送8位。 • (2)是8086的寻址空间从8080/8085的64KB提高到1MB。 (3)是8086采用了流水线技术而8080/8085是非流水线结构。 • 2.从8086到8088 • 8086是16位微处理器,而8088是准16位微处理器。 3.80286、80386及80486微处理器 • 4.80586、P3、P4微处理器
2.2 8086/8088微处理器的基本结构 2.2.1 8086微处理器的基本组成及逻辑框图
8088与8086微处理器的组成基本相同:不同的是8086内部指令队列缓冲器为6级;8088内部指令队列缓冲寄存器为4级。8086对外数据总线为16位,8088对外数据总线只有8位。8088与8086微处理器的组成基本相同:不同的是8086内部指令队列缓冲器为6级;8088内部指令队列缓冲寄存器为4级。8086对外数据总线为16位,8088对外数据总线只有8位。 • 8088与8086微处理器 • 执行部件EU 总线接口部件BIU 输入输出控制电路 指令指针寄存器IP 指令队列缓冲器 地址加法器 段寄存器 算术逻辑运算部件ALU 寄存器组 标志寄存器 操作控制电路 计数器寄存器CX 数据寄存器DX 堆栈指针寄存器SP 基址指针寄存器BP 目的变址寄存器DI 源变址寄存器SI 累加器AX 基地址寄存器BX 附加段寄存器ES 堆栈段寄存器SS 数据段寄存器DS 代码段寄存器CS
OF DF IF TF SF ZF AF PF CF • 标志寄存器:标志寄存器为16位的寄存器 • 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 • 进位标志(CF)。运算指令执行之后,若在最高位上产生进位、借位时,该标志位被置1。 • 全零标志(ZF)。运算指令执行后,结果为全零时该标志位置1。 • 符号标志(SF)。在带符号数运算时,如果运算结果最高位为1,表示结果为负值,SF位被置1,否则SF位被置0。SF也称为负标志位。 • 奇偶标志(PF)。运算指令执行后,运算结果的低8位中含1的位数为偶数时,该标志位置1,否则被置0。也称为偶标志位。 • 辅助进位标志(AF)。运算指令执行后。结果的低4位向高4位产生进位或者借位时,该标志位置1,否则被置0。
溢出标志(OF)。运算指令执行后,结果的数值产生溢出,该标志位置l,否则被置0。溢出标志(OF)。运算指令执行后,结果的数值产生溢出,该标志位置l,否则被置0。 • 方向标志(DF)。用于字符串指令操作,当DF=0时,字符串处理由低地址向高地址处理;当DF=l时,则从高位地址向低位地址处理。 • 中断允许标志(IF)。用来控制可屏蔽硬件中断。当IF=l时8086微处理器可以接受片外来的可屏蔽中断请求,开中断;IF=0时片外来的中断请求被阻止,关中断,也称被屏蔽。 • 陷阱标志(TF)。该标志用来控制单步中断。在TF=1时,以单步方式执行程序。即8086每执行完—条指令就产生处理器内部单步中断。单步执行指令可使程序员跟踪指令的执行过程,进行积序的调试。
寄存器组:包括了8个16位的寄存器AX、BX、CX、DX、SP、BP、DI及SI。AX、BX、CX和DX这4个16位的寄存器一般情况下作为通用的数据寄存器,并且可分成两个8位的寄存器,命名为AL、AH、BL、BH、CL、CH、DL及DH。这4个16位的寄存器还有如下专门用途:寄存器组:包括了8个16位的寄存器AX、BX、CX、DX、SP、BP、DI及SI。AX、BX、CX和DX这4个16位的寄存器一般情况下作为通用的数据寄存器,并且可分成两个8位的寄存器,命名为AL、AH、BL、BH、CL、CH、DL及DH。这4个16位的寄存器还有如下专门用途: • AX:具有累加功能,可作为16位累加器,AL,可作为8位累加器使用。 • BX:在基址变址寻址时作为基地址寄存器。 • CX:在循环类与串处理类指令执行时作为默认的计数器寄存器。 • DX:作为数据寄存器使用,在双字长运算中存放高16仅数据。 • 堆栈指针寄存器(SP):用来指出在存储器中开辟的堆栈的顶部偏移地 址,也称栈顶偏移地址。 • 基地址指针寄存器(BF):在间接寻址时作为基地址寄存器。 • 目的变址寄存器(DI):在间接寻址时,作为地址寄存器或变址寄存器。在字符串处理指令中,作为目的变址寄存器。 • 源变址寄存器(S1):在间接寻址时。作为地址寄存器或变址寄存器。 在字符串处理指令中,作为源变址寄存器。
3.总线接口部件与执行部件的流水线操作 • 在8位微处理器8080/8085中,由于结构的限制,取指令与指令的执行两种操作是串行的。在某一时刻,处理器要么取指令要么执行指令,二者不可同时进行。在16位的8086微处理器中,设置了EU与BIU两个相对独立且分工明确的功能部件,可以使取指令与指令的执行两种操作并行进行的,这是流水线操作的雏形。 非流水线操作 取指令1 执行指令1 取指令2 执行指令2 取指令1 执行指令1 流水线操作 取指令2 执行指令2 取指令3 执行指令3 t t4 t0 t1 t2 t3 流水线与非流水线操作的比较
2.2.2 8086/8088微处理器的存储器管理 • 1.地址线(码)与寻址范围:N条地址线 寻址范围=2N • 2.8086有20地址线 寻址范围为1MB 由 00000H~FFFFFH • 3. 8086微处理器是一个16位结构,用户可用的寄存器均为16位:寻址64KB • 4. 8086/8088采用分段的方法对存储器进行管理。具体做法是:把1MB的存储器空间分成若干段,每段容量为64KB,每段存储器的起始地址必须是一个能被16整除的地址码,即在20位的二进制地址码中最低4位必须是“0”。每个段首地址的高16位二进制代码就是该段的段号(称段基地址)或简称段地址,段号保存在段寄存器中。我们可对段寄存器设置不同的值来使微处理器的存储器访问指向不同的段。 • 5.段内的某个存储单元相对于该段段首地址的差值,称为段内偏移地址(也叫偏移量)用16位二进制代码表示。 • 6.物理地址是由8086/8088芯片地址引线送出的20位地址码,它用来参加存储器的地址译码,最终读/写所访问的一个特定的存储单元。 • 7.逻辑地址由某段的段地址和段内偏移地址(也叫偏移量)两部分所组成。写成: • 段地址:偏移地址(例如,1234H:0088H)。 • 8.在硬件上起作用的是物理地址,物理地址的形成遵守以下规则: • 物理地址=段基地址×10H十偏移地址
逻辑地址 1234H:0088H 物理地址 12340H+0088H =123C8H 00000H 段首地址 22000H 偏移地址=3600H 段 64KB 25600H 15 0 15 0 段基址 偏移地址 段基址 0000 求和 20位物理地址 FFFFFH 物理地址形成示意图 存储器分段管理示意图
2.3 8086/8088芯片引脚功能说明 • 8086/8088微处理器芯片为40只引脚(线)的双列直插式封装。 • 运用引脚多路复用技术解决引脚不够的矛盾。引脚复用的实质是两个信号合用同一引脚分时传输信号,即同一个引脚在不同的时间段代表不同的信号。 • 8086和8088两个微处理器芯片的共同点是采用20位地址线,而且指令系统与操作方式也是相同的。都采用分时复用的地址总线和数据总线,有一部分引脚具有地址线和数据线两种功能。 • 主要差别在于数据线引脚的位数不同。8086数据线引脚为16个;8088数据线引脚为8个。 • 8086与8088微处理器都具有两种工作模式,即最小模式和最大模式。最小与最大模式的确定是通过一条引脚MN/MN所接的逻辑电平是“1”是“0”来完成。 • 在最小(MN)方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的控制信号给外围电路。 • 在最大(MX)方式下,微处理器被用来构成一个较大规模的多机系统。由于外围电路芯片数目较多,有的信号要经系统总线转插件送到另外的板卡上去,控制信号的负载加重不能直接由微处理器的引脚信号来驱动。
2.3.1 基本引脚信号 • (1)AD 15—AD 0(输入输出,三态):8086的地址/数据线复用引脚。 • 8088微处理器对外只有8位数据线,因此只复用AD 7—ADo,AD15—AD8:是独立的地址信号引脚。 • (2)A19/S6一A16/S3(输出,三态):地址/状态分时复用引脚。在微处理器执行片外访问操作时,先发送高4位地址码,后发送处理器的状态信息。 • S6为0,表示AD15—AD0作为数据线使用; • S5为1表示处理器开中断。为0表示处理器关中断; • S4和S3组合表示当前段寄存器的使用情况。 • 0 0 ES; 0 1 SS; 1 0 CS; 1 1 DS • (3)BHE/S7(输出,三态):高8位数据线允许/状态分时复用引脚。当处理器执行访问存储器或输入输出设备时,首先给出BHE信号以确定是否进行高8位数据的传输。 • (4)NMI(输入):非屏蔽中断请求输入线,上升边触发。 • (5)INTR(输入):可屏蔽中断请求输入线,高电平有效。 • (6)RD(输出,三态):读命令(或叫作读选通)信号,低电平有效,此信号启动一次数据从存储器或输入输出设备读入处理器中的过程。
(7)CLK(输入):时钟信号,占空比1:3,由外部时钟产生电路提供。(7)CLK(输入):时钟信号,占空比1:3,由外部时钟产生电路提供。 • (8)RESE丁(输入):复位信号,它至少保持4个时钟周期的高电平,使处理器停止 • 正在进行的操作,并使标志寄存器、IP、1)5、SS、ES和指令队列置0,代码段寄存器CS置成FFFFH(全“l”)。因此复位信号有效作用后.处理器从FFFFOH存储单元取指令并开始执行。 ; • (9)READY(输入):准备好信号。处理器在进行存储器或输入输出设备的访问时,不断检测READY引脚的状态。在被访问者没有完成数据传送之前READY引脚处于低电平(无效电平),处理器自动在操作过程中插入一个或几个等待状态来延长访问过程。 • (10)TEST(输入):测试信号,低电平有效。当处理器执行WAIT指令时,每隔5个 • 时钟周期对于面引脚进行一次测试。如果是高电平,处理器仍处于等待状态;为低电平时,处理器脱离等待状念。 • (11)MN/MX(输入):最大/最小工作模式的选择信号。 • (12)VCC(输入):处理器的电源输入引脚,接十5V电源。 • (13)GND:处理器的地线引脚,接至系统地线。
2.3.2 最小工作模式下的有关控制引脚信号 • (1)INTA(输出):最小工作模式的中断响应信号。 • (2)ALE(输出):地址锁存允许(选通)信号。 • (3)DEN(输出、三态):数据允许信号,用来控制数据总线双向缓冲器的接通与断开,低电平有效。 • (4)DT/R(输出,三态):数据发送/接收控制信号。DT/R为高电平时,缓冲器发送数据(写),当DT/R为低电平时,缓冲器接收数据(读)。 • (5)M/IO(输出,三态):存储器、输入输出设备的选择信号。高电平则表明访问操作是对存储器的,为低电平则访问操作是对输入输出设备的。 • (6)WR(输出,三态):写命令信号,低电平有效。 • (7)HOLD(输入):总线请求信号,高电平有效,当处理器以外主模块需要使用总线时发出HOLD有效信号,直至总线使用完毕时释放总线并撤消HOLD信号。 • (8)HLDA(输出):总线请求响应信号,高电平有效。当占用总线的主模块收到HOLD请求信号后,在完成当前总线操作后发出HLDA有效信号,表明申请使用总线的其他主模块可以使用总线。 • (9)SS0(输出):8080最小模式下周期状态信号。
2.3.3 最大工作模式下的有关控制引脚信号 • (1)QS1、QS0(输出):指令队列状态信号,用于表示当前指令队列的状态。 • 0 0 :无操作 0 1 :取第一字节 • 1 0 :队列空 1 1 :取后续字节 • (2)S2、S1、S0(输出,三态):最大模式下总线周期状态信号。这三个信号送给8288总线控制器,8288输出各种操作的控制信号。 • (3)LOCK((输出,三态):总线封锁信号。 • (4)RQ/GT0、RQ/GT1(输入输出):最大模式下的总线请求/总线响应信号。 • RQ/GT0优先级高于RQ/GT1。
2.5 8086/8088的总线操作、中断及总线请求 • 2.5.1 总线周期与总线操作 • 1.总线周期的基本概念 • 总线周期是微处理器执行一次外部访问操作的最小定时单位。一个基本的总线周期至少等于4个时钟周期,每个时钟周期叫作一个T状态,最短的总线周期包含4个T状态,记为T1、T2、T3和T4。 • T1状态下,BIU把地址放到地址线上。如果是写操作,BIU从T2~T4之间把数据送数据线上;若是读周期,BIU在T3和T4中从数据线上接收数据,并在状态T2中使复用的地址/数据线进入浮动(高阻)状态。 • 考虑到存储器或I/O模块的数据传输速率不够快,处理器能够在T3、T4状态之间插入等待状态Tw来延长总线周期,实现速度上的匹配。
(1)在T1状态前M/IO引脚就已经形成了稳定的电平“1”或“0”,决定此次读操作是针对存储器还是I/O接口设备;(1)在T1状态前M/IO引脚就已经形成了稳定的电平“1”或“0”,决定此次读操作是针对存储器还是I/O接口设备; • 同时DT/R变低表示数据总线处于接收状态。 • (2)在T1状态期间,BIU通过A19~A0引脚输出地址码;从引脚ALE输出一个正脉冲,作为外部地址锁存器的选通脉冲; • BHE信号随地址码同时输出,控制按16位结构组织的存储器与I/O接口是否输出高字节(D15—D8)数据。 • (3)在T2状态期间,AD 15— AD o引脚变为高阻状态; A19/S6~A16/S3和BH/S7引脚也改为输出处理器的状态信息; • RD引脚上要输出一个负脉冲作为读命令; • (4)在T3状态期间,数据送到AD 15—AD0上; • 同时提供一个READY有效信号(高电平),表明数据是有效的,8086才把此数据读入到内部暂存器供EU使用。 • T3上升边处若没有检测到READY线上的高电平,则插入一个或多个Tw等待状态。 • (5)T4期间,处理器完成了读入数据操作,并为下一次总线操作做好备。
3.最小模式下写总线操作 • 写总线操作的与读总线操作有如下不同点: • AD15~AD0引脚在T2期间没有变为高阻而是接着就输出待写入的数据。这是因为在写总线周期中AD15~AD0引脚上数据流的方向从T1一T4期间均没有改变,均作为输出信号线使用,因此不必有高阻恢复期。 • T2一开始处理器就提供数据和写入命令WR,这就为存储器和I/O接口在完成地址译码后可尽早启动写人操作提供条件。 • 由于写操作性质决定,DT/R信号在整个总线周期期间保持为高电平,保证数据总线缓冲器的传输方向在T1 ~T4期间均是发送状态。 • DEN引脚在T2前就提供有效电平,让数据总线缓冲器提早作好传送待写数据的准备。
2.5.2 中断系统 8086/8088微处理器具有处理256种中断过程的能力。这256种中断可分为硬件中断和软件中断两大类,每种中断分配一个类型码,在0—255之间,常用n(一字节代码)来表示。因此,256种中断也称为256种类型中断。 8086/8088中断分类的示意图
1.硬件中断 • 硬件中断是通过外部硬件电路产生的中断,也常称为外部中断,分为非屏蔽中断和可屏蔽中断。 • 可屏蔽中断请求经8086/8088的INTR引脚输入; • 当IF=l,开放中断处理,可以响应INTR请求。当IF=0,关闭中断,不响应(屏蔽)INTR引脚上的中断请求。 • 非屏蔽中断请求经8086/8088的NMI引脚输入,不受IF标志位的控制。 • 非屏蔽中断请求经8086/8088的NMI引脚输入,不受IF标志位的控制。 • 2.软件中断 • 软件中断是在程序执行过程中产生了异常情况(如除数为0),或者程序中对陷阱标志位进行了专门的设置,要执行的软件中断处理过程。处理器自动到存储器事先规定的地址处读取中断处理程序的入口地址,使控制转向中断处理过程。 • 软件中断的另一种是处理器执行一条INTn指令,n是中断类型码。当处理器执行到一条INTn指令时程序就自动转向n类型中断的处理程序中去。 • 软件中断的产生与处理过程不受中断允许标志位IF的影响。
3.中断向量与中断向量表 • 中断处理程序的入口地址 • (中断向量),集中存放在存 • 储器的起始区域,形成中断 • 向量表。 • 中断向量由CS和IP构成, • 占4个字节,256个中断占 • 1KB(1024个字节)。 • 中断向量在中断向量表中 • 的地址 = 中断类型码×4
4.中断响应周期 • 在256种中断中,类型0中断是当除数为0时的中断;类型l中断称为单步中断;类型2中断为硬件的非屏蔽中断NMI;类型3为断点中断(INT3中断指令);类型4为溢出中断。 • 保留的中断为类型5~类型31;类型32 ~类型255一般为由用户使用的外部硬件INTR产生的中断。 • 当中断允许标志位IF=1且在INTR引脚上检测到一个高电平时,表明有一个可屏蔽的中断请求,处理器在执行完当前指令后就响应外部的中断请求, • 进入中断响应的总线周期:
(1)INTA引脚在两个总线周期中分别发出一个负脉冲,在第一个总线周期,地址/数据线变成浮动状态,在第二个总线周期中使外部中断请求发出一字节的中断向量。(1)INTA引脚在两个总线周期中分别发出一个负脉冲,在第一个总线周期,地址/数据线变成浮动状态,在第二个总线周期中使外部中断请求发出一字节的中断向量。 • (2)处理器执行保护现场的操作。标志压入堆栈、清除IF和TF(关中断)、 • 断点(CS和IP)压入堆栈。 • (3)中断的类型码乘4后即得到中断向量的地址。读取中断向量前两个字节装入IP,后两个字节装入CS。至此中断响应过程结束。
2.5.3 总线请求 • 1.最小模式下的总线请求与响应 • (1)外部总线主控模块通过HOLD引脚发出总线请求(或称总线保持请求)信号。 • (2)每个时钟的上升沿检测HOLD引脚的状态。若发现HOI‘D引脚上为高电平,则在当前总线周期结束时(T4下降沿)或空闲周期Ti的下降沿处发出总线请求响应(或称总线保持响应)信号HLDA,并使地址/数据及控制总线变成浮动状态,让出系统总线的控制权。 • (4)外部总线主控 模块收到HLDA信号后, 开始占用总线同时维持 HOLD引脚的高电平不变 直到总线使用完毕再把 HOI‘D引脚电平变低。 • (5)HOLD引脚变为低 电平以后,在时钟周期 的下降沿使HLDA信号变 成低电平,收回总线 控制权。
2.最大模式下的总线请求与响应 • 总线请求与响应信号引脚是RQ/GT1和RQ/GT0,是双向的、分时复用。 • (1)其他主模块通过RQ/GT发出一个时钟周期的负脉冲的总线请求信号RQ; • (2)主处理器在每一个时钟脉冲的上升沿进行采样,当检测到负脉冲时,在其后的T4或Ti状态中输出总线响应信号GT(一个时钟周期的负脉冲)。 • (3)其他主模块收到GT有效信号后即取得了总线的使用权;使用完总线后,通过RQ/GT引脚向主处理器发出一个RQ负脉冲释放总线。
22000H 字 • 2.6 8086微处理器访问存储器和I/O设备的特性 • (1)存储器地址空间为1MB。I/O设备的地址空间 • (或称设备号)为64KB。 • (2)计算机中存储器是按字节编址的,16位数据 • 的存放要从偶地址开始,偶地址是字边界。 • (3)偶地址的字节由D7~DO输出;奇地址字节由 • D15 ~D8输出。 • 2.6.1 以字节或字为单位的数据处理 • (a)表示存取低位字节,经数据线D7一D0传送; • (b)表示存取高位字节,经数据线D15—D8传送; • (c)字处理情况,存储合理,16位的数据访问在一个总线周期内即可完成。 • (d)字处理情况,但由于数据存储的单元跨越了正常的16位字边界,数据的访问要用两个总线周期才能完成。 22005H 字 D7 D0 D15 D8 D15 D0 D15 D8D7 D0 a b c d
(1)地址码的奇偶性:A0=0表示一个偶地址;Al=1表示一个奇地址。 (1)地址码的奇偶性:A0=0表示一个偶地址;Al=1表示一个奇地址。 • (2)数据线的高8位是否开通,BHE=0,高8位数据线可以传输数据;BHE=1表明高8位数据不能传输数。 • (3)从奇地址开始访问一个字是不合理的操作,是因为在传输16位数据过程中BHE与A0的状态组合要发生一次变化,必须用两个总线周期才能完成。
2.6.2 8086微处理器与存储器及I/O模块的接口 • (1)1MB的存储 • 空间被分成两个 • 512KB的存储体, • 分别为偶地址存 • 储单元,和奇地 • 址存储单元。 • (2)偶地址存 • 储体的数据线 • 与D7~D0相连, • 奇地址存储体的 • 数据线与D15~D8 • 相连。 • (3)A0接偶地址存储体的选择输入,当A0=0时偶体被打开,可以访问低字节数据,当A0=1时偶体被关闭。 • (4)系统的BHE信号接奇地址存储体的选择输入,当BHE=0时奇体被打开,可以访问高字节数据,当BHE=l时奇体被关闭。