NVM Express

Origem: Wikipédia, a enciclopédia livre.
Non-Volatile Memory Host Controller Interface Specification
Acrónimo NVMe
Introduzido 2011; há 13 anos
Organização gestora NVM Express Work Group (incorporado como NVM Express em 2014)
Sítio Web nvmexpress.org

NVM Express (NVMe) ou Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) é uma especificação de interface de dispositivo lógico aberta para acessar mídia de armazenamento não volátil de um computador geralmente conectada via barramento PCI Express (PCIe). O acrônimo NVM significa memória não volátil, que geralmente é memória flash NAND que vem em vários fatores de forma física, incluindo unidades de estado sólido (SSDs), placas complementares PCI Express (PCIe) e placas M.2, a cartões sucessores do mSATA. O NVM Express, como interface de dispositivo lógico, foi projetado para captalizar a baixa latência e o paralelismo interno dos dispositivos de armazenamento de estado sólido.[1]

Arquitetonicamente, a lógica do NVMe é fisicamente armazenada e executada pelo chip controlador NVMe que está fisicamente co-localizado com a mídia de armazenamento, geralmente um SSD. As alterações de versão NVMe, por exemplo, 1.3 para 1.4, são incorporadas à mídia de armazenamento e não afetam os componentes compatíveis com PCIe, como placas-mãe e CPUs.[2]

Por seu design, o NVM Express permite que o hardware e o software do host explorem totalmente os níveis de paralelismo possíveis em SSDs modernos. Como resultado, o NVM Express reduz a sobrecarga de E/S e traz várias melhorias de dezempenho em relação às interfaces de dispositivos lógicos anteriores, incluindo várias filas de comando longas e latência reduzida. Os protocolos de interface anteriores, como o AHCI, foram desenvolvidos para uso com unidades de disco rígido (HDD) muito mais lentas, onde existe um atraso muito longo (relativo às operações da CPU) entre uma solicitação e a transferência de dados, onde as velocidaes de dados são muito mais lentas que as velocidades de RAM e onde rotação do disco e tempo de busca dar origem e outros requisitos de otimização. Os SSDs NVM Express são mais quentes do que os SSDs SATA de 2,5" e podem atingir de forma rápida e fácil temperaturas superiores a 80°C.[3]

Os dispositivos NVM Express estão disponíveis principalmente na forma de placas de expansão PCI Express de tamanho padrão[4] e como dispositivos de fator de forma de 2,5 polegadas que fornecem uma interface PCI Express de quatro vias através do conector U.2 (anteriormente conhecido como SFF-8639).[5][6] Dispositivos de armazenamento usando SATA Express e a especificação M.2 que suportam NVM Express como interface de dispositivo lógico são um caso de uso popular para NVMe e se tornaram a forma dominante de armazenamento de estado sólido para servidores, desktops e laptops iguais.[7][8]

Especificações[editar | editar código-fonte]

As especificações para NVMe lançadas até o momento incluem:[9]

  • 1.0e (janeiro de 2013)
  • 1.1b (julho de 2014)
  • 1.2 (novembro de 2014)
    • 1.2a (outubro de 2015)
    • 1.2b (junho de 2016)
    • 1.2.1 (junho de 2016)
  • 1.3 (maio de 2017)
    • 1.3a (outubro de 2017)
    • 1.3b (maio de 2018)
    • 1.3c (maio de 2018)
    • 1.3d (março de 2019)
  • 1.4 (junho de 2019)
    • 1.4a (março de 2020)
    • 1.4b (setembro de 2020)
  • 2.0 (maio de 2021)[10]
    • 2.0a (julho de 2021)
    • 2.0b (janeiro de 2022)

Background[editar | editar código-fonte]

Intel SSD 750 series, um SSD que usa NVM Express, na forma de uma placa de expansão PCI Express 3.0 ×4 (vistas frontal e traseira)

Historicamente, a maioria dos SSDs usava barramentos como SATA, SAS e Fibre channel para fazer interface com o resto de um sistema de computador. Desde que os SSDs se tornaram disponíeis em mercados de massa, o SATA tornou-se a forma mais comum de conectar SSDs em computadores pessoais; no entanto, o SATA foi projetado principalmente para faer interface com discos rígidos mecânicos (HDDS) e tornou-se cada vez mais inadeado para SSDs, que melhoraram a velocidade ao longo do tempo.[11] Por exemplo, em cada cerca de cinco anos deadoção do mercado de massa (2005-2010), muitos SSDs já estavam retidos pelas taxas de dados comparativamente lentas disponíveis para discos rígidos - ao contrário dos discos rígidos, alguns SSDs são limitados pela taxa de transferência máxima de SATA.

SSDs de última geração foram feitos usando o barramento PCI Express antes do NVMe, mas usando interfaces de especificações não padrão. Ao padronizar a interface dos SSDs, os sistemas operacionais precisam apenas de um driver de dispositivo comum para funcionar com todos os SSDs aderentes à especificação. Isso também significa que cada fabricante de SSD não precisa projetar drivers de interface específicos. Isso é semelhante ao modod como os dispositivos de armazenamento em massa USB são criados para seguir a especificação de classe de dispositivo de armazenamento em massa USB e funcionam com todos os computadores, sem a necessidade de drivers por dispositivo.[12]

Dispositivos NVM Express também são usados como o bloco de construção do buffer de armazenamento em muitos supercomputadores líderes, como Fugaku Supercomputer, Summit Supercomputer e Sierra Supercomputer, etc.[13][14]

História[editar | editar código-fonte]

Os primeiros detalhes de um novo padrão para acessar memória não volátil surgiram no Intel Developer Forum 2007, quando o NVMHCI foi mostrado como o protocolo do lado do host de um projeto arquitetônico proposto que tinha o Open NAND Flash Interface Working Group (ONFI) na memória (flash) lado dos chips.[15] Um grupo de trabalho NVMHCI liderado pela Intel foi formado naquele ano. A especificação NVMHCI 1.0 foi concluída em abril de 2008 e lançada no site da Intel.[16][17][18]

O trabalho técnico no NVMe começou no segundo semestre de 2009.[19] As especificações do NVMe foram desenvolvidas pelo NVM Express Workgroup, que consiste em mais de 90 empresas; Amber Huffman, da Intel, foi a presidente do grupo de trabalho. A versão 1.0 da especificação foi lançada em 1 de maio de 2011,[20] enquanto a versão 1.1 da especificação foi lançada em 11 de outubro de 2012.[21] Os principais recursos adicionais na versão 1.1 são E/S de vários caminhos (com compartilhamento de namespace) e E/S de coleta de dispersão de comprimento arbitrário. Espera-se que as revisões futuras melhorem significativamente o gerenciamento de namespace.[19] Por causa de seu foco em recursos, o NVMe 1.1 foi inicialmente chamado de "Enterprise NVMHCI".[22] Uma atualização para a especificação básica do NVMe, chamada versão 1.0e, foi lançada em janeiro de 2013.[23] Em junho de 2011, o Promoter Group liderado por sete empresas foi formado.

Os primeiros chipsets NVMe comercialmente disponíveis foram lançados pela Integrated Device Technology (89HF16P04AG3 e 89HF32P08AG3) em agosto de 2012.[24][25] A primeiro unidade NVMe, a unidade empresarial XS1715 da Samsung, foi anunciada em julho de 2013; de acordo com a Samsung, esta unidade suportava velocidades de leitura de 3 GB/s, seis vezes mais rápidas do que suas ofertas corporativas anteriores.[26] A família de controladores LSI SandForce SF3700, lançada em novembro de 2013, também suporta NVMe.[27][28] Um produto "prosumer" Kingston HyperX usando este controlador foi apresentado na Consumer Electronics Show 2014 e prometeu desempenho semelhante.[29][30] Em junho de 2014, a Intel anunciou seus primeiros produtos NVM Express, a família de data center Intel SSD que faz inteface com o host por meio do barramento PCI Express, que inclui as séries DC P3700, DC P3600 e DC P3500 Series.[31] A partir de novembro de 2014, as unidades NVMe estão disponíveis comercialmente.

Em março de 2014, o grupo foi incorporado para se tornar NVM Express, Inc., que em novembro de 2014 consiste em mais de 65 empresas de todo o setor. As especificações do NVM Express são de propriedade e mantidas pela NVM Express, Inc., que também promove a conscientização da indústria sobre o NVM Express como um padrão para todo o setor. A NVM Express, Inc. é dirigida por um conselho de administração de treze membros selecionados do Promoter Group, que inclui Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk e Seagate.[32]

Em setembro de 2016, a CompactFlash Association anunciou que lançaria uma nova especificação de cartão de memória, CFexpress, que usa NVMe.[carece de fontes?]

NVMe Host Memory Buffer (HMB) adicionado na versão 1.2 da especificação NVMe.[33] O HMB permite que os SSDs utilizem a DRAM do host, o que pode melhorar o desempenho de E/S para SSDs sem DRAM.[34]

Fatores de forma[editar | editar código-fonte]

Existem muitos fatores de forma da unidade de estado sólido NVMe, como AIC, U.2, U.3, M.2 etc.

AIC (cartão adicional)[editar | editar código-fonte]

Quase todas as primeiras unidades de estado sólido NVMe são HHHL (meia altura, meio comprimento) ou FHHL (altura total, meio comprimento) AIC, com uma interface PCIe 2.0 ou 3.0. Uma placa de unidade de estado sólido HHHL NVMe é fácil de inserir em um slot PCIe de um servidor.

U.2 (SFF-8639)[editar | editar código-fonte]

U.2, anteriormente conhecido como SFF-8639, é uma interface de computador para conectar unidades de estado sólido a um computador. Ele usa até quatro pistas PCI Express. Os servidores disponíveis podem combinar até 4 unidades de estados sólido U.2 NVMe.[35]

U.3 (SFF-8639 ou SFF-TA-1001)[editar | editar código-fonte]

U.3 é construído na especificação U.2 e usa o mesmo conector SFF-8639. É um padrão 'tri-mode', combinando suporte SAS, SATA e NVMe em um único controlador. U.3 também pode oferecer suporte a hot-swap entre as diferentes unidades onde o suporte de firmware está disponível. Unidades U.3 ainda são compatíveis com U.2, mas unidades U.2 não são compatíveis com hosts U.3.

M.2[editar | editar código-fonte]

M.2, anteriormente conhecido como Next Generation Form Factor (NGFF), usa um barramento de computador de unidade de estado sólido M.2 NVMe. As interfaces fornecidas através do conector M.2 são PCI Express 3.0 ou PCI Express 4.0 (até quatro vias).

NVMe-oF[editar | editar código-fonte]

NVM Express over Fabrics (NVMe-oF) é o conceito de usar um protocolo de transporte em uma rede para conectar dispositivos NVMe remotos, ao contrário do NVMe comum, onde os dispositivos NVMe físicos sãoconectados a um barramento PCIe diretamente ou por um switch PCIe a um barramento PCIe. Em agosoto de 2017, um padrão para o uso de NVMe sobre Fibre Channel (FC) foi apresentado pela organização de padrões International Committee for Information Technology Standards (ICITS), e essa combinação é frequentemente chamada de FC-NVMe ou às vezes NVMe/FC.[36]

A partir de maio de 2021, os protocolos de transporte NVMe suportados são:

O padrão NVMe sobre Fabrics foi publicado pela NVM Express, Inc. em 2016.[41][42]

O software a seguir implemente o protocolo NVMe-oF:

  • Iniciador e destino do Linux NVMe-oF.[43] O transporte RoCE foi suportado inicialmente, e com o kernel Linux 5.x, o suporte nativo para TCP foi adicionado.[44]
  • Storage Performance Development Kit (SPDK) iniciador NVMe-oF e drivers de destino.[45] Ambos os transportes RoCE e TCP são suportados.[46][47]
  • Iniciador e destino Starwind NVMe-oF para Microsoft Windows, suportando transportes RoCE e TCP.[48]

Comparação com AHCI[editar | editar código-fonte]

O Advanced Host Controller Interface (AHCI) tem o benefício de ampla compatibilidade de software, mas tem a desvantagem de não oferecer desempenho ideal quando usado com SSDs conectados via barramento PCI Express. Como uma interface de dispositivo lógico, o AHCI foi desenvolvido quando o objetivo de um adaptador de barramento de host (HBA) em um sistema era conectar o subsistema de CPU/memória a um subsistema de armazenamento muito mais lento baseado em mídia magnética rotativa. Como resultado, o AHCI apresenta certas ineficiências quando usado com dispositivos SSD, que se comportam muito mais como RAM do que como mídia giratória.[7]

A interface do dispositivo NVMe foi projetada desde o início, aproveitando a latência e o paralelismo mais baixos dos SSDs PCI Express e complementando o paralelismo de CPUs, plataformas e aplicativos contemporâneos. Em alto nível, as vantagens básicas do NVMe sobre o AHCI estão relacionadas à sua capacidade de explorar o paralelismo no hardware e software do host, manifestado pelas diferenças nas profuncidades da fila de comandos, eficiência do processamento de interrupção, número de acessos a registrador não cacheáveis, etc., resultando em várias melhorias de desempenho.[7][49]:17–18

A tabela abaixo resume as diferenças de alto nível entre as interfaces de dispositivo lógico NVMe e AHCI.

Comparação de alto nível de AHCI e NVMe[7]
  AHCI NVMe
Profundidade máxima da fila Uma fila de comandos;
Até 32 comandos por fila
Até 65535 filas;[50]
Até 65536 comandos por fila
Acessos de registro não cacheáveis
(2000 ciclos cada)
Seis por comando não enfileirado;
nove por comando na fila
Dois por comando
Interromper Uma única interrupção Até 2048 interrupções MSI-X
Paralelismo
e múltiplos threads
Requer bloqueio de sincronização
para emitir um comando
Sem bloqueio
Eficiência
para comandos de 4 KB
Os parâmetros de comando exigem
duas buscas de DRAM de host serializadas
Obtém parâmetros de comando
em uma busca de 64 bytes
Transmissão de dados Half-duplex Full-duplex

Suporte ao sistema operacional[editar | editar código-fonte]

A posição dos caminhos de dados NVMe e várias filas internas em várias camadas da pilha de armazenamento do Linux kernel.[51]
Chrome OS
Em 24 de fevereiro de 2015, o suporte para inicialização de dispositivos NVM Express foi adicionado ao Chrome OS.[52][53]
DragonFly BSD
A primeira versão do DragonFly BSD com suporte a NVMe é a versão 4.6.[54]
FreeBSD
A Intel patrocinou um driver NVM Expressa para filiais head e stable/9 do FreeBSD.[55][56] Os drivers nvd(4) e nvme(4) estão incluídos na configuração GENERIC do kernel por padrão desde a versão 10.2 do FreeBSD em 2015.[57]
Genode
O suporte para NVMe de nível de consumidor foi adicionado à estrutura Genode como parte da versão 18.05.[58]
Haiku
Haiku ganhou suporte para NVMe em 18 de abril de 2019.[59][60]
Illumos
Illumos recebeu suporte para NVMe em 15 de outubro de 2014.[61]
iOS
Com o lançamento do iPhone 6S e 6S Plus, a Apple introduziu a primeira implantação móvel de NVMe sobre PCIe em smartphones.[62] A Apple seguiu esses lançamentos com o lançamento do iPad Pro de primeira geração e do iPhone SE de primeira geração que também usam NVMe sobre PCIe.[63]
Linux
A Intel publicou um driver NVM Express para Linux em 3 de março de 2011,[64][65][66] que foi incorporado à linha principal do kernel Linux em 18 de janeiro de 2012 e lançado como parte da versão 3.3 do kernel Linux em 19 de março de 2012.[67] Linux suporta NVMe Host Memory Buffer[68] da versão 4.13.1[69] com tamanho máximo padrão de 128 MB.[70]
macOS
A Apple introduziu o suporte de software para NVM Express no Yosemite 10.10.3. A interface de hardware NVMe foi introduzida no MacBook e MacBook Pro de 2016.[71]
NetBSD
O NetBSD adicionou suporte para NVMe no NetBSD 8.0.[72] A implementação é derivada do OpenBSD 6.0.
OpenBSD
O trabalho de desenvolvimento necessário para dar suporte ao NVMe no OpenBSD foi iniciado em abril de 2014 por um desenvolvedor sênior anteriormente responsável pelo suporte a USB 2.0 e AHCI.[73] O suporte para NVMe foi habilitado na versão OpenBSD 6.0.[74]
OS/2
Arca Noae fornece um driver NVMe para o ArcaOS, a partir de aabril de 2021. O driver requer interrupções avançadas conforme fornecido pelo ACPI PSD rodando no modo de interrupção avançado (modo 2), exigindo, portanto, o kernel SMP também.[75]
Solaris
Solaris recebeu suporte para NVMe no Oracle Solaris 11.2.[76]
VMware
A Intel forneceu um driver NVMe para VMware,[77] que está incluído no vSphere 6.0 e versões posteriores, suportando vários dispositivos NVMe.[78] A partir da atualização 1 do vSphere 6, o subsistema de armazenamento definido por software VSAN da VMware também oferece suporte a dispositivos NVMe.[79]
Windows
A Microsoft adicionou suporte nativo para NVMe ao Windows 8.1 e Windows Server 2012 R2.[49][80] Drivers nativos para Windows 7 e Windows Server 2008 R2 foram adicionados nas atualizações.[81] Além disso, o suporte para Windows XP e Vista também foi adicionado não oficialmente.[82] Muitos fornecedores lançaram seus próprios drivers do Windows para seus dispositivos. Também há arquivos de instalação personalizados manualmente disponíveis para instalar o driver de um fornecedor específico em qualquer placa NVMe, como usar um driver Samsung NVMe com um dispositivo NVMe não Samsung, que pode ser necessário para recursos adicionais, desempenho e estabilidade.[82] O suporte para NVMe HMB foi adicionado na atualização de aniversário do Windows 10 (versão 1607) em 2016.[33]
A OpenFrabrics Alliance mantém um driver NVMe Windows de código aberto para Windows 7/8/8.1 e Windows Server 2008R2/2012/2012R2, desenvolvido a partir do código de linha de base enviado por várias empresas promotoras do grupo de trabalho NVMe, especificamente IDT, Intel e LSI.[83] A versão atual é 1.5 de dezembro de 2016.[84]

Suporte de software[editar | editar código-fonte]

QEMU
O NVMe é suportado pelo QEMU deade a versão 1.6 lançada em 15 de agosto de 2013.[85] Os dispositivos NVMe apresentados aos convidados do QEMU podem ser reais ou emulados.
UEFI
Um driver NVMe decódigo aberto para UEFI está disponível no SourceForge.[86]

Ferramenta de gerenciamento[editar | editar código-fonte]

nvme-cli no Linux

nvmecontrol[editar | editar código-fonte]

A ferramenta nvmecontrol é usada para controlar um disco NVMe a partir da linha de comando do FreeBSD. Foi adicionado no FreeBSD 9.2.[87]

nvme-cli[editar | editar código-fonte]

Ferramentas de espaço do usuário NVM-Express para Linux.[88]

Ver também[editar | editar código-fonte]

Referências

  1. «NVM Express». NVM Express, Inc. Consultado em 6 de maio de 2022. NVMe is designed from the ground up to deliver high bandwidth and low latency storage access for current and future NVM technologies. 
  2. https://www.anandtech.com/show/14543/nvme-14-specification-published. Arquivado em 2021-01-27 no Wayback Machine
  3. «Tested: Does Your M.2 NVMe SSD Need a Heatsink?». Make Tech Easier (em inglês). 2 de outubro de 2021. Consultado em 6 de maio de 2022 
  4. Drew Riley (13 de agosto de 2014). «Intel SSD DC P3700 800GB and 1.6TB Review: The Future of Storage». tomshardware.com. Consultado em 6 de maio de 2022 
  5. «Intel Solid-State Drive DC P3600 Series» (PDF). Intel. 20 de março de 2015. pp. 18, 20–22. Consultado em 6 de maio de 2022 
  6. Paul Alcorn (5 de junho de 2015). «SFFWG Renames PCIe SSD SFF-8639 Connector To U.2». Tom's Hardware. Consultado em 6 de maio de 2022 
  7. a b c d Dave Landsman (9 de agosto de 2013). «AHCI and NVMe as Interfaces for SATA Express Devices – Overview» (PDF). SATA-IO. Consultado em 15 de maio de 2022 
  8. Paul Wassenberg (25 de junho de 2013). «SATA Express: PCIe Client Storage» (PDF). SATA-IO. Consultado em 6 de maio de 2022. Arquivado do original (PDF) em 4 de outubro de 2013 
  9. NVMe Specifications
  10. NVM Express Announces the Rearchitected NVMe 2.0 Library of Specifications
  11. Walker, Don H. «A Comparison of NVMe and AHCI» (PDF). 31 de julho de 2012. SATA-IO. Consultado em 20 de maio de 2022. Arquivado do original (PDF) em 12 de fevereiro de 2019 
  12. «NVM Express Explained» (PDF). nvmexpress.org. 9 de abril de 2014. Consultado em 9 de maio de 2022 
  13. «Using LC's Sierra Systems». hpc.llnl.gov. Consultado em 9 de maio de 2022 
  14. «SummitDev User Guide». olcf.ornl.gov. Consultado em 9 de maio de 2022. Cópia arquivada em 1 de abril de 2020 
  15. «Speeding up Flash... in a flash». The Inquirer. 13 de outubro de 2007. Consultado em 9 de maio de 2022. Arquivado do original em 18 de setembro de 2009 
  16. http://www.bswd.com/FMS09/FMS09-T2A-Huffman.pdf
  17. «Flash new standard tips up». The Inquirer. 16 de abril de 2008. Consultado em 9 de maio de 2022. Arquivado do original em 11 de janeiro de 2014 
  18. http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2008/20080813_T2A_Huffman.pdf
  19. a b http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2013/20130813_A12_Onufryk.pdf
  20. «New Promoter Group Formed to Advance NVM Express» (PDF). Press release. 1 de junho de 2011. Consultado em 9 de maio de 2022 
  21. Amber Huffman, ed. (11 de outubro de 2012). «NVM Express Revision 1.1» (PDF). Specification. Consultado em 9 de maio de 2022 
  22. David A. Deming (8 de junho de 2013). «PCIe-based Storage» (PDF). snia.org. Consultado em 9 de maio de 2022. Arquivado do original (PDF) em 20 de setembro de 2013 
  23. Amber Huffman, ed. (23 de janeiro de 2013). «NVM Express Revision 1.0e» (PDF). Specification. Consultado em 9 de maio de 2022 
  24. «IDT releases two NVMe PCI-Express SSD controllers». The Inquirer. 21 de agosto de 2012. Consultado em 9 de maio de 2022. Arquivado do original em 24 de agosto de 2012 
  25. «IDT Shows Off The First NVMe PCIe SSD Processor and Reference Design - FMS 2012 Update». The SSD Review. 24 de agosto de 2012. Consultado em 9 de maio de 2022 
  26. «Samsung Announces Industry's First 2.5-inch NVMe SSD | StorageReview.com - Storage Reviews». StorageReview.com. 18 de julho de 2013. Consultado em 9 de maio de 2022. Arquivado do original em 10 de janeiro de 2014 
  27. «LSI SF3700 SandForce Flash Controller Line Unveiled | StorageReview.com - Storage Reviews». StorageReview.com. 18 de novembro de 2013. Consultado em 9 de maio de 2022. Arquivado do original em 11 de janeiro de 2014 
  28. «LSI Introduces Blazing Fast SF3700 Series SSD Controller, Supports Both PCIe and SATA 6Gbps». hothardware.com. Consultado em 9 de maio de 2022. Arquivado do original em 5 de março de 2016 
  29. Jane McEntegart. «Kingston Unveils First PCIe SSD: 1800 MB/s Read Speeds». Tom's Hardware. Consultado em 9 de maio de 2022 
  30. «Kingston HyperX Predator PCI Express SSD Unveiled With LSI SandForce SF3700 PCIe Flash Controller». hothardware.com. Consultado em 9 de maio de 2022. Arquivado do original em 28 de maio de 2016 
  31. «Intel® Solid-State Drive Data Center Family for PCIe*». Intel. Consultado em 9 de maio de 2022 
  32. «NVM Express » NVM Express Organization History». nvmexpress.org. Consultado em 9 de maio de 2022. Arquivado do original em 23 de novembro de 2015 
  33. a b The Toshiba RC100 SSD Review: Tiny Drive In A Big Market
  34. Kim K, Kim T (2020) HMB in DRAM-less NVMe SSDs: Their usage and effects on performance. PLOS ONE 15(3): e0229645.
  35. «PowerEdge R730xd Rack Server» (em inglês). Dell. Consultado em 9 de maio de 2022 
  36. a b «NVMe over Fibre Channel (NVMe over FC) or FC-NVMe standard». Tech Target. 1 de janeiro de 2018. Consultado em 11 de maio de 2022 
  37. «FC-NVMe rev 1.14 (T11/16-020vB)» (PDF). INCITS. 19 de abril de 2017. Consultado em 11 de maio de 2022 
  38. «NVMe-oF Specification». NVMexpress. Consultado em 11 de maio de 2022 
  39. «Supplement to InfiniBandTMArchitecture Specification Volume 1 Release 1.2.1». Infiniband. 2 de setembro de 2014. Consultado em 11 de maio de 2022 
  40. «What is NVMe-oF?». Storage Review. 27 de junho de 2020. Consultado em 11 de maio de 2022 
  41. «NVM Express over Fabrics Revision 1.0» (PDF). NVM Express, Inc. 5 de junho de 2016 
  42. Woolf, David (9 de fevereiro de 2018). «What NVMe over Fabrics Means for Data Storage» 
  43. Hellwig, Christoph (17 de julho de 2016). «NVMe Over Fabrics Support in Linux» (PDF) 
  44. Petros Koutoupis (10 de junho de 2019). «Data in a Flash, Part III: NVMe over Fabrics Using TCP». Linux Journal. Consultado em 11 de maio de 2022 
  45. Stern, Jonathan (7 de junho de 2016). «Announcing the SPDK NVMf Target» 
  46. «SPDKNVMe-oFRDMA (Target & Initiator) Performance Report» (PDF). SPDK. 1 de fevereiro de 2021. Consultado em 11 de maio de 2022 
  47. «SPDKNVMe-oFTCP (Target & Initiator) Performance Report» (PDF). SPDK. 1 de fevereiro de 2020. Consultado em 11 de maio de 2022 
  48. «How is NVMe-oF doing? Part 3: StarWind NVMe-oF Initiator + Linux SPDK NVMe-oF Target». Hyper-V Blog. 12 de agosto de 2019. Consultado em 11 de maio de 2022 
  49. a b Andy Herron (2013). «Advancements in Storage and File Systems in Windows 8.1» (PDF). snia.org. Consultado em 15 de maio de 2022. Cópia arquivada (PDF) em 10 de janeiro de 2014 
  50. Amber Huffman (9 de março de 2020). «NVM Express Base Specification Revision 1.4a» (PDF). Specification. section 1.4 Theory of Operation, p. 7. Consultado em 15 de maio de 2022 
  51. Werner Fischer; Georg Schönberger (1 de junho de 2015). «Linux Storage Stack Diagram». Thomas-Krenn.AG. Consultado em 15 de maio de 2022 
  52. «NVM Express » ChromeOS adds boot support for NVM Express». nvmexpress.org. Consultado em 19 de maio de 2022 
  53. «4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge - Git at Google». googlesource.com. Consultado em 19 de maio de 2022 
  54. «DragonFly BSD 4.6». www.dragonflybsd.org. Consultado em 19 de maio de 2022 
  55. «Log of /head/sys/dev/nvme». FreeBSD source tree. The FreeBSD Project. Consultado em 19 de maio de 2022 
  56. «Log of /stable/9/sys/dev/nvme». FreeBSD source tree. The FreeBSD Project. Consultado em 19 de maio de 2022 
  57. «FreeBSD 10.2-RELEASE Release Notes». The FreeBSD Project. Consultado em 19 de maio de 2022 
  58. «Release notes for the Genode OS Framework 18.05». genode.org 
  59. «#9910 NVMe devices support». dev.haiku-os.org. Consultado em 19 de maio de 2022 
  60. «NVMe Driver Now Available - Haiku Project». www.haiku-os.org. Consultado em 19 de maio de 2022 
  61. «4053 Add NVME Driver Support to Illumos». github.com. Consultado em 19 de maio de 2022 
  62. Ho, Joshua (28 de setembro de 2015). «iPhone 6s and iPhone 6s Plus Preliminary Results». AnandTech. Consultado em 19 de maio de 2022 
  63. Chester, Brandon (16 de maio de 2016). «The iPhone SE Review». AnandTech 
  64. Matthew Wilcox (3 de março de 2011). «NVM Express driver». LWN.net. Consultado em 19 de maio de 2022. Arquivado do original em 17 de julho de 2012 
  65. Keith Busch (12 de agosto de 2013). «Linux NVMe Driver» (PDF). flashmemorysummit.com. Consultado em 19 de maio de 2022 
  66. «IDF13 Hands-on Lab: Compiling the NVM Express Linux Open Source Driver and SSD Linux Benchmarks and Optimizations» (PDF). activeevents.com. 2013. Consultado em 19 de maio de 2022. Arquivado do original (PDF) em 11 de janeiro de 2014 
  67. «Merge git://git.infradead.org/users/willy/linux-nvme». kernel.org. 18 de janeiro de 2012. Consultado em 19 de maio de 2022 
  68. Kim, K.; Kim, T. (2020). «HMB in DRAM-less NVMe SSDs: Their usage and effects on performance». PLOS ONE. 15 (3). pp. e0229645. Bibcode:2020PLoSO..1529645K. PMC 7051071Acessível livremente. PMID 32119705. doi:10.1371/journal.pone.0229645Acessível livremente 
  69. «Linux 4.13 has been released on Sun, 3 Sep 2017.» 
  70. «Pci.c « host « nvme « drivers - kernel/Git/Stable/Linux.git - Linux kernel stable tree» 
  71. «Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3». macrumors.com. Consultado em 19 de maio de 2022 
  72. «nvme -- Non-Volatile Memory Host Controller Interface». NetBSD manual pages. 16 de maio de 2021. Consultado em 19 de maio de 2022 
  73. David Gwynne (16 de abril de 2014). «non volatile memory express controller (/sys/dev/ic/nvme.c)». BSD Cross Reference. Consultado em 19 de maio de 2022 
  74. David Gwynne (14 de abril de 2016). «man 4 nvme». OpenBSD man page. Consultado em 19 de maio de 2022 
  75. «NVME». Arca Noae wiki. Arca Noae, LLC. 3 de abril de 2021. Consultado em 19 de maio de 2022 
  76. «nvme(7D)». Oracle. Consultado em 19 de maio de 2022 
  77. «Intel Solid-State for NVMe Drivers». intel.com. 25 de setembro de 2015. Consultado em 19 de maio de 2022. Cópia arquivada em 25 de março de 2016 
  78. «VMware Compatibility Guide for NVMe devices». vmware.com. Consultado em 19 de maio de 2022 
  79. «VSAN Now Supporting NVMe Devices». vmware.com. 11 de novembro de 2015. Consultado em 19 de maio de 2022 
  80. «Windows 8.1 to support hybrid disks and adds native NVMe driver». Myce.com. 6 de setembro de 2013. Consultado em 19 de maio de 2022 
  81. «Update to support NVM Express by using native drivers in Windows 7 or Windows Server 2008 R2». Microsoft. 13 de novembro de 2014. Consultado em 19 de maio de 2022 
  82. a b «Recommended AHCI/RAID and NVMe Drivers» 
  83. «Windows NVM Express». Project web site. Consultado em 19 de maio de 2022. Arquivado do original em 12 de junho de 2013 
  84. https://svn.openfabrics.org/svnrepo/nvmewin/releases/ Arquivado em 2017-05-10 no Wayback Machine
  85. «ChangeLog/1.6». qemu.org. Consultado em 20 de maio de 2022 
  86. «Download EDK II from». SourceForge.net. Consultado em 20 de maio de 2022 
  87. «NVM Express control utility». The FreeBSD Project. 12 de março de 2018. Consultado em 20 de maio de 2022 
  88. «GitHub - linux-nvme/nvme-cli: NVMe management command line interface.». linux-nvme. 26 de março de 2019. Consultado em 20 de maio de 2022 

Ligações externas[editar | editar código-fonte]