ssd内部是多个flash一起操作_论文 | MQSim:一个支持现代多队列SSD设备实际研究的框架(4)...

898845dbcd2e3d4437f74e909b389a29.png

041e989c586804591ae95c025bb51ed4.png

6d5d5cdd2feb9790c7d0f279c3db56d7.png

a48dd664a6f15231ef93bb7b9a4f4f03.png

2背景

在本节中,我们将简要介绍多队列SSD(MQ-SSD)设备的背景。首先,我们讨论MQ-SSD的内部组织(第2.1节)。接下来,我们讨论ssd常用的主机接口协议(第2.2节)。最后,我们讨论SSD flash转换层(FTL)如何处理请求和执行维护任务(第2.3节)。

现代MQ ssd通常使用NAND闪存芯片构建。NAND闪存[11,12]支持flash页粒度(通常为4kb)的读写操作。在NAND闪存芯片中,多个页面被组合成一个闪存块,闪存块是执行擦除操作的粒度。闪存写入只能发生在被擦除的页面上(即,免费)。为了最小化写入延迟,MQ ssd执行异地更新(即,在更新逻辑页时,将其数据写入另一个空闲物理页,并更新逻辑到物理的映射)。这避免了在写操作期间删除旧物理页的需要。相反,旧页被标记为无效,垃圾收集过程[11–13,23]在后台回收无效的物理页。

    图1显示了MQSSD的内部组织。MQ-SSD内部的组件分为两组:(1)后端,包括内存设备;(2)前端,包括控制和管理单元。存储设备(例如NAND闪存[11,12],相变后端的内存[42]、STT-MRAM[40]、3D XPoint[9])以高度分层的方式组织,以最大化I/O并发性。后端包含多个独立的总线通道,这些通道将内存设备连接到前端。每个通道连接到一个或多个内存芯片。对于基于NAND闪存的SSD,每个NAND闪存芯片通常分为多个芯片,其中每个芯片可以独立执行内存命令。芯片中的所有芯片都共享一个公共通信接口。每个模具由一个或多个平面组成,这些平面是闪存单元阵列。每个平面包含多个块。只有当每个平面在同一平面内的同一地址偏移上执行同一命令时,单个模具内的多个平面才能并行执行内存操作。

c948520ac7a4905249e14d8ffc2c0fab.png

在MQ-SSD中,前端包括三个主要组件[47]。(1) 主机接口逻辑(HIL)实现用于与主机通信的协议(第2.2节)。(2) flash转换层(FTL)管理flash资源并处理I/O请求(第2.3节)。(3) 闪存芯片控制器(fcc)向后端的存储芯片发送命令并向其传输数据。前端包含板载DRAM,这三个组件使用它来缓存应用程序数据和存储用于flash管理的数据结构。

2.2主机-接口逻辑

HIL在利用NAND闪存的内部并行性为主机提供更高的I/O性能方面起着关键作用。由于在企业和客户机系统上广泛支持SATA,SATA协议[67]通常用于传统的ssd。SATA采用本机命令队列(NCQ),它允许SSD同时执行I/O请求。NCQ允许SSD调度多个I/O请求,基于这些请求,后端资源当前处于空闲状态[29,50]。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值