technik.teleinformatyk 312[02] z1.01_u
TRANSCRIPT
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 1
MINISTERSTWO
EDUKACJI
NARODOWEJ
Ryszard Zankowski
Uruchamianie układów i systemów mikroprocesorowych
312[02].Z1.01
Poradnik dla ucznia
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 2
Wydawca Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy Radom
2007
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 3
Wydawca Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy, Radom 2007
SPIS TREŚCI 1. Wprowadzenie 3 2. Wymagania wstępne 5 3. Cele kształcenia 6 4. Materiał
nauczania 7
4.1. Charakterystyka procesorów i rodzajów pamięci 7
4.1.1. Materiał nauczania 7 4.1.2. Pytania sprawdzające 17
4.1.3. Ćwiczenia 17
4.1.4. Sprawdzian postępów 19
4.2. Zasada działania procesora 20
4.2.1. Materiał nauczania 20
4.2.2. Pytania sprawdzające 34
4.2.3. Ćwiczenia 34
4.2.4. Sprawdzian postępów 36
4.3. System mikroprocesorowy 37
4.3.1. Materiał nauczania 37 4.3.2. Pytania sprawdzające 45
4.3.3. Ćwiczenia 45
4.3.4. Sprawdzian postępów 47
5. Sprawdzian osiągnięć 48 6. Literatura 52
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 4
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” 5
Schemat układu jednostek modułowych
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,
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
Urz ą dzenia komputerowe
312[02].Z1.03
Budowanie i uruchamianie
zestawów komputerowych
312[02].Z1.04
Eksploatowanie i zabezpieczanie
urz ą dze ń komputerowych
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 6
− 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.
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” 7
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.
Pamięci typu RAM (ang. Random Access Memory), które tracą zawartość po wyłączeniu
zasilania:
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 8
– 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]
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 9
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” 10
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 przeznaczone do
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 11
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” 12
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” 13
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,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 14
– 232-pinowa, stosowane RIMM 32-bitowe, – 326-pinowa, stosowane RIMM 64-bitowe.
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” 15
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]
– Socket 4 – Intel Pentium 60-66 MHz.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 16
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]
– 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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 17
– 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
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. Czy wiesz co to jest pamięć o dostępie swobodnym?
2. Jak działa pamięć statyczna?
3. Jakie są różnice pomiędzy pamięcią statyczną i dynamiczną?
4. Czy wiesz co to jest pamięć typu ROM?
5. Jakie są różnice między pamięciami ROM i RAM?
6. Jak jest zbudowany moduł pamięci typu SIMM?
7. Czy potrafisz scharakteryzować pamięć np. typu DDR3?
8. 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.
Wyposażenie stanowiska pracy:
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 18
− 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,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 19
− karty katalogowe elementów.
Ć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:
Tak Nie
1) wyjaśnić pojęcie pamięci o dostępie swobodnym?
2) wyjaśnić pojęcie pamięci statycznej?
3) wyjaśnić pojęcie pamięci dynamicznej?
4) określić podstawowe różnice między pamięcią RAM i ROM?
5) wyjaśnić do czego służy sygnał RAS? 6) wyjaśnić budowę modułu typu SIMM?
7) scharakteryzować pamięć typu DDR3?
8) wyjaśnić pojęcie gniazda procesora?
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).
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 20
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),
– 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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 21
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).
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 22
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]
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 23
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.
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 24
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.
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 25
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 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,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 26
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
Mnożenie
– poprawka dziesiętna po odejmowaniu w kodzie BCD.
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
Dzielenie
– poprawka po mnożeniu w rozpakowanym kodzie BCD.
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),
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 27
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” 28
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” 29
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” 30
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 31
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 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]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 32
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.
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 33
W pliku przyklad.txt piszemy kod programu w asemblerze. Następnie zapisujemy plik
z rozszerzeniem *.asm.
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 34
Rys. 34. Tworzenie pliku wykonywalnego
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
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. Jakie są zadania procesora w układzie?
2. Z jakich bloków funkcjonalnych składa się procesor?
3. Czy wiesz co oznacza pojęcie rejestru procesora?
4. Jakie są funkcje rejestrów?
5. Czy wiesz co to jest tryb pracy procesora?
6. Czy potrafisz scharakteryzować wybrany tryb pracy procesora?
7. Co to jest tryb adresowania procesora?
4.2.3. Ćwiczenia
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 35
Ćwiczenie 1
Omów sposób działania wybranego modelu procesora.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie, powinieneś:
1) odszukać w materiałach schemat blokowy procesora,
2) określić funkcje poszczególnych bloków,
3) dokonać analizy ich działania pod kątem pracy całości 4) zapisać spostrzeżenia na arkuszu
papieru.
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
Aby wykonać ćwiczenie, powinieneś:
1) odszukać w materiałach opis szukanych rejestrów,
2) określić funkcje jakie pełnią w procesorze,
3) scharakteryzować do jakich celów są wykorzystywane, 4) 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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 36
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.
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:
Tak Nie
1) wyjaśnić pojęcie procesora?
2) wyjaśnić sposób działania procesora?
3) opisać bloki z których składa się procesor?
4) określić pojęcie rejestru procesora? 5) wyjaśnić do czego służą rejestry? 6)
wyjaśnić co to jest tryb pracy procesora? 7) scharakteryzować wybrany tryb pracy
procesora?
8) wyjaśnić pojęcie trybu adresowania?
4.3. System mikroprocesorowy
4.3.1. Materiał nauczania
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 37
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
jest zarówno sprzęt (ang. hardware), jak i oprogramowanie (ang. software). Dotyczy to
CPU ROM RAM I/O
Adres
Dane
sterowanie
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 38
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” 39
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” 40
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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 41
Rys. 39. Podstawowy cykl czasowy dla magistrali zewnętrznej [5]
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 42
HOLD/HOLDA – sygnały sterowania bezpośrednim dostępem do pamięci. Odpowiednio
żądanie i potwierdzenie obsługiwane analogicznie jak w procesorach 8-bitowych.
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]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 43
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 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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 44
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.
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).
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 45
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
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
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. Co to jest system mikroprocesorowy?
2. Jakie są zasadnicze elementy systemu mikroprocesorowego?
3. Co to jest pamięć Cache?
4. Jakie są sposoby implementacji rozwiązań tego typu pamięci?
5. Co to jest magistrala systemowa?
6. Jakie zadania ma magistrala?
7. Co to są układy peryferyjne?
8. 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
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 46
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.
Ć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
Aby wykonać ćwiczenie, powinieneś:
1) przeczytać fragment Poradnika dla ucznia,
2) wybrać odpowiednie moduły rozszerzeń z zestawu przygotowanego przez nauczyciela,
3) narysować odpowiednie schematy rozwiązań, 4) 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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 47
Wyposażenie stanowiska
pracy: − karty rozszerzeń,
− papier do rysowania, flamastry.
4.3.4. Sprawdzian postępów
Czy potrafisz:
Tak Nie
1) określić co to jest system mikroprocesorowy?
2) opisać jakie są zasadnicze elementy systemu mikroprocesorowego?
3) określić co to jest pamięć Cache?
4) zidentyfikować sposoby implementacji rozwiązań tego typu pamięci?
5) scharakteryzować to jest magistrala systemowa?
6) nazwać zadania magistrali?
7) wyjaśnić co to są układy peryferyjne? 8) dokonać analizy operacji we/wy?
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 48
5. SPRAWDZIAN OSIĄGNIĘĆ
INSTRUKCJA DLA UCZNIA 1 Przeczytaj uważnie instrukcję.
2 Podpisz imieniem i nazwiskiem kartę odpowiedzi.
3 Zapoznaj się z zestawem zadań testowych.
4 Test zawiera 20 zadań. Do każdego zadania dołączone są 4 możliwości odpowiedzi. Tylko
jedna jest prawidłowa.
5 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ą.
6 Zadania wymagają stosunkowo prostych obliczeń, które powinieneś wykonać przed
wskazaniem poprawnego wyniku.
7 Pracuj samodzielnie, bo tylko wtedy będziesz miał satysfakcję z wykonanego zadania.
8 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.
9 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ć
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 49
a) dowolnie zmieniana w zależności od potrzeb.
b) modyfikowana jeden raz.
c) tylko odczytywana.
d) zmieniona przy pomocy promieniowania UV.
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 50
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.
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.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 51
d) restart procesora.
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” 52
6. LITERATURA
1. Gałka P., Gałka P.: Podstawy programowania mikrokontrolera 8051. MIKOM, Warszawa
2002
2. Krzyżanowski Ryszard: Układy mikroprocesorowe. MIKOM, Warszawa 2004
3. Majewski Jacek: Programowanie mikrokontrolera 8051. BTC, Warszawa 2005
4. Metzger P., Rydzewski A.: Anatomia PC – Mikrokomputery jednoukładowe rodziny
MCS-51. WSiP. Warszawa 1999
5. Metzger P.: Anatomia PC. Helion, Gliwice 2002
6. www.ire.pw.edu.pl/~rois/dydaktyka/syko/8086.pdf
7. www.wikipedia.pl