lina_m@o2.pl 17/06/03
Opracowanie przykładowych pytań z „Organizacji Komputerów”
Odpowiedzi na wszystkie pytania są ze skryptu. Samą teorią ciężko jest zaliczyć (trzeba mieć max plus przynajmniej częściowo rozwiązane jedno z zadań). Właściwie wszystkie z tych pytań pojawiły na egzaminach w zeszłym roku (2002).
Tekst pisany w taki sposób => oznacza info dodatkowe nie znajdujące się w skrypcie
A na niebiesko komentarze
A. Podstawowe zasady działania komputera
1. Omówić podstawowe zasady wykonywania programu przez procesor.
A – pobranie rozkazu
B – dekodowanie rozkazu
C – obliczanie adresu
F – wyznaczenie położenia
efektywnego kolejnej instrukcji do wykonania
D – obliczanie adresu
fizycznego
E – wykonanie rozkazu
A – rozkaz jest pobierany z pamięci podręcznej lub jeśli się tam nie znajduje to jest pobierany z pamięci
operacyjnej
B – rozkaz dekodowany jest na język zrozumiały dla procesora
C – obliczana jest odległość od adresu bazowego czyli offset (przesunięcie) który w tym przypadku jest
równy (E)IP
D – obliczany jest adres fizyczny = zawartość rejestru segmentowego CS * 16 + (E)IP
F – wyznaczane jest położenie kolejnej instrukcji do wykonania
Jeżeli wykonana instrukcja była nie sterująca ( nie zmieniła kolejności wykonywania
Rozkazów) to:
(E)IP = (E)IP + <liczba bajtów aktualnie wykonywanej instrukcji>
Jeżeli wykonana instrukcja była warunkowa to (E)IP zmienia się w zależności od testowanego
warunku:
Gdy spełniony to:
(E)IP = (E)IP + <liczba bajtów aktualnie wykonywanej instrukcji> + <zawartość pola adresowego instrukcji>
Gdy nie spełniony to:
Jeżeli wykonywana instrukcja jest sterującą bezwarunkową to:
2. Porównaj własności różnych rodzajów pamięci stosowanych w komputerach
A. pamięć RAM
· Po wyłączeniu zasilania informacje są tracone
· Wyróżniamy dwa typy pamięci RAM:
o Dynamiczne (DRAM)
- Podstawowa komórka pamięci zawiera tranzystor i kondensator
- Niska cena, niski pobór mocy, duży stopień scalenia
- Stosowana jako pamięć operacyjna (główna) w komputerze
o Statyczne (SRAM)
- Podstawowa komórka pamięci zawiera przerzutnik
- Drogie, duży pobór mocy, mniejszy stopień scalenia niż DRAM
- Stosowana jako pamięć podręczna cache w komputerze
B. pamięci stałe ROM
· Po wyłączeniu napięcia informacje nie są tracone
· Typy pamięci ROM:
o ROM – zawartość pamięci u ustalana podczas produkcji nie można jej zmienić
o PROM – jednokrotnie programowalna przez użytkownika poprzez przepalanie ścieżek
wewnątrz matrycy
o EPROM – pamięć wielokrotnie programowalna, kasowanie przez naświetlanie
ultrafioletem
o EEPROM – pamięć programowalna i kasowana na drodze elektrycznej pozwala to na
Np. wprowadzenie nowej wersji BIOS
o FLASH – odmiana EEPROM. Pamięć błyskowa. Może zastępować pamięć masową
w komputerach przenośnych, aparatach cyfrowych, telefonach komórkowych.
o NVRAM – połączenie SRAM z EEPROM
3. Omówić podstawowe tryby pracy procesora Pentium
A. tryb rzeczywisty
· Podstawowy tryb każdego komputera. (naśladuje i w pewnym stopniu rozszerza funkcje procesora 8086/88)
· Tryb 8 lub 16 – bitowy, adresy są 20 – bitowe
· Współpracuje z pamięcią operacyjną zawierającą 220 bajtów (pozwala na adresowanie obszaru 1 MB )
· Adres fizyczny obliczany według wzoru :
adres fizyczny = zawartość rejestru segmentowego * 16 + offset
· Może wykonywać operacje 32 – bitowe
· Nie występują mechanizmy ochrony
· Wykonywany program ma dostęp do wszystkich instrukcji procesora
· Charakterystyczny dla środowiska DOS
B. tryb chroniony (tryb wirtualny)
· Tryb 32 – bitowy wprowadzony w procesorze 286, a w postaci rozwiniętej w 386. dalsze rozszerzenia wprowadzono w 486 i Pentium.
· Rozmiar fizycznej przestrzeni adresowej wynosi 4 GB (w nowszych typach procesorów Pentium (Pro i następne) liczba linii adresowych zwiększona do 36 co oznacza, że rozmiar fizycznej przestrzeni adresowej wynosi 64 GB)
· Bardziej skomplikowana metoda wyznaczania adresu fizycznego (obejmuje mechanizm stronicowania i segmentacji. Adres zostaje przekształcony przez specjalne tablice segmentów (GDT) na adres liniowy a ten z kolei przez mechanizm stronicowania na adres fizyczny)
· Ma podtryb udający tryb rzeczywisty (V86)
· Dostępne mechanizmy wielozadaniowości, stosowane są mechanizmy ochrony i odmienne sposoby adresowania niż w rzeczywistym.
· Programy mają różne poziomy uprzywilejowania i w zależności od tego parametru mają dostęp do większej lub mniejszej ilości rozkazów procesora (system operacyjny jest najbardziej uprzywilejowany)
· Charakterystyczny dla systemu Windows
C. tryb wirtualny V86
· Specjalny rodzaj trybu chronionego wprowadzony w 386 i rozwinięty w Pentium
· Powstał by uniknąć kłopotliwego przełączania trybów, które mogło stworzyć zagrożenie dla spójności systemu (opartego na trybie chronionym). [ btw trzeba by było za każdym razem przeprogramować sterownik przerwań ]
· W trybie V86 procesor zachowuje się, z punktu wykonywanego programu, prawie dokładnie tak samo jak w trybie rzeczywistym
· może wykonywać operacje 32-bitowe
· kilka programów wywoływanych w trybie V86 ma tą samą przestrzeń adresową [ mechanizm stronicowania odwzorowuje ją w różne obszary pamięci fizycznej ]
· służy do uruchamiania programów dosowych w środowisku Windows
4. W jaki sposób zmienia się zawartość wskaźnika instrukcji (E)IP procesora Pentium w trakcie wykonywania różnych typów rozkazów?
rozkazy nie sterujące – nie naruszają kolejności wykonywanych rozkazów. Po wykonaniu takiego rozkazu następnym wykonywanym będzie rozkaz bezpośrednio przylegający do niego w pamięci
(E)IP jest wyznaczane na podstawie wzoru:
rozkazy sterujące warunkowe – sprawdzają czy wynik ma oczekiwane własności (czy spełnia zadany warunek) w zależności od tego wyznaczana jest wartość (E)IP:
1. Gdy spełniony to:
2. Gdy nie spełniony to:
rozkazy sterujące bezwarunkowe - naruszają kolejność wykonywania rozkazów. Przekazują sterowanie w inne miejsce programu. (E)IP wynosi wtedy:
5. Scharakteryzować grupę instrukcji procesora określanych jako operacje bitowe.
Rozkazy operacji bitowych można podzielić na następujące grupy:
· operacje boolowskie
· testowanie i modyfikacja bitów
· przeszukiwania bitów
· rotacji i przesunięć
· warunkowego zapisu jedynki do bajtu
AND – za pomocą tej instrukcji i odpowiedniej „maski” można wyodrębniać poszczególne bity
TEST – właściwie jest odmianą AND z tą różnicą że nigdzie nie zapisuje wyniku operacji and
tylko ustawia znaczniki w zależności od otrzymanego wyniku
XOR – przydatna gdy chcemy zanegować w liczbie binarnej tylko określone bity
OR – do ustawiania określonych bitów
NOT – zamienia wszystkie bity w liczbie na przeciwne
Te instrukcje ustawiają znaczniki ZF, SF, PF (CF i OF są zerowane)
BT, BTS, BTR, BTC – są operacjami na pojedynczych bitach
SHR (dla l. Ze znakiem SAR) – przesuwa bity w prawo. Najstarszy bit ustawiany na 0. za jej pomocą możemy realizować dzielenie przez wielokrotność 2
SHL (dla l. Ze znakiem SAL) – przesuwa bity w lewo. Najmłodszy bit ustawiany na 0. za jej pomocą możemy realizować mnożenie przez wielokrotność 2.
ROR – przesuwa wszystkie bity w prawo o określoną liczbę pozycji. Najmłodszy bit kopiowany do CF
ROL – przesuwa wszystkie bity w lewo o określoną liczbę pozycji. Najstarszy bit kopiowany do CF
RCL, RCR, SHRD, SHLD
B. Kodowanie danych i instrukcji
1. Omówić rożne rodzaje kodowania liczb binarnych w komputerze.
Kodowanie liczb całkowitych bez znaku :
- zwyczajny system binarny
Kodowanie liczb całkowitych ze znakiem :
- system znak-moduł
- system U2
Kodowanie w systemie BCD:
- upakowany
- nieupakowany
kodowanie liczb zmiennoprzecinkowych:
- postać mantysa wykładnik
2. w jaki sposób w procesorze Pentium sygnalizowane jest wystąpienie nadmiaru w operacjach dodawania, odejmowania, mnożenia i dzielenia na liczbach stałoprzecinkowych?
Dodawanie – ustawiane są znaczniki OF (liczby ze znakiem) lub CF (liczby bez znaku)
Odejmowanie – ustawiane są znaczniki OF (liczby ze znakiem) lub CF (liczby bez znaku)
Mnożenie – wynik mnożenia jest zawsze podwójnej długości więc rozkazy mnożenia nie powodują nadmiaru.
Dzielenie – nadmiar przy dzieleniu generuje wyjątek procesora zwany nadmiarem co zazwyczaj powoduje natychmiastowe zakończenie działania programu
3. Na czym polegają róznice w sposobie przechowywania liczb w pamięci znane jako mniejsze niżej i mniejsze wyżej?
Mniejsze niżej – młodsza część liczby zapisywana jest pod niższym adresem niż starsza
Mniejsze wyżej – młodsza część liczby zapisywana jest pod wyższym adresem niż starsza
4.Omówić technikę porównywania liczb stałoprzecinkowych stosowaną w procesorach Pentium.
CMP – instrukcja porównująca ustawia znaczniki ZF i CF ale nigdzie nie zapisuje wyniku operacji (odejmowanie)
Za pomocą instrukcji odejmowania ustawia znaczniki ZF i CF i zapisuje wynik operacji.
Jeżeli ZF=1 i CF=0 to są np. bx=cx
Jeżeli ZF=0 i CF=0 to są bx>cx
Jeżeli ZF=0 i CF=1 to są bx<cx
Dla liczb ze znakiem sprawdza się zawartość znaczników ZF, OF, SF
Dla liczb bez znaku ZF, CF
Za pomocą instrukcji bitowych. Te instrukcje ustawiają znaczniki ZF, SF, PF (CF i OF są zerowane).
5.Wyznaczyć wartość dziesiętną 32-bitowej liczby zmiennoprzecinkowej:
0100 0000 1111 1000 0000 0000 0000 0000
0 | 100 0000 1 | 111 1000 0000 0000 0000 0000
bit znaku => 0 (nr 31) – więc liczba jest dodatnia
8-bitowy wykładnik => 1000 0001 => 129 ->
23-bitowa mantysa => 1111 0000 0000 0000 0000 000 => część ułamkowa liczby =>15
z warunku normalizacji wynika że 1£ liczba*2 –k < 2
1.15*2 129-127 = 1.15*22 = 1.15*4 = 4,6
6. Co oznacza termin wartości specjalne w kontekście koprocesora arytmetycznego
· Są to liczby generowane w wyniku błędu.
· Są to liczby, które nie mogą być przedstawione w zwykły sposób.
· W koprocesorze matematycznym przyjęto że wszystkie liczby , których pole wykładnika zawiera same zera lub same jedynki traktowane są jako wartości specjalne.
· Wartości specjalne mogą być argumentami obliczeń jak zwykłe liczby.
7. Jakie rodzaje zaokrąglenia stosuje się w koprocesorze arytmetycznym?
RC – rodzaj zaokrąglenia
W kierunku liczby najbliższej (RC = 00) – jako zaokrąglenie przyjmowana jest wartość najbliższa nieskończenie dokładnemu wynikowi
W kierunku zera (RC = 11) – polega na obcięciu (zignorowaniu) dodatkowych bitów
W górę (RC = 10) i w dół (RC = 01) – używane w metodzie obliczeń jako arytmetyk przedziałów. Metoda ta polega na dwukrotnym wykonywaniu każdego obliczenia. Za jednym razem z zaokrągleniem w górę a za drugim w dół. W rezultacie otrzymujemy górną i dolną granicę odpowiedzi.
8. Wyjaśnić na czym polega technika niedomiaru stopniowanego, stosowana w koprocesorze arytmetycznym.
Technika polega na tym, że liczby zbyt małe, by przedstawić je w odpowiednim formacie są traktowane jako wartości specjalne. Wartości te są kodowane poprzez liczby, których pole wykładnika zawiera same zera. W odniesieniu do takich liczb przyjęto następujące założenia:
· wykładnik zawierający same zera traktowany jest wtedy jakby zawierał liczbę 000...001
· w rozpatrywanym przypadku najbardziej znaczący (niejawny) bit mantysy zawiera 0
Poprzez zmniejszenie dokładności mantysy można rozszerzyć wykładnik w kierunku bardziej ujemnych wartości.
Liczby zmiennoprzecinkowe z wykładnikiem zawierającym same 0 i mantysą różną od zera nazywane są liczbami zdenormalizowanymi.
9. Omówić zasady wykonywania operacji na liczbach wielokrotnej długości.
Dodawanie – realizowane przy użyciu instrukcji ADD lub ADC. ADD dodaje do siebie dwa argumenty, a wynik umieszcza w pierwszym z nich. Jeżeli wynik operacji nie mieści się w argumencie docelowym
ustawiony zostaje znacznik przeniesienia CF. ADC służy do dodawania liczb wielobajtowych. Pozwala w trakcie dodawania uwzględnić przeniesienie powstałe w przypadku dodawania młodszych bajtów.
Instrukcji ADD i ADC ustawiają znaczniki:
· nadmiaru OF (nadmiar przy dodawaniu)
· znaku SF – zgodnie ze znakiem wyniku
· zera ZF jeżeli wynik operacji = 0
· parzystości PF gdy w wyniku jest parzysta liczba jedynek
· przeniesienia CF gdy ustawiany był najmłodszy bit argumentu
· przeniesienia pomocniczego AF (gdy prz...
bartek0419