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