微机原理 第2-1章_第1页
微机原理 第2-1章_第2页
微机原理 第2-1章_第3页
微机原理 第2-1章_第4页
微机原理 第2-1章_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

1第2章微处理器与总线2主要内容:微处理器的一般构成及工作原理;8088微处理器的特点、引线及结构;总线的一般概念;*80386微处理器的特点及结构;*Pentium4微处理器中的新技术。3§2.1

微处理器概述4微处理器的功能能够进行算术运算和逻辑运算能对指令进行译码、寄存并执行指令所规定的操作具有与存储器和I/O接口进行数据通信的能力少量数据的暂存能够提供系统所需的定时和控制信号能够响应输入输出设备发出的中断请求5微处理器的一般构成运算器运算器由算术逻辑单元ALU、通用或专用寄存器组及内部总线三部分组成。控制器内部寄存器组6运算器加法器逻辑运算功能部件运算结果逻辑运算结果进位信号控制信号AB输入一位算术逻辑运算单元结构示意图7运算结构示意图ABALU寄存器组BUSALU寄存器组BUS缓冲区单总线结构双总线结构ALU寄存器组BUS旁路器BUS三总线结构8控制器1、指令控制:根据指令所在的地址按顺序或在遇到转移指令时按照转移地址取出指令,分析指令(指令译码),传送必要的操作数,并在指令执行结束后存放运算结果。2、时序控制:指令的执行是在时钟信号的严格控制下进行的,时序信号由控制器产生,使系统按一定的时序关系进行工作。3、操作控制:根据指令流程,确定在指令周期的各个节拍中要产生的微操作控制信号,以有效地完成各条指令的操作过程。同时,有对异常情况及某些外部请求的处理能力。9控制器组成程序计数器(programcounter)用于存放下一条要执行指令在存储器中的地址指令寄存器(instructionregister)用于用于存放于存储器中取出的待执行的指令指令译码器(instructiondecoder)翻译指令寄存器中的指令时序控制部件时序控制部件时序控制部件产生计算机工作中所需的各种时序信号微操作控制部件用于产生与各条指令相对应的微操作,根据当前正在执行的指令,在指令的各机器周期的各个节拍内产生相应的微操作控制信号,从而控制整个系统各部件的工作。10控制器结构示意图程序计数器地址加法器指令寄存器指令译码微操作控制时序逻辑…...各部件微操作控制信号自存储器至存储器11§2.2

8088/8086微处理器12主要内容:8088/8086CPU的特点;8088CPU外部引线及功能;8088CPU的内部结构和特点;各内部寄存器的功能;8088的工作时序。138088/8086CPU的特点采用并行流水线工作方式

——通过设置指令预取队列实现对内存空间实行分段管理

——

将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址支持多处理器系统CPU内部结构存储器寻址部分工作模式14串行执行指令8088以前的CPU采用串行工作方式:取指令1执行指令1分析指令1CPUBUS忙碌忙碌取指令2执行指令2分析指令2空闲空闲15并行执行指令8088CPU采用并行工作方式BUS取指令1执行指令1分析指令1CPU取指令2执行指令2分析指令2取指令3执行指令3分析指令3忙碌忙碌忙碌忙碌忙碌

168086CPU提供20根地址线,寻址空间为220=1MB,用5位十六进制表示的范围为00000H~FFFFFH。CPU内无论是内部寄存器还是内部总线都是16位的,直接寻址产生64KB个地址,达不到20位地址线所提供的地址范围。针对这种情况,8086采用实模式工作方式下对存储器划分逻辑段的办法。分段管理:将内存地址空间分为多个逻辑段偏移地址(或相对地址)+段地址地址寄存器和段寄存器地址加法器产生20位地址内存的分段管理技术17支持多处理器系统8088可工作于两种模式下

最小模式最大模式最小模式为单处理器模式,控制信号较少,一般可不必接总线控制器。最大模式为多处理器模式,控制信号较多,须通过总线控制器与总线相连。18最小模式下的总线连接示意图8088CPU••控制总线数据总线地址总线地址锁存数据收发ALE时钟发生器19最大模式下的总线连接示意图8088CPU数据总线地址总线地址锁存数据收发ALE时钟发生器总线控制器

控制总线20两种工作模式的选择方式8088是工作在最小还是最大模式由MN/MX引线的状态决定。MN/MX=0——工作于最大模式MN/MX=1——工作于最小模式218088/8086的引线及功能228088CPU的引线及功能引脚具有双功能:(1)分时复用(2)最大模式与最小模式的一种双功能实现238088CPU的引线及功能引脚定义的方法可大致分为:每个引脚只传送一种信息(RD等);引脚电平的高低不同的信号(IO/M等);CPU工作于不同方式有不同的名称和定义(WR/LOCK等);分时复用引脚(AD7——AD0等);引脚的输入和输出分别传送不同的信息(RQ/GT)24最小模式下的主要引线A16-A19/S3-

S6:地址、状态复用的引脚,三态输出。在8088执行指令过程中,某一时刻从这4个引脚上送出地址的最高四位A16-A19,在另外时刻,四个引脚送出状态信号S3-S6。这些状态信息中,S6

恒等于0,S5

指示中断允许标志位IF的状态,S4

、S3

的组合指示CPU当前正在使用的段寄存器,其编码见表

S4S3当前正在使用段寄存器

00

ES(附加段寄存器)

01SS(堆栈段寄存器)

10CS或未使用任何段寄存器代码段寄存器)

11DS(数据段寄存器)25最小模式下的主要引线A15~A8:地址输出,三态。CPU寻址内存或接口时,从这些引脚送出地址A15~A8AD7 ~AD0:地址、数据分时复用的双向信号线,三态。当ALE=1时,这些引脚上传输的是地址信号。当DEN=0时,这些引脚上传输的是数据信号

:输入输出/存储器控制信号,三态,用来区分当前操作是访问存储器还是访问I/O端口。若此引脚输出为低电平,访问存储器;若输出为高电平,则是访问I/O端口:写信号输出,三态。此引脚输出为低电平时,表示CPU正在对存储器或I/O端口进行写操作:数据传送方向控制信号,三态,用于确定数据传送的方向。若输出为高电平,则是CPU向存储器或I/O端口发送数据;若此引脚输出为低电平,CPU从存储器或I/O接口接收数据:数据允许信号,三态。此引脚输出为低电平时,表示数据总线上具有有效数据。:地址锁存信号,三态,此引脚输出为高电平,表明CPU地址线上有有效地址。:读信号输出,三态。此引脚输出为低电平时,表示CPU正在对存储器或I/O端口进行读操作:外部同步控制输入信号,高电平有效。它是由被访问的内存或I/O设备发出的响应信号,当其有效时,表示存储器或I/O设备已准备好,CPU可以进行数据传送。若存储器或I/O设备没有准备好,则使READY信号为低电平。CPU在T3周期采样READY信号,若其为低,CPU自动插入等待周期TW(1个或多个),直到READY变为高电平后,CPU才脱离等待状态,完成数据传送过程。26中断请求INTR:可屏蔽中断请求输入信号,高电平有效。CPU在每条指令的最后一个周期采样该信号,以决定是否进入中断响应周期。这个引脚上的中断请求信号可用软件屏蔽:非屏蔽中断请求信号,上升沿有效。这个引脚上的中断请求信号不能用软件屏蔽,CPU在当前指令执行结束后就进入中断过程。INTA:中断响应输出端27测试信号:测试信号输入引脚,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对此引脚进行一次测试。若为高电平,CPU则继续处于空转状态进行等待,直到引脚变为低电平,CPU才结束等待状态,继续执行下一条指令28系统复位RESET:系统复位输入信号,高电平有效。为使CPU完成内部复位过程,该信号至少要在4个时钟周期内保持有效。复位后CPU内部寄存器的状态如表,当RESET返回低电平时,CPU将重新启动内部寄存器内容内部寄存器内容CSFFFFHIP0000HDS0000HFLAGS0000HSS0000H其余寄存器0000HES0000H指令队列空29总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。HLDA:总线保持响应信号输出,高电平有效。当CPU收到有效的HOLD信号后,就会对其作出响应:一方面使CPU的所有三态输出的地址信号、数据信号和相应的控制信号变为高阻状态(浮动状态);同时还输出一个有效的HLDA,表示处理器现在已放弃对总线的控制。当CPU检测到HOLD信号变低后,就立即使HLDA变低,同时恢复对总线的控制30系统状态:系统状态信号输出。它与和信号决定了最小模式下当前总线周期的状态。三者的组合所表示的处理器操作见表操作100发中断响应信号101读I/O端口110写I/O端口111暂停000取指令001读内存010写内存011无作用31其它CLK:时钟信号输入引脚。8088的标准时钟频率为4.77MHz,时钟的占空比为33%

VCC:5V电源输入引脚GND:地线32最大模式下的引线:总线周期状态信号。连接到总线控制

器8288的输入端,8288译码后产生

系统总线所需要的各种控制信号。对应的操作对应的操作000发中断响应信号100取指令001读I/O端口101读内存010写I/O端口110写内存011暂停111无作用33最大模式下的引线:总线请求/总线响应信号引脚。

:总线封锁信号输出HIGH:在最大模式下始终为高电平输出:指令队列状态输出QS1QS2含义

00无操作

01将指令首字节送入指令队列

10队列为空

11将指令其余字节送指令队列348088和8086CPU引线功能比较数据总线宽度不同8088的外部总线宽度是8位,8086为16位。访问存储器和输入输出控制信号含义不同8088——IO/M=0表示访问内存;8086——IO/M=1表示访问内存。其他部分引线功能的区别358088CPU的功能结构8086:16位微处理器,16条数据线、20条地址线,可寻址地址范围1MB,6字节的指令队列。8088:内部是16位微处理器,外部数据总线为8位,称为准16位微处理器。20条地址线,可寻址的地址空间1M字节,4字节的指令队列。8088/8086内部由两部分组成:执行单元(EU)总线接口单元(BIU)指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而提高了CPU的效率;降低了对存储器存取速度的要求36AHALBHBLCHCLDHDLSP

BP

DI

SI通用寄存器运算寄存器ALU标志执行部分控制电路123456CSDSSSESIP内部寄存器I/O控制电路地址加法器20位16位8位指令队列缓冲器外部总线8086CPU结构图总线接口部件(BIU)执行部件EU37执行单元组成:运算器4个通用寄存器AX,BX,CX,DX和4个专用寄存器BP,SP,DI,SI1个标志寄存器EU部分控制电路:接受从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作功能:指令译码在ALU执行指令在通用寄存器暂存中间运算结果在标志寄存器FLAGS中保存运算结果特征38执行单元工作过程(1)EU从BIU的指令队列输出端取得指令,进行译码;(2)若执行指令需要访问存储器或端口去取操作数,则BIU将操作数的偏移地址与段地址一起,在地址加法器中形成20位物理地址,申请访问存储器或端口,取得操作数送给EU,EU根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能;(3)算术逻辑运算单元ALU完成各种算术运算及逻辑运算,运算的操作数可从存储器取得,也可从寄存器组取来;(4)16位暂存器暂存参加运算的操作数。运算结果由内部总线送到EU的寄存器组或送到BIU的内部寄存器,由BIU写入存储器或I/O端口;(5)运算结果的特征改变了标志寄存器的状态,供测试、判断及转移指令使用;(6)EU控制器负责从指令队列中取指令、指令译码及发各种控制命令以完成指令要求的功能。(7)一般情况下指令顺序执行,EU从指令队列中取指令而不是从存储器中取指令,所以取指令与执行指令可并行操作。但遇到转移指令、调用指令和返回指令,要将指令队列中的内容作废,由BIU重新取转移的新地址中的指令代码,EU才能继续执行指令,此时并行操作可能受到影响。但这种情况相对较少发生,EU与BIU之间相互配合又相互独立的非同步工作方式提高了CPU的工作效率。39总线接口单元组成:4个段地址寄存器(CS、DS、ES、SS)16位指令指针寄存器IP20位的地址加法器(16d

段地址+偏移地址=物理地址)6字节(8086)或4字节(8088)的指令队列(8086/8088在执行指令的同时可从内存中取下一条或几条指令,放在指令队列中,也即BIU具有预取指令的功能)总线控制电路:处理器与外界总线联系的转接电路。包括三组总线:20位地址总线,16位(8086)或8位(8088)双向数据总线,一组控制总线。功能:从内存中取指令到指令预取队列指令预取队列是并行流水线工作的基础负责与内存或输入/输出接口之间的数据传送在执行顺序指令时,指令队列存放紧接在执行指令后面的那一条指令。在执行转移程序时,BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。40总线接口单元工作过程(1)代码段段寄存器CS中16位段基地址,与指令指针寄存器IP中16位偏移地址,在地址加法器内形成20位物理地址;(2)20位地址直接送往地址总线,通过总线控制逻辑发出存储器读信号RD,启动存储器,按给定的地址从存储器中取出指令;(3)取出的指令送到指令队列中等待执行。BIU的指令队列可存储4字节指令代码,它是先进先出的队列寄存器,允许预取4字节指令代码。一般情况下,指令队列中填满指令;(4)EU可从指令队列中取指令执行。指令代码装入指令队列输入端后,自动调整指令队列输入端指针。EU从指令队列输出端取指令,且在EU取走一字节的指令代码后,自动调整指令队列输出端指针。BIU自动将指令取到指令队列中;(5)当指令队列已满,并且执行部件EU未向BIU申请读写存储器操作数,则BIU不执行任何总线周期,处于空闲状态;(6)EU从指令队列中取走指令,经指令译码后,向BIU申请从存储器或端口读写操作数。只要收到EU送来的逻辑地址,BIU将通过地址加法器将现行数据段及送来的逻辑地址组成20位物理地址,在当前取指令总线周期完成后,在读/写总线周期访问存储器或I/O端口完成读/写操作。最后EU执行指令,由BIU将运算结果读出;(7)指令指针寄存器IP由BIU自动修改,指向下一条指令在现行代码段内的偏移地址。当EU执行转移指令时,则BIU清除指令队列,从转移指令的新地址取得指令,立即送给EU执行,然后从后续指令序列中取指令填满队列;(8)总线控制部件发出总线控制信号,实现存储器或端口读写控制。它将8086CPU的内部总线与外部总线相连,是8086CPU与外部打交道不可缺少的路径.8088的指令执行过程42内部寄存器的类型含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器2个控制寄存器深入理解:每个寄存器中数据的含义43累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器段寄存器附加段寄存器堆栈段寄存器数据寄存器地址指针和变址寄存器控制寄存器通用寄存器数据段寄存器44通用寄存器数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)45数据寄存器8088/8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXBXCXDXAH,ALCH,CLBH,BLDH,DL46数据寄存器特有的习惯用法AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中BX:基址寄存器。在间接寻址中用于存放基地址CX:计数寄存器。用于在循环或串操作指令中存放计数值;DX:数据寄存器。在间接寻址的I/O指令中存放

I/O端口地址;在32位乘除法运算时,存放高16位数。INAL,20HOUT30H,AXMOVAX,[BX+03H]例: MOVCX,200HAGAIN: …… ……

LOOPAGAIN

;(CX)-1(CX),结果0转AGAININAL,DXMULBX47地址指针寄存器SP:堆栈指针寄存器,其内容为栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址;BP:基址指针寄存器,可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。48BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据;作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段。49变址寄存器SI:源变址寄存器DI:目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。一般SI与DS联用,DI与ES联用50段寄存器用于存放相应逻辑段的段基地址

CS:代码段寄存器。代码段存放指令代码

DS:数据段寄存器

ES:附加段寄存器

SS:堆栈段寄存器:指示堆栈区域的位置存放操作数51控制寄存器IP:指令指针寄存器,其内容为下一条要执行指令的偏移地址FLAGS:标志寄存器,存放运算结果的特征6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF)中断标志跟踪标志控制标志进位标志奇偶标志半进位标志零标志符号标志溢出标志方向标志状态标志52状态标志位CF(CarryFlag)进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1PF(ParityFlag)奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=lAF(AuxiliaryCarryFlag)辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位),AF=1ZF(ZeroFlag)零标志位。当运算结果为零时ZF=1SF(SignFlag)符号标志位。当运算结果的最高位为1时,SF=lOF(OverflowFlag)溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=l53状态标志位例给出以下运算结果及运算后各状态标志位的状态:10110110+1111010010110110

+11110100101010101CF=OF=AF=PF=SF=ZF=10101054控制标志位TF(TrapFlag)陷井标志位,也叫跟踪标志位。TF=1时,每执行一条指令后,自动产生一次内部中断使CPU处于单步执行指令的工作方式。IF(InterruptEnableFlag)中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。DF(DirectionFlag)方向标志位。在数据串操作时确定操作的方向。DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。DF=0,每次串处理操作后使变址寄存器SI和DI增量,使串处理从低地址向高地址方向处理。55存储器与总线的连接DBD15~D8

D7~D0

奇存储体A0ABBHEA19~A1偶存储体CSA19~A1D7~D0

CSA19~A1D7~D0

8086CPU访问(读或写)存储器由信号BHE和A0组合形成568086读写偶地址字数据操作数存放在偶地址开始两个存储单元或两个I/O端口中:即操作数字的低8位在偶地址单元或在偶地址端口;高8位在奇地址单元或在奇地址端口。在一个总线周期内完成(通常4个时钟周期)16位数据传送CPU低8位数据高8位数据高8位数据线低地址高地址奇地址偶地址内存低8位数据线578086读写奇地址字数据操作数存放在奇地址开始两个存储单元或两个I/O端口中。需要二个总线周期完成16位数据传送:在第一个总线周期中,对应于奇地址单元或奇地址端口字节(操作字低8位)通过数据总线高8位进行传输,而数据总线低8位处于空闲状态;在第二个总线周期中,对应于偶地址单元或偶地址端口字节(操作字高8位)通过数据总线低8位进行传输,而数据总线高8位处于空闲状态。8086读写字节时,数据总线有8位总是处于空闲状态。8088每个总线周期只能读写1个字节,字的读写要2个周期。58存储器组织8086/8088CPU有20条地址线,可以配置1MB的存储器,地址编号为00000H-FFFFFH存储空间按8位字节进行组织,每个存储单元存储一个字节数据,若存放“字”数据(16位),则存放在相邻两个存储单元之中,高字节存放在高地址单元,低字节存放在地址单元存储器分段每个段由连续的存储单元构成每段第一个字节的位置称为“段起始地址”,其能够被16整除(即XXXX0H),并可由软件指定几个段可以互相重叠,也可指向同一个空间每个内存单元的地址码都由两部分组成:段(基)地址16位:决定存储单元在内存中的位置段内地址16位:决定该存储单元相对段内第一个单元的距离59存储器的编址例:段基地址=6000H段首地址偏移地址=0009H物理地址数据段60009H00H12H60000H9逻辑地址:由段基址和段内偏移地址组成的地址,在程序设计时使用。物理地址:内存单元在整个内存空间中的20位地址,是由CPU访问存储器时由地址总线发出的地址。60段寄存器作用用于存放相应逻辑段的段基地址8086/8088内存中逻辑段的类型代码段数据段附加段堆栈段8086/8088内存中逻辑段的数量最多为64K个存放指令代码存放操作的数据存放操作的数据存放暂时不用但需保存的数据。61段寄存器CS代码段寄存器,存放代码段的段基地址。DS数据段寄存器,存放数据段的段基地址。ES附加段寄存器,存放数据段的段基地址。SS堆栈段寄存器,存放堆栈段的段基地址段寄存器的值表明相应逻辑段在内存中的位置62段寄存器和其他寄存器组合指向存储单元示意图63取指令:自动选择代码段寄存器CS,再加上由IP决定的16位偏移量,计算得到要取的指令20位物理地址。堆栈栈顶操作:自动选择堆栈段寄存器SS,再加上由SP决定的16位偏移量,计算得到堆栈栈顶操作需要的20位物理地址。涉及到操作数:自动选择数据段寄存器DS或附加段寄存器ES,再加上16位偏移量,计算得到操作数的20位物理地址。其中16位偏移量包含在:指令中的直接地址某个16位地址寄存器的值指令中的位移量+16位地址寄存器中值等。16位偏移量关键取决于指令的寻址方式。以8088/8086CPU的IBMPC系统中,存储器首尾地址的用途固定:00000H~003FFH共1K内存单元用于存放中断向量。FFFF0H~FFFFFH是存储器底部的16个单元。系统加电复位时,会自动转到FFFF0H单元执行,而在FFFF0H处存放一条无条件转移指令,转向系统初始化程序。64实模式下存储器寻址0000段基地址(16位)段首地址××ו••×××1904段首的偏移地址:0000H段寄存器值偏移量+物理地址16位4位16位20位存储器物理地址的计算方法:65例:已知CS=1055H,DS=250AHES=2EF0HSS=8FF0H画出各段在内存中的分布。66例:CS=1055H段首地址=10550HDS=250AH段首地址=250A0HES=2EF0HSS=8FF0H10550H250A0H2EF00H8FF00H代码段数据段附加段堆栈段67例设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为:250AH×16+0204H=252A4H68段寄存器的使用内存访问类型默认段寄存器可指定段寄存器段内偏移地址来源1取指令CS无IP2堆栈操作SS无SP3源串DSES、SSSI4目的串ES无DI5BP用作基址寻址SSES、DS按寻址方式计算得到有效地址6一般数据存取DSES、SS8086/8088对访问不同的内存段所使用的段寄存器和相应的偏移地址的来源有一些具体的约定

69堆栈及堆栈段的使用堆栈:内存中一个特殊区域,用于存放暂时不用或需要保护的数据。常用于响应中断或子程序调用。70例:已知SS=1000H,SP=0100H则:堆栈段的段首地址=栈顶(偏移)地址=若该段最后一个单元地址为10200H,则:栈底偏移地址=段首栈底栈顶堆栈区10000H0100H0200H71内部寄存器小结全部为16位寄存器只有4个数据寄存器分别可分为2个8位寄存器所有16位寄存器中:全部通用寄存器中,只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据,也可能是存放数据的地址;SP中的内容通常为堆栈段的栈顶地址;段寄存器中的内容为相应逻辑段的段地址;IP中的内容为下一条要取的指令的偏移地址;FLAGS中有9位标志位72实模式下的存储器寻址小结每个内存单元在整个内存空间中都具有惟一地址每个内存单元的地址都由两部分组成:段基地址段内相对地址(偏移地址)段基地址决定了逻辑段在内存中所占的区域,改变段基地址,则改变了逻辑段的位置。一个逻辑段的默认长度为64KB,最小长度值为16B。逻辑段可以有多个,但只有4种类型。在一个程序模块中,每种类型的逻辑段最多只能有一个。73时序时序:CPU各引脚信号在时间上的关系总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括4个时钟周期。74读总线周期75写总线周期80386微处理器的主要特点采用全32位结构,其内部寄存器、ALU和操作是32位,数据线和地址线均为32位;提供32位外部总线接口,最大数据传输率为32MB/s,具有自动切换数据总线宽度的功能;具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护,虚拟存储器空间可达64太字节(TB);具有实地址方式、保护方式和虚拟8086方式3种工作方式;采用了比8086更先进的流水线结构,使其能高效、并行地完成取指、译码、执行和存储管理功能(指令队列16字节长).8086到80386的改进16位寄存器发展为32位寄存器;增加了保护方式;引入了多任务、任务切换的概念;引入了四级特权机制,程序能在不同特权间切换;引入了存储器管理单元MMU;增加了新指令。80386的内部结构总线接口部件(BIU)中央处理部件:指令预取部件(IPU)——从存储器预先取出指令放入一个能容纳16条指令的队列指令译码部件(IDU)——从指令队列中取出指令译码后存入已译码指令队列中,如果在预译码时发现是转移指令,可提前通知BIU去取目标地址中的指令,取代原预取队列中的顺序指令指令执行部件(EU)存储器管理部件(MMU):分段部件(SU)——响应执行部件的请求,把逻辑地址转换成线性地址分页部件(PU)——把分段部件产生的线性地址转换成物理地址分段部件SU分页部件PU执行部件EU预取部件IPU译码部件IDU总线部件BIU线性地址译码指令数据(操作和结果)有效地址物理地址32位指令字节指令80386指令执行部件(EU)由控制部件、数据处理部件和保护测试部件组成。控制部件中包含着控制ROM、译码电路等微程序驱动机构。数据处理部件中有8个32位通用寄存器、算术逻辑运算器ALU、一个64位桶形移位器、一个乘除法器和专用的控制逻辑,它负责执行控制部件所选择的数据操作。保护测试部件用于微程序控制下,执行所有静态的与段有关的违章检验。执行部件EU中还设有一条附加的32位的内部总线及专门的总线控制逻辑,以确保指令的正确完成。80386内部寄存器通用寄存器段寄存器系统地址寄存器指针和标志寄存器控制寄存器调试寄存器测试寄存器通用寄存器组(32/16/8位)EAXEBXECXEDXESIEDIEBPESP低16位可分为两个8位寄存器低16位可作为独立的寄存器注:32位寻址时,这8个32位寄存器全部可用于提供偏移地址。段寄存器(16位)CSDSESSSFSGS每个16位段寄存器对应一个64位的高速缓冲段描述符一旦选择子装入段寄存器,相应的段描述符立刻被自动装入高速缓冲段描述符中新增的2个段寄存器指令指针及标志寄存器(32位)指令指针EIP标志寄存器EFLAGS(增加了4个标志位):IOPL——指定I/0操作处于哪个特权级;NT——当前任务是否嵌套于另一任务;RF——调试结束,下一条指令后恢复程序的执行;VM——是否工作于虚拟8086方式控制寄存器80386设置了4个32位的控制寄存器:CR0,CR1,CR2和CR3。它们和系统地址寄存器一起,保存着全局性的机器状态,主要供操作系统使用。

调试和测试寄存器80386设有8个32位调试寄存器DR0~DR7,它们为调试提供了硬件支持。80386设置了8个32位的测试寄存器TR0~TR7,其中TR0~TR5由INTEL公司保留,用户只能访问TR6,TR7

:TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态系统地址段寄存器GDTR——48位全局描述符表寄存器指示全局描述符表的基地址(32位)和表的界限(16位)IDTR——48位中断描述符表寄存器指示中断描述符表的基地址(32位)和表的界限(16位)TR——16位任务状态寄存器LDTR——16位局部描述符表寄存器以上这些寄存器不直接被程序访问。程序不可见的寄存器CSDSESSSFSGS基地址界限权限TRLDTR基地址界限GDTRIDTR基地址界限权限程序不可见区域描述符(寄存器)高速缓冲区88存储器的保护模式保护模式:实模式是指微处理器只能对物理存储器的1MB空间进行访问的寻址方式。8086/8088只能工作于实模式,而80286及其以上的微处理器既可以工作于实模式,又可以工作于保护模式。在保护模式下寻址存储器时,既允许访问位于第一个1MB的存储器空间(常规内存),又允许访问第一个1MB以上的存储器空间(扩展内存)。支持多任务工作模式,不同任务使用的虚拟存储器空间是完全隔离的;内存段的访问受到限制,不能再随意存取数据段。保护模式下的内存访问不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。1MB实模式存储器

扩展存储器

FFFFFH00000H100000H89选择子和描述符选择子是指由系统或指令装入段寄存器中的13位信息;而描述符是指存放在存储器的描述符表中的由8字节组成的若干信息域,并且有两个可供访问程序和(或)数据的系统段描述符表,每一个表中包含有8192个描述符。这两个描述符表是:全局描述符表GDT,它的起始地址存放在全局描述符表寄存器GDTR中,只有一个;局部描述符表LDT,它的起始地址间接地存放在局部描述符表寄存器LDTR中,每个任务都有一个在保护模式存储器寻址时,段寄存器中存放的不再是段地址,而是一个13位的选择子,利用这个选择子作为偏移地址,GDTR或LDTR的内容作为段地址去选择GDT或LDT中8192个描述符中的一个,每个描述符占有连续的8个字节存储单元,再从描述符中取得段基地址以及段限与访问权限。全局描述符包含有适用于所有应用程序的段定义,而局部描述符通常只用于某一个应用程序的段定义。一个应用程序在理论上最多可选择两个描述表中的所有描述符,即16384个描述符。因为每个描述符用来说明寻址时的存储段,每个段的最大长度为4GB,则一个任务最大的寻址范围,即虚拟存储空间是64TB。选择子的格式选择子:加载到段寄存器中的内容选择子(Selector):13位TIRPL153210从8192个全局描述符或8192个局部描述符中选择一个描述符=0使用GDTR作为描述符表的段基址,即访问GDT=1使用LDTR作为描述符表的段基址,即访问LDT请求者优先级别00最高,11最低如何访问描述符:从逻辑地址到线性地址的转换段寄存器内容(选择子)全局描述符表局部描述符表描述符表GDTR150GDT描述符······线性地址空间偏移当前访问的段存储器描述符的格式(80386以上)访问权限段界限(L19-L16)G(粒度)G=1,界限要乘以4KB,即段的大小为4KB~4GB;

G=0,段的大小为0~1MB。D(16/32)D=1,寄存器和偏移地址均为32位;D=0时均为16位。AV(段有效)AV=1,段有效;AV=0,段无效。访问权限:在保护方式下控制存储的访问。如:能否读写、优先级别、段如何扩展等。158765430段基址(B31~B24)DG0AV02461357段基址(B23~B16)段基址(B15~B0)段界限(L15~L0)例:0008HDS*8描述符表

FF00000010000092段界限段基地址00100000H001000FFH数据段描述符存储器粒度=0GDTR00000000HFFFFFFFFH图中的数据段寄存器DS为0001H,它用请求特权级00从全局描述符表中寻址描述符1。描述符1定义段基地址为00100000H及段界限为00FFH的一个段,这个段就是数据段区域。如果某寻址单元的段内偏移量为00008000H,则该单元的物理地址=段起始地址+段内偏移量=00100000H+00008000H=00108000H。线性地址=[(GDTR+DSX8)].Base+有效地址94保护模式下的存储器地址变换95分页机制——两级页表结构如果CR0中的PG位为1,则线性地址要经过分页机制转换为物理地址,否则线性地址即为物理地址。由于80386页的大小固定为4KB,在把32位线性地址转换为32位物理地址的过程中,低12位不变,高20位(称为页码)通过页目录表和页表二级映射进行转换。页目录表存放在4KB的物理页内存中,共有1K项,每项占4个字节其中的20位表示某个二级页表物理页的基地址。二级页表理论上也有1K项,每项占4字节表示线性地址所对应的物理页的基地址,但实际程序使用的线性地址空间往往远小于4G,故二级页表的个数远小于1K个。当前页目录表的物理基地址存放在CR3寄存器中。96通过分页的线性地址到物理地址的转换A:当前页目录表的物理基地址B:线性地址的高10位C:线性地址的中间10位D:线性地址的低12位二级页表物理基址=

A+

B*4物理地址基址=二级页表物理基址+C*4物理地址=物理地址基址+DPentium微处理器按照80X86的逻辑,80486之后的下一个CPU名字应是80586,但是Intel公司决定不再采用数字命名,原因是为了保护商标版权,所以Intel为了获得新一代CPU的商标专利,将其取名为Pentium,它来源于希腊字“Pente”,其意思为5,现在人们习惯上也将Pentium叫做586,或称作奔腾586,或称P5(Pentium未正式命名前的称呼)。Pentium微处理器是1993年投入使用的,与80X86系列保持完全兼容。采用0.8微米的Bi-CMOS技术,使芯片集成度达到310万个晶体管。全部引脚被封装在一个大型的237针PGA中。时钟频率有60MHz、66MHz、75MHz、90MHz、100MHz、120MHz、133MHz、150MHz及166MHz等多种,其中Pentium-66的运算速度为112MIPS。业内人士认为Pentium是一个划时代的微处理器,它的性能已超过了原有的工作站及超级小型机。1.采用超标量双流水线结构

超标量流水线设计是Pentium微处理器技术的核心。所谓超标量就是处理器内部含有多个执行单元来完成多条指令的同时执行。Pentium有两条分别称为U和V的指令流水线,各自有独立的算术逻辑单元ALU及高速缓存结构。这种双流水线并行作业的方式,使得Pentium在每个时钟周期内可同时执行两条指令。此外,还有一个执行单元,保证同时完成一条浮点运算指令。Pentium微处理器的技术特点2.分支预测技术通常在用户程序中包含不少的条件转移指令,在流水线计算机中,这些转移指令由于产生分支可能使予取和予译码指令作废。Pentium内部有两个予取指令缓冲队列,在执行条件转移指令前,一个以顺序方式予取指令,另一个以转移方式予取指令,后者也称作分支目标缓冲器BTB(BranchTargetBuffer),这是一个小的cache,它基于转移指令,尤其是循环转移的固有特点,可以认为在大多数情况下,当一条转移指令被再次执行时,其成功与否及转移目标与上次相同。据此可构造动态的分支目标预测硬件。通过

温馨提示

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

评论

0/150

提交评论