Den Digitala Logiska Nivån och Datarepresentation

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

Talföljder formler och summor
Andragradsfunktioner & Andragradsekvationer
Dator.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
hej och välkomna EKVATIONER Ta reda på det okända talet.
DATORKUNSKAP PC:ns uppbyggnad
En avancerad miniräknare
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
En kort presentation om persondatorn och datorns olika delar.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
De fundamentala datatyperna
Persondatorer Datorns internminne (Kapitel 6)
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
ZIP-formatet Av Viktor Ekholm.
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Från binära till hexadecimala
EDA Digital och Datorteknik
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Välkommen till Del 1.
Tabeller.
Styrteknik: Programmering med MELSEC IL PLC2A:1
Räkna ut flyttal i datorn för dummies
Bios = Basic Input/Output System
Grundläggande programmering
Styrteknik: Grundläggande logiska funktioner D2:1
Databashantering MS Access 2003 Lektion 2
FK2002,FK2004 Föreläsning 2.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
Binomialsannolikheter ritas i ett stolpdiagram
INTRODUKTION TILL PROGRAMMERING
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 3
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje.
Digitalitet.
DIGITAL DESIGN INLEDNING Allmänt och kursens hemsidor Analogt och digitalt Booleska variabler Binära tal Positiv och negativ logik (Aktiv hög och låg logik)
Styrteknik: Boolesk algebra D1:1
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
1 Föreläsning2 Operativsystem. 2 Talsystem Decimal (bas 10): 0,1,2,…,8,9 Binär talsystem (bas 2): endast 1 och 0 Hexadecimal talsystem (bas 16): 0,1,…9,A,…,E,F.
Digitalteknik 7.5 hp distans: Talsystem och koder 1.3.1
Föreläsning2 Operativsystem.
Kronljusströmställaren 0, 1, 2, 3
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 1 Introduktion till kursen. Algoritmer
Grundläggande datavetenskap, 4p
Digitala tal och Boolesk algebra
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Den Digitala Logiska Nivån och Datarepresentation Inledning Den digitala logiska nivån Datarepresentation Sammanfattning Övrigt

Inledning STÄLL FRÅGOR! Mobiltelefon AV Vem är föreläsaren? Varför hålls denna föreläsning?

Vem är föreläsaren? Johan Kummeneje Doktorand Forskar sociala agenter och rationellt beslutsfattande.

Varför hålls denna föreläsning? Mina mål med den här föreläsningen är att: Ni skall känna till de grundläggande begreppen (instruktion, etc) Ni skall veta vad en (digital logisk) grind är, och förstå kopplingen till boolesk algebra Ni skall ha ett hum om alternativa approacher Ni skall känna till hur man representerar olika former av information

Den Digitala Logiska Nivån och Datarepresentation Inledning Datarepresentation Den digitala logiska nivån Sammanfattning Övrigt

Datarepresentation Inledning Primitiva datatyper Maskininstruktioner MIME Ljudformat Bildformat Filmformat Komprimeringsformat Sammanfattning

Inledning Hittills binärt, vilket inte räcker till för att representera text, bilder etc Därför använder vi mer komplexa datatyper och lagringsformat Data är ofta redundant, därför kan man ofta komprimera Använder det binära talsystemet vid representation av siffror och tecken.

Primitiva Datatyper Heltal Flyttal Boolean Tecken ASCII (American Standare Code for Information Interchange) EBCDIC (Extended Binary Coded Decimal Interchange Code) UNICODE

Primitiva Datatyper - Heltal 1 Heltal kan represeneras av olika storlek direkt av hårdvaran, t ex på PC-datorer 32-bitars tal (232) Finns i t ex Java byte (8 bitar), short (16 bitar), int (32 bitar) och long (64 bitar)

Primitiva Datatyper - Heltal 2 Heltal kan representeras unsigned eller signed EX: (2 bitar för att göra det enkelt) Binärsekvens Signed Unsigned 00 0 0 01 +1 1 10 -2 2 11 -1 3

Primitiva Datatyper - Heltal 3 För att representera negativa tal använder man vanligen Tvåkomplementmetoden, EX: Binärt Decimalt Binärt Decimalt 00000000 0 10000001 -127 00000001 1 10000010 -126 00000010 2 ….. …… 11111101 -3 01111110 126 11111110 -2 01111111 127 11111111 -1 10000000 -128

Primitiva Datatyper - Flyttal Flyttal brukar delas upp i tre delar: Tecken (+/-) Exponent Mantissa EX: Talet -1.5 kan representeras som : 1|001|0101 Mantissa Tecken Exponent

Primitiva Datatyper - Boolean Booleanska värden antar som bekant bara två tillstånd SANT eller FALSKT Därför kan de direkt representeras i en bit i minnet Smarta implementationer lägger samman flera booleanska värden i samma byte/ord

Primitiva Datatyper - Tecken Tecken brukar i allmänhet representeras av heltal (7, 8 eller 16 bitar) Representationen av tecken är standardiserad på flera sätt: ASCII (American Standard Code for Information Interchange), Den absolut vanligaste, enligt standard enbart 7 bitar, men ofta 8 bitar för att representera specialtecken. EBCDIC (Extended Binary Coded Decimal Interchange Code) 8-bitar, inte så vanlig UNICODE (försöker representera alla världens alfabet) 16 bitar

Maskininstruktioner Kod i form av maskininstruktioner representeras i minnet (Von Neumann). Varje instruktion kan variera i storlek, och i antalet argument den tar. EX: NOP (no operation) är 10010000 på en 8086/8088-processor, och tar inga argument EX2: ADD (addition) har flera argument 000000dw mod reg /m

MIME MIME - Multipurpose Internet Mail Extensions ”MIME extends the format of Internet mail to allow non-US-ASCII textual messages, non-textual messages, multipart message bodies, and non-US-ASCII information in message headers.”

Ljudformat Kan ha förstörande eller icke-förstörande komprimering T ex MP3, MIDI, WAV, AU Innebär ett antal diskreta stickprov, med viss upplösning - SAMPLING Innebär en digital approximering av ljudets analoga form

Data (kan vara komprimerad) Bildformat Kan ha förstörande eller icke-förstörande komprimering T ex GIF, JPEG, TIF, BMP Brukar vanligen bestå av : Header Data (kan vara komprimerad)

Filmformat Kan ha förstörande eller icke-förstörande komprimering T ex MPEG, AVI, QuickTime Beskriver oftast bara skillnaderna mellan två på varandra följande bilder.

MPEG Exempel

Komprimeringsformat Huffman-kodning LZW-kodning (Lempel, Ziv, Welch) Run Length Encoding (RLE)

Komprimering - Huffman Huffman kodning bygger på att inte alla tecken eller sekvenser förekommer lika ofta, därför behöver man inte representera alla tecken med t ex 8 bitar, utan de vanligaste kan representeras med färre bitar, och de mest ovanliga kan behöva fler. Vinsterna kan bli stora.

Huffman Exempel Okomprimerat : MISSING IN MISSISIPPI = 20 bytes (exkl. mellanslag) Frekvens tabell och tilldelning : M = 2 =>001 I = 7 => 01 S = 6 => 10 N = 2 => 110 G = 1 => 1110 P = 2 => 0001 Komprimerat : 001 01 10 10 01 110 1110 01 110 001 01 10 10 01 10 10 01 0001 0001 01 = 6,25 bytes (exkl mellanslag)

Komprimering - LZW Lempel-Ziv-Welch-algoritmen bygger på att samma sekvenser återkommer ofta i t ex rastrerade bilder eller i text (ordet the i engelskan t ex). Bygger upp ett lexicon med de vanligast förekommande sekvenserna.

LZW Exempel Okomprimerat : MISSING IN MISSISIPPI = 20 bytes (exkl. mellanslag) 0-255 vanlig ascii 256 : ISS 257 : IN N.B. Nu 12 eller 16 bitars representation (vi väljer 12 bitar=4096 komb). Komprimerat : M 256 257 G 257 M 256 256 I P P I = 12 poster a 12 bit => 18 bytes (exkl mellanslag)

Komprimering - RLE Run Length encoding bygger på att i många datafiler (t ex bilder) är många närliggande pixlar av samma färg. Ex: Mönstret 000000000011110000000000 är en bild i svartvitt, det skulle istället kunna skrivas som 10x 0, 4x1, 10x0, vilket i datarepresentation blir 0A,00,04,01,0A,00, vilket är kortare än den ovanstående sekvensen.

Komprimerings Exempel Jämförelse Huffman : + några tecken förekommer ofta, - Lika många av varje tecken LZW + återkommande kombinationer, t ex språk - om det är få upprepningar RLE + långa följder av samma tecken - Förändring av nästkommande tecken ofta

Sammanfattning Det finns ett antal sätt att representera information på, t ex format för bilder eller heltal. Mycket av data/information är redundant och kan således komprimeras med olika metoder beroende på typen av data

Den Digitala Logiska Nivån och Datarepresentation Inledning Datarepresentation Den digitala logiska nivån Sammanfattning Övrigt

Den digitala logiska nivån Inledning Grundläggande begrepp Kopplingen mellan grindar och boolesk algebra Grundläggande digitala logiska grindar Alternativa utgångspunkter Sammanfattning

Inledning Högnivåspråk, (t ex Pascal) Assemblyspråk Tillämpningsprogram Högnivåspråk, (t ex Pascal) Assemblyspråk OperativSystem Maskin Instruktioner Mikro Instruktioner Digital Logik Elektroniska komponenter

Grundläggande begrepp Processor Datarepresentation Input/Output

Grundläggande begrepp - Processorn 1 Grind - implementeringen av grundläggande logiska operationer Instruktion - t. ex. hämta informationen på minnesadress 1000 Exekvering - utförandet av instruktioner Adress - minnesadress, dvs en position i minnet Klocka - styr hur ofta CPU:n skall behandla nya instruktioner (”hur snabb datorn är”)

Grundläggande begrepp - Processorn 2 CPU - Central Processing Unit, den s k hjärnan, består av en ALU och en CU MPU - Micro Processor Unit, samma sak som en CPU ALU - Arithmetic Logic Unit, beräkningsenheten i hjärnan CU - Controll Unit, ser till att instruktionerna utförs i rätt ordning

Grundläggande begrepp - Processorn 3 Register - ett register lagrar ett ord (se nedan) som processorn kan arbeta på. Några typer av register är: status/flagg adress PC - Program Counter , eller programräknaren, håller reda på var i programmet exekveringen är. Ackumulator- är en speciell typ av register, som vanligen är anslutna till ALU:ns utmatning.

Grundläggande begrepp Processorn 4 Stack - på stacken läggs alla temporära variabler, och används ofta till att hantera avbrott och subrutiner (lägga upp PC:n på). Stackpekare - pekar ut toppen på stacken. IRQ - Interrupt ReQuest, eller avbrott i exekveringen, innebär att genom att låta vissa händelser trigga, kan vi ta hand om dessa händelser på en gång, och sedan återgå till det vi höll på med.

Grundläggande begrepp - Representation Bit - minsta representerbara enheten, en s.k. IT-atom, kan anta värdena 0 och 1 Nibble - en grupp om 4 bit(ar) Byte - en grupp om 8 bit(ar) Ord (word) - en grupp om 8-64 bit(ar), datorberoende

Grundläggande begrepp - Input/Output (I/O) 1 ROM - Read Only Memory, dvs det går bara att läsa från det RAM - Random Access Memory, går att läsa och skriva till hur som helst PIO - Parallell Input/Output, är en krets (eller flera kretsar) som hanterar kommunikationen med flera perifera enheter, t ex hårddisk, tangentbord, skärm

Grundläggande begrepp - Input/Output (I/O) 2 Bussar - De kanaler som datorn kan använda för att komma åt minne och andra perifera enheter, som t ex hårddisk eller tangentbord. Några typer av bussar är: Data Adress Kontroll

Grundläggande digitala logiska grindar och boolesk algebra De primitiva grindarna är : AND (och) 2 in, 1 ut & NOT (icke) 1 in, 1 ut 1 OR (eller) 2 in, 1 ut >1 Sammansatta grindar är : NAND (icke-och) 2 in, 1 ut & NOR (icke-eller) 2 in, 1 ut >1 XOR (exklusive-eller) 2 in, 1 ut =1

Grundläggande digitala logiska grindar och boolesk algebra Varje boolesk logisk operator (AND, OR, NOT) motsvaras av en grind. Grindar går att kombinera ihop, till mer avancerade operationer, t ex adderingsoperationer jämförelseoperationer etc.

Grind Exempel 1 - XOR använder sig av AND och NOT och OR (a AND NOT b) OR (NOT a AND b)

Grind Exempel 2 - Nibble-jämförare Testar om två nibbles (4 bit) är identiska Skall ske genom att använda grindarna: AND, NOT, OR, NAND, NOR och XOR Man behöver inte använda samtliga Tid för denna övning är 3 minuter

Grind Exempel 2 - Lösning a0 =1 1 b0 a1 =1 1 & b1 & a2 =1 1 & b2 a3 =1 1 b3

Grind Exempel 3 - Grindar som kommer ihåg Med hjälp av grindar kan man komma ihåg sekvenser av spänningsnivåer, eller snarare komma ihåg en bit.

Alternativa utgångspunkter Kvant-datorer Trinära datorer Det finns ytterligare alternativ som inte tas upp på denna föreläsning pga att de i grunden bygger på de ovanståendes logik: DNA-datorer Nano-datorer Photonic -datorer

Kvant-datorer Arbetar med qubit (quantum bit), som befinner sig i en linjär superposition mellan 0 och 1. Tack vare superpositionen, görs fenomenet quantum parallellism möjligt, som tillåter expontentiellt många beräkningar simultant. Bygger på kvantmekanik.

Trinära datorer Arbetar med tre lägen : 0, 1, 2 eller om man vill Falskt, Kanske och Sant Arbetar med s k trit, som kombineras ihop till tryte (9 trit) och tribble (3 trit) Logiken väldigt rörig: se http://www.california.com/~mmagee/computer.html

Sammanfattning Grindar motsvarar logiska operationer Man kan sätta samman grindar och få sammansatta operationer som t ex en Nibble-jämförare eller en minneskrets Det finns alternativa utgångspunkter, t ex kvantdatorer och trinära datorer.

Den Digitala Logiska Nivån och Datarepresentation Inledning Datarepresentation Den digitala logiska nivån Sammanfattning Övrigt

Sammanfattning Grindar motsvarar logiska operationer Man kan sätta samman grindar och få sammansatta operationer som t ex en Nibble-jämförare eller en minneskrets Det finns alternativa utgångspunkter, t ex kvantdatorer och trinära datorer. Det finns ett antal sätt att representera information på, t ex format för bilder eller heltal. Mycket av data/information är reduntant och kan således komprimeras

Den Digitala Logiska Nivån och Datarepresentation Inledning Datarepresentation Den digitala logiska nivån Sammanfattning Övrigt

Övrigt Relevant Material Frågor? Skicka dem gärna till johank@dsv.su.se. Länkar finns på http://www.dsv.su.se/~johank/courses/dsv1d