DE2458286A1 - Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen - Google Patents

Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen

Info

Publication number
DE2458286A1
DE2458286A1 DE19742458286 DE2458286A DE2458286A1 DE 2458286 A1 DE2458286 A1 DE 2458286A1 DE 19742458286 DE19742458286 DE 19742458286 DE 2458286 A DE2458286 A DE 2458286A DE 2458286 A1 DE2458286 A1 DE 2458286A1
Authority
DE
Germany
Prior art keywords
data
data field
descriptor
memory location
length
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.)
Withdrawn
Application number
DE19742458286
Other languages
English (en)
Inventor
Charles W Bachman
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2458286A1 publication Critical patent/DE2458286A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Description

51-01273 Ge ■ ir. Dezember 1974
Hz/de
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass., USA
Datenverarbeitungssystem zum Verschieben von Datenfeldern mit verschiedenen Strukturen.
Die Erfindung betrifft ein Verfahren zum Verschieben von verschiedene Datenstukturen aufweisenden Datenfeldern von einem ersten nach einem zweiten Speicherplatz sowie ein Datenverarbeitungssystem zur
Durchführung des Verfahrens. · - · '
Moderne Datenverarbeitungsanlagen v/eisen eine derart hohe Operationsgeschwindigkeit auf, daß ein einzelner Benutzer gar nicht in der Lage ist, die Anlage ausreichend mit Daten zu speisen und. somit die Möglichkeiten des Systems voll auszunutzen. Aus diesem Grund werden oftmals einzelne Datenverarbeitungsanlagen im Timesharing-Verfahren benutzt, wobei eine Vielzahl von Benutzern Zugriff zu der Anlage hat. Ein bedeutendes Problem aus der Benutzung einer, Datenverarbeitungsanlage im Timesharing-Verfahren· ergibt sich aus der Tatsache, daß die große Anzahl der Benutzer der Anlage ihre eigenen Dateien besitzen , und deshalb die Daten in der Datenbank in einer Vielzahl von verschiedenen Möglichkeiten gekennzeichnet sind. Als Folge hiervon ergibt sich eine Vielzahl verschiedener Datentypen, und ..die Hersteller der· Datenverarbeitungsanlagen müssen komplizierte Programme schreiben, um diese verschiedenen Datentypen umzuwandeln und zu verarbeiten. Die Verwendung dieser komplizierten Programme ist insofern unvorteilhaft, als diese Programme hinsichtlich der für die verschiedenen Datentypen erforderlichen Befehle einen großen Betrag von Speicherkapazität erfor-
509825/0786
dern und zudem ein Erhöhung der Bearbeitungszeit der vorliegenden Daten durch die Datenverarbeitungsanlage hervorrufen.
Für grundlegende Operationen, so z.B. eine Verschiebe-Operation hat das Konzept der Datenunabhängigkeit Bedeutung erlangt. In Dateien, welche durch Descriptoren gesteuert werden, z. B. Dateien wo die Beschreibung des Inhalts und der Struktur der Daten separat vom Programm vorliegt, erfordert die Datenunabhängigkeit zwei Formen der Datenfeld-Darstellung, z. B. zuerst die Form des Datenfeldes wie es vom Programm aus gesehen wird und zum zweiten die Form des Datenfeldes in einem sekundären Speicher. Dieses Erfordernis erschwert jedoch das vielfache Entblocken und wiederum blockweise Zusammenfügen der Daten. Es kann gezeigt werden, daß ein wesentlicher Betrag der Daten-Verarbeitungszeit dazu benötigt wird, die Art des Verschiebe-Befehls zu decodieren, welche erforderlich ist, um die Daten zu Entblocken bzw. blockweise zusammenzufügen und zweitens- die Auswahl des spezifischen Verschiebe-Befehls zu treffen, welcher auf den Charakteristiken der erhaltenen und ausgegebenen Operanden basiert.
Eine bekannte Lösung des Problems der Erzeugung eines Verschiebe-Befehls zum Entblocken und blockweisen Zusammenfügen verschiedener Datenformate benutzt einen Befehl, welcher zusätzliche Bits aufweist. Einige dieser zusätzlichen Bits verweisen auf den Datentyp des Ursprungs und die verbleibenden Bits verweisen auf den Datentyp am Bestimmungsort. Auf diese Weise ist es möglich, eine geeignete Subroutine aufzurufen ,um die Daten von dem ürsprungsor't nach dem Bestimmungsort zu übertragen. Während diese Lösung keine Subroutine erfordert, um das Datenformat zu bestimmen, besitzt sie jedoch den Nachteil, daß · •die Datentypen zuvor bekannt sein müssen. Kenn somit neue Benutzer an das Datenverarbeitungssystem angeschlossen werden, so wird ein Rückgriff auf die frühere Praxis erforderlich, d. h. es wird ein neues Programm und zusätzlicher Speicherplatz benötigt.
Es ist die Aufgabe der vorliegenden Erfindung ein Datenverarbeitungssystem der eingangs genannten Art so zu verbessern, daß,unabhängig von den dem Datenverarbeitungssystem benutzerseitig angebotenen Datentypen, eine Änderung des Programmes bzw. die Belegung zusätzlichen Speicher-
509825/0766
platzes nicht erforderlich ist. Die Lösung dieser Aufgabe gelingt gemäß dem im Anspruch 1 gekennzeichneten erfindungsgeinäßen Verfahren. Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sowie ein Datenverarbeitungssystem zur Durchführung des erfindungsgemäßen Verfahrens sind in den Unteransprüchen gekennzeichnet. . .
Anhand der Figuren der beiliegenden Zeichnungen wird im folgenden ein Ausführungsbeispiel der Erfindung näher beschrieben. Es zeigen: Figur 1 ein schematisches Diagramm der verschiedenen in der vorliegenden Erfindung benutzten Hardware-Strukturen, . Figur 2 ein allgemeines Elockdiagramm eines Datenverarbeitungssy- , stems zur Ausführung der vorliegenden Erfindung, Figuren 3a bis 3c ein Flußdiagramm basierend auf dem Verschiebe-Bef ehl und . Figur 4 ein schematisches Schaltungsdiagramm wie es bei dem Datenverarbeitungssystem gemäß Figur 2 benutzt wird,und welches dazu ausgelegt ist, den Verschiebe-Befehl gemäß Figur 3 in Übereinstimmung mit der vorliegenden Erfindung auszuführen.
Gemäß Figur 1 sind die Worte,welche die Ausführung des Verschiebe-Bef ehls gemäß der vorliegenden Erfindung bewirken,dargestellt. Insbesondere zeigt Figur la das erste Wort eines Verschiebe-Befehls 100 f wie er in der vorliegenden Erfindung benutzt wird. In Figur la kennzeichnen die ersten acht Bits einen Operationscode OP,wobei dieser Operationscode eine besondere Bit-Zusammenstellung aufweist, die im Falle ihrer Decodierung eine Identifikation des Verschiebe-Befehls ermöglicht. Die nächsten vier Bits, d.h. die Bits 8 bis 11 sind mit MBZ bezeichnet (must be zero),wodurch angezeigt wird, daß diese Bits alle Null sein müssen. Die Bits 12 bis 31 kennzeichnen die erste Adressilbe, welche eine logische Darstellung des Ursprungsfeld-Operanden im Speicher kennzeichnet.
Für die spezielle hier benutzte Art der Operation ist das erste Bit der Adressilbe, d.h. das Bit 12 auf den Binärwert "1" gesetzt. Diesel
509825/0766
Bit wird benutztem einindirektes Adressierverfahren hervorzurufen, welches von Datenfeld-Descriptoren wie in Figur Ic dargestellt, Gebrauch macht und welches in der die gleiche Priorität aufweisenden Deutschen Patentanmeldung P ..... (US-Serial-Number 424 259) im einzelnen näher beschrieben ist.
Für den Verschiebe-Befehl sind zwei Adressilben erforderlich, da die Merkmale des Ursprungsortes und des Bestimmungsortes bekannt sein müssen. Somit kennzeichnet die erste Adressilbe ASl, d.h. die Bits 12 bis 31 den logischen Operanden am Ursprung wie er durch den Benutzer gegeben ist und in einen Speicherplatz gebracht wird f und die zweite Adressilbe AS2, d.h. die Bits AA. bis 63 beschreiben, den logischen Operanten am Bestimmungsort.
Jede Adressilbe ASl und AS2 eines Verschiebe-Befehls verweist auf einen Datenfeld-Descriptor, wie er in Figur Ic als die Worte 102, 104 und 106 dargestellt ist. Die Worte 102 und 104 können unter Umständen in den allgemeinen Registern,wie sie durch die Bits 32 bis 39 gemäß Figur Ib bestimmt sind gespeichert sein. In dem zweiten Wort des Befehls 100 kennzeichnen die Bits 32 bis 35 ein erstes allgemeines Register GRl, welches der ersten Adressilbe ASl zugeordnet ist/und die Bits 36 bis 39 kennzeichnen ein zweites allgemeines Register GR2f welches die durch die zweite Adressilbe AS2 entwickelte Information speichert. Die zweite Adressilbe AS2 ist in den Bits 44 bis 63 enthalten, welche in gleicher Weise wie die Adressilbe ASl über ein indirektes Adressierverfahren einen Datenfeld-Descriptor in Figur Ic bestimmt.
Ein Datenfeld-Descriptor kann bis zu drei Worte umfassen, v/ie dies durch die Worte 102, 104 und 106 dargestellt ist. Das Wort 102 ist ein Daten-Descriptor, welcher in seinen beiden ersten Bit-Stellen ein Hinweis-Feld besitzt. Dieses Hinweis-Feld weist einen Code 01 auf, wodurch angezeigt wird, daß ein zusätzliches Wort einen Teil des Descriptors bildet. Dieses zusätzliche Wort ist ein ausgedehnter Daten-Descriptor 104, welcher auf ein anderes nachfolgend erläutertes Wort 106 hinweisen kann. Das Wort 102 umfasst ferner segmentiert^
509825/0766
Adressen,die mit STE,- STN und Verschiebung bezeichnet sind. Diese Felder bestimmen den Ort des Operanden, d.h. des Datenfeldes, welches den ausgedehnten Daten-Descriptor beschreibt. Die Entwicklung der segmentierten Adresse ist in der zuvor erwähnten prioritätsgleichen Anmeldung genauestens beschrieben. Es kann1jedoch auch irgendein anderes indirektes Adressierverfahren Verwendung finden, da das Wort 102 lediglich eine beispielhafte Darstellung zeigen soll.
Das Wort 104 ist ein ausgedehnter Daten-Descriptor, welcher auf den Operanden bezogene Descriptoren enthält. Diese Descriptoren v/erden durch weiter hinten beschriebene Schaltkreise decodiert. Insbesondere stellen in dem Wort 104 die Bits 32 bis 34 eine Bit-tZeichenfolge dar, welche dem Anwender die. Möglichkeit bietet, die Information seiner Dateien in der Form von Bit-Zeichenfolgen dicht zu packen. Das Bit 35 muß den Binärwert "0" aufweisen. Eine Feldsteuerung des. Operanden wird durch die Bits 36 bis 38 festgelegt. Die Feldsteuerung bedeutet, daß mehr als ein Operand in dem durch die Adressilbe bezeichneten Datenfeld abgelegt ist. Wenn das Bit 36 den Binärwert "1" aufweist, so wird auf das ein Längen- und Größenfeld aufweisende Wort 106 zurückgegriffen, um den Ort des besonderen Operanden und seiner Größe in den Bits 36 bis 38 zu bestimmen.
Das Bit 39 des Wortes 104 kennzeichnet einen Veränderungs-Indikator. Liegt der Veränderungs-Indikator vor', d.h. wenn das Bit den Binärwert "1" aufweist, so kann der Oparand in dem Ursprungsfeld,wie er durch die Datenfeld-Descriptoren beschrieben istfin den durch das Bestimmungsfeld festgelegten Operanden umgeschrieben werden.
Die Bits 40 bis 63 des Wortes 104 beinhalten die Datenfeld-Descrip- , torenfwelche Wesensmerkmale der Daten kennzeichnen. Insbesondere kennzeichnen die Bits 40 bis 47 den Datentyp, wobei der Datentyp eine Beschreibung gewisser Merkmale des Formates der Informationfwie' es durch den Benutzer vorgesehen ist, darstellt. Zum Beispiel kann durch einen Binärcode mit einem gewissen Wert eine alphanummerische
50 9 8 25/0766
Zeichenfolge, eine ungepackte Dezimalzahl, eine gepackte Dezimalzahl und andere verschiedene Informationsformate bezeichnet werden. Hinsichtlich des Verschiebe-Befehls können vier Gruppen unterschieden' werden. Die erste Gruppe ist das alphanumerische Zeichenfolge-Format, wobei Feld zu Feld Transformationen stattfinden. Die zweite Gruppe umfasst ungepackte und gepackte Dezimalzahlen, welche der erhaltenen Feldkonfiguration angepaßt werden. Die dritte Gruppe betrifft zusätzliche Formate,welche in die erhaltene Feldbeschreibung übergeführt werden müssen. Die vierte Gruppe umfasst schließlich Formate, die einer überführung nicht zugänglich sind und eine Ausnahmebedingung hervorrufen, wodurch ein anderer Mechanismus in Gang gesetzt wird. Die Umsetzung der Formate wird durch bekannte Mittel, so z.B. einen programmierbaren Festwertspeicher (PROM) bewerkstelligt. In Abhängigkeit von dem Daten-Prozessor können die folgenden Datentypen zumindest in die dritte Gruppe einklassiert v/erden: Zeichenfolgen, kurze Binärdaten ohne Vorzeichen, kurze Binärdaten mit Vorzeichen, lange Binärdaten ohne Vorzeichen, lange Binärdaten mit Vorzeichen, kurze logische Binärdaten und lange logische Binärdaten. Es liegt auf der Hand, daß für den Fall daß andere Formate verwendet werden, entsprechende Übersetzungstabellen für diese Formate vorgesehen werden können.
Die Bits 48 bis 55 bestimmen das Kennschlüsselfeld der Operanden. Das Kennschlüsselfeld ist eine Beschreibung gewisser Merkmale eines besonderen Datentypes, z. B. eine Beschreibung der Form der Information, welche der Benutzer vorgesehen hat. Als Folge davon ergibt das Kennschlüsselfeld eine zweite überlagerung von Anforderungen an den Datentyp. Wenn z. B. kp/cm^ von einem Ursprungsfeld in kp in einem Bestimmungsfeld verschoben werden soll, so zeigt das Kennschlüsselfeld an, daß eine solche Operation nicht statthaft ist. Nur für den Fall, daß die Datentypen kompatibel sind, kann eine Umwandlung angefordert werden, falls ungleiche Kennschlüsselfelder vorliegen.
509825/0766
~ 7 — '
Die Bits 56 bis 63 des Wortes 102 stellen eine 8 Bit-Längenbeschreibung des durch die Adressensilbe bezeichneten Operanden dar. Die Längenbeschreibung verweist auf die Anzahl der Bytes in dem Operanden. Die Operandenlänge kann der folgenden Bedingung genügen: Erstens muß für eine Byte-Zeichenfolge die Länge kleiner oder gleich 256 Bytes sein, zweitens muß für eine dezimale Zeichenfolge die Länge kleiner als 32 Ziffern sein.. Wenn die Länge diese Grenzen überschreitet, so liegt eine illegale Daten-Ausnahme vor.
In Figur Ic ist das Wort 106 dargestellt, welches in den Bits 64 bis 79 einen Längenhinweis und in den Bits 80 bis 95 einen Größenhinweis besitzt. Jeder dieser Hinweise wird benutzt, wenn der Feldgrenzeninr dex der Bits 36 bis 39 des Wortes 104 vorliegt. Eine detaillierte Erläuterung dieser Felder ist in der zuvor erwähnten prioritätsgleichen Patentanmeldung gegeben. Zur Vereinfachung der vorliegenden Beschreibung der Erfindung soll der durch das Wort 106 hervorgerufene Mechanismus zum Erzeugen von Daten hier nicht näher erläutert werden.
Die Erläuterung der Operation des Befehls 100, wie er in den Figuren la und Ib dargestellt ist und der Datenfeld-Descriptoren gemäß Figur Ic,wie sie sich aus der Adresse des Befehls 100 ergeben, kann besser verstanden werden, wenn das Blockdiagramm gemäß Figur 2 herangezogen wird, welches ein die Erfindung verwirklichendes Datenverarbeitungssystem zeigt. . · _
Gemäß Figur 2 besteht ein Hauptspeicher 201 aus vier Modulen eines Metalloxydhalbleiterspeichers (MOS). Die vier Speichermodule 0 bis 3 sind über einen Hauptspeicher-Sortierer 202 an eine zentrale Datenverarbeitungseinheit 200 angeschlossen. Die vier Hauptspeichermodule 0 bis 3* sind ebenfalls über den Hauptspeicher-Sortierer 202 und ein Eingangs/Ausgangs-Steuerwerk 220 (IOC) mit dem peripheren Subsystem, z. B. Magnetbandeinheiten und Plattenspeichereinheiten verbunden. Der Hauptspeicher-Sortierer 202 ergibt die, Möglichkeit des Zugriffs zu allen vier Speichermodulen. Da der Hauptspeicher-Sortierer 202 die Hauptspeicher-Zyklusanforderung überlappen kann, kann mehr als ein
509825/0766
Speicherraodul 0 bis 3 zu jedem gegebenen Zeitpunkt einen Arbeitszyklus durchführen. Die Zentraleinheit 200 und ein Pufferspeicher 204 sowie das Eingangs/Ausgangs-Steuerwerk 220 können bei jedem Speicherzugriff ein Doppelwort (8 Bytes) verarbeiten. Bei einem Zentraleinheit-Speicherzugriff werden jedoch die vier hochrangigen Bytes oder die niedrigrangigen Bytes ausgewählt, so daß lediglich . vier. Bytes der Information von der Zentraleinheit 200 erhalten werden.
Die Operationen der Zentraleinheit werden durch einen Festwertspeicher ROM gesteuert, der hier als Steuer-Speicher-Einheit 21O bezeichnet ist. Jeder Speicherplatz innerhalb der Steuer-Speicher-Einheit 210 kann zur Steuerung eines Zentraleinheit-Zyklus herangezogen werden. Beim Auslesen eines jeden Speicherplatzes der Steuer-Speicher-Einheit 210 wird der Inhalt des Speicherplatzes durch eine Mikrooperations-Decodierfunktion decodiert. Jede Mikrooperations-Decodierfunktion verursacht eine spezifische Operation innerhalb der Zentraleinheit. Werden z.B. die Steuerspeicherdaten-Bits 1, 2 und 3 als 010 decodiert, so können diese eine Mikrooperations-Decodierfunktion veranlassen, die eine übertragung von einem A-Register zu einem B-Register hervorruft. Da jeder Speicherplatz der Steuerspeichereinheit 210 30 bis 80 Bits enthalten kann, können sehr viele Mikrooperations-rDecodier funktionen bei jedem S teuer speicher zyklus ausgelöst werden.
Durch Zusammenfassen von Speicherplätzen werden Steuerspeicherschrittfolgen erhalten, die eine spezielle Zentraleinheits-Operation oder einen Befehl darstellen. Da jeder Befehl durch die Zentraleinheit 200 ausgelöst wird, werden bestimmte Bits innerhalb des Operationscode dazu herangezogen, die Startfolge des SteuerSpeichers zu bestimmen. Die Prüfung bestimmter nicht dargestellter Flip Flops, welche durch die durch den Befehl gegebene Decodierfunktion gesetzt oder zurückgestellt sind,gestattet dem Steuerspeicher eine Verzweigung auf eine spezifischere Schrittfolge, falls erforderlich.
509825/0766
— Q _
Ein Steuerspeicher-Schnittstellenadapter 209 steht mit der Steuerspeicher-Einheit 210, einer Datenverwaltungseinheit 206, einer Adressensteuereinheit 207 und einer arithmetischen Recheneinheit 212 in Nachrichtenaustausch. Der Steuerspeicher-Schnittstellenadapter 209 weist Logikschaltkreise zur Adressenmodifikation des Steuerspeichers, Testeinrichtungen, Fehlerprüfeinrichtungen sowie eine Hardware-Adressenerzeugung auf. Die Hardware-Adressenerzeugung wird im allgemeinen dazu herangezogen, die Startadresse von Fehlerfolgen oder für die Anfangsfolge zu ermitteln.
Der Pufferspeicher 204 wird benutztem die zuvor am meist häufigsten benutzte Information, welche von der Zentraleinheit 200 verarbeitet wird, zu speichern. Der Pufferspeicher 204 ist ein relativ kleiner Hochgeschwindigkeitsspeicher, welcher 128 Spalten und 2 Zeilen aufweist, wobei die Zeilen als obere und untere Zeile bezeichnet werden sollen. Er ist logisch unterteilt in Voreinstellblöcke, welche einzeln adressierbar sind. Diese Blöcke werden als Seiten bezeichnet» und jede Seite des Speichers enthält 32 Bytes Information. Eine bestimmte Seite kann durch die signifikantesten 16 Bits der Haup.tspeicheradresse adressiert werden, wobei die am wenigsten signifikanten fünf Bits dazu herangezogen werden, ein besonderes Byte der Information innerhalb der Seite zu adressieren. Die Seiten können vom Hauptspeicher zum Pufferspeicher mit einer festen Spaltenzuordnung transferiert werden, d.h. eine Seite von der Spalte 1 im Hauptspeicher wird immer in die Spalte 1 des Pufferspeichers übertragen. Ob jedoch die Information in der oberen oder- unteren Reihe der Spalte abgelegt ist, hängt von der Verfügbarkeit ab. Für jede Spalte der Hauptspeicher-Seiten ergeben sich daher zwei Seiten in dem Pufferspeicher. Zum Beispiel kann die Spalte 37 im Hauptspeicher irgendeine der zwei Informationsseiten in Spalte 37 des Pufferspeichers enthalten. Die zwei in der Pufferspeicher-Spalte enthaltenen Informationsseiten hängen zu jedem gegebenen Zeitpunkt davon ab, welche Seiten von der Zentraleinheit zuvor am häufigsten benutzt wurden, d. h. die beiden zuvor am häufigsten benutzten Seiten befinden sich typischerweise in dem Pufferspeicher 204.
509825/0766
Die Prüfung,ob eine gegebene Inforraationsseite in dem Pufferspeicher 204 enthalten ist,kann durchgeführt werden durch Überprüfung des Inhalts der Pufferspeicher-Adressliste 205." Die Pufferspeicher-Adressliste 205 ist logisch in der gleichen Weise wie der Pufferspeicher unterteilt; anstelle von Informationsseiten enthält jedoch jede Spalte der Pufferspeicher-Adressliste 205 die Hauptspeicher-Reihenadresse der zugeordneten Information in dem Pufferspeicher 204. Wenn zum Beispiel die Spalte 0 des Pufferspeichers 204 die Seite 20 in der unteren Reihe enthält, so enthält die Pufferspeicher-Adressliste 10100 und 00000 in der oberen und unteren Reihe entsprechend. Somit kann die Zentraleinheit 200 durch Zugriff zu der Pufferspeicher-Adressliste 205 mit der Spaltennummer und durch Vergleich der angeforderten Reihennummer mit der Reihennummer in dem Speicherplatz der Pufferspeicher-Adressiiste bestimmen, ob eine vorgegebene Seite in dem Pufferspeicher enthalten ist.
Die Datenverwaltungseinheit 206 stellt die Datenschnittstelle zwischen der Zentraleinheit 200 und dem Hauptspeicher 201 und/oder Pufferspeicher 204 dar. Während einer Speicher-Leseoperation kann · in dem Hauptspeicher oder Pufferspeicher die entsprechende Information aufgefunden werden. Es liegt in der Verantwortlichkeit der Datenverwaltungseinheit 206, diese Information in die Register der Zentraleinheit im geeigneten Zeitpunkt zu verteilen. Die Datenverwaltungseinheit 206 verwirklicht zudem die Ausblendung während partieller Schreiboperationen.
Eine Befehlabrufeinheit 208 arbeitet mit der Datenverwaltungseinheit 206, der Adressensteuerexnheit 207, der arithmetischen Recheneinheit 212 und der Steuerspeichereinheit 210 zusammen und ist dafür verantwortlich, daß die Zentraleinheit 200 mit Befehlen gespeist wird. Die Einheit 208 hat immer bereits den nächsten Befehl in ihren Registern verfügbar,bevor ein vorliegender Befehl ausgeführt ist. Zur Realisierung dieser Fähigkeit besitzt die Befehlabrufeinheit 208 ein 12-Wort Befehlsregister, welches normalerweise mehr als einen Befehl enthält. Zudem fordert die Befehlabrufeinheit unter der Steuerung
509825/0768
der Steuerspeichereinheit 210 Befehle vom Hauptspeicher 201 an, bevor dieser Befehl benötigt wird und hält somit ihr 12-Wort Befehlsregister laufend auf dem neuesten Stand. Befehle werden im voraus abgerufen durch Rückgriff auf normalerweise nicht benutzte Speicherzyklen. Die Befehlabrufeinheit decodiert ebenfalls jeden Befehl und informiert die anderen Einheiten über die Befehlslänge und das Befehlsformat.
Die Adressensteuereinheit 207 steht über den Steuerspeicher-Schnittstellenadapter 209 mit der Befehlabrufeinheit 208, der Pufferspeicheradressliste 205, dem Hauptspeicher- Sortierer 202, der arithmetischen Recheneinheit.212, der Datenverwaltungseinheit 206 und der Steuerspeichereinheit 210 in Nachrichtenverbindung. Die Adressensteuereinheit 207 ist für jegliche Adressentwicklung innerhalb der Zentraleinheit verantwortlich. Alle Operationen der Adressensteuereinheit sowie alle Datenverschiebungen von und nach der Adressensteuereinheit sowie in der Adressensteuereinheit werden durch Steuerspeicher-Mikrobefehle ausgeführt und durch entsprechende logische Schaltkreise innerhalb der Einheit verwirklicht. Der normale Arbeitsablauf der Adressensteuereinheit hängt von den Arten-der Adressen'innerhalb des Befehls ab anstatt von der Art des Befehls selbst. Abhängig von dem Adressentyp kann die Adressensteuereinheit verschiedene Operationen für jede Adresse in einem Befehl ausführen.
Die Adressensteuereinheit 207 enthält ferner einen Assoziativspeicher, welcher typischerweise die Basisadresse der acht zuvor am häufigsten benutzten Speichersegmente zusammen mit ihren Segmentnummern speichert. Jedesmal wenn eine Speicheranforderung erfolgt, wird die. Segmentnummer mit dem Inhalt des Assoziativspeichers verglichenem fest- ■ zustellen, ob die Basisadresse des Segmentes bereits entwickelt und gespeichert worden ist. Wenn die Basisadresse in dem Assoziativspeicher enthalten ist, wird diese Adresse zur absoluten Adressentwicklung benutzt,und es wird auf diese Weise ein beträchtlicher Zeitbetrag eingespart. Ist die Basisadresse in dem Assoziativspeicher nicht enthalten, so wird sie durch Zugriff zu den Hauptspeichertabellen
509825/0766
entwickelt. Nachdem jedoch die Basisadresse des Segmentes entwickelt ist, wird sie in dem Assoziativspeicher abgespeichert, zusammen mit der Segmentnummer, für eine spätere Bezugnahme.
Mit der Adressensteuereinheit 207, der Befehlabrufeinheit 208 und der Steuerspeichereinheit 210 arbeitet die arithmetische Recheneinheit 212 zusammen, welche den Hauptarbeitsbereich der Zentraleinheit 200 bildet. Die arithmetische Recheneinheit führt in der Hauptsache arithmetische Operationen und Datenmanipulationen, wie sie von der Zentraleinheit gefordert werden,durch. Die Operation der arithmetischen Recheneinheit ist vollständig von den Mikrobefehlen der Steuerspeichereinheit 210 abhängig.
Der arithmetischen Recheneinheit 212 und der Steuerspeichereinheit
210 ist eine lokale Speichereinheit 211 zugeordnet, welche aus einem 256-Speicherplatz-Festkörperspeicher bestehen kann, wobei jeder Speicherplatz 32 Bits aufweisen kann und wobei dem Festkörperspeicher eine Auswahl- und Lese/Schreiblogik zugeordnet ist. Die lokale Speichereinheit 211 wird dazu benutzt, um die Steuer- und Festwert-Informationen der Zentraleinheit zu speichern. Die lokale Speichereinheit
211 enthält zusätzlich Arbeits-Speicherplätze, welche primär zur temporären Speicherung von Operanten und Teilresultaten während einer Datenverarbeitung herangezogen werden.
Die Zentraleinheit 200 enthält typischerweise acht Basisregister, welche in der arithmetischen -Recheneinheit 212 angeordnet sind und welche bei dem Verfahren der Adressberechnung zur Bestimmung einer Segmentnummer,eines Offsets und einer Ringnummer benutzt werden. Der Offset ist ein Hinweis innerhalb des Segmentes und die Ringnummer wird bei der Adressen-Gültigkeitsberechnung benutzt, um Zugriffsrechte für einen bestimmten Bezug auf ein Segment zu bestimmen.
Die Eingangs/Ausgangs-Steuereinheit 220 bildet denjenigen Teil des Subsystems der Zentraleinheit, welcher einen Nachrichtenweg zwischen einer Anzahl von peripheren Subsystemen zu dem Hauptspeicher herstellt.
509825/0766
- 3 3 -
Die Einheit 220 erlaubt die Ausführung peripherer Steuerbefehle,und sie überwacht die sich daraus ergebende Datenübertragung. Die Eingangs/Ausgangs-Steuereinheit 220 kann maximal.16 Kanäle bedienen, wobei an jeden Kanal eine perephere Steuereinheit angeschlossen ist. Die peripheren Steuereinheiten versorgen das Subsystem der Zentraleinheit mit den Dateien der Benutzer.
Gemäß den Figuren 3a bis 3c ist ein Flußdiagramm des Ver.schiebe-Befehls dargestellt. Liest man die Figur 3 im Zusammenhang mit den Figuren 2 und 4 so wird die Gesamtfunktion des Systems verständlich. Figur 4 ist ein schematisches Diagramm ,welches die Übertragung und Verarbeitung der Daten durch den Verschiebe-Befehl in der'Systemebehe veranschaulicht. · ■ -;
Gemäß Figur 4 wird der in den Figuren la und Ib dargestellte Befehl 100 in einem Befehlsregister 400 der Befehlabrufeinheit 208 gespeichert. Der die Verschiebeoperation bewirkende Code wurde durch den Steuerspeicher-Schnittstellenadapter 209 ermittelt, welcher seiner- · seits die Steuerspeichereinheit 210 veranlasst, eine Reihe von.Tests hinsichtlich der Daten und Datenfeld-Descriptoren sowohl der Ur- ' sprungsdaten als auch der Bestimmungsdaten durchzuführen. Diese Tests werden durch Mikrobefehle der Steuerspeichereinheit 210 durchgeführt. Die Ergebnisse dieser Tests werden durch den Steuerspeicher-Schnittstellenadapter 209 festgehalten, welcher in Abhängigkeit von den Testergebnissen den nächsten Mikrobefehl modifizieren kann, so daß ein bezogener, die festgestellte Bedingung beinhaltender Mikrobefehl erzeugt wird.
Die Verbindung der Steuerspeichereinheit 210 und des Steuerspeicher-Schnittstellenadapters 209 ergibt eine Mikroverzweigungstechnik, wobei die von dem Steuerspeicher-Schnittstellenadapter 209 erhaltenen Signale in eine direkte Adresse der Steuerspeichereinheit 210 umgewandelt werden. .Durch die sich erg-ebende Operation wird ein direkter Informationsweg für nachfolgende Datenübertragungen hergestellt, wobei die zuvor festgestellten Bedingungen berücksichtigt werden. Diese
509825/0766
Folge von Ereignissen tritt bei jeder Rautendarstellung in Figur 3 auf und wird nachstehend im Detail nicht näher beschrieben. Eine nähere Erläuterung dieser Operation -kann den US.-Patentschriften 3 634 883 sowie 3 560 993 entnommen werden.
Bevor die Zentraleinheit 200 zu arbeiten beginnt, wird der Befehl 100 einer Behandlung unterzogenem den Datenfeld-Descriptor und das Datenfeld zu ermitteln. Während es viele verschiedene Verfahren für eine indirekte Adressentwicklung gibt - so ist zum Beispiel ein bekanntes diesbezügliches Verfahren in dem US-Patent 3 412 382 abgehandelt - macht die Erfindung von dem nachstehenden bevorzugten Verfahren Gebrauch.·
Jede Adressilbe enthält ein vorbestimmtes Bit-Feld, durch welches ein Basisregister innerhalb der arithmetischen Recheneinheit 212 gekennzeichnet wird. Dieses Basisregister enthält eine Segmentnummer und einen Offset. Die Segmentnummer bezeichnet eine Tabelle, welche einen Descriptor beschreibt, der das Segment angibt, in dem der gewünschte Daten-Descriptor gespeichert ist. Um diesen Daten-Descriptor zu identifizieren, wird der durch das Basisregister erzeugte Offset zu dem Verschiebefeld der Adressilbe addiert.
Der Daten-Descriptor kann bis zu drei Worte aufweisen wie dies in Figur Ic dargestellt ist. Dies wird zu Anfang festgestellt, indem das Hinweisfeld des Wortes 102 getestet wird.· Wenn das Hinweisfeld eine Ol-Codierung aufweist, steht es fest, daß zumindest ein weiteres Wort, z. B. das Wort 104 existiert. Nachdem das Wort 104 abgerufen ist, werden die Bits 36 bis 38 überprüft,um festzustellen, ob das Wort 106 ebenfalls abgerufen werden soll.
Das Wort 102 wird benutzt, um den Speicherplatz des gewünschten Operanden zu identifizieren, während die Worte 104 und 106 die Merkmale des Operanden bezeichnen.
509825/0766
Das Wort 102 wird in der gleichen Weise wie die Adressilbe entwickelt. Somit ist ein Basisregister vorhanden ι und das Basisregister weist eine Segmentnummer und einen Offset auf. Nachdem die Segmentnummer auf eine Tabelle bezogen ist/um einen Segment-Descriptor anzugeben, der auf das Segment verweist, welches den Operanden enthält, wird der Offset in dem Basisregister zu der Verschiebung des Wortes 102 addiert, wodurch die exakte Speicherstelle des Operanden innerhalb des Segmentes gekennzeichnet wird. Alle diese Berechnungen werden in dem arithmetischen Rechenwerk 212 in einer bekannten Weise durchgeführt.
Zur Entwicklung des Datenfeld-Descriptors und des Operanden wird die Adressilbe des Befehls zusammen mit einem Basisregister herangezogen, um die Datenfeld-Descriptoren 102 bis 106 zu bestimmen. Das Wort 102 wird sodann in Verbindung mit einem anderen Basisregister benutzt, um den besonderen gewünschten Operanden zu bestimmen. Die Worte 104 und 106 beschreiben die Merkmale des auf diese Weise ermittelten Operanden.
Im Startschritt 300 gemäß Figur 3a sind die Merkmale der Datenfeld-Descriptoren, d. h. das Wort 1O4 und falls erforderlich das Wort 106 mit den folgenden Resultaten getestet worden: Die Datentypen sind legal und es wurde festgestellt, daß sie kompatibel sind und daß ihre Kennschlüsselfelder bekannt sind und einander identisch sind. Nach diesem Test werden die Datenfeld-Descriptoren, die der ersten und zweiten Adressilbe zugeordnet sind, in Arbeitsregistern 406 innerhalb der lokalen Steuereinheit 211 gespeichert.
Im Schritt 302 enthält das AC-Register 408 das mit dem ..Ursprungsoperanden verbundene Wort 104 und das AD-Register 410 enthält das mit dem Bestimmungsoperanden verbundene Wort 104. Ein Auswahlmechanismus 428 wählt das Längen-Byte, d. h. die Bits 57 bis 63 sowohl vom AC-Register als auch vom AD-Register, aus und überträgt sie in das AA-Register 412 und das AB-Register 414. Der Auswahlmechanismus 428
509825/0766
behandelt jedes Byte des AC- oder AD-Registers für sich. Dies kann bewerkstelligt v/erden durch Verschieben der Registerinhalte nach vorbestimmten Speicherplätzen oder durch die bloße Auswahl irgendeiner Bit-Position innerhalb der Register. Der Aufbau eines solchen Auswahlmechanismus ist im Stand der Technik bestens bekannt und braucht daher hier nicht näher beschrieben zu werden.
Im Schritt 304 wird das Längenmerkmal der ersten Adressilbe überprüft um festzustellen, ob es den Binärwert 11O" aufweist oder nicht. Dies wird verwirklicht durch Subtraktion einer Konstante über das AG-Register 420 von dem im Register 412 enthaltenen Längenmerkmal. Die Null-Konstante wird unter der Steuerung der Steuerspeichereinheit 210 geladen. Da angenommen werden kann, daß jedes Feld auf das Bezug genommen wird, eine Länge aufweist, ergibt sich im Falle eines Subtraktionsergebnisses von Null eine tatsächliche Feldlänge von Bytes. Wenn daher ein Null-Resultat festgestellt wird, lädtdie Steuerspeichereinheit 210 im Schritt 306 das AA-Register 412 in all seinen Stellen mit dem Binärwert "1".
Im Schritt 308 wird der gleiche Test hinsichtlich des Längenmerkmals des Bestimmungsoperanden ausgeführt. Dieser Längenwert ergibt den geforderten und zu reservierenden Raum für den Operanden im BeStimmungsfeld. Der Schritt 308 entspricht dem Schritt 304 mit der Ausnahme, daß die Konstante die in das AG-Register 420 geladen wird, von dem AB-Register 414 über den Rechner 422 subtrahiert wird. Zu diesem Zeitpunkt ist die Länge eines jeden an der Verschiebeoperation beteiligten Operanden bekannt.
Im Schritt 312 wird eine Bestimmung des Datentypes der Ursprungsdaten und der Bestimmungsdaten durchgeführt. In Abhängigkeit von dem Datentyp werden Verzweigungen zu den verschiedenen Mikrobefehlen in der Steuerspeichereinheit 210 vorgenommen. Im Schritt 312 wird die Bestimmung der Datentypen durch übertragung der Bytes eines jeden Datentypes in die AA- und AB-Register vorgenommen, wobei dies über den Auswahlmechanismus 428 geschieht, der auf die Register 408 und 410 einwirkt. Der Datentyp der in dem AA-Register 412 gespeicherten Ursprungs-
509825/0766
"- 17 ■ ~
daten wird sodann durch Subtraktion von einer in das AG-Register 420 geladenen Konstanten vorgenommen,wobei diese Subtraktion durch die SteuerSpeichereinheit 210 gesteuert wird. Wenn die Prüfung des Ergebnisses ergibt, daß der Datentyp' eine alphanummerische Zeichenfolge ist, so tritt eine Verzweigung nach dem Schritt 316 gemäß Figur 3b auf. Ergibt der Test, daß der Datentyp eine gepackte oder ungepackte Dezimalzahl ist, so erfolgt eine Verzweigung nach dem Schritt 320. Jede dieser Mikroverzweigungen löst eine Folge von Schritten aus,um die übertragung der Daten zu dem Bestimmungsort zu steuern. Im Schritt 314 erfolgt demnach die Prüfung des Datentypes. Da zuvor ermittelt wurde, daß die Datentypen kompatibel sind, braucht nur der erste Datentyp ermittelt werden,um die vorzunehmende Verzweigung festzulegen.
Zum Zwecke der Erläuterung sei angenommen, daß eine gepackte oder ungepackte Dezimalzahl als Datentyp ermittelt wurde. Wird dieser Zustand festgestellt, so erfolgt eine Verzweigung nach dem Schritt 318, und es werden folgende Schritte hinsichtlich der gepackten oder ungepackten Dezimalzahl durch Mikrobefehle der Steuerspeichereinheit 210 der Reihe nach durchgeführt.
Im Schritt 318 wird der den Ursprungsdaten, d.h. der ersten Adresssilbe zugeordnete Längen-Descriptor im AA-Register 412 gespeichert. Da eine dezimale Zeichenfolge weniger als 32 Ziffern aufweisen muß, wird das Längen-Byte getestet um festzustellen, ob diese Anforderung erfüllt ist. Wird durch Subtraktion einer in der AG-Register 420 geladenen Konstante 32 ein Ergebnis mit einem Wert geringer als Null festgestellt, so wird der Schritt 321 ausgeführt. Ergibt die Subtraktion eine positive Zahl, so liegt eine illegale Datenausnahme vor, was zu dem Schritt 322 führt. Dieser Schritt 322 setzt eine Ausnahmeroutine in Gang, welche anzeigt, daß der Datentyp nicht korrekt ist. Da es unüblich ist, daß eine Zahl mehr als 32 Ziffern aufweist, folgt nunmehr der Schritt 321. Im Schritt 321 wird der gleiche Test hinsichtlich des Längen-Datenfeld-Descriptors ,bezogen auf die Eestimmungsdaten, durchgeführt.
509825/0766
Im Schritt 324 wird bestimmt, ob die Ursprungsdaten eine .legale Darstellung aufweisen. VJenn sich die Bestimmungsdaten aus einer Übertragung legaler Ursprungsdaten ergeben, so ist ein .entsprechender Schritt für die Bestiiranungsdaten nicht erforderlich. Für eine Dezimalzahl schließt die Bestimmung der Legalität einen Test dahingehend ein, ob die Ursprungsdatendarstellung eine Einärzahl größer als 1001 enthält, d. h. die Vier-Bit-Einärzahl darf keinen Wert größer als 1001 haben, was einer Dezimalzahl von 9 entspricht. Schließlich wind ein Test dahingehend durchgeführt, ob die das Vorzeichen festlegende Binärzahl kleiner als 1010 ist.
Eine gepackte Dezimalzahl wird durch eine Reihe angrenzender Bytes im Hauptspeicher dargestellt, wobei diese Bytes das Vorzeichen und die Größe einer dezimalen ganzen Zahl darstellen. Jedes Byte weist eine Zahlencodierung bestehend aus zweimal vier Bit auf, mit Ausnahme des am weitesten rechts stehenden Bytes, welches aus einer Zahlencodierung von vier Bit und einer Zeichencodierung von vier Bit besteht. Hinsichtlich einer gepackten Dezimalzahl sind Zeichencodierungen von 1010 bis 1111 und Vorzexchencodxerungen von 0000 bis 1001 illegal.
Eine ungepackte Dezimalzahl besteht aus einer Reihe aneinander grenzender Bytes im Hauptspeicher, wobei diese eine Vorzeichen- und -Größendarsteilung einer ganzen dezimalen Zahl vorgeben. Jedes Byte weist eine Zahlencodierung aus vier Bit sowie eine Vier-Bit-Zone auf, mit Ausnahme des am weitesten rechts stehenden Byte, welches eine Zahlen- und Vorzeichencodierung enthält. Die Zonencodierungen eines jeden Byte der ungepackten Dezimalzahl werden durch die Steuerspeichereinheit 210 nicht getestet. Die Darstellung einer ungepackten Dezimalzahl ist dann illegal, wenn - wie dies auch bei der .gepackten Dezimalzahl der Fall war - entweder eine Zahlencodierung oder eine Vorzeichencodierung illegal ist. .
Nach dem Schritt 324 führt die Steuerspeichereinheit 210 Mikrobefehle durch, um den Datentyp des Ursprungsoperanden mit dem Datentyp des Bestimmung soperanden zu vergleichen. Als Ergebnis des Vergleichs-
509825/0766
resultats ergibt sich im Schritt 326 eine Mehrfach-Verzweigungs-Situation. Dieser Schritt wird ausgeführt durch Subtraktion des Wertes des mit dem Ursprungsoperanden verbundenen Datentypes von dem mit dem Bestimmungsoperanden verbundenen Datentyp. Als Ergebnis dieser Subtraktion ergibt sich eine Zahl, welche die Mehrfach-Verzweigungs-Operation in Gang setzt. So ergibt sich eine Verzweigung nach dem Schritt 328 wenn die Ursprungsdaten als ungepackte Dezimalzahl und die Bestimmungsdaten als gepackte Dezimalzahl vorliegen. Liegen die Ursprungsdaten als gepackte Dezimalzahl und die Bestimmungsdaten als ungepackte Dezimalzahl vor, so erfolgt eine Verzweigung nach dem Schritt 330. Sind sowohl die Ursprungsdaten als auch die Bestimmungsdaten vom gleichen Typ so wird der Schritt 332 ausgeführt.
Hinsichtlich des Schrittes 324 sowie der Schritte 328, 330 und 332 . wird zu dem Hauptspeicher 201 zugegriffen,um die Ursprungsoperanden zu erhalten. Dies geschieht folgendermaßen: Der Speicherplatz im Hauptspeicher wie er durch die erste Adressilbe bestimmt ist, wird als Daten-Descriptor entwickelt, welcher den richtigen Speicherplatz kennzeichnet. Die Daten werden sodann aus dem Hauptspeicher in das DK-Register 402 der Datenverwaltungseinheit 206 abgerufen. Die Daten werden sodann in die Arbeitsregister 406 der lokalen Steuereinheit 211 übertragen. VJenn die aufeinanderfolgenden Bytes dem Speicher entnommen sind und das Längenfeld auf Null zurückgeführt ist, so wird die Übertragung der Information aus dem Hauptspeicher angehalten. Mit der nunmehr im Arbeitsspeicher-Register 406 abgelegten Information wird sodann mit Hilfe einer Mikrooperationssteuerung die erforderliche Übertragung zu den AC- oder AD-Registern vorgenommen. Hinsichtlich der Übertragung der Daten nach dem Bestimmungsregister begrenzt der Aufbau des Datenverarbeitungssystems die Anzahl der in einem bestimmten Augenblick übertragenen Bytes. Bei dem in Figur 2 beschriebenen System ist die Übertragung von jeweils 2 Bytes zu jedem Zeitpunkt möglich.
Im Schritt 328 wird die Umwandlung einer ungepackten Dezimalzahl in eine gepackte Dezimalzahi vorgenommen. Dies wird bewerkstelligt,indem
509825/0 766
die Zahlendarstellung verwendet und die Zonendarstellung des ungepackten Dezimal-Bytes eliminiert wird. Hinsichtlich des letzten Bytes der ungepackten Dezimalzahl werden die Binärzahl von vier Bit und das binäre Vorzeichen von vier Bit ausgewechselt,wodurch eine Übereinstimmung mit der Form der gepackten Dezimalzahldarstellung hergestellt wird. Liegen die Ursprungsdaten in gepacktem Format vor und wird eine Darstellung der Bestimmungsdaten in gepacktem Format gefordert , so stellt der Schritt 332 eine bloße Übertragung der Information in einen durch den Datenprozessor festgelegten Bestimmungs-Speicherplatz dar.
Im Schritt 330 wird die Umwandlung eines gepackten Dezimalformates in ein ungepacktes Dezimalformat vorgenommen. Dies geschieht durch Addition einer Vier-Bit-Zone zu jeder dezimalen Darstellung in dem gepackten Format und durch Auswechseln des Speicherplatzes der Ziffern- und Vorzeichencodierungen im letzten Byte. Somit liegen die Ursprungsdaten in einem ungepackten Format vor. Im Schritt 332 wird eine Übertragung der Ursprungsdaten nach dem Bestimmungsspeicherplatz vorgenommen ohne daß die Information eine Änderung erfährt.
Die Formatumwandlung der Daten aus einer gepackten Dezimaldarstellung in eine ungepackte Dezimaldarstellung oder umgekehrt wird durch Heranziehung des AG-Registers verwirklicht, welches die Zonenkonstante erzeugt. Soll die Formatumwandlung aus einer gepackten Dezimaldarstellung in eine ungepackte Dezimaldarstellung ausgeführt werden, so wird der Rechner 422 durch die Steuerspeichereinheit 210 auf addieren geschaltet. Die Zahlencodierung ist in den niederen vier Bits des Bytes und die Zonencodierung ist in den höheren vier Bits des Bytes vorgesehen. Durch die Addition ergibt sich sodann die ungepackte Dezimaldarstellung, wobei das ungepackte Dezimalformat in der lokalen Speichereinheit 211 abgespeichert wird. Liegt der umgekehrte Fall vor, <d. h. soll die Formatumwandlung aus einer ungepackten Dezimaldarstellung in eine gepackte Dezimaldarstellung erfolgen, so wird eine Übertragung der niedrigen vier Bits nach dem Arbeitsregister 406 vorgenommen und die höherwertigen vier Zonen-Bits werden unter-
509825/0766
drückt. Es liegt auf der Hand, daß viele andere Möglichkeiten bestehen, um die Formatumwandlung aus einer gepackten in eine ungepackte Dezimalzahl vorzunehmen, wobe'i diese Möglichkeiten im Stand der Technik bestens bekannt sind.
Wenn die Ursprungsdaten und die Bestimmungsdaten unterschiedliche Längen aufweisen, so wird im Schritt 334 angezeigt, welche Länge größer ist. Wenn die Ursprungsdaten übertragen worden sind und entsprechend der Bestimmungslänge zusätzliche Speicherplätze unbesetzt geblieben sind, so werden die Ursprungsdaten durch Addition von Binärstellen mit dem Binärwert "0" ergänzt. Diese binären Nullstellen werden an den hochrangigen Teil der Zahl angefügt,, so daß -sich keine Veränderung der Zahl ergibt. Sind noch Stellen der Ursprungsdaten zu übertragen,und ist entsprechend der Bestimmungslänge kein Speicherplatz mehr verfügbar, so werden-die verbleibenden Bytes abgetrennt, d. h. die Daten werden nicht übertragen. Die Schritte 336 bis 344 erlauben die Aufstellung von Zustandscodes, welche anzeigen, ob die Ziffern der beschnittenen Ursprungsdaten von Bedeutung sind, d. h. ob sie nicht in Form von binären "O"-Stellen vorliegen. Stellen sie keine "O"-Stellen dar, was durch einen Test hinsichtlich der verbleibenden Ziffern in den Ursprungsdaten festgestellt wird, so setzt die Steuerspeichereinheit 210 im Schritt 338 den Zustandcode im Statusregister 418 auf eine binäre "ZWEI".
Nachfolgend wird im Schritt 340 ein Test dahingehend durchgeführt, ob die beschnittenen,keine "O"-Stellen darstellenden Ziffern für die Gesamtheit der Daten von Bedeutung sind. Sind diese1 Ziffern von Bedeutung, so wird eine dezimale überlauf-Ausnahme durchgeführt, wodurch der beschnittene Teil der Ursprungsdaten verarbeitet wird. *
Haben die abgetrennten Ziffern den Binärwert "Q" aufgewiesen, so ist dies gleichbedeutend damit, daß keine Abtrennung stattgefunden hat und es wird der Schritt 344 ausgeführt. Die Steuerspeichereinheit 210 stellt das Statusregister 418 auf den Binärwert "0",bevor der
8.2 5/0766
vorliegende Befehl ausgeführt ist und bewirkt somit den Abruf des nächsten Befehls.
Im Schritt 314 wurde festgestellt, daß die Ursprungsdaten eine Dezimalzahl betrafen. Wird jedoch festgestellt, daß die Ursprungsdaten eine alphanummerische Zeichenfolge betreffen, so wird eine Verzweigung nach dem Schritt 316 gemäß Figur 3b durchgeführt.
Im Schritt 317 wird ein Vergleich des Datentyps der Ursprungsdaten mit dem Datentyp der Bestimmungsdaten vorgenommen. Dies wird durch Subtraktion der Datentypen voneinander verwirklicht. Sind die Datentypen einander ungleich, so wird eine Verzweigung nach dem Schritt 320 vorgenommen. Sind die Daten jedoch einander gleich, d.h. ergibt sich ein Ergebnis von Null, so führt die Steuerspeichereinheit 210 die durch die Schritte 350 bis 368 dargestellten Mikrobefehle durch.
Im Schritt 350 ist es bekannt, daß sowohl die Ursprungsdaten als auch die Bestimmungsdaten in Form alphanummerischer Zeichenfolgen vorliegen. Im Schritt 350 wird das Längen-Byte des mit der zweiten Adressilbe verbunden Datenfeld-Descriptors von dem Längen-Byte des mit der ersten Adressilbe verbunden Datenfeld-Descriptors subtrahiert. Die Längen-Bytes sind mit Ll und L2 bezeichnet. Aus dem Ergebnis wird abgeleitet, ob eine Verzweigung nach dem Schritt 352 oder nach dem Schritt 354 erfolgen soll. Unabhängig von dem Resultat werden zwei temporäre Register im Arbeitsregister 406 benutzt. Ein erstes temporäres Register, nachstehend mit N bezeichnet, speichert die minimale Längenbeschreibung. Ein zweites temporäres Register, nachstehend mit Y bezeichnet, speichert die Anzahl der Nullstellen, welche zu den Bestimmungsdaten addiert werden.
Wenn die Länge der Bestimmungsdaten kleiner oder gleich der Länge der Ursprungsdaten ist, d. h. wenn durch den Steuerspeicher-Schnittstellenadapter 209 eine Null oder eine negative Zahl ermittelt wird, so wird eine Verzweigung nach dem Schritt 352 durchgeführt. In dieser Situation setzt die Steuerspeichereinheit 210 das N-Register auf
509825/0766
■ - 23 -
die Länge des L2-Feldes. Wenn das Bestimmungsfeld nicht größer als das Ursprungsfeld ist, v/erden keine Leerzeichen, z. B. binäre 11O"-Stellen addiert. Als Folge davon wird das Y-Register auf den Binärwert "0" gesetzt. Wird im Schritt 350 von dem Steuerspeicher-Schnittstellenadapter 209 eine positive Zahl ermittelt, so wird eine Verzweigung nach dem Schritt 354 durchgeführt. Im Schritt 354 wird die Länge L2 in das N-Register überführt und der vom Rechner 422 ermittelte verbleibende Wert wird in das Y-Register übertragen. Somit zeigt das Y-Register an, wenn es erforderlich ist, die Addition der Leerzeichen zu den Bestimmungsdaten zu stoppen.
Im Schritt 356 wird die temporäre Speicherung der Ursprungs- und Bestimmungsdaten festgelegt. Dies ist dargestellt durch die Adresse Xlf welche auf die Ursprungsdaten im Hauptspeicher verweist und die Adresse X2, welche auf den Speicherplatz im Hauptspeicher verweist, in den die Daten eingeschrieben werden sollen, nachdem die Adressen in die Adressen Sl und S2 umgewandelt worden sind. Sl bezeichnet die Adresse der Ursprungsdaten im Arbeitsregister 406,und S2 bezeichnet die Adresse ,.unter der die übertragenen Daten im Arbeitsregister 406 abzulegen sind.
Im Schritt 358 ruft die Steuerspeichereinheit 210 eine Mikrooperation hervor, welche den Inhalt des Sl-Registers nach dem S2-Register überträgt, wobei diese übertragung Byte für Byte erfolgt. Die Anzahl der Bytes,wie sie durch den im N-Register gespeicherten Wert vorgegeben ist, wird sodann schrittweise um 1 erniedrigt,um somit anzugeben, wieviele zusätzliche Bytes noch zu übertragen sind. Dies wird bewerkstelligt durch Subtraktion einer . 1 über eine Konstante in dem AG-Register von dem Wert des N-Registers, der in das AA-Register 412 übertragen und dort gespeichert ist. Somit ist nunmehr der N-l-Wert in dem N-Register gespeichert. Die Adresse des zu übertragenden Bytes, d. h. die Adresse Sl wird schrittweise um. 1 erhöht, da das. nächste Byte der Ursprungsdaten adressiert werden muß. Die MikroOperationen , welche diesen Additionsschritt ausführen, sind zuvor beschrieben worden.
509825/0766
Im Schritt 360 wird die Adresse S2 des nächsten zu bestimmenden Bytes schrittweise um eins erhöht, da die Daten fortlaufend im Arbeitsregister 406 gespeichert werden. Dies ist dargestellt, indem die S2+1-Adresse die S2-Adrer>se ablöst. Die Register werden somit entsprechend ergänzt, so daß das nächste Byte der Daten übertragen werden kann.
Nachdem der Inhalt eines Bytes übertragen worden ist und die verschiedenen Register entsprechend eingestellt sind ,um das nächste zu übertragende Daten-Byte zu bestimmen, wird durch den Schritt 362 getestet, ob das minimale Längenfeld übertragen worden ist oder nicht, d. h. das Minimum entweder des Ursprungsfeldes Ll oder des Bestimmungsfeldes L2. Ist dies nicht der Fall, so wird auf die übertragungsst'ufe zurückgegriffen, d. h. es wird der Schritt 358 ausgeführt. Ist das minimale Längenfeld übertragen worden, so wird der Wert des Y-Registers überprüft um festzustellen, ob irgendwelche Leerzeichen dem Inhalt des Bestimmungsregisters hinzuaddiert werden sollen. Dies ist durch den Schritt 364 in Figur 3b veranschaulicht.
Zeigt der Inhalt des Y-Registers nicht den Wert Null und ^zeigt der Inhalt des N-Registers gegenwärtig den Wert Null, so werden Leerzeichen den Bestimmungsdaten S2 hinzuaddiert und der Inhalt des Y-Registers wird schrittweise um .1 erniedrigt, wie dies in dem Schritt 366 veranschaulicht ist. Dies kann bewerkstelligt werden durch Laden einer 1 in das AG-Register 420 und durch Subtraktion des Inhalts des Y-Registers, welcher in dem AB-Register 414 enthalten ist. Die Ergebnisse des Rechners 422 des Byte-Addierers 416 werden sodann in das AB-Register 414 zurückgespeichert. Beim Addieren eines Leer-Bytes zu den Bestimmungsdaten wird die Adresse S2 schrittweise erhöht, wie dies im Schritt 360 wiederum dargestellt ist. Dieses Verfahren setzt sich fort bis der Wert in dem Y-Register zu Null wird. In diesem Zeitpunkt wird der Schritt 368 ausgeführt, wodurch ein Zustandscode in dem Statusregister 418 auf Null gesetzt wird und die Ausführung des nächsten Befehles veranlasst wird.
509825/0766
Wenn sich im Schritt 314 der Datentyp weder als eine alphanummerische Zeichenfolge noch als eine gepackte oder ungepackte Dezimalzahl darstellte, so wird eine Verzweigung nach dem Schritt 320 gemäß Figur 3c ausgeführt. Im Schritt 320 wird festgestellt, daß die Bestimmungsdaten eine Anpassung der Ursprungsdaten erfordern. Für diese Operation ist eine Anzahl von Übersetzungsvorrichtungen in dem programmierbaren Festwertspeicher 424 vorgesehen. Die Übersetzungseinrichtungen des Speichers 424 erhalten ein Eingangssignal von acht Bit aus den Ursprungsdaten wie sie im Arbeitsbereich 406 gespeichert sind,und sie erzeugen ein Ausgangssignal von acht Bit für den Arbeitsbereich 406 und eventuell für den Bestimmungs-Speicherplatz. Am Ausgang des fest verdrahteten,programmierbaren Festwertspeichers 424 erscheint die gleiche Information wie am Eingang wobei die Ausgangsinformation jedoch im Bestimmungscode vorliegt.
Wenn in dem im Schritt 369 ausgeführten Test keine Übersetzungseinrichtung verfügbar ist, so wird der Schritt 370 ausgeführt. Der Schritt 370 stellt eine Verzweigung dar, die von der Steuerspeicher-r einheit 210 auf Grund einer nicht verfügbaren Übersetzungstabelle ausgelöst wird. Tritt diese Verzweigung auf, so müssen andere Maßnahmen getroffen werden, die nicht Gegenstand dieser Anmeldung sind.
Es sei angenommen, daß eine der Übersetzungstabellen des Festwertspeichers 424 zur Umwandlung der angebotenen Information verfügbar ist. In diesem Fall werden die Schritte 372 bis 378 ausgeführt. In . jedem dieser Schritte wird ein temporäres Speicherregister benutzt, wie dies auch in den Schritten 350 bis 360 gemäß Figur 3b der Fall war. Somit werden die Längen und Adressen der Daten in temporären . Speicherregistern Nl, N2, Sl und S2 gespeichert. Im Schritt 380 wird ein Test hinsichtlich der Bestimmungslänge durchgeführt. Ergibt dieser Test den Wert Null, d. h. ist kein weiterer. Speicherplatz für die Ursprungsdaten vorhanden, so wird ein Zustandscode im Statusregister 418 auf Null gesetzt und., der Umwandlungsprozess zu Ende geführt, üblicherweise ist jedoch die Bestimmungslänge größer als Null so daß der Schritt 384 ausgeführt wird.
509825/0766
Ergibt sich im Schritt 384, daß die Länge des Ursprungsfeldes den Wert Null aufweist und ergibt sich im Schritt 380, daß die Länge des Bestimmungsfeldes einen Wert ungleich Null aufweist, so muß die verbleibende Länge der Bestimmungsdaten mit Leer-Bytes aufgefüllt werden. Dies ist im Schritt 394 veranschaulicht. Jedesmal wenn ein Leer-Byte-Feld hinzuaddiert worden ist, wird die Länge und Adresse des Bestimmungsfeldes schrittweise"erniedrigt und erhöht, wobei die oben erwähnten Schritte wiederholt ausgeführt werden.
Weist die Länge des Ursprungsfeldes einen Wert ungleich Null auf und die Länge des Bestimmungsfeldes ebenfalls, so wird der Schritt 386 ausgeführt. Im Schritt 386 ermöglicht der Festwertspeicher 424 die übertragung des Inhaltes des Ursprungsfeldes. Der Ausgang des Festwertspexchers 424 wird sodann auf ein temporäres Speicherregister S2 geschaltet, desseen Code durch das Bestimmungsdatenfeld gekennzeichnet ist. Diese Codes sind im Stand der Technik besten bekannt und brauchen hier nicht näher beschrieben zu werden. Die Schritte 390, 392, 396 und 398 berücksichtigen die Gesamtzahl und die Adressen der Bytes, die in der zuvor beschriebenen Weise übertragen werden sollen.
Wenn die Länge des Bestimmungsfeldes den Wert Null aufweist, so wird die gesamte Operation beendet,und der nächste Befehl wird ausgeführt. Dies geschieht unabhängig davon, ob die Ursprungsdaten vollständig übertragen worden sind oder nicht. Wenn dieser Zustand vorliegt, gehen die noch zu übertragenden Ursprungsdaten verloren.
Es sei hier festgestellt, daß die grundlegenden neuen Merkmale der Erfindung lediglich an einem Ausführungsbeispiel erläutert wurden, und daß der Fachmann auf Grund des bekannten Standes der Technik jederzeit Abwandlungen des vorstehend beschriebenen Ausführungsbeispieles treffen kann, ohne daß dadurch der Rahmen der Erfindung verlassen wird. Zum Beispiel kann der Verschiebebefehl wie er in dem Stand der Technik beschrieben ist, mit dem vorstehend beschriebenem Verschiebebefehl kombiniert v/erden, so daß entweder das Ursprungs-
509825/0766
oder Bestimmungsfeld durch den Befelal selbst beschrieben wird und das jeweils andere Feld bei der Ausführung des Befehls durch den Datenfeld-Descriptor beschrieben wird. Auf diese Weise ergäbe sich eine hybride Situation, wobei der eine Teil des Befehls von einem Datenfeld-Descriptor Gebrauch macht und der andere Teil des Eefehls durch Kompilierung gebildet wird.
Eine Variation des grundlegenden Verschiebebefehls kann durch eine Änderung des Operationscodes vorgenommen werden. Ein Beispiel dieses spezialisierten Verschiebebefehls beinhaltet eine Änderung des Datenfeld-Descriptor s des Bestimmungsfeldes. Auf diese Weise wurden sowohl das Datenfeld als auch der Datenfeld-Descriptor verschoben werden, ohne daß das Datenfeld eine Veränderung erfahren würde;aber der Datenfeld-Descirptor des Bestimmungsfeldes müsste einer Formatanpassung unterzogen werden, da -er nunmehr dem Datenfeld-Descriptor des Ursprungsfeldes entsprechen muß. Dieser spezialisierte Verschiebebefehl wäre nützlich, wenn ein neues Format für die Datenfelder gewünscht wird. Er bietet die notwendige Flexibilität um die Konfiguration der Datenfelder einer jeweiligen Veränderung zu unterziehen. Dieser spezialisierte Verschiebebefehl wird jedoch nur' Anwendung finden, wenn die Verschiebungen der Datenfelder innerhalb des Datenprozessors selbst stattfinden und wenn der Wunsch vorliegt, die ursprüngliche Form der Daten aufrecht zu erhalten.
5098 25/0766

Claims (23)

  1. Patentansprüche
    Verfahren zum Verschieben von verschiedene Datenstrukturen aufweisenden Datenfeldern von einem ersten nach einen zweiten Speicherplatz, dadurch gekennzeichnet, daß die Datenfelder sowie zugeordnete die Datenfelder beschreibende Datenfeld-Descriptoren in einem Daten-Prozessor gespeichert werden, daß
    die
    dievgeforderte Datenstruktur am zweiten Speicherplatz beschreibendenDatenfeld-Descriptoren ebenfalls in dem Daten-Prozessor gespeichert werden und daß"jedes der Datenfelder des ersten Speicherplatzes in Übereinstimmung mit dem dem zweiten Speicherplatz z\i~ geordneten Datenfeld-Descriptor simultan übertragen und in seinem Format angepasst wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder der Datenfeld-Descriptoren den Datentyp, das Kennschlüsselfeld und die Länge der Datenfelder beschreibt'
  3. 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Datentyp des Datenfeldes überprüft wird und daß durch den Prüfschritt bestimmt wird, ob der Datentyp eine alphanummerische Zeichenfolge oder eine gepackte oder ungepackte Dezimalzahl ist bzw. ob das Datenfeld einer übersetzung bedarf oder eine Darstellung aufweist, die durch die Logikschaltkreise eines Daten-Prozessors nicht verarbeitet werden kann.
  4. 4. Verfahren nach Anspruch 3, wobei der Datentyp eine alphanuramerische Zeichenfolge betrifft, g e k e η η ze i c h η e t durch folgende Verfahrensschritte:
    Vergleichen des Längendescriptors des Datenfeldes am ersten Speicherplatz mit dem am zweiten Speicherplatz geforderten Längendescriptor-
    Speichern des kleineren Längendescriptors in einem ersten Register;
    50 9 825/07 6-6
    Subtrahieren des mit dem zweiten Speicherplatz verbundenen Längende scr iptors von dem Längendescriptor des Datenfeldes; Speichern des Ergebnisses des Subtrahierschrittes in einem zweiten Register;
    aufeinanderfolgende übertragung eines Bytes des Datenfeldes am ersten Speicherplatz nach dem zweiten Speicherplatz in Übereinstimmung mit dem Inhalt des ersten Registers und Versehen des zweiten Speicherplatzes mit einer Anzahl von Leerbytes in Übereinstimmung mit dem Inhalt des zweiten Registers»
  5. 5. Verfahren nach Anspruch 3, wobei der Datentyp eine ungepackte oder gepackte Dezimalzahl betrifft, gekennzeichnet durch einen Vergleich des Datenfeldes am ersten Speicherplatz mit dem am zweiten Speicherplatz geforderten Datenfeld, wobei der Schritt der Formatanpassung die Umwandlung des Datenfeldes in das am zweiten Speicherplatz geforderte Datenfeld umfasst.
  6. 6. Verfahren nach Anspruch 5, dadurch gekennzeichnet , daß der mit dem Datenfeld und dem zweiten Speicherplatz verbundene Längendescriptor des Datenfeld-Descriptors ermittelt wird und daß geprüft wird, ob das Datenfeld eine legale Darstellung aufweist.
  7. 7. Verfahren nach Anspruch 3, wobei der Datentyp eine übersetzbare Form aufweist, dadurch gekennzeichnet, daß jeder mit dem Datenfeld und dem zweiten Speicherplatz verbundene Längendescriptor in ein erstes und zweites Register übertragen wird, daß eine übersetzüngstabelle ausgewählt, wird, welche durch die dem Datenfeld und dem zweiten Speicherplatz zugeordneten Datentypen gekennzeichnet ist und daß der übertragungs- und Formatanpassungs-Schritt die übertragung des Datenfeldes über die über-, setzungstabelle nach dem zweiten Speicherplatz umfasst.
    509825/0766
  8. 8. Verfahren nach Anspruch 7,dadurch gekennzeichnet, daß eine Prüfung dahingehend erfolgt, ob der Längendescriptor des zweiten Speicherplatzes größer als der Längendescriptor des Datenfeldes ist und daß Füllzeichen in Abhängigkeit vom Ergebnis des Prüfschritts hinzugefügt werden, um die übertragung des Datenfeldes nach dem zweiten Speicherplatz zu vervollständigen, wobei die Füllzeichen durch den Datentyp am zweiten Speicherplatz bestimmt sind.
  9. 9. Datenverarbeitungssystem zur Durchführung des Verfahrens nach Anspruch 1 mit einer Einrichtung zum Verschieben von eine Vielzahl verschiedener Datenstrukturen aufweisenden Datenfeldern von einem Ursprungs-Speicherplatz zu einem Bestimmungs-Speicherplatz, gekennzeichnet durch eine Speichereinrichtung zum Speichern eines Verschiebebefehls; eine erste Adressiereinrichtung zum Adressieren des Ursprungs-Speicherplatzes in Abhängigkeit von einem Teil des Verschiebebefehls, wobei der Ursprungs-Speicherplatz eines der Datenfelder und einen ersten Datenfeld-Descriptor aufweist und der Datenfeld-Descriptor den Speicherplatz und die Merkmale des Datenfeldes beschreibt;
    eine zweite Adressiereinrichtung zum Adressieren des Bestimmungs-Speicherplatzes und eines zweiten Datenfeld-Descriptors in Abhängigkeit von einem zweiten Teil des Verschiebebefehls, wobei der zweite Datenfeld-Descriptor den Bestimmungs-Speicherplatz und die Merkmale des genannten Datenfeldes beschreibt und eine übertragungseinrichtung zum übertragen des genannten Datenfeldes von dem Ursprungs- zu dem Bestimmungs-Speicherplatz in Abhängigkeit von einem dritten Teil des Verschiebebefehls, wobei die übertragungseinrichtung bei der Ausführung des Befehls das Format des Datenfeldes in Übereinstimmung mit den beiden Datenfeld-Descriptoren wieder herstellt.
    509825/0766
  10. 10. System nach Anspruch 9, dadurch gekennzeichnet, daß der erste Datenfeld-Descriptor den Datentyp des genannten einen Datenfeldes beschreibt und der zweite Datenfeld-Descriptor den Datentyp des genannten einen Datenfeldes am Bestimmungs-Speicherplatz beschreibt.
  11. 11. System nach Anspruch 10, dadurch gekennzeichnet, daß die Datentyp-Beschreibungen durch den ersten und zweiten Datenfeld-Descriptor einander ungleich sind.
  12. 12. System nach Anspruch 9, dadurch gekennzeichnet, daß der erste Datenfeld-Descriptor die Länge des einen Datenfeldes am Ursprung und der zweite Datenfeld-Descriptor die Länge des einen Datenfeldes am Bestimmungs-Speicherplatz beschreibt. ■ .·
  13. 13. System nach Anspruch 12, dadurch gekennzeichnet, daß die Längenbeschreibung des ersten Datenfeld-Descriptors von der Längenbeschreibung des zweiten Datenfeld-Descriptors verschieden ist.'
  14. 14. System nach Anspruch 9, dadurch gekennzeichnet:, daß die beiden Datenfeld-Descriptoren einen Kennschlüsself eld-Descriptor aufweisen, der die Dimension des Datenfeldes am Ursprungs- und Bestimmungs-Speicherplatz beschreibt.
  15. 15. System nach Anspruch 9, .wobei die Datenfelder am Ursprungs-Speicherplatz und am Bestimmüngs-Speicherplatz verschiedene Ausbildungen aufweisen, gekennzeichnet durch eine Einrichtung zur Erzeugung einer Unabhängigkeit von den beiden Ausbildungen des Datenfeldes, wobei diese Einrichtung aufweist: Eine erste Vorrichtung zum Beschreiben, der Merkmale der ersten Ausbildung,
    eine zweite Vorrichtung zum Beschreiben der Merkmale der zweiten Ausbildung,
    50 9825 / G 76 6
    einen Verschiebebefehl zum übertragen des Datenfeldes vom Ursprungs- zum Bestimmungs-Speicherplatz, eine Steuer-Speicher-Vorrichtung, welche in Abhängigkeit von dem Verschiebebefehl und der genannten Einrichtung zur Erzeugung der Unabhängigkeit Mikrobefehle zur Interpretation der Merkmale der ersten und zweiten Ausbildung der Datenfelder sowie logische Steuersignale zur übertragung und Format-Wiederherstellung des die erste Ausbildung auf weisenden·.Datenfeldes zum Be Stimmung s-Speicherplatz erzeugt.
  16. 16. System nach Anspruch 15, dadurch gekennzeichnet, daß die Merkmale der ersten und zweiten Ausbildung den Datentyp, den Kennschlüssel und die Länge des Datenfeldes betreffen.
  17. 17. System nach Anspruch 16, dadurch gekennzeichnet, daß erste und zweite Register angeordnet sind und daß die Steuer-Speicher-Vorrichtung für den Fall, daß der Datentyp des Datenfeldes als alphanummerische Zeichenfolge gegeben ist, den Datenfeld-Descriptor mit dem kürzeren Längenmerkmal■in das erste Register und die Differenz der Längenmerkmale beider Ausbildungen der Datenfelder in das zweite Register überträgt.
  18. 18. System nach Anspruch 17, d a d u r c h g e k e η η ζ e i c h net, daß die Steuer-Speicher-Vorrichtung in Übereinstimmung mit dem ersten Register das Datenfeld Byte für Byte überträgt und daß sie zu der alphanummerisehen Zeichenfolge eine durch das zweite Register vorgegebene Anzahl von Leerzeichen addiert.
  19. 19. System nach Anspruch 16, dadurch gekennzeichnet, daß die Steuer-Speicher-Vorrichtung den Datentyp des Datenfeldes als Dezimalzahl ermittelt, wobei der Ursprungs-Speicherplatz die Dezimalzahl entweder in ungepackter oder gepackter Art enthält und der Bestimmungs-Speicherplatz in Übereinstimmung mit der zweiten Ausbildung des Datenfeldes die Darstellung der Dezimal zahl in ungepackter oder gepackter Art erfordert.
    509825/0766
    . - 33 -
  20. 20. System nach Anspruch 19, dadurch gekennzeichnet, daß' die Steuer-Speicher-Vorrichtung bei der Befehlsausführung die Dezimalzahl nach dem Bestimmungs-Speicherplatz unter einer Formatanpassung in Übereinstimmung mit der Datentyp-Beschreibung der zweiten Ausbildung des Datenfeldes überträgt.
  21. 21. System nach Anspruch 20, dadurch gekennzeichnet, daß der Datentyp des Datenfeldes am Ursprungs-Speicherplatz mit dem am Bestimmungs-Speicherplatz geforderten Datentyp übereinstimmt.
  22. 22. System nach Anspruch 16, gekennzeichnetdurch mehrere Übersetzungs-Einrichtüngen und Register, wobei die Steuer-Speicher-Vorrichtung bei der Befehlsausführung das Datenfeld des Ursprungs-Speicherplatzes über eine der übersetzungs-
    ' Einrichtungen nach dem Bestimmungs-Speicherplatz überträgt. .
  23. 23. System nach Anspruch 22, dadurch gekennzeichn et , daß die Steuer-Speicher-Vorrichtung eines der Register zur Aufnahme der Längenbeschreibung der ersten Ausbildung des Datenfeldes und ein weiteres Register zur Aufnahme der Längenbeschreibung der zweiten Ausbildung des Datenfeldes veranlasst und daß die Steuer-Speicher-Vorrichtung das Datenfeld in Übereinstimmung mit_den beiden Registerinhalten überträgt.
    509 825/0766
    Leerseite
DE19742458286 1973-12-13 1974-12-10 Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen Withdrawn DE2458286A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/424,381 US3936804A (en) 1973-12-13 1973-12-13 Data processing system incorporating a logical move instruction

Publications (1)

Publication Number Publication Date
DE2458286A1 true DE2458286A1 (de) 1975-06-19

Family

ID=23682428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742458286 Withdrawn DE2458286A1 (de) 1973-12-13 1974-12-10 Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen

Country Status (7)

Country Link
US (1) US3936804A (de)
JP (1) JPS5734535B2 (de)
CA (1) CA1029863A (de)
DE (1) DE2458286A1 (de)
FR (2) FR2254829B1 (de)
GB (1) GB1492569A (de)
IT (1) IT1029634B (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7411989A (nl) * 1974-09-10 1976-03-12 Philips Nv Computersysteem met busstruktuur.
GB1515376A (en) * 1975-07-09 1978-06-21 Int Computers Ltd Data storage systems
US4310882A (en) * 1978-12-28 1982-01-12 International Business Machines Corporation DAS Device command execution sequence
CA1145054A (en) * 1979-01-02 1983-04-19 Honeywell Information Systems Inc. Data processing system with means to align operands
JPS6311207Y2 (de) * 1980-10-27 1988-04-01
CA1200015A (en) * 1982-11-15 1986-01-28 Western Electric Company, Incorporated Dynamic data base representation
JPS60218142A (ja) * 1984-04-13 1985-10-31 Hitachi Ltd デ−タの動的型変換方式
CA1244142A (en) * 1985-06-17 1988-11-01 William E. Hammer Distributed data management mechanism
US5513332A (en) * 1988-05-31 1996-04-30 Extended Systems, Inc. Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween
JP3005626B2 (ja) * 1988-09-21 2000-01-31 株式会社日立製作所 データ処理システムおよびデータ転送方法
US6094605A (en) * 1998-07-06 2000-07-25 Storage Technology Corporation Virtual automated cartridge system
US6834324B1 (en) 2000-04-10 2004-12-21 Storage Technology Corporation System and method for virtual tape volumes
US20030126132A1 (en) * 2001-12-27 2003-07-03 Kavuri Ravi K. Virtual volume management system and method
US20130152053A1 (en) * 2011-12-12 2013-06-13 Microsoft Corporation Computer memory access monitoring and error checking
US9417880B2 (en) * 2013-03-15 2016-08-16 Intel Corporation Instruction for performing an overload check
CN111381876B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 move指令译码方法、数据移动方法、译码器及数据存取装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL297037A (de) * 1962-08-23
NL298451A (de) * 1962-10-01
US3344403A (en) * 1964-06-26 1967-09-26 Ibm File selection system
US3579192A (en) * 1967-11-02 1971-05-18 Burroughs Corp Data processing machine
US3638195A (en) * 1970-04-13 1972-01-25 Battelle Development Corp Digital communication interface
US3675212A (en) * 1970-08-10 1972-07-04 Ibm Data compaction using variable-length coding
US3699525A (en) * 1970-11-27 1972-10-17 Honeywell Inf Systems Use of control words to change configuration and operating mode of a data communication system

Also Published As

Publication number Publication date
CA1029863A (en) 1978-04-18
AU7607674A (en) 1976-06-10
FR111576A (de) 1900-01-01
FR2254829B1 (de) 1978-03-24
JPS5093053A (de) 1975-07-24
IT1029634B (it) 1979-03-20
JPS5734535B2 (de) 1982-07-23
US3936804A (en) 1976-02-03
GB1492569A (en) 1977-11-23
FR2254829A1 (de) 1975-07-11

Similar Documents

Publication Publication Date Title
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE2350884C2 (de) Adreßumsetzungseinheit
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE2417795C2 (de) Datenverarbeitungsanlage
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2458300A1 (de) Datenverarbeitungssystem zur verarbeitung verschiedener datenformate
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2714805A1 (de) Datenverarbeitungssystem
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2846495A1 (de) Digitales datenverarbeitungssystem
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2813128A1 (de) Mikroprogrammspeicher
DE2926589A1 (de) Anordnung zur verlaengerung einer logischen computeradresse
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2517276A1 (de) Datenverarbeitungssystem
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2718110A1 (de) Datenverarbeitungseinheit
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE2458331A1 (de) Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal