Odmiany gniazd PCI. Jaka jest różnica między PCI Express a PCI? Charakterystyka magistrali PCI-E i przepustowość

Gdzie stosowane są niepalne tkaniny www.algo-textile.ru. Akcesoria do moskitier do moskitier 2-sklad.ru.

PCI i PCI-X

Magistrale PCI i PCI-X

Wstęp

Magistrale PCI i PCI-X to główne magistrale rozszerzeń we/wy w nowoczesnych komputerach; do podłączenia kart wideo są one uzupełnione portem AGP. Magistrale rozszerzeń we/wy (szyna rozszerzeń) zapewniają łączność na poziomie systemu: umożliwiają adapterom i kontrolerom peryferyjnym bezpośrednie korzystanie z zasobów systemu komputerowego - pamięci i przestrzeni adresowej we/wy, przerwań, bezpośredniego dostępu do pamięci. Urządzenia podłączone do magistrali rozszerzeń mogą same sterować tymi magistralami, uzyskując dostęp do innych zasobów komputera. Magistrale rozszerzeń są realizowane mechanicznie jako gniazda (złącza gniazdowe) lub złącza pinowe; Charakteryzują się krótką długością przewodów, czyli mają charakter czysto lokalny, co pozwala im osiągać duże prędkości robocze. Magistrale te mogą nie być wyprowadzane do złączy, ale służą do łączenia urządzeń na zintegrowanych płytach głównych.

Początkowo magistrala PCI została wprowadzona jako rozszerzenie (magistrala mezzanine) do systemów z magistralą ISA. Został opracowany w oparciu o Procesory Pentium, ale także dobrze współpracowało z procesorami i486. Później PCI na jakiś czas stała się magistralą centralną: została podłączona do magistrali procesora za pomocą mostka o wysokiej wydajności („mostek północny”), który był częścią chipsetu płyty głównej. Pozostałe magistrale rozszerzeń I/O (ISA/EISA lub MCA), a także lokalna magistrala X-BUS typu ISA oraz interfejs LPC, do którego podłączone są chipy płyty systemowej (ROM BIOS, kontrolery przerwań, klawiatury, DMA , porty COM i LPT, dysk twardy i inne „drobiazgi”), podłączone do magistrali PCI poprzez mostek „południowy”. W nowoczesnych płytach głównych o architekturze „hubowej” magistrala PCI została przeniesiona na peryferie, nie naruszając przy tym przepustowości jej kanału komunikacyjnego z procesorem i pamięcią, ale też bez obciążania urządzeń na inne magistrale ruchem tranzytowym.

Magistrala PCI jest synchroniczna - wszystkie sygnały wychwytywane są przez dodatnie zbocze (zbocze) sygnału CLK. Za nominalną częstotliwość synchronizacji przyjmuje się 33,3 MHz, w razie potrzeby można ją obniżyć. Począwszy od wersji PCI 2.1 możliwe jest zwiększenie częstotliwości do 66,6 MHz, jeśli wszystkie urządzenia na magistrali „zgodzą się”. W PCI-X częstotliwość może osiągnąć 133 MHz.

PCI wykorzystuje równoległą multipleksowaną magistralę adresową/daną (AD) o typowej szerokości 32 bitów. Specyfikacja określa możliwość rozszerzenia głębi bitowej do 64 bitów; Wersja PCI-X 2.0 definiuje również opcję magistrali 16-bitowej. Przy częstotliwości magistrali 33 MHz teoretyczna przepustowość sięga 132 MB/s dla magistrali 32-bitowej i 264 MB/s dla magistrali 64-bitowej; przy częstotliwości synchronizacji 66 MHz – odpowiednio 264 MB/s i 528 MB/s. Jednak te wartości szczytowe są osiągane tylko podczas transmisji pakietów: ze względu na obciążenie protokołu rzeczywista średnia przepustowość magistrali jest niższa.

Charakterystykę porównawczą magistrali PCI i PCI-X oraz innych magistral rozszerzeń komputerów kompatybilnych z PC podano w tabeli. 1.1. Autobus ISA z komputery osobiste odchodzi, ale utrzymuje swoją pozycję w komputerach przemysłowych i wbudowanych, zarówno w tradycyjnej wersji slotowej, jak i w wersji „sandwich” PC/104. Gniazda PCMCIA z magistralami PC Card i Card Bus są szeroko stosowane w komputerach przenośnych. Magistrala LPC to nowoczesny, tani sposób podłączenia do płyty głównej urządzeń niewymagających dużych zasobów.

Opona Szczytowa przepustowość MB/s kanały DMA Mistrz autobusu ACFG Szerokość danych Rozmiar adresu Częstotliwość MHz
ISA-8 4 3 - - 8 20 8
ISA-16 8
7
+
-
16
24
8
LPC 6,7
7
+
-
8/16/32
32
33
EISA
33,3 7 +
+
32
32
8,33
MCA-16
16
-
+
+
16
24
10
MCA-32
20
-
+
+
32
32
10
VLB
132
-
(+)
-
32/64
32
33-50(66)
PCI
133-533
-
+
+
32/64
32/64
33/66
PCI-X
533-4256
-
+
+
16/32/64
32/64
66-133
PCI Express
496-15872
-
+
+
1/2/4/8/12/16/32
32/64
2,5 GHz
AGP 1x/2x/4x/8x
266/533/1066/2132
-
+
+
32
32/64
66
PCMCIA
10/22
+
-
+
8/16
26
10
Autobus karciany 132 - + + 32 32 33

ACFG1-Obsługuje automatyczną konfigurację. W przypadku ISA PnP jest późnym dodatkiem wdrażanym przez adaptery i oprogramowanie.

Protokół sygnalizacji magistrali PCI i PCI-X

Wymiana informacji na magistrali PCI i PCI-X zorganizowana jest w formie transakcji – logicznie zakończonych operacji wymiany. Typowa transakcja obejmuje dwa urządzenia: inicjator wymiany, zwany także urządzeniem głównym, oraz urządzenie docelowe, zwane także urządzeniem podrzędnym. Zasady interakcji pomiędzy tymi urządzeniami określa protokół magistrali PCI. Urządzenie może monitorować transakcje w autobusie nie będąc uczestnikiem (bez wprowadzania jakichkolwiek sygnałów); Termin Snooping odnosi się do trybu śledzenia. Istnieje szczególny rodzaj transakcji (Cykl Specjalny) – rozgłoszenie, w którym inicjator nie wchodzi w interakcję z żadnym urządzeniem zgodnie z protokołem. Każda transakcja wykonuje jedno polecenie, zazwyczaj odczytuje lub zapisuje dane. podany adres. Transakcja rozpoczyna się od fazy adresu, w której inicjator określa polecenie i adres docelowy. Mogą następować fazy danych, w których jedno urządzenie (źródło danych) umieszcza dane na magistrali, a drugie (ujście) je odczytuje. Transakcje składające się z wielu faz danych nazywane są transakcjami wsadowymi. Istnieją również transakcje pojedyncze (z jedną fazą danych). Transakcja może zakończyć się bez faz danych, jeśli urządzenie docelowe (lub inicjator) nie jest gotowe do wymiany. Magistrala PCI-X dodała fazę atrybutów, w której przesyłane są dodatkowe informacje o transakcji.

Protokół sygnalizacji magistrali PCI i PCI-X

Skład i przeznaczenie sygnałów interfejsu magistrali przedstawiono w poniższej tabeli. Stany wszystkich linii sygnałowych odbierane są przez dodatnie zbocze CLK i momenty te w dalszym opisie oznaczają cykle magistrali (oznaczone na rysunkach pionowymi liniami przerywanymi). W różnych momentach te same linie sygnałowe są sterowane przez różne urządzenia magistrali i dla prawidłowego (bezkonfliktowego) „przekazania uprawnień” wymagany jest okres czasu, w którym żadne urządzenie nie steruje linią. Na wykresach czasowych zdarzenie to – tzw. „piruet” (zawrócenie) – jest oznaczone parą półkolistych strzałek.

Tabela. Sygnały magistrali PCI

Sygnał
Zamiar
OGŁOSZENIE Adres/Dane - multipleksowana magistrala adresowa/danych. Na początku transakcji przekazywany jest adres, w kolejnych cyklach – dane
C/B# Command/Byte Enable - polecenie/zezwolenie na dostęp do bajtów. Polecenie określające typ następnego cyklu magistrali jest określane w fazie adresu za pomocą czterobitowego kodu
RAMA#
Rama. Wprowadzenie sygnału oznacza początek transakcji (faza adresowa), usunięcie sygnału oznacza, że ​​kolejny cykl przesyłania danych jest ostatnim w transakcji
ROZWÓJ#
Device Select – urządzenie zostaje wybrane (odpowiedź centrum kontroli na skierowaną do niego transakcję)
IRDY#
Inicjator Gotowy - gotowość urządzenia nadrzędnego do wymiany danych
TRDY#
Target Ready - gotowość centrum sterowania do wymiany danych
ZATRZYMYWAĆ SIĘ#
Żądanie od procesora do mastera, aby zatrzymać bieżącą transakcję
ZAMEK#
Sygnał blokady magistrali zapewniający nieprzerwaną pracę. Używany przez most, który wymaga wielu transakcji PCI w celu wykonania pojedynczej operacji
nr zapytania
Żądanie - żądanie od urządzenia nadrzędnego przejęcia magistrali
GNT#
Grant - przekazanie sterowania magistralą masterowi
PAR
Parzystość - wspólny bit parzystości dla linii AD i C/BE#
PERR#
Parity Error — sygnał błędu parzystości (dla wszystkich cykli z wyjątkiem specjalnych). Generowane przez dowolne urządzenie, które wykryje błąd
PME#
Zdarzenie zarządzania energią - sygnał o zdarzeniach powodujących zmianę trybu zużycia ( dodatkowy sygnał, wprowadzone w PCI 2.2)
CLKRUN#
Zegar działa – magistrala pracuje z nominalną częstotliwością zegara. Usunięcie sygnału oznacza spowolnienie lub zatrzymanie synchronizacji w celu zmniejszenia zużycia (dla aplikacji mobilnych)
numer PRSN
Obecny - wskaźniki obecności płytki kodujące żądanie zużycia energii. Na karcie rozszerzeń jedna lub dwie linie LED są podłączone do magistrali GND, co jest wykrywane przez płytę główną
RST#
Resetuj - resetuje wszystkie rejestry do stanu początkowego (kliknij przycisk „Resetuj”.
i przy ponownym uruchomieniu)
IDSEL
Inicjalizacja Device Select - wybór urządzenia w cyklach odczytu i zapisu konfiguracji; Na cykle te reaguje urządzenie wykrywające wysoki poziom sygnału na tej linii
SERR#
Błąd systemu - błąd systemu. Błąd adresu lub parzystości danych w specjalnej ramce lub inny katastrofalny błąd wykryty przez urządzenie. Aktywowane przez dowolne urządzenie PCI i wywołuje NMI
REQ64#
Żądanie 64-bitowego - żądanie wymiany 64-bitowej. Sygnał jest wprowadzany przez 64-bitowy inicjator i pokrywa się w czasie z sygnałem FRAME#. Podczas zakończenia resetowania (sygnał RST#) sygnalizuje urządzeniu 64-bitowemu, że jest ono podłączone do magistrali 64-bitowej. Jeśli urządzenie 64-bitowe nie wykryje tego sygnału, musi ponownie skonfigurować się do trybu 32-bitowego, wyłączając obwody bufora wysokobajtowego
POTWIERDŹ64#
Potwierdzenie wymiany 64-bitowej. Sygnał jest wprowadzany przez 64-bitowy procesor, który rozpoznał jego adres, jednocześnie z DEVSEL#. Brak potwierdzenia zmusi inicjatora do przeprowadzenia wymiany w wersji 32-bitowej
INTA#, INTB#, INTC#, INTD#
Przerwanie A, B, C, D - linie żądania przerwania, czułość poziomu, poziom aktywny - niski, co pozwala na separację (wspólność) linii
CLK
Zegar — częstotliwość zegara magistrali. Powinno mieścić się w przedziale 20-33 MHz, począwszy od PCI 2.1 może wynosić do 66 MHz, w PCI-X do 100 i 133 MHz
M66EN
66MHz Enable - rozdzielczość częstotliwości taktowania do 66 MHz (na kartach 33 MHz jest uziemione, przy 66 MHz jest wolne)
PCIXCAP (38B)

Możliwości PCI-X: na płytach PCI - uziemione, na PCI-X133 podłączone do masy przez kondensator 0,01 µF, na PCI-X66 - równoległym obwodem RC 10 kOhm, 0,01 µF.

SDONE
Snoop Done – sygnalizuje zakończenie cyklu podglądu dla bieżącej transakcji. Niski poziom wskazuje, że cykl monitorowania spójności pamięci i pamięci podręcznej jest niekompletny. Sygnał opcjonalny, używany tylko przez urządzenia magistralowe z pamięcią podręczną. Przestarzałe od wersji PCI 2.2
SBO#
Snoop Backoff - bieżący dostęp do pamięci abonenta magistrali kończy się na zmodyfikowanej linii pamięci podręcznej. Sygnał opcjonalny, używany tylko przez abonentów magistrali z pamięcią podręczną podczas algorytmu zapisu zwrotnego. Przestarzałe od wersji PCI 2.2
SMBCLK
SMBus Clock - sygnał zegarowy magistrali SMBus (interfejs I2C). Wprowadzony od PCI 2.3
SMBDAT
SMBus Data - dane szeregowe magistrali SMBus (interfejs I2C). Wprowadzony od PCI 2.3
TCK
Zegar testowy - synchronizacja interfejsu testowego JTAG
TDI
Wejście danych testowych – dane wejściowe interfejsu testowego JTAG
TDO
Wyjście danych testowych – dane wyjściowe interfejsu testowego JTAG
TMS
Test Wybierz tryb— wybór trybu dla interfejsu testowego JTAG
TRST
Resetuj logikę testu - resetuje logikę testu

W danym momencie magistralą może sterować tylko jedno urządzenie nadrzędne, które otrzymało do tego uprawnienie od arbitra. Każde urządzenie główne ma parę sygnałów – REQ# żądający sterowania magistralą i GNT# potwierdzający, że sterowanie magistralą zostało przyznane. Urządzenie może rozpocząć transakcję (ustawić sygnał FRAME#) dopiero po jego odebraniu sygnał aktywny GNT# i poczekaj, aż autobus przestanie kursować. Należy pamiętać, że w oczekiwaniu na odpoczynek arbiter może „zmienić zdanie” i przekazać kontrolę nad autobusem innemu urządzeniu o wyższym priorytecie. Usunięcie sygnału GNT# uniemożliwia urządzeniu rozpoczęcie kolejnej transakcji, a pod pewnymi warunkami (patrz niżej) może wymusić na nim zakończenie bieżącej transakcji. Arbitrażem wniosków o korzystanie z autobusu zajmuje się specjalny węzeł – arbiter, będący częścią mostu łączącego ten autobus z centrum. Schemat priorytetów (stały, okrężny, łączony) jest ustalany przez programowanie arbitra.

Do adresów i danych używane są wspólne multipleksowane linie AD. Cztery multipleksowane linie C/BE zapewniają kodowanie instrukcji w fazie adresowej i rozdzielczość bajtów w fazie danych. W transakcjach zapisu linie C/BE pozwalają na wykorzystanie bajtów danych jednocześnie z ich obecnością na szynie AD, w transakcjach odczytu sygnały te odnoszą się do bajtów następnej fazy danych. W fazie adresowania (start transakcji) master aktywuje sygnał FRAME#, transmituje adres docelowy na szynie AD oraz przekazuje informację o rodzaju transakcji (polecenie) liniami C/BE#. Adresowane urządzenie docelowe odpowiada sygnałem DEVSEL#. Urządzenie master sygnalizuje swoją gotowość do wymiany danych sygnałem IRDY#, gotowość tę można ustawić przed otrzymaniem DEVSEL#. Gdy urządzenie docelowe będzie gotowe do wymiany danych, ustawi sygnał TRDY#. Dane przesyłane są magistralą AD tylko wtedy, gdy jednocześnie występują sygnały IRDY# i TRDY#. Korzystając z tych sygnałów, urządzenie główne i docelowe koordynują swoje prędkości, wprowadzając stany oczekiwania. Poniższy rysunek przedstawia diagram czasowy centrali, w której zarówno urządzenie główne, jak i docelowe wchodzą w zegary oczekiwania. Gdyby obaj na koniec fazy adresowania wprowadzili gotowe sygnały i nie usunęli ich do końca wymiany, wówczas w każdym cyklu zegara po fazie adresowania przesyłane byłyby 32 bity danych, co zapewniłoby maksymalną wydajność wymiany. W transakcjach odczytu po fazie adresowania potrzebny jest dodatkowy zegar na piruet, podczas którego inicjator przestaje kontrolować linię AD; Urządzenie docelowe będzie mogło przejąć kontrolę nad magistralą AD dopiero w następnym cyklu zegara. W transakcji zapisu piruet nie jest potrzebny, ponieważ inicjator przesyła dane.

Na magistrali PCI wszystkie transakcje są traktowane jako serie: każda transakcja rozpoczyna się od fazy adresowania, po której może nastąpić jedna lub więcej faz danych. Liczba faz danych w pakiecie nie jest jednoznacznie wskazana, ale w takcie zegara ostatniej fazy danych urządzenie nadrzędne po wprowadzeniu sygnału IRDY# usuwa sygnał FRAME#. W transakcjach pojedynczych sygnał FRAME# jest aktywny tylko przez jeden cykl zegara. Jeżeli urządzenie nie obsługuje transakcji wsadowych w trybie slave, to musi zażądać zakończenia transakcji wsadowej w pierwszej fazie danych (poprzez podanie sygnału STOP# jednocześnie z TRDY#). W odpowiedzi na to master zakończy daną transakcję i będzie kontynuował wymianę kolejnej transakcji z kolejną wartością adresu. Po końcowej fazie danych urządzenie master usuwa sygnał IRDY#, a magistrala przechodzi w stan jałowy (Idle) – oba sygnały: FRAME# i IRDY# są w stanie pasywnym.

Inicjator może rozpocząć kolejną transakcję bez przerwy, ustawiając FRAME# jednocześnie z usunięciem IRDY#. Takie szybko sąsiadujące transakcje (Fast Back-to-Back) mogą być adresowane albo do jednego, albo do różnych urządzeń docelowych. Pierwszy typ szybkich, sąsiadujących transakcji jest obsługiwany przez wszystkie urządzenia PCI będące urządzeniami docelowymi. Obsługa drugiego typu transakcji sąsiadujących (taka obsługa jest opcjonalna) sygnalizowana jest bitem 7 rejestru stanu. Inicjator może (jeśli może) używać szybkich, ciągłych transakcji z różnymi urządzeniami (zezwolenie określa bit 9 rejestru poleceń) tylko wtedy, gdy wszyscy agenci magistrali pozwalają na szybkie wywołania. Podczas wymiany danych w trybie PCI-X nie są dozwolone szybkie, ciągłe transakcje.

Protokół magistrali zapewnia niezawodność wymiany – urządzenie nadrzędne zawsze otrzymuje informację o przetworzeniu transakcji przez urządzenie docelowe. Sposobem na zwiększenie niezawodności wymiany jest zastosowanie kontroli parzystości: linie AD i C/BE# zarówno w fazie adresowej, jak i w fazie danych są chronione bitem parzystości PAR (liczba ustawionych bitów tych linii, włączając PAR, musi być parzysta). Rzeczywista wartość PAR pojawia się na magistrali z opóźnieniem jednego cyklu zegara w stosunku do linii AD i C/BE#. W przypadku wykrycia błędu urządzenie generuje sygnał PERR# (przesunięty o jeden zegar po pojawieniu się na magistrali prawidłowego bitu parzystości). Przy obliczaniu parzystości podczas transmisji danych uwzględniane są wszystkie bajty, łącznie z bajtami nieprawidłowymi (oznaczonymi wysokim sygnałem C/BEx#). Stan bitów, nawet w nieprawidłowych bajtach danych, musi pozostać stabilny podczas fazy danych.

Każda transakcja na magistrali musi zostać zakończona zgodnie z planem lub przerwana, a magistrala musi przejść w stan spoczynku (sygnały FRAME# i IRDY# są pasywne). Zakończenie transakcji jest inicjowane przez urządzenie główne lub inicjowane przez urządzenie docelowe.

Kapitan może zakończyć transakcję na jeden z następujących sposobów:

  • zakończenie - normalne zakończenie po zakończeniu wymiany danych;
  • time-out — zakończenie po upływie limitu czasu. Występuje, gdy kontrola magistrali urządzenia głównego zostanie usunięta podczas transakcji (poprzez usunięcie sygnału GNT#) i wygaśnie licznik czasu opóźnienia. Może się to zdarzyć, jeśli adresowane urządzenie docelowe jest nieoczekiwanie wolne lub zaplanowana transakcja jest zbyt długa. Krótkie transakcje (z jedną lub dwiema fazami danych), nawet jeśli sygnał GNT# zostanie usunięty i uruchomiony zostanie licznik czasu, zostaną zakończone normalnie;
  • master-Abort - Przerywa transakcję, gdy urządzenie master nie otrzyma odpowiedzi od urządzenia docelowego (sygnał DEVSEL#) w określonym czasie.

Transakcja może zostać zakończona z inicjatywy urządzenia docelowego; W tym celu może wprowadzić sygnał STOP#. Możliwe są trzy rodzaje zakończenia transakcji:

  • retry - powtórzenie, wprowadzenie sygnału STOP# z pasywnym sygnałem TRDY# przed pierwszą fazą danych. Taka sytuacja ma miejsce, gdy urządzenie docelowe ze względu na obciążenie wewnętrzne nie ma czasu na wygenerowanie pierwszych danych w terminie (16 cykli zegara). Przerwanie ponownej próby jest wskazówką dla urządzenia głównego, aby ponownie uruchomić tę samą transakcję;
  • rozłączenie - rozłączenie, wprowadzenie sygnału STOP# w trakcie lub po pierwszej fazie danych. Jeżeli zostanie wprowadzony sygnał STOP# przy aktywnym sygnale TRDY# kolejnej fazy danych, wówczas dane te zostaną przesłane i transakcja zostanie zakończona. Jeżeli zostanie ustawiony sygnał STOP# przy stanie pasywnym sygnału TRDY#, wówczas transakcja zostanie zrealizowana bez przesłania danych kolejnej fazy. Rozłączenie następuje, gdy urządzenie docelowe nie jest w stanie wysłać lub odebrać w odpowiednim czasie kolejnej porcji danych pakietowych. Rozłączenie jest sygnałem dla mastera, aby wznowił tę transakcję, ale ze zmodyfikowanym adresem początkowym;
  • target-abort - awaria, wprowadzenie sygnału STOP# jednocześnie z usunięciem sygnału DEVSEL# (w poprzednich przypadkach, gdy pojawiał się sygnał STOP#, sygnał DEVSEL# był aktywny). Następnie dane nie są już przesyłane. Odmowa następuje, gdy urządzenie docelowe wykryje błąd krytyczny lub inną sytuację, w wyniku której nie będzie już w stanie obsłużyć danego żądania (w tym nieobsługiwanego polecenia).

Korzystanie z trzech typów kończenia transakcji nie jest konieczne w przypadku wszystkich urządzeń docelowych, ale każde urządzenie główne powinno być przygotowane na zakończenie transakcji z dowolnego z powyższych powodów.

Typ zakończenia ponawiania próby służy do organizowania opóźnionych transakcji. Transakcje odroczone są używane tylko przez powolne urządzenia docelowe i mosty PCI podczas tłumaczenia transakcji na inną magistralę. Przerywając (w przypadku inicjatora) transakcję z warunkiem ponowienia, urządzenie docelowe wewnętrznie wykonuje transakcję. Kiedy inicjator powtórzy tę transakcję (wyda to samo polecenie z tym samym adresem i tym samym zestawem sygnałów C/BE# w fazie danych), urządzenie docelowe (lub most) będzie już miało gotowy wynik (odczyt danych lub postęp zapisu status), że szybko powróci do inicjatora. Wynik oczekującej transakcji wykonanej przez dane urządzenie musi być przechowywany przez urządzenie lub most do czasu zażądania wyników przez inicjatora. Może jednak „zapomnieć” powtórzyć transakcję (z powodu nietypowych sytuacji). Aby uniknąć przepełnienia bufora przechowywania wyników, urządzenie musi odrzucić te wyniki. Upuszczenie można wykonać bez skutków ubocznych, jeśli transakcja została odroczona do pamięci, która umożliwia pobieranie z wyprzedzeniem (z atrybutem prefetchable, patrz poniżej). Ogólnie rzecz biorąc, innych typów transakcji nie można bezkarnie odrzucać (integralność danych może zostać naruszona), w przypadku nich odrzucenie jest dozwolone dopiero po bezskutecznym oczekiwaniu na powtórzenie przez 215 cykli magistrali (po uruchomieniu licznika czasu odrzucenia). Urządzenie może zgłosić ten wyjątek swojemu sterownikowi (lub całemu systemowi).

Inicjator transakcji może zażądać wyłącznego korzystania z magistrali PCI na czas operacji wymiany wymagającej wielu transakcji magistrali. Na przykład, jeśli procesor wykonuje instrukcję modyfikacji danych w komórce pamięci należącej do urządzenia PCI, musi odczytać dane z urządzenia, zmodyfikować je w swojej jednostce ALU i zwrócić wynik do urządzenia. Aby transakcje innych inicjatorów nie zakłócały tej operacji (co mogłoby prowadzić do naruszenia integralności danych), most główny wykonuje ją jako operację blokowaną - przez cały czas trwania operacji dostarczany jest sygnał magistrali LOCK#. Sygnał ten nie jest w żaden sposób wykorzystywany (ani wytwarzany) przez konwencjonalne urządzenia PCI (nie mosty); jest używany wyłącznie przez mosty do kontrolowania arbitrażu.

Przerwania sprzętowe w komputerach kompatybilnych z PC

Urządzenia PCI mają możliwość sygnalizowania zdarzeń asynchronicznych za pomocą przerwań. Na magistrali PCI dostępne są cztery typy sygnalizacji przerwań:

  • tradycyjna sygnalizacja przewodowa poprzez linie INTx;
  • przewodowa sygnalizacja zdarzeń związanych z zarządzaniem energią poprzez linię PME#;
  • sygnalizacja za pomocą komunikatów - MSI;
  • sygnalizując błąd krytyczny na linii SERR#.

W tym rozdziale omówiono każdy z tych typów sygnalizacji, a także ogólny obraz obsługi przerwań sprzętowych w komputerach kompatybilnych z PC.

Przerwania sprzętowe w komputerach kompatybilnych z PC

Przerwania sprzętowe zapewniają reakcję procesora na zdarzenia, które występują asynchronicznie w odniesieniu do wykonywanego kodu programu. Przypomnijmy, że przerwania sprzętowe dzielą się na maskowalne i niemaskowalne. Procesor x86 po sygnale przerwania wstrzymuje wykonywanie bieżącego strumienia instrukcji, zapisując stan (flagi i adres zwrotny) na stosie i wykonuje procedurę obsługi przerwania. Konkretną procedurę przetwarzania wybiera się z tablicy przerwań poprzez wektor przerwań – jednobajtowy numer elementu w tej tablicy. Wektor przerwań jest dostarczany do procesora na różne sposoby: w przypadku przerwań niemaskowalnych jest ustalany, w przypadku przerwań maskowalnych jest zgłaszany przez specjalny kontroler przerwań. Oprócz przerwań sprzętowych procesory x86 posiadają także przerwania wewnętrzne – wyjątki związane ze specjalnymi przypadkami wykonania instrukcji oraz przerwania programowe. W przypadku wyjątków wektor jest określany przez sam warunek specjalny, a firma Intel rezerwuje pierwsze 32 wektory (0-31 lub 00-1Fh) na wyjątki. W przerwaniach programowych numer wektora jest zawarty w samej instrukcji (przerwania programowe to po prostu specyficzny sposób wywoływania procedur według numeru, z rejestrem flagowym przechowywanym najpierw na stosie). Wszystkie te przerwania wykorzystują ten sam zestaw 256 możliwych wektorów. Historycznie rzecz biorąc, wektory używane do przerwań sprzętowych pokrywają się z wektorami wyjątków i wektorami przerwań programowych używanych w wywołaniach serwisowych BIOS-u i DOS. Zatem dla pewnej liczby wektorów procedura, do której odwołuje się tablica przerwań, musi najpierw zawierać kod programu, który określa, dlaczego została wywołana: z powodu wyjątku, przerwania sprzętowego lub w celu wywołania jakiejś usługi systemowej. Zatem procedura faktycznie zapewniająca reakcję procesora na to samo zdarzenie asynchroniczne zostanie wywołana dopiero po serii działań mających na celu identyfikację źródła przerwania. Zauważamy tutaj również, że ten sam wektor przerwań może być używany przez kilka urządzeń peryferyjnych – jest to tzw. współdzielone wykorzystanie przerwań, które szczegółowo omówiono poniżej.

Wywoływanie procedury obsługi przerwań w trybie rzeczywistym i chronionym procesora różni się znacząco:

  • w trybie rzeczywistym tablica przerwań zawiera 4-bajtowe wskaźniki dalekie (segment i przesunięcie) do odpowiednich procedur wywoływanych przez wywołanie dalekie (Call Far z wcześniej zapisanymi flagami). Rozmiar (256 × 4 bajty) i pozycja tabeli (zaczynając od adresu 0) są stałe;
  • W trybie chronionym (a w jego szczególnym przypadku w trybie V86) tabela zawiera 8-bajtowe deskryptory przerwań, którymi mogą być bramki przerwań, bramki pułapek lub bramki zadań. Rozmiar tablicy można zmniejszyć (maksymalnie - 256 × 8 bajtów), zmienić położenie tablicy (określane przez zawartość rejestru IDT procesora). Kod obsługi przerwania musi być co najmniej tak samo uprzywilejowany jak kod przerwanego zadania (w przeciwnym razie zostanie uruchomiony wyjątek bezpieczeństwa). Z tego powodu procedury obsługi przerwań muszą działać na poziomie jądra systemu operacyjnego (na zerowym poziomie uprawnień). Zmiana poziomu uprawnień podczas wywoływania procedury obsługi powoduje dodatkowy czas spędzony na ponownym definiowaniu stosu. Przerwania powodujące przełączanie zadań (poprzez Task Gate) poświęcają dużo czasu na przełączanie kontekstu - wyładowywanie rejestrów procesora do segmentu stanu starego zadania i ładowanie ich z segmentu stanu nowego.

Numery wektorów używane dla przerwań sprzętowych w systemach operacyjnych w trybie chronionym różnią się od tych używanych w systemach operacyjnych w trybie rzeczywistym, aby zapewnić, że nie kolidują z wektorami używanymi dla wyjątków procesora.

Procesor zawsze odpowiada na przerwanie niemaskowalne (NMI) (jeśli obsługa poprzedniego NMI została zakończona); To przerwanie odpowiada stałemu wektorowi 2. Przerwania niemaskowalne w komputerach PC służą do sygnalizowania krytycznych błędów sprzętowych. Sygnał do linii NMI pochodzi z obwodów sterujących pamięcią (parzystość lub ECC), z linii sterujących magistrali ISA (IOCHK) i magistrali PCI (SERR#). Sygnał NMI blokowany jest przed wejściem do procesora poprzez ustawienie bitu 7 portu 070h na 1, poszczególne źródła są włączane i identyfikowane poprzez bity portu 061h:

  • bit 2 R/W - ERP - zezwolenie na kontrolę pamięci RAM i sygnału SERR# magistrali PCI;
  • bit 3 R/W - EIC - włączenie sterowania magistralą ISA;
  • bit 6 R - IOCHK - błąd sterowania na magistrali ISA (sygnał IOCHK#);
  • bit 7 R - PCK - Błąd parzystości RAM lub sygnał SERR# na magistrali PCI.

Reakcję procesora na przerwania maskowalne można opóźnić poprzez zresetowanie jego wewnętrznej flagi IF (instrukcja CLI wyłącza przerwania, instrukcja STI włącza). Przerwania maskowalne służą do sygnalizowania zdarzeń w urządzeniach. Gdy wystąpi zdarzenie wymagające odpowiedzi, adapter urządzenia (kontroler) generuje żądanie przerwania, które jest wysyłane na wejście kontrolera przerwań. Zadaniem kontrolera przerwań jest dostarczenie żądania przerwania do procesora i poinformowanie wektora, według którego należy dokonać wyboru procedura programu obsługa przerwań.

Procedura przerwania urządzenia musi wykonywać czynności w celu obsługi urządzenia, w tym resetować swoje żądanie, aby umożliwić mu reakcję na kolejne zdarzenia i wysyłać polecenia zakończenia do kontrolera przerwań. Wywołując procedurę przetwarzającą, procesor automatycznie przechowuje wartość wszystkich flag na stosie i resetuje flagę IF, co wyłącza przerwania maskowalne. Po powrocie z tej procedury (przy pomocy instrukcji IRET) procesor odtwarza zapisane flagi wraz z ustawionym (przed przerwaniem) IF, co ponownie włącza przerwania. Jeżeli podczas działania procedury obsługi przerwań wymagana jest reakcja na inne przerwania (wyższy priorytet), to w procedurze obsługi musi znajdować się instrukcja STI. Jest to szczególnie prawdziwe w przypadku psów długodystansowych; tutaj instrukcję STI należy wprowadzić możliwie najwcześniej, zaraz po sekcji krytycznej (nieprzerwanej). Następne przerwania takie same lub więcej niski poziom kontroler przerwań priorytetowych będzie działał dopiero po otrzymaniu polecenia przerwania EOI (End Of Interrupt).

Komputery kompatybilne z IBM PC używają dwóch głównych typów kontrolerów przerwań:

  • PIC (Peripheral Interrupt Controller) to peryferyjny kontroler przerwań, oprogramowanie kompatybilne z „historycznym” kontrolerem 8259A, stosowanym w pierwszych modelach IBM PC. Od czasów IBM PC/AT zastosowano parę kaskadowych układów PIC, co umożliwia obsługę do 15 linii żądań przerwań;
  • APIC (Advanced Peripheral Interrupt Controller) to zaawansowany kontroler przerwań peryferyjnych wprowadzony do obsługi systemów wieloprocesorowych w komputerach opartych na procesorach 4-5 generacji (486 i Pentium) i jest nadal używany w późniejszych modelach procesorów. Oprócz obsługi konfiguracji wieloprocesorowych, nowoczesny interfejs APIC umożliwia zwiększenie liczby dostępnych linii przerwań i obsługę żądań przerwań z urządzeń PCI przesyłanych za pośrednictwem silnika komunikatów (MSI). Komputer wyposażony w kontroler APIC musi mieć możliwość pracy w trybie zgodnym ze standardową parą PIC. Tryb ten jest aktywowany przez reset sprzętowy (i włączenie zasilania), co pozwala na korzystanie ze starych aplikacji OS i MS DOS, które nie obsługują APIC i wieloprocesorowości.

Tradycyjny schemat generowania żądań przerwań przy użyciu pary PIC pokazano na poniższym rysunku.

Wejścia kontrolera przerwań odbierają żądania z urządzeń systemowych (klawiatura, zegar systemowy, zegar CMOS, koprocesor), kontrolerów peryferyjnych na płycie głównej i kart rozszerzeń. Tradycyjnie wszystkie linie żądań są niezajęte wymienione urządzenia, są obecne na wszystkich gniazdach magistrali ISA/EISA. Linie te są oznaczone jako IRQx i mają wspólny cel (patrz tabela poniżej). Niektóre z tych linii są przydzielone do magistrali PCI. Tabela pokazuje również priorytety przerwań - żądania są ułożone w kolejności malejącej. Numery wektorów odpowiadające liniom żądań sterownika, system priorytetów i niektóre inne parametry są ustawiane programowo podczas inicjalizacji sterowników. Te podstawowe ustawienia pozostają tradycyjne pod względem zgodności oprogramowania, ale różnią się między systemami operacyjnymi działającymi w trybie rzeczywistym i w trybie chronionym. Na przykład w systemie operacyjnym Podstawowy system Windows wektory dla kontrolerów master i slave wynoszą odpowiednio 50h i 58h.

Imię (numer 1) wektor 2 wektor 3 Kontroler/maska Opis
NMI 02h


IRQ0 08h 50 godz
#1/1 godz
Sterowanie kanałami, parzystość pamięci (w XT - koprocesor)
IRQ1 09h 51 godz
#1/2h
Klawiatura
przerwanie2 0Ach 52 godz
#1/4h
XT - rezerwa, AT - niedostępny (podłączona kaskada IRQ8-IRQ15)
IRQ8 70 godz
58h
#2/1h
CMOS RTC – Zegar czasu rzeczywistego
IRQ9 71 godz
59h
#2/2h
rezerwa
IRQ10 72 godz
5Ach
#2/4h
rezerwa
IRQ11 73 godz
5Bh
#2/8h
rezerwa
IRQ12 74h
5 rozdz
#2/10h
Mysz PS/2 (rezerwa)
IRQ13 75 godz
5Dh
#2/20h
Koprocesor matematyczny
IRQ14 76 godz
5Ech
#2/40h
HDC - kontroler dysku twardego
IRQ15 77 godz
5Fh
#2/80h
rezerwa
IRQ3 0Bh
52 godz
#1/4h
COM2, COM4
IRQ4 0Ch
53 godz
#1/10 godz
COM1, COM3
IRQ5I 0Dh
54h
#1/20h
XT - HDC, AT - LPT2, Dźwięk (rezerwa)
IRQ6 0Ech
55 godz
#1/40h
FDC - sterownik napędu pływakowego
IRQ7 0Fh
56 godz
#1/80h
LPT1 - drukarka

*1 Żądania przerwania 0, 1, 8 i 13 nie są wysyłane do magistrali rozszerzeń.
*2 Liczby wektorów są podawane podczas pracy w trybie procesora rzeczywistego.
*3 Numery wektorów są wskazane podczas pracy w systemie operacyjnym Windows.

Każde urządzenie wymagające przerwań do obsługi swojego działania musi mieć przypisany własny numer przerwania. Przypisanie numerów przerwań odbywa się z dwóch stron: po pierwsze, adapter wymagający przerwań musi być skonfigurowany do korzystania z określonej linii magistrali (za pomocą zworek lub oprogramowania). Po drugie, oprogramowanie obsługujące adapter musi zostać poinformowane o używanym numerze wektora. System PnP dla magistrali ISA i PCI może brać udział w procesie przydzielania przerwań, a specjalne parametry CMOS Setup służą do rozdzielania linii żądań pomiędzy magistralami. Nowoczesne systemy operacyjne mają możliwość zmiany przypisania żądań dotyczących alokacji dokonywanych za pomocą konfiguracji CMOS.

Po skonfigurowaniu systemu przerwań (inicjalizacji kontrolera przerwań, przypisaniu linii żądań do urządzeń i ustawieniu wskaźników do procedur przetwarzania) maskowalne przerwania sprzętowe są przetwarzane w następujący sposób:

  • w przypadku zdarzenia przerwania urządzenie pobudza przypisaną do niego linię żądania przerwania;
  • kontroler odbiera sygnały żądania ze źródeł przerwań (sygnały IRQx) i w przypadku pojawienia się żądania niemaskowanego wysyła ogólny sygnał żądania przerwania (sygnał INTR) do procesora x86;
  • procesor odpowiadając na żądanie (gdy włączone są przerwania z flagą IF), zapisuje na stosie zawartość rejestru flag oraz adres zwrotny, po czym generuje cykl magistrali INTA (ang. Interrupt Acknowledge), który jest dostarczany do kontroler przerwań;
  • w momencie odebrania sygnału INTA kontroler przerwań rejestruje stan swoich wejść żądań - do tego momentu ich stan mógł się zmienić: mogły pojawić się nowe żądania lub żądanie z „niecierpliwego” urządzenia mogło zniknąć. Kontroler analizuje przychodzące żądania zgodnie z zaprogramowanym schematem priorytetów i wysyła do procesora wektor przerwań odpowiadający niemaskowanemu żądaniu o najwyższym priorytecie, obecnym na wejściu kontrolera w momencie wydania polecenia magistrali INTA. Jednocześnie administrator wykonuje również pewne działania zgodnie z ustaloną polityką priorytetów, biorąc pod uwagę, jaki wektor został wysłany (które z żądań trafiło do obsługi);
  • Po otrzymaniu wektora przerwania procesor wywołuje odpowiednią procedurę obsługi przerwania, korzystając z jego numeru. Jeśli dany wektor przerwań jest używany nie tylko dla przerwań sprzętowych, ale także dla wyjątków i/lub przerwań programowych, wówczas procedura musi najpierw określić, który z tych typów jest zdarzeniem. W tym celu procedura może skontaktować się z kontrolerem PIC (odczytać rejestr ISR) i przeanalizować stan rejestrów procesora. Dalsze kroki są brane pod uwagę w przypadku wykrycia przerwania sprzętowego;
  • Procedura obsługi przerwania musi zidentyfikować źródło przerwania - określić urządzenie, które je spowodowało. W przypadku wspólnego wykorzystania danego numeru żądania (a więc i wektora) przez kilka urządzeń, źródło przerwania można zidentyfikować jedynie poprzez sekwencyjny dostęp do rejestrów każdego z tych urządzeń. W takim przypadku należy wziąć pod uwagę możliwość otrzymania żądań z kilku urządzeń jednocześnie lub w trakcie przetwarzania przerwania z jednego z nich;
  • procedura musi obsłużyć urządzenie źródłowe przerwania - wykonać „użyteczne” akcje związane ze zdarzeniem, które urządzenie zasygnalizowało. Usługa ta powinna również zapewniać usunięcie sygnału żądania przerwania z tego urządzenia. W przypadku przerwań współdzielonych źródeł może być kilka i wszystkie wymagają konserwacji;
  • jeśli przetwarzanie przerwań zajmuje znaczną ilość czasu, podczas którego system musi odpowiedzieć na żądania o wyższym priorytecie, to po sekcji krytycznej w procedurze obsługi zostaje dołączona instrukcja STI, która ustawia w procesorze flagę włączenia przerwania (IF) . Od tego momentu możliwe są przerwania zagnieżdżone, przerywające pracę danego handlera inną procedurą o wyższym priorytecie;
  • Procedura obsługi przerwania musi wysłać do kontrolera polecenie zakończenia przetwarzania przerwania EOI (End Of Interrupt), dzięki czemu kontroler umożliwi kolejny odbiór sygnału z wejść obsługiwanych i o niższym priorytecie. Należy to zrobić po usunięciu sygnału przerwania z obsługiwanych urządzeń, w przeciwnym razie sterownik wyśle ​​drugie żądanie po EOI. Procedura obsługi przerwań, dla której przyszło żądanie od kontrolera podrzędnego, musi wysłać EOI zarówno do kontrolera podrzędnego, jak i głównego. Sekcja procedury obsługi począwszy od wydania instrukcji EOI do zakończenia (instrukcja IRET) musi być nieprzerywalna, to znaczy jest to sekcja krytyczna. Jeśli procedura obsługi zezwoliła na zagnieżdżone przerwania, wówczas przed wydaniem polecenia EOI musi pojawić się instrukcja CLI wyłączająca przerwania;
  • przetwarzanie przerwania kończy się instrukcją IRET, za pomocą której procesor powraca do wykonywania przerwanego przepływu instrukcji, po uprzednim pobraniu ze stosu zawartości rejestru flag. W takim przypadku przerwania sprzętowe zostaną ponownie włączone.

Sekwencja ta opisana jest w odniesieniu do zwykłego kontrolera przerwań (PIC), systemy z APIC zmieniają sposób dostarczania wektora przerwań ze sterownika do procesora, a przerwania MSI zmieniają sposób dostarczania sygnału z urządzenia do kontrolera APIC . Te niuanse opisano w kolejnych sekcjach.

informacje ogólne

Mosty PCI (mostek PCI) to specjalny sprzęt służący do łączenia magistrali PCI (i PCI-X) ze sobą oraz z innymi magistralami. Most hosta służy do podłączenia PCI do centrum komputera ( pamięć systemowa i procesor). „Honorowym obowiązkiem” głównego mostu jest generowanie wywołań do przestrzeni konfiguracyjnej kontrolowanej przez centralny procesor, co pozwala hostowi (centralnemu procesorowi) skonfigurować cały podsystem magistrali PCI. System może posiadać kilka mostków głównych, co pozwala na sprawną komunikację z centrum więcej urządzeń (ilość urządzeń na jednej magistrali jest ograniczona). Spośród tych autobusów jeden jest warunkowo wyznaczony jako główny (autobus 0).

Mostki równorzędne PCI (PeertoPeer Bridge) służą do łączenia dodatkowych magistral PCI. Mosty te zawsze powodują dodatkowe obciążenie związane z przesyłaniem danych, przez co efektywna wydajność komunikacji między urządzeniami a koncentratorami maleje wraz z każdym mostem, który staje na drodze.

Do połączenia magistrali PCMCIA, CardBus, MCA, ISA/EISA, X-Bus i LPC stosuje się specjalne mostki, które wchodzą w skład chipsetów płyt głównych lub stanowią osobne urządzenia (chipy) PCI. Mosty te konwertują interfejsy łączących je magistrali, synchronizują i buforują wymianę danych.

Każdy mostek jest programowalny - ma przypisane zakresy adresów w pamięci i przestrzeniach we/wy przydzielonych urządzeniom na jego magistralach. Jeżeli adres procesora bieżącej transakcji na jednej magistrali (stronie) mostu odnosi się do magistrali drugiej strony, most tłumaczy transakcję na odpowiednią magistralę i zapewnia negocjację protokołu magistrali. Zatem zbiór mostów PCI realizuje routing żądań wzdłuż powiązanych magistral. Jeśli system ma kilka głównych mostów, wówczas routing typu end-to-end pomiędzy urządzeniami na różnych magistralach może nie być możliwy: główne mosty mogą być połączone ze sobą tylko poprzez ścieżki szkieletowe kontrolera pamięci. Obsługa tłumaczenia wszystkich typów transakcji PCI przez główne mosty okazuje się w tym przypadku zbyt skomplikowana i dlatego nie jest ściśle wymagana przez specyfikację PCI. Zatem wszystkie aktywne urządzenia na wszystkich magistralach PCI mogą uzyskać dostęp do pamięci systemowej, ale możliwość komunikacji peer-to-peer może zależeć od tego, czy urządzenia te należą do tej czy innej magistrali PCI.

Zastosowanie mostków PCI daje takie możliwości jak:

  • zwiększenie możliwej liczby podłączonych urządzeń, pokonywanie ograniczeń specyfikacji elektrycznych autobusów;
  • podział urządzeń PCI na segmenty - magistrale PCI - z różne cechy głębia bitowa (32/64 bity), częstotliwość taktowania (33/66/100/133 MHz), protokół (PCI, PC-X Mode 1, PCI-X Mode 2, PCI Express). W każdym autobusie wszyscy abonenci są równi najsłabszemu uczestnikowi; prawidłowe rozmieszczenie urządzeń w autobusach pozwala na maksymalne wykorzystanie możliwości urządzeń i płyty głównej;
  • organizacja segmentów z „gorącym” podłączaniem/rozłączaniem urządzeń;
  • organizacja jednoczesnej, równoległej realizacji transakcji z inicjatorów znajdujących się na różnych magistralach.

Każdy most PCI łączy tylko dwie magistrale: magistralę podstawową, umieszczoną bliżej szczytu hierarchii, z magistralą dodatkową; Interfejsy mostkowe, za pomocą których jest on podłączony do tych magistral, nazywane są odpowiednio pierwotnymi i wtórnymi. Dopuszczalna jest tylko konfiguracja czysto drzewiasta, to znaczy dwa autobusy są połączone ze sobą tylko jednym mostem i nie ma „pętli” mostów. Autobusy podłączone do interfejsu wtórnego danego mostu innymi mostami nazywane są autobusami podrzędnymi. Mosty PCI tworzą hierarchię magistral PCI, na szczycie której znajduje się magistrala główna liczba zerowa, połączony z głównym mostem. Jeśli mostów głównych jest kilka, to z ich autobusów (równej rangi) głównym będzie ten, któremu przypisano numer zerowy.

Most musi spełniać szereg obowiązkowych funkcji:

  • obsługiwać magistralę podłączoną do jej interfejsu wtórnego:
  • przeprowadzać arbitraż - odbieranie sygnałów żądania REQx# od masterów magistrali i nadawanie im prawa do sterowania magistralą sygnałami GNTx#
  • zaparkuj autobus - wyślij sygnał GNTx# do jakiegoś urządzenia, gdy żaden z masterów nie wymaga sterowania magistralą;
  • generować cykle konfiguracyjne typu 0 z tworzeniem indywidualnych sygnałów IDSEL do adresowalnego urządzenia PCI;
  • „podciągnąć” sygnały sterujące do wysokiego poziomu;
  • określić możliwości podłączonych urządzeń i wybrać odpowiadający im tryb pracy magistrali (częstotliwość, głębia bitowa, protokół);
  • wygeneruj reset sprzętowy (RST#) poprzez reset z interfejsu głównego i poleceniem, raportując wybrany tryb za pomocą specjalnego alarmu.
  • prowadzić mapy zasobów znajdujących się po przeciwnych stronach mostu;
  • odpowiadać pod przykrywką urządzenia docelowego na transakcje inicjowane przez master na jednym interfejsie i adresowane do zasobu znajdującego się na innym interfejsie; transmituj te transakcje do innego interfejsu, działającego jako urządzenie główne i przesyłaj ich wyniki do prawdziwego inicjatora.

Mosty spełniające te funkcje nazywane są mostami przezroczystymi; Do pracy z urządzeniami znajdującymi się za takimi mostami nie są wymagane żadne dodatkowe sterowniki mostu. To właśnie te mosty są opisane w specyfikacji PCI Bridge 1.1 i dla nich, jako urządzeń PCI, istnieje specjalna klasa (06). W tym przypadku zakłada się „płaski” model adresowania zasobów (pamięci i wejść/wyjść): każde urządzenie ma swoje własne adresy, unikalne (nieprzecinające się z innymi) w obrębie danego systemu (komputera).

Istnieją również mostki nieprzezroczyste (mostek nieprzezroczysty), które umożliwiają organizowanie oddzielnych segmentów z własnymi lokalnymi przestrzeniami adresowymi. Most nieprzezroczysty wykonuje translację adresów (konwersję) dla transakcji, w których inicjator i urządzenie docelowe znajdują się po przeciwnych stronach mostu. Nie wszystkie zasoby (zakresy adresów) strony przeciwnej mogą być osiągalne poprzez taki most. Mostki nieprzezroczyste są używane na przykład wtedy, gdy komputer ma „inteligentny podsystem wejścia/wyjścia” (I20) z własnym procesorem we/wy i lokalną przestrzenią adresową.

informacje ogólne

Magistrala PCI początkowo umożliwia automatyczną konfigurację zasobów systemowych (pamięci i przestrzeni we/wy oraz linii żądań przerwań). Automatyczna konfiguracja urządzenia (wybór adresów i przerwań) jest obsługiwana przez narzędzia BIOS i OS; koncentruje się na technologii PnP. Standard PCI definiuje przestrzeń konfiguracyjną dla każdej funkcji składającą się z maksymalnie 256 rejestrów (8 bitów), nieprzypisanych ani do przestrzeni pamięci, ani do przestrzeni we/wy. Dostęp do nich uzyskuje się za pomocą specjalnych poleceń magistrali „Odczyt konfiguracji” i „Zapis konfiguracji”, generowanych przy użyciu jednego z opisanych poniżej mechanizmów sprzętowych i programowych. W tej przestrzeni znajdują się obszary wymagane dla wszystkich urządzeń i te specyficzne. Dane urządzenie nie może mieć rejestrów pod wszystkimi adresami, ale musi obsługiwać normalne uzupełnianie adresowanych do nich operacji. W takim przypadku odczyt nieistniejących rejestrów powinien zwrócić zera, a zapis powinien odbywać się w trybie jałowym.

Przestrzeń konfiguracyjna funkcji rozpoczyna się od standardowego nagłówka, który zawiera identyfikatory producenta, urządzenia i jego klasy oraz opis wymaganych i zajętych zasobów systemu. Struktura nagłówka jest znormalizowana dla urządzeń konwencjonalnych (typ 0), mostków PCI-PCI (typ 1), mostków PCI-CardBus (typ 2). Typ nagłówka określa lokalizację dobrze znanych rejestrów i przeznaczenie ich bitów. Po nagłówku mogą znajdować się rejestry specyficzne dla urządzenia. Dla standaryzowanych możliwości (możliwości) urządzeń (np. zarządzania energią) w przestrzeni konfiguracyjnej znajdują się bloki rejestrów o znanym przeznaczeniu. Bloki te są zorganizowane w łańcuchy, pierwszy taki blok znajduje się w standardowym nagłówku (CAP_PTR); w pierwszym rejestrze bloku znajduje się odnośnik do następnego bloku (lub 0 jeżeli ten blok jest ostatnim). Zatem skanując łańcuch, oprogramowanie konfiguracyjne otrzymuje listę wszystkich dostępnych właściwości urządzenia i ich pozycji w przestrzeni konfiguracji funkcji. PCI 2.3 definiuje następujące identyfikatory CAP_ID, niektórym z nich się przyjrzymy:

  • 01 - zarządzanie energią;
  • 02 - port AGP;
  • 03 - VPD (Vital Product Data), dane zapewniające kompleksowy opis właściwości sprzętu (ewentualnie także oprogramowania) urządzeń;
  • 04 — numeracja gniazd i podwozia;
  • 05 - przerwania MSI;
  • 06 - Hot Swap, gorące połączenie dla Compact PCI;
  • 07 - rozszerzenia protokołu PCI-X;
  • 08 - zarezerwowane dla AMD;
  • 09 - według uznania producenta (specyficzny dla dostawcy);
  • 0Ah — port debugowania (port debugowania);
  • 0Bh - PCI Hot Plug, standardowa funkcja „hot plug”.

W PCI-X dla urządzeń Mode 2 przestrzeń konfiguracyjna jest rozszerzona do 4096 bajtów; w rozszerzonej przestrzeni mogą znajdować się rozszerzone opisy nieruchomości.

Po twardym resecie (lub włączeniu zasilania) urządzenia PCI nie reagują na dostęp do pamięci i przestrzeni we/wy i są dostępne tylko do odczytu i zapisu konfiguracji. W operacjach tych urządzenia dobierane są na podstawie indywidualnych sygnałów IDSEL, a poprzez odczyt rejestrów program konfiguracyjny poznaje wymagania zasobowe i możliwe opcje konfiguracji urządzenia. Po dokonaniu alokacji zasobów przez program konfiguracyjny (podczas testu POST lub startu systemu operacyjnego), parametry konfiguracyjne (adresy bazowe) zapisywane są do rejestrów konfiguracyjnych urządzenia. Dopiero potem urządzenia (dokładniej funkcje) są ustawiane na bity, które pozwalają im odpowiadać na polecenia dostępu do pamięci i portów we/wy, a także sterować samą magistralą. Aby zawsze móc znaleźć wykonalną konfigurację, wszystkie zasoby zajmowane przez karty muszą być ruchome na swoich polach. W przypadku urządzeń wielofunkcyjnych każda funkcja musi mieć własną przestrzeń konfiguracyjną. Urządzenie może mapować te same rejestry zarówno do pamięci, jak i przestrzeni we/wy. W tym wypadku obydwa deskryptory muszą znajdować się w swoich rejestrach konfiguracyjnych, natomiast drajwer musi korzystać tylko z jednej metody dostępu (najlepiej przez pamięć).

Nagłówek przestrzeni konfiguracyjnej opisuje potrzeby trzech typów adresów:

  • rejestry w przestrzeni we/wy);
  • Rejestry we/wy mapowane do pamięci (we/wy mapowane w pamięci). Jest to obszar pamięci, do którego należy uzyskać dostęp ściśle według żądań inicjatora wymiany. Dostęp do tych rejestrów może ulec zmianie stan wewnętrzny urządzenia peryferyjne;
  • pamięć umożliwiająca pobieranie pamięci z wyprzedzeniem. Jest to obszar pamięci, w którym „dodatkowy” odczyt (z niewykorzystanymi wynikami) nie powoduje skutków ubocznych, wszystkie bajty są odczytywane niezależnie od sygnałów BE#, a zapisy poszczególnych bajtów można mostkować (czyli jest to pamięć w najczystszej postaci).

Wymagania adresowe są wskazane w bazowych rejestrach adresowych - BAR (Base Address Register). Program konfiguracyjny może również określić wielkość wymaganych obszarów. W tym celu po resecie sprzętowym musi odczytać i zapisać wartości adresów bazowych (będą to adresy domyślne), zapisać do każdego rejestru FFFFFFFFh i ponownie odczytać ich wartość. W otrzymanych słowach należy zresetować typ bitów dekodujących (bity dla pamięci i bity dla I/O), odwrócić i zwiększyć powstałe 32-bitowe słowo - wynikiem będzie długość obszaru (zignoruj ​​​​bity dla portów ). Metoda zakłada, że ​​długość obszaru jest wyrażona jako 2n, a obszar jest naturalnie wyrównany. Standardowy nagłówek może pomieścić do 6 bazowych rejestrów adresowych, jednak przy zastosowaniu adresowania 64-bitowego liczba opisywanych bloków jest zmniejszona. Nieużywane rejestry BAR powinny zawsze zwracać zera podczas odczytu.

PCI obsługuje starsze urządzenia (VGA, IDE), które deklarują się jako takie poprzez kod klasy w nagłówku. Ich tradycyjne (stałe) adresy portów nie są deklarowane w przestrzeni konfiguracyjnej, ale po ustawieniu bitu włączającego dostęp do portu, urządzenia mogą również odpowiadać na te adresy.

  1. Cześć! Proszę wyjaśnić różnicę w przepustowości pomiędzy interfejsami PCI Express 3.0 x16 i PCI Express 2.0 x16. Obecnie w sprzedaży nadal znajdują się płyty główne z interfejsem PCI Express 2.0 x16. jestem z Jeśli zainstaluję, stracę dużo na wydajności wideo nowa karta graficzna interfejsPCI Express 3.0 na komputerze z płyta główna, gdzie jest tylko złączePCI-E 2.0? Myślę, że przegram, bo w sumieszybkość transmisji dla PCI Express 2.0 jest to - 16 GB/s i łączniePCI Express 3.0 ma dwukrotnie większą prędkość przesyłania danych - 32 GB/s.
  2. Cześć! Mam komputer z mocnym, ale nie nowym Procesor Intela Core i7 2700K i płyta główna ze slotem PCI Express 2.0. Powiedz mi, jeśli kupię nową kartę graficzną PCI Express 3.0, ta karta graficzna będzie działać dwa razy wolniej, jakbym miał płytę główną ze złączem PCI Express 3.0? Więc już czas na zmianę komputera?
  3. Proszę odpowiedzieć na to pytanie. Na moim płyta główna są dwa gniazda: PCI Express 3.0 i PCI Express 2.0, ale w gnieździe Nowa karta graficzna PCI Express 3.0 PCI Express 3.0 nie pasuje, przeszkadza grzejnik mostka południowego. Jeśli zainstaluję kartę graficznąW gnieździe PCI-E 3.0 PCI-E 2.0, to moja karta graficzna będzie działać gorzej, niż gdyby była zainstalowana w gnieździe PCI Express 3.0?
  4. Witam, chcę kupić od znajomego lekko używaną płytę główną za dwa tysiące rubli. Trzy lata temu kupił go za 7000 rubli, ale zastanawia mnie to, że ma gniazdo na interfejsową kartę graficzną PCI-E 2.0 i mam kartę graficznąPCI-E 3.0. Czy moja karta graficzna będzie działać z pełną wydajnością na tej płycie głównej, czy nie?

Cześć przyjaciele! Dziś w sprzedaży można znaleźć płyty główne ze złączem do instalacji kart graficznych PCI Express 2.0 x16 i PCI Express 3,0x16. To samo można powiedzieć o kartach graficznych, w sprzedaży są karty graficzne z interfejsem PCI-E 3.0, a także PCI-E 2.0. Jeśli spojrzysz oficjalne specyfikacje interfejsy PCI Express 3.0 x16 i PCI Express 2.0 x16, to przekonasz się, że całkowita prędkość przesyłania danych w PCI Express 2.0 wynosi- 16 GB/s i PCI Express 3.0 jest dwa razy większy -32 GB/s. Nie będę wnikał w szczegóły działania tych interfejsów i powiem po prostu, że jest tak duża różnica wprędkość przesyłania danych jest widoczna tylko w teorii, ale w praktyce jest bardzo mała.Jeśli czytasz artykuły na ten temat w Internecie, todojdziesz do wniosku, że nowoczesne karty graficzne PCI Express 3.0 działają z tą samą prędkością w gniazdach PCI Express 3.0 x16 i PCI Express 2.0 x16 oraz różnica w przepustowościpomiędzy PCI-E 3.0 x16 i PCI-E 2.0 x16 to tylko 1-2% spadek wydajności karty graficznej. Oznacza to, że nie ma znaczenia, w którym gnieździe zainstalujesz kartę graficzną, PCI-E 3.0 czy PCI-E 2.0, wszystko będzie działać tak samo.

Ale niestety wszystkie te artykuły zostały napisane w 2013 i 2014 roku i wtedy nie było takich gier jak Far cry Primal, Battlefield 1 i inne nowości, które pojawiły się w 2016 roku. Wydany również w 2016 roku rodzina grafik Procesory NVIDIA 10. serii, na przykład karty graficzne GeForce GTX 1050 i GeForce GTX 1050 Ti, a nawet GTX 1060. Moje eksperymenty z nowymi grami i nowymi kartami graficznymi wykazały, że interfejs PCI-E 3.0 ma przewagę nadPCI-E 2.0 to już nie 1-2%, aleśrednio 6-7%. Co ciekawe, jeśli karta graficzna jest niższej klasy niż GeForce GTX 1050 , wówczas odsetek jest mniejszy (2-3%) , a jeśli wręcz przeciwnie, to więcej - 9-13%.

Tak więc w moim eksperymencie użyłem karty graficznej Interfejs GeForce GTX 1050 PCI-E 3.0 i płyta główna ze złączami PCI Express 3.0 x16 i PCI Express 2.0 x16.

N Ustawienia graficzne w grach są wszędzie maksymalne.

  1. Gra FAR CRY PRIMAL. Interfejs PCI-E 3.0 wykazało przewagę nad Od tego czasu PCI-E 2.0 zawsze wyższy o 4-5 klatek, co stanowi w przybliżeniu procent 4 % %.
  2. Gra Battlefield 1. Różnica między PCI-E 3.0 i PCI-E 2.0 była 8-10 klatek , co w ujęciu procentowym wynosi około 9%.
  3. Powstanie Tomb Raidera. Zaleta PCI-E 3.0 średnie 9- 10 kl./s lub 9%.
  4. Wiedźmin. Przewaga PCI-E 3.0 wyniosła 3%.
  5. Wielka kradzież Auto V. Przewaga PCI-E 3.0 to 5 kl./s, czyli 5%.

Oznacza to, że nadal istnieje różnica w przepustowości między interfejsami PCI-E 3.0 x16 i PCI-E 2.0 x16 i nie jest ona korzystna PCI-E 2.0. Dlatego nie kupiłbym w ten moment płyta główna z jednym złączem PCI-E 2.0.

Jeden z moich znajomych kupił używaną płytę główną za trzy tysiące rubli. Tak, kiedyś był wyrafinowany i kosztował około dziesięciu tysięcy rubli, ma dużo złączy SATA III i USB 3.0, także 8 gniazd na pamięć RAM, obsługuje technologię RAID itp., ale jest zbudowany na przestarzałym chipsecie, a gniazdo karty graficznej na nim to PCI Express 2.0! Moim zdaniem lepiej kupić. Dlaczego?

Może się zdarzyć, że za rok lub dwa najnowsze karty graficzne będą działać tylko w złączu PCI Express 3.0x16 , a Twoja płyta główna będzie wyposażona w przestarzałe złącze, które nie jest już używane przez producentów PCI Express 2.0x16 . Kupujesz nową kartę graficzną, ale nie będzie ona działać w starym złączu. Osobiście spotkałem się już wielokrotnie z kartą graficzną PCI-E 3.0 nie działa na płycie głównej. płytka ze złączem PCI-E 2.0 i Nawet aktualizacja BIOSu płyty głównej nie pomogła.Zajmowałem się także kartami graficznymiPCI-E 2.0 x16, które odmówiło współpracy na starszych płytach głównych z interfejsem PCI-E 1.0x16, chociaż wszędzie piszą o kompatybilności wstecznej.Przypadki, w których karta graficzna PCI Express 3.0 x16 nie uruchomiła się na płytach głównychPCI Express 1.0 x16, a nawet więcej.

No cóż, nie zapomnijcie w tym roku o wyglądzie interfejsu PCI Express 4.0. W takim przypadku PCI Express 3.0 stanie się przestarzały.

Standard PCI Express jest jednym z fundamentów współczesnych komputerów. Gniazda PCI Express od dawna zajmują mocne miejsce na płytach głównych wszystkich komputerów stacjonarnych, wypierając inne standardy, takie jak PCI. Ale nawet standard PCI Express ma swoje własne odmiany i wzorce połączeń, które różnią się od siebie. Na nowych płytach głównych, począwszy od około 2010 roku, można zobaczyć całe rozproszenie portów na jednej płycie głównej, oznaczonych jako PCIE Lub PCI-E, które mogą różnić się liczbą linii: jeden x1 lub kilka x2, x4, x8, x12, x16 i x32.

Dowiedzmy się więc, dlaczego wokół pozornie prostego portu peryferyjnego PCI Express panuje takie zamieszanie. A jaki jest cel każdego standardu PCI Express x2, x4, x8, x12, x16 i x32?

Co to jest magistrala PCI Express?

Jeszcze w latach 2000-tych, kiedy miało miejsce przejście ze starzejącego się standardu PCI (rozszerzenie - łączenie komponentów peryferyjnych) na PCI Express, to drugie miało jedną ogromną zaletę: zamiast magistrali szeregowej, jaką było PCI, zastosowano złącze punkt-punkt korzystano z autobusu dojazdowego. Oznaczało to, że każdy indywidualnie Port PCI a zainstalowane w nim karty mogły w pełni wykorzystać maksymalną przepustowość, nie zakłócając się nawzajem, jak to miało miejsce przy podłączeniu do PCI. W tamtych czasach liczba urządzeń peryferyjnych wkładanych do kart rozszerzeń była ogromna. Karty sieciowe, karty dźwiękowe, tunery telewizyjne i tak dalej – wszystkie wymagały wystarczającej ilości zasobów komputera. Jednak w przeciwieństwie do standardu PCI, który wykorzystywał wspólną magistralę do przesyłania danych z wieloma urządzeniami połączonymi równolegle, PCI Express, ogólnie rzecz biorąc, jest siecią pakietową o topologii gwiazdy.


PCI Express x16, PCI Express x1 i PCI na jednej płycie

Mówiąc laikiem, wyobraź sobie swój komputer stacjonarny jako mały sklep z jednym lub dwoma sprzedawcami. Stary standard PCI był jak sklep spożywczy: wszyscy czekali w tej samej kolejce do obsługi, doświadczając problemów z szybkością w związku z ograniczeniem liczby jednego sprzedawcy za ladą. PCI-E przypomina raczej hipermarket: każdy klient podąża swoją indywidualną trasą po zakupy spożywcze, a przy kasie zamówienie przyjmuje kilku kasjerów jednocześnie.

Oczywiście hipermarket jest kilkukrotnie szybszy od zwykłego sklepu pod względem szybkości obsługi, z uwagi na to, że sklep nie może sobie pozwolić na obsługę więcej niż jednego sprzedawcy przy jednej kasie.

Również z dedykowanymi ścieżkami danych dla każdej karty rozszerzeń lub wbudowanych komponentów płyty głównej.

Wpływ liczby linii na przepustowość

Rozszerzając teraz naszą metaforę sklepu i hipermarketu, wyobraźmy sobie, że każdy dział hipermarketu ma swoich kasjerów zarezerwowanych tylko dla nich. Tutaj pojawia się pomysł wielu ścieżek danych.

Od momentu powstania PCI-E przeszło wiele zmian. Obecnie nowe płyty główne zwykle korzystają z wersji 3 standardu, przy czym szybsza wersja 4 staje się coraz bardziej powszechna, a wersja 5 spodziewana jest w 2019 roku. Ale różne wersje wykorzystują te same połączenia fizyczne, a połączenia te można wykonać w czterech podstawowych rozmiarach: x1, x4, x8 i x16. (istnieją porty x32, ale są one niezwykle rzadkie na zwykłych płytach głównych komputerów).

Różne rozmiary fizyczne portów PCI-Express umożliwiają ich jednoznaczne podzielenie przez liczbę jednoczesnych połączeń z płytą główną: im większy fizycznie port, tym więcej maksymalne połączenia można go przenieść na kartę i odwrotnie. Połączenia te nazywane są również linie. Jedną linię można traktować jako ścieżkę składającą się z dwóch par sygnałów: jednej do wysyłania danych, drugiej do odbioru.

Różne wersje standardu PCI-E umożliwiają różne prędkości na każdej linii. Ale ogólnie rzecz biorąc, im więcej linii znajduje się na pojedynczym porcie PCI-E, tym szybszy jest przepływ danych między urządzeniem peryferyjnym a resztą komputera.

Wracając do naszej metafory: jeśli mówimy o jednym sprzedawcy w sklepie, to listwa x1 będzie właśnie tym sprzedawcą obsługującym jednego klienta. W sklepie z 4 kasjerami są już 4 linie x4. I tak dalej, możesz przypisać kasjerów według liczby linii, mnożąc przez 2.


Różne karty PCI Express

Typy urządzeń wykorzystujących PCI Express x2, x4, x8, x12, x16 i x32

W przypadku wersji PCI Express 3.0 ogólna maksymalna prędkość przesyłania danych wynosi 8 GT / s. W rzeczywistości prędkość wersji PCI-E 3 jest nieco mniejsza niż jeden gigabajt na sekundę na linię.

Zatem urządzenie korzystające na przykład z portu PCI-E x1 ma niski pobór mocy karta dźwiękowa lub antena Wi-Fi będzie mogła przesyłać dane z maksymalną prędkością 1 Gbit/s.

Karta, która fizycznie mieści się w większym gnieździe - x4 Lub x8 na przykład karta rozszerzeń USB 3.0 będzie mogła przesyłać dane odpowiednio cztery lub osiem razy szybciej.

Szybkość transferu portów PCI-E x16 jest teoretycznie ograniczona do maksymalnej przepustowości około 15 Gb/s. To więcej niż wystarczy w 2017 roku dla wszystkich współczesnych filmy graficzne karty opracowane przez NVIDIA i AMD.


Większość dyskretne karty graficzne użyj gniazda PCI-E x16

Protokół PCI Express 4.0 pozwala na wykorzystanie 16 GT/s, a PCI Express 5.0 będzie wykorzystywać 32 GT/s.

Jednak obecnie nie ma komponentów, które mogłyby wykorzystać taką liczbę pasów przy maksymalnej przepustowości. Nowoczesne, wysokiej klasy karty graficzne zwykle korzystają z PCI Express 3.0 x16. Nie ma sensu używać tych samych torów dla karty sieciowej, która będzie wykorzystywać tylko jeden tor na porcie x16, ponieważ port Ethernet jest w stanie przesyłać dane tylko z szybkością jednego gigabita na sekundę (co stanowi około jednej ósmej przepustowości jedna ścieżka PCI-E – pamiętaj: osiem bitów w jednym bajcie).

Na rynku dostępne są dyski SSD PCI-E obsługujące port x4, ale wygląda na to, że zostaną one zastąpione przez szybko rozwijający się nowy standard M.2. Dla Dyski SSD, który może również korzystać z magistrali PCI-E. Wysoka jakość karty sieciowe a sprzęt dla entuzjastów, taki jak kontrolery RAID, korzysta z kombinacji formatów x4 i x8.

Rozmiary portów PCI-E i linii mogą się różnić

Jest to jeden z najbardziej mylących problemów związanych z PCI-E: port może być wykonany w formacie x16, ale nie mieć wystarczającej liczby linii, aby przesyłać dane, na przykład tylko x4. Dzieje się tak dlatego, że chociaż PCI-E może obsługiwać nieograniczoną liczbę pojedynczych połączeń, nadal istnieje praktyczne ograniczenie przepustowości chipsetu. Tańsze płyty główne z chipsetami z niższej półki mogą mieć tylko jedno gniazdo x8, nawet jeśli w gnieździe tym fizycznie mieści się karta x16.

Ponadto płyty główne przeznaczone dla graczy obejmują aż cztery kompletne Gniazda PCI-E z x16 i taką samą liczbą linii dla maksymalnej przepustowości.

Oczywiście może to powodować problemy. Jeśli płyta główna ma dwa gniazda x16, ale jedno z nich ma tylko gniazda x4, to dodanie nowej karty graficznej zmniejszy wydajność pierwszej aż o 75%. Jest to oczywiście wynik wyłącznie teoretyczny. Architektura płyt głównych jest taka, że ​​nie odczujesz gwałtownego spadku wydajności.

Prawidłowa konfiguracja dwóch kart graficznych powinna wykorzystywać dokładnie dwa gniazda x16, jeśli chcesz uzyskać maksymalny komfort z tandemu dwóch kart graficznych. Instrukcja w biurze pomoże Ci dowiedzieć się, ile linii ma dane gniazdo na płycie głównej. stronie internetowej producenta.

Czasami producenci zaznaczają nawet liczbę linii na płytce drukowanej płyty głównej obok gniazda

Musisz wiedzieć, że krótsza karta x1 lub x4 może fizycznie zmieścić się w dłuższym slocie x8 lub x16. Umożliwia to konfiguracja pinów styków elektrycznych. Naturalnie, jeśli karta jest fizycznie większa niż slot, nie będzie można jej włożyć.

Dlatego pamiętaj, kupując karty rozszerzeń lub aktualizując obecne, musisz zawsze pamiętać zarówno o rozmiarze gniazda PCI Express, jak i liczbie wymaganych pasm.

W tym artykule omówiono najpopularniejsze obecnie urządzenia PCI. Co to jest i kiedy nie można się bez tego obejść, to kluczowe pytania tego materiału. Chociaż tę normę Stopniowo odchodzi to w przeszłość, ale nadal będzie aktualne przez dość długi czas. W zasadzie można go uznać za protoplastę najnowocześniejszych interfejsów USB i PCI-Express, które go zastąpiły.

Charakterystyka opon

Zanim otrzymamy odpowiedź na pytanie: „Urządzenia PCI: czym są i gdzie się je stosuje?”, zastanówmy się nad charakterystyką tej magistrali. Standard ten rozpoczął swój zwycięski marsz w 1991 roku. Pierwszym procesorem, który mógł z nim w pełni współpracować, był 80486. Nieco później pojawiły się pierwsze Pentiumy, jeszcze bardziej ujawniając swój potencjał. Fizycznie skrót ten kryje w sobie grupę złączy wlutowanych na płycie głównej. Za organizację ich pracy odpowiada jeden z zainstalowanych na nim mikroukładów. Charakterystyka PCI jest następująca:

  • Pojemność bitowa - 32/64 bity.
  • Częstotliwość robocza - 33 lub 66 MHz.
  • Maksymalnie - 500 MB/s (dla 64-bitowej wersji PCI 2.0).
  • Napięcie zasilania - 3,3 V (dla 32 bitów) lub 5 V (dla 64 bitów).

Inny ważny niuans, które z góry przesądziły o przyszłości tego standardu. Intel sprawił, że był on „otwarty”. Oznacza to, że każdy programista mógłby w razie potrzeby opracować dowolną kartę rozszerzeń, która działałaby bez problemów z tym standardem.

Jakie urządzenia można zainstalować

W gnieździe rozszerzeń PCI można zainstalować różne urządzenia. Wśród nich są:

  • Adapter graficzny.
  • Karta dźwiękowa.
  • Tuner.
  • Płyta rozszerzeń.
  • Karta sieciowa.

Listę tę można ciągnąć w nieskończoność. Zasadniczo tak jest kompletny analog nowoczesną magistralę USB, ale tylko z niższą szybkością przesyłania danych. Nawet sterownik urządzenia PCI instaluje się w podobny sposób. Wiele pomysłów wdrożonych w tym starszym autobusie zostało rozwiniętych w bardziej nowoczesnych standardach. wywarł ogromny wpływ na dalszy rozwój techniki komputerowej.

Adaptery graficzne

Do wycofania obraz graficzny Użyto karty graficznej PCI. Kiedyś umożliwiło to znaczne zwiększenie produktywności systemy komputerowe i w pełni uwolnij potencjał procesorów 80486 i pierwszych Pentiumów.

Ale czas nie stoi w miejscu. To, co wówczas było decyzją rewolucyjną, jest obecnie przestarzałe zarówno pod względem moralnym, jak i fizycznym. Do 1997 roku takie akceleratory graficzne nie miały analogii. Dlatego można je było znaleźć na każdym komputerze osobistym. I dopiero wraz z pojawieniem się na płycie głównej takie adaptery ustąpiły miejsca nowym rozwiązaniom graficznym pod względem wydajności.

W dzisiejszych czasach karta graficzna PCI jest rzadkością. Można go znaleźć tylko na bardzo starych komputerach osobistych. Można powiedzieć, że to już anachronizm. Ich wydajność jest wystarczająca tylko do rozwiązywania najprostszych zadań - pisania tekstu, pracy i przeglądania zdjęć. Ale przy bardziej złożonych aplikacjach na pewno pojawią się problemy i w tym przypadku lepiej ich nie uruchamiać.

Karta dźwiękowa

Karta dźwiękowa jest również rodzajem urządzenia PCI. Co to jest? Odpowiedź na to pytanie jest dość prosta. Do 1997 roku płyty główne nie były zintegrowane adaptery dźwiękowe. Dlatego właśnie takie urządzenia posłużyły do ​​uporządkowania systemu akustycznego. Z jednej strony taka płytka została wyposażona w „klasyczne” złącze do montażu w gnieździe rozszerzeń. Panel interfejsu został wyświetlony z tyłu jednostki systemowej.

Do zamocowania go wewnątrz komputera wykorzystano jedną śrubę. Jakość ich dźwięku pozostawiała wiele do życzenia. Ale i tak był to przełom, którego nie należy lekceważyć. To właśnie instalacja takich urządzeń umożliwiła wcześniej przekształcenie dowolnego komputera w prawdziwe centrum multimedialne. Na takim komputerze można było słuchać muzyki, oglądać filmy i grać w gry.

Tunery

Kolejnym ważnym typem urządzenia dla tego autobusu jest tuner. Ten kontroler PCI umożliwia oglądanie programów telewizyjnych i słuchanie radia. Aby zapewnić funkcjonalność takiej tablicy, musi tak być obowiązkowy podłączyć antena zewnętrzna. W przeciwnym razie jakość odbieranego sygnału będzie daleka od ideału.

Dodatkowo do tunera dołączony był pilot zdalnego sterowania. Umożliwiło to zmianę komputera w prawdziwy telewizor. Praktyka ta nie stała się powszechna, ale nadal zdarzały się przypadki, gdy nie można było obejść się bez takiego know-how. Przykładowo takie rozwiązanie pozwoliło zapracowanej osobie na bieżąco być świadomym wydarzeń.

Modem

Ważną cechą starych komputerów jest modem. Za jego pomocą możliwe było wcześniejsze połączenie się z Internetem. Większość tych urządzeń była wewnętrzna, to znaczy zainstalowana w gnieździe PCI. Teraz udało się je wypchnąć z tego segmentu, choć nadal istnieją obszary, w których nie ma dla nich alternatywy. Jednym z nich jest często spotykany w księgowości system „Klient-Bank”. Za jego pomocą księgowy może monitorować stan rachunków firmy i w razie potrzeby dokonywać płatności.

Płyta rozszerzeń

Często można spotkać następujące urządzenie: „Prosta komunikacja kontrolera PCI”. Pod tym wyrażeniem kryje się karta rozszerzeń. Pozwala zwiększyć liczbę portów do podłączenia lub dyski twarde. Oznacza to, że takie urządzenie jest instalowane w gnieździe rozszerzeń płyty głównej i jest wyposażone na zewnątrz Złącza USB, KOM lub LPT. Około 5 lat temu umożliwiło to znaczne zwiększenie liczby podłączonych urządzeń peryferyjnych. Teraz liczba portów na płycie głównej znacznie wzrosła, a potrzeba instalowania takich kontrolerów po prostu zniknęła.

Wyniki

Materiał ten odpowiadał na pytanie: „Urządzenia PCI – czym są i gdzie się je stosuje?”

Jak widać, jest to dość szeroka gama urządzeń, które pozwalają zamienić komputer w prawdziwe centrum dla zabawy. Przez co najmniej, to stwierdzenie było aktualne do niedawna. Teraz sytuacja trochę się zmieniła. Coraz więcej komponentów integruje się bezpośrednio z samym procesorem lub z płytą główną. Dlatego ich potrzeba znika. Można znaleźć także inne urządzenia typu mostek PCI, na przykład kartę sieciową, która umożliwia łączenie komputerów w sieć lokalną śieć komputerowa. Jedyne urządzenie, którego jeszcze nie ma godna alternatywa, to tuner do odbioru programów telewizyjnych i słuchania radia. Ale w tym segmencie zaczęły już pojawiać się kompaktowe analogi USB. Generalnie standard PCI stopniowo odchodzi w przeszłość, ale jeszcze długo będzie obecny na rynku.

Autobus ISA

Standardy interfejsu magistrali

Wraz ze wzrostem szerokości magistrali i częstotliwości taktowania komputera zmieniły się także standardy interfejsu magistrali. Obecnie komputery korzystają z następujących głównych standardów interfejsów magistrali:

· Autobus ISA;

· Magistrala PCI;

Inne standardy, takie jak MCA (architektura Micro Channel), EISA (architektura rozszerzonego standardu branżowego) i VESA, powszechnie zwane lokalny autobus, VL-bus i opracowane przez stowarzyszenie VESA (Video Electronics Standards Association) nie są obecnie używane.

Pierwszy wspólny standard interfejsu magistrali, magistrala ISA (Industry Standard Architecture), został opracowany przez IBM podczas tworzenia komputera IBM PC AT (1984). Ta 16-bitowa magistrala o częstotliwości taktowania 8,33 MHz umożliwia instalację zarówno 8-bitowych, jak i 16-bitowych kart rozszerzeń (o przepustowości odpowiednio 8,33 i 16,6 MB/s).

Wymiana danych pomiędzy szybkimi urządzeniami zewnętrznymi i Baran odbywa się przy udziale procesora, co w niektórych przypadkach może prowadzić do zmniejszenia wydajności komputera. W trybie bezpośredniego dostępu, wprowadzonym w magistrali ISA, urządzenie peryferyjne komunikuje się z pamięcią RAM bezpośrednio kanałami DMA (Direct Memory Access). Ten tryb wymiany danych jest najskuteczniejszy w sytuacjach, gdy jest to wymagane wysoka prędkość do przesyłania dużej ilości informacji (na przykład podczas ładowania danych do pamięci z dysku twardego).

Aby zorganizować bezpośredni dostęp do pamięci, używany jest kontroler DMA wbudowany w jeden z układów na płycie głównej. Urządzenie wymagające bezpośredniego dostępu do pamięci, np bezpłatne kanały DMA kontaktuje się z administratorem podając mu ścieżkę (adres) skąd lub dokąd wysłać dane, adres początkowy bloku danych oraz ilość danych. Inicjalizacja wymiany następuje przy udziale procesora, jednak faktyczny transfer danych odbywa się pod kontrolą kontrolera DMA, a nie procesora.

Magistrala ISA jest nieobecna w nowoczesnych płytach głównych i jest zachowana tylko w starszych komputerach.

Magistrala PCI (Peripheral Component Interconnect) została opracowana przez firmę Intel przy udziale kilku innych firm w 1993 roku dla nowego, wysokowydajnego procesora Pentium.

Obecnie wszystkie standardy PCI są opracowywane i utrzymywane przez organizację PCI-SIG (PCI - Special Interest Group).


Najnowszy standard PCI, PCI 3.0, przyjęty w 2004 roku, definiuje zarówno magistralę 32-bitową o częstotliwości taktowania 33 MHz i maksymalnej przepustowości 133 MB/s, jak i magistralę 64-bitową o częstotliwości taktowania 33 i 66 MHz i szczytową przepustowość odpowiednio 266 i 533 MB/s.

Aby przyspieszyć przesyłanie danych na magistrali PCI, używany jest tryb seryjny. W tym trybie dane znajdujące się pod dowolnym adresem przesyłane są nie pojedynczo, ale całościowo.

Podstawową zasadą leżącą u podstaw magistrali PCI jest zastosowanie tak zwanych mostów, które komunikują się pomiędzy magistralą PCI a innymi magistralami. Ważną cechą magistrali PCI jest to, że zamiast kanałów DMA implementuje ona bardziej efektywny tryb zarządzania magistralą (Bus Mastering), który pozwala zewnętrzne urządzenie sterować magistralą bez udziału procesora. Podczas przesyłania informacji urządzenie obsługujące Bus Mastering przejmuje magistralę i staje się masterem. Dzięki takiemu podejściu centralny procesor może wykonywać inne zadania w trakcie przesyłania danych. Jest to szczególnie ważne w przypadku korzystania z wielozadaniowych systemów operacyjnych, takich jak Windows i Unix.

Złącza karty PCI na płycie głównej pokazano na rys. ?????.

Ryż. ?????. Gniazda kart PCI na płycie głównej:

a) złącze 32-bitowe; b) złącze 64-bitowe

Dodatkiem do standardu PCI jest standard PCI Hot Plug v1.0. Urządzenia PCI zgodne z tym standardem można wkładać lub wyjmować z gniazda podczas pracy komputera – tzw. „hot plug”.

Magistrale PCI są używane w nowoczesnych komputerach do łączenia urządzenia wewnętrzne jednostka systemowa, taka jak karta dźwiękowa lub modem. Jednak w przypadku urządzeń graficznych magistrale te nie mają wystarczającej szybkości przesyłania danych, dlatego opracowano PCI-SIG nowy standard– PCI-X (X oznacza eXtended) z częstotliwościami taktowania 66, 133, 266 i 533 MHz i szczytową przepustowością odpowiednio 533, 1066, 2132 i 4264 MB/s. Standard ten jest wstecznie kompatybilny ze standardem PCI 3.0, tj. Twój komputer może korzystać zarówno z kart PCI 3.0, jak i kart PCI-X.

Ostatnia wersja Standard PCI-X – PCI-X 2.0 został przyjęty w 2002 roku. Obecnie autobusy tego standardu praktycznie nie są używane, ponieważ w tym samym roku PCI-SIG rozpoczęło opracowywanie całkowicie nowego standardu magistrali PCI - PCI Express.

Standard PCI Express, zwany także PCI-E lub PCe, zastępuje równoległą współdzieloną strukturę wykorzystywaną przez magistrale PCI i PCI-X szeregowymi połączeniami urządzeń za pomocą przełączników. Stara nazwa tego standardu to 3GIO (3. generacja wejścia/wyjścia - trzecia generacja wejścia/wyjścia).

Najnowszym obecnym standardem PCI Express jest PCI Express Base 2.0, przyjęty w 2006 roku.

W przeciwieństwie do standardu PCI, który łączy wszystkie urządzenia ze wspólną 32-bitową równoległą magistralą jednokierunkową, PCI Express wykorzystuje jedną lub więcej dwukierunkowych magistral do podłączenia urządzenia. połączenia szeregowe typu punkt-punkt, realizowany na skrętce miedzianej.

Przy wymianie danych po skrętce wykorzystuje się metodę niskonapięciowej transmisji sygnału różnicowego – LVDS (Low-Voltage Differential Signaling). Dane w LVDS są przesyłane sekwencyjnie, krok po kroku. W tym przypadku do transmisji jednego sygnału wykorzystywana jest para różnicowa, tj. co strona nadawcza dostarcza do przewodów pary różne poziomy napięcia, które są porównywane po stronie odbiorczej. Do kodowania informacji wykorzystuje się różnicę napięć na przewodach pary. Mała amplituda sygnału, a także znikomy wpływ elektromagnetyczny przewodów pary na siebie, pozwalają na redukcję szumów w linii i transmisję danych na wysokich częstotliwościach, tj. z dużą prędkością. Aby zwiększyć prędkość przesyłania danych, można zastosować kilka połączeń (skrętek), którymi bity przesyłane są równolegle, tj. jednocześnie.

PCI Express może wykorzystywać jedno lub więcej połączeń do przesyłania danych. Liczba połączeń urządzenia jest określona liczbą, po której następuje (lub poprzedza) litera x. Specyfikacja definiuje obecnie połączenia jako 1x, 2x, 4x, 8x, 16x i 32x. Każde z tych połączeń magistrali PCI Express (z wyjątkiem połączenia 32x, które nie jest jeszcze używane) ma swój własny typ złącza. Na ryc. ???? Pokazano najpopularniejsze gniazda PCI Express: 1x, 2x, 4x, 8x i 16x.

Ryż. ?????. Najpopularniejsze złącza PCI Express: a) 1x gniazdo; b) szczelina 4x;

c) gniazdo 8x; d) szczelina 16x;

Przepustowość magistrali PCI Express na połączenie wynosi obecnie 2,5 Gbit/s z perspektywą wzrostu do 10 Gbit/s. Standard PCI Express powinien zastąpić standardy PCI i PCI-X, a także standard AGP omówiony w następnej sekcji. Jednak standard PCI Express jest zgodny z tymi standardami i najwyraźniej będzie z nimi używany przez długi czas, ponieważ wiele kart zostało wypuszczonych i nadal produkowanych zgodnie z standardy PCI i AGP.