您的位置:首页 > 运维架构 > 网站架构

现代嵌入式计算 - 第4章 - 嵌入式平台架构 (第2部分, 易失性存储器技术)

2016-09-24 15:23 471 查看
易失性存储器技术
一个完整的嵌入式系统包括许多不同的存储技术。
Intel平台有两种不同的地址类型。第一个是I/O设备;通过in/out汇编指令读取,或者mov指令把数据送到MMIO空间。当一个程序读取MMIO空间的地址,它被路由到设备。另外一个关键的地址空间是内存。诸如在平台上的DRAM,ROM设备,或者片上SRAM存储器。内存设备的访问通过一个被称为存储控制器的硬件模块。我们讨论DRAM存储控制器的一些关键属性。

DRAM控制器

动态随机存取存储器是易失性存储的一种形式。位值是存储在设备上的一个非常小的电容器。电容器比逻辑门小得多,因此,密度比使用逻辑内存技术的诸如高速缓存大。比如,1MB的第二阶高速缓存在嵌入式里来说是相当大的,而2GB的DRAM在嵌入式系统里却很普遍。
DRAM密度高,每比特的价格又很低。然而,DRAM的读取时间通常比高速缓存或SRAM器件慢很多。
读取延迟是内存的一个关键性能属性。虽然采取了许多策略,比如使用缓存设计,以减少读取延迟,然而在许多情况下,它还是直接影响系统的性能。
毕竟,处理器不得不等待从内存读取的结果才能继续。为了读到DRAM位,逻辑装置必须检查存储在电容器的位的值。这个通过传感放大器。传感放大器需要一点时间来弄清楚该位是否有置位。
另一个关键性能属性是DRAM支持的总带宽或吞吐量。与DRAM的读出等待时间几乎没有改善相比,DRAM密度和总吞吐量的增加带来性能的显着提升。DRAM的吞吐性能的关键改进是,通过流水线实现尽可能多的读取和写入请求。DRAM装置支持并发请求。DDR存储器的请求和响应是独立的;这允许在等待响应时排队多个请求。
重要的是,存储器接口的标准化,使得许多不同的厂家生产兼容设备。在写这篇文章的时候,DDR2是在嵌入式平台上使用的主要的DRAM的类型。DDR3正用在主流计算平台。新内存技术在嵌入式平台的应用通常滞后于主流平台(PC/服务器)。这往往是由于新存储器技术被引入市场早期价格较贵的缘故。

DRAM接口及许多物理属性由JEDEC标准化。这个组织是DDR1,DDR2和DDR3标准制定者。这些设备被称为同步DRAM,因为数据是与时钟线同步提供。DDR(doubledatarate)代表双数据率,因为在时钟上升沿和下降沿同时提供数据。如我们上面提到的,增加并行请求的数量可以提高存储器技术的吞吐量。流水线的深度和时钟速度已经从DDR1增加到DDR2和DDR3,导致了DRAM吞吐量的显著增加(见表4.4).

英特尔Atom处理器E6xx系列的内存控制器支持DDR2-667和DDR2-800
(每秒800兆)。

DRAM装置内的存储单元以行列矩阵组织,如图4.13所示。读出的过程,第一步是先读出行,然后从行中读出字,最后把数据送往内存控制器。每步之间都存在延时。但是,如果是从行中顺序读取数据,那么延迟要小很多。
DRAM控制器支持一次传多个字,比如一个32位的DRAM支持一次传8个字(4x32位),这个能力在处理器高速缓存和内存交换数据时非常有用。

对DRAM子系统的另一优化是保持缓冲行(页)有效多长时间的策略。正如我们提到的,访问一个活动或打开的页比重新加载时间更短。由于程序通常具有较高程度的局部性,通常最好保持一个页面打开,直到一个新的行被存取。保持一个缓冲行有效直到新的请求行,称为页开放策略。如果控制器在访问该页面后主动关闭该页面,它被称为页面关闭策略。
既然访问打开的页面有这么大的优势,DRAM设备被设计为多个区域,每个区域有自己的页(缓冲行)。访问一个区域的页不影响另外一个区域的页。这样您的程序,可以一部分数据设计在某区域,而另一部分设计在另外的区域,避免交替访问导致缓冲行(页)必须关闭。
嵌入式系统中,在内存分配上具有更多的灵活性。一个合理的性能优势可以通过分配不同的使用模式的内存区域。例如,在某个路由器设计中,网络数据包,操作系统代码,应用程序代码被分配到不同的内存区域,带来约5%的性能增益。
DRAM的讨论不提刷新周期是不完整。DRAM单元是微小的电容器。因为电容器的电会随时间而泄漏,这可能最终导致1位变成0位。显然,这是不能接受的。
DRAM中的每一行必须有足够的频率进行刷新,以保证单元不放电。一般来说,每个DRAM设备必须每64毫秒刷新。如果设备有8192行,那么刷新周期必须发生每7.8毫秒。
有些平台支持DDR的自我刷新;在这种情况下,设备处于低功耗模式,DRAM设备自己执行刷新保持数据。这通常用来,当系统处于休眠状态时,存储控​​制器可以关闭而减少待机功耗。
电容器保持电荷的能力与温度相关;如果你开发一个温度范围广泛的平台,刷新频率可能需要增加,以保持存储器单元中的数据。按所需的时间间隔刷新是非常重要的。大部分的测试可能会在室温下进行,内存出错的几率是比较低的。但是,如果你的平台部署在现实世界的温度里,你真的不会希望调试随机的系统崩溃(因为内存出错)。我遇到过这样的问题,那毫无乐趣可言。

SRAM控制器

静态随机存取存储器也是易失性存储技术。创建SRAM所用的技术和创建SOC是相同的。所以SRAM可以被添加到SOC中(而DRAM使用的是完全不同的技术)。SRAM的速度比DRAM快得多,SRAM往往几个CPU时钟周期的范围内响应请求。当SRAM被放置在SOC中,它位于地址映射的特定位置。系统软件和设备驱动程序可以分配SRAM供其使用。需要注意的是,它一般不通过操作系统来管理;它通常是留给了板级支持包使用。SRAM存储器通常分配给非常频繁访问的特殊的数据结构,
或者从I/ O设备数据流。
在一般情况下,这些SRAM模块不与高速缓存相干;使用这些区域应映射到一个非高速缓存地址空间。在某些平台上,缓存可以部分被改变用途作为SRAM,此时高速缓存分配/查找模块被禁用。这被称为高速缓存RAM。
CPU中的缓存通常由高速SRAM单元制作。SRAM的密度远远比DRAM低,所以片内SRAM最多以M计,而DRAM的通常是千兆字节。
鉴于SRAM存储器的读/写访问速度远远比DRAM快,我们不必采用复杂的工艺,采用管道请求技术。
SRAM控制器一次处理一个交易。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息