www.wikidata.de-de.nina.az
Die Von Neumann Architektur VNA ist ein Referenzmodell fur Computer wonach ein gemeinsamer Speicher sowohl Computerprogrammbefehle als auch Daten halt Von Neumann Systeme gehoren nach der Flynnschen Klassifikation zur Klasse der SISD Architekturen Single Instruction Single Data im Unterschied zur Parallelverarbeitung Modellrechenautomat 1958 mit Von Neumann Architektur in den Technischen Sammlungen DresdenDie Von Neumann Architektur bildet die Grundlage fur die Arbeitsweise der meisten heute bekannten Computer Sie ist benannt nach dem osterreichisch ungarischen spater in den USA tatigen Mathematiker John von Neumann dessen wesentliche Arbeit zum Thema 1945 veroffentlicht wurde Sie wird manchmal auch Princeton Architektur genannt nach der Princeton University Eine oft auch in der Lehre vorgestellte Konkurrenzarchitektur ist die Harvard Architektur Inhaltsverzeichnis 1 Entwicklung 2 Konzept 2 1 Komponenten 2 2 Prinzipien des Modells 3 Eigenschaften 3 1 Vorteile 3 2 Von Neumann Flaschenhals 3 2 1 Von Neumann 3 2 2 Harvard 3 2 3 Super Harvard 3 2 4 1993 3 2 5 1997 3 2 6 2008 3 2 7 Dual Sockel Server System 3 3 Memory Wall 3 4 Vergleich zur Harvard Architektur 4 Siehe auch 5 Weblinks 6 FussnotenEntwicklung BearbeitenVon Neumann beschrieb das Konzept 1945 in dem zunachst unveroffentlichten Papier First Draft of a Report on the EDVAC 1 im Rahmen des Baus der EDVAC Rechenmaschine Es war seinerzeit revolutionar denn zuvor entwickelte Rechner waren an ein festes Programm gebunden das entweder hardwaremassig verschaltet war oder uber Lochkarten eingelesen werden musste Mit der Von Neumann Architektur war es nun moglich Anderungen an Programmen sehr schnell und ohne Anderungen an der Hardware durchzufuhren oder in kurzer Folge verschiedene Programme ablaufen zu lassen Viele Ideen der Von Neumann Architektur waren schon 1936 von Konrad Zuse ausgearbeitet in zwei Patentschriften 1937 dokumentiert und grosstenteils bereits 1938 in der Z1 Maschine mechanisch realisiert worden 1941 baute Konrad Zuse in Zusammenarbeit mit Helmut Schreyer mit der Zuse Z3 den ersten funktionsfahigen Digitalrechner der Welt Es gilt aber als unwahrscheinlich dass von Neumann die Arbeiten Zuses kannte als er 1945 seine Architektur vorstellte Die meisten der heute gebrauchlichen Computer basieren auf dem Grundprinzip der Von Neumann Architektur d h ihre Eigenschaften entsprechen denen einer VNA Dies bedeutet jedoch typischerweise nicht mehr dass sie intern wie eine einfache VNA mit den wenigen VNA Funktionsgruppen aufgebaut sind Im Laufe der Zeit wurden viele der ursprunglich als einfache VNA Rechnerarchitekturen erdachten z B die x86 Architektur jenseits davon ausdifferenziert und weitaus komplexer weiterentwickelt Dies geschah um Leistungszuwachse zu erzielen ohne jedoch mit dem leicht beherrschbaren VNA Modell zu brechen d h aus Softwaresicht kompatibel zu diesem zu bleiben um dessen Vorteile weiter nutzen zu konnen Mit dem Trend der wachsenden Zahl von parallelen Recheneinheiten Multicore und Bussen z B HyperTransport wird diese Kompatibilitat immer aufwendiger und schwieriger zu realisieren Es ist daher zu erwarten dass in absehbarer Zukunft ein Paradigmenwechsel zu einem anderen parallelen Architekturmodell notwendig sein wird um Leistungszuwachse in Rechnerarchitekturen erzielen zu konnen Erste Vorboten sind zum Beispiel das aufkommende NUMA Computing bei dem der Speicher nicht mehr als mit uniformen Eigenschaften behaftet betrachtet wird Konzept BearbeitenDie Von Neumann Architektur ist ein Schaltungskonzept zur Realisierung universeller Rechner Von Neumann Rechner VNR Sie realisiert alle Komponenten einer Turingmaschine abgesehen von dem unbegrenzten Speicher der technisch nicht realisierbar ist Dabei ermoglicht ihre systematische Aufteilung in die entsprechenden Funktionsgruppen jedoch die Nutzung spezialisierter binarer Schaltwerke und damit eine effizientere Strukturierung der Operationen Im Prinzip bleibt es aber dabei dass alles was mit einer Turingmaschine berechenbar ist auch auf einer Maschine mit Von Neumann Architektur berechenbar ist und umgekehrt Gleiches gilt fur alle hoheren Programmiersprachen die durch einen Compiler oder Interpreter auf die binare Reprasentation abgebildet werden Sie vereinfachen zwar das Handling der Operationen bieten jedoch keine Erweiterung der von der Turingmaschine vorgegebenen Semantik Dies wird daran deutlich dass die Ubersetzung aus einer hoheren Programmiersprache in die binare Reprasentation wiederum von einem binaren Programm ohne Anwenderinteraktion vorgenommen wird Komponenten Bearbeiten nbsp Komponenten eines Von Neumann Rechners nbsp Schematischer Aufbau eines Von Neumann Rechners mit dem zugehorigen BussystemEin Von Neumann Rechner beruht auf folgenden Komponenten die bis heute in Computern verwendet werden ALU Arithmetic Logic Unit Rechenwerk selten auch Zentraleinheit oder Prozessor genannt fuhrt Rechenoperationen und boolesche Verknupfungen aus Die Begriffe Zentraleinheit und Prozessor werden im Allgemeinen in anderer Bedeutung verwendet Control Unit Steuerwerk oder Leitwerk interpretiert die Anweisungen eines Programms und verschaltet dementsprechend Datenquelle senke und notwendige ALU Komponenten das Steuerwerk regelt auch die Befehlsabfolge BUS Bus System dient zur Kommunikation zwischen den einzelnen Komponenten Steuerbus Adressbus Datenbus Memory RAM Arbeitsspeicher Speicherwerk speichert sowohl Programme als auch Daten welche fur das Rechenwerk zuganglich sind I O Unit Eingabe Ausgabewerk steuert die Ein und Ausgabe von Daten zum Anwender Tastatur Bildschirm oder zu anderen Systemen Schnittstellen Prinzipien des Modells Bearbeiten Diese Komponenten arbeiten Programmbefehle nach folgenden Regeln ab Prinzipien des gespeicherten Programms Befehle werden geladen und Steuersignale an andere Funktionseinheiten gesendet Befehle sind in einem RAM Speicher mit linearem 1 dimensionalem Adressraum abgelegt Ein Befehls Adressregister genannt Befehlszahler oder Programmzahler zeigt auf den nachsten auszufuhrenden Befehl Befehle konnen wie Daten geandert werden Prinzipien der sequentiellen Programm Ausfuhrung siehe auch Von Neumann Zyklus Befehle werden aus einer Zelle des Speichers gelesen und dann ausgefuhrt Normalerweise wird dann der Inhalt des Befehlszahlers um Eins erhoht Es gibt einen oder mehrere Sprung Befehle die den Inhalt des Befehlszahlers um einen anderen Wert als 1 verandern Es gibt einen oder mehrere Verzweigungs Befehle die in Abhangigkeit vom Wert eines Entscheidungs Bit den Befehlszahler um Eins erhohen oder einen Sprung Befehl ausfuhren Eigenschaften BearbeitenVorteile Bearbeiten Der streng sequentielle Ablauf einer Von Neumann Architektur ist der entscheidende Vorteil gegenuber anderen parallelen Architekturen z B Rechnerverbund Harvard Architektur und der Grund fur die ungebrochene Popularitat dieser Architektur Aus der Sicht des Programmierers ist ein einfacher deterministischer Programmablauf garantiert Race Conditions und Daten Inkoharenzen sind durch den einzelnen Bus uber den die CPU auf Daten und Programm zugreift ausgeschlossen Von Neumann Flaschenhals Bearbeiten Der Von Neumann Flaschenhals der Von Neumann Architektur beschreibt Performance Verringerungen von Prozessoren durch konkurrierende Daten und Befehlscode Zugriffe uber einen gemeinsamen Bus Weitergehend beschreibt der Von Neumann Flaschenhals auch das fur diesen Sachverhalt verantwortliche Konzept des immer nur eine Sache auf einmal eng Original one word at a time thinking also den expliziten erzwungenen Sequentialismus durch den einzigen Bus uber den alle Aktionen laufen Der Begriff selbst Von Neumann Flaschenhals eng Von Neumann bottleneck wurde von John W Backus gepragt der ihn 1977 in seinem Vortrag anlasslich der Verleihung des Turing Awards einfuhrte 2 Surely there must be a less primitive way of making big changes in the store than by pushing vast numbers of words back and forth through the von Neumann bottleneck Not only is this tube a literal bottleneck for the data traffic of a problem but more importantly it is an intellectual bottleneck that has kept us tied to one word at a time thinking instead of encouraging us to think in terms of the larger conceptual units of the task at hand Thus programming is basically planning and detailing the enormous traffic of words through the von Neumann bottleneck and much of that traffic concerns not significant data itself but where to find it Sicherlich muss es einen weniger primitiven Weg geben grosse Anderungen im Speicher vorzunehmen als riesige Mengen von Wortern durch den Von Neumann Flaschenhals hin und her zu drucken Nicht nur ist diese Rohre ein buchstablicher Flaschenhals fur den Datenverkehr eines Problems sondern viel wichtiger es ist ein intellektueller Flaschenhals der uns an Ein Wort zu einer Zeit Denken fesselte anstatt uns zu ermutigen in grosseren konzeptionellen Einheiten der anstehenden Aufgabe zu denken Folglich ist Programmieren grundsatzlich die Planung und die Detaillierung des enormen Verkehrs von Wortern durch den Von Neumann Flaschenhals und ein Grossteil jenes Verkehrs betrifft nicht diese Daten selbst sondern wo was zu finden ist Mit dem Aufkommen von getrennten Caches fur Daten und Befehle ist der Von Neumann Flaschenhals ein akademisches Problem geworden In modernen Prozessoren ist die Entkopplung von Speicher und Rechenwerken uber mehrere Cache Hierarchien so weit fortgeschritten dass unzahlige Befehlsdecoder und Rechenwerke sich die Ressource Hauptspeicher ohne grosse Performance Verluste teilen Von Neumann Bearbeiten Die Von Neumann Architektur erlaubt das Lesen eines Befehlscode Worts oder das Lesen eines Datenworts oder das Schreiben eines Datenwortes Befehlscode Lesen und Daten Lesen und Schreiben konkurrieren Harvard Bearbeiten Die Standard Harvard Architektur erlaubt das gleichzeitige Lesen eines Befehlscode Worts und das Lesen oder Schreiben eines Datenworts Das erlaubt eine gewisse Parallelisierung der Befehlscode Abarbeitung Befehle aus mehreren Worten wie auch Read Modify Write Zugriffe auf Daten verhindern allerdings auch hier dass Befehle innerhalb eines Speicherzyklus abgearbeitet werden konnen Befehle ohne Datenspeicher Zugriffe werden gegenuber einer Von Neumann Architektur nicht beschleunigt CPU Kern v RAM Ctrl RAM Ctrl Eine klassische Standard Harvard Architektur mit strikter Trennung von Befehls und Datenbus ist ausser in Spezialfallen unublich Es waren nur fertige Programme in nichtfluchtigem Speicher ausfuhrbar Nachladen von Programmen Programme kompilieren und ausfuhren sind nicht moglich Super Harvard Bearbeiten Die Super Harvard Architekturen findet man haufig in DSPs die zwei oder vier Bussysteme haben Beispiele sind Motorola 56001 und Texas Instruments TMS320 CPU Kern v v RAM Ctrl RAM Ctrl RAM Ctrl Ublich ist auch eine Aufweichung der Trennung der Bussysteme Jeder Bus kann sowohl Code wie Daten liefern Kollisionen vermindern die Performance Neben Befehlsabarbeitungen durch den CPU Kern sind weitere Speicherzugriffe durch DMA Controller und Video Controller ublich CPU Kern Dma Ctrl v v v v RAM Ctrl RAM Ctrl RAM Ctrl RAM Ctrl 1993 Bearbeiten CPU Kern zwei Rechenwerke v L1I L1D RAM Controller 1997 Bearbeiten CPU Kern mehrere Rechenwerke v L1I L1D L2 RAM Controller 2008 Bearbeiten CPU Kern 1 CPU Kern 2 CPU Kern 3 CPU Kern N mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke v v v v L1I L1D L1I L1D L1I L1D L1I L1D L2 L2 L2 L2 L3 L3 L3 L3 RAM Controller Dual Sockel Server System Bearbeiten Sockel 1 Sockel 2 CPU Kern 1 CPU Kern 2 CPU Kern 3 CPU Kern N CPU Kern 1 CPU Kern 2 CPU Kern 3 CPU Kern N mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke mehrere Rechenwerke v v v v v v v v L1I L1D L1I L1D L1I L1D L1I L1D L1I L1D L1I L1D L1I L1D L1I L1D L2 L2 L2 L2 L2 L2 L2 L2 L3 L3 L3 L3 L3 L3 L3 L3 RAM Controller RAM Controller Memory Wall Bearbeiten Da bei einer Von Neumann Architektur im Gegensatz zur Harvard Architektur nur ein gemeinsamer Bus fur Daten und Befehle genutzt wird mussen sich diese die maximal ubertragbare Datenmenge aufteilen Bei fruhen Computern stellte die CPU die langsamste Einheit des Rechners dar d h die Datenbereitstellungszeit war nur ein geringer Anteil an der gesamten Verarbeitungszeit fur eine Rechenoperation Seit geraumer Zeit jedoch wuchs die CPU Verarbeitungsgeschwindigkeit deutlich starker als die Datentransferraten der Busse oder der Speicher was den Einfluss des Von Neumann Flaschenhalses verscharft Der Begriff der memory wall bezeichnet dieses wachsende Ungleichgewicht zwischen der Geschwindigkeit der CPU und des Speichers ausserhalb des CPU Chips Von 1986 bis 2000 wuchsen die CPU Geschwindigkeiten jahrlich um 55 wahrend die Speichertransfergeschwindigkeiten nur um 10 anstiegen Diesem Trend folgend wurde die Speicherlatenz der Flaschenhals der Computerrechenleistung 3 Als erste Massnahme wurden schon fruh Datenregister eingefuhrt Heute nimmt bei leistungsstarken Prozessoren ein dreistufiger Cache etwa die Halfte der Chipflache ein und fuhrt die allermeisten Lade und Schreibbefehle aus ohne dass der Hauptspeicher zunachst beteiligt ist Vergleich zur Harvard Architektur Bearbeiten Hauptartikel Harvard Architektur Eine der wichtigsten Konkurrenzarchitekturen ist die Harvard Architektur mit einer physischen Separierung von Befehls und Datenspeicher auf die uber getrennte Busse zugegriffen wird also unabhangig und parallel Der Vorteil dieser Architektur besteht darin dass Befehle und Daten gleichzeitig geladen bzw geschrieben werden konnen also der Von Neumann Flaschenhals umgangen werden kann Die physikalische Trennung von Daten und Programm sorgt dafur dass eine Zugriffsrechtetrennung und Speicherschutz einfach realisierbar sind Wurde fur den Programmcode ein im Betrieb nur lesbarer Speicher verwendet so ist das Uberschreiben selbst durch Schadcode ausgeschlossen Nachteilig ist allerdings dass nicht benotigter Datenspeicher nicht als Programmspeicher genutzt werden kann und umgekehrt also eine erhohte Speicherfragmentierung auftritt Siehe auch BearbeitenJohnny Simulator eine Software Implementierung eines Von Neumann Rechners mit zehn vordefinierten BefehlenWeblinks BearbeitenErklarung des Von Neumann Rechners des Department Informatik der Uni Hamburg mit Java Applet zur Simulation MOPS ist ein Modellrechner mit Von Neumann Architektur JOHNNY ist ein vereinfachter Modellrechner mit Von Neumann Architektur speziell fur den Informatikunterricht Open Source Fussnoten Bearbeiten John von Neumann First Draft of a Report on the EDVAC In IEEE Annals of the History of Computing Vol 15 Issue 4 1993 doi 10 1109 85 238389 S 27 75 PDF 9 556 MB John Backus Can Programming Be Liberated from the von Neumann Style A Functional Style and Its Algebra of Programs In Communications of the ACM Vol 21 No 8 August 1978 S 615 PDF 3 0 MB William A Wulf Sally A McKee Hitting the Memory Wall Implications of the Obvious In Computer Architecture News Vol 23 Issue 1 Marz 1995 doi 10 1145 216585 216588 S 20 24 PDF 20 KB Abgerufen von https de wikipedia org w index php title Von Neumann Architektur amp oldid 238546604