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

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

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

Kod U2 Opracował: Andrzej Nowak

Szybkie układy mnożące

Szybkie układy mnożące

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

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

Arytmetyka stałopozycyjna

Technika cyfrowa Układy arytmetyczne

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

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Operacje arytmetyczne

Podstawy Informatyki

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

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

Mikrooperacje. Mikrooperacje arytmetyczne

1. Operacje logiczne A B A OR B

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

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

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ą:

Naturalny kod binarny (NKB)

Architektura Systemów Komputerowych

Wstęp do Informatyki

Systemy zapisu liczb.

Dodawanie liczb binarnych

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

Lista Rozkazów: Język komputera

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

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

1.1. Pozycyjne systemy liczbowe

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Arytmetyka liczb binarnych

Wprowadzenie do informatyki - ć wiczenia

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

ARYTMETYKA KOMPUTERA

Programowanie Niskopoziomowe

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Magistrala systemowa (System Bus)

Pracownia Komputerowa wyk ad V

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

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

DZIESIĘTNY SYSTEM LICZBOWY

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

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ń.

Programowanie Niskopoziomowe

Ćwiczenie nr 1: Systemy liczbowe

Technologie Informacyjne

Arytmetyka komputerów

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Operacje arytmetyczne w systemie dwójkowym

Struktura i działanie jednostki centralnej

Układy kombinacyjne. cz.2

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wykład IV

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

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Wstęp do informatyki- wykład 2

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

Krótkie przypomnienie

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

Systemy liczbowe używane w technice komputerowej

System Liczbowe. Szesnastkowy ( heksadecymalny)

Pracownia Komputerowa wykład VI

Wprowadzenie do informatyki ćwiczenia

przeniesienie pożyczka

Kodowanie informacji. Kody liczbowe

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

Architektura komputerów

Luty 2001 Algorytmy (7) 2000/2001

Kodowanie liczb całkowitych w systemach komputerowych

Przykładowe pytania DSP 1

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

Układy kombinacyjne 1

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

Technologie Informacyjne Wykład 4

Cyfrowy zapis informacji

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

Algorytm mnożenia sekwencyjnego (wariant 1)

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

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

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

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

Teoretyczne Podstawy Informatyki

Pracownia Komputerowa wyk ad IV

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

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

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

Transkrypt:

Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu 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 Architektura systemów komputerowych Cezary Bolek

MnoŜenie liczb bez znaku Papier i ołówek MnoŜna = MnoŜnik = 3 Binarne mnoŝenie jest proste mnoŝna = mnoŝna = mnoŝna Iloczyn = 56 m-bitowa mnoŝna n-bitowy mnoŝnik = (mn)-bit. iloczyn Operacje: przesuwanie i dodawanie Architektura systemów komputerowych Cezary Bolek 3 MnoŜenie realizacja sprzętowa (wersja ) Warunki początkowe: Start Inicjalizacja rejestru Iloczyn na Rozszerzenie zerowe mnoŝnej = MnoŜnik[]? = MnoŜna shift left a. Iloczyn = Iloczyn MnoŜna 64-bit ALU add. Przesuń MnoŜną o b w lewo write Iloczyn Sterow. shift right MnoŜarka MnoŜnik 3 bity MnoŜnik[] 3. Przesuń MnoŜnik b. w prawo Nie 3 powtórzenie? Tak Koniec Architektura systemów komputerowych Cezary Bolek 4

MnoŜenie (wersja ) - przykład Operacja:, Iloczyn = Argumenty 4-bitowe, wynik 8-bitowy MnoŜnik jest rozszerzony zerami (mnoŝenie bez znaku) Iteracja 3 4 Inicjalizacja MnoŜnik[] = => ADD SLL MnoŜna i SRL MnoŜnik MnoŜnik[] = => Nic nie rób SLL MnoŜna i SRL MnoŜnik SLL MnoŜna i SRL MnoŜnik SLL MnoŜna i SRL MnoŜnik MnoŜna MnoŜnik MnoŜnik[] = => ADD MnoŜnik[] = => ADD Iloczyn Architektura systemów komputerowych Cezary Bolek 5 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 3 bitów Rozmiar sumatora moŝe być takŝe zmniejszony do 3 bitów Pojedynczy krok moŝe być wykonany w jednym cyklu Przesunięcie rejestru iloczynu i sumowanie w tym samym czasie Architektura systemów komputerowych Cezary Bolek 6

MnoŜarka wersja Iloczyn w rejestrze podzielonym na dwie części: HI i LO Iloczyn przesuwany w prawo MnoŜna i sumator 3-bitowe 3 bity MnoŜna 3-bit ALU 33 bity 3 bity carry HI 3 bity add LO MnoŜnik 3 bity shift right write shift right Sterow. MnoŜnik[] HI = HI MnoŜna Architektura systemów komputerowych Cezary Bolek 7 = Start MnoŜnik[]? 3 powtórzenie? Koniec Tak = Przesuń Iloczyn (HI,LO) w prawo Przesuń MnoŜnik w prawo Nie MnoŜarka sekwencyjna wersja ostateczna Eliminacja rejestru mnoŝnika Inicjalizacja LO = MnoŜnik Iloczyn = HI i LO Start LO=MnoŜnik MnoŜna = LO[]? = 3 bity 3 bity HI = HI MnoŜna 3-bit ALU 33 bity add Przesuń Iloczyn (HI,LO) w prawo carry 3 bity HI LO shift right Sterow. write LO[] 3 powtórzenie? Koniec Tak Nie Architektura systemów komputerowych Cezary Bolek 8

MnoŜarka sekwencyjna - przykład Operacja:, Iloczyn = Argumenty 4-bitowe, wynik 8-bitowy 4-bitowy sumator daje 5-bitowy wynik (carry) Iteracja 3 4 Inicjalizacja (LO = MnoŜnik) Przesuń w prawo Iloczyn = (HI, LO) LO[] = => Nic nie rób MnoŜna LO[] = => ADD Przesuń w prawo Iloczyn = (HI, LO) LO[] = => ADD Carry Iloczyn = HI, LO Przesuń w prawo Iloczyn = (HI, LO) LO[] = => ADD Przesuń w prawo Iloczyn = (HI, LO) Architektura systemów komputerowych Cezary Bolek 9 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 Architektura systemów komputerowych Cezary Bolek

MnoŜenie liczb U Przypadek : Dodatni mnoŝnik MnoŜna = -4 MnoŜnik = 5 Rozszerzenie znakowe Iloczyn = - Przypadek : Ujemny mnoŝnik MnoŜna = -4 MnoŜnik = -3 Rozszerzenie znakowe (uzupelnienie dwójkowe liczby ) Iloczyn = Architektura systemów komputerowych Cezary Bolek MnoŜarka sekwencyjna dla liczb U Podobna do mnoŝarki dla liczb bez znaku ALU generuje wynik 33-bitowy MnoŜna i HI są rozszerzane znakowo Do rozszerzenia HI wykorzystuje się bit znaku (najstarszy bit ALU) operacji dodawania (nie carry) = Start LO=MnoŜnik, HI= = LO[]? 3 bity MnoŜna 3 bity Pierwsze 3 iteracji: HI = HI MnoŜna Ostatnia iteracja: HI = HI MnoŜna 33-bit ALU add, sub Przesuń Iloczyn (HI, LO) w prawo sign 33 bity Nie 3 powtórzenie? 3 bity shift right Tak HI LO Sterow. Koniec write LO[] Architektura systemów komputerowych Cezary Bolek

MnoŜarka sekwencyjna U - przykład Operacja: (-4) (-3), Iloczyn = MnoŜna i HI są rozszerzane znakowo przed dodawaniem Ostatnie iteracja: dodanie uzupełnienia dwójkowego mnoŝnej Iteracja 3 4 Inicjalizacja (LO = MnoŜnik) Przesuń w prawo Iloczyn = (HI, LO) LO[] = => Nic nie rób MnoŜna LO[] = => ADD Znak Iloczyn = HI, LO Przesuń w prawo Iloczyn = (HI, LO) LO[] = => ADD Przesuń w prawo Iloczyn = (HI, LO) LO[] = => SUB (ADD uzupełn. ) Przesuń w prawo Iloczyn = (HI, LO) Architektura systemów komputerowych Cezary Bolek 3 Szybkie układy mnoŝące mnoŝarka tablicowa Zastosowanie 3-bitowego sumatora dla kaŝdego bitu mnoŝnika 3 sumatorów dla mnoŝenia liczb 3-bit Operacja AND z kaŝdym bitem mnoŝnika Iloczyn = zakumulowana, przesunięta suma KaŜdy sumator daje wynik 33-bit (carry) Najstarszy bit jest bitem przeniesienia Najmniej znaczący wynik mnoŝenia Starsze 3 bity na wejście nast. sum. MoŜe być optymalizowana Zastosowanie sumatora z zachowaniem przeniesień (CSA-Carry Save Adder) Zastosowanie potokowości Architektura systemów komputerowych Cezary Bolek 4 B 3 3 bits A B 3 3 bits 3-bit B B 3 bits A A 3-bit 3-bit A 33 bits B 3 bits 3 bits A 33 bits... 3-bit 3 bits 33 bits 3 bits bit 33 bits 3 bits 3 bits P 63..3 P 3.. P 3 P P P

Sumator z zachowaniem przeniesień CSA Carry Save Adder Stosowany gdy sumowane musi być kilka argumentów (np. mnoŝarki Posiada 3 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 (RCA) lub antycypowane (CLA) Znaczenie szybszy niŝ inne sumatory a 3 b 3 a b a b a 3 b 3 c 3 a b c a b c c out... s 3 s s c in c' 3 s' 3... c' s' c' s' Ripple Carry Adder Carry Save Adder Architektura systemów komputerowych Cezary Bolek 5 Przykład dodawanie czterech liczb a 3 b 3 a b a b a b a 3 b 3 c 3 a b c a b c a b c c 3 c c c d 3 d d d d 3 d d d s 5 s 4 s 3 s s s s 5 s 4 s 3 s s s A B A B C C Ripple Carry Adder D Carry Save Adder D Ripple Carry Adder Carry Save Adder Ripple Carry Adder S Ripple Carry Adder S Architektura systemów komputerowych Cezary Bolek 6

MnoŜenie przy poszerzonej bazie Nietypowe wartości składników (np. 3A dla radix-4) moŝna obliczać wstępnie lub stosować sumator CSA Arytmetyka liczb bez znaku Iloczyn MnoŜnik Przesunięcie -bit Iloczyn x x x x MnoŜnik Przesunięcie -bit A A A A -bity CSA Architektura systemów komputerowych Cezary Bolek 7 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 Architektura systemów komputerowych Cezary Bolek 8

Dzielenie realizacja sprzętowa (wersja ) Inicjalizacja: Reszta = Dzielna (uzupełniona ) Załadowanie dzielnika do starszych 3 bitów Iloraz = Dzielnik shift right Start. Przesuń w prawo Dzielnik Przesuń w lewo Iloraz RóŜnica = Reszta Dzielnik RóŜnica? < 64-bit ALU RóŜnica Reszta sub sign write Sterow.. Reszta = RóŜnica Ustaw najmniej znaczący bit Ilorazu Iloraz 3 bity shift left set lsb 3 powtórzenie? Koniec Tak Nie Architektura systemów komputerowych Cezary Bolek 9 Dzielenie (wersja ) - przykład Operacja: / (4-bitowe dzielna i dzielnik) Iloraz:, Reszta = 8-bitowe rejestry dla Reszty i Dzielnika (8-bitowe ALU) Iteracja 3 4 Inicjalizacja : 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 Architektura 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 3 bitów Rozmiar ALU moŝe być takŝe zmniejszony do 3 bitów Reszta i Iloraz mogą zostać umieszczone w tym samym rejestrze Architektura systemów komputerowych Cezary Bolek Sekwencyjny układ dzielący wersja ostateczna Przesuwania reszty w lewo daje taki sam efekt jak przesuwanie dzielnika w prawo Inicjalizacja Iloraz = Dzielna, Reszta = Start. Przesuń w lewo (Reszta, Iloraz) RóŜnica = Reszta Dzielnik RóŜnica? < Dzielnik 3 bits. Reszta = RóŜnica Ustaw najmniej znaczący bit Ilorazu 3-bit ALU RóŜnica sub sign 3 powtórzenie Nie Reszta 3 bits Iloraz 3 bits write Control shift left set lsb Koniec Tak Architektura systemów komputerowych Cezary Bolek

Sekwencyjny układ dzielący przykład Operacja: / (4-bitowe dzielna i dzielnik) Iloraz:, Reszta = 4-bitowe rejestry dla Reszty i Dzielnika (4-bitowe ALU) Iteracja 3 4 Inicjalizacja : 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) : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z : Przesuń w lewo, oblicz Z RóŜnica (Z) Architektura systemów komputerowych Cezary Bolek 3 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 Architektura systemów komputerowych Cezary Bolek 4

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

Koniec Architektura systemów komputerowych Cezary Bolek 7