微处理器结构_第1页
微处理器结构_第2页
微处理器结构_第3页
微处理器结构_第4页
微处理器结构_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第2章微处理器结构

微处理器是微机的核心部件,熟悉微处理器内部结构及其组成部件和相应功能才能掌握其原理。本章重点讲述16位微处理器8086,并简单介绍32位高档微处理器的体系结构。2.18086微处理器简介

微处理器的集成度越来越高,并且内部晶体管数目已达到几百万个。CPU从最初发展到现在,其晶体管数目增加了几十倍,CPU的内部结构仍然可分为控制单元、逻辑单元和存储单元三大部分。2.1.18086内部结构8086CPU内部功能结构图

1.执行单元(EU)

Intel8086CPU的执行单元EU中包含8个16位的内部寄存器、1个16位的运算器(ALU)与1个16位标志寄存器(Flag)以及内部控制逻辑三部分组成。EU不与外部总线相连,它负责执行指令。2.1.18086内部结构

(1)内部寄存器

①通用寄存器

AX:累加器,在乘除法运算、串运算和I/O指令中均作为专用寄存器使用;

BX:基址寄存器,在寻址时常用来存放基址;

CX:计数寄存器,在循环和串操作指令中作为计数器使用;

DX:数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口地址,在双字节乘除运算时,DX与AX共同存放一个32位双字节数据,其中DX存放高16位。2.1.18086内部结构

指针寄存器系统中有两个16位的指针寄存器。SP(StackPointRegister):堆栈指针寄存器BP(BasicPointRegister):基数指针寄存器,通常用于存放基地址,用来指示相对于起始地址的偏移量。

BP和SP一般用于堆栈段。

2.1.18086内部结构

变址寄存器系统中有两个16位的变址寄存器。SI(SourceIndexRegister):源变址寄存器。DI(DestinationIndexRegister):目的变址寄存器,可用作间接寻址、变址寻址和基址变址寻址的寄存器。2.1.18086内部结构(2)算数逻辑单元(ALU)及标志寄存器(Flag)算术逻辑单元(ALU)实际上就是计算机的运算器,进行各种运算。①算术运算:加、减、加1、减1、比较、求反、求补、乘、除运算;②逻辑运算:逻辑运算包括:逻辑与、逻辑或、逻辑非、逻辑异或以及移位、循环移位等运算和操作。

2.1.18086内部结构

标志寄存器FLAG是一个16位寄存器,使用其中的9位作为条件标志(状态标志)和控制标志。条件标志(6位)根据算数逻辑运算的结果由硬件自行设定,表示前一步操作执行以后,ALU所处的状态,后续操作可根据状态标志进行判断;控制标志(3位)由用户通过指令进行设定,用以对某一种特定的功能起控制作用,反映了人们对微机系统工作方式的可控制性。2.1.18086内部结构

①条件标志(6位)

CF(CarryFlag):进位标志位。

PF(ParityFlag):奇偶标志位。

AF(AuxiliaryCarryFlag):辅助进位标志位(半进位标志位)。

ZF(ZeroFlag):零标志位。

SF(SignFlag):符号标志位。

OF(OverflowFlag):溢出标志位。进位标志CF(CarryFlag)当加减运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0针对无符号整数,判断加减结果是否超出表达范围N个二进制位表达无符号整数的范围:0~2N-18位:0~+25516位:0~+655358位二进制数相加:

00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182没有产生进位:CF=08位二进制数相加:

10101010+01111100=[1]00100110十六进制表达:AA+7C=[1]26转换成十进制数:170+124=294=256+38产生进位:CF=10<182<255进位1表达256溢出标志OF(OverflowFlag)有符号数加减结果有溢出,则OF=1;否则OF=0针对有符号整数,判断加减结果是否超出表达范围N个二进制位表达有符号整数的范围:-2N-1~2N-1-18位:-128~+12716位:-32768~+32767杯中水已满,再加就溢出!8位二进制数相加:

00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182超出范围:OF=18位二进制数相加:

10101010+01111100=[1]00100110十六进制表达:AA+7C=[1]26转换成十进制数:-86+124=38没有超出范围:OF=0182>127补码AAH表达-86进位和溢出的区别进位标志反映无符号整数运算结果是否超出范围有进位,加上进位或借位后运算结果仍然正确溢出标志反映有符号整数运算结果是否超出范围有溢出,运算结果已经不正确处理器按照无符号整数求得结果设置进位标志CF、OF程序员决定操作数是无符号数,关心进位操作数是有符号数,注意溢出溢出标志的判断处理器硬件判断规则最高位和次高位同时有进位或同时无进位,无溢出;最高位和次高位进位状态不同,有溢出人工判断的简单规则只有当两个相同符号数相加(含两个不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;其他情况下,不会产生溢出

00111010+01111100

10110110正数正数负数最高位次高位零标志ZF(ZeroFlag)运算结果为0,则ZF=1,否则ZF=0结果是0,ZF标志不是0

!举例8位二进制数相加:

00111010+01111100=10110110

结果不是0,ZF=08位二进制数相加:

10000100+01111100=[1]00000000

结果是0,ZF=1结果进位符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=08位二进制数相加:

00111010+01111100=10110110

最高位=1:SF=18位二进制数相加:

10000100+01111100=[1]00000000

最高位=0:SF=0结果进位最高位=符号位=SF奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=08位二进制数相加:

00111010+01111100=10110110

“1”的个数为5个:PF=08位二进制数相加:

10000100+01111100=[1]00000000

“1”的个数为0个:PF=1结果进位仅最低8位“1”的个数

两正数相加(补码相加),结果为负数,显然运算产生了溢出,即超出了机器所能表示的范围故OF=1;SF=1;ZF=0;PF=1;CF=0;AF=1。例:将十六进制数5439H和356AH相加,并说明其标志状态。0101010000111001+01000101011010101001100110100011

②条件标志(3位)

TF(TrapFlag):陷阱标志位。

IF(Interrupt-enableFlag):中断允许标志位。

DF(DirectionFlag):方向标志位。该标志由方向控制指令STI或CLI设置或清除。

(3)内部控制逻辑内部控制逻辑用于实现EU内部控制,主要功能为从指令队列缓冲器中去除指令,并对指令进行译码,产生各种控制信号,控制各部件的协同工作,来完成指令的执行过程。2.1.18086内部结构

2.总线接口单元(BIU)

BIU负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。它由段寄存器(DS、CS、ES、SS)、16位指令指针寄存器IP(指向下一条要取出的指令代码)、20位地址加法器(用来产生20位地址)和6字节(8088为4字节)指令队列缓冲器等组成。2.1.18086内部结构

(1)段地址寄存器

访问存储器的物理地址由段地址和段内偏移地址两部分组成。段地址寄存器用来存放段地址,也称段寄存器。总线接口单元

BIU有4个段寄存器。分别为:CS、DS、ES和SS。段寄存器用于存放段基地址值(16位无符号数)。CPU可以通过4个段寄存器访问存储器中4个不同的段(每段最大64K字节)。2.1.18086内部结构①CS(代码段寄存器)CS是存放当前执行程序所在段的段地址。CS的内容左移四位加上指令指针IP的内容就是下一条要执行的指令的地址。②DS(数据段寄存器)DS是存放当前使用数据的段地址。通常数据段用来存放各种数据。DS的内容左移四位加上按指令中存储器寻址方式计算出来的偏移地址,就是对数据段指定单元进行读写的地址。2.1.18086内部结构③ES(附加段寄存器)附加段经常在字符串操作时作为目的区使用,ES存放附加段的段地址,DI存放目的区的偏移地址。④SS(堆栈段寄存器)SS是存放当前堆栈段的地址。堆栈是存储器中开辟的按后进先出的原则组织的一个特别存储区。2.1.18086内部结构

(2)地址加法器地址加法器用于由逻辑地址计算20位物理地址,逻辑地址指程序员编写程序使用的地址,一般指段地址和段内偏移地址。

(3)指令指针寄存器(IP)指令指针寄存器又称为程序计数器,它是一个16位寄存器。IP中存放当前将要执行的指令的有效地址。2.1.18086内部结构

(4)指令队列缓冲器指令队列缓冲器是一个与CPU速度相匹配的高速缓冲寄存器。8086缓冲器为6个字节,8088为4个字节,

。(5)总线控制逻辑总线控制逻辑的功能是产生CPU外部三总线(AB、DB、CB)的控制信号,控制CPU与其它部件交换数据、地址、状态及控制信息。2.1.18086内部结构

3.总线接口单元(BIU)和执行单元(EU)的管理在EU执行指令的过程中,BIU始终根据指令指示器IP提供的地址,从存放指令的存储器中预先取出一串指令存放到指令队列中。取来的指令在指令队列中是按字节顺序存放的,这样EU不必等待BIU去取指令。2.1.18086内部结构指令执行的两个主要阶段:取指和执行取指:从主存取出指令代码进入指令队列执行:译码指令、并发出有关控制信号实现指令功能取指译码执行2.1.18086内部结构8088指令执行过程示意

存储器是计算机中存储信息和数据的物理部件。

所有的程序和数据必须被调入内存后,才能被计算机执行和处理。

2.1.28086/8088存储器及I/O组织1.存储单元地址和内容

8086CPU的存储器是以字节(8位)为单位组织的。它们具有20条地址总线,故可寻址的地址空间容量为220=1MB。每个字节对应唯一一个地址,地址范围0~220-1,用十六进制表示为00000~FFFFFH。2.1.28086/8088存储器及I/O组织

2.存储器的结构及访问

存储器内部是按字节进行组织的,两个相邻的字节被称为一个“字”。在一个字中每个字节用一个唯一的地址码进行表示。存放的信息以字节为单位,在存储器中按顺序排列存放。2.1.28086/8088存储器及I/O组织

若存放的数据为一个字,则将该字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,并以低地址作为该字的地址。如果一个字是从偶地址开始存放,称为对准字。如果一个字是从奇地址开始存放,称为非对准字。2.1.28086/8088存储器及I/O组织

3.存储器的分段

8086CPU地址总线为20条,直接可寻址的存储器空间可达到1MB,但是,8086CPU内所有的寄存器(CS、DS、SS、ES、SP、BP、SI、DI和IP)都是16位的,最多只能寻址64KB空间。因此,为了对整存储器空间寻址,需要20位长的地址码。2.1.28086/8088存储器及I/O组织

将16位段基址左移4位,然后与16位段内偏移地址相加而获得20位物理地址。

物理地址=段地址×16+段内偏移地址

当CPU访问存储器时,必须完成上述的地址计算。

2.1.28086/8088存储器及I/O组织逻辑地址是在处理器内部、程序员编程时采用的地址逻辑地址=段基地址∶偏移地址段基地址=在主存中的起始地址偏移地址=距离段基地址的位移量某个存储单元可以有多个逻辑地址,但只有一个唯一的物理地址逻辑地址线性地址物理地址编程使用处理器转换地址总线输出2.1.28086/8088存储器及I/O组织逻辑地址与物理地址108208308106206306107207307109209309110105104103102101210205204203202201310305304303302301081828061626071727091929100504030201201514131211302524232221逻辑地址=相对地址:205(2层05号房间)物理地址=绝对地址:15(第15号房间)逻辑地址和物理地址

4.8086CPU的I/O地址空间

8086CPU和外部设备之间的数据交互是由I/O接口电路完成的。每个I/O接口往往包含一个或多个端口,这些端口通常对应I/O接口电路内部的一个或多个寄存器。8086CPU利用地址总线的低16位作为对8位I/O端口的寻址线。

2.1.28086/8088存储器及I/O组织

当I/O设备接在地址总线低8位(AD7~AD0)上时,这个I/O设备所包括的所有端口地址都将是偶数地址(即A0=0);若I/O设备是接在地址总线的高8位(AD15~AD8),那么此设备包含的所有端口地址都是奇数地址(即A0=1)。

2.1.28086/8088存储器及I/O组织2.28086引脚功能及工作模式

8086CPU是一个40引脚的器件,它采用分时复用的地址/数据总线,因而部分引脚具有两种功能。

8086设计了最小工作模式和最大工作模式,在两种工作模式下,部分引脚的功能是不同的。2.2.18086引脚信号功能

12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE*/S7MN/MX*RD*HOLD(RQ*/GT0*)HLDA(RQ1*/GT1*)WR*(LOCK*)M/IO*(S2*

)DT/R*(S1*

)DEN(S0

)ALEINTATEST*READYRESET8086

在最小模式和最大模式下的通用引脚:

1.电源

VCC:输入,接入±5V电源。

GND:输入,两条地线均应接地。

2.AD15~AD0:(AddressDataBus)AD15~AD0是地址/数据分时复用总线,双向,三态。

2.2.18086引脚信号功能

3.A19/S6~A16/S3

地址/状态分时复用信号,输出。在总线周期的T1状态A19/S6~A16/S3上出现的是地址的高4位。在T2~T4状态,A19/S6~A16/S3上输出状态信息

2.2.18086引脚信号功能

4.BHE/S7(BusHighEnable/Status)地址/状态分时复用信号,输出。在总线周期的T1状态A19/S6~A16/S3上出现的是地址的高4位。在T2~T4状态,A19/S6~A16/S3上输出状态信息

2.2.18086引脚信号功能

——

5.NMI(Non-MaskableInterrupt)

NMI为非屏蔽中断请求,输入,高电平有效。NMI不受中断允许标志的影响。当CPU检测到NMI有一个上升沿的信号以后,CPU执行完当前指令便响应中断类型码为2的非屏蔽中断请求。

2.2.18086引脚信号功能

6.INTR(InterruptRequest)

INTR为可屏蔽中断请求,输入,高电平有效。如果INTR信号有效,当CPU的中断允许标志IF=1时,CPU结束当前指令后,响应INTR中断请求。2.2.18086引脚信号功能

7.RD(Read)

读信号,输出,三态。CPU执行对存储器或I/O端口的读操作时,T2~T3期间有效,到底是读存储器还是读I/O端口取决于M/IO,若为高则为读存储器,否则为读I/O端口。2.2.18086引脚信号功能

————

8.CLK(Clock)

时钟信号,输入。为CPU和总线控制逻辑提供时钟信号。要求时钟信号的占空比为1/3,即一个周期中,1/3为高电平,2/3为低电平。CPU的所有操作均是在时钟的同步下进行的。2.2.18086引脚信号功能

9.RESET(Reset)

复位信号,输入,高电平有效。复位信号有效时,CPU结束当前操作并对标志寄存器、IP、DS、SS、ES及指令队列清零,并将CS设置为FFFFH。当复位信号撤除时,CPU从FFFF0H地址开始执行程序。2.2.18086引脚信号功能

10.READY(Ready)

READY为准备好判断信号,输入,高电平有效。CPU在每个总线周期的T3状态前沿对READY进行采样。当READY信号有效时表示存储器或I/O准备好发送或接收数据。

2.2.18086引脚信号功能

11.TEST(Test)测试信号,输入,低电平有效。该信号与WAIT指令配合使用,在CPU执行WAIT指令时,CPU一直处于空转状态,进行等待。只有当8086检测到信号有效时,才结束等待状态,继续执行向下执行指令。

2.2.18086引脚信号功能

——

12.MN/MX(Minimum/MaximumModeControl)MN/为最大/最小模式控制信号,输入。决定8086工作在哪种工作模式。如果MN/=1(+5V),CPU工作在最小模式状态,MN/=0(接地),CPU工作在最大模式状态。2.2.18086引脚信号功能

——最小工作模式:系统中只有一个8086CPU,在这种情况下,所有的总线控制信号,都是直接由8086CPU产生,系统中的总线控制逻辑电路被减到最少,该模式适用于规模较小的微机应用系统。2.2.28086两种工作模式

最大工作模式:最大工作模式用在中、大规模的微机应用系统中。在最大工作模式下,系统中至少包含两个微处理器,其中一个为主处理器,即8086CPU,其它的微处理器称之为协处理器。一类是数值协处理器8087,另一类是输入/输出协处理器8089。2.2.28086两种工作模式

1.总线周期在微型计算机系统中,CPU按照一定的时序,通过BIU对外部存储器或I/O接口完成一次访问,称为CPU执行了一次总线操作。执行一次总线操作的周期称为一个总线周期。执行一条指令所需要的时间称为指令周期,而CLK时钟脉冲的重复周期称为时钟周期

。2.2.38086微处理器的总线操作

2.复位操作及时序复位操作是通过RESET引脚上的触发信号实现的,其在最大工作模式和最小工作模式下都是一样的。当RESET引脚上有高电平时,CPU就结束当前操作,进入初始化(复位)过程。不管CPU原来做任何种操作,对RESET信号的响应都是立即进行的。2.2.38086微处理器的总线操作

3.典型总线操作时序

CPU为了与存储器或I/O端口进行一个字节的数据交换,需要执行一次总线操作,按数据传输的方向来分,可将总线操作分为读操作和写操作两种类型;按照读/写的不同对象,总线操作又可分为存储器读/写与I/O读/写操作。

2.2.38086微处理器的总线操作

(1)最小模式下的总线读周期

8086CPU进行存储器读操作时,便进入存储器读周期时序,一个最基本的读周期包含有4个状态,即T1、T2、T3、T4,必要时可插入1个或几个TW。2.2.38086微处理器的总线操作8086的总线读周期时序

(2)最小模式下的总线写周期

当CPU要向内存或I/O端口输出数据时,进入总线写周期。最基本的总线写周期也包括T1、T2、T3、T4四个状态,在内存或外设速度较慢的情况下,必要时在之后插入若干个TW状态。2.2.38086微处理器的总线操作8086的总线写周期时序

4.最大模式下的总线操作与最小模式的差异在最大工作模式下,8086的总线读写操作在逻辑上和最小模式下的读写操作是一样的,但在最大方式时,增设总线控制器8288,总线控制信号不再由CPU直接输出,而是由总线控制器根据CPU给出的状态信号S2~S0进行综合后产生,因此在分析操作时序时要考虑CPU和总线控制器8288两者产生的控制信号。2.2.38086微处理器的总线操作2.380X86微处理器

Intel公司在推出了16位微处理器8086之后,相继推出了80286、80386、80486、Pentium、PentiumPro、PentiumⅡ、PentiumⅢ、PentiumⅣ等80X86系列高档微处理器。从基本概念、结构乃至指令系统来看,它们是8086的延续和扩展。

80386DX封装在一个132引脚芯片80486DX是一个168引脚的芯片Pentium具有237个引脚PentiumPro有387个引脚PentiumIV达到423个引脚处理器的主要引脚——数据总线、地址总线和读写控制总线——几乎相同摩尔定律1.集成电路芯片上所集成的电路的数目,每隔18个月就翻一番。2.微处理器的性能每隔18个月提高一倍,而价格下降一半。3.用一个美元所能买到的电脑性能,每隔18个月翻两番。

戈登·摩尔GordonMoore

1982年1月推出的80286在IBMPC/AT中得以推广应用。该芯片上共集成了13.5万只晶体管,采用68个引脚的4列直插式封装,地址线和数据线不再分时复用,分开设置16条独立的数据线和24条独立的地址线。

2.3.180286微处理器

80286内部包含4个独立的可并行操作的功能部件:总线接口部件BIU、地址部件AU、指令部件IU和执行部件EU。并行工作运行速度,80286的运行速度为8~10MHz,后期80286版本达到20MHz。

2.3.180286微处理器

80286内部的通用寄存器(包含4个数据寄存器和4个基址变址寄存器)、4个段寄存器和1个指令指针寄存器,其用途和含义与8086的寄存器一样。不同之处在于标志寄存器(FLAGS)新增了两个标志(占3位)以及增加了1个机器状态字(MSW)。

2.3.180286微处理器

嵌套标志(NT/D14):NT=1,表示当前执行的任务嵌套于另一个任务中,执行该任务后,要返回原来的任务中;NT=0,表示没有任务嵌套。I/O特权标志位(IOPL/D13、D12),用以表示在保护模式下指定的I/O操作处于特权层的哪一层。

机器状态字(MSW)是一个16位寄存器,只定义了它的低4位:保护允许(PE)、协处理器监控(MP)、模拟协处理器(EM),任务切换(TS)。

80286有实地址和虚地址保护方式两种工作方式。

80386是Intel公司首次推出的32位微处理器,具有6个独立部件:总线接口部件、指令预取部件、指令译码部件、执行部件、分段部件和分页部件。6个部件按流水线结构设计,指令的预取、译码、执行等步骤由各自的处理部件并行操作。

2.3.280386微处理器

80386共有8类寄存器。控制寄存器、系统地址寄存器、调试寄存器和测试寄存器主要是用于简化设计和对系统进行调试;通用寄存器、段寄存器、指令指示器、标志寄存器用于存放数据或地址。2.3.280386微处理器

均可完成8位、16位、32位的操作数或16位、32位操作数地址的存放。

图2-2180386的部分寄存器

80386的32位指令指示器(EIP)是8086中IP的扩展,用来存放下一条要执行的指令的地址偏移量。EFLAGS的低16位仍是80286的IP和FLAGS,并可单独使用;增加了两个标志位,虚拟8086方式标志(VM)和恢复标志或重新启动标志(RF)。

80386在原有8086、80286的基础上增加两个段寄存器,为此80386内部有6个16位的段寄存器CS、DS、ES、SS、GS和F

温馨提示

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

评论

0/150

提交评论