存储器层次结构优秀课件
合集下载
存储器层次结构优秀课件
![存储器层次结构优秀课件](https://img.taocdn.com/s3/m/e09fc5bca98271fe900ef96f.png)
在整个刷新间隔内,前一段时间重复进 行读/写周期或维持周期,等到需要 进行刷新操作时,便暂停读/写或维 持周期,而逐行刷新整个存储器
集中时间刷新。有死区时间存 在,逐行刷新。适合于高 速存储器
分散式
把一个存储系统周期分为两半,周期前 逐行刷新。没有死时间。浪费
半段时间tm用来读/写操作或维持信
比较大,因为刷新时间比
存储器层次结构
3.1 存储器的分类
➢ 按存储介质分: • 半导体存储器、磁表面存储器、光存储器
➢ 按读写性质分: • 随机读写存储器(RAM)
✓静态随机存储器(SRAM);动态随机存储器(DRAM) ✓由于它们存储的内容断电则消失,故称为易失性存储器
• 只读存储器(ROM)
✓掩膜型ROM,EPROM,EEPROM(包括Flash EPROM) ✓由于其内容断电也不消失,故称为非易失性存储器
• 包含性原则:处于内层(靠近CPU)存储器中的 信息一定包含在各外层的存储器中,即内层存储 器中的全部信息一定是各外层存储器信息中一小 部分的副本。
3.3 半导体随机存取存储器
3.3.1 静态随机存储器(SRAM)
(1)静态随机存储单元
➢ SRAM静态存储单元的每个存储位需要4~6个晶体管 组成。比较典型的是六管存储单元,即一个存储单 元存储一位信息“0”或“1”。
2ms 128行
≈15.6
微秒
每隔15.6微秒提一次刷新请求, 刷新一行;2毫秒内刷新完所有
行。
R/W R/W
刷新 R/W
R/W 刷新 R/W
ቤተ መጻሕፍቲ ባይዱ
15.6 微秒
15.6 微秒
15.6 微秒
刷新请求 (DMA请求)
刷新请求 (DMA请求)
存储器层次结构课件
![存储器层次结构课件](https://img.taocdn.com/s3/m/2baa443d7ed5360cba1aa8114431b90d6c858909.png)
优化成本:通过降低存储器的成 本来提高系统的性价比。例如, 使用更便宜的存储元件、优化设
计和批量生产等。
04 存储器层次结构性能评估 与优化方法
存储器层次结构性能评估指标
01
02
03
04
读取命中率
评估层次结构在读取操作中的 性能,衡量从存储器中获取所
需数据的速度和效率。
带宽
评估层次结构在数据传输方面 的性能,包括每秒传输的字节 数和每秒进行的操作次数。
存储器层次结构特点:存储器层次结构具有以下特点:1)访问速度逐层递减, 价格逐层递增;2)离CPU越近的存储器访问速度越快,价格也越高;3)离CPU 越远的存储器访问速度越慢,价格也越低。
存储器层次结构原理及应用
存储器层次结构应用场景- 嵌入式系统
服务器和数据中心:在服务器和数据中心中,由于需要处理大量的数据 和要求,通常采用较大的存储器层次结构,如主存储器、辅助存储器和
磁盘优化
采用更高效的磁盘技术 ,如SSD、HDD等,提 高磁盘I/O性能和存储容
量。
系统优化
通过优化操作系统、文 件系统和网络协议等,
提高整体系统性能。
存储器层次结构性能提升策略
负载均衡
通过公道分配负载,避免系统 过载或空载,提高整体性能。
缓存预热
在程序运行前,将热点数据提 前加载到缓存中,提高读取命 中率。
散布式文件系统等。
个人计算机:在个人计算机中,由于需要处理多种任务和应用程序,通 常采用适中的存储器层次结构,如高速缓存、主存储器和硬盘驱动器等 。
存储器层次结构原理及应用
存储器层次结构优化策略- 优化 访问速度
优化容量:通过增加存储容量来 满足不断增长的数据需求。例如 ,使用更大容量的硬盘驱动器、 内存模块和散布式文件系统等。
计算机内部存储器课件
![计算机内部存储器课件](https://img.taocdn.com/s3/m/4ba8ac88a0c7aa00b52acfc789eb172dec63994e.png)
THANKS 感谢观看
详细描述
辅助存储器是计算机中用于长期存储数据的设备,通常包括硬盘、固态硬盘(SSD)等。与主存储器相比,辅助 存储器的访问速度较慢,但它具有较大的容量和较低的成本。辅助存储器通常用于存储操作系统、应用程序、用 户数据等。
03 存储器层次结构
存储器层次结构的概念
存储器层次结构是指计算机系统中各 种存储器从上到下形成的多层次结构 ,包括CPU寄存器、高速缓存、主存 、硬盘等。
存储器的性能指标
容量
存储器的容量决定了可以存储的数据和程序的大 小。
速度
存储器的速度决定了数据读取和写入的速度,直 接影响到计算机的运行效率。
可靠性
存储器的可靠性决定了数据存储的安全性和稳定 性。
02 计算机内部存储器类型
寄存器
总结词寄存器是计算机中Fra bibliotek小容量的存储单元,用于存储指令或数 据。
详细描述
存储器层次结构的实现方式
01
实现存储器层次结构的方式有多种,其中最常见的是分级 存储体系。
02
分级存储体系将存储器分为多个层次,每个层次都有不同 的访问速度和容量。例如,CPU寄存器和高速缓存位于最 高速的层次,主存位于较高速的层次,而硬盘则位于较低 速的层次。
03
在分级存储体系中,数据在各个层次之间进行迁移和替换 ,以保证CPU能够快速访问到所需数据。
存储器技术的未来发展趋势
向更高密度发展
01
随着技术的进步,存储器的容量和密度将不断提高,以满足不
断增长的数据存储需求。
向更快速度发展
02
新型存储器技术如PCM和RRAM等具有更高的速度,未来存储
器的速度将不断加快。
向更低功耗发展
计算机系统结构 存储层次 5.存储器的层次结构 PPT
![计算机系统结构 存储层次 5.存储器的层次结构 PPT](https://img.taocdn.com/s3/m/98c6f5429e31433238689369.png)
弥补主存容量的不主存与cpu的速度差距51存储器的层次结构会计制度设计的设计主存辅存层次存储层次cpu对第二级的访问方式比较项目存储管理实现访问速度的比值第一级和第二级典型的块页大小失效时cpu是否切换cache主存层次主存辅存层次为了弥补主存速度的不足为了弥补主存容量的不足主要由专用硬件实现主要由软件实现几比一几百比一几十个字节几百到几千个字节可直接访问均通过第一级不切换切换到其他进程cache主存与主存辅存层次的区别51存储器的层次结构
或 TA=TA1+F TM TA1 ── 命中时间 TM ── 失效开销
会计制度设计的设计
大家有疑问的,可以询问和交流
可以互相讨论下,但要小声点
5.1 存储器的层次结构
5.1.3 “Cache-主存”和“主存-辅存” 层次
1. 从主存的角度来看 “Cache-主存”层次:弥补主存速度的不
足 2.““主C存ac-he辅-存主”存层”次层:次 弥补主存容量的不足
◆ 主存与CPU的速度差距
会计制度设计的设计
◆ “Cache - 主存”层次
3. “主存-辅存”层次
5.1 存储器的层次结构
“Cache-主存”与“主存-辅存”层次的区
别
存储层次
比较项目
“Cache -主存”层次
“主存-辅存”层次
目的
为了弥补主存速度的不足 为了弥补主存容量的不足
存储管理实现
1. 每位价格C
C= ───CC─12SSS─112++ S率 H 和失效率 F H=N1/(N1+N2)
N1 ── 访问M1的次数 N2 ── 访问M2的次数 失效率 F=1-H
会计制度设计的设计
3. 平均访问时间 TA TA=TA1+(1-H )TM
或 TA=TA1+F TM TA1 ── 命中时间 TM ── 失效开销
会计制度设计的设计
大家有疑问的,可以询问和交流
可以互相讨论下,但要小声点
5.1 存储器的层次结构
5.1.3 “Cache-主存”和“主存-辅存” 层次
1. 从主存的角度来看 “Cache-主存”层次:弥补主存速度的不
足 2.““主C存ac-he辅-存主”存层”次层:次 弥补主存容量的不足
◆ 主存与CPU的速度差距
会计制度设计的设计
◆ “Cache - 主存”层次
3. “主存-辅存”层次
5.1 存储器的层次结构
“Cache-主存”与“主存-辅存”层次的区
别
存储层次
比较项目
“Cache -主存”层次
“主存-辅存”层次
目的
为了弥补主存速度的不足 为了弥补主存容量的不足
存储管理实现
1. 每位价格C
C= ───CC─12SSS─112++ S率 H 和失效率 F H=N1/(N1+N2)
N1 ── 访问M1的次数 N2 ── 访问M2的次数 失效率 F=1-H
会计制度设计的设计
3. 平均访问时间 TA TA=TA1+(1-H )TM
计算机组成原理4第四章存储器PPT课件精选全文
![计算机组成原理4第四章存储器PPT课件精选全文](https://img.taocdn.com/s3/m/0fb6594311a6f524ccbff121dd36a32d7375c7e6.png)
4.2
11
4.2
请问: 主机存储容量为4GB,按字节寻址,其地址线 位数应为多少位?数据线位数多少位? 按字寻址(16位为一个字),则地址线和数据线 各是多少根呢?
12
数据在主存中的存放
设存储字长为64位(8个字节),即一个存 取周期最多能够从主存读或写64位数据。
读写的数据有4种不同长度:
字节 半字 单字 双字
34
3. 动态 RAM 和静态 RAM 的比较
主存
DRAM
SRAM
存储原理
电容
触发器
集成度
高
低
芯片引脚
少
多
功耗
小
大
价格
低
高
速度
慢
快
刷新
有
无
4.2
缓存
35
内容回顾: 半导体存储芯片的基本结构 4.2
…… ……
地
译
存
读
数
址
码
储
写
据
线
驱
矩
电
线
动
阵
路
片选线
读/写控制线
地址线(单向) 数据线(双向) 芯片容量
D0
…… D 7
22
(2) 重合法(1K*1位重合法存储器芯片)
0 A4
0,00
…
0,31
0 A3
X 地
X0
32×32
… …
0址
矩阵
A2
译
0码
31,0
…
31,31
A1
器 X 31
0 A0
Y0 Y 地址译码器 Y31 A 9 0A 8 0A 7 0A 6 0A 5 0
第4章-嵌入式系统的存储器系统PPT课件
![第4章-嵌入式系统的存储器系统PPT课件](https://img.taocdn.com/s3/m/31caed4efe00bed5b9f3f90f76c66137ee064f34.png)
冲,二级缓冲。
DRAM的体)电容存储电荷来储存信息, 必须通过不停的给电容充电来维持信息。
DRAM 的成本、集成度、功耗等明显优于SRAM。 DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何
的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机 内存就是DRAM的。
4.1.3 存储管理单元
MMU(Memory Manage Unit, 存储管理单元)
在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到 物理空间,这个转换过程一般称为内存映射。
MMU主要完成以下工作: (1)虚拟存储空间到物理存储空间的映射。
采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大 小的块,每一块称为一页,把物理内存的地址空间也分成同样大 小的页。MMU实现的就是从虚拟地址到物理地址的转换。 (2)存储器访问权限的控制。 (3)设置虚拟存储空间的缓冲特性。
(或旁路转换缓冲/页表缓冲/后援存储器)
当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该 条目不存在,CPU再从位于内存中的页表中查询,并把相应的结果 添加到TLB中,更新它的内容。
当ARM处理器请求存储访问时,首先在TLB中查找虚拟地址。如果系 统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB查找相应 的虚拟地址,对于内存访问操作,从数据TLB中查找相应的虚拟地址。
当进行数据写操作时,可以将cache分为读操作分配cache和写操 作分配cache两类。
对于读操作分配cache,当进行数据写操作时,如果cache未命中, 只是简单地将数据写入主存中。主要在数据读取时,才进行 cache内容预取。
对于写操作分配cache,当进行数据写操作时,如果cache未命中, cache系统将会进行cache内容预取,从主存中将相应的块读取到 cache中相应的位置,并执行写操作,把数据写入到cache中。对 于写通类型的cache,数据将会同时被写入到主存中,对于写回 类型的cache数据将在合适的时候写回到主存中。
DRAM的体)电容存储电荷来储存信息, 必须通过不停的给电容充电来维持信息。
DRAM 的成本、集成度、功耗等明显优于SRAM。 DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何
的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机 内存就是DRAM的。
4.1.3 存储管理单元
MMU(Memory Manage Unit, 存储管理单元)
在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到 物理空间,这个转换过程一般称为内存映射。
MMU主要完成以下工作: (1)虚拟存储空间到物理存储空间的映射。
采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大 小的块,每一块称为一页,把物理内存的地址空间也分成同样大 小的页。MMU实现的就是从虚拟地址到物理地址的转换。 (2)存储器访问权限的控制。 (3)设置虚拟存储空间的缓冲特性。
(或旁路转换缓冲/页表缓冲/后援存储器)
当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该 条目不存在,CPU再从位于内存中的页表中查询,并把相应的结果 添加到TLB中,更新它的内容。
当ARM处理器请求存储访问时,首先在TLB中查找虚拟地址。如果系 统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB查找相应 的虚拟地址,对于内存访问操作,从数据TLB中查找相应的虚拟地址。
当进行数据写操作时,可以将cache分为读操作分配cache和写操 作分配cache两类。
对于读操作分配cache,当进行数据写操作时,如果cache未命中, 只是简单地将数据写入主存中。主要在数据读取时,才进行 cache内容预取。
对于写操作分配cache,当进行数据写操作时,如果cache未命中, cache系统将会进行cache内容预取,从主存中将相应的块读取到 cache中相应的位置,并执行写操作,把数据写入到cache中。对 于写通类型的cache,数据将会同时被写入到主存中,对于写回 类型的cache数据将在合适的时候写回到主存中。
第3章存储器层次结构2PPT课件
![第3章存储器层次结构2PPT课件](https://img.taocdn.com/s3/m/5f8475e302d276a201292e1c.png)
储 器
EEPROM
Flash Memory
高速缓冲存储器(Cache)
辅助存储器
磁盘、磁带、光盘、磁盘阵列、 网络存储系统等
二、存储器的层次结构
1. 对存储器的要求:容量大、速度快、成本低 2. 存储器三个主要特性的关系
速度 容量 价格/位
快小高
寄存器
CPU CPU
主 机
缓存
主存
磁盘 光盘 磁带
辅 存
二、存储器的层次结构
三级存储架构:高速缓存,主存储器,辅存存储器 目标:主存储器为核心,缓存(cache)速度,辅存容量
存储器
作用
性能 种类
cache 主存 辅存
存储当前经常使用的程 序和数据
高速存取指令和数据
速度快 容量小
半导体
存放当前使用的程序和 数据,能和cache交换
数据和指令
中间
半导体
存放大量的后备程序和 容量大
从CPU看,速度接近cache的速度,容量是主存的容量, 价格接近主存价格。
由于cache存储系统全部用硬件来调度,因此它对系统 程序员和应用程序员都是透明的。
10ns
20ns
200ns
二、存储器的层次结构
虚拟存储系统是为解决主存容量不足而提出来的。在 主存和辅存之间,增加辅助的软硬件,让它们构成一 个整体。
慢大低
二、存储器的层次结构
2. 目前存储器的特点:
速度快的存储器价格贵,容量小; 速度慢的存储器价格低,容量大;
3. 存储器的设计思路:
① 为了解决存储容量、存取速度和价格之间的矛盾,在计 算机存储器系统设计时,应当在三个方面作折中考虑。
② 把各种不同速度、容量、价格的存储器,按一定的体系 结构组织起来,形成一个统一整体的存储系统。
最新存储器的层次结构课件PPT课件
![最新存储器的层次结构课件PPT课件](https://img.taocdn.com/s3/m/96c46382a48da0116c175f0e7cd184254a351b15.png)
2
28KB 16KB
01
J1
3
44KB 32KB
0
4
76KB 64KB
01
J2
5
140KB 116KB
0
0000 20KB 28KB 44KB 76KB 140KB
256KB
OS
8KB 作业J116需KB14KB
32KB 作业J624需KB60KB
116KB
物理内存
存储管理:连续分配
3.多道可变分区管理(概念) 内存地址
76KB
140KB
OS
8KB 作业116需K1B4KB
32KB
作业624需K6B0KB
116KB
256KB 分区大小不等
存储管理:连续分配
2.多道固定分区管理(续)
•需建立固定分区说明 表•内零头(碎片)问题
作业J1 14KB 作业J2 60KB
分区号 起始地址 长度
状态 作业名
1
20KB
8KB
0
存储器的层次结构
CPU Cache
512KB~8MB 400GB/S
RAM DISK
1~8GB 12GB/S
500GB 200MB/S
存储器管理的功能
内存的分配和回收
– 记录内存使用情况 – 存储的按需分配 – 存储的回收
内存容量的“扩充” 地址转换
– 常采用动态重定位,需要硬件支持
方案一:设置两张存储管理表
0000 20KB
大 位 状态 小置
14K 20K 已分
空表 目
60K 64K 已分 60K 124 已分 20K 34K 已分
已分分区表U空B表T
大 位 状态 小置
计算机存储器的层次结构ppt课件
![计算机存储器的层次结构ppt课件](https://img.taocdn.com/s3/m/3e11fedfcc22bcd127ff0c4e.png)
2. 便于程序和数据的共享。由于程序段是按功能来划分的,如子程序段、 数据段、表格段等。每个程序段有比较完整的功能,因此,被共享的 可能性很大。
3. 程序的动态链接和调试比较容易。由于每个程序段都是一组有独立意 义的数据块或具有完整功能的程序段,因此,在程序运行过程中,可 以根据需要一次就把一个程序段或数据块都装入到主存储器中,并且 在装入时才实行动态链接。
8
页式虚拟存储器的优点是:
1. 主存储器的利用率比较高。每个用户程序只有不到一页(平均为半页) 的浪费,与段式虚拟存储器每两个程序段之间都有浪费相比要节省许多。
2. 页表相对比较简单。它需要保存的字段数比较少,一些关键字段的长度 要短许多,因此,节省了页表的存储器容量。
3. 地址映象和变换的速度比较快。在把用户程序装入到主存储器的过程中 ,只要建立用户程序的虚页号与主存储器的实页号之间的对应关系即可 不必使用整个主存的地址长度,也不必考虑页号的长度等。
每段使用独立的逻辑地址空间,即都从0开始计算地址。 段式管理方法的主要缺点是各段长短不一,调进调出之后容易形成 大量不规则的零碎空间。 段式管理方法的虚实变换算法是查段表(P150)。
4
0
主程序(0段)
1K
0
1段
500
0
2段
200
0
3段
200
程序空间
段号 0 1 2 3
段长 1K 500 200 200
起始地址 8K 16K 9K 30K
段表
段式虚拟存储器的地址映象
0 8K 9K 16K
30K 主存储器
5
段式虚拟存储器的优点如下:
1. 程序的模块性能好。对于大程序,可以划分成多个程 序段,每个程序 段赋予不同的名字,由多个程序员并行编写,分别编译和调试。由于 各个程序段在功能上是相互独立的,因此,一个程序段的修改和增删 等不会影响其他程序段,从而可以缩短程序的编制和调试时间。
3. 程序的动态链接和调试比较容易。由于每个程序段都是一组有独立意 义的数据块或具有完整功能的程序段,因此,在程序运行过程中,可 以根据需要一次就把一个程序段或数据块都装入到主存储器中,并且 在装入时才实行动态链接。
8
页式虚拟存储器的优点是:
1. 主存储器的利用率比较高。每个用户程序只有不到一页(平均为半页) 的浪费,与段式虚拟存储器每两个程序段之间都有浪费相比要节省许多。
2. 页表相对比较简单。它需要保存的字段数比较少,一些关键字段的长度 要短许多,因此,节省了页表的存储器容量。
3. 地址映象和变换的速度比较快。在把用户程序装入到主存储器的过程中 ,只要建立用户程序的虚页号与主存储器的实页号之间的对应关系即可 不必使用整个主存的地址长度,也不必考虑页号的长度等。
每段使用独立的逻辑地址空间,即都从0开始计算地址。 段式管理方法的主要缺点是各段长短不一,调进调出之后容易形成 大量不规则的零碎空间。 段式管理方法的虚实变换算法是查段表(P150)。
4
0
主程序(0段)
1K
0
1段
500
0
2段
200
0
3段
200
程序空间
段号 0 1 2 3
段长 1K 500 200 200
起始地址 8K 16K 9K 30K
段表
段式虚拟存储器的地址映象
0 8K 9K 16K
30K 主存储器
5
段式虚拟存储器的优点如下:
1. 程序的模块性能好。对于大程序,可以划分成多个程 序段,每个程序 段赋予不同的名字,由多个程序员并行编写,分别编译和调试。由于 各个程序段在功能上是相互独立的,因此,一个程序段的修改和增删 等不会影响其他程序段,从而可以缩短程序的编制和调试时间。
计算机存储器的层次结构ppt课件
![计算机存储器的层次结构ppt课件](https://img.taocdn.com/s3/m/fb58b58516fc700abb68fcef.png)
2020/4/16
计算机系统结构
14
3.3.2 直接相联(P176)
直接相联是一种最强的约束关系,规定每个虚页只对应唯一实页。为便 于虚实变换,用求模运算作为变换关系式:将虚页号对实页总数求模得到实 页号。实现简单,二进制中,任何数X对2的整次幂n求模等价于截取X的最低 log2n位。
• 例 已知虚页号 = 7,实页总数 = 4,用直接相联求实页号。 解:可用十进制形式求:7 mod 4 = 3; 也可用二进制形式求:由于n = 4,所以log2n = 2, 取7的二进制形式111B的最低2位,得11B,即3。
2020/4/16
计算机系统结构
6
段式虚拟存储器的缺点:
1. 地址变换所花费的时间比较长。从多用户虚地址变换到主存实地址需 要查两次,做两次加法运算。
2. 主存储器的利用率往往比较低。由于每个程序段的长度不同的,一个 程序段通常要装在一个连续的主存空间中,程序段在主存储器中不断 地调入调出,有些程序段在执行过程中还要动态增加长度,从而使得 主存储器中有很多的空隙存在。当然,也可以采用一些好的算法来减 少空隙的数量,或者通过定时运行回收程序来合并着这些空隙,但这 无疑增加了系统的开销。
2020/4/16
计算机系统结构
8
页式虚拟存储器的优点是:
1. 主存储器的利用率比较高。每个用户程序只有不到一页(平均为半页) 的浪费,与段式虚拟存储器每两个程序段之间都有浪费相比要节省许多。
2. 页表相对比较简单。它需要保存的字段数比较少,一些关键字段的长度 要短许多,因此,节省了页表的存储器容量。
计算机系统结构
12
4种常见的地址映象方式
3.3.1 全相联(P174)
全相联就是无约束对应,或者说是一个完全关系,意思就是一个虚页 可以调入任何一个实页。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储器层次结构优秀课件
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
存储器(memory)系统
• Von Neumann
–一个线性的字节数组,CPU能够 在一个常数时间内访问每个存储 器位置
• 实际
–一个具有不同容量、成本和访问 时间的存储(storage)设备层次 结构
ห้องสมุดไป่ตู้
引用多维数组
int sumarrayrows(int a[M][N]) {
int i,j,sum = 0; for(i=0;i<M;i++)
for(j=0;j<N;j++) sum += a[i][j];
return sum } • 按行优先顺序访问(row-major order) • 步长为1 • 局部性好
局部性
• 时间局部性(temporal locality)
–被引用过一次的存储器位置很可 能在不远的将来再被多次引用
• 空间局部性(spatial locality)
–如果一个存储器位置被引用了一 次,那么程序很可能在不远的将 来引用附近的一个存储器位置
局部性
• 有良好局部性的程序运行更快 • 计算机系统的各个层次都利用了
存储器层次结构
• CPU register
–Latency: 0 cycle
• Cache memory (L1, L2, …)
–Latency: 1-10 cycle
• Main memory
–Latency: 50-100 cycle
• Disk storage
–Latency: 20 000 000 cycle
随机访问存储器(RAM)
SRAM
描述
静态RAM
每位晶体管数 6
相对访问时间 1X
持续的?(刷新) Yes
敏感的?(光电) No
相对花费
100X
应用
高速缓存
DRAM 动态RAM 1 10X No Yes 1X 主存
访问主存
• 典型的连接CPU和主存的总线结构
磁盘存储
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
缓存命中
• 当程序需要第k+1层的某个数 据对象d时,它首先在当前存 储在第k层的一个块中查找d。
• 如果d刚好缓存在第k层中,那 么就是我们所说的缓存命中 (cache hit)。该程序直接从 第k层读取d,根据存储器层次 结构的性质,这要比从第k+1 层读取d更快。
缓存不命中
• 如果第k层中没有缓存数据对 象d,那么就是我们所说的缓 存不命中(cache miss)。
局部性小结
• 重复引用同一个变量的程序有 良好的时间局部性
• 对于具有步长为k的引用模式 的程序,步长越小,空间局部 性越好
• 对于取指令来说,循环有好的 时间和空间局部性。循环体越 小,循环迭代次数越多,局部 性越好
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
局部性
–Cache –主存
• 作为虚拟地址空间最近被应用块的高 速缓存
• 缓存磁盘文件系统最近使用的磁盘块
–Web浏览器将最近被引用的文档放 在本地磁盘上
–Web服务器将最近被请求的文档放 在前端磁盘高速缓存中
对程序数据引用的局部性
int sumvec(int v[N]) {
int i, sum = 0; for(i=0;i<N;i++)
存储器层次结构(memory hierarchy)
存储器层次结构中的缓存
• 高速缓存(cache)
–一个小而快速的存储设备 –作为存储在更大也更慢的设备中
的数据对象的缓冲区域
• 存储器层次结构的中心思想
–位于k层的更快更小的存储设备 作为位于k+1层的更大更慢的存 储设备的缓存
存储器层次结构中的数据传输
sum += v[i]; return sum; } • 变量sum:时间局部性 • 向量v :空间局部性
对程序数据引用的局部性
• 函数sumvec顺序访问一个向量的 每个元素,具有步长为1的引用 模式
• 步长为k的引用模式 (stride-k reference pattern)
–访问一个连续向量的每第k个元素
高速缓存存储器
• 基于L1和L2高速缓存的典型总 线结构
高速缓存存储器
• 直接映射高速缓存(direct-mapped cache)
–机制比较简单 –冲突不命中
• Network storage
计算机程序的局部性(locality)
• 良好局部性的程序
–重复访问相同的数据项集合 –倾向于访问临近的数据项集合
• 优化思想
–使程序要访问的数据项存储在层 次结构中较高的地方,在那里 CPU能更快的访问到它们。
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
• 随着步长的增加,空间局部性下 降
引用多维数组
int sumarraycols(int a[M][N]) {
int i,j,sum = 0; for(j=0;j<N;j++)
for(i=0;i<M;i++) sum += a[i][j];
return sum } • 按列优先顺序访问(col-major order) • 步长为N • 局部性差
• 冲突不命中(conflict miss)
–限制性的块放置策略
高速缓存管理
寄存器
编译器
L1,L2 cache
内置在缓存中的硬 件逻辑
DRAM 主存
操作系统软件和 CPU上的地址翻译 硬件
本地磁盘缓存网络 应用程序 存储
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
• 当发生cache miss时,第k层 的缓存从第k+1层中取出包含d 的那个块。
• 如果第k层的缓存已经满了的 话,可能就会覆盖现存的一个 块,由缓存的替换策略来控制。
缓存不命中的种类
• 冷不命中(cold miss)
–warmed up之前
• 容量不命中(capacity miss)
–working set
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
存储器(memory)系统
• Von Neumann
–一个线性的字节数组,CPU能够 在一个常数时间内访问每个存储 器位置
• 实际
–一个具有不同容量、成本和访问 时间的存储(storage)设备层次 结构
ห้องสมุดไป่ตู้
引用多维数组
int sumarrayrows(int a[M][N]) {
int i,j,sum = 0; for(i=0;i<M;i++)
for(j=0;j<N;j++) sum += a[i][j];
return sum } • 按行优先顺序访问(row-major order) • 步长为1 • 局部性好
局部性
• 时间局部性(temporal locality)
–被引用过一次的存储器位置很可 能在不远的将来再被多次引用
• 空间局部性(spatial locality)
–如果一个存储器位置被引用了一 次,那么程序很可能在不远的将 来引用附近的一个存储器位置
局部性
• 有良好局部性的程序运行更快 • 计算机系统的各个层次都利用了
存储器层次结构
• CPU register
–Latency: 0 cycle
• Cache memory (L1, L2, …)
–Latency: 1-10 cycle
• Main memory
–Latency: 50-100 cycle
• Disk storage
–Latency: 20 000 000 cycle
随机访问存储器(RAM)
SRAM
描述
静态RAM
每位晶体管数 6
相对访问时间 1X
持续的?(刷新) Yes
敏感的?(光电) No
相对花费
100X
应用
高速缓存
DRAM 动态RAM 1 10X No Yes 1X 主存
访问主存
• 典型的连接CPU和主存的总线结构
磁盘存储
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
缓存命中
• 当程序需要第k+1层的某个数 据对象d时,它首先在当前存 储在第k层的一个块中查找d。
• 如果d刚好缓存在第k层中,那 么就是我们所说的缓存命中 (cache hit)。该程序直接从 第k层读取d,根据存储器层次 结构的性质,这要比从第k+1 层读取d更快。
缓存不命中
• 如果第k层中没有缓存数据对 象d,那么就是我们所说的缓 存不命中(cache miss)。
局部性小结
• 重复引用同一个变量的程序有 良好的时间局部性
• 对于具有步长为k的引用模式 的程序,步长越小,空间局部 性越好
• 对于取指令来说,循环有好的 时间和空间局部性。循环体越 小,循环迭代次数越多,局部 性越好
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
局部性
–Cache –主存
• 作为虚拟地址空间最近被应用块的高 速缓存
• 缓存磁盘文件系统最近使用的磁盘块
–Web浏览器将最近被引用的文档放 在本地磁盘上
–Web服务器将最近被请求的文档放 在前端磁盘高速缓存中
对程序数据引用的局部性
int sumvec(int v[N]) {
int i, sum = 0; for(i=0;i<N;i++)
存储器层次结构(memory hierarchy)
存储器层次结构中的缓存
• 高速缓存(cache)
–一个小而快速的存储设备 –作为存储在更大也更慢的设备中
的数据对象的缓冲区域
• 存储器层次结构的中心思想
–位于k层的更快更小的存储设备 作为位于k+1层的更大更慢的存 储设备的缓存
存储器层次结构中的数据传输
sum += v[i]; return sum; } • 变量sum:时间局部性 • 向量v :空间局部性
对程序数据引用的局部性
• 函数sumvec顺序访问一个向量的 每个元素,具有步长为1的引用 模式
• 步长为k的引用模式 (stride-k reference pattern)
–访问一个连续向量的每第k个元素
高速缓存存储器
• 基于L1和L2高速缓存的典型总 线结构
高速缓存存储器
• 直接映射高速缓存(direct-mapped cache)
–机制比较简单 –冲突不命中
• Network storage
计算机程序的局部性(locality)
• 良好局部性的程序
–重复访问相同的数据项集合 –倾向于访问临近的数据项集合
• 优化思想
–使程序要访问的数据项存储在层 次结构中较高的地方,在那里 CPU能更快的访问到它们。
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
• 随着步长的增加,空间局部性下 降
引用多维数组
int sumarraycols(int a[M][N]) {
int i,j,sum = 0; for(j=0;j<N;j++)
for(i=0;i<M;i++) sum += a[i][j];
return sum } • 按列优先顺序访问(col-major order) • 步长为N • 局部性差
• 冲突不命中(conflict miss)
–限制性的块放置策略
高速缓存管理
寄存器
编译器
L1,L2 cache
内置在缓存中的硬 件逻辑
DRAM 主存
操作系统软件和 CPU上的地址翻译 硬件
本地磁盘缓存网络 应用程序 存储
提纲
• 导论 • 存储技术 • 局部性原理 • 存储器层次结构 • 高速缓存存储器 • 编写高速缓存友好的代码 • 利用程序中的局部性
• 当发生cache miss时,第k层 的缓存从第k+1层中取出包含d 的那个块。
• 如果第k层的缓存已经满了的 话,可能就会覆盖现存的一个 块,由缓存的替换策略来控制。
缓存不命中的种类
• 冷不命中(cold miss)
–warmed up之前
• 容量不命中(capacity miss)
–working set