# M.2

M.2, pronunciado m ponto dois e anteriormente conhecido como Next Generation Form Factor (NGFF), é uma especificação para placas de expansão de computador montadas internamente e conectores associados. M.2 substitui o padrão mSATA, que usa o layout e os conectores físicos da placa PCI Express Mini Card. Empregando uma especificação física mais flexível, o M.2 permite diferentes larguras e comprimentos de módulo e, combinado com a disponibilidade de recursos de interface mais avançados, torna o M.2 mais adequado que o mSATA em geral para aplicações de armazenamento de estado sólido, particularmente em dispositivos menores, como ultrabooks e tablets.
As interfaces de barramento de computador fornecidas pelo conector M.2 são PCI Express 4.0 (até quatro vias), Serial ATA 3.0 e USB 3.0 (uma única porta lógica para cada uma das duas últimas). Cabe ao fabricante do host ou módulo M.2 selecionar quais interfaces serão suportadas, dependendo do nível desejado de suporte do host e do tipo de módulo. Diferentes entalhes de chaveamento do conector M.2 denotam várias finalidades e capacidades dos hosts e módulos M.2, e também impedem que os módulos M.2 sejam inseridos em conectores host incompatíveis.
A especificação M.2 oferece suporte a NVM Express (NVMe) como interface de dispositivo lógico para SSDs M.2 PCI Express, além de oferecer suporte a Advanced Host Controller Interface (AHCI) no nível de interface lógica. Enquanto o suporte para AHCI garante compatibilidade retroativa de nível de software com dispositivos SATA legados e sistemas operacionais legados, o NVM Express foi projetado para utilizar totalmente a capacidade de dispositivos de armazenamento PCI Express de alta velocidade para realizar muitas operações de E/S em paralelo.$^{:14}$

## Recursos

Os módulos M.2 podem integrar várias funções, incluindo as seguintes classes de dispositivos: Wi-Fi, Bluetooth, navegação por satélite, Near Field Communication (NFC), Rádio digital, WiGig, WAN sem fino (WWAN) e unidades de estado sólido (SSDs). A especificação SATA revisão 3.2, em sua revisão outro de agosto de 2013, padroniza o M.2 como um novo formato para dispositivos de armazenamento e especifica seu layout de hardware.$^{:12}$ Os barramentos expostos através do conector M.2 incluem PCI Express 3.0 e mais recente, Serial ATA (SATA) 3.0 e USB 3.0; todos esses padrões são compatíveis com versões anteriores.
A especificação M.2 fornece até quatro pistas PCI Express e uma porta lógica Sata 3.0 (6 Gbit/s), e as expõe através do mesmo conector para que dispositivos de armazenamento PCI Express e SATA possam existir na forma de módulos M.2. As pistas PCI Express expostas fornecem uma conexão PCI Express pura entre o host e o dispositivo de armazenamento, sem camadas adicionais de abstração de barramento. A especificação PCI-SIG M.2, em sua revisão 1.0 de dezembro de 2013, fornece especificações detalhadas de M.2.$^{:12}$

### Interfaces de armazenamento

Três opções estão disponíveis para as interfaces de dispositivos lógicos e conjuntos de comandos usados para fazer interface com dispositivos de armazenamento M.2, que podem ser usados dependendo do tipo de dispositivo de armazenamento M.2 e suporte de sistema operacional disponível:$^{:14}$

#### SATA Legado

    Usado para SSDs SATA e interfaceado por meio do driver AHCI e da porta SATA 3.0 herdada (6 Gbit/s) exposta por meio do conector M.2.

#### PCI Express usando AHCI

    Usado para SSDs PCI Express e interfaceado por meio do driver AHCI e fornecido pistas PCI Express, fornecendo compatibilidade com versões anteriores com amplo suporte SATA em sistemas operacionais ao custo de desempenho inferior. O AHCI foi desenvolvido quando o propósito de um adaptador de barramento de host (HBA) em um sistema era conectar o subsistema de CPU/memória com um subsistema de armazenamento muito mais lento baseado em mídia magnética rotativa; como resultado, o AHCI tem algumas ineficiências inerentes quando aplicaod a dispositivos SSD, que se comportam muito mais como RAM do que como mídia giratória.

#### PCI Express usando NVMe

    Usado para SSDs PCI Express e interfaceado por meio do driver NVMe e forncido pistas PCI Express, como uma interface de controlador de host escalável e de alto desempenho projetada e otimizada especialmente para interface com SSDs PCI Express. O NVMe foi projetado desde o início, aproveitado a baixa latência e o paralelismo aprimorado dos SSDs PCI Express e complementando o paralelismo de CPUs, plataformas e aplicativos contemporâneos. Em algo nível, as principais vantagens do NVMe sobre o AHCI estão relacionadas à capacidade do NVMe de explorar o paralelismo em hardware e software host, com base em suas vantagens de design que incluem tranferências de dados com menos estágios, maior profundidade de filas de comandos e processamento de interrupção mais eficiente.

## Fatores de forma e digitação

O padrão M.2 foi projetado como uma revisão e melhoria do padrão mSATA, com a possibilidade de placas de circuito impresso (PCBs) maiores como um de seus principais incentivos. Enquanto o mSATA aproveita o formato e o conector PCI Express Mini Card (Mini PCIe) existente, o M.2 foi projetado desde o início para maximizar o uso de espaço da PCB, minimizando o espaço ocupado pelo módulo. Como resultado do padrão M.2 que permite módulos mais longos e população de componentes de dupla face, os módulos SSD M.2 podem fornecer maiores capacidades de armaenamento e também podem dobrar a capacidade de armazenamento dentro do espaço ocupado pelos dispositivos mSATA.$^{:20,22–23}$
Os módulos M.2 são retangulares, com um conector de borda em um lado e um orifício de montagem semicircular no centro da bora oposta. O conector de borda possui 75 posições com até 67 pinos, empregando um passo de 0,5 mm e deslocando os pinos em lados opostos da PCB um do outro. Cada pino no conector é classificado para até 50 V e 0,5 A, enquanto o próprio conector é especificado para suportar 60 ciclos de acoplamento.$^{:6}$ O padrão M.2 permite larguras de módulo de 12, 16, 22 e 30 mm e comprimento de 16, 26, 30, 38, 42, 60, 80 e 110 mm. A linha inicial das placas de expansão M.2 disponíveis comercialmente tem 22 mm de largura, com comprimentos variados de 30, 42, 60, 80 e 110 mm. Os códigos para os tamanhos dos módulos M.2 contêm a largura e o comprimento de um módulo específico; por exemplo, "2242" como código de módulo significa que o módulo tem 22 mm de largura e 42 mm de comprimento, enquanto "2280" denota um módulo de 22 mm de largura e 80 mm de comprimento.
Um módulo M.2 é instalado em um conector correspondente fornecido pela placa de circuito do host e um único parafuso de montagem prente o módulo no lugar. Os componentes podem ser montados em ambos os lados do módulo, com o tipo de módulo real limitando a espessura dos componentes; a espessura máxima permitida dos componenetes é de 1,5 mm por lado e a espessura do PCB é de 0,8 mm ± 10%. Diferentes conectores do lado do host são usados para módulos M.2 de um e dois lados, fornecendo diferentes quantidades de espaço entre a placa de expansão M.2 e a PCB do host. As placas de circuito nos hosts geralmente são projetadas para aceitar vários comprimentos de módulos M.2, o que significa que os soquetes capazes de aceitar módulos M.2 mais longos geralmente também aceitam os mais curtos, fornecendo posições diferentes para o parafuso de montagem.
Chaveamento do módulo M.2 e interfaces fornecidas$^{:8}$$^{:3}$ :
| Código da chave | Pinos entalhados | Interfaces fornecidas |
| A | 8–15 | 2× PCIe ×1, USB 2.0, I$^2$C e DP ×4 |
| B | 12–19 | PCIe ×2, SATA, USB 2.0 e 3.0, áudio, UIM, HSIC, SSIC, I$^2$C e SMBus |
| C | 16–23 | Reservado para uso futuro |
| D | 20–27 | Reservado para uso futuro |
| E | 24–31 | 2× PCIe ×1, USB 2.0, I$^2$C, SDIO, UART, PCM e CNVi |
| F | 28–35 | Interface de memória futura (FMI) |
| G | 39–46 | Reservado para uso personalizado (não usado na especificação M.2) |
| H | 43–50 | Reservado para uso futuro |
| J | 47–54 | Reservado para uso futuro |
| K | 51–58 | Reservado para uso futuro |
| L | 55–62 | Reservado para uso futuro |
| M | 59–66 | PCIe ×4, SATA e SMBus |
Espessura máxima do componente em módulos M.2$^{:8}$$^{:3}$ :
| ID do tipo | Parte superior | Lado inferior |
| S1 | 1.20 mm | — |
| S2 | 1.35 mm | — |
| S3 | 1.50 mm | — |
| D1 | 1.20 mm | 1.35 mm |
| D2 | 1.35 mm | 1.35 mm |
| D3 | 1.50 mm | 1.35 mm |
| D4 | 1.50 mm | 0.70 mm |
| D5 | 1.50 mm | 1.50 mm |
A placa de circuito impresso de um módulo M.2 fornece um conector de borda de 75 posições; dependendo do tipo de módulo, certas posições dos pinos são removidas para apresentar um ou mais entalhes de chaveamento. Os conectores M.2 do lado do host (soquetes) podem preencher uma ou mais posições de chave de acoplamento, determinando o tipo de módulo aceito pelo host; a partir de abril de 2014, os conectores do lado do host estão disponíveis com apenas uma posição de chave correspondente preenchida (B ou M). Além disso, os soquetes M.2 codificados para SATA ou duas pistas PCI Express (PCIe x2) são chamados de "configuração de soquete 2" ou "soquete 2", enquanto os soquetes codificados para quatro pistas PCI Express (PCIe x4) são chamadas de "configuração do soquete 3" ou "soquete 3".$^{:15}$
Por exemplo, os módulos M.2 com dois entalhes nas posições B e M usam até duas pistas PCI Express e fornecem compatibilidade mais ampla ao mesmo tempo, enquanto os módulos M.2 com apenas um entalhe na posição M usam até quatro vias PCI Express; ambos os exemplos também podem fornecer dispositivos de armazenamento SATA. A codificação semelhante se aplica aos módulos M.2 que utilizam a conectividade USB 3.0 fornecida.
Vários tipos de módulos M.2 são indicados usando os esquemas de nomenclatura "WWLL-HH-KK" ou "WWLL-HH-K", nos quais "WW" e "LL" especificam a largura e o comprimento do módulo em milímetros, respectivamente. A parte "HH" especifica, de forma codificada, se um módulo é de um ou dois lados e a espessura máxima permitida dos componentes montados; os valores possíveis estão listados na tabela à direita acima. A codificação de módulo é especificada pela parte "KK", de forma codificada, usando os IDs de chave da tabela à esquerda acima; também pode ser especificado apenas com "K", se um módulo tiver apenas um entalhe de codificação.
Além dos módulos soquetes, o padrão M.2 também inclui a opção de ter módulos unilaterais soldados permanentemente.

## Galeria

* Uma docking station para discos rígidos m.2
* O slot de conexão da docking station
* Um SSD Samsung 980 PRO PCIe 4.0 NVMe com 1 TB de capacidade de armazenamento