RAM是系统内所有活动数据的根据地,而且正在执行的代码通常也是在RAM上。RAM的品质决定了你同步运行的应用程序的类型和数量,RAM的访问数度也影响着它们的性能。
一个Symbian OS电话会有8或64MB的RAM。OS本身需要适量的RAM,而总的需求则由预期的用例决定。多媒体需要在百万像素的摄像机和视频记录上大量的RAM。如果使用了NAND闪存,兆字节的代码必须被拷贝进RAM里,这不像在适当的地方执行的NOR闪存。
RAM芯片在电话总成本中是很重要的一个部分,这既体现在金钱上,也体现在用来维持它的状态所消耗的额外的电能上。
不仅仅CPU向存储子系统提交很高的要求,所有的主要外设总线都要从RAM读写数据。它们的要求和相互的竞争在设计期间都要考虑到。设计出考虑了带宽和延时实际用例,必须了解提交到存储系统的要求。
2.3.1 移动同步动态随机存储器(Mobile SDRAM)
最近几年,内存厂商们已经开始专门为移动电话市场生产RAM,称之为LOW POWER或Mobile SDRAM.
这种内存已经为低电耗的要求和100MHz左右的低速接口进行了优化,普通PC上接口的速度是它的四倍。
移动内存有另外的特性以帮助维护电池生命。关闭电源模式可以允许内存控制器在不需要外部控制电路的情况下禁用RAM部分。
DRAM内的数据必须被周期性的更新以维护它的状态。空闲时,DRAM使用自刷新电路来完成这个工作。Temperature Compensated Self Refresh(TCSR)和Partial Array Self Refresh(PASR)被用来减少空闲时的电能消耗。TCSR和PASR的结合可以将监视电流从150减少到115μA.
2.3.2 内部RAM(IRAM)
嵌入到SoC内的内存被称为内部RAM,它比主存小得多。
从NAND Flash引导系统的时候,核心装载器代码从NAND的第一个块被拷贝到RAM。对于这些代码来说,IRAM以其简单的启动过程而成为理想的目标。一旦核心装载器从IRAM上开始运行,它将初始化主RAM,以使核心OS映像可以被解压并拷贝到主RAM上。
IRAM可以作为一个内部流缓冲器使用。LCD控制器驱动非智能显示器每秒需要重复读取整个流缓冲器60次。因此,16位QVGA显示器每秒需要8.78MB数据。通过把流缓冲器移进IRAM里,系统可以节省大量电能和主存带宽。专用的IRAM流缓冲器可以为LCD访问做进一步的优化以减少电能的需求。
IRAM作为SoC上多个处理间的草稿本或者消息箱也是很有用的。
要注意把少量代码放进IRAM里不会提升这些代码的执行速度,因为ICache已经在更快更好地做这项工作。
=====================================================================================
说明: 本文由Bequan翻译自Symbian Press的Symbian OS Internals: Real-time Kernal Programming一书。任何人需要转载或引用,请先通过Email(a-pangu@163.com或symbianchn@gmail.com)与Bequan联系,在获得许可后方可转载或引用,否则视为侵权行为。转载或引用时,请在文章中注明上述翻译信息。