Historiskt sett har det funnits två typer av datorer:
- Datorer med fasta program – Deras funktion är mycket specifik och de kan inte programmeras, t.ex. miniräknare.
- Datorer med lagrade program – Dessa kan programmeras för att utföra många olika uppgifter, program lagras på dem, därav namnet.
De moderna datorerna bygger på ett koncept med lagrade program som introducerades av John Von Neumann. I detta koncept med lagrade program lagras program och data i en separat lagringsenhet som kallas minnen och behandlas på samma sätt. Denna nya idé innebar att en dator byggd med denna arkitektur skulle vara mycket lättare att programmera om.
Den grundläggande strukturen ser ut på följande sätt:
Den kallas också IAS-dator och har tre grundläggande enheter:
- Centralprocessor (CPU)
- Huvudminnesenhet
- Inmatnings-/utmatningsenhet
Låtsas oss betrakta dem i detalj.
- Styrenhet –
En styrenhet (CU) hanterar alla processorkontrollsignaler. Den styr allt in- och utdataflöde, hämtar kod för instruktioner och kontrollerar hur data rör sig i systemet.
- Aritmetisk och logisk enhet (ALU) –
Den aritmetiska logikenheten är den del av processorn som hanterar alla beräkningar som processorn kan behöva, t.ex. addition, subtraktion och jämförelser. Den utför logiska operationer, bitskiftesoperationer och aritmetiska operationer.
Figur – Grundläggande CPU-struktur, som illustrerar ALU - Huvudminnesenhet (register) –
- Ackumulator:
- Programräknare (PC): Lagrar resultaten av de beräkningar som görs av ALU:
- : Håller reda på minnesplatsen för nästa instruktioner som ska behandlas. PC:n skickar sedan denna nästa adress till Memory Address Register (MAR).
- Memory Address Register (MAR): Det lagrar minnesplatserna för instruktioner som måste hämtas från minnet eller lagras i minnet.
- Memory Data Register (MDR): Det lagrar instruktioner som hämtas från minnet eller data som ska överföras till och lagras i minnet.
- Current Instruction Register (CIR): Det lagrar instruktioner som hämtas från minnet eller data som ska överföras till och lagras i minnet: Det lagrar de senast hämtade instruktionerna medan de väntar på att kodas och exekveras.
- Instruction Buffer Register (IBR): Instruktion som inte ska exekveras omedelbart placeras i instruktionsbufferregistret IBR.
- Inmatnings-/utmatningsenheter – Program eller data läses in i huvudminnet från inmatningsenheten eller sekundär lagringsenhet under kontroll av CPU:s inmatningsinstruktion. Utmatningsenheter används för att mata ut informationen från en dator. Om vissa resultat utvärderas av datorn och lagras i datorn kan vi med hjälp av utdataenheter presentera dem för användaren.
- Bussar – Data överförs från en del av datorn till en annan, genom att alla viktiga interna komponenter ansluts till processorn och minnet, med hjälp av bussar. Typer:
- Databuss: Den överför data mellan minnesenheten, I/O-enheterna och processorn.
- Adressbuss: Den överför datans adress (inte själva datan) mellan minnet och processorn.
- Kontrollbuss: Den överför styrkommandon från CPU:n (och statussignaler från andra enheter) för att styra och samordna all verksamhet inom datorn.
Von Neumann flaskhals –
Vad vi än gör för att öka prestandan kan vi inte komma ifrån det faktum att instruktionerna endast kan göras en åt gången och endast kan utföras sekventiellt. Båda dessa faktorer håller tillbaka processorns kompetens. Detta brukar kallas ”Von Neumann-flaskhalsen”. Vi kan förse en Von Neumann-processor med mer cacheminne, mer RAM-minne eller snabbare komponenter, men om ursprungliga vinster ska göras i CPU-prestanda måste en inflytelserik inspektion ske av CPU-konfigurationen.
Denna arkitektur är mycket viktig och används i våra datorer och till och med i superdatorer.