DE4129614C2 - System und Verfahren zur Datenverarbeitung - Google Patents

System und Verfahren zur Datenverarbeitung

Info

Publication number
DE4129614C2
DE4129614C2 DE4129614A DE4129614A DE4129614C2 DE 4129614 C2 DE4129614 C2 DE 4129614C2 DE 4129614 A DE4129614 A DE 4129614A DE 4129614 A DE4129614 A DE 4129614A DE 4129614 C2 DE4129614 C2 DE 4129614C2
Authority
DE
Germany
Prior art keywords
processor
processor elements
address
data
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4129614A
Other languages
English (en)
Other versions
DE4129614A1 (de
Inventor
Masahiko Saito
Kenichi Kurosawa
Yoshiki Kobayashi
Tadaaki Bandoh
Masahiro Iwamura
Takashi Hotta
Yasuhiro Nakatsuka
Shigeya Tanaka
Takeshi Takemoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Priority claimed from JP2237666A external-priority patent/JPH04117540A/ja
Priority claimed from JP24755790A external-priority patent/JP2834298B2/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE4129614A1 publication Critical patent/DE4129614A1/de
Application granted granted Critical
Publication of DE4129614C2 publication Critical patent/DE4129614C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

Die vorliegende Erfindung betrifft ein System und ein Ver­ fahren zur Datenverarbeitung gemäß den Oberbegriffen der unabhängigen Ansprüche. Ein solches System und ein solches Verfahren sind aus der US-4 901 230 bekannt.
Allgemeiner betrifft die Erfindung die von einem Computer mit Cachespeicher ausgeführte Hochgeschwindigkeitsdatenver­ arbeitung und insbesondere ein Datenverarbeitungssystem und ein Datenverarbeitungsverfahren eines Typs mit intern ver­ änderbarer oder wiederherstellbarer Struktur, so daß Pro­ grammabarbeitungsverfahren oder -betriebsarten entsprechend Parallelverarbeitungseigenschaften (die im folgenden auch als Parallelität bezeichnet werden), die den abzuarbeitenden Programmen inhärent sind, geändert werden können.
Im allgemeinen sind im Zusammenhang mit einem eine Mehr­ zahl von Prozessorelementen enthaltenden Datenverarbei­ tungssystem, in dem die einzelnen Prozessorelemente Be­ fehle parallel abarbeiten, zwei Typen von Implementie­ rungs- oder Strukturierungsverfahren bekannt. Ein System, bei dem ein Strukturierungsverfahren des ersten Typs zur Anwendung kommt, ist durch ein Multiprozessor-Computersy­ stem gegeben, während ein System, bei dem ein Strukturie­ rungsverfahren des zweiten Typs Anwendung findet, durch ein Superskalar-Computersystem gegeben ist.
Im Falle des Multiprozessor-Computersystems oder Multi­ prozessor-Datenverarbeitungssystems wird von einer Mehr­ zahl von Prozessoren eine Speicheranordnung (etwa ein Hauptspeicher) und/oder ein Cachespeicher gemeinsam ver­ wendet. Typische Cachespeicher-Strukturierungsschemata für Multiprozessor-Computersysteme sind beispielsweise aus JP 56-127261-A und aus James R. Goodmann, "Using Cache Memory To Reduce Processor-Memory Traffic", The 10th Annual International Symposium on Computer Architec­ ture, Bd. 11, Nr. 3, 13.-17. Juni 1983, bekannt. In diesem System arbeiten einzelne Prozessorelemente ver­ schiedene Programme unabhängig voneinander ab.
Das Multiprozessor-Computersystem ist für die Ausführung einer Parallelverarbeitung auf Aufgabenbasis (Task-Basis) sicherlich gut geeignet. Der parallelen Verarbeitung ei­ ner Mehrzahl von in einem Programm enthaltenen Befehlen wird jedoch hierbei keinerlei Beachtung geschenkt. Daher entsteht hinsichtlich der internen Datenkonsistenz zwi­ schen oder unter einer Mehrzahl von Cachespeichern ein Problem, wenn die Menge der von den Prozessoren gemeinsam genutzten Daten ansteigt. Beispielsweise tritt beim Schreiben von Daten in den Cachespeicher häufig eine Invalidierung auf, wodurch die Cache-Trefferrate nachteilig abgesenkt wird.
Im Gegensatz hierzu führen im Falle des Superskalar-Com­ putersystems eine Mehrzahl (n) von Prozessorelementen eine Mehrzahl von in einem Programm vorhandenen Befehlen parallel und synchron aus, wobei die parallele Verarbei­ tung bis in Einzelheiten erzielbar ist. Als ein Typ eines solchen Superskalar-Computersystems ist ein VLIW-Com­ putersystem (Computersystem für sehr lange Befehlswörter) bekannt. Typische Beispiele für das Multiprozessorsystem, das Superskalarsystem und das VLIW-System sind etwa aus den folgenden Artikeln bekannt:
  • - S. Thakkar u. a. "The Balance Multiprocessor System". IEEE Micro, 1988.2, S. 57-69, bzw.
  • - K. Murakami u. a., "SIMP (Single Instruction Stream/Multiple Instruction Pipelining): A Novel High- Speed Single Processor Architecture", Proc. 16th Interna­ tional Symposium on Computer Architecture, 1989, S. 78-­ 85, bzw.
  • - H. Hagiwara u. a., "A Dynamically Micro-programmable Computer with Low-Level Parallelism", IEEE Trans. C 29, Nr. 7, 1980, S. 577-599.
Im Zusammenhang mit dem Superskalar-Computersystem wird festgestellt, daß selbst bei einer Hardware-Implementie­ rung unter Verwendung von n Prozessorelementen für die parallele Abarbeitung von Befehlen eine Situation auftre­ ten kann, in der nur eine begrenzte Anzahl von hardware­ mäßig implementierten Prozessorelementen betrieben werden kann, solange in dem abzuarbeitenden Programm selbst keine Parallelität festgestellt wird. Wenn das Programm im Extremfall unter sämtlichen der abzuarbeitenden aufeinanderfolgenden Befehle keinerlei Parallelität zeigt, arbeitet in Wirklichkeit nur einer der n Prozes­ sorelemente. Die verbleibenden n - 1 Prozessorelemente bleiben dabei unbenutzt. Unter der Annahme, daß diese Programmart n-fach vorliegt und daß die für die Abarbei­ tung eines jeden dieser Programme erforderliche Zeit durch Si gegeben ist (wobei i ganze Zahlen zwischen 1 und n darstellt), ergibt sich die für die Abarbeitung sämtli­ cher Programme erforderliche Zeit zu ΣSi (wobei Σ die Gesamtsumme über n darstellt).
Wenn im Gegensatz hierzu die Programme des obenerwähnten Typs unter Verwendung des Multiprozessor-Computersystems abgearbeitet werden, kann die Abarbeitung oftmals sehr effektiv ausgeführt werden. Solange selbst bei einer Än­ derung der Reihenfolge oder der Abfolge bei der Abar­ beitung von Einzelprogrammen (wie sie etwa bei der Abar­ beitung von n verschiedenen Benutzerprogrammen bei Routi­ nearbeiten häufig auftritt) kein Problem entsteht, ist es möglich, die Programme mit n Prozessorelementen unabhän­ gig voneinander abzuarbeiten. In diesem Fall sollte die Abarbeitung sämtlicher Programme im Idealfall in dem für die Abarbeitung der jeweiligen Einzelprogramme maximal erforderlichen Zeitraum abgeschlossen sein. In der Praxis wird jedoch die für den Abschluß der Abarbeitung sämtli­ cher Programme erforderliche Zeit diese Maximalzeit über­ schreiten, weil unter den Prozessorelementen möglicher­ weise eine Konflikt- oder Konkurrenzsituation bezüglich eines Cachespeichers und/oder eines Hauptspeichers auf­ tritt. Dennoch besitzt das Multiprozessor-Computersystem gegenüber dem Superskalar-Computersystem viele Vorteile.
Es muß jedoch darauf hingewiesen werden, daß das Multi­ prozessor-Computersystem auf ungünstige Bedingungen sto­ ßen kann. Als Beispiele hierfür können etwa solche Umge­ bungsbedingungen, unter denen eine Mehrzahl von Program­ men nicht gleichzeitig abgearbeitet werden können, und Anwendungen, in denen die Anzahl der Prozessorelemente größer als diejenige der abzuarbeitenden Programme ist, angegeben werden. Genauer können im Multiprozessor-Com­ putersystem nur solche Parallelverarbeitungen verwirk­ licht werden, die mit der Anzahl der abzuarbeitenden Pro­ gramme übereinstimmen. Wenn daher die Anzahl der Pro­ gramme durch p dargestellt wird und die Anzahl der Pro­ zessorelemente durch n gegeben ist, werden n - p Prozes­ sorelemente außer Betrieb bleiben, wenn die Anzahl n der Prozessorelemente größer als diejenige der Programme ist. Im Gegensatz hierzu können im Superskalar-Computersystem die Prozessorelemente wirksam vor einem Stillstand ge­ schützt werden, wenn die Anzahl der Programme kleiner als diejenige der Prozessorelemente ist, weil eine Paral­ lelität bereits in einem einzigen Programm vorhanden sein kann.
Aus der obigen Beschreibung wird deutlich, daß eine opti­ male Computerstruktur oder -architektur häufig in Abhän­ gigkeit von dem oder den abzuarbeitenden Programm(en) verschieden sein wird.
Aus der US 4 901 230 ist eine Steuerung für einen Computer mit Vektor-Mehrfachverarbeitung bekannt. Das zugehörige Sy­ stem weist mehrere Prozessorelemente auf, die wahlweise im Parallelbetrieb und im Multiprozessorbetrieb arbeiten kön­ nen. Jedes der Prozessorelemente hat eine Registerdatei. Wenn die Prozessorelemente parallel arbeiten sollen, greifen sie auf einen zusätzlich außerhalb der Prozessorelemente vorgesehenen Registersatz zu, mit dem sie über separate Lei­ tungen/Busse verbunden sind.
Es ist die Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren zu schaffen, mit denen die Betriebsart des Datenverarbeitungssystems entweder auf die Superskalar-Com­ putersystem-Betriebsart (die im folgenden als Parallelbe­ triebsart bezeichnet wird) oder auf die Multiprozessor-Com­ putersystem-Betriebsart (die im folgenden als Multiprozes­ sorbetriebsart bezeichnet wird) eingestellt werden kann.
Diese Aufgabe wird mit den Merkmalen der unabhängigen An­ sprüche gelöst. Abhängige Ansprüche sind auf bevorzugte Aus­ führungsformen der Erfindung gerichtet.
Ein Datenverarbeitungssystem hat eine Multiprozessorbetrieb- Steuereinrichtung, die einen unabhängigen Betrieb von n Pro­ zessorelementen gestattet, und eine Parallelbetrieb-Steuer­ einrichtung, die n Prozessorelementen einen mit einem Grund­ takt synchronisierten Parallelbetrieb erlaubt.
Die Parallelbetrieb-Steuereinrichtung ist in die einzelnen Prozessorelemente eingebaut.
Ferner sind in Verbindung mit der Multiprozessorbetrieb- Steuereinrichtung oder innerhalb dieser ein Kommunikations­ bus für die Übertragung von Daten, Adressen, Steuersignalen und dergleichen zwischen den Prozessorelementen, eine Bus- Vorrangschaltung, die die Verwaltung des Kommunikationsbus­ ses übernimmt, und eine Synchronisationseinrichtung für die Schaffung einer Synchronisation zwischen den Prozessorele­ menten vorgesehen.
Durch die Multiprozessor-Steuereinrichtung kann das Daten­ verarbeitungssystem in der Multiprozessorbetriebsart betrie­ ben werden, in der n Prozessorelemente unabhängig voneinan­ der arbeiten. Ferner ist diese Steuereinrichtung dazu vorge­ sehen, eine Synchronisation und Kommunikation zwischen den von den einzelnen Prozessorelementen abzuarbeitenden Pro­ grammen mit hoher Geschwindigkeit auszuführen.
Die Parallelbetrieb-Steuereinrichtungen dienen der Schaf­ fung einer Synchronisation zwischen den n Prozessorelementen. In der Parallelbetriebsart wird von den einzelnen Prozessorelementen ein Register geändert. Wenn daher aufgrund der Ausführung eines Befehls auf ein Register Bezug genommen wird, stellen die jeweils in ei­ nem Prozessorelement eingebauten Parallelbetrieb-Steuer­ einrichtungen fest, ob das betreffende Register dasjenige des ihnen jeweils zugeordneten Prozessorelementes ist; wenn die Antwort für eine betreffende Parallelbetrieb- Steuereinrichtung positiv ist, wird der Inhalt des Regi­ sters an das den Befehl ausführende Prozessorelement ge­ schickt.
Wenn die programminterne Parallelität eines Programms hoch ist, sollte dieses Programm vorzugsweise in der Par­ allelbetriebsart abgearbeitet werden. Wenn andererseits eine Mehrzahl von Programmen trotz einer geringen pro­ gramminternen Parallelität für eine parallele Abarbeitung geeignet sind, sollte das Datenverarbeitungssystem vor­ zugsweise in der Multiprozessorbetriebsart betrieben wer­ den. Aus diesem Grund wird ein Parallelitäts-Zustandsbit vorgesehen, das anzeigt, ob das erfindungsgemäße Daten­ verarbeitungssystem in der Multiprozessorbetriebsart oder in der Parallelbetriebsart arbeitet. Wenn das Paralleli­ täts-Zustandsbit die Multiprozessorbetriebsart anzeigt, wird die Funktion der Parallelbetrieb-Steuereinrichtungen unterdrückt oder unterbrochen. Wenn das Parallelitäts-Zu­ standsbit andererseits die Parallelbetriebsart anzeigt, wird die Funktion der obenerwähnten Multiprozessorbe­ trieb-Steuereinrichtung unterdrückt oder unterbrochen.
Der Kommunikationsbus wird für die Abarbeitung von Pro­ grammen verwendet, die über ein Zusammenwirken der Prozessorelemente in der Multiprozessorbetriebsart bewerk­ stelligt wird und in der der Kommunikationsbus der Daten­ übertragung dient.
Die Bus-Vorrangschaltung besitzt Funktionen wie etwa die Verwaltung oder die Zuteilung des jeweiligen Rechts auf Benutzung des Kommunikationsbusses. Genauer garantiert die Bus-Vorrangschaltung in einem Fall, in dem eines der Prozessorelemente eine Datenübertragung über den Kommuni­ kationsbus ausführen soll, das Recht auf Benutzung des Kommunikationsbusses für dieses Prozessorelement entspre­ chend der diesem Element zugeteilten Priorität.
Die Synchronisationseinrichtung dient dem Halten von übertragenen Daten, ohne diese zu verändern, der Unter­ brechung und dem Neustart von Prozessorelementen sowohl aufgrund einer Datenübertragung zwischen den Prozessore­ lementen als auch aufgrund einer Synchronisation.
Für die Verwirklichung der Parallelbetriebsart (Superskalar-Computersystem-Betrieb) können die einzelnen Prozessorelemente auf ein und demselben LSI-Chip oder derselben LSI-Karte angeordnet werden. Im Hinblick auf den Fall, in dem eine Mehrzahl von Programmen in gegen­ seitiger Kooperation ablaufen, ist es vorteilhaft, die Prozessorelemente nahe beieinander anzuordnen, um zwi­ schen der Mehrzahl der Programme eine Hochgeschwindig­ keits-Synchronisation und -Kommunikation zu ermöglichen.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung, wird ein Datenverarbeitungssystem geschaffen, das fol­ gende Einrichtungen umfaßt: Eine Mehrzahl von Adressenin­ formation ausgebenden Prozessoren, einen Adressenüberset­ zungspuffer, der wenigstens eine Mehrzahl von Lesekanälen für die Übersetzung von Adresseninformation von den ein­ zelnen Prozessoren in bestimmte Adressen aufweist, einen Cachespeicher mit einem in eine Mehrzahl von Cache-Bänken unterteilten Datenspeicherbereich, einen Bankselektor für die Wahl der durch die Adresseninformation vom Prozessor bestimmten Bank und einen Datenselektor, der auf der Grundlage der Adresseninformation vom Prozessor und der vom Adressenübersetzungspuffer ausgegebenen Information entscheidet, ob in der vom Bankselektor ausgewählten Bank Daten vorhanden sind, um die in der ausgewählten Bank vorhandenen Daten an den bezeichneten Prozessor zu über­ tragen, wenn die Antwort der Entscheidung positiv ist.
Gemäß einem weiteren Aspekt wird ein Datenverarbeitungssystem geschaffen, das fol­ gende Einrichtungen umfaßt: Eine Mehrzahl von Prozesso­ ren, einen Befehlsadressen-Übersetzungspuffer, der wenig­ stens eine Mehrzahl von Lesekanälen für die Übersetzung von Befehlsadresseninformation von den Prozessoren in eine bestimmte Befehlsadresse aufweist, einen Datenadres­ sen-Übersetzungspuffer, der wenigstens eine Mehrzahl von Lesekanälen für die Übersetzung von Datenadresseninforma­ tion von den Prozessoren in eine bestimmte Datenadresse aufweist, einen Befehls-Cachespeicher mit einem in eine Mehrzahl von Befehlsbänken unterteilten Datenspeicherbe­ reich, einen Daten-Cachespeicher mit einem in eine Mehr­ zahl von Datenbänken unterteilten Datenspeicherbereich, einen Befehlsbank-Selektor für die Auswahl der von der Befehlsadresseninformation vom Prozessor bestimmten Be­ fehlsbank, einen Datenbank-Selektor für die Auswahl der von der Datenadresseninformation vom Prozessor bestimmten Datenbank, eine Befehls-Entscheidungseinrichtung, die auf der Grundlage der Befehlsadresseninformation vom Prozes­ sor und der vom Befehlsadressen-Übersetzungspuffer ausgegebenen Information entscheidet, ob in der vom Befehls­ bank-Selektor ausgewählten Bank Daten vorhanden sind, eine Daten-Entscheidungseinrichtung, die auf der Grund­ lage der Datenadresseninformation vom Prozessor und der vom Datenadressen-Übersetzungspuffer ausgegebenen Infor­ mation entscheidet, ob in der vom Datenbank-Selektor aus­ gewählten Bank Daten vorhanden sind, einen befehlsorien­ tierten Datenselektor für die Übertragung von Daten von der vom Befehlsbank-Selektor ausgewählten Bank an den be­ zeichneten Prozessor, wenn die Antwort der von der Be­ fehls-Entscheidungseinrichtung getroffenen Entscheidung positiv ist, und einen datenorientierten Datenselektor für die Übertragung von Daten von der vom Datenbank-Se­ lektor ausgewählten Bank an den bezeichneten Prozessor, wenn die Antwort auf die von der Daten-Entscheidungsein­ richtung getroffene Entscheidung positiv ist.
In beiden obenbeschriebenen Datenverarbeitungssystemen kann der Adressenübersetzungsbereich des Adressenüberset­ zungspuffers in eine virtuelle Seite und eine physikali­ sche Seite unterteilt werden, ferner kann der Speicherbe­ reich des Cachespeichers in eine physikalische Seite und einen Datenbereich unterteilt werden, schließlich kann der Bankselektor einen ersten Selektor umfassen, der die Information der physikalischen Seite der durch die Adres­ seninformation vom Prozessor bezeichneten Cache-Bank wählt. Ferner kann die Entscheidungseinrichtung einen er­ sten Komparator, der die Adresseninformation vom Prozes­ sor mit der Information der virtuellen Seite des Adressenübersetzungspuffers vergleicht, um festzustellen, ob eine Adressenübersetzung erfolgreich beendet worden ist, einen zweiten Komparator für den Vergleich der vom ersten Selektor ausgegebenen Information mit der Informa­ tion der phyiskalischen Seite des Adressenübersetzungspuffers, um festzustellen, ob die der Information der physikalischen Seite entsprechenden Daten im Cachespei­ cher vorhanden sind, und einen dritten Komparator für die Entscheidung, ob die Antworten der vom ersten und vom zweiten Komparator getroffenen Entscheidungen beide posi­ tiv sind, umfassen. Zusätzlich kann der Datenselektor einen zweiten Selektor für die Auswahl von Daten aus der durch die Adresseninformation vom Prozessor bezeichneten Bank und einen dritten Selektor für die Übertragung der vom zweiten Selektor ausgewählten Daten an den bezeichne­ ten Prozessor aufgrund der Ausgabe eines positiven Entscheidungsergebnisses vom dritten Komparator enthal­ ten.
In einer weiteren Ausführungsform ist der Bankselektor so konfiguriert, daß er die Bank entsprechend einer bestimm­ ten Prioritäts-Reihenfolge wählt, wenn die Bank gleich­ zeitig von einer Mehrzahl von Prozessoren bezeichnet wor­ den ist.
In einer weiteren Ausführungsform kann der Adressenübersetzungspuffer eine Mehrzahl von Lesekanälen und wenigstens einen Schreibkanal aufweisen.
Ferner kann jede Bank des Cachespeichers einen Speicher mit einem Lesekanal und einem Schreibkanal umfassen.
In einer weiteren Ausführungsform kann jeder der Befehlsadressen-Übersetzungspuffer und der Befehls- Cachespeicher mit einem Lesekanal und einem Schreibkanal versehen werden, während der Datenadressen-Übersetzungs­ puffer mit einer Mehrzahl von Lesekanälen und wenigstens einem Schreibkanal versehen werden kann.
Gemäß einer weiteren Ausführungsform kann jeder der Pro­ zessoren eine Mehrzahl von Recheneinheiten, eine Mehrzahl von mit einer Adressenleitung und einer Datenleitung verbundenen Befehlsdekodern, eine Registerdatei mit einer Mehrzahl von Kanälen für die Ausführung eines Informationsaustauschs mit den Prozessoren, eine Mehrzahl von mit jeder der Recheneinheiten und der Registerdatei verbundenen Speicheradressenregistern und eine Mehrzahl von mit jeder der Recheneinheiten und der Registerdatei verbundenen Speicherdatenregistern enthalten.
Vorzugsweise werden die einzelnen Bauelemente auf ein einzelnes Halbleitersubstrat einer integrierten Schaltung gepackt oder auf diesem angeordnet.
Das Datenverarbeitungssystem kann eine Multiplex-Einrichtung, über die der Adressenübersetzungs­ puffer und der Hauptspeicher miteinander verbunden sind, und eine Multiplex-Einrichtung, über die der Cachespei­ cher und der Hauptspeicher miteinander verbunden sind, enthalten.
Der obenerwähnte Datenselektor überträgt Daten vom Haupt­ speicher an einen bestimmten Prozessor, wenn das Ergebnis der von der Entscheidungseinrichtung getroffenen Ent­ scheidung negativ ist.
Da der Adressenübersetzungspuffer in einer Multikanal- Konfiguration mit einer Mehrzahl von Lesekanälen imple­ mentiert ist und da der Cachespeicher in eine Mehrzahl von Cache-Bänken unterteilt ist, können die einzelnen Prozessoren (oder Prozessorelemente) gleichzeitig auf den Adressenübersetzungspuffer zugrei­ fen, während sie auf verschiedene Bänke zugreifen. Kraft dieses Merkmals können die einzelnen Prozessorelemente gleichzeitig unabhängig voneinander auf die Cache-Bänke zugreifen, solange kein gleichzeitiger Zugriff auf ein und dieselbe Bank vorkommt. Selbst wenn daher eine große Datenmenge von den einzelnen Prozessorelementen gemeinsam genutzt wird, kann die Cache-Trefferrate erhöht werden, so daß die einzelnen Prozessorelemente entsprechende Vearbeitungen parallel ausführen können.
Weitere Aufgaben, Merkmale und Vorteile der Erfindung sind in den Neben- und Unteransprüchen angegeben.
Die Erfindung wird im folgenden anhand bevorzugter Aus­ führungsformen mit Bezug auf die Zeichnungen näher erläu­ tert; es zeigen:
Fig. 1 ein Blockschaltbild des allgemeinen Aufbaus eines Datenverarbeitungssystems,
Fig. 2 ein Blockschaltbild des allgemeinen Aufbaus eines Datenverarbeitungssystems gemäß einer weiteren Ausführungsform, in der ein Befehls-Cachespeicher und ein Daten-Cachespeicher getrennt vorgesehen sind;
Fig. 3 ein Blockschaltbild zur detaillierten Erläu­ terung von internen Strukturen der im Daten­ verarbeitungssystem von Fig. 2 eingebauten Prozessorelemente;
Fig. 4, 5 Blockschaltbilder, die jeweils interne Struk­ turen einer Cachespei­ cher-Steuerung darstellen;
Fig. 6 eine Darstellung zur Erläuterung von Opera­ tionen oder Funktionen einer Multiprozessorbe­ trieb-Steuereinrichtung;
Fig. 7 ein schematisches Schaltbild einer internen Struktur der Multiprozessorbetrieb-Steuerein­ richtung, die exklusiv für die Ausführung ei­ ner Steuerfunktion entworfen ist;
Fig. 8 ein Blockschaltbild einer internen Struktur der Multiprozessorbetrieb-Steuereinrichtung für die Koordinierung von Befehlen zwischen den Prozessorelementen;
Fig. 9 eine Darstellung zur Erläuterung von Beispie­ len für die Befehlsformate zur Koordinierung der Operationen der Prozessorelemente;
Fig. 10 eine interne Struktur einer Synchronisations­ einrichtung für die Kombination eines Be­ fehlsformats und eines Synchronisationssche­ mas;
Fig. 11 ein Blockschaltbild einer internen Struktur einer Bus-Vorrangschaltung;
Fig. 12 ein Blockschaltbild einer internen Struktur der Synchronisationseinrichtung, die einer weiteren Kombination des Befehlsformats mit dem Synchronisationsschema entspricht;
Fig. 13 ein Blockschaltbild einer entsprechenden in­ ternen Struktur der Bus-Vorrangschaltung;
Fig. 14 ein Blockschaltbild einer internen Struktur der Prioritätsreihenfolge-Bestimmungsschal­ tung, die so beschaffen ist, daß sie in den in den Fig. 11 und 13 gezeigten Hardware- Strukturen verwendet werden kann;
Fig. 15 eine Darstellung einer internen Struktur ei­ ner weiteren Synchronisationseinrichtung;
Fig. 16-20 Impulsdiagramme zur Erläuterung von Operatio­ nen, die bei der Abarbeitung eines Register­ übertragungsbefehls auftreten;
Fig. 21 ein Impulsdiagramm zur Erläuterung von Opera­ tionen, die bei der Abarbeitung eines Unter­ brechungs-Befehls und eines Neustart-Befehls auftreten;
Fig. 22, 23 Flußdiagramme zur Erläuterung einer Betriebs­ system-Steuerung zum Umschalten von einer Multiprozessorbetriebsart zu einer Parallel­ betriebsart und umgekehrt;
Fig. 24 ein Blockschaltbild des allgemeinen Aufbaus eines Datenverarbeitungssystems gemäß einer weiteren Ausführungsform;
Fig. 25 ein Schaltbild der Struktur eines Speichers mit zwei Lesekanälen und einem Schreibkanal;
Fig. 26 ein Blockschaltbild eines Speichers mit n Le­ sekanälen und einem Schreibkanal;
Fig. 27 ein Blockschaltbild einer typischen Struktur einer Befehlsdaten-Wählschaltung;
Fig. 28 ein Blockschaltbild einer typischen Struktur einer Daten-Wählschaltung;
Fig. 29 ein Blockschaltbild einer Struktur eines Da­ tenadressen-Übersetzungspuffers, der unter Verwendung eines Multikanalspeichers imple­ mentiert wird;
Fig. 30 ein Blockschaltbild eine Struktur zum Ver­ binden eines herkömmlichen Multiprozessors mit einem Hauptspeicher mittels Multiplex- Einrichtungen; und
Fig. 31 ein Blockschaltbild einer typischen Struktur eines i-ten Prozessors.
In Fig. 1 ist ein Blockschaltbild des allgemeinen Aufbaus eines Datenverarbeitungssystems gemäß einer ersten Ausführungsform.
In dieser Figur bezeichnen die Bezugszeichen A2 und A3 jeweils ein Prozessorelement, das unter Verwendung von Befehlen und von Daten, die aus einem Cachespeicher oder einer Speichereinrichtung, die auch als Hauptspeicher be­ zeichnet wird, ausgelesen werden, Rechenoperationen ausführt. Obwohl in dem in Fig. 1 gezeigten Datenverarbei­ tungssystem angenommen wird, daß die Anzahl der Prozesso­ relemente zwei ist, ist die vorliegende Erfindung selbst­ verständlich nicht auf irgendeine bestimmte Anzahl von Prozessorelementen beschränkt. Um der Einfachheit willen wird jedoch die folgende Beschreibung unter der Annahme gegeben, daß die Anzahl der Prozessorelemente zwei ist. Die Speichereinrichtung oder der Hauptspeicher A4 ist so beschaffen, daß in ihm Programme, Daten und dergleichen gespeichert werden können, während der Cachespeicher A5 so beschaffen ist, daß er der vorübergehenden Speicherung von aus dem Hauptspeicher A4 ausgelesenen Befehlen und Daten dient. Es wird angenommen, daß der Cachespeicher A5 durch einen Mehrkanal-Cachespeicher gebildet wird. Ge­ nauer wird der Cachespeicher A5 dann, wenn die Anzahl der im Datenverarbeitungssystem A1 enthaltenen Prozessorele­ mente (z. B. A2, A3) allgemein durch n (n ganze Zahl grö­ ßer als 1) dargestellt wird, als Mehrkanal-Cachespeicher mit n Eingangs/Ausgangskanälen oder mit n Eingangskanälen und n Ausgangskanälen und zusätzlich mit n Adressenein­ gangskanälen (auf die über eine Cachespeicher-Steuerung A6, die später beschrieben wird, zugegriffen wird) imple­ mentiert. Das Bezugszeichen A11 bezeichnet einen Grund­ taktgeber für die Erzeugung eines Taktsignals, das in den Prozessorelementen A2 und A3 und in einer Multipro­ zessorbetrieb-Steuereinrichtung A8 verwendet wird.
Im allgemeinen umfaßt das durch den Prozessor A1 typi­ sierte Datenverarbeitungssystem zwei Betriebsarten. Diese sind durch eine Multiprozessorbetriebsart, in der eine Mehrzahl (n) von Prozessorelementen (z. B. zwei im Falle des erläuterten Prozessorsystems) unabhängig voneinander arbeiten, und durch eine Parallelbetriebsart, in der die Mehrzahl von Prozessorelementen parallel und synchron zum Grundtakt arbeiten, gegeben. Als Einrichtungen für die Steuerungen der zwei obenerwähnten Betriebsarten sind zwei Typen von Steuereinrichtungen vorgesehen. Sie sind durch eine Multiprozessorbetrieb-Steuereinrichtung A8 bzw. durch Parallelbetrieb-Steuereinrichtungen A9 und A10 gegeben. Von diesen zwei Typen von Steuereinrichtungen dienen die Parallelbetrieb-Steuereinrichtungen A9 und A10 für die Steuerung der Synchronisation zwischen den Pro­ zessorelementen und dem von diesen Prozessorelementen ge­ meinsam genutzten Register (was im folgenden mit Bezug auf Fig. 3 beschrieben wird). Im Zusammenhang mit der ge­ meinsamen Nutzung des Registers prüfen die Parallelbe­ trieb-Steuereinrichtungen A9 und A10, ob zwischen den von den zugehörigen Prozessorelementen abgearbeiteten Befeh­ len eine Konkurrenz bezüglich des Registers (die auch als Registerkonflikt bezeichnet wird) auftritt. Wenn festge­ stellt wird, daß ein Registerkonflikt auftritt, wird die Befehlsabarbeitung durch eines der Prozessorelemente ver­ zögert, um den Registerkonflikt aufzuheben oder zu lösen. Nebenbei sei festgestellt, daß eine Hardware-Konfi­ guration denkbar ist, in der weder eine Prüfung noch eine Aufhebung des Registerkonflikts ausgeführt wird; dies be­ deutet jedoch, daß das Datenverarbeitungssystem oder der Prozessor A1 nicht als Superskalar-Prozessor, sondern als VLIW-Prozessor (Prozessor für sehr lange Befehlswörter) arbeitet.
Für die Anzeige, ob das Datenverarbeitungssystem oder kurz der Prozessor A1 Befehle in der Multiprozessorbe­ triebsart oder in der Parallelbetriebsart ausführt, wird ein Parallelitäts-Zustandsbit A7 vorgesehen. Wenn dieses Zustandsbit A7 die Multiprozessorbetriebsart anzeigt, werden die Operationen der Parallelbetrieb-Steuereinrich­ tungen A9 und A10, die in den einzelnen Prozessorelementen A2 und A3 vorgesehen sind, unterdrückt oder unterbro­ chen. Wenn das Zustandsbit A7 hingegen die Parallelbe­ triebsart anzeigt, wird die Operation der Multiprozessor­ betrieb-Steuereinrichtung A8 unterbrochen.
Das Setzen des Parallelitäts-Zustandsbits A7 wird durch einen privilegierten Befehl ausgeführt, der nur von einem Betriebssystem, kurz OS, abgearbeitet werden kann. Es wird jedoch darauf hingewiesen, daß auch ein dem Prozes­ sorsystem extern zugeführtes Eingangssignal anstelle des Parallelitäts-Zustandsbits A7 verwendet werden kann. Das Betriebssystem oder OS kann das Parallelitäts-Zustandsbit A7 auf der Grundlage des Ergebnisses einer Entscheidung bezüglich des Grades oder des Ausmaßes einer Programmpar­ allelität, die später beschrieben wird, gesetzt werden.
In Fig. 1 bezeichnet das Bezugszeichen A6 eine Cachespei­ cher-Steuerung, die zur Änderung oder Abwandlung der Breite und der Anzahl der aus dem Cachespeicher A5 ausge­ lesenen Daten oder der in den Cachespeicher A5 geschrie­ benen Daten entsprechend der für das Parallelitäts-Zu­ standsbit A7 gesetzten Werte dient. Wenn das Paralleli­ täts-Zustandsbit A7 die Multiprozessorbetriebsart an­ zeigt, führen die n Prozessorelemente (zwei Prozessorele­ mente im Falle des erläuterten Systems) asynchron Lese- /Schreiboperationen von Befehlen und Daten aus. Wenn da­ her die Bitbreite, mit der Lese-/Schreiboperationen von Daten und/oder Befehlen von einem Prozessorelement ausge­ führt werden, mit k bezeichnet wird, müssen die Bedingun­ gen für den Zugriff auf den Cachespeicher A5 folglich so festgesetzt werden, daß auf den Cachespeicher unter Ver­ wendung von n Adresseneingängen mit n Eingaben/Ausgaben mit je k Bits zugegriffen werden kann. Wenn das Paralle­ litäts-Zustandsbit A7 andererseits die Parallelbetriebsart anzeigt, führen n Prozessorelemente synchron Lese- /Schreiboperationen von Befehlen und/oder Daten aus. In diesem Fall wird der Befehl aus dem Cachespeicher A5 mit einer Ausgabe von (n . k) Bits unter Verwendung eines Adresseneingangs ausgelesen. Es wird jedoch darauf hinge­ wiesen, daß die Lese-/Schreiboperationen von Daten für den Cachespeicher A5 in der Parallelbetriebsart auf ähn­ liche Weise wie in der Multiprozessorbetriebsart ausge­ führt werden.
Die Prozessorelemente A2 und A3, in die die Parallelbe­ trieb-Steuereinrichtungen A9 bzw. A10 eingebaut sind, der Cachespeicher A5, die Cachespeicher-Steuereinrichtung A6, das Parallelitäts-Zustandsbit A7, die Multiprozessorbe­ trieb-Steuereinrichtung A8 und der Grundtakt-Geber A11 arbeiten so zusammen, daß sie zusammen den allgemein mit dem Bezugszeichen A1 bezeichneten Prozessor oder das Datenverarbeitungssystem bilden. Obwohl es möglich ist, die verschiedenen funktionalen Bestandteile des Prozes­ sors A1, die oben aufgezählt worden sind, jeweils auf verschiedenen Karten oder Boards zu verwirklichen, wird für die vorliegende Ausführungsform angenommen, daß der Prozessor A1 vollständig in Form einer Einchip-LSI-Schal­ tung implementiert oder auf einem einzigen Board montiert ist. In Fig. 1 ist der Prozessor A1 mit dem Hauptspeicher A4 in einer 1 : 1-Entsprechung verbunden. Es wird jedoch darauf hingewiesen, daß eine Mehrzahl von Prozessoren wie der mit A1 bezeichnete Prozessor mit dem Hauptspeicher A4 verbunden werden können, um auf diese Weise ein Multipro­ zessor-Datenverarbeitungssystem mit gemeinsam genutztem Speicher zu verwirklichen.
In Fig. 1 bezeichnen die Bezugszeichen a1 bis a9 Daten­ leitungen, Adressenleitungen, Steuerleitungen und Signalleitungen. Genauer bezeichnet das Bezugszeichen a1 eine Ausgangsleitung für das Parallalitäts-Zustandsbit A7, über die eine 1-Bit-Information, die entweder die Multiprozessorbetriebsart oder Parallelbetriebsart an­ zeigt, an die Cache-Steuereinrichtung A6 bzw. an die Multiprozessorbetrieb-Steuereinrichtung A8 bzw. an die Parallelbetrieb-Steuereinrichtungen A9 und A10 übertragen wird. Die Bezugszeichen a2 und a3 bezeichnen Datenleitun­ gen, die für die Übertragung von Daten und Befehlen zwi­ schen den Prozessorelementen A2 und A3 und dem Cachespei­ cher A5 verwendet werden. Jede der Datenleitungen a2 und a3 besitzt eine Referenzbreite, die beispielsweise im Be­ reich zwischen 32 Bits und 128 Bits liegt. Die Bezugszei­ chen a4 und a5 bezeichnen Adressenleitungen, die für die Bezeichnung von Befehls- oder Datenadressen verwendet werden. Genauer überträgt die Cache-Steuereinrichtung A6 in Abhängigkeit von der durch das Parallelitäts-Zustands­ bit A7 angezeigten Betriebsart die Adressensignale a4 und a5 von den Prozessorelementen A2 bzw. A3 an den Cache­ speicher A5. Die Bezugszeichen a6 und a7 bezeichnen Si­ gnalleitungen, die die Multiprozessorbetrieb-Steuerein­ richtung A8 mit den Prozessorelementen A2 bzw. A3 verbin­ den. Daher werden diese Signalleitungen a6 und a7 nur in der Multiprozessorbetriebsart verwendet. Jede der Signal­ leitungen a6 und a7 enthält eine Adressenleitung, eine Datenleitung und eine Steuerleitung. Das Bezugszeichen aß bezeichnet eine Ausgangssignalleitung des Grundtaktgebers A11, über die das Taktsignal an die Prozessorelemente A2 und A3 und an die Multiprozessorbetrieb-Steuereinrichtung A8 übertragen wird. Schließlich bezeichnet das Bezugszei­ chen a9 allgemein oder zusammenfassend Datenleitungen und Steuerleitungen für die Kommunikation zwischen mehreren Multiprozessorbetrieb-Steuereinrichtungen eines Multipro­ zessor-Datenverarbeitungssystems, das eine Mehrzahl von Prozessoren aufweist, die jeweils eine Struktur wie der Prozessor A1 besitzen.
In Fig. 2 ist ein Blockschaltbild des allgemeinen Aufbaus eines Prozessors (oder Datenverarbeitungssystems) gemäß einer weiteren Ausführungsform gezeigt, in der der in Fig. 1 gezeigte Cachespeicher A5 in einen Befehls-Cachespeicher und einen Daten-Cachespei­ cher aufgeteilt ist. In Fig. 2 bezeichnen die Bezugszei­ chen A1 bis A4, A6 bis A11, a1 und a4 bis a9 die gleichen Teile oder Einrichtungen bzw. Signalleitungen wie die entsprechenden Bezugszeichen in Fig. 1. In Fig. 2 be­ zeichnen die Bezugszeichen B1 und B2 einen Befehls-Cache­ speicher bzw. einen Daten-Cachespeicher, die getrennt voneinander Befehle bzw. Daten halten. Das Bezugszeichen B3 bezeichnet einen Selektor, der bei einer Blockübertra­ gung zwischen den Cachespeichern B1 und B2 und dem Haupt­ speicher A4 aktiviert wird, um im Falle eines zu übertra­ genden Befehls eine Verbindung zwischen dem Befehls- Cachespeicher B1 und dem Hauptspeicher A4 und im Falle einer Datenübertragung eine Verbindung zwischen dem Da­ ten-Cachespeicher B2 und dem Hauptspeicher A4 herzustel­ len. Die Bezugszeichen b1 und b2 bzw. b3 und b4 bezeich­ nen Datenleitungen. Die Datenleitungen b1 und b2 werden für die Übertragung von Befehlen zwischen dem Befehls- Cachespeicher B1 und den Prozessorelementen A2 bzw. A3 verwendet. Die Datenleitungen b3 und b4 werden für eine Datenübertragung zwischen dem Daten-Cachespeicher B2 und den Prozessorelementen A2 bzw. A3 verwendet. Da von den Prozessorelementen A2 und A3 aus nicht in den Befehls- Cachespeicher B1 geschrieben werden kann, arbeiten die vom Befehls-Cachespeicher B1 ausgehenden Datenleitungen b1 und b2 nur im Ausgabemodus.
Der Befehls-Cachespeicher B1 und der Daten-Cachespeicher B2 werden jeweils von einem Mehrkanal-Cachespeicher ge­ bildet, von dem angenommen wird, daß er n Adressenein­ gangskanäle und n Eingangs-/Ausgangskanäle besitzt.
Es wird jedoch darauf hingewiesen, daß der Befehls-Cache­ speicher B1 nur Ausgangskanäle und keine Eingangskanäle besitzt. Bei Verwendung des Multikanal-Cachespeichers als Daten-Cachespeicher kann das Lesen und Schreiben von Da­ ten von n Prozessorelementen unabhängig und getrennt von­ einander sowohl in der Multiprozessorbetriebsart als auch in der Parallelbetriebsart ausgeführt werden. Daher kön­ nen für die n Adresseneingänge an den Daten-Cachespeicher B2 die Adressenleitungen, die von den einzelnen Prozessorelementen ausgehen, ohne Abwandlung verwendet werden. Das Lesen eines Befehls vom Befehls-Cachespeicher wird in der Multiprozessorbetriebsart von den einzelnen Prozessorelementen unabhängig und getrennt voneinander ausgeführt, während in der Parallelbetriebsart jedes der Prozessorelemente n aufeinanderfolgende Befehle holt, um sie abzuarbeiten. Wenn daher das Parallelitäts-Zustands­ bit A7 die Multiprozessorbetriebsart anzeigt, können die Adressen der n Prozessorelemente direkt und unabhängig voneinander in den Befehls-Cachespeicher B1 eingegeben werden. Wenn das Parallelitäts-Zustandsbit A7 anderer­ seits die Parallelbetriebsart anzeigt, wird nur die Adressenleitung des ersten Prozessorelementes verwendet. Eine Struktur der Cachespeicher-Steuerung A6, die zur Ausführung der obenerwähnten Steuerungen implementiert wird, wird später mit Bezug auf die Fig. 4f. beschrieben.
In Fig. 3 ist ein Blockschaltbild zur Erläuterung einer internen Struktur der Prozessorelemente A2 und A3 ein­ schließlich der Bauelemente der entsprechenden Parallelbetrieb-Steuereinrichtungen A9 und A10 gezeigt. Für die Beschreibung wird angenommen, daß jedes Prozessorelement A2 oder A3 selbst von einem Superskalar-Prozessor gebil­ det wird, der zwei Befehle parallel abarbeiten kann. Ge­ nauer arbeitet in der Multiprozessorbetriebsart des Prozessorsystems A1 jedes der Prozessorelemente unabhän­ gig zwei Befehle parallel ab, während in der Parallelbe­ triebsart die Prozessorelemente parallel und synchron zum Takt des Grundtaktgebers A11 vier Befehle abarbeiten. In Fig. 3 bezeichnen die Bezugszeichen A1 bis A4, A6 bis A8, A11, a1 und a4 bis a9 die gleichen funktionalen Teile oder Einrichtungen und Signalleitungen wie in Fig. 1. Ferner bezeichnen die Bezugszeichen B1 bis B3 und b1 bis b4 die gleichen funktionalen Einheiten und Signalleitun­ gen wie in Fig. 2.
In Fig. 3 bezeichnen die Bezugszeichen D1 bis D4 jeweils ein Befehlspufferregister, das zum temporären Halten ei­ nes aus dem Befehls-Cachespeicher B1 ausgelesenen Befehls dient. Die Bezugszeichen D5 bis D8 bezeichnen jeweils einen Dekoder, der zur Dekodierung von in einem der Be­ fehlspufferregister D1 bis D4 enthaltenen Befehl dient. Die Bezugszeichen D9 und D10 bezeichnen Selektoren, die verschiedene Steuerungen ermöglichen, die in den Dekodern in der Multiprozessorbetriebsart bzw. in der Parallelbe­ triebsart ausgeführt werden sollen. Die Bezugszeichen D11 bis D14 bezeichnen Recheneinheiten (ALU), während die Be­ zugszeichen D15 und D16 Registerdateien bezeichnen, die jeweils von zwei der obenerwähnten Recheneinheiten, näm­ lich von D11 und D12 bzw. von D13 und D14 gemeinsam ge­ nutzt werden. Das Bezugszeichen D17 bezeichnet Torschal­ tungen, die eine Übertragung der Werte der Register zwi­ schen den Prozessorelementen A2 und A3 zulassen oder sperren.
Ferner bezeichnen die Bezugszeichen d1 und d2 Lesebusse, mittels derer die Recheneinheiten D11 und D12 bzw. D13 und D14 auf die Registerwerte in den jeweiligen Prozes­ sorelementen A2 und A3 Bezug nehmen können, während die Bezugszeichen d3 und d4 Speicherbusse bezeichnen, die zum Speichern von Daten in den Registern der Registerdateien verwendet werden. Zusätzlich sind ein Globallesebus d5 und ein Globalspeicherbus d6 vorgesehen, mittels derer von den Prozessorelementen in der Parallelbetriebsart auf die Registerwerte zugegriffen werden kann. Schließlich bezeichnen die Bezugszeichen d7 bis d10 Signalleitungen für die Steuerung der Befehlsdekoder D5 bis D8. Wie aus Fig. 3 ersichtlich, arbeiten die Selektoren D9 und D10, die Torschaltungen D17 und Signalleitungen d5 bis d10 so zusammen, daß sie die Parallelbetrieb-Steuereinrichtungen A9 und A10 ergeben.
Jedes der Prozessorelemente A2 und A3 führt in der Multi­ prozessorbetriebsart unabhängig von und parallel zu ande­ ren Prozessorelementen synchron zum Grundtakt zwei Be­ fehle aus. Wenn daher ein Befehl eine Länge von k Bits besitzt, muß jede der Signalleitungen b1 und b2, die den Befehls-Cachespeicher B1 mit den Befehlspufferregistern D1 und D2 bzw. D3 und D4 verbinden, entsprechend den zwei Befehlen eine Datenbreite von 2k Bits besitzen, so daß die Befehle an die Register D1 bis D4 jeweils auf einer k-Bit-Basis geschickt werden können. Nun werden die Ope­ rationen betrachtet, wenn das erste Prozessorelement A2 zwei Befehle parallel abarbeitet. Die Befehle im ersten und im zweiten Befehlspufferregister D1 und D2 werden vom ersten bzw. vom zweiten Dekoder D5 bzw. D6 dekodiert. Die Recheneinheiten D11 und D12 und die Registerdatei D15 werden entsprechend den dekodierten Befehlen gesteuert. Aus der ersten Registerdatei D15 werden über den Lesebus d1 die durch die Operanden der Befehle bezeichneten Regi­ sterinhalte ausgelesen, woraufhin von der ersten und der zweiten Recheneinheit D11 bzw. D12 für die aus der Regi­ sterdatei D15 ausgelesenen Daten die durch Operations­ kodes der Befehle bezeichneten Rechenoperationen parallel ausgeführt werden. Die Ergebnisse der Rechenoperationen werden über den Speicherbus d3 in der Registerdatei D15 gespeichert.
An dieser Stelle wird darauf hingewiesen, daß in einer Mehrzahl von Befehlen, die gleichzeitig durch das Prozes­ sorelement A2 abgerufen werden, Befehlskombinationen ent­ halten sein können, die aus befehlsinternen Gründen nicht parallel abgearbeitet werden können. Eine solche Kombina­ tion stellt einen typischen Fall dar, in dem zwischen ei­ nem ersten und einem zweiten Befehl eine Registerkonkur­ renz oder ein Registerkonflikt auftritt. Wenn daher ein Bestimmungsregister für einen ersten Befehl (d. h. ein Re­ gister, das zum Speichern des Ergebnisses einer durch den ersten Befehl ausgeführten Rechenoperation bestimmt ist) als Quellregister für einen zweiten Befehl (d. h. ein Re­ gister, das zum Halten eines Wertes bestimmt ist, auf den bei der Abarbeitung des zweiten Befehls zugegriffen wird) bestimmt wird, ist es unmöglich, diese beiden Befehle parallel abzuarbeiten. Das bedeutet, daß nur der erste Befehl ausgeführt werden kann, während mit der Ausführung des zweiten Befehls solange gewartet werden muß, bis das Ergebnis der Ausführung des ersten Befehls erhalten wor­ den ist. Die Parallelbetrieb-Steuereinrichtung A9 (siehe die Fig. 1 und 3) besitzt daher sowohl die Funktion des Aufhebens oder Lösens eines solchen Registerkonflikts als auch eine Funktion zur Verwirklichung einer gemeinsamen Registernutzung zwischen den Prozessorelementen. Nebenbei sei bemerkt, daß für das nun betrachtete Datenverarbeitungssystem angenommen wird, daß durch die vom Prozessor­ element A2 intern ausgeführte Parallelverarbeitung (was bedeutet, daß das Prozessorelement A2 eine Superskalar- Operation ausführt) das Auftreten eines Registerkonflikts geprüft wird. Um die Kompatibilität mit herkömmlichen Prozessoren sicherzustellen, muß der Registerkonflikt aufgehoben oder gelöst werden. Wenn im Gegensatz hierzu das Prozessorelement A2 eine Parallelverarbeitung als VLIW-Prozessor ausführt, braucht kein Registerkonflikt gelöst zu werden, weil von einem Kompilierer nur solche Befehlsketten erzeugt werden, bei denen kein Registerkon­ flikt entsteht.
Zunächst wird die Beschreibung auf das Aufheben des Regi­ sterkonflikts oder der Registerkonkurrenz mit Hilfe der Parallelbetrieb-Steuereinrichtung A9 gerichtet. Da ein erster Befehl (d. h. ein vom Befehlsregister D1 gehaltener Befehl) aus internen Gründen zuerst abgearbeitet werden soll, kann dieser Befehl die anderen parallel ab­ zuarbeitenden Befehle nicht beeinflussen. Ein zweiter Be­ fehl (d. h. ein im Befehlsregister D2 enthaltener Befehl) stellt jedoch einen Befehl dar, der aus internen Gründen nach dem ersten Befehl abgearbeitet werden soll. Wenn da­ her das Bestimmungsregister des ersten Befehls als Quell­ register für den zweiten Befehl bestimmt wird, ist es notwendig, den zweiten Befehl nach der Abarbeitung des ersten Befehls auszuführen, weil andernfalls im Verlauf der Abarbeitung des zweiten Befehls nicht auf den richti­ gen Quellregisterwert zugegriffen werden könnte, woraus sich eine fehlerhafte Rechenoperation ergäbe.
Daher überträgt der Dekoder D5 die Identifikationsnummer des Bestimmungsregisters für den ersten Befehl über die Signalleitung d8 an den Dekoder D6. Im Dekoder D6 wird die Identifikationsnummer des Quellregisters für den zweiten Befehl mit der empfangenen Identifikationsnummer des Bestimmungsregisters für den ersten Befehl vergli­ chen, um so eine eventuelle Übereinstimmung zwischen den beiden Register-Identifikationsnummern zu prüfen. Wenn der Vergleich ergibt, daß zwischen beiden Nummern eine Übereinstimmung besteht, unterdrückt oder unterbricht der Dekoder D6 seine eigene Befehls-Dekodieroperation und steuert den zweiten Befehl so, daß er erst dann ausge­ führt wird, wenn die durch den ersten Befehl bezeichnete Rechenoperation von der Recheneinheit D11 (ALU1) ausge­ führt worden ist.
Eine ähnliche Operation wird auch von der Parallelbe­ trieb-Steuereinrichtung A10 des zweiten Prozessorelemen­ tes A3 ausgeführt. Wenn der Parallelbetrieb jedoch ent­ sprechend der Ausgabe des Parallelitäts-Zustandsbits (A7) ausgeführt werden soll, unterscheidet sich die Operation des Prozessorelementes A3 von derjenigen des Prozessore­ lementes A2, wie im folgenden beschrieben wird. In der Multiprozessorbetriebsart arbeiten die einzelnen Prozes­ sorelemente A2 und A3 unabhängig voneinander. Daher wird die Operation des Prozessorelementes A3 durch das Prozes­ sorelement A2 in keiner Weise beeinflußt. Folglich kann bei der Ausführung eines dritten Befehls (d. h. eines vom Befehlsregister D3 gehaltenen Befehls) zwischen den Be­ fehlsregistern D1 und D2 kein Registerkonflikt auftreten. Für die Ausführung eines vierten Befehls (der vom Be­ fehlsregister D4 gehalten wird) ist es dann notwendig, den Registerkonflikt, der lediglich zwischen dem Bestim­ mungsregister für den dritten Befehl und dem Quellregi­ ster für den vierten Befehl auftreten kann, aufzuheben oder zu lösen. Andererseits führt das Prozessorelement A3 in der Parallelbetriebsart die Befehle parallel und synchron zum Prozessorelement A2 aus, was bedeutet, daß das Prozessorelement A3 durch den vom Prozessorelement A2 ab­ gearbeiteten ersten und zweiten Befehl beeinflußt wird. Genauer muß für die Abarbeitung des dritten Befehls ein Registerkonflikt bzw. eine Registerkonkurrenz, die zwi­ schen den Bestimmungsregistern des ersten und des zweiten Befehls und dem Quellregister des dritten Befehls auf­ tritt, aufgehoben oder gelöst werden, während für die Ab­ arbeitung des vierten Befehls der Registerkonflikt zwi­ schen den Bestimmungsregistern des ersten und des dritten Registers und dem Quellregister des vierten Befehls ge­ löst werden muß. Daher werden bei der Abarbeitung des dritten Befehls die Identifikationsnummern der Bestim­ mungsregister des ersten und des zweiten Befehls über die Signalleitungen d7 und d9 an den Dekoder D7 übertragen. Im Dekoder D7 wird die Identifikationsnummer des Quellre­ gisters des dritten Befehls mit den empfangenen Identifi­ kationsnummern des ersten und des zweiten Befehls vergli­ chen, um eine eventuelle Übereinstimmung zwischen den er­ steren und den letzteren zu prüfen. Wenn kein Konflikt festgestellt wird, kann unter Verwendung der Rechenein­ heit D13 (ALU3) die Rechenoperation für den dritten Be­ fehl unmittelbar abgearbeitet werden. Wenn im Gegensatz dazu das Auftreten eines Registerkonflikts festgestellt wird, unterdrückt oder unterbricht der Dekoder D7 die De­ kodieroperation seines eigenen Befehls wenigstens so­ lange, bis die von der Recheneinheit D12 (ALU2) ausge­ führte Rechenoperation für den zweiten Befehl abgeschlos­ sen worden ist. Ferner werden für die Abarbeitung des vierten Befehls die Identifikationsnummern der Bestim­ mungsregister des ersten bis dritten Befehls über die Si­ gnalleitungen d7 und d10 an den Dekoder D8 geschickt. Im Dekoder D8 wird die Identifikationsnummer des Quellregi­ sters für den vierten Befehl mit den empfangenen Identi­ fikationsnummern für die Bestimmungsregister des ersten bis dritten Befehls verglichen, um eine eventuelle Über­ einstimmung zwischen ihnen zu prüfen. Wenn kein Register­ konflikt festgestellt wird, wird von der Recheneinheit D14 unmittelbar die Rechenoperation für den vierten Be­ fehl ausgeführt. Wenn statt dessen ein Registerkonflikt festgestellt wird, wird der Dekoder D8 gezwungen, seine eigene Befehls-Dekodieroperation solange zu unterdrücken oder zu unterbrechen, bis von der Recheneinheit D13 (ALU3) die Rechenoperation für den dritten Befehl abge­ schlossen worden ist. In diesem Zusammenhang sollte hin­ zugefügt werden, daß bei einer Unterbrechung der Ausfüh­ rung eines I-ten Befehls (I = 1, 2, 3, . . .) aufgrund eines Registerkonflikts oder einer Registerkonkurrenz der nach­ folgende Befehl, also der I + 1-te Befehl, ebenfalls nicht ausgeführt wird.
Aus der obigen Beschreibung wird deutlich, daß die Steue­ rung der Operationen der im Prozessorelement A3 eingebau­ ten Dekoder D7 und D8 in Abhängigkeit davon, ob sich der Prozessor in der Multiprozessorbetriebsart oder in der Parallelbetriebsart befindet, geändert oder abgewandelt werden muß. Eine solche Abwandlung der Dekoderoperations­ steuerung kann durch die Selektoren D9 und D10 (Fig. 3) verwirklicht werden. Genauer werden die Selektoren D9 und D10 in der Multiprozessorbetriebsart in Abhängigkeit von den auf der Signalleitung a1 erscheinenden Werten des Parallelitäts-Zustandsbits A7 so gesteuert, daß dem Deko­ der D7 ein Signal "0" (das anzeigt, daß die Befehlsdeko­ dieroperation des Dekoders D7 nicht unterdrückt werden muß) zugeführt wird, während der Dekoder D8 mit der Iden­ tifikationsnummer des Bestimmungsregisters für den drit­ ten Befehl beliefert wird. In der Parallelbetriebsart werden die Identifikationsnummern der Bestimmungsregister für den ersten und den zweiten Befehl an den Dekoder D7 und die Identifikationsnummern der Bestimmungsregister für die ersten bis dritten Befehle an den Dekoder D8 übertragen.
Nun wird die Beschreibung auf eine andere Funktion der Parallelbetrieb-Steuereinrichtungen A9 und A10, d. h. auf die Verwirklichung der gemeinsamen Registernutzung ge­ richtet. Diese Funktion wird durch die Kooperation der Torschaltungen D17 und der Signalleitungen d5 und d6, die Teile der Parallelbetrieb-Steuereinrichtungen A9 und A10 darstellen, verwirklicht. In der Multiprozessorbetriebs­ art arbeiten die einzelnen Prozessorelemente unabhängig voneinander. Folglich wird ungeachtet einer Übereinstim­ mung zwischen den Register-Identifikationsnummern auf Werte von physikalisch verschiedenen Registern zugegrif­ fen. Genauer wird für eine vom Prozessorelement A2 ausge­ führte Verarbeitung das Register der Registerdatei D15 verwendet, während für die Ausführung einer Verarbeitung durch das Prozessorelement A3 das Register der Register­ datei D16 verwendet wird. Dies wird durch die Ausführung von Lese- und Schreiboperationen unter Verwendung der Lesebusse d1 und d2 und der Speicherbusse d3 und d4 vervollständigt. Wenn jedoch die Prozessorelemente in der Parallelbetriebsart die gleiche Register-Identifikations­ nummer bezeichnen, muß auf ein und dasselbe Register zu­ gegriffen werden. Das bedeutet, daß das Register, das Ge­ genstand einer Leseoperation ist, und das Register, das Gegenstand einer Schreiboperation ist, in Abhängigkeit von den zwei obenerwähnten verschiedenen Prozessor-Be­ triebsarten geändert werden müssen. Dieses Problem wird dadurch gelöst, daß die Ausgangskanäle und die Eingangskanäle der Registerdatei D15 in einer Anzahl vorgesehen sind, die doppelt so groß wie die Anzahl der entsprechenden Kanäle der Registerdatei D16 ist, und ferner dadurch, daß der Globallesebus d5 und der Global­ speicherbus d6 vorgesehen werden, um eine Übertragung der Werte der in der Registerdatei D15 implementierten Regi­ ster an die anderen Prozessorelemente zu ermöglichen. Allgemein kann festgestellt werden, daß bei der Anzahl n von Prozessorelementen die Anzahl der Kanäle der Regi­ sterdatei D15 n mal größer als die Anzahl der Kanäle der Registerdatei in jedem der anderen Prozessorelemente ist. Eine solche Strukturierung der Registerdateien ist im Stand der Technik sicherlich ungünstig, weil eine kompli­ zierte und große Abmessungen besitzende Struktur notwen­ dig ist, wenn die Anzahl der Prozessorelemente zunimmt; diese Struktur kann jedoch in nicht allzu ferner Zukunft verwirklicht werden, wenn höher integrierte VLSI-Schal­ tungen erhältlich sein werden.
In der Multiprozessorbetriebsart greifen die einzelnen Prozessorelemente unabhängig voneinander auf die Regi­ sterdateien zu. Die für die parallele Abarbeitung zweier Befehle erforderlichen Daten werden unter Verwendung der Lesebusse d1 und d2 aus den Registern ausgelesen, während die aus den Rechenoperationen sich ergebenden Daten über die Speicherbusse d3 und d4 in die Register geschrieben werden. Da die Lesebusse d1 und d2 und die Speicherbusse d3 und d4 nur innerhalb der zugehörigen Prozessorelemente verwendet werden, findet keine Beeinflussung der anderen Prozessorelemente statt.
In der Parallelbetriebsart nimmt das Prozessorelement A3 auf das Register der Registerdatei D15 unter Verwendung des Globallesebusses d5 und des Globalspeicherbusses d6 Bezug, während die Registerdatei D16 nicht benutzt wird. Diese Art von Steuerung einer gemeinsamen Register­ benutzung kann über das Öffnen und Schließen der im Globallesebus d5 und im Globalspeicherbus d6 vorgesehenen Torschaltungen D17 unter Verwendung des Signals a1 des Parallelitäts-Zustandsbits A7 ausgeführt werden. Von den aus der Registerdatei D15 ausgelesenen Registerinhalten werden auch die im Prozessorelement A2 verwendeten Daten über den Lesebus d1 an die Recheneinheit D11 oder an die Recheneinheit D12 übertragen. Ferner wird über den Speicherbus d3 von der Recheneinheit D11 oder D12 das Er­ gebnis der Rechenoperaton in die Registerdatei D15 ge­ schrieben. In diesem Fall findet keine Kommunikation mit den anderen Prozessorelementen statt.
Nachdem nun die Prozessorelemente A2 und A3 zusammen mit in ihnen enthaltenen weiteren Einrichtungen, nämlich den Parallelbetrieb-Steuereinrichtungen A9 und A10, beschrie­ ben worden sind, wird die Beschreibung im folgenden auf die Cachespeicher-Steuerung A6 gerichtet, die für die Ab­ wandlung oder Änderung der Lesebreite und der Anzahl und der Reihenfolge der aus dem Befehls-Cachespeicher B1 aus­ gelesenen Befehle in Abhängigkeit davon, ob sich der Pro­ zessor in der Multiprozessorbetriebsart oder in der Pa­ rallelbetriebsart befindet, vorgesehen ist.
In der Multiprozessorbetriebsart werden die Befehle von den einzelnen Prozessorelementen unabhängig voneinander gelesen, während in der Parallelbetriebsart die einzel­ nen Prozessorelemente eine Folge von n Befehlen zu einem Zeitpunkt auslesen, um sie auszuführen. Wenn das Paralle­ litäts-Zustandsbit A7 die Multiprozessorbetriebsart an­ zeigt, werden die Adressenleitungen der n Prozessorele­ mente direkt und getrennt mit den Eingängen des Befehls- Cachespeichers B1 verbunden. Wenn das Zustandsbit A7 andererseits die Parallelbetriebsart anzeigt, wird nur die Adressenleitung des ersten Prozessorelementes verwendet, wobei gefordert wird, den Adressenwert dieser Adres­ senleitung und die aus den Additionen der Adressenwerte zu den ersten bis (n - 1)-ten Befehlslängen sich ergebenden Werte als Adresseneingaben zu verwenden.
In Fig. 4 ist ein Blockschaltbild einer äußerst verein­ fachten Struktur der Cachespeicher-Steuerung für die Aus­ führung des obenerwähnten Cachespeicher-Steuervorgangs gezeigt. Die Adressenleitungen a4 und a5 der einzelnen Prozessorelemente sind direkt mit den Eingängen des Cachespeichers B2 verbunden. Mittels eines Addierers E1 wird der Adressenwert der Adressenleitung des ersten Prozessorelementes A2 (PE1) zu der einer Befehlslänge entsprechenden Anzahl von Wörtern addiert, wobei ein den Ergebniswert der obigen Addition darstellendes Signal an die Adressenleitung e1 ausgegeben wird. In Fig. 4 be­ zeichnet das Bezugszeichen E2 einen Selektor. Wenn das Parallelitäts-Zustandsbit A7 die Multiprozessorbetriebs­ art anzeigt, wählt der Selektor E2 die vom zweiten Pro­ zessorelement A3 kommende Adressenleitung a5, während der Selektor E2 die Adressenleitung e1 wählt, wenn das Zu­ standsbit A7 die Parallelbetriebsart anzeigt. Auf diese Weise geben in der Multiprozessorbetriebsart die einzel­ nen Prozessorelemente die jeweiligen Befehlsadressen un­ abhängig voneinander ein, während es in der Parallelbe­ triebsart möglich ist, auf der Grundlage des Adressenwer­ tes der Adressenleitung des ersten Prozessorelementes A2 n aufeinanderfolgende Befehle zu bezeichnen.
Zusätzlich zu der in Fig. 4 gezeigten Struktur ist es günstig, einen der n Ausgangskanäle des Befehls-Cache­ speichers B1 als Ausgangskanal mit n . m . k Bits zu wäh­ len, wobei die anderen Ausgangskanäle jeweils m . k Bits besitzen, wobei k die Bitlänge eines Befehls darstellt und m die Anzahl der gleichzeitig durch das Prozessorele­ ment abgefragten Befehle darstellt.
In Fig. 5 ist ein Blockschaltbild einer beispielhaften Verwirklichung der obenerwähnten Struktur in Verbindung mit dem Befehls-Cachespeicher B1 gezeigt. Es wird ange­ nommen, daß n und m jeweils gleich 2 (zwei) ist. In Fig. 5 bezeichnet das Bezugszeichen F1 einen Selektor, der durch das Ausgangssignal a1 des Parallelitäts-Zustands­ bits A7 gesteuert wird. Ferner bezeichnet das Bezugszei­ chen f1 eine Datenleitung, die bei einem ersten Ausgangs­ kanal des Befehls-Cachespeichers B1 beginnt, während das Bezugszeichen f2 eine Datenleitung bezeichnet, die beim zweiten Ausgangskanal des Befehls-Cachespeichers B1 be­ ginnt. In diesem Fall werden die Adressenwerte, die auf den von den einzelnen Prozessorelementen A2 und A3 ausge­ henden Adressenleitungen a4 bzw. a5 vorhanden sind, di­ rekt als Adresseneingaben für den Befehls-Cachespeicher B1 verwendet. Es wird festgestellt, daß der Ausgangskanal f1 eine Bitbreite besitzt, die n mal (zweimal im vorliegenden Fall) größer als diejenige der anderen Aus­ gangskanäle (f2) ist. Von diesen Bits werden m . k Bits (2k Bits im vorliegenden Fall) über die Signalleitung b1 an das Prozessorelement A2 geschickt, wobei die anderen Bits über die Signalleitung f3 in den Selektor F1 einge­ geben werden. In der Multiprozessorbetriebsart werden von den jeweiligen Ausgangskanälen für den abzuarbeitenden Befehl m . n Bits abgerufen. In diesem Moment bleiben die restlichen (n - 1) . m . k Bits, die vom ersten Ausgangska­ nal ausgegeben werden, unbenutzt. Im Falle der Parallel­ betriebsart werden die vom ersten Ausgangskanal f1 ausge­ lesenen n . m aufeinanderfolgenden Befehle (mit n . m . k Bits) auf die einzelnen Prozessorelemente A2 und A3 ver­ teilt. In diesem Moment bleiben die restlichen n - 1 Ausgaben unbenutzt. Durch den Selektor wird festgelegt, welche der über die Signalleitungen f2 bzw. f3 geschickten Be­ fehlsfolgen vom Prozessorelement A3 abgearbeitet werden sollen. Andererseits wird der Selektor F1 in Abhängigkeit vom Ausgangssignal a1 des Parallelitäts-Zustandsbits A7 gesteuert. Genauer wird in der Multiprozessorbetriebsart die Signalleitung f2 gewählt, während in der Parallelbe­ triebsart die Signalleitung f3 gewählt wird.
Nun wird eine weitere Ausführungsform beschrieben, wobei dieses Datenverarbeitungssystem in der Multiprozessorbetriebsart betrieben wird.
In Fig. 6 ist eine Tabelle zur Erläuterung der Funktionen der als Schnittstelle oder Kommunikationseinheit zwischen den Prozessorelementen dienenden Multiprozessorbetrieb- Steuereinrichtung gezeigt, wobei diese Steuereinrichtung dafür erforderlich ist, daß das obige Daten­ verarbeitungssystem als Multiprozessorsystem arbeiten kann.
Als Funktionen für die Validierung einer Unterbrechung der Prozessorelemente können drei Typen von Unterbrechun­ gen erwähnt werden. Diese sind durch eine Unterbrechungs­ funktion, in der eine Unterbrechungsanforderung durch die Angabe einer Identifikationsnummer eines Pro­ zessorelementes an dieses Prozessorelement ausgegeben wird, eine Unterbrechungsfunktion, in der eine Unterbre­ chungsfunktion an sämtliche Prozessorelemente (Gesamtunterbrechung) geliefert wird, und eine Unterbre­ chungsfunktion, in der es ausreicht, daß irgendeines der Prozessorelemente die Unterbrechungsanforderung akzep­ tiert (Einzelunterbrechung), gegeben.
Ferner sind im Zusammenhang mit dem Steuerbefehl im Hin­ blick auf eine genaue Ausführung der Parallelverarbeitun­ gen ein Befehl, der die Übertragung der Registerwerte zwischen den Prozessorelementen gestattet, ein Wartebe­ fehl (WARTEN), der die betreffenden Prozessorelemente in den Bereitschafts- oder Wartezustand versetzt, bis von einem anderen Prozessorelement ein Startsignal ausgegeben wird, und ein Neustart-Befehl (STARTEN) für die Freigabe des betreffenden Prozessorelementes aus dem Wartezustand vorgesehen.
Als exklusive Steuerfunktionen können ein "Prüf- und Setz-" oder "Vergleichs- und Wechsel-"Befehl, der für eine bestimmte Adresse des Hauptspeichers ausgegeben wird, genannt werden. Mit dem "Vergleichs- und Wechsel- "Befehl (der auch als "Prüf- und Setz-"Befehl bezeichnet wird), ist ein Befehl gemeint, der zum Auslesen von Daten aus einem Speicher, zum Prüfen des Wertes der ausgelese­ nen Daten und zum Schreiben der Daten in den Speicher an der Ursprungsadresse entsprechend dem Prüfergebnis ausge­ führt wird. Während der Ausführung dieser Reihe von Ver­ arbeitungen ist es notwendig, zu verhindern, daß irgend­ ein anderes Prozessorelement den "Vergleichs- und Wech­ sel-"Befehl für dieselbe Adresse des Speichers ausführt. Dazu gibt vor der Ausführung des "Vergleichs- und Wech­ sel-"Befehls jedes betreffende Prozessorelement eine Aus­ führungsanforderung für den "Vergleichs- und Wechsel- "Befehl an die Multiprozessorbetrieb-Steuereinrichtung A8 aus. Nur dann, wenn die Ausführungsanforderung zugelassen wird, wird der "Vergleichs- und Wechsel-"Befehl ausge­ führt, woraufhin die Ausführungsanforderung aufgehoben wird. Wenn solche Ausführungsanforderungen von einer Mehrzahl von Prozessorelementen ausgegeben werden, stellt die Multiprozessorbetrieb-Steuereinrichtung A8 fest, ob die Anforderungen auf nur eine Adresse gerichtet sind. Wenn dies der Fall ist, teilt die Multiprozessorbetrieb- Steuereinrichtung das Recht auf Ausführung nur einem Pro­ zessorelement zu. Wenn andererseits sämtliche Anforderun­ gen auf verschiedene Adressen gerichtet sind, wird jedem der die Ausführungsanforderung ausgebenden Prozessorele­ mente das Recht auf Ausführung gegeben.
In Fig. 7 ist ein schematisches Schaltbild einer internen Struktur der Multiprozessorbetrieb-Steuereinrichtung A8 gezeigt, die so beschaffen ist, daß sie die Steuerung des "Vergleichs- und Wechsel-"Befehls ausführen kann.
In Fig. 7 bezeichnen die Bezugszeichen g1 und g2 Adres­ senleitungen, die aufgrund einer Ausführung des "Vergleichs- und Wechsel-"Befehls durch die jeweiligen Prozessorelemente verwendet werden, g3 und g4 bezeichnen Signalleitungen, um das Ende der Ausführung eines "Vergleichs- und Wechsel-"Befehls anzuzeigen, g5 und g6 bezeichnen Signalleitungen, um einen Beginn der Ausfüh­ rung des "Vergleichs- und Wechsel-"Befehls anzuzeigen, und die Bezugszeichen g7 und g8 bezeichnen Signalleitun­ gen, die die Zulässigkeit oder die Unzulässigkeit der Ausführung des "Vergleichs- und Wechsel-"Befehls (Bestätigungssignal) an die Prozessorelemente A2 bzw. A3 melden, wobei der "EIN"-Zustand der Signalleitungen g7 und g8 anzeigt, daß die Ausführung des "Vergleichs- und Wechsel-"Befehls bestätigt wird, während der "AUS"-Zu­ stand anzeigt, daß die Ausführung des "Vergleichs- und Wechsel-"Befehls nicht bestätigt wird (Unzulässigkeit). Die Signalleitungen g1 bis g8 bilden die in Fig. 1 ge­ zeigten Signalleitungen a6 und a7. Ferner verwendet die Multiprozessorbetrieb-Steuereinrichtung A8 das Ausgangs­ signal a1 des Parallelitäts-Zustandsbits A7 als Eingabe.
Außerdem bezeichnet in Fig. 7 das Bezugszeichen G1 ein Pufferregister zum Halten der Adresse eines momentan abgearbeiteten "Vergleichs- und Wechsel-"Befehls, das Bezugszeichen G2 bezeichnet einen Zähler, der die Anzahl der "Vergleichs- und Wechsel-"Befehle, die momentan abgearbeitet werden, verwaltet, die Bezugszeichen G3 bis G5 bezeichnen Recheneinheiten für die Ausführung einer Addition und einer Subtraktion, die Bezugszeichen G6 bis G8 bezeichnen Komparatoren, die für den Vergleich der Adressen der "Vergleichs- und Wechsel-"Befehle mit dem Wert des Zählers G2 dienen, die Bezugszeichen G9 und G10 bezeichnen Selektoren, die der Änderung des Wertes oder des Zustands der Signalleitungen g7 und g8 in Abhängig­ keit vom Wert des Parallelitäts-Zustandsbits A7 dienen, und das Bezugszeichen G11 bezeichnet einen Selektor, der die in das Pufferregister G1 einzugebende Adresse aus­ wählt.
Nun wird eine typische Operation der Multiprozessorbe­ trieb-Steuereinrichtung A8 mit der obenerwähnten Hardwa­ restruktur beschrieben. Die Adressen von den Adressenleitungen g1 und g2, die von den Zweiprozessor­ elementen A2 und A3 geliefert werden, werden mittels der Komparatoren G6 bzw. G7 mit dem Inhalt des Puffers G1 verglichen, wobei in Abhängigkeit davon, ob die Adressen auf den Adressenleitungen g1 und g2 mit dem Inhalt des Puffers G1 übereinstimmen, auf die Signalleitungen g9 und g10 ein "EIN"-Signal oder ein "AUS"-Signal ausgegeben wird. Ferner wird der Wert des Zählers G2 vom Komparator G8 ständig mit einem Wert "0" verglichen, wobei ein das invertierte Ergebnis des obigen Vergleichs darstellendes Signal auf die Signalleitung g11 ausgegeben wird. Das be­ deutet, daß auf der Signalleitung g11 ein "EIN"-Signal anliegt, solange der Wert des Zählers G2 nicht "0" ist, wodurch angezeigt wird, daß die im Puffer G1 gespeicherte Adresse vorhanden ist, während an der Signalleitung g11 ein "AUS"-Signal anliegt, wenn der Wert des Zählers G2 "0" ist. Zu diesem Zeitpunkt ist es durch die Bestimmung des logischen Produktes der auf den Signalleitungen g5, g9 und g11 anliegenden Signale möglich, anzuzeigen, daß die gleiche Adresse wie diejenige des vom ersten Prozes­ sorelement A2 abgearbeiteten "Vergleichs- und Wechsel- "Befehls im Puffer G1 vorhanden ist. Genauso ist es durch die Bestimmung des logischen Produktes der auf den Si­ gnalleitungen g6, g9 und g11 anliegenden Signale möglich, anzuzeigen, daß die gleiche Adresse wie diejenige des vom zweiten Prozessorelement A3 abgearbeiteten "Vergleichs- und Wechsel-"Befehls im Puffer G1 vorhanden ist. Durch die Ausgabe der Negationen (Inversionen) dieser das logi­ sche Produkt anzeigenden Signale auf die Signalleitungen g12 bzw. g13 ist es möglich, anzuzeigen, daß keine der obengenannten Adressen im Puffer G1 vorhanden ist. Das bedeutet, daß die erwähnten Negationen ein Bestätigungs­ signal dafür darstellen, daß ein "Vergleichs- und Wech­ sel-"Befehl ausgeführt werden darf. Es wird jedoch darauf hingewiesen, daß der obenerwähnte Vergleich einen Adres­ senvergleich des momentan ausgeführten "Vergleichs- und Wechsel-"Befehls betrifft. Jeder Konflikt mit einem von einem anderen Prozessorelement gleichzeitig ausgeführten "Vergleichs- und Wechsel-"Befehl muß auf andere Weise aufgehoben werden.
Bei der erläuterten und in Fig. 7 gezeigten Ausführungs­ form wird ein Hardware-Aufbau verwendet, in dem das erste Prozessorelement A2 stets gegenüber anderen Prozessorele­ menten die Priorität oder höchste Präferenz besitzt. Da­ her wird das Bestätigungssignal g12 für das erste Prozes­ sorelement A2 über den Selektor G9 direkt als Signal g7 ausgesandt. Im Gegensatz hierzu kann für das zweite Pro­ zessorelement A3 das Bestätigungssignal g13 nur unter der Bedingung, daß kein Konflikt mit dem Bestätigungssignal g12 für das erste Prozessorelement A2 auftritt, über den Selektor G10 als Signal g8 ausgesandt werden. Auf der Grundlage der Negation g14 des logischen Produktes der zwei Signale g12 und g13 kann das Ausbleiben eines Kon­ flikts zwischen den zwei Bestätigungssignalen g12 und g13 sichergestellt werden. In diesem Fall wird das wahre Be­ stätigungssignal g15 für das zweite Prozessorelement A3 als logisches Produkt der Signale g13 und g14 abgeleitet. Dann wird das Signal g15 in den Selektor G10 eingegeben.
Die Selektoren G9 und G10 wählen das obenerwähnte Bestä­ tigungssignal g12 bzw. g15, wenn das Parallelitäts-Zu­ standsbit A7 die Multiprozessorbetriebsart anzeigt. Wenn andererseits das Zustandsbit A7 die Parallelbetriebsart anzeigt, senden diese Selektoren G9 und G10 stets den Wert des Parallelitäts-Zustandsbits A7 zurück.
Die Auswahl der im Puffer G1 zu speichernden Adresse wird durch den Selektor G11 ausgeführt. Die in den Puffer G1 eingegebene Adressenleitung wird in Abhängigkeit davon, welches der Prozessorelemente (A2 oder A3) das Recht auf Ausführung erhalten hat, vom Selektor G11 gewählt. Wenn das Recht auf Ausführung zugeteilt worden ist, wird der Wert des Zählers G2 durch die Recheneinheit G3 inkremen­ tiert. Die Steuerung der Recheneinheit G3 wird auf der Grundlage des logischen Produktes g16 der Bestätigungssi­ gnale g12 und g15 für die zwei Prozessorelemente A2 bzw. A3 ausgeführt. Nach Beendigung der Ausführung des "Vergleichs- und Wechsel-"Befehls wird das Endsignal g3 oder g4 ausgegeben, woraufhin der Zähler G2 von der Re­ cheneinheit G4 bzw. G5 dekrementiert wird. Die Steuerung der Recheneinheiten G4 und G5 wird in Abhängigkeit von den logischen Produkten g17 und g18 der Endsignale g3 bzw. g4 und von den Ausgangssignalen g9 bzw. g10 der Kom­ paratoren G6 und G7, die anzeigen, daß die bezeichneten Adressen im Puffer G1 vorhanden sind, ausgeführt.
Bei dem bisher beschriebenen Aufbau der Multiprozessorbe­ trieb-Steuereinrichtung A8 kann ein Überlauf des Puffers G1 auftreten. Dieses Problem kann leicht durch die Ver­ wendung eines Puffers G1 mit ausreichender Kapazität be­ herrscht werden, da die im Puffer G1 vorhandene Adresse gelöscht wird, sobald die Ausführung des "Vergleichs- und Wechsel-"Befehls abgeschlossen ist. Bei der beschriebenen Multiprozessorbetrieb-Steuerein­ richtung A8 wird das Recht auf Ausführung einer Mehrzahl von "Vergleichs- und Wechsel- "Befehlen zugeteilt, solange sie auf Adressen bezo­ gen sind, die sich grundlegend voneinander unterscheiden.
In Fig. 8 ist ein Blockschaltbild einer Struktur der Mul­ tiprozessorbetrieb-Steuereinrichtung A8 für die Implemen­ tierung des Registerübertragungsbefehls und des Warte- /Neustart-Befehls, wie sie in Fig. 6 erläutert sind, ge­ zeigt. In Fig. 8 bezeichnen die Bezugszeichen H1 und H2 Synchronisationseinrichtungen, die mit der Datenübertra­ gung der Synchronisation und anderen Wechselwirkungen zwischen den einzelnen Prozessorelementen betraut sind. Das Bezugszeichen H3 bezeichnet eine Bus-Vorrangschaltung (Bus-Arbitration), die dazu dient, das Recht auf Benut­ zung des Busses bei Ausführung einer Datenübertragung oder anderer Operationen zwischen den Prozessorelementen zuzuteilen. Ferner bezeichnen die Bezugszeichen h1 bis h3 Signalleitungen, die Adressenleitungen, Datenleitungen, Steuerleitungen und dergleichen enthalten. Die Leitung h1 wird im allgemeinen als Kommunikationsbus bezeichnet.
Wenn die Multiprozessorbetrieb-Steuereinrichtung A8 auf diese Weise verwendet wird, ist es möglich, ein oder meh­ rere Programme durch eine koordinierte Kooperation der Prozessorelemente abzuarbeiten. Hierbei enthalten die ko­ ordinierten Befehle für die Prozessorelemente im erläu­ terten Datenverarbeitungssystem einen "Registerübertragungsbefehl", der die Übertragung der Re­ gisterinhalte zwischen den Prozessorelementen steuert, einen "Warte-(Unterbrechungs-)Befehl", der die Operation des zugeordneten oder des eigenen Prozessorelementes durch die Angabe einer bestimmten Adresse anhält oder un­ terdrückt, und einen "Start-(Neustart-)Befehl", der das bei der bezeichneten Adresse wartende oder unterbrochene Prozessorelement neu startet, wie weiter oben im Zusam­ menhang mit Fig. 6 beschrieben worden ist.
In Fig. 9 sind Beispiele von Formaten für die verschie­ denen obenerwähnten Befehle gezeigt. Wie aus dieser Figur ersichtlich, sind zwei Typen von Registerübertragungsbe­ fehlen vorgesehen.
In Fig. 9 besitzt der durch das angehängte Suffix "(1)" bezeichnete erste Registerübertragungsbefehl zwei ver­ schiedene Typen von Formaten, d. h. ein Format für einen auf der Seite des sendenden Prozessorelementes (das im folgenden als Sender-Prozessorelement bezeichnet wird, wobei ferner ein empfangendes Prozessorelement als Emp­ fänger-Prozessorelement bezeichnet wird) abzuarbeitenden Sendebefehl und ein Format für einen auf der Seite des Empfänger-Prozessorelementes abzuarbeitenden Empfangsbe­ fehl. Durch die Verwendung dieser zwei Befehlsformate in Kombination können im Sendebefehlformat eine Identifika­ tionsnummer (R1) eines einen zu sendenden Wert haltenden Registers, eine Identifikationsnummer (PE#) des Empfän­ ger-Prozessorelementes und eine Identifikationsnummer (R2) eines den an das Empfänger-Prozessorelement übertra­ genen Wert speichernden Registers bezeichnet werden. Beim Empfangsbefehl entsteht kein Bedarf nach den obenerwähn­ ten Bezeichnungen. Der Registerübertragungsbefehl (2) tritt sowohl beim Senden als auch beim Empfangen auf. Ge­ nauer werden für den Sendebefehl eine Identifikationsnum­ mer (R1) eines einen zu übertragenden Wert haltenden Re­ gisters und eine Identifikationsnummer (PE#) eines Emp­ fänger-Prozessorelementes bezeichnet. Entsprechend werden im Empfangsbefehl eine Identifikationsnummer (R1) eines den an das zugehörige Empfänger-Prozessorelement übertra­ genen Wert speichernden Registers und eine Identifikati­ onsnummer (PE#) des Sender-Prozessorelementes bezeichnet.
An dieser Stelle wird darauf hingewiesen, daß bei diesen Formatstrukturen für den in Fig. 9 gezeigten Register­ übertragungsbefehl die maximal zulässige Anzahl von Pro­ zessorelementen für eine 1 : 1-Registerübertragung auf den Wert 211 ansteigt, weil das für die Angabe der Prozessor­ element-Idenfikationsnummer mögliche Feld 11 Bits umfaßt. Für eine 1 : x-Registerübertragung, mit x < 1, ist es not­ wendig, zwischen einem Bit und einem Prozessorelement eine Entsprechung herzustellen. In diesem Fall können in dem Datenverarbeitungssystem höchstens 11 Prozessorele­ mente vorgesehen werden.
Im Zusammenhang mit der Registerübertragung sind zwei Ty­ pen von Synchronisationsschemata denkbar: Ein Synchroni­ sationsschema a, in dem das Sender-Prozessorelement einen Registerinhalt absenden darf, um direkt danach einen nachfolgenden Befehl auszuführen, unabhängig davon, ob das Empfänger-Prozessorelement den empfangenen Befehl ab­ arbeitet, und ein zweites Synchronisationsschema (b), in dem das Sender-Prozessorelement vorübergehend in den an­ gehaltenen oder unterbrochenen Zustand versetzt wird, bis das Empfänger-Prozessorelement den empfangenen Befehl ausgeführt hat. Folglich müssen durch die Kombination der weiter oben erwähnten zwei Typen von Formaten mit den eben erwähnten Typen von Synchronisationsschemata vier Hardware-Typen implementiert werden. Für die Vereinfa­ chung der Beschreibung werden im folgenden jedoch im Zu­ sammenhang mit dem erläuterten Datenverarbeitungssystem nur zwei Hardware-Typen offenbart, d. h. ein Typ für die Kombination des Befehlsformats (1) und des Synchronisationsschemas (a) und ein weiterer Typ für die Kombination des Befehlsformats (2) und des Synchronisa­ tionsschemas (b). Für den Fachmann ist es leicht, die Hardware-Strukturen für die beiden anderen Typen von Kom­ binationen zu schaffen, indem die beiden im folgenden be­ schriebenen Hardware-Typen geeignet abgewandelt werden.
In Fig. 9 sind zusätzlich die Formate für den Stopp- oder Unterdrückungs-(Warte-)Befehl bzw. für den Neustart- (Start-)Befehl gezeigt. Die im Unterdrückungsbefehl und im Neustartbefehl bezeichneten Adressen werden auf der Grundlage des Registers R1, der Verschiebung d und eines Basisregisters Rb berechnet. In einem herkömmlichen Com­ putersystem wird die Adressenberechnung normalerweise ge­ mäß dem Ausdruck (Rb + R1 + d) ausgeführt. Bei dem oben be­ schriebenen Datenverarbeitungssystem ist es jedoch aus­ reichend, sicherzustellen, daß die Unterbrechungs- oder Stoppadresse, bei der die Operation unterbrochen wird, aus den oben aufgezählten Werten eindeutig bestimmt wer­ den kann.
In den Fig. 10 bis 14 sind Blockschaltbilder von Hard­ ware-Strukturen für die Verwirklichung der Registerüber­ tragungsbefehle gezeigt. Genauer sind in den Fig. 10 und 11 Hardware-Strukturen gezeigt, die der Kombination des Registerübertragungsbefehl-Formats (1) mit dem Synchroni­ sationsschema (a) entsprechen, während in den Fig. 12 und 13 Hardware-Strkturen gezeigt sind, die der Kombination des Registerübertragungsbefehl-Formats (2) mit dem Syn­ chronisationsschema (b) entsprechen. In Fig. 14 ist eine Prioritätsreihenfolge-Bestimmungsschaltung gezeigt, die den beiden obenerwähnten Hardware-Strkturen gemeinsam ist. Die folgende Beschreibung wird in der Reihenfolge der Nummern der Figuren gegeben.
In Fig. 10 ist die interne Struktur der Synchronisations­ einrichtung H1 für den Fall gezeigt, in dem da 76940 00070 552 001000280000000200012000285917682900040 0002004129614 00004 76821s Befehls­ format (1) und das Synchronisationsschema (a) miteinander kombiniert sind. Selbstverständlich ist die Synchronisa­ tionseinrichtung H2 mit einer ähnlichen Konfiguration im­ plementiert. Gemäß dem Synchronisationsschema (a) wartet das den Sendebefehl ausführende Prozessorelement nicht auf den Empfangsbefehl des Empfänger-Prozessorelementes. Unter diesen Umständen ist es notwendig, für jedes der Prozessorelemente einen Puffer (Registerdatei) vorzuse­ hen, in dem der übertragene Registerwert und eine Identi­ fikationsnummer des Registers, das den übertragenen Regi­ sterwert speichern soll, temporär gehalten werden. Hierzu ist eine Synchronisations-Registerdatei I1 vorgesehen, in der der Registerwert und die Identifikationsnummer eines bezeichneten Registers, in dem der Registerwert gespei­ chert werden soll, gehalten werden. In Fig. 10 bezeichnen die Bezugszeichen I2 bzw. I3 Adressenregister für die Be­ zeichnung der Adressen der Synchronisations-Registerda­ tei, die dann verwendet werden, wenn das Empfänger-Prozessorelement einen empfangenen Wert ausliest bzw. wenn das Sender-Prozessorelement einen Sendewert (d. h. einen zu sendenden Wert) lädt oder schreibt. Das Bezugszeichen 14 bezeichnet einen Addierer, der der Inkrementierung der Werte der Adressenregister I2 und I3 nach der in der Syn­ chronisations-Registerdatei I1 ausgeführten Lese- /Schreiboperation dient. Da die Synchronisations-Regi­ sterdatei I1 so beschaffen ist, daß die Lese- /Schreiboperation auf FIFO-Art (First In/First Out) aus­ geführt wird, ist der Addierer I4 so ausgebildet, daß er die Adresse nur dann inkrementiert, wenn die Lese- /Schreiboperationen beider Adressenregister ausgeführt worden sind. Das Bezugszeichen I5 bezeichnet einen Selek­ tor, der eine Adresseneingabe in die Synchronisations-Re­ gisterdatei I1 entsprechend der Schreib-/Leseoperation entweder vom Adressenregister I2 oder vom Adressenregi­ ster I3 wählt. Die Bezugszeichen I6 und I7 bezeichnen je­ weils Komparatorschaltungen. Wenn in der Synchronisa­ tions-Registerdatei I1 keine Daten gespeichert sind, muß der Betrieb des Prozessorelementes, das den Empfangsbe­ fehl ausführen soll, unterbrochen oder angehalten werden. Wenn andererseits in der Synchronisations-Registerdatei I1 Daten bis zur maximalen Kapazität derselben gespei­ chert sind, muß der Betrieb des Prozessorelementes, das den Sendebefehl ausführen soll, angehalten oder unterbro­ chen werden. Wenn daher der Wert des Leseadressenregi­ sters I2 durch RA dargestellt wird und der Wert des Schreibadressenregisters I3 durch WA dargestellt wird, ist es möglich, durch die Erzeugung eines "WA = RA" dar­ stellenden Signals anzuzeigen, daß in der Synchronisa­ tions-Registerdatei I1 keine Daten gespeichert sind. Fer­ ner ist es durch die Erzeugung eines "WA + 1 = RA" dar­ stellenden Signals möglich, anzuzeigen, daß in der Synchronisations-Registerdatei I1 bis zur maximalen Kapazi­ tät Daten gespeichert sind.
Mit den Bezugszeichen i1 bis i8 sind jeweils Steuerlei­ tungen bezeichnet. Genauer bezeichnet das Bezugszeichen i1 eine Taktsignalleitung, die ein in das Prozessorele­ ment A2, in die Adressenregister I2 und I3 und in andere mit dem gleichen Takt arbeitende Einrichtungen eingegebe­ nes Taktsignal führt. Das Bezugszeichen i2 bezeichnet eine Lesesignalleitung, die bei der Ausführung des Emp­ fangsbefehls durch das Prozessorelement A2 den "Ein"-Pe­ gel annimmt. Das Bezugszeichen I3 bezeichnet eine Schreibsignalleitung. Auf dieser Schreibsignalleitung tritt ein Signal i3 dann auf, wenn von einem anderen Pro­ zessorelement ein Sendebefehl für das zugeordnete Prozes­ sorelement ausgeführt wird.
Wenn bei der Synchronisations-Registerdatei I1 konkurrent eine Leseanforderung und eine Schreibanforderung auftre­ ten, ist es notwendig, eine dieser beiden Anforderungen anzuhalten oder zu unterbrechen. Im Falle der in Fig. 10 gezeigten Hardware-Struktur wird die Leseanforderung an­ gehalten. Wenn die Lesesignalleitung i2 und die Schreib­ signalleitung i3 über eine logische UND-Schaltung ver­ knüpft werden, wird an das Prozessorelement A2 eine An­ forderung in Form eines Lese-Sperrsignals i4 ausgegeben. Solange das Lese-Sperrsignal i4 auf "EIN"-Pegel liegt, hält das Prozessorelement A2 die Ausführung des Befehls temporär an. Die Bezugszeichen i5 und i6 bezeichnen Aus­ gangssignalleitungen der Komparatorschaltungen 16 und 17, wobei das Signal der Signalleitung i5 anzeigt, daß in der Synchronisations-Registerdatei I1 keine Daten gespeichert sind, während das Signal auf der Signalleitung i6 an­ zeigt, daß in der Synchronisations-Registerdatei I1 Daten bis zur maximalen Kapazität gespeichert sind. Die Signal­ leitung i5 ist mit dem Prozessorelement A2 verbunden. Die Ausführung des Empfangsbefehls durch das Prozessorelement A2 wird während eines Zeitintervalls, in dem auf der Si­ gnalleitung i5 der "EIN"-Pegel anliegt, temporär unter­ brochen. Tatsächlich wird ein Datenlesevorgang von der Synchronisations-Registerdatei I1 bei Ausführung des Emp­ fangsbefehls unter der Bedingung ausgeführt, daß keine Schreibanforderung ausgegeben wird und daß in der Syn­ chronisations-Registerdatei I1 gespeicherte Daten vorhan­ den sind. Daher wird auf die Signalleitung i7 das logi­ sche Produkt der Signale auf den Signalleitungen i2, i4' und i5' ausgegeben und als Steuersignal für das Le­ seadressenregister I2 verwendet. (Die Notation "x'" be­ deutet allgemein die Negation von "x") Nachdem die Daten aus der Synchronisations-Registerdatei I1 ausgelesen wor­ den sind, inkrementiert das Signal i7 das Adressenregi­ ster I2. Ein Datenschreibvorgang in die Synchronisations- Registerdatei I1 wird auf ähnliche Weise ausgeführt und kann bei der Ausführug des Sendebefehls bewerkstelligt werden, vorausgesetzt, daß in der Synchronisations-Regi­ sterdatei I1 nicht bis zur maximalen Kapazität Daten ge­ speichert sind. Daher wird auf die Signalleitung i8 das logische Produkt der Signale auf den Signalleitungen i3 und i6' ausgegeben und als Steuersignal für das Schreibadressenregister I3 verwendet. Nachdem die Daten in die Synchronisations-Registerdatei I1 geschrieben wor­ den sind, inkrementiert das Signal i8 das Schreibadres­ senregister I3. Ferner wird das Signal i8 für die Steue­ rung des Selektors I5 und für die Steuerung der Lese- /Schreib-Betriebsart der Synchronisations-Registerdatei I1 verwendet.
Die Bezugszeichen i9 und i10 bezeichnen Signalleitungen zum Senden bzw. zum Empfangen des Registerwerts und der Identifikationsnummer des bezeichneten Registers. Das Be­ zugszeichen i11 bezeichnet zusammenfassend verschiedene Steuerleitungen, die eine Signalleitung für die Anforde­ rung des Rechts auf Benutzung eines Kommunikationsbusses h1 und eine Signalleitung, die für die Angabe der Identi­ fikationsnummer des Empfänger-Prozessorelementes verwen­ det wird, enthalten.
In Fig. 11 ist ein Blockschaltbild der internen Struktur der Bus-Vorrangsschaltung H3 gezeigt. Das Bezugszeichen J1 bezeichnet einen Oszillator, der der Erzeugung eines Taktsignals dient, welches als mit dem Grundtakt A11 identisch angesehen werden kann. Das Bezugszeichen J2 be­ zeichnet eine Prioritätsreihenfolge-Bestimmungsschaltung. Wenn bei der Benutzung des Kommunikationsbusses h1 unter der Mehrzahl der Prozessorelemente ein Konflikt oder eine Konkurrenz auftritt, ordnet die Prioritätsreihenfolge-Be­ stimmungsschaltung J2 das Recht auf Benutzung des Kommu­ nikationsbusses h1 entsprechend der Prioritätsreihen­ folge, die entweder veränderlich oder fest ist, einem der Prozessorelemente zu. Die Bezugszeichen J3 und J4 be­ zeichnen Flip-Flops zum Speichern des das Recht auf Be­ nutzung des Kommunikationsbusses h1 anzeigenden Signals. Diese Flip-Flops werden jeweils in den "EIN"-Zustand ver­ setzt, solange dem zugehörigen Prozessorelement das Recht auf Benutzung des Kommunikationsbusses gegeben wird. Das Bezugszeichen J5 bezeichnet eine Multiplex-Einrichtung, die entsprechend der Identifikationsnummer des vom Sende­ befehl bezeichneten Prozessorelementes auf eine der Aus­ gangssignalleitungen ein Eingangssignal ausgibt.
Die Bezugszeichen j1 bis j14 bezeichnen einzelne Signal­ leitungen, die den Kommunikationsbus h1 bilden. Genauer bezeichnet das Bezugszeichen j1 eine Taktsignalleitung, die ein für die Gesamtsteuerung des gesamten erfindungs­ gemäßen Datenverarbeitungssystem verwendetes Taktsignal führt. Die Signalleitung j1 entspricht der in Fig. 10 ge­ zeigten Signalleitung i1. Die Bezugszeichen j2 und j3 be­ zeichnen jeweils Busanforderungs-Signalleitungen. Wenn ein Prozessorelement den Kommunikationsbus h1 für die Re­ gisterübertragung verwenden soll, ist es erforderlich, daß dieses Prozessorelement auf die entsprechende Signal­ leitung ein Busanforderungs-Signal j2 oder j3 ausgibt. Die Bezugszeichen j4 und j5 bezeichnen Buszuteilungs-Si­ gnalleitungen. Wenn einem Prozessorelement aufgrund des von ihm ausgegebenen Busanforderungssignals j2 oder j3 das Recht auf Benutzung des Kommunikationsbusses h1 zuge­ teilt werden kann, wird das Buszuteilungssignal j4 oder j5 an das obenerwähnte Prozessorelement geschickt. Wenn die Busanforderungssignale gleichzeitig von einer Mehr­ zahl von Prozessorelementen ausgegeben werden, wird das Recht auf Benutzung des Kommunikationsbusses h1 entspre­ chend der Prioritätsreihenfolge, die veränderlich oder fest sein kann, über die Signalleitungen j4 oder j5 zuge­ teilt. Die Bezugszeichen j6 und j7 bezeichnen drei Sperr­ signalleitungen. Wie oben mit Bezug auf Fig. 10 beschrie­ ben, ist eine temporäre Unterbrechung des Sendebefehls erforderlich, wenn die Synchronisations-Registerdatei I1 des Empfänger-Prozessorelementes bei Ausführung eines Sendebefehls durch das Prozessorelement bis zur maximalen Kapazität der Datei mit Daten gefüllt ist. In diesem Fall wird auf die Signalleitung j6 oder j7 das Schreibsperrsi­ gnal ausgegeben. Die Bezugszeichen j8 und j9 bezeichnen Signalleitungen, wobei das Signal "voll" auf einer dieser Leitungen anzeigt, daß in der Synchronisations-Registerdatei I1 bis zur maximalen Kapazität Daten gespeichert sind. Die Bezugszeichen j10 und j11 bezeichnen Schreibsi­ gnalleitungen zum Senden eines Signals, das anzeigt, daß der Sendebefehl ausgeführt worden ist, an die Prozessore­ lemente. Die Signalleitungen j8 und j10 entsprechen je­ weils den Signalleitungen i6 und i3 in Fig. 10. Das Be­ zugszeichen j12 bezeichnet eine Signalleitung, die ein die Prozessorelement-Identifikationsnummer anzeigendes Signal führt. Diese Signalleitung wird bei Ausführung ei­ nes Sendebefehls für die Bezeichnung des Empfänger-Pro­ zessorelementes verwendet. Die Signalleitungen j2, j4, j6 und j12 entsprechen der in Fig. 10 gezeigten Signallei­ tung i11. Das Bezugszeichen j13 bezeichnet eine Datenlei­ tung, während das Bezugszeichen j14 eine Signalleitung bezeichnet, die ein die Register-Identifikationsnummer (REG) anzeigendes Signal führt. Diese Signalleitungen werden von der Bus-Vorrangschaltung H3 mittels Bus-Anfor­ derungssignalen (BR) j2 und j3 und mittels Bus-Zutei­ lungssignalen (BG) j4 und j5 auf einfache Weise verwal­ tet. Die Signale auf den Leitungen j13 und j14 werden in der Bus-Vorrangschaltung H3 nicht direkt verwendet.
Nun wird ein Verfahren zur Erzeugung der internen Signale j6, j7, j10 und j11 der Bus-Vorrangschaltung H3 beschrie­ ben. Später wird mit Bezug auf Fig. 14 ein Verfahren zur Erzeugung der Bus-Zuteilungssignale j4 und j5 beschrie­ ben. An das Prozessorelement, das bei Ausführung eines Sendebefehls bezeichnet wird, wird das Schreibanforde­ rungssignal j10 oder j11 geschickt. In diesem Fall wird von dem Signal auf der Signalleitung j12 die Prozessore­ lement-Identifikationsnummer angezeigt, wenn die Ausfüh­ rung des Sendebefehls durch eines der Prozessorelemente durch das Signal j15 der logischen Summe aus sämtlichen Bus-Zuteilungssignalen angezeigt wird. Daher kann das Ausgangssignal der Multiplex-Einrichtung J5, in die das auf der Signalleitung j15 anliegende Signal und das als Wählsignal dienende Prozessorelement-Identifikationsnum­ mernsignal j12 eingegeben werden, direkt als Schreiban­ forderungssignal j10 bzw. j11 verwendet werden. Das Schreibsperrsignal j6 oder j7 wird bei Ausführung des Sendebefehls ausgesandt, vorausgesetzt, daß in der Syn­ chronisations-Registerdatei I1 des Empfänger-Prozessore­ lementes Daten bis zur maximalen Kapazität gespeichert sind (d. h., wenn das "voll"-Signal ausgegeben wird). Die Tatsache, daß in der Synchronisations-Registerdatei I1 bis zur maximalen Kapazität Daten gespeichert sind, wird durch das Signal auf das Signalleitungen j4, j5 oder j10, j11 angezeigt (wobei die Signale auf den Leitungen j4 und j5 von der Senderseite erfaßt werden, während die Signale auf den Leitungen j10 und j11 auf der Empfängerseite er­ faßt werden). Daher stellt das Signal j16 des logischen Produkts der Signale auf den Leitungen j8 und j10 oder das Signal j7 des logischen Produkts der Signale auf den Leitungen j9 und j11 das Schreibsperrsignal für das Emp­ fänger-Prozessorelement dar. Durch die Erzeugung des Si­ gnals j18 der logischen Summe sämtlicher Signale j16, j17 usw. und durch die anschließende Erzeugung eines Signals des logischen Produkts des Signals j18 der logischen Summe und der Signale j4 und j5 kann für das Sender-Pro­ zessorelement das Schreibsperrsignal j6 oder j7 erhalten werden.
Nun wird die Beschreibung auf eine Hardware-Struktur ge­ richtet, mit der die Kombination des Registerübertra­ gungsbefehlformats (2) mit dem Synchronisationsschema (b), wie sie in Fig. 9 erläutert sind, erzielt wird. In Fig. 12 ist ein Blockschaltbild einer Synchronisations­ einrichtung H1 gezeigt, die der Kombination des Befehlsformats (2) mit dem Synchronisationsschema (b) ent­ spricht. Wie aus Fig. 12 ersichtlich, umfaßt die Synchro­ nisationseinrichtung H1 nur Signalleitungen. Die Multiprozessorbetrieb-Steuereinrichtung A8 wird durch eine von der Bus-Vorrangschaltung H3 ausgeführte konzen­ trierte Verwaltung oder Steuerung verwirklicht. In Fig. 12 bezeichnet das Bezugszeichen m1 eine Taktsignallei­ tung, die dem gleichen Zweck wie die Signalleitung i1 von Fig. 10 dient. Ferner bezeichnen die Bezugszeichen m2 und m3 eine Lesesignalleitung bzw. eine Schreibsignalleitung. Bei Ausführung eines Registerübertragungsbefehls wird auf die Lesesignalleitung m2 ein Signal ausgesandt, wenn ein Empfangsbefehl abgearbeitet werden soll, während bei Ab­ arbeitung eines Sendebefehls auf die Schreibsignalleitung m3 ein Signal ausgesandt wird. Das Bezugszeichen m4 be­ zeichnet ein Übertragungssperrsignal und die entspre­ chende Leitung. Wenn zwischen dem Sendebefehl und dem Empfangsbefehl bei der Registerübertragung keine Entspre­ chung festgestellt wird, wird das Übertragungssperrsignal dazu verwendet, die Operation des Prozessorelementes A2 temporär anzuhalten oder zu unterbrechen. Das Bezugszei­ chen m5 bezeichnet eine Datenleitung, während das Bezugs­ zeichen m6 verschiedene Steuerleitungen bezeichnet.
In Fig. 13 ist ein Blockschaltbild der internen Struktur der Bus-Vorrangsschaltung H3 gezeigt. In dieser Figur be­ zeichnen die Bezugszeichen J1 bis J4 und j1 bis j5 Schal­ tungen und Signalleitungen, die den mit den gleichen Be­ zugszeichen bezeichneten Schaltungen und Signalleitungen in Fig. 11 entsprechen. Ferner bezeichnen die Bezugszei­ chen N1 und N2 jeweils Multiplex-Einrichtungen, die dazu dienen, bei Ausführung des Empfangsbefehls an das Sender- Prozessorelement ein Lesesignal zu übertragen. Die Be­ zugszeichen N3 und N4 bezeichnen ähnliche Multiplex-Einrichtungen, die dazu dienen, bei Ausführung eines Sende­ befehls an das Empfänger-Prozessorelement ein Schreibsi­ gnal zu übertragen. Die Lesesignale von den einzelnen Prozessorelementen werden in die Selektoren N5 und N6 eingegeben, wobei diese Selektoren die Lesesignalleitung des von der Identifikationsnummer bezeichneten Empfänger- Prozessorelementes auswählen. Die Lesesignalleitung führt ein Signal, das anzeigt, daß vom zugehörigen Prozessore­ lement ein Empfangsbefehl ausgeführt worden ist. Wenn die Ausgabe des Selektors N5 oder N6 bei Ausführung des Sen­ debefehls auf "EIN"-Pegel liegt, kann der Registerinhalt übertragen werden. Die Bezugszeichen N7 und N8 bezeichnen Selektoren, die für die Ausführung eines Empfangsbefehls verwendet werden. Die Schreibsignale von den einzelnen Prozessorelementen werden in die Selektoren N7 oder N8 eingegeben, welche anschließend eine Schreibsignalleitung für das von der Identifikationsnummer des Sender-Prozes­ sorelementes bezeichnete Sender-Prozessorelement auswäh­ len. Wenn bei Ausführung des Empfangsbefehls die Ausgabe des Selektors N7 oder N8 auf "EIN"-Pegel liegt, kann wie im Falle des Sendebefehls der Registerinhalt übertragen werden.
Die Bezugszeichen n1 und n2 bzw. n3 und n4 bezeichnen Le­ sesignalleitungen bzw. Schreibsignalleitungen. Die Si­ gnalleitung n1 oder n2 nimmt den "EIN"-Pegel an, wenn ein Empfangsbefehl ausgeführt worden ist. Ähnlich nimmt die Signalleitung n3 oder n4 den "EIN"-Pegel an, wenn ein Sendebefehl ausgeführt worden ist. Die Signalleitungen n1 und n3 entsprechen den in Fig. 12 gezeigten Signalleitun­ gen m2 bzw. m3. Die Bezugszeichen n5 und n6 bezeichnen Übertragungssperrsignalleitungen. Wenn eines der Prozes­ sorelemente einen Sendebefehl oder einen Empfangsbefehl ausgeführt hat, kann eine Übertragung des Signals n5 oder n6 stattfinden, vorausgesetzt, daß der andere Prozessor weder einen Empfangsbefehl noch einen Sendebefehl aus­ führt. Das Übertragungssperrsignal n5 oder n6 dient dazu, den Betrieb des entsprechenden Prozessorelementes tem­ porär anzuhalten oder zu unterbrechen. Die Signalleitung n5 entspricht der in Fig. 12 gezeigten Signalleitung m4. Die Bezugszeichen n7 und n8 bezeichnen Signalleitungen, die jeweils für die Bezeichnung der Prozessorelement- Identifikationsnummer dienen. Genauer führt die Signal­ leitung n7 oder n8 ein Signal, das die Identifikations­ nummer eines Prozessorelementes anzeigt, welches bei Aus­ führung des Registerübertragungsbefehls als Ziel-Prozes­ sorelement angegeben worden ist. Die in Fig. 13 gezeigten Signalleitungen j2, j4 und n7 entsprechen der in Fig. 12 gezeigten Signalleitung m6. Schließlich bezeichnet das Bezugszeichen n9 eine Datenleitung, die der Leitung m5 in Fig. 12 entspricht.
Das von der Bus-Vorrangschaltung H3 erzeugte Signal n5 oder n6 wird ausgesandt, wenn eines der Prozessorelemente entweder einen Sendebefehl oder einen Empfangsbefehl aus­ geführt hat und wenn das jeweils andere Prozessorelement weder einen entsprechenden Empfangsbefehl noch einen ent­ sprechenden Sendebefehl ausführt. Die Information, daß das jeweils andere Prozessorelement einen Empfangsbefehl ausführt, wird durch das Ausgangssignal n10 oder n11 des Selektors N5 oder N6 angezeigt, während die Information, daß ein Sendebefehl ausgeführt wird, ebenfalls durch die Ausgangssignale n10 oder n11 der Selektoren N5 oder N6 erhalten wird. Daher kann die Information, die anzeigt, daß von einem Prozessorelement ein Sendebefehl ausgeführt wird und daß vom anderen Prozessorelement kein entspre­ chender Empfangsbefehl ausgeführt wird, in Form eines Si­ gnals n14 des logischen Produktes der Signale n3 und n10' oder in Form eines Signals n15 des logischen Produkts der Signale n4 und n11' erhalten werden. Entsprechend kann die Information, die anzeigt, daß ein Empfangsbefehl ausgeführt wird und daß das andere Prozessorelement kei­ nen Sendebefehl ausführt, in Form eines Signals n16 des logischen Produkts der Signale n1 und n12' oder in Form eines Signals n17 des logischen Produkts der Signale n2 und n13' erhalten werden. Andererseits bildet ein Signal der logischen Summe der auf den Signalleitungen n14 und n16 anliegenden Signale das Übertragungssperrsignal n5. Entsprechend bildet ein Signal der logischen Summe der Signale n15 und n17 das Übertragungssperrsignal n6.
In Fig. 14 ist ein Blockschaltbild der internen Struktur der Prioritätsreihenfolge-Bestimmungsschaltung J2 ge­ zeigt, die in den in den Fig. 11 und 13 gezeigten Hard­ ware-Strukturen verwendet wird. In die in Fig. 14 ge­ zeigte Prioritätsreihenfolge-Bestimmungsschaltung J2 wer­ den die Busanforderungssignale (BR) j2 und j3 von den einzelnen Prozessorelementen und das Taktsignal j1 einge­ geben, wobei die Bus-Zuteilungssignale j4 und j5 ausgege­ ben werden. In Fig. 14 bezeichnen die Bezugszeichen R1 und R2 jeweils Flip-Flops. Das Flip-Flop R1 wird für die Verzögerung der Eingabe in das Flip-Flop R2 verwendet, welches wiederum für die Speicherung der Identifikations­ nummer des Prozessorelementes, an das das Bus-Zuteilungs­ signal im vorhergehenden Zyklus ausgegeben worden ist, verwendet wird.
Solange zwischen den Bus-Anforderungssignalen (BR) j2 und j3 der einzelnen Prozessorelemente (PE1, PE2) kein Kon­ flikt oder keine Konkurrenz auftritt, wird das Bus-Anfor­ derungssignal j2 oder j3 direkt in das Flip-Flop J3 oder J4 eingegeben, so daß das Bus-Zuteilungssignal j4 oder j5 an das das Bus-Anforderungssignal ausgebende Prozessore­ lement geliefert werden kann. Wenn jedoch zwischen dem Bus-Anforderungssignal j2 und j3 ein Konflikt oder eine Konkurrenz vorhanden ist (d. h., wenn das logische Produkt r1 der Signale auf den Leitungen j2 und j3 hohen Pegel besitzt), müssen die Prioritäten der einzelnen Prozessor­ elemente berechnet werden, um dem Prozessorelement mit der höheren (oder höchsten) Priorität das Bus-Zuteilungs­ signal zuzusenden. In diesem Zusammenhang ist es denkbar, im voraus eine feste Prioritätsreihenfolge zwischen den Prozessorelementen festzulegen. Im Falle der erläuterten Ausführungsform wird jedoch die Prioritätsreihenfolge-Bestimmungsschaltung, wie sie in Fig. 14 gezeigt ist, so implementiert, daß das Prozes­ sorelement, an das unmittelbar vorher das Bus-Zuteilungs­ signal ausgegeben worden ist, anschließend mit einer niedrigeren Priorität versehen wird.
Ein Signal r2, das die Negation (Inversion) einer logi­ schen Summe der Bus-Zuteilungssignale für die einzelnen Prozessorelemente darstellt, wird an einen Takt-Eingangs­ anschluß des Flip-Flops R2 angelegt. Somit wird der In­ halt des Flip-Flops R2 neu geschrieben, wenn sich eines der beiden Bus-Zuteilungssignale vom hohen zum niedrigen Pegel ändert (wodurch angezeigt wird, daß das Recht auf Benutzung des Kommunikationsbusses aufgehoben worden ist). In das Flip-Flop R1 wird das Bus-Zuteilungssignal j5 für das zweite Prozessorelement A3 eingegeben. Das Flip-Flop R1 wird mit dem Taktsignal j1 synchronisiert, um dadurch das Bus-Zuteilungssignal j5 für das zweite Prozessorelement A3 zu verzögern. Das Ausgangssignal des Flip-Flops R1, das auf der Signalleitung R3 auftritt, stellt ein Eingangssignal für das Flip-Flop R2 dar. Auf diese Weise kann das Flip-Flop R2 die Tatsache festhalten, ob an das zweite Prozessorelement A3 das Bus-Zutei­ lungssignal geschickt worden ist, wenn eines der Prozes­ sorelemente das Recht auf Benutzung des Kommunikations­ busses aufhebt. Die Ausgangssignalleitung des Flip-Flops R2 wird mit r4 bezeichnet. Wenn zwischen den Bus-Anforde­ rungssignalen j2 und j3 ein Konflikt auftritt, wird das Bus-Zuteilungssignal j4 an das erste Prozessorelement A2 gegeben, wenn das Signal r4 hohen Pegel besitzt (wodurch angezeigt wird, daß das unmittelbar vorhergehende Bus-Zu­ teilungssignal an das zweite Prozessorelement A3 gegeben worden ist). Wenn im Gegensatz hierzu das Signal r4 nied­ rigen Pegel besitzt, wird das Bus-Zuteilungssignal j5 an das zweite Prozessorelement A3 ausgegeben. Wenn jedoch das Bus-Zuteilungssignal bereits an eines der beiden Pro­ zessorelemente ausgegeben worden ist, wird dieser Zustand unverändert gehalten.
Für die hardwaremäßige Verwirklichung der obenerwähnten Logik muß das Eingangssignal des Flip-Flops J3 die fol­ gende Bedingung erfüllen: r1' . j2 + r1 . (r4 . r2 + j4)); das Eingangssignal des Flip-Flops J4 muß die fol­ gende Bedingung erfüllen: (r1' . j3 + r1 . (r4' . r2 + j5)). Hierzu wird festgestellt, daß die Notation "x . y" im allgemeinen das logische Produkt zwischen "x" und "y" darstellt, während die Notation "x + y" die logische Summe von "x" und "y" bedeutet. Hinsichtlich der Bedeu­ tungen der einzelnen Ausdrücke in den obenerwähnten logi­ schen Ausdrücken wird ferner festgestellt, daß die Aus­ drücke "r1' . j2" und "r1' . j3" angeben, daß zwischen den Bus-Anforderungssignalen kein Konflikt auftritt, wäh­ rend die Ausdrücke "r1 . r4 . r2" oder "r1 . r4' . r2" anzeigen, daß zwischen den Bus-Anforderungssignalen ein Konflikt auftritt (wobei r2 anzeigt, daß das Bus-Zutei­ lungssignal bisher an keines der Prozessorelemente ausgegeben worden ist). Schließlich zeigen die Ausdrücke "r1 . j4" und "r1 . j5" an, daß das Bus-Zuteilungssignal unun­ terbrochen gehalten werden soll, wenn dieses Zuteilungs­ signal bereits an eines der Prozessorelemente ausgegeben worden ist.
Nun wird die Beschreibung auf die hardwaremäßige Verwirk­ lichung des Unterbrechungsbefehls (WARTE-Befehl) und des Neustartbefehls (START-Befehl), die in Fig. 9 gezeigt sind, gerichtet.
In Fig. 15 ist eine Synchronisationseinrichtung H1 für die Ausführung des Unterbrechungsbefehls und des Neu­ startbefehls gezeigt. In Fig. 15 bezeichnet das Bezugs­ zeichen T1 ein Unterbrechungsadressenregister, das so be­ schaffen ist, daß es eine Adresse speichert, die bei Aus­ führung eines Unterbrechungsbefehls durch das Prozessore­ lement A2 bezeichnet wird. Das Bezugszeichen T2 bezeich­ net eine Komparatorschaltung, die so beschaffen ist, daß sie eine vom Kommunikationsbus h1 eingegebene Adresse mit dem Inhalt des Unterbrechungsadressenregisters T1 ver­ gleicht, wenn vom anderen Prozessorelement der Neustart- Befehl ausgeführt wird.
Das Bezugszeichen t1 bezeichnet eine Taktsignalleitung, die dem gleichen Zweck wie die obenerwähnten Signallei­ tungen i1 und m1 dient. Das Bezugszeichen t2 bezeichnet ein Wiederaufnahme-(Neustart-)Signal und die entspre­ chende Leitung hierfür. Das Wiederaufnahmesignal wird gleichzeitig mit dem Adressensignal t3 bei Ausführung des Neustart-Befehls ausgegeben. Sowohl das Adressensignal t3 als auch die entsprechende Signalleitung hierfür werden in den Zeitpunkten, wenn der Neustart-Befehl und der Un­ terbrechungs-Befehl ausgeführt werden, für die Bezeichnung der Adresse aktiviert. Bei Ausführung des Neustart- Befehls wird auf den Kommunikationsbus das Adressensignal t3 ausgegeben. Wenn andererseits der Unterbrechungs-Be­ fehl ausgeführt wird, bewirkt das Adressensignal t3, daß die entsprechende Adresse im Unterbrechungsadressenregi­ ster T1 gespeichert wird. Bei Ausführung des Unterbre­ chungsbefehls durch das Prozessorelement A2 wird gleich­ zeitig zum Adressensignal t3 auf die Signalleitung t6 ein Ruhesignal ausgegeben und für die Speicherung einer be­ zeichneten Adresse im Unterbrechungsadressenregister T1 verwendet. Die Bezugszeichen t4 und t5 bezeichnen jeweils Adressenleitungen, die die Ausgabe des Unterbrechungs­ adressenregisters T1 bzw. die vom anderen Prozessorele­ ment über den Kommunikationsbus h1 ankommende Adresse führen. Diese Adressensignale werden in die Komparator­ schaltung T2 eingegeben, die auf eine Ausgangssignallei­ tung t8 ein Signal ausgibt, das eine Übereinstimmung zwi­ schen den zwei obenerwähnten Adressen anzeigt. Wenn das Signal t8 hohen Pegel besitzt und wenn das andere Prozes­ sorelement das Wiederaufnahmesignal t7 ausgibt, wird an das Prozessorelement A2 (PE1) ein Signal t9 zum Starten oder "Wecken" des Prozessorelementes, dessen Betrieb un­ terbrochen worden ist, geschickt. Das Bezugszeichen t10 bezeichnet zusammenfassend verschiedene Steuerleitungen, die eine Steuersignalleitung für die Verwaltung des Kom­ munikationsbusses enthalten.
Für die hardwaremäßige Verwirklichung des Unterbrechungs­ befehls und des Neustartbefehls besteht die Funktion der Bus-Vorrangschaltung H3 nur darin, die Rechte auf Benut­ zung der Adressenleitung, der Steuerleitung und derglei­ chen, die im Kommunikationsbus h1 enthalten sind, zu ver­ walten oder zu steuern. Daher kann die Bus-Vorrangschal­ tung H3 in einer internen Struktur implementiert werden, die nur den Oszillator J1, die Prioritätsreihenfolge-Be­ stimmungsschaltung J2, die Flip-Flops J3 und J4, die Taktsignalleitung j1, die Busanforderungs-Signalleitungen j2 und j3 und die Bus-Zuteilungssignalleitungen j4 und j5 der in den Fig. 11 oder 13 gezeigten Bauteile enthält. Mit anderen Worten kann somit eine Hardware verwirklicht werden, die sämtliche drei Typen von koordinierten Befeh­ len des Register-Übertragungsbefehls, den Unterbrechungs­ befehl und den Neustartbefehl ausführen kann, indem die einer Kombination der in den Fig. 10 oder 12 und 15 ge­ zeigten Strukturen entsprechende Synchronisationseinrich­ tung und die in den Fig. 11 oder 13 gezeigte Bus-Vorrang­ schaltung H3 verwendet werden. Ferner kann durch die Kom­ bination dieser Hardware und der in Fig. 7 gezeigten Hardware auch der "Vergleichs- und Wechsel-"Befehl ge­ steuert werden.
In den Fig. 16 bis 21 sind Impulsdiagramme gezeigt, mit denen beispielhaft die Operationen des Datenverarbei­ tungssystems gemäß der gegenwärtig beschriebenen Ausfüh­ rungsform erläutert werden. Genauer werden in den Fig. 16 bis 20 Beispiele von Operationen erläu­ tert, in denen das Befehlsformat (1) und das Synchronisa­ tionsschema (a) kombiniert werden, während in Fig. 21 ty­ pische Operationen erläutert werden, die bei Ausführung des Unterbrechungsbefehls und des Neustartbefehls auftre­ ten. Bei einer Kombination des Befehlsformats (2) mit dem Synchronisationsschema (b) sind keine anderen Ordnungs­ schaltungen (Speicherschaltungen) als die Prioritätsrei­ henfolge-Bestimmungsschaltung J2 und die Flip-Flops J3 und J4 vorhanden. Daher ist eine Erläuterung des Betriebs des letzteren Falls nicht notwendig.
Nun wird mit Bezug auf die Fig. 16 bis 20 eine Beschrei­ bung typischer Operationen des Datenverarbeitungssystems gegeben, wenn das Befehlsformat (1) und das Synchronisa­ tionsschema (a) miteinander kombiniert werden.
Fig. 16 ist ein Impulsdiagramm zur Erläuterung von Opera­ tionen, die bei Ausführung eines Sendebefehls an das zweite Prozessorelement (das auch mit PE2 bezeichnet wird) durch das erste Prozessorelement (PE1) auftreten. Zunächst gibt das Sender-Prozessorelement das Bus-Anfor­ derungssignal (BR) aus. Wenn weder das erste noch das zweite Prozessorelement den Kommunikationsbus benutzen, wird das Bus-Zuteilungssignal (BG) synchron zum Taktsi­ gnal (Takt) ausgegeben. Wenn der Kommunikationsbus be­ nutzt wird (besetzt) oder wenn zwischen den Bus-Anforde­ rungssignalen ein Konflikt oder eine Konkurrenz um den Bus auftritt, kann es vorkommen, daß das Bus-Zuteilungs­ signal nicht sofort ausgegeben wird. Nach Empfang des Bus-Zuteilungssignals gibt das Sender-Prozessorelement die im Sendebefehl bezeichnete Identifikationsnummer des Empfänger-Prozessorelementes (PE), den Inhalt oder Wert des bezeichneten Registers (Daten) und die Identifikati­ onsnummer des Empfängerregisters (REG) aus. In dem in Fig. 16 erläuterten Beispiel beträgt das Zeitintervall, mit dem diese Daten ausgesandt werden, das 1,5-fache des Taktzyklus. Selbstverständlich kann jedoch die Länge die­ ses Zeitintervalls angesichts verschiedener Faktoren wie etwa der Anordnung der Prozessorelemente und dergleichen geändert werden. Aufgrund der Bestimmung der Prozessore­ lement-Identifikationsnummer durch den Sendebefehl wird an das Empfänger-Prozessorelement ein Schreibsignal (Schreiben) ausgesandt. Solange in der Synchronisations- Registerdatei des Empfänger-Prozessorelementes die Daten nicht bis zur maximalen Kapazität (voll) gespeichert sind, werden der Wert des bezeichneten Registers und die Empfängerregister-Identifikationsnummer in die Synchroni­ sations-Registerdatei geschrieben, woraufhin das Schreibadressenregister (WA) inkrementiert wird. Nach Ab­ schluß dieser Datenübertragung wird das Bus-Anforderungs­ signal auf niedrigen Pegel geändert, was eine Änderung des Bus-Zuteilungssignals auf niedrigen Pegel zur Folge hat.
Fig. 17 ist ebenfalls ein Impulsdiagramm zur Erläuterung von Operationen, die bei Ausführung eines Sendebefehls auftreten. In diesem Fall wird jedoch angenommen, daß bei Beginn der Ausführung des Sendebefehls die Synchronisati­ ons-Registerdatei des Empfänger-Prozessorelementes be­ reits bis zur maximalen Kapazität mit Daten gefüllt ist. Die Signale "BR", "BG", "PE", "Daten" und "REG" im Sen­ der-Prozessorelement und die Signale "Schreiben" und "WA" im Empfänger-Prozessorelement sind im wesentlichen die gleichen wie in Fig. 16 und werden mit denselben Bezugs­ zeichen bezeichnet. Da gemäß der obigen Annahme in der Synchronisations-Registerdatei des Empfänger-Prozessore­ lementes Daten bis zur maximalen Kapazität gespeichert sind und durch einen hohen Pegel des "voll"-Signals ange­ zeigt werden, wird das das logische Produkt der beiden Signale "Schreiben" und "voll" angebende Schreibsperrsi­ gnal "Sperren" ausgegeben. Dies hat zur Folge, daß das Sender-Prozessorelement temporär in den Unterbrechungszu­ stand versetzt wird, während das Recht auf Benutzung des Kommunikationsbusses gehalten wird. Wenn das Empfänger- Prozessorelement den Inhalt der Synchronisations-Regi­ sterdatei aufgrund des Empfangsbefehls ausliest, und an­ schließend das Signal "voll" auf niedrigen Pegel geändert wird, wird das Schreibsperrsignal für das Sender-Prozes­ sorelement auf niedrigen Pegel gesetzt, woraus folgt, daß das Sender-Prozessorelement aus dem temporären Unterbre­ chungszustand freigegeben wird. Somit wird der Wert des bezeichneten Registers und die Empfängerregister-Identi­ fikationsnummer in der Synchronisations-Registerdatei des Empfänger-Prozessorelementes gespeichert. In diesem Fall werden die Zeitintervalle, während denen die Datensignale "PE", "Daten" und "REG" des Sender-Prozessorelementes ausgegeben werden, jeweils um eine Periode verlängert, während der das Schreibsperrsignal hohen Pegel besitzt.
In Fig. 18 ist ein weiteres Impulsdiagramm zur Erläute­ rung von Operationen gezeigt, die bei Ausführung des Sen­ debefehls auftreten. Genauer betrifft dieses Impulsdia­ gramm die Aufhebung des Rechts auf Benutzung des Kommuni­ kationsbusses bei Ausführung des Sendebefehls in dem Fall, in dem die Synchronisations-Registerdatei des Emp­ fänger-Prozessorelementes bis zur maximalen Kapazität mit Daten gefüllt ist ("voll"). In diesem Fall wird das Sen­ der-Prozessorelement temporär in den Unterbrechungszu­ stand versetzt, wenn an das Sender-Prozessorelement das Schreibsperrsignal ausgesandt wird; gleichzeitig wird das Bus-Anforderungssignal vom hohen auf niedrigen Pegel ge­ ändert. Daraus folgt, daß auch das Bus-Zuteilungssignal auf niedrigen Pegel geändert wird, wodurch angezeigt wird, daß das Recht auf Benutzung des Kommunikationsbus­ ses aufgehoben ist. Wenn anschließend das Signal "voll" im Empfänger-Prozessorelement vom hohen zum niedrigen Pe­ gel geändert wird, wird an das Sender-Prozessorelement eine Unterbrechung ausgegeben, die es aus dem temporären Unterbrechungszustand freigibt. Daher ist das in Fig. 18 erläuterte Schema dafür geeignet, den Konflikt oder die Konkurrenz um den Kommunikationsbus abzuschwächen.
In Fig. 19 ist ein Impulsdiagramm zur Erläuterung von Operationen gezeigt, die bei Ausführung des Empfangsbe­ fehls auftreten. Das Empfänger-Prozessorelement (PE1) gibt das Lesersignal "Lesen" aus, um dadurch den an die­ ses Element übertragenen Registerwert "Daten" und die Identifikationsnummer "REG" des zum Speichern von Daten bestimmten Registers auszulesen. Zu diesem Zeitpunkt wird der Inhalt "RA" des Leseadressenregisters inkrementiert. Es wird darauf hingewiesen, daß die Länge des Zeitinter­ valls dazu geeignet ist, in Abhängigkeit von verschie­ denen Faktoren wie etwa der physikalischen Anordnung und der Positionen der Prozessorelemente und dergleichen ge­ ändert zu werden, obwohl in der Figur das Zeitintervall, in dem das Lesesignal ausgegeben wird, wie im Falle der Ausführung des Sendebefehls ebenfalls auf das 1,5-fache des Taktzyklus festgesetzt ist.
In Fig. 20 ist ein Impulsdiagramm zur Erläuterung von Operationen gezeigt, die stattfinden, wenn zur Zeit der Ausführung des Empfangsbefehls in der Synchronisations- Registerdatei keine Daten gespeichert sind. Die Inhalte der Signale "Lesen", "Daten", "REG" und "RA" sind die gleichen wie diejenigen in Fig. 19. In Fig. 20 nimmt ein Signal "leer" hohen Pegel an, wenn in der Synchronisati­ ons-Registerdatei keine Daten gespeichert sind, wenn das Empfänger-Prozessorelement einen Empfangsbefehl ausführt und das Lesersignal ausgibt. Wenn das Prozessorelement den Empfangsbefehl ausgeführt hat, stellt es auf der Grundlage des auf hohem Pegel befindlichen "leer"-Signals fest, daß in der Synchronisations-Registerdatei keine Da­ ten gespeichert sind, so daß es einen temporären Unter­ brechungszustand annimmt. In diesem Zeitpunkt bewirkt die Ausführung des Sendebefehls an das Prozessorelement (PE1) durch ein anderes Prozessorelement (was durch den hohen Pegel des Signals "Schreiben" angezeigt wird) eine Ände­ rung des "leer"-Signals vom hohen zum niedrigen Pegel. Daraus folgt, daß das Empfänger-Prozessorelement aus dem temporären Unterbrechungszustand freigegeben wird und sowohl den an dieses Element übertragenen Registerwert als auch die Identifikationsnummer des zum Speichern von Daten bestimmten Registers aus der Synchronisations-Regi­ sterdatei ausliest, während der Inhalt des Leseadressen­ registers inkrementiert wird, wie weiter oben mit Bezug auf Fig. 19 beschrieben worden ist.
In Fig. 21 ist ein Impulsdiagramm zur Erläuterung von Ab­ arbeitungen des Unterbrechungsbefehls und des Neustartbe­ fehls gezeigt. Das erste Prozessorelement (PE1) führt den Unterbrechungsbefehl aus, während das zweite Prozessore­ lement (PE2) den Neustartbefehl ausführt. Wenn der Unter­ brechungsbefehl ausgeführt wird, wird eine durch den Be­ fehl bezeichnete Adresse "WAR" zusammen mit dem mit "Ruhe" bezeichneten Unterbrechungssignal ausgesandt. Auf­ grund des Stopp-Signals wird die bezeichnete Adresse im Unterbrechungsadressenregister gespeichert. Nachdem das Unterbrechungssignal "Ruhe" ausgegeben worden ist, nimmt das erste Prozessorelement (PE1) den temporären Unterbre­ chungszustand an.
Der Neustartbefehl dient zum erneuten Starten sämtlicher Prozessorelemente, die bei der bezeichneten Adresse in den Unterbrechungszustand versetzt worden sind. Hierzu wird die bezeichnete Adresse über den Kommunikationsbus an sämtliche Prozessorelemente gemeldet. In diesem Fall muß das zweite Prozessorelement (PE2) das Recht auf Be­ nutzung des Kommunikationsbusses sichern, indem es zuerst das Bus-Anforderungssignal "BR" ausgibt, um das Bus-Zu­ teilungssignal "BG" zu erhalten. Nachdem das zweite Prozessorelement (PE2) das Recht auf Benutzung des Kommuni­ kationsbusses gesichert hat, gibt es das durch das Neu­ startsignal "Wiederaufnahme" bestimmte Adressensignal "Adresse" auf den Kommunikationsbus aus. Die ausgegebene Adresse wird mit dem Inhalt des Stoppadressenregisters im anderen Prozessorelement verglichen. Wenn der Vergleich eine Übereinstimmung ergibt, wird an das entsprechende Prozessorelement ein Aktivierungssignal "Wecken" ge­ schickt. Daraufhin beginnt das Prozessorelement, das in den temporären Unterbrechungszustand versetzt worden ist, erneut mit der Abarbeitung des Befehls. Obwohl angenommen wird, daß das Ausgabeintervall für das Unterbrechungssi­ gnal und das Neustartsignal das 1,5-fache des Taktzyklus beträgt, kann die Länge dieses Zeitintervalls selbstver­ ständlich in Abhängigkeit von verschiedenen Faktoren wie etwa der Anordnung der einzelnen Prozessorelemente und dergleichen geändert werden.
Schließlich wird die Beschreibung auf ein Umschalt-Schema zum Umschalten des Datenverarbeitungssystems zwischen der Parallelbetriebsart und der Multiprozessorbetriebsart ge­ richtet.
Als spezielle Befehle zum Umschalten zwischen den beiden obenerwähnten Betriebsarten sind zwei Befehle vorgesehen: Ein Multiprozessorbetrieb-Befehl und ein Parallelbetrieb- Befehl. Der Multiprozessorbetrieb-Befehl hat die Wirkung, daß das Parallelitäts-Zustandsbit A7 in die Multiprozes­ sorbetriebsart versetzt wird; der Parallelbetrieb-Befehl hat die Wirkung, daß das Parallelitäts-Zustandsbit A7 in die Parallelbetriebsart versetzt wird. Diese zwei Befehle sind privilegierte Befehle, die nur vom Betriebssystem (OS) abgearbeitet werden können.
In Fig. 22 ist ein Flußdiagramm zur beispielhaften Erläu­ terung eines Steuerungsablaufs gezeigt, der vom Betriebs­ system (OS) beim Umschalten von der Parallelbetriebsart in die Multiprozessorbetriebsart ausgeführt wird. Wenn ein in der Parallelbetriebsart laufendes Programm sein Ende erreicht oder temporär unterbrochen wird (Schritt X1), wird das OS aktiviert (Schritt X2). Vom OS wird ein neu abzuarbeitendes Programm über eine Zeitplanung (Schritt X3) entnommen. Wenn zu diesem Zeitpunkt kein ab­ zuarbeitendes Programm vorliegt, wird auf das Auftreten eines neu abzuarbeitenden Programms in einer mit "Leerschleife" bezeichneten Schleife gewartet. Das OS prüft den Grad oder das Ausmaß der Parallelität des abzu­ arbeitenden Programms (Schritt X4). Wenn eine hochgradige Parallelität vorhanden ist, was bedeutet, daß der Paral­ lelbetrieb effektiver und effizienter ist, bleibt das Da­ tenverarbeitungssystem in der Parallelbetriebsart und verläßt die Steuerung des OS (Schritt X5). Wenn hingegen die Parallelität gering ist, ist es effektiver und effi­ zienter, eine Mehrzahl von Programmen parallel in der Multiprozessorbetriebsart abzuarbeiten. Daher wird in diesem Fall ein Multiprozessorbetrieb-Befehl ausgeführt (Schritt X6), der den einzelnen Prozessorelementen er­ laubt, unabhängig voneinander zu arbeiten. Da das vom er­ sten Prozessorelement abzuarbeitende Programm bereits im Zeitplanungsschritt X3 ausgewählt worden ist, wird die OS-Steuerung beendet (Schritt X7). Für das zweite und die nachfolgenden Prozessorelemente wird die Zeitplanung im Schritt X8 erneut ausgeführt, um von diesen Prozessorele­ menten abzuarbeitende Programme zu entnehmen.
In Fig. 23 ist ein Flußdiagramm zur Erläuterung eines OS- Steuerungsablaufs beim Umschalten von der Multiprozessor­ betriebsart in die Parallelbetriebsart gezeigt. Es wird angenommen, daß ein Programm, das von einem ersten von mehreren Prozessorelementen abgearbeitet wird, ein Ende erreicht (Schritt Y1). Wie oben mit Bezug auf Fig. 22 be­ schrieben, werden dann ein OS-Aktivierungsschritt Y2 und ein Zeitplanungsschritt Y3 ausgeführt, gefolgt von einem Schritt Y4, in dem der Parallelitätsgrad eines neu abzu­ arbeitenden Programms geprüft wird. Wenn die Parallelität verhältnismäßig niedrig ist, bleibt das Datenverarbei­ tungssystem in der Multiprozessorbetriebsart und verläßt die OS-Steuerung (Schritt Y5). Wenn andererseits eine hochgradige Parallelität vorliegt, was bedeutet, daß der Parallelbetrieb-Befehl abgearbeitet werden soll (Schritt Y6), wird die Betriebsart in die Parallelbetriebsart um­ geschaltet. Ein Umschalten in die Parallelbetriebsart ist jedoch unmöglich, wenn irgendein anderes Prozessorelement gerade ein Programm abarbeitet. Daher muß für die Ausfüh­ rung des Parallelbetrieb-Befehls das Ende der Abarbeitung des gerade abgearbeiteten Programms abgewartet werden (Schritt Y7). Bei Abschluß oder bei einem temporären An­ halten des momentan abgearbeiteten Programms kann an­ schließend der Parallelbetrieb-Befehl abgearbeitet wer­ den.
Der Parallelitätsgrad eines Programms kann in dem Zeit­ punkt festgestellt werden, in dem ein Quellprogramm in ein Zielprogramm übersetzt wird. Hierbei wird der Aus­ druck "Parallelitätsgrad" oder einfach "Parallelität" dazu verwendet, die mittlere Anzahl von Befehlen, die in einem Programm enthalten sind und parallel abgearbeitet werden können, zu bezeichnen. Somit kann der Paralleli­ tätsgrad dadurch erhalten werden, daß die Anzahl der in einem Programm enthaltenen Befehle durch die Anzahl der parallel ausführbaren Befehle dividiert wird. Wenn der Parallelitätsgrad mittels eines Kompilierers oder dergleichen in ein Zielprogramm geschrieben wird, kann ein Betriebssystem (OS) die Parallelität eines Programms er­ kennen.
In Fig. 24 ist Blockschaltbild des allgemeinen Aufbaus eines Datenverarbeitungssystems gemäß einer weiteren Aus­ führungsform gezeigt. Diese Ausführungsform betrifft unter anderem die Implementie­ rung eines Mehrkanal-Cachespeichers. Das Datenverarbei­ tungssystem wird in Form einer einzigen LSI-Schaltung, die über eine eine Adressenleitung 100 und eine Datenlei­ tung 102 enthaltende Busleitung mit einem Hauptspeicher A4 verbunden ist, verwirklicht. Das Datenverarbeitungssy­ stem 22 enthält einen Adressenübersetzungs-Pufferspeicher mit n Lesekanälen und einem Schreibkanal, m Cache­ speicherbänke 14-1, . . . 14-m, von denen jede eine Leseka­ nal und einen Schreibkanal besitzt und die einen Cache­ speicher bilden, in dem der Datenspeicherbereich in m Bänke (m Cachespeicherbänke) unterteilt ist, wobei auf­ einanderfolgende Adressen nacheinander den einzelnen Bän­ ken (1 bis m) zugeordnet werden, eine Bankauswahl-Ent­ scheidungsschaltung 16, Datenwählschaltungen 18-1, . . ., 18- n und eine Mehrzahl von Prozessoren 20-1, . . ., 20-n. Die Prozessoren 20-i, der Adressenübersetzungs-Pufferspeicher 12 und die Bankauswahl-Entscheidungsschaltung 16 sind über Adressenleitungen 104-1, . . ., 104-n miteinander ver­ bunden. Die Cachespeicherbänke 14-j (j = 1 bis m) sind mit der Bankauswahl-Entscheidungsschaltung 16 verbunden, die wiederum über die Datenleitung 108-i mit den Daten­ wählschaltungen 18-i (mit i = 1 bis n) verbunden ist. Die Datenwählschaltungen 18-i sind über die Datenleitung 110- i (mit i = 1 bis n) mit den Prozessoren 20-i verbunden.
Die Bankauswahl-Entscheidungsschaltung besitzt nicht nur eine Bankauswahlfunktion, um eine Cachespeicherbank 14-j, die von der von jedem Prozessor 20-i kommenden Adres­ seninformation bezeichnet wird, auszuwählen, sondern au­ ßerdem eine Entscheidungsfunktion, um auf der Grundlage der vom Prozessor 20-i gelieferten Adresseninformation und der Ausgabeinformation vom Adressenübersetzungs-Puf­ ferspeicher 12 zu entscheiden, ob in der mittels der obenerwähnten Bankauswahlfunktion gewählten Cache­ speicherbank 14-j Daten vorhanden sind. Wenn ein Ver­ gleich zwischen einem in den Daten enthaltenen Gültig­ keits-Zustandsbit und einem Teil der von der obenerwähn­ ten Entscheidungsfunktion als gültig erkannten Adressen eine positive Antwort ergibt (Ja), bewirkt die Datenwähl­ schaltung 18-i, daß die in der mittels der Bankauswahl­ funktion ausgewählten Cachespeicherbank 14-j gespeicher­ ten Daten an den bezeichneten Prozessor 20-i übertragen werden. An dieser Stelle wird festgestellt, daß durch die gemeinsame Nutzung eines einzelnen Cachespeichers mit ei­ ner Mehrzahl von Cachespeicherbänken 14-j von einer Mehr­ zahl von Prozessoren 20-i das Problem einer Cachespei­ cher-Kohärenz oder Cachespeicherdaten-Konsistenz in bis­ her bekannten Datenverarbeitungssystemen zufriedenstel­ lend gelöst werden kann. Wenn im Betrieb des Datenverar­ beitungssystem mit der obenbeschriebenen Struktur vom Prozessor 20-i die Adresseninformation ausgegeben wird, wird diese Adresseninformation vom Adressenübersetzungs- Pufferspeicher 12 in eine bestimmte physikalische Adresse übersetzt. Wenn daher die vom Prozessor ausgegebene Adresseninformation im Adressenübersetzungs-Pufferspei­ cher 12 vorhanden ist, wird eine physikalische Adresse erzeugt, die dieser Adresseninformation entspricht. Fer­ ner wird nur eine (14-j) der Cachespeicherbänke entspre­ chend der Adresseninformation vom Prozessor 20-i ausgewählt. Wenn die Daten, die der vom Adressenübersetzungs- Pufferspeicher 12 erzeugten physikalischen Adresse ent­ sprechen, in der ausgewählten Cachespeicherbank 14-j vor­ handen sind, werden die in der ausgewählten Cache­ speicherbank befindlichen Daten mittels der Datenwähl­ schaltung 18-i an den bezeichneten Prozessor 20-i, von dem die Datenanforderung ausging, geschickt.
Solange die Daten, die der vom Adressenübersetzungs-Puf­ ferspeicher 12 erzeugten physikalischen Adresse entspre­ chen, nicht in der ausgewählten Cachespeicherbank 14-j vorhanden sind, d. h. wenn ein Zugriff auf den Cachespei­ cher fehlgeht, wird über die Adressenleitung 100 auf den Hauptspeicher A4 zugegriffen, wobei die betreffenden Da­ ten über die Datenleitung 102 an die Cachespeicherbank 14-j und folglich an den bezeichneten Prozessor 20-i ge­ liefert werden.
Aufgrund der Anordnung, in der der Adressenübersetzungs- Pufferspeicher 12 in einer Mehrkanal-Konfiguration imple­ mentiert ist, in der der Cachespeicher wie oben beschrie­ ben von einer Mehrzahl von Cachespeicherbänken gebildet wird, kann eine Mehrzahl von Prozessoren 20-i gleichzei­ tig auf den Cachespeicher 14 zugreifen, um Daten von den jeweils bezeichneten Cachespeicherbänken 14-j zu übertra­ gen, was wiederum bedeutet, daß die Cachespeicher-Tref­ ferrate beträchtlich erhöht werden kann, wenn von einer Mehrzahl von Prozessoren 20-i gleichzeitig Verarbeitungen ausgeführt werden.
In Fig. 25 ist ein Schaltbild der Struktur des Puffer­ speichers 12 gezeigt, der zwei Lesekanäle und einen Schreibkanal besitzt und so beschaffen ist, daß zwei Prozessoren gleichzeitig Daten aus dem Cachespeicher ausle­ sen können.
In Fig. 25 enthält der Adressenübersetzungs-Pufferspei­ cher gemäß der momentan beschriebenen Ausführungsform De­ koder 24 und 26, einen Invertierer 28, Torschaltungen 30, 32, 34 und 36, eine Speicherzelle 38, Leseverstärker 40 und 42 und einen Invertierer 44, die sämtlich so mitein­ ander verbunden sind, daß Adressen A0 und B0 in die Deko­ der 24 bzw. 26 eingegeben werden, daß Eingangsdaten Din und ­Din in die Invertierer 28 bzw. 44 eingegeben werden und daß Daten auf die Ausgangsdatenleitung DB0-1 bzw. DB0-2 ausgegeben werden.
Es wird darauf hingewiesen, daß der Speicher in der ge­ genwärtigen Ausführungsform unabhängig von den einzelnen Prozessoren arbeiten kann. Das bedeutet, daß über die Da­ tenleitungen D1 und D2 aus einem durch die Prozessoren mit der Adresse A0 bezeichneten Speicherplatz Daten aus­ gelesen werden können. Wenn daher der Prozessor auf den Pufferspeicher mit der Adresse A0 zugreift, kann diese Adresse A0 vom Dekoder 24 dekodiert werden. Wenn die Tor­ schaltungen 30 und 34 geöffnet werden, wird der Inhalt der Speicherzelle 38 über die Datenleitungen D1 und ­D1 über den Leseverstärker 42 ausgelesen. Wenn ein anderer Prozessor für den Speicherzugriff die Adresse B0 bezeich­ net, wird diese Adresse B0 vom Dekoder 26 dekodiert. Wenn dadurch die Torschaltungen 32 und 36 geöffnet werden, wird der Inhalt der Speicherzelle 38 über die Datenlei­ tungen D2 und ­D2 über den Leseverstärker 40 ausgelesen.
Beim Schreiben von Daten werden diese Daten über die In­ vertierer 28 und 44 eingegeben, was zur Folge hat, daß die Daten mit umgekehrter Polarität auf die Datenleitungen D1 und -D1 ausgegeben werden. Dann werden diese Daten über die Torschaltung 30 und 34 in die Speicherzelle 38 geschrieben.
Wie aus Fig. 25 ersichtlich, besitzt der Adressenüberset­ zungs-Pufferspeicher 12 nur einen Schreibkanal. Der Grund hierfür besteht darin, daß eine Schreibanforderung nur dann auftritt, wenn die Adressenübersetzung die bezeich­ neten Adressendaten nicht getroffen hat. In diesem Fall wird der vom Prozessor ausgeführte Zugriff gesperrt. Der Zugriff des Prozessors auf den Speicher wird nur dann zu­ gelassen, wenn die Speicherdaten neu geschrieben worden sind.
Da der Schreibkanal und die Lesekanäle gemeinsam genutzt werden, leistet die gegenwärtige Ausführungsform der vor­ liegenden Erfindung einen Beitrag zur Verringerung der Speichergröße.
In Fig. 26 ist ein Blockschaltbild der allgemeinen Struk­ tur eines Datenverarbeitungssystems gemäß einer weiteren Ausführungsform gezeigt. In diesem Datenverarbeitungssystem wird der von einer Mehr­ zahl von Speicherbänken mit jeweils einem Lesekanal und jeweils einem Schreibkanal gebildete Cachespeicher in Kombination mit dem Adressenübersetzungs-Pufferspeicher, der n Lesekanäle und einen Schreibkanal besitzt, und zwei Prozessoren P1 und P2 verwendet. Ferner sind ein Be­ fehlsadressen-Übersetzungspuffer ITLB und ein Datenadres­ sen-Übersetzungspuffer DTLB vorgesehen. Der Cachespeicher ist in drei Bänke unterteilt, so daß die Befehls-Cache­ speicherbänke IC1, IC2 und IC3 bzw. die Daten-Cache­ speicherbänke DC1, DC2 und DC3 geschaffen werden. Die Datenübersetzung oder -übertragung wird gemäß eines Direk­ tabbildungsschemas ausgeführt.
Wenn in Fig. 26 die virtuellen Adressen VA1 und VA2 der von den Prozessoren P1 und P2 abzuarbeitenden Befehle an den Befehlsadressen-Übersetzungspuffer ITLB und den Be­ fehls-Cachespeicher IC1, IC2 und IC3 ausgegeben werden, empfängt der Befehlsadressen-Übersetzungspuffer ITLB die Adressenteile A0 und B0 der Adressen VA1 (= A0 + A1 + A2) und VA2 (= B0 + B1 + B2) und gibt auf die Signalleitungen IS1 und IS2 Signale aus, die anzeigen, ob die Adressen­ übersetzung erfolgreich beendet worden ist, woraufhin die Signale an die Datenwählschaltungen IPS1 und IPS2 gelie­ fert werden. Zu diesem Zeitpunkt werden an die Bank-Wähl­ schaltung ICB die Adresseninformation A1 der Adresse VA1 und die Adresseninformation B1 der Adresse VA2 ausgege­ ben. Ferner werden zu diesem Zeitpunkt auch die Adressen­ teile A2 und B2 der Adressen VA1 und VA2 an die Bank- Wählschaltung ICB ausgegeben, um die entsprechende Bank auszuwählen. Die Bankwählschaltung ICB prüft, ob der Adressenteil A2 gleich dem Adressenteil B2 ist. Wenn beide Adressenteile identisch sind, wird festgestellt, daß die Adressen VA1 und VA2 einem Zugriff auf dieselbe Cachespeicherbank dienen. In diesem Fall wird der Adresse VA1 die höhere Priortät oder Präferenz verliehen, während die Adresse VA2 gehalten wird.
Wenn sich die Adresseninformationen A2 und B2 voneinander unterscheiden, wird festgestellt, daß ein Zugriff auf verschiedene Cachespeicherbänke erfolgen soll, woraufhin eine der Adressenleitungen ICS1, ICS2 und ICS3, die dem Wert der Adresseninformation A2 entspricht, als Auswahl­ adresse des Befehls-Cachespeichers gewählt wird, um dar­ aufhin die Adresseninformation A1 auf die gewählte Adressenleitung zu geben. Genauso wird für die Adresseninfor­ mation B2 eine der Adressenleitungen ICS1, ICS2 und ICS3, die dem Wert der Adresseninformation B2 entspricht, für die Auswahladresse des Befehls-Cachespeichers ausgewählt, woraufhin die Adresseninformation B1 auf diese gewählte Adressenleitung gegeben wird. Da bei der gegenwärtig be­ schriebenen Ausführungsform der Cachespeicher in drei Bänke unterteilt ist, ist es ausreichend, daß die Adres­ seninformationen A2 und B2 jeweils einen Umfang von 2 Bits besitzen. Wenn beispielsweise die Adresseninforma­ tion A2 oder B2 den Wert "0" besitzt, kann die Adres­ seninformation A1 oder B1 auf die Adressenleitung ICS1 gegeben werden. Die Adresseninformation A2 oder B2 den Wert "1" besitzt, wird die Adresseninformation A1 oder B1 auf die Adressenleitung ICS2 gegeben. Wenn die Adres­ seninformation A2 oder B2 den Wert "2" besitzt, wird die Adresseninformation A1 oder B1 auf die Adressenleitung ICS3 gegeben. Wenn schließlich die Adresseninformation A2 oder B2 den Wert "3" besitzt, wird die Adresseninforma­ tion A1 oder B1 auf die Adressenleitung ICS3 gegeben. So­ mit kann die Cachespeicherbank, auf die Bezug genommen wird, durch die Verwendung bestimmter Bits (A2, B2) der virtuellen Adressen VA1 und VA2 bestimmt werden, wobei die in der Cachespeicherbank IC1, IC2 oder IC3 befindli­ chen Daten auf die Datenleitung ICD1, ICD2 bzw. ICD3 aus­ gegeben werden können, indem von der Adresseninformation A1 oder B1 Gebrauch gemacht wird.
Die Befehlsdaten-Wählschaltungen IPS1 und IPS2, die ent­ sprechend den einzelnen Prozessoren P1 bzw. P2 vorgesehen sind, rufen über eine der Befehlsdatenleitungen ICD1, ICD2 und ICD3 auf der Grundlage der Information, die der Adressenübersetzung unterworfen worden ist (übersetzte Adresseninformation) und die über die Signalleitungen IS1 oder IS2 geliefert wird, und der Bankinformation A2 oder B2, die aus der Adresseninformation VA1 bzw. VA2 abgelei­ tet worden ist, Daten ab, um auf die Datenleitungen ID1 oder ID2 Eingangsdaten auszugeben. Hierbei dient die übersetzte Adresseninformation IS1 oder IS2 der Entschei­ dung, ob die mittels der Adressen VA1 oder VA2 bezeichne­ ten Daten im Cachespeicher vorhanden sind. Solange die Daten nicht im Cachespeicher vorhanden sind, wird die Da­ tenübertragung an die Prozessoren P1 und P2 von der Be­ fehlsdaten-Wählschaltung IPS1 bzw. IPS2 unterbrochen. Wenn jedoch die Daten im Cachespeicher vorhanden sind, werden die Befehlsdaten-Wählschaltungen IPS1 und IPS2 beide aktiviert, so daß die von diesen Schaltungen ge­ wählten Daten über die Datenleitungen ID1 bzw. ID2 an die Prozessoren P1 bzw. P2 geliefert werden. Daher können die beiden Prozessoren P1 und P2 parallel zueinander arbei­ ten.
Nun werden die Operationen oder Funktionen des Da­ tenadressenübersetzungs-Pufferspeichers DTLB und der Da­ ten-Cachespeicherbänke DC1, DC2 und DC3 beschrieben.
Wenn die Prozessoren P1 und P2 Adressen VA3 und VA4 er­ zeugen, um auf Daten zuzugreifen, werden die Adressenin­ formationen A3 und B3 der Adressen VA3 bzw. VA4 an den Datenadressenübersetzungs-Pufferspeicher DTLB geliefert, anschließend wird das Ergebnis der Adressenübersetzung über die Signalleitungen DS1 und DS2 an die Datenauswahl­ schaltungen DPS1 und DPS2 geschickt. Ferner werden in diesem Moment die Adresseninformationen A4 und A5 der Adresse VA3 und die Adresseninformationen B4 und B5 der Adresse VA4 an die Daten-Cachespeicherbank-Auswahlschal­ tung DCB geschickt. Die Bank-Auswahlschaltung DCB ist so aufgebaut, daß sie die Adresseninformation A4 und B4 entsprechend der Bankauswahlinformation A5 bzw. B5 auf eine der Adressenleitungen DCS1 bis DCS3 liefert. Somit werden Daten aus zwei der Cachespeicherbänke DC1, DC2 und DC3 ausgelesen und auf die Datenleitungen DCD1, DCD2 bzw. DCD3 ausgegeben. Wenn hierbei die Adresseninformation A5 mit der Adresseninformation B5 identisch ist, bedeutet dies, daß ein Bankkonflikt oder eine Bankkonkurrenz auf­ tritt. Daher werden in diesem Fall die Adresseninforma­ tionen A4 und B4 nacheinander an diejenige Bank ge­ schickt, in bezug auf die der Konflikt auftritt. An­ schließend übertragen die Datenwählschaltungen DPS1 und DPS2 die auf einer der Datenleitungen DCD1, DCD2 und DCD3 vorhandenen Daten auf der Grundlage der Signale auf den Signalleitungen DS1 und DS2 und der Adresseninformation A5 und B5 über die Datenleitungen DD1 bzw. DD2 an den Prozessor P1 bzw. P2. Somit können die Prozessoren P1 und P2 zueinander parallel arbeiten.
In Fig. 27 ist ein Blockschaltbild einer typischen Struk­ tur der Befehlsdaten-Wählschaltungen IPS1 bzw. IPS2 ge­ zeigt.
Der Befehlsadressenübersetzungs-Pufferspeicher ITLB um­ faßt eine einer virtuellen Seite VPN entsprechende physi­ kalische Seite PPN, wobei durch die Daten "Daten", die der physikalischen Seite PPN entsprechen, drei Cache­ speicherbänke IC1, IC2 und IC3 gebildet werden. Die Da­ tenwählschaltung IPS1 enthält Komparatoren CMP1, CMP2 und CMP3 und Selektoren AS1, DS1 und PS1, die wie in Fig. 27 gezeigt miteinander verschaltet sind, während die Daten­ wählschaltung IPS2 Komparatoren CMP4, CMP5 und CMP6 und Selektoren AS2, DS2 und PS2 umfaßt.
Mit der obenbeschriebenen Struktur reagiert der Puffer­ speicher ITLB auf die Eingabe der Adresseninformation A0 und B0 und gibt die übersetzte Adresseninformation (d. h. die einer Adressenübersetzung unterworfene Information) IS1 und IS2 aus. Entsprechend der übersetzten Adressenin­ formation IS1 und IS2 führen die zugeordneten Datenwähl­ schaltungen IPS1 und IPS2 gleichzeitig parallele Opera­ tionen aus. Genauer wird in der Wählschaltung IPS1 die Information einer virtuellen Seite VPN, die einen Teil der übersetzten Adresseninformation IS1 bildet, vom Kom­ parator CMP1 mit der Adresseninformation A0 verglichen, um zu prüfen, ob die Adressenübersetzung erfolgreich aus­ geführt worden ist. Zu diesem Zeitpunkt gibt die bezeich­ nete Cachespeicherbank IC1, IC2 oder IC3 die Daten der physikalischen Seite PPN auf der Grundlage der Bankaus­ wahlinformation ICS1, ICS2 oder ICS3 als Daten ICD1, ICD2 oder ICD3 aus, wobei die ausgegebenen Daten in die Selek­ toren AS1 und DS1 eingegeben werden. Der Selektor AS1 liefert die Bankausgabe PPN unter Verwendung der Bankaus­ wahlinformation A2 an den Komparator CMP2. Der Komparator CMP2 vergleicht dann die Daten der physikalischen Seite PPN des Pufferspeichers ITLB mit den Daten der physikali­ schen Seite PPN der vom Selektor AS1 ausgewählten Cache­ speicherbank, um festzustellen, ob die Inhalte der beiden Datensätze miteinander übereinstimmen. Das Ergebnis der Feststellung wird an den Komparator CMP3 ausgegeben. Das bedeutet, daß der Komparator CMP2 die Funktion der Ent­ scheidung hat, ob die der Adresse VA1 entsprechenden Da­ ten im Cachespeicher vorhanden sind.
Nun stellt der Komparator CMP3 fest, ob die Adressenüber­ setzung und der Zugriff auf den Cachespeicher erfolgreich gewesen sind. Wenn dies der Fall ist, gibt der Selektor PS1 die Ausgabe des Selektors DS1 auf die Datenleitung ID1 aus, andernfalls gibt der Selektor PS1 Daten vom Hauptspeicher A4 auf die Datenleitung ID1 aus.
Andererseits werden die Daten "Daten" der Cachespeicher­ bänke IC1, IC2 und IC3 in den Selektor DS1 eingegeben, wobei die Daten, die gemäß der Adresseninformation ausge­ wählt werden, an den Selektor PS1 geliefert werden, der wiederum die der Adresse VA1 entsprechenden Daten auf die Datenleitung ID1 ausgibt. Daraus wird deutlich, daß die Selektoren DS1 und PS1 der Datenauswahl dienen.
Die Datenwählschaltung IPS2 führt parallel zur Datenwähl­ schaltung IPS1 eine ähnliche Verarbeitung wie diese aus. Bei Eingabe der übersetzten Adresseninformation IPS2 wird die Information der virtuellen Seite VPN vom Komparator CMP4 mit der Adresseninformation B0 verglichen, wobei das Ergebnis dieses Vergleichs in den Komparator CMP6 einge­ geben wird. Die Information der physikalischen Seite PPN, die die restliche Information der übersetzten Adressenin­ formation IS2 (d. h. der aus der Adressenübersetzung sich ergebenden Information) darstellt, wird an den Komparator CMP5 geliefert. Weiterhin werden die Information der phy­ sikalischen Seite PPN, die von den Cachespeicherbänken IC1, IC2 und IC3 des in eine Mehrzahl von Bänken unter­ teilten Cachespeichers ausgegeben wird, und die Datenin­ formation "Daten" an die Selektoren AS2 bzw. DS2 gelie­ fert, woraufhin die entsprechende physikalische Seite PPN und die Daten "Daten" gemäß der Bankauswahlinformation an den Komparator CMP5 und den Selektor PS2 geliefert wer­ den. Auf diese Weise wird der gegenseitige Vergleich der physikalischen Seiten PPN mittels des Komparators CMP5 ausgeführt, wobei das Ergebnis dieses Vergleichs an den Komparator CMP6 ausgegeben wird, der wiederum feststellt, ob die Adressenübersetzung erfolgreich ausgeführt worden ist und ob die Daten im Cachespeicher vorhanden sind. In Abhängigkeit vom Ergebnis dieser Entscheidung wird der Selektor PS2 entsprechend gesteuert. Wenn daher die Aus­ gabe des Komparators CMP6 hohen Pegel besitzt, wird die Ausgabe des Selektors DS2 auf die Datenleitung ID2 ausge­ geben, während dann, wenn die Ausgabe des Komparators CMP6 niedrigen Pegel besitzt, die Daten aus dem Haupt­ speicher A4 ausgelesen und auf die Datenleitung ID2 gege­ ben werden.
In Fig. 28 ist ein Blockschaltbild einer typischen Struk­ tur der Datenwählschaltungen DPS1 und DPS2 gezeigt. Die Datenwählschaltung DPS1 umfaßt Komparatoren CMP7, CMP8 und CMP9 und Selektoren AS3, DS3 und PS3, während die Da­ tenwählschaltung DPS2 Komparatoren CMP10, CMP11 und CMP12 und Selektoren AS4, DS4 und PS4 umfaßt. Der Datenadres­ senübersetzungs-Pufferspeicher DTLB umfaßt eine virtuelle Seite VPN und eine entsprechende pyhsikalische Seite PPN. Der Cachespeicher ist in drei Cachespeicherbänke DC1, DC2 und DC3 unterteilt, wobei jede der Cachespeicherbänke DC1 bis DC3 eine physikalische Seite PPN und entsprechende Daten "Daten" enthält.
Wenn in der obenbeschriebenen Struktur die Adresseninfor­ mation A3 bzw. B3 an den Datenadressenübersetzungs-Puf­ ferspeicher DTLB ausgegeben wird, wird die übersetzte Adresseninformation DS1 bzw. DS2, die sich aus der Adres­ senübersetzung ergibt, aus dem Pufferspeicher DTLB ausge­ geben. Auf der Grundlage der übersetzten Adresseninforma­ tion führen die beiden Datenwählschaltungen DPS1 und DPS2 parallel zueinander Operationen aus. Genauer wird in der Datenwählschaltung DPS1 die Information einer virtuellen Seite VPN, die einen Teil der übersetzten Adresseninfor­ mation DS1 bildet, vom Komparator CMP7 mit dem Inhalt der Adresseninformation A3 verglichen, um festzustellen, ob die Adressenübersetzung erfolgreich beendet worden ist. Zu diesem Zeitpunkt werden von einer der Cachespeicher­ bänke entsprechend der Bankauswahlinformation DCS1 bis DCS3 die physikalische Seite PPN und die Daten "Daten" ausgegeben, um anschließend in die Selektoren AS3 bzw. DS3 eingegeben zu werden. Der Selektor AS3 liefert die Ausgabe PPN der zugehörigen Bank entsprechend der Bank­ auswahlinformation A5 an den Komparator CMP8. Anschlie­ ßend vergleicht der Komparator CMP8 die vom Pufferspei­ cher DTLB gelieferte Information mit der Information vom Selektor AS3, um festzustellen, ob zwischen den jeweili­ gen Informationen der phyiskalischen Seiten PPN eine Übereinstimmung vorhanden ist. Das bedeutet, daß der Kom­ parator CMP8 die Funktion hat, zu prüfen, ob die der Adresse VA3 entsprechenden Daten im Cachespeicher vorhan­ den sind.
Der Komparator CMP9 stellt auf der Grundlage der Ausgaben von den Komparatoren CMP7 und CMP8 fest, ob die Adressen­ übersetzung und der Zugriff auf den Cachespeicher erfolg­ reich beendet worden sind, und schickt das Ergebnis zum Selektor PS3. Wenn die Antwort der vom Komparator CMP9 getroffenen Entscheidung positiv ist, was bedeutet, daß sowohl die Adressenübersetzung als auch der Zugriff auf den Cachespeicher erfolgreich ausgeführt worden sind, werden die vom Selektor DS3 ausgewählten Daten auf die Datenleitung DD1 ausgegeben; ist hingegen die Antwort der obigen Entscheidung negativ, was bedeutet, daß zumindest eine der obenerwähnten Verarbeitungen fehlerhaft war, werden die Daten aus dem Hauptspeicher A4 ausgelesen und auf die Datenleitung DD1 gegeben.
Wenn andererseits irgendeine der Cachespeicherbänke DC1 bis DC3 gewählt wird, werden die Daten der gewählten Cachespeicherbank in den Selektor DS3 eingegeben, wobei die gemäß der Adresseninformation A5 bezeichneten Daten an den Selektor PS3 geliefert werden. Somit kann der letztere die der Adresse VA3 entsprechenden Daten auf die Datenleitung DD1 ausgeben.
Die Datenwählschaltung DP2 führt parallel zur ersten Da­ tenwählschaltung DP1 eine ähnliche Verarbeitung wie diese aus. Zunächst wird die Information der phyiskalischen Seite VPN, die einen Teil der übersetzten Adresseninfor­ mation bildet, vom Komparator CMP10 mit der Adressenin­ formation B3 verglichen, wobei das Ergebnis dieses Ver­ gleichs an den Komparator CMP12 ausgegeben wird. Außerdem wird die Information der physikalischen Seite PPN, die einen weiteren Teil der übersetzten Adresseninformation bildet, an den Komparator CMP11 ausgegeben und dort mit der Information vom Selektor AS4 verglichen. Die physika­ lische Seite PPN und die Daten "Daten", die von den Cachespeicherbänken DC1 bis DC3 ausgegeben werden, werden in die Selektoren AS4 bzw. DS4 eingegeben, woraufhin die Information der phyiskalischen Seite PPN und diejenige der Daten "Daten", die der Bankauswahlinformation B5 ent­ sprechen, an den Komparator CMP11 bzw. an den Selektor PS4 geliefert werden. Wenn vom Komparator CMP11 zwischen der Information der physikalischen Seite PPN des Puffer­ speichers DTLB und der Information der physikalischen Seite PPN des Cachespeichers eine Übereinstimmung festge­ stellt wird, werden die vom Selektor AS4 ausgewählten Da­ ten an den Komparator CMP12 geliefert. Wenn vom Kompara­ tor CMP11 festgestellt wird, daß die Adressenübersetzung erfolgreich beendet worden ist, bedeutet dies, daß die Daten im Cachespeicher vorhanden sind. In den Komparator CMP12 werden die Ausgabe des Komparators CMP10, die eine erfolgreiche Adressenübersetzung anzeigt, und die Ausgabe des Komparators CMP11, die einen erfolgreichen Zugriff auf den Cachespeicher anzeigt, eingegeben, um festzustel­ len, ob beide erfolgreich beendet worden sind. Das Ergeb­ nis dieser Entscheidung wird anschließend an den Selektor PS4 geliefert, dessen zweiter Eingang mit den Daten vom Selektor DS4 versorgt wird. Die in einem der Cache­ speicherbänke DC1 bis DC3 vorhandenen Daten "Daten" wer­ den entsprechend der Bankauswahlinformation B5 gewählt. Die ausgewählten Daten werden über den Selektor DS4 auf die Datenleitung DD2 ausgegeben, wenn die Ausgabe des Komparators CMP12 hohen Pegel besitzt. Wenn die Ausgabe des Komparators CMP12 andererseits niedrigen Pegel be­ sitzt, werden die der Adresse VA4 entsprechenden Daten aus dem Hauptspeicher A4 ausgelesen und auf die Datenlei­ tung DD2 ausgegeben. Somit können die Prozessoren P1 und P2 parallel zueinander arbeiten.
In Fig. 29 ist ein Blockschaltbild einer Struktur des Da­ tenverarbeitungssystems gemäß einer weiteren Ausführungs­ form gezeigt. In Fig. 29 wird jeder der Speicher 50-1 bis 50-n, die jeweils einen Be­ fehlsadressen-Übersetzungspuffer und einen Cachespeicher enthalten, von einem Speicher gebildet, der einen Leseka­ nal und einen Schreibkanal besitzt. Der Datenadressen­ übersetzungs-Pufferspeicher 12A umfaßt einen Speicher mit n Lesekanälen und einem Schreibkanal. Der Daten-Cache­ speicher 14A ist in m Banken 14A-1, . . ., 14A-m unterteilt, so daß jede Cachespeicherbank einen Lesekanal und einen Schreibkanal besitzt. Die Speicher 50-1 bis 50-n sind mit einer Multiplex-Einrichtung 48 verbunden, deren Ausgang mit einer Multiplex-Einrichtung 46 verbunden ist, wobei diese Multiplex-Einrichtung 46 außerdem mit dem Pufferspeicher 12A und mit dem Cachespeicher 14A-1, . . ., 14A-m und andererseits mit dem Hauptspeicher A4 verbunden ist. Die gegenwärtig beschriebene Ausführungsform trägt zu ei­ ner Verringerung der Hardware-Kosten bei, weil der Be­ fehls-Cachespeicher, in den nur selten neue Werte ge­ schrieben werden, nicht von einem teueren Mehrkanal-Spei­ cher gebildet werden muß.
In Fig. 30 ist ein Blockschaltbild einer weiteren Ausfüh­ rungsform eines Datenverarbeitungssystems gezeigt. Wenn in dieser Ausführungsform eine Mehrzahl von Prozessoren P1, . . ., Pn im Datenverarbeitungssystem ange­ ordnet werden, werden an den Eingangsseiten und Ausgangs­ seiten der Prozessoren P1, . . ., Pn Multiplex-Einrichtungen 54 und 56 angeordnet, wobei die Prozessoren P1, . . ., Pn, ein Befehls-Cachespeicher IC und ein Daten-Cachespeicher DC mittels dieser Multiplex-Einrichtungen 54 und 56 mit­ einander verbunden werden, während ein Befehlsadressen­ übersetzungs-Pufferspeicher ITLB, der Befehls-Cachespei­ cher IC, ein Datenadressenübersetzungs-Pufferspeicher DTLB und der Daten-Cachespeicher DC mittels einer Multi­ plex-Einrichtung 52 mit dem Hauptspeicher A4 verbunden sind. Bei dieser Struktur können die Prozessoren parallel auf die Cachespeicher zugreifen, wobei ein Zugriff auf den Hauptspeicher A4 im Multiprozessorbetrieb ausgeführt wird.
In Fig. 31 ist ein Blockschaltbild der internen Struktur eines i-ten Prozessors gezeigt.
Der i-te Prozessor enthält zwei Befehlsdekoder DEC1 und DEC2, zwei Recheneinheiten ALU1 und ALU2, eine Register­ datei RF mit vier Ausgängen und zwei Eingängen, ein er­ stes Speicheradressenregister MAR1, ein erstes Speicherdatenregister MER1, ein zweites Speicheradressenregister MAR2 und ein zweites Speicherdatenregister MDR2. Hierbei sind die Register MAR1 und MAR2 mit den Adressenleitungen A10 bzw. A11 verbunden, während die Register MDR1 und MDR2 mit den Datenleitungen D10 bzw. D11, der Dekoder DEC1 über ein Befehlspufferregister IDR1 mit der Adres­ senleitung A10 und der Dekoder DEC2 über ein Befehlspuf­ ferregister IDR2 mit der Adressenleitung A11 verbunden ist.
Mit der obenbeschriebenen Struktur des Prozessors können die in den Prozessor eingebauten zwei Recheneinheiten ALU1 und ALU2 unter Verwendung der Register MAR1 bzw. MAR2 unabhängig voneinander einen Speicherzugriff ausfüh­ ren. Somit kann ein einziger Prozessor eine Mehrzahl von Befehlen gleichzeitig abarbeiten, während eine Mehrzahl von Prozessoren parallele Verarbeitungen ausführen kön­ nen, wobei die Datenverarbeitungsgeschwindigkeit be­ trächtlich erhöht werden kann.
Aus der obigen Beschreibung wird deutlich, daß in dem beschriebenen Aufbau des Datenverarbeitungssystems der Lesekanal des Adressenübersetzungs-Pufferspeichers in ei­ ner Mehrkanal-Konfiguration implementiert ist, wobei der Cachespeicher in eine Mehrzahl von Cachespeicherbänken unterteilt ist, so daß eine Mehrzahl von Prozessoren auf den Cachespeicher parallel zugreifen können und die Tref­ ferrate des Cachespeichers selbst dann beträchtlich er­ höht werden kann, wenn große Datenmengen von einer Mehr­ zahl von Prozessoren gemeinsam benutzt werden. Wenn fer­ ner der Cachespeicher von einem Speicher gebildet wird, der einen Lesekanal und einen Schreibkanal aufweist, kann die Chipgröße beträchtlich verringert werden.

Claims (26)

1. Datenverarbeitungssystem mit
mehreren Prozessorelementen (A2, A3) zum Abarbeiten von Befehlen, von denen jedes eine Registerdatei (D15, D16) zum Speichern von verarbeiteten oder zu verarbei­ tenden Daten aufweist, sowie Dekoder (D5-D9) zur Identi­ fizierung von Quellregistern der Registerdatei,
einem Hauptspeicher (A4), der von den Prozessorele­ menten (A2, A3) gemeinsam genutzt wird, und
einer Taktgebereinrichtung (A11), die ein Taktsignal erzeugt und mit den Prozessorelementen (A2, A3) verbunden ist,
Parallelbetrieb-Steuereinrichtungen (A9, A10), die mehreren Prozessorelementen (A2, A3) einen Betrieb syn­ chron zu dem von der Taktgebereinrichtung (A11) erzeugten Taktsignal ermöglichen, und
einer Multiprozessorbetrieb-Steuereinrichtung (A8), die mit den Prozessorelementen (A2, A3) verbunden ist, um den Prozessorelementen (A2, A3) einen jeweils von den anderen Elementen unabhängigen Betrieb zu ermöglichen,
dadurch gekennzeichnet, daß
ein Parallelismus-Flag (A7) vorgesehen ist, das die parallele Betriebsart anzeigt,
die Parallelbetrieb-Seuereinrichtungen jeweils inner­ halb jedes Prozessorelements (A2, A3) vorgesehen sind, und globale Busse (d5, d6) aufweisen, mit denen die Prozessorelemente mittels Gattern (D17) und nach Maß­ gabe des Parallelismus-Flags (A7) untereinander ver­ bunden werden können, um die gemeinsame Nutzung einer Registerdatei (D15) eines Prozessorelements (A2) durch eine Anzahl n von Prozessorelementen (A2, A3) zu ermöglichen, wobei diese Registerdatei eine Anzahl von Kanälen hat, die n mal größer ist als die einer Re­ gisterdatei in einem anderen Prozessorelement (A3), und
der Betrieb der Dekoder der weiteren Prozessorelemente (A3) in Abhängigkeit davon, ob sich die Prozessorele­ mente in der Multiprozessorbetriebsart oder in der Parallelbetriebsart befinden, geändert oder abgewandelt wird.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch ge­ kennzeichnet, daß die Parallelbetrieb-Steuereinrichtung
eine Zustandsbit-Einrichtung (A7), die einen Wert hält, der anzeigt, ob eine oder mehrere der Parallelbe­ trieb-Steuereinrichtungen (A9, A10) oder die Multipro­ zessorbetrieb-Steuereinrichtung (A8) aktiviert werden sollen; und
eine Ausgangsleitung (a1) zum Übertragen der Ausgabe der Zustandsbit-Einrichtung (A7) an die Mehrzahl der Parallelbetrieb-Steuereinrichtungen (A9, A10) und an die Multiprozessorbetrieb-Steuereinrichtung (A8) umfaßt.
3. Datenverarbeitungssystem gemäß Anspruch 1, gekennzeich­ net durch
einen Cachespeicher (A5), der mit den Prozessorele­ menten (A2, A3) verbunden ist und von ihnen gemeinsam genutzt wird; und
eine Cachespeicher-Steuereinrichtung (A6), die in Abhängigkeit davon, ob sich das Datenverarbeitungssystem (A1) im Parallelbetrieb oder im Mulitprozessorbetrieb befindet, was durch ein von der Parallelbetrieb-Steuer­ einrichtung erzeugtes Signal angezeigt wird, vorgegebene Bedingungen für die Zugriffe auf den Cachespeicher (A5) durch die Prozessorelemente (A2, A3) erzeugt.
4. Datenverarbeitungssystem nach Anspruch 3, dadurch ge­ kennzeichnet, daß der Cachespeicher (A5)
mehrere Cachespeicherbänke (14A-1 bis 14A-m); und
eine Auswahleinrichtung (16), die auf der Grundlage der von den Prozessorelementen (20-i) geschickten Zu­ griffsadresseninformation eine der Bänke (14A-1 bis 14A-m) auswählt,
umfaßt.
5. Datenverarbeitungssystem nach Anspruch 4, dadurch ge­ kennzeichnet, daß die Auswahleinrichtung eine Entschei­ dungseinrichtung (CMP) enthält, die entscheidet, ob die Daten, auf die zugegriffen werden soll, in der von der Auswahleinrichtung ausgewählten Bank vorhanden sind.
6. Datenverarbeitungssystem nach Anspruch 6, gekennzeichnet durch einen Adressenübersetzungspuffer (TLB), der mit Zu­ griffsadresseninformation von der Mehrzahl der Prozes­ sorelemente (P1, P2) gefüllt wird, um diese Zugriffs­ adresseninformation in eine physikalische Adresse des Hauptspeichers (A4) zu übersetzen.
7. Datenverarbeitungssystem nach Anspruch 2 und 3, dadurch gekennzeichnet, daß die vorgegebenen Bedingungen dann, wenn die im Datenverarbeitungssystem (A1) enthaltenen Prozessorelemente (A2, A3) durch n gegeben sind und die Bitbreite für einen zwischen dem Cachespeicher (A5) und der Mehrzahl der Prozessorelemente (A2, A3) stattfinden­ den Zugriff durch k gegeben ist, auf "eine Adressenein­ gabe/eine Ausgabe von n . k Bits" gesetzt wird, solange das von der Parallelbetrieb-Steuereinrichtung (A7) er­ zeugte Signal die Parallelbetriebsart anzeigt, während die vorgegebenen Bedingungen auf "n Adresseneingaben und n Eingaben/Ausgaben mit jeweils k Bits" gesetzt werden, wenn die Daten in der Parallelbetriebsart, die von dem von der Parallelitäts-Steuereinrichtung (A7) gelieferten Signal angezeigt wird, aus dem Cachespeicher (A5) ausge­ lesen werden und wenn die Lese-/Schreiboperation für den Cachespeicher (A5) in der Multiprozessorbetriebsart, die von dem von der Parallelbetrieb-Steuereinrichtung (A7) gelieferten Signal angezeigt wird, ausgeführt wird.
8. Datenverarbeitungssystem nach Anspruch 6, dadurch ge­ kennzeichnet, daß der Adressenübersetzungspuffer (TLB) einen Befehlsadres­ sen-Übersetzungspuffer (ITLB) und einen Datenadressen­ übersetzungspuffer (DTLB) umfaßt, die jeweils mit den Prozessorelementen (P1, P2) verbunden sind und als Ein­ gaben Adresseninformation für den Zugriff auf eine Adresse bzw. auf Daten im Hauptspeicher (A4) empfangen und die Adresseninformation in eine physikalische Adresse des Hauptspeichers (A4) übersetzen.
9. Datenverarbeitungssystem nach Anspruch 8, dadurch ge­ kennzeichnet, daß
der Cachespeicher (A5) einen Befehls-Cachespeicher (B1; IC) und einen Daten-Cachespeicher (B2; DC) enthält, die jeweils eine Bankstruktur (IC1 bis IC3; DC1 bis DC3) besitzen, um Befehlsadressen und Datenadressen von der Mehrzahl der Prozessorelemente (A2, A3; 20) zu halten;
die Auswahleinrichtung eine Befehlsauswahleinrichtung (ICB, IPS1, IPS2) und eine Datenauswahleinrichtung (DCB, DPS1, DPS2) enthält, die mit dem Befehls-Cachespeicher (B1; IC) bzw. mit dem Daten-Cachespeicher (B2; DC) ver­ bunden sind, um Zugriffe auf den Befehls-Cachespeicher (B1; IC) bzw. auf den Daten-Cachespeicher (B2; DC) aus­ zuführen.
10. Datenverarbeitungssystem nach einem der Ansprüche 3 bis 9, dadurch gekennzeichnet, daß die Parallelbetrieb-Steuereinrichtung (A9, A10) jeweils gleichzeitig n Befehle, die sich hintereinander entweder im Speicher (A4) oder im Cachespeicher (A5) befinden, auslesen und gleichzeitig diese n Befehle an die n Pro­ zessorelemente (A2, A3) liefern, um die n Prozessorele­ mente dazu zu veranlassen, gleichzeitig synchron zuein­ ander zu arbeiten, so daß die n Befehle parallel abgear­ beitet werden.
11. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß
wenigstens eines der Prozessorelemente m Befehlsregi­ ster (D1, D2), m Befehlsdekoder (D5, D6) und m Rechen­ einheiten (D11, D12) aufweist und
die Registerdatei (D15; D16) jeweils wenigstens m Eingangskanäle und 2 . m Ausgangskanäle enthält und
m Befehle parallel zueinander abgearbeitet werden.
12. Datenverarbeitungssystem nach Anspruch 11, dadurch ge­ kennzeichnet, daß die Parallelbetrieb-Steuereinrichtun­ gen (A9, A10) jeweils gleichzeitig n . m Befehle, die sich hintereinander entweder im Speicher (A4) oder im Cachespeicher (A5) befinden, unter der Zeitsteuerung einer Grundtaktgebereinrichtung (A11) auslesen und die n . m Befehle gleichzeitig auf einer m : m-Basis an die n Prozessorelemente (A2, A3) liefern, um die n Prozessor­ elemente (A2, A3) dazu zu veranlassen, gleichzeitig syn­ chron zueinander zu arbeiten und die parallele Abarbei­ tung von n . m Befehlen zu ermöglichen.
13. Datenverarbeitungssystem nach Anspruch 3, wobei jedes Prozessorelement (A2, A3) einen Programmzähler (G2) ent­ hält, der die Adresse eine Befehls mit einer Länge von k Bits anzeigt, dadurch gekennzeichnet, daß
die Cachespeicher-Steuereinrichtung (A6) den Cache­ speicher (B1) in eine Betriebsart versetzt, in der n Adressen eingegeben und n Befehle mit einer Länge von k Bits ausgelesen werden, derart, daß die n Prozessorele­ mente (A2, A3) getrennt aus den durch die zugehörigen Programmzähler (G2) bezeichneten Adressen Befehle mit einer Länge von k Bits auslesen, wenn das Parallelitäts- Zustandsbit (A7) die Multiprozessorbetriebsart anzeigt; und
die Cachespeicher-Steuereinrichtung (A6) den Cache­ speicher (B1) in eine Betriebsart versetzt, in der eine Adresse eingegeben und eine Ausgabe mit n . k Bits aus­ gegeben wird, derart, daß n Befehle nacheinander aus einer durch den Programmzähler (G2) eines der Prozes­ sorelemente (A2, A3) bezeichneten Adresse ausgelesen werden, wenn das Parallelitäts-Zustandsbit (A7) die Parallelbetriebsart anzeigt.
14. Datenverarbeitungssystem nach Anspruch 3, wobei jedes der n Prozessorelemente (A2, A3) einen Programmzähler enthält, der die Adressen von m Befehlen mit einer jeweiligen Länge von k Bits, die hintereinander ange­ ordnet sind, anzeigt, dadurch gekennzeichnet, daß die Cachespeicher-Steuereinrichtung (A6) den Cache­ speicher (B1) in eine Betriebsart versetzt, in der n Adressen eingegeben und n . m Befehle mit einer Länge von k Bits ausgegeben werden, derart, daß n Prozessor­ elemente (A2, A3) getrennt m Befehle mit einer jeweili­ gen Länge von k Bits aus den durch die zugehörigen Pro­ grammzähler bezeichneten Adressen auslesen, wenn das Parallelitäts-Zustandsbit (A7) die Multiprozessorbe­ triebsart anzeigt, und die Cachespeicher-Steuereinrichtung (A6) den Cache­ speicher (B1) in eine Betriebsart versetzt, in der eine Adresse eingegeben und eine Ausgabe mit n . m . k Bits ausgegeben wird, derart, daß n . m Befehle nacheinander aus der vom Programmzähler eines der Prozessorelemente (A2, A3) bezeichneten Adresse ausgelesen werden, wenn das Parallelitäts-Zustandsbit (A7) die Parallelbetriebs­ art anzeigt.
15. Datenverarbeitungssystem nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß nur der Programmzähler des bestimmten Prozessorelementes die Adresse des Befehls hält, wenn das Parallelitäts-Zustandsbit (A7) die Paral­ lelbetriebsart anzeigt.
16. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, daß die Multiprozessor- Steuereinrichtung (A8)
einen Kommunikationsbus (h1), der eine Datenübertra­ gung zwischen den n Prozessorelementen (A2, A3) ermög­ licht,
eine Bus-Vorrangschaltung (H3) zur Verwaltung des Kommunikationsbusses (h1) und
n Synchronisationseinrichtungen (H1, H2) für die Syn­ chronisation der Prozessorelemente (A2, A3) miteinander enthält.
17. Datenverarbeitungssystem nach Anspruch 16, dadurch ge­ kennzeichnet, daß
für jedes der Prozessorelemente (A2, A3) ein Sendebe­ fehl zum Senden eines Registerwertes an wenigstens eines der anderen Prozessorelemente (A3, A2) oder ein Emp­ fangsbefehl zum Empfangen eines Registerwertes von dem anderen Prozessorelement (A3, A2) vorgesehen sind;
eine Entsprechung zwischen dem Sendebefehl und dem Empfangsbefehl durch die Synchronisationseinrichtungen (H1, H2) und durch die Bus-Vorrangschaltung (H3) erzeugt wird und
bei Abarbeitung eines Registerübertragungsbefehls das betreffende Prozessorelement (A2, A3) die Registerüber­ tragung über den Kommunikationsbus (h1) ausführt, falls das andere Prozessorelement (A3, A2), das den Register­ wert empfangen soll, entweder den Empfangsbefehl oder den Sendebefehl abarbeitet, während das betreffende Pro­ zessorelement (A2, A3) in einen temporären Unterbre­ chungszustand versetzt wird, wenn das andere Prozessor­ element (A3, A2) den entsprechenden Registerübertra­ gungsbefehl nicht abarbeitet, wobei der temporäre Unter­ brechungszustand solange aufrechterhalten wird, bis das andere Prozessorelement (A3, A2) den Zustand wiederauf­ nimmt, in dem es den entsprechenden Registerübertra­ gungsbefehl abarbeiten kann.
18. Datenverarbeitungssystem nach Anspruch 16, dadurch ge­ kennzeichnet, daß
für jedes der Prozessorelemente (A2, A3) ein Sendebe­ fehl zum Senden eines Registerwertes an wenigstens eines der anderen Prozessorelemente (A3, A2) oder ein Emp­ fangsbefehl zum Empfangen des Registerwertes von dem anderen Prozessorelement (A3, A2) vorgesehen sind;
die Synchronisationseinrichtungen (H1, H2) Puffer (12, 13) enthalten, die wenigstens einen Datensatz für jedes der Prozessorelemente (A2, A3) speicher können;
bei Ausführung des Sendebefehls durch eines der Pro­ zessorelemente (A2, A3) dieses eine Prozessorelement (A2, A3) einen Registerwert über den Kommunikationsbus (h1) in den Puffer des anderen Prozessorelements (A3, A2), für das der Sendebefehl abgearbeitet werden soll, schreibt, vorausgesetzt, daß in diesem Puffer ein leerer Bereich vorhanden ist, während in dem Fall, in dem im Puffer des anderen Prozessorelements (A3, A2) kein leerer Bereich vorhanden ist, das eine Prozessorelement (A2, A3) in einen temporären Unterbrechungszustand ver­ setzt wird, bis aus dem. Puffer Daten ausgelesen werden und so ein leerer Bereich erzeugt wird; und
bei Ausführung des Empfangsbefehls das eine Prozes­ sorelement (A2, A3) einen vom Puffer dieses Prozessor­ elementes (A2, A3) zu empfangenden Registerwert aus­ liest, vorausgesetzt, daß in dem Puffer Daten vorhanden sind, während das eine Prozessorelement (A2, A3) dann, wenn in dem Pffer dieses Prozessorelementes (A2, A3) keine Daten vorhanden sind, solange in den temporären Unterbrechungszustand versetzt wird, bis Daten in den Puffer geschrieben werden.
19. Datenverarbeitungssystem gemäß Anspruch 16, gekennzeich­ net durch
eine Einrichtung zum Ausgeben eines Unterbrechungsbe­ fehls für eine Unterbrechungsoperation eines gegebenen Prozessorelementes mittels der Angabe einer Adresse;
eine Einrichtung zum Ausgeben eines Neustartbefehls für den erneuten Start der Operation des bei der be­ zeichneten Adresse unterbrochenen Prozessorelementes; und
ein Unterbrechungsadressenregister (T1) zum Speichern der durch einen Unterbrechungsbefehl bezeichneten Adres­ se und eine Vergleichsschaltung (T2), die für jedes der Prozessorelemente vorgesehen ist,
wobei die Vergleichsschaltung (T2) den Inhalt des Un­ terbrechungsadressenregisters (T1) mit der über den Kom­ munikationsbus (h1) gemeldeten Adresse vergleicht und das entsprechende Prozessorelement aus dem temporären Unterbrechungszustand freigegeben wird, wenn der Ver­ gleich eine Übereinstimmung ergibt, und
wobei bei Abarbeitung des Unterbrechungsbefehls das betreffende Prozessorelement die bezeichnete Adresse in sein eigenes Stopp-Adressenregister schreibt und in den temporären Unterbrechungszustand versetzt wird und bei einem erneuten Start der Abarbeitung des Befehls die bestimmte Adresse über den Kommunikationsbus (h1) an die anderen Prozessorelemente gemeldet wird.
20. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß
die Multiprozessorbetrieb-Steuereinrichtung (A8) Zu­ griffsteuerleitungen und Zugriffadressenleitungen (g1, g2) enthält, über die die n Prozessorelemente (A2, A3) einzeln auf den Speicher (A4) zugreifen können, und
die Steuerung so ausgeführt wird, daß dann, wenn der Zugriff auf den Speicher (A4) durch die Prozessorele­ mente (A2, A3) eine Anforderung darstellt, die ein und dieselbe Adresse bezeichnet, nur einem der Prozessor­ elemente ein Recht auf Abarbeitung zugeteilt wird, wäh­ rend dann, wenn die Anforderung verschiedene Adressen bezeichnet, das Recht auf Abarbeitung gleichzeitig einer Mehrzahl von diese Anforderungen ausgebenden Prozessor­ elementen zugeteilt wird.
21. Datenverarbeitungssystem nach Anspruch 20, dadurch ge­ kennzeichnet, daß
die Multiprozessorbetrieb-Steuereinrichtung (A8) ei­ nen Puffer (G1) enthält, der die Zugriffadressen des Speichers (A4), auf die zugegriffen werden soll, hält, und
die Zugriffadressen des Speichers (A4), die von den n Prozessorelementen bezeichnet worden sind, mit den im Puffer (G1) gehaltenen Adressen verglichen werden, wobei die Steuerung so ausgeführt wird, daß das Recht auf Ab­ arbeitung denjenigen Prozessorelementen, die Zugriff­ anforderungen durch die Bezeichnung derselben Adressen wie die im Puffer (G1) vorhandenen ausgeben, nicht zu­ geteilt wird, während das Recht auf Abarbeitung denjenigen Prozessorelementen zugeteilt wird, die Zugriffanfor­ derungen durch die Bezeichnung von Adressen, die nicht im Puffer (G1) vorhanden sind, ausgeben.
22. Datenverarbeitungssystem nach Anspruch 20 oder 21, dadurch gekennzeichnet, daß das Recht auf Abarbeitung eines Zugriffs auf den Speicher (A4) sämtlichen n Prozessorelementen zugeteilt wird, wenn das Paralleli­ täts-Zustandsbit (A7) die Parallelbetriebsart anzeigt.
23. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß ein Parallelbetrieb-Befehl zum Setzen des Parallelitäts- Zustandsbits (A7) in den die Parallelbetriebsart anzei­ genden Zustand und ein Multiprozessorbetrieb-Befehl zum Setzen des Parallelitäts-Zustandsbits in den die Multi­ prozessorbetriebsart anzeigenden Zustand vorgesehen sind.
24. Datenverarbeitungssystem nach Anspruch 23, dadurch ge­ kennzeichnet, daß
ein Betriebssystem (OS) zum Steuern des Datenverar­ beitungssystems vorgesehen ist und
das Betriebssystem den Multiprozessorbetrieb-Befehl ausführt, um das Datenverarbeitungssystem (A1) in der Multiprozessorbetriebsart zu betreiben, wenn bei Ab­ schluß eines abgearbeiteten Programms in der Parallel­ betriebsart ein neu abzuarbeitendes Programm einen niedrigen Parallelitätsgrad besitzt.
25. Datenverarbeitungssystem nach Anspruch 23, dadurch ge­ kennzeichnet, daß
ein Betriebssystem (OS) zum Steuern des Datenverar­ beitungssystems vorgesehen ist und
dann, wenn ein nach Abschluß eines in der Multiprozessorbetriebsart von einem der Prozessorelemente abge­ arbeiteten Programms ein von diesem Prozessorelement neu abzuarbeitendes Programm einen hohen Parallelitätsgrad besitzt, das Betriebssystem den Parallelbetrieb-Befehl ausführt, um das Datenverarbeitungssystem (A1) in der Parallelbetriebsart zu betreiben, nachdem von den ande­ ren Prozessorelementen sämtliche Programme vollständig abgearbeitet worden sind.
26. Datenverarbeitungsverfahren, in dem
mehrere Prozessorelemente (A2, A3) Befehle abarbeiten und auf jeweils eine eigene Registerdatei (D15, D16) zum Speichern von verarbeiteten oder zu verarbeitenden Daten zugreifen können, und in dem Dekoder (D5-D9) Quellregi­ ster der Registerdatei identifizieren,
und wobei ein Hauptspeicher (A4) von den Prozessor­ elementen (A2, A3) gemeinsam genutzt wird, ein Taktsignal erzeugt und den Prozessorelementen (A2, A3) zugeführt wird, die wahlweise betrieben werden im Parallelbetrieb, in dem mehrere Prozessorelemente (A2, A3) synchron zu dem Taktsignal betrieben werden, oder
im Multiprozessorbetrieb, in dem die Prozessorelemente (A2, A3) jeweils von den anderen Elementen unabhängig betrieben werden,
dadurch gekennzeichnet, daß
die parallele Betriebsart durch ein Parallelismus-Flag (A7) angezeigt wird,
die Prozessorelemente nach Maßgabe des Parallelismus- Flags (A7) über Gatter (D17) und globale Busse (d5, d6) miteinander verbunden werden können, um dann eine Registerdatei eines der Prozessorelemente gemeinsam durch eine Anzahl n von Prozessorelementen zu nutzen, wobei diese Registerdatei eine Anzahl von Kanälen hat, die n mal größer ist als die einer Registerdatei in einem anderen Prozessorelement (A3), und
der Betrieb der Dekoder der weiteren Prozessorelemente (A3) in Abhängigkeit davon, ob sich die Prozessorele­ mente in der Multiprozessorbetriebsart oder in der Parallelbetriebsart befinden, geändert oder abgewandelt wird.
DE4129614A 1990-09-07 1991-09-06 System und Verfahren zur Datenverarbeitung Expired - Fee Related DE4129614C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2237666A JPH04117540A (ja) 1990-09-07 1990-09-07 データ処理装置およびデータ処理システム
JP24755790A JP2834298B2 (ja) 1990-09-19 1990-09-19 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
DE4129614A1 DE4129614A1 (de) 1992-03-19
DE4129614C2 true DE4129614C2 (de) 2002-03-21

Family

ID=26533310

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4129614A Expired - Fee Related DE4129614C2 (de) 1990-09-07 1991-09-06 System und Verfahren zur Datenverarbeitung

Country Status (3)

Country Link
US (2) US5784630A (de)
KR (1) KR100249148B1 (de)
DE (1) DE4129614C2 (de)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2110089C1 (ru) * 1995-12-22 1998-04-27 Бурцев Всеволод Сергеевич Вычислительная система
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
EP0881575A4 (de) * 1996-02-16 2002-04-17 Hitachi Ltd Multiport-speicher und datenprozessor zum zugriff auf diesen speicher
JP3867313B2 (ja) * 1996-03-29 2007-01-10 ソニー株式会社 Avデータ処理制御装置およびその方法
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199110B1 (en) 1997-05-30 2001-03-06 Oracle Corporation Planned session termination for clients accessing a resource through a server
JPH1115773A (ja) * 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6173420B1 (en) 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
ATE362623T1 (de) 1997-11-07 2007-06-15 Altera Corp Verfahren und gerät für effiziente, synchrone mimd-operationen mit ivliw pe-zu-pe kommunikationen
US6332152B1 (en) * 1997-12-02 2001-12-18 Matsushita Electric Industrial Co., Ltd. Arithmetic unit and data processing unit
JP3650519B2 (ja) * 1997-12-17 2005-05-18 株式会社ルネサステクノロジ マイクロコンピュータ
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6026479A (en) * 1998-04-22 2000-02-15 Hewlett-Packard Company Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs
US6298479B1 (en) * 1998-05-29 2001-10-02 Sun Microsystems, Inc. Method and system for compiling and linking source files
US20020032901A1 (en) * 1998-05-29 2002-03-14 Sun Microsystems Inc Unitary data structure systems, methods, and computer program products, for global conflict determination
US6317820B1 (en) * 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6301653B1 (en) * 1998-10-14 2001-10-09 Conexant Systems, Inc. Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US20010042187A1 (en) * 1998-12-03 2001-11-15 Marc Tremblay Variable issue-width vliw processor
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
US7117342B2 (en) * 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US6701429B1 (en) * 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6223335B1 (en) * 1998-12-09 2001-04-24 Sun Microsystems, Inc. Platform independent double compare and swap operation
US6757847B1 (en) * 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
JP2000305781A (ja) * 1999-04-21 2000-11-02 Mitsubishi Electric Corp Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US6542921B1 (en) 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
WO2001016722A1 (en) * 1999-09-01 2001-03-08 Intel Corporation Branch instruction for processor
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US6357016B1 (en) 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6889319B1 (en) 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US6539457B1 (en) * 2000-02-21 2003-03-25 Hewlett-Packard Company Cache address conflict mechanism without store buffers
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US6754801B1 (en) * 2000-08-22 2004-06-22 Micron Technology, Inc. Method and apparatus for a shift register based interconnection for a massively parallel processor array
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
JP3628265B2 (ja) * 2001-02-21 2005-03-09 株式会社半導体理工学研究センター マルチプロセッサシステム装置
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7152151B2 (en) * 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
KR100912437B1 (ko) * 2001-07-12 2009-08-14 아이피플렉스 가부시키가이샤 집적회로장치
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US8024735B2 (en) 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution
US7302548B1 (en) 2002-06-18 2007-11-27 Cisco Technology, Inc. System and method for communicating in a multi-processor environment
EP1387258A3 (de) * 2002-07-31 2008-01-02 Texas Instruments Incorporated Prozessor-Prozessor-Synchronisierung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
JP3784766B2 (ja) * 2002-11-01 2006-06-14 株式会社半導体理工学研究センター 多ポート統合キャッシュ
US20040093536A1 (en) * 2002-11-12 2004-05-13 Weller Christopher Todd System and method for providing coherency during the evaluation of a multiprocessor system
US20070169022A1 (en) * 2003-06-18 2007-07-19 Jones Anthony M Processor having multiple instruction sources and execution modes
EP1665065B1 (de) * 2003-09-09 2007-10-03 Koninklijke Philips Electronics N.V. Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
US7743333B2 (en) * 2004-08-12 2010-06-22 Oracle International Corporation Suspending a result set and continuing from a suspended result set for scrollable cursors
US7613710B2 (en) * 2004-08-12 2009-11-03 Oracle International Corporation Suspending a result set and continuing from a suspended result set
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7587400B2 (en) * 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration
DE102004062116B3 (de) * 2004-12-23 2006-05-11 Ab Skf Lageranordnung für einen Computertomographen
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US7644221B1 (en) * 2005-04-11 2010-01-05 Sun Microsystems, Inc. System interface unit
DE102005037214A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Abarbeitung von Datenwörtern und/oder Instruktionen
DE102005037219A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE102005037232A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten
DE102005037233A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenverarbeitung
US7707388B2 (en) * 2005-11-29 2010-04-27 Xmtt Inc. Computer memory architecture for hybrid serial and parallel computing systems
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8261046B2 (en) * 2006-10-27 2012-09-04 Intel Corporation Access of register files of other threads using synchronization
US20080229065A1 (en) * 2007-03-13 2008-09-18 Hung Qui Le Configurable Microprocessor
US11836506B2 (en) 2007-04-11 2023-12-05 Apple Inc. Parallel runtime execution on multiple processors
US8341611B2 (en) 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
AU2008239696B2 (en) 2007-04-11 2011-09-08 Apple Inc. Data parallel computing on multiple processors
US8276164B2 (en) 2007-05-03 2012-09-25 Apple Inc. Data parallel computing on multiple processors
JP2009087028A (ja) * 2007-09-28 2009-04-23 Toshiba Corp メモリシステム及びメモリの読出し方法並びにプログラム
WO2009068014A2 (de) * 2007-11-28 2009-06-04 Pact Xpp Technologies Ag Über datenverarbeitung
US20110119657A1 (en) * 2007-12-07 2011-05-19 Martin Vorbach Using function calls as compiler directives
US8356202B2 (en) * 2008-03-28 2013-01-15 Intel Corporation System and method for reducing power consumption in a device using register files
KR100936601B1 (ko) * 2008-05-15 2010-01-13 재단법인서울대학교산학협력재단 멀티 프로세서 시스템
US8225325B2 (en) * 2008-06-06 2012-07-17 Apple Inc. Multi-dimensional thread grouping for multiple processors
US8286198B2 (en) * 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
KR101788245B1 (ko) * 2011-02-25 2017-11-16 삼성전자주식회사 다중 포트 캐시 메모리 장치 및 그 구동 방법
JP6013711B2 (ja) * 2011-09-01 2016-10-25 ラピスセミコンダクタ株式会社 半導体集積回路及び半導体集積回路のデバッグ方法
CN103281154B (zh) * 2012-12-24 2016-08-03 珠海拓普智能电气股份有限公司 并行处理数据采集与数据传输的数据采集卡系统
CN103631976B (zh) * 2013-05-30 2016-05-11 中国科学院电子学研究所 一种小型多通道串行数据记录器
CN104298556B (zh) * 2013-07-17 2018-01-09 华为技术有限公司 流处理单元的分配方法及装置
CN103677760B (zh) * 2013-12-04 2015-12-02 北京航空航天大学 一种基于Openflow的事件并行控制器及其事件并行处理方法
DE102015119202A1 (de) * 2015-05-11 2016-11-17 Dspace Digital Signal Processing And Control Engineering Gmbh Schnittstelleneinheit zur Weiterleitung priorisierter Eingangsdaten an einen Prozessor
US10552340B2 (en) * 2017-02-28 2020-02-04 Oracle International Corporation Input/output direct memory access during live memory relocation
US10360393B2 (en) * 2017-04-28 2019-07-23 International Business Machines Corporation Synchronizing write operations
US10915463B2 (en) 2017-04-28 2021-02-09 International Business Machines Corporation Synchronizing requests to access computing resources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4707784A (en) * 1983-02-28 1987-11-17 Honeywell Bull Inc. Prioritized secondary use of a cache with simultaneous access
JPS60101644A (ja) * 1983-11-07 1985-06-05 Masahiro Sowa ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US5095424A (en) * 1986-10-17 1992-03-10 Amdahl Corporation Computer system architecture implementing split instruction and operand cache line-pair-state management
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
US5249264A (en) * 1988-11-14 1993-09-28 International Business Machines Corporation Image display method and apparatus
US5276850A (en) * 1988-12-27 1994-01-04 Kabushiki Kaisha Toshiba Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5182801A (en) * 1989-06-09 1993-01-26 Digital Equipment Corporation Apparatus and method for providing fast data transfer between multiple devices through dynamic reconfiguration of the memory space of the devices
JP2550213B2 (ja) * 1989-07-07 1996-11-06 株式会社日立製作所 並列処理装置および並列処理方法
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5121502A (en) * 1989-12-20 1992-06-09 Hewlett-Packard Company System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing
US5218709A (en) * 1989-12-28 1993-06-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Special purpose parallel computer architecture for real-time control and simulation in robotic applications
US5247694A (en) * 1990-06-14 1993-09-21 Thinking Machines Corporation System and method for generating communications arrangements for routing data in a massively parallel processing system
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method

Also Published As

Publication number Publication date
KR100249148B1 (ko) 2000-03-15
DE4129614A1 (de) 1992-03-19
KR920006851A (ko) 1992-04-28
US5784630A (en) 1998-07-21
US5968160A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
DE4129614C2 (de) System und Verfahren zur Datenverarbeitung
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE60011797T2 (de) Ausführung von mehreren fäden in einem parallelprozessor
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE2854485C2 (de) Datenverarbeitungsanlage
US5920714A (en) System and method for distributed multiprocessor communications
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69130106T2 (de) Arbitrierung von paketvermittelten Bussen, einschliesslich Bussen von Multiprozessoren mit gemeinsam genutztem Speicher
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE3248215C2 (de)
DE60306937T2 (de) Synchronisierung von pipelines in einem datenverarbeitungsgerät
DE3887324T2 (de) Speicheranordnung.
DE19983745B3 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE3751391T2 (de) Verfahren und Vorrichtung zur Speichersteuerung.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE69523395T2 (de) Datenprozessor mit gesteuertem Stoss-Speicherzugriff und Vorrichtung dafür
DE3114961A1 (de) Datenverarbeitungssystem
DE3110196A1 (de) Datenverarbeitungssystem
DE2755616C2 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee