Měření na sběrnici PCI

Předmět: 36PZ, Katedra počítačů, ČVUT FEL
Řešitelé: K.Pechanec, S.Duben, O.Fialka, J.Saidl
Datum měření: Čt 22.4.2004, 12:45-14:15


Obsah

  1. Úkol měření
  2. Průběh měření
  3. Výsledky měření
    1. Měření přůběhu signálu
      1. Čtení jednoho bitu z paměti (mwrite)
        1. bez modifikace
        2. posun o 1B
        3. posun o 2B
        4. word
        5. doubleword
      2. Zápis několika po sobě následujících dat (longwrite, bytemerge)
        1. longwrite bez modifikace
        2. longwrite - posun o 1B
        3. bytemerge
      3. Zápis a čtení 8bitového portu
        1. ioread
        2. iowrite
      4. Čtení konfiguračního registru (cfgread)
      5. Vyvolání speciálního cyklu (special)
        1. 1 - bez modifikace
        2. 2 - shutdown - vyslano 00000000h
        3. 3 - shutdown - to same v jinem meritku obrazku
    2. Zjištění připojených PCI adaptérů
  4. Závěr
  5. Odkazy


1. Úkol měření

Cílem měření bylo změřit signály základních cyklů na sběrnici PCI a pomocí programu dumpci zjistit informace o sběrnici PCI a typy připojených adaptérů.


2. Průběh měření

K dispozici byly dva počítače PC, jeden byl vybaven měřící kartou (s obvodem XILINX) která snímá průběhy jednotlivých signálů a ukládá je do pamětí typu DIMM, které jsou součástí karty. Měřící karta byla spojena přes paralelní port s druhým počítačem, který byl vybaven softwarem (PCI Analyzer) pro zpracování dat z paralelního portu a zobrazoval průběhy měřených signálů na obrazovku.

Na počítači vybaveným měřící kartou (PC1) jsme v režimu MS-DOS spustili program testpci který různým způsobem generoval sběrnicové cykly dle zadaných parametrů (tab.1) Pro některá měření, bylo nutné zdrojový kód programu modifikovat a přeložit do spustitelné verze. Program testpci je napsán v assembleru a jeho původní zdroje naleznete zde. Po spuštění testpci s danými parametry probíhalo měření na PCI Analyzeru na druhém počítači, který byl ve stavu Start. Screenshoty pořízené z měření naleznete zde (mimo iack).


3. Výsledky měření

3.1. Měření průběhu signálu

3.1.1. Čtení jednoho bytu z paměti (mwrite)

1 - bez modifikace
Jelikož sběrnice PCI  pracuje s 32bitovou šířkou dat, označují signály C/BE 0:3 platnost jednolivých bytů. V tomto případě se přenášel pouze jeden (prvný byte) a proto jsou tyto signály nastaveny na hodnoty 0,1,1,1 (v pořadí 0:3)
 
2 - posun o 1B
V tomto případě se zapisuje na adresu posunutou o jeden byte. Jelikož celková adresa musí být dělitelná čtyřmi, je adresa na sběrnici stejná jako v předchozím případě, ale změnily se signály C/BE, které zde značí, že je platný 2. byte na sběrnici - jsou rovny 1,0,1,1
Ve zdrojovém kódu byl posun adresy proveden přičtením jedničky k registru obsahujícímu bázovou adresu.
 
3 - posun o 2B
Posun adresy o 2B je analogický s předchozím případem. Hodnoty C/BE signálů jsou 1,1,0,1
 
4 - word
Při prenášení hodnoty typu word (2 byty) jsou hodnoty C/BE signálů 0,0,1,1. To znamená, že jsou platné první dva byty na sběrnici.
5 - double word
Při přenášení hodnoty typu dword (4 byty) jsou hodnoty C/BE signálů 0,0,0,0.

 

3.1.2. Zápis několika po sobě následujících dwordů (longwrite, bytemerge)

1 - longwrite bez modifikace
 
Při zápisu dat typu dword pomocí příkazu longwrite probíhá přenos efektivně maximální rychlostí. Signály CB/E jsou v okamžiku přenosu rovny 0,0,0,0.
2-longwrite - posun o 1b
Posun adresy o 1B brání efektivnímu přesunu dat. Každý dword se v tomto případě přesouvá na dvakrát. Nejprve poslední 3 byty a potom první byte ze sběrnice (tomu odpovídají C/BE signály 1,0,0,0 a 0,1,1,1) Z obrázku je dobře patrné, že stejná data jsou na sběrnici dvakrát na rozdíl od předchozího příkladu.
3 - bytemerge

 

3.1.3. Čtení a zápis 8bitového portu
Čtení z portu a zápis na portu probíhají stejně jako operace s pamětí. Rozdíl spočívá v tom, že adresa u portů nemusí být dělitelná čtyřmi

1 - ioread

2 - iowrite

 

3.1.4. Čtení konfiguračního registru (cfgread)

Čtením z konfiguračního registru jsme identifikovali zařízení na adrese 0. Identifikační dword byl roven "153110b9"
Na internetu jsme našli odpovídajícího výrobce a zařízení:

"10b9": Acer Labs Inc.
"1531": North Bridge, Acer Incorporated

3.1.5. Vyvolání speciálního cyklu (special)

1 - bez modifikace
Speciální cyklus s daty 55AA55AA
2 - shutdown - vyslano 00000000h

Vyslaní zprávy SHUTDOWN způsobilo resetování počítače. Na sběrnici jsme při tom zachytili množství signálů souvisejících s provedením resetu.

3 - shutdown - to same v jinem meritku obrazku

3.2. Zjištění připojených PCI zařízení

Pomocí programu pcidump jsme z výstupu získaly informace o PCI sběrnici a připojených zařízeních. Výstup programu naleznete zde.

Výsledky uspořádané do tabulky:

No. Výrobce Typ Třída Adresa paměťového prostoru I/O Vektor přerušení NEVSEL status
1 Acer Laboratories Inc. M1531 Bridge(06h)
Host Bridge (00h,00h)
0 0 0 0
2 Acer Laboratories Inc. M1535+ PCI South Bridge
(01h,00h) ISA Bridge
0 0 0 0
3 Realtek RT8139A/B/C Fast Ethernet Adapter (02h)Network Controller
(00h,00h) Ethernet Controller
0xe4000000 0x6401 11 1
4 S3 PAUL 86C375/86C385
ViRGE /DX & /GX
(03h)Display controller
(00h,00h)VGA-compatible controller.
0xe0000000 0 10 1
5,6,7,
8,9,10
Not installed
11 Acer Laboratories Inc. M1543
Southbridge EIDE Controller
(01h) mass storage controller
(01h,FAh) EIDE controller
0 0xf001 10 1
12,13,14,
15,16,17,
18,19,20
Not installed
 

4. Závěr

Během měření této úlohy jsme si ověřili průběhy sledovaných signálů na sběrnici PCI a naučili se pracovat se zdrojovým kódem v assembleru pro řízení PCI sběrnice. Naměřené průběhy, jejichž obrazy jsou výše uvedené, odpovídají specifikaci PCI zařízení. Pomocí programu pcidump jsme se naučili číst informace o zařízeních připojených na PCI sběrnici.


5. Odkazy

PCI Local Bus Specification (http://www.hoodoox.org/pub/PCI_22.pdf)
PCI Vendor and Device Lists (http://www.pcidatabase.com)
Návod k měření (http://service.felk.cvut.cz/courses/36PZ/data/pci/Uloha_F.doc)
Studijní materiál PCI (http://service.felk.cvut.cz/courses/36PZ/data/pci/PCI_text.doc)
Program pro generování sběrnicových cyklů - zdroj (http://service.felk.cvut.cz/courses/36PZ/data/pci/testpci.asm)
Program pro výpis informací o zařízení (http://service.felk.cvut.cz/courses/36PZ/data/pci/dumppci.c)