第5章 存储器系统设计
操作系统原理第5章 存储管理

• ⑶最佳适应算法
• 最佳适应算法的空闲链是按空闲区从小到大顺序排 列。为进程选择分区时总是寻找其大小最接近进程 所要求的存储区域。所谓“最佳”是指每次为进程 分配内存时,总是把能满足要求、又是最小的空闲 分区分配给进程,避免“大材小用”。
• 因为每次分配后所切割下来的剩余部分总是最小的, 这样将加速碎片的形成。
• ①如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一 个独立的空闲分区,否则执行②;
• ②合并回收分区及其伙伴分区,从而得到一个尺寸(2I+1)更大的 回收空闲分区,转移到①;
一个伙伴系统内存分配与回收的例子
• 伙伴系统克服了固定分区和动态分区存储管理技术的缺陷。但是伙伴 系统存在一个问题,即内存空间需要不断地进行分裂和合并,频繁的 伙伴分区合并操作会浪费很多时间。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2.4伙伴系统
• 其实现原理如下: • 一个伙伴系统内存的用户可用空间为2U。进程申请存储空间时,
系统总是为其分配大小为2I的一个空闲分区。其中S≤I≤U,2S是系 统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一般 为212。 • 如果进程申请的存储空间大小为K,且2I-1<K≤2I,则将整个2I大小的 分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴 分区,大小为2I-1;再判断K是否满足条件:2I-2<K≤2I-1,若满足条件, 则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙 伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到 产生的分区满足条件I-J≥S并2I-J-1<K≤2I-J,将2I-J大小的分区分配给该 进程;当I-J-1<S时,系统不再分割成两个大小相等的伙伴分区,将 2S大小的分区分配给该进程。 • 当进程执行完毕,释放一个尺寸为2I的分区时,系统用下面的算法 回收该分区。
微机原理第五章 存储器

(00000H~007FFH)
A11
CPU
A19
…
A0~A10
6116 CS
2)部分译码法 系统总线中的地址总线除片内地址外,部分高位地址(不是
全部高位地址)接到片外译码电路中参加译码,形成片选信号。 因此对应于存储芯片中的单元可有多个地址 。
(二)内存与CPU连接时的速度匹配
对CPU来说,读/写存储器的操作都有固定的时序(对8086 来说需要4个时钟周期),由此也就决定了对内存的存取速 度要求。
(三)内存容量的配置、地址分配 1. 内存容量配置
• CPU寻址能力(地址总线的条数) 软件的大小(对于通用计算机,这项不作为主要因素)
2. 区域的分配 RAM ROM 3. 数据组织 (按字节组织) 16位数据,低位字节在前,高位字节在后,存储器奇偶分体 (四)存储器芯片选择 根据微机系统对主存储器的容量和速度以及所存放程序的不同等 方面的要求来确定存储器芯片。它包括芯片型号和容量的选择。
24V
S
SiO2 G
D
字线
Vcc 位 线 输 出
P+ + + P+ N衬底
浮栅MOS
位
D
线
浮栅管
S
特点: 1)只读, 失电后信息不丢失 2)紫外线光照后,可擦除信息, 3)信息擦除可重新灌入新的信息(程序) 典型芯片(27XX) 2716(2K×8位),2764(8K ×8位)……
D0 D8
CE
址
线
存储体
启动
控制逻辑 控制线
读 写
数 据 CPU
电寄
路存
器数
第5章 虚拟存储器 (1)

• (2)驻留性,是指作业被装入内存后,整个作业都一直驻留在内存中,其中 任何部分都不会被换出,直至作业运行结束。尽管运行中的进程被阻塞,而处于 长期等待状态,它们都仍将驻留在内存中,继续占用宝贵的内存资源。
虚拟存储ห้องสมุดไป่ตู้概述
虚拟存储器的定义和特征
虚拟存储器的特征
• (3)虚拟性。是指能够从逻辑上扩充内存容量,使用户所看到的内存容 量远大于实际内存容量。这样,就可以在小的内存中运行大的作业,或者 能提高多道程序度。它不仅能有效地改善内存的利用率,还可提高程序执 行的并发程度。
• 虚拟存储器目前已在大、中、小及微机上广泛采用。虚拟性是以多次 性和对换性为基础的,或者说,仅当系统允许将作业分多次调入内存,并 能将内存中暂时不运行的程序和数据换至盘上时,才能实现虚拟存储器。
虚拟存储器概述
5.1.3 虚拟存储器的实现方法 P167
• 在虚拟存储器中,允许将一个作业分多次调入内存。所以,虚拟存储器的 实现,都建立在离散分配存储管理方式的基础上。目前,所有的虚拟存储器都 是采用下述方式之一实现的。
• 1.分页请求系统
• 分页请求是在分页的基础上增加了请求调页功能和页面置换功能所形成的 页式虚拟存储系统。它允许用户程序只装入少数页面的程序(及数据)即可启 动运行。以后,再通过调页功能及页面置换功能陆续地把即将运行的页面调入 内存,同时把暂不运行的页面换出到外存上。置换时以页面为单位;为了能实 现请求调页和页面置换功能,系统必须提供硬件支持和请求分页的软件。
5.2 请求分页存储管理方式 P168
微机原理习题集答案

第1章 概述1.电子计算机主要由.电子计算机主要由 运算器运算器 、 控制器控制器 、 存储器存储器 、 输入设备输入设备 和 输出设备输出设备 等五部分组成。
等五部分组成。
等五部分组成。
2. 运算器运算器 和 控制器控制器 集成在一块芯片上,被称作CPU CPU。
3.总线按其功能可分.总线按其功能可分 数据总线数据总线 、 地址总线地址总线 和 控制总线控制总线 三种不同类型的总线。
三种不同类型的总线。
4.计算机系统与外部设备之间相互连接的总线称为.计算机系统与外部设备之间相互连接的总线称为 系统总线(或通信总线)系统总线(或通信总线) ;用于连接微型机系统内各插件板的总线称为系统内总线(板级总线) ; CPU 内部连接各寄存器及运算部件之间的总线称为内部连接各寄存器及运算部件之间的总线称为 内部总线内部总线 。
5.迄今为止电子计算机所共同遵循的工作原理是迄今为止电子计算机所共同遵循的工作原理是 程序存储程序存储 和 程序控制程序控制 的工作原理。
的工作原理。
这种原理又称这种原理又称为 冯·诺依曼型冯·诺依曼型 原理。
原理。
第3章 微处理器及其结构1.8086/8088 CPU 执行指令中所需操作数地址由执行指令中所需操作数地址由 EU EU EU 计算出计算出计算出 16 16 16 位偏移量部分送位偏移量部分送位偏移量部分送 BIU BIU BIU ,由,由,由 BIU BIU BIU 最后最后形成一个形成一个 20 20 20 位的内存单元物理地址。
位的内存单元物理地址。
2.8086/8088 CPU CPU在总线周期的在总线周期的在总线周期的T1 T1 T1 时刻,用时刻,用时刻,用A19/S6A19/S6A19/S6~~A16/S3 A16/S3 输出输出输出 20 20 20 位地址信息的最高位地址信息的最高位地址信息的最高 4 4 4 位,而在位,而在其他时钟周期,则输出其他时钟周期,则输出 状态状态 信息。
微机原理第5章存储器系统

3. 工作方式
数ห้องสมุดไป่ตู้读出 字节写入:每一次BUSY正脉冲写
编程写入
入一个字节
自动页写入:每一次BUSY正脉冲写
入一页(1~ 32字节)
字节擦除:一次擦除一个字节 擦除
片擦除:一次擦除整片
72
4. EEPROM的应用
可通过编写程序实现对芯片的读写; 每写入一个字节都需判断READY / BUSY
主存储器 虚拟存储系统
磁盘存储器
8
Cache存储系统
对程序员是透明的 目标:
提高存储速度
Cache
主存储器
9
虚拟存储系统
对应用程序员是透明的。 目标:
扩大存储容量
主存储器
磁盘存储器
10
3. 主要性能指标
存储容量(S)(字节、千字节、兆字节等) 存取时间(T)(与系统命中率有关)
端的状态,仅当该端为高电平时才可写 入下一个字节。
P219例
73
四、闪速EEPROM
特点:
通过向内部控制寄存器写入命令的方法 来控制芯片的工作方式。
74
工作方式
数据读出
读单元内容 读内部状态寄存器内容 读芯片的厂家及器件标记
CAS:列地址选通信号。
地址总线上先送上行地址,后送上列地址,它们 分别在#RAS和#CAS有效期间被锁存在锁存器中。
WE:写允许信号
DIN: 数据输入
WE=0 WE=1
数据写入 数据读出
DOUT:数据输出
49
3. 2164在系统中的连接
与系统连接图
50
三、存储器扩展技术
51
1. 存储器扩展
1 A15 1 A14 1 A13
第 5 章 存储层次

2014-4-22
24
各级存储器的主要主要性能特性
存储器层次 通用寄存器 缓冲栈 存储周期 存储容量 价格$C/KB 访问方式 材料工艺 <10ns <512B 1200 <10ns <512B 80 Cache 主存储器 磁盘存储器 脱机存储器
10~60ns 60~300ns 10~30ms 2~20min 8KB~2MB 32MB~1GB 1GB~1TB 5GB~10TB 3.2 0.36 0.01 块访问 磁表面 0.0001 文件组 磁、光等
2014-4-22 7
• ⑷ 失效处理:程序切换 • 失效:在主存中没有找到要访问的程序 或数据。
• ⑸ 主存 — 辅存层次对应用程序员是完 全透明的,对系统程序员是部分透明的。
2014-4-22
8
• ⑹ 对辅存的访问是通过访问内存实现的 • 主存 — 辅存层次通过辅助软、硬件的支持, 把主存和辅存组织成存储体系。使得从整体 来看,存储体系的速度接近于主存的速度, 而容量和价格接近于辅存。 • 主存 — 辅存层次常被用于实现虚拟存储器, 以便向编程人员提供大量的程序空间。
1.命中率 H
• 命中(Hit):要访问的信息在Mi中可访问到。 • 失效(Miss):要访问的信息在Mi中不可访问 到。 • 在多级层次结构中,要访问的信息在Mi中可访 问到的概率称为Mi的命中率,记为Hi,即命中 的次数与总访问次数之比。 • 失效率(不命中率)1-Hi:失效访问的次数与 总访问次数之比。 • 通常Si越小,Hi越低。
2014-4-22 28
5.2.1
Cache基本工作原理和结构
• 1. Cache的基本结构 • ⑴ Cache存储阵列 • ⑵ 地址映像变换机构 • ⑶ 替换策略实现机构
计算机操作系统教程(张尧学(第三版)第五章

精品课程系列-计算机学院版权所有
关于动态地址重定位可以如下图所示的过程说明:
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
用户程序的虚地址空间 0 100 1KB 0 内存 基地址寄存器 操作系统 22628 22KB 22528
XXXXX
20KB 22KB 22KB+100 XXXXXX
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
精品课程系列-计算机学院版权所有
动态地址重定位
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
动态地址重定位是在程序执行过程中,在CPU访问 内存之前,将要访问的程序或数据地址转换成内存地 址。动态地址重定位依靠硬件地址变换机构完成。
硬件地址转换机构一般由一个“基地址寄存器” 和一个“虚地址寄存器”组成,用户程序不做任何修 改地装入分配给它的存储区域。当调度到用户程序运 行时,则转换成实际的物理地址。
精品课程系列-计算机学院版权所有
分区的分配与释放
制 作 者 : 郭 平 、 王 在 模 、 何 静 媛
分区的分配: 若采用的是一个队列的管理方案,则当一个分区被释放时, 需要在队列中选出一个作业运行,可以有以下几种方案: (1)选出第一个可容纳的作业。该方案虽然实现简单,选择 率高,但是可能会因为一个小作业进入而浪费掉该分区的大部分 存储空间,存储利用率不高。 (2)在队列中找出该分区能容纳的最大的作业。由于每个分 配出的分区产生出的内部碎片小,因此,此方案存储空间的利用 率高;缺点是对小作业不公平。
22kb10022kb300023kbd图51地址变换示意图郭平王在模何静媛其中程序a中的一条入口地址为3000的一条指令为call100其中程序a中的一条入口地址为3000的一条指令为call100在装入内存之后由于程序的起始地址不再为0故程序中的指令需要做相应的转换
微机原理和接口技术-5-2 存储系统

20
Zuo 华中科技大学计算机学院
微机原理与接口技术---Chapter5 存储器
例3 (1)解:如果ROM和RAM存储器芯片都采用 8K×1的芯片,试画出存储器与CPU的连接图。
MREQ# A15-0 R/W#
CPU
D7~D0
OE#
例2解
微机原理与接口技术---Chapter5 存储器
MREQ# A20-0 R/W#
CPU
D7~D0
OE#
A20-18
000
3-8译码器
001
010
A17-0
WE A CS
256K ×8
D
WE A CS
256K ×8
D
WE A CS
256K ×8
D
D7~D0
D7~D0
D7~D0
…
111
WE A CS
如果采用的字节编址方式,则需要20条地址线,因为220=1024K byte。
注:字编址方式时,每个32位字地址能够访问4个字节; 如果按照字节编址方式,则每个地址只对应一个字节, 因此所需的地址数是前者的4倍, 218* 4=220 ,即需要20条地址线)
13
Zuo 华中科技大学计算机学院
微机原理与接口技术---Chapter5 存储器
解:256K*8位SRAM芯片包含18根地址线 (1) 该存储器需要2048K/256K = 8片SRAM芯片; (2) 需要21条地址线, 因为221=2048K, 其中高3位经过译码器输出后用于芯片选择, 低18位作为每个存储器芯片的地址输入。 (3) 该存储器与CPU连接的结构图如下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D0~D7
OE WE
RD
WR
• 2. 8031扩展32KB EPROM和32KB RAM
8 7 P2
8031
8 1Q~7Q ALE G 373 1D~7D P0
PSEN
A0~A7 A8~A14 CE 27256 Q0~Q7
OE
A0~A7 A8~A14 CE 62256
WE
D0~D7
OE
பைடு நூலகம்
8
WR
64KB/8=8KB/根译码线。译码器的输出是互异的,每次只能选中一 个存储器芯片,不会出现地址竞争(地址竞争是几片同类型存储器占用同 一段地址,当CPU从该空间取数时,它们将同时向数据总线提供数据, 导致读取出错)。
5.3 数据存储器扩展设计
执行:MOVX A,@DPTR( 或MOVX @DPTR,A) MOVX A,@Ri (或MOVX @Ri,A) CPU访问外部数据存储器时,ALE信号少出现一次,地址数 据输出后经过悬浮(高阻)状态后,才能进入数据输入或输出状态! 第一周期:P2口输出地址的高8位,P2口输出地址的低8位。ALE下 降沿将低8位地址锁存到外部地址锁存器。随即 PSEN 低电平有效。P0口 由输出变为输入,对应选 中的存储单元中的指令出现在P0口,由CPU 读取。经CPU译码后,知道是对外部数据存储器的操作。随后,P2口输 出外部数据存储器地址的高8位,P0口输出外部数据存储器的低8位。由 ALE锁存,由于是与外部数据存储器打交道。 PSEN 一直为高电平无效(PSEN 信号线接EPROM的 OE 端,选通的是程序存储器!)
5.3.3 数据存储器扩展设计
1. 8051扩展2KB静态RAM,8051内部有ROM,用地址线扩展2KB RAM。
5V Vcc P2 3
CE A10~A8
EA
8051 P0 口
373 1D~8 8D 1Q~8 8Q G 8
8 A7~A0 6116
ALE
6116 的 片 选端 CE 接地,为 常选状态, 地 址 为 0000~07F FH
ALE
8
2764
2764
2764
P0
PSEN
P2.6 0 0 1 P2.5 0 1 0 /Y0 /Y1 /Y2 0 1 1 0000-1FFFH (8000H-9FFFH) 括号内 1 0 1 2000-3FFFH(A000H-BFFFH) 为重叠 1 1 0 4000-5FFFFH(C000H-DFFFH) 区!
00H 内部 128 字节, ~ 7FH 数据存储器(RAM) 0000 ~ FFFFH 外部 64K ,
5.2 程序存储器扩展设计
• 外部程序存储器操作时序
S1
振荡周期 一个机器周期
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
PSEN
P2 PCL 输出
PCH输出
PCH
PCH
PCH
P0
3. 扩展64KB EPROM(全地址译码)
P2.7 (A15) 0 0 0 0 1 1 1 1 P2.6 (A14) 0 0 1 1 0 0 1 1 P2.5 (A13) 0 1 0 1 0 1 0 1 0000~1FFFH 2000~3FFFH 4000~5FFFH 6000~7FFFH 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH 地址空间
0000~0FFFH(4KB) 8000~9FFFH(8KB) 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH
写入16字节数据的子程序,入口参数: DPTR:指向RAM数据区首址; R7: 写入字节数(10H) R0: E2PROM地址低8位 P2: E2PROM地址高8位
从P0口地址/数据复用线中分离出地址来。
• 地址译码器 为什么要用地址译码器:CPU给出一个地址,对应的存储器中有一个 存储器单元与其唯一的对应。通常存储器有多片组成,因此,要对存储器 芯片地址进行编址。 分两个层次:(1) 某个存储芯片的选择片选 片选(8K/片→8片→64K) 片选 (2) 被选中的存储芯片内部存储单元的选择字选 字选。 字选 地址不能重叠,一般就要用译码器的功能。 74LS138的真值表
RD
程序存储器 CE 接地,常选0000~7FFFH, PSEN 有效,数据存 WE RD 储器0000~7FFFH, , 有效,地址重叠,但不会冲突。
3. 程序存储器空间和数据存储器空间的合并(哈佛结构:两个存储器在逻 辑上完全独立,是由于执行不同的指令时,由硬件产生不同的选信号, 从而选通两个不同的逻辑空间)。单片机仿真系统就是采用这种合并 后的一维线性空间,因为程序存放在EPROM中,就无法对EPROM中 的程序进行在线修改,如果把程序存放在RAM中,一面调试一面修改, 方便。 P2.7
8 P2 8031 1Q~8Q ALE G 373 1D~8D P0 8 27256 Q0~Q8 A0~A7 A8~A14 8
°
CE
OE
A0~A7 A8~A14 62256 D0~D7
CE
OE
PSEN
WR
RD
系统的EPROM(27256)0000~7FFFH(管理仿真系统的程序),系统的仿 真ROM和数据存储器为8000~FFFFH。当执行系统的管理程序时, 27256有效(尽管有效 PSEN,但地址不对),62256无效,当执行自己 编的仿真程序时,系统转向62256中执行你输入的程序,当遇到MOVX
CE
A13~A8
PSEN
OE
27128→128/8=16K→210∗24→14根地址线→A0~A13,片内地址由P2.5~P2.0, P0.7~P0.0决定。该片由P2.7选中,存在重叠区域4000~7FFFH(但芯片内地址 不存在,但无关紧要),而且存在地址禁区!(0000~3FFFH)不可能扩展2块。
WE RD 之类的指令时, , 有效。
4. 8051扩展8KBE2PROM(ROM和RAM合并)
P2.7
°
5V
P2 373
5 A12~A8 A0~A7
CE
P0 ALE
2864
I/O0~I/O7
PSEN RD WR
OE WE
内部ROM: 外部ROM,RAM: 重叠区: 1××0 1010 1100 1110
Read Only Memory
功能图:
操作方式: 编程方式:把程序代码固化到EPROM中 编程校验方式:读出EPROM中的内容,校对编程操作的正确性 读出方式:CPU从EPROM中读出指令和常数 (CE = 0, OE = 0) 维持方式:数据端是高阻 ( C E = 1) 。
地址锁存器(74LS373)
WR16:MOVX MOV MOVX INC INC CJNE INC NEXT: DJNZ DEC CNECK:MOVX XRL JB RET
A,@DPTR R4,A @R0,A DPTR R0 R0,#00H,NEXT P2 R7,WR16 R0 A,@ R0 A,R4 ACC.7,CHECK
5.3.2 常用数据存储器芯片介绍
1.静态RAM(SRAM)芯片
13
地址线
VCC
A12~A0
210∗23=8K 双向数据线
8
GND
D7~D0 6264
片选线1
CE
写允许线
WE
读选通线
OE
CS1
片选线2
(当/CE = 0时,选中 CS1=1时,读片)
操作控制 /CE /OE /WE D0~D7 (/CE=0,CS1=1) 读 0 0 1 D0~D7(OUT) 写 0 1 0 D0~D7(IN) 维持 1 X X 高阻 掉电后数据丢失!(同计算机内存) 2. 电可擦可编程只读存储器E2PROM 读写的操作同SRAM,掉电后,数据保存,不会丢失。注意 它不是做程序存储器用!
;将最后一个字节数据取出 ;原始数据比较,陷入死循环! ;最高位不同,再查!
第5章 存储器系统设计 章
5.1 MCS-51存储器系统配置 存储器系统配置
内部 4K , 0000 ~ 0FFFH 8051 / 8751 外部 64K0000 ~ FFFFH 程序存储器(ROM) 0000 ~ FFFFH , = 0 EA 8031外部 64K ,
EA = 1内部 重叠部分由EA区分 EA = 0 外部
指令 输入
地址 输出
指令 输入
PCL 输出
指令 输入
PCL 输出
P2口输出程序存储器的高8位地址PCH(A15~A8),具有锁存功能。 P0口地址/数据复用线,在ALE上升为高电平时,P0口输出程序存储 器的低8位地址(A7~A0),在ALE的下降沿,把A7~A0锁存到外部地 址锁存器中,得到地址信号,接着,P0口由输出变为输入,高8位地 址不变(低8位已锁存),故已选定外部ROM的某一个地址,随即 PSEN 低电平有效,外部ROM通,对应地址单元中的指令字节出现在数据 总线上供CPU读取。
第一个机器周期
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
PSEN
RD / WR
P2
PCH输出
DPH或P 输出 2
PCH
P0
PCL 输出
指令 输入
地址 输出
数据输出 (输入)
PCL 输出
第二周期:第一个ALE信号丢失,若执行的是读指令(MOVX A,@DPTR),P0口由输出变为输入,随即 RD为低电平有效。外部数据 存储器被选通。相应存储单元内容出现在P0口上供CPU读入累加器中, 若执行的是写指令(MOVX @DPTR,A),此时 WR为低电平有效。被写的 数据出现在P0口,并在 WR结束之前一直保持不变,写入相应的外部数 PSEN 有效,读的内容丢弃。 据存储器单元。第二个ALE锁存的地址,