导航:首页 > 源码编译 > nvme磁盘调度算法

nvme磁盘调度算法

发布时间:2022-11-12 12:51:25

❶ 【科普向】磁盘(三)固态硬盘

我们在上一期讲了机械硬盘的原理,以及在选购机械硬盘时的注意事项,那么这一期我们就来讲一讲一种更为高端的硬盘——固态硬盘

固态硬盘发展史

1970年,StorageTek开发了第一个固态硬盘驱动器。

1989年,英特尔发布了世界上第一款固态硬盘。

2006年,三星发布了一款32GB容量的固态硬盘笔记本电脑,标志着固态硬盘正式走入移动设备。

2007年,SanDisk发布了1.8寸32GB固态硬盘产品和2.5寸32GB型号。

2009年,大量的厂商涌入固态硬盘市场,固态硬盘技术得到了飞速发展。

存储颗粒

固态硬盘,又被成为SSD(Solid State Disk),是一种现代的储存硬盘。拿到一块固态硬盘,可以看到它和之前我们所讲的机械硬盘有很大的不同。一般的固态硬盘并不像机械硬盘那样被包在一个密封的铁盒子里,而是由一大块PCB板组成。电路板上这些小的黑色的方格子就是存储颗粒了。作为固态硬盘最核心的东西,用来存储数据。

存储颗粒分为三种:SLC颗粒、MLC颗粒和TLC颗粒。

我们知道,硬盘在电脑中就像一个仓库,它储存着我们的数据。仓库中很多货架用来存放数据,不同的颗粒就相当于不同类型的货架

SLC颗粒

SLC中的S是single的缩写,就是单一的意思。意味着SLC颗粒的存储颗粒上每一个存储单元只存放1bit的数据。

我们将颗粒理解为仓库里的货架,那么SLC颗粒就是每个货架上放有一个货物。当需要调取货物时,因为货架上只有一个货物,所以不需要对货物进行筛选和分类,只需要找到对应的货架之后直接将货物拿走就可以了,调取的速度非常快。也就是说SLC颗粒时固态硬盘中速度最快的颗粒,同时也是寿命最长的。

MLC颗粒

MLC中的M是multi的缩写,是多个的意思。MLC存储颗粒每个储存单元存放2bit的数据。也就是说每一个MLC的货架上放有两个货物,在提取货物时需要先鉴别两个货物,然后再取走需要的那个货物。这就浪费了一些时间。所以MLC颗粒的速度要比SLC颗粒的速度慢一些,寿命也比SLC更短一些。

TLC颗粒

TLC中的T是triple的缩写,就是三个的意思。所以TLC的存储颗粒每个储存单元存放3bit的数据。不过有一些厂商也会将自己的TLC颗粒称之为3bit-MLC颗粒。

同样的道理,TLC的每个货架放有三个货物,调取的速度更慢了,所以TLC颗粒是这三种颗粒中速度最慢的那一个。由于其“货架”的使用频率高于MLC和SLC,所以TLC同时也是这三种储存颗粒中寿命最短的那个。

由于TLC价格较低,所以现在市面上大多数的固态硬盘使用的都是TLC颗粒。

这三种储存颗粒在速度和寿命上都有差距,不过即使寿命最短的TLC也可以正常使用五年左右,这一点不要担心。

存储颗粒作为固态硬盘的核心部件,并不是所有厂商都有自主生产的能力,很大一部分厂商只能购买别家的存储颗粒用来生产自己的固态硬盘。

英特尔、三星、美光、海力士、闪迪和东芝是目前具有自主生产储存颗粒能力的厂商。

那厂商口中的白片黑片都是什么呢?

原片

指的是有固态硬盘厂商亲自认证的原厂合格的储存颗粒。

白片

是检验不合格的瑕疵品,被厂商检测后淘汰。由一写末流厂商进行简单的加工制成价格较低、品质较差的固态硬盘。

黑片

可以说就是废料,几乎没有价值。由于其性能低下,大部分的黑片用来制作成了U盘和SD卡。

总线

是计算机各种功能部件之间传送信息的公共通信干线。我们可以简单理解为从固态硬盘到CPU用来传输数据的道路。在固态硬盘中,总线非为两类:SATA总线和PCI-E总线。我们可以把CPU和固态硬盘想象成两个城市,而SATA总线就是两个城市之间的普通火车轨道,PCI-E总线就是高铁轨道。

目前SATA总线的最快速度也只有550MB/s,而PCI-E总线最高可达3000MB/s。

不过PCI-E也是有不同等级的,PCI-E x1、PCI-E x2、PCI-E x4、PCI-E x8和PCI-E x16。而固态硬盘通常使用的都是PCI-E x2和PCI-E x4。PCI-E x2总线要比PCI-E x4慢一些,大概只有1000MB/s左右。而更高的PCI-E x8和PCI-E x16通常都是显卡在使用。

接口

目前常见的固态硬盘接口分为三种:SATA接口、M.2接口和PCI-E接口。

SATA接口

机械硬盘一般使用的都是SATA接口,不过SATA接口也可以被用在固态硬盘上。使用SATA接口的固态硬盘一般体积都比较大,而且只能走SATA总线。所以一般SATA接口的固态硬盘速度比较慢。

                      (SATA接口)

M.2接口

使用M.2接口的固态硬盘又可以分为三种,按速度由低到高的顺序排列分别是走SATA总线的、走PCI-E x2总线的以及是走PCI-E x4总线的。这三种总线的区别已经在上文提到过了,这里不再是赘述。

而使用M.2接口走PCI-E x4总线的硬盘又可以分为两种,一种是支持NVME协议的,另一种是不支持NVME协议的。

NVME协议是什么呢?

其实,造成上文提到的那两种总线速度差异的主要原因就是协议不同。SATA总线使用的是AHCI协议,而PCI-E总线上使用的是NVME协议。说白了就是这两条轨道对与在轨道上行驶的列车做出了不同的要求和限制。由于SATA轨道制作不精细,导致SATA轨道上无法行驶高速列车,从而导致了速度变慢。

支持NVME协议的M.2接口的固态硬盘就像高速火车(NVME协议)跑在高速铁路上(PCI-E总线),速度是最快的,能达到3000MB/s。而不支持NVME协议的硬盘就像普通火车(不支持NVME协议)跑在高速铁路上(PCI-E总线),速度自然就慢一些,能达到1500MB/s。

需要注意的是虽然都叫M.2接口,但是走不同的总线,接口的形状其实是也是不一样的。

走PCI-E x4总线的硬盘接口有两个金手指,对应的插槽是socket 3接口。

                  (socket 3接口)

走SATA总线和PCI-E x2总线的硬盘接口有三个金手指,专属插槽是socket 2接口。

                  (socket 2接口)

不过这种拥有三个金手指的接口通用性更强一点,socket 2和socket 3插槽都是可以用的。

PCI-E接口

使用PCI-E接口的固态硬盘走的是PCI-E x4总线,一般都是支持NVME协议的。

值得注意的是接口只是物理上的插孔而已,并不会直接影响性能。如果厂商愿意,无论多么奇怪的接口都是可以的。真正影响硬盘速度的是接口背后的协议和总线。所以使用SATA接口SATA总线AHCI协议的固态硬盘和机械硬盘的速度是相近的。

而使用M.2接口PCI-E x4总线NVME协议的硬盘和使用PCI-E接口PCI-E x4总线NVME协议的硬盘速度是相近的。虽然他们一个使用了M.2接口,一个使用了PCI-E接口,但是因为它们背后的总线和协议是一样的,所以速度并不会出现明显的差距。

                (不同的PCI-E接口)

为了防止大家混乱,我在这里做个小的导图帮助理解。

缓存

一般情况下,缓存的读写速度是比盘片的速度快的,缓存就像一个数据的临时存放点,硬盘在写入数据时,先将数据写入到缓存,写入完成后,系统就会提示数据写入完成了,用户就可以做别的事情了,而在计算机后台,数据再从缓存中写入硬盘。

缓存分为两种,一种是DDR缓存,一种是SLC-cache缓存

DDR缓存

这种缓存和和内存条中上使用的是同一种规格的,这种缓存的优点在于速度非常快,但是它的空间一般比较小,无法储存大量的数据,对SSD性能的提升不大。

SLC-cache缓存

也叫SLC缓存。我们在前文已经提到,SLC颗粒是所有固态硬盘颗粒中速度最快的,但是为了节约成本,市面上大多数固态硬盘都是MLC和TLC颗粒的。但是为了提高读写性能,厂商会让一部分MLC或TLC模拟SLC颗粒工作,这就是SLC缓存。

这就可以解释为什么很多固态硬盘在传输大文件时,前一段时间速度非常快,但是一段时间后硬盘的速度会断崖式下跌。原因就是SLC缓存颗粒已经全部填满文件了,这时,硬盘就会恢复正常的MLC或者TLC的速度,整体的读写速度就慢下来了。

SLC缓存也时目前市面上最为常见的一种缓存行驶,对小文件的读取速度有显着提升。

主控

主控负责整个固态硬盘的数据管理和调控,可以简单的理解为固态硬盘的CPU。由于主控对整个固态硬盘进行管理,所以主控也对硬盘性能有着较大的影响。目前第一梯队的主控厂商有三星、英特尔和马牌。

读写速度

我们经常能在某个固态硬盘的产品界面看到“顺序读写”和“4K随机读写”,那么这两种有什么区别呢?

顺序读写

顺序读写速度一般非常快,卖家也常常会将这个数值作为宣传的速度。但是日常使用中,顺序读写速度对我们的影响并没有那么大。

顺序读写就是对一个大文件进行读写,比如对一个100GB的大文件进行读写,用到的就是顺序读写。而如果要对100个1GB的文件进行读写,用到的就是4K随机读写。

4K随机读写

4K随机读写速度更加贴近我们日常的使用,我们很少会对一个大型文件进行读写,通常都是一个一个文件进行读写的。4K随机读写速度通常是要比顺序读写速度慢的,所以在选购固态硬盘时,我们更要关注4K随机读写速度。

以上就是固态硬盘的基本参数了,希望能对各位在选购固态硬盘时提供帮助。

我们作为一个新团队十分缺乏经验,可能会存在种种疏漏,还请各位大佬嘴下留情,反馈问题。感激不尽!

文/ 同儿睡不着。

责编/ M.微博

图/ 网络、同儿睡不着。

小蓬软件工作室

❷ ngff与nvme有什么区别

1、标准的范围不同

Ngff是物理形态的标准,指磁盘的大小,即形状。

Nvme是一种新的硬盘传输标准,是一种用于m.2磁盘的数据传输协议。

2、同层级不同

在同一水平,Ngff是2.5英寸,3.5英寸,这是指磁盘的形状标准。

ngff旁边是2.5英寸,而不是PCIe(此外,ngff现在已经改名为m.2,所以最好跟上时代,改为m.2)。PCIe是总线标准,它与SATA并行。

nvme是取代现在的AHCI的。

3、通道不同

ngff速度较慢。

nvme速度更快。

4、接口不同

NGFF有两种接口:Socket 2和Socket 3。

前者支持SSD、WWAN等非存储设备,接口采用SATA和PCI-e2,Socket 3专为高性能存储而设计,支持PCI-E X4接口,该接口更小,带宽高达4GB/s,Ngff(也称为m.2)包含世达线路。

nvme是M.2接口。

❸ 1t的nvme为什么显示953gb

1t的nvme显示953gb,是操作系统中和BIOS的算法不同导致的。出现这样情况不是硬盘本身的问题,而是操作系统和BIOS的算法不同导致的,BIOS一般是1000作为基数的,而实际在二进制中,都是以1024作为基数,所以硬盘容量的计算方式导致了1t的nvme显示953gb。

NVMe代表非易失性存储器的首字母缩略字,这是固态硬盘的常见的闪存形式。此规范主要是为基于闪存的存储设备提供一个低延时、内部并发化的原生界面规范。

为现代CPU、计算机平台及相关应用提供原生存储并发化的支持,令主机硬件和软件可以充分利用固态存储设备的并行化存储能力。

NVMe产生的时代背景

在NVMe出现之前,高端SSD只得以采用PCI Express总线制造,但需使用非标准规范的接口。若使用标准化的SSD接口,操作系统只需要一个驱动程序就能使用匹配规范的所有SSD,这也意味着每个SSD制造商不必用额外的资源来设计特定接口的驱动程序。

以上内容参考网络-NVMe

❹ nvme固态硬盘怎么达到2000m/s

用DPX指令。
DPX指令。新的DPX指令可加速动态规划,适用于包括路径优化和基因组学在内的一系列算法,与CPU和上一代GPU相比,其速度提升分别可达40倍和7倍。
闪迪至尊高速NVMe3D固态硬盘采用了蓝色PCB板,由于单面设计,背部非常整洁,整个硬盘也非常纤薄。具体的性能方面,官方标称闪迪至尊高速NVMe3D固态硬盘(1TB)版的顺序读、写速度为2400MB/s、1950MB/s。

❺ PCIE,M.2,SATA,NVMe,ACHI 各是什么关系

nvme是一种传输协议针对ssd,achi是一种硬盘算法针对机械硬盘,你可以简单理解成nvme好于achi,至于前面的只是接口类型但要休息SATA不支持nvme协议

❻ NVMe协议的M.2 SSD能否组成RAID

可以,z170的时候这个功能就有了,不少z170至少可以两块nvme m2做raid,到现在z370和x299已经可以做到5块nvme的m2做raid了。

区别如下:

1、协议方面:m.2 nvme是支持Nvme协议的高速SSD,走的是PCle通道,速度超级快。m.2不支持协议,走的是SATA通道,和普通的SATA接口差不多。则是较为低速的SSD。

2、适配方面:nvme固态需要主板有PCIE的接口支持,而普通的m.2固态则不需要。

3、接口方面:m.2固态硬盘,如果是SATA协议,针脚处有两个凹,三段金手指;如果是NVMe协议则是一个凹,两段金手指。 可根据主板M.2插槽的样子看出来该插槽支持什么协议,两种协议不兼容。


(6)nvme磁盘调度算法扩展阅读:

m.2接口主要有两个方面的优势:

1、第一是速度方面的优势。

M.2接口有两种类型:Socket 2(B key——ngff)和Socket 3(M key——nvme)。

其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E ×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E ×4接口,理论带宽可达4GB/s。

2、第二个是体积方面的优势。

M.2标准的SSD同mSATA一样可以进行单面NAND闪存颗粒的布置,也可以进行双面布置,其中单面布置的总厚度仅有2.75mm,而双面布置的厚度也仅为3.85mm。另外,M.2也可以提供更高的存储容量。

❼ 什么是NVMe硬盘

NVMe固态硬盘是双全工可同时执行读写操作的,NVMe协议要比SATA所用的AHCI协议更高效、更能充分利用多核心、中断执行效率更高、队列深度支持更好。

用个比较通俗的比喻:

SATA固态硬盘就像国道,本身速度是要比类似机械硬盘的市区道路通畅很多的,但依然会遇到有路口需要让行的时候。而NVMe固态硬盘就像全封闭全立交的高速公路,所有数据都可以不受干扰地直达目的地。此外,NVMe固态硬盘读写带宽高于SATA固态硬盘,就如同高速公路的限速要比国道高很多。

(7)nvme磁盘调度算法扩展阅读:

NVMe硬盘的特点:

1、NVMe是为PCIe制定的标准接口协议。

2、解除了旧标准施放在SSD上的各种限制。

3、支持所有常见的操作系统。

4、良好的可拓展性。

5、具有低延迟,低能耗,高性能等优点。

❽ Linux中常见IO调度器

对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略

考虑到硬件配置、实际应用场景(读写比例、顺序还是随机读写)的差异,上面的简单解释对于实际选择没有太大帮助,实际该选择哪个基本还是要实测来验证。不过下面几条说明供参考:

NOOP全称No Operation,中文名称电梯式调度器,该算法实现了最简单的FIFO队列,所有I/O请求大致按照先来后到的顺序进行操作。NOOP实现了一个简单的FIFO队列,它像电梯的工作方式一样对I/O请求进行组织。它是基于先入先出(FIFO)队列概念的 Linux 内核里最简单的I/O 调度器。此调度程序最适合于固态硬盘。

Deadline翻译成中文是截止时间调度器,是对Linus Elevator的一种改进,它避免有些请求太长时间不能被处理。另外可以区分对待读操作和写操作。DEADLINE额外分别为读I/O和写I/O提供了FIFO队列。

Deadline对读写request进行了分类管理,并且在调度处理的过程中读请求具有较高优先级。这主要是因为读请求往往是同步操作,对延迟时间比较敏感,而写操作往往是异步操作,可以尽可能的将相邻访问地址的请求进行合并,但是,合并的效率越高,延迟时间会越长。因此,为了区别对待读写请求类型,deadline采用两条链表对读写请求进行分类管理。但是,引入分类管理之后,在读优先的情况下,写请求如果长时间得到不到调度,会出现饿死的情况,因此,deadline算法考虑了写饿死的情况,从而保证在读优先调度的情况下,写请求不会被饿死。

总体来讲,deadline算法对request进行了优先权控制调度,主要表现在如下几个方面:

CFQ全称Completely Fair Scheler ,中文名称完全公平调度器,它是现在许多 Linux 发行版的默认调度器,CFQ是内核默认选择的I/O调度器。它将由进程提交的同步请求放到多个进程队列中,然后为每个队列分配时间片以访问磁盘。 对于通用的服务器是最好的选择,CFQ均匀地分布对I/O带宽的访问 。CFQ为每个进程和线程,单独创建一个队列来管理该进程所产生的请求,以此来保证每个进程都能被很好的分配到I/O带宽,I/O调度器每次执行一个进程的4次请求。该算法的特点是按照I/O请求的地址进行排序,而不是按照先来后到的顺序来进行响应。简单来说就是给所有同步进程分配时间片,然后才排队访问磁盘。

多队列无操作I / O调度程序。不对请求进行重新排序,最小的开销。NVME等快速随机I / O设备的理想选择。

这是对最后期限I / O调度程序的改编,但设计用于 多队列设备。一个出色的多面手,CPU开销相当低。

❾ m.2 nvme和m.2的区别是什么

区别如下:

1、协议方面:nvme是一种协议,走的是PCle通道,速度超级快。而普通的M.2 走的是SATA通道,发挥不出M.2的优势,和普通的SATA接口差不多。

2、速度方面:走pcie通道的 就是我们说的nvme ,速度快出m.2的10倍。

3、接口方面:走sata的速度跟传统sata接口的没区别,就是接口变成了m2的了。走pcie的,就是我们说的nvme接口是m2的,性能也强了。

M.2接口有SATA也有NVMe PCIe协议。这个是同一个接口的,但是要看主板支持哪个通道。主板M.2走的是PCIE通道就可以支持M.2 NVME,如果是走MSATA通道,就无法通用。

(9)nvme磁盘调度算法扩展阅读

对于桌面台式机用户来讲,SATA接口已经足以满足大部分用户的需求了,不过考虑到超极本用户的存储需求,Intel才急切的推出了这种新的接口标准。虽然,我们在华硕、技嘉、微星等发布的新的9系列主板上都看到了这种新的M.2接口,现已普及。

NVMe具体优势包括:

①性能有数倍的提升;

②可大幅降低延迟;

③NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;



阅读全文

与nvme磁盘调度算法相关的资料

热点内容
家用编译机 浏览:547
电子加密货币最新政策 浏览:377
androidcanvas撤销 浏览:269
安卓手机怎么把图标全部下移 浏览:185
饥荒被服务器踢出怎么进 浏览:170
c编译器哪款好 浏览:732
快手宝哥发明什么app 浏览:822
张艳玲编译 浏览:66
android展开收起动画 浏览:237
linuxxz文件 浏览:160
在游戏中心里面怎么玩到解压神器 浏览:484
电脑发到手机里面照片怎么解压 浏览:74
虚拟pdf打印机64位 浏览:413
支付宝AES加密和解密 浏览:379
编译实验原理下载 浏览:131
加密防伪溯源系统私人定做 浏览:222
扫码给电动车充电的app叫什么 浏览:760
关闭命令提醒 浏览:356
云账本app服务器 浏览:499
python输入数字循环 浏览:370