Uruchamianie układów i systemów

advertisement
MINISTERSTWO EDUKACJI
NARODOWEJ
Ryszard Zankowski
Uruchamianie układów i systemów mikroprocesorowych
312[02].Z1.01
Poradnik dla ucznia
Wydawca
Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy
Radom 2007
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
Recenzenci:
mgr inż. Zbigniew Miszczak
mgr inż. Krzysztof Słomczyński
Opracowanie redakcyjne:
mgr inż. Ryszard Zankowski
Konsultacja:
mgr Małgorzata Sienna
Poradnik stanowi obudowę dydaktyczną programu jednostki modułowej 312[02].Z1.01.
„Uruchamianie układów i systemów mikroprocesorowych”, zawartego w programie
nauczania dla zawodu technik teleinformatyk.
Wydawca
Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy, Radom 2007
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
1
SPIS TREŚCI
1.
2.
3.
4.
5.
6.
Wprowadzenie
Wymagania wstępne
Cele kształcenia
Materiał nauczania
4.1. Charakterystyka procesorów i rodzajów pamięci
4.1.1. Materiał nauczania
4.1.2. Pytania sprawdzające
4.1.3. Ćwiczenia
4.1.4. Sprawdzian postępów
4.2. Zasada działania procesora
4.2.1. Materiał nauczania
4.2.2. Pytania sprawdzające
4.2.3. Ćwiczenia
4.2.4. Sprawdzian postępów
4.3. System mikroprocesorowy
4.3.1. Materiał nauczania
4.3.2. Pytania sprawdzające
4.3.3. Ćwiczenia
4.3.4. Sprawdzian postępów
Sprawdzian osiągnięć
Literatura
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
2
3
5
6
7
7
7
17
17
19
20
20
34
34
36
37
37
45
45
47
48
52
1. WPROWADZENIE
Poradnik będzie Ci pomocny w przyswajaniu wiedzy o podstawowych zagadnieniach
dotyczących funkcjonowania i budowy systemów mikroprocesorowych.
W poradniku zamieszczono:
– wymagania wstępne – wykaz umiejętności, jakie powinieneś mieć już ukształtowane,
abyś bez problemów mógł korzystać z poradnika,
– cele kształcenia – wykaz umiejętności, jakie ukształtujesz podczas pracy z poradnikiem,
– materiał nauczania – wiadomości teoretyczne niezbędne do opanowania treści jednostki
modułowej,
– zestaw pytań, abyś mógł sprawdzić, czy już opanowałeś określone treści,
– ćwiczenia, które pomogą Ci zweryfikować wiadomości teoretyczne oraz ukształtować
umiejętności praktyczne,
– sprawdzian postępów,
– sprawdzian osiągnięć, przykładowy zestaw zadań. Zaliczenie testu potwierdzi
opanowanie materiału całej jednostki modułowej,
– literaturę uzupełniającą.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
3
312[02].Z1
Urządzenia komputerowe
312[02].Z1.01
Uruchamianie układów
i systemów
mikroprocesorowych
312[02].Z1.02
Identyfikowanie podzespołów
komputera i ich parametrów
312[02].Z1.03
Budowanie i uruchamianie
zestawów komputerowych
312[02].Z1.04
Eksploatowanie i zabezpieczanie
urządzeń komputerowych
Schemat układu jednostek modułowych
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
4
2. WYMAGANIA WSTĘPNE
–
–
–
–
–
–
–
−
−
−
−
−
−
−
−
–
–
–
Przystępując do realizacji programu jednostki modułowej powinieneś umieć:
stosować jednostki układu SI,
przeliczać jednostki,
posługiwać się podstawowymi pojęciami z zakresu elektrotechniki, elektroniki,
rozróżniać podstawowe wielkości elektryczne i ich jednostki,
odczytywać schematy prostych układów elektrycznych i elektronicznych,
łączyć układy elektryczne i elektroniczne zgodnie ze schematem,
wyjaśniać działanie prostych układów elektronicznych na podstawie ich schematów,
zapisywać liczby w różnych kodach,
wykonywać operacje logiczne i arytmetyczne na liczbach zapisanych w różnych kodach,
rozpoznawać bramki logiczne, przerzutniki, bloki funkcjonalne na podstawie symboli
graficznych, tabel prawdy, tabel stanów, tabel wzbudzeń lub grafów przejść,
klasyfikować układy logiczne,
analizować działanie elementów i bloków funkcjonalnych, wchodzących w skład
układów cyfrowych,
porównywać parametry cyfrowych układów scalonych wykonanych w różnych
technologiach,
obserwować stany logiczne oraz przebiegi na wejściach i wyjściach układów za pomocą
przyrządów specjalistycznych lub oscyloskopu,
obsłużyć wybrany program wspomagający projektowanie układów logicznych,
korzystać z różnych źródeł informacji,
obsługiwać komputer,
współpracować w grupie.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
5
3. CELE KSZTAŁCENIA
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
W wyniku realizacji programu jednostki modułowej powinieneś umieć:
wyjaśnić funkcje i zasady współpracy poszczególnych bloków systemu mikroprocesorowego,
wyjaśnić koncepcje pamięci podręcznej,
scharakteryzować magistrale i sygnały sterujące mikroprocesora,
wyjaśnić działanie układów wejścia/wyjścia,
scharakteryzować operacje wejścia/wyjścia,
wyjaśnić schemat blokowy mikroprocesora,
wyjaśnić działanie mikroprocesora i jego bloków,
wyjaśnić funkcje rejestrów procesora,
rozpoznać tryby pracy mikroprocesora,
opisać tryby pracy procesora,
zidentyfikować listę rozkazów procesora,
rozpoznać tryby adresowania,
zaprogramować system mikroprocesorowy,
rozpoznać typy obudów procesorów i gniazd,
porównać podstawowe parametry poszczególnych modeli procesorów,
porównać zasadę działania pamięci dynamicznej i statycznej RAM,
opisać pamięci ROM,
opisać organizacja pamięci.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
6
4. MATERIAŁ NAUCZANIA
4.1.
Charakterystyka procesorów i rodzajów pamięci
4.1.1. Materiał nauczania
Rodzaje pamięci w komputerach
Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych.
Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji, które mogą
przechowywać pojedyncze układy scalone pamięci, zawiera się w zakresie od kilobajtów do
gigabajtów.
Pamięciami półprzewodnikowymi nazywamy cyfrowe układy scalone przeznaczone do
przechowywania większych ilości informacji w postaci binarnej. Podstawowymi parametrami
pamięci są pojemność, czas dostępu i transfer danych.
Pojemnością pamięci nazywamy maksymalną liczbę informacji, jaką możemy
przechować w danej pamięci. Pojemność pamięci podajemy w bitach (b) lub bajtach (B).
Czasem dostępu do pamięci nazywamy czas, jaki musi upłynąć od momentu podania
poprawnego adresu słowa w pamięci do czasu ustalenia się poprawnej wartości tego słowa na
wyjściu pamięci w przypadku operacji odczytu lub w przypadku operacji zapisu – czas, jaki
upłynie do momentu zapisania wartości do tego słowa z wejścia pamięci.
W technice komputerowej używane są głównie pamięci półprzewodnikowe o dostępie
swobodnym (w odróżnieniu od dostępu sekwencyjnego). Pamięcią o dostępie swobodnym
nazywamy pamięć, dla której czas dostępu nie zależy od adresu słowa w pamięci, czyli od
miejsca, w którym jest dana informacja. Pamięci o dostępie swobodnym dzielimy na dwie
grupy tzn. pamięci RAM i ROM.
Pamięcią RAM nazywamy pamięć półprzewodnikową o dostępie swobodnym
przeznaczaną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu
jej zasilania informacja w niej przechowywana jest tracona.
Pamięcią ROM nazywamy pamięć półprzewodnikową o dostępie swobodnym
przeznaczaną tylko do odczytu. ROM jest pamięcią nieulotną.
–
–
–
–
Rodzaje pamięci stałych tzn. takich, które nie tracą zawartości po wyłączeniu zasilania:
pamięci typu ROM (ang. Read Only Memory). Zawartość tego typu pamięci ustalana jest
w trakcie produkcji i nie może być później w żaden sposób modyfikowana.
pamięci typu PROM (ang. Programmable Read Only Memory). Jest to rodzaj pamięci
ROM, który może być zaprogramowana przez programistę. Zawartość pamięci PROM
można tylko raz modyfikowana.
pamięci typu EPROM (ang. Erasable Programmable Read Only Memory). Jest to ten
rodzaj pamięci typu ROM, który można zapisywać i kasować dowolną ilość razy. Przed
zapisem poprzednią zawartość pamięci należy skasować promieniami UV.
pamięci typu EEPROM lub E2PROM (ang. Electrically Erasable Programmable Read
Only Memory). Ten rodzaj pamięci ROM może być dowolnie modyfikowana. Do
kasowania nie potrzeba żadnego promieniowania. Odbywa się ono w sposób elektryczny.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
7
Pamięci typu RAM (ang. Random Access Memory), które tracą zawartość po wyłączeniu
zasilania:
– pamięci statyczne SRAM (ang. Static Random Access Memory), statyczna pamięć nie
wymagające odświeżania, charakteryzujące się krótszym czasem dostępu, ale też
mniejszą pojemnością i wyższą ceną;
– pamięci dynamiczne DRAM (ang. Dynamic Random Access Memory), pamięci
dynamiczne, które wymagają złożonych układów sterujących i mają dłuższy czas
dostępu, ale za to mają większą pojemność i są tańsze;
– pamięci pseudostatyczne PRAM (ang. Pseudostatic Random Access Memory), mające
wewnętrzną strukturę pamięci dynamicznej, ale na zewnątrz zachowujące się jak pamięć
statyczna.
Pomiędzy pamięciami statycznymi i dynamicznymi występują istotne różnice
w parametrach i własnościach użytkowych. Pamięci dynamiczne są wolniejsze od
statycznych, natomiast są znacznie tańsze (szczególnie gdy uwzględniamy koszt jednego
bitu). Ponadto pamięci dynamiczne znacznie łatwiej podlegają scaleniu, co oznacza, że dla
porównywalnej wielkości układu uzyskujemy znacznie większe pojemności. Wadą pamięci
dynamicznych jest również fakt, że dla ich funkcjonowania konieczny jest tak zwany proces
odświeżania. Polega on na cyklicznym, ponownym odnowieniu przechowywanej zawartości
w komórce pamięci.
Z porównania własności tych pamięci wynika miejsce ich zastosowania w technice
komputerowej. Pamięci dynamiczne stosowane są do budowy głównej pamięci operacyjnej
komputera, co wynika z ich niskiej ceny i dużych pojemności układów scalonych tej pamięci.
Wadą tych pamięci w porównaniu z pamięciami statycznymi jest przede wszystkim szybkość
ich działania. Jednak ze względów ekonomicznych (cena) i technologicznych (mniejszy
stopień scalenia) nie można zbudować pamięci operacyjnej z pamięci statycznych. Dlatego
w systemach komputerowych stosuje się tak zwaną pamięć podręczną (cache), o znacznie
mniejszej pojemności w porównaniu z pamięcią operacyjną. Pamięć cache buduje się
z pamięci statycznych.
Organizacja pamięci
Organizacją pamięci nazywamy sposób podziału obszaru pamięci na słowa.
W dalszej części tego rozdziału będziemy używać terminów „adres” i „słowo”. Mimo że
terminy te nie sprawiają kłopotu naszej intuicji, podamy ich definicje.
Adresem nazywamy niepowtarzalną liczbę (numer) przypisaną danemu miejscu (słowu)
w pamięci w celu jego identyfikacji.
Słowem w pamięci nazywamy zestaw pojedynczych komórek (pojedynczych bitów)
pamięci, do którego odwołujemy się pojedynczym adresem.
Rys. 1. Wyprowadzenia układu scalonego pamięci [8]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
8
Szyna wejścia/wyjścia danych (DB, zaciski te często są też oznaczane jako DQ) służy do
wprowadzania i wyprowadzania informacji do i z pamięci. Wejście adresowe służy do
dokonania wyboru, na którym z wielu słów w pamięci zostanie wykonana operacja (zapisu
bądź odczytu). Wejście sterujące R/W# informuje układ pamięci, jakiego rodzaju operacja
będzie wykonywana: odczyt czy zapis. Wejście CS# służy do uaktywnienia układu pamięci.
Wejście to jest używane przy budowie zespołów pamięci metodą łączenia dwóch lub więcej
układów scalonych pamięci.
Liczbę bitów w pojedynczym słowie pamięci będziemy nazywać długością słowa
pamięci. Zauważmy, że długość słowa pamięci musi być równa liczbie wyprowadzeń szyny
wejścia/wyjścia, gdyż słowa są wprowadzane i wyprowadzane z pamięci równolegle.
Z warunku unikalności adresu (czyli nie powtarzania się tego samego adresu) wynika z kolei
minimalna liczba linii szyny adresowej. Przy m-bitowej szynie adresowej mamy do
dyspozycji 2m różnych adresów. Jeżeli liczba słów przechowywanych w pamięci wynosi N,
musi być spełniony warunek:
N < 2m
lub inaczej, aby poprawnie zaadresować N słów, potrzebujemy
m = log2N
bitów adresu (lub linii adresowych).
Wartość pojemności pamięci, długości słowa oraz liczby linii adresowych wiąże prosty
i oczywisty wzór. Jeżeli liczbę bitów możliwych do zapamiętania oznaczymy przez M,
długość słowa przez n, a liczbę linii adresowych przez m, to spełniona jest zależność:
M = nx2m
Schemat blokowy układu scalonego pamięci DRAM oraz rodzaje jego wyprowadzeń
pokazane są na rysunkach.
Rys. 2. Wyprowadzenia pamięci DRAM [5]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
9
Rys. 3. Adresowanie słowa w pamięciach DRAM. [5]
Adres słowa, na którym chcemy wykonać operację, podawany jest w dwóch częściach
zwanych adresem wiersza i adresem kolumny. Zmniejsza to liczbę potrzebnych wyprowadzeń
szyny adresowej i upraszcza konstrukcję dekoderów adresu.
Z drugiej strony, układy logiczne kontrolera pamięci, sterujące pracą pamięci, muszą
dokonać konwersji adresu podawanego przez procesor czy innego zarządcę magistral na
postać wymaganą przez pamięć DRAM. Przykładowy układ dokonujący takiej konwersji
pokazany jest na rysunku 3. Sygnał podany na wejście multipleksera wybiera, czy starsza, czy
też młodsza część adresu jest podawana na jego wyjściu. Drobne różnice występują też
w wejściach sterujących pamięci. Zamiast wejścia R/W# mamy dwa wejścia: OE# –
zezwolenie na wyprowadzenie (odczyt) informacji (ang. Output Enable), i WE# – zezwolenie
na zapis (ang. Write Enable). Sygnał CE# (ang. Chip Enable) jest równoważny sygnałowi
CS#. Sygnały RAS# (ang. Row Ad-dress Strobe) odpowiedzialny jest za wybór określonego
wiersza w matrycy pamięci i CAS# (ang. Column Address Strobe) sygnał wyboru kolumny
pamięci.
Odświeżanie pamięci DRAM
Odświeżanie komórek pamięci DRAM polega na cyklicznym doładowywaniu
pojemności pamiętających przechowujących wartość 1. Częstotliwość odświeżania
zapewniająca poprawną pracę pamięci DRAM jest podawana przez producenta jako parametr
katalogowy, którego należy przestrzegać. Operacja odświeżania pamięci realizowana jest
przez układy logiczne odświeżania będące elementem systemu (płyty głównej).
−
−
−
−
Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM:
sygnałem RAS,
CAS przed RAS,
odświeżanie ukryte (ang. hidden refresh),
samoodświeżanie (ang. self-refresh).
Pierwszym sposobem, obecnie niemającym już znaczenia, jest odświeżanie sygnałem
RAS. Na sygnał z generatora odświeżania układy logiczne odświeżania przejmują kontrolę
nad magistralami (stają się zarządcą magistral). Następnie podają na magistralę adresową
zawartość tak zwanego licznika odświeżania. Licznik ten adresuje kolejne wiersze
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
10
przeznaczone do odświeżenia i po każdym odświeżeniu kolejnego wiersza jest zwiększany
o jeden. Po podaniu adresu generowany jest sygnał RAS powodujący odświeżenie
zaadresowanego wiersza. Wysoki stan sygnału CAS# powoduje, że wyjście danych pamięci
jest w stanie wysokiej impedancji.
Dwa następne sposoby wymagają obecności w układach pamięci wewnętrznego licznika
odświeżania. W sposobie CAS przed RAS sterownik DRAM wytwarza aktywny sygnał CAS,
a następnie sygnał RAS. W odpowiedzi na taką sekwencję układy pamięci DRAM odświeżają
wiersz wskazywany przez ich wewnętrzny licznik odświeżania. W pamięciach DDR
odpowiada to trybowi zwanemu autoodświeżaniem. Żądanie realizacji autoodświeżania jest
generowane przez kontroler pamięci (przykładowo dla pamięci 512 Mb DDR SDRAM jest
wymagany co około 7,5 μs).
Przy odświeżaniu ukrytym po wytworzeniu aktywnych poziomów sygnałów RAS i CAS
i odczycie komórki sygnał RAS zmienia kolejno stan na nieaktywny i aktywny przy stale
aktywnym sygnale CAS. Powoduje to pozostawienie zawartości odczytywanej komórki na
wyjściach danych przy jednoczesnym (równoległym) odświeżeniu wiersza zaadresowanego
przez wewnętrzny licznik odświeżania pamięci.
Przy odświeżaniu automatycznym układy logiczne odświeżania są zawarte wewnątrz układów
pamięci.
Pod względem rodzajów złącz pamięci można podzielić na:
–
DIP (ang.). Konstrukcja pamięci w formie zwykłego układu scalonego montowanego na
stałe na płycie układu mikroprocesorowego. Rozszerzenie rozmiaru takiej pamięci
wiązało się z koniecznością wylutowania kości pamięci z układu.
Rys. 4. Pamięć typu DIP [6]
–
SIPP (ang. Single Inline Pin Package). Druga generacja pamięci dynamicznych.
Wygodniejszy rodzaj pamięci niż DIP. W dowolnej chwili można było wymienić
dowolny moduł pamięci na inny.
Rys. 5. Pamięć typu SIPP [6]
–
SIMM (Single Inline Memory Module). Są to 30 pinowe moduły, które stosowano
w komputerach wyposażonych w procesor 0486. Najczęściej spotykanymi tego typu
układami są kości o pojemności 1, 4, 8 MB. Z uwagi na ich budowę mogły być
instalowane tylko parami po cztery sztuki. Obecnie częściej wykorzystuje się moduły
nowszego typu, 72 pinowe.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
11
Rys. 6. Pamięć typu SIMM [6]
–
PS/2 SIMM. Pod względem budowy wewnętrznej odpowiadają one 30 pinowym
modułom SIMM, są jednak przeznaczone do pracy z 32 bitową szyną danych. Z uwagi na
to, że architektura procesorów Pentium bazuje na magistrali 64bitowej, na płytach
pecetów z tym CPU niezbędne jest umieszczanie parami identycznych układów pamięci.
Zależnie od producenta płyty możliwe jest zainstalowanie od dwóch do ośmiu modułów,
czyli od jednej do czterech par.
Rys. 7. Pamięć typu PS/2 [6]
–
DIMM (ang. Dual In-Line Memory Module). Najpopularniejsze typy DIMM to:
72-pinowe, stosowane w SO DIMM (32 bitowe) i 144-pinowe, stosowane w SO DIMM
(64 bitowe) stosowany głównie w notebookach, komputerach małogabarytowych oraz
w niektórych drukarkach biurowych wysokiej klasy.
Rys. 8. Pamięć typu SO DIMM
168-pinowe, stosowane w SDR SDRAM. Pamięć SDR SDRAM jest taktowana
częstotliwościami 66, 100 i 133 MHz. Produkowane były kości 32, 64, 128, 256 i 512 MB.
184-pinowe, stosowane w DDR SDRAM. Stosowane są dwa rodzaje oznaczeń pamięci
DDR SDRAM. Mniejszy (np. PC-200) mówi o częstotliwości, z jaką działają kości.
Natomiast większy (np. PC1600) mówi o teoretycznej przepustowości jaką mogą osiągnąć.
240-pinowe, stosowane są w DDR2 SDRAM. Pamięć DDR2 charakteryzuje się wyższą
efektywną częstotliwością taktowania (533, 667, 800, 1066 MHz) oraz niższym poborem
prądu. Podobnie jak DDR, pamięć DDR2 wykorzystuje do przesyłania danych wznoszące
i opadające zbocze sygnału zegarowego, mogą pracować w temperaturze do 70°C. Moduły
pamięci DDR2 nie są kompatybilne z modułami DDR. Obecnie DDR2 obsługiwane są
zarówno przez procesory firmy Intel jak i AMD. Istnieją dwa sposoby oznaczania modułów
pamięci DDR2. Pierwszy z nich (np. PC2-533) mówi o prędkości modułu. Natomiast drugi
(np. PC2-6400) informuje o przepustowości.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
12
Rys. 9. Pamięć typu SDR 2 [6]
– DDR3 SDRAM (ang. Double Data Rate Synchronous Dynamic Random Access
Memory (ver. 3)). Jest to nowy standard pamięci RAM typu SDRAM, będący rozwinięciem
pamięci DDR i DDR2, stosowanych w komputerach jako pamięć operacyjna. Pamięć DDR3
wykonana jest w technologii 90 nm. Technologia ta umożliwia zastosowanie niższego
napięcia (1,5 V w porównaniu z 1,8 V dla DDR2 i 2,5 V dla DDR). Dzięki temu pamięć
DDR3 charakteryzuje się zmniejszonym poborem mocy o około 40% w stosunku do pamięci
DDR2 oraz większą przepustowością w porównaniu do DDR2 i DDR. Pamięci DDR3 nie
będą kompatybilne wstecz, tzn. nie będą współpracowały z chipsetami obsługującymi DDR
i DDR2. Posiadają także przesunięte wcięcie w prawą stronę w stosunku do DDR2 (w DDR2
wcięcie znajduje się prawie na środku obudowy). Obsługa pamięci DDR3 przez procesory
została wprowadzona w 2007 roku w procesorach firmy Intel oraz zostanie wprowadzona
w 2008 roku w procesorach firmy AMD.
Rys. 10. Pamięć typu DDR3 [6]
– RIMM (Rambus Inline Memory Module). Jest to jeden z rodzajów pamięci
komputerowej, na którym umieszczone są układy scalone z pamięcią Rambus DRAM
(RDRAM).
Rys. 11. Pamięć typu Rambus [6]
–
–
–
–
Najpopularniejsze pamięci typu RIMM:
160-pinowe, stosowane SO-RIMM,
184-pinowe, stosowane RIMM 16-bitowe,
232-pinowa, stosowane RIMM 32-bitowe,
326-pinowa, stosowane RIMM 64-bitowe.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
13
Rodzaje procesorów i gniazd.
Gniazdo procesora (ang. CPU socket lub CPU slot) jest to rodzaj złącza znajdującego się
na płycie głównej; pełni ono rolę interfejsu pomiędzy procesorem a pozostałymi elementami
systemu komputerowego umożliwiając jego współpracę z systemem za pośrednictwem
odpowiednich magistrali i układów znajdujących się na płycie głównej.
Na każdej płycie głównej musi być przynajmniej jedno takie gniazdo; determinuje ono
rodzaj procesora, jaki jest przez nią obsługiwany.
Producenci wyposażają swoje płyty w różne wersje gniazd umożliwiających
zastosowanie jednego z dostępnych procesorów, przy czym rodzaj procesora często zależy
również od zainstalowanego na płycie chipsetu. Dla procesorów Pentium i jego poprzedników
stosowano jednakowe podstawki, jednak począwszy od procesora Pentium II, zaczęto
projektować inne, zależnie od producenta.
Typ gniazda dla procesora musi być zgodny z określonym procesorem. Dla danego typu
gniazda charakterystyczny jest kształt, napięcie rdzenia, prędkość magistrali systemowej oraz
inne cechy. Na przykład Slot 1 – Celeron, Pentium II, Pentium III.
W pierwszych płytach głównych procesory były wlutowane, ale z powodu coraz większej
oferty procesorów i ich nieustannie zmieniającej się budowy pojawiły się gniazda, które
umożliwiły dopasowanie budowy płyty oraz jej możliwości do potrzeb danego użytkownika.
W efekcie użytkownik chcąc wymienić procesor na procesor innej firmy, musi wymieniać
całą płytę główną.
Najczęściej obecnie spotykanym gniazdem montowanym na płytach głównych jest
gniazdo typu ZIF. Gniazda te umożliwiają łatwą instalację procesora bez użycia siły,
wyposażone są bowiem w małą dźwigienkę, służącą do zaciskania lub poluzowania
znajdującego się w gnieździe procesora. Mikroprocesory posiadają piny, dzięki którym mogą
zostać zamontowywane w gnieździe. Należy bardzo uważać przy umieszczaniu
mikroprocesora w podstawce, gdyż zgięcie wyprowadzeń może trwale uszkodzić
mikroprocesor.
Podstawki firmy AMD i odpowiadające im typy procesorów:
– Socket 5 – AMD K5.
– Socket 7 – AMD K6.
– Super Socket 7 – AMD K6-2, AMD K6-III.
– Socket 462 (zwany także Socket A) – AMD Athlon, Duron, Athlon XP, Athlon XP-M,
Athlon MP, i Sempron.
Rys. 12. Podstawka typu Socket A [6]
–
–
–
Socket 463 (zwany także Socket NexGen) – NexGen Nx586.
Socket 563 – AMD Athlon XP–M (µ-PGA Socket).
Socket 754 – AMD Athlon 64, Sempron, Turion 64.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
14
Rys. 13. Podstawka typu Socket 754 [6]
–
–
–
–
–
–
–
Socket 939 – AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, Sempron, Turion 64,
Opteron (seria 100). Obsługa podwójnego kanału pamięci DDR-SDRAM, tzw. dualchannel.
Socket 940 – AMD Opteron (seria 100, 200, 800), Athlon 64 FX. Obsługa podwójnego
kanału pamięci DDR-SDRAM, tzw. dual-channel.
Socket 1207 (zwane także Socket F) - Supports AMD Opteron (seria 200, 800). Zastąpił
Socket 940. Obsługa dual-channel DDR2-SDRAM.
Socket AM2 – AMD Athlon 64 FX, Athlon 64 X2, Sempron, Turion 64, Opteron (seria
100). Obsługa dual-channel DDR2-SDRAM. Posiada 940 pinów.
Socket AM2+ – AMD Athlon X2, Athlon X4, Phenom X2, Phenom X3, Phenom X4,
Sempron. Obsługa dual-channel DDR2-SDRAM, oraz Obsługa dual-channel DDR3SDRAM i HyperTransport 3 z mniejszym zapotrzebowaniem na energię. Posiada 940
pinów.
Socket AM3 – Przyszłe gniazgo pod procesor AMD, charakteryzujący się obsługą dualchannel DDR3-SDRAM, oraz HyperTransport 3. Planowany na II półrocze 2008.
Socket S1 - gniazdo na platformy mobilne, z obsługą dual-channel DDR2-SDRAM.
Podstawki Intel:
– 40 pin – Intel 8086, Intel 8088.
– 68 pin – Intel 80186, Intel 80286, Intel 80386.
– Socket 1 – 80486.
– Socket 2 – 80486.
– Socket 3 – 80486
Rys. 14. Podstawka typu Socket 3 [6]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
15
–
Socket 4 – Intel Pentium 60-66 MHz.
Rys. 15. Podstawka typu Socket 4 [6]
–
–
–
–
–
Socket 5 – Intel Pentium 75-133 MHz.
Socket 7 – Intel Pentium, Pentium MMX.
Socket 8 – Intel Pentium Pro.
Socket 370 – Intel Pentium III, Celeron; Cyrix III; VIA C3.
Socket 423 – Intel Pentium 4 z jądrem Willamette.
Rys. 16. Podstawka typu Socjet 423 [6]
–
Socket 478 – Intel Pentium 4, Celeron, Pentium 4 Extreme Edition, Pentium M.
Rys. 17. Podstawka typu Socket 478 [6]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
16
–
–
–
–
–
–
–
Socket 479 – Intel Pentium M i Celeron M.
Micro-FCBGA – Intel Mobile Celeron, Core 2 Duo (mobile), Core Duo, Core Solo,
Celeron M, Pentium III (mobile), Mobile Celeron.
Socket 486 – 80486.
Socket 603 – Intel Xeon.
Socket 604 – Intel Xeon.
LGA 771 (zwane także Socket 771 or Socket J) – Intel Xeon.
LGA 775 (zwane także Socket 775 or Socket T) – Intel Pentium 4, Pentium D, Celeron D,
Pentium Extreme Edition, Core 2 Duo, Core 2 Extreme, Celeron, Xeon seria 3000, Core 2
Quad.
Rys. 18. Podstawka typu Socket T [6]
–
–
PAC418 – Intel Itanium.
PAC611 – Intel Itanium 2.
4.1.2. Pytania sprawdzające
1.
2.
3.
4.
5.
6.
7.
8.
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
Czy wiesz co to jest pamięć o dostępie swobodnym?
Jak działa pamięć statyczna?
Jakie są różnice pomiędzy pamięcią statyczną i dynamiczną?
Czy wiesz co to jest pamięć typu ROM?
Jakie są różnice między pamięciami ROM i RAM?
Jak jest zbudowany moduł pamięci typu SIMM?
Czy potrafisz scharakteryzować pamięć np. typu DDR3?
Co to jest gniazdo procesora?
4.1.3. Ćwiczenia
Ćwiczenie 1
Przedstaw rozwój procesorów i odpowiadających im podstawek.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) przeanalizować rozwój technologiczny patrząc na procesory pod kątem typu obudowy,
2) zwrócić uwagę jakie parametry procesorów zmieniały się z upływem czasu,
3) zapisać spostrzeżenia na arkuszu papieru.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
17
−
−
−
Wyposażenie stanowiska pracy:
plansze z rysunkami podstawek,
zdjęcia procesorów,
arkusz papieru, flamastry.
Ćwiczenie 2
Scharakteryzuj poznane pamięci typu DIMM.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) spośród dostępnych kości RAM wybrać te które mają obudowę typu DIMM,
2) posegregować wybrane przez Ciebie kości pamięci na odpowiednie grupy,
3) opisać te cechy, na podstawie których można podzielić pamięci w obudowach typu
DIMM.
−
−
−
Wyposażenie stanowiska pracy:
moduły pamięci różnych typów,
karty katalogowe elementów,
arkusz papieru, flamastry.
Ćwiczenie 3
W jaki sposób realizuje się odświeżania pamięci dynamicznych.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) zastanowić się i odpowiedzieć na pytanie w jakim celu stosuje się odświeżanie pamięci,
2) odpowiedzieć na pytanie, które bloki funkcjonalne odpowiedzialne są za procesy
odświeżania pamięci,
3) zastanowić się w jaki sposób działa mechanizm wybierania komórek pamięci do
odświeżenia.
−
−
Wyposażenie stanowiska pracy:
schemat blokowy pamięci dynamicznej,
literatura zgodna z punktem 6 poradnika.
Ćwiczenie 4
Określ podstawowe parametry charakteryzujące procesory i przedstaw ich zmiany
w czasie.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) określić jakie parametry charakteryzują procesory,
2) przedstawić spektrum zmian na przykładzie wybranych modeli procesorów.
−
−
Wyposażenie stanowiska pracy:
procesory różnych typów,
karty katalogowe elementów.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
18
Ćwiczenie 5
Scharakteryzuj poznane pamięci o dostępie swobodnym.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) odpowiedzieć na pytanie czym jest dostęp swobodny do pamięci,
2) określić jakimi rodzajami pamięci będziesz się zajmować.
−
−
Wyposażenie stanowiska pracy:
moduły pamięci różnych typów,
karty katalogowe elementów.
4.1.4. Sprawdzian postępów
Czy potrafisz:
1)
2)
3)
4)
5)
6)
7)
8)
wyjaśnić pojęcie pamięci o dostępie swobodnym?
wyjaśnić pojęcie pamięci statycznej?
wyjaśnić pojęcie pamięci dynamicznej?
określić podstawowe różnice między pamięcią RAM i ROM?
wyjaśnić do czego służy sygnał RAS?
wyjaśnić budowę modułu typu SIMM?
scharakteryzować pamięć typu DDR3?
wyjaśnić pojęcie gniazda procesora?
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
19
Tak








Nie








4.2.
Zasada działania procesora
4.2.1. Materiał nauczania
Procesor 8086
Jest to pierwszy 16-o bitowy procesor wyprodukowany dla komputerów osobistych firmy
IBM. Mimo znacznej rozbudowy obecnie produkowanych procesorów zawsze istnieje
możliwość pracy w trybie procesora 8086.
–
–
Centralny blok przetwarzający procesora składa się z dwóch części:
układu sprzęgającego magistrali (ang. BIU-Bus Interface Unit),
układu wykonawczego (ang. EU-Execution Unit).
Rys. 19. Schemat blokowy procesora 8086 [7]
–
–
–
Procesor 8086 posiada:
20 linii adresowych adresujących bezpośrednio 220=1 MB komórek pamięci,
16 linii adresowych dla rozkazów definiujące lokacje 216=64 KB portów WE/WY,
dwa niezależne układy operacyjne: dla realizacji kodu bieżącego (EU), dla równoległego
pobierania rozkazu następnego (BIU),
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
20
–
–
dwa tryby przetwarzania: w układzie maksymalnym, w układzie minimalnym,
możliwość współpracy z rodziną 8-o bitowych układów sprzęgających firmy Intel.
Układ wykonawczy (EU)
Układ wykonawczy procesora 8086 zawiera 16-bitową ALU współpracującą z rejestrami
wskaźnikowymi oraz rejestrami wewnętrznymi. Wszystkie rejestry i magistrale wewnętrzne
układu wykonawczego są 16-bitowe. Układ wykonawczy nie ma bezpośredniego kontaktu
z magistralą zewnętrzną. Rozkazy są do niej przekazywane z bloku rejestru FIFO (ang. FirstIn First-Out pierwszy wchodzi-pierwszy wychodzi) zwanego kolejką rozkazów. Kolejka
rozkazów jest zapełniana za pośrednictwem układu sprzęgającego BIU. Wszystkie adresy
generowane w obrębie układu wykonawczego są 16-bitowe, choć układ sprzęgający
magistrali steruje dwudziestoma liniami adresującymi 1 MB przestrzeni adresowej. Zadaniem
układu wykonawczego jest dekodowanie i wykonywanie rozkazów gromadzonych w kolejce.
W trakcie wykonywania rozkazów w układzie wykonawczym układ sprzęgający magistrali
zewnętrznej otrzymuje zezwolenie na pobranie następnego rozkazu z pamięci programu. Gdy
kolejnym bajtem w pamięci to dane, zostaną one pominięte w operacji przesłania do kolejki
rozkazów. Gdy zaś EU realizuje rozkaz skoku lub wywołania podprogramu, następuje
wówczas wyzerowanie kolejki i pobranie za pośrednictwem BIU rozkazów z przestrzeni
pamięci związanej z tym rozgałęzieniem.
Układ wykonawczy zawiera:
– 16-bitową jednostkę arytmetyczno-logiczną ALU,
– układ sterowania z rejestrem rozkazów,
– cztery 16-bitowe rejestry użytkownika: AX, BX, CX, DX LUB cztery pary 8-bitowych
rejestrów po 8 bitów: AL, AH, BL, BH, CL, CH, DL, DH (odpowiednio L – młodszy,
H – starszy bajt),
– cztery 16-bitowe rejestry adresowania:
SP (ang. Stack Pointer)
– wskaźnik stosu,
BP (ang. Base Pointer)
– wskaźnik bazy,
SI (ang. Source Pointer)
– indeksowy źródła danych,
DI (ang. Destination Pointer) – indeksowy przeznaczenia danych,
– 16-bitowy rejestr wskaźników – flagowy.
Rejestry
Rejestr jest częścią pamięci wewnętrznej procesora o niewielkiej (kilkubitowej)
pojemności. Pewne rejestry procesora związane są określonymi operacjami a z kolei
wykonywanie określonych operacji związane jest ściśle z określonymi rejestrami. Rejestry
są komórkami o czasie dostępu do pamięci krótszym niż w przypadku pamięci operacyjnej.
Ponieważ ilość rejestrów jest niewielka więc w ciele rozkazu wyraźnie wskazujemy,
na którym rozkaz wykonuje operację. Główne zadanie rejestrów to przechowywanie adresów
lub danych na potrzeby rozkazu. Mogą być używane do modyfikowania adresów,
zapamiętania adresu powrotu z podprogramów, jako liczniki rozkazów lub jako małe pamięci
podręczne.
Jednostka arytmetyczno-logiczna
Jest ona częścią procesora, która wykonuje operacje arytmetyczne typu dodawanie,
odejmowanie, a także elementarne operacje logiczne: sumowanie (OR), mnożenie (AND),
sumowanie modulo 2 (XOR).
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
21
Układ sprzęgający magistrali (BIU)
Układ sprzęgający – BIU (ang. Bus Interface Unit) procesora 8086 przesyła dane między
procesorem a pamięcią operacyjną lub układami WE/WY pod nadzorem układu
wykonawczego. W czasie gdy układ wykonawczy realizuje kolejny rozkaz, BIU pobiera
nowy rozkaz z pamięci operacyjnej i przekazuje go do kolejki. Wykorzystuje w ten sposób
stan wolnej magistrali zewnętrznej w trakcie operacji przetwarzania wewnętrznego w obrębie
układu wykonawczego procesora. W procesorach poprzedniej generacji pobranie
poprzedniego rozkazu uwarunkowane było zakończeniem przetwarzania poprzedniego
rozkazu. Zasada równoległego współdziałania obu układów wewnętrznych procesorów tzw.
trzeciej generacji została przedstawiona na rys. 20. jako schemat rozdziału faz pobierania –
FETCH i wykonania – EXECUTE.
Cykl pracy procesora 8086
Wykonanie kolejnych rozkazów procesora związane jest z sekwencją pewnych stałych
kroków zwanych fazami cyklu. W zależności od rodzaju rozkazu mogą wystąpić
maksymalnie cztery spośród pięciu faz cyklu:
− pobranie (ang. fetch) – kod rozkazu zostaje pobrany z pamięci do zestawu rejestrów
tworzących kolejkę rozkazów skąd trafi do rejestru rozkazów IR procesora;
− dekodowanie (ang. decode) – w tej fazie rozkaz jest dekodowany i ustalane są, jeśli
wymaga tego typ rozkazu, połączenia arytmometru z rejestrami, które mają dostarczyć
argumentów operacji;
− odczyt (ang. read) – jeżeli rozkaz wymaga argumentu z pamięci operacyjnej, to zostaje
obliczony jego adres, a następnie argument jest odczytywany i wprowadzany do
procesora;
− wykonanie (ang. execute) – w tej fazie operacja zdefiniowana rozkazem jest
wykonywana;
− zapis (ang. write) – jeżeli wynik operacji ma być umieszczony w pamięci operacyjnej, to
zostaje obliczony adres i wykonany zapis do pamięci.
Dzięki kolejce rozkazów jednostka wykonawcza oraz jednostka sprzężenia z magistralą
mogą pracować niezależnie i jest możliwe równoczesne wykonywanie dwóch faz należących
do cykli kolejnych rozkazów. Zwiększa to szybkość pracy całego systemu.
W mikroprocesorze 8086 pojemność kolejki wynosi 6 bajtów. Jeśli w kolejce zwolni się
miejsce na co najmniej dwa bajty, a jednostka wykonawcza nie żąda dostępu do magistrali, to
jednostka sprzężenia z magistralą wykonuje samodzielnie cykle pobrania, ustawiając
w kolejce rozkazów kolejne bajty kodu programu. Operacja ta może przebiegać równocześnie
z inną fazą cyklu, w której jednostka wykonawcza procesora nie odwołuje się do pamięci.
Jeżeli jednostka wykonawcza zażąda dostępu do magistrali w czasie, gdy jednostka
sprzężenia z magistralą dokonuje pobrania, to faza pobrania zostanie dokończona,
a potem uwzględnione żądanie układu wykonawczego.
Rys. 20. Realizacja 4 kolejnych rozkazów w procesorze 8086 [7]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
22
Powyżej przedstawiono przepływ rozkazów ilustrujący równoległą pracę jednostki
wykonawczej i jednostki sprzężenia z magistralą. Zacieniowano klatki ilustrujące fazy cyklu,
w których procesor odwołuje się do pamięci. Trzeci z kolei rozkaz ma podwójną długość, stąd
dwie fazy pobrania.
Rejestr flagowy
Procesor 8086 ma dziewięć 1-bitowych wskaźników (bitów flagowych), których wartości
są zapisywane w 16-bitowym rejestrze flagowym. Rozmieszczenie bitów pokazane jest na
rysunku.
Rys. 21. Rejestr wskaźnikowy [7]
Wskaźniki można podzielić na dwie grupy:
– Znaczniki stanu wewnętrznego,
– Znaczniki rozkazów sterujących.
Znaczniki wewnętrzne:
– C (ang. Carry) – przeniesienie; wartość 1 na tej pozycji oznacza przeniesienie zewnętrzne
dla operacji arytmetycznych całkowitoliczbowych,
– P (ang. Parity) – parzystość; wartość 1 na tej pozycji oznacza parzystą ilość jedynek
wyniku dowolnej operacji,
– A (ang. Auxiliary-Carry) – przeniesienie połówkowe; wartość 1 na tej pozycji oznacza po
czwartym bicie rezultatu operacji arytmetycznych BCD,
– Z (ang. Zero) – zero; wartość 1 na tej pozycji oznacza rezultat 0 operacji,
– S (ang. Sign) – znak; wartość 1 na tej pozycji oznacza ujemny wynik operacji
matematycznej całkowitoliczbowej,
– O (ang. Over-flow) – przepełnienie; wartość 1 na tej pozycji oznacza zbyt dużą liczbę dla
wyniku operacji arytmetycznej całkowitoliczbowej.
Znaczniki sterujące:
– T (ang. Trap) – jest znacznikiem pracy krokowej procesora; gdy T=1 wówczas procesor
przechodzi do pracy krokowej tzn. następuje zatrzymanie po każdym rozkazie, wywołane
jest przerwanie 1 a CPU przesyła zawartość rejestru flagowego na stos (jak dla obsługi
przerwań),
– I (ang. Interrupt enable) – znacznik wskazujący, czy wejście przerwania maskowanego
INTR jest odblokowane (I=1), czy zablokowane (I=0),
– D (ang. Direction) – znacznik sterowania kierunkiem zmian zawartości rejestrów SI i DI.
Dla D=0 zawartość zwiększa się o 1 przy operacjach 8-bitowych oraz o 2 dla
16-bitowych.
Dla D=1 zawartość zmniejsza się o 1 przy operacjach 8-bitowych oraz o 2 dla
16-bitowych.
Znaczniki stanu wewnętrznego ustawiane są w wyniku wykonywania określonych
operacji arytmetycznych lub logicznych procesora, natomiast znaczniki sterujące są ustawiane
przez programistę za pomocą odpowiednich rozkazów w celu wymuszenia określonego trybu
pracy.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
23
Rejestry ogólnego przeznaczenia
Procesory 16-bitowe zawierają blok ośmiu 16-bitowych rejestrów ogólnego
przeznaczenia. Można w nich wyróżnić trzy grupy rejestrów o zdefiniowanym przeznaczeniu:
– rejestry danych: cztery 16-bitowe, w których wyróżniono bajt starszy H (H – high) i bajt
młodszy L (ang. L – low),
– rejestry wskaźników adresowych: stosu i bazy,
– rejestry indeksów adresowych: źródła i miejsca przeznaczenia.
Niektóre grupy rozkazów odnoszą się do operandów 8-bitowych inne do 16-bitowych.
Rozkazy operujące słowem 16-bitowych oznaczono przez X np. AX, BX .
Rejestry segmentowe
Megabajt przestrzeni pamięciowej jest adresowany przez procesor za pomocą 20-bitowej
magistrali adresowej. Obszar podzielono na segmenty po 64 KB a procesor ma bezpośredni
dostęp do czterech segmentów. Lokacja początkowa tych segmentów (16 starszych bitów
słowa 20-bitowego) jest zapisywana w rejestrach segmentowych: CS, DS, SS, ES:
– segment kodów – CS, wskazuje część adresu (16 bitów), odnoszą się do obszaru pamięci,
w których zapisano kody rozkazów,
– segment stosu – SS, zawiera 16 bitów adresu, które lokalizują obszar pamięci traktowany
jako stos, przechowujący dane restartów przerwań,
– segment danych – DS, wskazuje 16 bitów adresu komórek pamięci, które zawierają dane,
głównie zmienne programu,
– segment dodatkowy – ES, wykorzystywany jako dodatkowy obszar pamięci do zapisu
danych programu.
Wskaźnik instrukcji – IP
Wskaźnik IP (ang. instruction pointer) zwany wskaźnikiem instrukcji lub wskaźnikiem
rozkazów jest to rejestr mikroprocesora zawierający adres komórki pamięci, w którym
przechowywany jest kod rozkazu przeznaczonego do wykonania jako następny. Zawartość
wskaźnika rozkazów modyfikuje układ sprzęgający magistrali (BIU). Przed zapisaniem IP na
stos następuje modyfikacja jego zawartości tak, aby po powrocie do tej lokalizacji został
wskazany następny rozkaz w programie. W czasie normalnej pracy procesora IP zawiera
offset adresu wskazujący kolejny rozkaz w segmencie programu.
Stosem nazywamy obszar pamięci określany wg. określonych reguł:
– pamięć typu stos działa jak stos książek położonych jedna na drugiej,
– informacje odczytujemy w kolejności odwrotnej do kolejności zapisu,
– informacja odczytywana jest z ostatnio zapełnionej komórki, natomiast zapisujemy do
pierwszej wolnej. Komórkę odczytaną traktujemy jako wolną.
Tryby pracy wybranych procesorów
Procesor 80286
W mikroprocesorze 80286 pojawiły się mechanizmy sprzętowe ułatwiające realizację
pracy wielozadaniowej oraz pamięci wirtualnej. Obydwa pojęcia wiążą się z projektowaniem
nowoczesnych systemów operacyjnych i tam też głównie znalazły zastosowanie. Z drugiej
strony zapewniono kompatybilność tego procesora z procesorem 8086/88.
Procesor 80286 może pracować w jednym z dwóch trybów:
Trybie rzeczywistym (ang. real modę) – w trybie tym zachowuje się jak szybki procesor
8086. Między innymi używa tylko 20 bitów adresu (co pozwala zaadresować jedynie 1 MB
pamięci). Jednocześnie może być uruchomiony tylko jeden program główny.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
24
Chronionym trybie wirtualnym (ang. protected virtual mode), zwanym dalej trybem
chronionym lub trybem wirtualnym. W trybie tym procesor wykorzystuje swoje pełne
możliwości. Używa 24 bitów adresu, co pozwala zaadresować 16 MB fizycznej pamięci.
Ponadto dostępne są sprzętowe mechanizmy wspomagające obsługę pamięci wirtualnej, pracy
wielozadaniowej i ochrony zasobów. Procesor 80286 po restarcie rozpoczyna pracę w trybie
rzeczywistym. Przełączenie procesora na tryb chroniony następuje po ustawieniu bitu PE
(ang. Protect enable) w rejestrze MSW (ang. machinę status word) znajdującym się w zespole
rejestrów sterujących w BIU.
Procesor 80386
Procesor 80386 jest pierwszym 32-bitowym mikroprocesorem rodziny Intel x86, od
którego rozpoczęło się tworzenie architektury IA 32. Architektura ta jest kompatybilna wstecz
z 16-bitowymi procesorami rodziny Intel x86. Sposób realizacji instrukcji ulegał natomiast
znacznym zmianom w trakcie rozwoju tej architektury. Zmiany te będziemy sukcesywnie,
choć krótko, opisywać. Miały na celu głównie przyspieszenie realizacji instrukcji, a zatem
zwiększenie mocy obliczeniowej procesora.
–
–
–
Procesor 80386 może pracować w trzech trybach pracy:
trybie rzeczywistym,
chronionym trybie wirtualnym,
trybie zadań wirtualnych 8086.
Tryb rzeczywisty procesora 80386 jest taki sam jak tryb rzeczywisty procesora 80286.
Chroniony tryb wirtualny oferuje podobne, aczkolwiek ulepszone i rozszerzone
możliwości jak procesor 80286. W trybie tym, w porównaniu do procesora 286, zwiększona
jest przestrzeń pamięci wirtualnej przydzielona jednemu zadaniu i wynosi 64 TB. Ponadto,
oprócz mechanizmu segmentacji w trybie tym dostępny jest także mechanizm stronicowania.
Tak jak poprzednio, mamy do dyspozycji mechanizmy wspomagające pracę wielozadaniową
i ochronę zasobów.
Tryb zadań wirtualnych 8086 jest trybem nowym, który pojawił się dopiero
w procesorze 80386. Tworzy środowisko do wykonywania zadań przygotowanych dla
procesora 8086 w wielozadaniowym środowisku trybu chronionego procesora 80386. Zadania
procesora 8086 mogą więc być wykonywane przez procesor 80386 w dwóch trybach:
rzeczywistym i wirtualnych zadań 8086. Różnica polega na tym, że w trybie rzeczywistym
wykonujemy jedno zadanie, podczas gdy tryb wirtualnych zadań 8086 można stosować do
określonych zadań wykonywanych w środowisku wielozadaniowym. Po przełączeniu się do
tego trybu w celu wykonania konkretnego zadania procesor ten zachowuje się jak 8086, lecz
po powrocie z niego pracuje dalej w trybie chronionym, umożliwiając pracę wielozadaniową.
Lista wybranych rozkazów procesora 8086
Mikroprocesory 8088 i 8086 mają dokładnie takie same listy rozkazów. Zawierają
również rozkazy typowe dla ich poprzedników 8-bitowych (jak 8080 i 8085) oraz szereg
dodatkowych jak: mnożenie i dzielenie binarne ze znakiem, bez znaku i w kodzie BCD,
operacja przesyłania i porównywania tablic (o wymiarze do 64 KB), badanie wartości
określonych bitów operandów, programowe generowanie przerwań, czy instrukcje
ułatwiające programowanie układów wieloprocesorowych.
W procesorach 8086 prawie każdy rozkaz dotyczy zarówno bajtów jak i słów
16 bitowych. Zmienne można dodawać, odejmować, przesuwać, porównywać, itp.
bezpośrednio w pamięci bez potrzeby wcześniejszego przenoszenia ich do rejestrów. Ta
właściwość w znacznym stopniu skraca program i przyspiesza jego realizację. Przetwarzanie
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
25
jest znacznie wydajniejsze w porównaniu z mikroprocesorami 8-bitowymi. Długość rozkazu
może wynosić od 1 do 6 bajtów. Rozkaz może być bezargumentowy, jedno lub dwu
argumentowy, ale tylko jeden z argumentów może być pobrany z pamięci operacyjnej.
Rozkazy można podzielić na kilka grup pod względem rodzaju i sposobów działania:
Rozkazy transmisji danych
Kierunek Rejestry – Pamięć:
MOV
– prześlij bajt lub słowo,
PUSH – prześlij słowo na szczyt stosu,
POP
– pobierz słowo ze szczytu stosu,
XCHG – zamień miejscami bajty lub słowa,
XLAT – pobierz bajt z tablicy.
Kierunek-układy WE/WY:
IN
– pobierz bajt lub słowo z (portu) rejestru wejściowego,
OUT
– prześlij port lub słowo do (portu) rejestru wyjściowego.
Ładowanie adresów
LEA
– załaduj adres efektywny,
LDS
– załaduj adres logiczny do wskazanego rejestru i DS,
LES
– załaduj adres logiczny do wskazanego rejestru i ES.
Rejestr znaczników:
LAHF – prześlij wskazany bajt słowa znaczników do rejestru AH,
SAHF – prześlij zawartość rejestru AH do rejestru znaczników,
PUSHF – prześlij zawartość rejestru wskaźników na stos,
POPF
– pobierz dane ze stosu i prześlij do rejestru wskaźników.
Rozkazy arytmetyczne i logiczne
Dodawanie
ADD
– dodawanie bajtów lub słów 16-bitowych,
ADC
– dodawanie bajtów lub słów 16-bitowych z uwzględnieniem przeniesienia,
INC
– dodaj 1 do baj tu lub słowa,
AAA
– poprawka dla dodawania w rozpakowanym kodzie BCD,
DAA
– poprawka dziesiętna dla dodawania w kodzie BCD.
Odejmowanie
SUB
– odejmowanie bajtów lub słów 16-bitowych,
SBB
– odejmowanie bajtów lub słów 16-bitowych z uwzględnieniem pożyczki,
DEC
– odejmij 1 od bajtu lub słowa,
NEG
– zaneguj lub dopełnij do 2 bajt lub słowo,
CMP
– porównaj bajt lub słowo z innym operandem,
AAS
– poprawka po odejmowaniu w rozpakowanym kodzie BCD,
DAS
– poprawka dziesiętna po odejmowaniu w kodzie BCD.
Mnożenie
MUL
– mnożenie bajtów lub słów 16-bitowych, bez uwzględnienia znaku,
IMUL – mnożenie bajtów lub słów 16-bitowych z uwzględnieniem znaku,
AAM
– poprawka po mnożeniu w rozpakowanym kodzie BCD.
Dzielenie
DIV
– dzielenie bajtów lub słów 16-bitowych bez znaku,
IDIV
– dzielenie bajtów lub słów z uwzględnieniem znaku,
AAD
– poprawka przed dzieleniem w rozpakowanym kodzie BCD,
CBW
– zamiana bajtu na słowo,
CWD
– zamiana słowa na podwójne słowo (32-bitowe),
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
26
Grupa logiczna
NOT
– negacja (dopełnienie) bajtu lub słowa,
AND
– iloczyn logiczny bajtów lub słów,
OR
– suma logiczna bajtów lub słów,
XOR
– operacja exclusiwe-or bajtów lub słów,
TEST
– porównanie logiczne (test) bajtów lub słów.
Przesunięcia
SHL
– przesunięcie logiczne w lewo bajtu lub słowa,
SAL
– przesunięcie arytmetyczne (w kierunku bitów starszych) bajtu lub słowa,
SHR
– przesunięcie logiczne w prawo bajtu lub słowa,
SAR
– przesunięcie arytmetyczne w prawo bajtu lub słowa,
ROL
– przesunięcie cykliczne w lewo bajtu lub słowa.
ROR
– przesunięcie cykliczne w prawo bajtu lub słowa,
RCL
– przesunięcie cykliczne w lewo z bitem przeniesienia bajtu lub słowa,
RCR
– przesunięcie cykliczne w prawo z bitem przeniesienia bajtu lub słowa.
Tryby adresowania procesora 8086
Program pracy komputera jest zapisywany ciągiem wektorów binarnych
zarejestrowanych w jego pamięci. Zawiera on zbiór rozkazów wykonujących operacje na
danych binarnych. Dane do operacji są zawarte w pamięci, w rejestrach otaczających procesor
lub buforach pamięci pośredniczących, usytuowanych między procesorem i urządzeniami
WE/WY. Lokacja danych jest definiowana za pomocą określonych kombinacji wartości
zmiennych adresowych. Długość słowa adresowego określa liczbę adresowanych komórek
pamięci. Najprostsza deklaracja bieżącego adresu polega na podaniu w programie wszystkich
bitów adresowych. Taka zasada adresacji jest jednak najkosztowniejsza, zajmuje bowiem
najwięcej pamięci operacyjnej, a czas realizacji takiego programu jest najdłuższy. W celu
uproszczenia procedur adresacji wprowadzono szereg dodatkowych sposobów określania
bieżącego (fizycznego) adresu operandu.
W odniesieniu do adresowania procesora 8086 i pochodnych wyróżniono trzy
podstawowe zapisy adresów:
– adres fizyczny,
– adres logiczny,
– adres efektywny.
Adres logiczny
Adres logiczny składa się z bazy (inaczej adresu początku segmentu) zawartej w jednym
z czterech rejestrów segmentowych – CS, DS, SS i ES oraz przemieszczenia liczone go od
bazy. Schemat ideowy metody wyznaczania adresu fizycznego pokazano na rys. 22. Blok
BIU przesuwa wektor adresowy bazy o cztery bity w kierunku pozycji starszych i dodaje do
niego 16-bitowy wektor przemieszczenia. Następne adresy wylicza się na podstawie adresów
poprzednich operandu i modyfikatorów adresów. Modyfikator jest zawarty w określonym
rejestrze procesora lub w komórce pamięci. Przez umiejętne korzystanie z dostępnych trybów
adresacji można uzyskać znaczny wzrost efektywności obliczeń komputera.
Adres fizyczny
Adres fizyczny określa stan 20-bitowego wektora zewnętrznego, lokalizującego 1 MB
komórek pamięci, od 00000 H do FFFFF H. Pisząc program w języku maszynowym,
programista używa pojęcia adresu logicznego, operując krótszym formatem adresu. Jeśli to jest
16-bitowy adres będziemy dodawać cztery bity na najstarszych pozycjach (od bitu 16 do 19.)
w przedziale wartości od OH do FH, będziemy adresować 16 segmentów po 64 KB każdy.
Tego typu organizacja adresów została przyjęta w procesorach 8086 firmy Intel.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
27
Rys. 22. Wyznaczanie 20-bitowego adresu fizycznego [7]
Adres efektywny
W literaturze często spotyka się również termin adres efektywny, który jest wartością
przemieszczenia (offset) wskazującego położenie komórki pamięci w bieżącym segmencie,
licząc od początku segmentu.
Tryby adresowania
Dlatego żeby zwiększyć wydajność sposobów programowania procesorów istnieje kilka
trybów programowania, które stosowane są w zależności od wymaganej efektywności. W tym
miejscu skupimy się tylko na tych podstawowych.
Adresowanie bezpośrednie
Adresowanie bezpośrednie (ang. direct addressinig) polega na podaniu pełnego adresu
operanda bezpośrednio w programie. Ten adres jest bezpośrednim identyfikatorem lokacji
komórki pamięci lub rejestru komputera.
Na rysunku 23 podano przykład przekazywania danych między wybranymi rejestrami
wewnętrznymi procesora; z pary BX do akumulatora 16-bitowego AX. Adresy operandów są
zapisane w kodzie rozkazu przesyłu danych. Rysunek a) przedstawia stan rejestrów przed
a rysunek b) po operacji.
Rys. 23. Przykład adresacji bezpośredniej, dla przekazywania danych z rejestru do rejestru [7]
Na następnym rysunku przedstawiono inny przykład adresacji bezpośredniej dla
przekazywania danych z komórki pamięci wskazywanej przez adres adr do podanego
w rozkazie rejestru akumulatorowego.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
28
Do rejestru AX wpisane zostają dwa kolejne bajty słowa 16-bitowego, zapisane
w pamięci według kolejności: młodszy a następnie starszy bajt słowa PAO (Pamięci
Operacyjnej).
Rys. 24. Przykład transferu danych z pamięci (PAO) komputera do wskazanego rejestru (AX) z adresacją
bezpośrednią (adr) [7]
Adresowanie pośrednie
Adresowanie pośrednie (ang. indirect addressing) polega na wskazywaniu lokalizacji
operandu za pomocą zawartości określonego rejestru procesora lub komórki pamięci
operacyjnej (PAO). Procesor dokonuje automatycznej zmiany zawartości tego
rejestru/komórki pamięci (ang. increment lub decrement) po wykonaniu operacji adresacji.
MOV AX,[BX] ; wartość BX jest 16-bitowym adresem: 42, 43.
Rys. 25. Przykład adresacji pośredniej zawartością [BX] wskazanego rejestru wewnętrznego mikroprocesora [7]
Do tej grupy zaliczyć można również adresowanie stosu pamięci; zawartością
specjalnego rejestru zwanego wskaźnikiem stosu (ang. SP – Stack Pointer).
Adresowanie względne
Adres względny (ang. relative address) obliczamy względem adresu początku strony (sekcji)
przez dodanie do niego zawartości określonego rejestru wewnętrznego procesora. Jest to tzw.
przemieszczenie adresowe (ang. DISP – Displacement lub Offset). Przemieszczenie dotyczy
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
29
adresu wewnątrz strony – od adresu bazy o określaną liczbę komórek pamięci. Na rys. 26 jest
podany przykład adresacji względnej zawartością rejestru BX z przemieszczeniem 2.
Rys. 26. Przykład adresacji względnej, zawartością rejestru bazowego BX z przemieszczeniem 2 [7]
Operacja: MOV AX,[BX] + 2 oznacza wpisanie do rejestru AX zawartości komórki
pamięci wskazywanej przez zawartość rejestru BX – bazy i przemieszczenia o 2 komórki
pamięci (Offset = 2) oraz kolejnego bajtu w pamięci. Dane są czytane z pamięci w kolejności
młodszy bajt a następnie starszy bajt i w takiej kolejności wpisywane w odpowiednie części
rejestru AX.
Adresowanie natychmiastowe
Zapis danych w komórce pamięci następującej po lokacji kodu operacji nazywa się
adresowaniem natychmiastowym (ang. immediate addressing). Co oznacza, że w polu
operandu występującym po kodzie operacji zapisane są dane dla tej operacji. Przykład
adresowania natychmiastowego przedstawiono na rys. 27.
Rys. 27. Przykład adresacji natychmiastowej (względnej z zawartością IP z przemieszczeniem 0) [7]
Przykład ten można również uznać za szczególny przypadek adresacji względnej
z adresem bazy zawartym we wskaźniku rozkazów (IP) z przemieszczeniem 0.
Adresowanie indeksowane
Adres indeksowany (ang. indexed address) obliczamy jako sumę podanego w rozkazie
adresu i zawartości rejestru indeksowego [SI], np: MOV AX, adr[SI] oznacza wpisanie do
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
30
rejestru AX zawartości komórki pamięci adresowanej sumą adresu adr i zawartości rejestru
indeksowego [SI]. Etykieta (adr=41H) + [SI] określa 16-bitowy adres: 44,45. Na rysunku
poniżej przedstawiono przykład adresacji indeksowanej z indeksem [SI]=3 dla przekazywania
danych z dwóch komórek pamięci o adresach 44H i 45H do 16-bitowego rejestru
wewnętrznego procesora, AX.
Rys. 28. Przykład adresacji indeksowanej dla transferu danych z pamięci do rejestru procesora [7]
Oprócz wymienionych poprzednio czterech podstawowych trybów adresacji spotykamy
różne kombinacje tych technik. Na przykład w mikroprocesorach firmy Intel można spotkać
kombinację adresacji pośredniej z indeksowaną. W tym celu procesor wyposażono
w specjalny rejestr bazowy BP (ang. Base Pointer) – wskaźnik bazy.
Operacja: MOV AX, [BP][SI] oznacza wpisanie do rejestru AX zawartości dwóch komórek
pamięci o adresach określanych sumą zawartości rejestru BP - adresu bazowego i rejestru SI –
indeksu przemieszczenia. Przykład na rys. 29 ilustruje zasady realizacji operacji
przemieszczenia danych, z pamięci operacyjnej do rejestru AX, z adresowaniem pośrednim
indeksowanym.
Rys. 29. Przykład adresacji pośredniej indeksowanej [7]
Aby zaprogramować układ procesorowy należy skorzystać z dwóch narzędzi
programistycznych. Jedno z nich to TAsm lub jego inny odpowiednik funkcjonalny. Jest to
rodzaj kompilatora, który ze zwykłego pliku tekstowego z rozszerzeniem *.asm generuje plik
z rozszerzeniem *.obj będącego produktem wejściowym dla konsolidatora TLink. Ten z kolei
generuje wynikowy z rozszerzeniem *.exe lub *.com w zależności od ustawienia sposobu
linkowania pliku.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
31
Powyższe darmowe narzędzia, lub ich odpowiedniki funkcjonalne, dostępne są w sieci
Internet. Niektóre komputery wymagają jeszcze obecności pliku rtm.exe w katalogu
z obrabianym plikiem. Ponieważ są to narzędzia działające w trybie tekstowym więc
najwygodniej jest umieścić te pliki w katalogu np. na dysku C: . przykładowa ścieżka dostępu
mogłaby wyglądać następująco C:\mój katalog\ . pierwsze próby z programowaniem
w asemblerze zalecam prowadzić mając zainstalowany system operacyjny Windows 98, gdzie
system DOS nie jest implementowany softwarowo (jak ma to miejsce w Windows XP).
Nowsze systemy operacyjne Microsoft wymagają dodatkowych bibliotek systemowych,
o które będzie dopominać się kompilator w swoich raportach o błędach.
Rys. 30. Ścieżka dostępu do plików
Zawartość katalogu roboczego musi zawierać pliki jak na poniższym slajdzie.
Na wszelki wypadek należy dołączyć plik rtm.exe.
Rys. 31. Zawartość katalogu
W pliku przyklad.txt piszemy kod programu w asemblerze. Następnie zapisujemy plik
z rozszerzeniem *.asm.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
32
Rys. 32. Przykładowy program w asemblerze
Następnym krokiem jest wywołanie wiersza poleceń i przeprowadzenie operacji
przekształcenia pliku poleceniem
tasm przyklad.asm
Rys. 33. Pierwsza faza kompilacji
Kompilator pokazuje informacje o ewentualnych błędach kompilacji i wielkości
zajętej pamięci operacyjnej.
Następnym narzędziem, którego należy użyć jest konsolidator generujący plik *.exe
lub *.com. Jego zadaniem jest przekształcenie plików wynikowych w pliki wykonywalne.
Rys. 34. Tworzenie pliku wykonywalnego
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
33
Wynikiem działania polecenia zostanie wygenerowany plik wykonywalny.
Jeszcze jednym narzędziem, który bardzo ułatwia pracę jest Turbo Debugger znany
pod nazwą TD.exe. Pozwala on na krokowe wykonywanie programu oraz analizę jego kodu
źródłowego, zawartości rejestrów i pamięci.
Rys. 35. Ekran debugera
4.2.2. Pytania sprawdzające
1.
2.
3.
4.
5.
6.
7.
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
Jakie są zadania procesora w układzie?
Z jakich bloków funkcjonalnych składa się procesor?
Czy wiesz co oznacza pojęcie rejestru procesora?
Jakie są funkcje rejestrów?
Czy wiesz co to jest tryb pracy procesora?
Czy potrafisz scharakteryzować wybrany tryb pracy procesora?
Co to jest tryb adresowania procesora?
4.2.3. Ćwiczenia
Ćwiczenie 1
Omów sposób działania wybranego modelu procesora.
Sposób wykonania ćwiczenia
1)
2)
3)
4)
Aby wykonać ćwiczenie, powinieneś:
odszukać w materiałach schemat blokowy procesora,
określić funkcje poszczególnych bloków,
dokonać analizy ich działania pod kątem pracy całości
zapisać spostrzeżenia na arkuszu papieru.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
34
−
−
Wyposażenie stanowiska pracy:
schematy blokowe procesorów,
arkusz papieru, flamastry.
Ćwiczenie 2
Scharakteryzuj przeznaczenie poznanych typów rejestrów segmentowych.
Sposób wykonania ćwiczenia
1)
2)
3)
4)
Aby wykonać ćwiczenie, powinieneś:
odszukać w materiałach opis szukanych rejestrów,
określić funkcje jakie pełnią w procesorze,
scharakteryzować do jakich celów są wykorzystywane,
zapisać spostrzeżenia na arkuszu papieru.
−
−
Wyposażenie stanowiska pracy:
schematy blokowe procesorów,
arkusz papieru, flamastry.
Ćwiczenie 3
Opisz wybrany tryb pracy procesora.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) odszukać w materiałach opis trybów pracy procesorów,
2) przeanalizować jeden tryb pracy dla wybranego procesora,
3) zapisać spostrzeżenia na arkuszu papieru.
−
Wyposażenie stanowiska pracy:
arkusz papieru, flamastry.
Ćwiczenie 4
Scharakteryzuj podstawowe operacje matematyczne operujące na 8-u bitach.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) odszukać w materiałach opis operacji matematycznych realizowanych przez procesory,
2) wybrać te z nich, które mogą operować na słowie ośmiobitowym,
3) zapisać spostrzeżenia na arkuszu papieru.
−
Wyposażenie stanowiska pracy:
arkusz papieru, flamastry.
Ćwiczenie 5
Scharakteryzuj dowolny tryb adresowania i zaprogramuj procesor.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
35
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) odszukać w materiałach opisy trybów adresowania procesorów,
2) wybrać jeden z nich i określić, czym różni się od pozostałych i jakiego rodzaju komórki
pamięci uczestniczą w przesyłaniu danych w takiej operacji,
3) napisać krótki program w notatniku,
4) korzystając z programów Tasm, Link oraz TD utworzyć program wynikowy.
−
−
Wyposażenie stanowiska pracy:
arkusz papieru, flamastry,
komputer z oprogramowaniem.
4.2.4. Sprawdzian postępów
Czy potrafisz:
1)
2)
3)
4)
5)
6)
7)
8)
wyjaśnić pojęcie procesora?
wyjaśnić sposób działania procesora?
opisać bloki z których składa się procesor?
określić pojęcie rejestru procesora?
wyjaśnić do czego służą rejestry?
wyjaśnić co to jest tryb pracy procesora?
scharakteryzować wybrany tryb pracy procesora?
wyjaśnić pojęcie trybu adresowania?
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
36
Tak








Nie








4.3.
System mikroprocesorowy
4.3.1. Materiał nauczania
CPU
ROM RAM
I/O
Adres
Dane
sterowanie
Rys. 36. Schemat blokowy systemu mikroprocesorowego [8]
−
−
−
−
−
Typowy system mikroprocesorowy składa się z następujących elementów:
mikroprocesora CPU,
pamięci stałej ROM,
pamięci operacyjnej RAM,
układów wejścia-wyjścia I/O,
układów sterujących przepływem informacji zwanymi szyną systemową, która obejmuje
m.in. magistralę danych, adresową i sterującą.
Ponieważ część tych elementów zostało omówionych poprzednio skupimy się tylko na
tych ostatnich.
Układy wejścia-wyjścia.
Urządzeniami peryferyjnymi komputera nazywamy urządzenia zapewniające jego
komunikację z otoczeniem bądź jego urządzenia wykonawcze. Nazwa urządzenia peryferyjne
może być nieco myląca, gdyż sugeruje umieszczenie tych urządzeń poza komputerem, co nie
zawsze jest prawdą (przykład: stacje dysków). Urządzenia peryferyjne nie komunikują się
z systemem bezpośrednio, lecz za pomocą specjalnych układów zwanych interfejsem bądź
kontrolerami tych urządzeń. Z punktu widzenia systemu układy te stanowią układy
wejścia/wyjścia.
Typowymi urządzeniami wejściowymi są: klawiatura, mysz,
Urządzenia wyjściowe to np.: drukarka, monitor, ploter.
Urządzenia, w przypadku których transmisja danych przebiega w obu kierunkach to
wszelkiego rodzaju nośniki pamięci np. dysk twardy, stacja dysków elastycznych.
Przyczyny, dla których układy wejścia/wyjścia muszą istnieć, są następujące:
format informacji dostarczanej przez system jest różny od formatu informacji urządzenia
peryferyjnego,
− parametry elektryczne sygnałów w systemie i urządzeniu peryferyjnym są różne,
− występuje różnica w szybkości transmisji informacji.
Wiadomą rzeczą jest fakt, iż wszystkie procesy zachodzące w komputerze są wynikiem
wykonywania pewnego programu. Innymi słowy, do poprawnej pracy komputera potrzebny
−
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
37
jest zarówno sprzęt (ang. hardware), jak i oprogramowanie (ang. software). Dotyczy to
oczywiście także obsługi urządzeń peryferyjnych. Sprzętem są tu układy wejścia/wyjścia lub
inaczej interfejs danego urządzenia. Oprogramowaniem są tak zwane sterowniki programowe
(ang. driver) czyli oprogramowanie niezbędne do poprawnej pracy danego urządzenia
peryferyjnego. Każde urządzenie peryferyjne musi korzystać z określonego układu
wejścia/wyjścia. Nie oznacza to jednak, że układ taki zawsze znajduje się na karcie
montowanej w gnieździe rozszerzającym. Rozwiązanie takie zapewnia większą elastyczność
budowy komputera, lecz nie jest konieczne. Interfejsy najbardziej popularne umieszcza się
bezpośrednio na płycie głównej. Przykładami mogą być: sterownik klawiatury, porty
szeregowe (RS 232C), równoległe czy też interfejsy dysków elastycznych lub dysków
twardych (na przykład EIDE, SATA).
W celu zapewnienia współpracy układów wejścia/wyjścia z systemem wymagane są
pewne zasoby systemu. Należą do nich: adresy w przestrzeni adresowej pamięci, adresy
w przestrzeni adresowej układów wejścia/wyjścia, sygnały zgłoszeń przerwań.
Część urządzeń peryferyjnych komunikuje się z systemem wykorzystując tzw.
mechanizm przerwań. Działanie to polega na tym, że mikroprocesor przerywa wykonywanie
swojego bieżącego programu i zaczyna wykonywać podprogram obsługi przerwania
np. wypisuje na ekranie monitora ciąg znaków, po czym wraca do przerwanej pracy.
Magistrala standardowa
W czasie pracy komputera wykorzystywane są urządzenia peryferyjne do wprowadzania
i wyprowadzania informacji. Mimo dużej różnorodności tych urządzeń, techniki realizacji
podłączeń peryferii z jednostką centralną zostały znormalizowane i zapisane jako standard
międzynarodowy.
Na rysunku przedstawiony został schemat blokowy komputera wyróżniający podstawowe
układy, magistrale i złącza biorące udział w procesach wymiany informacji między jednostką
centralną pamięcią operacyjną i urządzeniami zewnętrznymi (peryferyjnymi). Złącza
standardowe są montowane zwykle na karcie głównej komputera. Takie gniazda nazywa się
popularnie slotem. Umożliwiają one rozbudowę komputera o dodatkowe układy korzystające
z sygnałów standardowych, pozwalających na bezpośrednią komunikację z procesorem. Są to
linie adresowe, linie danych oraz linie sygnałów sterujących.
Urządzenia zewnętrzne wykonują zadania określone przez użytkownika systemu, jak:
prezentacja informacji na monitorze ekranowym, czy zapis/odczyt informacji na/z dysku. Na
drodze sygnału zewnętrznego (bezpośredniego kontaktu z użytkownikiem) do procesora,
mają miejsce operacje przetwarzania formatu informacji przyjmowanej z urządzenia
wejściowego na standard wewnętrzny komputera lub odwrotnie - ze standardu wewnętrznego
komputera na lokalny format, właściwy dla urządzenia zewnętrznego. Układy odpowiedzialne
za realizację opisanych wyżej operacji zawarto w dwóch blokach: bloku konwersji sygnałów
standardowych karty głównej komputera na standard lokalny urządzenia peryferyjnego oraz
bloku konwersji standardu lokalnego na format zapisu lub prezentacji formacji
charakterystyczne dla urządzenia WE/WY.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
38
Rys. 37. Zasady podłączeń urządzeń peryferyjnych do jednostki centralnej komputera [8]
Oba te układy zostają połączone ze sobą za pomocą złącza lokalnego we/wy. Pośrednie
złącze lokalne zastosowano z myślą o daleko idącej specjalizacji firm produkujących same
urządzenia peryferyjne bądź same układy elektroniczne. Firmy najczęściej realizują je na
podstawie własnych rozwiązań technicznych, zgodnych jedynie z lokalnymi standardami
urządzenia peryferyjnego komputera, na poziomie styku układów. Wyróżnione wyżej układy
mogą być połączone w jeden blok sprzęgający wejściowo/wyjściowy.
Magistrala adresowa i magistrala danych procesora
W procesorze 8086 zastosowano tylko jedną zewnętrzną szynę WE/WY na której,
w określonym czasie (time shared bus), wystawiany jest adres i przesyłane są dane do
i z procesora. W celu określenia miejsca przechowywania informacji procesor musi być
wyposażony w dodatkowe układy zewnętrzne. W układach zewnętrznych procesora
zapamiętane zostają wartości wektorów adresowych i wektory danych. Na rysunku pokazano
schemat połączeń procesora z elementami jego najbliższego otoczenia.
Sygnałem zatrzasku adresów ALE (ang. Address Latch Enable) zostaje zapisany wektor
adresowy w bloku rejestrów 8282 (ang. Latch) taktowany sygnałem STB. Natomiast blok
8286 spełnia funkcję dwukierunkowego, trójstanowego wzmacniacza, zwiększającego
obciążalność linii danych.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
39
Rys. 38. Schemat organizacji połączeń zewnętrznych dla magistral procesora 8086/8088 [5]
W urządzeniach komputerowych stosuje się bloki pamięci, operujące standardowo bajtem
danych. Czytanie danych 16-bitową magistralą jest realizowane przez równoległe połączenie
dwóch modułów (banków) pamięci. Sygnał selekcji CS (ang. Chip select) modułów pamięci
otwiera drogę transmisji dla danych transmitowanych w kierunku określonym za pomocą
sygnałów RD i WR, odpowiednio: do lub z procesora. Jeśli sygnał CS jest aktywny jednocześnie
na obu modułach RAM, na magistrali danych pojawi się 16-bitowy wektor informacji.
W układzie pokazanym powyżej jednoczesną selekcję dwóch banków pamięci zrealizowano za
pomocą linii adresowej A0 (bajt młodszy) i sygnału sterującego BHE (dostęp do bajtu starszego).
W trakcie realizacji rozkazów komunikacji z pamięcią sygnał BHE = L (niski poziom
logiczny). Niska wartość na linii adresowej A0 oznacza podłączenie obu banków RAM
Operacje magistrali i sygnały sterujące
Rys. 39. Podstawowy cykl czasowy dla magistrali zewnętrznej [5]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
40
W cyklu zegarowym T1 układ sprzęgający magistrali (BIU) ustawia wartości adresów na
liniach magistrali zewnętrznej procesora - od ADO do AD 15 i od Al6 do A19 (dla procesora
8086). W T2 układ sprzęgający przełącza magistralę na bufory (BUFOR) transmisji danych
dla operacji czytania (RD) lub na linie odczytu danych dla operacji pisania (WR). W cyklach
T3 i T4 jest realizowana operacja przesyłu danych z procesora lub do procesora.
Stan oczekiwania na dane Tw jest wprowadzany między T3 i T4, gdy sygnał Ready jest
niski. Cykl obsługi magistrali zewnętrznej jest powtarzany przez układ sprzęgający magistrali
(BIU) w dwóch przypadkach:
− na żądanie układu wykonawczego EU, gdy komunikacja z otoczeniem jest częścią
rozkazu,
− gdy kolejka rozkazów nie jest do końca zapełniona.
Oprócz linii adresowych i linii danych procesor przyjmuje i wysyła sygnały sterujące
iinformacyjne. Linie: od A16/S3 do A19/S6 w cyklu Tj określają cztery najbardziej znaczące
bity adresowe, ale w cyklach T2, T3, Tw i T4 są to cztery starsze bity (S3 do S6) słowa
statusowego mikroprocesora.
S3 i S4 – określają stan aktywności rejestrów segmentowych aktualnie wykorzystywanych do
adresowania:
00 – gdy aktywny jest rejestr ES.
01 – gdy aktywny jest rejestr CS lub nie został użyty żaden z rejestrów (dla cykli
WE/WY i potwierdzenia przerwania),
10 – gdy aktywny jest rejestr SS,
11 – gdy aktywny jest rejestr DS.
S5=IF Przyjmuje wartość bitu flagowego przerwań.
S6= 0 Wartość stała zero.
BHE/S7 – jest sygnałem selekcji starszego bajtu danych (rys. 38) z banku pamięci w takcie
Ti, dla operacji zapisu, odczytu i potwierdzenia przerwania. W taktach T2, T3 i T4 wartość tej
zmiennej reprezentuje bit S7 statusu procesora. S7 wraz z dwoma innymi sygnałami koduje
osiem cykli maszynowych, pokazanych na rys. 39.
RD i WR – to wyjściowe sygnały trójstanowe, które taktują operacje czytania i pisania
danych niską wartością logiczną w taktach zegarowych T2–T4.
READY – jest sygnałem gotowości (wartość wysoka) pamięci lub układu WE/WY do
transferu danych. Wartość niska oznacza przejście procesora w stan oczekiwania
INTR – jest wejściowym sygnałem żądania przerwania maskowanego, z aktywnym
poziomem wysokim.
NMI – jest sygnałem żądania przerwania niemaskowalnego aktywizowany narastającym
zboczem tego sygnału.
TEST –jest sygnałem wejściowym, który umożliwia zatrzymanie pracy procesora. Poziom
wysoki (nieaktywny) na tym przewodzie oznacza zatrzymanie procesora. Poziom niski (co
najmniej przez sześć taktów zegarowych) oznacza kontynuowanie programu. TEST jest
synchronizowany narastającym zboczem impulsu CLK.
RESET – jest sygnałem wejściowym zerowania procesora.
M/IO – jest sygnałem wyróżniającym cykl współpracy z pamięcią (poziom wysoki) od cyklu
współpracy z portami WE/WY (poziom niski).
INTA – potwierdzenie przejścia procesora do obsługi żądania przerwania.
ALE – sygnał taktowania adresu, aktywny gdy na multipleksowanej magistrali procesora jest
wystawiany adres.
HOLD/HOLDA – sygnały sterowania bezpośrednim dostępem do pamięci. Odpowiednio
żądanie i potwierdzenie obsługiwane analogicznie jak w procesorach 8-bitowych.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
41
DT/R – sygnał wyjściowy określający kierunek przesyłania danych. Wartość wysoka oznacza
kierunek transmisji z procesora (T – transmiter), a wartość niska kierunek transmisji do
procesora (R – receiver).
DEN – wyjściowy sygnał sterowania buforami trój stanowymi; aktywny podczas każdego
cyklu zapisu i odczytu informacji oraz cyklu potwierdzenia przerwania.
RQ/GT0/GT1 i LOCK – są sygnałami określania dostępu do magistrali dla innych niż
procesor modułów.
QS0, QS1 – sygnały wskazujące rodzaj operacji wykonywanych na kolejce rozkazów (status
kolejki rozkazów):
00 – stan zawieszenia operacji dla kolejki rozkazów,
01 – pobranie pierwszego rozkazu z kolejki,
10 – wyzerowanie kolejki,
11 – stan pobranie bajtu rozkazu z kolejki.
Pamięć Cache
Coraz szybciej taktowane procesory wymagają coraz szybszych układów pamięci. Czas
przetwarzania prostego rozkazu nie jest zwykle dłuższy od pojedynczego cyklu zegarowego
(5 ns przy częstotliwości 200 MHz). Pamięć operacyjna współczesnych komputerów PC
zbudowana jest z układów scalonych DRAM, które cechuje czas dostępu większy o rząd
wielkości. Na cóż zdać się może procesor pracujący z tak dużą prędkością, jeśli czas
oczekiwania na kolejną porcję danych wynosi w najlepszym razie 50 ns. Istnieją oczywiście
typy pamięci (SRAM – Static RAM) mogące sprostać takim wymaganiom, ale ze względów
ekonomicznych (są kilkanaście razy droższe) nie można z nich zbudować całej pamięci
operacyjnej.
Dla zlikwidowania tego wąskiego gardła wprowadzona została pamięć podręczna
stanowiąca bufor o krótkim czasie dostępu (poniżej 10 ns). Rozwiązanie to jest ekonomicznie
uzasadnionym kompromisem: duża i tania pamięć główna wspierana jest przez małą, szybką
i nie aż tak drogą pamięć podręczną (Cache).
Rys. 40. Pamięć podręczna wspomagająca pamięć główną [5]
Rozwiązanie takie nie było by możliwe, gdyby nie jedna cenna właściwość
przetwarzanego przez komputery PC kodu: jest on stosunkowo spójny. Procesor „porusza się”
przez dłuższy czas w tym samym rejonie pamięci a nie skacze chaotycznie po całym
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
42
obszarze. Analizowane rozkazy ułożone są w pamięci sekwencyjnie (nie licząc oczywiście
rozgałęzień i skoków) a bloki danych też nie są świadomie rozpraszane po całej przestrzeni
adresowej. Rozważania teoretyczne i symulacje doprowadziły do wyznaczenia przybliżonych
rozmiarów takiego obszaru. Można przyjąć z prawdopodobieństwem równym 0,9 iż
większość odwołać do pamięci będzie się mieścić w bloku nie przekraczającym 16 kB.
Organizacja pamięci podręcznej
Pamięć podręczna zorganizowana jest w linijki (Cache Lines) o rozmiarach 16 lub 32
bajtów. Jest to najmniejsza porcja informacji, jaką pamięć podręczna wymienia z pamięcią
główną. System taki narzucony został dla zwiększenia wydajności. Większość kontrolerów
magistral realizuje zwielokrotniony cykl dostępu (Burst) bardzo szybko. Pamięć podręczna
„widzi” pamięć główną jako zbiór linijek, te z kolei pogrupowane są w zespoły zwane
stronami (Pages). Informacja o tym, które z linijek RAM znajdują się aktualnie w pamięci
cache przechowywana jest w katalogu pamięci podręcznej TRAM (TAG-RAM). Sposób
odwzorowywania linijek i stron pamięci głównej w bloku pamięci podręcznej może
przebiegać na jeden z trzech omówionych poniżej sposobów.
Mapowanie bezpośrednie (Direct Mapped)
Rys. 41. Mapowanie bezpośrednie [5]
W linijce 0 pamięci podręcznej znajduje się zawsze jakaś linijka 0 pewnej strony pamięci
RAM. Prostota konstrukcji i szybkość odszukiwania informacji (wystarczy przeprowadzić
tylko jedną operację porównania) są jedynymi zaletami takiego systemu. Układ cechuje
niestety brak elastyczności i mała efektywność, szczególnie jeśli dochodzi do częstych
skoków poza granicami stron. Jeżeli pamięć podręczna przechowuje linijkę n jakiejś strony
a system żąda dostarczenia linijki n strony następnej, kontroler musi usunąć ją z pamięci,
chociaż jest prawie pewne iż w chwilę potem system odwoła się do niej ponownie.
Pełna asocjacja (Fully Associative)
Organizacja z pełną asocjacją pozwala na składowanie dowolnej linijki RAM
w dowolnym miejscu pamięci podręcznej. W modelu tym nie ma symbolicznego podziału na
strony pamięci a operuje się wyłącznie linijkami.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
43
Rys. 42. Pełna asocjacja [5]
Ta optymalnie elastyczna organizacja ma jednak dużą wadę: odszukanie informacji
w pamięci podręcznej wymaga przeglądnięcia całego katalogu TRAM, bowiem poszukiwana
linijka może być na dowolnej pozycji. Konstrukcje tego typu mają uzasadnienie ekonomiczne
dla bloków pamięci podręcznej nieprzekraczających 4 kB.
Asocjacja zespołowa
Stanowi kombinację rozwiązań przedstawionych powyżej. Cechą charakterystyczną
architektury tego typu jest podział pamięci podręcznej na równe porcje, zwykle 2 lub 4 zwane
kanałami (ang. Ways).
Rys. 43. Asocjacja zespołowa [5]
Wymiar strony w pamięci RAM odpowiada rozmiarowi kanału w pamięci cache. Każdy
z kanałów administrowany jest zgodnie z regułami obowiązującymi dla organizacji typu
„mapowanie bezpośrednie”. System kontroli trafień ogranicza się do przeprowadzenia dwóch
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
44
lub maksymalnie czterech porównań: linijka o określonym numerze może znajdować się
tylko w jednej z dwóch (czterech) dopuszczalnych lokalizacji.
Reakcja pamięci podręcznej na żądanie udostępnienia danych zależy od implementacji
oraz od faktu, czy poszukiwane dane są w niej istotnie zawarte. Obecność danych w pamięci
cache nazywa się trafieniem (ang. Ciche Hit) i nie wymaga sięgania do pamięci głównej.
W sytuacji odwrotnej (Ciche Miss) uruchamiana jest magistrala pamięci i do pamięci
podręcznej sprowadzana jest nowa linijka.
4.3.2. Pytania sprawdzające
1.
2.
3.
4.
5.
6.
7.
8.
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
Co to jest system mikroprocesorowy?
Jakie są zasadnicze elementy systemu mikroprocesorowego?
Co to jest pamięć Cache?
Jakie są sposoby implementacji rozwiązań tego typu pamięci?
Co to jest magistrala systemowa?
Jakie zadania ma magistrala?
Co to są układy peryferyjne?
Jakie znasz operacje we/wy?
4.3.3. Ćwiczenia
Ćwiczenie 1
Scharakteryzuj elementy systemu mikroprocesorowego.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) wybrać spośród elementów przygotowanych przez nauczyciela te, o których mowa
w poleceniu,
2) posegregować je pod względem przeznaczenia i funkcji w systemie.
−
−
Wyposażenie stanowiska pracy:
elementy systemu procesorowego,
plansze i fotografie elementów systemu.
Ćwiczenie 2
Przedstaw koncepcje i rozwiązania pamięci Cache.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) przeczytać fragment Poradnika dla ucznia,
2) narysować odpowiednie schematy rozwiązań,
3) omówić narysowane schematy, zastanów się nad zaletami i wadami takich rozwiązań.
−
Wyposażenie stanowiska pracy:
papier do rysowania, flamastry.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
45
Ćwiczenie 3
Scharakteryzuj zasadę działania i sposób w jaki procesor komunikuje się z otoczeniem za
pomocą magistrali.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) przeczytać fragment Poradnika dla ucznia,
2) narysować odpowiednie schematy rozwiązań,
3) omówić wybrane rozwiązania.
−
Wyposażenie stanowiska pracy:
papier do rysowania, flamastry.
Ćwiczenie 4
Wyjaśnij w jaki sposób działają układy wejścia/wyjścia.
Sposób wykonania ćwiczenia
1)
2)
3)
4)
Aby wykonać ćwiczenie, powinieneś:
przeczytać fragment Poradnika dla ucznia,
wybrać odpowiednie moduły rozszerzeń z zestawu przygotowanego przez nauczyciela,
narysować odpowiednie schematy rozwiązań,
omówić wybrane rozwiązania.
−
−
Wyposażenie stanowiska pracy:
karty rozszerzeń,
papier do rysowania, flamastry.
Ćwiczenie 5
Scharakteryzuj operacje wejścia/wyjścia.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) przeczytać fragment Poradnika dla ucznia,
2) narysować odpowiednie schematy rozwiązań,
3) wybrać do nich odpowiednie moduły rozszerzeń z zestawu przygotowanego przez
nauczyciela,
4) scharakteryzować wybrane rozwiązania.
−
−
Wyposażenie stanowiska pracy:
karty rozszerzeń,
papier do rysowania, flamastry.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
46
4.3.4. Sprawdzian postępów
Czy potrafisz:
1)
2)
3)
4)
5)
6)
7)
8)
określić co to jest system mikroprocesorowy?
opisać jakie są zasadnicze elementy systemu mikroprocesorowego?
określić co to jest pamięć Cache?
zidentyfikować sposoby implementacji rozwiązań tego typu pamięci?
scharakteryzować to jest magistrala systemowa?
nazwać zadania magistrali?
wyjaśnić co to są układy peryferyjne?
dokonać analizy operacji we/wy?
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
47
Tak








Nie








5. SPRAWDZIAN OSIĄGNIĘĆ
INSTRUKCJA DLA UCZNIA
1
2
3
4
5
6
7
8
9
Przeczytaj uważnie instrukcję.
Podpisz imieniem i nazwiskiem kartę odpowiedzi.
Zapoznaj się z zestawem zadań testowych.
Test zawiera 20 zadań. Do każdego zadania dołączone są 4 możliwości odpowiedzi.
Tylko jedna jest prawidłowa.
Udzielaj odpowiedzi na załączonej karcie odpowiedzi, stawiając w odpowiedniej rubryce
znak X. W przypadku pomyłki należy błędną odpowiedź zaznaczyć kółkiem, a następnie
ponownie zakreślić odpowiedź prawidłową.
Zadania wymagają stosunkowo prostych obliczeń, które powinieneś wykonać przed
wskazaniem poprawnego wyniku.
Pracuj samodzielnie, bo tylko wtedy będziesz miał satysfakcję z wykonanego zadania.
Jeśli udzielenie odpowiedzi będzie Ci sprawiało trudność, wtedy odłóż jego rozwiązanie
na później i wróć do niego, gdy zostanie Ci wolny czas.
Na rozwiązanie testu masz 60 minut.
Powodzenia!
ZESTAW ZADAŃ TESTOWYCH
1.
Podstawki typu Socket 478 stosuje się jako gniazda dla
a) procesorów firmy Intel typu np. Pentium 4.
b) pamięci statycznych i dynamicznych.
c) kart graficznych o dużych wymaganiach energetycznych.
d) pamięci typu EEPROM.
2.
Procesor 80386 firmy Intel był pierwszym procesorem rodziny x86 architekturze
a) 12-bitowej.
b) 16-bitowej.
c) 32-bitowej.
d) 64-bitowej.
3.
Podstawową różnicą pomiędzy pamięciami typu SRAM i DRAM jest
a) pamięć DRAM jest pamięcią, która wymaga procesu odświeżania zawartości.
b) pamięć DRAM jest pamięcią, którą używa się niezmiernie rzadko.
c) pamięć SRAM są dużo tańsze niż DRAM.
d) pamięci statyczne używane są do budowy pamięci operacyjnej komputera.
4.
Pamięć EEPROM jest typem pamięci
a) której zawartość jest ustalona w procesie produkcji.
b) w której zmiana zawartości komórek odbywa się w sposób elektryczny.
c) której zawartość może być tylko raz modyfikowana.
d) dynamicznej nie wymagającej odświeżania.
5.
W pamięciach typu ROM zawartość pamięci może być
a) dowolnie zmieniana w zależności od potrzeb.
b) modyfikowana jeden raz.
c) tylko odczytywana.
d) zmieniona przy pomocy promieniowania UV.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
48
6.
Organizacją pamięci nazywamy sposób
a) ułożenia kości pamięci na płycie głównej komputera.
b) podziału obszaru pamięci na komórki pamięci.
c) podziału obszaru pamięci na słowa pamięci.
d) dostępu procesora do słów pamięci.
7.
Jednostka arytmetyczno-logiczna mikroprocesora
a) pozwala bezpośrednio zaadresować porty I/O systemu mikroprocesorowego.
b) umożliwia wykonanie operacji odejmowania na liczbach bez znaku.
c) realizuje przesyłanie danych pomiędzy komórkami pamięci.
d) wykonuje tylko operacje logiczne na zawartości rejestrów procesora.
8.
Zadaniem układu wykonawczego procesora jest
a) określanie adresu komórek pamięci zewnętrznej.
b) przesyłanie danych na potrzeby jednostki ALU.
c) dekodowanie i wykonywanie rozkazów gromadzonych w kolejce rozkazów.
d) adresowanie pamięci przy pomocy rejestrów segmentowych procesora.
9.
Zastosowanie rejestrów użytkownika np. AX jako pamięci typu ciche
a) możliwe jest tylko w trybie pracy chronionej.
b) stosuje się w celu zwiększenia szybkości obliczeń zmiennoprzecinkowych.
c) możliwe jest po odpowiednim przeprogramowaniu kontrolera pamięci ciche.
d) nie jest możliwe.
10. Zaadresowanie max. 1MB pamięci operacyjnej
a) umożliwia rzeczywisty tryb pracy procesora 8086.
b) umożliwia chroniony tryb wirtualny procesora 80286.
c) nie jest możliwe.
d) umożliwia tylko procesor klasy Pentium 4.
11. Procesor klasy 80386 może pracować
a) tylko w trybie rzeczywistym.
b) w trybie rzeczywistym lub chronionym.
c) w trybie rzeczywistym, chronionym trybem wirtualnym lub trybie zadań wirtualnych
8086.
d) w trybie rzeczywistym lub trybie zadań wirtualnych 8086.
12. Instrukcji CALL przedstawia polecenie
a) przesłania danych do portu zewnętrznego.
b) będące instrukcją skoku bezwarunkowego do podprogramu.
c) skoku do podprogramu przerwania.
d) nie będącym poleceniem asemblera 8086.
13. Polecenie zapisane jako MOV AX,50 to
a) przykład pośredniego trybu adresowania.
b) przesłanie do akumulatora zawartości komórki pamięci o adresie 50.
c) bezpośrednie przesłanie do akumulatora wartości 50.
d) nie jest poleceniem asemblera 8086.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
49
14. Systemowo do realizacji pętli wyliczanych LOOP jako licznika kroków używa się
a) dowolnego z dostępnych rejestrów użytkownika.
b) ściśle określonego rejestru CX.
c) flagi P w rejestrze flagowym procesora.
d) odpowiednio zdefiniowanego operacyjnie rejestru dodatkowego ES.
15. System mikroprocesorowy oparty na procesorze klasy 80xx
a) można rozszerzać w miarę potrzeb użytkownika do pewnych granic.
b) nie ma możliwości rozbudowywania i wymiany podzespołów.
c) ma możliwość wymiany tylko kart urządzeń we/wy.
d) ma możliwość wymiany tylko kości pamięci.
16. Długość linijki w pamięci podręcznej cache jest
a) dowolnie ustalana przez użytkownika komputera.
b) zorganizowana w bloki 16 lub 32 bajtowe.
c) dwukrotnie dłuższa niż pamięci głównej.
d) stanowi połowę długości słowa pamięci głównej.
17. Magistrala danych i magistrala adresowa w systemie procesora 8086
a) to fizycznie ta sama wiązka przewodów spełniająca dwie funkcje.
b) to pojęcia wirtualne fizycznie nie istniejące w systemach mikroprocesorowych.
c) istnieją fizycznie niezależnie w systemie.
d) taktowane są dwoma, niezależnymi generatorami i stanowią dwa niezależne układy
w systemie.
18. Urządzenie peryferyjne to takie, które
a) dołącza się do komputera przy pomocy dodatkowych przewodów zewnętrznych.
b) są urządzeniami wykonawczymi komputera.
c) umożliwia komunikację systemu z otoczeniem lub pełni funkcje wykonawcze dla
systemu.
d) pobierają dodatkowe dane z otoczenia dla systemu procesorowego.
19. Operacje we/wy realizowane są
a) tylko przy pomocy samego mikroprocesora.
b) za pomocą mikroprocesora, systemowych kart rozszerzeń (interfejsów) oraz pamięci.
c) przez system bez potrzeby angażowania procesora.
d) tylko przy użyciu interfejsów i pomięci operacyjnej systemu mikroprocesorowego.
20. Przykładowe operacje we/wy to
a) odczyt danych z komórek pamięci.
b) przesłanie danych na magistralę.
c) wyświetlanie znaków na monitorze pobieranie znaków z klawiatury.
d) restart procesora.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
50
KARTA ODPOWIEDZI
Imię i nazwisko ...............................................................................
Uruchamianie układów i systemów mikroprocesorowych
Zakreśl poprawną odpowiedź.
Nr
zadania
Odpowiedź
Punkty
1
a
b
c
d
2
a
b
c
d
3
a
b
c
d
4
a
b
c
d
5
a
b
c
d
6
a
b
c
d
7
a
b
c
d
8
a
b
c
d
9
a
b
c
d
10
a
b
c
d
11
a
b
c
d
12
a
b
c
d
13
a
b
c
d
14
a
b
c
d
15
a
b
c
d
16
a
b
c
d
17
a
b
c
d
18
a
b
c
d
19
a
b
c
d
20
a
b
c
d
Razem:
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
51
6. LITERATURA
1.
2.
3.
4.
5.
6.
7.
Gałka P., Gałka P.: Podstawy programowania mikrokontrolera 8051. MIKOM,
Warszawa 2002
Krzyżanowski Ryszard: Układy mikroprocesorowe. MIKOM, Warszawa 2004
Majewski Jacek: Programowanie mikrokontrolera 8051. BTC, Warszawa 2005
Metzger P., Rydzewski A.: Anatomia PC – Mikrokomputery jednoukładowe rodziny
MCS-51. WSiP. Warszawa 1999
Metzger P.: Anatomia PC. Helion, Gliwice 2002
www.ire.pw.edu.pl/~rois/dydaktyka/syko/8086.pdf
www.wikipedia.pl
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
52
Download