AK opracowanie zagadnien na egzamin 2011 - Notatki - Informatyka - Część  2, Notatki'z Informatyka. Opole University
Kowal_86
Kowal_868 March 2013

AK opracowanie zagadnien na egzamin 2011 - Notatki - Informatyka - Część 2, Notatki'z Informatyka. Opole University

PDF (809.1 KB)
12 strona
785Liczba odwiedzin
Opis
Notatki dotyczące tematów z dziedziny informatyki: operacje arytmetyczne w systemach logarytmicznych, budowa ALU.
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument
Podgląd3 strony / 12
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.

Zakres (bardzo podobny do zakresu w reprezentacji zmiennoprzecinkowej):

Pojedyńcza precyzja:

Dla K=8 i L=23 :

± 2−129ulp do 2128−ulp ≈ 1.5×10−39 do 3.4 × 1038

(gdzie ulp to jednostki najmniejszej precyzji).

Podwójna precyzja:

Dla K=11 i L=52 :

± 2−1025ulp do 21024−ulp ≈ 2.8×10−309 do 1.8 × 10308 .

Bity flagi służą do reprezentacji takich wartości jak 0, NaN, +INF, -INF

Operacje arytmetyczne w systemach logarytmicznych:

Mnożenie:

Mnożenie 2 liczb w systemie logarytmicznych jest prosto realizowane.

Polega na zwyczajnym dodaniu 2 logarytmów do siebie.

log2 xy =log2 x log2y

Flagi dalej odpowiadają za specjalne wartości i ich ustawienie automatycznie zmienia liczbę na daną wartość. Jeśli wystąpi przekroczenie zakresu liczba automatycznie staje się +INF bądź -INF

Dzielenie:

Dzielenie 2 liczb jest równie proste jak mnożenie.

Polega na odjęciu od siebie logarytmów:

log2 x y = log2x −log2y

Tutaj może wystąpić niedomiar i wtedy wynik automatycznie staję się 0 .

Dodawanie i odejmowanie:

Bardziej skomplikowane, niż w reprezentacj floating point.

Realizowane za pomocą algorytmu:

Mamy 2 liczby: A=−1SA⋅2E A , B=−1SB⋅2E B . Chcemy policzyć liczbę C=A±B :

Znak liczymy jako: SC=SA

Wykładnik liczymy jako:

EC=log2∣A±B

EC=log2∣A⋅1± B A ∣

EC=log2∣A∣log 2∣1± B A

EC=E Af EBE A ,

gdzie f EBE A=log 2∣A∣log2∣1±

B A ∣=log2∣1±2

EBEA

13

docsity.com

W skrócie: EC=E Alog∣1±2 EBE A∣ , SC=SA

b) zamiana reprezentacji zmiennoprzecinkowej na reprezentacje logarytmiczną

−1SM⋅2E = −1SM⋅2F⋅2E = −1S⋅2FE

Trzeba znaleźć F=log2 M .

Podejścia:

1. Przeszukaj tabelę logarytmów;

2. Wylicz przybliżony logarytm:

X FP=zu zu−1z0zv - liczba binarna

zt - najstarszy niezerowy bit.

Wtedy X FP = 2 t∑

i=−v

t−1

2i z i = 2 t1∑

i=−v

t−1

2i−1⋅z iX FP=2

t 1x , xLSN∈〈 0 , 1 

• log2 X FP=tlog21x  , gdzie t -charakterystyka logarytmu, log21x  -mantysa.

Z szeregu tylora f x=∑ k=0

x k

k ! f k0 ,

f x=log21x  , f 0=0

f ' x =log2 e 1

1x  , f ' 0=log 2e

f ' ' x =log2 e −1

1x2  , f ' ' x =log 2−e

Zatem f x=0x log 2ex2

fract 2 log2 e

// do weryfikacji

7. Budowa i zasada działania:

a) jednostki arytmetyczno-logicznej procesora

ALU - połączenie układów: logicznego i arytmetycznego. Jest układem cyfrowym. Służący do wykonywania operacji:

• arytmetycznych (np. dodawanie, odejmowanie); • logicznych (np. Ex-Or) pomiędzy dwiema liczbami; • jednoargumentowych (np. przesunięcie bitów, negacja)

ALU jest podstawowym blokiem centralnej jednostki obliczeniowej komputera. Wszystkie inne elementy systemu komputerowego (jednostka sterująca, rejestry, pamięć, I/O) istnieją głównie po to, żeby dostarczać dane do ALU w celu ich przetworzenia i odbierać wyniki.

14

docsity.com

Ogólny sposób połączenia ALU z resztą komputera ALU wykorzystuje proste, cyfrowe układy logiczne, mogące przechowywać cyfry binarne i wykonywać proste operacje logiczne Boole’a. Dane są przedstawiane ALU w rejestrach i tam też przechowywane są wyniki operacji.

Budowa ALU W zależności od sygnału S2 na wyjściu multipleksera jest wynik operacji wykonywach przez układ arytmetyczny albo logiczny. Zmienne wybierające S0, S1 mogą być wspólne dla obu układów, pod warunkiem, że użyjemy trzeciej zmiennej (S2) która pozwoli rozróżnić układy.

b) sumatora akumulacyjnego

przesuwnyrejstr bitowy n−

przesuwnyrejstr bitowy n−

Σ A

B S

Ci-1

Ci

Akumulator

Składnik B

Zegar QD

C Sumator akumulacyjny składa się z sumatora jednobitowego z dodatkiem dwóch rejestrów przesuwających oraz przerzutnika typu D zapamiętującego przeniesienie. Dodajna (A) i dodajnik (B) są wprowadzane do sumatora z rejestrów przesuwających. Przed rozpoczęciem dodawania, do rejestrów 1 i 2 muszą zostać wpisane składniki A i B, a przerzutnik D służący do przekazywania przeniesień z poprzednich pozycji musi zostać wyzerowany. Dodawanie dwóch bitów składników z odpowiadających sobie pozycji i bitu przeniesienia z poprzedniej pozycji następuje w kolejnych taktach wyznaczanych sygnałem zegarowym. Bity składników pojawiają się kolejno na wyjściach

15

docsity.com

szeregowych rejestrów przesuwających 1 i 2, a suma podawana jest na miejsce dodajnej. W miarę dodawania nowych składników cała suma akumuluje się w tym rejestrze.

II BUDOWA PROCESORA 1. Budowa procesora opartego na architekturze von Neumana, podstawowe jego

elementy i ich przeznaczenie.

// Śmierciak Aleksander:

Architektura von Neumanna to pierwszy rodzaj architektury komputera, opracowanej przez Johna von Neumanna, Johna W. Mauchly'ego oraz Johna Presper Eckerta w 1945 roku. Cechą charakterystyczną tej architektury jest to, że dane przechowywane są wspólnie z instrukcjami, co sprawia, że są kodowane w ten sam sposób.

W architekturze tej komputer składa się z czterech głównych komponentów:

a) pamięci komputerowej przechowującej dane programu oraz instrukcje programu; każda komórka pamięci ma unikalny identyfikator nazywany jej adresem,

b) jednostki kontrolnej odpowiedzialnej za pobieranie danych i instrukcji z pamięci oraz ich sekwencyjne przetwarzanie,

c) jednostki arytmetyczno-logicznej odpowiedzialnej za wykonywanie podstawowych operacji arytmetycznych.

d) urządzeń wejścia/wyjścia służących do interakcji z operatorem.

Jednostka kontrolna wraz z jednostką arytmetyczno-logiczną tworzą procesor.

System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien:

a) mieć skończoną i funkcjonalnie pełną listę rozkazów,

b) mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych,

c) dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora.

Informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.

Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność.

System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać.

Model komputera wykorzystującego architekturę von Neumanna jest często nazywany przykładową maszyną cyfrową (PMC).

// Stolarczyk Ziemowit:

// (o samym procesorze na wykłądzie było tyle co kot napłakał. W necie też raczej opisana jest architektura von Neumana, a nie jego procesor. Takowoż stworzyłem odpowiedź będącą

kombinacją wykładu i informacji z internetu)

16

docsity.com

Schemat z internetu:

Schemat z wykładu:

(Procesor, pamięć i urządzenia I/O łączą się z magistralą, która jest łącznikiem między nimi wszystkimi. W procesorze zawarta jest jednostka arytmetyczno logiczna oraz jednostka sterująca.)

PROCESOR PAMIĘĆ URZĄDZENIA I/O

Magistrala Systemowa

Procesor posiada:

• jednostka ALU (arytmetyczno-logiczna, przetwarzająca) (prostych obliczeń arytmetycznych oraz logicznych);

jednostka sterująca (dekoduje z programu rozkaz i na jego podstawie generuje wew. i zew. sygnały);

rejestry (wewnętrzna pamięć procesora);

zegar;

• wewnętrzna magistrala procesora.

4. Rejestry procesora i ich zawartość:

PC – adres kolejnego rozkazu do pobrania

MAR – adres pamięci skąd pobieramy dane

MBR – dane przesłane z pamięci

IR – pobrany rozkaz do wykonania

AC (akumulator) – dane do przetwarzania przez jednostkęALU

• rejestry dostępne dla programu, ogólnego przeznaczenia

• inne

5. Cechy Architektury

• Procesor łaczy się z urządzeniami I/0 oraz pamięcią za pomocą magistrali systemowej.

• Informacja przechowywana w komórkach o jednakowym rozmiarze i każda z nich zawiera jednostkę informacji (tak zwane 'słowo').

• Instrukcje oraz dane przechowywane w ten sam sposób.

17

docsity.com

• Struktura słowa nie pozwala odróżnić instrukcji od danych. Interpretacja słowa zależy od stanu maszyny w chwili pobierania danego słowa.

• Komórki pamięci stanowią spójną, uporządkowaną przestrzeń adresową.

• Pamięć to zbiór słów o takiej samej wielkości.

• Zawartość komórki pamięci może zmienić TYLKO procesor w procesie przesłania słowa do pamięci.

2. Formaty i typy rozkazów procesora, wpływ długości rozkazów procesora na wielkość zajmowanej pamięci przez program oraz na jego czas wykonania.

Typy rozkazów:

Rozkazy arytmetyczne • inkrementacja, • dekrementacja, • dodawanie, • odejmowanie, • mnożenie, • dzielenie.

Rozkazy logiczne operujące na bitach • zeruj, • iloczyn logiczny, • suma logiczna, • ex-or, • (zeruj | ustaw | zaneguj) bit przeniesienia, • (odblokuj | blokuj) przerwania

Rozkazy przesuwania • przesuń logarytmicznie (prawo | lewo), • przesuń arytmetycznie (prawo | lewo), • przesuń cyklicznie (prawo | lewo)

Rozkazy sterujące wykonaniem programu • rozgałęzienia, • skok (warunkowy | bezwarunkowy), • wywołanie podprogramu, • powrót z podprogramu, • porównywanie (logiczne | arytmetyczne)

Formaty rozkazów: Rozkazy różnych procesorów mogą mieć różne struktury. Podstawowe to rozkazy składające się z 2 części:

• pola kodu rozkazu – informacja dla układu sterowania o rodzaju wykonywanej operacji, • pola adresowego – zawierającego adres operandu (np. argument funkcji) lub informacje

potrzebne do jego wyznaczenia

Rozkazy procesora mogą mieć różną długość.

3. Omówić podstawowe tryby adresowania:

a) adresowanie natychmiastowe

W adresowaniu natychmiastowym argument pobierany jest bezpośrednio z rozkazu. W tym trybie wskazywany jest wyłącznie operand źródłowy.

18

docsity.com

ARGUMENT = A

Tryb stosowany do:

• definiowania, używania stałych,

• ustalania początkowych wartości zmiennych.

Liczba jest zwykle przechowywana w postaci uzupełnienia do dwóch; lewy bit pola argumentu jest używany jako bit znaku. Gdy argument jest ładowany do rejestru danych, bit znaku jest rozszerzany na lewo w celu wypełnienia słowa danych.

Najprostszym sposobem określenia miejsca argumentu w rozkazie jest umieszczenie w jego części adresowej samego argumentu, a nie informacji gdzie on się znajduje.

Zalety: Wady:

• Nie wymaga dodatkowego odwołania do pamięci w celu pobrania argumentu. • Oszczędzony jeden cykl pamięci głównej lub podręcznej w cyklu rozkazu.

• Ograniczenie argumentu do liczby, którą można zakodować w polu adresowym (małe w porównaniu z długością słowa).

b) adresowanie bezpośrednie

W adresowaniu bezpośrednim adres operandu znajduje się bezpośrednio w rozkazie.

• A – zawartość pola adresowanego w rozkazie. • EA – rzeczywisty (efektywny) adres lokacji

zawierającej odniesiony argument

Wady: Zalety:

ograniczona przestrzeń adresowa

prostota

Algorytm: EA = A

Głowna zaleta: prostota

Głowna wada: ograniczona przestrzeń adresowa

Metoda we współczesnych komputerach nie jest bardzo powszechna. Wymaga tylko jednego odniesienia do pamięci i nie potrzeba żadnych obliczeń. Umożliwia ograniczoną przestrzeń adresową.

Wyróżniamy adresowanie bezpośrednie ze stałą i rejestrem.

STAŁA. Sekwencja mikroprzesłań zachodzących w adresowaniu bezpośrednim (adres argumentu reprezentowany za pomocą stałej).

Mikrooperacja wyrażona w notacji RTL:

19

docsity.com

1. MAR(1:6) <- IR(10:16)

2. BUS_ADRES <- MAR

3. MBR <- BUS_DATA

o Adres argumentu jest umieszczony w rejestrze rozkazów (IR) na bitach o numerze 10-16

o Wartość ta nie reprezentuje wartości liczbowej, lecz adres komórki pamięci operacyjnej, w której argument jest umieszczony.

o W celu sprowadzenia argumentu z pamięci operacyjnej należy przesłać odpowiednie bity rejestru (IR) do rejestru (MAR) za pomocą którego zostanie zaadresowana pamięc operacyjna.

REJESTR. Sekwencja mikroprzesłań zachodzących w adresowaniu bezpośrednim (adres argumentu przechowywany jest w rejestrze).

Mikrooperacja wyrażona w notacji RTL:

1. MAR <- MBR

2. BUS_ADRES <- MAR

3. MBR <- BUS_DATA

o Adres argument jest reprezentowany za pomocą stałej ale w określonym rejestrze

o Jest on niezbędny w sytuacji, w której program wykonuje operacje na złożonych strukturach (np. tablice)

o W przypadku działania na tablicach, indeks jest obliczany dynamicznie. c) adresowanie rejestrowe

// Szwed Kamil:

w skrócie: w kodzie rozkazu określony jest rejestr zawierający argument rozkazu.

Jest ono pojęciowo równe adresowaniu bezpośredniemu. W tej formie adresowania pole adresowe zawiera numer rejestru, w którym zapamiętany jest argument. Adresowanie rejestrowe oznacza, że w instrukcji mamy zakodowany numer (adres) rejestru, a nie adres pamięci. Procesory zwykle zawierają od kilku (np. 8), do kilkudziesięciu (np. 64) rejestrów, dzięki czemu pole adresowe odnoszące się do rejestru może mieć od 3 do 6 bitów długości. Daje to krótszy czas pobrania rozkazu i krótsze rozkazy.

// Śmierciak Aleksander:

W adresowaniu rejestrowym operandy znajdują się w rejestrach wewnętrznych

20

docsity.com

mikroprocesora. Jeżeli operand znajduje się w pamięci, to zespół wykonawczy EY oblicza jego 16-bitowy adres (przesunięcie) wewnątrz segmentu. Zespół BIU oblicza adres rzeczywisty na podstawie otrzymanego przesunięcia (adresu efektywnego EA) i zawartości wybranego rejestru segmentowego.

d) adresowanie indeksowe

W adresowaniu indeksowym adres efektywny jest sumą zawartości rejestru indeksowego SI lub DI i lokalnego przemieszczenia.

Inaczej nazywane modyfikacją adresu przez indeksowanie.

W tym trybie wykorzystuje się specjalne rejestry procesora, tzw. rejestry indeksowe, które zawierają przesunięcie, którego trzeba dodać względem adresu istniejącego w rozkazie, aby wyliczyć adres faktyczny operandu. Ten tryb adresowania pozwala przesunąć adres zawarty w rozkazie o wartość rejestru indeksowego. Używając adresowania indeksowego we wszystkich rozkazach programu, można osiągnąć możliwość wykonania programu przy załadowaniu w dowolne miejsce pamięci. W tym celu należy napisać program wstawiając do rozkazów programu adresy, które odpowiadają umieszczeniu pierwszej instrukcji programu pod adresem zerowym w pamięci. Następnie, wiedząc, pod jakim finalnym adresem jest umieszczony pierwszy rozkaz programu, umieszczamy ten adres w rejestrze indeksowym. Dzięki operacji indeksowania rozkazów programu, wszystkie adresy operandów zostaną przesunięte o tę sama wartość - stąd nazwa zawartości rejestru indeksowego: "przesunięcie". Taka organizacja przesuwalności programu w pamięci nosi nazwę dynamicznej relokacji programu w pamięci.

Rejestrów indeksowych w procesorze jest zwykle wiele, gdyż mogą one być przydzielone różnym programom lub fragmentom programów, które są wykonywane w tym samym okresie czasu. W tym przypadku, rejestr indeksowy do użycia, może być określony przy pomocy specjalnego pola wspomagającego kodowanie trybu adresowania w innym polu rozkazu.

e) adresowanie bazowe

// Szymski Wojciech:

Bardzo efektywny tryb adresowania łączący możliwości adresowania bezpośredniego i pośredniego adresowania rejestrowego.

Algorytm Zaleta: Wada:

EA = A + (R) elastyczność złożoność

Wymaga on dwóch pól adresowych w rozkazie: bazy i przesunięcia. Wartość użyta w polu adresowym (A) jest używana bezpośrednio (BAZA). Drugie pole adresowe (R), odnosi się do rejestru, którego zawartość po dodaniu do A daje adres efektywny (PRZESUNIĘCIE).

(analogia z wskaźnikami do tablic w C++. Dodanie do wskaźnika liczby K, przesuwa w pamięci wskaźnik z elementu o indeksie A do elementu o indeksie A+K).

21

docsity.com

// Śmierciak Aleksander:

W adresowaniu bazowym rozkaz wskazuje na jeden z rejestrów bazowych BX lub BP i może zawierać 8-; lub 16-bitową wartość stanowiącą lokalne przemieszczenie. Adresem efektywnym jest suma zawartości rejestru bazowego i przemieszczenia.

f) adresowanie stosowe

Typ adresowania bezpośredniego. Operand znajduje się na wierzchołku stosu (rozkazy nie muszą zawierać odniesienia do pamięci).

Wady: Zalety:

ograniczona stosowalność

brak odniesienia do pamięci

4. Omówić cykle pracy procesora:

Zadaniem procesora jest wykonywanie rozkazów zapisanych w pamięci. Realizacja rozkazu w procesorze odbywa się w cyklach. Cyklem nazywamy pewną sekwencję stałych kroków, których celem jest realizacja bądź całego rozkazu, bądź jego fragmentu.

a) cykl pobrania

(ang. fetch) – rozkaz zostaje pobrany z pamięci do procesora,

Składa się z 3 etapów:

1. Adresowanie

2. Wczytanie zawartości

3. Zwiększenie licznika rozkazów

W fazie tej kod rozkazu pobierany jest z komórki pamięci o adresie przechowywanym w liczniku rozkazów, a następnie umieszczany w rejestrze rozkazów (w układzie sterującym). Przesyłanie odbywa się przez magistralę danych.

Następnie zawartość licznika rozkazów jest modyfikowana w taki sposób, aby wskazywał on na kod kolejnego rozkazu przeznaczonego do pobrania.

Cykl pobrania w notacji RTL:

MAR – rejestr adresowania; PC – licznik rozkazów; MBR – rejestr buforowy;

CU – jednostka sterująca; IR – rejestr rozkazów;

1. [MAR] <- [PC]

2. [PC] <- [PC + 1]

3. [MBR] <- [M ([MBR]) ]

4. [IR] <- [MBR]

5. CU <- [IR ( KOD OPERACJI) ]

22

docsity.com

Przykładowa sekwencja zdarzeń w cyklu pobierania.

b) cykl adresowania pośrednie

(ang. read) – jeśli rozkaz tego wymaga następuje pobranie argumentu z pamięci; zostaje wyznaczony adres efektywny argumentu, a następnie jest on pobierany do procesora,

// Starzak Mariusz

c) cykl wykonawczy

(ang. execute) – następuje wykonanie operacji, która jest opisana przetwarzanym rozkazem. Polega na zdekodowaniu kodu rozkazu i wytworzenia sygnałów sterujących realizujących dany rozkaz.

d) cykl przerwania

(ang. write) – jeśli w wyniku operacji powstał rezultat, który ma być umieszczony w pamięci, zostaje dla owego rezultaty wyznaczony adres efektywny i wykonywany jest zapis.

Faza przerwania dotyczy skoku do podprogramu obsługi sytuacji wyjątkowych.

23

docsity.com

5. Struktura i zasada działania mikroprogramowanej jednostki sterującej, wady i zalety procesorów mikroprogramowanych oraz alternatywne metody budowy jednostki sterującej procesora.

Jedną z najważniejszych cech odróżniających architektury procesorów RISC (układowa) i CISC (mikroprogramowalna) jest implementacja jednostki sterującej. Z powodu złożoności list rozkazów w projekcie CISC wykorzystana jest mikroprogramowalna jednostka sterująca, podczas gdy w projekcie RISC możliwe jest wykorzystanie prostszej i szybszej układowej jednostki sterującej.

Mikroprogramowalna jednostka sterująca przypomina procesor wewnątrz procesora:

• Zawiera własny licznik mikrorozkazów, którego używa w czasie dostępu do mikroprogramu przechowywanego w pamięci ROM albo zapisanego w postaci programowalnej tablicy logicznej (ang. Programmed Logic Array; PLA). Mikroprogram składa się z szeregu mikrorozkazów, a każdy mikrorozkaz zawiera sekwencję bitów sterującą przemieszczaniem informacji po ścieżce danych.

• Podobnie jak w kodzie maszynowym, czyli makrorozkazach, istnieją tutaj rozkazy skoków warunkowych (ang. branch) i bezwarunkowych (ang. jump) modyfikujące bieg programu i zmieniające kolejność, w jakiej wykonywane są mikrorozkazy.

24

docsity.com

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
Docsity is not optimized for the browser you're using. In order to have a better experience we suggest you to use Internet Explorer 9+, Chrome, Firefox or Safari! Download Google Chrome