Dysk twardy (HDD). Magnetyczny i mechaniczny napęd wirujący jest uważany za starsze urządzenie pamięci masowej. Istnieje od połowy XX wieku. Dyski HDD zbudowane są z ruchomych części, które częściej powodują awarię urządzenia. Obecnie dostępne współczynniki kształtu to 3.5” i 2.5-calowe dyski twarde. Dzisiejsze dyski twarde korzystają ze standardu SATA (Serial Advanced Technology Attachment), który zastąpił przestarzałe już standardy IDE (Integrated Drive Electronics) i PATA (Parallel Advanced Technology Attachment).
Dysk półprzewodnikowy (SSD). SSD to urządzenie pamięci masowej nowej generacji, które przechowuje informacje w pamięciach flash. Pełni te same funkcje co HDD, tylko szybciej. W przeciwieństwie do dysku twardego jest mało prawdopodobne, aby uległ awarii, ponieważ nie ma ruchomych części. Dyski SSD korzystają z interfejsu SATA lub PCIe (Peripheral Component Interconnect Express).
Więc gdzie pasuje NVMe?? Aby lepiej zrozumieć NVMe, najpierw poinformuj nas o różnicach między interfejsem SATA i PCIe.
SATA a PCIe
SATA i PCIe to nośniki interfejsu dla wewnętrznych urządzeń pamięci masowej. SATA jest używany zarówno w przypadku dysków HDD, jak i SSD, podczas gdy nowszy PCIe jest używany w przypadku dysków SSD.
Dysk twardy jest najwolniejszy spośród elementów sprzętowych komputerów. Aby nadążyć za szybkością innych komponentów, absolutną koniecznością było zastąpienie standardów IDE i PATA szybszym interfejsem SATA.
SATA to zarówno złącze, jak i standard magistrali. Złącze SATA łączy dyski twarde i dyski SSD z magistralą SATA płyty głównej komputera. To proste złącze miało kilka opracowań i jego najnowszą iterację, SATA III jest szeroko stosowany w nowoczesnych dyskach HDD i SSD. SATA III ma szybkość transferu 600 MB/s i wykorzystuje AHCI (Advanced Host Controller Interface) do komunikacji z urządzeniami SATA. AHCI został zaprojektowany specjalnie dla obracających się dysków twardych, ale ponieważ nie było standardu dla dysków SATA po jego opracowaniu, AHCI został zatwierdzony do pracy z SATA. Chociaż AHCI był kompatybilny z dyskami SATA, nie zoptymalizował w pełni potencjału dysków SSD opartych na pamięci flash ze względu na niską szybkość transferu. Ponadto potrzebny jest kontroler SATA, aby AHCI komunikował się z dyskiem SATA, jeszcze bardziej spowalniając transfer danych. Producenci następnie zbadali inne interfejsy, które mogłyby zapewnić szybsze transfery.
PCIe to szybki standard magistrali rozszerzeń, który zastąpił starsze i wolniejsze standardy magistrali PCI, PCI-X i AGP. Był używany głównie do kart graficznych, Wi-Fi i Ethernet. PCIe ma bezpośrednie połączenie z procesorem, co znacznie przyspiesza transfer. W przeciwieństwie do SATA, PCIe nie wymaga kontrolera między dyskiem a procesorem, aby dane mogły być przesyłane tam i z powrotem. PCIe ma również inne imponujące zalety, takie jak mniejsze opóźnienia, skalowalna wydajność, zwiększone I/O do 40 linii na gniazdo procesora i niski pobór mocy.[1] PCIe 3.0 to najnowsza generacja PCIe o szybkości transferu 985 MB/s na linię i może składać się z maksymalnie 16 linii. Te wspaniałe atrybuty PCIe sprawiają, że jest to idealne gniazdo dla dysków SSD. Ale jednej rzeczy wciąż brakuje; standard komunikacji między dyskami SSD a interfejsem PCIe. To wtedy pojawia się NVMe.
Czy NVMe korzysta z PCIe??
Istnieje wiele nieporozumień między NVMe i PCIe, ponieważ te dwa słowa są często używane zamiennie. W innych przypadkach dyski SSD i NVMe są traktowane jako dwa różne dyski. Ale czym właściwie jest NVMe?
NVMe nie jest interfejsem ani dyskiem. Jest to obecnie przemysłowy standard komunikacji dla urządzeń pamięci masowej NVM, takich jak dyski SSD. W rzeczywistości jest zaprojektowany specjalnie dla dysków SSD z pamięcią flash. Podczas gdy PCIe jest interfejsem fizycznym, NVMe jest protokołem zarządzającym urządzeniami NVM korzystającymi z PCIe. Jest więc podobny do AHCI, tylko znacznie szybszy.
Dla porównania, AHCI ma tylko jedną kolejkę poleceń i może wysyłać 32 polecenia na kolejkę, z drugiej strony NVMe ma oszałamiające 64 tys. kolejek i może wysłać 64K poleceń na kolejkę. To przytłaczające Polecenia 4M w całości! W przeciwieństwie do AHCI, który przechodzi przez kontroler SATA przed wysłaniem danych do procesora, NVMe komunikuje się bezpośrednio z procesorem bez potrzeby stosowania żadnego kontrolera. Co więcej, ma ponad milion IOP (operacji wejścia/wyjścia na sekundę) w przeciwieństwie do 100 000 AHCI. Dodatkowo ma mniejsze opóźnienie wynoszące zaledwie kilka mikrosekund w porównaniu do 30-100 mikrosekund AHCI. Porozmawiajmy o szybkości transferu. Jak wcześniej wspomniano, PCIe ma szybkość transferu 1 GB/s na linię. NVMe wykorzystuje cztery linie PCIe, co oznacza, że teoretycznie dyski SSD NVMe mają szybkość transferu 3.9 GB/s.[2] Ponad 6 razy szybszy w porównaniu z szybkością przesyłania danych 600 MB/s dysków SATA.
Załatwione sprawy, NVMe jest pewnym zwycięzcą we wszystkich aspektach, ale jest jedna wada – cena. NVMe ma wyższą cenę, a dla niektórych jest to niepraktyczny wybór. Dyski SATA SSD mogą stosunkowo szybko uruchamiać programy, przesyłać pliki i uruchamiać komputer, ale na przykład w przypadku przetwarzania dużych plików wideo lub w branżach, które wymagają jednoczesnego uruchamiania wielu aplikacji i przetwarzania w czasie rzeczywistym dużych plików, dodatkowe pieniądze wydawane na dyski NVMe to godna zapłata.
Czy NVMe korzysta z PCIe?? Zdecydowanie tak! NVMe współpracuje z PCIe, zapewniając wyjątkowo szybki transfer danych i stanowi znaczną poprawę w stosunku do starszego standardu AHCI.
Źródła:
[1] J. Metz, „NVMe for Absolute Beginners”, 11 listopada 2014, https://blogs.cisco.com/datacenter/nvme-for-absolute-beginners, Dostęp do 16 grudnia 2020 r
[2] Westrick, Tom, „Czym są dyski NVMe i czy należy je kupić??”, 16 września 2020, https://www.howtogeek.com/404627/what-are-nvme-drives-and-should-you-buy-one/, Dostęp do 16 grudnia 2020 r