






Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
Notatki dotyczące tematów z dziedziny informatyki: operacje arytmetyczne w systemach logarytmicznych, budowa ALU.
Typologia: Egzaminy
1 / 12
Ta strona nie jest widoczna w podglądzie
Nie przegap ważnych części!
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. log 2 x ⋅ y =log 2 x log 2 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:
log 2 x y
=log 2 x −log 2 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 =− 1 SA ⋅ 2 E^ A^ , (^) B =− 1 SB ⋅ 2 E^ B^. Chcemy policzyć liczbę C = A ± B : Znak liczymy jako: SC = SA Wykładnik liczymy jako: EC =log 2 ∣ A ± B ∣
EC =log 2 ∣ A ⋅ 1 ±
EC =log 2 ∣ A ∣log 2 ∣ 1 ± B A
EC = E (^) A f EB − E (^) A
gdzie
f EB − E (^) A =log 2 ∣ A ∣log 2 ∣ 1 ±
∣=log 2 ∣ 1 ± 2 EB^ − EA ∣
W skrócie : EC = E (^) A log∣ 1 ± 2 EB − E^ A ∣ , SC = SA
b) zamiana reprezentacji zmiennoprzecinkowej na reprezentacje logarytmiczną
− 1 S ⋅ M ⋅ 2 E^ = − 1 S ⋅ M ⋅ 2 F ⋅ 2 E^ = − 1 S ⋅ 2 F E Trzeba znaleźć F =log 2 M^. Podejścia:
i =− v
t − 1
i =− v
t − 1
X (^) FP = 2 t^ 1 x , xLSN ∈〈 0 , 1
k = 0
∞ (^) x k k!
f ^ k ^ 0 ,
1 x
(^) , f ' 0 =log 2 e
1 x^2
(^) , f ' ' x =log 2 − e
Zatem f x = 0 x log 2 e −
x^2 fract
2 log 2 e
// do weryfikacji
a) jednostki arytmetyczno-logicznej procesora
ALU - połączenie układów: logicznego i arytmetycznego. Jest układem cyfrowym. Służący do wykonywania operacji:
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
// Ś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
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)
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 :
Tryb stosowany do:
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:
b) adresowanie bezpośrednie
W adresowaniu bezpośrednim adres operandu znajduje się bezpośrednio w rozkazie.
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.
o Adres argumentu jest umieszczony w rejestrze rozkazów (IR) na bitach o numerze 10- 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.
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
// Ś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
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:
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;
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.