interfejsy dyskowe

Transkrypt

interfejsy dyskowe
Interfejsy dyskowe
Protokoły obsługi dysków
AHCI ( z ang. Advanced Host Controller Interface),
NVMe ( z ang. Non-Volatile Memory express)
Protokoły AHCI
AHCI to sprzętowy mechanizm pozwalający oprogramowaniu na komunikację z
urządzeniami Serial ATA takimi jak np. Host Bus Adapter (HBA).
HBA to kontroler (mostek) umożliwiający komunikację pomiędzy komputerem a siecią
lub urządzeniami pamięci masowych. Może być zarówno dedykowanym chipem, jak
również częścią większego mikroukładu (np. mostka południowego). W pierwszym
przypadku mamy najczęściej do czynienia z niezintegrowaną kartą rozszerzenia,
instalowaną poprzez złącze płyty głównej (np. PCI lub PCI Express). Układy HBA są
również montowane bezpośrednio na płycie głównej komputera.
Dzięki AHCI oprogramowanie może komunikować się z urządzeniami podłączonymi do
magistrali SATA. W BIOS-ach płyt głównych istnieje możliwość włączenia i wyłączenia
tej technologii. Gdy jest ona aktywna możemy korzystać z takich funkcji dysku, jak
NCQ i Hot Plug. AHCI jest wspierane przez Windows Vista oraz Linux z kernel min
2.6.19 oraz Mac OS X 10.
Mając Windows XP włączenie trybu AHCI w BIOS-ie może spowodować problemy z
systemem operacyjnym i w konsekwencji wymusić jego reinstalację. Microsoft Windows
XP wymaga dodatkowego sterownika (podanego na przykład z osobnej dyskietki
podczas instalacji systemu przy włączonym AHCI).
Protokoły NVMe
Zoptymalizowany interfejs magistrali PCIe dla dysków SSD podłączanych przez interfejs
PCI Express. Specyfikacja sama w sobie nie jest ograniczona jedynie dla dysków SSD.
NVM Express został zaprojektowany od podstaw, wykorzystując niską latencję i
wewnętrzną równoległość urządzeń magazynujących dane opartych na pamięci flash, co
odzwierciedla równoległość współczesnych procesorów, platform i aplikacji. Interfejs
pozwala warstwie sprzętowej i software'owej hosta na pełne wykorzystanie
równoległości, którą charakteryzują się nowoczesne pamięci SSD. W rezultacie, NVMe
zmniejsza obciążenie I/O i przynosi wiele usprawnień wydajności. Urządzenia NVMe
występują zarówno w postaci standardowych formatów kart rozszerzeń PCI Express jak i
2,5-calowych urządzeń przypominających dyski twarde, udostępniających 4-pasmowy
interfejs PCI Express poprzez złącze U.2 (znane wcześniej jako SFF- 8639). Ważna
uwaga: Dyski SSD korzystają z magistrali PCIe, ale jako protokół komunikacyjny
wykorzystywany jest NVMe.
Złącze U.2
Kolejkowanie w NMVe
Obsługa do 64k kolejek I/O, z których każda może zawierać do 64k poleceń "in flight". Ponadto
poszczególnym kolejkom mogą być przypisane priorytety. Wyróżnia się tzw. kolejki składania
(submission) i realizacji (completion). W kolejkach składania przekazywane są wiadomości od
hosta do kontrolera, w kolejkach realizacji odwrotnie. Kolejki te są bardzo skuteczne w
przypadku architektur wieloprocesorowych, w których można przydzielać kolejki i przerwania do
każdego rdzenia.
IDE (z ang. Integrated Drive Electronics
Często nazywany jest ATA (z ang. Advanced Technology Attachment)
PATA – Parallel Advanced Technology Attachment)
Wprowadzono siedem wersji ATA od ATA-1 do ATA-7. Różniły się głównie
szybkością transmisji danych.
Wersje ATA
PIO (z ang. Programmed Input Output)
Tryb bardzo wolny. Całkowicie kontrolowana transmisja przez procesor.
Nr trybu PIO
0
1
2
3
4
Czas cyklu tc[ns]
600
383
240
180
120
Transfer [MB/s]
3,3
5,2
8,3
11,1
16,6
DMA (z ang. Direct Memory Access)
DMA – bezpośredni dostęp do pamięci. Procesor wyłącznie inicjuje proces
transmisji danych a następnie sterowanie przejmuje kontroler DMA.
Ultra DMA wykorzystuje magistralę PCI zwaną Bus Mastering DMA
Tryb
Transfer
[MB/s]
DMA
0
DMA
1
DMA
2
Ultra
DMA
33
Ultra
DMA
66
Ultra
ATA
100
Ultra
ATA
133
4,1
13,3
16,6
33
66
100
133
Tryb PIO i DMA
Koncepcja DMA
Transmisja informacji przebiega pomiędzy układem wejścia/wyjscia a wydzielonym
obszarem buforowanym w pamięci. Przebieg operacji nadzoruje sterownik DMA, co
oznacza, że generuje on wszystkie sygnały sterujące i adresy potrzebne do realizacji
wymiany. W tym celu sterownik DMA przejmuje na czas wymiany informacji kontrolę
nad magistralami, stając się zarządcą magistra.
ATAPI
Atapi to interfejs systemowy w komputerach klasy PC przeznaczony do
komunikacji z urządzeniami pamięci masowych. Rozszerzona wersja
standardu ATA, wprowadzająca wiele usprawnień pod kątem obsługi
wymiennych mediów. Głównie dotyczyło to napędów cd-rom/dvd,
napędów taśmowych, czy też dyskietek o dużych rozmiarach. W wyniku
wprowadzonych zmian w standardzie ATA, od tamtej pory przyjął on
nazwę ATA/ATAPI - jednak większość osób posługuje się jego starą,
krótszą nazwą.
Pata
Przewody PATA
Przewód 80 żyłowy.
Stosowany dla
UltraATA 100 i
UltraATA 133
Niebieski podłącza się
do płyty głównej, do
pozostałych podłącza
się urządzenia.
Przewód 40 żyłowy.
Na jednej taśmie
można podłączyć
dwa urządzenia ale
jedno z nich musi
być master a drugie
slave
Interfejs dysku IDE
SATA (z ang. Serial ATA)
Jest to złącze szeregowe realizujące transmisję w standardzie LVDS (z ang. Low Voltage Differential
Signaling). Transmisja jest typu punkt-punkt.
Komunikacja LVDS
PISO – Rejestr
przekształcający
informację równoległa na
postać szeregową.
SIPO – Rejestr
przekształcający
informację szeregową na
postać równoległą.
FIFO – First Input First
Output. Kolejka danych
Transkoder 8b/10b –
przekształca ciąg binarny
8b na ciąg binarny 10b aby
zapewnić informację
synchronizującą.
Wejście SATA
Dane
Zasilanie
Wtyk SATA
eSATA
Porównanie SATA
Interfejs
SATA1
SATA2
SATA3
Przepustowość [MB/s]
150
300
600
Aby uzyskać przepustowość w Mb/s należy transfer z tabeli
pomnożyć przez 10 ponieważ 1B w SATA kodowany jest na 10
bitach.
SCSI (z ang. Small Computer System Interface)
Stosowany w systemach wymagających dużej wydajności. Obsługuje wiele różnych urządzeń
jak np.: skanery, dyski twarde, dyski optyczne.
Adapter hosta – kontroler SCSI jako karta rozszerzeń.
Nie występuje w chipsecie.
Symbole urządzeń SCSI
Adapter hosta dla SCSI
Gniazda i porty SCSI
Pojawiło się wiele odmian SCSI.
SCSI Wide posiada 16b linię danych.
Każda kolejna wersja miała większą
szybkość transmisji danych
Konfiguracja urządzeń
Aby kolejne urządzenia można było dołączać wprost do tej samej szyny wprowadzono
specjalny system komunikacji oraz protokół wymiany informacji pomiędzy urządzeniami.
Każde urządzenie SCSI( włączane z kontrolerem) otrzymuje własny numer
indentyfikacyjny ID, nadawany przez instalatora na etapie montażu i podłączenia. Numer
ten ustawia się przy pomocy zworek- w urządzeniach wewnętrznych, a w urządzeniach
zewnętrznych na specjalnym przełączniku. Sposób ustawiania powinien być opisany w
dokumentacji związanej z danym urządzeniem, dostarczanej przez producenta. Ilość
dostępnych numerów ID wynika z ilości bitów (zworek) przeznaczonych na tę
numerację.
Przy wykorzystaniu trzech bitów A0, A1 i A2 można ustawić numer od 0 do 7. Każde
urządzenie musi mieć inny numer ID. Numery ID mogą teoretycznie być dowolne,
jednak istnieją pewne preferencje przypisywania numerów urządzeniom określonego
typu. Dla dysków twardych HDD „ zarezerwowano” numery niskie ( 0,1), dla napędów
CD-ROM, CD-R/W, streamerów- numery (2,3), dla dysków wymiennych, skanerównumery (4,5,6). Dla kontrolera zarezerwowany jest numer ID = 7. Szczególne znaczenie
ma numer ID =0, przeznaczony dla urządzenia, z którego ładowany jest system
operacyjny (t. zw. boot drive).
Urządzenie SCSI
SAS - Serial Attached SCSI
interfejs komunikacyjny, będący następcą
SCSI,
używany do podłączania napędów (głównie
dysków twardych). Stosowany przede
wszystkim w serwerach. Obecnie uzyskujemy
transfer na poziomie 12Gb/s
Kontroler SATA
Porównanie wydajności protokołów