微处理器与系统结构.ppt

上传人:本田雅阁 文档编号:3477771 上传时间:2019-09-01 格式:PPT 页数:116 大小:1.53MB
返回 下载 相关 举报
微处理器与系统结构.ppt_第1页
第1页 / 共116页
微处理器与系统结构.ppt_第2页
第2页 / 共116页
微处理器与系统结构.ppt_第3页
第3页 / 共116页
微处理器与系统结构.ppt_第4页
第4页 / 共116页
微处理器与系统结构.ppt_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《微处理器与系统结构.ppt》由会员分享,可在线阅读,更多相关《微处理器与系统结构.ppt(116页珍藏版)》请在三一文库上搜索。

1、1,第二章 微处理器和 系统结构,2,本章内容提要,本章主要介绍 微处理器(CPU)的主要组成部分及各部分功能 Intel 8086微处理器组成结构、引脚信号及功能 X86系统组成,3,第一节 微处理器的基本结构,4,微处理器的主要组成部件,微处理器(CPU)由下列主要部分组成: 算术逻辑单元 ALU 控制器 寄存器阵列 总线和总线缓冲器 高性能的CPU还有:指令预取部件,指令译码部件、 地址形成部件、存储器管理部件等。,5,一、算术逻辑运算单元(ALU),ALU是对二进制数进行算术逻辑运算的基本部件。 数据加工处理可归纳为两种基本运算: 算术运算,逻辑运算。,6,一、算术逻辑运算单元(ALU

2、)(续), 算术运算: 可进行无符号数和带符号数的加、减、乘、除 运算,符号数采用补码表示,减法通过求负数的补码 而变成加法运算。还可进行BCD码运算。 乘、除可以通过多次重复加、减和移位实现。,7,一、算术逻辑运算单元(ALU)(续),例如:13 11=143=8FH 1 1 0 1 采用部分积左移和加法 1 0 1 1 可完成二进制乘法。 1 1 0 1 1 1 0 1 部分积左移 0 0 0 0 + .1.1.0.1 1 0 0 0 1 1 1 1,8,一、算术逻辑运算单元(ALU)(续), 逻辑运算:可完成逻辑“与”、“或”、“非”、 “异或”、“移位”等基本的逻辑运算。 浮点运算:浮

3、点数可以看作是由两个定点数 组成,尾数与阶码。在对阶后可以对尾数进行运算。 浮点数运算可以用软件实现。也可以专门生产浮 点运算部件和浮点微处理器,并设有专门的浮点运算 指令,可进行32位或64位浮点加、减、乘、除运算。 Pentium处理器已把浮点处理器与主处理器集成到一 个芯片上。 早期的浮点处理器有:8087、80287、80387协处理器。,9,一、算术逻辑运算单元(ALU)(续),ALU原理框图如下:,10,二、控制器, CTRL是发布操作命令的部件,操作的顺序需要 精确的定时,其内部主要组成如下: 1、指令部件 包括程序计数器(PC),指令寄存器(IR),指 令译码器(ID)。 2、

4、时序部件 包括时钟系统,脉冲分配器。 3、微操作控制部件 可采用组合逻辑控制,微程序控制和可编程逻辑阵列(PLA)来实现。,11,二、控制器(续),控制器的组成框图(图2.2),12,二、控制器(续), 时钟周期(T state):主时钟的两个脉冲 前沿的时间间隔称为一个时钟周期,又称为T状态。 它CPU操作的最小时间单位。 机器周期:由25个T状态组成一个机器周 期(Machine Cycle),称为M周期,又叫做总线周 期,用来完成一个基本操作,如 MEM读/写,I/O 读/写等。 指令周期:一条指令(的取出和)执行所需 的时间称为指令周期(Instruction Cycle),一条指 令

5、执行需15个M周期。,13,二、控制器(续),M2,M5,CLK,T4,T3,T1,T2,M1 机器周期,指令周期 (包括15个机器周期),指令周期、机器周期与时钟周期的关系如下图,14,二、控制器(续),微操作控制部件: 根据指令产生计算机各部件所需要的控制信号, 如传送、加减、逻辑运算等,由译码 器输出、节拍 发生器输出等进行组合而产生,完成指令所规定的全 部操作。,15,二、控制器(续),该部件可采用: 组合逻辑控制(控制信号采用组合逻辑电路设计实 现); 微程序控制(若干微指令组成的微程序); 可编程逻辑阵列(PLA、EPLD等) PLA(Programmable Logic Arra

6、y) EPLD(Electrically Programmable Logic Device) 等方法实现。,16,三、总线与总线(缓冲器)部件,所谓总线是指计算机中传送信息的一组通信线, 将多个部件连成一个整体。可以简单分为: 片内总线:在CPU内部或部件内部各单元之间传 送信息的总线(又可细分为单总线、双总线(输入/输 出BUS)、多总线结构); 片外总线:CPU与外部部件之间传送信息的总线。 片外总线又称为系统总线,通常系统总线分为地 址总线、数据总线、控制总线,即所谓三总线结构。,17,三、总线与总线(缓冲器)部件(续),因为多个部件均挂在总线上,但各部件工作情况 并非完全一样(有的作

7、为信源发,有的作为接收器 收)。 由于数据或信息代码是用电位高低来表示,若某 一时刻有几个部件同时向BUS发送数据,则BUS上的 情况就成为不确定的了,电路也可能被烧毁。 所以同一时刻只允许一个部件向BUS发送信息。 而接收数据就没有上述限制,同一时刻可允许多 个部件接收数据。,18,三、总线与总线(缓冲器)部件(续),总线缓冲器:在工作过程中,常常要求挂在BUS 上的某些部件在电气连接上与BUS “脱开”,使这些部 件对BUS上其它部件的工作不产生影响,为此,可在 部件内部设置三态缓冲器。 DATA3态BUFBUS; 三态缓冲器(3态BUF)处于: 低阻(高低电平)挂BUS上; 高阻逻辑上脱

8、开。,19,三、总线与总线(缓冲器)部件(续),“脱开”状态: 处于高阻状态,开路状态,浮空状态; 逻辑上“脱开”,物理上仍连在一起。 总线缓冲器分为: 单向三态缓冲器,如地址总线缓冲器只发地址信息, (地址BUS是单向的); 双向三态缓冲器,如数据总线缓冲器,既可发又可 收数据(数据BUS是双向的)。,20,三、总线与总线(缓冲器)部件(续),采用总线结构的优点是: 减少信息传输线数目; 提高系统的可靠性; 增加系统灵活性; 便于实现系统标准化。,21,四、寄存器阵列(Register Array),在CPU内部,有一个临时存放地址和数据的寄存 器阵列。这个阵列因CPU的不同而不同,有的称寄

9、存 器堆,寄存器多少有差别,但其功能相似。 寄存器阵列大致分为以下四组: 存放待处理数据的寄存器; 存放地址码的寄存器; 存放控制信息的寄存器; 起数据或地址缓冲器作用的寄存器。,22,四、寄存器阵列(Register Array) (续),存放地址的寄存器 指令指针(IP)或程序计数器(PC:Program Counter); 堆栈指示器(SP: Stack Pointer); 其它可存放地址的寄存器(Register), 例如变址REG、基址REG。 存放数据的REG 累加器(AC: Accumulator); 通用REG组,A,B,C,D等。,23,四、寄存器阵列(Register Ar

10、ray) (续),存放控制信息的REG 指令寄存器(IR: Instruction Register)指令代码; 标志寄存器(FR: Flag Register),通常设有SF、ZF、AF、PF、CF、OF、IF、DF等标志。 起数据缓冲作用的REG 数据总线缓冲REG(DBUF:Data BUS Buffer); 地址总线缓冲REG (ABUF:Address BUS Buffer )。 三态,单向,内外部地址BUS之间缓冲。,24,第二节 Intel 8086微处理器,25,8086 微处理器, 8086是一种单片微处理器芯片,内外部数据总线 16位,对外40条引脚,主时钟5MHz、 8M

11、Hz、10MHz 等。 20条地址引脚,直接寻址220 =1MByte,可访问 64K个I/O端口,具有24种寻址方式,可以对位、字节、 字、字符串、字串、BCD码、ASCll码等多种数据类型 进行处理。,26,一、8086 的寄存器阵列,CPU内部有4组REG,共14个16位REG供编程人 员使用。 通用REG组 AX 主累加器 BX 累加器或基址REG CX 累加器或计数器 DX 累加器或I/O地址REG,27,一、8086 的寄存器阵列(续),指针与变址REG组 堆栈指针 基址指针 源变址器 目的变址器,变址REG,指针REG,28,一、8086 的寄存器阵列(续),3. 段REG组 代

12、码段 数据段 堆栈段 附加段 段REG是存放内存地址的高位地址,地址形成是 由段寄存器地址左移4位加上对应的偏移量。,29,一、8086 的寄存器阵列(续),例如:被取指令的地址为CS左移4位加上IP的值。 若CS =2000H,IP=0100H 则指令地址为 2 0 0 0 0 H + 0 1 0 0 H 2 0 1 0 0 H SS段与SP或BP对应; DS/ES与SI、DI、BX等结合使用,串操作时有约 定。,30,一、8086 的寄存器阵列(续),4. 控制REG 指令指针 标志REG,31,二、8086 CPU的功能结构,8086 CPU按功能可分为两大部分: 一部分为BIU(BUS

13、 Interface Unit); 专门负责取指令和存取操作数。它与BUS打交道。 一部分为EU(Execution Unit)。 专门负责分析指令与执行指令。它不与系统BUS 打交道。,32,二、8086 CPU的功能结构(续),8086CPU的功能结构,33,二、8086 CPU的功能结构(续), BIU与外部总线打交道,负责取指令、读写操作 数、地址转换与总线控制; EU负责指令译码与执行指令的工作。 取指令与执行指令操作是并行的,提高了CPU的 利用率,这种重叠操作技术,提高了整个系统的运行 速度。,34,二、8086 CPU的功能结构(续),早期的计算机取指令、执行指令是按照时间顺序

14、 进行的。而8086 CPU 是二者并行同时操作的。如图: t 队列 BIU EU t 重叠执行指令的过程,35,二、8086 CPU的功能结构(续),BIU总线接口单元 8086CPU与外设的接口部件,提供16位数据总线 与20位地址总线。 内部由段REG、IP、内部通信REG、指令队列、 地址加法器和总线控制逻辑等组成; 完成取指令、指令排队、读/写操作数、地址转换 与总线控制等工作; 队列为先进先出的原则组织FIFO(First In First Out),实现流水线操作,高性能CPU更是如此。8086 有6个Byte指令队列;需要两个指针,OUT与IN指针;,36,二、8086 CPU

15、的功能结构(续),当遇到BIU正准备取指令而 EUBIU申请读/写 MEM或 I/O时, 则先取指令,后读/写操作数; 当队列中当前有两个字节空间时,BIU顺序预取指 令并填满队列; 当遇到CALL、JMP、INT n等指令时,先把 IP 压 入堆栈,再清除队列,再重新取满队列;,37,二、8086 CPU的功能结构(续),EU执行单元 组成:ALU、FR、8个通用REG、暂存器、队列 控制逻辑与时序控制逻辑(EU控制器)等; 完成工作:指令译码与执行指令; EU没有连接到总线上,所以对系统总线来说,它 是“外界”的。,38,三、8086 CPU引脚及其功能,8086CPU 引脚图,39,三、

16、8086 CPU引脚及其功能(续),AD15 AD0 : (地址/数据复用信号) 16条,双向,三态地址/数据线,输入/出信号, 多路开关,分时复用(低16位地址线与16位数据线 公用这些引线),从时间上加以区分。 在T1周期,输出MEM或I/O口地址,T2 T4则为 数据收发信号。,40,三、8086 CPU引脚及其功能(续),A19 / S6 A16 / S3 : 地址/状态输出信号,三态 T1时,作为MEM的A19 A16地址信号(访问I/O 口时,保持低电平); T2 T4时,输出状态信息; S5 :中断允许标志位状态(IF); S4与S3:现行使用哪个段REG;,41,三、8086

17、CPU引脚及其功能(续),S6指示哪个处理器在使用总线: S6 =0,8086使用; S6 =1,其它处理器使用。,42,三、8086 CPU引脚及其功能(续),BHE/ S7 :允许高字节传送/状态输出 在T1状态, BHE在高8位数据总线D15 D8上传送 一个字节数据; BHE与A0把存储器分为两组(高组与低组): S7状态信号没定义。,43,三、8086 CPU引脚及其功能(续),RD 读信号,输出 读MEM或I/O操作,由M/IO引脚决定是读M还是 I/O口:M/IO=1,读MEM; M/IO=0,读I/O口。 READY:(输入)外部器件发回的准备就绪信号 由MEM或I/O口发回的

18、应答信号,CPU在T3的上 升沿检测该信号,若为高,则准备就绪,不插入Tw ; 若为低,则未准备好,插入Tw ;系统规定可插入不超 过10个Tw 。,44,三、8086 CPU引脚及其功能(续),INTR:(Interrupt)可屏蔽中断请求信号(IN), 高电平有效触发的输入信号,由外部设备发来; 该信号是在每一指令周期的最后一个T状态被采样, 以决定是否进入中断响应周期。 可用软件屏蔽(CLI指令使IF=0)。 7. NMI:非屏蔽中断请求信号(IN) 边沿 触发信号,若有 NMI 请求,则现行指令 结束后立即引起中断。 该信号不能用指令屏蔽,其检测时间与INTR一样。,45,三、8086

19、 CPU引脚及其功能(续),TEST:检测信号(IN) 该信号由8087发来,在WAIT指令执行期间, CPU监视TEST信号。若TEST为低电平,8086继续执 行WAIT的下一条指令,否则CPU处于等待(空闲) 状态,且重复测试TEST信号;TEST为高时,处于 WAIT状态,TEST低电平时退出WAIT状态。,TEST,BUSY,46,三、8086 CPU引脚及其功能(续),RESET:复位信号(IN),高有效 该信号使CPU结束现行操作,初始化内部REG, CPU复位后: CS=FFFFH IP=0000H DS=0000H ES=0000H SS=0000H FR=0000(禁止中断

20、) 指令队列空,复位后执行的第一条指令在内存的 FFFF0H(引导程序的入口地址),用JMP可转到实 际开始处。 CLK:时钟,Vcc与GND:电源与地(IN),47,三、8086 CPU引脚及其功能(续),MN/MX:最小最大组态控制信号(IN) 当MN/MX=0,为最大组态,构成多处理器系统; 在最大组态时,控制信号由S2S0经总线译码器 8288译码产生。 当MN/MX=1,为最小组态,构成单处理器系统, CPU提供所有的总线控制信号。 MN/MX的接法决定了8个引脚(2431)之功能。,48,三、8086 CPU引脚及其功能(续), 当MN/MX=Vcc(最小组态)时,各引脚功能: I

21、NTA:中断响应信号(OUT) 是INTR的应答信号,在中断响应时发两个INTA 周期。 ALE:地址锁存允许信号(OUT) (Address Latch Enable) 把地址/数据、地址/状态线上的地址信号锁存到 地址锁存器中,ALE在T1状态有效。,49,三、8086 CPU引脚及其功能(续),M/IO:MEM与I/O控制信号(OUT) 决定访问的是MEM或者是I/O: M/IO=1,访问MEM; M/IO=0,访问I/O口。 WR:写信号(OUT) 用来表示CPU处于写MEM或者I/O口(与M/IO 配合使用)。,50,三、8086 CPU引脚及其功能(续),DT/R:数据收发信号(双

22、向,三态) 增加数据总线的驱动能力,采用外加总线驱动器 (收发器8286/8287)。当 DT/R=1,发送; DT/R=0,接收。 DEN:数据允许信号(Data Enable)(OUT) 作为总线驱动器8286/8287芯片的输出允许信号 (OE)。,51,三、8086 CPU引脚及其功能(续),HOLD(IN)与HLDA(OUT):总线请求保持 与总线响应保持信号 总线请求HOLD是由其它主设备发送给CPU; CPU检测HOLD的时间: 在每一个总线周期的最后 一 个T状态。 总线响应HLDA作为CPU对HOLD之应答,并让出 总线控制权。,52,三、8086 CPU引脚及其功能(续),

23、 当MN/MX=0(最大组态)时,各引脚功能: S2、S1、S0 :总线周期状态信号(OUT) 此三状态信号由总线控制器8288译码产生CPU所 需的各种控制信号,共产生8个控制信号。主要有: 存储器读写; 中断响应INTA(ALE,DEN,DT/R); I/O口读写等控制信号。,53,三、8086 CPU引脚及其功能(续),RQ/ GT0,RQ/ GT1:(Request/Grant) 总线请求(IN)/总线允许(OUT) 每一引脚都是双向的,既可作为总线请求,又可 作为总线响应信号。外部主设备发来的请求信号为 输入,CPU响应时为输出。 若有两个主设备同时请求时 , RQ/ GT0比 RQ

24、/ GT1级别高。,54,三、8086 CPU引脚及其功能(续),LOCK:总线锁定信号(OUT) 该信号由前缀指令“LOCK”使其生效,且一直保 持到下一指令执行完,以使得外部总线主控设备不能 获得对系统总线的控制权。,55,三、8086 CPU引脚及其功能(续),QS1,QS0: 指令队列状态信号(OUT) 让外部设备能监视CPU内部指令队列状况。 编码如下:,56,第三节 8086 中的标志 寄存器和堆栈,57,一、标志寄存器(Flag Register),8086CPU中有一个16位的标志寄存器(FR), 共设有9个标志位,用以反映算术、逻辑运算结果的 特征及反映CPU的控制,有7位无

25、用。 不同的指令对标志的影响是不同的(如传送类、 转移类等指令不影响标志位,而算术逻辑运算大部分 都影响标志位);反之,不同的标志也影响着指令执 行的结果。,58,一、标志寄存器(Flag Register)(续),其中6个状态标志:CF、PF、AF、ZF、SF、OF 3个控制标志:IF、DF、TF。 有7位空的未用。,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,59,一、标志寄存器(Flag Register)(续),CF:进位标志(Carry Flag) 当运算的结果在最高位(8位,16位)上产生一 个进位或借位时,CF=1;反之,CF=0。 PF:奇偶标志

26、(Parity Flag) 当运算结果低8位中“1”的个数为偶数时,PF=1; 为奇数时,PF=0。,60,一、标志寄存器(Flag Register)(续),AF:辅助进位标志(Auxiliary Carry Flag) 在算术运算中,当一个8位(或16位)数的低4位 向高4位(即b3位向b4位)有进位或借位时,AF=1; 反之,AF=0。此标志用于BCD码运算指令中。 ZF:零标志(Zero Flag) 当运算结果为全“0”时,ZF=1;反之,ZF=0。,61,一、标志寄存器(Flag Register)(续),SF:符号标志(Sign Flag) 当运算结果的最高位为“1”时,SF=1;

27、反之, SF=0。 OF:溢出标志(Overflow Flag) 在算术运算中,符号数的运算结果超出8位或 (16位)符号数表达的范围,OF=1;反之,OF=0。 (8位:-128+127;16位:-32768+32767) 溢出与进位是两个不同性质的标志,一个反映符 号数,一个反映纯数值。,62,一、标志寄存器(Flag Register)(续),此外还设有3个控制标志: DF:方向标志(Direction Flag) 用于控制字符串操作指令的步进方向。 当DF=0时,表示从低址向高址以递增顺序进行串 处理;当DF=1时,表示从高址向低址以递减顺序进行 串处理。,63,一、标志寄存器(Fla

28、g Register)(续),IF:中断允许标志(Interrupt enable Flag) 当IF=1时,允许中断;当IF=0时,禁止中断。 该标志可用指令STI或CLI使其置1或0。 IF标志对 NMI 信号或由内部中断(INT n)无 作用。,64,一、标志寄存器(Flag Register)(续),TF:陷阱或跟踪标志(Trap Flag) 当TF=1时,CPU进入单步工作方式,每执行完一 条指令就自动产生一个内部中断,以便进行程序调试。 当TF=0时,连续执行程序。 (没有专门的指令使TF置1或0),65,二、堆栈,什么是堆栈? 堆栈是一个按照后进先出(LIFO Last In F

29、irst Out)的原则存取数据的部件或区域。 硬件堆栈:内部寄存器作为堆栈,工作速度快, 容量不大: 软件堆栈:用内存作为堆栈,工作速度慢,容量 大,内存有多大,堆栈就有多大,堆栈由一个堆栈 指针 SP 和一个栈区组成。,66,二、堆栈(续),为什么要用堆栈? 主程序与子程序,主程序调用子程序,或者子程 序调用子程序,或者处理中断服务程序,CPU必须把 主程序调用子程序指令的下一条指令的地址(或中断 时的断点)即PC值保留下来,才能保证子程序(或中 断服务程序)执行完之后正确返回到主程序继续执行。 另外,调用子程序之前的有关REG、标志位也要 及时正确的保存下来。,67,二、堆栈(续),堆栈

30、如何操作? 堆栈必须设有一个区域(栈区),还需一个指针 (SP),指示栈在什么位置。8086与栈有关的寄存器 是SS和SP。 SS:标识现行堆栈的基地址; SP:标识现行堆栈的段内偏移量。 8086中的栈是“向下生成”的栈,即随着入栈数据 增加,SP值减小。有些处理器或单片机还有“向上生 成”的栈。,68,二、堆栈(续),SP值由指令MOV SP,data设定初值。 空栈时,栈顶与栈底是重合的,随着压入栈中数 据增加,堆栈扩展,SP减小,SP始终指向栈顶。 堆栈操作有专门的指令 PUSH 与 POP 。 8086的入栈与出栈弹出操作每次是一个字,而不 是一个字节。,69,二、堆栈(续),举例:

31、若SS=1200H,SP=1000H,执行PUSH AX (设AX=1234H),看栈针与栈中的内容。 先修改栈针,再压入数据,先压入高字节,后压 入低字节。分两步: 1. 先SP1SP,压入高位字节(即AH内容); 2. 再SP1SP,压入低位字节(即AL内容)。,70,二、堆栈(续),压入堆栈操作如图: SS16+SP 12000H + 1000H 13000H,低址,高址,SP=1000H,SP10FFFH,SP10FFEH,M,12FFEH,12FFFH,13000 H,AX=12 34,(2),(1),71,二、堆栈(续),出栈操作与入栈操作相反: 1. 先弹出低位内容, 修改SPS

32、P+1; 2. 再弹出高位内容,再修改SPSP+1; 注:CALL与RET中保护断点与恢复断点是由指令自 动完成的。,72,二、堆栈(续),举例:若SS=1500H,SP=1000H,执行POP BX (设栈中数据=5678H),看栈针与栈中的内容 如何变化。 弹出也分为两步: 先弹出低8位(78H BL ),修改栈针, SP+1SP ; 再弹出高8位(56H BH ),再修改栈针,SP+1SP ; 执行 POP BX 指令后,BX=5678H, SP=1002H, SS=1500H, 堆栈中的数据仍然不变。,73,二、堆栈(续),弹出操作如下图: SS16+SP 15000H + 1000H

33、 16000H,低址,高址,SP=1000H,SP+11002H,SP+11001H,M,16000H,16001H,16002H,BX=BH BL 56 78,(1),(2),74,第四节 8086 系统的组成,75,一、存储器的组织与分段,存储器组织 8086有20位地址线,寻址范围1M字节(从 00000HFFFFFH),每一单元都有一个唯一的物理 地址,每个单元存储一个字节,任何两个相邻单元可 存放一个字(word)。 80386Pentium处理器都是32位的地址,寻址范围 为232=4GBytes =(4096MB)。,76,一、存储器的组织与分段,77,一、存储器的组织与分段,7

34、8,一、存储器的组织与分段,79,一、存储器的组织与分段(续),几个基本概念: 字节地址对应的单元地址; 字地址两个地址中低址作为字地址; 字符串地址低字节存放在低址单元,高字节 存放在高址单元。,80,一、存储器的组织与分段(续),例1:把5678H写入1002H单元。 78H1002H 56H1003H,M,1002H,1003H,81,一、存储器的组织与分段(续),例2:把字串12345678H写入1000H单元。 781000H 121003H 读:从1002H读出时,读一个字节是34, 读一个字是1234; 从1001读出一个字是3456H,但读 奇址的字时,需访问内存两次,忽略掉

35、78H与12H;读写字节时每次数据总线上 仍是16位,忽略掉另一个字节。 请参看P47 图2.15,8086从存储器中读、写字与字节示意图,M,1000,1001,1002,1003,82,一、存储器的组织与分段(续),存储器分段 分段原因:CPU内没有设置20位的地址寄存器, 只有16位的寄存器,16位寄存器无法存放20位地址, 所以把20位地址分为基地址(段)和偏移量;分别 存放在两个16位寄存器中。 好处是:程序区、堆栈区和数据区可以互相隔离,方便程序的再定位。 允许段重叠:根据情况,段与段之间可以重叠,几个段可以在一个64K段内,但各段的起始地址是不同的。,83,一、存储器的组织与分段

36、(续), 8086系统存储器分段示意图,84,一、存储器的组织与分段(续),存储器的实际地址就是物理地址(或绝对地址) 20位;存储器的逻辑地址是段基址和16位偏移量组成。 因为段REG为16位,所以每64KByte为一段。 实际地址是由段地址左移4位加上所对应的16位 地址偏移量。 CPU中的BIU中有一个20位地址加法器,用来形 成20位的物理地址。(段自动左移4位与偏移量相加),85,一、存储器的组织与分段(续),8086物理地址的形成,86,一、存储器的组织与分段(续),不同的逻辑地址可以变换成同一个物理地址,反 之亦然。 例如:物理地址为 25000H 逻辑地址:段基址为2000H,

37、偏移量5000H 段基址为2100H,偏移量4000H 段基址为2200H,偏移量3000H,87,二、输入/输出结构,8086可访问8位I/O端口或16位I/O端口,若直接 寻址方式寻I/O端口,用8位地址,可访问28=256个端 口地址;若用间接寻址方式寻I/O,用16位地址,可 访问216=64K个端口地址;间接寻址通过DX寄存器, I/O端口不设段REG,可以认为全部端口都在同一个 段内。 8086系列的处理器设有专门的I/O指令 (即IN和OUT指令)。,88,三、总线接口部件,介绍两种常用的总线接口部件:地址锁存器和总线驱动器。 下面是本教材(采用国际符号)和某些教材的逻辑门电路符

38、号对照表,89,三、总线接口部件(续),地址锁存器(8282)(或74LS373) 8282(或373)是带三态输出缓冲器的8位双向锁存器。 选通信号:STB(Strobe)把输入 数据锁入锁存器。 ALESTB OE为输出允许信号,当其为低时, 数据就出现在数据线上; OE=1时,锁存器处于高阻。,90,三、总线接口部件(续) 带三态缓冲的8位数据锁存器8282,8282内部结构,STB:选通脉冲 OE:为0时输出有效 为1时输出为高阻,91,三、总线接口部件(续),双向总线驱动器(总线收发器) 数据锁存不是必须的,但在较大的系统中,由于 使用的存储器和I/O接口数量较多,为了增加CPU数

39、据总线带负载的能力,一般接入总线驱动器以提高数 据总线带负载之能力。,92,三、总线接口部件(续),8286(或74LS245)是8位总线驱动器(双向) T是控制收发方向的输入控 制信号: T=1,AB; T=0,BA; OE=0,输出允许信号; OE=1,8086是高阻。 8286可以提供32mA驱动。,93,三、总线接口部件(续) 带三态的8位双向数据缓冲器8286,8286内部结构图,94,四、8086的两种组态,最小组态: CPU提供所有的总线控制信号,以实现与MEM 和I/O接口的连接。(最小组态如下图),95,8086最小模式,96,四、8086的两种组态(续),最大组态: 当MN

40、/MX=0时,8086组成最大组态,以组成多 处理器系统。在此组态下,一些系统资源由多个处理 器所公用,它们被称为全局资源;另一些资源为某个 处理器所专用的,称为局部或专用资源。,97,四、8086的两种组态(续),在多处理器系统中,任何时刻只能有一个处理器 访问总线,采取的措施是: 总线控制器(8288)(产生命令和控制时序,提供总线驱动能力) 8288对8086的三个总线状态信号( S0、S1、S2 ) 进行译码,以产生与多总线结构兼容的各种定时命令 和控制信号。译出8种信号,111时不用(无源), 还有7种作为命令信号,请参看下表。,98,四、8086的两种组态(续),总线状态码与输出命

41、令对应表,99,四、8086的两种组态(续) (1)8288总线控制器,100,四、8086的两种组态(续),8288提供超前写命令(AMWC、AIOC): 即在写周期开始之前就启动写过程,其时序与读 命令相同,在一定程度上避免处理器进入没必要的 等待状态。 8288有两种工作方式,由IOB决定: 当IOB=0,系统总线工作方式; 当IOB=1,I/O总线工作方式(8089 I/O处理器),101,四、8086的两种组态(续),(2) 总线裁决器(8289) 有了8289,才允许多个处理器(8086,8087, 8089等)驻留在系统总线上,每个处理器都有自己的 裁决器,每个裁决器都有一个总线

42、请求信号BREQ。 总线的裁决器根据8086系统的多总线裁决规程进行。 裁决器的连接方式有3种: . 并联优先权判别方式(BREQ送入优先权编码器) . 串联优先权判别方式(与连接位置有关,菊花链) . 循环优先权判别方式(动态分配,电路复杂),102,总线裁决器(8289),8289总线裁决器,103,四、8086的两种组态(续) (3) 8086最大组态图,8086最大组态特点: 三个状态信号S0S2经8288总线译码器译码后产生最大组态时CPU对外的控制信号(共七个信号),8288本身还提供一些控制信号。最大组态电路如下图所示。,104,四、8086的两种组态(续) (3) 8086最大

43、组态图,105,第五节 8086 系统时钟与总线周期,106,一、系统时钟, 时钟发生器: 8284A提供系统时钟。 8284A组成:晶体震荡器,一个三分频器,起同 步作用的READY信号及复位RESET信号。 功能:提供时钟信号,与外设时钟; (外部晶体15MHz/24MHz3) 提供系统复位控制逻辑 ; 提供起同步作用的READY信号。 输出:RESET,CLK(5MHz),PCLK(2.5MHz), OSC(15MHz),READY,107,8284A内部结构图,8284A内部结构图,108,8284A对外引脚图,8284A对外引脚图,引脚信号功能 CSYNC: 使多个8284A时钟同步

44、信号, =0,内部计数 PCLK: 外设时钟信号 AEN1,AEN2: 制约信号,与RDY配合 READY: 准备就绪 RDY1,RDY2: 总线准备就绪 ASYNC: READY同步选择一、两级 RES,RESET: 复位入,复位出 OSC: 振荡器输出 EFI: 外部时钟频率 F/C: 频率/晶体选择,109,8284输出的三组时钟信号,110,8284与8086的连接,111,二、总线周期,8086的的所有操作都是在时钟脉冲CLK的统一控制下进 行的,执行一条CPU指令所需要的时间,称为指令周期。 而一条指令需要一个或若干个总线周期(或机器周期)。 一个总线周期是CPU通过总线与外部逻辑(MEM/IO口) 进行一次通讯所需要的时间。 一个总线周期是由若干个T状态组成的,8086的基本总线 周期是由4个T状态组成的。 下面以存储器读或写来说明8086CPU的基本总线周期。,112,二、总线周期(续) 1、8086读总线周期,113,二、总线周期(续) 2、8086写总线周期,114,二、总线周期(续) 3、8086时序,115,二、总线周期(续) 3、8086时序(READY信号),116,二、总线周期(续),空闲周期:当BIU队列已满,且EU没有向BIU申 请读写时,CPU进入空闲机器周期,BIU不发生总线 操作(一系列的T1状态),此时CPU进行内部操作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1