DE4207945C2 - Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin - Google Patents

Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin

Info

Publication number
DE4207945C2
DE4207945C2 DE4207945A DE4207945A DE4207945C2 DE 4207945 C2 DE4207945 C2 DE 4207945C2 DE 4207945 A DE4207945 A DE 4207945A DE 4207945 A DE4207945 A DE 4207945A DE 4207945 C2 DE4207945 C2 DE 4207945C2
Authority
DE
Germany
Prior art keywords
port
memory
access
circuit
access conflict
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
DE4207945A
Other languages
English (en)
Other versions
DE4207945A1 (de
Inventor
Mitsuru Sugita
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4207945A1 publication Critical patent/DE4207945A1/de
Application granted granted Critical
Publication of DE4207945C2 publication Critical patent/DE4207945C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Description

Die vorliegende Erfindung bezieht sich auf einen Multiport- Speicher sowie auf ein Verfahren zum Entscheiden eines Zu­ griffs-Konflikts auf diesen Speicher. Insbesondere bezieht sich diese Erfindung auf einen Aufbau zum effektiven Vermeiden von einem Zugriffskonflikt bei Dual-Port-Speichern mit 2 Ports.
Ein Multiprozessorsystem wird oft zum Verbessern der Leistung eines Datenverarbeitungssystems benutzt. Ein Multiprozessor­ system ist ein System mit einer Mehrzahl von CPUs (Central Prozessing Units = Zentrale Verarbeitungseinheiten). Die CPUs arbeiten asynchron miteinander. Ein Multiport-Speicher wird benutzt, um Datenübertragung zwischen den CPUs auf asynchrone Weise durchzuführen. Der Multiport-Speicher umfaßt eine Mehrzahl von Ports, auf die voneinander unabhängig zugegriffen werden kann. Ein Multiport-Speicher mit 2 Ports wird Dual-Port- Speicher genannt.
Die Fig. 6 zeigt ein Schemadiagramm mit einem Aufbau eines Multiprozessorsystems. In Fig. 6 ist ein Dual-Port-Speicher 120 zwischen einer ersten CPU 100 und einer zweiten CPU 110 angeordnet. Der Dual-Port-Speicher 120 umfaßt einen L-Port 120L sowie einen R-Port 120R, auf die voneinander unabhängig zuge­ griffen werden kann. Der L-Port 120L umfaßt einen Steuerein­ gangs-Port CTL zum Empfangen eines Steuersignals, einen Daten­ eingabe/Ausgabeport IOL zum Eingeben/Ausgeben von Daten sowie einen Adreßeingabeport ADL zum Empfangen eines Adreßsignals. Entsprechend umfaßt der R-Port 120R einen Steuersignaleingabe­ port CTR, einen Dateneingabe/Ausgabeport IOR sowie einen Adreß­ eingabeport ADR. Die erste CPU 100 kann die Eingabe/Ausgabe von Daten mit dem L-Port 120L des Dual-Port-Speichers 120 vornehmen.
Der R-Port 120R kann die Eingabe/Ausgabe von Daten mit der zweiten CPU 110 vornehmen. Der L-Port 120L und der R-Port 120R können voneinander unabhängig arbeiten. Folglich können die CPUs 100 und 110 auf den Dual-Port-Speicher 120 zugreifen und asynchron zueinander Daten lesen bzw. schreiben. Folglich können zwischen der ersten CPU 100 und der zweiten CPU 110 Daten übertragen werden, während diese asynchron miteinander arbei­ ten, wobei der Dual-Port-Speicher 120 als Pufferspeicher benutzt wird.
Das Diagramm in Fig. 7 zeigt schematisch den Aufbau des Dual- Port-Speichers. Der Dual-Port-Speicher 120 in Fig. 7 umfaßt ein Speicherzellenfeld 211, das gemeinsam für den R-Port 120R und den L-Port 120L vorgesehen ist. Das Speicherzellenfeld 211, dessen Aufbau an späterer Stelle beschrieben wird, umfaßt eine Mehrzahl von in einer Matrix aus Zeilen und Spalten angeordne­ ten Speicherzellen.
Der R-Port 120R umfaßt einen Adreßpuffer 212 zum Empfangen einer Adresse A0 (R) bis An (R), die an den Adreßeingabeport ADR angelegt wird und aus der eine interne Adresse erzeugt wird, einen Zeilendekoder 213 zum Dekodieren einer internen Zeilenadresse des Adreßpuffers 212 und zum Auswählen einer entsprechenden Zeile im Speicherzellenfeld 211, einen Spalten­ dekoder 214 zum Dekodieren einer internen Speicheradresse aus dem Adreßpuffer 212 und zum Auswählen einer entsprechenden Spalte im Speicherzellenfeld 211, sowie einen I/O-Puffer (Eingabe/Ausgabe-Schaltung) 215 zum Übertragen von Daten zwischen dem Dateneingabe/Ausgabeport IOR und einer vom Zeilendekoder 213 und Spaltendekoder 215 ausgewählten Spei­ cherzelle. Der I/O-Puffer 215 erzeugt interne Schreibdaten aus Schreibdaten DIN (R), die an den Dateneingabe/Ausgabeport IOR angelegt werden. Der I/O-Puffer 215 erzeugt ebenfalls extern ausgelesene Daten DOUT (R) aus Daten einer Spalte, die vom Spaltendekoder 214 ausgewählt wurde.
Die Steuerung der Dateneingabe und -ausgabe des I/O-Puffers 215 wird durch eine Steuerschaltung (nicht gezeigt) vorgenommen. Obwohl die Fig. 7 zeigt, daß der I/O-Puffer 215 mit dem Spal­ tendekoder 214 verbunden ist, wird tatsächlich eine entspre­ chende Spalte durch den Spaltendekoder 214 im Speicherzellen­ feld 211 ausgewählt, und die ausgewählte Spalte wird mit einem internen Datenbus verbunden. Der I/O-Puffer 215 ist mit dem internen Datenbus verbunden. Die Fig. 7 zeigt nicht den Aufbau eines Auswahl-Gates zum Verbinden einer durch den Spaltende­ koder 214 ausgewählten Spalte mit dem internen Datenbus, um die Figur zu vereinfachen.
Entsprechend umfaßt der L-Port 120L einen Adreßpuffer 216 zum Erzeugen einer internen Adresse aus der Adresse A0 (L) bis An (L), die an den Adreßeingabepuffer ADL angelegt wird, einen Zeilendekoder 217 zum Dekodieren einer internen Zeilenadresse aus dem Adreßpuffer 216 und zum Auswählen einer entsprechenden Zeile im Speicherzellenfeld 211, sowie einen Spaltendekoder 218, der auf eine interne Spaltenadresse des Adreßpuffers 216 reagiert, zum Auswählen einer entsprechenden Spalte im Spei­ cherzellenfeld 211. Der L-Port 120L umfaßt ferner einen I/O-Puffer 219 zum Übertragen von Daten zwischen einer Speicherzel­ le im Speicherzellenfeld 211, die vom Zeilendekoder 217 und vom Spaltendekoder 218 ausgewählt wurde, sowie einen externen Be­ reich (CPU) der Vorrichtung. Im Datenschreibebetrieb erzeugt der I/O-Puffer 219 interne Schreibdaten aus externen Schreib­ daten DI (L), die an den Dateneingabe/Ausgabeport IOL angelegt werden, und überträgt diese auf eine Spalte innerhalb des Spei­ cherzellenfeldes 211, die vom Spaltendekoder 218 ausgewählt wurde. Beim Datenlesebetrieb erzeugt der I/O-Puffer 219 extern ausgelesene Daten DOUT (L) aus Daten einer Spalte im Speicher­ zellenfeld 211, die vom Spaltendekoder 218 ausgewählt wurde, und überträgt diese an den Dateneingabe/Ausgabeport IOL.
Die mit dem R-Port 120R und dem L-Port 120L verbundenen CPUs 110 und 100 können eine Adressierung unabhängig voneinander vornehmen. Der in Fig. 7 gezeigte Dual-Port-Speicher 120 um­ faßt eine L-Port-Steuerschaltung sowie eine R-Port-Steuer­ schaltung, die jeweils nicht im einzelnen gezeigt sind, und jeder Port kann voneinander unabhängig arbeiten, unter der Steuerung der Steuerschaltungen. Folglich können die CPU 100 und die CPU 110 auf asynchrone Weise arbeiten und das Adressie­ ren und Lesen bzw. Schreiben von Daten in bzw. aus einer ent­ sprechenden Speicherzelle vornehmen.
Da die CPU 100 und die CPU 110 voneinander unabhängig arbeiten, existieren einige Fälle, in denen eine Adresse A0 (L) bis An (L), die an den L-Port 120L angelegt wird, dieselbe ist wie eine Adresse AO (R) bis An (R), die an den R-Port 120R angelegt wird, und dieselbe Speicherzelle wird im Speicherzellenfeld 211 angewählt. Ein Zustand, bei dem die Adresse A0 (L) bis An (L) an den L-Port-120L vollständig dieselbe ist, wie die Adresse A0 (R) bis An (R) an den R-Port 120R wird "Adreßkonflikt" oder "Zugriffskonflikt" genannt. Wenn ein derartiger Adreßkonflikt oder Zugriffskonflikt bewirkt wird, entsteht eine unvorteil­ hafte Situation in dem Fall, daß entweder der L-Port 120L oder R-Port 120R sich in einem Datenschreibemodus befinden, anderer­ seits ergibt sich kein Problem, wenn beide sich in einem Daten­ lesemodus befinden. Eine Beschreibung dieser Situation wird nachfolgend vorgenommen.
Das Schaltbild in Fig. 8 zeigt den Aufbau eines Bereiches im Speicherzellenfeld 1 mit einer Speicherzelle eines Bits. Eine Speicherzelle MC in Fig. 8 hat eine Speicherzellenstruktur vom Flip-Flop-Typ. Die Fig. 8 zeigt den Aufbau einer Verriege­ lungsschaltung aus Invertern, in der die Speicherzelle MC ein Paar von antiparallel verbundenen Invertern umfaßt. Speicher­ knoten Na und Nb in der Speicherzelle MC verriegeln zueinander komplementäre Daten.
Zwei Wortleitungen WLL und WLR sowie 2 Paare von Bitleitungen BLL und BLR sind für die Speicherzelle MC vorgesehen. Ein Wort­ leitungstreibersignal WLL des Zeilendekoders 217 für den in Fig. 7 gezeigten L-Port wird zur Wortleitung WLL übertragen, und ein Wortleitungstreibersignal WLR des Zeilendekoders 213 für den in Fig. 7 gezeigten R-Port wird zur Wortleitung WLR über­ tragen. In diesem Fall sind eine Signalleitung und ein auf dieser Signalleitung zu übertragendes Signal mit demselben Bezugszeichen versehen. Eine Zeile von Speicherzellen ist mit den Wortleitungen WLL und WLR verbunden.
Das Bitleitungspaar BLL umfaßt Bitleitungen BLLa und BLLb, auf denen zueinander komplementäre Daten übertragen werden. Das Bitleitungspaar BLR umfaßt Bitleitungen BLRa und BLRb, auf denen zueinander komplementäre Daten übertragen werden.
Für die Speicherzelle MC sind Transfergate-Transistoren STLa und STLb vorgesehen, die auf ein Signalpotential auf der Wort­ leitung WLL zum Verbinden der Speicherknoten Na und Nb der Speicherzelle MC mit den Bitleitungen BLLa bzw. BLLb reagieren, sowie Transfergate-Transistoren STRa und STRb, die auf ein Si­ gnalpotential auf der Wortleitung BLR reagieren, zum Verbinden der Speicherknoten Na und Nb mit den Bitleitungen BLRa bzw. BLRb.
Für das Bitleitungspaar BLL sind Spaltenauswahlgates CSLa und CSLb vorgesehen, die als Reaktion auf ein Spaltenauswahlsignal CDLi des Spaltendekoders 218 für den in Fig. 7 gezeigten L-Port eingeschaltet werden, zum Verbinden der Bitleitungen BLLa und BLLb mit internen Datenbusleitungen CBLa bzw. CBLb für den L-Port.
Für das Bitleitungspaar BLR sind Spaltenauswahlgates CSRa und CSRb vorgesehen, die als Reaktion auf ein Spaltenauswahlsignal CDRi des Spaltendekoders 214 für den in Fig. 7 gezeigten R-Port eingeschaltet werden, zum Verbinden der Bitleitungen BLRa und BLRb mit internen Datenbusleitungen CBRa und CBRb für den R-Port.
Eine Spalte von Speicherzellen ist mit den Bitleitungspaaren BLL und BLR verbunden. Die internen Datenbusleitungen CBLa und CBLb bilden einen internen Datenbus CBL, und interne Datenbus­ leitungen CBRa und CBRb bilden einen internen Datenbus CBR. Der interne Datenbus CBL ist mit dem I/O-Puffer 219 des in Fig. 7 gezeigten L-Ports verbunden, und der interne Datenbus CBR ist mit dem I/O-Puffer 215 des in Fig. 7 gezeigten R-Ports verbunden.
Wenn bei dem Aufbau in Fig. 8 die Wortleitung WLL ausgewählt wird, ist die Speicherzelle MC mit dem Bitleitungspaar BLL (Bitleitungen BLLa und BLLb) verbunden. Wenn die Wortleitung BLR ausgewählt wird, ist die Speicherzelle MC mit dem Bitlei­ tungspaar BLR (Bitleitung BLRa und Bitleitung BLRb) verbunden. Die Bitleitungspaare BLL und BLR sind mit internen Datenbussen CBL und CBR über Spaltenauswahlsignale CDLi bzw. CDRi verbunden.
Im Fall eines Adressenkonfliktes oder Zugriffskonfliktes werden die Wortleitungen WLL und WLR gleichzeitig ausgewählt, und die Bitleitungspaare BLL und BLR werden ebenfalls ausgewählt.
Wenn der L-Port 120L und der R-Port 120R sich beide im Datenle­ semodus befinden, werden Daten der Speicherzelle MC auf gemein­ same interne Datenbusse CBL und CBR übertragen, und es entsteht kein Problem.
Jetzt wird der Fall betrachtet, daß der L-Port 120L Daten in die Speicherzelle MC einschreibt, und der R-Port 120R aus der­ selben Speicherzelle MC Daten ausliest. Wenn Daten in die Spei­ cherzelle MC durch den L-Port 120L eingeschrieben werden, ändert sich der Inhalt in der Speicherzelle MC entsprechend der eingeschriebenen Daten. Folglich kann der R-Port 120R nicht den in der Speicherzelle MC gespeicherten Inhalt vor dem Daten­ schreiben auslesen, so daß korrekte Daten nicht ausgelesen werden können. Das heißt, bezogen auf den zeitlichen Zu­ sammenhang zwischen dem Zeitpunkt des Auslesens von Daten aus dem R-Port 120R und dem Zeitpunkt des Wechsels des Inhalts der Speicherzelle MC durch das Datenschreiben über den L-Port 120L gibt es die Fälle, daß (1) Daten eines geänderten Inhaltes aus der Speicherzelle MC ausgelesen werden, (2) Daten vor dem Wechsel ausgelesen werden, und (3) der Zeitpunkt des Datenle­ sens mit dem Zeitpunkt des Datenwechsel gerade übereinstimmt (ein Kreuzungspunkt von Information auf den Bitleitungen), so daß Daten nicht festgesetzt sind und daher nicht korrekt aus­ gelesen werden können.
Daher ist es im Fall des Adressenkonfliktes notwendig, eine Adressenentscheidung (Arbitration) durchzuführen, wobei, wenn mindestens eine der CPUs Daten schreiben will, Zugriff über nur einen Port zugelassen wird und der Zugriff über den anderen Port verhindert wird.
Eine Konfliktvermeidungsschaltung 220, wie in Fig. 7 gezeigt, ist im allgemeinen vorgesehen, um einen derartigen Zugriffs­ konflikt zu verhindern. Die Konfliktvermeidungsschaltung 220 empfängt eine Adresse ADL und ein Chipauswahlsignal *CSL an den L-Port sowie eine Adresse ADR und ein Chipauswahlsignal *CSR an den R-Port. Die Konfliktvermeidungsschaltung 220 entscheidet, welche der Adressen ADL und ADR der 2 Ports zuerst behandelt wird, wenn die Adresse ADL des L-Ports und Adresse ADR des R-Ports miteinander übereinstimmen. Entsprechend dem Ergebnis der Bestimmung akzeptiert die Konfliktvermeidungsschaltung 220 den Zugriff auf den Port, für den die Adresse zuerst geklärt wird, wodurch es möglich wird, auf den Port zuzugreifen, während ein Besetztsignal BUSY erzeugt wird, welches das Verbot des Zugriffs auf den anderen Port anzeigt und den Datenzugriff über den anderen Port verhindert.
Als Verfahren für die Konfliktvermeidungsschaltung 220 zum Be­ stimmen, über welchen Port zuerst zugegriffen werden darf, gibt es 2 Verfahren zum Erkennen des Änderungspunkts der Adresse und zum Erkennen des Punktes, an dem das Chipauswahlsignal in einen aktiven Zustand verbracht wird. Einen spezifischen Aufbau einer derartigen Konfliktvermeidungsschaltung wird beispielsweise in der Japanischen Patentoffenlegungsschrift Nr. 1-303694 sowie der Japanischen Patentoffenlegungsschrift Nr. 62-217481 beschrieben.
Wenn diese Konfliktvermeidungsschaltung 220 benutzt wird, wird daher, selbst wenn die Adressen der 2 Ports identisch sind, der Zugriff nur für den Port erlaubt, für den die Adresse zuerst geklärt ist, so daß kein Adreßkonflikt bewirkt wird und die Daten korrekt verarbeitet werden können.
Während die Bitbreite von Daten in einem derartigen Dual-Port-Speicher in vielen Fällen 8 Bit beträgt, ist die Datenbitbreite in den letzten Jahren kontinuierlich angestiegen, wie z. B. auf 16 Bit oder 32 Bit bei einer CPU. In einem derartigen Fall ist es notwendig, eine Mehrzahl von Dual-Port-Speichern zu benutzen. Wie in Fig. 9 gezeigt, sind Wortdaten und Bytedaten in den Daten für eine 16 Bit-CPU enthalten, selbst wenn ein Dual-Port-Speicher einer Datenbreite von 16 Bit für eine 16 Bit-CPU eingesetzt wird. Für einen Dual-Port-Speicher mit 16 Bit ist es ebenfalls notwendig, den 16 Bit Dual-Port-Speicher in 2 Speicherblöcke einzuteilen, das heißt in einen Byte- Speicher höherer Ordnung und einen Byte-Speicher niedrigerer Ordnung, und den Zugriff auf 8 Bit-Basis zu ermöglichen, da die Wortdaten 16 Bit umfassen und die Bytedaten 8 Bit umfassen.
Wenn 2 Speicher oder Speicherblöcke eingesetzt werden und eine Konfliktvermeidungsschaltung für jeden Speicher oder Speicher­ block auf diese Weise vorgesehen ist, kann ein Zugriffskonflikt nicht effizient vermieden werden. Dieses Problem wird nach­ folgend diskutiert.
Fig. 10 zeigt ein Diagramm mit einer Schemastruktur eines Dual-Port-Speichers von 16 Bit, auf den auf 8 Bit-Basis zuge­ griffen werden kann. Ein Dual-Port-Speicher 300 umfaßt einen Speicherblock (oder Speicherchip) 310 eines höherwertigen Bytes zum Bereitstellen von Daten des höherwertigen Bytes sowie einen Speicherblock (oder Speicherchip) 320 eines niederwertigen Bytes zum Eingeben/Ausgeben von Daten eines niederwertigen Bytes. Für den Speicherblock des höherwertigen Bytes 310 ist eine Konfliktvermeidungsschaltung 301 vorgesehen, zum Vermeiden eines Konflikts mit den höherwertigen Bytedaten. Für den Spei­ cherblock des niederwertigen Byte 320 ist eine Konfliktvermei­ dungsschaltung 321 vorgesehen, zum Vermeiden eines Zugriffs­ konfliktes für die Daten des niederwertigen Byte. Der Speicher­ block des höherwertigen Bytes 310 gibt höherwertige Bytedaten DLH und DRH ein bzw. aus, unabhängig durch den L-Port bzw. den R-Port. Die Konfliktvermeidungsschaltung 311 bestimmt, ob ein Konflikt beim Zugriff über den L-Port und den R-Port für die jeweiligen höherwertigen Bytedaten vorliegt, führt dann eine Konfliktvermeidungsoperation entsprechend dem Ergebnis der Be­ stimmung durch und stellt Zugriffsaktivierungssignale (Besetztsignale) BYLH und BYRH bereit, die anzeigen, ob auf den L-Port bzw. den R-Port zugegriffen werden kann.
Der Speicherblock des niederwertigen Byte 320 gibt niederwer­ tige Bytedaten DLL und DRL über den L-Port und den R-Port ein bzw. aus. Eine Zugriffskonfliktvermeidungsschaltung 321 ent­ scheidet, ob ein Konflikt beim Zugreifen über den L-Port und den R-Port für die niederwertigen Bytedaten vorliegt, führt eine Zugriffskonfliktvermeidungsoperation entsprechend dem Er­ gebnis der Bestimmung durch und legt Zugriffsaktivierungs­ signale BYLL und BYRL an den L-Port bzw. den R-Port an. Im Fall des in Fig. 10 gezeigten Aufbaues führen die Zugriffskonflikt­ vermeidungsschaltung 311 für den Speicherblock 310 und die Zu­ griffskonfliktvermeidungsschaltung 321 für den Speicherblock des niederwertigen Byte 320 die Konfliktvermeidungsoperationen voneinander unabhängig durch. Folglich können bei diesem Aufbau, wenn der L-Port und R-Port auf Byte-Basis zugreifen, Daten entsprechend der Konfliktvermeidungsoperationen der je­ weiligen Konfliktvermeidungsschaltungen ein- bzw. ausgegeben werden.
Wenn auf einen Port auf Byte-Basis und auf den anderen Port auf Wortbasis zugegriffen wird, wird kein Adreßkonflikt bewirkt, da die Bytedaten und die Wortdaten normalerweise voneinander verschiedene Adressen haben, und Daten können entsprechend der Vermeidungsoperationen der Konfliktvermeidungsschaltungen 311 und 321 in diesem Fall ein- bzw. ausgegeben werden.
Wenn allerdings auf beide Ports auf Wortbasis zugegriffen wird, entsteht ein Problem. Die Konfliktvermeidungsschaltungen 311 und 321 haben jeweils unabhängige Schaltungsstrukturen. In diesem Fall kann das Bestimmungsergebnis der Konfliktvermei­ dungsschaltung 311 verschieden von dem der Konfliktvermeidungs­ schaltung 321 sein, da die Operationscharakteristika durch Flukta­ tionen in den Schaltungsparametern während des Herstellungspro­ zesses verschieden sind, und Signalverzögerungen auf Signal­ leitungen innerhalb der Schaltungen verschieden sind.
Beispielsweise kann ein Fall auftreten, daß die Konfliktver­ meidungsschaltung 311 der Daten des höherwertigen Byte dem L-Port die Priorität gibt, während die Konfliktvermeidungsschal­ tung 321 der niederwertigen Bytedaten dem R-Port die Priorität gibt. In diesem Fall kann die CPU Daten auf Wortbasis nicht ein- oder ausgeben. Für eine derartige Situation können 2 Fälle als Verfahren zum Zugriff auf Daten durch die CPU betrachtet werden, den Fall, daß (1) Daten auf der Basis eines Byte ein- bzw. ausgegeben werden, für das der Zugriff erlaubt ist, und auf die verbleibenden Daten erneut zugegriffen wird, oder diese in einen Wartezustand verbracht werden, oder der Fall, daß (2) der Zugriff wiederholt wird, bis Zugriff auf Wortbasis erlaubt wird. In jedem Fall wird die Verarbeitungsgeschwindigkeit der CPU deutlich verlangsamt.
Die Japanische Patentoffenlegungsschrift Nr. 63-293785 offenbart beispielsweise einen Aufbau, in welchem nur eine Zugriffskon­ fliktvermeidungsschaltung für eine Mehrzahl von Speicherschal­ tungen oder Speicherblöcken betrieben wird, und eine Zugriffs­ entscheidung (Arbitration) für alle Speicherschaltungen oder Speicherblöcke wird entsprechend dem Entscheidungsergebnis der einen Adreßkonfliktvermeidungsschaltung durchgeführt, um den Nachteil des Aufbaues zu vermeiden, daß Zugriffskonfliktver­ meidungsoperationen für die Mehrzahl von Speicherschaltungen oder Speicherblöcken unabhängig durchgeführt werden.
Die Fig. 11 zeigt ein Diagramm mit einem Außenaufbau einer in der oben erwähnten Druckschrift beschriebenen Speichervorrich­ tung zum Durchführen von Zugriffsentscheidungen für eine Mehr­ zahl von Speicherschaltungen (Speicherblöcken) mit einer in einem Block vorgesehenen Konfliktvermeidungsschaltung. Die Speichervorrichtung in Fig. 11 umfaßt Speicherschaltungen 410 und 420. Die Speicherschaltungen 410 und 420 können aus getrennten Chips gebildet sein, oder können auf demselben Chip gebildete Speicherblöcke sein, die unabhängig voneinander arbeiten können. Die Speicherschaltungen 410 und 420 weisen denselben Aufbau auf und umfassen L-Ports und R-Ports, auf die unabhängig zugegriffen werden kann. Die beiden L-Ports der Speicherschaltungen 410 und 420 bilden einen L-Port 440, und beide R-Ports der Speicherschaltungen 410 und 420 bilden einen R-Port 430. Auf die Speicherschaltung 410 und die Speicher­ schaltung 420 kann voneinander unabhängig zugegriffen werden.
Der L-Port der Speicherschaltung 410 umfaßt einen Anschluß *CSL zum Empfangen eines Chipauswahlsignales ΦUSL, einen Anschluß *CSIL zum Empfangen eines Chipauswahlsignales ΦLSL für die andere Speicherschaltung 420, einen Anschluß CONL zum Anlegen des Ergebnisses der Adreßkonfliktvermeidung, einen Anschluß I/OL zum Eingeben/Ausgeben von Daten sowie einen Adreßeingangs­ anschluß ADL zum Empfangen einer Adresse L. Der Anschluß CONL legt das Signal CONL an die CPU an, womit angezeigt wird, ob auf den Port zugegriffen werden kann, was einem normalen Besetztsignal (BUSY-Signal) entspricht.
Entsprechend umfaßt der R-Port der Speicherschaltung 410 einen Anschluß *CSR zum Empfangen eines Chipauswahlsignales ΦUSR, einen Anschluß *CSIR zum Empfangen eines Chipauswahlsignals ΦLSR, das an die andere Speicherschaltung 430 angelegt wird, einen Anschluß CONR zum Anlegen eines Signals CONR, das das Ergebnis der Konfliktvermeidungsbestimmung anzeigt, einen Dateneingabe/Ausgabeanschluß I/OR sowie einen Adreßeingabean­ schluß ADR zum Empfangen einer Adresse R. Die Speicherschaltung 410 umfaßt ferner einen Steueranschluß MM zum Empfangen eines Steuersignals ΦM zum Aktivieren/Deaktivieren der darin enthal­ tenen Adreßkonfliktvermeidungsschaltung.
Der L-Port der Speicherschaltung 430 umfaßt einen Anschluß *CSL zum Empfangen eines Chipauswahlsignals ΦLSL, einen Anschluß CONL zum Empfangen eines Signals CONL, das das Ergebnis der Adressenkonfliktvermeidungsbestimmung des Speichers 410 anzeigt, einen Anschluß I/OL zum Eingeben/Ausgeben von Daten sowie einen Adresseneingangsanschluß ADL zum Empfangen einer Adresse L. Entsprechend umfaßt der R-Port der Speicherschaltung 420 einen Anschluß *CSR zum Empfangen eines Chipauswahlsigna­ les ΦLSR, einen Anschluß CONR zum Empfangen eines Signals CNOR, das das Ergebnis der Konfliktvermeidungsbestimmung der Spei­ cherschaltung 410 anzeigt, einen Anschluß I/OR zum Einge­ ben/Ausgeben von Daten, einen Adreßeingangsanschluß ADR zum Em­ pfangen einer Adresse R sowie einen Anschluß MM zum Empfangen eines Steuersignals *ΦM zum Aktivieren/Deaktivieren einer darin enthaltenen Zugriffskonfliktvermeidungsschaltung. Das Steuer­ signal *ΦM ist ein invertiertes Signal des Steuersignals ΦM. Bei dem in Fig. 11 gezeigten Aufbau wird die in der Speicher­ schaltung 410 enthaltene Zugriffskonfliktvermeidungsschaltung aktiviert, und die Zugriffskonfliktvermeidungsschaltung in der Speicherschaltung 420 wird deaktiviert. Die Anschlüsse *CSIL und *CSIR der Speicherschaltung 420 werden beide in einen offe­ nen Zustand verbracht. Dieselbe Adresse L wird an den Adreßein­ gabeanschluß ADL der Speicherschaltung 410 und den Adreßeinga­ beanschluß ADL der Speicherschaltung 420 angelegt. Dieselbe Adresse R wird an den Adreßeingabeanschluß ADR der Speicher­ schaltung 410 und den Adreßeingabeanschluß ADR der Speicher­ schaltung 420 angelegt. Bei diesem Aufbau wählen die Chipaus­ wahlsignale ΦUSL, ΦSR, ΦLSL und ΦLSR nur höherwertige Bytdaten, nur niederwertige Bytdaten oder Wortdaten aus.
Bei dem in Fig. 11 gezeigten Aufbau wird die in der Speicher­ schaltung 410 enthaltene Zugriffskonfliktvermeidungsschaltung betrieben, um Signale CONL und CONR zum Anzeigen des Ergebnis­ ses der Konfliktvermeidungsentscheidung zu erzeugen, entspre­ chend der Signale ΦUSL, ΦUSR, ΦLSL und ΦLSR und der Adressen L und R, die an die Anschlüsse *CSL, *CSR, *CSIL, *CSIR, ADL und ADR angelegt werden.
Die Speicherschaltung 420 wird als Reaktion auf die Steuersi­ gnale ΦLSL und ΦLSR sowie die Adressen L (ADL) und R (ADR) aktiviert und schreibt/liest einem Port entsprechende Daten nach Maßgabe des das Ergebnis der Konfliktvermeidungsentschei­ dung anzeigenden Signales CONL und CONR der Speicherschaltung 410, wenn ein Adreßkonflikt bewirkt wird. Das heißt, in den Speicherschaltungen 410 und 420 werden Daten geschrieben bzw. ausgelesen entsprechend dem Ergebnis der Vermeidungsbestimmung der Adreßkonfliktvermeidungsschaltung in der Speicherschaltung 410.
Wenn Daten in die Speicherschaltung 420 eingeschrieben bzw. von dort ausgelesen werden, erreichen die Chipauswahlsignale ΦLSL und ΦLSR "L"-Pegel als aktivem Zustand, und die Chipauswahlsi­ gnale ΦUSL und ΦUSR erreichen "H" als inaktiven Zustand. Die Signale ΦLSL und ΦLSR werden ebenfalls an die Anschlüsse *CSIL und *CSIR der Speicherschaltung 410 angelegt. Die Speicher­ schaltung 410 betreibt die dort enthaltene Adreßkonfliktvermei­ dungsschaltung entsprechend den an die Anschlüsse *CSIL und *CSIR angelegten Signale, erkennt einen Konflikt zwischen an die Eingabeanschlüsse ADL und ADR angelegten Adressen, führt die Konfliktvermeidungsoperation durch und legt das Ergebnis der Bestimmung an die Anschlüsse CONL und CONR an. In der Spei­ cherschaltung 420 werden Daten für einen Port entsprechend der Anzeigesignale CONL und CONR für das Ergebnis der Konfliktver­ meidungsbestimmung aus der Speicherschaltung 410 eingeschrieben bzw. ausgelesen, wenn ein Konflikt bewirkt wird.
Das Schaltbild in Fig. 12 zeigt den Aufbau eines Bereiches, der in der in Fig. 11 gezeigten Speicherschaltung mit der Adreßkonfliktvermeidungsoperation im Zusammenhang steht. In Fig. 12 umfaßt ein Konfliktvermeidungssteuerbereich ein AND-Gatter AN1 zum Empfangen eines Chipauswahlsignales an den An­ schlüssen *CSL und *CSIL, ein AND-Gatter AN6 zum Empfangen der Chipauswahlsignale an den Anschlüssen *CSIR und *CSR, sowie eine Konfliktvermeidungsschaltung 450 zum Durchführen einer Be­ stimmungsoperation, um einen Konflikt durch die Ausgänge der AND-Gatter AN1 und AN6 sowie der internen Steuersignale ΦL und ΦR zu verhindern, um ein Bestimmungsergebnissignal und ein Portaktivierungssignal entsprechend dem Bestimmungsergebnis be­ reitzustellen.
Die internen Steuersignale ΦL und ΦR können Portaktivierungssi­ gnale einer Speichersteuerung (nicht gezeigt) sein, die für einen Speicherport vorgesehen ist. Die internen Steuersignale ΦL und ΦR können interne Adreßsignale sein. Wenn die Steuersi­ gnale ΦL und ΦR interne Steuersignale, das heißt Portaktivie­ rungssignale sind, wird ein internes Adreßsignal zusätzlich an die Konfliktvermeidungsschaltung 450 angelegt. Die Konfliktver­ meidungsschaltung 450 führt eine Konfliktvermeidungsoperation durch, in Abhängigkeit davon, ob ein Konflikt bewirkt wird, und stellt entsprechend dem Ergebnis der Bestimmung ein Vermei­ dungsbestimmungsergebnissignal und ein Portaktivierungssignal entsprechend den Chipauswahlsignalen ΦUSL, ΦLSL, ΦUSR und *ΦLSR an den Anschlüssen *CSL, *CSIL, *CSIR und *CSR sowie der Adressen ADL und ADR bereit.
Der Konfliktvermeidungssteuerbereich umfaßt ferner Dreizu­ standspuffer T1 und T2, die auf ein an dem Anschluß MM angelegtes Steuersignal reagieren, zum Setzen des Anschlusses CONL entweder als Eingangsanschluß oder als Ausgangsanschluß, einen Dreizustandspuffer T3 zum Übertragen eines Vermeidungs­ bestimmungsoperationsergebnissignals der Konfliktvermeidungs­ schaltung 450 an den Dreizustandspuffer T2, ein AND-Gatter AN2, welches aktiviert/deaktiviert entsprechend des an den Anschluß MM angelegten Steuersignales wird, zum Erzeugen eines Logikpro­ dukts eines internen Steuersignals und eines Ausgangs der Dreizustandspuffer T3 oder T1, ein AND-Gatter AN3 zum Bilden eines Logikprodukts eines L-Portaktivierungssignals der Kon­ fliktvermeidungsschaltung 450 und des an den Anschluß MM ange­ legten Steuersignals, sowie ein OR-Gatter O1 zum Bilden einer logischen Summe der Ausgänge der AND-Gatter AN2 und AN3. Ein L-Portaktivierungssignal ΦLE wird vom OR-Gatter O1 bereitge­ stellt. Das Steuersignal ΦLE kann ein Steuersignal zum Aktivie­ ren/Deaktivieren der Eingabe-/Ausgabeschaltung des L-Ports sein. Das Steuersignal ΦLE kann ein an einem Dekoder angelegtes Signal sein, wenn das interne Steuersignal ΦL ein externes Adreßsignal ist.
So wie der L-Port umfaßt der R-Port Dreizustandspuffer T5 und T6, die auf ein an den Steueranschluß MM angelegtes Steuersi­ gnal reagieren, zum Umschalten des Anschlusses CONR als Einga­ beanschluß oder als Ausgabeanschluß, einen Dreizustandspuffer T4 zum Übertragen eines Konfliktvermeidungserkennungsergebnis­ signals der Konfliktvermeidungsschaltung 450, ein AND-Gatter AN5, das entsprechend des an den Anschluß MM angelegten Signals aktiviert oder deaktiviert wird, zum Bilden eines Logikpro­ dukts eines internen Steuersignals ΦR und eines Ausgangs des Dreizustandspuffers T4, ein AND-Gatter AN4 zum Bilden eines Logikprodukts eines R-Portaktivierungssignals der Konfliktver­ meidungsschaltung 450 und des an den Anschluß MM angelegten Steuersignals, sowie ein OR-Gatter O2 zum Bilden einer Logik­ summe der Ausgänge der AND-Gatter AN4 und AN5. Das R-Portak­ tivierungssignal ΦRE wird vom OR-Gatter O2 bereitgestellt. Das Steuersignal ΦRE kann auch ein internes Adreßsignal sein, daß dem Dekoder auf dieselbe Weise wie das Steuersignal ΦLE bereitgestellt wird, oder kann ein Steuersignal zum Aktivieren/Deaktivieren der Eingabe-/Ausgabeschaltung sein. Dessen Betrieb wird nachfolgend beschrieben.
Wenn das an den Anschluß MM angelegte Steuersignal auf "H"-Pegel gesetzt wird, wird der Ausgang des Dreizustandspuffers T1 in einen Hochimpedanzzustand versetzt, der Dreizustandspuffer T2 wird in einem Betriebszustand versetzt und der Anschluß CONL wird ein Ausgabeanschluß zum Bereitstellen eines Vermeidungser­ kennungsergebnissignals CONL. Die Dreizustandspuffer T3 und T4 werden ebenfalls in den Betriebszustand versetzt, in welchem sie ein Konfliktvermeidungserkennungsergebnissignal der Konfliktvermeidungsschaltung 450 übertragen. Ferner werden die Ausgänge der AND-Gatter AN2 und AN5 auf "L" fixiert, und die AND-Gatter AN3 und AN4 werden in einen Zustand verbracht, in welchem sie ein L-Portaktivierungssignal und ein R-Portaktivie­ rungssignal der Konfliktvermeidungsschaltung 450 übertragen. In diesem Zustand legen die OR-Gatter O1 und O2 die Ausgangssigna­ le der AND-Gatter AN3 und AN4 als L-Portaktivierungssignal ΦLE bzw. als R-Portaktivierungssignal ΦRE an.
Wenn ein Signal "H" an den Anschluß MM angelegt wird, wird der Dreizustandspuffer T5 aktiviert, der Ausgang des Dreizustands­ puffers T6 in den Hochimpedanzzustand verbracht und der Anschluß CONR als Ausgabeanschluß gesetzt.
Wenn in diesem Betriebszustand die Chipauswahlsignale ΦUSL und ΦUSR an die Anschlüsse *CSL und *CSR angelegt werden, wird ein darin enthaltener Speichersteuerkreis deaktiviert und ein in­ ternes Steuersignal zum Aktivieren jedes Ports wird erzeugt. Die Steuersignale ΦUSL und ΦUSR erreichen "L", wenn beide aktiv sind, und erreichen "H", wenn beide inaktiv sind. Folglich werden die Chipauswahlsignale ΦUSL und ΦUSR an die Konfliktver­ meidungsschaltung 450 über die AND-Gatter AN1 und AN6 angelegt. Die Konfliktvermeidungsschaltung 450 nimmt zur Konfliktvermei­ dung eine Entscheidung vor, entsprechend der Ausgabesignale der AND-Gatter AN1 und AN6, der Steuersignale ΦL und ΦR sowie der internen Adressen ADL und ADR (in der Figur nicht klar gezeigt, für den Fall, daß die Signale ΦL und ΦR keine interne Adresse enthalten).
Das Bestimmungsergebnis der Konfliktvermeidungsschaltung 450 wird vom Anschluß CONL über die Dreizustandspuffer T3 und T2 bereitgestellt, und ebenfalls über den Anschluß CONR über die Dreizustandspuffer T4 und T5 bereitgestellt. Die Bestimmungs­ ergebnissignale der Anschlüsse CONL und CONR werden an Anschlüsse CONL und CONR der anderen Speicherschaltung 420 an­ gelegt, und eine Zugriffskonfliktvermeidungsoperation wird im anderen Speicher 420 entsprechend den Bestimmungsergebnissi­ gnalen CONL und CONR durchgeführt.
Die AND-Gatter AN3 und AN4 übertragen jeweils ein Portaktivie­ rungssignal der Konfliktvermeidungsschaltung 450. Die OR-Gatter O1 und O2 stellen Portaktivierungssignale ΦLE und ΦRE bereit.
Wenn die Chipaktivierungssignale ΦLSL und ΦLSR an die Anschlüs­ se *CSIL und *CSIR der anderen Speicherschaltung 420 angelegt sind, wird die Speichersteuerung in der Speicherschaltung 410 nicht aktiviert. Zu diesem Zeitpunkt führt die Konfliktvermei­ dungsschaltung 450 die Konfliktvermeidungsoperation entspre­ chend den Chipauswahlsignalen der AND-Gatter AN1 und AN6 und der internen Adresse durch. Wenn die internen Steuersignale ΦL und ΦR interne Steuersignale sind, befinden sich beide in einem deaktivierten Zustand, ein Portaktivierungssignal wird nicht von der Konfliktvermeidungsschaltung 450 bereitgestellt, und die Portaktivierungssignale ΦLE und ΦRE sind in einem inaktiven Zustand. Wenn die Steuersignale ΦL und ΦR Adreßsignale sind, während die Signale ΦLE und ΦRE erzeugt werden, befindet sich die Speichersteuerung in jedem Port in einem nichtaktivierten Zustand, so daß eine Auswahloperation für den Speicher nicht durchgeführt wird und jeder Port in dem Speicher deaktiviert wird.
Die Konfliktvermeidungsschaltung 450 führt eine Konfliktvermei­ dungserkennungsoperation entsprechend den Adressen und den Chipauswahlsignalen (den Ausgängen der AND-Gatter AN1 und AN6) durch und legt ein das Ergebnis der Bestimmung anzeigendes Si­ gnal an den Anschluß CONL über die Dreizustandspuffer T3 und T4 an, sowie an den Anschluß CONR über die Dreizustandspuffer T4 und T5. Wenn folglich auf den anderen Speicher, das heißt den Speicher mit dem höherwertigen Byte zugegriffen wird, werden die Ports des Speichers selektiv aktiviert, entsprechend den Vermeidungsbestimmungsergebnissignalen der Anschlüsse CONL und CONR.
Nachfolgend wird eine Beschreibung des Betriebes in einem Fall vorgenommen, bei dem der Anschluß MM auf "L" gesetzt ist. Dies entspricht dem Betrieb der Konfliktvermeidungsschaltung in der Speicherschaltung 420 nach Fig. 11. Zu diesem Zeitpunkt werden die Dreizustandspuffer T2, T3 und T5 mit ihren Ausgängen in einen Hochimpedanzzustand des deaktivierten Zustands versetzt, und die Dreizustandspuffer T1 und T6 werden aktiviert. Die Aus­ gänge der AND-Gatter AN3 und AN4 werden auf "L" festgelegt, und die AND-Gatter AN2 und AN5 werden aktiviert. Folglich entspre­ chen in diesem Fall die Portaktivierungssignale ΦLE und ΦRE den Ausgängen der AND-Gatter AN2 und AN5, da die OR-Gatter O1 und O2 die Ausgänge der AND-Gatter AN2 und AN5 übertragen.
Wenn der Anschluß MM auf "L"-Pegel gesetzt ist, werden die Be­ stimmungsergebnissignale CONL und CONR an die AND-Gatter AN2 und AN5 über die Dreizustandspuffer T1 und T6 angelegt. Die AND-Gatter AN2 und AN5 lassen die internen Steuersignale ΦL und ΦR entsprechend den Vermeidungbestimmungsergebnissignalen CONL und CONR passieren. Als Ergebnis werden die internen Steuersi­ gnale ΦLE und ΦRE bereitgestellt. Da in diesem Fall das Chipak­ tivierungssignal ΦLSL an den Anschluß *CSL angelegt worden ist und das Chipauswahlsignal ΦLSR an den Anschluß *CSR in der Speicherschaltung 420 angelegt worden ist, wo sich der Anschluß MM auf "L" befindet, befindet sich jede Speichersteuerung in dem operativen Zustand, und die internen Steuersignale ΦL und ΦR werden erzeugt.
Wie oben beschrieben, sollen Nachteile überwunden werden, die bewirkt werden, wenn die Konfliktvermeidungsschaltungen für die Speicherschaltungen unabhängig in einem Aufbau betrieben wer­ den, bei dem eine Mehrzahl von Speicherschaltungen zueinander parallel betreibbar ist, indem eine Zugriffskonfliktvermei­ dungsschaltung nur in einer Speicherschaltung betrieben wird, zum Steuern des Betriebes der Mehrzahl von Speicherschaltungen.
Das folgende Problem entsteht bei einem Aufbau, bei dem eine Adreßkonfliktvermeidungsbestimmung bezogen auf eine Mehrzahl von Speicherschaltungen vorgenommen wird, wobei eine Zugriffs­ konfliktvermeidungsschaltung wie oben beschrieben verwendet wird. Wenn auf höherwertige Bytedaten beispielsweise vom L-Port und auf niederwertige Bytedaten vom R-Port zugegriffen wird, wird kein Zugriffskonflikt bewirkt, so daß es nicht nötig ist, eine Konfliktvermeidungsbestimmungsoperation durchzuführen. Wenn eine gemeinsam vorgesehene Adreßkonfliktvermeidungsschal­ tung auf diese Weise benutzt wird, wird allerdings die Zugriffskonfliktvermeidungsbestimmungsoperation durchgeführt (AND-Gatter AN1 und AN6 erkennen den Zugriff), und Ports jedes Speichers werden entsprechend dem Bestimmungsergebnis gesteu­ ert. Folglich wird in diesem Fall eine fehlerhafte Portsteue­ rung durchgeführt, wodurch die CPU in einen Wartezustand versetzt wird, so daß Daten nicht mit hoher Geschwindigkeit verarbeitet werden können.
Wenn auf Bytedaten von einem Port und auf Wortdaten von dem anderen Port zugegriffen wird, wird allgemein kein Zugriffs­ konflikt erzeugt, da Bytedaten und Wortdaten normalerweise zu­ einander verschiedene Adressen haben. In diesem Fall wird auch die Zugriffskonfliktvermeidungsbestimmungsoperation durchge­ führt, das heißt eine unnötige Bestimmungsoperation durchge­ führt, so daß die Zugriffszeit für die CPU auf nachteilige Weise vergrößert wird.
Im Aufbau der herkömmlichen Zugriffskonfliktvermeidungsschal­ tungen besteht daher der Nachteil, daß eine direkte Zugriffs­ konfliktvermeidung nicht durchgeführt werden kann, und daß nutzlose Konfliktzugriffsvermeidungsoperationen für gewisse Kombinationen von Adreßkonflikten durchgeführt werden. Die oben­ erwähnte Druckschrift offenbart ebenfalls einen Aufbau, bei welchen die Zugriffskonfliktvermeidungsschaltung andauernd in einer Speicherschaltung aktiviert ist, der Zugriffskonflikt­ vermeidungsbetrieb für die andere Speicherschaltung wird ge­ steuert, wenn ein Zugriffskonflikt in der einen Speicherschal­ tung bewirkt wird, während die Zugriffskonfliktvermeidungs­ operationen unabhängig ausgeführt werden, wenn kein Zugriffs­ konflikt in einer Speicherschaltung erzeugt wird. Allerdings wird auch in diesem Aufbau dasselbe Problem bewirkt, wobei auf einen Zugriffskonflikt in der einen Speicherschaltung erkannt wird, wenn auf die höherwertigen Bytedaten und die niederwerti­ gen Bytedaten unabhängig beim byteweisen Datenzugriff zugegrif­ fen wird.
Ziel der vorliegenden Erfindung ist es daher, einen Multiport- Speicher zu schaffen, der in der Lage ist, eine effektive Zu­ griffskonfliktvermeidung für eine beliebige Kombination von Zugriffskonflikten vorzunehmen. Zusätzlich soll ein Verfahren zum effektiven Entscheiden von Zugriffskonflikten in einem Multiport-Speicher geschaffen werden.
Die Aufgabe wird durch den Multiport-Speicher nach dem Patent­ anspruch 1 sowie das Verfahren zum Vermeiden eines Zugriffs­ konflikts nach dem Patentanspruch 8 gelöst.
Vorteilhafte Weiterbildungen sind in den Unteransprüchen be­ schrieben.
Ein Multiport-Speicher umfaßt eine Mehrzahl von Speicher­ blöcken, auf die unabhängig über erste und zweite Ports zugegriffen werden kann, eine für jede der Blocks vorgesehene Adreßkonflikterkennungsvorrichtung zum Erkennen, ob ein Adreßkonflikt für einen zugeordneten Speicherkonflikt vorliegt, eine entsprechend der Zugriffskonflikterkennungseinrichtung vorgesehene Zugriffskonfliktvermeidungsvorrichtung, die auf ein Erkennungssignal einer zugeordneten Zugriffskonflikterkennungs­ vorrichtung reagiert, zum Erzeugen eines Steuersignals zum Ver­ meiden eines Zugriffskonflikts für einen zugeordneten Speicher­ block, eine auf Ausgabesignale der Mehrzahl von Zugriffskon­ flikterkennungsvorrichtungen reagierende Vorrichtung zum selek­ tiven Durchlassen von Ausgabesignalen der Mehrzahl von Zu­ griffskonfliktvermeidungsvorrichtungen sowie Vorrichtungen zum Aktivieren eines Ports eines zugeordneten Speicherblocks ent­ sprechend eines Steuersignales der von der Auswahlvorrichtung ausgewählten Zugriffskonfliktvermeidungsvorrichtung.
Die Auswahlvorrichtung wählt das Ausgabesignal jeder Zugriffs­ konfliktvermeidungsvorrichtung in Abhängigkeit davon aus, ob ein Zugriffskonflikt in der Mehrzahl von Speicherblocks ent­ steht. Diese Portaktivierungsvorrichtung aktiviert den Port, so daß die Zugriffskonfliktvermeidung entsprechend der Ausgabe der Auswahlvorrichtung durchgeführt wird. Da die Auswahlvorrichtung ein Ausgabesignal der Ausgabesignale der Konfliktvermeidungs­ vorrichtung auswählt, so daß die geeignetste Zugriffskon­ fliktvermeidung entsprechend der Kombination der entstehenden Zugriffskonflikte durchgeführt wird, wird es möglich, für eine beliebige Kombination von Zugriffskonflikten die geeignetste Zugriffskonfliktvermeidung durchzuführen.
Bei einem Verfahren zum Entscheiden von Zugriffskonflikten wird die Entscheidung für jeden Speicherblock unabhängig durchge­ führt. Wenn allerdings alle Speicherblöcke einen Zugriffskon­ flikt bewirken, wird eine Entscheidung für einen Speicherblock an alle verbleibenden Speicherblöcke angelegt. Folglich können Zugriffskonflikte effektiv und optimal vermieden werden.
Es folgt eine Beschreibung von Ausführungsbeispielen anhand der Figuren.
Von den Figuren zeigen:
Fig. 1 ein Schemadiagramm mit der Gesamtstruktur eines Dual-Port-Speichers entsprechend einer Ausfüh­ rungsform;
Fig. 2 ein Diagramm mit einem Beispiel des Aufbaues eines Bereiches für den Speicher höherwertiger Bytedaten nach Fig. 1;
Fig. 3 ein Diagramm mit einem anderen Beispiel des Aufbaues des Speicherbereiches für höherwerti­ ge Bytedaten nach Fig. 1;
Fig. 4 ein Diagramm mit einem weiteren Beispiel des Aufbaues des Speicherbereiches für höherwer­ tige Bytedaten nach Fig. 1;
Fig. 5 ein Diagramm mit einem Beispiel des Aufbaues eines Dual-Port-Speichersystems entsprechend einer anderen Ausführungsform;
Fig. 6 ein Diagramm mit einem Beispiel des Aufbaues eines Multiprozessorsystems;
Fig. 7 ein Diagramm mit einem Beispiel eines spezi­ fischen Aufbaues eines herkömmlichen Dual-Port-Speichers;
Fig. 8 ein Diagramm mit einem spezifischen Aufbau eines Speicherzellenfeldes im Dual-Port-Spei­ cher;
Fig. 9 ein Diagramm mit der Datenstruktur von in einem 16 Bit CPU-System benutzten Daten;
Fig. 10 ein Diagramm mit dem Aufbau eines Speicher­ blockes eines Dual-Port-Speichers im 16 Bit CPU-System;
Fig. 11 ein Diagramm mit einem Beispiel des Aufbaues einer Zugriffskonfliktvermeidungsschaltung des herkömmlichen Dual-Port-Speichers; und
Fig. 12 ein Diagramm mit dem Aufbau eines Zugriffskon­ fliktvermeidungssteuerbereiches im Dual-Port- Speicher nach Fig. 11.
Das Diagramm in Fig. 1 zeigt schematisch den Aufbau eines Dual-Port-Speichers entsprechend einer Ausführungsform. In Fig. 1 umfaßt ein Dual-Port-Speicher 90 zwei Dual-Port-Speicherblöcke 7 und 8 für unabhängigen Zugriff. Der Dual-Port-Speicherblock 7 speichert niederwertige Bytedaten, und der Dual-Port-Speicherblock 8 speichert höherwertige Bytedaten. Die Dual-Port-Speicherblöcke 7 und 8 können Daten in/aus der Umge­ bung der Vorrichtung (z. B. einer CPU) ein-/ausgeben, über einen B-Port-Datenbus I/OB bzw. einen A-Port-Datenbus I/OA, wobei die Ports des Dual-Port-Speichers 90 A-Port und B-Port genannt werden. Obwohl diese auch als R-Port und L-Port bezeichnet werden könnten, da "R-Port" und "L-Port" auf einen rechtsseitigen Port und einen linksseitigen Port hinweisen und so deren Positionsbeziehung zueinander angeben können, werden sie in der nachfolgenden Beschreibung A-Port und B-Port genannt. Die Dual-Port-Speicherblöcke 7 und 8 sind in der Lage, Bytedaten von 8 Bit ein-/auszugeben. Folglich sind der B-Port-Datenbus I/OB und der A-Port-Datenbus I/OA Signalleitungen mit jeweils 16 Bit Breite.
Der Dual-Port-Speicher 90 umfaßt ferner Adreßkonflikterken­ nungsschaltungen 1 und 2 zum Erkennen, ob ein Zugriffskonflikt dadurch bewirkt wird, daß eine über den A-Port angelegte A-Port-Adresse ADA und eine über den B-Port angelegte Adresse ADB diesen Konflikt bewirken, und zum Erkennen einer Übereinstim­ mung/Nichtübereinstimmung zwischen diesen. Eine Zugriffskon­ flikterkennungsschaltung 1 ist entsprechend dem Dual-Port-Speicherblock 7 für niederwertige Bytedaten vorgesehen, und die Zugriffskonflikterkennungsschaltung 2 ist für den Dual-Port-Speicherblock 8 für höherwertige Bytedaten vorgesehen.
Für die Zugriffskonflikterkennungsschaltungen 1 und 2 sind Zugriffskonfliktvermeidungsschaltungen 4 und 5 vorgesehen, zum Durchführen einer Zugriffskonfliktvermeidungsoperation und zum Bereitstellen eines Konfliktvermeidungsentscheidungsergebnis­ signals. Die Zugriffskonfliktvermeidungsschaltung 4 führt die Zugriffskonfliktvermeidungsoperation für den Dual-Port-Speicherblock 7 für niederwertige Bytedaten durch, und die Zu­ griffskonfliktvermeidungsschaltung 5 führt die Zugriffskon­ fliktvermeidungsoperation für den Dual-Port-Speicherblock 8 für höherwertige Bytedaten durch.
Der Dual-Port-Speicher 90 umfaßt ferner eine Entscheidungs­ schaltung 3 zum Empfangen von Ausgabesignalen der Adreßkon­ flikterkennungsschaltungen 1 und 2, und zum Entscheiden, ob ein Zugriffskonflikt in beiden Speicherblöcken 7 und 8 bewirkt wird, um effektiv die Zugriffskonfliktvermeidungsoperation durchzuführen, und eine Auswahlsteuerschaltung 6, die auf ein Bestimmungssignal der Bestimmungsschaltung 3 reagiert, zum se­ lektiven Übertragen eines Vermeidungsergebnissignals der Zu­ griffskonfliktvermeidungsschaltungen 4 und 5 zu den Speicher­ blöcken 7 und 8. Die Bestimmungsschaltung 3 umfaßt beispiels­ weise AND-Gatter 30 zum Bilden eines Logikprodukts der Aus­ gabesignale der Erkennungsschaltungen 1 und 2. Die Auswahlsteu­ erschaltung 6 umfaßt ein Transfergatter NT1, das als Reaktion auf ein Ausgabesignal der Bestimmungsschaltung 3 eingeschaltet wird, zum Übertragen eines Vermeidungsbestimmungsergebnissi­ gnals der Zugriffskonfliktvermeidungsschaltung 4 zum Speicher­ block 8, eine Inverterschaltung IV zum Empfangen eines Be­ stimmungsergebnissignals der Bestimmungsschaltung 3 sowie ein Transfergate NT2, das durch ein Ausgabesignal der Inverter­ schaltung IV eingeschaltet wird, zum Übertragen eines Vermei­ dungsbestimmungsergebnissignals von der Zugriffskonfliktver­ meidungsschaltung 5 zum Speicherblock 8. Die Transfergates NT1 und NT2 werden komplementär eingeschaltet. Deren Betrieb wird nachfolgend kurz beschrieben.
Die Zugriffskonflikterkennungsschaltungen 1 und 2 erkennen eine Übereinstimmung/Nichtübereinstimmung zwischen der A-Port-Adresse ADA und der B-Port-Adresse ADB. Wenn zwischen diesen eine Übereinstimmung ist, stellen sie ein Signal "H" mit akti­ vem Zustand bereit.
(1) Ein Fall, bei dem beide Ausgangssignale der Erkennungs­ schaltungen 1 und 2 auf "L" stehen:
In diesem Fall besteht kein Zugriffskonflikt für die Speicher­ blöcke 7 und 8. Folglich werden keine Konfliktvermeidungsbe­ stimmungsoperationen benötigt. Zu diesem Zeitpunkt ist der Aus­ gang des in der Bestimmungsschaltung 3 enthaltenen AND-Gatters 30 auf "L", das Transfergate NT1 ist ausgeschaltet und das Transfergate NT2 eingeschaltet. Folglich wird die Zugriffskon­ fliktvermeidungsschaltung 4 mit dem Speicherblock 7 verbunden, und die Zugriffskonfliktvermeidungsschaltung 5 wird mit dem Speicherblock 8 verbunden.
Die Zugriffsvermeidungsbestimmungsoperationen durch die Zugriffskonfliktvermeidungsschaltungen 4 und 5 werden nicht durchgeführt, da die Zugriffskonflikterkennungsschaltungen 1 und 2 keinen Zugriffskonflikt erkennen. Ein Zugriff wird ent­ sprechend der A-Port-Adresse ADA und/oder der B-Port-Adresse ADB vorgenommen, und Daten werden eingegeben/ausgegeben über den A-Port-Datenbus I/OA und/oder den B-Port-Datenbus I/OB in die bzw. aus den Speicherblöcken 7 und 8.
(2) Der Fall, in dem die Zugriffskonflikterkennungsschaltung 1 einen Konflikt erkennt, während die Zugriffskonflikterkennungs­ schaltung 2 keinen Zugriffskonflikt erkennt:
In diesem Fall befindet sich der Ausgang des in der Bestim­ mungsschaltung 3 enthaltenen AND-Gatters 30 auf "L". Die Zu­ griffskonflikterkennungsschaltung 4 wird als Reaktion auf ein Zugriffskonflikterkennungssignal aktiviert, das von der Zu­ griffskonflikterkennungsschaltung 1 abgegeben wird, führt die Zugriffskonfliktvermeidungsoperation durch und legt ein Kon­ fliktvermeidungsbestimmungsergebnissignal an den Speicherblock 7 an. Im Speicherblock 7 wird die Auswahl des Ports entspre­ chend dem Konfliktvermeidungsbestimmungsergebnissignals der Zu­ griffskonfliktvermeidungsschaltung 4 vorgenommen, und Daten werden eingeschrieben/ausgelesen über den so ausgewählten einen Port.
Da sich der Ausgang der Konflikterkennungsschaltung 2 auf "L" befindet, führt die Zugriffskonfliktvermeidungsschaltung 5 keine Konfliktvermeidungsoperation durch. Der Ausgang des in der Bestimmungsschaltung 3 enthaltenen AND-Gatters 30 befindet sich auf "L", das Transfergate NT2 ist im ON-Zustand und das Transfergate NT1 ist im OFF-Zustand. Daten werden eingeschrie­ ben/ausgelesen entsprechend der angelegten Adresse(n) ADA und/oder ADB auf dieselbe Weise wie unter normalen Bedingungen, da keine Konfliktvermeidungsbestimmung in der Zugriffskonflikt­ vermeidungsschaltung 5 vorgenommen wird.
(3) Der Fall, indem die Zugriffskonflikterkennungsschaltung 1 keinen Zugriffskonflikt erkennt, während die Zugriffskonflikt­ erkennungsschaltung 2 einen Zugriffskonflikt erkennt:
In diesem Fall befindet sich ebenfalls der Ausgang des AND-Gatters 30 in der Bestimmungsschaltung 3 auf "L", das Trans­ fergate NT1 ist ausgeschaltet und das Transfergate NT2 einge­ schaltet. Die Zugriffskonfliktvermeidungsschaltung 4 führt die Konfliktvermeidungsoperation nicht durch. Der Speicherblock 7 liest/schreibt Daten über den A-Port-Datenbus I/OA und/oder B-Port-Datenbus I/OB entsprechend der angelegten Adresse(n) ADA und/oder ADB.
Die Zugriffskonfliktvermeidungsschaltung 5 wird als Reaktion auf ein Zugriffskonflikterkennungssignal der Zugriffskonflikt­ erkennungsschaltung 2 aktiviert, führt die Zugriffskonflikt­ vermeidungsoperation durch und überträgt bzw. legt ein Vermei­ dungsbestimmungsergebnissignal an den Dual-Port-Speicherblock 8 über das Transfergate NT2 an. Im Speicherblock 8 wird die Aus­ wahl eines Ports entsprechend dem Konfliktvermeidungsbestim­ mungsergebnissignal der Zugriffskonfliktvermeidungsschaltung 5 vorgenommen, und Daten werden über den ausgewählten Port ge­ schrieben/gelesen.
Wenn, wie oben beschrieben, ein Zugriffskonflikt nur in einem Speicherblock bewirkt wird, wird die Zugriffskonfliktvermei­ dungsoperation nur für den Speicherblock durchgeführt, indem der Zugriffkonflikt bewirkt wird, so daß eine unnötige Kon­ fliktvermeidungsoperation nicht durchgeführt wird, selbst in dem Fall, daß auf höherwertige Bytedaten und auf niederwertige Bytedaten über verschiedene Ports zugegriffen werden soll, womit eine korrekte und effiziente Zugriffskonfliktvermeidungs­ operation umgesetzt werden kann.
(4) Der Fall, bei dem Zugriffskonflikte in beiden Speicherblöc­ ken 7 und 8 bewirkt werden:
In diesem Fall befinden sich beide Ausgänge der Zugriffskon­ flikterkennungsschaltungen 1 und 2 auf "H" im aktiven Zustand. Die Bestimmungsschaltung 3 bestimmt, daß es ein Bedürfnis zum Schalten der Konfliktsteuerung gibt, und zu diesem Zeitpunkt erreicht der Ausgang des AND-Gatters 30 "H". Als Ergebnis werden in der Auswahlsteuerschaltung 6 das Transfergate NT1 ein- und das Transfergate NT2 ausgeschaltet. In diesem Zustand wird ein Konfliktvermeidungsbestimmungsergebnis der Zugriffs­ konfliktvermeidungsschaltung 4 an beide Speicherblöcke 7 und 8 angelegt. Die Konfliktvermeidungsschaltungen 4 und 5 führen die Konfliktvermeidungsoperation als Reaktion auf Konflikterken­ nungssignale der Zugriffskonflikterkennungsschaltungen 1 und 2 durch. In diesem Fall wird allerdings das Konfliktbestimmungs­ ergebnissignal der Zugriffskonfliktvermeidungsschaltung 4 an beide Speicherblöcke 7 und 8 angelegt. Folglich wird derselbe Port in den Speicherblöcken 7 und 8 ausgewählt, wodurch das Problem gelöst wird, daß der ausgewählte Port im Speicherblock 7 verschieden vom ausgewählten Port im Speicherblock 8 ist.
Bei dem oben beschriebenen Aufbau bilden die Bestimmungsschal­ tung 3 und die Auswahlsteuerschaltung 6 eine Auswahlvorrich­ tung, die auf Erkennungsergebnissignale der Zugriffskonflikter­ kennungsschaltungen 1 und 2 reagiert, zum Auswählen von Vermei­ dungsbestimmungsergebnissignalen der Zugriffskonfliktvermei­ dungsschaltungen 4 und 5 zum Vermeiden des Konflikts, und zum Anlegen dieser an jeden der Speicherblöcke 7 und 8.
Wenn es notwendig ist, einen Zugriffskonflikt von nur einem des Speicherblocks 7 für niederwertige Bytedaten und des Speicher­ blocks 8 für höherwertige Bytedaten zu steuern, wird entspre­ chend dem oben beschriebenen Aufbau die Konfliktvermeidung ge­ steuert, indem entsprechend jedem der Speicherblöcke 7 und 8 vorgesehene Zugriffskonfliktvermeidungsschaltungen 4 und 5 ge­ steuert werden. Wenn es nötig ist, Zugriffskonflikte für sowohl den Speicherblock 7 für niederwertige Bytedaten als auch für den Speicherblock 8 für höherwertige Bytedaten zu steuern, kann es den Konfliktvermeidungssteueroperationen gestattet werden, miteinander für den höherwertigen Bytedatenspeicherblock 8 und den niederwertigen Bytedatenspeicherblock 7 übereinzustimmen, wobei nur eine, das heißt das Vermeidungsbestimmungsergebnis der Zugriffskonfliktvermeidungsschaltung 4 für den niederwer­ tigen Bytedatenblock 7, benutzt wird. Als Ergebnis kann mit jeder beliebigen Kombination von Zugriffskonflikten korrekt und effizient gearbeitet werden.
Obwohl die Ausgabesignale der Zugriffskonfliktvermeidungsschal­ tungen 4 und 5 mit jeweils einem Bit gezeigt sind, können sie Signale mit einer Mehrzahl von Bits sein, und jedes Signal zum Steuern des Aktivierens/Deaktivierens der betreffenden Ports der Speicherblöcke 7 und 8 kann zugelassen sein. Das in der Auswahlsteuerschaltung 6 enthaltene Transfergate NT2 kann zwi­ schen der Zugriffskonfliktvermeidungsschaltung 4 und dem Spei­ cherblock 7 vorgesehen sein.
Ferner kann das in der Bestimmungsschaltung 3 enthaltene AND-Gatter eine Übereinstimmungs-Erkennungsschaltung zum Erkennen einer Übereinstimmung/Nichtübereinstimmung zwischen den Ausgän­ gen der Erkennungsschaltungen 1 und 2 sein. In einem Fall, bei welchem eine derartige Übereinstimmungserkennungsschaltung (ExNOR-Schaltung) eingesetzt wird, führen, wenn ein Konflikt in entweder dem höherwertigen Datenbytespeicherblock 8 oder dem niederwertigen Datenbytespeicherblock 7 bewirkt wird, die be­ treffenden Zugriffskonfliktvermeidungsschaltungen die Zugriffs­ konfliktoperationen unabhängig für die Speicherblöcke 7 und 8 durch. Wenn die Zugriffskonflikterkennungsschaltungen 1 und 2 keinen Zugriffskonflikt erkennen, wird ein Konfliktvermeidungs­ bestimmungsergebnis der einen Zugriffskonfliktvermeidungsschal­ tung 4 an die Speicherblöcke 7 und 8 angelegt und übertragen. Da keine Konfliktvermeidungsoperation in der Schaltung 4 zum Durchführen einer Portauswahl zum Vermeiden des Zugriffskon­ flikts durchgeführt wird, wird in diesem Fall der Zugriff auf dieselbe Weise wie unter Normalbedingungen in jedem Speicher­ block entsprechend dem externen Zugriffsbefehl vorgenommen, so daß kein Problem bewirkt wird, selbst wenn nur eine Zugriffs­ konfliktvermeidungsschaltung mit den 2 Speicherblöcken 7 und 8 verbunden wird.
Eine kurze Beschreibung wird nachfolgend von dem genauen Aufbau einer Zugriffskonfliktvermeidungsschaltung und einem Speicher­ block vorgenommen. Der in Fig. 12 gezeigte Aufbau der Kon­ fliktvermeidungssteuerschaltung kann für diese Zugriffskon­ fliktvermeidungsschaltung benutzt werden. In diesem Fall werden interne Steuersignale ΦLE und ΦRE an jedem Port eines Steuer­ signales für den A-Port bzw. den B-Port angelegt, und jede Eingabe-/Ausgabeschaltung wird als Reaktion aktiviert/deakti­ viert.
Der Aufbau kann auf dieselbe Weise auf einen Fall angewendet werden, bei dem die internen Steuersignale ΦL und ΦR interne Adreßsignale sind. Wenn die Speicherblöcke 7 und 8 Wattdaten gespeichert haben und Zugriff auf einer Wortbasis vorgenommen wird, werden in vielen Fällen die ein Wort bildenden Bytedaten im selben Adreßbereich von sowohl Speicherblock 7 als auch Speicherblock 8 gespeichert. Folglich wird es möglich, wenn ein Adreßkonflikt in beiden bewirkt wird, korrekt eine Speicher­ zelle auszuwählen, selbst wenn eine Adresse für eine Speicher­ schaltung zu der anderen Speicherschaltung als Adresse über­ tragen wird. Ein spezifischer Aufbau der Zugriffskonfliktver­ meidungsschaltung wird nachfolgend beschrieben.
Die Fig. 2 ist ein Diagramm zum schematischen Verdeutlichen des Aufbaues eines Bereiches für den höherwertigen Bytespei­ cherblock 8 in Fig. 1.
Wie in Fig. 2 gezeigt, umfaßt der Speicherblock 8 ein Spei­ cherzellenfeld MA mit in Zeilen und Spalten angeordneten Spei­ cherzellen, einen A-Port-Dekoder 602a zum Dekodieren einer A-Port-Adresse ADA und zum Auswählen einer entsprechenden Spei­ cherzelle im Speicherzellenfeld MA, einen B-Port-Dekoder 602b für einen B-Port zum Dekodieren einer Adresse ADB und zum Aus­ wählen einer entsprechenden Speicherzelle im Speicherzellen­ feld MA, eine Steuerschaltung 65, die auf verschiedene extern angelegte Steuersignale reagiert, z. B. die Chipauswahlsignale *CSA und *CSB, die Schreibaktivierungssignale *WEA und *WEB sowie die Ausgabeaktivierungssignale *OEA und *OEB, zum Erzeu­ gen eines internen Taktsignales, das den Ausgabetakt für jeden Port bereitstellt, eine A-Port-Eingabe-/Ausgabeschaltung 603a zum Eingeben/Ausgeben von Daten in/aus einer ausgewählten Speicherzelle im Speicherzellenfeld MA sowie eine B-Port- Eingabe-/Ausgabeschaltung 603b zum Eingeben/Ausgeben von Daten in/aus einer Speicherzelle, die durch die B-Port-Adresse ADB im Speicherzellenfeld MA ausgewählt wird.
Die Steuerschaltung 65 umfaßt eine A-Port-Steuerschaltung 601a, die auf Steuersignale *CCA, *WEA und *OEA für den A-Port reagiert, zum Erzeugen eines Steuersignales für den A-Port, sowie eine B-Port-Steuerschaltung 601b, die auf Steuersignale *CSB, *WEB und *OEB für den B-Port reagiert, zum Erzeugen von verschiedenen internen Steuersignalen für den B-Port. Eine Port-Eingabe-/Ausgabeschaltung 603a gibt A-Port-Daten A/OA ein bzw. aus, und eine B-Port-Eingabe-/Ausgabeschaltung 603b gibt B-Port-Daten I/OB ein bzw. aus.
Die Zugriffskonfliktvermeidungsschaltung 5 umfaßt eine Priori­ tätsbestimmungsschaltung 50, die auf ein Adreßübergangserken­ nungssignal ATDA reagiert, zum Erkennen des Übergangspunkts der A-Port-Adresse ADA, sowie auf ein Adreßübergangserkennungssi­ gnal ATDB für die B-Port-Adresse ADB, zum Bestimmen der Priori­ tät, abhängig davon, welcher Übergang früher stattfindet. Die Prioritätsbestimmungsschaltung 50 wird als Reaktion auf ein Zugriffskonflikterkennungssignal der Erkennungsschaltung 2 aktiviert, um die Priorität zu bestimmen. Die Prioritätsbe­ stimmungsschaltung 50 erzeugt Portaktivierungssignale ΦEAH und ΦEBH sowie Zugriffsverhinderungssignale BUSYAH und BUSYBH ent­ sprechend dem Bestimmungsergebnis. Das Zugriffsverhinderungs­ signal BUSYAH ist ein Busy-Signal für den A-Port, und das Zu­ griffsverhinderungssignal BUSYBH ist ein Busy-Signal für den B- Port.
Die Signale ΦEAH und ΦEBH sowie die Zugriffsverhinderungs­ signale BUSYAH und BUSYBH aus der Prioritätsbestimmungsschal­ tung 50 und die Signale ΦEAL und ΦEBL sowie die Zugriffsverhin­ derungssignale BUSYBL und BUSYAL aus der Verhinderungsschal­ tung 4 werden zur Auswahlsteuerschaltung 6 übertragen. Die Aus­ wahlsteuerschaltung 6 wählt und überträgt eines der Signale für die höherwertigen Bytedaten und der Steuersignale für die nie­ derwertigen Bytedaten als Reaktion auf das Ausgabesignal der Bestimmungsschaltung 3. Die Auswahlsteuerschaltung 6 erzeugt ein A-Port-Aktivierungssignal ΦEA, ein B-Port-Aktivierungs­ signal ΦEB, ein A-Port-Zugriffsverhinderungssignal BUSYA und ein B-Port-Zugriffsverhinderungssignal BUSYB. Das A-Port-Zu­ griffsaktiverungssignal ΦEA wird an die A-Port-Eingabe-/Aus­ gabeschaltung 603a angelegt, und das B-Port-Aktivierungssignal ΦEB wird an die B-Port-Eingabe-/Ausgabeschaltung 603b angelegt.
Wenn ein Zugriffskonflikt bewirkt wird, wird entweder das A-Port-Aktivierungssignal ΦEA oder das B-Port-Aktivierungssignal ΦEB aktiviert, und eine entsprechende Eingabe-/Ausgabeschaltung wird aktiviert. Selbst wenn Dekoder 602a und 602b eine Deko­ dieroperation entsprechend den Steuersignalen von Steuerschal­ tungen 601a und 601b ausführen, werden entsprechend in diesem Fall Daten nicht über den verhinderten Port in die ausgewählte Speicherzelle eingegeben bzw. aus dieser ausgegeben, so daß es möglich wird, Daten ein- bzw. auszugeben, ohne einen Zugriffs­ konflikt zu vermeiden und Speicherzellendaten zu zerstören. Eingabe-/Ausgabesteuersignale werden an Eingabe-/Ausgabeschal­ tungen 603a und 603b durch die Steuerschaltungen 601a und 601b angelegt, und die Eingabe-/Ausgabesignale werden durch die Signale ΦEA und ΦEB aktiviert/deaktiviert. Wenn kein Zugriffs­ konflikt vorliegt, werden sowohl das Aktivierungssignal ΦEA auch als das Signal ΦEB aktiviert.
Bei dem in Fig. 2 gezeigten Aufbau ist es ebenfalls möglich, die Steuerschaltung 65 und die Prioritätsbestimmungsschaltung 50 in einem Schaltungsblock zu kombinieren, um eine Zugriffs­ konfliktvermeidungsschaltung zu schaffen. In diesem Fall werden der Ausgang der Prioritätsbestimmungsschaltung 50 und verschie­ dene interne Steuersignale der Steuerschaltung 65 an die Aus­ wahlsteuerschaltung 6 angelegt.
Die Fig. 3 ist ein Diagramm mit einem weiteren Aufbau des Be­ reichs bezogen auf den höherwertigen Bytespeicherblock 8. Wie in Fig. 3 gezeigt, umfaßt eine Zugriffskonfliktvermeidungs­ schaltung 5 eine Prioritätsbestimmungsschaltung 50′ zum Bestim­ men der Priorität entsprechend eines Chipauswahlsignals *CSA für den A-Port und eines Chipauswahlsignals *CSB für den B-Port. Die Prioritätsbestimmungsschaltung 50′ wird als Reaktion auf ein Zugriffskonfliktbestimmungssignal der Erkennungsschal­ tung 2 aktiviert, bestimmt, welches der Chipauswahlsignale *CSA und *CSB zuerst aktiviert wurde, aktiviert selektiv das A-Port-Aktivierungssignal ΦAEH und das B-Port-Aktivierungssignal ΦBEH entsprechend dem Bestimmungsergebnis und erzeugt selektiv ein A-Port-Zugriffsbehinderungssignal BUSYAH oder ein B-Port-Zugriffsbehinderungssignal BUSYBH. Wenn kein Zugriffskonflikt besteht, werden die Signale *CSA und *CSB als Aktiverungssi­ gnale ΦAEH und ΦBEH übertragen.
Die Auswahlsteuerschaltung 6 weist denselben Aufbau wie die in Fig. 2 gezeigte auf und überträgt selektiv eines der Steu­ ersignale der Adreßkonfliktvermeidungsschaltung 5 und ein A-Port-Aktivierungssignal ΦAEL, ein B-Port-Aktivierungssignal ΦBEL, ein A-Port-Zugriffsverhinderungssignal BUSYAL und ein B-Port-Aktivierungsverhinderungssignal BUSYBL der Zugriffskon­ fliktverhinderungsschaltung 4 für niederwertige Bytedaten. Ein A-Port-Aktivierungssignal ΦAE und ein B-Port-Aktivierungssignal ΦBE werden von der Auswahlsteuerschaltung 6 erzeugt und an eine A-Port-Steuerschaltung 701a bzw. eine B-Port-Steuerschaltung 701b angelegt.
Eine Port-Steuerschaltung 701a erzeugt ein internes Steuer­ signal als Reaktion auf die Steuersignale *CSA, *WEA und *OEA, und wird als Reaktion auf das Port-Aktivierungssignal ΦEA aktiviert/deaktiviert. Die B-Port-Steuerschaltung 701b erzeugt verschiedene interne Steuersignale als Reaktion auf die Steuersignale *CSB, *WEB und *OEB. Die B-Port-Steuerschaltung 701b wird als Reaktion auf ein B-Port-Aktivierungssignal ΦBE aktiviert/deaktiviert. Die A-Port-Steuerschaltung 701a und die B-Port-Steuerschaltung 701b können so angepaßt werden, daß die Erzeugung eines internen Schreibbefehlssignals und eines in­ ternen Lesebefehlssignals nur als Reaktion auf das A-Port-Aktivierungssignal ΦAE bzw. das B-Port-Aktivierungssignal ΦBE verhindert wird, oder kann so angepaßt werden, daß der Deko­ dierbetrieb des A-Port-Dekoders 702a und eines B-Port-Dekoders 702b ebenfalls aktiviert/deaktiviert wird.
Obwohl bei dem in Fig. 3 gezeigten Aufbau das A-Port-Aktivie­ rungssignal ΦEA und das B-Port-Aktivierungssignal DBE nicht für eine A-Port-Eingabe-/Ausgabeschaltung 703a und eine B-Port-Ein­ gabe-/Ausgabeschaltung 703b gezeigt sind, werden interne Schreib-/Lesebefehlssignale erzeugt oder nicht erzeugt, in Ab­ hängigkeit vom A-Port-Steuerkreis 701a und dem B-Port-Steuerkreis 701b unabhängig davon, ob ein Zugriffskonflikt vorliegt. Daher werden der Betrieb der A-Port-Eingabe-/Ausgabeschaltung 703a und der B-Port-Eingabe-/Ausgabeschaltung 703b so gesteuert, daß der Zugriffskonflikt vermieden werden kann.
Die Fig. 4 ist ein Diagramm mit einem Beispiel eines weiteren Aufbaues des Bereiches für den höherwertigen Bytedatenspeicher­ block 8. Wie in Fig. 4 gezeigt, empfängt eine Zugriffskon­ fliktvermeidungsschaltung 500 Signale *CSA, *WEA und *OEA sowie eine Adresse ADA, die extern für den A-Port angelegt werden, sowie Steuersignale *CSB, *WEB und *OEB sowie eine Adresse ADB, die extern für den B-Port angelegt werden, führt die Zugriffs­ konfliktvermeidungsoperation als Reaktion auf ein Erkennungs­ ergebnissignal der Erkennungsschaltung 2 durch und legt ein Steuersignal ΦAH für den A-Port und ein Steuersignal ΦBH für den B-Port entsprechend dem Ergebnis der Vermeidungsbestimmung an.
Entsprechend eines Bestimmungsergebnissignals der Bestimmungs­ schaltung 3 läßt die Auswahlsteuerschaltung 6 selektiv entweder die Steuersignale ΦAH und ΦBH der Zugriffskonfliktvermeidungs­ schaltung 500 oder Steuersignale ΦAL und ΦBL für den A-Port und den B-Port aus der für den niederwertigen Bytespeicherblock vorgesehenen Zugriffskonfliktvermeidungsschaltung 4 durch. Ein Steuersignal ΦA aus der Auswahlsteuerschaltung 6 wird an eine A-Port-Steuerschaltung 801a angelegt, und ein Steuersignal ΦB für den B-Port wird an eine B-Port-Steuerschaltung 801b angelegt. Die A-Port-Steuerschaltung 801a und die B-Port-Steu­ erschaltung 801b erzeugen interne Steuersignale entsprechend den Zuständen der Portaktivierungssignale ΦA und ΦB, die von der Auswahlsteuerschaltung 6 angelegt werden.
Die internen Portaktiverungssignale ΦA und ΦB umfassen Adreß­ auswahlsignale Φa und Φb, die an Adreßübertragungsschaltungen 810a bzw. 810b angelegt werden. Die Adreßübertragungsschaltung 810a überträgt eine Adresse ADA an einen Dekoder 802a als Reak­ tion auf das Steuersignal Φa im Portaktivierungssignal ΦA. Die Adreßübertragungsschaltung 810b überträgt eine B-Port-Adresse ADB zu einem Dekoder 802b als Reaktion auf das Steuersignal Φb im internen Steuersignal ΦB. Wenn die Adressen ADA und ADB ex­ terne Adressen sind, können die Adreßübertragungsschaltungen 810a und 810b Adreßpuffer sein. Wenn die Adressen ADA und ADB von einem Adreßpuffer erzeugte interne Adressen sind, sind die Adreßübertragungsschaltungen 810a und 810b zwischen dem Adreß­ puffer und den Dekodern 802a bzw. 802b vorgesehen.
Das Portaktivierungssignal ΦA umfaßt ebenfalls ein Signal zum Steuern des Betriebes der A-Port-Eingabe-/Ausgabeschaltung 803a, welches ein internes Schreib-/Lesesteuersignal sein kann. Das Portaktivierungssignal ΦB umfaßt ein Signal zum Steuern des Betriebes einer B-Port-Eingabe-/Ausgabeschaltung 803b, die ein internes Schreib-/Lesesteuersignal umfassen kann.
Bei dem in Fig. 4 gezeigten Aufbau können die Adressenübertra­ gungsschaltungen 810a und 810b innerhalb der Zugriffskonflikt­ vermeidungsschaltung 500 vorgesehen sein. Das heißt, daß die Auswahlsteuerschaltung 6 zum Übertragen einer Adresse angepaßt sein kann. Wenn in diesem Fall auf die höherwertigen Bytedaten und die niederwertigen Bytedaten auf Wortbasis zugegriffen wird, wird dieselbe Adresse im allgemeinen für höherwertige Daten und für niederwertige Daten übertragen, wobei keine Fehl­ funktion in der Speicherauswahl bewirkt wird.
Obwohl der Aufbau einer Zugriffskonfliktvermeidungsschaltung 5 beschrieben wurde, ist jeder Aufbau zulässig, solange er so aufgebaut ist, daß die Konfliktvermeidungsoperation für den Speicherblock selektiv entsprechend dem Bestimmungsergebnis der Zugriffskonfliktvermeidungsschaltung gesteuert wird, und es ist offensichtlich, daß der vorliegende Multi-Port-Speicher nicht auf die in den Fig. 2 bis 4 beschriebenen Aufbauformen beschränkt ist. Beispielsweise kann der Dual-Port-Speicher ein internes Takt­ signal entsprechend eines Adreßübergangerkennungssignals erzeugen.
Das Diagramm in Fig. 5 ist ein Beispiel eines weiteren Auf­ baues des Dual-Port-Speichers. Bei dem in Fig. 1 gezeigten Aufbau werden Speicherblöcke von 16 Bit, das heißt ein Spei­ cherblock 7 für höherwertige Bytedaten und ein Speicherblock 8 für niederwertige Bytedaten, in einem Speicher 90 integriert. Bei der in Fig. 5 gezeigten Struktur stellt ein Speicherchip einen Dual-Port-Speicher zum Eingeben/Ausgeben von Daten auf 16 Bit-Basis bereit, mit Dual-Port-Speichern zum Eingeben/Ausgeben von Daten auf nur einer 8 Bit-Basis.
Wie in Fig. 5 gezeigt, sind ein erster Dual-Port-Speicher 10a und ein zweiter Dual-Port-Speicher 10b parallel vorgesehen. Der erste Dual-Port-Speicher 10a umfaßt als Signaleingabe-/Ausgabe­ anschlüsse einen B-Port-Adreßeingangsanschluß 25a zum Empfangen einer extern angelegten Adresse ADB für einen B-Port, einen Adreßeingangsanschluß 26a zum Empfangen einer A-Port-Adresse ADA, einen Eingangsanschluß für ein Zugriffskonflikterkennungs­ ergebnissignal 21a, einen Eingangsanschluß für ein Zugriffs­ konfliktsteuersignal 22a, einen B-Port-Dateneingangsanschluß 27a zum Anlegen von Daten an den B-Port, einen Dateneingabe-/Ausgabeanschluß 28a zum Eingeben/Ausgeben von Daten für den A-Port, einen Zugriffskonfliktsteuersignalausgabeanschluß 24a zum Anlegen eines Steuersignals zum Vermeiden eines Zugriffs­ konflikts sowie einen Ausgabeanschluß für ein Zugriffskonflikt­ erkennungsergebnissignal 23a.
Der erste Dual-Port-Speicher 10a umfaßt als interne Schaltungen eine Zugriffskonflikterkennungsschaltung 11a zum Erkennen, ob ein Zugriffskonflikt entsprechend der Adressen ADB und ADA be­ wirkt wird, die an die Adreßeingabeanschlüsse 25a und 26a ange­ legt werden, eine Adreßkonfliktverhinderungsschaltung 14a zum Durchführen des Zugriffskonfliktverhinderungsbetriebes entspre­ chend eines Ausgangssignales der Zugriffskonflikterkennungs­ schaltung 11a, eine Bestimmungsschaltung 13a zum Empfangen eines Ausgangssignales der Zugriffskonflikterkennungsschaltung 11a sowie eines Signales am Eingangsanschluß für das Zugriffs­ konflikterkennungsergebnissignal 21a und zum Bestimmen, ob es notwendig ist, Zugriffskonfliktvermeidung zu steuern, eine Aus­ wahlsteuerschaltung 16a, die auf ein Ausgangssignal einer Be­ stimmungsschaltung 13a reagiert, zum selektiven Durchlassen von entweder eines Steuersignals der Zugriffskonfliktvermeidungs­ schaltung 14a oder eines Zugriffskonfliktsteuersignals des Ein­ gangsanschlusses für ein Zugriffskonfliktsteuersignal 22a, so­ wie einen Speicherblock 17a, der als Reaktion auf ein Ausgangs­ signal der Auswahlsteuerschaltung 16a betrieben wird.
Der zweite Dual-Port-Speicher 16b umfaßt einen Eingangsanschluß für ein Zugriffskonflikterkennungsergebnissignal 21b, einen Eingangsanschluß für ein Zugriffskonfliktsteuersignal 22b, einen B-Port-Dateneingabe-/-ausgabeanschluß 27b, einen A-Port- Dateneingabe-/-ausgabeanschluß 28b, einen Ausgabeanschluß für ein Zugriffskonfliktsteuersignal 24b, einen Ausgabeanschluß für ein Zugriffskonflikterkennungsergebnissignal 23b, einen B-Port-Adreßeingabeanschluß 25b sowie einen A-Port-Eingabeanschluß 26b als externe Anschlüsse auf dieselbe Art. Der zweite Dual-Port-Speicher 10b umfaßt ferner als interne Schaltungen eine Zugriffskonflikterkennungsschaltung 11b, eine Zugriffskon­ fliktvermeidungsschaltung 14b, eine Bestimmungsschaltung 13b, eine Auswahlsteuerschaltung 16b sowie einen Speicherblock 17b in entsprechender Weise.
Der erste Dual-Port-Speicher 10a wird als Speicherblock zum Eingeben/Ausgeben von niederwertigen Bytedaten und ein zweiter Dual-Port-Speicher 10b wird als Speicherblock zum Eingeben/Aus­ geben von höherwertigen Bytedaten verwendet. Das bedeutet, daß niederwertige Bytedaten I/OAL des A-Ports über den A-Port- Dateneingabe-/-ausgabeanschluß 28a des ersten Dual-Port-Spei­ chers 10a ein- bzw. ausgegeben werden, und niederwertige Byte­ daten I/OBL über den B-Port-Dateneingabe-/-ausgabeanschluß 27a ein- bzw. ausgegeben werden. Im zweiten Dual-Port-Speicher 10b werden höherwertige Bytedaten I/OBH über den B-Port-Datenein­ gabe-/-ausgabeanschluß 27b ein- bzw. ausgegeben und höherwertige Bytedaten I/OAH werden über den A-Port-Dateneingabe-/-ausgabe­ anschluß 28b ein- bzw. ausgegeben.
Die Steuersignalein-/-ausgabeanschlüsse sind miteinander verbun­ den, so daß die 2 Dual-Port-Speicher 10a und 10b einen Zugriffskonflikt vermeiden können. Der Anschluß für das Zu­ griffskonflikterkennungsergebnissignal 21a des ersten Dual-Port-Speichers 10a ist mit Erdpotential verbunden. Der Ein­ gabeanschluß für das Zugriffskonfliktsteuersignal des ersten Dual-Port-Speichers 10a wird in einen offenen Zustand, das heißt einen Zustand hoher Impedanz versetzt. Der Ausgabe­ anschluß für das Zugriffskonflikterkennungsergebnissignal 23a des ersten Dual-Port-Speichers 10a wird mit dem Eingangsan­ schluß für das Zugriffskonflikterkennungsergebnissignal 21b des zweiten Dual-Port-Speichers 10b verbunden. Der Ausgabeanschluß für das Zugriffskonfliktsteuersignal 24a des ersten Dual-Port-Speichers 10a ist mit dem Eingabeanschluß für das Zugriffskon­ fliktsteuersignal 22b des zweiten Dual-Port-Speichers 10b ver­ bunden. Der Ausgabeanschluß für das Zugriffskonflikterkennungs­ ergebnissignal 23b und der Ausgabeanschluß für das Zugriffskon­ fliktsteuersignal 24b des zweiten Dual-Port-Speichers 10b werden in den offenen Zustand verbracht. In dieser Verbindungs­ anordnung wird der Verbindungskreis 13a deaktiviert und führt keine Bestimmungsoperation durch. Ein Zugriffskonfliktsteuer­ signal, das heißt ein Zugriffskonfliktbestimmungsergebnissignal der Zugriffskonfliktvermeidungsschaltung 14a wird permanent zum Speicherblock 17a übertragen. Das Zugriffskonfliktbestimmungs­ ergebnis, das heißt das Zugriffskonfliktsteuersignal der Zu­ griffskonfliktvermeidungsschaltung 14a, wird ebenfalls zu der Auswahlsteuerschaltung 16b des zweiten Dual-Port-Speichers 10b über die Auswahlsteuerschaltung 16a und die Anschlüsse 24a und 22b übertragen.
Die Bestimmungsschaltung 13b steuert den Auswahlbetrieb der Auswahlsteuerschaltung 16b entsprechend den Zugriffskonflikt­ erkennungssignalen der Zugriffskonflikterkennungsschaltungen 11a und 11b. Folglich wird auch bei dieser Ausführungsform derselbe Betrieb wie bei dem in Fig. 1 gezeigten Aufbau durch­ geführt, und ein bestgeeigneter Zugriffskonfliktvermeidungs­ betrieb wird entsprechend der Kombination von bewirkten Zu­ griffskonflikten durchgeführt.
Bei der obigen Beschreibung kann auf die Speicherblöcke 10a und 10b unabhängig auf 8 Bit-Basis zugegriffen werden, und derartige 2 Speicherblöcke, in denen Daten auf 8 Bit-Basis ein­ geschrieben bzw. ausgelesen werden, werden an ein 16 Bit-CPU-System angelegt. Für ein 32 Bit-CPU-System mit 2 Speicherblöc­ ken, auf die jeweils auf 16 Bit-Basis zugegriffen werden kann, kann dieselbe Wirkung wie bei der obigen Ausführungsform erzeugt werden, solange diese Speicherblöcke mit der in Fig. 5 gezeigten Steuerbeschaltung versehen sind.
Obwohl nur 2 Speicherblöcke bei der oben beschriebenen Ausfüh­ rungsform benutzt werden, kann dieselbe Wirkung durch Ver­ größern des Aufbaues erzielt werden, wenn 4 Speicherblöcke benutzt werden, in die Daten auf 8 Bit-Basis im 32 Bit-CPU-System ausgelesen bzw. eingeschrieben wird. Das heißt, daß beispielsweise erste Bestimmungsschaltungen für Speicherblöcke für Daten der höchstwertigsten 16 Bits bzw. niedrigstwertigsten 16 Bit vorgesehen sind, und eine entsprechende Auswahlsteuer­ schaltung wird entsprechend der Ausgänge der Bestimmungsschal­ tungen betrieben. Wenn Zugriffskonflikte in beiden Speicher­ blöcken der Daten der höchstwertigen 16 Bits und der niederwer­ tigen 16 Bits auftreten, können die Zugriffskonflikte auf die­ selbe Weise effizient vermieden werden, indem ein Ausgangssi­ gnal von einem der Zugriffskonfliktvermeidungsschaltungen, das heißt ein Zugriffskonfliktsteuersignal, an alle Speicherblöcke angelegt wird.
Für den Aufbau, bei dem eine gemeinsame Adresse an alle Spei­ cherblöcke angelegt wird, und das Schalten von Bytedaten und Wortdaten durch unabhängig für jeden Speicherblock arbeitende Chipauswahlsignale erfolgt, werden sowohl die Chipauswahlsi­ gnale und die Adresse als Steuersignale an die Zugriffskon­ flikterkennungsschaltung angelegt, zum Bestimmen, ob ein Zu­ griffskonflikt bewirkt wird, durch Vergleichen der Adressen, wenn alle Chipauswahlsignale aktiviert werden.
In dem Fall, daß die Adressenbreite für ein 16 Bit-Datum größer als das für ein 8 Bit-Datum ist, wenn 2 betreffende Adreßbe­ reiche zum Auswählen von niederwertigen Bytedaten und zum Aus­ wählen von höherwertigen Bytedaten unabhängig an den Speicher angelegt werden, können beide Adreßbereiche einfach an die Zugriffskonflikterkennungsschaltung angelegt werden.
Bei einem Aufbau, bei dem ungeradzahlige Adressen dem Speicher­ block für niederwertige Bytedaten zugeordnet sind, geradzahlige Adressen dem Speicherblock für höherwertige Bytedaten zugeord­ net sind und ein Adreßbit, das anzeigt, ob die Adresse gerade oder ungerade ist, als ein Teil des Chipauswahlsignales benutzt wird, werden höherwertige Bytedaten, niederwertige Bytedaten und Wortdaten bezeichnet, entsprechend einer Kombination aus einem geraden/ungeraden Adreßbit mit einem Adreßbit A0 und einem Byte-High-Aktivierungssignal, das anzeigt, daß ein ausge­ wähltes, geradzahliges Adreßdatum auf einen höherwertigen Byte-Datenbus übertragen werden muß. Die höherwertige Bytedatenaus­ wahl wird durch das Byte-High-Aktivierungssignal aktiviert, und die niederwertige Bytedatenauswahl wird durch Adreßbit A0 in einer Wortdatenanordnung aktiviert. Genauer gesagt, wenn das Byte-High-Aktivierungssignal aktiv ist, wird ein höherwertiges Bytedatum auf einen höherwertigen Byte-Datenbus übertragen. Wenn das Byte-High-Aktivierungssignal nicht aktiv ist, wird nur ein niederwertiger Datenbus mit ausgewählten Bytezellen verbun­ den. Die Bestimmung von Bytedaten und Wortdaten wird entspre­ chend der Kombination des Byte-High-Aktivierungssignals und des Adreßbits A0 vorgenommen. In diesem Fall wird das Byte-High-Aktivierungssignal ebenfalls an die Zugriffskonflikterkennungs­ schaltung angelegt, um den Zugriffskonflikt zu erkennen. Die Dekoderschaltung dekodiert die Adresse mit Ausnahme des Adreß­ bits A0.
Wie oben beschrieben, umfaßt ein Multi-Port-Speicher eine Mehr­ zahl von Speicherblöcken, die jeweil unabhängig arbeiten und auf die unabhängig über eine Mehrzahl von Ports zugegriffen werden kann, wobei die Zugriffskonfliktvermeidung für die Speicherblöcke gesteuert wird, indem selektiv ein Bestimmungs­ ergebnissignal einer Zugriffskonfliktvermeidungsschaltung be­ nutzt wird, die entsprechend für jeden Speicherblock vorgesehen ist, und die das Signal an die Speicherblocks entsprechend dem Auftreten eines Zugriffskonflikts für jeden Speicherblock anlegt. Folglich ist es möglich, effektiv eine möglichst geeig­ nete Zugriffskonfliktvermeidungssteuerung durchzuführen, und eine Zugriffskonfliktvermeidungsverarbeitungszeit zu vermindern. Das Zugriffskonfliktvermeidungsbestimmungsergebnis­ signal wird selektiv entsprechend dem Auftreten des Zugriffs­ konflikts benutzt, so daß der Zugriffskonflikt mit einer ver­ einfachten Steuerschaltung vermieden werden kann, und ein Mul­ ti-Port-Speicher zum korrekten Schreiben/Lesen von Daten ge­ schaffen werden kann. Da es nicht notwendig ist, extern ein kompliziertes Steuersignal vorzusehen, und der Zugriff intern mit einer vereinfachten Schaltungsstruktur vermieden wird, kann ein wirtschaftlicher und hochgradig zuverlässiger Multi-Port- Speicher geschaffen werden, bei dem eine Zerstörung von Daten durch einen Zugriffskonflikt nicht auftritt.

Claims (8)

1. Multi-Port-Speicher mit
einem ersten Port (A) und einem zweiten Port (B), auf die unabhängig voneinander zugegriffen werden kann, mit
einer Mehrzahl von Speicherblöcken (7, 8; 17a, 17b), die jeweils ein Speicherzellenfeld (MA) aufweisen, wobei auf jeden Speicherblock über den zugeordneten ersten und zweiten Port zugegriffen werden kann,
wobei der erste und der zweite Port jeweils eine Mehrzahl von Teilbereichen aufweisen, die der Mehrzahl von Speicherblöcken entspricht,
einer Mehrzahl von Zugriffskonflikterkennungsvorrichtungen (1, 2; 11a, 11b), eine für jeden Speicherblock, jeweils zum Bestimmen, ob ein Zugriff über Teilbereich des ersten Ports auf einen entsprechenden Speicherblock und ein Zugriff über einen Teilbereich des zweiten Ports auf den entsprechenden Speicherblock als Reaktion auf Adreßsignale (ADA, ADB) für den ersten und den zweiten Port einen Zugriffskonflikt bewirken,
einer Mehrzahl von Entscheidungsvorrichtungen (5, 4; 14a, 14b), die entsprechend für die Zugriffskonflikterkennungsvorrichtungen vorgesehen sind und die auf eine zugeordnete Zugriffskonflikter­ kennungsvorrichtung reagieren, zum Bewirken einer Entscheidung zum Vermeiden eines Zugriffskonflikts, wobei ein Aktivierungssignal für den Zugriff auf einen bevorzugten Port erzeugt wird,
einer Auswahlvorrichtung (3, 6; 13a, 13b, 16a, 16b), die auf die Mehrzahl von Zugriffskonflikterkennungsvorrichtungen reagiert, zum selektiven Durchlassen der Aktivierungssignale aus der Mehrzahl von Entscheidungsvorrichtungen, und
einer Port-Steuervorrichtung (603a, 603b; 701a, 701b; 801a, 801b), die für jeden Speicherblock vorgesehen ist und die auf die Auswahlvorrichtung reagiert, zum Gestatten des Zugriffs auf einen durch das Aktivierungssignal aktivierten Port eines zugeordneten Speicherblocks.
2. Multi-Port-Speicher nach Anspruch 1, dadurch gekennzeichnet, daß
die Auswahlvorrichtung (3, 6; 13a, 13b, 16a, 16b) eine Bestim­ mungsvorrichtung (3; 13b) umfaßt, die auf die Mehrzahl von Adreßkonflikterkennungsvorrichtungen reagiert, zum Entscheiden, ob alle Zugriffskonflikterkennungsvorrichtungen einen Zugriffs­ konflikt erkennen, und
eine Gatevorrichtung (6; 16a, 16b) umfaßt, die auf die Bestim­ mungsvorrichtung (3; 13b) reagiert, zum Durchlassen des Aus­ gangssignales von nur einer der Mehrzahl von Entscheidungsvor­ richtungen an jede der Portsteuervorrichtungen, wenn die Be­ stimmungsvorrichtung bestimmt, daß alle Zugriffskonflikterken­ nungsvorrichtungen den Zugriffskonflikt erkennen.
3. Multi-Port-Speicher nach Anspruch 1, dadurch gekennzeichnet, daß
die Speicherblöcke einen ersten Speicherblock (7; 17a) und einen zweiten Speicherblock (8, 18a) umfassen und die Auswahlvorrichtung (3, 6; 13a, 13b, 16a, 16b)
  • a) eine Bestimmungsvorrichtung (3; 30; 13b) umfaßt, die auf zwei Zugriffskonflikterkennungsvorrichtungen (1, 2; 11a, 11b) reagiert, die für den ersten und zweiten Speicherblock vorge­ sehen sind, zum Bestimmen, ob beide Zugriffskonflikter­ kennungsvorrichtungen einen Zugriffskonflikt erkennen,
  • b) eine erste Transfervorrichtung (gerade Signalleitung im Gate 6; 13a, 16a) zum Übertragen des Aktivierungssignales von der Entscheidungsvorrichtung (4; 14a) für den ersten Speicher­ block zur Portsteuervorrichtung für den ersten Speicherblock umfaßt, und
  • c) eine zweite Transfervorrichtung (NT1, NT2; 16b) umfaßt, die auf die Bestimmungsvorrichtung reagiert, zum selektiven Durch­ lassen eines der Aktivierungssignale von der Entscheidungsvor­ richtung für den ersten Speicherblock und von der Entschei­ dungsvorrichtung für die zweite Speichervorrichtung zur Port­ steuervorrichtung für den zweiten Speicherblock.
4. Multi-Port-Speicher nach Anspruch 3, dadurch gekennzeichnet, daß
die zweite Transfervorrichtung (NT1, NT2; 16b) das Aktivie­ rungssignal von der Entscheidungsvorrichtung überträgt, wenn die Bestimmungsvorrichtung anzeigt, daß beide der zugeordneten zwei Zugriffskonflikterkennungsvorrichtungen den Zugriffskonflikt erkennen.
5. Multi-Port-Speicher nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß
die Anzahl der Speicherblöcke zwei beträgt und
ein Speicherblock (8; 17b) Daten eines höherwertigen Bytes speichert und der andere Speicherblock (7; 17a) Daten eines niederwertigen Bytes speichert.
6. Multi-Port-Speicher nach einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, daß
der erste und der zweite Speicherblock (7, 8) auf demselben Halbleiterchip (90) integriert sind.
7. Multi-Port-Speicher nach Anspruch 3, dadurch gekennzeichnet, daß
der erste und der zweite Speicherblock (17a, 17b) auf einem ge­ trennten ersten bzw. zweiten Halbleiterchip (10a, 10b) gebildet ist, und
der erste Halbleiterchip (10a) eine zusätzliche Bestimmungsvor­ richtung (13a) umfaßt, die ein Ausgangssignal der Zugriffskon­ flikterkennungsschaltung für den ersten Speicherblock empfängt und sich fest in einem deaktivierten Zustand befindet, und eine Gatevorrichtung (16a) als erste Transfervorrichtung um­ faßt, die auf die zusätzliche Bestimmungsvorrichtung reagiert, wobei der erste und der zweite Halbleiterchip eine identische Komponentenanordnung aufweisen.
8. Verfahren zum Vermeiden eines Zugriffskonflikts in einem Multi-Port-Speicher mit
einem ersten und einem zweiten Port (A, B), auf die unabhängig zugegriffen werden kann, wobei der Multi-Port-Speicher einen ersten Speicherblock (7, 17a) und einen zweiten Speicherblock (8; 17b) umfaßt, mit den Schritten
unabhängiges Bestimmen, ob ein Zugriffskonflikt zwischen einem Zugriff über den ersten Port und einem Zugriff über den zweiten Port im ersten Speicherblock bzw. im zweiten Speicherblock vor­ liegt,
Durchführen einer Entscheidungsoperation über den Zugriff auf einen den Zugriffskonflikt bewirkenden Speicherblock, zum Gestatten des Zugriffs über einen bevorzugten seiner Ports,
wobei der Zugriff über den ersten und zweiten Port eines Speicherblocks ohne Zugriffskonflikt gestattet wird, wenn nur der erste oder der zweite Speicherblock dem Zugriffskonflikt unterliegt, und
Durchführen einer Entscheidungsoperation über Zugriffe auf sowohl den ersten als auch den zweiten Speicherblock zum Ge­ statten des Zugriffs auf den ersten und den zweiten Speicher­ block über einen bevorzugten Port, der durch die Entscheidungs­ operation für entweder den ersten oder den zweiten Speicher­ block durchgeführt wird, wenn sowohl der erste als auch der zweite Speicherblock dem Zugriffskonflikt unterliegen.
DE4207945A 1991-03-13 1992-03-12 Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin Expired - Fee Related DE4207945C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3048454A JP2673390B2 (ja) 1991-03-13 1991-03-13 マルチポートメモリ

Publications (2)

Publication Number Publication Date
DE4207945A1 DE4207945A1 (de) 1992-09-17
DE4207945C2 true DE4207945C2 (de) 1994-06-09

Family

ID=12803799

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4207945A Expired - Fee Related DE4207945C2 (de) 1991-03-13 1992-03-12 Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin

Country Status (3)

Country Link
US (1) US5659711A (de)
JP (1) JP2673390B2 (de)
DE (1) DE4207945C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10215362A1 (de) * 2002-04-08 2003-10-30 Infineon Technologies Ag Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09306162A (ja) * 1996-05-09 1997-11-28 Minoru Furuta Dramの制御システム
US5852608A (en) * 1996-06-06 1998-12-22 Sun Microsystems, Inc. Structure and method for bi-directional data transfer between asynchronous clock domains
US5884100A (en) * 1996-06-06 1999-03-16 Sun Microsystems, Inc. Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor
US5903749A (en) * 1996-07-02 1999-05-11 Institute For The Development Of Emerging Architecture, L.L.C. Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs
US5895492A (en) * 1997-05-28 1999-04-20 International Business Machines Corporation Processor associated blocking symbol controls for serializing the accessing of data resources in a computer system
US5893157A (en) * 1997-05-28 1999-04-06 International Business Machines Corporation Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
US5895494A (en) * 1997-09-05 1999-04-20 International Business Machines Corporation Method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure
DE19740695C2 (de) * 1997-09-16 2002-11-21 Infineon Technologies Ag Datenspeicher mit Mehrebenenhierarchie
US6314499B1 (en) * 1997-11-14 2001-11-06 Lucent Technologies Inc. Non-preemptive memory locking mechanism in a shared resource system
US6233659B1 (en) * 1998-03-05 2001-05-15 Micron Technology, Inc. Multi-port memory device with multiple modes of operation and improved expansion characteristics
US6523098B1 (en) * 1999-12-22 2003-02-18 Intel Corporation Mechanism for efficient low priority write draining
US6317379B1 (en) * 2000-02-18 2001-11-13 Hewlett-Packard Company Determine output of a read/write port
JP5070656B2 (ja) * 2000-12-20 2012-11-14 富士通セミコンダクター株式会社 半導体記憶装置
EP1220226B1 (de) * 2000-12-20 2005-08-17 Fujitsu Limited Multiportspeicher auf Basis von DRAM
US7120761B2 (en) * 2000-12-20 2006-10-10 Fujitsu Limited Multi-port memory based on DRAM core
US6404700B1 (en) * 2001-06-13 2002-06-11 Lsi Logic Corporation Low power high density asynchronous memory architecture
US7308540B2 (en) * 2002-05-24 2007-12-11 Koninklijke Philips Electronics N.V. Pseudo multiport data memory has stall facility
FR2864321B1 (fr) * 2003-12-23 2007-01-19 St Microelectronics Sa Memoire dynamique a acces aleatoire ou dram comportant au moins deux registres tampons et procede de commande d'une telle memoire
US20050144416A1 (en) * 2003-12-29 2005-06-30 Intel Corporation, A Delaware Corporation Data alignment systems and methods
KR100609265B1 (ko) * 2004-11-10 2006-08-09 삼성전자주식회사 메모리 장치 및 메모리 장치의 듀얼 포트 동작 방법
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
KR100655081B1 (ko) 2005-12-22 2006-12-08 삼성전자주식회사 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법
US8001334B2 (en) * 2007-12-06 2011-08-16 Silicon Image, Inc. Bank sharing and refresh in a shared multi-port memory device
KR100892857B1 (ko) * 2008-07-30 2009-04-15 주식회사 유비콘테크놀로지 시스템온칩의 내부 메모리 장치 및 그 운영방법
KR102346629B1 (ko) * 2014-12-05 2022-01-03 삼성전자주식회사 메모리 접근 제어 방법 및 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449183A (en) * 1979-07-09 1984-05-15 Digital Equipment Corporation Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
JPS6289149A (ja) * 1985-10-15 1987-04-23 Agency Of Ind Science & Technol 多ポ−トメモリシステム
JPS62217481A (ja) * 1986-03-18 1987-09-24 Fujitsu Ltd マルチポ−トメモリ回路
ATE89946T1 (de) * 1987-01-23 1993-06-15 Siemens Ag Halbleiterspeicher mit wahlfreiem zugriff ueber zwei getrennte ein/ausgaenge.
JPS63293785A (ja) * 1987-05-26 1988-11-30 Nec Corp 半導体メモリ装置
US4796232A (en) * 1987-10-20 1989-01-03 Contel Corporation Dual port memory controller
JP2658188B2 (ja) * 1988-06-01 1997-09-30 富士通株式会社 デュアルポートメモリの制御回路
US5014247A (en) * 1988-12-19 1991-05-07 Advanced Micro Devices, Inc. System for accessing the same memory location by two different devices
US4918664A (en) * 1989-01-18 1990-04-17 Cypress Semiconductor Apparatus and method for preserving data integrity in multiple-port RAMS
JPH02292989A (ja) * 1989-05-08 1990-12-04 Mitsubishi Electric Corp 磁気記録再生装置
US5001671A (en) * 1989-06-27 1991-03-19 Vitelic Corporation Controller for dual ported memory
US4967398A (en) * 1989-08-09 1990-10-30 Ford Motor Company Read/write random access memory with data prefetch
US5142540A (en) * 1990-03-13 1992-08-25 Glasser Lance A Multipart memory apparatus with error detection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10215362A1 (de) * 2002-04-08 2003-10-30 Infineon Technologies Ag Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher

Also Published As

Publication number Publication date
US5659711A (en) 1997-08-19
JP2673390B2 (ja) 1997-11-05
DE4207945A1 (de) 1992-09-17
JPH05325552A (ja) 1993-12-10

Similar Documents

Publication Publication Date Title
DE4207945C2 (de) Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin
DE4110173C2 (de) Adressenansteuereinrichtung für einen SRAM und Verfahren zum Betreiben derselben
DE4204119C2 (de) Multiprozessorsystem
EP0908893B1 (de) Speicherarchitektur mit Mehrebenenhierarchie
DE69830962T2 (de) Integrierte Halbleiterschaltungsanordnung
DE4111483C2 (de) Dual-Port-Speicher
DE4222273C2 (de) Zweikanalspeicher und Verfahren zur Datenübertragung in einem solchen
DE3588247T2 (de) Dynamischer Halbleiterspeicher mit einer statischen Datenspeicherzelle
DE4107889C2 (de) Halbleiterspeichereinrichtung und N-Bit-Datenpfad
DE4200758C2 (de) Halbleiterspeichereinrichtung und Verfahren zur Steuerung des Betriebs derselben
DE19614443A1 (de) Inhalts-adressierbarer Speicher
DE4238062C2 (de) Multiport-Speichereinrichtung
DE10003465A1 (de) Halbleiterspeichervorrichtung mit Mehrfachanschluß (Multiple-Port Semiconductor Memory Device)
DE4210857A1 (de) Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten
DE3534356C2 (de) Halbleiter-Speichervorrichtung
DE3906897C2 (de)
DE19645745B4 (de) Dynamischer Schreib-/Lesespeicher
EP0046976A2 (de) Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen
DE4022149C2 (de)
DE4117672A1 (de) Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers
DE4309320A1 (de) Halbleiterspeichervorrichtung und Betriebsverfahren
DE4100052A1 (de) Schaltung zum steuern des ausgangs eines sensorverstaerkers
DE19908157A1 (de) Speichertestschaltung
DE4226073C2 (de) Vorrichtung zur Erzeugung von Daten und Betriebsverfahren für die Vorrichtung
DE4206079C2 (de) Halbleiterspeichereinrichtung und Verfahren zum Lesen von Daten aus einer solchen Halbleiterspeichereinrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee