Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00323 008406 10493330 na godz. na dobę w sumie
Struktura organizacyjna i architektura systemów komputerowych - książka
Struktura organizacyjna i architektura systemów komputerowych - książka
Autor: , Liczba stron: 672
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-430-3 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).

Komputery już dawno stały się zjawiskiem powszechnym i nie są już traktowane jak magiczne skrzynki. Praktycznie wszyscy znają już możliwości ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postępującego uproszczenia wszelkich operacji związanych z komputerami wiedza o architekturze i organizacji systemów komputerowych może wydawać się potrzebna jedynie wąskiej grupie specjalistów-sprzętowców. Jest jednak inaczej. Ogólna znajomość tego, co kryje się pod 'maską' komputera potrzebna jest każdemu użytkownikowi komputera. Dzięki niej programista zrozumie, z czego wynikają błędy w działaniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decydująca się na zakup nowego sprzętu we właściwy sposób zinterpretuje 'obiektywne' testy przytaczane przez producentów w materiałach reklamowych.

Struktura organizacyjna i architektura systemów komputerowych to przystępne omówienie organizacji i architektury współczesnych komputerów. Książka, stworzona zgodnie z założeniami komitetu ACM-IEEE Computing Curricula 2001, nadaje się idealnie jako podręcznik dla kursu wprowadzającego w tą tematykę. Zawarte w niej zagadnienia zilustrowane są licznymi przykładami zaczerpniętymi z rzeczywistego świata, co dodatkowo ułatwia ich zrozumienie.

Doskonale dobrane proporcje pomiędzy objętością tekstu i poziomem szczegółowości oraz opisywanie wyłącznie istotnych aspektów zagadnienia powodują, że książka stanowi doskonałe źródło naprawdę przydatnej wiedzy.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Struktura organizacyjna i architektura systemów komputerowych Autorzy: Linda Null, Julia Lobur T³umaczenie: Micha³ Dadan (wstêp, rozdz. 1 –; 5), Piotr Pilch (rozdz. 6 –; 10), Andrzej Gra¿yñski (rozdz. 11, dod. A –; C) Tytu³ orygina³u: The Essentials of Computer Organization and Architecture Format: B5, stron: 672 Komputery ju¿ dawno sta³y siê zjawiskiem powszechnym i nie s¹ ju¿ traktowane jak magiczne skrzynki. Praktycznie wszyscy znaj¹ ju¿ mo¿liwoġci ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postêpuj¹cego uproszczenia wszelkich operacji zwi¹zanych z komputerami wiedza o architekturze i organizacji systemów komputerowych mo¿e wydawaæ siê potrzebna jedynie w¹skiej grupie specjalistów-sprzêtowców. Jest jednak inaczej. Ogólna znajomoġæ tego, co kryje siê pod „mask¹” komputera potrzebna jest ka¿demu u¿ytkownikowi komputera. Dziêki niej programista zrozumie, z czego wynikaj¹ b³êdy w dzia³aniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decyduj¹ca siê na zakup nowego sprzêtu we w³aġciwy sposób zinterpretuje „obiektywne” testy przytaczane przez producentów w materia³ach reklamowych. Struktura organizacyjna i architektura systemów komputerowych to przystêpne omówienie organizacji i architektury wspó³czesnych komputerów. Ksi¹¿ka, stworzona zgodnie z za³o¿eniami komitetu ACM-IEEE Computing Curricula 2001, nadaje siê idealnie jako podrêcznik dla kursu wprowadzaj¹cego w t¹ tematykê. Zawarte w niej zagadnienia zilustrowane s¹ licznymi przyk³adami zaczerpniêtymi z rzeczywistego ġwiata, co dodatkowo u³atwia ich zrozumienie. • Historia rozwoju komputerów. • Sposoby przedstawiania danych, notacje i kody. • Logika binarna i algebra Boole’a. • Organizacja pracy systemu komputerowego, cykle maszynowe, magistrala, lista rozkazów, asembler. • Tryby adresowania. • Przechowywanie danych w pamiêci komputera. • Narzêdzia programistyczne i systemy operacyjne. • Alternatywne architektury komputerów. • Analiza wydajnoġci systemów komputerowych. • Sieci komputerowe. Doskonale dobrane proporcje pomiêdzy objêtoġci¹ tekstu i poziomem szczegó³owoġci oraz opisywanie wy³¹cznie istotnych aspektów zagadnienia powoduj¹, ¿e ksi¹¿ka stanowi doskona³e ĥród³o naprawdê przydatnej wiedzy. Spis treści Wstęp ...................................................o...................................................o...............13 1. Wprowadzenie ...................................................o...................................................o.25 1.1. Przegląd wiadomości...........................ą...................................................ą.................................................... 25 1.2. Główne podzespoły komputera...................................................ą............................................................... 27 1.3. Przykładowy system — jak nie pogubić się w technicznym żargonie ...................................................ą... 28 1.4. Organizacje ustanawiające standardy.............ą...................................................ą......................................... 33 1.5. Historia rozwoju komputerów...................................................ą................................................................. 34 1.5.1. Generacja „zerowa” — mechaniczne maszyny liczące (1642 – 1945).......................................... 35 1.5.2. Pierwsza generacja — komputery na lampach próżniowych (1945 – 1953) ................................. 36 1.5.3. Druga generacja — komputery tranzystorowe (1954 – 1965) ...................................................ą.... 38 1.5.4. Trzecia generacja — komputery zbudowane z układów scalonych (1965 – 1980) ....................... 41 1.5.5. Czwarta generacja — komputery oparte na układach o dużym stopniu scalenia (1980 – ?)......... 45 1.5.6. Prawo Moore’a ...................................................ą...................................................ą......................... 46 1.6. Hierarchiczna struktura komputerów ...................................................ą...................................................... 47 1.7. Model von Neumanna ...................................................ą...................................................ą.......................... 49 1.8. Inne modele komputerów...................................................ą........................................................................ 51 Podsumowanie ...................................................ą...................................................ą............................................ 52 Dodatkowe źródła informacji...................................................ą......................................................................... 53 Bibliografia ...................................................ą...................................................ą................................................. 53 Utrwalenie podstawowych terminów i pojęć ...................................................ą................................................. 54 Ćwiczenia...................................................ą...................................................ą.................................................... 55 2. Reprezentacja danych w systemach komputerowych............................................57 2.1. Wprowadzenie...................................................ą...................................................ą...................................... 57 2.2. Pozycyjne systemy liczbowe...................................................ą................................................................... 57 2.3. Zamiana liczb z systemu dwójkowego na dziesiętny.ą...................................................ą............................. 59 2.3.1. Przeliczanie liczb całkowitych bez znaku ...................................................ą................................... 59 2.3.2. Przeliczanie ułamków...................................................ą.................................................................. 61 2.3.3. Przeliczanie liczb między systemami, których podstawy są potęgami dwójki.............................. 63 6 SPIS TREŚCI 2.4. Reprezentacja liczb całkowitych ze znakiem...................................................ą.......................................... 64 2.4.1. Kod prosty ...................................................ą...................................................ą................................ 64 2.4.2. Kody uzupełnieniowe...................................................ą.................................................................. 68 2.5. Zapis liczb zmiennoprzecinkowych ...................................................ą........................................................ 72 2.5.1. Prosty model...................................................ą...................................................ą............................. 74 2.5.2. Arytmetyka zmiennoprzecinkowa...................................................ą............................................... 76 2.5.3. Precyzja obliczeń zmiennoprzecinkowych ...................................................ą................................. 76 2.5.4. Standard zmiennoprzecinkowy IEEE-754 ...................................................ą.................................. 78 2.6. Kody znaków ...................................................ą...................................................ą....................................... 79 2.6.1. Kodowanie dwójkowo-dziesiętne ...................................................ą............................................... 79 2.6.2. EBCDIC ...................................................ą...................................................ą................................... 80 2.6.3. ASCII...................................................ą...................................................ą........................................ 81 2.6.4. Unicode ...................................................ą...................................................ą.................................... 83 2.7. Metody kodowania stosowane przy nagrywaniu i przesyłaniu danych ...................................................ą.. 84 2.7.1. Kod bez powrotu do zera (NRZ)...................................................ą................................................. 85 2.7.2. Kodowanie bez powrotu do zera z inwersją...................................................ą................................ 86 2.7.3. Modulacja fazy (kodowanie manchesterskie) ...................................................ą............................. 86 2.7.4. Modulacja częstotliwości ...................................................ą............................................................ 87 2.7.5. Kodowanie serii ograniczonej długości (RLL) ...................................................ą........................... 88 2.8. Wykrywanie i korekcja błędów.....................ą...................................................ą.......................................... 89 2.8.1. Cykliczna kontrola nadmiarowa...................................................ą.................................................. 90 2.8.2. Kody Hamminga ...................................................ą...................................................ą...................... 93 2.8.3. Kodowanie Reeda-Solomana ...................................................ą...................................................... 98 Podsumowanie ...................................................ą...................................................ą............................................ 99 Dodatkowe źródła informacji...................................................ą......................................................................... 99 Bibliografia ...................................................ą...................................................ą............................................... 100 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 101 Ćwiczenia...................................................ą...................................................ą.................................................. 102 3. Algebra Boole’a i logika cyfrowa...................................................o.....................107 3.1. Wstęp...................................................ą...................................................ą.................................................. 107 3.2. Algebra Boole’a ...................................................ą...................................................ą................................. 108 3.2.1. Wyrażenia boolowskie ...................................................ą.............................................................. 108 3.2.2. Tożsamości boolowskie ...................................................ą............................................................ 110 3.2.3. Upraszczanie wyrażeń boolowskich ...................................................ą......................................... 112 3.2.4. Zaprzeczenie...................................................ą...................................................ą........................... 113 3.2.5. Sposoby prezentacji funkcji boolowskich...................................................ą................................. 115 3.3. Bramki logiczne ...................................................ą...................................................ą................................. 116 3.3.1. Symbole bramek logicznych ...................................................ą..................................................... 117 3.3.2. Bramki uniwersalne...................................................ą...................................................ą................ 117 3.3.3. Bramki kilkuwejściowe...................................................ą............................................................. 118 3.4. Komponenty cyfrowe...................................................ą...................................................ą......................... 119 3.4.1. Układy cyfrowe i ich związek z algebrą Boole’a...................................................ą...................... 119 3.4.2. Układy scalone ...................................................ą...................................................ą....................... 120 3.5. Układy kombinacyjne ...................................................ą...................................................ą........................ 121 3.5.1. Podstawowe pojęcia ...................................................ą...................................................ą............... 121 3.5.2. Przykłady typowych układów kombinacyjnych...................................................ą........................ 121 3.6. Układy sekwencyjne ...................................................ą...................................................ą.......................... 126 3.6.1. Podstawowe pojęcia ...................................................ą...................................................ą............... 127 3.6.2. Zegary...................................................ą...................................................ą..................................... 127 SPIS TREŚCI 7 3.6.3. Przerzutniki ...................................................ą...................................................ą............................ 128 3.6.4. Przykłady układów sekwencyjnch ...................................................ą............................................ 131 3.7. Projektowanie układów...................................................ą......................................................................... 133 Podsumowanie rozdziału.............................ą...................................................ą................................................. 134 Dodatkowe źródła informacji...................................................ą....................................................................... 135 Bibliografia ...................................................ą...................................................ą............................................... 136 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 136 Ćwiczenia...................................................ą...................................................ą.................................................. 137 Szczegóły: mapy Karnaugha...................................................ą...................................................ą..................... 142 3A.1. Wprowadzenie...................................................ą...................................................ą........................ 142 3A.2. Terminologia i omówienie map Karnaugha ...................................................ą.............................. 143 3A.3. Upraszczanie funkcji dwóch zmiennych przy użyciu map Karnaugha........................................ 145 3A.4. Upraszczanie funkcji trzech zmiennych przy użyciu map Karnaugha......................................... 146 3A.5. Upraszczanie funkcji czterech zmiennych przy użyciu map Karnaugha ..................................... 149 3A.6. Warunki bez znaczenia...................................................ą.............................................................. 151 3A.7. Podsumowanie...................................................ą...................................................ą........................ 152 Ćwiczenia ...................................................ą...................................................ą......................................... 152 4. MARIE: wprowadzenie do budowy prostego komputera ...................................155 4.1. Wstęp...................................................ą...................................................ą.................................................. 155 4.1.1. Podstawy budowy i organizacji procesora ...................................................ą................................ 155 4.1.2. Magistrala...................................................ą...................................................ą............................... 157 4.1.3. Zegary...................................................ą...................................................ą..................................... 161 4.1.4. Podsystem wejścia-wyjścia ...................................................ą....................................................... 162 4.1.5. Organizacja pamięci i adresowanie...................................................ą........................................... 163 4.1.6. Przerwania ...................................................ą...................................................ą.............................. 166 4.2. MARIE...................................................ą...................................................ą............................................... 166 4.2.1. Architektura...................................................ą...................................................ą............................ 167 4.2.2. Rejestry i magistrale...................................................ą.................................................................. 168 4.2.3. Architektura zbioru rozkazów ...................................................ą................................................... 169 4.2.4. Notacja „rejestr-przesunięcie”...................................................ą................................................... 172 4.3. Przetwarzanie rozkazów...................................................ą........................................................................ 174 4.3.1. Cykl „pobierz, dekoduj, wykonaj” ...................................................ą............................................ 175 4.3.2. Przerwania a obsługa I/O ...................................................ą.......................................................... 175 4.4. Prosty program ...................................................ą...................................................ą................................... 177 4.5. Omówienie asemblerów...................................................ą...................................................ą..................... 178 4.5.1. Jakie funkcje właściwie pełni asembler?...................................................ą................................... 179 4.5.2. Po co używać asemblera?...................................................ą.......................................................... 182 4.6. Rozszerzanie naszego zbioru rozkazów...................................................ą................................................ 182 4.7. Dekodowanie — czysto sprzętowe czy realizowane za pośrednictwem mikrokodu? ............................. 187 4.8. Przykładowe architektury prawdziwych komputerów...................................................ą.......................... 189 4.8.1. Architektury Intela ...................................................ą.................................................................... 191 4.8.2. Architektury MIPS ...................................................ą...................................................ą................. 194 Podsumowanie ...................................................ą...................................................ą.......................................... 196 Dodatkowe źródła informacji...................................................ą....................................................................... 197 Bibliografia ...................................................ą...................................................ą............................................... 198 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 199 Ćwiczenia...................................................ą...................................................ą.................................................. 200 8 5. SPIS TREŚCI Bliższe spojrzenie na architektury zbioru rozkazów ...........................................205 5.1. Wstęp...................................................ą...................................................ą.................................................. 205 5.2. Formaty instrukcji ...................................................ą...................................................ą.............................. 205 Decyzje podejmowane przy projektowaniu zbiorów rozkazów........................................... 206 5.2.1. 5.2.2. Little Endian kontra Big Endian...................................................ą................................................ 207 5.2.3. Przechowywanie danych wewnątrz CPU — na stosie czy w rejestrach? .................................... 209 5.2.4. Liczba operandów i długość rozkazów ...................................................ą..................................... 210 5.2.5. Rozszerzalne kody operacji...................................................ą....................................................... 213 5.3. Rodzaje rozkazów ...................................................ą...................................................ą.............................. 215 5.4. Adresowanie...................................................ą...................................................ą....................................... 216 5.4.1. Typy danych ...................................................ą...................................................ą........................... 216 5.4.2. Tryby adresowania ...................................................ą...................................................ą................. 217 5.5. Potokowość na poziomie instrukcji ...................................................ą...................................................... 220 5.6. Przykłady prawdziwych architektur ISA ...................................................ą.............................................. 224 5.6.1. Intel...................................................ą...................................................ą......................................... 225 5.6.2. MIPS...................................................ą...................................................ą....................................... 225 5.6.3. Wirtualna maszyna Javy...................................................ą............................................................ 226 Podsumowanie ...................................................ą...................................................ą.......................................... 230 Dodatkowe źródła informacji...................................................ą....................................................................... 231 Bibliografia ...................................................ą...................................................ą............................................... 231 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 232 Ćwiczenia...................................................ą...................................................ą.................................................. 233 6. Pamięć...................................................o...................................................o............237 6.1. Wprowadzenie...................................................ą...................................................ą.................................... 237 6.2. Typy pamięci...................................................ą...................................................ą...................................... 237 6.3. Hierarchia pamięci ...................................................ą...................................................ą............................. 239 6.3.1. Lokalność odwołań...................................................ą...................................................ą................. 241 6.4. Pamięć podręczna...................................................ą...................................................ą............................... 241 6.4.1. Schematy odwzorowania pamięci podręcznej ...................................................ą.......................... 244 6.4.2. Reguły zastępowania...................................................ą................................................................. 250 6.4.3. Efektywny czas dostępu i współczynnik trafień ...................................................ą....................... 252 6.4.4. Kiedy pamięć podręczna przestaje wydajnie funkcjonować? .............................................. 252 6.4.5. Zasady zapisywania do pamięci podręcznej ...................................................ą.............................253 6.5. Pamięć wirtualna...................................................ą...................................................ą................................ 254 6.5.1. Stronicowanie...................................................ą...................................................ą......................... 255 6.5.2. Wskaźnik ECD w przypadku używania stronicowania ...................................................ą............ 260 6.5.3. Połączenie elementów — zastosowanie pamięci podręcznej, buforów TLB i stronicowania........ 262 6.5.4. Zalety i wady stronicowania oraz pamięci wirtualnej...................................................ą............... 264 6.5.5. Segmentacja...................................................ą...................................................ą............................ 265 6.5.6. Stronicowanie połączone z segmentacją ...................................................ą................................... 266 6.6. Praktyczny przykład zarządzania pamięcią...................................................ą........................................... 266 Podsumowanie ...................................................ą...................................................ą.......................................... 267 Dodatkowe publikacje...................................................ą...................................................ą............................... 268 Bibliografia ...................................................ą...................................................ą............................................... 269 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 269 Ćwiczenia...................................................ą...................................................ą.................................................. 270 SPIS TREŚCI 7. 9 Systemy wejścia-wyjścia i magazynowania danych ...........................................277 7.1. Wprowadzenie...................................................ą...................................................ą.................................... 277 7.2. Prawo Amdahla...................................................ą...................................................ą.................................. 278 7.3. Architektury systemów I/O ...................................................ą................................................................... 279 7.3.1. Metody sterowania układami I/O ...................................................ą.............................................. 280 7.3.2. Działanie magistrali I/O ...................................................ą............................................................ 284 7.3.3. Kolejne spojrzenie na układy I/O sterowane przerwaniami...................................................ą...... 287 7.4. Technologia dysków magnetycznych ...................................................ą................................................... 289 7.4.1. Napędy dysków twardych ...................................................ą......................................................... 290 7.4.2. Dyski elastyczne (dyskietki) ...................................................ą..................................................... 295 7.5. Dyski optyczne...................................................ą...................................................ą................................... 297 7.5.1. CD-ROM ...................................................ą...................................................ą................................ 297 7.5.2. DVD ...................................................ą...................................................ą....................................... 300 7.5.3. Metody zapisu dysków optycznych ...................................................ą.......................................... 301 7.6. Taśma magnetyczna ...................................................ą...................................................ą........................... 302 7.7. RAID ...................................................ą...................................................ą.................................................. 304 7.7.1. RAID-0...................................................ą...................................................ą................................... 305 7.7.2. RAID-1...................................................ą...................................................ą................................... 306 7.7.3. RAID-2...................................................ą...................................................ą................................... 306 7.7.4. RAID-3...................................................ą...................................................ą................................... 307 7.7.5. RAID-4...................................................ą...................................................ą................................... 308 7.7.6. RAID-5...................................................ą...................................................ą................................... 309 7.7.7. RAID-6...................................................ą...................................................ą................................... 310 7.7.8. Hybrydowe systemy RAID ...................................................ą....................................................... 311 7.8. Kompresja danych...................................................ą...................................................ą.............................. 311 7.8.1. Kodowanie statystyczne ...................................................ą............................................................ 313 7.8.2. Systemy słownikowe Ziv-Lempel (LZ) ...................................................ą.................................... 320 7.8.3. Kompresja GIF ...................................................ą...................................................ą....................... 324 7.8.4. Kompresja JPEG ...................................................ą...................................................ą.................... 325 Podsumowanie ...................................................ą...................................................ą.......................................... 329 Dodatkowe publikacje...................................................ą...................................................ą............................... 330 Bibliografia ...................................................ą...................................................ą............................................... 331 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 332 Ćwiczenia...................................................ą...................................................ą.................................................. 333 Dodatkowe informacje na temat implementacji wybranych systemów dyskowych....................................... 336 7A.1 Wprowadzenie...................................................ą...................................................ą......................... 336 7A.2 Tryby transmisji danych ...................................................ą............................................................. 336 7A.3. SCSI...................................................ą...................................................ą........................................ 338 7A.4. Sieci SAN ...................................................ą...................................................ą............................... 350 7A.5. Inne połączenia I/O...................................................ą...................................................ą................. 351 7A.6. Podsumowanie...................................................ą...................................................ą........................ 353 Ćwiczenia ...................................................ą...................................................ą......................................... 354 8. Oprogramowanie systemowe...................................................o............................357 8.1. Wprowadzenie...................................................ą...................................................ą.................................... 357 8.2. Systemy operacyjne..............................ą...................................................ą................................................. 358 8.2.1. Historia systemów operacyjnych...................................................ą............................................... 359 8.2.2. Projektowanie systemu operacyjnego ...................................................ą....................................... 364 8.2.3. Usługi systemu operacyjnego...................................................ą.................................................... 365 10 SPIS TREŚCI 8.3. Środowiska chronione...................................................ą...................................................ą........................ 370 8.3.1. Wirtualne maszyny...................................................ą...................................................ą................. 370 8.3.2. Podsystemy i partycje...................................................ą................................................................ 372 8.3.3. Środowiska chronione i ewolucja architektur systemowych ...................................................ą.... 374 8.4. Narzędzia programowania.........................ą...................................................ą............................................ 376 8.4.1. Asemblery i ich tłumaczenie ...................................................ą..................................................... 377 8.4.2. Konsolidatory ...................................................ą...................................................ą......................... 379 8.4.3. Biblioteki DLL ...................................................ą...................................................ą....................... 381 8.4.4. Kompilatory...................................................ą...................................................ą............................ 382 8.4.5. Interpretery ...................................................ą...................................................ą............................. 386 8.5. Java — coś więcej...................................................ą...................................................ą.............................. 387 8.6. Oprogramowanie bazodanowe...................................................ą.............................................................. 393 8.7. Menedżery transakcji ...................................................ą...................................................ą......................... 399 Podsumowanie ...................................................ą...................................................ą.......................................... 400 Dodatkowe publikacje...................................................ą...................................................ą............................... 401 Bibliografia ...................................................ą...................................................ą............................................... 402 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 403 Ćwiczenia...................................................ą...................................................ą.................................................. 404 9. Alternatywne architektury ...................................................o................................407 9.1. Wprowadzenie...................................................ą...................................................ą.................................... 407 9.2. Komputery oparte na architekturze RISC ...................................................ą............................................. 408 9.3. Taksonomia Flynna...................................................ą...................................................ą............................ 414 9.4. Architektury wieloprocesorowe i przetwarzania równoległego...................................................ą............ 417 9.4.1. Architektura superskalarna i VLIW ...................................................ą.......................................... 418 9.4.2. Procesory wektorowe ...................................................ą................................................................ 420 9.4.3. Sieci połączeniowe ...................................................ą...................................................ą................. 421 9.4.4. Systemy wieloprocesorowe współdzielące pamięć...................................................ą................... 425 9.4.5. Obliczenia rozproszone ...................................................ą............................................................. 429 9.5. Alternatywne metody przetwarzania równoległego...................................................ą.............................. 430 9.5.1. Obliczenia oparte na przepływie danych...................................................ą................................... 430 9.5.2. Sieci neuronowe ...................................................ą...................................................ą..................... 433 9.5.3. Macierze systoliczne ...................................................ą................................................................. 436 Podsumowanie ...................................................ą...................................................ą.......................................... 437 Dodatkowe publikacje...................................................ą...................................................ą............................... 438 Bibliografia ...................................................ą...................................................ą............................................... 438 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 440 Ćwiczenia...................................................ą...................................................ą.................................................. 441 10. Analiza i pomiar wydajności ...................................................o............................445 10.1. Wprowadzenie...................................................ą...................................................ą.................................. 445 10.2. Podstawowe równanie określające wydajność komputera ...................................................ą................. 445 10.3. Matematyczne podstawy...................................................ą..................................................................... 447 10.3.1. Czym jest średnia?...................................................ą................................................................... 448 10.3.2. statystyka i semantyka...................................................ą............................................................. 453 10.4. Benchmarking ...................................................ą...................................................ą.................................. 455 10.4.1. Częstotliwość zegara oraz wskaźniki MIPS i FLOPS...................................................ą............. 456 10.4.2. Syntetyczne programy wzorcowe — Whetstone, Linpack i Dhrystone .................................... 458 10.4.3. Programy wzorcowe organizacji SPEC ...................................................ą..................................459 SPIS TREŚCI 11 10.4.4. Programy wzorcowe organizacji TPC...................................................ą..................................... 463 10.4.5. Symulacja systemu ...................................................ą...................................................ą............... 470 10.5. Optymalizacja wydajności procesora...................................................ą.................................................. 471 10.5.1. Optymalizacja rozgałęzień ...................................................ą...................................................... 471 10.5.2. Zastosowanie dobrych algorytmów i prostego kodu...................................................ą............... 474 10.6. Wydajność dysku ...................................................ą...................................................ą............................. 477 10.6.1. Zrozumienie problemu ...................................................ą............................................................ 478 10.6.2. Kwestie związane z fizycznymi komponentami dysku...................................................ą........... 479 10.6.3. Kwestie związane z logicznymi komponentami dysku...................................................ą........... 480 Podsumowanie ...................................................ą...................................................ą.......................................... 485 Dodatkowe publikacje...................................................ą...................................................ą............................... 486 Bibliografia ...................................................ą...................................................ą............................................... 487 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 488 Ćwiczenia...................................................ą...................................................ą.................................................. 489 11. Organizacja i architektura sieci komputerowych.................................................495 11.1. Wprowadzenie...................................................ą...................................................ą.................................. 495 11.2. Wczesne sieci biznesowe ...................................................ą.................................................................... 495 11.3. Wczesne sieci akademickie; zalążek internetu...................................................ą.................................... 497 11.4. Protokoły sieciowe i ich unifikacja w ramach ISO/OSI ...................................................ą..................... 499 11.4.1. Przykład...................................................ą...................................................ą................................ 500 11.4.2. Model odniesienia OSI...................................................ą............................................................ 501 11.5. Architektura sieci TCP/IP ...................................................ą................................................................... 505 11.5.1. Warstwa IP w wersji 4....................................................ą............................................................ 506 11.5.2. Ograniczenia związane z IPv4 ...................................................ą................................................ 509 11.5.3. Protokół transportowy TCP...................................................ą..................................................... 511 11.5.4. Protokół TCP w akcji ...................................................ą.............................................................. 514 11.5.5. IP w wersji 6....................................................ą...................................................ą........................ 517 11.6. Organizacja sieci ...................................................ą...................................................ą.............................. 520 11.6.1. Fizyczne media transmisyjne ...................................................ą.................................................. 520 11.6.2. Karty sieciowe...................................................ą...................................................ą...................... 527 11.6.3. Powtarzacze...................................................ą...................................................ą.......................... 527 11.6.4. Koncentratory...................................................ą...................................................ą....................... 528 11.6.5. Przełączniki ...................................................ą...................................................ą.......................... 529 11.6.6. Mostki i bramy ...................................................ą...................................................ą..................... 529 11.6.7. Routery i marszrutowanie ...................................................ą....................................................... 530 11.7. Szybkie łącza cyfrowe...................................................ą......................................................................... 539 11.7.1. Hierarchia cyfrowa ...................................................ą.................................................................. 539 11.7.2. ISDN...................................................ą...................................................ą..................................... 543 11.7.3. Transfer asynchroniczny ...................................................ą......................................................... 546 11.8. Rzut oka na internet..........................ą...................................................ą................................................... 547 11.8.1. Internet „z doskoku”...................................................ą................................................................ 548 11.8.2. Internet — skok wzwyż...................................................ą........................................................... 555 Podsumowanie ...................................................ą...................................................ą.......................................... 555 Dodatkowe źródła informacji...................................................ą....................................................................... 556 Bibliografia ...................................................ą...................................................ą............................................... 557 Utrwalenie podstawowych terminów i pojęć ...................................................ą............................................... 558 Ćwiczenia...................................................ą...................................................ą.................................................. 559 12 A SPIS TREŚCI Struktury danych w obliczeniach komputerowych..............................................563 A.1. Wstęp...................................................ą...................................................ą................................................. 563 A.2. Fundamentalne struktury danych ...................................................ą......................................................... 563 A.2.1. Tablice ...................................................ą...................................................ą................................... 564 A.2.2. Kolejki i listy wiązane ...................................................ą.............................................................. 565 A.2.3. Stosy ...................................................ą...................................................ą...................................... 567 A.3. Drzewa ...................................................ą...................................................ą.............................................. 569 A.4. Grafy...................................................ą...................................................ą.................................................. 575 Podsumowanie ...................................................ą...................................................ą.......................................... 578 Dodatkowe źródła informacji...................................................ą....................................................................... 578 Bibliografia ...................................................ą...................................................ą............................................... 578 Ćwiczenia...................................................ą...................................................ą.................................................. 579 B Słownik ...................................................o...................................................o..........583 C Odpowiedzi i wskazówki do wybranych ćwiczeń ...............................................625 Skorowidz ...................................................o...................................................o......639 4 MARIE: wprowadzenie do budowy prostego komputera „Jeżeli do uzyskania wyniku musisz posłużyć się jakimś instrumentem, budując go, nie pozwól sobie na to, aby był on zbyt skomplikowany”. — Leonardo da Vinci 4.1. Wstęp W dzisiejszych czasach zaprojektowanie komputera to zadanie dla dobrze wyszkolonego informatyka. Niemożliwością jest, aby w książce takiej jak ta (ani w podstawowym kursie o architekturze kom- putera) przedstawić wszystko, co jest niezbędne do zbudowania współczesnego komputera. Tym niemniej w niniejszym rozdziale przyjrzymy się bardczo prostemu komputerowi, jakim jest MARIE (ang. A Machine Architecture that is Really Intuitive and Easy), co w języku polskim oznacza na- prawdę prostą i intuicyjną architekturę komputera. Następnie krótko omówimy komputery Intel i MIPS — dwie popularne architektury, będące odzwierciedleniem filozofii projektowania CISC oraz RISC. Celem niniejszego rozdziału jest wyjaśnienie, jak naprawdę działa komputer. Dlatego też starałyśmy się, zgodnie z zacytowaną radą Leonarda da Vinci, przedstawić budowę komputera w możliwie najmniej skomplikowany sposób. 4.1.1. Podstawy budowy i organizacji procesora Z rozdziału 2. („Reprezentacja danych w systemach komputerowych”) wiemy już, że komputer musi operować na danych zapisanych w systemie binarnym. Z rozdziału 3. z kolei dowiedzieliśmy się, że pamięć wykorzystywana jest do przechowywania zarówno danych, jak i poleceń programów (również zapisanych w systemie binarnym). Programy muszą być w jakiś sposób wykonywane, a dane przetwarzane. Jest to zadanie procesora (ang. central processing unit, CPU), który jest od- powiedzialny za wczytywanie poleceń programu, rozkodowanie każdego z nich oraz wykonanie działań we wskazanej kolejności. Aby zrozumieć, jak pracują komputery, należy najpierw zazna- jomić się z ich różnorodnymi podsystemami i interakcjami pomiędzy nimi. Zanim przedstawimy prostą architekturę komputera, przyjrzymy się najpierw mikroarchitekturze występującej na po- ziomie sterowania współczesnych komputerów. 156 4. MARIE: WPROWADZENIE DO BUDOWY PROSTEGO KOMPUTERA We wszystkich komputerach znajduje się procesor. Może on być podzielony na dwie części. Pierwszą z nich jest ścieżka danych, czyli sieć jednostek przechowujących dane (rejestrów) oraz jednostek logiczno-arytmetycznych (do wykonywania różnych operacji na danych), połączonych ze sobą magistralami (zdolnymi do przenoszenia danych z miejsca na miejsce), których pracą ste- rują zegary. Drugim składnikiem procesora jest jednostka sterująca — moduł odpowiedzialny za ustalanie kolejności wykonywanych operacji i gwarantujący, że dane znajdą się we właściwym miejscu o właściwym czasie. Łącznie oba te składniki wykonują zadania powierzone procesorowi: wczytywanie instrukcji, rozkodowywanie ich i wykonywanie ich we wskazanej kolejności. Działanie komputera zależy bezpośrednio od sposobu zaprojektowania ścieżki danych i jednostki sterującej. Dlatego poniżej zostaną one szczegółowo omówione. Rejestry Rejestry są wykorzystywane w systemach komputerowych w charakterze miejsc, w których prze- chowywane są różnego rodzaju dane, takie jak adresy, liczniki rozkazów lub dane niezbędne do wykonania określonego programu. Mówiąc prościej, rejestr jest fizycznym urządzeniem, które przechowuje dane binarne. Aby dostęp do nich był możliwie szybki, rejestry umiejscowione są w procesorze. W rozdziale 3. dowiedziałeś się, że do zbudowania rejestrów można użyć przerzutni- ków D. Jeden przerzutnik D odpowiada rejestrowi przechowującemu 1 bit. Zatem do przechowy- wania wartości wielobitowych niezbędny jest zespół przerzutników D. Na przykład aby zbudować rejestr szesnastobitowy, musielibyśmy połączyć ze sobą 16 przerzutników D. Na rysunku licznika binarnego, który zamieściłyśmy w rozdziale 3., można było zauważyć, że wspomniane przerzutniki muszą być zsynchronizowane tak, aby działały jednocześnie. Z każdym impulsem zegara dane wchodzą do rejestru i nie mogą być zmienione, dopóki nie nastąpi kolejny impuls (są tam więc przechowywane). Przetwarzanie danych na komputerze jest zazwyczaj wykonywane na słowach binarnych o określonej wielkości, które są przechowywane w rejestrach. Dlatego większość komputerów ma rejestry o określonej pojemności. Popularne rozmiary rejestrów to 16, 32 i 64 bity. Liczba reje- strów w komputerze różni się w zależności od architektury, ale zazwyczaj jest potęgą liczby dwa, a najpopularniejsze z nich to 16 i 32. Rejestry zawierają dane, adresy lub informacje sterujące. Niektóre z nich są wyspecjalizowane, a więc mogą zawierać tylko dane, tylko adresy lub tylko in- formacje sterujące. Inne są bardziej ogólne i mogą przechowywać w różnych momentach zarówno dane, adresy, jak i informacje sterujące. Dane są w rejestrach zapisywane, z nich odczytywane i przenoszone z rejestru do rejestru. Do rejestrów nie odwołujemy się tak samo, jak do pamięci c(przypominamy, że każde słowo w pamięci ma swój niepowtarzalny adres, liczony od zera). To sama jednostka sterująca odwołuje się do nich i nimi manipuluje. We współczesnych systemach komputerowych istnieje wiele rodzajów wyspecjalizowanych rejestrów: rejestry do przechowywania informacji, rejestry do zmieniania wartości, rejestry do po- równywania wartości oraz rejestry do liczenia. Są też rejestry zwane „brudnopisami”, które prze- chowują tymczasowe wartości, rejestry indeksowe do kontrolowania pętli, rejestry do zarządzania stosami informacji dla procesów, rejestry stanu do przechowywania informacji o stanie lub trybie pracy (i występowaniu takich zdarzeń, jak przepełnienie, przeniesienie czy osiągnięcie warunków zerowych) oraz rejestry ogólnego przeznaczenia, czyli rejestry dostępne dla programisty. W większości komputerów znajdują się zespoły rejestrów, przy czym każdy z tych zespołów jest zespołem wy- specjalizowanym. Na przykład w architekturze Pentium istnieje zespół rejestrów danych i zespół rejestrów adresowych. Niektóre architektury mają bardzo duże zespoły rejestrów, które mogą być w nowoczesny sposób wykorzystywane do przyspieszenia procesu wykonywania operacji. (Temat ten omówimy po przedstawieniu zaawansowanych architcektur w rozdziale 9.). 4.1. WSTĘP ALU 157 Jednostka arytmetyczno-logiczna (ALU) wykonuje operacje logiczne (takie, jak na przykład po- równanie) i arytmetyczne (na przykład dodawanie i mnożenie) wymagane podczas wykonywania programu. Przykład prostej jednostki ALU widzieliśmy już w rozdziale 3. Ogólnie mówiąc, jed- nostka ALU ma dwa wejścia danych i jedno wyjście. Operacje wykonywane w ALU mają często wpływ na bity w rejestrze stanu (zadaniem tych bitów jest informowanie o wystąpieniu określonych sytuacji, takich jak na przykład przepełnienie). Jednostka ALU „wie”, które operacje wykonywać, ponieważ jest kontrolowana przez sygnały płynące z jcednostki sterującej. Jednostka sterująca Jednostka sterująca jest „policjantem” czy też „kierującym ruchem” procesora. Monitoruje ona wykonywanie wszystkich instrukcji oraz transfer wszystkich informacji. Wydobywa instrukcje z pamięci, rozkodowuje je i dba o to, aby znalazły się w odpowiednim czasie we właściwym miej- scu. Informuje też jednostkę ALU, których rejestrów ma ona użyć, obsługuje przerwania oraz — w celu wykonania pożądanej operacji — włącza odpowiedni zestaw obwodów elektrycznych w ALU. Aby odnaleźć następną instrukcję, jaką należy wykonać, jednostka sterująca wykorzystuje rejestr licznika rozkazów, natomiast aby „wiedzieć” na bieżąco o przepełnieniach, przesunięciach, „zapo- życzeniach”, itp. — używa rejestru stanu. Więcej szczegółowych informacji o jednostce sterującej prezentujemy w podrozdziale 4.7. 4.1.2. Magistrala Procesor komunikuje się z innymi podsystemami poprzez tzw. szynę (zwaną też magistralą). Ma- gistrala jest zespołem przewodów działających jako wspólna ścieżka danych, łącząca różnorodne podsystemy. Składa się z wielu linii, co pozwala na rcównoległy przepływ bitów. Szyny są niedrogim, ale też wszechstronnym sposobem na łatwe włączenie nowych urządzeń do systemu i połączenie ich ze sobą. W danej chwili czasu szyna może być wykorzystywana tylko przez jedno urządzenie, niezależnie od tego, czy jest to rejestr, jednostka ALU, pamięć czy cokolwiek innego. Pomimo to współużytkowanie szyny często staje się „wąskim gardłem” w komunikacji. Na prędkość szyny wpływa zarówno jej szerokość, jak i liczba urządzeń, przez które jest współużytkowana. Dość często urządzenia te podzielone są na dwie kategorie: urządzenia master i urządzenia slave, przy czym urządzenie master to takie, które inicjuje działanie, natomiast urządzenie slave odpowiada na żą- dania urządzenia master. Magistrala może być dwupunktowa, co oznacza, że łączyc ona dwa konkretne podzespoły (tak, jak to zostało przedstawione na rysunku 4.1a), lub też może być wspólną ścieżką danych, która łączy kilka urządzeń, zmuszając je do jej współużytkowania (nazywamy ją magistralą wielopunk- tową, patrz rysunek 4.1b). W związku ze wspomnianym współużytkowaniem niezwykle ważny jest protokół magistrali (zestaw reguł użytkowania). Rysunek 4.2 pokazuje typową magistralę, składającą się z linii da- nych, linii adresowych, linii sterujących i linii zasilania. Często linie magistrali odpowiedzialne za przenoszenie danych nazywane są szyną danych. Linie te zawierają faktyczne informacje, które muszą zostać przeniesione z jednego miejsca do innego. Linie sterujące wskazują, które z urzą- dzeń ma pozwolenie na użycie szyny i w jakim celu (np. zapis lub odczyt danych z pamięci bądź z urządzenia wejścia-wyjścia). Linie sterujące przesyłają też komunikaty potwierdzające odbieranie żądań dostępu do magistrali, żądań obsługi przerwań i impulsów synchronizacyjnych zegara). Linie 158 4. MARIE: WPROWADZENIE DO BUDOWY PROSTEGO KOMPUTERA RYSUNEK 4.1. a) szyny dwupunktowe; b) szyna wielopu.nktowa RYSUNEK 4.2. Budowa typowej magistrali 4.1. WSTĘP 159 adresowe wskazują miejsce (np. w pamięci), w którym dane powinny zostać zapisane lub z którego należy je odczytać. Linie zasilania zapewniają niezbędne zasilanie elektryczne. Typowe operacje w przypadku magistrali to wysyłanie adresu (do odczytu lub zapisu), transfer danych z pamięci do rejestru (odczytanie pamięci) oraz transfer danych z rejestru do pamięci (zapis w pamięci). Dodat- kowo magistrale wykorzystywane są do operacji zapisu i odczytu danych z urządzeń peryferyjnych. Każdy rodzaj transferu ma miejsce w cyklu magistrali, to znaczy w okresie czasu pomiędzy dwoma impulsami zegara szyny. Ze względu na różne rodzaje szyn transportujących informacje oraz ze względu na różnorodność urządzeń, które te szyny wykorzystują, również magistrale możemy podzielić na kilka rodzajów. Magistrale procesor-pamięć są krótkimi, bardzo szybkimi szynami, ściśle dopasowanymi do za- stosowanego w komputerze systemu pamięci. Stosowane są w celu maksymalnego powiększenia przepustowości (szybkości przesyłu danych) i zazwyczaj mają dosyć specyficzną budowę. Magi- strale wejścia-wyjścia są zazwyczaj dłuższe niż poprzednie i łączą wiele typów urządzeń o różnej przepustowości. Budowa tych szyn jest kompatybilna z różnymi architekturami komputerów. Ma- gistrala systemowa (rysunek 4.3) jest właściwie wbudowana w płytę główną komputera. Łączy ona procesor, urządzenia wejścia-wyjścia oraz pamięć (tak więc wszystkie te urządzenia współ- dzielą jedną szynę). Wiele komputerów ma pewną hierarchię magistral, stąd też występowanie dwóch magistral (na przykład szyny procesor-pamięć i szyny wejścia-wyjścia) lub ich większej liczby wewnątrz jednego systemu nie jest niczym nadzwyczajnym. Systemy o dużej wydajności często używają wszystkich trzech rodzajów magistral.c RYSUNEK 4.3. Magistrala systemowa W przypadku komputerów PC stosujemy nieco odmienną terminologię. Komputery te mają wewnętrzną szynę zwaną magistralą systemową, która łączy procesor, pamięć i wszystkie inne wewnętrzne podsystemy. Szyny zewnętrzne (określane często mianem szyn rozszerzeń) łączą urządzenia zewnętrzne, peryferyjne, gniazda rozszerzeń oraz porty wejścia-wyjścia z resztą kom- putera. W większości komputerów PC znajdują
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Struktura organizacyjna i architektura systemów komputerowych
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: