Von Neumann-arkitekturen

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

von Neumann-arkitekturen är grunden för den uppbyggnad av datorer som har varit standard sedan 1940-talet. Den är uppkallad efter matematikern John von Neumann, men flera andra forskare var med och utvecklade principerna. John von Neumann delade in datorn i fyra huvuddelar, nämligen (med moderna termer):

Detta var inget nytt - samma delar ingår i alla datorer, inklusive Charles Babbages differensmaskin, som är hundra år äldre. Mer specifikt är att von Neumann-arkitekturen har

  • ett gemensamt minne för programinstruktioner och data. Vad som är vad avgörs av sammanhanget.

Ett annat kännetecken för von Neumann-arkitekturen är att

Programinstruktionerna verkställs en i taget, data och instruktioner hämtas från minnet ett i taget. Under 1940-talet fanns en konkurrerande arkitektur, baserad på Alan Turings principer, som tydligt skiljer mellan instruktioner och data. Det har gjorts många försök att utveckla nya arkitekturer. Främst gäller det att komma ifrån "von Neumann-flaskhalsen", den sekventiella inläsningen av data från minnet. (von Neumann insåg fördelarna med parallell databehandling, men ansåg att det skulle bli för besvärligt att genomföra.) Principen om gemensamt minne har också ifrågasatts, eftersom alla programspråk tydligt skiljer mellan data och instruktioner. von Neumann-arkitekturen tillåter att man skriver program som förändrar sin egen programkod, men den möjligheten uttnyttjas vanligtvis inte. Å andra sidan är samma princip en förutsättning för något som alla moderna datorer använder sig av dagligen: ett program kan skapa ett annat program och lagra det i minnet.

I en modern dator är oftast de centrala delarna av datorn: aritmetikenheten och styrenheten samlad i ett chip i form av en processor (CPU). Det kan också nämnas att i allmänhet har processorn cacheminnen, och att i alla fall vissa nivåer av dessa ofta skiljer mellan data och instruktioner. Instruktionscachen kan, i princip, inte acceptera skrivning. Kodförändringar innebär i stället att delar av cachen töms och att det ändrade innehållet läses tillbaka från datacache eller primärminnet. I vissa datorarkitekturer krävs till och med en speciell instruktion för att meddela processorn att instruktionscachen kan behöva uppdateras.

Personliga verktyg