Architektura systemów komputerowych Sławomir Mamica Wykład 2: Między sprzętem a matematyką http://main5.amu.edu.pl/~zfp/sm/home.html
W poprzednim odcinku O przedmiocie: architektura jako organizacja, może dotyczyć różnych aspektów systemu komputerowego architektura ASK :) O systemie DSM-5 O mikrokontrolerze 85 3 x µ, rejestry O asemblerze O emulatorze Zadania domowe: Problemy? Pytania?
Plan a) Układy logiczne b) Powtórzenie wiadomości z klasy czwartej c) Kodowanie dwójkowe d) Algebra Boole a i jej realizacja sprzętowa e) Bramki są dwie? f) Prosty przykład sumator g) Układy z pamięcią
Układy logiczne http://main5.amu.edu.pl/~zfp/sm/home.html
Układy logiczne - definicja Układy cyfrowe układy [elektroniczne], w których sygnały [napięciowe] przyjmująściśle określoną liczbę poziomów, którym przypisywane są wartości liczbowe. We Układ analogowy Wy We Układ cyfrowy Wy Układy logiczne - układy cyfrowe o dwóch poziomach [napięć]: i, realizujące operacje logiczne zgodnie z algebrą Boole'a (logiką matematyczną). Układ logiczny We Wy
Układy logiczne - podział Układy kombinacyjne układy logiczne bez pamięci (stan wyjść zależy wyłącznie od stanu wejść). X U Y = f(x) Y Układy sekwencyjne układy logiczne z pamięcią (stan wyjść zależy zarówno od stanu wejść jak i od poprzedniego stanu układu) X U Y = f(x,u) Y
Powtórzenie wiadomości z klasy 4 http://main5.amu.edu.pl/~zfp/sm/home.html
Jak zapisać coś więcej niż lub? Co to znaczy? Skąd wiemy ile to jest? Setki Jedności Dziesiątki Czyli: Pozycja cyfry w liczbie ( liczona od, od prawej do lewej ) 2 + + Pozycyjny system zapisu liczb Podstawa systemu
Zmiana podstawy systemu Dla 2 Czwórki Jedności Dwójki 2 2 + 2 + 2 Czyli 5 D Dla 7 Czterdziestki dziewiątki Jedności Siódemki 7 2 + 7 + 7 Czyli 5 ()
Alfabet Najmniejsza liczba, która nie mieści się w jednej cyfrze jest równa podstawie systemu. Dostępne cyfry: (),, 2,, 9 (8),, 2,, 7 (2), (6),, 2,, 9, A, B,, F Alfabet zbiór dostępnych znaków. Liczba to słowo języka nad alfabetem złożonym z cyfr.
Konwencja Systemem domyślnym jest dziesiętny (o podstawie ) Jeśli pracujemy tylko w jednym systemie, to nie ma potrzeby zaznaczania przy każdej liczbie podstawy systemu, w jakim została ona zapisana. W przeciwnym przypadku należy stosować właściwe oznaczenia: Albo: (7) = 5 (D) = (B) Albo: 5 = B = 32H 5 Dec = 62 Oct = 32 Hex = Bin Dlaczego rasowy informatyk myli pierwszy dzień świąt Bożego Narodzenia z Halloween?
Konwersja Na dziesiętny (trywialne): weź wartość dziesiętną każdej cyfry z odpowiednią wagą: 26 (7) = 7 2 + 2 7 + 6 7 49 + 4 + 6 = 69 (D) Bin / Hex (też trywialne) cyfra Hex to 4 bity: 26 Hex = Bin = = Bin 2 F B = 2FB Hex Na jakie jeszcze systemy konwersja z systemu dwójkowego jest trywialna?
Konwersja (c.d.) Z dziesiętnego za dowolny: Dzielić przez podstawę systemu (docelowego) aż do 3 () =??? (2) 69 () =??? (7) 3 : 2 = 6 r. 6 : 2 = 3 r. 3 : 2 = r. : 2 = r. 69 : 7 = 9 r. 6 9 : 7 = r. 2 : 7 = r. 2 6 (7) (2)
Zadanie domowe Proszę uzupełnić tabelkę (zapisać podaną liczę w pozostałych systemach liczbowych):
Co daje system pozycyjny? Działania w słupkach (na liczbach jednocyfrowych!) Dec: 2 3 + 2 2 3 6 Hex: A 2 3 + F 2 C 6
Kodowanie dwójkowe http://main5.amu.edu.pl/~zfp/sm/home.html
Jak zapisać liczbę dwójkowo? Można tak po prostu: 234 (D) (B) czyli w kodzie dwójkowym (naturalnym) Wada: źle się dogaduje z cyframi w zapisie dziesiętnym Zaleta: wszystkie bity wykorzystane Albo każdą cyfrę dziesiętną osobno: 234 (D) (BCD) czyli w kodzie BCD (Binary-Coded Decimal) Zaleta: dobrze dogaduje się z cyframi w zapisie dziesiętnym Wada: ogromne marnotrawstwo większość bitów niewykorzystana Albo dwie cyfry dziesiętne w bajcie: 234 (D) (pbcd) czyli w kodzie upakowanym BCD (packed Binary-Coded Decimal)
Kodowanie Jednoznaczne i odwracalne przyporządkowanie zbioru liczb w zbiór symboli, zwanych słowami kodowymi. Kodowanie dwójkowe (binarne, bitowe) słowa kodowe złożone z zer i jedynek (alfabet = {, }). Np. kodowanie 4-bitowe (dlaczego takie?): dostępnych 6 słów kodowych (6 zwykle nieużywanych) 2,9 różnych wariantów kodowania ale praktyczne zastosowanie ma tylko kilka.
Kodowanie bez znaku Naturalny kod binarny szczególny przypadek kodu wagowego (8-4-2-) Kod licznikowy kod wagowy (2-4-2-), wygoda realizacji licznika dziesiętnego Kod Aikena kod wagowy (2-4-2-), cecha szczególna: samouzupełnialność (negacja wszystkich bitów daje uzupełnienie liczby do 9) Kod z nadmiarem 3 sprowadza się do dodania 3 i zapisania w naturalnym kodzie dwójkowym Kod Graya przykład kodu refleksyjnego (cyklicznego); reprezentacje liczb różniących się o różnią się tylko jednym bitem.
Kodowanie bez znaku
A liczby ujemne? Najprościej w systemie znak-moduł (ZM lub SM) najstarszy bit to bit znaku, reszta normalnie : 4 (D) (ZM) -4 (D) (ZM) Zalety: Prostota interpretacji zapisu Wady: co nie oznacza prostoty obliczeń. No i mamy małe marnotrawstwo (dwa zera) Zakres liczb zapisanych na N bitach: [ - (2 N- ), 2 N- ]
ZU Kod uzupełnieniowy do jedności (ZU lub U) również bit znaku + moduł, ale liczba ujemna zapisywana jako negacja liczby dodatniej 4 (D) (ZU) -4 (D) (ZU) Zmiana bitu znaku jest tego naturalną konsekwencją. Zalety: Prostota obliczeń Wady: Dalej małe marnotrawstwo (dwa zera) (I się trochę trudno czyta liczby ujemne.) Zakres liczb zapisanych na N bitach: [ - (2 N- ), 2 N- ]
Prostota obliczeń? Dodawanie liczb w ZU jest podobne do dodawania w naturalnym kodzie binarnych, tylko przeniesienie należy dodać do wynikowej sumy. 7 3 = 7 + (-3) = + CPL( ) 3 7 = 3 + (-7) = + CPL( ) + + Czyli razem -4 Czyli razem 4
ZU (v.2) Albo tak Najstarszy bit ma wagę równą (-2 n- +). Wtedy wartość liczby n-bitowej: A = -2 n- + a n n 2 + i= a i 2 i ; Jeśli dodamy wagę bitu znaku i wagi pozostałych bitów, to otrzymamy.
ZU2 Kod uzupełnieniowy do podstawy 2 (ZU2 lub U2) podobnie jak ZU, ale najstarszy bit ma wagę -2 n- Wtedy wartość liczby n-bitowej: A = - 2 n- a n n 2 + i= a i 2 i ; Albo: zanegować wszystkie bity i dodać 4 (D) (ZU2) -4 (D) (ZU2) Zalety: normalne obliczenia, jedno zero (bez marnotrawstwa) Wady: Niesymetryczny zakres reprezentowanych liczb (I jeszcze trudniej się czyta liczby ujemne.) Zakres liczb zapisanych na N bitach: [ - 2 N-, 2 N- ]
Prostota obliczeń Dodawanie liczb w ZU2 tak, jak w naturalnym kodzie binarnym (z tym, że ignorujemy przepełnienie) 7 3 = 7 + (-3) = + [ CPL( ) + ] 3 7 = 3 + (-7) = + [ CPL( ) + ] + Czyli 4 (ignorujemy przepełnienie) + Czyli -4: CPL( ) = CPL( ) =
Stary dobry pomysł System uzupełnień do podstawy wymyślił Blaise Pascal. Skonstruował on maszynę arytmetyczną, która potrafiła dodawać liczby dziesiętne. Aby umożliwić wykonywanie odejmowania, dodawał liczby uzupełnione do podstawy. Przykład: 84 55 = 29. Uzupełnienie dziesiętne liczby 55 (dla liczb dwucyfrowych): - 55 = 45 Obliczenia: 84 + 45 = 29 Ignorujemy przepełnienie i zostaje 29.
Zapis binarny
Przesunięty kod dwójkowy Takie przesunięcie naturalnego kodu dwójkowego, aby liczba.. (np. dla 4 bitów) reprezentowała połowę zakresu przetwarzania, czyli zero.
A co z ułamkami? Zapis stało- bądź zmiennoprzecinkowy. Ale to może później [ nie na tych zajęciach :) ]
Algebra Boole a i jej realizacja sprzętowa http://main5.amu.edu.pl/~zfp/sm/home.html
Dwuelementowa algebra Boole a Zbiór dwuelementowy z trzema operacjami: suma logiczna (alternatywa) iloczyn logiczny (koniunkcja) negacja (inwersja) Oczywiście, operacje te nie wyprowadzają wyników działania poza zbiór B.
Dwuelementowa algebra Boole a Własności Prawa De Morgana
Dwuelementowa algebra Boole a Własności c.d.
Funkcje boolowskie Funkcja boolowska (logiczna) dowolne odwzorowanie f : B n B Przykład (n = 2) f ( a, b) = a b + a b + a b Redukcja wyrażeń boolowskich (korzystamy z własności algebry Boole a) f ( a, b) = a b + a b + a b = a b + ( a + a) b = a b + b = ( a + b ) ( b + b ) = a + b Wyrażenie a funkcja = a + b = a b = a b
Układy logiczne - opis Funkcja przełączająca funkcja logiczna realizowana przez układ logiczny f ( a, b) = a b + a b + a b Tak więc układ logiczny to sprzętowa realizacja pewnej funkcji logicznej, zwanej funkcją przełączającą. Zasada równoważności sprzętu i oprogramowania Każdy problem, który można rozwiązać sprzętowo, można też rozwiązać za pomocą oprogramowania. Pytanie tylko jakim kosztem: czas, zasoby.
Układy logiczne - opis Tabela prawdy (tablica prawdy, matryca logiczna) tabelaryczny układ kombinacji wartości logicznych argumentów danej funkcji logicznej i odpowiadających tym kombinacjom wartości logicznych tejże funkcji. a b f(a,b)
Funkcja przełączająca a tabela prawdy Funkcja przełączająca odpowiada na pytanie kiedy f( )? a b f(a,b) Tutaj lub tutaj f ( a, b) = a b + a b lub tutaj + a b Tylko tutaj f ( a, b) = a b Czasem prościej jest zapytać kiedy nie f( )? Czyli f ( a, b) = f ( a, b) = a b
Bramki są dwie? http://main5.amu.edu.pl/~zfp/sm/home.html
Funkcje jednej zmiennej Twierdzenie: Istnieje funkcji 2 2 n f : B n B Dla n = 2 2 = 4 x f f f 2 f 3 Bufor NOT
Realizacja sprzętowa Klucz ([ze]styk przekaźnikowy) jest elementem trójkońcówkowym składającym się z dwóch równoważnych linii danych i jednego wejścia sterującego. W elektrycznej (elektromechanicznej) realizacji układów binarnych klucze stanowią argumenty funkcji przełączającej. Styk zwierny (normalnie otwarty) X Styk rozwierny (normalnie zamknięty) X Q Q Q = X Q = X stan stan stan stan
Przekaźnik Przekaźnik elektryczny urządzenie elektryczne lub elektroniczne zaprojektowane do wywołania ustalonej nagłej zmiany stanu w jednym lub więcej obwodach wyjściowych przy spełnieniu odpowiednich warunków wejściowych. Cewka Zestyk Q = X Q = X
Styki i cewki - oznaczenia Klucz (przycisk) Cewka zwierny X rozwierny X Q Q2 X X Q Q2
Realizacja elektroniczna Tranzystor
Funkcje dwóch zmiennych Twierdzenie: Istnieje funkcji 2 2 n f : B n B Dla n = 2 2 4 = 6
Funkcje dwóch zmiennych
Funkcje dwóch zmiennych XOR XNOR Bramki NAND oraz NOR nazywa się funkcjonalnie pełnymi, ponieważ przy ich użyciu (tzn. samych NAND lub samych NOR) można zbudować układ realizujący dowolną funkcję logiczną.
NAND logic / NOR logic
Realizacja sprzętowa algebra kluczy W algebrze kluczy klucz (układ kluczy) przyjmuje wartość prawda jeżeli przewodzi.
AND a b Q Q = a b Q = ab Algebra kluczy: a b Q
OR a b Q Q = ab + ab + ab Można zredukować, albo Q = ab Q = Q = ab = a + b Q = a + b Algebra kluczy : a Q b
XOR a b Q Q = ab + ab Zapis: Q = a b Algebra kluczy : a a b b Q
NAND Q b a a b Q Ten przykład już był b a Q Q = = b a b a b a Q + + = Algebra kluczy : a b Q b a Q + =
NOR a b Q Algebra kluczy : Q = ab a b Q Q = a + b a b Q
XNOR negacja alternatywy wykluczającej, równoważność a b Q Q = ab + ab Zapis: Q = a b = a b Algebra kluczy : a a b b Q
Prosty przykład - sumator http://main5.amu.edu.pl/~zfp/sm/home.html
Zadanie Sumator liczb czterobitowych Proszę zaprojektować układ dodający dwie liczby czterobitowe zapisane w naturalnym kodzie dwójkowym.
Podpowiedzi Sumator liczb czterobitowych Proszę zaprojektować układ dodający dwie liczby czterobitowe zapisane w naturalnym kodzie dwójkowym. Podpowiedź : Zorganizować dodawanie dla liczb jednobitowych + połączenie kaskadowe. Tabela prawdy może być użytecznym narzędziem. Podpowiedź 2: W systemie dwójkowym mamy tylko dwie cyfry: i. Dodawanie jest przemienne i łączne. Podpowiedź 3: Dodajemy trzy bity (uwzględniając bit przeniesienia z poprzedniej pozycji). Nie ma znaczenia ich źródło. Otrzymujemy wynik (Q) i przeniesienie (P).
Rozwiązanie Sumator liczb na razie jednobitowych Tabele prawdy dla Q i P. Funkcja przełączająca dla Q i P. Redukcja funkcji przełączających. A B C P Q P = ABC + ABC + ABC + Postać zredukowana: P = BC + AC + AB ABC Q = ABC + ABC + ABC + ABC Postać zredukowana: Q = A B C. Suma modulo 2! XOR 2. Test na nieparzystą liczbę jedynek
Realizacja Q = A B C P = BC + AC + AB A B C A B C Razem (pełny) sumator -bitowy
Realizacja 2 Q = A B C P = AB + ( A B)C A to skąd?
Kaskadowo
Układy z pamięcią http://main5.amu.edu.pl/~zfp/sm/home.html
Przerzutniki Przerzutnik (ang. flip-flop) jest to układ sekwencyjny, którego sygnał na wyjściu może zależeć od stanu na jego wejściu lub od jego stanu wewnętrznego. Istnieją trzy rodzaje przerzutników bistabilne, monostabilne oraz astabilne. W układach cyfrowych najczęściej stosowane są przerzutniki bistabilne mogące być stosowane jako układy pamiętające. Grupa połączonych ze sobą przerzutników bistabilnych może tworzyć tzw. rejestr.
Typy przerzutników Asynchroniczne (zmiana stanu wyjść następuje pod wpływem zmiany stanu wejść): typu RS, Synchroniczne (zmiana stanu wyjść następuje jako reakcja na sygnał zegarowy): typu D, typu Latch (zatrzask) typu T, typu JK, typu JK-MS (MS od Master i Slave), synchroniczny przerzutnik typu RS.
Przerzutnik typu RS Przerzutnik asynchroniczny (choć jest też wersja synchroniczna) Wejście Set Wejście Reset Q Q Wyjścia Działanie: Set ustawia (przypisuje ) wyjście Q Reset zeruje wyjście Q
Przerzutnik typu RS Tabela prawdy Układ sekwencyjny wyjścia zależą od historii układu Q R S Q Działanie:? Set ustawia (przypisuje ) wyjście Q Reset zeruje wyjście Q Poza tym stan Q jest pamiętany A co jeśli R i S? Dwa rodzaje przerzutka RS: RS? =? SR? =
Przerzutnik typu RS Tabela prawdy Q S R Q Funkcja przełączająca QRS QRS QRS Q + + = Redukcja funkcji przełączającej: ( ) S Q R Q + =
Przerzutnik typu SR Tabela prawdy Funkcja przełączająca Q R S Q Q = QRS + QRS + QRS + QRS + QRS albo Q = QRS + QRS + QRS Redukcja funkcji przełączającej: Q = S + QR
Przerzutnik typu RS / SR Funkcja przełączająca Q = RS ( Q + S) R SR Funkcja przełączająca Q = QR + S Algebra kluczy : Algebra kluczy : Q R Q Q R Q S S
NAND SR / NOR RS Wersja synchroniczna (SR)
Przerzutnik typu D Synchronizacja poziomem Clk (lub zboczem) Wejście informacyjne (Data) Wejście zegarowe (Clk) Wyjścia S = D R = /D SR - synchroniczny
Zastosowanie przerzutników Dekoder adresowy Np. pamięć (4-bitowa) Układ odczytu komórek pamięci Komórki pamięci wraz z układem zapisu
Zastosowanie przerzutników Np. licznik asynchroniczny (4- bitowy)
https://logic.ly/demo/
Pytania?
W następnym odcinku Organizacja pamięci 85 Pamięć zewnętrzna Tryby adresowania Przegląd rozkazów 85 (cz. ) Proszę pamiętać o zadaniach domowych!
I to by było na tyle Dziękuję za uwagę!