Den digitala logiska nivån

Den Digitala Logiska Nivån och
Datarepresentation
• Inledning
•
•
•
•
Den digitala logiska nivån
Datarepresentation
Sammanfattning
Övrigt
Inledning
• Mobiltelefon
AV
• STÄLL FRÅGOR!
• 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 32bitars 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
00
01
10
11
-1
Signed
0
+1
-2
3
Unsigned
0
1
2
Primitiva Datatyper - Heltal 3
• För att representera negativa tal använder
man vanligen Tvåkomplementmetoden, EX:
Binärt
00000000
00000001
00000010
……
01111110
01111111
10000000
Decimalt
0
1
2
126
127
-128
Binärt
10000001
10000010
…..
11111101
11111110
11111111
Decimalt
-127
-126
-3
-2
-1
Primitiva Datatyper - Flyttal
• Flyttal brukar delas upp i tre delar:
– Tecken (+/-)
– Exponent
– Mantissa
• EX:
• Talet -1.5 kan representeras som :
• 1|001|0101
Tecken
Exponent
Mantissa
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) 8bitar, 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
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
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)
– NOT (icke)
– OR (eller)
2 in, 1 ut
1 in, 1 ut
2 in, 1 ut
&
1
>1
2 in, 1 ut
2 in, 1 ut
2 in, 1 ut
&
>1
=1
• Sammansatta grindar är :
– NAND (icke-och)
– NOR (icke-eller)
– XOR (exklusive-eller)
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)
&
1
b
>1
a
&
1
c
Grind Exempel 2 - Nibblejä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
b0
a1
b1
=1 1
=1 1
&
&
a2
b2
=1 1
a3
b3
=1 1
&
Nibble a
0000
0000
0000
…
1001
1001
…
1111
Nibble b
0000
0001
0010
…
1001
1010
…
1111
Resultat
1
0
0
…
1
0
…
1
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.
&
Load
1
>1
&
In
Out
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