代码编织梦想

前面的几篇文章已经说明了PCM的特性,它可以和传统的DRAM构成混合内存提高计算机系统的性能的同时降低内存功耗。然而仍然有人提出将PCM用于外存,这种非易失的新型储存器用于外存必将大幅提高计算机的速度。但是鉴于PCM的价格较高,所以可以使用PCM和flash的混合外存。

首先介绍flash,闪存是一种读写速度快、低功耗、耐高温且无噪声的新型储存设备。闪存分为NOR型和NAND型,不同类型的闪存具有不同的特点,NOR型随机性比较好,但是读和擦除的速度慢,NAND型的优点是写速度快,但是随机性差。另外闪存具有读写次数的限制,一般为10的4-5次方左右。闪存必须有擦除步骤,其擦除的过程就是将所有的空闲块全部置“1”,因为闪存的特点是只能写“0”,因此写数据的过程也就是写“0”的过程。为了延长闪存的寿命,需要一种负载均衡策略。

均衡算法主要包括了两种策略,动态和静态均衡算法。动态算法是储存有数据的块可能会不断进行更新,当该块到达一定的阈值的时候就将该快重新定位到另一个数据块,拷贝相应的数据信息并改变各个链表信息。这种动态的策略保证了同一个数据块不会被频繁的访问。但是还有一个问题,有些数据块是很少更新甚至不会更新的(比如代码段),对于这些数据占用的段不会被多次写。为了更进一步的平衡写次数,还需要一种静态分配策略。最简单的静态分配策略就是记录每个块发生更新的次数,当这些块更新的总次数到达一定的阈值的时候就将”冷数据块“(写次数少的块)和“热数据块进行互换;从而到达负载均衡的目的。还有一种策略是建立起两个空闲数据块链表,一个是较少更新空闲表,一个是较频更新空闲表。当发生数据更新的时候,物理块也会发生变化,这样就会使冷的数据热起来,热的数据块冷下去。

PCM作为储存器也可以使用与flash同样的方式。另外由于PCM的写不是以块为单位的,同时PCM在写的时候也没必要先擦除(全部置1)。为了降低PCM写的数量,在写盘的时候,先执行读操作,将读出的数据与将要写入的数据进行比较,修改不同的位。为了进一步减少写的数量,可以设置一个标志位代表数据是否相反。比如读出的数据与将要写入的数据的海明距离大于n/2,则将该标志位置1,以保证修改的数据永远小于n/2。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gaoxiang__/article/details/38979245

flash磨损均衡技术解析(wear-leveling)_cany1000的博客-爱代码爱编程_磨损均衡

1、命令的传输 传输层接收到来自于应用层的命令请求后,根据命令的不同将相关寄存器中的信息按照SATA标准协议规定的格式封装为FIS传递给数据链路层。当数据链路层成功接收后,向传输层反馈一个传输完成的状态标志。传输层接收到来自数据链路层的FIS后,判断该FIS是否有效以及类型。如果是有效的类型,则按照SATA标准协议规定格式进行解析,并将其中的数据映射到对应

flash存储器磨损均衡原理及实现_leeee的博客-爱代码爱编程_flash磨损均衡

1. 背景 现在嵌入式开发使用的存储器时逐渐都直接使用Flash,原因是Flash价格便宜,空间大,内置,直接使用不需要再加其他存储外设。但如果直接用操作EEPROM的方式来使用Flash会带来一些问题,主要分为两类:a.使用寿命,b.读写速度。EEPROM可以单字节读写,而FLASH只能按整个sector(page)擦除,同时最小读写单位不一定可以细化到

nand flash均衡算法_weixin_stonlywu的博客-爱代码爱编程_flash均衡算法

Nand Flash由于有擦除次数的限制,因此在对其进行写操作时需要使用写均衡算法使得nand flash上各块的擦写次数均衡,从而提高nand flash的使用寿命。 2         FTL实现方案 2.1        FTL整体框架 图2-1 FTL整体框架 图2-1所示为FTL的整体框架示意图,途中的虚线框中模块即为FTL模块。从图中可知,

【iot】stm32 flash 均衡保存算法-爱代码爱编程

在实际应用中,经常需要在程序运行过程中保存或读取一些数据,这些数据在工作中经常会变化,而且掉电后也不能丢失,所以需要及时地进行存储,存储这些数据常用的存储器是 EEPROM。 STM32 虽然本身不带 EEPROM,但是它支持自编程技术,可以利用内部 FLASH 来模拟 EEPROM,这样不仅简化了设计,而且降低了成本。 FLASH 的擦写次数是有限的

面向大数据应用的混合内存架构特征分析_唐名威的博客-爱代码爱编程

面向大数据应用的混合内存架构特征分析 李鑫1,陈璇2,黄志球1 1. 南京航空航天大学计算机科学与技术学院,江苏 南京 211106 2. 南京航空航天大学自动化学院,江苏 南京 211106 摘要:受限于DRAM的扩展性,大数据分析及相关应用性能难以有效提升。新型非易失性存储器凭借其非易失性、高存储密度、低能耗等优点,为大

stm32内部flash使用磨损均衡算法(erase leveling)-爱代码爱编程

STM32内部Flash使用磨损均衡算法(Erase Leveling) STM32内部Flash的写寿命大约是1万次,假如我们在其Flash中存储数据,每天100次写操作,100天后Flash就无法继续可靠使用了,本文采

负载均衡算法-爱代码爱编程

负载均衡算法 负载均衡算法说明 负载均衡介绍 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。

flash 磨损均衡处理-爱代码爱编程

FLASH磨损均衡原理及实现 背景磨损均衡原理磨损均衡实现定长数据读写不定长数据读写多个不定长数据存储读写总结 背景 flash为嵌入式设备中常见的存储器,优点:便宜,容量大,但缺点也比较明显,最大的缺点是寿命问题,flash编程只能将bit由1位置0,不能将0位置1,将0置1只能擦除扇区,而扇区往往比编程单位要大很多,哪怕我们只对对一个地址

《我的第一本算法书》 - 学习记录-爱代码爱编程

目录 0. 算法基础知识0-1. 什么是算法0.1.1 算法和程序的区别0.1.2 排列整数的算法:排序0.1.3 如何选择算法0-2. 运行时间的计算方法0.2.1 输入数据的量和运行时间之间的关系0.2.2 求运行时间0.2.3 运行时间的表示一. 数据结构 1-1. 什么是数据结构1-2 链表1-3 数组1-4 栈1-5 队列1-6 哈希表1

[FatFs] 关于FatFS在SPI FLASH上无擦写均衡导致问题的疑问-爱代码爱编程

[FatFs] 关于FatFS在SPI FLASH上无擦写均衡导致问题的疑问  [复制链接]   taobaofarmer 47 主题

littefs文件系统移植_li星野的博客-爱代码爱编程

获取源码 官网:https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/ 源代码:https://github.com/littlefs-pro

flash闪存内的wear leveling均衡算法_nor flash 均衡算法-爱代码爱编程

wear leveling算法按作用范围分为:全局global wear leveling 单芯片上dynamic wear leveling,static wear leveling dynamic wear leveling :找到擦除次数最小的块,写入数据,赋予逻辑地址,以此反映数据更新。 之前的数据块记为invalid,直到没有空闲块,inv