Podręcznik
1. Magistrale – podstawowe pojęcia
Magistrale w systemie komputerowym służą do przesyłu danych pomiędzy różnymi elementami systemu. Oprócz samych danych po magistrali mogą również być przesyłane sygnały sterujące i adresy. Dane po magistrali mogą być przesyłane w postaci równoległej lub szeregowej. W przypadku magistrali równoległej potrzebnych jest wiele linii sygnałowych. Prowadzenie ścieżek z wieloma liniami jest skomplikowane. Poza tym sygnały mogą się „rozchodzić” przy dużych częstotliwościach taktowania magistrali. W celu ograniczenia liczby ścieżek magistrale równoległe mogą być multipleksowane (w przeciwieństwie do niemultipleksowanych). W przypadku magistrali multipleksowanej do przesyłu danych i adresów wykorzystywane są te same linie. Transfery danych mogą być przeprowadzane jako transakcje blokowe (ang. burst) – urządzenie automatycznie wystawia kolejne adresy, a dostęp do danych jest realizowany w 1 cyklu zegara.
Obecnie większość magistral stosowanych w systemach komputerowych to magistralne szeregowe. Dane są przesyłane „gęsiego” jedna za drugą, jednak nie bezpośrednio. Zwykle jest stosowany jakiś protokół przesyłu, który jednocześnie zapewnia ochronę danych. W ten sposób można przesyłać dane, adresy i sygnały sterujące.
Przesył danych po magistrali może być zrealizowany w sposób:
• synchroniczny – ustalone są chwile pojawienia się każdego sygnału w relacji do zegara CLK (transfer niezależny od szybkości działania nadajnika i odbiornika),
• asynchroniczny – ustalone jest tylko następstwo sygnałów (możliwe potwierdzanie sygnałów),
• półsynchroniczny - ustalone jest następstwo niektórych sygnałów oraz chwile pojawienia się niektórych sygnałów.
Asynchroniczny sposób działania magistrali umożliwia komunikowanie się urządzeń działających z różnymi prędkościami. Odbiór/nadanie danych jest w tym przypadku potwierdzane. Magistrale działające synchronicznie są szybsze. Przepływ danych synchronizowany jest jednym sygnałem zegarowym. Urządzenia muszą działać z podobnymi prędkościami, bo zegar jest dostosowany do najwolniejszego urządzenia. Możliwy jest też pośredni tryb działania magistrali – półsynchroniczny, w którym tylko pojawienie się niektórych sygnałów jest potwierdzane.
Przesył danych po magistrali zachodzi w kilku etapach:
• żądanie dostępu do magistrali przez urządzenie,
• arbitraż,
• zaadresowanie,
• przesłanie danych (zapis lub odczyt),
• detekcja i sygnalizacja błędów.
Nie wszystkie etapy muszą wystąpić w każdym przypadku. Na etapie żądania dostępu urządzenie zgłasza do kontrolera magistrali chęć transferu danych. Jeśli takich urządzeń jest więcej niż jedno należy przejść do fazy arbitrażu. Na tym etapie ustalane jest, które urządzenia ma pierwszeństwo. Arbitraż może być statyczny lub dynamiczny. Zaletą arbitrażu statycznego jest prostota. W tym przypadku urządzenia mają przydzielone stałe kwanty czasu, w których mogą użytkować magistralę. Istotną wadą tego rozwiązania jest to, że magistrala jest przydzielana nawet wtedy, gdy nie ma transakcji. W arbitrażu dynamicznym przydział magistrali jest realizowany na podstawie priorytetów zgłoszeń. W tym przypadku przydział magistrali następuje zgodnie z zapotrzebowaniem. Algorytm przydziału musi uwzględnić priorytety urządzeń, musi także wykluczać możliwość zablokowania magistrali (np. przez zastosowanie rotacji priorytetów). W fazie zaadresowania następuje wskazanie, z którym, drugim urządzeniem ma być nawiązana komunikacja. Po czym następuje przesłanie danych. W ostatnim etapie możliwa jest detekcja (i ewentualnie korekcja) błędów.
Jeśli chodzi o adresowanie urządzeń podłączonych do magistrali to najczęściej stosuje się adresowanie logiczne, w którym identyfikator jest ustawiany w urządzeniu. Alternatywą jest adresowanie geograficzne, gdzie rozpoznawana jest fizyczna lokalizacja gniazda, poprzez które jest dołączone urządzenie.