背景:

随着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. 讲一讲什么是 MMAP
  2. 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
  3. python3安装步骤mac-Mac 安装Python3
  4. 阿里云Kubernetes服务上使用Tekton完成应用发布初体验
  5. linux中dpkg找不到命令_工作中常用的Linux命令介绍与实践
  6. C++单例实现及回收(转)
  7. [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
  8. Eclipse Photon即将发布
  9. SSP控制寄存器SSPCON
  10. abaqus2017安装后启动cae报错_Abaqus2017安装全过程
  11. keras python3.7_主页 - Keras 中文文档
  12. GDI 总结三: CImage类使用
  13. 数据仓库系列文章二:浅谈企业数据仓库总线矩阵
  14. f(x)的泰勒(Taylor)展开式
  15. RK3399 4.4内核 修改DDR频率
  16. note4-WEB源码拓展
  17. html中a做成按钮,css如何将超链接a设计成按钮样式
  18. Ansible—— 29. 通过set_fact模块定义变量
  19. B. Cat Cycle
  20. IDEA跳转到上一个下一个方法的快捷键

热门文章

  1. JSP基础教程之表单编辑
  2. JSP基础教程【1】
  3. 新能源汽车行业资讯-2022-9-19
  4. 刚体转动的惯性张量和转动惯量的区别和联系
  5. 定时报警器c语言程序,单片机控制的简易定时报警器电路设计(含电路图和程序)...
  6. php201534,PHP设计聊天室步步通4
  7. 第三代oid铺码软件_你好点读笔!自制小达人点读目录册之书名贴铺码
  8. 黑莓手机刷linux,黑莓老机型ROM刷机资源
  9. gridview的sort_GridView中排序问题
  10. 快解析结合任我行crm