国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

理解NVMe的内部实现原理,这一篇就够了

发布时间:2019/07/02标签:   队列    点击量:

原标题:理解NVMe的内部实现原理,这一篇就够了
前文回忆:《一篇文章讲清甚么是NVMe》任何新技巧的呈现都是为懂得决以后情形存在的成绩。NVMe的呈现也是为懂得决以后存在的成绩。这个成绩就是日趋疾速增加的存储介质机能与传输通道机能太差之间的抵触。基于SSD的存储装备机能都要入地了,但SAS和SATA接口的机能却没有实质的晋升。现在基于SCSI协定的SAS和SATA只能是单个行列并且每个行列的深度也比拟低,分辨是254和32的行列深度。而NVMe协定计划之初就斟酌了该成绩,它的最大行列数目能够是64K(65535个下令行列和1个治理行列),而每个行列的深度能够高达64K。与SCSI协定比拟,就比如一个城市的羊肠巷子和一个双向八车道的高速公路的差异。

理解NVMe的内部实现原理,这一篇就够了
图1 漂亮的城市下路和京港澳高速
NVMe基础道理为了便于懂得主机和NVMe装备的关联,咱们这里简化NVMe装备的外部构造。如图2所示为NVMe白皮书中的配图,这里主机称为Host,而NVMe装备称为Controller(操纵器)。主机和操纵器之间经过同享内存的行列完成交互。理解NVMe的内部实现原理,这一篇就够了图2 NVMe多行列表示图NVMe的行列分为2种,此中一种是用于治理的行列,称为Admin Queue(治理行列),唯一一个,别的一种是下令行列(Command Queue),最多能够有65535个。此中下令行列的数目和形式都是经过治理行列来设置的。此中每一个行列现实上是一个行列对,也就是包含两个行列,分辨是提交行列(Submission Queue)和实现行列(Completion Queue)。提交行列用于主机端向NVMe装备发送NVMe下令,而实现行列则用于NVMe装备向主机反应下令履行情形。现实上NVMe另有别的一种形式,就是多个提交行列同享统一个实现行列的情形,本文临时不做先容。NVMe行列及下令的处置流程上文咱们晓得NVMe是经过行列通报操纵下令和下令等外容的,那末这里的行列实体究竟是甚么呢?实在这里提交行列和实现行列就是内存的一个地区。在数据构造道理上这里的行列实在是一个环形缓冲区,如图3所示。理解NVMe的内部实现原理,这一篇就够了图3 环形缓冲区NVMe经过一种门铃机制(Doorbell)来告诉操纵器下令行列能否有新数恳求/下令。也就是说每个行列都有一个门铃指针。关于发送行列来讲,这个指针表现的是发送行列的尾指针。主机端将数据写入到发送行列后,更新映照到位于装备存放器空间中的门铃的尾指针。此时,在操纵器端就晓得有新的恳求/下令到来,接上去便可以停止对其停止处置。当操纵器实现一个NVMe恳求时,经过实现行列来把实现的成果告诉主机端。与发送行列差别,实现行列是经过中止机制(能够是INTx,MSI或MSIx)告知主机端。如图4是一个下令的完全处置流程。

版权信息Copyright © IT技术教程 版权所有    ICP备案编号:鲁ICP备09013610号