You are on page 1of 68

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

W sercu PC wedug
Petera Nortona
Autor: Scott H. A. Clark
Tumaczenie: Wereszczyski Zygmunt
ISBN: 83-7197-796-4
Tytu oryginau: Peter Norton's New Inside The PC
Format: B5, stron: 640

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

Ksika W sercu PC wedug Petera Nortona to pozycja zarwno dla


pocztkujcych, jak i dla zaawansowanych uytkownikw komputerw. Jeli chcesz
dobrze zrozumie dziaanie komputera, umie go optymalnie skonfigurowa, a w razie
pojawienia si problemw poradzi sobie z ich usuniciem, signij po t pozycj.
Dziki ksice rozpoznasz ogromn liczb podzespow, urzdze peryferyjnych
i innych opcjonalnych rozszerze przeznaczonych dla nowoczesnych pecetw.
Ksika stanowi rwnie niezbdn pomoc przy konfiguracji i obsudze komputera.
Nazwisko Petera Nortona jednego z wiodcych wiatowych ekspertw w dziedzinie
komputerw PC to gwarancja najwyszego poziomu przekazanych w ksice
informacji. Jej najnowsze wydanie zawiera gruntownie przerobiony i zaktualizowany
materia, opisujcy najnowsze tendencje w wiecie komputerw osobistych.
Co mona zyska, przeczytawszy t ksik?
Znajomo podstawowych podzespow pyty gwnej komputera PC
Wiedz na temat rnych procesorw (ich wydajnoci, wsplnych cech i rnic)
Solidne podstawy do poznawania zagadnie sieciowych
Zrozumienie zaawansowanych zagadnie dotyczcych pamici komputerw PC
Szerok wiedz na temat kart grafiki i wywietlaczy
Poznanie rnych metod druku komputerowego
Poszerzenie wiedzy na temat zagadnie komunikacyjnych, w tym modemw
i cz szerokopasmowych
Znajomo dyskw IDE i SCSI
Zrozumienie najwaniejszych etapw rozruchu komputera PC
Zapoznanie si z jzykami komputerowymi
Moliwo spojrzenia w przyszo technologii komputerowych

Spis treci
O Autorze ........................................................................................ 15
Wprowadzenie ................................................................................. 17

Cz I

Szklana skrzynka ............................................................. 23

Rozdzia 1. Komputer stacjonarny...................................................................... 25


Trzy gwne czci .................................................................................................26
Jednostka centralna .................................................................................................26
Co tu mamy? Pi systemw w komputerze....................................................26
Pi systemw jako cao .................................................................................38
Wywietlacz...........................................................................................................38
Urzdzenia wejciowe .............................................................................................39
Wewntrz komputera ..............................................................................................39

Rozdzia 2. Komputery przenone....................................................................... 41


Od komputerw walizkowych do laptopw i dalej .....................................................41
Komputery przewone ......................................................................................42
Prawdziwie komputery przenone ......................................................................42
Laptopy i nasz przykadowy Dell Inspiron 8100...................................................42
Nowe, ciesze laptopy.......................................................................................49
Komputery PC mniejsze ni laptopy ...................................................................50
Wyposaenie spotykane prawie wycznie w komputerach przenonych......................51
Co to za nazwy: PCMCIA, karta PC i CardBus? ..................................................51
Lekcje pobrane od przenonych komputerw ............................................................53
Ograniczenie miejsca prowadzi do zamknitych rozwiza...................................54
Ograniczone miejsce ogranicza moliwoci rozbudowy .........................................54
Ograniczone miejsce oznacza wiksz kontrol jakoci ........................................56
Jeli wystarczajco duo ludzi czego chce ......................................................56
Przeduanie ywotnoci baterii ...............................................................................57
Jeli tylko jest to moliwe, zawsze korzystaj z zasilania sieciowego.......................57
Dbaj o odpowiednie adowanie baterii.................................................................58
Korzystanie z funkcji oszczdzania energii..........................................................58
Podsumowanie .......................................................................................................62

Rozdzia 3. Komputery kieszonkowe i rczne...................................................... 63


Wmy komputer do kieszeni .................................................................................64
Staroytno .......................................................................................................64
Firma Psion ......................................................................................................64
Jabko Newtona ................................................................................................64

W sercu PC wedug Petera Nortona


PalmPilot ...............................................................................................................66
Piszmy poprawnie.............................................................................................67
Graffiti.............................................................................................................68
PIM-y, a nie Palmy ...........................................................................................69
Palmy, a nie PIM-y ...........................................................................................71
Linux pod rk Agenda.......................................................................................77
Urzdzenia z Windows............................................................................................78
Windows CE 1.0 i 2 ..........................................................................................78
Windows CE 3.0...............................................................................................79
Komputery rczne.............................................................................................80
Porwnania ............................................................................................................80

Rozdzia 4. Zrozumie bity i bajty ...................................................................... 83


Czym s informacja i dane? .....................................................................................83
Jaki jest rozmiar pytania?...................................................................................84
Jaki jest rozmiar odpowiedzi?.............................................................................84
Jak bity i bajty obsadzaj kody ASCII?.....................................................................88
Symbole i kody.................................................................................................89
Kody sterujce..................................................................................................92
Unicode ...........................................................................................................93
Zmniejszanie liczby bitw i bajtw a rzeczywisto ...................................................96
Podsumowanie .......................................................................................................97

Cz II

Wewntrz komputera....................................................... 99

Rozdzia 5. Pierwsze spojrzenie na pyty gwne i procesory.............................. 101


Bezpieczna chirurgia jednostki centralnej ............................................................ 102
Zasady unikania uszkodze spowodowanych elektrycznoci statyczn ............... 103
Ostronie z sieci zasilajc grozi mierci! .................................................. 104
Rejestrowanie zmian i przywracanie poprzedniego stanu .................................... 104
Fundament, czyli pyta gwna............................................................................... 106
Miejsce dla procesora ...................................................................................... 110
Karmienie komputera, czyli zasilacz.............................................................. 111
Przestrze do zapenienia, czyli zcza i wnki................................................... 112
Co si dzieje na magistrali?.............................................................................. 113
Mechanizm plug-and-play ............................................................................ 116
Procesory w komputerach PC ................................................................................ 118
Czym jest procesor?........................................................................................ 119
Rodzina Pentium............................................................................................. 121
Procesor Itanium firmy Intel............................................................................. 125
Jeli nasz komputer nie ma procesora firmy Intel... ............................................ 126
Rne ulepszenia .................................................................................................. 128
Podsumowanie ..................................................................................................... 129

Rozdzia 6. Karty graficzne i monitory ............................................................... 131


le si dzieje, gdy nie mona pokaza informacji..................................................... 131
Czym jest podsystem wywietlania? ................................................................. 131
Podstawowa charakterystyka systemu graficznego ................................................... 132
Piksele ........................................................................................................... 133
Rozdzielczo................................................................................................. 134
Odstp midzy plamkami i rozmiar plamki........................................................ 135
Jak powstaj obrazy na ekranie (przegld)............................................................... 139
Znaki i obrazy rastrowe ................................................................................... 143
Gdzie i w jaki sposb jest tworzony i przechowywany obraz?............................. 144
Jak powstaje obraz na ekranie?......................................................................... 146

Spis treci

7
Waciwy dobr kolorw....................................................................................... 148
Regulacja monitora ......................................................................................... 149
Modyfikacja informacji w obrazie .................................................................... 149
Sposb porozumiewania si z wywietlaczem ......................................................... 150
Zasady dziaania wywietlaczy............................................................................... 151
Lampy kineskopowe ....................................................................................... 151
Wywietlacze ciekokrystaliczne ...................................................................... 153
Podsumowanie ..................................................................................................... 158

Rozdzia 7. Dyski i inne noniki danych w komputerze PC................................. 159


Tradycyjne dyski w komputerze PC ....................................................................... 159
Stacje dyskietek dla komputerw PC ................................................................ 160
Dyski twarde dla komputerw PC .................................................................... 162
Pochodzenie IDE, EIDE, ATA, ATAPI i innych...................................................... 165
Pocztki historii .............................................................................................. 165
EIDE, ATA i ATAPI....................................................................................... 166
Podczanie urzdze IDE ............................................................................... 169
Magistrala SCSI ................................................................................................... 170
Architektura SCSI........................................................................................... 170
Kilka smaczkw SCSI.................................................................................. 171
Urzdzenia SCSI............................................................................................. 173
Kontroler SCSI ............................................................................................... 174
Mieszanie dyskw IDE i dyskw SCSI................................................................... 175
Podsumowanie ..................................................................................................... 176

Rozdzia 8. Wymienne noniki danych.............................................................. 177


Wariacje na temat nonikw danych w PC.............................................................. 177
Rnorodno nonikw danych w komputerze PC ................................................. 177
Gwne i dodatkowe noniki danych................................................................. 178
Wymienne magnetyczne noniki danych .................................................................. 178
Tama magnetyczna ........................................................................................ 178
Wymienne dyski twarde .................................................................................. 180
Dyski twarde z wymiennym nonikiem ............................................................. 181
Dyskietki specjalne ......................................................................................... 181
Napdy Iomega ZIP ........................................................................................ 182
Dyski twarde na kartach PC, karty z paskiem magnetycznym
i inne podobne urzdzenia ............................................................................. 183
Wymienne optyczne noniki danych....................................................................... 184
Pyty kompaktowe ustanawiaj standard ........................................................... 185
Dyski CD-ROM nie rni si zbytnio rni si za czytniki......................... 186
Odmienna technika: dyski do jednokrotnego zapisu (CD-R)................................ 187
CD-RW umoliwia wielokrotny zapis ............................................................... 189
Pyta DVD (Digital Versatile Disc)................................................................... 190
Urzdzenia do magnetooptycznego zapisu danych ................................................... 193
Podstawy magnetooptycznej metody zapisu danych ........................................... 193
Elektroniczne noniki danych dla komputerw PC................................................... 195
Karty pamici typu flash .................................................................................. 195
Miniaturowe karty pamici .............................................................................. 196
Podsumowanie ..................................................................................................... 198

Rozdzia 9. Porty szeregowe ............................................................................ 199


Rozmowa przez cienk rurk, czyli porty szeregowe................................................ 199
Podstawy komunikacji szeregowej.................................................................... 200
Szereg portw szeregowych................................................................................... 202
cze szeregowe bez uycia przewodw, czyli IrDA.......................................... 202
Uniwersalna magistrala szeregowa (USB) ......................................................... 203

W sercu PC wedug Petera Nortona


IEEE 1394 FireWire.............................................................................................. 208
Jeli potrzeba duo portw szeregowych ............................................................. 211
Rozwizanie z kart rozszerzajc.................................................................... 211
Rozwizanie z sieci lokaln ............................................................................ 211
Rozwizanie ostateczne ................................................................................... 212
Podsumowanie ..................................................................................................... 212

Rozdzia 10. Porty rwnolege............................................................................ 213


Szybsza cieka .................................................................................................... 213
Oryginalny jednokierunkowy port drukarkowy firmy IBM ................................... 213
Dwukierunkowe porty drukarkowe................................................................... 214
Ulepszone porty drukarkowe............................................................................ 214
Konstrukcja mechaniczna ................................................................................ 217
Porty drukarkowe nie tylko dla drukarek.............................................................. 218
Porty drukarkowe wcale nie s przeznaczone dla drukarek ....................................... 218
Podsumowanie ..................................................................................................... 219

Rozdzia 11. Sieci przewodowe i bezprzewodowe................................................ 221


Czym jest sie?..................................................................................................... 221
Dlaczego sie jest potrzebna?................................................................................. 222
C zego jest w sieci?..................................................................................... 223
Rodzaje sieci ........................................................................................................ 224
Sieci lokalne (LAN) ........................................................................................ 224
Sieci rozlege (WAN) ...................................................................................... 227
Intranety i Internet .......................................................................................... 228
Budowa sieci ........................................................................................................ 230
Rne topologie .............................................................................................. 230
Karty i urzdzenia sieciowe.............................................................................. 233
Instalacja kablowa........................................................................................... 233
Ethernet, czyli sie w kadym kcie........................................................................ 233
Rozwizania dla maych sieci................................................................................. 236
Sieci bezprzewodowe............................................................................................ 237
Sieci o specjalnej konstrukcji ........................................................................... 237
Sieci bezprzewodowe IEEE 802.11b i 802.11a .................................................. 237
Sieci bezprzewodowe Bluetooth ....................................................................... 238
Podsumowanie ..................................................................................................... 239

Rozdzia 12. Modemy i dostp szerokopasmowy................................................. 241


By w zasigu ...................................................................................................... 241
piewajce komputery ....................................................................................... 242
Dlaczego modemy s potrzebne?...................................................................... 242
Co to jest bod?................................................................................................ 244
Standardy im wicej, tym lepiej! .................................................................. 247
Rnorodno modemw ................................................................................ 248
Modemy kablowe ................................................................................................. 250
Wszystko cyfrowe ................................................................................................ 253
Rne odmiany DSL ....................................................................................... 254
Sieci ISDN ..................................................................................................... 257
T1 i inne szybkie cza cyfrowe........................................................................ 258
Co wybra?.......................................................................................................... 259
Podsumowanie ..................................................................................................... 260

Rozdzia 13. Urzdzenia wejciowe .................................................................... 261


Klawiatura jest kluczem do wszystkiego .................................................................... 261
Podstawy dziaania klawiatury ......................................................................... 262
Rne konstrukcje klawiatur ............................................................................ 262

Spis treci

9
Zadania klawiatury komputera ......................................................................... 265
Kody klawiszy i sterownik klawiatury w jednostce centralnej ............................. 265
Powiadamianie programw o wcinitych klawiszach.......................................... 266
Rne klawiatury dla rnych potrzeb .............................................................. 266
Alternatywa dla pisania, czyli rozpoznawanie gosu ................................................. 270
Suchanie i rozumienie to trudne zadania........................................................... 272
Mowa naturalna i przerywana .......................................................................... 272
W skrcie: jak to dziaa?.................................................................................. 273
Rozumienie .................................................................................................... 274
Jak daleko ju zaszlimy? ................................................................................ 274
Pokazywanie punktu, czyli krcenie mysz ............................................................. 275
Rne rodzaje myszy ...................................................................................... 275
Wiele przyciskw i kko................................................................................. 279
Inne urzdzenia wejciowe dla komputerw PC ...................................................... 281
Skanery.......................................................................................................... 281
Cyfrowe kamery i aparaty fotograficzne............................................................ 283
Joysticki i inne urzdzenia podczane do portu gier........................................... 285
Podsumowanie ..................................................................................................... 285

Rozdzia 14. Drukarki ........................................................................................ 287


Zadania i znaczenie drukarek ................................................................................. 287
Jzyki opisu strony................................................................................................ 288
PCL............................................................................................................... 288
PostScript....................................................................................................... 289
HP-GL/2........................................................................................................ 289
Technologie druku ................................................................................................ 289
Druk uderzeniowy........................................................................................... 289
Drukarki atramentowe ..................................................................................... 291
Monochromatyczne drukarki laserowe .............................................................. 291
Kolorowe drukarki laserowe ............................................................................ 293
Drukarki ze staymi barwnikami ....................................................................... 296
Drukarki sublimacyjne..................................................................................... 298
Inteligentne drukarki stronicowe....................................................................... 299
Bezmylne drukarki stronicowe..................................................................... 301
Uzyskiwanie prawie poprawnego koloru .................................................................. 301
Modele kolorw.............................................................................................. 302
Programy do korekty koloru i profile drukarek................................................... 305
Podsumowanie ..................................................................................................... 307

Cz III Czarne skrzynki w szklanej skrzynce.............................. 309


Rozdzia 15. Tajemnice pyty gwnej................................................................. 311
Architektura procesora .......................................................................................... 311
RISC ............................................................................................................. 312
CISC i szczegy architektury procesorw x86 .................................................. 312
Ukady zgodne z Intelem .................................................................................... 313
Nowa architektura IA64................................................................................... 315
EPIC ............................................................................................................. 315
X86-64, czyli alternatywa z firmy AMD ........................................................... 316
Jednostka interfejsu magistrali.......................................................................... 316
Rozdzielanie instrukcji i danych ....................................................................... 317
Przewidywanie dziaa i ich wykonywanie........................................................ 317
Rejestry s miejscem tymczasowego przechowywania danych ............................ 318
Obliczanie adresw ......................................................................................... 323

10

W sercu PC wedug Petera Nortona


Jednostka arytmetyczno-logiczna...................................................................... 328
Pami podrczna pierwszego poziomu............................................................. 332
Architektura ukadw towarzyszcych procesorowi ................................................. 334
Pami........................................................................................................... 335
Porty ............................................................................................................. 340
Przerwania, czyli sia napdowa ............................................................................. 342
Nasuch kontra przerwania............................................................................... 342
Tablica wektora przerwa................................................................................ 343
Jak powstaj przerwania? ................................................................................ 344
Programy obsugi przerwa.............................................................................. 346
Usugi BIOS w pamici ROM .......................................................................... 347
Usugi DOS i BIOS w pamici RAM ................................................................ 347
Czym jest kana DMA? ......................................................................................... 348
Dlaczego DMA popad w nieask? .................................................................. 349
Powrt DMA.................................................................................................. 350
Dostosowywanie si do zegara ............................................................................... 350
Porwnanie asynchronicznego i synchronicznego dziaania komputerw ............. 351
Rne zegary do rnych celw ....................................................................... 351
Co to jest superskalowanie? ............................................................................. 353
Magistrale systemowe: ISA, PCI i AGP.................................................................. 354
Pierwotna magistrala ISA ................................................................................ 354
Magistrala PCI ............................................................................................... 355
PCI jako o pnoc-poudnie w komputerze PC .............................................. 359
AGP, czyli boczna cieka do ulepszonej grafiki................................................ 360
Wiele magistral PCI w jednym komputerze....................................................... 362
Mostek poudniowy......................................................................................... 363
Co zyskano dziki oddzieleniu mostka pnocnego od poudniowego?................. 364
PCI-X, czyli kolejna wersja PCI....................................................................... 364
PXI-X i 3GIO................................................................................................. 366
Ocena wydajnoci za pomoc testw...................................................................... 367
FLOPS, SPEC, MIPS i BogoMips .................................................................... 368
Podsumowanie ..................................................................................................... 368

Rozdzia 16. Proces rozruchu............................................................................. 369


Czym jest BIOS?.................................................................................................. 369
Historia BIOS-u.............................................................................................. 370
Odwrotna inynieria BIOS-u............................................................................ 371
Pami CMOS i inne programy.............................................................................. 372
Modyfikacja parametrw zapisanych w pamici CMOS......................................... 372
Pami NVRAM............................................................................................. 373
Test wykonywany po wczeniu zasilania (POST) ................................................... 374
Przebieg testu POST ....................................................................................... 374
Programy obsugi urzdze i oprogramowanie sprztowe ......................................... 376
Jakie postpowanie jest waciwe?.................................................................... 377
Odporno BIOS-u na bdy .................................................................................. 378
Przejcie komputera do normalnej pracy ................................................................. 378
Szczegowa kolejno dziaa podczas rozruchu systemu ................................. 380
Gwny rekord rozruchowy ............................................................................. 385
Proces rozruchu systemu operacyjnego ............................................................. 386
Przyspieszanie procesu rozruchu komputera ........................................................... 388
Komputery z funkcj oszczdzania energii pozornie uruchamiaj si szybciej ...... 389
Powszechnie stosowane opcje dostrajania BIOS-u................................................... 390
Zabezpieczenie pamici CMOS.............................................................................. 393
Producenci BIOS-w ............................................................................................ 393
Podsumowanie ..................................................................................................... 394

Spis treci

11

Rozdzia 17. Pami komputera PC.................................................................... 395


Podstawowy obszar dziaania procesora.................................................................. 395
Dlaczego pami jest miejscem, w ktrym dzieje si wszystko? .......................... 396
Co trzeba wiedzie o scalonych ukadach pamici i o moduach? ........................ 396
Pami ROM i RAM....................................................................................... 397
Co to jest parzysto?...................................................................................... 399
Co to jest ECC? .............................................................................................. 399
Wewntrzna organizacja ukadw pamici ........................................................ 400
Rne odmiany pamici RAM ............................................................................... 402
Pamici statyczne RAM (SRAM) ..................................................................... 403
Pamici dynamiczne RAM (DRAM)................................................................. 403
Odmiany ukadw DRAM: FPM, EDO, VRAM, SDRAM oraz DDR RAM......... 405
Szybsze pamici SDRAM................................................................................ 406
Rambus.......................................................................................................... 407
Pamici DDR SDRAM.................................................................................... 411
PC1600 i PC2100 ........................................................................................... 411
Rynek pamici DDR ....................................................................................... 411
Spodziewana wydajno pamici DDR ............................................................. 412
Odmiany pamici ROM i NVRAM ........................................................................ 412
Pamici ROM z programowan mask.............................................................. 413
Adresowanie pamici: segmenty firmy Intel ............................................................ 415
Ograniczenia wprowadzone przez firmy Intel i IBM........................................... 416
Nowszy model pamici.................................................................................... 417
Pami pamici nierwna ...................................................................................... 418
Adresy logiczne, segmentowe, wirtualne, liniowe i fizyczne ............................... 419
Pami nie dostrzegana przez procesor ............................................................. 421
Zarzdzanie pamici w komputerze PC.................................................................... 424
Przydzia pamici w systemie Windows ............................................................ 425
Polecenie MEM .............................................................................................. 430
Osawiona bariera 640 kB i sposoby jej przeamywania........................................ 431
Gospodarka pamici w systemie Windows ............................................................ 432
System Windows ma specjalne wymagania co do pamici .................................. 433
Wirtualne maszyny DOS w systemie Windows.................................................. 434
Wirtualna maszyna Windows ........................................................................... 435
Sposoby wspomagania systemu Windows w zarzdzaniu pamici...................... 435
Programy do zarzdzania pamici ......................................................................... 436
Ile naprawd potrzeba pamici RAM? .................................................................... 437
Podsumowanie ..................................................................................................... 438

Rozdzia 18. Jak s przechowywane dane na dyskach?....................................... 439


Dyski twarde ........................................................................................................ 439
Struktury fizyczne........................................................................................... 440
Struktura logiczna dysku dziaajcego w systemie Windows............................... 448
Rnice midzy dyskami twardymi a dyskietkami ................................................... 469
Gwny rekord rozruchowy i partycje ............................................................... 469
Tablice rozszerzonych partycji DOS ................................................................. 473
Porzdkowanie chaosu .......................................................................................... 474
Oznaczenia literowe dyskw w systemie Windows ............................................ 474
Pojemno twardego dysku C:.......................................................................... 475
Systemy RAID ..................................................................................................... 475
Dyski optyczne..................................................................................................... 476
Romeo i Joliet odwiedzaj High Sierra.............................................................. 477
Universal Data Format (UDF).......................................................................... 478
Czym s kolorowe ksigi?................................................................................ 478

12

W sercu PC wedug Petera Nortona


Formaty plikw .................................................................................................... 482
Pliki tekstowe ASCII....................................................................................... 482
Pliki binarne (nie korzystajce z kodw ASCII)................................................. 483
Kompresja danych ................................................................................................ 486
Autonomiczne programy do kompresji danych .................................................. 487
Podsumowanie ..................................................................................................... 488

Rozdzia 19. Zaawansowane zagadnienia sieciowe............................................. 489


Model warstwowy sieci ......................................................................................... 489
Interfejs sieciowy wymaga sieciowego systemu operacyjnego................................... 490
Czym jest sieciowy system operacyjny?............................................................ 490
Powszechnie znane sieciowe systemy operacyjne .............................................. 491
TCP/IP, czyli internetowa ryba Babel .................................................................. 494
Czym jest Internet?............................................................................................... 494
Internet jest i zarazem nie jest podobny do innych sieci ...................................... 495
Protokoy do wszystkiego ............................................................................. 496
Adresy IP....................................................................................................... 499
Nazwy wzw i domeny................................................................................. 499
Porty i gniazda sieciowe .................................................................................. 501
Zapewnienie jakoci usug w przyszym Internecie .................................................. 503
Podsumowanie ..................................................................................................... 504

Rozdzia 20. Akceleratory graficzne ................................................................... 505


Obrazy wektorowe i rastrowe ................................................................................ 506
Trjwymiarowe obrazy wektorowe .................................................................. 508
Jak powstaje obraz w komputerze?......................................................................... 509
Obrazy pene ycia.......................................................................................... 511
Paszczyzny bitowe i gbia kolorw................................................................. 512
Ukady RAMDAC ................................................................................................ 516
Program obsugi karty grafiki ........................................................................... 516
Wicej na temat szybkoci dziaania AGP............................................................... 516
Obsuga tekstur w AGP ................................................................................... 518
AGP Pro ........................................................................................................ 518
Poziomy wydajnoci kart AGP......................................................................... 519
Adresowanie boczne i zwikszanie czstotliwoci zegarowej w AGP .................. 520
wiat grafiki trjwymiarowej................................................................................. 521
Akceleracja grafiki trjwymiarowej .................................................................. 522
Magia 256 bitw ............................................................................................. 526
Testy wydajnoci przetwarzania grafiki trjwymiarowej..................................... 527
Podsumowanie ..................................................................................................... 528

Rozdzia 21. Wntrze przyszego komputera PC.................................................. 529


wiat po zmianie .................................................................................................. 529
To, co jest pewne.................................................................................................. 532
Twoja wasna szklana skrzynka.............................................................................. 533

Dodatki.......................................................................................... 535
Dodatek A System operacyjny: porednik midzy czowiekiem a komputerem ... 537
Czym jest system operacyjny i dlaczego jest on potrzebny? ....................................... 538
Jak zrezygnowa z systemu operacyjnego i dlaczego jest to zy pomys?.............. 538
Epoka systemu DOS ....................................................................................... 539
Dziaanie systemu operacyjnego....................................................................... 540

Spis treci

13
DOS nie yje! Niech yje Windows! ...................................................................... 545
Obecnie uywane odmiany Windows................................................................ 545
Windows jest rodowiskiem sterowanym zdarzeniami.......................................... 549
Wielozadaniowo bez wywaszczania i z wywaszczaniem ................................... 550
Wybr systemu operacyjnego dla komputera PC ..................................................... 551
Windows 98 i Windows Me ............................................................................. 552
Windows 2000 i Windows XP ......................................................................... 552
Linux ............................................................................................................. 553
Unix .............................................................................................................. 554
W jaki sposb mona unikn dokonywania wyboru.......................................... 554
Podsumowanie ..................................................................................................... 555

Dodatek B Jak ludzie wydaj polecenia komputerom?...................................... 557


Jak zaprzc komputer do pomocy zwykym ludziom? .............................................. 557
Jzyki asemblera zmniejszaj wysiek umysowy ............................................... 558
Praca na wyszym poziomie: niech komputer wykonuje wicej zada ................. 562
Podzia pracy........................................................................................................ 568
Programowanie na poziomie BIOS-u ................................................................ 569
Programu uytkowe (aplikacje) ........................................................................ 569
System operacyjny jako produkt poredniczcy ................................................. 569
Jak pracowa, by nie wymyla ponownie koa? ...................................................... 570
Biblioteki programowania................................................................................ 570
Konsolidacja programw i programy moduowe ................................................ 571
Programowanie obiektowe ............................................................................... 572
Uatwienia w programowaniu komputerw PC przez zwykych uytkownikw....... 574
Podsumowanie ..................................................................................................... 576

Sowniczek .................................................................................... 577


Skorowidz...................................................................................... 617

Rozdzia 15.

Tajemnice pyty gwnej


W tym rozdziale zajmiemy si nazywan przez wiele osb wntrznociami
komputera pyt gwn. Zamontowane s na niej wszystkie najwaniejsze czci
komputera PC, jak rwnie bezporednie poczenia do tych czci z wyjtkiem
czci podczanych za pomoc zewntrznych magistral, takich jak: SCSI, USB lub
IEEE 1394. Najwiksze znaczenie wrd wszystkich elementw komputera ma procesor. To wanie on decyduje o zaklasyfikowaniu komputera do okrelonej grupy.

Architektura procesora
Konstruktorzy komputerw mwi czsto o architekturze danego modelu. C okrelenie to ma oznacza? Przecie zwykle dotyczy ono budynkw, a nie komputerw!
W sowniku amerykaskiej odmiany jzyka angielskiego sowo architekt zdefiniowano jako projektant (czegokolwiek), za architektura to struktura (rwnie czegokolwiek). A zatem architektura komputerw oznacza opis uoenia poszczeglnych
czci komputera oraz zasady ich budowy, ktre umoliwiaj midzy nimi wspprac
i okrelone dziaanie.
Podstaw kadej konstrukcji komputera jest procesor (CPU). Projektanci tego ukadu
scalonego wanie podczas jego tworzenia ostatecznie decyduj o tym, jakie moliwoci bdzie posiada komputer. Na przykad procesor ma okrelon liczb wyprowadze. Ich liczba i przeznaczenie wskazuje na rozmiar pamici, ktra moe by z nim
poczona, na rodzaj informacji przetwarzanych w procesorze, reakcj na zdarzenia
zewntrzne itp.
Procesory z rodziny x86 maj wiele cech wsplnych. Ten zestaw jednorodnych waciwoci okrela architektur x86, za konstrukcja samego komputera PC jest czci
bardziej oglnej budowy x86. Zanim przejdziemy do opisu szczegw zwizanych
z x86, warto omwi rnice wystpujce midzy dwiema podstawowymi konstrukcjami procesorw, oznaczanymi skrtami RISC i CISC.

Cz III Czarne skrzynki w szklanej skrzynce

312

RISC
RISC jest skrtem od nazwy Reduced Instruction Set Computer (czyli komputer
o zredukowanym zestawie instrukcji). Procesor tego typu obsuguje stosunkowo ma
liczb instrukcji. Czy nie brzmi to dziwnie? Oczywicie, chocia trzeba pamita, e
niekiedy jako jest znacznie waniejsza ni ilo.
Tradycyjnie producenci komputerw konstruuj coraz bardziej skomplikowane procesory, by sprosta nowym wymaganiom ekstrawaganckich funkcji. Takie mylenie
prowadzi do tworzenia sprztu, dziki ktremu obsugiwanych jest coraz wicej rodzajw instrukcji, lecz odbywa si to kosztem czasu ich wykonywania. Im wikszy
jest zestaw instrukcji, tym duej trwa ich wykonywanie.
Niektrzy producenci komputerw postpuj odwrotnie; chc zoptymalizowa wydajno procesorw i zmniejszy koszt ich produkcji, a zatem konstruuj procesory
obsugujce niewielk liczb instrukcji. Typowym procesorem RISC jest PowerPC.
Dziki prostszym instrukcjom, ich wykonywanie moe by przyspieszone bez koniecznoci wbudowywania nowych tranzystorw.
Czy jest to logiczne? Oczywicie, niekiedy tak. Jeli zestaw instrukcji zostanie uproszczony, wszelkie wyrafinowane funkcje musz by realizowane za pomoc oprogramowania,
co zamiast wzrostu wydajnoci przetwarzania moe spowodowa jej spadek.
Na obecnym etapie rozwoju technologii procesorw rozwizania typu RISC staj si
coraz bardziej skomplikowane. Obecnie ukady RISC obsuguj znacznie wicej instrukcji ni robiy to niegdy. Z drugiej strony, tradycyjne procesory optymalizowane
s z zastosowaniem sztuczek uywanych dotychczas tylko w procesorach RISC.
Czy zatem, kiedy zamierzamy kupi nowy procesor, powinnimy wybiera ukad typu
RISC? Zazwyczaj sprzedawca nie wie, czy dany procesor jest procesorem tego typu.
Jedno mona stwierdzi z ca pewnoci: RISC nie jest ju rozwizaniem, bez ktrego
nie mona si obej.

CISC i szczegy architektury procesorw x86


CISC oznacza Complex Instruction Set Computer (czyli komputer o zoonym zestawie instrukcji). Wikszo komputerw osobistych, take te z procesorami z rodziny
x86, ma tak wanie architektur.
Bez przeszkd mgbym zapeni ca dalsz cz ksiki dokadnym opisem zasad
dziaania poszczeglnych procesorw z rodziny x86. Znuyoby to jednak tylko Czytelnikw i doprowadzio do zawienia oczu z wysiku woonego w mozoln lektur.
Nie trzeba wcale poznawa wszystkich szczegw, by uzyska rzeteln wiedz ogln
na temat dziaania procesorw. Ten podrozdzia powicony jest przegldowi najwaniejszych waciwoci architektury ukadw procesorowych. Celowo bdzie si tu zaciera niektre granice podziau midzy poszczeglnymi elementami procesora lub grupowa je na podstawie wzajemnych powiza. Dziki zastosowaniu ujednoliconego
opisu, odnoszcego si do kadego procesora z rodziny, mona uzyska peniejszy
i janiejszy obraz ni przy szczegowym opisie rnic midzy poszczeglnymi ukadami.

Rozdzia 15. Tajemnice pyty gwnej

313

Na rysunku 15.1 pokazano fotografi najnowszego procesora Pentium 4 firmy Intel,


za na rysunku 15.2 wida fotografi procesora Celeron, produkowanego przez t sam firm.
Rysunek 15.1.
Ukad Pentium 4 jest
mikroprocesorem
najnowszej generacji

Rysunek 15.2.
Rodzina
mikroprocesorw
Celeron bya
projektowana z myl
o zrwnowaeniu
wydajnoci i ceny

Trzeba pamita, e dalej w tym rozdziale wielokrotnie mona bdzie znale odwoania do ukadw z rodziny x86. Pod t wspln nazw rozumie si nie tylko seri mikroprocesorw produkowanych przez firm Intel, cznie z wieloma modelami Pentium, lecz rwnie wszystkie klony tych procesorw, produkowane przez
firmy konkurencyjne (na przykad AMD i VIA oraz Cyrix i IDT). Dla uproszczenia nie
bdziemy za kadym razem podkrela tych rozrnie. Jeli dany komputer wyposaony jest w ktry z tych sklonowanych ukadw, naley przyj, e to, co napisano o procesorach x86, bdzie prawdopodobnie prawdziwe take dla procesora w rozpatrywanym komputerze. Jeeli rnice midzy poszczeglnymi odmianami
bd znaczce, zostanie to wyranie podkrelone.
Naley take pamita o innej wanej sprawie. Pomimo deklarowanej zgodnoci
ukadw produkowanych przez firmy AMD lub VIA z rodzin x86, niektre z nich
wymagaj uycia specjalnych zestaww ukadw scalonych na pycie gwnej. Jako
przykad mona poda procesory Duron i Athlon firmy AMD, ktre nie mog dziaa
z zestawami ukadw firmy Intel, a nawet wymagaj podstawek o innych rozmiarach.

Ukady zgodne z Intelem


Na pocztku lat osiemdziesitych ubiegego wieku Intel by jedynym producentem
procesorw z rodziny x86. Gwatowny wzrost popytu na ukady tego typu spowodowa, e na rynku pojawio si wielu producentw wytwarzajcych procesory zgodne
z Intelem. Ukady te obsugiway ten sam zestaw instrukcji x86 i czsto byy tasze
ni oryginalne produkty firmy Intel. W pewnych przypadkach wykazyway si nawet
lepsz wydajnoci.

Cz III Czarne skrzynki w szklanej skrzynce

314

Wiodcymi producentami intelowskich podrbek stay si firmy Cyrix i AMD. Firma


Cyrix zaoona zostaa w 1988 roku wanie po to, aby rozpocz produkcj mikroprocesorw zgodnych z ukadami Intela. Seria wytwarzanych przez ni mikroprocesorw 6x86 porwnywalna jest z procesorami Pentium pod wzgldem wydajnoci
oblicze staoprzecinkowych, ktre odgrywaj istotn rol w typowych aplikacjach
biurowych. Niestety, z powodu maej wydajnoci oblicze uywanych w grafice
trjwymiarowej, seria ta nie zyskaa wielkiego uznania wrd odbiorcw. Firma Cyrix zostaa przejta przez National Semiconductor w roku 1997, a nastpnie przez
firm VIA w roku 1999. Na rysunku 15.3 pokazano fotografi procesora Cyrix 3,
produkowanego ju przez firm VIA.
Rysunek 15.3.
Procesor Cyrix 3 firmy
VIA jest najnowsz
konstrukcj na dugiej
licie produktw
konkurujcych na rynku
z procesorami firmy
Intel

Firma AMD (skrt od angielskiej nazwy Advanced Micro Devices) swoim procesorem K7 Athlon zagrozia rynkowej pozycji Intela. Seria tych ukadw przewysza
procesory Pentium III pod wieloma wzgldami i traktowana jest przez wielu najbardziej
zagorzaych graczy jako jedyna platforma dla grafiki trjwymiarowej. Na rysunku 15.4
pokazano procesor K6-2, na rysunku 15.5 procesor Duron, a na rysunku 15.6. Athlon
wszystkie opracowane i wyprodukowane przez AMD.
Rysunek 15.4.
Procesor K6-2 firmy
AMD jest innym
konkurentem dla
ukadw Intela
Rysunek 15.5.
Kolejn pozycj
w ofercie AMD
jest rodzina
procesorw Duron

Rozdzia 15. Tajemnice pyty gwnej

315

Rysunek 15.6.
Rodzina procesorw
Athlon firmy AMD
wybierana jest przez
wielu uytkownikw,
szczeglnie przez
wymagajcych graczy

Nowa architektura IA64


IA64 to kodowa nazwa nowej technologii procesorw 64-bitowych, opracowanych
wsplnymi siami przez firmy Intel i Hewlett-Packard. Wedug zamierze projektantw w obecnym tysicleciu maj si one sta powszechn platform obliczeniow.
Architektura IA64 zyskaa poparcie wszystkich wikszych firm dziaajcych na rynku
komputerowym z powodu swojej potencjalnie olbrzymiej wydajnoci.
Z technicznego punktu widzenia, na procesorze IA64 mona uruchamia programy
pisane pierwotnie dla architektury x86. Jeeli jednak chce si uzyska maksymaln wydajno, naley stworzy oprogramowanie zoptymalizowane dla oblicze 64-bitowych.
W architekturze IA64 przewidziano szereg zaawansowanych metod przetwarzania
danych, cznie z instrukcjami wykorzystujcymi dugie sowa, predykcj, eliminacj
rozgazie i spekulatywnym adowaniem kodu. Jednak najbardziej interesujce w tym
wszystkim jest wprowadzenie cakowicie nowego podejcia do oblicze, nazywanego
skrtowo EPIC.

EPIC
Skrt EPIC pochodzi od angielskiego okrelenia Explicitly Parallel Instruction Computing (co oznacza bezporednie rwnolege przetwarzanie instrukcji). Dziki udostpnieniu moliwoci przetwarzania rwnolegego ju na poziomie instrukcji, przeamuje ono tradycyjnie obecne w architekturach RISC i CISC bariery dla programw
wykonywanych sekwencyjnie. W tego typu rozwizaniu system moe wykonywa tyle
instrukcji, ile wynika z moliwoci oblicze rwnolegych, jeli tylko owe instrukcje
s odpowiednio powizane.
EPIC oznacza cakowicie nowe metody obliczeniowe. Samo przyjcie tej technologii
nie wystarczy, aby uzyska efektywny wzrost wydajnoci. By osign taki efekt, naley
od nowa napisa cay system operacyjny. W fazie opracowania znajduje si ju specjalna, 64-bitowa wersja systemu Windows 2000. Istniej rwnie wersje Linuksa,
ktre obsuguj przetwarzanie 64-bitowe.

316

Cz III Czarne skrzynki w szklanej skrzynce

X86-64, czyli alternatywa z firmy AMD


Jedn z wad intelowskiej technologii IA64 jest brak wstecznej zgodnoci. Procesor
moe wykonywa stare aplikacje 32-bitowe poprzez wykorzystanie emulacji, jednak
uzyskiwana wwczas wydajno jest maa. W rzeczywistoci kada operacja wykonywana poprzez emulowanie przebiega wolno.
Uytkownicy chccy zastosowa architektur 64-bitow i utrzyma t sam wydajno, ktr maj wykorzystywane przez nich aplikacje 32-bitowe, w zasadzie powinni
obsugiwa oddzielne procesory 32-bitowe. Prowadzi to do powstawania duych dylematw przy podejmowaniu decyzji o wdroeniu nowej technologii na wasnym
sprzcie, bowiem mona nigdy nie osign tego, co jest najlepsze w obydwu technologiach!
W 64-bitowej architekturze zaprojektowanej przez firm AMD zastosowano odmienne
rozwizanie. Zamiast cakowitej przebudowy procesora na 64 bity, dodano 64-bitowe
rozszerzenia do istniejcej 32-bitowej architektury x86. Dziki temu w jednym rdzeniu procesora mona uzyska najlepsz z moliwych wydajno w trybie 32-bitowym
i jednoczenie zgodno z architektur 64-bitow.
W nowym 64-bitowym rozszerzeniu firmy AMD dodano do rdzenia x86 osiem 64bitowych rejestrw oglnego przeznaczenia, 64-bitowe adresowanie pamici oraz taki
sam wskanik instrukcji. Rozszerzenia te bd zawarte w majcym si pojawi w niedugim czasie procesorze K8-Hammer.

Jednostka interfejsu magistrali


Wyobramy sobie, e odwiedzamy procesor. Nasze pierwsze wraenie powodowane
jest jego wygldem zewntrznym, a dopiero potem tym, co zobaczymy w przedpokoju. Rzeczywisty procesor poczony jest ze wiatem zewntrznym za pomoc czci swoich ukadw elektronicznych, ktr nazywamy jednostk interfejsu magistrali.
To ona nadsuchuje (sprawdzajc napicie), co dzieje si na niektrych wyprowadzeniach i oczekuje na sygnay wejciowe oraz informuje otoczenie (ustalajc napicie) za pomoc innych wyprowadze. Istniej take takie wyprowadzenia, ktre
mog sucha lub informowa w zalenoci od stanu napicia na jeszcze innym
wyprowadzeniu.
Ta cz procesora odpowiedzialna jest rwnie za buforowanie sygnaw wejciowych
i wyjciowych. Oznacza to, e zawiera ona wzmacniacze sygnaw wyjciowych stosowane po to, by mona byo je odebra w okrelonej liczbie ukadw odbiorczych.
S tu take odbiorniki, ktre mog wykrywa sygnay wejciowe i pobieraj w tym
celu bardzo mao energii.
W niektrych ukadach z rodziny x86 jednostka interfejsu magistrali musi rwnie
dokonywa przeksztace poziomw napicia. W procesorach tego typu zewntrzne
ukady mog pracowa przy zasilaniu napiciem o wartoci 5 V, za ukady wewntrzne zasilane s napiciem 3,3 V lub 2,5 V. Oznacza to, e poziom napicia reprezentujcy logiczn jedynk na wyprowadzeniach zewntrznych musi by nieco

Rozdzia 15. Tajemnice pyty gwnej

317

wyszy ni 2 V, lecz wewntrz procesora jedynce odpowiada poziom okoo 1 V.


W obydwu przypadkach logicznemu zeru odpowiada poziom napicia bliski 0 V. Odbiorniki w jednostce interfejsu magistrali i wzmacniacze wyjciowe musz przyjmowa i generowa sygnay mieszczce si w tych zakresach dla wszystkich sygnaw
wejciowych i wyjciowych, w zalenoci od tego, czy podczone s do ukadw
wewntrznych procesora, czy do tego, co jest na zewntrz wzgldem procesora.
Oprcz tego, niektre ukady z rodziny x86 maj wewntrzne generatory zegarowe
(czasami mwi si o czstotliwoci taktowania procesora), ktre zwielokrotniaj czstotliwo zewntrznego sygnau zegarowego (wwczas mwi si o czstotliwoci
taktowania magistrali). Jednostka interfejsu magistrali jest zatem odpowiedzialna za
generowanie wewntrznego sygnau zegarowego na podstawie sygnau zewntrznego
oraz za utrzymywanie przepywu informacji wewntrz i na zewntrz procesora zsynchronizowanego z tymi sygnaami.

Rozdzielanie instrukcji i danych


Gdy sygnay docieraj do wntrza procesora, musz by skierowane do odpowiednich
blokw wewntrznych. Porwnujc procesor z biurem, mona sobie wyobrazi, e
wyglda to tak, jak praca w recepcji.
Sygnay przychodzce stanowi mieszanin dwch rodzajw informacji, czyli instrukcji i danych. Odwoujc si do innego porwnania z zakadem produkcyjnym
mona sobie wyobrazi wyroby gotowe i materiay. W analogii biurowej byliby to
pracownicy biura i klienci, ktrym pracownicy wiadcz jakie usugi.
Instrukcje umieszczane s w kolejce do dekodera instrukcji (w biurze byaby to informacja: Prosz podej do okienka numer 3 i stan w kolejce). Dane natomiast
przetrzymywane s w poczekalniach, zwanych rejestrami (kolejna analogia biurowa:
Prosz tu zaczeka, wkrtce ktry z pracownikw zaatwi spraw).

Przewidywanie dziaa i ich wykonywanie


Instrukcje pobierane s z kolejki, interpretowane, a nastpnie uruchamiane. Zajmuj
si tym, odpowiednio, jednostka pobierajca kod (ang. code prefetch unit), dekoder
instrukcji i jednostka sterujca. Te czci procesora bdziemy nazywa po prostu
blokiem obsugi instrukcji (ang. instruction handler). Wykonuje on kilka zada.
Procesory z rodziny x86 nale go kategorii CISC, w ktrej wystpuj instrukcje
o rnej dugoci. Najkrtsze maj dugo jednego bajta, za najdusze zawieraj po
kilkanacie bajtw.
Najpierw blok obsugi instrukcji sprawdza pierwszy bajt i na podstawie jego wartoci
okrela, ile bajtw zawiera dana instrukcja. Nastpnie musi si upewni, czy pozostae bajty instrukcji s dostpne. Jeli nie s, da pomocy od innych segmentw
procesora w celu pobrania i dostarczenia bajtw z pamici gwnej.

318

Cz III Czarne skrzynki w szklanej skrzynce

Nastpnie blok obsugi instrukcji musi zdecydowa, jakich danych wymaga przetwarzana instrukcja. Niektre instrukcje same w sobie zawieraj cz lub wszystkie potrzebne im dane. S to tzw. dane bezporednie. Inne instrukcje dziaaj na danych
obecnych w rejestrach procesora, jeszcze inne natomiast na zawartoci komrek pamici gwnej; mog te przesya tam wyniki swoich dziaa. Blok obsugi instrukcji
musi zatem sprawdzi, czy wszystkie dane wymagane przez instrukcje s na swoim
miejscu i czy s gotowe do uycia. W przeciwnym wypadku musi zaaranowa pobranie tych danych do procesora.
Na zakoczenie tego cigu czynnoci blok obsugi okrela, co dana instrukcja nakazuje procesorowi, a nastpnie uaktywnia potrzebne czci procesora, by zadania zostay wykonane. Najprostsze instrukcje odpowiadaj elementarnym zadaniom realizowanym przez poszczeglne bloki procesora. Wspczesne ukady z rodziny x86
maj specjalne obwody przeznaczone do wykonywania pewnych bardziej zoonych
instrukcji w przypadku, gdy s one czciej uywane. Dziki temu takie instrukcje
wykonywane s znacznie szybciej. W rzeczywistoci, wikszo instrukcji rozpoznawanych przez procesor x86 wymaga podjcia wielu dziaa przez rne elementy maszynerii liczcej w procesorze. Dekoder instrukcji wyszukuje te dziaania w wewntrznej bibliotece zwanej magazynem mikrokodu i dostarcza pobrane stamtd mikroinstrukcje
do odpowiednich blokw procesora, gdzie bd one wykonywane.

Rejestry s miejscem
tymczasowego przechowywania danych
Rejestry odgrywaj bardzo wan rol w kadym procesorze. Kady komputer i kady
mikroprocesor, taki jak x86 (bdcy w istocie komputerem), musi dysponowa miejscem na przechowywanie aktualnie przetwarzanych informacji.
Wiele ukadw z rodziny x86 rni si liczb rejestrw i w wielu przypadkach maj
one rne rozmiary. Pierwotne procesory 8086 i 8088 miay po 14 rejestrw przechowujcych dane 16-bitowe. Pentium II ma znacznie wicej rejestrw, z ktrych wikszo to rejestry 64-bitowe, chocia wystpuje rwnie kilka wikszych. W przypadku
najwikszych rejestrw (zwanych buforami translacyjnymi przegldania bocznego,
ang. translation look-aside buffers) jedynie cz przechowywanych w nich bitw jest
dostpna dla programu dziaajcego w procesorze. Reszta ukryta jest przed tym programem, lecz dostpna dla samego procesora, co pomaga mu szybciej wykona okrelone zadanie.
Jednym z powodw stosowania wikszej liczby rejestrw w ostatnich modelach procesorw z rodziny x86 jest to, e ukady te zostay skomplikowane do tego stopnia, i
potrzebne s specjalne rejestry umoliwiajce automatyczne testowanie procesora na
zakoczenie procesu produkcyjnego w fabryce. Producenci musz by pewni, e
ukady opuszczajce zakad dziaaj poprawnie. Innym powodem zwikszenia liczby
rejestrw jest obecno w tych procesorach dodatkowych blokw do zarzdzania
systemem, niezalenie od obecnoci blokw realizujcych podstawowe zadania obliczeniowe. Bloki zarzdzania systemowego realizuj rnego rodzaju operacje specjalne, na przykad wyczenie zasilania przy braku aktywnoci, co ma zaoszczdzi
pobieran energi.

Rozdzia 15. Tajemnice pyty gwnej

319

Aby maksymalnie uproci wykad, warto zaj si przede wszystkim zestawem rejestrw zdefiniowanych w procesorze 8086. Kolejne rejestry, dodane w kolejnych
ukadach z rodziny x86, s bardzo podobne do pierwotnych, przynajmniej jeli chodzi
o zasad dziaania. Omwimy je oglnie, przy okazji wyjaniania ich przeznaczenia.
Czternacie rejestrw procesora 8086 (a take 8088) podzielono na pi kategorii,
ktre bd prezentowane w nastpnych sekcjach.

Rejestry oglnego przeznaczenia


Cztery rejestry, spord czternastu istniejcych w procesorze 8086, nazywa si rejestrami oglnego przeznaczenia. Przede wszystkim stosowane s one do przechowywania wartoci danych, ktre w okrelonym momencie s przetwarzane. Oznacza to,
e mona je dodawa, odejmowa lub mnoy. Mona je take porwnywa ze sob.
Liczba z rejestru oglnego przeznaczenia moe by czona z liczb przechowywan
w pamici gwnej. Oprcz tego, istnieje jeszcze wiele innych sposobw przetwarzania danych z tych rejestrw.
Jeli wykonywana instrukcja wymaga tylko jednego bajta danych, bajt ten moe by
przechowywany w dowolnej czci rejestru oglnego przeznaczenia i moe by dostpny bez wzgldu na to, jaka jest zawarto drugiej czci rejestru.
Rejestry tego typu maj proste nazwy, ktrych uywa si w instrukcjach jzyka programowania zwanego asemblerem. Nazwy te zostay zdefiniowane przez firm Intel
i wywodz si z okrele jednobajtowych rejestrw stosowanych w mikroprocesorach
8080 (byy one poprzednikami pierwszych ukadw z rodziny x86).
Program odwoujcy si do rejestrw przechowujcych liczby 16-bitowe posuguje
si nazwami: AX, BX, CX i DX (w ukadach starszej generacji wystpoway rejestry
o nazwach A, B, C i D, ktre mogy przechowywa tylko pojedyncze bajty). W tym
kontekcie dodan liter X mona traktowa jako symbol rozszerzenia rejestru. Jeeli
chcemy odwoa si do dolnej powki rejestru 16-bitowego, musimy uywa nazw:
AL, BL, CL i DL. Grne powki rejestrw s nazywane: AH, BH, CH i DH.
W nowszych procesorach tej rodziny wystpuj dusze rejestry, majce podobne nazwy na przykad EAX lub EBX; oznaczaj one dugo dwukrotnie wiksz ni
dugo rejestrw AX lub BX. Pojedynczymi literami (A, B, C itd.) oznaczane s zatem rejestry 8-bitowe, za dodanie litery X w nazwie wskazuje na rejestr 16-bitowy.
Jeli za dan liter wystpuje dodatkowo litera H lub L, to oznacza ona grn lub doln powk rejestru 16-bitowego. X wystpujce za literowym symbolem rejestru
oraz E wystpujce przed takim znakiem oznacza rejestr 32-bitowy podobnego przeznaczenia jak krtszy rejestr o takim samym symbolu.
Mona sdzi, e oznaczenia te zostay wybrane dlatego, e rozpoczynaj si czterem
pocztkowymi literami alfabetu. Jest w tym pewna suszno, lecz dodatkowo maj
one znaczenie mnemoniczne (czyli dusze ni sugeruj oznaczenia literowe). W tych
czterech rejestrach, mimo i zwane s one rejestrami oglnego przeznaczenia, wystpuj pewne ograniczenia dotyczce ich zastosowania; ponadto rejestry te posiadaj
wasn specyfik.

Cz III Czarne skrzynki w szklanej skrzynce

320

 Rejestr AX (czyli AH w poczeniu z AL) jest najczciej uywany jako

akumulator (ang. accumulator), czyli miejsce, do ktrego trafia kocowy


wynik oblicze. Mona na przykad doda warto umieszczon w innym
rejestrze lub w jakiej komrce pamici do wartoci umieszczonej w rejestrze A.
Wynik pojawi si w tym rejestrze i zastpi pierwotn warto.
 Rejestr BX jest czsto uywany do przechowywania czci adresu zwanej

segmentem. Uycie go w takim kontekcie oznacza, e jest on traktowany


jako rejestr bazy (ang. base), poniewa adres segmentu oznacza pocztek
(czyli baz) danego obszaru pamici. Rejestr BX (a take BL lub BH)
moe by rwnie uyty do przechowywania danych innego rodzaju.
 Rejestr CX jest zazwyczaj przeznaczony do przechowywania liczby

wskazujcej na to, ile razy wykonana zostaa dana operacja. Jeli osiga ona
okrelon warto docelow, program musi wykona skok do innego miejsca
w kodzie. Konieczne porwnanie i skok w jednej instrukcji jest moliwe
jedynie wtedy, gdy licznik (ang. counter) wykonanych operacji
przechowywany jest w tym wanie rejestrze.
 Rejestr DX (a take DH i DL) nazywany jest zazwyczaj rejestrem danych

(ang. data). Niekiedy jest on take wykorzystywany do przechowywania


czci adresu portu, a bywa take stosowany w poczeniu z rejestrem AX
do przechowywania liczb 32-bitowych (na przykad wynikw mnoenia
dwch liczb 16-bitowych).

Rejestr znacznikw
Jeden specjalny rejestr zwany jest rejestrem znacznikw (jego mnemoniczny skrt to
po prostu FLAGS). Jest on miejscem przechowywania szesnastu pojedynczych bitw,
z ktrych kady oznacza jaki stan. Najprostszym przykadem dziaania jednego ze
znacznikw jest sygnalizacja wyniku przeprowadzonego ostatnio porwnania dwch
bajtw (tzn. okrelenie, czy byy one rwne, czy te nie). Inne znaczniki sygnalizuj
znak wyniku ostatniej operacji arytmetycznej (dodatni, ujemny lub zero, a take wskazuj, czy nie nastpio przepenienie rejestru). Jeszcze inne informuj o stanie procesora, na przykad poprzez podanie odpowiedzi na nastpujce pytania: czy procesor
reaguje na zewntrzne sygnay przerwa, czy je ignoruje? Czy procesor dziaa w trybie krokowym? Czy cigi bajtw przetwarzane s w gr, czy w d?
Nowsze procesory z rodziny x86 maj dusze rejestry zarwno dla danych, jak i dla
znacznikw, dlatego mog one wyraa wicej warunkw wanie za pomoc znacznikw.
Wartoci znacznikw decyduj o zachowaniu si procesora podczas wykonywania
tzw. instrukcji warunkowych, ktre bd omwione w tym rozdziale nieco dalej.

Wskanik instrukcji
Kolejny rejestr specjalnego przeznaczenia przechowuje adres komrki w pamici
gwnej, w ktrej mieci si aktualnie wykonywana instrukcja. Nazywa si on, zgodnie ze swoim przeznaczeniem, wskanikiem instrukcji (ang. instruction pointer) i ma

Rozdzia 15. Tajemnice pyty gwnej

321

mnemoniczny skrt IP. Warto w tym rejestrze niejawnie adresuje komrk pamici,
w ktrej znajduje si wykonywana instrukcja. Aby uzyska rzeczywisty adres, naley
t warto poczy w odpowiedni sposb z wartoci przechowywan w innym rejestrze, zwanym rejestrem segmentu kodu (ang. code segment register). Rejestr segmentu kodu przedstawiony bdzie nieco pniej.
Warto znajdujca si we wskaniku instrukcji zmienia si w dwojaki sposb. Wyrnia si normalny przebieg sterowania oraz rozgazienia.

Normalny przebieg sterowania


Dopki wykonywana instrukcja nie nakae innego dziaania, warto we wskaniku
instrukcji (zwanym rwnie niekiedy licznikiem programu, ang. program counter) po
zakoczeniu operacji automatycznie przyrasta o dugo tej instrukcji. Dzieje si tak
dlatego, e w wikszoci przypadkw nastpna instrukcja, ktra ma by wykonana,
znajduje si w pamici tu za biec. Zoono operacji powikszania zawartoci
wskanika instrukcji w procesorach z rodziny x86 wynika z tego, e s one procesorami typu CISC, czyli ich instrukcje maj rn dugo. Ta zmienno wymusza powikszanie zawartoci wskanika instrukcji o rne wartoci.

Instrukcje rozgazie
Powysze stwierdzenia nie obowizuj w okoo 10% przypadkw. Dotyczy to sytuacji, w ktrych bieca instrukcja moe nakaza procesorowi pobranie nastpnej instrukcji z jakiego innego miejsca ni zazwyczaj. Instrukcja taka nazywana jest instrukcj rozgazienia lub instrukcj skoku. Rozrnia si dwa rodzaje takich instrukcji:
bezwarunkowe instrukcje rozgazienia, w ktrych pooenie nastpnej komrki jest
zawsze inne ni podczas zwykego przebiegu sterowania i warunkowe instrukcje rozgazienia, w ktrych podejmuje si decyzj o skoku do innej lokalizacji albo normalnym przejciu do kolejnej. Dziaanie instrukcji warunkowych okrelane jest na podstawie wartoci pewnych bitw w rejestrze znacznikw.
Innym sposobem zmiany przebiegu sterowania jest wykonanie instrukcji wywoujcej
podprogram. Umoliwia ono faktyczne przerwanie, na krtki czas, wykonywania programu i przywoanie, zamiast niego, innego programu (mwic dokadniej, chodzi
o niewielkie programy wbudowane w innych miejscach programu gwnego). Gdy
taki miniprogram zakoczy swoje zadanie, wykona instrukcj powrotu. Spowoduje
ona, e procesor podejmie wykonywanie przerwanego, pierwotnego programu i zacznie swe dziaanie od instrukcji umieszczonej bezporednio za instrukcj wywoania
podprogramu.
Taka strategia wywoywania podprogramw pozwala programistom zaoszczdzi ich
wysiki. Mog oni napisa raz jaki podprogram i wykorzystywa go z wielu rnych
miejsc w wikszym programie, bez koniecznoci wstawiania w te miejsca wszystkich
jego instrukcji. W rzeczywistoci, oprcz zmniejszenia pracochonnoci, moliwe jest
rwnie ograniczenie rozmiarw gwnego programu, co w niektrych sytuacjach jest
ogromn zalet.

Cz III Czarne skrzynki w szklanej skrzynce

322

Inne rejestry wskanikw


Jeszcze dwa spord czternastu rejestrw oryginalnego procesora 8086 nale do
grupy rejestrw wskanikw. Jeden z nich nazywany jest rejestrem wskanika bazy
(ang. base pointer register, w skrcie BP), natomiast drugi rejestrem wskanika stosu
(ang. stack pointer register, w skrcie SP). Kady z nich przechowuje liczb funkcjonujc jako cz segmentowa adresu, jeli procesor dziaa w trybie rzeczywistym.
Podczas pracy w trybie chronionym liczba ta nazywana jest selektorem, lecz spenia
podobn rol. Wykorzystywana jest jako wskanik obszaru pamici uywanego jako
stos. Co to naprawd oznacza, zostanie wyjanione w dalszych rozwaaniach zawartych w tym rozdziale.

Rejestry indeksowe
Dwa rejestry przeznaczone zostay do obsugi przemieszczania cigw danych w pamici (wielobajtowych sekwencji o dowolnej dugoci). Pierwszy z nich, zwany rdowym rejestrem indeksowym (ang. source index register, w skrcie SI), moe na
przykad przechowywa adres pocztku cigu, ktry ma by przemieszczony. Drugi,
zwany docelowym rejestrem indeksowym (ang. destination index register, w skrcie
DI), zawiera adres, pod ktrym ma zosta umieszczony przesuwany cig danych.
Liczba bajtw, ktre maj by przesunite, przechowywana jest zazwyczaj w rejestrze CX, penicym w takiej sytuacji rol licznika. Oprcz zastosowa zwizanych
z przemieszczaniem cigw danych, rejestry indeksowe mog by rwnie wykorzystywane do wskazywania miejsc w tablicy zawierajcej dane liczbowe, a take do
wykonywania wielu innych operacji.

Rejestry segmentowe
Ostatnia kategoria rejestrw to rejestry segmentowe (ang. segment registers). W procesorze 8086 s cztery takie rejestry. Maj one specjalne przeznaczenie, poniewa
stosowane s wycznie do obliczania adresw. W nastpnym punkcie wyjanione zostanie szczegowo, na czym polegaj niektre sposoby zastosowania wartoci przechowywanych w rejestrach segmentowych. Warto przedstawi teraz nazwy tych rejestrw i rodzaje przechowywanych przez nie adresw.
Pierwszy z nich nazywany jest rejestrem segmentu kodu (ang. code segment register,
w skrcie CS). Przechowuje on warto, ktra po poczeniu z wartoci wskanika
instrukcji okrela adres nastpnej instrukcji przeznaczonej do wykonania.
Nastpny nazywany jest rejestrem segmentu danych (ang. data segment register,
w skrcie DS). Zazwyczaj rejestr DS uywany jest jako wskanik obszaru pamici,
w ktrym przechowywane s wartoci danych. Moe on by poczony na przykad
z liczbami z rejestrw BX, SI lub DI, dziki czemu istnieje moliwo okrelenia poszczeglnego bajta lub sowa danych.
Trzeci rejestr to dodatkowy rejestr segmentu (ang. extra segment register, w skrcie ES).
Zgodnie ze swoj nazw, moe on by dodatkowo wykorzystany przez programist
do dowolnego celu jako rejestr segmentowy, chocia najbardziej naturalnym jego zastosowaniem s operacje na acuchach.

Rozdzia 15. Tajemnice pyty gwnej

323

Ostatni okrelany jest jako rejestr segmentu stosu (ang. stack segment register,
w skrcie SS). Warto w nim przechowywana czona jest z wartoci w rejestrze
wskanika stosu (SP) i wskazuje sowo danych aktualnie przetwarzanych na stosie.
Wicej informacji na temat stosu mona znale nieco dalej. W niektrych instrukcjach rejestr SS moe take funkcjonowa w poczeniu z rejestrem BP.

Obliczanie adresw
Podczas omawiania wskanika instrukcji (IP) podano, e jego zawarto sama z siebie nie okrela miejsca w pamici, w ktrym przechowywana jest instrukcja.
Procesory z rodziny 8086 przy kadym odwoaniu do pamici (w celu pobrania z niej
danych albo wpisania ich do niej) musz wykona mniej lub bardziej skomplikowan
operacj czenia dwch rejestrw, by okreli miejsce, ktrego to odwoanie dotyczy. Czsto procesor musi uy wartoci nie tylko z dwch rejestrw lub wikszej ich
liczby, lecz posuy si trzema rnymi tablicami danych, aby okreli rzeczywisty
adres komrki w pamici (tak si dzieje w trybie chronionym).

Od abstrakcji do rzeczywistoci
Istnieje kilka powodw takiej komplikacji przy obliczaniu adresw w procesorze x86.
Zapewne najwaniejszym z nich jest to, e procesory z tej rodziny posuguj si kilkoma rodzajami przestrzeni adresowej.
Na poziomie fizycznym (czyli oznaczajcym to, co rzeczywicie dzieje si w komputerze) komrki pamici s adresowane przez napicia na przewodach doprowadzonych do kadego moduu lub ukadu scalonego. Sygnay dostarczane s z odpowiednich
wyprowadze procesora. Poprzez obserwacj napicia na wyprowadzeniach procesora
i oznaczanie jedynkami stanw wysokich, a zerami niskich, otrzymujemy liczb binarn, ktr nazywamy adresem fizycznym.

Jakimi adresami posuguj si programy?


Programy dziaajce w komputerze PC nie uywaj adresw fizycznych, poniewa
nie pozwala na to konstrukcja rodziny procesorw x86. Programy musz korzysta co
najmniej z jednego poziomu poredniego. Rzeczywisty adres fizyczny tworzony jest
w wyniku poczenia dwch lub wicej liczb zgodnie z pewnymi reguami adresowania. Ze wzgldu na zoono tego procesu, bdziemy si tu posugiwa kilkoma
okreleniami: adres logiczny (zwany take adresem wirtualnym), adres liniowy i adres fizyczny. Kade z tych poj bdzie wyjanione oddzielnie.

Obliczanie adresw fizycznych w trybie rzeczywistym


Poznalimy ju najprostsz metod obliczania adresu komrki pamici, stosowan
w procesorze x86. Adresy w trybie rzeczywistym wyraone s w programie jako adresy logiczne, skadajce si z dwch czci, czyli z segmentu i offsetu.

Cz III Czarne skrzynki w szklanej skrzynce

324

Szczegowe informacje o adresowaniu


Sygnay z niektrych wyprowadze procesora kierowane s bezporednio do moduw pamici. Po drodze przechodz one wprawdzie przez ukady scalone wzmacniaczy, lecz nie s
mieszane z innymi sygnaami.
Sygnay z pozostaych wyprowadze adresowych procesora s czone w obwodach zwanych
dekoderami adresw, decydujcych o tym, ktry z ukadw lub moduw pamici ma by
w danym momencie uaktywniony. Wszystkie moduy (lub ukady scalone) otrzymuj wszystkie
pozostae sygnay, lecz moduy aktywne korzystaj z tych sygnaw do okrelenia komrki
pamici, ktra ma by udostpniona.
Procesor z 64 liniami danych czy si z omioma bajtami pamici na raz. Oznacza to, e trzy
mniej znaczce bity kadego adresu mog by pomijane przy wskazywaniu pooenia komrki
w pamici gwnej. S one wykorzystywane wewntrz procesora do okrelenia, ktry z omiu
odczytanych bajtw ma by uyty w dalszych operacjach. Wiedzc, e 2^3 rwna si 8,
a 2^25 to ponad 30 milionw, mona stwierdzi, e do zaadresowania kadej komrki wewntrz moduu pamici o pojemnoci 32 MB wystarczaj dokadnie 22 linie. Oprcz tego,
moliwe jest (i stosuje si to) wykonanie wyprowadze adresowych w module w taki sposb,
by peniy one podwjn rol. W okrelonej chwili su one do odczytu adresu wiersza,
a w innej do odczytu adresu kolumny. Producenci ukadw mog dziki temu zaoszczdzi
w tym przypadku a 11 wyprowadze oraz dodatkowo jedno wyprowadzenie sygnalizujce, czy
linie adresowe zawieraj jedenacie pocztkowych bitw adresu (od A3 do A13), czy sze
pozostaych (od A14 do A24).
Linie sygnalizujce w module pamici (oznaczone jako CE, co jest skrtem od angielskiej nazwy chip enable) su do wczania i wyczania ukadw scalonych w module. Stan napicia na takiej linii okrela, czy modu odpowiada na sygnay w pozostaych liniach wejciowych, czy te przechodzi w stan swoistego upienia, przez co ignoruje sygnay na wszystkich
wejciach i nie wytwarza adnych sygnaw wyjciowych.
Dekoder adresw pamici pobiera sygnay z pozostaych linii adresowych (w tym przypadku
z siedmiu linii o oznaczeniach od A25 do A31). Wystarcza to do wskazania dowolnego ze
128 rnych bankw pamici. Taki hipotetyczny komputer ma jednak tylko dwa banki pamici. Kady z nich ma pojemno 32 MB, co wystarcza do uruchomienia kadego wspczesnego programu (jednak na pewno nie pozwala na uruchomienie kilku takich programw
jednoczenie). Dekoder adresw pamici musi sprawdza sygnay na wszystkich siedmiu liniach, by nie uaktywnia moduw pamici a do momentu, w ktrym we wszystkich liniach,
oprcz pierwszej, pojawi si zerowy stan napicia. Poziom napicia na pierwszej linii decyduje o tym, ktry z dwch bankw pamici zostanie uaktywniony.

Warto segmentu jest mnoona przez 16 (w zapisie szesnastkowym oznacza to po


prostu przesunicie o jedno miejsce w lewo), a nastpnie dodawana do wartoci offsetu.
Dopiero wtedy uzyskuje si adres fizyczny. Istnieje 65536 potencjalnych wartoci
numeru segmentu i taka sama liczba moliwoci dla offsetu. Oznacza to, e poszczeglne wartoci segmentu wskazuj oddzielne obszary pamici o rozmiarze 64 kB.
Warto offsetu wskazuje konkretne miejsce w tym obszarze.
Wan spraw jest zrozumienie, e w trybie rzeczywistym istnieje wiele adresw logicznych (rozumianych jako pary liczb 16-bitowych, po jednej dla segmentu i po jednej
dla offsetu), wskazujcych na okrelony adres fizyczny. Przy powikszaniu wartoci
segmentu o 1 i jednoczesnym zmniejszeniu wartoci offsetu o 16 adres fizyczny po prostu si nie zmieni. A zatem adres logiczny 01A0:4C67h jest dokadnie tym samym, co
adres 01A1:4C57h (maa litera h wystpujca za adresem oznacza tu zapis szesnastkowy). Zwykle wystarczaj dwie czterocyfrowe liczby oddzielone dwukropkiem, lecz

Rozdzia 15. Tajemnice pyty gwnej

325

chcemy tu wyranie podkreli rodzaj zapisu. Powinno by take jasne, e offset


rwny 4C57h jest o 16 mniejszy ni 4C67h, poniewa te liczby rni si tylko o jeden
na pozycji szesnastkowej. W opisie trybu chronionego zostanie pokazane, e moe
istnie jeszcze wicej adresw logicznych wskazujcych ten sam adres fizyczny.

Obliczanie adresw fizycznych w trybie chronionym


Wszystkie procesory z rodziny x86 (z wyjtkiem najstarszych) mog dziaa w wicej
ni jednym trybie. Wszystkie rozpoczynaj prac w trybie rzeczywistym i posuguj
si w nim opisan wyej metod obliczania adresw fizycznych.
Po wstawieniu do pamici kilku specjalnych tablic z danymi, kady procesor z rodziny
x86, nowszy ni 80186, moe rozpocz prac w trybie chronionym. S trzy odmiany
takiego trybu pracy. Liczby przechowywane w rejestrach segmentowych nie s wwczas po prostu mnoone i dodawane do wartoci offsetu w celu uzyskania adresu komrki pamici. Dzieje si to zupenie inaczej ni w trybie rzeczywistym i dlatego
liczby z rejestrw segmentowych nazywane s w trybie chronionym selektorami,
a nie wartociami segmentw.
W przeciwiestwie do wartoci segmentu, ktra wskazuje w pamici okrelony obszar
o rozmiarze 64 kB, selektor definiuje jeden wiersz w strukturze danych zwanej tablic
deskryptorw. W tym wierszu zawarte s trzy informacje o wybranym obszarze pamici. Pierwsza precyzuje pocztek obszaru, druga jego rozmiar, za trzecia jest w istocie kombinacj liczb okrelajc pewne specyficzne waciwoci (zwane atrybutami
dostpu) tego obszaru.
Okrelenie segment nadal odnosi si do obszaru pamici wskazywanego przez warto
selektora w rejestrze segmentu, lecz proces przejcia od wartoci selektora do pooenia segmentu w przestrzeni adresowej jest tu bardziej zagmatwany i dlatego okrelenia tego nie naley stosowa zamiennie z selektorem.
Taka strategia obliczania adresu fizycznego ma trzy zalety. Po pierwsze, dowolna
warto selektora moe wskazywa na dowolny obszar pamici, bowiem nie ma
zwizku midzy dwoma obszarami pamici wskazywanymi przez selektory rnice
si o jak ustalon warto. Druga korzy wynika z faktu, e rozmiar segmentu definiowanego przez warto selektora nie jest stay. Moe on by rwny jednemu bajtowi w niektrych przypadkach, a w innych osiga a 4 GB. Po trzecie, obecno
atrybutw dostpu w tablicy deskryptorw umoliwia procesorowi kontrol sposobu
dostpu do obszaru pamici wskazywanego przez dany selektor.
Okrelenie adres logiczny nadal oznacza kombinacj dwch liczb w zapisie szesnastkowym, oddzielonych dwukropkiem. Pierwsza liczba (zawsze dwubajtowa, czyli skadajca si z czterech cyfr szesnastkowych) jest teraz nazywana selektorem, a nie segmentem. Druga liczba (cztero- lub omiobajtowa) nadal nazywa si offsetem i oznacza
liczb bajtw zawartych w segmencie od jego pocztku do wskazywanego miejsca.
Wspomniano ju o trzech odmianach trybu chronionego. Pierwsza wprowadzona bya
w procesorze 286, zatem nazywana jest trybem chronionym procesora 286. Odmiany
druga i trzecia wprowadzone zostay w procesorze 386 i nazywa si je odpowiednio:
trybem chronionym procesora 386 i trybem wirtualnego procesora 86.

326

Cz III Czarne skrzynki w szklanej skrzynce

Jedyna rnica midzy trybem chronionym 286 (ktry nadal obsugiwany jest nawet
przez najnowsze procesory z rodziny x86 w celu zapewnienia wstecznej zgodnoci)
a trybem chronionym 386 (ktry wykorzystywany jest prawie przez cay czas przez
nowoczesne programy) to na og rozmiar liczb przechowywanych w tablicy deskryptorw. Wi si z tym rnice rozmiaru obszarw pamici opisywanych przez
te deskryptory oraz rna liczba atrybutw dostpu do tych obszarw.

Obliczanie adresw fizycznych w trybie wirtualnego procesora 86


Tryb wirtualnego procesora 86 jest bardzo specyficznym trybem. Jest on uruchamiany
zawsze w poczeniu z trybem chronionym 386, za uruchamiany program traktuje
procesor jak 8086 dziaajcy w trybie rzeczywistym. Faktycznie procesor dziaa wwczas w trybie chronionym, a system operacyjny dziaajcy w trybie chronionym 386
suy jako tzw. wirtualny monitor 86.
Zalet takiego trybu pracy procesora jest moliwo uruchamiania starszych programw napisanych dla systemu DOS przy jednoczesnym korzystaniu z zalet pracy
w trybie chronionym. Zagadnienia te szerzej zaprezentowane zostay w nastpnym
podrozdziale. Oprcz tego, moliwe jest uruchomienie jednoczenie kilku takich programw, kadego we wasnym rodowisku DOS, ale bez moliwoci wymiany informacji midzy nimi. Taka sytuacja wystpuje wtedy, gdy uruchomi si star aplikacj DOS w oknie (lub w trybie penoekranowym) w systemie Windows 3.x, Windows 9x
lub Windows NT. Rozruch komputera w trybie MS-DOS pozwala na jego prac w trybie
rzeczywistym, co jest moliwe we wszystkich wersjach Windows z wyjtkiem NT.

Stronicowanie komplikuje obliczenia adresw


W przypadku procesora 386 i jego nastpcw z rodziny x86 wystpuje jeszcze dodatkowa komplikacja przy obliczaniu adresw komrek pamici. Nazywa si to stronicowaniem (ang. paging) i to wanie stanowi podstaw trzeciego rodzaju adresowania. Warto selektora w poczeniu z offsetem nadal nazywana tu bdzie adresem
logicznym, ktry jest faktycznie uywany w programach. Po dodaniu offsetu do adresu bazowego otrzymuje si w wyniku selektor wskazujcy tzw. adres liniowy. W procesorze 80286 oznacza on to samo, co adres fizyczny, lecz w pniejszych konstrukcjach s to ju rne wartoci.
Naley zwrci uwag na to, e adres fizyczny jest okrelony przez napicia na wyprowadzeniach adresowych procesora. Jest to tylko jedno z wielkiej liczby miejsc
w fizycznej przestrzeni adresw pamici.
Jeli stosowane jest stronicowanie, adres liniowy oznacza po prostu abstrakcyjn lokalizacj w pewnej hipotetycznej przestrzeni adresw pamici. Przejcie od adresu liniowego do adresu fizycznego odbywa si podobnie jak przejcie od wartoci selektora
do adresu segmentu, chocia jest to proces nieco bardziej skomplikowany.
32-bitowy adres liniowy dzielony jest na trzy czci. Dziesi najbardziej znaczcych
bitw wykorzystuje si jako indeks katalogu. Nastpne 10 bitw suy jako indeks tablicy, za 12 najmniej znaczcych bitw wykorzystywanych jest jako offset.

Rozdzia 15. Tajemnice pyty gwnej

327

Wiele osb zetkno si prawdopodobnie ze stronicowaniem w kontekcie operacji


zapisu na dysk. Taki proces oznacza, e posiada si zbyt mao fizycznej pamici
RAM, by pomieci cay kod i dane wymagane przez uruchomion aplikacj.
Procesor uyty w inteligentnym systemie operacyjnym, takim jak Windows 95/98
lub Windows NT, moe zapisywa i pobiera z dysku zawarto pamici poprzez skorzystanie z takiego samego procesu, jaki uywany jest przy odwzorowywaniu adresw logicznych na adresy fizyczne.
Dziki temu mona uruchamia jednoczenie wicej programw ni pozwalaaby
pojemno fizycznej pamici RAM. W systemach operacyjnych obsugujcych stronicowanie w operacjach dyskowych mwi si o pamici wirtualnej, poniewa mog
one korzysta zarwno z pamici wirtualnej, jak i z pamici fizycznej.

Wymuszanie trybu chronionego


Okrelenie tryb chroniony jest bardzo sugestywne. Wskazuje na to, e co jest
w jaki sposb chronione, lecz co to naprawd znaczy? Jedyn przyczyn stosowania
trybu chronionego jest wykorzystanie go w prosty sposb do pozyskania moliwoci
wykonywania wielu zada jednoczenie. W kadym systemie wielozadaniowym (mylimy o maszynie z systemem Windows, na ktrej dziaa jednoczenie kilka programw) uruchomione programy dziaaj tak, jakby byy jedynymi dziaajcymi w danym
momencie. Chocia pracuj na tym samym komputerze, nie zakcaj wzajemnie
swojej pracy tak jest przynajmniej w zaoeniach systemu.
Aby wszystkie programy mogy pracowa we waciwy sposb, trzeba powstrzymywa je przed wejciem w konflikt z pozostaymi programami. Do takiej ochrony musi
by zaangaowany jaki program nadrzdny jest nim wanie system operacyjny
(na przykad Windows).
To jeszcze nie wszystko. Gdy system operacyjny w komputerze osobistym wywoa
aplikacj w trybie rzeczywistym, mona za jej pomoc robi wszystko, co si zechce.
Mona zapisywa i odczytywa dane z dowolnego obszaru pamici, wysya informacje do dowolnego portu lub pisa na caym ekranie. System operacyjny nie posiada
odpowiednich rodkw, by powstrzyma takie dziaania. Dlatego wanie Intel wydzieli rne tryby chronione w produkowanych przez siebie procesorach x86. Idea
nie bya zupenie nowa, poniewa zapoyczono j z duych komputerw (podobnie
jak zapis stron pamici na dysk), lecz po raz pierwszy zastosowano j w mikrokomputerach.
Podstawow spraw jest to, e kademu programowi przydzielono pewien poziom
ochrony i dlatego z pomoc uruchomionego programu mona wykonywa tylko to, co
jest dozwolone na danym poziomie ochrony. Istniej cztery poziomy ochrony, oznaczane numerami od 0 do 3. Programom przydziela si jeden z tych sygnaw ostrzegawczych. Rdze systemu operacyjnego musi dziaa na poziomie zerowym i zazwyczaj w trybie chronionym jest to jedyny zestaw programw majcy pozwolenie na
takie dziaanie. Wszystkie aplikacje dziaaj na poziomie o numerze 3. Dotychczas
nie ma systemu operacyjnego, ktry korzystaby z poziomw 1 lub 2, mimo e wystpuj one w kadym procesorze x86 w oczekiwaniu na moment, kiedy jaki sprytny
programista znajdzie dla nich zastosowanie.

328

Cz III Czarne skrzynki w szklanej skrzynce

Oprcz tego, kady segment pamici (tutaj jest to obszar okrelony przez zawarto
rnych wierszy w jakiej tablicy deskryptorw) ma pewne atrybuty dostpu. Tylko
te programy, ktre dysponuj odpowiednim poziomem ochrony, maj prawo do
zmiany atrybutw, co powoduje, e mog by wykonane tylko te operacje, na ktre
pozwalaj poszczeglne atrybuty dostpu.
Przestrzeganie wszystkich opisanych tutaj regu wymuszane jest przez procesor. Dlatego wanie jest o tym mowa w rozdziale powiconym wewntrznej architekturze
procesora, a w szczeglnoci przy okazji omawiania sposobw obliczania adresw.
Ukady obliczajce adresy wewntrz procesora zapewniaj rwnie, e instrukcje wykonywane s bez naruszania adnej z wymienionych regu.
Naruszenie ktrej z nich okrelane jest jako wyjtek. Wyjtki klasyfikowane s jako
bdy, puapki i przerwania zada. Gdy wystpi jaki wyjtek, procesor przerywa zadanie wykonywane przez program, wycza si i zajmuje si innym dziaaniem. Odbywa si to bardzo podobnie do reakcji na przerwania zewntrzne lub programowe,
ktrych mechanizmy omwione bd w tym samym rozdziale nieco dalej.
Najbardziej niesawnym wyjtkiem jest tzw. Oglny bd ochrony typu 13 (ang. General Protection Fault). Powoduje on wywietlenie na ekranie komunikatu o bdzie
i prowadzi do zamknicia programu, ktry spowodowa tak sytuacj. Mona sdzi,
e system Windows bardzo czsto si zawiesza. Tak jest naprawd, lecz nie zdarza si
to tak czsto, jak mogoby si zdarza przy braku wbudowanego w kady procesor
x86 systemu wymuszania ochrony.

Jednostka arytmetyczno-logiczna
Na tym poziomie wygodnie jest przedstawi inny zesp logicznych czci procesora,
do ktrych zaliczamy jednostk arytmetyczno-logiczn (ang. Arithmetic-Logic Unit,
w skrcie ALU) i kilka innych elementw majcych podobne zadania. ALU dodaje,
odejmuje, mnoy i dzieli liczby cakowite. Moe ona take porwnywa dwie liczby,
aby okreli, czy s one rwne, a jeli nie s wskaza, ktra z nich jest wiksza.

Niektre proste operacje na liczbach cakowitych


Oprcz prostych operacji arytmetycznych (dodawania, odejmowania, mnoenia i dzielenia)
i przeprowadzania porwna logicznych, jednostka arytmetyczno-logiczna moe take
dokonywa w rny sposb przesuni bitw. Wyobramy sobie 16-bitowy rejestr jako
16 oddzielnych bitw, siedzcych na krzesach ustawionych w szeregu. Pierwszy rodzaj
przesunicia, zwany przesuniciem arytmetycznym, polega na tym, e wszystkie bity
przesiadaj si o jedno miejsce w lewo lub w prawo. Kocowy bit, dla ktrego zabraknie miejsca, jest po prostu tracony, za na oprnione miejsce wstawiany jest bit
o wartoci zerowej.
Inny rodzaj przesunicia nazywany jest przesuniciem cyklicznym. Polega ono na tym,
e bit traccy miejsce na jednym kocu szeregu wstawiany jest na przeciwny jego koniec. Taki rodzaj przesunicia wykorzystywany jest w operacjach mnoenia liczb oraz
w niektrych operacjach logicznych, co sprawia, e jest niezwykle istotny dla programistw.

Rozdzia 15. Tajemnice pyty gwnej

329

Specjalne ukady przeznaczone do bardziej skomplikowanych zada


Dotychczas omawiane byy wane elementy spotykane w starszych konstrukcjach
procesorw z rodziny x86. W najnowszych modelach spotyka si te same czci, ale
dziaaj one duo szybciej. Oprcz tego, wystpuj tam take inne, nowe czci, wyspecjalizowane w wykonywaniu dodatkowych zada.

SMP
Skrt ten oznacza symetryczne przetwarzanie wieloprocesorowe (ang. Symmetric
Multiprocessing). Jest to specjalny rodzaj architektury komputera o duej wydajnoci,
w ktrej poszczeglne procesory s rwnoczenie udostpniane rnym zadaniom.
Symetryczno oznacza, e dane zadanie moe by przydzielone dowolnemu procesorowi, ktry nie jest akurat zajty. Oprcz tego, w konstrukcji takiej mwi si rwnie o skalowalnoci, czyli o moliwoci instalowania dodatkowych procesorw, jeli
budowa pyty gwnej na to pozwala.
Aby komputer zbudowany zgodnie z architektur SMP mg dziaa, musz by spenione rne wymagania. Po pierwsze, zestaw pomocniczych ukadw scalonych (tzw.
chipset) na pycie gwnej musi obsugiwa wiele procesorw. Nie wszystkie zestawy
to potrafi. Po drugie, rwnie procesor musi by przystosowany do pracy w systemie
SMP. Ukady takie jak: Celeron, Duron i kilka odmian procesora Athlon nie umoliwiaj pracy w takiej konfiguracji. Po trzecie, system operacyjny musi wykrywa
i wykorzystywa dodatkowe procesory. Nie mona uruchomi oddzielnie kilku systemw operacyjnych na oddzielnych procesorach, poniewa musi je obsugiwa jeden
system. Ponadto, teoretyczny wzrost wydajnoci spowodowany zastosowaniem wielu
procesorw okazuje si w praktyce nieco mniejszy, poniewa procesory wspuytkuj pami i zasoby dyskowe.
Unix, Linux, Windows NT i Windows 2000 oraz Windows XP obsuguj systemy
wieloprocesorowe, natomiast Windows 9x i Windows ME nie mog by wykorzystywane w tego typu konfiguracjach.
Na rysunku 15.7 pokazano fragment wieloprocesorowej pyty gwnej z dwoma gniazdami procesorw.
Rysunek 15.7.
Ta pyta gwna jest
jedn z tych, ktre
umoliwiaj uycie
wielu procesorw

Cz III Czarne skrzynki w szklanej skrzynce

330

Operacje zmiennoprzecinkowe
Poczwszy od procesora 486DX, w kadym ukadzie z rodziny x86 znajduj si oddzielne ukady do przetwarzania liczb zmiennoprzecinkowych. Jedn grup stanowi
zestaw rejestrw o dugoci 80 bitw przeznaczonych specjalnie do przechowywania
liczb zmiennoprzecinkowych. Druga grupa obejmuje zestaw bramek logicznych (oraz
specjalnych instrukcji mikrokodu, ktre uaktywniaj te bramki), poczonych w taki
sposb, by rzeczywicie wykonyway operacje na liczbach zmiennoprzecinkowych.
Instrukcje zmiennoprzecinkowe dodane zostay do zestawu instrukcji procesora wczeniej, jeszcze zanim wykonujce je ukady pojawiy si wewntrz procesora. Pocztkowo procesor przechwytywa te instrukcje i wywoywa specjalny program emulacyjny
do ich wykonania. Pniej procesor mg przechwytywa instrukcje zmiennoprzecinkowe i przekazywa je do oddzielnego ukadu, zwanego koprocesorem numerycznym.
Obecnie procesor ma ju wystarczajc wydajno, by takie instrukcje mg przetwarza sam.

Rozszerzenia zestawu instrukcji x86: MMX, 3DNow! oraz KNI


Wprowadzenie stronicowania i dodatkowych trybw chronionych w procesorze 386
stanowio prawdziwie rewolucyjny krok. Zestaw instrukcji x86 zosta wwczas wzmocniony przez duy pakiet instrukcji umoliwiajcych wykorzystanie nowych cech funkcjonalnych. Pniejsze zmiany konstrukcyjne miay ju mniejszy wpyw na zawarto
zestawu instrukcji.
Jeszcze cakiem niedawno wszystkie dodatki pojawiajce si w zestawie instrukcji
x86 (dotyczy to na przykad instrukcji specyficznych dla procesorw 486, pocztkowych modeli Pentium i Pentium Pro) wprowadzay drobne poprawki do poprzedniego
zestawu. W cigu ostatnich kilku lat w zestawie instrukcji x86 pojawiy si jednak
dwie znaczce nowoci oraz nastpio ich przyspieszenie. Interesujcy moe by fakt,
e niektre z tych dodatkw nie byy opracowane przez firm Intel, lecz przez konkurujcych z ni producentw klonw x86. Doszli oni do wniosku, e klienci bd kupowa ich produkty nie tylko z powodu niskiej ceny, lecz take dlatego, e bd one
co chcieli osign poprzez wprowadzane zmiany lepsze ni produkty Intela.
Pierwsze ulepszenie polegao na dodaniu tzw. rozszerze multimedialnych. Firma
Intel nazwaa je w skrcie MMX. Jest to grupa instrukcji typu jedna instrukcja, wiele
danych (ang. single instruction, multiple data, w skrcie SIMD). Zasada ich dziaania
sprowadza si do tego, e Pentium MMX, Pentium II i nowsze modele procesorw
x86 Intela do rejestrw zwykle uywanych w operacjach zmiennoprzecinkowych mog zaadowa wiele danych bdcych liczbami cakowitymi, a nastpnie wykonywa
niektre operacje rwnoczenie na wszystkich pozycjach danych.
Instrukcje MMX mog wykorzystywa 64 bity w 80-bitowych rejestrach zmiennoprzecinkowych do przechowywania omiu liczb 8-bitowych, czterech liczb 16-bitowych albo
dwch liczb 32-bitowych. Nastpnie liczby te mog by przetwarzane na raz (na
przykad mog by dodawane do liczby przechowywanej w innym rejestrze zmiennoprzecinkowym).

Rozdzia 15. Tajemnice pyty gwnej

331

Takie dziaanie moe si okaza cakiem przydatne i bardzo wydajne. W wielu programach multimedialnych oraz w niektrych rodzajach aplikacji biurowych wymagane jest wanie powtarzanie tej samej operacji na wielu zwizanych pozycjach danych. Przy uyciu MMX wykonanie takiego zadania mona znaczco przyspieszy.
Jako przykady mona poda cyfrowe przetwarzanie sygnau (stosowane w programach do obsugi tzw. winmodemw) oraz niektre operacje w grafice dwuwymiarowej (na przykad tzw. odwzorowania tekstur).
Jedn z wad tej metody jest to, e nie mona jednoczenie korzysta z rejestrw
zmiennoprzecinkowych w obliczeniach i w operacjach MMX. Zazwyczaj, w wikszoci wspczesnych procesorw x86, jednostki obliczeniowe staoprzecinkowa
i zmiennoprzecinkowa dziaaj rwnolegle, co przyspiesza wykonywanie zwykych programw.
Firma AMD opracowaa wasn wersj rozszerzenia zestawu instrukcji i nazwaa j
3DNow!. Rozszerzono tu zestaw x86 dziki dodaniu kilku instrukcji SIMD, wykonujcych podobne operacje na rejestrach zmiennoprzecinkowych, co w zestawie MMX.
Oprcz tego, dodano instrukcje dla operacji staoprzecinkowych i zmiennoprzecinkowych oraz wprowadzono kilka zmian w rejestrach, dziki czemu uzyskano wikszy
stopie rwnolegoci oblicze. Poszczeglne instrukcje z zestawu 3DNow! miay na
celu zgodnie z nazw zestawu przyspieszenie operacji przy wywietlaniu grafiki trjwymiarowej, a take przyspieszenie oblicze wymaganych w trakcie przetwarzania dwiku i wywietlania filmw.
Ostatnio wszystkie procesory produkowane przez AMD, Cyrix (oddzia firmy National Semiconductor) i Centaur (oddzia firmy IDT) obsuguj rozszerzenia 3DNow!
oraz MMX.
Intel musia zareagowa na wdroenie koncepcji 3DNow!. W odpowiedzi zdecydowa si na dalsze rozszerzanie zestawu MMX w przyszych konstrukcjach procesorw, a nie na przyjcie rozwiza zastosowanych w 3DNow!. Zmodernizowane rozszerzenie nazwano pocztkowo MMX2, lecz obecnie mwi si o nowych instrukcjach
Pentium III, a skrtowo nazywa si je KNI (skrt powsta od kodowej nazwy procesora, w ktrym zastosowane zostao po raz pierwszy, po dodaniu odpowiednich rozszerze ukadowych Katmai New Instruction).
KNI oznacza zatem ulepszenia konstrukcji procesora w trzech kierunkach: nowe instrukcje, nowe rejestry i nowe sposoby sterowania dostpem do pamici.
Nowe instrukcje SIMD s zarwno zmiennoprzecinkowe, jak i staoprzecinkowe.
Wykorzystuj one nowe, specjalne rejestry o dugoci wikszej ni miay poprzednio
rejestry zmiennoprzecinkowe. Instrukcje te umoliwiaj prac ze 128 bitami na raz (co
oznacza osiem liczb dwubajtowych lub cztery liczby zmiennoprzecinkowe o zwykej
dokadnoci). Oprcz tego, uwzgldniono w nowych instrukcjach sugestie przekazywane przez programistw, takie jak moliwo uredniania z zaokrglaniem w d
(wykorzystywana w kodowaniu sygnau wizyjnego przy pokazywaniu ruchu) oraz
pewne elementy zwizane z rozpoznawaniem mowy.

332

Cz III Czarne skrzynki w szklanej skrzynce

Dziaanie wszystkich starszych procesorw x86 polegao na sekwencyjnym pobieraniu instrukcji, uruchamianiu ich i zapamitywaniu wynikw. Nie byo moliwe rozpoczcie pobierania nowej instrukcji przed zachowaniem wyniku dziaania instrukcji
poprzedniej.
Nowa architektura strumieniowej obsugi pamici okrela metod przetwarzania
zastosowan przez firm Intel w procesorach Pentium III. Polega ona na umoliwieniu programicie pobierania kilku instrukcji z wyprzedzeniem przed ich wykonaniem,
na ich wykonaniu i zachowaniu wynikw tak szybko, jak bdzie to moliwe. Proces
ten przebiega bez zaburzania wykonywania dodatkowych instrukcji. Dziki temu procesor nie musi oczekiwa na pobranie danych lub instrukcji z pamici ani na zapis do
pamici, co powoduje, e jego wydajno wzrasta.
Zalety te mona wykorzysta tylko w specjalnie napisanych programach, ktre
uwzgldniaj dodatkowe instrukcje. To samo odnosio si kiedy do korzystania ze
sprztowych udogodnie w obliczeniach zmiennoprzecinkowych, gdy byy one jeszcze nowoci. Jedynie te programy, w ktrych dokonano stosownych zmian, mogy
korzysta z rozszerze procesora i dziki temu mogy dziaa szybciej. Nie wszystkie
programy mona byo jednak tak zmodyfikowa.
Z biegiem czasu wiele programw zaczo korzysta z jednostki zmiennoprzecinkowej. Jeli uruchamia si je na komputerze z procesorem 486SX lub 386, ktre nie
maj wbudowanej jednostki zmiennoprzecinkowej, okazuje si to bardzo mczce!
Programy w takim przypadku musz wywoywa program emulujcy, by skompensowa w ten sposb brak specjalnych ukadw w procesorze, za dziaanie takiego
emulatora jest znacznie wolniejsze ni dziaanie specjalnego ukadu.
Chocia rozszerzenie MMX pojawio si ju kilka lat temu, nadal nie jest ono powszechnie wykorzystywane w znajdujcych si na rynku programach, nie liczc gier.
Instrukcje 3DNow! s lepiej obsugiwane, przynajmniej jeli chodzi o system Windows, poniewa firma Microsoft wczya je do najnowszych wersji programu sterujcego DirectX. Dowolny program wykorzystujcy do aktywacji sprztu API DirectX
bdzie korzysta z ich zalet pod warunkiem, e uruchamiany jest na procesorze wyposaonym w rozszerzenie 3DNow!.
Prawdopodobnie Microsoft zapewni obsug rozszerzenia KNI rwnie w przyszych
wydaniach swoich programw sterujcych i w innych programach systemowych. Jeli
tak si stanie i jeli strumieniowa architektura potwierdzi zalety oferty Intela, Pentium
III moe jeszcze raz znacznie przewyszy konkurencyjne produkty.

Pami podrczna pierwszego poziomu


Pozostao jeszcze przedstawi ostatni grup funkcjonaln elementw procesora,
czyli pami podrczn (ang. cache memory). Pewne odmiany tej pamici stanowiy
integraln cz wszystkich procesorw firmy Intel, a take poczwszy od modelu
486 klonw rodziny x86.

Rozdzia 15. Tajemnice pyty gwnej

333

Pami podrczna (dla adresw) uywana bya jeszcze wczeniej, w postaci bufora
transakcji (TLB) w procesorze 386 i w tej formie zachowaa si rwnie we wszystkich procesorach z rodziny 386. Jednak taki rodzaj pamici podrcznej jest przewanie
ukryty i niedostpny dla buforowania danych i instrukcji, zatem nie bdzie tutaj
omawiany.
Do szerokiego zastosowania pamici podrcznej przyczyni si fakt, e wspczesne
procesory s bardzo szybkie i z atwoci przewyszaj szybko dziaania pamici
gwnej. Po wbudowaniu do procesora pamici o niewielkiej pojemnoci, dorwnujcej szybkoci samemu procesorowi, mona j wykorzysta jako bufor do chwilowego przechowywania danych i instrukcji pobieranych z pamici gwnej oraz wysyanych do tej pamici. Ze wzgldu na szybko, jak oferuje pami podrczna, jest ona
wyjtkowo droga i stosuje si j tylko jako dodatek do pamici gwnej.
Jest to tzw. pami podrczna pierwszego poziomu (ang. level 1 cache), ktra przyspiesza dziaanie procesora w dwojaki sposb. Po pierwsze, buforuje ona dane przesyane przez procesor do pamici gwnej i dane pobierane z tej pamici.
Gdy informacja ma by zapisana do pamici gwnej, wtedy pami podrczna przyjmuje j od procesora, ktry natychmiast moe zaj si innymi operacjami. Ukad sterujcy pamici podrczn odpowiedzialny jest za przekazanie przechowywanej informacji na waciwe miejsce w pamici gwnej.
Drug przyczyn przyspieszenia dziaania stanowi buforowanie przez procesor wielokrotnych odczytw informacji z okrelonego miejsca w pamici gwnej. Podczas
pierwszego odczytu nie ma przyspieszenia. Podczas drugiego odczytu (i kolejnych)
procesor da dostpu do tej samej komrki o tej samej zawartoci. Jeli dana warto
znajduje si ju w pamici podrcznej, jej ukad sterujcy dostarcza dane prawie natychmiast.
Podstawowe ograniczenie efektywnoci pamici podrcznej wynika z faktu, e w porwnaniu z rozmiarem pamici gwnej jej pojemno jest bardzo niewielka, zatem
tylko nieliczna cz zawartoci ostatnio obsugiwanych komrek pamici gwnej
moe by przechowywana w pamici podrcznej.

Buforowanie pamici nie zawsze jest korzystne


W czasach, gdy komputery PC byy czym nowym, wbudowywanie pamici podrcznej do procesora nie miao sensu. Wynikao to z dwch rzeczy. Po pierwsze, powodowao dodatkowe komplikacje i producenci ukadw scalonych w owych czasach czsto nie potrafili sobie radzi z takimi skomplikowanymi ukadami. Po drugie, ukady
procesorw dziaay bardzo wolno, zatem pami gwna moga z atwoci z nimi
wsppracowa. Obecnie doszo jednak do sytuacji, w ktrej procesory s kilkakrotnie szybsze ni ukady pamici, nawet na najlepszych pytach gwnych, za dodatkowe problemy zwizane z wbudowaniem pamici podrcznej do procesora mona
stosunkowo atwo rozwiza.
Dokadne badania wspczenie uywanych programw komputerowych wykazay,
e bardzo czsto wykorzystuj one wielokrotnie te same instrukcje, a nawet te same

334

Cz III Czarne skrzynki w szklanej skrzynce

dane. Wynika to z faktu, e programici bardzo czsto korzystaj z ptli w programach


uatwiajcych wykonanie okrelonych zada. Jeli ptla jest maa i wszystkie jej instrukcje oraz powizane z nimi dane mieszcz si w pamici podrcznej, procesor
podczas wykonywania ptli moe dziaa z najwiksz szybkoci, poniewa nie musi oczekiwa na dostp do stosunkowo wolnej pamici gwnej.
W kadym przypadku, jeli program chce zapisa jakie informacje do pamici, moe
to zrobi za porednictwem pamici podrcznej. Pami ta zajmie si tym tak szybko,
jak pozwol jej na to znacznie wolniejsze ukady zewntrzne.

Podwyszanie wydajnoci pamici podrcznej


May pakiet pamici podrcznej moe mie rn organizacj i w rny sposb mona
z niej korzysta. Kada z uytych tu metod ma okrelone skutki, zarwno w postaci
kosztw, jak i efektywnoci dziaania.
Oczywicie, w opisach spotykanych literaturze informatycznej mona znale bardzo
wiele argonowych okrele dotyczcych pamici podrcznych, na przykad takich
jak: buforowanie odczytu (ang. read caching), buforowanie odczytu z wyprzedzeniem
(ang. read-ahead caching), buforowanie bez wstrzymywania zapisu (ang. write-through
caching), odroczone buforowanie zapisu i odczytu (ang. deferred write and read caching) oraz pamici cakowicie skojarzeniowe (ang. fully associative caches), pamici
z bezporednim odwzorowaniem (ang. direct mapped caches) i ustawiane pamici
skojarzeniowe (ang. set associative caches). Te ostatnie maj take kilka odmian
(dwukierunkowe, czterokierunkowe itp.). Mamy take pamici podrczne rozdzielone
na dwie czci: jedna dla buforowania instrukcji, druga dla buforowania danych.
Mona by pewnym, e producenci procesorw zbudowali je na podstawie wskazwek orodkw badawczych w taki sposb, by zawieray najbardziej wydajn pami
podrczn odpowiedniej pojemnoci, o ile tylko pozwala na to wspczesna technologia produkcji ukadw scalonych.
Za chwil powrcimy do kwestii buforowania, poniewa pojawi si ona rwnie
w zagadnieniu dotyczcym architektury ukadw towarzyszcych procesorowi, ktra
jest tematem nastpnego podrozdziau. Omwimy take zastosowanie tzw. zewntrznej pamici buforowej w najnowszych konstrukcjach procesorw.

Architektura ukadw
towarzyszcych procesorowi
Po lekturze dotychczasowego materiau Czytelnicy powinni dobrze rozumie dziaanie elementw funkcjonalnych procesora. Zanim zakoczymy opis architektury komputera PC, powinnimy jeszcze pozna dziaanie oraz rozmieszenie zewntrznych
ukadw towarzyszcych procesorowi. Najwaniejsza jest tu pami gwna, a nastpnie porty obsugujce wejcia i wyjcia. Wszystkie pozostae ukady komunikuj
si z procesorem wanie za pomoc tych dwch struktur.

Rozdzia 15. Tajemnice pyty gwnej

335

Pami
Pami gwna i procesor s w komputerze obszarami, w ktrych wykonywane s
wszystkie obliczenia. Wynika to std, e dane i programy musz by umieszczone
w jakim obszarze pamici gwnej, zanim procesor co z nimi zrobi. Niektre programy i bardzo mae porcje danych mog tam przebywa stale. Przewanie s one
jednak wyrzucane z tego obszaru, kiedy nie s ju potrzebne, i wwczas s albo niszczone (programy), albo zachowywane na trwaym noniku (dane). Po takiej operacji
zajmowane przez nie obszary pamici s dostpne dla nowych programw i danych.
Pami gwna w komputerze PC jest mieszank pamici RAM, ROM i miejsc, ktre
mona zapeni. Znaczy to, e procesor moe adresowa fizyczn przestrze adresow
o ustalonym rozmiarze. W niektrych obszarach tej przestrzeni umieszczone s ukady
pamici o swobodnym dostpie do zapisu i odczytu (RAM). W innych miejscach
znajduj si ukady pamici tylko do odczytu (ROM) lub przewanie tylko do odczytu
(pami nieulotna, tzw. NVRAM). Zazwyczaj w wikszej czci przestrzeni adresowej nie znajduje si nic.
Nie zawsze tak byo. W czasach, gdy komputery PC byy jeszcze czym nowym, pamici byy znacznie drosze w przeliczeniu za jeden bajt ni s obecnie. wczesne
komputery nie potrafiy jednak adresowa wicej ni 1 MB. Wielu wacicieli owych
komputerw PC miao przestrze adresow wypenion prawie cakowicie ukadami
pamici RAM lub ROM.

Maksymalny rozmiar pamici fizycznej


Nowoczesne komputery mog adresowa bardzo wiele komrek pamici. Poczwszy
od procesora 386, mogy one potencjalnie obsugiwa pamici o pojemnoci do 4 GB,
za przy ukadach Pentium i Pentium II teoretyczna granica wynosi a 64 GB. Nawet
przy obecnych, niskich cenach ukadw pamici, nie ma zbyt wielu osb, ktre zbliyyby si do tej granicy.
Wspczesne ukady procesorw z rodziny x86 maj take dwie dodatkowe przestrzenie adresowe, nazywane pamici wirtualn (logiczn) i pamici liniow. Liniowa przestrze adresowa ma zwykle taki sam rozmiar, co przestrze fizyczna. Przestrze wirtualna jest o wiele wiksza, okrela j bowiem obszar dostpny na dysku.
Potencjalny rozmiar fizycznej przestrzeni adresowej nie jest taki sam jak maksymalny
rozmiar pamici, ktr mona zamontowa w komputerze. Wie si to z tym, e
producenci komputerw nie podczaj wszystkich linii adresowych (bezporednio
lub za porednictwem dekoderw adresw) do gniazd pamici. Nie jest to wymagane,
poniewa aden klient nie da wstawienia do komputera pamici o rozmiarze graniczcym z moliwociami adresowymi procesora. Nawet gdyby tak byo, aden ze
wspczesnych systemw operacyjnych nie mgby skorzysta z tak duej pamici.
System Windows we wszelkich odmianach, oprcz NT, ograniczony jest do obsugi
pamici o pojemnoci nie wikszej ni 2 GB.

336

Cz III Czarne skrzynki w szklanej skrzynce

Pamici podrczne drugiego i trzeciego poziomu


Koczc rozwaania o architekturze procesora, opisano pami podrczn pierwszego
poziomu (L1), wbudowan we wszystkie ostatnio produkowane ukady z rodziny x86.
Idea uycia pamici podrcznej narodzia si w rzeczywistoci jeszcze przed skonstruowaniem procesora 486DX, ktry by pierwszym przedstawicielem rodziny x86
wyposaonym w ten typ pamici. Gdy szybko dziaania ukadw mikroprocesorowych staa si wiksza w najszybszych dostpnych ukadach pamici DRAM, zainteresowano si pamici podrczn, lecz producenci nie byli jeszcze w stanie wbudowa jej do ukadu procesora.
Pamici podrcznej po raz pierwszy uyto w komputerach z procesorem 386. Pyta
gwna w tych komputerach zawieraa dodatkowe, bardzo szybkie (i bardzo drogie)
ukady pamici RAM oraz specjalny ukad scalony, zwany kontrolerem pamici podrcznej. Bya to jedyna pami podrczna, ktra moga by zastosowana w tego typu
komputerach.
Pojemno takiej pamici ograniczona jest gwnie przez moliwoci finansowe
klientw, ktrzy chcieliby uzyska wiksz wydajno, a nie przez technologi produkcji procesorw, tak jak w przypadku pamici L1. Im wicej pamici podrcznej,
tym lepiej, lecz od pewnego momentu wzrost wydajnoci nie jest ju tak duy, jakby
wynikao ze wzrostu pojemnoci tej pamici. Oznacza to, e nawet wtedy, gdy Intel
i inni producenci rozpoczli produkcj procesorw z niewielk pamici podrczn
pierwszego poziomu (L1), producenci pyt gwnych, ktrzy chcieli sprzedawa wicej, wyposaali je w pami podrczn drugiego poziomu (L2) o znacznie wikszej
pojemnoci ni pami L1 w procesorze.
Pami L2 o danej pojemnoci jest mniej wydajna ni pami L1 o takiej samej pojemnoci z tego prostego powodu, e zewntrzna czstotliwo zegarowa we wspczesnych
procesorach stanowi jedynie uamek czstotliwoci zegara wewntrznego. Oczywicie,
moe to by uyteczny dodatek na pycie gwnej, poniewa taka pami dostarcza
dane w jednym cyklu zegara, za pami DRAM, stosowana przewanie jako pami
gwna, wymaga co najmniej dwch cykli do przeprowadzenia tej samej operacji.
Ostatnio produkowane przez firm Intel procesory, poczwszy od Pentium Pro, zawieray dwa ukady scalone, ktre tworzyy modu procesora. Jeden z tych ukadw
to waciwy procesor zawierajcy pami L1. Drugi ukad scalony jest oddzieln pamici podrczn L2, ktra czy si z procesorem przez oddzieln magistral (nie t,
przez ktr procesor komunikuje si ze wiatem zewntrznym). Firma Intel nazywa
tak konstrukcj architektur dwch niezalenych magistrali (ang. Dual Inpependent
Bus, w skrcie DIB).
Taka konstrukcja posiada dwie zalety. Po pierwsze, magistrala gwna moe przenosi wicej danych, poniewa nie jest zaangaowana w wymian danych z pamici
L2. Po drugie, szybko wymiany danych midzy procesorem a pamici L2 jest taka,
na jak pozwala sama pami (w rnych ukadach bya ona rwna poowie lub penej szybkoci dziaania rdzenia procesora, czyli znacznie szybsza ni magistrala
gwna). W systemie Xeon moe na przykad wystpowa procesor Pentium II oraz
pami L2, dziaajce z czstotliwoci 450 MHz przy czstotliwoci magistrali zewntrznej zaledwie 100 MHz.

Rozdzia 15. Tajemnice pyty gwnej

337

Firma Intel poinformowaa o nastpnych planach produkcji moduw procesorw,


w ktrych zarwno pami podrczna L1, jak i L2 wbudowane bd do ukadu procesora, a dodatkowa pami podrczna trzeciego poziomu (L3) wbudowana bdzie do
moduu jako oddzielny ukad scalony. Aby unikn nieporozumie, firma zaproponowaa take zmian numeracji pamici podrcznej w taki sposb, by jej najmniejsz
porcj pooon najbliej procesora nazywa pamici L0 (zerowego poziomu), drug
porcj wewntrz procesora, o wikszej pojemnoci, nazywa pamici pierwszego
poziomu (L1), za trzeci, umieszczon w module w postaci oddzielnego ukadu
o pojemnoci prawdopodobnie kilku megabajtw, poczonego z procesorem za pomoc magistrali DIB pamici drugiego poziomu (L2).
Klienci wymagajcy bezwzgldnie pamici podrcznej o duej pojemnoci, mog
w komputerze z procesorem zawierajcym pami L1 i L2 doda zewntrzn pami
L3 na pycie gwnej. Pamici kolejnych poziomw mog mie coraz wiksze pojemnoci, co czciowo rekompensuje ich wolniejsze dziaanie w porwnaniu z pamici poprzedniego poziomu. Kombinacja pamici podrcznej wszystkich trzech
poziomw jest najwikszym osigniciem wspczesnej technologii.
Obecnie taka kombinacja moe by uzyskana tylko przy uyciu pyt z gniazdem procesora nazwanym Super Socket 7. Pyty takie maj na pewno wasn pami podrczn i mona do nich wczy procesor K6-3 firmy AMD, wyposaony w moduy
pamici podrcznej L1 i L2.

Spjno pamici podrcznej


Cay sens stosowania pamici podrcznej polega na tym, e taka lokalna, niewielka,
lecz szybka pami zawiera wiern kopi tego, co jest przechowywane w jakim obszarze pamici gwnej, ktra jest wiksza, bardziej oddalona i znacznie wolniejsza.
Procesor moe posugiwa si kopi podrczn tak samo, jakby bya to zawarto
pamici gwnej.
W wikszoci sytuacji podobne dziaanie nie stwarza problemw, lecz w dwch przypadkach mog si one pojawi. Pierwszy pojawia si wtedy, gdy informacja z pamici
podrcznej nie dotara jeszcze na swoje miejsce w pamici gwnej, a inne urzdzenie
w komputerze chce t informacj stamtd odczyta. Drugi przypadek wystpuje wtedy, gdy procesor chce skorzysta z informacji zawartej w pamici gwnej, lecz nie
jest poinformowany, e jakie inne urzdzenie zmienio zawarto tej pamici, poniewa bya ona wczeniej pobrana do pamici podrcznej.
Kady komputer PC z wyjtkiem modelu PC Junior, produkowanego kiedy przez
IBM mia moliwo korzystania z funkcji bezporedniego dostpu do pamici
(ang. direct memory access, w skrcie DMA). Wymagao to zastosowania specjalnego
ukadu sterujcego, ktry moe przyjmowa od procesora polecenia przeniesienia
zawartoci jakiego obszaru pamici w inne miejsce albo do portu wyjciowego,
albo pobrania jej z portu wejciowego. Ukad sterujcy bezporednim dostpem do
pamici realizuje to zadanie bez udziau procesora. Oprcz tego, due komputery PC
penice role serwerw (a take niektre bardzo wydajne stacjonarne stacje robocze)
mog by wyposaone w wiele procesorw, ktre wspuytkuj pul pamici gwnej.

338

Cz III Czarne skrzynki w szklanej skrzynce

W kadym przypadku, niezalenie od tego, czy uywa si wielu procesorw, czy korzysta si z DMA (lub innych urzdze do zarzdzania magistral, takich jak na
przykad szybkie sterowniki SCSI), moliwa jest niekiedy zmiana zawartoci pamici
gwnej nie tylko przez sam sterownik pamici podrcznej procesora (lub sterownik
pamici L2 i L3, jeli takie wystpuj). Jeli zdarzy si taka sytuacja, sterownik pamici podrcznej podczony do pamici gwnej musi by o tym fakcie poinformowany i musi uniewani przynajmniej obraz tej pamici ulokowany w pamici podrcznej, zanim nie zastpi jej now, zaktualizowan zawartoci.
Jedynym sposobem uzyskania spjnoci pamici podrcznej jest podczenie jej sterownika do pamici gwnej i ledzenie wszystkich prb dostpu podejmowanych
przez inne urzdzenia. Sterownik pamici podrcznej musi sprawdza, czy kady adres udostpnianej komrki pamici pokrywa si z adresem komrki aktualnie przechowywanej w zarzdzanej przez niego pamici podrcznej. Kady sterownik pamici podrcznej ma zatem wbudowan moliwo swoistego podsuchu magistrali (ang.
bus snooping), by sprawdza, jakie urzdzenie moe dokonywa wpisw do pamici.
Pojawia si rwnie inny, nieco bardziej subtelny problem zwizany ze spjnoci
pamici podrcznej. Jeli procesor prbuje zapisa co do pamici pod adresem, pod
ktrym umieszczony jest ukad ROM lub nie ma w ogle nic, taka prba si nie powiedzie. Jeli sterownik pamici podrcznej nie bdzie poinformowany o tym fakcie,
moe przetrzymywa informacj przekazan przez procesor w taki sam sposb, jakby
bya to informacja obowizujca, ktra powinna znale si pod podanym adresem
w pamici gwnej. Dopki ta informacja pozostaje w pamici podrcznej, procesor
moe j pobra w dowolnym momencie. Jednak jeli bdzie zwleka tak dugo, a zostanie ona zmieniona, pobierze warto rzeczywist (jeli taka istnieje) przechowywan pod danym adresem.
Jedynym sposobem uniknicia problemw tego typu jest przekazywanie do sterownika pamici podrcznej informacji o tym, ktre obszary fizycznej przestrzeni adresowej mog by buforowane (czyli w ktrych znajduje si rzeczywicie pami RAM),
a ktre nie (czyli te, ktre nie s obsadzone lub zawieraj pami ROM). Prawie zawsze korzystne jest buforowanie odczytu z pamici ROM, ale nigdy nie naley pozwala na buforowanie zapisu do takich obszarw.
Nowoczesne programy do konfiguracji BIOS-u zawieraj czsto procedury, za pomoc
ktrych mona poinformowa sterownik pamici podrcznej o obszarach wymagajcych buforowania. Jeli do programu zostan wprowadzone poprawne dane konfiguracyjne, problemy nie wystpi. Pomyka w danych moe jednak skutkowa dziwnymi niespodziankami objawiajcymi si podczas pracy komputera.

Stosy
Wspomniano wczeniej, e procesor musi dysponowa jakim miejscem do chwilowego przechowywania przetwarzanej informacji. Do tego wanie su rejestry. Niekiedy ich liczba jest jednak zbyt maa, by przechowa ca potrzebn informacj
i trzeba j wwczas zgromadzi w innym miejscu.

Rozdzia 15. Tajemnice pyty gwnej

339

Kopot ten wystpuje szczeglnie w systemach wielozadaniowych. Symulacja jednoczesnego wykonywania kilku zada polega na wykonaniu niewielkiej czci jednego
zadania, przeczeniu si do drugiego, wykonaniu jego niewielkiej czci, przeczeniu si do trzeciego itd.
Przy kadym przeczaniu zada procesor musi zachowa zawarte w rejestrach wartoci, uzyskane w poprzednim zadaniu i dopiero wwczas moe zaj si wykonywaniem kolejnego zadania. Do tego celu su stosy. Nie jest to ich jedyne przeznaczenie,
chocia w wikszoci s one tak wanie wykorzystywane.
Koncepcja stosu jest prosta i mona wyjani jej dziaanie na przykadzie stosu talerzy.
Kiedy chcemy odoy umyty przed chwil talerz, ukadamy go na stosie w szafce.
Kiedy chcemy wyj jakie talerze, bierzemy je kolejno z wierzchoka stosu. Talerz
pooony na stosie jako ostatni bdzie z niego zdjty jako pierwszy.
Rol stosu w komputerze peni po prostu obszar pamici skojarzony z rejestrem przechowujcym wskanik adresowy. Jeli jaka porcja informacji ma by przesana na
stos w wyniku wykonania instrukcji , jest ona wpisywana pod adres wyznaczony
przez wskanik adresowy, po czym nastpuje zmniejszenie o jeden wartoci tego wskanika, ktry od tego momentu bdzie pokazywa nastpn komrk pamici o niszym
adresie. Przy pobieraniu informacji ze stosu za pomoc instrukcji  odbywa si proces
odwrotny: informacja jest odczytywana z komrki okrelonej przez zawarto rejestru,
a po odczycie zawarto rejestru wskanikowego powikszana jest o jeden.
Maksymalny rozmiar stosu ustalany jest na podstawie rozmiaru liczb, ktre mog by
przechowywane w rozwaanym rejestrze oraz na podstawie pocztkowej wartoci
wskanika stosu (w normalnych warunkach jest ona taka sama, jak rozmiar segmentu przydzielonego na potrzeby stosu). Na og to drugie ograniczenie jest wice, chocia mona take utworzy bardzo duy stos korzystajcy z caej niemal pojemnoci rejestru.
Gdy program prbuje przesa na stos wicej informacji ni mona obsuy ze wzgldu
na ograniczenia rozmiaru stosu, wtedy wskanik stosu staje si ujemny. Procesor rejestruje ten fakt i zanim dojdzie do operacji na stosie, wygenerowany zostanie wyjtek.
W komputerze PC zawsze musi istnie stos gotowy do uytku. Procesor przechowuje
wskanik biecego pooenia w stosie w rejestrze zwanym rejestrem wskanika stosu
(SP). Jest to warto offsetu w segmencie wskazywanym lub definiowanym przez zawarto rejestru segmentu stosu (SS).
W kadym poprawnie napisanym programie jedn z pocztkowych operacji jest
utworzenie prywatnego stosu. Wynika to std, e programici nie mog przewidzie,
ile dostpnego miejsca znajduje si na stosach utworzonych wczeniej. Operacja tworzenia prywatnego stosu przez program polega na zarezerwowaniu pewnego obszaru
pamici, nastpnie przesaniu biecej wartoci wskanika stosu na stos utworzony
wczeniej, a potem zaadowaniu do rejestrw SS i SP nowych wartoci wskazujcych
na zarezerwowany obszar pamici. Koczc t operacj, program pobiera stare wartoci ze stosu i procesor odzyskuje swj poprzedni stan. Konieczne jest rwnie przesanie na stos zawartoci wszystkich rejestrw, ktre bd modyfikowane przez program i pobranie ich ze stosu na zakoczenie programu.

Cz III Czarne skrzynki w szklanej skrzynce

340

W komputerze PC mona zdefiniowa dowoln liczb stosw w dowolnym momencie, ale tylko jeden z nich bdzie stosem biecym. Jest nim stos okrelany za pomoc
adresu logicznego  (jest to zapis specjalny, ktry naley odczytywa jako oddzielone dwukropkiem liczby szesnastkowe, przechowywane w dwch rejestrach
o nazwach podanych w nawiasie kwadratowym).
Przy okazji naley wspomnie, e w ostatnio produkowanych procesorach x86 istnieje jeszcze inny stos. Jest on przeznaczony do obsugi omiu 80-bitowych rejestrw
procesora, ktre wykorzystywane s do oblicze zmiennoprzecinkowych, a take do
wykonywania instrukcji MMX w procesorach Pentium MMX i Pentium II. Z tego
specjalnego stosu w zwyczajnych okolicznociach korzystaj tylko instrukcje MMX
(i 3DNow! w klonach x86) oraz instrukcje zmiennoprzecinkowe. Nie naley go myli
z normalnym stosem, tworzonym i obsugiwanym przez instrukcje  i 
poza
obszarem pamici gwnej w programach.
Stos odgrywa wan rol w programowaniu, poniewa umoliwia tworzenie bardziej
skomplikowanych struktur ni w przypadku korzystania z samych rejestrw procesora,
sucych do tymczasowego przechowywania informacji. Bez stosu nie byaby moliwa wielozadaniowo.

Porty
Gdy procesor tworzy adres fizyczny na swoich wyprowadzeniach adresowych, odwouje si do okrelonego miejsca w przestrzeni adresw pamici. Prosta zmiana stanu
napicia z wysokiego na niski na jednym z wyprowadze (nazywanym wyprowadzeniem uaktywniajcym pami lub porty I/O) sygnalizuje, e adres na wyprowadzeniach
procesora moe by interpretowany jako warto z innej przestrzeni adresowej.
Poniewa te inne adresy przewanie uywane s podczas przekazywania informacji
midzy procesorem i innymi urzdzeniami, w tym take urzdzeniami zewntrznymi,
okrelana przez nie logiczna przestrze adresowa nazywana jest przestrzeni portw
wejcia-wyjcia komputera. Niezalenie od tego, e adresy w nowej przestrzeni okrelane s przez napicia na tych samych wyprowadzeniach, ktre okrelaj take
zwyczajne adresy, przestrze portw I/O jest czym zupenie innym ni fizyczna
przestrze adresowa.
Przede wszystkim jest ona znacznie mniejsza. Kady procesor z rodziny x86, poczwszy od 8086 i 8088 a do najnowszych modeli Pentium II, ma tak sam przestrze I/O o rozmiarze 64 kB (65536). Wynika to std, e do jej obsugi procesory
wykorzystuj tylko 16 dolnych linii adresowych.
Oprcz tego, z adresami w przestrzeni portw I/O nie wie si adna komplikacja
w postaci selektorw lub stronicowania. Dysponujemy tylko 64 kB adresw portw
(jednobajtowych), dlatego te do okrelenia danego portu potrzebna jest tylko jedna
liczba 16bitowa, ktr mona zaadowa do dowolnego rejestru oglnego przeznaczenia (chocia niektre instrukcje wymagaj, by adres portu zaadowany by do rejestru DX).

Rozdzia 15. Tajemnice pyty gwnej

341

Wszystkie ukady z rodziny x86, z wyjtkiem procesora 8088, mog odczytywa


i zapisywa rwnoczenie co najmniej dwa (ale nie wicej ni osiem) bajty informacji
z pamici, zatem mog one take obsugiwa tak sam liczb kolejnych adresw
portw podczas jednej operacji. Podobnie jak przy adresowaniu komrek pamici,
procesor moe wskazywa adresy portw z rozdzielczoci wynikajc z szerokoci
magistrali danych. Oznacza to, e Pentium moe adresowa blokowo po osiem portw, niezalenie od tego, e moe wymienia informacje z kadym portem jednobajtowym, jeli jest to konieczne.

Rnice midzy portami I/O a komrkami pamici


Gwna rnica midzy portami I/O a komrkami pamici polega na odmiennym
sposobie traktowania danych przesyanych w te miejsca. Kolejne bajty wysyane do
portu trafiaj zazwyczaj do jakiego urzdzenia odbiorczego. Za kadym razem, przy
kolejnych odczytach z portu, uzyskiwa mona rne wartoci (i adna z nich nie musi by taka sama, jak przesano do portu) wie si to z tym, e odbierana informacja pochodzi z zewntrz. Takie zachowanie wyranie rni si od zachowania
prawdziwych komrek pamici, w ktrych warto odczytywana jest dokadnie taka
sama jak warto ostatnio zapisana.
Nie oznacza to, e pod adresami portw nie mog by umieszczone ukady pamici,
chocia w praktyce rzadko spotyka si takie rozwizania.

Odwzorowanie wej-wyj w pamici jako inne rozwizanie dla portw


Co si stanie, jeli adresy zostan uyte odwrotnie, czyli gdy jakie urzdzenie wejciowo-wyjciowe zostanie umieszczone w przestrzeni adresowej pamici, zamiast
w przestrzeni adresowej portw I/O? Ot jest to moliwe i co wicej moe si to
okaza niezwykle przydatne. Nie trzeba skomplikowanych sztuczek, by ukady portu
reagoway tak jak pami. Wystarczy po prostu odwrci sygna na linii MEM/IO#, a port
bdzie traktowa prby dostpu do pamici jako prby dostpu do portu i odwrotnie.
Przydatno takiego rozwizania wynika z rnicy szybkoci midzy magistral ISA,
obsugujc porty I/O, a magistral obsugujc pami. Aby uzyska maksymaln
szybko transmisji w urzdzeniu wejciowo-wyjciowym, naley odwzorowa je
w pamici, czyli spowodowa, by pojawio si ono w przestrzeni adresowej pamici
procesora. Najnowszym przykadem takiego rozwizania jest tzw. zaawansowany
port grafiki (ang. Advanced Graphic Port, w skrcie AGP), stosowany w komputerze
PC do obsugi najszybszych kart graficznych.
Niestety, pociga to za sob dodatkow komplikacj, ktrej mona by unikn, gdyby
urzdzenie byo wczone w przestrze adresow rzeczywistego portu. Ze wzgldu na
rnorodno przeksztace liniowej przestrzeni adresowej na fizyczn przestrze adresow pamici (stosowanie selektorw oraz stronicowania), bardzo atwo mona doprowadzi do sytuacji, w ktrej urzdzenie podczone do portu pojawia si wielokrotnie w liniowym odwzorowaniu adresw lub znika cakowicie z tej przestrzeni.
Jest to zjawisko niepodane, poniewa programy komunikujce si z urzdzeniami,
by mc dziaa poprawnie, musz zna ich lokalizacj.

Cz III Czarne skrzynki w szklanej skrzynce

342

Na szczcie, dysponujemy obecnie moliwoci szybkiej obsugi urzdze poprzez


magistral PCI, zatem zmniejsza si liczba powodw, dla ktrych naleaoby korzysta z odwzorowania portw w pamici. Obecnie prawie wszystkie urzdzenia peryferyjne, ktre wymagaj duej szybkoci obsugi, podczane s do magistrali PCI.

Przepustowo portw
Pierwotnie porty podczane byy do linii danych i linii adresowych procesora tak
samo jak ukady pamici. W miar wzrostu szybkoci dziaania procesorw i pamici,
zaczto rozdziela drogi przepywu danych do pamici i do portw I/O. cz si one
w zestawie ukadw pomocniczych pyty gwnej, lecz poza tym miejscem dziaaj
niezalenie i z rnymi szybkociami.
Nowoczesne i bardzo dobrze wyposaone komputery PC korzystaj na przykad
z magistrali pamici dziaajcej z czstotliwoci 166 MHz (oraz z zegarem wewntrznym procesora o czstotliwoci do 3,06 GHz), lecz magistrala PCI taktowana
jest z czstotliwoci do 66 MHz. Obsugiwana jest rwnie magistrala ISA, taktowana
jak za dawnych czasw z czstotliwoci 8,33 MHz. Te ograniczenia przepustowoci stosowane s po to, by nawet w najnowszych komputerach zapewni moliwo korzystania ze starszych kart rozszerzajcych.

Przerwania, czyli sia napdowa


Dotychczas opisano ju wszystkie waniejsze czci komputera PC, zatem znana jest,
przynajmniej w sensie statycznym, jego podstawowa architektura. Nie byo jednak
jeszcze mowy o pewnych kluczowych aspektach dynamicznych tej architektury
i dlatego powicone im zostan pozostae rozwaania. Pierwsz grup zagadnie
z tej dziedziny i w pewnym sensie najwaniejsz stanowi przerwania.

Nasuch kontra przerwania


Wyobramy sobie ma kwiaciarni w centrum handlowym. Jej waciciel musi obsugiwa odwiedzajcych go klientw, lecz w przerwach musi udawa si na zaplecze
i wykonywa prace biurowe. Mona zada sobie pytanie: w jaki sposb waciciel
dowiaduje si, e przyby klient i trzeba odoy prac biurow, by go obsuy?
S tu dwie podstawowe strategie dziaania. Jedna z nich polega na przerywaniu pracy
biurowej w regularnych odstpach czasu, odchodzeniu od biurka i sprawdzaniu, czy
pojawi si klient, ktrego naley obsuy. Jest to tzw. nasuch (ang. pooling). Taka
strategia sprawdza si, lecz jest bardzo mao wydajna, a to z dwch powodw. Po
pierwsze, klient, by zosta obsuonym, musi czeka, a nadejdzie czas przerwy
w pracy biurowej waciciela. Po drugie, nawet kiedy nie ma klientw, waciciel nie
moe cakowicie powici si pracy biurowej, poniewa musi regularnie sprawdza,
czy kto si nie pojawi w sklepie i nie da obsugi.

Rozdzia 15. Tajemnice pyty gwnej

343

Powszechnie stosowanym rozwizaniem przynajmniej w kwiaciarniach jest instalacja czujnika wyzwalanego przy przejciu klienta przez drzwi. Zazwyczaj takie
urzdzenie skada si ze rda wiata i fotodetektora umieszczonego na przeciwnej
framudze drzwi. Przerwanie wizki wiata przez wchodzcego (lub wychodzcego)
klienta powoduje uruchomienie dzwonka na zapleczu, a tym samym waciciel zostaje powiadomiony, e trzeba kogo obsuy. Pocztkowy koszt tego rozwizania
jest wikszy ni koszt nasuchu, bowiem wie si z zakupem oraz instalacj czujnika
i dzwonka. Na dusz met taka inwestycja jest jednak opacalna, poniewa waciciel moe dziki niej pracowa bardziej wydajnie.
Po raz pierwszy firma Intel zastosowaa podobne rozwizanie w procesorze 8086,
a potem we wszystkich ukadach z rodziny x86. Szczegy stosowania tej strategii s
bardzo interesujce.

Tablica wektora przerwa


Intel projektuje procesory z rodziny x86 w taki sposb, by podczas pracy w trybie
rzeczywistym koczyy wykonywanie biecej instrukcji, przeryway wykonywane
zadanie, zachowyway znacznik wskazujcy miejsce zawieszenia zadania i rozpoczynay wykonywanie innego specyficznego zadania jeli pojawi si jedno z 256 okrelonych zdarze. Rodzaj wykonywanego specyficznego zadania zaley od rodzaju
przerwania.
W procesorach firmy Intel odbywa si to w taki sposb, e po pojawieniu si sygnau
przerwania okrelany jest najpierw jego rodzaj, a potem nastpuje skok pod specyficzny adres, umieszczony bardzo blisko pocztku przestrzeni adresowej pamici.
Z komrki o tym adresie pobierany jest wskanik do innej komrki, gdzie mieci si
program realizujcy waciw obsug danego rodzaju przerwania.
Naley zwrci uwag na brak wskaza bezporednich; konstruktorzy procesora mogliby na przykad wyda polecenie: Jeli wystpi przerwanie o numerze 75, przejd
pod podany adres i wykonaj to, co nakazuje umieszczony tam program. Odbywa si
to jednak inaczej do procesora wysyana jest instrukcja: Pobierz warto wskanika z pozycji o numerze 75 w tablicy wektora przerwa (ang. interrupt vector table,
w skrcie IVT) i wykonaj program, na ktry on wskazuje.
Taki brak bezporedniego adresowania ma kilka zalet, z ktrych do wan jest
moliwo zmiany w locie zachowa procesora w odpowiedzi na przerwanie. Wymaga to tylko zmiany wskanika dla danego rodzaju przerwania, by nie wskazywa
on na przykad na program A, lecz na program B.
Tablica wektora przerwa w trybie rzeczywistym umieszczona jest wewntrz pocztkowego 1 kB rzeczywistej fizycznej przestrzeni adresowej pamici. W trybie wirtualnego procesora 86 jest to pocztkowy 1 kB liniowej przestrzeni adresowej, ktry moe mie rne pooenie w przestrzeni fizycznej. W trybach chronionych 286 lub 386
wektor przerwa zosta zastpiony przez podobn struktur, nazywan tablic deskryptora przerwa (ang. interrupt descriptor table, w skrcie IDT), ktra moe by
umieszczona przez system operacyjny w dowolnym obszarze pamici. Z powodw

Cz III Czarne skrzynki w szklanej skrzynce

344

praktycznych nie wolno umieszcza deskryptora przerwa w takim obszarze pamici


fizycznej, ktry mgby by odwzorowany poza zakresem adresw dostpnych dla
procesora. Inne ograniczenia tutaj nie wystpuj.
Szczegowe zasady obsugi przerwa w trybie chronionym mog by bardzo skomplikowane i do ich opisu wprowadza si rne pojcia, na przykad: bramka przerwa, bramka puapki, segment stanu zadania itp. Na szczcie, mona zrozumie dziaanie systemu przerwa na podstawie oglnego opisu ich dziaania w trybie
rzeczywistym. Dalej pozostaje ju tylko wiara, e konstruktorzy procesorw i systemw operacyjnych waciwie zaprojektowali trudniejsze zadania i w skomplikowanym rodowisku trybu chronionego wszystko dziaa podobnie.

Jak powstaj przerwania?


W podanym poprzednio porwnaniu z kwiaciarni w centrum handlowym pokazano,
e przerwanie moe by uyte w celu sygnalizacji zewntrznych zdarze (w tym
przypadku byo to wejcie klienta). Niektre przerwania w komputerze osobistym
rwnie pojawiaj si w wyniku zdarze zewntrznych. S te przerwania bdce
wynikiem celowego dziaania programw, a take takie, ktre wywoywane s przez
sam procesor.

Przerwania sprztowe
Pierwszy rodzaj przerwa, zwanych przerwaniami sprztowymi, wykorzystywany jest
jako gwny rodek zwracania uwagi procesora na to, co dzieje si poza nim. Na przykad przy kadym naciniciu klawisza klawiatura przesya do jednostki centralnej pewien sygna. Specjalny ukad zwany sterownikiem klawiatury odbiera ten sygna i nastpnie sygnalizuje procesorowi nacinicie klawisza.
Procesor ma dwa wyprowadzenia, za pomoc ktrych mog by mu sygnalizowane
przerwania sprztowe: normalne wejcie przerwa (z symbolicznym oznaczeniem INTR)
oraz wejcie przerwa niemaskowalnych (wyprowadzenie z oznaczeniem NMI).
W rzeczywistoci w komputerze znacznie wicej zdarze wymaga powiadomienia
procesora i wydaje si to w takiej sytuacji problemem. Na szczcie standardowa architektura komputera osobistego zawiera rozwizanie tego kopotu.
Standardow czci pyty gwnej, otaczajc kady procesor, jest podsystem zwany
sterownikiem przerwa. W pierwotnym komputerze PC/XT mg on przyjmowa sygnay z omiu linii i wysya do procesora sygna przerwania. Nastpnie, po potwierdzeniu odbioru tego sygnau przez procesor, sterownik przerwa powinien poinformowa procesor o tym, z ktrej linii pochodzio przerwanie. W komputerze IBM
PC/AT i wszystkich konstrukcjach pniejszych, liczba wej sterownika przerwa
zostaa powikszona do 15 albo 16. Ta niejednoznaczno (15 albo 16) wynika z faktu,
e jedno z wej przerwa zbiera sygnay z omiu innych, lecz w niektrych sytuacjach moe by wykorzystywane niezalenie.

Rozdzia 15. Tajemnice pyty gwnej

345

Magistrala wejciowo-wyjciowa zawiera dziewi ze wspomnianych szesnastu linii


dania przerwa (IRQ). Dowolne urzdzenie podczone do gniazda magistrali I/O
moe za pomoc tych linii informowa procesor o koniecznoci obsugi. Pozostae linie
IRQ zarezerwowane s do uytku pyty gwnej, na przykad przez kontroler klawiatury.
Karty rozszerzajce, wczane do magistrali ISA, nie mog w normalny sposb wspuytkowa linii przerwa. Kada z linii moe by wykorzystana tylko przez jedn
kart rozszerzajc. Z drugiej strony, karty wczane do magistrali PCI lub CardBus
wspuytkuj zazwyczaj przerwania z innymi kartami wczonymi do takiej nowoczesnej magistrali. Kade z przerwa spowodowanych obecnoci sygnau na linii
IRQ dociera ostatecznie do wyprowadzenia INTR procesora. Przerwanie niemaskowalne (NMI) jest przewanie uywane tylko przez ukady zerujce cay komputer PC.
Rnica midzy przerwaniem niemaskowalnym a zwykym da si wyjani nastpujco: gdy zostanie przejte przerwanie zwyke (maskowalne), procesor moe je odrzuci, jeli dotaro do niego polecenie ignorowania przerwa. Fakt odoenia przerwania zapamitywany jest do momentu, w ktrym procesor moe odpowiedzie na
danie. Wyglda to tak, jakby dorosa osoba mwia dziecku cigncemu j za rkaw:
Nie teraz, kochanie. Porozmawiam z tob, jak skocz rozmawia przez telefon.
Przerwanie niemaskowalne moe zosta wykorzystane wtedy, gdy nie mona dopuszcza do opnie. Funkcjonuje to podobnie do dziaania alarmu poarowego. Ukady
zerujce uywaj tego mechanizmu do przerwania pracy procesora, poniewa dziaa
on zawsze, bez wzgldu na to, e procesor moe by cakowicie otumaniony
i mgby nieskoczenie dugo nie odpowiada na zwyke przerwania.

Przerwania programowe
W firmie Intel oceniono, e bardzo dobrze bdzie stworzy takie rozwizanie, ktre
umoliwiaoby programom powodowanie przerwa w czasie swojej pracy. Polega to
na przerwaniu pracy programu gwnego i uruchomieniu innego specjalnego programu obsugujcego zdarzenie zgaszajce sygna przerwania.
Bez trudu mona wykaza zalet takiego mechanizmu. Twrca programu moe na
przykad wiedzie, e w pewnym momencie program musi wysa jak informacj
na ekran. Jednak program (i programista) nie musz potrafi dokadnie okreli, w jaki
sposb ma si to odbywa. Wystarczy wwczas, e gwny program przechwyci odpowiedni rodzaj przerwania przy okrelonych wartociach w niektrych rejestrach,
wskazujcych, co ma by wysane na ekran, a program wywoany przez przerwanie
wykona reszt pracy.
Programista tworzcy program, ktrego zadaniem jest wysyanie czego na ekran, nie
musi zna wszystkich szczegw takich operacji. Z kolei programista tworzcy program, ktry faktycznie realizuje zapis na ekran, nie musi niczego wiedzie o tym, dlaczego i kiedy dana informacja ma pojawia si na ekranie.

Cz III Czarne skrzynki w szklanej skrzynce

346

Wyjtki procesora
Po zrealizowaniu opisanego mechanizmu, specjalici pracujcy w firmie Intel doszli
do wniosku, e byoby dobrze, gdyby procesor mg z niego korzysta do obsugi
wykrywanych przez siebie bdw. Dotyczy to na przykad takich sytuacji, w ktrych
program dajcy dostpu do obszaru pamici, w stosunku do ktrego nie ma odpowiednich uprawnie (czsto nazywa si to oglnym bdem ochrony lub bdem strony),
bdzie wyzwala odpowiednie przerwanie. Wywoany program obsugi takiego przerwania moe nastpnie wywietli na ekranie okno z informacj o bdzie i zakoczy
dziaanie programu gwnego, ktry w bd spowodowa.

Programy obsugi przerwa


Programy reagujce na sygna przerwania nazywane s, zgodnie ze swoim przeznaczeniem, programami obsugi przerwa (ang. interrupt service routines, w skrcie ISR).
Kade z 256 moliwych przerwa musi mie wasny program obsugi lub programw
tych musi by co najmniej tyle, ile faktycznie wystpuje przerwa. Niekoniecznie
musz to by rne programy, poniewa niektre z nich wykorzystuje si do obsugi
wielu przerwa.
Po wywoaniu programu obsugi przerwania jest on wykonywany i koczy si specjaln instrukcj RET, oznaczajc powrt do programu gwnego. Procesor traktuje
t instrukcj jako polecenie powrotu do czynnoci wykonywanych przed wystpieniem przerwania.
Prosty program obsugi przerwania moe zawiera tylko instrukcje RET i w takim
przypadku bdzie programem, ktry nie podejmuje adnego dziaania. Jeeli posiada
si takie instrukcje umieszczone gdzie w pamici, naley po prostu tak konstruowa
pozycje tablicy wektora przerwa, ktre maj by obsuone, by ignoroway wskazanie na t instrukcj.

Przerwanie zakcajce program obsugi innego przerwania


W dotychczasowych rozwaaniach nic nie wskazywao na to, e programy obsugi
przerwa same zabezpieczaj si przed innymi przerwaniami. Niekiedy nie mona
pozwoli, by byy one przerywane w cigu krtkiego czasu w trakcie swojego dziaania; w takim przypadku mona wczy mask zabraniajc przerwa. Nie jest to jednak rozwizanie godne dobrego programisty, jeeli komputer pozostaje w takim stanie przez czas duy ni jest to niezbdnie konieczne.
Mamy zatem do czsto do czynienia z sytuacjami, w ktrych programy obsugi
przerwa s przerywane. Jeli tak si zdarzy, wykonywanie takiego programu jest
przerywane dokadnie tak samo, jak kadego innego programu. W miejsce dziaajcego programu obsugi przerwania pojawia si nowy, ktry jest wykonywany i koczy si
instrukcj RET. W tym momencie procesor powraca do wykonywania poprzedniego
programu obsugi przerwania i dopiero po jego zakoczeniu nastpuje powrt do waciwej aplikacji.

Rozdzia 15. Tajemnice pyty gwnej

347

Warstwowa struktura programw obsugi przerwa


Nie tylko inne przerwania mog przerywa dziaanie programw obsugi przerwa.
Czsto spotyka si sytuacje, w ktrych jeden program obsugi przerwania wywouje
inny, ten natomiast wywouje jeszcze inny itd. Po zaadowaniu programu obsugi
przerwania do pamici, zastpuje on adres zapisany w okrelonym miejscu tablicy
wektora przerwa swoim wasnym adresem. Jeli program napisany by poprawnie,
na pocztku kopiuje pierwotny adres do jakiego miejsca przechowywania w swojej
wasnej strukturze. Nastpnie, jeli do pamici zostanie zaadowany inny program obsugujcy to samo przerwanie, rwnie wykona on tak sam czynno. Jeli taka
sytuacja si powtarza, to cay zesp poprawnie skonstruowanych programw obsugi
przerwa dziaa bardzo dobrze i uytkownik nie musi si martwi tym, co dzieje si
bardzo gboko w pamici jego komputera.

Usugi BIOS w pamici ROM


Mona zada sobie pytanie, skd komputer pobiera programy obsugi przerwa? Ot
kada maszyna opuszcza fabryk z pamici ROM, ktra zawiera BIOS. Ten ukad
scalony (a waciwie najczciej s to dwa ukady) moe zawiera rne dane i programy.
Wikszo z nich to programy obsugi przerwa realizujcych najbardziej elementarne czynnoci, ktre musi wykonywa kady komputer PC na przykad odpowiadanie na sygnay z klawiatury i wpisywanie znakw na monochromatycznym ekranie.
Pod koniec tego rozdziau zostan szczegowo omwione wpisy w pierwotnej tablicy
wektorw przerwa, wskazujce na programy ich obsugi, zawarte w ukadzie BIOS.
W wielu komputerach PC wystpuj rwnie pamici ROM na kartach rozszerze,
zawierajce dodatkowe programy BIOS. Jednym ze znanych powszechnie przykadw jest karta grafiki, ktra obecnie prawie zawsze ma bardzo rozbudowany BIOS
w pamici ROM. Zawiera on inne programy obsugi przerwa zwizanych z zapisem
na ekran za pomoc ukadw karty. Na pocztku procesu rozruchu komputera taka
karta musi zatem umieci w tablicy wektorw przerwa adresy swoich wasnych
programw, aby zastpi nimi adresy domylne, pochodzce z BIOS-u pyty gwnej.

Usugi DOS i BIOS w pamici RAM


Podczas adowania systemu operacyjnego do pamici aduje si wiele dodatkowych
programw obsugi przerwa. Prawie kady system operacyjny mona zatem w pewnym sensie traktowa jako duy zbir programw obsugi przerwa. Wikszo z usug
wiadczonych przez system operacyjny na rzecz programw odbywa si za pomoc programw obsugi przerwa obecnych albo w tym systemie, albo w pamici ROM BIOS.
Po zaadowaniu programu rezydentnego (na przykad programu obsugi myszy),
w komputerze pojawia si nastpny program obsugi przerwania. Prawie zawsze w takim
przypadku program nie tylko adowany jest do pamici w sposb umoliwiajcy korzystanie z niego w dowolnym momencie, lecz take musi wpisa swj wasny adres pocztkowy w odpowiednie miejsce tablicy wektora przerwa, by jego uytkowanie
byo moliwe.

348

Cz III Czarne skrzynki w szklanej skrzynce

Powszechnie spotykanym odstpstwem od tej zasady jest pewna klasa programw


obsugi urzdze zwanych urzdzeniami blokowymi (ang. block devices). S to programy, ktre na przykad obsuguj symulowane dyski (np. dyski wirtualne w pamici
RAM) lub uaktywniaj wystpujce w komputerze dyski specjalnego typu. Programy
takie wczaj si same w system operacyjny, zarwno za pomoc wpisu w odpowiednie miejsce tablicy wektora przerwa, jak i za pomoc wpisu na list powizan
(ang. linked list), nazywan kaskad programw obsugi urzdze.
Obok bezporednich operacji procesora, przerwania s jedn z najwaniejszych przyczyn dziaania komputera. W rzeczywistoci ich rola jest tak wana, e stay si one
bardzo cennym i poszukiwanym zasobem, poniewa niekiedy jest ich za mao w porwnaniu z wymaganiami sprztu. Taka sytuacja prowadzi czsto do konfliktw, wystpujcych wtedy, gdy nie mona znale wolnego przerwania dla urzdzenia zainstalowanego przed chwil w komputerze.
Na szczcie magistrala ISA powoli wychodzi z uycia i zastpowana jest przez USB
oraz FireWire (IEEE 1394), w ktrych nie wystpuj tego typu problemy. Nowe magistrale wymagaj jednego, a niekiedy wicej przerwa, by same mogy dziaa, lecz
obsuguj wielk liczb urzdze peryferyjnych bez potrzeby korzystania z dodatkowych przerwa.
Kolejn specjaln funkcj standardowej architektury PC, dziaajc podobnie do przerwa, jest kana bezporedniego dostpu do pamici (DMA). Wspomniano o nim ju
nieco wczeniej w tym rozdziale, podczas omawiania pamici podrcznej; teraz nadesza pora na podanie szczegw.

Czym jest kana DMA?


Najczciej dzieje si tak, e przemieszczanie kadego bajta informacji wewntrz
pamici gwnej komputera lub midzy pamici a portem I/O odbywa si dwuetapowo. Najpierw procesor pobiera dany bajt do ktrego ze swoich rejestrw, a potem
wysya ten bajt z rejestru na miejsce jego przeznaczenia.
Taka procedura si sprawdza, chocia nie jest pozbawiona wad. Po pierwsze, procesor nie moe zaj si czym innym podczas operacji przenoszenia bajta. Po drugie,
cay proces odbywa si w dwch rnych etapach. Przeniesienie pojedynczego bajta
w taki sposb nie niesie ze sob jeszcze adnych zagroe, lecz przy bardzo duej iloci bajtw mog pojawi si problemy.
W komputerze PC mona znale kilka urzdze, ktre wymagaj przenoszenia wielobajtowej informacji. Najpierw stosowana bya do tego dyskietka. Karty dwikowe
przesyaj w taki sposb tyle informacji, e wymagaj wicej ni jednego kanau
DMA. Podobnie jest w przypadku skanerw, ktre korzystaj z kanau DMA; kt
jednak moe przewidzie, jakie jeszcze urzdzenia wymagajce takiej obsugi pojawi si w przyszoci?

Rozdzia 15. Tajemnice pyty gwnej

349

Konstruktorzy pierwszego komputera PC zdawali sobie z tego spraw, dlatego zdecydowali o doczeniu dodatkowego mikrosterownika, przeznaczonego wycznie do
obsugi takich problemw. Jest to specjalny ukad mikroprocesorowy, wykonujcy
tylko jedno zadanie, noszcy nazw sterownika bezporedniego dostpu do pamici
(lub po prostu ukadu DMA). Wsppraca tego ukadu z procesorem gwnym polega
na tym, e procesor moe przekaza mu cz swoich zada zwizanych z przenoszeniem pewnej liczby bajtw z kolejnych komrek pamici, poczwszy od okrelonego
adresu do kolejnych komrek zlokalizowanych pod innym adresem pocztkowym.
Istnieje rwnie moliwo polecenia sterownikowi DMA, by wysa okrelon liczb
bajtw z kolejnych komrek pamici na okrelony adres portu.
Procesor moe take nakaza sterownikowi DMA pobranie okrelonej liczby bajtw
ze wskazanego portu i zachowanie ich w kolejnych komrkach pamici, poczwszy
od okrelonego adresu. Przy kadej takiej operacji ukad DMA tworzy tzw. kana
DMA. Oznacza to, e okrelona cz tego ukadu zajmuje si okrelonym zadaniem.
Ukad DMA nie jest jednak w stanie wskaza, ktra jego cz ma si zajmowa poszczeglnym zadaniem. O wyborze kanau decyduje urzdzenie dajce wykonania
takiej operacji (czyli procesor lub jakie urzdzenie wejciowe albo wyjciowe). Oznacza to, e kanay DMA rwnie znajduj si w grupie cennych zasobw i konflikty
w dostpie do nich mog uniemoliwia uzyskanie penej wydajnoci.
Do tej pory w komputerze PC nie spotyka si zbyt wielu urzdze, ktre wymagaj
uycia kanau DMA, zatem problem braku wolnych kanaw jest mniej grony ni
problem braku wolnych przerwa. Taka sytuacje nie musi jednak trwa bez koca,
poniewa w miar wzrostu liczby nowych urzdze peryferyjnych przesyajcych coraz wiksze porcje informacji moe si okaza, e sterownik DMA nie bdzie mg
znale wolnego kanau.

Dlaczego DMA popad w nieask?


Pocztkowo traktowano DMA jako cudowne rozwizanie wszystkich problemw.
Sterownik stacji dyskietek w pierwszym komputerze PC korzysta z DMA, co pomogo przyspieszy stabilizacj dziaania tego z natury powolnego urzdzenia. Kilka lat
pniej niektre sterowniki dyskw twardych oraz sterowniki magistrali SCSI rwnie korzystay z mechanizmw bezporedniego dostpu do pamici.
Nastpnie wszystko zaczo si zmienia. Zaczto stosowa szybsze procesory, lecz
magistrala ISA, obsugujca wejcia i wyjcia nie moga by przyspieszona. Dopiero
niewielkie przyspieszenie jej zegara z pocztkowej czstotliwoci 4,77 MHz do 8,33
MHz w PC/AT przynioso efekty. Kady producent klonw komputera PC, ktremu
udao si przyspieszy dziaanie magistrali (niektrzy uzyskiwali nawet 12 MHz),
igra z losem, poniewa z ca pewnoci niektre karty rozszerze uywane przez
klientw mogy wsppracowa tylko ze standardow magistral, a nie z jej przyspieszon wersj.
Gdy wzrosa szybko dziaania procesorw, wzrosa rwnie szybko dziaania
pamici gwnej, chocia nie w sposb bardzo znaczcy. Czstotliwo taktowania
magistrali pamici podwyszano od pocztkowej wartoci 4,77 MHz do 16 MHz,

Cz III Czarne skrzynki w szklanej skrzynce

350

potem do 33 MHz i ostatecznie do 133 MHz, a przy okazji dokonywano oczywicie


innych ulepsze. Magistrala ISA nadal jednak musiaa by taktowana czstotliwoci
8,33 MHz. Oznaczao to, e sterownik DMA jest nieustannie powstrzymywany przez
t powoln magistral (w szczeglnoci dotyczy to operacji wymiany danych midzy
pamici a portem przez magistral ISA). Pomimo teoretycznej moliwoci realizacji
zadania bez udziau procesora, sterownik DMA nie mg wykona go szybciej ni
sam procesor, obsugujcy urzdzenia peryferyjne za pomoc mechanizmw odwzorowania pamici. Kilka latem temu pojawiy si zatem i zaczy wici tryumfy programowane wejcia-wyjcia dla urzdze peryferyjnych z odwzorowaniem portw
w pamici. Mechanizmy DMA nadal wykorzystywane s jako efektywny sposb
przekazywania danych midzy rnymi obszarami pamici, natomiast przy wymianie
danych z portami nie s ju po prostu potrzebne.

Powrt DMA
DMA powrci jednak na scen i okazao si, e stanowi lepsze rozwizanie ni rodki zastosowane w pierwszym komputerze PC. Powodem tego zwrotu s po prostu
nowe technologie stosowane w magistralach obsugujcych wejcia i wyjcia (PCI,
USB i CardBus). Dziki nim przekaz danych do urzdze peryferyjnych i odbir danych z tych urzdze odbywa si prawie tak samo szybko jak przekaz danych na magistrali pamici gwnej. Obecnie po raz drugi DMA jawi si jako moliwo zaoszczdzenia czasu pracy procesora i jego otoczenia.
Take sam system DMA zosta ulepszony i obecnie korzysta moe z dostpnej przepustowoci magistrali w sposb znacznie bardziej wydajny ni kiedy. Najnowsza
wersja tego mechanizmu, zwana Ultra DMA, stosowana jest przy transmisji danych
do urzdze IDE z przepywnoci 33 MB/s (czyli dwukrotnie wiksz ni poprzednio).
Wykorzystano tu moliwo transmisji danych, wyzwalanej obydwoma zboczami
impulsw zegarowych, a nie tylko samym zboczem opadajcym, co byo dotd powszechnie przyjte i nadal jest standardem w przypadku wikszoci magistrali.
Dla uytkownika PC oznacza to powrt kanaw DMA. Ponownie stay si one zalecanym sposobem przenoszenia duych porcji danych midzy urzdzeniami peryferyjnymi i pamici, a coraz wicej urzdze zaczyna korzysta z tego rozwizania.

Dostosowywanie si do zegara
Czstotliwoci zegara w komputerze PC byy wzmiankowane ju kilkakrotnie. Rzeczywicie, od wielu lat jedn z najczciej wymienianych liczb w reklamach komputerw jest warto czstotliwoci zegarowej (czytamy na przykad: Kup nasz wspaniay,
nowy komputer z dwoma procesorami Pentium II Xeon 450 MHz). C tak naprawd oznacza ta czstotliwo? Ktre czci komputera faktycznie taktowane s tak
czstotliwoci? Czy w komputerze s jeszcze jakie inne generatory zegarowe? Jeli
tak, czemu su? Odpowied na te pytania Czytelnik znajdzie w tym podrozdziale.

Rozdzia 15. Tajemnice pyty gwnej

351

Porwnanie asynchronicznego i synchronicznego


dziaania komputerw
Ukady elektroniczne wymagaj pewnego czasu na wykonanie jakich operacji, mimo
i wydaj si nadzwyczaj szybkie. Czas ten zmienia si w zalenoci od egzemplarza.
Moliwe jest zbudowanie komputera, ktry nie byby wyposaony w generator zegarowy, a ktry dziaaby z tak szybkoci, na jak pozwalayby jego poszczeglne
elementy. Dane dane od pamici mogyby sta si dostpne dopiero po pojawieniu
si takiego dania. Wyniki oblicze byyby odsyane do pamici dopiero wtedy, gdy
stan si dostpne. aden element nie traciby czasu na niepotrzebne oczekiwanie,
poniewa po prostu nie musiaby nada za jakim centralnym zegarem.
Taki komputer mona zbudowa, chocia na pewno nie jest to atwe zadanie. Znacznie prociej projektuje i buduje si komputer, w ktrym kady element jest synchronizowany z centralnym zegarem odmierzajcym rytm pracy. Jeli tykanie tego zegara
jest wystarczajco wolne, mona mie pewno, e wszystkie elementy ukocz wykonywanie swoich zada przed pojawieniem si nastpnego tyknicia, nakazujcego wykonanie nastpnej czynnoci. Konstrukcja komputerw synchronicznych jest
tak prosta, e obecnie prawie kady komputer jest zbudowany wanie w ten sposb.
Dotyczy to szczeglnie komputerw PC.

Rne zegary do rnych celw


Praca synchroniczna nie oznacza jednak, e wszystkie elementy komputera musz
dziaa w rytm tego samego zegara. Mona korzysta (i obecnie stao si to standardem) z wielu rnych zegarw w komputerze, ktre su do rnych celw. Kilka
kolejnych sekcji tego rozdziau zawiera krtki przegld najwaniejszych generatorw
zegarowych, wystpujcych w kadym komputerze PC. Moe si okaza, e w konkretnym egzemplarzu komputera tych generatorw jest jeszcze wicej.

Zegar procesora
Najbardziej znany jest zegar tykajcy wewntrz ukadu scalonego procesora. Decyduje on o szybkoci dziaania najszybszej czci komputera. Szczeglnie obecnie tylko rdze procesora dziaa z tak czstotliwoci i aden inny element komputera nie
jest w stanie zbliy si do tej wartoci. Wyjtkiem jest tu pami podrczna L2
w Pentium Pro lub Pentium II Xeon, umieszczona wewntrz moduu procesora i taktowana tak sam czstotliwoci. W procesorze Pentium II czstotliwo taktowania
pamici L2 jest dwukrotnie mniejsza ni czstotliwo taktowania rdzenia. We wszystkich pozostaych ukadach z rodziny x86 zewntrzna pami podrczna jest taktowana z tak sam czstotliwoci, jak magistrala obsugujca pami gwn.
Magistrala prowadzca z procesora do pamici gwnej zazwyczaj taktowana jest
czstotliwoci kilkakrotnie mniejsz ni rdze procesora. Procesor korzysta ze zwielokrotnionej czstotliwoci taktowania zewntrznej magistrali. Znaczy to, e ukady,
ktre rzeczywicie tworz generator zegarowy, mieszcz si poza procesorem, ktry
synchronizuje swj wasny, niezbyt stabilny generator z ustalon wielokrotnoci
czstotliwoci zewntrznego sygnau zegarowego.

Cz III Czarne skrzynki w szklanej skrzynce

352

Na przykad w komputerze z procesorem Pentium II 400 MHz czstotliwo taktowania pamici gwnej wynosia 100 MHz. Oznaczao to, e wewntrzny zegar procesora
dziaa z czstotliwoci czterokrotnie wiksz ni zegar zewntrzny. Nieco szybsze
maszyny z procesorami 450 MHz korzystay z takiej samej czstotliwoci zewntrznej, lecz wewntrzna czstotliwo taktowania procesora bya w nich uzyskiwana po
pomnoeniu czstotliwoci zewntrznej przez wspczynnik rwny 4,5.

Zegar pamici gwnej


Generator taktujcy procesor uywany jest rwnie do taktowania moduw pamici
gwnej i wszystkich zwizanych z ni ukadw (naley pamita, e jest on umieszczony poza procesorem i jego czstotliwo jest uamkow czci czstotliwoci
wewntrznej procesora). Taka warto czstotliwoci taktowania wystpuje na magistrali zewntrznej.
Zdarza si obecnie, a kiedy byo to powszechne, e tylko zewntrzna pami podrczna (L2 i L3) umieszczona na pycie gwnej moga nady za tym szybkim zegarem. W takim przypadku naleao umoliwi prac wolniejszym ukadom pamici
DRAM, tworzcym jej gwny blok, poprzez dodanie co najmniej jednego tzw. cyklu oczekiwania (ang. wait state). Jest to po prostu opnienie wprowadzane midzy
cyklem zegara procesora lub sterownika zewntrznej pamici podrcznej, oznaczajcym danie dostpu do ukadu pamici, a cyklem oznaczajcym odczyt wyniku tej
operacji. Niekiedy sprytni konstruktorzy omijali problem cykli oczekiwania dziki
podzieleniu pamici na bloki i zorganizowaniu do niej dostpu z przeplotem lub
w jaki inny sposb. Obecnie cykle oczekiwania s rwnie potrzebne, przynajmniej
od czasu do czasu, jeli ukady DRAM pamici gwnej nie s w stanie odpowiada
tak szybko, jak wynika z czstotliwoci magistrali zewntrznej. Jest to jedna z przyczyn stosowania zewntrznej pamici podrcznej (L2 lub L3), poniewa pami
gwna w takich przypadkach nie nada za procesorem.
Na szczcie w wielu ostatnio produkowanych komputerach PC, w szczeglnoci
w oznaczanych jako wydajne, ukady scalone DRAM wykorzystywane jako pami
gwna mog dziaa bez wprowadzania cykli oczekiwania przy takiej samej czstotliwoci taktowania, jaka wystpuje na magistrali zewntrznej. Dlatego wanie w takich komputerach nie s wymagane (i w zwizku z tym nie s montowane) pamici
podrczne na pytach gwnych. Pamici podrczne L1 i L2 wewntrz procesora lub
w jego module nadal s oczywicie potrzebne, lecz dziaaj one ze znacznie wikszymi czstotliwociami ni pami gwna.

Zegary magistrali I/O


Ju wielokrotnie wspominano, e magistrala ISA nie moe pracowa z czstotliwoci wiksz ni 8,33 MHz. Taki sygna jest wyodrbniany za pomoc podziau czstotliwoci tego samego zegara, z ktrego pochodzi sygna taktujcy pami gwn.
Jeli sygna taktowania pamici gwnej ma czstotliwo 100 MHz, to wspczynnik
podziau czstotliwoci wynosi 12. Maa czstotliwo zegarowa w przypadku magistrali ISA jest stosowana w celu zachowania moliwo wsppracy nawet z bardzo
starymi kartami ISA. W niektrych najnowszych konstrukcjach po prostu nie stosuje
si ju magistrali ISA, poniewa jest ona niezwykle powolna oraz ze wzgldu na ch
uniknicia problemw z konfliktami przerwa.

Rozdzia 15. Tajemnice pyty gwnej

353

Wspczesne komputery maj jednak dodatkowe magistrale I/O, ktre dziaaj znacznie szybciej ni ISA, chocia jeszcze nie tak szybko jak pami gwna. Czstotliwo
taktowania magistrali PCI wynosi zazwyczaj 33 MHz, za w zczu AGP, w najnowszych komputerach jest rwna 266 MHz. Czstotliwoci te uzyskiwane s metod podziau lub zwielokrotniania czstotliwoci sygnau zegarowego pamici gwnej.

Pozostae zegary w komputerze PC


Wiele podsystemw w komputerze PC musi dziaa synchronicznie z zegarami o rnych czstotliwociach, ktre nie s synchronizowane z zegarem taktujcym pami
gwn, procesor i magistral I/O. Przykadem takiego urzdzenia jest monitor z lamp kineskopow, w ktrym wizka elektronowa przemiata ekran z czstotliwoci
okrelon przez rozdzielczo obrazu i wymagane odwieanie.
Take napdy dyskw wymagaj zegarw dziaajcych z odpowiednimi czstotliwociami, ktre s ustalonymi wielokrotnociami czstoci obrotowej talerzy dysku. Zegar
uywany w modemie decyduje o poprawnej szybkoci transmisji bitw.
Zegarw moe by tyle, ile jest rnych urzdze charakteryzujcych si rnymi
szybkociami i wymaganiami. Nie mona bowiem przyspieszy danego urzdzenia
poza jego ograniczenia konstrukcyjne, a niekiedy nie mona rwnie zmieni szybkoci
dziaania na inn ni przewiduje standard dla caej grupy takich urzdze.

Co to jest superskalowanie?
Chepic si tym, e nowy komputer jest szybszy ni starsze modele, ktre naley
wymieni, producenci czsto wskazuj na superskalowaln (ang. super-scalar) wydajno. C jednak naprawd to oznacza? Po prostu, znaczy to, e jeli czstotliwo
zegarowa w nowym komputerze jest taka sama jak w starym, ten nowy bdzie wykonywa programy szybciej. Jeli w nowym komputerze czstotliwo zegarowa jest
dwukrotnie wiksza ni w starym, to wzrost szybkoci wykonywania programw
w porwnaniu ze starym bdzie nie wikszy ni dwa razy. Oznacza to, e wydajno
wzrasta szybciej ni wynika to ze wzrostu czstotliwo zegarowej. Gdyby obowizywaa tu proporcjonalna relacja wydajnoci i czstotliwoci zegarowej, wydajno
mona by regulowa za pomoc tej czstotliwoci. Jeli jest wiksza, mwi si o superskalowaniu.
Moe istnie wiele przyczyn superskalowalnej wydajnoci. Zwykle wynika ona z poczenia kilku ulepsze, takich jak: dodanie wikszej liczby jednostek wykonujcych
instrukcje (staoprzecinkowe i zmiennoprzecinkowe), obsuga nowszych i bardziej
wydajnych instrukcji (na przykad MMX i 3DNow!), korzystanie z duszych potokw
instrukcji czy wreszcie wiksze pojemnoci pamici podrcznej L1 lub L2. Wzrost
wydajnoci moe by rwnie spowodowany spekulatywnym wykonywaniem
przez pewne czci procesora instrukcji, na ktre jeszcze nie nadesza kolej, lecz
przewiduje si ich wykonanie. Takie dziaanie moe by przydatne, jeli okae si, e
wyniki takich instrukcji s potrzebne bd one wwczas dostpne od razu. Wzrost
wydajnoci moe by rwnie spowodowany uyciem wikszej liczby procesorw.

Cz III Czarne skrzynki w szklanej skrzynce

354

Bez wzgldu na przyczyny, superskalowanie w najprostszym znaczeniu powoduje, e


nowy komputer dziaa szybciej ni mona si byo spodziewa. Jest to na pewno cenna waciwo, lecz nie tak tajemnicza jak sugeruje jej nazwa.

Magistrale systemowe: ISA, PCI i AGP


Magistrala okrela sposb komunikacji pomidzy poszczeglnymi czciami komputera. Wyznacza ona tory sygnaw przesyanych midzy elementami funkcjonalnymi
maszyny. Pena definicja magistrali jest wystarczajco szczegowa, by poszczeglni
producenci mogli produkowa rne czci bez obaw, e nie bd one ze sob wsppracowa.
Omwimy teraz wiele wanych standardw okrelajcych budow elementw komputera i jego architektur. Niezalenie od faktu, e konstrukcja procesora gwnego
jest gwnym czynnikiem rozwoju komputerw, take magistrale odgrywaj w tym
bardzo znaczc rol.

Pierwotna magistrala ISA


W pierwszym komputerze PC, wyprodukowanym przez firm IBM, zastosowano
procesor majcy zaledwie osiem linii danych i dwadziecia linii adresowych. By on
poczony z innymi podzespoami komputera za pomoc wsplnej magistrali, ktra
zawieraa te linie i kilka dodatkowych linii sterujcych. Dane przepyway przez magistral z szybkoci okrelon przez wewntrzny zegar procesora. Byo to dziaanie
synchroniczne i zupenie proste.
Ta prostota bya zarwno zamierzona, jak i konieczna. W owym czasie nie byo moliwe umieszczenie caej potrzebnej pamici na pycie gwnej. Czsto stosowano
karty rozszerzajce z ukadami pamici. Wikszo innych podzespow wymagajcych
wspomagania przez dodatkowe ukady scalone rwnie bya montowana w postaci
kart rozszerze. Naleay do nich np. sterowniki stacji dyskietek (a pniej take sterowniki twardych dyskw, wprowadzonych w PC/XT). Te zasady obowizyway rwnie
w podsystemie grafiki oraz w portach szeregowych i rwnolegych. Kady z takich
podzespow by pocztkowo taktowany sygnaem o czstotliwoci 4,77 MHz. Po
zbudowaniu PC/AT, czstotliwo podwyszono najpierw do wartoci 6 MHz, a nastpnie do 8,33 MHz i taka warto pozostaa do tej pory.
Zanim procesory zaczy dziaa znacznie szybciej ni w pocztkowych komputerach, spord podzespow komputera PC wydzielono magistral obsugujc wejcia
i wyjcia (I/O).

Rozwj magistrali ISA


Magistrala ISA sprawowaa si dobrze w komputerze PC/AT. Wkrtce pojawiy si
jednak klony komputerw, ktre mogy dziaa duo szybciej. Szybsze procesory zastosowane w tych maszynach wymagay szybszej obsugi wej i wyj, a take szybszych

Rozdzia 15. Tajemnice pyty gwnej

355

pocze z ukadami pamici systemowej. Konieczny efekt prbowano osign rnymi metodami. Firma IBM wprowadzia na przykad tzw. MicroChannel. Wielu
producentw klonw stosowao odmienn konstrukcj, o nazwie Extended Industry
Standard Architecture (w skrcie EISA). Utworzono take grup producentw, nazwan Video Equipment Standards Association (w skrcie VESA), ktrej pocztkowym zadaniem bya pomoc w opracowywaniu nowych standardw podsystemw grafiki, lecz przeksztacio si to we wspieranie standardw wielu innych podzespow
uywanych w komputerze PC. Oczywicie, podane tu przykady nie wyczerpuj listy
wszystkich metod, za pomoc ktrych prbowano ulepszy stary, dobry standard magistrali ISA.

Magistrala PCI
Skrt PCI pochodzi od angielskiej nazwy magistrali Peripheral Component Interconnect (czyli poczenie urzdze peryferyjnych). Bya ona promowana gwnie przez
firm Intel jako nowy sposb czenia podzespow, ktry pocztkowo mia podwyszy efektywno dziaania pyty gwnej. Pniej rozszerzono jej zastosowanie rwnie do obsugi pocze z urzdzeniami zewntrznymi.
Wan cech konstrukcyjn magistrali PCI bya moliwo przystosowania jej do
rnych komputerw lub do innego sprztu. Nie ograniczao si to tylko do zastpowania przez ni magistrali ISA ani do dziaania tylko w komputerach zgodnych z PC.
Jak si okae za chwil, PCI nie oznacza tylko pojedynczej konstrukcji. Istnieje kilka
wanych odmian tej magistrali, na przykad CompactPCI, ktrej uywa si w sterownikach przemysowych i przyrzdach pomiarowych. Podstawowa wersja magistrali
PCI jest take stosowana w komputerach wieloprocesorowych (z procesorami x86,
Alpha, PowerPC i innymi). Istniej rwnie cztery warianty magistrali dla komputerw PC, rnice si szerokoci magistrali danych i czstotliwoci taktowania.
Omwimy te warianty, jednak aby uproci te zagadnienia, nie bdziemy szczegowo prezentowa ani standardu CompactPCI, ani zastosowa magistrali PCI w komputerach z procesorami innymi ni x86.

Podstawy magistrali PCI


Zasadniczo pojawienie si PCI zmusio do zmiany sposobu traktowania pocze
midzy poszczeglnymi podzespoami komputera PC. Pocztkowo dotyczyo to tylko
tych podzespow, ktre byy umieszczone wewntrz jednostki centralnej, lecz w pniejszych wersjach konstrukcyjnych PCI objo rwnie poczenia z elementami zewntrznymi.
Magistrala PCI powstaa w wyniku poszukiwa bardziej wydajnego poczenia ukadw scalonych otaczajcych procesor i doprowadzenia tych pocze do takiego stanu,
by stay si mniej zalene od rodzaju zastosowanego procesora. Pniej, gdy firma
Intel skonstruowaa zcze magistrali PCI, wykazao si ono wielkimi zaletami w porwnaniu z magistral ISA.

Cz III Czarne skrzynki w szklanej skrzynce

356

Poniewa bya to pierwsza prba rozwizania problemw wystpujcych w magistrali


ISA, now magistral zaprojektowano zgodnie ze stanem wczesnej technologii, nie
zwracano przy tym uwagi na wszystkie problemy charakterystyczne dla magistrali ISA,
a trwajce bez zmian a do dzi. Jednak po zdefiniowaniu magistrali PCI i wdroeniu
jej na szerok skal okazao si, e rwnie ona nie jest pozbawiona wad. Nadal jednak
jest to magistrala odporna i elastyczna, co udowadniaj jej liczne zastosowania i odmiany. Na rysunku 15.8 pokazano fragment pyty gwnej z szecioma zczami PCI.
Rysunek 15.8.
Przykad typowej pyty
gwnej z szecioma
zczami PCI, jednym
zczem ISA (pierwsze
z lewej) i jednym
zczem AGP
(pierwsze z prawej)

Wydajno magistrali PCI


W porwnaniu z magistral ISA magistrala PCI posiada okoo poow aktywnych linii, lecz pord nich jest dwukrotnie wicej linii danych, dziki czemu cao moe
dziaa czterokrotnie szybciej. Aby zapewni stabiln prac magistrali przy tej szybkoci, zcza wyposaone s a w 124 styki, a wikszo z nich podczona jest do
masy lub do jednego z napi zasilajcych. Wiksza szybko dziaania przy mniejszej liczbie linii spowodowana jest gwnie uyciem tego samego zestawu linii do
przekazu danych i adresw (proces ten zachodzi w rnym czasie).
Aby zwikszy niezawodno, zastosowano take bit parzystoci zarwno dla adresw, jak i dla danych. Magistrala PCI wykrywa zatem bdy adresw i danych. Jeli
taki bd wystpi, sterownik magistrali powiadomi o tym urzdzenia zaangaowane
w transmisj i nakae im powzicie decyzji o uruchomieniu procedury korekcji bdu.
Magistrala PCI zostaa zaprojektowana w taki sposb, by nie trzeba byo stosowa rezystorw dopasowujcych (w odrnieniu od magistrali SCSI). Dziki temu uytkownik moe atwiej z niej korzysta. Wykorzystano take sygnay odbite od niedopasowanych kocw linii. Taka konstrukcja ogranicza jednake dugo pojedynczego
segmentu magistrali do zaledwie kilkunastu centymetrw, a take liczb kart lub innych urzdze, ktre mona na tym odcinku podczy (nie wicej ni 10). Mona
znacznie wyduy zasig magistrali PCI za pomoc ukadw mostkowych, montowanych midzy poszczeglnymi segmentami.

Rozdzia 15. Tajemnice pyty gwnej

357

Automatyczna konfiguracja urzdze na magistrali PCI


W definicji magistrali PCI uwzgldniono automatyczn konfiguracj podczonych
do niej urzdze (plug-and-play). Kada karta umieszczona w zczu PCI (a take
kade urzdzenie podczone do tej magistrali na pycie gwnej) musi by wyposaone w lokaln pami, przeznaczon na dane konfiguracyjne. System odczytuje te
dane oraz zapisuje je podczas konfiguracji.

Wiele urzdze nadrzdnych i wspuytkowanie przerwa


na magistrali PCI
Mona wskaza dwa problemy, z ktrymi nie mogli sobie poradzi konstruktorzy
starszej od PCI magistrali ISA. Jeden z nich to obsuga wielu urzdze podczonych
do magistrali, ktre mog w rnym czasie przejmowa kontrol nad komunikacj
w caej magistrali. Drugi zwizany jest z obsug wielu urzdze, ktre wspuytkuj te same linie przerwa, kiedy chc zasygnalizowa procesorowi swoje potrzeby.
Rozwizanie problemu wielu urzdze nadrzdnych w magistrali PCI polega na zastosowaniu jednostki arbitrau jako niezbdnej czci systemu. Konflikt przerwa
rozwizano w prosty sposb, pozwalajc kademu urzdzeniu na przejmowanie linii
przerwa, okrelajc nastpnie, podczas procesu potwierdzania, ktre to s urzdzenia, a na koniec obsugujc dania.

Czym jest magistrala podpodogowa?


Magistrala PCI (zwana take magistrala podpodogow, ang. mezzanine bus) bya
konstruowana jako zastpstwo magistrali ISA, lecz w rzeczywistoci staa si czym
innym. Podobnie ja ISA, rozprowadza ona sygnay midzy procesorem, rnymi
urzdzeniami na pycie gwnej a kartami umieszczonymi w jej zczach. Aby proces
taki mia miejsce, magistrala PCI musi buforowa sygnay i w niektrych przypadkach zmienia take ich zalenoci czasowe.
W przeciwiestwie do magistrali ISA, definicja magistrali PCI nie odwouje si do
adnego konkretnego procesora ani nawet do rodziny procesorw. Zalet takiej niezalenoci jest obecnie fakt, e wielu producentw moe wytwarza karty PCI, ktrych mona uywa w szerokiej gamie systemw mikrokomputerowych. Szerszy rynek
prawie zawsze oznacza za nisze ceny produktw, jak rwnie lepsze zaspokojenie
popytu jeli spojrze na to ze strony klientw.
Oprcz tego, standard PCI w jawny sposb zawiera odwoanie do pocze za pomoc mostkw. Mog to by mostki midzy magistralami PCI lub midzy magistral
PCI a innymi standardowymi magistralami, na przykad magistral pamici i magistral ISA w komputerze PC lub magistral VME w zastosowaniach przemysowych.
Magistrala PCI zostaa skonstruowana tak, by moga dziaa z obowizujc wwczas
pen szybkoci magistrali pyty gwnej i w peni obsugiwa rwnoleg transmisj
danych. Jeli uwzgldni si rok jej powstania, atwo stwierdzi, e miaa ona 32 linie
danych, za jej czstotliwo taktowania wynosia 33 MHz; a zatem bya ona czterokrotnie szybsza i miaa dwukrotnie wicej linii danych ni zastpowana przez ni magistrala ISA.

358

Cz III Czarne skrzynki w szklanej skrzynce

PCI zyskaa wiele zastosowa zaraz po wprowadzeniu na rynek. Wyranie potwierdzia swoj wyszo nad poprzednimi standardami magistrali w komputerze PC. Byo
to tak widoczne, e producenci PC chcieli stosowa j w swoich produktach, a i klienci
byli z niej bardzo zadowoleni. Wiele firm zaczo wstawia karty PCI w nowe zcza.
Przede wszystkim byy to karty grafiki, sterowniki dyskw twardych i karty sieciowe,
poniewa to w ich przypadku najbardziej potrzebne byo zwikszenie szybkoci.
Gdy zwikszono czstotliwo taktowania pyty gwnej do 66 MHz, magistrala PCI
nadal pozostaa przy wartoci 33 MHz. Gdy procesory rozpoczy obsug danych 64bitowych, PCI nadal obsugiwaa tylko 32 bity. Dopiero niedawno standard PCI zosta
rozszerzony i obecnie uwzgldnia zarwno wersj 64-bitow, jak i taktowanie czstotliwoci 66 MHz. Rozszerzenie byo jeszcze cenniejsze, poniewa zapewniao zgodno z wczeniejszymi i przyszymi urzdzeniami. Mona zatem (przy pewnym ograniczeniu wydajnoci) posugiwa si starszymi kartami 32-bitowymi, taktowanymi
czstotliwoci 33 MHz w nowych zczach 64-bitowych z zegarem 66 MHz i odwrotnie. Taka obustronna zgodno jest rzeczywicie bardzo rzadko spotykana w historii rozwoju standardw.
To niezwyke dziaanie uzyskano w bardzo prosty sposb. Do 64-bitowej magistrali
PCI doczono po prostu dodatkowy segment do zcza, podobnie jak w 16-bitowym
rozszerzeniu zcza starej, 8-bitowej magistrali ISA. Obecnie mona zatem wstawi
starsz kart 32-bitow do 64-bitowego zcza PCI, a take now kart 64-bitow do
starszego zcza 32-bitowego. Sztuczka polega na tym, e nowsze karty musz si
same skonfigurowa w taki sposb, by dziaa jako karty 32-bitowe w 32-bitowych
zczach PCI.
Podobnie dziaa zegar 66 MHz ze starszymi kartami PCI, poniewa sterownik danego
segmentu magistrali PCI rozpoznaje obecno wolniejszych kart i w przypadku ich
wykrycia zmniejsza czstotliwo taktowania w tym segmencie. Z drugiej strony,
kada nowsza karta PCI moe dziaa wolniej. Definicja magistrali PCI przewiduje,
e karty lub magistrale mog by taktowane z dowoln czstotliwoci, a do 0 MHz.
Oczywicie, wikszo korzysta z maksymalnej dozwolonej dla danego standardu
czstotliwoci taktowania, bowiem w przeciwnym wypadku nie byoby moliwe osignicie odpowiedniej wydajnoci.
Odstpstwem od tej zasady jest system skonfigurowany w taki sposb, by oszczdza
energi, gdy nie pracuje on z maksymaln wydajnoci. W takich sytuacjach mona
by spowalnia magistral PCI i uzyska tym samym dodatkow oszczdno, lecz
niewiele wspczenie produkowanych komputerw potrafi to zrobi. Maszyny pozwalajce na tak dodatkow oszczdno musiayby posiada specjaln konstrukcj.
Dlatego wanie, mimo i uycie mieszaniny kart PCI o rnych standardach w rnych zczach jest dozwolone, prowadzi do znacznego spadku wydajnoci magistrali.
Mona zatem oczekiwa pojawienia si komputerw PC wyposaonych w segmenty
nowej magistrali PCI o wikszej szybkoci i w segmenty magistrali taktowanej wolniej. Jeli komputer ma now, szersz magistral (prawdopodobnie na odcinku taktowanym szybciej), uytkownicy powinni umieci wszystkie starsze, 32-bitowe karty
w wolniejszych segmentach i zarezerwowa szybsze segmenty, o wikszej szerokoci
tylko dla tych kart, ktre rzeczywicie tego wymagaj.

Rozdzia 15. Tajemnice pyty gwnej

359

Na zakoczenie warto zauway, e karty PCI produkowane s z dwiema rnymi


wartociami napi znamionowych. Wszystkie starsze karty pracuj z napiciami 5 V,
za nowsze uywaj napi 3,3 V. Oznacza to, e dziki mniejszej wartoci napicia
zasilajcego ukady scalone w nowszych kartach, wydziela si mniej ciepa i mog
one dziaa szybciej. Rnice konstrukcyjne polegaj na rnym pooeniu wyci
ustalajcych w zczach, co zapewnia prawidowy monta kart i uniemoliwia popenienie pomyki. Specyfikacja zapewnia take moliwo produkcji kart uniwersalnych, ktre mog by wstawiane do dowolnego zcza, niezalenie od wystpujcego w nim napicia zasilania.
Najnowszym standardem w rodzinie PCI jest PCI-X; standard ten zostanie przedstawiony jednak nieco dalej.

PCI jako o pnoc-poudnie w komputerze PC


Ze wzgldu na to, e PCI jest magistral podpodogow i dziki temu moe suy
jako poczenie midzy rnymi magistralami, mona j traktowa jako uniwersalne
poczenie rnych czci komputera, zarwno wewntrz jednostki centralnej, jak i poza ni. Firma Intel wykorzystaa t zalet w celu rozdzielenia rnych funkcji i w nowszych konstrukcjach dokonaa podziau zestaww pomocniczych ukadw scalonych
pyty gwnej na dwie grupy. Innowacja polega na zgrupowaniu jednych funkcji
w ukadzie zwanym mostkiem pnocnym, a pozostaych w mostku poudniowym. Poczenie midzy tymi ukadami zapewnione jest dziki magistrali PCI.

Ukad scalony mostka pnocnego


Procesor poczony jest z pamici gwn przez szybsz i szersz ciek danych ni
ta, ktra uyta zostaa do poczenia z magistral PCI. Ta szybsza magistrala nazywana
jest magistral zewntrzn, systemow lub wzow. Procesor nie moe by poczony
bezporednio z moduami pamici, zatem wymagane s przynajmniej jakie bufory
i dekodery adresw. Nie moe on rwnie by bezporednio poczony z magistral
PCI. Zadaniem mostka pnocnego jest zatem buforowanie (wzmacnianie) sygnaw
procesora, a nastpnie przekazywanie ich we waciwe miejsca.
Procesor rozmawia z urzdzeniami zewntrznymi i z pamici poprzez te same linie.
Zmienia tylko poziom napicia na jednym z wyprowadze sterujcych, by wskaza,
e w danym momencie maj by dostpne urzdzenia I/O albo pami. Ukad scalony
mostka pnocnego korzysta z sygnau sterujcego przy rozdzielaniu komunikatw
dotyczcych pamici i tych, ktre dotycz urzdze zewntrznych.
Wymagane do tego elektroniczne ukady interfejsu (zwane czasami ukadami towarzyszcymi pyty gwnej, ang. glue logic) zostay scalone w jeden bardzo duy ukad
(prawie tak skomplikowany jak procesor), ktry nazywany jest mostkiem pnocnym.
Obecno tych ukadw w mostku pnocnym umoliwia take obsug bardzo szybkiej magistrali specjalnego przeznaczenia, zwanej zaawansowanym portem graficznym (ang. Advanced Graphic Port, w skrcie AGP).

Cz III Czarne skrzynki w szklanej skrzynce

360

Naley pamita, e podany tu opis dotyczy najnowszych rozwiza konstrukcyjnych


w zestawach ukadw pomocniczych dla pyt gwnych firmy Intel. Istniej inni producenci podobnych zestaww, ktrzy oferuj podobne rozwizania, a take grupa
producentw wytwarzajcych cakowicie odmienne zestawy. Oprcz tego, Intel oferuje rne wersje zestaww ukadw pomocniczych optymalizowanych do rnych
celw. Podczas opisu tych zagadnie pominiemy te rnice i omwimy hipotetyczny
zestaw ukadw pomocniczych, obsugujcy wszystkie najnowsze rozwizania (by
moe taki zestaw nigdy nie zostanie wyprodukowany).

AGP, czyli boczna cieka do ulepszonej grafiki


Magistrala AGP jest w istocie wyspecjalizowan magistral PCI, zawierajc szereg
ulepsze wymaganych przy obsudze podsystemu graficznego o bardzo duej wydajnoci. Oczywicie, taki podsystem graficzny bdzie sterowany za pomoc dobrego
akceleratora graficznego. Bez wtpienia, musi on rwnie zawiera duy bufor kadru,
umoliwiajcy uzyskanie na ekranie obrazu o bardzo duej rozdzielczoci i gbi kolorw. Taki podsystem graficzny wymaga od magistrali szybkiego poczenia z procesorem i bezporedniego poczenia z niektrymi obszarami pamici gwnej, by wymiana
informacji z pamici nie angaowaa procesora. Magistrala AGP spenia te wymagania.
Akcelerator graficzny AGP moe by zamontowany na pycie gwnej albo moe
mie posta karty wstawionej do specjalnego zcza AGP. Obecnie najczciej spotyka si rozwizanie w postaci karty, poniewa dziki temu producenci mog wybiera
spord rnych kart grafiki, ktre przystosowane s do rnych celw (midzy innymi chodzi tu o na przykad o zrwnowaenie kosztw i wydajnoci przy generowaniu grafiki trjwymiarowej).
Zcze AGP w komputerze zastpuje zawsze jedno tradycyjne zcze PCI i umieszczane jest najbliej procesora.

AGP 1X, 2X, 4X, 8X i Pro


Magistrala AGP, podobnie jak PCI, z ktrej si wywodzi, rozwina si z biegiem
czasu i w zwizku z tym powstao kilka zwizanych z ni standardw. Pierwotnie obsugiwaa ona tzw. pojedyncz (AGP 1X) i podwjn (AGP 2X) szybko przetwarzania. Obecnie najszybsz wersj jest AGP 8X. Wikszo kart grafiki AGP obsuguje obecnie standard 2X, podobnie jak wikszo aktualnie produkowanych pyt
gwnych. Mona si jednak spodziewa, e wkrtce pojawi si pyty gwne i karty
grafiki obsugujce standard 8X.
Na rysunku 15.9 pokazano fragment pyty gwnej ze zczami PCI i AGP.
Rnice midzy wspomnianymi standardami czciowo polegaj na stosowaniu innych napi roboczych, a czciowo na sposobach wykorzystania sygnau zegarowego w synchronizacji danych. W najszybszych magistralach AGP zastosowano wiele
pomysw pochodzcych z nowego standardu Rambus, dotyczcego bardzo szybkiej
obsugi pamici gwnej. W zczu AGP do obsugi kart z rnymi napiciami znamionowymi zastosowano sprawdzone wczeniej rozwizania z magistrali PCI.

Rozdzia 15. Tajemnice pyty gwnej

361

Rysunek 15.9.
Pokazany tu fragment
rysunku 15.8 obejmuje
zcze PCI (z lewej)
i AGP (z prawej)
w celu ukazania
rnic w budowie
mechanicznej
tych zczy

Szybko komunikacji z podsystemem AGP jest wana, lecz nie jest to jedyny znaczcy czynnik. Rwnie wana jest wydajno przetwarzania systemu. Przy uzyskiwanym obecnie stopniu integracji ukadw scalonych nie jest jeszcze moliwe zamontowanie na niewielkiej karcie PCI lub AGP wszystkich wymaganych podzespow
w celu uzyskania wymaganych parametrw. Duo ukadw umieszczonych na jednej
karcie moe powodowa jej przegrzewanie lub przecienie zcza AGP ponad dopuszczaln warto.
Sposobem rozwizania tego typu problemw sta si nastpny standard, zwany AGP
Pro. Zaproponowano w nim, by karty AGP byy grube (czyli miay wiele podzespow oraz dodatkowo doczane moduy). Karty tego typu zajmuj wicej miejsca
ni pozwala na to standardowy odstp midzy zczami PCI, wynoszcy okoo 2 cm.
Karty AGP Pro mog zajmowa wicej miejsca ni przewiduje si zwykle na dwa,
a nawet trzy zcza (zcze AGP i ssiednie zcza PCI). W kadym przypadku producent moe skorzysta ze zcza AGP i dodatkowo ze zcz PCI. Jeeli posiada si
kart umieszczon w wicej ni jednym zczu, mona uzyska dodatkowy dostp do
zasilania oraz do niektrych linii magistrali PCI, ktre nie wystpuj w magistrali AGP.
Dotychczas powstaa wstpna definicja standardu AGP Pro i pojawio si kilka deklaracji producentw, ktrzy wyrazili ch wytwarzania takich kart. W rzeczywistoci na
rynku nie ma jeszcze kart tego typu i dopiero gdy si pojawi, mona bdzie oceni
wydajno wyposaonych w nie komputerw.

Czym jest GART?


Konstrukcja AGP miaa umoliwi kartom grafiki bezporedni dostp do gwnej
pamici systemu. Nie miaoby jednak sensu zezwalanie na dostp do tej caej pamici, ktra uytkowana jest czciowo przez uruchomione programy (cz na sam kod
programu, a cz na jego dane). Tylko maa cz dostpnej w systemie pamici
RAM moe by uywana przez kart grafiki. W przypadku AGP jest ona przeznaczona na przechowywanie tekstur obrazw, dziki czemu moe z nich korzysta kady
lokalny bufor wywietlanego w danym momencie obrazu. Jeli trzeba skorzysta
z tekstury, mona j pobra z pamici i uy w odpowiednim fragmencie obrazu.

362

Cz III Czarne skrzynki w szklanej skrzynce

W definicji magistrali AGP wystpuje zatem uwaga, e karta grafiki moe mie dostp
tylko do fragmentu pamici gwnej. Ten fragment oglda mona w specjalnym oknie
AGP. Tablica odwzorowa adresw grafiki (ang. Graphic Address Remapping Table,
w skrcie GART) decyduje o tym, do ktrego fragmentu pamici dostp bdzie moliwy.
Tablica GART tworzona jest albo w lokalnej pamici na karcie AGP, albo w pamici
gwnej. Okrela ona obszary pamici gwnej, do ktrych karta AGP moe mie
bezporedni dostp. Zmiana zawartoci tablicy powoduje zmian pooenia tych obszarw. Na karcie AGP znajduj si specjalne ukady, wskazujce pooenie tych obszarw i korzystajce z ich zawartoci poprzez mostek pnocny.

Wiele magistral PCI w jednym komputerze


Wspomnielimy ju, e magistrala AGP jest w rzeczywistoci zamaskowan magistral PCI. Jest ona jednak cakowicie oddzielona od tej magistrali, co oznacza, e
kada karta AGP moe porozumiewa si z procesorem lub korzysta z pamici
gwnej niezalenie od stanu magistrali PCI.
Mostek pnocny mona zbudowa w taki sposb, by obsugiwa nie tylko sam magistral AGP i jedn PCI. Nie ma przeciwwskaza do posiadania kilku magistral PCI.
Przede wszystkim funkcje mostka pnocnego obejmuj poczenia midzy magistralami PCI i AGP a magistral zewntrzn, a take poczenia midzy kilkoma magistralami PCI, jedn AGP a magistral zewntrzn.
Gwn przyczyn tego, e pojawienie si takich konstrukcji komputerw PC stanowi
jedynie kwesti czasu, s dwa standardy magistral PCI: 32-bitowej, taktowanej zegarem 33 MHz i 64-bitowej, taktowanej zegarem 66 MHz. Dziki temu mona stosowa
mieszanin starszych i nowszych kart bez utraty wydajnoci. Mona take oczekiwa,
e pewnego dnia, oprcz dodatkowych magistral PCI, w komputerze pojawi si take
magistrala PCI-X, wychodzca z mostka pnocnego.
Jako alternatywne rozwizanie proponuje si, by szybka i szeroka magistrala PCI (lub
PCI-X) wychodzca z mostka pnocnego, po przejciu przez kilka szybkich i szerokich
zcz, koczya si na mostku PCI-PCI. Mostek ten ma zapewnia poczenie z innym
segmentem magistrali PCI, charakteryzujcej si tradycyjnymi waciwociami.
Powodem, dla ktrego stosuje si wiele magistral PCI wychodzcych bezporednio
z mostka pnocnego jest moliwo obsugi wikszej liczby zczy, ni moe obsugiwa pojedyncza magistrala. Zwykle, gdy uwzgldnia si obcienie wnoszone przez
rne elementy pyty gwnej, pojedynczy segment magistrali PCI nie powinien mie
wicej ni cztery zcza. Wiksza ich liczba jest potrzebna przede wszystkim w serwerach lub komputerach PC, ktre wykorzystywane s w zastpstwie duych maszyn.
Istnieje jeszcze jeden sposb uzyskania wikszej liczby magistral PCI w jednym
komputerze. Jest to poczenie mostkowe takich magistral. Opisywany na pocztku
ksiki przykadowy komputer PC ma poczwrn kart adaptera grafiki. Karta ta ma
wbudowany ukad mostkowy PCI-PCI, a cztery karty graficzne podcza si do drugiej magistrali PCI, poza mostkiem czcym j z magistral PCI na pycie gwnej.

Rozdzia 15. Tajemnice pyty gwnej

363

W zaprezentowanej tu tabeli podano rne standardy interfejsw uywanych dawniej


i obecnie.
Standard
ISA

Zastosowanie

Przepustowo

Karty dwikowe

Od 2 MB/s do 8,33 MB/s

Adaptery SCSI
Karty graficzne
Karty sieciowe
Karty z portem gier
Modemy wewntrzne
EISA

Karty sieciowe

33 MB/s

Adaptery SCSI
PCI

Karty graficzne

266 MB/s

Adaptery SCSI
Karty dwikowe
Karty sieciowe
Modemy wewntrzne
AGP 4X, 8X

Karty graficzne

od 528 MB/s do 2 GB/s

Mostek poudniowy
Na poudniowym kracu magistrali PCI mieci si ukad scalony zwany mostkiem
poudniowym. Zawiera on pozostae podzespoy wchodzce w skad tzw. logiki towarzyszcej pyty gwnej (czyli zestawu ukadw pomocniczych), ktrych nie umieszczono
w mostku pnocnym. Mostek poudniowy zawiera ukady interfejsu odpowiedzialne za
przekazywanie sygnaw midzy magistral PCI a znacznie od niej wolniejsz magistral ISA i innymi interfejsami wystpujcymi w komputerze PC. Wspczesne pyty
gwne maj niewiele zcz ISA, gwnie z tego powodu, e karty produkowane
wczeniej w tym standardzie zostay zmodyfikowane i wsppracuj obecnie z magistral PCI.
Do ukadu mostka poudniowego podczone s stacje dyskietek. Ukad ten obsuguje
zazwyczaj take dwa kanay EIDE (gwny i wtrny), do ktrych mona podcza
po dwa urzdzenia EIDE, chocia mgby obsugiwa cztery takie kanay. W mostku
poudniowym s rwnie oddzielne magistrale do obsugi klawiatury, myszy, standardowego portu rwnolegego (ECP lub EEP) oraz co najmniej jednego portu szeregowego. Oddzielne magistrale przewidziane s do obsugi zcz USB, a take IEEE
1394 (FireWire). Ukad mostka poudniowego ma zawiera rwnie interfejs obsugujcy zcza kart PC bdzie to zapewne 32-bitowy interfejs CardBus z magistral
Zoomed Video, podczon bezporednio do podsystemu grafiki.
Jeli w komputerze jest kilka magistral PCI, do kadej z nich mona podczy oddzielny ukad mostka poudniowego. Nie jest to jednak obowizkowe.

364

Cz III Czarne skrzynki w szklanej skrzynce

Jeli w komputerze PC maj by zcza ISA, bd one podczone do mostka poudniowego. Magistrala ISA jest zatem w tej architekturze dodatkiem do magistrali PCI
i nie jest poczona w jaki bezporedni sposb z procesorem, co byo charakterystyczne w jej pierwotnej wersji.
Interfejsy ISA, IDE oraz CardBus taktowane s czstotliwoci 8,33 MHz (czyli jest
to dokadnie cztery razy mniej ni w standardowej magistrali PCI). Jedynym wyjtkiem jest tu kana EIDE ATA66, w ktrym zastosowano zegar o czstotliwoci 16,7
MHz, lecz dziaa on tylko wtedy, gdy urzdzenia podczone s za pomoc specjalnego kabla zgodnego ze specyfikacj ATA66. Pozostae porty podczone do mostka
poudniowego korzystaj z mniejszych i rnych czstotliwoci taktowania (cze
Zoomed Video midzy kart PC a sterownikiem wizyjnym dziaa z czstotliwoci 33
MHz, niezalenie od czstotliwoci 8,33 MHz stosowanej na odcinku midzy kart
PC a mostkiem poudniowym).

Co zyskano dziki oddzieleniu


mostka pnocnego od poudniowego?
Dziki wprowadzeniu standardowego podziau ukadw elektronicznych potrzebnych
w komputerze PC na mostek pnocny i poudniowy, firma Intel umoliwia wykonanie wielu interesujcych dodatkw. Jednym z nich jest stacja dokujca, do ktrej
mona podczy komputer PC (najczciej bdzie to komputer przenony). Stacja
dokujca ma wasny zestaw urzdze peryferyjnych, ktre wspomagaj funkcje podczonego komputera.
Inna moliwo rozszerzenia wynika z tego, e mostek poudniowy moe by produkowany przez inn firm ni mostek pnocny. Dopki obydwa ukady poprawnie
wsppracuj z magistral PCI, obydwa bd take bez problemw wsppracowa ze
sob.
Po wbudowaniu do komputera wielu mostkw poudniowych (i tylko jednego mostka
pnocnego), mona podcza wiele urzdze wskazujcych obsugiwanych poprzez
oddzielne porty, a take mie wiele takich portw.

PCI-X, czyli kolejna wersja PCI


Nowa, szybka magistrala PCI o szerokoci 64 bitw, zwana PCI-X jest czterokrotnie
szybsza ni magistrala tradycyjna. Okazuje si, e w pewnych zastosowaniach jest to
niewystarczajce. Z myl o dokonaniu kolejnego skoku technologicznego, w grupie
producentw o nazwie PCI Special Interest Group (w skrcie PCI-SIG) rozwaa si
wprowadzenie rozszerzonej postaci protoku PCI, rwnie zwanego PCI-X.
PCI-X jest rozszerzeniem zgodnym z istniejc magistral PCI. Ta nowa architektura
dziaa ma z czstotliwoci do 133 MHz, dziki czemu szybko transmisji strumieniowej siga bdzie powyej 1 GB/s, niezalenie od moliwoci wykrywania bdw. Taka przepustowo jest bardzo wana w przemysowych serwerach, w ktrych
stosuje si nastpujce rozwizania:

Rozdzia 15. Tajemnice pyty gwnej

365

 gigabitowy Ethernet,
 interfejsy Fibre Channel,
 interfejsy Ultra3 SCSI,
 poczenia klastrw.

Standard PCI-X nie bdzie konkurowa ze standardem AGP w dziedzinie zastosowa


graficznych.
Ten nowy, bardzo elegancki protok jest wsplnym dzieem firm Compaq, HewlettPackard oraz IBM. Prace miay doprowadzi do kontynuacji stosowania rozwiza
w stylu PCI w komputerach PC, gdy objto przekazywanych danych przewysza
przepustowo najszybszych magistral PCI wykonanych zgodnie z obowizujcymi
standardami. Najwiksze wraenie robi fakt, e nowa, wiksza przepustowo magistrali pozostaje w zgodzie z istniejcymi urzdzeniami, obsugujcymi 64 bity i zegar
66 MHz. Kluczowym zagadnieniem rozwizanym przez konstruktorw byy ograniczenia klasycznego protokou magistrali PCI, ktre przy wyszych szybkociach staway si wskim gardem; szczliwie ograniczenia te mona byo stosunkowo atwo usun.
Ograniczenie szybkoci w konwencjonalnych systemach PCI wynika std, e w kadym cyklu zegara kade urzdzenie musi obserwowa ruch na magistrali i decydowa, czy przekazywana tam informacja jest przeznaczona dla niego, a jeli tak jest
przejmowa dane. Po zwikszeniu czstotliwoci zegarowej z 33 MHz na 66 MHz
okazao si to kopotliwe, chocia moliwe. Dalsze podwojenie czstotliwoci przy
obecnym stanie technologii produkcji ukadw elektronicznych po prostu nie jest ju
moliwe.
Proponowane rozwizanie tego ograniczenia jest bardzo proste. W kadym urzdzeniu naley doda rejestr (na chwilowe przechowywanie danych), ktry przechwytuje
dane poza cyklami zegarowymi, niezalenie od tego, czy s one przeznaczone dla danego urzdzenia, czy nie. Przed pojawieniem si nastpnego cyklu zegara urzdzenie
sprawdza dane i podejmuje wymagane dziaania. Dziki temu czas na podjcie decyzji i dziaanie podwaja si. Oznacza to take, e odpowied pojawia si nie po jednym, lecz po dwch cyklach zegara za pobudzeniem czyli do caej transakcji dodawany jest jeden cykl zegarowy.
Pozwolio to na zwikszenie czstotliwoci taktowania do 166 MHz. Dodanie jednego
cyklu obnia wydajno zaledwie o 10%, poniewa wikszo transakcji na magistrali
PCI wymagao dziewiciu cykli, a teraz wymaga dziesiciu. Oglny wzrost wydajnoci nie jest zatem dwukrotny, lecz nieco mniejszy.
Aby mona byo zastosowa protok PCI-X, kade urzdzenie podczone do magistrali musi by zgodne z jego wymaganiami. Wan cz definicji PCI-X stanowi
zdolno do wykrywania tej waciwoci. Podobnie jak przy poprawce ATA66 do
magistrali EIDE, w definicji PCI-X zezwala si na stosowanie tego protokou tylko
wtedy, gdy wszystkie urzdzenia mog bez kopotw pracowa przy wyszej czstotliwoci taktowania. Poniewa nie zmieniono ani mechanicznej konstrukcji zczy,
ani elektrycznej i logicznej struktury interfejsu, do magistrali PCI-X mona podcza

Cz III Czarne skrzynki w szklanej skrzynce

366

starsze karty podobnie jak nowe karty PCI-X podcza mona do starszych zczy
PCI. W takich przypadkach wszystkie urzdzenia bd dziaa zgodnie ze starsz definicj magistrali PCI.
Jedn z zalet architektury PCI jest zgodno wstecz. Dotyczy to rwnie PCI-X, poniewa jej wsteczna zgodno ze starszymi urzdzeniami PCI wynika z nastpujcych cech:
 Karty PCI-X mog by uywane w konwencjonalnych systemach PCI, jednak

wwczas ich domylna szybko wynika z czstotliwoci taktowania danej


magistrali (33 MHz lub 66 MHz).
 Konwencjonalne karty PCI mog by uywane w systemach PCI-X. Dziaaj

one wwczas ze swoj znamionow szybkoci (33 MHz lub 66 MHz).


 W systemach PCI-X mona wcza karty PCI i PCI-X do tej samej

magistrali, lecz szybko dziaania takiej magistrali wynika z szybkoci


dziaania najwolniejszej karty.
Grupa PCI-SIG do szczegowo informuje o pracach nad PCI-X. Od czasu powstania, w czerwcu 1992 roku, zachowuje ona charakter organizacji stworzonej przez
producentw, utrzymujcej specyfikacje magistrali PCI. Kieruje ni rada nadzorcza,
w skad ktrej wchodz obecnie przedstawiciele najwikszych firm: AMD, Compaq,
Hewlett-Packard, IBM, Intel, Microsoft, Phoenix Technologies, ServerWorks oraz
Texas Instruments.

PXI-X i 3GIO
Skrt 3GIO powsta od angielskiej nazwy Third-Generation I/O (czyli wejciawyjcia trzeciej generacji). Grupa PCI-SIG podpisaa z grup robocz Arachoe porozumienie postulujce utrzymywanie i rozpowszechnianie specyfikacji architektury 3GIO.
Grupa robocza Arachoe ma status niezalenego zrzeszenia producentw, w skad ktrego wchodz firmy: Compaq, Dell, IBM, Intel i Microsoft. Zajmuje si ona tworzeniem propozycji standardw dla grupy PCI-SIG.
3GIO oznacza szeregowe poczenie I/O, w ktrym zmniejszono liczb stykw w interfejsie. Jego cele s nastpujce:
 wzrost efektywnoci finansowej,
 maksymalizacja przepustowoci pojedynczej linii interfejsu,
 zapewnienie wysokiej skalowalnoci,
 zabezpieczenie inwestycji poczynionych przez klienta,
 uatwienie przenikania si technologii.

Mona zapyta, dlaczego powizano 3GIO z PCI-X? Kluczowy problem wie si


z tym, e 3GIO wzmacnia model programowy PCI. Jest ono rozwaane jako rozszerzenie rodziny PCI. W rzeczywistoci grupa PCI-SIG rozwaa nadanie 3GIO nazwy
bardziej odpowiadajcej stylowi PCI. Powstaje powane pytanie, czy 3GIO pokrywa
si z PCI-X?

Rozdzia 15. Tajemnice pyty gwnej

367

Odpowied brzmi: nie. Standard PCI-X jest zoptymalizowany pod ktem aplikacji
wymagajcych bardzo duej przepustowoci, ktre dziaaj na serwerach lub na stacjach
roboczych. Z drugiej strony, 3GIO ma charakter oglny i ma prowadzi do optymalizacji wydajnoci szeregowej magistrali I/O w aplikacjach o mniejszym znaczeniu.
Obydwa standardy s po prostu przeznaczone dla innych segmentw rynku.
W standardzie 3GIO zastosowano model warstwowy w celu zapewnienia rnych
pocze w operacjach wejciowo-wyjciowych przy duej szybkoci transmisji.
Skada si on z piciu warstw. S to:
 Warstwa konfiguracyjna, obejmujca model plug-and-play przeniesiony z PCI.
 Warstwa oprogramowania, obejmujca model programu sterujcego PCI.
 Warstwa transakcyjna, korzystajca z protokou pakietowego.
 Warstwa cza danych, zapewniajca integralno danych.
 Warstwa fizyczna, ktra stanowi podstaw czy 3GIO, zawierajcych

dwie pary linii sterowanych rnicowo i penicych rol pary nadawczej


i odbiorczej. Wbudowany zegar, ktry taktuje przepyw danych, umoliwia
pocztkow szybko transmisji wynoszc 2,5 GB/s, z moliwoci jej
powikszenia do 10 GB/s.
Jedn z oczywistych zalet zastosowania warstw jest fakt, e wpyw przyszych da
zmian szybkoci transmisji oraz metod kodowania ogranicza si tylko do warstwy fizycznej. Konstrukcja produktu kocowego moe by zatem uproszczona, za jego
wydajno podwyszona.
W czasie trwania prac nad t ksik nie istniay jeszcze liczce si prototypy, ktre
demonstrowayby faktyczne dziaanie 3GIO w rzeczywistym rodowisku. Ocenia si,
e produkty 3GIO pojawi si na rynku pod koniec roku 2003.

Ocena wydajnoci za pomoc testw


Kiedy chcemy porwna wydajno posiadanego systemu z innymi, korzystamy
gwnie z rnych zestaww dostpnych na rynku testw (ang. benchmarks). Chodzi
przede wszystkim o testy zestawiajce wydajno rnych urzdze i oprogramowania. Rne zestawy testw korzystaj z rnych standardw i mechanizmw, co moe
prowadzi do zamierzonych lub niezamierzonych odchyle oceny na korzy bd na
niekorzy konkretnego produktu. Z tego wanie powodu, przed porwnywaniem
wynikw naley dokadnie dowiedzie si, do czego suy dany zestaw.
Najbardziej popularne programy testujce mona pobra ze stron o nastpujcych adresach sieciowych:
 Ziff Davis CPU Mark 99: ftp://ftp.zdnet.com/zdbop/winbench/cpumk99.exe
 Cli Benchmark: http://www.ncpro.com/clibench/download/clibenchsmp/zip

Cz III Czarne skrzynki w szklanej skrzynce

368

 Wintune 98: ftp://wintune.winmag.com/wintune_43.exe


 Winbench 99: ftp://ftp.zdnet.com/pub/zdbop/winbench/wb9911up.exe
 SiSandra 2000: http://www.simtel.net/pub/simtelnet/win95/util/san649.zip

FLOPS, SPEC, MIPS i BogoMips


FLOPS jest skrtem od angielskiej nazwy floating-point operations per second (czyli
operacje zmiennoprzecinkowe na sekund). Jest to jednostka wydajnoci powszechnie
stosowana w testach oceniajcych wydajno operacji zmiennoprzecinkowych w procesorze. Dokadniej rzecz ujmujc, jest ona miar wydajnoci jednostki zmiennoprzecinkowej procesora.
Operacje zmiennoprzecinkowe obejmuj dowolne obliczenia na liczbach uamkowych.
Wystpuj one szczeglnie licznie w obliczeniach naukowych i w programach obsugujcych grafik trjwymiarow.
Poniewa FLOPS nie uwzgldnia czynnikw wynikajcych z rzeczywistych okolicznoci, takich jak na przykad obcienie, nie jest traktowany jako dobre narzdzie
pomiarowe. Z tego wanie powodu konsorcjum producentw utworzyo organizacj
nazwan Standard Performance Evaluation Corporation (w skrcie SPEC), ktra ma
zapewnia bardziej wiarygodne mierniki wydajnoci.
MIPS jest skrtem od angielskiego okrelenia million instructions per second (czyli
milion instrukcji na sekund). Za pomoc tej wanie liczby (tj. jednego miliona) wyraana jest liczba instrukcji kodu maszynowego, ktre s wykonywane przez system
w cigu jednej sekundy. Innymi sowy, jest to miara wydajnoci obliczeniowej procesora i niczego wicej. Oznacza to, e nie zawiera ona oceny wydajnoci rzeczywistej,
poniewa rzeczywiste aplikacje czsto ograniczone s przez wiele czynnikw nie
zwizanych z procesorem. Mona jednak wykorzystywa MIPS do oglnej oceny
szybkoci dziaania systemu.
BogoMips stosuje si w systemie Linux. Kade jdro Linuksa wymaga uycia ptli
czasowej skalibrowanej z szybkoci dziaania procesora w systemie. Aby uzyska
kalibracj, jdro musi zmierzy podczas procesu rozruchu szybko dziaania tej ptli.
Warto BogoMips podaje informacj o oglnej szybkoci dziaania procesora. Warto ta nie stanowi jednak rzetelnej oceny oglnej wydajnoci caego systemu.
Wicej informacji na temat wartoci BogoMips mona znale w dokumentach HOWTO, pod adresem http://www.linuxdoc.org/HOWTO/mini/BogoMips.

Podsumowanie
W tym rozdziale bardziej szczegowo zaprezentowano pyt gwn, ktra stanowi
rdze kadego komputera PC. W nastpnych rozdziaach omwione zostan m.in.
proces rozruchu, podczas ktrego komputer si oywia oraz pami, dziki ktrej
dziaanie takie jest moliwe.

You might also like