Magistrala danych przenosi informacje między procesorem, pamięcią i układami peryferyjnymi. Magistrala adresowa wskazuje miejsce odczytu lub zapisu, a magistrala sterująca określa rodzaj operacji i jej przebieg w czasie. Razem umożliwiają uporządkowaną wymianę danych. W projekcie PCB trzeba uwzględnić nie tylko liczbę połączeń, lecz także opóźnienia sygnałów, impedancję ścieżek i przesłuchy.
Czym jest magistrala danych i co oznacza jej szerokość?
Magistrala to zestaw połączeń wraz z regułami komunikacji. Może łączyć bloki wewnątrz układu scalonego, elementy na jednej płytce albo urządzenia połączone przewodem. Samo połączenie elektryczne nie wystarcza: nadajnik i odbiornik muszą zgodnie interpretować poziomy logiczne oraz wiedzieć, kiedy przesyłana wartość jest ważna.
Szerokość równoległej magistrali danych określa liczbę bitów przesyłanych jednocześnie. Magistrala 8-bitowa przenosi w jednym transferze jeden bajt, a 64-bitowa osiem bajtów. Transfer nie zawsze oznacza pełny okres zegara. Niektóre interfejsy przekazują dane raz na takt, inne wykorzystują oba zbocza sygnału taktującego.
Większa szerokość pozwala przenieść więcej danych przy tej samej częstości transferów, ale wymaga większej liczby linii i wyprowadzeń. Zwiększa też zakres pracy przy prowadzeniu ścieżek. W interfejsie szeregowym bity są przesyłane kolejno; mniejsza liczba połączeń nie oznacza jednak automatycznie mniejszej przepustowości. O wyniku decydują parametry całego interfejsu.
Dane na liniach są stanami elektrycznymi interpretowanymi jako zera i jedynki. Dopuszczalne napięcia i progi rozpoznawania stanów określa karta katalogowa. Nie należy łączyć układów wyłącznie na podstawie podobnych nazw sygnałów: zgodność funkcji nie potwierdza zgodności elektrycznej.
Magistrala danych, adresowa i sterująca — różnice
Podział na trzy magistrale opisuje funkcje sygnałów. Nie oznacza, że każda konstrukcja ma trzy niezależne wiązki przewodów. Część interfejsów wykorzystuje te same wyprowadzenia do różnych zadań w kolejnych fazach operacji. W transmisji szeregowej adres, polecenie i dane mogą być przesyłane kolejno tym samym torem.
| Magistrala | Szerokość lub typ | Typowe zastosowanie |
|---|---|---|
| Danych | Przykładowo 8, 16, 32 lub 64 bity równolegle; zależnie od układu | Przesyłanie zawartości pamięci lub wartości rejestru |
| Adresowa | n bitów określających jeden z 2n adresów | Wskazywanie komórki pamięci albo rejestru urządzenia |
| Sterująca | Zestaw sygnałów o funkcjach określonych przez architekturę | Odczyt, zapis, synchronizacja, reset i zgłaszanie przerwań |
W uproszczonym odczycie kontroler wskazuje adres i zgłasza żądanie odczytu. Wybrany układ udostępnia dane, a kontroler odbiera je w dozwolonym momencie. Przy zapisie kontroler wystawia adres oraz dane i uruchamia operację zapisu. Dokładne zależności czasowe wynikają z dokumentacji obu stron połączenia.
Magistrala adresowa: ile pamięci można zaadresować?
Za pomocą n bitów można rozróżnić 2n adresów. Dopiero znajomość jednostki adresowania pozwala przeliczyć tę liczbę na pojemność. Jeżeli każdy adres wskazuje jeden bajt, liczba adresów odpowiada liczbie bajtów. Jeśli wskazuje większe słowo, obliczenie musi uwzględniać jego rozmiar.
| Liczba bitów adresu | Liczba adresów | Przestrzeń przy adresowaniu bajtowym |
|---|---|---|
| 16 | 216 = 65 536 | 64 KiB |
| 20 | 220 = 1 048 576 | 1 MiB |
| 32 | 232 = 4 294 967 296 | 4 GiB |
Założenie tabeli: jeden adres wskazuje jeden bajt. Podane pojemności opisują przestrzeń adresową, a nie ilość zamontowanej pamięci RAM. Część adresów może być przypisana rejestrom urządzeń, pamięci tylko do odczytu albo pozostawać niewykorzystana. Dostępny zakres trzeba sprawdzić w mapie pamięci konkretnego układu.
Szerokość magistrali danych i szerokość adresu są odrębnymi parametrami. Układ z 8-bitowym torem danych może korzystać z 16-bitowych adresów. Może również współdzielić część wyprowadzeń: najpierw przesłać nimi fragment adresu, a później dane. Takie multipleksowanie ogranicza liczbę wyprowadzeń, lecz wymaga rozróżnienia faz transmisji, a w niektórych rozwiązaniach także zewnętrznego zatrzasku adresu.
Magistrala sterująca: kiedy odczytywać i zapisywać dane?
Do sygnałów sterujących należą między innymi READ i WRITE, czyli odczyt i zapis, oraz zegar, reset i przerwania. Nazwy, kierunki i poziomy aktywne zależą od rodziny układów. Nie każda magistrala wykorzystuje wszystkie te sygnały ani wyprowadza je osobno. Przykładowo polecenie zapisu może być zakodowane w przesyłanej sekwencji bitów.
Odbiornik potrzebuje określonego czasu stabilności danych przed chwilą ich odczytania i po niej. Dlatego zgodność częstotliwości zegara nie wystarcza do potwierdzenia poprawnej komunikacji. Trzeba porównać opóźnienie nadajnika, czas propagacji połączenia i wymagania czasowe odbiornika. Sygnał gotowości, jeśli występuje, może umożliwiać wydłużenie operacji.
Przerwanie informuje procesor o zdarzeniu wymagającym obsługi, na przykład zakończeniu transmisji. Moment reakcji zależy od konfiguracji i priorytetów. Kontroler DMA, czyli bezpośredniego dostępu do pamięci, może natomiast wykonywać transfery bez kopiowania każdego elementu danych przez program procesora. Dostęp do współdzielonych zasobów nadal wymaga koordynacji.
Zewnętrzne magistrale danych i interfejsy szeregowe
Określenie „zewnętrzna” zależy od przyjętej granicy: może oznaczać połączenie poza układem scalonym albo poza obudową urządzenia. Pamięć na tej samej płytce jest zewnętrzna względem procesora, choć nie wymaga przewodu. Złącza kart rozszerzeń i porty urządzeń wprowadzają dodatkowo wymagania dotyczące przypisania styków, zasilania i ciągłości toru sygnałowego.
| Magistrala lub interfejs | Szerokość lub typ i szybkość | Typowe zastosowanie |
|---|---|---|
| I²C | Szeregowy; linia danych i linia zegara. Tryby 100 kbit/s, 400 kbit/s oraz 1 Mbit/s | Czujniki, proste układy peryferyjne i ich konfiguracja |
| SPI | Szeregowy, taktowany; liczba linii zależy od odmiany. Brak jednej normy prędkości | Pamięci, przetworniki i wyświetlacze |
| CAN klasyczny | Szeregowy; do 1 Mbit/s | Komunikacja między sterownikami i modułami automatyki |
| USB 2.0 | Szeregowy; do 480 Mbit/s w najszybszym trybie tej wersji | Urządzenia peryferyjne i wymiana danych z komputerem |
| DDR4 | Równoległy; w przykładzie obliczeniowym kanał danych o szerokości 64 bitów | Połączenie kontrolera z pamięcią operacyjną |
Dla I²C wymienione szybkości odpowiadają kolejno trybowi standardowemu i dwóm szybszym trybom. Nie każdy układ obsługuje wszystkie trzy. Przy SPI dopuszczalne taktowanie wynika z dokumentacji współpracujących elementów oraz warunków połączenia. Również maksymalne szybkości CAN i USB nie są gwarancją osiągnięcia takiego tempa przesyłania użytecznych danych.
Zastosowania w tabeli są orientacyjne. Parametry graniczne należy sprawdzić w odpowiedniej specyfikacji lub normie interfejsu oraz kartach katalogowych. Na współdzielonych liniach trzeba też ustalić prawo do nadawania. Jednoczesne wymuszanie przeciwnych stanów przez zwykłe wyjścia może spowodować konflikt elektryczny; rozwiązania z arbitrażem lub wyjściami o otwartym drenie mają własne reguły współpracy.
Jak obliczyć przepustowość? Przykład DDR4-3200
Teoretyczną przepustowość równoległej magistrali wyznacza iloczyn szerokości, częstotliwości taktowania i liczby transferów na takt. Jeśli szerokość podano w bitach, wynik otrzymujemy w bitach na sekundę. Aby uzyskać bajty na sekundę, trzeba podzielić go przez osiem.
Przepustowość [B/s] = szerokość [bit] ÷ 8 × częstotliwość [Hz] × liczba transferów na takt.
Założenia przykładu: rozpatrujemy jeden kanał DDR4-3200 o szerokości danych 64 bitów, pracujący z szybkością 3200 MT/s. Obliczamy teoretyczną wartość szczytową, bez przerw i narzutów. MT/s oznacza miliony transferów na sekundę, a GB/s zapisujemy dziesiętnie.
Jeden transfer przenosi 64 ÷ 8 = 8 B. Zatem 3200 × 106 transferów/s × 8 B = 25,6 × 109 B/s = 25,6 GB/s na kanał.
Szybkość 3200 MT/s już uwzględnia transfery na obu zboczach zegara. Nie wolno mnożyć tego wyniku ponownie przez dwa. W równoważnym zapisie opartym na częstotliwości zegara byłoby to 1600 MHz i dwa transfery na takt.
Wynik nie jest pomiarem wydajności urządzenia. Odświeżanie pamięci, obsługa poleceń, zmiany kierunku transmisji i charakter dostępu do danych ograniczają rzeczywistą przepustowość. Sam wzór nie wyznacza też opóźnienia pojedynczego odczytu. Do oceny konkretnego systemu potrzebne są parametry kontrolera, pamięci i wykonywanych operacji.
DBI: po co odwracać bity na magistrali danych?
DBI to mechanizm warunkowego odwracania danych, spotykany w interfejsach pamięci DDR4 i GDDR. Nadajnik przesyła bajt w postaci zwykłej albo odwróconej, a dodatkowy sygnał informuje odbiornik o wybranej postaci. Odbiornik przywraca pierwotną wartość, więc znaczenie danych pozostaje bez zmian.
W wariancie DBI DC kryterium stanowi liczba zer w bajcie. Jeśli przekracza cztery, nadajnik odwraca wszystkie osiem bitów i sygnalizuje inwersję stanem DBI_n = 0. W efekcie na ośmiu liniach danych występują najwyżej cztery zera. Nie należy mylić tego warunku z porównywaniem zmian względem poprzedniego bajtu.
Przykład: bajt 0000 0111 zawiera pięć zer. Po odwróceniu nadajnik wysyła 1111 1000, czyli trzy zera, oraz DBI_n = 0. Odbiornik rozpoznaje aktywny sygnał inwersji i odtwarza 0000 0111.
Ograniczenie liczby linii w stanie niskim może zmniejszać pobór mocy i zakłócenia w interfejsie o odpowiedniej budowie elektrycznej. DBI DC nie gwarantuje jednak zmniejszenia liczby przełączeń między każdą parą kolejnych transferów. To odrębne kryterium, wymagające uwzględnienia poprzedniego stanu magistrali.
Sposób obsługi DBI, przypisanie sygnału i dostępność funkcji dla odczytu oraz zapisu należy sprawdzić w dokumentacji kontrolera i pamięci, a także we właściwej specyfikacji JEDEC. Nie można zakładać identycznych zasad dla wszystkich odmian DDR i GDDR. Bez danych o konkretnym układzie nie da się uczciwie określić wielkości oszczędności energii.
Jak magistrala wpływa na projekt PCB?
Przy szybkich zboczach ścieżka zachowuje się jak linia transmisyjna. Znaczenie mają jej geometria, warstwa odniesienia i ciągłość drogi powrotnej prądu. Dlatego wymagania dotyczące impedancji trzeba powiązać z układem warstw i uzgodnić z producentem płytek PCB. Nie istnieje jedna wartość impedancji odpowiednia dla każdej magistrali.
Dopasowanie długości służy ograniczeniu różnic czasu dotarcia sygnałów. W magistrali równoległej dane muszą dotrzeć w odpowiedniej relacji do zegara lub sygnału wyznaczającego chwilę odbioru. Nie oznacza to zrównania wszystkich ścieżek na płytce. Właściwe grupy sygnałów i dopuszczalne różnice opóźnień określa dokumentacja interfejsu.
Przesłuchy wynikają ze sprzężenia między sąsiednimi połączeniami. Wpływają na nie między innymi odstępy, długość równoległego prowadzenia i odległość od warstwy odniesienia. Nadmiernie zagęszczone meandry mogą zwiększać sprzężenia, dlatego samo wyrównanie długości nie potwierdza poprawności projektu.
Złącza, przelotki i odgałęzienia również zmieniają warunki propagacji. Jeżeli magistrala wychodzi poza płytkę, dokumentacja do montażu kabli i wiązek powinna określać przypisanie styków oraz wymagania dla przewodów. Długości połączeń i terminacji nie należy dobierać według jednej uniwersalnej reguły.
Poprawny schemat i prowadzenie ścieżek nie wykluczają usterek wykonania. Przy przygotowaniu montażu elementów na PCB trzeba zadbać o zgodność dokumentacji, orientację złączy i możliwość sprawdzenia połączeń. Kontrola ciągłości wykrywa część usterek, ale nie dowodzi poprawnego działania magistrali przy docelowej szybkości.
Lista kontrolna przed zatwierdzeniem projektu
- Funkcja linii: czy rozdzielono dane, adresy i sterowanie oraz opisano sygnały współdzielone w czasie?
- Poziomy elektryczne: czy napięcia, progi wejściowe i stany po resecie są zgodne po obu stronach?
- Adresowanie: czy wiadomo, co wskazuje pojedynczy adres i które zakresy zajmują urządzenia?
- Czas transmisji: czy sprawdzono wymagania odbiornika, opóźnienia nadajnika i połączeń?
- Przepustowość: czy rozróżniono MHz, MT/s, bity i bajty oraz uwzględniono narzuty?
- Prowadzenie ścieżek: czy wymagania impedancji i dopasowania opóźnień dotyczą właściwych grup sygnałów?
- DBI: czy kontroler i pamięć obsługują zgodny wariant i konfigurację tej funkcji?
- Weryfikacja: czy przewidziano sprawdzenie komunikacji w docelowych warunkach pracy?
Podsumowanie
Magistrala danych przenosi wartości, adresowa wskazuje ich miejsce, a sterująca koordynuje operację. Szerokość i szybkość transferów pozwalają obliczyć przepustowość szczytową, lecz niezawodność zależy także od parametrów elektrycznych i projektu PCB. DBI może ograniczać obciążenie interfejsu, ale nie zastępuje poprawnego prowadzenia ścieżek. Ostateczne wymagania zawsze należy oprzeć na dokumentacji konkretnych układów i właściwej specyfikacji.


