CH623946A5 - Microprocessor arrangement. - Google Patents

Microprocessor arrangement. Download PDF

Info

Publication number
CH623946A5
CH623946A5 CH1596877A CH1596877A CH623946A5 CH 623946 A5 CH623946 A5 CH 623946A5 CH 1596877 A CH1596877 A CH 1596877A CH 1596877 A CH1596877 A CH 1596877A CH 623946 A5 CH623946 A5 CH 623946A5
Authority
CH
Switzerland
Prior art keywords
register
output
address
data
bus
Prior art date
Application number
CH1596877A
Other languages
German (de)
Inventor
Edward David Finnegan
George Bohoslaw Marenin
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of CH623946A5 publication Critical patent/CH623946A5/en

Links

Classifications

    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

Die Erfindung betrifft eine Mikroprozessor-Anordnung 45 nach dem Oberbegriff des Anspruches 1. The invention relates to a microprocessor arrangement 45 according to the preamble of claim 1.

Zum Stand der Technik gehören Mikroprozessoren mit drei oder vier separaten Funktionsgrundkomponenten (siehe Microprocessors, Electronics «Book Series», 1975, insbesondere Seiten 2 bis 6). Die erste Komponente ist ein Festwert-50 Mikroinstruktionsadressregister für die Erhöhung, Verzweigung und Verbindung einzelner Maschinenelemente. Die zweite Komponente ist die zentrale arithmetisch/logische Einheit, nachfolgend ALU genannt, mit ihren zugehörigen Registern und Datenbahnen. Die dritte Komponente ist die 55 Adressier- und Datenverbindung mit dem Hauptspeicher, die im allgemeinen als Eingabe/Ausgabeeinheit behandelt wird und in der Architektur mit anderen Eingabe/Ausgabegeräten des Systems kombiniert ist. Bei ausreichender Verfeinerung des Mikroprozessors ist noch ein vierter Teil aus Registern 60 und Datenbahnen vorhanden, im allgemeinen Kanal genannt. Dieser dient zur Ausführung prioritätsgebundener Un-terbrechungsumschaltungen und als Option der prioritätsgesteuerten Multiplex-Zykluszuordnung (manchmal auch direkter Speicherzugriff oder DMA genannt). 65 Die heutigen Mikroprozessoren können in zwei Gruppen unterteilt werden, die die oben beschriebenen Funktionen auf einen Satz von mehreren Chips verteilen. In der ersten Gruppe werden die verschiedenen Funktionen separaten The prior art includes microprocessors with three or four separate basic functional components (see Microprocessors, Electronics “Book Series”, 1975, in particular pages 2 to 6). The first component is a fixed value 50 microinstruction address register for increasing, branching and connecting individual machine elements. The second component is the central arithmetic / logical unit, hereinafter called ALU, with its associated registers and data paths. The third component is the 55 addressing and data connection to the main memory, which is generally treated as an input / output unit and is combined in architecture with other system input / output devices. If the microprocessor is sufficiently refined, a fourth part consisting of registers 60 and data paths is present, generally called a channel. This is used to perform priority-based interruption switching and as an option for priority-controlled multiplex cycle allocation (sometimes also called direct memory access or DMA). 65 Today's microprocessors can be divided into two groups, which distribute the functions described above over a set of several chips. The different functions are separated in the first group

3 3rd

623946 623946

Chips zugeordnet, beispielsweise einem ALU-Chip, einem Steuer-Chip, einem Adress-Chip einem E/A-Chip und ROS/ RAM-Chip (manchmal mit Adresssteuerung). Bei der zweiten Gruppe werden die Prozessorfunktionen auf eine Anzahl identischer Chips verteilt. Diese Technik wird «Bitscheibentechnik» genannt und verlangt gewöhnlich separate E/A-Steuer-Chips (siehe obengenannte Veröffentlichung, Seiten 29 bis 34, 35 bis 40 und 93 bis 104). Assigned chips, for example an ALU chip, a control chip, an address chip, an I / O chip and ROS / RAM chip (sometimes with address control). In the second group, the processor functions are distributed over a number of identical chips. This technique is called "bit-disk technology" and usually requires separate I / O control chips (see above publication, pages 29 to 34, 35 to 40 and 93 to 104).

Beide oben beschriebenen Lösungsmöglichkeiten verlangen umfangreiche Verbindungen zwischen den Chips, die jedoch durch die Anzahl der verfügbaren E/A-Stifte begrenzt sind und demzufolge zu einer Verdoppelung der Logik und auch zu Verzögerungen durch die erforderlichen Treiber und Empfänger ausserhalb der Chips führen. Wenn die Daten* oder Adresssammelleitungen bidirektional sind, können Signale erst gesendet oder empfangen werden, wenn zwischen den Treibern und Empfängern eines jeden Chips ein Gesamt-Ausschaltzustand und dann ein Gesamt-Einschaltzustand hergestellt ist. Das führt zu weiteren Verzögerungen. Ausserdem verlangt jede dieser bidirektionalen Sammelleitungen E/A-Stifte und Treiber ausserhalb des Chips, was zu einem grösseren Layout und zu einer höheren Chipverlustleistung führt. Zur Überwindung dieser Nachteile kombinieren bestimmte Architekturen die Adress- und Datensammelleitungen zu einer im Zeitmultiplex betriebenen Einheitssammelleitung. Durch dieses Prinzip werden die Verzögerungen jedoch noch grösser. Both of the solutions described above require extensive connections between the chips, which are however limited by the number of available I / O pins and consequently lead to a doubling of the logic and also to delays due to the required drivers and receivers outside the chips. If the data * or address bus are bidirectional, signals cannot be sent or received until an overall turn-off state and then an overall turn-on state is established between the drivers and receivers of each chip. This leads to further delays. In addition, each of these bidirectional bus lines requires off-chip I / O pins and drivers, which results in a larger layout and higher chip power dissipation. To overcome these disadvantages, certain architectures combine the address and data bus to form a time-divisional bus. However, this principle increases the delays.

Ausserdem sind Prozessoren auf nur einem Chip aus der genannten Veröffentlichung, Seiten 22 bis 27, bekannt Deren Leistungsfähigkeit hinsichtlich Datenflussbreite, logischer und arithmetischer Rechenleistung ist jedoch durch das An-schlussstift- und Sammelleitungs-Problem sowie die Taktierung und Zeitsteuerung begrenzt. In addition, processors on only one chip are known from the publication mentioned, pages 22 to 27, but their performance in terms of data flow width, logical and arithmetic computing power is limited by the pin and bus line problem as well as the timing and timing.

Der Erfindung liegt die Aufgabe zugrunde, eine Mikroprozessor-Architektur für einen Mikroprozessor auf nur einem Halbleiterchip mit verbessertem Sammelleitungssystem und verbesserter Zeitsteuerung zur Ausführung der internen Operation anzugeben, um die Leistungsfähigkeit des Mikroprozessors zu erhöhen und die Anzahl der Treiber und damit die Verlustleistung sowie die erforderlichen Anschlussstifte pro Chip zu verringern. The invention has for its object to provide a microprocessor architecture for a microprocessor on only one semiconductor chip with an improved bus system and improved timing for performing the internal operation to increase the performance of the microprocessor and the number of drivers and thus the power loss and the required Reduce pins per chip.

Die erfindungsgemässe Lösung der Aufgabe ergibt sich aus dem Kennzeichen des Patentanspruchs 1. The achievement of the object according to the invention results from the characterizing part of patent claim 1.

Dadurch, dass ein unidirektionales Ringsammelleitungs-System für einen auf einem Halbleiterchip integrierten Mikroprozessor gefunden worden ist, das mit wenigen Anschlüssen für Eingangs-/Ausgangsleitungen auskommt, ist auch die Anzahl der erforderlichen Kanaltreiber und Eingangsschaltungen wesentlich reduziert worden. Die Leistungsfähigkeit dieses Mikroprozessors wurde dadurch gesteigert, dass das neuartige Sammelleitungssystem mit einer neuartigen Zeitsteuerung bzw. Taktierungseinrichtung kombiniert wurde, wodurch ein zweiteiliger Ausführungszyklus für die Instruktionen mit überlappten und aufeinanderfolgenden Operationen ermöglicht wird. The fact that a unidirectional ring bus system has been found for a microprocessor integrated on a semiconductor chip, which requires only a few connections for input / output lines, has also significantly reduced the number of channel drivers and input circuits required. The performance of this microprocessor was increased by combining the new bus system with a new time control or timing device, which enables a two-part execution cycle for the instructions with overlapped and successive operations.

Ein Ausführungsbeispiel der Erfindung ist in den beigefügten Zeichnungen dargestellt und wird anschliessend näher beschrieben. An embodiment of the invention is illustrated in the accompanying drawings and is described in more detail below.

Es zeigen: Show it:

Fig. 1 einen Lageplan der Fign. 1A, 1B und IC, die in einem Schaltungs-Plan den Aufbau eines Mikroprozessors zeigen, 1 shows a map of the FIGS. 1A, 1B and IC, which show the structure of a microprocessor in a circuit diagram,

Fign. 2A, B, C, 3A, B, C, 4A, B, C in Zeitdiagrammen die Ausführung eines Grundinstruktionssatzes, der an die Architektur des Mikrocomputersystems angepasst ist und die Fign. 2, 3 und 4 die Beziehung dieser Zeitdiagramme zueinander. Fig. 2A, B, C, 3A, B, C, 4A, B, C in time diagrams the execution of a basic instruction set, which is adapted to the architecture of the microcomputer system and FIGS. 2, 3 and 4 the relationship of these timing diagrams to each other.

Die vier Haupteinheiten des in Fig. 1 dargestellten Systems sind: The four main units of the system shown in Figure 1 are:

1. ein Zentralprozessor (CPU) 9, mit der arithmetischen und logischen Einheit 22 (nachfolgend ALU genannt), einem Kanal mit der Eingangssammelleitung 10, der Ausgangssammelleitung 12, der Adresssammelleitung 21, der gemeinsamen Rufleitung 53 und Steuerleitungen 15 sowie mehreren Arbeitsregistern und einer Steuerschaltung, 1. a central processor (CPU) 9, with the arithmetic and logic unit 22 (hereinafter referred to as ALU), a channel with the input bus 10, the output bus 12, the address bus 21, the common call line 53 and control lines 15 and several working registers and a control circuit ,

2. lokale Speicherregister 14, 2. local storage register 14,

3. ein Hauptspeicher 12, 3. a main memory 12,

4. ein Festwertspeicher (ROS) 16, auch Ausführungsspeicher oder Mikroprogrammspeicher genannt. 4. A read-only memory (ROS) 16, also called execution memory or microprogram memory.

Der Zentraprozessor 9 kann z.B. auf einem Chip ausgeführt sein, das in der heutigen Technik in einem Paket montiert ist, das weniger als 70 E/A-Stifte pro Modul braucht. Dieses CPU-Paket kann auf einer Karte zusammen mit einem Modul für den Festwertspeicher 16, einem Modul für die lokalen Speicherregister 14 (die z.B. 32 Register umfassen), The central processor 9 can e.g. be implemented on a chip that, in today's technology, is assembled in a package that requires fewer than 70 I / O pins per module. This CPU package can be on a card together with a module for the read-only memory 16, a module for the local memory registers 14 (e.g. comprising 32 registers),

zwei Modulen für die Hilfstreiber 18 und einem Oszillator (dargestellt durch die Ausgangsleitung 59) montiert sein. Ein kleiner Teil des Hauptspeichers 12 kann auch auf dieser Karte montiert sein oder auf einer zweiten Karte. two modules for the auxiliary drivers 18 and an oscillator (represented by the output line 59). A small part of the main memory 12 can also be mounted on this card or on a second card.

Daten, Instruktionen und Eingabe-/Ausgabebefehle werden zwischen der CPU 9 und anderen Einheiten über zwei unidirektionale Sammelleitungen übertragen, und zwar die Eingangssammelleitung 10 und die Ausgangssammelleitung 20. Die Eingangssammelleitung 10 empfängt Daten von den Eingabe-/Ausgabegeräten (nicht dargestellt), dem Hauptspeicher 12 über die Hauptspeichersammelleitung 11, vom Festwertspeicher 16 über die Festwertspeichersammelleitung 17 und von den lokalen Speicherregistern 14 über die Sammelleitung 13. Daten auf der Eingangssammelleitung 10 werden dem Programmregister 30 und direkt der arithmetisch/ logischen Einheit 22 zugeführt. Wichtig ist vor allen Dingen die Tatsache, dass Daten und Informationen auf der Eingangssammelleitung 10 in einer Richtung der CPU 9 zugeführt werden. Treiber für die Übertragung der Daten vom Chip der CPU 9 über die Eingangssammelleitung 10 sind nicht erforderlich. Treiber, deren Leistung ausreicht, um Daten auf die Eingangssammelleitung 10 zu setzen, sind für den Hauptspeicher 12, die lokalen Speicherregister 14 und den Festwertspeicher 16 vorgesehen. Der Hauptspeicher 12 kann ausserdem Daten von der Eingangssammelleitung 10 nehmen, die vom lokalen Speicherregister 14 oder einem Eingabe/Ausgabegerät über die Sammelleitung 13 auf die Leitung gegeben wurden. Die Ausgangssammelleitung 20 leitet den Inhalt des Ausgabepufferregisters 26 an den Festwertspeicher 16, den Hauptspeicher 12, das lokale Speicherregister 14 und die E/A-Geräte (nicht dargestellt). Die Ausgangssammelleitung 20 dient für den Festwertspeicher 16 und den Hauptspeicher 12 als Adresssammelleitung und für die lokalen Speicherregister 14 und die E/A-Geräte als Datensammelleitung. Die E/A-Geräte werden über sechs Adressleitungen in der Sammelleitung 21 angesteuert, so dass bis zu 64 lokale Speicherregister 14 oder bis zu 63 E/A-Geräte direkt angesteuert werden können. Wie schon gesagt, Data, instructions and input / output commands are transmitted between the CPU 9 and other units via two unidirectional bus lines, namely the input bus 10 and the output bus 20. The input bus 10 receives data from the input / output devices (not shown), the main memory 12 via the main memory bus 11, from the read-only memory 16 via the read-only memory bus 17 and from the local memory registers 14 via the bus 13. Data on the input bus 10 are fed to the program register 30 and directly to the arithmetic / logic unit 22. What is important above all is the fact that data and information are fed in one direction to the CPU 9 on the input bus 10. Drivers for the transmission of the data from the chip of the CPU 9 via the input bus 10 are not required. Drivers whose power is sufficient to put data on the input bus 10 are provided for the main memory 12, the local memory registers 14 and the read-only memory 16. The main memory 12 can also take data from the input bus 10 which has been put on the line by the local memory register 14 or an input / output device via the bus 13. The output bus 20 routes the contents of the output buffer register 26 to the read only memory 16, main memory 12, local memory register 14 and the I / O devices (not shown). The output bus 20 serves as the address bus for the read-only memory 16 and the main memory 12 and for the local memory registers 14 and the I / O devices as the data bus. The I / O devices are controlled via six address lines in the bus 21, so that up to 64 local memory registers 14 or up to 63 I / O devices can be controlled directly. As I said,

führt die Eingangssammelleitung 10 Mikroinstruktionen oder Daten von den E/A-Geräten oder dem Speicher herein. the input bus 10 introduces microinstructions or data from the I / O devices or memory.

Quelle oder Bestimmung für die Übertragungen auf den Sammelleitungen 10 und 20 werden über die Steuerleitungen 15 selektiert. Diese Steuerleitungen 15 werden durch den Hilfstreiber 18 erregt und verlassen ihn in der Darstellung in Fig. 1A als Steuer- und Taktleitungen 19. Dazu gehören die Selektionsleitungen für das lokale Speicherregister, 14, den Festwertspeicher 16, den Hauptspeicher 12, und die Schreibleitungen für das hohe und niedrige Byte. Ein E/A-Gerät wird selektiert, wenn die Selektionsleitung für die lokalen Speicher- Source or destination for the transmissions on the bus lines 10 and 20 are selected via the control lines 15. These control lines 15 are excited by the auxiliary driver 18 and leave it in the illustration in FIG. 1A as control and clock lines 19. These include the selection lines for the local memory register 14, the read-only memory 16, the main memory 12, and the write lines for the high and low bytes. An I / O device is selected if the selection line for the local storage

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

4 4th

register 14 nicht aktiv ist und eine gültige Geräteadresse angegeben wird. Die Gültigkeit der Datenübertragungen auf der Ausgangssammelleitung 20 wird durch vorhergehende einer -Taktimpulse auf einer der Steuerleitungen 15 zeitlich gesteuert. Ausgehende Abfragesignale zeigen an, dass der lokale Speicherausgangscode LCO und der Selektiercode gültig sind. Hereinkommende Abfragesignale sind eine Antwort auf die ausgehenden Abfragesignale zur Feststellung der Gültigkeit der Datenübertragungen auf der Eingangssammelleitung 10 zu dem Prozessor 9 oder Befehlsantworten von den Geräten. Zusammen mit dem Takteingangshaltesignal, mit dem die Eingabe-/Ausgabegeräte das Weiterlaufen des CPU-Taktes verhindern können, gestatten diese Signale einen vollständig asynchronen E/A-Betrieb. register 14 is not active and a valid device address is specified. The validity of the data transmissions on the output bus 20 is timed by previous one clock pulses on one of the control lines 15. Outgoing interrogation signals indicate that the local memory output code LCO and the selection code are valid. Incoming interrogation signals are a response to the outgoing interrogation signals to determine the validity of the data transfers on the input bus 10 to the processor 9 or command responses from the devices. Together with the clock input hold signal, which the input / output devices can use to prevent the CPU clock from continuing, these signals allow completely asynchronous I / O operation.

Anschliessend werden die Eingabe-/Ausgabesammelleitungen 10, 19, 20, 21 und 31 und ihre Funktion kurz beschrieben. The input / output bus lines 10, 19, 20, 21 and 31 and their function are then briefly described.

Die Ausgangssammelleitung 20 umfasst 18 Leitungen für die Datenausgabe der E/A-Geräte und lokalen Speicherregister 14 sowie für die Adressausgabe des Hauptspeichers 12 und des Festwertspeichers 16. The output bus 20 comprises 18 lines for the data output of the I / O devices and local memory register 14 and for the address output of the main memory 12 and the read-only memory 16.

Die Eingangssammelleitung 10 umfasst 18 Leitungen für Mikroinstruktionen vom Festwertspeicher 16, für die Dateneingabe von E/A-Geräten sowie lokalen Speicherregistern 14 und für die Dateneingabe und -ausgabe vom Hauptspeicher 12. Die gemeinsame Rufleitung 53 umfasst sieben Multiplex-Zykluszuordnungsleitungen oder sieben Unterbrechungsstufen-Anforderungsleitungen. Die Zykluszuordnungsaufruf-Leitung ist eine der Leitungen 19 und wird zum Zykluszuordnungsaufruf anstelle von Unterbrechungen auf der gemeinsamen Ruf-Sammelleitung 53 benützt. Löschen der Unterbrechungsprioritäten und Anfordern von Zykluszuordnungsprioritäten. Die Adresssammelleitung 21 besteht hier aus sechs Leitungen zum Adressieren von bis zu 64 Stellen in den lokalen Speicherregistern 14, zur Signalisierung der Zykluszuordnungsstufe oder zur Adressierung von bis zu 63 Eingabe-/Ausgabegeräten. Input bus 10 includes 18 lines for microinstructions from read-only memory 16, data input from I / O devices and local memory registers 14, and data input and output from main memory 12. Common call line 53 includes seven multiplex cycle allocation lines or seven interrupt level request lines . The cycle assignment call line is one of the lines 19 and is used for the cycle assignment call instead of interruptions on the common call bus 53. Clear interrupt priorities and request cycle mapping priorities. The address bus 21 here consists of six lines for addressing up to 64 locations in the local memory registers 14, for signaling the cycle allocation stage or for addressing up to 63 input / output devices.

Zum Selektierausgang für die lokalen Speicherregister gehören die fünf Leitungen LSR-Selektion, Speicher-Seiek-tion, ROS-Selektion, «Schreiben hohes Byte» und «Schreiben niedriges Byte», der Steuer- und Taktleitungen 19. (Wenn «Schreiben hohes oder niedriges Byte» nicht angegeben ist, handelt es sich um eine Leseoperation.) The selection output for the local memory registers includes the five lines LSR selection, memory selection, ROS selection, "write high byte" and "write low byte", the control and clock lines 19. (If "write high or low Byte »is not specified, it is a read operation.)

Ein Signal auf der Abfrageausgangsleitung einer der Steuer- und Taktleitungen 19 zeigt an, dass die LSR-Code-ausgangssignale oder ein Befehl während der Takte 3 bis 4 und 9 bis 14 gültig sind. Der Abfrageeingang schliesst eine gemeinsame Leitung ein, auf der ein selektiertes Gerät auf einen Abfrageausgang antworten kann und die Daten gültig machen kann, die es auf die Eingangssammelleitung 10 gesetzt hat, oder auf einen Befehl antworten kann. A signal on the query output line of one of the control and clock lines 19 indicates that the LSR code output signals or a command are valid during clocks 3 through 4 and 9 through 14. The polling input includes a common line on which a selected device can respond to a polling output and can validate the data that it has placed on the input bus 10 or can respond to a command.

Ein E/A-Gerät fordert beim Signalanstieg auf einer Zy-kluszuordnungs-Eingangsleitung eines Zykluszuordnungsaufrufs an und beim Signalabfall zeigt es an, dass seine Priorität auf der gemeinsamen Rufleitung 53 gültig ist. An I / O device requests a cycle association call when the signal rises on a cycle map input line, and when the signal falls, it indicates that its priority on the common call line 53 is valid.

Ein Signal auf einer Unterbrechungs-Eingangsleitung zeigt an, dass auf der gemeinsamen Rufleitung 53 Unterbrechungen für eines oder mehrere Geräte ausstehen. Die Prioritäten sind dabei auf der gemeinsamen Rufleitung 53 angegeben. Die Oszillatorausgangsleitung 59 liefert kontinuierlich ein rechteckiges Taktsignal. A signal on an interrupt input line indicates that there are 53 interrupts pending for one or more devices on the common call line. The priorities are specified on the common call line 53. The oscillator output line 59 continuously provides a rectangular clock signal.

Durch ein Signal auf der Rückstell-Eingangsleitung wird das System allgemein und nach der Stromeinschaltung zurückgestellt. A signal on the reset input line resets the system in general and after the power is turned on.

Die Ausgangsleitung für Takt 1 oder 9 ist eine der Steuer-und Taktleitungen 19 für die kontinuierliche Taktierung auf der Ausgangssammelleitung 20 derjenigen Daten, die vorher auf der Pufferregister-Ausgangsleitung 28 waren. Die Taktausgangssignale 6, 7 oder 14, 15 (für Instruktionen für Doppelzyklus) auf den Leitungen 19 sorgen für die kontinuierliche Taktierung; ihr Abfallen zeigt das Ende einer Instruktion an. The output line for clock 1 or 9 is one of the control and clock lines 19 for continuous clocking on the output bus 20 of the data that was previously on the buffer register output line 28. The clock output signals 6, 7 or 14, 15 (for instructions for a double cycle) on the lines 19 ensure the continuous clocking; their drop indicates the end of an instruction.

Ein Sperrsignal für das hohe Speicherbyte wird vom Gerät erzeugt, wenn nur das niedrige Byte in den Hauptspeicher 12 geschrieben werden soll. Ein Sperrsignal für niedrige Speicherbytes wird vom Gerät abgegeben, wenn nur das hohe Byte in den Hauptspeicher 12 geschrieben werden soll. Wenn das Gerät beide Signale gleichzeitig anhebt, soll der Hauptspeicher gelesen werden. A lock signal for the high memory byte is generated by the device if only the low byte is to be written into the main memory 12. A lock signal for low memory bytes is issued by the device if only the high byte is to be written into main memory 12. If the device raises both signals at the same time, the main memory should be read.

Durch die Speicherdatenselektion können Daten vom Hauptspeicher 12 auf der Eingangssammelleitung 10 auftreten. Durch Sperren der Speicherdatenselektion kann ein Gerät seine Daten (beispielsweise eine Hauptspeicheradresse) auf die Eingangssammelleitung geben, damit sie in die lokalen Speicheradressregister (Adressregister für die Zykluszuordnung) geschrieben werden. The memory data selection can result in data from the main memory 12 on the input bus 10. By disabling memory data selection, a device can put its data (e.g., a main memory address) on the input bus so that it is written to the local memory address registers (address registers for cycle mapping).

Das Steuersignal LSR-Schreiben wird vom Gerät abgegeben, um Datentabellen im Hauptspeicher zur verketten oder eine Erhöhung der Adresse im lokalen Speicherregister 14 zu verhindern. The control signal LSR write is issued by the device in order to concatenate data tables in the main memory or to prevent an increase in the address in the local memory register 14.

Lokalspeicherregister-Ausgangscode (LCO)-Leitungen 21, Adressen 0 bis 63, zusammen mit LSR-Selektierleitung 19, adressieren das Lokalspeicherregister 14, Stellen 0 bis 63. Die Stellen 16 bis 23 werden für Unterbrechungen und die Stellen 24 bis 31 für Zykluszuordnungen benutzt. LCO 21 Adressen 1 bis 63 ohne LSR-Selektierleitung 19, adressieren E/A-Geräte 1 bis 63, wobei Adresse 0 für Kanalfunktionen reserviert ist. Local memory register output code (LCO) lines 21, addresses 0 to 63, together with LSR select line 19, address the local memory register 14, positions 0 to 63. Positions 16 to 23 are used for interruptions and positions 24 to 31 for cycle assignments. LCO 21 addresses 1 to 63 without LSR select line 19, address I / O devices 1 to 63, whereby address 0 is reserved for channel functions.

Im Zentralprozessor 9 verläuft die Eingangssammelleitung 10 zur ALU 22 und zum Programmregister 30. Die Ausgabe des Programmregisters 30 wird über die Leitungen 33 an die ALU 22 und an den Instruktionsdecodierer 62 geführt. Der Adressteil einer im Programmregister gespeicherten Instruktion wird ausserdem über die Leitung 31 an das LSR-Ausgabesteuerregister 40 und das Erniedrigungsregister 38 gegeben. Die Ausgabe des Erniedrigungsregisters 38 wird über die Leitung 39 an das Programmregister 30, das «Laufende Bedingungs-Register 48 und das Zählregister 50 zurückgeführt. Die Ausgabe des Zählregisters 50 wird über die Leitung 51 an das Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister 40 geleitet. Die Ausgabe des Registers 48 wird über die Leitung 49 an das Register 42 für den reservierten Bedingungscode gegeben. Die Ausgaben des Registers 48 und des Zählregisters 50 werden über die Leitung 43 auch an die ALU 22 gegeben. Der Datenfluss der CPU 9 16 Bit für die ALU 22 und folgende Operationregister: In the central processor 9, the input bus 10 runs to the ALU 22 and to the program register 30. The output of the program register 30 is conducted via lines 33 to the ALU 22 and to the instruction decoder 62. The address portion of an instruction stored in the program register is also passed through line 31 to the LSR output control register 40 and the degradation register 38. The output of the degradation register 38 is fed back via line 39 to the program register 30, the current condition register 48 and the count register 50. The output of the count register 50 is passed on line 51 to the decrement register 38 and the LSR output control register 40. The output of register 48 is provided via line 49 to register 42 for the reserved condition code. The outputs of register 48 and count register 50 are also sent to ALU 22 via line 43. The data flow of the CPU 9 16 bit for the ALU 22 and the following operation registers:

Das Akkumulatorregister 30, dessen Inhalt über die Leitung 33 auf jede Seite der ALU 22 geleitet werden kann. Das Akkumulatorerweiterungsregister 36, dessen Inhalt über die Leitung 37 auf jede Seite der ALU 22 geleitet werden kann. The accumulator register 30, the content of which can be routed via line 33 to each side of the ALU 22. The accumulator expansion register 36, the contents of which can be routed via line 37 to either side of the ALU 22.

Das Totalregister 24 ist der Ausgabepuffer für die ALU 22 und wird von der Sammelleitung 23 geladen. Das Programmregister 30 hält die Makroinstruktion, die durch den Instruktionsdecodierer 62 decodiert und dann ausgeführt werden soll. Der Inhalt des Programmregisters 30 kann auch über die Sammelleitung 33 in die ALU 22 geleitet werden. Der Inhalt des Mikroinstruktions-Adressregisters 32 kann über die Leitung 29 in die ALU 22 geleitet werden zur Adressmodifikation oder für Verzweigungs- und Verbindungsoperationen. Mit dem Zählregister 50 werden Verschiebungen gezählt und die lokalen Speicherregister 14 indirekt adressiert. Der Inhalt des Zählregisters 50 kann zur Ausführung verschiedener Operationen über die Leitung 43 zur ALU 22 geleitet werden. The total register 24 is the output buffer for the ALU 22 and is loaded by the bus 23. Program register 30 holds the macro instruction that is to be decoded by instruction decoder 62 and then executed. The contents of the program register 30 can also be routed to the ALU 22 via the bus 33. The contents of the microinstruction address register 32 can be routed to the ALU 22 via line 29 for address modification or for branching and connecting operations. With the count register 50, shifts are counted and the local memory registers 14 are addressed indirectly. The contents of the count register 50 can be routed to the ALU 22 via line 43 to perform various operations.

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

5 5

623946 623946

Der Ausgabepuffer 26 hält auf die Pufferregister-Ausgangsleitung 28 gegebene Daten fest. Hinter dem Hilfstreiber 18 erscheint diese Pufferregister-Ausgangsleitung 28 als Ausgangssammelleitung 20. Besondere noch zu beschreibende Instruktionen retten den Inhalt des Ausgabepufferregisters The output buffer 26 holds data given on the buffer register output line 28. After the auxiliary driver 18, this buffer register output line 28 appears as an output bus line 20. Special instructions to be described save the content of the output buffer register

26 in die lokalen Speicherregister 14, Pos. 0, wo sie dann für verschiedene Operationen über die Eingangssammelleitung 10 in die ALU 22 eingegeben werden können. Die Ausgabe des Totalregisters 24 erscheint auf der Sammelleitung 25 und wird unter Steuerung der Signale vom Instruktionsdecodierer 62 weitergeleitet, um folgende Register zu laden: das Mikro-instruktionsadressregister 32, das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Fehlerregister 46, das Unterbrechungsmasken-Register 44, das Zählregister 50, das «Laufende Bedingungs-Register 48 und das Ausgabepufferregister 26. Die Ausgabe des Unterbrechungsmasken-Re-gisters 44 wird über die Leitungen 45 und 43 der ALU 22 und über die Leitung 45 dem Unterbrechungstor 52 zugeführt. Ausserdem kann die aus den vier wertniederen Bits bestehende Ausgabe des Totalregisters 24 über die Leitung 26 into the local memory register 14, item 0, where they can then be input into the ALU 22 via the input bus 10 for various operations. The output of the total register 24 appears on the bus 25 and is passed under control of the signals from the instruction decoder 62 to load the following registers: the micro-instruction address register 32, the accumulator register 34, the accumulator expansion register 36, the error register 46, the interrupt mask Register 44, the count register 50, the current condition register 48 and the output buffer register 26. The output of the interrupt mask register 44 is fed to the ALU 22 via lines 45 and 43 and to the interrupt gate 52 via line 45. In addition, the output of the total register 24 consisting of the four lower bits can be carried out via the line

27 den werthohen Bits des Mikroinstruktions-Adressregisters 32 zugeführt werden. 27 the high-value bits of the microinstruction address register 32 are supplied.

Die für Zykluszuordnungen und Unterbrechungsanforderungen multiplex geschaltete gemeinsame Rufleitung 53 ist mit dem Unterbrechungstor 52 und dem Prioritätscodierer 54 verbunden. Die Verbindung mit dem Prioritätscodierer 54 dient Zykluszuordnungen, die eine höhere Priorität haben als Unterbrechungen. Die Ausgabe des Unterbrechungstores 52 wird über die Leitungen 69 an den Prioritätscodierer 54 geleitet. Seine Ausgabe wird über die Leitungen 55 an das Register 56 für laufende Unterbrechungen an eine Unterbre-chungs-Testschaltung 58 und an das LSR-Ausgabesteuerregister 40 geleitet. Die Ausgabe der Unterbrechungs-Testschal-tung 58 erscheint auf der Leitung 63 zum Forcieren eines Unterbrechungs-Erzwingungssignals für eine höhere Stufe. Die Ausgabe des Registers 56 wird über die Leitungen 57 an die Unterbrechungs-Testschaltung 58 und an das LSR-Ausgabesteuerregister 40 geleitet. The common call line 53 multiplexed for cycle assignments and interrupt requests is connected to the interrupt gate 52 and the priority encoder 54. The connection to the priority encoder 54 is for cycle assignments that have a higher priority than interruptions. The output of interrupt gate 52 is routed to priority encoder 54 via lines 69. Its output is passed over lines 55 to the interrupt pending register 56, an interrupt test circuit 58, and the LSR output control register 40. The output of interrupt test circuit 58 appears on line 63 for forcing a higher level interrupt enforcement signal. The output of register 56 is passed on lines 57 to interrupt test circuit 58 and to LSR output control register 40.

Die Taktsignale auf Leitung 59 von einem Einphasenoszillator werden dem 4-Phasen-Generator 60 zugeführt, dessen Ausgabe auf der Leitung 61 zum Taktgeber 66 und zum Hilfstaktgeber 64 läuft. Mit den Ausgangssignalen dieser Taktgeber und Ausgangssignalen des Instruktionsdecodierers 62 wird der Betrieb der CPU 9 einschliesslich der Durchschaltung der Sammelleitung zu den verschiedenen Operandenregistern und der Zeitteilung der verschiedenen Sammelleitungen und Register gesteuert. The clock signals on line 59 from a single-phase oscillator are fed to the 4-phase generator 60, the output of which runs on line 61 to the clock generator 66 and the auxiliary clock generator 64. The output signals of these clock generators and the output signals of the instruction decoder 62 control the operation of the CPU 9 including the connection of the bus to the various operand registers and the time division of the various bus lines and registers.

Im Zusammenhang mit Fig. 5 wird die Zykluszuordnung und der Unterbrechungskanal genauer beschrieben. Soweit wie möglich werden dieselben Bezugszahlen wie für die Elemente in Fig. 1 benutzt. Die Leitungen 530 bis 536 in Fig. 5 stellen die einzelnen Leitungen der gemeinsamen Rufsammelleitung 53 in Fig. 1 in negativer Logik dar. Die Leitungen 450 bis 456 sind die Ausgangsleitungen des Unterbrechungs-Maskenregisters 44. Die Aufrufzykluszuordnungs-Verriege-lung 75 hat eine Ausgangsrückstell-Leitung 80. Im Unterbrechungstor 52 werden die Signale auf der Leitung 450 (zum O-Bit des Unterbrechungs-Maskenregisters 44 gehörend) mit den Signalen auf der Ausgangsrückstell-Leitung 80 UND-verknüpft und das Ergebnis mit den Signalen auf der Leitung 530, die die O-Bitposition der gemeinsamen Rufleitung 53 darstellen, NOR-verknüpft. Das Ergebnis erscheint auf der Leitung 520. In ähnlicher Weise werden die Bits 1 bis 6 des Unterbrechungs-Maskenregisters 44 auf den Leitungen 451 bis 456 mit den Signalen auf der Ausgangsrückstell-Leitung 80 UND-verknüpft und die Ergebnisse mit den Bitpositionen 1 bis 6 der gemeinsamen Rufleitung 53 auf den Leitungen 531 bis 536 NOR-verknüpft. The cycle assignment and the interrupt channel are described in more detail in connection with FIG. 5. Wherever possible, the same reference numbers will be used as for the elements in FIG. 1. Lines 530 to 536 in FIG. 5 represent the individual lines of common call bus 53 in FIG. 1 in negative logic. Lines 450 to 456 are the output lines of interrupt mask register 44. Call cycle allocation latch 75 has an output reset Line 80. In interrupt gate 52, the signals on line 450 (belonging to the O bit of interrupt mask register 44) are ANDed with the signals on output reset line 80 and the result with the signals on line 530 which represent the O bit position of the common call line 53, NOR-linked. The result appears on line 520. Similarly, bits 1 through 6 of interrupt mask register 44 on lines 451 through 456 are ANDed with the signals on output reset line 80 and the results with bit positions 1 through 6 of FIG common call line 53 on lines 531 to 536 NOR-linked.

Die Ergebnisse erscheinen auf den Leitungen 521 bis 526. Die Leitung 520 wird zu den NOR-Gliedern 86, 94 und 95 geführt. Die Leitung 521 führt zu den NOR-Gliedern 86, 90 und 95, die Leitung 522 zum NOR-Glied 86 und zum UND-Glied 91. Die Leitung 523 führt zu den NOR-Gliedern 86 und 90, die Leitung 524 zum NOR-Glied 86 und zum UND-Glied 92. Die Leitung 525 führt zum UND-Glied 88 und zum NOR-Glied 90. Die Leitung 526 führt zum UND-Glied 93. Die Ausgabe des NOR-Gliedes 86 erscheint als —4 Prioritätsleitung 544 und führt zu den UND-Gliedern 87, 88 und 92, zum Register 56 für die laufende Unterbrechung (Pos. 4), zur Unterbrechungsprüfschaltung 58 sowie zum UND-Glied 82. Die Ausgabe des NOR-Gliedes 95 erscheint auf der —2 Prioritätsleitung 542 und wird dem UND-Glied 91, dem Register 56 für die laufende Unterbrechung (Pos. 2), der Unterbrechungsprüfschaltung 58 und dem UND-Glied 82 zugeführt. Die Ausgabe des NOR-Gliedes 90 geht zum UND-Glied 93. Im NOR-Glied 95 werden die Ausgaben der UND-Glieder 87 und 88 mit den Signalen auf den Leitungen 520 und 521 verknüpft. Im NOR-Glied 94 werden die Ausgaben der UND-Glieder 91, 92 und 93 mit den Signalen auf der Leitung 520 verknüpft und erscheinen auf der Leitung 541, die zum Register 56 für die laufende Unterbrechung (Pos. 1), zur Unterbrechungsprüfschaltung 58 und zum UND-Glied 82 führt. The results appear on lines 521 through 526. Line 520 is routed to NOR gates 86, 94 and 95. The line 521 leads to the NOR gates 86, 90 and 95, the line 522 to the NOR gate 86 and to the AND gate 91. The line 523 leads to the NOR gates 86 and 90, the line 524 to the NOR gate 86 and to AND gate 92. Line 525 leads to AND gate 88 and NOR gate 90. Line 526 leads to AND gate 93. The output of NOR gate 86 appears as -4 priority line 544 and leads to the AND gates 87, 88 and 92, to the register 56 for the current interruption (item 4), to the interrupt check circuit 58 and to the AND gate 82. The output of the NOR gate 95 appears on the -2 priority line 542 and becomes the AND gate 91, the register 56 for the current interruption (Pos. 2), the interruption test circuit 58 and the AND gate 82 fed. The output of the NOR gate 90 goes to the AND gate 93. In the NOR gate 95, the outputs of the AND gates 87 and 88 are linked to the signals on lines 520 and 521. In NOR gate 94, the outputs of AND gates 91, 92 and 93 are linked to the signals on line 520 and appear on line 541, which leads to register 56 for the current interruption (item 1), to interrupt check circuit 58 and leads to the AND gate 82.

Mit dem invertierten Signal auf der Zuordnungsanforde-rungsleitung 68 wird die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt. Das einschaltende Ausgangssignal dieser Verriegelung auf den Leitungen 77 verriegelt die Zyklus-zuordnungs-Bestätigungsschaltung. Die Rückstellausgabe der Aufrufzyklus-ZuordnungsVerriegelung 75 auf der Ausgangs-rückstelleitung 80 sperrt die UND-Glieder im Unterbrechungstor 52 und schaltet die Unterbrechungsstufen-Um-schaltverriegelung 84 ab. Deren Ausgabe auf den Leitungen 79 steuert die Ladeleitung für eine neue Unterbrechungsstufe 72 und erregt die Leitung 57 für die laufende Unterbrechungsstufe. Das negative Signal auf der Unterbrechungs-anforderungs-Leitung 70 wird der Zykluszuordnungs-Bestä-tigungsschaltung 76 zugeführt und für die Unterbrechungs-stufen-Umschaltverriegelung 84 invertiert. Das negative Signal auf der Zuordnungsanforderungsleitung 68 wird ebenfalls an die Zykluszuordnungs-Bestätigungsschaltung 76 geleitet. Der Einschaltausgang erscheint auf der Leitung 55 und wird im UND-Glied 89 mit einem Taktimpuls auf der Leitung 85 verknüpft. Das Signal auf der Leitung 78 läuft zum UND-Glied 82 und zu den werthohen Bit-Eingangsleitungen 834, 835, um in diese einen vorgegebenen Code zu zwingen. With the inverted signal on the assignment request line 68, the call cycle assignment lock 75 is locked. The energizing output of this latch on lines 77 latches the cycle map confirmation circuit. The reset output of the polling cycle assignment latch 75 on the output reset line 80 latches the AND gates in the interrupt gate 52 and disables the interrupt stage switch latch 84. Its output on lines 79 controls the charge line for a new interrupt stage 72 and energizes line 57 for the current interrupt stage. The negative signal on interrupt request line 70 is fed to cycle map acknowledge circuit 76 and inverted for interrupt stage switch latch 84. The negative signal on the assignment request line 68 is also sent to the cycle assignment confirmation circuit 76. The switch-on output appears on line 55 and is linked in AND gate 89 with a clock pulse on line 85. The signal on line 78 runs to AND gate 82 and to the high bit input lines 834, 835 to force a predetermined code into them.

Die Leitungen 310 bis 314 stellen die wertniederen Bitpositionen des Adressteiles des Programmregisters 30 dar und sind in Fig. 1 als Leitung 31 dargestellt. Die Leitungen 310 bis 314 werden auf die UND-Glieder 83 geführt, wo ihre Signale einzeln mit den Signalen auf der Mikroinstruk-tions-Einschaltleitung 74 verknüpft werden. Dann laufen sie über die Ausgangsleitungen 831 bis 835 zum LSR-Ausgabesteuerregister 40. Lines 310 to 314 represent the lower-value bit positions of the address part of program register 30 and are shown in FIG. 1 as line 31. Lines 310 through 314 are routed to AND gates 83 where their signals are individually linked to the signals on microinstruction turn-on line 74. They then run to the LSR output control register 40 via the output lines 831 to 835.

Die Ausgänge der UND-Glieder 82 werden über eine DOT-ODER-Verknüpfung mit den Signalen auf den Leitungen 831 bis 833 verbunden, den wertniederen Bitpositionen des Einganges zum LSR-Ausgabesteuerregister 40. Genauso werden die Ausgangsleitungen der UND-Glieder 81 mit den wertniederen Leitungen 831 bis 833 verbunden, die zum LSR-Ausgabesteuerregister 40 führen. Im UND-Glied 81 werden die auf den Leitungen 561, 562 und 563 erscheinenden Ausgangssignale des Registers 56 für die laufende Unterbrechung mit den Signalen auf der Einschaltleitung für die «Laufende Unterbrechung»-Stufe 73 und der Unterbrechungsprüfschaltung 58 verknüpft. Die Einschaltleitung für die «Laufende The outputs of the AND gates 82 are connected via a DOT-OR link to the signals on lines 831 to 833, the low-order bit positions of the input to the LSR output control register 40. The output lines of the AND gates 81 with the low-value lines become the same 831 to 833 connected to the LSR output control register 40. In the AND gate 81, the output signals of the register 56 for the current interruption appearing on the lines 561, 562 and 563 are combined with the signals on the switch-on line for the "current interruption" stage 73 and the interruption test circuit 58. The switch-on line for the «Current

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

6 6

Unterbrechung»-Stufe 73, die den Inhalt des Registers 56 für die laufende Unterbrechung auf die drei wertniederen Eingangsleitungen zum LSR-Ausgabesteuerregister 40 leitet, zwingt auch auf die werthohen Eingangsleitungen 834, 835 ähnlich wie auf die Leitung 78 einen bestimmten jedoch diesmal anderen Code, um so auf die Ausgangsleitungen 41 des LSR-Ausgabesteuerregisters 40 eine Adresse zu setzen, die auf eine andere Stelle im lokalen Speicherregister 14 zeigt. Interrupt »stage 73, which directs the contents of register 56 for the current interruption on the three lower-value input lines to LSR output control register 40, also forces on high-value input lines 834, 835 similarly to line 78 a certain but different code, this time so as to put an address on the output lines 41 of the LSR output control register 40 which points to another location in the local memory register 14.

Zykluszuordnungen haben gegenüber Unterbrechungen Priorität. Signale auf der Zykluszuordnungsanforderungs-Leitung 68 heben sofort den normalen kontinuierlich laufenden Unterbrechungsaufruf auf, indem sie die Aufrufzyklus-Zuordnungsverriegelung 75 verriegeln und so alle Geräte auffordern, ihre Zykluszuordnungsprioritäten auf die gemeinsame Rufleitung 53, Leitungen 530 bis 536, zu setzen und ihre Unterbrechungsanforderungen zurückzuziehen. Wenn das Signal auf der Unterbrechungsanforderungs-Leitung 70 nicht mehr vorhanden ist, wird dadurch dem Mikroprozessor 9 angezeigt, dass alle Geräte ihre Unterbrechungsprioritäts-bits von der gemeinsamen Rufleitung 53 genommen haben. Wenn das Signal auf Zuordnungsanforderungs-Leitung 68 verschwindet und die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt wird, wird sichergestellt, dass die Ausgangsleitungen 541, 542, 544 des Prioritätscodierers 54 auf das LSR-Ausgabesteuerregister 40 geschaltet werden können, zusammen mit den Zykluszuordnungs-Modifizierbits auf den Leitungen 78 in den werthohen Positionen 834 und 835. Ausserdem werden Signale auf den Zykluszuordnungsbestäti-gungs-Leitungen 55 an die E/A-Geräte gegeben. Das Zykluszuordnungsregister in den lokalen Speicherregistern 14, das von Signalen auf der Ausgangsleitung 41 adressiert wird, liefert die indirekte Hauptspeicheradresse auf die Sammelleitung 13, die auch durch die arithmetisch/logische Einheit 22 erhöht werden kann, um Daten vom Gerät zu holen oder dort zu speichern. Die Zykluszuordnungsstufe mit der niedrigsten Priorität braucht kein Prioritätsbit und ihr erzwungener Geräteadressteil ist null, um alle binären Geräteadressen zu ermöglichen. Am Anfang des Zykluszuordnungszyklus wird die Aufrufzyklus-Zuordnungsverriegelung 75 zurückgestellt, um in den kontinuierlichen Unterbrechungsaufruf oder die sequenzielle Ausführung der Mikroinstruktion zurückzukehren. Die Aufrufzyklus-Zuordnungsverriegelung 75 kann auch wieder verriegelt werden, weil sie erst entriegelt werden muss, damit die Geräte wieder die Zuordnungsanforderungs-Leitung 68 erregen können, wenn sequenzielle Zykluszuordnungen gebraucht werden. Das Unterbrechungsmasken-Register 44 wird immer abgeschaltet, wenn die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt wird. Asynchrone Zykluszuordnungs-Anforderungen der Geräte können durch Mikroprozessortaktierung oder durch Verriegelung der Aufrufsammelleitung so gesteuert werden, dass die Prioritätsschaltung stabilisiert werden kann. Cycle assignments have priority over interruptions. Signals on the cycle map request line 68 immediately override the normal continuous interrupt call by locking the call cycle map lock 75, thereby requesting all devices to set their cycle map priorities on the common call line 53, lines 530-536, and to withdraw their interrupt requests. If the signal on the interrupt request line 70 is no longer present, this indicates to the microprocessor 9 that all devices have taken their interrupt priority bits from the common call line 53. When the signal on map request line 68 disappears and the polling cycle map latch 75 is latched, it is ensured that the output lines 541, 542, 544 of the priority encoder 54 can be switched to the LSR output control register 40, along with the cycle map modification bits on the Lines 78 in the high positions 834 and 835. In addition, signals on the cycle mapping confirmation lines 55 are given to the I / O devices. The cycle mapping register in the local memory registers 14, which is addressed by signals on the output line 41, supplies the indirect main memory address to the bus line 13, which can also be increased by the arithmetic / logic unit 22 to fetch or store data from the device . The lowest priority cycle mapping level does not need a priority bit and its forced device address portion is zero to allow all binary device addresses. At the beginning of the cycle mapping cycle, call cycle mapping latch 75 is reset to return to the continuous interrupt call or sequential execution of the microinstruction. The call cycle map lock 75 can also be locked again because it first has to be unlocked so that the devices can energize the map request line 68 when sequential cycle maps are needed. Interrupt mask register 44 is cleared whenever call cycle assignment latch 75 is latched. Asynchronous cycle mapping requirements of the devices can be controlled by microprocessor clocking or by locking the call bus so that the priority circuit can be stabilized.

Organisation einer unidirektionalen Sammelleitung für Eingabe/A usgabe Organization of a unidirectional manifold for input / output

Die Verbindung der unidirektionalen externen Eingabe-und Ausgabesammelleitungen intern in einer geschlossenen Schleife mit der arithmetisch/logischen Einheit 22 gestattet die interne Verarbeitung und die externe Veränderung von E/A-Daten, die Unterbrechungsebenenumschaltung und die Erhöhung der Zykluszuordnungsadresse, so dass mehrere Stufen von Unterbrechungen und Zykluszuordnungen die vorhandene arithmetisch/logische Einheit 22 und die Datenbahn mit einem Minimum an Steuerlogik und ohne zusätzliche Pufferregister gemeinsam benutzen können. The connection of the unidirectional external input and output busbars internally in a closed loop with the arithmetic / logic unit 22 allows the internal processing and external modification of I / O data, the interrupt level switching and the increase of the cycle allocation address so that several stages of interruptions and cycle mappings can share the existing arithmetic / logic unit 22 and highway with a minimum of control logic and without additional buffer registers.

Dazu wird eine unidirektionale Sammelleitung verwendet, die von und zum CPU-Chip 9 führt. Daten und Adresse werden auf derselben Ausgangssammelleitung gemischt. Die For this purpose, a unidirectional bus line is used, which leads from and to the CPU chip 9. Data and address are mixed on the same outlet manifold. The

Eingangssammelleitung 10 ist die einzige Dateneingangssammelleitung zum CPU-Chip 9. Der Hauptspeicher 12 ist an diese Sammelleitung ebenso abgeschlossen wie die lokalen Speicherregister 14. Während die unidirektionale Funktion ■der Eingangssammelleitung 10 bezüglich des CPU-Chip 9 aufrechterhalten wird, wird die Eingangssammelleitung 10 vom Hauptspeicher 12 zum Lesen und Schreiben von Daten benutzt, während die Ausgangssammelleitung 20 die Adresse des Hauptspeichers 12 hält. Input bus 10 is the only data input bus to CPU chip 9. Main memory 12 is terminated to this bus as well as local memory registers 14. While the unidirectional function of input bus 10 with respect to CPU chip 9 is maintained, input bus 10 becomes main memory 12 is used for reading and writing data while the output bus 20 holds the address of the main memory 12.

Die Eingangssammelleitung 10 wirkt ausserdem als externer Eingang für eine Seite der arithmetisch/logischen Einheit 22, (ALU), deren Ausgabe vorübergehend in das Totalregister 24 gesetzt wird. Das Totalregister 24 hat eine Ausgangssammelleitung 25, die zu jedem Register im CPU-Chip 9 führt. Die Sammelleitung 25 ist mit dem Ausgabepufferregister 26 auf der einen Seite verbunden und kommt von dort aus dem CPU-Chip 9 und bildet die Ausgangssammelleitung 20, die in diesem Beispiel eine Datenflussbreite von zwei Bytes hat. Die Ausgangssammelleitung 20 liefert Daten an die lokalen Speicherregister 14 und an eine Anzahl nicht dargestellter E/A-Geräte. Auf Zeitteilerbasis fungiert die Ausgangssammelleitung 20 auch als Adresssammelleitung für den Festwertspeicher 16 und für den Hauptspeicher 12. Bei der erfindungsgemässen hybriden Struktur der Sammelleitungen sind also auf der Ausgangssammelleitung 20 Daten und Adressen und auf der Eingangssammelleitung 10 Daten und Instruktionen enthalten. The input bus 10 also acts as an external input for one side of the arithmetic / logic unit 22, (ALU), the output of which is temporarily placed in the total register 24. The total register 24 has an output bus 25 which leads to each register in the CPU chip 9. The bus 25 is connected to the output buffer register 26 on one side and comes from there out of the CPU chip 9 and forms the output bus 20, which in this example has a data flow width of two bytes. Output bus 20 provides data to local storage registers 14 and a number of I / O devices, not shown. On a time divider basis, the output bus 20 also functions as an address bus for the read-only memory 16 and for the main memory 12. In the hybrid structure of the bus lines according to the invention, data and addresses are thus contained on the output bus 20 and data and instructions on the input bus 10.

Da kein direkter Datenweg vom CPU-Chip 9 zum Hauptspeicher 12 verläuft, setzt die CPU die Ergebnisse in die lokalen Speicherregister 14. Dann wird die unidirektionale Eingangssammelleitung zwischen den lokalen Speicherregistern 14 und dem Hauptspeicher 12 in Gegenrichtung benutzt. Relativ zum Prozessorchip 9 wird die Eingangssammelleitung 10 also dadurch unidirektional gehalten, dass die Ausgangssammelleitung 20 auf Wunsch bei jeder internen Mikroinstruktion zur Datenmodifikation das Ergebnis ohne eine zusätzliche Instruktion oder Zeiteinheit in das gewählte lokale Speicherregister 14 setzen kann. Dadurch ist eine sequenzielle und gleichzeitige Operation auf beiden Sammelleitungen möglich. Das Ausgabepufferregister 26 kann die nächste Mikroinstruktion im Festwertspeicher ROS 16 adressieren, während die vorhergehende Mikroinstruktion im überlappten Betrieb ausgeführt wird, wobei die Daten auf der Eingangssammelleitung 10 liegen. In ähnlicher Weise wird der Hauptspeicher 12 direkt über das Ausgabepufferregister 26 zwischen diesen beiden Adressierarten angesteuert. Ein schmaler Datenabschnitt überträgt Daten an das lokale Speicherregister 14 oder das E/A-Gerät, das durch eine separate sechs Bit umfassende Adresssammelleitung 21 adressiert wird, die ausserdem die entsprechenden Zykluszuordnungsbestätigungen oder Unterbrechungsstufen-Umschaltungen signalisiert. Durch Reservierung eines der 64 lokalen Speicherregister als Sammelleitungs-Ausgaberegister kann der interne Datenfluss auf dem Chip 9 um eine gemeinsame arithmetisch/logische Einheit 22 herum angeordnet werden. Dabei speist das Totalregister 24 alle anderen internen Daten- und Adressierregister sowie das Ausgabepufferregister 26, das auch für die Programmbenutzung als Register für den vierten Operanden im Puffer der lokalen Speicherregister 14 reserviert bleibt. Auf diese Weise kann jedes externe E/A-Gerät die ALU 22 mit der internen Verarbeitung gemeinsam benutzen. Die externen unidirektionalen Sammelleitungen gestatten ausserdem eine totale interne Transparenz des CPU-Chips 9 für die Unterbrechungsstufen-Umschaltung und die direkte Speicherkanaladressierung (Zykluszuordnung). Dabei wird die Speicheradresse automatisch über die gemeinsame ALU 22 und eine Datenbahn erhöht. Die Architektur der Sammelleitungen des Systems gestattet ausserdem eine über5 Since there is no direct data path from the CPU chip 9 to the main memory 12, the CPU places the results in the local memory registers 14. Then the unidirectional input bus between the local memory registers 14 and the main memory 12 is used in the opposite direction. Relative to the processor chip 9, the input bus 10 is thus kept unidirectional in that the output bus 20 can, if desired, put the result into the selected local memory register 14 for each internal microinstruction for data modification without additional instruction or time unit. This enables sequential and simultaneous operation on both bus lines. Output buffer register 26 may address the next microinstruction in read only memory ROS 16 while the previous microinstruction is executing in overlapped mode with the data on input bus 10. Similarly, the main memory 12 is driven directly via the output buffer register 26 between these two types of addressing. A narrow section of data transfers data to the local storage register 14 or I / O device which is addressed by a separate six bit address bus 21 which also signals the appropriate cycle allocation confirmations or interrupt level switches. By reserving one of the 64 local memory registers as the bus output register, the internal data flow on the chip 9 can be arranged around a common arithmetic / logic unit 22. The total register 24 feeds all other internal data and addressing registers as well as the output buffer register 26, which also remains reserved for program use as a register for the fourth operand in the buffer of the local memory register 14. In this way, any external I / O device can share the ALU 22 with internal processing. The external unidirectional bus lines also allow total internal transparency of the CPU chip 9 for the interruption level switchover and direct memory channel addressing (cycle allocation). The memory address is automatically increased via the common ALU 22 and a data path. The architecture of the system's manifolds also allows over 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

7 7

623946 623946

läppte und sequentielle Ausführung von Instruktionen, wofür anschliessend Beispiele gegeben werden. lapped and sequential execution of instructions, examples of which are given below.

In einem ersten Beispiel erfolgt das Seriellschalten, wenn ROS-Instruktionen auf der Eingangssammelleitung 10 liegen, gewöhnlich am Anfang und Ende eines jeden Mikroinstruk-tionszyklus, und gleichzeitig die Ausgangssammelleitung 20 beginnt, Daten an ein E/A-Gerät zu senden. In a first example, when ROS instructions are on the input bus 10, serialization occurs usually at the beginning and end of each microinstruction cycle, and at the same time the output bus 20 begins to send data to an I / O device.

In einem zweiten Beispiel wird überlappt gearbeitet, wenn Daten auf der Eingangssammelleitung 10 von E/A-Geräten oder den lokalen Speicherregistern 14 kommen und intern durch die arithmetisch/logische Einheit 22 verarbeitet werden und gleichzeitig die Ausgangssammelleitung 20 die nächste Adresse des ROS 16 enthält, so dass die nächstfolgende Instruktion adressiert wird. In a second example, there is overlap when data on the input bus 10 comes from I / O devices or the local memory registers 14 and is processed internally by the arithmetic / logic unit 22 and at the same time the output bus 20 contains the next address of the ROS 16, so that the next following instruction is addressed.

In einem dritten Beispiel für den überlappten Betrieb sind Daten von der Ausführung einer vorhergehenden Instruktion noch im lokalen Speicherregister 14 zu speichern und die Ausführung einer neuen Instruktion hat bereits begonnen. Das lokale Speicherregister 14 wird während des Taktes 1 des neuen Instruktionszyklus geladen, während die Ausführung der neuen Instruktion bei Takt 0 begann. Die sechs Leitungen des LSR-Ausgabesteuer-Registers 40 bilden eine zusätzliche Adresssammelleitung 21, 41, zum Adressieren von 64 Halb-wörten der lokalen Speicherregister 14 oder bis zu 63 E/A-Geräten auf der Ausgangssammelleitung 20 abhängig vom Typ der ausgeführten Instruktion. Die Kombination dieser zusätzlichen Miniadresssammelleitung und der Eingangssammelleitung 10 sowie der Ausgangssammelleitung 20 gestattet die Ausführung von Operationen in einem Zyklus. Ein E/A-Gerät kann während derselben Instruktion Daten auf die Eingangssammelleitung 10 setzen, diese durch die ALU 22 verarbeiten lassen und die arithmetisch oder logisch veränderten Daten auf der Ausgangssammelleitung 20 empfangen, während das Gerät durch die Adresssammelleitung 21 adressiert wird. Das ist ein Vorteil gegenüber herkömmlichen Kanälen, die drei Instruktionen schon für eine einfache E/A-Datenübertragung ohne ALU-Operation brauchen. Dazu muss der Prozessor zuerst eine Adresse auf einer gemeinsamen E/A-Sammelleitung aussenden. Dann muss das Gerät über eine Anforderung/Antwortschnittstelle antworten, um anzuzeigen, dass es seine eigene Adresse erkannt hat. Eine zweite Instruktion braucht der Prozessor, um einen Befehl auszusenden, auf den das Gerät antworten kann. Danach muss der Prozessor eine dritte Instruktion ausführen und abhängig von der gewünschten Datenflussrichtung lesen oder schreiben. In a third example of the overlapped operation, data from the execution of a previous instruction is still to be stored in the local memory register 14 and the execution of a new instruction has already started. Local memory register 14 is loaded during clock 1 of the new instruction cycle, while execution of the new instruction started at clock 0. The six lines of the LSR output control register 40 form an additional address bus 21, 41 for addressing 64 half-words of the local memory register 14 or up to 63 I / O devices on the output bus 20 depending on the type of instruction being executed. The combination of this additional mini address bus and the input bus 10 and the output bus 20 allows operations to be performed in one cycle. An I / O device can put data on the input bus 10 during the same instruction, have it processed by the ALU 22, and receive the arithmetically or logically changed data on the output bus 20 while the device is being addressed by the address bus 21. This is an advantage over conventional channels, which require three instructions for simple I / O data transmission without an ALU operation. To do this, the processor must first send out an address on a common I / O bus. Then the device must respond via a request / response interface to indicate that it has recognized its own address. The processor needs a second instruction to send out a command to which the device can respond. The processor must then execute a third instruction and read or write depending on the desired data flow direction.

Die Ausgangssammelleitung 20 ist multiplex geschaltet, so dass für jede ausgeführte Instruktion eine überlappte Operation abläuft. Überlappt bedeutet, dass die nächste Instruktion vom Festwertspeicher 16 adressiert wird, während der Prozessor gleichzeitig intern die laufende Instruktion ausführt. Dazu benutzen die gemeinsamen Sammelleitungen z.B. fünf Taktperioden des acht Taktperioden langen Instruktionszyklus zum Adressieren des ROS 16 und die verbleibenden drei Taktperioden, um Daten entweder an die lokalen Speicherregister 14 oder an die E/A-Geräte zu senden. The output bus 20 is multiplexed so that an overlapped operation occurs for each instruction executed. Overlapping means that the next instruction is addressed by the read-only memory 16 while the processor is simultaneously executing the current instruction internally. The common manifolds use e.g. five clock periods of the eight clock period instruction cycle to address the ROS 16 and the remaining three clock periods to send data to either the local memory registers 14 or the I / O devices.

Hauptspeicher 12 Main memory 12

Der Hauptspeicher 12 bildet einen adressierbaren und fortschreibbaren Speicher zum Speichern von Daten sowohl durch den Prozessor als auch die E/A-Geräte zur späteren Wiederbenutzung. Daten werden im Lese- und Schreibbetrieb über die Hauptspeicher-Sammelleitung 11 übertragen vom und zur Eingangssammelleitung 10. Die Steuer- und Taktleitungen 19 liefern die Takt- und Steuersignale und die Adresse wird über die Ausgangssammelleitung 20 geführt. Main memory 12 forms an addressable and writable memory for storing data by both the processor and the I / O devices for later reuse. Data is transmitted in read and write operation via the main memory bus 11 from and to the input bus 10. The control and clock lines 19 supply the clock and control signals and the address is routed via the output bus 20.

Bei einem Zugriff zum Hauptspeicher 12 wird die In-• struktion durch einen zusätzlichen Zyklus zu einer Doppelzyklusinstruktion. Während des ersten Zyklus wird die Adresse auf den Adresszeiger zum Hauptspeicher 12 erhöht, erniedrigt oder anderweitig verändert. Dieser Adresszeiger kommt vom lokalen Speicherregister 14 oder vom B-Register 36. (Das gibt die Möglichkeit, dass Stapelverarbeitung, auch wenn kein Stapelzeiger verwendet wird, da das System der automatischen Erhöhung/Erniedrigung der Adresse genauso wirkt wie die Stapelzeiger.) Der Hauptspeicher wird im zweiten Zyklus gelesen oder geschrieben, nachdem der Adresszeiger zum Hauptspeicher 12 auf die effektive neue Adresse fortgeschrieben wurde. Die Adresse wird für den ganzen zweiten Zyklus im Ausgabepufferregister 26 festgehalten. Dieser zweite Zyklus wird nachfolgend Hauptspeicherzyklus genannt und umfasst acht Takte zur Adressierung des Hauptspeichers 12. When accessing the main memory 12, the instruction becomes an additional cycle to a double cycle instruction. During the first cycle, the address on the address pointer to main memory 12 is incremented, decremented, or otherwise changed. This address pointer comes from the local memory register 14 or from the B register 36. (This gives the possibility that batch processing, even if no batch pointer is used, since the system of automatically increasing / decreasing the address acts in the same way as the stack pointer.) The main memory becomes read or written in the second cycle after the address pointer to main memory 12 has been updated to the effective new address. The address is held in output buffer register 26 for the entire second cycle. This second cycle is called the main memory cycle below and comprises eight clocks for addressing the main memory 12.

Der Hauptspeicher 12 wird seriell wie folgt betrieben: Während eines Hauptspeicherabrufs werden Daten vom Hauptspeicher 12 auf die Eingangssammelleitung 10 geholt und in eines der internen Register des Prozessors 9 gespeichert. Am Ende der Abruf opération zur Taktzeit null, wenn die nächste Instruktion beginnen soll, werden diese Daten durch die ALU 22 geleitet, in das Totalregister 24 gesetzt und von dort in das Ausgabepufferregister 26 übertragen. Durch diese Datenübertragung in das Ausgabepufferregister 26 wird die laufende Hauptspeicheradresse zerstört. The main memory 12 is operated in series as follows: During a main memory call, data is fetched from the main memory 12 onto the input bus 10 and stored in one of the internal registers of the processor 9. At the end of the polling operation at clock time zero, when the next instruction is to begin, this data is passed through the ALU 22, placed in the total register 24 and transferred from there to the output buffer register 26. The current main memory address is destroyed by this data transfer into the output buffer register 26.

Festwertspeicher (ROS) 16 Read-only memory (ROS) 16

Der Festwertspeicher 16 speichert die auszuführenden Instruktionen, die das Mikrocomputer-Steuerprogramm enthalten. Diese Instruktionen werden auf die Eingangssammelleitung 10 geladen, im Programmregister 30 gepuffert und am Instruktionsdecodierer 62 decodiert. Zusammen mit den Taktgeberschaltungen werden die Schaltglieder, Register und Schaltungen auf eine im Zusammenhang mit den Fign. 2 bis 4 näher erklärten Art so gesteuert, dass sie die verschiedenen Instruktionen ausführen. The read only memory 16 stores the instructions to be executed which contain the microcomputer control program. These instructions are loaded onto the input bus 10, buffered in the program register 30 and decoded at the instruction decoder 62. Together with the clock circuits, the switching elements, registers and circuits are linked to one in connection with FIGS. 2 to 4 explained in more detail controlled so that they carry out the various instructions.

Der ROS 16 wird seriell betrieben und so wird zur Taktzeit null, dem üblichen Anfang einer jeden Mikroinstruktion, die Instruktion von der Eingangssammelleitung 10 in das Programmregister 30 gesetzt. Gleichzeitig werden Daten in das Ausgabepufferregister 26 gesetzt. Somit werden vom ROS 16 auf der Ausgangssammelleitung 20 adressierte Daten von der Eingangssammelleitung 10 genommen und gleichzeitig die Adresse auf der Ausgangssammelleitung 20 zerstört. Wegen inhärenten Verzögerungen in der Schaltung einschliesslich der Treiber und logischen Schaltstufen laufen diese Operationen nacheinander ab. The ROS 16 is operated in series and so the instruction from the input bus 10 is placed in the program register 30 at clock time zero, the usual start of each microinstruction. At the same time, data is placed in the output buffer register 26. Thus, data addressed by the ROS 16 on the output bus 20 is taken from the input bus 10 and at the same time the address on the output bus 20 is destroyed. Because of inherent delays in the circuitry including the drivers and logic gates, these operations occur sequentially.

Lokale Speicherregister (LSR) 14 Local Storage Register (LSR) 14

Die lokalen Speicherregister 14 bestehen aus mehreren adressierbaren und veränderbaren Registerstellen. Daten werden von der Ausgangssammelleitung 20 in die LSR 14 geschrieben und auf die Eingangssammelleitung 10 ausgelesen, adressiert über die Adresssammelleitung 21. Auf die Eingangssammelleitung 10 gesetzte Daten können direkt an den Hauptspeicher 12 oder den Prozessor 9 geleitet werden. Die Stelle null im LSR 14 ist unter noch zu beschreibenden Bedingungen für die Rettung von Daten aus dem Ausgabepufferregister 26 reserviert. The local memory registers 14 consist of several addressable and changeable register locations. Data is written from the output bus 20 to the LSR 14 and read out to the input bus 10, addressed via the address bus 21. Data set on the input bus 10 can be passed directly to the main memory 12 or the processor 9. The zero position in the LSR 14 is reserved under conditions to be described for saving data from the output buffer register 26.

Arithmetisch/logische Einheit (ALU) 22 Arithmetic / Logical Unit (ALU) 22

Auf Zeitteilerbasis wird die arithmetisch/logische Einheit 22 gemeinsam für die Datenverarbeitung, die Erhöhung der Mikroinstruktionsadresse, die Verzweigung bei relativer Adressierung, die Verbindung von Unterroutinen, die Hauptspeicheradressierung, die Adressveränderung, den Abruf und das Speichern von Daten, die Verarbeitung der prioritätsver- On a time divider basis, the arithmetic / logic unit 22 is used jointly for data processing, increasing the microinstruction address, branching in the case of relative addressing, connecting subroutines, main memory addressing, changing the address, retrieving and storing data, processing the priority

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

knüpften. Unterbrechungen und für die Zykluszuordnung benutzt. knotted. Interruptions and used for cycle allocation.

Zu diesem Zweck wird das Adressregister 32 in den Da-tenfluss der arithmetisch/logischen Einheit 22 integriert und die lokalen Speicherregister 14 verwendet. Das Adressregister 32 (ein einfaches nicht erhöhendes Polaritätshalteregi-ster) benutzt in abwechselnden Halbzyklen die ALU 22 zur Erhöhung oder sonstigen Veränderung der Instruktionsadresse im ROS 16. Die positive oder negative Verzweigung und Verbindung der relativen Adresse wird durch diese einfache Datenbahn zur ALU 22 vereinfacht. Da die ALU 22 ihre Ausgabe auf die Ausgangssammelleitung 20 gibt, können Mikroadressen in den lokalen Speicherregistern 14 als Rückkehrzeiger von Unterbrechungen gespeichert werden. Ausserdem können dadurch neue Unterbrechungsroutine-Zeiger geladen und früher unterbrochene Zeiger zurückgespeichert werden, da die lokalen Speicherregister 14 ihre Werte auf die Eingangssammelleitung 10 und über die ALU 22 in das Adressregister 32 geben. Auf diese Weise wird eine prioritäts-verknüpfte erweiterungsfähige Unterbrechungsstruktur ermöglicht, die in den Grunddatenfluss innerhalb der ALU 22 eingeschlossen werden kann. Die Stelle null in den LSRs 14 ist zur Rettung und Rückspeicherung des Inhaltes des Ausgabepufferregisters 26 reserviert. For this purpose, the address register 32 is integrated into the data flow of the arithmetic / logical unit 22 and the local memory register 14 is used. The address register 32 (a simple non-increasing polarity holding register) uses the ALU 22 in alternating half cycles to increase or otherwise change the instruction address in the ROS 16. The positive or negative branching and connection of the relative address is simplified by this simple data path to the ALU 22. Since the ALU 22 outputs its output to the output bus 20, micro addresses can be stored in the local memory registers 14 as return pointers of interruptions. This also allows new interrupt routine pointers to be loaded and previously interrupted pointers to be restored since the local memory registers 14 pass their values onto the input bus 10 and into the address register 32 via the ALU 22. In this way, a priority-linked expandable interrupt structure is made possible, which can be included in the basic data flow within the ALU 22. The zero position in the LSRs 14 is reserved for saving and restoring the content of the output buffer register 26.

Der Prozessor 9 holt Daten vom Hauptspeicher 12 über die Eingangssammelleitung 10 und die ALU 22, um sie in seinen internen Operandenregistern zu speichern. Das Ausgabepufferregister 26 hält die Adresse des Hauptspeichers 12 aus dem gewählten LSR 14 oder dem Operandenregister (wie etwa dem Akkumulator-Erweiterungsregister 36) zur gleichzeitigen Adressierung und Fortschreibung. Daten des Prozessors 9, die im Hauptspeicher 12 als Ergebnis der Ausführung einer früheren Mikroinstruktion zu speichern sind, werden erst auf ein selektiertes LSR 14 über den Ausgabepuffer 26 gesendet. Die Mikroinstruktion zum Schreiben in den Hauptspeicher 12 leitet die Daten im LSR 14 auf die Eingangssammelleitung 10 und dann in den Hauptspeicher 12. Processor 9 fetches data from main memory 12 via input bus 10 and ALU 22 for storage in its internal operand registers. The output buffer register 26 holds the address of the main memory 12 from the selected LSR 14 or the operand register (such as the accumulator expansion register 36) for simultaneous addressing and updating. Processor 9 data that is to be stored in main memory 12 as a result of the execution of an earlier microinstruction is first sent to a selected LSR 14 via output buffer 26. The microinstruction for writing to main memory 12 routes the data in LSR 14 to input bus 10 and then to main memory 12.

Ausserdem können bestimmte Stellen in den LSR 14 auch als indirekte Adressen des Hauptspeichers 12 wirken, und zwar in direkte« Zykluszuordnungsoperationen für ein E/A-Gerät, wobei jeder Prioritätsstufe ein LSR 14 zugeordnet wird. Jedes E/A-Gerät enthält seinen Datenlängenzähler. Die Adressregister des Hauptspeichers 12 in den LSRs 14 werden automatisch über die ALU 22 auf der Ausgangssammelleitung 20 erhöht, um E/A-Daten auf der Eingangssammelleitung 10 in den Hauptspeicher 12 zu schreiben oder Daten aus dem Hauptspeicher 12 zu lesen. Diese Daten laufen über die Eingangssammelleitung 10 durch die ALU 22 und werden den E/A-Geräten auf der Ausgangssammelleitung 20 zur Verfügung gestellt. Die E/A-Geräte empfangen Daten vom Prozessor 9 auf der Ausgangssammelleitung 20 und senden Daten an den Prozessor 9 auf der Eingangssammelleitung 10. In addition, certain locations in the LSR 14 can also act as indirect addresses of the main memory 12, in direct cycle assignment operations for an I / O device, with each priority level being assigned an LSR 14. Each I / O device contains its data length counter. The address registers of main memory 12 in LSRs 14 are automatically incremented via ALU 22 on output bus 20 to write I / O data on input bus 10 to main memory 12 or to read data from main memory 12. This data runs through the ALU 22 via the input bus 10 and is made available to the I / O devices on the output bus 20. The I / O devices receive data from processor 9 on output bus 20 and send data to processor 9 on input bus 10.

In der ALU 22 werden auch emulierte Instruktionen decodiert. Der Operationscode der emulierten Instruktion wird von der ALU 22 der laufenden Instruktionsadresse im Mi-kroinstruktions-Adressregister 32 hinzugefügt und ergibt so einen relativen Adresszeiger auf eine Tabelle im ROS 16 genau unterhalb der gerade ausgeführten laufenden Instruktion. Auf diese Weise erhält man eine Verzweigung auf 256 Wege zu den Instruktionen im ROS 16 zur Ausführung der emulierten Instruktion. Emulated instructions are also decoded in the ALU 22. The operation code of the emulated instruction is added by the ALU 22 to the current instruction address in the micro-instruction address register 32 and thus results in a relative address pointer to a table in the ROS 16 just below the currently executed current instruction. In this way, a branch is obtained in 256 ways to the instructions in the ROS 16 for executing the emulated instruction.

Durch gemeinsame Benutzung des Mikroinstruktions-Adressregisters 32 wird zwischen Unterbrechungen auf demselben Datenweg umgeschaltet, der auch für die Ausführung der Grundinstruktion existiert. Der im Mikroinstruktions-Adressregister 32 entstehende Instruktionsadresswert wird in die lokalen Speicherregister 14 über die ALU 22, das Totalregister 24, die Sammelleitung 25, den Ausgabepuffer 26 und die Ausgangsammelleitung 20 gespeichert. So wird bei einer Unterbrechung der Zeiger auf die nächste Instruktion, die auf der laufenden Programmprioritätsstufe ausgeführt worden wäre, im LSR 14 gerettet. Als nächstes wird die auszuführende höhere Stufe mit Hilfe eines Prioritätscodes ermittelt, der im Prioritätscodierer 54 erzeugt wird und eine Adresse im LSR-Ausgabesteuerregister 40 erzeugt. Mit dieser Adresse wird im lokalen Speicherregister 14 die Stelle angesteuert, die den Zeiger auf die betreffende Unterroutine im Fest-" wertspeicher 16 für die betreffende Unterbrechungsstufe enthält. Dieser Zeiger wird dann über die Eingangssammelleitung 10 aus dem lokalen Speicherregister 14 in den Prozessor 9 über die ALU 22 gegeben und in das Totalregister 24 gesetzt, bevor er in das Mikroinstruktions-Adressregister 32 und den Ausgabepuffer 26 gespeichert wird. Von dort wird im Festwertspeicher 16 die Unterroutine angesteuert, die für die Unterbrechungsstufe auszuführen ist. Wenn die Unterbrechung bedient wurde, wird der laufende Unterbrechungs-Un-terroutinenzeiger im LSR 14 gespeichert und der Adresszeiger für das unterbrochene Programm wieder von dort geholt. By sharing the microinstruction address register 32, there is a switch between interruptions on the same data path that also exists for the execution of the basic instruction. The instruction address value resulting in the microinstruction address register 32 is stored in the local memory register 14 via the ALU 22, the total register 24, the bus 25, the output buffer 26 and the output bus 20. In the event of an interruption, the pointer to the next instruction that would have been executed at the current program priority level is saved in the LSR 14. Next, the higher level to be performed is determined using a priority code that is generated in the priority encoder 54 and that generates an address in the LSR output control register 40. This address is used to control the location in the local memory register 14 which contains the pointer to the relevant subroutine in the read-only memory 16 for the interrupt stage concerned. This pointer is then transferred from the local memory register 14 to the processor 9 via the input bus 10 ALU 22 is given and placed in the total register 24 before it is stored in the microinstruction address register 32 and the output buffer 26. From there the subroutine which is to be executed for the interrupt stage is actuated in the read-only memory 16. If the interrupt has been operated, the current interrupt subroutine pointer is stored in LSR 14 and the address pointer for the interrupted program is fetched from there again.

Programmregister 30 Program register 30

Das Programmregister 30 ist ein Puffer für die laufende Instruktion und hält den Op-Code der Instruktion, die vom Prozessor 9 ausgeführt wird. The program register 30 is a buffer for the current instruction and holds the op code of the instruction that is executed by the processor 9.

Das Zählfeld oder Adressfeld von im Programmregister 30 gespeicherten Instruktionen kann direkt auf das Erniedrigungsregister 38 und das LSR-Ausgabesteuerregister 40 geleitet werden. The count field or address field of instructions stored in the program register 30 can be passed directly to the decrease register 38 and the LSR output control register 40.

Totalregister (Tj 24 Total register (Tj 24

In das Totalregister 24 wird die Ausgabe der ALU 22 gesetzt und die Sammelleitung 25 wird während jedes Instruk-tionsausführungszyklus wenigstens zweimal von dort geladen. Einmal wird die Adresse der als nächste auszuführenden Instruktion geladen und einmal werden die Ausführungsergebnisse der in der Instruktion angegebenen Funktion von der ALU geladen. The output of ALU 22 is placed in total register 24 and bus 25 is loaded from it at least twice during each instruction execution cycle. The address of the instruction to be executed next is loaded once and the execution results of the function specified in the instruction are loaded by the ALU.

Da Daten von der arithmetisch/logischen Einheit ALU 22 vorübergehend im Totalregister 24 gespeichert und dann im Ausgabepuffer 26 gepuffert werden, kann auf der Eingangssammelleitung 10 eine Funktion ausgeführt werden und gleichzeitig eine andere auf der Ausgangssammelleitung 20 beendet werden. Diese zweistufige Pufferung in der Schleife gestattet den überlappten Betrieb. Since data from the arithmetic / logic unit ALU 22 is temporarily stored in the total register 24 and then buffered in the output buffer 26, one function can be carried out on the input bus 10 and another can be ended on the output bus 20 at the same time. This two-stage buffering in the loop allows overlapped operation.

Instruktionsadressregister 22 Instruction Address Register 22

Der Inhalt des Mikroinstruktions-Adressregisters 32 wird während der Ausführung einer jeden Instruktion durch die ALU 22 so verändert, dass die Adresse im ROS 16 auf die nächste auszuführende Instruktion zeigt. The content of the microinstruction address register 32 is changed during the execution of each instruction by the ALU 22 so that the address in the ROS 16 points to the next instruction to be executed.

Akkumulatorregister 34 und Erweiterungsregister 36 Accumulator register 34 and expansion register 36

Die beiden Arbeistregister sind das Akkumulatorregister 34 und das Akkumulator-Erweiterungsregister 36 mit einer Kapazität von jeweils 16 Bits. Dadurch können 32 Informationsbits verschoben werden, beispielsweise arithmetisch oder logisch nach links oder rechts. Ausserdem ist eine Linksverschiebung und Zählung oder eine Drehung nach links oder rechts möglich. The two working registers are the accumulator register 34 and the accumulator expansion register 36, each with a capacity of 16 bits. As a result, 32 information bits can be shifted, for example arithmetically or logically to the left or right. In addition, a left shift and counting or a rotation to the left or right is possible.

Zusammen mit dem Zählregister 50 und dem Ausgabepuffer 26 sind diese Register die internen Register, die von den Mikroinstruktionen direkt adressierbar sind für interne arithmetische und logische Berechnungen. Ihr Inhalt kann ausserdem mit Hilfe eines externen lokalen Speicherregisters 14 oder umgekehrt verändert werden. Dabei kann das Ergebnis in einem der internen Register oder in einem der lokalen Speicherregister 14 gespeichert werden. Together with the count register 50 and the output buffer 26, these registers are the internal registers that can be directly addressed by the microinstructions for internal arithmetic and logical calculations. Their content can also be changed using an external local storage register 14 or vice versa. The result can be stored in one of the internal registers or in one of the local storage registers 14.

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

9 9

623946 623946

Ausgabepufferregister 26 Output buffer register 26

Das Ausgabepufferregister 26 hat zwei Funktionen. Als Operandenregister für die ALU 22 hält es Daten gesteuert vom Mikroprogramm. Ausserdem müssen bei einer Unterbrechung, die die Übertragung von Adresszeigern erzwingt, oder bei direkten Speicherzugriffen Adressen und Daten durch das Ausgabepufferregister 26 laufen. Auf diese Weise verliert das Ausgabepufferregister 26 vom Mikroprogramm eingesetzte Daten nicht. Die Stelle null in den lokalen Speicherregistern 14 ist für den Inhalt des Ausgabepufferregisters 26 reserviert, sobald der Prozessor 9 Instruktionsadressen und Daten ändert, sei es unter der Steuerung einer Unterbrechung oder während einer Zykluszuordnungsoperation. Hinterher kann der Wert des Ausgabepufferregisters 26, der in der Stelle null der LSR 14 gespeichert ist, als Operandenwert der ALU 22 wieder abgerufen werden. Auf diese Weise ist auf dem Chip für den Prozessor 9 keine Rückgriffspeicherung für das Ausgabepufferregister 26 erforderlich. The output buffer register 26 has two functions. As an operand register for the ALU 22, it holds data controlled by the microprogram. In addition, addresses and data must pass through the output buffer register 26 in the event of an interruption which forces the transfer of address pointers or in the case of direct memory accesses. In this way, the output buffer register 26 does not lose data used by the microprogram. The zero position in local storage registers 14 is reserved for the contents of output buffer register 26 whenever processor 9 changes instruction addresses and data, whether under the control of an interrupt or during a cycle mapping operation. Afterwards, the value of the output buffer register 26, which is stored in position zero of the LSR 14, can be called up again as the operand value of the ALU 22. In this way, no recourse storage for the output buffer register 26 is required on the chip for the processor 9.

Treiber 18 Driver 18

Wenn die Ausgangsleitung 28 den Prozessor 9 verlässt, läuft sie zu den Hilfstreibern 18, deren Ausgang die Ausgangssammelleitung 20 ist. In einem hochintegrierten Chip kann jeder Treiber nur eine Last treiben. Da die Ausgangssammelleitung 20 zu vielen Einheiten oder Lasten führt, muss sie erneut getrieben werden. (Bei dieser neuen Stromversorgung kann man die Anzahl der entwickelten Kanalleitungen erweitern durch Codierung der vorhandenen Leitungen für einen oberen oder unteren Pegel während der verschiedenen Taktperioden eines jeden Mikroinstruktionszyklus der acht Takte.) When the output line 28 leaves the processor 9, it runs to the auxiliary drivers 18, the output of which is the output bus 20. In a highly integrated chip, each driver can only drive one load. Since the output manifold 20 leads to many units or loads, it must be driven again. (With this new power supply, the number of channel lines developed can be expanded by coding the existing lines for an upper or lower level during the different clock periods of each microinstruction cycle of the eight clocks.)

Erniedrigungsregister 38 Humiliation Register 38

Mit dem Erniedrigungsregister 38 wird gezählt, und zwar in allen Instruktionen zur Verschiebung, Multiplikation, Division, Erniedrigung, Prüfung und Verzweigung. Das Erniedrigungsregister 38 hat Eingangssignale vom Programmregister 30, sobald eine Schiebeoperation eine direkte Verschiebung bis zu 32 Positionen verlangt, und speichert den erniedrigten Wert im Programmregister 30. Bei indirekten Verschiebungen, bei denen das Zählregister 50 den Schiebezahl-wert enthält, arbeitet man mit derselben Erniedrigung um eins wie bei den direkten Verschiebungen. Das Erniedrigungsregister 38 hält den erniedrigten Wert, bevor er in das Zählregister 50 zurückgegeben wird. The humiliation register 38 is used to count in all instructions for displacement, multiplication, division, humiliation, testing and branching. The decrement register 38 has input signals from the program register 30 as soon as a shift operation requires a direct shift up to 32 positions, and stores the decremented value in the program register 30. For indirect shifts in which the count register 50 contains the shift number value, the same decrement is used by one as with the direct shifts. The decrement register 38 holds the decremented value before it is returned to the count register 50.

Da in diesem Ausführungsbeispiel maximal um 32 Positionen verschoben werden kann, reicht ein Erniedrigungsregister 38 von fünf Bit Kapazität aus. Für Feldlängenoperationen wird jedoch auch das Zählregister 50 als Feldlängenzähler benutzt. Dazu braucht man eine volle acht Bit grosse Erniedrigungsfunktion. Dazu lässt man den Inhalt des fünf Bit grossen Erniedrigungsregisters 38 zweimal umlaufen. Since, in this exemplary embodiment, a maximum of 32 positions can be shifted, a decrease register 38 of five-bit capacity is sufficient. For field length operations, however, the count register 50 is also used as a field length counter. This requires a full eight-bit humiliation function. For this purpose, the content of the five-bit degradation register 38 is circulated twice.

Beim ersten Mal nimmt man ein vier Bit grosses Zeichen aus dem Zählregister 50, erniedrigt es und speichert den Übertrag in die werthohe fünfte Position. Der eventuell vorhandene gespeicherte Übertrag wird zusammen mit den vier werthohen Bitpositionen aus dem Zählregister 50 erniedrigt und bildet den vollen acht Bit grossen erniedrigten Wert, der in das Zählregister 50 zurückgeladen wird. The first time you take a four-bit character from the counting register 50, lower it and save the carry to the high fifth position. The stored carry that may be present is decreased together with the four high-value bit positions from the count register 50 and forms the full eight-bit decreased value which is reloaded into the count register 50.

LSR-Ausgabesteuerregister 40 LSR output control register 40

Es adressiert das E/A-Gerät oder diejenige Stelle in den lokalen Speicherregistern 14, an die die Daten übertragen werden sollen. It addresses the I / O device or the location in the local memory registers 14 to which the data are to be transferred.

Bedingungsregister 48 Condition register 48

Die oberen vier Bits des «Laufende Bedingungs-Registers 48 halten die vier Bedingungscodes und die unteren vier Bits vier programmierbare Markierungen. Diese Bits bilden das nicht verbundene hohe Byte des Zählregisters 50. Bei jeder Rechenoperation werden die vier Bedingungscodes für nachfolgende feldverbundene Operationen gesetzt. Die vier Bedingungen sind: binärer Übertrag, Zweierkomplement-Überlauf, Zweierkomplement minus und der kumulative Ungleich-O-Anzeiger. Wenn dieser Ungleich-O-Anzeiger einmal in einer Feldlänge gesetzt ist, bleibt er gesetzt, bis er durch eine Mikroinstruktion verändert wird. The upper four bits of the current condition register 48 hold the four condition codes and the lower four bits four programmable marks. These bits form the unconnected high byte of the count register 50. With each arithmetic operation, the four condition codes are set for subsequent field-connected operations. The four conditions are: binary carry, two's complement overflow, two's complement minus, and the cumulative unequal O indicator. Once this unequal O indicator is set in a field length, it remains set until it is changed by a microinstruction.

Zählregister 50 Count register 50

Das zweite Operandenregister für die ALU 22 ist das Zählregister 50, das ausserdem als Schiebezähler dienen kann. Die ursprünglich im Zählregister 50 gespeicherte Schiebezahl wird für jede Verschiebung im Akkumulatorregister 34 oder im Akkumulator-Erweiterungsregister 36 einzeln oder für beide heruntergesetzt, wenn sie für eine Schiebeoperation zusammengeschaltet sind. Bei einer Instruktion «links verschieben und zählen» wird die Verschiebung beendet, sobald das werthohe Bit gefunden ist, und der im Zählregister 50 verbleibende Wert zeigt an, wie weit das Verschieben vorangeschritten ist. In vielen Operationen wird dieser Wert daher zum indirekten Adresszeiger auf den ROS 16 oder die LSR 14. Das Zählregister 50 kann von der Sammelleitung 25 geladen und sein Inhalt über die ALU 22 verändert werden. Das Ergebnis wird dann in das LSR-Ausgabesteuerregister 40 geladen, um die LSR 14 über die Adresssammelleitung 21 oder die Eingabe/Ausgabegeräte über die Ausgangssammelleitung 20 anzusteuern. The second operand register for the ALU 22 is the count register 50, which can also serve as a shift counter. The shift number originally stored in the count register 50 is reduced individually or for both for each shift in the accumulator register 34 or in the accumulator expansion register 36, if they are interconnected for a shift operation. In the case of an instruction “shift left and count”, the shift is terminated as soon as the value-high bit is found, and the value remaining in the count register 50 indicates how far the shift has progressed. In many operations, this value therefore becomes the indirect address pointer to the ROS 16 or the LSR 14. The count register 50 can be loaded by the bus 25 and its content can be changed via the ALU 22. The result is then loaded into the LSR output control register 40 to drive the LSR 14 via the address bus 21 or the input / output devices via the output bus 20.

Für indexierte Adressberechnungen und die Berechnung effektiver Adressen dient das Zählregister 50 zur Speicherung positiver oder negativer relativer Adressen kombiniert mit den Daten durch die ALU 22. Das Ergebnis wird in den lokalen Speicherregistern 40 oder in einem internen Register des Prozessors 9 gespeichert. For indexed address calculations and the calculation of effective addresses, the count register 50 is used to store positive or negative relative addresses combined with the data by the ALU 22. The result is stored in the local memory registers 40 or in an internal register of the processor 9.

Register 42 und 48 für reservierten Bedingungscode bzw. für laufende Bedingungen Registers 42 and 48 for reserved condition code or for ongoing conditions

Die Ausgabe des «Laufende Bedingungs-Registers 48 wird selektiv im Register 42 für den reservierten Bedingungscode gepuffert. Die Grundbedingungscodes, die sich durch ALU-Operationen ergeben, sind: Überlauf, Übertrag-Borger, kumulativ nicht null, minus. Die laufenden Bedingungscodes geben das Ergebnis der letzten Ausführung einer arithmetischen Mikroinstruktion wieder. Alle nach links verschobenen werthohen Bits werden in den laufenden Übertragsanzeiger geschoben. Bei Linksverschiebung und Zählung kann das werthohe Bit den laufenden Übertragsanzeiger setzen. Die Bedingungscodes werden nicht verändert durch die Vorgänge The output of the current condition register 48 is selectively buffered in the reserved condition code register 42. The basic condition codes resulting from ALU operations are: overflow, carry-over, cumulative not zero, minus. The current condition codes reflect the result of the last execution of an arithmetic microinstruction. All high-value bits shifted to the left are pushed into the current carry indicator. When shifting to the left and counting, the value-high bit can set the current carry indicator. The condition codes are not changed by the processes

Laden, Speichern, Bewegen, logische Verknüpfungen, Loading, saving, moving, logical links,

Erhöhungen, Erniedrigungen, Sprünge und Verzweigungen. Raises, humiliations, jumps and ramifications.

Codes in den Registern 42 und 48 können separat gelöscht werden und einzeln durch Sprunginstruktionen abgefragt werden. Ausser diesen Bedingungscodes gibt es vier vom Programm gesteuerte Markierungsbits, die in Kombination mit den laufenden Bedingungscodes den Inhalt des Registers 48 bilden. Wenn eine Mikroinstruktion emuliert wird, wird der richtige laufende Mikrostufencode in das Register 42 übertragen, um den Mikrostufenbedingungs-Code der emulierten Sprache auf der Mikrostufe zu erhalten. Codes in registers 42 and 48 can be deleted separately and queried individually by jump instructions. In addition to these condition codes, there are four marker bits controlled by the program which, in combination with the current condition codes, form the content of register 48. When a microinstruction is emulated, the correct current micro level code is transferred to register 42 to obtain the micro level condition code of the emulated speech on the micro level.

Unterbrechungsmasken-Register 44 Interrupt mask register 44

Das Unterbrechungsmasken-Register 44 enthält den laufenden Maskenzustand der zulässigen Unterbrechungsstufen. Der Inhalt des Unterbrechungsmasken-Registers 44 kann auch Interrupt mask register 44 contains the current mask state of the allowable interrupt levels. The contents of the interrupt mask register 44 can also

5 5

10 10th

u u

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

10 10th

über die ALU 22 verändert, in die lokalen Speicherregister 14 weggespeichert oder von dort zurückgeholt werden. changed via the ALU 22, stored in the local storage register 14 or retrieved from there.

Fehlerregister 46 Error register 46

Die beiden wertniederen Bits des Maskenregisters 44 bilden das 1 Byte grosse Fehlerregister 46, das Fehler kontrolliert und registriert. So werden beispielsweise folgende Maschinenfehler registriert: ein Paritätsfehler auf einer vom ROS 16 geholten Instruktion; ein Datenfehler bei Daten von den lokalen Speicherregistern 14; ein Paritätsfehler in Hauptspeicher 12, der durch eine Paritätsprüfung auf der Eingangssammelleitung 10 entdeckt wurde; ein Paritätsfehler auf Daten, die von einem E/A-Gerät empfangen wurden; eine Kanalhängebedingung, in der ein Eingabe-/Ausgabegerät weder Daten austauscht noch dem Mikroprozessor gestattet, zur nächsten Mikroinstruktion fortzuschalten; oder Zeitsperrefehler, wie sie auftreten, wenn eine E/A-Instruktion an ein E/A-Gerät gegeben wird, das nicht existiert und die Adresse daher nicht erkannt werden kann. Diese Fehler können in das Fehlerregister 46 gesetzt und verändert, gerettet, geprüft oder im LSR 14 gespeichert werden. Wenn einer dieser Fehler automatisch durch die Maschinenausrüstung gesetzt wird, wird die höchste Unterbrechungsstufe (Stufe 7) im Mikroprozessor gezwungen, zu einer Unterroutine zu verzweigen, die entweder die Operation erneut versuchen kann oder die laufende Funktion beendet und ein Signal an die Bedienungskonsole gibt. The two lower-order bits of the mask register 44 form the 1-byte error register 46, which checks and registers errors. For example, the following machine errors are registered: a parity error on an instruction fetched by the ROS 16; a data error in data from the local storage registers 14; a parity error in main memory 12 that was discovered by a parity check on input bus 10; a parity error on data received from an I / O device; a channel hang condition in which an input / output device neither exchanges data nor allows the microprocessor to advance to the next microinstruction; or timeout errors, such as occur when an I / O instruction is given to an I / O device that does not exist and therefore the address cannot be recognized. These errors can be placed in the error register 46 and changed, saved, checked or stored in the LSR 14. If one of these errors is automatically set by the machine equipment, the highest interrupt level (level 7) in the microprocessor is forced to branch to a subroutine that can either retry the operation or end the ongoing function and signal the operator console.

Vier-Phasen-Generator 60 und Taktgeber 64, 66 Four-phase generator 60 and clock 64, 66

Ein Einphasenoszillator 59 ist der Eingang für den Vier-Phasen-Generator 60, der zwei Taktgeber speist, nämlich den Hilfstaktgeber 64 und den Grundtaktgeber 66. Der Grundtaktgeber 66 ist ein zweiphasiger Taktgeber, der in jeder zweiten Taktposition gestoppt werden kann. Vier überlappende verriegelte Zustände ergeben acht Takt-Decodierpositionen. Der Grundtaktgeber 66 durchläuft die acht Positionen in jedem Mikroinstruktionszyklus. Die hohe Verriegelungsposition im Grundtaktgeber 66 wird bei der Adressierung des Hauptspeichers 12 benutzt, wenn die ausgeführte Mikroinstruktion einen Doppelzyklus braucht. Dann durchläuft der Grundtaktgeber 66 noch einmal dieselben acht Positionen, durch Einschaltung des Flipflop in der hohen Position wird die Ausgabe des Grundtaktgebers 66 diesesmal jedoch als Takt 8 bis 15 codiert. Die Decodierung des Hilfstaktgebers 64 liefert vier unterscheidbare Zeitabschnitte zusammen mit einem Flipflop in einer hohen Position, das benutzt wird, sobald der Taktgeber einen Wiederholungszyklus durchläuft. Damit wird der grösste Zeitsperrabschnitt von zwei Durchgängen des Taktgebers angezeigt, der einem ganzen Instruk-tionsausführungszyklus äquivalent ist. Der Hilfstaktgeber 64 wird bei Verschiebungen, Multiplikationen oder Divisionen benutzt. Während dieser Instruktionen wird der Haupttaktgeber 66 in seiner siebten Position gestoppt. Damit können Zykluszuordnungen in der Mitte von Verschiebe-Multipli-kations- oder erweiterten Divisionsoperationen weiterlaufen. Der Hilfstaktgeber 64 dient auch der Zeitsperre, wenn E/A-Geräte nicht antworten oder wenn bei Datenaustauschoperationen ein E/A-Gerät auf der Eingangssammelleitung 10 festgestellt wird und versucht, Daten auszutauschen. Wenn die Zeitsperre die zugeordnete Zeit überschreitet, läuft die Zeit im Hilfstaktgeber 64 ab und stellt Anzeiger im Fehlerregister 46 so ein, dass eine Unterbrechung der höchsten Stufe oder eine Maschinenprüfung eingeleitet wird. A single-phase oscillator 59 is the input to the four-phase generator 60, which feeds two clocks, namely the auxiliary clock 64 and the basic clock 66. The basic clock 66 is a two-phase clock that can be stopped in every other clock position. Four overlapping locked states result in eight clock decoding positions. The basic clock 66 cycles through the eight positions in each microinstruction cycle. The high lock position in the basic clock 66 is used in addressing the main memory 12 when the microinstruction being executed needs a double cycle. Then the basic clock 66 passes through the same eight positions again, but by switching on the flip-flop in the high position, the output of the basic clock 66 is coded this time as clocks 8 to 15. The decoding of the auxiliary clock 64 provides four distinguishable periods along with a flip-flop in a high position that is used when the clock goes through a repetition cycle. This shows the largest timeout section of two clock passes, which is equivalent to an entire instruction execution cycle. The auxiliary clock 64 is used for shifts, multiplications or divisions. During these instructions, master clock 66 is stopped in its seventh position. This allows cycle assignments to continue in the middle of shift multiplication or extended division operations. The auxiliary clock 64 also serves to time-out when I / O devices fail to respond, or when an I / O device is detected on the input bus 10 during data exchange operations and attempts to exchange data. When the timeout exceeds the assigned time, the time in the auxiliary clock 64 expires and sets indicators in the error register 46 so that an interruption of the highest level or a machine test is initiated.

Integrierter Kanal für Zykluszuordnung und Unterbrechung nach Prioritäten Integrated channel for cycle allocation and priority break

In den Fig. 5 und Fig. 1 sind die Zykluszuordnungs- und Unterbrechungsfunktionen gezeigt, wie sie durch die gemeinsame Rufleitung 53 wahrgenommen werden. Diese verfügt über acht Zykluszuordnungsstufen oder sieben Unterbre-chungsanforderungsstufen. Die gemeinsame Rufleitung 53 ist hier sieben Bits breit, um die Anforderungen für sieben Unterbrechungsstufen oberhalb der gegenwärtig ausgeführten Programmstufe aufzunehmen, insgesamt also acht Unterbrechungsstufen. Jedes E/A-Gerät kann an jede der sieben mit bestimmten Prioritäten versehene Unterbrechungsanfor-derungs-Leitung angeschlossen werden. Es wird kontinuierlich auf Unterbrechungen abgefragt, ausser wenn die Auf-rufzyklus-Zuordnungsverriegelung 75 verriegelt ist und die Zykluszuordnung erfolgt. Sobald ein E/A-Gerät Bedienung vom Prozessor 9 verlangt, setzt es seine Anforderung auf die zugeordnete Prioritätsbitleitung 530 bis 536 der gemeinsamen Rufleitung 53. Mehrere Anforderungen gehen durch den Prioritätscodierer 54, wo die Anforderung mit der höchsten Priorität in einem Dreibitcode auf den Leitungen 541, 542, 544 codiert wird und eine der acht verschiedenen Prioritätsstufen bezeichnet. Die Priorität der Unterbrechungen wird ausserdem durch das Unterbrechungsmasken-Register 44 gesteuert. FIGS. 5 and 1 show the cycle assignment and interrupt functions as they are carried out by the common call line 53. This has eight cycle assignment levels or seven interrupt request levels. The common call line 53 is seven bits wide here to accommodate the requests for seven interrupt levels above the currently executed program level, for a total of eight interrupt levels. Each I / O device can be connected to any of the seven priority request interrupt lines. Interruptions are continually polled, except when the polling cycle assignment lock 75 is locked and the cycle assignment is in progress. Once an I / O device requests service from processor 9, it places its request on associated priority bit line 530-536 of common call line 53. Several requests go through priority encoder 54, where the request with the highest priority is in a three-bit code on the lines 541, 542, 544 is encoded and designates one of the eight different priority levels. The priority of the interrupts is also controlled by the interrupt mask register 44.

Wenn die Maske im Unterbrechungsmasken-Register 44 so gesetzt ist, dass sie die Unterbrechimg erlaubt, dann lassen UND-Glieder im Unterbrechungstor 52 die Unterbrechungs-Signale zum Prioritätscodierer 54 passieren, um den Code der gegenwärtig anfordernden Prioritäten zu setzen. Diese Unterbrechungspriorität wird in der Unterbrechungsprüfschaltung 58 für eine höhere Unterbrechungsstufe mit der laufenden Unterbrechungsstufe verglichen, die in dem 3 Bit grossen Unterbrechungsregister 56 für die laufende Stufe gespeichert ist. Der Inhalt des Registers 56 wird kontinuierlich mit jeder neuen Stufe vom Prioritätscodierer 54 daraufhin verglichen, ob der neue Code höher ist als der laufende. Wenn das der Fall ist, wird die nächste Instruktion in der laufenden Kette nicht ausgeführt, sondern stattdessen der Adresszeiger im Instruktionsadressregister 32 in die Stelle für die laufende Stufe in den lokalen Speicherregistern 14 übertragen. Der neue oder höhere Stufenzeiger wird dann aus den lokalen Speicherregistern 14 in das Instruktionsadressregister 32 gesetzt. If the mask in interrupt mask register 44 is set to allow the interrupt, then AND gates in interrupt gate 52 pass the interrupt signals to priority encoder 54 to set the code of the currently requesting priorities. This interrupt priority is compared in the interrupt check circuit 58 for a higher interrupt level with the current interrupt level, which is stored in the 3-bit interrupt register 56 for the current level. The content of register 56 is continuously compared with each new level by priority encoder 54 to determine whether the new code is higher than the current one. If so, the next instruction in the current chain is not executed, but instead the address pointer in instruction address register 32 is transferred to the current stage location in local memory registers 14. The new or higher level pointer is then set from the local memory registers 14 into the instruction address register 32.

Die Adresse für die Unterbrechungsroutine in den lokalen Speicherregistern 14 (einer der 8 möglichen Unterbrechungszeiger) wird wie folgt abgeleitet: Die drei wertniederen Bits auf den Leitungen 561, 562, 564 vom Unterbrechungsregister 56 für die laufende Stufe werden unter Steuerung des UND-Gliedes 81 an die Eingangsleitungen 831, 832, 833 des LSR-Ausgabesteuerregisters 40 gegeben. Die Einschaltleitung 73 für die laufende Unterbrechungsstufe lädt die werthohen Leitungen 834, 835 mit den übrigen Bits der Adresse im LSR-Ausgabesteuerregister 40, um den unterbrochenen Zeiger in die LSR 14 zu speichern. Der neue Zeiger auf die Unterbrechungsregister in den LSR 14 wird auf ähnliche Weise in das LSR-Ausgabesteueregister 40 geladen, und zwar auf den werthohen Eingangsleitungen 834, 835 von der Ladeleitung 72 für die neue Unterbrechungsstufe und auf den wert-niederen Leitungen 831 bis 833 vom Unterbrechungsregister 56 für die laufende Stufe, nachdem die Einschaltleitung 73 für die laufende Unterbrechungsstufe den neuen Inhalt des Prioritätscodierers 54 in das Unterbrechungsregister 56 für die laufende Stufe geladen hat. Dadurch wird die neue Adresse im LSR-Ausgabesteuerregister 40 auf die Adresse für die Stelle im LSR 14 geändert, die einen Zeiger auf die Unterroutine zur Ausführung der Unterbrechung für die gewählte Stufe im ROS 16 enthält. Der Adresszeiger kommt auf der Ausgangssammelleitung 20 vom Instruktionsadress-Register 32 an und läuft über das lokale Speicherregister 14 durch die ALU 22 zum Totalregister 24. Wenn die Unterroutine der neuen Unterbrechungsstufe fertig ausgeführt ist, wird eine The address for the interrupt routine in the local memory registers 14 (one of the 8 possible interrupt pointers) is derived as follows: The three least significant bits on lines 561, 562, 564 from the interrupt register 56 for the current stage are turned on under the control of the AND gate 81 the input lines 831, 832, 833 of the LSR output control register 40 are given. The current interrupt stage power-on line 73 loads the high-value lines 834, 835 with the remaining bits of the address in the LSR output control register 40 to store the interrupted pointer in the LSR 14. The new pointer to the interrupt registers in the LSR 14 is similarly loaded into the LSR output control register 40 on the high value input lines 834, 835 from the load line 72 for the new interrupt level and on the low value lines 831 to 833 from Interrupt register 56 for the current stage after the switch-on line 73 for the current interrupt stage has loaded the new content of the priority encoder 54 into the interrupt register 56 for the current stage. This changes the new address in the LSR output control register 40 to the address for the location in the LSR 14 that contains a pointer to the subroutine for executing the interrupt for the selected level in the ROS 16. The address pointer arrives on the output bus 20 from the instruction address register 32 and runs through the local memory register 14 through the ALU 22 to the total register 24. When the subroutine of the new interrupt stage is completed, one is executed

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

11 11

623946 623946

Verzweigungsausgangs-Instruktion gegeben und dadurch der Zeiger auf das ursprünglich unterbrochene Programm zurückgestellt. Da die die Unterbrechung bedienende Unterroutine auch die Unterbrechung zurückstellt, sollte die Anforderung für dieselbe Unterbrechung nicht vorhanden sein. Wenn auf derselben oder einer höheren Stufe eine weitere Unterbrechung ankommt, kehrt das Programm nicht zur ursprünglichen Programmposition zurück, sondern behandelt die neuere Unterbrechungsanforderung. Dadurch ist eine volle Verpflichtung bis zu 8 Unterbrechungsstufen möglich. Ausserdem können für jede Stufe mehrere Unterstufen existieren. Wenn einmal eine gegebene Unterbrechungsstufe erkannt ist, wird an alle E/ A-Geräte ein Unterbrechungsstufen-Statuswort (1LSW) gegeben, und eines der 16 Geräte, das gegenwärtig die Bedienung auf einer bestimmten Unterbrechungsstufe anfordert, muss sich identifizieren. (Auf diese Weise kann man für jede der 8 Stufen 16 Unterstufen bekommen, insgesamt also Unterbrechungen auf 128 Unterstufen.) Mit dem in einem Register des Prozessors 9 empfangenen Unterbrechungsstufen-Statuswort kann man feststellen, welches der 16 Geräte auf der betreffenden Stufe die Bedienung anfordert. Das geschieht mit Hilfe einer Linksschiebe- und Zählinstruktion. Das erste Bit in der werthöchsten Position stoppt diese Instruktion und die verbleibende Zahl im Zählregister 50 gibt die Position der Unterroutine für das betreffende Gerät an. Branch output instruction given and thereby the pointer is reset to the originally interrupted program. Because the interrupt serving subroutine also deferrals the interrupt, the request for the same interrupt should not exist. If another interrupt arrives at the same or a higher level, the program does not return to the original program position but deals with the newer interrupt request. This enables a full commitment up to 8 interruption levels. In addition, several sub-levels can exist for each level. Once a given interrupt level is recognized, an interrupt level status word (1LSW) is given to all I / O devices and one of the 16 devices currently requesting operation at a particular interrupt level must identify itself. (In this way, 16 sub-levels can be obtained for each of the 8 levels, for a total of interruptions to 128 sub-levels.) With the interruption level status word received in a register of the processor 9, it can be determined which of the 16 devices at the relevant level requests operation . This is done with the help of a left shift and counting instruction. The first bit in the highest value position stops this instruction and the remaining number in the count register 50 indicates the position of the subroutine for the device in question.

Die gemeinsame Rufleitung 53 dient auch der Zykluszuordnung, muss jedoch erst von Unterbrechungsanforderungen befreit werden. Durch ein eine Zykluszuordnung anforderndes Gerät wird die Zuordnungsanforderungs-Leitung 68 auf einen logisch negativen Pegel gesetzt. Wenn ein Signal auf dieser Leitung einmal die Aufrufzyklus-Zuordnungsverriegelung 75 verriegelt hat, kommt sofort ein Signal auf der Leitung 77 hoch. Dadurch werden die Geräte aufgefordert, ihre Unterbrechungsanforderungen von der gemeinsamen Rufleitung 53 zu nehmen, bis die Zykluszuordnungsfunktion abgeschlossen ist. Sobald alle Geräte ihre Signale von der Un-terbrechungsanforderungs-Leitung 70 und der Zuordnungsanforderungs-Leitung 68 genommen haben, wird die Zyklus-zuordnungs-Bestätigungsverriegelung 76 im nächsten Takt 0 verriegelt und damit angezeigt, dass die gemeinsame Ruflei-tung 53 die Zykluszuordnungspriorität für das anfordernde Gerät hat, die unter Umgehung des Unterbrechungstores 52 direkt in den Prioritätscodierer 54 geht. Dadurch kommen 3 Bits einer LCO-Prioritätsadresse aus dem Prioritätscodierer 54 und werden am UND-Glied 82 über die Leitung 78 (getaktete Ausgabe der Zykluszuordnungs-Bestätigungsverriege-lung 76) in das LSR-Ausgabesteuerregister 40 geleitet, zusammen mit den fixen werthöheren Adresszeigerbits im LSR 14 für die Zykluszuordnungsstufe, die als Adresse des Hauptspeichers 12 benutzt wird. Damit speichert oder liest man Daten im Hauptspeicher 12 unter voller Steuerung des E/A-Gerätes soweit, dass nur das obere oder untere Byte gesetzt wird (anstelle der 2 Bytes im Halbwortbetrieb). In dieser Betriebsart bleibt das Unterbrechungsregister 56 für die laufende Stufe ungestört, weil die Unterbrechungsstufe (Programmstufe oder eine höhere ausgeführte Stufe) gerade um die Unterbrechung dieser einen Zykluszuordnungsinstruktion verzögert wird. Ein Speicherzugriff wird anfangs durch einen Zeiger vom LSR-Ausgabesteuerregister 40 adressiert. Er enthält die 3 wertniederen Bits, die angeben, welche der 8 Zykluszuordnungsstufen gegenwärtig bestätigt wird und die werthohen Bits geben eine relative Adresse für die Halbwortregister in den lokalen Speicherregistern 14 an, die die indirekte Speicheradresse enthalten. Diese Adresse wird von den lokalen Speicherregistern 14 auf die Eingangssammelleitung 10 ausgelesen und durch die ALU 22 erhöht, bevor sie in das Ausgabepufferregister 26 gesetzt wird. Während der Speicherzugriffszeit des Hauptspeichers 12 kann die erhöhte Adresse auf der Ausgangssammelleitung 20 fortgeschrieben, in das Zykluszuordnungsregister in den lokalen Speicherregistern 14 zurückgeschrieben werden oder ein Rückschreiben kann durch das Bestätigen der E/A-Geräte verhindert werden, so dass die Zykluszuordnungsadresse unverändert bleibt. Nach einer Zugriffszeit werden Daten aus dem Hauptspeicher 12 auf die Eingangssammelleitung 10 ausgelesen, wenn das E/A-Gerät die Auslesewahl des Hauptspeichers 12 gestattet und die Schreibimpulse sperrt, die vom Prozessor 9 auf den Steuer- und Taktleitungen 19 erscheinen. Das E/A-Gerät kann seine eigenen Daten, die in den Hauptspeicher 12 geschrieben werden sollen, auf die Eingangssammelleitung 10 setzen. So kann das Gerät die Erhöhungsfunktion und die Lese- oder Schreiboperation voll über die integrierte ALU 22 steuern. Im Schreibbetrieb kann das Gerät seine eigenen Daten während des folgenden Taktes 1 noch auf der Ausgangssammelleitung 20 finden, wenn die Operation einmal beendet ist. Im Lesebetrieb fliessen die auf die Eingangssammelleitung 10 ausgelesen Daten durch die ALU 22 in das Totalregister 24 und das Ausgabepufferregister 26 und werden allen E/A-Geräten an der Ausgangssammelleitung 20 zur Verfügung gestellt. Die Daten werden im Lesebetrieb aber nur von dem E/A-Gerät aufgenommen, das den Zykluszuordnungsstufen-Code auf der Adresssammelleitung 21 erkennt. Der Prozessor 9 kehrt dann in die normale Instruktionsausführung oder in die Unterbrechungsroutinen-Verarbeitung zurück, die für diesen einen Zyklus des direkten Speicherzugriffs oder der Zykluszuordnung ausgesetzt wurden. The common call line 53 is also used for cycle allocation, but must first be freed from interrupt requests. By means of a device requesting a cycle assignment, the assignment request line 68 is set to a logic negative level. Once a signal on this line has latched polling cycle lock 75, a signal on line 77 comes up immediately. This prompts the devices to take their interrupt requests from the common call line 53 until the cycle mapping function is complete. As soon as all devices have taken their signals from the interrupt request line 70 and the assignment request line 68, the cycle assignment confirmation lock 76 is locked in the next clock 0, indicating that the common call line 53 has the cycle assignment priority for the has requesting device that goes directly into the priority encoder 54 bypassing the interrupt gate 52. As a result, 3 bits of an LCO priority address come from the priority encoder 54 and are passed to the AND gate 82 via the line 78 (clocked output of the cycle assignment confirmation lock 76) into the LSR output control register 40, together with the fixed, higher-value address pointer bits in the LSR 14 for the cycle allocation level which is used as the address of the main memory 12. This stores or reads data in main memory 12 under full control of the I / O device to such an extent that only the upper or lower byte is set (instead of the 2 bytes in half-word mode). In this mode, the interrupt register 56 for the current stage remains undisturbed because the interrupt stage (program stage or a higher executed stage) is delayed by the interruption of this one cycle assignment instruction. Memory access is initially addressed by a pointer from the LSR output control register 40. It contains the 3 low-order bits, which indicate which of the 8 cycle allocation levels is currently being confirmed, and the high-order bits indicate a relative address for the half-word registers in the local memory registers 14, which contain the indirect memory address. This address is read from the local memory registers 14 onto the input bus 10 and incremented by the ALU 22 before being placed in the output buffer register 26. During the memory access time of the main memory 12, the increased address on the output bus 20 can be updated, written to the cycle map register in the local memory registers 14, or a write back can be prevented by confirming the I / O devices so that the cycle map address remains unchanged. After an access time, data is read from the main memory 12 onto the input bus 10 when the I / O device allows the readout of the main memory 12 and blocks the write pulses that appear on the control and clock lines 19 from the processor 9. The I / O device can put its own data to be written into the main memory 12 on the input bus 10. The device can thus fully control the increase function and the read or write operation via the integrated ALU 22. In the write mode, the device can still find its own data on the output bus 20 during the following clock 1 once the operation has ended. In read mode, the data read out on the input bus 10 flow through the ALU 22 into the total register 24 and the output buffer register 26 and are made available to all I / O devices on the output bus 20. The data is, however, only recorded in read mode by the I / O device, which recognizes the cycle assignment level code on the address bus 21. Processor 9 then returns to normal instruction execution or interrupt routine processing which has been suspended for that one cycle of direct memory access or cycle allocation.

Beschreibung der Taktierung Description of the timing

Im Zusammenhang mit den Fign. 2 bis 4 wird die Zeiteinteilung zunächst allgemein beschrieben, da alle Instruktionen eine ähnliche Zeiteinteilung für die Ausführung haben. Danach folgt eine detaillierte Beschreibung eines jeden Instruktionstyps. In connection with the FIGS. 2 to 4, the timing is initially described generally because all instructions have a similar timing for execution. This is followed by a detailed description of each type of instruction.

Der Taktzyklus ist in acht verschiedene Zeiten, Takte 0 bis 7 unterteilt. Die Takte 8 bis 15 sind Wiederholungen der Takte 0 bis 7 und sie erscheinen nur während einer Operation im Hauptspeicher 12 einschliesslich der direkten Speicheradressierung. Die Grundinstruktionszeit von acht Takten wird in zwei Teile zur Benutzung durch die ALU 22 unterteilt. Während des Taktes 7 bis zum Takt 2 erhöht die ALU 22 den Inhalt des Instruktions-Adressregisters 32 oder verändert ihn anderweitig. Die Takte 3 bis 6 werden von allen Mikroinstruktionen für die Verarbeitung benutzt. Auf diese Weise wird die ALU 22 kontinuierlich zu 50% für die Instruktionsausführung und zu 50% für die Fortschreibung des Instruktionszeigers benutzt. Das Basisfenster, in dem die Adresse für den ROS 16 auf der Ausgangssammelleitung 20 erscheint, beginnt zur Taktzeit 3, wenn der errechnete neue Adresszeiger von der ALU 22 in das Totalregister 24 geladen und in das Ausgabepufferregister 26 übertragen wird. Diese Adresse bleibt bis zum folgenden Takt 0 unverändert, wenn der Inhalt des Ausgabepufferregisters 26 so geändert wird, dass das Register dann die Daten entweder für das lokale Speicherregister 14 oder ein E/A-Gerät an der Ausgangssammelleitung 20 enthält. The clock cycle is divided into eight different times, clocks 0 to 7. The clocks 8 to 15 are repetitions of the clocks 0 to 7 and they only appear during an operation in the main memory 12 including the direct memory addressing. The basic instruction time of eight bars is divided into two parts for use by the ALU 22. During clock 7 through clock 2, ALU 22 increments or otherwise changes the contents of instruction address register 32. Bars 3 through 6 are used by all microinstructions for processing. In this way, the ALU 22 is used continuously 50% for the execution of the instruction and 50% for the update of the instruction pointer. The basic window, in which the address for the ROS 16 appears on the output bus 20, begins at the clock time 3 when the calculated new address pointer is loaded into the total register 24 by the ALU 22 and transferred to the output buffer register 26. This address remains unchanged until the following clock 0 when the content of the output buffer register 26 is changed so that the register then contains the data for either the local memory register 14 or an I / O device on the output bus 20.

Der Takt 0 beginnt jede Mikroinstruktion durch Laden der Instruktion aus dem Festwertspeicher 16 in das Programmregister 30. Durch diese Pufferung im Programmregister 30 kann die Instruktion ausgeführt werden, während im Takt 3 die Adresse im ROS 16 gemäss obiger Beschreibung verändert wird, um die nächste Mikroinstruktion zu adressieren. The clock 0 begins each microinstruction by loading the instruction from the read-only memory 16 into the program register 30. This buffering in the program register 30 enables the instruction to be executed, while in clock 3 the address in the ROS 16 is changed as described above to include the next microinstruction to address.

In das Totalregister 24 wird zur Taktzeit 2 die Instruktionsadresse geladen und zur Taktzeit 6 die von der ALU 22 The instruction address is loaded into the total register 24 at cycle time 2 and that of the ALU 22 at cycle time 6

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

12 12

bei der Ausführung der Instruktion verarbeiteten Daten. Während der Taktzeit 3 wird die nächste Instruktionsadresse in das Ausgabepufferegister 26 gesetzt, um dann auf die Ausgangssammelleitung 20 gegeben zu werden. Data processed during the execution of the instruction. During clock time 3, the next instruction address is placed in the output buffer register 26 to then be placed on the output bus 20.

Wenn durch die Mikroinstruktion Daten in die lokalen Speicherregister 14 geschrieben werden sollen, werden diese Daten während des Taktes 1 der Instruktion hinter der Instruktion geschrieben, in der die Daten errechnet wurden. Die Daten werden vom Ausgabepufferregister 26 über die Hilfstreiber 18 direkt in die Stelle der lokalen Speicherregister 14 geschrieben, die durch die Signale auf 6 Leitungen des LSR-Ausgabesteuerregisters 40 gewählt wurde. Genauso können Daten an ein E/A-Gerät übertragen werden, indem man sie zur Taktzeit 0 in das Ausgabepufferregister 26 lädt. Ein Signal auf den Steuer- und Taktleitungen 19 während der Taktzeit 1 zeigt an, dass die Daten auf der Ausgangssammelleitung 20 gültig sind. Diese Daten ändern sich zu Beginn der Taktzeit 3, wenn die Adresse des Festwertspeichers 16 im Ausgabepufferregister 26 erscheint. Daten, die zur Speicherung oder Veränderung auf der Eingangssammelleitung 10 in die CPU 9 gelangen, müssen während der Taktzeiten 3, 4, 5 und 6 an der ALU 22 ankommen und gültig sein. In diesem Zeitraum führt die ALU 22 die durch die ausgeführte Instruktion angegebene Verarbeitung durch. Aus demselben Grund werden Daten von den LSR's 14 zur Verarbeitung durch die CPU 9 während der Taktzeit 2 auf die Eingangssammelleitung 10 gesetzt. Während der für Signalverzögerung sorgenden Taktzeit 3 stehen die Daten für die ALU-Funktion zur Verfügung. If data is to be written into the local storage registers 14 by the microinstruction, this data is written during clock 1 of the instruction after the instruction in which the data was calculated. The data is written from the output buffer register 26 via the auxiliary drivers 18 directly to the location of the local memory register 14 which was selected by the signals on 6 lines of the LSR output control register 40. Similarly, data can be transferred to an I / O device by loading it into output buffer register 26 at clock time 0. A signal on the control and clock lines 19 during the clock time 1 indicates that the data on the output bus 20 are valid. This data changes at the beginning of the clock time 3 when the address of the read-only memory 16 appears in the output buffer register 26. Data that arrive in the CPU 9 for storage or modification on the input bus 10 must arrive at the ALU 22 during the cycle times 3, 4, 5 and 6 and be valid. During this period, the ALU 22 carries out the processing indicated by the executed instruction. For the same reason, data from LSR's 14 is placed on input bus 10 for processing by CPU 9 during clock time 2. During cycle time 3, which provides for signal delay, the data is available for the ALU function.

Daten von den lokalen Speicherregistern 14 werden zuerst zur Taktzeit 2 auf die Eingangssammelleitung 10 gesetzt und erst zu Beginn der Taktzeit 3 an die ALU 22 weitergeleitet, weil diese während der Takte 7 bis 2 mit der Fortschreibung des Inhaltes des Mikroinstruktions-Adressregisters 32 beschäftigt ist. Zu Beginn der Taktzeit 7 wird der Inhalt der ALU 22 an die Adresserhöhungsfunktion zurückübertragen, nachdem die Grundverarbeitungsfunktion der Mikroinstruktion beendet ist. Data from the local memory registers 14 are first placed on the input bus 10 at clock time 2 and are only forwarded to the ALU 22 at the start of clock time 3, because the ALU 22 is busy updating the content of the microinstruction address register 32 during clocks 7 to 2. At the beginning of the clock time 7, the content of the ALU 22 is transferred back to the address increment function after the basic processing function of the microinstruction has ended.

Für Mikroinstruktionen, die Daten vom Hauptspeicher 12 abrufen und in eines der Register der CPU 9 setzen, weist der zweite Zyklus (Takte 8 bis 15) insofern eine leichte Variation auf, als die nächste Mikroinstruktion während des Taktes 8 vom ROS 16 geholt wird, obwohl die laufende Instruktion bis zum Takt 15 und weiter zum folgenden Takt 0 ausgeführt wird (siehe Fig. 2). Zu dieser Zeit werden Daten vom Hauptspeicher 12 schliesslich in das angegebene Register der CPU 9 gesetzt oder an ein E/A-Gerät gesendet. In diesem Fall (nach jeder Adressierung des Hauptspeichers 12 durch eine Instruktion) wird keine neue Instruktion in das Programmregister 30 im folgenden Takt 0 geleitet, da sie bereits im vorhergehenden Takt 8 der Instruktion für den Hauptspeicher 12 festgehalten wurde. Der Zeitabschnitt zur Fortschreibung des Inhaltes des Mikroinstruktions-Adress- ' registers 32 wird ebenfalls verkürzt und beginnt nicht im äquivalenten Takt 15, sondern zwei Takte später, nämlich zur Taktzeit 1. Dieser Zeitabschnitt umfasst nur die Takte 1 und 2, da es sich bei dieser Fortschreibung nur um eine direkte Übertragung durch die ALU 22 ohne jegliche Modifikation handelt (die ja bereits während der Takte 7 bis 10 der vorhergehenden Hauptspeicherinstruktion stattfand). Die Schreibinstruktion für den Hauptspeicher 12 schreibt die Daten während der zweiten Phase, also der Takt 13 bis 15, der Instruktion in den Hauptspeicher 12. For microinstructions that fetch data from main memory 12 and place it in one of the registers of CPU 9, the second cycle (clocks 8 through 15) has a slight variation in that the next microinstruction during clock 8 is fetched by ROS 16, though the current instruction is executed up to bar 15 and further to the next bar 0 (see FIG. 2). At this time, data from the main memory 12 is finally put into the specified register of the CPU 9 or sent to an I / O device. In this case (after each addressing of the main memory 12 by an instruction), no new instruction is passed into the program register 30 in the following clock 0 since it was already recorded for the main memory 12 in the previous clock 8 of the instruction. The time period for updating the content of the microinstruction address register 32 is also shortened and does not begin in the equivalent clock 15, but two clocks later, namely at clock time 1. This time segment only comprises clocks 1 and 2, since this is the same Update is only a direct transfer by the ALU 22 without any modification (which already took place during bars 7 to 10 of the previous main memory instruction). The write instruction for the main memory 12 writes the data into the main memory 12 during the second phase, i.e. the clock 13 to 15, of the instruction.

In Fig. 3 ist dargestellt, wie die ALU 22 für die Dezimalarithmetik während der ersten 4 Takte die binär äquivalente Funktion erfüllt und die Zwischenüberträge für jede gepackte Dezimalzahl speichert. Dann folgt ein weiterer Durchgang der ALU 22 während weiterer 4 Takte (gesteuert durch den Hilfstaktgeber 64) zur Sechserkorrektur, um das reine Dezimalergebnis zu erhalten. FIG. 3 shows how the ALU 22 for the decimal arithmetic fulfills the binary equivalent function during the first 4 clock cycles and stores the intermediate transfers for each packed decimal number. Then another passage of the ALU 22 follows during a further 4 cycles (controlled by the auxiliary clock generator 64) for the correction of six in order to obtain the pure decimal result.

Fig. 4 zeigt, wie bei einer Verzweigung weitere 4 Taktzyklen vom Hilfstaktgeber 64 vorgesehen werden, wenn die Verzweigungsadresse zur Taktzeit 7 geladen wird. Damit ist zusätzlich Zeit für die Adressierung des ROS 16 gegeben, da bei jeder Verzweigung die vorberechnete Vorausschauadresse von der vorhergehenden Instruktion verändert wird. Solche Verzweigungen sind eine bedingte Verzweigung, eine Mehrweg-Tabellenverzweigung bei der Decodierung eines OP-Codes von einer emulierten Zielsprache oder eine Verzweigung und Verbindung mit Rückkehr durch Rückspeiche-rung der Originaladresse vom lokalen Speicherregister 14 in das Mikroinstruktions-Adressregister 32. FIG. 4 shows how, in the case of a branch, a further 4 clock cycles are provided by the auxiliary clock generator 64 when the branch address is loaded at the clock time 7. This gives additional time for addressing the ROS 16, since the precalculated look-ahead address is changed by the previous instruction with each branch. Such branches are a conditional branch, a multi-way table branch when decoding an OP code from an emulated target language, or a branch and connection with return by restoring the original address from the local memory register 14 to the microinstruction address register 32.

Bei Schiebeoperationen werden durch den Hilfstaktgeber 64 zwei weitere Takte für jede Einzelbitverschiebung entweder im Akkumulatorregister 34 oder im Akkumulator-Erweiterungsregister 36 vorgesehen. Es können auch 4-Takt-Perio-den vorgesehen werden (gleich der halben Grundausführungszeit einer Mikroinstruktion) für die Verschiebung.des Inhaltes der beiden Register 34 und 36 um eine Position. Diese beiden Register 34 und 36 werden logisch zu einem Doppelregister verknüpft, indem man ihren Inhalt abwechselnd durch die ALU 22 laufen lässt. In shift operations, the auxiliary clock generator 64 provides two further clock cycles for each single bit shift either in the accumulator register 34 or in the accumulator expansion register 36. 4-cycle periods can also be provided (equal to half the basic execution time of a microinstruction) for shifting the content of the two registers 34 and 36 by one position. These two registers 34 and 36 are logically linked to form a double register by having their contents run alternately through the ALU 22.

Bei Sprungoperationen wird in der Grundverarbeitungszeit der ALU 22 (Takte 3 bis 6) auf gleich, grösser oder Maske geprüft. Das Ergebnis der Prüfung ist erst zu Beginn des Taktes 7 bekannt und dann wird über einen Sprung entschieden. Wenn nicht gesprungen wird, läuft die nächste adressierte Instruktion ohne Verzögerung weiter. Wenn jedoch eine Instruktion übersprungen wird, nimmt der Grundtakt einen weiteren Pseudo-Mikroinstruktionszyklus, indem er auf die nächste Mikroinstruktion vorgeschaltet wird, ohne dass die übersprungene Mikroinstruktion ausgeführt wird. For jump operations, the basic processing time of the ALU 22 (bars 3 to 6) is checked for the same, larger or mask. The result of the test is only known at the beginning of bar 7 and a decision is then made about a jump. If there is no jump, the next addressed instruction continues without delay. However, if an instruction is skipped, the basic clock takes another pseudo-microinstruction cycle by advancing to the next microinstruction without executing the skipped microinstruction.

Die unbedingte Verzweigung ist eine sehr schnelle Instruktion, weil keine Bedingungen abgefragt werden müssen und daher keine Verzögerung durch den Hilfstaktgeber 64 vorliegt. Ausserdem wird die 12 Bit grosse Verzweigungsadresse direkt durch die ALU 22 geleitet und zur Taktzeit 2 in das Totalregister 24 geladen. Von dort läuft sie weiter in das Mikroinstruktions-Adressregister 32 und zur Taktzeit 3 in das Ausgabepufferregister 26. Dadurch ist sie mit der normalen Vorausschauadressierung von Instruktionen synchronisiert. The unconditional branch is a very quick instruction because no conditions have to be queried and therefore there is no delay by the auxiliary clock generator 64. In addition, the 12-bit branch address is passed directly through the ALU 22 and loaded into the total register 24 at cycle time 2. From there it continues to the microinstruction address register 32 and at clock time 3 to the output buffer register 26. As a result, it is synchronized with the normal look ahead addressing of instructions.

Instruktionssatz Instruction set

Die Maschinengrundinstruktionen sind optimal für die Emulation entwickelt und im ROS 16 gespeichert. Die oft als Mikroinstruktionen bezeichneten Instruktionen werden nachfolgend auch einfach Instruktionen genannt. Ausgenommen sind die Fälle, in denen zwischen den emulierten Maschinen-ziel-Instruktionen und den Mikroprozessor-Instruktionen unterschieden wird. The basic machine instructions are optimally developed for emulation and stored in the ROS 16. The instructions, which are often referred to as microinstructions, are also simply referred to below. The exceptions are cases in which a distinction is made between the emulated machine target instructions and the microprocessor instructions.

Allen Instruktionen gemeinsam ist ein Paritätsbit in der werthöchsten Bitposition (Bit 0) und ein 3 Bit grosser Operationscode (Bits 1 bis 3). Die übrigen Bits sind in Felder unterschiedlicher Länge aufgeteilt, deren Art und Funktion von der jeweiligen Instruktion abhängen. Da es nur 8 verschiedene Operationscodes gibt, unterscheiden sich einige Instruktionstypen durch die Decodierung zusätzlicher Modifizierbits. Die meisten Instruktionen sind hochcodiert und geben viele verschiedene Operationen an, von denen eine Anzahl nacheinander ausgeführt wird. Diese aufeinanderfolgenden Operationen werden durch einen sehr eng entwickelten Satz von Zeitmustern coordiniert, wie sie in den Fign. 2 bis 4 dargestellt sind. Common to all instructions is a parity bit in the highest bit position (bit 0) and a 3-bit operation code (bits 1 to 3). The remaining bits are divided into fields of different lengths, the type and function of which depend on the respective instruction. Since there are only 8 different opcodes, some types of instructions differ in the decoding of additional modification bits. Most instructions are up-coded and indicate many different operations, a number of which are performed in sequence. These successive operations are coordinated by a very closely developed set of time patterns, as shown in Figs. 2 to 4 are shown.

Im Zusammenhang mit den Fign. 2 bis 4 werden anschliessend die 11 Instruktionsgrundkategorien beschrieben. In connection with the FIGS. 2 to 4 are then described the 11 basic instruction categories.

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

13 13

623946 623946

In den Zeittabellen werden die Register wie folgt mit den Symbolen bezeichnet: <• In the time tables, the registers are identified with the symbols as follows: <•

Symbole Register Symbols register

A Akkumulator A accumulator

B Erweiterungsregister B extension register

T Totalregister T total register

P Programmregister P program register

U Instruktionsadresse U instruction address

N Zählregister (Schiebezähler) N count register (shift counter)

M Ausgabepufferregister (Ausgangssammelleitung) M output buffer register (output bus)

I/O Eingabe-/Ausgabegerät I / O input / output device

E Fehlerregister E error register

I Unterbrechungsmasken-Register I interrupt mask register

C Register für laufenden Bedingungscode C Register for current condition code

PCC Register für reservierten Bedingungscode PCC register for reserved condition code

L Lokale Speicherregister L Local memory register

Jede dieser Instruktionen kann durch einen Instruktionscode definiert werden, der 16 Bits einschliesslich eines Paritätsbits umfasst. Die Bits 1 bis 3 definieren den Operationscode und diese Codes sind nachfolgend zusammen mit der Instruktionskategorie aufgelistet. Each of these instructions can be defined by an instruction code comprising 16 bits including a parity bit. Bits 1 to 3 define the operation code and these codes are listed below together with the instruction category.

Instruktionen Instructions

Mnemonic Mnemonic

Operationscode Operation code

Steuerung control

CO CO

000 000

Logisch Schreiben Logically write

LW LW

001 001

Logisch Schieben Logically push

LS LS

001 001

Zahl logisch bewegen Move number logically

LM LM

001 001

Daten verändern Change data

MD MD

010 010

Operand verändern Change operand

MO MO

010 010

Speicher abrufen Get memory

FS FS

011 011

Direkt verändern Change directly

IM IN THE

100 100

Bedingter Sprung Conditional jump

JC JC

101 101

Bedingte Verzweigung Conditional branching

BC BC

110 110

Unbedingte Verzweigung Unconditional branching

BU BU

111 111

Steuerinstruktion Tax instruction

In Fig. 3C ist das.Zeitdiagramm für die Steuerinstruktionen gezeigt. Steuerinstruktionen können z.B. für folgende Operationen vorgesehen werden: Datenübertragung, indirekte Ausführung, Setzen der Untërbrechungsmaske, Festsetzen von Seiten, Tabellenverzweigung, Betriebsarten wähl, Operation auf reserviertem Bedingungscode und laufendem Bedingungscode, Programmkennzeichen und E/A-Übertragungen. 3C, the timing diagram for the control instructions is shown. Control instructions can e.g. The following operations are provided: data transfer, indirect execution, setting of the interrupt mask, setting of pages, table branching, selection of operating modes, operation on reserved condition code and current condition code, program identifier and I / O transfers.

Eine Anzahl von Steuerinstruktionen bezieht sich auf die Verarbeitung von Unterbrechungen. Eine solche Instruktion ermöglicht es, nach Abschluss einer jeden Mikroinstruktion eine Unterbrechung vorzunehmen, während bei anderen Instruktionen ein Unterbrechungsabschnitt vorgesehen ist, in dem alle ausstehenden Unterbrechungen angenommen und auf Unterbrechungsbetrieb umgeschaltet wird. Danach werden die Unterbrechungen bis zum erneuten Auftreten dieses Abschnittes abgeschaltet. A number of control instructions relate to interrupt processing. Such an instruction makes it possible to carry out an interruption after the completion of each microinstruction, while an interruption section is provided in the case of other instructions, in which all outstanding interruptions are accepted and switched to interruption mode. Then the interruptions are switched off until this section appears again.

Andere Steuerinstruktionen beziehen sich auf die E/A-Seiten des ROS 16. Die 4 Bit grosse Seite im ROS 16 ist eine intern innerhalb des Instruktionsadress-Registers 32 angegebene Seite. Dieses Seitenregister wird benutzt, sobald über die 4K-Grenzen der direkt adressierbaren Instruktionsstellen im ROS hinaus verzweigt werden muss. Die ALU 22 erhöht hinter den 4K-Grenzen durchgehend bis zu 64K Halbwörtern des ROS 16. Die Unterbrechungsschalterzeiger liefern auch eine volle 16-Bit-Adressierung und nicht nur die Adressierung von 12 Bits. Daher kann man volle 64K Komplemente der Instruktionen adressieren. Other control instructions relate to the I / O pages of the ROS 16. The 4 bit page in the ROS 16 is a page specified internally within the instruction address register 32. This page register is used as soon as it has to be branched beyond the 4K limits of the directly addressable instruction points in the ROS. The ALU 22 continuously increases up to 64K half-words of the ROS 16 beyond the 4K limits. The break switch pointers also provide full 16-bit addressing and not just the addressing of 12 bits. Therefore, full 64K complements of the instructions can be addressed.

Andere Steuerinstruktionen steuern die vier Kennzeichenbits. Das sind die vier niederen Bits des laufenden Bedingungsregisters 48, die zusammen mit den vier Bedingungscodes das nichtverbundene obere Byte des Zählregisters 50 bilden. Die Kennzeichenbits können vom Programmierer für verschiedene Anzeigen gesetzt und als Schalter in der Unterroutine benutzt werden. Sie können zusammen mit den Bedingungscodes und dem unteren Byte des Zählregisters 50 zur Unterbrechungsumschaltung in die LSR's 14 gespeichert und von dort zurückgespeichert werden. Other control instructions control the four flag bits. These are the four lower bits of the current condition register 48 which, together with the four condition codes, form the unconnected upper byte of the count register 50. The programmer can set the flag bits for various displays and use them as switches in the subroutine. They can be stored in the LSR's 14 together with the condition codes and the lower byte of the count register 50 for interruption switching and can be restored from there.

Die übrigen Steuerinstruktionen betreffen den Bedingungscode. Es gibt zwei Stufen von Bedingungscodes, von denen jede 4 Bits hat und den binären Übertrag, den Zweierkomplement-Überlauf, das Zweier-Komplement und das werthohe Minus-Bit kumulativ Nicht-Null anzeigt. Die oberen vier Bits im Bedingungsregister 48 ändern sich bei jeder arithmetischen Operation, bei jeder logischen Linksverschiebung, Linksverschiebung und Zählen, Multiplikation und Division. Für andere logische Instruktionen können die Register selbst auf Null oder Nicht-Null, Einsen oder gemischte Einsen und Nullen abgefragt werden. Das Register 42 für den reservierten Bedingungscode speichert dieselben vier Bits wie das Bedingungscoderegister 48. Die Übertragung und Akkumulation der Äquivalenz der Bedingungscodes der emulierten Makrosprache wird jedoch vom Mikroprogramm gesteuert. Es folgen einige Beispiele für Steueroperationen. The remaining control instructions concern the condition code. There are two levels of condition codes, each of which has 4 bits and cumulatively indicates non-zero binary carry, two's complement overflow, two's complement, and the high-value minus bit. The upper four bits in condition register 48 change with each arithmetic operation, with each logical left shift, left shift and count, multiplication and division. For other logical instructions, the registers themselves can be queried for zero or non-zero, ones or mixed ones and zeros. The reserved condition code register 42 stores the same four bits as the condition code register 48. However, the transfer and accumulation of the equivalence of the condition codes of the emulated macro language is controlled by the microprogram. The following are some examples of tax operations.

Mit der Steueroperation «Daten direkt Laden» (KBUS) wird das Datenfeld der Instruktion in die werthohen Bitpositionen des Ausgabepufferregisters 26 geladen. Die Datenbits in den Positionen 0 bis 4 des Registers 0 der lokalen Speicherregister 14 werden in die wertniederen Bitpositionen des Ausgabepufferregisters 26 geladen. Dessen Inhalt wird in das Register 0 der lokalen Speicherregister 14 geschrieben. With the control operation “Load data directly” (KBUS), the data field of the instruction is loaded into the value-high bit positions of the output buffer register 26. The data bits in positions 0 to 4 of register 0 of local memory register 14 are loaded into the lower-value bit positions of output buffer register 26. Its content is written into register 0 of local storage register 14.

Mit der Steueroperation «LSR Daten an E/A-Gerät übertragen» (KLSR) wird ein vier Bit grosses Feld zur Adressierung der Register 0 bis 15 der lokalen Speicherregister 14 geliefert. Daten aus dem adressierten lokalen Speicherregister 14 werden auf das Ausgabepufferregister 26 und die Ausgangssammelleitung 20 übertragen. Ein sechs Bit grosses Feld der Instruktion KLSR liefert eine Geräteadresse, die zur Adressierung der Eingabe-/Ausgabegeräte 1 bis 63 in das LSR-Ausgabesteuerregister 40 geladen wird. The control operation “Transfer LSR data to I / O device” (KLSR) provides a four-bit field for addressing registers 0 to 15 of local memory registers 14. Data from the addressed local storage register 14 is transferred to the output buffer register 26 and the output bus 20. A six-bit field of the instruction KLSR provides a device address which is loaded into the LSR output control register 40 for addressing the input / output devices 1 to 63.

Die Steuerinstruktion «Daten direkt an E/A-Gerät übertragen» (KLCO), lädt einen Teil des Inhaltes des Ausgabepufferregisters 26 mit direkten Werten vom Instruktionscode, wobei der Rest von den Null-Bits des gewählten lokalen Speicherregisters 14 geladen wird. Daten in anderen Bitpositionen des Instruktionscodes werden für die Geräteadresse in das LSR-Ausgabesteuerregister 40 geladen. Der Inhalt des Ausgabepufferregisters 26 wird in das Register 0 der lokalen Speicherregister 14 geladen. The control instruction "transfer data directly to I / O device" (KLCO) loads part of the content of the output buffer register 26 with direct values from the instruction code, the rest being loaded by the zero bits of the selected local memory register 14. Data in other bit positions of the instruction code is loaded into the LSR output control register 40 for the device address. The content of the output buffer register 26 is loaded into the register 0 of the local storage register 14.

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

14 14

Die Steueroperationen «Unterbrechungsmaske setzen» (KILM), liefert die Unterbrechungsmaskenbits für das Unter-brechungsmasken-Register 44, wobei ein Einer-Bit in einer Bitposition einer Unterbrechung für die entsprechende Stufe einschaltet. Ein Einer-Bit im Instruktionscode gibt an, ob die Unterbrechungsmaskenbits zu retten oder zu setzen sind. The control operations "Set Interrupt Mask" (KILM) provides the interrupt mask bits for the interrupt mask register 44, with a one bit in an interrupt bit position turning on for the corresponding stage. A one bit in the instruction code indicates whether the interrupt mask bits are to be saved or set.

Steueroperationen sind vorgesehen, um die Seiteneinteilung des Festwertspeichers 16 zu schalten. KLAP hat ein Feld zur Bezeichnung der Seiten 0 bis 15 und KRAP bezeichnet die Seite im Festwertspeicher 16. Jede Seite stellt 4096 Halbwörter dar. Control operations are provided to switch the page division of the read-only memory 16. KLAP has a field to designate pages 0 to 15 and KRAP designates the page in read-only memory 16. Each page represents 4096 half words.

Die Steueroperation für die Tabellenverzweigung gibt das Register oder den Registerteil an, deren Inhalt exklusiv oder mit dem Inhalt des Mikroinstruktionsadress-Registers 32 zu verknüpfen oder zu diesem zur nächst folgenden Adresse im ROS 16 zur Ausführung zu verbinden ist. Diese Instruktionen sind nachfolgend aufgeführt. The control operation for the table branch specifies the register or the register part whose content is to be linked exclusively or to the content of the microinstruction address register 32 or to be linked to the next address in the ROS 16 for execution. These instructions are listed below.

Mnemonic Mnemonic

Addierer zu IAR 32 Adders to IAR 32

KIAL KIAL

Akkumulatorregister 34 unteres Byte Accumulator register 34 lower byte

KIXL KIXL

Erweiterungsregister 36 unteres Byte Expansion register 36 lower byte

KIBL KIBL

Ausgabepufferregister 26 unteres Byte Output buffer register 26 lower byte

KIEL KIEL

Eingangssammelleitung 10 unteres Byte Input bus 10 lower bytes

KIAH KIAH

Akkumulatorregister 34 unteres Hex. Accumulator register 34 lower hex.

KIXH KIXH

Erweiterungsregister 36 unteres Hex. Extension register 36 lower hex.

KIBH KIBH

Ausgabepufferregister 26 unteres Hex. Output buffer register 26 lower hex.

KIEH KIEH

Eingangssammelleitung 10 unteres Hex. Input manifold 10 bottom hex.

KIAZ KIAZ

Akkumulatorregister 34 untere Zone Accumulator register 34 lower zone

KIXZ KIXZ

Erweiterungsregister 36 untere Zone Extension register 36 lower zone

KIBZ KIBZ

Ausgabepufferregister 26 untere Zone Output buffer register 26 lower zone

KIEZ NEIGHBOURHOOD

Eingangssammelleitung 10 untere Zone Input manifold 10 lower zone

KIAS KIAS

Akkumulatorregister 34 untere sechs Bits Accumulator register 34 lower six bits

KIXS KIXS

Erweiterungsregister 36 untere sechs Bits Expansion register 36 lower six bits

KIBS KIBS

Ausgabepufferregister 26 untere sechs Bits Output buffer register 26 lower six bits

KIES GRAVEL

Eingangssammelleitung 10 untere sechs Bits Input bus 10 lower six bits

Mit den Steueroperationen Ausgangsverzweigung (KILB) wird der Inhalt des Instruktionsadressregisters 32 in die lokalen Speicherregister 14 für die laufende Unterbrechung übertragen, die laufende Unterbrechung zurückgestellt, eine neue Unterbrechung abgefragt und der Inhalt der Stelle für die neue Unterbrechungsstufe im lokalen Speicherregister 14 in das Mikroinstruktionsadress-Register 32 übertragen. With the control operations output branch (KILB), the content of the instruction address register 32 is transferred to the local memory register 14 for the current interrupt, the current interrupt is put on hold, a new interrupt is queried and the content of the location for the new interrupt level in the local memory register 14 is transferred to the microinstruction address. Register 32 transferred.

Die Steueroperation KSIE liefert drei jeweils 2 Bit grosse Felder (II, EE und SS) und gibt damit den Unterbrechungscode (Einschalten einer Unterbrechung oder Abfragen der Unterbrechung und dann Abschalten weiterer Unterbrechungen), den Fehlerbetrieb und die Byteadresse im Hauptspeicher 12 an (Keine Veränderung; Rückstellung oder Byte-Setzen-Modus). The control operation KSIE supplies three 2-bit fields (II, EE and SS) and thus specifies the interrupt code (switching on an interruption or querying the interruption and then switching off further interruptions), the error mode and the byte address in the main memory 12 (no change; Reset or byte set mode).

Der Code 01 in einem oder mehreren Unterbrechungscodes (II), im Fehlerbetrieb (EE) und in den Hauptspeicher-byteadressfeldern (SS) der KSIE-Steueroperation sind reserviert für die Angabe zusätzlicher Steueroperationen, in denen die Charakteristik für den Unterbrechungscode-Betrieb, den Fehlerbetrieb oder den Hauptspeicher-Byteadressbetrieb der The code 01 in one or more interrupt codes (II), in fault operation (EE) and in the main memory byte address fields (SS) of the KSIE control operation are reserved for specifying additional control operations in which the characteristic for the interrupt code operation, the fault operation or the main memory byte address mode of the

KSIE-Steuerinstruktion gerettet oder gemäss der nachfolgenden Tabelle ersetzt wird. Wenn der Steuercode II oder EE oder SS lautet, definiert die KSIE-Steuerinstruktion die Operationen, die durch den Unterbrechungscode-Betrieb, den 5 Fehlerbetrieb oder den Hauptspeicher-Byte-Adressbetrieb angegeben sind. KSIE control instruction saved or replaced according to the table below. When the control code is II or EE or SS, the KSIE control instruction defines the operations indicated by the interrupt code operation, the 5 error operation, or the main memory byte address operation.

10 - 10 -

Mnemonic Mnemonic

Instructions-codefeld Instructions code field

Beschreibung description

KPIE KPIE

IIEE01 IIEE01

Zurückgestellt reservierter Bedingungscode (kein Überlauf) Deferred reserved condition code (no overflow)

15 15

KPSI KPSI

HOISS HOISS

Zurückgestellt reservierter Bedingungscode (alle) Deferred reserved condition code (all)

20 20th

KCSE KCSE

01EESS 01EESS

ODER-Code für laufende Bedingung zum reservierten Bedingungscode und Rück-stellen laufender' Bedingungscodes OR code for current condition for the reserved condition code and reset of current 'condition codes

25 25th

KTPI KTPI

II0101 II0101

Rückstellen des laufenden Bedingungscodes und des reservierten Bedingungscodes (kein Überlauf) Resetting the current condition code and the reserved condition code (no overflow)

30 30th

KCPS KCPS

0101SS 0101SS

Übertrag des laufenden Bedingungscodes in den reservierten Bedingungscode und Rückstellen des laufenden Bedingungscodes Transfer the current condition code to the reserved condition code and reset the current condition code

35 35

KCPE KCPE

01EE01 01EE01

Übertragung des laufenden Bedingungscodes in den reservierten Bedingungscode (ausgenommen ODER-Über-lauf) und Rückstellen des laufenden Bedingungscodes. Transfer the current condition code to the reserved condition code (except OR overflow) and reset the current condition code.

40 40

Die Steueroperation KNTC übernimmt die Funktion von The control operation KNTC takes over the function of

KTPI. Ausserdem werden die Steuerungen so gesetzt, dass sie eine KCSE-Funktion nach den nächsten Instruktionen übernehmen, wenn es eine arithmetische Operation ist. Die 45 Markierung 4 wird ebenfalls beim Ergebnis auf gerade zurückgestellt oder auf ungerade gestellt. Die Steuerinstruktion KPCC übernimmt eine direkte Übertragung des reservierten Bedingungscodes in den laufenden Bedingungscode. Die Steuerinstruktion KSCC gibt an, ob der Inhalt des laufenden so Bedingungscoderegisters 48 zu retten ist oder einzustellen ist und gibt die zu rettenden oder einzustellenden Positionen an: Übertrag-Borger, Überlauf, Minus, kumulativ, Nicht-Null oder Kennzeichen 1 bis 4. KTPI. In addition, the controls are set to perform a KCSE function after the next instruction if it is an arithmetic operation. The 45 mark 4 is also reset to even in the result or to odd. The control instruction KPCC takes over a direct transfer of the reserved condition code into the current condition code. The control instruction KSCC specifies whether the content of the current condition code register 48 can be saved or is to be set and specifies the positions to be saved or set: carry-over, overflow, minus, cumulative, non-zero or flags 1 to 4.

55 Hauptspeicherinstruktionen 55 main memory instructions

Die Instruktionen «logisch Schreiben» (LW) und «Speicherabruf» (FS) bilden die Gruppe der Hauptspeicherinstruktionen. Mit diesen Instruktionen können Daten aus dem Hauptspeicher 12 gelesen und in vier interne Datengrund-60 register gesetzt werden, in das Akkumulatorregister 34, in das Akkumulator-Erweiterungsregister 36, in das Zählregister 50 und in das Ausgabepufferregister 26. The instructions "Logical Write" (LW) and "Memory Retrieval" (FS) form the group of main memory instructions. With these instructions, data can be read from main memory 12 and set in four internal 60 data registers, accumulator register 34, accumulator expansion register 36, count register 50 and output buffer register 26.

Vom Hauptspeicher 12 abgerufene Daten werden über das Akkumulator-Erweiterungsregister 36 oder eines der Io-65 kalen Speicherregister 14 adressiert, wie es in der Instruktionsadresse angegeben ist. Die Adresse kann am Anfang mit einer Erhöhung oder einer Erniedrigung so fortgeschrieben werden, dass sie einen kontinuierlich sich bewegenden Zeiger Data retrieved from the main memory 12 is addressed via the accumulator expansion register 36 or one of the Io-65 cal memory register 14, as indicated in the instruction address. The address can be updated at the beginning with an increase or a decrease so that it is a continuously moving pointer

15 15

623946 623946

auf den Hauptspeicher 12 auf der Ausgangssammelleitung 20 liefert, oder sie kann an einer effektiven Adresse erzeugt werden, indem man zu einem angegebenen Zeiger die positive oder negative relative Adresse im Zählregister 50 addiert. to main memory 12 on output bus 20, or it can be generated at an effective address by adding the positive or negative relative address in count register 50 to a specified pointer.

Für die Speicherinstruktionen kann die Halbwort- oder Byteadressierung angegeben werden. Da die Instruktionen nicht immer auf Halbwortgrenzen ausgerichtet sind, ist im erfindungsgemässen Mikrocomputer zur leichteren Emulation die Halbwortausrichtung durch Byteverdrehung der Daten vom Hauptspeicher 12 in der ALU 22 so vorgesehen, dass jedes Byte in einer Position ausgerichtet wird, so dass z.B. der Instruktionsoperations-Code immer im unteren Byte erscheint. Half-word or byte addressing can be specified for the storage instructions. Since the instructions are not always aligned with half-word boundaries, in the microcomputer according to the invention, for easier emulation, the half-word alignment by rotating the data from the main memory 12 in the ALU 22 is provided in such a way that each byte is aligned in one position, so that e.g. the instruction operation code always appears in the lower byte.

Instruktion «logisch Schreiben» Instruction "Logical writing"

Wie bereits gesagt wurde, besteht keine direkte Datenbahn von der CPU 9 zum Hauptspeicher 12, weil die Ausgangssammelleitung 20 als Adresssammelleitung für den Hauptspeicher 12 benutzt wird und daher für Daten nicht zur Verfügung steht. Die Eingangssammelleitung 10 ist nur bezüglich des Hauptspeichers 12 bidirektional. Bezüglich der CPU 9 ist sie nicht bidirektional, weil auf dem Chip Platz gespart werden muss. Die Ausgangstreiber, mit denen Daten auf die Sammelleitung 10 gesetzt werden sollen, brauchen viel Platz und elektrische Leistung und sind daher nicht auf dem Chip integriert. As has already been said, there is no direct data path from the CPU 9 to the main memory 12 because the output bus 20 is used as an address bus for the main memory 12 and is therefore not available for data. The input bus 10 is bidirectional only with respect to the main memory 12. With regard to the CPU 9, it is not bidirectional because space has to be saved on the chip. The output drivers with which data are to be put on the bus 10 require a lot of space and electrical power and are therefore not integrated on the chip.

Die vier Instruktionen «logisch Schreiben» bewirken Halbwortselektieren, unterer oder hoher Byte-Betrieb und im Hauptspeicher 12 Daten speichern, die von einer adressierten Stelle in den lokalen Speicherregistern 14 oder von einem E/A-Gerät kommen. The four "logical write" instructions effect half-word selection, lower or high byte operation and store in the main memory 12 data which come from an addressed location in the local memory registers 14 or from an I / O device.

«.Logisches Schreiben» von LSR “.Logical writing” from LSR

In der ersten logischen Schreibinstruktion werden Daten von dem lokalen Speicherregister 14, Stelle 1 in den Hauptspeicher 12 an die Stelle geschrieben, die durch eine der Positionen 0 bis 63 des lokalen Speicherregisters 14 adressiert wird. Eines der Register 1 bis 63 im LSR 14 wird gewählt und der Inhalt um Eins erhöht oder erniedrigt oder unverändert gelassen, bevor das Ausgabepufferregister 26 so eingestellt wird, dass der Hauptspeicher 12 adressiert wird. Die fortgeschriebene Adresse wird dabei in die obengewählte Stelle 1 bis 63 des lokalen Speicherregisters 14 zurückgeschrieben. Wenn die Stelle 0 im lokalen Speicherregister 14 als Adressquelle angegeben wird, wird dadurch das Zählregister 50 als indirekte Adresse des lokalen Speicherregisters 14 gewählt, die als Quelle für die Adresse des Hauptspeichers 12 benutzt wird. Ein Speicherschreibzyklus wird mit den vom lokalen Speicherregister 14, Position 1, erhaltenen Daten ausgeführt, die auf die Eingangssammelleitung 10 gegeben wurden. Als Option kann der Adressveränderungscode (2 Bits des OP-Code) auf die Eingangssammelleitung 10 gegeben werden, und dann wählt er nur das hohe oder nur das niedrige Byte zum Schreiben in den Hauptspeicher 12. Wenn eine Steuereinstruktion früher den Bytespeicheradressier-Betrieb eingeschaltet hat, wirken alle positiven oder negativen Adressfortschreibungen als plus oder minus 2. Die Wahl des hohen Byte erzwingt eine Adressfortschreibung von — 1 (das niedrige Byte verändert die Adresse nicht) und die resultierende Adresse speichert das hohe bzw. niedrige Byte gerade oder ungerade. Ausserdem wird von der Stelle 0 des lokalen Speicherregisters 14 der ursprüngliche Inhalt des Ausgabepufferregisters 26 gewählt. In the first logical write instruction, data is written from the local memory register 14, location 1 into the main memory 12 to the location which is addressed by one of the positions 0 to 63 of the local memory register 14. One of registers 1 through 63 in LSR 14 is selected and the content incremented or decremented or left unchanged before the output buffer register 26 is set to address main memory 12. The updated address is written back into the above-selected position 1 to 63 of the local memory register 14. If the position 0 in the local memory register 14 is specified as the address source, the count register 50 is thereby selected as the indirect address of the local memory register 14, which is used as the source for the address of the main memory 12. A memory write cycle is performed on the data received from the local memory register 14, position 1, which has been applied to the input bus 10. As an option, the address change code (2 bits of the OP code) can be placed on the input bus 10 and then it selects only the high or only the low byte for writing to the main memory 12. If a control instruction previously activated the byte memory addressing mode, all positive or negative address updates act as plus or minus 2. The selection of the high byte forces an address update of - 1 (the low byte does not change the address) and the resulting address stores the high or low byte even or odd. In addition, the original content of the output buffer register 26 is selected from position 0 of the local memory register 14.

Logisches Schreiben von LSR 0 bis 63 adressiert über Erweiterungsregister 36 Logical writing of LSR 0 to 63 addressed via expansion register 36

Diese zweite Instruktion unterscheidet sich von der ersten • dadurch, dass die in den Hauptspeicher 12 zu schreibenden This second instruction differs from the first one in that the ones to be written into the main memory 12

Daten von einem gewählten lokalen Speicherregister 14 (Position 0 bis 63) die Speicheradresse für den Hauptspeicher 12 vom Akkumulator-Erweiterungsregister 36 kommen. Die oben beschriebenen Operationen für das hohe oder niedrige Byte stehen ebenso zur Verfügung. Data from a selected local memory register 14 (position 0 to 63) the memory address for the main memory 12 come from the accumulator expansion register 36. The high or low byte operations described above are also available.

Logisches Schreiben von E/A-Gerät 0 bis 63 adressiert durch dasselbe LSR 0 bis 63 Logical writing of I / O device 0 to 63 addressed by the same LSR 0 to 63

Die dritte Instruktion unterscheidet sich von der ersten logischen Schreibinstruktion nur dadurch, dass derselbe Code des LSR 14 (0 bis 63), der das Adressregister wählt, auch das E/A-Gerät wählt (0 bis 63), das die in den Hauptspeicher 12 zu schreibenden Daten auf die Eingangssammelleitung 10 gibt. The third instruction differs from the first logical write instruction only in that the same code of the LSR 14 (0 to 63) that selects the address register also selects the I / O device (0 to 63) that stores the data in the main memory 12 data to be written to the input bus 10 there.

Logisches Schreiben von E/A-Gerät 1 bis 63 adressiert durch A kkumulator-Erweiterungsregister 36 Logical writing of I / O devices 1 to 63 addressed by accumulator expansion register 36

Die vierte Instruktion unterscheidet sich von der oben beschriebenen zweiten nur dadurch, dass die in den Hauptspeicher 12 zu schreibenden Daten vom gewählten E/A-Gerät (1 bis 63) auf die Eingangssammelleitung 10 geliefert werden. The fourth instruction differs from the second described above only in that the data to be written into the main memory 12 is supplied from the selected I / O device (1 to 63) to the input bus 10.

Speicherabruf Memory retrieval

Die Speicherabruf-Instruktionen (FS) sind für den Halbwortbetrieb ausgelegt. Wie die Halbwortadressierung durch die Speicherbyteadressierung ersetzt wird, ist in den Steuerinstruktionen beschrieben (laufende Bedingung 48 + Zahl 50 oder Unterbrechungsmaske 44 + Fehler 46 werden immer zusammen im Bytebetrieb benutzt und das obere Byte wird bei einem Speicherabrufbefehl nicht genullt). The memory fetch instructions (FS) are designed for half-word operation. How the half-word addressing is replaced by the memory byte addressing is described in the control instructions (current condition 48 + number 50 or interrupt mask 44 + error 46 are always used together in byte mode and the upper byte is not zeroed in the case of a memory recall command).

Laden von Speicher in Register der CPU 9 mit Adresse LSR 14 (Halbwort-Adressbetrieb) Loading memory into registers of CPU 9 with address LSR 14 (half-word address mode)

Eines der Register 1 bis 63 aus den lokalen Speicherregistern 14 wird gewählt und der Inhalt durch 0 ± 1 oder OR 1 verändert, bevor der Inhalt des Ausgabepufferregisters 26 (nicht LSR 14, Stelle 0) in die Adresse des Hauptspeichers 12 gesetzt wird. Wenn die Veränderung ± 1 war, wird der Inhalt des Ausgabe-Pufferregisters 26 im gewählten Register im LSR 14 fortgeschrieben. Der Hauptspeicher 12 wird anschliessend in einem Zyklus ausgelesen und die Daten über die Eingangssammelleitung 10 selektiv in das Akkumulator-i egister 34, das Akkumulator-Erweiterungsregister 36, das Ausgabepufferregister 26 oder das Zählerregister 50/Fehler-register 46 geleitet. Das Unterbrechungsmasken-Register 44 und das Fehlerregister 46 können durch die KSIE Steuerinstruktionen anstelle des Bedingungsregisters 48 und des Zählregisters 50 gewählt werden. (Das Zählregister 50/Fehler-register 46 hat nur das niedere Byte). Die Stelle 0 in den LSR's 14 wählt die indirekte Adressierung des LSR 14 vom Operanden der wertniederen sechs Bits im Zählregister 50. Ausserdem werden die Originaldaten vom Ausgabepufferregister 26 von der Stelle 0 der LSR 14 gewählt. One of the registers 1 to 63 from the local memory registers 14 is selected and the content is changed by 0 ± 1 or OR 1 before the content of the output buffer register 26 (not LSR 14, position 0) is set in the address of the main memory 12. If the change was ± 1, the content of the output buffer register 26 in the selected register in the LSR 14 is updated. The main memory 12 is then read out in one cycle and the data is selectively fed via the input bus 10 into the accumulator register 34, the accumulator extension register 36, the output buffer register 26 or the counter register 50 / error register 46. The interrupt mask register 44 and the error register 46 can be selected by the KSIE control instructions instead of the condition register 48 and the count register 50. (The count register 50 / error register 46 has only the lower byte). The position 0 in the LSR's 14 selects the indirect addressing of the LSR 14 from the operand of the lower six bits in the count register 50. In addition, the original data from the output buffer register 26 is selected from the position 0 of the LSR 14.

Mit BUS Operandenadresse (Halbwortadressierung) With BUS operand address (half-word addressing)

Diese Instruktion unterscheidet sich von der nachfolgend beschriebenen dadurch, dass das Ausgabepufferregister 26 (d.h. Stelle 0 im LSR 14), anstelle des Akkumulator-Erweiterungsregisters 36 benutzt wird und die zusätzliche Adressübertragung auf der Ausgangssammelleitung 20 als Halbwortbewegung des Inhaltes des Ausgabepufferregisters 26 in die Stellen 1 bis 63 des LSR 14 oder der Adressfortschreibung auf der Ausgangsammelleitung 20 in die Stelle 0 des LSR 14 wirkt. This instruction differs from that described below in that the output buffer register 26 (ie position 0 in the LSR 14) is used instead of the accumulator extension register 36 and the additional address transfer on the output bus 20 as a half-word movement of the content of the output buffer register 26 into positions 1 to 63 of the LSR 14 or the address update on the output bus 20 in position 0 of the LSR 14 acts.

5 5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

16 16

Mit XTN Operandenadresse (Halbwortadressierung) With XTN operand address (half-word addressing)

Der Inhalt des Akkumulator-Erweiterungsregisters 36 wird durch 0, ± 1 oder Addition der im Zählregister 50 stehenden relativen Operandenadresse verändert, bevor der Inhalt des Ausgabepufferregisters 26 (nicht LSR 0) den Hauptspeicher 12 adressiert. Der fortgeschriebene Wert des Ausgabepufferregisters 26 wird in das Akkumulator-Erweiterungsregister 36 zurückgeschrieben. Dann wird ein Lesezyklus für den Hauptspeicher 12 begonnen. Bevor die Daten vom Hauptspeicher 12 zur Verfügung stehen, wird eine zusätzliche Übertragung vorgenommen unter der Voraussetzung, dass die Wahl vom LSR zwischen 1 und 63 liegt und nicht 0 ist. Der Inhalt des Mikroinstruktions-Adressregisters 32 wird in das gewählte LSR 14 geschrieben. Schliesslich werden noch die Daten vom Hauptspeicher 12 auf die Eingangssammelleitung 10 geschaltet, um wie bei der ersten FS-Instruktion wahlweise in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36, das Ausgabepufferregister 26 oder das Zählregister 50/Fehlerregister 46 gesetzt zu werden. Die ursprünglichen Daten vom Ausgabepufferregister 26 werden ausserdem von der Stelle 0 im LSR 14 selektiert. The content of the accumulator expansion register 36 is changed by 0, ± 1 or addition of the relative operand address in the count register 50 before the content of the output buffer register 26 (not LSR 0) addresses the main memory 12. The updated value of the output buffer register 26 is written back into the accumulator expansion register 36. A read cycle for main memory 12 is then started. Before the data from the main memory 12 is available, an additional transfer is made, provided that the choice of the LSR is between 1 and 63 and is not 0. The content of the microinstruction address register 32 is written into the selected LSR 14. Finally, the data from the main memory 12 is switched to the input bus 10 in order to be placed in the accumulator register 34, the accumulator extension register 36, the output buffer register 26 or the count register 50 / error register 46, as in the first FS instruction. The original data from the output buffer register 26 are also selected from position 0 in the LSR 14.

Laden vom Speicher in E/A-Geräte (Halbwortadressierung) Load from memory into I / O devices (half-word addressing)

Diese Instruktion unterscheidet sich von der obigen dadurch, dass das Mikroinstruktions-Adressregister 32 vom Akkumulator-Erweiterungsregister 36 oder von der Stelle im LSR 14 selektiert werden kann, die dem selektierten und fortgeschriebenen Eingabe-/Ausgabegerät gleich ist. Die Hauptspeicherdaten werden in das Ausgabepufferregister 26 (nicht LSR 0) gesetzt und von dort an das selektierte Eingabe/Ausgabegerät (1 bis 63) mit einem Ausgangsabfrageimpuls gesendet und es finden keine weiteren Übertragungen statt. Das Gerät 0 selektiert die indirekte Adressierung des Gerätes von den wertniederen sechs Bits im Zählregister 50. Die ursprünglichen Daten im Ausgabepufferregister 26 werden ausserdem von der Stelle 0 im LSR 14 gewählt. This instruction differs from the above in that the microinstruction address register 32 can be selected from the accumulator extension register 36 or from the location in the LSR 14 that is the same as the selected and updated input / output device. The main memory data is placed in the output buffer register 26 (not LSR 0) and from there sent to the selected input / output device (1 to 63) with an output request pulse and no further transfers take place. The device 0 selects the indirect addressing of the device from the lower six bits in the count register 50. The original data in the output buffer register 26 are also selected from position 0 in the LSR 14.

Arithmetische und logische Instruktionen Arithmetic and logical instructions

Nach Darstellung in Fig. 3 gehören zu den arithmetischen und logischen Instruktionen die Instruktionen «Daten modifizieren» (MD) und «Operand modifizieren» (MO). Zu den arithmetischen Instruktionen gehören die «Addition mit und ohne Übertrag» sowie die «Subtraktion». Sie können in Zweier-Komplementform oder in dezimalgepackter Form ausgeführt werden (ohne Vorzeichen einstellig in jeweils hex. 4 Datenbits). Die arithmetischen Funktionen können im Mikroprozessor zwischen den internen Registern ausgeführt werden (Akkumulatorregister 34, Akkumulator-Erweiterungsregister 36, Zählregister 50 und Ausgabepufferregister 26), Ausserdem können das Akkumulatorregister 34 oder das Akkumulator-Erweiterungsregister 36 arithmetisch mit einem der 64 lokalen Speicherregister 14 kombiniert werden, so dass das Ergebnis in einen der lokalen Speicherregister 14 oder im Akkumulator-Erweiterungsregister 36 gespeichert werden kann. Alle in den Registern des Prozessors 9 ausgeführten arithmetischen Instruktionen können im Halbwortbetrieb, auf den oberen Bytes, den unteren Bytes, alleine oder auf den wertniederen 4 hex. Bits ausgeführt werden. Die anderen Bits bleiben in jeder Konfiguration unverändert. As shown in FIG. 3, the instructions “modify data” (MD) and “modify operand” (MO) belong to the arithmetic and logical instructions. The arithmetic instructions include «addition with and without carry» and «subtraction». They can be executed in two's complement form or in decimal packed form (unsigned single-digit in hex. 4 data bits each). The arithmetic functions can be carried out in the microprocessor between the internal registers (accumulator register 34, accumulator extension register 36, count register 50 and output buffer register 26). In addition, the accumulator register 34 or the accumulator extension register 36 can be combined arithmetically with one of the 64 local memory registers 14. so that the result can be stored in one of the local storage registers 14 or in the accumulator expansion register 36. All arithmetic instructions executed in the registers of the processor 9 can be in half word mode, on the upper bytes, the lower bytes, alone or on the lower 4 hex. Bits are executed. The other bits remain unchanged in every configuration.

Zu den logischen Instruktionen gehören «UND», «ODER» und «Exklusiv-ODER». Wenn diese Operationen auf den internen Registern alleine ausgeführt werden, wie im Rechenbetrieb, können sie in den hex. niederen 4 Bits, dem unteren Byte, dem hohen Byte oder im Halbwortbetrieb ausgeführt werden. Ähnliche Funktionen können ebenso mit den lokalen Speicherregistern 14 ausgeführt werden. Alle diese logischen Funktionen von aussen nach innen bzw. innen nach aussen, können jedoch nur im Halbwortbetrieb ausgeführt werden. The logical instructions include «AND», «OR» and «Exclusive-OR». If these operations are carried out on the internal registers alone, as in arithmetic mode, they can be entered in hex. lower 4 bits, the lower byte, the high byte or in half-word mode. Similar functions can also be performed with the local memory registers 14. All of these logical functions from the outside in or inside out, however, can only be carried out in half-word mode.

5 5

Daten modifizieren Modify data

Durch den Befehl «Daten modifizieren» kann der Inhalt des Akkumulatorregisters 34 oder des Akkumulator-Erweiterungsregisters 36 in seiner Stelle mit dem Inhalt des loka-io len Speicherregisters 14, der unverändert bleibt, modifiziert werden. Ein angegebenes lokales Speicherregister 14 kann ausserdem mit dem Inhalt des Akkumulator-Erweiterungsregisters 36 verändert werden, wobei der Inhalt des Akkumulator-Erweiterungsregisters 36 unverändert bleibt und 15 das Ergebnis kann in das selektierte lokale Speicherregister 14 gesetzt werden. Ausserdem kann jedes Eingabe/Ausgabegerät zur Lieferung von Daten auf die Eingangssammelleitung 10 selektiert werden. Diese Daten können mit den Daten im Akkumulator-Erweiterungsregister 36 verändert 20 und das Ergebnis in dasselbe Eingabe/Ausgabegerät zurückgegeben werden, indem man die Daten in das Ausgabepufferregister 26 setzt (nicht LSR 0) und von dort auf die Ausgangssammelleitung 20 und in die Position 0 des lokalen Speicherregisters 14. Wenn der Adressteil der modifizierten 25 Dateninstruktion auf 0 gesetzt ist, werden auf der Eingangssammelleitung 10 null Daten produziert. Mit der ODER-Funktion wird eine Verschiebung vom Akkumulator-Erwei-terungsregister 36 in das Ausgabepufferregister 26 vorgenommen und mit der UND-Funktion wird der Inhalt des 30 Ausgabepufferregisters 26 auf lauter Nullen gesetzt. With the “Modify data” command, the content of the accumulator register 34 or the accumulator extension register 36 can be modified in its place with the content of the local storage register 14, which remains unchanged. A specified local storage register 14 can also be changed with the content of the accumulator expansion register 36, the content of the accumulator expansion register 36 remaining unchanged and the result 15 can be placed in the selected local storage register 14. In addition, each input / output device can be selected for the delivery of data to the input bus 10. This data can be modified 20 with the data in the accumulator expansion register 36 and the result returned to the same input / output device by putting the data in the output buffer register 26 (not LSR 0) and from there onto the output bus 20 and in position 0 of the local memory register 14. When the address portion of the modified 25 data instruction is set to 0, zero data is produced on the input bus 10. With the OR function, a shift is made from the accumulator extension register 36 into the output buffer register 26 and with the AND function the content of the output buffer register 26 is set to all zeros.

Durch die Instruktion «Daten modifizieren» können folgende Änderungsfunktionen angegeben werden: Addiere binär mit oder ohne Übertrag oder dezimalgepackt mit Übertrag, Subtrahiere binär oder dezimalgepackt mit Borgen (es 35 kann nicht von einem selektierten lokalen Speicherregister 14 oder einem Eingabe-/Ausgabegerät subtrahiert werden, ausser umgekehrt), UND, ODER und Exklusiv-ODER. Bei Angabe der Position 0 im lokalen Speicherregister 14 wird die indirekte Adressierung des lokalen Speicherregisters 40 14 oder des Eingabe-/Ausgabegerätes von den wertniederen sechs Bits des Zählregisters 50 selektiert. The following modification functions can be specified by the instruction "Modify data": add binary with or without carry or decimal packed with carry, subtract binary or decimal packed with borrow (35 cannot be subtracted from a selected local memory register 14 or an input / output device, except vice versa), AND, OR and exclusive-OR. If position 0 is specified in the local memory register 14, the indirect addressing of the local memory register 40 14 or of the input / output device is selected from the lower six bits of the count register 50.

Operand modifizieren 45 Mit den Instruktionen «Operand modifizieren» (MO) kann der Inhalt des Akkumulatorregisters 34 mit dem Inhalt des Akkumulator-Erweiterungsregisters 36 oder der Inhalt des Akkumulator-Erweiterungsregisters 36 kann mit dem Inhalt des Akkumulatorregisters 34 modifiziert werden, der so unverändert bleibt. Der Inhalt des Akkumulatorregisters 34 oder des Akkumulator-Erweiterungsregisters 36 können ausserdem mit dem Inhalt des Ausgabepufferregisters 26 modifiziert werden. Wenn der Inhalt des Akkumulator-Erweiterungsregisters 36 null ist, wird durch eine ODER-Funktion 55 mit LSR 14, Stelle 0, (Ausgabepufferregister 26) eine Bewegung des Inhaltes des Ausgabepufferregisters 26 in das Akkumulator-Erweiterungsregister 36 und in LSR 14, Positionen 1 bis 15 ausgelöst. Die Modifizierfunktionen unterscheiden sich von denen der Instruktionen zum Modifizieren von 60 Daten (MD) dadurch, dass zusätzlich Bewegungsfunktionen zwischen jeder Kombination des Inhalts des Akkumulatorregisters 34, des Akkumulator-Erweiterungsfegisters 36, des Zählregisters 50 und des Fehlerregisters 46 vorgesehen sind und nicht vom Zählregister 50/Fehlerregister 46 subtrahiert 65 werden kann, ausser in der Umkehrung. Alle obigen Funktionen können im Halbwortbetrieb, nur mit dem hohen Byte, nur mit dem niedrigen Byte oder nur mit der hex. Stelle vorgenommen werden, ausser wenn das hohe Byte des Zähl Modify operand 45 With the instructions “Modify operand” (MO), the content of the accumulator register 34 with the content of the accumulator extension register 36 or the content of the accumulator extension register 36 can be modified with the content of the accumulator register 34, which remains unchanged. The content of the accumulator register 34 or the accumulator expansion register 36 can also be modified with the content of the output buffer register 26. If the content of the accumulator expansion register 36 is zero, an OR function 55 with LSR 14, position 0, (output buffer register 26) causes the contents of the output buffer register 26 to move into the accumulator expansion register 36 and in LSR 14, positions 1 to 15 triggered. The modification functions differ from those of the instructions for modifying 60 data (MD) in that additional movement functions are provided between each combination of the contents of the accumulator register 34, the accumulator expansion register 36, the count register 50 and the error register 46 and not from the count register 50 / Error register 46 can be subtracted 65, except in reverse. All of the above functions can be used in half-word mode, only with the high byte, only with the low byte or only with the hex. Digit, unless the high byte of the count

17 17th

623946 623946

registers 50/Fehlerregister 46 nicht existiert. Nach Beendigung jeder der obigen Funktionen kann ein Halbwort-Hilfs-ergebnis (hohes Byte des Zählregisters 50/Fehlerregister 46 = laufendes Bedingungsregister 48/Unterbrechungsmasken-register 44) in eine gewählte Stelle 1 bis 15 des LSR 14 verschoben werden. registers 50 / error register 46 does not exist. After completion of each of the above functions, a half-word auxiliary result (high byte of the count register 50 / error register 46 = current condition register 48 / interrupt mask register 44) can be shifted into a selected position 1 to 15 of the LSR 14.

Logische Verschiebung Logical shift

In Fig. 4 ist gezeigt, dass die Schiebeoperationen bitweise nach links oder rechts erfolgen können. Die Länge der Verschiebung hängt von der Länge des Registers ab. Der Inhalt des Akkumulatorregisters 34 und seines Erweiterungsregisters 36 kann jeweils zwischen einer und 16 Positionen verschoben werden. Für die Multiplikation und Division, bei denen eine doppelte Genauigkeit erforderlich ist, wird das Akkumulatorregister 34 zum werthohen Register des Akkumulator-Erweiterungsregisters 36 und sie bilden zusammen ein gekoppeltes 32 Bit grosses Register, dessen Inhalt auf eine der folgenden Arten zwischen einer und zweiunddreissig Positionen verschoben werden kann. Die Arten sind: arithmetische Rechtsverschiebung, Linksverschiebung und Zählung, logische Linksverschiebung, logische Rechtsverschiebung, Linksverschiebung und Drehung und Rechtsverschiebung und Drehung. Schnellere Operationen, die einer Drehung von 8 Positionen der 16 Bit grossen Register äquivalent sind, auch Byteverdrehungen genannt, können in einem Mikroinstruktionszyklus ausgeführt werden. 4 shows that the shifting operations can be carried out bitwise to the left or right. The length of the shift depends on the length of the register. The contents of the accumulator register 34 and its expansion register 36 can each be shifted between one and 16 positions. For multiplication and division, where double precision is required, the accumulator register 34 becomes the high value register of the accumulator extension register 36 and together they form a coupled 32-bit register, the contents of which are shifted between one and thirty-two positions in one of the following ways can be. The types are: arithmetic right shift, left shift and count, logical left shift, logical right shift, left shift and rotation and right shift and rotation. Faster operations equivalent to rotating 8 positions of the 16-bit registers, also called byte rotations, can be performed in a microinstruction cycle.

Direkte Modifikation Direct modification

Die Instruktionen zur direkten Modifikation (IM) sind in Fig. 3C gezeigt. The direct modification (IM) instructions are shown in Figure 3C.

Ein Datenbyte vom Programmregister 30 (OP-Bits 8 bis 15) wird mit dem wertniederen Byte im Akkumulatorregister 34, im Akkumulator-Erweiterungsregister 36 oder im Zählregister 50/Fehlerregister 46 kombiniert, die durch eine frühere KSIE-Steuerinstruktion selektiert wurden. Für das Akkumulatorregister 34 oder sein Erweiterungsregister 36 sind die kombinierenden Funktionen Subtrahieren, Laden, ODER, UND, XOR und ADD. Jeder durch eine Addition oder Subtraktion erzeugte Übertrag oder Borger wird in das werthohe Byte weitergeleitet. Für das Zählregister 50/ Fehlerregister 46 sind die kombinierenden Funktionen ODER, UND, Load ADD. Für die Funktionen Addieren oder Subtrahieren werden die direkten Bytedaten um Eins erhöht oder erniedrigt und hereinkommende Überträge mit einem neuen Bedingungscodesatz ignoriert. A data byte from the program register 30 (OP bits 8 to 15) is combined with the lower byte in the accumulator register 34, in the accumulator expansion register 36 or in the count register 50 / error register 46, which were selected by an earlier KSIE control instruction. For the accumulator register 34 or its expansion register 36, the combining functions are subtract, load, OR, AND, XOR and ADD. Any carry or borrower generated by an addition or subtraction is forwarded to the high value byte. For the count register 50 / error register 46, the combining functions are OR, AND, load ADD. For the functions add or subtract, the direct byte data is increased or decreased by one and incoming transfers with a new condition code set are ignored.

Bedingter Sprung Conditional jump

Nach Darstellung in Fig. 4B wird die Sprunginstruktion ausgeführt, wenn eine Prüfung falsch ist. Die gegen ein Maskenbyte in der Instruktion auf den wertniederen 8 Bits eines selektierten Registers ausgeführten Prüfungen sind folgende: Maske = unteres Byte, Maske grösser als unteres Byte, Maskenbits werden auf eingeschaltete Bits im unteren Byte geprüft und übrige nicht selektierte Bits werden ignoriert oder die Maske wird auf die ausgeschalteten Bits im unteren Byte geprüft und die übrigen Bits werden ignoriert. Das Bedingungsregister 48 kann mit Selektion Ein/AusBits und einem Sp ung oder einer Bedingungskombination geprüft werden. Das Bedingungsregister 48 hat vier Bedingungscodes und vier programmgesteuerte Markierungsbits. Wenn die Prüfung falsch ist, wird die nächste Instruktion übersprungen. Die hohen Zahlen der hex. Zone im Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister .36 können ebenfalls auf lauter Nullen geprüft werden. As shown in Fig. 4B, the jump instruction is executed when a test is wrong. The checks carried out against a mask byte in the instruction on the lower 8 bits of a selected register are as follows: mask = lower byte, mask larger than lower byte, mask bits are checked for activated bits in the lower byte and other unselected bits are ignored or the mask is checked for the switched off bits in the lower byte and the remaining bits are ignored. The condition register 48 can be checked with selection on / off bits and a voltage or a combination of conditions. The condition register 48 has four condition codes and four program-controlled marker bits. If the test is wrong, the next instruction is skipped. The high numbers of the hex. Zones in the accumulator register 34 or the accumulator extension register .36 can also be checked for all zeros.

V erzweigungsoperationen Branch operations

Zu den Verzweigungsoperationen gehören die bedingte und die unbedingte Verzweigung. Sie können zu jedem 4K-Bereich des Festwertspeichers 16 vorgenommen werden. Wenn man den Inhalt des Mikroinstruktions-Adressregisters 32 + 1 in eines der lokalen Speicherregister 14 vor einer unbedingten Verzweigung speichert, wird eine Verzweigungsund Verbindungsoperation ausgeführt. Wenn man umgekehrt die so in den lokalen Speicherregistern 14 gespeicherte Adresse nimmt und diesen Adresszeiger in das Mikroinstruk-tions-Adressregister 32 zurücksetzt, kehrt man zu der Unterroutine zurück, von der die Verzweigung und Verbindung ursprünglich ausging. Branch operations include conditional and unconditional branching. They can be made for any 4K area of the read-only memory 16. If the contents of the microinstruction address register 32 + 1 are stored in one of the local storage registers 14 before an unconditional branch, a branch and connect operation is performed. Conversely, if one takes the address thus stored in the local memory registers 14 and resets this address pointer into the microinstruction address register 32, one returns to the subroutine from which the branching and connection originally started.

Zu einer zweiten Gruppe von Verzweigungsinstruktionen gehört die Mehrfach-Tabellenverzweigung. Diese kann auf den wertniederen vier hex. Bits in Prozessorregistern, auf den nächsten vier Zonen-Bits unter Ignorierung der vier oder sechs wertniederen Bits oder auf allen acht Bits vorgenommen werden. So erhält man eine Verzweigung mit 256 Zweigen zu einer vollständigen Tabelle, aus der ein acht Bit grosser OP-Code durch eine unbedingte Verzweigungsinstruktion aus der Tabelle herausdecodiert werden kann. A second set of branch instructions include the multiple table branch. This can be based on the lower four hex. Bits in processor registers, on the next four zone bits ignoring the four or six lower bits, or on all eight bits. This gives a branch with 256 branches to a complete table, from which an eight-bit OP code can be decoded from the table by an unconditional branch instruction.

Eine dritte Gruppe von Verzweigungsinstruktionen liefert die vorgezeichnete relative Adressverzweigung bei sechzehn verschiedenen Bedingungen wie Register 0 oder nicht 0, Register negativ oder nicht negativ. Die Verzweigung mit relativen Adressen erfolgt dadurch, dass man die acht Bit grosse relative Adresse aus der Instruktion nimmt und sie als vorgezeichnete sechzehn Bit grosse Zahl zum Inhalt des Mikroinstruktions-Adressregisters 32 addiert. A third group of branch instructions provides the predetermined relative address branch under sixteen different conditions such as register 0 or not 0, register negative or non-negative. The branching with relative addresses takes place by taking the eight-bit relative address from the instruction and adding it to the content of the microinstruction address register 32 as a predetermined sixteen-bit number.

Andere Instruktionen gestatten die relative Adressverzweigung basierend auf der Erhöhung des Inhaltes des Zählregisters 50 um 1 oder 16. Verzweigt wird, wenn das Ergebnis lauter Nullen oder nicht lauter Nullen enthält, wenn die vier wertniederen Bits alle 0 oder nicht 0 sind, wenn die vier wertniederen Bits alle 1 oder nicht alle 1 sind, wenn die vier werthohen Bits alle 1 oder nicht alle 1 sind usw. Other instructions allow the relative address branching to be branched based on the increment of the contents of the count register 50 by 1 or 16. If the result contains all zeros or not all zeros, if the four least significant bits are all zero or not zero if the four least significant ones Bits are all 1 or not all 1 if the four high bits are all 1 or not all 1, etc.

Logische Bewegung von Zahlen Logical movement of numbers

Die in Fig. 3B dargestellten Instruktionen zur logischen Bewegung von Zahlen (LM) bewegen selektiv den Inhalt eines angegebenen Registers 1 bis 63 in den lokalen Speicherregistern 14 in das Mikroinstruktions-Adressregister 32, das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder die kombinierten Register für die laufende Bedingung 48 und das Zählregister 50. Während dieser Übertragungen kann der Wert um 0,-1 oder +1 verändert werden (Bewegungen von Einzelbytes in das Akkumulatorregister 34 oder das Akkumulator-Erweiterungsregister 36 ausgenommen). Der so modifizierte Wert wird in das gewählte Register 1 bis 63 der lokalen Speicherregister 14 zurückgeschrieben. Umgekehrt kann der Inhalt eines angegebenen Registers (Mikroinstruktionsadressregister 32, Akkumulatorregister 34, Akkumulator-Erweiterungsregister 36 oder Bedingungsregister 48 und Zählregister 50 kombiniert in eine gewählte Stelle 1 bis 63 der lokalen Speicherregister 14 mit einer Modifikation um 0, +1 oder — 1 bewegt werden (Bewegung von Einzeldatenbytes aus dem Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister 36 ausgenommen). Die Byteverschiebungen können entweder das hohe oder das niedrige Byte im Akkumulatorregister 34 oder dem Akkumulator-Erweiterungsregister 36 angeben. Bei Bewegungen zwischen diesen beiden Registern und dem angegebenen Register in den lokalen Speicherregistern 14 wird keine Modifikation vorgenommen. Der Wert des Mi-kroinstruktions-Adressregisters 32 besteht aus einer sechzehn Bit grossen Adresse für den Festwertspeicher 16. Das Bedingungsregister 48 kann nur als oberes Byte der Kombina5 The logical move number (LM) instructions shown in Fig. 3B selectively move the contents of a specified register 1 through 63 in the local memory registers 14 into the microinstruction address register 32, the accumulator register 34, the accumulator expansion register 36, or the combined registers for the current condition 48 and the count register 50. During these transfers, the value can be changed by 0, -1 or +1 (movements of single bytes into the accumulator register 34 or the accumulator expansion register 36 excluded). The value modified in this way is written back into the selected registers 1 to 63 of the local memory register 14. Conversely, the content of a specified register (microinstruction address register 32, accumulator register 34, accumulator extension register 36 or condition register 48 and count register 50 combined can be moved into a selected position 1 to 63 of the local storage register 14 with a modification by 0, +1 or - 1 ( Movement of individual data bytes from the accumulator register 34 or the accumulator expansion register 36 is excluded. The byte shifts can indicate either the high or the low byte in the accumulator register 34 or the accumulator expansion register 36. When moving between these two registers and the specified register in the local ones No modification is made to memory registers 14. The value of microinstruction address register 32 consists of a sixteen bit address for read-only memory 16. Condition register 48 can only be used as the upper byte of combina5

10 10th

15 15

20 20th

25 25th

30 30th

35 35

40 40

45 45

50 50

55 55

60 60

65 65

623946 623946

18 18th

tion des Bedingungsregisters 48 mit dem Zählregister 50 selektiert werden, wenn keine Erhöhung oder Erniedrigung angegeben ist. Das Unterbrechungsmasken-Register 44 und das Fehlerregister 46 werden ebenso als Ersatz für das Bedingungsregister 48 und das Zählregister 50 gewählt, wenn sie durch eine früher beschriebene KSIE-Steuerinstruktion eingeschaltet wurden. Wenn die Instruktion zur logischen Zahlenverschiebung die Stelle 0 in den lokalen Speicherregistern 14 angibt, ist die indirekte Adressierung der lokalen Speicherregister 14 von den wertniederen sechs Bits des Zählregisters 50 selektiert. Ausgenommen ist die Selektion des Bedingungsregisters 48 und des Zählregisters 50 als Bestimmungsort für das Quellenregister für die Bewegungsoperation, mit der Daten von oder zu diesen beiden Registern bewegt werden von oder zu der Stelle 0 der lokalen Speicherregister 14. tion of the condition register 48 can be selected with the count register 50 if no increase or decrease is specified. Interrupt mask register 44 and error register 46 are also chosen to replace condition register 48 and count register 50 when turned on by a KSIE control instruction previously described. If the instruction for the logical number shift specifies the position 0 in the local memory registers 14, the indirect addressing of the local memory registers 14 is selected from the lower six bits of the count register 50. The exception is the selection of the condition register 48 and the count register 50 as the destination for the source register for the movement operation with which data is moved from or to these two registers from or to the position 0 of the local storage register 14.

Eingabe/A usgabe Input / output

Eine direkte Eingabe/Ausgabe-Instruktion als solche gibt es nicht. Direkte programmgesteuerte Datenübertragungen oder Steuernachrichten von oder zu einem E/A-Gerät werden durch die Instruktionen Speicherabruf, Speicher Schreiben, Daten modifizieren und durch Steuerinstruktionen ausgeführt. There is no direct input / output instruction as such. Direct program-controlled data transfers or control messages from or to an I / O device are performed by the memory fetch, memory write, modify data and executed by control instructions.

Die Speicherabrufinstruktion überträgt Daten vom Hauptspeicher 12 an ein E/A-Gerät über die interne Datenbahn der Sammelleitungen 23, 25, 28. Die logische Schreibinstruktion überträgt Daten direkt von einem E/A-Gerät an den Hauptspeicher 12 über die Eingangssammelleitung 10, ohne dass diese durch den Prozessor 9 laufen. Dabei wird die 5 Adresse von Akkumulator-Erweiterungsregister 36 oder von einem der LSR 14 benutzt. Die Instruktion zur Datenmodifikation bringt Daten von einem E/A-Gerät, lässt die ALU 22 die Daten mit dem Operanden im Akkumulator-Erweiterungsregister 36 bearbeiten und gibt das Ergebnis über das io Ausgabepufferregister 26 an das E/A-Gerät zurück. Mit einer Steuerinstruktion können Daten an ein Gerät entweder von einem angegebenen LSR 14 (0 bis 15) oder von einem direkten Datenfeld in der Instruktion ausgegeben werden. Andere Steuerinstruktionen können Daten von einem 15 E/A-Gerät in das Akkumulatorregister 34, das Akkumulator-Erweiterungsregister 36 oder eines der Register 0 bis 15 im LSR 14 übertragen. The memory fetch instruction transfers data from main memory 12 to an I / O device via the internal highway of bus 23, 25, 28. The logical write instruction transfers data directly from an I / O device to main memory 12 via input bus 10 without these run through the processor 9. The 5 address of accumulator extension register 36 or one of the LSR 14 is used. The instruction for data modification brings data from an I / O device, has the ALU 22 process the data with the operand in the accumulator extension register 36 and returns the result to the I / O device via the io output buffer register 26. With a control instruction, data can be output to a device either from a specified LSR 14 (0 to 15) or from a direct data field in the instruction. Other control instructions may transfer data from a 15 I / O device to the accumulator register 34, the accumulator expansion register 36 or one of the registers 0 to 15 in the LSR 14.

In jedem Fall wird die Geräteadresse, entweder direkt im Adressfeld durch die Instruktion angegeben oder indirekt 20 als Inhalt des Zählregisters 50, an das E/A-Gerät über die Adresssammelleitung 21 und die Ausgangsleitung 41 übertragen, die auch zur Adressierung der LSR 14 benutzt werden. Die Übertragung wird durch zwei Austauschsignale synchronisiert. Diese Signale gestatten zusammen mit dem Hal-25 tetakteingangssignal den asynchronen Betrieb der E/ A-Über-tragungen, unabhängig von der Leitungslänge und den Betriebsverzögerungen des Gerätes. In any case, the device address, either specified directly in the address field by the instruction or indirectly 20 as the content of the count register 50, is transmitted to the I / O device via the address bus 21 and the output line 41, which are also used for addressing the LSR 14 . The transmission is synchronized by two exchange signals. These signals, together with the hold-25 clock input signal, allow the I / O transfers to operate asynchronously, regardless of the line length and the operating delays of the device.

v v

12 Blätter Zeichnungen 12 sheets of drawings

Claims (10)

623946623946 1. Mikroprozessor-Anordnung mit einem Halbleiterchip, auf dem ein Rechenwerk, zugehörige Operandenregister, eine Instruktions-Decodier- und Ausführungsschaltung, sowie Eingangs- und Ausgangsschaltungen angeordnet sind, und mit Verbindungsleitungen zu einem Hauptspeicher, zu Registern und zu Eingabe-/Ausgabegeräten, im folgenden E/A-Geräte genannt, die ausserhalb des Halbleiterchips angeordnet sind, sowie mit einem die genannten Baueinheiten verbindenden Sammelleitungssystem und einer Takt- und Zeitsteuerung zur zeitlichen Steuerung der ablaufenden Operationen, dadurch gekennzeichnet, dass auf dem Halbleiterchip (9) eine uni-direktionale, also in nur einer Richtung übertragende Sammelleitung (23, 25, 28) vom Rechenwerk (22) über ein Totalregister (24) zu einem Ausgabepufferregister (26) führt, dass an diese Sammelleitung ausserdem ein Mikroinstruktions-Adressregister (32) angeschlossen ist, das seinerseits über eine Ausgangsleitung (29) zur Adressmodifikation oder für Ver-zweigungs- und Verbindungsoperationen mit dem Rechenwerk (22) direkt verbunden ist, dass zusätzliche Register (34, 36, 44,46, 48, 50) mit der genannten Sammelleitung verbunden sind, wobei unter Steuerung eines Instruktionsdecodie-rers (62), der über eine Eingangsleitung (33) von einem Programmregister (30) gespeist wird, Daten- bzw. Befehlssignale in die genannten Register eingegeben werden, dass ausserdem eine multiplex geschaltete gemeinsame Rufleitung (53) für Zykluszuordnungen und Unterbrechungsanforderungen mit einem Prioritätscodierer (54) verbunden ist, und dass Steuerleitungen (15) mit Treibern (18) verbunden sind, um die Quelle oder den Bestimmungsort für Übertragungen auf mit der Sammelleitung verbundenen Eingangssammelleitungen (10) und Ausgangssammelleitungen (20) auszuwählen, und dass ausserdem eine Adresssammelleitung (41) einerseits mit einem Ausgabesteuerregister (40) und andererseits mit den Treibern (18) verbunden ist, um ausserhalb des Halbleiterchips liegende lokale Speicherregister (14) oder E/A-Geräte direkt anzusteuern. 1. Microprocessor arrangement with a semiconductor chip on which an arithmetic unit, associated operand registers, an instruction decoding and execution circuit, and input and output circuits are arranged, and with connecting lines to a main memory, to registers and to input / output devices, in The following I / O devices, which are arranged outside the semiconductor chip, as well as with a bus system that connects the above-mentioned units and a clock and time control for timing the operations in progress, characterized in that a unidirectional one on the semiconductor chip (9) , i.e. bus line (23, 25, 28) transmitting in only one direction from the arithmetic logic unit (22) via a total register (24) to an output buffer register (26), that a micro-instruction address register (32) is also connected to this bus line in turn via an output line (29) for address modification or for branching and Connection operations with the arithmetic unit (22) is directly connected, that additional registers (34, 36, 44,46, 48, 50) are connected to said bus, under the control of an instruction decoder (62) which is connected via an input line ( 33) is fed by a program register (30), data or command signals are input into said registers, that in addition a multiplexed common call line (53) for cycle assignments and interrupt requests is connected to a priority encoder (54), and that control lines ( 15) are connected to drivers (18) for selecting the source or the destination for transmissions on input bus lines (10) and output bus lines (20) connected to the bus line, and also that an address bus line (41) on the one hand with an output control register (40) and on the other hand is connected to the drivers (18) in order to local memory registers located outside the semiconductor chip directly (14) or I / O devices. 2. Mikroprozessor-Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, dass die Ausgangssammelleitung (20) einen als Steuerspeicher dienenden Festspeicher (16) und den Hauptspeicher (12) adressiert, die ausserhalb des Halbleiterchips (9) angeordnet sind, und Daten an die E/A-Geräte und die lokalen Speicherregister (14) liefert, während die Eingangssammelleitung (10) Daten, Adressen und Instruktionen vom Hauptspeicher (12) bzw. den E/A-Geräten und lokalen Speicherregistern (14) an Funktionseinheiten auf dem Halbleiterchip (9) sowie Daten von den E/A-Geräten und den lokalen Speicherregistern (14) zu dem Hauptspeicher (12) abgibt. 2. Microprocessor arrangement according to claim 1, characterized in that the output bus (20) addresses a control memory (16) serving as a control memory and the main memory (12), which are arranged outside the semiconductor chip (9), and data to the E / A devices and the local memory register (14) delivers, while the input bus (10) data, addresses and instructions from the main memory (12) or the I / O devices and local memory registers (14) to functional units on the semiconductor chip (9) and outputs data from the I / O devices and the local memory registers (14) to the main memory (12). 2 2nd PATENTANSPRÜCHE PATENT CLAIMS 3. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Takt- und Zeitsteuerung einen zweiteiligen Ausführungszyklus für die Instruktionen zum Zwecke des überlappten Betriebs festlegt, wobei während eines Teils der als Steuerspeicher benützte Festspeicher (16) mit einer Adresse auf der Ausgangssammelleitung (20) adressiert wird und während des anderen Teils Daten über diese Ausgangssammelleitung (20) an die lokalen Speicherregister (14) oder an die E/A-Geräte gesendet werden. 3. Microprocessor arrangement according to claim 1 or 2, characterized in that the clock and time control defines a two-part execution cycle for the instructions for the purpose of overlapping operation, with part of the read-only memory (16) used as control memory having an address on the Output bus (20) is addressed and during the other part data is sent via this output bus (20) to the local storage register (14) or to the I / O devices. 4. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Ausführung einer zweiten Instruktion während eines ersten Teils eines Instruk-tionsausführungs-Zyklus beginnt und während eines zweiten Teiles dieses Instruktionsausführungszyklus Daten auf dieAus-gangssammelleitung (20) gegeben werden, die an ein E/A-Gerät und/oder ein lokales Speicherregister (14) übertragen werden, das durch eine Adresshilfsleitung adressiert ist. A microprocessor arrangement according to claim 1 or 2, characterized in that the execution of a second instruction begins during a first part of an instruction execution cycle and during a second part of this instruction execution cycle data is given to the output bus (20) are transmitted to an I / O device and / or a local memory register (14) which is addressed by an address auxiliary line. 5. Mikroprozessor-Anordnung nach Patentanspruch 1 5. Microprocessor arrangement according to claim 1 oder 2, dadurch gekennzeichnet, dass in den lokalen Speicherregistern (14) an einer reservierten Adresse Daten gespeichert sind, die auf der Ausgangssammelleitung (20) während eines jeden Instruktionsausführungs-Zyklus erscheinen, um sie se-5 lektiv während des nächsten Instruktionsausführungs-Zyklus auf die Eingangssammelleitung (10) zu laden. or 2, characterized in that the local memory registers (14) store data at a reserved address that appears on the output bus (20) during each instruction execution cycle to selectively open it during the next instruction execution cycle to load the input manifold (10). 6. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Treiber (18) und die Takt- und Zeitsteuerschaltungen (60, 64, 66) auf dem Halb- 6. Microprocessor arrangement according to claim 1 or 2, characterized in that the drivers (18) and the clock and time control circuits (60, 64, 66) on the half io leiterchip (9) angeordnet sind. io conductor chip (9) are arranged. 7. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Treiber (18) der als Steuerspeicher dienende Festspeicher (16), der Hauptspeicher (12) sowie die lokalen Speicherregister (14) und deren 15 Datenleitungen (11, 13, 17) auf einem oder mehreren zusätzlichen Halbleiterchips angeordnet sind. 7. The microprocessor arrangement as claimed in claim 1 or 2, characterized in that the drivers (18) serve as the control memory (16), the main memory (12) and the local memory registers (14) and their 15 data lines (11, 13, 17) are arranged on one or more additional semiconductor chips. 8. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass die Sammelleitung (25), die mit dem dem Rechenwerk (22) nachgeschalteten Total- 8. Microprocessor arrangement according to claim 1 or 2, characterized in that the collecting line (25), which with the arithmetic unit (22) connected downstream total 20 register (24) verbunden ist, während jedes Instruktionsaus-führungs-Zyklus wenigstens zweimal geladen wird, und zwar einmal mit der Adresse der als nächsten auszuführenden Instruktion und zum anderen mit den Ausführungsergebnissen der in der Instruktion angegebenen Funktion. 2520 register (24) is connected while each instruction execution cycle is loaded at least twice, once with the address of the instruction to be executed next and on the other hand with the execution results of the function specified in the instruction. 25th 9. Mikroprozessor-Anordnung nach Patentanspruch 1 oder 2, dadurch gekennzeichnet, dass Daten vom Rechenwerk (22) vorübergehend im nachgeschalteten Totalregister (24) gespeichert werden und zeitgesteuert danach im Ausgabepufferregister (26), wodurch auf der Eingangssammel-30 leitung (10) eine Operation ausgeführt werden kann, währenddem gleichzeitig eine andere auf der Ausgangssammelleitung (20) überlappend abläuft und beendet wird. 9. A microprocessor arrangement according to claim 1 or 2, characterized in that data from the arithmetic logic unit (22) are temporarily stored in the downstream total register (24) and then time-controlled in the output buffer register (26), which leads to a line (10) on the input collector Operation can be performed while another is overlapping and terminating on the output manifold (20). 10. Mikroprozessor-Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, dass als zusätzliche, mit der unidi-35 rektionalen Sammelleitung (23, 25, 28) verbundene Register vorgesehen sind: ein Akkumulatorregister (34), ein Akkumulator-Erweiterungsregister (36), ein Fehlerregister (46), ein Unterbrechungsmaskenregister (44), ein Zählregister (50) sowie ein Register (48) zum Festhalten der laufenden Bedin-40 gung. 10. A microprocessor arrangement according to claim 1, characterized in that the following are provided as additional registers connected to the unidi-35 rectional collecting line (23, 25, 28): an accumulator register (34), an accumulator extension register (36) Error register (46), an interrupt mask register (44), a count register (50) and a register (48) for recording the current condition.
CH1596877A 1976-12-27 1977-12-23 Microprocessor arrangement. CH623946A5 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US75446276A 1976-12-27 1976-12-27

Publications (1)

Publication Number Publication Date
CH623946A5 true CH623946A5 (en) 1981-06-30

Family

ID=25034899

Family Applications (1)

Application Number Title Priority Date Filing Date
CH1596877A CH623946A5 (en) 1976-12-27 1977-12-23 Microprocessor arrangement.

Country Status (10)

Country Link
JP (1) JPS6053898B2 (en)
AU (1) AU512868B2 (en)
BR (1) BR7708663A (en)
CA (1) CA1091359A (en)
CH (1) CH623946A5 (en)
DE (1) DE2756767C2 (en)
ES (1) ES465430A1 (en)
GB (1) GB1543279A (en)
HK (1) HK70784A (en)
SE (1) SE427590B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6140500U (en) * 1984-08-16 1986-03-14 三菱重工業株式会社 Tail seal of shield type tunnel boring machine
JPS62175082U (en) * 1986-04-24 1987-11-06
JPS63104495U (en) * 1986-12-25 1988-07-06
JPH0513834Y2 (en) * 1987-02-17 1993-04-13
JPH0535198Y2 (en) * 1987-02-17 1993-09-07
JPH0540157Y2 (en) * 1987-08-13 1993-10-12

Also Published As

Publication number Publication date
SE7714243L (en) 1978-06-28
JPS6053898B2 (en) 1985-11-27
GB1543279A (en) 1979-03-28
AU2956177A (en) 1979-05-24
ES465430A1 (en) 1978-09-16
AU512868B2 (en) 1980-10-30
HK70784A (en) 1984-09-21
JPS5382239A (en) 1978-07-20
DE2756767C2 (en) 1982-09-09
BR7708663A (en) 1979-07-24
SE427590B (en) 1983-04-18
DE2756767A1 (en) 1978-06-29
CA1091359A (en) 1980-12-09

Similar Documents

Publication Publication Date Title
DE2756768C2 (en) microprocessor
DE2907181C2 (en) Processor with an instruction set modifier register
DE2755273C2 (en)
DE69729974T2 (en) Data processing circuit, microcomputer and electronic device
DE2716369C2 (en)
DE2524046C2 (en) Electronic data processing system
DE2756762A1 (en) PROCEDURE AND ARRANGEMENT FOR ACCESS TO ANY BIT FIELDS IN THE MAIN MEMORY OF A DATA PROCESSING SYSTEM
CH650600A5 (en) CENTRAL PROCESSOR UNIT OF A DATA PROCESSING SYSTEM WITH OPERATION CODE EXTENSION REGISTER.
EP0010185B1 (en) Virtual-addressing device for a computer
DE2935906C2 (en) microprocessor
DE2130299B2 (en) Input / output channel for a data processing system
DE2910839A1 (en) DEVICE FOR EXECUTING A SPECIAL BRANCHING INSTRUCTION
DE2424810A1 (en) DATA PROCESSING SYSTEM, IN PARTICULAR SMALL MICROPROGRAM DATA PROCESSING SYSTEM WITH MULTI-Syllable MICRO-INSTRUCTIONS
DE2533737C2 (en) Microprocessor with divisible address rail
DE2713685A1 (en) MICRO-PROGRAM CONTROLLED DATA PROCESSING SYSTEM
DE3114921A1 (en) DATA PROCESSING SYSTEM
DE1935944B2 (en) Control device in an electronic data processing system
DE2854400C2 (en) Arrangement for changing between programs to be processed interlinked
DE2336676C3 (en) Device for modifying microprogram instructions
CH623946A5 (en) Microprocessor arrangement.
DE2835110A1 (en) FAST REAL-TIME COMPUTER EMULATOR
DE2747304A1 (en) MICRO COMMAND DEVICE
EP0494329B1 (en) Circuit device to map the logical address space of a processing unit onto the physical address space of a memory
DE2000608A1 (en) Circuit arrangement for a message processing system, in particular for a message switching system
DE2821941C3 (en) Processor with a central unit for carrying out an information comparison

Legal Events

Date Code Title Description
PL Patent ceased