Wprowadzenie do SSD. Część 2. Interfejs

Wprowadzenie do SSD. Część 2. Interfejs

W poprzedniej części cyklu „Wprowadzenie do SSD” opowiedzieliśmy o historii powstania dysków. Druga część przybliży interfejsy współpracy z nośnikami.

Komunikacja między procesorem a urządzeniami peryferyjnymi odbywa się zgodnie z wcześniej ustalonymi umowami, zwanymi interfejsami. Umowy te regulują fizyczny i programowy poziom interakcji.

Interfejs — zbiór środków, metod i zasad interakcji między elementami systemu.

Fizyczna realizacja interfejsu wpływa na następujące parametry:

  • przepustowość kanału komunikacyjnego;
  • maksymalna liczba jednocześnie podłączonych urządzeń;
  • liczba występujących błędów.

Interfejsy dyskowe oparte są na portach we/wy, co jest przeciwieństwem wejścia-wyjścia przez pamięć i nie zajmuje miejsca w przestrzeni adresowej procesora.

Porty równoległe i szeregowe

Ze względu na sposób wymiany danych porty we/wy dzielą się na dwa typy:

  • równoległe;
  • szeregowe.

Jak wskazuje nazwa, port równoległy przesyła za jednym razem słowo maszynowe składające się z kilku bitów. Port równoległy to najprostszy sposób wymiany danych, ponieważ nie wymaga skomplikowanych rozwiązań sprzętowych. W najprostszej wersji każdy bit słowa maszynowego jest przesyłany po swojej linii sygnałowej, a do komunikacji zwrotnej wykorzystuje się dwie linie sygnałowe: Dane gotowe i Dane odebrane.

Wprowadzenie do SSD. Część 2. Interfejs
Porty równoległe, na pierwszy rzut oka, doskonale skalują się: więcej linii sygnałowych — więcej bitów przesyłanych jednocześnie, a co za tym idzie, większa przepustowość. Niemniej jednak, ze względu na zwiększenie liczby linii sygnałowych, występuje między nimi interakcja interferencyjna, prowadząca do zniekształcenia przesyłanych wiadomości.

Porty szeregowe — przeciwieństwo równoległych. Wysyłanie danych odbywa się po jednym bicie na raz, co zmniejsza łączną liczbę linii sygnałowych, ale komplikuje kontroler wejścia-wyjścia. Kontroler nadajnika otrzymuje słowo maszynowe na raz i musi przesyłać po jednym bicie, a kontroler odbiornika z kolei musi odbierać bity i przechowywać je w tej samej kolejności.

Wprowadzenie do SSD. Część 2. Interfejs
Niewielka liczba linii sygnałowych pozwala na bezproblemowe zwiększanie częstotliwości przesyłania komunikatów.

SCSI

Wprowadzenie do SSD. Część 2. Interfejs
MaInterfejs Komputerowych Systemów (SCSI) pojawił się w 1978 roku i został pierwotnie opracowany, aby łączyć urządzenia różnych profili w jedną system. Specyfikacja SCSI-1 przewidywała podłączenie do 8 urządzeń (wraz z kontrolerem), takich jak:

  • skanery;
  • taśmy (streamery);
  • napędy optyczne;
  • dyski i inne urządzenia.

Początkowo SCSI nosił nazwę Shugart Associates System Interface (SASI), ale komitet standaryzacyjny nie zaakceptował tej nazwy ze względu na odniesienie do firmy, a po dniu burzy mózgów powstała nazwa Małego Komputerowego Systemu Interfejsu (SCSI). 'Ojciec' SCSI, Larry Boucher, miał nadzieję, że akronim będzie wymawiany jako 'seksowny', ale Dal Allan przeczytał 'sсuzzy' ('skazi'). Wkrótce wzmocniła się wymowa 'skazi' dla tego standardu.

W terminologii SCSI podłączone urządzenia dzielą się na dwa rodzaje:

  • inicjatory;
  • urządzenia docelowe.

Inicjator wysyła polecenie do urządzenia docelowego, które następnie wysyła odpowiedź do inicjatora. Inicjatory i urządzenia docelowe są podłączone do wspólnej magistrali SCSI, której przepustowość w standardzie SCSI-1 wynosi 5 MB/s.

Wykorzystywana topologia 'wspólna magistrala' nakłada pewne ograniczenia:

  • na końcach magistrali wymagane są specjalne urządzenia — terminatory;
  • przepustowość magistrali jest dzielona pomiędzy wszystkie urządzenia;
  • maksymalna liczba jednocześnie podłączonych urządzeń jest ograniczona.

Wprowadzenie do SSD. Część 2. Interfejs

Urządzenia na magistrali identyfikowane są przez unikalny numer, nazywany SCSI Target ID. Każda jednostka SCSI w systemie jest reprezentowana co najmniej przez jedno logiczne urządzenie, którego adresowanie odbywa się według unikalnego numeru w obrębie fizycznego urządzenia Logical Unit Number (LUN).

Wprowadzenie do SSD. Część 2. Interfejs
Polecenia w SCSI są wysyłane w postaci bloków opisowych poleceń (Command Descriptor Block, CDB), składających się z kodu operacji i parametrów polecenia. W standardzie opisano ponad 200 poleceń, które podzielono na cztery kategorie:

  • Obowiązkowe — muszą być wspierane przez urządzenie;
  • Opcjonalne — mogą być wdrożone;
  • Specyficzne dla producenta — używane przez konkretnego producenta;
  • Przestarzałe — polecenia, które są już nieaktualne.

Spośród wielu poleceń tylko trzy z nich są obowiązkowe dla urządzeń:

  • TEST UNIT READY — sprawdzenie gotowości urządzenia;
  • REQUEST SENSE — żąda kodu błędu poprzedniego polecenia;
  • ZAPYTANIE — zapytanie o podstawowe właściwości urządzenia.

Po otrzymaniu i przetworzeniu polecenia, docelowe urządzenie wysyła do inicjatora kod statusu opisujący wynik wykonania.

Dalsze udoskonalenie SCSI (specyfikacje SCSI-2 i Ultra SCSI) rozszerzyło listę używanych poleceń i zwiększyło liczbę podłączanych urządzeń do 16 oraz prędkość wymiany danych w magistrali do 640 MB/s. Ponieważ SCSI to interfejs równoległy, zwiększenie częstotliwości wymiany danych było związane z zmniejszeniem maksymalnej długości kabla, co powodowało niedogodności w użytkowaniu.

Od standardu Ultra-3 SCSI wprowadzono wsparcie dla "hot-plugging" — podłączania urządzeń przy włączonym zasilaniu.

Pierwszym znanym dyskiem SSD z interfejsem SCSI można uznać M-Systems FFD-350, wydany w 1995 roku. Dysk był drogi i nie zyskał szerokiego uznania.

Obecnie równoległe SCSI nie jest popularnym interfejsem podłączania dysków, ale zestaw poleceń nadal jest aktywnie wykorzystywany w interfejsach USB i SAS.

ATA / PATA

Wprowadzenie do SSD. Część 2. Interfejs
Interfejs ATA (Advanced Technology Attachment), znane również jako PATA (Parallel ATA) zostało opracowane przez firmę Western Digital w 1986 roku. Nazwa marketingowa standardu IDE (ang. Integrated Drive Electronics — „elektronika wbudowana w napęd”) podkreślała ważną innowację: kontroler napędu był wbudowany w samym napędzie, a nie na osobnej karcie rozszerzeń.

Decyzja o umieszczeniu kontrolera wewnątrz napędu rozwiązała kilka problemów. Po pierwsze, skróciło to odległość od nośnika do kontrolera, co pozytywnie wpłynęło na parametry nośnika. Po drugie, wbudowany kontroler był „dopasowany” tylko do określonego typu napędu, a więc był tańszy.

Wprowadzenie do SSD. Część 2. Interfejs
ATA, podobnie jak SCSI, wykorzystuje równoległy sposób wejścia/wyjścia, co znajduje odzwierciedlenie w używanych kablach. Do podłączenia dysków z użyciem interfejsu IDE potrzebne są kable 40-żyłowe, znane również jako taśmy. W późniejszych specyfikacjach używane są taśmy 80-żyłowe: ponad połowa z nich to uziemienia mające na celu redukcję zakłóceń na wysokich częstotliwościach.

Na taśmie ATA znajduje się od dwóch do czterech złącz, z których jedno jest podłączane do płyty głównej, a pozostałe do dysków. Podczas podłączania dwóch urządzeń jedną taśmą, jedno z nich musi być skonfigurowane jako Master, a drugie jako Slave. Trzecie urządzenie może być podłączone wyłącznie w trybie „tylko do odczytu”.

Wprowadzenie do SSD. Część 2. Interfejs
Pozycja zworki określa rolę konkretnego urządzenia. Terminy Master i Slave w odniesieniu do urządzeń nie są do końca poprawne, ponieważ w stosunku do kontrolera wszystkie podłączone urządzenia są Slave.

Szczególną nowością w ATA-3 jest wprowadzenie Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Pięć firm (IBM, Seagate, Quantum, Conner i Western Digital) połączyło siły i ustandaryzowało technologię oceny stanu dysków.

Wsparcie dla dysków SSD pojawiło się w czwartej wersji standardu, wydanej w 1998 roku. Ta wersja standardu zapewniała prędkość przesyłania danych do 33,3 MB/s.

Standard wyznacza surowe wymagania dla taśm ATA:

  • taśma musi być płaska;
  • maksymalna długość taśmy wynosi 18 cali (45,7 centymetra).

Krótka i szeroka taśma była niewygodna i utrudniała chłodzenie. Zwiększanie częstotliwości przesyłu z każdą kolejną wersją standardu stawało się coraz trudniejsze, dlatego ATA-7 radykalnie rozwiązał ten problem: interfejs równoległy został zastąpiony interfejsem szeregowym. Po tym ATA zyskał słowo Parallel i zaczął nazywać się PATA, a siódma wersja standardu otrzymała nową nazwę — Serial ATA. Numerowanie wersji SATA zaczęło się od jedynki.

SATA

Wprowadzenie do SSD. Część 2. Interfejs
Standard Serial ATA (SATA) został przedstawiony 7 stycznia 2003 roku i rozwiązał problemy swojego poprzednika poprzez następujące zmiany:

  • port równoległy został zastąpiony szeregowym;
  • szeroka taśma 80-przewodowa została zastąpiona 7-przewodową;
  • topologia „wspólnej szyny” została zastąpiona połączeniem „punkt-punkt”.

Chociaż standard SATA 1.0 (SATA/150, 150 MB/s) był nieznacznie szybszy niż ATA-6 (UltraDMA/130, 130 MB/s), przejście na sposób przesyłania danych szeregowego było „przygotowaniem terenu” do zwiększenia prędkości.

Szesnaście linii sygnałowych do przesyłania danych w ATA zostało zastąpionych przez dwie skrętki: jedna do przesyłania, druga do odbioru. Złącza SATA zostały zaprojektowane z myślą o większej odporności na wielokrotne ponowne podłączenia, a specyfikacja SATA 1.0 umożliwiła "gorące podłączenie" (Hot Plug).

Niektóre piny na dyskach są krótsze od pozostałych. Zostało to zaprojektowane w celu wsparcia "gorącej wymiany" (Hot Swap). Podczas wymiany urządzenie "traci" i "znajduje" linie w z góry określonym porządku.

Nieco ponad rok później, w kwietniu 2004 roku, została wydana druga wersja specyfikacji SATA. Oprócz przyspieszenia do 3 Gb/s w SATA 2.0 wprowadzono technologię Native Command Queuing (NCQ). Urządzenia obsługujące NCQ mogą samodzielnie organizować kolejność wykonywania przychodzących poleceń w celu osiągnięcia maksymalnej wydajności.

Wprowadzenie do SSD. Część 2. Interfejs
W ciągu następnych trzech lat Grupa Robocza SATA pracowała nad poprawą istniejącej specyfikacji, a w wersji 2.6 pojawiły się kompaktowe złącza Slimline i micro SATA (uSATA). Te złącza są zmniejszoną wersją oryginalnego złącza SATA i są zaprojektowane do napędów optycznych oraz małych dysków w laptopach.

Mimo że przepustowość drugiej generacji SATA wystarczała dla dysków twardych, dyski SSD wymagały więcej. W maju 2009 roku została wydana trzecia wersja specyfikacji SATA z zwiększoną do 6 Gb/s przepustowością.

Wprowadzenie do SSD. Część 2. Interfejs
Szczególna uwaga została poświęcona dyskom SSD w redakcji SATA 3.1. Pojawiło się złącze Mini-SATA (mSATA), które służy do podłączania dysków SSD w laptopach. W przeciwieństwie do Slimline i uSATA nowe złącze przypominało PCIe Mini, chociaż nie było elektrycznie kompatybilne z PCIe. Oprócz nowego złącza SATA 3.1 mogło pochwalić się możliwością kolejkowania poleceń TRIM z poleceniami odczytu i zapisu.

Polecenie TRIM informuje dysk SSD o blokach danych, które nie mają użytecznego ładunku. Do SATA 3.1 wykonanie tego polecenia prowadziło do resetowania pamięci podręcznej i wstrzymywania operacji we/wy z późniejszym wykonaniem polecenia TRIM. Takie podejście pogarszało wydajność dysku podczas operacji usuwania.

Specyfikacja SATA nie nadążała za szybkim rozwojem prędkości dostępu do pamięci flash, co doprowadziło do powstania w 2013 roku kompromisu pod nazwą SATA Express w standardzie SATA 3.2. Zamiast ponownie podwajać przepustowość SATA, deweloperzy wykorzystali powszechną magistralę PCIe, której prędkość przekracza 6 Gbit/s. Dyski wspierające SATA Express zyskały własny kształt fizyczny o nazwie M.2.

SAS

Wprowadzenie do SSD. Część 2. Interfejs
Standard SCSI, który "rywalizował" z ATA, również się rozwijał i tylko rok po pojawieniu się Serial ATA, w 2004 roku, przekształcił się w interfejs szeregowy. Nowa nazwa interfejsu to Serial Attached SCSI (SAS).

Pomimo że SAS odziedziczył zestaw poleceń SCSI, zmiany były znaczące:

  • interfejs szeregowy;
  • 29-żyłowy kabel z zasilaniem;
  • połączenie „punkt-punkt”

Terminologia SCSI została również zachowana. Kontroler nadal nazywany jest inicjatorem, a podłączone urządzenia – celami. Wszystkie cele i inicjator tworzą domenę SAS. W SAS przepustowość połączenia nie zależy od liczby urządzeń w domenie, ponieważ każde urządzenie korzysta ze swojego dedykowanego kanału.

Maksymalna liczba jednocześnie podłączonych urządzeń w domenie SAS według specyfikacji przekracza 16 tysięcy, a zamiast ID SCSI do adresacji używany jest identyfikator World-Wide Name (WWN).

WWN to unikalny identyfikator o długości 16 bajtów, analogiczny do adresu MAC dla urządzeń SAS.

Wprowadzenie do SSD. Część 2. Interfejs
Pomimo podobieństw pomiędzy złączami SAS i SATA, te standardy nie są w pełni zgodne. Niemniej jednak dysk SATA może być podłączony do złącza SAS, ale nie odwrotnie. Zgodność między dyskami SATA a domeną SAS zapewnia protokół SATA Tunneling Protocol (STP).

Pierwsza wersja standardu SAS-1 miała przepustowość 3 Gbit/s, a najnowocześniejsza wersja SAS-4 poprawiła ten wskaźnik siedmiokrotnie: 22,5 Gbit/s.

PCIe

Wprowadzenie do SSD. Część 2. Interfejs
Peripheral Component Interconnect Express (PCI Express, PCIe) to szeregowy interfejs do przesyłania danych, który pojawił się w 2002 roku. Rozwój został rozpoczęty przez firmę Intel, a później przekazany specjalnej organizacji — PCI Special Interest Group.

Szeregowy interfejs PCIe nie był wyjątkiem i stał się logiczną kontynuacją równoległego PCI, który był przeznaczony do podłączania kart rozszerzeń.

PCI Express znacznie różni się od SATA i SAS. Interfejs PCIe ma zmienną liczbę linii. Liczba linii jest równa potęgom dwóch i waha się w zakresie od 1 do 16.

Termin «linia» w PCIe odnosi się nie do konkretnej linii sygnałowej, ale do oddzielnego pełnodupleksowego kanału komunikacyjnego, składającego się z następujących linii sygnałowych:

  • odbiór+ i odbiór-;
  • transmisja+ i transmisja-;
  • cztery żyły uziemiające.

Liczba linii PCIe bezpośrednio wpływa na maksymalną przepustowość połączenia. Nowoczesny standard PCI Express 4.0 pozwala osiągnąć 1.9 GB/s na jednej linii oraz 31.5 GB/s przy użyciu 16 linii.

Wprowadzenie do SSD. Część 2. Interfejs
Apetyty dysków SSD rosną bardzo szybko. Zarówno SATA, jak i SAS nie nadążają z zwiększaniem swojej przepustowości, aby „dogonić” SSD, co doprowadziło do powstania dysków SSD z podłączeniem po PCIe.

Choć karty rozszerzeń PCIe są przykręcane śrubą, PCIe obsługuje „gorącą wymianę”. Krótkie piny PRSNT (ang. present — obecność) pozwalają upewnić się, że karta jest całkowicie zainstalowana w slocie.

Dyski SSD podłączane przez PCIe regulowane są przez oddzielny standard Specyfikacja interfejsu kontrolera hosta pamięci nieulotnej i występują w wielu formatach, ale o tym opowiemy w kolejnej części.

Zdalne dyski

Wraz z powstaniem dużych magazynów danych pojawiła się potrzeba protokołów umożliwiających podłączenie dysków umiejscowionych poza serwerem. Pierwszym rozwiązaniem w tej dziedzinie było Internet SCSI (iSCSI), opracowane przez firmy IBM i Cisco w 1998 roku.

Idea protokołu iSCSI jest prosta: komendy SCSI są „opakowywane” w pakiety TCP/IP i przesyłane w sieci. Pomimo zdalnego połączenia, dla klientów stwarzana jest iluzja, że dysk jest podłączony lokalnie. Sieć pamięci masowej (Storage Area Network, SAN) oparta na iSCSI może być zbudowana na istniejącej infrastrukturze sieciowej. Wykorzystanie iSCSI znacznie obniża koszty organizacji SAN.

iSCSI ma wariant „premium” — Fibre Channel Protocol (FCP). SAN z wykorzystaniem FCP budowana jest na dedykowanych włóknowo-optycznych liniach komunikacyjnych. Takie podejście wymaga dodatkowego optycznego sprzętu sieciowego, ale wyróżnia się stabilnością i wysoką przepustowością.

Istnieje wiele protokołów do przesyłania poleceń SCSI przez sieci komputerowe. Jednak tylko jeden standard rozwiązuje przeciwny problem i pozwala na przesyłanie pakietów IP przez szynę SCSI — IP-over-SCSI.

Większość protokołów do organizacji SAN wykorzystuje zestaw poleceń SCSI do zarządzania magazynami, ale istnieją wyjątki, takie jak prosty ATA over Ethernet (AoE). Protokół AoE przesyła polecenia ATA w pakietach Ethernet, ale w systemie dyski są wyświetlane jako SCSI.

Wraz z nadejściem dysków NVM Express protokoły iSCSI i FCP przestały spełniać szybko rosnące wymagania dysków SSD. Powstały dwie odpowiedzi:

  • wyprowadzenie szyny PCI Express poza serwer;
  • stworzenie protokołu NVMe over Fabrics.

Wyprowadzenie szyny PCIe wiąże się z stworzeniem skomplikowanego sprzętu przełączającego, ale nie wprowadza zmian w protokole.

Protokół NVMe over Fabrics stał się dobrą alternatywą dla iSCSI i FCP. W NVMe-oF używa się światłowodowych linii komunikacyjnych oraz zestawu poleceń NVM Express.

DDR-T

Wprowadzenie do SSD. Część 2. Interfejs
Standardy iSCSI i NVMe-oF rozwiązują problem podłączenia zdalnych dysków jako lokalnych, natomiast firma Intel obrała inną drogę i maksymalnie zbliżyła lokalny dysk do procesora. Wybrano gniazda DIMM, do których podłączana jest pamięć operacyjna. Maksymalna przepustowość kanału DDR4 wynosi 25 GB/s, co znacząco przekracza prędkość szyny PCIe. Tak powstał dysk Intel® Optane™ DC Persistent Memory.

Aby podłączyć dysk w gniazdach DIMM, wynaleziono protokół DDR-T, fizycznie i elektrycznie zgodny z DDR4, ale wymagający specjalnego kontrolera, który dostrzega różnicę między modułem pamięci a dyskiem. Prędkość dostępu do dysku jest mniejsza niż do pamięci operacyjnej, ale większa niż do NVMe.

Protokół DDR-T jest dostępny tylko z procesorami Intel® czwartej generacji Cascade Lake lub nowszymi.

Podsumowanie

Prawie wszystkie interfejsy przeszły długą drogę rozwoju od szeregowego do równoległego sposobu przesyłania danych. Prędkości dysków SSD szybko rosną, gdy jeszcze wczoraj dyski SSD były rzadkością, dziś NVMe już nie wzbudza szczególnego zdziwienia.

W naszym laboratorium Selectel Lab możesz samodzielnie przetestować dyski SSD i NVMe.

Tylko zarejestrowani użytkownicy mogą brać udział w ankiecie. Zaloguj się, proszę.

Czy dyski NVMe wkrótce wyprą klasyczne SSD?

  • 55.5%Tak100

  • 44.4%Nie80

W głosowaniu wzięło udział 180 użytkowników. 28 użytkowników się wstrzymało.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster