[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69031524T2 - Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen - Google Patents

Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen

Info

Publication number
DE69031524T2
DE69031524T2 DE69031524T DE69031524T DE69031524T2 DE 69031524 T2 DE69031524 T2 DE 69031524T2 DE 69031524 T DE69031524 T DE 69031524T DE 69031524 T DE69031524 T DE 69031524T DE 69031524 T2 DE69031524 T2 DE 69031524T2
Authority
DE
Germany
Prior art keywords
data
processor
processing element
transfer
memory
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
DE69031524T
Other languages
English (en)
Other versions
DE69031524D1 (de
Inventor
Hiroshi Kadota
Katsuyuki Kaneko
Ichiro Okabayashi
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69031524D1 publication Critical patent/DE69031524D1/de
Application granted granted Critical
Publication of DE69031524T2 publication Critical patent/DE69031524T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur Datenübertragung, und insbesondere ein Verfahren und eine Vorrichtung zur Datenübertragung, die aüf Prozessorelemente anwendbar ist, wodurch eine Vielzahl von verbundenen Verarbeitungselementen wie ein Multiprozessorsystem arbeiten kann.
  • In der nachstehenden Beschreibung bedeutet der Ausdruck "Verarbeitungselement" eine Einheit, die wenigstens aus einem Prozessor (d.h., einen digitalen Mikroprozessor), einem Speicher und einer Datenübertragungssteuerung, jeweils mit internen Daten- und Adressenbussen des Verarbeitungselements verbunden, besteht.
  • Fig. 1 zeigt ein Beispiel eines Multiprozessorsystems nach dem Stand der Technik zur Beschreibung eines Verfahrens der Datenübertragung, die im Stand der Technik verwendet wurde, wenn ein Paar von Verarbeitungselementen gemeinsam als Mikroprozessorsystem arbeiten. Ein Verarbeitungselement 124a setzt sich zusammen aus einem Prozessor 1a, Speicher 2a, Datenübertragungssteuerung 130a und Datenbus 4a, während ein Verarbeitungselement 124b sich aus einem Prozessor 1b, Speicher 2b und Datenübertragungssteuerung 130b zusammensetzt. Die Adressenbusse sind nicht dargestellt. 5a, 5b bedeuten jeweilige Übertragungsbefehlssignale, die von den Prozessoren 5a, 5b erzeugt werden. 108a, 108b bedeuten Statuszähler, deren Zählwert den aktuellen Datenübertragungsstatus repräsentiert, d.h., sie werden verwendet zur Speicherung Zählung der Anzahl von ausgegeben Datenübertragungsbefehlen, 16a, 16b bedeuten jeweilige Rückwärtszählsignale zur Dekrementierung der Inhalte dieser Zähler, 17a, 17b bedeuten Ausgangssignale, die die Zählerinhalte reprasentleren, und 18 bedeutet ein Netzwerk mit einem Bus, mit dem die Verarbeitungselemente 124a, 124b über ihre jeweiligen Datenübertragungssteuerungen verbunden sind. 7a, 7b bedeuten jeweils Steuerabschnitte der Datenübertragungssteuerungen 16a, 16b.
  • Mit dem solchermaßen aufgebauten Mikroprozessorsystem kann der Vorgang der Übertragung von Daten aus dem Verarbeitungselement 124a zum Verarbeitungselement 124b folgendermaßen ausgeführt werden, wobei als Beispiel angenommen wird, daß jeder Satz aufeinanderfolgender Wörter, die als ein Verarbeitungsergebnis vom Prozessor 1a gewonnen werden und in den Speicher 2a geschrieben werden, zum Prozessorelement 124b zu übertragen ist. In diesem Fall wird jedes Wort in den Speicher 2a vom Prozessor 1a eingeschrieben, der Prozessor 1a sendet ein Übertragungsbefehlssignal an die Datenübertragungssteüerung 130a und sendet auch Signale an die Datenübertragungssteuerung 130a zur Einstellung der Adresse in einem Adressenzähler (in der Zeichnung nicht dargestellt), in die das erste der zu übertragenden Wörter eingeschrieben wurde, und zur Aktualisierung der Adressenzählerinhalte, wenn ein jeder zusätzliche Übertragungsbefehl ausgegeben wird. Die Datenübertragungssteuerung 103a spricht auf jeden Übertragungsbefehl an, der durch ein Signal 5a durch Inkrementieren des Zählwertes der Zählschaltung 108a dargestellt wird (d.h, aus einem vorbestimmten Anfangswert). Solange die Ausgangssignale 17a aus dem Zähler 108a einen Zählwert darstellen, der größer als die Anfangszählung ist, wird danach jedesmal, wenn der Datenbus 4a verfügbar wird (d.h., weil das Verarbeitungselement aktuell eine interne Verarbeitung ausführt) ein Datenwort, dessen Adresse vom Adressenzähler in der Datenübertragungssteuerung spezifiziert ist, aus dem Speicher 2a unter der Steuerung der Datenübertragungssteuerung 130a ausgelesen und an die Datenübertragungssteuerung geliefert. Wenn dies auftritt, wird der Zählwert der Zählschaltung 108a um Eins dekrementiert, und der Adressenzähler der Datenübertragungssteuerung 130 wird um Eins inkrementiert. Das heißt, der Zählwert im Zähler 108a wird jedesmal bei einem erzeugten Übertragungsbefehlssignal inkrementiert und wird jedesmal dekrementiert, wenn eine Datenübertragung nachfolgend abhängig von der Übertragungsanforderung auftritt, die durch dieses Übertragungsbefehlssignal dargestellt ist. Auf diese Weise ist sichergestellt, daß die Anzahl von aus dem Speicher zur Datenübertragung gelesenen Wörter mit der Anzahl von Datenübertragungsbefehlen identisch ist, die vom Prozessor ausgegeben wird. Die solchermaßen an die Datenübertragungssteuerung 13db gelieferten Daten werden von der Datenübertragungssteuerung 130a in das Netz 18 übertragen, dann zur Übertragungssteuerung 130b des Verarbeitungselements 124b, um in den Speicher 2b dieses Verarbeitungselements eingeschrieben zu werden.
  • Ein zweites Verfahren nach dem Stand der Technik der Datenübertragung zur Erzielung eines Multiprozessorsystembetriebs ist im Japanischen Patent mit der Offenlegungsnummer 64- 9563 beschrieben. Fig. 2 ist ein einfaches Blockschaltbild zur Beschreibung der Arbeitsweise dieses Datenübertragungsverfahrens. 80a, 80b bedeuten jeweilige Prdzessoren, 20 ist ein Doppel- Ein- /Ausgabespeicher, 21a, 21b sind Busschnittstellenschaltungen und 22a, 22b sind Sätze von Registern. Mit einem derartigen Aufbau wird die Datenübertragung in der folgenden Sequenz für den Fall der Datenübertragung vom Prozessor 80a zum Prozessor 80b ausgeführt. Der Prozessor 80a überprüft ein Bit, das den Abschluß des Auslesens von Daten aus dem Prozessor 80b in die Registergruppe 22b anzeigt. Wenn dieses Bit sichergestellt ist, dann wird das Einschreiben in den Doppel- Ein- /Ausgabespeicher 20 über die Busschnittstellenschaltung 21a gestartet. Wenn das Einschreiben abgeschlossen ist, wird ein Interrupt- Signal zum Prozessor 80b gesandt, und ein Bit, das den Abschluß des Einschreibens über die Busschnittstellenschaltung 21a des Prozessors 80a anzeigt, wird sichergestellt. Der Prozessor 80b sucht ein Signal, das den Abschluß des Einschreibens in die Prozessorgruppen 22a, 22b durch den Prozessor 80a anzeigt, und wenn er herausfindet, daß dieses Signal gesichert ist, beginnt der Prozessor 80b das Auslesen von Daten aus dem Speicher 20 über die Busschnittstellenschaltung 21b.
  • Jedoch kommen bei diesen Datenübertragungsverfahren nach dem Stand der Technik mehrere Probleme auf. Wenn insbesondere beim zuvor beschriebenen Verfahren nach dem Stand der Technik die Datenübertragung in ein Verarbeitungselement oder aus einem Verarbeitungselement nur während Intervallen möglich ist, in denen der Datenbus 4 (und Adressenbus) dieses Verarbeitungselement freigegeben wird (d.h., wenn der Prozessor des Verarbeitungselements nicht aktuell auf den Speicher zugreift). Wenn es eine große Wahrscheinlichkeit gibt, daß interne Busse zu beliebig vorgegebener Zeit frei sind, dann wird es generell möglich, für die Datenübertragungssteuerung auf den Speicher bald danach jedesmal zuzugreifen, wenn ein Übertragungsbefehlssignal vom Prozessor ausgegeben wird, (d.h., bei der ersten Gelegenheit, bei der die Daten- und Adressenbusse vom Prozessor freigegeben sind), um Daten aus dem Speicher auszulesen, die aus dem Verarbeitungselement zu übertragen sind, oder die in den Speicher Daten einzuschreiben sind, die in das Verarbeitungselement aus dem anderen Verarbeitungselement zu übertragen sind. In einem praktischen Multiprozessorsystem (und insbesondere dann, wenn ein System, das zur Hochgeschwindigkeits-Echtzeitsimulation verwendet wird, welches die wichtigste Anwendungsart von Multiprozessorsystemen ist) ist die Zugriffshäufigkeit vom Prozessor jedoch auf jedes Verarbeitungselement des Prozessorsystems extrem hoch. Somit werden die internen Daten- und Adressenbusse jedes Verarbeitungselements selten in einem Freizustand angetroffen, so daß bei jeder Datenübertragung darauf zu warten ist, bis die internen Busse frei geworden sind. Darüber hinaus kann in Multiprozessorsystemanwendungen, wie der Simulation, die gewünschte Übertragungsrate extrem hoch sein, so daß die erforderliche Zeit zur Ausführung der Datenübertragung einen nachteiligen Effekt auf das Gesamtsystem ausübt. Selbst wenn letztlich die individuellen Verarbeitungselemente Hochgeschwindigkeitsprozessoren enthalten, ist es schwierig, das Leistungsniveau zu erzielen, das für ein derartiges Multiprozessorsystem anzustreben ist.
  • Beim zweiten Verfahren nach dem Stand der Technik der zuvor beschriebenen Datenübertragung wird der Umfang und die Komplexität der notwendigen Hardware aufgrund der Einbeziehung des Doppel- Ein- /Ausgabespeichers exzessiv groß. Die Schwierigkeiten, die bei dem Einsatz und der Steuerung eines Doppel- Ein- /Ausgabespeichers aufkommen, sind gut bekannt, und die Anwendung einer solchen Vorrichtung ist unerwünscht, selbst dann, wenn das Multiprozessorsystem nur zwei Prozessoren enthält. Aufgrund der Tatsache, daß die Datenübertragungen über den Doppel- Ein- /Ausgabespeichers erfolgen, wäre es darüber hinaus erforderlich, eine spezielle Speicherkonfiguration für ein Multiprozessorsystem zu schaffen, das eine größere Anzahl von Prozessoren als 2 besitzt, und dieses ist sehr schwierig zu erreichen.
  • Eine weitere Anordnung nach dem Stand der Technik ist im Dokument WO 86/00734 beschrieben, das eine Hochgeschwindigkeits- Datenübertragung zwischen ersten und zweiten Verarbeitungsmitteln offenbart.
  • Nach der technischen Lehre dieses Dokuments wird jedoch eine Datenübertragung gesteuert von einem Interruptsignal ausgeführt, das erzeugt und an ein Verarbeitungsmittel geliefert wird, wodurch das Verarbeitungsmittel befähigt wird, Daten von einem Zwischenspeicherglied an eine RAM- Einheit zu übertragen, die den Verarbeitungsmitteln zugeordnet ist.
  • Wenn eine Datenübertragung ausgeführt wird, werden die Verarbeitungsmittel, an die Daten übertragen werden, folglich gezwungen, die normale Verarbeitung zu unterbrechen, um eine Datenübertragung zu bewirken, wodurch letztlich eine längere Verarbeitungs zeit erforderlich ist.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die zuvor beschriebenen Nachteile des Standes der Technik zu überwinden, indem ein Verfahren und Gerät zur Datenübertragung zwischen Verarbeitungselementen geschaffen wird, wodurch ein Multiprozessorsystem aufgebaut werden kann, bei dem die zur Ausführung der Datenübertragung erforderliche Zeit (zusätzlich zur erforderlichen Zeit für die Prozessoroperationen außerhalb der Datenübertragungen) viel kürzer gemacht werden kann, als dies nach dem Stand der Technik ohne Anwendung spezieller Einrichtungen möglich ist, wie beispielsweise einem Doppel-Einlausgabespeicher.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist es, ein Verfahren und ein Gerät zur Datenübertragung zwischen Verarbeitungselementen zu schaffen, wodurch Datenübertragungsoperationen leicht von einem Programm gesteuert werden können, das vom Prozessor eines Verarbeitungselements ausgeführt wird.
  • Es ist darüber hinaus eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Gerät zur Datenübertragung zwischen Verarbeitungselementen zu schaffen, wodurch ein Multiprozessorsystem aufgebaut werden kann, bei dem die Anzahl von Verarbeitungselementen des Systems leicht erweitert werden kann.
  • Es ist eine zusätzliche Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Gerät zur Datenübertragung zwischen Verarbeitungselementen anzugeben, wodurch ein Hochleistungs- Multiprozessorsystem geschaffen wird.
  • Diese Aufgaben werden gelöst durch ein Verfahren der Datenübertragung für ein Verarbeitungselement bestehend aus einem Prozessor, einem Speicher und einer Datenübertragungssteuerung, die wechselweise mit einem Datenbus verbunden werden, wozu das Verfahren in Patentanspruch 1 angegeben ist.
  • Außerdem werden diese Aufgaben gelöst durch eine Datenübertragungssteuerung für ein Verarbeitungselement, wie es in Patentanspruch 5 angegeben ist.
  • Darüber hinaus werden diese Aufgaben gelöst durch ein Multiprozessor- Netzwerksystem mit einer Vielzahl von Verarbeitungselementen, die gemäß Patentanspruch 9durch ein Netzwerk zum wechselseitigen Datenaustausch verbunden sind.
  • Vorteilhafte Weiterentwicklungen sind in den jeweiligen abhangigen Patentansprüchen angegeben.
  • Fig. 1 ist ein Blockschaltbild eines Multiprozessorsystems, bei dem ein Verfahren der Datenübertragung nach dem Stand der Technik angewandt wird;
  • Fig. 2 ist ein Blockschaltbild eines zweiten Beispiels eines Multiprozessorsystems unter Verwendung eines Datenübertragungsverfahrens nach dem Stand der Technik;
  • Fig. 3 ist ein Blockschaltbild eines Multiprozessorsystems zum Einfügen in ein erstes Ausführungsbeispiel des Datenübertragungsverfahrens nach der vorliegenden Erfindung;
  • Fig. 4 ist ein Zeitdiagramm, das ein Beispiel des Datenaustauschs im System von Fig. 3 zeigt;
  • Figuren 5A und 5B sind Zeitdiagramme zum Vergleich des Verfahrens nach der vorliegenden Erfindung mit dem des Standes der Technik von Fig. 1;
  • Fig. 6 zeigt Beispiele unter Verwendung von Maschinensprachenbefehlen zur selektiven Erzeugung von Datenübertragungsbefehlen gemeinsam mit Speicherzugriffen durch einen Prozessor eines Verarbeitungselements;
  • Figuren 7 und 8 veranschaulichen den Innenaufbau einer Datenübertragungssteuerung in Fig. 3;
  • Fig. 9 zeigt den Innenaufbau einer Adressenerzeugungsschaltung in der Datenübertragungssteuerung;
  • Fig. 10 ist ein Zeitdiagramm zur Veranschaulichung der Arbeitsweise der Steuerung, wenn ein Zustand während der Datenübertragung "Ausgangspuffer voll" auftritt;
  • Fig. 11 ist ein allgemeines Blockschaltbild eines Multiprozessorsystems unter Verwendung eines zweiten Ausführungsbeispiels des Verfahrens nach der vorliegenden Erfindung; und
  • Fig. 12 ist ein Zeitdiagramm zur Beschreibung der Arbeitsweise des Systems von Fig. 10.
  • BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSBEISPIELE
  • Fig. 3 ist ein Blockschaltbild zur Beschreibung eines ersten Ausführungsbeispiels eines Verfahrens der Datenübertragung nach der vorliegenden Erfindung und eines Gerätes zur Ausführung dieses Verfahrens. Fig. 4 ist ein Zeitdiagramm der Arbeitsweise dieses Ausführungsbeispiels In Fig. 3 sind die Verarbeitungselemente 24a, bzw. 24b aus Prozessoren 1a bzw. 1b aufgebaut, Speichern 2a, 2b, Datenübertragungssteuerungen 3a und 3b und Datenpuffer 4a, 4b, und Adressenbusse 6a, 6b. 5a, 5b bezeichnen jeweils Übertragungsbefehlssignale dieser Verarbeitungselemente 24a, 24b, die durch jeweilige der Prozessoren 1a, 1b gesichert werden, um anzuzeigen, daß eine Datenübertragung über die Datenübertragungssteuerung zu starten ist (genauer gesagt, daß Daten vom Datenbus dieses Verarbeitungselements in den Ausgangsdatenpuffer der Datenübertragungssteuerung dieses Verarbeitungselements zu übertragen sind). Die Datenübertragungssteuerung 3a enthält Eingangsdatenpuffer 9a und Ausgangsdatenpuffer 9b, I/O- Bausteine 23a, 23b und eine Adressenerzeugungsschaltung 10a, während die Datenübertragungssteuerung 3b ausgestattet ist mit Eingangsdatenpuffer 9c und Ausgangsdatenpuffer 9d und I/O- Bausteinen 23c, 23d zusammen mit einer Adressenerzeugungsschaltung 10b.
  • 11a, 11b bedeuten jeweilige Lese/Schreib- Steuersignale für den Speicher 2a und Speicher 2b. Das Signal ha kann entweder vom Prozessor 1a oder von der Datenübertragungssteuerung 3a erzeugt werden, d.h., sie werden von jeweiligen Dreizustands- Ausgangsanschlüssen des Prozessors 1a oder der Datenübertragungssteuerung 3a erzeugt, um anzuzeigen, daß ein Speicherlesezugriff oder ein Schreibzugriff ausgeführt wird.
  • 30a und 30b bedeuten Buszulassungssignale des Verarbeitungselements 24a bzw. des Verarbeitungselements 24b, die jeweils sicherstellen, wann der zugehörige interne Datenbus (4a oder 4b) frei ist, d.h. nicht aktuell vom Prozessor (1a oder 1b) belegt ist, und kann zugegriffen werden von der zugehörigen Datenübertragungssteuerung. (Nachstehend wird der "Sicherstellungszustand" angenommen mit dem logischen Pegel 1 eines Signals). 31a, 31b sind jeweilige Busbenutzungssignale, die anzeigen, daß der zugehörige interne Datenbus 4a oder 4b gerade von der Datenübertragungssteuerung 3a oder 3b dieses Verarbeitungselements belegt ist.
  • 6a und 6b bedeuten jeweilige Adressenbusse innerhalb der Verarbeitungselemente 24a, 24b. Adressen zum Speicherlese- oder Schreibzugriff können an alle dieser Adressenbusse entweder vom Prozessor (1a oder 1b) gesandt werden oder von der Datenübertragungssteuerung (3a oder 3b).
  • In diesem Ausführungsbeispiel hat das Netz 18 zwei Busse 50, 51, die jeweils der Eingangsdatenübertragung zum I/O- Baustein 23b des Verarbeitungselements 24a dienen (aus dem Verarbeitungselement 24b oder von irgendeiner Einrichtung, die mit diesem Bus im Netz 18 verbunden ist), und zur gleichen Eingangsdatenübertragung zum I/O- Baustein 23ddes Verarbeitungselements 24b. Daten, die aus einem Verarbeitungselement übertragen werden, werden zeitweilig in dem Ausgangsdatenpuffer 9b oder 9d gehalten. In gleicher Weise werden Daten in ein Verarbeitungselement übertragen und zeitweilig im Eingangsdatenpuffer 9a oder 9c gehalten.
  • Die Arbeitsweise dieses Ausführungsbeispiels wird auf der Grundlage des Verarbeitungselements 24a beschrieben, obwohl gleiche Operationen zur selben Zeit vom 24b ausgeführt werden können. Wenn der Prozessor 1a auf den Speicher 2a zugreift (d.h, um Daten auszulesen, die in einer Verarbeitungsoperation zu verwenden sind, oder um Daten zu schreiben, die aus einer Verarbeitungsoperation kommen), die Daten, die bei diesem Zugriff geschrieben oder gelesen werden in oder aus dem Speicher 2a, werden auch zu dieser Zeit in den Ausgangsdatenpuffer 9b geladen, wenn eine Datenübertragung für diese Daten spezifiziert ist. Im allgemeinen wird eine solche Bestimmung, daß eine Datenübertragung auszuführen ist, vom Prozessor als Ergebnis der Programmausführung erzeugt. Wenn eine solche Datenübertragung auszuführen ist, stellt der Prozessor 1a das Übertragungsbefehlssignal 5a sicher und in Erwiderung erzeugt die Datenübertragungssteuerung 3a Steuersignale, wodurch das Datum oder insbesondere das Datenwort, das auf den Datenbus 4a auftritt, in den Ausgangsdatenpuffer 9b geladen, um zeitweilig gehalten zu werden, bis dieses Wort über den I/O- Baustein 23b ins Netz 18 übertragen werden kann. Somit versteht sich, daß die Zeit für jede Datenübertragungsoperation, durch die ein Datenwort in den Ausgangsdatenpuffer 9b der Datenübertragungssteuerung 3a geladen wird, in Übereinstimmung mit der Zeit erfolgt, in der ein Speicherzugriff vom Prozessor 1a stattfindet. Somit kann jede Datenübertragungsoperation innerhalb eines Prozes soraus führungs zyklus voll ständig "versteckt" sein, und innerhalb einer Speicherzugriffsoperation vom Prozessor innerhalb dieses Zyklus ausgeführt werden. Dies ist der grundlegende Vorteil, den die vorliegende Erfindung liefert, wie es im nachstehenden Beispiel noch verdeutlicht wird.
  • Fig. 4 ist ein Zeitdiagramm, das zwei aufeinanderfolgende Prozessorausführungszyklen C und C + 1 zeigt. Es wird angenommen, daß Datenwörter einer Gruppierung mit n, n+1, n+2, nacheinander vom Prozesssor 1a aus dem Speicher 2a des Verarbeitungselements 24a ausgelesen werden und vom Prozessor 1a verarbeitet werden, um aufeinanderfolgende Datenergebnisse n', n+1', n+2', ... zu erzielen, die vom Prozessor 1a in den Speicher 2a eingeschrieben werden. Eine gleiche Verarbeitung der Gruppierung m, m+1, m+2,... wird zur gleichen Zeit vom Verarbeitungselement 24b ausgeführt, um entsprechende Ergebnisse zu gewinnen (d.h., Datenwörter) m', m+1', m+2',..., die in den Speicher 2b vom Prozessor 1b eingeschrieben werden. Darüber hinaus wird auch jedes in den Speicher 2a des Verarbeitungselements 24a eingeschriebene Ergebnis zum Verarbeitungselement 24b über das Netz 18 übertragen und von der Datenübertragungssteuerung 3b in eine vorbestimmte Adresse des Speichers 2b eingeschrieben (diese Adresse ist durch die Adressenerzeugungsschaltung 10b spezifiziert), während zur gleichen Zeit ein vom Verarbeitungselement 24b erzeugtes Ergebnis zum Verarbeitungselement 24b übertragen wird, um von der Datenübertragungssteuerung 3a in eine vorbestimmte Adresse des Speichers 2a eingeschrieben zu werden. Somit können die Schritte des Lesens von Datenwerten aus dem Speicher 2a, die Verarbeitung desselben und Schreiben eines Ergebnisses, das vom Prozessor 1a gewonnen wurde, in den Speicher 2a, und Übertragung dieses Ergebnisses zum anderen Verarbeitungselement, und Einschreiben in den Speicher eines Ergebnisses, das von dem anderen Verarbeitungselement Übertragen wurde, alles innerhalb eines einzigen Ausführungszyklus des Prozessors 1a ausgeführt werden, ohne daß zusätzliche Zeit für die Ausführung der Datenübertragung erforderlich wäre. Das gleiche trifft auch für das Verarbeitungselement 24b zu.
  • In Fig. 4 ist Zyklus C ein Prozessorausführungszyklus, bei dem Datenwerte n bzw. m aus dem Speicher gelesen und verarbeitet werden im Verarbeitungselement 24a bzw. im Verarbeitungselement 24b, in dem die Übertragung zugehöriger Ergebnisse n', m' an das andere Verarbeitungselement initialisiert wird. Zyklus c2 ist ein Prozessorausführungszyklus, in dem die übertragenen Ergebnisse n', m' in die Speicher der Verarbeitungselemente 24a bzw. 24b eingeschrieben werden, und in dem Datenwerte n + 1, m + 1 von den Verarbeitungselementen 24a, 24b verarbeitet werden, um dann in gleicher Weise wie bei n und m ausgetauscht zu werden. In Fig. 4 bedeutet RP eine Speicherlesezugriffsoperation eines Prozessors 1a oder 1b, WP bedeutet eine Speicherschreibzugriffsoperation vom Prozessor 1a oder 1b, und WD bedeutet einen Speicherschreibzugriff, der von der Datenübertragungssteuerung 3a oder 3b ausgeführt wird. R:n bedeutet "Wert n ist aus Speicher gelesen", während gleichermaßen W:n' bedeutet "n' ist in Speicher geschrieben". Die Operation des Verarbeitungselementes 24a im Zyklus C geschieht folgendermaßen. Zuerst wird das Speichersteuersignal 11a in den Speicherlesezustand versetzt, Datenwort n wird aus dem Speicher 2a gelesen, und dann beginnt die interne Verarbeitung von n durch den Prozessor 1a. Es wird angenommen, daß dies zwei aufeinanderfolgende interne Verarbeitungszyklen des Prozessors 1a beansprucht (jeweils angezeigt mit I). Während dieser Zeit sichert 1a das Buszulässigkeitssignal 30a, das anzeigt, daß der Datenbus 4a nun verfügbar ist. Das Speichersteuersignal 11a wird dann in den Speicherschreibzustand vom Prozessor 1a gesetzt, und das Ergebnis n' wird vom Prozessor 1a auf den Datenbus 4a abgegeben und in den Speicher geschrieben. Zur gleichen Zeit sichert der Prozessor 1a das Übertragungsbefehlssignal 5a, wodurch der Datenübertragungssteuerung 3a mitgeteilt wird, daß die Daten in den Speicher geschrieben werden. Zu dieser Zeit ist auch für die nachfolgende Übertragung an das Verarbeitungselement 24b in den Ausgangsdatenbus 9b zu laden. Die Datenübertragungssteuerung 3a überträgt dann Daten n' durch den I/O- Baustein 23a an den Ausgangsdatenbus 9b.
  • Darüber hinaus führt das Verarbeitungselement 24b identische Operationen während des Zyklus C aus bezüglich des Datenwortes m aus, wie in Fig. 4 gezeigt, wobei das Ergebnis m' in den Ausgangsdatenpuffer 9d der Datenübertragungssteuerung 3b am Ende des Zyklus C Übertragen wird. m' und n' werden dann über das Netz 18 in die Eingangsdatenpuffer 9a bzw. 9c der Verarbeitungselemente 24a, 24b übertragen.
  • Im Zyklus C + 1 wird die gleiche (gelesen vom Speicher- Verarbeitungs- Schreibergebnis in Speicher) Sequenz von Operationen vom Verarbeitungselement 24a bezüglich des Datenwortes n + 1 ausgeführt, und durch Verarbeitungselement 24b bezüglich des Datenworts m + 1. Wenn jedoch das Verarbeitungselement 24a die interne Verarbeitung beginnt, und so das Buszulassungssignal 30a anlegt (wodurch angezeigt wird, daß, die Datenübertragungssteuerung 3a jetzt einen Speicherzugriff ausführen kann), wird dies von der Datenübertragungssteuerung 3a festgestellt. Es wird angenommen, daß die Datenübertragungssteuerung 3a ein Datenwort m' im Puffer 9a auf Wartestellung zur Übertragung in den Speicher 2a hat, dann legt die Datenübertragungssteuerung 3a nun das Busbelegungssignal 31a an, um anzuzeigen, daß nun der Datenbus 4a und der Adressenbus 6a gesteuert wird. Die Adressenerzeugungsschaltung 10a erzeugt dann eine Adresse zum Schreiben des Wertes m' in den Speicher 2a, die Datenübertragungssteuerung 3a überträgt diesen Wert über den I/O- Baustein 23a zum Datenbus 4a, und die Datenübertragungssteuerung 3a setzt das Speiche rsteuersignal ha auf den "Schreib- Zustand", woraufhin das Datenwort, das vom Eingangsdatenbus ausgegeben wird, in den Speicher 2a eingeschrieben wird.
  • Zur gleichen Zeit im Zyklus C + 1 werden identische Operationen vom Verarbeitungselement 24b ausgeführt, um den Wert n' in den Speicher 2b gleichzeitig mit dem Schreiben von m' in den Speicher 2a zu schreiben.
  • Das Busbelegungssignal 31a endet mit seiner Anlegung, so daß der Prozessor 1a nun eine Verstärkungsregelung des Speicherbusses ausführen kann und beginnt einen Speicherschreibzugriff zum Schreiben des Ergebnisses n + 1' in den Speicher 2a. In gleicher Weise wird zur selben Zeit m + 1' in den Speicher 2b vom Prozessor ib des Verarbeitungselement 24b geschrieben. Die obige Operationssequenz wird dann wiederholt, um die Datenübertragung von neuen Ergebniswerten n + 1' und m + 1' zu initialisieren, da die Übertragungsbefehlssignale Sa und Sb angelegt sind, wenn der jeweilige Prozessor diese in die zugehörigen Speicher 2a, 2b einschreibt.
  • Aus dem vorstehenden versteht sich, daß die Ergebnisdaten n' oder m' zum jeweiligen Ausgangsdatenpuffer 9b oder 9d zur gleichen Zeit übertragen werden, wie diese vom Prozessor eingeschrieben in Speicher werden. Das bedeutet eine wesentlich erhöhte Leistung, die für ein solches Mikroprozessorsystem erzielt wird, im Vergleich zu Datenübertragungsverfahren nach dem Stand der Technik. Das heißt, in diesem Ausführungsbeispiel wird jedesmal, wenn ein Datenwort von einer internen Verarbeitungsaktion durch einen Prozessor eines Verarbeitungselements des Mikroprozessorsystems hergeleitet wurde, dann in den Speicher dieses Systems geschrieben wird, die Übertragung dieses Wortes zum zweiten Verarbeitungselement des Mikroprozessorsystem wird zur gleichen Zeit initialisiert, während gleichzeitig damit die Übertragung eines Datenwortes, das durch eine Verarbeitungsoperation des zweiten Verarbeitungselements für das erste Verarbeitungselement erzeugt wird, dann initialisiert wird, wenn dieses Wort in den Speicher des zweiten Verarbeitungselements geschrieben wird. Alle diese Operationen werden abgeschlossen innerhalb eines einzigen Prozessorausführungszyklus, d.h., Zyklus C1 oder C + 1 in Fig. 4. Jede Datenübertragungsoperation wird initialisiert (d.h., durch Laden der zu übertragenen Daten in den Ausgangsdatenpuffer der Datenübertragungssteuerung) zur selben Zeit, wie die Daten in den Speicher durch die Verarbeitung geschrieben werden, ehe gewartet wird, bis der interne Datenbus frei wird (d.h. während des nachfolgenden Prozessorausführungszyklus), um die Daten auszulesen und die Datenübertragungsoperation zu initialisieren, wie es beim ersten zuvor beschriebenen Beispiel nach dem Stand der Technik notwendig ist.
  • Obwohl ein derartiges Datenübertragungsverfahren zwischen zwei Verarbeitungselementen eines Multiprozessorsystems grundsätzlich einfach ist, ist es noch nicht verwendet oder im Stand der Technik beschrieben worden und hat signifikante Vorteile. Es ist offensichtlich, daß ein derartiges System eine im innewohnende höhere Leistung bringt als ein System nach dem Stand der Technik, bei dem zur Ausführung einer Datenübertragungsoperation ein Speicherlesezugriff (d.h., ein DMA- Zugriff, während der Prozessor in einem internen Ausführungszyklus ist) ausgeführt wird, um die gewünschten Daten in einem Prozessorausführungszyklus auszulesen, der demjenigen nachfolgt, in dem die Daten erzeugt wurden. Mit dem zuvor beschriebenen ersten Ausführungsbeispiel nach der vorliegenden Erfindung werden die zu übertragenen Daten zur Datenübertragungssteuerung innerhalb desselben Prozessorausführungszyklus übertragen, in dem sie erzeugt werden. Somit ist das Intervall, in dem die Datenbusse eines Verarbeitungselements während des nachfolgenden Prozessorausführungszyklus frei sind (d.h., während der Prozessor eine interne Verarbeitung ausführt), kann zum Schreiben in den Speicher eines Datenwortes verwendet werden, das von einem anderen Verarbeitungselement übertragen wurde, wie im Beispiel von Fig. 4. Es ist somit möglich, eine wesentlich höhere Leistung bereitzustellen.
  • Es ist erforderlich, die Eingangs- und Ausgangsdatenpuffer (9a, 9b und 9c, 9d) in den Verarbeitungselementen zu verwenden, um die zu übertragenen Daten zum/vom Netz 18 mit einer Bitrate des Netzes zu ermöglichen, da im allgemeinen die Bitrate des Netzes wesentlich niedriger als die interne Bitrate der Verarbeitungselemente 24a, 24b ist. Die erforderliche Kapazität für jeden dieser Datenpuffer wird abhängen von der Konfiguration des speziellen Multiprozessorsystems, Vorstellungen über die Herstellkosten usw.. Es wird beispielsweise angenommen, daß die Datenrate des internen Busses (4a, 4b) von jedem Verarbeitungselement zehnmal diejenige des Netzes 18 ist, jedoch im allgemeinen wird eine Kapazität von etwa 8 bis 16 Wörtern für jeden Datenbus ausreichend sein.
  • Angemerkt sei, daß obwohl die obige Beschreibung eine Art von Systemoperation beschreibt, bei der der einzige Typ des Speicherzugriffs durch jede Datenübertragungssteuerung als ein Schreibzugriff ausgeführt wird (zur Speicherung der Daten, die von dem anderen Verarbeitungselement übertragen worden sind), es bei dem Verfahren nach der vorliegenden Erfindung gelegentlich erforderlich sein kann, einen Speicherlesezugriff durch eine Datenübertragungssteuerung auszuführen. Dies wird erforderlich sein, wenn ein Zustand auftritt, bei dem eine Anforderung zur Datenübertragung gegeben war (d.h., der Übertragungsbefehl 5a ist freigegeben worden, der anzeigt, daß ein Wort in den Ausgangsdatenpuffer zur Übertragung aus dem Verarbeitungselement zu laden ist), aber wobei es aufgrund der Tatsache, daß der Ausgangsdatenpuffer voll ist, nicht möglich ist, die Daten in den Ausgangsdatenpuffer zu laden. In einem solchen Fall wird es erforderlich, danach einen Speicherlesezugriff durch die Datenübertragungssteuerung auszuführen, wenn der "Puffer voll"- Zustand eingetreten ist und die internen Busse des Verarbeitungselements zur Datenübertragungssteuerung verfügbar werden, um dann die Übertragung jedes Datenwortes, das fehlt, zu initialisieren. Mit dem Beispiel von Fig. 1 nach dem Stand der Technik enthält jede Datenübertragungssteuerung ein einzelnes Adressenregister zur Verwendung zum Auslesen aus dem Speicher der Daten, die aus dem Verarbeitungselement zu übertragen sind oder beim Schreiben in den Speicher von Daten, die in das Verarbeitungselement zu übertragen sind. Jedoch ist es mit der vorliegenden Erfindung notwendig, in jedem Verarbeitungselement zusätzlich ein Schreibadressenregister zur Verwendung beim Schreiben in den Speicher von Daten bereitzustellen, die in das Verarbeitungselement übertragen worden sind, ein Leseadressenregister zur Verwendung erforderlichenfalls beim Auslesen aus dem Speicher von Daten, die zuvor zur Übertragung bestimmt waren (d.h. durch das Übertragungsbefehlssignal, das angelegt wurde, während die Daten eingeschrieben oder aus dem Speicher durch den Prozessor von diesem Verarbeitungselement ausgelesen wurden), welches aber zu dieser Zeit aufgrund der internen Operations situation der Datenübertragungssteuerung übertragen werden könnte, d.h., aufgrund des Vollseins des Ausgangsdatenpuffers. Da normalerweise jede Datenübertragungsoperation vom Prozessor eines Verarbeitungselements unabhängig von der Datenübertragungssteuerung initialisiert wird, ist zu der vorliegenden Erfindung zu sagen, daß es zur Sicherung der Datenübertragungssteuerung notwendig ist, eine Aufzeichnung der nachfolgenden Speicheradressen zu halten, auf die vom Prozessor gemeinsam mit einem ausgegebenen Übertragungsbefehlssignal zugegriffen wird, so daß die Datenübertragungssteuerung selbst auf den Speicher zugreifen kann, wenn immer es unmöglich war, eine Datenübertragung zur Zeit einer Prozessorspeicherzugriffsoperation zu initialisieren. Eine Schaltung und ein Verfahren hierzu wird nachstehend detailliert beschrieben.
  • Bei der obigen Beschreibung des ersten Ausführungsbeispiels ist davon ausgegangen worden, daß die Datenübertragung zwischen den Verarbeitungselementen 24a, 24b auftritt. Jedoch ist es tatsächlich ebenfalls möglich, das Mikroprozessorsystem so zu konfigurieren, daß verschiedene Einrichtungen, die mit dem Netz 18 verbunden sind (d.h. eine Tastatur, Plattentreibereinheiten usw.), Daten zu/von den Verarbeitungselementen zu übertragen.
  • Figuren 5A, 5B sind Diagramme zur weiteren Beschreibung der Vorteile der vorliegenden Erfindung durch Vergleich mit einem Mikroprozessor nach dem Stand der Technik, wie derjenige der Fig. 1. Es wird angenommen, daß zwei Gruppierungen von Datenwörtern A(1) bis A(n) und B(1) bis B(n) durch ein Verarbeitungselement unter Verwendung eines Wertes jeder der Gruppierungen in jeder Verarbeitungsoperation zu verarbeiten sind und daß die Ergebnisse, die aus der Verarbeitungsoperation hervorgehen, aus einem Wertepaar bestehen, d.h., mit den Ergebniswerten A(1'), B(1'), die aus der Verarbeitung von A(1), B(1) usw. gewonnen werden, und daß diese Ergebniswerte aus dem Verarbeitungselement an ein externes Netz zu übertragen sind. In Fig. 5A bedeutet R einen Speicherlesezyklus, W bedeutet einen Speicherschreibzyklus, I bedeutet einen internen Prozessoroperationszyklus (d.h., Zwischenregisterberechnungen, die im Prozessor im Verarbeitungselements ausgeführt werden), und T bedeutet eine Datenübertragungsoperation, die von der Datenübertragungssteuerung des Verarbeitungselements ausgeführt wird.
  • Fig. 5A zeigt das zugehörige Zeitdiagramm für den Fall einer derartigen Verarbeitung, die nach dem Beispiel von Fig. 1 nach dem Stand der Technik ausgeführt wird. Im ersten Prozessorausführungszyklus 1 werden die Datenwörter A(1), B(1) nacheinander aus dem Speicher des Verarbeitungselements ausgelesen, die Verarbeitung findet statt während zweier aufeinanderfolgender interner Prozessoroperationzyklen, und die sich ergebenden Werte A(1'), B(1') werden dann in den Speicher in zwei aufeinanderfolgenden Speicherschreibzyklen geschrieben. Im nächsten Prozessorausführungszyklus 2 wird eine gleiche Verarbeitung für die Datenwörter A(2), B(2) ausgeführt. Das Ergebnis A(1'), das während der vorangehenden Prozessorausführungszyklus während des internen Prozessoroperationszyklus aus dem Speicher gelesen wurde, d.h. während auf die internen Busse des Verarbeitungselements nicht vom Prozessor zugegriffen wurde, wird jedoch eine Speicherleseoperation von der Datenübertragungssteuerung ausgeführt. Aufgrund der Tatsache, daß jeder interne Prozessoroperationszyklus 1 nur die halbe Dauer eines Speicher/Lese- oder Schreibzyklus R oder W hat, ist es möglich, nur einer der beiden Werte auszulesen, die während des vorangehenden Prozessorausführungszyklus 1 abgeleitet wurden. Es versteht sich somit, daß nach dem Abschluß von n Prozessorausführungszyklen nur die Datenwörter A( 1)' bis A(n - 1)' aus dem Verarbeitungselement Übertragen wurden, so daß die verbleibenden Werte A(n:)' und B(1)' bis B(n)' dann nacheinander aus dem Verarbeitungselementspeicher ausgelesen und zum Netz oder zu externen Einrichtungen gesandt werden.
  • Fig. 5B zeigt die zugehörige Verarbeitung von zwei Datenwertgruppierungen durch ein Verarbeitungselement mit einer Konfiguration gemäß der vorliegenden Erfindung, d.h., diejenige des Verarbeitungselements 24a von Fig. 3 oben. In diesem Fall werden während des Prozessorausführungszyklus 1 die Werte A(1)', B(1)' nacheinander zum Ausgangsdatenpuffer des Verarbeitungselement 5 während des selben Speicherschreibzyklus übertragen, bei dem diese Werte jeweils in den Speicher des Verarbeitungselements geschrieben werden. Somit können die Datenergebnisse A(1)', B(1)', die in dem Prozessorausführungszyklus 1 gewonnen wurden, während desselben internen Prozessoroperationszyklus übertragen werden (d.h., zum Ausgangsdatenpuffer), in dem sie erzeugt werden, und ohne daß die Dauer des internen Prozessoroperationszyklus ausgedehnt wird, um die Datenübertragung stattfinden zu lassen. Dies gilt auch für jeden der nachfolgenden Prozessorausführungszyklen. Somit versteht sich, daß alle Verarbeitungs- und Datenübertragungsoperationen in n Prozessorausführungszyklen abgeschlossen werden können, so daß in diesem Beispiel im Vergleich mit dem Verfahren der vorliegenden Erfindung das Systems von Fig. 1 nach dem Stand der Technik einen Überhang hat, dessen Dauer (n + 1) Speicherzugriffszyklen gleich ist. Die vorliegende Erfindung kann somit einen weitestgehend erhöhten Leistungspegel auch in dem Fall liefern, so wie für den Fall des Datenaustauschs zwischen Prozessorelementen, wie zuvor anhand Fig. 4 beschrieben.
  • Somit versteht es sich, daß es bei dem Verfahren der vorliegenden Erfindung normalerweise für die Datenübertragungssteuerung nicht erforderlich ist, eine Speicherleseoperation auszuführen (d.h., während der Prozessor mit einem internen Operationszyklus beschäftigt ist), um eine Datenübertragung zu beginnen. Dies ist sehr wichtig bei der Erzielung einer Hochleistung fur ein Multiprozessorsystem, bei dem die Rate, mit der die Datenübertragungsoperationen auftreten, extrem hoch ist.
  • Die vorstehende Beschreibung ist für ein Beispiel gegeben worden, bei dem jedes Ergebnis durch eine interne Prozessoroperation in jedem Verarbeitungselement erzielt wird, unmittelbar übertragen auf das andere Verarbeitungselement in einem gleichzeitigen wechselweisen Datenaustausch. Jedoch ist die Erfindung, und insbesondere das Ausführungsbeispiel von Fig. 3 nicht auf einen derartige Datenübertragungsart beschränkt. Beispielsweise ist es auch möglich, Datenwörter (d.h. n, n + 1, ... und m, m + 1, ...) zum anderen Verarbeitungselement zu übertragen, die aus dem Speicher vom Prozessor 1a oder 1b ausgelesen wurden. Wenn in diesem Falle ein gleichzeitiger Datenaustausch zwischen den Verarbeitungselementen von Fig. 3 stattfindet, wie im Beispiel von Fig. 41 dann würde das Übertragungsbefehlssignal 5a angelegt, beispielsweise wenn das Wort n aus dem Speicher 2a vom Prozessor 1a des Verarbeitungselements 24a (R:n) gelesen wird, und dieses Wort würde folglich zur selben Zeit in den Ausgangsdatenpuffer 9b der Datenübertragungssteuerung 3a geladen, um zum Verarbeitungselement 24b übertragen zu werden. Eine identische Operation würde im Verarbeitungselement 24b zur selben Zeit auftreten, um die Übertragung des Wortes rn zum Verarbeitungselement 24a zu beginnen, wenn dieses Wort aus dem Speicher 2b vom Prozessor 1b ausgelesen wird. Während des Zyklus C + 1 von Fig. 4 würden Wörter m und n in die Speicher 2a bzw. 2b während des Prozessorausführungszyklusintervalls geschrieben werden, anstelle der Ergebnisse m' und n'.
  • Wie schon erwähnt, ist es nach dem Verfahren nach der vorliegenden Erfindung möglich, für das von jedem Verarbeitungselement des Mikroprozessorsystems ausgeführte Programm die Punkte zu bestimmen, während der die Programmausführung bei der Datenübertragungsbefehle ausgegeben werden, d.h. die Punkte, denen das Übertragungsbefehlssignal anzulegen ist. Dies wird anhand des Zeitdiagramms von Fig. 6 beschrieben. Hier bedeuten C'0, C'1, C'2, ... jeweilige Prozessortaktzyklen, mit zwei aufeinanderfolgenden dieser Zyklen, die erforderlich sind zur Ausführung eines Speicherleseoder Schreibzugriffszyklus (d.h., mit Prozessorausführungszyklus C im Beispiel von Fig. 4, bestehend aus sechs dieser Prozessortaktzyklen), und mit einer einfachen internen Prozessoroperation, die einer Zwischenregisteraddition, die eines dieser Zyklen ausfüllt. Der Prozessor eines Prozessorelements oder eines Multiprozessorsystems nach der vorliegenden Erfindung führt ein Programm aus, das die gezeigten Maschinensprachenbefehle enthalten,kann, d.h., ein LD Befehl (bedeutet "lies ein Wort vom Speicher und lade in ein internes Register des Prozessors"), LDDTC (dasselbe wie LD, aber auch "lade dieses Wort in die Datenübertragungssteuerung"), ADD, ST (speichere die Registerinhalte, d.h, die Ergebnisse, in den Speicher), und STDTC (wie ST, aber auch "lade die Registerinhalte in die Datenübertragungssteuerung"). Wenn somit ein LDDTC- Befehl ausgeführt wird, wird das übertragungsbefehlssignal angelegt, während der Prozessor, (d.h. 1a) einen Lesebefehl des Speichers (2a) ausführt, in gleicher Weise, wenn ein STDTC- Befehl ausgeführt wird, wird das übertragungsbefehlssignal angelegt, während der Prozessor einen Schreibzugriff auf den Speicher ausführt. Das heißt, um das Übertragungsbefehlssignal an den Punkt bei der Programmausführung anzulegen, wenn insbesondere ein Wort, das in (oder erzeugt wird als Ergebnis von) einer Prozessoroperation zu verwenden ist, um dieses Wort aus dem Verarbeitungselement zur gleichen Zeit wie das Wort ausgelesen wird, zu übertragen (oder eingeschrieben wird in) den Verarbeitungselementspeicher, ist es lediglich erforderlich, einen LDDTC- (oder STDTC-) Befehl in das Programm an dieser Stelle einzufügen. Somit können die Übertragungsoperationen leicht im Programm gesteuert werden.
  • Während des Zyklus C4, in dem der Prozessor eine interne Verarbeitung ausführt, wird das Buszulasssungssignal 30a angelegt, und der Ausgangsanschluß des Prozessors, der das Speichersteuersignal 11a erzeugt, wird in den Hochimpedanzzustand versetzt, so daß die Datenübertragungssteuerung die Steuerung der Busse (4a, 6a) zum Zugriff des Speichers benutzen kann, d.h., um ein Datenwort einzuschreiben, das von einem anderen Verarbeitungselement übertragen wurde. Wenn tatsächlich die Datenübertragungssteuerung am Anfang war, einen Speicherzugriff während Zyklus C4 auszuführen, dann wird, wie zuvor beschrieben, das Busbelegungssignal 31a angelegt, so daß der nächste Speicherzugriff vom Prozessor aufgeschoben wird, bis die Busse von der Datenübertragungssteuerung freigegeben sind, d.h., bis zum Ende des Prozessortaktzyklus C5 in diesem Beispiel.
  • Obwohl in diesem Beispiel angenommen wurde, daß zwei Prozessortaktzyklen (C2, C3 oder C7, C8) erforderlich sind zum Laden eines Wortes in den Ausgangsdatenpuffer der Datenübertragungs steuerung, wird dies nicht notwendigerweise der Fall sein, und eine aktuelle Zeit, die erforderlich ist, wird abhängen von Faktoren, wie der speziellen Konfiguration der Datenübertragungssteuerung.
  • Angemerkt sei, daß bei der Benutzung von Programmbefehlen auf diesem Wege durch die Verarbeitungselemente eines Mikroprozessorsystems, d.h., zur Sicherstellung, daß ein Verarbeitungsergebnis sobald wie möglich vom Verarbeitungselement zur selben Zeit Übertragen wird, wie es in den Speicher geschrieben wird, ist die Gesamtleistung des Multiprozessorsystems im Vergleich zum Stand der Technik wesentlich verbessert. Dies liegt daran, weil jedes Ergebnis schneller für das andere Verarbeitungselement verfügbar ist oder für Verarbeitungselemente des Multiprozessorsystem, im Vergleich mit dem Fall, daß beim Stand der Technik Verarbeitungselemente in der in Fig. 1 gezeigten Form verwendet werden, wobei jedes Ergebnis nicht Übertragen wird, bevor ein Punkt während des nachfolgenden Prozessorausführungszyklus (wie in Fig. 5A veranschaulicht) nicht übertragen ist. Wenn darüber hinaus ein Datenwort zu vom Verarbeitungselement Übertragen wird, bevor es verarbeitet ist, findet diese Übertragung zur selben Zeit statt, wie das Wort aus dem Speicher gelesen wird, um verarbeitet zu werden.
  • Ein Beispiel des Innenaufbaus der Datenübertragungssteuerung 3a des Verarbeitungselements 24a (das tatsächlich identisch ist mit der Übertragungssteuerung 3b des Verarbeitungselements 24b) wird nachstehend beschrieben. Fig. 7 ist ein Blockschaltbild, das den allgemeinen Aufbau der Datenübertragungssteuerung 3a zeigt, Fig. 8 ist ein Schaltbild einer Steuerschaltung 7 in der Datenübertragungssteuerung, und die angefügte Tabelle 1 faßt die grundlegenden Operationen der Datenübertragungssteuerung zusammen. In den Figuren 7 und 8, bedeuten 6a und 4a die internen Daten bzw. Adressenbusse vom Verarbeitungselement, 5a ist ein Übertragungsbefehlssignal, 7 ist die Steuerschaltung, 8 ist ein Statuszähler (zur Beibehaltung eines Zählwerts, der den aktuellen Datenübertragungsstatus darstellt, d.h., die Anzahl von Datenübertragungsbefehlen, auf die bisher noch nicht reagiert wurde), 9a, 9b sind Eingangsdatenpuffer bzw. Ausgangsdatenpuffer, 10a ist die Adressenerzeugungsschaltung, 11a ist das Speichersteuersignal, 12 bedeutet ein Ausgangspuffer- Ladesignal (zur Ausführung des Ladens eines Wortes aus dem Adressenbus 6a in den Ausgangsdatenbus 9b), 13 ist ein "Puffer voll"- Signal (um einen Zustand anzuzeigen, bei dem eine Datenübertragung nicht initialisiert werden kann, weil der Ausgangsdatenbus 9b aktuell mit Daten angefüllt ist), 14 bedeutet ein Leseadressen- Fortschaltsignal, 15 bedeutet ein Zählerinkrementiersignal (zur nachfolgenden Inkrementierung der Inhalte des Statuszählers 8), 16 ist ein Zählerdekrementiersignal (zur nachfolgenden Dekrementierung des Inhalts des Statuszählers 8), 17 bedeutet einen Satz von Zählerausgangssignalen, die in Kombination einen Zählwert darstellen, der im Statuszähler 8 gehalten ist, 23a und 23b sind I/O- Bausteine (Ein/Ausgabebausteine), 30a bedeutet ein Buszulassungssignal, 31a ist das Busbelegungssignal, 32 bedeutet eine Entscheidungsschaltung zur selektiven Aktivierung einer Schreib- oder Lesespeicher- Zugriffsoperation durch die Datenübertragungssteuerung, 33 ist ein Lesezulassungssignal, das von der Entscheidungsschaltung 32 erzeugt wird, wenn der Speicherlesezugriff durch die Datenübertragungssteuerung möglich ist, 34a, 34b, 34c, 34d und 34e sind jeweilige Zwischenspeicher, deren Operationen von Zeitsignalen gesteuert werden (nicht in der Zeichnung dargestellt), um so geeignete Verzögerungsbeträge bereitzustellen, und 36 ist eine Sequenzierschaltung zur Signalerzeugung zur Ausführung einer Speicherlese- Zugriffsoperation durch die Datenübertragungssteuerung. 37a bedeutet ein erstes Adressenfortschaltsignal zum Fortschalten eines Adressenwertes, der in einem Leseadressenzähler gehalten wird, der in der Adressenerzeugungsschaltung 10a enthalten ist, erzeugt als Ergebnis des Übertragungsbefehlssignals 5a, das angelegt ist, während 37b ein zweites Adressenfortschaltsignal zum Fortschalten eines Adressenwertes ist, der in einem Leseadressenzähler der Adressenerzeugungsschaltung 10a gehalten ist, der erzeugt wird als Ergebnis eines Speicherlesezugriffs, der von der Datenübertragungssteuerung ausgegeben wird, wie nachstehend beschrieben.
  • Die Ausgangssignale 17 aus dem Statuszähler 8 werden an jeweilige Umkehreingänge eines UND- Gliedes 35e geliefert, um ein Ausgangssignal 37c zu erhalten, das in einem 1- Zustand nur dann ist, wenn der Statuszähler 8 den (Anfangs-) Zählwert von Null enthält. Das Übertragungsbefehlssignal 5a und das Signal 37c werden dem UND- Glied 35a eingegeben, während das "Puffer voll"- Signal 13 an den invertierenden Eingang der Torschaltung 35a eingegeben wird. Das Signal 37c und das "Puffer voll"- Signal 13 werden an die invertierenden Eingänge des UND- Gliedes 35b angelegt, während das Zulassungssignal 30a und das Lesezulassungssignal 33 an die jeweiligen Eingänge des Gliedes 35b angelegt werden. Das Übertragungsbefehlssignal 5a wird an einen Eingang des UND- Gliedes 35e angelegt, während das "Puffer voll"- Signal 13 und das Signal 37c an einen normalen Eingang und einen invertierenden Eingang eines ODER- Gliedes 35d angelegt werden, dessen Ausgangssignal an den anderen Eingang des Gliedes 35e geliefert wird.
  • Es ist möglich, daß ein Zustand auftreten kann, bei dem Signale zur Initialisierung eines Speicherlesezugriffs und Speicherschreibzugriffs von der Datenübertragungssteuerung gleichzeitig erzeugt werden. Um Konflikte in einem solchen Falle zu vermeiden, stellt die Entscheidungsschaltung 32 das Lesezulassungssignal 33 in den 1- Zustand, wenn der Datenlesezugriff des Speicher 2a durch die Datenübertragungssteuerung zulässig ist, und anderenfalls wird das Signal 33 im Null- Zustand gehalten.
  • Signale 107 und 47 werden zum Laden jeweiliger Basisadressenwerte in den Schreibadressenzähler und den Leseadressenzähler (werden später beschrieben) der Adressenerzeugungsschaltung 10a verwendet, d.h., die Startadresse (zum Schreiben in den Speicher 2a) eines Datenblocks, der in das Verarbeitungselement vom Netz 18 zu übertragen ist, und die Startadresse (zum Datenauslesen aus dem Speicher 2a) eines Datenblockes, der aus dem Verarbeitungselement in das Netz 18 zu übertragen ist.
  • Normalerweise wird der Zählwert, der im Statuszähler 8 gehalten ist, ein vorbestimmter Anfangswert sein, der mit Null angenommen wird. In diesem Zustand ist das Ausgangssignal 37c vom UND- Glied 35e im logisch 1- Zustand. Wenn der Zählwert im Statuszähler größer als Null ist, dann wird das Signal 37c auf den logisch - 0- Zustand versetzt. Wenn der Ausgangsdatenbus 9b der Datenübertragungssteuerung voll ist, geht das "Puffer voll"- Signal 13 auf den 1- Zustand, und anderenfalls ist es im 0- Zustand. Wenn somit das Übertragungsbefehlssignal 5a angelegt ist, wenn der Statuszähler den Zählwert von Null enthält, und der Ausgangsdatenbus 9b nicht voll ist, geht das Ausgangssignal vom UND- Glied 35a auf den 1- Zustand, wodurch das Adressenfortschaltsignal 37a angelegt wird, so daß das Ausgangspuffer- Ladesignal 12 angelegt wird (wodurch die Übertragung von Daten initialisiert wird, die aktuell am Datenbus 4a anstehen), und zusätzlich zum Adressenfortschaltsignal 14 wird zum Fortschalten des Leseadressenzählers innerhalb der Adressenerzeugungsschaltung 10a angelegt.
  • Wenn andererseits das Übertragungsbefehlssignal 5a ansteht, wenn der Statuszähler 8 den Zählwert von Null enthält, jedoch der Ausgangsdatenbus 9b voll ist, so daß eine Datenübertragung zu dieser Zeit nicht begonnen werden kann, dann bleibt das Ausgangssignal vom Glied 35a auf 0- Pegel, jedoch das Ausgangssignal vom Gliedpaar 35d geht auf den 1- Pegel. Somit wird das Zählerinkrementiersignal 15 angelegt, um dadurch die Inhalte des Statuszählers 8 um Eins zu erhöhen. Gefolgt vom Abschluß des "Ausgangsdatenpuffer voll"- Zustands, wenn der Datenbus und der Adressenbus des Verarbeitungselements vom Prozessor 1a freigegeben sind, so daß das Buszulassungssignal 30a ansteht, wenn dann zu dieser Zeit das Lesezulassungssignal 33 ansteht, da Signal 37c auf 1- Pegel ist, wird das Ausgangssignal vom UND- Glied 35b auf 1- Pegel gehen. Das Adressenfortschaltsignal 37b steht somit an, so daß der Leseadressenzähler der Adressenerzeugungsschaltung 10a fortschreitet, und der Sequenzierer 36 ist nicht in Betrieb, um dadurch eine Speicherzugriffsoperation zum Lesen aus dem Speicher(2a) einer Adresse auszuführen, die das erste Datenwort enthält, für die die Übertragung nach dem Puffer- voll- Zustand beginnt. Da das Signal 37b ebenfalls im anstehenden Ausgangspuffer- Ladesignal 12 resultiert, wird dann das Wort in den Ausgangsdatenbus 9b gegeben. Darüber hinaus steht das Adressenfortschaltsignal 14 an. Dies ist erforderlich, um sicherzustellen, daß die Inhalte des Leseadressenzählers immer die Speicheradresse des nächsten zu übertragenden Wortes enthalten, um unabhängig davon, ob die Übertragung das Ergebnis eines direkten Befehls (d.h., gleichzeitig mit dem anstehenden Übertragungsbefehlssignal 5a) oder das Ergebnis eines anderen Speicherlesezugriffs durch die Datenübertragungssteuerung, das unmittelbar dem zuvor beschriebenen folgt.
  • Die obige Operation wird deutlicher durch das nachfolgende anhand Fig. 10 angegebene Beispiel, welches anhand Fig. 9 zusätzlich zu den Figuren 7 und 8 beschreiben wird. Fig. 9 zeigt Einzelheiten des Innenaufbaus der Adressenerzeugungsschaltung loa des Verarbeitungselements 24a. Dieses enthält im wesentlichen einen Leseadressen- Erzeugungsabschnitt 10R und einen Schreibadressen-Erzeugungsabschnitt 10W, die jeweils über Adressenzähler verfügen, d.h., den Leseadressenzähler 41 und den Schreibadressenzähler 109. Zusätzlich zum Leseadressen- Erzeugungsabschnitt 10R enthält ein Basisregister 40 für ein Wortlängenregister 42 gemeinsam mit einem Addierer 51 einen Adressenvergleicher 43 und ein UND- Glied 50. Der Schreibadressen- Erzeugungsabschnitt 10W enthält entsprechende Komponenten, die in Fig. 9 zur besseren Übersichtlichkeit fortgelassen sind. Wenn ein Block von Datenwörtern aus dem Verarbeitungselement zu übertragen ist, sendet der Prozessor 1a zunächst auf den Datenbus 4a einen Wert, der die Gesamtzahl von Wörtern darstellt, die übertragen werden (diese Zahl wird nachstehend als Wortlänge bezeichnet), und legt das Wortlängen- Ladesignal 48 an, um dadurch diese Zahl in das Wortlängenregister 42 zu geben. Zusätzlich, ebenfalls vor Beginn der Übertragung dieser Wörter, sendet der Prozessor an 4a einen Wert, der die Basisadresse dieses Blockes darstellt, d.h., die Adresse im Speicher 2a des ersten Wortes des Blockes, und legt das Basisregisterladesignal 47 an, um dadurch diese Adresse in das Basisregister 40 zu laden und auch als Startadresse in den Leseadressenzähler 41. Wenn die Datenübertragung mit gleichzeitigem Schreiben in jedes dieser Wörter in den Speicher 2a ausgeführt wird (wie im Beispiel von Fig. 4 oben, d.h., wenn die in Fig. 6 gezeigte STSTC- Maschinensprachenbefehl verwendet wird, um jede Datenübertragung zu spezifizieren), dann wird die Basisadresse die erste eines Blockes von Adressen, die zum Schreiben in diese Wörter umgekehrt wird, wie sie nacheinander aus dem Prozessor hergeleitet werden. Wenn andererseits die Datenübertragung gleichzeitig mit dem Auslesen dieser Wörter ausgeführt werden soll, die bereits in den Speicher eingeschrieben sind (d.h., wenn der LDSTC- Befehl in Fig. 4 zu verwenden ist, um jede Datenübertragung zu spezifizieren), dann wird die Basisadresse, die in das Basisregister 40 vor Beginn der Übertragung des Blockes von Daten geladen wurde, die Anfangsadresse, in die diese Daten bereits geschrieben worden sind. Während der Übertragung aufeinanderfolgender Wörter dieses Blockes aus dem Verarbeitungselement wird das zuvor anhand Fig. 8 beschriebene Adressenfortschaltsignal 14 jedesmal angelegt, wenn eine Datenübertragung abhängig vom anstehenden Übertragungsbefehlssignal 5a aktuell initialisiert ist, (d.h., jedesmal, wenn ein neues Wort in den Ausgangsdatenbus 9b geladen wird). Im Ergebnis wird der Leseadressenzähler 41 immer die Adresse vom nächsten Wort im Speicher 2a halten, das aus dem Verarbeitüngselement zu übertragen ist, unabhängig davon, ob die Übertragungsoperation zeitweilig aufgrund eines "Ausgangspuffer voll"- Zustands angehalten wird.
  • Wenn das letzte Wort des Datenblockes übertragen ist, wird das Ausgangssignal vom Addierer 51 (d.h., die Summe der Wortlänge und die Basisadressenwerte) identisch mit dem Ausgangssignal aus dem Leseadressenzähler 41, so daß das Ausgangssignal des Adressenvergleichers 43 in den 1- Zustand geht. Wenn somit das nächste Mal das Adressenfortschaltsignal 14 ansteht, geht das Ausgangssignal des UND- Gliedes 50 auf H- Pegel, wodurch der Leseadressenzähler 41 zurückgesetzt wird.
  • Wenn Daten in das Verarbeitungselement 24a vom Netz 18 zu übertragen sind, dann wird die Wortlänge des Blockes von Daten, die zu übertragen sind, und die Basisadresse des Speichers. 2a, in den diese Daten zu schreiben sind, in den Schreibadressen- Erzeugungsabschnitt 10W in gleicher Weise wie zuvor für den Adressenerzeugungsabschnitt 10R beschrieben eingeschrieben (mittels des Wortlängensignals 108 und des Basisregister- Ladesignals 107), so daß eine detaillierte Beschreibung hier fortgelassen wird. Jedes Mal, wenn ein Wort aus dem Eingangsdatenbus übertragen und in den Speicher 2a geschrieben wird, steht das Schreibadressen- Fortschaltsignal 108 an, um dadurch den Adressenwert fortzuschalten, der im Schreibadressenzähler 109 des Schreibadressen- Erzeugungsabschnitts 10W gehalten ist.
  • Abhängig davon, ob ein Speicherlese- oder eine Schreiboperation von der Datenübertragungssteuerung auszuführen ist, wird die Adresse, die vom Adressenzähler 41 oder vom Schreibadressenzähler 109 kommt, von einem Ausgangswähler 44 ausgewählt (unter Steuerung vom Buszulassungssignal 30a) und an einen Adressenzwischenspeicher 49 geliefert, um auf den Adresssenbus 6a gegeben zu werden.
  • Die Arbeitsweise des im Zeitdiagramm von Fig. 10 gezeigten Beispiels ist die folgende. In Fig. 10 bedeuten C0, C1 usw. jeweilige Zyklen, die nachstehend als Zugriffszyklen bezeichnet werden, von denen jeder einem Speicherzugriffs- (Lese- oder Schreib- ) Operation oder zweier aufeinanderfolgender prozessorinterner Operationszyklen entspricht. Jeder Speicherlesezugriff wird mit R und ein Schreibzugriff wird mit W bezeichnet, während I einen internen Prozessoroperationszyklus bedeutet. RP bedeutet einen Speicherlesezugriff, der vom Prozessor 1a ausgeführt wird, WP einen Lesezugriff vom Prozessor, und RD einen Lesezugriff, der von der Datenübertragungssteuerung ausgeführt wird. Es wird angenommen, daß aufeinanderfolgende Wörter eines Datenblockes, gespeichert unter Adressen, die mit der Adresse 100 beginnen, ausgelesen und verarbeitet werden, und jeweilige Ergebnisse in die Originalspeicheradresse zurückgeschrieben werden. Es wird angenommen, daß aufeinanderfolgende Datenwörter, die in das Verarbeitungselement 24a übertragen werden, während diese Verarbeitungsoperationen in einen Satz von Adressen des Speichers 2a einzuschreiben sind, der mit der Adresse 120 beginnt (jedoch zur Vereinfachung der Beschreibung werden die Operationen zum Einschreiben in diese übertragenen Daten in den Speicher 2a aus dem Diagramm fortgelassen, da diese aus der obigen Beschreibung anhand Fig. 4 hervorgehen). Somit werden zunächst (in den Zyklen C0, C1) die Basisadressenwerte in die jeweiligen Adressenzähler des Leseadressen- Erzeugungsabschnitts 10R geladen und Schreibadressenerzeugungsabschnitt 10W vom Prozessor durch Anlegen der Signale 47, 48, 107, 108 zu Zeiten, bei denen die zugehörigen Daten aus dem Speicher gelesen und an den Datenbus 4a geliefert worden sind. Als nächstes wird in Zyklus C2 das Wort in Adresse 100 vom Speicher 2a vom Prozessor 1a ausgelesen (das Speichersteuersignal 11a ist auf "Lese"- Pegel gesetzt), verarbeitet in Zyklus C3. Zu dieser Zeit enthält der Statuszähler 8 seinen Anf angswert von Null, wie durch das Zählerausgangssignal 17 angezeigt ist. Im Zyklus C4 schreibt der Prozessor das gewonnene Ergebnis zurück in die Adresse 100, und zur selben Zeit steht das Übertragungsbefehlssignal 5a an. In Erwiderung legt die Steuerschaltung 7 der Datenübertragungssteuerung 3a das Adressenfortschaltsignal 14 an (wodurch der Adressenwert im Leseadressenzähler 41 des Leseadressen- Erzeugungsabschnitts 10R auf 101 geht), und auch das Ausgangspuffer- Ladesignal 12, um so das in den Speicher 2a geschriebene Wort zur selben Zeit auch in den Ausgangsdatenbus 9b zu bringen.
  • Als nächstes liest der Prozessor im Zyklus C5 das nächste Wort aus der Speicheradresse 101, verarbeitet dieses, und schreibt das Ergebnis zurück in Adresse 101 im Zyklus C7. Während des Zyklus C5 beginnt das "Puffer voll"- Signal 13 jedoch anzustehen, so daß es nicht möglich ist eine Datenübertragung von der Datenübertragungssteuerung 3a abhängig vom Übertragungsbefehlssignal 5a zu beginnen, das im Zyklus C7 ansteht. Von daher steht das Zählerinkrementiersignal 15 an, so daß die Zählung im Statuszähler 8 auf 1 geht, und von daher geht das 37c (in Fig. 8) in den 0- Zustand. Im Ergebnis werden die Inhalte des Leseadressenzählers 41 des Leseadressen- Erzeugungsabschnitts 10R unverändert bei 101 beibehalten, obwohl der Adressenzähler im Prozessor nun auf 102 gegangen ist. Im Zyklus C8 liest der Prozessor die Inhalte von Adresse 102 aus und verarbeitet diese. Während des Zyklus C8 kehrt das "Puffer voll"- Signal 13 auf seinen 0- Zustand zurück. Somit (angenommen, daß Lesezulassungssignal 33 ist im, 1- Zustand) werden Ausgangssignale vom UND- Glied 35b in Fig. 8 auf den 1- Zustand während des Zyklus C9 gehen. Von da an wird ein Speicherlesezugriff von der Datenübertragungssteuerung im Zyklus C9 unter Verwendung des Adressenwertes 101 ausgeführt (d.h., die Adresse des ersten Wortes, für das ursprünglich die Übertragung vom Übertragungsbefehlssignal 5a spezifiziert war, aber für das die Datenübertragung zu dieser Zeit nicht begonnen werden konnte). Das Ausgangspuffer- Ladesignal 12 und das Adressenfortschaltsignal 14 werden ebenfalls dadurch angelegt, um den Leseadressenzähler 41 fortzuschalten und um das solchermaßen aus dem Speicher ausgelesene Wort in den Ausgangsdatenbus 9b zu laden. Zusätzlich wird das Zählerdekrementiersignal 16 angelegt, um dadurch die Inhalte des Statuszählers 8 auf ihren Ursprungswert von Null zurückzusetzen, wie durch die Zählerausgangssignale 17 dargestellt.
  • Als nächstes schreibt der Prozessor im Zyklus C9 das Verarbeitungsergebnis in Adresse 102, während zur selben Zeit (da das Ausgangssignal aus dem Glied 35A nun ansteht) das Ausgangspufferladesignal 12 ansteht, um dieses Verarbeitungsergebnis in den Ausgangsdatenbus 9b zur selben Zeit zu laden, während zusätzlich das Adressenfortschaltsignal 14 ansteht, um dadurch den Adressenwert auf 103 fortzuschalten, der im Adressenzähler 41 gehalten ist.
  • Das obige Beispiel ist für den Fall beschrieben worden, bei dem die Verzögerung der Datenübertragung von nur einem einzelnen Wort aufgrund der "Puffer voll"- Bedingung aufgetreten ist. Selbst wenn jedoch diese Bedingung für eine längere Dauer als in Fig. 10 dargestellt anhalten würde, würde die Schaltung korrekt arbeiten. Das heißt, wenn beispielsweise das "puffer voll"werden Signal 13 vor Zyklus C10 auf 1 verbliebe und in Zyklus C11 endete, würde der Zählwert im Statuszähler 8 dann zu 2 werden. Nach einem Datenlesezugriff der Adresse 103 durch den Prozessor im Zyklus C11 würde die Datenübertragungssteuerung im Zyklus C12 zuerst das Busbelegungssignal 31a anlegen, nachdem das Buszulassungssignal 30a vom Prozessor angelegt worden ist, und würde dann auf den Speicher unter Adresse 101 zugreifen und den Statuszähler 8 im Zählstand erhöhen (d.h. um 1). Da das Signal 37c immer noch auf 1- Pegel ist, würde dann die Datenübertragungssteuerung das Anlegen des Busbelegungssignal 31a fortsetzen und würde einen zweiten Speicherlesezugriff ausführen, um die Inhalte der Adresse 102 in den Ausgangsdatenbus 9b zu geben. Der Statuszähler 8 würde dadurch erneut dekrementiert, so daß das Signal 37c auf 0- Pegel ginge und von daher die Busse zum Prozessor freigegeben würden, der dann das letzte Verarbeitungsergebnis in Adresse 103 einschreiben würde.
  • Nachdem die Datenübertragungssteuerung die Steuerung des internen Busses nach dem "Puffer voll"- Zustand beendet hat, wird diese auf diesem Wege danach nacheinander aus dem Speicher jene Daten lesen und in den Ausgangsbus laden, die zuvor zur Übertragung spezifiziert waren, aber für die Übertragung noch nicht begonnen hat. Auf diesem Wege wird nur eine minimale Verzögerung bei der Datenübertragung als Ergebnis des Auftretens des "Ausgangspuffer voll"- Zustands auftreten.
  • Angemerkt sei, daß in der Praxis bei einer Kapazität des Ausgangsdatenbusses in hinreichender Größe (in Beziehung zum Unterschied zwischen den Datenraten der internen Busse und des externen Netzes, womit das Verarbeitungselement verbunden ist, wie zuvor beschrieben) kann das Auftreten des "Puffer voll"- Zustands extrem selten gemacht werden.
  • Im obigen ist die Arbeitsweise des Schreibadressenzählers 109 vom Leseadressen- Erzeugungsabschnitt 10R, dargestellt in Fig. 9, noch nicht beschrieben worden. Jedoch kann die Arbeitsweise sehr einfach sein, d.h., es ist lediglich erforderlich, das Schreibadressen- Fortschaltsignal 108 jedesmal anzulegen, wenn ein Speicherschreibzugriff von der Datenübertragungssteuerung ausgeführt worden ist.
  • Fig. 11 ist ein allgemeines Blockschaltbild eines Prozessorsystems unter Verwendung eines zweiten Ausführungsbeispiels des Verfahrens nach der vorliegenden Erfindung, und Fig. 12 ist ein Übertragungszeitdiagramm zur Veranschaulichung der Arbeitsweise eines der Verarbeitungselemente (24a) dieses Systems. Dieses Ausführungsbeispiel unterscheidet sich vom ersten Ausführungsbeispiel darin, daß eine vergrößerte Anzahl von Verarbeitungselementen (bezeichnet mit 24a, 24b, 24c, 24d) vorgesehen ist, und ein Netz, welches ein Kreuzschienennetz 26 ist. Das Kreuzschienennetz 26 enthält 16 Schaltelemente, die mit 25a bis 25p bezeichnet sind, von denen jedes aktuell als bidirektionaler FIFO- (Eingangsfolgebearbeitungsspeicher-) Register, dessen Inhalte eingeschrieben oder ausgelesen werden können durch Anlegen jeweiliger Steuersignale 40a bis 40h und 41a bis 41h, die von jeweiligen der Verarbeitungselemente erzeugt werden. Dieses Ausführungsbeispiel ist für die Anwendungen als numerische Hochgeschwindigkeitssimulation gedacht und ist insbesondere anwendbar auf das ADI (Alternate Direction Implicid) - iteratives Verfahren zur Lösung zweidimensionaler Poisson- Gleichungen. Dies ist ein wirksames analytisches Verfahren zur Verwendung in einer numerischen Simulation. Mit dem ADI- Verfahren wird zuerst eine eindimensionale Verarbeitung von Daten in Y- Richtung ausgeführt, dann werden diese Daten in X- Richtung bearbeitet. Als nächstes wird eine eindimensionale Verarbeitung in X- Richtung ausgeführt, und dann werden die sich ergebenden Daten in Y- Richtung bearbeitet. Diese Prozesse werden abwechselnd wiederholt, bis ein zufriedenstellender Konvergenzgrad erreicht ist.
  • Somit sendet z. B. das Verarbeitungselement 24a zum Kreuzschienennetz 26 Y- Richtungsdaten, die verarbeitet sind. Insbesondere sendet das Verarbeitungselement 24a ein Datum d11 an das Schaltelement 25a, ein Datum d12 an das Umschaltelement 25b, d13 an das Schaltelement 25c und d14 an das Schaltelement 25d, wobei diese Daten über die Datenleitung 41a an jeweilige Schaltelemente übertragen werden, um danach in die Schaltelemente 25a, 25b, 25c und 25d abhängig von nachfolgenden Steuersignalen 41a eingeschrieben zu werden, die vom Verarbeitungselement 24a erzeugt werden. Zur selben Zeit (durch die gleichzeitige Dateneingabe- und Ausgabeübertragungsoperation, die zuvor anhand des ersten Ausführungsbeispiels gemäß Fig. 4 beschrieben worden ist), empfängt das Verarbeitungselement 24a ein Datum dli aus dem Umschaltelement 25a, ein Datum d21 aus dem Schaltelement 25e, d31 aus dem Schaltelement 25i, und d41 aus dem Schaltelement 25m. Das heißt, Steuersignale 41b werden nacheinander vom Verarbeitungselement 24a erzeugt, wodurch die zuvor genannten Daten d21 bis d41 nacheinander aus den Schaltelementen 25a bis 25m auf die Datenleitung 41b gelesen werden, um in das Verarbeitungselement 24a zu kommen. Beispielsweise das Datum d21, das aus dem Schaltelement 25e gelesen und in das Verarbeitungselement 24a übertragen wurde, zur gleichen Zeit, wie d21 aus dem Verarbeitungselement 24a übertragen und in das Schaltelement 25b eingeschrieben wird.
  • Auf diese Weise werden die eindimensionalen Daten in Y- Richtung neu in eindimensionalen Daten in X- Richtung angeordnet, d.h., es wird eine Y- zu- X- Richtungsübertragung ausgeführt. Das Verarbeitungselement 24a beginnt dann die Verarbeitung der Daten, die dort hinein übertragen worden und im dortigen Speicher gespeichert sind. Nach Abschluß dieser Verarbeitung werden die verarbeiteten Daten nacheinander aus dem Verarbeitungselement 24a in gleicher Weise wie zuvor beschrieben übertragen. Das heißt, indem die resultierenden Daten als d11', d21', d31' und d41' bezeichnet werden, überträgt die Verarbeitung 24a und schreibt das Datum d11' in das Schaltelement 25a, d21' in das Schaltelement 25b, d31' in das Schaltelement 25c und d41' in das Schaltelement 25d. Zur gleichen Zeit empfängt das Verarbeitungselement 24a das Ergebnis d11' aus dem Schaltelement 25a, d12' vom Schaltelement 25e, d13' aus Schaltelement 25i und d14' aus Schaltelement aus 25m, wie diese nacheinander aus den Schaltelementen ausgelesen werden.
  • Auf diese Weise werden die eindimensionalen X- Richtungsdaten neu in eindimensionale Y-Richtungsdaten ( d. h. eine X- Richtung zur Y- Richtungsübertragung wird ausgeführt) angeordnet.
  • Die obigen Operationen werden abwechselnd ausgeführt bis ein gewünschter Konvergenzgrad der Daten erzielt ist.
  • Nach dem Stand der Technik hätte eine derartige Serie von Verarbeitungsoperationen einen großen Umfang an Gemeinkosten aufgrund der Zeit verursacht, die für die Übertragung der Datengruppierungen von der Y- in die X- Richtung und der X- in die Y- Richtung erforderlich ist. Mit der vorliegenden Erfindung jedoch können die Datenergebnisse unmittelbar hintereinander übertragen werden, wobei jedes Verarbeitungselement gleichzeitig Datenergebnisse aus dem Netz überträgt, während empfangene neue Daten von dieser aus dem Netz übertragen werden. Somit können die zuvor genannten Gemeinkosten im wesentlichen vollständig eliminiert werden.
  • Angemerkt sei, daß bei Verwendung eines Multiprozessorsystem nicht nur die obige Art der ADI- Anwendung sondern numerische Verarbeitungsanwendung im allgemeinen und im besonderen das wichtige Gebiet der numerischen Simulation, wo es eine große Häufigkeit von Speicherzugriffsoperationen durch die Verarbeitung eines jeden Verarbeitungselements gibt und eine hohe Anzahl von Datenübertragungen in und aus den jeweiligen Verarbeitungselementen. Mit dem Verfahren der vorliegenden Erfindung ist jedoch, wie zuvor beschrieben, die Zeit, zu der die Ausführung der Datenübertragung in oder aus einem jeden Verarbeitungselement gefordert ist, gänzlich innerhalb der Prozessorausführungszeit des Verarbeitungselements versteckt, d. h., dort ist tatsächlich keine zusätzliche Zeit zur Ausführung einer jeden Datenübertragung erforderlich. Es versteht sich somit, daß die Erfindung bei der Erzielung verbesserter Qualität des Mikroprozessorsystems im allgemeinen äußerst wertvoll ist.
  • Es versteht sich des weiteren, daß die vorliegende Erfindung den Vorteil eines einfachen Aufbaus hat, ohne das Erfordernis der Verwendung spezieller Einrichtungen wie beispielsweise eines Doppel- Ein/Ausgabe- Speicherbausteins und darüber hinaus kann die Anzahl von Verarbeitungselementen in einem Mikroprozessorsystem, das das Verfahren nach der vorliegenden Erfindung verwendet, einfach erweitert werden.
  • Es versteht sich weiterhin, daß das Verfahren der Erfindung die Wahrscheinlichkeit von Busverwendungskonflikten reduziert, die innerhalb eines Verarbeitungselements aufkommen. Das heißt, beim Verarbeitungselement nach dem Stand der Technik, wie es zuvor anhand Fig. 1 beschrieben ist, bei der die Datenübertragungssteuerung selbst immer einen Speicherlesezugriff ausführt, bevor ein Datenwort aus dem Verarbeitungselement übertragen wird, kann ein derartiger Zugriff mit der Prozessoroperation kollidieren. Mit der vorliegenden Erfindung jedoch, bei der aus dem Verarbeitungselement (in fast allen Fällen) zu übertragene Daten an die Datenübertragungssteuerung vom Prozessor zur selben Zeit geliefert werden, zu der die Verarbeitung eines Speicherzugriffs ausgeführt wird, der als Teil der eigenen Verarbeitungsoperation angefordert wird, so daß keine Busbenutzungskonflikte auftreten können. Die aktuell erreichte Leistung vom Prozessor eines jeden Verarbeitungselements kann dadurch maximiert werden.

Claims (9)

1. Verfahren zur Datenübertragung fur ein Verarbeitungselement (24a, 24b), das aus einem Prozessor (1a, 1b), einem Speicher(2a, 2b) und einer Datenübertragungssteuerung (3a, 3b) besteht, die wechselweise an einen Datenbus (4a, 4b) angeschaltet werden, mit den Verfahrensschritten:
(a) Liefern eines Übertragungsbefehlssignals (5a, Sb) an die Datenübertragungssteuerung (3a, 3b) zur Bestimmung, daß ein Datum aus dem Verarbeitungselement (1a, 1b) zu übertragen ist,
(b) Liefern des Datums an den Datenbus (4a, 4b) gleichzeitig mit Schritt (a) unter der Steuerung des Prozessors (1a, 1b); und
(c) Initialisieren der Übertragung des Datums unter der Steuerung der Datenübertragungssteuerung (3a, 3b) in Erwiderung des Übertragungsbefehlssignals (5a, Sb), gekennzeichnet durch den Verfahrensschritt
(d) Ausführen einer Datenübertragungsoperation innerhalb eines Prozessorausführungszyklus zur Datenübertragungssteuerung (3a, 3b) gleichzeitig mit einer Speicherzugriffsoperation, die vom Prozessor innerhalb dieses Zyklus unter der Steuerung eines speziellen Befehls (LDDTC, STDTC) als Ursache der gleichzeitigen Übertragung erfolgt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
das Datum an den Datenbus (4a, 4b) geliefert wird, während der Speicher (2a, 2b) vom Prozessor (1a, 1b) zugegriffen wird.
3. Verfahren zur Datenübertragung nach Anspruch 2, dadurch gekennzeichnet, daß
ein vom Prozessor (1a, 1b) ausgeführtes Programm die folgenden Verfahrensschritte umfaßt:
Anweisung (WP) zur Benennung von Speicherzugriffsoperationen durch den Prozessor (1a, 1b), die gleichzeitig mit der Erzeugung zugehöriger der Übertragungsbefehlssignale (5a, 5b) ausgeführt werden, und Anweisung (RP) zur Festlegung nur von Speicherzugriffsoperationen durch den Prozessor.
4. Verfahren zur Datenübertragung nach Anspruch 1, gekennzeichnet durch die Verfahrensschritte:
Registrieren der Speicheradresse eines jeden zu Übertragenden Datums und
Registrieren der Anzahl von Daten für jede noch nicht begonnene Übertragung, wenn ein interner Zustand der Datenübertragungssteuerung (3a, 3b) eine zu beginnende Übertragung eines Datums oder mehrerer Daten nicht zuläßt, und darauffolgendes Ausführen einer gleichen Anzahl aufeinanderfolgender Speicherleseoperationen unter Verwendung der registrierten Adressen und Beginnen der Übertragung dieser Daten, wenn dies danach der interne Zustand zuläßt und wenn der Datenbus (4a, 4b) vom Prozessor (1a, 1b) freigegeben ist.
5. Datenübertragungssteuereinrichtung für ein Verarbeitungselement (24a), die des weiteren ausgestattet ist mit wenigstens einem Prozessor (la) und einem Speicher (2a), die jeweils mit einem Datenbus (4a) und einem Adressenbus verbunden sind, wobei die Datenübertragungssteuerung (3a) ausgestattet ist mit:
einer Steüerschaltung (7), die auf das Übertragungsbefehlssignal (5a) des Prozessors anspricht; und mit,
einem Statuszähler (8), der mit der Steuerschaltung verbunden ist, um einen Zählwert zu halten, der einen aktuellen Datenübertragungsstatus repräsentiert; dadurch gekennzeichnet, daß
einerseits ein Ausgangsdatenpuffer (9b) zur Übertragung eines zu übertragenden Datums an ein externes Verarbeitungselement vom Datenbus (4a) an ein externes Verarbeitungselement und andererseits ein Eingangsdatenpuffer (9a) zur Übertragung eines Datums vorgesehen ist, das dorthin von einem externen Verarbeitungselement an den Datenbus übertragen wird; und daß die Steuerschaltung (7) das zu übertragene Datum während des Speicherzugriffs durch den Prozessor (WP) an ein externes Verarbeitungselement vom Datenbus (4a) in den Ausgangsdatenpuffer (9b) lädt und das von einem externen Verarbeitungselement in den Eingangsdatenpuffer (9a) Übertragene Datum während des Prozessorausführungszyklus (WD) in den Datenbus (4a) lädt.
6. Datenübertragungssteuerung nach Anspruch 51 dadurch gekennzeichnet, daß
eine Adressenerzeugungsschaltung (10a) mit einem von der Steuerschaltung (7) gesteuerten Leseadressenzähler (41) zum Halten eines Adressenwertes eines Datums entsprechend einem gerade eben ausgegebenen Übertragungsbefehlssignal aus diesem Prozessor vorgesehen ist, dessen Adressenwert jedesmal aktualisiert wird, wenn ein Übertragungsbefehlssignal vom Prozessor ausgegeben wird; und daß
der Statuszähler (8) einen Zählwert einer Gesamtzahl von vom Prozessor für die jeweils zugehörigen, noch nicht von der Datenübertragungssteuerung initialisierten Übertragungsbefehlssignale ausgegebenen Übertragungsbefehlssignalen beibehält; und wobei die Datenübertragungssteuerung die Datenübertragung initialisiert und den im Leseadressenzähler gehaltenen Adressenwert fortschaltet, wenn ein Übertragungsbehlssignal vom Prozessor ausgegeben wird, während die Datenübertragungssteuerung in einem internen Betriebszustand ist, wodurch die Initialisierung der Datenübertragung aktuell möglich ist, wohingegen
bei Ausgabe eines Übertragungsbefehlssignals durch den Prozessor, während die Datenübertragungssteuerung in einem internen Betriebszustand ist, in dem die Datenübertragung nicht möglich ist, die Datenübertragungssteuerung die Zählung des Statuszählers inkrementiert, und wenn die Initialisierung einer Datenübertragung durch die Übertragungssteuerung danach möglich wird und die Steuerung des Datenbusses vom Prozessor freigegeben ist, liefert die Steuerschaltung nacheinander Adressenwerte aus dem Leseadressenzähler, um das Auslesen aus dem Speicher von nachfolgenden der Daten auszuführen, für die die Übertragung bestimmt war, während die Übertragungsinitialisierung nicht möglich war, und die Steuerschaltung schaltet den im Leseadressenzähler gehaltenen Adressenwert fort und dekrementiert den Zählwert im Statuszähler jedesmal, wenn ein Lesezugriff solchermaßen ausgeführt wird.
7. Datenübertragungssteuerung nach Anspruch 6, dadurch gekennzeichnet, daß
die Steuerschaltung (7) ausgestattet ist mit: Mitteln (35d, 35e, 35a) zur Feststellung eines ersten Zustands, bei dem
ein Übertragungssignal vom Prozessor ausgegeben worden ist, während der Statuszähler einen Anfangswert beibehält und der interne Zustand der Datenübertragungssteuerung die Initialisierung einer Datenübertragungsoperation zuläßt, und zur Entsprechung der Feststellung des ersten Zustands durch Erzeugen eines ersten Adressenfortschaltsignals (37a) zur Fortschaltung des Adressenwertes, der in dem Leseadressenzähler gehalten ist, und
durch Erzeugen eines Signals (12) zur Initialisierung einer Datenübertragung; und mit Mittel (37b)
zur Feststellung eines zweiten Zustands, bei dem der Statuszähler einen Wert enthält, der sich von dem Initialisierungswert unterscheidet, wobei der interne Zustand der Datenübertragungssteuerung die Initialisierung einer Datenübertragungsoperation zuläßt und der Datenbus und der Adressenbus vom Prozessor freigegeben worden sind, und zur Beantwortung des zweiten Zustands durch Erzeugen eines zweiten Adressenfortschaltsignals (37b) zur Fortschaltung des im Adressenzähler gehalten Adressenwertes und Initialisieren einer Datenübertragungsoperation und durch Erzeugen eines Signals (16) zum Dekrementieren der Inhalte des Statuszählers und
durch Erzeugen von Signalen (31a, 11a) zur Initialisierung einer Lesezugriffsoperation des Speichers, während die Inhalte des Leseadressenzählers an den Adressenbus geliefert werden.
8. Datenübertragungssteuerung nach Anspruch 5, dadurch gekennzeichnet, daß
der interne Betriebszustand erfüllt wird, durch den das Initialisieren der Datenübertragung momentan möglich ist, bis der Ausgangsdatenpuffer (9b) aktuell voll ist.
9. Multiprozessornetzwerksystem mit einer Vielzahl von Verarbeitungselementen (24a, 24b), die untereinander durch ein Netzwerk (18) zum wechselseitigen Austausch von Daten verbunden sind, wobei jedes Verarbeitungselement ausgestattet ist mit: einem Prozessor (1a, 1b) und einem Speicher (2a, 2b), die durch einen Datenbus (4a, 4b) verbunden sind, einer Datenübertragungssteuerung (3a, 3b), einem zwischen die Datenübertragungssteuerung und den Datenbus geschalteten ersten Ein/Ausgabebaustein (23a, 23c) und einem zwischen die Datenübertragungssteuerung und das Netzwerk (18) geschalteten zweiten Ein/Ausgabebaustein (23b, 23d), in dem bei einem zu Übertragenden Datum vom i- ten Verarbeitungselement zum j- ten Verarbeitungselement des Multiprozessornetzsystems der Prozessor des i- ten Verarbeitungselements ein Übertragungsbefehlssignal erzeugt, während zur gleichen Zeit eine Speicherzugriffsoperation ausgeführt wird, wobei die Datenübertragungssteuerung des i- ten Verarbeitungselements auf dieses Übertragungsbefehlssignal antwortet durch Laden des Datums in den ersten Ein/Ausgabebaustein des i- ten Verarbeitungselements, während das Datum zwischen dem Prozessor und dem Speicher des i- ten Verarbeitungselements übertragen wird, und wobei das Datum über den Ausgangspuffer der Datenübertragungssteuerung des i- ten Verarbeitungselements und den zweiten Ein/Ausgabebaustein des i- ten Verarbeitungselements an das Netz Übertragen wird, und in dem die Datenübertragungssteuerung des j- ten Verarbeitungselements das Datum aus dem Netz in den zweiten Ein/Ausgabebaustein des j- ten Verarbeitungselements lädt und dann das Datum über den Eingangsdatenpuffer der Datenübertragungssteuerung des j- ten Verarbeitungselements und der erste Ein/Ausgabebaustein des jten Verarbeitungselements an den Speicher des j- ten Verarbeitungselements überträgt, um dort eingeschrieben zu werden.
DE69031524T 1989-07-21 1990-07-23 Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen Expired - Fee Related DE69031524T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18969889 1989-07-21

Publications (2)

Publication Number Publication Date
DE69031524D1 DE69031524D1 (de) 1997-11-06
DE69031524T2 true DE69031524T2 (de) 1998-03-05

Family

ID=16245695

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69031524T Expired - Fee Related DE69031524T2 (de) 1989-07-21 1990-07-23 Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen

Country Status (4)

Country Link
US (1) US5253346A (de)
EP (1) EP0409285B1 (de)
JP (1) JP2584113B2 (de)
DE (1) DE69031524T2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE466726B (sv) * 1990-08-20 1992-03-23 Kent Lennartsson Anordning vid distribuerat datorsystem
JPH0520278A (ja) * 1991-07-11 1993-01-29 Nec Corp マイクロコンピユータ
JP2906792B2 (ja) * 1991-11-15 1999-06-21 日本電気株式会社 ディジタルプロセッサ及びその制御方法
US5664104A (en) * 1992-12-18 1997-09-02 Fujitsu Limited Transfer processor including a plurality of failure display units wherein a transfer process is prohibited if failure is indicated in a failure display unit
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JP3057591B2 (ja) * 1992-12-22 2000-06-26 富士通株式会社 マルチプロセッサシステム
JPH07168741A (ja) * 1993-12-15 1995-07-04 Toshiba Corp ウォッチドッグタイマ装置
JPH0822444A (ja) * 1994-07-05 1996-01-23 Matsushita Electric Ind Co Ltd データ転送装置
US6108637A (en) 1996-09-03 2000-08-22 Nielsen Media Research, Inc. Content display monitor
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6643696B2 (en) 1997-03-21 2003-11-04 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
SE515461C2 (sv) * 1998-10-05 2001-08-06 Ericsson Telefon Ab L M Metod och arrangemang för minneshantering
AUPQ206399A0 (en) 1999-08-06 1999-08-26 Imr Worldwide Pty Ltd. Network user measurement system and method
JP5072160B2 (ja) 2000-01-12 2012-11-14 ネットレイティングス・インコーポレーティッド ワールドワイドウェブのディジタルコンテントの普及を見積もるシステム及び方法
US6452149B1 (en) * 2000-03-07 2002-09-17 Kabushiki Kaisha Toshiba Image input system including solid image sensing section and signal processing section
US8271778B1 (en) 2002-07-24 2012-09-18 The Nielsen Company (Us), Llc System and method for monitoring secure data on a network
DE10333888B3 (de) * 2003-07-22 2005-04-07 Siemens Ag Verfahren zum Steuern eines Datenaustauschs
US20140379421A1 (en) 2013-06-25 2014-12-25 The Nielsen Company (Us), Llc Methods and apparatus to characterize households with media meter data
WO2015123201A1 (en) 2014-02-11 2015-08-20 The Nielsen Company (Us), Llc Methods and apparatus to calculate video-on-demand and dynamically inserted advertisement viewing probability
US10219039B2 (en) 2015-03-09 2019-02-26 The Nielsen Company (Us), Llc Methods and apparatus to assign viewers to media meter data
US9848224B2 (en) 2015-08-27 2017-12-19 The Nielsen Company(Us), Llc Methods and apparatus to estimate demographics of a household
US10831178B2 (en) * 2015-10-22 2020-11-10 Mitsubishi Electric Corporation Processing step data generating apparatus and method
US10791355B2 (en) 2016-12-20 2020-09-29 The Nielsen Company (Us), Llc Methods and apparatus to determine probabilistic media viewing metrics

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56116138A (en) * 1980-02-15 1981-09-11 Omron Tateisi Electronics Co Input and output controller
JPS57206949A (en) * 1981-06-15 1982-12-18 Fujitsu Ltd Data processing device
JPS5886623A (ja) * 1981-11-17 1983-05-24 Ricoh Co Ltd メモリ制御方式
JPS61202266A (ja) * 1985-03-06 1986-09-08 Ricoh Co Ltd デ−タ転送回路
US4630260A (en) * 1985-06-27 1986-12-16 At&T Bell Laboratories Self-routing multipath packet switching network with sequential delivery of packets
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
IN168469B (de) * 1986-02-24 1991-04-06 Ibm
GB2195038A (en) * 1986-07-05 1988-03-23 Narayanaswamy D Jayaram A multi-microprocessor system with confederate processors
JPS6361351A (ja) * 1986-09-02 1988-03-17 Nippon Atom Ind Group Co Ltd デ−タ転送方法
JPS649563A (en) * 1987-07-01 1989-01-12 Nec Corp Interprocessor data transfer system
US5089953A (en) * 1987-12-28 1992-02-18 Sundstrand Corporation Control and arbitration unit

Also Published As

Publication number Publication date
JP2584113B2 (ja) 1997-02-19
EP0409285A2 (de) 1991-01-23
US5253346A (en) 1993-10-12
DE69031524D1 (de) 1997-11-06
EP0409285A3 (en) 1992-04-15
EP0409285B1 (de) 1997-10-01
JPH03129450A (ja) 1991-06-03

Similar Documents

Publication Publication Date Title
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE69227664T2 (de) Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor
DE3783072T2 (de) Zusatzprozessorarchitektur.
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE69329630T2 (de) Vorrichtung zur Vektorverarbeitung
DE2856483C2 (de)
DE68928113T2 (de) Reihenfolgesteuersystem zur Behandlung von Befehlen
DE2953861C2 (de)
DE69622776T2 (de) Von Multitasking gebrauch machendes Sortieren
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2646296A1 (de) Assoziative elektronische schaltungsanordnung aus digitalen prozessoren
DE69222468T2 (de) Vorrichtung zur Steigerung der Leistung eines einer Multiprozessorstruktur mit einer möglicherweise hohen Anzahl von Prozessoren zugeordneten Echtzeitsteuerprogrammkerns
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE69025524T2 (de) Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem
DE69229423T2 (de) Datenübertragungssystem
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE2912073C2 (de)
DE68926266T2 (de) Datenprozessor mit der Fähigkeit, Unterbrechungen mit hoher Geschwindigkeit zu verarbeiten
DE4005042A1 (de) Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit
DE4114053A1 (de) Computersystem mit cachespeicher
DE10052132A1 (de) Graphikprozessor mit mehrfachen geometrischen Arbeitseinheiten und Verfahren zum Datenverarbeiten

Legal Events

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