体系结构与80X86CPU.ppt_第1页
体系结构与80X86CPU.ppt_第2页
体系结构与80X86CPU.ppt_第3页
体系结构与80X86CPU.ppt_第4页
体系结构与80X86CPU.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019/5/17,1,微型计算机原理与接口技术,学习成就未来!,第二章 8086系统结构,熊旺平 ,2019/5/17,2,本章内容导读,CPU(8086)的结构 CPU(8086)的引脚信号和工作模式 8086系统存储器的组织和分类 CPU(8086)的操作和时序,2019/5/17,3,本章学习要求,熟悉8086CPU的内部结构及引脚功能和系统配置; 掌握8086CPU的寄存器结构、功能和使用方法; 掌握标志寄存器中各标志位的定义; 掌握存储器的分段表示,熟悉其分体结构和堆栈 熟悉总线周期与指令周期、时钟周期的关系; 了解总线时序。,2019/5/17,4,x86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。 该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如Pentium。现时Intel把x86-32称为IA-32,全名为“Intel Architecture, 32-bit”。不过,由于x86包括16位元的处理器,这样的命名也出现麻烦。,2019/5/17,5,历史,x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人电脑的标准平台,成为了历来最成功的CPU架构。 其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制造商为AMD,其Athlon系列处理器的市场份额仅次于Pentium。 8086是16位元处理器;直到1985年32位元的80386的开发,这个架构都维持是16位元。接着一系列的处理器表示了32位元架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位元的扩充,并命名为AMD64。后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。,2019/5/17,6,值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。,2019/5/17,7,设计,x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex Instruction Set Computer)。 字组(word, 4字节)长度的内存存取允许不对齐内存位址。 向前相容性一直都是在x86架构的发展背后一股驱动力量(设计的需要决定了这项因素而常常导致批评,尤其是来自对手处理器的拥护者和理论界,他们对于一个被广泛认为是是落后设计的架构的持续成功感到不解)。,2019/5/17,8,CPU(8086)的结构,由于当时制造工艺和生产成本的原因,微处理器的结构受到引脚数目、芯片面积和器件速度的限制。 8086 CPU的特点 引脚功能复用 单总线、累加器结构 可控三态电路 总线分时复用 Intel 8088准16位处理器,内部寄存器及内部操作均为16位,外部数据总线8位。 8088与8086指令系统完全相同,芯片内部逻辑结构、芯片引脚有个别差异。,2019/5/17,9,CPU(8086)的结构,8086概况: 1979年推出,第一代超大规模集成电路(VLSI)微处理器,采用HMOS工艺制造,内含2.9万晶体管。 数据总线宽度16位,地址总线宽度20位;可直接寻址空间2201M字节单元;16位数据总线与地址总线复用。 采用单一的+5V电源,一相时钟,时钟频率为 5MHz(8086),10MHz(80861),8MHz(80862)。 133条指令,指令长度16字节,指令最短执行时间为0.4s(平均0.5s)。,2019/5/17,10,CPU(8086)的结构,一、8086CPU的内部结构,总线接口部件BIU(Bus Interface Unit) 16位段地址寄存器 16位指令指针寄存器IP 存放下一条要执行指令的偏移地址 3) 20位物理地址加法器 完成16为逻辑地址20位物理地址的转换 4) 6字节指令队列 预放六字节的指令代码 5) 总线控制逻辑,指令执行部件EU(Execution Unit) 算术逻辑运算单元ALU 完成8位或16位二进制运算 2)标志寄存器PSW 存放ALU运算结果特征 3) 寄存器组 4个通用16位寄存器;4个专用16位寄存器 4) EU控制器 取指令控制和时序控制部件,2019/5/17,11,CPU(8086)的结构,2019/5/17,12,CPU(8086)的结构,2019/5/17,13,CPU(8086)的结构,2019/5/17,14,CPU(8086)的结构,2019/5/17,15,CPU(8086)的结构,2019/5/17,16,CPU(8086)的结构,2019/5/17,17,寄存器定义 (Register),寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。 寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个 “8 位元寄存器”或 “32 位元寄存器”。 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。,2019/5/17,18,寄存器用途,1.可将寄存器内的数据执行算术及逻辑运算; 2.存于寄存器内的地址可用来指向内存的某个位置,即寻址; 3.可以用来读写数据到电脑的周边设备。,2019/5/17,19,CPU(8086)的结构,二、8086CPU的寄存器结构,Stack Pointer Base Pointer Source Index Destination Index Code Segment Data Segment Stack Segment Extra Segment Instruction Pointer,Accumulator X Base X Counter X Data X,2019/5/17,20,什么是D触发器?,D触发器的D代表延迟或数据,它的输出是发生在早于一个时钟脉冲之前的D输入的函数。维持阻塞D触发器如图2-46所示。在时钟脉冲期间,在D输入提供“1”会导致输出变为1,否则输出变为0。其真值表(表2-18)表明这种关系,其中Qn+1是时钟脉冲以后的Q输出,它取决于D的输入状态。 用JK触发器构成的D触发器,如图2-47所示。,2019/5/17,21,2019/5/17,22,CPU(8086)的结构,2019/5/17,23,CPU(8086)的结构,2019/5/17,24,CPU(8086)的结构,指针与变址寄存器 BP和SP称为 指针寄存器 常与SS联用,来确定堆栈段中的某一存储单元的地址. SI和DI称为 变址寄存器 常与DS联用,来确定数据段中的某一存储单元的地址. 在串指令中,SI与DS联用; DI与ES联用.,2019/5/17,25,CPU(8086)的结构,2019/5/17,26,CPU(8086)的结构,2019/5/17,27,CPU(8086)的结构,状态标志,标志寄存器的格式及各位的含义,2019/5/17,28,CPU(8086)的结构,1. 状态标志:表示前面的操作执行后,算术逻辑部件处于怎样一种状态。例如,是否产生了进位,是否发生了溢出等等。程序中,可以通过对某个状态标志的测试,决定后面的走向及操作。 例如: STATE: IN AL, 0DAH; TEST AL, 02H; JZ STATE 全零标志ZF(Zero Flag):若运算结果为0,则ZF1;否则ZF0。 例1:MOV AL, 4 SUB AL, 4 例2:XOR AX, AX 执行后,ZF=? 执行后,ZF=1,2019/5/17,29,CPU(8086)的结构,进位标志CF(Carry Flag): 它反映: 加法时,最高位(字节操作时的D7位,字操作时的D15位)是否有进位产生。 减法时,最高位(字节操作时的D7位,字操作时的D15位)是否有借位产生。 例如: MOV AL, 3; SUB AL, 4; 执行后,CF1。 CF可以表示无符号数的溢出. 奇偶校验标志PF(Parity Flag):若运算结果低8位中“1”的个数为偶数,则PF1;否则PF0。 例:MOV AL, 2 ADD AL, 1 执行后,PF位为1。,2019/5/17,30,CPU(8086)的结构,辅助进位标志AF(Auxiliary carrry Flag): 也称“半进位标志”,它反映: 加法时,D3位向D4位有进位; 减法时,D3位向D4位有借位。 溢出标志OF(Overflow Flag):若运算过程中发生了“溢出”,则OF1。 定义:运算结果超出计算装置所能表示的范围,称为溢出。 OF为是根据操作数的符号及其变化情况来设置的: 若两个操作数的符号相同,而结果的符号与之相反时,OF=1; 否则,OF=0. 它是用来表示带符号数的溢出的.,2019/5/17,31,例题 将 5394H 与 777FH 两数相加,并说明其标志位状态.,运算结果为23EBH,并置标志位为: 进位标志 CF=0; 奇偶校验 PF=1; 辅助进位 AF=0; 全零标志 ZF=0; 符号标志 SF=1; 溢出标志 OF=0.,2019/5/17,32,CPU(8086)的结构,2. 控制标志(3位):每一位控制标志都对一种特定的功能起控制作用。可以通过专门的指令对其进行“置位”(Set)或“复位”(Reset)。 中断标志IF(Interrupt Enable Flag):如果IF置“1”,则CPU可以接受可屏蔽中断请求;反之,则CPU不能接受可屏蔽中断请求。 指令系统中有两条专门的指令可以置“1”或置“0” IF标志位: STI 使IF置“1”,即开放中断。 CLI 使IF清“0”,即关闭中断 方向标志DF(Direction Flag):用于串操作指令中的地址增量修改(DF0)还是减量修改(DF1)。 STD (SeT Direction) , CLD (Clear Direction)。 跟踪标志TF(Trap Flag):若TF1,则CPU按跟踪方式(单步方式)执行程序。,2019/5/17,33,CPU(8086)的引脚信号和工作模式,2019/5/17,34,中断相关引脚,INTR:可屏蔽(Maskable)中断请求信号,输入,高电平有效。外设向CPU发出中断请求。 INTA:中断响应信号,输出,低电平有效。CPU对中断请求的响应。 CPU在每条指令的最后一个时钟周期采样INTR信号,若发现INTR信号有效(为高电平),并且中断允许标志IF=1时,CPU就会在结束当前指令后,响应中断请求,进入中断响应周期。其间,将通过INTA引脚向发出请求信号的设备(中断源)发出中断响应信号。 NMI(Non-Maskable Interrupt request):非屏蔽中断请求信号,输入,正跳变有效。“不受IF的影响”。,2019/5/17,35,存储相关引脚,BHE/S7:高8位数据允许/状态(BUS High Enable/Status)复用引脚 8086有16条数据线,可用低8位传送一个字节,也可用高8位传送一个字节,还可用高8位和低8位一起传送一个字(16位)。BHE就是用来区分这几类传输的。 WR:写信号,输出,三态,低电平有效; RD: 读信号,输出,三态,低电平有效。 当读信号(或写信号)有效时,表示CPU正在进行读(或写)存储器或IO端口的操作。究竟是读(或写)存储器还是IO端口,由CPU输出的另一个专门信号M/IO决定。 M/IO(Memory / IO):访问存储器或IO端口信号,输出,三态。为高电平时,表示CPU当前正在访问存储器,2019/5/17,36,存储相关引脚,ALE(Address latch Enable):地址锁存允许信号,输出,高电平有效。 由于8086/8088的一部分地址线和数据线采用分时复用。在一个总线周期内总线上先传送地址,接着传送数据。但在一般情况下,存储器或I/O接口电路,要求在整个总线周期内保持稳定的地址信息。这样,就需要将这些地址信息保存起来。 与8086/8088配套的锁存器电路为8282/8283,用ALE做锁存允许信号。 DEN(Data Enable):数据允许,输出,三态,低电平有效。作为总线收发器(8286/8287数据总线驱动器)的控制信号。 DT/R(Data Transmit/Receive):数据发送/接收控制,输出,三态。 READY(Ready)准备就绪信号,输入,高电平有效。由存储器或I/O端口发来的响应信号,表示外部设备已经准备就绪。,2019/5/17,37,锁存器的应用,选通,n位数据总线,ALE(Address latch Enable):地址锁存允许信号,2019/5/17,38,HOLD(Hold request):总线请求,输入,高电平有效。 HLDA(Hold Acknowledge):总线请求响应,输出,高电平有效。,MN/MX:最小/最大模式控制信号,模式与总线控制引脚,2019/5/17,39,CPU在每个时钟周期的上升沿采样HOLD,如果允许让出总线,就在当前总线周期完成时(T4状态),从HLDA引脚发出一个回答信号,对HOLD请求发出响应。同时,CPU使地址/数据总线和有关控制信号线进入高阻状态(第三态)放弃总线控制权。 另一方面,总线请求部件(如DMAC)收到有效HLDA信号后,就获得了总线控制权。在此期间,HOLD和HLDA都保持高电平,在总线占有部件(当前总线主)用完总线之后,将把HOLD信号变为低电平,表示现在放弃对总线的占用。 CPU收到低电平的HOLD之后,它将HLDA变为低电平。从此,CPU又获得了总线控制权。,模式与总线控制引脚,2019/5/17,40,CPU(8086)的引脚信号和工作模式,最小模式和最大模式 最小模式,也称“单处理器系统”,即在系统中只有一个8086处理器,全部的系统总线信号均由8086直接产生。总线控制逻辑减到最少,故称最小模式。 最大模式,也称“多处理器系统”,即系统中包含两个或多个处理器,其中一个为主处理器(8086),其他的处理器为“协处理器”(COProcessor)。通常,和8086配合使用的协处理器有两个:一个是数值运算协处理器8087,一个是输入/输出协处理器8089。 两种工作模式选择不是由程序控制的,而是由硬件设定的。CPU的引脚 MN/MX端接高电平5V时,构成最小模式,接低电平时构成最大模式。,2019/5/17,41,CPU(8086)的引脚信号和工作模式,2019/5/17,42,DI:输入 DO:输出 Vcc:电源 GND:地 STB:选通,输入 OE:允许输出 8282芯片中,当STB有效时,输入端上的8位数据被锁存到锁存器中;OE有效时,锁存器中的数据输出; OE无效时,则输出端呈高阻状态如果该系统中所接存储器或I/O接口的容量不超过64K字节时,只需2片8282就能锁存16位地址信号当CPU地址锁存允许信号ALE有效,也即STB有效时,地址被锁存,A0-A7,B0-B7:双向数据输入输出 OE:开启缓冲器的控制信号当OE有效时,允许数据通过;与8086的 DEN相连 T:是数据传送方向控制信号当T端为高电平时,8位数据被正向传送AB,低电平,方向为AB;与8086的DT/R相连,2019/5/17,43,CPU工作在最小模式下,系统控制信号直接由CPU产生。在最大模式,系统控制信号则由总线控制器产生。 CPU工作在最大模式时,不同总线周期S2#、S1#、S0#输出不同状态, S2#、S1#、S0#的不同组合指出CPU当前不同的总线周期。将S2#、S1#、S0#输入总线控制器8288进行译码,8288便根据不同总线周期产生产相应的总线控制信号。 总线请求与允许信号RQ#/GT0#,RQ#/GT1#(Request/Grant):总线请求信号/总线请求允许信号(标号31、30),双向。CPU以外的两个处理器可以分别用其中之一来请求总线, 并接受CPU对总线请求的允许。其中RQ#/GT0#优先级高于RQ#/GT1#。,最大工作模式(MN/MX#=0),2019/5/17,44,LOCK#(Lock):总线封锁信号(标号29),输出。用来封锁其它总线主的总线请求,当LOCK#为低电平时, 系统中其他总线主就不能占用总线。 信号是由CPU的29号管脚上输出的电平信号。LOCK#信号是受指令控制的, 当CPU执行了具有总线封锁指令LOCK前缀的指令时,LOCK#管脚输出低电平,用他来封锁其他处理器对总线的请求。LOCK#为低,其他处理器不能占有总线。直至具有LOCK前缀的指令执行完之后,LOCK#才变为无效电平,输出高,撤消对其他处理器的总线封锁,2019/5/17,45,总线控制器8288,2019/5/17,46,8086系统存储器的组织和分类,2019/5/17,47,8086系统存储器的组织和分类,整个存储空间可分为 16个逻辑段,可以是连续分开或重叠的. 凡能被16或10H整除的地址处均可分段. 也就是说最末一个为16进制数字为0H的地址单元处均可开始分段。,2019/5/17,48,8086系统存储器的组织和分类,逻辑地址:用来表示存储器逻辑单元的地址,由段基址和偏移地址组成,程序设计时采用逻辑地址。 物理地址:存储器的绝对地址,从00000FFFFFH,CPU访问存储器的实际寻址地址,由逻辑地址变换而来。,物理地址的形成,2019/5/17,49,8086系统存储器的组织和分类,2019/5/17,50,8086系统存储器的组织和分类,2019/5/17,51,8086系统存储器的组织和分类,逻辑地址的来源,教材P36 图表,2019/5/17,52,8086系统存储器的组织和分类,2019/5/17,53,8086系统存储器的组织和分类,2019/5/17,54,8086系统存储器的组织和分类,2019/5/17,55,8086的总线时序,时钟周期 :时钟脉冲的重复周期 ,又叫T状态,是CPU的时间基准,时序系统中的最小时间单位,由计算机主频决定。 总线周期 :通过总线进行一次或多次对存储单元或I/O端口读或写的操作,完成一次读写操作所需要的时间 。 指令执行周期 :从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果整个过程 。 一个指令周期有若干个总线周期,而一个总线周期又有若干个时钟周期组成,2019/5/17,56,8086的总线时序,8086系统总线周期通常由四个时钟周期组成(T1T4)。 TI:若在完成一个总线周期后不发生任何总线操作,则填入空闲状态时钟周期(TI),两个总线周期之间插入几个TI与执行的指令有关。 Tw:若存储器或I/O端口在数据传送中不能以足够快的速度作出响应,会发出一个请求延长总线周期的信号到8086CPU READY引脚,8086收到该请求后,则在T3与T4间插入一个或若干个等待周期(Tw,也是时钟周期),加入Tw的个数与请求信号的持续时间长短有关。,2019/5/17,57,8086的读总线周期,T1状态:M/IO信号有效,指出读内存还是I/O,高为读内存,低为读I/O。CPU送出20位地址,高4位通过A16/S3A19/S6,低16位通过AD0ADl5,ALE输出作为地址锁存信号,BHE信号低电平有效,表示高8位数据总线上信息可用。,2019/5/17,58,8086的读总线周期,T2状态:地址信号消失,AD0AD15进入高阻状态为读入数据作准备,2019/5/17,59,8086的读总线周期,T3状态:若存储器和外设速度足够快,若READY有效,置DT/R、DEN为0,读取数据;否则进入 Tw状态; Tw状态:如果存储器和外设速度较慢,插入若干Tw。在每次上升沿检测READY;,2019/5/17,60,8086的读总线周期,T4状态:一个总线周期结束,数据从总线上撤销,数据、地址总线均进入高阻状态,若是最大模式,S2、S1、S0按照下一个总线周期的操作内容变化,准备进入下一个总线周期。,2019/5/17,61,与读总线周期基本类似; 区别:WR取代RD信号,即写操作取代了读操作。另一个就是DTR的作用,读周期中为低电平,控制数据从总线进入CPU;写周期中为高电平,数据从CPU进入总线。,8086的写总线周期,2019/5/17,62,80486CPU,基于80386的 32位机 内部寄存器和数据总线、地址总线均32位内存空间4GB 虚拟内存64TB 集成浮点运算部件和8KB的Cache 突发式总线技术、RISC,2019/5/17,63,80486CPU,基于80386的 32位机 内部寄存器和数据总线、地址总线均32位内存空间4GB 虚拟内存64TB 集成浮点运算部件和8KB的Cache 突发式总线技术、RISC,2019/5/17,64,80486 CPU 内部结构,内部浮点部件(FPU) 对浮点进行运算。阶码和尾数两部分分别进行处理:32、64和80bit数。正弦和余弦处理功能。 存储管理部件(MMU) 包含一个分段部件和分页部件,分段部件通过数据和代码的再定位与全局资源共享管理存储器逻辑地址。段最大4GB。分页部件在分段之下操作,每页固定4KB。一个任务最多具有16381个段64TB的虚拟地址空间 32字节指令队列、5级流水线、8KB高速缓存,2019/5/17,65,2019/5/17,66,80486 CPU 的寄存器,基本结构寄存器 通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP、段寄存器CS、SS、DS、ES、FS和GS、指令指针寄存器EIP、标志寄存器EFLAGS,2019/5/17,67,标志寄存器EFLAGS,(1)、状态标志 当80486CPU执行有关运算指令时,其运算结果对状态标志进行修改,这些标志能反映运 算状态。这6个状态标志与8086中完全相同,它们是CF、PF、AF、ZF、SF、OF。 (2)控制标志 控制标志也与8086中一样有3个:DF、IF、TF。 (3)、系统标志 系统标志是指将这些标志置“1”或清“0”时,系统可按照要求操作。系统标志

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论