微机原理(第3讲)第2章-微处理器内部结构2.1_2.2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章微处理器内部结构2.1微处理器功能结构2.2IA-32微处理器寄存器本章内容2.1微处理器功能结构2.1.1微处理器基本结构2.1.28086的功能结构2.1.3IA-32的功能结构2.2IA-32微处理器寄存器2.2.1整数寄存器2.2.2浮点及多媒体寄存器2.3微处理器存储器组织2.3.1IA-32工作方式2.3.2实方式的逻辑段2.3.3保护方式的段页管理2.1微处理器功能结构“功能”结构观察角度程序员和使用者目的掌握一个CPU的工作性能和使用方法注意差别≠(CPU的物理结构和实际布局)2.1.1微处理器基本结构(8位为例)算术逻辑单元ALU累加器标志寄存器可编程寄存器Programmable通用寄存器专用寄存器指令处理单元CPU控制器指令执行过程读取指令↓指令译码↓执行指令2.1.28086/8088的功能结构寄存器阵列ALU及标志寄存器控制电路指令译码器段寄存器及指令指针地址加法器总线控制电路指令流队列执行部件EU数据及操作数16指令码多路复用地址/数据总线8086:16位8088:8位总线接口部件BIU8086/8088CPU的结构框图执行指令取指令、读操作数、写结果指令流数据流8088/8086的内部结构EU控制器ALU暂存器标志寄存器8位队列总线总线控制逻辑ALU数据总线16位(内部总线)地址加法器20位地址总线8(8088)/16(8086)位数据总线执行部件EU总线接口部件BIU123456指令队列通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISICSDSSSES80888086IP暂存器8086/8088三总线CPU执行指令的过程过程1.取指(fetch)2.译码(decoding)3.计算有效地址(EA:EffectiveAddress)4.取操作数5.执行指令6.存储运算结果取指令,PC值加1停机?译码并执行结束YN关键寄存器地址寄存器AR(AddressRegister)数据寄存器DR(DataRegister)指令寄存器IR(InstructionRegister)指令译码器ID(InstructionDecoder)指令预取手段:指令队列(Queue)作用BIU顺序预取后续指令指令队列实现流水线(InstructionPipeline)操作取指(属BIU)并行于指令译码和执行(属EU)预取条件指令队列中有1个/2个(8088/8086)以上的字节空间,且EU未申请读写存储器总线周期:CPU访问一次存储器或I/O接口所需的时间例如:若要求机器把两个数7和10相加预先,把一条条指令写入存储器中在执行时,机器把这些指令一条条地取出来,加以翻译和执行指令机器码MOVAL,7B07ADDAL,10040AHLTF4例:程序指令的执行过程第一条指令的取指过程0000000000000000101100000000011100000100000010101111010010110000OI2ALUI1ALBLPLAIDIR10110000DBAB+1……EABCARD读FDR0001020304GPC取第一条指令的操作示意图+100001011000010110000PC的内容(00H)送AR(AddressRegister)PC+1PC(01H)00H经AB送至存储器,经地址译码器选中00H单元。CPU给出读命令。(00H)=B0H读至DB(DataBus)10110000B0H送至DR(DataRegister)DR把B0H送IR经ID译码发出对应操作取指令第二字节的过程如下图所示。0000000110110000000001110000010000001010111101000100000111OI2ALUI1AL00000111BLPLAIDIR00000111DBAB+1……EABCARD读FDRGPC1000000001取立即数的操作示意图+10100000111PC的内容01H送ARPC+1PC(02H)01H经AB送至存储器,经地址译码选中01H单元。CPU发出读命令。(01H)=07H读至DB0000011107H送DRAL0000011107H由DR通过内部DB送至AL。2.1.3IA-32的功能结构英特尔32位结构:IA-32(IntelArchitecture-32)80X86系列微处理器标准IA-32微处理器:80386,80486,Pentium系列80386的功能结构6个功能部件可以并行工作,进行流水线处理EU(ExecutionUnit)BIU(BusInterfaceUnit)AU(AddressUnit)IU(InstructionUnit)Pentium的功能结构2.2.1IA-32的整数寄存器1.通用寄存器2.指令指针4.标志寄存器结合2.3微处理器存储器组织讲解3.段寄存器5.其他寄存器8088/8086的全部寄存器控制寄存器8位寄存器IPFLAGCSDSSSES代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器AHALBHBLCHCLDHDLAXBXCXDXSPBPSIDI累加器基地址寄存器计数器数据寄存器堆栈指针寄存器基地址指针寄存器源变址寄存器目的变址寄存器(PC)指令指针寄存器(PSW)状态标志寄存器段寄存器16位寄存器通用寄存器寄存器组(RegisterSet)1.IA-32的通用寄存器存取16位寄存器,高16位不受影响存取8位寄存器,16/32位寄存器其他位不受影响通用寄存器的命名EAX:累加器(Accumulator)EBX:基址寄存器(Base)ECX:计数器(Counter)EDX:数据寄存器(Data)ESI:源变址寄存器(SourceIndex)EDI:目的变址寄存器(DestinationIndex)EBP:基址指针(BasePointer)ESP:堆栈指针(StackPointer)2.指令指针EIP(专用寄存器)程序计数器PC作用:指向将要执行的指令在主存的位置位置:当前代码段内的偏移地址长度在IA-32的32位环境中EIP,32位在80x86的16位工作方式IP,16位EIP的高16位为04.标志寄存器作用反映指令执行结果或控制指令执行形式分类状态标志位:记录程序运行结果的状态控制标志位:控制处理器执行指令的方式表示方法用一个或多个二进制位表示一种标志(Flag)位数8086:16位IA-32微处理器:32位32位FLAG主要标志位的含义符号标志单步中断中断允许方向标志溢出标志D15D0OFDFIFTFSFZFAFPFCF半进借位标志1-低4位向高4位有进、借位0-低4位向高4位无进、借位零标志1-结果为00-结果不为0进借位标志1-有进、借位0-无进、借位奇偶标志运算结果低8位,若含偶数个1,则为1,否则为0运算对状态标志位的影响符号标志SF(SignFlag)最高位(D15或D7)为1则SF=1,否则SF=0进位标志CF(CarryFlag)最高位(D15或D7)进位或借位则CF=1,否则CF=0。溢出标志OF(OverflowFlag)当n位带符号数的运算结果超出(-2n-1~2n-1-1)时溢出,OF=1,否则OF=0如何判断溢出?有符号数和无符号数判别方法的差别?无符号数超范围判断有符号数超范围判断有符号数运算的溢出判别和大小判别有符号数运算溢出判别Cs最高位进位,Cp次高位进位Cs⊕Cp=1,有溢出产生(1)a0,b0,a+b0;(2)a0,b0,a+b0(3)a0,b0,a-b0;(4)a0,b0,a-b0Cs⊕Cp=0,无溢出产生有符号数a和b大小判别a-bOF⊕SF=0,a≥bOF⊕SF=1,ab零标志ZF(ZeroFlag)结果为0则ZF=1,否则ZF=0奇偶标志PF(ParityFlag)结果低8位中‘1’的个数为偶数则PF=1,否则,PF=0辅助进位标志AF(AuxiliaryFlag)8位或16位数运算时低4位向高4位(D3向D4)有进位或借位则AF=1,否则AF=010001101001101100011001000011001+0110011010101001运算结果最高位为1∴SF=1;例1:这是有符号数运算还是无符号数运算?第三位向第四位有进位∴AF=1;次高位向最高位有进位,最高位向前没有进位,∴OF=10=1最高位没有进位∴CF=0;低8位中1的个数为偶数个∴PF=1;运算结果本身≠0∴ZF=0;例2:执行2345H+3219H,分析对PSW的影响10001101000101000011001000011001+0111101010101010标志:运算结果最高位为0∴SF=0;运算结果本身≠0∴ZF=0低8位中1的个数为奇数个∴PF=0;最高位没有进位∴CF=0;第3位向第4位无进位∴AF=0;次高位向最高位没有进位,最高位向前没有进位∴OF=0。控制标志位的作用方向标志DF(DirectionFlag)串操作时1,地址自动减0,地址自动增中断允许标志IF(InterruptEnableFlag)是否允许响应外部可屏蔽中断IF=1,允许IF=0,屏蔽追踪标志TF(TraceFlag)TF=1,进入单步方式(程序调试方式)控制标志一旦设置后,便对后边的操作产生控制作用2.2.2——浮点数据寄存器科学计算等工程领域需要使用实数IA-32微处理器支持三种浮点数据类型32位单精度64位双精度80位扩展精度浮点数浮点处理单元2.2.2——多媒体寄存器Pentium4支持多媒体指令:整数MMX,浮点数SSEMMX含有8个64位的MMX寄存器(MM0~MM7)SSE新增8个128位的SIMD浮点数据寄存器(XMM0~XMM7)多媒体指令支持紧缩(Packed)数据格式128位紧缩数据2个64位双精度浮点数或4个32位单精度浮点数16个8位、8个16位、4个32位或2个64位整数一条多媒体指令能够对两个紧缩数据进行运算关键技术:单指令多数据SIMD多媒体指令常被称为SIMD指令小结微处理器的功能结构微处理器的主要寄存器通用寄存器指令指针标志寄存器

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功