Wprowadzenie do architektury komputerów. Historia Pojęcia podstawowe Reprezentacja danych i arytmetyka binarna



Podobne dokumenty
Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Kodowanie informacji. Przygotował: Ryszard Kijanka

Podstawy informatyki. Podstawowe pojęcia Historia informatyki

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Arytmetyka liczb binarnych

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

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

algorytm przepis rozwiązania przedstawionego zadania komputer urządzenie, za pomocą którego wykonywane są algorytmy

Podstawy informatyki (2)

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Stan wysoki (H) i stan niski (L)

System Liczbowe. Szesnastkowy ( heksadecymalny)

Techniki multimedialne

Systemy zapisu liczb.

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Cel wykładu. Cel wykładu. Cel wykładu, cd. Cel wykładu, cd. Cel wykładu, cd. Z. Postawa, "Podstawy Informatyki II" Strona: 1 z 6

Wstęp do Informatyki. dr inż. Paweł Pełczyński

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

kodowanie informacji Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Teoretyczne Podstawy Informatyki

Architektura komputerów

Technologie Informacyjne

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

Podstawy Informatyki dla Nauczyciela

Naturalny kod binarny (NKB)

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

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

PODSTAWY INFORMATYKI. Informatyka? - definicja

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

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

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

Metoda znak-moduł (ZM)

Pracownia Komputerowa wykład VI

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Dr inż. Jan Chudzikiewicz Pokój 117/65 Tel Materiały:

Podstawy informatyki (2)

Arytmetyka binarna - wykład 6

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Tranzystor JFET i MOSFET zas. działania

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

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Kod U2 Opracował: Andrzej Nowak

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

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

Pracownia Komputerowa wykład IV

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

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

1.1. Pozycyjne systemy liczbowe

Kodowanie informacji. Kody liczbowe

Systemy liczenia. 333= 3*100+3*10+3*1

Systemy liczbowe. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz

Architektura komputerów

LICZBY ZMIENNOPRZECINKOWE

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

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

Operacje arytmetyczne

Wstęp do Informatyki

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Pracownia Komputerowa wykład V

Historia komputera. Architektura komputera Historia komputera. Historia komputera. Historia komputera. Historia komputera

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Podstawy Informatyki

Pracownia Komputerowa wyk ad VI

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Arytmetyka komputera

Pracownia Komputerowa wyk ad VII

Kodowanie liczb całkowitych w systemach komputerowych

Pracownia Komputerowa wyk ad IV

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

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Podstawy informatyki (1)

Arytmetyka stało i zmiennoprzecinkowa

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Systemy liczbowe używane w technice komputerowej

PI 02-01/12. W jednym bajcie można można zakodować 256 różnych znaków.

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

L6.1 Systemy liczenia stosowane w informatyce

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

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Cyfrowy zapis informacji

DZIESIĘTNY SYSTEM LICZBOWY

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zapis liczb binarnych ze znakiem

Podstawy Systemów Liczbowych

Architektura komputerów

O bitach, bajtach i hardware. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

architektura komputerów w. 2

Architektura komputerów Historia systemów liczących

Algorytmy i struktury danych

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Transkrypt:

Wprowadzenie do architektury komputerów Historia Pojęcia podstawowe Reprezentacja danych i arytmetyka binarna

Plan wykładu Historia i ewolucja komputera Reprezentacja danych w systemach komputerowych Systemy liczbowe i działania na liczbach binarnych Taksonomie architketur komputerowych Podstawy funkcjonowania procesora, rejestry, tryby adresowania, operacje warunkowe, lista i formaty instrukcji Procesory CISC i CISC Assembler procesorów x86 przykładowe instrukcje Przetwarzanie potokowe. Jednostki wielopotokowe (superskalarne)

Plan wykładu Pamięć w systemach komputerowych Pamięć podręczna organizacja i zasada działania Kanały wejścia-wyjścia, komunikacja komputera z peryferiami, DMA i przerwania Podstawowe magistrale komputera Urządzenia wejściowe i wyjściowe komputera Systemy operacyjne, mechanizmy szeregowania, zarządzanie pamięcią

Literatura podstawowa A. Skorupski, Podstawy budowy i działania komputerów. WKiŁ, Warszawa 2000. W. Stallings, Systemy operacyjne. Wydawnictwo Robomatic, Warszawa 2004. J. Biernat, Arytmetyka komputerów. Wydawnictwa Naukowe PWN, Warszawa 1996. P. Ciccarelli, C. Faulkner, Sieci: podstawy. Mikom, Warszawa 2005. P. Metzger, Anatomia PC: Kompendium. Wyd. 4. Helion, Gliwice 2008. Syck G. Turbo Assembler. Biblia użytkownika. LT&P, Warszawa, 2002.

Literatura uzupełniająca O. Kokoreva, Windows XP: Rejestr systemu. Helion, Gliwice 2005. J. Mrugalski, ABC ochrony komputera przed atakami hakera. Helion, Gliwice 2003. R. J. Hantanon, Bezpieczeństwo systemu Linux. Mikom, Warszawa 2002. A. Simpson, Windows XP PL: Biblia. Helion, Gliwice 2003.

Materiały GOOGLE: Adam Klimowicz lub (dokładniej) http://degra.pb.bialystok.pl/~adam Dydaktyka Wprowadzenie do architektury komputerów

Początki Pierwsze urządzenia wspomagające obliczenia matematyczne powstały w starożytnym Egipcie, Rzymie oraz Grecji. Pierwszym znanym, bardziej skomplikowanym przyrządem służącym do obliczeń był datowany na ok. IV wiek p.n.e. abak (łac. abacus, gr. ábaks) a w 967 r. Gerbert Aurillac skonstruował pierwsze znane liczydło. Rzymski abak

Początki W Chinach i Japonii Soroban chiński

Da Vinci Pierwszą znaną maszynę liczącą zaprojektował Leonardo da Vinci (prace nazwane "Codex Madrid"). W roku 1968 została ona odtworzona przez dr Roberto Guatelliego znanego eksperta w dziedzinie twórczości Leonarda (dzisiejsze dzieje tej repliki są nieznane i nie wiadomo gdzie ona się znajduje). Codex Madrid

Pałeczki Nepera i suwak logarytmiczny W 1616 r. szkocki matematyk John Napier (Neper) zastosował do obliczeń pałeczki (pałeczki Nepera), które pozwalały na znaczne przyspieszenie żmudnych obliczeń. Jego wynalazek zapoczątkował rozwój urządzeń analogowych służących do liczenia. W 1622 r. angielscy matematycy E. Gunter i W. Oughtred wynaleźli suwak logarytmiczny.

William Schickard Twórcą pierwszej w historii mechanicznej maszyny do liczenia jest Wilhelm Schickard (1592-1635), który przez długie lata był zupełnie zapomniany. Schickard opisał projekt swojej czterodziałaniowej maszyny (dodawanie, odejmowanie, mnożenie i dzielenie liczb całkowitych), wykorzystując udoskonalone pałeczki Nepera w postaci walców, w liście do Keplera, któremu miała ona pomóc w jego astronomicznych rachunkach. Niestety jedyny zbudowany egzemplarz maszyny spłonął w niewyjaśnionych okolicznościach, a dzisiejsze jej repliki zostały odtworzone dopiero niedawno na podstawie opisu z listu do Keplera.

Pascalina Blaise Pascal (1623-1662) pomógł ojcu, który był poborcą podatkowym. Wyprodukowano około 50 egzemplarzy Pascaliny do liczenia w różnych systemach monetarnych, a część dla różnych miar odległości i powierzchni. Pascalina wykonywała tylko dwa działania (dodawanie i odejmowanie), miała także pewne możliwości zapamiętywania niektórych wyników pośrednich. 1673 G. Leibniz niemiecki filozof udoskonalił Pascalino dodając operacje mnożenia i dzielenia Abraham Stern (1769-1842), z zawodu zegarmistrz, wykonał serię maszyn, które poza czterema działaniami podstawowymi, wyciągały także pierwiastki kwadratowe. Jedna z jego maszyn, raz uruchomiona, potrafiła wykonać za pomocą mechanizmu zegarowego wszystkie operacje bez ingerencji człowieka. Maszyny skonstruowane przez Sterna okazały się jednak mało praktyczne ze względu na wyjątkowo delikatną budowę.

Krosna Jacquarda Joseph-Marie Jacquard (1752-1834) - ukoronował w 1805 r. kilka wieków rozwoju urządzeń z kodem sterującym procesami (pozytywki itp.), konstruując we Francji krosna, w których kod na taśmie perforowanej sterował haczykami wybierającymi nici odpowiedniego koloru do wzorów na tkaninach. Pomysł ten inspirował Babbage'a i Holleritha, a jego wpływ sięgał aż po von Neumanna, którego ojciec bankier kredytował na Węgrzech inwestycje związane z krosnami Jacquarda.

Algebra Boole'a George Boole (1815-1864) - matematyk z uniwersytetu w Cork (Irlandia), choć nie skonstruował żadnej maszyny, ma unikalny wkład w konstrukcję bramek logicznych komputera, które są budowane według praw stworzonej przezeń algebry, zwanej algebrą Boole'a. Ta sama algebra zapoczątkowała w połowie XIX w. logikę matematyczną, dostarczającą teoretycznych podstaw informatyki (zagadnienia obliczalności itp.) i metod automatycznego dowodzenia twierdzeń.

Maszyna elektryczna Herman Hollerith (1860-1929) - jako pierwszy sięgnął po elektryczność, jako źródło impulsów i energii maszyny liczącej. Rozwinął także postać karty perforowanej, na której zapisywano dane i zbudował elektryczny czytnik - sorter kart. Niewątpliwym sukcesem Holleritha był spis ludności w Stanach Zjednoczonych (1890 r.), którego wyniki zostały całkowicie opracowane za pomocą jego urządzeń na podstawie danych zebranych na kartach perforowanych.

Ewolucja komputera 1906 lampa próżniowa(vacuum tube) Profesor Lee De Forest. 1917 - H. Abraham and i E. Bloch odkryli oscylator generujący sygnał o częstotliwości 1kHz. 1919 - Eccles and Jordon zbudowali pierwszy przerzutnik pamięć dla 1bitu 1936 - K. Zuse zbudował Z1 pierwszy komputer binarny z klawiaturą, pamięcią i żarówkami jako output 1937 - C. Shannon praca magisterka o układach logicznych na MIT prace do celów telefonii kontynuowano w pracowniach Bell'a 1938 - C. Shannon z (MIT) publikacja o tym, że komputery powinno konstruować się na przełącznikach ustawiających operacje arytmetyczne

Alan Turing W 1936 roku Alan Turing (1912-1954) ogłosił rewolucyjną pracę dotyczącą teorii maszyn obliczeniowych i algorytmów. Turing sformułował tezę, że na maszynach jego pomysłu można zrealizować każdy algorytm. Do dzisiaj nie obalono tej tezy. Turing brał również udział w pracach nad deszyfracją kodów Enigmy. Prace nad maszyną deszyfrującą Enigmę przyczyniły się do powstania pod koniec wojny w Wielkiej Brytanii kalkulatorów elektronicznych.

Generacje komputerów Generacje komputerów to umowny podział komputerów cyfrowych, zależnie od zastosowanej technologii. Wyróżniamy następujące generacje: 0 generacja - przed pojawieniem się uniwersalnych, elektronicznych maszyn cyfrowych np. przekaźnikowy Z3 1 generacja - budowane na lampach elektronowych np. XYZ 2 generacja - budowane na tranzystorach np. ZAM 41 3 generacja - budowane na układach scalonych małej i średniej skali integracji np. Odra 1305 4 generacja - budowane na układach scalonych wielkiej skali integracji np. komputer osobisty (PC) 5 generacja - projekty o niekonwencjonalnych rozwiązaniach, np. komputer optyczny.

Zerowa generacja lat 30-tych Maszyny cyfrowe na przekaźnikach elektromechanicznych i elementach mechanicznych MARK I, II, III, IV (USA) oraz maszyny Z-1, 2, 3, 4 (Niemcy) Z-1 MARK I

Komputery elektroniczne Pierwsza generacja (lampowe) Pierwsza elektroniczna maszyna cyfrowa - 1945 - ENIAC (Electronic Numerical Integrator And Computer) 50 szaf o wysokości 3 metrów zawierających około 20 tysięcy lamp

Druga generacja (komputery tranzystorowe) Wynalezienie tranzystora 1947 spowodowało powstanie komputera tranzystorowego (1951), dzięki czemu: zmniejsza się zużycie energii, wielkości maszyny, awaryjności maszyny, zwiększa szybkość działania układu, wzrost liczby zastosowań komputerów.

Trzecia i wyższe generacje komputerów Komputery zbudowane za pomocą układów scalonych Układy scalone - 1958 - potocznie chipy, kości, czyli wiele elementów na jednej płytce półprzewodnika. Pojawienie się układów scalonych zaowocowało rozwojem architektury komputerów w dwóch kierunkach: 1. Budowy dużych komputerów (superkomputerów o dużej mocy obliczeniowej) 2. Minikomputerów (komputerów osobistych - PC)

Ewolucja komputerów 1956-IBM tworzy pierwszy dysk twardy-ramac 350. Jego pojemność to 5MB, natomiast cena-milion dolarów 1959 - Integrated Circuit 1960-W listopadzie firma DEC prezentuje PDP-1, pierwszy dostępny w sprzedaży minikomputer, z monitorem i klawiaturą. Głównym projektantem maszyny jest Benjamin Curley. 1960-Laser

Ewolucja komputerów 1965 - "PDP-8" DEC pierwszy komputer produkowany masowo 1970 -"PDP-11" DEC 16-bitowy - zdominował ówczesny rynek komputerów IBM odkryła stację dyskietek zbudowano pierwszy mikroprocesor 1974 - Intel 8080 8-bitowy microprocesor 1975 - "CRAY-1" pierwszy superkomputer 1976 - S. Jobs i S Wozniak Apple I 1981 - popularyzacja architektury RISC IBM wprowadza PC oparty na 8088 1982 - Intel 286 1985 - IEEE 754 standard obliczeń zmiennoprzecinkowych Intel 386

Ewolucja komputerów 1985-odbywa się premiera systemu operacyjnego Microsof Windows 1.0, jest ona jednak spóźniona o ponad rok w stosunku do wcześniejszych zapowiedzi. Cena produktu to 100 dolarów 1988 - Sun wprowadza mikroprocesor SPARC RISC 1989 Galileo wystrzelony w kierunku Jowisza (na pokładzie RCA 1802 8-bit procesor) 1989 Intel 486 z pamięcią podręczną (cache) 1991 IBM/Motorola/Apple wprowadza PowerPC RISC chip 1993 pierwsze Intel Pentium 1994 Pentium ma zaimplementowany algorytm przewidywania rozgałęzień programu 1995-odbywa się premiera systemu Windows 95(nazwa kodowa Chicago). Staje się on wielkim przebojem i w ciągu zaledwie 4 dni sprzedanych zostaje 4 miliony kopii. 1996 Mars Pathfinder 1997 Intel Pentium MMX

Ewolucja komputerów 1997-0.25 mikrona w technologii CMOS pozwala na budowę 8 Mb chipów pamięci 1999-0.18 mikrona CMOS 32Mb chip pamięci 1999 - AMD wprowadza Athelon 750-800MHz 2001-0.15 mikrona CMOS 128Mb chip pamięci 2003-0.13 mikrona CMOS chip pamięci 512Mb Procesory wielordzeniowe 2009-0.07 mikrona 8 GB 2012-0.022 mikrona

Przyszłość komputerów Prawo Moore'a: ekonomicznie optymalna liczba tranzystorów w układzie scalonym podwaja się co 18-24 miesiące. Prawa fizyki ograniczają możliwości miniaturyzacji układów scalonych, a ponad to wraz ze wzrostem częstotliwości taktowania procesora znacząco rośnie moc wydzielana w postaci ciepła. Dlatego więc naukowcy poszukują nowych rozwiązań.

Komputer Urządzenie do przetwarzania danych, wyposażone w możliwość wprowadzania, przechowywania i wyprowadzania danych

Architektura a organizacja Architektura to atrybuty komputera widziane przez programistę Zestaw instrukcji, bitowa reprezentacja danych, mechanizm wejścia-wyjścia, tryby adresowania. np. Czy dostępna jest instrukcja mnożenia? Organizacja to sposób realizacji architektury, odnosi się do jednostek operacyjnych i ich połączeń Sygnały sterowania, interfejsy, technologia pamięci. np. Czy występuje dedykowana jednostka sprzętowa odpowiedzialna za operacje mnożenia, czy jest ona realizowana poprzez wielokrotne dodawanie?

Architektura i organizacja Procesory rodziny Intel x86 mają tą samą bazową architekturę Kompatybilność kodu Co najmniej wsteczna Różnice w organizacji między kolejnymi wersjami

Funkcje Komputery realizują następujące funkcje: Przetwarzanie danych (Data processing) Przechowywanie danych (Data storage) Przemieszczanie i duplikowanie danych (Data movement) Sterowanie (Control)

Funkcjonalność komputera Funkcjonalne przedstawienie komputera na najwyższym poziomie

Operacje odbiór lub wysłanie danych do urządzenia we/wy przesyłanie danych z jednego urządzenia peryferyjnego na drugie przetwarzanie danych z urządzenia we/wy przetwarzanie danych przechowywa nych w pamięci

Struktura komputera

Jednostka centralna CPU

Jednostka sterująca

Sygnały w systemach cyfrowych U[V] 5 1 2 0,8 0 0 0 - stan niski (brak działania/brak sygnału) 1- stan wysoki (działanie układu/sygnał) t

Operacje logiczne Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie elementów dwustanowych opisują operacje dwuelementowej algebry Boole a. Algebrę Boole a definiują: dwuelementowy zbiór {0, 1} oraz trzy operacje: alternatywa (OR), koniunkcja (AND) i negacja (NOT) wraz ze zbiorem aksjomatów i twierdzeń. Zmienne należące do zbioru {0, 1} oraz ww. operacje nazywamy zmiennymi i operacjamilogicznymi. Układy realizujące funkcje logiczne nazywamy funktorami logicznymi (powszechnie używa się też określenia: bramki logiczne)

Negacja NOT Jest to zamiana wartości cyfry na przeciwną (tzn. 0 na 1 i 1 na 0). Ø0 = 1 Ø1 = 0 Negacja jest operacją jednoargumentową. Symbol graficzny funktora realizującego negację Negacja jest najprostszym działaniem logicznym. Wynikiem jest liczba przeciwna do wyjściowej.

Suma logiczna Suma logiczna dwu cyfr binarnych jest równa 0 wtedy i tylko wtedy, gdy obydwie cyfry są równe 0 0 Ú0 = 0 0 Ú1 = 1 1 Ú0 = 1 1 Ú1 = 1 Symbol graficzny funktora OR oraz przykłady działania tego funktora

Iloczyn logiczny Iloczyn logiczny dwu cyfr binarnych jest równy 1 wtedy i tylko wtedy, gdy obydwie cyfry są równe 1 0 Ù0 = 0 0 Ù1 = 0 1 Ù0 = 0 1 Ù1 = 1 Symbol graficzny funktora AND oraz przykłady działania tego funktora

NAND i NOR NAND = NOT AND Symbol graficzny funktora NAND NOR = NOT OR Symbol graficzny funktora NOR

Alternatywa wykluczająca XOR inaczej: różnica symetryczna, suma modulo 2 XOR = exclusive OR Alternatywa wykluczająca dwu cyfr binarnych jest równa 0 wtedy i tylko wtedy, gdy obydwie cyfry są jednakowe. 0Å0=0 0Å1=1 1Å0=1 1Å1=0 Symbol graficzny funktora XOR

Operacje logiczne dla liczb binarnych W operacjach logicznych liczba binarna jest traktowana jako zbiór pojedynczych cyfr. Przykład:

Systemy liczbowe Najpopularniejsze systemy liczbowe: system decymalny (dziesiętny) system binarny (dwójkowy) system heksadecymalny (szesnastkowy) Liczba symboli używanych do reprezentacji liczb w danym systemie liczbowym jest nazywana jego podstawą (ang. base, radix, r ).

System dziesiętny System dziesiętny (decymalny) jest systemem pozycyjnym o podstawie r=10: gdzie a jest jednym z symboli, a j wykładnikiem potęgi podstawy systemu r.

System dwójkowy Zasada działania systemu binarnego jest dokładnie identyczna jak dziesiętnego. Wykorzystuje dwa symbole: 0 oraz 1 (jego podstawa r=2). Liczba kombinacji liczbowych wynosi 2n dla n cyfr. Np. liczba zapisana w dziesiętnym systemie liczbowym jako 10, w systemie dwójkowym przybiera postać 1010, gdyż: 1x23 + 0x22 + 1x21 + 0x20 = 8+2 = 10. Niemal wszystkie obecnie konstruowane systemy cyfrowe działają w oparciu o system binarny - logiczne 0 oznacza brak napięcia, logiczna 1 napięcie (np. 5V w TTL). W ten sposób możemy zakodować każdy sygnał jako ciąg zer i jedynek reprezentowanych przez odpowiednie napięcia.

System szesnastkowy System heksadecymalny wykorzystuje 16 symboli: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Liczba kombinacji wynosi 16n zapisywanych liczb dla n cyfr. Np. liczba zapisana w dziesiętnym systemie liczbowym jako 90, w systemie szesnastkowym przybiera postać 5A, gdyż: 5x161 + 10(A)x160 = 80+10 = 90.

Zapis liczb całkowitych dodatnich Naturalny kod binarny - NKB Kod BCD Używany dla liczb dziesiętnych stałopozycyjnych Cyfry dziesiętne kodowane binarnie - 4 bity (tetrada) na cyfrę Dozwolone wartości tetrady 0..9 pozostałe nieważne Postaci: spakowana - 2 cyfry w bajcie, niespakowana - jedna cyfra w bajcie

Konwersja z dziesiętnego na dwójkowy DEC BIN : dzielenie przez 2 44 0 22 0 11 1 5 1 2 0 1 1 0 4410 = 1011002

Konwersja (z DEC na BIN) Część ułamkowa liczby Część całkowita liczby: 61. 30 1 Kolejne 1 1250 15 0 0 2500 7 1 0 5000 3 1 1 0000 1 1 0 1 wyniki dzielenia przez 2 Część całkowita. 5625 Reszta 61.562510 = 111101.10012 Kolejne wyniki mnożenia przez 2

Zapis liczb całkowitych ze znakiem U2 - kod uzupełnieniowy do dwóch. U1 - kod uzupełnieniowy do jedności znak - moduł zapis spolaryzowany (biased)

Znak-moduł Znak kodowany jest stanem najstarszego bitu: bit znaku = 0 - liczba dodatnia bit znaku = 1 - liczba ujemna Wartość liczby obliczamy wg następującego wzoru: WZ-M = (1-2 x bit znaku) x WM WZ-M = (-1)bit znaku x WM

Liczba w kodzie ZM (0 101)(ZM) = (1-2 x 0) x (1 x 22 + 0 x 21 + 1 x 20) (0 101)(ZM) = 1 x (1 x 4 + 1 x 1) (0 101)(ZM) = 1 x (4 + 1) (0 101)(ZM) = 1 x 5 (0 101)(ZM) = 5 (1101)(ZM) = (1-2 x 1) x (1 x 22 + 0 x 21 + 1 x 20) (1101)(ZM) = -1 x (1 x 4 + 1 x 1) (1101)(ZM) = -1 x (4 + 1) (1101)(ZM) = -1 x 5 (1101)(ZM) = -5

Liczba w kodzie ZM 7 6... 127 + 127 znak 0 moduł 1 + 100...0 000...0 0 +0

Kod Uzupełnień do 2 WU2 = cn-1 x (- pn-1) + cn-2 x pn-2 +... + c1 x p1 + c0 x p0 0101(U2) = 0101(U2) = 0101(U2) = 0101(U2) = 0 x (- 23) + 1 x 22 + 0 x 21 + 1 x 20 0 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 0+4+1 5 1101(U2) = 1101(U2) = 1101(U2) = 1101(U2) = 1101(U2) = 1 x (- 23) + 1 x 22 + 0 x 21 + 1 x 20 1 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 (- 8) + 4 + 1-8+5-3

Kod U2 Oblicz wartość przeciwną do liczby 0011(U2) = 3: NOT 0011 1100 + 0001 Sprawdzenie 1101(U2) = 1 x (-23) + 1 x 22 + 0 x 21 + 1 x 20 1101(U2) = 1 x (-8) + 1 x 4 + 0 x 2 + 1 x 1 1101(U2) = -8 + 4 + 1 1101(U2) = -3 1101

Ułamki zapis stałoprzecinkowy Powstaje przez przesunięcie wag w zapisie całkowitoliczbowym czyli przez pomnożenie wartości zapisu całkowitoliczbowego przez 2-f (f - liczba bitów w części ułamkowej). Używany zwykle w U2, niekiedy w NKB. Najczęściej spotykane formaty:» jeden lub dwa bity części całkowitej, pozostałe bity słowa należą do części ułamkowej» po połowie słowa na część całkowitą i ułamkową Operacje arytmetyczne wykonywane podobnie jak w zapisie całkowitoliczbowym» skalowanie przy mnożeniu i dzieleniu» nie wymaga specjalnych instrukcji procesora ani zasobów sprzętowych

Dwójkowe liczby stałoprzecinkowe 1101,1011(2) = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 + 1 x 2-4 1101,1011(2) = 1 x 8 + 1 x 4 + 0 x 1 + 1 x 1 + 1 x + 1 x 1/8 + 1 x 1/16 1101,1011(2) = 8 + 4 + 1 + 1/2 + 1/8 + 1/16 1101,1011(2) = 13 + 10/16 1101,1011(2) = 13,625 ½ + 0 x 1 /4

Operacje arytmetyczne - dodawanie Tabliczka dodawania binarnego 0+0=0 0+1=1 1+0=1 1001 9 0011,011 3,375 + 0011 +3 + 0111,110 + 7,750 1100 12 1011,001 11,125 1 + 1 = 0 i 1 dalej 1010 10 + 0110 +6 Przekroczenie górnej granicy liczby nadmiar (ang. overflow). 10000 16

Odejmowanie Tabliczka odejmowania binarnego 0-0=0 1-0=1 1011 11 1111 15-0101 -5-0111 -7 0110 6 1000 1-1=0 0-1 = 1 i pożyczka 0011 3-0100 -4 Przekroczenie dolnej granicy liczby - niedomiar (ang. underflow)....11111-1 1 8

Mnożenie Tabliczka mnożenia binarnego 0x0=0 1x0=0 0x1=0 1x1=1 0011 x 0101 3 x 1011 5 x 0011 0000 x 13 1011 1011... + + 0011 001111 1101 11 15 1011 10001111 33 + 11 143 nadmiar (ang. overflow)

Mnożenie 10,1 x 11,01 2,5 x 101 125 101 + 101 1000001 1000,001 3,25 50 + 75 8125 8,125

Dzielenie polega na cyklicznym odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej Podzielimy 1110(2) przez 11(2) (14 : 3). 1 1110 - dzielna 11 - przesunięty dzielnik 0010 - różnica dzielnej i przesuniętego dzielnika

Dzielenie - 100 1110 11 0010-11 0010 11 0010 - wynik dzielenia - dzielna - dzielnik - dzielna po odejmowaniu przesuniętego dzielnika - dzielnika nie można odjąć - dzielna - dzielnika nie można odjąć, - reszta z dzielenia koniec

Kod U2 - działania 5 + (-3) 2-(-3) 0101 0010 + 1101-1101 1 0010 1 0101 Wynik 2 Wynik 5 (-2) x 3 6 : (-3) 11111110 x 00000011 11111110 +11111110 1011111010 Wynik = -6 NOT 0010 10 0110-011 0000 0011 : 0011 1101 + 0001 1110 6 = 0110(U2) -3= 1101(U2) - zmieniamy na 3 = 0011(U2)

Zapis zmiennoprzecinkowy XFP = S x M x BE - mantysa zapisana w systemie o podstawie p B - podstawa danego systemu pozycyjnego E - wykładnik (cecha) zapisany w systemie o podstawie p. M 9,45 x 1015 = 94,5 x 1014 = 0,945 x 1016 Postać znormalizowana - postać, w której część całkowita części znaczącej wyraża się pojedynczą cyfrą różną od zera.

Standard IEEE 754 Aby uprościć arytmetykę, przyjęto ograniczenia zakresu mantysy i eksponenty oraz wprowadzono inne założenia, ktore reguluje norma IEEE 754 (dla liczb zapisanych w kodzie dwojkowym). Liczbę zapisuje się jako ciąg zer i jedynek przyjmując umowny podział na pola : S znak, jest zawsze jedno bitowy i ma wartość 0 jeśli liczba jest dodatnia lub 1 jeśli jest ujemna E wykładnik (inaczej: eksponent, cecha), ma długość zależną od długości całej liczby i kodowane jest w kodzie 2k-1-1 M moduł (inaczej mantysa) ułamka. Ma wartość z przedziału [1,2). Zapisuje się go bez poprzedzającej go jedynki z kropką (tzw. bit ukryty). Innymi słowy, zapisujemy jedynie część ułamkową modułu przyjmując, że zawsze (pomijając wyjątki) część całkowita wynosi 1.

Standard IEEE 754 Bity specjalne występują jedynie w wewnętrznej reprezentacji liczy w jednostce zmiennoprzecinkowej i wykorzystywane są do zniwelowania efektu utraty dokładności przy wykonywaniu działań, przez zaokrąglenie. Zarówno liczba wejściowa jak i wyjściowa takiego układu nie posiada tych bitów. Wartość reprezentowaną przez liczbę określa się wg wzoru: x = S 1 M 2E

Przykłady 0 0100 0100 111 1100 1010 0010 0111 1100 = 1,111110010100 01001111100 2 59 = 1 1,8168060 2 59 DŁUGOŚĆ: 32 bity s (1 bit) = 0 (liczba dodatnia) E (8 bit) = 0100 0100 = 68-127= -59 M = 1,111 1100 1010 0010 0111 11002 = 1,816806010 1 0100 0100 111 1100 1010 0010 0111 1100 = 1,11111001010 001001111100 2 59 = 1 1,8168060 2 59 DŁUGOŚĆ: 32 bity s (1 bit) = 1 (liczba ujemna) E (8 bit) = 0100 0100 = 68-127= -59 M = 1,111 1100 1010 0010 0111 11002 = 1,816806010 0 0111 1111 000 0000 0000 0000 0000 0000 = 1 1,0 DŁUGOŚĆ: 32 bity s (1 bit) = 0 (liczba dodatnia) E (8 bit) = 0111 1111 = 127-127 = 0 M = 1,000 0000 0000 0000 0000 00002 = 1,010 2= 1 0

Liczby zmiennoprzecinkowe działania Dodawanie i odejmowanie oraz, przy czym. Mnożenie i dzielenie i :

Przykład dodawanie liczb zmiennoprzecinkowych

Jednostki informacji bit b - najmniejsza jednostka informacji, odpowiada informacji TAKNIE, 1-0, PRAWDA-FAŁSZ bajt (byte) - B" - najmniejsza jednostka informacji adresowana przez procesor - obecnie 8 bitów słowo (word) - jednostka informacji, na której operuje komputer Słowo procesora - jednostka informacji o długości naturalnej dla danego procesora (długość odpowiada długości rejestrów - obecnie 32 lub 64 bity). Słowo pamięci - jednostka informacji możliwa do przetransmitowania w jednym cyklu transmisji do lub z pamięci (obecnie zwykle 64 bity, niekiedy 128). Powyższe pojęcia są bardzo często mylone.

Jednostki pojemności Wielokrotności bajtów Przedrostki dziesiętne (SI) Nazwa Symbol Mnożnik Przedrostki binarne (IEC 60027-2) Nazwa Symbol Mnożnik bajt B 100 bajt B 20 kilobajt KB 103 kibibajt KiB 210 megabajt MB 106 mebibajt MiB 220 gigabajt GB 109 gibibajt GiB 230 terabajt TB 1012 tebibajt TiB 240 petabajt PB 1015 pebibajt PiB 250 eksabajt EB 1018 eksbibajt EiB 260 zettabajt ZB 1021 zebibajt ZiB 270 jottabajt YB 1024 jobibajt YiB 280

Reprezentacja danych Znaki pisarskie są reprezentowane przez liczby, określające pozycję (wskaźnik)danego symbolu w tablicy kodowej.

Tablice kodowe ASCII (ang. American Standard Code for Information Interchange)- 7bitowy kod przyporządkowujący liczby z zakresu 0-127: literom (alfabetu angielskiego), cyfrom, znakom przestankowym i innym symbolom oraz poleceniom sterującym Rozszerzony kod ASCII - posiada 256 pozycji (pierwsze 128 tak jak ASCII, następne kody narodowe i inne symbole). Problemem są różne kody dla różnych organizacji i krajów Kody rodziny EBCDIC (ang. Extended Binary Coded Decimal Interchange Code) - EBCDIC to rozszerzony zapisywany dziesiętnie kod wymiany informacji, używany w systemach firmy IBM. UNICODE ISO 8859-x

ASCII Opracowany dla urządzeń dalekopisowych, później przyjęty dla komputerów 128 pozycji, w tym 95 znaków widocznych i 33 niewidoczne (znaki niewidoczne: spacja, odstępy i inne kody formatujące) Posiada kody sterujące transmisją i urządzeniami (pozycje 0..31) Spacja - kod 32 Cyfry 0..9 - kody od 48 do 57 (0x30...0x39) Litery w kolejności alfabetycznej (wielkie: 65..90 (0x41. 0x5a), małe: 97.122 (0x61.0x7a)) Odstęp pomiędzy małą i wielką literą wynosi 32 (0x20) 127 - kod specjalny (kasowanie znaku)

Rozszerzone kody ASCII 256 pozycji kodowych - reprezentacja 8-bitowa pierwsze 128 pozycji identycznych z ASCII kolejne 128 pozycji reprezentuje znaki wybranej grupy alfabetów narodowych lub inne (np. znaki alfabetów słowiańskich, znaki alfabetów skandynawskich, alfabet grecki, cyrylica itp.) Wiele tablic kodowych pochodzących z wielu źródeł, między innymi:» IS08859 - kilkanaście tablic (znaki polskie - IS08859-2)» Microsoft - kilkadziesiąt tablic, tzw.: strony kodowe - CP Własne o lokalnym zasięgu, np. Mazovia, Polgaz

UNICODE UNICODE - uniwersalny kod znakowy, umożliwiający reprezentację wszystkich znaków pisarskich zapisu fonetycznego (głoskowego) używanych na całym świecie. Liczba pozycji kodowych jest praktycznie nieograniczona, (pierwotnie 216 obecnie 2 32). Wersja kodu 3.2 obejmuje 95.156 znaków (alfabet chiński, japoński, koreański, rosyjski, hebrajski, perski, tajski oraz szereg innych języków + symbole matematyczne i graficzne).