background image

 

Systemy komputerowe 

 

 
 

Magistrale systemowe: Magistrala PCI 

 

 

Magistrala jest -

-

       

do jednego lub kilku miejsc przeznaczenia. 

 !"#$#

      $ 

magistrali. Natomiast

     

        %

      

# &

'$(

 

Sposób wykorzystania 

linii magistrali 

 

danych 

#

 

Taktowanie  -  synchroniczne lub asynchroniczne. 

Rodzaje operacji 

przekazu danych 

-  zapis, odczyt, odczyt-modyfikacja-zapis, 

odczyt kontrolny, przekaz blokowy. 

  -  centralny lub rozproszony. 

 

 

 

Magistrala podsystemu procesor-

 

 

SCSI 

Karta 

sieciowa 

Most ISA 

Most PCI 

Karta 
audio 

P1394 

Procesor 

Procesor 

Kontroler 

 

Karta 

graficzna 

 

background image

 

)*+

(Peripheral Component Interconnect). Jest to lokalna magistrala, 

       "

  #    

smisji 

          

     "  '

operacji. 

1. OPIS STANDARDU 

Norma PCI Local Bus (ostatnia wersja: Revision 2.2) wydana przez 
PCI Special Interest Group, 

' ,- # . "

  /0 #1    

     #  

"  ,, 23 . "   

"$ 

– 66 MHz). W protokóle transmisji danych 

 

)

"  ,, 23  )*+  $

,- #   #"  4,- 2#5  /0 #

  $ "$   % 

   #"    # 

       

6" 

Nie przewidziano dodatkowego buforowania. Magistrala nie jest 

   7   

     # 8  

'# 

 

)*+

emu procesor 

 $

-

$     .+9: ;+9:

2*1  6 #"    

most-sterownik magistrali PCI. 

2)*+$'#'# 

 

!"'

takich jak np. kontroler dyskowy -

    

   #' 

-sterownika magistrali. 

)    "$   

 <

"#$

    $  

      2  

$     $ #"

 '     

-wy, z których 

korzysta jednostka centralna.

7

)*+  $  #  

podsystemu procesor 

centralny –

 $

$   * 

)*+

  

-wy -

    

-

  #$

   )*+    # 

procesorem Alpha jak i Pentium lub PowerPC. Warunkiem jest 
zainstalowanie odpowiedniego oprogramowania. 

background image

 

+   )*+  "$  

'    )    

      

utomatyczna 

'   2:  +56   = #

$     )  

 $  '  

   #  " 

# 6)*+

- by w specjalnie do tego celu wydzielonej przestrzeni 

adresowej –

     

'

zainicjowanie pracy. 

SZYCH TERMINÓW 

 

Agent 

komputera (ang. agent). 

Blokowanie 

 

ykonywania sekwencji 

$

. 1 

 

 

(

ane i potwierdza 

"$'

(ang. target). 

 

('

"$

faz transmisji danych (ang. master). 

Most 

#$

. #1 

 

 

##$#'

 

"

'8"

#. 1 

 

Przes

sekwencyjne 

podstawowy dla PCI tryb transmisji danych: po jednej 

'

'

-

#

podawania ich adresów (ang. burst transfer). 

background image

 

 

 !

!"

 

"$"8

$

innych -

-

.

cache coherency). 

#

ów 

 

operacyjnej) 

.

')*+1

("

"$'

#

". #

snooping). 

Wiersz 

 

"

 

liczba bajtów -

-

ymiany 

". .11 

 

 

I PCI 

2 )*+  #$    ,- #

/0 #  9 #    # '

  %"    

lne dla obu 

konfiguracji i specyficzne dla rozszerzenie 64.bitowego. 

$%&'(

 

 

In 

9" 

 

Out 

9">?)> 

 

t/s 

9"

-

 

s/t/s 

?    9   

   "$     

wysokiej impedancji jedynie poprzez aktywny stan wysoki, 

       @ 

$

gent. Nowy 

  $       "

        

        % 

biernym konieczne jest podtrzymanie stanu linii przez opornik 

 

 

o/d 

9      

     ' 

galwanicznej. 

# 

9#A

 

background image

 

N

  -    

  )*+  2     0B

0C.$0D1 

 

 

s/t/s 

Przerwania 

Dodatkowe 
linie dla 
transmisji 
64.bitowej 

INTD# 

INTC# 

INTB# 

INTA# 

Sterowanie

GNT# 

REQ# 

SERR# 

IDSEL 

DEVSEL# 

IRDY# 

TRDY# 

FRAME# 

PAR64 

PAR 

AD[31::00] 

AD[63::32] 

C/BE[3::0]# 

C/BE[7::4]# 

STOP# 

PERR# 

CLK 

RST# 

REQ64# 

ACK64# 

LOCK# 

SBO# 

SDONE 

JTAG 

Adres 

i dane 

9

systemowe

9

awaryjne

:#

(!

 

(

 

Kontrola 

"

 

 

 

$%)(!

 

%'$(

 

 9

 

 

Adres i dane (wspólne linie –

   "  '

 1      #

.1" 

 

 9 

 

 9# 

 

Sygnalizacja sytuacji awaryjnych. 

9"#

LOCK# 

      ' 

 9##

 

 

background image

 

RST# in 

9    < 

    "$

    

 

 

IDSEL in 

9    

PCI podczas operacji odczytu i zapisu rejestrów 
konfiguracyjnych. 

CLK in 

9

cy wszystkie 

   )*+  9 

doprowadzony do wszystkich stanowisk. Wszystkie 

  

RST#,  INTA#,  INTB#,  INTC# 

oraz  INTD#

  #  

#

CLK

 

%

"$   #$ .  

stanie niskim) zmieniona w zakresie od 0 do 

,,23.#$"

  1  2 )*+  #$

"

 

REQ# t/s 

9    

prze

#

 

GNT# t/s 

%  #  

    

 &

GNT#

AD[31::00] t/s 

)  

ch. 

)  '   

#' 

 

C/BE[3::0]# t/s 

Linie multipleksowane. 

% ' 

     % '

    

  "  

#E,

-0] danych. 

PAR t/s 

F".1

  #  

AD[31:00] i C/BE[3::0]#,

#

     '

#

'

 8   

 

FRAME# s/t/s 

9     

  $   6" 

    8  

st

    ' 

FRAME# przechodzi w stan wysoki.  

background image

 

IRDY# s/t/s 

9     

 $ # ' 

  )   

IRDY# 

  

 wystawione na liniach 

AD[31::00]

     ) 

  "$  

#' G

    # 

IRDY# i TRDY#

 

 

TRDY# s/t/s 

9

      <

 "  '  

 $ # ' 

  ) 

TRDY#

iach  AD[31::00] 

  !" 

TRDY#  jest aktywny podczas 

      

 

DEVSEL# s/t/s 

9

      

adresata zainicjowanej operacji. 

PAR t/s 

F  " .  

1##

liniami  AD[31:00] i C/BE[3::0]#,

#

'   #  '

   2  

PAR

  '    

 2

bitem PAR przy odczycie danych. 

STOP# s/t/s 

9

-

   

-

 

zaprzestania wykonywan

  # 

 

PERR# s/t/s 

9      

     #

 

SERR# o/d 

9#

#"'

adresu lub danych podczas cyklu specjalnego lub 

#$

katastrofalne skutki. Utrzymywany jest w stanie 
niskim na czas jednego impulsu zegarowego. 

background image

 

LOCK# s/t/s 

9    

podczas wykonywania operacji nierozdzielnych, do 

#  .1'

  #   2 

pozostaje zablokowany do momentu, kiedy oba 

FRAME# i LOCK#

     

  2    

LOCK#

     

$

$  .  1

   # '

 ?

     

LOCK#

 

$%$*(($)+,

 

 

INT[A::D]# o/d 

=

.#

 1    

7    #$ 

 '  $ 

    7  

 '  $  

linii INTA#

SDONE in/out 

9

 "   

operacyjnej 

 "  

$

#

buforowaniem. Aktywny SDONE (w stanie wysokim) 

  '  %

"

SBO#: w stanie wysokim informuje, 

      "

pa

  %    

 $  

"$ 

 

SBO# in/out 

9    

"$ "   

"

#'

#

 "    

 )*+ #'  $

  7     

"  

SDONE (stan wysoki) 

      

 )*+  

y z odczytem lub 

'    (

 

 

background image

 

$%,(!(!+,!

 

 

AD[63::32] t/s 

2      %

faz

    

 '  % ' 

  

REQ64# i ACK64#

  

stanie niskim, po liniach tych transmitowane 

,-# 

 

C/BE[7::4]# t/s 

9   % ' 

a

    '  !" 

'   

REQ64# i 

ACK64#

      

 

"   # EC

-

0H 

'

 

PAR64 t/s 

9

"

 

AD[63::32] i C/BE[7::4]#. 

REQ64# s/t/s 

9  /0 #  

"

FRAME#. 

ACK64# s/t/s 

9  /0 # 

 

"

DEVSEL#

 

  !?:I .?*& ?+ ?6 ?29 ?J9?A1 

     )*+  

zaleceniami standardu IEEE 1149.1. 

4. OPERACJE NA MAGISTRALI PCI 

,%&

 

%       $

      $    

        )  

$     $   

samym czasie, potrzebny jest mechanizm rozstrzygania o wyniku 

   #   

 # 

 

%  )*+      

 #       

indywidualnymi liniami

 

REQ# i GNT#

  : 

$   )*+    .

background image

 

1  

REQ#

     $

#.#1

GNT#

 

 

REQ# 

2

 

GNT# 

REQ# 

2

 

GNT# 

REQ# 

2

 

GNT# 

 
 
 

Centralny 

 

#

 

 

 

= )*+  '    # 

$      2  #$

zasada „kto pierwszy ten lepszy”, priorytet cykliczny lub inny 

 

 !!!

 

=  0  #   #

::F# ::"

    

REQ#a ustawiony w stan niski. 

)  # 4     

  #  ) "  

background image

 

zegarowego arbiter, przez ustawienie s

GNT#a (w stan niski), 

: ::$

       

.

FRAME# i IRDY#

1

GNT# 

jest w stanie niskim. Operacja 

   

zegarowego 3, kiedy FRAME# 

 

 

)  :  $  

 

REQ#a w stanie aktywnym. Podczas 3. impulsu 

  

FRAME# jest w stanie niskim , arbiter 

   F      

0

GNT#

#

GNT#a w 

   : :     

0 :F

 wykrywa koniec operacji 

 

FRAME# i IRDY#

 6

# :F

K

FRAME# i IRDY#

stanie wysokim. Operacja prowadzona przez agenta B zostanie 

C )

REQ#

#      

FRAME# w stanie 

  6    F #  

przeprowadzenia jednej operacji. W nas

  " 

#   #   

:

REQ#

  :       

$      

REQ# w 

        )

        

     #    

 

 

9

GNT# 

     # 

 

 

!"        #  

     #    

$    "  2  #$ 

      # 

 "  2     

 .  1     ?   

  .

GNT#

  

zu agenta w stanie niskim), 

       #$

"

REQ# w stan niski. 

,%)-

 

2         

wykonania operacji wy

 '   

   +  '   

     #  

do magistrali. 

background image

 

))*+

na w 

    9     '

  .    1 

 '    = )*+  

-wy. 

Ws

  .   

    1  # 

 #    %   

     )  # 

nieustalo

 

 

)    )*+    

(

 

FRAME# 

  

trwania operacji. 

IRDY# 

       

pojedynczej fazy

 

 

TRDY# 

       

pojedynczej fazy transmisji danych. 

2       

FRAME# i 

IRDY#

 )#

FRAME#

.1'

adresu (po liniach AD[31::0]). W tym czasie liniami C/BE[3::0] 

 

 

=  #

 CLK 

  # 

 '      

  <    # 

TRDY# i IRDY#

 

!    

IRDY# lub TRDY#  jest w stanie wysokim, 

#

owadza cykle oczekiwania. 

: #$L

RDY# w 

.

IRDY# dla cyklu zapisu oraz 

TRDY#

   1  : #   

xRDY# w stan niski lub wysoki, 

     

 

2    

IRDY#

     

$

IRDY# oraz FRAME#

#

'

TRDY#.  

2  #    

    '     

FRAME#

       

IRDY#

 )"

FRAME# do 

    #   

 

 

background image

 

 

4.3 Rozkazy magistrali PCI 

)   '    .'

adresowej), po liniach C/BE[3::0],

        

AD[31::00]

 J$

# J(

 

i. danych, 

ii. we-wy, 

iii. 

 

<

tawiono 

w tabeli: 
 

 

C/BE[3::0]

Typ operacji 

Komentarz 

1. 

 

  0000 

Potwierdzenie przerwania 

Bezadresowa, odczyt 

2. 

 

  0001 

Cykl specjalny  

Bezadresowa, zapis 

3. 

 

  0010 

Operacja czytaj z we-wy 

We-wy 

4. 

 

  0011 

Operacja zapisz we-wy 

We-wy 

5. 

 

  0100 

Zarezerwowane 

6. 

 

  0101 

Zarezerwowane 

7. 

 

  0110 

*

 

)$

 

8. 

 

  0111 

<

 

)$

 

9. 

 

  1000 

Zarezerwowane  

10.

  1001 

Zarezerwowane  

11.

  1010 

*'

 Konfiguracja 

12.

  1011 

<'

 Konfiguracja 

13.

  1100 

%

 

)$

 

14.

  1101 

Podwójny cykl adresowy (64 bity) 

)$

 

15.

  1110 

*

 

)$

 

16.

  1111 

<

 

)$

 

background image

 

 

Potwierdzenie przerwania

      )*+  

  )$

rozkaz 

potwierdzenia przerwania

.1

 @

 AD[31::00] 

tej operacji wykorzystywane i ich stan w fazie prz

 

 " .  #$ #1  & 

 

DEVSEL#

  #   % '

transmisji danych linie C/BE[3::0]#

 "   # 

 

 

Rozkazy typu 

cykl specjalny

    

 .  M   N #

MN1.

   

DEVSEL#). W fazie adresowej stan 

linii adresowych jes

"$ 

 

Rozkazy 

czytaj z  we-wy i zapisz we-wy

   

-wy. W fazie adresowej po liniach 

AD[31::00]

 .  #$ 1   

  "   #  

 przestrzeni 

-wy. 

Rozkazy 

  

 i 

    

       

.""$##

 

Rozkazy typu 

 

 i 

  

wykorzystywane odczytywania i zapisu informacji w przestrzeni 
adresowej (wybranego agenta) zarezerwowanej dla potrzeb 
konfiguracji. 

    #    

8 '

##

-

 

Rozkazy typu  podwójny cykl adresowy

    

korzystania z adresacji 64.bitowej. 

Rozkazy typu 

#

         

" # # "       

 

 

Rozkazy typu 

      #  

         

kompletu bajtów odwzorowywanych w jednym lub kilku wierszach 

   2    #

podczas jednej operacji. Wykonanie tego rozkazu wymaga sprawdzenia 

background image

 

  ' #   

 

 

%#$

zytaj lub zapisz 

' )# 

 

4.4 Adresowanie 

&   )*+  # $ 

   !"      

 

DEVSEL#. 

9

TRDY#, potw

 "$

      "$  

  "    

DEVSEL#. Raz ustawiony 

 DEVSEL# 

 #$     

danych. 

)    

 adresu: pozytywne i 

 %

)*+  "      2 

  #     

"        

  ? #   #$  

       F 

    )*+    

Najkrótszy dopuszczalny czas reakcji przy dekodowaniu negatywnym 

 #$       

     # 

CLK

  7

     , ( #

"

 5. 

 

1               2               3              4               5              6              7               8 

(#"

 

FRAME# 

CLK 

DEVSEL# 

 

 !!"#$%#&'

 

6      

'   

AD[1::0],

 

w fazie pr

   6   

AD[1::0] 

DEVSEL#

C/BE[3::0]#

 "  # 

liniami  AD[31::0]

  '    

'  2   $   ' 

   $ " "$  

#'

     2    

background image

 

  $ "$  

AD[31::0]  i  C/BE[3::0]#

      

 

 

!"        

   # $   '

wykorzystania linii magistralowej przez kolejnych agentów powinien 

$     )   

 

 

4.5 Rozkazy konfiguracyjne 

%      )*+ # '  

    )   

'    &  )*+ 

$ -K/ #

w w przestrzeni rejestrów konfiguracji. 

       

  # '   #$ 

  #$    

IDSEL, który w 

        J

'   #$    " 

'  

IDSEL

      

jest warunek AD[1::0]

O>PP>  %  

#  #      

linii AD[7::2]

%     ' 2G  $

-K/

#

'

=

'.#1

jest po liniach AD[10::8]

 

Zarezerwowane MF 

Nr 

rejestru 

%()*+,!+

 

 

Most PCI-PCI 

 

Most PCI-PCI 

 

 !"

 

background image

 

 

%)*+ 

rysunku 7, kierowana do odpowiedniego mostu PCI-PCI, informacja 
adresowa (dla przestrzeni rejestrów konfiguracji) ma bardziej 

 $  )     

#$# 

 

 

Zarezerwowane Nr 

magistrali 

7

 

MF Nr 

rejestru 

#%(-*+,!+

 

Dopiero na poziomie odpowiedniego mostu zaadresowanej magistrali 

  ' # .  1

po liniach AD[15::11]

  .  1

odpowiedniej linii IDSEL 

    '

adresowej okrojonej do postaci typu 0 (rysunek 6). 

Sposób st

 

IDSEL

     

  %      

    " .  B

MQQQQQQQN1

"

wystawianie ad

 .    B1 # $  

#      

IDSEL

?       

  '        

FRAME#

 

1               2               3              4               5              6              7   

DANE 

ADRES 

FRAME# 

CLK 

IDSEL 

DEVSEL# 

AD 

IRDY# 

TRDY# 

 

$!+!+,!+

 

J '  $   #

 .4/ #1   .,- #1   #  

Podczas operac

  #    

background image

 

#     .

"

AD[7::2]). 

,%+'

 

)#'

je 

      

bitów odebranych z linii  AD[1::0]

  % "   "

##

 

 

AD1 AD0 

Rodzaj transmisji 

0 0 

#

 

0 1 

 

1 X 

'

 

 

)  #     # 

       

adresowych AD[31::02]

 

 

%.!+!!

 

Na rysunku 10 przedstawiono przebiegi czasowe 32.bitowej operacji 

   )    

FRAME# 

background image

 

 '    )  #

2. impulsu zegarowego stan linii AD[31::0] oraz linii C/BE[3::0]# 

       G  

     ,  ?

eraz linie C/BE# 

"  #     

'  G    $  

  

TRDY#

   "$ 

 2

zane 

    F' "  

C/BE#

  #$     

    '   

 

 

2 ''

 

TRDY# jest w stanie wysokim, konieczne jest 

     

   

DEVSEL# przejdzie w stan niski, 

   $  

 

 

)'

TRDY#  lub  IRDY# jest 

  2

 " $ 

ane podczas impulsu zegarowego 4. Faza 

     

IRDY# i TRDY#

  

         

    0 /  D  

podczas impulsów 3, 5 i 8. Pierwsza faza 

         '

  

TRDY# jest w stanie wysokim, natomiast 

 '    

IRDY# jest w stanie 

wysokim podczas impu

  C  2  

' .

FRAME#

   1   

 C   '    2

     # $  '

   

mpulsu zegarowego 7, wobec czego 

 

=  44   #  

32.bitowej operacji zapisu 

   J   

FRAME# w stan niski w czasie impulsu zegarowego 

2. Operacja zapisu jest podobna do operacji odczytu z tym 

#

 '       .1

       G    

same dla obu operacji. 

%     44    '

 # %'

trzeci

       

 %'

    6 '  

     .

FRAME# w stanie 

wysokim) w

/ !

podczas impulsu zegarowego 8.  

background image

 

 

 

.!+!

 

,%.*!

 

##

równoczesnej modyfikacji danych przez kilka procesorów, stosowany 
jest mechanizm

       %

systemach

##$

#$    '  

docelowego dla przeprowadzenia sekwencji operacji nierozdzielnych. 
W tym czasie ten fragment

 

 powini

 #$  

 

innych agentów

  F   

"$    #   

zadanie (

#$

). 

W celu zab

'

    )*+

LOCK#

    

REQ# powinien sprawdz

$

 

 

LOCK#

  9

LOCK#

     

momentu, w któr

 9

 " # 

FRAME# i LOCK#

    

  !" 

LOCK#

     

$

REQ# - 

$

zwolni. 

!"

LOCK#

        

magistrali, 

przej

$    

Pozostali agenci nie 

$

LOCK# 

"

a

magistrali. 

W czasie kiedy

     

LOCK#, pozostali 

.   1 

efektywnie 

$

background image

 

)*+#$

## 

 

4.8 Wykorz

 

= )*+   # 

na magistrali PCI z 

      $  .#

   1    

""" %

    

SDONE i SBO#. Przy ich 

' &

   #'   

$      #   $

9

SDONE jest ustawiany w stan wysoki, kiedy procedura 

kontrolna 

a

 

a. Stan niski s

u  SBO# oznacza, 

 

nieaktualne dane

 &

SBO# i SDONE

 

oznacza to,

 

 

     #$  

agenta. 

4.9 Operacje w przestrzeni adresowej rejestrów we-wy 

W przypadku operacji wykonywanych w przestrzeni adresowej 
zarezerwowanej dla operacji we-wy, wszystkie linie AD[31::0] 

"   .1 # 

  &"$     "

#$

.,-#1

-wy. 

=         

    ? #  

     :   )*+

 #$       

      9"$ 

danych, wyznaczana przez C/BE#

  #$   "

zaadresowanego sterownika we-wy. 

W przestrzeni rejestrów we-wy linie AD[1::0] 

.  

 1    # 

 

 

 

AD1 AD0 

C/BE#3 C/BE2# 

C/BE1# 

C/BE0# 

0 0 

0 1 

1 0 

H H 

1 1 

H H H 

background image

 

 

4.10 Przerwania 

%     )*+   

=      

INT#

L  

przerwania i powoduje po pewnym czasie wykonanie rozkazu 
potwierdzenia przerwania (linie C/BE[3::0]="0000") dla odczytania 

  %'

AD[31::0] nie 

  '    

  " .   $  

   $ 

DEVSEL#). Wektor 

AD[31::0]

'

danych, kiedy TRDY#

 %##$

   #   #$ 

przed czasem. 

,%&&/0(

i PCI 

<    )*+  $ 

   #   2  

       

 

 

2   $    

    $ #   #  

# '        D

   %     

'$    "  #

'    

STOP#

  9

STOP# raz 

     #$   

FRAME# 

nie przejdzie w stan wysoki. 

2    

nia operacji, przez 

FRAME# 

IRDY# jest w 

 +'#

       

IRDY# i TRDY#

       & # 

          

2   $   

    #   

limitu czasu przewidzianego na wykonanie danej operacji. 

4.12 Cykl specjalny 

J      #  7

        #

    2    "$ 

komunikat jest skie

    J    

       #   

DEVSEL#

  % '   

C/BE[3::0] 

 '  #    

specjalny, natomiast linie AD[31::0]

   

background image

 

' %'

AD[15::0] 

       

  ? 

AD[31::16]

  #$  

ów. 

,%&$1(

 

%    # "  

 '      

AD[31::0] i 

C/BE[3::0]

  #    )*+  : 

    $  

AD, 

"

 

  #    (

PERR# oraz 

SERR#

  )      "

       

)$

 )$

przez dwa impulsy z

     9

SERR# 

#"

   #   9' 

SERR#

   #$     

kilku agentów

 " #    

 

4.14 Rozszerzenie magistrali PCI do 64 bitów 

Rozszerzenie magistrali do 64 bitów wymaga 39 dodatkowych 

  (

REQ64#,  ACK64#,  AD[63::32],  C/BE[7::4] 

oraz PAR64

 6/0 # F

 

REQ64#

  2  "  

/0 #

ACK64#

?        

#$   /0 #  )   

   '     

,- #  %   # "  

AD[63::32] lub C/BE[7::4]

PAR64 przechodzi w stan niski. 

Na rysunku 12 przedstawiono przebiegi czasowe 64.bitowej operacji 

 2/0 #

REQ64#

     2   "$ 

   

ACK64# w sta

   9 

  

FRAME# i DEVSEL# przy operacjach 

32.bitowych. 

: ,- #  $  /0 #  !" /0 #

"

64.bitowej, wówczas automatyc

  $  

wykonanie operacji 32.bitowej. 

background image

 

 

 

&'