600 likes | 747 Views
第二章 微型计算机系统结构. 第一节 CPU 的内部逻辑结构 一、 CPU 的组成和功能 1 、 CPU 的组成 CPU 主要由 运算器 、 控制器 、 寄存器组 和 片内总线 等 组成 2 、 CPU 的功能 (1) 指令控制 (2) 操作控制 (3) 时序控制 (4) 执行指令 (5) 数据加工(运算). 二、 8086/8088 微处理器的内部结构. 8086 是 16 位的微处理器,有 16 位数据线 和 20 位地址线,可寻址 2 20 个字节,即 2 20 =1MB=1048576B
E N D
第二章 微型计算机系统结构 第一节 CPU的内部逻辑结构 一、CPU的组成和功能 1、CPU的组成 CPU主要由运算器、控制器、寄存器组和片内总线等 组成 2、CPU的功能 (1) 指令控制 (2) 操作控制 (3) 时序控制 (4) 执行指令 (5) 数据加工(运算)
二、8086/8088微处理器的内部结构 8086是16位的微处理器,有16位数据线 和20位地址线,可寻址220个字节,即 220 =1MB=1048576B 8088是准16位微处理器,内部为16位,外 部数据线为8位。 8086是本课的重点,它主要分为两个独立 的功能模块,总线接口模块BIU和执行部件 EU,它们可以并行工作。如图2.1所示。
BIU EU 图2. 1 8086 CPU内部逻辑结构
1、总线接口部件BIU 总线接口部件负责与存储器、输入/输出 端口传送数据。 总线接口部件组成: (1) 专用寄存器组:段地址寄存器CS、DS、 ES、SS和指令指针寄存器IP,均为16位。 (2) 地址加法器:8086在寻址1M字节地址 空间时需用20位地址,这个地址就是由地址 加法器产生的。
具体的说,地址加法器将段寄存器(16位) 的内容左移4位,然后与指令指针寄存器IP 的内容相加得到20位的物理地址。 例如:从内存取指令时, (CS)=5760H,(IP)=1234H,则物理地址 为: 57600H+ 1234H =57934H。 这里,先将段寄存器CS左移4位(16进 制数只需后面加一个零)。
(3) 6字节的指令队列:总线接口部件从内 存中取来的指令放在一个缓冲区中,这个 缓冲区叫指令队列。执行部件在执行指令 过程中从指令队列取来指令执行。 (4) 输入/输出控制电路:该控制电路将 8086CPU的片内总线与系统总线相连,是 8086CPU与外部交换数据的必经之路。
2、执行部件EU(Execution Unit) 执行部件负责执行指令。通常,从指令队列中取得等待执行的指令。组成如下: (1) 算术逻辑单元ALU:完成各种运算。 (2) 标志寄存器FR:用来保存ALU运算结果的一 些特征信息,如运算是否进位。 (3) 通用寄存器组:数据寄存器AX,BX,CX,DX和 寄存器BP,SP,SI及DI,均16位。 (4) 执行部件控制电路
3、BIU和EU的管理 BIU和EU可以并行工作,提高CPU效率。 • BIU监视着指令队列。当指令队列中有2个空字 节时,就自动把指令取到队列中。 (2) EU执行指令时,从指令队列头部取指令,然后 执行。如需访问存储器,则EU向BIU发出请求, 由BIU访问存储器。 (3) 在执行转移、调用、返回指令时,需改变队列 中的指令,要等新指令装入队列中后,EU才继 续执行指令。
4、寄存器结构 (1) 通用寄存器组 8086CPU有8个16位的通用寄存器,分2组。 ① 通用数据寄存器:AX,BX,CX,DX,用来存放数 据或地址,一个16位寄存器也可以当作两个8位寄存 器用,此时表示为AH,AL;BH,BL;CH,CL;DH,DL。 ② 基地址寄存器BP,堆栈指针寄存器SP,源变址 寄存器SI和目的变址寄存器DI主要存放地址,也可 以存放数据。
(2) 段寄存器 8086的寻址空间是1M字节,物理地址需要20 位的地址码。但CPU中的寄存器都是16位的。为 解决该问题采用了存储器分段技术。把1MB地址 分段,每段64KB,其起始地址的高16位装入一 个段寄存器中,称作段基地址,这四个段寄存器 的名称为: CS (代码段寄存器) DS (数据段寄存器) ES (附加段寄存器) SS (堆栈段寄存器)
8086设置了这4个16位段寄存器,通过这四个段 寄存器,CPU可以定位4个逻辑段,分别为:当前代 码段、当前数据段、当前附加段和当前堆栈段。 注意,每个逻辑段在实际存储器中的位置是可以 浮动的,其起始地址的高16位装在段寄存器中,称 作段基地址。当程序很大,超过64KB时,则可以定 义多个代码段、数据段和附加段。 不同的逻辑段可以相交,甚至可以完全重叠。参 见书上图2. 8。 (3)指令指针寄存器IP 该寄存器的内容用来指明将要执行的下一条指令在 代码段中的位置。总线接口部件BIU负责修改IP寄存 器的值,使它始终指向将要执行的下一条指令。
(4) 标志寄存器FR FR主要用来标志运算结果的状态,以及控制CPU的 操作。各标志位定义如图2. 2所示(共有9个标志):
下图是80x86微处理器的标志寄存器,从 图中可知,他们是向下兼容的。
标志位共有9个,6个是状态标志,用来表示运算结果的标志位共有9个,6个是状态标志,用来表示运算结果的 特征,包括CF、PF、AF、ZF、SF和OF;3个是控制标志, 用来控制CPU的操作,包括IF、DF和TF。 ① 状态标志: CF:进位标志,表示本次运算中最高位(第7位或第15 位)有进位或有借位。 PF:奇偶标志。 PF=1表示本次运算中低8位有偶数个“1”; PF=0表示有奇数个“1”。 AF:辅助进位标志。 AF=1表示本次运算第3位向第4位有 进位或有借位。在十进制运算中作为是否进行十进制调整 的依据。 ZF:零标志。ZF=1表示本次运算结果为零,否则ZF=0 SF:符号标志。 SF=0为正数; SF=1为负数。 OF:溢出标志。 OF=1表示本次运算结果产生溢出,否则 OF=0。所谓溢出就是指运算结果超出了相应类型数据所能
表示的范围。 ② 控制标志: DF:方向标志,用来控制串操作指令的执行。 DF=0则 串操作指令的地址自动增量;若DF=1,则自动减量。 IF:中断标志,用来控制对可屏蔽中断的响应。若IF=1 则允许CPU响应可屏蔽中断; IF=0,则CPU不能响应可 屏蔽中断。 TF:单步标志。若TF=1,则CPU进入单步工作方式, 即CPU每执行一条指令就自动产生一次内部中断;TF=0 则CPU正常执行。 8086以上的CPU其寄存器阵列如下图所示,阴 影部分是80386以上的32位微处理器的寄存器。
5、8088与8086的区别 8088的指令队列只有4个字节,若出现1个 空字节,BIU就会自动取指令补充。 8088BIU与外部交换数据是8位的,I/O控 制电路与专用寄存器之间的数据总线宽度也 是8位的。 8088与8086有几个引脚的意义有不同,参 见下一节。
第二节 CPU的外部结构 8086/8088CPU芯片都是40条引脚的双列 直插式封装。部分引脚采用了分时复用方 式,即同一条引脚在不同的时刻具有不同 的用途。如图2.3所示。 8086/8088CPU可有两种工作模式,即最 大模式和最小模式。不同模式下个别引脚 的功能是不同的。
GND 1 40 VCC AD14 239 AD15 AD13 3 38 A16/S3 AD12 4 37 A17/S4 AD11 536 A18/S5 AD10 6 35 A19/S6 AD9 7 34 BHE/S7 AD8 8 33 MN/MX AD7 9 8086 32 RD AD6 10 CPU 31 HOLD(RQ/GT0) AD5 11 30 HLDA(RQ/GT1) AD4 12 29 WR(LOCK) AD3 13 28 M / IO(S2) AD2 14 27 DT / R(S1) AD1 15 26 DEN (S0) AD0 16 25 ALE(QS0) NMI 17 24 INTA(QS1) INTR 18 23 TEST CLK 19 22 READY GND 20 21 RESET GND 1 40 VCC A14 239 A15 A13 3 38 A16/S3 A12 4 37 A17/S4 A11 536 A18/S5 A10 6 35 A19/S6 A9 7 34 SS0 (HIGH) A8 8 33 MN/MX AD7 9 8088 32 RD AD6 10 CPU 31 HOLD(RQ/GT0) AD5 11 30 HLDA (RQ/GT1) AD4 12 29 WR(LOCK) AD3 13 28 IO / M(S2) AD2 14 27 DT / R(S1) AD1 15 26 DEN (S0) AD0 16 25 ALE(QS0) NMI 17 24 INTA (QS1) INTR 18 23 TEST CLK 19 22 READY GND 20 21 RESET 图2.3 8086/8088CPU的外型与引脚
一、8086CPU引脚 1.AD15-AD0:分时复用的地址/数据总线 2.A19/S6-A16/S3:分时复用的地址/状态线 S5用来表示中断标志状态线,当IF为1时, S5=1。 S6保持恒为0。
3. :总线高位有效信号 4. :读信号 5. :写信号 6. :存储器或I/O端口访问信号
7.Ready:准备就绪信号 8.INTR:中断请求信号 9. :中断响应信号 10.NMI:非屏蔽中断请求信号 11. :测试信号 12.RESET:复位信号 13.ALE:地址锁存允许信号 14. :数据发送/接收控制信号 15. :数据允许信号 16.HOLD:总线请求信号
17.HLDA:总线请求响应信号 18. :工作模式选择信号 19.CLK:主时钟信号 20.Vcc:CPU+5V电源 21.GND:电源地 最大模式系统时24-31引脚重定义如下: 22. :总线周期状态信号 23. :封锁信号 24. :请求/同意信号 25.QS1,QS0:指令队列状态信号
二、8088CPU引脚功能 8088上有8条数据总线,所以只有AD7- AD0为地址/数据复用,A15-A8只是地址线。 第28脚8086中 ,在8088中为 电平意义相反 第34脚8086中为 ,在8088中为
第三节 存储器结构 8086CPU有20根地址线,它的直接寻址 空间为220 = 1M字节,这1M字节空间按照 00000H - FFFFFH来编址。
一、8086系统中的存储器结构 1、存储器的组织 (1) 8086系统中,1M字节分为2个512K的存储体,一个 存储体中的地址都是偶数地址,叫偶体,另一个都是奇 数地址,叫做奇体。如图2.4所示。 图2.4 存储体与总线的连接
(2)访问一个存储体,只需19位地址,剩下一位 用来区分访问那个存储体。A0= 0为偶存储体, A0=1 为奇存储体。 (3) 信号:由该信号和A0控制读写那个存 储体。
(3)读字节和字 ,如图2. 5所示 图2.5 读存储器中的字节和字操作示意图
图2.6为逻辑段在物理存储器中的位置。每个段 的容量最大为64KB;段之间可以重叠。每个逻辑 段的首地址的低4位为0,即是16的整数倍,将段 首地址的高16位放在段寄存器中,称为“段基址”。 而段内的相对地址也是16位,称为“偏移地址”。 将1MB物理存储器空间也可用另一种分法。将 20位物理地址分为两部分,如上图下面所示。用4 位段号寄存器表示段号;16位寄存器表示段内地 址。这样的缺点是要有一个4位寄存器,二是段 的大小固定为64KB。
3、逻辑地址和物理地址 物理地址20位是唯一 可识别的字节单元地址, 即存储器的实际地址。 逻辑地址是程序设计 时,根据需要产生的一 种地址,它不是真正的 单元地址。逻辑地址由 段基址和偏移地址两部 分组成,它们都是16位 无符号数。 图2.7 段基址和偏移地址
物理地址可以由逻辑地址经过运算得到 例如:段基址 1123H 1124H 偏移地址 0013H 0003H 物理地址 11243H 11243H 可以看出,不同的段基址和偏移地址可 以得到相同的物理地址。 物理地址=段基址×10H+偏移地址 如图2.9所示。
物理地址的形成如图2.9 所示。 逻辑地址的来源如表 2-5中所示的约定。
4、存储单元的地址和内容 存储器通常以字节编址,一个字节单元有一个 唯一的存储器地址,称为物理地址。地址通常以 16进制数表示。如36位地址总线,其地址范围为 00000000~FFFFFFFFH。 一个存储单元中存放的信息称为该单元的内 容,图2.33是存储数据信息的数据类型。可见一 个字要占两个地址,其低位字节 存入低地址,高 位字节存入高地址。 同理,双字是4个字节,要占四个存储器地址, 也是低位字节 存入低地址,高位字节存入高地址。
5、动态浮动码 8086的段存储器结构,使编写与具体位 置无关的或称动态浮动的程序成为可能。 动态浮动使多道程序设计和多任务系统能 特别有效地使用存储器。
6、存储器堆栈 存储器堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来定 位,其中SS存放现行堆栈的基地址,SP指向堆栈顶。堆 栈段是向下生长的,即栈底在堆栈的最高地址处,当堆 栈空时,SP指向栈底。 堆栈操作都是16位操作,它有两种操作,即压栈和出栈 。压栈时,先将SP的值减2,然后将16位数据压入新栈顶; 出栈时,先从当前栈顶取出16位数据,然后SP加2,指向 新的栈顶。如图2.8所示。 图2.8中,执行了三条指令: PUSH AX ;(AX)=1234H PUSH BX ;(BX)= 8765H POP AX ;(AX)= 8765H
由图可知,堆栈栈底的一个字节单元总是不用的。由图可知,堆栈栈底的一个字节单元总是不用的。
7、存储器的专用和保留区 • Intel公司预先占用了存储器的最高和最低地址区域。 • 物理地址0H到7FH的128个字节用来保存中断 号为0H到1FH的中断向量表(32个中断向量) 每个中断向量占4个字节。 • FFFF0H到FFFFFH的16个字节保留给系统的初始化代码。在上电或复位时,执行的第一条指令就在FFFF0H处。通常FFFF0H处存放一条无条件转移指令,转到系统程序的入口处。
二、8088系统中的存储器结构 8088与8086的存储器结构基本相同,区 别如下: (1)8088是准16位微处理器,外部数据总 线是8位的,所以1MB是单一存储体,不分 奇偶体。 (2)8088在16位操作时都要两次访问存储 器。
第四节 系统配置 一、概述 8086/8088CPU有两种工作模式,它们是 由硬件决定的: 时,构成最小模式 时,构成最大模式 最小模式是单微处理器系统。 最大模式是多处理器系统,一个为主, 其他为协处理器,如8087数学协处理器, 8089 I/O协处理器。
8086的一些引脚在不同模式时,其含义是不一样的,如8086的一些引脚在不同模式时,其含义是不一样的,如 表2-6所示。
二、最小模式系统 最小模式是一个以8086为主体的单处理 器系统,所有控制信号均由CPU直接提供。 最小系统的硬件包括一片8284A作为时钟 发生器;三片8282(或74LS373)作为地址 锁存器;两片8286/8287作为数据收发器。 参见图2.10所示。
其中数据双向收发器8286如图2. 15所示,地址锁存器 8282如图2.13所示。
最小模式系统中数据传输方式如表2-7所示。 时钟发生器8284A与CPU的连接如图2.17所示。它产生 恒定的时钟信号,对准备好(Ready)信号和复位信号 (Reset)进行同步。 外界控制信号RDY和RES可以在任 何时候到来,8284A把它们同步在时钟下降沿时输出 READY和RESET信号到CPU。
图2.17中,振荡晶体 通常采用石英晶体振荡 器,内部3分频,得到 4.77MHz输出到CPU。 所以晶体是14.31MHz。
三、最大模式系统 与最小模式区别是系统中增设了总线控 制器8288和总线仲裁器8289。这样可以构 成以8086CPU为中心的多处理器系统。 最大模式的典型配置如图2.18所示。 有关8288和8289可以参考书上的内容, 我们不作要求。