DE2458259A1 - Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen - Google Patents

Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen

Info

Publication number
DE2458259A1
DE2458259A1 DE19742458259 DE2458259A DE2458259A1 DE 2458259 A1 DE2458259 A1 DE 2458259A1 DE 19742458259 DE19742458259 DE 19742458259 DE 2458259 A DE2458259 A DE 2458259A DE 2458259 A1 DE2458259 A1 DE 2458259A1
Authority
DE
Germany
Prior art keywords
data
data field
register
field
fields
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19742458259
Other languages
English (en)
Inventor
Charles W Bachmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2458259A1 publication Critical patent/DE2458259A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

51-01272 Ge 6. Dezember 1974
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass., USA
Datenverarbeitungssystem zum Vergleichen verschiedener Datenstrukturen.
Die Erfindung betrifft ein Verfahren zum Vergleichen von eine Vielzahl verschiedener Datenstrukturen aufweisender Datenfelder sowie eine Anlage zur Durchführung des Verfahrens.
Auf Grund fortlaufend gemachter Fortschritte hinsichtlich der Mehrprogramm-Verarbeitung und der gemeinsamen Benutzung von Datenverarbeitungsanlagen müssen neue Programme laufend geschrieben werden, um den verschiedenen Anforderungen an bestehende Dateien zu genügen. In der Vergangenheit- mußte bei einer Änderung oder einer Restrukturierung einer Datei die gesamte Datei neu erstellt werden. Um dieses Problem zu vermeiden, wurde das Konzept der Datenunabhängigkeit benutzt. Bei der Beschreibung gesteuerter Dateien, d. h. bei Dateien, wo die Beschreibung des Inhalts und der Struktur der Daten separat vom Programm geschieht, erlaubt die Datenunabhängigkeit die Änderung einer Datenform, ohne daß die andere Form eine übereinstimmende Änderung erfahren muß.
Die Datenunabhängigkext, wie sie bisher im Stand der Technik verwirklicht wurde, erfordert zwei Formen der Datendarstellung, erstens
509825/0763
ORIGINAL INSPECTED
die Form des Datenfeldes, wie sie vom Programm her gesehen wird und zweitens die Form des Datenfeldes in einem sekundären Speicher. Diese Forderung beinhaltet jedoch ein vielfaches Entblocken und Blocken der Daten, was gegenüber Routinen, die sich mit den Dateien der Datenbank befassen, sehr viel aufwendiger ist. Es hat sich herausgestellt, daß ein beträchtlicher Betrag von Datenverarbei- s tungszeit benötigt wird; um erstens zu entscheiden, welche Art von Befehlen zum Entblocken und Blocken der Daten erforderlich ist und sodann die Auswahl des spezifischen Befehls zu treffen, um die Operation auszuführen. Zudem erfordert die zur Ausführung dieser Aufgabe erforderliche Vielzahl von Befehlen sehr viel Speicherplatz und Rechenzeit, wodurch eine optimale Ausnutzung der bestehenden Datenverarbeitungssysteme nicht gegeben ist.
Auf der Benutzerseite werden die Daten oftmals in einer Vielzahl von Formaten abgespeichert. Besteht sodann auf der Benutzerseite der Wunsch, bestimmte Teile der Datenfelder miteinander zu vergleichen, so sollte man glauben, daß ein einfacher Vergleichsbefehl ausreichend ist. Wenn die Datenverarbeitungsanlage das fragliche Datenfeld hereinnimmt, so wird im allgemeinen auf Grund einer Entscheidung des Datenadministrators das Datenfeld auf eine dem allgemeinen Format entsprechende Länge abgelängt. Dieser Fall tritt beispielsweise auf, wenn der Benutzer Inhaber einer Firma mit lediglich 100 Angestellten ist, aber das Datenverarbeitungssystem einer Vielzahl von Benutzern zur Verfügung steht, welche mit einer größeren Belegschaft arbeiten. Der erwähnte Benutzer benötigt daher lediglich 4 Bytes um seine Angestellten zu kennzeichnen, während das Datenverarbeitungssystem beispielsweise 6 Bytes für die Kennzeichnung der Angestellten aufweist. Soll nunmehr ein Vergleichsbefehl durchgeführt werden, so muß der Datenprocessor zuerst die Datenlänge des Benutzers bestimmen, wobei dies über eine Subroutine geschieht, welche den Speicher belegt und die spezifischen zur Ausführung des Vergleichs erforderlichen Befehle erzeugt. Es liegt
50 9 825/0763
somit auf der Hand, daß ein beträchtlicher Speicherplatz sowie eine beachtliche Rechenzeit zur Ausführung dieser einfachen Operation erforderlich ist.
Die gleiche Schwierigkeit hinsichtlich eines Vergleichsbefehls tritt auf, wenn durch den Datenprocessor und das Programm verschiedene Dimensionen vorgegeben sind. Liegt beispielsweise in dem Datenverarbeitungssystem die Information in Gramm vor und der Benutzer berücksichtigt in seinem Programm die Dimension Pond, so erfordert die Vergleichsoperation verschiedene Subroutinen zur Bestimmung des erforderlichen Umwandlungstyps und zur Auswahl des spezifischen Befehls zur Ausführung dieser Operation. Auch hier geht wiederum wertvolle Rechenzeit und Speicherplatz verloren.
Es ist die Aufgabe der vorliegenden Erfindung, die eingangs.genannten Systeme so zu verbessern, daß eine Bestimmung der durchzuführenden Operation sowie eine Auswahl der zur Durchführung der Operation erforderlichen Befehle nicht mehr erforderlich ist. Die Lösung dieser Aufgabe gelingt gemäß dem im Anspruch 1 gekennzeichneten Verfahren. Weitere vorteilhafte Ausgestaltungen des Verfahrens sowie eine Anlage zur Durchführung des Verfahrens sind in den Unteransprüchen beschrieben.
Anhand eines in den Figuren der beiliegenden Zeichnungen dargestellten Ausführungsbeispieles wird die Erfindung im folgenden näher'beschrieben. Es zeigen:
Figur 1 ein schematisehes Diagramm verschiedener Hardwarestrukturen, wie sie bei der vorliegenden Erfindung Verwendung finden, Figur 2 ein allgemeines Blockdiagramm des Datenverarbeitungssystems zur Ausführung der vorliegenden Erfindung, Figur 3 eine schematische Darstellung eines Flußdiagrammes zur Ausführung des Vergleichsbefehls und .--...-Figur 4 ein Bloekdiagramm der in dem Datenverarbeitungssystem gemäß Figur 2 benützten Schaltkreiskomponenten, welche der Ausführung des Vergleichsbefehls gemäß Figur 3 dienen.
509825/0763
Gemäß Figur 1 sind die Worte, welche die Ausführung des Vergleichsbefehls bewirken, dargestellt. Insbesondere zeigt Figur la die erste Hälfte eines Vergleichsbefehls 100, wie er bei der vorliegenden Erfindung Verwendung findet. Gemäß Figur la kennzeichnen die ersten acht Bits einen Operationscode OP, welcher eine besondere Bit-Konstellation aufweist, die bei ihrer Decodierung den Vergleichsbefehl bestimmt. Die nächsten 4 Bits, d. h. die Bits 8 bis 11 sind mit MBZ bezeichnet und müssen alle den Binärwert "0" aufweisen. Die Bits 12 bis 31 kennzeichnen eine erste Adressilbe ASl, welche eine logische Darstellung des Ursprungsfeld-Operanden im Speicher ist.
Im Hinblick auf den speziellen Typ der hier auszuführenden Operation ist das erste Bit der Adressilbe ASl, d. h. das Bit 12 auf den Binärwert "1" gesetzt. Dieses Bit wird benutzt, um ein indirektes Adressierverfahren anzugeben, welches zuerst zu einem in Figur Ic dargestellten Datenfeld-Descriptor Zugriff nimmt. Das hierbei angewandte Verfahren ist in der prioritätsgleichen deutschen Patentanmeldung P (US-Serial-Number 424 259) näher beschrieben. Nachfolgend bestimmt das Wort 102 des Datenfeld-Descriptors das gewünschte Datenfeld. Das Auffinden und die Entwicklung des Datenfeldes und der Datenfeld-Descriptoren für jede Adressilbe braucht hier nicht näher beschrieben zu werden, da dies Gegenstand der oben genannten Anmeldung ist.
Für den Vergleichsbefehl sind zwei Adressilben erforderlich, da die Merkmale des Ursprungsfeldes und des Bestimmungsfeldes bekannt sein müssen. Die erste Adressilbe ASl, d. h. die Bits 12 bis 31 kennzeichnen daher den logischen Operanden am Ursprung, wie er durch den Benutzer vorgesehen und in einen Speicherplatz gebracht ist und die zweite Adressilbe AS2, d. h. die Bits 44 bis 63 kennzeichnen den logischen Operanden am Bestimmungsort.
Jede Adressilbe ASl und AS2 weist hinsichtlich eines Vergleichsbefehls auf einen Datenfeld-Descriptor hin, wie er in Figur Ic mit den Worten 102, 104 und 106 dargestellt ist. Das Wort 102 kann in
509825/0763
den allgemeinen Registern GRl bzw. GR2 gespeichert sein, die in Figur Ib durch die Bits 32 bis 39 gegeben sind. Die Bits 32 bis
35 bestimmen ein erstes allgemeines Register GRl entsprechend der ersten Adressilbe,und die Bits 36 bis 39 kennzeichnen ein zweites allgemeines Register GR2, welches die durch die zweite Adressilbe entwickelte Information enthält. Die zweite Adressilbe AS2 ist in Form der Bits 44 bis 63 dargestellt, welche ebenfalls durch ein indirektes Adressierverfahren einen Zugriff zu den .Worten 102, 104 und 106 des Datenfeld-Descriptors gemäß Figur Ic gestatten.
Die Worte 104 und 106 stellen einen ausgedehnten Daten-Descriptor dar, welcher den Daten zugeordnete Merkmale enthält. Nach dem Zugriff zu dem Wort 102 zeigt ein Hinweisfeld Ol an, daß zusätzliche Daten aufgesucht werden müssen. Diese ,zusätzlichen Daten, d. h. wenigstens ein weiteres Wort 104 beschreiben die Merkmale des Operanden, wie er auf Grund der Entwicklung des Wortes 102 abgerufen wird.
Im Wort 104 kennzeichnen insbesondere die Bits 32 bis 34 eine Bit-Zeichenfolge, welche dem Benutzer die Möglichkeit bietet, die Information seiner Dateien in der Form von Bit-Zeichenfolgen dicht zu packen. Das Bit 35 muß den Binärwert "0" einnehmen. Die Bits
36 bis 38 kennzeichnen ein Feld, welches eine Feldkontrolle des Operanden definiert. Feldkontrolle bedeutet, daß mehr als ein Operand in dem Datenfeld angeordnet ist, auf welches durch die Adresssilbe hingewiesen wird. Weist das Bit 36 den Binärwert "1" auf, so wird auf das, ein Längen- und Größenfeld aufweisende Wort 106 zugegriffen, um den Ort und die Größe des speziellen Operanden in dem durch die Bits 36 bis 38 gekennzeichneten Feld zu bestimmen.
Das Bit 39 des Wortes 104 kennzeichnet einen Veränderbarkeits-Indikator. Liegt der Veränderbarkeits-Indikator vor, d. h. weist das Bit den Binärwert "1" auf, so kann der Operand des UrSprungsfeldes, wie er durch den Datenfeld-Descriptor beschrieben ist, in den durch das Bestimmungsfeld ausgewiesenen Operanden eingeschrieben werden.
509825/0763
Die Bits 40 bis 63 des Wortes 104 kennzeichnen Datenfeld-Descriptoren, welche auf Merkmale der Daten hinweisen. Insbesondere kennzeichnen die Bits 40 bis 47 den Datentyp. Unter Datentyp wird eine Beschreibung bestimmter Merkmale des von dem Benutzer verwendeten Informationsformates verstanden. Zum Beispiel kann durch einen Binärcode eines bestimmten Wertes eine alphanummerische Zeichenfolge, eine ungepackte Dezimalzahl, eine gepackte Dezimalzahl oder andere verschiedene Formate der Information angezeigt werden. Hinsichtlich des Vergleichsbefehls werden drei verschiedene Gruppe von Befehlen unterschieden. Die erste Gruppe umfasst das alphanummerische Zeichenfolge-Format, wobei der Vergleich Feld für Feld durchgeführt wird. Die zweite Gruppe umfasst ungepackte und gepackte Dezimalzahlen, welche in eine gepackte Dezimaldarstellung umgewandelt werden. Die dritte Gruppe umfasst zusätzliche Formate, welche einer Übersetzung bedürfen und hier nicht näher betrachtet werden.
Die Bits 48 bis 55 bestimmen das Kennschlüsselfeld des Operanden. Das Kennschlüsselfeld ist eine Beschreibung bestimmter Merkmale hinsichtlich eines besonderen Datentypes, d. h. eine Beschreibung der Informationsform, wie sie von dem Benutzer verwendet wird. Das Kennschlüsselfeld stellt somit eine zweite Überlagerung von Anforderungen an den Datentyp dar. Müssen beispielsweise aus einem Ursprungsfeld Daten mit der Dimension kp/cm2 in ein Bestimmungsfeld, welches die Daten in der Dimension kp enthält, verschoben werden, so zeigt das Kennschlüsselfeld an, daß eine solche Operation nicht gestattet ist. Somit muß auch für den Fall, daß die Datentypen kompatibel sind, eine Umwandlung vorgenommen werden, sofern die Kennschlüsselfelder ungleich sind.
Die Bits 56 bis 63 des Wortes 104 stellen eine 8 Bit-Längeribeschreibung des Operanden dar, auf welche durch die Adressilbe hingewiesen wird. Die Längenbeschreibung verweist auf die Anzahl der Bytes in dem Operanden. Die Operandenlänge muß den folgenden Bedingungen genügen: erstens muß sie bei einer Byte-Zeichenfolge kleiner als oder gleich 256 Bytes sein,und zweitens muß sie bei einer dezimalen Zeichenfolge kle'iner als 32 Ziffern sein. Wenn die Länge diese
509825/0763
Grenzen überschreitet, ergibt sich eine illegale Datenausnahme.
In Figur Ic ist das Wort 106 dargestellt, welches in den Bits 64 bis 79 einen Längenhinweis und in den Bits 80 bis 95 einen Größenhinweis besitzt. Jeder dieser Hinweise wird herangezogen, wenn der Feldgrenzenindex der Bits 36 bis 39 des Wortes 104 vorliegt. Eine detaillierte Erklärung dieser Felder ist in der zuvor erwähnten Patenivgegeben. Der durch das Wort 106 vorgegebene Mechanismus zum Bestimmen der Daten ist nicht Gegenstand dieser Erfindung und wird somit nicht näher erläutert.
Die Erläuterung der Wirkungsweise des in den Figuren la und Ib dargestellten Befehles 100 sowie des sich aus der Befehlsadresse ergebenden Datenfeld-Descriptors gemäß Figur Ic, kann unter Zugrundelegung des Blockdiagrammes gemäß Figur 2 besser verstanden werden, wobei Figur 2 die Hardware eines Datenverarbeitungssystemes zur Ausführung der Erfindung darstellt.
Gemäß Figur 2 besteht ein Hauptspeicher 201 aus 4 Modulen eines Metalloxydhalbleiterspeichers MOS. Die 4 Speichermodule 0 bis 3 sind mit der Zentraleinheit 200 über einen Hauptspeicher-Sortierer 202 verbunden. Die 4 Hauptspeichermodule 0 bis 3 sind weiterhin mit dem peripheren Subsystem,' so z. B. Magnetbandeinheiten und Plattenspeicherantriebseinheiten über den Hauptspeicher-Sortierer 202 und das Eingangs~/Ausgangs-Steuerwerk (IOC) 220 verbunden. Der Hauptspeicher-Sortierer 202 erlaubt den Zugriff und die Steuerung aller 4 Speichermodule. Da die Anforderung des Hauptspeicher-Sortierers 202 mit dem Speicherzyklus überlappen kann, können zu jedem gegebenen Zeitpunkt mehr als 1 Speichermodul 0 bis 3 zyklisch durchlaufen werden. Die Zentraleinheit 200, ein Pufferspeicher 204 und das Eingangs/Ausgangs-Steuerwerk 220 können bei jedem Speieherzugriff ein doppeltes Datenwort (8 Bytes) anfordern. Bei einem Zenraleinheits-Speicherzugriff werden jedoch entweder die 4 hochrangigen Bytes oder die 4 niedrigrangigen Bytes ausgewählt und es werden lediglich 4 Bytes der Information in die Zentraleinheit 200 hereingenommen.
509825/07 6 3
Die Operationen der Zentraleinheit 200 werden durch einen Festwertspeicher ECM gesteuert, der hier als Steuerspeichereinheit 210 bezeichnet ist. Jeder Speicherplatz der SteuerSpeichereinheit 210 kann zur Steuerung eines Zentraleinheits-Zyklus herangezogen werden. Beim Herauslesen eines jeden Speicherplatzes der Steuerspeichereinheit wird dessen Inhalt durch eine Mikrooperation-Decodierfunktion decodiert. Jede Mikrooperation— Decodierfunktion veranlasst die Ausführung einer spezifischen Operation innerhalb der Zentraleinheit. Werden beispielsweise die Datenbits 1, 2 und 3 der Steuerspeichereinheit als 010 decodiert, so lösen sie eine Mikrooperation— Decodierfunktion aus, welche die Übertragung eines Α-Registers nach einem B-Register zur Folge hat. Da jeder Speicherplatz der Steuerspeichereinheit 210 30 bis 50 Bits enthalten kann, können für jeden Zyklus der Steuerspeichereinheit eine Vielzahl von Mikrooperation— Decodier funktionen ausgelöst werden.
Durch die Gruppierung von Speicherplätzen werden Schrittfolgen der Steuerspeichereinheit erzeugt, welche eine spezifische Operation oder einen Befehl der Zentraleinheit darstellen. Da jeder Befehl durch die Zentraleinheit 200 ausgelöst wird, werden bestimmte Bits innerhalb des Operationscodes herangezogen, um die Startfolge der SteuerSpeichereinheit zu bestimmen. Die Prüfung bestimmter nicht dargestellter Flip Flops, welche durch die Decodierfunktion des Befehls gesetzt oder zurückgestellt sein können, erlaubt der Steuerspeichereinheit, erforderlichenfalls, eine Verzweigung zu einer spezifischeren Schrittfolge.
Ein Steuerspeicher-Schnittstellenadapter 209 ist an die Steuerspeichereinheit 210, eine Datenverwaltungseinheit 206, eine Adressensteuereinheit 207 und eine arithmetische Recheneinheit 212 angeschlossen, um die Operation des Steuerspeichers zu steuern. Der Steuerspeicher-Schnittstellenadapter 209 weist Logikschaltkreise für eine Steuerspeicher-Adressenmodifikation, für einen Test, für eine Fehlerprüfung und für eine Hardware-Adressenerzeugung auf. Die Hardware-Adressenerzeugung wird im allgemeinen herangezogen, um die Startadresse einer Fehlerfolge oder um eine Auslöse-Schrittfolge zu
bestimmen. 509825/0763
Der Pufferspeicher 204 wird benutzt, um die am häufigsten oder zuvor am meisten benutzte und von der Zentraleinheit 200 verarbeitete Information zu speichern. Der Pufferspeicher 204 ist ein relativ kleiner Speicher mit sehr hoher Arbeitsgeschwindigkeit, welcher 128 Spalten und 2 Zeilen aufweist. Die 2 Zeilen seien als obere und untere Zeile bezeichnet. Der Pufferspeicher 204 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 der Information. Eine bestimmte Seite kann durch die 16 signifikantesten Bits der Hauptspeicheradresse adressiert werden, wobei die 5 am wenigsten signifikanten Bits benutzt werden, um ein besonderes Byte der Information innerhalb der Seite zu adressieren. Die Seiten können von dem Hauptspeicher nach dem Pufferspeicher übertragen werden, wobei die Spaltenzuordnung aufrecht erhalten wird, d.h. eine Seite aus der Spalte 1 des Hauptspeichers wird immer in die Spalte 1 des Pufferspeichers übertragen. Die Entscheidung jedoch, ob die Information in der oberen oder unteren Zeile der Spalte abgelegt wird, hängt von der Verfügbarkeit ab. Aus diesem Grund sind für jede Spalte der Hauptspeicherseiten 2 Seiten im Pufferspeicher vorhanden. So kann beispielsweise die Spalte 37 des Hauptspeichers irgendeine der 2 Informationsseiten aus Spalte 37 des Pufferspeichers enthalten. Die 2 in der Pufferspeicher-Spalte enthaltenen Informationsseiten hängen zu jedem gegegebenen Zeitpunkt davon ab, welche Seiten zuvor am häufigsten von der Zentraleinheit verarbeitet wurden, d. h. es sind typischerweise die beiden zuvor am meisthäufigsten benutzten Seiten in dem Pufferspeicher 204 enthalten.
Ob eine gegebene Informationsseite in dem Pufferspeicher 204 enthalten ist, kann durch Prüfung des Inhalts der Pufferspeicheradressliste 205 festgestellt werden. Die Pufferspeicheradressliste 205 ist in der gleichen Weise wie der Pufferspeicher logisch unterteilt; jedoch enthält jede Spalte der Pufferspeicheradressliste 205 anstelle der Informationsseiten, die Hauptspeicher-Zeilenadresse der
509Ö25/0763
dem Pufferspeicher 204 zugeordneten Information. Wenn beispielsweise die Spalte 0 des Pufferspeichers 204 die Seite 20 in der unteren Zeile enthält und die Seite 0 in der oberen Zeile, so weist die Pufferspeicheradressliste 205 entsprechend den Inhalt 10100 und 00000 in der unteren und oberen Zeile auf. Somit kann die Zentraleinheit durch Zugriff der Pufferspeicheradressliste mit der Spaltennummer und durch Vergleich der geforderten Zeilennummer mit der in dem Speicherplatz der Pufferadressliste enthaltenen Zeilennummer feststellen, ob eine gegebene Seite in dem Pufferspeicher enthalten ist.
Die Datenverwaltungseinheit 206 stellt die Datenschnittstelle zwischen der Zentraleinheit 200 und dem Hauptspeicher 201 und/oder dem Pufferspeicher 204 dar. Während einer Speicher-Leseoperation kann die Information entweder dem Hauptspeicher oder dem Pufferspeicher entnommen werden. Es ist die Aufgabe der Datenverwaltungseinheit 206, die Information in die Register der Zentraleinheit im geeigneten Zeitpunkt zu verteilen. Die Datenverwaltungseinheit übernimmt weiterhin die Ausblendung während partieller Schreiboperationen.
Eine Befehlabrufeinheit 208, welche mit der Datenverwaltungseinheit 206, der Adressensteuereinheit 207, dem arithmetischen Rechenwerk 212 und der Steuerspeichereinheit 210 zusammenarbeitet, ist für die Versorgung der Zentraleinheit 200 mit Befehlen verantwortlich. Die Befehlabrufeinheit 208 hält bereits den nächsten Befehl in ihren Registern verfügbar, bevor der gerade vorliegende Befehl fertig bearbeitet ist. Um diese Fähigkeit aufzuweisen, besitzt die Befehlabrufeinheit 208 ein 12-Wort-Eefehlsregister, welches normalerweise mehr als einen Befehl enthält. Die Befehlabrufeinheit fordert - gesteuert durch die Steuerspeichereinheit 210 - Befehle von dem Hauptspeicher 201 an, bevor diese Befehle tatsächlich benötigt werden und ergänzt auf diese Weise laufend ihr 12-Wort-Befehlsregister. Die Befehle werden im voraus mittels normalerweise nicht benutzter Speicherzyklen abgerufen. Die Befehlabrufeinheit
509825/0763
208 decodiert jeden Befehl und informiert die anderen Einheiten über die Länge und das Format des Befehls.
Die Adressensteuereinheit 207 steht über den Steuerspeieher-Schnittstellenadapter 209 mit der Befehl-Abrufeinheit 208, der Pufferspeicheradressliste 205, dem Hauptspeicher-Sortierer 202, der arithmetischen Recheneinheit 21-2, der Datenverwaltungseinheit 206 und der Steuerspeichereinheit 210 in Nachrichtenverbindung. Die Adressensteuereinheit 207 ist für jegliche Adressentwicklung innerhalb der Zentraleinheit verantwortlich. Alle Operationen der Adressensteuereinheit werden durch Steuerspeicher-Mikrooperationen und durch Lot· gikschaltkreise innerhalb der Einheit ausgeführt. Der normale Arbeitsablauf der Adressensteuereinheit hängt mehr von der Art der Adressen des Befehls, als von der Art des Befehls selber ab. In Abhängigkeit von dem Adressentyp kann die Adressensteuereinheit verschiedene Operationen für jede Adresse in einem Befehl ausführen.
Die Adressensteuereinheit 207 enthält einen Assoziativspeicher, welcher die Basisadresse der 8 zuvor am häufigsten benutzten Speichersegmente zusammen mit deren Segmentnummern speichert. Bei jeder Speicheranforderung wird die Segmentnummer mit dem Inhalt des Assoziativspeichers verglichen, um festzustellen, ob die Basisadresse des Segmentes bereits entwickelt und gespeichert ist. Ist die Basisadresse in dem Assoziativspeicher enthalten, so wird diese Adresse bei der Entwicklung der absoluten Adresse herangezogen,und es wird ein beträchtlicher Zeitbetrag eingespart. Ist die Basisadresse in dem Assoziativspeicher nicht enthalten, so wird sie durch Zugriff zu den Hauptspeichertabellen entwickelt. Nachdem die Basisadresse des Segmentes jedoch entwickelt ist, wird sie in dem Assoziativspeicher zusammen mit der Segmentnummer für eine spätere Bezugnahme abgespeichert.
Mit der Adressensteuereinheit 207, der Befehlabrufeinheit 208 und der Steuerspeichereinheit 210 arbeitet die arithmetische Recheneinheit 212 zusammen, welche den primären Arbeitsbereich der Zentral-
509825/0763
einheit 200 darstellt. Die arithmetische Recheneinheit 212 dient in erster Linie dazu, die arithmetischen Operationen und die von der Zentraleinheit geforderten Datenmanipulationen durchzuführen. Die Operationen der arithmetischen Recheneinheit 212 sind vollständig von den Steuerspeicher-Mikrooperationen der SteuerSpeichereinheit 210 abhängig.
Der arithmetischen Recheneinheit 212 ist eine lokale Speichereinheit 211 zugeordnet, welche aus einem Festkörperspeicher mit 256 Speicherplätzen bestehen kann und die Logikschaltkreise für die Auswahl des Speichers enthält. Die lokale Speichereinheit 211 wird benutzt, um die für die Steuerung und die Aufrechterhaltung des Betriebs der Zentraleinheit erforderliche Information zu speichern. Die lokale Speichereinheit 211 enthält weiterhin Arbeits-Speicherplätze, welche primär für die zeitliche Speicherung von Operanden und Teilresultaten während der Datenmanipulation benutzt werden.
Die Zentraleinheit 200 enthält typischerweise 8 Basisregister,
und welche in der arithmetischen Recheneinheit 212 angeordnet sindVbei 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 Ringnummer wird benutzt bei der Adressengültigkeitsberechnung, um Zugriffsrechte bei einem besonderen Hinweis auf ein Segment festzulegen.
Es sei darauf hingewiesen, daß Figur 3 ein detailliertes Flußdiagramm, betreffend den Schritt 432 der zuvor erwähnten prioritätsgleichen Patentanmeldung ist, und daß durch dieses Flußdiagramm ein ausführbarer Befehl aus der Vielzahl allgemeinen Zwecken dienender logischer Befehle, dargestellt ist. Es sei ferner angenommen, daß zu diesem Zeitpunkt der Befehl 100 gemäß den Figuren la und Ib in einem Befehlsregister 400 der Befelabrufeinheit 208 gemäß Figur 4 gespeichert ist. Der Operationscode für den Vergleich wird durch den Steuerspeicher-Schnittstellenadapter 209 ermittelt, v/elcher seinerseits die SteuerSpeichereinheit 210 zur Durchführung einer Serie
509825/0763
von Tests hinsichtlich der Daten und Datenfeld-Descriptoren beider miteinander zu vergleichender Datenfelder veranlasst. Diese Tests werden auf Grund von Mikrobefehlen durchgeführt, welche von der Steuerspeichereinheit 210 erzeugt werden. Die Ergebnisse dieser Tests werden von dem Steuerspeicher-Schnittstellenadapter 209 registriert, welcher in Abhängigkeit von den Testresultaten den nächsten Mikrobefehl modifizieren kann, so daß ein, den festgestellten Zustand berücksichtigender, bezogener Mikrobefehl erzeugt wird.
Das Eingangs/Ausgangs-Steuerwerk 220 ist derjenige Teil des Zentraleinheits-Subsystems , welcher einen·Nachrichtenweg zwischen einer Anzahl peripherer Subsysteme und dem Hauptspeicher herstellt, über das Steuerwerk 220 werden periphere Befehle ausgelöst und die daraus resultierenden Datenübertragungen gesteuert. Das Steuerwerk 220 kann maximal 16 Kanal-Steuereinheiten bearbeiten, wobei jede Kanal-Steuereinheit eine periphere Steuereinheit umfaßt. Diese, mit dem Subsystem der Zentraleinheit zusammenarbeitenden, peripheren Steuereinheiten bilden beispielsweise die Datenbank des Benutzers.
Gemäß Figur 3 ist das die Verwirklichung des Verschiebefefehls darstellende Flußdiagramm dargestellt. Durch Betrachtung der Figur 3 in Zusammenhang mit den Figuren 2 und 4 ergibt sich eine Erläuterung der Gesamtoperation des Systems. Figur 4 stellt ein schematisches Diagramm dar, welches die Übertragung und Verarbeitung der Daten durch den Vergleichsbefehl auf der Geräteebene zeigt. Betrachtet man die Figur 4 zusammen mit der das Flußdiagramm darstellenden Figur 3, so wird die durch den Vergleichsbefehl ausgelöste Operation verständlich.
Die Verbindung der.Steuerspeichereinheit 210 mit dem Steuerspeicher-Schnittstellenadapter 209 führt zu einer Mikroverzweigungstechnik, wobei die von dem Steuerspeicher-Schnittstellenadapter 209 erhaltenen Signale in eine direkte Adresse der Steuerspeichereinheit 210 umgewandelt werden. Durch die daraus resultierende" Operation wird
509825/0763
eine direkte Verbindung für nachfolgende Datenübertragungen hergestellt, wobei die zuvor festgestellten Bedingungen Berücksichtigung finden. Diese Ereignisfolge erscheint hinsichtlich jeder Rautendarstellung in Figur 3 und wird nachstehend nicht näher beschrieben .
Vor dem Startschritt 300 wird der Befehl 100 verarbeitet, um den Datenfeld-Descriptor und das Datenfeld zu erhalten. Zu diesem Zweck sind eine Vielzahl verschiedener Methoden der indirekten Adressentwicklung bekannt. Eine bevorzugte Methode arbeitet wie folgt:
Jede Adressilbe weist ein vorbestimmtes Bit-Feld auf, welches ein in dem arithmetischen Rechenwerk 212 angeordnetes Basisregister identifiziert. Dieses Basisregister enthält eine Segmentnummer und einen Offset. Die Segmentnummer bezeichnet eine Tabelle, welche auf einen Descriptor verweist, der seinerseits das den gewünschten Daten-Descriptor speichernde Segment bestimmt. Um diesen Daten-Descriptor zu identifizieren, wird der durch das Basisregister vorgegebene Offset zu dem Verschiebefeld in der Adressilbe addiert.
Der Daten-Descriptor kann bis zu 3 Worte aufweisen, wie dies in Figur Ic dargestellt ist. Dies wird anfänglich bestimmt durch Testen des Hinweisfeldes des Wortes 102, welches abgerufen wurde. Weist das Hinweisfeld die Codierung 01 auf, so ist es bekannt, daß mindestens ein weiteres Wort, d. h. das Wort 104 vorhanden ist. Nach Abruf des Wortes 104 werden die Bits 36 bis 38 überprüft, um festzustellen, ob das Wort 106 ebenfalls abgerufen werden soll.
Das Wort 102 wird herangezogen, um den Speicherplatz des gewünschten Operanden zu bestimmen, während die Worte 104 und 106 die Merkmale des durch das Wort 102 bestimmten Operanden festlegen.
Das Wort 102 wird in der gleichen Weise wie die Adressilbe entwickelt, d. h. es ist ein Basisregister vorgesehen, wobei dieses Basisregister
509825/0763
eine Segmentnummer und einen Offset aufweist. Nachdem mit der Segmentnummer auf eine Tabelle Bezug genommen ist, um einen Segment-Descriptor anzugeben, der das den Operanden aufweisende Segment bestimmt, wird der Offset des Basisregisters zu der Verschiebung des Wortes 102 addiert, um auf diese Weise die exakte Anordnung des Operanden innerhalb des Segmentes zu bestimmen. All diese beschriebenen Berechnungen werden durch die arithmetische Recheneinheit 212 in bekannter Weise vorgenommen.
Zusammenfassend ergibt sich also die Entwicklung des Datenfeld-Descriptors und des Operanden dadurch, daß die Adressilbe des Befehls in Verbindung mit einem Basisregister herangezogen wird, um die Datenfeld-Descriptoren 102 bis 106 zu bestimmen. Das Wort 102 wird sodann in Verbindung mit einem anderen Basisregister benutzt, um den speziell gewünschten Operanden zu bestimmen. Die Worte 104 und 106 beschreiben die Merkmale des auf diese Weise bestimmten Operanden.
Im Startschritt 300 gemäß Figur 3 sind die Merkmale der Datenfeld-Descriptoren mit dem folgenden Ergebnis getestet worden. Die Datentypen sind legal und kompatibel. Zusätzlich sind die Kennschlüsselfelder einander identisch. Die den ersten und zweiten Operanden zugeordneten Datenfeld-Descriptoren sind in einem AC-Register 408 und einem AD-Register 410 gespeichert.
Im Schritt 302 wird das Längenmerkmel jedes der beiden Datenfeld-Descriptoren abgerufen. Zuerst wird durch einen Auswahlmechanismus 428 aus dem AC-Register 408 der Längendescriptors des ersten Datenfeldes ausgewählt, wobei das Register 408 das Wort 104 des ausgedehnten Daten-Descriptors gemäß Figur Ic aufweist. Der Auswahlmechanismus 428 überträgt das Längen-Byte, d. h. die Bits 57 bis 63 von dem AC-Register nach dem AA-Register 412. Der Auswahlmechanismus kann irgendein Byte innerhalb des AC-Registers oder AD-Registers auswählen. Wahlweise kann die Auswahl des Längen-Bytes auch durch Verschieben des Inhalts des Registers nach einem vorbestimmten Speicherplatz und durch Auswahl des vorbestimmten Bytes verwirklicht werden.
509825/0763
Im Schritt 304 wird der Längendescriptor daraufhin überprüft, ob er den Binärwert "0" aufweist oder nicht. Dies v/ird bewerkstelligt durch Subtraktion einer Konstanten in dem AG-Register 420 von dem in dem Register 412 enthaltenen Längenmerkmal. Die unter Steuerung der SteuerSpeichereinheit 210 in das Register 420 geladene Konstante weist den Binärwert "0" auf. Da angenommen werden kann, daß jedes Datenfeld eine Länge größer als Null aufweist - andernfalls würde es nicht existieren - kann bei einem Subtraktionsergebnis von Null davon ausgegangen werden, daß die tatsächliche Länge des Datenfeldes 256 Bytes beträgt. Im Schritt 306 wird der Längendescriptor geändert, falls eine Null als Testergebnis durch die Steuerspeichereinheit 210 festgestellt wird, und es werden alle Binärstellen mit dem Wert "1" in das AA-Register 412 übertragen. Anschließend wird der Inhalt des Registers 412 nach einem Register innerhalb einer Arbeitsspeichereinheit 406 übertragen.
Im Schritt 308 wird der gleiche Test hinsichtlich des Längenmerkmals des zweiten Datenfeldes ausgeführt. Der Schritt 308 stimmt mit dem Schritt 304 mit der Ausnahme überein, daß die in das AG-Register 420 geladene Konstante von dem AB-Register 414 subtrahiert wird, wobei das Register 414 das Längenfeld dem AD-Register 410 entnommen hat. Die Berechnung wird durch den Rechner 422 ausgeführt und die Ergebnisse werden im AB-Register 414 gespeichert und anschließend in ein Register innerhalb der Arbeitsspeichereinheit 406 übertragen. Zu diesem Zeitpunkt ist die Länge eines jeden der beiden an dem Vergleich beteiligten Datenfelder bekannt.
Im Schritt 312 wird eine übertragung des Datentyps eines jeden Datenfeld-Descriptors von den Registern 408 und 410 zu den Registern 412 und 414 vorgenommen. Im Schritt 314 wird der im AA-Register enthaltene Datentyp von einer in das AG-Register 420 geladenen Konstante subtrahiert. Wenn der Datentyp eine alphanumerische Zeichenfolge ergibt, d. h. wenn die Bits 41 bis 48 die Codierung 0000 0000 aufweisen, so wird eine Verzweigung nach dem Schritt 320 durchgeführt.
509825/0783
Ist der Datentyp eine gepackte oder ungepackte Dezimalzahl, was durch einen Code von 0000 0001 oder 0000 0010 veranschaulicht wird, so wird eine.Verzweigung nach dem Schritt 318 durchgeführt. Diese Verzweigung ergibt sich auf Grund des von dem Rechner 422 ermittelten Subtraktionswertes. Wird eine Null als Ergebnis ermittelt, so verzweigt die SteuerSpeichereinheit 210 nach einer geeigneten Folge von Mikrobefehlen, welche nachstehend erläutert werden. Liegt der Datentyp weder als alphanummerische Zeichenfolge, noch als ungepackte oder gepackte Dezimalzahl vor, so ergibt sich eine illegale Datentypausnahme, was zu dem Schritt 316 führt. Diese Ausnahmebedingung setzt die Steuerspeichereinheit 210 in die Lage, anzuzeigen, daß die Hardware der Zentraleinheit 200 nicht fähig ist, den Befehl auszuführen. Es wurde jedoch festgestellt, daß 90 bis 95 % aller Benutzungen eines Vergleichsbefehls hinsichtlich einer alphanummerischen Zeichenfolge oder einer gepackten bzw. ungepackten Dezimalzahl durchgeführt werden und daß somit die Ausnahmebedingung weitgehendst nicht auftritt.
Zum Zwecke der Erläuterung sei angenommen, daß der festgestellte Code auf eine gepackte oder ungepackte Dezimalzahl als ersten Datentyp hinweist. Auf Grund dieser Feststellung tritt eine Verzweigung nach dem Schritt 320 auf, und es werden die folgenden Schritte durch die Steuerspeichereinheit 210 hinsichtlich der Datenfelder und der Datenfeld-Descriptoren durchgeführt. Im Schritt 320 wird der Längenoperand des ersten Datenfeld-Descriptors über den Auswahlmechanismus 428 in das AA-Register 412 übertragen. Da eine Dezimaldarstellung weniger als 32 Ziffern aufweisen muß, wird das Längenfeld daraufhin überprüft, um zu sehen, ob diese Bedingung erfüllt ist. Wird bei der Subtraktion des Längenfeldes von einer in dem AG-Register 420 enthaltenen Konstanten ein Wert kleiner als Null festgestellt, so wird der Schritt 322 ausgeführt. Ergibt die Subtraktion eine positive Zahl, so liegt ein illegaler Datenausnahmezustand vor, was zu dem Schritt 324 führt. Im Schritt 324 wird eine durch die
509825/0763
Steuerspeichereinheit 210 erzeugte. Ausnahmeroutine durchgeführt, wodurch angezeigt wird, daß die Daten nicht innerhalb der durch das System festgelegten Grenzen liegen. Im Schritt 322 wird der gleiche Test wie im Schritt 320 durchgeführt, wobei jedoch diesesmal das zweite Datenfeld dem Test unterworfen ist.
Im Schritt 326 wird festgestellt, ob der erste und zweite Operand in Form einer legalen Darstellung vorliegt. Eine illegale Darstellung wäre durch eine 4 Bit-Codierung größer als 1010 gegeben, d. h. die 4 Bit-Binärzahl darf in ihrer codierten Form nicht einen Wert ergeben, der größer ist, als die der Dezimalzahl 9 zugeordnete Binärzahl. Wenn im Schritt 314 eine ungepackte Dezimalzahl ermittelt wurde, so wird ein zusätzlicher Test hinsichtlich des Vorzeichens erforderlich, um die Legalität der Darstellung feststellen zu können. Eine ungepackte Dezimalzahl ergibt sich aus einer Reihe von aufeinanderfolgender Bytes im Hauptspeicher, wobei die Bytes eine Vorzeichen- und Größendarstellung einer dezimalen ganzen Zahl ergeben. Jedes Byte enthält eine 4 Bit-Zahlencodierung und eine 4 Bit-Zonencodierung mit Ausnahme des am weitesten rechts stehenden Bytes, welches die Zahlencodierung und eine Vorzeichencodierung aufweist. 4 Bit-Zahlencodierungen sind illegal, wenn sie sich zwischen den Binärzahlen 1010 und 1111 bewegen, d. h. wenn eine Dezimalzahl von 10 bis 15 codiert ist. Im Schritt 326 werden die Codierungen einer ungepackten Dezimalzahl überprüft. Die Codierung 1111 ist hinsichtlich aller Zonen vorgegeben. Die Vorzeichencodierung, welche durch die ersten 4 Bits des letzten Bytes gegeben ist, ist die gleiche wie die Vorzeichencodierung für die gepackte Dezimalzahl. Die Darstellung einer ungepackten Dezimalzahl ist illegal, wenn entweder die Zifferncodierung oder die Vorzeichencodierung illegal ist. Somit wird jedes Byte des ersten Operanden abgerufen, um sicherzustellen, daß die in ihm enthaltene Information eine legale Darstellung aufweist.
509825/0763
Hinsichtlich einer gepackten Dezimalzahl wird die legale Darstellung in der gleichen Weise getestet. Eine gepackte Dezimalzahl besteht aus einer Reihe aneinanderfolgender Bytes im Hauptspeicher, wobei die Bytes ein Vorzeichen und die Größe einer ganzen Dezimalzahl repräsentieren. Jedes Byte weist eine Binäre Zifferncodierung, bestehend aus zweimal 4 Bit auf, mit Ausnahme des am weitesten rechts stehenden Bytes, welches eine 4 Bit-Zahlencodierung und eine 4 Bit-Vorzeichencodierung beinhaltet. Die am weitesten links stehende Ziffer ist die hochrangigste Ziffer. Das Format einer gepackten Dezimalzahl ist dann illegal, wenn die Codierungen sich zwischen 1010 bis 1111 bewegen. Die Vorzeichencodierungen werden so interpretiert, daß die Codierungen von 1010, 1100, 1110, und 1111 als positive Vorzeichen und die Codierungen 1011 und 1101 als negative Vorzeichen gewertet werden. Da das Vorzeichen als die letzten 4 Bit der codierten, gepackten Dezimalzahl erscheint, kann durch eine Codierung von 0000 bis 1001 eine illegale Vorzeichencodierung festgestellt werden.
Im Schritt 328 wird ein Test des Datentypes des ersten Datenfeldes und des Datentypes des zweiten Datenfeldes durchgeführt. Dies wird verwirklicht durch Subtraktion der in den Registern 412 und 414 gespeicherten Datentypen durch den Rechner 422. Ergibt die Subtraktion als Resultat eine Null, so wird der Schrrtt.330 ausgeführt. Wird eine negative Zahl festgestellt, so wird der Schritt 332 ausgeführt, währenddem bei einer positiven Zahl als Ergebnis der Schritt 334 . zur Ausführung gelangt.
Ergibt die im Schritt 328 durchgeführte Subtraktion den Wert Null, so liegt es auf der Hand, daß beide Datentypen entweder in gepackter oder ungepackter Dezimaldarstellung vorliegen. Der Vergleich wird sodann hinsichtlich der rechts angeordneten Vorzeichenoperanden durchgeführt. Sind die Längen einander nicht gleich, so wird der kürzere Operand auf der linken Seite mit Mullstellen aufgefüllt. Der Vergleich ungepackterOperanden wird durchgeführt, imdem alle Zonen, mit Ausnahme des Operandenvorzeichens, unbeachtet bleiben.
509825/0763
Dies wird durch die Schritte 330 und 336 veranschaulicht, in denen das dem ersten Operanden zugeordnete Datenfeld nach einem temporären Speicherregister Rl übertragen wird, während das zweite Datenfeld nach einem temporären Speicherregister R2 übertragen wird. Ein Vergleich wird sodann in dem Schritt 338 durchgeführt, wobei die sich ergebenden Resultate "kleiner als " 'größer als" oder 'gleich " durch die Schritte 340, 342 und 344 dargestellt sind.
Wenn im Prüfschritt 328 angezeigt wird, daß der erste Datentyp kürzer als der zweite Datentyp ist, so ist daraus zu schließen, daß der erste Datentyp eine ungepackte Dezimalziffer und der zweite Datentyp eine gepackte Dezimalziffer darstellt. Als Folge dieses Tests wird im Schritt 332 das erste Datenfeld aus der ungepackten Dezimaldarstellung in eine gepackte Dezimaldarstellung umgewandelt, und es wird das Ergebnis in dem temporären Speicherregister Rl abgespeichert. Wenn das zweite Datenfeld eine gepackte Dezimaldarstellung aufweist, so wird der Schritt 336 ausgeführt, wobei die gepackte Dezimalziffer in dem zweiten temporären Speicherregister R2 abgespeichert wird. Ein Vergleich der gepackten Dezimalziffern hinsichtlich des am weitesten rechts angeordneten Vorzeichenoperanden wird sodann im Schritt 338 ausgeführt.
Wenn sich im Testschritt 328 ergab, daß der zweite Operand größer als der erste Operand ist, so steht hiermit fest, daß der zweite Operand als ungepackte Dezimalziffer und der erste Operand als gepackte Dezimalziffer vorliegt. Wie dies im Schritt 332 der Fall war, wird auch hier die ungepackte Dezimalziffer in eine gepackte Dezimalziffer umgewandelt. Nunmehr stellt jedoch die ungepackte Dezimalziffer den zweiten Operanden dar. Diese Umwandlung wird im Schritt 334 vollzogen. Der erste Operand, welcherdie gepackte Dezimalziffer darstellt, wird sodann im Schritt 337 in das temporäre Speicherregister Rl übertragen f und es wird anschließend der durch den Schritt 338 dargestellte Vergleich ausgeführt. Die Umwandlung der ungepackten Dezimalziffer in eine gepackte Dezimalziffer wird verwirklicht, indem die Zifferndarstellung herangezogen wird und die
509825/0763
Zone der ungepackten Bytes, eliminiert wird. Hinsichtlich des letzten Byte in der ungepackten Dezinialziffer, wird die aus 4 Bit bestehende Zifferndarstellung durch die Vorzeichendarstellung ausgetauscht, wodurch ein Informationsaustausch ermöglicht wird.
Die tatsächliche Verwirklichung der Umwandlung aus einer ungepackten Dezimaldarstellung in eine gepackte Dezimaldarstellung erfolgt durch einfaches Beschneiden der Zonen-Bits in der ungepackten Dezimaldarstellung. Der verbleibende Rest ergibt sodann eine Zifferncodierung bestehend aus 4 Bit, welche in dem temporären Speicherregister Rl abgespeichert wird. Abwechselnd wird sodann eine Konstante in das AG-Register 420 geladen und der Rechner 422 wird auf eine Subtraktion eingestellt. Die sich aus der Subtraktion ergebenden niedrigeren 4 Bits werden sodann in dem temporären Speicherregister gespeichert.
Wenn der im Schritt 338 durchgeführte Vergleich ergibt, daß das erste Datenfeld kleiner als das zweite Datenfeld ist, so wird ein Statusregister 418 auf den Zustandscode von 2 eingestellt. Hiermit wird angezeigt, daß das erste Datenfeld kleiner als das zweite Datenfeld ist. Im Schritt 346 ist die übertragung dieses Zustandscodes nach dem Statusregister dargestellt. Die übertragung des Zustandscodes 2 nach dem Statusregister 418 erfolgt unter Steuerung durch die Steuerspeichereinheit 210. Wenn das erste Datenfeld mit dem zweiten Datenfeld übereinstimmt, so wird ein Zustandscode von 3 in das Statusregister 418 eingeschrieben. Dies ist durch den Schritt 350 veranschaulicht. Hat sich herausgestellt, daß das zweite Datenfeld größer als das erste Datenfeld ist, so wird in das Statusregister 418 ein Zustandscode von 1 eingeschrieben, was im Schritt 352 geschieht, und wordurch angezeigt wird, daß in dem zweiten Datenfeld eine positivere Zahl vorhanden ist. Nachdem das Statusregister 418 entsprechend eingestellt ist, wird der nächste Befehl ausgeführt.
Wenn im Schritt 314 hinsichtlich des Datentypes festgestellt wurde, daß eine alphanummerische Zeichenfolge vorliegt, so wird durch die Steuerspeichereinheit 21O eine Verzweigung nach dem Schritt 318
509825/0763
vorgenommen. Im Schritt 318 werden 4 temporäre Register eingestellt. Ein erstes temporäres Register, nachstehend mit N bezeichnet, speichert die minimale Länge des ersten Datenfeldes, wobei diese Länge mit L bezeichnet ist. Ein zweites temporäres Speicherregister, nachstehend mit M bezeichnet, wird auf die minimale Länge des zweiten Datenfeldes eingestellt. Der tatsächliche Inhalt des Datenfeldes wird sodann von den Speicherplätzen Xl und X2 nach den temporären Speicherregistern Sl und S2 übertragen. Die in den Registern enthaltenen Bytes (Sl) und (S2) werden sodann Byte für Byte von links nach rechts miteinander verglichen. Jedes Byte steht hierbei für eine positive ganze Zahl, codiert durch 8 Bit. Der Vergleich wird beendigt, wenn 2 Bytes einander ungleich sind oder wenn beide Zeichenfolgen aufgebraucht sind. Wenn die Längen der Datenfelder einander ungleich sind, so wird der kürzere Operand nach rechts mit Leerzeichen aufgefüllt, was nachfolgend anhand der Schritte 354 und beschrieben wird.
Im Schritt 354 wird die Länge des ersten Operanden überprüft. Ist diese Länge nicht gleich Null, welches dem Normalfall entspricht, so wird der Schritt 356 ausgeführt. Im Schritt 356 wird überprüft, ob die Länge des zweiten Operanden von Null verschieden ist. Im Normalfall weist die Länge des zweiten Datenfeldes anfänglich eine von Null verschiedene Länge auf. Daraufhin wird der Schritt 358 ausgeführt.
Im Schritt 358 wird der Inhalt der ersten 2 Bytes, wie dies durch (Sl) und (S2) angedeutet ist, miteinander verglichen. Ergibt sich beim Vergleich des ersten Bytes ein ungleicher Zustand, so wird eine Verzweigung nach dem Schritt 340 oder 344 vorgenommen. In den Schritten 340 bzw. 344 wird in das Statusregister 418 jeweils der Zustandscode eingeschrieben, welcher anzeigt, ob das eine Byte kleiner oder größer als das andere Byte gewesen ist. Der Vergleich im Schritt ist identisch mit dem im Schritt 338 gemachten Vergleich und wird durch die Recheneinheit 416 ausgeführt.
509825/0763
Wenn sich beim Vergleich der beiden betrachteten Bytes Gleichheit ergibt, so wird das nächste Byte dem Vergleich unterworfen. Diese Maßnahmen werden im Schritt 360 ausgeführt, durch welchen die verschiedenen temporären Speicherregister auf das nächste Byte eingestellt werden. Hierbei werden insbesondere die tatsächlichen Datenfelder, wie sie in den temporären Speicherregistern Sl und S2 enthalten sind, jeweils schrittweise um 1 erhöht, um einen Hinweis auf das nächste Byte innerhalb der Datenfelder zu schaffen. Die Längenmerkmale, welche in den temporären Speicherregistern N und M enthalten sind, werden schrittweise um 1 erniedrigt. Jede dieser Operationen hinsichtlich der Register Sl, S2, N und M kann durch Laden einer Konstante in das AG-Register und Einstellung des Rechners 422 entweder auf Addition oder Subtraktion verwirklicht werden. Die AA- und AB-Register werden benutzt, um die verschiedenen Informationen der temporären Speicherregister zu speichern und um die Ergebnisse nach der Berechnung wiederum in die temporären Speicherregister zurückzubringen. Nach dem Schritt 360 wird der Schritt 354 wiederum ausgeführt, welcher sich mit der überprüfung der Länge des ersten Datenfeldes befasst.
Wenn der Test des ersten Operanden dessen Länge mit Null ausweist, so wird der Schritt 362 ausgeführt.In diesem Schritt wird die Länge des zweiten Operanden daraufhin überprüft, ob sie Null ist oder nicht. Ist sie Null, so wird in das Statusregister 418 eine 3 eingeschrieben, womit ein Hinweis gegeben ist, daß das erste Datenfeld der alphanummerischen Zeichenreihe mit dem zweiten Datenfeld der alphanummerischen Zeichenreihe übereinstimmt. Ist jedoch das zweite Datenfeld von Null verschieden, so wird das zweite Datenfeld mit einem Leerfeld verglichen, welches anstatt des ersten Datenfeldes vorgesehen ist. Im Schritt 364 wird daher ein Leerfeld erzeugt, um den Vergleich ausführen zu können. Wird bei dem Test des zweiten Datenfeldes mit dem Leer-Byte ein Zustand "größer als" oder "kleiner als" festgestellt, so erfolgt eine Verzweigung zu dem Schritt 340 oder dem Schritt 344 und es wird ein entsprechender Zystandscode
509825/0763
in das Statusregister 418 eingeschrieben. Ergibt sich jedoch bei diesem Vergleich Gleichheit, was dann der Fall ist, wenn das zweite Datenfeld ebenfalls den Wert Null aufweist, so wird der Schritt 366 durchgeführt. In diesem Schritt wird das nächste Byte des zweiten Datenfeldes, welches in dem temporären Speicherregister S2 gespeichert ist, für den Vergleich bereitgestellt, indem der Inhalt des Speicherregisters um 1 erhöht wird. Entsprechend wird der Inhalt des temporären Speicherregisters M, welches die Länge des zweiten Datenfeldes speichert, um 1 erniedrigt. Die die Schritte 362 und 364 umfassende Schleife wird sodann mehrfach ausgeführt, bis alle Bytes des zweiten Datenfeldes überprüft sind.
Wenn die durch den Inhalt des temporären Speicherregisters N gegebene Länge des ersten Datenfeldes größer als Null ist und die durch den Inhalt des temporären Speicherregisters M vorgegebene Länge des zweiten Datenfeldes gleich Null ist, so tritt eine Verzweigung von dem Schritt 356 nach dem Schritt 368 auf. Durch den Schritt 368 wird angezeigt, daß dem zweiten Datenfeld ein Leer-Byte hinzugefügt wird, wenn das erste Datenfeld länger ist. Das Leer-Byte ist erforderlich, um den Vergleich hinsichtlich der beiden Datenfelder durchzuführen und zu bestimmen, ob sie einander gleich sind oder nicht. Im Falle der Ungleichheit der Bytes der beiden Datenfelder wird im Schritt 368 eine Verzweigung nach dem Schritt 340 (kleiner als) oder nach dem Schritt 344 (größer als) vorgenommen. Im Falle der Gleichheit wird der Schritt 370 ausgeführt. Im Schritt 370 wird der Inhalt des die Adresse des ersten Operanden speichernden, temporären Speicherregisters Sl um 1 erhöht, wodurch das nächstfolgende Byte innerhalb des ersten Datenfeldes für den Vergleich bereitgestellt wird. In gleicher Weise wird der Inhalt des das Längenmerkmal des ersten Datenfeldes speichernden temporären Speicherregisters N um 1 erniedrigt. Anschließend wird der Schritt 354 erneut ausgeführt.
Wenn das gesamte erste Datenfeld mit dem zweiten Datenfeld unabhängig von der Länge beider Datenfelder vergleichbar war, so wird schließlich
509825/0763
der Schritt 362 ausgeführt, wodurch angezeigt wird, daß ein Gleichheits-Zustand besteht. Nachfolgend wird der nächste Befehl durch die Zentraleinheit 200 ausgeführt.
Wenn die Kennschlüsselfelder der Daten-Descriptoren einander ungleich sind, was beispielsweise der Fall ist, wenn Gramm mit Pond verglichen werden sollen, so wird durch eine Routine,eines der Datenfelder, welches mit der einen Dimension ausgestattet ist, auf die andere Dimension umgewandelt. Die oben erwähnten Schritte werden sodann ausgeführt, wobei den Datenformaten und den Längen eines jeden Datenfeldes Rechnung getragen wird. Durch Berücksichtigung der verschiedenen Kennschlüsselfelder wird die Rechenzeit und die benötigte Speicherkapazität auf ein Minimum reduziert.
509825/0763

Claims (24)

  1. Patentansprüche
    y Verfahren zum Vergleichen von eine Vielzahl verschiedener Datenstrukturen aufweisender Datenfelder, gekennzeichnet durch folgende Schritte:
    Speicherung der Datenfelder und der sie beschreibenden Datenfeld-Descriptoren in einem Datenprocessor,
    Adressierung eines ersten und eines zweiten Datenfeldes durch ihnen zugeordnete Datenfeld-Descriptoren, Vergleichen des ersten Datenfeldes mit dem zweiten Datenfeld bei der Ausführung des Vergleichsbefehls, wobei die zugeordneten Datenfeld-Descriptoren eine Formatanpassung gestatten, sofern dies bei dem Vergleichsschritt erforderlich ist.
  2. 2. Verfahren nach Anspruch 1,dadurch gekennzeichnet, daß jeder der Datenfeld-Descriptoren den Datentyp, den Kennschlüssel und die Länge der Datenfelder beschreibt.
  3. 3. Verfahren nach Anspruch 2,dadurch gekennzeichnet, daß der Datentyp jedes der Datenfelder getestet wird, wobei durch diesen Testschritt festgestellt wird, ob der Datentyp eine alphanummerische Zeichenfolge, eine gepackte oder ungepackte Dezimalzahl oder einen durch die Logikschaltkreise des Datenprocessor s nicht verarbeitbaren Datentyp betrifft.
  4. 4. Verfahren nach Anspruch 3, wobei der Datentyp als alphanummerische Zeichenfolge vorliegt, gekennzeichnetdurch folgende Schritte:
    übertragung des Längendescriptors und der Inhalte der Datenfelder auf eine Vielzahl von Registern,
    Vergleichen des ersten Bytes des ersten Datenfeldes mit dem ersten Byte des zweiten Datenfeldes,
    fortlaufende Wiederholung dieses Vergleichsschrittes hinsichtlich der nächsten Bytes der beiden Datenfelder - sofern die
    509825/0763
    Byte-Anzahl einander gleich ist,
    Erzeugen eines Zustand-Codes in einem Register, der bei un<gleicher Byte-Anzahl anzeigt, ob das erste Datenfeld kleiner oder größer als das zweite Datenfeld ist.
  5. 5. Verfahren nach Anspruch 4, gekennzeichnet durch folgende weitere Schritte:
    Testen des Längendescriptors des ersten Datenfeldes daraufhin, ob zusätzliche Bytes vorliegen, wobei der Längendescriptor in einem ersten Register aus der Vielzahl von Registern abgelegt
    Zufügen von Leerbytes zu dem ersten Datenfeld, falls das zweite Datenfeld langer ist,
    Vergleichen der Leerbytes mit den Bytes des zweiten Datenfeldes
    Erzeugen eines Zustand-Codes in dem Register, welcher anzeigt, daß die beiden Datenfelder einander gleich sind, sofern der Vergleichsschritt keine Differenz ergibt.
  6. 6. Verfahren nach Anspruch 4, gekennzeichnet durch folgende weitere Schritte:
    Testen des Längendescriptors des zweiten Datenfeldes daraufhin, ob zusätzliche Bytes vorliegen, wobei der Längendescriptor in einem zweiten Register aus der Vielzahl von Registern abgelegt
    Zufügen von Leerbytes zu dem zweiten Datenfeld, falls das erste Datenfeld länger ist,
    Vergleichen der Leerbytes mit den Bytes des ersten Datenfeldes
    Erzeugen eines Zustands-Codes in dem Register, welcher anzeigt, daß die beiden Datenfelder einander gleich sind, sofern der Vergleichsschritt keine Differenz ergibt.
  7. 7. Verfahren nach Anspruch 3, wobei der Datentyp des ersten und zweiten Datenfeldes in Form gepackter und ungepackter Dezimalzahlen vorliegt, gekennzeichnet durch
    509825/0763
    folgende Schritte:
    Subtraktion des Datentyps des mit dem ersten Datenfeld verbundenen Datenfeld-Descriptors von dem Datentyp des mit dem zweiten Datenfeld verbundenen Datenfeld-Descriptors, Überprüfung des Subtraktionsergebnisses, um festzustellen, welches Datenfeld die ungepackte Dezimalzahl beinhaltet und Umwandlung der ungepackten Dezimalzahl in eine gepackte Dezimalzahl sowie daran anschließender Byte für Byte-Vergleich des ersten Datenfeldes mit dem zweiten Datenfeld.
  8. 8. Verfahren nach Anspruch 7, gekennzeichnet durch die übertragung eines Zustands-Codes in ein Register zur Anzeige, ob das erste Datenfeld größer als, kleiner als oder gleich dem zweiten Datenfeld ist.
  9. 9. Verfahren nach Anspruch 3, wobei die Datentypen des ersten und zweiten Datenfeldes einander gleich sind, g e k e η η ζ e i c h net durch die übertragung eines Zustands-Codes in ein Register zur Anzeige, ob das erste Datenfeld größer als, kleiner als oder gleich dem zweiten Datenfeld ist.
  10. 10. Anlage zur Durchführung des Verfahrens nach Anspruch 1, gekennzeichnet durch
    eine Einrichtung zur Erzeugung eines Verschiebe-Befehls, eine erste Adressiereinrichtung zum Adressieren eines ersten Datenfeldes und eines diesem zugeordneten, Datenfeld-Descriptors in Abhängigkeit eines ersten Teiles des Verschiebe-Befehls, eine zweite Adressiereinrichtung zum Adressieren eines zweiten Datenfeldes und eines diesem zugeordneten Datenfeld-Descriptors in Abhängigkeit eines zweiten Teiles des Verschiebe-Befehls, eine Vergleichseinrichtung zum Vergleich des ersten Datenfeldes mit dem zweiten Datenfeld während der Befehlsausführung in Abhängigkeit eines dritten Teiles des Verschiebe-Befehls, wobei - erforderlichenfalls - eine Formatanpassung des ersten oder
    509825/07 6 3
    zweiten Datenfeldes in Übereinstimmung mit dem ersten und zweiten Datenfeld-Descriptor erfolgt.
  11. 11. Anlage nach Anspruch 10, dadurch gekennzeichnet, daß der erste Datenfeld-Descriptor zumindest den Datentyp des ersten Datenfeldes und der zweite Datenfeld-Descriptor zumindest den Datentyp des zweiten Datenfeldes beschreibt.
  12. 12. Anlage nach Anspruch 11, gekennzeichnet durch eine Anzeigeeinrichtung, welche in Abhängigkeit von dem Datentyp des ersten und zweiten Datenfeld-Descriptors anzeigt,- daß in den ersten und zweiten Datenfeldern Dezimalzahlen in gepacktem oder ungepacktem Format vorliegen,
    eine Testeinrichtung zum Testen in Abhängigkeit vom Verschiebebefehl, ob das erste Datenfeld das gleiche Format wie das zweite Datenfeld aufweist und
    eine Umwandlungseinrichtung, welche bei Ungleichheit der Formate - gesteuert von der Testeinrichtung - eine Anapssung der Formate vornimmt.
  13. 13. Anlage nach Anspruch 12, dadurch gekennzeichnet, daß die Umwandlungseinrichtung die ungepackten Dezimalzahlen in gepackte Dezimalzahlen umwandelt.
  14. 14. Anlage nach Anspruch 12f dadurch gekennzeichnet, daß die Anzeigeeinrichtung die ersten und zweiten Datenfelder als alphanummerische Zeichenfolgen anzeigt.
  15. 15. Anlage nach Anspruch 10, dadurch gekennzeichnet, daß die beiden Datenfeld-Descriptoren die Länge der beiden Datenfelder angeben.
  16. 16. Anlage nach Anspruch 10, dadurch gekennzeichnet, daß die beiden Datenfeld-Descriptoren einen Kennschlüsselfeld-Descriptor aufweisen, durch den die Dimension des zugeordneten Datenfeldes beschrieben wird.
    509825/0763
  17. 17. Anlage nach Anspruch 10, gekennzeichnet durch eine Einrichtung zur Erzeugung eines Zustands-Codes in Abhängigkeit von der Vergleichseinrichtuhg, wobei der Code angibt, ob das erste Datenfeld kleiner als, größer als oder gleich dem zweiten Datenfeld ist.
  18. 18. Anlage zur Durchführung des Verfahrens nach Anspruch 1, wobei die beiden Datenfelder erste und zweite Ausbildungen aufweisen, gekennzeichnet durch eine erste Einrichtung zum Beschreiben des Speicherplatzes und der Merkmale des die erste Ausbildung aufweisenden Datenfeldes, eine zweite Einrichtung zum Beschreiben des Speicherplatzes und der Merkmale des die zweite Ausbildung aufweisenden Datenfeldes, einen Vergleichsbefehl zum Vergleichen der beiden Datenfelder und
    eine durch den Vergleichsbefehl und die beiden Einrichtungen gesteuerte Steuerspeichervorrichtung zur Erzeugung von Mikrobefehlen zwecks Interpretation der Merkmale der beiden Ausbildungen, wobei die Steuerspeichervorrichtung auf Grund dieser Interpretation und des Vergleichsbefehls logische Steuersignale zum Vergleichen und Formatanpassen der beiden Datenfelder erzeugt.
  19. 19. Anlage nach Anspruch 18, dadurch gekennzeichnet, daß die Merkmale der beiden Ausbildungen durch den Datentyp-, Kennschlüssel- und Längen-Descriptor gegeben sind.
  20. 20. Anlage nach Anspruch 19 mit einer Vielzahl von Registern, dadurch gekennzeichnet, daß die Steuerspeichervorrichtung den Datentyp der beiden Datenfelder als' alphanummerische Zeichenfolge interpretiert und den Längendescriptor des ersten Datenfeldes in ein erstes Register und den Längendescriptor des zweiten Datenfeldes in ein zweites Register aus der Vielzahl von Registern überträgt.
  21. 21. Anlage nach Anspruch 19, dadurch gekennzeichnet, daß die Steuerspeichervorrichtung die beiden Daten-
    BO9825/0763
    felder Byte für Eyte vergleicht und eine Anzahl von Leerbytes den Datenfeldern anfügt,falls die Register ungleich gefüllt sind,
  22. 22. Anlage nach Anspruch 19, dadurch gekennzeichnet, daß die Steuerspeichervorrichtung den Datentyp der beiden Datenfelder entweder als gepackte oder ungepackte Dezimalzahl interpretiert und die Gleichheit bzw. Ungleichheit zwischen den beiden Datenfeldern feststellt.
  23. 23. Anlage nach Anspruch 22, dadurch gekennzeichnet, daß die Steuerspeichervorrichtung bei Ungleichheit der Datentypen während der Befehlsausführung das Datenfeld mit dem" ungepackten Dezimalformat in ein gepacktes Dezimalformat umwandelt und die gepackten Dezimalformate der beiden Datenfelder miteinander vergleicht.
  24. 24. Anlage nach Anspruch 18, dadurch gekennzeichnet, daß die Steuerspeichervorrichtung einen ZustandsrCode erzeugt, welcher anzeigt, ob das erste Datenfeld kleiner als, größer als oder: gleich dem zweiten Datenfeld ist.
    509825/0763
DE19742458259 1973-12-13 1974-12-10 Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen Withdrawn DE2458259A1 (de)

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=23682518

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742458259 Withdrawn DE2458259A1 (de) 1973-12-13 1974-12-10 Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen

Country Status (7)

Country Link
US (1) US4068299A (de)
JP (1) JPS584368B2 (de)
CA (1) CA1026870A (de)
DE (1) DE2458259A1 (de)
FR (1) FR2254825B1 (de)
GB (1) GB1494506A (de)
IT (1) IT1035093B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156926A (en) * 1976-06-01 1979-05-29 Texas Instruments Incorporated PROM circuit board programmer
US4214303A (en) * 1977-12-22 1980-07-22 Honeywell Information Systems Inc. Word oriented high speed buffer memory system connected to a system bus
US4268907A (en) * 1979-01-22 1981-05-19 Honeywell Information Systems Inc. Cache unit bypass apparatus
JP2844591B2 (ja) * 1987-01-16 1999-01-06 株式会社日立製作所 ディジタル信号処理装置
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
US5045992A (en) * 1988-10-19 1991-09-03 Hewlett-Packard Company Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type
US6292879B1 (en) * 1995-10-25 2001-09-18 Anthony S. Fong Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer
US5907842A (en) * 1995-12-20 1999-05-25 Intel Corporation Method of sorting numbers to obtain maxima/minima values with ordering
US6557096B1 (en) * 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
JP3845814B2 (ja) * 2000-08-10 2006-11-15 株式会社テルミナス・テクノロジー 連想メモリとその検索方法及びルータとネットワークシステム
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US9195463B2 (en) * 2011-11-30 2015-11-24 International Business Machines Corporation Processing core with speculative register preprocessing in unused execution unit cycles

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE758811A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information ayant un emmagasinage sans structure pour traitements emboites
US3805247A (en) * 1972-05-16 1974-04-16 Burroughs Corp Description driven microprogrammable multiprocessor system

Also Published As

Publication number Publication date
FR2254825A1 (de) 1975-07-11
AU7607774A (en) 1976-06-10
JPS584368B2 (ja) 1983-01-26
US4068299A (en) 1978-01-10
CA1026870A (en) 1978-02-21
JPS50115440A (de) 1975-09-10
FR2254825B1 (de) 1979-02-23
GB1494506A (en) 1977-12-07
IT1035093B (it) 1979-10-20

Similar Documents

Publication Publication Date Title
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2458300A1 (de) Datenverarbeitungssystem zur verarbeitung verschiedener datenformate
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE60019148T2 (de) Dma-deskriptor-architektur mit verknüpfter liste
DE68921775T2 (de) Prozessorssimulation.
DE69028269T2 (de) Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens
DE2417795C2 (de) Datenverarbeitungsanlage
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2714805A1 (de) Datenverarbeitungssystem
DE2517276A1 (de) Datenverarbeitungssystem
EP0010198A2 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2930441C2 (de) Anzeigeeinrichtung zur wahlweisen dynamischen oder statischen Anzeige
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
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
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE1549531A1 (de) Digitale Rechenanlage
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2458331A1 (de) Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes
DE69229424T2 (de) Adressengeneration in einer Datenverarbeitungseinheit
DE19929051C2 (de) Registerumbenennungsverfahren für 32- und 64-Bit-Befehle in einem Programm

Legal Events

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