DE69113639T2 - Echtzeit-input/output-methode fuer ein vektor-prozessor-system. - Google Patents
Echtzeit-input/output-methode fuer ein vektor-prozessor-system.Info
- Publication number
- DE69113639T2 DE69113639T2 DE69113639T DE69113639T DE69113639T2 DE 69113639 T2 DE69113639 T2 DE 69113639T2 DE 69113639 T DE69113639 T DE 69113639T DE 69113639 T DE69113639 T DE 69113639T DE 69113639 T2 DE69113639 T2 DE 69113639T2
- Authority
- DE
- Germany
- Prior art keywords
- real
- time
- processor
- ios
- processors
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims description 27
- 238000004891 communication Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000012423 maintenance Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 2
- 239000013643 reference control Substances 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003028 elevating effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Description
- Die vorliegende Erfindung betrifft parallele Vektorrechnersysteme, und insbesondere beschreibt die vorliegende Erfindung ein Verfahren und eine Vorrichtung zur Durchführung von Echtzeit-Eingabe-/Ausgabe-(E/A)-Operationen in einem Multiprozessor-Vektorrechnersystem.
- Bei vielen Computeranwendungen ergibt sich die Notwendigkeit, daß der Rechner auf externe Ereignisse reagieren muß um innerhalb vorgeschriebener, oft sehr kurzer Zeitgrenzen Berechnungen und Steuerfunktionen auszuführen. Systeme dieses Typs werden als antwort- oder echtzeitorientierte Systeme bezeichnet. Unter Echtzeitbedingungen müssen zwei Dinge ausgeführt werden. Erstens müssen Daten von dem E/A-Subsystem in zeitlich passender Weise an die Prozessoren übergeben werden, und zweitens müssen die Prozessoren ihre Berechnungen mit diesen Daten in zeitlich passender Weise abschließen. Mit anderen Worten, es muß eine vorhersagbare Berechnungs-Latenzzeit geben. Die Übertragungen und Berechnungen müssen in vorhersagbaren Zeitintervallen erfolgen, um dem Konzept der Echtzeitoperation zu genügen. Je nach der Anwendungen können die entsprechenden Zeitintervalle im Bereich von einigen Mikrosekunden bis zu einigen Sekunden liegen.
- Diese Zeitintervalle können als "Zeitscheibe" oder "Zeitschlitz" bezeichnet werden. Innerhalb einer Zeitscheibe empfängt das System Eingangsdaten, verarbeitet diese Daten und gibt evtl. resultierende Daten wieder aus dem System aus. Die Zeitscheibe besteht somit aus einer Eingabezeit, einer Rechenzeit und schließlich einer Ausgabezeit. Zur Bestimmung der kleinstmöglichen Zeitscheibe (d.h. der schnellsten Echtzeit-Antwort mit der ein Computersystem arbeiten kann), müssen die Eingabezeit, die Rechenzeit und die Ausgabezeit in Betracht gezogen werden. Die langsamste dieser Zeiten bestimmt die kleinste verfügbare Zeitscheibe.
- Historisch gesehen war die langsamste Zeit die Rechenzeit. Dabei werden die Daten an die Prozessoren übergeben, während diese die vorigen Berechnungen ausführen, dann werden die Daten ausgegeben, während die Prozessoren die nächste Berechnung so ausführen, daß sich Eingabe-, Rechen- und Ausgabezeitscheiben überlappen. Dieser Prozeß bewirkt eine Datenverkettung. In dem Maße jedoch, in dem die Rechengeschwindigkeit der Systeme immer schneller wird, werden die Eingabe- und Ausgabezeiten ein begrenzender Faktor für die Echtzeitantwort. Bei jeder Auslegung eines Echtzeitsystems muß also sorgfältig sichergestellt werden, daß die Eingabe- und/oder Ausgabezeiten die Rechenzeiten nicht überschreiten.
- Manche Anwendungen machen es erforderlich, daß eine vollständige Mehrprozessormaschine unter Echtzeitbedingungen arbeitet. Eine solche spezielle Echtzeitanwendung ist ein Strahlflugzeug-Simulator. Damit der Simulator die Aktionen und Reaktionen eines realen Strahlflugzeugs genau simulieren kann, muß das Rechnersystem des Simulators in der Lage sein, nahezu sofort auf Systemeingaben (solche Eingaben enthalten den den Simulator "lenkenden" Flugzeugführer, die Betätigung der Steuerorgane, Änderungen der "Landschaft", Kraftstoffstatus, mechanische Probleme etc.) zu reagieren. Ein Nachteil der vorhandenen Echtzeit- Simulatoren besteht darin, daß die Antwort so weit gegenüber der Eingabe verzögert ist, daß zu dem Zeitpunkt, in dem der Simulator antwortet, das simulierte Strahlflugzeug nicht so reagiert wie dies ein reales Strahlflugzeug tun würde, sondern sich eher träge verhält. Als Ergebnis übermittelt der Simulator dem Flugzeugführer nicht genau die Flugerfahrung eines realen Strahlflugzeugs.
- Eine weitere Anwendung für ein ausschließliches Echtzeitsystem sind Anwendungen, die sehr große Datenmengen beinhalten. Obwohl bei diesen Anwendungen die unmittelbare Antwort auf sich ändernde Eingaben nicht so kritisch ist, muß bei ihnen sichergestellt sein, daß alle innerhalb einer zugeordneten Zeit in das System eingegebenen Daten verarbeitet werden können, um sicherzustellen, daß keine Daten verlorengehen.
- Andere Echtzeitanwendungen erfordern zwar nicht, daß ein gesamtes Mehrprozessorsystem unter Echtzeitbedingungen arbeitet, allerdings müssen das System oder Abschnitte davon in der Lage sein, Echtzeitaufgaben abzuwickeln, sofern erforderlich. Ein System muß also in der Lage sein, eine bestimmte Anzahl seiner Prozessoren (diese Anzahl hängt von der auszuführenden Aufgabe ab) für den Echtzeitbetrieb zu aktivieren und diese Prozessoren nach dem Abschluß des Echtzeit-Auftrags wieder in einen Normalmodus zurückzuführen.
- Es liegt also auf der Hand, daß seitens der Fachwelt ein Bedarf nach Echtzeit- Vektorrechnersystemen mit zunehmend schnellerem Antwortverhalten vorliegt. Außerdem besteht seitens der Fachwelt ein Bedarf nach einem Echtzeit-Vektorrechnersystem, das in einfacher Weise an verschiedene Typen von Echtzeitanwendungen angepaßt und für diese verwendet werden kann.
- Die vorliegende Erfindung stellt ein Mehrprozessor-Vektorrechnersystem bereit, das für Echtzeit-E/A ausgeführt ist. Das Mehrprozessorsystem enthält mehrere einen gemeinsamen Speicher nutzende Prozessoren und eine Speicherreferenz-Steuereinrichtung, die Speicherreferenzen zwischen den Prozessoren und dem gemeinsamen Speicher nach einem rotierenden Prioritätsschema zuteilt. Die vorliegende Erfindung kombiniert ein Speicherreferenz-Prioritätsschema, spezielle Echtzeit- Interrupt-Leitungen für jeden Prozessor und Zugriff auf einen privilegierten Betriebsmodus für Prozessoren, die Echtzeit-Aufträge abwickeln. Im privilegierten Betriebsmodus hat jeder Prozessor Zugriff auf die entsprechenden privilegierten Befehle und auf einen privilegierten Kommunikationskanal, der ihn mit einem E/A-Prozessor koppelt. Die vorliegende Erfindung ist speziell dafür ausgelegt, ein flexibles Echtzeitsystem bereitzustellen, das vom Benutzer an zahlreiche verschiedene Echtzeitanwendungen angepaßt werden kann. So sind beispielsweise mehrere Mechanismen für den Datenaustausch zwischen den Echtzeit-Aufträge abwickelnden Prozessoren und dem E/A-Prozessor vorgesehen. Die vorliegende Erfindung verwendet ein flexibles Hardware-Konzept, das an zahlreiche verschiedene Echtzeitanwendungen anpaßbar ist.
- In den Zeichnungen bezeichnen in den verschiedenen Ansichten identische Bezugszeichen identische Elemente; es zeigen:
- Fig. 1 ein Blockdiagramm des in der vorliegenden Erfindung verwendeten Mehrprozessorsystems, das über ein Eingabe-/Ausgabesystem (IOS) mit einer Bedienungs-Workstation (OSW) und einer Maintenance- Workstation (MWS) gekoppelt ist;
- Fig. 2 ein detaillierteres Blockdiagramm der Verbindungen zwischen dem IOS und dem in der vorliegenden Erfindung verwendeten Mehrprozessorsystem;
- Fig. 3 das Austauschpaket, das im Vektorprozessor-Rechnersystem der vorliegenden Erfindung verwendet wird;
- Fig. 4 ein vereinfachtes Blockdiagramm eines Vektorprozessors des in der vorliegenden Erfindung verwendeten Typs;
- Fig. 5 ein detaillierteres Blockdiagramm eines Vektorprozessors des in der vorliegenden Erfindung verwendeten Typs.
- Die vorliegende Erfindung betrifft ein Verfahren zur Ausführung von Echtzeit-E/A- Operationen in einem Mehrprozessor-Vektorrechnersystem. Insbesondere stellt die vorliegende Erfindung spezielle Interrupts zum Aufrufen des Echtzeitbetriebs bereit, eines Modus, in dem Echtzeitprozessoren Zugriff auf privilegierte Kommunikationskanäle haben, so daß die in Echtzeit arbeitenden Prozessoren das Betriebssystem umgehen können, sowie ein Speicherreferenz-Prioritätsschema derart, daß alle Echtzeitprozessoren die höchste Referenzpriorität Prozessor/Speicher haben, um die Echtzeit-Verarbeitungsgeschwindigkeit und die Effizienz zu erhöhen.
- Die Fig. 1 zeigt ein Blockdiagramm eines Mehrprozessorsystems 10 der vorliegenden Erfindung, das über einen Maintenance-Kanal 36 mit einer Maintenance-Workstation (MWS) 30 gekoppelt ist. Das System 10 ist außerdem über einen Eingangs/Ausgangsprozessor (IOS) 34 mit einer Bedienungs-Workstation (OWS) 32 gekoppelt. Eine detailliertere Beschreibung der Auslegung und Funktion der IOS 34 findet sich in der US-Patentanmeldung Nr. 07/390,722 von Robert J. Halford et al. mit dem Titel MODULAR I/O SYSTEM FOR SUPERCOMPUTERS, die am 6. August 1989 eingereicht wurde, und die an Cray Research, Inc., abgetreten wurde, dem Abtretungsempfänger der vorliegenden Erfindung, und die hiermit einbezogen wird. Die OWS 32 und die MWS 30 tauschen untereinander über eine spezielle, modifizierte Ethernet-Kabelstrecke 31 Daten aus.
- Die MWS 30 und die OWS 32 umfassen kleine Workstations auf VME-Basis mit einem Farbgraphik-Bildschirm, Plattenlaufwerken etc. Für den Fachmann ist ohne weiteres ersichtlich, daß anstelle der obenbeschriebenen Workstations auf VME- Basis jedes Computersystem verwendet werden kann. Die OWS 32 wird generell von den Systembedienern dazu verwendet, benutzerseitige Aufgabenprogramme auf dem Mehrprozessorsystem 10 abzuwickeln. Die MWS 30 wird vom Wartungspersonal zur Abwicklung von Diagnoseprogrammen auf dem System 10 bei Auftreten von Hardware-Fehlern verwendet. Im wesentlichen kann die OWS 32 als die "Software-Verbindung" zu dem System 10 und die MWS 30 als die "Hardware- Verbindung" zu dem System 10 betrachtet werden.
- Die vorliegende Erfindung ist speziell für ein Vektor-Mehrprozessorsystem 10 mit sechzehn Prozessoren 20 konzipiert. Es versteht sich jedoch von selbst, daß die Prinzipien der vorliegenden Erfindung auf Mehrprozessorsysteme mit einer größeren oder einer kleineren Anzahl von Prozessoren angewendet werden können, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Außerdem versteht es sich von selbst, daß es sich bei den verwendeten Prozessoren nicht um Vektorprozessoren handeln muß sondern daß auch Skalarprozessoren verwendet werden könnten, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen.
- In der bevorzugten Ausführungsform der vorliegenden Erfindung nutzen die sechzehn Prozessoren 20 einen gemeinsamen Speicher 12. Jeder Prozessor ist über einen Speicherpfad 14 mit dem gemeinsam genutzten Speicher verbunden. Die Speicherreferenzen zwischen den Prozessoren 20 und dem gemeinsam genutzten Speicher 12 werden durch die Verwendung eines rotierenden Prioritätsschemas zugeteilt. Eine detaillierte Beschreibung des in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendeten Prioritätsschemas findet sich in der US- Patentanmeldung Nr. 07/531,861 mit dem Titel METHOD AND APPARATUS FOR SHARLNG MEMORY IN A MULTIPROCESSOR SYSTEM von Leedom et al., eingereicht am 1. Juni 1990, die hiermit einbezogen wird.
- Unter Bezugnahme auf die Fig. 2 wird nunmehr die Funktionsweise der vorliegenden Erfindung erläutert. Die Fig. 2 zeigt die spezifischen Hardware-Merkmale der bevorzugten Ausführungsform der vorliegenden Erfindung in detaillierterer Form. Arbeitet das System 10 nicht ausschließlich in Echtzeit, so muß das Betriebssystem oder ein Benutzer in der Lage sein, einen Prozessor oder eine Gruppe von Prozessoren zur Echtzeit-Operation zu veranlassen, wenn erforderlich. Die vorliegende Erfindung erreicht dies durch die Verwendung der Echtzeit-Interrupt- Leitung 40. Jeder Prozessor 20 verfügt über eine spezielle Interrupt-Leitung 40, über die ihm von dem IOS 34 ein Echtzeit-Interrupt-Signal geschickt werden kann. Ein Benutzer kann somit einen Echtzeit-Auftrag veranlassen, indem er an der OWS 32 einen entsprechenden Befehl eingibt. Das Betriebssystem dekodiert dann den Befehl, bestimmt, welcher Echtzeit-Auftrag abzuwickeln ist und ordnet für die Ausführung des Echtzeit-Auftrags einen Prozessor oder eine Gruppe von Prozessoren (je nach Art und Größe des betreffenden Echtzeit-Auftrags) zu. Die OSW 32 fordert dann von dem IOS 34 die Übermittlung eines Echtzeit-Interrupt-Signals über die Echtzeit-Interrupt-Leitungen 40 an einen Prozessor oder an eine Gruppe von Prozessoren 20 an. Mit dem Empfang eines Echtzeit-Interrupt-Signals bricht der Prozessor 20 die Operation ab und sichert die momentan ausgeführte Aufgabe und beginnt mit der Abwicklung der entsprechenden Echtzeit-Aufgabe.
- Gibt ein Benutzer einen Echtzeit-Befehl an der OWS 32 ein und bestimmt das Betriebssystem, welcher Prozessor oder welche Gruppe von Prozessoren den betreffenden Echtzeit-Auftrag abwickeln soll, so schickt die OWS 32 diese Information über die Etherne-Kabelstrecke 31 an die MWS 30. Die Information der MWS 30 hat den Zweck, das rotierende Prioritätsschema, das zur Zuteilung der Speicherreferenzenan die Prozessoren 20 verwendet wird, zu ändern, damit die Echtzeit-Operationen nicht gestört werden. Da die Rechenzeit auf ein Minimum reduziert werden muß um das Ziel der Echtzeit-Operation wirksam zu verwirklichen, müssen diejenigen Prozessoren, die Echtzeit-Aufträge abwickeln (im folgenden als "Echtzeitprozessoren" bezeichnet), die höchste Speicherreferenzpriorität haben. Ist dies nicht der Fall, so können andere Prozessoren mit weniger dringenden Speicherreferenzen aufgrund des rotierenden Prioritätsschemas eine höhere Speicherreferenzpriorität erhalten, wodurch der Echtzeitprozessor gezwungen wird, zu warten. Für den Fachmann wird unmittelbar ersichtlich, daß es diese Wartezeit einem Prozessor unmöglich machen würde, effektiv in Echtzeit zu arbeiten. Die vorliegende Erfindung bedient sich deshalb eines Schemas, bei dem das rotierende Prioritätsprinzip nicht zur Anwendung kommt, wenn ein Prozessor oder eine Gruppe von Prozessoren irgendwo innerhalb des Systems 10 in Echtzeit arbeiten. Dieses Schema wird nachstehend beschrieben.
- Wie hierin vorstehend beschrieben, werden Speicherreferenzen zwischen den Prozessoren 20 durch ein rotierendes Prioritätsschema zugeteilt. Eine Speicherreferenzsteuerung 50 steuert das rotierende Prioritätsschema. Die Speicherreferenzsteuerung 50 ist in der bevorzugten Ausführungsform der vorliegenden Erfindung als Teil des gemeinsam genutzten Speichers 12 implementiert. Für den Fachmann ist es jedoch selbstverständlich, daß die Speicherreferenzsteuerung 50 auch in einer anderen Weise implementiert werden könnte, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen.
- Die Speicherreferenzsteuerung 50 verwirklicht das rotierende Prioritätsschema durch die Verwendung eines Prioritätszählers 52. Der Prioritätszähler 52 dient zur Einstellung der Speicherreferenzpriorität zwischen den Prozessoren 20. Der Prioritätszähler 52 hat eine Länge von vier Bits und kann Werte von 0 bis 15, jeweils einen für jeden Prozessor 20, enthalten. Der in dem Prioritätszähler 52 gehaltene Zählwert bezeichnet den Prozessor, der in dem betreffenden Zeitpunkt die höchste Speicherreferenzpriorität hat, und bestimmt außerdem die Prioritätsreihenfolge der übrigen Prozessoren. Die Speicherreferenzsteuerung 50 und der Prioritätszähler 52 sind ausführlicher in der US-Patentanmeldung Nr. 07/531,861 mit dem Titel "Method and Apparatus for Sharing Memory in a Multiprocessor System" von Leedom et al. beschrieben, eingereicht am 1. Juni 1990, die hiermit einbezogen wird.
- Die MWS 30 kann den in der Speicherreferenzsteuerung 50 enthaltenen Prioritätszähler 52 über den Wartungskanal 36 steuern. Wenn die MWS 30 über die Ethernet-Kabelstrecke 31 die Information erhält, daß ein bestimmter Prozessor oder eine Gruppe von Prozessoren einen Echtzeit-Auftrag auszuführen hat, veranlaßt die MWS 30 über den Wartungskanal 16 die Einstellung des Prioritätszählers 52 in der Weise, daß die Echtzeitprozessoren die höchste Speicherreferenzpriorität erhalten.
- Da ein wesentliches Element zur Erfüllung des Echtzeit-Ziels die Minimierung der Eingabe-, Rechen- und Ausgabezeitscheiben ist, ist es für den Fachmann unmittelbar ersichtlich, daß die Erhebung der Echtzeitprozessoren auf die höchste Speicherreferenzpriorität alle drei dieser Ziele verwirklicht. Erstens wird die Rechenzeit minimiert, da die Echtzeitprozessoren die höchste Speicherreferenzpriorität haben und deshalb nicht warten müssen, während andere Prozessoren Speicherreferenzen ausführen, bevor sie auf den gemeinsam genutzten Speicher zugreifen können. Unter der Annahme, daß dieselben Prozessoren, die Echtzeit-Befehle ausführen, auch die Abwicklung der entsprechenden E/A-Übertragungen vornehmen, werden zweitens die Eingabe- und Ausgabezeitscheiben minimiert, da die Echtzeitprozessoren auch die höchste E/A-Priorität haben.
- In einer bevorzugten Ausführungsform der vorliegenden Erfindung hält die MWS 30 den Prioritätszähler 52 bei einem bestimmten Zählwert einfach an. Als Ergebnis rotiert die Priorität unter den Prozessoren 20 überhaupt nicht mehr, wenn ein Echtzeit-Auftrag irgendwo in dem Mehrprozessorsystem 10 abläuft. Eine andere bevorzugte Ausführungsform der vorliegenden Erfindung bedient sich eines Schemas, das eine Rotation innerhalb von Bereichen vornimmt. Würden beispielsweise Prozessoren 0 und 1 Echtzeit-Aufträge abwickeln, hätten diese beiden Prozessoren immer die beiden höchsten Prioritätszählwerte. Die Priorität für Prozessoren 2 bis einschl. 15 würde dann unter den letzten vierzehn Prioritätszählwerten rotieren. Für den Fachmann ist ohne weiteres ersichtlich, daß jede dieser oder weitere alternative Ausführungsformen zur Prioritätssteuerung während einer Echtzeitoperation verwendet werden könnten, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Wie hierin zuvor erwähnt, sind bei der Abwicklung von Echtzeitoperationen durch einen Prozessor oder eine Gruppe von Prozessoren nicht nur die Rechenzeitscheibe, sondern auch die Eingabe- und Ausgabezeitscheiben von kritischer Bedeutung. Der IOS 34 muß deshalb eine wirksame Möglichkeit haben, den Echtzeitprozessoren zu signalisieren, daß Eingangsdaten verfügbar sind. Analog müssen die Echtzeitprozessoren eine wirksame Möglichkeit haben, dem IOS 34 zu signalisieren, daß Ausgangsdaten verfügbar sind. Die vorliegende Erfindung verwirklicht diese beiden Ziele durch mehrere verschiedene, jedoch kooperierende Verfahren.
- Die vorliegende Erfindung bedient sich mehrerer verschiedener Verfahren, um dem Echtzeitprozessor zu signalisieren, daß Eingangsdaten verfügbar sind. Das erste davon verwendet eine "Mailbox" in dem Speicher. Der IOS 34 schickt ein Einwort- Übergabedatum in dem Mehrprozessorsystem 10 an einen spezifischen vorgegebenen Speicherplatz, der als "Mailbox" bezeichnet wird. Jeder Prozessor des Mehrprozessorsystems 10 hat seine eigene zugeordnete Mailbox. Das übergebene Wort enthält Informationen, die melden, daß für den betreffenden Prozessor Eingangsdaten verfügbar sind. Um herauszufinden, ob Eingangsdaten verfügbar sind, fragt ein Echtzeitprozessor den Speicherplatz einfach einmal je vorgegebenem Zeitintervall ab. Enthält die Mailbox die Information für Eingabebereitschaft, dann gibt der Echtzeitprozessor die Daten ein.
- Für den Fachmann ist leicht zu erkennen, daß diese Mailbox-Methode der Signalisierung an einen Echtzeitprozessor, daß Eingangsdaten verfügbar sind, einem Prinzip weit überlegen und sehr viel schneller als dieses ist, bei dem der IOS 34 über das Betriebssystem gehen muß, um dem Prozessor zu melden, daß Eingangsdaten verfügbar sind. Dieser Weg über das Betriebssystem würde einen Zeitrahmen von mindestens einer Mikrosekunde in Anspruch nehmen. Ein Echtzeitprozessor jedoch könnte den Speicher nach jeweils zweihundert Nanosekunden abfragen, ohne diesen auf irgendeine Weise überzubelasten. Für den Echtzeitprozessor ist es also zeitlich günstiger, zu warten und einen Speicherplatz abzufragen, als über das Betriebssystem zu gehen.
- Ein anderes Verfahren der vorliegenden Erfindung zieht den Echtzeit-Interrupt heran, um dem Echtzeitprozessor zu signalisieren, daß Eingangsdaten verfügbar sind, indem der Interrupt zum Aufrufen des Betriebssystems verwendet wird. Das Betriebssystem behandelt dann den Interrupt getrennt und signalisiert dem ablaufenden Echtzeit-Auftrag, daß der Interrupt eingetroffen ist, wodurch der Prozessor informiert wird, daß Eingangsdaten verfügbar sind. Obwohl dieses Verfahren für diejenigen Echtzeitanwendungen, in denen die Zeit absolut kritisch ist, nicht besonders geeignet ist, wird der Fachmann unmittelbar erkennen, daß dieses Verfahren, obwohl es aufgrund der Einbeziehung des Betriebssystems langsamer ist als das zuvor beschriebene Verfahren, dennoch eine wirksame Möglichkeit darstellt, den Echtzeitprozessor zu informieren, daß Eingangsdaten verfügbar sind.
- Jeder Prozessor 20 muß außerdem eine wirksame Möglichkeit besitzen, den IOS 34 darüber zu informieren, daß Ausgangsdaten verfügbar sind. Die bevorzugte Ausführungsform der vorliegenden Erfindung erreicht dies, indem sie Echtzeitprozessoren den Zugriff auf einen privilegierten Betriebsmodus gestattet. In der bevorzugten Ausführungsform der vorliegenden Erfindung wird dieser privilegierte Betriebsmodus als "Überwachungsmodus" bezeichnet. Im allgemeinen wird der Überwachungsmodus für privilegierte Systembefehle verwendet. Die Befehle des Überwachungsmodus (Kanalsteuerung, Setzen der Echtzeituhr, programmierbare Uhren-Interrupts, Setzen der Basis- und Abgrenzungsadresse, Einrichten des Austauschpakets etc.) führen Spezialfunktionen aus, die für das Betriebssystem nützlich sind. Diese Befehle werden nur ausgeführt, wenn ein Prozessor im Überwachungsmodus arbeitet. Wird ein Befehl des Überwachungsmodus abgesetzt, während sich der Prozessor nicht im Überwachungsmodus befindet, so wird der Befehl als ein Nulloperationsbefehl behandelt und nicht ausgeführt. Ein weiteres Merkmal des Monitormodus besteht darin, daß die meisten Interrupts individuell ein- oder ausgeschaltet werden können. Ob ein bestimmter Interrupt ein- oder ausgeschaltet wird, hängt von dem Zweck ab, für den der fragliche Prozessor den Überwachungsmodus verwendet. Für den Fachmann ist es klar, daß die meisten Systembenutzer keinen Zugriff auf diese maschinenabhängigen Befehle haben, so daß sichergestellt ist, daß (1) Benutzer sich nicht gegenseitig, die Systemdaten oder die Systemprogramme stören, und (2) kein einzelner Benutzer gemeinsam genutzte Ressourcen monopolisieren kann und damit die Systemeffizienz senkt.
- Ob ein bestimmter Prozessor in den Überwachungsmodus gebracht wird, wird durch das Austauschpaket gesteuert. Ein Austauschpaket 60 ist in der Fig. 3 dargestellt. Das Austauschpaket 60 ist ein 16 Worte langer Datenblock in dem einem bestimmten Computerprogramm zugeordneten Speicher. Das Austauschpaket 60 enthält die Grundparameter, die für Kontinuität sorgen, wenn ein Programm anhält und in einem Abschnitt des Programms wieder zum nächsten Abschnitt startet. Das Austauschpaket hält außerdem die Inhalte der Adreß-(A)- und Skalar-(S)-Register. Die Adreß- und Skalarregister sowie das in der vorliegenden Erfindung verwendete Austauschpaket sind detaillierter in der US-Patentanmeldung Nr. 07/618,748 beschrieben, die am 27. November 1990 eingereicht wurde, mit dem Titel "Vector Shift by 'Vo Shift Count in Vector Supercomputer Processor", die hiermit einbezogen wird. Tabelle 1 beschreibt die Bit-Belegungen für die Interrupt-Modi, Flags, Status und Modus (dabei ist zu beachten, daß "MM" im Modusfeld angibt, ob ein Prozessor im Überwachungsmodus ist). TABELLE 1 INTERRUPTMODI INTERRUPT BEI REGISTERPARLTÄTSFEHLER INTERRUPT BEI UNKORRIGLERBAREM SPELCHERFEHLER INTERRUPT BEI GLEITKOMMAFEHLER INTERRUPT BEI OPERANDENBERELCHSFEHLER INTERRUPT BEI PROGRAMMBEREICHSFEHLER FRELGABEFLAG BEI FEHLERAUSGANG (AUSTAUSCH WIRD NICHT GESPERRT) INTERRUPT PROGRAMMSTOPP INTERRUPT BEI KORRIGIERBAREM SPEICHERFEHLER INTERRUPT BEI MCU-INTERRUPT INTERRUPT BEI ECHTZEIT-INTERRUPT INTERRUPT BEI ZWISCHENPROZESSOR-INTERRUPT INTERRUPT BEI E/A INTERRUPT VON PROGRAMMIERBARER UHR INTERRUPT BEI GEGENSEITIGER BLOCKIERUNG INTERRUPT BEI BEFEHL 001 FREIGABEFLAG BEI NORMALEM AUSGANG (AUSTAUSCH WIRD NICHT GESPERRT) INTERRUPT-FLAGS REGISTERPARITÄTSFEHLER SPEICHERFEHLER - UNKORRIGIERBAR GLEITKOMMAFEHLER OPERANDENBEREICHSFEHLER PROGRAMMBEREICHSFEHLER FEHLERAUSGANG (000 ABGESETZT) PROGRAMMSTOPP INTERRUPT SPEICHERFEHLER - KORRIGIERBAR MCU-INTERRUPT ECHTZEIT-INTERRUPT INTERRUPT ZWISCHENPROZESSOR E/A-INTERRUPT (WENN IIO & SIE) INTERRUPT PROGRAMMIERBARE UHR GEGENSEITIGE BLOCKIERUNG (WENN IDL & NICHT MM) 001 BEFEHLS-INTERRUPT (WENN IMI & NICHT MM) NORMALER AUSGANG (004 ABGESETZT) STATUS MODI PROGRAMMSTATUS WARTEN AUF SEMAPHOR PUNKTSTATUS VEKTOREN VEKTOREN NICHT VERWENDET ÜBERWACHUNGSMODUS FREIGABE BI-DIREKTIONALER SPEICHER FREIGABE ZWEITE VEKTORLOGIK C90 MODUS
- Die Fig. 4 ist ein vereinfachtes Blockdiagramm eines Vektorprozessors 20 des in der bevorzugten Ausführungsform der Erfindung verwendeten Typs. Die Fig. 5 ist ein detaillierteres Blockdiagramm desselben Prozessors 20. Jeder Prozessor 20 enthält acht Vektorregister V0-V7. Die Vektorregister V0-V7 enthalten jeweils 128 Worte, wovon jedes aus 64 Bit besteht. So enthält beispielsweise das Vektorregister V0 die Worte V0&sub0;-V0&sub1;&sub2;&sub7;. Die Vektorregister sind über Schnittstellen mit Funktionseinheiten verbunden, die mit den Daten von den Vektorregistern verschiedene logische und arithmetische Funktionen ausführen. Die Funktionseinheiten sind vollständig mit Signalspeichern segmentiert, so daß die Operanden in aufeinanderfolgenden Taktperioden an eine Funktionseinheit geschickt werden können. Deshalb kann während der Ausführung eines Befehls jeder Teil einer Funktionseinheit mit einem anderen Operanden arbeiten. Außerdem kann jede Funktionseinheit unabhängig von den anderen Funktionseinheiten arbeiten, so daß während jeder Taktperiode mehr als ein Ergebnis von den Funktionseinheiten erhalten werden kann.
- Wird das Austauschpaket 60 (wie in der Fig. 3 dargestellt) vom gemeinsam genutzten Speicher 12 an einen Prozessor 20 übergeben, wird das Austauschpaket 60 geteilt, und die Abschnitte werden in verschiedenen Speicherbereichen des Prozessors 20 gesichert. Bits 32-63 der Worte 0-7 werden in Austauschparameterregistern 74 (Fig. 4B) gespeichert. Bits 0-31 der Worte 0-7 werden in A-Registern 72 (Fig. 4A und 5B) gespeichert. Schließlich werden die restlichen Worte 10-17 in S-Registern 70 (Fig. 4A und 5A) gespeichert.
- Obwohl im allgemeinen nur privilegierte Systembenutzer Zugriff auf den Überwachungsmodus haben, wird den Echtzeitprozessoren in der bevorzugten Ausführungsform der vorliegenden Erfindung der Zugriff auf den Überwachungsmodus und die entsprechenden Befehle gestattet. Als Ergebnis erhalten die Echtzeitprozessoren Zugriff auf die langsamen Kommunikationskanäle 42 und können Daten über diese lesen oder schreiben. Die Informationen auf den langsamen Kommunikationskanälen 42 sind normalerweise systemprivilegiert und werden vom Betriebssystem zur Steuerung von Systemfunktionen herangezogen. Die Kommunikationskanäle 42 enthalten z.B.Basis- und Grenzadreßinformationen, Interrupt-Informationen, den Inhalt des gemeinsam genutzten Speichers etc. Als Ergebnis haben die Echtzeitprozessoren eine direkte Verbindung mit dem IOS 34, über die sie dem IOS 34 melden können, daß Ausgangsdaten verfügbar sind. In der Quintessenz gestattet dies den Echtzeitprozessoren, den Weg über das Betriebssystem zu vermeiden, um dem IOS 34 zu melden, daß Ausgangsdaten verfügbar sind. Wie dem Fachmann bekannt ist, muß ein Prozessor typischerweise über das Betriebssystem gehen, um den IOS 34 zu informieren, daß Ausgangsdaten verfügbar sind. Die zur Durchführung einer solchen Operation erforderliche Zeit kann jedoch für den Echtzeitbetrieb verhängnisvoll sein. Die von der vorliegenden Erfindung bereitgestellte direkte Verbindung zum Zugriff auf den Überwachungsmodus und dessen entsprechende privilegierte Kommunikationskanäle 42 erhöht die Geschwindigkeit, mit der Daten während der Echtzeitoperation vom System ausgegeben werden können, erheblich.
- Ein weiterer Vorteil, den Echtzeitprozessoren Zugriff auf den Überwachungsmodus zu gewähren, liegt in der Fähigkeit, individuell zu wählen, ob ein bestimmter Interrupt eingeschaltet bleibt oder ausgeschaltet wird. In der bevorzugten Ausführungsform der vorliegenden Erfindung gestattet der Zustand eines Prozessors im Überwachungsmodus diesem die individuelle Wahl, welche Interrupts er im Überwachungsmodus empfangen wird. So kann beispielsweise ein Prozessor im Überwachungsmodus wählen, einen Zwischenprozessor- Interrupt, aber nicht einen Interrupt bei Gleitkommafehler zu empfangen. Da die Zeit in der Echtzeitverarbeitung das Wesentliche ist, kann eine Beschäftigung der Echtzeitprozessoren mit irrelevanten Interrupts oder Interrupts niedriger Priorität den Echtzeitbetrieb in hohem Maße beeinträchtigen. Somit kann jeder Echtzeitprozessor wählen, welche bestimmten Interrupts er während der Abwicklung eines Echtzeit-Auftrags empfangen will, und diejenigen ausschalten, die für den abzuwickelnden Echtzeit-Auftrag irrelevant sind. Für den Fachmann ist unmittelbar ersichtlich, daß diese Fähigkeit, Interrupts individuell zu wählen, die Fähigkeit des vorliegenden Systems, effektiv in Echtzeit zu arbeiten, in hohem Maße steigert.
- Für den Fachmann ist es offensichtlich, daß der Überwachungsmodus von dem IOS 34 auch dazu verwendet werden kann, einem Echtzeitprozessor über die langsamen Kommunikationskanäle 42 mitzuteilen, daß Eingangsdaten verfügbar sind. Auch diese alternative Ausführungsform hat den Vorteil, das Betriebssystem zu vermeiden, wodurch die Geschwindigkeit, mit der die Echtzeitprozessoren die Echtzeitbefehle ausführen, erhöht wird.
- Ein anderes Verfahren der vorliegenden Erfindung bedient sich des obenbeschriebenen Mailbox-Schemas, um den IOS 34 zu informieren, daß Ausgangsdaten von einem Echtzeitprozessor verfügbar sind. Bei diesem Verfahren schickt ein Echtzeitprozessor ein Einwortübergabedatum in dem Mehrprozessorsystem 10 an einen bestimmten dem IOS 34 zugeordneten vorgegebenen Speicherplatz. Dieser Speicherplatz ist die dem IOS 34 zugewiesene "Mailbox". Das übergebene Wort enthält Informationen, daß Ausgangsdaten verfügbar sind, die der IOS abrufen soll. Damit der IOS 34 weiß ob Ausgangsdaten verfügbar sind, fragt der IOS 34 den Speicherplatz einfach je vorgegebenem Zeitintervall ein Mal ab. Enthält die Mailbox die Information für die Ausgabebereitschaft, so ruft der IOS 34 die Daten von dem Echtzeitprozessor ab und schickt sie an die jeweiligen Ausgabegeräte (z.B. Bildschirmanzeige etc.). Wie für den Fachmann unmittelbar ersichtlich ist, hat dieses Mailbox-Verfahren, mit dem dem IOS 34 die Verfügbarkeit von Ausgangsdaten signalisiert wird, den Vorteil der Vermeidung des Betriebssystems, wodurch die Geschwindigkeit erhöht wird, mit der die Echtzeitprozessoren ihre Echtzeitbefehle ausführen.
- Wie oben beschrieben, beinhaltet die vorliegende Erfindung mehrere alternative Verfahren zur Information des IOS 34, daß Ausgangsdaten verfügbar sind, sowie zur Information eines einen Echtzeit-Auftrag abwickelnden Echtzeitprozessors, daß Eingangsdaten verfügbar sind. Die betreffende Echtzeit-Aufgabe sowie die Gesamtsystemumgebung bestimmen, welches Verfahren oder welche Kombination davon in einer gegebenen Situation zu verwenden ist.
- Da die bevorzugte Ausführungsform der vorliegenden Erfindung den Echtzeitprozessoren alle Alternativen zur Verfügung stellt, können Personen, die Echtzeit- Codes für den Ablauf auf dem System der vorliegenden Erfindung schreiben, dies bei der Erstellung ihrer Echtzeit-Codes berücksichtigen. Auf diese Weise können sie die Verwendung derjenigen Alternative wählen, die für den betreffenden Echtzeit- Auftrag am besten geeignet ist.
- Ist beispielsweise ein bestimmter Echtzeit-Code speicherintensiv, benötigt aber selten die Verwendung der gemeinsam genutzten E/A-Register, dann könnte dieser Code mit der Option arbeiten, Signale/Abfragen über die langsamen Kommunikationskanäle 42 zu schicken und/oder die Echtzeit-Interrupts zu verwenden, anstatt den Speicher abzufragen. Die gemeinsam genutzten E/A-Register sind in der US- Patentanmeldung Nr. 07/655,296, eingereicht am 14. Februar 1991 , mit dem Titel "System for Distributed Multiprocessor Communication" näher beschrieben, die hiermit einbezogen wird. Damit würden die Speicherabfragen durch den Echtzeitprozessor (zur Bestimmung, ob Eingangsdaten verfügbar sind) oder durch den IOS 34 (zur Bestimmung, ob Ausgangsdaten verfügbar sind) die zeitkritischen Speicherreferenzen des Echtzeit-Auftrags nicht stören.
- Arbeitet dagegen mehr als ein Prozessor an einem bestimmten Echtzeit-Auftrag, würde die Echtzeit-Leistung erheblich verringert, wenn der IOS bzw. der Echtzeitprozessor den langsamen Kommunikationskanal 42 verwenden müßte. Statt dessen könnte sich der Echtzeit-Programmierer dafür entscheiden, eine Mailbox in dem Speicher abzufragen und/oder die Echtzeit-Interrupts heranzuziehen, um zu bestimmen, ob Ein- oder Ausgangsdaten verfügbar sind, um auf diese Weise den langsamen Kommunikationskanal 42 nicht zu überlasten und die Echtzeitleistung zu verringern.
- Wickelt schließlich ein Prozessor mehr als einen Benutzer-Auftrag ab, wäre der Echtzeit-Interrupt ein sehr wirksames Mittel, dem Echtzeitprozessor mitzuteilen, daß Eingangsdaten für den Echtzeit-Auftrag verfügbar sind.
- Damit ist die Beschreibung der vorliegenden Erfindung abgeschlossen, die ein flexibles Echtzeit-Operationsschema für ein Mehrprozessor-Rechnersystem bereitstellt. Da die vorliegende Erfindung mehrere Alternativen zur effektivsten Abwicklung von Echtzeit-Aufträgen bereitstellt, läßt sich die vorliegende Erfindung auf einfache Weise an zahlreiche verschiedene Echtzeitanwendungen anpassen.
- Obwohl hierin eine spezielle Ausführungsform dargestellt und beschrieben worden ist, liegt es für den Fachmann auf der Hand, daß jede Anordnung, die zur Erfüllung desselben Zwecks vorgesehen ist, die spezielle Ausführungsform ersetzen kann. So könnten beispielsweise verschiedene Echtzeit-Prioritätsschemata, verschiedene Logikausführungen und verschiedene Mehrprozessorsysteme verwendet werden, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Diese Anmeldung dient dazu, alle Adaptionen und Modifikationen der vorliegenden Erfindung abzudecken. Es wird daher ausdrücklich festgestellt, daß diese Erfindung nur durch die Ansprüche und Äquivalente derselben begrenzt wird.
Claims (5)
1. Verfahren zum Durchführen von Echtzeit-Ein-Ausgabe
(E/A)-Verarbeitungsoperationen in einem Multiprozessor-Vektorrechensystem (10), das
eine Vielzahl von Prozessoren (20) enthält, die einen gemeinsamen
Speicher (12) benutzen, und eine Speicherreferenz-Steuereinrichtung (50), die
Speicherreferenzen zwischen den Prozessoren und dem gemeinsamen Speicher
nach einem vorgegebenen Prioritätsschema steuert, wobei jeder Prozessor
über einen privilegierten Kommunikationskanal (42) und über eine
zugeteilte Echtzeit-Interruptleitung (40) an einen E/A-Prozessor IOS (34)
gekoppelt ist, wobei das Rechensystem über den E/A-Prozessor IOS (34) an
eine Workstation OWS (32) angeschlossen ist, und über einen
Maintenancekanal (36) an eine Maintenance-Workstation MWS (30), und wobei das
Verfahren folgende Verfahrensschritte enthält:
(a) Dekodieren eines Echtzeitbefehls in der Workstation OWS (32);
(b) Bestimmen eines Teil-Satzes der Prozessoren dazu, den
Echtzeitbefehl durch Aussenden eines Echtzeit-Interruptsignals vom
E/A-Prozessor IOS (34) über die Echtzeit-Interruptleitungen an jeden
bestimmten Prozessor auszuführen, um den Befehl, den dieser gerade
ausführt, zu stoppen und zu speichern und um die Ausführung des
entsprechenden Echtzeitbefehls zu beginnen;
(c) Informieren, als Antwort auf den Echtzeitbefehl, der Maintenance-
Workstation MWS (30) durch die Workstation OWS (32), um das durch
die Speicherreferenz-Steuereinrichtung (50) gesteuerte
Prioritätsschema zu ändern, so daß alle bestimmten Prozessoren die höchste
Speicherreferenzpriorität haben;
(d) Setzen jedes bestimmten Prozessors, als Antwort auf den
Echtzeitbefehl, in einen Status, bei dem es erlaubt ist, unter
Steuerung eines vorbestimmten, vom gemeinsamen Speicher übertragenen
Datenblocks Zugang zu einer privilegierten Betriebsart zu haben, um
Zugang zu den Anweisungen entsprechend der privilegierten
Betriebsart und zu dem privilegierten Kommunikationskanal (42) zu haben;
und
(e) Umgehen des Betriebssystems so, daß jeder bestimmte Prozessor
Zugang zu den privilegierten Kommunikationskanälen (42) hat, um damit
Daten zu lesen und zu schreiben und dem E/A-Prozessor IOS (34)
mitzuteilen, wenn Ausgangsdaten von dem Prozessor verfügbar sind, und
dem Prozessor mitzuteilen, wenn Eingangsdaten von dem E/A-Prozessor
IOS (34) verfügbar sind.
2. Verfahren nach Anspruch 1, bei dem der Verfahrensschritt (e) ferner
die folgenden Verfahrensschritte enthält:
(e1) Senden eines Datenworts von dem bestimmten Prozessor an einen
vorbestimmten Speicherplatz; und
(e2) Pollen des vorbestimmten Speicherplatzes mit dem E/A-Prozessor IOS
(34), bis das Datenwort angibt, daß Ausgangsdaten verfügbar sind,
so daß das Betriebssystem umgangen ist.
3. Verfahren nach Anspruch 1, bei dem der Verfahrensschritt (e) ferner
die folgenden Verfahrensschritte enthält:
(e1) Senden eines Datenworts von dem E/A-Prozessor IOS (34) an einen
vorbestimmten Speicherplatz; und
(e2) Pollen des vorbestimmten Speicherplatzes mit der bestimmten
Prozessoreinrichtung, bis das Datenwort angibt, daß Eingabedaten
verfügbar sind, so daß das Betriebssystem umgangen ist.
4. Verfahren nach Anspruch 1, bei dem der Verfahrensschritt (e) ferner
den Verfahrensschritt des Sendens eines Interruptbefehls an das
Betriebssystem enthält, um den bestimmten Prozessor davon zu informieren, daß
Eingangsdaten verfügbar sind.
5. Verfahren nach Anspruch 4, das ferner den Verfahrensschritt des
Sendens eines Interruptbefehls durch den E/A-Prozessor IOS (34) über die
Echtzeit-Interruptleitung an den bestimmten Prozessor enthält, um den
bestimmten Prozessor davon zu informieren, daß Eingangsdaten verfügbar
sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67764791A | 1991-03-28 | 1991-03-28 | |
PCT/US1991/008709 WO1992017840A1 (en) | 1991-03-28 | 1991-11-21 | Real-time i/o operation in a vector processing computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69113639D1 DE69113639D1 (de) | 1995-11-09 |
DE69113639T2 true DE69113639T2 (de) | 1996-03-07 |
Family
ID=24719582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69113639T Expired - Fee Related DE69113639T2 (de) | 1991-03-28 | 1991-11-21 | Echtzeit-input/output-methode fuer ein vektor-prozessor-system. |
Country Status (5)
Country | Link |
---|---|
US (1) | US5390300A (de) |
EP (1) | EP0577614B1 (de) |
AT (1) | ATE128777T1 (de) |
DE (1) | DE69113639T2 (de) |
WO (1) | WO1992017840A1 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5683874A (en) * | 1991-03-27 | 1997-11-04 | Research Corporation Technologies, Inc. | Single-stranded circular oligonucleotides capable of forming a triplex with a target sequence |
JP3147432B2 (ja) * | 1991-10-09 | 2001-03-19 | 株式会社日立製作所 | パイプライン処理装置 |
US5623685A (en) * | 1994-12-01 | 1997-04-22 | Cray Research, Inc. | Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency |
US6012135A (en) * | 1994-12-01 | 2000-01-04 | Cray Research, Inc. | Computer having multiple address ports, each having logical address translation with base and limit memory management |
US6044430A (en) * | 1997-12-17 | 2000-03-28 | Advanced Micro Devices Inc. | Real time interrupt handling for superscalar processors |
TW444162B (en) * | 1998-06-30 | 2001-07-01 | Sony Corp | Information processing apparatus, information processing method, and recording medium |
US6851006B2 (en) * | 2001-08-25 | 2005-02-01 | International Business Machines Corporation | Interruption handler-operating system dialog for operating system handling of hardware interruptions |
US7386642B2 (en) * | 2005-01-28 | 2008-06-10 | Sony Computer Entertainment Inc. | IO direct memory access system and method |
JP2006216042A (ja) * | 2005-02-04 | 2006-08-17 | Sony Computer Entertainment Inc | 割り込み処理のためのシステムおよび方法 |
US7680972B2 (en) * | 2005-02-04 | 2010-03-16 | Sony Computer Entertainment Inc. | Micro interrupt handler |
KR102117511B1 (ko) * | 2013-07-30 | 2020-06-02 | 삼성전자주식회사 | 프로세서 및 메모리 제어 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3508206A (en) * | 1967-05-01 | 1970-04-21 | Control Data Corp | Dimensioned interrupt |
US4418382A (en) * | 1980-05-06 | 1983-11-29 | Allied Corporation | Information exchange processor |
FI76893C (fi) * | 1980-09-29 | 1988-12-12 | Honeywell Inf Systems | Kommunikationsmultiplexer med dubbla mikroprocessorer. |
DE3266636D1 (en) * | 1981-05-29 | 1985-11-07 | Gen Electric Co Plc | Telecommunications system |
GB2099619B (en) * | 1981-05-29 | 1985-09-18 | Gen Electric Plc | Data processing arrangements |
US4901230A (en) * | 1983-04-25 | 1990-02-13 | Cray Research, Inc. | Computer vector multiprocessing control with multiple access memory and priority conflict resolution method |
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4937777A (en) * | 1987-10-07 | 1990-06-26 | Allen-Bradley Company, Inc. | Programmable controller with multiple task processors |
-
1991
- 1991-11-21 WO PCT/US1991/008709 patent/WO1992017840A1/en active IP Right Grant
- 1991-11-21 AT AT92904950T patent/ATE128777T1/de active
- 1991-11-21 DE DE69113639T patent/DE69113639T2/de not_active Expired - Fee Related
- 1991-11-21 EP EP92904950A patent/EP0577614B1/de not_active Expired - Lifetime
-
1994
- 1994-02-22 US US08/200,921 patent/US5390300A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
ATE128777T1 (de) | 1995-10-15 |
WO1992017840A1 (en) | 1992-10-15 |
EP0577614B1 (de) | 1995-10-04 |
US5390300A (en) | 1995-02-14 |
EP0577614A1 (de) | 1994-01-12 |
DE69113639D1 (de) | 1995-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19728726B4 (de) | Robotercontroller und dessen Steuerverfahren | |
DE69223303T2 (de) | Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen | |
DE69024753T2 (de) | Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt | |
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE69130620T2 (de) | Datenübertragungsadapter und Verfahren zu dessen Betrieb | |
DE3750306T2 (de) | System zum Gewährleisten der logischen Unversehrtheit von Daten. | |
DE2722099C2 (de) | ||
DE69229716T2 (de) | Schaltungsarchitektur zum mehrkanaligen DMA-Betrieb | |
DE3587218T2 (de) | Verfahren zur Ausführung von in einer hohen Programmiersprache geschriebenen Anwenderprogrammen. | |
DE3689042T2 (de) | Gerät zur Pufferung von Schreibanforderungen. | |
DE69113639T2 (de) | Echtzeit-input/output-methode fuer ein vektor-prozessor-system. | |
EP0057756B1 (de) | Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE2456578C2 (de) | Datenverarbeitungsanlage | |
DE3688363T2 (de) | Unterbrechungsabwicklung in einem Multiprozessorrechnersystem. | |
DE69622832T2 (de) | Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE1524209B2 (de) | Programmgesteuerte datenverarbeitungsanlage | |
DE3727017C2 (de) | ||
DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
DE69230963T2 (de) | Rechnersystem mit Software-Unterbrechungsbefehlen, das selektiv in einem virtuellen Modus arbeitet | |
DE3709675A1 (de) | Arithmetik-logik-einheit | |
DE2721623A1 (de) | System zur bearbeitung eines zielsystemprogrammes | |
DE112020005987T5 (de) | Setzen von prüfpunkten in akkumulatorregister-ergebnissen in einem mikroprozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |