Download presentation
Presentation is loading. Please wait.
1
C H A P T E R 10 存储器层次
2
概述 存储体系的形式 (a)两级存储器层次结构 (b)三级存储器层次结构
3
NandFlash、DOC、CF、SD、MMC等
概述 嵌入式系统的存储结构 嵌入式 微处理器 主存: Nor Flash、SRAM、 DRAM等 Cache 外存: NandFlash、DOC、CF、SD、MMC等 片内RAM和ROM
4
10.1 存储器容量及速度
5
10.2 片上存储器 片上存储器的优点: 片上RAM? Cache?
6
如何解决这之间的矛盾? 10.3 Cache 一直以来,CPU和主存储器的速度总是有差距 CPU的发展一直以速度为主,以提高速度为核心
主存的发展一直以容量为主,以提高容量为核心 如何解决这之间的矛盾?
7
这不是一个技术问题,而是一个经济问题。从技术上说,能制造出多高速度的CPU,就能制造出同样速度的存储器,只不过是我们是否愿意付出如此高的价格。
有没有更好的办法?能否用廉价的高容量存储器实现相对的高速度呢?
8
程序的局部性原理 访问概率 地址空间 程序在一定的时间段内通常只访问较小的地址空间 两种局部性: 时间局部性 空间局部性
9
使用高速缓冲存储器Cache来提高CPU对存储器的平均访问速度。 时间局部性:最近被访问的信息很可能还要被访问。
层次存储器系统 使用高速缓冲存储器Cache来提高CPU对存储器的平均访问速度。 时间局部性:最近被访问的信息很可能还要被访问。 将最近被访问的信息项装入到Cache中。 空间局部性:最近被访问的信息临近的信息也可能被访问。 将最近被访问的信息项临近的信息一起装入到Cache中。
10
高速缓存Cache 高速缓冲存储器中存放的是当前使用得最多的程序代码和数据,即主存中部分内容的副本。
可分为数据Cache、指令Cache或混合Cache。 不同的处理器其Cache的大小不一样。 一般32位的嵌入式微处理器都内置Cache。
11
A unified instruction and data cache
12
Separate data and instruction caches
13
Cache性能的度量 Cache命中:CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为命中。 Cache未命中:读取的数据不在Cache中,则对主存储器进行操作,并将有关内容置入Cache。
14
Cache组织 Cache结构框图 置换控制器 地址 索引 机构 高速缓冲 存储器 段(页) 高位地址 低位地址 主 CPU 存 地址总线
数据总线 Cache结构框图
15
读过程为例 CACHE的基本运行原理 数据总线 地址总线 比较选一行 MEMORY 译码选一单元 CPU CACHE ADDR DATA
CACHE CONTROL MEMORY 译码选一单元
16
要解决的主要问题 1. 地址之间的映射关系: 如何从主存地址得到Cache地址? 2. Cache中的内容是否已经是主存对应地址的内容?
17
命中(Hit):在较高层次中发现要访问的内容
几个参数 块(Line):数据交换的最小单位 命中(Hit):在较高层次中发现要访问的内容 命中率(Hit Rate):命中次数/访问次数 命中时间:访问在较高层次中数据的时间 失效(Miss):需要在较低层次中访问块 失效率(Miss Rate):1-命中率 失效损失(Miss Penalty):替换较高层次数据块的时间+将该块交付给处理器的时间 命中时间<<失效损失
18
参数典型数值 块大小:4~128Byte 命中时间:1~4周期 失效损失: 命中率:80%~99% Cache容量:1KB~256KB
访问时间:6~10个周期 传输时间:2~22个周期 命中率:80%~99% Cache容量:1KB~256KB
19
主存储器 数据 比较 CACHE 地址 译码 C P U
全相联方式 有效位 标志 主存储器 数据 数据 比较 CACHE 地址 译码 主存地址 C P U 块号 块内地址
20
全相联方式的地址映射 特点 1. 主存的字块可以和Cache的任何字块对应,利用率高,方式灵活。
2. 标志位较长,比较电路的成本太高。如果主存空间有2m块,则标志位要有m位。同时,如果Cache有n块,则需要有n个比较电路。 使用成本太高
21
CACHE 主存储器 数据 比较 译码 地址 译码 C P U
直接映射方式 有效位 CACHE 标志 主存储器 数据 数据 比较 译码 块 内 地 址 块 号 地址 译码 主存地址 C P U 块号 块内地址
22
直接映射方式的地址映射 特点 1. 主存的字块只可以和固定的Cache字块对应,方式直接,利用率低。
2. 标志位较短,比较电路的成本低。如果主存空间有2m块,Cache中字块有2c块,则标志位只要有m-c位。且仅需要比较一次。 利用率低,命中率低,效率较低
23
两路组相联方式 有效位 标志 主存储器 数据 比较 译码 CACHE 数据 地址 比较 译码 译码 主存地址 C P U 块号 块内地址
24
两路组相联方式的地址映射 特点 1. 前两种方式的折衷方案。组间为全相连,组内为直接映射。 2. 集中了两个方式的优点。成本也不太高。
是常用的方式
25
三种映射方式比较 直接映射 主存中的一块只能映射到Cache中唯一的一个位置 定位时,不需要判断,只需替换 全相连映射
N路组相连映射 主存中的一块可以选择映射到Cache中N个位置 全相连映射和N路组相连映射的失效处理 从主存中取出新块 为了腾出Cache空间,需要替换出一个Cache块 不唯一,则需要判断应替出哪块
26
如何提高Cache的性能? 1. 提高命中率 2. 缩短缺失后的处理时间 3. 提高访问cache的速度
27
Cache缺失的原因 必然缺失 (开机或进程切换):首次访问数据块 世事总是有缺憾 注意:如果我们运行几百万条指令,有点必然缺失又何妨?
冲突缺失 多个 memory块映射到同一 cache块 解决办法 1:增大 cache 容量 解决办法 2:增加相连组数 容量冲突 Cache无法装入程序需要访问的所有块 方案:增大 cache 容量 无效缺失:其它进程(如I/O)修改了主存
28
影响 CACHE 命中率的因素 从 CACHE 本身诸因素看,可能: 1. CACHE 的容量,大一些好
信息的单位量(Cache Line Size)适中 3. CACHE 不同的组织方式,多路组相联更好 4. CACHE 的多级组织可提高命中率 5. CACHE 装满后的换字算法
29
Cache命中率 Hit Rate Cache Size in KB
30
块大小和缺失率的关系
31
块大小的权衡 一般来说,数据块较大可以更好地利用空间局部性,但是: 数据块大意味着缺失损失的增大: 需要花费更长的时间来装入数据块
若块大小相对Cache总容量来说太大的话,命中率将降低 Cache块数太少 一般来说,平均访问时间 = 命中时间 x 命中率 + 失效损失 x 缺失率 平均访 问时间 缺失损失 缺失率 利用空间局部性 增加了缺失损失 和缺失率 较少的数据块: 弥补时间局部性 块大小 块大小 块大小
32
Cache的替换算法 1. 先进先出算法(FIFO) 将最早调入Cache的字块替换出去。容易实现,开销小。
2. 最近最少使用算法(LRU) 需要计算字块的使用次数,开销大,但平均命中率比FIFO要高。 3. 随机替换(RAND)
33
多级Cache 采用两级或更多级cache来提高命中率 将Cache分解为指令Cache和数据Cache
34
CACHE 接入系统的体系结构 总线 Bus Master 2 MEMORY CACHE Bus Master 1 CPU
1. 侧接法:像输入输出设备似的连接到 总线上,优点是结构简单,成本低, 缺点是不利于降低总线占用率。 MEMORY CACHE 总线 Bus Master 1 CPU Bus Master 2
35
CACHE 接入系统的体系结构 总线 Bus Master 2 MEMORY CACHE CPU 2. 隔断法:把原来的总线打断为两段,
2. 隔断法:把原来的总线打断为两段, 使 CACHE 处在两段之间,优点是有利于提高总线利用率,支持总线并发操作,缺点是结构复杂,成本较高。 MEMORY CACHE 总线 Bus Master 1 CPU Bus Master 2
36
写策略 若 CPU 改写了 CACHE 一单元内容后且尚未改变主存相应单元内容,则出现数据不一致性。有两种解决办法:
1.接下来直接改写主存单元内容(Write Through) 简便易行, 但可能带来系统运行效率不高的问题。需要写入缓冲存储器。 2.拖后改写主存单元内容(Write Back) 一直拖到有另外的设备要读该内容过时的主存单元时,则首先停止这一读操作,接下来改写主存内容,之后再起动已停下来的读操作。 矛盾是如何检查是否是读无效内存单元的操作,这是通过 监视地址总线完成的,记下无效单元地址用于比较。 控制复杂些,但可以提供更高的系统运行效率。
37
Cache 局部性原理: 任何时候,程序需要访问的只是相对较小的一些地址空间。 时间局部性 空间局部性 三类主要的Cache缺失原因:
无法避免的缺失:如:第一次装入 块冲突:增大Cache容量、改进组织方式 避免不断的块冲突 容量冲突:增大Cache容量 Cache设计 总容量、块大小、组织方式 替换算法 写策略(命中时):写直达、拖后写 写策略(不命中时):是否装入到Cache?
38
Cache设计 有关方案 cache 容量 块大小 组织方式 替换算法 写策略 方案优化 根据用途选择 海量数据处理
指令数据平衡 (I-cache, D-cache) 根据成本优化 简单化常常就是优化 Cache 容量 关联度 块大小 Bad Good Factor A Factor B Less More
39
10.5 存储器管理 该节内容放到体系结构对操作系统支持一章
40
外存 外存是处理器不能直接访问的存储器,用来存放用户的各种信息,容量大。 在嵌入式系统中常用的外存有: 10.6 嵌入式系统中的外存
NandFlash DOC(Disk On Chip) CF(Compact Flash) SD(Secure Digital) MMC(Multi MediaCard)等
41
电子盘采用半导体芯片来存贮数据,具有体积小、功耗低和极强的抗震性等特点。 在嵌入式系统中普遍采用各种电子盘作为外存。
常用的电子盘有:NandFlash、MMC、SD、Memeory Stick、CF、SM、DOC等。
42
电子盘
43
电子盘 Flash card market for Mobile phone has 70% CAGR, and 50% market share in ’08.
44
NandFlash是Flash Memory的一种。 Flash Memory的中文称为快闪存储器或快速擦写存储器。
Flash Memory由Toshiba于1980年申请专利,并在1984年的国际半导体学术会议上首先发表。 目前在Flash Memory技术上主要发展了两种非易失性内存 一种叫NOR(逻辑或),是Intel 于1988年发明的 另一种叫NAND(逻辑与)是Toshiba于1999年创造的。
45
NandFlash可独立成为外存,也可组成其他各种类型的电子盘如USB盘、CF、SD和MMC存储卡等。
NOR Flash具有随机存储速度快、电压低、功耗低、稳定性高等特点,主要用于主存。
46
Samsung Nandflash
47
NOR NAND 写入/擦除一个块的操作时间 1~5s 2~4ms 读性能 1200~1500KB 600~800KB 写性能
NOR NAND 写入/擦除一个块的操作时间 1~5s 2~4ms 读性能 1200~1500KB 600~800KB 写性能 <80KB 200~400KB 接口/总线 SRAM接口/独立的地址数据总线 8位地址/数据/控制总线,I/O接口复杂 读取模式 随机读取 串行地存取数据 成本 较高 较低,单元尺寸约为NOR的一半,生产过程简单,同样大小的芯片可以做更大的容量 容量及应用场合 1~64MB,主要用于存储代码 8MB~4GB,主要用于存储数据 擦写次数(耐用性) 约10万次 约100万次 位交换(bit位反转) 少 较多,关键性数据需要错误探测/错误更正(EDC/ECC)算法 坏块处理 无,因为坏块故障率少 随机分布,无法修正
48
NandFlash:128M X 8 bit
49
NandFlash:128M X 8 bit
50
NandFlash:128M X 8 bit
51
MultiMediaCard Association
MMC MultiMediaCard Association 210+ members representing the leading Manufacturers of host systems, cards, components, connectors, etc. Membership: Executive (voting rights) & General Committees: Technical, Marketing, Compliance Open standard, collects no royalties Compliance & certification program Focus on mobile phones and digital imaging markets worldwide
52
MMC: Roadmap of standard
53
MMC: Roadmap of capacity
54
MMC的特点 High clock frequency: 26MHz and 52MHz
Flexible bus width: 13 pins to support 1 to 8 data lines (host-selectable x1, x4 and x8-bit bus) Data transfer rate: up to 52 MBytes/sec This is the highest bus transfer rate of all flash memory card standards available Today Backward compatible to legacy hosts
55
MMC的特点 Fully compatible with MMCplus™ The first small form factor memory card standards to offer dual-voltage operation at both 3V and 1.8V Compatible with next generation mobile phone system specifications and meets the toughest space Saving and low power consumption requirements of mobile phones and small consumer electronics devices
56
SD(Secure Digital)卡由松下电器、东芝和SanDisk联合推出,1999年8月首次发布。
2000年2月1日成立了SD协会(SDA),成员公司超过90个,其中包括Hewlett-Packard,IBM,Microsoft,Motorola,NEC、Samsung Electronics,Toyota Motor等巨头。 SDA是开放式的,缴纳1500美元就可以成为一般会员,缴纳4000美元可以成为执行会员。SD存贮卡的详细规范并没有公开,只有SDA会员或签定了保密协议才能获得。 SD卡需付版税 15×11mm 32×24mm
57
1997年7月Sony宣布开发Memory Stick
Memory Stick被很多人形象地称为口香糖存贮卡,其尺寸为50mm×21.5mm×2.8mm,重4克 Memory Stick也包括了控制器在内,采用10针接口,数据总线为串行,最高频率可达20MHz,电压为2.7伏到3.6伏,电流平均为45mA
58
Compact Flash Compact Flash的诞生比较早,由最大的Flash Memory卡厂商之一美国SanDisk于1994年首次推出。 大小仅为43mm x 36mm x 3.3mm,体积只有PCMCIA卡的1/4,看起来就像是PCMCIA卡的缩小版。 CompactFlash提供了完整的PCMCIA-ATA功能而且通过ATA/ATAPI-4兼容TrueIDE。 和68针接口的PCMCIA卡不同,同样遵从ATA协议的CompactFlash的接口只有50针。
59
SmartMedia SmartMedia是由东芝公司Toshiba America Electronic Components(TAEC)在1995年11月发布的Flash Memory存贮卡,三星公司在1996年购买了生产和销售许可,这两家公司成为主要的SmartMedia厂商。
60
SmartMedia 最开始时SmartMedia被称为SSFDC,即Solid State Floppy Disk Card,1996年6月改名为SmartMedia,并成为东芝的注册商标。 SmartMedia采用了NAND型Flash Memory,因此体积做得很小:45mm x 37mm x 0.76mm,非常的薄,仅重1.8克。接口方面,SmartMedia采用了22针的接口,我们在卡上看到的是遍平的金手指。 SmartMedia为了节省成本,存贮卡上只有Flash Memory模块和接口,并没有包括控制芯片,所以使用SmartMedia的设备必须自己装置控制机构。
61
它采用了TureFFS硬盘仿真技术对Flash进行管理,可以把Flash模拟成为硬盘。
DOC Disk On Chip,简称DOC,是采用NandFlash芯片作为基本存贮单元,外加一些控制芯片及软件,通过特殊的软硬件来操作的一种模块化、系列化的电子存贮装置。 它采用了TureFFS硬盘仿真技术对Flash进行管理,可以把Flash模拟成为硬盘。 也正是因为采用了TureFFS技术对数据在Flash中的读写操作进行管理,大大提高了DOC的写操作的次数,远远超过了普通Flash的写寿命,提高了Flash的可靠性。
62
Comparison of Full Size Cards
63
Comparison of Small Size Cards
64
Comparison of Micro Size Cards
Similar presentations