DE2458300A1 - Datenverarbeitungssystem zur verarbeitung verschiedener datenformate - Google Patents

Datenverarbeitungssystem zur verarbeitung verschiedener datenformate

Info

Publication number
DE2458300A1
DE2458300A1 DE19742458300 DE2458300A DE2458300A1 DE 2458300 A1 DE2458300 A1 DE 2458300A1 DE 19742458300 DE19742458300 DE 19742458300 DE 2458300 A DE2458300 A DE 2458300A DE 2458300 A1 DE2458300 A1 DE 2458300A1
Authority
DE
Germany
Prior art keywords
data
data field
descriptor
command
descriptors
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
DE19742458300
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 DE2458300A1 publication Critical patent/DE2458300A1/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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Executing Machine-Instructions (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

51-01293 Ge 6. Dezember 1974
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass., USA
Datenverarbeitungssystem zur Verarbeitung verschiedener Datenformate.
Die Erfindung betrifft ein Verfahren zur Verarbeitung von eine Vielzahl verschiedener Datenformate aufweisenden Datenfeldernauf einer Datenverarbeitungsanlage sowie eine Vorrichtung zur Durchführung dieses Verfahrens.
Auf Grund der gemachten Fortschritte hinsichtlich von Datenbasis-Systemen ist es für eine große Klasse von Programmen möglich, Dateien der gleichen Datenbasis zu verarbeiten. Im allgemeinen sind solche Programme über eine Zeitperiode von Monaten und Jahren entwickelt worden, was eine große Investition hinsichtlich menschlicher Arbeitskraft und Computerleistung erfordert, um sie in ein nützliches Stadium der Produktivität zu bringen.
Bei der herkömmlichen Technik müssen diese Programme die exakte Darstellung der Daten, wie sie in der Datenbasis-Datei gespeichert sind, erkennen oder müssen eine Formatanpassung der Daten erlauben. Im letzteren Fall müssen, bevor das Programm die jeweilige Datenbank bearbeiten kann, die Daten hinsichtlich ihres Formates in eine compatible Form jedesmal dann gebracht werden, wenn die Daten der Datenbank entnommen werden, d.h. es muß beispielsv/eise das Format, wie es in der Datenbank gespeichert ist, in das Format, welches durch das Programm erkannt wird, übergeführt werden. Die Formabanpas sung wird durch Subroutinen bewerkstelligt und ist somit langsam und teuer. 50 9 8 25/0768
-· 2. —
Wenn die Datensätze und die in der Datenbasis benutzte Datei definiert sind, so befinden sie sich in einer Form, welche primär von der dann existierenden Anforderung abhängt. Wenn die Art und Weise der Datenbehandlung Veränderungen erfährt, so ergeben sich zusätzliche Notwendigkeiten und Anforderungen, wenn sich die jeweilige Datenbank nicht in einer Form befindet, welche für den neuen Anwendungszweck geeignet ist. Beispielsweise ist es oftmals erwünscht, neue Felder einem Datensatz hinzuzufügen oder den Rahmen bzw. den Satzrcodus einiger Felder zu verändern. Da das Datenformat die Auslegung der Subroutinen bestimmt, werden die Subroutinen um so komplizierter, je mehr Vielseitigkeit hinsichtlich der Behandlung der verschiedenen Arten von Daten gefordert wird. Als Hauptergebnis dieser bekannten Entwicklung ergab sich, daß das ursprüngliche Format der Datenbasis-Datei und die entsprechenden Programme zur Behandlung der Dateien für einen längeren Zeitraum.keine Veränderung erfahren durften. Als Folge davon ergab sich die Unmöglichkeit, die Datenbasis-Strukturen fortlaufend weiterzuentwickeln. Eine solche Weiterentwicklung ist in höchstem Maße erwünscht, da die Datenbasis-Dateien immer eine aktuelle Information, beispielsweise über die Aktivitäten eines Unternehmens,bieten sollen.
Früher wurden immer bestimmte Befehle für bestimmte Datentypen definiert. Dies bedeutet in der herkömmlichen Praxis, daß die Merkmale des Datenfeldes, z.B. der Speicherplatz des Datenfeldes, seine Länge, seine Codierung usw. bestimmt sein müssen und daß während der Kompilation die Beschreibung der Daten herangezogen wird, um den speziellen Befehl zu bilden. Zusätzlich kann es erforderlich sein, während der Ausführung eines Programmes eine Kombination von Befehlen auszuwählen,um Daten zu verarbeiten, deren Charakteristiken zuvor nicht bekannt sind, sondern sich als Ergebnis eines vorangehenden Befehles ergeben. Es liegt somit auf der Hand, daß solche Befehle geschaffen werden müssen, welche nicht nur Informationen hinsichtlich spezieller Datentypen sondern auch für den Datenprozessor enthalten, welcher jeden Befehl ausführen muß. Wenn irgendeines der Merkmale des Datenfeldes geändert werden soll oder wenn ein anderer Datenprozessor
509825/0768
benutzt werden soll, so ist der geschaffene Befehl überholt, da er nicht in der Lage ist, die neuen Daten auf der alten Anlage bzw. die alten Daten auf der neuen Anlage zu verarbeiten. Hinsichtlich der bekannten Systeme ergibt sich somit dns unbefriedigende Ergebnis, daß diese nicht in der Lage sind, eine Weiterentwicklung der Daten-' basis-Strukturen zu gestatten, da der Befehl jeweils an einen bestimmten Datentyp angebunden ist.
Es ist die Aufgabe' der vorliegenden Erfindung, Datenverarbeitungssysteme der eingangs genannten Art so zu verbessern, daß auch bei einer Änderung der in einer Datenbank abgelegten Daten der Befehl seine Gültigkeit behält, ohne daß hierzu eine Programmänderung erforderlich wäre. Die Lösung dieser Aufgabe gelingt gemäß dem im Anspruch 1 gekennzeichneten erfindungsgemäßen Verfahren. Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sowie eine Vorrichtung zur Durchführung des Verfahrens sind in den Unteransprüchen gekennzeichnet.
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten Ausführungsbeispieles sei die Erfindung im,folgenden näher erläutert.
Es zeigen:
Figur 1 die Ansicht einer Datenbank;
Figur 2 ein Diagramm verschiedener Hardware-Strukturen, wie sie bei der vorliegenden Erfindung Verwendung finden; Figur 3 ein allgemeines Blockdiagramm des Datenverarbeitungssystems gemäß der vorliegenden Erfindung;
Figur 4 ein Flußdiagramm für die Anwendung des Datenfeld-Descriptors in Übereinstimmung mit der vorliegenden Erfindung und Figur 5 ein Blockdiagramm einer Ausführungsform der Erfindung wie sie bei dem Datenverarbeitungssystem gemäß Figur 3 Verwendung findet.
Um einem Datenverarbeitungssystem eine Veränderung der Form der in seiner Datenbank gespeicherten Daten zu gestatten, wobei die einmal geschriebenen Programme für diese Datenbank ihre Gültigkeit behalten sollen, wird durch die Erfindung ein allgemeines Verfahren für den Gebrauch von Datenbanken vorgeschlagen. Dieses allgemeine Verfahren
509825/0768
BAD OPlSGiNAL
umfaßt die Anwendung von rein logischen Befehlen, welche funktionsorientiert sind und die grundlegenden Operationen mit den Datenfeldern hinsichtlich des Datenzugriffes und der Steuerung durchführen. Da diese Befehle nicht von speziellen Datentypen abhängig sind, erlauben sie eine Benutzung des Systemes über einen bestimmten Zeitraum ohne daß grundlegende Änderungen erforderlich sind.
Zur Realisierung des neuen Verfahrens wird von dem Konzept der Datenunabhangigkeit Gebrauch gemacht, da hierdurch Arbeitsweisen ermöglicht werden, welche unabhängig von der detaillierten Organisation der Datenbank sind. Wie aus dem Stand der Technik bekannt, erfordert die Datenunabhängigkeit ein Konzept zweier Formen von Datenfeld-Darstellungen: 1. Die Form des Datenfeldes, wie es durch das Programm in den Prozessor überführt wird und 2. die Form des Datenfeldes,wie es auf einem sekundären Speicher gespeichert ist. Durch die Benutzung der Datenunabhangigkeit werden Programme, welche mit beträchtlichem Aufwand getestet worden sind, unabhängig von Änderungen hinsichtlich der Satzform, der Satzlänge oder dem Spei*- cherort der Dateneinzelheit, was in anderen Fällen den Gebrauch der einmal aufgestellten Programme verhindern würde. Weiterhin erlaubt die Datenunabhangigkeit die Kompilierung von Programmen an Operationen hinsichtlich Dateneinzelheiten, für die die Form, Länge oder der Speicherort zur Kompilationszeit nicht erkennbar ist. Zusätzlich erlaubt die Datenunabhangigkeit die effektive Codierung und Decodierung von Daten zur verbesserten Datensicherung.
Zur Realisierung der Datenunabhangigkeit wird ein Datenfeld-Descriptor benutzt. Durch die Anordnung eines Datenfeld-Descriptors, welcher den Inhalt des Datenfeldes beschreibt und dadurch, daß dem Datenfeld-Descriptor eine Integration in die Datenverarbeitungsanlage gestattet wird., wird die Datenunabhangigkeit erreicht, da der Datenfeld-Descriptor unabhängig vom Programm gehandhabt wird. Zusätzlich der Datenfeld-Descriptor die Benutzung formatunabhängiger Befehle (verschieben, vergleichen, addieren usw.),da der Datenfeld-Descriptor das Datenfeld jederzeit in einer der neuesten Information angepassten Weise beschreibt. Der Datenfeld-Descriptor kann somit leicht
509825/0768
einer Änderung unterworfen werden, um die Änderungen hinsichtlich des Datenfeldes einzuschließen. Als Ergebnis ergibt sich, daß der logische Befehl nur mit der Information befasst ist, wie sie gerade vorliegt und nicht auf einen spezifischen Da'tentyp beschränkt ist. Der Befehl muß lediglich den Speicherplatz des Datenfeld-Descriptors ermitteln, welcher seinerseits den Veränderungen des Datenfeldes Rechnung trägt, im Gegensatz zum Stand der Technik,in welchem die Änderungen im Befehl selbst berücksichtigt v/erden mussten. Der Datenfeld-Descriptor zusammen mit dem Befehl adressiert das Datenfeld und wirkt auf dieses ein zu einem Zeitpunkt,wo die Befehlsfunktion ausgeführt werden muß, wodurch die Notwendigkeit für spezielle Befehle gemäß der herkömmlichen Praxis enfällt.
Die Datenfeld-Descriptoren ermöglichen eine Datenunabhängigkeit durch Spezifizierung detaillierter Einzelheitenmerkmale, z. B. der betroffenen Datenfelder,des benutzten Datentypes, der Datenlänge und des Satzmodus. Zusätzlich erlaubt der Datenfeld-Descriptor dem Programm,alle Datentypen gleich zu behandeln, da er zur Befehlsausführungszeit die Veränderungen in der Datenstruktur berücksichtigt. Somit bestimmt die Information des Datenfeld-Descriptors zusammen mit dem Befehl automatisch die auszuführende Operation. Weiterhin kann der gleiche Befehl auf verschiedene Daten und/oder die gleichen Daten mit verschiedenen Datenfeld-Descriptoren einwirken, wodurch eine vergrößerte Flexibilität erzeugt wird. Die Verwendung des gleichen Befehls für die Verarbeitung zahlreicher Datentypen ist ein signifikantes Merkmal für die Wirkungsweise des Systems.
Da der Datenfeld-Descriptor durch ein Hochgeschwindigkeits-Hardwäre-Register erzeugt wird, sind die zuvor erforderlich gewesenen spezia- , lisierten Subroutinen zur Analysierung jedes Feldes des Satzes zur Ausführung einer Datenoperation nicht mehr erforderlich. Das Subroutinen- Konzept, welches wiederholte Zugriffe durch das Operationsprogramm zu dem Arbeitsspeicher und dadurch übermäßig viele Arbeitsspeicherbefehle mit großer Operationszeitbeanspruchung erforderte, wird nunmehr ebenfalls vermieden, da zahlreiche Speicherabrufe nicht erforderlich sind zum Decodieren des Datenfeld-Descriptors durch den
509825/0768
Datenprozessor. Als Ergebnis ergibt sich eine geringere Anzahl von Schritten und eine bedeutend kürzere Zugriffszeit.
Bevor das von der Datenbank Gebrauch machende System analysiert wird, soll eine Untersuchung der grundlegenden Theorie der Datenverwaltung vorgenommen werden, damit ein vollständiges Verständnis des Gebietes, auf dem die Erfindung liegt, ermöglicht wird. Drei grundlegende Informationskonzepte werden von der Datenverwaltung umfaßt. Der erste Informationstyp bezieht sich auf einen Begriff zur Umschreibung einer Person oder einer Sache in der Umwelt. Zum Beispiel kann der Begriff eine Person, einen Platz usw. betreffen. Hinsichtlich des genannten Begriffes gibt es eine Unterstruktur dieser Information. Diese Unterinformation bezieht sich auf ein Begriffsmerkmal und kann als zweite Informationsart bezeichnet werden. Merkmale dienen der Beschreibung des Begriffes, z. B. können sich die Merkmale, wenn eine Person beschrieben werden soll, auf den Namen, das Gewicht, das Alter usw. beziehen. Die dritte Informationsart ist durch die Beziehung zwischen den Begriffen gegeben. Zum Beispiel weist eine Person eine Beziehung zu einer jeweils anderen Person auf.
Die äquivalenten Informationssystem-Konzepte für Begriffe, Merkmale und Beziehungen von Dingen der materiellen Umwelt sind Sätze, Felder und Zeichen. Benutzt man das zuvor erwähnte Analogon einer Person, so kann ein Begriff durch einen oder mehrere Sätze dargestellt werden. Ein Satz besteht aus der Aneinanderfügung von Q oder mehreren Feldern, z.B. Merkmalen, zugehörend zu einem einzigen Begriff. Ein Feld ist die kleinste Dateneinheit, die durch das System unterschieden werden kann. Die Sätze, z.B. die Hinweise auf eine Person werden in Gruppen zusammengefasst, welche die Beziehungen innerhalb der realen > Umwelt schaffen. Jedes dieser Informationssystem-Modelle findet sodann eine Basis in dem Speichersystem eines Datenprozessors.
Wenn ein Benutzer des Systems Sätze und Felder bezeichnet, so wünscht er,Daten in Mengen zu benutzen, welche von dem Problem abhängig sind. So sind beispielsweise für einen Angestellten,um dessen Geschlecht
509825/0768
zu bestimmen/.lediglich ein oder zwei Informations-Bits erforderlich. Um des gleichen Angestellten Erziehung oder Gewicht zu beschreiben, ist eine größere Informationsnienge erforderlich. Um die entsprechenden Daten zu speichern/ ist es wichtig, Einheiten von verschiedener Größe zur Verfügung zu haben, um in geeigneter Weise die Daten behandeln zu können. Im Gegensatz hierzu behandelt-die Zentraleinheit die Daten in einem Größenformat, welches in besonderer Weise für die Bearbeitung durch die Zentraleinheit geeignet ist. Während es einerseits ideal wäre, .wenn der Datenprozessor die Information in dem gleichen Größenformat - wie durch den Benutzer gefordert - bearbeiten würde, ist dies auf der anderen Seite gewöhnlich nicht möglich. Als Folge hiervon ist es oftmals erforderlich, die Beschreibung der Daten in der Datenbank in eine Beschreibung zu transformieren, welche von dem Programm verarbeitet werden kann. Die Erfahrung hat gezeigt, daß dies ein sehr zeitraubender Prozess aus zweierlei Gründen ist. Erstens kann es erforderlich sein, eine besondere Subroutine zu verwenden, um den Datentyp eines vorliegenden Benutzers in das gewünschte Format umzuwandeln,und zweitens sind zahlreiche Zugriffe durch den Computer erforderlich, um die Subroutine auszuführen.
Zusätzlich zu der Optimierung von Daten für besondere Anwendungszwecke kann ein Benutzer die Information in einer Vielzahl von verschiedenen Datentypen ausdrücken. Mit Datentyp ist gemeint, daß verschiedene Formen benutzt werden können,um die gleiche Information auszudrücken. So kann beispielsweise die Dezimalzahl 10 im Octalsystem als 12 und im Dualsystem als 1010 codiert werden. Ähnlich ist es in der Computersprache möglich, Daten in einer Vielzahl von verschiedenen Datenarten zu codieren. Diese Datenarten können alpha-■nummerische Zeichenfolgen, Bit-Zeichenfolgen, kurze logische Binärdaten, lange logische Binärdaten, kurze Daten mit Festpunkt, lange Daten mit Festpunkt, gepackte Dezimaldaten, ungepackte Dezimaldaten, kurze Zahlen mit Gleitpunkt, lange Zahlen mit Gleitpunkt und ausgedehnte Zahlen mit Gleitpunkt umfassen. Zusätzlich können diese Daten in verschiedenen Codes codiert sein, z.B. im ASCII-, EBCDIC- und BCD-Code. .
5098 25/0768
Aus den vorstehenden Erläuterungen v/erden.die Probleme bei der Eenutzung von Datenbanken augenscheinlich. Durch die Verwendung eines Datenfeld-Descriptors innerhalb des Adressierschemas eines Datenprozessors wird die Verwendung von Datenbanken gefördert, wie aus der nachfolgenden Untersuchung anhand der Figuren hervorgeht.
In Figur 1 ist ein Daten-Strukturdiagramm von Daten-Descriptoren und Datenelementen dargestellt. Ein Datenverarbeitungssystem 110 weist eine Vielzahl von Dateien auf, von denen jede eine Anzahl von Seiten 100 aufweist, wobei nur eine Seite dargestellt ist. Eine Datei ist eine logische Speichereinheit, die als Aufbewahrungsplatz für Datensätze dient. Die Datei ist in eine oder mehrere Seiten 100 unterteilt. Eine Seite'ihrerseits ist eine logische Speichereinheit/ welche in der Lage ist, eine oder mehrere logische Sätze aufzunehmen.
Den Dateien innerhalb des Datenverarbeitungssystems sind Datei-Descriptoren 101 zugeordnet. Ein Datei-Descriptor kennzeichnet die Dateinummer und Seitennummer der logischen Datei, welche die einzige Information für den Benutzer hinsichtlich der zu bearbeitenden Aufgabe bildet. In dem System sind weiterhin Satz-Descriptoren den logischen Datensätzen und Feld-Descriptoren den logischen Datenfeldern zugeordnet, wobei jeder Descriptor ein Teilsatz des früheren innerhalb der hierarchischen Ordnung ist. Jeder Descriptor enthält Informationen, welche die Merkmale der logischen Struktur betreffen.
In Figur 1 stellt die Blocknummer 102 einen Seitenkopf dar,, welcher die Information betreffend eine Seite der Datei kennzeichnet. Diese Information umfasst die Seitenzahl, irgendeinen Vollständigkeitsmechanismus und die physikalischen Abbildungsparameter, z.B. den Ort der darin enthaltenen Datensätze. Die Blocknummer 102 verweist auf eine Vielzahl von Datensätzen 103 bis 106, wobei der Datensatz 106 in näheren Einzelheiten dargestellt ist.
Am Anfang des Datensatzes 106 befindet sich ein ausgespartes Feld, welches als Datensatzkopf bezeichnet sei, welcher einen Datensatz-Descriptor beinhaltet. Der Datensatz-Descriptor gibt den Satznamen, die Art des Satzcodes, die Satzlänge, die Satz-Zugriffsrechte usw. eines Satzes an. Der Datensatz 106 ist aus einem oder mehreren Daten-
509825/0768
feldern zusammengesetzt, die in der Zeichnung als Name, Abteilungsnummer, Gehaltsnummer und Geschlecht gekennzeichnet sind. Jedes Feld des Datensatzes 106 ist mit-einem Feld-Descriptor 108 ausgestattet. Der Feld-Descriptor 108 setzt sich aus einer Anzahl von Datenfeld-Descriptoren 108a bis 108x zusammen, welche neben anderen Dingen den Feldnamen, den Feldaufzeichnungsmodus, den Feldoffset innerhalb der Aufzeichnung, die Feldlänge, die Felddimension, die Feldzugriffsrechte usw. definieren.
Da die Datenfeld-Descriptoren 108a bis lO8x Datenfelder beschreiben und somit Daten betreffend Daten beinhalten, können sie in die Seitenstruktur eingebettet werden, wodurch eine formatgebundene Datei errichtet wird. Die Descriptoren 108 können andererseits individuell adressiert werden und dadurch in dem System verarbeitet werden. Von jeder dieser Methoden wird bei der vorliegenden Erfindung Gebrauch gemacht. Weiterhin wird durch das Festlegen der Datenfeld-Descriptoren in der oben beschriebenen Weise jede Dateistruktur definiert, wobei andere Dateistrukturen keine Beeinträchtigung erfahren.
Bei der Mitteilung von Daten ist die Form der übermittelten Daten gewöhnlicherweise bereits implizite definiert. So ist beispielsweise in COBOL bei der Deklaration eines Datenfeldes die Form seiner Benutzung ebenfalls bereits bekannt. Dies kann wie folgt veranschaulicht werden. Wenn das erste Feld des Satzes 106 eine Beschreibung des Geschlechts der Person enthält, so soll das c-Feld 108 dieses erste Feld so bestimmen, daß es eine Zeichenfolge mit einer Länge von einem Bit aufweist. Wenn das zweite Feld für die Abteilungsnummer der Person vorgesehen ist, so soll das x-Feld 108 diesem zweiten Feld eine Zeichenfolge mit einer gewissen Länge zuordnen. Auf diese Weise kennzeichnen die in dem Block 108 abgelegten. FeId-Descriptoren jeweils die Merkmale des entsprechenden Feldes.
Im Hinblick auf die Tatsache, daß viele Sätze gleich sind, kann der die Merkmale der Daten erläuternde Descriptor 108.für eine Vielzahl von Vorgängen, herangezogen werden. Zum Beispiel kann in einer großen
509825/0768
Gesellschaft, wo viele tausende von Angestellten durch einen Datenprozessor bearbeitet werden, die Art des Satzcodes auf einen Descriptor 108 verweisen, welcher ein besonderes Format"beschreibt, das benutzt wird,um die Information über jeden einzelnen dieser Angestellten aufzuzeichnen. Wenn da beispielsweise 10.000 Leute beschäftigt sind, so ist nur ein Descriptor 108 auf den durch den Satz-Descriptor hingewiesen wird erforderlich, um die diesen Angestellten beschreibenden Datenfelder aufzufinden. Durch die Anwendung der Datenfeld-Descriptoren wird die zur Identifizierung der Felder erforderliche Koordination automatisch bewerkstelligt. Diese Koordinierung wird durch einen integrierten Zugriff und die sich hierbei aus dem Descriptorzugriff ergebenden Ergebnisse erzielt,· wodurch ein Zugriff zu den durch Descriptoren überwachten Dateien erleichtert wird. Bei Dateien, wo die Beschreibung der Inhalte und der Struktur der Daten getrennt vom Programm getragen wird, ergibt sich somit eine Dätenunabhängig-. keit zwischen dem Programm und den Daten.
Wenn ein Programm in einem Datenprozessor 110 mit den Feldern,wie sie durch des Benutzers Datenbank festgelegt sind, nicht übereinstimmt, ist es erforderlich, daß das Programm und die Datenfeld-Descriptoren für die gleiche Information jeweils getrennt aufgezeichnet werden. Als Ergebnis ergibt sich eine Datenunabhängigkeit, da die Daten in der Datenbank in einer ersten Form abgelegt sind und das Programm die Daten in einer hiervon vollständig verschiedenen Form benutzt. Dies wird durch den Descriptor 112 bewerkstelligt, welcher die Merkmale der Daten definiert. Diese Descriptoren sind in einer solchen Weise gespeichert, daß sie einzeln adressierbar sind. Bei dem hier benutzten System werden alle Datenfeld-Descriptoren in einem gemeinsam benutzten Adressraum angeordnet, so daß alle Descriptoren zu den Descriptoren eines anderen Prozesses zugreifen und diese manipulieren können, wobei der andere Prozess eine gegenseitig gemeinsam benutzte Aufzeichnung steuert. Die Datenfelder des Descriptors 112 sind auf ein individuelles Anwendungsprogramm bezogen. Diese Descriptoren zeigen an, wo in dem Arbeitsbereich 114 des Datenprozessors 110 das Feld aufzufinden istι sie bestimmen weiterhin wie lange dieses Feld ist,
509825/0768
sowie den Aufzeichnungsmodus des Feldes und ein anderes Merkmal, welches nachstehend noch näher erläutert wird. Die Datenfeld-Descriptoren der !Datenbank entsprechen denjenigen im Arbeitsbereich, so daß der Datenfeld-Inhalt zwischen dem Arbeitsbereich und der Datenbank mit der erforderlichen Formatbildung hin- und hergeschoben werden kann. . .
Aus der vorstehenden Beschreibung geht hervor, daß die Datenfeld- · Descriptoren 108 der Datenbank formatabhangig sind von dem Typ der Information/wie er durch den Datenbankadministrator bestimmt wird. In gleicher Weise sind die Arbeitsbereich-Descriptoren 112 formatabhängig von den Arten der Information,wie sie durch das Anwendungs-· programm vorliegt. In der folgenden Erörterung ist das Hauptmerkmal auf die Descriptorenfeider, welche die Merkmale der Datenfelder beschreiben und die rein logischen. Befehle gelegt, welche in Verbindung mit den Datenfeld-Descriptoren die übertragung der Felder von den Dateien der Datenbank zu dem Anwendungsprogramm bewirken.
Gemäß Figur 2 ist ein logischer Befehl 200, welcher von dem Datenfeld-Descriptor 108 Gebrauch macht dargestellt. Zu Erläuterungszwecken ist der Befehl 200 mit zwei Feldern dargestellt; er kann jedoch auch aus einem, zwei oder mehreren Feldern bestehen. Ein Feld kann einem Kontrollbefehl dienen, zwei Felder können beispielsweise für einen Bewegungs- oder Vergleichsbefehl vorgesehen sein und drei Felder können beispielsweise einem Addier- oder Subtrahierbefehl dienen*
Der Befehl 200 kann in irgendeinem System codiert sein, wenn die notwendigen Merkmale des Codiersystems durch die Datenfeld-Descriptoren dem Befehl mitgeteilt werden. Somit kann der Befehl 200, welcher verschiedene mit den Daten auszuführenden Operationen kennzeichnen kann, als Teil, der Operation von abzurufenden Operanden mit Datenfeld-Descriptoren versehen werden. Jeder durch den Befehl 200 erhaltene Datenfeld-Descriptor 108 beschreibt das Format eines entsprechenden Datenfeldes 106, auf welches der Befehl bei seiner Ausführung einwirkt. Die Formate der Datenbanken müssen in dem Programm selbst
50 9 8 25/0768
nicht beschrieben werden. Zudem bleiben die Befehle des Programmes dieselben, unabhängig davon,ob das Datenfeld 106 mit der Zeit eine Änderung erfährt.
In den Figuren 2a,2b ist ein Befehlsformat 200 dargestellt. Figur 2a zeigt ein 32-Bit-Format wobei dxevacht Bits einen Operationscode darstellen, der mit OP bezeichnet ist. Der Operationscode ist das hochrangige Byte eines Befehls und wird dazu herangezogen, einen besonderen Befehlstyp zu kennzeichnen. Im vorliegenden Beispiel mag der Operationscode entweder einen Bewegungs-, Addier-, Subtrahier-, Multiplizier-, Dividier-, Vergleichs- oder Kontrollbefehl kennzeichnen. Die nächsten vier Bits/ das sind die Bits 8 bis 11 sind mit MBZ bezeichnet, was bedeutet, daß diese Bits immer den Zustand "0" einnehmen müssen. Die Bits 12 bis 31 kennzeichnen die erste Adressensilbe ASl, welche eine logische Darstellung der Adresse des Operanden im Speicher ist.
Für die spezielle Art der hierbei benutzten Operation ist das erste Bit der Adressensilbe ASl, d.h. das Bit 12 auf den Binärwert "1" eingestellt. Durch dieses Bit wird ein indirektes Adressierverfahren1 angegeben. Der Datenfeld-Descriptor wird über dieses indirekte. Adressierverfahren erzeugt. Während es eine ganze Reihe verschiedener Verfahren zur indirekten Adressierung gibt, eines davon ist beispielsweise in der US-Patentschrift 3 412 382 beschrieben, wird bei der vorliegenden Erfindung von folgendem Adressierverfahren Gebrauch gemacht: In der Adressensilbe ist ein Feld reserviert, welches ein Basisregister identifiziert, das seinerseits eine Segmentnummer und einen Offset enthält. Die Segmentnummer gibt eine Tabelle an, welche einen Segmentdescrxptor erzeugt, durch welchen das einen Datendescriptor enthaltende Segment bezeichnet wird. Dieser Datendescriptor wird erhalten, indem der Offset des Basisregisters zu einem Verschiebefeld innerhalb der Adressilbe addiert wird. Es wird somit der durch die Tabelle gekennzeichnete Platz innerhalb des Segmentes benutzt. Dieser Datendescriptor kann bis zu drei Worte beinhalten, wobei das erste Wort den tatsächlichen geforderten Operanden und das zweite und dritte Wort, falls erforderlich, die Merkmale des Operanden beschreibt.
509825/0768
Im speziellen kennzeichnet das erste Wort ein Basisregister, welches wiederum eine Segmentnummer und einen Offset enthält. Nachdem die Segmentnummer tabellenbezogen istfum einen Segmentdescriptor zu erhalten, welcher das den Operanden enthaltende Segment beschreibt, wird der Offset des Basisregisters zu einer Verschiebung des ersten Wortes addiert, wordurch die exakte Stelle des Operanden innerhalb des Segmentes gekennzeichnet wird. -
Figur 2b zeigt das zweite Wort des Befehls 200, wobei das zweite Wort die Bits 32 bis 63 aufweist. Die Bits 32 bis 35 bezeichnen ein allgemeines Register des Datenprozessors 110, in welches das durch die Adressilbe erzeugte erste Wort abgelegt wird. Die Bits 32 bis 39 bezeichnen ein zweites allgemeines Register, in welches das durch die zweite Adressilbe AS2 erzeugte erste Wort abgelegt wird. Die zweite Adressilbe wird durch die Bits 44 bis 63 veranschaulicht. Wie dies bei der ersten Adressilbe der Fall war, ist auch das erste Bit der zweiten Adressilbe, d.h. das Bit 44, auf den Binärwert "1" eingestellt, um damit auf eine indirekte Adressierung zu verweisen.
Bei dem speziell beschriebenen Befehl werden zwei Adressilben benutzt. Die erste Adressilbe beschreibt ein Ursprungsfeld im Speicher und die zweite Adressilbe beschreibt ein Bestimmungsfeld im Speicher.
Jede Adressilbe ASl und AS2 verweist auf einen Datenfeld-Descriptor. Der erste Teil des Datenfeld-Descriptors umfasst lediglich einen Datendescriptor, wie dies bei den in den Figuren 2c bis 2e dargestellten Datenfeld-Descriptoren 202, 20,4 und 206 der Fall ist. Jeder erste Teil der Datendescriptoren weist in den ersten zwei Bit-Stellen einen Hinweisteil auf. Dieser Hinweisteil besitzt einen Code 01, welcher anzeigt, daß der zweite Teil eines Datenfeld-Descriptors z.B. ein ausgedehnter Daten-Descriptor einzeln angegeben wird. Der Ol-HinWeisteil erlaubt zudem die Bestimmung der Merkmale des Datenfeldes. Der Grund dafür liegt in dem Wunsch, die Datenfeld-Descriptoren so darrzustellen, daß sie gewisse Merkmale über einen ganzen Satz von Dateneinzelheiten beschreiben. So können beispielsweise 1000 Angestellte durch einen Datenfeld-Descriptor bestimmt werden. Zusätzlich erlaubt
509825/0768
die Verwendung des Ol-Hinweisteils die Integration des Datenfeld-Descriptors in die Symmetrie der Steuerstruktur des Datenprozessors 110. Die verbleibenden Teile des Datendescriptors gemäß den Figuren 2c bis 2e erlauben die Identifizierung des Speicherplatzes des zu verarbeitenden Operanden. Der STN- und STE-Teil dienen der Identifizierung der Segmente und Tabellen, welche in Zusammenhang mit der Verschiebung zur Bestimmung des Speicherplatzes des Operanden benutzt werden. Hinsichtlich dieses Merkmals sei auf das oben erwähnte indirekte Adressierverfahren verwiesen.
Der ausgedehnte Datendescriptor, z.B. der zweite Teil des Datenfeld·- Descriptors enthält zumindest ein weiteres Wort 208 wie dies in Figur 2f dargestellt ist. Dieses zweite Wort 208 enthält Informationen ber treffend die Merkmale des Datenfeldes in der Datenbank oder der Datei des Datenprozessors.
In dem ausgedehnten Datendescriptor 208 definieren die Bits 32 bis das Ursprungsfeld eines Bit-Feldes, welches im Fall der Bit-Adressierung benutzt wird. Die Bits 36 bis 38 des ausgedehnten Datendescriptors 208 bestimmen eine Bit-Muster-Überwachung des Datenfeldes. Das Format der Muster-Überwachungs-Bits liegt wie folgt vor: Bit 36 ist das IX-Bit oder Musterindex-Überwachungs-Bit; Bit 37 ist ein Überwachungs-Bit (UB-Bit) für eine obere Grenze und Bit 38 ist ein Überwachungs-Bit (MPY-Bit) für eine Multiplikation. Wenn sich das Bit 36 als binäre "0" darstellt, so beschreibt der ausgedehnte Datendescriptor ein elementares Datenfeld. Enthält dieses Bit jedoch eine binäre 11I", so verweist der Descriptor auf Daten in einem Schema von Datenfeldern und es wird ein durch die Adresshilfe in den Bits 17 bis.19 spezifiziertes Indexregister benutzt,um auf den Descriptor zu verwei- , sen, der für die Adressentwicklung benutzt wird. Wenn sich das Bit als eine binäre "0" darstellt, so findet keine Prüfung auf eine obere Grenze statt. Die Prüfung auf eine obere Grenze bedeutet, daß die Anzahl der Elemente eines Musters innerhalb eines bestimmten Rahmens bleiben muss. Stellt sich das Bit 37 als eine binäre "l",dar, so muss
509825/0768
der eingestellte Index kleiner oder gleich dem Wert des Grenzfeldes sein wie es in dem zweiten Wort des ausgedehnten Datendescriptors beschrieben ist. Wenn der durch das Indexregister angegebene Wert diese Grenze überschreitet, so entsteht ein Ausnahmezustand. Wenn das Bit 38 als eine binäre "O" erscheint, so wird der eingestellte Index unmodifiziert für einen Byte-Offset benutzt. Ist das Bit 38 in Form einer binären "1" gegeben, so wird der eingestellte Index mit dem. Wert des Rahmenfeldes (in Bytes) multipliziert, wie dies durch das zweite Wort des ausgedehnten Datendescriptors bestimmt ist.
Bit 39 des ausgedehnten Datendescriptors 208 stellt ein Veränderungs-Hinweis-Bit dar. Nimmt dieses Bit den Binärwert "O" ein, so soll mit dem durch den Datenfeld-Descriptor beschriebenen Datenfeld eine Schreiboperation ausgeführt werden. Ist dieses Bit als binäre "1"
gegeben, so wird das Datenfeld nicht geschrieben.
Die Bits 40 bis 63 des ausgedehnten Datendescriptors 208· bestimmen die Merkmale des Datenfeldes in der Datenbank. Insbesondere bestimmen die Bits 40 bis 47 die Art des Datenfeldes. Die Art des Datenfeldes wird durch ein 8-Bit-Feld beschrieben, welches die Art der Datencodierung angibt. Zum Zwecke der Veranschaulichung kann eine typische Codierung wie folgt aussehen: Durch einen Binärcode von 0000 0000 wird eine alphanumerische Zeichenreihe beschrieben, durch einen Binärcode 0000 0001 ein ungepacktes Dezimalzeichen (8 Bits pro Dezimalzeichen) , durch einen Binärcode 0000 0010 ein gepacktes Dezimalzeichen (4 Bits pro Dezimalzeichen), durch einen Binärcode 0000 0011 eine Datenzeichen-Zeichenreihe (8 Bits pro Datenzeichen), durch einen Binärcode 0000 0100 kurze Binärdaten ohne Vorzeichen (16 Bitrbinäre ganze Zahl), durch den Binärcode 0000 0101 kurze Binärdaten mit Vorzeichen (15 Bit,binäre ganze Zahl mit Vorzeichen), durch den Binärcode 0000 0110 lange Binärdaten ohne Vorzeichen (32 Bit, binäre ganze Zahl), durch den Binärcode 0000 Olli lange Binärdaten mit Vorzeichen (31 Bit,binäre ganze Zahl mit Vorzeichen), durch den Binärcode 0000 1000 kurze logische Binärdaten (16 Bit) und durch den Binärcode 0000 1001 lange logische Binärdaten (32 Bits). Der Datenfeld-Codiertyp
509825/0768
von OOOO 1010 bis 1000 0000 soll einen Codiertyp anzeigen, der für weitere Expansion reserviert ist und dessen fortlaufende Benutzung nicht gestattet ist. Durch eine Codierung von 1000 0000 bis 1111 1111 können Datentypen angegeben werden, welche zu Softwarezwecken verfügbar sind. Jeder codierte Datentyp kann in einer solchen Weise benutzt werden, daß im Falle seiner Gültigkeit und Kompatibilität durch den Datenprozessor eine Transformation durchgeführt wird. Die Gültigkeit des Datentyps ergibt sich durch Anpassung des in dem Datendescriptor enthaltenen Datentypes an den in dem Befehl enthaltenen Datentyp, für den eine Adressenentwicklung ausgeführt werden soll.
Die Bits 48 bis 55 bestimmen das Kennschlüsselfeld-Merkmal der Datenstruktur. Das Kennschlüsselfeld ist eine Beschreibung gewisser Merkmale eines besonderen Types der Datenstruktur. Durch das Kennschlüsselfeld werden dem Datentyp zweite Anforderungen auferlegt. Das Kennschlüsselfeld kann Informationen betreffend verschiedene Codierungstypen enthalten, z.B. den ASCII-, den EBCIDIC- oder BCD-Code bzw. Umrechnungsfaktoren, z. B. Dollars in Dollars und Cents oder Dimensionsangaben, z. B. Kilogramm. Während der Operation,wenn z.B. der von dem Datenfeld dem Anwenderprogramm der Datenbank vorgegebene Skalierungsfaktor sich in der Größenordnung von einer Million bewegt und wenn der Datenprozessor einen normalen Skalierungsfaktor benutzt, so ergibt sich ein Unterschied hinsichtlich der Skalierungsfaktoren, so daß die Operation hinsichtlich der Dezimalzahl nicht durchgeführt werden kann ohne Umwandlung, obwohl die beiden Datentypen in gleicher Form vorliegen. Hinsichtlich der Dimensionierung werden verschiedene Codierschemen benutzt. Zum Beispiel kann die Farbe blau durch ihren Namen oder in Angström-Einheiten codiert werden. Da durch jede Codierform die gleiche Sache beschrieben wird, gibt das Kennschlüsselfeld diese Beziehung an. Andererseits erlaubt es der Dimensionierungsfaktor beispielsweise nicht, daß ein in Gewichtsmaßen skaliertes Feld in ein anderes Feld bewegt wird, welches nicht in Gewichtsmaßen skaliert ist, sondern beispielsweise in Zeit oder Entfernungsmaßen.
509825/0768
Die Bits 56 bis 63 des Wortes 208 stellen eine 8-Bit-Längeng-eschreibung der Datenstruktur dar. Die Längenbeschreibung kennzeichnet die Länge des Operanden. Für die Operationsfähigkeit des Datenfeldes muß die Operandenlänge folgende Anforderungen erfüllen: Erstens muß für eine Byte-Zeichenfolge die Länge kleiner oder gleich 256 Bytes sein und zweitens muß für eine dezimale Zeichenfolge die Länge kleiner als 32 Ziffern sein, überschreitet die Länge diese Grenzen, so ergibt sich eine Ausnahmebedingung, die auf illegale Daten hinweist.
Figur 2g zeigt das zweite Wort 208 des ausgedehnten Datendescriptors. Dieses Wort ist nur dann vorhanden und wird nur dann abgerufen, wenn die Bits 37 und/oder 38 des ersten ausgedehnten Datendescriptor-Wortes den Binärwert "1" aufweisen. Insbesondere existiert das Grenzfeld, d. h. die Bits 64 bis 79 nur dann, wenn die obere Grenze, d.h. das Bit 37 den Binärwert "1" einnimmt. Das Grenzfeld enthält eine positive ganze Zahl mit 16 Bits, welche gleich der Maximumanzahl von Einzelmerkmalen des Musters ist. Eine untere Grenze von eins wird durch Vereinbarung für das Muster angenommen. Der Inhalt des Indexregisters, der durch die Adresshilfe gekennzeichnet ist> darf nie- mais kleiner als eins sein. Die Bits 80 bis 95 des zweiten Wortes des ausgedehnten Datendescriptors stellen eine positive ganze Zahl von 16 Bit dar, wodurch in Bytes die Größe eines Einzelmerkmales innerhalb des Musters gekennzeichnet wird. Diese Größenanzeige liegt nur dann vor, wenn das Bit 38 den Binärwert "1" aufweist. Die Feldgröße zeigt an, daß die positive ganze Zahl mit dem eingestellten Index zu multiplizieren ist. Liegt diese Anzeige vor, so werden die zuvor beschriebenen Felder geprüft und dazu' herangezogen, einen Index T in der folgenden Weise zu berechnen:
Tabelle 1
a. (IXR) stellt den Inhalt des Indexregisters dar, wie er durch die Adressilbe beschrieben wird. IXR kennzeichnet eine Anzahl von Einzelmerkmalen und wird als ganze Zahl von 32 Bit im ZerKomplement behandelt.
509825/0788
b. (IXR) > 0 Diese Prüfung wird immer ausgeführt.
c. I <~- (XIR) - 1 ergibt den eingestellten,Index I.
d. I < LIMIT wird auf 32 Bits ausgedehnt, wenn UB. = 1.
5k1
e. T <c— I SIZE Operation wird vorgenommen wenn MPY = 1,
wenn MPY = 0, T 4r~ I. I * SIZE stellt den errechneten Index dar und liegt immer in Byte-Darstellung vor.
f. Relative Segmentadresse <— Verschiebung (Wort 0) +T (+ OF.FSET des Basisregisters, wenn der ausgedehnte Descriptor ITBB ist). Der errechnete Index T kennzeichnet das.Byte, welches der Betrachtung unterliegt.
Bei der nachfolgenden Beschreibung einer Einrichtung, welche von dem Datenfeld-Descriptor Gebrauch macht, sind drei Kategorien zu unterscheiden, bei denen die Entwicklung eines Datenfeld-Descriptors erfolgen kann. Zunächst kann der Datenfeld-Descriptor vollständig in der Hardware verwirklicht werden, so daß die gesamte Verarbeitung des Datenfeld-Descriptors durch die in den Figuren 3 und 5 dargestellte Einrichtung erfolgt. Dies ist in den meisten aller Anwendungsfällen der Fall. Zweitens kann der Datenfeld-Descriptor in der Hardware verwirklicht sein, wobei jedoch eine SoftvareunterStützung erforderlich ist, um die Operation vollständig durchzuführen. Diese Situation ergibt sich dann, wenn legale Datentypen aber verschiedene Schlüsselfelder vorgesehen sind. Im vorstehenden Beispiel betreffend den Skalierungsfaktor wird es mittels der1 Software erforderlich sein, die Skalierungsfaktoren zu ändern, so daß sie einander gleich sind. , Danach kann durch die Hardware die Operation in normaler Weise durchgeführt werden. Die Softwareintervention wird durch einen Zustandscode angezeigt, welcher nachstehend noch beschrieben wird. Wenn drittens sich der Datenfeld-Der.criptor in einem der signifikanten Felder als illegal herausstellt, so verlangt diese Situation eine Ausnahmebedingung, welche durch die Software behandelt wird. Weitere Beispiele bestimmter Momente, in denen diese Situation erscheint, sind in Figur 4 dargestellt.
509825/0768
Die Erläuterung der Operation des Befehles 200 und der Datenfeld-Descriptoren, auf die durch den Befehl zugegriffen wird, wird besser verständlich, wenn man das Blockdiagramm gemäß Figur 3 betrachtet, welches die Hardware eines Datenverarbeitungs'systemes zeigt, die von der vorliegenden Erfindung Gebrauch macht.
Gemäß Figur 3 weist ein Hauptspeicher 301 eines Datenprozessors vier Module von MOS-Speichern auf. Die vier Speichermodule O bis 3 sind mit .der Zentraleinheit CPU 300 über einen Hauptspeicher-Sortierer 302 verbunden.' Die vier Hauptspeichermodule 0 bis 3 sind über den Hauptspeicher- Sortierer 302 ebenfalls mit dem peripheren Subsystem z. B. Magnetbandeinheiten und Plattenspeicher-Antriebseinheiten über ein zusätzliches Eingangs/Ausgangs-Steuerwerk IOC 320 verbunden. Der Hauptspeicher-Sortierer 302 gestattet den Zugriff zu allen vier Speichermodulen. Da der Hauptspeicher-Sortierer 302 Anforderungen abgibt, die mit einem Speicherzyklus überlappen können, ergibt sich die Möglichkeit, daß mehr als ein Speichermodul 0 bis zu jedem gegebenen Zeitpunkt zyklisch durchlaufen werden kann. Die Zentraleinheit 300, der darin enthaltene Pufferspeicher 304 und das Eingangs/Ausgangs-Steuerwerk 320 verarbeiten jeweils ein Doppelwort (8 Bytes). Bei einem Zentraleinheits-Speicherzugriff werden jedoch entweder die vier hochrangigen Bytes oder die vier niederrangigen Bytes ausgewählt, so daß nur vier Bytes der Information von der Zentraleinheit 300 empfangen werden.
Die Operationen der Zentraleinheit werden durch einen Festwertspeicher ROM gesteuert, der nachfolgend als Steuerspeichereinheit 310 bezeichnet ist. Jeder Speicherplatz innerhalb der Steuerspeichereinheit 310 kann zur Steuerung eines Zentraleinheitszyklus herangezogen werden. Beim Auslesen eines jeden Speicherplatzes der Steuerspeichereinheit wird der Inhalt jeweils durch eine Mikrooperations-Decodierung decodiert. Bei jeder Mikrooperations-Decodierung wird jeweils eine bestimmte Operation innerhalb der Zentraleinheit hervorgerufen. Werden beispielsweise die Daten-Bits 1, 2 und 3 der Steuerspeichereinheit als 010 decodiert, so ruft dies eine Mikrooperations-Decodierung hervor, die eine Verschiebung des Inhalts eines Α-Registers nach dem Inhalt eines B-Registers bewirkt. Da jeder Speicherplatz der Steuer-
509825/0 768
Speichereinheit 2Ό bis 80 Bits enthalten kann, können für jeden Steuerspeicherzyklus viele Mikrooperations-Decodierungen hervorgebracht werden.
Durch Gruppierung von Speicherplätzen können Steuerspeicher-Schrittfolgen erzeugt werden, die eine spezielle Operation der Zentraleinheit oder einen Befehl darstellen. Da jeder Befehl durch die Zentraleinheit hervorgerufen wird, werden bestimmte Bits innerhalb des Operationscodes herangezogen, um die Startfolge des SteuerSpeichers zu bestimmen. Die Prüfung bestimmter nicht dargestellter Flip-Flops, welche gesetzt oder zurückgestellt werden durch einen aus der Decodierung erhaltenen Befehl f gestattet der SteuerSpeichereinheit die Verzweigung auf eine spezifischere.Schrittfolge,falls erforderlich.
Der Steuerspeicher-Schnittstellenadapter 309 steht in Informationsaustausch mit der Steuerspeichereinheit 310 der Datenverwaltungseinheit 306,der Adressensteuerexnheit 307 und der arithmetischen Recheneinheit 312. Der Steuerspeicher-Schnittstellenadapter 309 weist Logikschaltkreise zur Steuerung einer Speicheradressenmodifikation zum Testen, zur Fehlerprüfung und einer Hardware-Adressenerzeugung auf. Die Hardware-Adressenerzeugung wird allgemein benutzt, um die Startadresse von Fehlerfolgen oder die Anfangsfolge zu bestimmen.
Der Pufferspeicher 304 wird dazu herangezogen, um die am häufigsten oder zuvor am meisten von der Zentraleinheit 300 benutzte Information zu speichern. Der Pufferspeicher 304 ist ein relativ kleiner Speicher mit sehr hoher Geschwindigkeit, welcher 128 Spalten und 2 Zeilen aufweist, wobei die beiden Zeilen als die obere und untere Zeile bezeichnet seien. Er ist logisch in Voreinstellblöcke unterteilt, welche einzeln adressierbar sind. Diese Blöcke werden als Seiten bezeichnet und jede Seite des Speichers enthält 32 Bytes Information. Eine besondere Seite kann durch die 16 signifikantesten Bits der Hauptspeicheradresse adressiert werden, wobei die am wenigsten signifikanten fünf Bits dazu herangezogen werden, ein besonderes Informations-Byte innerhalb der Seite zu adressieren. Die Seiten können von dem Haupt-
50 9 8 25/0768
speicher nach dem Pufferspeicher übertragen werden, wobei die Spaltenzuordnung beibehalten wird, z. B. wird eine Seite aus der Spalte 1 des Hauptspeichers immer in die Spalte 1 des Pufferspeichers übertragen. Ob jedoch die Information in der oberen oder unteren Reihe der Spalte abgelegt wird, hängt von der Verfügbarkeit ab. Aus diesem Grund befinden sich, für jede Spalte der Hauptspeicherseiten zwei Seiten im Pufferspeicher. Zum Beispiel kann die Spalte 37 im Hauptspeicher irgendeine der zwei Informationsseiten aus Spalte 37 des Pufferspeichers enthalten. Die zwei in dem Pufferspeicher enthaltenen Informationsseiten sind zu jedem gegebenen Zeitpunkt davon abhängig, auf welche Seiten von der Zentraleinheit zuvor am häufigsten zurückgegriffen wurde, d.h. daß die zwei zuvor am häufigsten benutzten Seiten sich typischerweise in dem Pufferspeicher 304 befinden.
Ob eine gegebene Informationsseite in dem Pufferspeicher 304 enthalten ist, kann nur bestimmt werden durch Prüfung des Inhalts der Pufferspeicher-Adressliste 305. Die Pufferspeicher-Adressliste 305 ist in der gleichen Weise wie der Pufferspeicher 304 logisch unterteilt, jedoch enthält jede Spalte der Pufferspeicher-Adressliste 305 anstelle von Informationsseiten die Hauptspeicher-Reihenadresse der zugeordneten Information in dem Pufferspeicher 304. Enthält beispielsweise die Spalte O des Pufferspeichers 304 die Seite 20 in der unteren Reihe und die Seite 0 in der oberen Reihe, so enthält die Pufferspeicher-Adressliste die Binärzahlen 10100.und 00000 in der unteren und oberen Reihe entsprechend. Durch Zugriff in die Pufferspeicher-Adressliste 305 mit der Spaltennummer und durch Vergleich der angeforderten Reihennummer mit der im Speicherplatz der Pufferspeicher-Adressliste enthaltenen Reihennummer kann die Zentraleinheit bestimmen, ob eine gegebene Seite in dem Pufferspeicher enthalten ist.
Die Datenverwaltungseinheit 306 stellt die Datenschnittstelle zwi·^· sehen der Zentraleinheit 300 und dem Hauptspeicher 301 und/oder Pufferspeicher 304 dar. Während einer Speicher-Leseoperation kann
50982 5/0768
die Information im Hauptspeicher oder Pufferspeicher aufgefunden v/erden. Es ist die Aufgabe der Datenveirv/altungseinheit 306, zum geeigneten Zeitpunkt die Information in die Register "der Zentraleinheit zu verteilen. Die Datenverwaltungseinheit verwirklicht sodann noch das Ausblenden von teilweisen Schreiboperationen.
Eine Befehls-Abrufeinheit 308 arbeitet mit der Datenverwaltungseinheit 306,der Adressensteuereinheit 307, einer arithmetischen Recheneinheit 312 und der Steuerspeichereinheit 310 zusammen. Die Befehls-Abrufeinheit 308 versorgt die Zentraleinheit 300 mit Befehlen. Zu diesem Zweck weist sie den nächstfolgenden Befehl in ihren Registern auf, bevor der sich gerade in Ausführung befindliche Befehl bearbeitet ist. Um diese Fähigkeit aufzuweisen, ist die Befehls-Abrufeinheit 308 mit einem 12-Wort-Befehlsregister ausgestattet, welches normalerweise mehr als einen Befehl beinhaltet. Zusätzlich fordert die Befehls-Abrufeinheit 308, gesteuert von dem Steuerspeicher 310, Befehle aus dem Hauptspeicher 301 an bevor diese Befehle tatsächlich benötigt werden, was auf eine fortlaufende Ergänzung des 12-Wort-Befehlsregister s hinausläuft. Befehle werden somit im voraus abgerufen, indem auf normalerweise unbenutzte Speicherzyklen zurückgegriffen wird. Die Befehls-Abrufeinheit 308 decodiert jeden Befehl und informiert die anderen Einheiten über die Länge und das Format des Befehls.
Die Adressensteuereinheit 307 steht in Informationsaustausch mit der Befehls-Abrufeinheit 308, der Pufferspeicher-Adressliste 305, dem Hauptspeicher-Sortierer 302, der arithmetischen Recheneinheit 312, der Datenverwaltungseinheit 306 und der Steuerspeichereinheit 310 über Zwischenschaltung des Steuerspeicher-Schnittstellenadapters 309., Die Adressensteuereinheit 307 ist für alle Adressenentwicklungen innerhalb der Zentraleinheit verantwortlich. Alle Operationen der Adressensteuereinheit,die Datenübertragungen innerhalb der Zentraleinheit betreffen, werden durch Steuerspeicher-Mikrooperationen inner halb der Einheit ausgeführt. Der normale Zyklus der Adressen-Steuereinheit hängt von der Art der Adressen innerhalb des Befehles und
509825/0768
nicht von dem Typ des Befehls selbst ab. In Abhängigkeit von der Art der Adresse kann die Adressensteuereinheit verschiedene Operationen für jede Adresse innerhalb eines Befehles ausführen.
Die Adressensteuereinheit 307 enthält einen Assoziativspeicher, welcher typischerweise die Basisadresse der acht zuvor am häufigsten benutzten Speichersegmente mit .ihren Segmentnummern speichert. Jedesmal wenn eine Speicheranforderung erfolgt, wird die Segmentnummer mit dem Inhalt des Assoziativspeichers überprüft,um festzustellen, ob die Basisadresse des Segmentes schon entwickelt und gespeichert worden ist. Ist die Basisadresse in dem Assoziativspeicher enthalten, so wird diese Adresse bei der absoluten Adressentwicklung benutzt, · und es wird ein beträchtlicher Zeitbetrag eingespart. Vienn die Basisadx-esse in dem Assoziativspeicher nicht enthalten ist, wird sie entwickelt ,indem Zugriff zu den Hauptspeichertabellen genommen wird. Nachdem die Basisadresse des Segmentes entwickelt ist, wird sie in dem Assoziativspeicher zusammen mit der Segmentnummer abgespeichert für eine zukünftige Bezugnahme.
Mit der Adressensteuereinheit 307 der Befehls-Abrjjfeinheit 308 und der Steuerspeichereinheit 310 steht die arithmetische Recheneinheit 312 in Informationsaustausch, wobei die arithmetische Recheneinheit 312 den primären Arbeitsbereich der Zentraleinheit 300 bildet. Die primäre Funktion der arithmetischen Recheneinheit 312 besteht darin, die von der Zentraleinheit angeforderten arithmetischen Operationen und Datenmanipulationen durchzuführen. Die Operationen der arithmetischen Recheneinheit 312 hängen von den in der Steuerspeichereinheit 310 abgespeicherten MikroOperationen ab.
Der arithmetischen Recheneinheit 312 und der Steuerspeichereinheit 310 ist eine lokale Speichereinheit 311 zugeordnet, welche aus einem Festkörperspeicher mit 256 Speicherplätzen (32 Bits pro Speicherplatz) bestehen kann. Die lokale Speichereinheit 311 wird herangezogen um· die Steuerinformation der Zentraleinheit zu speichern. Zusätzlich weist die lokale Speichereinheit 311 Arbeits-Speicherplätze auf,
509825/0768
welche primär benutzt werden zur zeitlichen Speicherung von Operanden und Teilresultaten während der Datenverarbeitung.
Die Zentraleinheit 300 enthält typischerweise acht Basisregister, welche in der arithmetischen Recheneinheit 312 angeordnet sind und welche bei dem Verfahren der Adressberechnung benutzt werden um eine Segmentnummer, einen Offset und eine Ringnummer zu bestimmen. Der Offset ist ein Hinweis innerhalb des Segmentes und die Ringnumitier wird benutzt bei der Gültigkeitsberechnung der Adresse um Zugriffsrechte bei einem besonderen Bezug auf ein Segment festzulegen.
Das Eingangs/Ausgangs-Steuerwerk 320 ist der Teil des Subsystems der Zentraleinheit, welches die Datenverbindung zwischen einer Vielzahl von peripheren Subsystemen zu dem Hauptspeicher herstellt. Es stellt die Nachrichtenverbindungen her,um periphere Befehle auszuführen und es steuer-t die daraus resultierenden Datenübertragungen. Das Eingangs/ Ausgangs-Steuerwerk kann ein Maximum von 16-Kanal-Steuereinheiten betätigen und die Steuereinheit eines jeden Kanales kann mit einer peripheren Steuereinheit zusammenarbeiten. Die peripheren Steuereinheiten versorgen das Subsystem der Zentraleinheit mit einem Satz . Datenbasis-Dateien.
In Figur 4 ist ein Flußdiagramm dargestellt, durch welches die Stufen veranschaulicht werden, welche bei der Verarbeitung der Datenfeld-Descriptoren benutzt werden. Die in Figur 4 dargestellten Operationen in Verbindung mit den Figuren 3 und 5 ergeben eine Übersicht über den zeitlichen und funktionellen Ablauf des Systems. Figur 5 ist ein schematisches Diagramm,welches die übertragung und Manipulationen des Datenfeld-Descriptors zeigt. . t
In Figur 4 ist mit 400 der Start der Operation, die von dem Datenfeld-Descriptor Gebrauch macht,bezeichnet. Zu diesem Zeitpunkt ist der in den Figuren 2a und 2b dargestellte Befehl 200 in dem Befehlsregister 500 der Befehls-Abrufeinheit 308 gespeichert. Der Operationscode wird durch den Steuerspeicher-Schnittstellenadapter 309 ermittelt, der seinerseits die Steuerspeichereinheit 310 in die Lage versetzt, eine Serie von Tests auszuführen, die auf ausgewählte Bit-Felder des
509825/0768 . ' .
Befehls Anwendung finden. Diese Tests werden durch Mikrobefehle ausgeführt, die von der Steuerspeichereinheit 310 erzeugt werden. Die Ergebnisse dieser Tests werden von dem Steuerspeicher-Schnittstellenadapter 309 festgehalten, der in Abhängigkeit von den Testergebnissen den nächsten Mikrobefehl-Abruf modifizieren kann, so daß ein bezogener Mikrobefehl erzeugt· wird, der die festgestellte Bedingung mit umfasst. Hierbei findet eine Mikro-Verzweigungstechnik Anwendung,wobei die konditionierten Signale, welche von dem Steuerspeicher-Schnittstellenadapter erhalten werden in eine direkte Adresse der Steuerspeichereinheit 310 übersetzt werden. Die resultierende Operation stellt eine direkte Nachrichtenverbindung für nachfolgende Datenübertragungen her, wobei der zuvor festgestellte Zustand berücksichtigt wird. Die erwähnte Folge von Ereignissen erscheint hinsichtlich jeder Rautendarstellung in Figur 4 und wird nachstehend nicht in Einzelheiten beschrieben. Die Mikrobefehle gestatten eine schnelle Verwirklichung der dargestellten Schritte. Die-Mikrobefehl-Merkmale sind in dem US-Patent Nr. 3 634 883 näher beschrieben und bedürfen daher hier keiner näheren Erläuterung.
In dem Stufenschritt 402 gemäß Figur 4 werden die Bit-Felder 8 bis 12, 35 und 39 bis 44 auf die Binärwerte 11O" überprüft. Diese Tests werden in Schaltkreisen innerhalb des Steuerspeicher-Schnittstellenadapters 309 durchgeführt und die Testergebnisse steuern die Operation der SteuerSpeichereinheit 310. Verlaufen die Tests erfolgreich, d. h. die Felder weisen in ihren Binärstellen den Binärwert 11O" auf, so fordert die Stufe 404 den Test der Bitfelder 12 und 44,welche die ersten Bits von jeder der beiden Adressilben darstellen. Diese Felder werden auf den Binärwert. "1" getestet und sie zeigen an, ob eine indirekte Adressierung erforderlich ist. In der vorliegenden Situa-
tion ist eine indirekte Adressierung erforderlich, da die Adressensilbe einen 01-Hinweis besitzt, welcher einen Datende scrip tor. beschreibt der durch indirekte Adressierung erhalten wird.
Praktisch werden die Schritte 402 und 404 gleichzeitig ausgeführt. Wenn irgendeines dieser Felder nicht vorhanden ist, so wird eine
509-825/0768
Ausnahmebedingung für ein illegales Feldformat erzeugt,wie dies in der Stufe 406 veranschaulicht ist, welche sodann die Steuerspeichereinheit 310 in Verbindung ttiit dem ,Steuerspeicher-Schnittstellenadapter 309 veranlasst,eine Hardware-Ausnahme-Routine durchzuführen. Diese Routine wird verwirklicht durch eine Verzweigung in der Steuer speichereinheit, wodurch eine Nachricht nach einer Routine dergestalt ausgesendet wird, daß die Routine weiß, welche Art von Ausnahme aufgetreten ist und der Ausnahmebedingung eine einzige Information zuordnet.
Die Bits 35 und 39 in dem Schritt 402 werden auf den Binärwert "0" eingestellt, da zwei allgemeine Register" für jede der Adressilben angefordert werden. Durch das Einstellen auf den Binärwert "0" kann das nächste allgemeine Register zur Benutzung herangezogen werden. Zwei allgemeine Register sind erforderlich, da ein Register die von der Adressilbe entwickelte effektive Adresse speichert und das zweite Register das erste Wort des ausgedehnten Daten-Descriptors speichert. Auf diese Weise werden vier allgemeine Register herangezogen, um die Adressilben des Befehls gemäß den Figuren 2a und 2b zu entwickeln.
Ist einmal festgestellt worden, daß ein ausgedehnter Daten-Descriptor zu entwickeln ist, so wird der Schritt 408 des Fluß-Diagrammes ausgeführt. Der Schritt 408 zeigt an, daß die Adressenentwicklung mit jeder vorliegenden Adressensilbe auszuführen ist, d. h. mit den Bits 12 bis 31 und 44 bis 63 des Befehls 200. Im vorliegenden Fall wird die Adressensilbe benutzt, um auf einen Daten-Descriptor hinzuweisen» der ein erstes Wort aus der Gruppe von Worten gemäß den Figuren 2c bis 2e entsprechend einer effektiven Adresse umfasst.
Das erste Wort besitzt ein Hinweisfeld mit den Binärwerten 01 t wodurch zusätzlich zu dem Hinweis auf den Operanden angezeigt wird, daß der Daten-Pescriptor. eine Länge aufweist,die größer als eine Wortlänge ist. Diese zusätzlichen Worte, z. B. die ausgedehnten Daten-Descriptoren 208,beschreiben die Merkmale des Operanten, auf den
509825/0768
durch das erste Wort zugegriffen wird. In diesem besonderen Fall der effektiven Adressentwicklung ist der durch das Indirektions-Bit gekennzeichnete Descriptor ein Datenfeld-Descriptor.
Das erste Wort des Dateri-Descriptors enthält ebenfalls eine Information,die auf den Speicherplatz desjenigen Segmentes hinweist, welches den Operanden und eine relative Verschiebung enthält um anzuzeigen, wo der Operand im Segment angeordnet ist. Durch Adressenentwicklung in der arithmetischen Recheneinheit wird die absolute Adresse des Operanden berechnet und sodann dazu benutzt, den Zugriff im Hauptspeicher durchzuführen. In dem Fall,wo es sich um 1000 Angestellte ' der gleichen Firma handelte,wird der gleiche Daten-Descriptor jedes^ mal benutzt aber die weitere Adressentwicklung legt den Operanden von, jedem der 1000 Angestellten durch Veränderung des Inhalts des Basis- · registers fest um alle 1000 Operanden abzuspeichern. Die effektive Adresse, d. h. das erste Wort,sei nachfolgend als Xl bezeichnet und sei von der Adressensilbe und dem Operanten unterschieden, da diese alle in verschiedenen Einheiten innerhalb der Zentraleinheit abgespeichert sind. '
Im Schritt 410 wird das erste Wort,welche"sdie effektive Adresse.-wie in einer der Figuren 2c bis 2e dargestellt-enthält, im Register 504 der Adressensteuereinheit 307 gespeichert. Die Steuerspeichereinheit 310 zusammen mit dem Steuerspeicher-Schnittstellenadapter 309 prüft sodann,wie dies durch den Schritt 410 angedeutet ist, ob der Hinweis des Daten-Descriptors in seinen ersten beiden Bit-Stellen die Kombination 01 aufweist. Diese Hinweis-Bits identifizieren einen Datenfeld-Descriptor. Ist der Hinweis korrekt, so wird das erste Wort des ausgedehnten Daten-Descriptors aus dem Speicher ausgelesen. Dieses Wort wird entweder aus dem Hauptspeicher 301 oder aus dem Pufferspeicher 304 ausgelesen,wie dies früher erläutert wurde. Ist dieses Wort einmal ausgelesen, so wird es über das DN-Register 502 in die. Datenverwaltungseinheit 306 gebracht. Das Wort ist ein 32-Bit-Wört 208/wie dies in Figur 2f dargestellt ist. Dieses Wort wird sodann von der Datenverwaltungseinheit 306 zu der lokalen Speichereinheit
509825/0768
311 übertragen und wird in einem Arbeitsregister eines Unterbrechungs-Programmspeichers 506 abgespeichert. Der nächste Mikrobefehl überträgt dieses erste Wort des ausgedehnten Daten-Descriptors nach einem AC-Register 508 in welchem ein Test hinsichtlich des 3-Bit-Muster-Feldes, d. h. der Bits 36 bis 38 durchgeführt wird, um zu bestimmen, ob ein zweites Wort des ausgedehnten Daten-Descriptors abgerufen werden soll oder nicht. Dieses zweite Wort ist vorhanden und wird abgerufen nur■in dem Fall> wo die Bits 37 und/oder 38 des Wortes 1 den Binärwert "1" einnehmen. Dieses Wort wird sodann aus dem Hauptspeicher 301 und/oder.dem Pufferspeicher 304 ausgelesen und zu dem DN-Register 502 in der Datenverwaltungseinheit 306 übertragen, von wo es nachfolgend in ein anderes Arbeitsregister des Unterbrechungs-Programmspeichers 506 innerhalb der lokalen Speichereinheit 311 übertragen wird. Das im Arbeitsbereich des Unterbrechungs-Programmspeichers 506 enthaltene Wort wird sodann in diesem festger halten,bis es benötigt wird,um die besondere Information über das Datenfeld der Datenbank zu liefern.
Die gleichen Operationen,wie oben beschrieben/werden hinsichtlich der zweiten Adressilbe durchgeführt, wobei der einzige Unterschied darin besteht, daß die effektive Adresse der Adressilbe mit X2 bezeichnet ist und der zweite ausgedehnte Daten-Descriptor in dem AE-Register 510 abgespeichert ist. Zum leichteren Verständnis sei angenommen, daß nur das erste Wort des ausgedehnten Daten-Descriptors angefordert ist.
Wenn der Test hinsichtlich des Hinweisteils der Descriptoren eine Binärzifferkombination ungleich 01 ergibt, so springt die* Steuerspeichereinheit 310 nach einem Ausnahmezustand, welcher einen illegalen Daten-Descriptor kennzeichnet, wobei dies in ähnlicher Weise verwirklicht wird wie bei der Ausnahmebestimmung hinsichtlich eines illegalen Feldformates.
Hinsichtlich des AC-Registers 508 und des AD-Registers 510 ist es möglich, irgendein Byte aus diesen Registern auszuwählen, um diese
509825/0768
irgendwelchen Tests zu unterziehen.' Dies kann durch irgendeinen bekannten Auswahlmechanismus 518, der zu irgendeinem Byte in dem AC- oder AD-Register Zugriff hat oder durch Verschieben der Registerinhalte und anschließende Übertragung der Bytes erfolgen.
Im Schritt 414 wird das zuvor erwähnte Merkmal realisiert. Zu diesem Zweck werden das Kennschlüssclfeld des ersten ausgedehnten Daten-Descriptorwortes, welches sich in dem AC-Register befindet und das Kennschlüsselfeld des zweiten ausgedehnten Daten-Descriptorwortes, welches sich in dem AD-Register befindet, nach einem AA-Register und einem AB-Register 514 verschoben. Die AA- und AB-Register sind Teil eines Byte-Rechners 516, der eine einfache Paralleladdition und Subtraktion in Übereinstimmung mit den durch die Steuerspeichereinheit 310 erzeugten Mikrobefehle verwirklicht. Der Byte-Rechner kann irgendein Paralleladdierer oder Subtrahiefer sein,wie er im Stand der Technik bestens bekannt ist. Wie früher bereits.festgestellt, sind die Kennschlüsselfelder durch die Bits 48 bis 55 des ersten Wortes eines jeden ausgedehnten Daten-Descriptors gegeben.
Durch die Steuereinheit 310 werden die Inhalte der Register AA und AB in den Rechner 516 übertragen welcher eine Subtraktion hinsichtlich der Kennschlüsselfelder der beiden Wörter ausführt. Sind die Werte der zwei Kennschlüsselfelder einander nicht gleich, so wird das Ergebnis auf den Steuerspeicher-SeKnittstellenadapter 309 übertragen, welcher die Steuerspeichereinheit 310 in die.Lage versetzt, zu einer Terminations-Routine zu springen,wie dies durch den Schritt 416 angedeutet ist. Dies wird verwirklicht,indem ein Zustandscode innerhalb eines Statusregisters 517 in der arithmetischen Recheneinheit 312 auf den Binärwert von 3 eingestellt wird. Ein Zustandscode ( von 3 zeigt an, daß eine Intervention erforderlich ist, um die Operation zu beenden. Dieser Wert wird sodann durch die SteuerSpeichereinheit 310 in der Weise interpretiert, daß das Wort Xl und das erste Wort des ausgedehnten Daten-Descriptors zusammen mit der ersten Adressensilbe und das Wort X2 und das erste Wort des ausgedehnten Daten-Descriptors zusammen mit der zweiten Adressensilbe zu den
509825/0 76 8
allgemeinen Registern in der Adressensteuereinheit 307 übertragen werden, wie dies durch den Schritt 416 angedeutet ist. Mit ungleichen Kennschlüsselfeldern ist es jedoch möglich, z. B. durch eine Routine die ungünstigen Bedingungen zu korrigieren, was durch Transformierung des Skalierungspunktfaktors oder der besonderen Codeinformation in ein allgemeines Format erfolgen kann und eine Ausführung der verbleibenden Schritte ermöglicht.
Wenn durch den Byte-Addierer 510 eine binäre "0" für den Steuerspeicher-Schnittstellenadapter 309 erzeugt wird, dann ist es bekannt, daß die Kennschlüsselfelder übereinstimmen. In diesem Fall führt die Steuerspeichereinheit 310 einen Test hinsichtlich der Änderungsfähigkeit des zweiten Operanten aus, wie dies durch den Schritt 418 veranschaulicht ist. Dieser Test wird durchgeführt, indem der Inhalt des · AD-Registers 510 so verschoben wird, daß sich das Bit 39 in der * ersten Stelle des Registers befindet. Der Test wird sodann unter Steuerung durch die Steuerspeichereinheit 310 durchgeführt und die Ergebnisse zeigen an, ob die ermittelte Speicherstelle eingeschrieben werden kann oder nicht. War beispielsweise der benutzte Code für das Datenverarbeitungssystem nicht zuträglich, so wird das Al öder Änderungs-Bit auf den Binärwert "1" eingestellt, wodurch angezeigt wird, daß das Datenfeld nicht in den zweiten Operanden eingeschrieben werden darf. Existiert dieser Zustand, so liegt die Ausnahme eines von der Steuerspeichereinheit 310 entwickelten illegalen Datentypes vor, was durch den Schritt 420 gemäß Figur 4 angedeutet ist.
Anschließend an den Veränderungstest führt die Steuerspeichereinheit 310 eine Testoperation bezüglich der Datentypen durch, d. h. hinsichtlich der Bit-Positionen .40 bis 47 des ersten Wortes eines jeden ausgedehnten Daten-Descriptors. Im Schritt 422 wird der Datentyp zusammen mit der ersten Adressilbe von dem AC-Register 508 in das AA-Register 512 über den Auswahlmechanismus 518 der arithmetischen Recheneinheit 312 eingelesen. Gleichzeitig mit diesem Schritt wird eine Konstante in das AG-Register 520 geladen. Die Konstante befindet sich innerhalb der Bereiche, die durch die illegalen Datentypen vorgegeben sind. Eine Subtraktion wird sodann zwischen dem AA-Register und AG-Register durch den Schaltkreis 522 durchgeführt. Das Resultat der
509825/0768
■ - 31-
Subtraktion legt fest, ob der erste.Operand einen legalen Datentyp aufweist oder nicht.
In der Stufe 424 wird eine gleiche Operation «hinsichtlich des zweiten Operanden durchgeführt, wobei die Bits 40 bis 47 des zweiten ausgedehnten Daten-Descriptors aus dem Register 510 ausgewählt und in das AB-Register 514 verschoben werden..Wenn die Subtraktion von der Konstanten im AG-Register 520 einen illegalen Datentyp anzeigt, so wird dies dem Datenverarbeitungssystem über eine entsprechende Ausnahmebedingung angezeigt, wie dies durch die Stufe 420 gemäß Figur veranschaulicht ist. Diese Operation entspricht der Operation in den Schritten 406 und 412. ' ·
Wenn beide Datentypen legal sind, so wird der Schritt 426 gemäß Figur 4 ausgeführt. Dieser Schritt wird durch die Steuerspeichereinheit 310 verwirklicht, welche eine neue Konstante für das AG-Register erzeugt und wobei die in dem Register 512 enthaltene Information die gleiche bleibt. Eine Subtraktion wird sodann durch den Schaltkreis 522 zwischen den Inhalten des AA-Registers 512 und des AG-Registers 520 durchgeführt. Ist der erhaltene Wert gleich Null oder größer als Null, so wird der Beendigungsschritt 416 durchgeführt. Ist der Wert kleiner als Null, so liegt ein legaler Datentyp vor, der von der Hardware verarbeitet werden kann.
Die gleiche Operation wird sodann im Schritt 428 hinsichtlich des zweiten ausgedehnten Daten-Descriptors ausgeführt, wobei der unveränderte Inhalt des AB-Registers 514 von der gleichen Konstanten im AG-Register 520 subtrahiert wird. Ist. das durch den Rechenschaltkreis 522 gebildete Resultat kleiner als Null, so wird zu dem Schritt 430 weitergegangen. Ist das Resultat Null oder größer als Null, so wird der Zustandscode im Statusregister 517 auf drei gesetzt und die im Schritt 416 erwähnten allgemeinen Register werden geladen. Es sei vermerkt, daß bei diesem Zustand das zweite Wort des ausgedehnten Daten-Descriptors für jede Adressilbe verlorengeht, da die Routine sich nicht mit der Länge und der Größenbeschreibung befasst, welche durch das zweite Wort in dem ausgedehnten Dateh-Descriptor beschrieben sind.
509825/0768
BAD
Im Schritt 430 ist es bekannt, daß die Datentypen legal sind und daß die Hardware die erforderlichen Merkmale enthält^um die Datentypen zu behandeln. Im Schritt 430 wird bestimmt,, ob die Datentypen kompatibel sind. Zu diesem Zeitpunkt bestimmt die SteuerSpeichereinheit 310 den Datentyp des ersten.und zweiten Operanden. Sie macht dies, indem sie zuerst eine Konstante in das AG-Register 520 lädt, und die Konstante von dem in das AA-Regi.ster 510 geladenen Datentyp subtrahiert. Wenn durch den Steuerspeicher-Schnittstellenadapter 309 eine Null festgestellt wird, so springt die Steuerspeichereinheit 310 auf einen Mikrobefehl,um zu testen, welcher Art der zweite Deitentyp ist. Die Steuerspeichereinheit 310 ermittelt nunmehr den ersten Datentyp. Die gleiche Operation wird beim Test des zweiten Datentyps durchgeführt, welcher in dem AB-Register 512 gespeichert ist. Durch Bestimmung des zweiten Datentyps ist der Steuerspeichereinheit 310 sodann jeder Datentyp bekannt. Auf Grund dieser Information führt die Steuerspeichereinheit 310 eine Verzweigungsoperation durch, wodurch-falls erforderlich-eine Format-Wiederherstellung des geschaffenen Datentyps ermöglicht wird. Diese Format-Wiederherstellung kann hinsichtlich der Daten in einer übersetzungseinrichtung erfolgen, durch welche ein kompatibler Datentyp geschaffen wird. Das Merkmal hinsichtlich der Format-Wiederherstellung kann zusätzlich für jedes Datenverarbeitungssystem verschieden sein. Zum Beispiel kann die Umwandlung eines gepackten dezimalen Zeichens 0000 0010 in ein ungepacktes dezimales Zeichen 0000 0001 in allen Datenverarbeitungssystemen möglich sein. Andererseits kann die Umwandlung eines kurzen Binärzeichens mit Vorzeichen 0000 0101 in ein langes Binärzeichen mit Vorzeichen 0000 Olli lediglich in einigen Datenverarbeitungssystemen verwirklicht sein. Die kompatiblen Typen sind flexibel genug, um einen weiten Anwendungsbereich zu ergeben. Dies ergibt sich, da der ( logische Befehl bis zu seiner Ausführung nicht festliegt und bei der Ausführung dieser Befehl die Datenfeld-Descriptoren mit einschließt, welche den verschiedenen Codierungen Rechnung tragen.
Wenn durch die SteuerSpeichereinheit 310 festgestellt worden ist, daß die Datentypen kompatibel sind und daß eine Transformation durch-
50 9 8 25/0768
geführt werden kann, so wird der Schritt 432 gemäß dem Fluß-Diagramm ausgeführt. Im Schritt 432 wird ein rein logischer Befehl gebildet zu allgemeinen Zwecken, wobei der Zweck beispielsweise einer Addition, einer Subtraktion, einer Multiplikation, einer Division, einer Verschiebung, einem Vergleich und/oder einer Kontrolle dienen kann. Dieser logische Befehl wird hinsichtlich der gesamten durch den Befehl identifizierten Information durchgeführt, wobei jedes Feld einen Descriptor besitzt und wobei-abhängig von. der Art des Befehles-ein bis drei Felder vorhanden sein können. Wenn der Befehl ausgeführt wird, tragen die Datenfeld-Descriptoren automatisch den Veränderungen in den Datenfeldern Rechnung. Früher musste diese Funktion- durch eine spezielle Subroutine ausgeführt werden, wobei die Subroutine für jeden individuellen Datentyp programmiert sein musste.
Während der Ausführung des Befehles im Schritt 432 wird der nächste Befehl von der Befehl-Abrufeinheit 308 hereingeholt. Damit" wird die Operation hinsichtlich des spezifischen Operanden der Datenbank beendet.
Das Merkmal der automatischen Berücksichtigung,welches von dem logischen Befehl benutzt wird,umfasst eine übersetzung der Datenfelder in kompatible Formate. Dies ist leicht zu verwirklichen durch programmierbare Festwertspeicher (PROMS). Zusätzlich sind diese programmierbaren Festwertspeicher in der Lage die erhaltenen Resultate in die ursprüngliche Darstellung zurückzuführen.
Zum besseren Verständnis wurde die Benutzung des oben genannten Befehles im Hinblick auf eine= Datenbank und ein Anwendungsprogramm beschrieben. Es existieren jedoch mindestens fünf Anwendungsfälle, in t welchen gegenwärtig von dem Datenfeld-Descriptor Gebrauch gemacht werden kann. Das Ursprungsfeld und/oder Bestimmungsfeld kann eine Datenbank einer Nachrichteneinrichtung, eine Datenbank eines Benutzers oder der interne Speicher des Datenprozessors selbst sein. Somit ergeben sich die fünf Anwendungsfälle wie folgt:
509825/0788
1. von einer Nachrichteneinrichtung zu dem Datenprozessor,
2. von einer Datenbank zu dem Datenprozessor, .
3. von dem Datenprozessor zu dem Datenprozessor,
4. von dem Datenprozessor zu der Nachrichteneinrichtung und
5. von dem Datenprozessor zu der Datenbank.
Obgleich ein Datenfeld-Descriptor die Information endgültig bestimmt, auf die der Befehl einwirken soll, weist der tatsächliche Befehl zudem eine große Vielseitigkeit auf. Der Befehl wirkt z.B. verschieden auf die gleichen Datenfelder ein, wenn auf verschiedene Datenfeld-Descriptoren zurückgegriffen wird. Im wesentlichen wird dies durch Veränderung der Adressilbe und des Offsets in dem Befehl selbst bewerkstelligt, wodurch auf verschiedene Daten-Descriptoren Bezug genommen werden kann, welche durch ihre. Verschiebung wiederum auf verschiedene Datenfelder hinweisen. Zusätzlich kann ' der Befehl auf verschiedene Datenfelder mit den gleichen Datenfeld-Descriptoren einwirken. Dies kann verwirklicht werden durch andere nicht dargestellte Befehle,, welche bestimmen, daß mehr Datensätze zu verarbeiten sind. Der Bezug auf die neuen Operanden kann hergestellt werden durch Veränderung der Verschiebung in dem Basisregister. Die nächste absolute Adressentwicklung ergibt sodann die neuen Daten, da sie eine unterschiedliche Adresse erzeugt. Als Ergebnis wirkt der gleiche Befehl auf ein unterschiedliches Datenfeld ein. Diese Flexibilität des Befehls, welche die Benutzung verschiedener Formen erlaubt, ist ein Hauptmerkmal der Erfindung, da dieselbe durch den Befehl vorgegebene Funktion hinsichtlich einer großen Vielzahl verschieden codierter Datenfelder benutzt werden kann, wodurch die früher beschriebenen Beschränkungen vermieden werden. Weiterhin kann durch die nicht-ausschließliche Benutzung der Datenfeld-Descriptoren der gleiche Befehl fortlaufend benutzt werden, wobei die Datenfeld-Descriptoren entsprechend der jeweils vorliegenden Anforderung einer Änderung unterzogen werden und die Datenbankstruktur in die.kage versetzt wird, sich weiterzuentwickeln. Dies ergibt sich aus der Tatsache, daß der Datenfeld-Descriptor f welcher das Datenfeld adressiert und auf dieses einwirkt ,Teil des
509825/0768
Steuermechanismus des Datenprozessors ist und zu jedem Zeitpunkt herausgelesen werden kann,um die neue Form der Datenfelder zu beschreiben. ■ .
Der Befehl kann weiterhin in einer hybriden Situation verwendet werden, wobei lediglich, ein Teil des'logischen Befehles den Datenfeld-Descriptor benutzt. Wie dies früher erläutert wurde, ist im Stand · der Technik bei der Aufstellung des Befehles eine Information betreffend die Merkmale der Datenfelder erforderlich. Mit dieser Information wurde der Befehl, welcher die beabsichtigte Operation ausführen sollte,versehen. Auf diese Weise waren mit der Schaffung des' Befehles die Merkmale des Datenfeldes vorgegeben. Ein logischer Befehl, welcher von einem Datenfeld-Descriptor Gebrauch macht, kann zusammen mit einem Befehl der eben erwähnten Art vorgesehen werden. Zum Beispiel kann das Ursprungs-Datenfeld und seine Merkmale in dem Befehl vorgegeben sein, während das Bestimmungsfeld durch den logischen Teil des den Datenfeld-Descriptor enthaltenden Befehls vorgegeben ist. In gleicher Weise kann das Quellenfeld durch den logischen Teil des Befehles beschrieben werden und das Bestimmungsfeld kann hinsichtlich seiner Merkmale durch den Befehl beschrieben werden. Der dritte Fall ist gegeben, wenn sowohl das Quellen- als auch das Bestimmungsfeld durch einen logischen Befehl beschrieben werden, wobei dieser Befehl die Datenfeld-Descriptoren umfasst. Auf diese Weise wird die Notwendigkeit vermieden Befehle zu schaffen, welche auf der Form der Daten .basieren. In diesem Fall bleibt selbst bei einer Veränderung der Form der Datenfelder der logische Befehl und somit das Anwendungsprogramm unverändert, da der Befehl unabhängig von dem Datentyp oder der gegebenen Codierung ausgeführt wird. Dieser Umstand ergibt sich, da der Datenfeld-Descriptor beim Vorliegen neuer Daten geändert wird, und der Befehl bis zum Zeitpunkt seiner Ausführung auf den Datenfeld-Descriptor nicht einwirkt. Somit wird die Natur der Daten selbst in· jedem Fall erst bei der Ausführung des Befehls offenbart,' wobei zwischenzeitlich die Möglichkeit besteht, Änderungen der Datenfelder vorzunehmen,ohne daß das Programm diese Änderungen in der Datenbank berücksichtigen muß. Dieses Verfahren ist sehr wirtachaftlich,da das Programm weder neu geschrieben noch neu getestet
50 9825/0768
werden muß. In der zuvor erwähnten hybriden Situation ist dieser Vorteil nur beschränkt gegeben, da die oben genannten Änderungen hinsichtlich des Teiles des Befehles durchgeführt werden müssen, der nicht mit dem Datenfeld-Descriptor versehen ist.
Durch die vorliegende Erfindung wird die Vielseitigkeit des Befehls vergrößert, indem die Möglichkeit gegeben ist, nacheinander hinsichtlich verschiedener Datenfelder die beabsichtigte Operation durchzuführen. Wenn beispielsweise die Anforderung vorliegt, zehn Datenfelder zu verschieben, so kann der gleiche Verschiebebefehl hinsichtlich jedes Datenfeldes angewandt werden. Durch nicht dargestellte Mittel wird hierbei der Offset der Adressilbe verändert. Der logische Verschiebebefehl trägt jedoch den verschiedenen Codierungsschemen Rechnung, wenn während seiner Ausführung über die Datenfeld-Descriptoren der Zugriff erfolgt. Die Fähigkeit, die Codierschemen während der Ausführung des Befehls zu verändern, ist ein wesentliches Merkmal der vorliegenden Erfindung. Die im Stand der Technik bestens bekannte Schleife zur Verschiebung von Datenfeldern ist auch hier hinsichtlich der Verschiebung aufeinander folgender Datenfelder anwendbar, wobei jedoch anstatt verschiedener, jedem Datenfeld zugeordneter Verschiebebefehle lediglich ein Verschiebebefehl erforderlich ist.
50 9 8 25/0768

Claims (36)

  1. Patentansprüche
    (ly Verfahren zur Verarbeitung von eine Vielzahl verschiedene Datenformate aufweisenden Datenfelder auf einer Datenverarbeitungsan·- lage, dadurch gekennzeichnet, daß in einem Datenprozessor einer Vielzahl von. Datenfeldern zur Beschreibung der Datenfelder Datenfeld-Descriptoren zugeordnet werden, wobei die Anzahl der Datenfeld-Descriptoren kleiner als die Anzahl der Datenfelder ist, daß wenigstens einer der Datenfeld-Descriptoren durch einen Befehl adressiert wird, daß eines der Datenfelder durch jeden der adressierten Datenfeld-Descriptoren adressiert wird, daß jeder der Datenfeld-Descriptoren geprüft wird, um festzulegen, ob das zugeordnete Datenfeld durch den Daten-Prozessor bearbeitet werden soll und daß der Befehl hinsichtlich der Datenfelder in Übereinstimmung mit den zugeordneten Datenfeld-Descriptoren ausgeführt wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein anderes Datenfeld durch den gleichen Datenfeld-Descriptor adressiert wird, daß das andere Datenfeld gegenüber dem bereits adressierten Datenfeld einen anderen Inhalt aufweist und daß der Befehl keine Änderung erfährt.
  3. 3. Verfahren nach Anspruch 2,dadurch gekennzeichnet , daß der zuletzt erwähnte Adressierschritt fortfolgend mehrmals bei gleichbleibendem Befehl wiederholt wird.
  4. 4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß durch den genannten Befehls-Adressierschritt ein unterschiedlicher Datenfeld-Descriptor adressiert wird und der zweite Adressierschritt ein unterschiedliches, dem unterschiedlichen Datenfeld-Descriptor zugeordnetes Datenfeld adressiert,. wobei der Befehl hinsichtlich des unterschiedlichen Datenfeldes in Übereinstimmung mit dem unterschiedlichen Datenfeld-Descriptor ausgeführt wird. 5 09825/0 768
  5. 5. Verfahren nach Anspruch 2, dadurch gekennzeichnet , daß ein jeder Datenfeld-Descriptor die Merkmale des Daipentypes, der Länge und des Kennschlüsselfeldes der zugeordneten Datenfelder beschreibt.
  6. 6. Verfahren nach Anspruch 5,'dadurch gekennzeichnet, daß jedes der Merkmale der genannten Datenfeld-Descriptoren eine Vielzahl untei-schiedlicher Merkmalsarten umfasst und daß der Befehl die Datenfelder unter Berücksichtigung der Vielzahl dieser Merkmalsarten verarbeitet.
  7. 7. Verfahren nach Anspruch 1, dadurch gekennzeichne t , ■ daß der Prüfschritt folgende Maßnahmen beinhaltet: Isolation des Datentyps des Datenfeld-Descriptors, wobei der Datentyp das Format des zugeordneten Datenfeldes beschreibt, Überprüfung des Datentyps auf seine Legalität und Bearbeitung des den überprüften Datentyp aufweisenden Datenfeldes im Falle seiner Legalität durch den genannten Befehl.
  8. 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet ,' daß der Prüfschritt folgende weitere Maßnahmen beinhaltet:
    Überprüfung eines Anordnungs-Descriptors des Datenfeldes daraufhin, ob ein zusätzliches Wort des Datenfeld-Descriptors zu adressieren ist, wobei das zusätzliche Wort weitere Merkmale des zugeordneten Datenfeldes beschreibt.
  9. 9..Verfahren nach Anspruch 1, dadurch gekennzeichnet , daß der Befehl zwei sich im Datenprozessor, befindende Datenfeld-Descriptoren adressiert.
  10. 10. Verfahren nach Anspruch 1, dadurch gekennzeichnet ,. daß der Befehl zwei Datenfeld-Descriptoren adressiert, von denen sich einer in einer Datenbank, einer Nachrichteneinrichtung oder dem Datenprozessor und der andere im Datenprozessor befindet.
    50 98 25/0768
  11. 11. Verfahren nach Anspruch 10, dadurch gekennzeichnet , daß der Prüfschritt folgende Maßnahmen beinhaltet: Isolation des Kennschlüsselfeldes des einen Datenfeld-Descriptors, wobei das Kennschlüsselfeld Dimensionsmerlanale des zugeordneten Datenfeldes beschreibt,
    Isolation des Kennschlüsselfeldes des anderen Datenfeld-Descriptors, wobei das Kennschlüsselfeld Dimensionsmerkmale des zugeordneten Datenfeldes beschreibt,
    Subtraktion des Wertes der Kennschlüsselfelder beider Datenfeld-Descriptoren voneinander und
    Feststellung, ob das Subtraktionsergebnis Null ist.
  12. 12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß der Prüfschritt folgende weitere Maßnahmen beinhaltet:
    Isolation des Datentypes des einen Datenfeld-Descriptors, wobei der Datentyp das Format des zugeordneten Datenfeldes beschreibt, Überprüfung des Datentyps auf seine Legalität und Bearbeitung des den überprüften Datentyp aufweisenden Datenfeldes im Falle seiner Legalität durch den genannten Befehl.
  13. 13. Verfahren nach Anspruch 12,dadurch gekennzeic h η e t , daß der Prüfschritt folgende weitere Maßnahmen beinhaltet:
    Isolation des Datentypes des zweiten Datenfeld-Descriptors, überprüfung des Datentyps' auf seine Legalität und Vergleichen der Datentypen beider Datenfeld-Descriptoren zur Ermittlung ihrer Kompatibilität.
  14. 14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der Prüfschritt folgende weitere Maßnahmen beinhaltet:
    Isolation eines Veränderbarkeits-Indikators des zweiten Datenfeld-Descriptors,
    509825/0768
    Feststellung des Binärwertes des Veränderbarkeits-Indikators und Ableitung einer Aussage aus diesem Binärwert, ob der erste Datenfeld-Descriptor in das dem zweiten Datenfeld-Descriptor zugeordnete Datenfeld eingeschrieben werden kann.
  15. 15. Verfahren nach Anspruch 1/ dadurch gekennzeichnet , daß die Adressierung durch den Datenfeld-Descriptor folgende Schritte umfasst:
    Prüfung des Hinweis-Feldes des Datenfeld-Descriptors auf ein vorgegebenes Format und
    Entwicklung des einen Datenfeldes aus einem ersten Wort des Datenfeld-Descriptors, wobei der Datenfeld-Descriptor mindestens ein zweites Wort umfasst, welches die Merkmale des einen Datenfeldes beschreibt.
  16. 16. Datenverarbeitungsanlage zur Durchführung des Verfahrens nach Anspruch 1, gekennzeichnet durch eine Speichervorrichtung zur Speicherung der Datenfelder und zugeordneter Datenfeld-Descriptoren, wobei die Datenfeld-Descriptoren eine Vielzahl von die Eigenschaften der Datenfelder beschreibenden Feldern aufweisen,
    eine Befehlsvorrichtung zur Adressierung der Datenfelder und der Datenfeld-Descriptoren,
    eine von der Befehlsvorrichtung betätigte Prüfvorrichtung zum . Prüfen der Felder der Datenfeld-Descriptoren und zum Identifizieren der Eigenschaften der Datenfelder und eine auf die Prüfvorrichtung ansprechende Befehl-Ausführvorrichtung, welche den vorgegebenen Befehl hinsichtlich der Datenfelder in Übereinstimmung mit den durch die Datenfeld-Descriptoren vorgegebenen Eigenschaften ausführt.
  17. 17. Anlage nach Anspruch 16, gekennzeichnet durch eine Einrichtung zur Änderung der durch die Eefehlsvorrichtung
    509825/0768
    adressierten Datenfelder und Datenfeld-Descriptoren, wobei die Befehl-Ausführvorrichtung in Abhängigkeit von der Änderungseinrichtung die Ausführung der durch den Befehl vorgegebenen Operation hinsichtlich der geänderten Datenfelder und Datenfeld-Descriptoren veranlasst.
  18. 18. Anlage nach Anspruch 16, d. adurch gekennzeichnet , daß eines der durch den Datenfeld-Descriptor beschriebenen Merkmale das Datenformat des Datenfeldes ist, daß das Datenformat Codierungen für eine Vielzahl von Codierungsarten aufweist und die Codierungen als alphanummerische Zeichenfolge, ungepackte Dezimalzahl, gepackte Dezimalzahl, Daten-Zeichenfolge, 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 als lange logische Binärdaten vorliegen können.
  19. 19. Anlage nach Anspruch 16, dadurch' gekennzeichnet , daß ein anderes der genannten Merkmale einen Kenrischlüssel beschreibt, wobei der Kennschlüssel eine Vielzahl die
    . Dimensionen des Datenfeldes beschreibende Codierungen aufweist.
  20. 20. Anlage nach Anspruch 16, dadurch gekennzeichnet, daß ein weiteres durch den Datenfeld-Descriptor beschriebenes Merkmal die Länge des Datenfeldes beschreibt.
  21. 21. Anlage nach Anspruch 16, dadurch gekennzeic h η e t , daß die Anzahl der Datenfeld-Descriptoren kleiner als die Anzahl der Datenfelder ist.
  22. 22. Anlage nach Anspruch 1, dadurch gekennzeichnet, daß eine Einrichtung zum Ändern der Merkmale der Datenfeld-Descriptoren vorhanden ist und daß die Befehl-Ausführvorrichtung, die durch den Befehl vorgegebene Operation hinsichtlich des Datenfeldes in Übereinstimmung mit dem geänderten Datenfeld-Descriptor ausführt.
    509825/0768
  23. 23. Anlage zur Durchführung des Verfahrens nach Anspruch le g e kennzeichnet durch
    eine Einrichtung zur Ausführung einer Operation mit·wenigstens einem der genannten Datenfelder mittels eines Befehles, eine erste Speichereinrichtung zur Abspeicherung wenigstens eines.Datenfeld-Descriptors in Abhängigkeit von wenigstens einem ersten Teil dieses Befehls, wobei dieser erste Befehlsteil dem einen Datenfeld-Descriptor zugeordnet ist, eine zweite Speichereinrichtung zur Abspeicherung eines der genannten Datenfelder in Abhängigkeit eines ersten Wortes des genannten Datenfeld-Descriptors, wobei wenigstens ein zweites-Wort in dem genannten Datenfeld-Descriptor· die Merkmale des genannten einen Datenfeldes beschreibt und
    eine übertragungseinrichtung zur übertragung des einen Datenfeldes während der Befehls-Ausführungszeit in Übereinstimmung mit dem durch den genannten Datenfeld-Descriptor beschriebenen Merkmalen in Abhängigkeit von einem zweiten Teil des Befehls.
  24. 24. Anlage nach Anspruch 23, dadurch gekennzeichnet , daß das erste Wort ein erstes Basisregister bezeichnet, daß die zweite Speichereinrichtung das genannte Datenfeld abspeichert, indem der Inhalt des ersten Basisregisters mit dem Inhalt des ersten Wortes verkettet wird, daß die Anlage eine erste Veränderungseinrichtung zur Veränderung des Inhalts des ersten Basisregistersaufweist, wordurch die zweite Speicher^· einrichtung ein unterschiedliches Datenfeld eingespeichert erhält und daß zur Befehls-Ausführungszeit die zugeordnete Einrichtung das unterschiedliche Datenfeld in Übereinstimmung mit den durch den Datenfeld-Descriptor beschriebenen Merkmalen überträgt.
  25. 25. Anlage nach Anspruch 23, dadurch gekennzeichnet, daß der erste Teil des Befehls ein zweites Basisregister bezeichnet, daß die erste Speichereinrichtung den genannten Datenfeld-Descriptor abspeichert, indem der Inhalt des zweiten Basisregisters mit dem Inhalt des ersten Teils des Befehls verkettet wird und daß die Anlage eine zweite. Veränderungs-
    50 9 8 25/0768 ■
    einrichtung zur Veränderung des Inhalts, des zweiten Basisregisters aufweist, wodurch die erste Speichereinrichtung einen unterschiedlichen Datenfeld-Descriptor eingespeichert erhält und daß zur Befehls-Ausführungszeit die zugeordnete Einrichtung das durch den unterschiedlichen Datenfeld-Descriptor beschrie- . bene Datenfeld in Übereinstimmung mit den Merkmalen des unterschiedlichen Datenfeld-Descriptors überträgt.
  26. 26. Anlage nach Anspruch 25, dadurch gekennzeichnet , daß der unterschiedliche Datenfeld-Descriptor verschiedene Arten der gleichen Merkmale des Datenfeld-Descriptors beschreibt.
  27. 27. Anlage nach Anspruch 26, dadurch gekennzeichnet , daß das durch den unterschiedlichen Datenfeld-Descriptor bezeichnete Datenfeld ein gegenüber dem durch den unveränderten Datenfeld-Descriptor bezeichneten Datenfeld unterschiedliches Datenformat aufweist.
  28. 28. Anlage zur Durchführung des Verfahrens nach Anspruch 1 mit interner Programmierung, wobei die Programmfolge auf Grund von aus einem Hauptspeicher ausgelesenen Befehlen bestimmt ist, gekennzeichnet durch eine Steuer-Speicher-Vorrichtung, welche auf Grund erhaltener " Befehle logische Steuersignale erzeugt, wodurch Mikro-Operationen in den Logikschaltkreisen der Datenverarbeitungsanlage ausgelöst werden,
    die Einspeicherung von Datenfeldern und von ihre Merkmale beschreibenden Datenfeld-Oescriptoren in den Hauptspeicher, eine Bestimmungseinrichtung zur Bestimmung der genannten Datenfelder mittels der genannten Datenfeld-Descriptoren auf Grund einer Art der genannten Befehle, und
    eine Einrichtung zur Ausführung der einen Befehlsart in Abhängigkeit von der Steuer-Speicher-Vorrichtung.
    509825/0768
    2A58300
  29. 29. Anlage nach Anspruch 28, dadurch gekennzeichnet , daß die Steuer-Speicher-Vorrichtung in Abhängigkeit von der einen Befehlsart den Datenfeld-Descriptor prüft und daß die Befehl-Ausführeinrichtung in Abhängigkeit von dieser Prüfung tätig wird.
  30. 30. Anlage mich Anspruch 29, dadurch gekennzeichnet, daß die eine Befehlsart die Bestimmung mindestens zweier Datenfeld-Descriptoren umfasst und daß die Steuer-Speicher-Vorrichtung die Kompatibilität zwischen den genannten beiden Datenfeld-Descriptoren überprüft.
  31. 31. Anlage nach Anspruch. 29, dadurch gekennzeichnet, daß die eine Befehlsart fortlaufend herangezogen wird, um unterschiedliche Datenfelder mit dem gleichen Datenfeld-Descriptor zu übertragen.
  32. 32. Anlage nach Anspruch 29, dadurch gekennzeichnet, daß die eine Befehlsart fortlaufend herangezogen wird, um unterschiedliche Datenfelder mit unterschiedlichen Datenfeld-. Descriptoren zu übertragen.
  33. 33. Anlage nach Anspruch 32, dadurch gekennzeichnet, daß der unterschiedliche Datenfeld-Descriptor verschiedene Arten der gleichen Merkmale des Datenfeld-Descriptor beschreibt.
  34. 34. Anlage nach Anspruch 33, dadurch gekennzeichnet, daß das unterschiedliche Datenfeld ein unterschiedliches Daten-Format aufweist.
  35. 35. Anlage nach Anspruch 34, dadurch gekennzeichnet, daß die Merkmale des JDatenfeld-Descriptors durch eine Vielzahl von Arten des Datenformat-, des Längen- und Kennschlüsself eld-Descriptors beschrieben wird.
    509825/0768
  36. 36. Anlage nach Anspruch 28, dadurch gekennzeichnet , daß sich das Datenfeld in einer Nachrichtenein-richtung, einer Datenbank oder in der Datei des Datenprozessors befindet.
    5098 25/0768
    Leerseite
DE19742458300 1973-12-13 1974-12-10 Datenverarbeitungssystem zur verarbeitung verschiedener datenformate Withdrawn DE2458300A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/424,259 US4068300A (en) 1973-12-13 1973-12-13 Data processing system utilizing data field descriptors for processing data files

Publications (1)

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

Family

ID=23682026

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742458300 Withdrawn DE2458300A1 (de) 1973-12-13 1974-12-10 Datenverarbeitungssystem zur verarbeitung verschiedener datenformate

Country Status (7)

Country Link
US (1) US4068300A (de)
JP (1) JPS5916301B2 (de)
CA (1) CA1026006A (de)
DE (1) DE2458300A1 (de)
FR (2) FR2254824B1 (de)
GB (1) GB1494505A (de)
IT (1) IT1024407B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2847934A1 (de) * 1977-11-07 1979-05-10 Ncr Co Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2849448A1 (de) * 1977-11-22 1979-06-07 Honeywell Inf Systems Puffereinheit fuer ein datenverarbeitungssystem

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4120030A (en) * 1977-03-11 1978-10-10 Kearney & Trecker Corporation Computer software security system
JPS5464933A (en) * 1977-11-01 1979-05-25 Panafacom Ltd Main storage extension system
DE2961221D1 (en) * 1978-06-24 1982-01-14 Frankl & Kirchner A jump-method in a memory-controlled sequential control device for machines, especially for industrial sewing machines, and sequential control circuits therefor
CA1145054A (en) * 1979-01-02 1983-04-19 Honeywell Information Systems Inc. Data processing system with means to align operands
US4418275A (en) * 1979-12-07 1983-11-29 Ncr Corporation Data hashing method and apparatus
JPS6019809B2 (ja) * 1979-12-26 1985-05-18 株式会社日立製作所 デ−タ処理装置
US4506325A (en) * 1980-03-24 1985-03-19 Sperry Corporation Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US4443847A (en) * 1981-02-05 1984-04-17 International Business Machines Corporation Page addressing mechanism
US4459678A (en) * 1981-05-18 1984-07-10 International Business Machines Corporation Method and apparatus for processing a file of record information
US4519030A (en) * 1981-05-22 1985-05-21 Data General Corporation Unique memory for use in a digital data system
US4532586A (en) * 1981-05-22 1985-07-30 Data General Corporation Digital data processing system with tripartite description-based addressing multi-level microcode control, and multi-level stacks
US4450522A (en) * 1981-09-11 1984-05-22 Data General Corporation Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return
US4503492A (en) * 1981-09-11 1985-03-05 Data General Corp. Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure
DE3381759D1 (de) * 1982-06-21 1990-08-30 Ibm Verfahren und geraet zur datenbasisfuehrung.
CA1200015A (en) * 1982-11-15 1986-01-28 Western Electric Company, Incorporated Dynamic data base representation
DE3248189A1 (de) * 1982-12-27 1984-06-28 Siemens AG, 1000 Berlin und 8000 München Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken
US4996662A (en) * 1983-10-03 1991-02-26 Wang Laboratories, Inc. Method for generating document using tables storing pointers and indexes
US4959769A (en) * 1983-10-03 1990-09-25 Wang Laboratories, Inc. Structures and methods for representing and processing documents
JPS60218142A (ja) * 1984-04-13 1985-10-31 Hitachi Ltd デ−タの動的型変換方式
JPS60170852U (ja) * 1984-04-23 1985-11-12 株式会社明電舎 デ−タ処理装置
JPS6120129A (ja) * 1984-07-06 1986-01-28 Hitachi Ltd 複数コ−ド系情報処理方式
US4713754A (en) * 1984-10-09 1987-12-15 Wang Laboratories, Inc. Data structure for a document processing system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4742350A (en) * 1986-02-14 1988-05-03 International Business Machines Corporation Software managed video synchronization generation
US5027316A (en) * 1986-09-11 1991-06-25 International Business Machines Corporation Versioning of message formats in a 24-hour operating environment
US5101494A (en) * 1986-09-26 1992-03-31 Bull Hn Information Systems Inc. System for producing memory maps by interpreting a descriptor file which identifies and describes the data structures present in memory
US4878175A (en) * 1987-11-03 1989-10-31 Emtek Health Care Systems Method for generating patient-specific flowsheets by adding/deleting parameters
US5197141A (en) * 1988-01-30 1993-03-23 Nec Corporation Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions
US5081608A (en) * 1988-04-18 1992-01-14 Matsushita Electric Industrial Co., Ltd. Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US5047959A (en) * 1988-09-13 1991-09-10 Square D Company Flexible data display
US5604899A (en) 1990-05-21 1997-02-18 Financial Systems Technology Pty. Ltd. Data relationships processor with unlimited expansion capability
US5313636A (en) * 1990-09-27 1994-05-17 Intellicorp, Inc. Mosaic objects and method for optimizing object representation performance in an object-oriented representation system
US5475833A (en) * 1991-09-04 1995-12-12 International Business Machines Corporation Database system for facilitating comparison of related information stored in a distributed resource
DE69518996T2 (de) * 1994-04-26 2001-03-29 Sun Microsystems, Inc. Verfahren und Vorrichtung zur selbstbeschreibenden Datenkodierung
US5630118A (en) * 1994-11-21 1997-05-13 2000, Inc. System and method for modifying and operating a computer system to perform date operations on date fields spanning centuries
US5819276A (en) * 1995-10-06 1998-10-06 International Business Machines Corporation Method for supporting multiple file-systems in file input/output operations
US5784544A (en) * 1996-08-30 1998-07-21 International Business Machines Corporation Method and system for determining the data type of a stream of data
MXPA02000660A (es) * 1999-07-20 2003-07-21 Primentia Inc Metodo y sistema para organizar datos.
US6424969B1 (en) * 1999-07-20 2002-07-23 Inmentia, Inc. System and method for organizing data
US6532476B1 (en) * 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6944619B2 (en) 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
US20040158561A1 (en) * 2003-02-04 2004-08-12 Gruenwald Bjorn J. System and method for translating languages using an intermediate content space
ATE537663T1 (de) * 2004-08-31 2011-12-15 Panasonic Corp Informationsaufzeichnungsmedium, multiplexer und dekodierer
US7689632B2 (en) * 2005-12-01 2010-03-30 Honeywell International Inc. Adaptive data dictionary language, extendable for a security system
US8682932B2 (en) 2012-02-16 2014-03-25 Oracle International Corporation Mechanisms for searching enterprise data graphs
US8484208B1 (en) * 2012-02-16 2013-07-09 Oracle International Corporation Displaying results of keyword search over enterprise data
US8700673B2 (en) 2012-02-16 2014-04-15 Oracle International Corporation Mechanisms for metadata search in enterprise applications
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
EP3312724B1 (de) 2016-10-21 2019-10-30 Fujitsu Limited Auf mikrodiensten basierende datenverarbeitungsvorrichtung, -verfahren und -programm
EP3312722A1 (de) 2016-10-21 2018-04-25 Fujitsu Limited Datenverarbeitungsvorrichtung, -verfahren und -programm
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3422405A (en) * 1966-03-25 1969-01-14 Burroughs Corp Digital computer having an indirect field length operation
BE758811A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information ayant un emmagasinage sans structure pour traitements emboites
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US3691554A (en) * 1971-06-18 1972-09-12 Peter Marschall Code converters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2847934A1 (de) * 1977-11-07 1979-05-10 Ncr Co Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2849448A1 (de) * 1977-11-22 1979-06-07 Honeywell Inf Systems Puffereinheit fuer ein datenverarbeitungssystem

Also Published As

Publication number Publication date
JPS5093052A (de) 1975-07-24
FR2254824B1 (de) 1978-03-24
US4068300A (en) 1978-01-10
GB1494505A (en) 1977-12-07
AU7615174A (en) 1976-06-10
FR111574A (de) 1900-01-01
IT1024407B (it) 1978-06-20
FR2254824A1 (de) 1975-07-11
CA1026006A (en) 1978-02-07
JPS5916301B2 (ja) 1984-04-14

Similar Documents

Publication Publication Date Title
DE2458300A1 (de) Datenverarbeitungssystem zur verarbeitung verschiedener datenformate
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3855696T2 (de) Relationelles Datenbanksystem
DE3788877T2 (de) Einrichtung zur software-emulation.
DE3855475T2 (de) Software-Verwaltungsstruktur
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE69615231T2 (de) Relationales Datenbanksystem und Verfahren mit grosser Kompilierverfügbarkeit von SQL-Programmen
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE69232542T2 (de) Definitionsänderungssprache für ein Datenbankrechnersystem
DE68926775T2 (de) System und Verfahren für eine allgemeine Schnittstelle für Anwendungsprogramme
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE68921775T2 (de) Prozessorssimulation.
DE69932344T2 (de) Zugriff zu hierarchischem datenspeicher via sql-eingabe
DE69028269T2 (de) Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE3788782T2 (de) Verfahren zur Herstellung einer Meldungsdatei in einem Computer.
DE602004004101T2 (de) Bearbeitung von message-digest-befehlen
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE19959758A1 (de) Bestimmung der Art und der Genauigkeit von lokalen Variablen bei vorhandenen Subroutinen
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
EP1040414A1 (de) Verfahren zum umsetzen eines systemaufrufs
DE69804562T2 (de) Prozessarchitektur und Verfahren zur Durchführung von verschiedenen Adressierungsarten

Legal Events

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