充分利用MAXQ®处理器的非易失存储服务
时间:05-21
来源:互联网
点击:
个数据元都有精确的条目对应。填写后的页面如图3示意。这样,就可以安全擦除源页面,并把页面报头写入目标阵列。
图3. 空间恢复后,图2中的数据页面会如此表现。
这个过程对于数据存储会非常安全。然而,当使用闪存器件时还要面对另一个风险:在写或者擦除操作中掉电。假如发生掉电,有可能会破坏一个或者多个页面(例如写操作)或者不能完全擦除页面(例如擦除操作)。而我们这种紧凑的操作从本质上讲是安全的。可以考虑以下的情况:
- 假如在填写操作时掉电,源页面仍然保持完整。当重新上电后,很容易辨别新写的页面(他们没有页面报头)并把它擦除,再重新启动填写操作。
- 假如在正擦除旧页面时掉电,可能会包含无效的报头。可以擦除这些页面并把报头添加到新页面。
- 假如在正把页面报头写入到新页面时掉电,数据仍然是完整的。页面报头更新操作可以再次重新启动。
简言之,这些预料之外的突发事件不会导致阵列数据被破坏并不可恢复。
方案2的改进
这里介绍的存储子系统没有错误检测的机制。在数据元标识符中有一些位(这里的是6位)没有被使用。可以使用CRC6算法(x6 + x + 1)根据数据元计算出CRC以确保没有发生读写错误。这虽然不是特别强大的算法(它会错过多位错误中的1/64),它可以检测到多数可能发生的错误。
这个方法对系统的另一个限制是读取时间很长。每次读操作都需要读取阵列中的所有记录,以找到最近的记录。有3个方法可以用来缩短读取时间:
- 在数据单元中为正向指针留一个空字节。当数据更新时,为正向指针分配一个新的入口地址。按照这种方式,数据表格可以按链表的方式移动。
- 向后移动表格。这样就可以在被请求信号第一次出现时停止搜索。
- 假如单元数量很少,可以在启动时建立一个RAM阵列,包含单元ID和指针。后面的读取会很快。只需读RAM阵列以决定从哪儿获取数据单元。
结论
非易失数据存储是每位设计工程师迟早都必须面对的问题。使用MAXQ处理器灵活的闪存,就不用再借助于串行存储保存配置数据了。
存储 服务 易失 处理器 利用 MAXQ® 充分 相关文章:
- dsPIC33F系列DSC的 SD存储卡接口设计(01-05)
- 基于闪烁存储器的TMS320VC5409 DSP并行引导装载方法(05-23)
- DSP外部Flash存储器在线编程的软硬件设计(07-10)
- DSP片外高速海量SDRAM存储系统设计(01-18)
- 一种新型的多DSP红外实时图像处理系统设计(02-03)
- 浅谈Win CE应用程序的可移植性(03-02)