DE2023354A1 - Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit - Google Patents

Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit

Info

Publication number
DE2023354A1
DE2023354A1 DE19702023354 DE2023354A DE2023354A1 DE 2023354 A1 DE2023354 A1 DE 2023354A1 DE 19702023354 DE19702023354 DE 19702023354 DE 2023354 A DE2023354 A DE 2023354A DE 2023354 A1 DE2023354 A1 DE 2023354A1
Authority
DE
Germany
Prior art keywords
command
commands
memory
register
programmable unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19702023354
Other languages
English (en)
Other versions
DE2023354C2 (de
Inventor
Robert L Davis
Ulbe Faber
David A Fisher
Joseph D Mcgonagle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2023354A1 publication Critical patent/DE2023354A1/de
Application granted granted Critical
Publication of DE2023354C2 publication Critical patent/DE2023354C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7896Modular architectures, e.g. assembled from a number of identical packages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Description

Üipl.-lng. Horst Rosfe
Dipl.-Ing. Peter Koset
Patentanwälte
Bad Gandersheim
Hohenhöfen 5
Burroughs Corporation 11. Mai 1970
Patentgesuch vom 11.5.1970
Burroughs Corporation
6071 Second Avenue
Detroit, Mich. 48252
V.St.A.
Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
Die Erfindung betrifft eine programmierbare Einheit mit mehreren Registern zur Datenübertragung, einem ersten Speicher zum Speichern von Befehlen, die Routinen vorschreiben, und einem zweiten Speicher zum Speichern von Gruppen von Operationsbefehlen, und ein Verfahren zum Betreiben einer programmierbaren Einheit.
Eine derartige programmierbare Einheit kann für verschiedene Aufgaben verwendet werden, z.B. für Rechen- und andere Datenverarbeitunggzwecke, und auch zur Eingebe/Aasgabe-Steuerung« Dabei werden mehrere Stufen oder Ebenen von Unterbefehlsgruppen verwendet.
Das Anwendungsgebiet elektronischer Rechner hat sich so stark erweitert, daß zur Zeit ein Bedürfnis für ein vollständiges Spektrum von Rechnern zur Durchführung einer Vielfalt von Rechenaufgaben und anderer Datenverarbeitungsarbeiten besteht. Zeitweilig hat man sogenannte Groflrechenanlagen hauptsächlich für komplizierte mathematische Aufgaben und kleine Datenverarbeitungsanlagen hauptsächlich
788/238 009848/1633
für Organisations- und Buchungsaufgaben, bei denen verhältnismäßig einfache Rechenoperationen mit einer großen Anzahl von Daten durchzuführen sind, für geeignet gehalten. In letzter Zeit sind die organisatorischen Arbeiten derart angewachsen, daß der Einsatz großer Datenverarbeitungsanlagen zweckmäßig ist, und andererseits wurden Anwendungsgebiete für mittlere und kleine Datenverarbeitungsanlagen erschlossen, die in der lage sind, sowohl wissenschaftliche Aufgaben als auch das Aufzeichnen von Daten A durchzuführen. Es besteht daher ein Bedürfnis nach einer Vielfalt von Rechenverarbeitungsanlagen, die von sehr kleinen bis zu sehr großen Anlagen reicht, von denen jede nicht nur organisatorisch® und wissenschaftliche Aufgaben durchführen, sondern auch. Datenübertragungen, Datenerfassungen und dergleichen steuern kann»
Je größer das Anwendungsgebiet, d.h.· die Zahl der unterschiedlichen Anwendtmgsfäll© wurd©, um so mehr ist man dazu übergegangen 9 unterschiedliche, auf den einzelnen Anwenclungsfall zugeschnittene Seelieiianlagen herzustellen. So legt man in denjenigen Fällen, in denen eine große Anzahl von Rechenaufgaben zu lösen ist, bei denen einige W hundert oder tausend sich wiederholende Rechenschritte vorkommen, besonderen Wert auf ein© hohe Betriebsgeschwindigkeit und auf die Anzahl τοη Datenbits, die pro Zeiteinheit bei der Durchführung eines Befehls verarbeitet werden kann. Daher pflegt man eine Rechenanlage für diesen Pail auf Parallelbetrieb und eine große Stellenzahl auszulegen und algorithmische Hechenprogrsee©s die mit den Daten durchzuführen sind, fest zu verdrahten, um eine höhere Betriebsgeschwindigkeit zu erzielen«, Dies ist ein wesentlicher. Grund dafür, daß Großrechner oder wissenschaftliche Rechner so kostspielig sind« W©sm ein billiger Rechner verlangt wird, pflegt maß Äiesen nach Kostengesichtspimkten auszulegen,
009848/163
so daß die Schaltungsanordnungen und Einrichtungen dieser Rechner verhältnismäßig einfach sind und die verschiedenen Algorithmen vom Programmierer programmiert werden müssen. Infolgedessen dauert die Durchführung des Programms verhältnismäßig lange, nicht nur, weil die Anlage jeden einzelnen Schritt des Programms ausführen muß, sondern auch, weil die Anlage auf die Verarbeitung von Daten mit verhältnismäßig geringer Breite (Stellenzahl) ausgelegt ist, um den 'Jchaltungsaufwand gering zu halten. Ba der Hersteller beider Arten von Anlagen zwei verschiedene Rechenverknüpfungseinheiten für die getrennten Anlagen entwickeln und herstellen miß, verliert er den wirtschaftlichen Vorteil, der sich durch die Serienproduktion nur eines Typs ergibt.
Diesen Nachteil haben auch Rechenanlagen, die so groß sind, daß bei ihnen die Eingabe- und AusgabeoperatiDnen gleichzeitig mit Rechenoperationen und anderen Verknüpfungsoperationen gesteuert werden müssen· Diese getrennten E/ASteuerwerke können selbst digitalen Allzweck-Rechenanlagen gleichen, so daß sie ein eigenes rechenwerk und manchmal sogar einen eigenen Speicher enthalten. Die Funktion und der Aufbau eines derartigen E/A-Steuerwerks unterscheidet sich dennoch von der Allzweck-Rechenanlage, mit der es in Verbindung steht.
Ein weiterer Nachteil unterschiedlich aufgebauter Anlagen besteht darin, daß sie verschieden programmiert werden müssen. Da bei größeren Anlagen einige Routinen fest verdrahtet sind, ist nur ein Befehl zur Durchführung dieser Routine erforderlich. Bei einer kleineren Anlage müssen dagegen mehrere dieser Befehle zur Durchführung der gleichen Routine eingegeben werden. Biese Programm!erschwierigkeiten treten noch stärker in Erscheinung, wenn die Anlagen von
009848/1633
verschiedenen Herstellern gebaut werden, da verschiedene . Hersteller auch verschiedene Befehlsformate verwenden, die sich in der Länge und auch in der Größe der Felder, in die sie aufgeteilt sind, unterscheiden. Um diese Unterschiede in den "Maschinensprachen" auszugleichen, wurde eine Vielzahl verschiedener Programmiersprachen entwickelt, wie ii'ortran, Cobol und Algol. In diesen Programmiersprachen abgefaßte Programme können in verschiedenen Rechenanlagen umgesetzt und verwendet werden, doch müssen diese Programme zunächst in die Liaschmensprache der betreffenden Anlage φ übersetzt werden, was durch ein Steuerprogramiu, auch Kompiler genannt, durchgeführt wird, und wenn für eine bestimmte Programmiersprache kein derartiges Steuerprogramm vorgesehen ist, dann muß der Programmierer sein Programm in eine Sprache umschreiben, für die die Anlage einen Kompiler enthält.
^s wurden üaher schon die verschiedensten Bauarten entwickelt, um Anpassungsschwierigkeiten sowohl beim Schaltungsaufbau, ctuch Hardware genannt, als auch bei der Programmierung, auch Software genannt, zu verringern. Während bei bestimmten rertigungsprograminen bereits eine Verringerung erreicht worden ist, r.aben Versuche, die Anpassungsw Schwierigkeiten zwischen verschiedenen Programmiersprachen zu beseitigen, in Wahrheit nur zu noch mehr Programmiersprachen geführt» gestimmte .Bauweisen, die i.;an bislang eingewandt hat, umfassen die Ausüilüung modularer (bausteinartiger) Verarbeitungseinheiten und Speichereinheiten, die es gestatten, die Fähigkeiten der Anlage durch Inzufügen weiterer Verarbeitungseinheiten und die Kapazität der Anlage durch Hinzufügen von ßpeichereinheiten zu erweitern. Bei anderen Bauweisen wird die Datenflußbreite verschiedener Bauteile eines Fertigungsprogramms gleich einem Vielfachen eines Grundeinheitssegmentee gewählt und das Befehlsformat für dieses Fertigungspro-
009848/1633
gramm so angepaßt, daß es ebenfalls gleich einem Vielfachen dieses Grundsegments ist.
Um sowohl den Aufbau als auch das Programmieren von Rechenanlagen flexibler zu machen, ist es auch bekannt, Mikroprogramme oder Mikrobefehle zu verwenden. Ursprünglich war ein Mikrobefehl lediglich eine Gruppe von Steuerbits innerhalb eines Makrobefehls. Diese Steuerbits wurden zur Durchführung von Korrekturen während der Ausführung eines Multiplizierbefehls oder eines Schiebebefehls und dergleichen verwendet» Dieses "Verfahren wurde dann dahingehend weiterentwickelt, daß man einen Makrobefehl die Ausführung einer bestimmten Routine vorschreiben läßt, z.B. die Addition zweier Operanden, während die Makrobefehle in Form der Ausführung einer Folge von Mikrobefehlen durchgeführt werden, von denen jeder die Verknüpfungsglieder (oder Tore) bestimmt,.die in den verschiedenen Programmablaufzeiten durchgeschaltet werden müssen. Da mehrere Makrobefehle durch eine endliche Anzahl von Mikrobefehlen verwirklicht werden können, hat man erkannt, daß die gleichen Mikrobefehle in einem getrennten Speicher gespeichert werden können, um in einer bestimmten Phase nach der Ausführung verschiedener Makrobefehle adressiert zu werden. Man hat weiter erkannt, daß verschiedene Folgen von Mikrobefehlen so formuliert werden könnsn3 daß sie bestimmte Operationen ausführen, und in irgendeinem Arbeitsspeicher getrennt gespeichert werden können. Auf diese Weise kann eine große Vielfalt von Mikrobefehlen zur Ausführung einer großen Vielfalt von Routinen erzeugt werden, und wenn eine Rechenanlage so ausgebildet ist, daß sie bestimmte Routinen ausführt, brauchen nur diejenigen Befehlsfolgen gespeichert zu werden, die nach der Ausführung spezieller, einzelner Makrobefehle zur Ausführung aufgerufen werden sollen.
009643/1633
Das Verfahren der Anwendung von Mikrobefehlen oder.Mikroprogrammen ging dann über in die Verwendung von Unterbefehlsgruppen, die für den Programmierer nicht in Erscheinung treten, wodurch das Erstellen bestimmter Programme durch die Verringerung der Ansahl der einzelnen
Schritte, die vom Programmierer programmiert werden müssen, vereinfacht wird. Das Verfahren der Mikroprogrammierung
gestattet die Herstellung weniger kostspieliger Rechenanlagen, die dennoch eine Vielzahl verschiedener Routinen
durchführen könnens ohne daß einzelne Punktionen verdrahtet zu werden brauchen.
Obwohl die Anwendung von Mikrobefehlsfolgen oder Unterbefehlsfolgen die Arbeit des Programmierers erheblich vereinfacht und dem Rechenanlagenhersteller mehr Möglichkeiten zur Lösung bestimmter baulicher Probleme einräumt,
ist bislang noch nicht das Problem der Schalttangskompatibilität zwischen verschiedenen Baugruppensystemen eines Fertigungsprograiams und das Problem der Programmkompati-Mlität zwischen verschiedenen Programmiersprachen und
zwischen den Maschinensprachen der verschiedenen Systeme
gelöst.
Der Erfindung lisg-fc daher die Aufgabe zugrunde, eine programmierbare Einheit zu sehaff©ns deren funktionelle Fähigkeiten während des Betriebs der Einheit dynamisch veränderbar sind. Im einzelnen soll sie dabei während des Betriebs derart dynamisch, veränderbar sein, daß sie in verschiedenen ProgranHHspraehen aufgestellte Programme durchführt« Gleichzeitig soll sie während des Betriebs dynamisch derart veränderbar sein, daß sie Rechenbefehlsfolgen oder SteuerbefQhlsfolgeffi für Eingabe/Ausgabe-Datenübertragungen ausführt» Dabei soll sie vom Rechenbetrieb auf den Eingabe/ Ausgabe-Steuerbetrieb umschaltbar sein, ohne daß für jede Betriebsart ein® eigene Schaltungsanordnung erforderlieh ist,
: 4 Ö / 1
Mehrere dieser programmierbaren Einheiten sollen ferner zu einer größeren Reeher.anordnung zusammengeschaltet werden können, um verschiedene Rechen- und Datenverarbeitungsoperationen durchzuführen, ohne daß irgendeine Einheit dieser Anordnung in irgendeiner speziellen Weise angepaßt zu werden braucht. Die programmierbare Einheit soll gleichzeitig eine erweiterbare Anzahl funktioneller Verknüpfungseinheiten zur 1/urchführung verschiedener logischer. Verknüpfungsoperationen, gesteuert durch Unterbefehlsgruppen, aufweisen. Dabei gehört es zur Aufgabe der Erfindung, die programmierbare Einheit so auszubilden, daß mehrere dieser Einheiten zusammengeschaltet verschiedene Rechenkapazitäten und -fähigkeiten aufweisen.
Nach der Erfindung wird diese Aufgabe, ausgehend von einer programmierbaren Einheit der eingangs erwähnten Art, dadurch gelöst, daß an den ersten Speicher eine erste Vorrichtung angeschlossen ist, der einer der Routine-Befehle zuführbar ist, daß an die erste Vorrichtung eine zweite Vorrichtung angeschlossen ist, die bei Erhalt des Routine-Befehls den zweiten Speicher adressiert und einen Operationsbefehl aufnimmt, und daß an die zweite Vorrichtung eine dritte Vorrichtung angeschlossen ist, die so vorbereitet ist, daß sie von einem Operationsbefehl betätigbar ist.
Eine Weiterbildung besteht darin, daß die Einheit einen dritten Speicher enthält und die dritte Vorrichtung bei Erhalt eines Operationsbefehls den dritten Speicher adressiert und einen Steuerbefehl erhält.
Eine andere Weiterbildung besteht darin, daß die dritte Vorrichtung eine Verknüpfungseinheit mit mehreren modularen Halbgliedern enthält, die durch einen Operationsbefehl so
.009848/1633
einstellbar sind, daß sie betriebsbereit sind·
Das heißt, die Flexibilität, die sich durch eine Mikroprogrammierung ergibt, bei der also eine einzige Stufe oder Ebene von Unterbefehlegruppen verwendet wird, ist nicht ausreichend, um die der Erfindung zugrundeliegende Aufgabe zu lösen. Daher wird nach der Erfindung nicht nur eine Ebene von Unterbefehlen, die weiterhin M-Befehle genannt werden, sondern noch eine zweite Ebene von Unterbefehlen, weiterhin N-Befehle genannt, verwendet» Die Makrobefehle oder Systembefehle werden S-Befehle genannt. Die gerätetechnische Verwirklichung von N-Befehlen kann als ein Dekodierer für die M-Befehle angesehen werden, die verschlüsselt und keine reinen Steuersignale sind. Bei den N-Befehlen kann es sich um Kombinationen erforderlicher Steuersignale oder um verschlüsselte Signale handeln. Die Ausbildung einer zweiten Ebene von Unterbefehlsgruppen oder N-Befehlsgrupten erweitert daher die Flexibilität um eine zusätzliche Größenordnung gegenüber der, die sich durch Anwendung der bekannten Mikroprogrammierung ergibt.
Da nach der Erfindung alle Algorithmen durch mehrere Ebenen von Befehlsgruppen gesteuert werden können, sind keine speziellen Schaltungen für spezielle Algorithmen erforderlich, sondern es genügt, dia Booleschen Grundverknüpfungsarten vorzusehen. Nach der Erfindung können daher mehrere gleiche Verknüpfungseinheiten parallel geschaltet werden, um eine der gewünschten Datenflußbreite angepaßte Rechenanlage zu schaffen, ohne die Grundverknüpfungseinheiten abzuändern. Dies wird dadurch erreicht, daß nach der Erfindung verschiedene Algorithmen durch verschiedene Folgen von M-Befehlen realisiert werden können, so daß die die Steuersignale bestimmenden N-Befehle von der Art des auszuführenden Algorithmus unabhängig sein können.
009848/1633
Ferner umfaßt die Erfindung eine Anordnung aus mehreren
programmierbaren Einheiten, die individuell programmiert sind und einander in Form und Schaltungsaufbau gleichen, wobei jede der Einheiten durch eine Änderung der M-Befehlsgruppen dynamisch derart veränderbar sind, daß sie entweder in einem Datenverarbeitungsbetrieb oder in einem Eingabe/Ausgabe-Steuerbetrieb arbeiten.
Ein weiteres Merkmal der Erfindung besteht in einer programmierbaren Anlage und Verfahren zum Betreiben dieser
Anlage, bei der bzw. nach denen verschiedene Befehlsfolgen, die aus einer ersten Ebene von Unterbefehlsgruppen ausgewählt sind, gespeichert und durch Befehle, die aus einer zweiten Ebene von Unterbefehlsgruppen ausgewählt werden, dekodiert oder ausgeführt werden, wobei die Unterbefehlsfolgen aus der ersten Ebene in Abhängigkeit vom Informationsinhait eines Befehls ausgewählt oder adressiert werden, der aus der höheren Befehlsebene ausgewählt wird.
Ein spezielles Merkmal der Erfindung besteht in einer Vorrichtung zum überlappten Adressieren und Auswählen der
Unterbefehle aus der zweiten Ebene zur Anpassung an die
Ausführung bedingter Unterbefehle der ersten Ebene während einer bestimmten Zeitspanne.
Ein weiteres Merkmal der programmierbaren Einheit und des Verfahrens zum Betreiben dieser Einheit besteht darin, daß getrennte Folgen von Unterbefehlen der ersten Ebene verwendet werden, um den Betrieb der Einheit in verschiedenen Betriebsarten zu steuern, z.B. in einem Verarbeitungsbetrieb und einem Eingabe/Ausgabe-Steuerbetrieb, wobei die Befehlsfolgen in Abhängigkeit von speziellen Befehlen einer höheren Ebene adressierbar und auswählbar sind.
009348/1833
Ein weiteres besonderes Merkmal der programmierbaren Einheit und des Verfahrens zum Betreiben der Einheit besteht darin, daß verschiedene Folgen von Unterbefehlen der ersten Ebene zur Ausführung von in verschiedenen Programmsprachen ausgedrückten Befehlen einer höheren Ebene vorgesehen sind und in Abhängigkeit von der Programmspraehe, in der die Befehle der höheren Eben© ausgedrückt sind, wählbar sind.
Vorzugsweise enthält die programmierbare Einheit nach der Erfindung eine Rechen- und Verknüpfungsschaltung, die aus mehreren modularen (bausteinartigen) Verknüpfungseinheiten aufgebaut ist, die durch Unterbefehle der beiden Ebenen gesteuert werden.
Die Erfindung und ihre Weiterbildungen werden im folgenden anhand von Zeichnungen näher beschrieben9 die ein bevorzugtes Ausführungsbeispiel darstellen·
Pig» 1A stellt eine programmierbare Einheit nach der Erfindung dar.
Fig. 1B stellt ein© Anordnung programmierbarer Einheiten nach der Erfindung dar. . .
Fig. 2 ist eine sehematische Darstellung des Steuerwerks und der Rechenverknüpfungseinheit nach der Erfindung.
Fig. 3 stallt die Reclisnverknüpfiingseinheit nach der Erfindung ausführlicher dar»
Fig. 4 stellt ein® andere Ausführung der Rechenverknüpfungseinheit dar»
Die Figo 5-11 stellen verschiedene Verknüpfung^schaltungen der progress!erbaren Einheit dar»
009841/1833
Fig. 12 ist eine schematiache Darstellung der Arbeitsspeicher-Koppelelektronik.
Die Pig. 13 - 16 stellen Pormate verschiedener Befehle dar, die in der Anlage verwendet werden.
Pig. 1" ist eine schematinche Darstellung des Dekodierers für Subbefehle der zweiten Ebene.
Pig. 18 ist eine schematiache Darstellung des Dekodierers für Subbefehle der ersten Ebene.
Pig. 19 ist eine Tabelle der N-Steuersignale der Steuerfelder der Phase 2 A 3 des N-Befehls.
Pig. 20 ist eine Tabelle der N-Jteuersignale des Steuerfelds der Phase 3 des N-üefehls.
Die Fig. 21 - 23 sind Zeitdiagramme, die dia Überlappung der Ausfuhrung von Befehlen darstellen, und
die Pig. ZA und 25 stellen M-Befehlsfolgen dar, die in der Anlage nach der Erfindung verwendet werden können.
Ausführliche Beschreibung der Anlage Definitionen
Einige Begriffe, die in der folgenden Beschreibung häufiger vorkommen, werden wie folgt definiert:
Programmsprache ist eine Ausdruckefom, die in binäre Signale umgesetzt und von einen Programmierer oder dem Benutzer eines Rechners ohne Kenntnis des Schaltungsaufbaue einer speziellen Verarbeitungsanlage verwendet werden kann.
£'09848/1633
. 12_ 202335A
S-Befehl ist ein Befehl, der eine Information enthält , die eine Routine oder einen Prozeß vorschreibt, die bzv/. der mit einer Gruppe von Daten durchgeführt werden soll. Ein S-Befehl ist mit einem an eich bekannten Makrobefehl oder Befehl in Maschinensprache vergleichbar.
M-Befehl ist ein Befehl, der eine Information enthält, die eine Operation vorschreibt, die in einer Verarbeitungsanlage ausgeführt werden soll, bei der eine oder mehrere dieser Operationen zur Durchführung eines Prozesses erforderlich sind, der vom S-Befehl vorgeschrieben wird. Ein M-Befehl ist mit einem Mikrobefehl vergleichbar, wie er bislang verwendet wird.
N-Befehl ist ein Befehl, der eine Information enthält, die Steuersignale vorschreibt, die in der Verarbeitungsanlage verwendet werden sollenj um die Ausführung eines M-Befehls auszulösen. Zur Durchführung eines M-Befehls können ein oder mehrere N-Befehle erforderlich sein.
Die bislang angewandte Mikroprogrammierung hat zwei wesentliche Vorteile. Zum einen braucht der Programmierer nicht die einzelnen Schritte vorzuschreiben» die zur Durchführung einer bestimmten Operation erforderlich sind5 diese Schritte werden durch die Folge von Mikrobefehlen vorgeschrieben, -die der Makrobefehl aufruft» Zum anderen braucht in der Rechenanlage nicht für jede spezielle Funktion, die die Rechenanlage ausführen sollf eine spezielle Schaltungsanordnung vorgesehen zu sein. Ferner kann die Anlage eine größere Anzahl von Rechenoperationen bei einem bestimmten Befehlsformat ausführen, da der Operationsteil des Befehls nicht mehr die speziellen Maschinenoperationen vorzuschreiben braucht.
Q09S48/1633
Nach der Erfindung werden drei getrennte Anlagen zu einer Anlage zusammengefaßt: Nämlich die S-Anlage, die M-Anlage und die N-Anlage. Jede Anlage enthält ihren eigenen Arbeitsspeicher und ihren eigenen Befehlsdekodierer. Die liste der N-Befehle liegt normalerweise fest, kann jedoch veränderbar sein. Die liste der M-Befehle läßt sich während des Normalbetriebs der Anlage dynamisch ändern. Jede einzelne Gruppe von M-Befehlen kann einer bestimmten Gruppe von S-Befehlen eine bestimmte Bedeutung zuschreiben. Jeder S-Befehl kann einen vollständigen Algorithmus vorschreiben, dessen Schritte durch eine !Folge von M-Befehlen festgelegt werden. Ein S-Befehl entspricht einem Makrobefehl oder Maschinensprachebefehl an sich bekannter Art. Nach der Erfindung ist jedoch keine bestimmte Gruppe von S-Befehlen erforderlich, es können vielmehr mehrere verschiedene Gruppen von S-Befehlen, einschließlich solcher Gruppen von S-Befehlen verwendet werden, die in verschiedenen Programm-Sprachen aufgezeichnet sind. Ferner ist die Gruppe von Befehlsteilen, die die Eingabe und Ausgabe von Daten steuert, nach der Erfindung durch eins bestimmte Gruppe von S-Befehlen verwirklicht. Jede Gruppe von S-Befehlen wird bei* der Anlage nach der Erfindung durch jeweils eine getrennte Gruppe von M-Befehlen interpretiert, von denen jeder wiederum durch die Liste von N-Befehlen verwirklicht wird.
Die Art und Weise, wie die Erfindung verwirklicht wird, wird anhand der Zeichnungen näher beschrieben. Mg. 1A stellt den grundsätzlichen Aufbau einer programmierbaren Einheit nach der Erfindung dar. Die programmierbare Einheit enthält zwei Hauptteile, nämlich eine Rechenverknüpfungseinheit ALU und ein Steuerwerk. Der Arbeitsspeicher 20 ist in drei Teile unterteilt dargestellt, nämlich in einen Hauptarbeitsspeicher 2OA, einen Mikroprogramm-Arbeitsspeicher 2OB und einen N-Arbeitsspeicher
1309848/1633
-H-
2OG. Bei dem Hauptarbeitsspeicher 2OA handelt es sich um einen normalen destruktiv lesbaren Speicher, wie er normalerweise in Datenverarbeitungsanlagen verwendet wird. Bei dem MP-Arbeitsspeicher 2OB handelt es sich normalerweise um einen nicht destruktiv lesbaren Speicher. Bei dem ^-Arbeitsspeicher 200 handelt es sich vorzugsweise um einen nicht destruktiv lesbaren Speicher, doch kann es sich auch um einen lesespeicher (auch Totspeicher oder Festwertspeicher genannt) handeln. Bei allen drei Arbeitsspeichern kann es sich um magnetische Dünnschicht- oder Festkörperspeicher handeln» Als ^-Arbeitsspeicher 200 wird jedoch ein Speicher gewählt„ der den kürzesten Speicherzyklus aufweist. Die Anlage nach Fig» 1A wird durch mehrere Eingabe/Ausgabe-Geräte 9 vervollständigt, die über eine durch die programmierbare Einheit 10 gesteuerte Schalteinheit 8 mit dem Hauptarbeitsspeicher 2OA verbunden sind.
Bevor die programmierbare Einheit 10 ausführlicher beschrieben wird, wird ein spezieller Anwendungsfall einer derartigen programmierbaren Einheit anhand von Fig. 1B beschrieben, um die Vielseitigkeit der programmierbaren Einheit 10 zu veranschaulichen» lach Fig« 1B sind mehrere programmierbare Einheiten 119 ,·. 14 au einer Anordnung oder Matrix miteinander verbunden-, und zwar über eine Schaltersynchronisier- oder Schalterverriegelungsvorrichtung 15, die -auch an Arbeitsspeichereinheiten 21, 22 und und über Schalteinheiten 8 an mehrere Eingabe/Ausgabe-Geräte 9 angeschlossen ist. Die programmierbaren Einheiten 11, ..., H sind ebenso ausgebildet wia die programmierbare Einheit 10 nach Fig. 1A und können nach der Erfindung auf verschiedene Betriebsarten eingestellt werden. Die Einheiten 11 und 12 können alsoj, wie es in der Tabelle nach Fig. 1B dargestellt ist, so eingestellt werden, daß
0098A8/1S33
sie während eines bestimmten Arbeitstaktee die Ein- und Ausgabe steuern, während die Einheiten 13 und 14 im Verarbeitunpsbetrieb arbeiten. In einem späteren Arbeitstakt, wenn keine Eingabe/Ausgabe-Operationen erforderlich sind, werden alle vier Einheiten auf Verarbeitungsbetrieb eingestellte In einem noch späteren Arbeitstakt, wenn weitere Eingabe/Ausgabe-Operationen erforderlich sind, wird eine der Einheiten, z.B. die Einheit 13, auf Eingabe/ Ausgabe-Steuerbetrieb eingestellt. Die in Pig. 1B dargestellte Tabelle dient lediglich zur Erläuterung der Tatsache, daß irgendeine programmierbare Einheit oder alle programmierbaren Einheiten in Abhängigkeit vom Anwendungsfall entweder auf Eingabe/Ausgabe-Steuerbetrieb oder auf Verarbeitungsbetrieb einstellbar ist bzw. sind.
Rechen- und Steuerregister
Pig. 2 stellt die Hauptregister und Hauptdatenübertragungskanäle des Steuerwerks und der Rechenverknüpfungseinheit ALU der programmierbaren Einheit dar. Die ALU enthält eine Verknüpfungseinheit 30, die unter anderem als Addierer wirkt, sowie einen Walzenschalter 31» A-Register 32, B-Register 33 und NICHT-Tore 34.
Das B-Register 33 ist das Hauptrerbindungsglied zwischen der programmierbaren Einheit und dem Hauptarbeitsspeicher. Das Register dient auch als sekundärer Eingang des Addierers 30 und dient bestimmten sekundären Funktionen, die bei den Rechenoperationen auftreten. Die NICHT-Tore 34 dienen zur Bildung des wahren Inhalts des B-Registers 33 oder des Einer-Komplements des Inhalts des Registers 33.
Die A-Register 32 sind drei funktionell gleiche Register. Jedes der A-Register dient als Datenzwischenspeicher in einer ALU und als Haupteingang des Addierers 30. Alle A-
009848/1633
Register werden durch die Ausgangssignale der Walzenschalter 31 geladen.
Das Steuerwerk der programmierbaren Einheit nach der Erfindung enthält drei Hauptteile: Nämlich einen Teil, der als Verbindungsglied zwischen der ALU und dem Arbeitsspeicher und Peripheriegeräten dient, einen Teil, der die Dekodierung der M-Befehle bewirkt, und einen Teil, der die N-Befehlssteuersignale empfängt und weiterleitet.
Die Ausgangssignale der ALU sind die Ausgangssignale der Walzenschalter 31 und können Verbindungstoren 48, Adressenregistern 45 und 46, einem Arbeitsspeicherinformationsregister 47 und einem Sprung-MikrobefehlsZählregister 41 zugeführt werden. Die Ausgangssignale der Walzenschalter 31 können auch einem Verschiebungsbetragregister 44 zugeführt werden. Über die Verbindungstore 48 werden Adressen und andere Informationen entweder in ein Arbeitsspeicheradressenregister 49 oder einen Zähler 50 übertragen. Das Adressenregister 45 enthält die Basieadresse eines 256-Wortblocks des Hauptarbeitsspeichers. Der Inhalt deses Registers wird mit dem Inhalt des Arbeitsspeicheradressenregisters 49 zur Bildung einer absoluten Arbeitsspeicheradresse verknüpft. An das Adressenregister 45 ist ein zweites Adressenregister 46 angeschlossen, das die Basisadresse eines 246-Wortblocks des Hauptarbeitsspeichers oder die höchsten Stellen einer Geräteadresse enthalten kann. Auch der Inhalt des zweiten Adressenregisters 46 wird mit dem Inhalt des Arbeitsspeicheradressenregisters 49 zur Bildung einer absoluten Arbeitsspeicheradresse oder einer Geräteadresse verknüpft. Das Arbeitsspeicherinformationeregister 47 dient als Zwischenspeicher für Informationen, die in den Hauptarbeitsspeicher oder ein Gerät übertragen werden sollen,, Dieses Register wird durch die AusgangBßignale der Walzenschalter 31 geladen«
009848/1S33
Die Mikrobefehle werden zunächst einem Mikrobefehlsdekodierer 4-0 zugeführt, um den N-Arbeitsspeicher zu adressieren, und dann in ein Variablenregister 511 das Verschiebungsbetragregister 44 und das Sprung-Mikroprogrammzählregister 41 übertragen» Das Variablenregister 51 wird als Zwischenspeicher für beliebige Variable (und deren Komplement), die in den M-Befehlen enthalten sind und dem Addierer 30, dem Zählregister 50 oder dem Arbeitsspeicheradressenregister 49 zugeführt werden sollen, verwendet. Das Verschiebungsbetragregister 44 speichert entweder die Verschiebungsbetragzahl oder dessen Wortlängenkomplement, die bzw. das zur Steuerung der Anzahl von Bits verwendet werden soll, um die Daten in den Walzenschaltern 31 verschoben werden. Das Register 41 enthält die Sprungoder Rückkehradresse für Programmsprünge und Unterprogrammrückläufe in M-Programmen. Die in diesem Register gespeicherte Adresse ist gewöhnlich um 1 kleiner als diejenige Stelle, an die zurückgekehrt werden soll. Dieses Register kann aus dem Mikroprogrammzählregister 42, durch Walzenschalt er aus gangs signale oder vom M-Befehlsdekodierer 40 geladen werden. An dieses Register ist das Mikroprogrämmzählregister 42 angeschlossen, bei dem es sich um den Befehlsadressenzähler für den M-Arbeitsspeieher handelt. Es enthält gewöhnlich die laufende Mikrobefehlsadresse»
Die Dekodierung der N-Befehle geschieht durch ein Prüfschaltwerk 53 und das Operationsbefehlsregister 52. Die Wirkungsweise dieser Schaltungen wird später noch ausführlicher beschrieben. An dieser Stelle sei nur soviel erwähnt, daß das Prüfschaltwerk 53 Informationen von einem Bedingungsregister 54 erhält, dessen Inhalt eine Gruppe von Prüfbits ist, die als FehlerIndikatoren, Unterbrechungsbefehle, örtliche und globale Boolesche Schaltvariable sowie Asynchron!tats- oder Entriegelungsindikatoren wirken.
009848/1633
Diese verschiedenen Bedingungsregisterbits werden noch ausführlicher beschrieben·
Durch M-Befehle gesteuerte Operationen
Bevor die Pormate bzw. der Aufbau der M- und N-Befehle beschrieben wird, werden zunächst die Hauptoperationen beschrieben, die in der programmierbaren Einheit ausgeführt werden. Diese Operationen werden durch M-Befehle ausgelöst.
Arbeitsspeicher- und Geräteoperationen
Die Arbeitsspeicher- und Geräteoperationen dienen zur Übertragung von Daten zwischen der programmierbaren Einheit und dem Arbeitsspeicher oder irgendeinem Peripheriegerät. Die programmierbare Einheit ist mit den Arbeitsspeichereinheiten und Geräten über eine Schaltersynchronisier- oder Schalterverriegelungsvorrichtung durch bidirektionale Mehrfachleitungen verbunden. Die Arbeitsspeicher-'und Geräteadressen werden aus dem Arbeitsspeicheradressenregister 49 zur Schalterverriegelungsvorrichtung und nach Herstellung der Verbindung zum ausgewählten Arbeitsspeicher oder Gerät weitergeleitet. Aus einem Arbeitsspeicher oder Gerät empfangene Daten werden durcli Verbinden des B-Registers mit der äußeren Datenmehrfachleitung ins B-Register übertragen. Die in den Arbeitsspeicher oder das Gerät zu übertragenden Daten werden über 'das Arbeitsspeicherinformationsregister 47 geleitet. Jede Arbeitsspeicher- oder Geräteoperation wird im ersten Takt des M-Befehls ausgelöst und parallel oder gleichzeitig mit der Ausführung eines nachfolgenden M-Befehls fortgesetzt. Die Arbeitsspeicher-und Geräteoperationen können also vollständig durch (logisch©) Verknüpf ungsOperationen überlappt werden. Die Arbeitsspeicher-, Geräte- und Einstelloperationen können in jedem M-Befehl
00S848/1633
als bedingte oder unbedingte Gruppe vorgeschrieben sein. Die speziellen Arbeitespeicher- und Geräteoperationen werden nachstehend ausführlicher beschrieben.
Verknüpfungsoperationen
Jeder It-Befehl kann genau eine (logische) Verknüpfungsoperation vorschreiben. Diese Operationen umfassen binäre Boolesche Verknüpfungsoperationen, auch Schaltfunktionen genannt, zwischen den EingangsSignalen A und B und zwischen den Eingangssignalen B und Z der AIU und die meisten Verknüpfungsoperationen zwischen Z und A. Es kommen auch einige ternäre Boolesche Verknüpfungsoperationen zwischen allen drei Eingangssignalen und echte Additionsoperationen zwischen jeweils zwei Eingangssignalen vor· Die Schaltfunktionen der verschiedenen Booleschen Verknüpfungsoperationen sind in Fig. 19 als Tabelle dargestellt.
Bei den echten Additionsoperationen erfolgt eine Zweierkomplementaddition der Eingangssignale A und B der ALU. Die gleichen Verknüpfungen können zwischen den Eingangssignalen B und Z und zwischen den Eingangssignalen Z und A durchgeführt werden, wenn dies erforderlich ist. Das Endübertragausgar.gssignal der höchsten Stelle der ALU wird zur Überprüfung des nächsten M-Befehls verwendet, und im 1 berlaufbit des Bedingungsregisters für eine spätere Prüfung gespeichert.
Die ALU besteht aus mehreren "logischen" Grundeinheiten entsprechend der Datenkanalbreite, die für eine bestimmte programmierbare Einheit gewählt ist. Die Anzahl der Bits bei einer Grundeinheit ist gleich 8 gewählt. Die Variationsmöglichkeiten bei Additionsoperationen hängen von der Wahl der jeder 8-Bit-Gruppe zugeführten Überträge bzw.
009848/1633
davon ab, ob der Übertragausgang einer vorhergehenden Stufe mit dem Übertrageingang einer folgenden Stufe verbunden ist. Bei jeder 8-Bit-Grupp® kann die logische Einheit so verdrahtet sein, daß das Übertrageingangssignal entweder gleich dem Übertragausgangssignal d@r unmittelbar vorhergehenden (rechts benachbarten) Gruppe oder konstant ist. Diese Wahl läßt sich nicht durch das Programm ändern. Der Übertrageingang bzw. das Lbertrageingangssignal kann jedoch durch das Programm entweder freigegeben bzw« durchgeschaltet oder gesperrt werden«, Bei herkömmlichen Anordnungen erhalten alle, bis auf die niedrigst© 8-Bit-Grupp©, ein Übertragsignal von der vorhergehenden Gruppe.. Der niedrigsten (an weitesten rechte liegenden) Gruppe wird ständig eine Eins als Übertrag zugeführt. Für alle Gruppen, mit Ausnahme für die Gruppe der niedrigsten Stelle, werden alle Übertragdurchechaltsignale zusammen gebildet, während der der niedrigsten Stelle zugeführte 1-Übertrag getrennt gebildet wird.
Walzenschalteroperation
Es gibt vier Walzenschalteroperationen, die vorgeschrieben werden können, und eine muß vorgeschrieben werden. Diese Operationen sind: Verschiebe nicht, verschiebe nach rechts zirkular den Betrag im Verschiebungsbetragregister 44, verschiebe nach rechts hinaus den Betrag im Verschiebungsbetragregister und verschiebe nach links hinaus das Zweierkomplement des Betrags im Verschiebungsbetragregister 44.
Eine andere Operationsart, die durch die M-Befehle gesteuert wird, sind die Setz-Operationen, die zur Unterbrechung anderer Programmeinheiten bei einer Zusammenschaltung mehrerer dieser Einheiten zu einer Anordnung, zum Aussperren und Entriegeln kritischer Teile einer der-
009848/1633
artigen Anordnung und zum Einstellen bzw· Setzen örtlicher Bedingungsbits verwendet werden. Außerdem enthalten die M-Befehle verschiedene Arten von Informationen, die in Verbindung mit dem Format des M-Befehls und anderer Befehle ausführlicher beschrieben wird·
Befehlsformat und Bedingungsregister
Die programmierbare Einheit enthält vier Steuerinformationsquellen. Diese umfassen die drei Befehlsebenen oder Befehlsstufen, nämlich den S-Befehl, den M-Befehl und den N-Befehl sowie eine Gruppe von Bedingungsbits, die im Bedingungsregister 54 gespeichert sind, wie es in Fig. dargestellt ist. Diese Informationsquellen werden nachstehend beschrieben.
S-Befehlsformat
Anhand von Fig. 13 wird ein S-Befehlsformat beschrieben. Es sei darauf hingewiesen, daß nicht nur ein bestimmtes S-Befehlsformat verwendet werden kann. Nach der Erfindung ist es vielmehr möglieh, verschiedene Befehlsformate zu verwenden. Es muß lediglich dafür gesorgt sein, daß bestimmte Folgen von M-Befehlen in !!-Arbeitsspeicher vorhanden sind, die jede spezielle Gruppe von S-Befehlen dekodiert oder interpretiert. Es ist ferner möglich., mehrere dieser M-Befehlsfolgen im !!-Arbeitsspeicher zu speichern.
Die in den Fig. 13A, 13B und 130 dargestellten Befehlsformate dienen zur Steuerung von Eingabe/Ausgabe-Datenübertragungen, doch können diese Befehlsformate auch zum Aufrufen von Routinen verwendet werden, die in der programmierbaren Einheit ausgeführt werden sollen·
009848/1633
202335M
Der Eingabe/Ausgabe-Deskriptor nach Pig. 13 enthält 96 Bits, die in drei Teile unterteilt sind. Der Operationsteil nach Pig. 13A ist in zwei Felder unterteilt. Das PeId I schreibt die auszuführende Operation vor, während das Feld II zum Vorschreiben der Adresse des Peripheriegeräts oder der Arbeitsspeichereinheit, in die oder aus der Daten übertragen werden sollen» verwendet werden kann. Das Feld III nach Pig. 13B ist ein Zeichen aus θ Bits, das als Vergleichszeichen zum Beenden einer Datenübertragung verwendet werden kann. Das PeId IV stellt einen Zähler dar, der die Anzahl von Datengruppen vorschreibt, die übertragen werden sollen, und dessen Zählerstand bei jeder Datenübertragung um eins verringert und auf das Auftreten des Zählerstands null überprüft wird. Das PeId V stellt eine Gruppe von Steuerbits dar, z.B. Kennzeichen oder "Fahnen", die zur Modifizierung der Datenübertragung oder zum Vorschreiben verschiedener Bedingungen verwendet werden können. Das ü'eld VI ist ein Befehlszähler, der die absolute Adresse vorschreibt, unter der die nächste Deskriptoroperation aufzusuchen ist. Das PeId VII des Steuerteils II nach Pig. 130 wird zum Vorschreiben der Arbeitsspeicheradresse verwendet, unter der Baten eingegeben oder ausgelesen werden sollen· Das PeId VII kann in zwei Unterfelder unterteilt sein, um beispielsweise eine Basisadresse und eine relative Adressenstelle vorzuschreiben. Das Bit 64 des Steuerteils II wird zum Anzeigen der Tatsache verwendet, daß der Kanal, dessen Betrieb gerade vom Deskriptor überwacht wird, belegt ist, während das Bit 65 daasu verwendet wird, zu verhindern, daß der augenblickliche Deskriptor eine neue E/A-Folge auf einem anderen Kanal auslöst, und das Bit 95 ist ein Paritätsbit.
Die Befehlsformate nach Pig® 13 können Informationen enthalten, die für eine bestimmte Kanaloperation erforderlich sind, zu der die Adressierung einer neuen Gruppe von Deskrip-
009848/1633
202335A
tor-Befehlen gehört, die eine neue Operation in diesem Kanal auslösen, wenn die augenblickliche Operation ausgeführt ist. Das Befehlsformat nach Pig. 13 wurde zwar in bezug auf einen E/A-Deskriptor beschrieben, kann jedoch auch für andere Routinen verwendet werden. In jedem Falle wird dieses Deskriptorformat durch die programmierbare Einheit dadurch realisiert, daß das B-Register 33 der Hechenverknüpfungseinheit nach Pig. 2 dae PeId I aufnimmt, aus dem dieses Feld dann über den Addierer 30 und die Walzenschalter 31 ins Sprung-Mikroprögrammzählregister (SMPZR) 41 übertragen wird, um den M-Arbeitsspeicher zu adressieren. Unter dieser Adresse wird eine neue Adresse ausgelesen und dem Mikrobefehlsdekodierer 40 nach Fig. zugeführt. Diese Adresse schreibt die Anfangespeicherzelle der Folge von M-Befehlen vor, die zur Durchführung des auf diese Weise dekodierten S-Befehls erforderlich ist.
M-Befehlaformat
Nachdem beschrieben wurde, wie ein S-Befehl zur Gewinnung einer Folge von M-Befehlen, die den S-Befehl ausführen, dekodiert wird, werden nachstehend die M-Befehleformatβ anhand von Fig. 14 beschrieben.
Jeder M-Befehl benötigt einen 16-Bit-Wort-Speicherplatz in dem Mikroprogramm-Arbeitsspeicher, auch M-Arbeitsspeicher genannt. Es- gibt zwei Arten von M-Befehlen, von denen jede durch die N-Befehl· verschieden dekodiert wird. Die erste Art von M-Befehlen schreibt mindestens tine von sechs Punktionen vor: Eine Bedingung, eine Verknüpfungseinheitsoperation, eine Arbeitsspeicher- oder Geräteoperation, einen wahren Nachfolger, einen falschen Nachfolger und Variable in dem Befehl. Die Bedingung und Nachfolger müssen in jedem M-Befehl vorhanden sein. Die anderen Punktionen sind
009848/1633
jedoch frei wählbar, doch können alle frei wählbaren Angaben in demselben Befehl enthalten sein. Eine zweite Art von M-Befehl enthält nur Befehlsvariable.
Der Aufbau der ersten Art von M-Befehlen ist in Fig. 14a dargestellt. In diesem Befehl ist das nullte Bit eine 1, während die übrigen Bits die Adresse eines N-Arbeitsspeichers darstellen, unter der der N-Befehl aufgesucht werden kann, der die Operation und Bedingungssteuerbits enthält, die durch die erste Art von M-Befehl vorgeschrieben werden.
Der Aufbau der zweiten Art von !-Befehlen ist in den Fig. 14b und 14c dargestellt,, Nach Fig. 14b stellen die ersten drei Bits Nullen dar, wodurch sie anzeigen, daß die übrigen Bits 3 bis 15 eine M-Arteeitsspeicheradresse darstellen, die ins Register 41 n&gh Figo 2 übertragen werden muß. Wenn mindestens eines der Bits 1 und 2 eine 1 und das nullte Bit eine O ist, dann hat der Aufbau das in Fig«, 14c dargestellte Format, bei dem die Bits 3-7 ein Schiebebetragregister-Inhaltsfeld darstellen* wenn das Bit 3 eine 1 ist, und die Bits 9-15 ein Variablenfeld -darstellen,, wenn das Bit 2 eine 1 ist. Das Bit 8 kann sich entweder im Schiebebetragregister-Inhaltsfeld oder dem Variablenfeld befinden, wenn beide nicht spezifiziert (vorgeschrieben) sind* Wenn jedoch die Bits 2 und 3' beide eine 1 darstellen, dann wird das Bit β> als Teil dea Schiebebetrag-Register-Inhaltsfeldes betrachtet» ■
Es gibt 16 prüfbar© Bedingungen t von denen.genau eine bei jedem M-Befehl geprüft werden muß. Wenn die Prüfung positiv ausfällt, wird der gesamte Befehl ausgeführt und der wahre Nachfolger als nächste Befehlsadresse gewählt, Wenn die Irüfung negativ ausfällt 9 werden nur die unbedingten Teile des Befehls ausgeführt und der falsche Nachfolger (d^h. die Negation des Nachfolgers) als nächste Befehlsadresse gewählt,
00934 8-/1633
202335k
Me 16 Bedingungen, die überprüft werden können, umfassen die 12 Bedingungsregisterbits und vier andere Bedingungen, bei denen es sich um Überlauf, exklusives ODBR und um die Ausgangssignale der niedrigsten und höchsten Binärstelle des Addierers handelt, die sich bei dem vorhergehenden M-Befehl ergeben.
Die durch die M-Befehle vorgeschriebenen Verknüpfungseinheitsoperationen umfassen die Auswahl der Addierer-Eingangssignale, die Addiereroperation, die Walζensehaiteroperation und die Festlegung des Bestimmungsortes der Ausgangssignale des Addierers und der Walzenschalter, wobei es sich bei diesem Bestimmungsort entweder um die AIU oder das Steuerwerk handeln kann. Die Steuerungen für das Variablen-, Zähler- und Sehiebebetragregister und die Steuerungen zur Änderung von Befehlen, die bereits verarbeitet werden, -sind ebenfalls in dieser Gruppe enthalten.
Die speziellen Rechen- und Yerknüpfungsoperationen sowie Arbeitsspeicher-, Geräte- und Einstelloperationen wurden bereits in dem Abschnitt "Durch ivi-Befehle gesteuerte Operationen" erwähnt. Diese allgemeinen Operationen sollen hier nicht wiederholt werden, doch müssen noch bestimmte spezielle !Punktionen beschrieben werden, die ebenfalls durch die M-Befehle gesteuert werden. Zu diesen gehört nicht nur das Weiterleiten von Datenteilen in das A-"und das B-Register der ALU, sondern auch in die Register 41, 45, 47, 49 und .50, wie es in Pig. 3 dargestellt ist. Die M-Befehle steuern auch die Übertragung des Inhalts des Yariablenregisters 51 in das Zählerregister 50 und die Weiterschaltung des Zählerregisters 51. Wenn der Zähler 50 beim Weiterschalten "überläuft" und auf null zurückgesetzt wird, dann wird das Zählerüberlaufbit des Bedingungsregisters 54 gesetzt. Diese Übertragungssteuerfunktionen werden durch Adressieren entsprechender N-Befehle
009848/1633
CO —
durchgeführt, die die erforderlichen Steuersignale enthalten.
Bei jedem M-Befehl muß der Inhalt des Schiebebetragregisters 44 wie folgt gewählt werden? Entweder gleich dem Innalt, den es bei dem vorhergehenden üefehl hatte, oder gleich dem Wortlängenkomplement des Inhalts, den es bei dem vorhergehenden Befehl hatte, oder gleich dem V/ert der sechs binären Ausgangssignale aer niedrigsten Stelle der Walzenschalter 31 bei dem vorhergehenden Befehl oder gleich einem Yariablenwert aus dem M-Befehl» Diese Wahl wird vor und nicht nach der Verschiebung in den Walζenschaltern 31 getroffen.
Der M-Befehl ermöglicht auch die Durchführung zweier Austauschoperationen, die es ermöglichen9 teilweise ausgeführte Befehle zu ändern» Diese Operationen hängen vom Ergebnis der Bedingungsprüfimg ab und umfassen das Aus=* tauschen des Bestimmungsortes oder des Befehls <, Bei einer Bestimmungsortaustauschoperatioa gestattet eine positive Bedingungsprüfung das Abschließen des vorhergehenden Befehls, und wenn die Bedingungsprüfimg- negativ ausfällt, dann wirkt der gerade in der Durellführung befindliche Befehl als Löschoperation.. Wenn die Bedingungsprüfung/ bei einer Befehlsaustauschoperation positiv ausfällt, dann wird der vorhergehende Befehl nach, eine» Takt-unterbrochen und die laufende Operation ausgeführt s wenn jedocJa. die Bedingungsprüfung negativ ausfällt ~f dann wirkt der laufende Befehl als Lösehoperation«,
Es gibt 12 Arbeitsspeicher- und Garäteaperatlonen, von . denen jede durch ©inen bestisaten M-Befehl ausgelöst werden kann. Diese Operationen simeU Verriegele mit Gerät sum Lesen, verriegele mit Serät gum Schreiben^ entriegele Arbeitsspeicher oder ö©räts der oder äas göm H£sen r0a®r« viert ist, entriegele Arbeitsspeicher oder öeräts der oder
009848/1633
das zum Lesen reserviert ist, lies (wenn ein Gerät bereits zum Lesen verriegelt ist), schreibe (wenn ein Gerät bereits zum Schreiben verriegelt ist), lies Register, schreib Register und bringe Inhalt des Mikroprogrammzählregisters
41 in den M-Arbeitsspeicher.
Wie bereits angedeutet, muß jeder M-Befehl die nächste M-Befehlsadresse oder den Nachfolger im M-Arbeitsspeicher in einer von zwei Arten vorschreiben, eine für den positiven Ausgang der Bedingungsprüfung und eine für den negativen Ausgang der Bedingungsprüfung. Wenn beide Vorschriften gleich sind, dann ist der Nachfolger nicht bedingt. Das Register 42 nach Pig. 2 enthält normalerweise die Adresse des laufenden (gerade in der Ausführung befindlichen) Befehls. Daa Register 41 nach Pig. 2 enthält gewöhnlich die um eins verhinderte Adresse des Altemativbefehls. Es gibt sieben Wahlmöglichkeiten für Jeden Nachfolger: Schalte zum nächsten Befehl der Polge weiter (die nächste Befehlsadresse ist der Inhalt des Registers 42+1, und der Inhalt des Registers 42 wird durch die nächste Befehlsadresse ersetzt), überspringe den nächsten Befehl (diese Operation gestattet bedingte Verzweigungen innerhalb einer expliziten Additionsvorschrift aufgrund eines Befehls; die nächste Befehlsadresse ist der um zwei vermehrte Inhalt des Registers 42, und der Inhalt des Registers
42 wird durch die nächste Befehlsadresse ersetzt), wiederhole den Befehl noch einmal (diese Operation gestattet die Wiederholung der Ausführung eines Befehls so lange, bis sich der Wert einer Bedingung ändert; die nächste Befehlsadresse ist der Inhalt des Registers 42, der unverändert bleibt), speichere. Programmsehleifenadresse (dadurch wird die Speicherung der Adresse des laufenden Befehls im Register 41 veranlaßt, so daß später zu der um eins vermehrten Adresse des laufenden Befehls gesprungen werden kann),
009848/1633
führe einen Befehl außerhalb der Reihenfolge aus (diese Operation gestattet die Ausführung des im Register 41 gespeicherten Befehls und eine unmittelbare Rückkehr zur normalen Reihenfolge), rufe eine Verzweigungsanweisung auf (diese Operation bewirkt einen Sprung in eine Routine, die im Register 41 vorgeschrieben ist, wobei die augenblickliche Position für eine spätere Rückkehr gespeichert wird) und springe (diese Operation gestattet den übergang zur Steuerung des im Register 41 gespeicherten Befehls).
In den M-Befehlen können drei Variable auftreteni M-Befehlsadressen, Datenvariable und Verschiebebeträge. Bei Befehlen des ersten Typs wird über die Verknüpfungseinheitszeit hinaus keine zusätzliche Zeit zur Verarbeitung der Variablen benötigte Bei Befehlen des zweiten Typs, die nur Variable enthalten, wird nicht mehr als ein Takt benötigt. Bei den M-Befehlsadressenvariablen handelt es sich um diejenigen Adressen, die ein vollständiges M-Befehlswort benötigen» das daher nicht bei Befehlen des ersten Typs oder bei anderen Variablen verwendet werden kann. Datenvariable können bei Befehlen des zweiten Typs entweder allein oder zusammen mit einem Schiebebetrag verwendet werden. Die Datenvariable wird im Variablenregister 51 nach Fig. 2 gespeichert, bevor die Verknüpfungseinheit bei diesem Befehl irgendeine Operation durchführt. Die Verschiebebetragvariablen werden ins Register 44 nach Fig. 2 übertragen, bevor die Verlmüpfungseinheit bei diesem Befehl irgendein© Operation durchführt.
Bedingungsbit8
Wie bereits erwähnt, sind die äußeren Sedingungseignale, die dem Bedingungsregieter 54 nach Fig. 2 zugeführt werden, eine der vier Informationsquellen in <äer programmierbaren
009848/1633
Einheit. Da diese Bedingungsbits die Durchführung der M-Befehle durch die F-Befehle beeinflussen, werden die durch diese Bits jeweils dargestellten Bedingungen vorgeschrieben, bevor das Format der F-Befehle vorgeschrieben wird.
Wie bereits erwähnt wurde, speichert das Bedingungsregister 12 prüfbare Bits, die als Fehlerindikatoren, Unterbrechungsbits, örtliche und globale Boolesche Variable und als Asynchronitäts- oder Entriegelungsindikatoren wirken. Das Format des Bedingungsregisters ist in Fig. 16 dargestellt.
Das Überlaufbit (GOV) wird gesetzt, wenn im Zählregister 50 nach Fig. 2 ein Überlauf auftritt, wenn also der Zähler beim Weiterschalten auf null zurückgesetzt wird. Das Bit wird zurückgesetzt, wenn es überprüft (abgetastet) wird. Es wird auch immer dann zurückgesetzt, wenn die Ausgangssignale des Walzenschalters oder der Inhalt des Variablenregisters 51 nach Fig. 2 in das Zählerregister übertragen werden. Wenn es im gleichen Takt gesetzt und zurückgesetzt wird, dominiert die Rücksetzung. Bei einer Überprüfung dieses Bits wird in V/irklichkeit die ODER-Verknüpfung dieses Bits mit dem wahren Überlauf des Zählers überprüft»
Das Lesebereitbit (RDG) ist ein Bit, das anzeigt, daß Daten bereitstehen, die taktweise ins B-Register übertragen werden sollen. Dieses Bit wird von demjenigen Arbeitspeicher-Modul oder Gerät gesetzt, mit dem die programmierbare Einheit in Leseverbindung steht. Alle Geräte setzen dieses Bit. Das Lesebereitbit wird durch Überprüfung zurückgesetzt»
Das Arbeitsspeicheradressenregisterbereitbit (MAR) ist ein Bit, das zum Anzeigen der Tatsache verwendet wird, daß das Arbeitsspeicheradresaenregister 49 erneut geladen werden kann. Es wird durch die Schalterverriegelungvorrichtung oder
009848/1633
ein Gerät während einer Verriegelungs-, Lese- oder Schreiboperation gesetzt. Beim Prüfen wird das Bit zurückgesetzt. Solange wie das Bit gesetzt ist, nachdem die erwähnten Operationen ausgelöst wurden, zeigt es an, daß das Gerät oder der Arbeitsspeicher-Modul belegt ist»
Das Bit ERR zeigt an, daß im Arbeitsspeicher-Modul oder Gerät, der bzw. das mit der programmierbaren Einheit für eine Leseoperation in Verbindung stehts ein Fehler aufgetreten ist. Das Bit wird durch das Gerät oder die Schal-A terverriegelungsvorrichtung gesetzt und beim Überprüfen zurückgesetzt. Das Bit stellt die ODES-Verknüpfung aller Fehlersignale dar, die ein sofortiges Eingreifen erfordern„ Dazu gehören Arbeitsspeicher-Paritätsfehler, ungültige Adressen bei Peripherie-Arbeitsspeichern, Gerät oder Arbeitsspeicher nicht angeschlossen (ein Signal von der dchalterverriegelungsvorrichtung). _und letzausfall im Gerät. V/arnsignale wie "Papier des Sehnelldruckers ausgegangen" gehören nicht dazu (einige Geräte-Eehlerarten werden nur optisch angezeigt).
Das Bit ERW, das ähnlich, wie das Bit EBB wirkt 9 zeigt Fehler an, die bei einem Gerät oder Arbeitsspeicher-Modul, φ das bzw. der mit der programmierbaren Einheit zum Lesen in Verbindung steht, auftreten« Ein Bit "Erster externer Anruf" (EX1) zeigt an, daß ein neuer Anruf.γοη einem externen Gerät oder einer weiteren programmierbaren, Einheit aufgetreten ist". Derartige Anrufe oder Aaforderlangen können normalerweise durch irgendeine programmierbar© Einheit bedient werden«, Das Bit wird durch das Q-erät gleichzeitig oei allen, programmierbaren Einheiten gesetzt« Beim überprüfen wird es (örtlich) in jeder programmierbaren Einheit zurückgesetzt«
009848/1633
Ein Bit "Zweiter externer Anruf" (EX2) ist ein Bit, das einen Anruf von einem Gerät anzeigt, das belegt, jedoch nicht mit irgendeiner j)rogrammierbaren Einheit verriegelt ist (in Verbindung steht). Angezeigt würden solche Ereignisse, wie das Einschalten eines Magnetbandgerätes. In diesem Falle würde nur diejenige programmierbare Einheit, die das einschalten des Bandgerätes ausgelöst hat, eine Antwort erwarten.
Ein Bit "Arbeit-ispeicherinformationsregister bereit" (KIR) zeigt an, daß der Arbeitsspeicher oder ein Gerät nach einer Schreiboperation Daten erhalten hat. Dieses Bit wird beim Überprüfen in jeder programmierbaren Einheit zurückgesetzt.
Ein Bit "Erster globaler Zustand" (GGt) zeigt im gesetzten Zustand an, daß eine Entriegelung (Trennung) erfolgreich durchgeführt wurde. Das Bit kann in höchstens einer programmierbaren Einheit gesetzt werden. Es wird in jeder programmierbaren Einheit örtlich gesetzt und zurückgesetzt. Wenn das Bit überprüft wird, wird es nicht dabei zurückgesetzt.
Ein Bit "Zweiter globaler Zustand" (GC2) hat eine ähnliche Punktion wie aas Bit .GC1.
Ein Bit "Erster lokaler Zustand" (LCT) wird bei kurzzeitiger Speicherung. Boolescher Bedingungen in einer programmierbaren Einheit verwendet. Es wird örtlich durch die programmierbare Einheit gesetzt und örtlich durch Überprüfung zurückgesetzt·
Ein Bit "Zweiter lokaler Zustand" (LC2) ist dem Bit LC1 ähnlich. Welche Bedeutung einem Zustande- oder Bedingungsbit zugeordnet wird, hängt vom speziellen Anwendungsfall ab.
009848/1633
Mit Ausnahme der globalen Zustandebits sind alle Bits .bis auf ihre äußeren Verbindungen identisch. Es können jedoch nur drei Bits (MIR9 LC1, LC2) örtlich gesetzt werden.
jjbgef ehl 8 f ο rma t
Das N-Befehlsformat wird anhand von Fig. 15 beschrieben. Dieses Format besteht aus Steuersignalen, die zur Durchführung der M-Befehle erforderlich sind. Das N-Befehlsformat umfaßt Steuersignale, die nicht unmittelbar durch eine Schaltungsanordnung erzeugt werden, sondern in Befehlsform in dem N-Arbeitsspeicher gespeichert sind und aus diesem unter einer N-Arbeitsspeicheradresse ausgelesen werden, die in einem M-Befehl enthalten ist. Bei dem bevorzugten Ausführungsbeispiel der Erfindung werden die verschiedenen Bits des N-Befehls zwar direkt als Steuersignale verwendet, doch liegt es auch im Rahmen, der Erfindung, die verschiedenen Bits des N-Befehls zu verschlüsseln und verschlüsselte Kombinationen der Bits die Erzeugung der gewünschten Steuersignale bestimmen zu lassen.
Wie in Fig. 15 angedeutet ist, erfolgt die Durchführung eines M-Befehls in drei Phasen. Daher sind auch, die Steuersignale, die durch den N-Befehl ausgelöst werden, in drei Gruppen unterteilt: Nämlich diejenigen, die während der ersten Phase verwendet werden müssen, diejenigen, die während der Phasen 2 und 3 verwendet werden müssen, und diejenigen, die während der Phase 3 verwendet werden müssen.
Die zeitlichen Verhältnisse in den verschiedenen Phasen werden später noch anhand von Taktdiagrammen ausführlicher beschrieben; sie werden jedoch jetzt schon grob beschrieben, um das Verständnis der verschiedenen Steuersignale, die in dem ^-Befehlsformat nach Fig. 15 enthalten sind,
009848/16 33
zu erleichtern. Wie bereits erwähnt., gibt es drei Zeitphasen, und es gibt auch zwei Arten von M-Befehlen. Die eine Art von Befehl löst stets Steuersignale der Phase 1 und Phase 3 aus und kann in einigen Fällen Steuersignale der Phase 2 auslösen. Befehle der zweiten Art enthalten od'er bewirken nur Steuersignale der Phase 1. Durch Befehle der zweiten Art ausgelöste Steuersignale der Phase 1 werden zum Einspeichern der Variablen in die Register 41, 44 oder 51 verwendet. M-Befehle der zweiten Art benötigen stets eine Taktzeit und überlappen stets die Phase 2 der vorhergehenden Befehle der ersten Art,
Die Phase 1 tritt bei jedem Befehl der ersten Art auf und benötigt eine Taktzeit. Sie überlappt stets die Phase 3 des vorhergehenden Befehls der ersten Art (dazwischen können Befehle der zweiten Art auftreten). Die Phase 1 wird zur Zustande- bzw. Bedingungsüberprüfung, zur Berechnung der nächsten Befehlsadresse, zur Auslösung von Arbeitsspeicher- und Geräteoperationen, zum Eingeben von Befehlsvariablen in das Variablenregister 51 oder das Verschiebungsbetragregister 44 und zum Einstellen einer Operation der Verknüpfungseinheit verwendet.
Die Phase 2 tritt bei einigen M-Befehlen der ersten Art auf und benötigt eine variable Anzahl von Taktzeiten. Sie dient zur Verzöerung der Phase 3 zur Übertragweiterleitung, Befehlszwischenspeicherung, Befehlsmodifikation und Durchführung eines M-Befehls der zweiten Art. Wenn es sich bei dem nächsten M-Befehl um einen Befehl der zweiten Art handelt, wird der augenblickliche M-Befehl der ersten Art in der Phase 2 angehalten, und zwar für die Dauer eines Taktes (einer Taktzeit), während der M-Befehl der zweiten Art ausgeführt wird. Die Phase 3 tritt bei Jedem M-Befehl der ersten Art auf und benötigt eine Taktzeit. Sie ist
009848/1633
- 54 -
stets die Phase 1 des nächsten M-Befehls der ersten Art (dazwischen können Befehle der zweiten Art auftreten). Y/ährend der Phase 3 werden Verknüpfungseinheitsoperationen und Zielortbestimmungen durchgeführt·
Die verschiedenen Steuersignale der N-Befehle können in fünf Gruppen unterteilt werden, je nach der Phase, in der sie ausgeführt werdenβ
Nur in Phase 1 verwendete Steuersignale
Diese Steuersignale werden direkt aus den M-Befehlen heraus ausgeführt. Die Bedingungs- oder Zustandsüberprüfung, das Vorschreiben bedingter und nicht bedingter Operationen, das Ersetzen von Operationen, die Nachfolger-Operationen, das Auslösen von Arbeitsspeicher- oder Geräteoperationen und Zustande- oder Bedingungsbitsinstell-Schiebebetragregistervorschreibungen gehören zu dieser Gruppe»
In der Phase { 2 verwendete Steuersignale
Nur die Verknüpfungseinheitsoperationen (mit Ausnahme der Zielortbestimmung) werden in der Phase 2 durchgeführt. In Abhängigkeit von der Breite (Stellsnzahl) einer wahren Additionsoperation, der -Taktfrequenz dar programmierbaren Einheit und davon, ob die Walzensehalterausgangssignale benötigt werden, können zwei anstelle einer Taktseit erforderlich sein, um die Verknüpfungsein&eitsoperation vollständig durchzuführen. In diesen Fällen wird eine Phase 2 mit einer Dauer von einer Taktzeit eingeschaltete Die Tatsache-, daß eine zusätzliche Zeit benötigt wird, wird explizit im Befehl während der Dauersteuerung angezeigt.
008848/1633
Wenn das Auslesen des nächsten Befehls aus dem M-Arbeitespeicher verzögert wird, bleibt der Befehl der ersten Art, der gerade ausgeführt wird, (und es wird ständig einer ausgeführt) so lange in der Phase 2, bia das Auslesen durchgeführt werden kann. Die Länge dieser Verzögerungszeit läßt sich nicht vom Programmierer bestimmen und wird dynamisch durch den Mikroprogrammzwischenspeicher oder den M-Arbeitespeicher angezeigt.
Wenn der nächste M-Befehl eine Ereetzungs- oder Austauschoperution enthält, wird der Befehl der ersten Art, der gerade ausgeführt wird, für die Dauer eines Taktes (einer Taktzeit) in der Phase 2 angehalten, um die Durchführung der }hase 1 der Austauschoperation zu gestatten* Das Bedürfnis nach dieser Verzögerung wird durch die Austauschsteuersignale des nächsten befehle bestimmt.
In i hase 2 und Phase 3 verwendete Steuersignale
L'ieee Steuersignale werden uus dem Befehlsregister 52 heraus ausgeführt. Diese Gruppe steuert nur die Verknüpfungseinheitsoperation, und zwar die A-riegieterauswahl, die B-Registerauswahl, die C-Eingabeauswahl, die Addiereroperation und die Walzenschalteroperation.
Kur in Phase 3 verwendete Steuersignale Diese Steuersignale kommen aus dem Befehlsregister 52.
öie steuern die A-Register-Zielortbestimmung, die 3-Register-ZielortbestimiBung, die ?ern-Zielortbestimmung und die Variablenübertragung sowie Zähleroperationen.
009848/1633
Die Variablen in den M-Befehlen werden während des ersten Taktes des Befehls in das vorgeschriebene Register (41, 44 oder 51) übertragen. Bei Befehlen der ersten Art ist dies die Phase 1; bei Befehlen der zweiten Art ist dies die Phase 2 des Befehle der ersten Art, der dann gerade ausgeführt wird.
Eine Tabelle der wichtigeren Steueroits (oder Steuersignale), die in dem K-Befehlsformat enthalten sind, sind in Fig. 20 zusammen mit einer Liste ihrer Funktionen dargestellt.
Äußere Steuersignale setzen die Zustande--bzw. Beciingungsregisterbits und werden durch äußere Geräte, Arbeitsspeicher und andere programmierbare Einheiten, ausgelöst.
Die speziellen Steuersignale werden im einzelnen noch anhand der verschiedenen Schaltungen näher beschrieben, denen diese Steuersignale zugeführt werden,.
Ausführliche Beschreibung spezieller Schaltungen
In Pig. 3 ist ein ausführlicheres Blockschaltbild der ALU nach der Erfindung als in Fig. 2 dargestellt. Es sei daran erinnert, daß ein Merkmal der Erfindung in der Schaffung einer Rechen- und Verknüpfungsschaltung besteht, die aus mehreren modularen Verknüpfungseinheiten aufgebaut ist. Lie Schaltungsanordhung nach "Fig. 3 enthält eine Verknüpfungseinrichtung in Form zweier Halbglieder 60 und 61. Jedem Halbglied sind Datenteile oder Datensegmente aus acht Bits zuführbar. Die Verknüpfungseinrichtung nach Fig. 3 kann daher aus 16 Bits bestehende Datensegmente aufnehmen. Die Verknüpfungshalbglieder 60 und 61 werden jeweils durch binäre Steuervorrichtungen 68 und 69 gesteuert, die ihrer-
009848/1633
202335A
seits durch Steuersignale des N-Dekodierers 55 des Steuerwerks der programmierbaren Einheit nach Fig. 2 gesteuert werden.
Das Verknüpfungshalbglied 60 enthält Verknüpfungsgruppen 64 und 65 sowie Übertragseinheiten 74 und 75. In ähnlicher Weise enthält das Verknüpfungshalbglied 61 Verknüpfungsgruppen 66 und 67 sowie Übertragseinheiten 76 und 77. Jede Verknüpfungsgruppe kann Datensegmente aus vier Bits aufnehmen. Wie die Darstellung nach Mg. 3 zeigt, besteht die Punktion jeder Übertrageinheit in einer Übertragvorausschau für ihre zugeordnete Verknüpfungsgruppe. Außerdem wird die Übertragvorausschau für jedes Halbglied 60 und 61 auch jeweils durch Übertragvorausschau-Halbglieder 80 und 81 durchgeführt. .
Der übrige Teil der ALO", die in Fig. 3 dargestellt ist, enthält A-Register 32 und das B-Register (und'Nicht-Tore) 33. Das Setzen der A-Register 32 kann durch A-Register-Steuervorrichtungen 70 und 71 und das B-Register durch eine B-Register-Steuervorrichtung 72 gesteuert werden. Die NIGHT-Tore, die noch ausführlicher beschrieben werden, werden durch Signale gesteuert, die sie vom Steuerwerk über Steuerleitungen 73 erhalten.
In den Pig. 2 und 3 sind gleiche Bezugszahlen für gleiche Bauteile verwendet.
In Fig. 4 ist eine andere Ausführungsform einer ALU dargestellt, die aus zwei Verknüpfungseinrichtungen oder vier Verknüpfungshalbgliedern besteht. Bei diesem Aufbau kann die ALU Datensegmente aua 32 Bits aufnehmen. Wie bei dem Ausführungsbeispiel nach Fig. 3V ist an jedes der Verknüpfungshalbglieder 60, ..·, 63 jeweils ein Übertragvoraus schau-Halbglied 90, *.., 93 angeschlossen. Die Ver-
009848/1833
202335A
bindungen zwischen den verschiedenen Vorausschau-Halbgliedern unterscheiden sich von denen des Ausführungsbeispiels nach Fig. 3 in folgender Weise. Jedes Übertragvorausschau-Halbglied erhält Gruppensignale von den beiden Übertrageinheiten in dem entsprechenden Verknüpfungshaibglied, wie θβ in Hg. 3 dargestellt ist, und führt zu diesen Übertrageinheiten Gruppenübertragsignale zurück. Außerdem erzeugt jedes Übertragvoraussehau-Halbglied Halbglied-Übertragungs- und Halbglied-Erzeugungasignale, die jedem Übertragvorauaschau-Halbglied in der Einrichtung, bei dem es sich um dasjenige von jeweils zwei Übertragvorausschau-Halbgliedern handelt, das der höheren Stelle zugeordnet ist, zugeführt werden» Nach Fig« 4 stellen also die tibertragvorausscham-Halbgliedar 90 und 92 die höchststelligen Übertragvorausschau-Halbglieder der Paare 90, 91 und 92, 93 darf während di® Übertragvorauaschau-Halbglieder 91 und 93 jeweils das niodrigststallige Halbglied der Paar® darstellen Umgekehrt erzeugt das niedrigststellige Halbglieä jedes Paares Gruppensignale, die dem höchststelligen Glied diesee Paares zugeführt werden· Wie ferner aus Fig» 4 zu ersehe» ist, werden die vom höchststelligea 6-lied eines Paare® erzeugten Halbgliedsignal® den anderen liöchststelligen Gliedern der Paare über Verbindung®!!, 94 und 95 zugeführt» während die Gruppenüberträge zwischen Halbgliedern von den niedrigststelligen des Paares zu den höchststelligen de® Paares über Verbindungen 96 übertragen, werden« Bei dem Ausführungsbeispiel" nach Pig· 3r bei dem nur ein Paar von HaIbgliedern verwendet wirdj, werdan die swischen. Halbgliedern übertragenen Gruppensignale erneut üfeer eine Verbindung 82 vom niedrigststelligen Glied des Paare® zum höchstetelligen übertragene Wie fernsr an© Hg1, 3-zu ersehen ist„ werden die Halbgliedübertrageignal© auch, von demjenigen ÜbertragvorausBchaii-Halbglied Y®rw®nd@t9 das dies® Signale erzeugt«
202335A - 39 -
Ee bestehen noch weitere Unterschiede zwischen den Ausführungsbeispielen nach den Pig. 3 und 4. Ein Unterschied ist die Art und Weise, in der die verschiedenen Steuersignale zur Betätigung verschiedener Verknüpfungshalbglieder verwendet werden. Bei dem Ausführungsbeispiel nach Fig. 3 iat jedes Verknüpfungshalbglied mit seiner eigenen Verknüpfungssteuereinheit versehen, so daß jedes Verknüpfungshalbglied getrennt verwendet werden kann. Bei dem Ausführungsbeispiel nach Pig. 4 sind das höchststellige Halbglied 60 und das niedrigatstellige Verknüpfungshalbglied 63 jeweils mit getrennten (eigenen) Steuereinheiten 98 und 99 versehen. Den dazwischen liegenden Verknüpfungshalbgliedern 61 und 62 werden die gleichen Steuersignale von der Zwischen-Stauereinheit 97 zugeführt. Jede der Steuereinheiten wird durch Steuersignale des Steuerwerks der Anlage in Abhängigkeit vom Format der jeweiligen N-Befehle gesteuert, wie nachstehend noch ausführlicher beschrieben wird.
Wie aus Pig. 2 zu ersehen ist, ist der Addierer 30 auch mit einem dritten Eingang, dem Z-Eingang, versehen. Wie aus den Fig. 3 und 4 zu ersehen ist, stellen die X-Eingangssignale den Inhalt des Zählerregisters 50 nach Fig. 2, der dem höchststelligen Verknüpfungshalbglied zugeführt wird, und den Inhalt aus dem Variablenregister 51 nach Fig. 2 dar, der dem niedrigeteteiligen Verknüpfungehalbglied zugeführt wird.
Die in Pig. 3 dargestellten und auch bei dem Ausführungsbeispiel nach Pig. 4 realisierten Verknüpfungsgruppen sind gleich ausgebildet. Der Schaltungsaufbau einer Verknüpfungsgruppe ist in Pig. 5 dargestellt und wird jetzt beschrieben. Es handelt sich üb ein Schaltnetz, das iat wesentlichen aus mehreren UKD-Glieäern und NOE-Gliedern besteht. Das Schaltnet ε nach Pig. 5 kann in vier Schaltungsgruppen unterteilt
009848/1633
werden, von de,nen jeder Datenbits mit verschiedener Stellenwertigkeit in Form von Signalen und auch Steuersignale C1, ..., C7 zuführbar sind. Eine erste Ebene von Verknüpfungsgliedern erzeugt Zwischensignale X, Y, K1 und deren Komplemente (auch Negationen genannt) und führt sie einer zweiten Ebene von Verknüpfungsgliedern zu, um ein Erzeugungssignal, Übertragungss.ignal und ein Summensignal für Jedes der vier Kennbit-Teile zu erzeugen. Die durch das Schaltnetz nach Pig. 5 verwirklichten Schaltfunktionen sind in Fig. 5 in Form schaltalgebraischer Gleichungen dargestellt.
Die A-Eingangssignale kommen aus den A-Begistern. Die B-Eingangesignale kommen aus deaf B-Register und stellen den "wahren" Inhalt dieses Registers oder dessen Negation (Komplement) dar. Die Z-Eingangssignale kommen entweder vom Zähler 50 oder aus dem Variablenregister 51 des Steuerwerks der programmierbaren Einheit, die in Fig. 2 dargestellt ist. Die negierten Übertragssignale K kommen von den jeweiligen Übertragvorausschau-Schaltungen, die noch ausführlicher beschrieben werden. Die S-Signale stellen die Verknüpfungsergebnisse dar und werden entweder den Y/al ζ en schal tern 31 oder dem B-Register 33 zugeführt« Die G-Signale und T-Signale werden den jeweiligen Ubertragvorausschau-Schaltungen zugeführ.t, die daraufhin die erwähnten negierten Übertragssignale K erzeugen.
Die o-Ausgangssignale stellen Verknüpfungsergebnisse in Abhängigkeit von der Wahl der Steuersignale C-j, ..., CL dar, die dem Schaltnetz bzw. der Verknüpfungsgruppe nach Fig. 5 in Abhängigkeit von den Steuereinheiten 68 und 69 nach rig. 3 zugeführten N-Signalen zugeführt werden. Die N-Signale Kommen vom ft~Dekodxerer 55 (Pig. 2) und stellen einen vorbestimmten N-Befehl dar.
202335A
Wie aus Pig. 5 zu ersehen ist, muß Jedes Stellenbit-Glied der in dieser Figur dargestellten Verknüpfungsgruppe ein Übertragsignal vom vorhergehenden Glied erhalten und dem in der Reihenfolge nächsten Glied das Übertragsignal zuführen« Die Gruppen-Übertragvorausschau-Schaltung, die diese Signale erzeugt, ist in Fig. 6 dargestellt und wird jetzt beschrieben. Die Schaltung ist so ausgelegt, daß sie über die Halbglied-Übertragvorausschau-Schaltung, die nachstehend beschrieben wird, ein Übertragsignal GCjn von der nächstniedriger stelligen Verknüpfungsgruppe erhalte Diese Schaltung erhält auch die verschiedenen Bitübertragungssignale BT und Biterzeugungssignale BG von den jeweiligen Gliedern ihrer zugehörigen Verknüpfungsgruppe. Die Erzeugung dieser Signale wurde anhand von Fig. 5 beschrieben. Nach Erhalt dieser Signale erzeugt die Schaltung nach Fig. 6 ihrerseits die entsprechenden negierten Übertragsignale Se, die den verschiedenen Gliedern der zugehörigen Verknüpfungsgruppe als Übertragsignale K (siehe Fig. 5) zugeführt werden. Wie weiter in Fig. 6 dargestellt ist, erzeugt diese Schaltung auch das negierte Gruppenübertragungssignal GT und das negierte Gruppenerzeugungssignal GG, die den Übertragvoraueschau-Halbgliedern zugeführt werden, wie es in Fig. 3 dargestellt ist, und die noch ausführlicher beschrieben werden. Die durch die Schaltung nach Fig. 6 verwirklichten algebraischen Schaltfunktionen sind ebenfalls in Fig. 6 dargestellt. Die Schaltung nach Fig. 6 ist die Schaltung der jeweiligen Übertrageinheiten 74, ·.·, 77, die in Fig. 3 dargestellt sind.
Die Übertragvoraueschau-Halbglieder 80 und 81, die in Fig. 3 dargestellt sind, und 90, ..·, 93» die in Fig. 4 dargestellt sind, sind in Fig. 7 ausführlicher dargestellt und werden jetzt beschrieben. Wie in den Fig. 3 und 4 dargestellt ist, erhält jedes Übertragvorausschau-Halbglied in Abhängigkeit davon Signale oder keine Signale vom nächst-
009148/1631
niedriger stelligen Übertragvorausschau-Halbglied, ob es sich um das höchststellige oder niedrigststellige Übertragvorausschau-Halbglied des Verknüpfungsteils handelt, von dem es ein Teil bildet. Umgekehrt führt jedes Übertragvorausschau-Halbglied den anderen Übertragvorausschau-Halbgliedern verschiedene Arten von Signalen in Abhängigkeit von seinem Platz in der hierarchischen Reihenfolge au. Die Schaltung nach Fig. 7 ist so ausgelegt, daß sie die verschiedenen gewünschten Signale unabhängig von ihrer Reihenfolge in der Hierarchie erhält und erzeugt. Daher sind bestimmte Verbindungsleitungens die In Pig. 7 dargestellt sind, erforderlich oder nicht erforderlich. Die Schaltung nach Pig« 7 ist daher so ausgelegt, daß sie negierte Gruppenerzeugungssignale GH? erhält, die durch Zeichen mit ungeradaahligen Indices dargestellt sind,, wenn sie von einer niedriger stelligan. Gruppe von Übertrageinheiten kommen j und mit geradzahligen Indizes versehen sind, wenn sie von einer höher st@llig©n Gruppenübertragseinheit kommen. Die Schaltung kann auch negierte Gruppenübertragungssignale GT erhalten, die ebenfalls nach der eben angegebenen Definition mit geradzahligen und ungeradzahligen Indizes versehen sind. Ferner erzeugt die Schaltung nach Pig. 7 Gruppenübertragsignal© GC, die ebenfalls mit geradzahligen oder ungeradzahligen Indizes in Abhängigkeit von ihrer Stellenwertigkeit versehen sind und den jeweiligen Gruppenübertragsöinheiten zugeführt werden, wie es in Pig, 3 dargestellt iet. Wenn das Üb@rtragvoraueschau-Halbglied ein niedriger etelligfes ist, ist es so ausgebildet, daß es dem näc* thöher stelligen die Gruppenübertragungssignale GT unu Gruppenerzeugungssignale GG zuführt,,
Wenn die Schaltung ein höehststelliges Übertragvoraussehau-Halbglied ist, erzeugt es die jeweiligen Halbglied-Übertragungssignale ST und Halbglied-Erzeugungssignale SG und führt sie allen hoher etelligen Übertragvoraueschau-Halb-
001848/1633
gliedern der ALU zu, wie es in Pig. 4 dargestellt ist. Me Schaltung nach Pig. 7 ist daher auch so ausgebildet und angeschlossen, daß sie diese Halbgliederzeugungs- und Halbglied-Übertragungssignale von den anderen höchststelligen dbertragvorausschau-Halbgliedern erhält und daraus ein negiertes i'bertrageingangssignal S(L erzeugt. Diese Punktion iet jedoch nicht vorgesehen, wenn es sich bei dieser Schaltung um ein niedriger stelliges Übertragvorausschau-Ilalbglied handelt. In ähnlicher Weise spricht die Schaltung nicht auf Gruppenübertragungs- und Gruppenerzeugungssignale des nächstniedriger stelligen Übertra^rorausschau-Halbgliedes an, und in diesem Falle werden den Eingangsleitungen für diese Funktion zwangsläufig auf null oder eins gehaltene binäre Signale zugeführt, wie es in Pig. 7 dargestellt ist.
Es sei darauf hingewiesen, daß die Erzeugung von Gruppenübertragsignalen und deren Weiterleitung in die niedrigstetelligen Bitstellen jedes Verknüpfungshalbgliedee durch ein Steuersignal N15 gesperrt werden kann, das durch eine Steuereinheit 68 oder 69 (siehe Fig. 2) erzeugt werden kann.
Die durch die Schaltung nach Fig. 7 verwirklichten algebraischen Schaltfunktionen sind ebenfalls in Pig. 7 dargestellt.
Die verschiedenen binären Steuereinheiten 68 und 69 nach Fig. 3 und 97, 98 und 99 nach Fig. 4 werden jetzt anhand von Fig. b näher beschrieben. Bei diesen Steuereinheiten handelt es sieh um herkömmliche Dekodierer, die aus mehreren UKD- und NOR-Gliedern bestehen. Der öchaltungsaufbau ist dennoch-dargestellt, um das Verständnis der verschiedenen N-Steuersignale zu erleichtern, die aus den H-Befehlen gewonnen werden. Die zur Steuerung der jewei-
009848/1633
ligen Verknüpfungsgruppen nach Fig. 5 verwendeten Steuersignale umfassen fünf N-Signale, von denen ein Signal ein Sperrsignal ist. Durch die Dekodierung der Signale Nq, N10, N1- und N1O werden sieben Untersteuersignale O1, ..., Cj erzeugt und den betreffenden Verknüpfungsgruppen zugeführt, wie es in Fig. 5 dargestellt ist und anhand dieser Figur beschrieben wurde. Ein achtes Signal N15 wird ebenfalls durch das Steuerwerk nach Fig. 2 erzeugt und dem Übertrag-Halbglied zugeführt, das dem Verknüpfungshalbglied entspricht, um die Erzeugung des niedrigststelligen Gruppenübertragsignals für dieses Verknüpfungshalbglied zu sperren, wie es anhand von Fig. 7 beschrieben wurde. Ein weiteres Sperrsignal dient zum Sperren der Signale Cj- und Cg. Kurz auf Fig. 5 Bezug nehmend, sei darauf hingewiesen, daß die Signale C5 und Cg zur Einschaltung der Z-Eingangssignale der Verknüpfungsgrupue dienen. Das der Steuerschaltung nach Fig« 8 zugeführte Sperrsignal dient also zum Sperren des Z-Eingangs der entsprechenden Verknüpf un^s gruppen. Die durch die verschiedenen Verknüpfungsgruppen unter der Leitung der N-Steuersignale durchgeführten Funktionen sind in Fig. 20 unter der Überschrift "Addiereroperation11 aufgeführt.
Andere Beispiele, wie die N-Steuersignale des N-Befehlsformats zur Steuerung der ALU-Operationen verwendet werden, sind in den Fig. 9, 10 und 11. dargestellt, die jeweils den Schaltungsaufbau der A-Eegister, des B-Registers und der Walzenschalter zeigen«
Wie in Fig. 9 dargestellt ist, bestehen die drei A-Kegister A1, A2 und A5 jeweils aus drei Gruppen von Flipflops A11* ..·, A18; A21, .... A^g5 A^1, .··, A^q. Wie aus der Ta» belle nach Fig. 21 zu ersehen ist, werden di® Eingänge der Α-Register durch zwei N-Signale N21 und N22 gesteuert, deren Aufgabe darin besteht, den Inhalt der Α-Register im-
009848/1833
202335A
verändert zu halten und einen Eingang des A1-Registers, des A2-Hegisters und des A3-Registers zu bilden. Nach Fig. 9 werden die Steuersignale N2 -\ und N22 &&&■ N-Dekodierer 110 zugeführt, der diese in drei Signale C15, C14 und C1C umsetzt, die jeweils den Flipflops des Al-Registers, des A2-Registers und des A3-Registers zugeführt werden. Bei diesen Signalen kann es sich um solche Signale handeln, die die betreffenden Flipflops während einer Taktzeit zurückgesetzt halten und dadurch verhindern, daß die Flipflops gesetzt werden, so daß die Funktion der Steuersignale N21 und N22 darin besteht, irgendeines der C-Signale zu sperren und somit zu gestatten, daß Datensegmente, die über die Datenleitungen 88 zugeführt werden, in irgendeinem der Register-Flipflop-Gruppen gespeichert werden.
Wie aus der Tabelle nach Fig. 19 zu ersehen ist, werden die A-Register-Ausgänge durch die Steuersignale N1 und N2 gesteuert, um das Auslesen der Register A1, A2 und A, zu bewirken oder alle auf null zurückzusetzen. Wie diese Operationen verwirklicht werden, ist ebenfalls in Fig. 9 dargestellt, wonach die Steuersignale N1 und N2 einem N-Dekodierer 111 zugeführt werden, der seinerseits vier Ausgangssignale Cq, ..., O12 erzeugt. Die Signale Cq, C10 und C11 werden UND-Gliedern zugeführt, um das Auslesen der Flipflops der Register A1, A2 und A3 zu steuern. Das Signal G12 wird jedoch mehreren nur mit einem Eingang versehenen UND-Gliedern zugeführt, deren Ausgangssignale durch NOR-Glieder, wie es in Fig. 9 dargestellt ist, negiert werden, um O-Ausgangssignalβ zu erzeugen. Die Ausgangssignale der NOR-Glieder werden über leitungen 84 den jeweiligen Verknüpfungsgruppen zugeführt, wie es in den Fig. 3 und dargestellt ist.
Anhand von Fig. 10 wird beschrieben, wie die Steuersignale den Betrieb des B-Registers steuern. Wie aus der Tabelle
008848/1633
nach Pig. 20 zu ersehen 1st, werden die Eingänge des B-Registers durch drei N-Signale, N18, N1Q und N20 gesteuert. Diese Signale werden (siehe Pig. 10) einem N-Dekodierer 112 zugeführt, der sie in Signale C1^, ..., Cp1 umsetzt. Ss sei daran erinnert, daß das B-Register aus dem Haupt-Arbeitsspeicher, vom Addierer und von den Walzenschaltern Daten und 4-Bit-Überträge und 8-Bit-überträge erhalten kann. So dient das Signal C1^ zum Durchschalten eines UND-Gliedes zur Übertragung eines über eine Eingangsleitung 107 zugeführten Signals, das einen 8-Bit-Übertrag darstellt, das Steuersignal C1^ zum Durchschalten eines UND-Gliedes zur Übertragung eines über eine Eingangsleitung 108 sugeführten Signals, das einen 4-Bit-Übertrag darstellt, das Signal C18 zum Durchschalten eines UND-Gliedes zur Übertragung von über Eingangsleitungen 106 zugeführten Dat@nbit8f das Signal C1Q zum Durchschalten von UND-Gliedern zur Übertragung von 8-Bit-Datensegmenten, die über Leitungen 105 zugeführt werden, und das Signal CpQ zum Durchschalten von UND-Gliedern, um die Übertragung von Datenbita über Leitungen 104 ins B-Register zu ermöglichen. Die Leitungen 104 gehören zu den Datenleitungen 88, die von den Walzenschaltern kommen und auch die Leitungen 106 von den Addiererausgängen umfassen, Die verschiedenen C-Signale dienen also zum Durchschalten der verschiedenen zugeführten Datenbits in die jeweiligen Flipflops B-, ..·, Bg, die das B-Register bilden. Wie aus Fig. 10 zu ersehen ist, dient das Steuersignal Cp1 zum Setzen der jeweiligen Flipflops mit Beginn eines Taktes.
Die Schaltfunktionen der Steuersignale I~* „.·, N8 , die diese Operationen steuern, sind in der Tabelle nach Fig. 19 unter der Überschrift "B-Register-Ausgänge" angegeben. Diese Steuersignale werden vom Steuerwerk der programmierbaren Einheit nach der Erfindung den entsprechenden Verknüpfungegliedern nach Fig. 10 zugeführt, deren Ausgangs-
001041/1633
leitungen die Datenleitungen 85 bilden, die das B-Register iuit den jeweiligen Verknüpfungseinheiten verbinden. Die in den Fig. 9 und TO dargestellten Register sind nur auf eine Stellenzahl (Breite) von 6 Bits ausgelegt. Die Register können jedoch auf jede beliebige Stellenzahl erweitert werden. Die einzige Änderung, die unter Umständen erforderlich würde, wäre das Zwischenschalten zusätzlicher Treiberstufen, um die erforderliche Steuerleistung zu erzielen. Aber auch die Treiberstufen würden durch die jeweiligen N-Signale in der beschriebenen Weise gesteuert werden.
Fig. 11 stellt ein echematisches Schaltbild der Walzenschalter dar, von denen zwei bei diesem Ausführungsbeispiel der Erfindung verwendet werden. Die Schaltung nach Fig. 11 kann 8-Bit-Datensegmente über die Datenleitungen 88 aufnehmen und nach rechts oder links um irgendeinen Betrag verschieben, der im Schiebebetragregister 44 nach Fii*. 2 angegeben ist. Die Ausgangssignale des Registers weraen einem (nicht dargestellten) Dekodierer zugeführt, der durch Signale N1^ und N1- des Befehls gesteuert wird und die passenden Steuerleitungen C22* ···» C?9 auswählt, die zur Durchführung der gewünschten Verschiebung erforderlich sind. Wenn also der Inhalt des Sehiebebetragre- £.isters 44 eine Verschiebung von drei Bits vorschreibt und der N-Befehl eine Rechtsverschiebung bestimmt, führt der Dekodierer der Leitung Ggc ein entsprechendes Signal zu. Wem: der N-Befehl eine Linksverschiebung (von drei Bits) vorschreibt, dann führt der Dekodierer der Leitung Οργ ein Signal zu. Daa resultierende, verschobene Datensegment wird dann wieder den Datenleitungen 88 zugeführt. Die durch die Signale N1^ und N1- vorgeschriebenen Operationen sind in der Tabelle nach Pig. 19 unter der Überschrift "Schiebeoperationen" angegeben.
Der Schalter nach Pig. 18 kann auch auf die Aufnahme von Datensegmenten mit einer größeren Anzahl von Bits erweitert
D09B48/1633
werden, wenn die Datenkanalbreite der programmierbaren Einheit nach der Erfindung entsprechend erweitert ist.
Im folgenden werden die Fig. 19 und 20 kurz beschrieben. Wie bereits in bezug auf das Format des N-Befehls nach Fig. 15 beschrieben wurde, besteht dieser Befehl hauptsächlich aus Steuersignalen, die während verschiedener Betriebsphasen der programmierbaren Einheit verwendet werden müssen und jetzt ausführlicher beschrieben werden. Die drei Gruppen von Halbglied-Steuersignalen oder li-Signalen werden in den Phasen 2 und 3, in der Phase 3 und in der Phase 1 verwendet. Fig. 19 ist eine Liste der N-Steuersignale, die während der Phase 2 und 3 verwendet werden. Fig. 20 ist eine Liste der übergeordneten N-Steuersignale, die während der Phase 3 verwendet werden.
Wie bereits erwähnt wurde, werden die N-Befehle aus dem N-Arbeitsspeicher geholt und vorn N-Dekodierer 55 (siehe Fig. 2) dekodiert oder realisiert. Diese Schaltung ist ausführlicher in Fig. 17 dargestellt und wird jetzt beschrieben.
Der N-Befehl mit dem in Fig. 16 dargestellten Format wird über das N-Arbeitsspeicher-Ausgaberegister 115 in die verschiedenen Register übertragen, die die Prüfschaltung 53 nach Fig. 2 bilden. Wie aus dem Befehlsformat nach Fig. zu ersehen ist, enthält der N-Befehl Phase-1-Steuersignale, Phase-2/3-Steuersignale und zwei weitere Bits, die eine Verknüpfungeeinheitsoperationsbedingung und eine 2-Taktzeiten-Bit-Bedingung darstellen» Die speziellen Steuersignale der Phase 3 und die Steuersignale d®r Phase 2 und 3 wurden bereits ausführlicher beschrieben. Die Steuersignale der Phase 1 wurden jedoch noch nicht ausführlich beschrieben. Bei den Steuersignalen der Phase 1 handelt
009848/1633
202335A
es sich, um diejenigen Signale, die während der ersten Phase einer Befehlsausführung erforderlich sind und zur Steuerung der verschiedenen Bedingungsregister nach Fig. 17 verwendet werden. Ein Bit des Steuerfeldes der Phase 1 bestimmt also, ob der wahre oder der negierte Zustand der verschiedenen Bedingungsbits des Bedingungsregisters 54 geprüft werden sollen oder nicht. Dieses Signal wird einem Bedingungswähler 118 über eine leitung 142 zugeführt. Vier andere Bits des Phase-1-Feldes schreiben eine spezielle Bedingung vor, auf die die verschiedenen Bedingungsbits des Bedingungsregisters 54 überprüft werden müssen, und diese vier Signale werden einem Bedingungswählerdekodierer 119 über Leitungen 141 zugeführt.
Eine weitere Gruppe von Steuerbits des Feldes der Phase 1 schreibt eine neue M-Befehls-Adresse vor, und diese Bits werden über Leitungen 139 und 140 einem Arbeitsspeicher-Register-Steuerwähler 128 zugeführt, der bewirkt, wenn er durch, den Bedingungswähler 118 vorbereitet ist, daß das M-Programm-Adressenregister (MPAD) 129 die Übertragung einer neuen Adresse durch das Register 42 oder das Register 41 nach Fig. 2 in den M-Arbeitsspeicher auslöst.
Das Steuerfeld der Phase 1 enthält ferner Bits, die eine Arbeitsspeicher- oder eine Geräte-Operation oder eine Setz-Operation vorschreiben, wie es bereits beschrieben wurde, und diese Bits werden über Leitungen 136 und 137 in ein Vorbereitungsregister 127 übertragen, das, wenn eine geeignete Bedingung durch, den Bedingungswähler 118 überprüft wird, diese Bedingung der Schalterverriegelungsvorrichtung und auch einem Setzbedingungsdekodierer 120 zuführt, um das entsprechende Bedingungsbit im Bedingungsregister 54 zu setzen. Ein weiteres Bit des Steuerfeldes der Phase 1 dient zum Anzeigen eines Wortkomplements des Inhalts des Registers 44 nach Fig. 2. Dieses Bit wird über eine Lei-
009848/1633
tung 135 in ein Vorbereitungsregister 126 übertragen, um das Komplement im Schiebebetragregister 44 auszubilden. Wenn eine Verknüpfungseinheitsoperation durchgeführt werden soll, wird das entsprechende Bit des N-Befehlsformatee über eine leitung 132 in Setzbedingungsregister 123 und 124 übertragen, um die Steuersignale der Phase 2 und 3 und der Phase 3 ins Befehlsregister 52 zu übertragen. Wenn ein 2-Taktzeiten-Befehl ausgeführt werden soll, wird dieser durch das erste Bit des N-Befehlsformates angezeigt und über UND-Glieder 125 taktweise ins Befehlsregister 52 übertragen. Bas Befehlsregister enthält dann die passenden Steuersignale der Phase 2 und 3 und der Phase 3, die bereits beschrieben wurden und zur Steuerung der Verknüpfungsund Zieiortbestimmungs-Operationen erforderlich sind. Die anderen, zum Setzen der jeweiligen Bedingungsbits des Bedingungsregisters 54 erforderlichen Signale enthalten ein Signal, das aus der Schalterverriegelungsvorrichtung zum Grlobalbedingungshit 121 übertragen wird, um die geeigneten Grlobalbedingungsbits im Bedingungsregister 54 zu setzen. Die anderen Bedingungsbite, die gesetzt werden müssen, werden durch Signale der ALU oder der Schalterverriegelungsvorrichtung gesetzt, wie es bereite beschrieben wurde.
Der M-Befehls-Dekodierer 40 wird jetzt anhand von Pig. 18 beschrieben. Es sei daran erinnert, (vgl. die Beschreibung des M-Befehlsformates anhand von Fig· 14), daß eine 1 in der nullten Bitstelle einen Befehl der ersten Art anzeigt, der eine N-Adresse enthält, und daß eine 0 in der nullten Bitstelle einen Variablenbefehl oder einen Befehl der zweiten Art anzeigt, bei dem die Bitstelltn 1 und 2 verschiedene VarlablQnoperationea vorschreiben» Nach Fig. 18 werden diese ersten drei Bits durch einen Dekodierer 151 überprüft. Wenn die nullte Bitstelle ein® 1 enthält, dann wird der Inhalt des HPM-Eegisters 150 zur Adressierung des N-Arbeitsepeichers ausgelesen. Wenn das nullte Bit eine
00S843/ 1633
2Ό2335Α
Hull und das erste Bit eine Eine ist, dann wird das Variablenfeld des M-Befehle ins Variablenregieter 51 nach Fig. 2 übertragen, Wenn die zweite Bitstelle eine Eins enthält, dann wird der Inhalt dee Schiebebetragregisterfeldes (vgl. Fig. 14) zum Schiebebetragregistereingabewähler 153 übertragen. Wenn die ersten drei Bitstellen eine Null enthalten, dann ist der verbleibende Teil des M-Befehls eine neue M-Adresse, dit ins Register 41 (Fig· 2) Übertragen wird. Wenn sowohl die erste als auch die zweite Bitstelle eine Eins enthält, betätigt der Dekodierer 151 ein Steuertor 152» um das Variablenregister 51 so einzustellen, daß es ein Datensegment mit verschiedenen Anzahlen von Datenbits aufnimmt, wie es bereits bei der Beschreibung des M-Befehlsformatee erwähnt wurde.
Wie ebenfalls bereite erwähnt wurde, enthält das N-Befehlβίο rmat in dem Feld der Phase 1 bestimmte Bits, die zum Vorschreiben von Datenübertragungen in die oder aus der programmierbaren Einheit verwendet werden. Ua die Art und Weise besser zu verstehen, in der die Datenübertragungen stattfinden, und um zu erläutern, wie Daten und die verschiedenen Befehle in ihren zugehörigen Arbeitsspeichern abgespeichert werden, wird aui Fig. 12 Bezug genommen, in der die üchalterverriegelungavorrichtung (SW) ausführlicher dargestellt ist, die in Fig. 1A nur duroh gestrichelte Linien angedeutet ist. Wie aus Fig· 12 iu ersehen iet, können Daten und/oder Befehle in irgendeinen der drei Arbeitsspeicher 20a, 20b und 20c über das Arbeitsspeicher-Befehlsregister 47 oder das SHFZR 41, bei denen es sich um Register der programmierbaren Einheit handelt, aus einem Peripheriegerät über die Schalteinheit 8 (siehe Fig. 12 und auch die Fig. 1A und 1B) übertragen werden können. Welches Register mit welchem Arbeitsspeicher verbunden wird, wird durch das Phase-1-Feld des N-Befehle bestimmt, der die Datenübertragung steuert« Wie ferner in Fig. 2 dargestellt
009Ö48/1633
ist und bereits besehrieben wurde, wird der !-Arbeitsspeicher 200 vom M-Dekodierer 40, der M-Arbeitsspeicher ■ 20b vom Register 4-2 oder 41 über einen Adressenfortschalter 43 und der Hauptarbeitsspeicher oder der S-Arbeitsßpeicher über das Arbeitsspeicheradressenregister 49 adressiert , wenn er mit dem Register-Adressenregister 45 oder dem Adressenregister 46 in Reihe geschaltet ist. Die Ausgangssignale des Haupt-Arbeitsspeichers 20a werden dem B-Register 33 zugeführt. Die Ausgangssignale des M-Arbeitsspeichers 20b werden dem M-Dekodierer 40 über den MP-Zwisohenspeicher 25 zugeführt.
Obwohl der MP-Zwischenspeicher 25 noch nicht beschrieben wurde, dient er einer wichtigen Funktion, nämlich dem Auslesen einer Folge von M-Befehlen nach dem Dekodieren eines S-Befehls, wodurch er die Verzögerung eliminiert, die auftreten würde, wenn die einzelnen M-Befehle getrennt adressiert würden.
Qobwohl dies in Fig. 12 nicht explizit dargestellt ist, sei darauf hingewiesen, daß auch ein anderer Datenübertragungsweg vom Register 47, vom Register 41 und der SE8 direkt ins B-Register 33 vorgesehen sein kann.
Phasenrelationen bei M-Befehl-Ausführung
Wie bereits erwähnt wurde, gib.t es zwei Arten von M-rBefeh-. lens Befehle der ersten Art, die Verknüpfungs- und Datenübertragungsoperationen bewirken, und Befehle der zweiten Art, die Variable mit einer neuen M-Befehl-Adresse und Schiebebeträge enthalten«, Ein Befehl der ersten Art wird in drei Phasen ausgeführt, von denen die erste und dritte" eine Taktzeit und die zweite Phase eine variable Anzahl von Taktzeiten benötigen. Ein Befehl der zweiten Art hat
009848/1S33
■- 53 -
nur die erste Phase, die nur eine Taktzeit benötigt.
Die Ausführung aufeinanderfolgender M-Befehle überlappt sich, und diese Überlappung und andere Verhältnisse bei der Ausführung werden jetzt anhand der Hg. 21, 22 und 23 beschrieben,
S1Ig. 21 zeigt die Überlappung zweier aufeinanderfolgender M-Befehle, die Befehl A und Befehl B genannt werden. Es sei daran erinnert, daß, wenn es sich bei dem M-Befehl um einen Befehl der ersten Art handelt, dann ein entsprechender N-Befehl zur Durchführung der verschiedenen erforderlichen Operationen vorliegt. Wie aus der Kurve b nach fig. 21 zu ersehen ist, wird die Adresse für den TT-Befehl A zu Beginn des Taktes T-. in den M-Arbeitsspeicher gebracht. Der IT-Befehl A wird gegen Ende dieses Taktes- T1 aus dem N-Arbeitsspeioher geholt, wie es in der Kurve c dargestellt 1st. Die ausgewählten .Bedingungen werden überprüft (Kurve d) und die Eingangssignale dem MPAD-Register (Kurve e) zugeführt. Die Ausgangssignale vom MPAD-Register (Kurve e) und die Ausgangssignale des Befehlsregisters (Kurve g) werden zu Beginn des Taktes T2 erzeugt. Das Befehlsregister ist jetzt . frei, so daß es einen neuen Befehl aufnehmen kann, und daher wird während des gleichen Taktes eine neue Adresse für den nächsten Befehl B erzeugt, wie es durch die Kurve h aargestellt ist. Der Befehl B wird kurz vor dem linde des Taktes Tp (siehe Kurve j) aus dem ^-Arbeitsspeicher geholt. Die anderen Kurven nach Fig. 21, die das Setzen von zwei Taktflipflops und verschiedene Sperrsignale darstellen, kommen bei dieser Operation nicht vor. Wie noch aus Pig, 21 zu ersehen ist, erfolgt die Ausführung der Phase-1-ijteuerungen des Befehls B am Ende des Taktes T2» so daß die Phase-1-Steuerungen des Befehls B während der Phase 3 des Befehls A ausgeführt werden.
009848/1633
Im folgenden wira annand von Fig. 22 die Ausführung eines xsefehls üer ersten Art beschrieben, bei dem die Phase 2 zwei Takte Denötigt. Die in Fig. 22 dargestellten Kurven b, ..., e sind die gleichen wie in Fig. 21, da sie das Auslesen des ersten Befehls A darstellen. In diesem Falle enthält der ausgelesene H-Befehl jedoch ein Bit, das eine 2-Takt-Operation anzeigt, wie es bereits bei Fig. 17 erwähnt wurde. Dies bewirkt, daß ein 2-Takt-Flipflop gesetzt wird, wie es durch die Kurve g in Fig. 22 dargestellt ist, und infolgedessen werden die Ausgangssignale des MPAD-Registers und des Befehlsregisterss wie es in den Kurven f und h dargestellt ists um einen Takt verzögert, wie es für die 2-Takt-0peration erforderlich ist. In ähnlicher Weise wird auch das Adressieren und Auslesen des Befehls B aus dem M-Arbeitsapeicher für die Dauer eines Taktes so lange verzögert, bis die 2-Takt-Operation des Befehls A ausgeführt worden ist. vv'ährend der Takte T2 und T, (siehe Kurve j) wird daher die Phase I.des Befehls B am Ende des Taktes T, ausgeführt, da die verschiedenen Taktimpulse am Ende des Taktes Tp gesperrt wurden« Phase 2 und/oder 3 wird während des Taktes T. ausgeführt»
Anhand von Fig. 23 werden jetzt die Zeitverhältnisse zwischen zwei aufeinanderfolgenden Befehlen beschrieben, wobei der zweite M-Befehl B eine Variable enthält und daher keinen N-Befehl benötigt. Wie aus Fig. 23 zu ersehen ist, sind die ersten fünf Kurven (bs ..., f) die gleichen wie in Fig. 21, und sie stellen das Auslesen und die Ausführung der ersten Phase des Befehls A dar. Ferner wird das Auslesen des Befehlsregisters (Kurve h in Fig. 21 und Kurve g in Fig. 23) beide Kaie zu Beginn des Taktes T2 ausgelöst. Ferner erfolgt auch das Adressieren des M-Arbeitespeichers zum Auslesen des Befehls B bei beiden Figuren zur gleichen Zeit. Das Auslesen des M-Befehls (Kurve i in Fig. 23) erfolgt jedoch früher als das Auslesen des N-Befehlsnach
00984871633
202335A
Pig. 21 (Kurve j), und da der Befehl B bei Fig. 23 eine Variable ist, ist kein N-Befehl erforderlich. Dadurch wird bewirkt, daß der M-Dekodierer 40 nach Fig. 2 ein Haltsignal erzeugt, wie es die Kurve m in Fig. 23 darstellt. Als Folge davon wird die Ausgabe des Befehlsregisters (Kurve g in Fig.· 23) beibehalten, während die Variablen des M-Befehls B jeweils in ein Register übertrafen werden, wie es durch die Kurve i in Fig. 23 angedeutet ist. Scheinbar gleichzeitig mit dem Haltsignal nach Kurve m werden die verschiedenen Fhasentaktimpulse gee]errt (siehe Kurve n), um die Übertragungen der Variablen am Ende des Taktes T? zu ermöglichen. Nachdem die Übertragungen der Variablen erfolgt ist, bleibt die Ausgabe des Befehlsregisters bis zum Ende des Taktes T-, gültig, wie es durch die Kurve g dargestellt ist. Auf diese Weise wird die Ausführung eines M-Befehls der ersten Art verzögert, um Variablenübertragungen durch den nächsten Befehl der zweiten Art zu gestatten. Die Variable des B-Befehls schreibt stets eine neue M-Adresse vor. Dann wird das MIAD-Register gezwungen, wie es durch die Kurve j angedeutet ist, den Id-Arbeitsspeicher (Kurve k) erneut zu adressieren, um einen neuen Befehl aus dem M-Arbeitspeicher und dann dessen N-Gegenstück aus dem K-Arbeitsspeicher zu holen, wie es die Kurve e zeigt, iier Befehl wird am jinde des Taktes T, aus dem N-Arbeitsspeicher geholt, wenn die Halt- und Sperrsignale nicht mehr anstehen.
Obwohl die soweit beschriebenen Zeitdiagramme nur einige verschiedene Situationen darstellen, die während der Ausführung aufeinanderfolgender Befehle in. überlappter Weise auftreten können, wird dennoch angenommen, daß die obige Beschreibung hinreichend klar macht, wie die überlappte Befehlsausführung stattfindet und wie z.B. verschiedene Variableninformationen in. die jeweiligen Register über-
009848/1633
BAD ORiGWAt
tragen werden können, wenn dies bei der Ausführung eines bedingten M-Befehls erforderlich ist.
M-Befehlsfolgen
Fig. 24 stellt eine Folge von M-Befehlen dar, die bei einer bestimmten Eingabe/Ausgabe-Operation verwendet werden, die durch e;Lnen E/A-Deskriptor der in Fig. 13 dargestellten Art vorgeschrieben wird. Bei jedem Sehritt der Folge ist die Ausführung eines M-Befehls erforderlich, Diese Schritte sinds Bringe Inhalt des Arbeitsspeicher-Adressenregisters (AAR) ins A2-Register; übertrage "Gerätychreib-Signal" und bringe Inhalt des A1-Registers und das niedrigstetellige Zeichen des B-Registers + 1 ins Α-Register; übertrage Signal "Trenne lesendes Gerät·'} lies Gerät und verschiebe Inhalt des B-Registers um vier Bite nach links und bringe ihn ins A3-Register; wenn AAR bereit ist, bringe Inhalt von A1-Register + 1 ins A1-Register und ins AAR; wenn B-Register bereit ist, bringe Inhalt des B-Registers ins A2-Regieter und lies Gerät; wenn AAR bereit ist, bringe Inhalt des A2-Registers ins AAR; wenn B-Register bereit ist, bringe dessen Inhalt ins Arbeitsspeicherinformationsregister (AIR); bringe Inhalt von AIR in den Arbeitsspeicher und verschiebe Inhalt von A3-Regieter um acht Bits nach rechte.
Eine weitere M-Folge ist in Fig. 25 dargestellt, die zur Durchführung einer nZeichenfolgeabtast"-Routine geeignet ist, wie sie durch einen S-Befehl vorgeschrieben wird. Diese Routine dient zu» Aufsuchen aller Anfangestellen aller gleichen (matches) Zeichen einer Zeichenfolge in einer Ursprungs- oder Quellenfolge. Die Inschriften in Fig. 25 geben an, welche Register die jeweiligen Datensegmente enthalten, die den Ursprungs- oder Quellenort S
009848/1633
.57- 2Q23354
(source location), Zeichenort P (pattern location), Quelleninhalt SC (source contents)f Zeicheninhalt PO (pattern contents), G-leichheitsanzeige M (match indication), Zeiger (pointers) SP, PP und MP und die Register-Adressenregister (EAH) darstellen,
Pat»nt«nwllte Dipl.-lng. H or at Rose Dipl.-lng. Peter Kosel
009848/1633

Claims (1)

  1. Hohenhöfen 5 ""5^* 202335 A
    Burroughs Corporation 11. Mai 1970
    Patentgesuch vom 11.5.1970
    Patentansprüche
    1y Programmierbare Einheit mit mshreren Registern zur Datenübertragung, einein ersten Speicher zum Speichern von Befehlen, die Routinen vorschreiben, und einem zweiten Speicher zum Speichern von Gruppen von Operationsbefehlen, dadurch gekennzeichnet, daß an den ersten Speicher eine erste Vorrichtung angeschlossen ist, der einer der Routine-Befehle zuführbar ist, daß an die erste Vorrichtung eine zweite Vorrichtung angeschlossen ist, die bei Erhalt des Routine-Befehls den zweiten Speicher adressiert und einen Operationsbefehl aufnimmt, und daß an die zweite Vorrichtung eine dritte Vorrichtung angeschlossen ist, die so vorbereitet ist, daß sie von einem Operationsbefehl betätigbar ist.
    2· Programmierbare Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einheit einen dritten Speicher enthält und die dritte Vorrichtung bei Erhalt eines Operationsbefehls den dritten Speicher adressiert und einen Steuerbefehl erhält.
    3. Programmierbare Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die dritte Vorrichtung eine Verknüpfungseinheit mit mehreren modularen Halbgliedern enthält, die durch einen Operationsbefehl so einstellbar sind, daß sie betriebsbereit sind.
    4· Programmierbare Einheit nach Anspruch 2, dadurch gekennzeichnet, daß die Register zur Datenübertragung in einer Verknüpfungseinheit angeordnet sind, die eine Schaltung enthält, die so angeschlossen ist, daß sie die Verknüpfungseinheit und Register zur Durchführung von Verknüpfungsoperationen und Datenübertragungen in Abhängigkeit
    009848/1633 788/238
    von verschiedenen Gruppen von Steuersignalen, die die Steuerbefehle darstellen, vorbereitet, daß einige der wiederauffindbar verschlüsselten Operationsbefehle vorbestimmte Gruppen dieser Steuersignalgruppen vorschreiben, und daß an den dritten Speicher ein Befehlsdekodierer angeschlossen 1st, um vorbestimrate Gruppen der Steuersignalgruppen auszulesen und entweder die Verknüpfungseinheit oder die Register vorzubereiten·
    5. Programmierbare Einheit nach Anspruch 4, dadurch gekennzeichnet, daß sie einen Taktgeber, der Taktimpulse erzeugt, die Phasen darstellen, in denen die Steuersignalgruppen auegeführt werden, und eine Adressiervorrichtung · enthält, die so ausgebildet und angeschlossen ist, daß sie eine gespeicherte Gruppe von Steuersignalen während der Ausführung einer vorhergehenden Gruppe von Steuersignalen aufsucht.
    b. Programmierbare Einheit nach Anspruch 5t dadurch gekennzeichnet, daß sie eine Verzögerungsvorrichtung enthält, die an den Taktgeber angeschlossen ist und bestimmte Taktimpulse sperrt, vm die Ausführung der vorhergehenden Gruppe von Steuersignalen zu verhindern und daa Auelesen eines neuen Operationsbefehls zu ermöglichen.
    7. Programmierbare Einheit nach Anspruch 4, dadurch gekennzeichnet, daß sie eine Operationabefehlespeicher-Adressiervorrichtung enthält, die vom Befehlsdekodierer Operationsbefehlsadressen erhält.
    8. Programmierbare Einheit nach Anspruch 4, dadurch gekennzeichnet, daß sie eine Steuersignalepeioher-Adressiervorrichtung enthält, der Steuersignal-Gruppenadressen aus dem Operationebefehledekodierer zuführbar sind.
    009848/1633
    9. Programmierbare Einheit nach Anspruch 2, dadurch gekennzeichnet, daß sie eine Verknüpfungseinheit aus mehreren modularen Halbgliedern enthält, die durch einen Steuerbefehl bo einstellbar sind, daß sie betriebsbereit sind.
    10. Programmierbare Einheit nach Anspruch 9» dadurch gekennzeichnet, daß verschiedene modulare Halbglieder durch verschiedene Steuersignale in Abhängigkeit vom Format des Steuerbefehle steuerbar sind.
    w 11. Programmierbare Einheit nach Anspruch 9t dadurch gekennzeichnet, daß jedes Halbglied Datensegmente aus zwei verschiedenen Datenquellen für eine Verknüpfungsoperation aufnehmen kann.
    12. Programmierbare Einheit nach Anspruch 11, dadurch gekennzeichnet, daß das höchststellige und das niedrlgststellige Halbglied dritte Datensegmente aus verschiedenen Datenquellen getrennt aufnehmen können.
    13. Programmierbare Einheit nach Anspruch 9, dadurch gekennzeichnet, daß die Halbglieder gleichzeitig Datensegmente von drei verschiedenen Datenquellen für eine Ver-
    ^ knüpfungeoperation aufnehmen können·
    H. Programmierbare Einheit nach Anspruch 13, gekennzeich.-net durch eine Vorrichtung zum Sperren der Aufnahme von Dateneegmenten aus einer der Datenquellen.
    15· Programmierbare Einheit nach Anspruch 4, dadurch gekennzeichnet, daß sie einen Taktgeber zur Erzeugung von Taktimpulsen, die Phasen darstellen, in denen die Operationebefehle durchgeführt werden, und ein· Adreesiervor-
    009848/1833
    Ci
    -■%>-. ■■■■■■
    richtung enthält, die während der Ausführung eines vorhergehenden Operationsbefehle einen neuen Operationsbefehl adressiert. ·
    16. Programmierbare Einheit nach Anspruch 15» dadurch gekennzeichnet, daß sie eine an den Taktgeber angeschlossene Verzögerungsvorrichtung enthält, die vorbestimmte Taktimpulse sperrt, um die Durchführung des vorhergehenden Operationsbefehls zu verhindern und das Adressieren und Auslesen eines neuen Operationsbefehls zu ermöglichen.
    17. Programmierbare Einheit nach Anspruch 15» dadurch gekennzeichnet, daß an den zweiten Speicher ein Operationsbefehlsdekodierer angeschlossen ist, dem die Operationsbefehle zuführbar sind, und daß der Operationsbefehlsadressiervorrichtung voa Operationsbefehlsdekodierer Operationsbefehlsadressen zuführbar sind.
    18. Programmierbare Einheit nach Anspruch 4- oder 17, dadurch gekennzeichnet, daß sie ein Variablenregister enthält, dem Datenvariable vom Befehlsdekodierer zuführbar sind.
    19. Programmierbare Einheit nach Anspruch 4 oder 15» dadurch gekennzeichnet, daß es ein Peripheriegerät enthält, da# die Verknüpfungseinheit und/oder Register derart ausgebildet sind, daß sie in da» Peripheriegerät Daten übertragen oder aus dem Peripheriegerät Daten aufnehmen können, daß vorbestimmte Operationsbefehlefolgen, die im zweiten Speicher gespeichert sind, Verknüpfungsoperationen vorschreiben und andere Operationsbefehlsfolgen Datenübertragungen in das oder aus dem Peripheriegerät vorschreiben·
    009848/1633
    20· Programmierbare Einheit nach Anspruch 4 oder 15» dadurch gekennzeichnet, daß die Verknüpfungseinheit und/oder Register durch ausgewählte Operationsbefehle derart vorbereitbar sind, daß sie Routine-Befehle mit verschiedenen Formaten, die die gleiche Routine vorschreiben und die Operationsbefehlsadresse zum Auslesen einer Gruppe von Operationsbefehlen aus dem zweiten Speicher zur Durchführung dieser Routine erzeugen, aufnehmen.
    21. Programmierbare Einheit nach Anspruch 3» dadurch gekennzeichnet, daß sie verschiedene modulare Halbglieder enthält, die derart durch verschiedene Steuersignale steuerbar sind, wie es durch den Operationsbefehl gefordert wird.
    22. Programmierbare Einheit nach Anspruch 3, dadurch gekennzeichnet, daß jedem Halbglied Datensegmente aus zwei Datenquellen für eine Verknüpfungsoperation zuführbar sind.
    23· Programmierbare Einheit nach Anspruch 22, dadurch gekennzeichnet, daß dem höchststelligen und dem niedrigstatelligen Halbglied getrennt dritte Datensegmente aus verschiedenen Datenquellen zuführbar sind·
    24· Programmierbare Einheit nach Anspruch 3, dadurch gekennzeichnet, daß die Halbglieder zur gleichzeitigen Aufnahme von Datensegaenten aus drei verschiedenen Baten·" quellen für eine Verknüpfungsoperation, ausgebildet sind.
    25. Programmierbare Einheit nach Anspruch 23, dadurch gekennzeichnet) daß sie ein« die Aufnahm· von Dateneegmenten aus einer der Datenquellen sperrende Vorrichtung enthäl-t.
    26· Programmierbare Einheit mit mehreren Registern zur Datenübertragung, gekennzeichnet durch einen Speicher zum Speichern auslesbar verschlüsselter Operationsbefehls-
    009848/1633
    gruppen, yon denen jede Gruppe zur Durchführung eines eine Routine vorschreibenden Befehls auegebildet ist, und eine Verknüpfungseinheit/ die aus mehreren modularen Halbgliedern gebildet ist, die bei der Ausführung eines der Operationsbefehl· so einstellbar sind, daß sie für den Betrieb vorbereitet sind«
    27. Programmierbare Einheit nach Anspruch 26, dadurch gekennzeichnet, daß verschiedene modulare Halbglieder durch verschiedene Steuersignale in Abhängigkeit vom Format der Uperutionsbefehle steuerbar sind.
    28. Verfahren zum Betreiben einer programmierbaren Einheit mit mehreren Registern zur Datenübertragung, einem ersten Speicher zum Speichern von Befehlen, die Routinen vorschreiben, einen zweiten Speicher zum Speichern von Gruppen von Operationsbefehlen und einen dritten Speicher zum Speichern von Gruppen von Steuerbefehlen, dadurch gekennzeichnet, daß zunächst einer der Routine-Befehle ausgelesen wird, daß dann Gruppen von Operationsbefehlen in Abhängigkeit von diesen Routine-Befehl ausgelesen werden und schließlich der Steuerbefehl in Abhängigkeit von einem der Operationebeiehle ausgelesen wird.
    ic'9. Verfahren nach Anspruch 28, dadurch gekennzeichnet, daß vorbestimmte Operationsbefehle Adressen der Steuerbefehle vorschreiben.■ ν
    30. Verfahren nach Anspruch 28, dadurch gekennzeichnet, daß in dem zweiten Speicher Operationsbefehlsfolgen, die Verknüpfungsoperationen vorschreiben, und Operationsbefehlefolgen, die Datenübertragungen in oder aus einem Peripheriegerät vorschreiben, gespeichert werden.
    009848/1633
    IW ^ ■·
    31. Verfahren nach Anspruch 28, dadurch gekennzeichnet, daß in dem ersten Speicher Routine-Befehle mit verschiedenen Formaten gespeichert werden, die die gleiche Routine vorschreiben.
    32. Verfahren nach Anspruch 28, dadurch gekennzeichnet, daß verschiedene Steuerbefehle zur Vorbereitung verschiedener Halbglieder einer Verknüpfungseinheit verwendet werden.
    33· Verfahren zum Betreiben einer programmierbaren Einheit mit einer Verknüpfungseinheit und mehreren Registern zur Datenübertragung, dadurch gekennzeichnet, daß die Verknüpfungseinheit und die Register in Abhängigkeit von verschiedenen Gruppen von Steuersignalen vorbereitet werden, daß mehrere aufsuchbar verschlüsselte Operationsbefehle in einem Operationsbefehlespeicher gespeichert werden, von denen einige Operationsbefehle vorbestimmte Gruppen von Steuersignalen vorschreiben, und daß vorbestimmte Operationsbefehle dieser Operationsbefehle ausgelesen werden, um das Auslesen dieser Gruppen von Steuersignalen vorzuschreiben und entweder die Verknüpfungseinheit oder das Register vorzubereiten.
    34. Verfahren nach Anspruch 33, dadurch gekennzeichnet, daß in dem.Operationsbefehlsspeieher Folgen von Operationsbefehlen, die Verknüpfungsoperationen vorschreiben, und Folgen von Operationsbefehlen, die Datenübertragungen in oder aus einem leripheriegerät vorschreiben, gespeichert' werden·
    35. Verfahren nach Anspruch 33, dadurch gekennzeichnet, daß in einem Hauptspeicher Befehle mit verschiedenem Format gespeichert werden, die die Ausführung der gleichen Routine durch ein® Gruppe von Operationsbefehlen vorschreiben.
    009848/1633
    2023384
    36. Verfahren nach Anspruch 33, dadurch gekennzeichnet, daß zur Vorbereitung verschiedener Halbglieder der Verknüpfungseinheit verschiedene Steuersignale verwendet wer-. den·
    37# Befehlskombination zur Anwendung in einer programmierbaren Einheit, dadurch gekennzeichnet, daß sie eine Gruppe von Befehlen, die Eoutinen vorschreiben, Gruppen von Operationsbefehlen, von denen 3ede Gruppe so ausgebildet ist, daß durch sie einer der Boutine-Befehle durchführbar ist, und eine Gruppe von Steuerbefehlen enthält, von denen jeder Steuersignale vorschreibt, die zur Durchführung eines der Operationsbefehle erforderlich sind.
    38t Befehlskombination nach Anspruch 37, dadurch gekennzeichnet, daß ein Operationsbefehl die Adresse eines in einem Speicher gespeicherten Steuerbefehls enthält.
    OipWng. Horst Rose Dipl.«lng. Pt Κοββΐ
    t e e r s β i t e
DE2023354A 1969-05-19 1970-05-13 Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher Expired DE2023354C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US04/825,569 US4558411A (en) 1969-05-19 1969-05-19 Polymorphic programmable units employing plural levels of sub-instruction sets

Publications (2)

Publication Number Publication Date
DE2023354A1 true DE2023354A1 (de) 1970-11-26
DE2023354C2 DE2023354C2 (de) 1983-10-20

Family

ID=25244342

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2023354A Expired DE2023354C2 (de) 1969-05-19 1970-05-13 Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher

Country Status (11)

Country Link
US (1) US4558411A (de)
JP (4) JPS578494B1 (de)
BE (1) BE750068A (de)
CA (2) CA939070A (de)
CH (1) CH522919A (de)
DE (1) DE2023354C2 (de)
FR (1) FR2047381A5 (de)
GB (3) GB1318231A (de)
NL (3) NL178361C (de)
NO (1) NO137165C (de)
SE (1) SE393201B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2424931A1 (de) * 1973-06-05 1975-01-02 Burroughs Corp Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4024504A (en) * 1973-12-21 1977-05-17 Burroughs Corporation Firmware loader for load time binding
IT1016854B (it) * 1974-08-21 1977-06-20 Olivetti & Co Spa Calcolatore elettronico di elabora zione dati
DE3069249D1 (en) 1979-02-13 1984-10-31 Secr Defence Brit Data processing unit and data processing system comprising a plurality of such data processing units
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US5854907A (en) * 1982-02-22 1998-12-29 Texas Instruments Incorporated Microcomputer for digital signal processing having on-chip memory and external memory access
JPS58182758A (ja) * 1982-04-20 1983-10-25 Toshiba Corp 演算制御装置
NL8203175A (nl) * 1982-08-12 1984-03-01 Wavin Bv Haspel voor het opwikkelen van kunstofbuis.
JPS6031479A (ja) * 1983-07-26 1985-02-18 Sumitomo Rubber Ind Ltd 可撓性ホ−ス用巻き取り装置
JPS6089585U (ja) * 1983-11-28 1985-06-19 株式会社富士通ゼネラル 冷蔵庫
GB8413933D0 (en) * 1984-05-31 1984-07-04 Columbia Automation Ltd Emulating timing characteristics of microprocessor
CA1223969A (en) * 1984-10-31 1987-07-07 William M. Johnson Microcode control of a parallel architecture microprocessor
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
JPS638269U (de) * 1986-07-02 1988-01-20
JPS6317174U (de) * 1986-07-19 1988-02-04
US5185870A (en) * 1987-04-10 1993-02-09 Tandem Computers, Inc, System to determine if modification of first macroinstruction to execute in fewer clock cycles
JPS63161483U (de) * 1987-04-10 1988-10-21
EP0312764A3 (de) * 1987-10-19 1991-04-10 International Business Machines Corporation Datenprozessor mit mehrfachen Ausführungseinheiten zur parallelen Ausführung von mehreren Befehlsklassen
JPH01117184A (ja) * 1987-10-26 1989-05-10 Ashimori Ind Co Ltd ホース巻取装置
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
JPH0810428B2 (ja) * 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
US5321825A (en) * 1991-06-18 1994-06-14 Advanced Micro Devices, Inc. Processing system with lock spaces for providing critical section access
US6006321A (en) 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US6150836A (en) * 1997-06-13 2000-11-21 Malleable Technologies, Inc. Multilevel logic field programmable device
US6219776B1 (en) * 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
US6438569B1 (en) 1999-09-20 2002-08-20 Pmc-Sierra, Inc. Sums of production datapath
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL276777A (de) * 1961-04-04
GB1014635A (en) * 1962-07-31 1965-12-31 Rca Corp Data processing system
US3300764A (en) * 1963-08-26 1967-01-24 Collins Radio Co Data processor
US3302183A (en) * 1963-11-26 1967-01-31 Burroughs Corp Micro-program digital computer
GB1054725A (de) * 1964-04-06
US3315235A (en) * 1964-08-04 1967-04-18 Ibm Data processing system
US3391394A (en) * 1965-10-22 1968-07-02 Ibm Microprogram control for a data processing system
US3404378A (en) * 1965-10-29 1968-10-01 Automatic Telephone & Elect Computers
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
JPS5320378A (en) * 1976-08-09 1978-02-24 Tokyo Tatsuno Kk Method of testing leakage in tank
DE2639250C2 (de) * 1976-09-01 1985-12-12 Basf Ag, 6700 Ludwigshafen Verfahren zur Herstellung von nadelförmigem, kobaltdotiertem magnetischem Eisenoxid
JPS5331619A (en) * 1976-09-02 1978-03-25 Kayaku Antibiotic Research Co Tetrapeptide and its derivatives

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GB-Buch "Proceedings of the Cambridge Philosophical Society" Science Museum Library, London, 27. Jan. 1953, S. 230-238 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2424931A1 (de) * 1973-06-05 1975-01-02 Burroughs Corp Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten

Also Published As

Publication number Publication date
GB1318233A (en) 1973-05-23
NL7006955A (de) 1970-11-23
GB1318231A (en) 1973-05-23
NL8403030A (nl) 1985-02-01
FR2047381A5 (de) 1971-03-12
CA993562A (en) 1976-07-20
CH522919A (de) 1972-05-15
NO137165C (no) 1978-01-11
NL8403059A (nl) 1985-02-01
JPS578494B1 (de) 1982-02-17
US4558411A (en) 1985-12-10
JPS5922264B1 (de) 1984-05-25
NL178361C (nl) 1986-03-03
BE750068A (fr) 1970-10-16
NL178361B (nl) 1985-10-01
DE2023354C2 (de) 1983-10-20
JPS5922263B1 (de) 1984-05-25
CA939070A (en) 1973-12-25
JPS5922262B1 (de) 1984-05-25
NO137165B (no) 1977-10-03
GB1318234A (en) 1973-05-23
SE393201B (sv) 1977-05-02

Similar Documents

Publication Publication Date Title
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2714805C2 (de)
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2648229C2 (de)
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2417795C2 (de) Datenverarbeitungsanlage
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2055739A1 (de) Datenverarbeitungssystem
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2712224A1 (de) Datenverarbeitungsanlage
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2358593A1 (de) Datenverarbeitungsanordnung und bei dieser verwendbare steuerschaltung
DE2935101C2 (de)
DE1191145B (de) Elektronische Zifferrechenmaschine
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE2255252A1 (de) Vorrichtung zur steuerung einer anzeigeausgabe mittels mikroprogramm
DE1549399A1 (de) Verfahren und System zur grafischen Aufzeichnung von Kurvenzuegen
DE1957600C3 (de)
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition