微型计算机原理及应用课程教案4
- 格式:doc
- 大小:3.22 MB
- 文档页数:33
信阳师范学院物理电子工程学院教案 微型计算机原理及应用
第 页 68 第4章 16位微处理器
教学时数:20学时
教学目的与要求:掌握执行部件的功能、基本组成部分及其主要特点,了解8086的标志的分类及其功能;掌握总线接口部件BIU的功能及其各组成部分,了解其基本特点;理解总线接口部件和执行部件的管理原则;掌握存储器分段的方法以及存储器中逻辑地址与物理地址的转换方法;了解和掌握总线周期的相关知识;掌握8086/8088的两种工作模式;了解8086的几种基本操作,掌握中断向量的概念,理解中断向量表的含义,掌握可屏蔽中断的响应过程;掌握8086CPU和8088CPU的异同。
教学重点:存储器的分段,逻辑地址与物理地址的转换,总线操作,中断操作。
教学难点:8086/8088CPU的结构:执行部件、总线接口部件BIU、存储器结构、8086总线的工作周期;8086/8088 CPU各引脚的作用与功能、最小工作模式和最大工作模式;8086/8088系统的复位和启动、总线操作、中断操作、最小工作模式下的总线保持、最大工作模式下的读写操作。
4.1 16位微处理器概述
微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。通常,微处理器由算术逻辑部件(ALU)、控制部件、寄存器组和片内总线等几部分组成,这些都已在前面几章中讲过了。
第一代微处理器是1971年Intel公司推出的4040和8008。它们是采用PMOS工艺的4位及8位微处理器,只能进行串行的十进制运算,集成度达到2,000个晶体管/片,用在各种类型的计算器中已经完全能满足要求。
第二代微处理器是1974年推出的8080,M6800及Z-80等。它们是采用NMOS工艺的8位微处理器,集成度达到9,000个晶体管/片。在许多要求不高的工业生产和科研开发中已可运用。这些8位微处理器构成的计算机系统对许多算术运算和其他操作都必须编制程序。例如,即使是乘法和除法这样基本的运算都必须用子程序来实现。由于每次只能处理8位数据,处理大量数据就要分成许多个8位字节进行操作,数值越大或越小,计算时间都很长,这对数量大的数据库、文字处理或实时控制等应用来说就太慢了。用提高时钟频率可弥补这一局限,但也是很有限度的。此外,8位微处理器的寻址能力也有局限。典型8位微处理器有一条16位地址线,因此最多可寻址64K个存储单元,对于具有大量数据的大型复杂程序都可能是不够的。
20世纪70年代后期,超大规模集成电路(VLSI)投入使用,出现了第三代微处理器。Intel公司的8086/8088,Motorola公司的M68000和Zilog公司的Z8000等16位微处理器相继问世,它们的运算速度比8位微处理器快2~5倍,采用HMOS高密度工艺,集成度达29 000个晶体管/片,赶上或超过了20世纪70年代小型机的水平。从此,传统的小型计算机受到严峻的挑战。 信阳师范学院物理电子工程学院教案 微型计算机原理及应用
第 页 69 20世纪80年代以来,Intel公司又推出了高性能的16位微处理器80186及80286。它们与8086/8088向上兼容。80286是为满足多用户和多任务系统的微处理器,速度比8086快5~6倍。处理器本身包含存储器管理和保护部件,支持虚拟存储体系。
1985年,第四代微处理器80386及M68020推出市场,集成度达45万个晶体管/片。它们是32位微处理器,时钟频率达40MHz,速度之快、性能之高,足以同高档小型机相匹敌。
总之,20世纪70年代至今,微处理器的发展是其他许多技术领域望尘莫及的,如1989年推出了80486,1993年推出了Pentium及80586等更高性能的32位及64位微处理器,它也促进了其他技术的进步。
本章以讲解16位8086/8088微处理器为中心,第11章再介绍80386,80486及Pentium等芯片的原理。因为它们是当今许多流行的微型计算机,如IBM PC及许多兼容机联想,同方,COMPAQ等个人计算机的CPU。
8086和8088 CPU的内部基本相同,但它们的外部性能是有区别的。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。
8086和8088 CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。这两种微处理器都封装在相同的40脚双列直插组件(DIP)中。
4.2 8086/8088 CPU的结构
8086 CPU从功能上可分为两部分,即总线接口部件(bus interface unit,缩写为BIU)和执行部件EU(execution unit)。8086的内部结构如图4.1所示。
4.2.1 执行部件
执行部件(EU)的功能就是负责指令的执行。将指令译码并利用内部的寄存器和ALU对数据进行所需的处理。
从结构图4.1中,可见到执行部件由下列部分组成:
(1) 4个通用寄存器,即AX,BX,CX,DX;
(2) 4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI; 信阳师范学院物理电子工程学院教案 微型计算机原理及应用
第 页 70
图4.1 8086的结构框图
(3) 标志寄存器(FR);
(4) 算术逻辑部件(ALU)。
8086/8088的EU有如下特点:
(1) 4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。当BX寄存器作为8位寄存器时,分为BH和BL,BH为高8位,BL为低8位。
(2) AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。当累加器作为16位来使用时,可以进行按字乘操作、按字除操作、按字输入/输出和其他字传送等;当累加器作为8位来使用时,可以实现按字节乘操作、按字节除操作、按字节输入/输出和其他字节传送,以及十进制运算等。
(3) 加法器是算术逻辑的主要部件,绝大部分指令的执行都由加法器来完成。
(4) 标志寄存器FR共有16位,其中7位未用,所用的各位含义如下:
根据功能,8086的标志可分为两类:状态标志——它是操作在执行后,决定算术逻辑部件ALU处在何种状态,这种状态会影响后面的操作。控制标志——它是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对每一种特定的功能起控信阳师范学院物理电子工程学院教案 微型计算机原理及应用
第 页 71 制作用。
状态标志有6个,即SF,ZF,PF,CF,AF和OF。
4.2.2 总线接口部件BIU
总线接口部件的功能是负责与存储器、I/O端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。
总线接口部件由下列各部分组成:
(1) 4个段地址寄存器,即
CS——16位代码段寄存器;
DS——16位数据段寄存器;
ES——16位附加段寄存器;
SS——16位堆栈段寄存器。
(2) 16位指令指针寄存器IP。
(3) 20位的地址加法器。
(4) 6字节的指令队列。
8086/8088的BIU有如下特点:
(1) 8086的指令队列为6个字节,8088的指令队列为4个字节。不管是8086还是8088,都会在执行指令的同时,从内存中取下一条指令或下几条指令,取来的指令就放在指令队列中。这样,一般情况下,CPU执行完一条指令就可以立即执行下一条指令,而不需要像以往的计算机那样,让CPU轮番进行取指令和执行指令的操作,从而提高了CPU的效率。
(2) 地址加法器用来产生20位地址。上面已经提到,8086可用20位地址寻址1M字节的内存空间,但8086内部所有的寄存器都是16位的,所以需要由一个附加的机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。
例如,一条指令的物理地址就是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。具体计算时,要将段寄存器的内容左移4位,然后再与IP的内容相加。假设CS=0FE00H,IP=0400H,此时指令的物理地址为0FE400H。
总线接口部件和执行部件并不是同步工作的,它们是按以下流水线技术原则管理:
(1) 每当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节时,总线接口部件就会自动把指令取到指令队列中。
(2) 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,
如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输入/输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的总线周期,然后再去响应执行部件发出的访问总线的请求。 信阳师范学院物理电子工程学院教案
微型计算机原理及应用
第 页 72 (3) 当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。
(4) 在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了,
而总线接口部件往指令队列装入指令时,总是按顺序进行的,这样,指令队列中已经装入的字节就没有用了。遇到这种情况,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。
4.2.3 存储器结构
8086/8088系统中存储器按字节编址,可寻址的存储器空间为1MB,由于1MB为220,因此每个字节所对应的地址应是20位(二进制数),这20位的地址称为物理地址。
1. 存储器的分段
20位的物理地址在CPU内部就应有20位的地址寄存器,而机内的寄存器是16位的(16位机),16位寄存器只能寻址64KB。8086/8088系统中把1M存储空间分成若干个逻辑段,每个逻辑段容量≤64KB,因此1M的存储空间可分成16个逻辑段(0~15)。允许它们在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,非常灵活。在整个存储空间中可设置若干个逻辑段,如图4.2所示。
对于任何一个物理地址,可以惟一地被包含在一个逻辑段中,也可包含在多个相互重叠的逻辑段中,只要有段地址和段内偏移地址就可以访问到这个物理地址所对应的存储空间,如图4.3所示。
在8086/8088存储空间中,把16字节的存储空间称作一节(paragraph)。为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0”,因此就把
图4.2 存储器的逻辑分段 图4.3 存储器的逻辑段的首地址