Eine kurze Geschichte der von Neumann-Schaltung. Klassische Computerarchitektur und von Neumann-Prinzipien

In jedem Bereich der Wissenschaft und Technologie gibt es einige grundlegende Ideen oder Prinzipien, die seinen Inhalt und seine Entwicklung bestimmen. Die Rolle solcher Grundgedanken spielten in der Informatik unabhängig voneinander formulierte Prinzipien – vom amerikanischen Mathematiker und Physiker John von Neumann (1903-1957) und dem sowjetischen Wissenschaftler Sergei Lebedew (1902-1974). Diese Prinzipien definieren die grundlegende Organisation eines Computers.

Es wird angenommen, dass der erste elektronische Computer, ENIAC, 1946 in den USA hergestellt wurde. ENIAC bestand aus 18.000 Vakuumröhren und 1.500 Relais und wog 30 Tonnen. Er erstellte 20 Register, von denen jedes eine 10-Bit-Dezimalzahl enthalten konnte. Brillante Analyse von starken und Schwächen Das ENIAC-Projekt wurde im Bericht „Preliminary Discussion of the Logical Design of an Electronic Computing Device“ des Princeton Institute for Advanced Study (Juni 1946) vorgestellt. Dieser vom herausragenden amerikanischen Mathematiker John von Neumann und seinen Kollegen am Princeton Institute G. Goldstein und A. Burks zusammengestellte Bericht stellte ein Projekt für einen neuen elektronischen Computer vor. Die in diesem Bericht zum Ausdruck gebrachten Ideen sind als Neumann-Prinzipien bekannt.

Wenn man über die Begründer der theoretischen Informatik spricht, kann man nicht umhin, zwei wissenschaftliche Errungenschaften zu erwähnen: die Algebra der Logik und die Theorie der Algorithmen. Die logische Algebra wurde Mitte des 19. Jahrhunderts vom englischen Mathematiker George Boole entwickelt und galt für ihn als Methode zur Mathematisierung formaler Logik. Entwicklung elektronische Computer auf elektronischen Elementen mit zwei Positionen ermöglichte die weit verbreitete Verwendung der „Booleschen Logik“ für den Entwurf von Computerschaltungen. In der ersten Hälfte der 30er Jahre des 20. Jahrhunderts erschienen mathematische Arbeiten, in denen die grundsätzliche Möglichkeit nachgewiesen wurde, jedes algorithmisch bearbeitbare Problem mit Automaten zu lösen. Dieser Beweis war in den 1936 veröffentlichten Werken des englischen Mathematikers E. Post enthalten. (George Boole (1815-1864), Alan Turing (1912-1954)).

In der Sowjetunion begann wenig später die Arbeit an der Entwicklung elektronischer Computer. Der erste sowjetische elektronische Computer wurde 1953 in Kiew hergestellt. Es hieß MESM (kleiner elektronischer Computer) und sein Chefdesigner war der Akademiker Sergei Lebedew, der Autor von Entwürfen für Computer der BESM-Serie (großer elektronischer Computer). Im MESM-Projekt kam Sergei Lebedev unabhängig von Neumann auf die gleichen Ideen für den Entwurf elektronischer Computer wie Neumann.

Der Kern der „Neumann-Prinzipien“ lautete wie folgt:

1. Der Computer umfasst einen miteinander verbundenen Prozessor (Recheneinheit und Steuergerät), einen Speicher und ein E/A-Gerät.

2.Computer, die auf elektronischen Elementen basieren, müssen im Binärzahlensystem und nicht im Dezimalsystem arbeiten.

3. Das Programm sowie die Zahlen, mit denen der Computer arbeitet, sind im Binärcode geschrieben, also in Form einer Befehlsdarstellung, und die Zahlen sind vom gleichen Typ.

4. Das Programm muss sich in einem der Computerblöcke befinden – auf einem Speichergerät mit wahlfreiem Zugriff. Das Programm und die Daten können im gemeinsamen Speicher liegen (Princeton-Architektur).

5. Schwierigkeiten bei der physischen Umsetzung eines schnellen, nichtflüchtigen und großer Speicher erfordern eine hierarchische Organisation des Gedächtnisses. Das Programm wird vom Hauptspeicher ausgeführt und im nichtflüchtigen Sekundärspeicher gespeichert ( Magnetplatten). Eine Datei ist ein Identifikationssatz von Instanzen eines Datentyps, der in einem bestimmten Programm vollständig beschrieben ist, sich außerhalb des Programms im externen Speicher befindet und für das Programm durch spezielle Operationen zugänglich ist.

6. Die arithmetisch-logische Einheit (ALU) eines Computers ist auf der Grundlage von Schaltkreisen aufgebaut, die Additionen, Verschiebungen und logische Operationen ausführen. Zusätzlich zum Ergebnis der Operation generiert die ALU eine Reihe von Ergebnisattributen (Flags), die bei der Ausführung eines Befehls zur bedingten Steuerungsübertragung analysiert werden können.

Den Grundstein für die Lehre der Computerarchitektur legte von Neumann 1944, als er an der Entwicklung des weltweit ersten Röhrencomputers ENIAC beteiligt war. Während der Arbeit am ENIAC an der University of Pennsylvania und in zahlreichen Gesprächen zwischen von Neumann und seinen Kollegen John William Mauchly, John Eckert, Herman Goldstein und Arthur Burks entstand die Idee einer fortschrittlicheren Maschine namens EDVAC. Forschung Die Arbeiten an EDVAC wurden parallel zum Bau von ENIAC fortgesetzt.

Erste Seite einer gedruckten Ausgabe des „Ersten EDVAC-Berichts“

Im März 1945 wurden die Prinzipien der logischen Architektur in einem Dokument namens „First Draft Report on EDVAC“ formalisiert – einem Bericht für das US Army Ballistic Laboratory, dessen Geld für den Bau von ENIAC und die Entwicklung von EDVAC verwendet wurde. Da es sich bei dem Bericht nur um einen Entwurf handelte, war er nicht für die Veröffentlichung, sondern nur für die Verteilung innerhalb der Gruppe gedacht, aber Herman Goldstein, der Projektleiter der US-Armee, vervielfältigte diese wissenschaftliche Arbeit und schickte sie an eine Vielzahl von Wissenschaftlern Rezension. Da auf der ersten Seite des Dokuments nur der Name von Neumann stand, entstand bei der Lektüre des Dokuments der falsche Eindruck, dass er der Autor aller in dem Werk dargelegten Ideen sei. Das Dokument lieferte genügend Informationen, sodass diejenigen, die es lasen, ihre eigenen EDVAC-ähnlichen Computer nach denselben Prinzipien und mit derselben Architektur bauen konnten, die daher als „von-Neumann-Architektur“ bekannt wurde.

Nach dem Ende des Zweiten Weltkriegs und dem Ende der Arbeiten an ENIAC im Februar 1946 löste sich das Team aus Ingenieuren und Wissenschaftlern auf, John Mauchly und John Eckert beschlossen, sich selbstständig zu machen und Computer auf kommerzieller Basis zu entwickeln. Von Neumann, Goldstein und Burks zogen nach New York, wo sie beschlossen, ihren eigenen „IAS-Maschinen“-Computer, ähnlich dem EDVAC, zu entwickeln und ihn für Forschungsarbeiten zu nutzen. Im Juni 1946 legten sie ihre Prinzipien für den Bau von Computern in dem mittlerweile klassischen Artikel „Vorläufige Überlegungen zum logischen Design eines elektronischen Computergeräts“ dar. Seitdem ist mehr als ein halbes Jahrhundert vergangen, aber die darin enthaltenen Bestimmungen sind auch heute noch relevant. Der Artikel begründet den Einsatz überzeugend binäres System um Zahlen darzustellen, aber zuvor speicherten alle Computer verarbeitete Zahlen in Dezimalform. Die Autoren zeigten die Vorteile des Binärsystems für die technische Umsetzung sowie die Bequemlichkeit und Leichtigkeit der Durchführung arithmetischer und logischer Operationen darin auf. Anschließend begannen Computer, nicht-numerische Arten von Informationen zu verarbeiten – Text, Grafik, Ton und andere, aber die binäre Codierung von Daten ist immer noch möglich Informationsbasis jeder moderne Computer.

Neben Maschinen, die mit Binärcode arbeiteten, gab und gibt es auch ternäre Maschinen. Ternäre Computer haben gegenüber binären Computern eine Reihe von Vor- und Nachteilen. Zu den Vorteilen zählen die Geschwindigkeit (Additionsoperationen werden etwa eineinhalb Mal schneller ausgeführt), das Vorhandensein binärer und ternärer Logik, die symmetrische Darstellung vorzeichenbehafteter Ganzzahlen (in der binären Logik gibt es entweder zwei Nullen (positiv und negativ) oder dort wird eine Zahl sein, die kein Paar mit dem entgegengesetzten Vorzeichen hat). Die Nachteile bestehen darin, dass die Implementierung im Vergleich zu binären Maschinen komplexer ist.

Eine weitere revolutionäre Idee, deren Bedeutung kaum zu überschätzen ist, ist das Prinzip eines „gespeicherten Programms“. Ursprünglich wurde das Programm durch die Installation von Jumpern auf einem speziellen Patchpanel installiert. Dies war eine sehr arbeitsintensive Aufgabe: Beispielsweise dauerte die Änderung des Programms der ENIAC-Maschine mehrere Tage, während die Berechnung selbst nur wenige Minuten dauern konnte – die Lampen, von denen es eine große Anzahl gab, fielen aus. Das Programm kann jedoch auch als Sammlung von Nullen und Einsen und im selben Speicher wie die von ihm verarbeiteten Zahlen gespeichert werden. Das Fehlen eines grundlegenden Unterschieds zwischen dem Programm und den Daten ermöglichte es dem Computer, entsprechend den Ergebnissen der Berechnungen ein Programm für sich selbst zu erstellen.

Das Vorhandensein eines bestimmten Satzes ausführbarer Befehle und Programme war ein charakteristisches Merkmal des ersten Computersysteme. Heutzutage wird ein ähnliches Design verwendet, um das Design eines Computergeräts zu vereinfachen. Somit handelt es sich bei Tischrechnern im Prinzip um Geräte mit einem festen Satz ausführbarer Programme. Sie können für mathematische Berechnungen verwendet werden, für Textverarbeitung und Computerspiele sind sie jedoch kaum zum Betrachten zu verwenden grafische Bilder oder Video. Das Ändern der Firmware für diesen Gerätetyp erfordert nahezu vollständige Nacharbeit und ist in den meisten Fällen unmöglich. Frühe Computersysteme wurden zwar noch neu programmiert, erforderten jedoch einen enormen manuellen Arbeitsaufwand, um neue Dokumentationen vorzubereiten, Blöcke und Geräte neu zu verbinden und neu aufzubauen usw.

Die Idee der Speicherung hat alles verändert Computerprogramme im gemeinsamen Gedächtnis. Zum Zeitpunkt seiner Einführung hatte die Verwendung von Architekturen, die auf ausführbaren Befehlssätzen basierten, und die Darstellung des Computerprozesses als Prozess der Ausführung von in einem Programm geschriebenen Anweisungen, die Flexibilität von Computersystemen im Hinblick auf die Datenverarbeitung enorm erhöht. Der gleiche Ansatz beim Betrachten von Daten und Anweisungen machte es einfach, die Programme selbst zu ändern.

Von Neumanns Prinzipien

Das Prinzip der Gedächtnishomogenität

Befehle und Daten werden im selben Speicher gespeichert und sind im Speicher äußerlich nicht unterscheidbar. Sie sind nur an der Art der Nutzung zu erkennen; Das heißt, derselbe Wert in einer Speicherzelle kann abhängig von der Art des Zugriffs als Daten, als Befehl und als Adresse verwendet werden. Dadurch können Sie mit Befehlen die gleichen Operationen wie mit Zahlen ausführen und eröffnen sich dementsprechend eine Reihe von Möglichkeiten. Durch zyklisches Ändern des Adressteils des Befehls ist es somit möglich, auf aufeinanderfolgende Elemente des Datenarrays zuzugreifen. Diese Technik wird als Befehlsmodifikation bezeichnet und ist aus der Sicht der modernen Programmierung nicht erwünscht. Nützlicher ist eine andere Konsequenz des Prinzips der Homogenität, wenn Anweisungen von einem Programm als Ergebnis der Ausführung eines anderen Programms erhalten werden können. Diese Funktion liegt der Übersetzung zugrunde – der Übersetzung von Programmtexten aus der Sprache hohes Level in die Sprache eines bestimmten Computers umwandeln.

Targeting-Prinzip

Strukturell besteht der Hauptspeicher aus nummerierten Zellen, und jede Zelle steht dem Prozessor jederzeit zur Verfügung. Binärcodes von Befehlen und Daten werden in Informationseinheiten, sogenannte Wörter, unterteilt und in Speicherzellen gespeichert. Für den Zugriff darauf werden die Nummern der entsprechenden Zellen – Adressen – verwendet.

Prinzip der Programmsteuerung

Alle vom Algorithmus zur Lösung des Problems vorgesehenen Berechnungen müssen in Form eines Programms dargestellt werden, das aus einer Folge von Steuerwörtern – Befehlen – besteht. Jeder Befehl schreibt eine Operation aus einer Reihe von Operationen vor, die vom Computer implementiert werden. Programmbefehle werden in sequentiellen Speicherzellen des Computers gespeichert und in natürlicher Reihenfolge, also in der Reihenfolge ihrer Position im Programm, ausgeführt. Bei Bedarf kann diese Reihenfolge durch spezielle Befehle geändert werden. Die Entscheidung, die Ausführungsreihenfolge von Programmbefehlen zu ändern, wird entweder auf der Grundlage einer Analyse der Ergebnisse früherer Berechnungen oder bedingungslos getroffen.

Dem Plan zufolge sollte der erste Computer, der nach der von Neumann-Architektur gebaut wurde, der EDVAC (Electronic Discrete Variable Automatic Computer) sein – einer der ersten elektronischen Computer. Im Gegensatz zu seinem Vorgänger ENIAC war es ein binärer und kein dezimaler Computer. Wie ENIAC wurde EDVAC an der University of Pennsylvania für das Ballistic Research Laboratory der US-Armee von einem Team von Ingenieuren und Wissenschaftlern unter der Leitung von John Presper Eckert und John William Mauchly mit aktiver Unterstützung eines Mathematikers entwickelt, EDVAC wurde jedoch erst 1951 auf den Markt gebracht auf technische Schwierigkeiten bei der Erstellung eines zuverlässigen Computerspeichers und Meinungsverschiedenheiten im Entwicklungsteam. Andere Forschungsinstitute konnten diese Probleme durch die Bekanntschaft mit ENIAC und dem EDVAC-Projekt viel früher lösen. Die ersten Computer, die die Hauptmerkmale der von Neumann-Architektur implementierten, waren:

  1. Prototyp – Manchester Small Experimental Vehicle – Universität Manchester, Großbritannien, 21. Juni 1948;
  2. EDSAC – Universität Cambridge, Großbritannien, 6. Mai 1949;
  3. Manchester Mark I – Universität Manchester, Großbritannien, 1949;
  4. BINAC – USA, April oder August 1949;
  5. CSIR Mk 1
  6. EDVAC – USA, August 1949 – tatsächlich 1952 gestartet;
  7. CSIRAC – Australien, November 1949;
  8. SEAC – USA, 9. Mai 1950;
  9. ORDVAC – USA, November 1951;
  10. IAS-Maschine – USA, 10. Juni 1952;
  11. MANIAC I – USA, März 1952;
  12. AVIDAC – USA, 28. Januar 1953;
  13. ORACLE – USA, Ende 1953;
  14. WEIZAC – Israel, 1955;
  15. SILLIAC – Australien, 4. Juli 1956.

In der UdSSR war der erste vollelektronische Computer, der den Prinzipien von Neumanns nahekam, der von Lebedew gebaute MESM (basierend auf dem Kiewer Computer), der im Dezember 1951 die staatlichen Abnahmetests bestand.

Der Flaschenhals der von-Neumann-Architektur

Die gemeinsame Nutzung des Busses für Programmspeicher und Datenspeicher führt zu einem Engpass der von Neumann-Architektur, nämlich der Begrenzung der Bandbreite zwischen Prozessor und Speicher im Vergleich zur Speichermenge. Da auf Programmspeicher und Datenspeicher nicht gleichzeitig zugegriffen werden kann, Durchsatz Der Prozessor-Speicherkanal und die Speichergeschwindigkeit schränken die Geschwindigkeit des Prozessors erheblich ein – viel stärker, als wenn Programme und Daten an verschiedenen Orten gespeichert würden. Da die Prozessorgeschwindigkeit und die Speicherkapazität viel schneller gestiegen sind als die Bandbreite zwischen ihnen, ist der Engpass zu einem großen Problem geworden, das mit jeder neuen Prozessorgeneration immer schwerwiegender wird [ ] .

Dieses Problem wird durch die Verbesserung der Caching-Systeme gelöst, was wiederum die Systemarchitektur verkompliziert und das Risiko von Nebenfehlern erhöht (z. B. wurden im Jahr 2017 Meltdown- und Spectre-Schwachstellen entdeckt, die jahrzehntelang in modernen Prozessoren vorhanden waren, aber zuvor nicht entdeckt wurden). aufgrund der Komplexität moderner Computersysteme und insbesondere ihrer Interaktionen mit dem Cache-Speicher).

Der Begriff „von-Neumann-Architektur-Engpass“ wurde 1977 von John Backus in seinem Vortrag „Kann Programmierung vom von-Neumann-Stil befreit werden?“ geprägt. , das er las, als ihm der Turing Award verliehen wurde

Wissenschaftler aus den USA und Italien kündigten 2015 die Entwicklung eines Prototyps eines Meme-Prozessors an (engl. Memprozessor) mit einer anderen Architektur als von Neumann und der Möglichkeit, damit komplette Probleme zu lösen.

siehe auch

Anmerkungen

  1. John von Neumann. Erster Entwurf eines Berichts zum EDVAC (nicht definiert) . University of Pennsylvania (30. Juni 1945).
  2. Juri Polunow. Autor!!! // PC Week/Russische Ausgabe. - 2006. - Nr. 20 (530).
  3. Cragon, H.G. Computerarchitektur und -implementierung. - Cambridge University Press, 2000. - S. 2. - 238 S. - ISBN 978-0-521-65168-4.
  4. , P. 255.
  5. Burks A. W., Goldstine H. H., Neumann J. Vorläufige Diskussion des logischen Designs eines elektronischen Recheninstruments. – Institute for Advanced Study, Princeton, N.J., Juli 1946.

· Binäres Codierungsprinzip

· Nach diesem Prinzip werden alle in einen Computer gelangenden Informationen mithilfe binärer Signale (Binärziffern, Bits) kodiert und in Einheiten, sogenannte Wörter, unterteilt.

· Das Prinzip der Gedächtnishomogenität

· Programme und Daten werden im selben Speicher gespeichert. Daher unterscheidet der Computer nicht zwischen dem, was in einer bestimmten Speicherzelle gespeichert ist – einer Zahl, einem Text oder einem Befehl. Sie können für Befehle dieselben Aktionen ausführen wie für Daten.

· Das Prinzip der Speicheradressierbarkeit

· Strukturell besteht der Hauptspeicher aus nummerierten Zellen; Jede Zelle steht dem Prozessor jederzeit zur Verfügung. Dies impliziert die Möglichkeit, Speicherbereiche so zu benennen, dass die darin gespeicherten Werte später während der Programmausführung unter Verwendung der zugewiesenen Namen abgerufen oder geändert werden können.

· Prinzip der sequentiellen Programmsteuerung

· Geht davon aus, dass das Programm aus einer Reihe von Befehlen besteht, die vom Prozessor automatisch nacheinander in einer bestimmten Reihenfolge ausgeführt werden.

· Das Prinzip der architektonischen Starrheit

· Unveränderlichkeit der Topologie, Architektur und Befehlsliste während des Betriebs.

· Computer, die auf diesen Prinzipien basieren, werden als von Neumann-Computer klassifiziert.

· Die wichtigste Konsequenz dieser Prinzipien besteht darin, dass das Programm nun kein fester Bestandteil der Maschine mehr war (wie beispielsweise ein Taschenrechner). Es wurde möglich, das Programm einfach zu ändern. Aber die Ausstattung bleibt natürlich unverändert und sehr einfach.

· Im Vergleich dazu wurde das Programm des ENIAC-Computers (der über kein gespeichertes Programm verfügte) durch spezielle Jumper auf dem Bedienfeld bestimmt. Es kann mehr als einen Tag dauern, die Maschine neu zu programmieren (Jumper anders setzen). Und obwohl das Schreiben von Programmen für moderne Computer Jahre dauern kann, funktionieren sie nach wenigen Minuten Installation auf der Festplatte auf Millionen von Computern.

·

· Eine von Neumann-Maschine besteht aus einem Speichergerät (Speicher) – einem Speicher, einem arithmetisch-logischen Gerät – ALU, einem Steuergerät – CU, sowie Ein- und Ausgabegeräten.

· Programme und Daten werden vom Eingabegerät über eine arithmetische Logikeinheit in den Speicher eingegeben. Alle Programmbefehle werden in benachbarte Speicherzellen geschrieben und Daten zur Verarbeitung können in beliebigen Zellen enthalten sein. Für jedes Programm muss der letzte Befehl der Befehl zum Herunterfahren sein.

· Ein Befehl besteht aus einer Angabe, welche Operation ausgeführt werden soll (aus den möglichen Operationen auf einer bestimmten Hardware), und den Adressen der Speicherzellen, in denen die Daten gespeichert sind, auf denen die angegebene Operation ausgeführt werden soll, sowie der Adresse der Zelle, in die das Ergebnis geschrieben werden soll (falls es im Speicher gespeichert werden muss).


· Die arithmetisch-logische Einheit führt die durch die Anweisungen angegebenen Operationen an den angegebenen Daten aus.

· Von der Recheneinheit werden die Ergebnisse an den Speicher oder das Ausgabegerät ausgegeben. Der grundlegende Unterschied zwischen einem Speicher und einem Ausgabegerät besteht darin, dass in einem Speicher Daten in einer für die Verarbeitung durch einen Computer geeigneten Form gespeichert und auf bequeme Weise an Ausgabegeräte (Drucker, Monitor usw.) gesendet werden für eine Person.

· Die Steuereinheit steuert alle Teile des Computers. Vom Steuergerät erhalten andere Geräte Signale „was zu tun ist“ und von anderen Geräten erhält das Steuergerät Informationen über deren Status.

· Das Steuergerät enthält ein spezielles Register (Zelle), den sogenannten „Programmzähler“. Nach dem Laden des Programms und der Daten in den Speicher wird die Adresse der ersten Anweisung des Programms in den Programmzähler geschrieben. Das Steuergerät liest aus dem Speicher den Inhalt der Speicherzelle, deren Adresse sich im Programmzähler befindet, und legt ihn in einem speziellen Gerät ab – dem „Befehlsregister“. Die Steuereinheit bestimmt die Ausführung des Befehls, „markiert“ im Speicher die Daten, deren Adressen im Befehl angegeben sind, und steuert die Ausführung des Befehls. Der Vorgang wird von der ALU oder der Computerhardware ausgeführt.

· Als Ergebnis der Ausführung eines beliebigen Befehls ändert sich der Programmzähler um eins und zeigt somit auf den nächsten Befehl des Programms. Wenn ein Befehl ausgeführt werden muss, der nicht dem aktuellen Befehl folgt, sondern durch eine bestimmte Anzahl von Adressen vom angegebenen Befehl getrennt ist, enthält ein spezieller Sprungbefehl die Adresse der Zelle, an die die Steuerung übertragen werden muss .

16)Struktur und Architektur Computersystem

Ein System (von griechisch systema – ein Ganzes, eine aus Teilen bestehende Verbindung) ist eine Reihe von Elementen, die miteinander interagieren und eine gewisse Integrität und Einheit bilden.
Ein Computersystem ist eine Ansammlung von einem oder mehreren Computern oder Prozessoren. Software und Peripheriegeräte, organisiert für die gemeinsame Durchführung von Informations- und Rechenprozessen.
Besonderheit VS in Bezug auf Computer ist das Vorhandensein mehrerer Computer, die eine Parallelverarbeitung implementieren.
Grundlegende Gestaltungsprinzipien, die beim Bau eines Flugzeugs festgelegt werden:
Möglichkeit, darin zu arbeiten verschiedene Modi;
Modularität des Aufbaus von technischen und Software, mit dem Sie Computersysteme ohne grundlegende Änderungen verbessern und modernisieren können;
Vereinheitlichung und Standardisierung von technischen und Softwarelösungen;
Hierarchie in der Organisation des Prozessmanagements;
die Fähigkeit von Systemen, sich anzupassen, sich selbst anzupassen und zu organisieren;
Bereitstellung des erforderlichen Dienstes für Benutzer bei der Durchführung von Berechnungen
Je nach Verwendungszweck werden Flugzeuge unterteilt in
Universal,
problemorientiert
spezialisiert.
Universelle Lösungen sollen eine Vielzahl von Problemen lösen. Problemorientierte Methoden werden verwendet, um eine bestimmte Reihe von Problemen in einem relativ engen Bereich zu lösen. Spezialisierte Lösungen konzentrieren sich auf die Lösung einer engen Klasse von Problemen
Je nach Flugzeugtyp unterscheiden sie sich
Mehrmaschine
Multiprozessor.
Ein Rechensystem kann entweder auf der Basis ganzer Computer (Mehrmaschinenrechner) oder auf der Basis einzelner Prozessoren (Mehrprozessorrechner) aufgebaut sein.
Sie unterscheiden nach Computer- oder Prozessortyp
homogen – auf der Grundlage der gleichen Art von Computern oder Prozessoren aufgebaut.
heterogene Systeme - umfasst Verschiedene Arten Computer oder Prozessoren.
Geografisch werden Flugzeuge unterteilt in:
konzentriert (alle Komponenten befinden sich in unmittelbarer Nähe zueinander);
verteilt (Komponenten können weit voneinander entfernt sein, z. B. Computernetzwerke);
Nach den Methoden zur Steuerung von Flugzeugelementen werden sie unterschieden
zentralisiert,
dezentral
mit gemischter Kontrolle.

Je nach Betriebsmodus des Flugzeugs arbeiten die Systeme in
betriebsbereit
nicht betriebsbereite temporäre Modi.
Darüber hinaus können Flugzeuge strukturell sein
einstufig (es gibt nur eine allgemeine Ebene der Datenverarbeitung);
Mehrstufige (hierarchische) Strukturen. In hierarchischen Computersystemen sind Maschinen oder Prozessoren auf verschiedene Ebenen der Informationsverarbeitung verteilt; einige Maschinen (Prozessoren) können sich auf die Ausführung bestimmter Funktionen spezialisieren.
Struktur des Computersystems.
Die Struktur des Flugzeugs besteht aus einer Reihe integrierter Elemente und deren Verbindungen. Die Elemente des Computers sind einzelne Computer und Prozessoren.
In der beschriebenen mehrstufigen Struktur wird die klassische von Neumann-Organisation der Streitkräfte umgesetzt und beinhaltet die sequentielle Verarbeitung von Informationen nach einem vorkompilierten Programm.
Architektur von Computersystemen. Klassifizierung von Computersystemarchitekturen.
Bei der Systemarchitektur handelt es sich um eine Reihe von Systemeigenschaften, die für die Verwendung wesentlich sind.
Die Architektur eines Computers ist seine Beschreibung auf einer allgemeinen Ebene, einschließlich einer Beschreibung der Programmierfähigkeiten des Benutzers, der Befehlssysteme, der Adressierungssysteme, der Speicherorganisation usw.
Klassische Architektur (von Neumann-Architektur) – eine arithmetisch-logische Einheit (ALU), durch die der Datenfluss verläuft, und ein Steuergerät (CU), durch das der Befehlsfluss – das Programm – verläuft. Dies ist ein Einzelprozessor-Computer.
Mehrmaschinen-Computersystem. Hierbei haben mehrere in einem Computersystem enthaltene Prozessoren keine Gemeinsamkeiten Arbeitsspeicher, aber jeder hat seinen eigenen (lokalen). Jeder Computer in einem System mit mehreren Maschinen verfügt über eine klassische Architektur, und ein solches System wird recht häufig verwendet.
Die früheste und bekannteste ist die 1966 von M. Flynn vorgeschlagene Klassifizierung von Computersystemarchitekturen.

· Die Klassifizierung basiert auf dem Konzept eines Threads, bei dem es sich um eine Folge von Elementen, Befehlen oder Daten handelt, die von einem Prozessor verarbeitet werden. Basierend auf der Anzahl der Befehlsströme und Datenströme unterscheidet Flynn vier Klassen von Architekturen: SISD, MISD, SIMD, MIMD.
SISD (Single Instruction Stream / Single Data Stream) – einzelner Befehlsstrom und einzelner Datenstrom. Zu dieser Klasse gehören vor allem klassische sequentielle Maschinen oder andere Maschinen vom Neumann-Typ, zum Beispiel PDP-11 oder VAX 11/780. In solchen Maschinen gibt es nur einen Befehlsstrom, alle Befehle werden sequentiell nacheinander verarbeitet und jeder Befehl löst eine Operation für einen Datenstrom aus. Dabei spielt es keine Rolle, dass durch Pipelining die Befehlsverarbeitungs- und Rechengeschwindigkeit erhöht werden kann – sowohl der CDC 6600 mit skalaren Funktionseinheiten als auch der CDC 7600 mit Pipelines fallen in diese Klasse.
SIMD (Single Instruction Stream / Multiple Data Stream) – einzelner Befehlsstrom und mehrere Datenströme. In Architekturen dieser Art bleibt ein Befehlsstrom erhalten, der im Gegensatz zur vorherigen Klasse Vektorbefehle umfasst. Dies ermöglicht Ihnen, eines zu tun Arithmetische Operation unmittelbar über vielen Daten - Vektorelemente. Die Methode zur Durchführung von Vektoroperationen ist nicht spezifiziert, daher kann die Verarbeitung von Vektorelementen entweder durch eine Prozessormatrix, wie in ILLIAC IV, oder mithilfe einer Pipeline, wie zum Beispiel in der CRAY-1-Maschine, erfolgen.
MISD (Multiple Instruction Stream / Single Data Stream) – Mehrfacher Befehlsstrom und einzelner Datenstrom. Die Definition impliziert das Vorhandensein vieler Prozessoren in der Architektur, die denselben Datenstrom verarbeiten. Allerdings konnten weder Flynn noch andere Experten auf dem Gebiet der Computerarchitektur bisher ein überzeugendes Beispiel für ein darauf aufbauendes reales Computersystem liefern dieses Prinzip. Eine Reihe von Forschern führen dies auf Fördermaschinen zurück

1946 skizzierten D. von Neumann, G. Goldstein und A. Berks in ihrem gemeinsamen Artikel neue Prinzipien für den Aufbau und Betrieb von Computern. Anschließend wurden die ersten beiden Computergenerationen auf Basis dieser Prinzipien hergestellt. In späteren Generationen gab es einige Veränderungen, obwohl Neumanns Prinzipien auch heute noch relevant sind.

Tatsächlich gelang es Neumann, die wissenschaftlichen Entwicklungen und Entdeckungen vieler anderer Wissenschaftler zusammenzufassen und auf ihrer Grundlage etwas grundlegend Neues zu formulieren.

Prinzip der Programmsteuerung: Ein Programm besteht aus einer Reihe von Befehlen, die von einem Prozessor in einer bestimmten Reihenfolge ausgeführt werden.

Das Prinzip der Gedächtnishomogenität: Programme und Daten werden im selben Speicher gespeichert.

Targeting-Prinzip: Strukturell besteht der Hauptspeicher aus nummerierten Zellen. Jede Zelle steht dem Prozessor jederzeit zur Verfügung.

Computer, die auf den oben genannten Prinzipien basieren, sind vom Neumann-Typ.

Die wichtigste Konsequenz dieser Prinzipien besteht darin, dass das Programm nun nicht mehr fester Bestandteil der Maschine war (wie beispielsweise ein Taschenrechner). Es wurde möglich, das Programm einfach zu ändern. Im Vergleich dazu wurde das Programm des ENIAC-Computers (der über kein gespeichertes Programm verfügte) durch spezielle Jumper auf dem Panel bestimmt. Es kann mehr als einen Tag dauern, die Maschine neu zu programmieren (Jumper anders setzen). Und obwohl das Schreiben von Programmen für moderne Computer Jahre dauern kann, sie auf Millionen von Computern funktionieren, erfordert die Installation von Programmen keinen nennenswerten Zeitaufwand.

Zusätzlich zu den oben genannten drei Prinzipien schlug von Neumann das Prinzip der binären Codierung vor: Zur Darstellung von Daten und Befehlen wird das binäre Zahlensystem verwendet (die ersten Maschinen nutzten das dezimale Zahlensystem). Spätere Entwicklungen zeigten jedoch die Möglichkeit der Verwendung nicht-traditioneller Zahlensysteme.

Anfang 1956 wurde auf Initiative des Akademikers S.L. Sobolev, Leiter der Abteilung für Computermathematik an der Fakultät für Mechanik und Mathematik der Universität Moskau, wurde im Rechenzentrum der Moskauer Staatsuniversität eine Abteilung für Elektronik eingerichtet und ein Seminar mit dem Ziel aufgenommen, ein praktisches Beispiel eines digitalen Computers zu erstellen bestimmt für den Einsatz an Universitäten sowie in Labors und Konstruktionsbüros von Industrieunternehmen. Es galt, einen kleinen Computer zu entwickeln, der leicht zu erlernen und zu verwenden, zuverlässig, kostengünstig und gleichzeitig für ein breites Aufgabenspektrum effektiv ist. Eine einjährige detaillierte Untersuchung der damals verfügbaren Computer und Technische Fähigkeiten ihre Umsetzung führte dazu nicht standardmäßige Lösung in der erstellten Maschine keinen binären, sondern einen ternären symmetrischen Code zu verwenden, der ein ausgeglichenes Zahlensystem implementiert, das D. Knuth zwanzig Jahre später als das vielleicht eleganteste bezeichnen würde und dessen Vorteile, wie sich später herausstellte, darin bestand 1950 von K. Shannon identifiziert. Im Gegensatz zu dem, was allgemein akzeptiert wird moderne Computer Binärcode mit den Zahlen 0, 1, der arithmetisch minderwertig ist, da darin negative Zahlen nicht direkt dargestellt werden können, der Ternärcode mit den Zahlen -1, 0, 1 bietet die optimale Konstruktion der Arithmetik vorzeichenbehafteter Zahlen. Das ternäre Zahlensystem basiert auf dem gleichen Positionsprinzip der Zahlenkodierung wie das in modernen Computern verwendete Binärsystem, jedoch auf dem Gewicht ich Die te Stelle (Ziffer) darin ist nicht gleich 2 i, sondern 3 i. Darüber hinaus sind die Ziffern selbst nicht zweistellig (keine Bits), sondern dreistellig (Trites) – sie erlauben neben 0 und 1 einen dritten Wert, der in einem symmetrischen System -1 ist, wodurch beide positiv sind und negative Zahlen können einheitlich dargestellt werden. Der Wert einer n-triten Ganzzahl N wird ähnlich wie der Wert einer n-Bit-Ganzzahl bestimmt:

wobei a i ∈ (1, 0, -1) der Wert der i-ten Ziffer ist.

Im April 1960 wurden abteilungsübergreifende Tests eines Prototypcomputers namens „Setun“ durchgeführt. Basierend auf den Ergebnissen dieser Tests wurde „Setun“ als das erste funktionierende Modell eines Universalcomputers auf Basis lampenloser Elemente anerkannt, der sich durch „ auszeichnet. hohe Leistung, ausreichende Zuverlässigkeit, kleine Abmessungen und einfache Wartung.“ „Setun“ erwies sich dank der Natürlichkeit des ternären symmetrischen Codes als ein wirklich universelles, leicht programmierbares und sehr effektives Rechenwerkzeug, das sich positiv bewährt hat. insbesondere als technische Mittel unterrichtet Computermathematik an mehr als dreißig Universitäten. Und an der Air Force Engineering Academy. Schukowski wurde erstmals bei „Setun“ umgesetzt automatisiertes System Computer Training.

Nach von Neumanns Prinzipien besteht ein Computer aus:

· Arithmetische Logikeinheit - ALU(engl. ALU, Arithmetic and Logic Unit), das arithmetische und logische Operationen ausführt; Steuergerät -UU, entwickelt, um die Ausführung von Programmen zu organisieren;

· Speichergeräte (Speicher), inkl. Arbeitsspeicher (RAM – Primärspeicher) und externes Speichergerät (ESD); in ungefähr Haupterinnerung Daten und Programme werden gespeichert; ein Speichermodul besteht aus vielen nummerierten Zellen; jede Zelle kann eine Binärzahl enthalten, die entweder als Befehl oder als Daten interpretiert wird;

· bei Ein-/Ausgabegeräte, die der Datenübertragung zwischen dem Computer und der externen Umgebung dienen und aus verschiedenen Peripheriegeräten bestehen, darunter Sekundärspeicher, Kommunikationsgeräte und Terminals.

Bietet Interaktion zwischen Prozessor (ALU und Steuereinheit), Hauptspeicher und Ein-/Ausgabegeräten mit System Bus .

Die Computerarchitektur von Von Neumann gilt als klassisch; die meisten Computer basieren auf ihr. Wenn man von Neumann-Architektur spricht, meint man im Allgemeinen die physische Trennung des Prozessormoduls von den Programm- und Datenspeichergeräten. Die Idee, Computerprogramme im Shared Memory zu speichern, ermöglichte es, Computer zu universellen Geräten zu machen, die vielfältige Aufgaben erledigen können. Programme und Daten werden vom Eingabegerät über eine arithmetische Logikeinheit in den Speicher eingegeben. Alle Programmbefehle werden in benachbarte Speicherzellen geschrieben und Daten zur Verarbeitung können in beliebigen Zellen enthalten sein. Für jedes Programm muss der letzte Befehl der Befehl zum Herunterfahren sein.

Die überwiegende Mehrheit der heutigen Computer sind von Neumann-Maschinen. Die einzigen Ausnahmen sind bestimmte Arten von Systemen für Paralleles Rechnen, in dem es keinen Programmzähler gibt, das klassische Konzept einer Variablen nicht implementiert ist und es andere wesentliche grundlegende Unterschiede zum klassischen Modell gibt (Beispiele sind Streaming- und Reduktionscomputer). Offenbar wird es durch die Entwicklung der Idee von Maschinen der fünften Generation zu einer deutlichen Abweichung von der von Neumann-Architektur kommen, bei der die Informationsverarbeitung nicht auf Berechnungen, sondern auf logischen Schlussfolgerungen basiert.

2.2 Befehl, Befehlsformate

Ein Befehl ist eine Beschreibung einer elementaren Operation, die der Computer ausführen muss.

Team Struktur.

Die Anzahl der zum Schreiben eines Befehls zugewiesenen Bits hängt von der Hardware ab spezifisches Modell Computer. In diesem Zusammenhang betrachten wir die Struktur eines bestimmten Teams für den allgemeinen Fall.

Im Allgemeinen enthält der Befehl die folgenden Informationen:

Ø Code der durchgeführten Operation;

Ø Anweisungen zur Definition von Operanden oder deren Adressen;

Ø Anweisungen zum Platzieren des resultierenden Ergebnisses.

Für jede Maschine muss die Anzahl der im Befehl für jede ihrer Adressen und für den Opcode zugewiesenen Binärbits sowie die tatsächlichen Opcodes selbst angegeben werden. Die Anzahl der Bits in einem Befehl, die beim Aufbau einer Maschine für jede ihrer Adressen zugewiesen werden, bestimmt die Obergrenze für die Anzahl der Maschinenspeicherzellen, die separate Adressen haben: Wenn die Adresse in einem Befehl durch n Bits dargestellt wird, dann der Schnellzugriffsspeicher darf nicht mehr als 2n Zellen enthalten.

Befehle werden nacheinander ausgeführt, beginnend mit der Startadresse (Einstiegspunkt) des ausführbaren Programms. Die Adresse jedes nachfolgenden Befehls ist um eins größer als die Adresse des vorherigen Befehls, wenn es sich nicht um einen Sprungbefehl handelt.

In modernen Maschinen ist die Länge der Befehle variabel (normalerweise zwischen zwei und vier Bytes) und die Möglichkeiten zur Angabe variabler Adressen sind sehr unterschiedlich.

Der Adressteil des Befehls kann beispielsweise Folgendes enthalten:

Operand;

Operandenadresse;

Operandenadresse (die Bytenummer, aus der sich die Operandenadresse befindet) usw.

Betrachten wir die Struktur möglicher Optionen für verschiedene Befehlstypen.

Befehle mit drei Adressen.

Befehle mit zwei Adressen.

Sei 53 der Additionsoperationscode.

In diesem Fall sieht die Befehlsstruktur mit drei Adressen wie folgt aus:

· Befehle mit drei Adressen.

Der Befehlsausführungsprozess ist in die folgenden Phasen unterteilt:

Der nächste Befehl wird aus der Speicherzelle ausgewählt, deren Adresse im Programmzähler gespeichert ist; der Inhalt des Zählers wird geändert und enthält nun die Adresse des nächsten Befehls in der Reihenfolge;

Der ausgewählte Befehl wird an das Steuergerät an das Befehlsregister übertragen;

Das Steuergerät entschlüsselt das Adressfeld des Befehls;

Basierend auf Signalen der Steuereinheit werden die Werte der Operanden aus dem Speicher gelesen und in spezielle Operandenregister in die ALU geschrieben;

Die Steuereinheit entschlüsselt den Operationscode und gibt ein Signal an die ALU aus, um die entsprechende Operation an den Daten durchzuführen;

Das Ergebnis der Operation wird in diesem Fall an den Speicher gesendet (bei Computern mit einer Adresse und zwei Adressen verbleibt es im Prozessor);

Alle vorherigen Aktionen werden bis zum Erreichen des STOP-Befehls ausgeführt.

2.3 Computer als Automat

„Elektronische digitale Maschinen mit programmgesteuert stellen ein Beispiel für eine der derzeit häufigsten Arten von diskreten Informationswandlern dar, die als diskrete oder digitale Automaten bezeichnet werden“ (Glushkov V.M. Synthese digitaler Automaten)

Jeder Computer arbeitet automatisch (egal, ob es sich um einen großen oder kleinen Computer, einen Personal Computer oder einen Supercomputer handelt). In diesem Sinne kann ein Computer als Automat durch das in Abb. dargestellte Blockdiagramm beschrieben werden. 2.1.

In den vorherigen Absätzen wurde das Blockdiagramm eines Computers betrachtet. Ausgehend von Blockdiagramm Computer und Maschinenschaltkreis können wir die Blöcke des Maschinenschaltkreises und die Elemente des Computerblockdiagramms vergleichen.

Als ausführende Elemente sind in der Maschine enthalten:

Arithmetisch-logisches Gerät:

· Erinnerung;

· Informationseingabe-/-ausgabegeräte.

Das Steuerelement der Maschine ist das eigentliche Steuergerät Automatikmodus arbeiten. Wie bereits erwähnt, ist das wichtigste ausführende Element in modernen Computergeräten ein Prozessor oder Mikroprozessor, der eine ALU, einen Speicher und ein Steuergerät enthält.

Hilfsgeräte der Maschine können alle Arten von Zusatzmitteln sein, die die Fähigkeiten der Maschine verbessern oder erweitern.

John von Neumann (1903 – 1957) – US-amerikanischer Mathematiker, der maßgeblich zur Entwicklung der ersten Computer und der Entwicklung von Methoden zu deren Verwendung beigetragen hat.

Er war es, der den Grundstein für die Doktrin der Computerarchitektur legte und sich 1944 an der Entwicklung des weltweit ersten röhrenbasierten Computers, ENIAC, beteiligte, als dessen Design bereits festgelegt war.

Während seiner Arbeit brachte John von Neumann in zahlreichen Gesprächen mit seinen Kollegen G. Goldstein und A. Berks die Idee eines grundlegend neuen Computers zum Ausdruck. Im Jahr 1946 legten Wissenschaftler ihre Prinzipien für den Bau von Computern in dem mittlerweile klassischen Artikel „Vorläufige Überlegungen zum logischen Design eines elektronischen Computergeräts“ dar.

Seitdem ist mehr als ein halbes Jahrhundert vergangen, aber die darin enthaltenen Bestimmungen sind auch heute noch relevant. Sotnikov V. N., Popov A. M. Informatik und Mathematik für Juristen. - M., 2012. S. 226

Der Artikel begründet überzeugend die Verwendung des Binärsystems zur Darstellung von Zahlen, da zuvor alle Computer verarbeitete Zahlen in Dezimalform speicherten. Die Autoren zeigten die Vorteile des Binärsystems für die technische Umsetzung sowie die Bequemlichkeit und Leichtigkeit der Durchführung arithmetischer und logischer Operationen darin auf. Computer binär

Später begannen Computer, nicht-numerische Arten von Informationen zu verarbeiten – Text, Grafik, Ton und andere, aber die binäre Datenkodierung bildet immer noch die Informationsbasis jedes modernen Computers.

Eine weitere revolutionäre Idee, deren Bedeutung kaum zu überschätzen ist, ist das von Neumann vorgeschlagene Prinzip des „gespeicherten Programms“.

Ursprünglich wurde das Programm durch die Installation von Jumpern auf einem speziellen Patchpanel installiert. Dies war eine sehr arbeitsintensive Aufgabe: So dauerte es beispielsweise mehrere Tage, um das Programm der ENIAC-Maschine zu ändern, während die Berechnung selbst nicht länger als ein paar Minuten dauern konnte – die Lampen, von denen es eine große Anzahl gab, fielen aus .

Neumann erkannte als erster, dass ein Programm auch als eine Reihe von Nullen und Einsen im selben Speicher wie die von ihm verarbeiteten Zahlen gespeichert werden kann. Das Fehlen eines grundlegenden Unterschieds zwischen dem Programm und den Daten ermöglichte es dem Computer, entsprechend den Ergebnissen der Berechnungen ein Programm für sich selbst zu erstellen.

John von Neumann legte nicht nur die Grundprinzipien der logischen Struktur eines Computers dar, sondern schlug auch dessen Struktur vor, die in den ersten beiden Computergenerationen reproduziert wurde. Mischin A.V. Informationstechnologie bei beruflichen Tätigkeiten. - M.: Akademie, 2012. S. 161

Die Hauptblöcke nach Neumann sind die Steuereinheit (CU) und die arithmetisch-logische Einheit (ALU), meist zusammengefasst in CPU, zu dem auch eine Reihe von Allzweckregistern (GPR) gehören – zur Zwischenspeicherung von Informationen während ihrer Verarbeitung; Speicher, externer Speicher, Eingabe- und Ausgabegeräte. Es ist zu beachten, dass sich externe Speicher von Ein- und Ausgabegeräten dadurch unterscheiden, dass die Daten in das Formular eingegeben werden praktisch für Ihren Computer, aber für die direkte menschliche Wahrnehmung unzugänglich.

Computerarchitektur basierend auf den Prinzipien von John von Neumann.

Durchgezogene Linien mit Pfeilen geben die Richtung des Informationsflusses an, gepunktete Linien zeigen Steuersignale an.



Wird geladen...
Spitze