第2章 16位和32位微处理器1_第1页
第2章 16位和32位微处理器1_第2页
第2章 16位和32位微处理器1_第3页
第2章 16位和32位微处理器1_第4页
第2章 16位和32位微处理器1_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第2章16位和32位微处理器

1根本要求:8086微处理器的编程结构

8086微处理器的存放器

8086微处理器的操作时序

中断、中断分类、中断向量、中断响应、中断屏蔽8086的最小模式、最大模式工作方式,最小模式下的存储器配置8086的存储器编址、存储器的分段结构8086的IO编址

80386的功能部件80386微型机的三种工作方式2

32位微型机中指令流水线和地址流水线和实现

32微型机中的两级存储管理

逻辑地址到线性地址的转换

逻辑地址到物理地址的转换

线性地址到物理地址的转换

Pentium采用的CISC和RISC技术

分支预测技术的设计思想和实现方法

3

Pentium的技术特点

Pentium的主要部件

Pentium的主要信号

Pentium的总线状态和总线周期42.116位微处理器80862.1.18086的编程结构

16位处理器——16位数据宽度,内部存放器,ALU都是16位的。地址总线——20位,以字节为单位对存储器进行编制,可寻址2201M字节。为了充分利用Intel原来8位的外围接口芯片,Intel在16位8086的根底上,还推出了外部数据总线位8位的8088处理器——内部与8086根本相同是16位,外部数据总线8位,地址总线20位。所谓编程结构——面向程序设计和应用角度的CPU结构。58086的编程结构6从功能上,8086分为两局部,即 总线接口部件(businterfaceunit,BIU) 执行部件(executionunit,EU)71.总线接口部件〔1〕总线接口单元BIU的任务:依据EU的请求,完成CPU与存储器、CPU与I/O设备之间的信息传送。①读指令——当指令队列出现空字节(8088有1个空字节,8086有2个空字节)时,从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。②读操作数——EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用。③写操作数——EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。8①4个16位段存放器:代码段存放器CS(CodeSegment)、数据段存放器DS(DataSegment)、堆栈段存放器SS(StackSegment)和附加数据段存放器ES(ExtraSegment);②一个16位的指令指针存放器IP(InstructionPointer);③一个20位地址加法器;④6字节指令队列缓冲器;⑤一个与EU通讯的内部存放器以及总线控制电路等。〔2〕总线接口单元〔BIU〕的组成9①段存放器8086CPU的地址引脚有20根,能提供20位的地址信息,可直接对1M个存储单元进行访问。但CPU内部可用来提供地址信息的存放器都是16位的,那么如何用16位存放器实现20位地址的寻址呢?〔3〕存放器简介108086/8088采用了分段结构的内存管理的方法。将指令代码和数据分别存储在 代码段 数据段 堆栈段 附加数据段 〔简城附加段〕中,每一段最大64KB〔216个字节〕,可用16位的地址存放器管理。11代码段段基地址相对于段基地址的偏移量数据段段基地址相对于段基地址的偏移量这些段的段基地址分别由段存放器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址那么由有关存放器或立即数给出。12代码段存放器CS:存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指针存放器IP提供;数据段存放器DS:用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段中;13堆栈段存放器SS:用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域;附加数据段存放器ES:用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。14程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个局部放在规定的段内。每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段那么根据程序的需要决定是否设置。15指令指针存放器指令指针存放器IP:用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行修改。有些指令能使IP和CS的值改变〔如跳转指令〕或使其值压入堆栈或从堆栈中弹出恢复原值〔如子程序调用指令和返回指令〕。16(4)20位地址加法器8086/8088CPU在对存储单元进行访问以读取指令或读/写操作数时,必须在地址总线上提供20位的地址信息,以便选中对应的存储单元。CPU的存放器都是16位〔段基址存放器和偏移地址都是〕。那么,CPU是如何产生20位地址的呢?CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的。17存储器中每个存储单元的地址可有以下两种表示方式:逻辑地址:其表达形式为“段地址:段内偏移地址〞的地址。段内偏移地址又称为“有效地址EA(EffectiveAddress)。在读指令时,段地址由代码段存放器CS提供,当前要读取指令在代码段中的偏移地址由指令指针存放器IP提供;在读取或存储操作数时,根据具体操作,段地址由DS、ES或SS提供,段内偏移地址由指令给出。18物理地址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址。物理地址的形成过程如下图。1920段存放器内容左移四位后〔相当于乘以10H〕,与16位段内偏移地址,在BIU中的地址加法器中进行相加,形成一个20位的物理地址。这就是由逻辑地址求出物理地址的方法。由逻辑地址求物理地址的公式为:物理地址=段地址10H+段内偏移地址例如:假设当前(CS)=1000H,取出当前指令后指令指针(IP)=4052H,求下一条指令的地址。1000H左移4位后为:10000H,它与4052H相加 10000+4052=14052h。下一条指令所在存储单元的物理地址为14052H。1000040521405221(5)指令队列缓冲器8086的指令队列有6个字节,8088的指令队列有4个字节。对8086而言,当指令队列出现2个空字节,对8088而言,指令队列出现1个空字节时,BIU就自动执行一次取指令操作,将下一条要执行的指令〔1个字〕从内存单元读入到指令队列。指令队列采用“先进先出〞原那么,按顺序存放,并按顺序取到EU中去执行。指令队列的引入使得EU和BIU可并行工作,即BIU在读指令时,并不影响EU单元执行指令,EU单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。222.执行部件〔1〕功能执行部件负责指令的执行,23〔2〕组成由以下4局部组成:①4个通用存放器,即AX、BX、CX、DX;16位字长,又可以作为2个独立的8位存放器使用。②4个专用存放器,即基数指针存放器BP〔BasePointer〕堆栈指针存放器SP(StackPointer)源变址存放器SI(SourceIndex)目的变址存放器DI(DestinationIndex);③标志存放器;④算术逻辑部件ALU(arithmeticlogicunit)。24〔3〕标志存放器 标志存放器共有16位,其中7位未用,所用的各位含义如下:1514131211109876543210

OFDFIFTFSFZF

AF

PF

CF25 根据功能,8086的标志可以分为两类:

状态标志

控制标志

26状态标志有6个,即SF、ZF、PF、CF、AF和OF①符号标志SF(SignFlag)②零标志ZF(ZeroFlag)③奇偶标志PF(ParityFlag)——运算结果低8位中1的个数为偶数,PF=1〔PE〕,低8位中1的个数为奇数,PF=0〔PO〕。④进位标志CF(CarryFlag)——最高位产生进位CF=1⑤辅助进位标志AF(AuxiliarycarryFlag)⑥溢出标志OF(OverflowFlag)——算术运算产生溢出——8位运算结果超出-128~+127——16位运算结果超出-32768~+3276727〔6〕、标志存放器16位存放器,其中有7位未用。D15D0

OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为028

0101010000111001 + 0100010101101010 1001100110100011最高位=1SF=1低八位1的个数为4个

PF=1运算结果不为0ZF=0低4位向前有进位AF=1最高位向前没有进位CF=0次高位向前有进位,最高位无进位

CF=0,DF=1,OF=11514131211109876543210

ODITSZAPC101011最高位无进位,CF=0向高4位有进位,AF=129例:设变量x=11101111B,y=11001000B,X,Y=0100110010100011B,请问分别执行x+y和X+Y操作后标志存放器中各状态位的状态如何?

11101111+)11001000101101111自动丢失1010011010101101CF=0CF=1DF=1DF=1x+yX+YAF=1CF=1次高位进位信号DF=1最高位进位信号CF=1OF=CFDF=0低8位有5个1,PF=0低8位有6个1,PF=130状态位执行x+y后执行X+Y后CF最高位D7向前有进位,CF=1最高位D15向前没有进位,CF=0PF1的个数为偶数(6),PF=11的个数为奇数(5位),PF=0AF低4位向前有进位,AF=1低4位向前没有进位,AF=0ZF计算结果不为0,ZF=0计算结果不为0,ZF=0SF最高位D7为1,SF=1最高位D15为1,SF=1OFCFDF=0,没有溢出,OF=0CFDF=1,结果溢出,OF=131控制标志有3个,即①方向标志DF(directionflag)②中断允许标志IF(interruptenableflag)③跟踪标志TF(trapflag)又称为单步标志80X86的标志存放器各位可以通过程序进行修改。由于它特别重要,为防止意外被修改,因此对标志存放器的修改有特殊的指令和方法。323.8086的总线周期的概念计算机中的所有工作,都是在严格的时钟脉冲控制下进行的。总线周期——完成一次总线操作所需要的时钟周期数。一般总线操作——一次存储器读或写操作。根本总线周期——4个时钟周期。 T1,T2,T3,T4如果存储器或外设在四个时钟周期不能完成所需要的操作,可以再T3后插入1个或多个等待周期TW。33典型的8086总线周期序列:由4个根本时钟周期和假设干个等待周期〔可以是0个等待周期〕组成。34①T1状态,发地址信息②T2状态,总线的高4位输出状态信息③T3状态,高4位输出状态信息,低16位数据④T3之后,可能插入TW〔存储器或外设提供〕⑤在T4状态,本总线周期结束。352.1.28086的引脚信号和工作模式最大工作模式的功能361.最小模式和最大模式的概念(1)最小模式: 在系统中只有一个微处理器,所有总线控制信号都有CPU直接产生。(2)最大模式: 两个或多个微处理器〔主处理器、协处理器〕,总线控制信号有专门的电路产生。与8086配合的协处理器——8087:数值运算处理器——8089:输入/输出协处理器372.8086/8088的引脚信号和功能注意点:①8086/8088的数据线和地址线复用②8086有16根数据线③第21脚(RESET)为输入复位信号④第22引脚为“准备好〞(READY)信号⑤RD:指示读,WR:指示写操作⑥高4位地址和状态线复用38各引脚信号:①

GND、VCC

地和电源

AD15~AD0 地址/数据复用③

A19/S6~A16/S3 地址/状态复用④

BHE#/S7 高8位数据总线允许/状态复用⑤

NMI 非屏蔽中断输入

39⑥INTR 可屏蔽中断请求信号输入⑦RD# 读信号输出⑧CLK 时钟输入⑨RESET 复位信号输入⑩READY “准备好〞信号输入⑾TEST# 测试信号输入⑿MN/MX# 最小和最大模式控制输入带#的信号表示低电平有效403.最小模式引脚信号:①

INTA# 中断响应信号输出

ALE 地址锁存允许信号输出

DEN#

数据允许信号

DT/R#

数据收发信号输出

41⑤

M/IO# 存储器/输入输出控制信号输出

WR#

写信号输出

HOLD 总线保持请求信号输入

HLDA 总线保持响应信号输出

428086

:438086的引脚MN/nMAX=1,选择最小模式。在最小模式下,需要一片时钟发生器IC提供时钟、复位信号、并同步外部READY信号提供给CPU。在最

温馨提示

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

评论

0/150

提交评论