Wprowadzenie do dysków SSD. Część 2. Interfejs

Wprowadzenie do dysków SSD. Część 2. Interfejs

В Ostatnia część cyklu „Wprowadzenie do SSD” opowiadaliśmy o historii pojawienia się dysków. Druga część opowie o interfejsach do interakcji z napędami.

Komunikacja między procesorem a urządzeniami peryferyjnymi odbywa się zgodnie z predefiniowanymi konwencjami zwanymi interfejsami. Umowy te regulują fizyczny i programowy poziom interakcji.

Interfejs - zestaw środków, metod i zasad interakcji między elementami systemu.

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

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

Interfejsy dysków są zbudowane na porty we/wy, co jest przeciwieństwem we/wy pamięci i nie zajmuje miejsca w przestrzeni adresowej procesora.

Porty równoległe i szeregowe

Zgodnie z metodą wymiany danych porty I / O dzielą się na dwa typy:

  • równoległy;
  • spójny.

Jak sama nazwa wskazuje, port równoległy wysyła jednorazowo 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ń obwodów elektrycznych. W najprostszym przypadku każdy bit słowa maszynowego jest wysyłany własną linią sygnałową, a do sprzężenia zwrotnego wykorzystywane są dwie linie sygnałowe usługi: Dane gotowe и Dane zaakceptowane.

Wprowadzenie do dysków SSD. Część 2. Interfejs
Porty równoległe na pierwszy rzut oka dobrze się skalują: więcej linii sygnałowych - więcej bitów jest przesyłanych jednocześnie, a co za tym idzie, wyższa przepustowość. Jednak ze względu na wzrost liczby linii sygnałowych dochodzi między nimi do interferencji, co prowadzi do zniekształceń przesyłanych komunikatów.

Porty szeregowe są przeciwieństwem portu równoległego. Dane są przesyłane po jednym bicie na raz, co zmniejsza całkowitą liczbę linii sygnałowych, ale komplikuje kontroler I/O. Kontroler nadajnika odbiera słowo maszynowe na raz i musi przesyłać po jednym bicie na raz, a kontroler odbiornika z kolei musi odbierać bity i przechowywać je w tej samej kolejności.

Wprowadzenie do dysków SSD. Część 2. Interfejs
Niewielka ilość linii sygnałowych pozwala zwiększyć częstotliwość transmisji wiadomości bez zakłóceń.

SCSI

Wprowadzenie do dysków SSD. Część 2. Interfejs
Interfejs małych systemów komputerowych (SCSI) pojawił się w 1978 roku i został pierwotnie zaprojektowany do łączenia urządzeń o różnych profilach w jeden system. Specyfikacja SCSI-1 przewidywała podłączenie do 8 urządzeń (wraz ze sterownikiem), takich jak:

  • skanery;
  • napędy taśmowe (streamery);
  • napędy optyczne;
  • napędy dysków i inne urządzenia.

SCSI pierwotnie nosił nazwę Shugart Associates System Interface (SASI), ale komitet normalizacyjny nie zatwierdził nazwy firmy i po całym dniu burzy mózgów narodziła się nazwa Small Computer Systems Interface (SCSI). „Ojciec” SCSI, Larry Boucher, chciał, aby akronim był wymawiany jako „seksowny”, ale Dal Allan czytaj „sсuzzy” („powiedz”). Następnie wymowa „tell” została mocno zakorzeniona w tym standardzie.

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

  • inicjatorzy;
  • urządzenia docelowe.

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

Stosowana topologia „wspólnej magistrali” nakłada szereg ograniczeń:

  • na końcach magistrali potrzebne są specjalne urządzenia - terminatory;
  • przepustowość magistrali jest dzielona między wszystkie urządzenia;
  • Maksymalna liczba jednocześnie podłączonych urządzeń jest ograniczona.

Wprowadzenie do dysków SSD. Część 2. Interfejs

Urządzenia na magistrali identyfikowane są za pomocą unikalnego numeru tzw Identyfikator celu SCSI. Każda jednostka SCSI w systemie jest reprezentowana przez co najmniej jedno urządzenie logiczne, do którego adresowany jest unikalny numer w urządzeniu fizycznym. Numer jednostki logicznej (LUN).

Wprowadzenie do dysków SSD. Część 2. Interfejs
Polecenia w SCSI są wysyłane w formie bloki opisu poleceń (Command Descriptor Block, CDB), składający się z kodu operacji i parametrów polecenia. Norma opisuje ponad 200 poleceń, podzielonych na cztery kategorie:

  • Obowiązkowy — musi być obsługiwany przez urządzenie;
  • Opcjonalnie - może być zrealizowany;
  • Specyficzne dla dostawcy - używane przez określonego producenta;
  • Przestarzały - przestarzałe polecenia.

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

  • JEDNOSTKA TESTOWA GOTOWA — sprawdzenie gotowości urządzenia;
  • POPROŚ O ZROZUMIENIE — żąda kodu błędu poprzedniego polecenia;
  • ZAPYTANIE — zażądać głównych cech urządzenia.

Po odebraniu i przetworzeniu polecenia urządzenie docelowe wysyła do inicjatora kod statusu, który opisuje wynik wykonania.

Dalsze doskonalenie SCSI (specyfikacje SCSI-2 i Ultra SCSI) rozszerzyło listę używanych poleceń i zwiększyło liczbę podłączonych urządzeń do 16, a szybkość wymiany danych na magistrali do 640 MB/s. Ponieważ SCSI jest interfejsem równoległym, zwiększenie częstotliwości wymiany danych wiązało się ze zmniejszeniem maksymalnej długości kabla i prowadziło do niedogodności w użytkowaniu.

Począwszy od standardu Ultra-3 SCSI pojawiła się obsługa „hot plugging” - podłączania urządzeń przy włączonym zasilaniu.

Pierwszym znanym dyskiem SSD SCSI był M-Systems FFD-350, wydany w 1995 roku. Dysk miał wysoki koszt i nie był szeroko stosowany.

Obecnie równoległy SCSI nie jest popularnym interfejsem dyskowym, ale zestaw poleceń jest nadal aktywnie używany w interfejsach USB i SAS.

ATA/PATA

Wprowadzenie do dysków SSD. Część 2. Interfejs
Interfejs ATA (Załącznik zaawansowanej technologii), znany również jako PATA (Parallel ATA) został opracowany 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 został zintegrowany z napędem, a nie na osobnej karcie rozszerzeń.

Decyzja o umieszczeniu kontrolera wewnątrz napędu rozwiązała jednocześnie kilka problemów. Po pierwsze zmniejszyła się odległość od napędu do sterownika, co pozytywnie wpłynęło na wydajność napędu. Po drugie, wbudowany kontroler został „zaostrzony” tylko dla określonego rodzaju napędu i odpowiednio był tańszy.

Wprowadzenie do dysków SSD. Część 2. Interfejs
ATA, podobnie jak SCSI, wykorzystuje metodę równoległego wejścia/wyjścia, co znajduje odzwierciedlenie w zastosowanych kablach. Podłączenie dysków za pomocą interfejsu IDE wymaga użycia 40-żyłowych kabli, zwanych również kablami płaskimi. Nowsze specyfikacje wykorzystują 80-żyłowe odgałęzienia, z których ponad połowa to pętle uziemienia w celu zmniejszenia zakłóceń przy wysokich częstotliwościach.

Na kablu ATA znajdują się od dwóch do czterech złączy, z których jedna jest podłączona do płyty głównej, a pozostałe do napędów. W przypadku podłączenia dwóch urządzeń w jednej pętli, jedno z nich musi być skonfigurowane jako Mistrz, a drugi jako Niewolnik. Trzecie urządzenie można podłączyć tylko w trybie tylko do odczytu.

Wprowadzenie do dysków SSD. Część 2. Interfejs
Położenie zworki określa rolę danego urządzenia. Pojęcia Master i Slave w odniesieniu do urządzeń nie są do końca poprawne, ponieważ w odniesieniu do sterownika wszystkie podłączone urządzenia są Slave.

Szczególną innowacją w ATA-3 jest wygląd Samokontrola, Technologia analizy i raportowania (SMART). 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 półprzewodnikowych istnieje od wersji 1998 standardu, wydanej w 33.3 roku. Ta wersja standardu zapewniała transfer danych do XNUMX MB/s.

Norma stawia surowe wymagania dla kabli ATA:

  • pióropusz musi być płaski;
  • maksymalna długość pociągu 18 cali (45.7 cm).

Krótki i szeroki pociąg był niewygodny i przeszkadzał w chłodzeniu. Z każdą kolejną wersją standardu zwiększanie częstotliwości transmisji stawało się coraz trudniejsze, a ATA-7 radykalnie rozwiązał problem: interfejs równoległy został zastąpiony szeregowym. Następnie ATA uzyskała nazwę Parallel i stała się znana jako PATA, a siódma wersja standardu otrzymała inną nazwę - Serial ATA. Numeracja wersji SATA zaczęła się od jednego.

SATA

Wprowadzenie do dysków SSD. Część 2. Interfejs
Standard Serial ATA (SATA) został wprowadzony 7 stycznia 2003 r. i rozwiązał problemy swojego poprzednika, wprowadzając następujące zmiany:

  • port równoległy zastąpiony szeregowym;
  • szeroki kabel 80-żyłowy zastąpiony 7-żyłowym;
  • topologia „wspólnej magistrali” została zastąpiona połączeniem „punkt-punkt”.

Mimo że SATA 1.0 (SATA/150, 150 MB/s) było nieznacznie szybsze niż ATA-6 (UltraDMA/130, 130 MB/s), przejście na komunikację szeregową „przygotowało grunt” pod kątem szybkości.

Szesnaście linii sygnałowych do transmisji danych w ATA zastąpiono dwiema skrętkami: jedną do transmisji, drugą do odbioru. Złącza SATA zostały zaprojektowane tak, aby były bardziej odporne na wielokrotne ponowne podłączanie, a specyfikacja SATA 1.0 umożliwiła podłączanie na gorąco.

Niektóre styki dysków są krótsze niż wszystkie inne. Odbywa się to w celu obsługi „hot swap” (Hot Swap). Podczas procesu wymiany urządzenie „gubi” i „znajduje” przewody w ustalonej kolejności.

Nieco ponad rok później, w kwietniu 2004 roku, ukazała się druga wersja specyfikacji SATA. Oprócz przyspieszenia do 3 Gb/s, SATA 2.0 wprowadziło technologię Natywne kolejkowanie poleceń (NCQ). Urządzenia z obsługą NCQ są w stanie samodzielnie zorganizować kolejność wykonywania przychodzących poleceń, aby osiągnąć maksymalną wydajność.

Wprowadzenie do dysków SSD. Część 2. Interfejs
Przez następne trzy lata grupa robocza SATA pracowała nad ulepszeniem istniejącej specyfikacji, a wersja 2.6 wprowadziła kompaktowe złącza Slimline i micro SATA (uSATA). Złącza te są mniejszą wersją oryginalnego złącza SATA i są przeznaczone do napędów optycznych i małych napędów w laptopach.

Podczas gdy SATA drugiej generacji zapewniało wystarczającą przepustowość dla dysków twardych, dyski SSD wymagały więcej. W maju 2009 roku została wydana trzecia wersja specyfikacji SATA ze zwiększoną przepustowością do 6 Gb/s.

Wprowadzenie do dysków SSD. Część 2. Interfejs
Szczególną uwagę zwrócono na dyski półprzewodnikowe w wydaniu SATA 3.1. Pojawiło się złącze Mini-SATA (mSATA), przeznaczone do podłączania dysków SSD w laptopach. W przeciwieństwie do Slimline i uSATA, nowe złącze wyglądało jak PCIe Mini, chociaż nie było elektrycznie kompatybilne z PCIe. Oprócz nowego złącza, SATA 3.1 szczyciło się możliwością kolejkowania poleceń TRIM z poleceniami odczytu i zapisu.

Polecenie TRIM powiadamia dysk SSD o blokach danych, które nie zawierają ładunku. W wersjach wcześniejszych niż SATA 3.1 polecenie to opróżniało pamięci podręczne i zawieszało operacje we/wy, po czym następowało polecenie TRIM. Takie podejście obniżyło wydajność dysku podczas operacji usuwania.

Specyfikacja SATA nie nadążała za szybkim wzrostem prędkości dostępu do dysków SSD, co doprowadziło w 2013 roku do kompromisu o nazwie SATA Express w standardzie SATA 3.2. Zamiast ponownie podwoić przepustowość SATA, twórcy wykorzystali szeroko stosowaną magistralę PCIe, której prędkość przekracza 6 Gb/s. Dyski z obsługą SATA Express uzyskały własny format o nazwie M.2.

SAS

Wprowadzenie do dysków SSD. Część 2. Interfejs
Standard SCSI, „konkurujący” z ATA, również nie stał w miejscu i zaledwie rok po pojawieniu się Serial ATA, w 2004 roku, odrodził się jako interfejs szeregowy. Nazwa nowego interfejsu to Serial Attached SCSI (TURZYCA).

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

  • interfejs szeregowy;
  • Kabel 29-żyłowy z zasilaczem;
  • połączenie punkt-punkt

Odziedziczono również terminologię SCSI. Kontroler nadal jest nazywany inicjatorem, a podłączone urządzenia nazywane są celem. Wszystkie urządzenia docelowe 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 z własnego dedykowanego kanału.

Maksymalna liczba jednocześnie podłączonych urządzeń w domenie SAS zgodnie ze specyfikacją przekracza 16 tysięcy, a zamiast identyfikatora SCSI do adresowania używany jest identyfikator Światowa nazwa (WWN).

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

Wprowadzenie do dysków SSD. Część 2. Interfejs
Pomimo podobieństw między złączami SAS i SATA, standardy te nie są w pełni kompatybilne. Jednak dysk SATA można podłączyć do złącza SAS, ale nie odwrotnie. Kompatybilność między dyskami SATA i domeną SAS jest zapewniona za pomocą protokołu SATA Tunneling Protocol (STP).

Pierwsza wersja standardu SAS-1 ma przepustowość 3 Gb/s, a najnowocześniejsza, SAS-4, poprawiła tę liczbę 7-krotnie: 22,5 Gb/s.

PCIe

Wprowadzenie do dysków 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 rozpoczął Intel, a następnie został przeniesiony do specjalnej organizacji - PCI Special Interest Group.

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

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

Termin „ścieżka” w PCIe nie odnosi się do określonej ścieżki sygnałowej, ale do oddzielnego łącza komunikacyjnego w trybie pełnego dupleksu, składającego się z następujących ścieżek sygnałowych:

  • odbieraj+ i odbieraj-;
  • transmisja+ i transmisja-;
  • cztery przewody uziemiające.

Liczba pasów PCIe wpływa bezpośrednio na maksymalną przepustowość połączenia. Obecny standard PCI Express 4.0 pozwala osiągnąć 1.9 GB/s na pojedynczej linii, a 31.5 GB/s przy wykorzystaniu 16 linii.

Wprowadzenie do dysków SSD. Część 2. Interfejs
„Apetyt” na dyski półprzewodnikowe rośnie bardzo szybko. Zarówno SATA, jak i SAS nie są w stanie zwiększyć przepustowości, aby dotrzymać kroku dyskom SSD, co doprowadziło do pojawienia się dysków SSD podłączonych do PCIe.

Chociaż karty rozszerzeń PCIe są przykręcane, PCIe można wymieniać podczas pracy. Krótkie kołki PRSNT (ang. present - present) upewniają się, że karta jest w pełni zainstalowana w gnieździe.

Dyski półprzewodnikowe podłączone przez PCIe są regulowane odrębnym standardem Specyfikacja interfejsu kontrolera hosta pamięci nieulotnej i są zawarte w różnych formach, ale porozmawiamy o nich w następnej części.

Dyski zdalne

Podczas tworzenia dużych hurtowni danych pojawiła się potrzeba protokołów pozwalających na podłączenie dysków znajdujących się poza serwerem. Pierwszym rozwiązaniem w tym zakresie było SCSI Internetu (iSCSI), opracowany przez IBM i Cisco w 1998 roku.

Idea protokołu iSCSI jest prosta: polecenia SCSI są „pakowane” w pakiety TCP/IP i wysyłane do sieci. Pomimo zdalnego połączenia daje klientom złudzenie, że dysk jest podłączony lokalnie. Sieć pamięci masowej (SAN) opartą na iSCSI można zbudować na istniejącej infrastrukturze sieciowej. Zastosowanie iSCSI znacznie obniża koszty organizacji sieci SAN.

iSCSI ma opcję „premium” — protokół Fibre Channel (FCP). Sieć SAN wykorzystująca FCP zbudowana jest na dedykowanych światłowodowych liniach komunikacyjnych. Takie podejście wymaga dodatkowego sprzętu sieci optycznej, ale zapewnia stabilność i wysoką przepustowość.

Istnieje wiele protokołów służących do wysyłania poleceń SCSI przez sieci komputerowe. Istnieje jednak tylko jeden standard, który rozwiązuje przeciwny problem i pozwala na wysyłanie pakietów IP przez szynę SCSI - IP przez SCSI.

Większość protokołów SAN używa zestawu poleceń SCSI do zarządzania dyskami, ale są wyjątki, takie jak proste ATA przez Ethernet (AOE). Protokół AoE wysyła polecenia ATA w pakietach Ethernet, ale dyski pojawiają się w systemie jako SCSI.

Wraz z pojawieniem się dysków NVM Express protokoły iSCSI i FCP nie spełniają już szybko rosnących wymagań wobec dysków SSD. Pojawiły się dwa rozwiązania:

  • usunięcie magistrali PCI Express poza serwerem;
  • stworzenie protokołu NVMe over Fabrics.

Usunięcie magistrali PCIe tworzy złożony sprzęt przełączający, ale nie zmienia protokołu.

Protokół NVMe over Fabrics stał się dobrą alternatywą dla iSCSI i FCP. NVMe-oF wykorzystuje łącze światłowodowe i zestaw poleceń NVM Express.

DDR-T

Wprowadzenie do dysków SSD. Część 2. Interfejs
Standardy iSCSI i NVMe-oF rozwiązują problem podłączania dysków zdalnych jako lokalnych, podczas gdy Intel poszedł w drugą stronę i zbliżył dysk lokalny jak najbliżej procesora. Wybór padł na gniazda DIMM, do których podłączana jest pamięć RAM. Maksymalna przepustowość DDR4 wynosi 25 GB/s, czyli znacznie szybciej niż magistrala PCIe. Tak narodził się dysk SSD Intel® Optane™ DC Persistent Memory.

Wynaleziono protokół do podłączania dysku do gniazd DIMM DDR-T, fizycznie i elektrycznie kompatybilny z DDR4, ale wymagający specjalnego kontrolera, który widzi różnicę między paskiem pamięci a dyskiem. Szybkość dostępu do dysku jest mniejsza niż do pamięci RAM, ale większa niż do NVMe.

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

wniosek

Prawie wszystkie interfejsy przeszły długą drogę od szeregowej do równoległej transmisji danych. Prędkości dysków SSD gwałtownie rosną, wczoraj dyski SSD były ciekawostką, a dziś NVMe nie jest już niespodzianką.

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

W ankiecie mogą brać udział tylko zarejestrowani użytkownicy. Zaloguj się, Proszę.

Czy w najbliższej przyszłości dyski NVMe zastąpią klasyczne dyski SSD?

  • 55.5%Tak100

  • 44.4%Nie80

Głosowało 180 użytkowników. 28 użytkowników wstrzymało się od głosu.

Źródło: www.habr.com

Dodaj komentarz