DE2458300A1 - Datenverarbeitungssystem zur verarbeitung verschiedener datenformate - Google Patents
Datenverarbeitungssystem zur verarbeitung verschiedener datenformateInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database 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
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:
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)
- 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. 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. Verfahren nach Anspruch 2,dadurch gekennzeichnet , daß der zuletzt erwähnte Adressierschritt fortfolgend mehrmals bei gleichbleibendem Befehl wiederholt wird.
- 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. 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. 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. 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. 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..Verfahren nach Anspruch 1, dadurch gekennzeichnet , daß der Befehl zwei sich im Datenprozessor, befindende Datenfeld-Descriptoren adressiert.
- 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. 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. 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. 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. 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/0768Feststellung 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. 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 undEntwicklung 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. 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. Anlage nach Anspruch 16, gekennzeichnet durch eine Einrichtung zur Änderung der durch die Eefehlsvorrichtung509825/0768adressierten 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. 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. 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. Anlage nach Anspruch 16, dadurch gekennzeichnet, daß ein weiteres durch den Datenfeld-Descriptor beschriebenes Merkmal die Länge des Datenfeldes beschreibt.
- 21. Anlage nach Anspruch 16, dadurch gekennzeic h η e t , daß die Anzahl der Datenfeld-Descriptoren kleiner als die Anzahl der Datenfelder ist.
- 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. Anlage zur Durchführung des Verfahrens nach Anspruch le g e kennzeichnet durcheine 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 undeine ü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. 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. 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. Anlage nach Anspruch 25, dadurch gekennzeichnet , daß der unterschiedliche Datenfeld-Descriptor verschiedene Arten der gleichen Merkmale des Datenfeld-Descriptors beschreibt.
- 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. 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, undeine Einrichtung zur Ausführung der einen Befehlsart in Abhängigkeit von der Steuer-Speicher-Vorrichtung.509825/07682A58300
- 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. 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. Anlage nach Anspruch. 29, dadurch gekennzeichnet, daß die eine Befehlsart fortlaufend herangezogen wird, um unterschiedliche Datenfelder mit dem gleichen Datenfeld-Descriptor zu übertragen.
- 32. Anlage nach Anspruch 29, dadurch gekennzeichnet, daß die eine Befehlsart fortlaufend herangezogen wird, um unterschiedliche Datenfelder mit unterschiedlichen Datenfeld-. Descriptoren zu übertragen.
- 33. Anlage nach Anspruch 32, dadurch gekennzeichnet, daß der unterschiedliche Datenfeld-Descriptor verschiedene Arten der gleichen Merkmale des Datenfeld-Descriptor beschreibt.
- 34. Anlage nach Anspruch 33, dadurch gekennzeichnet, daß das unterschiedliche Datenfeld ein unterschiedliches Daten-Format aufweist.
- 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. 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/0768Leerseite
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)
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)
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)
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 |
-
0
- FR FR111574D patent/FR111574A/fr not_active Expired
-
1973
- 1973-12-13 US US05/424,259 patent/US4068300A/en not_active Expired - Lifetime
-
1974
- 1974-12-10 DE DE19742458300 patent/DE2458300A1/de not_active Withdrawn
- 1974-12-10 IT IT54479/74A patent/IT1024407B/it active
- 1974-12-12 GB GB53773/74A patent/GB1494505A/en not_active Expired
- 1974-12-12 FR FR7441020A patent/FR2254824B1/fr not_active Expired
- 1974-12-12 CA CA215,854A patent/CA1026006A/en not_active Expired
- 1974-12-13 JP JP49142626A patent/JPS5916301B2/ja not_active Expired
Cited By (2)
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 |