DE4129614C2 - System und Verfahren zur Datenverarbeitung - Google Patents
System und Verfahren zur DatenverarbeitungInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 126
- 238000000034 method Methods 0.000 title claims description 39
- 230000015654 memory Effects 0.000 claims description 176
- 239000000872 buffer Substances 0.000 claims description 82
- 238000013519 translation Methods 0.000 claims description 61
- 238000004891 communication Methods 0.000 claims description 44
- 238000012546 transfer Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 30
- 230000005540 biological transmission Effects 0.000 claims description 20
- MDAXKAUIABOHTD-UHFFFAOYSA-N 1,4,8,11-tetraazacyclotetradecane Chemical compound C1CNCCNCCCNCCNC1 MDAXKAUIABOHTD-UHFFFAOYSA-N 0.000 claims description 10
- 101100072643 Arabidopsis thaliana IPS2 gene Proteins 0.000 claims description 10
- WCZDQPXNBJTKPI-UHFFFAOYSA-O Cyanidin 7-glucoside Chemical compound OC1C(O)C(O)C(CO)OC1OC1=CC(O)=C(C=C(O)C(=[O+]2)C=3C=C(O)C(O)=CC=3)C2=C1 WCZDQPXNBJTKPI-UHFFFAOYSA-O 0.000 claims description 10
- 101000953492 Homo sapiens Inositol hexakisphosphate and diphosphoinositol-pentakisphosphate kinase 1 Proteins 0.000 claims description 10
- 102100023727 Mitochondrial antiviral-signaling protein Human genes 0.000 claims description 10
- 102100022299 All trans-polyprenyl-diphosphate synthase PDSS1 Human genes 0.000 claims description 7
- 101150115672 DPS1 gene Proteins 0.000 claims description 7
- 101150063720 PDSS1 gene Proteins 0.000 claims description 7
- 101150053419 dps2 gene Proteins 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 2
- HCUARRIEZVDMPT-UHFFFAOYSA-N Indole-2-carboxylic acid Chemical compound C1=CC=C2NC(C(=O)O)=CC2=C1 HCUARRIEZVDMPT-UHFFFAOYSA-N 0.000 claims 1
- 101100170542 Mus musculus Disp1 gene Proteins 0.000 claims 1
- 108090000623 proteins and genes Proteins 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 26
- 230000008859 change Effects 0.000 description 24
- 238000012790 confirmation Methods 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000005755 formation reaction Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- YHOXIEXEPIIKMD-UHFFFAOYSA-N 9a-[(4-chlorophenyl)methyl]-7-hydroxy-4-[4-(2-piperidin-1-ylethoxy)phenyl]-2,9-dihydro-1h-fluoren-3-one Chemical compound C1C2=CC(O)=CC=C2C2=C(C=3C=CC(OCCN4CCCCC4)=CC=3)C(=O)CCC21CC1=CC=C(Cl)C=C1 YHOXIEXEPIIKMD-UHFFFAOYSA-N 0.000 description 5
- 101100018377 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ICS3 gene Proteins 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- YPJMOVVQKBFRNH-UHFFFAOYSA-N 1-(9-ethylcarbazol-3-yl)-n-(pyridin-2-ylmethyl)methanamine Chemical compound C=1C=C2N(CC)C3=CC=CC=C3C2=CC=1CNCC1=CC=CC=N1 YPJMOVVQKBFRNH-UHFFFAOYSA-N 0.000 description 4
- 101150020162 ICS1 gene Proteins 0.000 description 4
- 101150067592 ICS2 gene Proteins 0.000 description 4
- 101100464782 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CMP2 gene Proteins 0.000 description 4
- 101100116913 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DJP1 gene Proteins 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 101001073409 Homo sapiens Retrotransposon-derived protein PEG10 Proteins 0.000 description 3
- 101001094545 Homo sapiens Retrotransposon-like protein 1 Proteins 0.000 description 3
- 102400000704 Intracellular domain 1 Human genes 0.000 description 3
- 101800001559 Intracellular domain 1 Proteins 0.000 description 3
- 102400000705 Intracellular domain 2 Human genes 0.000 description 3
- 101800001556 Intracellular domain 2 Proteins 0.000 description 3
- 101000689689 Oryzias latipes Alpha-1A adrenergic receptor Proteins 0.000 description 3
- 102100035844 Retrotransposon-derived protein PEG10 Human genes 0.000 description 3
- 102100035123 Retrotransposon-like protein 1 Human genes 0.000 description 3
- 101000737979 Schizosaccharomyces pombe (strain 972 / ATCC 24843) Charged multivesicular body protein 7 Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 102100026191 Class E basic helix-loop-helix protein 40 Human genes 0.000 description 2
- 101710130550 Class E basic helix-loop-helix protein 40 Proteins 0.000 description 2
- 102100026190 Class E basic helix-loop-helix protein 41 Human genes 0.000 description 2
- 101150087322 DCPS gene Proteins 0.000 description 2
- 101000765033 Homo sapiens Class E basic helix-loop-helix protein 41 Proteins 0.000 description 2
- CVRALZAYCYJELZ-UHFFFAOYSA-N O-(4-bromo-2,5-dichlorophenyl) O-methyl phenylphosphonothioate Chemical compound C=1C=CC=CC=1P(=S)(OC)OC1=CC(Cl)=C(Br)C=C1Cl CVRALZAYCYJELZ-UHFFFAOYSA-N 0.000 description 2
- 108010087367 P-glycoprotein 2 Proteins 0.000 description 2
- 102100039032 Phosphatidylcholine translocator ABCB4 Human genes 0.000 description 2
- 101100464779 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CNA1 gene Proteins 0.000 description 2
- 101100169932 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DCD1 gene Proteins 0.000 description 2
- 101100386725 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DCS1 gene Proteins 0.000 description 2
- 101100235787 Schizosaccharomyces pombe (strain 972 / ATCC 24843) pim1 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 102100033718 m7GpppX diphosphatase Human genes 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 102100033350 ATP-dependent translocase ABCB1 Human genes 0.000 description 1
- 101150087426 Gnal gene Proteins 0.000 description 1
- 108010047230 Member 1 Subfamily B ATP Binding Cassette Transporter Proteins 0.000 description 1
- 241001494479 Pecora Species 0.000 description 1
- 101100076570 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MER1 gene Proteins 0.000 description 1
- 241000153282 Theope Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000032050 esterification Effects 0.000 description 1
- 238000005886 esterification reaction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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/3891—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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) |
-
1991
- 1991-09-06 DE DE4129614A patent/DE4129614C2/de not_active Expired - Fee Related
- 1991-09-07 KR KR1019910015611A patent/KR100249148B1/ko not_active IP Right Cessation
-
1995
- 1995-01-03 US US08/367,928 patent/US5784630A/en not_active Expired - Fee Related
-
1997
- 1997-09-04 US US08/923,632 patent/US5968160A/en not_active Expired - Fee Related
Patent Citations (1)
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 |