锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

计算机组成原理笔记day05 8086及8088 概述及内部结构

时间:2023-06-15 16:37:00 2x10p线对线连接器

80X86微处理器简介

概述

微处理器:

简称微处理器CPU,由运算器、控制器和寄存器三部分组成,用于实现操作和控制功能。

算术和逻辑操作用于完成数据。 CPU内部寄存器用于临时存储参与计算的操作数量和结果。 控制器通常由指令寄存器、指令译码器和控制电路组成。

80X86微处理器在美国Intel公司生产的一系列微处理器。 从1978年推出的16位8086微处理器芯片开始Intel公司的80X86系列微处理器的生成历史。

8086CPU

Intel16位微处理器系列;

单一的 5V电源供电;

双列直插芯片,40个引脚;

时钟频率5MHz~10MHz。 16条数据总线可以处理16位数据

20条地址总线可直接找到1M存储单元字节。

8086推出后不久,为方便原8位机用户,Intel该公司很快推出了与8086完全兼容的8088微处理器,CUP内部结构仍为16位,但外部数据总线为8位,主要目的是与原8位外围接口芯片兼容。

字长

字长是指单位时间内同时处理的二进制数据的位数。 字长与数据总线的宽度有关。 字长决定了CPU表示数据的精度。 提高了CPU相对运行速度。 典型CPU字长:

8088--------------8bit

8086--------------16bit

80386-------------32bit
Pentiun-----------32bit 64bit

内部工作频率:

内部工作频率又称内频或主频,表示微处理器中数字脉冲信号的振荡速度。

与微处理器的实际操作能力没有直接关系。只是微处理器性能的一个方面,并不代表微处理器的整体性能。

内部频率的倒数是时钟周期,这是微处理器中最小的时间元素。微处理器每个动作至少需要一个时钟周期

示例:当CPU时钟频率为5MHz总线周期为()。

A.0.8μs B. 500ns C.200ns D.200μs

【解析】 时钟周期T=1/f=1/5MHz =1/5000 000=0. 2x10-6s=0.2x10-3ms =0.2μs=200ns

总线周期通常由四个T状态组成 4×T=4×200ns=0.8μs

外部工作频率

外部工作频率是指主板CPU提供的基准时钟频率。早期,微处理器的内频等于外频。 目前,微处理器的内频越来越高。相比之下,外频和内频不再是一比一的同步关系,导致了内部倍频技术。=外频×倍频。

【示例】 早期,80486 DX-33的内频为33MHz,它的外频也是33MHz。即80486 DX-33以33MHz的速度在内部进行运算,也同样以33MHz与外界交换数据的速度。 80486DX-66外频为33MHz,由于内部2倍频技术,内部频率为2× 33MHz=66 MHz。

前端总线频率

前端总线(Front Side Bus),通常用FSB这意味着它是微处理器和外部数据交换的主要通道,主要连接主存储器、图形卡和其他数据吞吐量高的部件,因此前端总线的数据传输能力对计算机的整体性能起着重要作用。如果前端总线不够快,无论多么强大CPU计算机整体速度无法显著提高。

目前PC前端总线的频率为266MHz、333MHz、400MHz、533MHz、800MHz最多有几到1066MHz。

片内Cache的容量

片内Cache又称CPU Cache,可分为L1 Cache、L2 Cache,部分高端CPU还具有L3 Cache。L1 Cache容量基本为4~64KB之间,L2 Cache的容量从128KB~2MB不等。L2 Cache是影响CPU性能的关键因素之一。

片内Cache(L1 Cache)与片外Cache(L2 Cache)命中率可达98%。

为什么要用Cache?

CPU为了协调两者的速度,速度快,内存速度慢CPU在内存之间设置一个可以高速存储信息的芯片—Cache,将最近可能使用的指令和数据放在工作速度高于主存储器(但容量较小)的缓存中, 从存储器中获取指令和数据的时间减少,从而进一步提高处理器的工作效率。

地址总线宽度

微处理器可度决定了微处理器可访问的最大物理地址空间。

决定了地址总线的宽度CPU能够使用多大容量的主存储器,即决定了地址总线的宽度CPU可直接访问的内存单元数量。假设地址总线为32位,则可访问232位=4GB内存单元。

示例总线宽度分为地址总线宽度和数据总线宽度。CPU 能用多大容量( );

A.Cache B.主存储器 C.U 盘 D.磁盘

数据总线宽度

(1) 是CPU与内存或其他设备之间的数据传输通道。

(2)数据总线的宽度决定CPU以及外部数据传输速度。

(3)每条传输线只能一次传输一位二进制数据。 8个数据线可以一次传输8位二进制数据(即一个字节)。

(4)数据总线是数据线数量的总和。 决定数据总线的位数CPU单次通信可以交换的信息数量

工作电压

工作电压是指电器在额定电压范围内正常工作时的电压值。 微处理器工作电压是指微处理器正常工作所需的电压。

一般情况下,微处理器应该具有以下四个方面的功能:

1.指令控制。又称程序顺序控制,使计算机中的控制指令严格按照规定的顺序执行。

2.操作控制。将计算机指令产生的一系列控制信号的一系列控制信号发送到相应的部件。

3.时间控制。严格按照时间规定的顺序操作计算机中的各种控制信号,以完成时间控制和总线操作。

4.数据处理。完成数据的算术操作和逻辑操作,或处理其他信息。

8086/8088CPU的内部结构

8086/8088CPU分为两部分:执行单元:EU(Execution Unit)和总线接口单元BIU(Bus Interface Unit) 。

两个单元相互独立,分别完成各自的操作。两个单元可以并行执行,实现指令值和执行的装配线操作。

执行部件

按照取指令,计算机→指令译码→操作指令→执行指令→按顺序执行存储结果。

EU不间断地从BIU在指令队列中获得指令并连续执行。如果在指令执行过程中需要访问存储器,则只需将访问地址发送到BIU,等待操作数到来后继续执行。当遇到转移指令时,指令队列中的后续指令将无效,等待BIU将新的指令代码从存储器中取出,送到指令队列缓冲器,EU继续执行指令。

EU没有直接对外界面,需要翻译的指令将从BIU除了最终形成20个物理地址形成20个物理地址外,还需要操作BIU除了完成相应的功能外,所有的逻辑操作,包括形成16个有效地址的操作,都是由EU来完成。

执行部件EU的功能

所有指令的翻译和执行

与BIU交换数据和地址

管理通用和标志寄存器

执行部件EU的组成

算术逻辑单元

通用寄存器组

暂存器

标志寄存器

EU控制电路

算术逻辑单元

算术逻辑单元(Arithmetic Logic Unit,ALU): ALU它是加工和处理数据的功能部件,可以完成8/16位二进制数的算术逻辑操作。通过内部总线将通用寄存器组或BIU除了影响状态标志寄存器的状态标志位外,内部寄存器还在等待写入存储器。

通用寄存器组

寄存器是CPU内部高速存储单元,不同CPU一组配备不同数量和长度的寄存器。 由于访问存储器比访问存储器快捷方便,各种存储器用于存储临时数据或地址,具有数据准备、调度和缓冲功能。 通用寄存器包括4个16位数据寄存器AX、BX、CX、DX,可用于存储16位或8位数据;4个16位地址指针SP、BP、SI、DI。如图所示:

寄存器是CPU内部高速存储单元,不同CPU一组配备不同数量和长度的寄存器。 由于访问存储器比访问存储器快捷方便,各种存储器用于存储临时数据或地址,具有数据准备、调度和缓冲功能。 通用寄存器包括4个16位数据寄存器AX、BX、CX、DX,可用于存储16位或8位数据;4个16位地址指针SP、BP、SI、DI。如图所示:

暂存器

临时存储参与操作的操作数量。可用于临时存储指令, 数据。 在CPU控制部件中包含的临时存储器有指令临时存储器 (IR)程序计数器 (PC)。在CPU在算术和逻辑算术和逻辑部件中 (ACC)。

标志寄存器(FLAG)

标志寄存器也称为程序状态字PSW(Progrom Status Word),有16位,其中有6个状态位和3个控制位。 6 个状态位包括:CF、PF、AF、ZF、SF、OF 3个控制位包括: IF、DF、TF 

1)CF(Carry Flay)进位标志。如果加法时最高位(对字节操作是D7位,对字操作是D15位)产生进位或减法运算时最高位产生借位,则CF=1,否则CF=0

2)PF(Parity Flag)奇偶标志。如果操作结果的低8位中含有偶数个1,PF=1,否则PF=0。

3)AF(Auxiliary Carry Flay)辅助进位标志。如果在加法时D3位有进位或减法时D3位有借位,则AF=1,否则AF=0。

4)ZF(Zero Flag)零标志。如果运算结果各位都是零,则ZF=1,否则ZF=0。

5)SF(Sign Flag)符号标志。它总是和结果的最高位(字节操作时是D7,字操作时是D15)相同。 因为在补码运算时最高位是符号位,所以运算结果为负时,SF=1,否则SF=0。

6)OF(Overflow Flay)溢出标志。当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则OF=0。可用来判断符号数运算结果是否溢出。 对于加法运算,如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)相加时(包括次高位的进位)却没有进位输出;或者反过来,次高位没有进位加入最高位,但最高位却有进位输出,都会发生溢出。

标志寄存器(FLAG) )-控制标志

DF(Direction Flag)方向标志:

可以指令预置。 字符串操作指令执行时受它的控制。 该标志可以控制地址向着增大的方向自动增加(DF=0)或减小的方向自动减小(DF=1)

IF(Interupt Flag)中断允许标志:

可用指令预置 当IF=1,则CPU可响应可屏蔽中断请求 当IF=0,则CPU不响应可屏蔽中断请求

TF(Trap Flag)陷阱标志:

用于控制处理器进入单步操作方式,设置TF=0,处理器正常工作,不产生陷阱;设置TF=1,处理器单步执行指令。 单步执行指令是指处理器在每条指令执行结束时,会产生一个编号为1的内部中断(单步中断),利用单步中断对程序进行逐条指令的调试,即单步调试。

EU控制器电路。

它负责从BIU的指令队列缓冲器中去指令、分析指令,然后根据译码器译码结果向EU内部各部件发出控制命令以完成指令功能。

 总线接口部件-- BIU 

总线接口单元BIU的功能是负责完成与存储器或I/O设备之间的数据传送。 其具体任务是:BIU要从内存取指令送到指令队列缓冲器;CPU 执行指令时,总线接口单元要配合执行单元从指定的内存单元或外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送指定的内存单元 或外设端口中

BIU内有4个16位段地址寄存器CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器),16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。

指令队列缓冲器

8086的指令队列为6个字节,8088的指令队列为4个字节。无论是8086还是8088,都会在执行指令的同时,从内存中取下面一条或几条指令,取来的指令就依次存放到指令队列中。它们采用“先进先出”的原则,按顺序存放,并顺序到EU中去执行。

1)取指令时,每当指令队列缓冲器中存满一条指令时,EU就立即开始执行。

2)指令队列缓冲器中只要空出两个字节(8086)或一个字节(8088),BIU便自动执行取指令操作,直到填满为止。

3)在EU执行指令过程中,指令需对存储器或I/O设备存取数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期,对指定的内存单元或I/O设备进行存取操作,交换的数据经BIU由EU进行处理。

4)当EU执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令,新取得第一条指令将直接经指令队列送到EU去执行,随后取来的指令将填入指令队列缓冲器。由于BIU和EU是分开并独立工作的,因此在一般情况下,CPU执行完一条指令后就可以执行下一条指令。这种并行重叠操作的特点,提高了总线的信息传输效率和整个系统执行效率。

地址加法器:

8086有20条地址线,但是CPU内部寄存器只有16位,如何用16位寄存器实现20位地址的寻找? 解决方法:分别用16位的段寄存器与16位的偏移量来表示地址。 即各个段寄存器分别用来存放各段的起始地址。由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称逻辑地址)后,将与左移4位后的段寄存器的内容同时送到地址加法器进行相加,形成一个20位实际地址(又称为物理地址),以实现对存储单元寻址。

段寄存器

4个16位的段寄存器,即代码段寄存器(CS)、数据段寄存器(DS)、堆栈段寄存器(SS)和附加段寄存器(ES)与地址加法器组合,用于形成存储器物理地址,完成从16位的存储器逻辑地址到20位的存储器物理地址的转换运算。

指令指针寄存器(IP)

指令指针寄存器IP,用于控制程序中指令的执行顺序。 正常运行时,IP中含有BIU要取的下一条指令的偏移地址,一般情况下,每从内存中存取一次指令码,IP就自动加1,从而保证指令的顺序执行。 IP实际上是指令机器码存放内存单元的地址指针,IP的内容可以被转移类指令(如JMP)强迫改写,以改变程序执行的顺序。

内部暂存器

用于内部数据的暂存,该部分对用户透明,在编程时不予理会,用户无法访问。

总线接口控制逻辑。

总线控制逻辑发出总线控制信号,实现存储器的读/写控制和I/O的读写控制。它将CPU内部总线与外部总线相连,是CPU与外部电路进行数据交换的路径。 总线控制逻辑8086通过20条引脚线分时传送20位地址线、16位数据和4位状态信息。

8086/8088包括四个16位数据寄存器,两个16位指针寄存器,两个16位变址寄存器,一个16位指令指针寄存器,四个16位段寄存器,一个16位标志寄存器。总共有14个寄存器,这14个寄存器分成四组。

数据寄存器 

执行单元EU中有4个16位数据寄存器AX、BX、CX和DX。每个数据寄存器分为高字节H和低字节L,它们均可作为8位数据寄存器独立寻址,独立使用。 数据寄存器是用在算术运算或逻辑运算指令中,用来进行算术逻辑运算。在有些指令中有特定的用途:如AX作累加器;BX作基址寄存器,在查表指令XLAT中存放表的起始地址;CX作计数寄存器,在使用带有重复前缀(如REP)的数据串操作指令中用来存放数据串元素个数;DX作数据寄存器,在字的除法运算指令DIV中存放余数。这些寄存器在指令中的功能是被隐含使用的。

 

指针寄存器和变址寄存器 

指针寄存器是指堆栈指针寄存器SP和堆栈基址指针寄存器BP,简称为P组。变址寄存器是指源变址寄存器SI和目的变址寄存器DI,简称为I组。它们都是16位寄存器,一般用来存放偏移地址。

指针寄存器SP和BP都用来指示存取位于当前堆栈段中的数据所在的地址,但SP和BP在使用上有区别。入栈(PUSH)和出栈(POP)指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。而BP则是存放位于堆栈段中的一个数据区基地址的偏移地址,故称为堆栈基址指针寄存器

 

控制寄存器 

8086微处理器的控制寄存器主要有指令指针寄存器(IP)和标志寄存器(FLAGS)。

段寄存器

代码段寄存器CS(Code Segment) 存放当前正在运行的程序代码所在段的段基址,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移量则由IP提供。 数据段寄存器DS(Data Segment) 指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基址。 堆栈段寄存器SS(Stack Segment)   指出当前堆栈的底部地址,即存放堆栈段的段基址。 附加段寄存器ES(Extra Segment) 指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。

8086CPU有20根地址线,最大可寻址内存空间为1MB。而8086的寄存器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16位的地址寻址1MB空间是不可能的。所以就要把内存分段,也就是把1MB空间分为24,即16个段,每段不超过64KB(216,16位数据线就可以寻址)。在8086中设置4个16位的段寄存器,用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个16位的地址左移四位(后面加上4个0)就可构成20位的段基址。

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章