Onwetend
Artikelen: 0
Berichten: 306
Lid geworden op: za 27 mar 2010, 12:53

Computer rekenmethode

Goedemiddag,

ik heb een vrij simpele vraag. Hoe rekent een computer? oftewel hoe voert een computer zijn berekeningen uit.

bijvoorbeeld bij een som met betrekking tot producten.

als je 3 x 4 invoert in de computer, doet de computer dan 4 + 4 + 4 = 1+1+1+1 + 1+1+1+1 + 1+1+1+1? of gebruikt een computer een andere logica?

maw: is een computer langer bezig met de som 100/10 dan de som 10/1?
Gebruikersavatar
In physics I trust
Artikelen: 0
Berichten: 7.390
Lid geworden op: za 31 jan 2009, 08:09

Re: Computer rekenmethode

Kan je hier al iets mee?
"C++ : Where friends have access to your private members." Gavin Russell Baker.
Onwetend
Artikelen: 0
Berichten: 306
Lid geworden op: za 27 mar 2010, 12:53

Re: Computer rekenmethode

Iets, maar nog niet voldoende.

ten eerste vraag ik me af hoe een computer de invoer van de gebruiker dan omzet naar een binair-getal. hoe weet een computer dat 64=binair1000000? is dit van te voren al ingesteld? dat lijkt mij toch niet, omdat er dan een bovengrens zou moeten zitten aan de rekencapaciteit van de computer.

ten tweede vraag ik me af: hoe telt de computer de 1-en en 0-en bij elkaar op? doet hij dit door de stroompjes te tellen?

eigenlijk is het antwoord dat ik zoek ook niet helemaal het juiste antwoord op de vraag die ik stelde. ik ben voornamelijk geinterreseerd in het antwoord op de 2e vraag, namelijk:

is voor een computer 10*6 sneller uitgerekend dan 10*60?
Gebruikersavatar
317070
Artikelen: 0
Berichten: 5.609
Lid geworden op: za 28 feb 2009, 17:05

Re: Computer rekenmethode

Onwetend schreef:ik heb een vrij simpele vraag. Hoe rekent een computer? oftewel hoe voert een computer zijn berekeningen uit.

bijvoorbeeld bij een som met betrekking tot producten.

als je 3 x 4 invoert in de computer, doet de computer dan 4 + 4 + 4 = 1+1+1+1 + 1+1+1+1 + 1+1+1+1? of gebruikt een computer een andere logica?

maw: is een computer langer bezig met de som 100/10 dan de som 10/1?
Over het algemeen kunnen alle computers direct optellen, aftrekken, vermenigvuldigen en delen. Dus zonder het te splitsen in eenvoudigere berekeningen. Over het algemeen wordt bijvoorbeeld worteltrekken en machten wel gesplitst in eenvoudigere berekeningen en zijn er meerdere instructies nodig om ze uit te voeren.

Maar eigenlijk is hier geen lijn in te trekken. Zo zijn er computers die in 1 instructie matrixberekeningen kunnen uitvoeren en zijn er die dat niet kunnen. Hetzelfde met bijvoorbeeld de FFT en vele andere formules. Het hangt er allemaal van af of je een geluidskaart/grafische kaart/media accelerator/... in je computer steken hebt of niet.

Moest je geïnteresseerd zijn in de details, moet je hier eens kijken. Er bestaan veel verschillende instructiesets, waarvan SSE de belangrijkste is/was. Tegenwoordig worden soms om erg gespecialiseerde redenen sommige functies toch als 1 instructie in de processor gestoken. Bijvoorbeeld de MPSADBW instructie, die de berekening (|x0−y0|+|x1−y1|+|x2−y2|+|x3−y3|, |x0−y1|+|x1−y2|+|x2−y3|+|x3−y4|, …, |x0−y7|+|x1−y8|+|x2−y9|+|x3−y10|) in 1 keer kan maken. Op het eerste gezicht vrij nutteloos, ware het niet dat de instructie erg nuttig is om mpeg4 videos af te spelen...
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-
Gebruikersavatar
317070
Artikelen: 0
Berichten: 5.609
Lid geworden op: za 28 feb 2009, 17:05

Re: Computer rekenmethode

Berichten kruisten elkaar.
ten eerste vraag ik me af hoe een computer de invoer van de gebruiker dan omzet naar een binair-getal. hoe weet een computer dat 64=binair1000000? is dit van te voren al ingesteld? dat lijkt mij toch niet, omdat er dan een bovengrens zou moeten zitten aan de rekencapaciteit van de computer.
Dat is van te voren ingesteld. Berekeningen met een 64bit processor zijn standaard in 64bit getallen. Als je berekeningen met grotere getallen wil maken, dan moet je die berekening opsplitsen in kleinere getallen in je software. Je hardware ligt al vast.
ten tweede vraag ik me af: hoe telt de computer de 1-en en 0-en bij elkaar op? doet hij dit door de stroompjes te tellen?
Dat is elektronica. Je computer vereenvoudigt alles tot het niveau van niet-poorten, en-poorten en of-poorten, daarmee kun je alle bewerkingen uitvoeren die je wilt uitvoeren. Maar dit is
is voor een computer 10*6 sneller uitgerekend dan 10*60?
Nee, beide duren exact even lang, voor een (geklokte) computer maakt dit niet uit. De processor werkt aan de snelheid van de klok, en dus duren ingewikkelde instructies even lang als eenvoudige.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-
Gebruikersavatar
In physics I trust
Artikelen: 0
Berichten: 7.390
Lid geworden op: za 31 jan 2009, 08:09

Re: Computer rekenmethode

Wow, van dat laatste was ik niet op de hoogte. Dit is een erg interessante pagina; ik vraag me af op welk niveau de code die er wordt getoond, wordt uitgevoerd?
"C++ : Where friends have access to your private members." Gavin Russell Baker.
Gebruikersavatar
317070
Artikelen: 0
Berichten: 5.609
Lid geworden op: za 28 feb 2009, 17:05

Re: Computer rekenmethode

Wow, van dat laatste was ik niet op de hoogte. Dit is een erg interessante pagina; ik vraag me af op welk niveau de code die er wordt getoond, wordt uitgevoerd?
Opnieuw, daar is geen lijn in te trekken. Sommige instructies worden ook echt in 1 klokslag in pure hardware uitgevoerd, sommige processoren gebruiken microcode om een instructie uit te voeren. Dat is een erg lage programmeertaal (nog onder binaire machinecode!) en pokkemoeilijk om te programmeren (maar wel leuk als je het eindelijk werkend krijgt ;) )

Maar dat zijn dus de instructies die je in assembler zou schrijven en worden (vrijwel) rechtstreeks ook zo in hardware uitgevoerd.

Maar dat is allemaal erg geavanceerd. Ik denk dat de topicstarter er meer aan heeft als ik bij de oppervlakkige uitleg blijf? Want vrijwel alle uitleg die je gaat vinden en gemakkelijk kunt begrijpen gaat over hoe ze processoren in de jaren '70 maakten, nu zijn we 40 jaar verder en alles is zo hard geoptimaliseerd en verbeterd dat het erg moeilijk is om nog precies te begrijpen hoe de berekening gebeurt en hoe lang die nu exact duurt. Bijna mijn volledige opleiding de afgelopen 3 jaar gaat daar over en ik ken nog steeds alleen maar de 'basis'.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Computer rekenmethode

Poging tot eenvoudigere uitleg:

De software waarmee je werkt doet normaal de vertaling tussen binair en decimaal zodat de gebruiker daar niet mee bezig moet zijn.

De binaire vorm kan doorgegeven worden met 1 elektrische draad per bit en daar staat dan een hoge spanning of een lage spanning op die de 1 of 0 aangeeft.

Die draden met de bits komen dan binnen in een (of meer) ALU, waar er dan gerekend kan worden. De klok in de CPU zorgt dat de waarden doorschuiven.

Maar dat is zowat het laagste niveau waar je op kan werken en zoals 317070 al aangeeft wordt dat de laatste jaren moeilijker en moeilijker om nog te snappen wat er daar gebeurt.

Terug naar “Informatica en programmeren”