SSD
文章平均质量分 86
清风不及你@
github:wenjieqihust
展开
-
使用QUME搭建ZNS SSD
QEMU从 1.6 版开始支持模拟 NVMe 命名空间。但是仅从QEMU 6.0 版本开始支持模拟分区命名空间。原创 2023-10-15 12:01:13 · 1026 阅读 · 7 评论 -
西数ZN540如何修改sector size
因需要在ZN540上挂载F2FS,故需要两块盘。一块传统SSD一块ZNS SSD。对于ZN540,信息如下由于其扇区大小为4KiB,而自己服务器上没有逻辑扇区为4KiB的盘,例如三星883:所以当用883做传统盘的时候,格式化mkfs.f2fs会报错:因为ZN540不支持分区,如果使用ZN540的传统块接口来挂载则会报空间不足:因此,要么把三星883的逻辑扇区大小改为4KiB,要么把ZN540改为512B。原创 2023-03-01 09:40:47 · 1247 阅读 · 2 评论 -
NVMe Zoned Namespaces (ZNS) SSDs
分区命名空间(ZNS) ssd代表了主机软件和基于闪存的ssd之间的一种新的功能划分。ZNS SSD将其容量划分为zone,每个zone可以按任意顺序读取,但必须按顺序写入。这些特性允许ZNS SSD改善其内部数据放置,从而通过更高的写吞吐量、更低的QoS和更大的容量获得更高的性能。...原创 2022-07-27 10:39:38 · 4039 阅读 · 1 评论 -
NVM Express Zoned Namespace Command Set Specification revision 1.1b
NVM Express Zoned Namespace Command Set Specification revision 1.1b原创 2022-07-27 10:35:02 · 1393 阅读 · 0 评论 -
NVMe 相关知识
(NVMe)协议。这些新协议利用了多队列SSD (MQ-SSD)的概念,其中多个主机端I/O请求队列(在软件中)直接暴露给SSD控制器。直接将请求队列暴露给SSD控制器有两个好处:(1)不再需要操作系统软件堆栈来管理I/O请求;而且(2)SSD可以比OS做出更有效的I/O请求调度决策,因为SSD确切地知道它的内部资源中哪些是可用的,哪些正在忙于处理其他请求。因此,协议消除了操作系统软件栈,使mq - ssd能够提供比传统ssd更高的性能。不幸的是,虽然OS软件栈的消除带来了显著的性能改进,但我们在本文中指原创 2020-12-16 20:00:43 · 592 阅读 · 0 评论 -
TLC Flash 笔记
TLC flash在每个flash单元中存储三个具有不同编程延迟的位,即LSB(最低有效位)、CSB(中央有效位)和MSB(最高有效位)。wordline单元中相同类型(编程延迟)的位构成页面。因此,TLC flash中的页面有三种不同的类型:LSB、CSB和MSB。按照惯例,一个wordline内的三种不同类型的页面被逐页单独编程,并且在完全编程(所有三页都被编程了)字行之前可以阅读页面。许多现有的研究表明,这三种类型的页面具有显著不同的程序延迟。通常,对于25nm的TLC flash, LSB、CSB和原创 2020-12-16 19:58:04 · 2304 阅读 · 0 评论 -
MLC Flash 笔记
如图所示,当第一个位(即最小有效位(LSB))被编程时,NAND闪存控制器迅速形成一个阈值电压(Vth)分布,因为它只需要形成两个Vth分布,这两个Vth分布被一个很大的电压边界所分隔。另一方面,当第二位(即,最重要的位(MSB))被编程,NAND闪存控制器花费更多的时间,因为它需要在同一Vth窗口中以更细粒度的方式表示四个Vth分布之一。因此,当一个MSB页面被编程时,LSB页面已经编程时,一个NAND存储系统经历一个显著的折痕延迟。例如,在最近的2X-nm MLC NAND设备中,MSB页面的程序延迟.原创 2020-12-16 19:56:26 · 497 阅读 · 0 评论 -
SSD 写请求执行流程
1、SSD写流程在上图中,我们说明了传统SSD中的写请求执行工作流。当来自主机的写请求到达SSD的主机接口时,后者首先将请求放入设备级I/O队列(简称I/O队列)中,然后将请求分割成页大小的子请求(事务,transaction),每个子请求都有一个特定的LPA(逻辑页面地址)。然后这些子请求被发送到SSD控制器进行地址转换,这是FTL的一个重要功能,它将LPA转换为PPA(物理页面地址)。写子请求的地址转换也称为页面分配。页面分配通过两个原语为子请求选择空闲页面,PLAlloc原语分配通道ID、芯片ID原创 2020-12-16 19:55:07 · 1331 阅读 · 2 评论 -
SATA 与 PCIe
SATA(接口协议)上跑的是AHCI(命令层和应用层协议)AHCI:一个命令队列(固定深度32)PCIe(接口协议)为三层:事务层,数据链路层,物理层, 事务层的DATA为上层的数据(命令层,NVMe层)PCIe SSD 接口形态开始于AIC(Add In Card) 现在逐步加入M.2和U.2。 消费者:M.2 企业级:U.2 AICNVMe跑在PCIe上(原配), 作为命令层和应用层协议,理论上适配任何接口协议多个命令队列2-8,16-128,深度2-4KSSD逻辑块(最小传输单位)大原创 2020-12-16 19:52:54 · 2168 阅读 · 0 评论 -
Solid State Disk(SSD)结构细分+高级指令+并行优化
1、结构如图2所示,SSD主要由主机接口、SSD控制器和闪存芯片阵列三部分组成。主机接口支持主机系统和SSD控制器之间的通信,并维护设备级I/O队列,HIL以循环方式从主机队列中获取I/O请求,插入设备队列中。SSD控制器,通常包含一个嵌入式处理器和DRAM,负责处理I/O请求和管理SSD资源,通过执行一组flash翻译层(FTL)功能。、地址转换、垃圾收集和损耗均衡。SSD控制器还通过闪存芯片控制器与闪存芯片阵列通信。由多个闪存芯片组成的闪存芯片阵列通过通道连接到闪存控制器,提供物理存储容量。闪存芯片原创 2020-12-16 19:15:11 · 3550 阅读 · 5 评论