您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理与接口技术-第2章 cpu体系结构_2
微机原理与接口技术CPU体系结构第二章主要内容•2.1CPU的发展•2.28086/8088CPU•2.380486CPU•2.4PentiumCPU•2.5ItaniumCPU•2.680486的工作模式•2.780486的外部引脚介绍•2.8当前CPU所使用的先进技术2.1CPU的发展•1971年,Intel公司推出了世界上第一款CPU4004(4位)。•1978年,Intel公司生产的8086是第一个16位的CPU。•1979年,Intel公司又开发出了8088。•1981年,美国IBM公司将8088芯片用于其研制的PC机中,从而开创了全新的微机时代。•1982年,Intel研制出了80286CPU。•1985年,新一代的32位核心的CPU——80386DX正式发布。2.1CPU的发展•1989年,80486(32位)芯片由Intel推出。•1993年,586CPU问世,Intel公司把自己的新一代产品命名为Pentium。•1996年底发布PentiumMMX。MMX技术是在CPU中加入了特地为视频信号(VideoSignal),音频信号(AudioSignal)以及图像处理(GraphicalManipulation)而设计的57条指令,因此,MMXCPU极大地提高了电脑的多媒体(如立体声、视频、三维动画等)处理功能2.1CPU的发展•1997年5月发布PentiumⅡ。•1998-1999年间,Intel公司推出了Xeon(至强CPU)•1999年,Intel公司就发布了PentiumⅢ。•2000年,IntelPentium4处理器诞生。•2006年,Core2处理器发布。总结:在CPU的发展历史中,具有典型代表的是16位的8086CPU、32位80486CPU和Pentium4(奔腾)CPU、64位的core2§2.28086/8088CPU一、8086的功能结构•8086CPU是Intel系列的16位CPU,具有16根数据总线和20根地址总线,直接寻址空间为220,即1MB。•8088CPU内部结构与8086基本相同,但是,对外数据总线只有8根,称为准16位CPU。•8086从功能上分为两部分:总线接口部分(BIU),执行部分(EU)。AHALBHBLCHCLDHDLSPBPDISI通用寄存器运算寄存器ALU标志执行部分控制电路123456CSDSSSESIP内部寄存器I/O控制电路地址加法器20位16位8位指令队列缓冲器外总线执行部件总线接口部件8086CPU结构图BIUEU1、总线接口部件(BIU)功能:(1)从内存取指令送到指令队列。(2)CPU执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。总线接口部件的组成:(1)四个段地址寄存器CS,16位代码段寄存器;DS,16位数据段寄存器;ES,16位附加段寄存器;SS,16位堆栈段寄存器。(2)16位指令指针寄存器IP(PC)。(3)20位的地址加法器。(4)六字节的指令队列缓冲器。说明:(1)指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以执行下一条指令(流水线技术)。提高CPU效率。(2)地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。2、执行部件作用:(1)从指令队列中取出指令。(2)对指令进行译码,发出相应的控制信号。(3)接收由总线接口送来的数据或发送数据至接口。(4)进行算术运算。执行部件的组成:(1)4个通用寄存器AX、BX、CX、DX。四个通用寄存器都是16位或作两个8位来使用。(2)4个专用寄存器SP------堆栈指针寄存器BP------基址指针寄存器DI-------目的变址寄存器SI-------源变址寄存器(3)算术逻辑单元ALU完成8位或者16位二进制算术和逻辑运算,计算偏移量。(4)数据暂存寄存器协助ALU完成运算,暂存参加运算的数据。(5)执行部件的控制电路从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。(6)标志寄存器16位寄存器,其中有7位未用。D15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0例:将5394H与-777FH相加,并说明其标志位的状态。【解】先求-777FH的补码:原码:1111011101111111反码:1000100010000000补码:1000100010000001再做加法运算:0101001110010100+10001000100000011101110000010101结果标志位为:CF=0、PF=0、AF=0ZF=0、SF=1、OF=03.“流水线”结构总线接口部件BIU和执行部件EU并不是同步工作的,两者的动作管理遵循如下原则:每当8086的指令队列中有2个空字节,BIU就会自动把指令取到指令队列中。而同时EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令队列已满,而且EU对BIU又无总线访问请求时,BIU便进入空闲状态。在执行转移、调用和返回指令时,指令队列中的原有内容被自动清除。8086流水操作示意图取指令1执行指令1取指令2执行指令2取指令3执行指令3t0t1t2t3t4t图8086流水操作示意图在t0~t4时间间隔中,理想情况下,8086可执行3条指令。4、CPU执行程序的操作过程(1)20位地址形成,并将从该地址指定的单元中取出指令字节,依次放入指令队列中。(2)当指令队列中有2个空字节时,总线接口部件就会自动取指令至队列中。(3)执行部件从指令队列队首取出指令代码,执行该指令。(4)当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。(5)执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。二、存储器的组织和堆栈1、8086存储器的分体结构8086系统中,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB。它们的访问由/BHE、A0组合决定:/BHEA0总线使用情况00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效•8086用两个存储体来组织实际存储空间奇地址偶地址00001H00003H00000H00002HFFFFEHFFFFFH….….BHEA0A0~A19BHED8~D15D0~D7地址交叉排列8086D0~D15•规则字(对准字)存放:偶地址作为字的地址•非规则字(非对准字)存放:奇地址作为字的地址•规则字的读/写只需访问一次存储器;非规则字的读/写需二次访问存储器。第一次访问奇地址,第二次访问偶地址。2、存储器编址在内存里以字节为单位存取信息,系统为每个字节编一个地址(二进制数表示,书写格式为十六进制),称为存储器地址,存储的内容即为数据。地址内容00000H00001H00002HFFFFFH000000010010001101000101……存储器中的数据及表示形式2301H(规则字)4523H(非规则字)地址内容00000H00001H00002HFFFFFH000000010010001101000101……•字节数01H的地址为00000H、字节23H的地址为00001H、字节45H的地址为00002H。•字2301H的地址为00000H、字4523H的地址为00001H。•地址00000H的内容既是01H,又是2301H•顺序存放,低字节低地址(字数据)01H2301H4523H45H3、存储器的分段结构由于8086有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为一定数量的段,其中每一段最多可达寻址216(64K)字节。8086CPU把1M字节的存储器空间划分为任意的一些存储段,每个段的起始地址必须能16整除(该地址的最低四位为0000)。8086可将内存最多可分为64K个段,最少可分为16个段。每个段的最大范围是64KB,最小的段是16B。段与段之间可连续分布,也可重叠。在所有的段中,8086当前可以访问的段只有4个,它们分别由CS、DS、ES和SS所指定。(1)逻辑地址和物理地址物理地址:也称实际地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。如00002H。逻辑地址在程序中使用,即段地址:偏移地址。如2000H:0003H2000H:0000H12H0001H34H0002H56H0003H78H(2)物理地址的形成物理地址=段基址*16(左移4位)+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BX、BP、SP等。物理地址的形成如下:(由20位地址全加器实现)段寄存器值偏移量+物理地址16位4位16位20位0000物理地址和逻辑地址的转换•将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址•一个物理地址可以有多个逻辑地址逻辑地址1460:0100、1380:0F00物理地址14700H14700H14600H+100H14700H13800H+F00H14700H∑015段内偏移地址段寄存器190340000段地址左移4位20位物理地址190物理地址为:段地址(左移四位)+段内偏移量8086存储器20位物理地址的形成•一个存储单元可以有一个或多个逻辑地址,但只能有一个物理地址。例如物理地址21000H可以有以下几个逻辑地址:2100:0000H2000:0100H•段基址一般由系统自动分配,也可以编程改变;而偏移地址则由用户编程时提供。DATASEGMENTXDB12HYDW34HDATAENDS则DS段中,Y的地址为0001H,非规则存放。CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系8086CPU中有四个段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基值,即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段,如图2-8所示。8086存储器的逻辑地址与物理地址图2-9存储器分段示意图66H8FH7CH90H65H5FH1FH2BH8FHA2HC7H4AH代码段(≤64KB)10000H段地址:偏移地址10001H10002H2A0F0H2A0F1H2A0F2HA0000HA0001HA0002HBC000HBC001HBC002H1000:00001000:00011000:00022A0F:00002A0F:00012A0F:0002A000:0000A000:0001A000:0002BC00:0000BC00:0001BC00:0002当前(CS)=1000H,(DS)=2A0FH,(SS)=A000H,(ES)BC00H物理地址数据段(≤64KB)堆栈段段(≤64KB)附加段(≤64KB)4、堆栈和堆栈操作命令堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。(1)堆栈的概念堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则。(2)堆栈的组织堆栈指示器SP,他总是指向堆栈的栈顶。堆栈的伸展方向既可以从高地址向低地址,也可以从低地址向高地址。8086的堆栈的伸展方向是从高地址向低地址。(3)堆栈的操作•建栈:通过对SS和SP的赋值建立。(也可省略)如:MOVAX,2000HMOVSS,AXMOVSP,0100HSS:SP2000:0000XX2000:0001XX堆栈段2000:0
本文标题:微机原理与接口技术-第2章 cpu体系结构_2
链接地址:https://www.777doc.com/doc-3162020 .html