嵌入式系统与结构 第六课 嵌入式系统的存储器
-
Upload
amadahy-mitchell -
Category
Documents
-
view
71 -
download
3
description
Transcript of 嵌入式系统与结构 第六课 嵌入式系统的存储器
1
嵌入式系统与结构
第六课 嵌入式系统的存储器
2
本章内容
存储器分类 按照写入能力和存储永久性进行区分
嵌入式系统存储器类型 常用存储器类型 高级 RAM 类型
嵌入式系统存储器组合存储器的层次与 Cache
3
嵌入式系统的功能涵盖 处理功能
利用处理器实现 通信
处理器和存储器之间的数据传递 用总线来实现 称为接口技术
存储功能 用 Memory 实现
概述
4
什么是存储器存储大量的位( bit )
m x n: m 个字,每个字 n 位 k = Log2(m) 地址输入信号 或者 m = 2^k 个字 e.g., 4,096 x 8 存储器 :
32,768 bits 12 地址输入信号 8 输入输出数据信号
存储器访问 r/w: 选择是读出还是写入 enable: 只有当确认后才能进行读写操作 multiport: 同时对多个位置进行访问
处理器的寄存器文件结构
m × n 存储器
…
…
每个字 n 位
M个字enable
2k × n read and write memory
A0 …
r/w
…
Q0Qn-1
Ak-1
mem
ory
exte
rnal
vie
w
5
本章内容
存储器分类 按照写入能力和存储永久性进行区分
嵌入式系统存储器类型 常用存储器类型 高级 RAM 类型
嵌入式系统存储器组合存储器的层次与 Cache
6
写入能力和存储永久性传统 ROM/RAM 区分方式
ROM 只读,断电时数据仍然保存
RAM 读写 , 断电时数据丢失
传统划分的缺陷 高级 ROMs 也能写入
e.g., EEPROM 高级 RAMs 也能断电保存
e.g., NVRAM写入能力
存储器写入数据的方式和速度存储永久性
数据写入后存储器保存数据的能力
7
写入能力和存储永久性
写入能力和存储永久性,延坐标轴显示了相对的程度
Externalprogrammer
OR in-system,block-orientedwrites, 1,000s
of cycles
Batterylife (10years)
Writeability
EPROM
Mask-programmed ROM
EEPROM FLASH
NVRAM
SRAM/DRAM
Sto
rage
perm
anen
ce
Nonvolatile
In-systemprogrammable
Ideal memory
OTP ROM
Duringfabrication
only
Externalprogrammer,
1,000sof cycles
Externalprogrammer,one time only
Externalprogrammer
OR in-system,1,000s
of cycles
In-system, fastwrites,
unlimitedcycles
Nearzero
Tens ofyears
Life ofproduct
8
本章内容
存储器分类 按照写入能力和存储永久性进行区分
嵌入式系统存储器类型 常用存储器类型 高级 RAM 类型
嵌入式系统存储器组合存储器的层次与 Cache
9
ROM: “Read-Only” Memory
需要在放入嵌入式系统之前进行“编程”使用 保存 GPP 的软件
程序指令可以是一个或多个 ROM 字
保存系统需要的常量数据 组合电路实现
8 × 4 ROM
3×8
decoder
Q0Q3
A0
enable
A2
word 0
word 1
A1
Q2 Q1
programmable connection wired-OR
word line
data line
word 2
Internal view
10
OTP ROM: 一次可编程 ROM由用户进行可编程连接很低的写入能力 需要编程器,并且只能写入一次
非常高的存储永久性 采用熔丝技术
一般应用在最终产品中 便宜 , 难以修改
11.
(d)
(a)
(b) source drain
+15V
source drain
0V
(c) source drain
floating gate
5-30 min
EPROM: 可擦除的可编程 ROM
可编程部件是一个 MOS 晶体管 晶体管具有浮动栅 (a) 负电荷形成一个源和漏的沟道保存逻辑 1 (b) 栅极大的正电压引起负电荷移出沟道,得
到浮动栅中的一个陷阱来保存逻辑 0 (c) ( 擦除 ) 紫外线照射浮栅引起负电荷从浮栅返回沟道保存逻辑 1
更好的写入能力 能够擦除和重编程上千次
存储永久性降低 程序能够保存 10年以上
在设计开发阶段使用
12
EEPROM: 电可擦除可编程 ROM 电可编程和擦除 要使用比工作电压高的电压进行编程 可编程或擦除独立的字更好的写能力 能够进行系统内编程 由于擦除和编程,写入时速度较慢 可以擦除上万次
存储永久性与 EPROM 相同 ( 大约 10 years)使用更方便,但是成本更贵应用于电话机,身份证等
13
Flash 存储器EEPROM 的扩展 相同的浮栅原理 相同的写入能力和存储持久性快速擦除 可一次擦除一个块数据,而不是一次一个字。 块容量典型为数千个字节
写单字时可能更慢 必须读一个数据块,然后更新字,再将整个块回写。
嵌入式系统中用非易失存储器存储大数据 e.g., digital cameras, TV set-top boxes, cell phones
14
RAM: “随机访问” 存储器典型的易失性存储器
断电后比特不被保存内部结构比 ROM 更复杂
一个字由几个存储器单元组成,每个保存1 位。
每个输入输出数据线连接到这一列的每个单元上
rd/wr 线连接到每个单元( cell ) 来自解码器的字使能线连接到所在行的每
个单元; 存储单元必须具有必要的逻辑,使 r/w 指
示写入且该行使能时能存储输入数据位,在 r/w 指示读取且该行使能时能输出该单元保存的数据位
enable2k × n read and write
memory
A0 …
r/w
…
Q0Qn-1
Ak-1
exte
rnal
vie
w
4×4 RAM
2×4 decoder
Q0Q3
A0
enable
A1
Q2 Q1
Memory cell
I0I3 I2 I1
rd/wr To every cell
internal view
15
基本 RAM 类型SRAM:静态( Static ) RAM
存储器单元使用 flip-flop 来保存位数据
需要 6 个晶体管 只要有电就保持数据DRAM: 动态 Dynamic RAM
存储器单元使用 MOS晶体管和电容来保持数据位
比 SRAM更复杂; 由于电容泄漏,需要“刷新”
当读取时,字单元要被刷新 典型刷新率为 15.625 ms. 访问速度慢于 SRAM
memory cell internals
Data
W
Data'
SRAM
Data
W
DRAM
16
Ram 的变型PSRAM: 伪静态 Pseudo-static RAM 带有内建存储器刷新控制器的 DRAM 比较流行的低成本高密度的替代SRAM 的一种存储器
NVRAM: 非易失 Nonvolatile RAM 外部电源移除时仍然保持数据 电池后备 Battery-backed RAM
SRAM 具有永久连接的电池 写入和读取一样快
17
举例 : HM6264 & 27C256 RAM/ROM devices
低成本的容量存储器 一般在 8-bit MCU中应用头两个数字指示器件类型
RAM: 62 ROM: 27其后数字指示 Kbit 容量
Device Access Time (ns) Standby Pwr. (mW) Active Pwr. (mW) Vcc Voltage (V)HM6264 85-100 .01 15 527C256 90 .5 100 5
22
20
data<7…0>
addr<12...0>
/OE
/WE
/CS1
CS2 HM6264
11-13, 15-19
2,23,21,24,25, 3-10
22
27
20
26
data<7…0>
addr<14...0>
/OE
/CS
27C256
11-13, 15-19
27,26,2,23,21,24,25, 3-10
block diagrams
device characteristics
timing diagrams
data
addr
OE
/CS1
CS2
Read operation
data
addr
WE
/CS1
CS2
Write operation
18
Example:TC55V2325FF-100 存储器
2-Mbit 同步流水线突发 SRAM 存储器设计用于 32-bit 处理器接口能够快速的顺序读取或写入,也能够实现单字节输入输出
timing diagramblock diagram
device characteristics
data<31…0>
addr<15…0>
addr<10...0>
/CS1
/CS2
CS3
/WE
/OE
MODE
/ADSP
/ADSC
/ADV
CLK
TC55V2325FF-100
Device Access Time (ns) Standby Pwr. (mW) Active Pwr. (mW) Vcc Voltage (V)TC55V23 10 na 1200 3.325FF-100
A single read operation
CLK
/ADSP
/ADSC
/ADV
addr <15…0>/WE
/OE
/CS1 and /CS2
CS3
data<31…0>
19
实例:更复杂的存储器协议
产生控制信号来驱动流水线读取模式的 TC55V2325FF存储器芯片 Addr0 是起始地址 GO 是使能 /禁止信号
Specification for a single read operation
CLK
/ADSP
/ADSC
/ADV
addr <15…0>/WE
/OE
/CS1 and /CS2
CS3
data<31…0>
ADSP=1,ADSC=1
ADV=1, OE=1, Addr = ‘Z’
ADSP=1,ADSC=0
ADV=1, OE=1, Addr = ‘Z’
ADSP=1,ADSC=1
ADV=0, OE=0, Addr = ‘Z’
GO=1
GO=0
Data is ready here!
GO=1
GO=1
GO=0
GO=0
S0 S1
S2 S3
ADSP=0,ADSC=0
ADV=1, OE=1, Addr = Addr0
GO=0
GO=1
FSM description
20
本章内容
存储器分类 按照写入能力和存储永久性进行区分
嵌入式系统存储器类型 常用存储器类型 高级 RAM 类型
嵌入式系统存储器组合存储器的层次与 Cache
21
高级 RAM
DRAMs 通常用于嵌入式系统处理器的主存储器 高容量,低成本许多 DRAMs 存储器的改进型被提出 需要能够跟上处理器运行速度 FPM DRAM: 快页模式 DRAM EDO DRAM: 扩展数据输出 DRAM SDRAM/ESDRAM: 同步和增强型同步 DRAM RDRAM: rambus DRAM
22
基本 DRAM地址总线行列复用行、列地址分别由行地址选择信号 ras 和列地址选择信号 cas 被顺序的锁存刷新电路可以在 DRAM 存储器的外部或者内部
周期性选通连续的存储器地址,进行存储器内容刷新
在读写操作期间刷新电路不起作用
Dat
a In
Buf
fer
Dat
a Out
Buf
fer
rd/wr
data
Row
Add
r. B
uffe
rC
ol A
ddr.
Buf
fer
addressras
cas
Bit storage array
Row
Dec
oder
Col Decoder
RefreshCircuit
cas,
ras,
clo
ck
SenseAmplifiers
23
同步( S) /增强型同步( ES) DRAMSDRAM 在有效时钟边沿锁存数据同步接口消除 DRAM监测 ras/cas 和 rd/wr 信号所需的时间列地址计数器写入有效列地址,然后在时钟沿递增计数器来访问连续的内存地址ESDRAM 改进 SDRAM
在感应放大器中加入高速缓冲使列地址发生重叠。 更快的时钟和更低的读 / 写延迟时间
clock
ras
cas
address
data
row col
data data data
24
SDRAM 存储器芯片举例MT48LC4M32B2 4 Meg x 32bit SDRAM 功能框图
25
SDRAM 存储器芯片扩展举例
26
SDRAM 的接口
27
DRAM 集成问题
SRAM容易与处理器一起集成到同一个芯片中DRAM 非常困难 DRAM 与传统逻辑电路的制造工艺不同 传统逻辑( IC )设计师的目标 :
使寄生电容最小以减小功耗和信号传播延迟 DRAM 设计师的目标 :
创建电容单元保存存储的信息 集成工艺已经开始出现
28
存储器管理单元( MMU)
MMU的任务 处理 DRAM 的刷新 , 总线接口的仲裁 考虑存储器在多个处理器之间的共享 翻译逻辑存储器地址到 DRAM 的物理地
址现代 CPUs经常将MMU集成到芯片中可以用单用途处理器来完成
29
一个多核处理器结构的 MMU
30
存储器组合所需要的 Memory 大小与实际可得到的 Memory 器件容量不符单可用的 Memory 容量更小,就需要组合几个更小的 memories 成为一个更大的 Memory
位扩展:肩并肩连接增加字宽度 字扩展: 头尾连接增加字的数量 组合两种技术增加字宽度和字数量
…
2m × 3n ROM2m × n ROM
A0 …
enable 2m × n ROM
…
2m × n ROM
…
Q3n-
1
Q2n-
1
…
Q0
…Am
增加字宽度
2m+1 × n ROM2m × n ROM
A0 …
enable
…
2m × n ROM
Am-1
Am
1 × 2 decoder
…
…
…
Qn-1 Q0
…
增加字数量
A
enable
outputs
增加字的宽度和数量
31
SRAM扩展配置
32
64M SDRAM配置
33
存储器层次 希望便宜快速的存储器主存储器 容量大,便宜,慢,,
保存全部程序和数据 Cache 小、贵,快速,保存主存储器可能被访问的数据的一个副本
可以有多级 Cache
处理器
Cache
主存储器
磁盘
磁带
寄存器
34
Cache通常用 SRAM 来设计
速度更快但是比DRAM贵很多与处理器在一个芯片上
受空间限制,比离片内存要小很多 更快的访问速度 ( 1 cycle vs. 主存储器的几个 cycles for)
Cache 操作 : 在进行内存访问 (read or write) 时才需要进行 Cache 操作
首先检查 cache 中有没有被请求数据的副本 cache hit
直接从 cache 中进行数据访问 cache miss
从内存中将数据块读入 cache
Cache 的设计考虑 Cache映射 , 替换策略和 写入技术
35
Cache 映射Cache 的容量与内存相比非常少,那怎样把内存地址的内容放到 Cache 中呢?Cache映射就是用来分配内存地址到 Cache 地址,并决定是 hit 还是 miss三种基本技术 直接映射 全关联映射 组关联映射
36
2. Cache原理
CPU Cache 主存储器
字传送 块传送
处理器 Cache
地址
数据数据缓冲器
地址缓冲器
控制 控制
系统总线
37
3. Cache/主存系统基本结构
K块( 字)
存储器地址
1
2
3
数据
……
块
块标记行号
块长(K字) 字长
2n-1C-1
0
1
2
3
0
1 ( ) Cache 2( )主存储器
主存储器由多达 2n
个可寻址地址单位组成。每一个字有 n 位地址
为实现映射,将其分为定长的块,每块K个字,有M=2n/K个块
Cache 由 C 行组成。每行 K个字( C<<M );
每行有一个 Tag ,用来识别当前存储是哪一个块。 Tag 一般是主存地址的一部分
38
4. 直接映射内存地址被分成 2 个字段
索引字段 Index 代表 cache 地址 位数决定了 Cache 的容量
标记 Tag 索引指示的 Cache 地址的标记与内存
地址的标记进行比较 如果标记匹配,则检查有效位
有效位 Valid bit 指出是否数据已从内存中载入偏移量 Offset
用来在 cache line 中找到特定数据
Data
Valid
Tag Index Offset
=
V T D
39
4 Cache 的直接映射 ( 1 )
Tag 用来识别块号
40
5.全关联映射完全的内存地址保存在每个 Cache 地址中全部保存在 Cache 中的地址与访问地址同时比较有效位 Valid bit 和偏移量与直接映射相同
Tag Offset
=
V T D
Valid
V T D…
V T D
==
Data
41
5 全关联映射 (1)
42
6. 组关联映射直接映射和全关联的折衷索引 Index 与直接映射相同但是每个 Cache 地址包含 2 个或者更多的内存地址的数据和标记组标记被同时比较,象全关联映射方式带有 N 个组的 Cache 称为 N-路组关联
2-way, 4-way, 8-way are common
Tag Index Offset
=
V T D
Data
Valid
V T D
=
43
6. 组关联映射 ( 1 )
44
7.Cache 对系统性能的影响影响性能的重要参数:
Cache 的容量 Cache 能容纳的数据字节数量 标记和有效位没有计入该容量内
关联度 数据块的大小
大容量 caches 能达到更低的失误率但是访问成本更高 例 .,
2 Kbyte cache: 失误率 =15%, hit 成本 =2 cycles, miss 成本 =20 cycles 平均存储器访问成本 = (0.85 * 2) + (0.15 * 20) = 4.7 cycles
4 Kbyte cache: 失误率 = 6.5%, hit 成本 = 3 cycles, miss 成本不便 平均存储器访问成本 = (0.935 * 3) + (0.065 * 20) = 4.105 cycles
8 Kbyte cache: 失误率 = 5.565%, hit 成本 = 4 cycles, miss 成本不便 平均存储器访问成本 = (0.94435 * 4) + (0.05565 * 20) = 4.8904 cycles
45
7. Cache 的性能均衡不增加 Cache 的总大小来改进 Cache 的命中率 增加 line 长度 改变组关联
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
1 Kb 2 Kb 4 Kb 8 Kb 16 Kb 32 Kb 64 Kb128 Kb
1 way2 way4 way 8 way
% c
ache
mis
s
cache size
46
8. Xscale 255 的 Cache 组织Xscale 数据 Cache
32KB容量, 32 路组关联结构; 采用循环替换算法。 每行 32 字
节
每组 32路
共 32 组
47
XDNP网络处理器芯片结构