ElaineLv

人生如逆旅,我亦是行人!

FastGC

Accelerate Garbage Collection via an Efficient Copyback-based Data Migration in SSDs

引子 我们知道,在闪存设备中,由于数据的非就地更新特性,并采用重映射的page写机制,使得在GC操作时需要先以block为单位进行erase。然而GC耗时且被频繁触发。 在GC过程中,传统基于数据迁移的copyback操作如上述所示,由于ECC纠错机制存在于SSD 控制器中,每次执行copyback操作时,需要将数据从Source Page中读取出来放到cache Register然后一步......

LDPC in SSD

low-density parity-check (LDPC) code

好久不写了……很想写一篇! 最近这一个月在忙paper的实验部分,课题是解决上述LDPC引起的严重尾端延迟问题。还没有结束,接下来这段时间也是,可能会很少更新,哭唧唧。 大概要持续到六月初…那就先占个坑吧,先写写有关于研究LDPC必看的一篇paper,原文链接 ...

[NVMe]读NVMe之Directives与Stream

对NVMe支持的多流SSD进行整理,虽然在NVMe1.3c中关于这方面的篇幅不长,但还是可以清楚的了解从上层软件到下层设备是如何进行信息交换的 Directives 可以看到在NVMe1.3c的第九章中,讲述了这部分内容。Directives是host和NVM subsystem/controller之间信息交换的机制,实现了SSD设备和上层软件之间的信息交互,而stream只是dir......

[SSD]PA-SSD

A Page-TypeAware TLC SSD for Improved Write/Read Performance and Storage Efficiency

在传统的TLC SSD中,不区分page type,因此由于不同的子请求分到的page-types不一样,那么产生的延迟也就不同,而对于一个用户请求来说,需要等到所有的子请求都完成返回之后才算整个请求结束,这就造成写效率非常低。根据存在的这个问题本文提出PA-SSD,将单个用户写请求所分的子请求使用相同的page type进行分配。具体为:对于每个用户请求分配第一个子请求时,根据本文提出的7......

[SSD Latency]SSDcheck

Timely and Accurate Prediction of Irregular Behaviors in Black-Box SSDs

本文提出的idea主要用来解决SSD内部不规则行为所导致的响应延迟不一致而影响QoS问题,此问题的存在导致不能很好的展现SSD的高性能、低延迟、低开销优势 导语 现代的SSD不仅仅是一个快速存储设备,而是一个高度复杂的计算机系统,这个复杂的系统有一个嵌入式处理器和多个硬件单元组成,例如,flash cells、channel。嵌入式处理器执行复杂程序以实现非易失性单元的可编程性(例如,读......

[NVMe]读NVMe之Multipathing与Namespace Sharing

multi-path I/O指单个主机和命名空间之间两个或多个完全独立的PCI Express路径,而Namespace Sharing是指两个或多个主机使用不同NVM Express控制器访问命名空间 可以看出,不管是multi-path I/O还是namespace sharing都要求NVM subsystem包含有两个或者更多的控制器。 1.图3显示了一个单功能的NVM子系统,它包含......

[NVMe]读NVMe之I/O Determinism

目前NVMe官网上最新的一个版本是1.3c,也就是我正在看的这个版本,发布于2018年5月24日。而2019年,NVMe1.4版本将是NVMe标准化组织工作重点,此次更新的重点之一就是I/O Determinism——是一把提高QoS的利器! NVMe协议族的路线图: 区分multi-stream与I/O determinism? multi-stream: 为了改善GC问题,使得具有相......

[NVMe]读NVMe之PRP与SGL

之前两篇博文介绍了SQ、CQ、DB三大命令传输时的重要数据结构。那么本篇博文和大家分享的是两大记录数据在内存位置的方式:PRP和SGL,在对SSD进行读写操作时,需要告诉SSD当前数据在内存的位置。我们知道NVMe1.3 版本中添加了新的功能,在了解了这些基础的内容之后将和大家一起分享目前研究的热点Multi-Stream以及I/O Determinism 相关介绍 在讲正式内容之前,......

[Flush]RFLUSH:Rethink the Flush

本文对FLUSH进行块设备接口重构,提出一种RFLUSH命令原文链接 导语 前面多篇paper讲述了HDD和SSD,想必若和我一起学习的小伙伴已经对这方面有一定的了解了,那么对于这两类存储介质,都有易失的缓冲区。其中,HDD的缓冲区可将多个写请求聚合到一起,然后再一并写入到硬盘中,从而减少寻道时间;SSD的缓冲区则是为了优化随机写性能和/或进行磨损均衡,或者也可能是对于Multi-Str......

[NVMe]读NVMe之DB

继续上次NVMe的学习,在上次的博文中,我和大家分享了NVMe中的两大重要的角色SQ和CQ,那么在这次的博文中,我们要一起探讨的是第三个重要的角色DB,话不多说!直接进入主题吧~ 导语 还没学习过NVMe之SQ与CQ的请戳这里,上次也提到了DB的功能,即host发送命令时,不是直接往SSD中发送命令,而是把准备好的命令放到内存中的SQ,通过写SSD中的DB寄存器来通知SSD,这里再提一哈......