Fremtidens computere skal regne sig baglæns væk fra varmedøden

En række af verdens topforskere inden for såkaldt reversible beregninger mødes 2. juli i København.

Her vil de bl.a. diskutere metoder, som i fremtiden kan gøre det muligt for computerchips at undgå 'varmedøden', og de vil drøfte, hvordan man kan udnytte computere, der både kan regne frem og tilbage.

En traditionel computer er baseret på irreversible beregninger. Ud fra et input beregnes et output, men det er ikke muligt at regne baglæns, så man ud fra outputtet kan bestemme inputtet.

Det er fuldt tilfredsstillende ved de fleste beregningsopgaver, men i nogle tilfælde vil reversible beregningsmetoder være interessante.

»Det gælder for komprimeringsalgoritmer, hvor en reversibel computer ville kunne pakke og udpakke filer med samme program,« siger post.doc. Holger Bock Axelsen fra Datalogisk Institut på Københavns Universitet, der er en af de lokale arrangører af workshoppen.

Vejen uden om varmetab

Den helt store interesse for reversible beregninger skyldes dog, at sådanne beregninger i teorien kan foregå uden varmetab.

I takt med, at halvlederfabrikanterne har kunnet formindske transistorer og presse flere og flere sammen på samme chip, så er varmeafgivelsen blevet et alvorligt problem - og interessen for reversible beregninger er øget.

Selv hvis forskerne bliver i stand til at mindske varmetabet med højteknologiske løsninger, vil der nemlig være et fundamentalt varmetab forbundet med irreversible beregninger. Denne grænse kan man støde ind i inden for 20-30 år, lyder vurderingen.

En måde at krydse denne grænse på er at bygge computere, der udfører reversible beregninger - som altså regner lige godt frem og tilbage uden at bruge energi på at slette mellemresultater undervejs.

Det begyndte med Maxwells dæmon

Forklaringen herpå har rod i et af fysikkens mest berømte tankeeksperimenter: Maxwells dæmon.

Dæmonen er et hypotetisk individ beskrevet i 1870 af James Clerk Maxwell - videnskabsmanden, der formulerede elektromagnetismens love.

Dæmonen kan regulere adgangen for gasmolekyler mellem to kamre, så dæmonen kan samle de hurtige molekyler i det ene kammer og de langsomme i det andet kammer.

Herved ville der så at sige ud af ingenting opstå en temperaturforskel i modstrid med termodynamikkens regler.

Bennett fandt forklaringen med hjælp fra Landauer

Dæmonen skal holde styr på molekylernes hastighed og på basis heraf beregne, hvordan molekylerne skal fordeles i de to kamre.

Beregningsopgaven kan principielt udføres uden brug af energi, så det forklarer ikke modstriden mod termodynamikkens regler.

I 1961 forklarede Rolf Landauer fra IBM, at en irreversibel proces som sletning af en bit vil resultere i frigivelse af varmeenergi og dermed også en stigning i den termodynamiske entropi. Dette princip kaldes i dag for Landauers princip.

På basis heraf kunne Charles H. Bennett, også fra IBM, i 1982 i artiklen 'The thermodynamics of computation - a review' forklare, at da dæmonen nødvendigvis skal slette sin hukommelse for mellemregninger med jævne mellemrum, så vil dæmonen ved at udføre sit arbejde være med til at forøge varmemængden og entropien - og hermed er der ikke længere nogen modstrid med termodynamikkens regler.

I år kunne Eric Lutz fra Freie Universität Berlin i Tyskland præsentere den første eksperimentelle verifikation af Landauers princip. Han vil åbne workshoppen med foredraget 'The physics of information: From Maxwell's Demon to Landauer'.

Den første beskrivelse af sammenhængen mellem information og energi går dog tilbage til 1929, hvor Leo Szilárd beskrev, at det er muligt at omdanne en informationsmængde på en bit til en energimængde på kTln2, hvor k er Boltzmanns konstant, og T er temperaturen.

I 1948 benyttede Claude Shannon sammenhængen mellem information og termodynamikkens entropibegreb til at udvikle en matematisk teori for kommunikation over støjfyldte kanaler, som eksempelvis elektriske kabler, og han kunne derved beregne kapaciteten af informationskanalen.

****## Lang vej endnu
Det var Charles H. Bennet, der for alvor satte forskningen i reversible beregninger i gang.

Holger Bock Axelsen forklarer, at forskerne i dag har god teoretisk forståelse af principperne for reversible beregninger. Enkelte forskere er endog også begyndt at bygge kredsløb.

Han erkender dog, at der vil være lang vej til en computer, der er baseret på 100 pct. rene reversible beregninger. Men han forestiller sig, at principperne kan blive indført gradvist.

»En delmængde af de transistorer i en CPU, som er hårdest belastet, vil kunne udføre reversible beregninger og dermed bidrage til at mindske varmetabet,« siger han.

Han tilføjer, at der også er en sammenhæng mellem principperne for reversible beregninger og kvantecomputere.

»Det, vi udvikler inden for reversible beregninger, vil også i stort omfang have interesse for forskere, der arbejde med kvantecomputere,« siger han.

Dokumentation

Eric Lutz' artikel i Nature
Workshop om reversible beregninger
Intro om reversible beregninger
Maxwells dæmon (wikipedia)
C.H. Bennett: The thermodynamics of computation - a review

Emner : Fysik
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først

Øh, er det her en beskrivelse af Grander vand eller magnetiske sengetæpper med monopoler i hoved- og benenden og patenterede vekselmagneter på midten? Har de forskere da fået solstik? Hvordan i alverden skulle man kunne få den tabte energi tilbage ved at regne baglæns, og hvilket regnekredsløb skulle kunne generere energi i stedet for at forbruge energi? Mon ikke energibevarelsessætningen holder nogle år endnu?

KT, hvor K er Boltzmanns konstant, er energien i termisk støj (herunder solspektret), der rækker til en maksimalfrekvens/knækfrekvens på KT/h, hvor h er Plancks konstant - se http://en.wikipedia.org/wiki/Johnson–Nyquist_noise . Hvad i alverden har det med bit at gøre?

  • 0
  • 0

Så kan sådan en baglæns regnene maskine måske endelig finde svaret til 42!?

  • 0
  • 0

Hvis reversible beregninger, skal undgå at bruge strøm, kræves en helt anden teknologi, end de transistorer vi kender idag.

Det er korrekt, at reversible beregninger, kan bruges i visse tilfælde, hvor det også er en fordel, at kunne regne baglands i koden. Men de kan ikke bruges, til almindeligt software.

Den bedste måde, at undgå stort strømforbrug, er at analysere koden, så den kræver færre operationer. Mest effektivt, er at det gøres af softwareprogrammøren, som udvikler koden, og at de lærer, at bruge effektive algorithmer. Compilere, og dynamiske compilere, kan hjælpe til.

Et af de problemer, som bruger meget strøm, er flytning af store datablokke. Her kan man indbygge en "kopimaskine" i CPU'en, således disse kun flyttes logisk, og samtidigt kan indbygges kopi-ordrer, således tilsluttede enheder som ram, harddisk, netværksharddiske mv. styres af CPU'ens kopi ordre, og dermed lader disse selv overtage kopieringen. Det vil så koste strøm i disse enheder - men igen, så kan det løses ved, at de også bruger logisk kopiering internt. Det har mange fordele, da netop kopiering af data, er noget af det, som computeren bruges meget til, både ved indstallation og udførsel af programmer. Logisk kopiering, muliggør at data kan kopieres ekstremt hurtigt, så det ikke tager tid, og det gør, at programmerne kan skrives nemmere, da man kan kopiere så tosset man vil, uden det tager tid, eller er besværligt. Man behøver ikke, at forsøge at gøre kopieringsopgaven mindre krævende, ved at bruge pointere. Skal man gøre plads til nogle data i en blok, kan man også bare flytte blokken, og dette håndteres af CPU'en, så data reelt ikke flyttes i rammen, men fra tidspunktet hvor ordren gives, vil der logisk blive plads til data i rammen, i det pågældende hul.

Manglen på logisk kopiering, i de nuværende processorer, er med til at gøre von-neuman arkitekturen ekstra dårligt. Alle kopierede data, går igennem databussen, som er flaskehalsen. Databussen mangler kopi indstruktionen, der skulle gøre kopiering nemt.

Software kan analyseres, så man automatisk deler det op i processer, og prioriterer koden automatisk, således der tages hensyn til ved udførslen, hvad brugeren og hardwaren, har brug for, giver svar hurtigt. I visse tilfælde, muliggør det, at en del af koden, kan undgå at køre. Slettes f.eks. skærmen, så behøver ikke, at udføre de dele af koden, som blev skrevet ud på skærmen først, med mindre, at programmet har sendt en pause indstruktion, ud til skærmenheden. Man må ikke, og kan ikke, have pauser i programmer, men programmer skal sende pause ud til enhed. Det muliggør også, at computeren kan prioritere resourcerne, efter brugerens ønsker, således kan f.eks. opprioriteres de dele af skærmen, hvor brugeren kører musen henover. Står en computer, og laver beregninger, og ønskes et givet felt opprioriteret, så gøres det bare, ved at føre musen hen over feltet. Det bedste af det hele, er at der kræves almindelig kode, og programmøren ikke behøver at skrive kode for at opnå prioritereringen.

  • 0
  • 0

"Reversible computing" handler primært om at tiden kan vendes og programmet derved kører baglæns. Ser du på en maskinkode-instruktion som en funktioner som afbilder en tilstand til en anden (faserummet er her alle registre og RAM), er afbildning typisk ikke bijektiv. Som jeg forstår "reversible computing", er krævet af afbildningen er bijektiv.

Når vi taler om fysiske processer er reversible, er ingen entropiforøgelse. Eftersom en maskinkode-instruktion i en CPU er en fysisk proces, får "reversible computing" også betydning at dS = 0. Med dS >= dQ/T, kan du se at dQ

  • 0
  • 0

@Carsten Kanstrup Din kommentar, udpensler netop den mangel på initiativ og den manglende forståelse af/for et projektet, der gør at Danmark kun sjældent er i front inden for videnskab og forskning.

Man vil hellere sidde tilbagelænet, bedrevidende og inaktiv, og slynge om sig med en masse fine ord/buzzwords, i stedet for at gå i dybden med problemerne/opgaverne og se om man kan finde løsninger på dem.

Hvis du ikke forstår projektet så glæd dig i det mindste over at der er nogen der forsøger at forstå og løse problemerne/opgaverne. Lad være med at nedgøre noget du ikke forstår.

Jeg forstår heller ikke projektet, men artiklen giver mig en ide om hvad det er de vil, og det i sig selv er rigelig grund til at oprette projektet.

  • 0
  • 0

Asymetriske krypteringer, såsom RSA, kan ikke fungere med reversibel kode. Kun en brøkdel af krypteringer og dekrypteringer, vil således få gavn af reversibel kode.

At investere i særligt hardware, og særlig produktionsteknologi, for at opnå at spare strøm ved reversibel kodning, er uinteressant.

  • 0
  • 0

"Reversible computing" handler primært om at tiden kan vendes og programmet derved kører baglæns. Ser du på en maskinkode-instruktion som en funktioner som afbilder en tilstand til en anden (faserummet er her alle registre og RAM), er afbildning typisk ikke bijektiv. Som jeg forstår "reversible computing", er krævet af afbildningen er bijektiv.

Når vi taler om fysiske processer er reversible, er ingen entropiforøgelse. Eftersom en maskinkode-instruktion i en CPU er en fysisk proces, får "reversible computing" også betydning at dS = 0. Med dS >= dQ/T, kan du se at dQ

Beklager, jeg forstår ikke, hvad du mener. Enhver computerfunktion, hvor resultatet er forskellig fra inputdata - uanset om man regner den ene eller anden vej, vil resultere i, at nogle bit skifter værdi, og bitskift kræver energi, som er tabt for evigt med mindre man med peltierelementer eller lignende genvinder en del af den termiske energi. Eneste måde at reducere energien på er at reducere antallet af bitskift.

Det er helt fint at udvikle nye beregningsmetoder, der kan reducere antallet af bitskift og mellemresultater; men når man begynder at ville få tiden til at gå baglæns og lægge information i termisk støj, siger jeg fra.

  • 0
  • 0

@ John Jensen

Man vil hellere sidde tilbagelænet, bedrevidende og inaktiv, og slynge om sig med en masse fine ord/buzzwords, i stedet for at gå i dybden med problemerne/opgaverne og se om man kan finde løsninger på dem.

Hvilke buzzwords? KT fremgår af artiklen. Jeg påpegede bare, at det er energien i termisk støj. Jeg kan godt se, hvordan termisk støj kan sætte en øvre grænse for det antal bit, der kan overføres på en kommunikationskanal; men jeg begriber ikke, hvordan man kan regne baglæns og tage dette maksimale antal bit og så omdanne dem til energi. Der er ingen information i en computer, der kan omdannes til brugbar energi - bortset fra den yderst teoretiske mulighed, at den ladning, der er opbevaret i en dynamisk RAM, måske kan genbruges til en anden celle.

  • 0
  • 0

@Carsten: Før du kommer med sådan et indlæg, kunne du med fordel sætte dig ind i informationsteori. Emnet som sådan, og teorien bag, er ikke nogen større nyhed. Det som der arbejdes med er ikke software, men logiske gates. Man skal næppe forestille sig at et helt program kan løbe baglæns, højst nogle få maskininstruktioner. Fordelen vil være at disse gates pr. design vil have et lavt strømforbrug netop fordi de ikke sletter information i samme grad som de gør idag. Når en gate i dagens teknologi skifter tilstand (og derved sletter information) løber der en ladning igennem den. Det er energien i denne ladning man gerne vil undgå at spilde.

Prøv evt. at læse http://en.wikipedia.org/wiki/Reversible_co... eller søg selv lidt dybere.

Mvh. Peter

  • 0
  • 0

Enhver computerfunktion, hvor resultatet er forskellig fra inputdata - uanset om man regner den ene eller anden vej, vil resultere i, at nogle bit skifter værdi, og bitskift kræver energi, som er tabt for evigt med mindre man med peltierelementer eller lignende genvinder en del af den termiske energi. Eneste måde at reducere energien på er at reducere antallet af bitskift.

Carsten, du har vist misforstået artiklen - eller ikke læst den ordentligt. Problemet, der skal løses, er ikke her og nu, men inden for en tidshorisont på flere årtier, og som John Jensen påpeger, så handler det om, at vi i DK kommer med på vognen inden den er kørt i stedet for at vente på at problemet manifesterer sig. "Rettidig omhu", som den gode hr. Møller ville have formuleret det.

[i]I dag[/i] kræver det ganske rigtigt meget energi at foretage et bitskifte, men det er der ingenting i fysikkens love, der siger, at det skal - det er blot en begrænsning i den teknologi, vi benytter i dag, men der er jo ingen der siger, at det ikke flytter sig de næste 20-30 år (se blot hvor meget der er sket de sidste 30 år). Faktum er, at den krævede energi til at foretage et bitskifte i elektronikken (eller hvad vi nu bruger i fremtiden) reduceres løbende, og på et eller andet tidspunkt rammer vi termodynamikkens grænse. Ligesom vi ikke kan sende information hurtigere end lysets hastighed (en grænse, vi allerede kæmper med i dag), kan vi altså heller ikke overskride termodynamikkens love.

[i]I dag[/i] er det måske få promille - eller endnu mindre - af den tabte energi i en CPU, der tabes pga. informationstab, mens resten tabes pga. tekniske begrænsninger i elektronikken. Derfor gider vi [i]i dag[/i] ikke bekymre os om det. Sidstnævnte bidrag reduceres løbende af forbedringer i teknologien, mens den første del kun kan reduceres ved at ændre i den måde, vi koder på.

Hvis fremskrivninger viser, at vi rammer grænsen om et par årtier, er det da ikke for tidligt at komme i gang nu med udvikling af nye algoritmer og sprog, som gør det lettere at spare energi ved at undgå informationstab og dermed holde entropien konstant.

  • 0
  • 0

[i]I dag[/i] er det måske få promille - eller endnu mindre - af den tabte energi i en CPU, der tabes pga. informationstab, mens resten tabes pga. tekniske begrænsninger i elektronikken. Derfor gider vi [i]i dag[/i] ikke bekymre os om det. Sidstnævnte bidrag reduceres løbende af forbedringer i teknologien, mens den første del kun kan reduceres ved at ændre i den måde, vi koder på.

Hvis fremskrivninger viser, at vi rammer grænsen om et par årtier, er det da ikke for tidligt at komme i gang nu med udvikling af nye algoritmer og sprog, som gør det lettere at spare energi ved at undgå informationstab og dermed holde entropien konstant.

Problemet er i høj grad nutidigt. CPU'er består overvejende af CMOS gates, som i deres simpleste form er opbygget af to MOSFETs, en p-kanal og en n-kanal. I statisk tilstand bruger de praktisk taget ingen strøm, fordi enten den ene eller den anden MOSFET leder, og den anden spærrer. Men ved skift af tilstand flyder der en lille ladning gennem dem, og dermed en lille strøm. Som regel er CPUens strømforbrug derfor næsten lineært proportionalt med clock-frekvensen. Øvre grænse for frekvensen er derfor ofte der hvor varmedøden sætter ind. Det er derfor man kan overclocke med forceret køling, og derfor bærbare kan gå i strømspare-mode ved at reducere clock-frekvensen.

Mindre gates (fysisk!), og lavere spænding kan flytte grænsen til en vis grad. Men en bedre gate teknologi ville være et kvantespring. Behovet for dem er ikke i fremtiden, men her og nu.

Mvh. Peter

  • 0
  • 0

Når en gate i dagens teknologi skifter tilstand (og derved sletter information) løber der en ladning igennem den. Det er energien i denne ladning man gerne vil undgå at spilde.

Enig, men selv om vi kunne forestille os en teoretisk fuldstændig tabsfri logik, ville vi aldrig kunne få andet end en simpel 1:1 funktion, idet den potentielle energi (i form af f.eks. ladning eller spin) i f.eks. den logiske tilstand 1 kun kunne omdannes til en anden 1, men aldrig til 0, for energi kan ikke forsvinde, og uden varmetab, vil den kun kunne blive til kinetisk energi (strøm), der så igen vil blive til én og kun én 1'er. Vi kan altså realisere en reversibel inverter, som netop også omtales i den citerede artikel, hvor energien flyttes fra den ene side til den anden, men heller ikke andet. Så snart vi skal skifte tilstand permanent til 0, må energien i 1 gå tabt med mindre vi kan finde et sted at opbevare den, og skal vi have flere 1'ere ud, må der tilføres energi.

  • 0
  • 0

Beklager, jeg forstår ikke, hvad du mener. Enhver computerfunktion, hvor resultatet er forskellig fra inputdata - uanset om man regner den ene eller anden vej, vil resultere i, at nogle bit skifter værdi, og bitskift kræver energi, som er tabt for evigt med mindre man med peltierelementer eller lignende genvinder en del af den termiske energi.

Peltierelementer, er ikke den mest effektive måde, at genanvende energien...

Den mest effektive, er at skifte værdi ved hjælp af en spole. Hvis du har en kapacitor, der ikke er spænding over, og ønsker den skal skifte til 1V - så gøres det medst effektivt, ved at have en spole, der på den ene ende er sat til 0.5V. Når den sluttes til kondensatoren, så skiftes værdien til 1V, og du skal så afbryde, på rette tidspunkt. I nogle tilfælde, kan også bruges en diode.

Desværre, kræves energi, til at styre transistor/diode, men hvis du har lidt større kapaciteter, f.eks. busser, eller udgange, så betaler det sig. På LCD displays, kan du spare en stor del af energien, ved at lave samtlige signalskift ved hjælp af en spole. En kapacitiv belastning, der ændrer værdi, får derved ikke tab. Ofte, vil man forsøge at bruge en stor induktion med lavt tab, da skiftet så foregår langsommere, og strømmen derved bliver mindre. Det er strømmen, der medfører energitabet, og mindre skiftestrøm, medfører lavere tab. Nogle udgange, f.eks. LCD displays, har meget høj kapacitiv belastning, og hvis skiftet sker langsomt, så undgås energien afbrændes.

Ved superledende spoler, og superledende ledninger, er problemerne mindre, og du kan have store skiftetider. Ved store skiftetider, er imidlertid også større udstråling fra spolen - så det er den du skal genindvende. Også her, er peltier elementer uegnet.

Et reversibel program, består typisk af swap indstruktioner. Men der kan også være add/sub indstruktioner, såfremt du kan regne baglands. Som eksempel går y:=x-x ikke. XOR indstruktioner fungerer også. Men AND indstruktioner, og OR indstruktioner, går ikke med mindre du opmargasinerer den tabte værdi.

Det med at spare strøm, ved brug af reversibel computing, har jeg altid betragtet lidt som en joke. Jeg interesserede mig for reversibel kodning i gymnasiet, da jeg var ved at lave et lille tekstbehandlingsprogram. I den sammenhæng, vil jeg gerne have koder, der kunne lidt mere end sædvanlig, og det svarer til reversibel kodning, hvor du så kører frem/tilbage i dit program, eller i tekstbehandlingens koder, ved at styre cursoren. Jeg havde netop læst Thor Nørretranders "mærk verden", der beskrev, at problemet var, når data blev smidt væk. Så hurtigt opstod "joken" med mindre varmetab.

Som sådan, er det dog ikke helt forkert. Som nævnt, så kan data flyttes ved brug af induktioner (transmissionsledninger uden tab), og swappes ved brug af spoler/transmissionsledninger. Det er grundelementerne i reversibel kodning.

Med mindre, at computerne bliver superledende, tror jeg dog ikke på, at reversibel kodning til at spare energi, bliver relevant. Og der vil skulle udvikles helt nye principper, end nuværende. Jeg tror, at det er mere interessant med kvantecomputing, og at undersøge hvilke krav, at dette sætter til fremtidens indstruktionssæt. Der er lavet nogle kvantecomputer indstruktionssæt, men spørgsmålet er, om der også kan laves højniveau sprog, som C og Pascal, eller om C og Pascal kan forbedres på en måde, så kvanterprocessor resourcer kan anvendes, hvis en sædvanlig computer, tilføjes en kvanteprocessor. Det mest effektive, er sandsynligvis, at kunne programmere i et almindeligt programmeringssprog samtidigt med.

Problemerne med nye processorer og strømforbrug, kan løses på mange måder. Ofte går en stor del af energiforbruget til klokken. Dette energiforbrug, kan reduceres, ved at bruge en spole. Metoden er, at du skal have to klok impulser - phi1 og phi2. Forskellen mellem disse, udgør en sinuskurve. Men, f.eks. med et krydskoblet N-MOS transistor par, så opnås at phi1 er 0V i den ene halvperiode, og phi2 er 0V i den anden halvperiode. Phi1 og Phi2, er derved hver en halvperiode af en sinus bølge, og 0V i den anden halvperiode. Differensspændingen, er en fuld sinus. Nu kommer det spændende: Du kan sætte en spole på, imellem phi1 og phi2, og derved undgå tab i din klok. Det forudsættes, at phi1, og phi2, driver kapacitive indgange. Her skal du bruge 2-faset ikke overlappende klok. Din klok er nemlig en analog værdi, og må ikke gå igennem buffere. Den skal derfor ind direkte på switch-transistoren, i henholdsvis master og slave flipfloppen. Den må du godt styre. Og da det er tofaset, så betyder ikke noget med forsinkelsen, når det gøres korrekt, og hellerikke at signalet er analogt. Spændingen skal være højere, end den normale spænding, da du skal sikre dig, at du kan nøjes med en N-MOS transistor, som switch transistor. Og det betyder, at spændingen skal være ca. dobbelt af normal spænding på toppen, for at sikre N-MOS transistoren leder, også selvom indgangen er et 1-tal. Phi1 bruges til master flipfloppens N-MOS transistor, og phi2 til slave flipfloppens. På phi1, vil signalet gå igennem master flipfloppen, og den kobler fra, da phi1 går ned til 0V, inden phi2 går aktiv. Med mindre, at flipfloppen reelt skifter værdi, så er intet klok tab. Er der konstant 1 på indgangen af en D-FLIPFLOP, så vil der ikke være tab, trods den klokkes. Da der kun bruges en N-MOS gate per master og slave flipflop, så er kapaciteten på indgangen også minimal.

Ca. 30% af strømforbruget, på de fleste lidt langsommere synkrone processorer, kan fjernes på den måde.

Systemet med spoler, kan også bruges ved drivning af udgangen. F.eks. kan man have en oscillator, med en ekstern spole, der står og skifter, med klokfrekvensen for bussen. Skal signalet op, så sætter en transistor udgangsspændingen til spolen, der så driver den op, uden tab. Og samme, hvis signalet skal skifte lav. Bruges kun éen spole, så vil det dog tage længere tid at skifte, hvis mange signaler skifter samtidigt, da kapaciteten er større.

Endeligt, kan større spænding, også ofte bruges, når der skal undgås varmetab. Problemet er, at en del af varmen afbrændes i distributionsledningerne. En metode, er at nedbringe modstanden, ved at forsyne chippen, med et par effektive kraftige kobberklodser, som forsyner med de mange ampere. Og så forsøge, at undgå lang forbindelse, fra kobberklodserne, til de enkelte transistorer.

Den slags teknologier, er ikke så almindelige, og så er nemmere, at øge spændingen. Du kan få teknologier, hvor transistorerne isoleres fra hindanden, f.eks. på glassubstrat, og derved kan hver enkelt transistor, måske ikke tåle stor spænding, men du kan sætte elektronikken i serie, og lave serie-logik. Eller, simpelthen placere alle dine beregningsenheder i serie, og sikre et nogenlunde ens strømforbrug. I nogle tilfælde, bruges self-timed logik, hvor en beregningsbloks hastighed øges/sænkes, afhængigt af spændingen over den. Derved undgås, at skulle afbrænde energien med zener dioder, og i stedet, lægges bare flere beregninger, på den pågældende blok. Selve beregningerne, laves så de kan flyde imellem processorerne, og derfor betyder ikke så meget, hvilken processor der har mest tid. Alle processorer, fødes af beregningerne i nogle FIFO'er, således der altid er nok at tage fra, og beregningstiden, afstemms så, med en selvsvingende klok, der føler på spændingen, således spændingen over den pågældende processorblok, er nogenlunde konstant. I mange tilfælde, bruges asynkrone busser, imellem processorblokkene.

Den mest effektive måde, at spare strøm, ligger dog i, at programmørerne opdrages til at tænke strømbesparende. Idag tænker de ikke meget på, hvor stor energi der bruges, når de koder. Programmeringssprog og compilere, kan også optimeres, så de giver et lavere energiforbrug, for samme kode. Mange programmeringssprog, har idag problemer med analyserbarheden, f.eks. på grund af brug af pointere. Sprog, hvor problemet beskrives (højnivausprog), i stedet for sprog, der beskriver hvordan opgaven udføres i detaljer (mellemniveau sprog), er langt bedre, da man så kan lægge gode algorithmer ind i højniveau sproget, og designet processoren og hardwaren til, at gøre det med lavere strømforbrug. Nutidens programmeringssprog som C og C++, er ikke højnivau sprog, men mellemniveau sprog, trods de ofte kaldes højniveau sprog. De er ganske enkelt for detaljerede, og beskriver ikke problemet, men hvordan man ønsker detaljerne udført. Det medfører også, at programmørerne knokler med ligegyldige detaljer, der faktisk hører under det, som compiler, procssor, og operativsystem burde klare.

  • 0
  • 0

Når en gate i dagens teknologi skifter tilstand (og derved sletter information) løber der en ladning igennem den. Det er energien i denne ladning man gerne vil undgå at spilde.

Enig, men selv om vi kunne forestille os en teoretisk fuldstændig tabsfri logik, ville vi aldrig kunne få andet end en simpel 1:1 funktion, idet den potentielle energi (i form af f.eks. ladning eller spin) i f.eks. den logiske tilstand 1 kun kunne omdannes til en anden 1, men aldrig til 0, for energi kan ikke forsvinde, og uden varmetab, vil den kun kunne blive til kinetisk energi (strøm), der så igen vil blive til én og kun én 1'er. Vi kan altså realisere en reversibel inverter, som netop også omtales i den citerede artikel, hvor energien flyttes fra den ene side til den anden, men heller ikke andet. Så snart vi skal skifte tilstand permanent til 0, må energien i 1 gå tabt med mindre vi kan finde et sted at opbevare den, og skal vi have flere 1'ere ud, må der tilføres energi.

Prøv at forestil dig, at du har en spole, der har sat den ene ende til 0.5V. På den anden ende, har du en 100% ideel diode, som du selv kan bestemme, hvordan du vender med en kontakt. Efter den vendbare diode, har du din kapacitet. De 0.5V kan du afkoble med en kapacitet, og initialisere til 0.5V.

  • 0
  • 0

Vi kan altså realisere en reversibel inverter, som netop også omtales i den citerede artikel, hvor energien flyttes fra den ene side til den anden, men heller ikke andet. Så snart vi skal skifte tilstand permanent til 0, må energien i 1 gå tabt med mindre vi kan finde et sted at opbevare den, og skal vi have flere 1'ere ud, må der tilføres energi.

Ja! Det er lige præcis det man arbejder på, altså at opbevare og genbruge energien.

Mvh. Peter

  • 0
  • 0

Prøv at forestil dig, at du har en spole, der har sat den ene ende til 0.5V. På den anden ende, har du en 100% ideel diode, som du selv kan bestemme, hvordan du vender med en kontakt. Efter den vendbare diode, har du din kapacitet. De 0.5V kan du afkoble med en kapacitet, og initialisere til 0.5V.

Prøv at forestille dig at du skal realisere 1.000.000.000 eller flere gates, som i dagen Intel processorer, med spoler og dioder. Så er vi vist tilbage til de tider hvor en computer var på størrelse med et hus.

Ideelle dioder findes ikke! Man realiserer ind imellem aktive dioder i power elektronik for at spare energi. Men her er der tale om mosfets med tilhørende drivere, crossover detektor og logik. Ikke brugbart i en CPU.

Du kan heller ikke løse et fysisk problem i CPU'en med software. Hardware problemer løses bedst i hardware.

Mvh. Peter

  • 0
  • 0

[quote]Vi kan altså realisere en reversibel inverter, som netop også omtales i den citerede artikel, hvor energien flyttes fra den ene side til den anden, men heller ikke andet. Så snart vi skal skifte tilstand permanent til 0, må energien i 1 gå tabt med mindre vi kan finde et sted at opbevare den, og skal vi have flere 1'ere ud, må der tilføres energi.

Ja! Det er lige præcis det man arbejder på, altså at opbevare og genbruge energien.

Mvh. Peter[/quote]

Ja, men hvordan genbruges energien bedst muligt?

Den teoretisk fuldstændig tabsfri computer må nødvendigvis have et konstant antal 1'ere. Så er det fuldstændig lige gyldigt, om den regner frem eller tilbage. For at sikre et konstant antal 1'ere, kan vi scramble alle data; men vi har stadig det problem, at det er ualmindelig svært at overføre energi fra én celle til andet end nabocellerne eller til forsyningsspændingen og begge dele kræver tilstedeværelse af en selvinduktion eller transmissionslinie til at opbevare den kinetiske energi i skifteøjeblikket. Ellers bliver 01 ikke til 10, men til ½½.

Jeg vil ikke afvise, at man kan lave en logik, der ved skift fra f.eks. 0 til 1 absorberer energi fra forsyningsspændingen og leverer den tilbage til forsyningsspændingen igen ved skift fra 1 til 0. Det vil være langt mere effektivt og realiserbart end at prøve at regne baglæns; men det kræver stadig medvirken af én eller anden form for selvinduktion eller transmissionslinie og desuden nogle ideelle dioder til at forhindre energien i at løbe tilbage igen.

  • 0
  • 0

Jeg kan godt forstå ideen med at minimere midlertidige resultater (state), som i princippet er irrelevant og spild. Men om et program køres fremad eller tilbage (IP'en inkrementeres eller dekrementers) er vel irrelevant i forhold til den afsatte effekt? En XOR operation koster det samme ligegyldigt om den foretages på 0 eller 1.

Bevares, man slipper for at skrive en decrypt(...) til sin crypt(...), men er det ikke de færreste scenarier hvor man har fordel af at kunne køre algoritmer baglæns?

  • 0
  • 0

Prøv at forestille dig at du skal realisere 1.000.000.000 eller flere gates, som i dagen Intel processorer, med spoler og dioder. Så er vi vist tilbage til de tider hvor en computer var på størrelse med et hus.

Ideelle dioder findes ikke! Man realiserer ind imellem aktive dioder i power elektronik for at spare energi. Men her er der tale om mosfets med tilhørende drivere, crossover detektor og logik. Ikke brugbart i en CPU.

Du kan heller ikke løse et fysisk problem i CPU'en med software. Hardware problemer løses bedst i hardware.

Mvh. Peter

  1. Man vil aldrig bruge en spole per gate. Eneste sted, hvor den slags kunne være relevant, er ved superledning, da at ledningerne her, ikke er at betragte som modstande, men som spoler.

Det, som er relevant, er at bruge en spole nogle ganske få steder - typisk til global klok, og måske, en enkelt spole til at vende udgangssignaler. Du kan godt bruge en spole, til at vende flere signaler, men skiftet bliver derved langsommere, da din kapacitet for flere udgange er større.

  1. Det er korrekt, at en diode ikke er ideel. Derfor, er der stadigt tab. Du kan ikke lave en tabsfri computer. Trods det, så kan det i nogle tilfælde betale sig, at bruge spoler, hvis du driver større load.

  2. Jeg kan sagtens løse fysiske problemer i computeren med software. Og det er fremtiden. En dynamisk compiler, er langt bedre, til at løse hardware problemer, end hardware. Årsagen er, at der ikke kræves så mange transistorer, til en software baseret løsning, og at du nemmere kan modificere og ændre den. Softwaredelen står for flere ting: Analyse af maskinkoden, før den udføres. Tilpasning til arkitektur. Og arkitekturen laves så den er mest ideel. Det er muligt, at automatisk fjerne unødige indstruktioner, og optimere kode. Det er muligt, at oversætte til anden arkitektur, herunder opdele koden, til flere processer. Fordelene er store, blandt andet et langt mindre forbrug, end ved en hardware baseret løsning. Intel anvender en hardware baseret løsning, fordi deres CISC arkitektur, ikke lader sig implementere særligt godt i hardware. Derfor har man en RISC til CISC oversætter på CPU'en. Denne bruger plads - en software baseret løsning, bruger ingen hardware komponenter. Og den kan klare langt mere komplicerede analyser end den hardware baserede.

En software baseret løsning, fungerer ved en dynamisk compiler, der lægges ind imellem processorens virtuelle indstruktionssæt, og den reelle fysiske arkitektur. En simpel en, kan oversætte indstruktionerne fra CISC til RISC. Normalt, kræver den meget lidt processorkraft, fordi den oversatte kode gemmes i ram, og normalt kun oversættes éen gang. Dette giver en væsentligt bedre ydelse, i forhold til strømforbrug, end for Intels, hvor hver indstruktion oversættes, for hver gang de udføres.

  • 0
  • 0

Jeg kan godt forstå ideen med at minimere midlertidige resultater (state), som i princippet er irrelevant og spild. Men om et program køres fremad eller tilbage (IP'en inkrementeres eller dekrementers) er vel irrelevant i forhold til den afsatte effekt? En XOR operation koster det samme ligegyldigt om den foretages på 0 eller 1.

Bevares, man slipper for at skrive en decrypt(...) til sin crypt(...), men er det ikke de færreste scenarier hvor man har fordel af at kunne køre algoritmer baglæns?

Meningen er ikke at man vil køre baglæns. Meningen er at bare det at gatene kan gøre det er nok til at reducere effektforbruget. Prøv at se på teorien bag.

Mvh. peter

  • 0
  • 0

Som tidligere nævnt, kan en inverter laves, bare ved at bytte to ledninger. Dette giver også mindre forsinkelse, og ofte laves hardwaren, således der køres med såvel normal, som negeret logik. Derved undgås invertere. Det muliggør også, at man kan se, hvornår en beregning er afsluttet, og derved kan computerhastigheden speedes øges.

Så længe, at du kun bytter ledninger, så bruges ikke energi. Men switche mv. for at indkode et ombytteri i hardware, kan nemt øge energiforbruget, dels på grund af øget kapacitet, og øget modstand.

Ombytning i data, vil ofte også kunne løses af en dynamisk compiler, der lægges ind før processoren udfører indstruktionerne. Og dermed reduceres bort.

En dynamisk compiler, kan i nogle tilfælde, også spore gentagne beregninger. Hvis du som eksempel har et regneark, hvor alle felter udregnes ved tryk på CALC, eller når et felt ændres, så kan en dynamisk oversætter, ændre programmet til at blive eventdrevet, og kun de felter, der kræver genberegning udføres.

I nogle tilfælde, kan den også reducerer fortolkere bort. Dette betyder både, at fortolkere kører ligeså hurtig som compilere, og at der bruges mindre energi. Netop denne facilitet, gør at det er nemmere, at emulere f.eks. en PC's indstruktionssæt, da man ganske enkelt laver en fortolker, der fortolker PC'ens kode. Den dynamiske oversætter, analyserer koden, og fjerner fortolkningen, så det kører som var det oversat direkte til arkitekturen. Derfor øges kompatibiliteten, da nye arkitekturer bare lægges ind, i en softwarefortolker, og samtidigt bliver det ligeså hurtigt, som hvis det var oversat til hardware.

I nogle tilfælde, kan dynamiske compilere, endog tage arkiktekturer som FPGA arrays i brug, til løsning af opgaverne. Og, de kan dele opgaverne ud, på flere processorer, mens at opgaverne udføres. Det betyder, at indmaden i en løkke, som først kendes under udførslen af koden, bliver muligt at parallelisere ud på mange CPU'er, selvom løkken ikke kan udføres statisk, når programmet oversættes. Så snart, at tilstrækkelige informationer kendes, til at løkken kan udfoldes og paralleliseres, så kan den dels deles op i flere løkker hvis den indeholder flere uafhængige dele, og den kan paralleliseres, til et stort antal processorer.

Det er stort set umuligt, at opnå tilsvarende funktionaliteter i hardware. Det tætteste man kommer på realiseringer, er at indbygge en særlig CPU til opgaven, der gør det samme. Men, da den tid, som tages fra CPU'en, ved at klare opgaven, er minimal, så kan det ikke betale sig, at lave processorer decideret til formålet. Langt bedre, er at sætte flere ALU'er på processoren, så den får flere kerner. Det gør processoren mere fleksibel, og kernerne kan bruges såvel af den dynamiske oversætter, som til beregninger. Hvis du begynder at specificere, at en del af CPU'en, kun må bruges til et bestemt formål, så risikeres, at en del af din processorkraft, ikke kan bruges optimalt. Dog, betyder det ikke knoget for strømforbruget.

  • 0
  • 0

@Jens Madsen:

Jeg har meget svært ved at se nogen som helt anvendelse af spoler i en CPU. I strømforsyningen ja, i CPU nej.

Global clock bruger meget lidt effekt, der er ikke noget at hente her. Det er CMOS gates som står for det meste af effektforbruget. Så det er også der der kan gøres noget. Du kan optimere i software (det gøres allerede), men det er hardware som bruger energien. Og hvis du vil optimere helt i bund er der ingen højniveau optimizer som bare er i nærheden af en god assembler programmør. Som til gengæld er dyr i drift.

I øvrigt: jeg tror ikke rigtigt at du ved hvordan en Intel CPU arbejder. Den oversætter IKKE instruktionerne, de sættes i pipeline og vil normalt blive udført i en enkelt clock cycle. Dertil kommer parallelle processorkerner. At en RISC processor ofte er mere energi-effektiv er en anden sag.

Jeg arbejder selv lidt med AVR processorer som er RISC baserede. Der er udført udelukkende i CMOS og er fuldt statiske, dvs. at der ikke er nogen nedre grænse for clockfrekvens. Deres effektforbrug er næsten perfekt lineært proportionalt med frekvensen.

Mvh. Peter

  • 0
  • 0

I øvrigt: jeg tror ikke rigtigt at du ved hvordan en Intel CPU arbejder. Den oversætter IKKE instruktionerne, de sættes i pipeline og vil normalt blive udført i en enkelt clock cycle. Dertil kommer parallelle processorkerner. At en RISC processor ofte er mere energi-effektiv er en anden sag.

Intel har for længst opgivet CISC arkitekturen, og deres processorer har i mange år, været RISC processorer, som der lægges en CISC til RISC oversætter foran. Det betyder også, at den inderste cache fungerer med RISC indstruktionssættet.

Så vidt jeg husker, var NexGen de første til at bruge CISC-RISC oversætter i forbindelse med PC-arkitekturer. Herfra, gik den til AMD. Og senere, begyndte Intel, at bruge samme metode, da de omsider indså, at RISC var hurtigere. Det var ganske enkelt eneste mulighed, for at kunne opnå ligeså høj hastighed som AMD.

Intels oversætter, er dog meget slavisk, og udfører ikke noget "intelligent". Det er alene et spørgsmål om, at få den komplekse indstruktionsdekodning flyttet bort fra den inderste del af kernen. Den laver ikke "magi" på kode.

  • 0
  • 0

Jeg har meget svært ved at se nogen som helt anvendelse af spoler i en CPU. I strømforsyningen ja, i CPU nej.

Problemet er, at uden spoler - ingen energigenvinding, hvis energien er oplagret i form af et elektrostatisk felt.

For at flytte energi tabsfrit fra ét sted til et andet, må man foretage en skiftevis omdannelse mellem potentiel energi og kinetisk energi. Hvis energien er oplagret i en kondensator, skal man altså bruge en spole som mellemlager for den kinetiske energi. Omvendt hvis energien er lagret i form af et magnetfelt, skal man bruge en kondensator som mellemlager. Det er ren fysik og har for så vidt intet specielt med computerteknik at gøre. Selv Einsteins berømte formel E=mc2 er bare et udtryk for en reversibel omdannelse mellem potentiel energi = masse (E) og kinetisk energi (mc2).

En moderne computer er ren statisk, og her gør man alt, hvad man kan for at reducere kapaciteterne mest muligt, da de reducerer skiftetiderne. Den eneste energi, forskerne kan genvinde, er derfor den absolut minimale energi i form af ½CU^2, som er opbevaret i gate- og drain-kapaciteter - altså som et elektrostatisk felt = potentiel energi. Den oplagrede energi har absolut intet med kTln2 at gøre, som det ellers fremgår af artiklen:

Den første beskrivelse af sammenhængen mellem information og energi går dog tilbage til 1929, hvor Leo Szilárd beskrev, at det er muligt at omdanne en informationsmængde på en bit til en energimængde på kTln2, hvor k er Boltzmanns konstant, og T er temperaturen.

Eneste sted hvor kT*ln2 kommer ind i billedet er selvfølgelig, at hvis energien i en bit er mindre end den termiske støj, bliver det umuligt at skelne mellem 0 og 1; men det er vist ikke den store nyhed.

  • 0
  • 0

En moderne computer er ren statisk, og her gør man alt, hvad man kan for at reducere kapaciteterne mest muligt, da de reducerer skiftetiderne.

Der skulle naturligvis have stået: "... forøger skiftetiderne" eller "... reducerer hastigheden".

  • 0
  • 0

Eneste sted hvor kT*ln2 kommer ind i billedet er selvfølgelig, at hvis energien i en bit er mindre end den termiske støj, bliver det umuligt at skelne mellem 0 og 1; men det er vist ikke den store nyhed.

Ja - og mest effektivt, er vel, at lade computeren forsynes af termisk støj.

Termodynamikken sætter en grænse for, hvor effektiv en diode kan laves, så selvom vi kan genindvinde energien (teoretisk) med en spole, og ved at undgå tab i ledningerne (superledning), så er ikke muligt, at helt undgå et tab.

  • 0
  • 0

Så vidt jeg husker, var NexGen de første til at bruge CISC-RISC oversætter i forbindelse med PC-arkitekturer. Herfra, gik den til AMD. Og senere, begyndte Intel, at bruge samme metode, da de omsider indså, at RISC var hurtigere. Det var ganske enkelt eneste mulighed, for at kunne opnå ligeså høj hastighed som AMD.

Jeg er desværre gammel nok til at huske, at den første consumer RISC chip, var Intel's Pentium Pro tilbage i 1995 (kostede en bondegård). De første mainstream varianter kom et par år efter, med AMD's K6 og Pentium II.

  • 0
  • 0

Så er det godt det er en der kan huske lidt bedre og lidt længere tilbage end 1995. For det første, så var Pentium Pro overhovet ikke en RISC processor, men RISC "like" der dekodede instruktioner til 118 bit micro-ops. PowerPC, lavet af Apple-IBM-Motorola er derimod ægte RISK arkitektur til consumer markedet. Den kom frem i 1990 eller 1991 og kørte f.eks på de første Macintosh PowerPC computere.

  • 0
  • 0

Så kan sådan en baglæns regnene maskine måske endelig finde svaret til 42!?

Det er vel ikke svaret til 42 man skal finde, men spørgsmålet? Svaret er 42.

  • 0
  • 0

[quote]Så kan sådan en baglæns regnene maskine måske endelig finde svaret til 42!?

Det er vel ikke svaret til 42 man skal finde, men spørgsmålet? Svaret er 42.[/quote] Normalt har du et program, som giver 42. Imidlertid, regner programmet også masser af andet ud, end netop dette resultat. Tallet 42, er måske et resultat, af en mindre beregning, som er gemt et eller andet sted i koden, og til sidst skrives ud. Sammen med en masse andet snask.

Det du kan, er at sætte markøren på feltet, hvor 42 skrives ud. Nu er det muligt, at gå baglands i programmet. Dette kræver en smule anden maskinkode, for at opnå dette, da jumps skal pege i begge retninger. Der skal således være en jump, både hvor du hopper hen, og tilbage hvorfra du hoppede til. Samme ved branches. Der skal som normalt, være en branch i toppen af en betinget kode, men også være en i bunden, så du hvis du kender resultatet af betingelsen, kan gå den rette vej tilbage igennem løkken. Det muliggør, at programmet kan "køres" baglands. Og ikke mindst, så får du kun udregnet de ting, som du ønsker. Altså, hvis du peger med musen på feltet, hvor der printes 42 af programmet, så vil computeren spore det, som ændrer de pågældende pixels baglands, og kun udføre det, der udskriver 42, incl. det som sætter de pågældende pixels. Du kan øge prioriteten i koden på den måde, afhængigt af, hvad brugeren foretager sig, f.eks. øge prioriteten, omkring hvor musen er.

Desværre, så viser det sig, at det er lidt hardwaretungt, at lave en computer der kører alt baglands. Det er blevet forsøgt, men med et resultat, der var langsommere end en sædvanlig computer. Det, som kan betale sig, er at spore hvilke indstruktioner der udføres baglands, og prioritere indstruktionerne, hvorefter indstruktionerne reelt udføres forlands. Dette muliggør, at computerne føles hurtigere, fordi at de processer, som ikke betyder noget for brugeren, automatisk skubbes i baggrunden. Hvis du opstarter en Windows computer, så vil skærmbilledet dukke op med det samme, og alt det med initialisering springes over. For programmet køres baglands, og det vil sige, at skærmbilledet bare klaskes op. Alt andet, har lavere prioritet. Udfører brugeren noget, så øges prioriteten automatisk, af det som brugeren udfører. F.eks. vil prioriteten øges af indlæsning af printerdriveren, på det tidspunkt, at brugeren anvender den. Eller, hvis brugeren forsøger at kommunikere med floppy, eller USB, så vil indlæsningen af disse drivere opprioriteres, når brugeren forsøger at bruge dem. Ledige computerresourcer, vil også bruges, til de ting, der har lavere prioritet, men udførsel "baglands" medfører at computeren starter hurtigt op, og fungerer hurtigere. Der vil normalt ikke være de sædvanlige ventetider, fordi at et eller andet spærrer udførslen, med mindre at dette er væsentligt, for det som ønskes udført.

Ved parallelisering, er udførsel "baglands" og fornuftig prioritering i koden også væsentligt. Årsagen er, at der ofte vil være steder, hvor der er et problem, som umuliggør parallelisering. Det tal, du mangler, for at kunne paralleliserere, er måske tallet "42". Og ved at udføre koden baglands, så er muligt at få svaret 42 hurtigt, og kunne parallelisere hurtigere, og derved få gang i de parallele resourcer, uden de blokerer.

Ingen tvivl om, at udførsel af koden baglands er fremtiden...

Ireversibel kode, er noget andet. Og jeg tror kun på, at ireversibel kode, reelt har fremtid, hvor det er egnet til opgaven. Dette er i meget få tilfælde, så det vil ikke kunne betale sig, at udvikle hardware, der giver specielle fordele ved ireversibel kodning. At lave computere, der f.eks. har mindre varmetab, ved tilfælde hvor der kan anvendes ireversibel kodning, giver ingen mening. Og, det viser sig, at ireversibel kode, også i mange tilfælde, lader sig optimere bort af software. Og det bedste valg, er derfor, at lade computerens compiler tygge lidt på koden, og få den optimeret bort. Der kræves ikke hardware for det.

Hvis computeren forsynes med en selvoptimerende dynamisk oversætter, der globalt kommunikerer med andre computere, for at løse opgaverne, så kan man i nogle tilfælde opnå, at de ved kommunikation kan optimere krypteringer bort.

Netop dette, er faktisk betragtet som "et problem", og gør at man i visse tilfælde, ikke ønsker intelligente computere. En intelligent computer, vil i princippet søge, at opnå kontakt til andre computere, så de i fællesskab kan udveksle erfaringer og optimeringsmetoder, der muliggør at de kan optimere koden hurtigere, og derved opnå større udførselshastighed. Dette kan medføre, at du kan udregne koder og krypteringer, der er meget mere sikre, og væsentligt bedre end idag, da de intelligente computere i netværket arbejder sammen om at gøre det. Problemet er imidlertid også, at du ikke kun får øgede computerresourcer, ved at sætte din computer til netstikket og "skyen", men du får også en sikkerhedsrisiko, fordi at computerne i fællesskab bryder koden. Endog med hjælp fra dem, der har dannet koden. Har de udregnet, en metode, eller et primtal, der kan bruges som erfaringsgrundlag, for at løse opgaven, så vil intelligente computere, der arbejder på et fælles netværk, udveksle disse koder og informationer, således de andre computere, kommer hurtigere igennem de opgaver, som de løser.

Du vil også se, at computere der får en opgave, som andre computere tidligere har løst, vil kunne løse opgaven hurtigere. Funktionsmæssigt, virker de som normale computere, med normalt software. Men den tid, som det tager at udføre et program, kan afhænge af, hvad andre computere har opnået som erfaringsgrundlag, de denne udveksles. Et program, på din computer, der har været kørt tidligere, på en anden computer - eller bare det, at opgaver der har lignet, er blevet løst tidligere, medfører at din computer gør det hurtigere, hvis den har intelligens.

  • 0
  • 0
Bidrag med din viden – log ind og deltag i debatten