Springen naar inhoud

Computer rekenmethode


  • Log in om te kunnen reageren

#1

Onwetend

    Onwetend


  • >250 berichten
  • 307 berichten
  • Verbannen

Geplaatst op 05 januari 2012 - 13:45

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?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 13:50

Kan je hier al iets mee?
"C++ : Where friends have access to your private members." — Gavin Russell Baker.

#3

Onwetend

    Onwetend


  • >250 berichten
  • 307 berichten
  • Verbannen

Geplaatst op 05 januari 2012 - 14:04

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?

Veranderd door Onwetend, 05 januari 2012 - 14:05


#4

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 14:09

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-

#5

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 14:15

Berichten kruisten elkaar.
[quote name='Onwetend' post='710223' date='5 January 2012, 14:04']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.[/quote]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.


[quote name='Onwetend' post='710223' date='5 January 2012, 14:04']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?[/quote]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 Bericht bekijken
is voor een computer 10*6 sneller uitgerekend dan 10*60?[/quote]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-

#6

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 14:15

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.

#7

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 14:33

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-

#8

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 05 januari 2012 - 20:46

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.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures