1、微机原理与接口技术,主讲教师: 吕月娥,网络资源的使用,微机系统与接口技术课程在2008年被为校级精品课程,这门课程的电子教案,作业及部分作业的答案,教学大纲,考试大纲,历年的部分考试题等内容已经放在青岛大学网。有关内容的获取方法如下:,1、登录青岛大学网http:/ 2、在首页左侧选择教学平台 3、在网络教学综合平台页面,选择顶部的精品课程 4、在出现的页面左侧选择校级精品课程 5、找到微机系统与接口技术,选择查看,即可进入该课程网页。,第1章 微处理器及其结构,1.1 微型计算机系统概述 1.2 16位微处理器及其结构 1.3 32位微处理器及其结构 1.4 64位微处理器 1.5 双核心
2、微处理器,1.1 微型计算机系统概述,1.1.1 微机系统的组成 1.1.2 微机系统的性能指标 1.1.3 微型计算机的发展,1.1.1 微机系统的组成,图1-1 微型计算机的典型结构,图1-2 微型计算机系统的组成,1.1.2 微机系统的性能指标,1. 字长,字长,即CPU中运算器一次能处理的最大数据位数,它是反映微机系统数据处理能力的重要技术指标。,2. 运算速度,主频反映了CPU的速度,在同一类CPU中,频率越高,CPU的运算速度越快。主频的单位是GHz, 反映微机系统运算速度的另一个单位是MIPS(millions of instructions per second ),即每秒执行
3、百万条指令数。,评价微处理器的性能最基本的评价指标:字长与运算速度,计算机的存储器系统主要分为内存储器和外存储器两种 。评价其性能的指标主要有:,1. 存储容量,2. 存取速度,内存储器主要用于存放当前需运行的程序和加工的数据。通常衡量内存容量大小的单位是MB。外存储器的主要作用是为内存储器提供后备的程序和数据。衡量外存容量大小的单位通常是GB。,在计算机运行时,存储器的存取速度直接影响到整个计算机系统的运行速度。,1.2 16位微处理器及结构,1.2.1 16位微处理器内部结构 1.2.2 16位微处理器的基本时序 1.2.3 16位微处理器的存储器组织,8086 CPU DB:真正的16位
4、CPU,内外总线都是16位。 AB:有20位地址线,可直接寻址1MB空间。 8088 CPU 8086的改进型处理器,指令系统与8086系统兼容。 DB:准16位机,内总线为16位,外总线为8位。 AB:有20位地址线,可直接寻址1MB空间。,16位微处理器:8086/8088CPU,1.2.1 16位微处理器内部结构,1.BIU(Bus Interface Unit):总线接口单元 (a)BIU的功能:负责CPU与存储器和I/O端口传送数据从内存取指令送到指令队列;配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或I/O端口
5、中。,(b)BIU的组成,(b)BIU的组成 4个16位段地址寄存器: 16位指令指针寄存器: 20位物理地址加法器: 6字节指令队列: 总线控制逻辑:,各部分介绍,4个16位段地址寄存器:指出了一个逻辑段在内存中的起始地址。 代码段寄存器:CS(code segment register) 数据段寄存器:DS(data segment register) 附加段寄存器:ES(extra segment register) 堆栈段寄存器:SS(stack segment register);,2.EU(Execution Unit):指令执行部件(a)EU的功能 从指令队列中读指令, 完成指令
6、的译码和执行。(b)EU的组成 算术逻辑运算单元ALU: 4个通用的16位寄存器: 4个专用的16位寄存器: 标志寄存器PSW: EU控制器:,各部分介绍,ALU:完成8位或16位的二进制运算 ,16位暂存器可暂存参加运算的操作数;4个通用的16位寄存器: AX(accumulator):又称为累加器 BX(base):基址寄存器 CX(count):计数器 DX(data) :数据寄存器,4个专用的16位寄存器 SI(source index):源变址寄存器 DI(destination index):目的变址寄存器 SP(stack pointer):堆栈指针寄存器 BP(base poi
7、nter):基址指针寄存器PSW(Processor Status Word):标志寄存器FLAG 存放ALU运算结果的特征和程序控制标志;EU控制器:取指令控制和时序控制部件。,(c)EU工作过程,3.寄存器结构8086CPU内部包含有4组16位寄存器 (1)段寄存器组 (2)通用寄存器组 (3)指针和变址寄存器组 (4)指令指针及标志寄存器,(1)段寄存器组,(1)段寄存器组:包含CS、DS、ES、SS 代码段寄存器CS 数据段寄存器DS 附加段寄存器ES 堆栈段寄存器SS 段寄存器指出其对应段的首地址段基址。 段基址与段内偏移地址经运算形成20位物理地址。,(2)通用寄存器组,(2)通用
8、寄存器组:包括AX、BX、CX、DX用来保存算术或逻辑运算的操作数及中间运算结果。它们既可以作为一个16位的寄存器使用,也可以分别作为两个8位的寄存器使用,分别是:AH、AL、BH、BL、CH、CL、DH、DL。,(3)指针和变址寄存器组:包括SP、BP、SI、DIBP和SP称为指针寄存器,与堆栈段寄存器SS联用,进行对现行堆栈段的访问。BP在间接寻址中使用,操作数在堆栈段中,由SS段寄存器与BP组合形成操作数地址,BP存放现行堆栈段中一个数据区的“基址”的偏移量,因此称BP为基址指针寄存器。 SP在堆栈操作中使用,堆栈操作指令PUSH和POP是从SP得到现行堆栈段的段内地址偏移量。SP始终指
9、向栈顶。,例子,堆栈: 存储器的一个连续区域。在这个区域,数据的存取原则为:后进先出(LIFO)从栈顶存取信息。,栈底:堆栈的最低部,栈顶:最后放进信息的所在地址,栈底,SP始终指向栈顶,SP=FFFEH,栈顶,栈顶,栈顶,SS:,SI和DI称为变址寄存器,通常与数据段寄存器DS一起使用,为访问现行数据段提供段内地址偏移量。,例子,(4)指令指针和标志寄存器,(4)指令指针及标志寄存器 (a)指令指针寄存器IP指令指针寄存器IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。在程序运行过程中,BIU自动修改IP,因此IP始终指向将要执行的下一条指令在现行代码段中的偏移地址,它是用来控制指
10、令序列的执行流程的。,(b)标志寄存器 标志寄存器,也叫程序状态字PSW(Program Status Word),用来存放运算结果的特征和程序控制标志。 PSW中一共定义了个有效位: 6个状态标志位:包括:OF、SF、 ZF、 AF、 PF和CF。 3个控制标志位:编程时设置,包括:DF、 IF和TF。,标志位的用法及含义,(1)状态标志位: CF 、 PF 、 AF、 ZF、 SF和OF,CF( Carry Flag):进位标志位。 反映最高有效位MSB(字为D15、字节为D7位)有无进位(加)或借位(减),主要针对无符号运算。 若CF1,表示有进位或借位; 若CF= 0,表示无进位或借位
11、PF(Parity Flag):奇偶校验标志位。 反映运算结果中低8位1的个数是否为偶数。 若PF1,表示运算结果低8位中有偶数个1; 若PF0,表示运算结果低8位中有奇数个1。,(1)状态标志位: CF 、 PF 、 AF、 ZF、 SF和OF,AF(Auxiliary Flag):辅助进位/半进位标志位。 反映D3向D4有无进位(加)或借位(减)。主要用于BCD码运算后的调整。 若AF1,表示有进位或借位; 若AF0,表示无进位或借位。 ZF( Zero Flag):零标志位。 反映运算结果是否为全0。 若ZF1,则表示运算结果为全0(各位均为0); 若ZF0,则表示运算结果非全0(各位不
12、全为0)。,(1)状态标志位: CF 、 PF 、 AF、 ZF、 SF和OF,SF(Sign Flag):符号标志位。 反映运算结果的最高有效位(MSB)为0/1;对有符号运算,反映运算结果的正/负。 若SF1,则表示最高有效位为1(或结果为负); 若SF0,则表示最高有效位为0(或结果不为负)。 OF(Overflow Flag):溢出标志位。 反映运算结果是否超出其所能表示的范围。 若OF1,则表示结果溢出; 若OF0,表示结果未溢出。,1 0 0 1 1 0 1 0,0 1 0 1 1 0 0 1,1 0 1 1 1 1 1 1,1001 1010B1011 1111B?,CF=1,P
13、F=1,AF=1,ZF=0,SF=0,控制标志位,OF=1,(2)控制标志位:DF、 IF和TF,DF(Direction Flag):方向控制位。 在串操作中,若: 设置DF0,源和目的操作数的地址均向增址方向调整; 设置DF1,源和目的操作数的地址均向减址方向调整。 IF(Interrupt Enable Flag):中断允许控制位。若: 设置IF1,则允许CPU响应可屏蔽中断(开中断); 设置IF0,则不允许CPU响应可屏蔽中断(关中断)。,(2)控制标志位:DF、 IF和TF,TF(Trap Flag):陷井控制位。 主要用于程序的单步执行,若: 设置TF1,则CPU每执行一条指令就产
14、生一个单步中断,用户可以在中断服务中对当前指令的执行进行调试; 设置TF0,表示不设置陷井。,表1-2 PSW中标志位的符号表示,1.2.1.3 8086/8088的引脚及功能,1.8086的引脚分类 封装形式:采用40条引线双列直插(DIP)封装。 总线信号:地址总线、数据总线、控制总线 专用信号:电源、地、时钟等。 为了减少引脚数量,部分引脚采用分时复用技术。,2 引脚功能,(1)AD15AD0(Address Data Bus) 16条地址/数据引脚,分时复用。 传送地址时三态输出,传送数据时三态双向输入/输出。 (2)A19/S6A16/S3 (Address/Status) 地址/状
15、态复用引脚,三态输出,分时复用。 在总线周期T1状态作地址线使用,A19A16与AD15AD0一起构成20位物理地址,访问存储器; 其中S6:为0用以指示8086/8088CPU当前与总线连通;S5:为1表明8086/8088CPU可以响应可屏蔽中断;S4、S3共有四个组态,用以指明当前使用的段寄存器 : 00ES,01SS, 11DS,10CS(存储器寻址)或不需要段寄存器(对I/O或中断矢量寻址)。,(3)ALE(Address Latch Enable) 地址锁存允许信号,输出,高电平有效; ALE有效,说明地址/数据复用总线上传送的是地址信号; ALE的下跳沿将地址信息锁存到地址锁存器
16、。 (4) (Read) 读选通信号,三态输出,低电平有效; 有效时,允许CPU读存储器或I/O端口。 (5) (Write) 写选通信号,三态输出,低电平有效; 有效时,允许CPU写存储器或I/O端口。 (6) (Memery/Input and Output) 读存储器或I/O端口控制信号,三态输出。 高电平,表示CPU正在访问存储器; 低电平,表示CPU正在访问I/O端口。,(7)NMI(Non Maskable Interrupt Request) 非屏蔽中断请求线,输入,上升沿触发。 此类中断不受中断允许标志IF的影响,也不能用软件屏蔽。 NMI引脚一旦收到一个上升沿触发信号,在当前
17、指令执行完后,自动引发中断类型号为2的中断,转入处理类型2中断处理子程序。 经常用于处理电源掉电等紧急情况。,(8)INTR (Interrpt Request) 可屏蔽中断请求线,输入,高电平有效。 当外设向CPU发出中断请求时,INTR引脚变为高电平。 CPU在执行每条指令的最后一个时钟周期就检测该引脚,一旦检测到INTR信号有效,并且中断允许标志IF=1时,转入中断服务子程序。 (9) (Interrupt Acknowledge) 中断响应信号,输出,低电平有效。 是CPU对外设发来的中断请求信号INTR的响应信号,通知外设已接受它的中断请求。,(10)RESET(Reset) 复位信
18、号,输入,高电平有效。 当RESET信号保持高电平至少4个时钟周期以上,当它变为低电平时CPU进行重启动,同时恢复为正常状态。,(11)READY(Ready) 准备就绪信号,输入,高电平有效. CPU与存储器及I/O端口速度同步的控制信号。 是由I/O端口发来的响应信号,表示外设已准备好,可以进行数据传送了。,(12) (Bus High Enable/Status):高8位数据总线允许/状态复用引脚。 分时输出 有效,表示高8为数据线AD15AD8上的数据有效 但S7未定义任何实际意义。,(13) (Minimum/Maximum) 最大/最小工作模式选择信号,输入。 用来决定8086工作
19、模式: 当接+5V时,8086为最小模式;当接地时,8086为最大模式。,3.8088/8086的区别,(14) HOLD和HLDA: 总线请求及响应,HOLD为总线请求保持信号,输入;HLDA为总线请求响应,输出,3.8088与8086的区别,(1)外部总线位数的差别,(2)指令队列容量的差别,8086外部数据总线有16位(16位处理器)。 8088外部数据总线有8位(准16位处理器)。,8086的指令队列可容纳6个字节。 8086的指令队列只能容纳4个字节。,(3) 引脚特性的差别,(3)引脚特性的差别,A)AD15AD0的定义不同 8086中都定义为地址/数据复用线 8088中只有AD7
20、AD0定义为地址/数据复用线,对应于8086 AD15AD8的引脚定义为A15A8,只作地址线使用。 B)28号引脚的相位不同 8086中为 8088中为 C)34号引脚的定义不同 8086中定义为 8088中定义为,CPU对比图,图1-5 8086/8088的外部引脚,1.为适应各种使用场合,8086/8088的有两种工作模式:最小模式和最大模式。 (1)最小模式: 系统中只有一个8088/8086微处理器; 所有的总线控制信号,都是直接由8088/8086CPU产生的; MN/MX接+5V; 该模式适用于规模较小的微机应用系统。,1.2.1.4 8086/8088的系统配置,(2)最大模式
21、,(2)最大模式: 系统中至少包含两个微处理器,其中一个为主处理器,即8086/8086CPU,其它的微处理器称之为协处理器,它们是协助主处理器工作的。与8088/8086CPU配合工作的协处理器有两类, 一类是数值协处理器8087 另一类是输入/输出协处理器8089。 MN/#MX接地 总线不再由8086直接控制,系统中增加了一片专用的总线控制器8288。 8086CPU 8288提供 该模式适用于中、大规模的微机应用系统中。,8086最小模式的计算机基本组成,3.最大模式系统,3.最大模式系统 硬件连接特点: MN/#MX接0V。 时钟发生器:8284A 地址总线锁存器: 三片8282/7
22、4LS373 数据总线收发器: 两片8286/8287 控制总线控制器: 8288,3.最大模式系统,最大模式配置和最小模式配置有一个主要的差别:最大模式下多了8288总线控制器。,1.2.2 8086/8088的基本时序,1 什么是时序 时序是计算机操作运行的时间顺序。 2. 为什么要研究时序 可以进一步了解在微机系统的工作过程中,CPU各引脚上信号之间的相对时间关系; 可以深入了解指令的执行过程;,一、 相关的基本概念,微机系统的工作,必须严格按照一定的时间关系来进行,CPU定时所用的周期有三种,即指令周期、机器周期(总线周期)和时钟周期。,3. 指令周期、总线周期及时钟周期,(2)总线周
23、期,(1)指令周期(Instruction Cycle)执行一条指令所需要的时间。由于不同指令所需完成的操作差别很大,因此不同指令的指令周期是不等长的。一个指令周期至少由一个或者是多个总线周期组成。,(2)总线周期:CPU访问内存或I/O端口执行一次读/写操作所需的时间称作一个总线周期。 一个总线周期4TW状态,(3)时钟周期:一个T状态就是一个时钟周期,是CPU最小的定时单位,它由计算机的主频决定。,两个状态,时钟频率 一个T状态时间5MHz 200ns(0.2s)50MHz 20ns(0.02s)100MHz 10ns(0.01s)200MHz 5ns(0.005s),Tw:用以延长总线周
24、期的T状态,称为“等待状态”(Tw)。 当RAM或I/O接口速度较慢时,T3与 T4 之间可插入若干个等待状态 Tw 。,Ti状态,(4)两个状态Tw、 Ti,Ti:称为空闲状态,以时钟周期T为单位。 如果在一个总线周期后不立即执行下一个总线周期,即总线上无数据传输操作,此时总线则处于 “空闲状态”,在这期间,CPU执行空闲周期Ti 。 下图表示了8086CPU的总线周期及其“等待状态”和“空闲状态”的情况。,图,最基本的总线周期由4个T状态组成(T1、T2、T3、T4)。,总线周期读时序,二、最小模式下8086总线周期时序,1. 8086总线周期的读时序,T1:1、M/#IO高电平,表示在这
25、个读周期中读的 是存储器中的数据。2、 地址线信号有效,A19/S6A16/S3和 AD15AD0送出20位的物理地址。3、 ALE:高电平,在T1状态结束时信号、地 址信号均有效,ALE的下降沿将地址所存到地 址锁存器8282中。4、#BHE有效,用来表示高8位数据总线上的 信息有效。5、DT/#R变低,表示数据的方向是由存储器 到CPU。,T2:1、高四位地址/状态线A19/S6 A16/S3送出状态信息S6S3, 指示出当前正在使用的段寄存器及 中断允许情况。2、低16位地址/数据线AD15 AD0浮空进入高阻状态,为下面 读取数据作准备。3、 #BHE/S7变成高电平,输出 状态信息S
26、7(无定义)。4、#RD信号有效,表示要对 存储器进行读操作。5、#DEN有效,选通总线收发器 8286可以接收数据。,T3:当READY信号有效时, 将选中的内存单元中的 数据送到数据总线上。,T4:在T4前一状 态的下降沿 采集数据, 读总线周期 结束。,2. 8086总线周期的写时序,写与读的差别,3.写总线操作的与读总线操作有如下不同点: AD15AD0引脚在T2期间没有变为高阻而是接着就输出待写入的数据。 T2一开始处理器就提供数据和写入命令WR,这就为存储器和IO接口在完成地址译码后可尽早启动写入操作提供条件。 由于写操作性质决定,DT#R信号在整个总线周期期间保持为高电平。 #D
27、EN引脚在T2前就提供有效电平,让数据总线缓冲器提早作好传送待写数据的准备。,三 最小模式下总线请求响应时序,总线请求/响应时序分为三个阶段:请求、使用和释放总线,在8086系统的最小模式下,使用一对联络信号HOLD和HLDA控制三个阶段的转换。,系统复位时序,复位后 8086 CPU的内部寄存器状态为: 标志寄存器、指令指针(IP)、DS、SS和ES清零; CS置FFFFH; 指令队列清空。,8086/8088系统中,地址总线是20位的,它可以直接寻址1MB空间; 而CPU中寄存器都是16位的,只能对64KB寻址; 为了解决此矛盾,将内存空间分为若干逻辑段,每个逻辑段的容量=64KB,逻辑段
28、中每个单元可用其逻辑地址表示。 逻辑段可重叠、可分开、可连续、可不连续。,1.为什么要分段?,段起始地址,两种地址概念,1.2.3 16位微处理器存储器组织,2.段的起始地址,16的整数倍,3.逻辑地址和物理地址,(1)逻辑地址: 段基址:偏移量 作用:编程时使用 来源:根据CPU访问存储器数据类型不同,其来源不同如:从内存中取指令,段基址(CS),偏移量(IP)对堆栈进行操作,段基址(SS),偏移量(SP) (2)物理地址段基址16偏移量 作用:CPU访问存储器时使用,关系图,物理地址的形成,逻辑地址与物理地址,20位加法器,地,4.存储器的分体结构,8086系统中1M字节的存储器地址空间实
29、际上分成两个512K字节的存储体:偶存储体和奇存储体,偶存储体同8086的低8位数据总线D7D0相连接,奇存储体同8086的高8位数据总线D15D8相连接。,具体规定见表所示。,(13),“对准的”字与“未对准的”字,8086CPU能同时访问奇地址存储体和偶地址存储体中的一个字节,以组成一个存储字。若要访问的16位字的低8位字节存放在偶存储体中,称为“对准的”字,这是一种规则的存放字。对于“对准的”字,8086CPU只要一个总线周期就能完成对该字的访问;当要访问的16位字的低8位字节存放在奇存储体中,称该字为“未对准的”字(unaligned,又称为“未对界的”),这是一种非规则的存放字,必须用两个总线周期才能访问该字。,下面分析一个“未对准的”字的写入过程。 在第一个总线周期中,送出奇地址(A0l),并发出#BHE =0信号,然后由 8086CPU把该字的低 8位传送到数据总线的高8位,写入存储器的奇地址存储体;然后,8086CPU又发出一个由该奇地址加1的偶地址,此时A00, #BHE=1,8086CPU把该字的高8位传送到数据总线的低8位,写入存储器的偶地址存储体。这样,经过两个存储器访问周期,把一个“未对准的”字写入存储器的两个存储体中。,作业,P527 ,9,10,