DE2748991C2 - Einrichtung zur Umsetzung von Dezimalzahlen - Google Patents

Einrichtung zur Umsetzung von Dezimalzahlen

Info

Publication number
DE2748991C2
DE2748991C2 DE2748991A DE2748991A DE2748991C2 DE 2748991 C2 DE2748991 C2 DE 2748991C2 DE 2748991 A DE2748991 A DE 2748991A DE 2748991 A DE2748991 A DE 2748991A DE 2748991 C2 DE2748991 C2 DE 2748991C2
Authority
DE
Germany
Prior art keywords
data
byte
bit
shift
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2748991A
Other languages
English (en)
Other versions
DE2748991A1 (de
Inventor
Bruce Roger Bonner
Nicholas Bernard Apalachin N.Y. Sliz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2748991A1 publication Critical patent/DE2748991A1/de
Application granted granted Critical
Publication of DE2748991C2 publication Critical patent/DE2748991C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/762Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Description

2. Umsetzeinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Verknüpfungsschaltungen Kreuzverbindungen aufweisen, die aus UND-Toren (81 -88,101 -108; F i g. 35) bestehen.
3. Umset7sinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß eine zweistufige Byteverschiebeeinrichiung (50, 53, 52, 55) für jeweils eine Bitposition in jedem Funktionsblock (42—46) vorgesehen ist und daß die Verschiebeeinrichtung erster Stufe (50, 53, F i g. 12) eine Verschiebung von wahlweise. 0, 1, 2 oder 3 Bytes durchführt und die nachgeschaltete Verschiebeeinrichtung zweiter Stufe (52,55) eine Verschiebung von 0 oder 4 Bytes.
4. Umsetzeinrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Steuereinrichtungen der Kreuzverbindungen mit den aus UND-Gliedern bestehenden Verschiebeeinrichtungen der zweiten Stufe kombiniert sind (F i g. 17 bis F i g. 34).
5. Umsetzeinrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß eine von Mikroinstruktionen beaufschlagte Steuereinheit (56, 58; Fig. 12) in jedem Funktionsblock Steuersignale für die Funktion »Verschieben«, »Packen mit Vorzeichen«, »Packen ohne Vorzeichen«, »Entpakken mit Vorzeichen«, »Entpacken ohne Vorzeichen« abgibt.
6. Umsetzeinrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Kreuzverbindungen des Funktionsblocks für den Fall der Packungsoperation so geschaltet sind, daß die Eingangsbits der niedrigstelligen Bitposition (Bit 7, ΑΌ7—A"77; Fig. 17) abwechselnd als hochstellige und als niedrigstellige Ausgangsbits (Bit 7, Y37-Y77, bzw. Bit 3, K43- K73, Fig. 17) abgegeben werden und die restlichen Ausgangsbits (Y03-Y33, Y07-Y27) auf 0 gesetzt werden.
7. Umsetzeinrichtung nach einem der Ansprüche I bis 6, dadurch gekennzeichnet, daß die Kreuzverbindungen des Funktionsblocks für den Fall einer Entpackungsoperation so geschaltet sind, daß jeweils die Hälfte der Eingangsbits mit hochstelliger und niedrigstelliger Bitposition (A"43 — A"73, bzw. A"47—A"77) abwechselnd als Ausgangsbits mit niedrigstelliger Bitposition (Y07—Y77, Fig. 18) abgegeben werden.
8. Umsetzeinrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die hochstelligen Ausgangsbits fV'03, ^53, F73) entsprechend dem Zonencode (z. B. lauter Einsen) beaufschlagt werden.
9. Umsetzeinrichtung nach Anspruch 6, dadurch gekennzeichnet, daß beim »Packen mit Vorzeichen« das hochstellige Bit (Ά" 73) des letzten Eingangsbytes als niedrigstelliges Bit (Y77) des letzten Ausgangsbytes (Y77) abgegeben wird.
10. Umsetzeinrichtung nach Anspruch 7, dadurch gekennzeichnet, daß beim »Entpacken mit Vorzeichen« das niedrigstellige Bit (X77, Fig. 18) des
is letzten Eingangsbytes als hochstelliges Bit des vorletzten Ausgangsbytes (Y63) abgegeben wird.
11. Umsetzeinrichtung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Paritätsbits aller Eingangsbytes gemeinsam in einem Funktionsblock (46) verarbeitet werden.
12. {Jmsetzeinrichtung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß jeder Funktionsblock durch ein hochintegriertes Schaltplättchen (Chip) realisiert ist.
Die Erfindung betrifft eine Einrichtung zur Umsetzung von Dezimalzahlen nach dem Oberbegriff von Anspruch 1.
Periphere Eingabe/Ausgabegeräte liefern e:inem digitalen Datenprozessor Daten in Form binär codierter Zeichen, wobei jedes Zeichen einen Buchstaben oder eine Zahl oder ein graphisches Zeichen wie beispielsweise einen Punkt oder ein Steuerzeichen darstellt. In einem typischen heutigen Datenprozessor hat jedes Zeichen die Länge von einem Byte, und ein Byte ist definiert als eine Folge von ach; nebeneinanderlicgenden binären Datenbits. Acht Bits liefern 256 verschiedene eindeutige Codewerte und somit einen Zeichensatz, der bis zu 256 verschiedene Zeichen darstellen kann. Bei numerischen Daten stehen die Daten vom Eingabe/Ausgabegerät im ungepackten bzw. Zonendezimalformat, wobei die unteren vier Bits eines jeden Zeichens bzw. Bytes ein Zahlenfeld bilden und die oberen vier Bits ein Zonenfeld. Das vier Bit große Zahlenfeld enthält eine binär codierte Dezimalziffer und das vier Bit große Zonenfeld enthält einen eindeutigen Zonencode, der das
so Zeichen als numerischen Wert und nicht als Buchstaben, graphisches Zeichen oder Steuerzeichen identifiziert.
Leider können die arithmetischen und logischen Einheiten, die heute die numerischen Berechnungen in den meisten Datenprozessoren vornehmen, numerische Daten im Zonenformat nicht verarbeiten. Das Vorhandensein von Zonenfeldern würde zu fehlerhaften Ergebnissen führen. Daher müssen die vom Eingabe/ Ausgabegerät empfangenen numerischen ungepackten Daten gepackt werden, bevor sie für numerische Berechnungen verwendet werden können. Dazu zerstört man die Zonenfelder und setzt die Zahlenfelder so nebeneinander, daß sie zusammenhängende Folgen mit lauter Zahlenfeldern bilden. Diese Umsetzung vom Zonenformat in das gepackte Format wird allgemein
b5 mit »Packen« bezeichnet.
In typischen Datenprozessoren kann der Programmierer die Maschine anweisen, die Zahlenbcrechnungen entweder in Dezimalarithmetik oder in der rennen
Binärarithmetik durchzuführen. In letzterem Fall muß man die gepackten dezimalen numerischen Daten noch in das rein binäre Format umsetzen, bevor die Rechnungen ausgeführt werden können. In jedem Fall jedoch müssen die Original-Zonendaten in ein gepacktes Format umgesetzt werden.
Die umgekehrte Situation liegt vor, wenn die Rechnungsergebnisse an die peripherer. Eingabe/Ausgabegeräte zurückgesendet werden sollen. Die numerischen Ergebnisse müssen aus dem gepackten Format in das Zonenformat zurückgesetzt werden, bevor die Daten an das Eingabe/Ausgabegerät zurückgesendet werden. Dazu müssen die Zahlenfeider getrennt und ein eindeutiger Zonenfeldcode für numerische Zeichen in die Zwischenräume eingeschoben werden. Diese Umsetzung vom gepackten in das Zonenformat wird allgemein Einpacken genannt Bei reinen binären Bereichnungen werden die binären Ergebnisse zuerst in das gepackte dezimale Format und dann in das Zonenforinat um^ese^zt
Wie aus obigen Ausführungen zu entnehmer; ist, sind bei Verwendung eines Digitalrechners oder Datenprozessors zur Ausführung von Benutzerprogrammen mit numerischen Daten und numerischen Rechnungen einige Pack- und Entpackungsoperationen erforderlich. Unglücklicherweise sind diese Operationen bei den heutigen Datenprozessoren ziemlich zeitaufwendig. Die Datenbytes werden dabei byteweise gepackt oder entpackt, wobei man wenigstens zwei Maschinenzyklen braucht, um ein Byte zu packen oder umgekehrt zu entpacken. Daher sollte dieser Vorgang nach Möglichkeit beschleunigt werden, was eine beträchtliche Leistungsverbesserung des Datenprozessors darstellen würde. Gleichzeitig sollte das natürlich mit möglichst geringen zusätzlichen Kosten durchgeführt werden, indem man relativ wenig zusätzliche Schaltungen in den Datenprozessor einbaut.
Den gleichen Nachteil eines hohen Zeitaufwandes bei der Verarbeitung von aus mehreren Bytes bestehenden Datenelementen findet man im Stand der Technik auch bei Schaltungen, die aus einem Datenstrom Informationen ausblenden und dazu steuerbare Verbindungsleitungen zwischen Eingangsregistern und Ausgangsregistern vorsehen. Ein Beispiel für eine derartige Ausblendschaltung ist in der deutschen Offenlegungsschrift 22 33 164 zu finden; eine Datenkompressionseinrichtung zeigt die deutsche Offenlegungsschrift 23 36 536. Da diese Schaltungen außerdem das im folgenden noch näher erläuterte Problem des Kreuzens von Bitpositionen nicht lösen, kommen sie für eine Parallelverarbeitung mehrerer Bytes beim Packen oder Entpacken von Dezimalzahlen nicht in Frage.
Die vorliegende Erfindung stellt sich daher die Aufgabe, eine Einrichtung zur Umsetzung von Dezimalzahlen der eingangs genannten Art anzugeben, mit der aus mehreren Bytes bestehende Dezimalzahlen schnell und ohne großen Schaltungsaufwand vom gezonten in das gepackte Format und umgekehrt übergeführt werden können. Diese Einrichtung soll auch ohne Schwierigkeiten in integrierter Schaltkreistechnologie ausgeführt werden können und darf somit nur wenige Außenanschlüsse erfordern.
Diese Aufgabe wird durch die im Hauptanspruch gekennzeichnete Erfindung gelöst; Ausgestaltungen der Erfindung sind inden Unteraftsprüchen gekennzeichnet.
Die Erfindung schlägt ein Gerät vor, das die gleichzeitige Umsetzung mehrerer Bytes dezimaler Daten vom gezonten in das gepackte Format oder
ίο
■κ»
umgekehrt erlaubt Ein solches Gerät enthält eine erste und eine zweite, mehrere Byte große Sammelleitung miteinander entsprechenden Leitern zur parallelen Übertragung von Datenbits sowie eine Schaltung zur Kopplung ausgewählter Leitergruppen in der ersten Datensammelleitung mit anderweitigen Leitergruppen in der zweiten Datensammelleitung, derart, daß die gewählten Datenfelder der ersten Datensammelleitung versetzt auf die zweite Datensammelleitung gelangen. Diese Versetzung erfolgt in bezug auf die Bitpositionen der beiden Sammelleitungen; das Ausmaß der Versetzung ist für verschiedene ausgewählte Datenfelder auf der ersten Datensammelleitung verschieden, so daß die ausgewählten Datenfelder auf der zweiten Datensammelleitung mit einem anderen Feldabstand reproduziert werden.
Ein weiteres Merkmal der Erfindung in einem digitalen Datenprozessor betrifft eine Datenflußschaltung für die gleichzeitige parallele Lieferung mehrerer Bytes binär codierter Daten zusammen mit einer mehrere Byte großen Schiebeschaltung im Prozessordatenfluß zum gleichzeitigen Empfang dieser Datenbytes; es können damit Schiebeoperationen ausgeführt und die verschobenen Bytes parallel in den Datenfluß zurückgegeben werden. Die Schaltungskombination enthält weiter eine Formatumsetzungsschaltung, die zur Schiebeschaltung gehört und dieser die alternative und wahlweise Datenformatumsetzung mit mehreren durch die Schiebeschaltung laufenden Datenbytes gestattet
Die Erfindung läßt sich mit sehr geringem Schaltungsaufwand realisieren, wenn die im Prozessor sowieso vorhandene Verschiebeschaltung (shifter) so erweitert wird, daß neue steuerbare Verbindungen zwischen deren Eingangs- und Ausgangsleitungen vorgesehen werden. Eine Steuereinheit bestimmt dann, ob eine normale Datenverschiebung erfolgen soll, eine Pack-Operation oder eine Entpack-Operation.
Der hier vorgeschlagene Datenformatumseizer kann in vorteilhafter Weise in hochintegrierter Bauweise mit einer geringen Anzahl von Halbleiterplättchen (chips) und relativ wenig Kontaktstiften pro Plättchen hergestellt werden.
Ausführungsbeispiele der Erfindung sind in den Zeichungen dargestellt und werden anschließend näher beschrieben. Es zeigt
F i g. 1 in einem Funktionsblockdiagramm den Datenfluß in einem digitalen Datenprozessor, in dem durch Einsatz der vorliegenden Erfindung die Leistung wesentlich erhöht werden kann,
F i g. 2 in einer Datenfolgetabelle eine repräsentative Folge numerischer Daten in ungepacktem Dezimalformat,
F ι g. 3 in einer Datenfolgetabelle eine repräsentative Folge numerischer Daten in gepacktem Dezirualformat,
F i g. 4 in einer Tabelle die Beziehung zwischen dezimalen, hexadezimalen und binären Zahlen,
Fig. 5 das Format einer Maschineninstruktion »Packen«,
Fig. 6 das Format einer Maschineninstruktion »Entpacken«,
Fig.7a bis 7d Datenfolgetabellen zur Erklärung der erfindungsgemäßen Umsetzung von Daten aus dem ungepackten in das gepackte Dezimalformat,
F i g. 8a bis 8d Daten^olgetabellen zur Erklärung der erfindungsgemäßen Umsetzung von Daten aus dem gepackten in das ungepackte Dezimalformat,
F i g. 9 Einzelheiten der Übertragung der Bytes 0 bis 3, in F i g. 7a,
Fig. 10 Einzelheiten der Übertragung der Bytes 1 bis 4 in F i g. 7a,
Fig. 11 in einem Blockdiagramm ein erfindungsgemäß aufgebautes Gerät zur Datenverschiebung und Formatumsetzung, das sich vorteilhaft zur Verwendung in dem in F i g. 1 gezeigten Datenprozessor eignet,
Fig. 12 in einem detaillierten Blockdiagramm den Teil für Bitpositionen 3, bzw. 7 des in Fig. 11 gezeigten Gerätes,
F i g. 13 das Format eines Schiebemikrowortes. das in Verbindung mit dem Einsatz der vorliegenden Erfindung in dem in F i g. 1 gezeigten Datenprozessor verwendet wird.
Fig. 14 dasselbe Blockdiagramm wie Fig. 12, jedoch wurden Steuerleitungen und -schaltungen der Klarheit halber weggelassen und die Datenleitungen und -schaltungen genauer dargestellt.
H ig. 15 im einzelnen den Aufbau der in Fig. i2 und 14 gezeigten Geräte, wobei bestimmte logische Schaltelemente (SW in Fig. 14) analog dargestellt wurden.
Fig. 16 die logische Schaltung für eines der in F i g. 15 gezeigten analogen Schaltelemente,
Fig. 17 ein Diagramm mit Verbindungsleitungen zwischen Eingangs- und Ausgangsanschlüssen im >5 Byteschieber der zweiten Stufe, dargestellt in Fig. 14, bei einer Umwandlungsoperation vom ungepackten in das gepackte Format.
Fig. 18 die entsprechenden Verbindungen der zweiten Stufe für die Umwandlung vom gepackten in das ungepackte Format.
F i g. 19 bis 26 einzelne logische Schaltbilder für die 8 logischen Schaltelemente der zweiten Stufe für Bitposition 3. in Fig. 14.
Fig. 27 einzelne logische Schaltbilder für die 8
iugiSCncfi Schaltelemente ucf Z'W'ciicfi StUiC iuT Bitposition 7. in F i g. 14, und
F i g. 35 einen Gesamtplan für Verdrahtung und Logik der Byteschieber der zweiten Stufe der Fi g. 14, in dem jedoch nur die Verdrahtung und die logische Schaltung -»o für die Packoperationen und Entpackoperationen dargestellt sind.
In Fig. 1 ist der Datenfluß für einen größeren mikroprogrammgesteuerten digitalen Datenprozessor gezeigt, in dem die vorliegende Erfindung verwendet werden kann. Die Datensammelleitungen und Funktionseinheiten in Fig. 1 sind, soweit nichts anderes angegeben ist. mit einer Datenverarbeitungsbreite von mehreren Bytes ausgelegt, so daß entsprechende Datenreihen parallel und gleichzeitig verschoben und manipuliert werden können. Als Beispiel wird angenommen, daß die Datenfluß-Grundbreite 8 Bytes beträgt und jedes Byte aus 8 Datenbits und einem Paritätsprüfbit besteht In diesem Beispiel werden daher die Daten größtenteils in Ketten von 64 Bits verschoben und manipuliert. Der Einfachheit halber wird grundsätzlich das Paritätsprüfbit hier nicht erwähnt.
Ein Anwendungsprogramm in Maschinensprache wird dem Datenprozessor durch ein peripheres Eingabe/Ausgabegerät 10, beispielsweise ein Lochkartenleser oder eine Magnetbandeinheit zugeführt. Die das Programm bildenden Befehle und Daten werden über einen Eingabe/Ausgabekanal 11, Datensammelleitüiigen 12 und 13. einen Byteschieber und Forrnaturnsetzer 14 und Datensammelleitungen 15 und 16 dem Hauptspeicher 17 zugeführt. Danach wird das Programm durch einzelnes Auslesen der Befehle aus dem Hauptspeicher 17. Durchführung der von ihnen verlangten Operationen und Rückspeicherung der Ergebnisse in den Hauptspeicher 17 ausgeführt. Zu gegibener Zeit werden die Ergebnisse an andere E/A-Geräte 10, wie beispielsweise ein Bildschirmgerät, eine Schreibmaschine oder einen Drucker zurückgesendet. Diese Rücksendung erfolgt über die Datensammelleitungen 18 und 13, den Byteschieber und Formatumsetzer 14, die Datensammelleitungen 15 und 19 und den E/A-Kanal II.
Typischerweise werden Daten zwischen einem E/A-Gerät 10 und einem E/A-Kanal 11 byteweise übertragen. Der E/A-Kanal verfügt über einen ausreichenden Puffer, so daß bei hereinkommenden Daten beispielsweise genügend Bytes im Puffer angesammelt werden, damit sie in Gruppen von jeweils 8 Bytes auf die Prozessordatensammelleitung 12 gegeben werden können. Bei ausgehenden Daten hält der Puffer die auf der Datensammelleitung 19 empfangenen 8 Btytes lange genuf fest, damit die Byies eiiUcln an das E/A-Gcrä; 10 übertragen werden können. Der ausschlaggebende Punkt liegt darin, daß die Datensammelleitungen 12, 13, 15, 16, 18 und 19 innerhalb des Datenprozessors sowie die meisten anderen noch zu erwähnenden Sammelleitungen 8 Bytes breit sind; das bedeutet, jede dieser Prozessordatensammelleitungcn besteht aus 72 Bitleitungen, die die gleichzeitige Übertragung von der jeweils ein Segment aus 8 Datenbytes bildenden 64 Datenbus and 8 Paritätsprüfbits ermöglichen.
Da es sich bei dem betrachteten Prozessor um einen mikroprogrammierten Prozessor handelt, werden Bewegung und Manipulation der Piogrammanweisungen und Daten innerhalb des Prozessors durch Mikrowörter gesteuert, die in einem Steuerspeicher 20 gespeichert sind. Die Mikrowörter werden einzeln aus dem Steuerspeicher 20 gelesen und in ein Steuerregister 21 gesetzt. Jedes Mikrowort steuert den Prozessor für eine" Maschinenzyklus. Die Steuerfelder in jedem Mikrowort werden durch einen Decodierer 22 zu elementaren Steuersignalen decodiert, die die verschiedenen zu den einzelnen Datensammelleitungen im Prozessor gehörenden Steuerglieder ein- und ausschalten. So bstimmt unter anderem jedes Mikrowort. welche Datensammelleitung während des betreffenden Maschinenzyklus einzuschalten ist. und somit auch die Datenbewegungsbahn während dieses Maschinenzyklus. Der Einfachheit halber sind die Datensammelleitungssteuerglieder in F i g. 1 nicht dargestellt. Jedes Mirkowort enthält außerdem ein Feld, das die Adresse des nächsten Mikrowortes führt. Diese nächste Mikrowortadresse wird einem Steuerspeicher-Adreßreeister (CSAR) 23 zugeführt, um das für den näcnsten Maschinenzyklus zu verwendende Mikrowort zu bestimmen.
Ein gegebenes Mikrowort kann außerdem ein Feld mit einer lokalen Speicheradresse enthalten, die gegebenenfalls an ein Arbeitsspeicher-Adreßregister (LSAR) 24 gegeben wird, um einen lokalen oder Arbeitsspeicher 25 zu adressieren. Den Arbeitsspeicher 25 stellt man sich am besten als eine Sammlung von adressierbaren Hochgeschwindigkeitsregistern vor, in denen verschiedene Arten von Daten. Zwischenergebnissen, Speicheradressen und dergleichen gespeichert werden, die im Laufe der Datenverarbeitung erzeugt oder gebraucht werden. Im vorliegenden Ausführungsbcispici wird beispielsweise angenommen, daß eines dieser Arbeitsspeicherregister als Instruktionszähler dient, um die Hauptspeicheradresse für die nächste Prograi imänstruktion im Hauptspeicher 17 festzuhalten.
Der erste .Schritt einer typischen Programminstruktion besteht in ihrem Abruf aus dem Hauptspiecher 17 und ihrer Übertragung in ein Instruktionsregister 26. Dazu wird die nächste Instruktionsadresse vom Instruktionszahler im Arbeitsspeicher 25 gelesen und in ein Specheradreßregister (SAR) 27 für den Hauptspeicher P gesetzt. Diese Adresse wird dem SAR 27 über ^ ein ß-Register 28 und einen Assembler 29 zugeführt. Die adressierte Instruktion wird vom Hauptspeicher 17 gelesen und dem Instruktionsregister 2f über die Datensammelleitungen 18 und 13. den Byteschieberund Formatumsetzer 14, die Datensammelleitungen 15 und 30, das Bestimmungsregister (D)3i und die Datensammelleitungen 32 und 33 zugeführt. Als Teil der !nstruktionsabrufoperationen werden die Operandenadressen aus den Basiswerten und den relativen Adreßwerten errechnet, die in der Instruktion enthalten "»irid, und diese Ergebnisse werden dufin in die entsprechenden Operandenadreßregister im Arbeitsspeicher 25 gesetzt. Der Instruktionszähler im Arbeitsspeicher 25 wird außerdem so auf den neuesten Stand gebracht, daß er die Adresse der nächsten Maschineninstruktion enthält. Der Operationscodeteil der Maschineninstruktion (OP-Code) im Instruktionsregister 26 wird an das CSAR23 gesendet, um die richtige Reihenfolge von Mikrowörtern zur Ausführung der fraglichen Maschineninstruktion aufzurufen. In einem mehr oder weniger typischen Fall wird die Instruktion ausgeführt durch Holen der Operanden aus dem Haupt'peicher 17 und Einsetzen in die betreffenden Register im Arbeitsspeicher 25. Die Operanden werden dann in der gewünschten Art und Weise manipuliert und das Ergebnis in den Arbeitsspeicher 25 zurückgesetzt und danach von dort gelesen und in die entsprechende Stelle im Hauptspeicher 17 geschrieben. Die Datenübertragung vom Arbeitsspeicher 25 in den Hauptspeicher 17 Tauft über das B-Register 28, den Assembler 29, die Datensammelleitung 34, den Bitschieber 35, die Datensammelleitungen 36 und 13, den Byteschieber und Formatumsetzer 14 und die Datensammelleitungen 15 und 16.
Bei einer Form der arithmetischen Additionsinstruktion beispielsweise werden die beiden zu addierenden Datenteile oder Operanden vom Hauptspeicher 17 gelesen und in den Arbeitsspeicher 25 gesetzt. Die beiden Operanden werden dann vom Arbeitsspeicher 25 angesteuert und in das /4-Register 38 und das B-Register 28 gesetzt. Die Werte in diesen beiden Registern werden dann durch die arithmetische und logische Einheit (ALU)39 addiert und das Ergebnis über die Datensammelleitung 40, das Bestimmungsregister 31 sowie die Datensammelleitungen 32 und 33 in den Arbeitsspeicher 25 zurückgesendet In manchen Fällen, ζ. B. bei der dezimalen Additionsinstruktion, haben die Operanden eine größere Länge als sechs Bytes, und dann werden mehrere 8 Byte große Segmente der Operanden von der ALU 39 in verschiedenen Maschinenzyklen verarbeitet und das Endergebnis schrittweise im Arbeitsspeicher 25 aufgebaut
Der Bitschieber 35 und der Byteschieberteil des Byteschiebers und Formatumsetzers 14 dienen normalen Datenschiebeoperationen bei der Ausführung verschiedener Programminstruktionen. Der Byteschieberteil des Byteschiebers und Formatumsetzer· 14 schiebt die Daten in Schritten von der Größe eines Byte und der Bitschieber 35 schiebt die Daten in Schritten von Bitgröße. Wenn beispielsweise eine Rechtsverschiebung von 29 Bitpositionen (3 Bytes und 5 Bits) erwünscht ist, würde der Byteschieberteil des Byteschiebers und Formatumsetzers 14 so eingestellt, daß er eine Rechtsverschiebung von 3Bytes vornimmt, und der Bitschieber 35 würde so eingestellt, daß er eine Rechtsverschiebung von 5 Bits vornimmt, so daß man eine Gesamtverschiebung von 29 Bits nach rechts hat. Für das vorliegende Beispiel eines 8 Byte großen Datenflusses ist der Byteschieberteil des Byteschiebers und Formatumsetzers 14 so ausgelegt, daß er eine
in Schiebung irgendwo zwischen 0 und 7 Bytes nach rechts oder links vornimmt. Der Bitschieber 35 ist so ausgelegt, daß er eine Schiebung irgendwo zwischen 0 und 7 Bits vornimmt. Größe und Richtung der Schiebung (links oder rechts) werden durch eine Schiebesteuerung 41 gesteuert, die wiederum Steuerinformation vom Steuerregister 21 und in einigen Fällen (beispielsweise Schiebeinstruktionen) vom Instruktionsregister 26 empfängt.
Der Bitschieber 35 und der Byteschieberteil des
;o Byteschiebers und Formatumsetzers 14 arbeiten im Gegensatz zum Schieberegister nach dem Prinzip des Durchlaufs; mit anderen Worten, 8 Datenbytes treten in den Schieber ein, laufen parallel hindurch und erscheinen auf der Schiebeausgangssammelleitung in kontinuierlicher Bewegung und ohne Rückgriff auf Schiebe- oder Taktimpulse. Die Verschiebung erfolgt durch aus logischen Kombinationsschaltungen aufgebaute Schiebeelemente, die die Leiter der Schiebeeingangsdatensammelleitung mit entsprechenden Leitern
jo derSchiebeausgarigsdatensammelleitung verbinden.
Geeignete Bauformen für den Byteschieberteil des Byteschiebers und Formatumsetzers 14, für den Bitschieber 35 und die Schiebesteuerung 41 sind in den US-PS 33 11 896 und 39 16 388 sowie in einem Artikel
j5 von E. M. Shimp und N. B. SHz in IBM Technical Disclosure Bulletin, März 1976, Seiten 3186 bis 3194, beschrieben.
In dem US-Patent 39 16 388 werden Einzelheiten einer Konstruktion für den Byteschieberteil des Byteschiebers und Formatumsetzers 14 und für den Teil der Schiebesteuerung 41 beschrieben, der diesen Byteschieberteil steuert. Außerdem liefert dieser Byteschieberteil darstellungsgemäß eine automatische Ausrichtung auf Datengrenzen bei der Datenübertragung von und zum Hauptspeicher 17. Diese Ausrichtungsfunktion ist zusätzlich zu den oben beschriebenen Datenschiebeoperationen vorgesehen und gehört normalerweise zur Ausführung der verschiedenen Maschineninstruktionen. Der genannte Artikel von Shimp und
so Sliz beschreibt eine besonders nützliche Konstruktionsform der Schiebe- und Auffüllsteuerungen für den Byteschieberteil des Byteschiebers und Formatumsetzers 14 und den Bitschieber 35, die hier Teil der Schiebesteuerung 41 sind.
In keiner der genannten Literaturstellen wird jedoch das neuartige Formatumsetzungsgerät der vorliegenden Erfindung oder die neuartige Kombination dieses Gerätes mit einem zur Datenverschiebung benutzten Byteschieber vorgeschlagen oder beschrieben. Insbesondere befassen sich diese Quellen nur mit dem Byteschieberteil des Byteschiebers und Formatumsetzers 14 und nicht mit dem Formatumsetzerteil dieser Einheit
Wie bereits in der Einleitung ausgeführt wurde, stehen vom E/A-Kanal 11 an den Hauptspeicher 17 oder umgekehrt übertragene Daten im ungepackten Dezimalformat Daten in diesem Format sind in Fig.2 gezeigt, wo der Buchstabe Zein 4 Bit großes Zonenfeld,
der Buchstabe D ein 4 Bit großes Digitalfeld und der Buchstabe 5 ein 4 Bit großes Zeichencodefeld bezeichnen. F i g. 2 zeigt insbesondere ein typisches Datenbild, wie es auf der 8 Byte großen Datensammelleitung 12 oder der 8 Byte großen Datensammelleitung 19 erscheint, in einigen Fällen wird jedoch das Vorzeichenfeld 5durch ein Zonenfeld Zersetzt.
Unglücklicherweise kann die ALU39 keine Rechenoperationen mit numerischen Daten im Zonenformat ausführen. Die Zonenfelder Z würden die ALU 39 zu Fehlergebnissen führen. Daher müssen diese gezonten Dezimaldaten in ein gepacktes Dezimalformat umgesetzt werden, bevor sie zur Ausführung von Rechnungen an die ALU39 gesendet werden. Fig.3 zeigt das gepackte Dezimalformat für eine 8 Byte große Folge numerischer Daten. In einigen Fällen kann das Vorzeichenfeld 5 durch ein weiteres 4 Bit großes Zahienfeid ersetzt werden. Aus einem Vergleich der F i g. 2 und 3 miteinander ist zu ersehen, daß die Umsetzung vom gezonten in das gepackte Format (häufig auch als Packungsoperation bezeichnet) dadurch erfolgt, daß man die Zonenfelder löscht und die Zahlenfelder nebeneinander zusammenschiebt.
Das umgekehrte Probelm tritt auf, wenn die Ergebnisse einer Berechnung an ein E/A-Gerät 10 gesendet werden soll. Das E/A-Gerät braucht die Daten im Zonenformat, um die Zahlen von Buchstaben, graphischen Zeichen und Steuerzeichen unterscheiden zu können. Die numerischen Ergebnisdaten müssen somit aus dem gepackten Format in das ungepackte Format umgesetzt werden (häufig das Entpacken genannt), bevor sie an das E/A-Gerät 10 gesendet werden können. Dazu müssen die Zahlenfelder auseinandergezogen und der für numerische Daten eindeutige Zonencode in die so geschaffenen Lücken eingeschoben werden.
Jedes 4 Bit große Zahlenfeld im gezonten oder gepackten Format enthält eine binär codierte Dezimalziffer. Die Beziehung zwischen den 4 Bit großen Binärcodes und den verschiedenen Dezimalwerten ist in der Tabelle der Fig. 4 aargestellt. Die ersten 10 der 16 möglichen Kombinationen aus 4 Bits werden zur Darstellung der Dezimalzahlen 0 bis 9 verwendet. Die übrigen sechs Kombinationen dienen für Vorzeichencodes im Vorzeichenfeld S, in der im unteren Teil der Fig.4 gezeigten Art. Weiter wird hier angenommen, daß der eindeutige Zonenfeldcode für numerische Daten »1111« lautet. Somit wird angenommen, daß jedes Zonenfeld Z in Fig.2 das Bitmuster »1111« enthält
Da ein 4-Bit-System inhärent ein Hexadezimalsystem ist (Basis 16), sind die in Fig.4 dargestellten Kombinationen der 4 Bits der Einfachheit halber manchmal durch ihren Hexadezimalwert wiedergegeben. Diese Hexadezimalzeichen (oder kurz auch hex) sind in der zweiten Spalte in Fig.4 aufgeführt. Der eindeutige numerische Datenzonencode »1111« wird somit manchmal auch durch das Hex-Zeichen »F« dargestellt.
Eine weitere Voraussetzung sollte berücksichtigt werden, nämlich die relative Bedeutungsordnung der verschiedenen Bytes, Zahlen und Bits. Nach Darstellung in den F i g. 2 und 3 sind die Bytes von links nach rechts numeriert Der Grad oder die Bedeutungsordnung nehmen jedoch in Gegenrichtung zu, nämlich von rechts nach links. Byte 7 ist somit das wertniederste Byte und Byte 0 Jas werthöchste. Dieselbe Numerierungsvereinbarung gilt auch für die Zahlenfelder und die Bits innerhalb eines Cyte. Diese sind von links nach rechts von 0 bis 7 durchnummeriert, wobei Bit 0 das werthöchste Bit and Bit 7 das wertniederste Bit im Byte sind.
Manchmal sollen Rechenoperationen von der ALU 39 mit den Daten im reinen Binärformat ausgeführt werden. In solchen Fällen wird das Zonendatenformat, das vom E/A-Gerät geliefert wird, zuerst in ein gepacktes Format umgesetzt, und dann werden die
ίο Daten im gepackten Format in das reine binäre Format umgesetzt. Um die rein binären Ergebnisse zur Rückgabe an das E/A-Gerät vorzubereiten, werden sie zuerst in das gepackte Dezimalformat und dann von diesem in das Zonendezimalformat umgesetzt. Da sie für die vorliegende Erfindung ohne besondere Bedeutung sind, werden die rein binären Rechenoperationen hier nicht weiter erwähnt.
Die Urr.setzoperationen vom Zonenformat in das gepackte Format und umgekehrt, werden durch bestimmte Programminstruktionen in Maschinensprache ausgelöst, die in der Maschinenspracheversion des Benutzungsprogrammes enthalten sind, das im Hauptspeicher 17 steht, wenn die Programmausführung beginnt. Eine Umsetzung vom Zonenformat in das gepackte Format wird eingeleitet durch eine Instruktion »Packen«, die in der Maschinensprache das in Fig.5 gezeigte Format hat. Durch diese Instruktion wird das Format des zweiten Operadnen vom Zonenformat in das gepackte Format geändert und das Ergebnis der Umsetzung an die Stelle des ersten Operanden im Hauptspicher 17 gesetzt. Hierbei handelt es sich um eine SS-Instruktion, in der die umzusetzenden Daten im Hauptspeicher 17 stehen und die umgesetzten Daten wieder in den Hauptspeicher 17 zurückgestellt werden.
B2 und Dl sind der Grundadreßwert und der relative Adreßwert (Basis und Displacement), die die Hauptspeicherstartadresse für den zwiten Operadnen (die umzusetzenden Daten) bestimmten, und B 1 und D 1 sind der Grundadreßwert und der relative Adreßwert, die die Hauptspeicherstartadresse für den ersten Operanden bestimmen (die Speicherstelle, die die umgesetzten oder gepackten Daten empfangen soll). L 1 und L 2 sind 4 Bit große Operandenlängenfelder. L2+1 gibt die Länge des umzusetzenden Datens;egmentes in Bytes an und L1 +1 die Länge der Speicherstelle in Bytes, die die umgesetzten Daten empfangen soll. Wenn der Längenwert L 1 zu kurz ist, um alle wertdarstellenden Zahlen der umgesetzten L 2-Daten aufzunehmen, werden die übrigen höherwertigen Stellen ignoriert
Die umgekehrte Umsetzung, nämlich vom gepackten in das Zonenformat, wird eingeleitet durch eine Instruktion »Entpacken«, die in Maschinensprache das in F i g. 6 gezeigte Format hat Dabei handelt es sich um dasselbe Format wie für die Packungsinstruktion und die verschiedenen Felder darin haben dieselbe Bedeutung, es wird aber natürlich ein anderer eindeutiger Wert für den OP-Code verwendet Durch Auftreten dieser Entpackungsinstruktion werden die Daten des zweiten Operanden vom Hauptspeicher 17 geholt deren Format vom gepackten in das Zonenformat geändert und die so umgsetzten Daten in die Stelle des ersten Operanden im Hauptspeicher 17 gesetzt
Bei den heutigen hochintegrierten Datenprozessoren werden die Daten byteweise gepackt und entpackt Im Datenprozessor IBM System/360 Modell 50 beispielsweise, werden die Daten in Paaren von 4 Byte großen Arbeitsregistern und einem 1 Byte großen Verschieber
umgesetzt, der Daten in Schritten von jeweils einem halben Byte manipulieren kann. Insbesondere der Verschieber kann jedes der eingegebenen Halbbytes durchleiten oder umsetzen oder jedes der eingegebenen Halbbytes auf die entgegengesetzte Halbbyte-Ausgangsposition geben. Vier der umzusetzenden Datenbytes werden aus dem Hauptspeicher geholt und in das erste Arbeitsregister gesetzt. Die Daten in diesem Arbeitsregister werden dann durch den Verschieber byteweise oder halbbyteweise manipuliert und ihre Ausgabe in das zweite Arbeitsregister gegeben, um das gewünschte Ergebnis schrittweise aufzubauen. Mit Ausnahme desjenigen Bytes, das das Vorzeichenfeld enthält, ist für jedes Halbbyte-Zahlenfeld ein separater Maschinenzyklus erforderlich.
Als weiteres Beispiel sei der Datenprozessor 1MB Syste-Ti/370 Modell 195 erwähnt, das einen 1 Byte (YtT\i\&r* 7 r\\\\f*ncr-h'ie*\-\i*r· \\r>r\ air» !-»olKkwtc» nrnRöC
p* I KJ tf %* t * 1 J Kt ttt K* llUWIIt ^ KJ ^ ■ KJ t t K*i W 111 Il I KJ KJ f t K* A^ t KJ (^ ^ *J
Schräglaufregis>er für das Packen und Entpacken verwendet. D.-- Eingänge zu beiden Elementen sind mit einer logischen Einheit verbunden und ihre Ausgänge sind an eine Ergebnissammelleitung angeschlossen. Der Zahlenschieber hat dieselbe Charakteristik wie der Schieber im System/360 Modell 50, während das Schräglaufregister dazu benutzt wird, entweder das werthohe Halbbyte oder das wertniedrige Halbbyte für die Übertragung auf die Ergebnissammelleitung in einem nachfolgenden Maschinenz'klus zu speichern.
Mit Ausnahme des Vorzeichen-Bytefeldes wird eine Packungsoperation im Modell 195 dadurch durchgeführt, daß man das erste Datenbyte auf die logische Einheit gibt, von wo das wertniedere Halbbyte in das Schräglaufregister gesetzt wird. Während des folgenden Maschinenzyklus wird das nächste Datenbyte durch die logische Einheit in den Zahlenschieber gesetzt, wo das wertnicdere Halbbyte auf die Position des werthohen Halbbyte der Ergebnissammelleitung gesetzt und mit dem Inhalt des Schräglaufregisters (in die Position des wertniederen Halbbytes der Ergebnissammelleitung gesetzt), an ein Ergebnisregister übertragen wird. Dieser Prozeß wird dann für die übrigen Paare entpackter Datenbytes wiederholt, wobei zum Aufbau eines Ergebnisbyte zwei Maschinenzyklen erforderlich sind.
Zum Entpacken im Model! 195 wird jeweils ein Byte unter erneuter Ignorierung des Vorzeichenfeldbytes an die logische Einheit übertragen, die dann über den Zahlenschieber das werthohe Halbbyte in das Schräglaufregister und das wertniedere Halbbyte in die wertniedere Halbbyteposition auf der Ergebnissammelleitung setzt. Die werthohe Halbbyteposition der Ergebnissammelleitung wird mit einem erzwungenen numerischen Zeichenzonencode gespeist. Das resultierende Byte vom Zahlenschieber wird dann an das Ergebnisregister gesendet. Fm folgenden Zyklus wird der Inhalt des Schräglaufregisters auf die wertniedere Halbbyteposition der Ergebnissammelleitung geleitet und zusammen mit dem erzwungenen werthohen Halbbytezonencode an den Ergebnispuffer übertragen. Die übrigen Quellenwortbytes werden ähnlich verarbeitet.
Eine derartige byteweise Packungs- bzw. Entpakkungsoperation wird vermieden, wenn eine nach der hier gegebenen technischen .Lehre aufgebaute Formatumsetzeinheit verwendet wird; diese Einheit ist mit der Byte-Schiebeeinheit integriert (s. Fig. 1), und verwendet zum Teil deren Funktionen.
Die F i g. 7a bis 7d zeigen die Datenpackungsmöglich
keit des Byteschiebers und Formatumsetzers 14. Diese Figuren gelten für den angenommenen Fall, daß 16 Bytes gezonter Dezimaldaten umgesetzt oder gepackt werden sollen. In diesem Fall hat das Längenfeld L 2 in der Packungsinstruktion (F i g. 5) den Wert »1111« oder hexadezimal »F«. Es wird weiter angenommen, daß sich die Speicherstellen Ll und L 2 im Hauptspeicher 17 nicht überlappen und daß der Wert L1 in der Packungsinstruktion ebenfalls »F« ist. Da der Prozessordatenfluß nur 8 Bytes breit ist. müssen diese 16 Bytes in Gruppen von jeweils 8 Bytes behandelt werden. Fig. 7a zeigt den Fall für die werthohen 8 Bytes und F i g. 7b den Fall für die wertniederen 8 Bytes.
Zu Anfang werden die werthohen 8 Bytes der Daten im Zonenformat aus dem Hauptspeicher 17 gelesen unc in das A-Register 38 gesetzt. Während des nächsten Maschinen- oder Mikrowortzyklus werden die wertnieeieren ο Kyteü Ger uaten im /.oncriiorrMut dünn voni Hauptspeicher 17 gelesen und in ein Kurzzeit-Halteregister im Arbeitsspeicher 25 gesetzt. Während des nächsten Mikrowortzyklus werden die werthohen 8 Bytes im /\-Register 38 über den Byteschieber und Formatumsetzer 14 geleitet, der zu dieser Zeit die Packung ohne die in F i g. 7a gezeigte Vorzeichenoperation vornimmt. Diese Daten im A-Register 38 werden über einen Assembler 29, die Datensammelleitung 34 und den Bitschieber 35, der in diesem Fall auf eine Nullschiebung oder eine direkte Datenübertragung eingestellt ist. dem Byteschieber und Formatumsetzer 14 zugeführt. Die obere Datenfolgetabelle in Fig. 7a stellt die Daten im Zonenformat auf der Schieber/Umsetzer-Dateneingangssammelleitung 13 dar und die untere Reihenfolgetabelle in Fig. 7a zeigt die resultierenden gepackten Daten auf der Schieber/Umsetzer-Datenausgangssammelleitung 15. Die Bytebezeichnungen (Byte 0. Ryte 1. Byte 2 usw.) beziehen sich auf die Leiter in den Sammelleitungen 13 und 15 und nicht auf die Datenfelder in den verarbeiteten Daten. Die am Ausgang des Byteschiebers und Formatumsetzers 14 erscheinenden gepackten Daten, werden in ein Arbeitsspeicherregister im Arbeitsspeicher 25 gesetzt, das mit LS 1 bezeichnet wird.
Die übrigen wertniederen 8 Datenbytes werden während des nächsten Mikrowortzyklus in das gepackte Format umgesetzt. Diese Bytes werden dann vom Kurzzeit-Halteregister im Arbeitsspeicher 25 gelesen und über das /!-Register 38, den Assembler 29 und den Bitschieber 35 (Nullschiebung) an den Byteschieber und Formatumsetzer 14 übertragen. Dieser führt jetzt das Packen mit der in Fig. 7b gezeigten Vorzeichenoperation durch und das gepackte Ergebnis wird dann in ein zweites Arbeitsspeicherregister L52 im Arbeitsspeicher 25 gesetzt. Die obere Reihenfolgetabelle in F i g. 7b zeigt die Zonendaten auf der Schieber/Umsetzer-Dateneingangssammelleitung 13 und die untere Ablauftabelle die resultierenden gepackten Daten auf der Schieber/Umsetzer-Datenausgangssammelleitung 15.
Schaltungstechnisch besteht der einzige Unterschied zwischen den Packungsoperationen in den F i g. 7a und 7b in der zusätzlichen Einrichtung für die Behandlung des Vorzeichenfeldes Sim Falle der F i g. 7b.
Die gepackten Daten in den Arbeitsspeicherregistern LS1 und LS 2 werden dann zu den in den F i g. 7c und 7d gezeigten Ergebnissen eingerichtet Insbesondere werden die Daten im Arbeitsregister LS1 nach Art einer zyklischen Vertauschung um 4 Bytes nach links verschoben und danach der werthohe Teil der Daten mit den Daten im Arbeitsregister LS 2 zu dem in
F i g. 7d gezeigten Ergebnis gemischt Die verschobenen Daten, bei denen der werthohe Teil auf 0 gesetzt ist werden dann in das Arbeitsregister LSI als das in F i g. 7c gezeigte Frgebnis zurückgesetzt Während der nächsten beiden Mikrowortzyklen wird dann der Inhalt der Arbeitsregister LS1 und LS 2 in den Hauptspeicher 17 geschrieben, beginnend an der Stelle, die durch die Felder BX und Dl in der Packungsinstruktion bezeichnet ist Damit sind die Daten im angenommenen Beispiel fertig gepackt
Wenn der Längenwert L 1 in der Packungsinstruktion zu klein ist um die Speicherung aller wertdarstellenden Sielten des gepackten Ergebnisses zu ermöglichen, werden die restlichen werthohen Ergebniszahlen ignoriert Wenn L 1 nicht größer als 7 ist (Datenlänge nicht menr als 8 Bytes), dann werden nur die Ergebnisdaten im Arbeitsspeicherregister LS 2 in den Hauptspeicher 17 zurückgesetzt Weiterhin braucht nur die Packungsoperation mit Vorzeichenumwandlung in Fig.7b ausgeführt zu werden, wobei das Arbeitsspeicherregister LS 2 für das gepackte Ergebnis verwendet wird, wenn der Längenwert L 2 für die Originaldaten nicht größer als 7 ist (d.h. Datenlänge nicht mehr als 8 Bytes).
In den F i g. 8a bis 8d liegt die umgekehrte Situation vor, in der Daten vom gepackten Dezimalformat in das Zonendezimalformat umgesetzt werden müssen. Im gezeigten Beispiel wird angenommen, daß 8 Datenbytes zu entpacken sind, die Felder L 1 und L 2 sich im Hauptspicher nicht überlappen und daß der Wert L 1 auf eine Ergebnisspeicherlänge von 16 Bytes eingestellt ist Unter diesen Voraussetzungen werden die durch die Entpackungsinstruktion bezeichneten 8 Datenbytes vom Hauptspeicher 17 gelesen und während des ersten Mikrowortzyklus in das Λ-Register 38 gesetzt Während des nächsten Mikrowortzyklus werden die Daten im A-Register 38 ein erstes Mal durch den Byteschieber und Formatumsetzer 14 geleitet, zur Erzeugung des in Fig.8a gezeigten Ergebnisses. In diesem Fall ist der Byteschieber und Formatumsetzer 14 auf Entpackung mit Vorzeichen eingestellt. Die obere Ablauftabelle in F i g. 8 zeigt die gepackten Daten auf der Schieberumsetzer-Dateneingangssammelleitung 13 und die untere Abiauftabelle zeigt die Zonenergebnisdaten auf der Schieberumsetzer-Datenausgangssammelleitung 15. Diese Ergebnisdaten werden in das Arbeitsregister LS2 im Arbeitsspeicher 25 gesetzt. Der Teil des Bytes 7 dieser Ergebnisdaten hat keine Bedeutung und wird hinterher eliminiert.
Um die restlichen Daten zu entpacken, müssen die gepackten Daten über den Byteschieber und Formatumsetzer 14 während eines weiteren Mikrowortzyklus ein zweites Mal in das /4-Register 38 geleitet werden, um das in F i g. 8b gezeigte Ergebnis zu erzeugen. In diesem Fall stellt die obere Folgetabelle nicht die Daten auf der Schieberumsetzer-Dateneingangssammelleitung 13 dar. Für dieses Entpacken ohne Vorzeichen, wird der Byteschieber und Formatumsetzer 14 zu zwei Operationen veranlaßt. Zuerst schiebt er die Daten 5 Bytes nach rechts und dann führt er das Entpacken ohne Vorzeichen mit diesen verschobenen Daten aus. Die Schaltung ist so ausgelegt, daß diese beiden Funktionen intern innerhalb des Byteschiebers und Formatumsetzers 14 ablaufen können. Die obere Folgetabelle in F i g. 8b stellt den Teil der interessanten Daten nach dieser internen Rechtsverschiebung um 4 Bytes, aber vor dem Entpacken dar. Fig.8b ist so dargestellt, um die Tatsache zu betonen, daß außer der Behandlung des Vorzeichenfeldes S zu dem in Fig.8b dargestellten Entpacken dieselbe Maschinenausrüstung verwendet wird wie für den ersten in Fig.8a gezeigten Durchlauf. Das Ergebnis des Entpackens ohne Vorzeichenoperation wird in das Register LSI im Arbeitsspeicher 25 gesetzt
Die resultierenden gezonten Daten im Arbeits-Speicherregister LS1 und LS 2 werden danach so manipuliert, daß man die in den Fig.8c und 8d
ίο gezeigten Bedingungen erhält Die Daten in jedem Arbeitsspeicherregister LS1 und LS 2 werden in einer zyklischen Verschiebung um 1 Byte so nach rechts verschoben, daß das ursprüngliche wertniedere Byte zum werthohen Byte wird. Byte 0 der verschobenen Daten im LSI wird dann mit den Bytes 1 bis 7 der verschobenen Daten im LS 2 kombiniert und das Ergebnis in das Register LS 2 zurückgespeichert, um dort den in Fig.8c gezeigten Zustand zu erzeugen. Umgekehrt wird das Byte 0 der verschobenen Daten im LS2 mit den Byts ί bis 7 der verschobenen Daten im LSI kombiniert und das Ergebnis in das LSI zurückgesetzt wobei das wertniedere, 4 Bit große Feld von Byte 0 auf 0 gesetzt wird, um den in Fig.8d gezeigten Zustand herzustellen. Während der nächsten Bytemikrowortzyklen wird danach der Inhalt der Register LSI und LS2 registerweise in den Hauptspeicher 17 übertragen und dort an Stellen gespeichert, die mit der durch die Werte B1 und D1 in der Entpackungsinstruktion bestimmten Bytestelle beginnen. Damit ist das Entpacken für das angenommene Beispiel beendet.
Da durch den Wert L 1 der Entpackungsinstruktion eine Ergebnisspeicherlänge von maximal 16 Bytes angegeben werden kann, ist aus den F i g. 8a bis 8d zu entnehmen, daß mit einer Entpackungsinstruktion maximal 8 Datenbytes entpackt und gespeichert werden können. Wenn der Längenwert L 2 in der Entpackungsinstruktion eine größere Länge als 8 Datenbytes angeben sollte, werden die über 8 Bytes hinausgehenden werthohen Bytes ignoriert. Wenn aus irgndeinem anderen Grund die Speicherlänge des Ergebnisses L 1 zu kurz ist, um alle wertdarstellender! Bytes der entpackten Daten aufzunehmen, werden die werthöheren Bytes ignoriert. Wenn der Wert L1 eine Ergebnisspeicherlänge von 8 Bytes oder weniger angibt, dann werden nur die Ergebnisdaten irn Arbeitsspeicherregister LS2 in den Hauptspeicher 17 zurückgesetzt.
Im Zusammenhang mit den Fig.9 und 10 wird anschließend das Bitkreuzungsproblem besprochen, das gelöst werden mußte, um das hier beschriebene" Ausführungsbeispiel der Erfindung zu bekommen. Fig.9 zeigt im einzelnen die Art der für Byte 0 in Fig. 7a benötigten Umsetzung, während Fig. 10 im einzelnen die für Byte 1 der Fi g. 7a benötigte Umsetzung darstellt Nach Darstellung in F i g. 9 müssen die Bits 4 bis 7 von Byte 0 so verschoben werden, daß sie als Bits 4 bis 7 von Byte 3 erscheinen. Somit wird jedes Bit nur um eine ganze Zahl von Bytes verschoben. Nach Darstellung in Fig. 10 muß Bit 4 von Byte 1 so verschoben oder manipuliert werden, daß es zum Bit 0 von Byte 4 wird, Bit 5 von Byte 1 muß so verschoben werden, daß es zum Bit 1 von Byte 4 wird usw. Das bedeutet mit anderen Worten, daß die 4 wertniederen Bits (Bits 4 bis 7) von Byte 1 gekreuzt werden müssen.
um zu den 4 werthohen Bits (Bits 0 bis 3) des Byte 4 zu werden. In Stellenpositionen ausgedrückt muß die wertniedere Stelle (Bits 4 bis 7) von Byte 1 gekreuzt werden, um zur werthohen Stelle (Bits 0 bis 3) des Byte 4
werden.
In den F i g. 7a und 7b sind die kreuzungsfreien Fälle durch ausgezogene Linien dargestellt, die die oberen und unteren Folgetabellen miteinander verbinden, während die Kreuzungsfälle durch die unterbrochenen Linien dargestellt sind, die die oberen und unteren Folgetabellen verbinden. Wie aus jeder Figur zu ersehen ist, wechseln die kreuzungsfreien Fäüe mit den Kreuzungsfällen ab, wenn man in der Zeile der Eingabebytes nach unten geht. Nach Darstellung in to Fig.7b stellt das Vorzeichenfeld S außerdem einen weiteren Kreuzungsfall, aber in entgegengesetzter Richtung dar, nämlich von einer werthohen Steilenposition in eine wertniedere Stellenposition.
Nach Darstellung in den F i g. 8a und 8b tritt das Bit- oder Stellenkreuzungsproblem auch beim Entpacken auf, wie es durch die unterbrochenen Linien dargestellt ist, die die obere und untere Folgetabelle verbinden. In diesem Falle ist jedoch mit Ausnahme des Vorzeichenfeides S die Kreuzungsrichtung der in Fig. iö 2u dargestellten entgegengesetzt. Die werthohen Bits (Bits 0 bis 3) kreuzen in die Positionen der wertniederen Bits (Bits 4 bis 7). Für das Vorzeichenfeld S in Fig.8a verläuft die Kreuzungsrichtung von unten nach oben, d. h, eine Kreuzung von Byte 7 nach Byte 6. Wie oben schon gesagt, hat vom Datenstandpunkt aus das Byte 7 der unteren Folgetabelle in Fig.8 keine Bedeutung. Schaltungstechnisch erfolgt die Verbindung zum Byte 7 so. daß dieselbe Maschinenausrüstung für dieses Byte für beide Fälle verwendet wird, nämlich für das Entpacken mit und ohne Vorzeichen.
Diese Kreuzungen von werthohen zu wertniederen und wertniederen zu werthohen Bitpositionen stellen ein ernsthaftes Problem für die Realisierung eines kombinierten Datenschiebers und Formatumsetzers dar, insbesondere, wenn ein solches Gerät in Form einer hochintegrierten Schaltung mit integrierten Schaltungschips ausgeführt werden soll.
In Fig. 11 ist ein bevorzugtes Konstruktionsbeispiel des Byteschiebers und Formatumsetzers 14 der F i g. I -to dargestellt, mit dem das Bitkreuzungsproblem gelöst wird. Dazu enthält der in Fig. 11 im einzelnen dargestellte Byteschieber und Formatumsetzer 14 mehrere integrierte Schaltungschips für den Empfang und die Verarbeitung der Datenbits in den 8 Datenbytes auf der Schieber/Umsetzer-Dateneingangssammelleitung 13, und zwar ein erstes integriertes Schaltungschip 42 für das erste Datenbit (Bit 0) und das fünfte Datenbit (Bit 4), ein zweites integriertes Schaltungschip 43 für das zweite (Bit 1) und sechste (Bit 5) Datenbit, ein drittes so integriertes Schaltungschip 44 für das dritte (Bit 2) und siebte (Bit 6) Datenbit und ein viertes integriertes Schaltungschip 45 für das vierte (Bit 3) und das achte (Bit 7) Datenbit. Die 8 Paritätsprüfbits werden empfangen und verarbeitet durch eine Schaltung, die auf einem weiteren integrierten Schaltungschip 46 liegt.
Jede Eingangsleitergruppe 13a bis 13/ besteht aus 8 Leitern zur gleichzeitigen Weiterleitung der richtigen Datenbits und Paritätsbits auf der Eingangssammelleitung 13, an die betreffenden integrierten Schaltungschips 42 bis 46. So gibt z. B. die Leitergruppe 13a gleichzeitig das Bit 0 aller 8 Datenbytes an das integrierte Schaltungschip 42 und die Leitergruppe 13e alle Bits 4. Ähnlich enthält jede Leitergruppe 15a bis 15/ einen Satz von 8 Leitern, um Datenbits und Paritätsbits von den integrierten Schaltungschips 42 bis 46 gleichzeitig auf die Schiebcr/Umsetzer-Datenausgangssammclleitung 15 leiten zu können. Die Leitergruppen 13a bis 13/ stellen Untergruppen der Leiter in der Schieber/Umsetzer-Dateneingangssammelleitung 13 und die Ausgangsleitergruppen 15a bis 15/ Untergruppen der Leiter in der Schieber/Umsetzer-Datenausgangssammelleitung 15 dar.
Jedes der Chips 42 bis 45 enthält eine erste Schiebeschaltung zum gleichzeitigen Verschieben der Datenbits, eine erste Formatumsetzungsschaitung zur gleichzeitigen Ausrichtung der relativen Positionen ausgewählter Datenbits, in der zur Umsetzung von Zonendezimalformat in das gepackte Dezimalformat benötigten Art und eine zweite Formatumsetzungsschaitung zur gleichzeitigen Ausrichtung der relativen Positionen ausgewählter Datenbits in der zur Umsetzung vom gepackten Dezimalformat in das Zonendezimalformat benötigten Art Außerdem enthält jedes rijr Chips 42 bis 45 eine Steuerschaltung zur wahlweisen Einschaltung entweder eines Schiebekreises, der ersten Formatumsetzungsschaitung oder der zweiten Formatumsetzungsschaitung auf einem solchen Chip zu einem gegebenen Zeitpunkt Diese Steuerschaltung wird durch Steuersignale gesteuert die an jedes der Schaltungschips 42 bis 45 über die Steuersignalsammelleitungen 47, 48 und 49 angelegt werden und von der Schiebesteuerung 41 (Fig.3) stammen, die die betreffenden Steuersignale für diese Sammelleitungen liefert
Die Schiebesteuersammelleitung 47 besteht aus 4 Leitern, von denen drei ein codiertes 3 Bit großes Signal für den Betrag der Verschiebung führen und die vierte ein Richtungssignal für Links/Rechsschiebung. Die Leitung 48 für die Auffüllanzeige besteht aus 8 Leitern, einen für jedes Datenbyte, zur Identifizierung der mit Nullen bzw. Einsen aufzufüllenden Datenbytes. Die Packungs/Entpackungssteuerleitung 49 besteht aus 3 Leitern, die ein 3 Bit großes Signal führen, das durch seine Codierung anzeigt welche der nachfolgend aufgeführten Operationen die Chips 42 bis 45 ausführen sollen: eine Schiebung, eine Packung mit Vorzeichen, eine Packung ohne Vorzeichen, eine Entpackung mit Vorzeichen oder eine Entpackung ohne Vorzeichen.
Die eindeutigen Gruppierungen der Schaltungen für die verschiedenen Datenbits auf den verschiedenen integrierten Schaltungschips 42 bis 45 ermöglichen das Packen und Entpacken mehrerer Datenbytes mit integrierten Schaltungschips, die ein Minimum an Eingangs/Ausgangsanschlüssen aufweisen. Wenn die Schaltung für die Bits der Position 4 beispielsweise nicht auf demselben integrierten Schaltungschip untergebracht ist wie die Schaltung für Bit 0, dann müßten bei einem Daienfluß von 8 Byte Breite 8 Leiter zwischen dem Bit-0-Chip und dam Bit-4-Chip laufen, um die Bitkreuzungen zu ermöglichen, die für die Packung und Entpackung erforderlich sind. Das würde 8 zusätzliche Eingangs/Ausgangsanschlüsse auf jedem der Chips für Bit 0 und Bit 4 erfordern.
Durch die in F i g. 11 gezeigte Lösung zum Packen der entsprechenden Bits der werthohen und wertniederen Bytehälfte auf demselben Chip entfallen diese Verbindungsleitungen und die zugehörigen Eingangs/Ausgangsanschlüsse an den Chips. Mit anderen Worten, wenn die Schaltkreise für die ersten Bits in den werthohen Halbbytes, nämlich die O-Bits, auf demselben integrierten Schaltungschip 42 untergebracht sind wie die Schaltungen für die ersten Bits in den wertniederen Halbbytes, nämlich die 4er-Bits, dann kann man die notwendigen Kreuzungen vom Bit 0 nach Bit 4 und Bit 4 nach Bit 0 ausführen, ohne das Chip zu verlassen, uns so zusätzliche Eingangs/Ausgangsverbindungen am Chip
erübrigen. Entsprechendes gilt für die anderen Paarungen der Bits in den werthohen und wertniederen Halbbytes in Fig.Π für die übrigen integrierten Schaltüngschips 43,44 und 45.
Die Schaltung auf jedem der 4 integrierten Schaltungschips 42 bis 45 ist gleich aufgebaut, der einzige Unterschied zwischen den einzelnen Chips besteht in der Wahl der jeweiligen Eingangsdatensammelleitung und der Ausgangsdatensammelleitung, die an das Chip angeschlossen sind. Zur Erklärung reicht somit hier die Betrachtung einer einzigen Schaltung auf einem Chip; als Beispiel wird das Chip 45 ausgewählt
In Fig. 12 ist im einzelnen die Konstruktion der auf dem integrierten Schaltungschip 45 untergebrachten Schaltung gezeigt Bei der normalen Datenverschiebung bewegen sich die Bits 3 von der Schieber/Umsetzer-Dateneingangssammelleitung 13 über die Leitergruppe 13c/, einen Byteschieber 50 der ersten Stufe, die Leitergruppe *1 und einen Byteschieber 52 der zweiten Stufe sowie eine Leitergruppe 15c/zur Schieber/Umsetzer-Datenausgangssammeileitung 15. Parallel dazu bewegen sich die Bits 7 von der Schieber/Umsetzer-Dateneingangssammelleitung 13 zur Schieber/Umsetzer-Datenausgangssammelleitung 15 über eine Leitergruppe 13Λ, einen Byteschieber 53 der ersten Stufe, einer Leitergruppe 54, einen Byteschieber 55 der zweiten Stufe und eine Leitergruppe 15Λ. Bei normalen Datenverschiebungen kann jeder der Schieber 50 und 53 der ersten Stufe eine Rechtsverschiebung von null, einem, zwei oder-drei Bytes vornehmen. Die Schieber 52 und 55 der zweiten Stufe können eine Rechtsverschiebung von 0 oder von 4 Bytes wrnehmen. Kombiniert können also die Schieber 5ft und 52 der ersten bzw. zweiten Stufe für die Bits 3 einer Äechtsverschiebung und irgendeinen Betrag zwischen 0 und 7 Bytes vornehmen. Dasselbe gilt für die Schieber 53 und 55 der zweiten Stufe bei den Bits 7.
Wie weit die Schieber (Verschiebeeinrichtungen) 50, 52, 53 und 55 nun schieben, das wird von binären Signalen auf den Ausgangsleitungen von einem Schiebebetragsdecodierer 56 gesteuert, der die binär codierte Information auf der Schiebesteuersammelleitung 47 empfang und decodiert. Die Beschriftungen auf den Ausgangsleitungen des Decodierers 56 haben folgende Bedeutung: RO bezeichnet eine Rechtsverschiebung von 0 Bytes (also keine Verschiebung) für die Schieber der ersten Stufe, R1 bezeichnet eine Rechtsverschiebung von einem Byte, R 2 eine Rechtsverschiebung von 2 Bytes, /?3 eine Rechtsverschiebung von 3 Bytes und RA eine Rechtsverschiebung von 4 Bytes. Λ 00 bezeichnet eine Rechtsverschiebung von 0 Bytes (also keine Verschiebung) für die Byteschieber 52 und 55 der zweiten Stufe. Separate O-Signale werden für die beiden Stufen benötigt, weil die Schiebebeträge für die-beiden Stufen nicht unbedingt gleichzeitig 0 sind. Die Signale auf den Leitungen RO bis R 3 sorgen für die normale Schiebesteuerung der Schieber 50 und 53 der ersten Stufe, wobei nur ein Signal auf diesen Leitungen während einer gegebenen Datenschiebeoperation aktiv sein kann. Die Signale auf den Leitungen ROO und RA steuern die Schiebung in den Schieber 52 und 55 der zweiten Stufe; nur ein Signal auf den Leitungen ROQ und RA kann während einer gegebenen Datenschiebeoperation aktiv sein, mit anderen Worten heißt das, zu einem gegebenen Zeitpunkt ist eine der Leitungen RO bis R 3 und eine der Leitungen ROO und RA aktiv. Der aktive Zustand bezeichnet das Ausmaß der vorzunehmenden Verschiebung.
Nach Darstellung in Fig. 12 ist die Leitung RA auch
mit den Schiebern 50 und 53 der ersten Stufe verbunden, um in jedem dieser Schieber auch eine 4 Byte große Rechtsverschiebung beim Entpacken ohne Vorzeichenumsetzung vornehmen zu können (s. Fig.8b). Bei normalen Datenverschiebungen wird die Leitung RA von den Schiebern 50 und 53 der ersten Stufe nicht gebracht
Sieht man im Augenblick einmal von den Wirkungen
to der Füllkennzeichen auf der Auffüll-Zeichen-Steuersammeüeitung 48 ab, so handelt es sich bei der beschriebenen Schiebeschaltung um eine zyklische Verschiebeschaltung (Ringschiebeschaltung), bei der die an einem Ende des Schiebers ausgeschobenen Daten am
is anderen Ende wieder eintreten und wieder erscheinen. In diesem Ringmechanismus laufen die Daten so um, daß alle Datenbytes immer an irgendeinem Punkt des Kreises stehen. Wegen dieser zyklischen Umlaufschiebung werden Datenverschiebungen nach links dadurch vorgenommen, daß man statt dessen eine komplementäre Datenschiebung nach rechts ausführt. Für eine Schiebeschaltung mit 8 Bytes Umfang gelten für eine Links- bzw. Rechtsschiebung folgende Beziehungen:
Linksschiebung
Rechtsschiebung
7
6
5
4
3
2
1
Durch die Auffüllkennzeichen FO bis Fl auf der Steuersammelleitung 48 soll die Ringschiebeschaltung wie eine lineare Schiebeschaltung mit einer linken und einer rechten Begrenzung aussehen. Nimmt man an, daß mit Nullen aufgefüllt werden soll, so dienen die Auffüllkennzeichen auf der Steuersammelleitung 48 dazu, diejenigen Schieberausgangsbytepositionen auf 0 zu setzen, die den Bytepositionen in einem Schieber mit Begrenzungen entsprechen, die beim Verschieben der Originaldaten um einen gegebenen Betrag in einer gegebenen Richtung leergelassen würden. Dadurch wird der Verlust von Daten simuliert, der durch das Ausschieben von Daten am Ende eines begrenzten Schiebers auftreten würde. Wenn der Schieber beispielsweise ursprünglich 8 Datenbytes enthalten würde (z.B. 12345678) und diese um 3 Bytes nach rechts verschoben würden, dann füllen die Auffüllkennzeichen die 3 Schieberausgangsbytepositionen links von den verschobenen Daten mit Nullen auf (für das gegebene Beispiel also 00012345).
Wenn mit Nullen aufgefüllt wird, geschieht das in den Schiebern 52 und 55 der zweiten Stufe. Dazu werden die 8 Auffüllkennzeichensignale auf der Steuersammelleitung 48 durch einen Satz von 8 Negationsschaltungen 59 invertiert, zu den Auffüllkennzeichen FÜ_bis FT. Diese invertierten Auffüllkennzeichen FO bis F7 werden an die beiden Schieber 52 und 55 der zweiten Stufe gegeben. Wenn ein gegebenes Byte, z. B. das Byte 3, aufgefüllt werden soll, dann wird sein Auffüllkennzeichen F3 auf den Einerpegel gesetzt, wodurch wiederum das invertierte Auffüllkennzeichen F3 den Nullpegel annimmt. Dadurch werden die Ausgangsbitpositionen des Byte 3 an den Schiebern 52 und 55 auf 0 gesetzt.
Die Schaltung für die Formatumsetzung beim Packen und Entpacken befindet sich in den Byteschiebern 52 und 55 der zweiten Stufe. Die notwendigen Kreuzungen von Bit 3 nach Bit 7 und Bit 7 nach Bit 3 erfolgen über 8 Leiter in der Kreuzungsleitergruppe 57. Außer beim Entpacken ohne Vorzeichen werden die Schieber 50 und 53 der ersten Stufe für eine Nullverschiebung eingestellt, wenn gepackt oder entpackt werden solL In der Ausnahmesitudtion »Entpacken ohne Vorzeichen«, werden die Schieber 50 und 53 der ersten Stufe so eingestellt, daß sie eine Rechtsverschiebung um 4 Bytes vornehmen.
Durch den Packungs/Entpackungssteuerdecodierer 58, der das über die Steuersammelleitung 49 gelieferte 3 Bit große codierte empfängt und decodiert, wird die Operationsart gewählt, die von den Byteschiebem 52 und 55 der zweiten Stufe auszuführen ist. Im dargestellten Ausführungsbeispiel hat der Packungs/ Entpackungssteuerdecodierer 58 5 Ausgangssteuerleitungen 60 bis 64, von denen für eine gegebene Schiebung oder Formatumsetzung nur jeweils eine aktiv sein kann. Die Steuerleitung 60 ist aktiv, wenn eine normale Datenschiebung ausgeführt werden soll. Die Steuerieitung 61 ist aktiv, wenn mit Vorzeichen gepackt werden soll. Die Steuerleitung 62 ist aktiv, wenn ohne Vorzeichen gepackt werden soll. Die Steuerleitung 63 ist aktiv, wenn mit Vorzeichen entpackt werden soll und die Steuerleitung 64 ist aktiv, wenn ohne Vorzeichen entpackt werden soll. Die Steuerleitungen 61 und 62 sind mit einem ODER-Glied 65 verbunden und erzeugen auf dessen Ausgangsleitung 66 ein allgemeines Packsignal, wenn eine der beiden Leitungen 61 oder 62 aktiv ist In ähnlicher V/eise sind die Steuerleitungen 63 und 64 mit einem ODER-Glied 67 verbunden, zur Erzeugung eines allgemeinen Entpackungssignals auf einer Steuerleitung 68, wenn eine der Steuerleitungen 63 und 64 aktiv ist. Die Steuerleitungen 60, 61, 63, 64, 66 und 68 sind mit jedem der Schieber 52 und 55 der zweiten Stufe verbunden und steuern die dort auszuführende Operationsart. Außerdem ist die Steuerleitung 64 noch mit jedem der Byteschieber 50 und 53 der ersten Stufe verbunden, um bei einer Eiitpackung ohne Vorzeichen die Spezial-Rechtsverschiebung von 4 Bytes einzuschalten.
Die Signale auf den Steuersammelleitungen 47, 48 und 49 für die Schiebesteuerung, das Auffüllkennzeichen und die Packungs/Entpackungssteuerung kommen von der Schiebesteuerung 41 der Fig. 1, die den größten Teil ihrer Information vom Steuerregister 21 empfängt, wenn darin ein Schiebe-Mikrowort steht. Ein repräsentatives Format für ein solches Schiebemikrowort ist in Fig. 13 gezeigt. Ein solches Schiebe-Mikrowort wird von dem Steuerspeicher 20 jedesmal angegeben, wenn der Byteschieber und Formatumsetzer 14 entweder eine normale Datenschiebeoperation oder eine der vier möglichen Packungs/Entpackungsoperationen ausführen soll.
Bei einer normalen Datenschiebeoperation wird mit dem Ergebnissteuerfeld und dem Quellen/Ergebnisadreßfeld im Schiebe-Mikrowort die Stelle der Quellen= daten (die zu bearbeitenden Daten) und die Stelle bezeichnet, an die das Ergebnis zu setzen ist. Bei einer Packungs- oder Entpackungsoperation ist das Ergebnissteuerfeld so codiert, daß es eine auszuführende Formatumsetzung unJ die Tatsache angibt, daß die Quellendaten im A-Reg\sf.r 38 stehen. Das Quellen-Ergebnisadreßfeld ist so codiert, daß es die Stelle angibt, an die die Ausgabedaten vom Byteschieber und Formatumsetzer 14 zu senden sind. Insbesondere gibt es durch seine Codierung die Adresse der Register LS J oder LS 2 im Arbeitsspeicher 25 an, abhängig davon, ob eine Packung/Entpackung mit oder ohne Vorzeichen ausgeführt wird.
Für normale Datenschiebeoperationen gibt das R/L (Rechts/links)-Bit im Schiebe-Mikrowort die Richtung der Verschiebung an und das Schiebebetragsfeld das Ausmaß der Schiebung (außer für Schiebe-Maschinen-Instruktionen). Für Schiebe-Maschineninstruktionen ist der Schiebebetrag in der Instruktion selbst enthalten und die Schiebesteuerung 41 nimmt diese Information vom Instruktionsregister 26 und nicht vom Mikrowort im Steuerregister 21. Das IA-Bk (indirekter Betrag) im
is Mikrowort gibt an, ob der Schiebebetrag vom Mikrowort oder von der Instruktion im Instruktionsregister 26 zu holen ist. Bei einer Packungs- oder Entpackungsoperation wird das ΙΑ-Bit so gestellt, daß es anzeigt, daß der Schiebebetrag vom Mikrowort zu nehmen ist und das Schiebebetragsfe'i im Mikrowort wird so codiert, daß es lauter Nullen enthält, außer für die Entpackung ohne Vorzeichen. In diesem Fall wird der Byteteil des Mikrowort-Schiebebetragsfeldes so eingestellt, daß er eine Schiebung von 4 Bytes anzeigt,
und der Bitteil wird auf lauter Nullen gesetzt. Das R/L-Bit wird ebenfalls so gesetzt, daß es eine Rechtsschiebung anzeigt
Das Schiebe- und Packungs/Entpackungssteuerfeld des Schiebe-Mikrowortes ist ein 3 Bit großes Steuerfeld, das das codierte Packungs/Entpackungssteuersignal für die Steuersammelleitung 49 der F i g. 12 liefert. Dieses Steuerfeld wird nach der für das jeweilige Schiebe-Mikrowort gewünschten Operationsart codiert Die acht möglichen Codekombinationen dieses 3 Bit großen Feldes können z. B. folgende Bedeutung haben:
Schiebe- und Packungs/Entpackungssteuerfeld
Code
Operation
000 Schiebung - Zyklischer Betrieb
00! Schiebung - Nullen auflullen
010 Schiebung - Einsen auflullen
011 Schiebung - Vorzeichen weitergeben
100 Packung mit Vorzeichen
101 Packung ohne Vorzeichen
110 Entpacken mit Vorzeichen
111 Entpacken ohne Vorzeichen
Dieses 3 Bit große Steuerfeld wird von der Schiebesteuerung 41 empfangen und an den Byteschieber un-H Formatumsetzer 14 über die Steuersammelleitung 49 weitergeleitet. Das Auftreten einer der vier ersten Codewerte veranlaßt den Decodierer 58 (Fig. 12), zur Aktivierung der Schiebeleitung 60. Die letzten vier Codewerte steuern die Aktivierung der Decodiererausgangsleitungen 61 bis 64. Die Umlaufschiebung erfolgt durch Abschalten der Auffüllkennzeichen in der Schiebesteuerung 41, und zwar werden dazu die 8 Auffüllkennzeichenleitungen in der Steuerssmrnelleitung 48 auf 0 geschaltet. Dadurcl: wird die Auffülloperation abgeschaltet, so daß die Verschiebeeinrichtung ihre normale Ringverschiebung durchführt.
o5 Der Einfachheit halber werden hier die Verschiebungen mit Auffüllen von Einsen und mit Weiterleiten des Vorzeichens nicht beschrieben.
Eine Konstruktionsform der Schiebesteuerung 41
wird in dem obenerwähnten Artikel von Shimp und Sliz beschrieben. Unter anderem wird dort sehr genau die Erzeugung der Byteauffüllkennzeichen FO bis F7 beschrieben. Diese werden nach den dortigen Ausführungen von der Information abgeleitet, die im R/L-Feld > enthalten ist und vom Byteteil des Schiebebetragsfeldes des Schiebe-Mikrowortes. In diesem Artikel sind jedoch die Packungs/Entpackungseinrichtungen der vorliegenden Patentanmeldung in keiner Weise erwähnt.
Betrachtet man kurz die Benutzung der Schiebe-Mi- in krowörter bei der Formatumsetzung, so stellt man fest, daß ein erstes Schiebe-Mikrowort mit einem Packungs/ Entpackungssteuerfeldcode von »101« gegeben wird, um die in F i g. 7a dargestellte Packung ohne Vorzeichen vorzunehmen. Danach wird ein zweites Schiebe-Mikrowort mit einem Packungs/Entpackungssteuerfeldcode von »100« abgegeben, um das in Fig. 7b dargestellte Packen mii Vorzeichen durchzuführen. Für die Eiiipakkungsoperationen enthält das erste Schiebe-Mikrowort einen der beiden Codes »110« oder »111« und das zweite Schiebe-Mikrowort die anderen Codes. Mit anderen Worten, in jedem der in den F i g. 7a, 7b, 8a und 8b dargestellten Fälle wird ein anderes Mikrowort verwendet.
In Fig. 14 ist in größeren Einzelheiten die Konstruktion der Datenverarbeitungsteile der Schaltung auf dem integrierten Schaltungschip 45 dargestellt. Fig. 14 unterscheidet sich von Fig. !2 nur dadurch, daß die Steuerleitungen und die Steuerschaltung der Einfachheit halber weggelassen und die Datenleitungen und die jo Datenverarbeitungsschaltung in größeren Einzelheiten dargestellt wurden. Aus Fig. 14 geht hervor, daß der Schieber 50 der ersten Stufe für Bitposition 3 eine erste Verknüpfungsebene (Verdrahtung) 70 und eine Gruppe von 8 logischen Schaltelementen 71 bis 78 enthält. Die r> erste Verdrahtungscbene 70 dient dazu, die verschiedenen Leiter W03. W13. W23 usw. für das Bit 3 in der Schieber/Umsetzer-Dateneingangssammelleitung 13 mit den verschiedenen logischen Elementen 71 bis 78 zu koppeln. Der Ausgang eines jeden logischen Schaltele- -to mentes 71 bis 78 ist mit einer anderen Leitung X03. X 13, X23 usw. in der Verbindungs-Leitergruppe 51 gekoppelt.
Der Byteschieber 52 der zweiten Stufe für Bitposition 3 enthält eine zweite Verknüpfungsebene (Verdrahtung) -»s 80 und 8 logische Schaltelemente 81 bis 88. Die zweite Verdrahtungsebene 80 dient dazu, die verschiedenen Zwischenleiter X03. X 13 usw. mit den verschiedenen Schaltelementen 81 bis 88 zu koppeln. Der Ausgang eines jeden Scualtelementes 81 bis 88 ist mit einem so anderen der 8 Leiter in Bitposition 3 V 03, V13 usw. in der Schieber/Umsetzer-Datenausgangssammelleitung 15 verbunden.
Der Byteschieber 53 für Bitposition 7 auf der ersten Stufe enthält eine erste Verdrahungsebene 90 und 8 logische Schaltelemente 91 bis 98. Der Byteschieber 55 für Bitposition 7 auf der zweiten Stufe enthält eine zweite Verdrahtungsebene 100 und 8 logische Schaltelemente 101 bis 108. Die Bitkreuzungsleiter 57 werden beim Packen und Entpacken dazu benutzt, bestimmte Datenbits von Bitposition 3 auf bestimmten Ausgangsleitern für Bitposition 7 der zweiten Stufe V07, Y17 usw. erscheinen zu lassen und umgekehrt bestimmte Datenbits von Biiposition 7 auf bestimmten Ausgangsleitungen der zweiten Stufe für Bitposition 3, nämlich K 03. ν 13 usw.
Bei den Leiterbeschriftungen in Fig. 14 wird der Buchstabe W für die Leiter in der Schieber/Umsetzer-Dateneingangssammelleitung 13, der Buchstabe X für die Leiter in den Verbindungs-Leitergruppen und der Buchstabe >' für die Leiter in der Schieber/Umsetzer-Datenausgangssammelleiiung 15 verwendet. Die linke Zahl in jeder Leiterbeschriftung ist die Bytenummer und die rechte Zahl die Bitnummer. W43 bezeichnet beispielsweise den Leiter für das Byte 4, Bit 3 der Dateneingangssammelleitung. Ähnlich bezeichnet X 67 in der Zwischenleitergruppe den Leiter für Byte 6, Bit 7. Diese Byte- und Bitzahlen in der Leiterbeschriftung geben Maschinenstellen an und nicht Datenbits in den verarbeiteten Daten.
In Fig. 15 ist im einzelnen der Aufbau des Byteschiebers 50 für Bitposition 3 der ersten Stufe dargestellt. Fig. 15 zeigt sowohl die erste Verdrahtungsebene 70 als auch die logischen Schaltelemente 71 bis 78. die der einfacheren Erklärung halber nur
analog dargestellt sind. Die
Fig. 15 wiedergegebenen Schalterstellungen gelten für den Fall einer Rechtsverschiebung von J Bytes. Wenn die Datenbytefolge auf den Eingangsleitern WO, W13 usw. lautet »01234567«, dann ergibt sich für die dargestellte Schalterstellung auf den Ausgangsleitern XO. X 13 usw. die Folge »56701234«. Somit ist jedes Bit 3 um 3 Bytepositionen nach rechts verschoben. Das Beispiel zeigt auch die zugrundeliegende Ringnalur der SchieLiSchaltung. Die in Fig. 15 dargestellte mechanische Schaltereinstellverbindung 79 entsprechen den Signalen auf den Schiebebetragsleitungen Λ 0 bis R 4 in Fig. 12, die zum Byteschieber 50 der ersten Stufe führen f und die Schaltwirkung dort steuern.
In F i g. 16 ist die eigentliche logische Schaltungskonstruktion eines der logischen Schaltelemente 71 bis 78 im Byteschieber 50 der ersten Stufe für Bitposition 3 gezeigt, nämlich des logischen Schaltelementes 76. Dieses Schaltelement enthält 5 UND-Glieder 110 bis 114, deren Ausgänge an ein ODER-Glied 115 angeschlossen sind, dessen Ausgang wiederum mit dem Zwischenleiter X53 verbunden ist. Während einer gegebenen Schiebe- oder Packungs/Entpackungsoperation ist nur eines dieser UND-Glieder 110 bis 114 eingeschaltet, die andern sind abgeschaltet. Es wird das UND-Glied eingeschaltet, dessen Schiebebetragssteuerleitung aktiv ist (binär 1). Für eine Rechtsverschiebung von 0 («0= 1) wird somit das UND-Glied 110 eingeschaltet, für eine Rechtsverschiebung von 0 {R 1 = 1) das UND-Glied 111 usw. Das Einschalten des UND-Gliedes 110 koppelt den Eingangsleiter W53 mit dem Ausgangsleiter X53, und das ist das gewünschte Ergebnis, wenn nicht verschoben werden soll. In ähnlicher Weise wird durch Einschalten eines ausgewählten UND-Gliedes 111 bis 115 der entsprechende Eingangsleiter W43, W33, W23 und W13 mit dem Ausgangsleiter X 53 verbunden.
Die Steuerleitung 64 für das Entpacken ohne Vorzeichen ist mit dem UND-Glied 114 so verbunden, daß eine Rechtsverschiebung von 4 Bytes im Byteschieber der ersten Stufe nur auftreten kann, wenn eine Formatumsetzung »Entpacken ohne Vorzeichen« ausgeführt wird. Diese Verschiebung von 4 Bytes in der ersten Stufe ist somit für normale Datenschiebeoperationen abgeschaltet.
Jedes andere der logischen Schaltelemente für Bit 3, 7! bis 75,77 und 78, die in den F i g. 14 und 15 dargestellt sind, ist genauso aufgebaut wie das in F i g. 16 gezeigte logische Schaltelement
Der Byteschieber 53 für Bitposition 7 in der ersten Stufe, dargestellt in den Fig. 12 und 14, ist genauso
aufgebaut wie der in den Fig. 15 und Ib gezeigte Byteschieber 50 für Bitposition 3 eier ersten Stufe. Weiterhin ist jeder der beiden Schieber der ersten Stufe auf jedem der anderen integrierten Schaltungschips 42, 43 und 44 genauso gebaut wie dieser Schieber in den Fig. 15 und 16.
Die tyteschieber 52 und 55 der zweiten Stufe enthalten nicht nur die normale Schiebeschaltung, sondern außerdem eine für das Packen und Entpacken benötigte Schaltung. In Fig. 17 ist ein Verbi.ndungsdiagramm zur Darstellung der Eingabe/Ausgabekopplung bzw. der Verbindungen wiedergegeben, die in den Byteschicbcrn 52 und 55 der zweiten Stufe dazu gebraucht werden, die in den F i g. 7a bzw. 7b dargestellten Packungsoperationen ohne bzw. mit Vorzeichen auszuführen. Diese Verbindungen können überprüft werden durch Vergleich der Fig. 17 mit den F i g. 7a iiiiü Tu. Abgesehen vorn Bit im Vorzcichcnfcld sind die Verbindungen für das Packen mit und ohne Vorzeichen dieselben. Beim Packen mit Vorzeichen wird das Vorzeichenbit durch Verbindung der Eingangsleitung X 73 mit der Ausgangsleitung Y77 weitergegeben. Beim Packen ohne Vorzeichen wird diese Verbindung nicht hergestellt und die Ausgangsleitung V'77 statt dessen auf 0 gezwungen. Im übrigen sind die Verbindungen für die beiden verschiedenen Packungsfälle dieselben.
In Fig. 18 ist ein weiteres Verbindungsdiagramm für die Eingangs/Ausgangskopplung bzw. die Verbindungen geneigt, die für die Schieber 52 und 55 der zweiten Stufe zum Entpacken mit und ohne Vorzeichen gebraucht werden, wie es in den Fig. 8a und 8b dargestellt ist. Abgesehen von der Behandlung des Vorzeichenfeldes sind die Eingangs/Ausgangsverbindungen für beide Entpackungsfälle dieselben. Für das Entpacken mit Vorzeichen wird das Vorzeichenbit von der Eingangsleitung X 77 auf die Ausgangsleitung /63 gekoppelt. Beim Entpacken ohne Vorzeichen wird diese Verbindung nicht hergestellt und der Ausgangsieiter /63 statt dejsen auf binär 1 gezwungen. Die Bit-3-Ausgangsleitungen /03, /13 usw. werden auf I gezwungen, um den richtigen Zonencodewert für die Bits 3 zu bekommen.
Anhand der Fig. 19 bis 34 werden anschließend Einzelheiten einer Konstruktionsform für die Byteschieber und Formatumsetzer 52 und 55 der zweiten Stufe beschrieben. Insbesondere zeigen die Fig. 19 bis 26 logische Schaltungen für die Schaltelemente 81 bis 88 der zweiten Stufe für Bitposition 3. Die F i g. 27 bis 34 2eigen in ähnlicher Weise logische Schaltungen für die logischen Schaltelemente 101 bis 108 der zweiten Stufe für Bitposition 7.
In Fi g. 19 ist der Aufbau der logischen Schaltung für das Umschalteiement 81 der zweiten Stufe für Bitposition 3 gezeigt. Normale Datenverschiebungen laufen über die UND-Glieder 120 und 121, die mit ihren Ausgängen an ein ODER-Glied 122 angeschlossen sind. Während einer Schiebeoperation steht die SchiebesteuerIeitung60 auf dem binären Einerpegel, so daß dadurch dler zweite Eingang eines jeden UND-Gliedes 120 und 121 gegeben ist. Für den Augenblick wird angenommen, daß das invertierte Auffüllkennzeichen FO von Byte 0 auf binär 1 steht (dem Pegel für »nicht auffüllen«). Dadurch wird der vierte Eingang eines jeden UND-Gliedes 120 und 121 eingeschaltet. Wenn der Schieber dler zweiten Stufe eine Nullverschiebung vornehmen soll, dann steht die Schiebebetragsleitung R 00 auf dem Einerpegel und die Schiebebetragsleitung R 4 auf dem
Nullpegel. Dadurch wird das UND-Glied 120 eingeschaltet und das UND-Glied 121 ausgeschaltet. Dieses wiederum koppelt den Eingangsleiter ΛΌ3 mit dem Ausgangsieiter /03. was das gewünschte Ergebnis ist. Falls der Schieber der zweiten Stufe eines 4-Byte-Verschiebung liefern soll, ist die Situation umgekehrt und die Leitung /?00 steht auf dem Nullpegel und die Leitung R 4 auf dem Einerpegel. Dadurch wird das UND-Glied 120 abgeschaltet und das UND-Glied 121 eingeschaltet. Dieses wiederum koppelt die Eingangsleitung X43 mit der Ausgangsleitung /03, was das gewünschte Ergebnis ist.
Wenn der Schieber im Auffüllbetrieb arbeitet und Byte 0 mit Nullen aufzufüllen ist, _dann geht das invertierte Auffüllkennzeichensignal FO auf 0. Damit weiden die beiden UND-Glieder 120 und 121 abgeschaltet und so ein Nullpegel auf dem Ausgangsleitcr /03 erzeugt. Bei den Format'jmsetzungsoperationen des Packens t.nd Entpackens steht die Schiebesteuerleitung 60 auf dem Nullpegel. Damit werden beide UND-Glieder 120 und 121 und somit effektiv der Datenschiebeteil des Schaltelementes 81 abgeschaltet.
Der Schiebeteil jedes anderen Schaltelementes 82 bis 88 und 101 bis 108 ist genauso aufgebaut wie der eben beschriebene Teil für das Schaltelement 81 und wird daher hier nicht näher beschrieben.
Der Formatumsetzungsteil des Schaltelementes 81 der Fig. 19 ist dargestellt durch das UND-Glied 123 und die Entpackungssteuerleitung 68, die mit dessen Eingang verbunden ist. Die Entpackungssteuerleitung 68 steht auf binär I bei der Formatumsetzung des Entpackens mit oder ohne Vorzeichen. Dadurch wird der Ausgangsleiter /03 auf binär 1 gezwungen, was nach Darstellung in Fig. 18 das gewünschte Ergebnis ist. Bei der Packungsoperation sollte andererseits der Ausgangsleiter /03 nach Darstellung in Fig. 17 auf 0 gezwungen werden. Im vorliegenden Ausführungsbeispiel geschieht das dadurch, daß man einfach zum Schaltelement 81 für die Packungsoperation keine Schaltkreisverbindung herstellt. Da alle UND-Glieder 120,121 und 123 abgeschaltet sind (Nullausgangspegel), und somit kein anderes Signal an das ODER-Glied 122 geliefert wird, bleibt der Ausgangsleiter /03 auf dem Nullpegel.
Wie aus den F i g. 20, 21 und 22 zu ersehen ist, ist der Formatumsetzerteil der Schaltelemente 82, 83 und 84 genauso aufgebaut wie der Formatumsetzerteil des Schaltelementes 81 in Fig. 19. und zwar stellen die UND-Glieder 124,125 und 126 den Formatumsetzerteil in den F i g. 20.21 und 22 dar.
In Fig. 23 ist der Formatumsetzerteil des Schaltelementes 85 durch die UND-Glieder 127 und 128 dargestellt, deren Ausgänge mit dem ODER-Glied 129 verbunden sind. Bei einer Packungsoperation steht die Steuerleitung 66 auf dem Einerpegel und die Steuerleitung 68 auf dem Nullpegel. Dadurch wird das UND-Glied 127 eingeschaltet und die Eingangsleitung X17 mit der Ausgangsleitung /43 verbunden. Nach Darstellung in F i g. 17 ist das das gewünschte Ergebnis für die Packungsoperation. Laut Darstellung durch die rechtsstehende Zahl in der Leiterbeschriftung ist diese Kopplung eine Bitüberkreuzung. Während einer Entpackung ist andererseits die Situation genau umgekehrt, die Steuerleitung 68 steht auf dem Einerpegel und die Steuerleitung 66 auf dem Nullpegel. Dadurch kann das UND-Glied 28 einen Einerpegel auf die Ausgangsleitung /43 zwingen. Nach Darstellung in F i g. 18 ist das das gewünschte Ergebnis für eine Entpackungsopera-
In Fig. 24 ist der Formatumsetzerteil des Schaltelementes 86 dargestellt durch die UND-Glieder 130 und 131, deren Ausgänge mit dem ODER-Glied 132 verbunden sind. Die Konstruktion ist dieselbe wie bei dem vorher beschriebenen Schaltelement 85.
In Fig. 25 ist der Formatumseizerteil des Schaltelementes 87 dargestellt durch die UND-Glieder 133, 134 und 135, deren Ausgänge mit dem ODER-Glied 136 verbunden sind. Während einer gegebenen Formatumsetzung ist nur eines dieser UND-Glieder eingeschaltet, die anderen abgeschaltet. Bei einer Packungsoperation ist das UND-Glied 133 eingeschaltet und dadurch der Eingangsleiter X57 mit dc-m Ausgangsleiter K63 gekoppelt. Bei einer Entpackungsoperation mit Vorzei- r> chen ist das UND-Glied 134 eingeschaltet und dadurch der Eingangsleiter X77 mit dem Ausgangsleiter K 63 trial/rvnr»*»lt R*»i £»inp»r Pntnnrliiino nhnp Vnr7Piphpn i<:t &....urr..... w*. ........ , o . —
das UND-Glied 135 eingeschaltet und zwingt einen Einerpegel auf den Ausgangsleiter K 63. Nach Darstellung in den Fig. 17 und 18 sind das die gewünschten Ergebnisse für das Packen und Entpacken.
In Fig. 27 ist der Formatumsetzerteil für das Schaltelement 101 für Bitposition 7 der zweiten Stufe dargestellt durch άί ■ UND-Glied 140, dessen Ausgang mit einem ODER-Glied 141 verbunden ist. Bei einer Entpackung mit oder ohne Vorzeichen steht die Entpackungssteuerleitung 68 auf dem Einerpegel und schaltet das UND-Glied 140 ein, wodurch der Eingangsleiter X43 mit dem Ausgangsleiter YQ7 n> gekoppelt wird. Nach Darstellung in Fig. 18 ist das das gewünschte Ergebnis für eine Entpackungsoperation. Die Formatumsetzerteile der nächsten beiden Schaltelemente 102 und 103 sind nach Darstellung in den F i g. 28 und 29 genauso gebaut wie der Formatumsetzerteil in Ji Fig. 27. In Fig.28 ist der Formatumsetzerteil dargestellt durch das UND-Glied 142 und in F i g. 29 durch das UND-Glied 143.
In Fig.30 ist der Formatumsetzerteil des Schaltelementes 104 dargestellt durch die UND-Glieder 144 und 145. deren Ausgänge ;i?it einem ODER-Glied 146 verbunden sind. Während einer Packungsoperation steht die Packungssteuerleitung 66 auf dem Einerpegel und die Entpackungssteuerleitung 68 auf dem Nullpegel, um das UND-Glied 144 einzuschalten und das UND-Glied 145 abzuschalten. Dadurch wird der Eingangsleiter X07 mit dem Ausgangsleiter V37 gekoppelt. Bei einer Entpackungsoperation sind die Signalpegel auf den Steuerleitungen 68 und 66 genau umgekehrt, so daß das UND-Glied 145 ein- und das w UND-Glied 144 ausgeschaltet wird. Dadurch wird der Eingangsleiter A"57 mit dem Ausgangsleiter V37 gekoppelt. Nach Darstellung in den" F i g. 17 und 18 sind das die gewünschten Ergebnisse für die Packungs- und Entpackungsoperation.
Der Formatumsetzerteil in Fig.31 ist dargestellt durch die UND-Glieder 147 und 148, deren Ausgänge mit einem ODER-Glied 149 verbunden sind. Der Formatumsetzerteil in Fig.32 ist dargestellt durch die UND-Glieder 15[/ und 151, deren Ausgänge mit einem ODER-Glied 152 verbunden sind. Der Formatumsetzerteil in F i g. 33 ist dargestellt durch die UND-Glieder 153 und 154, deren Ausgänge mit dem ODER-Glied 155 verbunden sind. Wie man aus einem Vergleich der in Fig.30 gezeigten Schaltung ersehen kann, sind die Formatumsetzerteile für die Schaltelemente 105, 106 und 107 genauso aufgebaut wie derjenige für das in F i g. 30 gezeigte Schaltelement 104.
In Fig.34 ist der Formatumsetzerteil des Schaltelementes 108 durch die UND-Glieder 156 und 157 dargestellt, deren Ausgänge mit dem ODER-Glied 158 verbunden sind. In diesem Fall wird die Steuerleitung 61 für das Packen mit Vorzeichen anstelle der Packungssteuerleitung 66 benutzt, die in den Fig. 30 bis 33 verwendet wurde. Bei einer Packung ohne Vorzeichen wird der Ausgangsleiter Y77 auf 0 gezwungen, weil in diesem Fall alle UND-Glieder abgeschaltet sind (Ausgänge auf 0) und kein anderes Signal an das ODER-Glied 158 gegeben wird.
In Fig. 35 ist ein Gesamtschaltungs- und Logikplan für die Schieber 52 und 55 der zweiten Stufe, gezeigt in den Fig. 12 und 14, dargestellt, es sind jedoch nur die Schaltkreise und logischen Kreise wiedergegeben, die für das Packen und Entpacken gebraucht werden, die für normale Datenschiebeoperationen benötigten Schaltungen und logischen Kreise sind weggelassen. Insbesondere sind nur die Formatumsetzerteile der Schaltelemente 81 bis 88 und 101 bis 108 in Fig. 35 wiedergegeben. Somit trägt Fig.35 zum Gesamtverständnis der Beziehung zwischen den verschiedenen Formatumsetzerteilen bei, die einzeln in den Fig. 19 bis 34 dargestellt sind.
Jedes der in Fig. 11 gezeigten anderen integrierten Schnltungschips 42,43 und 44 ist genauso aufgebaut und arbeitet nach demselben Prinzip, wie es oben im einzelnen für das integrierte Schaltungschip 45 beschrieben wurde. Der einzige Unterschied zwischen den Chips besteht in den einzelnen Eingangs- und Ausgangsdatenleitungen, die mit den Chips verbunden sind. Insbesondere sind die Byteschieber der zweiten Stufe (und Formatumsetzer) auf jedem der anderen integrierten Schaltungschips 42, 43 und 44 im Detail genauso konstruiert wie es in den F i g. 14 bis 34 für den Fall des Schiebers und Formatumsetzers 52 und 55 der zweiten Stufe gezeigt ist, der auf dem integrierten Schaltungschip 45 liegt. Somit brauchen in jedem Fall die Bitkreuzungsleitungen das integrierte Schaltungschip nicht zu verlassen, auf dem sie gebraucht werden. Demzufolge erhält man die Formatumsetzungsfunktion ohne nennenswerte Erhöhung der Anzahl von Eingangs/Ausgangsanschlüssen auf einem Chip.
Das hier beschriebene Gerät für die gleichzeitige mehrere Bytes umfassende Datenformatumsetzung ermöglicht das Packen und Entpacken wesentlich schneller als es bei heutigen Datenprozessoren möglich ist, weil mit dem beschriebenen Gerät solche Operationen nicht mehr byteweise ausgeführt werden müssen.
Hierzu 13 Blatt Zeichnungen

Claims (1)

Patentansprüche:
1. Einrichtung zum Umsetzen von Dezimalzahlen zwischen gepacktem und ungepacktem Format und umgekehrt, gekennzeichnet durch die folgenden Merkmale:
— es sind mehrere, zueinander identische Funktionsblöcke (42—46; Fig. 11) mit steuerbaren Verknüpfungsschaltungen (85—88, 101—108; F i g. 35) vorgesehen, deren Eingänge (z. B. W03—W77) und deren Ausgänge (z.B. yO3— Y77) jeweils mit gleichstelligen, von Funktionsblock zu Funktionsblock unterschiedlichen Leitungen (z. B. 13t/, 13/?; 15c/, 15h) einer Eingangssammelleitung (13) und einer Ausgangssammelleitung (15) verbunden sind; und
— jede. Funktionsblock verarbeitet jeweils ein Bitpaar aller auf der Eingangssammelleitung (13) parallel anstehenden Eingangsbytes, wobei sich die Bitpositionen jeweils um 4 unterscheiden (Bitpositionen 0 und 4, bzw. 1 und 5, bzw. 2 und 6, bzw. 3 und 7).
DE2748991A 1976-11-11 1977-11-02 Einrichtung zur Umsetzung von Dezimalzahlen Expired DE2748991C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/741,079 US4141005A (en) 1976-11-11 1976-11-11 Data format converting apparatus for use in a digital data processor

Publications (2)

Publication Number Publication Date
DE2748991A1 DE2748991A1 (de) 1978-05-18
DE2748991C2 true DE2748991C2 (de) 1983-09-29

Family

ID=24979297

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2748991A Expired DE2748991C2 (de) 1976-11-11 1977-11-02 Einrichtung zur Umsetzung von Dezimalzahlen

Country Status (5)

Country Link
US (1) US4141005A (de)
JP (1) JPS5389332A (de)
DE (1) DE2748991C2 (de)
FR (1) FR2371013A1 (de)
GB (1) GB1534230A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19581873T1 (de) * 1994-12-01 1997-12-11 Intel Corp Ein neuartiger Prozessor mit Schieboperationen

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4240144A (en) * 1979-01-02 1980-12-16 Honeywell Information Systems Inc. Long operand alignment and merge operation
US4364025A (en) * 1979-01-02 1982-12-14 Honeywell Information Systems Inc. Format switch
CA1128212A (en) * 1979-01-02 1982-07-20 Jerry L. Kindell Apparatus for reformating a binary number
US4250548A (en) * 1979-01-02 1981-02-10 Honeywell Information Systems Inc. Computer apparatus
IT1121031B (it) * 1979-09-19 1986-03-26 Olivetti & Co Spa Sistema di elaborazione di dati multiprocessore
FR2479613A1 (fr) * 1980-04-01 1981-10-02 Cii Honeywell Bull Procede de transformation de codes de caracteres numeriques recus ou fournis par un systeme de traitement de donnees et dispositif pour la mise en oeuvre de ce procede
US4384340A (en) * 1980-12-24 1983-05-17 Honeywell Information Systems Inc. Data processor having apparatus for controlling the selection of decimal digits of an operand when executing decimal arithmetic instructions
US4423483A (en) * 1980-12-24 1983-12-27 Honeywell Information Systems Inc. Data processor using a read only memory for selecting a part of a register into which data is written
JPS57199041A (en) * 1981-06-03 1982-12-06 Fuji Xerox Co Ltd Bit data processing device
JPS585838A (ja) * 1981-07-03 1983-01-13 Nec Corp シフト回路
US4462102A (en) * 1981-11-13 1984-07-24 International Business Machines Corporation Method and apparatus for checking the parity of disassociated bit groups
GB2115190B (en) * 1982-02-10 1985-11-20 Singer Co Data word normalisation
DE3216222A1 (de) * 1982-04-30 1983-11-10 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum aufbereiten eines aus einer anzahl von bytes bestehenden datenfeldes
US4506345A (en) * 1982-07-02 1985-03-19 Honeywell Information Systems Inc. Data alignment circuit
US4503291A (en) * 1982-11-12 1985-03-05 Dasa Corporation Repertory dialer with efficient data storage
US4595911A (en) * 1983-07-14 1986-06-17 Sperry Corporation Programmable data reformat system
US4626829A (en) * 1985-08-19 1986-12-02 Intelligent Storage Inc. Data compression using run length encoding and statistical encoding
US5237701A (en) * 1989-03-31 1993-08-17 Ampex Systems Corporation Data unpacker using a pack ratio control signal for unpacked parallel fixed m-bit width into parallel variable n-bit width word
US5113516A (en) * 1989-07-31 1992-05-12 North American Philips Corporation Data repacker having controlled feedback shifters and registers for changing data format
JPH03149614A (ja) * 1989-08-31 1991-06-26 Univ California 情報処理システム及び記憶処理方法
US5276891A (en) * 1990-01-11 1994-01-04 Bull Hn Information Systems Inc. Alignment of sign, data, edit byte operand results for storage in memory
US5278978A (en) * 1990-03-26 1994-01-11 International Business Machines Corporation Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system
US5557776A (en) * 1992-05-18 1996-09-17 International Business Machines Corporation Apparatus which allows data sharing amongst computer program from different program environments
US5471628A (en) * 1992-06-30 1995-11-28 International Business Machines Corporation Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
WO1996017291A1 (en) * 1994-12-02 1996-06-06 Intel Corporation Microprocessor with packing operation of composite operands
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7165174B1 (en) 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
EP2110732A3 (de) * 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systeme und Verfahren für die sichere Transaktionsverwaltung und elektronischen Rechtsschutz
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
DE19603296C2 (de) * 1996-01-30 1998-09-24 Weidmueller Interface Verfahren und Feldbussystem zur seriellen Datenübertragung in objektorientierten Anwendungen
US5754810A (en) * 1996-03-12 1998-05-19 International Business Machines Corporation Specialized millicode instruction for certain decimal operations
US5867145A (en) * 1996-07-01 1999-02-02 Sun Microsystems, Inc. Graphical image recasting
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
EP0930575A1 (de) * 1998-01-16 1999-07-21 Anker Kaltoft Bohm Verfahren zum Konvertieren von Daten in sechs- oder siebenziffrigem Format in Daten in achtziffrigem Format, einschliesslich zwei Ziffern für das Jahrhundert, und Verfahren zum Einpacken und Auspacken solcher achtziffrigen Daten
US7133040B1 (en) 1998-03-31 2006-11-07 Intel Corporation System and method for performing an insert-extract instruction
US6449610B1 (en) 1999-03-26 2002-09-10 International Business Machines Corporation Memory media and method of processing date data using pseudo zoned decimal format
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6484255B1 (en) * 1999-09-20 2002-11-19 Intel Corporation Selective writing of data elements from packed data based upon a mask using predication
US6643673B1 (en) * 1999-11-30 2003-11-04 Ati International, Srl Method and apparatus for arithmetic shifting
US6986104B2 (en) * 2000-06-26 2006-01-10 Silver Creek Systems, Inc. Method and apparatus for normalizing and converting structured content
US8396859B2 (en) 2000-06-26 2013-03-12 Oracle International Corporation Subject matter context search engine
US7865358B2 (en) * 2000-06-26 2011-01-04 Oracle International Corporation Multi-user functionality for converting data from a first form to a second form
US7853778B2 (en) 2001-12-20 2010-12-14 Intel Corporation Load/move and duplicate instructions for a processor
US7536634B2 (en) * 2005-06-13 2009-05-19 Silver Creek Systems, Inc. Frame-slot architecture for data conversion
WO2006031466A2 (en) * 2004-09-01 2006-03-23 Silver Creek Systems, Inc. Functionality and system for converting data from a first to a second form
US9207917B2 (en) 2005-12-20 2015-12-08 Oralce International Corporation Application generator for data transformation applications
US7921367B2 (en) * 2005-12-20 2011-04-05 Oracle International Corp. Application generator for data transformation applications
US8130949B2 (en) * 2009-03-20 2012-03-06 Cisco Technology, Inc. Partially reversible key obfuscation
US8229115B2 (en) * 2009-07-15 2012-07-24 Cisco Technology, Inc. Use of copyright text in key derivation function
JP5689366B2 (ja) * 2011-05-31 2015-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ゾーン10進数形式の変数へのアクセスを有する言語のバイナリコードを最適化する方法、並びにその最適化装置及びコンピュータ・プログラム
US9329861B2 (en) 2011-12-29 2016-05-03 International Business Machines Corporation Convert to zoned format from decimal floating point format
US9335993B2 (en) * 2011-12-29 2016-05-10 International Business Machines Corporation Convert from zoned format to decimal floating point format
US10061581B2 (en) * 2014-01-31 2018-08-28 Qualcomm Incorporated On-the-fly conversion during load/store operations in a vector processor
US11204764B2 (en) * 2016-03-31 2021-12-21 Intel Corporation Processors, methods, systems, and instructions to Partition a source packed data into lanes
US11442726B1 (en) 2021-02-26 2022-09-13 International Business Machines Corporation Vector pack and unpack instructions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3292158A (en) * 1963-07-30 1966-12-13 Bunker Ramo Data processing apparatus including means for processing word and character formatted data
US3387280A (en) * 1965-10-04 1968-06-04 Sperry Rand Corp Automatic packing and unpacking of esi transfers
US3493936A (en) * 1967-05-04 1970-02-03 Ncr Co Low cost high capability electronic data processing system
US3599186A (en) * 1970-05-14 1971-08-10 Ibm Memory-centered computer system
DE2136536C3 (de) * 1971-07-22 1980-02-14 Ibm Deutschland Gmbh, 7000 Stuttgart Anordnung zur Komprimierung binarer Daten
US3772654A (en) * 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
DE2233164C3 (de) * 1972-07-06 1978-03-09 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Schaltungsanordnung zur Übertragung von aufeinanderfolgenden Bitstellen zwischen zwei Registern

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19581873T1 (de) * 1994-12-01 1997-12-11 Intel Corp Ein neuartiger Prozessor mit Schieboperationen
DE19581873C2 (de) * 1994-12-01 1999-04-15 Intel Corp Prozessor zum Ausführen von Schiebeoperationen an gepackten Daten

Also Published As

Publication number Publication date
JPS615169B2 (de) 1986-02-17
JPS5389332A (en) 1978-08-05
US4141005A (en) 1979-02-20
FR2371013A1 (fr) 1978-06-09
FR2371013B1 (de) 1981-05-29
GB1534230A (en) 1978-11-29
DE2748991A1 (de) 1978-05-18

Similar Documents

Publication Publication Date Title
DE2748991C2 (de) Einrichtung zur Umsetzung von Dezimalzahlen
DE69124437T2 (de) Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE4010119C2 (de) Anordnung und Verfahren zur Umordnung eines Speicherformats in einem Mikroprozessor
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE1549523B2 (de) Datenverarbeitungsanlage
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE1274825B (de) Speicherprogrammiertes Datenverarbeitungssystem zur Verarbeitung von Programmen anderer Datenverarbeitungssysteme
DE2756768A1 (de) Mikroprozessor-architektur
DE2339636A1 (de) Programmsteuereinrichtung
DE2744434A1 (de) Prozessteuersystem und verfahren zur prozessteuerung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2747304B2 (de) Einrichtung zur Mikrobefehlssteuerung
DE1549381B2 (de) Datenverarbeitungsanlage
DE2000275A1 (de) Elektronischer Walzenschalter
DE2024584B2 (de) Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung
DE1916377A1 (de) Verfahren und Anordnung zur Verschiebung von Datenfeldern
DE3134057A1 (de) Datenverarbeitungsanlage
DE2508141A1 (de) Verfahren zur transformation von reellen zahlen
DE3341339A1 (de) Befehlsfolgegenerator
DE2042596A1 (de) Schaltungsanordnung zur Umsetzung eines einzigen kodierten Eingangszeichens in eine Mehrzahl kodierter Ausgangszei chen
DE1499233C3 (de) Kombinationsrechenanlage
DE2259702A1 (de) Verfahren und schaltung zur codierung von zeichen variabler laenge mit minimaler redundanz unter verwendung bekannter binaerer codebaumstrukturen

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee