FTL 算法之Arbiter
背景:
随着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相关推荐
- 详细描述NAND FLASH FTL 层算法
NAND Flash FTL (Flash Translation Layer) 层算法是用来管理 NAND Flash 存储设备的软件层.它负责将逻辑块地址映射到物理块地址,并处理错误校正和块擦除等 ...
- 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习
2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...
- 计算机组成原理之磁盘
一 机械硬盘结构 1.1 盘片(磁面)( platter) 盘片就是磁盘中存储数据的介质,磁盘是通过主轴连接的多个盘片构成的存储设备. 1.2 主轴 磁盘是通过将多张盘面连接而成或者看成是堆积而成的, ...
- 无法扩展该卷 因为群集的数量将超过文件系统_Ubifs文件系统分析
转载是一种动力 分享是一种美德 1. 引言 UBIFS,Unsorted Block Image File System,无排序区块图像文件系统.它是用于固态硬盘存储设备上,并与LogFS相互竞争, ...
- 给SSD(固态硬盘)编程
给SSD(固态硬盘)编程(1):简介和目录 本文由 伯乐在线 - 熊铎 翻译.未经许可,禁止转载! 英文出处: Emmanuel Goossaert (CodeCapsule.com) .欢迎加入 翻 ...
- 阿里云总监课,存储系统设计——NVMe SSD性能影响因素一探究竟
目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD--多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3 ...
- 阿里云储道深度解析存储系统设计——NVMe SSD性能影响因素一探究竟
NVMe SSD的性能时常捉摸不定,为此我们需要打开SSD的神秘盒子,从各个视角分析SSD性能影响因素,并思考从存储软件的角度如何最优化使用NVMe SSD,推进数据中心闪存化进程.本文从NVMe S ...
- 【阿里云总监课】存储系统设计——NVMe SSD性能影响因素一探究竟
目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD--多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3 ...
- 【易开嵌入式】rt-thread+stm32f407+nandflash,实现RL-FLASHFS文件系统移植
版权声明:本版面文章皆为原创.或参考其他技术网站.博客后自己动手做实验所得,转载请注明出处. 鸣谢:感谢eric硬汉 商务合作:lz_kwok@foxmail.com 易开嵌入式工作室 基于单片机系统 ...
- 固态硬盘(SSD)原理及相关介绍
1. 什么是SSD 固态硬盘(Solid State Drives),用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片.DRAM芯片)组成.固态硬盘在接口的规范和定义.功能及使 ...
最新文章
- 讲一讲什么是 MMAP
- 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
- python3安装步骤mac-Mac 安装Python3
- 阿里云Kubernetes服务上使用Tekton完成应用发布初体验
- linux中dpkg找不到命令_工作中常用的Linux命令介绍与实践
- C++单例实现及回收(转)
- [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
- Eclipse Photon即将发布
- SSP控制寄存器SSPCON
- abaqus2017安装后启动cae报错_Abaqus2017安装全过程
- keras python3.7_主页 - Keras 中文文档
- GDI 总结三: CImage类使用
- 数据仓库系列文章二:浅谈企业数据仓库总线矩阵
- f(x)的泰勒(Taylor)展开式
- RK3399 4.4内核 修改DDR频率
- note4-WEB源码拓展
- html中a做成按钮,css如何将超链接a设计成按钮样式
- Ansible—— 29. 通过set_fact模块定义变量
- B. Cat Cycle
- IDEA跳转到上一个下一个方法的快捷键