Morris Mano cz1, STUDIA, Technika cyfrowa
[ Pobierz całość w formacie PDF ]
SPIS TREŚCI
PRZEDMOWA
9
CYFROWE UKŁADY LOGICZNE
13
1.1. Bramki logiczne
...
13
1.2. Algebra Boole'a
17
1.3. Upraszczanie funkcji za pomocą tablic Karnaugha
20
1.4. Układy kombinacyjne
26
1.5. Przerzutniki
31
1.6. Układy sekwencyjne
36
1.7. Uwagi końcowe
44
Literatura
45
Zadania
45
2. UKŁADY SCALONE I FUNKCJE CYFROWE
48
2.1. Cyfrowe układy scalone
48
2.2. Przerzutniki i rejestry jako układy scalone
55
2.3. Dekodery i multipleksery
59
2.4. Liczniki dwójkowe
63
2.5. Rejestry przesuwające
68
2.6. Pamięci o dostępie swobodnym (RAM)
72
2.7. Pamięci stałe (ROM) .
78
2.8. Wykaz funkcji cyfrowych realizowanych w układach scalonych
81
Literatura
82
Zadania
83
3. PRZEDSTAWIANIE DANYCH
85
3.1. Rodzaje danych
85
3.2. Reprezentacja stałopozycyjna
92
3.3. Reprezentacja zmiennopozycyjna
98
3.4. Inne kody dwójkowe
. . .
100
3.5. Kody z wykrywaniem błędów
104
Literatura
106
Zadania
106
4. PRZESŁANIA MIĘDZYREJESTROWE I MIKROOPERACJE
110
4.1. Język przesłań międzyrejestrowych
110
4.2. Przesłania międzyrejestrowe
111
4.3. Mikrooperacje arytmetyczne
120
4.4. Mikrooperacje logiczne
125
4.5. Mikrooperacje przesuwania
133
Spis treści
92.
Porównywanie i odejmowanie liczb dwójkowych ba znaku
308
93.
Algorytmy dodawania i odejmowania
313
9.4. Algorytm mnożenia
316
9.5. Algorytm dzielenia
319
9.6. Konfiguracja procesora
325
9.7. Projektowanie sterowania
328
9.8. Kalkulator mikroprogramowany
331
Literatura
339
Zadania
340
10. ALGORYTMY ARYTMETYCZNE
342
10.1. Wprowadzenie
342
10.2. Nadmiar przy dodawaniu
344
10.3. Mnożenie i dzielenie
346
10.4. Operacje arytmetyczne na liczbach zmiennopozycyjnych
351
10.5. Operacje arytmetyczne na liczbach dziesiętnych
361
10.6. Konwersja dziesiętno-dwójkowa
367
10.7. Uwagi końcowe
373
Zadania
374
ORGANIZACJA WEJŚCIA-WYJŚCIA
378
11.1. Urządzenia zewnętrzne
378
11.2. Sprzęg wejścia-wyjścia
382
11.3. Sprzęg szeregowy asynchroniczny
388
11.4. Bezpośredni dostęp do pamięci
394
11.5. Przerwanie priorytetowe
397
11.6. Procesor zewnętrzny
405
11.7. Procesor komunikacyjny
410
Literatura
416
Zadania
416
ORGANIZACJA PAMIĘCI
419
12.1. Hierarchia pamięci
419
12.2. Pamięć pomocnicza
422
12.3. Organizacja magistrali pamięci
425
12.4. Pamięć asocjacyjna
428
12.5. Pamięć wirtualna
434
12.6. Uwagi końcowe
441
Literatura
442
Zadanial
442
SKOROWIDZ
444
Sandrze, Susie i Robinowi
PRZEDMOWA
Terminu
architektura komputerów
używa się zwykle do określenia organizacji i kon
strukcji maszyn cyfrowych. Zagadnienie to jest przedmiotem zainteresowania in
żynierów elektroników zajmujących się projektowaniem układów logicznych kom
puterów i informatyków wykonujących ich oprogramowanie. Komputer składa się
z układów logicznych i oprogramowania. Część układowa, tzw. sprzęt, składa się
z elementów fizycznych i całego związanego z nimi wyposażenia. Oprogramowaniem
jest zbiór programów, umożliwiających skuteczne stosowanie komputera. W książce
skoncentrowano się głównie na aspektach sprzętowych komputera, ale uwzględniono
także wpływ oprogramowania na jego architekturę.
Architekturę komputera tworzy się przy użyciu układów scalonych jako podstawo
wych elementów składowych. Układy o średnim stopniu scalenia (MSI) umożliwiają
konstruowanie urządzeń realizujących funkcje cyfrowe, dzięki natomiast układom
o dużym stopniu scalenia (LSI) można konstruować całe moduły komputera. Naj
większą zaletą tych urządzeń są ich bardzo małe rozmiary. Pojawienie się układów
scalonych MSI i LSI umożliwiło projektantom tworzenie nowych struktur uważa
nych poprzednio za niepraktyczne lub nieekonomiczne. Jest rzeczą niezmiernie
ważną, by projektant znał różnorodne funkcje cyfrowe realizowane zazwyczaj
przez układy scalone. Z tego względu w książce przedstawiono ponad 30 różnych
układów scalonych MSI i LSI, podając ich charakterystyki wewnętrzne i zewnętrzne.
Sposób łączenia cyfrowych układów scalonych najlepiej jest opisać symbolicznie
za pomocą języka przesłań międzyrejestrowych. Taki język przedstawiono w książce,
przy czym wyjaśniono jego związek z organizacją układową i projektowaniem
komputerów. Języka przesłań międzyrejestrowych używa się przy wielu okazjach
do określenia w zwięzły i precyzyjny sposób różnych operacji komputerowych.
Zasadniczym warunkiem zrozumienia omawianych tu zagadnień jest przygotowa
nie techniczne lub naukowe oraz zainteresowanie poznaniem wewnętrznej organi
zacji komputerów. Do zrozumienia niektórych przedstawionych rozwiązań sprzęto
wych jest niezbędna elementarna wiedza o systemach cyfrowych. Pewne doświad
czenie w programowaniu bądź w języku wewnętrznym maszyny, bądź w języku
wyższego rzędu, ułatwi lepsze zrozumienie zasad tworzenia oprogramowania.
Książka ma układ, w którym stopniuje się trudność zagadnień. W pierwszych sześciu
rozdziałach omówiono zagadnienia niezbędne do zrozumienia organizacji, projekto
wania i programowania prostego komputera. W pozostałych sześciu rozdziałach
10
Przedmowa
przedstawiono oddzielne jednostki funkcjonalne komputera, ze szczególnym uwzględ
nieniem bardziej skomplikowanych, nie poruszanych na początku zagadnień.
W rozdziale 1 przedstawiono podstawowe wiadomości potrzebne do projektowania
systemów cyfrowych w przypadku, gdy się je tworzy przy użyciu pojedynczych
bramek i przerzutników. Omówiono algebrę Boole'a, układy kombinacyjne i układy
sekwencyjne. Przedstawienie tego tematu ograniczono do jednego rozdziału, żeby
nadmiernie nie powiększać książki. Uzasadnieniem takiego postępowania jest fakt,
że projektowanie komputerów w przypadku zastosowania układów scalonych
różni się zasadniczo od projektowania przy użyciu pojedynczych bramek i przerzut
ników. Materiał zawarty w pierwszym rozdziale zawiera podstawy niezbędne do
zrozumienia przedstawionych w książce systemów cyfrowych.
Rozdział 2 rozpoczyna się od przeglądu podstawowych właściwości układów scalo
nych. Omówiono w nim szczegółowo niektóre z podstawowych układów MSI, takie
jak rejestry, liczniki, dekodery, multipleksery, pamięci o dostępie swobodnym
i pamięci stałe. W następnych rozdziałach przedstawiono metody tworzenia z tych
układów większych jednostek. W ostatnim podrozdziale podano listę ponad dwu
dziestu innych układów MSI i LSI, z których korzysta się w dalszej części książki.
W rozdziale 3 omówiono różne rodzaje danych spotykanych w komputerach i po
kazano sposób ich dwójkowej reprezentacji w rejestrach komputera. Szczególną
uwagę zwrócono na postać zapisu liczb stosowaną w obliczeniach arytmetycznych
i na dwójkowe kodowanie symboli, takich jak litery alfabetu używane przy przetwa
rzaniu danych lub innych symboli spotykanych w zastosowaniach specjalnych.
W rozdziale 4 zdefiniowano język przesłań międzyrejestrowych i pokazano, w jaki
sposób używa się go do wyrażenia w postaci symbolicznej sekwencji mikrooperacji
dokonywanych na zawartości rejestrów komputera. Zdefiniowano symbole mikro
operacji arytmetycznych, logicznych i przesuwania, a także funkcji sterujących
inicjalizujących mikrooperacje. Dużą część rozdziału zajmuje opis układów realizu
jących operacje przedstawione za pomocą symboli i instrukcji przesłań między
rejestrowych.
W rozdziale 5 przedstawiono organizację i projektowanie prostego komputera.
Chociaż komputer ten jest prosty w porównaniu z używanymi w praktyce, to jednak
ma dostatecznie dużo możliwości funkcjonalnych, by zademonstrować skuteczność
działania urządzenia uniwersalnego z zapamiętywanym programem. Do określenia
wewnętrznego działania komputera i podania wymagań projektowych używa się
języka przesłań międzyrejestrowych.
W rozdziale 6 zilustrowano za pomocą 25 rozkazów prostego komputera, zdefinio
wanych w rozdziale 5, wiele technik powszechnie stosowanych przy programowaniu
komputera. Dla wielu podstawowych zadań przetwarzania danych podano przy
kłady programowania w języku symbolicznym. Na przykładach wyjaśniono zależ
ności między programami w postaci dwójkowej, programami napisanymi w języku
symbolicznym i w językach wyższego rzędu. To spowodowało konieczność wpro
wadzenia programów tłumaczących, takich jak asemblery i kompilatory. Działanie
asemblera przedstawiono razem z innymi programami systemowymi. Celem tego
Przedmowa
11
rozdziału jest przedstawienie podstawowych zasad tworzenia oprogramowania
komputera bez wnikania w szczegóły. Znajomość tych zasad w połączeniu ze zna
jomością układów logicznych powinna dać Czytelnikowi ogólny pogląd na cały
komputer złożony ze sprzętu i oprogramowania.
W rozdziale 7 omówiono jednostkę centralną komputera. Przeanalizowano jedno
stkę centralną zorganizowaną za pomocą systemu magistral i jednostkę arytmetycz-
no-logiczną. Przedstawiono jednostki arytmetyczne, zarówno dwójkowe, jak i dzie
siętne. Opisano różne struktury kodu rozkazu wraz z różnorodnymi rodzajami
adresowania. Wyjaśniono organizację stosu pamięci i pokazano kilka jego zasto
sowań. W ostatnim punkcie rozdziału wprowadzono pojęcie mikroprocesora, będą
cego w zasadzie jednostką centralną zrealizowaną za pomocą jednego lub kilku
układów scalonych LSI. Rozwój mikroprocesorów zrewolucjonizował technikę
komputerową. Chociaż książka nie jest poświęcona mikroprocesorom, zawiera
jednak podstawowe pojęcia potrzebne do zrozumienia ich działania, dzięki czemu
Czytelnik ma podstawy techniczne umożliwiające zrozumienie działania każdego
konkretnego mikroprocesora przy użyciu podręczników dostarczanych przez pro
ducenta.
W rozdziale 8 wprowadzono pojęcie mikroprogramowania. W celu pokazania na
przykładzie, w jaki sposób utworzyć mikroprogram dla typowego zestawu roz
kazów komputera opracowano specjalną, mikroprogramową jednostkę sterującą.
W rozdziale tym przedyskutowano różne metody używania pamięci sterującej do
inicjalizowania funkcji sterujących i do określania sekwencji adresów mikroroz-
kazów. W ostatnim punkcie omówiono zalety i zastosowania mikroprogramowania.
Rozdział 9 poświęcono projektowaniu arytmometru. Przedstawiono w nim algorytmy
dodawania, odejmowania, mnożenia i dzielenia liczb dwójkowych stałopozycyjnych
w zapisie znak-moduł. Następnie pokazano metodę projektowania arytmometru
przy użyciu języka przesłań międzyrejestrowych, a także zestawienie arytmometru
z komputerem zaprojektowanym w rozdz. 5. Celem przedstawienia metody mikro
programowania operacji arytmetycznych użyto kalkulatora dwójkowego. Ten
sposób realizacji operacji arytmetycznych porównano z realizacją układową i pro
gramową tych samych operacji.
W rozdziale 10 przedstawiono pozostałe algorytmy arytmetyczne. Opracowano
algorytmy dla liczb dwójkowych w zapisie znak-uzupełnienie do 2 dla liczb zmien
nopozycyjnych i dziesiętnych, a także algorytmy konwersji liczb dziesiętnych na
dwójkowe i dwójkowych na dziesiętne. Algorytmy przedstawiono w postaci sieci
działań. Do określenia sekwencji mikrooperacji i decyzji sterujących potrzebnych
do realizacji algorytmów użyto języka przesłań międzyrejestrowych.
W rozdziale 11 wyjaśniono działanie niektórych najczęściej spotykanych urządzeń
wejścia i wyjścia. Podano wymagania, jakie powinien spełniać sprzęg między pro
cesorem a urządzeniami WE/WY, i wymieniono różne konfiguracje sterowania
przesyłania WE/WY. Zilustrowano odpowiednimi przykładami wymagania dla
sprzęgu przy przesyłaniu szeregowym asynchronicznym i przy bezpośrednim do-
[ Pobierz całość w formacie PDF ]