Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Anatomia PC.
Wydanie VII
Autor: Piotr Metzger
ISBN: 83-7197-751-4
Format: B5, stron: 1082
Spis treci
Rozdzia 1.
Mikroprocesor ......................................................................................23
Przetwarzanie rozkazw ..........................................................................................................25
RISC i CISC .......................................................................................................................25
Pipeline ...............................................................................................................................26
Faza pierwsza pobranie (Prefetch, PF)....................................................................28
Faza druga dekodowanie (Decode, DE)..................................................................28
Faza trzecia wykonanie (Execute, EX) ...................................................................28
Faza czwarta zakoczenie i zapisanie wynikw (Write Back, WB) .......................28
Techniki przyspieszania......................................................................................................28
Techniki superskalarne.................................................................................................29
Przemianowywanie rejestrw.......................................................................................29
Przepowiadanie ............................................................................................................32
Optymalizacja kodu......................................................................................................35
Dostp do pamici ...................................................................................................................35
Adresowanie .......................................................................................................................37
Stronicowanie .....................................................................................................................38
Caching ....................................................................................................................................40
Topologie............................................................................................................................41
Organizacja pamici podrcznej.........................................................................................43
Mapowanie bezporednie (Direct Mapped) .................................................................43
Pena asocjacja (Fully Associative)..............................................................................43
Asocjacja zespoowa (Set Associative) ........................................................................44
Strategie ..............................................................................................................................44
Write Through ..............................................................................................................45
Write Back....................................................................................................................45
Pami podrczna procesora 80386....................................................................................45
Okrelenie trafienia ......................................................................................................47
Decyzja o wymianie linijki (LRU) ...............................................................................47
Obsuga przestrzeni adresowej I/O ..........................................................................................49
Procesor 8086 .....................................................................................................................50
Procesory 80386 i 80486 ....................................................................................................50
Pentium ...............................................................................................................................51
Funkcje kontrolne i sterujce...................................................................................................51
BIST....................................................................................................................................51
Kontrola TLB......................................................................................................................52
Kontrola pamici podrcznej..............................................................................................52
Przejcie w stan wysokiej impedancji ................................................................................52
JTAG...................................................................................................................................52
Czstotliwo taktowania ........................................................................................................54
Zasilanie...................................................................................................................................56
Jak rozpozna typ procesora ....................................................................................................59
Czy procesor jest zgodny z ukadem 80286 lub lepszym...................................................59
Procesor 8086/88 czy 80186/88..........................................................................................60
Anatomia PC
Procesor 80286 ...................................................................................................................61
Procesor 80386 ...................................................................................................................61
Procesor 486 czy Pentium ..................................................................................................61
Koprocesory.............................................................................................................................61
Koprocesor 8087.................................................................................................................62
Koprocesor 80287...............................................................................................................63
Koprocesor 80387...............................................................................................................63
Koprocesor i487SX ............................................................................................................64
Jak rozpozna typ koprocesora...........................................................................................64
Czy w systemie jest koprocesor ...................................................................................64
Koprocesor 8087.................................................................................................................65
Koprocesor 80287 czy 80387 .............................................................................................66
Rozszerzenia ............................................................................................................................66
MMX ..................................................................................................................................67
Zmiany w architekturze................................................................................................67
Rozpoznanie procesora P55C.......................................................................................69
Nowe rejestry ...............................................................................................................69
Nowe typy danych........................................................................................................72
Nowe rozkazy...............................................................................................................72
Przykady zastosowa ..................................................................................................77
3DNow! ..............................................................................................................................79
SSE .....................................................................................................................................79
SSE2 ...................................................................................................................................83
Rozdzia 2.
Spis treci
Rozdzia 3.
Anatomia PC
VC-SDRAM ..........................................................................................................................200
HSDRAM ..............................................................................................................................202
Porwnanie parametrw pamici ..........................................................................................203
LVTTL..............................................................................................................................205
SSTL_2 .............................................................................................................................205
SSTL_18 ...........................................................................................................................206
RSL ...................................................................................................................................206
Identyfikacja producentw chipw pamiciowych ...............................................................207
Rozdzia 4.
Rozdzia 5.
Spis treci
Rozdzia 6.
Rozdzia 7.
Rozdzia 8.
Anatomia PC
Przerwanie 26h .................................................................................................................326
Przerwanie 21h .................................................................................................................326
Obsuga dyskw za pomoc funkcji BIOS-u....................................................................327
Funkcja 00h ................................................................................................................328
Funkcja 01h ................................................................................................................329
Funkcja 02h ................................................................................................................329
Funkcja 03h ................................................................................................................330
Funkcja 04h ................................................................................................................330
Funkcja 05h ................................................................................................................331
Funkcja 08h ................................................................................................................333
Funkcja 15h ................................................................................................................335
Funkcja 16h ................................................................................................................336
Bezporedni dostp do kontrolera napdu dyskw elastycznych.....................................336
Rejestry kontrolera napdu dyskw elastycznych......................................................337
Cykl rozkazowy kontrolera....................................................................................................339
Faza przygotowawcza.......................................................................................................339
Faza przekazywania rozkazu ............................................................................................339
Budowa przykadowego rozkazu rozkaz RS (Read Sector) ..........................................340
Faza przekazywania rozkazu......................................................................................340
Faza przekazywania danych .......................................................................................341
Faza kocowa .............................................................................................................342
Alternatywne metody transmisji danych ..........................................................................345
Uwzgldnianie mechanicznych wasnoci napdu ................................................................346
Zabezpieczanie danych kod CRC .....................................................................................348
Rozdzia 9.
Spis treci
10
Anatomia PC
Sytuacje wyjtkowe ..........................................................................................................456
Uwaga (Attention) ......................................................................................................456
Zerowanie (Reset) ......................................................................................................458
Rozkazy systemowe..........................................................................................................460
Informacja statusowa ........................................................................................................464
Komunikaty (Messages) ...................................................................................................465
00h: COMMAND COMPLETE (zakoczono wykonanie rozkazu) .........................467
02h: SAVE DATA POINTERS (zachowaj zestaw wskanikw)
03h: RESTORE POINTERS (przywr zestaw wskanikw) ............................467
04h: DISCONNECT (rozczenie).............................................................................467
05h: INITIATOR DETECTED ERROR
(wykryto nienaturalne zachowanie inicjatora) .....................................................467
06h: ABORT (przerwij natychmiast) .........................................................................467
07h: MESSAGE REJECT (odmowa przyjcia wiadomoci).....................................467
08h: NO OPERATION (wiadomo pusta) ...............................................................468
09h: MESSAGE PARITY ERROR (wykryto bd parzystoci)................................468
0Ah: LINKED COMMAND COMPLETE (zakoczono rozkaz czstkowy) ...........468
0Bh: LINKED COMMAND COMPLETE WITH FLAG
(zakoczono rozkaz czstkowy plus flaga)..........................................................468
0Ch: BUS DEVICE RESET (wyzerowanie)..............................................................468
0Dh: ABORT TAG (porzu wykonanie procesu)......................................................468
0Eh: CLEAR QUEUE (wyczy kolejk procesw) .................................................468
20h: SIMPLE QUEUE TAG (umie w kolejce) 21h: HEAD OF QUEUE TAG
(umie na szczycie) 22h: ORDERED QUEUE TAG (umie na kocu) ..........468
12h: CONTINUE I/O PROCESS 13h: TARGET TRANSFER DISABLE...............469
80h FFh: IDENTIFY (identyfikacja jednostki LUN)..............................................469
01h: SYNCHRONOUS DATA TRANSFER REQUEST
(uzgodnienie RAO i TP) ......................................................................................469
Procedura uzgadniania ...............................................................................................470
System wskanikw..........................................................................................................470
Przykadowa wymiana danych .........................................................................................472
SCSI w komputerach PC .......................................................................................................476
Host-Adapter.....................................................................................................................478
Okablowanie .....................................................................................................................480
Terminatory ......................................................................................................................482
Rozszerzenia SCSI............................................................................................................485
Spis treci
11
12
Anatomia PC
Rejestr adresowy odczytu przetwornika PELARMR
(PEL Address Read Mode Register) adres 3C7h............................................522
Rejestr adresowy zapisu przetwornika PELAWMR
(PEL Address Write Mode Register) adres 3C8h ...........................................522
Rejestr informacyjny przetwornika PELDR (PEL Data Register) adres 3C9h.....523
Ukad sterowania wywietlaczem (CRT Controller)........................................................523
Rejestr indeksowy ukadu sterowania wywietlaczem CRTCAR
(CRTC Address Register) adres 3B4h (3D4h) ...............................................523
Rejestr informacyjny ukadu sterowania wywietlaczem adres 3B5h (3D5h)......523
Rejestr cakowitego czasu wywietlania linii HTR
(Horizontal Total Register) indeks 00h...........................................................523
Rejestr koca wywietlania poziomego HDER
(Horizontal Display End Register) indeks 01h ...............................................524
Rejestr pocztku wygaszania poziomego SHBR
(Start Horizontal Blanking Register) indeks 02h ............................................524
Rejestr koca wygaszania poziomego EHBR
(End Horizontal Blanking Register) indeks 03h .............................................524
Rejestr pocztku powrotu poziomego SHRR
(Start Horizontal Retrace Register) indeks 04h ..............................................525
Rejestr koca powrotu poziomego EHRR
(End Horizontal Retrace Register) indeks 05h................................................525
Rejestr cakowitego czasu wywietlania obrazu VTR
(Vertical Total Register) indeks 06h ...............................................................525
Rejestr przepenie ukadu sterowania wywietlaczem OVRFLR
(Overflow Register) indeks 07h ......................................................................526
Rejestr pooenia pierwszej linii PSLR (Preset Scan Line Register)
indeks 08h .......................................................................................................526
Rejestr ostatniej linii znaku MSLR (Max Scan Line Register) indeks 09h ..........526
Rejestr pierwszej linii kursora CSR (Cursor Start Register) indeks 0Ah..............527
Rejestr ostatniej linii kursora CER (Cursor End Register) indeks 0Bh ................527
Rejestry adresowe SAHR, SALR (Start Address High Register,
Start Address Low Register) indeksy 0Ch i 0Dh .............................................527
Rejestry pozycji kursora CLHR, CLLR (Cursor Location High Register,
Cursor Location Low Register) indeksy 0Eh i 0Fh ........................................528
Rejestr pocztku powrotu pionowego VRS (Vertical Retrace Start)
indeks 10h .......................................................................................................528
Rejestr koca powrotu pionowego VRE (Vertical Retrace End) indeks 11h .......528
Rejestr koca wywietlania pionowego VDER
(Vertical Display End Register) indeks 12h....................................................529
Rejestr dugoci linii OR (Offset Register) indeks 13h.........................................529
Rejestr pozycji podkrelenia ULR (Underline Location Register) indeks 14h.....529
Rejestr pocztku wygaszania pionowego SVBR
(Start Vertical Blanking Register) indeks 15h ................................................530
Rejestr koca wygaszania pionowego EVBR
(End Vertical Blanking Register) indeks 16h .................................................530
Rejestr trybu adresowania MCR (Mode Control Register) indeks 17h ......................530
Rejestr porwnania linii LCR (Line Compare Register) indeks 18h ....................531
Funkcje BIOS-u obsugujce karty graficzne........................................................................532
Funkcje okrelajce tryb pracy i oglne parametry sterownika .......................................532
Funkcja 00h wybr trybu pracy sterownika (EGA/VGA) ....................................532
Funkcja 01h okrelenie postaci kursora (EGA/VGA)...........................................533
Funkcja 02h ustawienie pozycji kursora (EGA/VGA)..........................................534
Funkcja 03h pobranie pozycji i postaci kursora (EGA/VGA) ..............................534
Funkcja 05h ustawienie numeru wywietlanej strony (EGA/VGA) .....................534
Spis treci
13
14
Anatomia PC
SGRAM......................................................................................................................584
MDRAM ....................................................................................................................584
V-RAM.......................................................................................................................585
WRAM .......................................................................................................................586
DDR-SDRAM ............................................................................................................586
RAM-DAC ............................................................................................................................586
Dopasowanie monitora do karty ............................................................................................588
Parametry karty.................................................................................................................589
Jako monitora ................................................................................................................590
Kana informacyjny VESA DDC .....................................................................................592
DDC1..........................................................................................................................593
DDC2B.......................................................................................................................593
DDC2AB ....................................................................................................................593
Zcza cyfrowe.......................................................................................................................594
TMDS ...............................................................................................................................594
P&D (EVC) ......................................................................................................................595
DFP ...................................................................................................................................595
DVI ...................................................................................................................................597
Spis treci
15
16
Anatomia PC
Funkcje BIOS-u obsugujce pami konfiguracji................................................................684
Funkcja 00h ......................................................................................................................685
Funkcja 01h ......................................................................................................................685
Funkcja 02h ......................................................................................................................685
Funkcja 03h ......................................................................................................................686
Funkcja 04h ......................................................................................................................686
Funkcja 05h ......................................................................................................................687
Funkcja 06h ......................................................................................................................687
Funkcja 07h ......................................................................................................................687
Bezporedni dostp do pamici CMOS.................................................................................688
Spis treci
17
18
Anatomia PC
Spis treci
19
20
Anatomia PC
Dodatki............................................................................................ 949
Dodatek A
Spis treci
21
Celeron/Socket 478...........................................................................................................990
Pentium II/Xeon................................................................................................................990
Pentium III ........................................................................................................................993
Pentium III/Xeon ..............................................................................................................994
Pentium 4 ..........................................................................................................................998
Pentium 4/Xeon ..............................................................................................................1001
Podstawki i obudowy procesorw Intel..........................................................................1002
Procesory IDT......................................................................................................................1003
WinChip C6 ....................................................................................................................1003
WinChip 2.......................................................................................................................1005
Dodatek B
Dodatek C
22
Anatomia PC
Zcza...................................................................................................................................1037
Zcza port rwnolegy ..............................................................................................1037
Zcza port szeregowy ...............................................................................................1037
Zcza USB................................................................................................................1037
Zcza IrDA ...............................................................................................................1037
Zcza Fire Wire (1394).............................................................................................1038
Zcza klawiatura.......................................................................................................1038
Zasilacze ..............................................................................................................................1038
Dodatek D
Dodatek E
Skorowidz ............................................................................................................1049
Rozdzia 6.
Kana DMA
DMA (Direct Memory Access) ma na celu usprawnienie dostpu do pamici. Ta forma
dostpu przewidziana jest dla urzdze peryferyjnych i nie naley jej myli z cyklami realizowanymi przez sam procesor. Tych odwoa nie da si usprawni za pomoc DMA.
Rysunek 6.1.
Idea bezporedniej
komunikacji ukadw
wejcia-wyjcia
z pamici
Ukady
I/O
CPU
Pami
Kana
DMA
286
Anatomia PC
Kady z ukadw 8237A moe obsugiwa cztery takie strumienie. Moliwy jest te kaskadowy sposb czenia kontrolerw 8237A; jedno z wej ukadu gwnego (Master)
obsuguje wtedy nastpny kontroler (Slave) i jest tym samym stracone. To rozwizanie
stosowane jest w IBM PC/AT i udostpnia siedem kanaw DMA.
dajce obsugi urzdzenie, stowarzyszone z danym kanaem DMA, wysya sygna DREQ
(DMA Request). Ukad 8237A reaguje na to przejciem kontroli nad magistralami systemu i przeprowadzeniem wymaganej transmisji, np. jednego sektora odczytanego z dyskietki do buforu w pamici operacyjnej (RAM), gdzie odbywa si poczenie sektorw
w plik danych. W tym czasie procesor jest wolny i moe, do czasu wystpienia przerwania od kontrolera napdu dyskw elastycznych (IRQ 6 odczytano kolejny sektor),
zajmowa si obrbk tekstu lub grafiki. Naley tu doda, e oczywicie nie zawsze
oznacza to dalsze wykonywanie programu. Trzeba bowiem pamita, e szyny (danych
i adresowa) s we wadaniu kontrolera DMA, a wic procesor moe przetwarza tylko
to, co ma w swoich rejestrach. Wszelkie odwoania do pamici operacyjnej musz czeka.
Sytuacj ratuje troch pami podrczna procesora (ang. cache memory) stosowana
w procesorze 80486 wewntrzna pami o wielkoci 8 kB. Moe w niej by jednak
umieszczany tylko kod programu, a nie dane. Dopiero nastpca procesora 80486 Pentium
ma podrczn pami danych.
Ta sama akcja realizowana bez ukadu DMA skadaaby si z kolejnych zapisw i odczytw
portu kontrolera napdu dyskw. Kolejne etapy to zaadowanie akumulatora, przesanie zawartoci akumulatora do portu sterujcego, odczyt portu danych do akumulatora, przesanie
zawartoci akumulatora do komrki pamici. To dopiero jeden bajt. Oczywicie przy kadym z tych krokw procesor jest w peni zajty i nie ma mowy o wielozadaniowoci.
I/O Read CPU wymusza na tym wejciu aktywny stan niski, chcc
odczyta dane z wewntrznego rejestru kontrolera DMA (podczas
programowania). W czasie transmisji DMA kontroler, przejwszy
nadzr nad magistralami, sam uaktywnia t kocwk, jeeli dane
transmitowane s z urzdzenia I/O do pamici.
~IOW
Rozdzia 6.
Rysunek 6.2.
Rozkad
wyprowadze
ukadu 8237A
~MEMR
~IRQ
40
A7
~IOW
39
A6
~MEMR
38
A5
~MEMW
37
A4
Vcc1
36
~EOP
READY
35
A3
HLDA
34
A2
ADSTB
33
A1
AEN
32
A0
HRQ
10
31
Vcc
~CS
11
30
DB0
CLK
12
29
DB1
RESET
13
28
DB2
DACK2
14
27
DB3
DACK3
15
26
DB4
DREQ3
16
25
DACK0
DREQ2
17
24
DACK1
DREQ1
18
23
DB5
DREQ0
19
22
DB6
GND
20
21
DB7
8237
Kana DMA
287
READY
HLDA
ADSTB
HRQ
288
Anatomia PC
~CS
CLK
RESET
DREQn
DACKn
A4 A7
~EOP
Vcc
GND
Masa zasilania.
Rozdzia 6.
Kana DMA
289
W kadym cyklu zegara sprawdzany jest ponadto stan wejcia CS. Aktywny stan tego wejcia (zero logiczne) powoduje przejcie ukadu w stan programowania; procesor moe komunikowa si z rejestrami ukadu 8237A, adresujc je wejciami A0 A3. Dane 8-bitowe
podawane s bezporednio przez linie DB0 DB7, a 16-bitowe porcjami po osiem.
Rol przecznika spenia kocwka ADSTB (Address Strobe). Tak samo odbywa si
czytanie wewntrznych rejestrw statusu.
Tryb S (Single)
W tym trybie pracy wykonywane jest pojedyncze przesanie. Wewntrzny licznik transmisji
jest zmniejszany o jeden, a rejestr adresowy, zalenie od zaprogramowania, o jeden zwikszany lub zmniejszany. Nastpne przesanie wymaga ponownego dania na linii DREQn.
Tryb B (Block)
Transmisja trwa nieprzerwanie do momentu wystpienia zewntrznego sygnau EOP od
urzdzenia lub osignicia przez licznik transmisji wartoci FFFFh. Jeeli na przykad licznik transmisji zostanie zaadowany wartoci 511 (dziesitnie), to pomniejszany o jeden przy
kadym przesaniu przejdzie przez stan 0000h do FFFFh, co spowoduje na przykad wczytanie jednego 512-bajtowego sektora dyskietki wprost do okrelonego miejsca w pamici.
Tryb D (Demand)
Tryb ten jest podobny do trybu B. Rnica polega na tym, e transmisja trwa do czasu
zaniknicia sygnau DREQn, pojawienia si sygnau EOP, wykonania zadanej w liczniku
transmisji liczby przesa lub nadejcia dania obsugi o wyszym priorytecie. Czasowa
dezaktywacja sygnau dania na wejciu DREQn powoduje wstrzymanie (ale nie zakoczenie) transmisji. Tryb ten ma pewne znaczenie dla ukadw umieszczanych na kartach
rozszerze w komputerach PC, bowiem nie jest tam wyprowadzany sygna EOP.
Tryb C (Cascade)
W trybie tym przekazywane s tylko sygnay sterujce od ukadu nadrzdnego (Master).
Ukad pracujcy jako podporzdkowany (Slave) nie wystawia na szyny systemowe adresw ani sygnaw sterujcych.
Tryb V (Verify)
Ukad pracuje tak, jak przy transmisji, tzn. wytwarza adresy, reaguje na sygna EOP i inne
sygnay, ale nie generuje sygnaw dostpu do pamici i urzdze wejcia-wyjcia (tj. IOR,
IOW, MEMR, MEMW). Tryb ten suy do diagnostyki wewntrznej ukadu i nie ma nic
wsplnego z weryfikacj danych.
290
Anatomia PC
DREQ
DACK
DREQ
DACK
DREQ
CPU
HLDA
HRQ
DACK
DREQ
DACK
8237A
Master
DREQ
DACK
Kana 7
DREQ
DACK
DREQ
Kana 6
Kana 5
HLDA
HRQ
DACK
DREQ
DACK
Kana 3
Kana 2
Kana 1
Kana 0
8237A
Slave
Rozdzia 6.
Kana DMA
291
Dla kadego kanau DMA istnieje ponadto jeden 16-bitowy rejestr licznika transmisji.
czna liczba rejestrw ukadu 8237A wynosi 27.
W danej chwili moe by aktywny tylko jeden kana DMA, tzn. transmisje nie mog si
ze sob krzyowa. Poniewa jednak kady kana jest programowany niezalenie, istnieje
para rejestrw wsplna dla caego ukadu 8237A, przechowujca adresy i licznik transmisji aktywnej w danej chwili. Dziki temu jest moliwe tzw. samoprogramowanie ukadu
do stanu pocztkowego po zakoczeniu transmisji.
Programowanie ukadu 8237A, podobnie jak wielu innych kontrolerw w komputerze PC,
odbywa si poprzez zapisywanie przez procesor rejestrw sterujcych odpowiedni
wartoci. Informacja o stanie kontrolera moe by odczytywana przez procesor z rejestrw statusu. Rejestry te, bdce integraln czci kontrolera, s postrzegane przez
procesor poprzez porty wejcia-wyjcia.
Rejestr
000h
001h
002h
003h
004h
005h
006h
007h
008h
008h
009h
Rejestr da
00Ah
00Bh
Rejestr trybu
00Dh
Rejestr poredni
00Fh
Rejestr maskujcy
081h
082h
083h
087h
(A)
Odnosi si do tego samego rejestru, co port 087h jeden wsplny rejestr strony dla kanaw 1 i 0.
292
Anatomia PC
Dziaanie
00Ch
0Ddh
00Eh
Sztuczno tych portw (zwanych te lepymi) jest czsto stosowan metod w technice
mikroprocesorowej. Umoliwia ona zainicjowanie akcji zewntrznej przez procesor.
Jakkolwiek w celu odwoania si do nich naley uy instrukcji jzyka maszynowego
,
, to druga cz instrukcji (
) jest ignorowana i moe by dowolna.
Przykadowo, wspomniany w wyej opisanych rozkazach przerzutnik jest niezbdny dla
poprawnego adresowania rejestrw 16-bitowych. Przed rozpoczciem przekazywania
takiej wartoci (najpierw bajt mniej znaczcy, potem bardziej znaczcy) naley wyzerowa przerzutnik. Unika si w ten sposb zamiany bajtw rejestru 16-bitowego mogcej wystpi na skutek przypadkowego pooenia przerzutnika.
Rejestr
Uwagi
000h
(Slave)
001h
(Slave)
002h
(Slave)
003h
(Slave)
004h
(Slave)
005h
(Slave)
006h
(Slave)
007h
(Slave)
008h
(Slave)
008h
(Slave)
009h
Rejestr da
(Slave)
00Ah
(Slave)
00Bh
Rejestr trybu
(Slave)
00Dh
Rejestr poredni
(Slave)
00Fh
Rejestr maskujcy
(Slave)
081h
(Slave)
082h
(Slave)
083h
(Slave)
Rozdzia 6.
Adres
Rejestr
Uwagi
087h
(Slave)
089h
(Master)
08Ah
(Master)
08Bh
(Master)
08Dh
0C0h
(Master)
0C1h
(Master)
0C2h
(Master)
0C3h
(Master)
0C4h
(Master)
0C5h
(Master)
0C6h
(Master)
0C7h
(Master)
0D0h
(Master)
0D0h
(Master)
0D2h
Rejestr da
(Master)
0D4h
(Master)
0D6h
Rejestr trybu
(Master)
0DAh
Rejestr poredni
(Master)
0DEh
Rejestr maskujcy
(Master)
Kana DMA
293
Dziaanie
0D8h
0DAh
0DCh
00Ch
00Dh
00Eh
Poniej podano prosty przykad programowania rejestrw 16-bitowych w jzyku asemblera (kana 2, adres 6677h, licznik transmisji 0400h).
294
Anatomia PC
bit 2
bit 1
bit 0
Rejestr stanu
(port 008h w PC/XT, 008h i 0D0h w PC/AT)
Wewntrzny stan ukadu 8237A obrazuje rejestr stanu. Mona go tylko odczytywa.
Pod tym samym adresem znajduje si rejestr rozkazw (wycznie do zapisu).
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
Rejestr rozkazw
(port 008h w PC/XT, 008h i 0D0h w PC/AT)
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
Rozdzia 6.
Kana DMA
295
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bit 4
bit 3
bit 2
bit 1
bit 0
Rejestr maskujcy
(port 00Fh w PC/XT, 00Fh i 0DEh w PC/AT)
0
bit 3
bit 2
bit 1
bit 0
296
Anatomia PC
bit 2
bit 1
bit 0
Rejestr trybu
(00Bh w PC/XT, 00Bh i 0D6h w PC/AT):
Ustawienie trybu pracy kadego z kanaw odbywa si w rejestrze trybu.
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bit 4
Rozdzia 6.
Kana DMA
297
!" #
$%
&
$'()*+&,
$-.)*+&
$-/
&
$-0)*+&12
$'/)*+&2
$-0
&1
/31456+++,+2+++++17
8(
Przebieg transmisji
Budowa kanau DMA zaley od formy architektury komputera i dlatego przebieg transmisji
jest inny w przypadku IBM PC, PC/XT i PC/AT.
Komputer IBM PC
Komputer PC z procesorem 8088 zawiera 8-bitow magistral danych i 20-bitow magistral adresow. Dla pokrycia caej przestrzeni adresowej naley do wewntrznych
16-bitowych rejestrw adresowych ukadu 8237A doda 4-bitowy zewntrzny rejestr strony.
W PC obsugiwane mog by wycznie 8-bitowe urzdzenia wejcia-wyjcia, tj. takie,
ktrych porty komunikacyjne maj szeroko 8 bitw (szeroko magistrali danych
komputera).
Transmisja jednego bajtu z pamici operacyjnej do urzdzenia wejcia-wyjcia przebiega
nastpujco:
298
Anatomia PC
Jak wida, przy transmisjach z udziaem pamici i urzdzenia wejcia-wyjcia, nie wystpuje konieczno buforowania danych w ukadzie DMA.
Tabela 6.1. Przyporzdkowanie kanaw DMA w modelu PC
Kana
Przyporzdkowanie
Zarezerwowany dla karty SDLC (standard szeregowej transmisji synchronicznej firmy IBM,
ktry nigdy nie doczeka si popularnoci)
Rozdzia 6.
Kana DMA
299
Przeznaczenie
Kana
Przeznaczenie
Slave, wolny
Master, wolny
Master, wolny
Slave, wolny
Master, wolny
Kanay 16-bitowe
Nie omawiane do tej pory kanay 5, 6 i 7 ukadu Master przystosowane s do transmisji 16bitowej. Wewntrzny 8-bitowy rejestr poredni ukadu 8237A nie bierze udziau w transmisji midzy pamici i ukadami wejcia-wyjcia (w adn ze stron). Dane przejmowane
s bezporednio z szyny danych lub z jej czci.
Wewntrzne rejestry adresowe ukadu 8237A s 16-bitowe. Ukad ma jednak tylko osiem
wyj adresowych A0 A7. Adres jest oczywicie multipleksowany. Ukad wystawia
na kocwki A0 A7 najpierw bardziej znaczc cz adresu i uaktywnia sygna ADSTB.
Zewntrzny 8-bitowy rejestr zatrzaskowy przechwytuje ten bajt i wystawia na szyn adresow systemu jako bity A8 A15. W nastpnym cyklu zegara ukad 8237A wystawia
mniej znaczcy bajt adresu, ktry jest bezporednio podawany na szyn adresow. Pozostae osiem bitw, w przypadku 24-bitowej szyny adresowej, doprowadza si z rejestru strony. Mechanizm ten przedstawiono na rysunku 6.4.
Rysunek 6.4.
Schemat
wytwarzania
24-bitowego adresu
w transmisji DMA
A0-A7
A8-A15
Rejestr zatrzaskowy
A16-A23
8237
DMA
ADSTB
Ustawiany przez
CPU
Efektywny adres dla transmisji 16-bitowych tworzony jest z czci. Bity A0 A15 montowane s z dwch skadnikw, bardziej znaczcej czci adresu przechowywanej w zewntrznym rejestrze zatrzaskowym i mniej znaczcej, wystawianej przez ukad 8237A
300
Anatomia PC
bezporednio na linie A0 A7. Wynik zoenia przesuwany jest o jeden bit w lewo, tworzc linie adresowe A1 A16, a brakujcy bit A0 jest zerowany. Taki adres musi wskazywa na dwubajtowe sowo, gdy pami o organizacji 16-bitowej ma sowa rozlokowane na adresach parzystych. Linie adresowe A17 A23 uzupeniane s zawartoci rejestru
strony. Strona taka ma wic wielko 128 kB (adresowana jest 17 bitami A0 A16), podczas gdy w przypadku kanaw 8-bitowych wielko strony wynosi 64 kB.
Podczas transmisji przenoszone s cae sowa 16-bitowe. Na magistrali danych pojawia
si zawsze sowo o adresie parzystym, nie ma wic koniecznoci naprzemiennego przeczania bajtw z magistrali danych. Systemy z procesorem 80386/486 posuguj si (w odniesieniu do swoich 32-bitowych szyn danych) t sam logik, co komputer AT w stosunku
do magistrali 16-bitowej.
Gwnym celem ukadu DMA jest, jak wiadomo, realizacja przesa typu pami urzdzenie wejcia-wyjcia bez udziau procesora. Transmisje typu pami pami s duo
szybciej realizowane przez sam procesor, tym bardziej, e odpada wtedy konieczno wewntrznego buforowania bajtu (lub co gorsza sowa) w 8-bitowym rejestrze porednim ukadu DMA. Poprzez opisane powyej przesuwanie adresu mona uzyska adresy
dla sw nawet 64-bitowych i wikszych, ale transmisja musi wtedy obejmowa cakowit liczb takich sw. Urzdzenie blokowe chcce przesa np. 1025 bajtw nie bdzie
wic waciwie obsuone.
W architekturach odmiennych od AT (np. EISA) kontrolery DMA s 32-bitowe i tym
samym dopasowane do szerokoci szyn. Rwnie szybko zegara DMA przekracza
znacznie pocztkowe 4,77 MHz pamitajce czasy IBM PC.
Rozdzia 6.
Kana DMA
301