Akku (Computer) – Wikipedia

before-content-x4

Walther WSR-16 mechanischer Taschenrechner. Die Reihe der Ziffernräder im Wagen (vorne) ist der Akku

In der Zentraleinheit (CPU) eines Computers wird die Akkumulator ist ein Register, in dem mittlere arithmetische und logische Ergebnisse werden gespeichert.

Ohne ein Register wie einen Akkumulator wäre es notwendig, das Ergebnis jeder Berechnung (Addition, Multiplikation, Verschiebung usw.) in den Hauptspeicher zu schreiben, um es möglicherweise zur Verwendung in der nächsten Operation sofort wieder zurückzulesen. Der Zugriff auf den Hauptspeicher ist langsamer als der Zugriff auf ein Register wie den Akkumulator, da die für den großen Hauptspeicher verwendete Technologie langsamer (aber billiger) ist als die für ein Register verwendete. Frühe elektronische Computersysteme wurden oft in zwei Gruppen aufgeteilt, die mit Akkumulatoren und die ohne.

Moderne Computersysteme haben oft mehrere Allzweckregister, die als Akkumulatoren arbeiten, und der Begriff ist nicht mehr so ​​häufig wie früher. Einige Spezialprozessoren verwenden jedoch immer noch einen einzigen Akku für ihre Arbeit, um ihr Design zu vereinfachen.

Basiskonzept[edit]

Mathematische Operationen finden häufig schrittweise statt, wobei die Ergebnisse einer Operation als Eingabe für die nächste verwendet werden. Zum Beispiel könnte eine manuelle Berechnung der wöchentlichen Gehaltsabrechnung eines Arbeitnehmers ungefähr so ​​aussehen:

  1. Überprüfen Sie die Anzahl der geleisteten Arbeitsstunden auf der Zeitkarte des Mitarbeiters
  2. Schlagen Sie den Lohnsatz für diesen Mitarbeiter anhand einer Tabelle nach
  3. Multiplizieren Sie die Stunden mit dem Lohnsatz, um den wöchentlichen Grundlohn zu erhalten
  4. Multiplizieren Sie ihr Grundgehalt mit einem festen Prozentsatz, um die Einkommensteuer zu berücksichtigen
  5. subtrahieren Sie diese Zahl von ihrem Grundgehalt, um das wöchentliche Gehalt nach Steuern zu erhalten
  6. Multiplizieren Sie dieses Ergebnis mit einem anderen festen Prozentsatz, um die Altersvorsorge zu berücksichtigen
  7. subtrahieren Sie diese Zahl von ihrem Grundgehalt, um nach allen Abzügen ihr Wochengehalt zu erhalten

Ein Computerprogramm, das dieselbe Aufgabe ausführt, würde der gleichen grundlegenden Abfolge von Operationen folgen, obwohl die nachgeschlagenen Werte alle im Computerspeicher gespeichert wären. In frühen Computern würde die Anzahl der Stunden wahrscheinlich auf einer Lochkarte und die Bezahlung in einer anderen Form von Speicher, möglicherweise einer Magnettrommel, gespeichert. Sobald die Multiplikation abgeschlossen ist, muss das Ergebnis irgendwo platziert werden. Auf einer “Trommelmaschine” wäre dies wahrscheinlich wieder die Trommel, ein Vorgang, der beträchtliche Zeit in Anspruch nimmt. Und dann muss die nächste Operation diesen Wert wieder einlesen, was zu einer weiteren erheblichen Verzögerung führt.

Akkumulatoren verbessern die Leistung in Systemen wie diesen erheblich, indem sie einen Notizblockbereich bereitstellen, in dem die Ergebnisse einer Operation ohne oder mit geringer Leistungseinbußen an die nächste weitergeleitet werden können. Im obigen Beispiel würde das wöchentliche Grundgehalt berechnet und in den Akkumulator gestellt, der dann sofort für die Einkommensteuerberechnung verwendet werden könnte. Dies entfernt eine Speicher- und eine Leseoperation aus der Sequenz, Operationen, die im Allgemeinen zehn- bis hundertmal so lange dauerten wie die Multiplikation selbst.

Akkumaschinen[edit]

Ein Akkumaschine, auch als 1-Operanden-Maschine oder CPU mit bezeichnet akkumulatorbasierte Architekturist eine Art CPU, bei der die CPU, obwohl sie mehrere Register haben kann, die Ergebnisse von Berechnungen meistens in einem speziellen Register speichert, das typischerweise als “Akkumulator” bezeichnet wird. Fast alle frühen Computer waren Akkumaschinen, wobei nur die Hochleistungs- “Supercomputer” mehrere Register hatten. Dann, als Mainframe-Systeme Mikrocomputern Platz machten, waren Akkumulatorarchitekturen wieder beliebt, wobei der MOS 6502 ein bemerkenswertes Beispiel war. Viele ab 2014 noch beliebte 8-Bit-Mikrocontroller wie PICmicro und 8051 sind akkumulatorbasierte Maschinen.

Moderne CPUs sind typischerweise Maschinen mit zwei oder drei Operanden. Die zusätzlichen Operanden geben an, welches von vielen Universalregistern (auch als “Universalakkumulatoren” bezeichnet) verwendet wird.[1]) werden als Quelle und Ziel für Berechnungen verwendet. Diese CPUs gelten nicht als “Akkumulatormaschinen”.

Das Merkmal, das ein Register als Akkumulator einer Computerarchitektur auszeichnet, besteht darin, dass der Akkumulator (wenn die Architektur einen haben würde) als ein verwendet wird implizit Operand für arithmetische Anweisungen. Zum Beispiel könnte eine CPU eine Anweisung haben wie: ADD memaddress Das addiert den aus dem Speicherort gelesenen Wert memaddress auf den Wert im Akkumulator setzen und das Ergebnis wieder in den Akkumulator legen. Der Akkumulator wird in der Anweisung nicht durch eine Registernummer identifiziert; es ist in der Anweisung implizit und es kann kein anderes Register in der Anweisung angegeben werden. Einige Architekturen verwenden in einigen Anweisungen ein bestimmtes Register als Akkumulator, andere Anweisungen verwenden Registernummern für die explizite Operandenspezifikation.

Geschichte des Computerspeichers[edit]

Jedes System, das einen einzelnen “Speicher” zum Speichern des Ergebnisses mehrerer Operationen verwendet, kann als Akkumulator betrachtet werden. J. Presper Eckert bezeichnet selbst die frühesten Addiermaschinen von Gottfried Leibniz und Blaise Pascal als akkumulatorbasierte Systeme.[2]Percy Ludgate war der erste, der in seiner Analysemaschine von 1909 einen Multiplikator-Akkumulator (MAC) konzipierte.[3]

Die historische Konvention widmet “dem Akkumulator” ein Register, einem “arithmetischen Organ”, das seine Zahl während einer Folge von arithmetischen Operationen buchstäblich akkumuliert:

“Der erste Teil unseres Rechenorgans … sollte ein paralleles Speicherorgan sein, das eine Nummer empfangen und zu dem bereits darin enthaltenen hinzufügen kann, das auch seinen Inhalt löschen und speichern kann, was es enthält. Wir werden Nennen Sie eine solche Orgel einen Akkumulator. Sie ist in früheren und gegenwärtigen Rechenmaschinen unterschiedlichster Typen im Prinzip ziemlich konventionell, z. B. Tischmultiplikatoren, Standard-IBM-Zähler, modernere Relaismaschinen, die ENIAC “(Goldstine und von Neumann, 1946; p 98 in Bell und Newell 1971).

Nur einige der Anweisungen sind zum Beispiel (mit einer modernen Interpretation):

  • Löschen Sie den Akku und fügen Sie die Nummer aus dem Speicherplatz X hinzu
  • Akku löschen und Nummer vom Speicherplatz X abziehen
  • Fügen Sie dem Inhalt des Akkus die vom Speicherplatz X kopierte Nummer hinzu
  • Subtrahieren Sie die vom Speicherplatz X kopierte Nummer vom Inhalt des Akkumulators
  • Löschen Sie den Akku und verschieben Sie den Inhalt des Registers in den Akku

Es gibt keine Konvention bezüglich der Namen für Operationen von Registern zu Akkumulator und von Akkumulator zu Registern. Die Tradition (z. B. Donald Knuths (1973) hypothetischer MIX-Computer) verwendet beispielsweise zwei Anweisungen, die aufgerufen werden Lastspeicher aus Register / Speicher (zB “LDA r”) und Speicher speichern zu registrieren / speichern (zB “STA r”). Knuths Modell enthält auch viele andere Anweisungen.

Bemerkenswerte akkumulatorbasierte Computer[edit]

Vorderseite eines IBM 701-Computers mit Leuchten, die den Akku und andere Register anzeigen

Die Konfiguration von ENIAC von 1945 hatte 20 Akkumulatoren, die parallel betrieben werden konnten.[4]::46 Jeder könnte eine acht Dezimalstellen speichern und eine empfangene Zahl hinzufügen (oder davon abziehen).[4]::33 Die meisten frühen binären “wissenschaftlichen” Computer von IBM, beginnend mit der Vakuumröhre IBM 701 im Jahr 1952, verwendeten einen einzelnen 36-Bit-Akkumulator sowie ein separates Multiplikator- / Quotientenregister, um Operationen mit längeren Ergebnissen zu verarbeiten. Die IBM 650, eine Dezimalmaschine, hatte einen 10-stelligen Verteiler und zwei zehnstellige Akkumulatoren. Die IBM 7070, eine spätere transistorisierte Dezimalmaschine, hatte drei Akkumulatoren. Das IBM System / 360 und das PDP-6 der Digital Equipment Corporation hatten 16 Allzweckregister, obwohl das PDP-6 und sein Nachfolger, das PDP-10, sie als Akkumulatoren bezeichnen.

Der 12-Bit-PDP-8 war einer der ersten Minicomputer, der Akkumulatoren verwendete, und inspirierte viele spätere Maschinen.[5] Der PDP-8 hatte nur einen Akku. Der HP 2100 und Data General Nova hatten 2 und 4 Akkus. Die Nova wurde geschaffen, als diese Fortsetzung der PDP-8 zugunsten der künftigen PDP-11 abgelehnt wurde. Die Nova stellte vier Akkumulatoren bereit, AC0-AC3, obwohl AC2 und AC3 auch zur Bereitstellung von Offset-Adressen verwendet werden konnten, was zu einer allgemeineren Verwendung der Register führte. Der PDP-11 hatte 8 Allzweckregister nach dem Vorbild des Systems / 360 und des PDP-10; Die meisten späteren CISC- und RISC-Maschinen stellten mehrere Allzweckregister bereit.

Frühe 4-Bit- und 8-Bit-Mikroprozessoren wie der 4004, 8008 und zahlreiche andere hatten typischerweise einzelne Akkumulatoren. Der 8051-Mikrocontroller verfügt über zwei, einen Primärspeicher und einen Sekundärspeicher, wobei der zweite nur beim Multiplizieren (MUL AB) oder Teilen (DIV AB) von Anweisungen verwendet wird. Ersteres teilt das 16-Bit-Ergebnis zwischen den beiden 8-Bit-Akkumulatoren auf, während letzteres den Quotienten auf dem Primärakkumulator A und den Rest auf dem Sekundärakkumulator B speichert. Als direkter Nachkomme des 8008, des 8080 und des 8086 Die modernen allgegenwärtigen Intel x86-Prozessoren verwenden weiterhin den primären Akkumulator EAX und den sekundären Akkumulator EDX zur Multiplikation und Division großer Zahlen. Beispielsweise multipliziert MUL ECX die 32-Bit-Register ECX und EAX und teilt das 64-Bit-Ergebnis zwischen EAX und EDX auf. MUL und DIV sind jedoch Sonderfälle; Andere arithmetisch-logische Anweisungen (ADD, SUB, CMP, AND, OR, XOR, TEST) können eines der acht Register EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI als Akkumulator angeben (dh linker Operand und Ziel). Dies wird auch für die Multiplikation unterstützt, wenn die obere Hälfte des Ergebnisses nicht erforderlich ist. x86 ist somit eine ziemlich allgemeine Registerarchitektur, obwohl sie auf einem Akkumulatormodell basiert.[6] Die 64-Bit-Erweiterung von x86, x86-64, wurde weiter auf 16 anstatt auf 8 allgemeine Register verallgemeinert.

Verweise[edit]

  1. ^ “HC16 Übersicht”. Freescale.com. Archiviert von das Original am 28. September 2007. Abgerufen 2008-09-22.
  2. ^ J. Presper Eckert, “Ein Überblick über digitale Computerspeichersysteme”, IEEE Annals of the History of Computing, 1988, S. 15-28.
  3. ^ “Die Machbarkeit von Ludgates analytischer Maschine”.
  4. ^ ein b Haigh, Thomas; Priestley, Mark; Ropefir, Crispin (2016). ENIAC in Aktion: Den modernen Computer herstellen und neu gestalten. MIT Press. ISBN 9780262334419.
  5. ^ Digital Equipment Corporation, Maynard, Massachusetts (1961)PROGRAMMIERTE DATENVERARBEITUNG-1 HANDBUCH“, Seite 7: Zugriffsdatum des PDP-1-Systemblockdiagramms = 03.07.2014. Der PDP-1 war ein 18-Bit-Prozessor und ein Vorgänger von PDP-8
    • TX-0 war der transistorisierte Vorgänger von PDP-1
    • Wirbelwind I war der Vakuumröhrenvorgänger von Tx-0

  6. ^ Irvine, Kip R. (2007). Assemblersprache für Intel-basierte Computer (5. Aufl.). Pearson Prentice Hall. S. 633, 622. ISBN 0-13-238310-1.
  • Goldstine, Herman H. und von Neumann, John, “Planung und Codierung der Probleme für ein elektronisches Computerinstrument”, Rep. 1947, Institute for Advanced Study, Princeton. Nachdruck auf S. 92–119 in Bell, C. Gordon und Newell, Allen (1971), Computerstrukturen: Lesungen und Beispiele, McGraw-Hill Book Company, New York. ISBN 0-07-004357-4}. Eine wahre Fundgrube detaillierter Beschreibungen antiker Maschinen, einschließlich Fotos.


after-content-x4