背景:

随着NVMe的流行,高并发多线程多核的SSD必定是未来方向, sata的单核及FTL架构已不在适用于当前的NVMe firmware。

高性能低功耗是SSD未来的趋势,但随之而来的是复杂的设计,和各种内部IO,该如何平衡和合理分配资源将是Firmware设计的重中之重。

如果管理各种Internal IO

          这里引进一个 机制---arbiter,来管理各种IO,让其有序执行,减少相互争夺资源,以便减少不必要的开销。

为了简单理解arbiter机制,这里讲一个简单的算法:

比如一个3室的房子有一个大门,只有一把钥匙,拿到钥匙才能进门,这里把token比作钥匙。这3个房间住着3个人,就是3个open block,但是由于某些限制这个套三只能同时有一个人呆在里面,所以需要一个规则来定义每个人一次性能在房间待多久,这里用credit来描述。只有credit还不够,还需要一个规则描述3个人进房间的比例,用ratio来描述。

FTL arbiter:

token:钥匙,要写资料必须拿到token。(当前token的credit消耗完,arbiter会仲裁token。)

credit:进门时间,(每次写多少)。(每次arbiter的时候,由ratio比例配置credit。)

ratio:决定进入时间比例(写比例)。(check free space,s2t,gc enable都会去配radio比)。

S2T/CKPT/GC/HOST-IO/SYS 通过arbiter得到token(钥匙),credit通过具体场景分配。

eg:host的credit写完了,ckpt/gc/s2t都没有达到触发条件,则host继续得到下一轮credit。消耗完这轮credit,如果s2t enable,则轮到arbiter 为bs分配credit,消耗完credit,如果gc enable,arbiter为gc分配credit。

FTL在trans write消耗credit,如果消耗完credit就需要切换token,HOST消耗完切换到GC,GC如果消耗完就切换到S2T,S2T直接给credit(eg: one short给3 superpage, two-pass program cnt 根据nand特性给cnt),CKPT如果enable也会轮到token。

FTL TRANS WRITE写一个Data Unit消耗一个credit,消耗完会进行下一次arbiter。

S2T : HOST  =  ?

S2T:消耗1 TLC,释放3 SLC。----->释放2个SLC blk.

为了最大的满足性能, 即释放=消耗, HOST:S2T = 2:1时,满足消耗=释放。

GC: HOST  =  ?

GC的情况较复杂,具体需要看GC是生产者还是消费者,  SLC or TLC:

比如: GC是生产者的时候:  GC : HOST  = 1 : 1 (根据blokc valid count来配置)

ratio 该如何配置?

---未完待续

FTL 算法之Arbiter相关推荐

  1. 详细描述NAND FLASH FTL 层算法

    NAND Flash FTL (Flash Translation Layer) 层算法是用来管理 NAND Flash 存储设备的软件层.它负责将逻辑块地址映射到物理块地址,并处理错误校正和块擦除等 ...

  2. 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习

    2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...

  3. 计算机组成原理之磁盘

    一 机械硬盘结构 1.1 盘片(磁面)( platter) 盘片就是磁盘中存储数据的介质,磁盘是通过主轴连接的多个盘片构成的存储设备. 1.2 主轴 磁盘是通过将多张盘面连接而成或者看成是堆积而成的, ...

  4. 无法扩展该卷 因为群集的数量将超过文件系统_Ubifs文件系统分析

    转载是一种动力 分享是一种美德 1.  引言 UBIFS,Unsorted Block Image File System,无排序区块图像文件系统.它是用于固态硬盘存储设备上,并与LogFS相互竞争, ...

  5. 给SSD(固态硬盘)编程

    给SSD(固态硬盘)编程(1):简介和目录 本文由 伯乐在线 - 熊铎 翻译.未经许可,禁止转载! 英文出处: Emmanuel Goossaert (CodeCapsule.com) .欢迎加入 翻 ...

  6. 阿里云总监课,存储系统设计——NVMe SSD性能影响因素一探究竟

    目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD--多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3 ...

  7. 阿里云储道深度解析存储系统设计——NVMe SSD性能影响因素一探究竟

    NVMe SSD的性能时常捉摸不定,为此我们需要打开SSD的神秘盒子,从各个视角分析SSD性能影响因素,并思考从存储软件的角度如何最优化使用NVMe SSD,推进数据中心闪存化进程.本文从NVMe S ...

  8. 【阿里云总监课】存储系统设计——NVMe SSD性能影响因素一探究竟

    目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD--多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3 ...

  9. 【易开嵌入式】rt-thread+stm32f407+nandflash,实现RL-FLASHFS文件系统移植

    版权声明:本版面文章皆为原创.或参考其他技术网站.博客后自己动手做实验所得,转载请注明出处. 鸣谢:感谢eric硬汉 商务合作:lz_kwok@foxmail.com 易开嵌入式工作室 基于单片机系统 ...

  10. 固态硬盘(SSD)原理及相关介绍

    1. 什么是SSD 固态硬盘(Solid State Drives),用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片.DRAM芯片)组成.固态硬盘在接口的规范和定义.功能及使 ...

最新文章

  1. spring boot第二讲
  2. 《移动项目实践》实验报告——Android数据存储
  3. WIN32控件使用大全
  4. Hive常见的属性配置
  5. 来自山西机器人乐队_冰山上的机器人X三十禁放映 | 庞宽、李霄云对谈预告
  6. 如何深入理解计算机视觉?(附思维导图)
  7. 圣诞节海报设计需要的手写字体素材
  8. 华为机试HJ105:记负均正II
  9. python数据包发送给云平台_用python发送短消息(基于阿里云平台)
  10. 如何在github上找到自己想要的代码_如何在 GitHub 上找到免费且实用的软件?
  11. 【图解CAN总线】-4-详述CANFD和Classic CAN的Frame帧结构差异
  12. 基于51单片机的酒精检测仪设计
  13. 解析java数值类型数据混合运算
  14. matlab太阳系行星,Matlab动画模拟太阳系行星运动.doc
  15. 【SEO网络推广】会被百度K站的原因
  16. 静态网页,动态网页,伪静态网页区别以及优缺点
  17. 使用python制作矢量图
  18. RSA之 两组e与φ(n)不互素解法
  19. Mac录屏想只要电脑内置的声音
  20. uniapp ui框架——uView 及其可视化搭建工具

热门文章

  1. 不同编码的MP4视频在各大游览器播放总结
  2. Dezender下载及使用说明
  3. 分治算法求螺丝螺母匹配问题
  4. SolidWorks2010
  5. 联想微型计算机如果进入BIos,联想笔记本各机型如何进入bios
  6. 单片机大学生实习感悟体验
  7. 监控网站与接口宕机,并推送 App 消息提醒的程序
  8. positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
  9. 检测卡常见错误:1A、1B、20、21、22
  10. 树莓派通过CuteFTP 9.0 与 电脑互传文件