第2章-IBM_PC计算机系统结构_第1页
第2章-IBM_PC计算机系统结构_第2页
第2章-IBM_PC计算机系统结构_第3页
第2章-IBM_PC计算机系统结构_第4页
第2章-IBM_PC计算机系统结构_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、汇编语言汇编语言程序设计程序设计汇编语言程序设计汇编语言程序设计(第二章)(第二章)辽宁石油化工大学计算机与通信工程学院辽宁石油化工大学计算机与通信工程学院主讲:王晓虹主讲:王晓虹汇编语言汇编语言程序设计程序设计 Intel8086Intel8086微处理器的功能结构微处理器的功能结构 存储器存储器 堆栈堆栈( (Stack)Stack) Intel80486Intel80486和和PentiumPentium微处理器的微处理器的 结构及存储管理结构及存储管理汇编语言汇编语言程序设计程序设计一、一、Intel8086Intel8086微处理器的主要特性微处理器的主要特性 数据线数据线 1616

2、位。位。 地址线地址线 2020位,其中低位,其中低1616位与数据总线复用。位与数据总线复用。 内存空间内存空间2020位地址线可直接寻址位地址线可直接寻址1 1MBMB存储空间。存储空间。 寻址方式寻址方式7 7种寻址方式提供了灵活的操作数存取方法。种寻址方式提供了灵活的操作数存取方法。 指令系统指令系统9999条基本指令,能完成数据传送、算术运算、条基本指令,能完成数据传送、算术运算、 逻辑运算、控制转移和处理器控制功能等。逻辑运算、控制转移和处理器控制功能等。 时钟频率时钟频率80868086标准主频为标准主频为5 5MHzMHz,8086-28086-2主频为主频为8 8MHzMHz

3、。 中断功能中断功能可处理内部软件中断和外部硬件中断,中断源可处理内部软件中断和外部硬件中断,中断源 多达多达256256个。个。 工作模式工作模式支持单处理器、多处理器系统工作。支持单处理器、多处理器系统工作。 兼容性兼容性 与与80808080、80858085在源程序一级兼容。在源程序一级兼容。 2.1 Intel8086微处理器的功能结构微处理器的功能结构汇编语言汇编语言程序设计程序设计 二、二、Intel8086Intel8086微处理器的功能结构微处理器的功能结构 一个典型的微处理器基本结构,一般由算术逻辑单元、寄存器组和指令处理单元等部分组成。汇编语言汇编语言程序设计程序设计 2

4、 2寄存器阵列寄存器阵列- 寄存器阵列是微处理器的重要组成部分,可以存放数据和地址。- 寄存器位数一般与微处理器片内总线的宽度是一致的,但也有些 寄存器是片内总线宽度的两倍。- 微处理器内部寄存器的数量与类型视具体的微处理器而定。 一般包括通用寄存器、累加器、标志寄存器和专用寄存器 (如:程序计数器PC、堆栈指示器SP、变址寄存器、地址 寄存器) 1 1算术逻辑部件算术逻辑部件 算术逻辑部件(ALU)由全加器组成。它的主要任务是执行算术运算、逻辑运算及移位等操作。ALU有两个输入端和两个输出端。汇编语言汇编语言程序设计程序设计(1)通用寄存器组 通用寄存器可以存放数据和地址。这类寄存器的作用并

5、不做预先规定,故称之为通用寄存器组。(2)累加器 它也是数据寄存器。累加器往往与ALU单元一起完成各种算术或逻辑运算。运算前,作为运算器的一个输入,运算后它常用来保存运算结果。(3)标志寄存器 进行算术运算或逻辑运算时,可能会发生进位、溢出、全零、符号及奇偶性等状态的变化,运算后又往往需要保存这些状态的变化。为此,在微处理器中设置了标志寄存器。常用的状态标志有:进位标志位C、零标志位Z、符号标志位S、奇偶位P、溢出位O和辅助进位位A(或称半进位)等。汇编语言汇编语言程序设计程序设计 (4)专用寄存器 程序计数器PC PC它是指令地址寄存器。它的内容指出了现行指令在存储器中的存放地址,当按此地址

6、从存储器中取出现行指令时,PC的内容自动修改为下一条指令的地址。 堆栈指示器SP 用于确定在堆栈操作时,堆栈在内存中的具体位置。 变址寄存器 用于变址寻址方式,也可做通用寄存器使用。 另外,在微处理器内部还有一些程序员不能访问的内部工作寄存器,如指令寄存器、暂存器、地址缓冲器和数据缓冲器等。汇编语言汇编语言程序设计程序设计 3 3指令处理单元指令处理单元 指令处理单元即计算机的控制器,负责对指令进行译码和处理。它一般包括: (1)指令寄存器用来暂存即将被译码处理的指令。 (2)指令译码器负责对指令进行译码,通过译码获知该指令属于什么功能的指令。 (3)时序和控制逻辑根据指令要求,按一定的时序发

7、出并接收各种信号。 4 4指令的执行过程指令的执行过程 (1)取指令 (2)指令译码 (3)取操作数 (4)执行指令 (5)存放运算结果 返回返回汇编语言汇编语言程序设计程序设计8086CPU内部从功能上讲由两部份组成:总线接口部件BIU(Bus Interface Unit)和指令执行部件EU(Execution Unit)。 (1)总线接口部件BIU 总线接口部件BIU的具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。 总线接口单元BIU由20位地址加法器、段寄存器、16位指令指针、指令队列缓冲器和总线控制电路等组成。 地址加法器和段寄存器 地址加法器用来产生20位地

8、址,可直接寻址1MB存储物理空间。但是CPU内部的寄存器都是16位的,所以需要由地址加法器来根据16的段寄存器提供的内容(段的起始地址)左移4位后,与16位偏移地址相加,形成一个20位的物理地址,以对存储单元进行寻址。 三、Intel8086总线接口部件BIU和总线执行部件EU汇编语言汇编语言程序设计程序设计 比如,一条指令的物理地址就是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。假设CS=FE00H,IP=0200H,此时指令的物理地址为FE200H。 16位指令指针IP 8086CPU中,IP(1nstructionPoimer)用来存放将要取出的指令在现行代码段中的偏移地址。它

9、只有与CS相结合,才能形成指向指令存放单元的物理地址。 指令队列缓冲器 8086 CPU的指令队列为6个字节,在EU执行指令的同时,从内存中取下面一条或几条指令,将取来的指令依次存放在指令队列中。它们按“先进先出”的原则存放,并按顺序取出到EU中执行。 总线控制电路 总线控制电路将8086CPU的内部总线和外部总线相连。 汇编语言汇编语言程序设计程序设计(2)总线执行部件EU EU的主要任务是完成指令译码和执行指令的操作。 EU由算术逻辑运算单元、标志寄存器,数据暂存寄存器、通用寄存器组和EU控制电路等组成。 算术逻辑运算单元 算术逻辑运算单元(ALU)是一个16位的运算器,用于二进制算术和逻

10、辑运算,也可计算寻址存储器所需的16位偏移量。 标志寄存器 是一个16位的寄存器,用于反映CPU运算的状态特征和存放某些控制标志。 数据暂存寄存器 它协助ALU完成运算,暂存参加运算的数据。 通用寄存器组 它包括4个16位的数据寄存器AX、BX、CX、DX,2个16位的指针寄存器SP、BP和2个16位的变址寄存器SI、DI。汇编语言汇编语言程序设计程序设计 EUEU控制电路控制电路 它负责从BIU的指令队列缓冲器中取指令,并对指令译码。根据指令要求向EU内部各部件发出控制命令,以完成各条指令规定的功能。 EU的具体工作过程是:从BIU指令队列缓冲器中取出指令操作码,通过译码电路分析,发出相应控

11、制命令,控制ALU数据总线中数据的流向。如果是运算操作,操作数经过暂存器送入ALU,运算结果经过ALU数据总线送到相应的寄存器。同时,标志寄存器FR根据运算结果改变状态。当指令要求访问存储器或l/O设备时,EU向BIU发出请求,由BIU通过8086系统总线访问存储器或IO设备。因为EU中所有的寄存器和数据通道(除队列总线为8位外)均为16位宽度,可以实现数据的快速传送。 8086CPU内部结构图如下:汇编语言汇编语言程序设计程序设计汇编语言汇编语言程序设计程序设计 (3)BIUBIU和和EUEU的并行工作的并行工作 8086 CPU中,由于BIU和EU是分开并独立工作的,在EU执行指令的同时,

12、BIU可预取下面一条或几条指令。因此,CPU执行完一条指令后,就可以立即执行存放指令队列中的下一条指令,而不需要像以往的8位CPU那样,重复地进行先取指令、后执行指令的串行操作。这种并行重叠操作的特点提高了总线的信息传输效率和整个系统的执行速度。 返回返回汇编语言汇编语言程序设计程序设计8088的指令执行过程汇编语言汇编语言程序设计程序设计8086微处理器内部共有微处理器内部共有14个个16位寄存器,包括:通用寄存器、位寄存器,包括:通用寄存器、地址寄存器、段寄存器、指令指针和标志寄存器。地址寄存器、段寄存器、指令指针和标志寄存器。 1 1数据寄存器数据寄存器 包括包括AXAX、BXBX、CX

13、CX、DXDX四个通用寄存器,它们都可以以字四个通用寄存器,它们都可以以字(16(16位位) )的形式访问,也可以以字节的形式访问,也可以以字节(8(8位位) )的形式访问。的形式访问。例如对AX可以分别访问高位字节AH或低位字节AL。这四个寄存器都是通用寄存器,但它们又可以用于各自的专用目的。AX:作为累加器用,它是算术运算的主要寄存器。BX:作通用寄存器使用,它还经常用作基址寄存器。CX:作通用寄存器使用,此外在循环(LOOP)和串处理指令中用作隐含的计数器。DX:作通用寄存器使用。还有一些特殊用途。 四、四、Intel8086CPU寄存器的结构寄存器的结构汇编语言汇编语言程序设计程序设计

14、 2指针及变址寄存器 包括包括SP、BP、SI、DI四个16位寄存器。它们可以像数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。此外,在段内寻址时用它们来提供偏移地址。SP:称为堆栈指针寄存器。用来指示栈顶的偏移地址,BP:称为基址指针寄存器。用作堆栈区中的一个基地址以便访问堆栈中的其他信息。SI:源变址寄存器。当与DS联用时,用来确定数据段中某一存储单元的地址,在串处理指令中,SI作为隐含的源变址寄存器,与DS联用达到在数据段寻址的目的。DI:目的变址寄存器。在串处理指令中,DI作为隐含的目的变址寄存器并ES联用在附加段中寻址,其它功能和使用方法与SI基本相同。汇编

15、语言汇编语言程序设计程序设计 3 3段寄存器段寄存器 8086 8086有四个段寄存器。为了寻址1MB内存,将内存分成若干个逻辑段。每个段长64KB。使用四个段寄存器存放各段的基本地址。 BIU中的四个段寄存器分别称为代码段CS(Code Segment) 寄存器、数据段DS(Data Segment) 寄存器、堆栈段SS(Stack Segment) 寄存器和附加段ES(Extra Segment) 寄存器。 CS段寄存器给出当前代码段的基址。DS段寄存器给出当前数据段的基址。SS段寄存器给出当前堆栈段的基址。ES段寄存器给出当前使用的附加段的基址。 4 4控制寄存器控制寄存器 包括IP和F

16、R两个16位寄存器。IP为指令指针寄存器,用来存放代码段中的偏移地址。它与CS寄存器联用确定下一条指令的物理地址。FR寄存器,下一小节将详细介绍。 返回返回汇编语言汇编语言程序设计程序设计80868086CPUCPU中有一个16位标志寄存器,由6位条件码标志(flag)和3位控制标志构成,如下所示: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0其中,条件码标志用来记录程序中运行结果的状态信息,控制标志用来控制CPU的工作状态。1 1条件标志条件标志(1)OF(OverflowFlag)溢出标志,溢出时OF=1,否则OF= 0。(2)SF(SignFlag)符号标志

17、,结果为负时SF=1,否则SF=0。(3)ZF(ZeroFlag)零标志,结果为0时ZF=1,否则ZF=0。(4)CF(CarryFlag)进位标志,记录运算时从最高有效位产生的进位或借位值。当最高有效位有进位或借位时CF=1,否则置CF=0。OFDFIFTFSFZFAFPFCF五、标志寄存器五、标志寄存器(FR)及其用途及其用途汇编语言汇编语言程序设计程序设计 注:请读者区分好溢出标志OF和进位标志CF,当溢出时,表明运算结果出现了错误。(5)AF(AuxiliarycarryFlag)辅助进位标志,记录运算时第3位(字节运算)或第7位(字运算)产生的进位或借位值。例如,执行加法指令时第3位

18、有进位时AF=1,否则AF=0。(6)PF(ParityFlag)奇偶标志,用来检验机器传送信息时可能产生的代码出错情况。当结果操作数中1的个数为偶数时PF=l,否则PF=0。2控制标志控制标志(1)DF(DirectionFlag)方向标志,当DF位为1时,每次操作后使变址寄存器SI和DI减量.当DF为0时,则使SI和DI增量.(2)IF(InterruptFlag)中断标志,IF为l时,开中断,否则关中断。(3)TF(TrapFlag)陷阱标志,TF=1时,每条指令执行完后产生陷井,TF=0时,CPU正常工作不产生陷开。其中控制标志是系统程序或用户程序根据需要用指令设置的。而状态信息是由中

19、央处理机根据计算结果自动设置的。 汇编语言汇编语言程序设计程序设计3标志位举例标志位举例【例2.1】执行以下两数的加法操作,判断各标志位的状态。 0010 0011 0100 0101 + 0011 0010 0001 1001 0101 0101 0101 1110执行以上操作后,各状态标志位的状态应为:CF=0 PF=0 AF=0 ZF=0 ZF=0 OF=0汇编语言汇编语言程序设计程序设计【例【例2.2】 执行加法操作。执行加法操作。 1010 1011 0000 0000 + 1111 1111 1111 1111 1010 1010 1111 1111 执行操作后,各状态标志位的状态

20、应为:执行操作后,各状态标志位的状态应为:CF1 PF1 AF0 ZF=0 SF=1 OF=0【例例2.3】 执行加法操作。执行加法操作。 0110 0100 0000 0000 + 0110 0100 0000 0000 1100 1000 0000 0000执行以上加法操作后,各状态标志位的状态应为:执行以上加法操作后,各状态标志位的状态应为:CF=0 PF=0 AF=0 ZF0 SF=1 OF=1返回返回汇编语言汇编语言程序设计程序设计2.2 存储器2.2.1 2.2.1 主存储器的组成主存储器的组成2.2.2 2.2.2 80868086存储器的组织存储器的组织返回返回汇编语言汇编语言

21、程序设计程序设计存储器分类:按所存放的位置分:分为主存储器和辅助存储器。 主存储器存放当前正在执行的程序和使用的数据。 辅助存储器用来长期保存大量程序和数据。按读写方式分:分为随机存取存储器RAM和只读存储器ROM。 RAM存储器在断电后不能保存信息。 ROM存储器在断电后仍能保存信息。存储器组成: 存储器由存储单元组成,每个存储单元有一个惟一的存储器地址。每个存储单元存放1个字节的数据,1个字节包含了8个二进制位。存储容量是指存储器所具有的存储单元个数,基本单位是字节B。为了表达更大的容量,常用的单位是KB(千字节),MB(兆字节),GB(吉字节),甚至TB(太字节)。换算:1KB=2l10

22、字节=1024字节,1MB=220字节,1GB=230字节, 1TB=240字节。返回返回汇编语言汇编语言程序设计程序设计2.2.2 80862.2.2 8086存储器的组织存储器的组织1存储器单元的地址和内容 地址:每个存储单元规定的编号是地址,存储单 元地址从0开始顺次加1。存储单元的地址 是无符数。n位二进制数共能表示2n个存储 单元的地址,为了书写方 便,存储单元地 址常采用十六进制数表示。 内容:一个存储单元中存放的信息称为该存储单 元的内容。 地址与内容的关系:见下图汇编语言汇编语言程序设计程序设计汇编语言汇编语言程序设计程序设计字地址:一个字存放到存储器要占用连续的两个字节单元。

23、低字节存放在地址低的字节单元中,高字节存放在地址高的字节的单元中,字单元的地址用低地址表示。例如:34560H的字单元的内容是1234H,而地址为78780H时字单元的内容是3332H。双字:4个连续的字节单元就构成了一个双字单元。例如:地址为34560H的双字单元中存放的内容是78561234H。2物理地址的形成 物理空间:8086CPU地址线是20位的,最大可寻空间是220=1MB,其物理寻址范围是00000HFFFFFH。逻辑段:把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数;二是逻辑段的最大长度为64K。按照这两个条件,

24、1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。段首址:是指逻辑段在主存中的起始位置。段内偏移地址:是指主存单元距离段首址的偏移量,简称偏移地址,用EA来表示,由于限定每段不超过64KB,所以偏移地址可以用16位数据表示。 汇编语言汇编语言程序设计程序设计 物理地址形成:物理地址用PA表示, 8086内部和用户编程时所采用的“段首址:段内偏移地址”形式,称为逻辑地址。将逻辑地址中的段首址左移4位,加上偏移地址就得到20位物理地址。 例如逻辑地址“3850H:200H”表示物理地址38700H。同一个物理地址可以有多个逻辑地

25、址形式。3存储器各段分配举例 【例2.4】 各独立段的分配情况示例。 设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。如图2.7所示。 汇编语言汇编语言程序设计程序设计汇编语言汇编语言程序设计程序设计 【例2.5】各段相互重叠情况示例。 设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。由于

26、该程序没有使用附加段,所以没有设置ES值。从该例可以看出,每个段大小应根据实际需要分配,可以重叠。有时,甚至可以将所有4种段都集中在一个逻辑段内,形成一个短小紧凑的程序,其大小不超过64KB。假设使CS=DS=SS=0200H,则代码段将占据该逻辑段为偏移地址0000H一1FFFH的8KB,数据段在偏移地址2000H-27FFH位置,堆栈段指针SP=2900H。如图2.8所示。 汇编语言汇编语言程序设计程序设计图2.8 各段重叠存储单元分配图返回返回汇编语言汇编语言程序设计程序设计 2.3.1 堆栈的构造 2.3.2 2.3.2 80868086堆栈的组织堆栈的组织 2.3.3 2.3.3 堆

27、栈操作堆栈操作返回返回2.3 堆栈堆栈(Stack)汇编语言汇编语言程序设计程序设计1 1什么是堆栈什么是堆栈 堆栈有两种形式:一种是硬堆栈,即用寄存器组来实现的。堆栈有两种形式:一种是硬堆栈,即用寄存器组来实现的。另一种是软堆栈,即用主存的一部分空间作堆栈。堆栈的运行另一种是软堆栈,即用主存的一部分空间作堆栈。堆栈的运行方式为先进后出或先进先出两种,先进后出型堆栈的操作数只方式为先进后出或先进先出两种,先进后出型堆栈的操作数只能从一个口进行读或写。堆栈主要用于暂存数据以及在能从一个口进行读或写。堆栈主要用于暂存数据以及在“过程过程”调用或处理中断时暂存断点信息。调用或处理中断时暂存断点信息。

28、2 2堆栈的构造堆栈的构造 现在通常采用软堆栈,由程序设计人员用程序在存储器中划现在通常采用软堆栈,由程序设计人员用程序在存储器中划出一块存储区作为堆栈。这个存储区最大地址的字存储单元为出一块存储区作为堆栈。这个存储区最大地址的字存储单元为堆栈底部,叫栈底堆栈底部,叫栈底( (Bottom)Bottom)。在堆栈中存放的数据或断点信息在堆栈中存放的数据或断点信息从这里开始,逐渐向地址小的方向从这里开始,逐渐向地址小的方向“堆积堆积”。在任何时刻,存。在任何时刻,存放最后一个信息的存储单元放最后一个信息的存储单元( (即已存放信息的最小地址单元即已存放信息的最小地址单元) )为为堆栈顶部,叫栈顶

29、堆栈顶部,叫栈顶( (TOP)TOP)。栈顶是随着存放信息的多少而变的栈顶是随着存放信息的多少而变的 由于堆栈顶部是浮动的,为了指示现在堆栈中存放数据的位由于堆栈顶部是浮动的,为了指示现在堆栈中存放数据的位置,通常设置一个指针置,通常设置一个指针堆栈指针堆栈指针SP(Stack Pointer)SP(Stack Pointer),它它始终指向堆栈的顶部。始终指向堆栈的顶部。 2.3.1 堆栈的构造堆栈的构造汇编语言汇编语言程序设计程序设计栈底为堆栈空间的高地址单元,栈顶为低地址单元。数据进栈后,栈顶向低地址方向浮动;数据出栈后,栈顶向高地址方向调整。 一个16位的数据进栈的规律是:高位字节存入

30、高地址单元,低位字节存入低地址单元。 一个16位数据出栈规律是:低位字节弹到目标操作数低位,高位字节弹到目标操作数据高位。 为了指示栈顶的当前位置,用SP存放栈顶的有效地址。 堆栈是按字组织的,即每次在堆栈中存取数据均是两个字节,数据在堆栈中存放的格式是: 2.3.2 8086堆栈的组织堆栈的组织汇编语言汇编语言程序设计程序设计1 1设置堆栈设置堆栈堆栈的设置主要是对堆栈段寄存器SS和堆栈指针SP的赋值。在用户源程序中通常安排一个段为堆栈段。如:SEGMENT PARA STACK ;说明本段为堆栈段 DW 100 DUP(0)ENDS2 2进栈进栈 进栈(PUSH)就是把数据压人堆栈。压入堆

31、栈的数据可以是段寄存器内容,也可以是通用寄存器或内存操作数等。进栈操作如下程序段所示。例如: PUSH AX PUSH DS PUSH DATA_WORD PUSHF ;把标志寄存器内容压人堆栈 2.3.3 堆栈操作堆栈操作汇编语言汇编语言程序设计程序设计3 3出栈出栈 出栈(POP)就是从堆栈顶部弹出一个字送回通用寄存器、段寄存器或者字存储单元,如下程序段所示。例如: POP AX POP DX POP DATA_WORD POPF ;从堆栈弹出的内容送回标志寄存器 返回返回汇编语言汇编语言程序设计程序设计 2.4 2.4 Inter80486Inter80486和和PentiumPenti

32、um微处理器微处理器 的结构及存储管理的结构及存储管理 2.4.1 2.4.1 8048680486和和PentiumPentium微处理器的结构微处理器的结构 2.4.2 2.4.2 8048680486和和PentiumPentium微处理器寄存器结构微处理器寄存器结构 2.4.3 2.4.3 8048680486和和PentiumPentium存储管理存储管理 返回返回汇编语言汇编语言程序设计程序设计2.4.1 804862.4.1 80486和和PentiumPentium微处理器的结构微处理器的结构 1处理器微处理器 80486 80486由由7 7大部分组

33、成,它们是总线接口部分、指令预取大部分组成,它们是总线接口部分、指令预取部分、译码部分、控制部分、运算部分、存储管理部分部分、译码部分、控制部分、运算部分、存储管理部分和高速缓冲存储器,和高速缓冲存储器, 80486 80486的存储空间高达的存储空间高达246246字节,并具有多种寄存器和丰富字节,并具有多种寄存器和丰富的数据类型。的数据类型。 运算部分:包含定点运算部件和浮点运算部件。进行定运算部分:包含定点运算部件和浮点运算部件。进行定点运算时需要算术逻辑运算单元点运算时需要算术逻辑运算单元( (ALU)ALU)、移位器和寄存器移位器和寄存器组;进行浮点运算时需要浮点运算单元组;进行浮点

34、运算时需要浮点运算单元( (FPU)FPU)和浮点寄存和浮点寄存器组器组。 存储管理部分:是为实现虚拟存储器而设置的,它由分存储管理部分:是为实现虚拟存储器而设置的,它由分段部件和分页部件两部分组成。分段部件管理逻辑地址段部件和分页部件两部分组成。分段部件管理逻辑地址空间,并把逻辑地址转换为线性地址;分页部件把线性空间,并把逻辑地址转换为线性地址;分页部件把线性地址转换为物理地址。地址转换为物理地址。 汇编语言汇编语言程序设计程序设计图2.11 80486微处理品基本结构示意图 汇编语言汇编语言程序设计程序设计高速缓冲存储器:为了提高计算机的运算速度,高速缓冲存储器:为了提高计算机的运算速度,

35、8048680486在内部还集在内部还集成了一个成了一个8 8K K字节的高速缓冲存储器字节的高速缓冲存储器( (cache)cache),cachecache用来存放最近用来存放最近运行的程序所需要的指令代码和数据。指令预取部件中包含了两运行的程序所需要的指令代码和数据。指令预取部件中包含了两个个1616字节的队列寄存器。字节的队列寄存器。控制部分控制部分:由控制与保护部件和控制由控制与保护部件和控制ROMROM组成。控制部分根据指令组成。控制部分根据指令译码器送来的信息产生微指令,并通过微指令对运算部分、存储译码器送来的信息产生微指令,并通过微指令对运算部分、存储管理部分及指令译码器发出控

36、制信号。管理部分及指令译码器发出控制信号。总线接口部分:功能是产生访问微处理器以外的存储器和输入总线接口部分:功能是产生访问微处理器以外的存储器和输入输出接口所需要的地址、数据和命令输出接口所需要的地址、数据和命令。 微处理器与外部的信息交换是通过总线接口部分的数据总线收微处理器与外部的信息交换是通过总线接口部分的数据总线收发器进行的。在微处理器内部有两组方向不同的发器进行的。在微处理器内部有两组方向不同的3232位数据线,当位数据线,当外部信息输入时,可通过一组数据线把信息送往外部信息输入时,可通过一组数据线把信息送往cachecache和指令预取和指令预取队列;当向外送出信息时,是通过数据

37、收发器中的写缓冲器进行队列;当向外送出信息时,是通过数据收发器中的写缓冲器进行的。这样可缓解高速运行的的。这样可缓解高速运行的CPUCPU与以较低速度运行的存储器、输入与以较低速度运行的存储器、输入输出接口之间的矛盾,且可实现并行处理。输出接口之间的矛盾,且可实现并行处理。 汇编语言汇编语言程序设计程序设计2 2PentiumPentium微处理器微处理器(1)Pentium采用的先进技术 CISC技术和RISC技术 复杂指令集计算机技术(CISC)和简化指令集计算机技术(RISC)是两种不同的CPU设计技术,Intel公司在Pentium之前的CPU均属于CISC体系,从Pentium开始,

38、将CISC和RISC结合,取两者之长,实现更高的性能。 采用CISC技术的CPU有如下特点:(a)指令系统中包含很多指令。(b)访问内存时采用多种寻址方式。(c)采用微程序机制,使微处理器控制ROM中存放了众多微程序。 采用RISC技术的CPU有如下特点:(a)指令系统只含简单而常用的指令,指令长度较短,并且长度相同。(b)采用流水线机制来执行指令,该机制是一种指令级并行处理方式,在同样的时间段中比非流水线机制下执行更多的指令。(c)大多数指令利用内部寄存器来执行,从而使内存的管理简化。 Pentium的大多数指令是简化指令,但仍然保留了一部分复杂指令,而对这部分指令采用硬件来实现。所以,Pe

39、ntium吸取了两者之长。 汇编语言汇编语言程序设计程序设计 超标量流水线技术 所谓超标量,就是一个处理器中有多条指令流水线。在Pentium中,采用U和V两条流水线,每条流水线均含有独立的ALU地址生成电路和连接数据Cache的接口。超标量流水线机制使Pentium能够在一个时钟周期执行两条整数运算指令,比相同频率的前一代CPU实际速度提高一倍。 超标量流水线技术是和RISC技术密不可分的。 Pentium内部还含有一个增强型浮点运算器floating processor unit,FPU),在FPU中,采用快速硬件来实现浮点加、乘、除运算,使其浮点运算速度比前一代CPU快三倍以上。 分支预

40、测技术 在转移指令执行前,能够预测转移是否发生,从而确定此后执行哪一段程序。 Pentium用分支目标缓冲器(branch target buffer,BTB)来执行预测功能,它含有一个1KB容量的Cache,其中可以容纳256条转移指令的目标地址和历史状态。 汇编语言汇编语言程序设计程序设计 在程序运行中,在程序运行中,BTBBTB采用动态预测方法,当一条指令造成分支采用动态预测方法,当一条指令造成分支时,时,BTBBTB检测这条指令以前的执行状态,并用此状态信息预测当前检测这条指令以前的执行状态,并用此状态信息预测当前的分支目标地址,然后,预取此处的指令。当的分支目标地址,然后,预取此处的

41、指令。当BTBBTB判断正确时,分判断正确时,分支程序会如同分支未发生一样,维持流水线的照常运行,当支程序会如同分支未发生一样,维持流水线的照常运行,当BTBBTB判判断错误时,则修改历史记录并重新取指令、译码断错误时,则修改历史记录并重新取指令、译码即重新建立即重新建立流水线。但总的说,有了流水线。但总的说,有了BTBBTB仍然明显提高了效率。仍然明显提高了效率。(2 2)PentiumPentium微处理器结构微处理器结构 Pentium Pentium微处理器主要由微处理器主要由1010大部分组成,它们是:总线接口大部分组成,它们是:总线接口部件、部件、U U流水线和流水线和V V流水线

42、、指令流水线、指令CacheCache、数据数据CacheCache、指令预取部指令预取部件、指令译码器、浮点处理部件件、指令译码器、浮点处理部件FPUFPU、分支目标缓冲器分支目标缓冲器BTBBTB、控制控制ROMROM、寄存器组。寄存器组。总线接口部件:实现总线接口部件:实现CPUCPU与系统总线的连接,其中包括与系统总线的连接,其中包括6464位数据线、位数据线、3232位地址线和众多控制信号线。位地址线和众多控制信号线。U U流水线和流水线和V V流水线:两者独立运行,这两条流水线中均有独立的流水线:两者独立运行,这两条流水线中均有独立的ALUALU,U U流水线可执行所有整数运算指令

43、,流水线可执行所有整数运算指令,V V流水线只能执行简单的流水线只能执行简单的整数运算指令和数据交换指令。整数运算指令和数据交换指令。 汇编语言汇编语言程序设计程序设计 指令Cache、数据Cache:两者分开,从而减少了指令预取和数据操作之间可能发生的冲突,并可提高命中率。两个Cache分别配置了专用的转换检测缓冲器,用来将线性地址转换为Cache的物理地址。 指令预取部件:指令预取部件每次取两条指令,如果是简单指令,并且后一条指令不依赖于前一条指令的执行结果,那么,指令预取部件便将两条指令分别送到U流水线和V流水线独立执行。 指令译码器:指令Cache、指令预取部件将原始指令送到指令译码器,分支目标缓冲器则在遇到分支转移指令时用来预测转移是否发生。 浮点处理部件FPU主要用于

温馨提示

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

最新文档

评论

0/150

提交评论