码迷,mamicode.com
首页 > 其他好文 > 详细

Firmware开发

时间:2018-06-16 21:45:06      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:失效   raid   大小   AC   运行   保存   绑定   nand   poll   

 

SSD Firmware开发需要考虑的问题:

OP空间选择:OP空间的大小直接关联成本和写放大,OP大则写放大小成本高,OP空间小则写放大大成本低,需要找到一个均衡点;

 

NAND空间的组织管理:如何组织所有空间,粒度是多大;如果划分用户空间和firmware运行使用空间;

 

Raid机制:需要N个lun划分一组,来做raid,从而达到数据保护的目的。

 

Wear leveling(磨损均衡):如何让写入数据均匀分布,如何避免某些块被擦除次数太多;

 

FTL管理:如何存储FTL,FTL是否有并发访问,如何控制;

 

GC策略:主动回收还是被动触发回收,选择何种回收策略以及写放大可以降低到多少。

 

background task:为应对NAND存储失效特性,需要定期扫描重新写入某些数据,如何安排这个工作。

 

SSD Firmware编程方式:

异步IO请求:IO设备为达到高性能都要采用异步IO,processor之间发送请求都是异步机制,需要保存上下文。

 

事件驱动方式:polling方式会造成空转及浪费,导致延迟高,使用事件驱动方式,某个事件发生时直接使用绑定函数进行处理,高效。

 

状态机驱动方式:一个IO请求会经历N个阶段,为编程简单,可以在不同阶段赋予它不同的状态,状态切换时直接调用总的状态机函数就能进行到下一步,简化编程。

 

Cache机制:为降低延迟,不会等到数据真的写入到NAND中之后再返回给用户,写入到cache就返回,需要电容保护cache。

 

Firmware开发

标签:失效   raid   大小   AC   运行   保存   绑定   nand   poll   

原文地址:https://www.cnblogs.com/whutyuxinghai/p/9120625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!