Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 PCI - Peripherial Component Interconnect OPB - On-chip Peripherial Bus PLB Processor Local Bus by Ernest Jamro Katedra Elektroniki, AGH Kraków.

Podobne prezentacje


Prezentacja na temat: "1 PCI - Peripherial Component Interconnect OPB - On-chip Peripherial Bus PLB Processor Local Bus by Ernest Jamro Katedra Elektroniki, AGH Kraków."— Zapis prezentacji:

1 1 PCI - Peripherial Component Interconnect OPB - On-chip Peripherial Bus PLB Processor Local Bus by Ernest Jamro Katedra Elektroniki, AGH Kraków

2 2 Zastosowanie l PCI – magistrala zewnętrzna - łącząca różne moduły wewnątrz komputera PC l OPB – magistrala wewnętrzna – łącząca moduły wewnątrz pojedynczego układu scalonego l PLB magistrala wewnętrzna służąca do bardzo szybkiej komunikacji

3 3 Przykład magistrali PCI

4 4 Przykład magistrali OPB

5 5 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

6 6 Przebiegi czasowe względem sygnału zegarowego (wejście) (33MHz) Ts= 7 ns min (setup time) Th= 0ns min (hold time)

7 7 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.

8 8 Magistrala PCI l Sygnały są współdzielone poprzez zastosowanie buforów trójstanowych (uwaga błąd na schemacie)

9 9 Różne rodzaje urządzeń: l 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ę l Slave (OPB), Target (PCI) – zachowuje się podobnie jak pamięć – czyli odczytuje adres i wystawia dane (w przypadku odczytu). l 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.

10 10 Współdzielenie (multipleksacja) sygnałów na magistrali OPB

11 11 Fizyczne połączenie sygnałów magistrali OPB

12 12 Nazewnictwo sygnałów na magistrali OPB l Mn_... – sygnał wystawiany przez urządzenie Master l Sl_... – sygnał wystawiony przez urządzenie Slave l OPB_... – sygnał wynikowy magistrali OPB (odpowiednia suma sygnałów Mn_... i SL_...

13 13 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)

14 14 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)

15 15 Arbitraż magistrali PCI Podobnie jest dla magistrali OPB – występują sygnały Mn_request oraz OPB_MnGrant

16 16 Algorytm Arbitrażu 1 l 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)

17 17 Algorytm Arbitrażu 2 l 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

18 18 Arbitraż Magistrali OPB

19 19 Pojedynczy odczyt na OPB

20 20 Pojedynczy odczyt i zapis na OPB

21 21 Wykorzystanie sygnału busLock Sygnał busLock powoduje, że Master ma nieprzerwanie przydzieloną magistralę

22 22 Adresowanie sekwencyjne

23 23Timeout Brak odpowiedzi Slavea (OPB_xferAck) przez 16 cykli zegarowych

24 24 Materiały dodatkowe Nie były na wykładzie

25 25 Arbitraż magistrali OPB dwa urządzeń Master

26 26 Wielokrotne pojedyncze transakcje

27 27 busLock przetrzymany o 1 clk za długo

28 28 Sygnały magistrali PCI Master

29 29 Arbitraż Magistrali OPB użycie sygnału busLock (dla PCI - LOCK#)

30 30 PCI Magistrala synchroniczna l Prawie wszystkie sygnały są próbkowane wraz z narastającym sygnałem zegarowym. l Sygnał zegarowy może mieć częstotliwość od 0 (!!!) do 33MHz (66MHz). l Poprzez zatrzymanie zegara można wprowadzić magistralę w tryb oszczędzania energii lub może to służyć do celów testowych.

31 31 Sygnały magistrali PCI Target

32 32

33 33 Zapis

34 34

35 35 Stany magistrali

36 36 Cykl przejęcia magistrali

37 37 Fast Back- to-Back

38 38 Przedwczesne przerwanie transferu (zainicjalizowane przez Mastera) l Master wykorzystał swój czas (Latency Timer) oraz inne urządzenie zgłosiło REQ#. l Brak odpowiedzi od urządzenia adresowanego (Target - DEVSEL#)

39 39

40 40 Kontrola parzystości

41 41 Rejestry konfiguracyjne

42 42 Command register l bit 0 - I/O Access Enable l bit 1 - Memory Access Enable l bit 2 - Master Enable l bit 3 - Special Cycle Recognition l bit 4 - Memory Write and Invalidate Recognition l bit 5 - VGA Palette Snoop Enable l bit 6 - Parity Error Response (ma kontrolę parzystości) l bit 7 - Wait Cycle Enable (Stepping) l bit 8 - System Error Enable (can drive SERR#) l bit 9 - Fast Back - to - Back Enable - (for bus master) l bit Reserved

43 43 Status Register l bits Reserved l bit MHz Capable l bit 6 - User-Definable Feature Supported l bit 7 - Fast Back-to-Back (for a target) l bit 8 - Data Parity Reported l bits Device Select Timing: 00b-fast, 01b- medium, 10b-slow, 11b-reserved l bit 11 - Signaled Target Abort (for a target) l bit 12 - Received Target Abort (for a master) l bit 13 - Received Master Abort (for a master) l bit 14 - Signaled System Error (SERR#) l bit 15 - Detected Parity Error

44 44 Base Address Memory

45 45 Base Address (I/O)

46 46 Processor Local Bus (PLB) Żądanie magistrali Priorytet żądania Zarezerwowanie magistrali Read Not Wirte Rozmiar transmisji Typ trans.: zwykły, DMA,.. Primary Address Valid Secondary Address Valid Rd Secendary to Primary Address Acknowkedge Read Data Bus Read Data Ack Read Data Complete

47 47 PLB – Back to Back Read

48 48 PLB – Back to Back Write

49 49 PLB – 4 Line Read

50 50 PLB – Rozmiar transmisji

51 51 PLB –line read followed by 4-line write

52 52 Deep Address Piplining

53 53 4- Deep Read Piplining

54 54 Koniec

55 55 Główne cechy PCI (Revision 2.1) l Architektura niezależna od procesora l 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) l Do 256 magistrali PCI l 32 lub 64-bitowa magistrala danych (adresowa) l Magistrala synchroniczna z zegarem o maksymalnej częstotliwości 33MHz (dopuszczalna również 66MHz) l 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

56 56 Główne cechy (Revision 2.1) cd. (2) l 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. l Ukryty arbitraż magistrali (niewidoczny dla innych urządzeń) l Mała liczba wyprowadzeń (np. multipleksowana magistrala dane/adres) l Kontrola poprawności transferu poprzez kontrolę parzystości dla: poleceń, danych i adresu (tylko jeden bit parzystości)

57 57 Główne cechy (Revision 2.1) cd. (3) l Trzy przestrzenie adresowe: pamięć, we/wy, konfiguracji. l Automatyczna konfiguracja, np. podczas inicjalizacji urządzenie podaje rozmiar wymaganej pamięci a arbiter przydziela mu adres. l Przeźroczystość softwarowa - te same komendy dla urządzenia znajdującego się na głównej magistrali lub magistralach podrzędnych. l Równoczesna praca magistrali.

58 58 Przerwania l 4 linie (Open Drain) INTA# - INTD#. Linie te mogą być dzielone przez inne urządzenia. l Każde urządzenie musi najpierw używać przerwania INTA# potem INTB# itd. l Urządzenie wraz z ustawieniem odpowiedniej linii INT również ustawia odpowiedni bit w rejestrze statusowym świadczący o żądaniu przerwania.

59 59 Przedwczesne przerwanie transferu (zainicjalizowane przez Target) l Rozłączenie po zakończeniu obecnego (pojedynczego) transferu (disconnect A,B). TRDY# =L; DEVSEL# =L, STOP# =L. l Rozłączenie bez zakończenia transferu obecnego transferu ale wcześniej nastąpił transfer danych (disconnect C). TRDY# =H; DEVSEL# =L, STOP# =L. l Rozłączenie bez jakiegokolwiek transferu, transakcja musi być powtórzona (retry). TRDY# =H; DEVSEL# =L, STOP# =L. l Permanentne zaniechanie transferu spowodowane błędem (abort and not retry). TRDY# =H; DEVSEL# =H, STOP# =L.

60 60 Disconnect A

61 61 Powody przerwania Disconnect, Retry l Target za wolny (więcej niż 8 clk sekwencyjnie, 16 clk pierwsza transmisja) l Target nie rozpoznaje adresowania sekwencyjnego l Transfer sekwencyjny wykracza poza obszar adresowy Target l Transfer blokowy (burst) wykracza poza obszar linii cache l Transfer do zmodyfikowanej linii cache lub do urządzenia zatrzaśniętego (locked)

62 62 Powody przerwania permanentnego (abort) l Urządzenie Target niedziałające (niezdolne do jakiegokolwiek transferu) l Błąd adresacji (związane z BE#) l Błąd parzystości podczas cyklu adresowego Odpowiedz mastera na rozłączenie permanentne l Generacja przerwania (interrupt) l uaktywnienie sygnału SERR#

63 63 Błąd systemowy (sygnał SERR#) przyczyny l Błąd parzystości podczas transmisji adresu i komendy lub też podczas specjalnego (special) cyklu na magistrali l błąd parzystości podczas przesyłania danych (w zależności od drivera) l inne rodzaje błędów krytycznych.

64 64 Obsługa przerwania l Procesor przerywa pracę aktualnego zadania i składa swój stan na stos. l Procesor odczytuje wektor przerwania od układu l Procesor mnoży otrzymany wektor przez 4 (8 virtual mode) i z otrzymanego adresu odczytuje adres początku programu obsługi przerwania. l Uruchamia procedurę obsługi przerwania (driver urządzenia A) l Na początku obsługi przerwania sprawdzany jest bit statusowy wystawienia przerwania przez urządzenie A (interrupt pending bit)

65 65 Przerwanie cd. 1. Bit ustawiony (urządzenie A żąda obsługi) wykonywany jest program obsługi urządzenia A zerowany jest bit żądania obsługi w rejestrze statusowym (urządzenia A) oraz przerwanie wystawiania linii INT# 2. Bit jest nieaktywny (urządzenie A nie żąda obsługi) nie jest uruchamiany driver urządzenia A kontrola programu przekazywana jest następnemu urządzeniu. itd.

66 66 Wspomaganie cacheu przez PCI dodatkowe dwie linie 1) SBO# - Snoop Back Off l sygnał wystawiany przez PCI cache kontroler l aktywny gdy następuje odczyt danych (pamięci) które zostały zmienione ale jeszcze nie zapisane (znajdują się w cacheu tzw. Write Back i bit dirty (modified) jest ustawiony), lub l aktywny gdy następuje zapis (ale nie unieważnienie - Memory Write and Invalidate) i równocześnie dane pod tym samym adresem zostały zmienione w chacheu i nie uaktywnione.


Pobierz ppt "1 PCI - Peripherial Component Interconnect OPB - On-chip Peripherial Bus PLB Processor Local Bus by Ernest Jamro Katedra Elektroniki, AGH Kraków."

Podobne prezentacje


Reklamy Google