Historisk set har der været 2 typer computere:
- Computere med fast program – Deres funktion er meget specifik, og de kunne ikke programmeres, f.eks. lommeregnere.
- Computere med lagrede programmer – De kan programmeres til at udføre mange forskellige opgaver, programmer er gemt på dem, deraf navnet.
De moderne computere er baseret på et koncept med lagrede programmer, som blev introduceret af John Von Neumann. I dette lagrede-program-koncept er programmer og data lagret i en separat lagerenhed kaldet hukommelser og behandles ens. Denne nye idé betød, at en computer, der er bygget med denne arkitektur, ville være meget lettere at omprogrammere.
Den grundlæggende struktur ser således ud:
Den er også kendt som IAS-computer og har tre grundlæggende enheder:
- Den centrale behandlingsenhed (CPU)
- Hovedhukommelsesenheden
- Input/output-enheden
Lad os se nærmere på dem.
- Kontrolenhed –
En kontrolenhed (CU) håndterer alle processorkontrolsignaler. Den styrer alle input- og outputstrømme, henter kode til instruktioner og styrer, hvordan data bevæger sig rundt i systemet.
- Aritmetisk og logisk enhed (ALU) –
Den aritmetiske logikenhed er den del af CPU’en, der håndterer alle de beregninger, som CPU’en kan have brug for, f.eks. addition, subtraktion og sammenligninger. Den udfører logiske operationer, bitforskydningsoperationer og aritmetiske operationer.
Figur – Grundlæggende CPU-struktur, der illustrerer ALU - Hovedhukommelsesenhed (registre) –
- Akkumulator: Lagrer resultaterne af de beregninger, der er foretaget af ALU.
- Programtæller (PC): Holder styr på hukommelsesplaceringen for de næste instruktioner, der skal behandles. PC’en giver derefter denne næste adresse videre til Memory Address Register (MAR).
- Memory Address Register (MAR): Det gemmer hukommelsesplaceringerne for instruktioner, der skal hentes fra hukommelsen eller gemmes i hukommelsen.
- Memory Data Register (MDR): Det gemmer instruktioner, der hentes fra hukommelsen, eller data, der skal overføres til og lagres i hukommelsen.
- Current Instruction Register (CIR): Registrerer instruktioner, der hentes fra hukommelsen, eller data, der skal overføres til og lagres i hukommelsen: Det gemmer de senest hentede instruktioner, mens det venter på at blive kodet og udført.
- Instruction Buffer Register (IBR): Dette register gemmer de senest hentede instruktioner, mens det venter på at blive kodet og udført.
- Instruction Buffer Register (IBR): Instruktionen, der ikke skal udføres med det samme, placeres i instruktionsbufferregisteret IBR.
- Input/Output-enheder – Program eller data læses ind i hovedhukommelsen fra input-enheden eller sekundært lager under kontrol af CPU-input-instruktionen. Udgangsenheder anvendes til at udsende oplysninger fra en computer. Hvis nogle resultater evalueres af computeren, og de er gemt i computeren, kan vi ved hjælp af output-enheder præsentere dem for brugeren.
- Busser – Data overføres fra en del af en computer til en anden ved hjælp af busser, der forbinder alle vigtige interne komponenter med CPU’en og hukommelsen. Typer:
- Databus: Den transporterer data mellem hukommelsesenheden, I/O-enhederne og processoren.
- Adressebus: Den transporterer dataadressen (ikke de faktiske data) mellem hukommelse og processor.
- Kontrolbus: Den transporterer kontrolkommandoer fra CPU’en (og statussignaler fra andre enheder) med henblik på at styre og koordinere alle aktiviteter i computeren.
Von Neumann-flaskehals –
Uanset hvad vi gør for at forbedre ydeevnen, kan vi ikke komme uden om det faktum, at instruktioner kun kan udføres én ad gangen og kun kan udføres sekventielt. Begge disse faktorer bremser CPU’ens kompetence. Dette kaldes almindeligvis for “Von Neumann-flaskehalsen”. Vi kan forsyne en Von Neumann-processor med mere cache, mere RAM eller hurtigere komponenter, men hvis der skal opnås originale gevinster i CPU-ydelsen, skal der foretages en indflydelsesrig inspektion af CPU-konfigurationen.
Denne arkitektur er meget vigtig og anvendes i vores pc’er og endda i supercomputere.