Informasjonskoding

I kapitlet om logiske porter og kapitlet om tallsystemer beskrives hvordan en datamaskin bruker totallsystemet (det binære tallsystemet) til å behandle informasjon, for eksempel kodes tallet 4210 som 1010102. Men også alt annet som lagres i en datamaskin, dokumenter, programmer, bilder, musikk, film, etc. kodes i totallsystemet, det vil si som sekvenser av 1 og 0. Ved hjelp av bare to ulike symboler er det altså mulig å representere all informasjon i hele verden!

Koding av tekst

Å kode tekst er rimelig liketil, en tilordner bare et tall til hvert enkelt tekstsymbol. Til å begynne med ble slik tilordning gjort ganske tilfeldig, slik at metoden varierte fra system til system og gjorde det vanskelig å flytte informasjon fra en datamaskin til en annen. For å bøte på problemet ble ASCII-systemet innført.

ASCII

ASCII står for ′American Standard Code for Information Interchange′, og var det første standardiserte systemet for oversetting mellom tekst og tall.

Et utvalg ASCII-koder er vist under. Som en ser, kodes f.eks. ′A′ som 6510 = 4116 = 10000012, ′a′ som 9710 = 6116 = 11000012, etc.

Tegn Desimal kode Heksadesimal kode Binær kode   Tegn Desimal kode Heksadesimal kode Binær kode
6 54 36 110110 Z 90 5A 1011010
7 55 37 110111 [ 91 5B 1011011
8 56 38 111000 \ 92 5C 1011100
9 57 39 111001 ] 93 5D 1011101
: 58 3A 111010 ^ 94 5E 1011110
; 59 3B 111011 _ 95 5F 1011111
< 60 3C 111100 ` 96 60 1100000
= 61 3D 111101 a 97 61 1100001
> 62 3E 111110 b 98 62 1100010
? 63 3F 111111 c 99 63 1100011
@ 64 40 1000000 d 100 64 1100100
A 65 41 1000001 e 101 65 1100101
B 66 42 1000010 f 102 66 1100110
C 67 43 1000011 g 103 67 1100111
D 68 44 1000100 h 104 68 1101000
E 69 45 1000101 i 105 69 1101001
Utdrag av ASCII-tabellen

Den første ASCII-tabellen inneholdt bare 95 tegn, og ingen hadde tenkt på at det ville bli behov for å kode bokstaver som ikke eksisterte i det engelske alfabetet, for eksempel ′Æ′, ′Ø′ og ′Å′. For å kunne representere nasjonale bokstaver, ble det laget en del klatteløsninger, der kodene varierte fra system til system. Det kunne f.eks. medføre at mens en på skjermen så bokstavene ′Æ′, ′Ø′ og ′Å′, ble de forvandlet til ′[′, ′\′ og ′]′ på utskrifter.

Det ble derfor laget en utvidet tabell med ytterligere 96 koder, extended ASCII (ISO 8859).

Unicode

De 191 kodene i extended ASCII blir allikevel for lite hvis en skal representere all verdens skriftsymboler. Det er derfor utviklet et nytt kodesystem, Unicode som inneholder over 50.000 symboler, tegn fra alfabetene i alle levende, og enkelte utdødde språk. Det er til og med foreslått å innarbeide Tolkiens alvespråk Tengwar, og Star Trek språket Klingon i Unicode. Unicode utvides ved behov, noe som f.eks. skjedde da Euro-symbolet ′€′ ble introdusert.

Koding av sammensatt informasjon

Koding av bilder, film, musikk, etc. er mer komplisert enn koding av tekst, men prinsippet er det samme, en følger et sett gitte regler for å oversette informasjon til tall.

Regelen for å oversette farger baserer seg på at alle farger kan bygges opp av de tre grunnfargene rød, grønn og blå. Ved å variere styrken på disse, kan en mengde fargenyanser representeres. Intensiteten på hver av grunnfargene angis ved hjelp av en styrkeskala som går fra 0 til 255 (FF16), noe som gir i alt 256 * 256 * 256 = 16777216 (100000016) kombinasjonsmuligheter, langt flere varianter enn øyet kan skjelne.

Fargestyrken angis med to heksadesimale sifre for hver farge (åtte binære), i rekkefølgen rød – grønn – blå. For eksempel betyr 473F8A16 = 0100011100111111100010102 en fargenyanse med en styrke på 4716 rødt, F816 grønt og 8A16 blått.

I bildet under kan du variere styrken på fargekomponentene, og se både hvordan den resulterende fargen blir, og hvilken heksadesimal kode som brukes til å representere den.

 

Rød

Grønn

Blå

Fargekode: 000000

Men et bilde består sjelden av en enkelt farge, slik som her. Da deler en bildet opp i enkeltelementer, piksler, og angir fargen piksel for piksel. Bildet over inneholder 125 * 125 = 15625 piksler.

Informasjonsmengden som trengs for å kode et bilde kan bli svært stor, og for å spare plass, kan en utføre en kompresjon. I bildet over for eksempel, trenger en ikke gjenta fargekoden 15625 ganger. Siden bildet bare har én farge, er det nok å angi fargekoden én gang, samt informere om hvor stort bildet er.

Når en skal lagre et bilde en har arbeidet med i et billedbehandlingsprogram, må en velge hva slags format en vil bruke. Eksempel på billedlagringsformater er JPEG, TIFF, GIF, PNG og BMP. Hver av disse har sin egen måte å kode billedinformasjonen på.

Dekoding

Når en skal hente ut informasjon fra datamaskinen og presentere den på skjerm eller skriver, må den dekodes. Det vil si at sekvensene av 1 og 0 må oversettes tilbake til det som var utgangspunktet, en tekst, et bilde, etc. For at dette skal være mulig, må en vite hvordan kodingen er gjort. Kjenner en ikke koden, er det umulig å reprodusere noe korrekt. Det er for eksempel ikke mulig å avgjøre om tallsekvensen 42524116 er en ASCII-kode som representerer ordet ′BRA′, om det er en fargenyanse med Rød = 4216, Grønn = 5216 og Blå = 4116, eller noe helt annet.

Opplysning om hvilken koding som er brukt, lagres i navnet som referer til et sett informasjon, filnavnet. Slutter et filnavn på ′txt′, har vi med bokstaver og tegn å gjøre. ′jpg′ er en type billedformat, ′mp3′ er et komprimert musikkformat, etc. Blir navnet feil, blir informasjonen mistolket. Et eksempel er vist under, der et bilde i jpg-format, ′mandrill.jpg′ har fått endret navn til ′mandrill.txt′. Datamaskinen tror da det dreier seg om ASCII-tekst, og åpner bildet i teksteditoren Notepad. Den binære informasjonen som egentlig beskriver et bilde, blir tolket som meningsløse sekvenser av bokstaver og tegn.

Mandrill
mandrill.jpg
Feiltolkning av bildefil
mandrill.txt

Med nye generasjoner programvare kommer nye formater, gamle forsvinner, og generasjonene går fort i dataverdenen. En risikerer derfor at informasjon som lagres i dag er uleselig om få år, fordi en ikke lenger har nøkkelen til å dekode den. Dette problemet er spesielt stort ved såkalte proprietære formater, der en bedrift har patent på et format, og innholdet ikke er offentlig kjent, slik det er i åpne standarder. For å kunne dekode informasjon lagret vha. en bedrifts programvare, er en helt avhengig av at bedriften fortsetter å eksistere, og fortsetter å levere programvare til bruk på nyere generasjoners maskiner.

Kilder

  • Gisle Hannemyr: Hva er Internett. Universitetsforlaget 2005

Tidlige datamaskiner

Babbages differanse- og analysemaskiner

For å kunne beskrive naturvitenskaplige fenomener, for eksempel forutsi når tidevannet var på sitt høyeste og laveste, var vitenskapsmenn avhengige av store tabellverk over vanlige matematiske funksjoner, som logaritmer, potenser, kvadratrøtter, etc. Slike tabeller ble beregnet for hånd av mennesker, kalt ′computers′. Til tross for at disse var utvalgt på grunn av sin store flid, nøyaktighet og regneevne, inneholdt tabellene deres mengder av feil. Derfor begynte Charles Babbage (1791-1871) å leke med tanken på at slike tabeller burde kunne beregnes mer nøyaktig av en maskin.

I 1822 startet han arbeidet med differansemaskinen, et mekanisk monstrum bestående av tannhjul, tapper og sveiver. Teknologien for å produsere tannhjulene var imidlertid ikke presis nok, og maskinen ble aldri ferdig. Han designet senere en ny utgave, men den ble heller ikke ferdig. I 1991 bygde imidlertid Science Museum i London denne maskinen, basert på Babbages originale tegninger. Maskinen virket perfekt, og produserte resultater med 31 siffer, langt mer enn dagens lommekalkulatorer gjør.

Basert på erfaringene med differansemaskinen ga Babbage seg i kast med en ny, mer generell maskin, analysemaskinen. Han hadde da klare ideer om maskinens generelle virkemåte. Maskinen skulle ha:

  • Egne formålstjenlige inngangsenheter.
  • Spesialisert aritmetisk enhet.
  • Sentral kontroll- og styreenhet.
  • Separate datalagere.
  • Egne utskriftsenheter.

En annen revolusjonerende idé var at Babbage så for seg at analysemaskinen skulle kunne programmeres. Dette mente han kunne gjøres ved hjelp av hullkort, etter modell av Jaquards vevstol.

Ada Lovelace (1815-1852) utviklet programmer til analysemaskinen, og sies derfor å være verdens første programmerer. I 1979 fikk hun programmeringsspråket Ada oppkalt etter seg.

På grunn av tekniske vanskeligheter og finansieringsproblemer, ble analysemaskinen heller aldri ferdig.

Charles Babbage
Charles Babbage
Differansemaskinen
Differansemaskinen i Science Museum, London

Holleriths hullkortmaskiner

Databehandlingen etter 1880-folketellingen i USA tok 7½ år, og kongressen utlyste derfor en konkurranse hvor de etterlyste bedre måter å tabulere resultatene på. Herman Hollerith (1860-1929) vant konkurransen overlegent med sin hullkortmaskin, basert på ideene fra Babbage og Jacquard. Maskinen talte opp data ved å føle etter hull i gitte posisjoner i pappbiter. Hollerith startet et firma for produksjon og salg av hullkortmaskiner. Dette firmaet ble senere til ′International Business Machines′, IBM. Hullkortmaskiner fikk stor praktisk anvendelse, og var enerådende fram til slutten av femtitallet.

Nordmannen Fredrik Rosing Bull (1882-1925) utviklet forbedrede utgave av hullkortmaskinene. Bulls oppfinnelser dannet grunnlaget for firmaet Bull.

Konrad Zuse og relé-maskinene

Tyskeren Konrad Zuse (1910-1995) var en sivilingeniør i konstruksjonsteknikk som på fritiden bygde datamaskiner hjemme i stua, sammen med sin gode venn Helmut Schreyer. Zuse introduserte det revolusjonerende konseptet å basere maskinen på det binære tallsystemet i stedet for det desimale. Den første maskinen, Z1, sto ferdig i 1937. Maskinen var rent mekanisk, men etterfølgeren, Z2, var delvis elektrisk, basert på telefonreleer.

Z3 som ble demonstrert i 1941, regnes som verdens første, fullt operative og programstyrte datamaskin. Z3 ble ødelagt under krigen, men en kopi er bygd, og befinner seg i Deutches Museum i München.

På grunn av det politiske klimaet var Zuses arbeid lite kjent blant samtidige forskere i England og USA.

Reproduksjon av Z3
Reproduksjon av Z3 i Deutches Museum, München

COLOSSUS

COLOSSUS var en hel-elektronisk digital maskin basert på radiorør, bygget under andre verdenskrig med det formål å knekke krypteringskodene i tyske meldinger som ble snappet opp. COLOSSUS ble kjørt første gang i desember 1944, og brøt krypteringskoden den var matet med i løpet av 10 minutter.

Colossus
Engelske kvinnelige militære kjører COLOSSUS

Atanasoff-Berry maskinen

Med det formål å løse ligninger, utviklet John Vincent Atanasoff (1903-1995) og hans hovedfagsstudent Clifford E. Berry (1918-1963) en maskin de kalte ABC, Atanasoff-Berry Computer. Maskinen som sto ferdig i 1942 var digital, og introduserte en ny form for datalagring ved hjelp av kondensatorer.

Mange av Atanasoffs konsepter ble videreført i ENIAC. Men Atanasoff fikk i 1971 etter mange rettssaker slått fast at han bygde den første elektroniske, digitale datamaskin.

Atanasoff-Berry maskinen
Skisse av Atanasoff-Berry maskinen

ENIAC

Basert på ideene til Atanasoff ble ENIAC, ′Electronic Numerical Integrator And Computer′, bygget. Maskinen sto ferdig i 1946, og var den første fullskala, generelle elektroniske digitale datamaskin. I motsetning var Atanasoff-Berry maskinen og COLOSSUS ikke generelle, og Z3 var ikke elektronisk men elektro-mekanisk, fordi den inneholdt releer.

ENIAC besto av 17.468 radiorør, 1500 releer og 87.200 andre elektroniske komponenter. Den inneholdt 5 millioner håndloddede koplingspunkter, veide 27 tonn, okkuperte 167 m2 gulvplass, og hadde et effektforbruk på 150 kW. Med 2004-teknologi ville en tilsvarende maskin fått plass på en 0,5 mm2 stor brikke.

Data ble lest inn ved hjelp av en IBM-hullkortleser, og skrevet ut ved hjelp av en IBM hullkort-puncher.

Målet med ENIAC var å raskt kunne beregne baner for ballistiske prosjektiler, men maskinen sto ikke ferdig før i 1946 da krigen var over.

ENIAC var ikke binær, men arbeidet i desimalsystemet.

ENIAC ble etterfulgt av maskinene EDVAC og UNIVAC, den første kommersielle datamaskin.

Eniac
ENIAC

Analoge datamaskiner

Det er verd å merke seg at digitale maskiner ikke alltid har vært enerådende. I naturvitenskap og teknikk finnes en lang rekke problemer som best løses ved hjelp av partielle differensialligninger, det vil si en kombinasjon av integraler. Slike problemer kan simuleres ved hjelp av analoge datamaskiner, der et problem løses ved hjelp av egenskapene til mekaniske eller elektroniske komponenter. De første analoge maskinene var rent mekaniske, bestående av skiver, kuler og hjul, men mekanikken ble etter hvert erstattet av elektronikk basert på såkalte operasjonsforsterkere.

Analoge datamaskiner ble blant annet benyttet til å beregne tidevannsbølger og prosjektilbaner.

Analoge datamaskiner er ikke lenger i særlig bruk.

Gonnellas integrator
Gonnellas hjul-på-skive integrator.

Kilder

  • Per A. Holst: Datateknologiens utvikling. Tapir Akademisk forlag, Trondheim 2001

PC-arkitektur

Von Neumann-arkitekturen

En datamaskin styres av programmer, det vil si sekvenser av instruksjoner som forteller hva den skal foreta seg. Det kan for eksempel være å addere to tall, flytte tall fra én plass til en annen, eller hoppe til en instruksjon på et annet sted.

De første datamaskinene inneholdt ikke programmer, men ble styrt av en mengde koplinger som måtte endres hver gang maskinen skulle utføre en ny oppgave, noe som kunne ta dagevis. Det var derfor en revolusjon da John von Neumann i 1946 foreslo at en datamaskin kunne styres av programmer som lagres i maskinen på samme måte som andre data. Dette ga opphav til den så kalte von Neumann-arkitekturen, som er det vanligste prinsippet i moderne datamaskiner, og enerådende i PC-er. Instruksjonene er lagret i internminnet, og behandles én for én av en prosessor.

Von neumann-arkitekturen
Von Neumann-arkitekturen. Programmene lagres på samme måte som data. 

Hovedkomponenter

Grovt sett kan en si at en PC består av komponentene prosessor (CPU), internminne (RAM), inn/ut-enheter (I/O), og en systembuss. Databehandlingen foregår i prosessoren. Den henter sine instruksjoner fra primærlageret, og data skyfles fram og tilbake mellom prosessoren, primærlageret og inn/ut-enhetene, alt via systembussen. Dette er illustrert i figuren under.

PC-arkitektur
Overordnet PC-arkitektur, med eksempler på vanlige I/O-enheter

Prosessoren

Prosessoren er datamaskinens hjerne. I en PC består prosessoren av en enkelt integrert krets og kalles en mikroprosessor. Verdens første mikroprosessor ble lansert av Intel i 1971, og Intel har siden da forsynt markedet med stadig nye generasjoner mikroprosessorer.

Fra 1971 til 2008 har antallet transistorer i mikroprosessoren økt fra ca. 2300 til 2 milliarder, det vil si at antallet er fordoblet om lag 19,5 ganger. I følge Moores lov skal en slik økning i kompleksitet ta ca. 19,5 * 2 = 39 år, noe som ikke er langt unna tidsrommet fra 1971 til 2008.

De store Intel prosessorfamiliene er Pentium, og den noe rimeligere Celereon. En annen viktig leverandør av mikroprosessorer er AMD.

Intel Pentium Intel Celeron Intel idiot
Diverse Intel-logoer
Prosessorens hovedkomponenter

Figuren under viser et forenklet, skjematisk diagram av en mikroprosessor.

Mikroprosessorens arkitektur
De viktigste komponentene i en mikroprosessor
ALU

ALU står for ′Arithmetic/Logic Unit′. Ved hjelp av logiske porter utfører ALU elementær aritmetikk, eller avgjør om en logisk betingelse er sann eller usann.

Registre

Registrene er små, lynraske minneceller, som en moderne prosessor har noen hundre av. Verdiene som ALU opererer på ligger i registre, dit legges resultatene som ALU produserer, og ALU bruker dem til mellomlagringer. Instruksjonsregistret inneholder den instruksjonen som ALU for øyeblikket arbeider med, og instruksjonspekeren er et register som forteller hvor i internminnet neste instruksjon skal hentes.

Bussgrensesnitt

Bussgrensesnittet håndterer prosessorens kommunikasjon med omverdenen.

Instruksjonshenter

Instruksjonshenteren sørger for å, via bussgrensesnittet, hente neste instruksjon som skal utføres, og overlate den til instruksjonsdekoderen.

Instruksjonsdekoder

Instruksjonsdekoderen dekoder instruksjonen som ALU skal utføre, og plasserer resultatet i registre.

Prosessorens arbeidssyklus

I prinsippet gjennomføres en prosessors arbeidssyklus slik:

  1. Instruksjonshenteren sjekker instruksjonspekeren (programtelleren) for å finne ut hvilken adresse i internminnet neste instruksjon skal hentes fra, og kontakter bussgrensesnittet med denne informasjonen.
     
  2. Instruksjonen kommer inn via bussgrensesnittet.
     
  3. Instruksjonspekeren settes til å peke på neste instruksjon.
     
  4. Instruksjonen dekodes av instruksjonsdekoderen og resultatet lagres i registre.
     
  5. ALU utfører instruksjonen, og resulterende verdier plasseres i registre. Dersom instruksjonen er en hopp-instruksjon, oppdateres registret som inneholder instruksjonspekeren. (En hopp-instruksjon er en instruksjon som forteller at programutførelsen skal fortsette en ny plass)

I praksis er det hele mer komplekst, moderne prosessorer inneholder blant annet komponenter som hele tiden prøver å hente instruksjoner og data før det faktisk blir behov for dem.

Prosessorens arbeidssyklus styres av ei klokke. Selv om det kan variere hvor mange klokketikk en prosessor trenger for å utføre en oppgave, gir klokkehastigheten allikevel en pekepinn på prosessorens arbeidskapasitet. Klokka i en moderne mikroprosessor arbeider med en frekvens på i overkant av 3 GHz, det vil si at den tikker mer enn 3 milliarder ganger pr. sekund.

Moderne prosessorer kan ha flere kjerner, noe som gjør det mulig å behandle flere instruksjoner i parallell.

Innpakning

Moderne prosessorer leveres i flate, keramiske pakninger med tilkoplingspunktene i form av en benmatrise på undersiden. Dagens prosessorer produserer svært mye varme som må ledes bort, og er derfor påmontert kjølevifte. Tidligere utgaver arbeidet med lavere klokkefrekvens, og gikk ikke så varme. En kan derfor i eldre PC-er finne prosessorer med kjøleribber, eller uten noe kjølesystem i det hele tatt.

Overside av prosessor Underside av prosessor Prosessor med påmontert kjølevifte
Mikroprosessor sett fra oversiden og undersiden, samt kjølevifte

Internminnet

Internminnet er en lagringsplass for data og programmer, som prosessoren hyppig refererer til når den arbeider. Internminne kalles også gjerne primærminne eller RAM. RAM er nærmere beskrevet i kapitlet om datalagring. En standard PC er i 2013 utstyrt med 4 – 8 GB RAM.

Systembuss

Systembussen er PC-ens nervesystem, og frakter informasjon rundt mellom de forskjellige enhetene. Den består av tre hoveddeler: Databuss, adressebuss og kontrollbuss. Databussen frakter selve dataene. Adressebussen brukes for å fortelle hvor data skal skrives eller leses. Dette kan enten være et sted i RAM, eller på en I/O-enhet. Kontrollbussen brukes til å overføre forskjellige kontrollsignaler mellom enhetene.

Systembussen har en bredde som forteller hvor mange informasjonsenheter (bits) den kan overføre samtidig. Tidlige systembusser hadde en bredde på bare 8 bits, mens en moderne buss kan ha bredde på 64 bits.

I/O-enheter

Alle PC-er er beregnet på å koples til enheter som gjør det mulig for dem å kommunisere med mennesker: Et tastatur og en mus, som er rene inn-enheter, og en skjerm, som er en ren ut-enhet.

I tillegg er så godt som alle PC-er utstyrt med en harddisk som brukes til å lagre data og programmer. Harddisker er nærmere beskrevet i kapitlet om datalagring. En standard PC har i 2013 harddisk med lagringskapasitet på 500 GB – 2 TB.

For å kunne kommunisere med et nettverk, kommer de fleste PC-er i dag ferdig utstyrt med nettverkskort. Tidligere var nettverk mest brukt på arbeidsplasser og lignende, der en knyttet de enkelte PC-ene til felles ressurser. Internett har imidlertid ført til at det i dag også er blitt svært vanlig med nettverkstilknytning hjemme.

Moderne PC-er er utstyrt med USB-porter, der en kan kople til eksterne enheter. USB står for ′Universal Serial Bus′, og er egentlig en egen buss som er koplet til PC-ens PCI-buss. Det meste av moderne utstyr beregnet på PC-tilknytning, kan koples til en USB-port. Minnepinner, digitalkameraer, skannere, skrivere, etc. De første USB-portene hadde begrenset kapasitet, med en overføringshastighet på 1,5 Mbits/s, altså 1,5 millioner informasjonsenheter (bits) per sekund. Senere kom en ny standard, USB 2, med en overføringshastighet på 480 Mbits/s, og denne er igjen blitt fulgt av USB 3, med en hastighet på opptil 5 Gbits/s

USB-plugg USB-kontakter USB-symbol
Plugg, tilkoplingskontakter og symbol for USB

I en periode var busstandarden FireWire (IEEE 1394) et raskere alternativ enn USB, og PC-er ble levert med FireWire-kontakter. FireWire ble typisk brukt til utstyr som skulle overføre store mengder data, slik som digitale videokameraer. Men med nye superraske USB-standarder, er ikke FireWire lenger så mye i bruk. Vil en ha FireWire på PC-en, må en som regel kjøpe et eget FireWire-kort, og plugge det inn i en av maskinens utvidelsessokler.

FireWire-plugg FireWire-kontakter FireWire-symbol
Plugg, tilkoplingskontakter og symbol for FireWire

Utvidelsessokler

Har en bruk for I/O-enheter som ikke er innebygd i PC-en, kan en montere tilleggskort. Dette kan for eksempel være ISDN-kort, trådløskort, eller FireWire-kort. De aller fleste PC-er har minst tre utvidelsessokler. Moderne utvidelsessokler er koplet til PCI-bussen. Det finnes utgaver både for bussbredder på 32 og 64 bits.

32-bits sokkel 64-bits sokkel
32-bits og 64-bits PCI tilkoplingssokler

En PC har gjerne i tillegg en sokkel på AGP-bussen, beregnet på tilkopling av grafikkort.

Plug and Play

Før i tida krevdes det spesialkunnskap for å få tilleggskort til å virke. Moderne PC-er og tilleggskort støtter imidlertid Plug and Play, PnP. Det betyr at en ganske enkelt kan slå maskinen av, plugge i tilleggskortet, og starte opp igjen. Maskinen oppdager selv at den har fått et nytt kort, og gjør de nødvendige konfigurasjonene.

I en del tilfeller trenger en ikke en gang slå av maskinen for å plugge inn nytt utstyr. Typisk vil dette være enheter som plugges inn via USB eller FireWire. Enhetene kan plugges inn og ut mens maskinene er i gang, noe som kalles hot-swapping.

Cache

Sett i forhold til hastigheten en mikroprosessor arbeider med, kan det ta svært lang tid å hente data fra internminnet. En PC er derfor utstyrt med cache, som er et hurtig minne knyttet til prosessoren via en lynrask buss. Cache er vanligvis konstruert av SRAM, beskrevet i kapitlet om datalagring. Cache inneholder utdrag av det som finnes i internminnet, og egne styringskretser prøver å sørge for at utdraget til enhver tid er det som prosessoren skal arbeide med.

I tillegg til cache i form av en separat minnebrikke, har en moderne mikroprosessor også en egen cache plassert direkte på selve prosessorbrikken. Denne har svært liten lagringskapasitet, men er til gjengjeld ekstremt rask.

Utseende

En skjematisk tegning av de viktigste delene i et PC-kabinett er vist under.

PC-kabinett
  1. Skjerm
  2. Hovedkort
  3. Mikroprosessor
  4. Internminne
  5. Tilleggskort
  6. Strømforsyning
  7. CD / DVD-stasjon
  8. Harddisk
  9. Tastatur
  10. Mus

På del 2, hovedkortet, er det aller meste som ikke er I/O-enheter montert. I bildet under er det vist et hovedkort med en oversikt over de viktigste delene.

Hovedkort
  1. Sokkel til mikroprosessor.
  2. Brikkesett. Gir prosessoren et uniformt grensesnitt mot maskinvaren.
  3. IDE-kontakter. Tilkoplingssokler for kabel til harddisk, CD-stasjon, o.l.
  4. Strømforsyningskontakter.
  5. Seriell-ATA kontakter. Tilkoplingskontakter for kabel til harddisk, etc. som forventes å erstatte IDE.
  6. Batteri. Holder i gang sanntidsklokka når strømmen er slått av.
  7. Diskettstasjonskontakt.
  8. CNR-spor. Spor for innplugging av tilleggskort som arbeider sammen med hovedkortet.
  9. Sokler for tilleggskort på PCI-bussen.
  10. Sokkel for tilleggskort på AGP-bussen. (Grafikkort).
  11. Audio-porter. Tilkopling for høyttalere, hodetelefoner og mikrofon.
  12. Nettverkskontakt.
  13. USB-porter.
  14. Parallellport. Port som tidligere ble brukt til å kople til skrivere, skannere, etc. I dag har USB tatt over det meste av parallellportens rolle.
  15. Seriell port. Port som tidligere ble brukt til å kople til tastatur, mus, etc. I dag koples imidlertid mus og tastatur til i innganger laget spesielt for dette.
  16. PS/2-plugg for tastatur. Standarden med de fargekodede PS/2-pluggene stammer fra IBMs mislykkede PC-generasjon PS/2.
  17. PS/2-plugg for mus.
  18. Sokler for RAM-brikker. (Internminne)

Kilder

  • Jarle Aase, Clemet Thærie Bjorbæk: Maskinvare og operativsystemer. Fagbokforlaget 2004
  • Deborah Morley, Charles S. Parker: Understanding Computers: Today and Tomorrow. Thomson Course Technology 2006
  • Bård Kjos: Innføring i informasjonsteknologi. Tapir Akademisk forlag, Trondheim 2005
  • Per A. Holst: Datateknologiens utvikling. Tapir Akademisk forlag, Trondheim 2001
  • Cornelia Brodahl. Materiale fra INF 104, HiA 2005

Datalagring

En datamaskin vil alltid ha behov for å lagre data, enten midlertidig eller permanent. Siden en datamaskin arbeider i totallsystemet, gjør den vanligvis dette ved å la ′tilstedeværelse′ bety 1, og ′ikke tilstedeværelse′ bety 0, slik som beskrevet i kapitlet om tallsystemer. Det kan være tilstedeværelse av en elektrisk ladning, magnetisme, hull i ei papplate, mikroskopiske merker i en optisk disk, etc.

Et lagringsmedium er enten volatilt (flyktig) eller ikke-volatilt. Et volatilt medium mister sin informasjon når kraftforsyningen (strømmen) forsvinner, mens et ikke-volatilt beholder den.

Mekaniske media

De første datamaskinene som ble bygget, var rent mekaniske, og baserte datalageret på posisjonen til tannhjul, stag eller pinner. Også hullkortet var opprinnelig en rent mekanisk innretning, der følere registrerte hvor det var stanset hull i ei papplate. Senere ble følerne erstattet med optiske lesere, og hullkort var i bruk helt opp til 1980-årene. Men mekaniske media er ikke lenger i bruk.

Hullkort
Hullkort med del av et Fortran-program

Mekaniske media er ikke-volatile.

Magnetiske media

Magnetiske media baserer seg på materiale som kan magnetiseres. Styrken eller retningen på magnetfeltet i et gitt punkt avgjør om punktet representerer 0 eller 1.

Magnetiske media er ikke-volatile.

Kjerneminne

Kjerneminne består av en matrise med små magnetiserbare ringer. Kjerneminne er for lengst historie, og i moderne datamaskiner erstattet av elektroniske komponenter. Det er allikevel verdt å nevne fordi det engelske navnet, ′core memory′, av og til dukker opp som betegnelse på en maskins internminne.

Kjerneminne
Kjerneminne

Magnetbånd

På samme måte som magnetbånd kan benyttes til å spille inn lyd og bilde, kan det også brukes til å lagre data. Et magnetbånd er en lang plaststrimmel med et magnetiserbart belegg. Fra begynnelsen av femtitallet til ut på åttitallet var magnetbåndet en viktig lagringsenhet. I stormaskiner i form av store båndspoler, og i hjemmedatamaskiner i form av kassetter.

En klar ulempe med magnetbånd er at de er et sekvensielle. Hvis datamaskinen for eksempel befinner seg i begynnelsen av båndet og skal ha tak i noe på slutten, må den spole dit, noe som tar lang tid og gir mye slitasje. Harddisker har derfor overtatt det meste av båndet rolle.

Magnetbånd brukes imidlertid fremdeles til sikkerhetskopiering, der data leses og skrives sekvensielt. Men i stedet for store spoler brukes små, kompakte kassetter.

10,5 tommers båndspole
10,5 tommers båndspole
Stormaskin
CDC-6600 stormaskin fra 1970-årene med en rekke båndspoler
Kassetter
1/4 tommers kassetter til sikkerhetskopiering

Harddisker

En harddisk består av et antall plater som roterer med høy hastighet. Platene har et tynt, magnetiserbart belegg på begge sider, der dataene er lagret i konsentriske spor, som igjen er delt opp i sektorer, slik det er vist i skissen under. En sektor er den minste enheten som kan leses eller skrives til disken.

Prinsippskisse av harddisk
Prinsippskisse av en harddisk

Data hentes fra og lagres på platene ved hjelp av lese/skrivehoder. Disse hodene er ikke i berøring med platen, men svever på luftstrømmen mindre enn en hundre tusendels millimeter fra overflaten, noe som tilsvarer om lag en ti­tusendedel av tykkelsen på et menneskehår. Hodene kan bevege seg på tvers av platene, og derved nå all informasjon rimelig kjapt.

På grunn av at hodene beveger seg så nærme den magnetiske overflaten at de vil kollidere med noe så lite som en røykpartikkel, er lufta inne i en harddisk 100 % ren. På fabrikken monteres og forsegles harddiskene i absolutt støvfrie rom. Tar man lokket av en harddisk i et vanlig rom, er den ødelagt.

Harddisk
Harddisk med lokket fjernet

Magnetiske harddiskene ser nå ut til gradvis å forsvinne, og erstattes av det elektroniske lagringsmediet SSD.

Disketter

For å flytte data fra en maskin til en annen var disketter lenge enerådende. Ny programvare ble gjerne også levert på diskett. En diskett minnet i prinsippet om en harddisk, men besto bare av ei enkelt plate. Som det engelske navnet ′floppy disk′ antyder, var den laget av tynn, bøyelig plast. Lese/skrivehodene ble klemt inn mot plata i stedet for å sveve over, og levetiden var derfor begrenset.

Tidlige disketter hadde en diameter på 8, senere 5 1/4 tommer, og den magnetiserbare skiva lå i noe som nærmest var en konvolutt av papp. Deretter kom 3 1/2 toms disketter med konvolutten erstattet av et hardt plasthylster.

Lagringskapasiteten på disketter utviklet seg imidlertid lite, og ble i mange år liggende på 1,44 MB. Den lave kapasiteten og dårlige driftssikkerheten gjorde at diskettens æra tok slutt, og PC-er leveres i 2011 vanligvis ikke med diskettstasjon. Dataoverføring mellom maskiner skjer med flash-minnepinner eller via nettet. Programvare leveres på CD eller DVD, eller lastes direkte ned fra nettet.

Diskett
Komponentene i en diskett:
1: Tagg for skrivebeskyttelse
2: Nav
3: Beskyttelseslokk
4: Plasteske
5: Papir
6: Magnetiserbar disk med spor og sektorer tegnet inn.
7: Eksempel på en sektor.

Elektroniske media

Elektroniske media lagrer informasjon ved hjelp av elektroniske komponenter og kretser.

Elektroniske media finnes i både volatile og ikke-volatile former.

RAM

Navnet RAM står egentlig for ′Random Access Memory′, og henspiller på at skriving og lesing kan gjøres hvor som helst i mediet, i motsetning til for eksempel bånd som må skrives/leses i sekvens, og disker som må skrives/leses sektorvis. Det finnes imidlertid lagringsmedia som er ′Random Access′, selv om de ikke har RAM i navnet, så begrepet er litt misvisende.

I dagligtale brukes begrepet RAM om en datamaskins internminne, slik det er beskrevet i kapitlet om PC-arkitektur.

RAM er volatilt, og finnes i to hovedtyper: Dynamisk, DRAM, og statisk, SRAM.

DRAM bruker ladningen i en kondensator til å representere 0 eller 1. Teknikken krever få komponenter pr. minnecelle (bit), noe som betyr at integrerte kretser med denne teknikken får høy kapasitet. Ulempen er at ladningen i en kondensator lekker ut, slik at den må oppfriskes med jevne mellomrom. Mens oppfriskning pågår kan data ikke leses eller skrives på brikken, noe som nedsetter hurtigheten. Det finnes et utall undervarianter av DRAM, blant annet den raskere, mye brukte SDRAM.

SRAM bruker ikke kondensatorer, men logiske porter til å representere 0 eller 1. I kapitlet om logiske porter, vises det hvordan dette kan gjøres. SRAM trenger ikke oppfriskes, og blir derved mer effektivt enn DRAM. Ulempen er at SRAM krever mange flere komponenter pr. minnecelle, og derfor blir dyrere.

NB! Selv om SRAM ikke trenger å oppfriskes, er det allikevel volatilt. All informasjon forsvinner når strømmen skrus av.

Bildet under viser RAM-brikker i forskjellig montasje. Lengst til venstre er en enkelt RAM-brikke i ′Dual In Line Package′, DIP. Så følger et kretskort med RAM-brikker i ′Single In-line Pin Package′, SIPP. Deretter to varianter av ′Single In-line Memory Module′, SIMM. Så to varianter av ′Dual In-line Memory Module′, DIMM, som er vanligst i moderne PC-er, og en ′Direct Rambus DRAM′, RDRAM. Lengst til høyre vises en ′Small Outline DIMM′, SO-DIMM. Denne varianten er vanlig i bærbare PC-er.

RAM
RAM-brikker i forskjellig montasje

ROM

ROM står for ′Read Only Memory′, og er minne som er beregnet på i hovedsak å leses.

ROM er ikke-volatilt.

Data i ROM kan være skrevet inn én gang for alle på en fabrikk, men det finnes varianter som lar brukeren lagre data selv, én eller flere ganger:

I PROM, ′Programmable ROM′, brenner brukeren inn sine data ved hjelp av en PROM-brenner. Den fungerer ved å brenne av små sikringstråder der en skal lagre 0, og ikke brenne trådene der en skal lagre 1. PROM kan bare brennes én gang.

I en EPROM, ′Erasable Programmable ROM′, lagres data på en mindre drastisk måte enn i en PROM. Ved hjelp av floating gate transistorer representeres 1 og 0 ved hjelp av små, elektriske ladninger. Ladningene lekker svært langsomt ut, slik at en EPROM vil kunne beholde sitt innhold i ti – tjue år. I motsetning til PROM kan en EPROM programmeres flere ganger, men før den programmeres på nytt, må den tømmes for gammelt innhold. Dette gjøres ved å utsette brikken for ultrafiolett lys. En EPROM kan derfor kjennes igjen på at den har et vindu. Vinduet er imidlertid vanligvis dekket med en etikett for å unngå utilsiktet sletting.

EPROM
EPROM med blottlagt vindu

I EEPROM, ′Electronically Erasable Programmable′ ROM kan innholdet slettes elektronisk. Sletting kan gjøres minnecelle for minnecelle, det er ikke nødvendig å slette alt på en gang, slik som i EPROM. Sletting av en minnecelle tar imidlertid lang tid, flere millisekunder.

Hver sletting av en ROM-brikke sliter på den, men moderne brikker tåler ti tusenvis av slettinger.

Flash

Flash er en variant av EEPROM, men innholdet trenger ikke slettes celle for celle, men kan nullstilles blokkvis – i en ′flash′. Det betyr at flash er raskt nok til å være et praktisk medium for både for lagring og lesing. Det er ikke-volatilt, slik at lagrede data vil bli liggende selv om strømmen koples fra.

Flash memorysticks, såkalte minnepinner er derfor blitt svært populære. De kan plugges inn og ut av datamaskinene, og har så godt som erstattet diskettene.

Lagringskapasiteten øker raskt, og det blir i 2013 lansert en memorystick med en kapasitet på 1 TB.

USB-flash i Swiss Army-modell USB-flash i sushi-modell
USB-flash i Lego-modell USB-flash i standard-modell
Diverse utgaver av flash minnepinner

SSD

Solid-state drive, SSD, er et elektronisk lagringsmedium som mer og mer erstatter valige harddisker. SSD inneholder ingen bevegelige deler, og er derfor mer robust og fullstendig stillegående. Lav vekt er også en fordel, spesielt i bærbare PC-er.

SSD er nesten utelukkende basert på flash.

Kapasiteten på SSD øker, det lanseres i 2013 SSD på 2 TB. De største diskene ligger imidlertid ganske høyt i pris, så tradisjonelle harddisker er fremdeles ikke helt utkonkurrert.

Optiske media

Optiske media er basert på refleksjon av lys. 1 og 0 representeres ved reflekterende eller ikke-reflekterende punkter i en roterende overflate.

Optiske media er ikke-volatile.

CD

CD står for ′Compact Disc′, og er en plastskive med et sjikt reflekterende materiale. Data er organisert i spor og sektorer, mye på samme måte som på en diskett eller harddisk. En liten forskjell er imidlertid at mens en harddisk inneholder et antall konsentriske spor, består en CD av ett langt, spiralformet spor som leses innenfra og utover. Et lese/skrivehode kan bevege seg på tvers av plata, og derved nå all informasjon rimelig kjapt.

Vanlig lagringskapasitet på en CD er 650 eller 700 MB.

En CD leses av ved hjelp av en svak laserstråle. CD-plata roterer under strålen, og det måles punkt for punkt om strålen reflekteres eller ikke.

CD-ROM står for ′Compact Disc Read Only Memory′, og betegner CD-er som leveres ferdig med innhold. På fabrikken har en brukt en kraftig laser til å brenne merker i det reflekterende materialet.

Nesten all programvare selges i dag på CD-ROM eller DVD-ROM. Tidligere bruktes disketter, men med den dårlige lagringskapasiteten ville dagens programmer krevd dusinvis, hundrevis eller kanskje tusenvis av disketter.

Til å spille av en CD-ROM brukes en CD-ROM spiller. Avlesningshastigheten for CD-ROM var i utgangspunktet den samme som for en musikk-CD, men økte snart. Det er imidlertid en grense for hvor raskt en CD tåler å spinne, så hastigheten har stabilisert seg på rundt 52 ganger, noe som betegnes med 52X. Lesehastigheten kan imidlertid økes ytterligere ved andre teknikker, f.eks. å benytte flere lasere.

CD-R står for ′Compact Disc Recordable′, og betegner en CD brukerne kan lagre data på selv. En CD-R inneholder et sjikt lysfølsomt fargestoff som en CD-brenner bruker en laserstråle til å endre de reflekterende egenskapene til. Data brent til en CD-R er permanente, og kan ikke slettes igjen. Det er imidlertid ikke nødvendig å brenne hele CD-en på en gang.

En CD-brenner kan også brukes til å lese både CD-R og CD-ROM.

CD-R-plater
CD-R plater

CD-RW står for ′Compact Disc ReWritable′, og kan i motsetning til en CD-R overskrives. CD-RW-plater er imidlertid betydelig dyrere enn CD-R-plater, og de kan være problematiske å spille av i vanlige CD-ROM spillere.

I 2013 leveres ikke CD-spillere/brennere med datamaskiner lenger, de er erstattet av DVD-spillere/brennere som hare mye høyere kapasitet.

DVD

DVD står for ′Digital Versatile Disc′, tidligere ′Digital Video Disc′. DVD har tatt over for CD på grunn av den langt høyere lagringskapasiteten, 4,7 GB.

Det finnes DVD-R og DVD-RW på samme måte som det finnes CD-R og CD-RW.

Hastigheten til en DVD-spiller oppgis som 2X, 4X, etc. på samme måte som for en CD-ROM spiller. Dette henviser imidlertid til hastigheten i forhold til de første DVD-spillerne, og har ikke noe med hastigheten på en CD-ROM å gjøre.

En CD kan spilles av i en DVD-spiller, og en CD brennes i en DVD-brenner. Det motsatte er derimot ikke mulig.

DVD-teknologien er i rask utvikling. Med Blu-ray, en teknikk som bruker en blå laser, kan en lagre 128 GB på en tosidig disk, såkalt BDXL-format.

Blu-ray vant våren 2008 konkurransen med HD DVD om å bli fremtidens DVD-format.

Kilder

  • Per A. Holst: Datateknologiens utvikling. Tapir Akademisk forlag, Trondheim 2001
  • Jarle Aase, Clemet Thærie Bjorbæk: Maskinvare og operativsystemer. Fagbokforlaget 2004
  • Deborah Morley, Charles S. Parker: Understanding Computers: Today and Tomorrow. Thomson Course Technology 2006
  • Bilder fra PBase
  • Bilder fra The PC Guide

Komponenter

Releer

Et relé er en strømbryter som slås på eller av, avhengig om det går strøm gjennom en spole (elektromagnet) eller ikke. En bruker derved én strøm til å slå av og på en annen. Sammenlignet med rent elektroniske komponenter er releer trege, det går gjerne så mye som 0,1 sekund fra strømmen settes på til kontakten har lukket seg. Noen historiske datamaskiner var basert på reeler, men i dag brukes de ikke som datamaskinkomponent lenger. Releer har imidlertid mange andre anvendelser, for eksempel til å skru av og på den kraftige elektriske strømmen til hovedlyktene i en bil. Gjennom lysbryteren i kupeen går det da bare en svak styrestrøm.

Relé
Relé
Skjematisk framstilling av relé
Skjematisk framstilling av releet til venstre

Radiorør

Et radiorør av triode-type er en elektronisk forsterker som tidligere ble mye brukt i elektronisk utstyr som radio, TV, etc. Det bruker én strøm til å styre en annen, og kan derved erstatte releer. Radiorør er mye raskere enn releer, men mindre pålitelige, fordi de brenner ut på samme måte som lyspærer. En annen ulempe er at de må varmes opp før bruk. En del historiske datamaskiner var basert på radiorør.

I dag brukes radiorør nesten ikke lenger i noen sammenheng. Transistorer har overtatt denne komponentens rolle så og si fullstendig.

Triode
Triode, en type radiorør med funksjonalitet som en transistor
Prinsippskisse for triode
Prinsippskisse av en triode. Radiorøret til venstre inneholder to slike trioder

Transistorer

En transistor er en elektronisk forsterker der én strøm kan styre en annen, på samme måte som i et triode-radiorør. Transistorer har nesten tatt helt over for radiorør i dagens elektronikk. De er mindre, billigere å produsere, bruker mindre strøm, og trenger ikke varmes opp før de virker.

Virkemåten til transistorer baserer seg på de fysiologiske egenskapene til halvledere, for eksempel silisium.

Assorterte transistorer
Assorterte transistorer
Symbol for NPN-transistor
Symbol for NPN-transistor av BJT-type

Frittstående transistorer brukes ikke lenger i datamaskinens logikk. I stedet brukes integrerte kretser, der mengder av transistorer og andre komponenter masseproduseres ferdigkoplet på en enkelt brikke.

Kondensatorer

En kondensator er en elektronisk komponent som er i stand til å oppbevare en elektrisk ladning. Denne egenskapen gjør det mulig å bruke kondensatorer som lagringsmedium i datamaskiner, slik som i DRAM-brikker. I en slik brikke befinner det seg millioner av små kondensatorer. Inni en datamaskin vil vi imidlertid også finne store, frittstående (diskrete) kondensatorer som blant annet hjelper til med strømstyring.

Assorterte kondensatorer
Assorterte kondensatorer
Symbol for kondensator
Symbol for kondensator

Integrerte kretser

En integrert krets (IC) er en miniatyrisk strømkrets produsert på en brikke av halvledermateriale. Den inneholder som regel transistorer og kondensatorer i tillegg til en del andre elektroniske komponenter.

Med integrerte kretser er en i stand til å presse et stort antall komponenter inn på svært liten plass. Med 2004-teknologi ville en 0,5 mm2 stor brikke kunnet romme hele datamaskinen ENIAC, som i 1946 okkuperte 167 m2 og veide 27 tonn.

Ingen av komponentene i en integrert krets koples sammen vha. lodding eller liknende. I stedet produseres hele kretsen som en enhet, ved at mikroskopiske materialmengder deponeres på brikken gjennom spesialiserte prosesser. Den ferdige kretsen koples til omverdenen gjennom tynne metalltråder, og kapsles inn i et beskyttende hylster.

Det er integrert kretsteknologi som har gjort datamaskinen til allemannseie, fordi ekstremt kompliserte strømkretser kan produseres svært billig.

Produksjonsteknologien forbedres hele tiden, og i 2012 ble det produsert integrerte kretser med ca. 5 milliarder transistorer.

I 1965 forutsa George Moore at transistortettheten i integrerte kretser ville fordobles hver 24. måned. Denne spådommen er blitt hetende Moores lov, og har vist seg å stemme svært godt.

Integrert krets i DIP-pakning
Integrert krets innkapslet i DIP-pakning
Det indre av en integrert krets
Det indre av en integrert krets
44-pins integrert krets med lokk
44-pins integrert krets
44-pins integrert krets uten lokk
Kretsen til venstre med lokket fjernet

Kilder

Logiske porter

De fleste datamaskiner arbeider i totallsystemet. De organiserer informasjon i form av binære tilstander, 0 eller 1, og når de gjør beregninger, kombinerer de slike tilstander ved hjelp av logiske porter. De grunnleggende typer porter er OG-port, ELLER-port, IKKE-port og XELLER-port.

Logiske porter kombinerer to inngangsverdier til én utgangsverdi, med unntak av IKKE-porten, som bare har én inngangsverdi.

I det følgende illustreres virkemåten til disse portene ved hjelp av releer. En skjematisk tegning av et relé er vist under. Når en elektrisk strøm sendes inn i spolen ved ′A′, trekker den til seg metallpinnen som oppretter forbindelse mellom ′X′ og ′Ut′, slik at strøm kan flyte mellom disse punktene. I skjemaet symboliserer farge den binære tilstanden 1, og ingen farge tilstanden 0.

Du kan starte en animasjon ved å holde musa over tegningen.

Prinsippskisse av relé

Releer illustrerer prinsippet i en logisk port på en oversiktlig måte, men i virkeligheten brukes transistorer, ikke releer. Hver logisk port har imidlertid et standardisert symbol, som er teknologiuavhengig.

OG-port

OG-porten arbeider etter følgende logiske skjema:

INN UT
A B A OG B
0 0 0
1 0 0
0 1 0
1 1 1

Begge portens innganger må være i tilstand 1 for at OG-portens utgang skal være i tilstand 1.

En OG-port kan konstrueres ved å kople sammen to releer som vist i tegningen under. Begge releene må få strøm før det kommer strøm på utgangen.

Du kan starte en animasjon ved å holde musa over tegningen.

Og-port bygget av releer

Standardsymbolet for en OG-port ser slik ut:

Og-symbol

ELLER-port

ELLER-porten arbeider etter følgende logiske skjema:

INN UT
A B A ELLER B
0 0 0
1 0 1
0 1 1
1 1 1

ELLER-portens utgang er i tilstand 1 hvis én eller begge portens innganger er i tilstand 1.

En ELLER-port kan konstrueres ved å kople sammen to releer som vist i tegningen under. Det er nok at ett av releene får strøm for at det skal komme strøm på utgangen.

Du kan starte en animasjon ved å holde musa over tegningen.

Eller-port bygget av releer

Standardsymbolet for en ELLER-port ser slik ut:

Eller-symbol

IKKE-port

IKKE-porten arbeider etter følgende enkle, logiske skjema:

INN UT
A IKKE A
0 1
1 0

Den gir altså utgangen tilstand 1 hvis inngangen har tilstand 0, og omvendt.

En IKKE-port kan konstrueres ved å bruke et relé av en spesiell type, som bryter strømkretsen på utgangen når det settes strøm på inngangen. Dette er illustrert i tegningen under.

Du kan starte en animasjon ved å holde musa over tegningen.

Eller-port bygget av et relé

Standardsymbolet for en IKKE-port ser slik ut:

Ikke-symbol

XELLER-port

XELLER-porten arbeider etter følgende logiske skjema:

INN UT
A B A XELLER B
0 0 0
1 0 1
0 1 1
1 1 0

XELLER-portens utgang er i tilstand 1 hvis én av inngangene er i tilstand 1, men ikke begge samtidig. Denne hendelsen er ekskludert. Dette skiller porten fra ELLER-porten som inkluderer tilfellet at begge er 1 samtidig. X-en i navnet kommer da også fra det engelske exclusive.

En XELLER-port kan bygges ved å sette sammen to OG-porter, to IKKE-porter og en ELLER-port som vist i skjemaet under. Du kan starte en animasjon ved å holde musa over skjemaet.

Prinsippskjema for xeller-port

En slik port ville kreve 1 + 1 + 2 + 2 + 2 = 8 reeler.

Standardsymbolet for en XELLER-port ser slik ut:

Xeller-symbol

Addisjon ved hjelp av logiske porter

I kapitlet om tallsystemer beskrives regnereglene for addisjon av to binære sifre:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 og 1 i mente

I tabellform, satt opp som en regel for logiske porter, ser det slik ut:

INN UT
A B SIFFER MENTE
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1

Sammenligner en kolonnen «SIFFER», med «UT»-kolonnen til en XELLER-port, ser en at de er like. Og «MENTE» er lik «UT»-kolonnen til en OG-port. Dette betyr at en kan addere to binære sifre ved hjelp av en XELLER-port og en OG-port, koplet som vist under:

 

Prinsippskjema for halvadderer

Dette er en halvadderer. Vil en addere binære tall med mer enn ett siffer, trengs imidlertid en litt mer komplisert kopling. For dersom addisjonen av to sifre i en kolonne genererer mente, må en ta hensyn til dette ved addisjon av sifrene i neste kolonne. Ta f.eks.

$\begin{align} \, &1 \, 1 \\
+ \, &0 \, 1 \end{align}$

Summen av sifrene i kolonna lengst til høyre gir 1 og 1 i mente. Denne menten må så tas med ved summering av sifrene i neste kolonne. En har altså tre sifre å forholde seg til, addenden 1, addenden 0 og menten 1. Som beskrevet i kapitlet om tallsystemer, kan en addere tre tall ved først å legge sammen to, og deretter addere summen til det tredje. En addisjonskopling som tar høyde for innkommende mente er vist under. Legg merke til at alle sifre adderes to og to. Ingen av komponentene har mer enn to innganger.

Prinsippskisse av fulladderer

Dette er en fulladderer. Ved å kjede flere slike sammen, kan en addere binære tall med mange sifre.

Skulle en bygd opp denne koplingen med releer, ville en trengt 8 + 8 + 2 + 2 + 2 = 22 stykker. For å legge sammen to binære tall med 8 siffer, en byte, ville en trengt ca. 22 * 8 = 176 releer. Ikke rart tidlige datamaskiner ble store og klumpete.

Datalagring ved hjelp av logiske porter

I alle koplingene vist over, gjenspeiler utgangen(e) verdiene på inngangen(e). IKKE-porten har for eksempel alltid en utgang som er det motsatte av inngangen.

Ved å lage en tilbakekopling fra utgangen inn i det logiske systemet, kan en imidlertid bygge en krets som bevarer tilstanden på utgangen. En kan altså bruke en slik kopling til å lagre tilstanden 0 eller 1. Dette er noe som utnyttes i SRAM-brikker.

En slik kopling er vist under. Den kalles vippe, bistabil krets, eller flip-flop. Hvis inngang A gis verdien 1, får utgangen verdien 1, og beholder den når A går tilbake til 0. Hvis inngang B gis verdien 1, får utgangen verdien 0, og beholder den når B går tilbake til 0.

Du kan starte en animasjon ved å holde musa over tegningen.

Prinsippskisse av bistabil krets

Kilder

  • Bård Kjos: Innføring i informasjonsteknologi. Tapir Akademisk forlag, Trondheim 2005
  • Dan I. Porat, Arpad Barna: Introduction To Digital Techniques. John Wiley & Sons, Inc. 1979

Tallsystemer

Titallsystemet

Som mennesker er vi vant med å regne med 10 som grunntall, vi bruker titallsystemet (desimalsystemet). Dette kommer formodentlig av at mennesket har 10 fingre, og derved er i stand til å representere 10 ulike sifre uten ekstra hjelpemidler. De 10 sifrene er de velkjente symbolene 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9.

Tallsystemet vårt er et posisjonssystem, hvor verdien av hvert siffer avhenger av hvor i tallet sifferet er plassert. I tallet 782, for eksempel, representerer sifferet 7 ′syv hundre′, 8 representerer ′åtti′, og 2 representerer ′to′. Sifferet lengst til høyre representerer enere, det neste tiere, deretter hundrere, etc.

Vi ser at sifferverdien (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) multipliseres med tallsystemets grunntall (10) opphøyd i sifferets posisjonsnummer. Enerplassen regnes som posisjon null. 782 betyr altså 7·102 + 8·101 + 2·100 = 7·100 + 8·10 + 2·1.

Totallsystemet

Et annet viktig posisjonssystem er totallsystemet (binærsystemet), der vi bruker 2 som grunntall. I totallsystemet anvendes bare to sifre, 1 og 0, og de ulike posisjonene representerer 1, 2, 4, 8, etc. i stedet for titallsystemets 1, 10, 100, 1000, etc. Helt analogt med titallsystemet multipliseres sifferverdien (0, 1) med tallsystemets grunntall (2) opphøyd i sifferets posisjonsnummer. 1101 betyr for eksempel 1·23+ 1·22 + 0·21 + 1·20 = 1·8 + 1·4 + 0·2 + 1·1 = 13 i titallsystemet.

For å angi hvilket tallsystem en arbeider i, brukes et lite subskript. 2 for totallsystemet, 10 for titallsystemet, etc. For eksempel betyr 11012 = 1310 at 1101 i totallsystemet er lik 13 i titallsystemet.

Siden det bare er to sifre i totallsystemet, kan en lett representere tall fysisk ved å la 1 bety at noe er til stede, og 0 at noe ikke er til stede. Dette er illustrert på bildet under, ved hjelp av egg i en eggekartong. Her ligger det egg i de fire posisjonene lengst til venstre, mens de to til høyre er tomme. Tallet dette symboliserer blir derved 1111002. Skulle en representert det samme i titallsystemet, måtte en innført et innfløkt system der for eksempel rødt egg betydde 1, blått egg 2, grønt egg 3, etc.

Egg som illustrerer 111100 i totallsystemet
 

Datamaskiner representerer tall som fysiske enheter, selv om det ikke er egg. I DRAM-minne for eksempel, betyr «elektriske ladning» 1, og «ingen ladning» 0. Skulle en operert i titallsystemet, måtte en holdt rede på 10 forskjellige ladningsnivåer, like innviklet som 10 fargede egg.

En annen stor fordel med totallsystemet, er at regneoperasjonene er svært enkle. Regnereglene for addisjon er slik:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 og 1 i mente

Multiplikasjon i totallsystemet er like enkelt. Gangetabellen ser slik ut:

  0 1 10
0 0 0 0
1 0 1 10
10 0 10 100

På grunn av den enkle måten å representere tall på, og de enkle regnereglene, arbeider de aller fleste datamaskiner i totallsystemet, de er binære.

Skal en gjøre operasjoner på flere tall, kan en ta for seg to tall av gangen. For å addere tre tall for eksempel, adderer en først to av dem, og adderer deretter summen til det siste tallet.

Regneeksempler

Akkurat som i titallsystemet, adderer en to binære tall ved å addere kolonne for kolonne, fra høyre mot venstre. Eksemplet under viser skritt for skritt prosedyren med å utføre addisjonen 101012 + 11012 = 100102. I titallsystemet tilsvarer det 2110 + 1310 = 3410.

Addisjon i totallsystemet

Multiplikasjon kan en også utføre som i titallsystemet. En multipliserer tallet til venstre med hvert siffer av tallet til høyre, setter resultatene under hverandre, og summerer. Eksemplet under viser skritt for skritt prosedyren med å utføre multiplikasjonen 1010012 · 1102 = 111101102. I titallsystemet tilsvarer det 4110 · 610 = 24610.

Multiplikasjon i totallsystemet

Sekstentallsystemet

Totallsystemet er kjekt for datamaskiner, men ikke så lett for mennesker å håndtere, fordi sekvensene av ettall og nuller fort blir lange og tungvinte. For mennesker er titallsystemet mye mer praktisk. Det er for eksempel atskillig enklere å tolke tallet 128583 i titallsystemet, enn motparten i totallsystemet: 11111011001000111.

Totallsystemet brukes derfor sjelden i skriftlig materiale. Men hvis en ønsker å vise hvordan tall representeres i en datamaskin, er titallsystemet heller ikke særlig velegnet. Dersom en f.eks. øker tallet 11112 med 1, får en 100002, en endring som overhodet ikke gjenspeiles i at 1510 blir til 1610.

En slår derfor i stedet sifrene i totallsystemet sammen i grupper på fire, og representerer hver gruppe med ett enkelt symbol. En slik gruppe på fire sifre kan representere 16 forskjellige tall, og et slikt tallsystem kalles derfor sekstentallsystemet (heksadesimalsystemet). For de første10 sifrene brukes de vanlige symbolene 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Men så eksisterer det ikke flere tallsymboler. En kunne selvfølgelig oppfunnet nye symboler for å representere de neste 6 sifrene, men i stedet har en valgt å bruke bokstavene A, B, C, D, E og F. Dette er illustrert i tabellen under.

00002=016 00012=116 00102=216 00112=316
01002=416 01012=516 01102=616 01112=716
10002=816 10012=916 10102=A16 10112=B16
11002=C16 11012=D16 11102=E16 11112=F16

 

I sekstentallsystemet vil en endring fra 11112 til 100002, vises ved at F16 blir til 1016. I motsetning til titallsystemet, gjenspeiler sekstentallsystemet at sifrene i posisjon 0, 1, 2 og 3 er blitt satt til 0, og sifferet i posisjon 4 er blitt satt til 1.

Sekstentallsystemet er et posisjonssystem hvor sifferverdien (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) multipliseres med tallsystemets grunntall (16) opphøyd i sifferets posisjonsnummer. 3F6 betyr for eksempel 3 ·162 + 15 ·161 + 6 ·160 = 3 · 256 + 15 ·16 + 6 ·1 = 1014 i titallsystemet.

Omregning mellom tallsystemene

Fra totallsystemet til titallsystemet

Multipliser sifferet lengst til høyre med 20, neste siffer med 21, neste med 22, etc., og adder resultatet.
Eksempel: 101012 = 1 · 20 + 0 · 21 + 1 · 22 + 0 · 23 + 1 · 24 = 1 · 1 + 0 · 2 + 1 · 4 + 0 · 8 + 1 · 16 = 2110.

Fra titallsystemet til totallsystemet

Del tallet på to. Blir det en rest, skriv 1. Blir det ingen rest, skriv 0. Stryk resten og del på to på nytt. Skriv 1 eller 0 til venstre for forrige siffer, alt etter om det ble rest eller ikke.
Gjenta operasjonen inntil det står null igjen.

Eksemplet under viser hvordan en regner om 1310 til 11012:

Desimalt   Rest?   Binært
13 : 2  = 6,5    Ja   1
6 : 2  = 3,0    Nei   01
3 : 2  = 1,5    Ja   101
1 : 2  = 0,5    Ja   1101
         

Fra totallsystemet til sekstentallsystemet

Grupper sifrene 4 og 4, fra høyre mot venstre. Dersom siste gruppe har færre enn fire sifre, fyll på med nuller til venstre. Regn om ifølge tabellen i avsnittet om sekstentallsystemet.

Eksempel: 111110110010001112 = 0001 1111 0110 0100 01112 = 1F64716.

Fra sekstentallsystemet til totallsystemet

Ta utgangspunkt i tabellen i avsnittet om sekstentallsystemet, og erstatt hvert siffer med de tilhørende fire sifrene i totallsystemet. Ledende nuller kan strykes.

Eksempel: 2F316 = 0010 1111 00112 = 10111100112.

Fra sekstentallsystemet til titallsystemet

Multipliser sifferet lengst til høyre med 160, neste siffer med 161, neste med 162, etc., og adder resultatet. Husk at A16 = 1010, B16 = 1110, C16 = 1210, D16 = 1310, E16 = 1410, F16 = 1510.

Eksempel: 2F3C16 = 12· 160 + 3· 161 + 15 · 162 + 2 · 163 = 12 · 1 + 3 · 16 + 15 · 256 + 2 · 4096 = 1209210

Fra titallsystemet til sekstentallsystemet

Det enkleste er nok å regne om til totallsystemet først, og deretter til sekstentallsystemet, som beskrevet i avsnittene over. En kan imidlertid bruke teknikken for å regne om fra ti- til totallsystemet til å regne om direkte til sekstentallsystemet. Men en må dele på seksten, og i stedet for å skrive 1 når en får rest, skriver en resten multiplisert med seksten.

Eksemplet under viser hvordan en regner om 1209210 til 2F3C16:

Desimalt Oppmultiplisert rest   Heksadesimalt
12092 : 16  = 755,75    0,75  * 16= 12    C
755 : 16  = 47,1875    0,1875  * 16 = 3   3C
47 : 16  = 2,9375    0,9375  * 16 = 15   F3C
2 : 16  = 0,125    0,125  * 16 = 2   2F3C
           

Omregning med kalkulator

Windows har en kalkulator-app som en får fram ved å åpne Windows-menyen og skrive «kalkulator».Denne kan brukes til å regne om mellom totallsystemet (binært), åttetallsystemet (oktalt), titallsystemet (desimalt) og sekstentallsystemet (heksadesimalt).

Første gang kalkulatoren hentes fram, vises den i modus «Standard», dette endrer vi til «Programmering» i menyen øverst til venstre.

Windows-kalkulator i programmerings-modus

HEX, DEC, OCT og BIN er til å velge tallsystem med, henholdsvis sekstentallsystemet, titallsystemet, åttetallsystemet og totallsystemet. Vil en regne om fra titallsystemet til sekstentallsystemet, for eksempel, klikker en på DEC, skriver inn tallet, og klikker på HEX. Vil en regne om fra totallsystemet til titallsystemet, klikker en på BIN, skriver inn tallet, og klikker på DEC. Kalkulatoren deaktiverer knapper med tall som ikke er gyldige i et gitt tallsystem. Velger en BIN, er således bare 0 og 1 aktivert. Velger en OCT, aktiveres i tillegg 2, 3, 4, 5, 6 og 7. Med DEC kommer også 8 og 9, og med HEX A, B, C, D, E og F.

Kilder

  • Bård Kjos: Innføring i informasjonsteknologi. Tapir Akademisk forlag, Trondheim 2005