您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

掌握CPU的内部结构和特点了解CPU外引线及_兵器/核科学_工程科技_专业资料

39人阅读|1次下载

掌握CPU的内部结构和特点了解CPU外引线及_兵器/核科学_工程科技_专业资料。第2章 8088/8086微处理器 本章主要内容 ? 掌握8088CPU的内部结构和特点; ? 了解8088CPU外部引线及功能; ? 掌握各内部寄存器的功能; ? 掌握8088的存储器组织; ?


第2章 8088/8086微处理器 本章主要内容 ? 掌握8088CPU的内部结构和特点; ? 了解8088CPU外部引线及功能; ? 掌握各内部寄存器的功能; ? 掌握8088的存储器组织; ? 了解8088的工作时序。 2.1 8088/86 概述 ? 8088、8086基本类似 – 16位CPU、地址总线(AB)宽度20位 ? 差别: – 指令队列:8088为4字节,8086为6字节 – 数据总线:8088有8根,8086有16根 ? 8088为准16位CPU:与当时已有的8位外设接口 芯片兼容 ? 本课程主要介绍8088(IBM PC采用) 2.2 8088的内部结构 执行单元( Execute Unit ) 总线接口单元 ( Bus Interface Unit ) 8088的内部结构 BIU 组成 功能:负责与 M、 AH AL I/O 端口传送数据 。 BH BL 通用 4 个段寄存器 ?从内存取指令送到指 寄存器 SP 令队列; 1个指令指针寄存器 (IP) BP SI ? CPU 执行指令时,要 20位地址加法器( ?) DI 配合执行部件从指定 16位 4字节指令队列 的内存单元或者端口 BIU部分控制电路 中取数据,将数据传 执行部分 控制电路 ALU 送给EU; CH DH CL DL 地址 加法 器 ∑ 20位 CS DS SS ES IP 内部暂存器 16位 输入/输出 控制电路 外 部 总 线 8位 1 2 3 4 ?把EU的操作结果存储 标志寄存器 到指定的 M或I/O口。 执行部件 (EU) 指令队列 总线接口部件 (BIU) 三点说明 ? 指令队列 8086 的为6个字节, 8088 的为4个字节。 ? BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据 结构。不论是8086还是8088都会在执行指令的同时从内存中取下 一条或几条指令,取来的指令放在指令队列中. ? 指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指 令。 执行转移指令: BIU 清除指令队列中的内容,从新的地址取 入指令,立即送往执行单元,然后再从新单元开始重新填满队列。 8088的内部结构 通用 寄存器 AH BH CH DH AL BL CL DL SP BP SI DI 16位 ALU 标志寄存器 执行部分 控制电路 执行部件 (EU) 功能:负责指令执行。 20位 ∑ 组成: ?4个通用寄存器 16位 CS ?4个专用寄存器 DS SS 输入/输出 ?1个标志寄存器 控制电路 ES ?算术逻辑单元( 16 位) IP 外 部 内部暂存器 ? 执行部件控制系统: 总 线 接收从BIU指令队 列中取来的指令代码, 1 2 3 4 译码和向 EU 内各有 8位 指令队列 关部分发出时序命令 信号,协调执行指令 规定的操作。 总线接口部件 (BIU) 地址 加法 器 工作原理: 寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 取指令, 执行指令 地 址 加 法 器 地址总线 AB 地 、、、 指令1 指令2 指令3 指令4 、、、 数据1 数据暂存器 指 令 队 列 指令译码器 总线 接口 控制 电路 数据总线 DB 址 译 码 器 运 算 器 控制总线 CB 数据2 数据3 、、、 PSW标志 寄存器 执行部件控制电路 CPU 总线 内存 并行工作方式:流水线 ? ? 指令预取队列的存在使EU和BIU可同时工作 一个简单的2级流水线 ? 新型CPU将一条指令划分成更多的阶段,以便可以 同时执行更多的指令 EU 执行指令1 空闲 执行 2 执行3 BIU 取指令2 取操作数 存结果1 取指令3 取操作数 取指令4 总线 忙碌 忙碌 忙碌 忙碌 忙碌 忙碌 2.3 存储器组织 存储器的操作完全 基于物理地址。 . 物理地址 . 60000H 60001H 60002H 60003H 60004H . . . ?问题: 8088的内部总线和内部 寄存器均为16位,如何 生成20位地址? ?解决:存储器分段 F0H 12H 1BH 08H 1.存储器分段 低地址 段地址 段地址 段地址 段地址 段i-1 段i 段i+1 最大64KB 最小16B 16位二进制数可表示 216=65536=64K个地址 范围:0000H ~ FFFFH 高地址 2.物理地址的形成 ? 段地址:只取段起始地址高16位值。 ? 偏移地址:段内某内存单元物理地址相对段起 始地址的偏移值。 60000H 段首地址(20位) ××× ??? ××× 0000 60002H 00H 12H 段地址(16位) 物理地址=段地址×16+偏移地址 物理地址=段地址×10H+偏移地址 逻 辑 段地址: 2000H 地 址 段内偏移地址: 5F62H 20000H ...... 25F60H 25F61H 25F62H 25F63H 2FFFFH 逻辑地址与物理地址 段寄存器:专门存放段地址 代码段寄存器:CS 数据段寄存器:DS 堆栈段寄存器:SS 附加段寄存器:ES DS ES SS CS IP 地 址 加 AB 法 器 存储器 0200H 0400H 0480H 02000H 8K代码 04000H 2K数据 2K堆栈 04800H 指令的地址固定由CS和IP决定: 例:开机或RESET后,( CS ) = FFFFH,( IP ) = 0。 故8088执行的第一条指令所在内存的物理地址为: PA = ( CS ) × 10H + ( IP ) = FFFF H × 10H + 0 = FFFF0H 3. 逻辑地址与物理地址 ?逻辑地址的组成 ?逻辑地址的来源 操作类型 默认段址 偏移地址 CS IP 取指令 SS SP 堆栈操作 SS BP间址 有效地址EA DS 存取变量 有效地址EA 物理地址计算 (CS)?16d+(IP) (SS) ?16d+(SP) (SS) ?16d+EA (DS )?16d+EA 段地址:偏移地址 [例] ? 已知CS=1055H,DS=250AH, ES=2EF0H,SS=8FF0H,DS 10550H 段有一操作数,其偏移地址为 0204H, 1)画出各段在内存中的分布; 250A0H 2EF00H 2)指出各段首地址; 3)该操作数的物理地址=? 解: 操作数的物理地址为: 250AH×10H + 0204H = 252A4H 地址252A4H = 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 B 8FF00H SS CS DS ES 20根地址线: A19 A17 A12 A0 练习 1. 8088CPU中,若(DS)=6100H,则当 前数据段的起始地址是什么?末地址是什么? 段的起始地址: 61000H 段的末地址: 61000H + ( 10000H – 1 ) = 61000H + 0FFFFH = 70FFFH 练习 2. 给定一个存放数据的内存单元的偏移 地址是20C0H,(DS)=0C00EH,求出该 内存单元的物理地址。 物理地址=(DS)×10H + EA =0C00E0H+20C0H =0C21A0H 练习 3.某程序数据段中有一个字数据1234H,若已 知DS=5AA0H,它的偏移地址为245AH,试画 出它在存储器中的存放情况。 物理地址: =(DS)×10H+EA =5AA00H+245AH =5CE5AH 存储器 34H 12H 5CE5AH 5CE5BH (5CE5AH)=1234H 4. 内存单元内容的存放及表示 ? 一个内存单元存放一个字节信息 ( 01000H ) = 1EH ( 01001H ) = 2FH 内存 …... 01000H 1E 01001H 2F 01002H …... ?当往内存写一个字数据时,写入规则是: 低字节到低地址单元 ,高字节到高地址单元 例 : 将字数据2F1EH写入从01000H开始的内存单元 ( 01000H ) = 2F1EH 同一地址既可看作字节单元地址, 又可看作字单元地址。 AH BH CH DH SI DI AL BL CL DL AX BX CX DX 累加器 Accumulator 基数寄存器 Base 计数寄存器 Count 数据寄存器 Data 变 址 寄存器 数 据 寄存器 BP SP DS ES SS CS IP PSW 源变址寄存器 Source Index 目的变址寄存器 Destination Index 基址指针寄存器 Base Point 堆栈指针寄存器 Stack Point 通 用 寄 存 器 2.4 8088 指 针 寄存器 数据段寄存器 Data Segment 附加段寄存器 Extra Segment 堆栈段寄存器 Stack Segment 代码段寄存器 Code Segment 指令指针寄存器 Instruction Pointer 状态标志寄存器 Processor Status Word 段寄存器 的 内 部 寄 存 器 控制寄存器 段寄存器 用于存放逻辑段的段基地址 CS:代码段寄存器 代码段用于存放指令代码 DS:数据段寄存器 ES:附加段寄存器 数据段和附加段用来存放操作数 SS:堆栈段寄存器 堆栈段用于存放返回地址, 保存寄存器内容,传递参数 指令指针IP ? IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 ? 它与代码段寄存器CS联用,确定下一条 指令的物理地址 ? 计算机通过CS : IP寄存器来控制指令序 列的执行流程 ? IP寄存器是一个专用寄存器 数据寄存器 ? 8088含4个16位数据寄存器,它 们又可分为8个8位寄存器,即: AX BX CX DX AH,AL BH,BL CH,CL DH,DL 对其中某8位的操作,不影响另外对应8位的数据 常用来存放参与运算的操作数或运算结果 指针寄存器 ? ? ? ? 指针寄存器用于寻址内存堆栈内的数据 SP:堆栈指针寄存器,其内容为栈顶的偏移地址; SP不能再用于其他目的,具有专用目的。 BP:基址指针寄存器,表示数据在堆栈段中的基 地址。 ? BP常用于在访问内存时存放内存单元的偏移地址。 ? SP和BP寄存器与SS段寄存器联合使用以确定堆栈段 中的存储单元地址 变址寄存器 ? ? ? ? SI:源变址寄存器 DI:目的变址寄存器 常用于指令的间接寻址或变址寻址。 串操作类指令中,SI和DI具有特别的 功能 标志寄存器 ? FLAGS:标志寄存器 – 状态标志:存放运算结果的特征 – 控制标志:控制某些特殊操作 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF) 15 ~ 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 进位标志CF(Carry Flag) ? 当运算结果的最高有效位有进位(加法) 或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 ? 针对无符号整数,判断加减结果是否超出 表达范围 8位:0~+255 16位:0~+ 65535 3AH + 7CH=B6H, CF = 0 AAH + 7CH=(1)26H, CF = 1 溢出标志OF(Overflow Flag) ? 若算术运算的结果有溢出,OF=1;否则 OF=0 ? 针对有符号整数,判断加减结果是否超出 表达范围 8位:-128~+127 16位:-32768~+ 32767 3AH + 7CH=0B6H, OF = 1 AAH + 7CH=(1)26H, OF = 0 零标志ZF(Zero Flag) ? 若运算结果为0,则ZF = 1; 否则ZF = 0 3AH + 7CH=B6H, 84H + 7CH=(1)00H, ZF = 0 ZF = 1 符号标志SF(Sign Flag) ? 运算结果最高位为1,SF = 1;否则SF = 0 3AH + 7CH=B6H, SF = 1 84H + 7CH=(1)00H, SF = 0 有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态 奇偶标志PF(Parity Flag) ? 当运算结果最低字节中“1”的个数为 零或偶数时,PF = 1;否则PF = 0 3AH + 7CH=B6H , PF = 0 PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作 辅助进位标志AF(Auxiliary Carry Flag) ?运算时 D3 位(低半字节)有进位或 借位时,AF = 1;否则AF = 0。 ? 这个标志主要由处理器内部使用,用于 十进制算术运算调整指令中,用户一般 不必关心 3AH + 7CH=B6H, AF = 1 中断允许标志IF(Interrupt-enable Flag) ? 用于控制外部可屏蔽中断是否可以被 处理器响应: IF=1,允许中断; IF=0,禁止中断。 ? CLI指令复位中断标志:IF=0 ? STI指令置位中断标志:IF=1 陷阱标志TF(Trap Flag) ? 用于控制处理器进入单步操作方式: TF=0,处理器正常工作; TF=1,处理器单步执行指令。 ? 单步执行指令 —— 处理器在每条指令执行结束时, 便产生一个编号为1的内部中断 ? 这种内部中断称为单步中断 ? 所以TF也称为单步标志 ? 利用单步中断可对程序进行逐条指令的调试 ? 这种逐条指令调试程序的方法就是单步调试 方向标志DF(Direction Flag) ? 用于串操作指令中,控制地址的变化方向: DF=0,存储器地址自动增加; DF=1,存储器地址自动减少。 ? CLD指令复位方向标志:DF=0 ? STD指令置位方向标志:DF=1 例:D75FH+8046H 执行后,状态标志各是多少? D75FH = 1110 0111 0101 1111 8046H = 1000 0000 0100 0110 1 1 11 11 0110 0111 1010 0101 结果:C=1, Z=0, P=0, A=1, O=1, S=0 2.5 8088 的引脚信号及功能 指引脚信号的定义、 信号从芯片向外输出, 作用;通常采用英文 ? 外部特性表现在其引脚信号上,学 起作用的逻辑电平 还是从外部输入芯片, 单词或其缩写表示 习时请特别关注以下几个方面: 高、低电平有效 或者是双向的 输出正常的低电平、 ?引脚的功能 上升、下降边沿有效 高电平外,还可以输 ?信号的流向 出高阻的第三态 ?有效电平 ?三态能力 1. 8088的两种工作模式 ? 两种模式构成两种不同规模的应用系统 ? 最小模式 – 构成小规模的应用系统——单处理器系统 – 8088本身提供所有的系统总线信号 ? 最大模式 – 构成较大规模的应用系统——多处理器系统,例 如可以接入数值协处理器8087 – 控制信号较多,8088和总线控制器8288共同形成系 统总线信号 1. 8088的两种模式(续) ? 两种模式利用MN/MX*引脚区别 – MN/MX*接高电平为最小模式 – MN/MX*接低电平为最大模式 – 硬件决定工作方式 ? 两种模式下的内部操作并没有区别 – 本书以最小模式展开基本原理 – IBM PC/XT采用最大模式 通常在信号名称加 上划线(如:MX)或星号(如:MX*) 表示低电平有效 8088的引脚图 GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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* (HIGH) MN / MX* RD* HOLD (RQ)*/ GT0*) HLDA (RQ1* /GT1*) WR* (LOCK*) M / IO ( S2* ) DT / R* ( S1* ) DEN ( S0 ) ALE INTA TEST* READY RESET 8088 双列直插式封装 40根引脚 工作频率5MHz 工作电源+5V 2. 最小模式的引脚信号 1) 2) 3) 4) 5) 数据和地址引脚 读写控制引脚 中断请求和响应引脚 总线请求和响应引脚 其它引脚 微机的总线结构 ? 单总线结构 简单,但总线竞争严重 M CPU I/O接口 M 接口 接口 “引脚”小结 CPU引脚是系统总线的基本信号 可以分成三类信号: ? 8位数据线:D0~D7 ? 20位地址线:A0~A19 ? 控制线: – ALE、IO/M*、WR*、RD*、READY – INTR、INTA*、NMI,HOLD、HLDA – RESET、CLK、Vcc、GND 2.6 微 处 理 器 子 系 统 系 统 总 线 形 成 与 控 制 电 路 系统总线的形成 系统总线 地址总线AB 数据总线DB 控制总线CB 存储器 I/O接口 I/O设备 微处理器级总线 最小模式的总线形成 最小模式——仅支持单处理器 ? 主要需解决: ? 地址与数据的分离 ? 地址锁存 ? 电路实现方案 ? ? 用3片8位的锁存器8282实现地址锁存。ALE为锁 存控制信号,OE*=0使锁存的地址直接输出; ? 用1片双向三态门8286用作数据总线驱动和隔离, DT/R*作为方向控制,DEN*作为开门信号; 其他控制信号由8088直接产生。 ? 三态缓冲器(三态门) A F T 具有单向导通和三态的特性 A T F A T F A T F 表示反相或低电平有效 双向三态缓冲器 具有双向导通和三态的特性 A B T OE*=0,导通 T= 1 A → B T= 0 A ← B OE*=1,不导通 OE* D触发器 电平锁存: D C D C Q Q Q Q S D Q C Q R 电平锁存 上升沿锁存 高电平通过,低电平锁存 上升沿锁存: 通常用负脉冲触发锁存 负脉冲的上升沿 带有异步置位清零的 电平控制的锁存器 三态缓冲锁存器(三态锁存器) A D C T 锁存环节 Q B 缓冲环节 (1)20位地址总线—— 最小模式下的连接示意图 采用3个三态锁存器8282进行锁存和驱动 (2)8位数据总线—— 数据收发器8286进行驱动 (3)系统控制信号—— 由8088引脚直接提供 系统总线信号 MN/MX* IO/M* RD* WR* +5V IO/M* RD* WR* A19/S6~A16/S3 8088 A15~A8 AD7~AD0 ALE DT/R* DEN* STB STB STB 8282 8282 8282 OE* OE* OE* A19~A16 A15~A8 A7~A0 D7~D0 T 8286 OE* 2.7 8088的总线时序 ? CPU在时钟信号的控制下工作。 ? 时钟信号是按一定电压幅度、一定时间间 隔发出的脉冲信号. ? 时序:CPU各引脚信号在时间上的关系。 CLK 8088的总线时序(续) ? 时序:CPU各引脚信号在时间上的关系。 ? 指令周期是指一条指令经取指、译码、读写操 作数到执行完成的过程。 若干总线周期组成一个指令周期。 ? 总线周期是指CPU完成一次访问内存(或接口)操 作所需要的时间。 一个总线周期至少包括4个时钟周期。 ? 时钟周期:相邻两个脉冲之间的时间间隔,是 计算机内部最小的时间单位,用Ti表示。 ? 当需要延长总线周期时需要插入等待状态Tw 最小组态的总线时序 微处理器最基本的4种总线周期: 存储器读总线周期 存储器写总线周期 I/O读总线周期 I/O写总线周期 存储器写总线周期 T1位存储器地址 T2 T T4 T1状态——输出20 A 319~A 0 IO/M*输出低电平,表示存储器操作; IO/M* CLK ALE输出正脉冲,表示复用总线输出地址 S6 ~ S3 A19~A16 AT ~ A /S 19/S 6 16 3 2状态——输出控制信号WR*和数据D7~D0 A15~A8 A A8 ——检测数据传送是否能够完成 15~ T 和 Tw 状态 3 A7~ A0 AD AD0 完成数据传送 T4 状态 7~—— 输出数据 ALE WR* 存储器读总线周期 CLK T1 T2 T3 T4 IO/M* T1状态 ——输出20位存储器地址A19~A0 S6 ~ S3 A19~A16 A19/S6~IO/M* A16/S3 输出低电平,表示存储器操作; A15~A8 ALE A15 ~A输出正脉冲,表示复用总线输出地址 8 T2AD 状态 ——输出控制信号 A7~A0 RD* 7~AD0 输入数据 T3和Tw 状态——检测数据传送是否能够完成 ALE T4状态 ——前沿读取数据,完成数据传送 RD* 插入等待状态Tw T1 T2 T3 Tw Tw Tw T4 CLK READY 前沿检测 加入TW的总线周期 总线周期 1~2个 若干个 T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw Tw T4 Ti Ti 总线周期 总线周期 基本总线周期由4个T状态组成:T1、T2、T3、T4 等待时钟周期Tw,在总线周期的T3和T4之间插入 空闲时钟周期Ti,在两个总线周期之间插入 本章小结 1.了解CPU的基本功能。 2.掌握CPU的内部逻辑结构及基本工作过程。 3.了解流水线技术的初步概念。 4.掌握微机中存储器组成结构 (分段),逻辑地 址与物理地址概念。 5.了解CPU的外部引脚,掌握主要引脚功能。 6.掌握时钟周期、总线周期及指令周期的定义. 7.了解CPU读、写操作时序。
+申请认证

文档贡献者

杰猫

住院医师

690918 6106204 2.9
文档数 浏览总量 总评分

喜欢此文档的还喜欢