GCSE Von Neumann arkitektur (14-16 år)
- En redigerbar PowerPoint-lektionspræsentation
- Redigerbare revisionshåndbøger
- En ordliste, der dækker de vigtigste terminologier i modulet
- Topic mindmaps til at visualisere de vigtigste begreber
- Udskrivbare flashcards til at hjælpe eleverne med at engagere sig aktivt i hukommelse og selvtillid-baseret repetition
- En quiz med tilhørende svarnøgle til at teste viden om og forståelse af modulet
A-Niveau Contemporary processors (16-18 år)
- En redigerbar PowerPoint-lektionspræsentation
- Editable revision handouts
- En ordliste, der dækker de vigtigste terminologier i modulet
- Topic mindmaps til at visualisere de vigtigste begreber
- Udskrivbare flashcards til at hjælpe eleverne med at engagere sig aktivt med at huske og selvtillid-baseret repetition
- En quiz med tilhørende svarnøgle til at teste viden og forståelse af modulet
Tegnet Computerarkitekturer henviser til et sæt regler, der angiver, hvordan computersoftware og hardware kombineres sammen, og hvordan de interagerer for at gøre en computer funktionel, Endvidere angiver computerarkitekturen også, hvilke teknologier computeren er i stand til at håndtere.
Computerarkitektur er en specifikation, som beskriver, hvordan software og hardware spiller sammen for at skabe en velfungerende platform.
Når en person tænker på ordet “arkitektur”, vil den menneskelige hjerne sandsynligvis tænke på samling af bygninger eller huse, desuden omfatter computerarkitektur med samme princip i tankerne opbygningen af et computersystem internt og eksternt.
Der er tre hovedkategorier inden for computerarkitektur:
- Systemdesign:
- Systemdesignet er hardwaredelene, som omfatter multiprocessorer, hukommelsescontrollere, CPU, dataprocessorer og direkte hukommelsesadgang. Systemdesignet kan anses for at være det egentlige computersystem.
- Instruktionssætarkitektur:
- Dette drejer sig om CPU’en. Den omfatter CPU’ens muligheder og funktioner, desuden omfatter den også CPU’ens dataformater, programmeringssprog og processorregistertyper og instruktioner, som anvendes af computerprogrammørerne.
- CPU’en er den del i en computer, som får et program til at køre, hvad enten det var styresystemet eller et program som Photoshop.
- Mikroarkitektur:
- Mikroarkitekturen i et system vil definere lagringselementet/datasporene, og hvordan de vil blive implementeret i instruktionssætarkitekturen, mikroarkitekturen er også ansvarlig for databehandlingen.
Alle disse vil smelte sammen i en bestemt rækkefølge for at gøre systemet funktionelt.
Hvad er von Neumann-arkitekturen?
I 1945 havde John von Neumann, der var matematiker på det tidspunkt, udforsket, at en computer kunne have en fast enkel struktur og stadig være i stand til at udføre enhver form for beregning uden ændring af hardwaren. Dette er forudsat, at computeren er programmeret korrekt med de rette instruktioner, som den kan udføre.
Von Neumanns primære fremskridt blev benævnt “conditional control transfer”, som gjorde det muligt at afbryde en programsekvens og derefter genstarte den på et hvilket som helst tidspunkt, og desuden gjorde dette fremskridt det muligt at lagre data sammen med instruktioner i samme hukommelsesenhed.
Dette var en fordel, fordi hvis man ønskede instruktioner, kunne de ændres aritmetisk på samme måde som dataene.
Von Neumann-arkitekturen beskriver en designmodel for en digital computer med lagrede programmer, der kun indeholder en enkelt behandlingsenhed og en enkelt separat lagringsstruktur, som vil indeholde både instruktioner og data.
Von Neumann-arkitekturen henviser til en arkitektur, der opbevarer både data og de programmerede instruktioner i læse-skrive RAM (Random Access Memory).
Kendetegn ved von Neumann-arkitekturen
Som nævnt ovenfor er von Neumann-arkitekturen baseret på, at programdata og instruktionsdata opbevares i den samme hukommelsesenhed. Dette kan også omtales som “stored program concept”.
Dette design anvendes stadig i den computer, der produceres i dag:
Central Processing Unit (CPU):
- CTP’en er et elektronisk kredsløb, som udfører instruktionerne i computerprogrammet.
- Cpu’en kan også omtales som en mikroprocessor eller en processor.
I CPU’en findes en ALU, CU og registrene, som beskrives nærmere nedenfor:
Control Unit:
- Kontrollerer ALU’ens, hukommelsens og ind-/udgangsenhedens funktion og instruerer dem i, hvordan de skal reagere på instruktionerne fra det program, som den netop har læst og fortolket fra hukommelsesenheden. Kontrolenheden styrer CPU’ens operationer ved at udføre følgende opgaver:
- Koordinering og styring af CPU’ens aktiviteter
- Styring af datastrømmen mellem andre komponenter og CPU’en
- Bekræftelse og accept af den næste instruktion
- Dekodning af instruktioner
- Slagring af de resulterende data tilbage i en hukommelsesenhed
Aritmetisk og logisk enhed (ALU):
- Gør det muligt at udføre logiske og aritmetiske operationer som f.eks. addition og subtraktion.
- (Logiske operatorer er: AND, OR, NOT, XOR)
Hukommelsesenhed:
- Konstituerer sig af RAM, som er opdelt og består af en adresse og dens indhold, som er i binær form.
- RAM (Random Access Memory) er en hurtig type hukommelse i modsætning til harddiske, den er også direkte tilgængelig for CPU’en.
- Eksistensen af RAM i en CPU, gør det muligt for den at fungere meget hurtigere og dermed mere effektivt.
Registre:
- En lille blok i CPU’en, der består af en højhastighedslagringshukommelsesceller, der gemmer data, før de behandles, alle logiske, aritmetiske og forskydningsoperationer finder sted her.
- Registeret består af 5 komponenter
- Programtæller (PC): Indeholder adressen på den næste instruktion, der skal udføres
- Akkumulator (AC): Indeholder adressen på den næste instruktion, der skal udføres
- : Lagringsområde, hvor logiske og aritmetiske resultater gemmes
- Memory Address Register (MAR): Indeholder adressen på en placering af de data, der skal læses fra eller skrives til
- Memory Data Register (MDR): Midlertidig lagringsplacering, der gemmer data, der er blevet læst, eller data, der stadig skal skrives
- Current Instruction Register (CIR): Område, hvor den aktuelle instruktion er ved at blive udført. Operationen er opdelt i operand og opkode.
- Operand: Indeholder data eller adressen på data (hvor operationen skal udføres)
- Opkode: Angiver typen af instruktion, der skal udføres
Busser:
- Dette er et sæt af parallelle ledninger, som forbinder komponenter (to eller flere) i CPU’en. Inden for CPU’en er der tre typer af busser, og disse er alle henvist til en systembus. De typer af busser er: Databus, kontrolbus og adressebus.
- Databus: Denne bus betegnes som en bi-direktionel bus, hvilket betyder, at “bits” kan transporteres i begge retninger. Denne bus bruges til at transportere data og instruktioner mellem processoren, hukommelsesenheden og input/output.
- Adressebus: Overfører den hukommelsesadresse, der angiver, hvor de relevante data skal sendes eller hentes fra. (Adressebussen overfører ikke data, kun adressen)
- Kontrolbus: Dette er også en tovejsbus, der bruges til at overføre “kontrolsignaler”/kommandoer fra CPU’en (og statussignaler fra andre komponenter) med henblik på at styre og koordinere alle aktiviteter i computeren.
Input/Output:
- Informationer, der overføres fra brugeren/informationer, der modtages af brugeren.
Fordele og ulemper ved von Neumann-arkitektur
Fordele | Ulemper | |
Kontrolenheden henter instruktion og data på samme måde fra én hukommelsesenhed. Dette forenkler udviklingen og designet af kontrolenheden | Parallel udførelse af programmer er ikke tilladt på grund af seriel instruktionsbehandling | |
Overstående fordel vil også betyde, at data fra hukommelsen og fra enheder tilgås på samme måde. Derfor øges effektiviteten | Der kan kun tilgås én “bus” ad gangen. Dette resulterer i, at CPU’en er ubenyttet (da den er hurtigere end en databus) Dette anses for at være von Neumann-basthalsen | |
En fordelagtig egenskab er, at programmører har kontrol over hukommelsesorganiseringen | Men at både instruktioner og data gemmes samme sted kan ses som en fordel i det hele taget. Dette kan dog resultere i, at man på grund af en fejl i et program | |
Hvis et defekt program undlader at frigive hukommelse, når de ikke har brug for den (eller er færdige med den), kan det medføre, at computeren går ned, som følge af utilstrækkelig ledig hukommelse |
Von Neumann-flaskehals
Da processorer og computere i årenes løb har haft en stigning i behandlingshastighed, og forbedringer af hukommelsen er steget i kapacitet, snarere end hastighed, havde dette resulteret i udtrykket “von Neumann-flaskehals”. Dette skyldes, at CPU’en bruger en stor del af tiden på at være inaktiv (ikke at gøre noget), mens den venter på, at data skal hentes fra hukommelsen. Uanset hvor hurtig processoren er, afhænger dette i sidste ende af overførselshastigheden, faktisk betyder det, at hvis processoren er hurtigere, betyder det blot, at den vil have en større “tomgangstid”.
Ansatser til at overvinde denne flaskehals omfatter:
- Caching:
- Data, der er lettere tilgængelige i RAM, i stedet for at blive gemt i hovedhukommelsen. Den type data, der lagres her, vil være den type data, der bruges hyppigt.
- Prefetching:
- Transport af nogle data til cache, før der anmodes om dem. Dette fremskynder adgangen i tilfælde af en anmodning om dataene.
- Multithreading:
- Håndtering af mange anmodninger på samme tid i separate tråde.
- Nye typer RAM:
- Sådan som DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory).
- Denne type RAM aktiverer output på både den faldende og den stigende flanke af systemuret, i stedet for kun den stigende flanke.
- Dette kan potentielt fordoble output.
- RAMBUS:
- Et delsystem, der forbinder RAM-controller, RAM og den bus (sti), der forbinder RAM med mikroprocessoren og de enheder i computeren, der anvender den.
- Processing in Memory (PIM):
- PIM’er integrerer en processor og hukommelse i en enkelt mikrochip.
Hvad er Harvard-arkitektur?
Harvard-arkitekturen er opkaldt efter den “Harvard Mark I”-relæbaserede computer, som var en IBM-computer på Harvard-universitetet.
Computeren lagrede instruktioner på “punched tape” (24 bits bred), desuden blev dataene lagret i elektromekaniske tællere. CPU’en i disse tidlige computersystemer indeholdt udelukkende datalageret, og den gav ikke adgang til instruktionslageret som data.
Harvard-arkitektur er en arkitekturtype, som lagrer data og instruktioner separat og derfor opdeler hukommelsesenheden.
Cpu’en i et system med Harvard-arkitektur kan hente data og instruktioner samtidig, fordi arkitekturen har separate busser til dataoverførsel og hentning af instruktioner.
Karakteristika ved Harvard-arkitektur
Både typer arkitekturer indeholder de samme komponenter, men hovedforskellen er, at i en Harvard-arkitektur kan hentning af instruktioner og dataoverførsler udføres på samme tid (samtidig) (da systemet har to busser, en til dataoverførsler og en til hentning af instruktioner).
Fordele og ulemper ved Harvard-arkitektur
Fordele | Ulemper |
Den skyldes, at instruktioner og data overføres i forskellige busser, betyder det, at der er mindre risiko for datakorruption | Den hukommelse, der er dedikeret til hver (data og instruktioner), skal afbalanceres fra producenten. For hvis der er ledig datahukommelse, kan den ikke bruges til instruktioner og omvendt |
Instruktioner og data kan tilgås på samme måde | Men denne fordel (til venstre) resulterer dog i en mere kompleks arkitektur, da den kræver to busser. Det betyder, at det tager længere tid at fremstille, og det gør disse systemer dyrere |
Harvard-arkitekturen giver en høj ydeevne, da denne arkitektur tillader samtidig strøm af data og instruktioner. Disse opbevares i separat hukommelse og transporteres via separate busser | Denne arkitektur er dog på trods af den høje ydeevne meget kompleks, især for hovedkortproducenter at implementere |
Der er en større hukommelsesbåndbredde, der er mere forudsigelig, fordi arkitekturen har separat hukommelse til instruktioner og data | Men som nævnt ovenfor kræver Harvard-arkitekturen, for at opnå fordelen til venstre, en kontrolenhed til to busser. Hvilket øger kompleksiteten og gør udviklingen vanskeligere. Alt sammen noget der øger prisen på systemet |
Modificeret Harvard-arkitektur
Von Neumann-arkitektur vs. Harvard-arkitektur:
Von Neumann-arkitektur | Harvard-arkitektur |
Baseret på computerkonceptet med lagrede programmer | Baseret på den Harvard Mark I-relæbaserede computermodel |
Anvender den samme fysiske hukommelsesadresse for instruktioner og data | Den anvender separate hukommelsesadresser til instruktioner og data |
Processorerne kræver to clockcyklusser for at udføre en instruktion | Processoren kræver kun én cyklus for at fuldføre en instruktion |
Von Neumann-arkitekturen består af et enklere kontrolenhedsdesign, hvilket betyder, at der kræves mindre kompleks udvikling. Dette betyder, at systemet vil være mindre omkostningsfuldt | Harvard-arkitekturens kontrolenhed består af to busser, hvilket resulterer i et mere kompliceret system. Dette øger udviklingsomkostningerne, hvilket resulterer i et dyrere system |
Instruktionshentninger og dataoverførsler kan ikke foregå på samme tid | Instruktionshentninger og dataoverførsler kan foregå på samme tid |
Anvendt i bærbare computere, pc’er og arbejdsstationer | Anvendes i signalbehandling og mikrocontrollere |
Modificeret Harvard-arkitektur:
En ren Harvard-arkitektur lider under den ulempe, at der skal tilvejebringes en mekanisme til at adskille indlæsningen fra det program, der skal udføres, i instruktionshukommelsen og dermed efterlade eventuelle data, der skal opereres, i datalukommelsen.
Midlertid anvender moderne systemer i dag en read only-teknologi for instruktionshukommelsen og read/write-teknologi for den samme hukommelse.
Dette gør det muligt for et system at tillade udførelse af et forudindlæst program, så snart der sættes strøm til.
Det betyder imidlertid, at dataene vil være i en ukendt tilstand, og at de derfor ikke kan give nogen foruddefinerede værdier til programmet.
Løsningen på dette problem er at tilvejebringe maskinsprogsinstruktioner, således at indholdet af instruktionshukommelsen kan læses, som om det var data, samt at tilvejebringe en hardwarebane.
De fleste adoptioner af Harvard-arkitekturen i dag er en modificeret form, dette er for at løsne den strenge adskillelse mellem data og kode, samtidig med at man stadig opretholder en højtydende samtidig data- og instruktionsadgang i den oprindelige Harvard-arkitektur.
Den modificerede Harvard-arkitektur er en variation af den oprindelige Harvard-arkitektur. Forskellen mellem de to er dog, at den modificerede arkitektur gør det muligt at få adgang til indholdet af instruktionshukommelsen som data.
De tre vigtigste modifikationer, der anvendes på en modificeret Harvard-arkitektur, er:
- Split-cache-arkitektur:
- Som minder meget om von Neumann-arkitekturen, opbygger denne modifikation et hukommelseshierarki med CPU-caches for instruktioner og data på lavere niveauer i hierarkiet.
- Instruction-memory-as-data-arkitektur:
- Denne modifikation gør det muligt at få adgang til indholdet af instruktionshukommelsen som data. Dette kan udføres, fordi data ikke kan udføres direkte som instruktioner.
- (Selv om det er omdiskuteret, om dette faktisk kan betegnes som “modificeret” Harvard-arkitektur)
- Data-memory-as-instruction-arkitektur:
- Udfører instruktioner hentet fra et hvilket som helst hukommelsessegment i modsætning til Harvard-arkitekturen, som kun kan udføre instruktioner, der er hentet fra programhukommelsessegmentet.
Summarum og fakta
Von Neumann-arkitekturen var et stort fremskridt i forhold til de programstyrede computere, som blev brugt i 1940’erne. Sådanne computere blev programmeret ved at indsætte patchledninger og kontakter til at dirigere data- og kontrolsignaler mellem forskellige funktionssæt.
Hvorimod de fleste computersystemer i dag deler den samme hukommelse til både data og programinstruktioner.
Cpu’en i et system med Harvard-arkitektur er i stand til at hente data og instruktioner samtidig, fordi arkitekturen har separate busser til dataoverførsler og hentning af instruktioner.
Hvad er von Neumann-arkitekturen?
Von Neumann-arkitekturen henviser til en arkitektur, der opbevarer dataene såvel som de programmerede instruktioner i læse-skrive RAM (Random Access Memory).
Kendetegn ved von Neumann-arkitekturen:
- Central Processing Unit (CPU)
- Kontrolenhed
- Aritmetisk og logisk enhed (ALU)
- Memory Unit
- Registre:
- Program Counter (PC)
- Accumulator (AC)
- Memory Address Register (MAR)
- Memory Data Register (MDR)
- Current Instruction Register (CIR)
- Busser:
- Busser:
- Databus
- Adressbus
- Kontrolbus
- Input/Output
Fordele:
- Databus
- Adressbus
- Kontrolbus
Fordele:
- Mindre dyrt/komplekst sammenlignet med Harvard-arkitektur
- Effektivt
Ulemper:
- Von Neumann flaskehals
- Større risiko for datatab
Hvad er Harvard-arkitektur?
- Harvard-arkitekturen er et computersystem, der indeholder to separate områder til data og kommandoer/instruktioner.
- Harvard-arkitektur er en type arkitektur, der gemmer data og instruktioner separat, og som derfor opdeler hukommelsesenheden.
Fordele:
- Mindre risiko for datakorruption
- Høj ydeevne
- Større hukommelsesbåndbredde
Ulemper:
- Kompleks
- Dyrt
Modificeret Harvard-arkitektur:
Den modificerede Harvard-arkitektur er en variation af den oprindelige Harvard-arkitektur. Forskellen mellem de to er dog, at den modificerede arkitektur gør det muligt at få adgang til indholdet af instruktionshukommelsen som data.
De tre vigtigste modifikationer, der anvendes på en modificeret Harvard-arkitektur, er:
- Split-cache-arkitektur
- Instruktionshukommelse som data-arkitektur
- Datamemory- som-instruktionsarkitektur
- https://www.techopedia.com/definition/19737/harvard-architecture
- https://tdck.weebly.com/uploads/7/7/0/5/77052163/03_-_harvard_architecture_comparison.pdf
- https://getrevising.co.uk/grids/von-neumann-architecture
- http://differencebetween.net/technology/difference-between-von-neumann-and-harvard-architecture/
- http://differencebetween.net/technology/difference-between-von-neumann-and-harvard-architecture/
- https://en.wikipedia.org/wiki/Von_Neumann_architecture
- https://www.geeksforgeeks.org/computer-organization-von-neumann-architecture/
- https://www.techopedia.com/definition/32480/von-neumann-architecture
- http://www.computinghistory.org.uk/det/3665/John-von-Neumann/
- https://www.computerscience.gcse.guru/theory/von-neumann-architecture
- https://en.wikipedia.org/wiki/Modified_Harvard_architecture
- https://www.edaboard.com/threads/harvard-vs-modified-harvard-architechture.111764/