1 / 25

Dane

Dane. Architektura Systemów Komputerowych. mgr inż. Michał Misiak. Rodzaje danych. Wartości logiczne Znaki tekstowe Liczby Całkowite: nieujemne i ze znakiem Niecałkowiete: stało- i zmiennopozycyjne Dźwięki Obrazy. Reprezentacja danych.

nathan
Download Presentation

Dane

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dane Architektura Systemów Komputerowych mgr inż. Michał Misiak

  2. Rodzaje danych • Wartości logiczne • Znaki tekstowe • Liczby • Całkowite: nieujemne i ze znakiem • Niecałkowiete: stało- i zmiennopozycyjne • Dźwięki • Obrazy

  3. Reprezentacja danych • Komputer operuje na liczbach binarnych, które złożone są z cyfr 0,1 • Liczby binarne określone są jako słowo binarne i są przeważnie postaci 8x2n (np. 8, 16, 32, 64) • Dane, które nie są liczbami (obrazy oraz dźwięki) muszą być zapisane z wykorzystaniem słów binarnych

  4. Znaki alfanumeryczne • Znaki tekstowe kodowane są jako liczby, zgodnie z tzw. tablicą kodową • Używane kody: • ASCII (American Standard Code for Information Interchange) • 128 pozycji w tym małe i wielkie litery alfabetu łacińskiego • Rozszerzenia ASCII do 256: • pierwsze 128 jest to ASCII kolejne zawierają symbole narodowe lub inne • Pojawia się problem niejednoznaczności kodów dla różnych języków • Kody EBCDIC (Extended Binary Coded Decimal Interchange Code) – wykorzystywany na komputerach typu mainframe IBM, • UNICODE – początkowo 216, aktualnie 232. Reprezentacja praktycznie wszystkich znaków używanych na świecie.

  5. ASCII • Zaproponowany przez ANSI na bazie kodu dla urządzeń dalekopisowych • Początkowo 7 bitowy, 8 bit wykorzystywany był jako suma kontrolna • 128 pozycji w tym 33 znaki białe oraz 95 znaków widocznych • Znaki białe: spacja, kody formatujące, kody sterujące transmisją i urządzeniami • Znaki widoczne: cyfry oraz małe i duże litery, znaki interpunkcyjne oraz podstawowe znaki mateamtyczne

  6. ASCII (2) • Kody sterujące: • Pozycje od 0 – 31 • Np. CR: 13, (tzw. karetka) – powrót na początek wiersza, LF-10 – przejście do następnego wiersza, etc … • Spacja: 32 • Cyfry 0-9: od 48 do 57 • Znaki pisarskie: • Małe litery: 97 – 122 • Duże litery: 65 – 90 • Odstęp pomiędzy dużymi i małymi wynosi: 32 • Kod specjalny 127 – kasowanie znaku

  7. Kod rozszerzony ASCII • Reprezentacja tablicy kodów 8 bitowa – 256 znaków • Pierwsze 128 znaków identyczne z ASCII • Pozostałe znaki dostosowane do alfabetów regionalnych tj. słowiańskie, cyrylica, etc… • Problemem jest różnorodność tablic kodowych: • ISO8859 – alfabety słowiańskie, kilkanaście tablic (Polskie znaki: 8859-2) • Microsoft – oznaczenia 4 znakowe np. 1250

  8. Reprezentacja danych związanych z obrazem i dźwiękiem • Obraz i dźwięk muszą być również kodowane jako liczby • Dźwięk – proces przekształcania do postaci cyfrowej: kwantowanie (wartość amplitudy napięcia), próbkowanie (częstotliwość pobierania próbki) i kodowanie (przypisanie kodu) • Obraz – macierz pikseli. Każdy piksel ma określony kolor oraz współrzędne. Kolor reprezentowany w postaci 3 liczb (czerwony, niebieski oraz zielony RGB). Dodatkowa informacja o jasności.

  9. Jednostki informacji • Bit (Binary digIT), • skrót „b” z modyfikatorem wielkości np. Kb, Mb, Gb. • Problem z przeliczaniem (przedrostki w SI są dziesiętne) • Reprezentuje wartość logiczną Prawda/Fałsz • Bajt (byte) – 8 bitów. Jednostka adresacji pamięci. Bajt określany jest jako OCTET • Słowo (word) – wielkość informacji, na której pracuje komputer. Słowo 8 bitowe, 16 bitowe, etc… • Słowo procesora – porcja danych naturalna dla danego procesora, tzn. długość odpowiada długości posiadanych rejestrów: np. 16 bitów, 32 bity, 64 bit.

  10. Zapis danych • Wartości logiczne • Liczby całkowite nieujemne • Liczby całkowite ze znakiem • Zapis stałopozycyjny • Zapis zmiennopozycyjny • Formaty dla obrazu, dzwięku

  11. Zapis danych boolowskich • Do reprezentacji wartości logicznej wystarczy jeden bit. • W komputerach podstawową jednostką jest słowo. Dane bitowe reprezentowane są jako wzorzec bitów zapełniający całe słowo • Różne reprezentacje wartości logicznych zależnych od systemów operacyjnych oraz języków programowania: • Fałsz – raczej standardowo reprezentowany przez 0 • Prawda: np. w C reprezentowana przez 1, w C jako argument może być reprezentowana przez dowolną wartość różną od 0, a w VB przez jedynki „1”

  12. Liczby całkowite nieujemne • Naturalny kod binarny (NKB) – ciąg ponumerowanych bitów od lewej do prawej o długości równej słowu • Kod BCD – wykorzystywany do reprezentacji liczb dziesiętnych stałopozycyjnych. • Wersja spakowana: 2 cyfry w bajcie • Wersja niespakowana (ASCII) jedna cyfra w bajcie Źródło: http://pl.wikipedia.org/wiki/Grafika:Binary_clock_samui_moon.jpg

  13. Zapis liczb całkowitych ze znakiem • Kod U2 – kod uzupełnień do dwóch • Kod U1 – kod uzupełnień do jednego • Znak-Moduł • Reprezentacja spolaryzowana (biased)

  14. Własności kodów • Reprezentacja zera: dwie możliwość w kodach znak-moduł, U1 • Symetryczność zakresu liczbowego • Reprezentacja znaku liczby oraz zmiana znaku: • U1 – negacja bitowa • U2 – negacja i inkrementacja • znak-moduł – negacja bitu znaku • Dodawanie i odejmowanie w U2 wykonywane tak samo jak w NKB

  15. Reprezentacja stałopozycyjna • Wykorzystywany do reprezentacji liczb ułamkowych i mieszanych • Liczba reprezentowana jest przez dwie części: • pierwsza tak jak w U2/NKB reprezentuje część całkowitą • druga reprezentuje część ułamkową (2-1) • Spotykane formaty: • 1 lub 2 bity należą do części całkowitej pozostałe do ułamkowej • Po połowie słowa na część całk. i ułamkową • Operacje wykonywane podobnie jak na liczbach całkowitych. Za ostateczną reprezentację odpowiedzialny jest programista

  16. Zapis zmiennopozycyjny (1) • Umożliwia zapis liczb całkowitych i ułamkowych o dużym zakresie dynamiki wartości • Zapis zmiennopozycyjny dziesiętny. Wiele możliwości: np. 1,234x102, 123,4x100, 12,34x101 • Budowa zapisu: • Znak liczby • Część znacząca • Wykładnik • Postać znormalizowana: część całkowita wyraża się pojedynczą liczbą różną od 0.

  17. Binarny zapis zmiennopozycyjny • Znormalizowany zapis określony w IEEE754 • Liczba powinna zostać zapisana w postaci znormalizowanej, wówczas cześć całkowita w każdym przypadku (oprócz 0) jest równa 1. • Wykładnik jest zapisywany w kodzie z polaryzowanym. Dwie wartości pola wykładnika są zarezerwowane i mówią, że zapis nie reprezentuje postaci znormalizowanej • 00…00 – postać nieznormalizowana • 11…11 – nie liczba • Znak liczby – pojedynczy bit (0 – liczba nieujemna 1 – liczba niedodania) • Pole mantysy – zawiera cześć ułamkową

  18. Opis poszczególnych pól zapisu zmiennopozycyjnego z exp – pole wykładnika m – pole mantysy

  19. Arytmetyka na liczbach zmiennopozycyjnych • Wartości zapisane w postaci zmiennopozycyjnej oraz operacje arytmetyczne wykonywane na nich są przybliżone • Dokładność wyniku może być uzależniona od kolejności wykonywania działań • Dodawanie/odejmowanie liczb należy wykonywać w kolejności rosnącej • Jeśli wartość bezwzględna liczby a jest znaczenie mniejsza od b to w wyniku otrzymujemy liczbę b • Z powodu przybliżonych wyników obliczeń nie należy korzystać z relacji równości.

  20. Organizacja pamięci w komputerach • Podstawowa jednostka adresowalna ma rozmiar 1 bajtu • Dane większe niż 1 bajt są przechowywane w kolejnych komórkach pod kilkoma kolejnymi adresami • Fizyczna organizacja pamięci odbiega od logicznej. Komórki pamięci są dwukrotnie większe niż słowo, co umożliwia przesłanie podwójnej porcji danych przy tym samym czasie dostępu

  21. Adresowanie danych • Little Endian – najmniejszy bajt pod najmniej znaczącym adresem • Big Endian – najbardziej znaczący bit pod najmniejszym adresem

  22. Little & Big Endian A (MSB) B C D (LSB) Litlle Endian Big Endian Addr+0 D Addr+0 A Addr+1 C Addr+1 B Addr+2 B C Addr+2 Addr+3 A D Addr+3

  23. Litlle Endian • Adres bajtu odzwierciedla wagę bajtu w liczbie • Naturalna dla komputera, dziwna dla człowieka • Dostęp do mniej znaczących części liczby całkowitej zapisanej w długim formacie spowoduje, że adres zmiennej będzie ten sam. Wygodne w częstym rzutowaniu typów całkowitych • 32-bit zawartość 4A 00 00 00 może być czytana z tym samym adresem jako 8-bit (wartość = 4A), 16-bit (004A), lub 32-bit (0000004A) • Procesory, które używają formy little endian, to między innymi Intel x86, AMD64, DEC VAX

  24. Big Endian • Naturalny dla człowieka mniej wygodny przy obliczeniach • Dostęp do danej całkowitoliczbowej wymaga zmiany wartości adresu w zależności od długości danej. • Duża efektywność porównywania łańcuchów znakowych. Porównywanie może zostać przeprowadzone po długości słowa, a nie koniecznie bajt po bajcie. • Procesory, które używają formy big endian, to między innymi SPARC, Motorola 68000, PowerPC 970, IBM System/360, Siemens SIMATIC S7

  25. Dziękuje! Zapraszam na kolejne wykłady ;)

More Related