NVM Express
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]
Acrónimo | NVMe |
Introduzido | 2011 |
Organização gestora | NVM Express Work Group (incorporado como NVM Express em 2014) |
Sítio Web | nvmexpress |
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
editarAs 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
editarHistoricamente, 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
editarOs 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
editarExistem muitos fatores de forma da unidade de estado sólido NVMe, como AIC, U.2, U.3, M.2 etc.
AIC (cartão adicional)
editarQuase 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)
editarU.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)
editarU.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
editarM.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
editarNVM 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:
- FC, FC-NVMe[36][37]
- TCP, NVMe/TCP[38]
- Ethernet, RoCE v1/v2 (RDMA sobre converged Ethernet)[39]
- InfiniBand, NVMe sobre InfiniBand ou NVMe/IB[40]
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
editarO 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.
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- 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]
- 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]
- 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
editarFerramenta de gerenciamento
editarnvmecontrol
editarA 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
editarFerramentas de espaço do usuário NVM-Express para Linux.[88]
Ver também
editarReferências
- ↑ «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.
- ↑ https://www.anandtech.com/show/14543/nvme-14-specification-published. Arquivado em 2021-01-27 no Wayback Machine
- ↑ «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
- ↑ 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
- ↑ «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
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ NVMe Specifications
- ↑ NVM Express Announces the Rearchitected NVMe 2.0 Library of Specifications
- ↑ 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
- ↑ «NVM Express Explained» (PDF). nvmexpress.org. 9 de abril de 2014. Consultado em 9 de maio de 2022
- ↑ «Using LC's Sierra Systems». hpc.llnl.gov. Consultado em 9 de maio de 2022
- ↑ «SummitDev User Guide». olcf.ornl.gov. Consultado em 9 de maio de 2022. Cópia arquivada em 1 de abril de 2020
- ↑ «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
- ↑ http://www.bswd.com/FMS09/FMS09-T2A-Huffman.pdf
- ↑ «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
- ↑ http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2008/20080813_T2A_Huffman.pdf
- ↑ a b http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2013/20130813_A12_Onufryk.pdf
- ↑ «New Promoter Group Formed to Advance NVM Express» (PDF). Press release. 1 de junho de 2011. Consultado em 9 de maio de 2022
- ↑ Amber Huffman, ed. (11 de outubro de 2012). «NVM Express Revision 1.1» (PDF). Specification. Consultado em 9 de maio de 2022
- ↑ 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
- ↑ Amber Huffman, ed. (23 de janeiro de 2013). «NVM Express Revision 1.0e» (PDF). Specification. Consultado em 9 de maio de 2022
- ↑ «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
- ↑ «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
- ↑ «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
- ↑ «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
- ↑ «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
- ↑ Jane McEntegart. «Kingston Unveils First PCIe SSD: 1800 MB/s Read Speeds». Tom's Hardware. Consultado em 9 de maio de 2022
- ↑ «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
- ↑ «Intel® Solid-State Drive Data Center Family for PCIe*». Intel. Consultado em 9 de maio de 2022
- ↑ «NVM Express » NVM Express Organization History». nvmexpress.org. Consultado em 9 de maio de 2022. Arquivado do original em 23 de novembro de 2015
- ↑ a b The Toshiba RC100 SSD Review: Tiny Drive In A Big Market
- ↑ Kim K, Kim T (2020) HMB in DRAM-less NVMe SSDs: Their usage and effects on performance. PLOS ONE 15(3): e0229645.
- ↑ «PowerEdge R730xd Rack Server» (em inglês). Dell. Consultado em 9 de maio de 2022
- ↑ 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
- ↑ «FC-NVMe rev 1.14 (T11/16-020vB)» (PDF). INCITS. 19 de abril de 2017. Consultado em 11 de maio de 2022
- ↑ «NVMe-oF Specification». NVMexpress. Consultado em 11 de maio de 2022
- ↑ «Supplement to InfiniBandTMArchitecture Specification Volume 1 Release 1.2.1». Infiniband. 2 de setembro de 2014. Consultado em 11 de maio de 2022
- ↑ «What is NVMe-oF?». Storage Review. 27 de junho de 2020. Consultado em 11 de maio de 2022
- ↑ «NVM Express over Fabrics Revision 1.0» (PDF). NVM Express, Inc. 5 de junho de 2016
- ↑ Woolf, David (9 de fevereiro de 2018). «What NVMe over Fabrics Means for Data Storage»
- ↑ Hellwig, Christoph (17 de julho de 2016). «NVMe Over Fabrics Support in Linux» (PDF)
- ↑ 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
- ↑ Stern, Jonathan (7 de junho de 2016). «Announcing the SPDK NVMf _target»
- ↑ «SPDKNVMe-oFRDMA (_target & Initiator) Performance Report» (PDF). SPDK. 1 de fevereiro de 2021. Consultado em 11 de maio de 2022
- ↑ «SPDKNVMe-oFTCP (_target & Initiator) Performance Report» (PDF). SPDK. 1 de fevereiro de 2020. Consultado em 11 de maio de 2022
- ↑ «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
- ↑ 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
- ↑ 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
- ↑ Werner Fischer; Georg Schönberger (1 de junho de 2015). «Linux Storage Stack Diagram». Thomas-Krenn.AG. Consultado em 15 de maio de 2022
- ↑ «NVM Express » ChromeOS adds boot support for NVM Express». nvmexpress.org. Consultado em 19 de maio de 2022
- ↑ «4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge - Git at Google». googlesource.com. Consultado em 19 de maio de 2022
- ↑ «DragonFly BSD 4.6». www.dragonflybsd.org. Consultado em 19 de maio de 2022
- ↑ «Log of /head/sys/dev/nvme». FreeBSD source tree. The FreeBSD Project. Consultado em 19 de maio de 2022
- ↑ «Log of /stable/9/sys/dev/nvme». FreeBSD source tree. The FreeBSD Project. Consultado em 19 de maio de 2022
- ↑ «FreeBSD 10.2-RELEASE Release Notes». The FreeBSD Project. Consultado em 19 de maio de 2022
- ↑ «Release notes for the Genode OS Framework 18.05». genode.org
- ↑ «#9910 NVMe devices support». dev.haiku-os.org. Consultado em 19 de maio de 2022
- ↑ «NVMe Driver Now Available - Haiku Project». www.haiku-os.org. Consultado em 19 de maio de 2022
- ↑ «4053 Add NVME Driver Support to Illumos». github.com. Consultado em 19 de maio de 2022
- ↑ Ho, Joshua (28 de setembro de 2015). «iPhone 6s and iPhone 6s Plus Preliminary Results». AnandTech. Consultado em 19 de maio de 2022
- ↑ Chester, Brandon (16 de maio de 2016). «The iPhone SE Review». AnandTech
- ↑ 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
- ↑ Keith Busch (12 de agosto de 2013). «Linux NVMe Driver» (PDF). flashmemorysummit.com. Consultado em 19 de maio de 2022
- ↑ «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
- ↑ «Merge git://git.infradead.org/users/willy/linux-nvme». kernel.org. 18 de janeiro de 2012. Consultado em 19 de maio de 2022
- ↑ 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 7051071 . PMID 32119705. doi:10.1371/journal.pone.0229645
- ↑ «Linux 4.13 has been released on Sun, 3 Sep 2017.»
- ↑ «Pci.c « host « nvme « drivers - kernel/Git/Stable/Linux.git - Linux kernel stable tree»
- ↑ «Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3». macrumors.com. Consultado em 19 de maio de 2022
- ↑ «nvme -- Non-Volatile Memory Host Controller Interface». NetBSD manual pages. 16 de maio de 2021. Consultado em 19 de maio de 2022
- ↑ 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
- ↑ David Gwynne (14 de abril de 2016). «man 4 nvme». OpenBSD man page. Consultado em 19 de maio de 2022
- ↑ «NVME». Arca Noae wiki. Arca Noae, LLC. 3 de abril de 2021. Consultado em 19 de maio de 2022
- ↑ «nvme(7D)». Oracle. Consultado em 19 de maio de 2022
- ↑ «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
- ↑ «VMware Compatibility Guide for NVMe devices». vmware.com. Consultado em 19 de maio de 2022
- ↑ «VSAN Now Supporting NVMe Devices». vmware.com. 11 de novembro de 2015. Consultado em 19 de maio de 2022
- ↑ «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
- ↑ «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
- ↑ a b «Recommended AHCI/RAID and NVMe Drivers»
- ↑ «Windows NVM Express». Project web site. Consultado em 19 de maio de 2022. Arquivado do original em 12 de junho de 2013
- ↑ https://svn.openfabrics.org/svnrepo/nvmewin/releases/ Arquivado em 2017-05-10 no Wayback Machine
- ↑ «ChangeLog/1.6». qemu.org. Consultado em 20 de maio de 2022
- ↑ «Download EDK II from». SourceForge.net. Consultado em 20 de maio de 2022
- ↑ «NVM Express control utility». The FreeBSD Project. 12 de março de 2018. Consultado em 20 de maio de 2022
- ↑ «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- «Sítio oficial»
- LFCS: Preparing Linux for nonvolatile memory devices, LWN.net, April 19, 2013, by Jonathan Corbet (em inglês)
- Multipathing PCI Express Storage, Linux Foundation, March 12, 2015, by Keith Busch (em inglês)
- NVMe, NVMe-oF and RDMA for network engineers, August 2020, by Jerome Tissieres (em inglês)