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 VIII
Autor: Piotr Metzger
ISBN: 83-7361-244-0
Format: B5, stron: 1264
oprawa twarda
Zawiera CD-ROM
Spis treci
Rozdzia 1. Mikroprocesor .......................................................................................25
Przetwarzanie rozkazw ...........................................................................................................27
RISC i CISC .......................................................................................................................27
Pipeline ...............................................................................................................................28
Faza pierwsza pobranie (Prefetch, PF)....................................................................30
Faza druga dekodowanie (Decode, DE)..................................................................30
Faza trzecia wykonanie (Execute, EX) ...................................................................30
Faza czwarta zakoczenie i zapisanie wynikw (Write Back, WB) .......................30
Techniki przyspieszania......................................................................................................30
Techniki superskalarne.................................................................................................31
Przemianowywanie rejestrw.......................................................................................31
Przepowiadanie ............................................................................................................34
Optymalizacja kodu......................................................................................................37
Dostp do pamici.....................................................................................................................37
Adresowanie .......................................................................................................................39
Stronicowanie .....................................................................................................................40
Caching .....................................................................................................................................42
Topologie............................................................................................................................43
Organizacja pamici podrcznej.........................................................................................45
Mapowanie bezporednie (Direct Mapped) .................................................................45
Pena asocjacja (Fully Associative)..............................................................................45
Asocjacja zespoowa (Set Associative) ........................................................................46
Strategie ..............................................................................................................................46
Write Through ..............................................................................................................47
Write Back....................................................................................................................47
Victim Cache ................................................................................................................47
Pami podrczna procesora 80386....................................................................................47
Okrelenie trafienia ......................................................................................................49
Decyzja o wymianie linijki (LRU) ...............................................................................50
Obsuga przestrzeni adresowej I/O ...........................................................................................51
Procesor 8086 .....................................................................................................................52
Procesory 80386 i 80486 ....................................................................................................52
Pentium ...............................................................................................................................53
Funkcje kontrolne i sterujce ....................................................................................................53
BIST....................................................................................................................................54
Kontrola TLB......................................................................................................................54
Kontrola pamici podrcznej..............................................................................................54
Przejcie w stan wysokiej impedancji ................................................................................54
JTAG...................................................................................................................................55
Czstotliwo taktowania..........................................................................................................56
Zasilanie ....................................................................................................................................58
Jak rozpozna typ procesora? ...................................................................................................60
Czy procesor jest zgodny z ukadem 80286 lub lepszym? .................................................60
Procesor 8086/88 czy 80186/88?........................................................................................61
Anatomia PC
Procesor 80286 ...................................................................................................................62
Procesor 80386 ...................................................................................................................62
Procesor 486 czy Pentium?.................................................................................................62
Koprocesory ..............................................................................................................................63
Koprocesor 8087.................................................................................................................65
Koprocesor 80287...............................................................................................................66
Koprocesor 80387...............................................................................................................66
Koprocesor i487SX ............................................................................................................67
Rozszerzenia .............................................................................................................................67
MMX ..................................................................................................................................68
Zmiany w architekturze................................................................................................68
Rozpoznanie procesora P55C.......................................................................................70
Nowe rejestry ...............................................................................................................70
Nowe typy danych........................................................................................................73
Nowe rozkazy...............................................................................................................73
Przykady zastosowa ..................................................................................................78
3DNow! ..............................................................................................................................80
SSE .....................................................................................................................................80
SSE2 ...................................................................................................................................84
Hyper-Threading (HT)........................................................................................................87
Technologia ..................................................................................................................88
Architektura..................................................................................................................88
Rozpoznanie BIOS .......................................................................................................90
Instalacja.......................................................................................................................90
Efekty ...........................................................................................................................91
Spis treci
Anatomia PC
RDRAM ..................................................................................................................................200
VC-SDRAM ...........................................................................................................................207
HSDRAM ...............................................................................................................................209
Porwnanie parametrw pamici............................................................................................210
LVTTL..............................................................................................................................211
SSTL_2 .............................................................................................................................212
SSTL_18 ...........................................................................................................................213
RSL ...................................................................................................................................213
Identyfikacja producentw chipw pamiciowych.................................................................213
Spis treci
Anatomia PC
Spis treci
10
Anatomia PC
Linux ..........................................................................................................................441
OS/2............................................................................................................................442
Przypisywanie oznacze literowych.................................................................................442
Programy BM ...................................................................................................................442
Macierze dyskowe...................................................................................................................444
Poziomy RAID .................................................................................................................444
RAID-0.......................................................................................................................444
RAID-1.......................................................................................................................446
RAID-0/1 (RAID-10) .................................................................................................446
RAID-2.......................................................................................................................446
RAID-3.......................................................................................................................447
RAID-4.......................................................................................................................447
RAID-5.......................................................................................................................447
RAID-0/5 (RAID-50) .................................................................................................448
Kontrolery RAID ..............................................................................................................448
Rozwizania programowe z poziomu OS-a .....................................................................448
SMART...................................................................................................................................450
Struktura systemu .............................................................................................................450
Aplikacje wsppracujce ze SMART..............................................................................453
Spis treci
11
12
Anatomia PC
Zerowy rejestr stanu ISRZ (Input Status Register Zero) adres 3C2h....................553
Pierwszy rejestr stanu ISRO (Input Status register one) adres 3BAh (3DAh)......553
Rejestr odczenia sterownika VSER
(Video Subsystem Enable Register) adres 3C3h................................................553
Ukad sekwencyjny...........................................................................................................554
Rejestr adresowy ukadu sekwencyjnego SAR
(Sequencer Address Register) adres 3C4h .........................................................554
Rejestr informacyjny ukadu sekwencyjnego adres 3C5h ....................................554
Rejestr zerowania RR (Reset Register) indeks 00h...............................................554
Rejestr trybu taktowania CMR (Clocking Mode Register) indeks 01h ................554
Rejestr blokowania pamici MMR (Map Mask Register) indeks 02h ..................555
Rejestr zbioru znakw CMR (Character Map Register) indeks 03h.....................555
Rejestr trybu dostpu do pamici MMR (Memory Mode Register) indeks 04h...556
Ukad graficzny ................................................................................................................556
Rejestr adresowy ukadu graficznego GAR
(Graphics 1 and 2 Address Register) adres 3CEh ..............................................556
Rejestr informacyjny ukadu graficznego adres 3CFh ............................................556
Rejestr ustawiania-zerowania SRR (Set/Reset Register) indeks 00h..........................556
Rejestr zezwolenia na ustawianie-zerowanie ESRR
(Enable Set/Reset Register) indeks 01h .............................................................557
Rejestr porwnania kolorw CCR (Colour Compare Register) indeks 02h ...............557
Rejestr przesunicia i wyboru funkcji DRFSR
(Data Rotate-Function Select Register) indeks 03h ...........................................558
Rejestr wyboru patu do odczytu RMSR (Read Map Select Register) indeks 04h.....558
Rejestr trybu dostpu do pamici MOR (Mode Register) indeks 05h .....................558
Rejestr dodatkowy MIR (Miscellaneous Register) indeks 06h.............................559
Rejestr pominicia koloru CDCR (Colour don't Care Register) indeks 07h ...............560
Rejestr modyfikacji bitw BMR (Bit Mask Register) indeks 08h ........................560
Ukad sterowania atrybutem .............................................................................................561
Rejestr adresowy ukadu sterowania atrybutem G1&2AR
(Graphics 1 and 2 Address Register) adres 3C0h ..............................................561
Rejestr informacyjny ukadu sterowania atrybutem adres 3C0h/3C1h.................561
Rejestry palety PR (Palette Registers) indeksy 00h 0Fh ....................................562
Rejestr sterowania trybem pracy MCR (Mode Control Register) indeks 10h ......562
Rejestr krawdzi ekranu OR (Overscan Register) indeks 11h ..............................563
Rejestr uwzgldnianych patw pamici CPER
(Colour Plane Enable Register) indeks 12h .......................................................563
Rejestr przesunicia poziomego HPPR
(Horizontal Pel Panning Register) indeks 13h ...................................................563
Rejestr wyboru koloru CSR (Colour Select Register) indeks 14h ........................564
Przetwornik cyfrowo-analogowy......................................................................................564
Rejestr ograniczenia koloru PELMR (PEL Mask Register) adres 3C6h ..............565
Rejestr stanu przetwornika DACSR (DAC Status Register) adres 3C7h .............565
Rejestr adresowy odczytu przetwornika PELARMR
(PEL Address Read Mode Register) adres 3C7h ...............................................566
Rejestr adresowy zapisu przetwornika PELAWMR
(PEL Address Write Mode Register) adres 3C8h ..............................................566
Rejestr informacyjny przetwornika PELDR (PEL Data Register) adres 3C9h.....567
Ukad sterowania wywietlaczem (CRT Controller)........................................................567
Rejestr indeksowy ukadu sterowania wywietlaczem CRTCAR
(CRTC Address Register) adres 3B4h (3D4h)...................................................567
Rejestr informacyjny ukadu sterowania wywietlaczem adres 3B5h (3D5h)......567
Rejestr cakowitego czasu wywietlania linii HTR
(Horizontal Total Register) indeks 00h..............................................................567
Spis treci
13
14
Anatomia PC
Funkcja 0Dh odczytanie koloru punktu (piksela)
w graficznych trybach pracy (EGA/VGA)..............................................................583
Funkcja 0Eh wywietlenie znaku z przemieszczeniem kursora (EGA/VGA) ......583
Funkcje suce do definiowania kolorw .......................................................................584
Funkcja 10h operacje na palecie kolorw .............................................................584
Funkcje generatora znakw ..............................................................................................591
Funkcja 11h dziaania na generatorze znakw......................................................591
Funkcje konfigurujce sterownik .....................................................................................599
Funkcja 12h konfiguracja sterownika ...................................................................599
Funkcje uzupeniajce ......................................................................................................603
Funkcja 13h wypisanie cigu znakw (EGA/VGA) .............................................603
Funkcja 1Ah pobranie informacji o sterowniku graficznym (VGA) ....................605
Funkcja 1Bh informacja o stanie i funkcjach aktywnego sterownika (VGA) ......606
Funkcja 1Ch zachowanie-odtworzenie stanu sterownika (VGA) .........................609
Dodatkowe funkcje obsugiwane przez VESA-BIOS ......................................................610
Funkcja 4F00h informacja o karcie SVGA ...........................................................611
Funkcja 4F01h informacja o trybach karty SVGA ...............................................611
Funkcja 4F02h przeczanie trybw VESA ..........................................................613
Funkcja 4F03h odczyt biecego trybu pracy .......................................................613
Funkcja 4F04h zapamitanie lub odtwarzanie parametrw karty.........................613
Funkcja 4F05h podczenie banku pamici obrazu
lub odczyt numeru podczonego banku.................................................................614
Funkcja 4F06h ustawienie lub odczyt szerokoci ekranu wirtualnego .................615
Funkcja 4F07h ustawienie (odczyt) lewego grnego rogu
ekranu rzeczywistego wzgldem ekranu wirtualnego.............................................615
Funkcja 4F08h ustawienie (odczyt) liczby bitw odpowiadajcych
barwom podstawowym (w ukadzie RGB) w tablicy LUT.....................................616
Przykady zastosowania funkcji BIOS-u kart graficznych .....................................................616
Rozpoznanie typu karty graficznej ...................................................................................616
Sprawdzenie iloci pamici zainstalowanej na karcie graficznej .....................................617
Zmiana wygldu znaku.....................................................................................................617
Pami lokalna akceleratora....................................................................................................618
Frame Buffer.....................................................................................................................619
Bufor Z/W.........................................................................................................................620
Pami tekstur...................................................................................................................622
Rozmiar pamici i organizacja .........................................................................................623
Rodzaje pamici kart graficznych ....................................................................................626
DRAM ........................................................................................................................627
EDO i BEDO DRAM.................................................................................................627
SDRAM......................................................................................................................628
SGRAM......................................................................................................................628
MDRAM ....................................................................................................................628
V-RAM.......................................................................................................................628
WRAM .......................................................................................................................629
DDR-SDRAM ............................................................................................................629
RAM-DAC..............................................................................................................................630
Dopasowanie monitora do karty .............................................................................................632
Parametry karty.................................................................................................................632
Jako monitora ................................................................................................................634
Kana informacyjny VESA DDC .....................................................................................636
DDC1..........................................................................................................................636
DDC2B.......................................................................................................................637
DDC2AB ....................................................................................................................637
Spis treci
15
Zcza cyfrowe........................................................................................................................637
TMDS ...............................................................................................................................638
P&D (EVC) ......................................................................................................................638
DFP ...................................................................................................................................640
DVI ...................................................................................................................................640
16
Anatomia PC
AGP w praktyce ......................................................................................................................693
Wymagania sprztowe i programowe ..............................................................................693
Kontrola dziaania.............................................................................................................695
AGP PRO................................................................................................................................697
AGP 3.0...................................................................................................................................700
Pasmo przepustowe ..........................................................................................................700
Poziomy napi.................................................................................................................701
Nowe sygnay i przedefiniowania ....................................................................................701
Sygnay zegarowe.............................................................................................................701
AGP 2.0 ......................................................................................................................702
AGP 3.0 ......................................................................................................................703
Transakcje.........................................................................................................................703
Pobr prdu.......................................................................................................................703
Zgodno w d.................................................................................................................704
Implementacja w chipsetach.............................................................................................704
Spis treci
17
18
Anatomia PC
Funkcje BIOS-u obsugujce cze szeregowe .......................................................................781
Przekroczenie czasu (Time Out) ................................................................................782
Przerwanie poczenia (Break)...................................................................................782
Bd protokou (Frame Error).....................................................................................782
Bd parzystoci (Parity Error)...................................................................................782
Bd przepenienia (Overrun Error) ...........................................................................782
Bajt statusowy modemu .............................................................................................783
Funkcja 00h ......................................................................................................................783
Funkcja 01h ......................................................................................................................784
Funkcja 02h ......................................................................................................................785
Funkcja 03h ......................................................................................................................785
Bezporednie programowanie rejestrw UART .....................................................................786
Przerwania generowane przez cze szeregowe ...............................................................787
Rejestr konfiguracji przerwa ....................................................................................787
Rejestr identyfikacji przerwa....................................................................................788
Rejestr formatu danych (LCR) ...................................................................................789
Prdko transmisji...........................................................................................................790
Sygnay sterujce ..............................................................................................................790
Rejestr wyjciowych sygnaw sterujcych (MCR) ..................................................790
Rejestr wejciowych sygnaw sterujcych cza RS-232C (MSR) ..........................791
Rejestr stanu transmisji (LSR) ...................................................................................792
Ukad UART 16450..........................................................................................................793
Spis treci
19
Windows NT.....................................................................................................................840
USB 2.0.............................................................................................................................840
20
Anatomia PC
Spis treci
21
22
Anatomia PC
Spis treci
23
24
Anatomia PC
Dyski twarde .........................................................................................................................1196
Grafika ..................................................................................................................................1199
Napdy CD-R, CD-RW, DVD..............................................................................................1203
Modemy ................................................................................................................................1204
Karty sieciowe.......................................................................................................................1205
Bazy danych sterownikw (Drivers).....................................................................................1205
Standardy, specyfikacje, encyklopedie .................................................................................1206
Przegldy i porwnania sprztu, nowoci.............................................................................1207
Optymalizacja sprztu...........................................................................................................1207
Chodzenie ............................................................................................................................1208
Zcza ....................................................................................................................................1208
Zasilacze................................................................................................................................1210
Bibliografia........................................................................................1217
Literatura polskojzyczna .....................................................................................................1217
Literatura anglojzyczna .......................................................................................................1221
Wydawnictwa........................................................................................................................1222
Skorowidz .........................................................................................1225
Rozdzia 6.
Kana DMA
DMA (Direct Memory Access) ma na celu usprawnienie dostpu do pamici (rysunek 6.1).
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
294
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 pochodzcego 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
{FON
1-
>4
{FLT
06
>3
{JBJO
05
>2
{JBJT
04
>1
S``.
03
{BLM
OB>AV
02
>0
EIA>
01
>/
>APQ?
00
>.
>BK
0/
>-
EON
.-
0.
S``
{@P
..
0-
A?-
@IH
./
/6
A?.
OBPBQ
.0
/5
A?/
A>@H/
.1
/4
A?0
A>@H0
.2
/3
A?1
AOBN0
.3
/2
A>@H-
AOBN/
.4
/1
A>@H.
AOBN.
.5
/0
A?2
AOBN-
.6
//
A?3
DKA
/-
/.
A?4
5/04
Kana DMA
295
READY
HLDA
ADSTB
HRQ
296
Anatomia PC
~CS
CLK
RESET
DREQn
DACKn
A4 A7
~EOP
Vcc
GND
Masa zasilania.
Rozdzia 6.
Kana DMA
297
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 wystawienia 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.
298
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
299
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 widziane 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.
300
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)
Rozdzia 6.
Adres
Rejestr
Uwagi
083h
(Slave)
Kana DMA
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)
301
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).
302
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
303
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
304
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
305
!" #
$%
&
$'()*+&,
$-.)*+&
$-/
&
$-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:
306
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 zdoby popularnoci)
Rozdzia 6.
Kana DMA
307
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
16-bitowej. 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
bezporednio na linie A0 A7. Wynik zoenia przesuwany jest o jeden bit w lewo,
308
Anatomia PC
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 (wobec
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
309
zgaszajcego danie. Na pierwsz faz cyklu skada si przejcie kontroli nad magistralami, wystawienie adresu na magistral adresow, wygenerowanie impulsu ~MEMR.
W fazie drugiej aktywowane s impulsy ~IOW i AEN.
W rzeczywistoci do pracy pobudzone zostaj rwnie wzmacniacze odczytu pamici
dynamicznej. Powoduje to automatyczne odwieenie zawartoci nie tylko danej komrki,
ale i wiersza czy kolumny (zalenie od organizacji pamici). Adresowane sowo zostaje
oczywicie wystawione na magistral danych. Moliwo pobrania go przez urzdzenie
wejcia-wyjcia sygnalizowana jest przez ukad kontrolera DMA niskim poziomem na
wyjciu ~IOR. Polecenie to jest oczywicie ignorowane, gdy adne urzdzenie nie reaguje
na kombinacj sygnaw ~DACK0, AEN i ~IOW. W nastpnym cyklu zegara systemowego dane znikaj z magistrali. Kada taka pseudotransmisja powoduje zmniejszenie wewntrznego licznika transmisji i zwikszenie licznika adresu o jeden. Nastpny
impuls na wejciu DREQ0 powoduje wygenerowanie nastpnego adresu.
Ukad 8237A moe by tak zaprogramowany, by po osigniciu zadanej liczby przesa
(dekrementowany licznik transmisji przechodzi przez stan 0000h do FFFFh) nastpowao
ponowne zapisanie rejestrw adresowych i licznika tymi samymi wartociami (patrz bit
4 rejestru trybu). Czynnoci zwizane ze wstpnym zaprogramowaniem rejestrw kontrolera DMA zawarte s w procedurach inicjalizacyjnych BIOS-u.