DE69432014T2 - Mehrphasiges mehrfachzugriff-pipelinespeichersystem - Google Patents
Mehrphasiges mehrfachzugriff-pipelinespeichersystemInfo
- Publication number
- DE69432014T2 DE69432014T2 DE69432014T DE69432014T DE69432014T2 DE 69432014 T2 DE69432014 T2 DE 69432014T2 DE 69432014 T DE69432014 T DE 69432014T DE 69432014 T DE69432014 T DE 69432014T DE 69432014 T2 DE69432014 T2 DE 69432014T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- phase
- data
- processors
- processor
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
- Diese Erfindung betrifft ein mehrphasiges Mehrfachzugriff-Pipelinespeichersystem.
- Bei herkömmlichen Rechnern und Mikrocomputern besteht ein dauernder Streit zwischen dem Mikroprozessor und dem Eingabe-/Ausgabe-Prozessor um den Speicherzugriff. Dies ist ein besonders ernstes Problem bei Signalverarbeitungsanwendungen, die Hochgeschwindigkeitsverarbeitung großer Datenmengen und hohe Eingangs-/Ausgangsraten erfordern. Es werden gemeinhin vier Ansätze verwendet, um eine gerechte Teilhabe am Speicher zu ermöglichen- Einer ist es, Speicher mit zwei Anschlüssen zu verwenden: Diese sind im allgemeinen kompliziert und teuer und habe eine geringe Kapazität. Ein zweiter Ansatz verwendet den "Zyklusraub (cycle stealing)", wobei einer der Mikroprozessoren und Ein-/Ausgabe-Prozessoren Vorrang vor dem anderen hat und Speicherzugang "raubt", wenn er ihn benötigt, wobei er den Betrieb des anderen unterbricht. Dies verlangsamt die Antwort des unterbrochenen Prozessors und des gesamten Systems. Der dritte Ansatz verwendet eine Anzahl von getrennten Speicherbänken, so daß meistens sowohl der Mikroprozessor als auch der Ein-/Ausgabe-Prozessor auf eine unterschiedliche Bank zugreifen können. Um dies zu bewirken muß der Benutzer/Programmierer jedoch bei der Programmierung das Ziel des möglichst gering Haltens der Überlappung bei der Zugriffsanforderung für die Speicherbänke durch den Mikroprozessor und den Ein-/Ausgabe-Prozessor obenansetzen. Dies erfordert ein sorgfältiges Zeitplanen der Eingabe-/Ausgabe- und Berechnungsaufgaben, damit eine gleichzeitige Anforderung durch beide Prozessoren der gleichen Speicherbank vermieden oder zumindest vermindert wird. Dies legt dem Benutzer eine lästige Nebenbeschränkung auf. Der vierte Ansatz ist es, den Speicher einfach mit der doppelten der normalen Zyklusgeschwindigkeit zu betreiben. Dies ist aber schwierig, insbesondere bei Signalverarbeitungssystemen, wo die Speicher in der Regel schon an der Grenze der Kapazität arbeiten.
- Die Patent Abstracts of Japan, Bd. 013, Nr. 242 (P-880), 07. Juni 1989 (1989-06-07) und JP 01 43 894 A der NEC Corp., 16. Februar 1989 (1989-02-16) beschreiben einen Pipelinespeicher mit einem ersten und zweiten Anschluß, mit einer Zeilen- und Spaltenadressen-Verriegelungsschaltung (latch), der durch einen ersten CLK gesteuert wird, einer ersten Verriegelungsschaltung, die durch CLK1 gesteuert wird und einem zweiten Verriegelungsschaltungssatz gesteuert durch CLK2 (Gegenphase von CLK1).
- Jedoch beschreibt dieses Abstract kein mehrphasiges Mehrfachzugriff- Pipelinespeichersystem, das aufweist (umfaßt) mehr als zwei Prozessoren, und beschreibt auch ein solches System nicht, das Subprozessoren einschließlich getrennter Daten- und Befehlsabrufeinheiten, mehrfache Speicherbänke und die Zuordnung von Daten und Befehlsabrufeinheiten zu getrennten Speicherbänken über getrennte Busse aufweist.
- Es ist daher ein Gegenstand dieser Erfindung, ein verbessertes mehrphasiges Mehrfachzugriff-Pipelinespeichersystem zu schaffen.
- Es ist ein weiterer Gegenstand dieser Erfindung, ein solches mehrphasiges Mehrfachzugriff-Pipelinespeichersystem zu schaffen, das die Speicherkapazität nicht erhöht, ausdehnt oder begrenzt.
- Es ist ein weiterer Gegenstand dieser Erfindung, ein solches mehrphasiges Mehrfachzugriff-Pipelinespeichersystem zu schaffen, das den Zugriff anderer Prozessoren auf den Speicher nicht unterbricht und den Systembetrieb als Ganzes nicht verlangsamt.
- Es ist ein weiterer Gegenstand dieser Erfindung, ein solches mehrphasiges Mehrfachzugriff-Pipelinespeichersystem zu schaffen, das keine besondere Programmierung oder Zeiteinteilung des Zusammenspiels von Prozessor und Speicher erfordert.
- Es ist ein weiterer Gegenstand dieser Erfindung, ein solches mehrphasiges Mehrfachzugriff-Pipelinespeichersystem zu schaffen, das es nicht erfordert, den Speicher oberhalb normaler Geschwindigkeiten zu betreiben.
- Die Erfindung ergibt sich aus der Erkenntnis, daß ein wirklich wirksames Mehrfachzugriff-Pipelinespeichersystem erreicht werden kann, in dem jeder Prozessor auf den Speicher einmal in jedem Systemtaktzeitraum Zugriff hat ohne in den Zugriff der anderen Prozessoren einzugreifen, indem man den Betrieb der Prozessoren phasen- bzw. zeitraum-verschiebt und den Speicher derart als "Pipeline" betreibt, daß jeder Prozessor auf den Speicher während einer anderen Phase der Systemtaktzeitraums zugreift während der Speicherbetrieb bei seiner normalen Geschwindigkeit beibehalten wird. Diesem Ansatz liegt die grundlegende Erkenntnis zugrunde, daß es in den meisten Fällen keinen Grund gibt, warum alle die Prozessoren, seien sie Mikroprozessoren oder Ein-/Ausgabe-Prozessoren, in Phase betrieben werden müssen derart, daß ihr Betrieb gleichzeitig beginnt und endet: eine überlappte Abfolge der Betätigung ist annehmbar und daher kann ein pipelinebetriebener Speicher zusammen mit phasenüberlappter Abfolge zu einem optimalen Ergebnis ausgenutzt werden.
- Diese Erfindung zeichnet sich durch ein Zweiphasen-Zweizugriffs- Pipelinespeichersystem mit ersten und zweiten Prozessoren, einem Pipelinespeicher, der Verriegelungsschaltungseinrichtungen aufweist, und Buseinrichtungen, um den Prozessor mit dem Pipelinespeicher zu verbinden, aus. Es gibt eine Taktschaltung, die auf ein Systemtaktsignal anspricht, um ein erstes Taktsignal in Phase mit dem Systemtaktsignal um einen ersten Prozessor zu betreiben, ein zweites Taktsignal außer Phase zum Systemtaktsignal um den zweiten Prozessor außer Phase zum ersten Prozessor zu betreiben, und ein drittes Taktsignal mit der doppelten Systemtaktsignalgeschwindigkeit um den Pipelinespeicher durch die Verriegelungsschaltungseinrichtungen zu takten um es zu ermöglichen, daß dem Pipelinespeicher durch den ersten Prozessor eine Adresse geliefert wird, während auf Daten zugegriffen wird aus der Adresse, die in dem vorhergehenden Zyklus während der anderen Phase geliefert wurde, zu liefern.
- In der bevorzugten Ausführungsform können die Prozessoren einen Ein-/Ausgabe-Prozessor und einen Mikroprozessor aufweisen, oder die Prozessoren können beide Mikroprozessoren sein. Die Prozessoren können auch Subprozessoren in dem selben Mikroprozessor aufweisen. Die Unterprozessoren können eine Befehlsabrufeinheit und eine Datenabrufeinheit aufweisen. Der Pipelinespeicher kann eine Mehrzahl von Speicherbänken aufweisen und die Buseinrichtungen können eine Mehrzahl von Datenadreßbuspaaren aufweisen und es kann dritte und vierte Prozessoren geben. Die ersten und dritten Prozessoren können Datenabrufeinheiten aufweisen, die auf verschiedene Speicherbänke voneinander in der selben Phase miteinander zugreifen und die zweiten und vierten Prozessoren können eine Befehlsabrufeinheit und einen Eingabe-/Ausgabeprozessor, die auf verschiedene Speicherbänke voneinander in der gleichen Phase miteinander aber außer Phase zu den ersten und dritten Prozessoren zugreifen, aufweisen.
- In einem umfassenderen Sinne zeichnet sich die Erfindung durch ein mehrphasiges Mehrfachzugriff-Pipelinespeichersystem aus, das eine Anzahl, n, von Prozessoren, einen Pipelinespeicher mit Verriegelungsschaltungseinrichtungen, und Buseinrichtungen, die die Prozessoren und den Pipelinespeicher miteinander verbinden, aufweist. Es gibt eine Taktschaltung, die auf ein Systemtaktsignal anspricht, um das Systemtaktsignal in n Phasen aufzuteilen, um mehrere Taksignale zu liefern, die den n Phasen des Systemtaktsignals entsprechen, um jeden Prozessor zu betreiben, um es zu ermöglichen, daß Daten und Adressen nur während der zugewiesenen Phase übermittelt werden, und dadurch den Speicher und jeden Prozessor in die Lage versetzen, mit der Systemtaktgeschwindigkeit zu arbeiten, während sie während jedes Systemtaktsignalzeitraums n Zugriffe auf den Speicher erlauben, einen Zugriff für jeden Prozessor.
- In einer bevorzugten Ausführungsform kann mindestens einer der Prozessoren ein Eingabe-/Ausgabe-Prozessor sein, und einer kann ein Mikroprozessor sein, oder die Prozessoren können beide Mikroprozessoren sein. Die Prozessoren können Subprozessoren in dem selben Mikroprozessor aufweisen. Die Subprozessoren können eine Datenabholeinheit und eine Befehlsabholeinheit aufweisen. Die Verriegelungsschaltungseinrichtungen können eine Mehrzahl von Verriegelungsschaltungen aufweisen, um eine Pipelineanordnung von n Zugriffen des Pipelinespeichers während jeden Systemtaktsignalzeitraums zu ermöglichen.
- Andere Gegenstände, Merkmale und Vorteile werden den Fachleuten aus der nachfolgenden Beschreibung eines bevorzugten Ausführungsbeispiels und den begleitenden Zeichnungen aufscheinen, in denen:
- Fig. 1 ein vereinfachtes Blockdiagramm eines mehrphasigen Mehrfachzugriff-Pipelinespeichersystems gemäß dieser Erfindung ist;
- Fig. 2 eine Erläuterung der Taktsignale, die an verschiedenen Punkten der Fig. 1 auftreten, ist;
- Fig. 3 ein mehr ins Einzelne gehendes Blockdiagramm des Systems der Fig. 1, das eine zusätzliche Halte-Verriegelungsschaltung zeigt, die den Betrieb des Pipelinespeichers beschleunigt, ist;
- Fig. 4 ein Zeitablaufdiagramm, das die Abfolge des Auftretens im Hinblick auf den Betrieb des Pipelinespeichers in Figs. 1 und 3 zeigt, ist;
- Fig. 5 ein mehr in Einzelne gehendes Blockdiagramm des Pipelinespeichers der Figs. 1 und 3 ist;
- Figs. 6A und B ein ins Einzelne gehendes Blockdiagramm einer speziellen Verwirklichung der Erfindung unter Verwendung eines Vier-Bänke-Pipelinespeichers und einer Anzahl von Subprozessoren in einem Mikroprozessor, die zweifache Daten- und Programmbusse teilen, ist; und
- Fig. 7 eine Erläuterung noch einer weiteren Verbesserung gemäß dieser Erfindung beim Betrieb des Systems der Figs. 6A und B ist.
- In Fig. 1 ist ein mehrphasiges Mehrfachzugriff-Pipelinespeichersystem 10 gemäß dieser Erfindung gezeigt, das einen Pipelinespeicher 12 und zwei Prozessoren 14 und 16, zusammen mit Taktschaltung 18, die durch ein Systemtaktsignal angetrieben wird, das sie auf Leitung 20 empfängt, aufweist. Die Taktschaltung 18 teilt das Systemtaktsignal in zwei Phasen: Φ1, geliefert auf Leitung 22 an den Prozessor 14, und Φ2, geliefert auf Leitung 24 an den Prozessor 16. Die Taktschaltung 18 erzeugt auch ein Signal mit der zweifachen Frequenz des eingehenden Systemtaktsignals auf Leitung 20 und liefert es auf Leitung 26 an die Verriegelungsschaltung 28 im Pipelinespeicher 12. Während Phase 1 fordert der Prozessor 14 eine Adresse an und stellt Steuersignale über Leitung 30 an den Pipelinespeicher 12 zur Verfügung. Während Phase 2 stellt Speicher 12 die Daten auf Leitung 32 zurück an den Prozessor 14 zur Verfügung (Lesen), oder der Prozessor 14 liefert Daten (Schreiben). Auch während Phase 2 fordert der Prozessor 16 auf Leitung 34 eine Adresse an und stellt Steuersignale zur Verfügung und die Daten werden zurückgegeben (Lesen) oder ihm zur Verfügung gestellt (Schreiben) in Antwort darauf über Leitung 36 während Phase 1 des nächsten Zeitraums des Systemtaktsignals.
- Dies kann leichter mit Bezug auf die in Fig. 2 gezeigte Wellenform ersehen werden. Dort ist der Systemtakt 40, der auf Leitung 20 erscheint, mit zwei Phasen: Φ1 und Φ2, gezeigt. In der Taktschaltung 18 werden zwei Taktsignale daraus entwickelt: Phase eins-Signal 42 und das Phase zwei-Signal 44, das das Inverse des Phase eins-Signals 42 ist. Signal 42 ist tatsächlich ein Duplikat des Systemtaktsignals, in diesem Fall, wo das Pipelinespeichersystem als ein Zweifachzugriff-System arbeitet und es nur zwei Prozessoren 14 und 16 gibt, die zu berücksichtigen sind. Das dritte Taktsignal, das dem Pipelinespeicher auf Leitung 26 geliefert wird, erscheint wie bei 46 gezeigt als mit der zweifachen Geschwindigkeit des Systemtaktsignals 40 auftretend. Jedoch sollte klar sein, daß es den Speicher nicht mit der zweifachen normalen Speichergeschwindigkeit betreibt; stattdessen betreibt es einfach die Verriegelungsschaltung 28 um die Pipeline-Funktion des Pipelinespeichers 12 auszuführen. In dem Maße, wie die Anzahl der Prozessoren sich erhöht, muß auch die Anzahl der Verriegelungsschaltungen sich erhöhen, um die Anforderungen und die Daten-Ein- und Ausgaben angemessen in die Pipeline einzubringen. Das dritte Taktsignal muß kein unabhängig erzeugtes Signals sein, es kann aus den Anstiegs- und Abfallkanten des ursprünglichen Taktes abgeleitet werden.
- Um die Verarbeitung der Anforderung durch den Pipelinespeicher 12 zu beschleunigen, werden die Adressen aus den Prozessoren 1 und 2 auf einen gemeinsamen Adressenbus gelenkt (driven). Die Adresse aus Prozessor 1 wird in Φ2 gelenkt und in 50 verriegelt, Fig. 3, am Beginn von Φ1. Die Adresse vom Prozessor 2 wird gelenkt und wird verriegelt in 50 am Beginn von Φ2. Somit kann der Adressendekodierer sofort das Dekodieren der Adressen am Beginn von Φ1 und Φ2 beginnen. Die Verriegelungsschaltung 50 wird durch den selben 2x-Takt, der die Pipeline-Verriegelungsschaltung 28 antreibt, getaktet.
- Fig. 4 ist ein ins Einzelne gehendes Zeitablaufdiagramm, das die Signale, die an verschiedenen Punkten in Fig. 3 auftreten, zeigt. Wie ersichtlich, hat das Systemtaktsignal 40 zwei Zeitabschnitte/Phasen, Φ1 und Φ2, die den gesamten Taktzeitraum 41 bilden. Der nächste Taktzeitraum 41' weist Phase Φ&sub1;&sub1; und Φ&sub1;&sub2; auf, usw. Das Taktsignal 46 mit doppelter Geschwindigkeit, das Verriegelungsschaltung 28 antreibt, triggert Verriegelungsschaltung 50, die eingehende Adressenanforderung vom Prozessor 14 zur Zeit 60 zu speichern. Während der ersten Phase, Φ&sub1;, die zur Zeit 62 endet, wird diese Adresse dekodiert. In der zweiten Phase, die zur Zeit 64 endet, wird die dekodierte Adresse benutzt, um die Daten wiederzugewinnen und sie auf Leitung 32 an den Prozessor 14 zurückzugeben. Gleichzeitig während Phase Φ&sub2;, beginnend zur Zeit 62, sichert Verriegelungsschaltung 50 die Adresse für Prozessor 16 während des Restes der Phase Φ&sub2;: Die Verwendung der Verriegelungsschaltung 50 zwingt die Prozessoren, die Adresse gültig am Anfang jeder Phase zu haben, aber diese Adresse kann (durch die Prozessoren) unmittelbar nachdem die Phase beginnt, entfernt werden. Die Verriegelungsschaltung 50 verschiebt im Wesentlichen die Zeitlage von Adresse und Daten derart, daß jeder Prozessor in der selben Phase seine Adressen zur Verfügung stellt und seine vorhergehenden Daten erhält. (S. Fig. 4). Dies wird vollendet zur Zeit 64 am Ende der Phase Φ&sub2; und dem Schluß des Taktzeitraums 41. Während Phase Φ&sub1;&sub1;, von dem nächsten Taktzeitraum 41' der zur Zeit 70 endet, werden die Daten gemäß der dekodierten Adresse wiedergewonnen und zum Prozessor 16 zurückgegeben. Obwohl in dieser speziellen Erklärung Verriegelungsschaltung 28 sich just in der Mitte des Pipelinespeichers 12 befindet, und die Adressendekodier- und die Datenrückgewinnungsfunktionen trennt, ist dies keine notwendige Eingrenzung der Erfindung, da eine oder mehr Verriegelungsschaltungen verwendet werden können, um die Verriegelungsschaltung 28 zu verwirklichen, und diese können an mehreren Örtlichkeiten im Pipelinespeicher 12 verwendet werden. Beachte, daß zur Zeit 62 Verriegelungsschaltung 28 die dekodierte Adresse des Prozessors 14 in Antwort auf die Adresse in Verriegelungsschaltung 50 verriegelt. Somit beeinflußt die Verriegelungsschaltung 28 die Pipeline-Funktion des Speichers 12 dadurch, daß sie dem Speicher erlaubt, die Adresse für eine Prozessoranforderung, die in Verriegelungsschaltung 50 gehalten wird, zu dekodieren, während er gleichzeitig auf den Speicherbereich mit der dekodierten Adresse, die in Verriegelungsschaltung 28 gehalten wird, zugreift.
- Eingeschlossen in der Adressenanforderung auf Leitungen 30 und 34 aus den Prozessoren 14 und 16 sind Steuersignale, die angeben, ob Information vorhanden ist, die eingeschrieben oder ausgelesen werden muß, oder weder noch, aus der dekodierten Adresse. Die Lesedaten-Wellenform 80, Fig. 4, zeigt an, daß die zu lesenden oder zu schreibenden Daten gültig gegen Ende von Φ&sub2; für den Prozessor 14 sind. Wenn die Daten gelesen werden sollen, zeigt die Wellenform 80 an, daß die zu lesenden Daten gültig sein werden, wenn die Zeit 64 erreicht wird, wie bei Lesedaten 82 angezeigt. Wenn die Daten in Speicher geschrieben werden sollen, dann zeigt Wellenform 84 an, daß die Daten bei 86 zum Schreiben gültig sind. In ähnlicher Weise zeigen die Datengültigkeits-Anzeigen 88 und 90 für den Mikroprozessor 16 an, daß die Daten zur Zeit 70 gültig sind.
- Eine mehr ins Einzelne gehende Verwirklichung des Pipelinespeichers 12, Fig. 5, zeigt, daß er einen Adressendekodierer 100, eine Verriegelungsschaltung 28, Speicherbereich 102, Spaltendekodierer 104 und Verriegelungsschaltungen 106 aufweist. Am Ausgang ist ein Multiplexer (MUX) 108 vorhanden. Angenommen, die zwei Prozessoren in diesem Zweifachzugriff-Pipelinespeichersystem weisen einen Mikroprozessor und einen Ein-/Ausgabeprozessor auf; dann wird die Adresse beider auf Leitung 114 während jeder Phase des Taktes eingespeist.: Treibe Prozessor 1 während Φ&sub2; und treibe Prozessor 2 während Φ&sub1;. Verriegelungsschaltung 112 ist eine Halte-Verrriegelungsschaltung ähnlich Verriegelungsschaltung 50, die die vorhergehende Prozessoradressenanforderung hält, so daß die neue für den Adressendekodierer 100 sofort auf den Beginn des Zeitraums verfügbar ist. Verriegelungsschaltung 28 arbeitet in Verbindung mit Adressendekodierer 100 und Speicherbereich 102 in der üblichen Art und Weise von Pipelinespeichern. Der Spaltendekodierer 104 empfängt die Ausgangsdaten vom Speicherbereich 102 und liefert sie zu den Verriegelungsschaltungen 106 die auch antizipatorische Verriegelungsschaltungen sind, die die Ausgangsdaten im Bereit-Zustand zum Liefern an den anfordernden Prozessor und die zu schreibenden Daten zum Liefern an den Speicherbereich aufrechterhalten. Die Datenleitungen 118 und 120 geben an den Mikroprozessor bzw. den Eingabe-/Ausgabeprozessor die Daten zurück, die sie angefordert haben. Die Datenleitungen 118 und 120 können in der gleichen Weise zusammen in der Zeit benutzt werden wie es die Adreßleitungen werden. Die Verriegelungsschaltung 106 wirkt um die Daten für die Lieferung an den Prozessor im Bereit-Zustand aufrechtzuerhalten. Es ist diese Wirkungsweise, die die überlappenden Abschnitte 120, 122, 124 und 126 der Wellenformabschnitte 82, bzw. 86, bzw. 88 bzw. 90 erzeugen, wobei sie anzeigen, daß die Daten da und bereit sind in dem Augenblick, da der Prozessor bereit ist, die Daten zu empfangen oder zu schreiben. Die Steuersignale, auf die oben Bezug genommen wurde, werden durch den Prozessor an den Pipelinespeicher geliefert und ein Teil der Adressen werden über eine andere Verriegelungschaltung 122 zur Spaltendekodierung 104 geliefert. Die Verriegelungsschaltung 122 arbeitet, um den Betrieb der Spaltendekodierung 104 mit der Pipelineverriegelungsschaltung 28 zu synchronisieren.
- Bei einer Anwendung weist der Speicher 12, Figs. 6A und 6B, vier Speicherbänke, 150, 152, 154 und 156, auf, und der Prozessor 14 ist ein Mikroprozessor, der eine Datenabrufeinheit, Datenadressenerzeugungseinrichtungen 158 und 160, Cachespeicher 162 und eine Befehlsabrufeinheit, Programm-Sequenzer 164, aufweist. Der Mikroprozessor 14 weist auch herkömmliche Merker 166, Zeitgeber 168 und Interrupts 170 auf. Es ist auch eine Registerdatei 172, eine Gleitkomma-Festmultiplizierschaltung, und ein FestkommaZwischenspeicher 174, ein Zylinder-Schiffer (barrel shifter) 176 und eine Fließkomma- und Festkomma-Rechen- und Leitwerkeinheit 178 vorhanden. Der andere Prozessor, Prozessor 16, ist hier ein Eingabe-/Ausgabe-Prozessor, der ein Eingabe-/Ausgabe-Prozessor-Register 180, den seriellen Anschluß 182, 4-Bit-Anschluß (nibble port) 184 und Datenspeicheradressensteuerung 186 aufweist. Der externe Anschluß 190 enthält ein Paar von Multiplexern (MUX) 192, 194 und eine Steuerung 196 des externen Anschlusses. Bei dieser Anwendung werden der Datenadressenerzeuger 159 und 160 und der Programm-Sequenzer 164 je als ein Prozessor betrachtet, obwohl sie in diesem Fall tatsächlich Subprozessoren des Mikroprozessors 14 sind, so daß es aus der Sicht des Speichers 12 vier Prozessoren gibt: Datenadressenerzeuger 158 und 160, Programm-Sequenzer 164 und Eingabe-/Ausgabeprozessor 16. Bei dieser Anwendung sind zwei Buspaare vorhanden: Die Programmadreß- und die Programmspeicherdatenbusse 200 und 202 sind ein Paar, und die Datenspeicheradreß- und Datenspeicherdatenbusse 206 und 208 sind das andere Paar.
- Gemäß dieser Erfindung, können, während Phase eins, Datenadreßerzeuger 160 oder Programm-Sequenzer 164 auf das Programmspeicherbuspaar 200 und 202 zugreifen. Auch während Phase eins kann der Datenadressenerzeuger 158 auf das Datenspeicheradressenpaar 206, 208 zugreifen. Während Phase zwei greift nur der Eingabe-/Ausgabe-Prozessor 16 auf die Speicherbänke des Speichers 12 über Programmspeicheradressenpaar 200 und 202 zu. Wenn sowohl der Programmsequenzer 164 als auch der Datenadressenerzeuger 160 auf den Programmspeicheradressenbus 200, 202 zugreifen müssen, dann muß einer auf ihn in Phase eins eines ersten Taktzeitraums zugreifen und der andere seinen Zugriff während Phase eins des nächsten Taktzeitraums erlangen.
- Eine sogar noch vorteilhaftere Anwendung der Erfindung auf das System der Figs. 6A und 6B kann im Hinblick auf Fig. 7 erkannt werden, wo der Wettbewerb zwischen Programmsequenzer 164 und Datenadressenerzeuger 160 um das Programmspeicheradreßpaar 200 und 202 dadurch vermieden werden kann, daß man Datenadressenerzeuger 158 und 160 ihre Adressen während der ersten Phase zu den zwei verschiedenen Bussen 202 und 206 liefern läßt und dann den Programmsequenzer 164 und den Ein-/Ausgabeprozessor 16 ihre Adressenanforderungen während der zweiten Phase an die Busse 200 und 206 liefern läßt. Dies kann erreicht werden, weil der Programmsequenzer 164 nur lose an die Datenadressenerzeuger 158 und 160 gekoppelt ist. Dies liegt allen Anwendungen dieser Erfindung zugrunde, da die Phasenverteilung der Anforderungen von der Fähigkeit der verschiedenen Prozessoren abhängt, synchron, aber außer Phase, miteinander zu arbeiten, um den Mehrfachzugriff auf den Pipelinespeicher zu erlangen, ohne einander zu unterbrechen oder vom Speicher zu fordern, mit doppelter oder mehrfacher Geschwindigkeit zu laufen. Mit dieser Verwirklichung, wie in Fig. 7 gezeigt, werden die Buspaare 200, 202 und 206, 208 wirkungsvoller genutzt, Datenadressenerzeuger 160 und Programmsequenzer 164 stehen nicht länger im Wettbewerb und der Cachespeicher 162 kann beseitigt werden. Während so weit die erläuternden Beispiele alle im Hinblick auf ein Zweizugriff-Pipelinespeichersystem waren, ist dies keine notwendige Eingrenzung der Erfindung, da die Erfindung für jegliches Mehrfachzugriff-Pipelinespeichersystem gilt, wie es in gestrichelten Linien in Fig. 7 gezeigt ist, wo ein zusätzliches Paar von Prozessoren so wie Ein-/Ausgabe-Prozessor 220 und Mikroprozessor 224 bei der Verwendung des Programmspeicheradreßbusses 200 und des Datenspeicheradreßbusses 206 während einer dritten Phase, Φ&sub3;, gezeigt sind, wo natürlich das Systemtaktsignal in drei oder mehr Phasen geteilt wurde, in Abhängigkeit von der Anzahl der Prozessoren, die versorgt werden müssen, und der Anzahl von Bussen, die gemeinsam mit dem Pipelinespeicher verfügbar sind.
- Obwohl spezielle Merkmale dieser Erfindung in manchen Zeichnung gezeigt sind, und keine anderen, dient dies nur der Bequemlichkeit, da manches Merkmal mit jeglichem oder allen der anderen Merkmale zusammengestellt werden kann, gemäß der Erfindung.
- Andere Ausführungsformen werden den Fachleuten einfallen und liegen innerhalb der folgende Ansprüche:
Claims (5)
1. Ein mehrphasiges Mehrfachzugriff-Pipelinespeichersystem, aufweisend:
eine Mehrzahl von N Prozessoren (14, 16);
einen Pipelinespeicher (12), der Verriegelungsschaltungseinrichtungen (28, 50) enthält;
Bus-Einrichtungen (30, 32, 34, 36) um besagte Prozessoren (14, 16) und besagten
Pipelinespeicher (12) miteinander zu verbinden;
eine Taktschaltung (18), die auf ein System-Taktsignal (20) anspricht um besagtes
System-Taktsignal in N Taktsignale (22, 24) zu teilen, wobei jedes besagter N Taktsignale eine
eindeutige Phase hat, und jedes besagter N Taktsignale einem anderen Prozessor (14, 16)
zugeordnet ist;
wobei besagter Pipelinespeicher (12) eingerichtet ist um eine Übertragung von Informationen
zwischen jedem Prozessor und dem Pipelinespeicher (12) gemäß der zeitlichen Lage der
Phase jedes Taktsignals (22, 24), das jedem besagten Prozessor (14, 16) zugeordnet ist, zu
bearbeiten; und
wobei das System dadurch gekennzeichnet ist daß jeder besagter
Prozessoren (14, 16) einen oder mehrere Subprozessoren enthält.
2. Das mehrphasige Mehrfachzugriff-Pipelinespeichersystem des Anspruchs 1, bei dem besagte
Subprozessoren eine Befehls-Abrufeinheit und eine Daten-Abrufeinheit aufweisen.
3. Das mehrphasige Mehrfachzugriff-Pipelinespeichersystem des Anspruchs 2, bei dem
besagter Pipelinespeicher (12) eine Mehrzahl von Speichern, der gemeinsam für Daten und
Programme ist, und einen ersten, einen zweiten, einen dritten und einen vierten Prozessor
aufweist, und besagte Bus-Einrichtungen eine Mehrzahl von Datenadreßbuspaaren (30, 34)
aufweisen.
4. Das mehrphasige Mehrfachzugriff-Pipelinespeichersystem des Anspruchs 3, bei dem der
erste und der dritte Prozessor jeder eine Daten-Abrufeinheit, die so eingerichtet ist, daß jede
Daten-Abrufeinheit auf einen anderen Speicher, der gemeinsam für Daten und Programme ist,
während einer ersten Phase eines System-Taktzyklus zugreift, aufweisen, und bei dem der
zweite und der vierte Prozessor jeder eine Befehls-Abrufeinheit bzw. einen
Eingabe-/Ausgabeprozessor, wobei die Befehls-Abrufeinheit und ein
Eingabe-/Ausgabeprozessor eingerichtet sind, um auf einen anderen Speicher, der
gemeinsam für Daten und Programme ist, während einer zweiten Phase besagten
System-Taktzyklus zuzugreifen, aufweisen.
5. Das mehrphasige Mehrfachzugriff-Pipelinespeichersystem des Anspruchs 1, in dem besagte
Verriegelungsschaltungseinrichtungen (28, 50) eine Mehrzahl von Verriegelungsschaltungen
aufweisen, um das Nacheinander-Durchführen (pipelining) von N Zugriffen besagten
Pipelinespeichers während jeden System-Taktsignalzyklus zu ermöglichen.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/052,073 US5471607A (en) | 1993-04-22 | 1993-04-22 | Multi-phase multi-access pipeline memory system |
| PCT/US1994/004455 WO1994024628A1 (en) | 1993-04-22 | 1994-04-22 | Multi-phase multi-access pipeline memory system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69432014D1 DE69432014D1 (de) | 2003-02-20 |
| DE69432014T2 true DE69432014T2 (de) | 2003-11-20 |
Family
ID=21975282
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69432014T Expired - Lifetime DE69432014T2 (de) | 1993-04-22 | 1994-04-22 | Mehrphasiges mehrfachzugriff-pipelinespeichersystem |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5471607A (de) |
| EP (1) | EP0695444B1 (de) |
| JP (1) | JPH08509082A (de) |
| DE (1) | DE69432014T2 (de) |
| WO (1) | WO1994024628A1 (de) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3579461B2 (ja) | 1993-10-15 | 2004-10-20 | 株式会社ルネサステクノロジ | データ処理システム及びデータ処理装置 |
| US5761466A (en) * | 1994-05-09 | 1998-06-02 | Lsi Logic Corporation | Soft programmable single-cycle/pipelined micro-programmed control system |
| JPH0816530A (ja) * | 1994-07-04 | 1996-01-19 | Kurieiteibu Design:Kk | コプロセサシステムおよび補助演算機能付外部メモリ装置 |
| JP3013714B2 (ja) * | 1994-09-28 | 2000-02-28 | 日本電気株式会社 | 半導体記憶装置 |
| JP2970434B2 (ja) * | 1994-10-31 | 1999-11-02 | 日本電気株式会社 | 同期型半導体記憶装置およびセンス制御方法 |
| US5954811A (en) * | 1996-01-25 | 1999-09-21 | Analog Devices, Inc. | Digital signal processor architecture |
| US5896543A (en) * | 1996-01-25 | 1999-04-20 | Analog Devices, Inc. | Digital signal processor architecture |
| GB2310738B (en) * | 1996-02-29 | 2000-02-16 | Advanced Risc Mach Ltd | Dynamic logic pipeline control |
| JP2959482B2 (ja) * | 1996-08-19 | 1999-10-06 | 日本電気株式会社 | 大規模集積回路 |
| US5790838A (en) * | 1996-08-20 | 1998-08-04 | International Business Machines Corporation | Pipelined memory interface and method for using the same |
| WO1999019805A1 (en) | 1997-10-10 | 1999-04-22 | Rambus Incorporated | Method and apparatus for two step memory write operations |
| US6263448B1 (en) | 1997-10-10 | 2001-07-17 | Rambus Inc. | Power control system for synchronous memory device |
| US6401167B1 (en) | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
| EP1981033B1 (de) | 1997-10-10 | 2011-08-24 | Rambus Inc. | Vorrichtung und Verfahren für Pipeline-Speicherbetrieb mit Schreib-Maskierung |
| EP1327991A3 (de) * | 1997-10-10 | 2005-05-11 | Rambus Inc. | Vorrichtung und Verfahren für Pipeline-Speicheroperationen |
| US6002882A (en) * | 1997-11-03 | 1999-12-14 | Analog Devices, Inc. | Bidirectional communication port for digital signal processor |
| US6061779A (en) * | 1998-01-16 | 2000-05-09 | Analog Devices, Inc. | Digital signal processor having data alignment buffer for performing unaligned data accesses |
| US6629223B2 (en) | 1998-10-06 | 2003-09-30 | Texas Instruments Incorporated | Method and apparatus for accessing a memory core multiple times in a single clock cycle |
| EP1031988A1 (de) * | 1999-02-26 | 2000-08-30 | Texas Instruments Incorporated | Verfahren und Vorrichtung zum Zugriff auf einen Speicherkern |
| US7126874B2 (en) * | 2004-08-31 | 2006-10-24 | Micron Technology, Inc. | Memory system and method for strobing data, command and address signals |
| CN100573487C (zh) * | 2006-06-07 | 2009-12-23 | 联詠科技股份有限公司 | 可控制多重数据存取的系统及相关方法 |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3896418A (en) * | 1971-08-31 | 1975-07-22 | Texas Instruments Inc | Synchronous multi-processor system utilizing a single external memory unit |
| US4050058A (en) * | 1973-12-26 | 1977-09-20 | Xerox Corporation | Microprocessor with parallel operation |
| JPS6046461B2 (ja) * | 1979-11-26 | 1985-10-16 | 株式会社日立製作所 | アクセス要求選択回路 |
| US4392200A (en) * | 1980-01-28 | 1983-07-05 | Digital Equipment Corporation | Cached multiprocessor system with pipeline timing |
| FR2491703B1 (fr) * | 1980-10-03 | 1988-04-29 | Thomson Csf | Dispositif de compression et dispositif de decompression temporelle de donnees et systeme de transmission comportant au moins l'un de ces dispositifs |
| US4866604A (en) * | 1981-10-01 | 1989-09-12 | Stratus Computer, Inc. | Digital data processing apparatus with pipelined memory cycles |
| US4547845A (en) * | 1982-04-21 | 1985-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Split-BUS multiprocessor system |
| JPS6068461A (ja) * | 1983-09-21 | 1985-04-19 | Nec Corp | メモリ多重アクセス装置 |
| DE3334797A1 (de) * | 1983-09-26 | 1985-01-03 | Siemens AG, 1000 Berlin und 8000 München | Multiprozessor-rechner, insbesondere multiprozessor-zentralsteuereinheit eines fernsprech-vermittlungssystems |
| GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
| US4621362A (en) * | 1984-06-04 | 1986-11-04 | International Business Machines Corp. | Routing architecture for a multi-ring local area network |
| US4685088A (en) * | 1985-04-15 | 1987-08-04 | International Business Machines Corporation | High performance memory system utilizing pipelining techniques |
| US4817006A (en) * | 1986-03-28 | 1989-03-28 | Thomas Engineering, Inc. | Pharmaceutical tablet press control mechanism |
| 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 |
| JPS63155340A (ja) * | 1986-12-19 | 1988-06-28 | Fujitsu Ltd | 記憶装置の読出し方式 |
| JPS6421786A (en) * | 1987-07-15 | 1989-01-25 | Nec Corp | Semiconductor memory |
| JPS6443894A (en) * | 1987-08-10 | 1989-02-16 | Nec Corp | Semiconductor memory |
| DE3779313D1 (de) * | 1987-08-20 | 1992-06-25 | Ibm | Schnittstellenmechanismus fuer informationsuebertragungssteuerung zwischen zwei vorrichtungen. |
| JP2557077B2 (ja) * | 1987-12-21 | 1996-11-27 | エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド | 同期アクセス方式のキヤラクタ表示システム |
| US5206833A (en) * | 1988-09-12 | 1993-04-27 | Acer Incorporated | Pipelined dual port RAM |
| US5220201A (en) * | 1990-06-26 | 1993-06-15 | Canon Kabushiki Kaisha | Phase-locked signal generator |
| JP2765245B2 (ja) * | 1991-02-07 | 1998-06-11 | 日本電気株式会社 | シリアルクロック発生回路 |
| JPH04262450A (ja) * | 1991-02-15 | 1992-09-17 | Omron Corp | プロセッサ |
| JP2776098B2 (ja) * | 1991-11-27 | 1998-07-16 | 松下電器産業株式会社 | クロック再生回路および時間軸誤差補正装置 |
-
1993
- 1993-04-22 US US08/052,073 patent/US5471607A/en not_active Expired - Lifetime
-
1994
- 1994-04-22 WO PCT/US1994/004455 patent/WO1994024628A1/en not_active Ceased
- 1994-04-22 JP JP6517429A patent/JPH08509082A/ja active Pending
- 1994-04-22 EP EP94914890A patent/EP0695444B1/de not_active Expired - Lifetime
- 1994-04-22 DE DE69432014T patent/DE69432014T2/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5471607A (en) | 1995-11-28 |
| DE69432014D1 (de) | 2003-02-20 |
| EP0695444B1 (de) | 2003-01-15 |
| EP0695444A1 (de) | 1996-02-07 |
| WO1994024628A1 (en) | 1994-10-27 |
| EP0695444A4 (de) | 2001-09-12 |
| JPH08509082A (ja) | 1996-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3887324T2 (de) | Speicheranordnung. | |
| DE69518286T2 (de) | Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister | |
| DE69124905T2 (de) | Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem | |
| DE69722117T2 (de) | Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung | |
| DE3784050T2 (de) | Ein paralleler datenprozessor. | |
| DE3689394T2 (de) | Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor. | |
| DE69130554T2 (de) | Registerschaltung zum Kopieren des Inhalts eines Registers in ein anderes Register | |
| DE3587843T2 (de) | Speicherzugriffsteuerungsanordnung. | |
| DE2953861C2 (de) | ||
| DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
| DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
| DE3687724T2 (de) | Digitalprozessorsteuerung. | |
| DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
| DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
| DE3686436T2 (de) | Speichersystem mit hoher leistung. | |
| DE69229464T2 (de) | Quasi radix-16 prozessor und verfahren | |
| DE68927869T2 (de) | Rechnersystem mit Hochgeschwindigkeitsdatenübertragungsfähigkeiten | |
| DE69305366T2 (de) | System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung | |
| DE69031524T2 (de) | Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen | |
| DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
| DE69219848T2 (de) | Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau | |
| DE3687867T2 (de) | Mikrorechner. | |
| DE69025650T2 (de) | Multiprozessorsystem mit Vektorpipelinen | |
| DE69719221T2 (de) | Skalierbarer doppelparalleler digitaler signalprozessor | |
| DE2813080A1 (de) | Einrichtung zur speicheradressierung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition |