egz_odp.doc

(203 KB) Pobierz
Przeredagowany tekst zadań używanych na sprawdzianach laboratorium AKO w semestrze zimowym 2007/2008

Przykładowe pytania  egzaminacyjne i zadania z „Architektury  komputerów”

maj 2008

 

 


Pytania mają charakter przykładowy i nie obejmują całego materiału wymaganego do egzaminu.

 

 

A. Podstawowe zasady działania komputera

 

  1. Omówić podstawowe zasady wykonywania programu przez procesor.

 

Pobranie rozkazu z pamięci -> dekododowanie kodu rozkazowego ->  obliczenie adresu efektywnego argumentu -> obliczenie adresu fizycznego argumentu -> pobranie argumentu z pamięci -> wykonanie rozkazu -> zapisanie wyniku do pamięci -> wyznaczenie położenia następnego rozkazu -> pobranie rozkazu z pamięci...

  1. Porównać własności różnych rodzajów pamięci stosowanych w komputerach.

 

Nie bardzo wiem, o który podział chodzi. Jeśli o podział na RAM i ROM to:

ROM- Read-Only Memory, pamięć wyłącznie do odczytu.

RAM- Random Access Memory, pamięć swobodnym.

  1. Omówić podstawowe tryby pracy procesorów zgodnych z architekturą IA–32

 

Istnieją następujące tryby: rzeczywisty, chroniony, V86.

Tryb rzeczywisty jest to tryb wprowadzony w celu utrzymania kompatybilności wstecznej po procesorach 8086/8088, można było w nim używać pamięci o rozmiarze do 1MB. Tryb chroniony to tryb, w którym procesor stosuje inne techniki adresowania co pozwala zainstalować aż 4GB pamięci (w nowszych procesorach do 64GB). Tryb V86 jest to tryb wprowadzony w architekturze Ia32, stanowi odmianę trybu chronionego, ale programy są wykonywane tak jak w trybie rzeczywistym.

  1. W jaki sposób zmienia się zawartość wskaźnika instrukcji EIP w procesorach klasy IA–32 w trakcie wykonywania różnych typów rozkazów.

 

W przypadku rozkazów niesterujących zawartość rejestru EIP jest zwiększana o ilość bajtów zajmowanych przez kolejny rozkaz, jeśli mamy do czynienia z instrukcjami sterującymi to oprócz ilości bajtów kolejnego rozkazu dodawane jest przesunięcie określone przez skok.

  1. Scharakteryzować grupę instrukcji procesora określanych jako operacje bitowe.

 

 

B. Kodowanie danych i instrukcji

 

  1. Omówić różne rodzaje kodowania liczb binarnych w komputerze.

 

NKB – zwykły kod binarny, zakres liczbowy w jego przypadku wynosi <0;2^n), gdzie n to ilość zapisanych bitów.

Znak-moduł – możliwość kodowania liczba ujemnych, o znaku liczby mówi pierwszy jej bit, trudności w wykonywaniu działań na liczbach ujemnych w tym systemie.

U2- kod uzupełnień do dwóch. Zakres liczbowy (-2^n/1;+2^n/2). Można na nich wykonywać dowolne działania arytmetyczne i wynik będzie prawidłowy, podstawowy system kodowania liczb ze znakiem w komputerach.

BCD – kod, w którym kodowane są cyfry dziesiętne cyfry, np 255 = 001001010101 (wersja upakowana). Istnieją dwie wersje tego kodu- upakowana i nieupakowania.

  1. W jaki sposób w procesorach zgodnych z architekturą IA–32 sygnalizowane jest wystąpienie nadmiaru w operacjach dodawania, odejmowania, mnożenia i dzielenia na liczbach stałoprzecinkowych?

 

Do znacznika CF (liczby bez znaku) lub OF (liczby ze znakiem) wpisywana jest wartość 1.

  1. Na czym polegają różnice w sposobie przechowywania liczb w pamięci znane jako mniejsze niżej (ang. little endian) i mniejsze wyżej (ang. big endian)?

 

Little endian- młodsze bajty zajmują niższe adresy w pamięci.

Big endian- młodsze bajty zajmują wyższe adresy w pamięci.

  1. Omówić technikę porównywania liczb stałoprzecinkowych stosowaną w architekturze IA–32.

 

Porównania dokonuje się rozkazem CMP. Dokonuje on odejmowania operandów, ustawia znaczniki, ale nigdzie nie wpisuje wyniku tego odejmowania.

  1. Wyznaczyć wartość dziesiętną 32-bitowej liczby zmiennoprzecinkowej

0100 0000 1111 1000 0000 0000 0000 0000

Bit znaku = 0

Wykładnik = 10000001 = 129

Mantysa= 11110000000000000000000

Liczba = mantysa ^127-wykładnik =

111.1 1= 7,75

  1. Co oznacza termin wartości specjalne używany w kontekście koprocesora arytmetycznego.

 

Wartości specjalnie są to wartości , które nie są liczbami, ale zachowują się jak liczby w obliczeniach. Występują one, gdy wykładnik zawiera same zera bądź jedynki, przykładem wartości spacjalnej jest nieskończoność.

  1. Jakie rodzaje zaokrąglenia stosuje się w koprocesorze arytmetycznym?

 

Zaokrąglenie do zera (bajty nie mieszczące się w mantysie są pomijane), zaokrąglenie w kierunku liczby najbliższej (jako zaokrąglenie przyjmowana jest wartość najbliższa nieskończenie dokładnemu wynikowi), zaokrąglenie w górę (każde obliczenie wykonywane dwa razy, za jednym razem zaokrąglenie w górę, za drugim w dół- w rezultacie otrzymujemy górną i dolną granicę dokładności).

  1. Wyjaśnić na czym polega technika niedomiaru stopniowanego, stosowana w koprocesorze arytmetycznym.

 

Liczby bliskie zera są traktowane jako wartości specjalne , rezygnuje się z warunku normalizacji, zmniejsza się dokładność mantysy, a wykładnik można rozszerzyć w kierunku liczb ujemnych. W technice niedomiaru stopniowanego przyjęte są dwa założenia:

- wykładnik zawierający same zera będzie traktowany jak gdyby zawierał liczbę 1;

-niejawny bit mantysy może zawierać 0 zamiast 1.

  1. Czym różnią się rozkazy koprocesora arytmetycznego: FLD i FST?

 

Fld- załadowanie liczby zmiennoprzecinkowej na wierzchołek stosu koprocesora

Fst- załadowanie liczby zmiennoprzecinkowej z wierzchołku stosu koprocesora do pamięci.

  1. Wyjaśnić w jakim celu zdefiniowano nieliczby (NaN) w koprocesorze arytmetycznym.

 

Są to liczby, które powstają jeśli niemożliwe jest żadne inne działanie, wynikiem każdego wyrażenia z wartością NaN jest również NaN. Występują gdy zamaskowany jest bit IE w rejestrze stanu koprocesora (IM =1 ).

  1. Omówić zasady wykonywania operacji arytmetycznych na liczbach wielokrotnej długości.

 

Najmłodsze bity są dodawane/odejmowane w zwykły sposób (operacje ADD i SUB), natomiast w starszych należy uwzględnić wystąpienie nadmiaru w młodszych (rozkazy ADC i SBB). Mnożenie i dzielenie zawsze wykonywane są na liczbach podwójnej długości (w przypadku dzielenia wartośc początkowa, w przypadku mnożenia wynik) i są przechowywane w formacie EDX:EAX. Dzielenie wpisuje wynik do EAX i resztą do EDX, w przypadku mnożenia starsza część wyniku jest po prostu wpisywana do EDX.

  1. Omówić podstawowe zasady kodowania rozkazów procesora.

 

Bajty rozkazu:

-pierwszy: kod operacji, bity: d (mówi, gdzie ma się znaleźć wynik), w (tryb 16/32 bitowy lub 8 bitowy);

-drugi: pole mod (przesunięcia, modyfikacje adresowe), pole reg (rejestr występujący w działaniu), pole r/m (rejestr  drugi, który może wskazywać miejsce w pamięci);

-trzeci (opcjonalny, SIB): współczynnik skali, rejestr indeksowy, rejestr bazowy

- kolejne bity: argumenty liczbowe/przesunięcia.

  1. W jakim celu kod rozkazu poprzedza się przedrostkiem zmiany rodzaju operandu?

 

W celu zmiany trybu na 32 bitowy (w trybie 16 bitowym) i na 16 bitowy (w trybie 32 bitowym).

 


C. Mechanizmy adresowania

 

  1. Omówić podstawowe koncepcje modyfikacji adresowych.

 

-modyfikatorami mogą być dowolne rejestry ogólnego przeznaczenia (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP);

-może wystąpić drugi rejestr modyfikacji, ale nie może nim być rejestr ESP;

- może wystąpić współczynnik skali;

  1. Porównać wyznaczanie adresu efektywnego za pomocą instrukcji LEA i operatora OFFSET.

 

Rozkaz LEA wyznaczna adres efektywny w trakcie wykonywania programu, podczas gdy wartośc operatora OFFSET obliczana jest w trakcie translacji (asemblacji), LEA nigdy nie odczytuje zawartości lokacji pamięci.

  1. W jakim celu stosowany jest współczynnik skali w modyfikacjach adresowych?

 

Można go wykorzystać do przeskakiwania komórek pamięci o rozmiary liczb w konkretnym formacie. Przykładowo jeśli rejestr EBX zawiera komórkę pamięci, w której jest int (format 4-bajtowy) to żeby przejśc na kolejną liczbę w pamięci trzeba przeskoczyć 4 bajty. Można jest poprostu dodać rozkazem add, ale jeśli modyfikacje adresową zapiszemy tak(przykładowo):          mov eax,[ecx+ebx*4]

to wystarczy zinkrementować liczbę w EBX by uzyskać kolejną liczbę.

  1. W jakim celu niektóre rozkazy poprzedza się przedrostkiem zmiany rozmiaru argumentu (66H)?

 

5.        W celu zmiany trybu na 32 bitowy (w trybie 16 bitowym) i na 16 bitowy (w trybie 32 bitowym).

 

 

 

D. Programowanie w asemblerze

 

  1. Omówić trzy podstawowe formaty wierszy źródłowych w asemblerze.

 

II część wykładów, strona 76, nie chce mi się tego rozpisywać :P

  1. Jaką rolę pełnią dyrektywy w programie asemblerowym.

 

Mówią jaki rozmiar pamięci należy zarezerwować dla zmiennej/stałek (np bajt, słowo itp).

  1. Jak należy rozumieć termin licznik lokacji w kontekście programu asemblerowego?

 

Jest to rejestr programowy, który określa adres komórki pamięci operacyjnej, do której zostanie przesłany aktualnie tłumaczony rozkaz lub dana.

 

 

E. Operacje stosu i podprogramy

 

  1. W jaki sposób rozkazy PUSH i POP wpływają na stan wskaźnika stosu ESP?

 

Push- zmniejsza zawartośc esp o 4

Pop- zwiększa zawartośc esp o 4.

  1. W jaki sposób można usunąć ze stosu trzy liczby 32-bitowe nie używając instrukcji POP?

 

add esp,12

  1. Omówić zasady działania rozkazów CALL, INT i RET (IRET).

 

Rozkazy CALL i INT są to rozkazy wywołania podprogramu. W przypadku rozkazu CALL należy podać nazwe podprogramu, w przypadku rozkazu int należy podać do odpowiedniego rejestru nr katalogowy podprogramu (programy są tutaj wywoływane za pośrednictwem tzw. ‘tablicy wektorów’).

Rozkazy RET i IRET służą do powrotów do programu głównego, ten pierwszy jeśli wywołanie nastąpiło za pomocą CALL, ten drugi INT (albo gdy podprogram został wywołany na skutek przyjścia przerwania bądź wystąpienia wyjątku procesora).

  1. Omówić sposób dostępu do zmiennych dynamicznych umieszczonych na stosie za pomocą modyfikacji z użyciem pomocniczego wskaźnika stosu EBP.

 

Dostęp do nich uzyskuje się przez odjęcie od adresu (umieszczonego w ebp) odpowiedniej ilości bajtów, np

mov [ebp-4],eax

  1. Porównać typowe techniki przekazywania parametrów do podprogramu stosowane w procesorach CISC i RISC.

 

Przez:

-rejestry

-stos

-ślad

-bufory

  1. Dlaczego wiele programów generowanych przez kompilatory języków wysokiego poziomu używa stosu do przechowywania wartości zmiennych?

 

 

F. Lista rozkazów (instrukcji) procesora

 

  1. Omówić bitowe operacje logiczne wykonywane przez instrukcje procesora.

 

Wszystkie poniższe operacje są wykonywane na pojedyńczych (odpowiadających sobie pod względem ‘młodości’) bitach.

XOR – dodawanie modulo 2

AND – iloczyn logiczny

TEST – iloczyn logiczny, ale bez wpisywania wyniku

OR – suma logiczna

NOT – negacja bitowa

Poza tym występuje sporo rozkazów przesunięć bitowych, np. SHL, SHR, ROL, SHLD, SHRD, SAL, SAR itp.

  1. Omówić zasady działania rozkazów wykonujących działania na blokach danych.

 

Rozkazy MOVSB, MOVSW i MOVSD (różnią się tylko rozmiarami przesyłanych wartości) powodują przesłanie bajtu w rejestrze ESI do lokacji pamięci wskazanej przez rejestr EDI.

Przedrostek REP przed tymi rozkazami powoduje ich wykonywanie (z inkrementacją edi, esi i dekrementacją ecx) aż w rejestrze ecx nie znajdzie się wartość 0.

  1. Omówić specyfikę i zastosowanie rozkazów grup MMX i SSE.

 

Rozkazy te służą przede wszystkim do zastosowań multimedialnych. Mozna za ich pomocą wykonac jedno działanie jednocześnie na kilku liczbach. W przypadku MMX służą do tego rejestry 64-bitowe, a w przypadku SSE rejestry 128 bitowe.

  1. Co oznacza termin arytmetyka nasycenia w odniesieniu do operacji MMX?

 

Arytmetyka nasycenia- sposób przeprowadzania obliczeń na całkowitych liczbach binarnych, w której reakcją na przekroczenie zakresu liczb jest przypisanie wynikowi górnej bądź dolnej granicy zakresu.

  1. W jaki sposób rozkaz IRET wpływa na zawartość rejestru znaczników?

 

Przywraca rejestr znaczników, który został zachowany przed wywołaniem podprogramu.


G. Sterowanie pracą urządzeń zewnętrznych

 

  1. Omówić podstawowe koncepcje komunikacji komputera z urządzeniami zewnętrznymi.

 

Sterowanie pracą urządzeń jest realizowane za pomocą podzespołów tworzących układy wejścia/wyjścia; podzespoły te umożliwiają testowanie stanu (gotowości) urządzenia, wysyłanie poleceń do urządzenia oraz wysyłanie i przymowanie danych; od strony procesora komunikacja ta odbywa się zazwyczaj przez zapis, odczyt rejestrów zainstalowanych w układach wejścia/wyjścia.

  1. Omówić podstawowe elementy systemu przerwań stosowanego w komputerach PC.

 

 

-tablica deskryptorów przerwań (rozbudowana wersja tablicy wektorów przerwań), zawiera 256 deskryptorów (0-255). Dostęp do niej ma wyłącznie system operacyjny;

-linie IRQ (Interrupt ReQuest)

 

Istotne w systemie przerwań jest to, że przed wywołaniem programu obsługi przerwania (w architekturze IA32)  zapamiętywane są na stosie rejestry CS, EFLAGS i EIP.

  1. Jaką rolę podczas wywoływania podprogramów systemowych pełni tablica wektorów (deskryptorów) przerwań?

 

Zawiera adres procedury obsługi przerwania sprzętowego związanego z konkretnym urządzeniem.

  1. Wyjaśnić co oznacza termin "przestrzeń adresowa portów".

 

Jest to przestrzeń adresowa, w której dostępne są rejestry urządzenia.

  1. Wyjaśnić co oznacza termin priorytet przerwania.

 

Priorytet przerwania jest jego ‘ważnością’. Jeśli w momencie obsługi przerwania przyjdzie przerwanie o wyższym priorytecie, bieżąca akcja zostanie wstrzymana i komputer przejdzie do obsługi tego przerwania o wyższym priorytecie.

  1. Jaką rolę w komunikacji z urządzeniami zewnętrznymi pełni obszar współadresowalny pamięci.

 

Jest to sytuacja odwrotna niz gdy występuje przestrzeń adresowa portów. Tutaj rejestry urządzenia są dostępne jako część przestrzeni adresowej pamięci.

  1. W jakich okolicznościach używa się przerwań niemaskowalnych?

 

Przerwania niemaskowalne to takie, których nie da się zamaskować (wyzerowanie znacznika IF nic nie daje). Przykładem takich przerwań jest przerwanie generowane w momencie wystąpienia błędu pamięci RAM.

  1. Podać podstawowe zasady tworzenia procedur obsługi przerwań sprzętowych.

 

Są dwie metody:

-metoda przeglądania(polega na wielokrotnym odczytywaniu stanu urządzenia, aż do chwili gdy odczytany stan będzie wskazywać zakończenie operacji);

-metoda przerwaniowa (III część wykładu, strony 48-50, ciężko stwierdzić co tam jest najbardziej istotne).

  1. Podać zasady wyświetlania znaków w trybie tekstowym poprzez bezpośredni zapis do pamięci ekranu.

 

Trzeba to wykonywać w trybie V86 (tryb chroniony nie zezwoli na taką operację). W trybie 13H (prosty tryb graficzny) pamięć ekranu umieszczona jest od adresu ficzycznego A0000H; kolejne bajty w tym obszarze opisują kolory pikseli wg standardowej palety VGA (którą można zmienić).

 

H. Architektury CISC i RISC

 

  1. Porównać charakterystyczne elementy architektury procesorów CISC i RISC.

 

CISC:

-duża liczba rozkazów

-duża liczba trybów adresowania

...

Zgłoś jeśli naruszono regulamin