by Ernest Jamro Katedra Elektroniki, AGH Kraków PCI oraz OPB (PCI -Peripherial Component Interconnect) (OPB - On-chip Peripherial Bus) by Ernest Jamro Katedra Elektroniki, AGH Kraków
Zastosowanie PCI – magistrala zewnętrzna - łącząca różne moduły wewnątrz komputera PC OPB – magistrala wewnętrzna – łącząca moduły wewnątrz pojedynczego układu scalonego
Przykład magistrali PCI
Przykład magistrali OPB
OPB i PCI - MAGISTRALE SYNCHRONICZNE Dla PCI przebiegi czasowe względem sygnału zegarowego (wyjście) f=33MHz Tval= 2 ns min Tval= 11ns max
Przebiegi czasowe względem sygnału zegarowego (wejście) (33MHz) Ts= 7 ns min (setup time) Th= 0ns min (hold time)
Magistrala OPB Wytyczne czasowe podane w procentach okresu zegara: Begin Signal is valid within 8% of the clock cycle from the rise of the OPB clock signal. Early Signal is valid within 18% of the clock cycle from the rise of the OPB clock signal. Early + Signal is valid within 28% of the clock cycle from the rise of the OPB clock signal. Middle - Signal is valid within 33% of the clock cycle from the rise of the OPB clock signal. Middle Signal is valid within 43% of the clock cycle from the rise of the OPB clock signal. Middle + Signal is valid within 53% of the clock cycle from the rise of the OPB clock signal. Late - Signal is valid within 58% of the clock cycle from the rise of the OPB clock signal. Late Signal is valid within 68% of the clock cycle from the rise of the OPB clock signal. End Signal is valid within 78% of the clock cycle from the rise of the OPB clock signal.
PCI Magistrala synchroniczna Prawie wszystkie sygnały są próbkowane wraz z narastającym sygnałem zegarowym. Sygnał zegarowy może mieć częstotliwość od 0 (!!!) do 33MHz (66MHz). Poprzez zatrzymanie zegara można wprowadzić magistralę w tryb oszczędzania energii lub może to służyć do celów testowych.
Magistrala PCI Sygnały są współdzielone poprzez zastosowanie buforów trójstanowych
Wykorzystywanie odbić (linii długiej) podczas pracy magistrali PCI współczynnik odbicia Napięcie w linii długiej w funkcji x (odległości od początku) i t (czasu) Natychmiastowe przełączanie (stare podejście) - aby zniwelować odbicia na końcu linii podłączone są rezystory (terminatory) o rezystancji charakterystycznej linii (Zo=Zt więc wt=0).
Nowe podejście PCI - wykorzystywanie odbić Przykład działania dla Zg=Zo, Zt- nieskończenie duże t <0 Eg=0 Uwy=0 t=0 Eg= 5V U(x=0) = 2.5V 0< t < /2 U(x=l/2)= 0 /2 < t <3 /2 U(x=l/2)= 2.5V t> 3 /2 U(x=l/2)= 5V
Różne rodzaje urządzeń: Master (OPB), Initiator (PCI) – inicjuje transfer: podaje sygnał gotowości do transmisji (sygnał Select – OPB lub adres na magistrale adresową, dane (w przypadku zapisu) na magistralę Slave (OPB), Target (PCI) – zachowuje się podobnie jak pamięć – czyli odczytuje adres i wystawia dane (w przypadku odczytu). Arbiter – Transmisja jest wykonywana tylko pomiędzy jednym urządzeniem Master (Initiator) i pojedynczym urządzeniem Slave (Target) w jednym takcie zegara. Dlatego Arbiter przyznaje magistrale wybranemu pojedynczemu urządzeniowi Master (Initiator) w wybranej chwili czasowej.
Nazewnictwo sygnałów na magistrali OPB Mn_... – sygnał wystawiany przez urządzenie Master Sl_... – sygnał wystawiony przez urządzenie Slave OPB_... – sygnał wynikowy magistrali OPB (odpowiednia suma sygnałów Mn_... i SL_...
Współdzielenie (multipleksacja) sygnałów na magistrali OPB
Fizyczne połączenie sygnałów magistrali OPB
Prosty sposób transakcji - OPB Urządzenie Master gotowe do transmisji: Select=‘1’ Urządzenie Slave odpowiada, że jest gotowe do transmisji: Ack=‘1’ Transfer danych tylko wtedy kiedy Ack=‘1’ (przy narastającym sygnale zegarowym)
Prosty sposób transakcji - PCI Urządzenie Inicjator gotowe do transmisji: IRDY#=‘0’ Urządzenie Docelowe gotowe do transmisji: TRDY#=‘0’ Transfer danych tylko wtedy kiedy IRDY#=‘0’ oraz TRDY#=‘0’ (przy narastającym sygnale zegarowym)
Arbitraż magistrali PCI Podobnie jest dla magistrali OPB – występują sygnały Mn_request oraz OPB_MnGrant
Algorytm Arbitrażu 1 Stały priorytet – każde urządzenie ma określony priorytet i magistrala jest przydzielana według priorytetu (urządzenie żądające magistrali o najwyższym priorytecie dostaje magistrale. OPB_M0Grant<= M0_request -- [M0 – najwyższy priorytet] OPB_M1Grant<= M1_request and not M0_request OPB_M2Grant<= M2_request and not (M0_request or M1_request) OPB_M3Grant<= M3_request and not (M0_request or M1_request or M2_request)
Algorytm Arbitrażu 2 Dynamiczny Priorytet – np. Least Recently Used (LRU) algorytm, dla którego po każdym arbitrażu magistrali Master, który ostatnio otrzymał magistralę ma ustawiony priorytet na najniższy, pozostałym urządzeniom priorytet jest podnoszony o 1. M0_Priorytet<= 0 -- [M0 – przyznano właśnie magistra] M1_Priorytet<= M1_Priorytet + 1 M2_Priorytet<= M2_Priorytet + 1 ...
Algorytm Arbitrażu 3 Mieszany: Stały algorytm względem wybranej grupy urządzeń oraz dynamiczny względem innej grupy urządzeń.
Arbitraż Magistrali OPB
Arbitraż Magistrali OPB użycie sygnału busLock (dla PCI - LOCK#)
Arbitraż magistrali OPB dwa urządzeń Master
Pojedynczy odczyt na OPB
Pojedynczy odczyt i zapis na OPB
Wielokrotne pojedyncze transakcje
Wykorzystanie sygnału busLock Sygnał busLock powoduje, że Master ma nieprzerwanie przydzieloną magistralę
busLock przetrzymany o 1 clk za długo
Adresowanie sekwencyjne
Sygnał retry
Przerwanie transakcji przez Master’a
Timeout Brak odpowiedzi Slave’a (OPB_xferAck) przez 16 cykli zegarowych
Transfer o przedłużonym czasie trwania Dodatkowe sygnały toutSup (Timeout Suppress)
Sygnały magistrali PCI Master
Sygnały magistrali PCI Target
Zapis
Stany magistrali
Cykl przejęcia magistrali
Fast Back-to-Back
Przedwczesne przerwanie transferu (zainicjalizowane przez Master’a) Master wykorzystał swój czas (Latency Timer) oraz inne urządzenie zgłosiło REQ#. Brak odpowiedzi od urządzenia adresowanego (Target - DEVSEL#)
Przedwczesne przerwanie transferu (zainicjalizowane przez Target) Rozłączenie po zakończeniu obecnego (pojedynczego) transferu (disconnect A,B). TRDY# =L; DEVSEL# =L, STOP# =L. Rozłączenie bez zakończenia transferu obecnego transferu ale wcześniej nastąpił transfer danych (disconnect C). TRDY# =H; DEVSEL# =L, STOP# =L. Rozłączenie bez jakiegokolwiek transferu, transakcja musi być powtórzona (retry). Permanentne zaniechanie transferu spowodowane błędem (abort and not retry). TRDY# =H; DEVSEL# =H, STOP# =L.
Disconnect A
Powody przerwania Disconnect, Retry Target za wolny (więcej niż 8 clk sekwencyjnie, 16 clk pierwsza transmisja) Target nie rozpoznaje adresowania sekwencyjnego Transfer sekwencyjny wykracza poza obszar adresowy Target Transfer blokowy (burst) wykracza poza obszar linii cache Transfer do zmodyfikowanej linii cache lub do urządzenia zatrzaśniętego (locked)
Powody przerwania permanentnego (abort) Urządzenie Target niedziałające (niezdolne do jakiegokolwiek transferu) Błąd adresacji (związane z BE#) Błąd parzystości podczas cyklu adresowego Odpowiedz master’a na rozłączenie permanentne Generacja przerwania (interrupt) uaktywnienie sygnału SERR#
Główne cechy PCI (Revision 2.1) Architektura niezależna od procesora Do 256 PCI funkcjonalnych urządzeń na 1 magistralę (ale tylko do około 10 urządzeń fizycznych ze względu na obciążenie elektryczne lub logicznie 32 urządzenia * 8 niezależnych logicznych funkcji) Do 256 magistrali PCI 32 lub 64-bitowa magistrala danych (adresowa) Magistrala synchroniczna z zegarem o maksymalnej częstotliwości 33MHz (dopuszczalna również 66MHz) Transfer blokowy (burst) dla wszystkich odczytów i zapisów co daje maksymalny transfer 33MHz*32bity= 133MB/s (najczęściej) lub 66MHz*64bity=528MB/s
Główne cechy (Revision 2.1) cd. (2) Każde urządzenie może (ale nie musi) nadzorować magistralą (bus master) czyli wystawiać adres na magistrali adresując np. główną pamięć (main memory) lub urządzenie na innej magistrali. Ukryty arbitraż magistrali (niewidoczny dla innych urządzeń) Mała liczba wyprowadzeń (np. multipleksowana magistrala dane/adres) Kontrola poprawności transferu poprzez kontrolę parzystości dla: poleceń, danych i adresu (tylko jeden bit parzystości)
Główne cechy (Revision 2.1) cd. (3) Trzy przestrzenie adresowe: pamięć, we/wy, konfiguracji. Automatyczna konfiguracja, np. podczas inicjalizacji urządzenie podaje rozmiar wymaganej pamięci a arbiter przydziela mu adres. Przeźroczystość softwarowa - te same komendy dla urządzenia znajdującego się na głównej magistrali lub magistralach podrzędnych. Równoczesna praca magistrali.