1 / 81

第二章 微处理器与系统结构

第二章 微处理器与系统结构. 2.1 微处理器性能指标 2.2 8086 微处理器结构 2.3 8086 总线操作及时序 2.4 8086 存储器与 I/O 组织结构 2.5 80X86 微处理器结构. 2.1 微处理器性能指标. 字长: 决定微处理器与外部存储器、输入 / 输出部件之间一次交换的二进制数据位数,即 数据总线的宽度 。如 8 、 16 、 32 、 64 位。 指令数: 8086 的指令集为基本指令集,扩充指令 运算速度: 寄存器加法指令的 执行时间 主频 :即微处理器 时钟频率 。如 Pentium4 2GHz

kiril
Download Presentation

第二章 微处理器与系统结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 微处理器与系统结构 • 2.1 微处理器性能指标 • 2.2 8086微处理器结构 • 2.3 8086总线操作及时序 • 2.4 8086存储器与I/O组织结构 • 2.5 80X86微处理器结构

  2. 2.1 微处理器性能指标 • 字长:决定微处理器与外部存储器、输入/输出部件之间一次交换的二进制数据位数,即数据总线的宽度。如8、16、32、64位。 • 指令数:8086的指令集为基本指令集,扩充指令 • 运算速度:寄存器加法指令的 执行时间 • 主频:即微处理器时钟频率。如Pentium4 2GHz • 同系列的微处理器,主频越高,速度越快。 • 但主频相同的微处理器,速度不一定都相同,因结构有差异 • 外频:微处理器外部总线工作频率。如Pentium4 2GHz的外频为400MHz • 访存空间:决定访存空间。如36位地址线访问236=64GB存储单元,地址线宽度决定了访存空间。

  3. 微处理器主要性能指标 • 高速度缓存(CACHE):L1/L2 • Write-through缓存,只对读有效 • write-back缓存,对读写都有效 • 虚拟存储空间 • 多处理器系统 • 超标量结构:一个时钟周期内执行一条以上的指令。 • 低标量结构:一条指令至少需要一个以上的时钟周期 • 工作电压:微处理器正常工作所需要的电压,早期为5V,后来有3.3V,2.8V,1.5V等。 • 制造工艺:晶体管之间的最小线距, 0.35m, 0.25m, 0.18m, 0.13m等

  4. 微处理器标识

  5. 微处理器

  6. 2.2 8086微处理器结构 • INTEL78年推出(79年推出8088 ) • 4万多个晶体管(8088为2.9万个晶体管) • 时钟频率4.77MHZ • 数据线16位(8088的数据线8位) • 地址线20位 • 40脚DIP封装 • 81年推出Personal Computer(个人计算机、微机)

  7. 通用寄存器 AX AH AL BX BH BL CX CH CL DX DH DL SP BP DI SI 地址加法器 CS DS SS ES IP 暂存器 8086总线 暂 存 器 指令队列 1 2 3 4 5 6 ALU 8088 8086 2.2.1 8086CPU功能结构图 总 线 控 制 逻 辑 20位地址总线 总线接口部件BIU 执行部件EU 16位数据总线 内部总线16位 EU 控 制 器 8位队列总线 标志寄存器

  8. 一、8086执行部件EU • 算术逻辑单元ALU(Arithmetic and Logic Unit) • 进行所有的算术和逻辑运算 • 计算寻址单元的十六位偏移地址EA(Effect Address) • EU控制器 • 接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU各个部件完成规定动作的控制 • 标志寄存器F • 通用寄存器

  9. 二、8086总线接口部件BIU(Bus Interface Unit) • BIU负责与 M、I/O 端口传送数据、地址。 • 访问存储器时,需要生成20位的物理地址; • 要不断从内存中取指令并送到指令队列; • CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,并将数据传送给执行部件;或把执行部件的操作结果传送给指定的M或I/O口

  10. 指令队列缓冲器 • 8088为4字节,8086为6字节。为FIFO(先进先出)结构 • 指令队列至少保持有一条指令,且只要有一条指令,EU就开始执行; • 指令队列只要有空,BIU自动执行取指操作,直到填满为止; • 若EU要进行M/IO存取数据,BIU在执行完现行取指操作周期后进行。 • 当执行转移指令时,EU要求BIU从新的地址中重新取指。队列中原有指令被清除。新取得的第一条指令直接送EU执行,随后取得的指令填入队列

  11. BIU的段寄存器 • 4个16位段寄存器CS、DS、SS、ES用来识别当前可寻址的四个段,每个段的功能各不相同 • CS:Code Segment Register代码段寄存器,指示当前执行程序所在存储器的区域 • DS:Data Segment Register数据段寄存器,指示当前程序所用之数据的存储器区域。 • SS:Stack Segment Register堆栈段寄存器,指示当前程序所用之堆栈位于的存储器区域 • ES:Extra Segment Register附加段寄存器,指示当前程序所用之数据位于的另外存储器区域,在字符串操作中常用到

  12. 指令指针 • IP—Instruction Pointer指令指针寄存器 • 用来存储代码段中的偏移地址; • 程序运行过程中IP始终指向下一次要取出的指令偏移地址 • 通常不能被直接访问,也不能直接赋值,指令中不会出现IP。 • 总线控制逻辑 • 处理器与外界总线联系的转接电路。 • 包括三组总线:20 位地址总线,16/8位双向数据总线,一组控制总线

  13. 16位 CS 20位 IP或偏移地址 + 地址加法器 物理地址 20位 地址生成器 CS左移4位

  14. 三、EU与BIU的协同工作 • 在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队; • 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。

  15. 2.2.2 8086/8088的寄存器结构 15 8 7 0 AX AH AL 累加器 BX BH BL 基址寄存器 CX CH CL 计数寄存器 DX DH DL 数据寄存器 数据寄存器 通用寄存器组 SP 堆栈指针 BP 基址指针 SI 源变址指针 DI 目的变址指针 地址指针及变址寄存器 IP 指令指针 FLAG 标志寄存器 控制寄存器组 CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 段寄存器组

  16. 16位 AH AL 8 8 BH BL CH CL AX 数据寄存器 可分为两个8位,主要用于数据操作 DH DL BX CX DX 地址指针主要用于地址操作 8086的通用寄存器 累加器(Accumulator) AX 基址寄存器(Base) BX 计数寄存器(Count) CX 数据寄存器(Data) DX SP 堆栈指针(Stack Pointer) BP 基址指针(Base Pointer) SI 源变址指针(Source Index) DI 目的变址指针(Destination Index)

  17. 通用寄存器 • 一般,通用寄存器可以用于任何指令的任意操作,可以相互替换 • 16位的数据寄存器可分解为2个8的使用,是同一个物理介质。如果存储了一个16位的数据,不能同时存储另外的1个或2个8位数 • 地址寄存器不能分解为8位使用 • 有些操作规定只能使用某个寄存器,即寄存器的特殊用法

  18. 通用寄存器的特殊用法(默认用法)

  19. D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 OF DF IF TF SF ZF AF PF CF 标志寄存器F • 唯一能按位操作的寄存器 • 只定义了其中9位,另外7位未定义(不用) • 6位状态标志:OF、SF、ZF、PF、CF、AF • 3位控制标志:DF、IF、TF

  20. 状态标志 • 反映指令对数据作用之后,结果的状态(不是结果本身)。这些状态将控制后续指令的执行 • OF(Overflow Flag):溢出标志(指补码),F.11 • OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。 • OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。 • 求解方法:最高位进位次高位进位 • 字节允许范围:-128—+127 • 字允许范围:-32768—+32767

  21. 状态标志 • CF(Carry Flag):进位/借位标志,F.0 • CF=1:最高位需要向前产生进位/借位。 • CF=0:最高位不会向前产生进位/借位。 • AF(Auxiliary Carry Flag):辅助进位标志,F.4 • AF=1:数据的第3位(半个字节)需要向前产生进位/借位。 • AF=0:数据的第3位(半个字节)不会向前产生进位/借位。

  22. 状态标志 • SF(Sign Flag):符号标志,F.7 • SF=1:运算结果的最高位为1,如果为带符号数,则为负数。 • SF=0:运算结果的最高位为0,如果为带符号数,则为正数。 • 带符号数的最高位为符号位;而无符号数的 最高位为数值位。 • ZF(Zero Flag):全零标志,F.6 • ZF=1:运算结果为全0。不包括进位的情况 • ZF=0:运算结果不为0。

  23. 状态标志 • PF(Parity Flag):奇偶标志 • PF=1: 结果的低8位中有偶数个1。 • PF=0: 结果的低8位中有奇数个1。 • 有些运算操作将影响全部状态标志,如加法、减法运算 • 有些操作影响部分状态标志,如移位操作 • 有些指令的操作不影响任何状态标志,如数据传送指令

  24. 例:2个数相加后,分析各标志位的值 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 + 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 运算结果最高位为1 ∴SF=1; 运算结果本身≠0 ∴ZF=0; 低8位中1的个数为偶数个 ∴PF=1; 最高位没有进位 ∴CF=0; 第三位向第四位有进位 ∴AF=1; 次高位向最高位有进位 ,最高位向前没有进位,∴OF=10=1

  25. 例:2个数相减后,分析各标志位的值 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 - 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 运算结果最高位为0 ∴SF=0; 运算结果本身≠0 ∴ZF=0; 低8位中1的个数为奇数个 ∴PF=0; 最高位没有借位 ∴CF=0; 第三位向第四位没有借位 ∴AF=0; 次高位向最高位没有借位 ,最高位向前没有借位,∴OF=00=0

  26. 控制标志 • 控制标志位的值不由数据运算的结果决定,而由指令直接赋值 • 控制标志决定后续指令的执行情况 • DF(Direction Flag):方向控制标志位 • 用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理 • DF=1,每次串处理操作后使变址寄存器SI和DI的值递减,使串处理从高地址向低地址方向处理。 • DF=0,每次串处理操作后使变址寄存器SI和DI的值递增,使串处理从低地址向高地址方向处理。

  27. 控制标志 • IF(Interupt Flag):中断允许/禁止标志位 • IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。 • IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。 • IF的状态对不可屏蔽中断和内部软中断没有影响。 • TF(Trap Flag):跟踪(陷阱)标志位 • TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。 • TF=0, CPU正常工作,不产生陷阱。

  28. 标志名 标志为1 标志为0 OF溢出(是/否) OV NV DF方向(减量/加量) DN UP IF中断(允许/关闭) EI DI SF符号(负/正) NG PL ZF零(是/否) ZR NZ AF辅助进位(是/否) AC NA PF奇偶标志( 偶/奇) PE PO CF进位标志(是/否) CY NC 控制标志与状态标志的区别 • 控制标志的值:由系统程序或用户程序根据需要用指令设置。 • 状态信息:由中央处理器执行运算指令,并根据运算结果而自动设置。X86 CPU也提供了直接设置状态标志之值的指令 调试状态时,标志位之值的符号表示

  29. GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD* HLDA* WR* M/IO* DT/R* DEN* ALE* INTA* TEST READY RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 • /S7总线高位允许/状态(输出,三态) 8086 • 读信号(输出,低电平有效,三态) • 测试信号(输入、低电平有效) 一、通用信号 2.2.3 8086/8088引脚信号 • AD0~AD15地址/数据复用引脚(双向、三态) • A16/S3~A19/S6地址/状态复用引脚(输出、三态) • READY 准备就绪(输入、高电平有效)

  30. S4 S3 当前正在使用的段寄存器 0 0 ES 0 1 SS 1 0 CS或未使用任何段寄存器 1 1 DS 状态信号指示当前使用段

  31. GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD* HLDA* WR* M/IO* DT/R* DEN* ALE* INTA* TEST READY RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8086 • MN/ 最小/最大模式控制输入端 一、8086通用引脚信号 • INTR可屏蔽中断请求信号(输入、高有效) • NMI非屏蔽中断请求(输入,上升沿触发) • RESET复位信号(输入,高电平有效) • CLK时钟输入端

  32. 复位后相关寄存器的初始状态

  33. GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD* HLDA* WR* M/IO* DT/R* DEN* ALE* INTA* TEST READY RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 • 写信号(输出、低电平有效) • 中断响应信号(输出、三态、低电平有效) • M/ 存储器/IO控制信号(输出、三态) 8086 • DT/ 数据发送/接收控制信号输出(输出、三态) • 数据允许信号(输出、三态、低电平有效) 二、8086最小模式引脚信号 • ALE地址锁存允许信号(输出) • HOLD总线保持请求信号(输入、高电平有效) • HLDA总线保持响应信号(输出、高电平有效)

  34. GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD RQ/GT0* RQ/GT1* LOCK* S2* S1* S0* QS0* QS1* TEST READY RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 • 总线周期状态信号(输出、三态) • , 总线请求(输入)/总线请求允许信号(输出)(双向、均为低电平有效 8086 • 总线封锁信号(输出、三态、低电平有效) 三、8086最大模式引脚信号 • QS0,QS1指令队列状态信号(输出)

  35. GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SS0 MN/MX RD HOLD* HLDA* WR* IO/M* DT/R* DEN* ALE* INTA* TEST READY RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 • IO/ 存储器/地址选择线 8088 四、8088引脚信号 • AD0-AD7:数据/低8位地址复用线 • SS0:状态信号

  36. 由第33号引脚(MN/ )控制 2.2.6 8088/8086两种工作模式 • 最小模式:系统只有8086或8088一个微处理器。所有控制信号直接由CPU提供 • 最大模式:由两个或多个微处理器(主处理器和协处理器)组成中(大)规模系统,CPU并不直接向外界提供全部控制信号,而由S0S1S2通过Intel 8288总线控制器提供 • 不同的工作模式下,CPU有一部分引脚具有不同的功能

  37. D Q DI DO 0 0 CLK DI DO 1 1 DI DO 2 2 DI DO 3 3 DI DO 4 4 DI DO 5 5 DI DO 6 6 DI DO 7 7 STB OE 数字逻辑器件 8282 地址锁存器8282内部结构

  38. V 1 20 CC DI DO 2 19 0 0 DI DO 3 18 1 1 STB DI DO 4 17 2 2 DI0 DI DO 5 16 3 3 DI1 DI DO 8282 6 15 4 4 OE DI DO 7 14 5 5 DO0 DI DO 8 13 6 DO1 6 DI DO 9 12 7 7 OE STB 10 11 GND 地址锁存器8282引脚信号 高阻 直通 保持

  39. OE为有效电平(低电平)时,正常输出;为无效电平(高电平)时,输出高阻OE为有效电平(低电平)时,正常输出;为无效电平(高电平)时,输出高阻 地址锁存功能 • STB为高电平期间,输出等于输入;为下降沿时,输出锁存,与输入无关 • ALE为8088/8086地址锁存允许, 高电平有效, 输出,复用线上出现地址时为高电平 • 锁存器的DI0-DI7与CPU的地址/数据复用线相连,STB与ALE相连。ALE为正脉冲时,输出地址;为低电平时,输出锁存,与数据无关

  40. A 0 B 0 8286 A B 1 1 A B 2 2 OE T 传送方向 A B 3 3 0 1 Ai→Bi A B 4 4 0 0 Bi→Ai A B 5 5 1 1 高阻状态 A B 6 6 1 0 高阻状态 A B 7 7 OE T 双向数据收发器8286内部结构 功能表

  41. A V 0 1 20 CC A B 1 2 19 0 A B 2 3 18 1 A B 3 4 17 2 A B 4 5 16 3 8286 A B 5 6 15 4 A B 6 7 14 5 A B 7 8 13 6 OE B 9 12 7 GND T 10 11 双向数据收发器8286引脚信号

  42. 双向数据总线收发器 • 两方面的功能 ⑴、三态输出直接驱动总线 ⑵、具有数据收和发两个方向的传输、隔离控制功能。 • 常用芯片:Intel8286,Intel8287和74LS245 • 8286输入输出同相 • 8287输入输出反相 • 74LS245的功能与8286相同

  43. 最小模式总线连接

  44. 8086CPU MN/MX INTA RD CLK WR READY M/IO RESET ALE BHE A19-A16 AD15-AD0 DEN DT/R CB 8284 时钟 发生器 地 A1 ~ A19 STB OE 8282 锁存器 AB RESET READY BHE A0 D15 ~ D0 CS I/O 接口 CSH 奇地址存储体 CSL 偶地址存储体 T OE 8286 收发器 D7 ~ D0 DB D15 ~ D8 8086最小工作模式下控制核心单元的组成 +5V 读写控制 读写控制 读写控制

  45. IO/M DT/R SS0 操作 1 0 0 中断响应 1 0 1 读I/O 1 1 0 写I/O 1 1 1 暂停 0 0 0 取指令 0 0 1 读存储器 0 1 0 写存储器 0 1 1 无效 最小模式总线状态及操作

  46. 8288总线控制器 • 多CPU 8086/8088系统 • 由总线控制器8288产生总线控制信号 • 基本功能 • 根据S2、S1、S0信号译出对应的状态命令 • 产生地址锁存信号和双向数据驱动器控制信号 • 使总线控制信号浮空,以允许其他总线控制单元控制总线 • 产生简单或级联中断逻辑所需的控制信号

  47. MRDC 8086 S MWTC 0 状态 状态 S 命令 AMWC 1 译码器 信息 S 信号 IORC 2 发生器 IOWC AIOWC INTA CLK DT/R 控制 控制 AEN 控制 DEN 信号 输入 CEN 逻辑 MCE/PDEN 发生器 IOB ALE GND +5V 8288内部结构

  48. IOB 1 20 V CC CLK 2 19 S 0 S 3 18 S 1 2 8288 DT/R 4 17 MCE/PDEN 总线 ALE 5 16 DEN 控制器 AEN 6 15 CEN MRDC 7 14 INTA AMWC 8 13 IORC MWTC 9 12 AIOWC GND 10 11 IOWC 8288引脚信号

  49. 8288 S0 INTA S1 MRDC S2 MWTC DEN IORC DT/R IOWC ALE 8086CPU S0 S1 S2 MN/MX CLK READY RESET BHE A19-A16 AD15-AD0 地 CB 地 8284 时钟 发生器 STB OE 8282 锁存器 A1 ~ A19 AB D15 ~ D0 RESET READY A0 BHE CS I/O 接口 CSH 奇地址存储体 CSL 偶地址存储体 T OE 8286 T OE 8286 收发器 D7 ~ D0 DB D15 ~ D8 8086最大工作模式下控制核心单元的组成 读写控制 读写控制 读写控制

  50. S S S CPU状态 8288输出命令 2 1 0 0 0 0 中断响应 INTA 0 0 1 读I/O端口 IORC 0 1 0 写I/O端口 IOWC AIOWC 0 1 1 暂停 无 1 0 0 取指令 MRDC 1 0 1 读存储器 MRDC 1 1 0 写存储器 MWTC, AMWC 1 1 1 无源状态 无 最大模式总线状态 • S0S1S2总线周期状态信号(输出、三态),经过8288总线控制器译码产生对存储器、I/O端口访问所需的控制信号

More Related