Symbian OS的硬件——闪存(Flash memory)

Symbian 电话使用闪存作为它们存储系统代码和用户数据的主要场所。闪存是可编程可电子擦除的硅基非易失性存储介质。

闪存的使用是通过与它的物理操作进行绑定实现的。单独的比特位只能从1态转化为0态。将一个比特位存为1态要求擦除整个闪存块或闪存片段,通常是64KB。往一个0态的比特位写入不会产生任何结果。

闪存有两种主要的类型:

闪存有两种主要的类型:NORNAND。这个名字涉及到它们基本的硅栅设计。通过文件系统的选择,这两种闪存类型在Symbian OS电话里都得到很好的利用。第九章,文件服务器,将讨论文件系统更多的细节。

内嵌系统代码和应用对于Symbian应用程序来说就是一个很大的只读驱动器,被称为Z:盘。这个复合的文件系统是由芯片内执行(XIP, execute in place)代码和在要求时从只读文件系统(ROFSRead Only File System)加载的代码构成。Z:盘有时候被称为ROM映像。

用户数据和安装的应用程序位于内部的可写的C:盘上。C:盘用两种不同的文件系统中的一种实现,这两种文件系统是:用于NORLFFS (Flash Translation Layer)或者NAND顶部的闪存转换层(FTL)之上的标准FAT文件系统。

当今典型的Symbian电话为代码和用户数据使用3264MB的闪存——这是全部的ROM预算。

Symbian使用很多技术以减小电话内代码和数据的大小,比如THUMB指令集、预连接XIP映像、压缩的可执行包、强调减少代码大小的压缩数据格式和编码规范等。

2.4.1 NOR闪存

NOR闪存用于存储由CPU直接运行的XIP代码,它被连接到SoC上静态的内存总线上,可以像RAM一样随机寻址。如果闪存定位于0物理地址,即0x00000000,那么ARM CPU可以从NOR Flash直接启动。

对于用户数据,Symbian使用了NOR闪存顶部的LFFS(Log Flash File System)。这个文件系统被优化了,以获得NOR 闪存的特性中的优点。在第九章文件系统里,我描述了LFFS的细节。

NOR闪存允许无限次地写入同样的数据块,将比特位的1态转化为0态。为了增加速度,闪存经常有一个3264字节的写缓冲,这些缓冲允许并行地写入一些字节。带缓冲的写操作需要耗时50600微秒,这个时间取决于闪存中已有数据及要写入的数据的位模式。全0或全1是最快的,类似于0xA 5A 5这样的模式就是慢速的了。

擦除NOR片的操作是慢速的,需要半秒钟一秒的时间。但是擦除过程可以被挂起并在稍后被重新启动——LFFS使用这个特色在后台执行要删除数据的清除,同时处理前台请求的响应。

完整的写和擦除操作将更新闪存内的状态寄存器,也可能产生一个外部中断。如果没有外部中断,CPU将需要使用高速定时器,以向闪存查询完成事件。

通过使用有边读边写(Read–While–Write)能力的NOR闪存,建造一个包含XIP代码和LFFS数据的NOR部件的Symbian OS电话是可能的。

2.4.2 NAND闪存

NAND闪存被看作是基于块的磁盘,而不是随机可寻址的内存。NOR不同,它没有任何地址线,因此在内存映像中是不可见的。这就意味着代码不能直接从NAND执行,而是必须先拷贝到RAM里。相对于NOR设备而言,这使得在NAND电话中需要额外的RAMNAND闪存的写速度大约比NOR闪存快10倍。

电话不能直接从NAND启动。这种情况下,进程要求一系列相互依赖的启动装载器,因而更复杂了,最终ROM上一些兆字节的核心Symbian OS映像被装载进RAM,这些映像将在这里执行。

NAND也先天地没有NOR可靠。坏块的产生会使操作中的比特位受到影响。为了减轻这种影响,在每页数据设计了错误校验码(Error Correction CodeECC),通常是512字节。每次读的时候,ECC被重新计算,它和当前存储的ECC值之间的差异被用来修正运行时的单个位错误。多个位错误不能被发现,这个页就会被认为是坏页。

相对于NOR,即使是考虑到额外必需的RAMNAND的低价使它对庞大的电话市场很有吸引力。

NAND闪存部件使用专用接口被绑定到SoC上,这种接口通过8位或16位总线直接连接到NAND芯片的引脚。接口块包含计算读写ECC的电路,它为数据传输使用DMA接口。

NAND接口使用数据页往NAND闪存里读写数据。小块NAND设备使用512字节的页,而大块设备使用2048字节的页。数据以块进行擦除,块将包含3264个页。

 =====================================================================================

说明: 本文由Bequan翻译自Symbian Press的Symbian OS Internals: Real-time Kernal Programming一书。任何人需要转载或引用,请先通过Email(a-pangu@163.comsymbianchn@gmail.com)与Bequan联系,在获得许可后方可转载或引用,否则视为侵权行为。转载或引用时,请在文章中注明上述翻译信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值