第五章 微处理器
CPU的特点 可以进行算术和逻辑运算 保存少量数据 对指令进行译码并执行规定的动作 与存储器、外设交换数据 提供系统所需要的定时和控制 可以响应其它部件发送过来的中断请求
CPU的内部结构 算术逻辑部件 ( ALU ) 累加器和通用寄存器组 程序计数器、指令寄存器和译码器 时序和控制部件
5.1 8086/8088 CPU Return 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 地 AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK Vcc (5V) AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD (RQ/GT0 ) HLDA ( RQ/GT1 ) WR ( LOCK ) M/IO ( S2 ) DT/R ( S1 ) DEN ( S0 ) ALE ( QS0 ) INTA ( QS1 ) TEST READY RESET 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 地 AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK Vcc (5V) AD15 A16/S3 A17/S4 A18/S5 A19/S6 SS ( HIGH ) MN/MX RD HOLD (RQ/GT0 ) HLDA ( RQ/GT1 ) WR ( LOCK ) M/IO ( S2 ) DT/R ( S1 ) DEN ( S0 ) ALE ( QS0 ) INTA ( QS1 ) TEST READY RESET 8086 CPU 8088 CPU
1 2 3 4 5 6 AH AL BH BL CH CL DH DL SP BP DI SI AX BX CX CS DS SS ES 输入输出 控制电路 ∑ 执行部件(EU) 总线接口部件(BIU) AH AL BH BL CH CL DH DL SP BP DI SI AX BX 通用寄存器组 CX CS DS SS ES IP 内部暂存器 DX 外部总线 执行部分 控制电路 运算寄存器 ALU 标 志 1 2 3 4 5 6
8086 CPU 的特点 最早采用流水线结构的微处理器 采用分时复用的总线结构 存储器空间进行分段管理 具有丰富的指令集 具有丰富的寄存器组 容易构成时序系统 8086/8088 CPU 结构图 8086/8088的分段存储结构 8086 的寄存器组 8086总线周期序列
8086 的 分 段 存 储 结 构 Return 0000H: 0000H, 0001H, 0002H, ……, 000EH, 000FH, 0010H, 0011H, 0012H, ……, 001EH, 001FH, …………………………………………………… FFF0H, FFF1H, FFF2H, ……, FFFEH, FFFFH 段 地 址 段内地址 64K 0001H: 0000H, 0001H, 0002H, ……, 000EH, 000FH, 0010H, 0011H, 0012H, ……, 001EH, 001FH, …………………………………………………… FFF0H, FFF1H, FFF2H, ……, FFFEH, FFFFH …………………………………………………………… FFFFH: 0000H, 0001H, 0002H, ……, 000EH, 000FH, 0010H, 0011H, 0012H, ……, 001EH, 001FH, …………………………………………………… FFF0H, FFF1H, FFF2H, ……, FFFEH, FFFFH
物 理 地 址 的 计 算 物理地址:20根地址线所表示的地址范围 00000H ---- FFFFFH 例如: 52000H 逻辑地址:由段地址和相对于该段的偏移地址共同描述的地址 例如: 5000H:2000H 段地址 偏移地址 段寄存器进行管理 程序设计中使用的,有利于程序设计 逻辑地址 物理地址 计算 寻址 内存 ………….. 00000H FFFFFH
物 理 地 址 的 计 算 例: 将逻辑地址 3366H : 0000H 转换为相应的物理地址 解: 将段地址左移四位 33660H 偏 移 地 址 15 14 13 …… 2 1 0 0 0 0 0 19 … 4 3 … 0 段地址左移四位 段 地 址 ∑ 20 位 的 物 理 地 址 例: 将逻辑地址 3366H : 0000H 转换为相应的物理地址 解: 将段地址左移四位 33660H 计算物理地址 33660H + 0000H = 33660H
数 据 寄 存 器 组 的 用 途 AX ---- 1)作为累加器用,在加法运算中参与运算,结果存于累加其中; 2)所有的I/O指令都使用这一寄存器与外部设备传送信息 BX ---- 作为通用寄存器使用,在计算存储器地址的时候,它经常用作基址 寄存器 CX ---- 1)作为通用寄存器使用; 2)常用来保存计数值,如在移位指令、循环指令和串处理指令中 用作隐含的计数器 DX ---- 1)作为通用寄存器使用; 2)在一些指令中,通常用它来存放数据,所以又称为数据寄存器; 3)在做双字长运算时,将DX和AX组合在一起存放双字长数,用DX 存放高位字; 4)对某些I/O操作时,DX用来存放端口的地址 RETURN
堆 栈 操 作 示 意 图 AA 55 90FFCH 90FFDH 90FFEH 90FFFH 91000H 90FFCH 90FFDH 执行 PUSH 操作之前 90FFCH 90FFDH 90FFEH 90FFFH 91000H 55 AA AH AL 1000H SP 9000H SS SP 执行 PUSH 操作之后 AA 55 90FFCH 90FFDH 90FFEH 90FFFH 91000H 55 AA AH AL 0FFEH SP 9000H SS SP RETURN
标 志 寄 存 器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 进位标志CF:运算后,如果运算的最高位(字节的D7位,字的D15位)有进位或者借位产生,则CF=1,否则CF=0。 零标志ZF:如果上一条指令的运算结果为0,则此标志位置位ZF=1,否则ZF=0 符号标志SF:若运算结果的最高位(字节的D7位,字的D15位)为1,则SF=1,否则,SF=0 溢出标志OF:若发生算数溢出,即运算结果的长度超过了目的单元的容量,丢失了有效数字,则OF=1,否则OF=0 辅助进位标志AF:又称半进位标志,在字节操作时,低四位相高四位有进位或借位,自操作时,低位字节向高位字节有进位或借位,则AF=1,否则AF=0 奇偶标志PF:如果“1”的个数为偶数,则PF=1,否则PF=0
标 志 寄 存 器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 方向标志DF:用于规定字符串操作指令的步进方向。DF=0,表示串操作指令为自动增量指令,即串操作由低位地址向高位地址处理;DF=1,表示串操作指令为自动减量指令,即串操作由高位地址向低位地址处理。 中断允许标志IF:用于控制可屏蔽中断请求,IF=0,表示不允许接受外部可屏蔽中断请求;IF=1,表示允许接受外部可屏蔽中断请求 跟踪标志TF:TF=1,则处理器进入单步方式,便于调试;若TF=0,则程序不能进入单步调试状态
8086 的 寄 存 器 组 AH AL BH BL CH CL DH DL SP BP DI SI AX BX CX DX CS DS 数据寄存器 数据寄存器的用途 CX DX 堆栈指针寄存器,指示堆栈的栈顶的偏移地址 指示寄存器 和 变址寄存器 基址指针寄存器,指示堆栈中某一存储单元的地址 源变址寄存器 目的变址寄存器 用于确定数据段中某一 存储单元的地址 CS DS SS ES IP FLAG 指向当前代码段,指令就是从这段取出的 指向数据段,程序变量存于此段 段寄存器 指向堆栈段,堆栈操作使用这段存储空间 指向附加段,这个段用来存放经过处理的中间数据 指令指针 又称为程序计数器,控制程序中指令执行的顺序 标志寄存器 标志寄存器 RETURN
8086 总 线 周 期 序 列 CPU 往多路复用总线上发出地址信息,以指出存储单元或外设端口的地址 用来输出本总线周期的状态信息,如当前正在使用的段存储器名 多路总线的高4位继续提供状态信息,而多路总线的低 16位上出现由 CPU 写出的数据或者CPU从存储器或外 设端口读入的数据 等待状态:有时,被读写数据的外设或存储器 不能及时地配合CPU传送数据,这时,外设或 存储器会通过”READY”信号线在T3状态启动之 前向CPU发送一个“数据未准备好”的信号,于 是,CPU会在T3状态之后插入若干个Tw 总线周期结束 T1 T2 T3 Tw T4 T1 T1 T2 ……
5.2 IBM PC 微型计算机及其工作原理 IBM PC 中数据的存储 内 存 00000H 一个字节,8位存储单元 相邻的2个8位的存储单元(共16位),构成一个字 内 存 3 3 20002H 2 2 20003H 2 2 3 3 5 5 A A H A A 20000H 5 5 20001H 字(双字)存放的起始地址 …………. FFFFFH
IBM PC 计算机的分段存储器结构
IBM PC 计算机的工作过程 IBM PC 的初始状态 8086/8088 寄存器 上电 / 复位初始状态 标志寄存器 清零 指令指针 (IP) 0000H 代码段寄存器 (CS) 0FFFFH 数据段寄存器 (DS) 堆栈段寄存器 (SS) 附加数据段寄存器 (ES) 指令队列 空 其它寄存器 IBM PC 的初始状态
CISC 技术与 RISC 技术 CISC ---- 复杂指令系统计算机 CISC结构的计算机 CISC 结构计算机的缺点 系列机的发展,使得计算机的指令系统变得越来越复杂 VAX – 11/780 303条指令 缩小与高级语言语义的差异和有利于操作系统的优化 CISC 结构计算机的缺点 指令的使用频度不均衡 限制了机器速度的进一步提高 不利于微处理器先进技术的采用
RISC ---- 简化指令系统计算机 RISC 技术的特征 精简指令集,减少指令的执行周期数 计算机执行程序所需的时间 P = I * C * T I:高级语言程序编译后在机器上运行的机器指令数 C:执行每条机器指令所需的平均机器周期 T:每个机器周期的执行时间 I C T RISC 1.2 ---- 1.4 1.3 ---- 1.4 < 1 CISC 1 4 ---- 10 RISC / CISC 的 I、C、T 统计比较 RISC 的性能优于 CISC 2—5 倍
选取使用频率较高的一些简单指令以及一些很有用但又不复杂的指令 指令长度固定,指令格式种类少,寻址方式种类少 只有取数/存数( LOAD/STORE )指令访问存储器,其余的指令都在寄存器内完成 采用流水线技术,大部分指令在一个时钟周期内完成。 控制器采用组合逻辑控制,不用微程序控制 CPU中有多个通用寄存器 采用优化的编译程序
RISC 与 CISC 的比较 充分利用芯片的面积 提高计算机的运算速度 便于设计、降低成本,提高可靠性 有效支持高级语言程序