Organizacja i architektura systemu komputerowego. Tom 1 - ebook
Organizacja i architektura systemu komputerowego. Tom 1 - ebook
Organizacja i architektura systemu komputerowego to nowe, jedenaste wydanie znakomitego podręcznika o budowie i działaniu współczesnych systemów komputerowych, stosowanego powszechnie na wyższych uczelniach w Polsce. William Stallings, światowej sławy specjalista w dziedzinie sieci komputerowych i architektury komputerów, kładzie w nim nacisk na projektowanie systemu pod kątem uzyskania największej wydajności.
Nowości w Wydaniu XI:
• Moduły wieloukładowe: dodano nowe omówienie powszechnie stosowanych obecnie modułów MCM.
• Testy SPEC: zaktualizowano omówienie SPEC tak, aby objąć nowy pakiet testów SPEC CPU2017.
• Hierarchia pamięci: nowy rozdział dotyczący hierarchii pamięci obejmuje teraz nowe informacje oraz te, które znajdowały się w rozdziale dotyczącym pamięci podręcznej.
• Pamięć podręczna: rozdział dotyczący pamięci podręcznej został zaktualizowany i poprawiony.
• Wbudowana pamięć DRAM: rozdział dotyczący pamięci wewnętrznej zawiera teraz część dotyczącą coraz bardziej popularnej pamięci eDRAM.
• Dyski twarde z sektorem Advanced Format 4k: rozdział dotyczący pamięci zewnętrznej zawiera teraz omówienie szeroko obecnie używanego formatu dysku twardego o sektorze 4k.
• Algebra Boole'a: dyskusja na temat algebry Boole'a została rozszerzona o nowy tekst, rysunki i tabele w celu lepszego zrozumienia.
• Język asemblera: opis języka asemblera został rozszerzony do pełnego rozdziału, z większą ilością szczegółów i większą liczbą przykładów.
• Organizacja przetwarzania potokowego: dyskusja na temat przetwarzania potokowego została znacznie rozszerzona o nowy tekst i rysunki.
• Spójność pamięci podręcznej: omówienie protokołu spójności pamięci podręcznej MESI zostało rozszerzone o nowy tekst i rysunki.
Książka została wydana w dwóch tomach, aby ułatwić Czytelnikom korzystanie z niej.
W Tomie I zostały omówione następujące zagadnienia:
• Podstawowe pojęcia i ewolucja komputerów
• Koncepcje wydajności
• Działanie i połączenia wewnętrzne komputera
• Hierarchia pamięci
• Pamięć podręczna, wewnętrzna i zewnętrzna
• Urządzenia wejścia-wyjścia
• Obsługa systemów operacyjnych
• Systemy liczbowe
• Arytmetyka komputera
• Cyfrowe układy logiczne
Kategoria: | Informatyka |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-01-22632-9 |
Rozmiar pliku: | 16 MB |
FRAGMENT KSIĄŻKI
NOWOŚCI W XI WYDANIU
Od czasu opublikowania dziesiątego wydania tej książki, w omawianej dziedzinie obserwuje się ciągły rozwój i wynikające z tego innowacje i ulepszenia. W tym nowym wydaniu staram się uchwycić te zmiany, zachowując jednocześnie szerokie i kompleksowe pokrycie całej dziedziny. Dziesiąte wydanie tej książki zostało obszernie zrecenzowane przez wielu profesorów nauczających tego przedmiotu oraz przez profesjonalistów pracujących w tej dziedzinie. W rezultacie w wielu miejscach narracja została doprecyzowana i uściślona, a ilustracje poprawione.
Poza tymi udoskonaleniami wprowadzono także istotne zmiany mające na celu poprawy aspektu dydaktycznego i przystępności dla czytelnika. Utrzymany został podobny układ rozdziałów, jednak większość materiału została poprawiona oraz dodano nowe materiały. Najważniejsze zmiany to:
• MODUŁY WIELOUKŁADOWE: w rozdziale 1 dodano nowe omówienie powszechnie stosowanych obecnie modułów MCM.
• TESTY SPEC: zaktualizowano omówienie SPEC w rozdziale 2 tak, aby objąć nowy pakiet testów SPEC CPU2017.
• HIERARCHIA PAMIĘCI: nowy rozdział dotyczący hierarchii pamięci obejmuje teraz nowe informacje oraz te, które znajdowały się w rozdziale dotyczącym pamięci podręcznej. Nowy rozdział 4 zawiera:
– Zaktualizowany i rozszerzony opis zasady lokalności.
– Zaktualizowany i rozszerzony opis hierarchii pamięci.
– Nowe podejście do modelowania wydajności dostępu do danych w hierarchii pamięci.
• PAMIĘĆ PODRĘCZNA: rozdział dotyczący pamięci podręcznej został zaktualizowany i poprawiony. Rozdział 5 zawiera teraz:
– Zmieniony i rozszerzony opis logicznej organizacji pamięci podręcznej, w tym nowe rysunki poprawiające przejrzystość tekstu.
– Nowy opis pamięci adresowalnej zawartością.
– Nowy opis zasad zapisu z alokacją i zapisu bez alokacji.
– Nową część dotyczącą modelowania wydajności pamięci podręcznej.
• WBUDOWANA PAMIĘĆ DRAM: rozdział 6 dotyczący pamięci wewnętrznej zawiera teraz część dotyczącą coraz bardziej popularnej pamięci eDRAM.
• DYSKI TWARDE Z SEKTOREM ADVANCED FORMAT 4 K: rozdział 7 dotyczący pamięci zewnętrznej zawiera teraz omówienie szeroko obecnie używanego formatu dysku twardego o sektorze 4 k.
• ALGEBRA BOOLE’A: dyskusja na temat algebry Boole’a w rozdziale 12 została rozszerzona o nowy tekst, rysunki i tabele w celu lepszego zrozumienia.
• JĘZYK ASEMBLERA: opis języka asemblera został rozszerzony do pełnego rozdziału, z większą liczbą szczegółów i przykładów.
• ORGANIZACJA PRZETWARZANIA POTOKOWEGO: dyskusja na temat przetwarzania potokowego została znacznie rozszerzona o nowy tekst i rysunki. Informacje na ten temat znajdują się w nowych częściach rozdziału 16 (Struktura i działanie procesora), 17 (Komputery z zredukowaną listą rozkazów) i 18 (Równoległość na poziomie rozkazu i procesory superskalarne).
• SPÓJNOŚĆ PAMIĘCI PODRĘCZNEJ: omówienie protokołu spójności pamięci podręcznej MESI w rozdziale 20 zostało rozszerzone o nowy tekst i rysunki.
WSPARCIE PROGRAMÓW NAUKI INFORMATYKI ACM/IEEE I INŻYNIERII KOMPUTEROWEJ
Książka jest przeznaczona zarówno dla odbiorców akademickich, jak i profesjonalnych. Jako podręcznik jest przeznaczony na jedno- lub dwusemestralne studia licencjackie na kierunkach informatyka, inżynieria komputerowa i elektryczna. To wydanie jest zgodne z zaleceniami programu nauczania informatyki ACM/IEEE 2013 (CS2013). Godnie z CS2013 zawartość kursu została podzielona na trzy kategorie: poziom 1 (wszystkie tematy powinny być uwzględnione w programie nauczania), poziom 2 (należy uwzględnić wszystkie lub prawie wszystkie tematy) oraz tematy do wyboru (pożądane, by zapewnić poszerzenie wiedzy). Zakres wiedzy w dziedzinie architektura i organizacja według standardu CS2013 obejmuje pięć tematów poziomu 2 i trzy tematy do wyboru, z których każdy ma kilka podtematów. Tekst tej książki obejmuje wszystkie osiem tematów wymienionych w CS2013. W tabeli P.1 przedstawiono pokrycie dla zakresu wiedzy architektura i organizacja zawartego w tym podręczniku. Książka ta obejmuje również program nauczania inżynierii komputerowej ACM/IEEE 2016 (CE2016). CE2016 definiuje niezbędny zasób wiedzy dla poziomu licencjatu w zakresie inżynierii komputerowej, podzielony na dwanaście obszarów. Jednym z tych obszarów jest architektura i organizacja komputerów (CE-CAO), składająca się z dziesięciu kluczowych obszarów wiedzy. Tekst książki obejmuje wszystkie obszary wiedzy CE-CAO wymienione w CE2016. W tabeli P.2 przedstawiono pokrycie tego zakresu wiedzy.
TABELA P.1. Zakres wiedzy CS2013 architektura i organizacja
Jednostki wiedzy IAS
Tematy
Rozdziały w książce
Logika cyfrowa i systemy cyfrowe (poziom 2)
• Przegląd i historia architektury komputerowej.
• Układy logiczne kombinowane a układy logiczne sekwencyjne/macierze bramek programowalnych przez użytkownika jako podstawowy element składowy kombinacyjnej logiki sekwencyjnej.
• Wiele reprezentacji/warstw interpretacji (sprzęt to tylko kolejna warstwa).
• Ograniczenia fizyczne (opóźnienia bramki, obciążalność wejściowa i wyjściowa, energia/moc).
Rozdział 1
Rozdział 12
Reprezentacja danych na poziomie maszyny (poziom 2)
• Bity, bajty i słowa.
• Numeryczna reprezentacja danych i systemy liczbowe.
• Systemy stało- i zmiennoprzecinkowe.
• Notacja ze znakiem i uzupełnienia do dwóch.
• Reprezentacja danych nienumerycznych (kody znaków, dane graficzne).
Rozdział 10
Rozdział 11
Organizacja komputera na poziomie podstawowym (poziom 2)
• Podstawowa organizacja maszyny von Neumanna.
• Jednostka sterująca, pobieranie, dekodowanie i wykonywanie rozkazów.
• Listy i rodzaje rozkazów (operacje na danych, sterowanie, we-wy).
• Programowanie w asemblerze/języku maszynowym.
• Formaty rozkazów.
• Tryby adresowania.
• Mechanizmy wywoływania i powrotu z podprogramów (język PL/1, tłumaczenie i wykonywanie)
• We-wy i przerwania.
• Wieloprocesory z pamięcią współdzieloną/organizacja wielordzeniowa.
• Wprowadzenie do porównania SIMD i MIMD oraz taksonomii Flynna.
Rozdział 1
Rozdział 8
Rozdział 13
Rozdział 14
Rozdział 15
Rozdział 19
Rozdział 20
Rozdział 21
Organizacja i architektura systemu pamięci
(poziom 2)
• Systemy przechowywania i ich technologia.
• Hierarchia pamięci: lokalność czasowa i przestrzenna.
• Organizacja i operacje w pamięci głównej.
• Opóźnienie, czas cyklu, przepustowość i przeplot.
• Pamięć podręczna (odwzorowywanie adresu, rozmiar bloku, zasady wymiany i przechowywania).
• Spójność pamięci podręcznej wieloprocesorów, stosowanie systemów pamięci do synchronizacji między rdzeniami, operacje natychmiastowe pamięci.
• Pamięć wirtualna (tablica stron, TLB).
• Obsługa usterek i niezawodność.
Rozdział 4
Rozdział 5
Rozdział 6
Rozdział 7
Rozdział 9
Rozdział 20
Interfejsy i komunikacja
(poziom 2)
• Podstawy we-wy: uzgadnianie, buforowanie, programowane we-wy, we-wy sterowane przerwaniami.
• Struktury przerwań: wektorowe i priorytetowe, potwierdzanie przerwań.
• Pamięć zewnętrzna, organizacja fizyczna i dyski.
• Magistrale: protokoły magistrali, arbitraż, bezpośredni dostęp do pamięci (DMA).
• Architektury RAID.
Rozdział 3
Rozdział 7
Rozdział 8
Organizacja funkcjonalna (obieralny)
• Implementacja prostych ścieżek danych, w tym przetwarzanie potokowe rozkazów, wykrywanie zagrożeń i rozwiązywanie.
• Jednostka sterująca: realizacja sprzętowa i mikroprogramowa.
• Przetwarzanie potokowe rozkazów.
• Wprowadzenie do równoległości na poziomie rozkazu (ILP, ang. instruction-level parallelism).
Rozdział 16
Rozdział 17
Rozdział 18
Rozdział 19
Architektury wieloprocesorowe i alternatywne (obieralny)
• Przykładowe listy rozkazów SIMD i MIMD oraz
• architektury.
• Sieci połączeń wzajemnych.
• Współdzielona pamięć w systemach wieloprocesorowych i spójność pamięci.
• Spójność pamięci podręcznej w systemach wieloprocesorowych.
Rozdział 20
Rozdział 21
Ulepszenia wydajności (obieralny)
• Architektura superskalarna.
• Przewidywanie rozgałęzień, wykonanie spekulatywne, wykonanie poza kolejnością.
• Pobieranie wstępne.
• Procesory wektorowe i GPU.
• Wsparcie sprzętowe dla wielowątkowości.
• Skalowalność.
Rozdział 17
Rozdział 18
Rozdział 20
TABELA P.2. Zakres wiedzy architektura i organizacja komputerów CE2016
---------------------------------------------------------------- ---------------------------------------------------------------------------------------
Jednostki wiedzy Rozdziały w książce
Historia i przegląd Rozdział 1 — Podstawowe pojęcia i ewolucja komputerów
Odpowiednie narzędzia, standardy i/lub inżynieria ograniczenia Rozdział 3 — Widok najwyższego poziomu na działanie i połączenia wewnętrzne komputera
Architektura zestawu instrukcji Rozdział 13 — Listy rozkazów: cechy i funkcje
Rozdział 14 — Listy rozkazów instrukcji: tryby i formaty adresowania
Rozdział 15 — Język asemblera i tematy pokrewne
Pomiar wydajności Rozdział 2 — Koncepcje wydajności
Arytmetyka komputerowa Rozdział 10 — Systemy liczbowe
Rozdział 11 — Arytmetyka komputera
Organizacja procesora Rozdział 16 — Struktura i działanie procesora
Rozdział 17 — Komputery z zredukowaną listą rozkazów
Rozdział 18 — Równoległość na poziomie rozkazu i procesory superskalarne
Rozdział 19 — Działanie jednostki sterującej i sterowanie za pomocą mikroprogramu
Organizacja systemu pamięci i architektury Rozdział 4 — Hierarchia pamięci: lokalność i wydajność
Rozdział 5 — Pamięć podręczna
Rozdział 6 — Pamięć wewnętrzna
Rozdział 7 — Pamięć zewnętrzna
Interfejs wejścia/wyjścia i komunikacja Rozdział 8 — Wejście/wyjście
Podsystemy peryferyjne Rozdział 3 — Widok najwyższego poziomu na działanie i połączenia wewnętrzne komputera
Rozdział 8 — Wejście/wyjście
Architektury wielordzeniowe/wielordzeniowe Rozdział 21 — Komputery wielordzeniowe
Architektury systemów rozproszonych Rozdział 20 — Przetwarzanie równoległe
---------------------------------------------------------------- ---------------------------------------------------------------------------------------
CELE
Niniejsza książka, która dotyczy budowy i funkcjonowania komputerów, ma na celu jak najjaśniejsze i najpełniejsze przedstawienie natury i cech współczesnego systemu komputerowego.
Z kilku powodów jest to trudne zadanie. Po pierwsze, istnieje ogromna różnorodność produktów, które mogą całkiem słusznie zostać nazywane komputerem, od jednoukładowych mikroprocesorów za kilka dolarów do superkomputerów kosztujących dziesiątki milionów dolarów. Różnorodność przejawia się nie tylko w kwestii kosztów, ale dotyczy także wielkości, wydajności oraz zastosowania. Drugim z powodów jest szybkie i nieustanne tempo zmian, które zawsze charakteryzowało technologię komputerową. Zmiany te obejmują wszystkie aspekty technologii komputerowej, od podstawowej technologii układów scalonych, wykorzystywanej do konstruowania komponentów komputerowych, po coraz częstsze stosowanie koncepcji organizacji równoległych w łączeniu tych komponentów.
Pomimo różnorodności i tempa zmian w dziedzinie komputerów pewne podstawowe rozwiązania są ciągle konsekwentnie używane. Zastosowanie tych koncepcji zależy jednak od aktualnego stanu technologicznego oraz założeń projektowych dotyczących relacji ceny do wydajności. Intencją tej książki jest dokładne omówienie podstaw organizacji i architektury komputerów oraz odniesienie ich do współczesnych zagadnień projektowych.
Już sam podtytuł książki może sugerować temat i podejście przyjęte w tej książce. Zawsze było istotne, by projektować systemy komputerowe o wysokiej wydajności, jednak nigdy ten wymóg nie był tak ważny i jednocześnie trudny do spełnienia jak obecnie. Wszystkie podstawowe charakterystyki wydajności systemów komputerowych, w tym szybkość procesora, szybkość pamięci, pojemność pamięci i szybkości transmisji danych wzajemnych połączeń, gwałtownie rosną. Co więcej, rosną w różnym tempie. Utrudnia to zaprojektowanie zrównoważonego systemu, który maksymalizuje wydajność i wykorzystanie wszystkich komponentów. W ten sposób projektowanie komputerów staje się coraz bardziej grą polegającą na zmianie struktury lub funkcjonowania w jednym obszarze tak, aby zrekompensować niedopasowanie wydajności w innej dziedzinie. Zagadnienie to omówiono w książce na przykładach dotyczących wielu decyzji projektowych.
System komputerowy, jak każdy inny system, składa się z powiązanych ze sobą zestawów komponentów. System można najlepiej scharakteryzować, określając jego strukturę, czyli sposób, w jaki elementy są ze sobą połączone, oraz funkcjonowanie, czyli działania poszczególnych komponentów. Co więcej, należy pamiętać, że struktura komputera jest hierarchiczna. Każdy główny komponent można opisać bardziej szczegółowo, rozkładając go na istotne elementy składowe i opisując ich strukturę oraz funkcjonowanie. W celu zachowania przejrzystości i przystępności struktura hierarchiczna została opisana „od góry do dołu”:
• SYSTEM KOMPUTEROWY: główne komponenty to procesor, pamięć i urządzenia we-wy.
• PROCESOR: główne komponenty to jednostka sterująca, rejestry, jednostka arytmetyczno-logiczna i jednostka wykonująca rozkazy.
• JEDNOSTKA STERUJĄCA: dostarcza sygnały sterujące do obsługi i koordynacji wszystkich elementów procesora. Tradycyjne podejście wdrożenia jednostki sterującej opierało się na mikroprogramowaniu, w którym głównymi komponentami są pamięć sterowania, zespół szeregowania mikroinstrukcji oraz rejestry. Ostatnio jest to podejście rzadko stosowane, pozostaje jednak ciągle ważną techniką wdrażania.
Autorowi bardzo zależało na zaprezentowaniu materiału w sposób przejrzysty i czytelny, aby zminimalizować ryzyko zgubienia się czytelnika oraz zapewnić lepszą motywację niż podejście oddolne.
W trakcie dyskusji aspekty systemu zostały rozpatrzone z punktu widzenia zarówno architektury (czyli atrybutów systemu widocznych dla programującego w języku maszynowym), jak i organizacji (czyli jednostek operacyjnych i ich wzajemnych połączeń tworzących architekturę).
PRZYKŁADOWE SYSTEMY
Ten tekst ma na celu zapoznanie czytelnika z zasadami projektowania i problemami implementacji współczesnych systemów operacyjnych. W związku z tym podeście czysto koncepcyjne lub teoretyczne byłoby niewystarczające. Zatem w celu zilustrowania koncepcji i powiązania ich z rzeczywistymi decyzjami projektowymi, jako omawiane przykłady, wybrano dwie rodziny procesorów:
• ARCHITEKTURA INTEL X86: Architektura x86 jest najpowszechniej stosowana w niewbudowanych systemach komputerowych. x86 jest zasadniczo komputerem ze złożoną listą rozkazów (CISC) z pewnymi funkcjonalnościami RISC. Ostatni przedstawiciele rodziny x86 korzystają z superskalarnych i wieloprocesorowych zasad projektowania. Ewolucja funkcjonalności architektury x86 dostarcza unikalnego studium przypadku ewolucji większości zasad projektowania w architekturze komputerowej.
• ARM: Architektura ARM jest prawdopodobnie najczęściej używanym procesorem wbudowanym, który jest używany w telefonach komórkowych, iPodach, zdalnych czujnikach i wielu innych urządzeniach. ARM jest zasadniczo komputerem o zredukowanej liście rozkazów (RISC). Ostatni przedstawiciele rodziny ARM korzystają z superskalarnych i wielordzeniowych zasad projektowania.
Wiele przykładów, ale nie wszystkie zaprezentowane w tej książce, pochodzi z tych dwóch rodzin komputerów. Wiele innych systemów zarówno współczesnych, jak i historycznych może być równie istotnymi przykładami cech projektowych architektury komputerowej.
UKŁAD TEKSTU
Książka została podzielona na sześć części:
• Wprowadzenie.
• System komputerowy.
• Arytmetyka i logika.
• Zestawy instrukcji i język asemblera.
• Jednostka centralna.
• Organizacja równoległa, w tym wielordzeniowa.
Książka zawiera szereg metod pedagogicznych, w tym wykorzystanie interaktywnych symulacji oraz liczne rysunki i tabele w celu zobrazowania dyskusji. Każdy rozdział zawiera listę podstawowych pojęć, pytań sprawdzających i zadań domowych. Książka zawiera również obszerny słowniczek, listę często używanych akronimów oraz bibliografię.
MATERIAŁY WSPOMAGAJĄCE DLA DYDAKTYKÓW
Materiały pomocnicze dla dydaktyków są dostępne w INSTRUCTOR RESOURCE CENTER (IRC) tego podręcznika, do którego można uzyskać dostęp za pośrednictwem witryny internetowej wydawcy www.pearson.com/stallings. W celu uzyskania dostępu do IRC prosimy o kontakt z lokalnym przedstawicielem handlowym Pearson poprzez stronę www.pearson.com/replocator. IRC udostępnia następujące materiały:
• PODRĘCZNIK PROJEKTÓW: zasoby projektowe, w tym dokumenty i oprogramowanie przenośne, a także sugerowane tematy projektów dla wszystkich kategorii projektów wymienionych w dalszej części przedmowy.
• PODRĘCZNIK ROZWIĄZAŃ: rozwiązania zadań umieszczonych na końcu każdego rozdziału.
• SLAJDY POWERPOINT: zestaw prezentacji obejmujących wszystkie rozdziały, które można wykorzystać podczas wykładów.
• PLIKI PDF: kopie wszystkich rysunków i tabel z książki.
• ZBIÓR TESTÓW: zestaw pytań do każdego z rozdziałów.
• PRZYKŁADOWE SYLABUSY: tekst zawiera więcej materiału, niż można wygodnie przerobić w ciągu jednego semestru. W związku z tym dydaktycy mogą wykorzystać kilka przykładowych programów nauczania przeznaczonych do wykorzystania tekstu w ograniczonym czasie. Te programy zostały oparte na rzeczywistych doświadczeniach profesorów z pierwszym wydaniem tej książki.
ZASOBY STUDENCKIE
W nowym wydaniu udostępniono online ogromną ilość oryginalnych materiałów pomocniczych z przeznaczeniem dla studentów. Witryna internetowa COMPANION, znajdująca się pod adresem www.pearson.com/stallings, zawiera listę odnośników uporządkowanych według rozdziałów oraz arkusz erraty do tej książki. W celu ułatwienia studentom zrozumienia materiału zamieszczono tam także osobny zestaw zadań domowych wraz z rozwiązaniami. Studenci mogą zwiększyć swoje zrozumienie materiału przez: wypracowanie rozwiązań tych problemów, a następnie sprawdzenie własnych odpowiedzi. Witryna zawiera również szereg dokumentów i artykułów, do których odwołuje się tekst.
PROJEKTY I INNE ĆWICZENIA STUDENTÓW
Dla wielu dydaktyków ważnym elementem nauczania organizacji i architektury komputerowej jest wykonanie projektu lub zestaw projektów, dzięki którym student zdobywa praktyczne doświadczenie. Ta książka zapewnia niezrównany poziom wsparcia na potrzeby włączenia komponentu projektu do kursu nauczania. Materiały pomocnicze dydaktyka dostępne za pośrednictwem IRC zawierają nie tylko wskazówki dotyczące przydzielania i struktury projektów, ale także zestaw podręczników dla różnych typów projektów oraz konkretnych zadań, wszystkie napisane specjalnie na potrzeby tej książki. Dydaktycy mogą przypisywać pracę w następujących obszarach:
• SYMULACJE INTERAKTYWNE: opisane w dalszej części.
• PROJEKTY BADAWCZE: seria zadań badawczych, które instruują studenta, by zbadał określony temat w internecie i napisał na ten temat raport.
• PROJEKTY SYMULACYJNE: IRC zapewnia obsługę dwóch pakietów symulacyjnych. SimpleScalar może być używany do badania zagadnień związanych z organizacją i architekturą komputerów. SMPCache zapewnia potężne narzędzie edukacyjne do badania problemów z projektowaniem pamięci podręcznej dla wieloprocesorowości symetrycznej.
• PROJEKTY W JĘZYKU ASEMBLERA: używany jest uproszczony język asemblera, CodeBlue, a zadania zostały oparte na popularnej koncepcji Core Wars.
• ZADANIA DO CZYTANIA/RAPORTOWANIA: lista artykułów, po jednym lub więcej na każdy rozdział, które można przydzielić studentom do przeczytania, a następnie napisania krótkiego raportu.
• ZADANIA OPISOWE: lista zadań pisemnych ułatwiająca naukę materiału.
• ZBIÓR TESTÓW: Obejmuje testy prawda/fałsz, wielokrotnego wyboru oraz pytania i odpowiedzi do wypełnienia.
Taki zróżnicowany zestaw projektów i innych ćwiczeń dla studentów umożliwia dydaktykom wykorzystanie książki jako jednego elementu bogatego i zróżnicowanego doświadczenia edukacyjnego oraz dostosowanie koncepcji kursu do specyficznych potrzeb dydaktyka i studentów.
SYMULACJE INTERAKTYWNE
Ważną cechą tej edycji jest włączenie interaktywnych symulacji. Symulacje te stanowią potężne narzędzie do zrozumienia złożonych cech projektowych nowoczesnych systemów komputerowych. Do zilustrowania kluczowych funkcjonalności i algorytmów w organizacji i projektowaniu architektury komputerów wykorzystano łącznie 20 interaktywnych symulacji. W odpowiednim miejscu książki umieszczono ikony wskazujące, że odpowiednia interaktywna symulacja jest dostępna dla studentów online. Ponieważ animacje umożliwiają użytkownikowi ustawienie warunków początkowych, mogą służyć jako podstawa do zadań studenckich. Suplement dla dydaktyków zawiera zestaw zadań, po jednym dla każdej z animacji. Każde zadanie dotyczy kilku konkretnych problemów, które można przypisać studentom.
PODZIĘKOWANIE
Do powstania nowego wydanie przyczyniło się wiele osób, które hojnie poświęciły swój czas i wiedzę. Recenzji całej książki dokonali następujący profesorowie: Nikhil Bhargava (Indian Institute of Management, Delhi), James Gil de Lamadrid (Bowie State University, Computer Science Department), Debra Calliss (Computer Science and Engineering, Arizona State University), Mohammed Anwaruddin (Wentworth Institute of Technology, Dept. of Computer Science), Roger Kieckhafer (Michigan Technological University, Electrical & Computer Engineering), Paul Fortier (University of Massachusetts Darthmouth, Electrical and Computer Engineering), Yan Zhang (Department of Computer Science and Engineering, University of South Florida), Patricia Roden (University of North Alabama, Computer Science and Information Systems), Sanjeev Baskiyar (Auburn University, Computer Science and Software Engineering) oraz Jayson Rock (University of Wisconsin-Milwaukee, Computer Science). Chciałbym szczególnie podziękować profesorowi Rogerowi Kieckhaferowi za zgodę na wykorzystanie niektórych rysunków i modeli demonstracyjnych z jego notatek z wykładów.
Dziękuję również wielu osobom, które dostarczyły szczegółowych recenzji technicznych jednego lub więcej rozdziałów: Rekai Gonzalez Alberquilla, Allen Baum, Jalil Boukhobza, Dmitry Bufistov, Humberto Calderón, Jesus Carretero, Ashkan Eghbal, Peter Glaskowsky, Ram Huggahalli, Chris Jesshope, Athanasios Kakarountas , Isil Oz, Mitchell Poplingher, Roger Shepherd, Jigar Savla, Karl Stevens, Siri Uppalapati, dr Sriram Vajapeyam, Kugan Vivekanandarajah, Pooria M. Yaghini i Peter Zeno.
Profesor Cindy Norris z Appalachian State University, profesor Bin Mu z University of New Brunswick i profesor Kenrick Mock z University of Alaska uprzejmie dostarczyli zadania dotyczące prac domowych.
Aswin Sreedhar z University of Massachusetts opracował interaktywne zadania symulacyjne.
Profesor Miguel Angel Vega Rodriguez, profesor dr Juan Manuel Sánchez Pérez i profesor dr Juan Antonio Gómez Pulido, wszyscy z University of Extremadura w Hiszpanii, przygotowali zadania SMPCache zamieszczone w podręczniku dla dydaktyków oraz byli autorami podręcznika dla użytkowników SMPCache.
Todd Bezenek z University of Wisconsin i James Stine z Lehigh University przygotowali zadania dotyczące SimpleScalar zamieszczone w podręczniku dla dydaktyków, a Todd jest również autorem podręcznika dla użytkowników SimpleScalar.
Na koniec chciałbym podziękować wielu osobom odpowiedzialnym za wydanie książki, za ich doskonałą pracę. Dotyczy to pracowników Pearson, w szczególności mojej redaktorki Tracy Johnson, jej asystentki Meghan Jacoby i kierownika projektu Boba Engelhardta. Dziękuję także działom marketingu i sprzedaży w firmie Pearson, bez których wysiłków ta książka nie znalazłaby się w rękach czytelnikaO AUTORZE
DOKTOR WILLIAM STALLINGS jest autorem 18 podręczników oraz, licząc wydania poprawione, ponad 70 książek o bezpieczeństwie komputerowym, sieciach komputerowych i architekturze komputerowej. W ciągu ponad 30 lat działalności w tej dziedzinie był współpracownikiem technicznym, kierownikiem technicznym i dyrektorem w kilku firmach zajmujących się zaawansowanymi technologiami. Obecnie jest niezależnym konsultantem, którego klientami są producenci komputerów i rozwiązań sieciowych oraz ich klienci, firmy tworzące oprogramowanie oraz wiodące, rządowe instytucje badawcze. Autor trzynastokrotnie otrzymał nagrodę za najlepszy podręcznik informatyczny roku od Text and Academic Authors Association.
Autor stworzył i ciągle utrzymuje stronę internetową przeznaczoną dla studentów informatyki, zamieszczoną pod adresem ComputerScienceStudent.com. Ta witryna zawiera dokumenty i odnośniki na różne tematy, które mogą być przedmiotem ogólnego zainteresowania studentów informatyki, a także profesjonalistów. Jest członkiem rady redakcyjnej czasopisma naukowego _Cryptologia_, poświęconego wszystkim aspektom dotyczącym kryptologii.
Doktor Stallings posiada doktorat z informatyki uzyskany na MIT oraz licencjat z zakresu inżynierii elektrycznej uzyskany w Notre Dame.PRZYPISY
Rozdziały 13–21 znajdują się w tomie II.
1 kB = 1 kilobajt = 1024 bajtów. Przedrostki numeryczne zostały wyjaśnione w dokumencie w zakładce „OtherUseful” na stronie ComputerScienceStudent.com.
Raport z 1945 roku dotyczący EDVAC jest dostępny pod adresem box.com/COA11e.
Raport 3A 1954 opisujący zaimplementowaną maszynę IAS oraz zawierający ostateczną listę rozkazów. Jest dostępny pod adresem box.com/COA11e.
W tej książce, o ile nie zaznaczono inaczej, termin _rozkaz_ odnosi się do rozkazu maszynowego, który jest bezpośrednio interpretowany i wykonywany przez procesor, w przeciwieństwie do instrukcji w językach wysokiego poziomu, jak na przykład Ada lub C++, które przed wykonaniem muszą być najpierw skompilowane do szeregu rozkazów maszynowych.
Nie istnieje uniwersalna definicja _słowa_. Ogólnie rzecz biorąc, słowo to uporządkowany zestaw bajtów lub bitów, który jest normalną jednostką, w której rozkazy mogą być przechowywane, przesyłane lub obsługiwane w danym komputerze. Zazwyczaj, jeśli procesor ma listę rozkazów o stałej długości, to długość rozkazu jest równa długości słowa.
Zauważ, że oś pionowa jest w skali logarytmicznej. Podstawowe omówienie skali logarytmicznych można znaleźć na witrynie z zasobami dla studentów informatyki na stronie ComputerScienceStudent.com.
Intel określa to jako _tick-tock model_. Korzystając z tego modelu, firma Intel z powodzeniem wytwarzała technologię krzemową nowej generacji, a także nową mikroarchitekturę procesorów na przemian w ciągu ostatnich kilku lat. Zobacz http://www.intel.com/content/www/us/en/silicon-innovations/intel-tick-tockmodel-general.html.
Firma zrezygnowała z oznaczenia Advanced RISC Machines pod koniec lat 90. ubiegłego wieku. Obecnie jest teraz po prostu znana jako architektura ARM.
Statyczna pamięć RAM (SRAM) to forma pamięci o dostępie swobodnym, która jest używana jako pamięć podręczna. Więcej na ten temat można znaleźć w rozdziale 6.
Pamięć flash to uniwersalna forma pamięci stosowana zarówno w mikrokontrolerach, jak i jako pamięć zewnętrzna. Więcej na ten temat można znaleźć w rozdziale 7.