DE1246289B - Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage - Google Patents

Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage

Info

Publication number
DE1246289B
DE1246289B DEJ27677A DEJ0027677A DE1246289B DE 1246289 B DE1246289 B DE 1246289B DE J27677 A DEJ27677 A DE J27677A DE J0027677 A DEJ0027677 A DE J0027677A DE 1246289 B DE1246289 B DE 1246289B
Authority
DE
Germany
Prior art keywords
register
condition
bits
address
field
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.)
Pending
Application number
DEJ27677A
Other languages
English (en)
Inventor
Gene Myron Amdhahl
Jacob Raymond Johnson
John Willis Rood
Richard Joseph Carnevale
Bruce Martin Updike
Anthony Eugene Villante
Gerrit Anne Blaauw
Helmut Weber
Peter Calingaert
Richard Paul Case
Elaine Marie Boehm
William Porter Hanf
Charles Bertram Perkins Jun
Arthur Frederick Collins
Jack Ellis Greene
Albert Allan Magdall
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1246289B publication Critical patent/DE1246289B/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • 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/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3856Operand swapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. Cl.:
G06f
Deutsche Kl.: 42 m3 - 9/00
Nummer: 1246 289
Aktenzeichen: J 27677IX c/42 m3
Aomeldetag: 11. März 1965
Auslegetag: 3. August 1967
Die Reihenfolge, in welcher Befehle ausgeführt "werden, kann mittels Verzweigungsbefehlen geändert Werden5 d. h., das Programm kann die auf den neuesten Stand gebrachte Befehlsadresse durch eine Verzweigungsadresse ersetzen, welche das Programm liefert. Die Verzweigungsadresse kann von einem oder mehreren Registern erhalten werden, oder es kann eine Adresse sein, die durch den Befehl angegeben "wird. Die Verzweigungsadresse ist unabhängig von der auf den neuesten Stand gebrachten Befehlsadresse.
Die Verzweigung kann bedingt oder unbedingt sein. Unbedingte Verzweigungen ersetzen die auf den neuesten Stand gebrachte Befehlsadresse durch die Verzweigungsadresse. Bei bedingten Verzweigungen kann die Verzweigungsadresse benutzt werden, oder die auf den neuesten Stand gebrachte Befehlsadresse wird unverändert beibehalten. Wenn eine Verzweigung stattfindet, so wird der Verzweigungsbefehl als erfolgreich bezeichnet, anderenfalls wird er als nicht erfolgreich bezeichnet. Ob eine bedingte Verzweigung "erfolgreich ist, hängt vom Ergebnis der Operationen ab, die gleichzeitig mit dem Verzweigungsbefehl ablaufen, oder vom Ergebnis von Operationen, welche dem Verzweigung'sbefehl vorausgingen. Zum Testen der Bedingungen der Daten werden diese direkt von den Stellen, insbesondere Registern, entnommen, in denen sie sich gerade befinden. Diese Art der Verarbeitung hat den Nachteil, daß die bedingten Verzweigungsbefehle Kriterien, also Bitstellen, benötigen, welche die verschiedenen zu prüfenden Positionen zu unterscheiden gestatten..
Eine Verbesserung wurde in einer bekannten Datenverarbeitungsanlage erzielt, in welcher die meisten Maschinentestbedingungen in einem einzigen 64-Bit-Indikatorregister vereinigt sind. Achtundvierzig von diesen Indikatorbits werden fortwährend bei der Programmunterbrechung geprüft. Ein bedingter Verzweigungsbefehl, der dieses Indikatorregister abfragt, muß nicht nur die Adresse des Indikatorregisters, sondern auch eine 6-Bit-Adresse zur Auswahl eines der vierundsechzig Bitfelder enthalten. Wie aus dem Abschnitt V. 2.4:7 »Bedingungen« des Buches »Digitale Rechenanlagen« von Speiser, Springer Verlag, Berlin, 1961, S. 274, hervorgeht, sind Befehle, die Bedingungen prüfen und dementsprechende Programmverzweigungen vornehmen, bereits bekannt. Deshalb ist es bekannt, im Befehl ein zusätzliches Bit vorzusehen. Falls dasselbe gleich Eins ist, darf die Anlage den Befehl nur ausführen, wenn die Bedingung erfüllt ist; wenn sie nicht erfüllt ist, so ist er zu über gehen, und es ist mit dem nächsten Befehl weiterzufahren. Auch ist vorgeschlagen worden, mehrere Bedingungsregister für eine programmgesteuerte Datenverarbeitungsanlage
Anmelder:
International Business Machines Corporation3 Axmonk3KY. (V. St. A.)
Vertreter:
DipL-Ing. H. E. Böhmer, Patentanwalt, Böblingen, Sindelfihger Str. 49
Als Erfinder benannt:
Gene Myroh Amdhahl3 Saratoga3 CaUf.; Jacob Raymond Johnson,
Peter Calingaert,
Richard Paul Case, Poughkeepsie, N. Y.; Elaine Marie Boehm3 Wappingers Falls, N. Y.; William Porter Hanf, Endicott3 N. Y.; Charles Bertram Perkins jun., Endwell3 N. Y.; Arthur Frederick Collins,
Jack Ellis Greene,
Albert Allan Magdall,
John Wülis Rood3 Vestal, Ν. Y.; Richard Joseph Carnevale3
Bruce Martin Updike, Endwell, N. Y.; Anthony Eugene Villante3 Binhampton3 N. Y.; Gerrit Anne Blaauw3 Poughkeepsie, N. Y.; Helmut Weber, Vestal, Ν. Υ. (V. St. A.)
Beanspruchte Priorität:
V. St. v. Amerika vom 6. April 1964 (357 372) - ■
solcher zusätzlicher Bits vorzusehen, so daß die Ausführung eines jeden Befehls gleichzeitig von mehreren Bedingungen abhängig gemacht werden kann.
Während in dem bekannten Indikatorregister die verschiedenen Bedingungen alle nebeneinander in verschiedenen Positionen des Registers gespeichert sind, enthält das Bedingungsregister gemäß der Erfindung nur so viele Registerstellen, daß immer nur eine Bedingung gespeichert ist, nämlich diejenige, die durch die Ausführung eines das Bedingungsregister verändernden Befehls erzeugt wurde, und daB für vier im Binärcode vorliegende Bedingungen nur zwei Speicherstellen im Bedingungsregister vorhanden sind. Diese erfindungsgemäße VerMeinerung des Bedingungsregisters bringt keinen Nachteil, da die Bedingungen nach dem Test nicht mehr gebraucht werden.
709 619/327
Besondere Vorteile ergeben sich, wenn der Bedingungscode einen Teil eines Wortes bildet, das als Programmstatuswort (PSW) bezeichnet wird. Dieses Programmstatuswort zeigt die verschiedenen Zustände einer Datenverarbeitungsanlage, z. B. den äugenblicklichen Zustand des Programmzählers an. Die Einfügung des Bedingungscodes in das Programmstatuswort hat den Vorteil, daß keine Haushaltoperation zum Aufrechterhalten des Bedingungscodes notwendig ist. Bei einer Unterbrechung z. B. wird das alte PSW in eine der jeweiligen Unterbrechung zugeordnete Speicherstelle eingegeben und das der jeweiligen Unterbrechung zugeordnete Programmstatuswort von der ihr zugeordneten Speicherstelle entnommen. Nach Beendigung der Unterbrechung wird das alte Programmstatuswort wieder vom Speicher entnommen, so daß der vorherige Inhalt des Programmzählers und der Bedingungscode erhalten bleiben.
Mit zwei Speicherstellen für das Bedingungsregister kommt man in allen praktischen Fällen aus, wenn man die verschiedenen Bedingungen im Binärcode darstellt. Wenn hier vom Bedingungsregister die Rede ist, so soll hierunter auch verstanden werden, daß das Register durch eine Speicherstelle des Hauptspeichers oder auch einen Teil einer Speicherstelle gebildet werden kann. Schließlich ist es nicht nötig, daß sich -der Bedingungscode ständig in einer bestimmten Speicherstelle befinden muß; der Bedingungscode kann vielmehr, wie oben an Hand des Programm-Statuswortes beschrieben, je nach dem jeweiligen Stand des Programms nacheinander in verschiedene Speicherplätze gebracht werden.
Nachstehend soll die Erfindung an Hand eines Ausführungsbeispiels mehr erläutert werden. Es stellt dar
Fig. 1 einen »Verzweigung-bei-Bedingung«-Befehl, Fig. 2 einen anderen »Verzweigung-bei-Bedingung«-Befehl,
F i g. 3 das Programmstatuswort und
Fig. 4 ein Blockschaltbild der Teile einer Datenverarbeitungsanlage, die bei der Ausführung eines Verzweigungsbefehls mit einem Bedingungsregister gemäß der Erfindung zur Wirkung kommen.
Bedingungscode
Der Bedingungscode stellt ein Mittel dar, um Entscheidungen abhängig von den Daten zu fällen. Der Code wird geprüft, um die Ausführung eines bedingten VerzweigungsbefebJes zu bestimmen. Der Code wird durch bestimmte Operationen eingestellt und spiegelt das Ergebnis der Operation unabhängig von dem Wert des vorhergehenden Bedingungscodes wieder und gibt Hinweise auf das Ergebnis einiger arithmetischer logischer oder Eingabe-Ausgabe-Operationen. Die gleichen Codes können benutzt werden, um verschiedene Tatsachen über verschiedene Befehle anzuzeigen. Darüber hinaus kann der Code durch besondere Befehle eingestellt werden.
In diesem Ausführungsbeispiel besteht der Bedingungscode aus zwei Bits, mit denen man in binärcodierter Form vier verschiedene Bedingungen anzeigen kann. Diese Zahl reicht für die meisten praktischen Fälle aus. Es gibt drei Arten von Bedingungscodeeinstellungen für Festoperationen. Für die meisten Operationen stellen die Zustände 00, 01 und 10 0, >0 und <0 dar. Der Zustand 11 wird benutzt, wenn ein Überlauf vorhanden ist. Bei den Vergleichsoperationen zeigen die Zustände 00, 01 und 10 an, daß der erste der verglichenen Operanden gleich, kleiner oder größer ist. Bei den logischen Additionsund Subtraktionsoperationen geben die Codes 00 und 01 an, daß kein oder ein logischer Übertrag aus der Zeichenposition des Ergebnisregisters auftritt.
Eine Liste der Befehle und der durch diese möglicherweise ausgelösten Bedingungscodes ist nachfolgend gezeigt.
Bedingungscodes für Festkommaoperationen
Befehle Bedingungscodeeinstellungen
11 00 01 10
0 <0 >o
Umladen Komplement 0 <0 >0 Überlauf
0 >0 Überlauf
0 <o
Addieren Halbwort 0 <0 >o Überlauf
Addieren
0 nicht 0 0, Übertrag Übertrag
Subtrahieren Halbwort 0 <0 >o Überlauf
Subtrahieren '
Subtrahieren Logisch nicht 0 0, Übertrag Übertrag
Vergleichen Halbwort gleich kleiner größer
Vergleichen
0 <0 >0 Überlauf
0 <0 >0
0 <o >o Überlauf
Doppeltes Rechtsverschieben 0 <o >o
Bedingungscodes für Gleitkommaoperationen
Befehle Bedingungscodeeinstellungen
11 00 01 10
T Τττί ιίίπρη Tnif rTpcfi o <o >o
at η το nn ο Γτοπο m rr τ*
cUlIdCne OrcHaUlgK.cIt
/*1 /Λ"ίΛΤ^ P*\ ~tA Ι-τ-ί=*ΤΊ Olli ΓτίΑί^ϊ Τ"
UOPPCILC UrCild.Ulgft-ClL
T T-ml η r\ o.n kl /™vm ύλ I pm £*ττί" V/ <0 >o
pt Trfiir.np Oenfni ι P-IcPif
^l JUCLwJJ w V_J WllCLUlgJVl/JL
HfiTvnplfp Γτρηρπιιρίτρΐί
Jrir VjwjLlCLLllgIvtiJL·
>0 T Ttnl q H f*n Pr\ci'f"ii\i' ο —-
eiiif a.ch.6 Genauigkeit
fiOiTnelte ("Tenfniipkeit
V I < / L/ I -J wl Lv V I w1j.C4.LI 1. Cl. IVwX U
-T Ττηι'α/Ιρ'Τΐ. "Wf*frci ι"Ϊλ7 0 <o
pinfsipTiP (T-PtianitriVpif
CllllavvJLLC VJ CJJCL LiJg iVC IL-
U-UjJJJclLC vjCUaLJUgiVClU Überlauf Δ/ Iii?P1Vi^n nf\T*mci liciPTf" o. <o >o
einfache Genauigkeit
rlorvnelfe Γτρη?πΐΐ PrIceit
Überlauf ο . <o >o
pinfcipiip frAtiimitylrpif
CJJLlJlctCllC VJ ClltlLilglvClL
doppelte Genauigkeit Überlauf 0 <o >0
einfache Genauigkeit
doppelte Genauigkeit >o Überlauf 0 <o
einfache Genauigkeit
doppelte Genauigkeit größer gleich. !deiner
einfache Genauigkeit
doppelte Genauigkeit
Bedingungscodes für Dezimalarithmetikoperationen
Befehle Bedingungscodeeinstellungen
11 00 01 10
Löschen und Addieren 0 <o >o Überlauf
0 <0 >o Überlauf
0 <o >o Überlauf
gleich kleiner größer
Bedingungscodes für logische Operationen
Befehle Bedingungscodeeinstellungen
11 00 01 10
gleich kleiner größer
0 unvollständig vollständig
0 --. <o >o
0 <o >0
Und 0 nicht 0
Oder 0 nicht 0
0 nicht 0
Prüfen mit Maske 0 0/Eins alle Eins
Die bedingten Verzweigungsbefehle können ein kurzes (hier das RR) oder ein langes (hier das RX) Format aufweisen (in F i g. 1 und 2 dargestellt). Das R I-Feld wird als eine 4-Bit-Maske benutzt.
In dem RR-Format (F i g. 1) kennzeichnet das ii2-Feld die Adresse eines allgemeinen Registers, welches die Verzweigungsadresse enthält, außer, wenn
Rl null ist, was andeutet, daß keine Verzweigung stattfindet. In dem RX-Format (F i g. 2) werden die Inhalte der allgemeinen Register, deren Adressen in 65 denFeldernX2undl?2 enthalten sind,zudemlnhaltdes D2-Feldesaddiert,umdieVerzweigungsadresse zubilden.
Die auf den neuesten Stand gebrachte Befehlsadresse wird durch, die Verzweigungsadresse ersetzt,
wenn der Zustand des Bedingungscodes dem durch die Maske angegebenen Zustand entspricht. Andernfalls wird das Programm mit der auf den neuesten Stand gebrachten Befehlsadresse fortgesetzt.
Die vier Bits der Maske entsprechen von links nach rechts den vier Bedingungscodes 00, 01, 10 und 11, wie in der nachfolgenden Tabelle gezeigt.
PSW
Bedingungscode
Die hohen
vier Positionen
des Registers K 11
Maskenbits
des Befehls
00 1000 IXXX
01 0100 XlXX
10 0010 XXlX
11 0001 XXXl
QC steht entweder für eine »1« oder eine »0«.)
Wenn die Bitkombination im Bedingungsregister die gleiche Bedingung definiert wie die Kombination der Bits der Maske des Verzweigungsbefehls, so wird eine Verzweigung zu der Adresse vorgenommen, die einen Teil des »Verzweigen-bei-Bedingung«-Befehls darstellt. Somit wird eine Verzweigung ohne Benutzung eines zusätzlichen Befehls durchgeführt, wie er in den bekannten Anordnungen benötigt wird. Die Verzweigung, die eine neue Folge von Makrobefehlen in der Maschine, abhängig von dem Ergebnis einer davorliegenden Operation, auslöst, benötigt nur einen einzigen Befehl.
Wenn alle vier Maskenbits eins sind, ist die Verzweigung unbedingt. Wenn alle vier Maskenbits null sind, löst der Verzweigungsbefehl keine Operation aus, was, wie bereits oben erwähnt, auch der Fall ist, wenn das iv2-Feld im PvR-Format null ist.
In dem hier beschriebenen Ausführungsbeispiel nimmt der Bedingungscode die Bitpositionen 34 und 35 eines Programmstatuswortes (PSW) ein. Wenn das Programmstatuswort während einer Zustandsumschaltung abgespeichert wird, bleibt der Bedingungscode als Teil des Programmstatuswortes erhalten. In ähnlicher Weise wird der Bedingungscode als Teil der rechten Hälfte des Programmstatuswortes in einer Verzweigen- und Folgeadresse-Ladenoperation abgespeichert. Der Bedingungscode wird durch eine »Laden-PSW«-, eine »Programm-Maske-setzen«-Operation oder durch ein neues Programmstatuswort, das infolge einer Unterbrechung geladen wird, eingestellt.
Wie ein Programmstatuswort beispielsweise aussehen kann, ist in F i g. 3 gezeigt. Die Felder dieses Wortes enthalten: Die Systemmaske (Bits 0 bis 7) ist den Eingabe-Ausgabe-Kanälen und von außen kommenden Signalen zugeordnet. Wenn ein Maskenbit null ist, kann die zugeordnete Einheit die zentrale Recheneinheit nicht unterbrechen und die anstehenden Unterbrechungen werden in Bereitschaft gehalten. Wenn das Maskenbit eins ist, kann die Einheit die zentrale Recheneinheit unterbrechen. Der Sperrschlüssel (Bits 8 bis 11) wird, immer wenn ein Ergebnis gespeichert werden soll, mit dem Speicherschlüssel verglichen. Wenn eine Sperrung nicht vorgesehen ist, müssen die Bits 8 bis 11 null sein. Die Prüfmaske M (Bit 13) zeigt, wenn sie null ist, an, daß die zentrale Recheneinheit nicht durch MascMnenpriifunterbrechungen unterbrochen werden kann und daß die zugeordneten Fehlersuchvorgänge nicht stattfinden können. Wenn die Bitposition 13 des Programmstatuswortes eins ist, tritt nach einer Fehlerentdeckung eine Prüfunterbrechung auf, und die Prüfvorgänge können ablaufen. Der Wartestatus W (Bit 14) zeigt, wenn er null ist, an, daß die zentrale Recheneinheit sich im Betriebszustand befindet. Wenn das Bit 14 eins ist, ist die zentrale Recheneinheit im Wartezustand. Der Problemstatus P (Bit 15) zeigt durch eine Null an, daß sich die zentrale Recheneinheit im Supervisorzustand befindet, und durch eine Eins, daß sich die zentrale Recheneinheit im Problemzustand befindet. Der Unterbrechungscode (Bits 16 bis 31) kennzeichnet die Ursache einer Eingabe-Ausgabe-, Programm-, Supervisor- oder äußeren Unterbrechung.
Der Code ist null, wenn eine Maschinenunterbrechung auftritt. Der Befehlslängencode JLC (Bits 32 und 33) kennzeichnet die Länge des letzten ausgeführten Befehls in Halbwörtern, wenn eine Programm- oder Supervisorunterbrechung auftritt. Für Eingabe-Aus-
ao gäbe- oder äußere Maschinenprüfunterbrechungen ist der Code unvorhersehbar. Der Bedingungscode CC (Bits 34 und 35) kennzeichnet, wie bereits oben erwähnt, die Bedingungen. Die Programm-Maske (Bits 36 bis 39) enthält vier Bits. Jedes Bit ist einer Programmabweichung zugeordnet. Wenn das Maskenbit eins ist, besteht die Ausnahme in einer Unterbrechung. Werni das Maskenbit null ist, tritt keine Unterbrechung auf. Das Bedeutungsmaskenbit bestimmt auch die Weise, in welcher die Gleitkommaoperation zu beenden ist. Die Befehlsadresse (Bits 40 bis 63) kennzeichnet die 8-Bit-Bytposition, von welcher der nächste Befehl zu entnehmen ist.
Die F i g. 4, die nunmehr beschrieben werden soll, zeigt eine durch ein Mikroprogramm gesteuerte Datenverarbeitungsanlage, von der jedoch nur diese Teile gezeigt sind, welche für die Verarbeitung eines Bedingungscodes durch einen »Verzweigung-bei-Bedingung«-Befehl im RX-Format von Wichtigkeit sind. In WirkUchkeit sind in den Verbindungen zwischen den dargestellten Schaltblöcken Tore vorgesehen, um wahlweise Verbindungen zwischen den Blöcken entsprechend den Programmschritten herzustellen. Um die Fig. 4 anschaulicher zu machen, sind diese Tore nicht dargestellt. Die Datenverarbeitungsanlage nach Fig. 4 verarbeitet die Daten in Gruppen, sogenannten Bytes, von denen jedes acht Bits enthält. U, V, T, D, G, S,
. Ri L, M und N sind Register, die jeweils acht Bitpositionen aufweisen. Einige dieser Register enthalten auch noch eine neunte Bitposition, in welche ein Paritätsbit eingespeichert wird. Da dieses Bit nur der Prüfung dient, wird es in der nachfolgenden Beschreibung nicht erwähnt.
A und B sind Register, über welche die Eingangswerte einer arithmetischen und logischen Einheit, der Kürze halber ALU genannt, zugeführt werden. Die arithmetische und logische Einheit ALU ist so ausgebildet, daß sie alle in einer Datenverarbeitungsanlage vorkommenden arithmetischen Operationen auszuführen gestattet. Zusätzlich dazu kann sie auch logische Operationen, wie z. B. die UND-Funktion, die ODER-Funktion oder die EXKLUSIV-ODERFunktion ausführen. Das bedeutet, daß jedes einzelne Bit einer Information, die in die ALU über das Register^ zugeführt wird, mit dem entsprechenden Bit einer über das Register B zugeführten Information verarbeitet oder verglichen wird. Die ALU ist ferner in der Lage, die vier niederstelligen Bits mit den vier höherstelligen Bits eines Bytes zu vertauschen.
Die in F i g. 4 dargestellte Schaltung enthält auch noch den Hauptspeicher MS, dessen Ausgang mit dem Register R verbunden ist. Die zwei Register M und N wirken als Adreßregister für den Hauptspeicher. In einem Decoder DEC werden die Adressen decodiert, bevor sie dem Speicher zugeführt werden. Außer den üblichen Speicherstellen enthält der Hauptspeicher sechzehn Register, sogenannte allgemeine Register, von denen jedes zweiunddreißig Bitstellen hat. ίο
In dieser Beschreibung soll angenommen werden, daß der Befehl gerade aus dem Speicher ausgelesen wurde, der Operationscode entschlüsselt wurde und die Bytes des Befehls in dem besonderen Register für den Befehl ersetzt wurden. Es wird ausgegangen von einem Zustand, bei welchem die Adresse in den /- und /-Registern, die zusammen den Befehlszähler darstellen, in das M- und das iV-Register geschoben wird und das /-Register um eins erhöht wird.
Das adressierte Byte ist das erste Byte (der Operationscode 01000111) des RX-»Verzweigen-bei-Bedingung«-Befehls. Dieses Byte wird aus dem Hauptspeicher in das i?-Register gelesen, welches das Speicherdatenregister ist. Danach wird der Speicher regeneriert und das Byte in das G-Register geschoben.
Die obenerwähnte inkrementierte Adresse in den Registern I und / (die zweite dieses Befehls) wird in die Register N und M geschoben und das /-Register wieder um eins erhöht. Auf Grund der Bits GO, Gl, G2 und G3 in dem G-Register, die den Teil 0100 des Operationscodes darstellen, wird ein Schritt ausgelöst, bei welchem das zweite Byte des Befehls aus dem Hauptspeicher in das Ä-Register gelesen wird. Daraufhin wird der Hauptspeicher wieder regeneriert. In der ALU wird der Inhalt des /.-Registers mit dem Inhalt des i?-Registers einem ODER-Vergleich unterzogen und das Ergebnis im /-Register gespeichert. Die niedrigen vier Bits, mit welchen die ODER-Funktion durchgeführt wird, werden geprüft, und die S 5 -Verriegelungsschaltung wird eingeschaltet, wenn die letzten vier Bits null sind. AndernfaUs wird S 5 ausgeschaltet. Abhängig vom Ausgangssignal der ALU und der Bedingung des Operationscodes in der Verriegelungsschaltung G3 wird · der nächste Mikrobefehl bestimmt.
Die um eins erhöhte Adresse in dem /- und /-Register wird in die Register M und N gebracht, und das Register / wird-um eins erhöht. Abhängig von den Bits G4, G5 und G6 (die während Byte 1 ausgelesen wurden) wird der nächste Mikrobefehl bestimmt.
Das durch die Registerikf und N bestimmte" Byte wird aus dem Hauptspeicher in das i?-Register gelesen und der Hauptspeicher wieder regeneriert. Die vier hohen Bits im i?-Register (52) werden zu 00000011 addiert und in das Γ-Register gegeben.
Die Adresse im Γ-Register in den hohen SteUen wählt ein aUgemeines Register (Adresse B2) aus, während der binäre Wertll die Bitpositionen in diesem Register bestimmt. Die folgende Liste zeigt die Adressen der verschiedenen Bytes: 60
Byteadresse Bitpbsitionen
4. Byte 11 = 24 bis 31
3. Byte 10 = 16 bis 23
2. Byte 01 SbislS
!.Byte 00 Obis 7
65
Wenn die vier hohen Bits in dem i?-Register null sind, dann ist kein allgemeines Register ausgewählt, und natürlich wird zur relativen Adresse nichts addiert. Offensichtlich hängt der nächste Schritt vom Inhalt des aUgemeinen Registers ab. In diesem Fall wird angenommen, daß er nicht nuU ist. Abhängig von dieser Annahme und den Bits in GO und G7 wird eine Verzweigung zum nächsten Mikrobefehl gemacht.
Zu diesem Zeitpunkt befindet sich der Operationscode 01000111 im G-Register. Das Maskenfeldiil (Bits 8 bis 11) des RX-Befebls ist in den vier hohen Positionen des /-Registers gespeichert, die vier hohen Bits (B2) des dritten Bytes des Befehls sind im /-Register gespeichert, und die vier niederen Bits des dritten Bytes des Befehls sind immer noch im i?-Register.
Die Adresse des Registers KU, welches einen Teil des Hauptspeichers bildet, wird in die Register M und N gebracht. KU enthält den Bedingungscode, der in der gleichen Weise verschlüsselt ist wie die Maske im Verzweigungsbefehl. Die niedrigen vier Bits des i?-Registers (die vier hohen Bits der relativen Adresse D 2) werden in das [/-Register gebracht.
Der Inhalt des Registers KU wird in das .R-Register Übertragen und der Speicher regeneriert. Nun müssen der Bedingungscode und die Maske miteinander verglichen werden. In diesem Ausführungsbeispiel werden die vier hohen Bits des /-Registers, welche die Maske Rl enthalten, mit den vier hohen Bits des Ä-Registers einer UND-Bedingung unterzogen. Die UND-Bedingung wird erfüUt, wenn in einer der vier hohen Bitpositionen des jR-Registers, das die 4-Bit-Version des Bedingungscodes enthält, und .gleichzeitig in der gleichen der vier hohen Bitstellen des /-Registers ein »1«-Bit steht. In diesem FaU erscheint am Ausgang der ALU ein »1«-Bit.
Die Adresse in den Registern / und / wird in die Register M und N gebracht. Es wird angenommen, daß das logische Ausgangssignal der ALU eins ist, womit angezeigt wird, daß die Maske und der Bedingungscode gleich sind.
Dann wird das vierte Byte des Befehls in das R- Register gebracht, der Speicher regeneriert und das /-Register um eins erhöht. Als nächstes wird der Inhalt des .R-Registers in das F-Register verschoben.
Die Adresse B2 in dem T7-Register wird in die Register M und N verschoben, und der angesprochene Bitbereich wird mit 24 bis 31 angegeben (binär 11). Der /-Registerinhalt wird um eins vermindert.
Die Bits 24 bis 31 des aUgemeinen Registers B2, das vorher aufgerufen wurde, werden in das Register R eingegeben und der T-Registerinhalt um eins vermindert, um das nächste 8-Bit-Byte des allgemeinen Registers, das durch die vier hohen Bits im /-Register , gekennzeichnet ist, aufzurufen.
Die im Register T enthaltene Adresse wird in das M- und JV-Register gebracht, und der Inhalt des V- Registers (des vierten Bytes des Befehls) wird zu dem Inhalt des .R-Registers addiert. Das Ergebnis wird in das K-Register gebracht.
Die Bits 16 bis 23 des aUgemeinen Registers B2,- das durch den Inhalt in T gekennzeichnet wird, wird in das .R-Register gebracht und der Inhalt des /-Registers um eins vermindert.
Die Adresse des /-Registers wird in die Register M und N gebracht. Diese Adresse ist die gleiche wie die vorher benutzte (B2), außer, daß die aufgerufenen Bits nunmehr die Bits 8 bis 15 sind. Der Inhalt des
. ·...„■■■;-,. CSV 709 619/327

Claims (1)

  1. U-Registers, die vier hohen Bits von D2, wird zu den Bits 16 bis 23 des allgemeinen Registers B2, die sich im jR-Register befinden, addiert und das Ergebnis in das CZ-Register gebracht, um den höherwertigen Teil der effektiven Adresse zu bilden, zu welcher die Verzweigung hin ausgeführt wird. Die erste Indexierungsoperation ist damit ausgeführt.
    Das zweite Byte (Bits 8 bis 15) des allgemeinen Registers B2 wird in das i?-Register gebracht und der Speicher regeneriert. Die vier niedrigwertigen Bits (11 bis 15) im !,-Register {X2) werden an die hohen vier Positionen gebracht und dann zu 000000011 addiert und das Ergebnis in das Γ-Register gebracht. Dieser Schritt dient dazu, die Adresse für die zweite Indexierungsoperation zu bilden, bei welchem der Inhalt des zweiten allgemeinen Registers, das in dem Verzweigungsbefehl mit X2 bezeichnet ist, benutzt wird.
    Die Adresse in dem Γ-Register wird in die Register M und JV gebracht. Das Byte, das aus den Bits 8 bis 15 ao des mit B2 gekennzeichneten allgemeinen Registers besteht, wird in das D-Register gebracht.
    Das vierte Byte (Bits 24 bis 31) des X2-Registers wird in das Ii-Register gebracht und der Inhalt des T-Registers um eins vermindert.
    Die Adresse im T-Register wird in die Register M und JV (X2-Register Bits 16 bis 23) gebracht, und die Adresse im V- Register wird zu den Bits 24 bis 31 addiert und wieder ins V- Register gebracht.
    Das dritte Byte des Registers X2 (Bits 16 bis 23) wird in das J?-Register gebracht und der Inhalt des T-Registers um eins vermindert. Im nächsten Schritt, der durch die Einstellung der G3-Verriegelungsschaltung ausgelöst wird, wird die Adresse im T-Register in das M- und JV-Register verschoben. Der Inhalt des [/-Registers (Bits 16 bis 23) des Registers B2 und die vier hohen Bits von D2 werden zu dem Inhalt des Ji-Registers (Bits 16 bis 23 von X2) addiert und in das O-Register geschoben. Die effektive Adresse, zu welcher die Verzweigung ausgeführt wird, ist nun hergestellt und befindet sich in den Registern U und V.
    Das zweite Byte (Bits 8 bis 15 des Registers X2) wird nach R verschoben und der Speicher regeneriert. Der Inhalt des D-Registers (Bits 8 bis 15 des Registers B2) wird zu dem Inhalt des J?-Registers addiert. Wenn die Ausgangssignale des Addierers nicht alle null sind, wird die Sl-Verriegelungsschaltung eingeschaltet. Dies stellt eine Prüfung dar, um festzustellen, ob die Bits im allgemeinen Register, ausgenommen die Bits 16 bis 31, null sind.
    Das V- Register wird mittels der Maske 00000001 _y' geprüft, um festzustellen, ob die V- Registeradresse innerhalb des gültigen 16-Bit-Wortbereiches-'liegt. Wenn das Ausgangssignal des Addierers nicht null ist, was durch eine Null in der niedrigsten Stelle des V- Registers angezeigt wird, wird die S2-Verriegelungsschaltung eingeschaltet und eine Verzweigung durchgeführt, welche auf dem Ausgangssignal des Addierers beruht. Es wird angenommen, daß das Ausgangssignal der ALU null ist.
    Die Adresse in dem V- Register wird dann in das /-Register gebracht, und die Adresse in dem U-Register wird in das /-Register verschoben. In diesem
    Zeitpunkt befindet sich die effektive Adresse, welches die Adresse ist, zu welcher die Verzweigung hin durchgeführt wird, in den /-/-Zählern zur Ausführung des nächsten Befehls. Das L-Register wird geleert, um einen Befehlszyklus für den neuen verzweigten Befehl durchzuführen.
    Wie die Schritte in der vorstehenden Beschreibung zeigen, hat ein Befehl direkt eine bedingte Verzweigung zu einem anderen Befehl (aus der üblichen Reihenfolge heraus) ausgeführt. Die bedingte Verzweigung hängt ab von dem Übereinstimmen oder Nichtübereinstimmen der Maske im Verzweigungsbefehl und dem Bedingungscode, der im Speicher gespeichert ist.
    Patentansprüche:
    1. Bedingungsregister für eine programmgesteuerte Datenverarbeitungsanlage, bei welcher die Bedingungen für die Verzweigung von einem Programm in einem Register gespeichert sind, dadurch gekennzeichnet, daß das Bedingungsregister nur so viele Registerstellen hat, daß immer nur eine Bedingung gespeichert ist, nämlich diejenige, die durch die Ausführung eines das Bedingungsregister verändernden Befehls erzeugt wurde, und daß für vier im Binärcode vorhegende Bedingungen nur zwei Speicherstellen im Bedingungsregister vorhanden sind.
    2. Bedingungsregister nach Anspruch 1, dadurch gekennzeichnet, daß der Bedingungscode mit einer Maske im bedingten Verzweigungsbefehl verglichen wird und daß eine Verzweigung durchgeführt wird, wenn der Maskencode und der Bedingungscode übereinstimmen.
    3. Bedingungsregister nach Anspruch 2, dadurch gekennzeichnet, daß der Bedingungscode und die Maske gegebenenfalls nach Umwandlung in die gleiche Codierung einer UND-Bedingung unterworfen werden.
    4. Bedingungsregister nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Befehle, die bestimmte Bedingungen zur Folge haben können, nach ihrer Ausführung diese Bedingung ermitteln und daß die Bedingung in das Bedingungsregister- eingegeben wird.
    5. Bedingungsregister nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das Bedingungsregister Teil eines Registers ist, das die Zustände' (Programmstatuswort) der programmgesteuerten Datenverarbeitungsanlage anzeigende Codes, z. B. den Programmzählerinhalt enthält.
    __^6*-- Bedingungsregister nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß das Bedingungsregister Teil eines Speicherplatzes des Hauptspeichers ist.
    7. Bedingungsregister nach Anspruch s, dadurch gekennzeichnet, daß für alle möglichen Unterbrechungen je ein Programmstatuswort in einem bestimmten Speicherplatz des Hauptspeichers gespeichert ist und daß beim Aufrufen einer Unterbrechung das vorher benutzte Programmstatuswort in einen durch die jeweilige Unterbrechung bestimmten Speicherplatz eingegeben und das Programmstatuswort, für diese Unterbrechung als neues Programmstatuswort verwendet wird.
    Hierzu 1 Blatt Zeichnungen
    709 619/327 7.67 © Bundesdruckerei Berlin
DEJ27677A 1964-04-06 1965-03-11 Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage Pending DE1246289B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US357372A US3400371A (en) 1964-04-06 1964-04-06 Data processing system

Publications (1)

Publication Number Publication Date
DE1246289B true DE1246289B (de) 1967-08-03

Family

ID=23405304

Family Applications (6)

Application Number Title Priority Date Filing Date
DENDAT1250659D Pending DE1250659B (de) 1964-04-06 Mikroprogrammgesteuerte Datenverarbeitungsanlage
DEJ27677A Pending DE1246289B (de) 1964-04-06 1965-03-11 Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage
DE19651303416D Pending DE1303416B (de) 1964-04-06 1965-03-19
DE19651499200 Pending DE1499200B2 (de) 1964-04-06 1965-03-20 Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE19651499201 Pending DE1499201B2 (de) 1964-04-06 1965-03-26 Schaltungsanordnung zur Umwandlung von Informationen in gepackter Bytedar stellung in eine ungepackte Darstellung
DEJ27790A Pending DE1237363B (de) 1964-04-06 1965-03-27 Arithmetisch-Logische-Einheit

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DENDAT1250659D Pending DE1250659B (de) 1964-04-06 Mikroprogrammgesteuerte Datenverarbeitungsanlage

Family Applications After (4)

Application Number Title Priority Date Filing Date
DE19651303416D Pending DE1303416B (de) 1964-04-06 1965-03-19
DE19651499200 Pending DE1499200B2 (de) 1964-04-06 1965-03-20 Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE19651499201 Pending DE1499201B2 (de) 1964-04-06 1965-03-26 Schaltungsanordnung zur Umwandlung von Informationen in gepackter Bytedar stellung in eine ungepackte Darstellung
DEJ27790A Pending DE1237363B (de) 1964-04-06 1965-03-27 Arithmetisch-Logische-Einheit

Country Status (12)

Country Link
US (1) US3400371A (de)
AT (4) AT264162B (de)
BE (5) BE662149A (de)
CH (6) CH425282A (de)
DE (6) DE1246289B (de)
ES (3) ES311385A1 (de)
FI (1) FI46568C (de)
GB (7) GB1061361A (de)
IL (1) IL23159A (de)
NL (5) NL143351B (de)
NO (1) NO117054B (de)
SE (3) SE311445B (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB768767A (en) * 1954-05-20 1957-02-20 Univ Kingston Method and apparatus for density control
US3388239A (en) * 1965-12-02 1968-06-11 Litton Systems Inc Adder
DE1524158B1 (de) * 1966-06-03 1970-08-06 Ibm Addier-Subtrahier-Schaltung für kodierte Dezimalzahlen insbesondere solche in Byte-Darstellung
DE1549531A1 (de) * 1966-08-16 1971-04-01 Scient Data Systems Inc Digitale Rechenanlage
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3568163A (en) * 1968-10-07 1971-03-02 Hewlett Packard Co Incremental display circuit
US3577189A (en) * 1969-01-15 1971-05-04 Ibm Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays
US4558411A (en) * 1969-05-19 1985-12-10 Burroughs Corp. Polymorphic programmable units employing plural levels of sub-instruction sets
US3701972A (en) * 1969-12-16 1972-10-31 Computer Retrieval Systems Inc Data processing system
US3740722A (en) * 1970-07-02 1973-06-19 Modicon Corp Digital computer
US3761893A (en) * 1970-07-02 1973-09-25 Modicon Corp Digital computer
GB1349950A (en) * 1971-12-21 1974-04-10 Ibm Microprogramme control system
US3740728A (en) * 1972-01-19 1973-06-19 Hughes Aircraft Co Input/output controller
US3768077A (en) * 1972-04-24 1973-10-23 Ibm Data processor with reflect capability for shift operations
US3825902A (en) * 1973-04-30 1974-07-23 Ibm Interlevel communication in multilevel priority interrupt system
DE2336676C3 (de) * 1973-07-19 1981-06-19 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Modifizierung von Mikroprogrammbefehlen
US3990052A (en) * 1974-09-25 1976-11-02 Data General Corporation Central processing unit employing microprogrammable control for use in a data processing system
DE2560129C2 (de) * 1974-09-25 1982-11-04 Data General Corp., 01581 Westboro, Mass. Verfahren für die Erzeugung und Ausführung der Anfangsmikroinstruktion einer zur Ausführung einer Makroinstruktion dienenden Mikroinstruktionsfolge
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
US4342078A (en) * 1979-05-21 1982-07-27 Motorola, Inc. Instruction register sequence decoder for microprogrammed data processor and method
US4310895A (en) * 1979-11-02 1982-01-12 International Business Machines Corporation Plural null digital interconnections
FR2469752B1 (fr) * 1979-11-14 1986-05-16 Bull Sa Dispositif de partage d'un sous-systeme central d'un systeme de traitement de l'information en plusieurs sous-systemes independants
US4453209A (en) * 1980-03-24 1984-06-05 International Business Machines Corporation System for optimizing performance of paging store
US4368513A (en) * 1980-03-24 1983-01-11 International Business Machines Corp. Partial roll mode transfer for cyclic bulk memory
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4480304A (en) * 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US4435753A (en) 1980-10-31 1984-03-06 International Business Machines Corporation Register allocation system using recursive queuing during source code compilation
NL8205076A (nl) * 1982-12-31 1984-07-16 Philips Nv Data processor eenheid voorzien van een stuurgedeelte welk een adresgenerator bevat voor het genereren van adressen welke uit karakteristieke adresdelen zijn samengesteld.
US4567574A (en) 1983-03-14 1986-01-28 International Business Machines Corporation Optimizing cobol object code instruction path length with respect to perform statements
US4575798A (en) * 1983-06-03 1986-03-11 International Business Machines Corporation External sorting using key value distribution and range formation
US4584643A (en) * 1983-08-31 1986-04-22 International Business Machines Corporation Decentralized synchronization of clocks
US4531185A (en) * 1983-08-31 1985-07-23 International Business Machines Corporation Centralized synchronization of clocks
US4587628A (en) * 1983-12-05 1986-05-06 International Business Machines Corporation Method and apparatus for dynamic invocation of utilities
US4603323A (en) * 1984-05-25 1986-07-29 International Business Machines Corporation Method for extending the exponent range of an IBM 370-type floating point processor
US4631673A (en) 1985-01-22 1986-12-23 International Business Machines Corporation Method for refreshing multicolumn tables in a relational data base using minimal information
US4782444A (en) * 1985-12-17 1988-11-01 International Business Machine Corporation Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering
US5034914A (en) * 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
US5247646A (en) * 1986-05-15 1993-09-21 Aquidneck Systems International, Inc. Compressed data optical disk storage system
US4775969A (en) * 1986-05-15 1988-10-04 Aquidneck Systems International, Inc. Optical disk storage format, method and apparatus for emulating a magnetic tape drive
US4823306A (en) * 1987-08-14 1989-04-18 International Business Machines Corporation Text search system
EP0381655A3 (de) * 1989-01-31 1992-12-02 International Business Machines Corporation Verfahren für die Tasksynchronisierungszuweisung zwischen Multiaufgabenbetriebssystemen
EP0409808A3 (en) * 1989-07-19 1991-11-27 International Business Machines Corporation Method for ensuring map integrity in a system-managed store of a computer
US5218696A (en) * 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US5301290A (en) * 1990-03-14 1994-04-05 International Business Machines Corporation Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
JP2575543B2 (ja) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
DE69123663T2 (de) * 1990-08-31 1997-06-26 Ibm Kanäle in einem Rechnerein-Ausgabesystem
US5379398A (en) * 1992-04-20 1995-01-03 International Business Machines Corporation Method and system for concurrent access during backup copying of data
US5584039A (en) * 1993-11-08 1996-12-10 International Business Machines Corporation System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices
US5487077A (en) * 1994-05-23 1996-01-23 International Business Machines Corporation Location dependent variable error correction processing for multi-track recording media using variable length coding means
US7607133B2 (en) 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
GB2506169A (en) * 2012-09-24 2014-03-26 Imagination Tech Ltd Limiting task context restore if a flag indicates task processing is disabled
CN109171701B (zh) * 2018-07-05 2023-02-03 北京谷山丰生物医学技术有限公司 提高心电采集系统频率响应的方法及装置

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2843841A (en) * 1954-09-20 1958-07-15 Internat Telemeter Corp Information storage system
US2872666A (en) * 1955-07-19 1959-02-03 Ibm Data transfer and translating system
US3319230A (en) * 1956-09-26 1967-05-09 Ibm Data processing machine including program interrupt feature
DE1084497B (de) * 1957-11-13 1960-06-30 Emi Ltd Logistische elektronische Rechenvorrichtung
NL136146C (de) * 1957-12-09
IT600645A (de) * 1957-12-23
NL135792C (de) * 1958-08-29 1900-01-01
US3056552A (en) * 1959-01-28 1962-10-02 Ibm Asynchronous parallel adder deriving intermediate sums and carries by repeated additions and multiplications
US3153775A (en) * 1959-02-11 1964-10-20 Ibm Table look-up system
US3141151A (en) * 1959-03-23 1964-07-14 Burroughs Corp Magnetic tape storage system for digital computers wherein an indication of the number of bits in a message is stored with the message
US3185966A (en) * 1959-09-08 1965-05-25 Ibm Data editing system
NL255604A (de) * 1959-09-08
NL256940A (de) * 1959-10-19 1900-01-01
US3111648A (en) * 1960-03-31 1963-11-19 Ibm Conversion apparatus
NL267513A (de) * 1960-07-25
US3233224A (en) * 1960-09-15 1966-02-01 Burroughs Corp Data processing system
US3119098A (en) * 1960-10-31 1964-01-21 Ibm Stream editing unit
US3228005A (en) * 1960-12-30 1966-01-04 Ibm Apparatus for manipulating data on a byte basis
USB325107I5 (de) * 1961-01-27
US3273126A (en) * 1961-08-25 1966-09-13 Ibm Computer control system
DE1187044B (de) * 1961-09-13 1965-02-11
DE1157009B (de) * 1961-09-13 1963-11-07 Telefunken Patent Rechenwerk einer digitalen Rechenmaschine
GB993879A (de) * 1961-11-16
US3258748A (en) * 1962-01-08 1966-06-28 Fntan, fntin
BE626951A (de) * 1962-01-22
US3248708A (en) * 1962-01-22 1966-04-26 Ibm Memory organization for fast read storage
NL292579A (de) * 1962-05-10
BE633719A (de) * 1962-06-22
NL294820A (de) * 1962-07-03
US3267433A (en) * 1962-08-24 1966-08-16 Ibm Computing system with special purpose index registers
US3292152A (en) * 1962-09-17 1966-12-13 Burroughs Corp Memory
BE637749A (de) * 1962-10-01
US3286239A (en) * 1962-11-30 1966-11-15 Burroughs Corp Automatic interrupt system for a data processor
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3264615A (en) * 1962-12-11 1966-08-02 Ibm Memory protection system
US3271744A (en) * 1962-12-31 1966-09-06 Handling of multiple matches and fencing in memories
US3292155A (en) * 1963-03-15 1966-12-13 Burroughs Corp Computer branch command
US3268875A (en) * 1963-12-20 1966-08-23 Ibm Translation operation
US3297997A (en) * 1963-06-10 1967-01-10 Beckman Instruments Inc List control
DE1218761B (de) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Datenspeidbereinrichtung
US3297999A (en) * 1963-08-26 1967-01-10 Burroughs Corp Multi-programming computer
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
US3290658A (en) * 1963-12-11 1966-12-06 Rca Corp Electronic computer with interrupt facility
US3312946A (en) * 1963-12-18 1967-04-04 Ibm Processor for coded data
US3328768A (en) * 1964-04-06 1967-06-27 Ibm Storage protection systems
US3315235A (en) * 1964-08-04 1967-04-18 Ibm Data processing system
US3325785A (en) * 1964-12-18 1967-06-13 Ibm Efficient utilization of control storage and access controls therefor

Also Published As

Publication number Publication date
US3400371A (en) 1968-09-03
ES311385A1 (es) 1965-11-01
CH426321A (de) 1966-12-15
AT253260B (de) 1967-03-28
BE662153A (de) 1965-08-02
GB1108800A (en) 1968-04-03
GB1108801A (en) 1968-04-03
DE1499201B2 (de) 1971-01-21
FI46568B (fi) 1973-01-02
CH422394A (de) 1966-10-15
SE310277B (de) 1969-04-21
NL6504269A (de) 1965-10-07
GB1054725A (de)
NL143351B (nl) 1974-09-16
GB1055704A (en) 1967-01-18
DE1237363B (de) 1967-03-23
ES311413A1 (es) 1965-10-01
GB1108802A (en) 1968-04-03
AT267226B (de) 1968-12-27
SE316936B (de) 1969-11-03
CH424324A (de) 1966-11-15
GB1045425A (en) 1966-10-12
AT255801B (de) 1967-07-25
NL6504272A (de) 1965-10-07
NL6504270A (de) 1965-10-07
BE662151A (de) 1965-08-02
NL6504271A (de) 1965-10-07
DE1499201A1 (de) 1970-10-22
DE1499200A1 (de) 1970-03-05
DE1499200B2 (de) 1971-04-15
NL6504273A (de) 1965-10-07
IL23159A (en) 1969-01-29
BE662154A (de) 1965-08-02
CH425282A (de) 1966-11-30
BE662149A (de) 1965-08-02
SE311445B (de) 1969-06-09
GB1061361A (en) 1967-03-08
BE662152A (de) 1965-08-02
CH418011A (de) 1966-07-31
FI46568C (fi) 1973-04-10
DE1303416B (de) 1971-12-23
AT264162B (de) 1968-08-26
NO117054B (de) 1969-06-23
CH432065A (de) 1967-03-15
ES311414A1 (es) 1966-01-16
DE1250659B (de) 1967-09-21

Similar Documents

Publication Publication Date Title
DE1246289B (de) Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage
DE2755273C2 (de)
DE2903349C2 (de) Prozessor und Verfahren zur Datenverarbeitung
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE3689595T2 (de) Datenverarbeitungssystem.
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1197650B (de) Parallel-Addierer
DE2421130C2 (de)
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE1935944B2 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE1266026B (de) Verfahren und Anordnung zum Verhüten einer Änderung eines Speichermhaltes
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE3586709T2 (de) Informationsverarbeitungseinheit.
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE2428020A1 (de) Elektronische datenverarbeitungsanlage mit unabhaengigen funktionseinheiten fuer das gleichzeitige ausfuehren verschiedener operationen an denselben daten
DE2440390A1 (de) Elektronischer rechner
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE2442014A1 (de) Verfahren und vorrichtung zur organisation eines steuerspeichers
DE3138948C2 (de) Schaltungsanordnung zur Erzeugung von Byte-Kennzeichenbits für die Verarbeitung von Speicheroperanden
DE2261221C2 (de) Steuerwerk in einer Datenverarbeitungsanlage

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977