Spørg Scientariet: Hvordan ved en computer, hvad klokken er?

 tirsdag 09. mar 2010 kl. 17:01

Morten Udengaard vil gerne vide, hvordan computeren kan vide, hvad klokken er:

Hvordan kan en computer klokken? Altså, hvordan tæller en computer sekunder?

Den ved selvfølgelig, at 1 minut er 60 sekunder og 60 minutter er en time og så videre. Men hvordan ved den, hvor lang tids interval der skal være imellem tik og tak? På forhånd tak.

Poul-Henning Kamp, blogger og fagmedarbejder på ing.dk svarer:


Computeren bruger et lille stykke kvarts-krystal, der svinger ved en frekvens, som er bestemt af dets geometri. Det samme gør dit elektriske armbåndsur, vækkeur og alle andre ure og computere, du ser omkring dig.

Det siger sig selv, at computersoftwaren er nødt til at kende frekvensen for at kunne vide, hvor mange svingninger, der går på et sekund, men da krystaller er både præcise og stabile, er det et designspørgsmål.

Typisk er frekvensen til urbrug 32768 Hz, altså 2 i femtende potens, og krystallet er udformet som en lille bitte stemmegaffel i en lille metalcylinder, 1-2 millimeter diameter og 3-5millimeter længde.

Til en computers clockfrekvens, anvendes en flad plade af kvarts, typisk cirka 1 x 3 millimeter, der svinger med en frekvens i 10-50 MHz området.

Af historiske årsager er frekvensen oftest 14.31818... MHz.
(Se: mit blogindlæg om dette)

At dette i det hele taget kan lade sig gøre, skyldes at kvarts besidder en unik kombination af seks egenskaber:

1. Der er masser af det: Groft sagt halvdelen af jorden består af det.

2. Det er nemt at dyrke og forædle krystallerne industrielt: Lav opløselighed i alt andet end koncentreret flussyre (fluor-syre), og krystallerne er hårde men ikke skøre.

3. Det er piezoelektrisk: hvis man klemmer et kvartskrystal, opstår der en spænding over det, og omvendt.

4. Det har lavt mekanisk tab, så en mekanisk svingning er lang tid om at uddø. Det giver et højt elektrisk "Q" på cirka 10.000.000.

5. Der findes krystalsnit, hvis frekvens er ufølsom for moderate
temperatursvinginger.

6. Der findes stress-kompenserede krystalsnit, der er mekanisk robuste.

Uden alle disse seks egenskaber, havde den elektroniske verden set meget anderledes ud.

Den piezoelektriske effekt blev opdaget af Madamme Curies mand, Pierre, og hans bror Jacques i 1880. I 1917 fik Alexander McLean Nicholson den ide, at bruge et kvartskrystal til at lave en stabil frekvensgenerator med. I 193'erne erstattede kvartsure pendulurenes rolle som tidsnormaler i verdens målelaboratorier, og i starten af anden
verdenskrig hældte USA nogle millioner i grams for at starte en "krystalbranche", for at få bedre radiomodtagere til tropperne.

Den tidligere formand for IEEE, John R. Vig, har glemt mere om kvartskrystaller og frekvensstyring, end vi andre kan håbe på nogen
sinde at huske. Heldigvis er hans definitive "Quartz Tutorial"
online på nettet i flere udgaver. Den nyeste version, jeg kender, er på 288 sider og kan blandt andet findes her (pdf-dokument):



Spørg Scientariet er i dag redigeret af Tine Havkrog, thb@ing.dk



09. mar 2010 kl 17:47

Max Jakobsen

Klokken

Hvornår er en computer begyndt at kunne vise klokken rigtig. !!!!


09. mar 2010 kl 18:03

Jens Madsen

14.31818 MHz

Er det muligt, at du kan lave et link til dit indlæg omkring 14.31818 MHz. Det kunne ikke umiddelbart findes med søg.

Umiddelbart, kan jeg ikke se fordelen ved så høj frekvens. Desto større frekvens, desto større er strømforbruget for uret, når PC'en er slukket. Bruges 14.31818 MHz, så skal lithium batteriet skiftes ofte, i forhold til, hvis der bruges 32768 Hz. Den lave frekvens på 32768 Hz bruges oftest i ure, fordi den er nemt at neddele til 1 sekund, og samtidigt er frekvensen så lav, at forbrug i størrelsen et par hundrede nanoampere kan opnås. Ligesom for ure, vil en lav frekvens - f.eks. 32768 Hz, derfor være en fordel.

I "gamle" dage, fra før PC-AT'en, var der ikke indbygget urchip i PC'en. I stedet, blev klokfrekvensen på 4.77MHz sendt ind i en 8253 counter chip, som indeholdte 3 timers. Den ene af disse 3 timere, blev brugt til division med 4*65536 og gav en frekvens på 18.2Hz, der blev brugt til interrupt 8. I MS-DOS, blev klokken udregnet efter antal ticks på interrupt 8. De andre 2 timere, blev brugt til henholdsvis refresh, og som frekvensgeneratoren til højttalerens lys.

Da PC-AT'en kom, fik den indbygget batteri, og ur-chip. Det betød, at computeren havde to ure. Èen indbygget i operativsystemet, der anvendte 18.2 Hz interruptet - og en anden, i hardware. Når PC'en blev startet op, blev uret indlæst fra hardwarens ur-chip, og dos'ens ur indstillet. Imidlertid, kørte DOS'ens ur ikke perfekt, da PC'ens klokfrekvens ikke var præcist justeret. Det betød, at hvis en PC var tændt lang tid, så kunne uret blive bagefter eller forand, indtil computeren blev genstartet. Det var også problem klokken 0.00 ved datoskift. MS-DOS holdte styr på datoskift, og noterede at der blev lagt éen til klokken 0.00 - men der var kun afsat éen bit til at notere dette, så efter 24 timer, blev ikke lagt to til. Samme dag, blev gentaget igen og igen, og datoen blev forkert.

Der fandtes derfor residente programmer, der kunne loades ind i MS-DOS, som sykroniserede det eksterne ur, med det interne med jævne mellemrum, og derved løste både problemet med drift, og problemet med datoskift.

De 14.31818 MHz, ser ud til at være 4.77MHz * 3. Men det må være de 4.77 MHz, der er årsag, til denne "underlige" frekvens.

Så vidt jeg ved, bruger PC'ens urkreds 32768 Hz på alle PC'er. Ellers var urbatteriet blevet fladt for længst...


09. mar 2010 kl 18:18

avatar

Stig Johansen

Re: 14.31818 MHz

Imidlertid, kørte DOS'ens ur ikke perfekt, da PC'ens klokfrekvens ikke var præcist justeret.

Det vækker lidt minder det du skriver, men jeg er ikke helt sikker på det(præcision) har så meget med clockfrekvensen at gøre.

I XT-tiden var det alment brugt at lave TSR programmer, der udnyttede INT8h, så det handlede vel mere om hvor meget (CPU)tid man 'stjal' på den konto - altså ud uver den tid DOS selv 'stjal'.

(For de yngre: TSR var en slags multitasking).


09. mar 2010 kl 18:36

Jens Madsen

Re: Re: 14.31818 MHz

I XT-tiden var det alment brugt at lave TSR programmer, der udnyttede INT8h, så det handlede vel mere om hvor meget (CPU)tid man 'stjal' på den konto - altså ud uver den tid DOS selv 'stjal'.
Selvom der blev hæftet interrupts på INT 8, så blev de kædet, så interruptet gik videre, til det oprindelige interrupt 8. Den tid, som interruptet tog, betød ikke uret gik langsommere - frekvensen var stadigt den samme, og alle interrupts blev kaldt 18.2 gange i sekundet. Derimod, betød flere interrupts på ur-interruptet en belastning for PC'ens ydeevne, således programmerne på PC'en kørte langsommere hvis interruptet tog tid. Det gik altså ikke ud over klokken - men over programmernes hastighed.

Dog, hvis et interrupt tog mere end 1/18 sekund, eller et program disablede interrupts i længere tid, så kunne et interrupt blive missed, og det gå ud over urets nøjagtighed. Mange programmer, kunne finde på at disable interrupts, og det var ikke ualmindeligt at uret kunne gå i stå et stykke tid.

Hvis du havde PC'er, der kørte i døgndrift, kunne du nemt se problemet med uret. At datoskiftet ikke skete, var naturligvis det største problem. Men selvom der ikke kørte software på PC'en, og ikke var indstalleret residente programmer, så kørte PC'ens dos-ur ikke perfekt. Så vidt jeg husker, lå fejlen på over et sekund per dag.


09. mar 2010 kl 18:55

avatar

Poul-Henning Kamp

Re: Klokken

Hvornår er en computer begyndt at kunne vise klokken rigtig. !!!!

I 1971 da Professor Dave Mills begyndte at rode med computere og tid på "fuzzball" operativsystemet.

Se: http://www.ece.udel.edu/~mills...html

Nogen af os har den mistanke at han fostrede Internettet for at kunne synkronisere computeres ure :-)

Poul-Henning


09. mar 2010 kl 19:14

avatar

Poul-Henning Kamp

Re: 14.31818 MHz

Er det muligt, at du kan lave et link til dit indlæg omkring 14.31818 MHz. Det kunne ikke umiddelbart findes med søg.

http://ing.dk/artikel/70719-25...-mhz

Poul-Henning


09. mar 2010 kl 20:18

avatar

Stig Johansen

Re: Re: Re: 14.31818 MHz

Hvis du havde PC'er, der kørte i døgndrift, kunne du nemt se problemet med uret. At datoskiftet ikke skete, var naturligvis det største problem.

Datoskitfe ?
Det mindes jeg ikke har været et problem, men tilfældigvis har jeg stadig en fungerende XT, og har lige startet 'uhyret op', og testet.

Den skifter skam dato når klokken runder midnat, så det må have være nogle andre modeller/OS du har kørt med.


09. mar 2010 kl 21:21

Bjarke Mønnike

Re: Re: Re: Re: 14.31818 MHz

Der blev skrevet AT der er en computer og hardware og ikke XP der er software.


09. mar 2010 kl 21:23

avatar

Poul-Henning Kamp

Re: Re: Re: Re: Re: 14.31818 MHz

Der blev skrevet AT der er en computer og hardware og ikke XP der er software.

Der blev skrevet XT der er en computer fra før du blev født ?

Poul-Henning


09. mar 2010 kl 21:26

Baldur Norddahl

Re: Re: Re: Re: 14.31818 MHz

Påstanden er også at der skal ske to datoskifte før det er et problem. Så du skal have din XT kørende i mindst 24 timer for at efterpøve det.

Jeg mindes heller ikke problemet. Måske det kræver en oldnordisk udgave af DOS (2.11 måske).

Jeg kan til gengæld huske at Windows NT 3.1 havde et problem efter 50 dage. Det skyldes tiden siden start blev gemt som antal millisekunder i en 32 bit counter.


09. mar 2010 kl 21:42

Bjarke Mønnike

Re: Re: Re: Re: Re: Re: 14.31818 MHz

Jeg skal have nye briller, jeg er dog ældre end eniac :-)


09. mar 2010 kl 21:48

Max Jakobsen

XT AT

Så burde du kende forskel på en XT og en AT.


09. mar 2010 kl 22:21

avatar

Ruben Hansen

Microsoft tid

Hvor får Microsofts programmer tiden fra? Det er da den mest ubrugelige tidsregning, deres tid ligner ikke den jeg har i mine ure :)


09. mar 2010 kl 22:26

avatar

Poul-Henning Kamp

Re: Microsoft tid

Hvor får Microsofts programmer tiden fra? Det er da den mest ubrugelige tidsregning, deres tid ligner ikke den jeg har i mine ure :)

Det er faktisk et temmlig langhåret emne, for Microsoft har prøvet alle mulige hacks for at forbedre situationen.

Groft sagt, er problemet at MS-DOS arbejde i den lokale tidszone internt.

Det vi sige, at hvis jeg lavede en fil på en diskette klokken 20:00 og sendte den til New York, så ville timestamp på en PC der også være 20:00.

Den CMOS clock vi kender fra BIOS'en og som holder uret gående mens maskinen er slukket, kørere også lokal tid.

Det giver problemer ved sommertid (Hvilken side ?) og i forbindelse med netværk.

UNIX bruger en bastard UTC[1] internt, og folder tidszone og sommertid på ved presentation.

Poul-Henning

[1] Uden skudsekunder, don't get me startet!


09. mar 2010 kl 22:55

Tomas Ussing

Og det korte svar...

Og det korte svar som Morten Udengaard umiddelbart kunne gå til havde været: "Computeren har indbygget et digitalur der drives af et lille batteri" ....[PERIOD]

Mark Twain HAR åbentbart levet forgæves:-/


09. mar 2010 kl 23:02

avatar

Poul-Henning Kamp

Re: Og det korte svar...

Og det korte svar som Morten Udengaard umiddelbart kunne gå til havde været: "Computeren har indbygget et digitalur der drives af et lille batteri" ....[PERIOD]

Nej, ikke helt, det er kun mens maskinen er slukket, mens den er tændt bruges forskellige andre counters (f.eks ACPI) der drives af hovedkrystallet.


Mark Twain HAR åbentbart levet forgæves:-/

Hvis det er det eneste du kan finde at brokke dig over, må det, alt i alt, have været en temmlig god dag :-)

Poul-Henning


10. mar 2010 kl 04:26

avatar

Stig Johansen

Re: Re: Re: Re: Re: 14.31818 MHz

Påstanden er også at der skal ske to datoskifte før det er et problem. Så du skal have din XT kørende i mindst 24 timer for at efterpøve det.

Så vigtigt er det nu ikke at finde af.

Den larmer som en i h...., og da den ikke har nogen bios clock, skal man selv sætte dato/tid ved opstart, så det var nemt at sætte den til 23:59.

Til dem der ikke kender en (IBM) XT, har jeg et billede af dyret:
http://w-o-p-r.dk/images/Early....JPG

(Den 'hårde' model med den der sindssygt store harddisk(10MB))

Jeg kan til gengæld huske at Windows NT 3.1 havde et problem efter 50 dage. Det skyldes tiden siden start blev gemt som antal millisekunder i en 32 bit counter.

Det tor jeg ikke er _tiden_ du tænker på, men gettickcounter(), der er antal 'millisekunder' siden start.

Det problem tror jeg stadig eksisterer (på 32 bits windows).


10. mar 2010 kl 07:57

Uffe Merrild

Re: Re: Re: Re: Re: Re: 14.31818 MHz

Til dem der ikke kender en (IBM) XT, har jeg et billede af dyret:
http://w-o-p-r.dk/images/Early....JPG

Battlechess! ALLRIGHT! :-D


10. mar 2010 kl 10:52

avatar

Michael Deichmann

Re: Re: Re: Re: Re: Re: Re: 14.31818 MHz

Til dem der ikke kender en (IBM) XT, har jeg et billede af dyret:
http://w-o-p-r.dk/images/Early....JPG

Battlechess! ALLRIGHT! :-D

Hyggeligt gensyn! Jeg har faktisk også en stående i kælderen - med DOS 3.2 på. Det var min første PC - købt i 1986 for 35.000 kr. Og nej - der er ingen kommafejl.


10. mar 2010 kl 12:23

Steen Petersen

Re: XT og tidsindstilling

Se, jeg ventede helt til 1989 med at købe en brugt Jumbo og så var den pludselig nede på 4.000.
Det var en turbo udgave, der med et "abegreb" med tre taster kunne skrues op fra 4,77 MHz til 8 MHz. Og da den havde 640 KB RAM i forhold til de mere almindelige 512 og et Hercules-kort med "høj" opløsning, var det noget af et bæst. Da den fik indopereret 2 stk. 20 MB harddiske var jeg sikker på, at jeg ALDRIG ville komme til at mangle diskplads. Ak ja. WordPerfect 5.1 blev Jumbo'ens skæbne. Vis udskrift funktionen lagde omtrent den lille PC helt ned, så i 1993 måtte den have sin første storebror. Den nye var i øvrigt udstyret med en harddisk, der ikke skreg som en rundsav på vej gennem et fyrretræ.

Nå, men med hensyn til tiden, så skulle jeg altså ikke stille ur hver gang maskinen blev booted selvom maskinen ikke var en AT.


10. mar 2010 kl 12:27

avatar

Stig Johansen

Nok OT i denne debat.

Men måtte lige starte 'svinet' op - igen.

Nu lyder det nok som alting gik op i spil og den slags ting, men det gjorde det for de unge, incl. min egen knægt.

Ud over skak[1], var der også sokoban:
http://w-o-p-r.dk/images/sokob....JPG
samt golf:
http://w-o-p-r.dk/images/golf.....jpg
(beklager det dårlige billede, men kameraet insisterer på blitz).

[1] Ja, det er Battlechess.

* Ad DOS - jeg har tilsyneladende opdateret på et tidspunkt, da det er DOS 3.1


10. mar 2010 kl 12:28

avatar

Poul-Henning Kamp

Re: Re: XT og tidsindstilling


Nå, men med hensyn til tiden, så skulle jeg altså ikke stille ur hver gang maskinen blev booted selvom maskinen ikke var en AT.

Det blev ret hurtigt normen for XT'erne at de havde en CMOS clock.

Poul-Henning


10. mar 2010 kl 12:32

avatar

Stig Johansen

Re: Re: Re: Re: Re: Re: Re: Re: 14.31818 MHz

Det var min første PC - købt i 1986 for 35.000 kr. Og nej - der er ingen kommafejl.

Det er svært at forstå i dag (kommafejl), og 'svinet' havde en nypris på 75.000+ dask.
(Den var dog udstyret med hele 10MB disk, og voldsomme 512KB RAM, samt Arcnet+SNA).


11. mar 2010 kl 21:22

Niels Poulsen

Re: Re: XT og tidsindstilling

Vis udskrift funktionen lagde omtrent den lille PC helt ned, så i 1993 måtte den have sin første storebror. Den nye var i øvrigt udstyret med en harddisk, der ikke skreg som en rundsav på vej gennem et fyrretræ.


Det må vel ret beset være en lillebror.....


12. mar 2010 kl 11:05

Tomas Ussing

...Og det korte svar...til PHK

Og det korte svar som Morten Udengaard umiddelbart kunne gå til havde været: "Computeren har indbygget et digitalur der drives af et lille batteri" ....[PERIOD]

Nej, ikke helt, det er kun mens maskinen er slukket, mens den er tændt bruges forskellige andre counters (f.eks ACPI) der drives af hovedkrystallet.


Mark Twain HAR åbentbart levet forgæves:-/

Hvis det er det eneste du kan finde at brokke dig over, må det, alt i alt, have været en temmlig god dag :-)

Poul-Henning

Ingeniørder har to basale problemer (altså udover vigende hårgrænser og for korte fløjlsbukser)
1. Vi tager minimalt udgangspunkt i slutbrugers/info-modtagers situation; det være sig i forb. m. produktudvikling eller i forb. m. en "kommunikationsopgave"
2. Vi udvikler/kommunikerer meget mere end slutbruger/modtager har brug for at modtage.

Dit svar på bemeldte spørgsmål var et skoleeksempel!


12. mar 2010 kl 12:24

avatar

Stig Johansen

Re: Re: XT og tidsindstilling

Se, jeg ventede helt til 1989 med at købe en brugt Jumbo og så var den pludselig nede på 4.000.
Det var en turbo udgave, der med et "abegreb" med tre taster kunne skrues op fra 4,77 MHz til 8 MHz

Hvad mener du med 'abegreb' ?

Jeg købte selv en Toshiba T5100 ('87)[1], som stadig kan startes op bortset fra den enorme haddisk på 40MB:
http://w-o-p-r.dk/images/t5100....jpg
Det var en '386 processor, og senere bestykket med en '387, og clockfrekvensen kunne reguleres med fn tasten + noget.

Men i den model var der stadig ingen bios(cmos) clock, da den var uden batteri.

[1] Nyprisen var nok ca. den samme som i dag, hvis man flytter kommaet en plads til højre.


05. dec 2011 kl 15:35

Tim Christoffersen

Re: Microsoft tid

Groft sagt, er problemet at MS-DOS arbejde i den lokale tidszone internt.



Det vi sige, at hvis jeg lavede en fil på en diskette klokken 20:00 og sendte den til New York, så ville timestamp på en PC der også være 20:00.

Lige den problemstilling gav anledning til mange sjove forsøg på at nedlægge en computer blot ved hjælp af en e-mail, tilbage i 1996-97.
Dengang, da Netscape stadig var i brug, var der en fejl i Netscape's compiler (faktisk Microsoft's C++-compiler), som gjorde at programmerne ville crashe hvis det skulle håndtere datoer senere end februar 2036.

Da jeg ikke selv brugte Netscape, var der intet problem for mig i at ændre computerens dato, derefter sende en mail rundt, og håbe at modtagerne brugte Netscape til at læse dem.

Straks man åbnede den mail, crashede Netscape og tog hele Windows med sig.. :)
Det brugte jeg mange timer på, specielt fordi min daværende lærer var Netscape-fanatiker. Han blev aldrig klogere ;)


Ny i debatten? Opret en brugerkonto