[go: up one dir, main page]

DE69032511T2 - Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher - Google Patents

Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher

Info

Publication number
DE69032511T2
DE69032511T2 DE69032511T DE69032511T DE69032511T2 DE 69032511 T2 DE69032511 T2 DE 69032511T2 DE 69032511 T DE69032511 T DE 69032511T DE 69032511 T DE69032511 T DE 69032511T DE 69032511 T2 DE69032511 T2 DE 69032511T2
Authority
DE
Germany
Prior art keywords
processor
microinstruction
microinstructions
cycle
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69032511T
Other languages
English (en)
Other versions
DE69032511D1 (de
Inventor
John W. Peabody Ma 01960 Bradley
Joseph P. Merrimack Nh 03054 Gardner
Edward F. Jr. Peabody Ma 01960 Getson
Alfred F. Johnston Ri 02919 Votolato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE69032511D1 publication Critical patent/DE69032511D1/de
Publication of DE69032511T2 publication Critical patent/DE69032511T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

  • Die folgenden Patentanmeldungen, die demselben Inhaber gehören wie die vorliegende Anmeldung, sind am gleichen Tag eingereicht worden wie die vorliegende Anmeldung, und sie beinhalten verwandte Gegenstände.
  • HINTERGRUND DER ERFINDUNG ANWENDUNGSGEBIET
  • Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme. Insbesondere bezieht sich die Erfindung auf periphere Controller zum Steuern von Datentransfers zwischen Datenverarbeitungssystemen und peripheren Geräten.
  • STAND DER TECHNIK
  • Die meisten modernen Datenverarbeitungssysteme fuhren sowohl Eingabe- wie auch Ausgabeoperationen durch, wie beispielsweise Lesen von einer Tastatur oder Senden der Daten an einen Zeilendrucker. Für die Zwecke der Effizienz und Arbeitsteilung werden Eingabe- und Ausgabeoperationen zu peripheren Geräten in solchen Datenverarbeitungssystemen gewöhnlich gesteuert durch periphere Controller. Das allgemeine Schema besteht darin, daß diese Controller als Zwischeneinrichtungen zwischen dem Systembus und den peripheren Geräten wirken.
  • Periphereinrichtungs-Controller sind zunehmend gefragt, um gleichzeitig I/O Transaktionen von einer großen Anzahl von verschiedenen peripheren Einrichtungen durchzuführen. Jedes dieser Geräte kann beträchtlich verschiedene Betriebscharakteristiken haben. Um folglich den Controllern zu ermöglichen, verschiedene Betriebscharakteristiken der großen Anzahl von peripheren Geräten zu handhaben, verwenden die Controller der peripheren Geräte nun Mikroprozessoren mit Mikroprogrammen, die auf die Erfordernisse der verschiedenen Geräte zugeschnitten sind. Es ist eine Aufgabe der vorliegenden Erfindung, einen verbesserten Controller zum Steuern der Übertragung von Daten in einem Datenverarbeitungssystem zwischen einem Systembus und peripheren Geräten bereitzustellen, der in der Lage ist, verschiedene Betriebscharakteristiken der angeschlossenen peripheren Geräte in einer effizienten Weise zu handhaben.
  • Die obige und andere Aufgaben werden in vorteilhafter Weise im wesentlichen durch Anwenden der Merkmale gelöst, die in den kennzeichnenden Teilen der unabhängigen Vorrichtungs- bzw. Verfahrensansprüche 1 bzw. 10 ausgeführt sind. Weitere Merkmale und Aspekte der Erfindung und weitere Verbesserungen sind in den zugehörigen Unteransprüchen definiert.
  • Die Merkmale des Oberbegriffs von Anspruch 1 sind aus dem Dokument US-A-4 750 113 bekannt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung umfaßt ein peripherer Controller mindestens einen Datenpuffer zum zeitweiligen Speichern von Datentransfers zwischen einem Systembus und peripheren Geräten. Er umfaßt ebenfalls zwei Mikroprozessoren. Der erste Mikroprozessor steuert die Datentransfers zwischen dem Systembus und dem Datenpuffer, wo hingegen der zweite Mikroprozessor die Datentransfers zwischen dem Datenpuffer und den peripheren Geräten steuert. Zudem ist ein gemeinsamer Steuerspeicher mit den zwei Mikroprozessoren verbunden. Der Steuerspeicher enthält erste und zweite Sequenzen von Mikrobefehlen, die den Betrieb der zwei Mikroprozessoren steuern.
  • Ein Test-Mikrobefehl ist in dem Steuerspeicher in der bevorzugten Ausführungsform gespeichert. Dieser Testbefehl führt jeden Mikroprozessor zum Anfang seiner Sequenz von Mikrobefehlen, wenn das System eingeschaltet wird.
  • Der Controller hat einen Taktgeber-Schaltkreis, der ein Taktsignal erzeugt, das in Zyklen unterteilt ist. Diese Taktsignal wird verwendet zur Steuerung des Betriebs der Mikroprozessoren. Jeder Mikroprozessor ist einem Teil eines Zyklus zugeordnet, während dessen er ausschließlichen Zugang zum Steuerspeicher hat. In der bevorzugten Ausführungsform steuert der Taktgeber-Schaltkreis ebenfalls den Mikroprozessor-Zugang zu einem Notizspeicher ("scratch pad memory"), der zur Interprozessor-Kommunikation verwendet wird. Der Taktgeber-Schaltkreis spielt ebenfalls eine Rolle bei der Steuerung des Zugriffs des Datenpuffers in der bevorzugten Ausführungsform. Jeder Mikroprozessor ist ein Teil eines Zyklus zugeordnet, in welchem er ausschließlich Zugang zu dem Notizblockspeicher und einem Teil hat, in welchem er auf den Datenpuffer zugreift. Die Teile können oder können auch nicht die gleichen Teile sein, die dem Mikroprozessor zum Adressieren des Steuerspeichers zugeordnet sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorangegangene und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden, ausführlichen Beschreibung der Erfindung deutlich, die in den begleitenden Zeichnungen erläutert ist, in welchen die gleichen Bezugszeichen auf die gleichen Elemente verweisen.
  • Fig. 1 ist ein Blockdiagramm des Controllers.
  • Fig. 2 zeigt ausführlich Teile des Controllers von Fig. 1.
  • Fig. 3 zeigt ausführlich den Taktgeber-Schaltkreis des Controllers von Fig. 1.
  • Fig. 4 zeigt ausführlich den Speicher, der zur Interprozessor-Kommunikation verwendet wird.
  • Fig. 5 zeigt die Taktsignale, die von dem Taktgeber-Schaltkreis erzeugt werden, und die Zeitaufteilung der Operationen des Mikroprozessors.
  • Fig. 6 ist ein Zeitaufteilungsdiagramm, das zur Erklärung der Initialisierungssequenz verwendet wird.
  • Fig. 7 zeigt die Organisation des Steuerspeichers und wird verwendet zur Erklärung der Initialisierungssequenz.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • In der bevorzugten Ausführungsform der Erfindung, die in Fig. 1 gezeigt ist, steuert der Controller 9 die Datentransfers zwischen dem Systembus 2 und den peripheren Geräten 1. Der Controller 9 kann Datentransfers von einer Vielzahl von verschiedenen Typen von peripheren Geräten 1 steuern und ist vorgesehen, um bis zu sechzehn Datenkanäle zu steuern. Zwei der Kanäle werden nicht durch peripheren Geräte verwendet, so daß der Controller simultan bis zu vierzehn periphere Geräte steuern kann.
  • Die Basiselemente des Controller umfassen zwei Mikroprozessoren 10 und 12. Sie sind angeschlossen, um die Kommunikation miteinander zu ermöglichen, und um die gemeinsame Benutzung eines Steuerspeichers 14 zu ermöglichen. Der Steuerspeicher 14 ist in einem Random Access Memory (RAM), wie beispielsweise dem Hitachi 6789, enthalten. Sie sind ebenfalls angeschlossen, um die gemeinsame Benutzung eines Notizblockspeichers 16 zu ermöglichen, wie auch um die gemeinsame Benutzung der Datenpuffer 18X und 18Y zu erlauben. In der bevorzugten Ausführungsform ist der Notizblockspeicher 16 in den RAMs, wie beispielsweise dem Hitachi 6789 und dem 6267P-45, enthalten, und der Datenpuffer ist ein RAM, wie beispielsweise der Hitachi 6287. der Mikroprozessor 12, der als Mikroprozessor B bezeichnet ist, steuert die Datentransfers zwischen dem Systembus 2 und dem Datenpuffer 18X und 18Y, wohingegen der Mikroprozessor 10, der als Mikroprozessor A bezeichnet ist, die Datentransfers zwischen den Datenpuffern 18X und 18Y und den peripheren Geräten 1 steuert. Der Betrieb dieser Mikroprozessoren 10 und 12 wird regiert von dem Taktgeber-Schaltkreis 38. Die Einzelheiten des Taktgeber-Schaltkreises 38 werden unten diskutiert.
  • Der Controller ist an verschiedene Systembusse und verschiedene periphere Geräte anpaßbar. Zur Anpassung an eine Änderung in den Systembussen oder peri pheren Geräte müssen neue Firmware in den Steuerspeicher 14 geladen werden. Mit dem Mikroprozessor B und den peripheren Geräten 1 ist eine Periphergerät- Schnittstelle 20 als Schnittstelle angeschlossen, welche der Spezifikation Small Computer System Interface (SCSI) entspricht (ANSI SPEC. X3.131). In der bevorzugten Ausführungsform ist diese Schnittstelle 20 ein Steuerchip Western Digital 3392 SCSI. Die Periphergerät-Schnittstelle 20 führt Befehle, Nachrichten, Daten und Statustransferfunktionen durch. Mit der Periphergerät-Schnittstelle 20 ist eine Reihe von Treibern und Empfängern 3 verbunden, welche Informationen senden zu und Empfangen von den peripheren Geräten 1. Eine Schnittstelle 4 ist ebenfalls vorgesehen, um den Systembus 3 mit dem Controller zu verbinden. Die Schnittstelle 4 ist ausführlicher beschrieben in der oben erwähnten Anmeldung von Barlow et al.
  • Die vorliegende Erfindung muß nicht auf zwei Mikroprozessoren beschränkt sein. Mehr als zwei können verwendet werden, doch müssen es zumindest zwei sein. Die Verwendung von zwei Mikroprozessoren würde jedoch eine Änderung des Synchronisationsverfahrens erfordern.
  • Die Elemente des Mikroprozessors A sind ausführlich in Fig. 2 gezeigt. Diese Elemente umfassen ein Befehlsregister 22A zum Empfangen von eingehenden Mikrobefehlen von dem Steuerspeicher 14 und einen Decodierschaltkreis 28A zum Dekodieren der eingehenden Mikrobefehle. Decodereinheiten, wie beispielsweise Texas Instruments 74S138 und 745139 werden verwendet. Es gibt ebenfalls in dem Mikroprozessor A einen Sequenzer 24A. In der bevorzugten Ausführungsform ist der Sequenzer 24A ein Advanced Micro Device AMD2910A. Der Sequenzer 24A steuert die Abfolge der Ausführung der Mikrobefehle. Ebenso ist in dem Mikroprozessor eine ALU-Einheit 31A enthalten zum Durchführen von Kalkulationen, die von den eingehenden Mikrobefehlen vorgeschrieben werden. Die ALU-Einheit 31A hat Ausgaberegister 11A zum Speichern ihrer Ausgabe, bis die Ausgabe benötigt wird. Der Mikroprozessor B enthält ebenfalls ähnliche Elemente, wie sie durch das Suffix B bezeichnet sind, wie in Fig. 2 zu sehen ist.
  • Fig. 3 zeigt primäre Elemente des Taktgeber-Schaltkreises 38 und bestimmte Tatksignale von diesem Schaltkreis sind in Fig. 5 gezeigt. Der Taktgeber- Schaltkreis enthält einen 20-Megahertz-Taktgeber 91. Der Ausgang dieses Taktgebers 91 ist das Taktsignal CLKOSC-00. Das CLKOSC-00 wird in einen Inverter 88 und ein D-Flip-Flop 93 eingegeben. Es wird ebenfalls von anderen Komponenten des Controller 9 verwendet.
  • Das CLKOSC-00 wird in das Taktsignal des D-Flip-Flop 93 eingegeben. Sowohl die Setz- wie auch die Rücksetzeingaben des Flip-Flop 93 sind eng verkoppelt. Die Setz- und Rücksetzeingaben sind niederaktiv, so daß der Flop nicht gesetzt oder rückgesetzt wird während einer typischen Operation. Der D-Eingang ist der komplementäre Ausgang des Flip-Flop 93, CK1OMZ-00. Der nicht komplementäre Eingang ist CK10MZ+00. Wie oben erwähnt, geht das CLKOSC-00 ebenfalls auch zu einem Inverter 88. Der Ausgang dieses Inverters 88 ist das CLKOSC+00.
  • Der CK10MZ+00-Ausgang von dem D-Flip-Flop 93 wird in einen anderen Flip- Flop 95 eingespeist. Dieser Flip-Flop 95 ist von einem JK-Typ. Das CK10MZ+00-Signal ist komplementär und wird als Taktsignal für das JK-Flip- Flop 95 verwendet. Die Setz- und Rücksetzeingänge, die niederaktiv sind, sind hoch verkoppelt. Der K-Eingang ist ebenfalls hoch verkoppelt. Der J-Eingang ist das Signal CLKHLT-0X. Das CLKHLT-0X wird erzeugt und verwendet nur im Testmodus. Dieses Signal wird verwendet, um die Taktgeberoperation anzuhalten und wird nicht während des normalen Betriebs verwendet. Das Flip-Flop liefert zwei Ausgänge: CLKSIG+00 und ihr Komplementäres CLKSIG-00. Diese zwei Signale sind Basis-Zeitgebersignale, die von dem Controller verwendet werden.
  • Zusätzlich zu dem Einspeisen in den JK-Flip-Flop 95 wird das CK10MZ+00- Signal in zwei NAND-Gatter 90 und 92 eingegeben.
  • In dem ersten NAND-Gatter 90 wird das CK10MZ+00 einer NAND-Operation mit CLKSIG+00 unterworfen. Der sich ergebende Ausgang ist CLKSTA-00, der von den anderen Komponenten in dem Controller verwendet wird. In dem anderen NAND-Gatter 92 wird das CLKSIG-00 einer NAND-Operation mit CK10MZ+00 unterworfen, um das CLKSTC-00 zu erzeugen, welches in ähnlicher Weise von den anderen Elementen des Controllers verwendet wird.
  • Das Komplementäre des Signals CLKOSC+00 wirkt als Takteingang für zwei JK- Flip-Flops 96 und 102 verwendet. Der JK-Flip-Flop 96 hat seinen J-, K- und Setzeingang alle hoch gekoppelt. Sein Rücksetzeingang ist CLKSIG-00. Dieser JK-Flip-Flop 96 erzeugt zwei Ausgänge, welche anderswo in dem Controller verwendet werden: CLKSTB+00 und sein Komplementäres CLKSTB-00. Der andere JK-Flip-Flop 102, in welchem CLKOSC+00 als Taktsignal dient, hat seine J-, K- und Setzeingänge ebenfalls hoch gekoppelt. Der Rücksetzeingang ist jedoch verschieden. Er ist das Signal CLKSIG+00. Die zwei Ausgänge von diesem JK- Flip-Flop sind UPSTB+00 und UPSTB-00.
  • Die oben diskutierten Signale sind alle mit Bezug aufeinander in Fig. 5 gezeigt. Ihre Rolle im Steuerbetrieb des Controllers wird unten ausführlich diskutiert.
  • Fig. 4 zeigt die Hauptelemente des Notizblockspeichers 16. Das Hauptelement ist die Speichereinheit 30. Andere Elemente umfassen zwei Adressenregister 32, 34, welche Adresse speichern, die von den ALUs 31A und 31B der jeweiligen Mikroprozessoren 10 und 12 empfangen werden. Die Adressenregister 32 und 34 arbeiten in Verbindung mit einem Multiplexer 36. Der Multiplexer 36 wählt eine Adresse aus von einem der Adressenregister 32 und 34. Die Dateneingänge und Datenausgänge zu und von der Speichereinheit 30 sind in den Eingangsregistern 33A und 33B und den Ausgangsregistern 35A und 35B gespeichert.
  • Der Steuerspeicher 14 enthält zwei Sätze von Mikrobefehlen zum Steuern des Betriebs von jedem Mikroprozessor 10 und 12. Wenn einer dieser Mikrobefehle ausgelesen wird aus dem Steuerspeicher 14 wird er in eines der Befehlsregister 22A oder 22B zu der Zeit, die unten diskutiert wird, in Latch-Weise gegeben. Zur Erläuterung wird angenommen, daß er in dem Befehlsregister 22A eingetaktet wird. Verschiedene Bits des Mikrobefehls, die von dem Befehlsregister 22 gehalten werden, werden an die Decodierschaltung 28A, ALU 31A und/oder den Sequenzer 24A weitergegeben. Die Felder des Mikrobefehls, wie beispielsweise sein OP-Code, werden durch die Decodierschaltung 28 decodiert.
  • Wenn der Befehl einen Zugang zu dem Notizblockspeicher 16 erfordert, wird eine Adresse in dem Notizblockspeicher 16 durch die ALU 31A berechnet. Die ALU 31A muß ebenfalls eine Adresse berechnen, wenn der Zugang zu den Datenpuffern 18X und 18Y erforderlich ist. Wie zuvor erwähnt, steuert der Sequenzer 24A die Reihenfolge der Ausführung der Mikrobefehle durch den Mikroprozessor. Er bestimmt die Adresse für den nächsten, auszuführenden Mikrobefehl. Nach der Verarbeitung durch diese Komponenten ist die Ausführung des Mikrobefehls vollständig, wobei die Adresse des nächsten Mikrobefehls, die in dem Sequenzer 24A gehalten wird, zu dem Steuerspeicher 14 weitergegeben wird und der ganze Zyklus wiederholt wird.
  • Die obige Beschreibung des Betriebes eines der Mikroprozessoren 10 und 12 sieht die Mikroprozessoren isoliert. Da beide Mikroprozessoren 10 und 12 denselben Steuerspeicher 14 und den Notizblockspeicher 18 gemeinsam benutzen, synchronisiert der Taktgeber-Schaltkreis beide, so daß jeder genügend Zugang zu diesem geteilten Betriebsmittel 14 und 18 hat. Die vorliegende Erfindung erlaubt ein solches Aufteilen des Zugangs, während sie den Bedarf an kostspieliger und ineffizi enter Hardware zur Vermeidung von Konflikten zwischen den Mikroprozessoren beseitigt.
  • Fig. 5 zeigt ein Basis-Zeitaufteilungsschema, das in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet wird. Für die Zwecke der Erläuterung ist es hilfreich zu betrachten, wie die Taktsignale, die in Fig. 5 gezeigt sind, während des Betriebes des Controllers verwendet werden. Ein guter Startpunkt ist Punkt 55, bei welchem ein Mikrobefehl in das Befehlsregister 22A des Mikroprozessors A eingetaktet wird. Dies wird erreicht durch Verwendung von CLKSIG+00 als Taktsignal zu dem Befehlsregister 22A. Wie aus Fig. 1 ersichtlich ist, wird der Mikrobefehl am führenden Rand eines Hochbereiches von CLKSIG+00 eingetaktet. Das Befehlsregister 22A ist tatsächlich zusammengesetzt aus mindestens drei Registern 22AA, 22AB und 22AC (Fig. 2). Jedes von diesen hält ein Drittel des Mikrobefehls.
  • Unmittelbar, nachdem sie in das Befehlsregister 22A getaktet wurden, reisen die Bits des Mikrobefehls durch die anderen Elemente des Mikroprozessors A. Folglich bedingt während der Hälfte des Zyklus CLKSIG+00 zwischen den Punkten 55 und 62 die Ausführung des Mikrobefehls. Wenn die Bits des Mikrobefehls von den Befehlsregistern 22AA, 22AB und 22AC gehalten werden, dann wird die Reise, wie zuvor erwähnt, durch das Feld bestimmt, das sie wiedergeben. Die Bits reisen zu der Decodierschaltung 28A, ALU 31A und/oder dem Sequenzer 24A.
  • Diejenigen Bits, die zu der Decodierschaltung 28A reisen, müssen warten, bis die Decodierschaltung 28 aktiviert ist, bevor sie decodiert werden. Die Decodierschaltung 28A ist zusammengesetzt aus mehreren Decodiereinheiten 28AA, 28AB, 28AC, 28AD und 28AE, von denen jede ein separates Taktsignal hat, das sie aktiviert. Wann ein Mikrobefehlsbit während eines Zyklus von CLKSIG+00 decodiert wird, hängt von dem Taktsignal für die bestimmte Decodiereinheit ab, die es betritt. Die Decodiereinheit 28AA, die die Befehle decodiert, um den Da tenpuffer 18 aufzugreifen oder loszulassen, hat das Komplementäre von CLKSTC-00 als eines ihrer aktivierenden Eingänge. Als Ergebnis kann die Decodiereinheit 28AA nur während der Zeitdauer 63 aktiviert sein. In ähnlicher Weise hat die Decodiereinheit 28AB, die Befehle zum Beschreiben des Datenpuffers decodiert, das Komplementäre von CLKSTA-00 als eines ihrer aktivierenden Eingänge. Dies kann nur während der Zeitdauer 64 akitiviert sein. Ebenso begrenzt auf eine Zeitdauer, in welcher sie aktiviert ist, ist die Decodiereinheit 28AC, welche den Mikrobefehl zum Schreiben des Notizblockspeichers 16 durch den Mikroprozessor A decodiert. Eine ihrer aktivierenden Eingänge ist das Komplementäre von CLKSTB-00. Sie kann nur während der Zeitdauer 65 aktiviert sein. Die Decodiereinheit 28AE hat ebenfalls das Komplementäre CLKSTB-00 als eines ihrer aktivierenden Eingänge.
  • Wie oben erwähnt, betreten die Bits des Mikrobefehls nicht nur die Decodierschaltung 28A, sondern auch die ALU 31A. Diese Bits werden verwendet in Berechnungen, die von der ALU 31A durchgeführt werden. Die Bedeutung der Berechnungen hängt von dem Mikrobefehl ab, der in das Befehlsregister 22A getaktet wurde. Der Ausgang von der ALU 31A wird in die Ausgangsregister 11A gespeichert. Diese Register haben einen Takteingang, welcher das Signal OC1STB+00 ist. OC1STB+00 ist ein UND des Komplements von CLKSTB-00 und des Komplements von OPCOD1-00. OPCOD1-00 ist ein Signal, das von einer der Decodiereinheiten 28AD erzeugt wird.
  • Es gibt vier Typen von Mikrobefehlen: Setzen/Rücksetzen, ALU, Test und Zweig und Zweig. Die ersten zwei Bits des Mikrobefehls sagen, welcher Typ von Befehl der Mikrobefehl ist. OPCOD1-00 ist der Ausgang, der anzeigt, daß der Mikrobefehl ein Mikrobefehl des ALU-Typs ist. OPCOD0-00 zeigt einen Zweig- Mikrobefehl an; OPCOD2-00 zeigt einen Test- und Zweig-Mikrobefehl an; und OPCOD3-00 zeigt einen Setz/Rücksetz-Befehl an. Sie sind niederaktiv. Folglich muß CLKSTB-00 niedrig sein und OPCOD1-00 muß niedrig sein, damit OC1STB+00 hoch sein kann.
  • Oben wurde ebenfalls erwähnt, daß die Bits zu dem Sequenzer 24A gehen. Der Sequenzer 24A verwendet wie das Befehlsregister 22A das CLKSIG+00 als sein Taktsignal. Am ansteigenden Rand des CLKSIG+00-Signals werden Felder von der ALU 31A und der Decodierschaltung 28A in den Sequenzer 24A eingetaktet. Der Ausgang jedoch wird nicht aktiviert, bis UPRCEN-0A hoch ist. UPRCEN-0A ist der Ausgang von dem NAND-Gatter 119, das die Eingänge hat: CLKSIG-00 und UPRCEN+00 (ein Testsignal, welches hochgesetzt ist während des normalen Betriebes). Während es normalen Betriebes werden UPRCEN-0A durch das CLKSIG-00 bestimmt. Auf diese Weise werden die Felder in den Sequenzer 24A am Punkt 55 eingetaktet. Der Mikroprozessor B hat entsprechende Signale UPR- CEN+UB und CLKSIG+00. UPRCEN+0B ist hochgesetzt während des normalen Betriebes. UPRCEN-0B ist der Ausgang von dem NAND-Gatter 118, das die Eingänge von CLKSIG+00 und UPRCEN+0B hat. Die sich ergebenden Ausgänge vom Sequenzer 24A sind nicht gültig bis Punkt 62. Die Mikrobefehlsdaten werden in das Befehlsregister 22A am Punkt 60 eingetaktet.
  • Die Adresse, die von dem Sequenzer 24A erzeugt wurde, reist zu dem Steuerspeicher, beginnend an Punkt 62. Die Adresse wird verwendet, um einen Mikrobefehl von dem Steuerspeicher 14 während des halben Zyklus, beginnend an Punkt 62, zu gewinnen. Der gewonnene Mikrobefehl wird in das Befehlsregister 22A bis Punkt 60 nicht eingetaktet. Am Punkt 60 ist die Ausführung des zuvor geholten Mikrobefehls vollständig. Am Punkt 60 beginnt der Zyklus für Mikroprozessor A erneut.
  • Die obige Diskussion erläutert die Synchronisation, die in der bevorzugten Ausführungsform enthalten ist. Am Punkt 62 hat der Mikroprozessor B einen Mikrobefehl, der in sein Befehlsregister 22B getaktet ist. Er wiederholt die Schritte, die oben für Mikroprozessor A beschrieben wurden, doch Mikroprozessor B operiert die Hälfte eines Zyklus von CLKSIG+00 außerhalb der Phase des Betriebs von Mikroprozessor A. Die Unterschiede in der Zeitgebung zwischen den Mikroprozessoren kann durch Betrachtung von ihren Taktsignalen erkannt werden. Zunächst ist das Taktsignal zu dem Befehlsregister des Mikroprozessors B das CLKSIG-00. Weiterhin verwenden die Decodiereinheiten verschiedene Taktschemen. Die Decodiereinheiten, die für die Decodierung der Mikrobefehle verantwortlich sind, welche Notizblockzugang 28BC und 28BE erfordern, haben das Komplementäre von UPSTB-00 als ihr Taktsignal. Die Decodierschalteinheit 28BA, die die Mikrobefehle decodiert, um die Datenpuffer 18X und 18Y zu ergreifen oder loszulassen, hat das Komplementäre von CLKSTA-00 als ihr Taktsignal. Darüber hinaus hat die Decodiereinheit 28BB, welche die Befehle decodiert, um den Datenpuffer zu beschreiben, das Komplementär von CLKSTC-00 als ihr Takteingang.
  • Als Ergebnis dieser Taktsignale kann der Datenpuffer nur von dem Mikroprozessor B während der Zeitdauer 67 des Zyklus von CLKSIG-00 zwischen den Punkten 58 und 62 ergriffen oder losgelassen werden. Ähnlich sind Einschreibungen auf den Notizblockspeicher durch den Mikroprozessor B begrenzt auf die Zeitdauer 66 und Einschreibungen auf den Datenpuffer sind begrenzt auf die Zeitdauer 68. Dieses Synchronisationsschema erlaubt beiden Mikroprozessoren 10 und 12 effizient den Notizblockspeicher 16, den Steuerspeicher 14 und die Datenpuffer 18X und 18Y ohne Konflikt zu teilen.
  • Die Sequenzer 24A und 24B von jedem Mikroprozessor 10 und 12 beruhen ebenfalls auf verschiedenen Taktsignalen. CLKSIG+00 ist das Taktsignal für den Sequenzer 24A, wie schon erwähnt wurde, wohingegen CLKSIG-00 das Taktsignal für Sequenzer 24B ist. Darüber hinaus beruht der Sequenzer 24A auf dem CLKSIG-00 als sein Aktivierausgang. Der Sequenzer 24B beruht andererseits auf CLKSIG+00 als sein Aktivierausgang.
  • Nachdem untersucht wurde, wohin die Felder eines Mikrobefehls beim Eintreten in das Befehlsregister 22A reisen, ist es notwendig, weiterhin die Ausgänge von der Decodierschaltung 28A zu betrachten. Wenn ein Mikrobefehl, der das Ergreifen oder Loslassen eines Datenpuffers erfordert, decodiert wird, wird der entsprechende Ausgang von der Decodiereinheit an die Zugriffslogik 19 weitergegeben, die in dem Programmable Array Logic (PAL) implementiert ist. In der bevorzugten Ausführungsform werden PAL20R4A- und PAL20L8A-Chips verwendet. Die Zugriffslogik 19 bestimmt, ob ein Datenpuffer ergriffen wird von einem der Mikroprozessoren 10 und 12. Das PAL 19 ist mit den Multiplexem 27 und 29 verbunden. Diese Multiplexer werden verwendet, um eine Adresse aus den Adressenregistern 23 und 25 auszuwählen. Sie werden getaktet durch ein Signal CLKSIG+11, welches durch Komplementieren von CLKSIG+00 durch einen Inverter 120 erhalten wird. Die Datenpuffer 18X und 18Y sind jedoch nicht die Hauptsache der vorliegenden Erfindung. Daher ist eine ausführlichere Beschreibung der Datenpuffer und der Zugriffslogik in der verwandten Anmeldung "Peripheral Controller with Paged Data Buffer Management" gegeben.
  • Wenn der Mikrobefehl durch die Decodierschaltung 28A, der Zugang zu dem Notizblockspeicher 16 sucht, decodiert wird, dann werden die entsprechenden Signale von der Decodierschaltung 28A an den Notizblockspeicher 16 gesendet. Zwei Signale sind von besonderem Interesse: SPMIDA-00 und SRIA02-00. Das SPMIDA-00 kommt von der Decodiereinheit 28AC und zeigt an, daß ein Befehl zum Erhöhen der Adresse, die in dem Notizblock-Adressenregister 32 gehalten ist, angefordert wird. Das SRIA02-00 zeigt an, daß das Notizblock- Adressenregister 32 in das AOP-Feld des Mikrobefehls geladen werden soll. Das AOP-Feld besteht aus 7 bis 10 Bits des Mikrobefehls. Diese zwei Signale sind von besonderem Interesse, weil ihre Komplementäre einer ODER-Operation unterworfen werden, was zu SPMCLK+00 führt. SPMCLK+00 wird verwendet als Takteingang in das Adressenregister 32.
  • Die Adresse, auf die in dem Notizblockspeicher 16 zugegriffen werden soll, wird von der ALU 31A berechnet. Die berechnete Adresse wird in das Notizblock- Adressenregister 32 am führenden Rand des hohen Teils des SPMCLK+00 eingetaktet. Jedoch wird die Adresse nicht verwendet, bis der Multiplexer 36 dieses Adressenregister 32 auswählt. Welches Adressenregister er auswählt, hängt ab vom Zustand des CLKSIG+00. Wenn das CLKSIG+00 hoch ist, dann wählt der Multiplexer das Adressenregister 32 aus. Andererseits, wenn das CLKSIG+00 niedrig ist, dann wird das Adressenregister 34 ausgewählt. Folglich wählt der Multiplexer 36 nicht aus bis zum halben Zyklus, der dem halben Zyklus folgt, in welchem die Adresse in das Adressenregister 32 und 34 eingeladen wird. Beispielsweise würde das Adressenregister 32 eine Adresse empfangen während des halben Zyklus während 62 und 60. Auf die Speicherstelle innerhalb der Speichereinheit 30, die die Adresse wiedergibt, kann jedoch nicht zugegriffen werden bis zum halben Zyklus, unmittelbar folgend nach 60. Wenn sie einmal ausgewählt wurde, dann wird die Adresse in dem Adressenregister verwendet, um auf die Speichereinheit 30 zuzugreifen.
  • Alle Eingaben für die Speichereinheit 30 sind in den Eingaberegistern 33A und 33B gespeichert. Das Register 33A speichert die Eingaben von dem Mikroprozessor A und 33B speichert die Eingaben von dem Mikroprozessor B. Die Eingaberegister 33A und 33B haben Taktsignale, die immer hoch gesetzt sind. Folglich wird ihre Synchronisation gesteuert durch ihre Ausgangsaktivierung. Ihr Ausgang wird aktiviert durch das Komplementäre des Signals SPMWEN-0A bzw. des Komplementären des Signals SPMWEN-0B. Das SPMWEN-0A und das SPMWEN-0B werden von dem Multiplexer 121 abgeleitet. Wenn CLKSIG+00 hoch ist und SPMWRT-0A hoch ist, dann ist SPMWEN-0A tief und aktiviert den Ausgang von dem Eingaberegister 33A. Wenn in ähnlicher Weise CLKSIG-00 tief ist und SPMWRT-0B hoch ist, dann ist SPMWEN-0B tief und aktiviert den Ausgang von dem Eingaberegister 33B. Die Ausgabe wird in den Ausgaberegistern 35A und 35B gespeichert. 35A speichert die Ausgabe von dem Mikroprozessor A und 35B speichert die Ausgabe von dem Mikroprozessor B. Das Ausga beregister 35A hat das CLKSIG+00 als sein Taktsignal und das Ausgaberegister 35B hat das CLKSIG-00 als sein Taktsignal. Die zwei Ausgaberegister 35A und 35B sind folglich um ein halben Zyklus aus der Phase.
  • Die obige Diskussion hat sich auf den Mikroprozessor A zur Erklärung konzentriert. Es ist zu beachten, daß der Betrieb des Mikroprozessors B ähnlich ist. Der Unterschied zwischen den zwei Mikroprozessoren 10 und 12 liegt in den Zeitsignalen, die ihren Betrieb regieren. In den meisten Fällen gibt es für jedes Signal, das in der Diskussion zu Mikroprozessor A erwähnt wurde, ein entsprechendes Signal für Mikroprozessor B. Die hauptsächlichen entsprechenden Signale sind oben diskutiert worden.
  • Die obige Beschreibung der Zeiteinteilung erfolgte für erläuternde Zwecke. Der Mikroprozessor A und der Mikroprozessor B können entgegengesetzt dem beschriebenen Schema synchronisiert werden (d. h. Mikroprozessor A und Mikroprozessor B können Seiten tauschen, wenn sie gegebene Aufgaben durchführen). Weiterhin, wenn mehr als zwei Mikroprozessoren verwendet werden, muß die Zeiteinteilung geändert werden. Wenn beispielsweise drei Mikroprozessoren verwendet werden, könnte ein Zyklus in drei Bereiche aufgeteilt werden, wobei jede Komponente Operationen während des jeweiligen Teils der Zeitdauern durchführt. Diese Variationen sind in der vorliegenden Erfindung enthalten.
  • Um den Steuerspeicher 14 der vorliegenden Erfindung zu verwenden, muß er zunächst für den Betrieb vorbereitet werden. Die Vorbereitung beinhaltet das Laden eines Test-Mikrobefehls in eine Anfangsstelle 50 (siehe Fig. 7) in dem Steuerspeicher 14. Ebenso werden in den Steuerspeicher 15 Sätze von Mikrobefehlen 52 und 54 für jeden Mikroprozessor 10 bzw. 12 geladen. Sie können organisiert sein, wie es in Fig. 7 gezeigt ist oder auf andere Weise, wenn es gewünscht wird. Wenn die Mikroprozessoren 10 und 12 ihre Operation beginnen, dann werden sie auf eine Anfangsstelle 50 geführt, wo der Test-Mikrobefehl gespeichert ist.
  • Der Test-Mikrobefehl umfaßt einen Test und einen Mikrobefehl des Zweigtyps. Der Test-Mikrobefehl testet die Identität des Mikroprozessors, der ihn ausführt. Der Test-Mikrobefehl kennt die Identität von einem der Mikroprozessoren. Es wird beispielsweise angenommen, daß er die Identität des Mikroprozessors A kennt. Er vergleicht die Identität der Mikroprozessoren, die ihn ausführen, mit der bekannten Identität. Wenn die Identität mit der bekannten Identität übereinstimmt, dann tritt eine Verzweigung auf. Folglich verzweigt der Mikroprozessor A, dessen Identität mit der bekannten Identität übereinstimmt, zum Beginn seiner Sätze von Mikrobefehlen 52, wenn der Test-Mikrobefehl ausgeführt wird. Andererseits, wenn der Mikroprozessor B den Test-Mikrobefehl ausführt, dann stimmen die Identitäten nicht überein, so daß er nicht verzweigt. Der nächste Mikrobefehl in der Reihenfolge, welcher der Anfang des Satzes von Mikrobefehlen 54 des Mikroprozessors B ist, würde geholt werden.
  • Die Zeiteinteilung dieses Vorgangs ist in Fig. 6 gezeigt. Am Punkt 5 würde der Testbefehl in den Mikroprozessor A eingetaktet. Während der Hälfte eines Zyklus unmittelbar nach Punkt 5 würde die Ausführung auf dem Testbefehl beginnen. Am Punkt 6 würde der Test-Mikrobefehl in den Mikroprozessor B eingetaktet. Während der Hälfte eines Zyklus unmittelbar nach Punkt 6 würde Mikroprozessor A verzweigen. Mikroprozessor B würde die Ausführung des Testbefehls beginnen. Am Punkt 7 würde der erste Mikrobefehl des Satzes von Mikrobefehlen 52 für den Mikroprozessor A in den Mikroprozessor A eingetaktet werden. Die Verarbeitung für Mikroprozessor A würde dann ablaufen, wie es zuvor beschrieben wurde. Der Mikroprozessor B würde die Ausführung des Testbefehls während der Hälfte eines Zyklus unmittelbar nach Punkt 7 vervollständigen und den ersten seines Satzes von Mikrobefehlen 54 am Punkt 8 einladen. Nach Punkt 8 würde die Verarbeitung für Mikroprozessor B ablaufen, wie es zuvor beschrieben wurde.
  • Die vorliegende Erfindung bietet verschiedene Vorteile, welche die Systemleistung gegenüber dem Stand der Technik verbessern. Zunächst erfordert sie keine kostspielige und aufwendige Hardware, um die Mikroprozessoren zu synchronisieren. Zweitens ist sie effizienter, als der Stand der Technik, weil sie Datenpuffer, den Notizblockspeicher und einen Steuerspeicher gemeinsam nutzt. Es gibt keine Notwendigkeit für separate Datenpuffer, Notizblockspeicher und insbesondere Steuerspeicher für jeden Mikroprozessor. Drittens, aufgrund der Synchronisation ist die Pseudo- oder scheinbar simultane Lese/Schreibfähigkeit gegeben. Dies sind nur einige der Vorteile. Es ist selbstverständlich, daß die Liste der Vorteile nicht abgeschlossen ist.
  • Zwar ist die Erfindung insbesondere gezeigt und beschrieben mit Bezug auf eine bevorzugte Ausführungsform, doch ist es für den Fachmann selbstverständlich, daß verschiedene Änderungen in Form und Einzelheit durchgeführt werden können, ohne daß der Rahmen der Erfindung, der durch die begleitenden Ansprüche definiert ist, verlassen wird.

Claims (13)

1. Steuervorrichtung zum Steuern des Transfers von Daten in einem Datenverarbeitungssystem zwischen einem Systembus und peripheren Einheiten über eine Systembus-Schnittstelle (4) und peripheren Treibern und Empfängern (3, 20), mit einem ersten und einem zweiten Mikroprozessor (12, 10), wobei der erste Prozessor den Transfer von Daten mit Bezug auf die Systembus-Schnittstelle (4) steuert und der zweite Prozessor den Transfer von Daten mit Bezug auf die peripheren Treiber und Empfänger (3, 20) steuert, und mit mindestens einem Datenpuffer (18, 19) zum temporären Speichern von Daten, wie sie sich zwischen dem Systembus (2) und den peripheren Einheiten bewegen, und mit einem Steuerspeicher (14) zum Speichern von Mikrobefehlen, welche die Datentransfer-Operationen steuern;
dadurch gekennzeichnet, daß
- der Steuerspeicher (14) mit beiden der Prozessoren (12, 10) gekoppelt ist und einen ersten Satz (54) von Mikrobefehlen zum Steuern des ersten Prozessors (12) und einen zweiten Satz (52) von Mikrobefehlen zum Steuern des zweiten Prozessors (10) hält, wobei jeder der Sätze einzig zum Steuern der einzelnen Funktionen ist, die durch den jeweiligen Prozessor durchzuführen sind;
- eine Taktschaltung (38) vorgesehen ist zum Erzeugen eines zyklischen Taktsignals das in Zyklen unterteilt ist, wobei jedem Mikroprozessor ein Abschnitt eines Zyklus zugewiesen ist, währenddessen er auf den Steuerspeicher (14) exklusiv zugreifen kann.
2. Steuervorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß die Zyklen des zyklischen Taksignals erste und zweite Halbzyklen von im wesentlichen gleicher Dauer aufweisen, welche dem ersten und zweiten Prozessor zugeführt werden, und wobei der erste Prozessor durch die ersten Halbzyklen synchronisiert ist, um auf den Steuerspeicher (14) zuzugreifen, um von dort Mikrobefehle während der ersten Halbzyklen zu erhalten, und wobei der zweite Prozessor durch die zweiten Halbzyklen synchronisiert ist, um auf den Steuerspeicher (14) zuzugreifen, um von dort Mikrobefehle während der zweiten Halbzyklen zu erhalten.
3. Steuervorrichtung gemäß Anspruch 2, dadurch gekennzeichnet, daß während der jeweiligen Halbzyklen, in welchen die Prozessoren auf den Steuerspeicher (14) zugreifen, jeder Prozessor nur auf seinen jeweiligen Mikrobefehlssatz zugreift.
4. Steuervorrichtung gemäß Anspruch 1, bei welcher die Prozessoren (12, 10) mit dem mindestens einem Datenpuffer (18, 19) gekoppelt sind, um das Schreiben der Daten in den Datenpuffer zu steuern, und bei welcher die Prozessoren durch die ersten und zweiten Halbzyklen synchronisiert sind, um auf den Datenpuffer nur während jeweiliger der Halbzyklen zuzugreifen.
5. Steuervorrichtung gemäß Anspruch 1, weiter gekennzeichnet durch einen Notizblock-Speicher (16), der mit beiden Prozessoren (12, 10) verbunden ist.
6. Steuervorrichtung gemäß Anspruch 5, dadurch gekennzeichnet, daß jedem Prozessor (12, 10) ein Abschnitt des Zyklus zugeteilt ist, in welchem sie exklusiv auf den Notizblock-Speicher (16) zugreifen können oder exklusiv den Datenpuffer (18, 19) belegen können.
7. Steuervorrichtung gemäß Anspruch 1, bei welcher zwei Datenpuffer (18, 19) vorhanden sind.
8. Steuervorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß in den Steuerspeicher (14) ein Testbefehl geladen wird, der jeden Prozessor (12, 10) auf den Anfang seines jeweiligen Satzes von Mikrobefehlen richtet.
9. Steuervorrichtung gemäß Anspruch 8, bei welcher der Testbefehl ein bedingter Verzweigungsbefehl ist.
10. Verfahren zum Synchronisieren des Betriebs einer Steuervorrichtung in einem Datenverarbeitungssystem für den Transfer von Daten zwischen einem Systembus und einer peripheren Einheiten-Schnittstelle (SCSI), gekennzeichnet durch:
- Aufteilen der Datenverarbeitungs-Zeitschlitze in Zyklen;
- beim Start eines ersten Abschnitts eines Zyklus Durchführen eines Befehlsabrufs durch einen ersten Prozessor (12) von einem Steuerspeicher (14),
- während eines ersten Abschnitts des Zyklus Beginnen der Ausführung des durch den ersten Prozessor (12) abgerufenen Mikrobefehls; und
- Vollenden der Ausführung eines zuvor durch einen zweiten Prozessor (10) abgerufenen Mikrobefehls;
- beim Start eines zweiten Abschnitts des Zyklus Durchführen eines Befehlsabrufs durch den zweiten Prozessor von dem Steuerspeicher;
- während des zweiten Abschnitts des Zyklus Beginnen der Ausführung des durch den zweiten Prozessor abgerufenen Mikrobefehls: und
- Vollenden der Ausführung des durch den ersten Prozessor abgerufenen Mikrobefehls; und
- Wiederholen der obigen Schritte.
11. Verfahren gemäß Anspruch 10, dadurch gekennzeichnet, daß die Operation mit einem Testbefehl startet, welcher jeden Prozessor auf den Anfang seines jeweiligen Satzes von Mikrobefehlen (Fig. 7) richtet.
12. Verfahren gemäß Anspruch 11, bei welchem der Testbefehl ein bedingter Verzweigungsbefehl ist.
13. Verfahren gemäß Anspruch 11, gekennzeichnet durch:
- beim Start eines ersten Abschnitts eines Zyklus Abrufen des Testbefehls von dem Steuerspeicher (14) durch den ersten Prozessor;
- während des ersten Abschnitts des Zyklus Beginnen der Ausführung des Testbefehls durch den ersten Prozessor;
- beim Start eines zweiten Abschnitts des Zyklus Abrufen des Testbefehls durch den zweiten Prozessor;
- während des zweiten Abschnitts des Zyklus
(i) Vollenden der Ausführung des Testbefehls, wobei die Ausführung des Testbefehls das Ausrichten des ersten Prozessors auf einen ersten Mikrobefehl in seinem (ersten) Satz von Mikrobefehlen aufweist; und
(ii) Beginnen der Ausführung des Testbefehls durch den zweiten Prozessor;
- beim Start eines ersten Abschnitts eines nächsten Zyklus Abrufen des ersten Mikrobefehls beim Anfang des Satzes von Mikrobefehlen für den ersten Prozessor durch den ersten Prozessor;
- während des ersten Abschnitts des nächsten Zyklus
(i) Vollenden der Ausführung des Testbefehls, wobei die Ausführung des Testbefehls das Ausrichten des zweiten Prozessors auf einen ersten Mikrobefehl in seinem (zweiten) Satz von Mikrobefehlen aufweist; und
(ii) Beginnen der Ausführung des ersten Mikrobefehls durch den ersten Prozessor; und
- beim Start des zweiten Abschnitts des nächsten Zyklus Abrufen des ersten Mikrobefehls am Anfang des Satzes von Mikrobefehlen für den zweiten Prozessor durch den zweiten Prozessor; und
- Wiederholen der obigen Schritte für die zweiten und folgenden Mikrobefehle in dem jeweiligen ersten und zweiten Satz von Mikrobefehlen für den ersten und den zweiten Prozessor.
DE69032511T 1989-01-10 1990-01-02 Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher Expired - Fee Related DE69032511T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/295,629 US5081609A (en) 1989-01-10 1989-01-10 Multiprocessor controller having time shared control store

Publications (2)

Publication Number Publication Date
DE69032511D1 DE69032511D1 (de) 1998-09-03
DE69032511T2 true DE69032511T2 (de) 1999-04-29

Family

ID=23138542

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032511T Expired - Fee Related DE69032511T2 (de) 1989-01-10 1990-01-02 Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher

Country Status (9)

Country Link
US (1) US5081609A (de)
EP (1) EP0378071B1 (de)
JP (1) JPH02226457A (de)
KR (1) KR940011594B1 (de)
CN (1) CN1021147C (de)
AU (1) AU622748B2 (de)
CA (1) CA2007004C (de)
DE (1) DE69032511T2 (de)
NO (1) NO900093L (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347638A (en) * 1991-04-15 1994-09-13 Seagate Technology, Inc. Method and apparatus for reloading microinstruction code to a SCSI sequencer
NL9301129A (nl) * 1993-06-29 1995-01-16 Nederland Ptt Processorcircuit omvattende een eerste processor, en systeem omvattende het processorcircuit en een tweede processor.
US9513744B2 (en) * 1994-08-15 2016-12-06 Apple Inc. Control systems employing novel physical controls and touch screens
US5564027A (en) * 1995-04-20 1996-10-08 International Business Machines Corporation Low latency cadence selectable interface for data transfers between busses of differing frequencies
KR960043938A (ko) * 1995-05-27 1996-12-23 김광호 멀티프로세서 제어시스템의 단위 프로그램에 대한 메세지 과부하 제어방법
US20090273574A1 (en) * 1995-06-29 2009-11-05 Pryor Timothy R Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
US5644174A (en) * 1996-03-22 1997-07-01 Sun Microsystems, Inc. Universal AC sequencer for a server
CA2299550A1 (en) * 1999-03-31 2000-09-30 International Business Machines Corporation Dynamic i/o allocation in a partitioned computer system
CN100409221C (zh) * 2002-12-05 2008-08-06 亮标公司 具有笛卡尔控制器的数据处理系统以及处理数据的方法
US20080129707A1 (en) * 2004-07-27 2008-06-05 Pryor Timothy R Method and apparatus employing multi-functional controls and displays
US20100231506A1 (en) * 2004-09-07 2010-09-16 Timothy Pryor Control of appliances, kitchen and home
WO2011002371A1 (en) * 2009-07-03 2011-01-06 Axel Jantsch A programmable controller

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3500466A (en) * 1967-09-11 1970-03-10 Honeywell Inc Communication multiplexing apparatus
US3651482A (en) * 1968-04-03 1972-03-21 Honeywell Inc Interlocking data subprocessors
IT991096B (it) * 1973-07-10 1975-07-30 Honeywell Inf Systems Calcolatore elettronico con reti funzionali indipendenti per l esecuzione simultanea di opera zioni diverse sugli stessi dati
JPS5410219B2 (de) * 1973-12-07 1979-05-02
US3909799A (en) * 1973-12-18 1975-09-30 Honeywell Inf Systems Microprogrammable peripheral processing system
JPS5194734A (en) * 1975-02-19 1976-08-19 Tajushorisochino enzanseigyohoshiki
US4028668A (en) * 1975-12-22 1977-06-07 Honeywell Information Systems, Inc. Apparatus for selectively addressing sections and locations in a device controller's memory
US4124888A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Peripheral-unit controller apparatus
US4084229A (en) * 1975-12-29 1978-04-11 Honeywell Information Systems Inc. Control store system and method for storing selectively microinstructions and scratchpad information
US4062058A (en) * 1976-02-13 1977-12-06 The United States Of America As Represented By The Secretary Of The Navy Next address subprocessor
US4156925A (en) * 1976-04-30 1979-05-29 International Business Machines Corporation Overlapped and interleaved control store with address modifiers
US4050097A (en) * 1976-09-27 1977-09-20 Honeywell Information Systems, Inc. Synchronization technique for data transfers over an asynchronous common bus network coupling data processing apparatus
US4085450A (en) * 1976-12-29 1978-04-18 Burroughs Corporation Performance invarient execution unit for non-communicative instructions
US4296464A (en) * 1977-03-03 1981-10-20 Honeywell Inc. Process control system with local microprocessor control means
JPS5440537A (en) * 1977-09-07 1979-03-30 Hitachi Ltd Pipeline control system
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
US4321665A (en) * 1979-01-31 1982-03-23 Honeywell Information Systems Inc. Data processing system having centralized data alignment for I/O controllers
US4327408A (en) * 1979-04-17 1982-04-27 Data General Corporation Controller device with diagnostic capability for use in interfacing a central processing unit with a peripheral storage device
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4322792A (en) * 1979-12-14 1982-03-30 Burroughs Corporation Common front-end control for a peripheral controller connected to a computer
US4323967A (en) * 1980-04-15 1982-04-06 Honeywell Information Systems Inc. Local bus interface for controlling information transfers between units in a central subsystem
US4348723A (en) * 1980-04-15 1982-09-07 Honeywell Information Systems Inc. Control store test selection logic for a data processing system
US4488231A (en) * 1980-09-29 1984-12-11 Honeywell Information Systems Inc. Communication multiplexer having dual microprocessors
US4384285A (en) * 1981-02-19 1983-05-17 Honeywell Information Systems Inc. Data character video display system with visual attributes
US4603400A (en) * 1982-09-30 1986-07-29 Pitney Bowes Inc. Mailing system interface interprocessor communications channel
WO1984003192A1 (en) * 1983-02-07 1984-08-16 American Telephone & Telegraph Data network interface
JPS60122450A (ja) * 1983-12-05 1985-06-29 Hitachi Ltd マイクロ・プロセッサ
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
US4800523A (en) * 1985-02-25 1989-01-24 Itt Corporation Device interface controller having device specific and device common instructions separately stored
US4750113A (en) * 1985-02-28 1988-06-07 Unisys Corporation Dual function I/O controller
US4754396A (en) * 1986-03-28 1988-06-28 Tandem Computers Incorporated Overlapped control store
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
JPS63228250A (ja) * 1987-03-17 1988-09-22 Fujitsu Ltd 入出力制御装置
US4821170A (en) * 1987-04-17 1989-04-11 Tandem Computers Incorporated Input/output system for multiprocessors
US4890225A (en) * 1988-04-01 1989-12-26 Digital Equipment Corporation Method and apparatus for branching on the previous state in an interleaved computer program
US5117387A (en) * 1988-08-18 1992-05-26 Delco Electronics Corporation Microprogrammed timer processor

Also Published As

Publication number Publication date
KR900012156A (ko) 1990-08-03
CA2007004C (en) 1994-06-07
EP0378071B1 (de) 1998-07-29
CA2007004A1 (en) 1990-07-10
CN1021147C (zh) 1993-06-09
US5081609A (en) 1992-01-14
NO900093D0 (no) 1990-01-09
AU4772290A (en) 1990-07-19
NO900093L (no) 1990-07-11
AU622748B2 (en) 1992-04-16
DE69032511D1 (de) 1998-09-03
KR940011594B1 (ko) 1994-12-22
EP0378071A3 (de) 1991-08-28
JPH02226457A (ja) 1990-09-10
EP0378071A2 (de) 1990-07-18
CN1044720A (zh) 1990-08-15

Similar Documents

Publication Publication Date Title
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE2846117C2 (de) Datenprozessor
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE2944419C2 (de)
DE2612083A1 (de) Verfahren und vorrichtung zur ein/ausgang-datenverarbeitung
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2411963B2 (de) Datenverarbeitungsanlage
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE2755616A1 (de) Asymmetrischer multiprozessor
DE69032511T2 (de) Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher
DE69327150T2 (de) Einzelbefehl- und Mehrfachdatenarchitektur (SIMD) zur Verbindung mit dem Bus eines Hauptprozessors
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE69131954T2 (de) Zeichenfolgensuchgerät und -system
DE3882425T2 (de) Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff.
DE2835110A1 (de) Schneller echtzeit-rechneremulator
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE2759120C2 (de)
DE69528824T2 (de) Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee