Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

by Ernest Jamro Katedra Elektroniki, AGH Kraków

Podobne prezentacje


Prezentacja na temat: "by Ernest Jamro Katedra Elektroniki, AGH Kraków"— Zapis prezentacji:

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

2 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 PLB magistrala wewnętrzna służąca do bardzo szybkiej komunikacji

3 Przykład magistrali PCI

4 Przykład magistrali OPB

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 Przebiegi czasowe względem sygnału zegarowego (wejście) (33MHz) Ts= 7 ns min (setup time) Th= 0ns min (hold time)

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 Magistrala PCI Sygnały są współdzielone poprzez zastosowanie buforów trójstanowych (uwaga błąd na schemacie)

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

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

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

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

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 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 Arbitraż magistrali PCI
Podobnie jest dla magistrali OPB – występują sygnały Mn_request oraz OPB_MnGrant

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

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

18 Arbitraż Magistrali OPB

19 Pojedynczy odczyt na OPB

20 Pojedynczy odczyt i zapis na OPB

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

22 Adresowanie sekwencyjne

23 Timeout Brak odpowiedzi Slave’a (OPB_xferAck) przez 16 cykli zegarowych

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

25 Arbitraż magistrali OPB dwa urządzeń Master

26 Wielokrotne pojedyncze transakcje

27 busLock przetrzymany o 1 clk za długo

28 Sygnały magistrali PCI Master

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

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

31 Sygnały magistrali PCI Target

32

33 Zapis

34

35 Stany magistrali

36 Cykl przejęcia magistrali

37 Fast Back-to-Back

38 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#)

39

40 Kontrola parzystości

41 Rejestry konfiguracyjne

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

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

44 Base Address Memory

45 Base Address (I/O)

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 PLB – Back to Back Read

48 PLB – Back to Back Write

49 PLB – 4 Line Read

50 PLB – Rozmiar transmisji

51 PLB –line read followed by 4-line write

52 Deep Address Piplining

53 4- Deep Read Piplining

54 Koniec

55 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

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

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

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

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

60 Disconnect A

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

62 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#

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

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

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 Wspomaganie cache’u przez PCI dodatkowe dwie linie
1) SBO# - Snoop Back Off sygnał wystawiany przez PCI cache kontroler aktywny gdy następuje odczyt danych (pamięci) które zostały zmienione ale jeszcze nie zapisane (znajdują się w cache’u tzw. Write Back i bit dirty (modified) jest ustawiony), lub 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 chache’u i nie uaktywnione.


Pobierz ppt "by Ernest Jamro Katedra Elektroniki, AGH Kraków"

Podobne prezentacje


Reklamy Google