Download presentation
Presentation is loading. Please wait.
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位寄存器中存放的均为运算的数据 存储器寻址 逻辑地址,段基地址,偏移地址,物理地址 堆栈 栈顶地址,栈底地址,堆栈段基地址
Similar presentations