Processorarchitectuur: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Timaeus~nlwiki (overleg | bijdragen)
Timaeus~nlwiki (overleg | bijdragen)
Regel 17:
==Architectuurvergelijking==
 
Het kenmerkende verschil tussen de [[Von Neumann-architectuur|Von Neumann-]] en de [[Harvard-architectuur|Harvard-architectuur]] is dat de Harvard-variant een volledig gescheiden instructie- en datageheugen heeft. Meer precies: alle instructies worden volledig gescheiden gehouden van de data waarop deze instructies worden uitgevoerd. Hierdoor kan de inhoud van het datageheugen nooit als instructiesinstructie worden uitgevoerd wanneer er fouten ('bugs') in het programma voorkomen. De Harvard architectuur geeft dus een verregaande veiligheid aan de applicatie, wat vereist is in bijvoorbeeld militaire, ruimtevaart en medische toepassingen.
 
Deze ingebakken veiligheid heeft echter ook zijn nadeel. Doordat instructies en data zo strikt gescheiden zijn, zijn bepaalde computeralgoritmes eenvoudigweg niet mogelijk te implementeren. Een [[zichzelf-modificerende-code]] is bijvoorbeeld een onmogelijkheid in een Harvard architectuur. Dergelijke specifieke algoritmes kunnen alleen functioneren op een Von Neumann -architectuur. Deze zichzelf-modificerende-code wordt vaak toegepast in beveiligings- en/of versleutelings- (encryptie)algoritmen, maar kent ook andere toepassingsgebieden.
 
Vanwege het genoemde feit dat zowel de Harvard- als de Von Neumann -architectuur bepaalde karakteristieke voordelen ten opzichte van elkaar hebben, is de [[gemodificeerde Harvard architectuur]] ontworpen. Deze architectuur is een logische combinatie van de twee. In de basis is het gemodificeerde model gelijk aan een Harvard -architectuur, maar zeer beperkte geheugengebieden zijn in zowel het [[instructiegeheugen|instructie-]] als het [[datageheugen]] specifieke gebieden gedefinieerd, en binnen de processor worden deze speciale geheugenblokken in elkaar gespiegeld. Dus het schrijven in het speciale datageheugenblok heeft als gevolg dat die data niet alleen op die plaats in het datageheugen terug te vinden zijn, maar ook direct terug te vinden zijn in het instructiegeheugen, alwaar het dan weer als processorinstructie kan worden uitgevoerd. Deze gespiegelde blokken kan men zien als een efficiënt doorgeefluik van het data- naar het instructiegeheugen en vice versa.
 
Het is nooit te zeggen of de ene architectuur beter is dan de andere. Iedere architectuur heeft zijn eigen karakteristieke sterke en zwakke kanten en dus specifieke toepassingsgebieden. En alhoewel alle architecturen niet in gelijke mate vertegenwoordigd zijn bij de verkrijgbare processoren, heeft toch ieder van deze archtecturenarchitecturen een volledig bestaansrecht.
 
==Architectuurvoorbeelden==