A2-4存储器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
30
数据的存储格式
D7 D0
00000H 低地址
78H 56H 12H 34H
00001H
00002H 00003H
00004H
00005H 00006H
1.每个存储单元都有一个地址 2.每个存储单元存放一个字节 的内容 3.0004H单元存放有一个数据 34H表达为: (0004H)=34H
31
• 1MB空间最少能分成多少个段? 每隔64K个存储单元开始一个段, 所以1MB最少可以有: 220÷216=16 个段
19
内存地址
段地址:偏移地址
逻辑地址说明:
逻辑地址
1) 逻辑地址由段地址和偏移地址构成 2) 逻辑地址中的段地址和偏移地址都是16位的 3) 段地址存放到DS,ES,SS,CS段寄存器中
34
小结
• • • • • 存储器系统概述 存储器分类 存储芯片的主要技术指标 存储器的结构 静态SRAM实例
35
多字节数据存放方式
–存放时,低字节存入低地址,高字节存入高地址;
–表达时,用它的低地址表示多字节数据占据的地 址空间。
多字节数据在存储器中占连续的多个存储单元:
80x86 处理器采用“低对低、高对高” 的 存 储 形 式 , 被 称 为 “ 小 端 方 式 Little Endian”
33
8086/8088的I/O端口的组织
20
实例
21
00000H
……
……
各 个 逻 辑 段 独 立
代码段64K CS 0150H DS 4200H SS 1CD0H ES B000H
01500H
……
114FFH 1CD00H
堆栈段64K
……
2CCFFH 42000H
数据段64K
……
51FFFH
B0000H
附加段64K ……
……
BFFFFH
无效
5
8086系统中存储器的结构
BHE
AD0
总线使用情况
0(奇)
0(奇) 1(无效)
0(偶) 同时访问两个存储体,读/写一个字的信息
1(奇) 只访问奇地址存储体,读/写高字节的信息 0(偶) 只访问偶地址存储体,读/写低字节的信息
1(无效) 1
无效
6
存储体与总线的连接图
偶地址存储体固定与低8位数据总线(D7~D0)相连, 又可称为低字节存储体 奇地址存储体固定与高8位数据总线(D15~D8)相连, 又可称为高字节存储体
00001H 00002H …… B0000H
…… FFFFDH FFFFEH FFFFFH
11
45H ……
31H 78H
实例 30位学生
12
实例
0 1. 2. 3. 4. 5. 6. 7. 8. 9.
登 记 薄
每页的要求: 1.不能写名字 2.只能在序号后画√
DB CPU AB CB 译 码
数据端口 状态端口
控制端口
I/O 设备
说明: 1) 每一个端口分配一个端口地址称为端口地址。 2) 一个端口通常称为I/O接口电路内部的一个寄存器或一组寄存器。 3) 8086/8088用地址总线的低16位作为对8位I/O端口的地址线,所以 8086/8088系统可访问的8位端口有65536个。两个编号相邻的8位 端口可组成一个16位的端口。
√ √ √
√ √ √ √ √
第 四 1 组
0 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9
√ √ √ √ √
第 五 √ 1 组 √
0 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9
第 六 1 组
0
. 2 . 3 . 4 . 5 . 6 . 7
√ √ √
. 8 . 9
① 存储器中的存储单元地址可以使用20位的物理地 址表示,也可以使用逻辑地址表示,逻辑地址为 “段地址:偏移地址”的方式表示。
逻辑地址是程序中使用的地址,它由段基址和段
内偏移地址所组成,段基址与段内偏移地址都为 16位的二进制数。
物理地址也叫实际地址或绝对地址,是CPU访问
存储器时实际使用的地址,为20位地址。
15 0
段基址
段寄存器
15
0
0
16位偏移量
加法器
19 0
20位物理地址
1123H 存储单元 物理地址 11230H 11231H 11232H 段基址 …… 1124H 1123FH 11240H 11241H 11242H 11243H
物理地址PA与逻辑地址LA的对应
24
逻辑段的分配
25
说明:
物理地址是由系统转换自动生成的。
26
说明:
② 每个内存单元具有唯一的物理地址,但可 以使用不同的逻辑地址来描述。 如:物理地址00020H
该物理地址又可以由逻辑地址
0002H:0000H
0001H:0010H等来描述。
27
说明:
③ 除非专门指定,一般情况下,各段在存储 器中的分配由操作系统负责。
本章主要内容
存储器系统概述 存储器分类 存储芯片的主要技术指标 存储器的结构
静态SRAM实例
1
存储器组织
……
…….
2
8086系统中存储器的结构
8086/8088有20根地址线,具有220 = 1M字节 的存储器地址空间。 内存单元按照00000H~FFFFFH来编址。 8086系统中,将1M字节的存储空间分成两 个512K字节的存储体,一个存储体中包含偶 数地址,另一个存储体中包含奇数地址,两 个存储体之间采用字节交叉编制方式。
.
. 8 . 9
.
15
地址表示:组号:偏移地址
解决方法
分组:六组
√ √ √ √ √
0
第一 组√
1. 2. 3. 4. 5. 6. 7. 8. 9.
√ √ √ √
第 0 二 √ 1组 √
. 2 . 3 . 4 . 5 . 6 . 7
第 三 1 组
0 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 .
④ 段的大小由程序决定,因为使用16位偏移
地址,所以每个段不能超过64KB,当然也
不一定必须等于64KB。16位段地址存放在
某个段寄存器中。
28
实例
例1:取指令时(CS)=2000H,(IP)=3500H,则被取 指令的物理地址 =(CS)×10H+(IP)=20000H+3500H=23500H. 例2:取数时(DS)=1000H,(EA)=1000H, 则被取数据的物理地址 =(DS)×10H+1000H=10000H+1000H =11000H.
第 0 四 1 组
. 2 . 3
. 4 . 5
. 6 . 7 . 8 . 9 .
√ √ √ √ √
第 0 五 √ 1 组 √
. 2 . 3
第 六 1 组
0
. 2 . 3 . 4 . 5 . 6 . 7
. 4 . 5
. 6 . 7 . 8 . 9 .
√ √ √
. 6 . 7
. 8 . 9 .
. 8 . 9
.
. 8 . 9
.
.
.
16
存储器的分段管理
• 8086CPU有20条地址线
–最大可寻址空间为220=1MB
–物理地址范围从00000H~FFFFFH
– 机器字长16位:仅能表示的地址范围
0000H ~ FFFFH(64KB)
• 8086CPU将1MB空间分成许多逻辑段(Segment)
–每个段最大限制为64KB
29
练习
计算下列逻辑地址对应的物理地址。 ① 2017:000AH ② 2010:007AH ③ 2410:0031H
求物理地址?
解: ① 物理地址(PA)=2017H×10H+000AH=2017AH ② 物理地址(PA)=2010H×10H+007AH=2017AH ③ 物理地址(PA)=2410H×10H+0021H=24121H.
实例
D7 D0
00000H
要求:
00001H 00002H 00003H 00004H 00005H 00006H
32
78H 56H 12H 34H
1.将数据1234H存放到00003H 和00004H两个存储单元中
2. 将数据12345678H存放到 00001-00004四个存储单元中 3.存储单元中数据5678H如何 表示
3
8086系统中存储器的结构
对于任何一个存储体(偶或奇地址存储体),只 需要19位地址码(A19-A1)就够了。 AD0用来区分存储体: AD0=0,表示偶地址存储体, AD0=1,表示奇地址存储体 如访问一个字的信息,则要求同时访问两个存储 体,AD0不够用,增加了一个控制信号BHE,该 信号有效,则选定奇地址存储体
4
8086CPU外部引脚
6、BHE/S7(Bus High Enable/Status) 总线高字节有效信号
该信号三态输出,低电平有效。
用来表示数据总线上的数据是否有效 BHE AD0 总线使用情况
0(奇)
0
0
1
16位数据总线上进行字 传送
高8位数据总线上进行字 节传送
11Βιβλιοθήκη 01低8位数据总线上进行字 节传送
13
解决方法
分组:三组
√ √ √ √ √ √ √ √ √ √
0
第一组
1. 2.
3.
4. 5. 6. 7.
8.
9.
√ √ √ √ √ √ √ √ √ √
0
第二组
1. 2. 3. 4. 5. 6. 7. 8. 9.
√ √ √ √ √ √ √ √ √ √
0
第三组
1. 2. 3.
4.
5. 6. 7. 8. 9.
……
FFFFFH
22
各 个 逻 辑 段 重 叠
…… …… 代码段16K 02000H ……
CS 0200H DS 0400H SS 0500H ES 堆栈段256B …… 数据段2K
00000H
04000H
……
047FFH 05000H
……
050FFH 05FFFH
……
FFFFFH
23
存储器的逻辑地址和物理地址
地址表示:组号:偏移地址
14
解决方法
分组:六组
√ √ √ √ √
第 0 一 √ 1 组 √
. 2 . 3 . 4 . 5 . 6 . 7
第 0 二 1 组
. 2 . 3
√ √ √
. 4 . 5
. 6 . 7 . 8 . 9 .
√ √ √ √ √
第 三 1 组
0 . 2 . 3 . 4 . 5
√ √ √ √ √
9
8088系统中存储器的结构
8088系统中,可直接寻址的空间同样为 1M,但属于一个单一的存储体。 存储体与总线的连接图
特点: 8088CPU每访问一次存储器只能读/写一个字节信 息,因此字信息需要两次访问存储器才能完成读/写 操作。则程序运行速度会比8086系统慢些
10
内存
00000H 90H 89H ……
– 段地址必须是16的倍数(小段的首地址)
17
内存地址
00000H-0000FH 00010H-0001FH 00020H-0002FH
…
…
FFFF0H-FFFFFH
18
1MB空间的分段
• 1MB空间最多能分成多少个段? 每隔16个存储单元就可以开始一个段, 所以1MB最多可以有: 220÷16=216=64K 个段
7
存储体与总线的连接图
BHE 0(奇) 0(奇) 1(无效)
AD0
总线使用情况
0(偶) 同时访问两个存储体,读/写一个字的信息 1(奇) 只访问奇地址存储体,读/写高字节的信息 0(偶) 只访问偶地址存储体,读/写低字节的信息 无效
8
1(无效) 1
存储体与总线的连接图
思考:如何访问存储体中一个字的信息 偶地址开始? 奇地址开始? 偶地址开始的字称“对准字”,奇地址开始的字称“ 非对准字”