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

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

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

Kod U2 Opracował: Andrzej Nowak

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

Szybkie układy mnożące

Szybkie układy mnożące

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

Mikrooperacje. Mikrooperacje arytmetyczne

Operacje arytmetyczne

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Arytmetyka stałopozycyjna

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

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

Podstawy Informatyki

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

1. Operacje logiczne A B A OR B

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

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

Architektura komputerów, Informatyka, sem.iii. Sumatory

Pracownia Komputerowa wykład V

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

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

Arytmetyka binarna - wykład 6

Zapis liczb binarnych ze znakiem

Technika cyfrowa Układy arytmetyczne

Systemy zapisu liczb.

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Wstęp do Informatyki

Naturalny kod binarny (NKB)

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Dodawanie liczb binarnych

1.1. Pozycyjne systemy liczbowe

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

Programowanie Niskopoziomowe

Architektura Systemów Komputerowych

Lista Rozkazów: Język komputera

Arytmetyka liczb binarnych

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Wprowadzenie do informatyki - ć wiczenia

Ćwiczenie nr 1: Systemy liczbowe

Pracownia Komputerowa wyk ad V

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

ARYTMETYKA KOMPUTERA

DZIESIĘTNY SYSTEM LICZBOWY

SYSTEMY LICZBOWE 275,538 =

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

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

Programowanie Niskopoziomowe

Arytmetyka komputerów

Układy kombinacyjne. cz.2

Magistrala systemowa (System Bus)

Operacje arytmetyczne w systemie dwójkowym

Pracownia Komputerowa wykład IV

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

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

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

System Liczbowe. Szesnastkowy ( heksadecymalny)

Technologie Informacyjne

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wykład VI

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

Kodowanie informacji. Kody liczbowe

Wprowadzenie do informatyki ćwiczenia

Krótkie przypomnienie

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

Układy kombinacyjne 1

Systemy liczbowe używane w technice komputerowej

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

Struktura i działanie jednostki centralnej

Cyfrowy zapis informacji

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów

Pracownia Komputerowa wyk ad IV

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

przeniesienie pożyczka

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

Algorytm mnożenia sekwencyjnego (wariant 1)

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Wstęp do informatyki- wykład 2

Architektura komputerów

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Kodowanie liczb całkowitych w systemach komputerowych

Luty 2001 Algorytmy (7) 2000/2001

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

Pracownia Komputerowa wyk ad VI

Technologie Informacyjne Wykład 4

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Transkrypt:

Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna dla liczb bez znaku MnoŜenie liczb ze znakiem MnoŜarka sekwencyjna dla liczb U Szybkie mnoŝarki Sumator z zachowaniem przeniesień MnoŜenie przy poszerzonej bazie Układy dzielące liczby całkowite Dzielenie liczb bez znaku Sekwencyjny układ dzielący liczby bez znaku Dzielenie ze znakiem rchitektura systemów komputerowych Cezary Bolek MnoŜenie liczb bez znaku Papier i ołówek = = Iloczyn = 56 m-bitowa mnoŝna n-bitowy mnoŝnik = (mn)-bit. iloczyn Operacje: przesuwanie i dodawanie Binarne mnoŝenie jest proste mnoŝna = mnoŝna = mnoŝna MnoŜenie realizacja sprzętowa (wersja ) Warunki początkowe: rejestru Iloczyn na Rozszerzenie zerowe mnoŝnej = []? = shift left a. Iloczyn = Iloczyn 6-bit LU add. Przesuń MnoŜną o b w lewo. Przesuń b. w prawo Iloczyn powtórzenie? MnoŜarka bity [] rchitektura systemów komputerowych Cezary Bolek rchitektura systemów komputerowych Cezary Bolek

MnoŜenie (wersja ) - przykład Operacja:, Iloczyn = rgumenty -bitowe, wynik 8-bitowy jest rozszerzony zerami (mnoŝenie bez znaku) [] = => DD SLL i SRL [] = => Nic nie rób SLL i SRL SLL i SRL SLL i SRL [] = => DD [] = => DD Iloczyn MnoŜarka wersja wnioski MoŜna dokonać optymalizacji w celu uproszczenia sprzętu Zamiast przesuwać mnoŝną w lewo: Przesuwanie iloczynu w prawo Generuje identyczny wynik Uproszczenie realizacji sprzętowej: Rejestr mnoŝnika moŝe zostać zmniejszony do bitów Rozmiar sumatora moŝe być takŝe zmniejszony do bitów Pojedynczy krok moŝe być wykonany w jednym cyklu Przesunięcie rejestru iloczynu i sumowanie w tym samym czasie rchitektura systemów komputerowych Cezary Bolek 5 rchitektura systemów komputerowych Cezary Bolek 6 MnoŜarka wersja MnoŜarka sekwencyjna wersja ostateczna Iloczyn w rejestrze podzielonym na dwie części: HI i LO Iloczyn przesuwany w prawo i sumator -bitowe bity -bit LU bity bity carry HI bity add LO bity [] = HI = HI []? powtórzenie? = Przesuń Iloczyn (HI,LO) w prawo Przesuń w prawo Eliminacja rejestru mnoŝnika LO = Iloczyn = HI i LO bity bity -bit LU add bity bity carry HI LO LO[] LO= = LO[]? = HI = HI Przesuń Iloczyn (HI,LO) w prawo powtórzenie? rchitektura systemów komputerowych Cezary Bolek 7 rchitektura systemów komputerowych Cezary Bolek 8

MnoŜarka sekwencyjna - przykład Operacja:, Iloczyn = rgumenty -bitowe, wynik 8-bitowy -bitowy sumator daje 5-bitowy wynik (carry) (LO = ) Przesuń w prawo Iloczyn = (HI, LO) LO[] = => Nic nie rób LO[] = => DD Carry Iloczyn = HI, LO Przesuń w prawo Iloczyn = (HI, LO) LO[] = => DD Przesuń w prawo Iloczyn = (HI, LO) LO[] = => DD Przesuń w prawo Iloczyn = (HI, LO) MnoŜenie liczb ze znakiem (U) MoŜliwe rozwiązanie (nieoptymalne) Konwersja mnoŝnej i mnoŝnika na liczby dodatnie Jeśli liczba jest ujemna obliczenie uzupełnienia dwójkowego i zapamiętanie znaku Przeprowadzenie mnoŝenia liczb bez znaku Wyznaczenie znaku wyniku Jeśli wynik ma być ujemny, konwersja uzyskanego wyniku na liczbę ujemną (uzupełnienie dwójkowe) Rozwiązanie optymalne MnoŜarka jak dla liczb dodatnich, lecz: Przy przesuwaniu Iloczynu w prawo rozszerzenie znakowe Jeśli mnoŝnik jest ujemny ostatni krok: odejmowanie rchitektura systemów komputerowych Cezary Bolek 9 rchitektura systemów komputerowych Cezary Bolek MnoŜenie liczb U MnoŜarka sekwencyjna dla liczb U Przypadek : Dodatni mnoŝnik = - = 5 Rozszerzenie znakowe Iloczyn = - Przypadek : Ujemny mnoŝnik = - = - Rozszerzenie znakowe (uzupelnienie dwójkowe liczby ) Iloczyn = rchitektura systemów komputerowych Cezary Bolek Podobna do mnoŝarki dla liczb bez znaku LU generuje wynik -bitowy i HI są rozszerzane znakowo Do rozszerzenia HI wykorzystuje się bit znaku (najstarszy bit LU) operacji dodawania (nie carry) bity -bit LU bity bity HI bity add, sub LO LO[] rchitektura systemów komputerowych Cezary Bolek = LO=, HI= LO[]? Pierwsze iteracji: HI = HI Ostatnia iteracja: HI = HI powtórzenie? = Przesuń Iloczyn (HI, LO) w prawo

MnoŜarka sekwencyjna U - przykład Operacja: (-) (-), Iloczyn = i HI są rozszerzane znakowo przed dodawaniem Ostatnie iteracja: dodanie uzupełnienia dwójkowego mnoŝnej (LO = ) Przesuń w prawo Iloczyn = (HI, LO) LO[] = => Nic nie rób LO[] = => DD Znak Iloczyn = HI, LO Przesuń w prawo Iloczyn = (HI, LO) LO[] = => DD Przesuń w prawo Iloczyn = (HI, LO) LO[] = => SUB (DD uzupełn. ) Przesuń w prawo Iloczyn = (HI, LO) rchitektura systemów komputerowych Cezary Bolek Szybkie układy mnoŝące mnoŝarka tablicowa Zastosowanie -bitowego sumatora dla kaŝdego bitu mnoŝnika sumatorów dla mnoŝenia liczb -bit Operacja ND z kaŝdym bitem mnoŝnika Iloczyn = zakumulowana, przesunięta suma KaŜdy sumator daje wynik -bit (carry) Najstarszy bit jest bitem przeniesienia Najmniej znaczący wynik mnoŝenia Starsze bity na wejście nast. sum. MoŜe być optymalizowana Zastosowanie sumatora z zachowaniem przeniesień (CS-Carry Save dder) Zastosowanie potokowości rchitektura systemów komputerowych Cezary Bolek B bits B bits -bit B B bits -bit -bit bits B bits bits bits... -bit bits bits bits bit bits bits bits P 6.. P.. P P P P Sumator z zachowaniem przeniesień Przykład dodawanie czterech liczb CS Carry Save dder a b a b a b a b a b c a b c a b c a b c Stosowany gdy sumowane musi być kilka argumentów (np. mnoŝarki Posiada wejścia i dwa wyjścia dla kaŝdego zestawu bitów (argumenty i wyniki) sumuje trzy liczby dając w wyniku sumę częściową i przeniesienie Wszystkie człony sumatora działają równolegle Przeniesienie nie musi być propagowane (RC) lub antycypowane (CL) Znaczenie szybszy niŝ inne sumatory s 5 s c c d d s s c d s B c d s s 5 s d s d d s s B C d s c out a b... s a b s Ripple Carry dder a b s c in a b c c' s'... a b c a b c c' s' Carry Save dder c' s' C Ripple Carry dder D Ripple Carry dder Ripple Carry dder S D Carry Save dder Carry Save dder Ripple Carry dder S rchitektura systemów komputerowych Cezary Bolek 5 rchitektura systemów komputerowych Cezary Bolek 6

MnoŜenie przy poszerzonej bazie typowe wartości składników (np. dla radix-) moŝna obliczać wstępnie lub stosować sumator CS rytmetyka liczb bez znaku Iloczyn Przesunięcie -bit Iloczyn x x x x -bity Przesunięcie -bit CS Dzielenie liczb bez znaku = 9 Iloraz Dzielnik = 7 Dzielna - Dzielnik = Iloraz Dzielnik Reszta 7 = 9 8 - - Operację dzielenia binarnego uzyskuje się za pomocą przesuwania i odejmowania = 8 Reszta rchitektura systemów komputerowych Cezary Bolek 7 rchitektura systemów komputerowych Cezary Bolek 8 Dzielenie realizacja sprzętowa (wersja ) : Reszta = Dzielna (uzupełniona ) Załadowanie dzielnika do starszych bitów Iloraz = RóŜnica 6-bit LU Reszta Dzielnik Iloraz bity sub shift left set lsb rchitektura systemów komputerowych Cezary Bolek 9. Przesuń w prawo Dzielnik Przesuń w lewo Iloraz RóŜnica = Reszta Dzielnik RóŜnica?. Reszta = RóŜnica Ustaw najmniej znaczący bit Ilorazu powtórzenie? < Dzielenie (wersja ) - przykład Operacja: / (-bitowe dzielna i dzielnik) Iloraz:, Reszta = 8-bitowe rejestry dla Reszty i Dzielnika (8-bitowe LU) : Z < => Nic nie rób : R = Z, ustaw LSB Ilorazu : Z < => Nic nie rób : Z < => Nic nie rób Reszta (R) Dzielnik (D) RóŜnica (Z) Iloraz (I) : SRL: D; SLL: I; oblicz Z : SRL: D; SLL: I; oblicz Z : SRL: D; SLL: I; oblicz Z : SRL: D; SLL: I; oblicz Z rchitektura systemów komputerowych Cezary Bolek

Układ dzielący wersja wnioski MoŜna dokonać optymalizacji w celu uproszczenia sprzętu Zamiast przesuwać dzielnik w prawo: Przesuwanie reszty w lewo Generuje identyczny wynik Uproszczenie realizacji sprzętowej: Rejestr dzielnika moŝe zostać zmniejszony do bitów Rozmiar LU moŝe być takŝe zmniejszony do bitów Reszta i Iloraz mogą zostać umieszczone w tym samym rejestrze Sekwencyjny układ dzielący wersja ostateczna Przesuwania reszty w lewo daje taki sam efekt jak przesuwanie dzielnika w prawo Iloraz = Dzielna, Reszta = Dzielnik -bit LU RóŜnica bits Reszta bits Iloraz bits sub Control shift left set lsb. Przesuń w lewo (Reszta, Iloraz) RóŜnica = Reszta Dzielnik RóŜnica?. Reszta = RóŜnica Ustaw najmniej znaczący bit Ilorazu powtórzenie < rchitektura systemów komputerowych Cezary Bolek rchitektura systemów komputerowych Cezary Bolek Sekwencyjny układ dzielący przykład Operacja: / (-bitowe dzielna i dzielnik) Iloraz:, Reszta = -bitowe rejestry dla Reszty i Dzielnika (-bitowe LU) : Z < => Nic nie rób : R = Z, ustaw LSB Ilorazu : Z < => Nic nie rób : Z < => Nic nie rób Reszta (R) Iloraz (I) Dzielnik (D) RóŜnica (Z) : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z Dzielenie liczb ze znakiem Najprostszy sposób: pamiętanie znaków Przekształć dzielną i dzielnik na wartości dodatnie Wyznacz uzupełnienie dwójkowe gdy ujemne, nic nie rób gdy dodatnie Przeprowadź dzielenie bez znaku Wyznacz znak ilorazu i reszty Znak ilorazu = Znak dzielnej XOR Znak dzielnika Znak reszty = Znak dzielnik Przekształć iloraz i resztę na ujemne jeśli ich znaki są ujemne Wyznacz uzupełnienie dwójkowe gdy mają być ujemne rchitektura systemów komputerowych Cezary Bolek rchitektura systemów komputerowych Cezary Bolek

Dzielenie ze znakiem - przykłady. Dodatnia Dzielna i dodatni Dzielnik Przykład: 7 / Iloraz = 5 Reszta =. Dodatnia Dzielna i ujemny Dzielnik Przykład: 7 / Iloraz = 5 Reszta =. Ujemna Dzielna i dodatni Dzielnik Przykład: 7 / Iloraz = 5 Reszta =. Ujemna Dzielna i ujemny Dzielnik Przykład: 7 / Iloraz = 5 Reszta = Zawsze musi zachodzić zaleŝność: Dzielna = Iloraz Dzielnik Reszta rchitektura systemów komputerowych Cezary Bolek 5 Operacje przesunięć Operacje arytmetyczne Operacje logiczne MnoŜenie i dzielenie w oparciu o LU None = SLL = SRL = SR = DD = SUB = ND = OR = NOR = XOR = B Jednostka logiczna Shift mount lsb 5 Shifter rchitektura systemów komputerowych Cezary Bolek 6 c dd e r < MnoŜenie i dzielenie sekwencyjne moŝna zrealizować w oparciu wielofunkcyjne LU (w wielu krokach) overflow Wybór typu oper. Shift = SLT = rith = Logic = LU Result zero rchitektura systemów komputerowych Cezary Bolek 7