Presentation is loading. Please wait.

Presentation is loading. Please wait.

《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版

Similar presentations


Presentation on theme: "《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版"— Presentation transcript:

1 《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
吴宁 乔亚男 编著 清华大学出版社 出版 王良 宁德师范学院 学习交流群号:

2 第2章 微处理器与总线

3 主要内容: 8088/8086微处理器 特点 主要引线功能和内部结构 内部寄存器 实地址模式下的存储器寻址 总线时序 总线

4 关注点: 8088 CPU能够实现指令并行流水工作的原因; 实地址模式下的存储器地址变换原理;

5 一、8088/8086 CPU的特点

6 1. 8088/8086 CPU的特点 采用并行流水线工作方式 _____通过设置指令预取队列实现 对内存空间实行分段管理
_____将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址 支持多处理器系统 存储器寻址部分 工作模式

7 CPU的两种工作模式 8088可工作于两种模式下 最小模式 最大模式 单处理器模式 多处理器模式 区别?

8 最小模式下的总线连接示意图 • • ALE 地址 地址总线 锁存 8088 时钟发 生 器 CPU 数据 数据总线 收发 控制总线
生 器 8088 CPU 数据 收发 数据总线 控制总线 控制信号较少,一般可不必接总线控制器

9 最大模式下的总线连接示意图  地址 地址总线 锁存 时钟发 生 器 8088 CPU 数据 数据总线 收发 总 线 控制总线 控制器
ALE 地址 锁存 地址总线 时钟发 生 器 8088 CPU 数据 收发 数据总线 总 线 控制器 控制总线 控制信号较多,需要通过总线控制器实现控制信号传输

10 两种工作模式的选择方式 8088是工作在最小还是最大模式由MN/MX引线的状态决 定。 MN/MX=0——工作于最大模式

11 二、8088/8086的引线及功能

12 微机读取一条指令的工作过程: ┇ +1 指令译码 PC 内存单元地址 1000FH B1H 内存储器 数据总线 地址 寄存器 1000FH
地址总线 B1H “读存储器”命令

13 微处理器读取一条指令的控制过程 发出读取数据所在的目标地址 内存储器单元地址 I/O接口地址 发出读控制信号 送出传输的数据 ┇ ┇
B1H 内存储器 A1H I/O接口 地址 CPU 数据 控制信号

14 CPU完成一次访问内存或I/O接口需要:
地址信号 数据信号 各种控制信号

15 主要引线——最小模式下的8088引线 地址线和数据线:
AD0—AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。 A16--A19:高4位地址信号,与状态信号分时复用。 A8—A15 :8位地址信号 不同时,但共用

16 主要的控制和状态信号 WR: 写信号; RD: 读信号; IO/M:为“0”表示访问内存,为“1”表示访问接口;
DEN: 低电平有效时,允许进行读/写操作; DT/R:数据收发器的传送方向控制; ALE:地址锁存信号; RESET:复位信号。

17 例: 如果有: #WR=1,#RD=0,IO/#M=0 表示: CPU当前正在进行读存储器操作

18 READY信号

19 CPU访问一次内存或接口的主要信号 CPU完成一次访问内存或I/O接口需要: 地址信号 数据信号 各种控制信号 内存地址,接口地址
8位数据线,与地址低8位分时复用 各种控制信号 读、写、读写允许、收发器方向控制,地址锁存,访存/访接口控制

20 中断请求和响应信号 INTR:可屏蔽中断请求输入端 NMI: 非屏蔽中断请求输入端 #INTA:中断响应输出端

21 总线保持信号 HOLD: HLDA: 总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。
总线保持响应信号输出端。CPU对HOLD信号的响应信号。

22 三、8088/8086的内部结构

23 1. 组成 8088/8086内部由两部分组成: 执行单元(EU) 总线接口单元(BIU) 第43页图

24 2. 执行单元 运算器 8个通用寄存器 1个标志寄存器 EU部分控制电路

25 执行单元 功能 指令译码 指令执行 暂存中间运算结果 保存运算结果特征 指令的执行 在ALU中完成 在通用寄存器中 在标志寄存器FLAGS中

26 3. 总线接口单元 功能: 从内存中取指令到指令预取队列 负责与内存或输入/输出接口之间的数据传送
指令预取队列是并行流水线工作的基础 负责与内存或输入/输出接口之间的数据传送 在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。

27 结论 指令预取队列的存在使EU和BIU两个部分可同时进 行工作,即: 目的: 实现指令的并行执行 提高了CPU的效率;
降低了对存储器存取速度的要求

28 四、内部寄存器

29 内部寄存器的类型 含14个16位寄存器,按功能可分为三类 8个通用寄存器 4个段寄存器 2个控制寄存器 深入理解:每个寄存器中数据的含义

30 1. 通用寄存器 数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)

31 数据寄存器 8088/8086含4个16位数据寄存器,它们又可分为8个8位寄 存器,即: AX BX CX AH,AL DX BH,BL
CH,CL DH,DL

32 数据寄存器特有的习惯用法 AX: BX: CX: DX: 累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中;
基址寄存器。在间接寻址中用于存放基地址; CX: 计数寄存器。用于在循环或串操作指令中存放计数值; DX: 数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数。

33 地址指针寄存器 SP: BP: … ┇ 堆栈指针寄存器,其内容为栈顶的偏移地址; 基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。
00H 12H SP BP可指向堆栈的任意位置 共同点: 1)默认指向堆栈区 2)多数情况用于存放地址

34 BX与BP在应用上的区别 作为通用寄存器,二者均可用于存放数据;

35 变址寄存器 SI: 源变址寄存器 DI: 目标变址寄存器 变址寄存器在指令中常用于存放数据在内存中的地 址。

36 通用寄存器小结 数据寄存器 AX,BX,CX,DX 通用寄存器 地址寄存器 SP,BP,SI,DI 可以分为两个8位寄存器
主要用于存放中间运算结果 数据寄存器 AX,BX,CX,DX 通用寄存器 地址寄存器 SP,BP,SI,DI 可以存放运算数据,也常用于存放数据的地址

37 2. 控制寄存器 IP FLAGS ┇ 指令指针寄存器,其内容为下一条要取的指令的偏移地址。 标志寄存器,存放运算结果的特征 指令1 指令2
内存中的程序 指令1 指令2 指令n 分析 获取操作数 执行 存放结果 程序计 数器PC (IP) 地址 CPU 取出 操作数 IP 指令指针寄存器,其内容为下一条要取的指令的偏移地址。 FLAGS 标志寄存器,存放运算结果的特征 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF)

38 状态标志位(1) CF(Carry Flag) OF(Overflow Flag) ZF(Zero Flag) SF(Sign Flag)
符号标志位。当运算结果的最高位为1时,SF=l

39 状态标志位(2) PF(Parity Flag) AF(Auxiliary Carry Flag)
奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=l AF(Auxiliary Carry Flag) 辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位),AF=1 仅针对低8位

40 状态标志位例 1 给出以下运算结果及运算后各状态标志位的状态: 10110110 11110100 CF= OF= AF= PF=
CF= OF= AF= PF= SF= ZF= 1 + 1 1 1

41 控制标志位 TF(Trap Flag) IF(Interrupt Enable Flag) DF(Direction Flag)
陷井标志位,也叫跟踪标志位。TF=1时,使CPU处于单步执行指令的工作方式。 IF(Interrupt Enable Flag) 中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。 DF(Direction Flag) 方向标志位。在数据串操作时确定操作的方向。

42 3. 段寄存器 作用 用于存放相应逻辑段的段基地址 需要弄清楚的问题: 什么是逻辑段?为什么要分段? 每个段寄存器中存放的内容=?

43 五、存储器寻址

44 内存储器管理 8088 CPU是16位体系结构的微处理器 可以同时产生16位二进制码 8088 CPU需要管理1MB内存 …
可以直接产生64K个编码 8088 CPU需要管理1MB内存 需要能够产生1M个地址编码 0000H 00H 12H 1 0000H 8088对内存采用分段管理方式

45 内存地址变换 欲实现对1MB内存空间的正确访问,每个 内存单元在整个内存空间中必须具备惟 一地址 物理地址 … 内存地址变换: ┇ 12H
XXXXXH 内存地址变换: 如何将直接产生的16位编码变换为20位物理地址?

46 1. 内存单元的编址(1) 内存每个单元的地址在逻辑上都由两部分组成: 8088为16位结构,所以段地址和偏移地址均为16位
段(基)地址 指示存储单元在整个内存空间中处于哪个区域 段内地址(相对地址/偏移地址) 指示存储单元在段中的相对位置(与段中第1个单元的距离) 31 15 8088为16位结构,所以段地址和偏移地址均为16位 × × × • • • × × × × × × • • • × × × 段基地址(16位)

47 存储器的编址(2) 段基地址: 相对地址(偏移地址) 逻辑段的起始地址称为段首 由偏移地址的定义得段首的偏移地址=
决定存储单元在内存中的位置 相对地址(偏移地址) 该存储单元相对段内第一个单元的距离 逻辑段的起始地址称为段首 每个逻辑段内的第一个单元 00H 12H 第1个单元 由偏移地址的定义得段首的偏移地址=

48 存储器的编址(3) 内存单元地址: × × × • • • × × × × × × • • • × × × 段首的偏移地址: 0000H
31 15 × × × • • • × × × × × × • • • × × × 段基地址(16位) 段首地址(段首的物理地址) 段首的偏移地址: 0000H 19 4 × × × • • • × × × 段基地址(16位)

49 存储器的编址(4) 物理地址: 内存单元在整个内存空间中的惟一地址 例: 段基地址 =6000H 段首地址 偏移地址=0009H 物理地址
数据段 9 00H 60009H 12H

50 2. 实地址模式下的存储器地址变换 + 内存物理地址由段基地址和偏移地址组成 × × × • • • × × × 0 0 0 0
段首地址 由操作系统确定 19 4 物理地址 × × × • • • × × × + × × × • • • × × × 偏移地址 由指令给出 物理地址=段基地址×16+偏移地址

51 3. 段寄存器 作用 用于存放相应逻辑段的段基地址 8086/8088内存中逻辑段的类型 代码段 数据段 附加段 堆栈段 存放指令代码
存放操作的数据 存放操作的数据 存放暂时不用但需保存的数据。

52 段寄存器 CS DS ES SS 段寄存器的值表明相应逻辑段在内存中的位置 代码段寄存器,存放代码段的段基地址
数据段寄存器 ,存放数据段的段基地址 ES 附加段寄存器,存放数据段的段基地址 SS 堆栈段寄存器, 存放堆栈段的段基地址 段寄存器的值表明相应逻辑段在内存中的位置

53 例: 设某操作数存放在数据段,DS=250AH,数据所在单元 的偏移地址=0204H。则该操作数所在单元的物理地址 为: 250AH × H = 252A4H

54 4. 逻辑段与逻辑地址 ┅ 关于逻辑段: 例: 一个物理地址可以对应若干逻辑地址 大小、位置都可改变的“段”
每个内存单元的段地址和偏移地址都可变 例: 8088内存最多可有多少个段? 2500H:0000H 2500H: 00A0H 250AH:0000H 一个逻辑段的大小? 具有惟一物理地址: 250A0H

55 逻辑段与逻辑地址 内存的分段是逻辑分段,不是物理段。各个逻辑段在地址上可以不相 连、可以部分重合,也可以完全重合
每个内存单元具有惟一物理地址,但可能具有多个逻辑地址。 一个逻辑段的默认容量为65KB 16bit 计算机 一个内存单元可以同时处于两个不同类型的逻辑段 一个内存单元可以在不同的时刻属于相同(或不同)类型的段 不同类型段在内存中可以完全重合、部分重合、相邻、不相邻

56 例: 已知: CS=1055H, DS=250AH ES=2EF0H SS=8FF0H 画出各段在内存中的分布。

57 例: CS=1055H DS=250AH ES=2EF0H SS=8FF0H 段首地址=10550H 默认段尾地址= 10550H
代码段 2054FH 250A0H 数据段 2EF00H 附加段 8FF00H 堆栈段

58 逻辑段说明 同一程序模块装入主存时,不同类 型的段可以装入在相同/不同的物 理空间 两个逻辑段完全重合或部分重合
同一程序模块装入主存时,不同类 型的段可以装入在相同/不同的物 理空间 两个逻辑段完全重合或部分重合 两个不同程序模块装入主存时,同 一类型的逻辑段也可以装入相同或 不同的物理空间中 10550H 代码段1 代码段2 250A0H 数据段 2EF00H 附加段

59 5. 存储器的保护模式 保护模式: 保护模式下的内存访问 支持多任务的工作模式,提供了多任务保护机制;
内存段的访问受到限制,不能再随意存取数据段。 保护模式下的内存访问 不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。

60 保护模式下的存储器地址变换

61 6. 堆栈及堆栈段的使用 堆栈: 内存中一个特殊区域,用于存放暂时不用或需要保护的数据。 常用于响应中断或子程序调用。

62 例: 已知 则: 若该段最后一个单元地址为10200H, 则: SS=1000H,SP=0100H 堆栈段的段首地址= 栈顶(偏移)地址=
栈底偏移地址= 10000H 段首 0100H 堆栈区 栈顶 0200H 栈底

63 六、总线时序

64 时序 时序: 总线周期: CPU各引脚信号在时间上的关系 CPU完成一次访问内存(或接口)操作所需要的时间。
一个总线周期至少包括4个时钟周期。

65 七、8088系统总线

66 主要内容: 总线的基本概念和分类; 总线的工作方式; 常用系统总线标准。

67 1. 概述 总线: 是一组导线和相关的控制、驱动电路的集合。是计 算机系统各部件之间传输地址、数据和控制信息的 通道。 地址总线(AB)
数据总线(DB) 控制总线(CB)

68 2. 总线分类 片内总线 片外总线 按相对CPU的位置分 CPU总线 系统总线 外部总线 按层次结构分

69 3. 总线的基本功能 数据传送 仲裁控制 出错处理 总线驱动

70 4. 总线的主要性能指标 总线带宽(B/S): 总线位宽(bit): 总线的工作频率(MHz) 单位时间内总线上可传送的数据量
能同时传送的数据位数 总线的工作频率(MHz) 总线带宽=(位宽/8)(工作频率/每个存取周期的时钟数)

71 本章小结 微处理器的一般构成 8088CPU的主要引线及其功能 8088CPU的内部结构 内部寄存器功能 存储器寻址 堆栈
寄存器中数据的含义 8位寄存器中存放的均为运算的数据 存储器寻址 逻辑地址,段基地址,偏移地址,物理地址 堆栈 栈顶地址,栈底地址,堆栈段基地址


Download ppt "《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版"

Similar presentations


Ads by Google