...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

Podobne dokumenty
ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Kod U2 Opracował: Andrzej Nowak

Arytmetyka stałopozycyjna

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Dodawanie liczb binarnych

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Operacje arytmetyczne

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

1259 (10) = 1 * * * * 100 = 1 * * * *1

Luty 2001 Algorytmy (7) 2000/2001

Zapis liczb binarnych ze znakiem

Arytmetyka liczb binarnych

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Systemy zapisu liczb.

Wstęp do informatyki- wykład 2

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Arytmetyka binarna - wykład 6

Algorytmy i struktury danych. Wykład 4

Podstawy Informatyki

1. Operacje logiczne A B A OR B

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Naturalny kod binarny (NKB)

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Pracownia Komputerowa wykład V

Cyfrowy zapis informacji

Pozycyjny system liczbowy

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

0 + 0 = 0, = 1, = 1, = 0.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Pendolinem z równaniami, nierównościami i układami

1.1. Pozycyjne systemy liczbowe

Wstęp do informatyki- wykład 1 Systemy liczbowe

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Technologie Informacyjne

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Operacje arytmetyczne w systemie dwójkowym

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

System Liczbowe. Szesnastkowy ( heksadecymalny)

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

SYSTEMY LICZBOWE 275,538 =

Kodowanie liczb całkowitych w systemach komputerowych

Metoda znak-moduł (ZM)

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Technologie Informacyjne Wykład 4

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

Stan wysoki (H) i stan niski (L)

Wstęp do Informatyki

Szybkie układy mnożące

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

CIĄGI wiadomości podstawowe

Szybkie układy mnożące

Wprowadzenie do informatyki - ć wiczenia

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

Pracownia Komputerowa wyk ad V

Jarosław Wróblewski Matematyka Elementarna, lato 2014/15

Przykładowe zadania z teorii liczb

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

WYRAŻENIA ALGEBRAICZNE

Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Wielomiany. dr Tadeusz Werbiński. Teoria

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 2 Teoria liczby rzeczywiste cz.2

1. LICZBY DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

Systemy liczbowe używane w technice komputerowej

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

MADE IN CHINA czyli SYSTEM RESZTOWY

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Układy równań i nierówności liniowych

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

LICZBY ZMIENNOPRZECINKOWE

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Arytmetyka stało i zmiennoprzecinkowa

Wymagania edukacyjne z matematyki dla klasy VII

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

przeniesienie pożyczka

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

Transkrypt:

24 2 Zarys organizacji maszyny typowej 2 ZARYS ORGANIZACJI MASZYNY TYPOWEJ [2 Arytmetyka uzupełnieniowa; 22 Krótki opis maszyny typowcjj 23 Kod rozkazowy] 2 ARYTMETYKA UZUPEŁNIENIOWA 2 Zajmiemy się obecnie omówieniem podstawowych zasad binarnej arytmetyki uzupełnieniowej w której (n + l)-bitowe liczby dwójkowowymierne należą do przedziału < 2~ n > (punkt 2) Liczba dodatnia x } jak wiemy jest przedstawiona w tej arytmetyce następująco: gdzie cc- są to kolejne cyfry dwójkowe (binarne) rozwinięcia liczby x Natomiast gdy x jest liczbą ujemną w arytmetyce uzupełnieniowej zastępujemy ją liczbą 2 + x> która z kolei ma postać gdzie «' (i = jri) są to cyfry rozwinięcia liczby + x Rozpatrzmy kilka przykładów przedstawiania liczb ujemnych: liczba ma postać 32 natomiast liczba ma postać 32 ^ Oj - u 5 liczba ma postać: 28 natomiast hczba _ 5 ma postać 28 o o 2 Algorytm uzupełnienia Jeżeli mamy liczbę dodatnią x to dla otrzymania w arytmetyce uzupełnieniowej liczby x wykonujemy operacje 2 x Podobnie jeśli mamy liczbę x reprezentowaną jako 2 x a chcemy otrzymać liczbę x to musimy wykonać operację 2 (2 x) = x Dla praktycznego obliczania uzupełnienia liczb podamy obecnie algorytm Niech liczba x będzie postaci

2 Arytmetyka uzupełnieniowa 25 wprowadzimy pomocniczą liczbę binarną co toicojs avi«n> której cyfry są określone przez następujące związki: a^ wtedy i tylko wtedy gdy «= «+ = = a = (gdzie i ==«) OJ; = wtedy i tylko wtedy gdy istnieje wskaźnik całkowity nieujemny j spełniający warunek i^j^n dla którego o^ = Kolejne cyfry uzupełnienia liczby x wyznaczamy korzystając ze związku a = W; «( co i+ (gdzie i ń) Dla udowodnienia powyższego algorytmu wystarczy zauważyć że oraz skorzystać ze związku gdy a>; = w M = a + a ; = gdy co ; == w m = 2 gdy );= lw w = k w Przekroczenie zakresu przy uzupełnianiu następuje wtedy i tylko wtedy gdy x Przykład 2- Obliczamy uzupełnienie liczby ^ = ; korzystając z przedstawionego wyżej algorytmu otrzymamy ; 39 25 łatwo sprawdzić że otrzymaliśmy liczbę która jest uzupełnieniem liczby 32 -> 22 Algorytm sumowania szeregowego Niech będą dane dwie dodatnie liczby binarne (dwójkowe) o skończonych rozwinięciach Załóżmy że obie te liczby są tej samej długości n (= n POUTFO-W' A v>r A """ T ' WSKA K ' Maszyn i A -:! :-; u cznycn y

26 2 Zarys organizacji maszyny typowej Dodawanie szeregowe polega na dodawaniu do siebie kolejnych współczynników począwszy od współczynnika przy najniższych potęgach dwójki Jeśli oznaczymy cyfry wyniku przez ^(y) a przeniesienia z dodawania przez p t to algorytm dodawania możemy opisać za pomocą tabl 2- realizującej wzór gdzie oc p i e {OJ} dla i = «n lfi Pt> Tablica 2- Pi + i Przy dodaniu do siebie współczynników przy 2~" kładziemy p n+l = Niech będą dane dwie liczby x u x z z przedziału < 2~"> Oznaczmy dalej przez y t przedstawienie liczby x x w arytmetyce uzupełnieniowej^ przez y 2 zaś przedstawienie liczby x z w arytmetyce uzupełnieniowej Musimy rozpatrzyć cztery przypadki: ) 2) 3) 4) Xx > C j X 2 > Oj Xx > C j #2 %<C j X_ < OJ > OJ % < c j x 2 < OJ Rozpatrzmy pierwszy przypadek y y i = *u yi-2+ yi 2 -f-%> y 2 y* y% y^ x i = 2 + x 2J = x 2 j = 2 + xi yi + y& = *i + czyli dodawanie w tym przypadku dwóch liczb w arytmetyce uzupełnieniowej sprowadza się do zwykłego dodawania liczb w rozwinięciu binarnym Przypadek drugi i trzeci rozpatrzmy łącznie yx \ yi *" ~T~ ^i ~r ^2 -^ i \%i ~\~ %%] Z kolei musimy rozważyć dwa podprzypadki: ) gdy Xx + x 2 < Oj 2) gdy Xl + x i > W pierwszym z wymienionych podprzypadków wynik dodawania daje poprawne ^

2 Arytmetyka uzupełnieniowa 27 przedstawienie liczby w arytmetyce uzupełnieniowej w drugim należy zmniejszyć o 2; jest to równoważne nieuwzględnianiu pozycji K_J wyniku Rozpatrzmy czwarty przypadek: + 3>2 = + x 2 = 2 + 2 + x t + x % ponieważ x x + x 2 < aby otrzymać prawidłową postać wynik należy zmniejszyć o 2 jest to równoważne nieuwzględnianiu pozycji a_j wyniku Jak wynika z powyższych rozważań dodawanie liczb z przedziału < \ 2~"> w arytmetyce uzupełnieniowej sprowadza się do szeregowego dodawania liczb binarnych i zaniedbywania pozycji a_ u odpowiadającej pierwszej potędze dwójki 2 Przekroczenie zakresu Przy dodawaniu (odejmowaniu) liczb z przedziału < lj 2""> może nastąpić przekroczenie zakresu Przy dodawaniu przekroczenie zakresu może nastąpić w dwóch przypadkach: ) gdy x > } x 2 > O 2) gdy x < * 2 < O oraz y = oraz = x x -f- Oznaczymy zerowy bit liczby x przez oc o (*)ś bit przekroczenie zakresu oznaczymy przez Q (jeśli nastąpiło przekroczenie zakresu to Q I jeśli zaś nie nastąpiło to Q = ) Korzystając z powyższych oznaczeń w tabl 2-2 przedstawiliśmy przekroczenie zakresu w zależności od zerowych bitów argumentów i wyniku dodawania Tablica 2-2 KO) e W przyjętym przez nas systemie przedstawiania liczb ujemnych operację odejmowania sprowadzamy do operacji dodawania odjemnej z uzupełnieniem odjemnika 23 Algorytm mnożenia przez i Jeśli mamy liczbę dodatnią «xa a <x n to mnożąc ją przez ł otrzymujemy w wyniku liczbę a x a a a n

28 2 Zarys organizacji maszyny typowej Podobnie jeśli mamy liczbę ujemną to w wyniku otrzymamy liczbę! a a nj Ll«j«a «Ogólnie algorytm mnożenia przez I dla liczb binarnych w arytmetyce uzupełnieniowej ma postać: \ (oc o KiOCu «) = a a a x a 2 a n 24 Algorytm mnożenia przez 2 Mnożenie dowolnej liczby binarnej w arytmetyce uzupełnieniowej przez 2 jest wykonalne (bez przekroczenia zakresu) tylko w przypadku gdy w przypadku zaśj gdy 2 (a a x a 2 oc n ) = «x <x = a x mnożenie wyprowadza poza przedział < i 2~" + > czyli następuje przekroczenie zakresu 25 Algorytm mnożenia Niech będzie dana para liczb zwana dalej mnożną i mnożnikiem Dalej będziemy oznaczali mnożną literą M mnożnik zaś literą F /a f n -V Dopisujemy do F na n-tej pozycji Oj otrzymamy -P=/ -/x/ 2 / _ Rozważmy dalej ciąg par OJ /n-l> Jn-2> fn-l> > fk-v fk> * - i fos /l- Będziemy tworzyli ciąg iloczynów cząstkowych "OJ> -"IJ i A n gdzie pierwszy wyraz ciągu przyjmujemy równy : " ó = ; dalsze zaś wyrazy tego ciągu tworzymy korzystając z reguł podanych w tabl 2-3 roz- C ) Przy czym zakładamy że M ^ w przypadku gdy M = 3 zamiast omawianego dalej algorytmu należy zastosować algorytm uzupełnienia omawiany w punkcie 2 3 do liczby F aby otrzymać poprawny wynik

2 Arytmetyka uzupełnieniowa 29 ważając kolejne pary f k f k _ x Iloczyn A jest równy podwojonemu K-temu iloczynowi cząstkowemu A : A = 2A n Dowód powyższego algorytmu podanego przez Bootha nie nastręcza trudności Tablica 2-3 fk - ±(A _ k -M) i Wystarczy zauważyć że w przypadku gdy F ma na &-tej pozycji jedynką pozostałe zaś bity są zerami to dwa kroki algorytmu mające istotny wpływ na wynik odpowiadające dwóm parom f k+v / k i fajfa-i sa - równoważne pomnożeniu przez 2~ k M- 2~ k+l = M (2- fc+ - 2~ fc ) = M 2~ k Dalej dowód przebiega indukcyjnie Uwaga: W przypadku gdy M i F są liczbami w-bitowymij wynik mnożenia jest liczbą 2n-l bitową 3 5 Przykład 2-2 Niech M = zaśf = W arytmetyce uzupełnieniowej mają t 4 ) 8 postać: M= / F= Rozważmy kolejne pary i skonstruujemy kolejne iloczyny cząstkowe: = 32' Przykład 2-3 Niech M mają one postać: ^ _ ' zas F = W arytmetyce uzupełnieniowej M= i? =

3 2 Zarys organizacji maszyny typowej Rozważmy kolejne pary i skonstruujemy kolejne iloczyny cząstkowe: fs- /c = A = i(-m) = /* = > / - * A 2 = i A x = / = U = * ^3 = I (^2 + AQ= / 2 = / = = i (A ^4 a - M)= A = / = A 5 = J (^ + Af)= / = / a - A = ia = ^4 = = = - 2^6 2 j j 26 Algorytm zaokrąglenia Niech będzie dana liczba binarna w arytmetyce uzupełnieniowej o ną- s bitach Przypuśćmy że potrzebne nam jest zaokrąglenie tej liczby do n bitów w tym celu musimy sprawdzić znak liczby; jeśli liczba jest dodatnia to musimy dodać do niej jedynkę na n + pozycji czyli dodać 2" n+ ; O*^ a n _ix n a n+s + «+ bitów W przypadku zaś gdy liczba jest ujemna musimy dodać do niej ciąg jedynek począwszy od pierwszej pozycji a skończywszy na n - ~ pozycji czyli odjąć 2~ n+ ; uprzednio kładąc a n +l = i; a _j «a n+s + n + bitów wzór algebraiczny opisujący algorytm zaokrąglenia liczby x ma postać: *(*)=* + 2-" + [2-2«+ oc n+ («o - )] Przekroczenie zakresu może nastąpić tylko w dwu przypadkach: w pierwszym jeśli liczba jest dodatnia (czyli a = ) i bity o^ a 2 <x n są jedynkami w drugim przypadku jeśli liczba jest ujemna (czyli a = ) i bity a 2 <x 2 a n są zerami 27 Algorytm dzielenia Niech będzie dana para liczb: dzielna i dzielnik Oznaczmy dzielnik literą M dzielną zaś literą A A a o a ± a % a n _ u M»z m x m^ m n _ x Nasz algoiytm musi zapewniać wykonanie dzielenia tylko w przypadku gdy \A\<[M\ (2-) ponieważ w przeciwnym razie nastąpiłoby przekroczenie zakresu Algorytm nasz będzie konstruował nam dwa ciągi: ciąg pomocniczy i ciąg ilorazów częściowych Sprawdzenie warunku (2-) Będziemy rozróżniali dwa przypadki: jeśli jeśli a Q m a ^ m to to A x A = A + M M

2 Arytmetyka uzupełnieniowa 3 Tablica 2-4 J4 < M wtedy i tylko wtedy gdy a* - fl!= a = a = Oznaczając bit uzupełnienia A (czyli bit o wskaźniku zero) przez a\ możemy scharakteryzować za pomocą tabl 2-4 wszystkie przypadki spełniania nierówności (2-) W przypadku gdy nie jest spełniona nierówność (2-); należy: jeśli a o = m O) to A x + M = A M + M = ^4 jeśli a i=- m to /J x M = A + M~M = A po czym musi być generowany sygnał nadmiaru W przypadku spełnienia nierówności (2-) wykonujemy kolejne kroki algorytmu Pierwszy krok algorytmu: jeśli a\ = m to A*_ = 2A X M oraz I x = i jeśli a\ = m to A 2 = 2A X + M oraz /! = ^-ty krok algorytmu (gdzie k = 2J3J n): jeśli ag = m to A k+l = 2^i fc Af oraz I k = I k _ x + 2~ k+l jeśli ag T^?K OJ to A k+ = 2A k + M oraz 7 fc = J^j Przez a oznaczyliśmy bit uzupełnienia (czyli bit o wskaźniku zero) liczby A k Iloraz / = I n) zaś reszta z dzielenia R wyraża się wzorem: jeśli < + = m Q} to R = 2~" (^n+i - Af) jeśli < + ^ mo to i? = 2-" (^n+ + Af) Przez ag + oznaczyliśmy bit uzupełnienia (czyli bit o wskaźniku zero) liczby A n V Przykład 2-4 ^ = --= o Sprawdzenie nierówności (2-): = = ^ A x = jak widać z tabl 2-4 nierówność jest spełniona wobec czego możemy przystąpić do dzielenia pierwszy krok: = A z = /j = drugi krok: ^ A s = 7 2 = trzeci krok: = A i = 7 3 = czwarty krok: ^ A - 7 d =

32 2 Zarys organizacji maszyny typowej 7 = 7 4 = =- Przykład 2-5 i? == 2-4 ( + ) = A = -!; = M = -I = 64 o Sprawdzenie nierówności (2-): ^= ^x = jak widać z tabl 2-4 nierówność jest spełniona wobec czego możemy przystąpić do dzielenia pierwszy krok: = A 2 = I ± = drugi krok: = A 3 = 7 2 = trzeci krok: ^ A t = 7 3 = czwarty krok: = yi 5 = 7 4 = piąty krok: ^ A e = 7 5 = szósty krok: ^ A 7 = 7 G = 7 = 7 G = = -- 8 i? = 2~ 6 ( + ) = 22 KRÓTKI OPIS MASZYNY TYPOWEJ 22 Obecnie omówimy zasady organizacji małej UPMC Maszyna taka mimo niskich parametrów i prostoty organizacji wystarczy do wyłożenia zasadniczych elementów programowania w całej rozciągłości Przedstawiona niżej typowa mała UPMC będzie maszyną szeregową stałoprzecinkową pracującą w binarnej arytmetyce uzupełnieniowej Maszyna wykonuje operacje na liczbach dwójkowo wymiernych z przedziału <-l l-2-33 > W maszynie wyróżniamy dwa rodzaje słów: ) słowa krótkie o długości 7 pozycji binarnych w skrócie 7 B( x ) 2) słowa długie o długości 34 pozycji binarnych w skrócie 34 B Rozkazy (instrukcje) dla maszyny są kodowane binarnie i przedstawione za pomocą słów krótkich Maszyna może wykonywać wszystkie operacje arytmetyczne logiczne zarówno na słowach krótkich jak i na słowach długich Zasadniczo słowa 7 bitowe służą do przedstawiania rozkazów a słowa 34 bitowe liczb Gdy używamy słowa 7 bitowe jako ) Literę B będziemy czytali bit 7 B czytamy 7 bitów