1 / 47

嵌入式系统与结构 第六课 嵌入式系统的存储器

嵌入式系统与结构 第六课 嵌入式系统的存储器. 本章内容. 存储器分类 按照写入能力和存储永久性进行区分 嵌入式系统存储器类型 常用存储器类型 高级 RAM 类型 嵌入式系统存储器组合 存储器的层次与 Cache. 概述. 嵌入式系统的功能涵盖 处理功能 利用处理器实现 通信 处理器和存储器之间的数据传递 用总线来实现 称为接口技术 存储功能 用 Memory 实现. m × n 存储器. …. M 个字. …. 每个字 n 位. memory external view. r/w.

Télécharger la présentation

嵌入式系统与结构 第六课 嵌入式系统的存储器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统与结构 第六课 嵌入式系统的存储器

  2. 本章内容 • 存储器分类 • 按照写入能力和存储永久性进行区分 • 嵌入式系统存储器类型 • 常用存储器类型 • 高级RAM类型 • 嵌入式系统存储器组合 • 存储器的层次与Cache

  3. 概述 • 嵌入式系统的功能涵盖 • 处理功能 • 利用处理器实现 • 通信 • 处理器和存储器之间的数据传递 • 用总线来实现 • 称为接口技术 • 存储功能 • 用Memory实现

  4. m × n 存储器 … M个字 … 每个字n位 memory external view r/w 2k × n read and write memory enable A0 … Ak-1 … Qn-1 Q0 什么是存储器 • 存储大量的位(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: 同时对多个位置进行访问 • 处理器的寄存器文件结构

  5. 本章内容 • 存储器分类 • 按照写入能力和存储永久性进行区分 • 嵌入式系统存储器类型 • 常用存储器类型 • 高级RAM类型 • 嵌入式系统存储器组合 • 存储器的层次与Cache

  6. 写入能力和存储永久性 • 传统ROM/RAM区分方式 • ROM • 只读,断电时数据仍然保存 • RAM • 读写,断电时数据丢失 • 传统划分的缺陷 • 高级 ROMs也能写入 • e.g., EEPROM • 高级 RAMs也能断电保存 • e.g., NVRAM • 写入能力 • 存储器写入数据的方式和速度 • 存储永久性 • 数据写入后存储器保存数据的能力

  7. permanence Storage Mask-programmed ROM Ideal memory OTP ROM Life of product EPROM Tens of EEPROM FLASH years Battery NVRAM Nonvolatile life (10 years) In-system SRAM/DRAM programmable Near Write zero ability During External External External External In-system, fast fabrication programmer, programmer, programmer programmer writes, 1,000s OR in-system, OR in-system, only one time only unlimited 1,000s block-oriented of cycles cycles writes, 1,000s of cycles of cycles 写入能力和存储永久性,延坐标轴显示了相对的程度 写入能力和存储永久性

  8. 本章内容 • 存储器分类 • 按照写入能力和存储永久性进行区分 • 嵌入式系统存储器类型 • 常用存储器类型 • 高级RAM类型 • 嵌入式系统存储器组合 • 存储器的层次与Cache

  9. Internal view 8 × 4 ROM word 0 3×8decoder enable word 1 word 2 A0 word line A1 A2 data line programmable connection wired-OR Q3 Q2 Q1 Q0 ROM: “Read-Only” Memory • 需要在放入嵌入式系统之前进行“编程” • 使用 • 保存GPP的软件 • 程序指令可以是一个或多个ROM字 • 保存系统需要的常量数据 • 组合电路实现

  10. OTP ROM: 一次可编程ROM • 由用户进行可编程连接 • 很低的写入能力 • 需要编程器,并且只能写入一次 • 非常高的存储永久性 • 采用熔丝技术 • 一般应用在最终产品中 • 便宜,难以修改

  11. 0V floating gate drain source (a) +15V source drain (b) 5-30 min drain source (c) (d) 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. internal view I3 I2 I1 I0 external view r/w 2k × n read and write memory 4×4 RAM enable 2×4 decoder enable A0 … A0 A1 Ak-1 Memory cell … rd/wr To every cell Qn-1 Q0 Q3 Q2 Q1 Q0 RAM: “随机访问” 存储器 • 典型的易失性存储器 • 断电后比特不被保存 • 内部结构比ROM更复杂 • 一个字由几个存储器单元组成,每个保存1位。 • 每个输入输出数据线连接到这一列的每个单元上 • rd/wr线连接到每个单元(cell) • 来自解码器的字使能线连接到所在行的每个单元; • 存储单元必须具有必要的逻辑,使r/w指示写入且该行使能时能存储输入数据位,在r/w指示读取且该行使能时能输出该单元保存的数据位

  15. SRAM Data' Data W DRAM Data W 基本RAM类型 memory cell internals • SRAM:静态(Static) RAM • 存储器单元使用 flip-flop 来保存位数据 • 需要6个晶体管 • 只要有电就保持数据 • DRAM: 动态 Dynamic RAM • 存储器单元使用MOS晶体管和电容来保持数据位 • 比SRAM更复杂; • 由于电容泄漏,需要“刷新” • 当读取时,字单元要被刷新 • 典型刷新率为15.625 ms. • 访问速度慢于SRAM

  16. Ram的变型 • PSRAM: 伪静态Pseudo-static RAM • 带有内建存储器刷新控制器的DRAM • 比较流行的低成本高密度的替代SRAM的一种存储器 • NVRAM: 非易失Nonvolatile RAM • 外部电源移除时仍然保持数据 • 电池后备 Battery-backed RAM • SRAM具有永久连接的电池 • 写入和读取一样快

  17. data<7…0> 11-13, 15-19 data<7…0> 11-13, 15-19 addr<12...0> 2,23,21,24, addr<14...0> 27,26,2,23,21, 25, 3-10 24,25, 3-10 /OE 22 /OE 22 /WE 27 /CS 20 /CS1 20 27C256 HM6264 CS2 26 block diagrams Device Access Time (ns) Standby Pwr. (mW) Active Pwr. (mW) Vcc Voltage (V) HM6264 85-100 .01 15 5 27C256 90 .5 100 5 device characteristics Read operation Write operation data data addr addr WE OE /CS1 /CS1 CS2 CS2 timing diagrams 举例: HM6264 & 27C256 RAM/ROM devices • 低成本的容量存储器 • 一般在8-bit MCU中应用 • 头两个数字指示器件类型 • RAM: 62 • ROM: 27 • 其后数字指示Kbit容量

  18. 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.3 25FF-100 device characteristics A single read operation CLK /ADSP /ADSC /ADV addr <15…0> /WE /OE /CS1 and /CS2 CS3 data<31…0> block diagram timing diagram Example:TC55V2325FF-100 存储器 • 2-Mbit 同步流水线突发SRAM 存储器 • 设计用于32-bit 处理器接口 • 能够快速的顺序读取或写入,也能够实现单字节输入输出

  19. FSM description GO=0 GO=1 ADSP=1, ADSC=1 ADV=1, OE=1, Addr = ‘Z’ ADSP=0, ADSC=0 ADV=1, OE=1, Addr = Addr0 S0 S1 Specification for a single read operation GO=0 Data is ready here! CLK /ADSP /ADSC /ADV addr <15…0> /WE /OE /CS1 and /CS2 CS3 data<31…0> GO=0 GO=1 ADSP=1, ADSC=0 ADV=1, OE=1, Addr = ‘Z’ ADSP=1, ADSC=1 ADV=0, OE=0, Addr = ‘Z’ S2 S3 GO=1 GO=1 GO=0 实例:更复杂的存储器协议 • 产生控制信号来驱动流水线读取模式的TC55V2325FF存储器芯片 • Addr0是起始地址 • GO是使能/禁止信号

  20. 本章内容 • 存储器分类 • 按照写入能力和存储永久性进行区分 • 嵌入式系统存储器类型 • 常用存储器类型 • 高级RAM类型 • 嵌入式系统存储器组合 • 存储器的层次与Cache

  21. 高级RAM • DRAMs 通常用于嵌入式系统处理器的主存储器 • 高容量,低成本 • 许多DRAMs存储器的改进型被提出 • 需要能够跟上处理器运行速度 • FPM DRAM: 快页模式 DRAM • EDO DRAM: 扩展数据输出 DRAM • SDRAM/ESDRAM: 同步和增强型同步 DRAM • RDRAM: rambus DRAM

  22. data Refresh Circuit . Buffer In Buffer Sense Addr Amplifiers Data Col Decoder cas rd/ wr Col ras, clock Buffer Out Buffer cas, Row Decoder Addr. Data ras Row address Bit storage array 基本 DRAM • 地址总线行列复用 • 行、列地址分别由行地址选择信号ras和列地址选择信号cas被顺序的锁存 • 刷新电路可以在DRAM存储器的外部或者内部 • 周期性选通连续的存储器地址,进行存储器内容刷新 • 在读写操作期间刷新电路不起作用

  23. clock ras cas address data row col data data data 同步(S)/增强型同步(ES) DRAM • SDRAM 在有效时钟边沿锁存数据 • 同步接口消除DRAM监测ras/cas和rd/wr信号所需的时间 • 列地址计数器写入有效列地址,然后在时钟沿递增计数器来访问连续的内存地址 • ESDRAM 改进 SDRAM • 在感应放大器中加入高速缓冲使列地址发生重叠。 • 更快的时钟和更低的读/写延迟时间

  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. 2m × 3n ROM 2m × n ROM 2m × n ROM 2m × n ROM enable A0 … … … Am … … … Q3n-1 Q2n-1 Q0 增加字的宽度和数量 增加字宽度 … A enable outputs 存储器组合 增加字数量 2m+1 × n ROM 2m × n ROM • 所需要的Memory大小与实际可得到的Memory器件容量不符 • 单可用的Memory容量更小,就需要组合几个更小的memories 成为一个更大的Memory • 位扩展:肩并肩连接增加字宽度 • 字扩展: 头尾连接增加字的数量 • 组合两种技术增加字宽度和字数量 A0 … … Am-1 1 × 2 decoder … Am 2m × n ROM enable … … Qn-1 Q0

  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原理

  37. 3. Cache/主存系统基本结构 为实现映射,将其分为定长的块,每块K个字,有M=2n/K个块 主存储器由多达2n个可寻址地址单位组成。每一个字有n位地址 Cache由C行组成。每行K个字(C<<M ); 每行有一个Tag,用来识别当前存储是哪一个块。Tag一般是主存地址的一部分

  38. Tag Index Offset V T D Data Valid = 4. 直接映射 • 内存地址被分成2个字段 • 索引字段 Index • 代表cache地址 • 位数决定了Cache的容量 • 标记Tag • 索引指示的Cache地址的标记与内存地址的标记进行比较 • 如果标记匹配,则检查有效位 • 有效位 Valid bit • 指出是否数据已从内存中载入 • 偏移量Offset • 用来在cache line中找到特定数据

  39. 4 Cache的直接映射 (1) Tag用来识别块号

  40. Tag Offset Data V T D V T D V T D … Valid = = = 5.全关联映射 • 完全的内存地址保存在每个Cache地址中 • 全部保存在Cache中的地址与访问地址同时比较 • 有效位Valid bit 和偏移量与直接映射相同

  41. 5 全关联映射 (1)

  42. Tag Index Offset V T D V T D Data Valid = = 6. 组关联映射 • 直接映射和全关联的折衷 • 索引Index与直接映射相同 • 但是每个Cache地址包含2个或者更多的内存地址的数据和标记 • 组标记被同时比较,象全关联映射方式 • 带有N个组的 Cache 称为N-路组关联 • 2-way, 4-way, 8-way are common

  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. 0.16 0.14 0.12 0.1 1 way % cache miss 2 way 0.08 4 way 0.06 8 way 0.04 0.02 0 cache size 1 Kb 2 Kb 4 Kb 8 Kb 16 Kb 32 Kb 64 Kb 128 Kb 7. Cache 的性能均衡 • 不增加Cache的总大小来改进Cache的命中率 • 增加 line 长度 • 改变组关联

  46. 8. Xscale 255的Cache组织 共32组 每行32字节 • Xscale 数据Cache • 32KB容量,32路组关联结构; • 采用循环替换算法。 每组32路

  47. XDNP网络处理器芯片结构

More Related