-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf Halbleiter-Speicheranordnungen,
und bezieht sich insbesondere auf eine Halbleiter-Speicheranordnung,
die mit einer Vielzahl von Ports ausgestattet ist.
-
2. Beschreibung der verwandten
Technik
-
Multiport-Speicher,
die mit einer Vielzahl von Ports ausgestattete Halbleiter-Speicheranordnungen sind,
können
in verschiedenste Typen klassifiziert werden. Wenn hier im Nachstehenden
der Ausdruck "Multiport-Speicher" verwendet wird,
bezieht er sich auf einen Speicher, der mit einer Vielzahl von Ports versehen
ist, und der es ermöglicht,
einen Zugriff unabhängig
von einem beliebigen der Ports auf ein gemeinsames Speicher-Array
vorzunehmen. Ein solcher Speicher kann einen A Port und einen B
Port aufweisen und ermöglicht,
dass eine Lese/Schreiboperation in Bezug auf das gemeinsame Speicher-Array
unabhängig
von einer CPU, die mit dem A Port verknüpft ist, und von einer CPU,
die mit dem B Port verknüpft
ist, durchgeführt
wird.
-
Ein
Multiport-Speicher ist mit einer Entscheidungsschaltung ausgestattet,
die Entscheider genannt wird. Der Entscheider bestimmt die Priorität von Zugriffsanforderungen,
die von der Vielzahl von Ports empfangen werden, und eine Steuerschaltung eines
Speicher-Arrays führt
Zugriffsoperationen eine nach der anderen gemäß der bestimmten Priorität durch.
Je früher
beispielsweise die Ankunft einer Zugriffsanforderung an einem Port
erfolgt, desto höher ist
die dem Zugriff verliehene Priorität.
-
Da
in einem solchen Fall auf das Speicher-Array von einer Vielzahl
von Ports direkt zugegriffen wird, ist es notwendig, das Speicher-Array
sofort zurückzusetzen,
nachdem eine Lese- oder Schreibzugriffsoperation durchgeführt wird, wodurch sichergestellt
wird, dass es für
einen nächsten
Zugriff vorbereitet ist. Das heißt, wenn eine Wortleitung ansprechend
auf einen Zugriff von einem gegebenen Port in dem ausgewählten Zustand
gehalten wird, und Spaltenadressen sequentiell verschoben werden,
um aufeinanderfolgende Daten zu lesen, wie bei einer Spaltenzugriffsoperation,
die in DRAMs allgemein verwendet wird, wird ein Zugriff von einem
anderen Port während
dieser Operation warten gelassen. Demgemäß ist es notwendig, das Speicher-Array
sofort nach jeder Lese- oder
Schreiboperation zurückzusetzen.
-
Herkömmlich wurde
typischerweise ein SRAM als Speicher-Array eines Multiport-Speichers verwendet.
Dies ist darauf zurückzuführen, dass
ein SRAM einen Direktzugriff mit hoher Geschwindigkeit ermöglicht,
und auch eine nicht-destruktive Leseoperation möglich ist.
-
In
einem Multiport-Speicher mit beispielsweise zwei Ports ist eine
SRAM-Speicherzelle mit zwei Sätzen
von Wortleitungen und Bitleitungspaaren versehen. Einer der Ports
nimmt eine Lese/Schreiboperation unter Verwendung eines Satzes einer
Wortleitung und eines Bitleitungspaars vor, und der andere der Ports
nimmt eine Lese/Schreiboperation unter Verwendung des anderen Satzes
einer Wortleitung und eines Bitleitungspaars vor. Auf diese Weise
können
Lese/Schreiboperationen unabhängig
von den beiden verschiedenen Ports durchgeführt werden. Da es jedoch unmöglich ist,
zwei Schreiboperationen simultan vorzunehmen, wenn die beiden Ports
versuchen, Daten in dieselbe Zelle zur selben Zeit zu schreiben,
erhält
einer der Ports Priorität,
um die Schreiboperation vorzunehmen, und der andere der Ports erhält ein BUSY-Signal.
Dies wird BUSY-Zustand genannt.
-
Mit
der Entwicklung eines Systems zu einer verbesserten Leistung erhöht sich
auch die von dem System behandelte Datenmenge. Als Ergebnis benötigt ein
Multiport-Speicher eine große
Kapazität.
Die Multiport-Speicher des SRAM-Typs haben jedoch insofern einen
Nachteil, als die Größe einer
Speicherzelle groß ist.
-
Um
dies zu beheben, ist es denkbar, ein DRAM-Array in einem Multiport-Speicher
zu verwenden. Um eine signifikant höhere Schaltungsdichte als Multiport-SRAMs
zu erzielen, muss eine DRAM-Speicherzelle, die für einen Multiport-Speicher
verwendet wird, nur mit einer Wortleitung und einer Bitleitung auf
die gleiche Weise wie eine typische DRAM-Zelle verbunden werden.
Wenn Speicherblöcke
unter Verwendung von DRAM-Zellen in einer solchen Weise implementiert
werden, kann einer der Ports nicht auf einen gegebenen Block zugreifen, wenn
ein anderer der Ports eine Lese- oder Schreiboperation in Bezug
auf diesen Block durchführt. Dies
ist darauf zurückzuführen, dass
nur eine destruktive Leseoperation in einer DRAM-Zelle möglich ist.
Das heißt,
wenn Informationen gelesen werden, kann keine andere Wortleitung
in demselben Block ausgewählt
werden, bis diese Informationen verstärkt und in der Zelle wiederhergestellt
werden, und eine Wortleitung und eine Bitleitung vorgeladen werden.
-
Wenn
ein gegebener Port auf einen Speicherblock zugreift, auf den von
einem anderen Port zugegriffen wird, wird aus diesem Grund ein BUSY-Zustand
detektiert. Ein BUSY-Zustand
tritt in einem Multiport-Speicher des SRAM-Typs nur dann auf, wenn
eine Vielzahl von Ports simultan Schreibanforderungen an dieselbe
Speicherzelle stellt. Andererseits tritt ein BUSY-Zustand in einem Multiport-Speicher
des DRAM-Typs auf,
wenn eine Vielzahl von Ports simultan beliebige Typen von Zugriffsanforderungen
an dieselbe Speicherzelle stellt. Daher ist die Wahrscheinlichkeit
eines Auftretens von BUSY in dem Speicher des DRAM-Typs signifikant höher als
die Wahrscheinlichkeit eines Auftretens von BUSY beim Speicher des
SRAM-Typs. Sobald der Multiport-Speicher des DRAM- Typs in einem BUSY-Zustand
ist, zeigt er ferner Probleme, dass gewünschte Operationen nicht vorgenommen
werden können,
oder dass die Verarbeitung aufgrund einer Wartezeit langsam wird.
-
Außerdem benötigt im
Gegensatz zu einem Multiport-Speicher des SRAM-Typs ein Multiport-Speicher
des DRAM-Typs eine periodisch vorzunehmende Auffrischoperation zum
Zweck des Aufrechterhaltens gespeicherter Informationen, so dass irgendeine
Maßnahme
getroffen werden muss, um eine geeignete Auffrischzeiteinstellung
sicherzustellen.
-
Demgemäß ist die
vorliegende Erfindung darauf gerichtet, einen Multiport-Speicher
des DRAM-Typs vorzusehen, der insbesondere mit DRAMs assoziierte
Probleme beseitigt.
-
Die
US 5659711 offenbart einen
Multiport-Speicher, der einen ersten Speicherblock und einen zweiten
Speicherblock enthält,
auf die unabhängig
voneinander zugegriffen werden kann. Auf jeden von dem ersten Speicherblock
und dem zweiten Speicherblock kann simultan durch einen ersten und einen
zweiten Port zugegriffen werden. Der Speicher enthält einen
ersten Zugriffskonfliktdetektor (oder eine erste Adressenvergleichsschaltung)
zum Detektieren eines Zugriffskonflikts an dem ersten Speicherblock,
einen zweiten Zugriffskonfliktdetektor (oder eine zweite Adressenvergleichsschaltung)
zum Detektieren eines Zugriffskonflikts in dem zweiten Speicherblock,
einen ersten Entscheider, der auf den ersten Detektor anspricht,
zum Entscheiden eines Zugriffskonflikts in dem ersten Speicherblock,
und einen zweiten Entscheider, der auf den zweiten Detektor anspricht,
zum Entscheiden eines Zugriffskonflikts in dem zweiten Speicherblock.
Der Speicher enthält ferner
einen Selektor zum Transferieren des Entscheidungsergebnisses des
ersten Entscheiders zum zweiten Speicherblock, wobei das Entscheidungsergebnis
des zweiten Entscheiders nur dann vernachlässigt wird, wenn sowohl der erste
als auch der zweite Detektor den Zugriffskonflikt detektieren.
-
Die
WO 00/19437 offenbart einen
Dualport-DRAM-Speicherplatz mit einem Kondensator und zwei Transfer-Gates,
deren Lastwege seriell verbunden sind. Die serielle Verbindung ist
zwischen zwei Datenübertragungsleitungen
angeordnet. Diese Anordnung dient dazu, einen Dualport-Speicherplatz vorzusehen,
der unabhängig
voneinander durch zwei Datenverarbeitungseinheiten ausgelesen oder
beschrieben werden kann. Der entscheidende Vorteil der erfinderischen
Speicherplätze
in einer DRAM-Speicherarchitektur ist die größenoptimierte Konstruktion,
d. h. die Möglichkeit,
eine Speicherarchitektur mit wesentlich verringerten Raumbedürfnissen
vorzusehen. Der erfinderische Speicherplatz ist aufgrund seiner
Konstruktion, d. h. aufgrund der kleinen Anzahl von Schaltelementen
und der kurzen Länge
von Leiterwegen, gegenüber
Rauschen weitgehend immun. Die kleine Anzahl von Transistoren und
die kurze Länge
von Leiterwegen gestattet es auch, die Zeit zu verkürzen, die
zum Zugreifen auf die Daten benötigt
wird. Die Erfindung bezieht sich auch auf einen DRAM-Halbleiterspeicher
mit Dualport-Speicherplätzen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist eine allgemeine Aufgabe der vorliegenden Erfindung, eine Halbleiter-Speicheranordnung
(Multiport-Speicher) vorzusehen, die eines oder mehrere der durch
die Einschränkungen
und Nachteile der verwandten Technik verursachten Probleme im Wesentlichen
beseitigt.
-
Merkmale
und Vorteile der vorliegenden Erfindung werden in der folgenden
Beschreibung ausgeführt
und sind teilweise in der Beschreibung und den beigeschlossenen
Zeichnungen ersichtlich oder gehen aus der Praxis der Erfindung
gemäß den in
der Beschreibung vorgesehenen Lehren hervor. Aufgaben sowie andere
Merkmale und Vorteile der vorliegenden Erfindung werden durch einen
Multiport-Speicher realisiert und erzielt, der in der Spezifikation
so vollständig,
klar, präzise
und genau beschrieben wird, dass es einem gewöhnlichen Fachmann möglich ist,
die Erfindung auszuführen.
-
Um
diese und andere Vorteile zu erzielen, und in Übereinstimmung mit dem Zweck
der Erfindung, wie hier verkörpert
und allgemein beschrieben, sieht die Erfindung eine Halbleiter-Speicheranordnung
vor, wie sie in Anspruch 1 angegeben ist.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine Zeichnung zur Erläuterung
des Prinzips der vorliegenden Erfindung (erster Aspekt);
-
2 ist
eine Zeichnung, welche eine Auffrischoperation zeigt, die vorgenommen
wird, wenn nur einer der Ports verwendet wird;
-
3A bis 3C sind
Zeichnungen zur Erläuterung
des Prinzips der vorliegenden Erfindung im Fall von zwei Ports,
drei Ports und N Ports;
-
4 ist
ein Blockbild, das eine erste Ausführungsform des Multiport-Speichers
gemäß der vorliegenden
Erfindung zeigt (erster Aspekt);
-
5 ist
ein Blockbild eines Schaltungsaufbaus, der für die Befehlseingabe in einen
Entscheider relevant ist;
-
6A und 6B sind
Schaltbilder, die eine Konfiguration des Entscheiders zeigen;
-
7 ist
ein Zeitdiagramm, das den Betrieb des Entscheiders zeigt;
-
8 ist
ein Blockbild eines Schaltungsaufbaus, der für die Adresseneingabe in einen DRAM-Kern
relevant ist;
-
9 ist
ein Blockbild eines Schaltungsaufbaus, der für die Datenausgabe relevant
ist;
-
10 ist ein Schaltbild, das eine Konfiguration
einer Tranfersignal-Generatorschaltung zeigt;
-
11 ist ein Blockbild eines Schaltungsaufbaus,
der für
die Dateneingabe relevant ist;
-
12 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn Lesebefehle kontinuierlich eingegeben
werden;
-
13 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn Schreibbefehle kontinuierlich eingegeben
werden;
-
14 ist ein Zeitdiagramm, das einen Fall zeigt,
in dem sowohl ein A Port als auch ein B Port bei einer maximalen
Taktfrequenz operieren;
-
15 ist ein Zeitdiagramm, das den Fall zeigt, in
dem sowohl der A Port als auch der B Port bei der maximalen Taktfrequenz
operieren;
-
16 ist ein Zeitdiagramm, das Operationen in einem
Fall zeigt, in dem Befehle von einem Lesebefehl zu einem Schreibbefehl
wechseln;
-
17 ist eine Zeichnung, welche die Zeiteinstellung
zeigt, zu der ein Auffrischbefehl eingegeben wird, wenn Befehle
von "Read" zu "Write" wechseln;
-
18 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn einer der Ports deaktiviert ist;
-
19 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn beide Ports deaktiviert sind;
-
20A und 20B sind
Zeitdiagramme, die Operationen des DRAM-Kerns zeigen;
-
21 ist ein Zeitdiagramm, das Operationen bei doppelter
Rate zeigt, die vorgenommenen werden, wenn nur ein Port betrieben
wird;
-
22 ist ein Zeitdiagramm, das eine Operation bei doppelter
Rate zeigt, wenn eine Datentransferrate verdoppelt wird, indem eine
Taktfrequenz zweimal so hoch eingestellt wird;
-
23 ist eine Zeichnung zur Erläuterung einer zweiten Ausführungsform
der vorliegenden Erfindung (erster Aspekt);
-
24 ist eine Blockbild, das die zweite Ausführungsform
des Multiport-Speichers gemäß der vorliegenden
Erfindung zeigt (erster Aspekt);
-
25A und 25B sind
Zeitdiagramme zur Erläuterung
eines kontinuierlichen Modus;
-
26 ist ein Zeitdiagramm, das eine Operation zeigt,
die, wenn ein BUSY-Signal generiert wird, in Bezug auf einen Lesebefehl
des A Ports und einen Schreibbefehl des B Ports vorgenommen wird;
-
27 ist ein Zeitdiagramm, das eine Operation zeigt,
die, wenn ein BUSY-Signal generiert wird, in Bezug auf einen Lesebefehl
des A Ports und einen Schreibbefehl des B Ports vorgenommen wird;
-
28 ist ein Zeitdiagramm, das eine Operation zeigt,
die, wenn ein BUSY-Signal generiert wird, in Bezug auf einen Schreibbefehl
des A Ports und einen Schreibbefehl des B Ports vorgenommen wird;
-
29 ist ein Zeitdiagramm, das eine Operation zeigt,
die, wenn ein BUSY-Signal auftritt, in Bezug auf einen Schreibbefehl
des A Ports und einen Schreibbefehl des B Ports vorgenommen wird;
-
30 ist ein Zeitdiagramm, das einen Betrieb in
einer Konfiguration zeigt, die eine von einem Controller erteilte
Unterbrechung behandeln kann;
-
31 ist eine Zeichnung, welche die Konfiguration
eines Adressenkomparators, eines BUSY-I/O-Systems und eines Unterbrechungssystems
des Multiport-Speichers gemäß der zweiten Ausführungsform
der vorliegenden Erfindung zeigt (erster Aspekt);
-
32 ist ein Zeitdiagramm, das einen Betrieb einer
Master-Anordnung zeigt;
-
33 ist ein Zeitdiagramm, das einen Betrieb einer
Slave-Anordnung zeigt;
-
34 ist ein Zeitdiagramm, das eine Operation einer
Master-Anordnung zeigt, die vorgenommen wird, wenn die Schreibadressen
der beiden Ports identisch sind;
-
35 ist ein Zeitdiagramm, das eine Operation einer
Slave-Anordnung zeigt, die vorgenommen wird, wenn die Schreibadressen
der beiden Ports identisch sind;
-
36 ist ein Zeitdiagramm, das eine Operation der
Master-Anordnung in dem Fall zeigt, wo die Schreibadressen der beiden
Ports miteinander übereinstimmen,
um den Controller zu veranlassen, einen Unterbrechungsbefehl zu
erteilen;
-
37 ist ein Zeitdiagramm, das eine Operation der
Slave-Anordnung in dem Fall zeigt, wo die Schreibadressen der beiden
Ports miteinander übereinstimmen,
um den Controller zu veranlassen, einen Unterbrechungsbefehl zu
erteilen;
-
38 ist eine Zeichnung zur Erläuterung des Prinzips der Erfindung
(zweiter Aspekt), die einen Fall zeigt, in dem Leseoperationen in
Bezug auf zwei Ports vorgenommen werden;
-
39 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung (zweiter Aspekt), die ein Beispiel zeigt, in dem die Burst-Länge 4 ist;
-
40 ist eine Zeichnung, welche die Beziehung zwischen
einem minimalen externen Befehlszyklus und internen Operationszyklen
in dem Fall von 2 und 3 Ports zeigt;
-
41 ist eine Zeichnung, welche die Beziehung zwischen
einem minimalen externen Befehlszyklus und internen Operationszyklen
in dem Fall von n Ports zeigt;
-
42 ist eine Zeichnung, die eine Konfiguration eines
Multiport-Speichers gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt (zweiter Aspekt);
-
43A bis 43C sind
Zeichnungen, welche die Konfiguration des Multiport-Speichers gemäß der Ausführungsform
der vorliegenden Erfindung zeigen (zweiter Aspekt);
-
44 ist eine Zeichnung, welche eine Konfiguration
von Einheiten zeigt, die für
die Befehlsverarbeitung gemäß einer
ersten Ausführungsform
relevant sind;
-
45 ist eine Zeichnung, welche eine Konfiguration
von Einheiten zeigt, die für
die Befehlsverarbeitung gemäß der ersten
Ausführungsform
relevant sind;
-
46 ist eine Ausführungsform eines Entscheiders;
-
47 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Adressenverarbeitung gemäß der ersten
Ausführungsform
relevant ist;
-
48 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Datenausgabe gemäß der ersten
Ausführungsform
relevant ist;
-
49 ist eine Zeichnung, die eine Transfersignal-Generatorschaltung
von 48 zeigt;
-
50 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Dateneingabe gemäß der ersten
Ausführungsform
relevant ist;
-
51 zeigt Operationen, die vorgenommen werden,
wenn Lesebefehle konsekutiv in die beiden Ports eingegeben werden;
-
52 zeigt Operationen, die vorgenommen werden,
wenn Lesebefehle konsekutiv in die beiden Ports eingegeben werden;
-
53 zeigt ein Beispiel, in dem Schreibbefehle konsekutiv
eingegeben werden;
-
54 zeigt Operationen, die vorgenommen werden,
wenn sowohl der A Port als auch der B Port für Leseoperationen bei der maximalen
Taktfrequenz operieren;
-
55 zeigt Operationen, die vorgenommen werden,
wenn sowohl der A Port als auch der B Port für Leseoperationen bei der maximalen
Taktfrequenz operieren;
-
56 ist eine Zeichnung, welche Operationen zeigt,
die vorgenommen werden, wenn sowohl der A Port als auch der B Port
für Schreiboperationen bei
der maximalen Taktfrequenz operieren;
-
57 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn beide Ports bei der höchsten Frequenz
operieren, und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird;
-
58 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn beide Ports bei der höchsten Frequenz
operieren, und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird;
-
59A und 59B sind
Zeichnungen, die Operationen eines DRAM-Kerns zeigen;
-
60 ist ein Schaltbild, das eine Konfiguration
einer Auffrisch-Schaltung zeigt;
-
61 ist eine Zeichnung, welche die Schaltungskonfiguration
eines zweiter Entscheiders zeigt;
-
62 zeigt einen Fall, in dem beide Ports eine Befehlsänderung
Write→Read
erfahren, und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode
auftritt;
-
63 zeigt einen Fall, in dem beide Ports eine Befehlsänderung
Write→Read
erfahren, und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode
auftritt;
-
64 zeigt einen Fall, in dem beide Ports eine Befehlsänderung
Write→Read
wie in dem obigen Fall erfahren, jedoch ein Auffrischzeitgeber vor einer
REF Transferverbotsperiode auftritt;
-
65 zeigt einen Fall, in dem beide Ports eine Befehlsänderung
Write→Read
wie in dem obigen Fall erfahren, jedoch ein Auffrischzeitgeber vor einer
REF Transferverbotsperiode auftritt;
-
66 veranschaulicht einen Fall, in dem nur der
A Port einen Befehlsübergang
Write→Read eingeht,
und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode
auftritt;
-
67 veranschaulicht einen Fall, in dem nur der
A Port einen Befehlsübergang
Write→Read eingeht,
und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode
auftritt;
-
68 ist ein Zeitdiagramm, das einen Fall zeigt,
in dem Write in beiden Ports fortgesetzt wird;
-
69 ist ein Zeitdiagramm, das einen Fall zeigt,
in dem Write in beiden Ports fortgesetzt wird;
-
70 ist ein Zeitdiagramm, das Operationen der zweiten
Ausführungsform
zeigt, die in 57 und 58 gezeigten
Operationen der ersten Ausführungsform
entsprechen;
-
71 ist ein Zeitdiagramm, das Operationen der zweiten
Ausführungsform
zeigt, die in 57 und 58 gezeigten
Operationen der ersten Ausführungsform
entsprechen;
-
72 ist ein Zeitdiagramm, das Operationen der zweiten
Ausführungsform
zeigt, die in 56 gezeigten Operationen der
ersten Ausführungsform entsprechen;
-
73 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung (dritter Aspekt), die einen Fall zeigt, in dem Leseoperationen
in Bezug auf zwei Ports vorge nommen werden;
-
74 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung (dritter Aspekt), die ein Beispiel zeigt, in dem eine
Burst-Länge 4 ist;
-
75 ist eine Zeichnung, welche die Beziehung zwischen
einem minimalen externen Befehlszyklus und internen Operationszyklen
in dem Fall von 2 und 3 Ports zeigt;
-
76 ist eine Zeichnung, welche die Beziehung zwischen
einem minimalen externen Befehlszyklus und internen Operationszyklen
in dem Fall von N Ports zeigt;
-
77 ist eine Zeichnung, die eine Konfiguration
des Multiport-Speichers gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt (dritter Aspekt);
-
78A bis 78C sind
Zeichnungen, die eine Konfiguration des Multiport-Speichers gemäß der obigen
Ausführungsform
der vorliegenden Erfindung zeigen (dritter Aspekt);
-
79 ist eine Zeichnung, welche eine Konfiguration
von Einheiten zeigt, die für
die Befehlsverarbeitung gemäß einer
ersten Ausführungsform
relevant sind;
-
80 ist eine Zeichnung, welche eine Konfiguration
von Einheiten zeigt, die für
die Befehlsverarbeitung gemäß der ersten
Ausführungsform
relevant sind;
-
81 ist eine Ausführungsform eines Entscheiders;
-
82 ist eine Zeichnung, die eine Konfiguration
eines Befehlsregisters zeigt;
-
83 ist eine Zeichnung, die eine Konfiguration
des Befehlsregisters zeigt;
-
84A und 84B zeigen
Operationen einer Registersteuerschaltung;
-
85 ist eine Zeichnung, die Operationen des Befehlsregisters
zeigt;
-
86 ist eine Zeichnung, die Operationen des Befehlsregisters
zeigt;
-
87 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Adressenverarbeitung gemäß der Ausführungsform
relevant ist;
-
88 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Datenausgabe gemäß der Ausführungsform
relevant ist;
-
89 ist eine Zeichnung, die eine Transfersignal-Generatorschaltung
von 88 zeigt;
-
90 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Dateneingabe gemäß der Ausführungsform
relevant ist;
-
91 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Dateneingabe gemäß der Ausführungsform
relevant ist;
-
92 zeigt Operationen, die vorgenommen werden,
wenn Lesebefehle konsekutiv in die beiden Ports eingegeben werden;
-
93 zeigt Operationen, die vorgenommen werden,
wenn Lesebefehle konsekutiv in die beiden Ports eingegeben werden;
-
94 zeigt ein Beispiel, in dem Schreibbefehle konsekutiv
eingegeben werden;
-
95 zeigt Operationen, die vorgenommen werden,
wenn sowohl der A Port als auch der B Port für Leseoperationen bei maximalen
Taktfrequenzen operieren;
-
96 zeigt Operationen, die vorgenommen werden,
wenn sowohl der A Port als auch der B Port für Leseoperationen bei maximalen
Taktfrequenzen operieren;
-
97 ist eine Zeichnung, welche Operationen zeigt,
die vorgenommen werden, wenn sowohl der A Port als auch der B Port
für Schreiboperationen bei
maximalen Taktfrequenzen operieren;
-
98 ist ein Zeitdiagramm, das Operationen zeigt, die
vorgenommen werden, wenn beide Ports bei der höchsten Frequenz operieren,
und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird;
-
99 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn beide Ports bei der höchsten Frequenz
operieren, und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird;
-
100A und 100B sind
Zeichnungen, die Operationen eines DRAM-Kerns zeigen;
-
101 ist ein Blockbild, das eine Ausführungsform
eines Multiport-Speichers gemäß der vorliegenden
Erfindung zeigt (vierter Aspekt);
-
102 ist ein Zeitdiagramm, das ein Beispiel von
Operationen des Multiport-Speichers gemäß der vorliegenden Erfindung
zeigt (vierter Aspekt);
-
103 ist ein Zeitdiagramm, das ein weiteres Beispiel
von Operationen des Multiport-Speichers gemäß der vorliegenden Erfindung
zeigt (vierter Aspekt);
-
104 ist ein Zeitdiagramm, das noch ein weiteres
Beispiel von Operationen des Multiport-Speichers gemäß der vorliegenden
Erfindung zeigt (vierter Aspekt);
-
105 ist ein Blockbild eines Befehlsdecoderregisters;
-
106 ist ein Blockbild eines Entscheiders gemäß der Ausführungsform
der vorliegenden Erfindung (vierter Aspekt);
-
107 ist ein Zeitdiagramm, das Operationen des
Entscheiders zeigt;
-
108 ist ein Blockbild eines Adressenpuffers/registers
und einer Adressenänderungsschaltung;
-
109 ist ein Blockbild eines Speicherblocks;
-
110A und 110B sind
Zeitdiagramme, die Operationen des Speicherblocks zeigen;
-
111 zeigt eine erste Ausführungsform eines Multiport-Speichers
gemäß der vorliegenden
Erfindung (fünfter
Aspekt);
-
112 zeigt Details einer I/O-Schaltung 5010 und
eines Speicherblocks MB des Multiport-Speichers;
-
113 zeigt die Details einer Adressenvergleichsschaltung;
-
114 zeigt die Details eines Komparators;
-
115 zeigt Operationen des Komparators, die vorgenommen
werden, wenn den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführte Reihenadressensignale
miteinander übereinstimmen;
-
116 zeigt Operationen des Komparators in einem
Fall, in dem Reihenadressensignale RA zwischen den Eingabe/Ausgabe-Ports
PORT-A und PORT-B nicht übereinstimmen;
-
117 zeigt Operationen des Komparators, wenn die
den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale RA
unter der Bedingung übereinstimmen,
dass ein Taktsignal CLKA einen Zyklus hat, der von dem Zyklus eines
Taktsignals CLKB verschieden ist;
-
118 zeigt eine Entscheidungssteuerschaltung, die
in einer in 112 gezeigten Entscheidungsschaltung
vorgesehen ist;
-
119 zeigt Operationen der Entscheidungssteuerschaltung,
die vorgenommen werden, wenn den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführte Reihenadressensignale übereinstimmen;
-
120 zeigt Operationen, die vorgenommen werden,
wenn den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführte Reihenadressensignale
RA miteinander übereinstimmen;
-
121 zeigt Operationen, die vorgenommen werden,
wenn die Zyklen der Taktsignale CLKA und CLKB gleich sind, und die
Phase des Taktsignals CLKA der Phase des Taktsignals CLKB um mehr
als einen halben Zyklus voraus ist;
-
122 zeigt Operationen in dem Fall, wo die Reihenadressensignale
RA, die nahezu simultan den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden,
voneinander verschieden sind;
-
123 zeigt eine zweite Ausführungsform des Multiport-Speichers
und des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt);
-
124 zeigt eine dritte Ausführungsform des Multiport-Speichers
und des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt);
-
125 zeigt Details einer Entscheidungssteuerschaltung;
-
126 zeigt Operationen der Entscheidungssteuerschaltung,
die vorgenommen werden, wenn den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführte Reihenadressensignale
miteinander übereinstimmen;
-
127 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B
aktive Befehle ACT und dieselben Reihenadressensignale RA empfangen;
-
128 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn aktive Befehle ACT und voneinander verschiedene
Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden;
-
129 zeigt die Weise, in der eine Schreiboperation
vorgenommen wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B
aktive Befehle ACT und dieselben Reihenadressensignale RA empfangen;
-
130 zeigt einen Fall, in dem eine Schreiboperation
und eine Leseoperation aufeinanderfolgend in Bezug auf den Eingabe/Ausgabe-Port PORT-A
vorgenommen werden, und eine Schreiboperation, die auf dieselben
Reihenadressensignale RA gerichtet ist wie jene der Schreiboperation
des Eingabe/Ausgabe-Ports PORT-A, und eine Schreiboperation, die
auf dieselben Reihenadressensignale RA gerichtet ist wie jene der
Leseoperation des Eingabe/Ausgabe-Ports PORT-A, konsekutiv in Bezug auf
den Eingabe/Ausgabe-Port PORT-B vorgenommen werden;
-
131 zeigt einen Fall, in dem eine Schreiboperation
und eine Leseoperation aufeinanderfolgend in Bezug auf den Eingabe/Ausgabe-Port PORT-A
vorgenommen werden, und eine Leseoperation, die auf dieselben Reihenadressensignale
RA gerichtet ist wie jene der Schreiboperation des Eingabe/Ausgabe-Ports
PORT-A, und eine Schreiboperation, die auf dieselben Reihenadressensignale
RA gerichtet ist wie jene der Leseoperation des Eingabe/Ausgabe-Ports
PORT-A, konsekutiv in Bezug auf den Eingabe/Ausgabe-Port PORT-B
vorgenommen werden;
-
132 zeigt Operationen, die vorgenommen werden,
wenn die den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale
RA miteinander in dem Fall übereinstimmen, in
dem die Taktsignale CLKA und CLKB verschiedene Taktzyklen haben;
-
133 zeigt eine vierte Ausführungsform des Multiport-Speichers
und des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt);
-
134 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B
aktive Befehle ACT und dieselben Reihenadressensignale RA empfangen;
-
135 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn aktive Befehle ACT und verschiedene Reihenadressensignale
RA den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden;
-
136 zeigt einen Fall, in dem aktive Befehle ACT
und dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und Schreiboperationen vorgenommen werden, gefolgt davon,
dass aktive Befehle ACT und verschiedene Reihenadressensignale RA zugeführt werden,
was dazu führt,
dass Schreiboperationen vorgenommen werden;
-
137 zeigt einen Fall, in dem aktive Befehle ACT
und dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und Schreiboperationen vorgenommen werden, gefolgt davon,
dass aktive Befehle ACT und dieselben Reihenadressensignale RA zugeführt werden,
was dazu führt,
dass eine Leseoperation in dem Eingabe/Ausgabe-Port PORT-A vorgenommen
wird, und eine Schreiboperation in dem Eingabe/Ausgabe-Port PORT-B
vorgenommen wird;
-
138 zeigt einen Fall, in dem aktive Befehle ACT
und dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und eine Schreiboperation und eine Leseoperation vorgenommen
werden, gefolgt davon, dass aktive Befehle ACT und verschiedene Reihenadressensignale
RA zugeführt
werden, was dazu führt,
dass eine Schreiboperation und eine Leseoperation vorgenommen werden;
-
139 zeigt Operationen des Multiport-Speichers
gemäß einer
fünften
Ausführungsform
des Multiport-Speichers und des Verfahrens zum Steuern des Multiport-Speichers
der vorliegenden Erfindung (fünfter
Aspekt).
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Im
Folgenden werden Ausführungsformen der
vorliegenden Erfindung mit Bezugnahme auf die beigeschlossenen Zeichnungen
beschrieben.
-
(Erster Aspekt der Erfindung)
-
Zuerst
wird das Prinzip der vorliegenden Erfindung beschrieben (erster
Aspekt).
-
1 ist
eine Zeichnung zur Erläuterung
des Prinzips der vorliegenden Erfindung (erster Aspekt). Obwohl 1 eine
Zeichnung zur Erläuterung
des Prinzips in dem Fall von zwei Ports zeigt, kann derselbe Betrieb
erzielt werden, auch wenn zwei oder mehrere Ports (N Ports) vorgesehen
sind.
-
Eine
Zeitspanne, die äquivalent
ist zu zwei Operationszyklen einer internen Schaltung (DRAM-Kern),
ist als ein Zyklus eines externen Befehlszyklus definiert. Das heißt, Kernoperationszyklen
betragen das Doppelte der Rate der externen Befehlszyklen. Befehle,
die an einem A Port und einem B Port eingegeben werden, werden durch
den internen Speicher bei der doppelten Rate in einer solchen Reihenfolge
verarbeitet, dass gilt: je früher
eine Ankunft von Befehlen, desto früher die Verarbeitung der Befehle.
Ausgabedaten werden dann zu jedem Port weitergeleitet. Eine Serie
von Operationen, die eine Auswahl einer Wortleitung, eine Verstärkung von
Daten, eine Auswahl einer Spaltenleitung, eine Lese- oder Schreiboperation,
und eine Vorladeoperation enthalten, wird in einem Kernoperationszyklus
vorgenommen, wodurch eine Zugriffsoperation in Bezug auf den relevanten
Speicherblock vollendet wird.
-
Beispielsweise
wird zur Zeiteinstellung C1 eines externen Befehlszyklus, der für den A
Port von 1 relevant ist, ein Lesebefehl
am A Port eingegeben. Ferner wird zur Zeiteinstellung C1' eines externen Befehlszyklus,
der für
den B Port relevant ist, ein Lesebefehl am B Port eingegeben. Da
die Zeiteinstellung des Lesebefehls des A Ports geringfügig früher ist,
wird dieser Lesebefehl vor dem am B Port eingegebenen Lesebefehl
vorgenommen. Hier entspricht ein externer Befehlszyklus vier Taktzyklen.
Jeder Lesebefehl wird, wie in 1 gezeigt,
in zwei Taktzyklen ausgeführt
und vollendet, die einem Kernoperationszyklus entsprechen. Ansprechend
auf die Lesebefehle, welche am A Port und am B Port in den Intervallen
von vier Taktzyklen eingegeben werden, die äquivalent sind zu einem externen
Befehlszyklus, können
demgemäß Leseoperationen
vorgenommen werden, ohne einen BUSY-Zustand zu generieren, auch
wenn der Lesezugriff von dem A Port und der Lesezugriff von dem
B Port auf denselben Block gerichtet sind. Dies wird erzielt, indem
jeder Zugriff in zwei Taktzyklen durchgeführt und vollendet wird.
-
Auch
wenn auf denselben Speicherblock simultan von einer Vielzahl von
Ports zugegriffen wird, wird auf diese Weise kein BUSY-Zustand generiert, da
der interne Speicher eine konsekutive und kontinuierliche Verarbeitung
mit der doppelten Geschwindigkeit durchführen können.
-
Wenn
ein Auffrischbefehl von einer Außenseite der Anordnung erteilt
wird (z. B. am A Port), kann außerdem,
wie in 1 gezeigt, eine Auffrischoperation
innerhalb der Anordnung vorgenommen werden, ohne den Zugriff von
einem anderen Port zu beeinträchtigen
(d. h. der B Port in diesem Beispiel). In diesem Fall kann einer
der Vielzahl von Ports (d. h. der A Port in dem Beispiel von 1)
als Port ausgewählt
werden, der die Auffrischverwaltung durchführt, und ein Auffrischbefehl
kann immer von diesem Port eingegeben werden.
-
Außerdem kann
die Datenausgabe eine Form eines Burst-Typs annehmen, der Daten aus einer Vielzahl
von Spaltenadressen parallel liest, und der Daten durch das Konvertieren
der parallelen Daten in serielle Daten zur Zeit der Ausgabe ausgibt. Dies
erhöht
eine Datentransferrate und macht es möglich, Daten kontinuierlich
ansprechend auf kontinuierliche Lesebefehle auszugeben.
-
2 ist
eine Zeichnung, welche eine Auffrischoperation zeigt, die vorgenommen
wird, wenn nur einer der Ports verwendet wird.
-
Wenn
zwei Ports, wie in 2 gezeigt, z. B. der A Port
und der B Port, vorgesehen sind, besteht keine Notwendigkeit, beide
Ports operieren zu lassen. Das Vorsehen eines Auffrischzeitgebers
innerhalb der Anordnung macht es möglich, intern einen Auffrischbefehl
zu generieren. Beispielsweise kann, wie in 2 gezeigt,
ein Auffrischbefehl intern generiert werden, wenn einer der Ports
(z. B. der B Port) nicht operiert, wodurch eine Auffrischoperation durchgeführt wird,
ohne einen auf den A Port vorgenommenen Zugriff zu beeinträchtigen.
-
Nun
wird ein Beispiel betrachtet, bei dem ein Controller A den A Port
steuert, und ein Controller B den B Port steuert, während eine
Auffrischverwaltung durchgeführt
wird. Wenn in einem solchen Fall eine Funktion einer internen Auffrischung
existiert, wie oben beschrieben, kann der B Port vollständig gestoppt
werden, während
nur der A Port verwendet wird. Dies erzielt eine Reduktion des Energieverbrauchs
durch das Verfolgen von Änderungen
von Systemoperationen.
-
3A bis 3C sind
Zeichnungen zur Erläuterung
des Prinzips der vorliegenden Erfindung im Fall von zwei Ports,
drei Ports und N Ports.
-
Die
vorliegende Erfindung kann, wie oben beschrieben, auch bei dem Multiport-Speicher
mit drei oder mehreren Ports angewendet werden. 3A zeigt Operationen eines Ports in dem Fall,
wo zwei Ports vorgesehen sind, wie in 1 und 2 gezeigt. 3B zeigt Operationen eines Ports in dem Fall von
drei Ports, und 3C zeigt den Fall eines N-Port-Speichers.
Die Länge
eines internen Operationszyklus kann, wie in 3C gezeigt,
geeignet auf 1/N so lange wie der externe Befehlszyklus in dem Fall
des N-Port-Speichers eingestellt werden.
-
Im
Folgenden wird eine Halbleiter-Speicheranordnung gemäß einer
Ausführungsform
der vorliegenden Erfindung beschrieben.
-
4 ist
ein Blockbild, das eine erste Ausführungsform des Multiport-Speichers
gemäß der vorliegenden
Erfindung zeigt. In diesem Beispiel ist eine Konfiguration so, dass
zwei Ports, d. h. ein A Port und ein B Port, vorgesehen sind.
-
Ein
Multiport-Speicher 10 von 4 enthält einen
A Port 11, einen B Port 12, eine Selbstauffrisch-Schaltung 13,
einen DRAM-Kern 14, einen Entscheider 15, ein
Auffrischbefehlsregister 16, ein Befehlsregister A 17,
ein Befehlsregister B 18, ein Auffrischadressenregister 19,
ein Adressenregister A 20, ein Adressenregister B 21,
ein Schreibdatenregister A 22, ein Schreibdatenregister
B 23, ein Transfergate A 24 und ein Transfergate
B 25.
-
Der
A Port 11 enthält
ein Modusregister 31, einen CLK-Puffer 32, eine Daten-I/O-Schaltung 33, einen
Adressenpuffer 34 und einen Befehlsdecoder 35.
Ferner enthält
der B Port 12 ein Modusregister 41, einen CLK-Puffer 42,
eine Daten-I/O-Schaltung 43,
einen Adressenpuffer 44 und einen Befehlsdecoder 45.
An dem A Port 11 und dem B Port 12 wird ein Zugriff
auf einen/von einem externen Bus unabhängig synchron mit jeweiligen
Taktsignalen CLKA und CLKB hergestellt. Die Modusregister 31 und 41 können darin
Moduseinstellungen wie eine Datenlatenz und eine Burst-Länge in Bezug
auf jeweilige Ports speichern. In dieser Ausführungsform sind sowohl der
A Port 11 als auch der B Port 12 mit dem jeweiligen
Modusregister versehen, so dass jeder Port Moduseinstellungen vornehmen
kann. Ein Modusregister kann jedoch beispielsweise nur in einem
der Ports eingerichtet sein, so dass Einstellungen für beide Ports
vorgenommen werden können,
indem Ein stellungen an diesem einem Port vorgenommen werden.
-
Die
Selbstauffrisch-Schaltung 13 enthält einen Auffrischzeitgeber 46 und
einen Auffrischbefehlsgenerator 47. Die Selbstauffrisch-Schaltung 13 generiert
einen Auffrischbefehl innerhalb der Anordnung, und empfängt Signale
CKEA1 und CKEB1 von dem A Port 11 bzw. dem B Port 12.
Signale CKEA1 und CKEB1 sind Signale, die durch das Puffern externer
Signale CKEA und CKEB durch die CLK-Puffer 32 bzw. 42 erhalten
werden. Die externen Signale CKEA und CKEB werden verwendet, um
die Taktpuffer jeweiliger Ports anzuhalten und die jeweiligen Ports
zu deaktivieren. Wenn einer von dem A Port 11 und dem B
Port 12 in einen deaktivierten Zustand gebracht wird, startet
die Selbstauffrisch-Schaltung 13 eine Operation davon.
Wenn eine Einstellung in den Modusregistern 31 und 41 dahingehend
vorgenommen wurde, welcher der Ports für die Auffrischverwaltung verantwortlich
ist, kann die Selbstauffrisch-Schaltung 13 aktiviert werden,
wenn der für
die Auffrischverwaltung verantwortliche Port inaktiv wird.
-
Ferner
enthält
der DRAM-Kern 14 ein Speicher-Array 51, einen
Decoder 52, eine Steuerschaltung 53, einen Schreibverstärker 54 und
einen Lesepuffer 55. Das Speicher-Array 51 speichert
darin Daten, die geschrieben wurden und zu lesen sind, und enthält DRAM-Speicherzellen,
Zellengate-Transistoren, Wortleitungen, Bitleitungen, Leseverstärker, Spaltenleitungen,
Spaltengates, etc. Der Decoder 52 decodiert eine Adresse,
auf die zuzugreifen ist. Die Steuerschaltung 53 steuert
Operationen des DRAM-Kerns 14. Der Schreibverstärker 54 verstärkt in das
Speicher-Array 51 zu schreibende Daten. Der Lesepuffer 55 verstärkt Daten,
die aus dem Speicher-Array 51 gelesen
werden.
-
Eingaben
in den A Port 11 werden zu dem Adressenregister A 20,
dem Auffrischbefehlsregister 16, dem Befehlsregister A 17 und
dem Schreibdatenregister A 22 trans feriert. Ferner werden
Eingaben in den B Port 12 dem Adressenregister B 21,
dem Auffrischbefehlsregister 16, dem Befehlsregister B 18 und
dem Schreibdatenregister B 23 zugeführt. Der Entscheider (Entscheidungsschaltung) 15 bestimmt eine
Reihenfolge, in der Befehle eingegeben wurden, um zu bestimmen,
welcher Befehl Priorität
für eine Verarbeitung
zwischen dem A Port 11 und dem B Port 12 erhält. In der
Reihenfolge, die bestimmt wird, transferiert der Entscheider 15 Befehle,
Adressen und Daten (in dem Fall einer Schreiboperation) zum DRAM-Kern 14 von
den jeweiligen Registern. Der DRAM-Kern 14 operiert auf
der Basis der empfangenen Daten. In dem Fall eines Lesebefehls werden aus
dem DRAM-Kern 14 gelesene
Daten zu dem Port gesendet, wo der entsprechende Befehl eingegeben
wurde, und werden dann von parallelen Daten in serielle Daten konvertiert,
gefolgt von ihrer Ausgabe synchron mit dem Takt dieses Ports.
-
5 ist
ein Blockbild eines Schaltungsaufbaus, der für die Befehlseingabe in den
Entscheider 15 relevant ist.
-
Der
Befehlsdecoder 35 enthält
einen Eingabepuffer 61, einen Befehlsdecoder 62 und
eine (n-1)-Taktverzögerungsschaltung 63.
Außerdem
enthält
der Befehlsdecoder 45 einen Eingabepuffer 71, einen
Befehlsdecoder 72 und eine (n-1)-Taktverzögerungsschaltung 73.
Das Befehlsregister A 17 enthält ein Lesebefehlsregister 17-1 und
ein Schreibbefehlsregister 17-2. Außerdem enthält das Befehlsregister B 18 ein
Lesebefehlsregister 18-1 und ein Schreibbefehlsregister 18-2.
-
In
dem Fall eines Lesebefehls wird ein in den Eingabepuffer 61 oder 71 eingegebener
Befehl zum Lesebefehlsregister 17-1 oder 18-1 jeweils
durch den Befehlsdecoder 62 oder 72 ohne jede
Zeitmanipulation gesendet. In dem Fall eines Schreibbefehls wird ein
eingegebener Befehl durch die (n-1)-Taktverzögerungsschaltung 63 oder 73 um
(n-1) Takte verzögert,
und wird dann zum Schreibbefehlsregister 17-2 oder 18-2 zu
einer Zeiteinstellung transferiert, wenn die n-ten Daten (d. h.
letzten Daten) einer Serie zu schreibender Burst-Daten eingegeben
werden.
-
In
dem Fall eines Auffrischbefehls wird ein Auffrischbefehl, der von
dem A Port 11, dem B Port 12 oder dem Auffrischbefehlsgenerator 47 zugeführt wird,
zum Auffrischbefehlsregister 16 transferiert. Da das Auftreten
von Auffrischbefehlen nicht so häufig ist,
besteht keine Notwendigkeit, eine Vielzahl von Auffrischbefehlsregistern
vorzusehen. Ferner werden Selbstauffrisch-Einstellinformationen,
die in den Auffrischbefehlsgenerator 47 eingegeben werden, von
den Modusregistern 31 und 41 zugeführt, und zeigen
an, welcher der Ports für
die Auffrischverwaltung verantwortlich ist.
-
Der
Entscheider 15 detektiert eine Reihenfolge, in der die
Befehle zu den jeweiligen Befehlsregistern transferiert wurden,
und sendet die Befehle einen nach dem anderen zur DRAM-Steuerschaltung 53 in
dieser Reihenfolge.
-
Bei
Empfang eines Befehls (oder bei der Annäherung an ein Ende einer Befehlsausführung) generiert
die DRAM-Steuerschaltung 53 ein RESET1 Signal, wobei der
Entscheider 15 für
einen nächsten Befehl
vorbereitet wird. In der besonderen Konfiguration dieser Ausführungsform
empfängt
die DRAM-Steuerschaltung 53 den nächsten Befehl, wenn das RESET1
Signal beendet wird.
-
Beim
Empfang des RESET1 Signals führt der
Entscheider 15 eines der Rücksetzsignale ResetRA, ResetWA,
und ResetRB, ResetWB und ResetREF einem entsprechenden von dem Befehlsregister
A 17, dem Befehlsregister B 18 und den Auffrischbefehlsregistern 16 zu.
Durch diese Operation wird das Befehlsregister, das darin einen
Befehl speichert, der zum DRAM-Kern 14 transferiert wurde,
zurückgesetzt,
und der fol gende Befehl wird in diesem Befehlsregister vorbereitet.
-
6A und 6B sind
Schaltbilder, die eine Konfiguration des Entscheiders 15 zeigen.
-
Der
Entscheider 15, wie in 6A gezeigt, enthält Komparatoren 80-1 bis 80-10,
UND-Schaltungen 81-1 bis 81-5, UND-Schaltungen 82-1 bis 82-5, UND-Schaltungen 83-1 bis 83-5,
die Verzögerungsschaltungen 84-1 bis 84-5,
Inverter 85 bis 87, eine NICHT-UND-Schaltung 88,
und Inverter 89 und 90. Die Komparatoren 80-1 bis 80-10 haben
jeweils dieselbe Schaltungskonfiguration, und, wie in 6B gezeigt, enthalten NICHT-UND-Schaltungen 91 und 92,
und Inverter 93 und 94.
-
Ein
Lesebefehlssignal RA2 und ein Schreibbefehlssignal WA2 von dem Befehlsregister
A 17, ein Lesebefehlssignal RB2 und ein Schreibbefehlssignal WB2
von dem Befehlsregister B 18, und ein Auffrischbefehl REF2
von dem Auffrischbefehlsregister 16 werden dem Entscheider 15 zugeführt. In
Bezug auf alle der zehn Kombinationen, die durch das Auswählen von
zwei der fünf
Befehlssignale erhalten werden, bestimmen die 10 Komparatoren 80-1 bis 80-10,
welches früher
ist als das andere hinsichtlich der Zeiteinstellung der Befehlsankunft.
-
Jeder
Komparator vergleicht die Zeiteinstellungen der beiden Befehle,
und setzt einen der Ausgänge
auf HIGH, welcher dem Eingang entspricht, der HIGH vor dem anderen
Eingang empfangen hat. Beispielsweise bestimmt jeder der Komparatoren 80-1 bis 80-4,
welches das frühere
von dem Lesebefehlssignal RA2 von dem A Port 11 oder einem
entsprechenden der vier anderen Befehle ist. Wenn das Lesebefehlssignal
RA2 früher
ist als ein beliebiges der vier anderen Befehle, wird ein Lesebefehlssignal RA31,
das aus der UND-Schaltung 81-1 ausgegeben wird,
auf HIGH eingestellt. Wenn das RESET1 Signal LOW ist, wird dieses
Lesebefehlssignal RA31 von dem Entscheider 15 dem DRAM-Kern 14 als
Lesebe fehlssignal RA3 zugeführt.
-
Wenn
der DRAM-Kern 14 den Befehl empfängt, generiert der DRAM-Kern 14 das
RESET1 Signal, das HIGH ist. Dieses RESET1 Signal wird von den Invertern 85 bis 87,
der NICHT-UND-Schaltung 88 und
dem Inverter 89 in ein Impulssignal konvertiert, und wird
den UND-Schaltungen 83-1 bis 83-5 zugeführt. Wenn
das Lesebefehlssignal RA31 beispielsweise HIGH ist, wird ein Signal
(ResetRA), das das Befehlsregister mit dem empfangenen Befehl darin
zurücksetzt,
durch die Verzögerungsschaltung 84-1 generiert.
-
7 ist
ein Zeitdiagramm, das den Betrieb des Entscheiders 15 zeigt.
-
Signale
mit in 7 aufgelisteten Namen sind
in jeweiligen Positionen von 6A gezeigt. 7 zeigt
Operationen des Entscheiders 15, wenn Lesebefehle dem A
Port 11 und dem B Port 12 zugeführt werden.
Ein Lesebefehl RA2, wie in 7 gezeigt,
der dem A Port 11 entspricht, wird ausgewählt, dass
er Priorität
hat, wodurch RA31 generiert wird, so dass die Kernschaltung eine
Leseoperation READ-A vornimmt. Ansprechend auf das Rücksetzsignal RESET1,
das dadurch generiert wird, wird das Lesebefehlssignal RA2 zurückgesetzt.
Ansprechend darauf wird ein Lesebefehl RB2 ausgewählt, der
dem B Port 12 entspricht, wodurch RB31 generiert wird. Wenn
das Rücksetzsignal
RESET1 LOW wird, wird der Lesebefehl RB3 der Kernschaltung zugeführt, wodurch
eine Leseoperation READ-B durchgeführt wird.
-
8 ist
ein Blockbild eines Schaltungsaufbaus, der für die Adresseneingabe in den DRAM-Kern 14 relevant
ist.
-
Der
Adressenpuffer 34 des A Ports 11 enthält einen
Eingabepuffer 34-1, ein Transfergate 34-2, und eine
ODER-Schaltung 34-3. Ein Impulssignal, das Impulse aufweist,
die Anstiegkanten des Lesebefehlssignals RA1 entsprechen, das aus
dem in 5 gezeigten Befehlsdecoder 62 ausgegeben
wird, wird als RA1P einem der Eingänge der ODER-Schaltung 34-3 zugeführt. Ferner
wird ein Impulssignal, das Impulse aufweist, die Anstiegkanten des
Schreibbefehlssignal WA1 entsprechen, das aus dem in 5 gezeigten
Befehlsdecoder 62 ausgegeben wird, als WA1P dem anderen
der Eingänge
der ODER-Schaltung 34-3 zugeführt. Hier im Nachstehenden
repräsentiert
ein Signal mit dem Buchstaben "P" am Ende seines Signalnamens
ein Signal, das Impulse aufweist, die aus Anstiegkanten eines Signals
mit einem entsprechenden Signalnamen bestehen.
-
Der
Adressenpuffer 44 des B Ports 12 enthält einen
Eingabepuffer 44-1, ein Transfergate 44-2 und
eine ODER-Schaltung 44-3.
-
Das
Adressenregister A 20 enthält eine Adressenverriegelung 101,
ein Transfergate 102, eine Adressenverriegelung 103,
ein Transfergate 104, ein Transfergate 105, eine
Adressenverriegelung 106 und ein Transfergate 107.
Ferner enthält das
Adressenregister B 21 eine Adressenverriegelung 111,
ein Transfergate 112, eine Adressenverriegelung 113,
ein Transfergate 114, ein Transfergate 115, eine
Adressenverriegelung 116 und ein Transfergate 117.
-
Das
Auffrischadressenregister 19 enthält einen/ein Auffrischadressenzähler/register 19-1,
einen Inverter 19-2 und ein Transfergate 19-3.
Eine Auffrischadresse wird von dem Auffrischadressenzähler/register 19-1 generiert
und gehalten.
-
Durch
Operationen der oben beschriebenen Schaltungskonfiguration wird,
wenn ein Lesebefehl oder ein Schaltbild von der Außenseite
der Anordnung eingegeben wird, eine zusammen mit dem Befehl eingegebene
Adresse zur Adressenverriegelung 101 oder 111 gesendet.
In dem Fall eines Lesebefehls wird die Adresse zur Adressenverriegelung 106 oder 116 ohne
jede Zeitmanipulation transferiert. In dem Fall eines Schreibbefehls
wird die Adresse zur Adressenverriegelung 103 oder 113 zu
der Zeiteinstellung transferiert, zu der die letzten Daten einer Serie
von Schreibdaten erfasst werden.
-
Ein
Adressensignal, wie in der Schaltungskonfiguration von 8 gezeigt,
wird von einer Adressenverriegelung zum DRAM-Kern 14 gesendet,
ansprechend auf Impulssignale RA3P, WA3P, RB3P, WB3P, und REF3P,
welche den jeweiligen Befehlssignalen RA3, WA3, RB3, WB3 und REF3
entsprechen, die von dem Entscheider 15 zum DRAM-Kern 14 gesendet
werden.
-
9 ist
ein Blockbild eines Schaltungsaufbaus, der für die Datenausgabe relevant
ist.
-
Ein
für die
Datenausgabe der Daten-I/O-Schaltung 33 relevanter Teil
enthält
eine Datenverriegelung 121, ein Transfergate 122,
eine Datenverriegelung 123, einen Parallel-Seriell-Wandler 124,
einen Ausgabepuffer 125 und eine Transfersignal-Generatorschaltung 126.
Außerdem
enthält
der für
die Datenausgabe der Daten-I/O-Schaltung 43 relevante Teil
eine Datenverriegelung 131, ein Transfergate 132,
eine Datenverriegelung 133, einen Parallel-Seriell-Wandler 134,
eine Ausgabepuffer 135 und eine Transfersignal-Generatorschaltung 136.
-
Aus
dem Speicher-Array 51 gelesene Daten werden durch den Lesepuffer 55 verstärkt, und
werden der Daten-I/O-Schaltung 33 oder der Daten-I/O-Schaltung 43 jeweils
durch das Transfergate A 24 oder das Transfergate B 25 zugeführt. Wenn sich
der ausgeführte
Befehl auf das Lesen von Daten aus dem A Port 11 bezieht, öffnet sich
das Transfergate A24, wohingegen sich, wenn sich der ausgeführte Befehl
auf das Lesen von Daten aus dem B Port 12 bezieht, das
Transfergate B25 öffnet.
Die auf diese Weise zugeführten
Daten werden von der Datenverriegelung 121 oder 131 verriegelt
und gehalten.
-
Das
Transfergate 122 oder 132 öffnet sich eine vorherbestimmte
Latenz nach dem Empfang eines Lesebefehls an einem entsprechenden
Port ansprechend auf das von der Transfer signal-Generatorschaltung 126 oder 136 zugeführte Transfersignal. Die
Daten der Datenverriegelung 121 oder 131 werden
so jeweils zur Datenverriegelung 123 oder 133 gesendet.
Danach werden die Daten durch den Parallel-Seriell-Wandler 124 oder 134 von
parallelen Daten in serielle Daten konvertiert. Dann werden die
Daten zum Ausgabepuffer 125 oder 135 gesendet,
und werden daraus ausgegeben.
-
10 ist ein Schaltbild, das eine Konfiguration
der Transfersignal-Generatorschaltung 126 oder 136 zeigt.
-
Die
Transfersignal-Generatorschaltung 126 oder 136 enthält Flip-Flops 141 bis 144 und
einen Multiplexer 145. Das Lesebefehlssignal RA1 oder RB1
wird dem Flip-Flop 141 zugeführt und breitet sich weiter
von einem Flip-Flop zum nächsten
synchron mit dem Taktsignal CLKA1 oder CLKB1 aus. Die Latenzinformationen
A und B werden dem Multiplexer 145 zugeführt. Diese
Latenzinformationen spezifizieren eine Latenzlänge beispielsweise durch die
Anzahl von Taktzyklen. Auf der Basis der Latenzinformationen wählt der
Multiplexer 145 einen Q Ausgang eines entsprechenden Flip-Flops
aus, und gibt ihn als Datentransfersignal aus.
-
11 ist ein Blockbild eines für die Dateneingabe relevanten
Schaltungsaufbaus.
-
Der
für die
Dateneingabe der Daten-I/O-Schaltung 33 relevante Teil
enthält
einen Dateneingabepuffer 151, einen Seriell-Parallel-Wandler 152 und
eine Datentransfereinheit 153. Der für die Dateneingabe der Daten-I/O-Schaltung 43 relevante Teil
enthält
einen Dateneingabepuffer 154, einen Seriell-Parallel-Wandler 155 und
eine Datentransfereinheit 156.
-
Daten,
die seriell in den Dateneingabepuffer 151 oder 154 eingegeben
werden, werden jeweils durch den Seriell-Parallel-Wandler 152 oder 155 in parallele
Daten konvertiert. Wenn die letzten Daten eingegeben werden, werden
die parallelen Daten zu dem Schreibdatenregister A 22 oder
dem Schreibdatenregister B 23 gesendet. Wenn der Schreibbefehl vom
Entscheider 15 zum DRAM-Kern 14 gesendet wird,
werden die Daten des Schreibdatenregisters A 22 oder des
Schreibdatenregisters B 23 zum DRAM-Kern 14 transferiert,
ansprechend auf ein Signal WA3P oder WB3P, das die Zeiteinstellung
zeigt, die der Transmission des Schreibbefehls zum DRAM-Kern 14 entspricht.
-
12 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn Lesebefehle kontinuierlich eingegeben
werden.
-
Der
A Port 11 und der B Port 12 operieren synchron
mit den Takten CLKA bzw. CLKB, die unterschiedliche Frequenzen haben.
In diesem Beispiel operiert der A Port 11 mit einer maximalen
Taktfrequenz, und der B Port 12 operiert mit einer langsameren
Taktfrequenz.
-
Der
A Port 11 hat die folgenden Einstellungen: Lesebefehlszyklus
= 4 (CLKA), Datenlatenz = 4, und Burst-Länge = 4. Der B Port 12 hat
die Einstellungen als Lesebefehlszyklus = 2 (CLKB), Datenlatenz
= 2, und Burst-Länge
= 2. Eine Datenlatenz und eine Burst-Länge werden in dem Modusregister
jedes Ports eingestellt.
-
Von
den Ports empfangene Befehle werden in jeweiligen Befehlsregistern
gespeichert. Ein Auffrischbefehl wird in dem Auffrischbefehlsregister
gespeichert. Der Entscheider überwacht
diese Befehlsregister, und sendet Befehle zum DRAM-Kern in einer
Reihenfolge, in der die Befehle empfangen werden. Ein nächster Befehl
wird gesendet, wenn die Verarbeitung des vorhergehenden Befehls
vollendet ist.
-
Aus
dem DRAM-Kern gelesene Daten werden von dem Lesepuffer zu den Datenverriegelungen (siehe 9)
der jeweiligen Ports gesendet. Danach werden die Daten von parallel
in seriell konvertiert, und werden als Burst-Ausgänge syn chron
mit dem externen Takt ausgegeben.
-
Obwohl
der Auffrischbefehl einmal von dem A Port eingegeben wird, werden
Operationen des B Ports nicht beeinträchtigt, wie in 12 gezeigt.
-
13 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn Schreibbefehle kontinuierlich eingegeben
werden.
-
Von
der Außenseite
der Anordnung zur Zeit einer Schreiboperation eingegebene Daten
nehmen eine Form von Burst-Eingängen
an. Die Zeiteinstellung, zu welcher der Schreibbefehl in dem Schreibbefehlsregister
gespeichert wird, ist die Zeiteinstellung, zu der die letzten Daten
von Burst-Eingängen
eingegeben werden.
-
Der
von dem A Port zugeführte
Auffrischbefehl, wie in 13 gezeigt,
beeinträchtigt
keine Operationen des B Ports.
-
14 ist ein Zeitdiagramm, das den Fall zeigt, in
dem sowohl der A Port als auch der B Port bei der maximalen Taktfrequenz
operieren.
-
Es
kann eine Phasendifferenz zwischen den Taktsignalen dieser Ports
vorliegen, wie in 14 gezeigt. Beide Ports haben
die folgenden Einstellungen: Lesebefehlszyklus = 4, Datenlatenz
= 4, und Burst-Länge
= 4. Es gibt kein Problem bezüglich
der Operationen, wie in der Figur ersichtlich ist, auch wenn beide
Ports bei der maximalen Taktfrequenz betrieben werden, und Lesebefehle
kontinuierlich eingegeben werden.
-
15 ist ein Zeitdiagramm, das den Fall zeigt, in
dem sowohl der A Port als auch der B Port bei der maximalen Taktfrequenz
operieren. In 15 empfangen beide Ports kontinuierlich
Schreibbefehle.
-
Eine
Phasendifferenz kann zwischen den Taktsignalen dieser Ports existieren,
wie in 15 gezeigt. Beide Ports haben
die Einstellungen als Schreibbefehlszyklus = 4, Datenlatenz = 4,
und Burst-Länge
= 4. Operationen schreiten geeignet fort, wie in der Figur ersichtlich
ist, auch wenn beide Ports bei der maximalen Taktfrequenz betrieben
werden, und Schreibbefehle kontinuierlich eingegeben werden.
-
16 ist ein Zeitdiagramm, das Operationen in dem
Fall zeigt, in dem Befehle von einem Lesebefehl zu einem Schreibbefehl
wechseln.
-
Ein
Befehlsübergang "Write→Read" muss ein extra Befehlsintervall
verglichen mit dem Befehlsintervall von "Write→Write" oder "Read→Read" aufweisen. Dies
ist darauf zurückzuführen, dass
ein Schreibbefehl zur Verarbeitung davon zu der Zeiteinstellung
gesendet wird, wenn die letzten Daten eines Burst-Eingangs eingegeben
werden. Im Gegensatz dazu ist die Zeiteinstellung, zu der ein Lesebefehl
zur Verarbeitung davon transferiert wird, als die Zeiteinstellung
definiert, zu welcher der Lesebefehl eingegeben wird, so dass eine
Notwendigkeit besteht, ein extra Befehlsintervall vorzusehen, wenn
aufeinanderfolgende Befehle "Write→Read" sind. Eine solche Notwendigkeit
kann der Tatsache zuzuschreiben sein, dass Eingabedaten, die eine
Form eines Burst-Eingangs annehmen, in parallele Daten konvertiert
werden. Wenn nur ein Stück
von Daten eingegeben wird, anstelle der Eingabe von vier Stücken von
Daten als Burst-Eingang,
besteht keine Notwendigkeit, ein extra Befehlsintervall vorzusehen,
auch wenn zwei aufeinanderfolgende Befehle "Write→Read" sind.
-
Da
nur ein Stück
von Daten für
einen Schreibbefehl eingegeben wird, können in einer solchen Konfiguration
Operationen für
die "Write→Read"-Befehlsfolge geeignet
vorgenommen werden, auch wenn dasselbe Befehlsintervall wie in dem Fall
von "Write→Write" oder "Read→Read" verwendet wird.
-
17 ist eine Zeichnung, welche die Zeiteinstellung zeigt,
zu der ein Auffrischbefehl eingegeben wird, wenn Befehle von "Read" zu "Write" wechseln.
-
Oben
in der Zeichnung ist eine Zeiteinstellung gezeigt, zu der ein Auffrischbefehl
eingegeben werden sollte. Ein Auffrischbefehl kann geeignet zu einer
beliebigen Zeiteinstellung während
der wie veranschaulichten Periode eingegeben werden. Auch wenn ein
Auffrischbefehl beispielsweise zu der in 17 gezeigten
Zeiteinstellung eingegeben wird, startet eine Auffrischoperation
nur dann, wenn die Ausführung
eines vorhergehenden Schreibbefehls vollendet ist, bis zu welcher
Zeit der Auffrischbefehl in einem Bereitschaftszustand gehalten
wird. Deshalb kann ein Auffrischbefehl zu einer beliebigen Zeiteinstellung
geeignet eingegeben, solange er in die Periode fällt, die diesem Bereitschaftszustand
entspricht.
-
18 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn einer der Ports deaktiviert wird.
-
Wenn,
wie in 18 gezeigt, einer der Ports (d.
h. der A Port 11 in 18)
deaktiviert wird, wird ein Auffrischbefehl intern auf der Basis
des Auffrischzeitgebers generiert, wodurch eine Auffrischoperation
ausgeführt
wird.
-
19 ist ein Zeitdiagramm, das Operationen zeigt,
die vorgenommen werden, wenn beide Ports deaktiviert werden.
-
Wenn
beide Ports deaktiviert werden, wie in 19 gezeigt,
wird ein Auffrischbefehl intern auf der Basis des Auffrischzeitgebers
generiert, wodurch eine Auffrischoperation ausgeführt wird.
-
20A und 20B sind
Zeitdiagramme, die Operationen des DRAM-Kerns zeigen.
-
20A zeigt den Fall einer Leseoperation, und 20B zeigt den Fall einer Schreiboperation. Zu
der wie in 20A und 20B gezeigten
Operationszeiteinstellung wird ein eingegebener Befehl von aufeinanderfolgenden
Operationen einer Wortleitungsauswahl, einer Datenverstärkung, eines Rückschreibens
und eines Vorladens gefolgt, bevor die gesamte Operation vollendet
ist.
-
21 ist ein Zeitdiagramm, das Operationen bei doppelter
Rate zeigt, die vorgenommen werden, wenn nur ein Port betrieben
wird.
-
Durch
das Stoppen eines der beiden Ports können die Intervalle von Befehlseingaben
in den operierenden Port um die Hälfte verkürzt werden. Wenn dies geschieht,
sind der schnellste Zyklus externer Befehle und der schnellste Zyklus
interner Aktionen miteinander identisch. In dem Beispiel von 21 werden die Befehlsintervalle verkürzt, ohne die
Taktfrequenz zu ändern.
Da in diesem Fall auch die Burst-Länge kürzer wird,
ist die Datentransferrate gleich, wie wenn beide Ports verwendet
werden.
-
22 ist ein Zeitdiagramm, das eine Operation bei
doppelter Rate zeigt, wenn eine Datentransferrate verdoppelt wird,
indem die Taktfrequenz zweimal so hoch eingestellt wird.
-
Wenn
in 22 einer der beiden Ports gestoppt wird, wird
das in den operierenden Port eingegebene Taktsignal auf eine Frequenz
eingestellt, die zweimal so hoch ist. Im Zusammenhang damit werden
die Zeitintervalle von Befehlseingaben halb so lang. Da in diesem
Fall die Burst-Länge
gleich wie in dem Fall ist, wo beide Ports verwendet werden, ist die
Datentransferrate zweimal so schnell, wie wenn beide Ports verwendet
werden.
-
Da
das externe Taktsignal nur in die I/O-Schaltungseinheit eingegeben
wird, ist es zusätzlich
leicht, die Operation bei doppelter Rate zu implementieren, wenn
diese Schaltungseinheit so ausgebildet ist, dass sie Hochgeschwindigkeitsoperationen bewältigt.
-
23 ist eine Zeichnung zur Erläuterung einer zweiten Ausführungsform
der vorliegenden Erfindung.
-
Im
Allgemeinen wird ein Speicher gemäß der Verwendung davon erweitert.
Dasselbe gilt in dem Fall eines Multiport-Speichers, und es kann einen Fall geben,
in dem eine Vielzahl von Multiport-Speichern zum Zweck der Expansion
von Speicherraum vorgesehen ist.
-
Ein
Multiport-Speicher enthält
einen Entscheider, und detektiert, welche der Befehle früher sind
beim Eintritt in die jeweiligen Ports, gefolgt von der Ausführung von
Befehlen in der detektierten Reihenfolge. Auch wenn Befehle zu nahezu
derselben Zeit in die jeweiligen Ports eingegeben werden, wird eine
Reihenfolge für
die aufeinanderfolgende Ausführung
der Befehle bestimmt. In einem in 23 gezeigten
Beispiel ist eine Vielzahl von Multiport-Speichern 200-1 bis 200-n vorgesehen,
und dieselben Befehle werden den Multiport-Speichern 200-1 bis 200-n von
einem A Port Controller 201 und einem B Port Controller 202 zugeführt. Die
relative Zeit der Befehlsankunft an jedem Multiport-Speicher kann sich
aufgrund unterschiedlicher Längen
von Signalleitungen und/oder des Einflusses eines Energiezufuhrrauschens
geringfügig
unterscheiden, auch wenn die Befehl dem A Port und dem B Port simultan
zugeführt
werden. In diesem Fall kann der Entscheider jedes Multiport-Speichers
Befehle in einer von Speicher zu Speicher verschiedenen Reihenfolge
ausführen.
-
Verschiedene
Reihenfolgen der Befehlsausführung
zwischen Speicheranordnungen können kein
Problem darstellen, wenn der Befehl für den A Port und der Befehl
für den
B Port auf verschiedene Adressen gerichtet sind. Wenn die Befehle
für die gleiche
Adresse sind, entsteht jedoch ein Problem.
-
Abgefragte
Daten wären
beispielsweise verschieden zwischen dem Lesen von Daten nach einem
Scheibzugriff auf dieselbe Speicherzelle und dem Lesen von Daten
vor einem Schreibzugriff auf dieselbe Speicherzelle. Außerdem bleiben
die Daten des B Ports in dem Speicher, wenn die Daten des B Ports
geschrieben werden, nachdem die Daten des A Ports geschrieben werden,
wohingegen die Daten des A Ports in dem Speicher bleiben, wenn Operationen
in der umgekehrten Reihenfolge vorgenommen werden.
-
Es
besteht ein ernstes Problem bezüglich der
Zuverlässigkeit
von Daten, wenn eine Reihenfolge der Befehlsausführung in der gleichen Weise
wie oben beschrieben von Speicher zu Speicher verschieden ist.
-
Wenn
eine Vielzahl von Multiport-Speichern verwendet wird, besteht demgemäß eine Notwendigkeit,
eine Konsistenz zwischen Speichern bezüglich von den Entscheidern
getroffener Entscheidungen beizubehalten. Zu diesem Zweck ordnet
die zweite Ausführungsform
der vorliegenden Erfindung einen der Multiport-Speicher als Master-Anordnung 200-1 zu,
und verwendet die verbleibenden Anordnungen als Slave-Anordnungen 200-2 bis 200-n.
Die Slave-Anordnungen sind mit einer Entscheidung konform, die von
dem Entscheider der Master-Anordnung getroffen wird.
-
24 ist ein Blockbild, das die zweite Ausführungsform
des Multiport-Speichers gemäß der vorliegenden
Erfindung zeigt. Ein Konfiguration dieses Beispiels ist mit zwei
Ports versehen, d. h. einem A Port und einem B Port.
-
Unterschiede
gegenüber
der in 4 gezeigten ersten Ausführungsform
enthalten die Tatsache, dass ein A Port 11A und ein B Port 12A mit BUSY-Signal-I/O-Einheiten 36 bzw. 46 versehen sind,
und die Tatsache, dass ein Adressenkomparator 26 vorgesehen
ist, um eine Adresse des A Ports mit einer Adresse des B Ports zu
vergleichen. Wenn der Adressenkomparator 26 eine Adressenübereinstimmung
detektiert und so ein Übereinstimmungssignal
generiert, schaltet ein Entscheider 15A Operationsmodi
eines DRAM-Kerns um, um so einen kontinuierlichen Modus zu initiieren.
-
25A und 25B sind
Zeitdiagramme zur Erläuterung
des kontinuierlichen Modus.
-
Wie
in der Zeichnung (20) gezeigt, die Operationen
der ersten Ausführungsform
zeigt, wird eine DRAM-Kernoperation in eine Reihenoperation und
eine Spaltenoperation geteilt. In der vorliegenden Erfindung werden
eine Reihenoperation, eine Spaltenoperation und eine Vorladeoperation
als Serie kontinuierlicher Ausführungen
vorgenommen, die einen einzelnen internen Operationszyklus definiert.
-
Der
kontinuierliche Modus in der zweiten Ausführungsform ist gleich wie eine
Spaltenzugriffsoperation eines gewöhnlichen DRAM, und führt einen Befehl
wiederholt in Bezug auf dieselbe Zelle aus. Das heißt, dieser
Modus nimmt ein Vorladen nach der Durchführung von Ausführungen
von Spaltenoperationen mehrfache Male nach einer Reihenoperation
vor. Wenn Schreibbefehle in Bezug auf dieselbe Zellenadresse konsekutiv
zugeführt
werden, wird der spätere
Befehl ohne Durchführung
des ersteren Befehls vorgenommen. Dies ist darauf zurückzuführen, dass,
auch wenn diese Schreibbefehle konsekutiv durchgeführt werden,
Daten, die von dem ersteren Befehl geschrieben werden, von den Daten
des letzteren Befehls überschrieben
werden.
-
Ein
kontinuierlicher Modus, wie in 25A gezeigt,
ermöglicht,
dass Operationen verglichen mit 2 Zyklen gewöhnlicher interner Operationen
verkürzt werden,
wodurch eine extra Zeit vorgesehen wird. Die durch diese extra Zeit
erhaltene Spanne wird einem Punkt zwischen einer Reihenoperation
und einer Spaltenoperation zugeordnet (diese Spanne wird hier im
Nachstehenden Warteperiode genannt). Während dieser Warteperiode wird
eine Verarbeitung durchgeführt,
um Reihenfolgen der Befehlsausführung
zwischen dem Master und den Slaves konsistent zu machen.
-
Im
Folgenden wird eine Prozedur erläutert, um
Operationen zwischen dem Master und den Slaves unter Verwendung
eines BUSY-Signals konsistent zu machen.
-
Ein
BUSY-Signal wird verwendet, um dieselbe Reihenfolge der Befehlsausführung zwischen dem
Master und den Slaves sicherzustellen. BUSY-Signal-I/O-Einheiten 36 und 46 dienen
als BUSY-Ausgangsschaltung, die ein BUSY-Signal ausgibt, in der
Master-Anordnung 200-1, und dienen als BUSY-Eingangsschaltung,
die ein BUSY-Signal empfängt,
in den Slave-Anordnungen 200-2 bis 200-n. Informationen,
die entweder eine Master-Anordnungsidentifikation oder eine Slave-Anordnungsidentifikation
anzeigen, werden in dem Modusregister 31 oder 41 gespeichert.
-
Die
Speicheranordnung empfängt
einen Befehl von einem der Ports und startet die Operation wie in 20A und 20B gezeigt.
-
Wenn
ein Befehl von dem anderen Port eingegeben wird, um auf die gleiche
Adresse innerhalb der Periode einer Reihenoperation zuzugreifen,
generiert der Adressenkomparator 26 ein Übereinstimmungssignal.
Beim Empfang dieses Übereinstimmungssignals
führt der
Entscheider 15A der Steuerschaltung 53 des DRAM-Kerns 14 ein
kontinuierliches Modussignal zu. Ansprechend auf ein kontinuierliches
Modussignal wechselt der DRAM-Kern 14 zu einem kontinuierlichen
Modus wie in 25B gezeigt.
-
Während der
Warteperiode generiert die Master-Anordnung 200-1 ein BUSY-A-Signal
oder ein BUSY-B-Signal auf der Basis der vom Entscheider 15A getroffenen
Entscheidung. In diesem Beispiel wird ein BUSY-Signal in Bezug auf
den Port generiert, der von dem Entscheider 15A als jener
identifiziert wird, der einen Befehl früher empfangen hat.
-
Ähnlich detektiert
während
der Warteperiode die Slave- Anordnung
das von der Master-Anordnung generierte BUSY-Signal und ändert die
von ihrem eigenen Entscheider 15A getroffenen Entscheidung so,
dass sie mit dem Master konform ist, wenn sie von der Anzeige des
BUSY-Signals verschieden ist. Dann wird eine Spaltenoperation gemäß einer
wie modifizierten Befehlsreihenfolge vorgenommen.
-
26 ist ein Zeitdiagramm, das eine Operation zeigt,
die vorgenommen wird, wenn ein BUSY-Signal in Bezug auf einen Lesebefehl
des A Ports und einen Schreibbefehl des B Ports generiert wird.
-
In
dieser Ausführungsform
nimmt das BUSY-Signal einen Logikpegel "L" an,
um eine Auswahl anzuzeigen. Außerdem
wird ein BUSY-Signal vorzugsweise asynchron gesendet und empfangen. Dies
ist darauf zurückzuführen, dass
eine Notwendigkeit besteht, das BUSY-Signal innerhalb einer begrenzten
Warteperiode prompt auszutauschen.
-
Da
in dem Beispiel von 26 ReadA2 des A Ports früher ist
als WriteB2 des B Ports, generiert der Master ein BUSY-Signal, das
den A Port anzeigt, während
der Warteperiode. Die Slaves empfangen dieses BUSY-Signal und erfahren,
dass ReadA2 des A Ports früher
ist als WriteB2 des B Ports. Dann führen der Master und die Slaves
Spaltenoperationen in dem kontinuierlichen Modus in der Reihenfolge
von ReadA2 als Ersten und WriteB2 als Zweiten aus.
-
27 ist ein Zeitdiagramm, das eine Operation zeigt,
die vorgenommen wird, wenn ein BUSY-Signal in Bezug auf einen Lesebefehl
des A Ports und einen Schreibbefehl des B Ports generiert wird.
Während 26 den Fall veranschaulicht hat, wo der Lesebefehl
des A Ports früher
war, zeigt 27 einen Fall, in dem ein Schreibbefehl
des B Ports früher
ist.
-
28 ist ein Zeitdiagramm, das eine Operation zeigt,
die vorgenommen wird, wenn ein BUSY-Signal in Bezug auf einen Schreibbefehl
des A Ports und einen Schreibbefehl des B Ports generiert wird.
-
Ein
in 28 gezeigtes Operationsbeispiel betrifft den Fall,
in dem der Schreibbefehl des A Ports früher ist als der Schreibbefehl
des B Ports. Das heißt,
da WriteA2 des A Ports früher
ist als WriteB2 des B Ports, wird ein BUSY-Signal generiert, das den A Port anzeigt,
und wird den Slaves zugeführt.
Da in diesem Fall Daten, die durch eine Ausführung des Schreibbefehls des
A Ports geschrieben würden,
sofort überschrieben
werden, wird nur der Schreibbefehl WriteB2 des B Ports ausgeführt, da
er später
eingegeben wird.
-
29 ist ein Zeitdiagramm, das eine Operation zeigt,
die vorgenommen wird, wenn ein BUSY-Signal in Bezug auf einen Schreibbefehl
des A Ports und einen Schreibbefehl des B Ports auftritt.
-
Das
in 29 gezeigte Operationsbeispiel betrifft den Fall,
in dem der Schreibbefehl des B Ports früher ist als der Schreibbefehl
des A Ports. Da in diesem Fall Daten, die durch die Ausführung des Schreibbefehls
des B Ports geschrieben würden,
sofort ersetzt werden, wird nur der Schreibbefehl WriteA2 des A
Ports ausgeführt.
In diesem Beispiel wird die Taktfrequenz des A Ports geringfügig niedriger
eingestellt als die Taktfrequenz des B Ports. Obwohl die Befehlseingabe
für den
A Port früher
ist, wenn die Befehle WriteA2 und WriteB2 verglichen werden, ist
es der B Port, der beim Empfang der letzten Dateneingabe früher ist.
Deshalb wird bestimmt, dass der Schreibbefehl des B Ports früher ist
als der Schreibbefehl des A Ports.
-
Die
oben vorgesehene Beschreibung hat keinerlei Bezug auf einen Fall
hinsichtlich einer Kombination eines Lesebefehls des A Ports und
eines Lesebefehls des B Ports genommen. Da die Zuverlässigkeit
von Daten ungeachtet relativer Zeiteinstellungen nicht beeinträchtigt wird,
besteht keine Notwendigkeit, in diesem Fall ein BUSY-Signal zu generieren.
-
30 ist ein Zeitdiagramm, das eine Operation in
einer Konfiguration zeigt, die eine von dem Controller erteilte
Unterbrechung bearbeiten kann.
-
"Unterbrechung" ist eine Instruktion,
die eine Änderung
der von dem Entscheider der Master-Anordnung getroffenen Entscheidung
anweist, wenn ein BUSY-Zustand initiiert wird. Verfahren zum Veranlassen
einer Unterbrechung enthalten:
- a) Eingeben
als Befehl;
- b) Vorsehen eines dedizierten Anschlussstifts;
- c) Verwenden einer speziellen Adressenkombination; und
- d) Verwenden eines BUSY-Signals.
-
Das
Verfahren d) führt
ein BUSY-Signal durch den Controller in Bezug auf den Port zu, der von
einem Port verschieden ist, für
den ein BUSY-Signal generiert wird, und richtet ein, dass der Master-Speicher
und die Slave-Speicher dieses detektieren.
-
In
dem Beispiel von 30 wird eine Unterbrechung
generiert, wenn ein BUSY-Signal in Bezug auf einen Schreibbefehl
des A Ports und einen Schreibbefehl des B Ports auftritt. Wie in
Verbindung mit 28 und 29 beschrieben,
wird nur einer von dem Schreibbefehl des A Ports und dem Schreibbefehl
des B Ports ausgeführt,
wenn ein BUSY-Signal durch eine Write-&-Write-Kombination hervorgebracht
wird. Als Ergebnis gehen Daten verloren, die früher eingegeben werden.
-
In 30 ist WriteA2 des A Ports früher als WriteB3 des B Ports,
so dass ein auf den A Port gerichtetes BUSY-Signal generiert wird.
Nachdem der Controller das von dem Master generierte BUSY-Signal
empfangen hat, generiert er einen Unterbrechungsbefehl, um zu verhindern,
dass die Schreibdaten des A Ports gelöscht werden.
-
Der
Master und die Slaves empfangen den Unterbrechungsbefehl vom Controller
und ändern
die von den Entscheidern getroffenen Entscheidungen, gefolgt von
der Durchführung
von Schreiboperationen gemäß dem Unterbrechungsbefehl
nach dem Ende der Warteperiode. Die Entscheider modifizieren nämlich ihre
Entscheidungen, um anzuzeigen, dass der Befehl WriteA2 des A Ports
später
ist als der Befehl des B Ports, und sie führen eine Schreiboperation
in Bezug auf WriteA2 durch. Dies kann verhindern, dass die Schreibdaten
des A Ports eliminiert werden. In dem Fall der Write→Write-Kombination ist das
alles, was notwendig ist, eine Schreiboperation nur einmal vorzunehmen,
so dass es möglich
ist, ein längere
Warteperiode zuzuordnen, verglichen mit dem kontinuierlichen Modus
der Read→Write-Kombination
oder der Write→Read-Kombination.
So ist es möglich,
diese Zeitperiode zu nutzen, um den Unterbrechungsbefehl ansprechend
auf das BUSY-Signal durchzuführen.
-
Im
Folgenden erfolgt eine Beschreibung in Bezug auf die Konfiguration
des Adressenkomparators, eines BUSY-I/O-Systems und eines Unterbrechungssystems
zum Erzielen der oben beschriebenen Operation.
-
31 ist eine Zeichnung, welche die Konfiguration
des Adressenkomparators, eines BUSY-I/O-Systems und eines Unterbrechungssystems
des Multiport-Speichers gemäß der zweiten Ausführungsform
der vorliegenden Erfindung zeigt.
-
Der
Adressenkomparator 26 vergleicht in Adressenregistern gespeicherte
Adressen, und gibt ein Übereinstimmungssignal
aus, wenn eine Übereinstimmung
zwischen der Adresse des A Ports 11 und der Adresse des
B Ports 12 vorliegt. Um anzuzeigen, welche beiden Adressen übereinstimmende Adressen
sind, werden außerdem
Signale ARA, AWA, ARB und AWB generiert. AWA und AWB werden beispielsweise
auf "H" eingestellt, wenn
die Adresse des Schreibbefehls des A Ports und die Adresse des Schreibbefehls
des B Ports eine Übereinstimmung
zeigen. NICHT-UND-Schaltungen 208 bis 210 erhalten
jeweils ein logisches NICHT-UND dieser Signale, so dass eines von
N1, N2 und N3 "L" wird.
-
Die
BUSY-Signal-I/O-Einheiten 36 und 46 und ein Unterbrechungsschaltungsaufbau
sind auf der linken Seite von 31 vorgesehen
(unter dem Adressenkomparator 26). Auf der Basis der Einstellungen
der Modusregister 31 oder 41 generiert eine BUSY-&-I/O-Hardware-Steuereinheit 211 ein
Aktivierungssignal (Master) ansprechend auf die Detektion des Übereinstimmungssignals
in dem Fall der Master-Anordnung, und generiert ein Aktivierungssignal (Slave)
in dem Fall einer Slave-Anordnung. Das Aktivierungssignal (Master)
aktiviert BUSY-Ausgangsschaltungen 212 und 213,
und das Aktivierungssignal (Slave) aktiviert BUSY-Eingangsschaltungen 214 und 215.
-
In
dem Entscheider wird ein Befehl, der als Erster in der Befehlsreihenfolge
ausgewählt
wird, zu einem der Ausgänge
RA3, WA3, RB3 und WB3 ausgegeben (d. h. einer der Ausgänge ist "H"). In dem Fall der Master-Anordnung
werden RA3 bis WB3 durch Verriegelungen 216 und 217 ansprechend
auf ein Signal N4 verriegelt, das aus einem Impuls besteht, der
einer Anstiegkante des Übereinstimmungssignals
entspricht. Ein BUSY-A-Signal oder BUSY-B-Signal wird auf der Basis
der verriegelten Daten ausgegeben.
-
Wenn
in dem Fall einer Slave-Anordnung das BUSY-A-Signal, das "L" ist, empfangen wird, wird ein Signal
N10, das aus dem Unterbrechungsschaltungsaufbau 218 ausgegeben
wird, auf "L" eingestellt. Wenn
das BUSY-B-Signal, das "L" ist, empfangen wird,
wird ein Signal Nil, das aus einem Unterbrechungsschaltungsaufbau 219 ausgegeben
wird, auf "L" eingestellt. Die
Signale N10 und N11 sind "H", wenn sie in einem
deaktivierten Zustand sind, und werden "L",
wenn ein BUSY- Signal
oder eine Unterbrechung detektiert wird.
-
Eine
Unterbrechungsdetektiereinheit 220 detektiert den vom Controller
zugeführten
Unterbrechungsbefehl, und gibt Unterbrechungssignale A oder B aus.
Die Unterbrechungssignale erhalten Priorität gegenüber einem ankommenden BUSY-Signal, und
werden als Signale N10 und N11 gesendet.
-
Drei
Komparatoren 80-3, 80-5 und 80-6, die unten
in 31 gezeigt sind, sind ein Teil des Komparatorschaltungsaufbaus
des Entscheiders 15A (siehe 6A und 24). Diese Komparatoren stellen Vergleiche an
in Bezug auf Befehlskombinationen, die eine BUSY-Bestimmung erfordern.
-
32 ist ein Zeitdiagramm, das eine Operation der
Master-Anordnung zeigt. 33 ist
ein Zeitdiagramm, das eine Operation einer Slave-Anordnung zeigt.
-
Diese
Zeitdiagramme veranschaulichen einen Fall, in dem die Adresse eines
Lesebefehls des A Ports und die Adresse eines Schreibbefehls des
B Ports miteinander übereinstimmen.
Der Master von 32 entscheidet, dass der A
Port früher
ist, und der Slave von 33 entscheidet,
dass der B Port früher
ist. In diesem Fall gibt der Komparator 80-3 des Masters
N21 als "L" und N22 als "H" aus. Ferner gibt der Komparator 80-3 des
Slaves N21 als "H" und N22 als "L" aus. Der Master generiert ein BUSY-A-Signal,
und der Slave ändert
N10 auf "L" beim Empfang des
BUSY-A-Signals. Da N1 zu diesem Zeitpunkt "L" ist,
wird das LOW Signal von N10 dem Komparator 80-3 des Slaves
durch eine NICHT-ODER-Schaltung 221 und einen Inverter 222 zugeführt. Ansprechend darauf ändern sich
die Ausgänge
des Komparators 80-3 des Slaves auf N21 als "L" und N22 als "H".
Auf diese Weise wird eine Entscheidung von dem Entscheider geändert.
-
Nun
wird ein Fall behandelt, in dem die Adresse eines Schreibbefehls
des A Ports und die Adresse eines Lesebefehls des B Ports miteinander übereinstimmen,
im Gegensatz zu dem Fall, der oben beschrieben wurde. In diesem
Fall werden die Ausgänge
des Komparators 80-5 des Slaves geändert, wodurch die von dem
Entscheider getroffene Entscheidung in dem Slave modifiziert wird.
-
Der
Komparator 80-6, der WA2 mit WB2 vergleicht, hat eine andere
periphere Schaltungsaufbaukonfiguration als die Komparatoren 80-3 und 80-5. Dies
ist darauf zurückzuführen, dass,
wenn die Generierung eines BUSY-Signals ansprechend auf eine Write-&-Write-Kombination
erfolgt, nur einer von dem Befehl des A Ports und dem Befehl des
B Ports bestehen bleibt.
-
34 ist ein Zeitdiagramm, das eine Operation einer
Master-Anordnung zeigt, die vorgenommen wird, wenn die Schreibadressen
der beiden Ports identisch sind. 35 ist
ein Zeitdiagramm, das eine Operation einer Slave-Anordnung zeigt,
die vorgenommen wird, wenn die Schreibadressen der beiden Ports
identisch sind.
-
Nun
wird ein Fall betrachtet, in dem der Master entscheidet, dass der
A Port früher
ist, wie in 34 gezeigt, und der Slave ermittelt,
dass der B Port früher
ist, wie in 35 gezeigt. In dem Moment, in
dem der Adressenkomparator 26 gerade ein Übereinstimmungssignal
generiert hat, sind die Ausgänge des
Komparators 80-6 des Masters N25 als "L" und N26
als "H", und die Ausgänge des
Komparators 80-6 des Slaves sind N25 als "H" und N26 als "L".
Der Master verriegelt RA3, WA3, RB3 und WB3 in diesem Zustand, und
gibt ein BUSY-A-Signal aus.
-
Wenn
ein BUSY-Signal in einer Write-Write-Kombination auftritt wie in
diesem Fall, ist es notwendig, einen Schreibbefehl zu löschen, der
früher eingegeben
wurde. Ein Inverter 231, eine WEDER-NOCH-Schaltung 232,
NICHT-UND-Schaltungen 233 und 234,
und Inverter 235 und 236 sind zu diesem Zweck
vorgesehen. Ansprechend auf das Übereinstimmungssignal
generiert eine HIGH Kantenimpulsschaltung 230 einen "H" Impuls des Signals N4. Das Signal N4
wird mit dem Signal N3 durch eine bestimmte Logikoperation kombiniert,
wobei ein "H" Impuls in dem Signal
N31 generiert wird. In diesem Beispiel ist N26 "H" für den Master,
so dass N33 einen "H" Impuls generiert,
was dazu führt,
dass N25 auf "H" geändert wird,
und N26 auf "L" geändert wird. Hier
dienen Verzögerungsschaltungen 237 und 238 dazu,
eine extra Zeit vorzusehen, die verwendet werden kann, um das BUSY-Signal
zu generieren, bevor die Änderungen
auftreten, und um zu verhindern, dass der bereits geänderte Status
erneut geändert wird,
wenn der geänderte
Status zu den NICHT-UND-Schaltungen 233 und 234 zurückgeführt wird.
In dem Slave wird N25 auf "L" geändert, und
N26 wird auf "H" geändert.
-
Der
Master generiert ein BUSY-A-Signal, wie vorstehend beschrieben,
und bei dem Slave, der dieses Signal empfängt, wird N10 davon auf "L" geändert.
Da N3 in diesem bestimmten Moment "L" ist,
da es "L" ist, wird der Komparator 80-6 des
Slaves erneut umgekehrt, was dazu führt, dass N25 auf "H" geändert
wird, und N26 auf "L" geändert wird.
-
Die
Verzögerungsschaltung 250 empfängt das
Signal N4, und verzögert
dieses Signal um eine vorherbestimmte Zeitlänge, wodurch eine Warteperiode
geschaffen wird. Hier wird Delay (t1) gewählt, wenn N1 oder N2 ausgewählt wird,
wohingegen Delay (t2) gewählt
wird, wenn N3 ausgewählt
wird.
-
NICHT-UND-Schaltungen 251 und 252 und Inverter 253 und 254 sind
zum Zweck des Löschens des übersprungenen
Schreibbefehls aus dem Befehlsregister vorgesehen, wenn die Warteperiode
zu einem Ende kommt. Wenn beispielsweise am Ende der Warteperiode
N25 "L" ist, und N26 "H" ist, wird der Schreibbefehl des A Ports
ausgeführt.
Demgemäß wird ResetWB2
generiert, um den Schreibbefehl des B Ports aus dem Register zu eliminieren.
Da es notwendig ist, Entscheidungen durch einen BUSY-Empfang oder
eine Unterbrechung während der
Warteperiode zu ändern,
werden Befehle in den Befehlsregistern für die Dauer dieser Periode
intakt gelassen.
-
36 ist ein Zeitdiagramm, das eine Operation der
Master-Anordnung in dem Fall zeigt, wo die Schreibadressen der beiden
Ports miteinander übereinstimmen,
um den Controller zu veranlassen, einen Unterbrechungsbefehl zu
erteilen. 37 ist ein Zeitdiagramm, das
eine Operation der Slave-Anordnung in
dem Fall zeigt, wo die Schreibadressen der beiden Ports miteinander übereinstimmen,
um den Controller zu veranlassen, einen Unterbrechungsbefehl zu erteilen.
-
Der
Befehlsauswahlstatus in der Master-Anordnung wird durch die Unterbrechung
umgekehrt, wie in 36 gezeigt. Außerdem,
wie in 37 gezeigt, wird der Befehlsauswahlstatus
in der Slave-Anordnung durch das BUSY-Signal umgekehrt, und wird
dann durch die Unterbrechung weiter umgekehrt. Hier sind Operationen
der Umkehr des Status durch die Unterbrechung gleich wie jene der
Umkehr des Status durch ein BUSY-Signal, und eine detaillierte Beschreibung
davon wird weggelassen.
-
In
dem Betrieb der oben beschriebenen zweiten Ausführungsform ist ein Befehlszyklus,
der von einem gegebenen Befehl zu dem nächsten folgenden Befehl verläuft, ausgebildet,
sich nicht zu ändern,
auch nachdem ein BUSY-Signal oder eine Unterbrechung generiert wird.
-
Obwohl
beispielsweise in 26 BUSY ansprechend auf ReadA2
auftritt, ist das Befehlsintervall von ReadA2→ReadA3 gleich wie das Befehlsintervall
von ReadA1→ReadA2.
Es ist erforderlich, dass BUSY und eine Unterbrechung während der Warteperiode
behandelt werden. Aus diesem Grund wird eine längere Warteperiode notwendig,
wenn der Austausch des BUSY-Signals
oder Unterbrechungssignals aufgrund eines langen Sy stembusses, einer großen Anzahl
von Slave-Anordnungen, eines langsamen Ansprechens des Controllers,
etc., lange Zeit dauert.
-
Um
dieses Problem zu beheben, kann die Warteperiode erweitert werden,
während
die nächste Befehlseingabe
verzögert
wird, die BUSY oder der Unterbrechung folgt. Das Befehlsintervall
von ReadA2→ReadA3
kann nämlich
so erweitert werden, dass es länger
ist als das Befehlsintervall von ReadA1→ReadA2 in 26, während
die Warteperiode verlängert
wird.
-
Um
eine Befehlseingabe zu verzögern,
kann die Verzögerung
der Befehlseingabe in einem Konstruktionsblatt spezifiziert werden,
und der Controller kann ausgebildet werden, gemäß dem Datenblatt zu operieren.
Eine Erweiterung der Warteperiode wird durch eine Verlängerung
der Verzögerungszeit
der in 31 gezeigten Verzögerungsschaltung 250 erzielt.
Wenn die Warteperiode gemäß der Verwendung
angepasst werden muss, können
zwei oder mehrere Verzögerungsleitungen
in der Verzögerungsschaltung 250 so
vorgesehen werden, dass es ermöglicht
wird, die Einstellung einer Verzögerungslänge durch
die Einstellung eines Modusregisters zu ändern.
-
Wenn
die Warteperiode auf diese Weise erweitert wird, kann eine lange
Warteperiode in anderen Fällen
zusätzlich
zu dem Fall vorgesehen werden, in dem das BUSY-Signal ansprechend
auf eine Write-Write-Befehlskombination generiert wird. Unter Berücksichtigung
dessen kann der Controller einen Unterbrechungsbefehl erteilen,
auch wenn ein BUSY-Signal ansprechend auf eine Read-Write- oder Write-Read-Kombination
auftritt.
-
Wenn
in der oben beschriebenen vorliegenden Erfindung Befehle in N Ports
eingegeben werden, werden alle der N Befehle, die den N Ports entsprechen,
einer nach dem anderen innerhalb eines minimalen Befehlszyklus eines
beliebigen ge gebenen Ports ausgeführt. Deshalb erscheint eine
Zugriffsoperation in Bezug auf einen beliebigen gegebenen Port an
der Außenseite
der Anordnung, um innerhalb des minimalen Befehlszyklus vorgenommen zu
werden. In diesem Fall kann ein BUSY-Signal nur dann auftreten,
wenn von einer Vielzahl von Ports auf die gleiche Adresse zugegriffen
wird. So ist es möglich,
eine BUSY-Auftrittswahrscheinlichkeit zu erzielen, die so gering
ist wie eine BUSY-Auftrittswahrscheinlichkeit eines Multiport-Speichers
des SRAM-Typs.
-
In
der Halbleiter-Speicheranordnung der vorliegenden Erfindung enthält ferner
die interne Schaltung ein Zellen-Array,
das aus Speicherzellen des dynamischen Typs besteht, und eine Auffrisch-Schaltung,
die Zeiteinstellungen definiert, zu denen die Speicherzellen aufgefrischt
werden. In einem ersten Modus werden die Speicherzellen ansprechend
auf einen Auffrischbefehl aufgefrischt, der in zumindest einen der
N externen Ports eingegeben wird, und in einem zweiten Modus werden
die Speicherzellen zu der Zeiteinstellung aufgefrischt, die von
der Auffrisch-Schaltung spezifiziert wird.
-
Die
wie oben beschriebene vorliegende Erfindung ist nämlich mit
dem ersten Operationsmodus versehen, in dem eine Auffrischoperation
ansprechend auf eine Instruktion von einem externen Port vorgenommen
wird, und mit dem zweiten Operationsmodus, in dem eine Auffrischoperation
ansprechend auf die interne Auffrisch-Schaltung vorgenommen wird.
Wegen dieser Konfiguration wird es einem der externen Ports ermöglicht,
als Port zur Auffrischverwaltung zu operieren, um so Auffrischbefehle
in konstanten Intervallen zu empfangen, oder die interne Auffrisch-Schaltung
nimmt Auffrischoperationen vor, wenn dieser Port zur Auffrischverwaltung
in einem deaktivierten Zustand ist. Dies ermöglicht, Auffrischoperationen
in einer flexiblen Weise gemäß den Systemkonfi gurationen
zu verwalten.
-
(Zweiter Aspekt der Erfindung)
-
Im
Folgenden wird ein zweiter Aspekt der vorliegenden Erfindung beschrieben.
-
Es
gibt einige Arten von Multiport-Speichern. Hier im Nachstehenden
wird auf einen Speicher Bezug genommen, der eine Vielzahl von Ports
aufweist, und der ermöglicht,
dass Zugriffe von den jeweiligen Ports unabhängig voneinander auf ein gemeinsames Speicher-Array
vorgenommen werden. Ein Multiport-Speicher eines Zweiport-Typs ist
beispielsweise mit einem A Port und einem B Port ausgestattet, und ermöglicht,
dass Lese/Schreibzugriffe auf den gemeinsamen Speicher unabhängig von
einer CPU-A, die mit dem A Port verknüpft ist, und von einer CPU-B,
die mit dem B Port verbunden ist, vorgenommen werden.
-
Als
Multiport-Speicher dieser Art ist ein Speicher mit einem SRAM-Speicher-Array
bekannt, bei dem Wortleitungen und Bitleitungspaare in doppelten Sätzen vorgesehen
sind, und jede Speicherzelle mit 2 Sätzen von Wortleitungen und
Bitleitungspaaren verbunden ist. Dieser Multiport-Speicher hat jedoch insofern
ein Problem einer geringen Schaltungsdichte, als die doppelten Sätze von
Wortleitungen und Bitleitungspaaren vorgesehen werden müssen.
-
Um
dies zu beheben, ist es denkbar, denselben Mechanismus wie gemeinsam
genutzte Speicher zu verwenden, die von einem Computer mit einer
Multiprozessor-Konfiguration verwendet werden. Ein gemeinsam genutzter
Speicher hat eine Vielzahl von Ports, die für einen gemeinsamen Speicher
vorgesehen sind. Typischerweise wird ein SRAM als Speicher verwendet,
und die Vielzahl von Ports wird als diskrete ICs implementiert.
Wenn Zugriffe simultan von der Vielzahl von Ports vorgenommen werden,
können
Operationen, die auf die Vielzahl von Ports ansprechen können, nicht
simultan vorgenommen werden, da das Speicher-Array gemeinsam genutzt
wird. Der einfachste Weg, ein solches Problem zu verhindern, ist,
ein BUSY-Signal für
einen Port zu generieren, um einen Zugriff auf diesen zu verhindern,
wenn ein Zugriff von einem anderen Port vorgenommen wird. Dies führt jedoch
zu einem Problem der Begrenzung der Verwendung des Speichers. Unter
Berücksichtigung
dessen wird eine Entscheider genannte Entscheidungsschaltung für einen
gemeinsamen Speicher vorgesehen, und sie bestimmt die Priorität von Zugriffsanforderungen,
die von der Vielzahl von Ports empfangen werden. Eine Steuerschaltung
des Speicher-Arrays ist konfiguriert, Operationen, die auf Zugriffsanforderungen
ansprechen können,
in einer Prioritätsreihenfolge
durchzuführen.
Zugriffsanforderungen werden beispielsweise in einer Reihenfolge
der Ankunft durchgeführt,
d. h. in einer Reihenfolge, in der die Zugriffsanforderungen den
jeweiligen Ports zugeführt
werden.
-
In
einem solchen Fall führt
dies letztendlich dazu, dass auf das Speicher-Array direkt von der Vielzahl
von Ports zugegriffen wird. Deshalb wird keine Spaltenzugriffsoperation
vorgesehen, die aufeinanderfolgend auf konsekutive Spaltenadressen
an der gleichen Reihenadresse zugreift, während eine solche Spaltenzugriffsoperation
typischerweise bei DRAMs verfügbar
ist. Das heißt,
eine Zelle wird ausgewählt,
auf diese wird für
eine Lese/Schreiboperation zugegriffen, und sie wird zurückgesetzt,
was alles ansprechend auf einen einzigen Zugriff vorgenommen wird.
-
Wenn
ein gemeinsam genutzter Speicher zu implementieren ist, wird im
Allgemeinen ein SRAM herkömmlich
als Speicher-Array
verwendet. Dies ist darauf zurückzuführen, dass
ein SRAM Hochgeschwindigkeits-Direktzugriffsoperationen durchführen kann,
und es auch leicht ist, einen SRAM zu verwenden, da keine Notwendigkeit
für eine
Auffrischoperation be steht. Außerdem
ist ein Multiport-Speicher eines einzigen Chips herkömmlich mit
doppelten Sätzen
von Wortleitungen und Bitleitungspaaren versehen, und ein Multiport-Speicher
eines einzigen Chips auf der Basis eines Speicher-Arrays mit einer gewöhnlichen
SRAM-Konfiguration wurde in der Praxis noch nicht verwendet.
-
Zusammenfassend
werden Multiport-Speicher und gemeinsam genutzte Speicher unter
Verwendung von SRAMs implementiert, und DRAMs werden nicht verwendet,
die Auffrischoperationen erfordern.
-
Die
zu verarbeitende Datenmenge steigt in dem Maße, in dem Systeme eine zunehmend
hohe Leistung bieten, und Multiport-Speicher müssen auch eine große Kapazität aufweisen.
Es ist denkbar, einen Multiport-Speicher unter Verwendung eines Speicherzellen-Arrays
des dynamischen Typs (DRAM) zu implementieren, das eine höhere Schaltungsdichte
hat als die SRAMs, wodurch ein Multiport-Speicher mit einer großen Speicherkapazität zu niedrigen
Kosten vorgesehen wird. Die Auffrischoperation der Speicherzellen
stellt jedoch ein Problem dar.
-
In
herkömmlichen
DRAMs muss ein Auffrischbefehl in konstanten Intervallen von einer
Außenseite
der Anordnung zwischen Lese/Schreibbefehlen vorgesehen werden. Zu
diesem Zweck wird eine Controlleranordnung in einem System auf DRAM-Basis
mit einem Zeitgeber und/oder einer Steuerschaltung zur Auffrischverwaltung
versehen. Eine solche Schaltung wird jedoch nicht in Systemen vorgesehen,
die Multiport-Speicher
auf SRAM-Basis verwenden. Auch in einem Fall, wo Speicher auf der Basis
von DRAMs implementiert werden, müssen solche Speicher auf die
gleiche Weise in diesen Systemen verwendbar sein wie es die herkömmlichen Multiport-Speicher sind. Ein
Multiport-Speicher, der ein Speicherzellen-Array davon aufweist,
das aus DRAMs besteht, muss nämlich
selbst für
Auffrischoperationen sorgen.
-
Die
vorliegende Erfindung ist auf das Vorsehen eines Multiport-Speichers
gerichtet, der ein Speicherzellen-Array davon aufweist, das aus
einem DRAM-Kern besteht, und der ohne Rücksicht auf Auffrischoperationen
verwendet werden kann, wodurch ein Multiport-Speicher zu niedrigen
Kosten vorgesehen wird, der eine große Kapazität hat und einfach zu verwenden
ist.
-
38 ist eine Zeichnung zur Erläuterung des Prinzips der Erfindung
und zeigt einen Fall, in dem Leseoperationen in Bezug auf zwei Ports
vorgenommen werden.
-
Befehle,
die den beiden externen Ports, einem A Port und einem B Port, zugeführt werden,
werden in minimalen Intervallen vorgesehen, während derer drei interne Operationszyklen
vorgenommen werden können.
Das heißt,
ein externer Befehlszyklus wird auf eine Länge eingestellt, die länger ist
als eine Dauer, welche für
drei interne Operationszyklen erforderlich ist. Takte CLKA und CLKB
werden in den A Port bzw. den B Port eingegeben, und ein Austausch
von Adressen und Daten zwischen einer Außenseite der Anordnung und
den externen Ports wird synchron mit den Taktsignalen durchgeführt. Adressen
(nicht gezeigt) werden gleichzeitig mit Befehlen eingegeben. Wenn
Lesebefehle in den A Port und den B Port in den minimalen externen
Befehlszyklen eingegeben werden, steuert eine Entscheidungsschaltung
Kernoperationen, indem sie einem Eingang einer Erstankunft Priorität verleiht.
Drei interne Operationen können
während
eines externen Befehlszyklus vorgenommen werden, wie oben beschrieben,
und zwei Leseoperationen werden an dem Speicher-Array während dieses externen Befehlszyklus
durchgeführt,
gefolgt vom Ausgeben der gelesenen Daten zum A Port und zum B Port.
Sowohl der A Port als auch der B Port halten die abgefragten Daten
und geben die abgefragten Daten am Start des nächstfolgenden externen Befehlszyklus
aus, d. h. synchron mit dem vierten Takt ab der Eingabe des Lesebefehls.
Das heißt,
die Datenlatenz ist in diesem Fall 4.
-
Ein
Auffrischzeitgeber ist als interner Schaltungsaufbau vorgesehen,
und generiert alleine einen Auffrischbefehl. Da drei interne Operationen
während eines
externen Befehlszyklus vorgenommen werden können, wie oben beschrieben,
können
ein Befehl A, ein Befehl B und ein Auffrischbefehl während eines einzigen
externen Befehlszyklus ausgeführt
werden, wenn ein Auffrischbefehl generiert wird. Die gelesenen Daten
werden am Start des nächstfolgenden
externen Befehlszyklus ausgegeben. Auf diese Weise kann auf den
Multiport-Speicher von der Außenseite der
Anordnung ohne jede Rücksicht
auf eine Auffrischoperation zugegriffen werden.
-
In
dem Beispiel von 38 wird ein Element gelesener
Daten ansprechend auf einen Lesebefehl ausgegeben. Das heißt, eine
Burst-Länge
ist 1. Nachdem die Ausgabe gelesener Daten in einem Taktzyklus vollendet
ist, werden daher die externen Ports keine Daten während der
drei verbleibenden Taktzyklen des externen Befehlszyklus ausgeben, was
zu einem ineffizienten Datentransfer führt. Dieses Problem kann durch
die Verlängerung
der Burst-Länge
behoben werden.
-
39 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung und zeigt ein Beispiel, in dem die Burst-Länge 4 ist.
In diesem Beispiel, wie im vorhergehenden Fall, werden die externen
Befehlszyklen der beiden externen Ports auf eine Länge eingestellt,
die drei interne Operationszyklen aufnehmen kann. Ferner entspricht
ein externer Befehlszyklus vier Taktzyklen. Daten werden viermal aus
einem externen Port während
eines einzigen externen Befehlszyklus synchron mit dem Takt ausgegeben.
Wenn die Burst-Länge
gemäß der Anzahl
von Taktzyklen eines externen Befehlszyklus eingestellt wird, werden
daher lückenlose
Le seoperationen in beiden der zwei Ports erzielt, wodurch die Datentransferrate
signifikant erhöht
wird. In diesem Fall ist es erforderlich, dass so viele Datenelemente
wie die Burst-Länge
intern in das Speicher-Array ansprechend auf einen Einzelzugriff
eingegeben/aus diesem ausgegeben werden. Wenn beispielsweise die Anzahl
von Dateneingangs/ausgangsstiften eines externen Ports 4 ist,
und die Burst-Länge 4 ist,
ist es notwendig sicherzustellen, dass 16 Bit-Daten in das Speicher-Array
durch eine Einzelzugriffsoperation eingegeben/aus diesem ausgegeben
werden können.
-
Es
ist zu beachten, dass der A Port und der B Port nicht synchron operieren
müssen,
und jeweilige externe Befehlszyklen können unabhängig voneinander auf beliebige
Zeiteinstellungen eingestellt werden, solange der minimale Zyklus
gleich einer Dauer eingestellt wird, die für drei interne Operationszyklen
notwendig ist.
-
Außerdem kann
auch die Anzahl externer Ports eine beliebige Anzahl sein. Wenn
die Anzahl externer Ports auf n eingestellt wird, wird der externe Befehlszyklus
jedes Ports auf einen solchen minimalen Zyklus eingestellt, wie
n + 1 interne Operationszyklen durchgeführt werden können. Wenn
diese Anforderung erfüllt
ist, ist es möglich,
alle Operationen vorzunehmen, die von den jeweiligen Ports während eines
externen Befehlszyklus angefordert werden, auch wenn eine Auffrischoperation
durchgeführt
wird, wodurch ermöglicht
wird, dass der Multiport-Speicher ohne jede Rücksicht auf Auffrischoperationen
verwendet wird.
-
40 und 41 sind
Zeichnungen, welche die Beziehung zwischen einem minimalen externen
Befehlszyklus und internen Operationszyklen in dem Fall von 2, 3
und n Ports zeigen.
-
Wenn,
wie in den Figuren gezeigt, die Anzahl von Ports 2 ist,
hat der minimale externe Befehlszyklus eine Länge, die 3 interne Operationen
aufnimmt, und wenn die Anzahl von Ports 3 ist, ist der
minimale externe Befehlszyklus eine Zeitperiode, in der 4 interne
Operationen möglich
sind. Wenn ferner die Anzahl von Ports n ist, ist der minimale externe
Befehlszyklus gleich einer Zeitlänge,
in der n + 1 interne Operationen durchgeführt werden können.
-
42 und 43A bis 43C sind Zeichnungen, die eine Konfiguration des
Multiport-Speichers gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigen. 42 zeigt
einen DRAM-Kern und seinen relevanten Schaltungsaufbau, und 43A zeigt den A Port, und 43B zeigt
den B Port. Ferner zeigt 43C eine
Auffrisch-Schaltung. In 43A bis 43C gezeigte Schaltungen sind mit jeweiligen Teilen
von 42 verbunden.
-
Der
Multiport-Speicher dieser Ausführungsform,
wie in den Figuren gezeigt, enthält
einen DRAM-Kern 2011, einen Entscheider 2026 für den Steuerungszweck
der Bestimmung einer Operationsreihenfolge und zum Sicherstellen,
dass Operationen in der bestimmten Reihenfolge vorgenommen werden,
Sätze von
Registern, die Befehle, Adressen und Daten temporär speichern,
zwei externe Ports, die aus einem A Port 2030 und einem
B Port 2040 bestehen, und eine Auffrisch-Schaltung 2050.
-
Der
A Port 2030 bzw. der B Port 2040 enthalten Modusregister 2031 und 2041,
die CLK-Puffer 2032 und 2042, Daten-I/O-Schaltungen 2033 und 2043,
Adresseneingangsschaltungen 2034 und 2044, und
Befehlseingabeeinheiten 2035 und 2045, die auf
der Basis jeweiliger getrennter Taktfrequenzen operieren, welche
von der Außenseite
der Anordnung zugeführt
werden. Eine Datenlatenz und eine Burst-Länge werden in den Modusregistern 2031 und 2041 so
gespeichert, dass sie getrennt eingestellt werden können. Die
Daten-I/O-Eingangsschaltungen 2033 und 2043 sind
mit einem Mechanismus ausgestattet, um die Parallel-Seriell-Konvertierung
und Seriell- Parallel-Konvertierung
der Eingabe/Ausgabe-Daten gemäß der Burst-Länge vorzunehmen.
-
Die
Auffrisch-Schaltung 2050 enthält einen Auffrischzeitgeber 2051 und
einen Auffrischbefehlsgenerator 2052. Der Auffrischzeitgeber 2051 generiert
ein Auffrischstartsignal in vorherbestimmten Intervallen, und der
Auffrischbefehlsgenerator 2052 generiert einen Auffrischbefehl
ansprechend darauf.
-
Dem
A Port bzw. dem B Port zugeführte
Befehle, Adressen und Schreibdaten werden in den Registern gespeichert.
Ein Auffrischbefehl wird auch in dem Auffrischbefehlsregister 2027 gespeichert,
und eine Auffrischadresse wird in einem Auffrischadressenzähler/register 2018 gespeichert.
-
Der
Entscheider 2026 bestimmt eine Reihenfolge der Befehlsausführung auf
der Basis der Reihenfolge der Befehlsankunft, und transferiert Befehle zur
Steuerschaltung 2014 des DRAM-Kerns 2011 in der
bestimmten Reihenfolge. Ferner sendet der Entscheider 2026 ein
Transfersignal zu einem entsprechenden Adressenregister und einem
entsprechenden Datenregister (in dem Fall einer Schreiboperation).
In dem DRAM-Kern 2011 spricht
die Steuerschaltung 2014 auf den zugeführten Befehl an, und steuert
einen Decoder 2013, einen Schreibverstärker (WriteAmp) 2015,
und einen Lesepuffer 2016 dementsprechend, wodurch eine
Zugriffsoperation in Bezug auf das Speicher-Array 2012 vorgenommen wird.
In dem Fall einer Schreiboperation decodiert der Decoder 2013 einen
Adresse, auf die für
die Schreiboperation zuzugreifen ist, um so eine Wortleitung und
eine Spaltensignalleitung in dem Speicher-Array 2012 zu aktivieren, was
dazu führt,
dass die in den Schreibdatenregistern A 2022 und 2023 gespeicherten
Schreibdaten in das Speicher-Array 2015 durch den WriteAmp 2015 geschrieben
werden. In dem Fall einer Leseoperation wird auf das Speicher-Array 2012 in
einer ähnlichen
Weise zugegrif fen, was dazu führt,
dass die gelesenen Daten von dem Lesepuffer 2016 zu den
Datenausgangsschaltungen jeweiliger Ports durch Transfergates A 2024 und
B 2025 transferiert werden. Transferzeiteinstellungen der
Transfergates werden gemäß Operationszyklen
des DRAM-Kerns 2011 gesteuert, und werden von der Steuerschaltung 2014 bestimmt.
Ausgabedaten werden aus der Datenausgangsschaltung jedes Ports synchron
mit dem entsprechenden externen Takt ausgegeben.
-
Im
Folgenden werden Details beschrieben, die für jede von der Befehlsverarbeitung,
Adressenverarbeitung und Datenverarbeitung relevant sind.
-
44 und 45 sind
Zeichnungen, welche eine Konfiguration von Einheiten zeigen, die
für die
Befehlsverarbeitung gemäß einer
ersten Ausführungsform
relevant sind. Die gleichen Elemente wie jene von 42 und 43A bis 43C werden mit denselben Bezugszahlen bezeichnet.
Das Gleiche gilt im Fall anderer Zeichnungen.
-
Die
Befehlseingabeeinheit 2035 des A Ports, wie in 44 gezeigt, enthält einen Eingabepuffer 2036,
einen Befehlsdecoder 2037, und eine (n-1)-Taktverzögerung 2038,
und die Befehlseingabeeinheit 2045 des B Ports enthält einen
Eingabepuffer 2046, einen Decoder 2047, und eine
(m-1)-Taktverzögerung 2048.
Hier sind n und m Burst-Längen. Außerdem,
wie in 45 gezeigt, enthält das Befehlsregister
A 2028 ein Lesebefehlsregister AR und ein Schreibbefehlsregister
AW, und das Befehlsregister B 2029 enthält ein Lesebefehlsregister
BR und ein Schreibbefehlsregister BW.
-
Die
Eingabepuffer 2026 und 2046 erfassen zugeführte Lesebefehle
synchron mit den jeweiligen Takten CLKA1 und CLKB1, und die Befehlsdecoder 2037 und 2047 behandeln
Decodierprozesse. Die Befehlsdecoder 2037 und 2047 generieren
RA1 bzw. RB1 in dem Fall eines Lesebefehls, und generieren WA1 bzw.
WB1 in dem Fall eines Schreibbefehls. Die Signale RA1 und RB1 werden
zu den Lesebefehlsregistern AR bzw. BR ohne jede Zeitmanipulation
gesendet, wohingegen die Signale WA1 und WB1 durch die (n-1)-Taktverzögerung 2038 und
die (m-1)-Taktverzögerung 2048 verzögert werden,
bis das letzte Datenelement von Burst-Daten eingegeben wird, gefolgt
davon, dass sie zu den Schreibbefehlsregistern AW bzw. BW gesendet
werden. Außerdem
wird ein von der Auffrisch-Schaltung 2050 generierter Auffrischbefehl
REF1 zum Auffrischbefehlsregister 2027 gesendet.
-
Der
Entscheider 2026 detektiert eine Reihenfolge, in der Befehle
zu diesen fünf
Befehlsregistern AR, AW, BR, BW und 2027 transferiert werden, und
sendet diese Befehle einen nach dem anderen in der detektierten
Reihenfolge zur DRAM-Steuerschaltung 2014.
Die DRAM-Steuerschaltung 2014 führt die empfangenen Befehle
aus, und generiert ein Signal RESET1, um vom Entscheider 2026 anzufordern, einen
nächsten
Befehl zu senden, wenn die Befehlsausführung endet oder einem Ende
nahe kommt. Ansprechend auf das RESET1 Signal setzt der Entscheider
das Befehlsregister zurück,
in dem der ausgeführte
Befehl gespeichert ist, und sendet den folgenden Befehl zur DRAM-Steuerschaltung 2014.
-
46 ist eine Ausführungsform des Entscheiders 2026.
Eine Reihenfolge, in der Befehle in den fünf Befehlsregistern von 45 ankommen, wird von Komparatoren 2053 detektiert,
wie in der Figur gezeigt. Jeder Komparator 2053 vergleicht
die Zeiteinstellungen von zwei Befehlsregistern, und ändert einen
Ausgang davon auf "H" auf der Seite, wo "H" zuerst eingegeben wird. Ein UND-Gate 2054 bestimmt,
ob ein gegebener Befehl vor allen der vier anderen Befehls eingegeben
wird, indem geprüft
wird, ob alle relevanten Ausgänge
der zusammenhängenden
Komparatoren 2053 'H' sind. Signale RA2,
WA3, RB3, WB3, und REF, die jeweiligen Befehlen entsprechen, werden "H", wenn ein entsprechender Befehl der früheste ist,
und die Adresse eines entsprechenden Befehls und dgl. werden zum
DRAM-Kern 2011 gesendet. Wenn der Befehl von dem DRAM-Kern 2011 ausgeführt wird,
wird das Signal RESET1 vom DRAM-Kern 2011 generiert, und
ein Signal (ResetRA, ResetWA oder dgl.) zum Zurücksetzen des Befehlsregisters
des ausgeführten
Befehls wird generiert. Wenn das Befehlsregister des ausgeführten Befehls
zurückgesetzt
wird, ändert
sich der Ausgang des Komparators 2053, der diesen ausgeführten Befehl
empfängt,
und der nächste
Befehl in der Reihenfolge wird zum DRAM-Kern 2011 gesendet.
Auf diese Weise werden Befehle in der Reihenfolge von Befehlseingaben
ausgeführt.
-
47 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Adressenverarbeitung gemäß der ersten
Ausführungsform
relevant ist. Hier im Nachstehenden repräsentiert ein Signal mit dem
Buchstaben "P" am Ende seines Signalnamens ein
Signal, das Impulse aufweist, die aus Anstiegkanten eines Signals
mit einem entsprechenden Signalnamen bestehen. Die Adresseneingangsschaltungen 2034 und 2044,
wie in der Figur gezeigt, enthalten jeweils Eingabepuffer 2057A und 2057B und
Transfergates 2058A und 2058B. Ferner enthalten
das Adressenregister A 2019 und das Adressenregister B 2020 jeweils
Adressenverriegelungen A1 und B1, Transfergates 2060A und 2060B,
Adressenverriegelungen A2 und B2, Transfergates 2062A und 2062B, und
Transfergates 2063A und 2063B. Eine von den Transfergates 2062A, 2062B, 2063A und 2063B zugeführte Adresse
wird durch einen Adressenbus 2017 zum DRAM-Kern 2011 gesendet.
Ferner wird auch eine von dem Auffrischadressenzähler/register 2018 zugeführte Auffrischadresse
durch das Transfergate 2064 und den Adressenbus 17 zum DRAM-Kern 2011 gesendet.
-
Wenn
ein Lesebefehl oder ein Schreibbefehl von einer Außenseite
der Anordnung eingegeben wird, wird eine Adresse, die dem Eingabepuffer 2057A oder 2057B gleichzeitig
mit dem Eingabebefehl zugeführt
wird, jeweils zur Adressenverriegelung A1 oder B1 durch das Transfergate 2058A oder 2058B gesendet.
In dem Fall eines Lesebefehls wird die Adresse zum DRAM-Kern 2011 durch
das Transfergate 2063A oder 2063B synchron mit
dem Transfer des Befehls zum DRAM-Kern gesendet. In dem Fall eines
Schreibbefehls wird ferner eine Adresse zur Adressenverriegelung
A2 oder B2 zur Zeiteinstellung der letzten Datenerfassung transferiert,
und wird dann durch die Transfergates 2062A oder 2062B zum
DRAM-Kern 2011 synchron mit dem Transfer des Befehls zum
DRAM-Kern transferiert. Ferner generiert und hält der/das Auffrischadressenzähler/register 2018 eine
Auffrischadresse darin, die dann durch das Transfergate 2064 zum
DRAM-Kern 2011 synchron mit dem Transfer des Auffrischbefehls
zum DRAM-Kern gesendet wird.
-
48 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Datenausgabe gemäß der ersten
Ausführungsform
relevant ist. 49 ist eine Zeichnung, die
eine Transfersignal-Generatorschaltung von 48 zeigt.
Die jeweiligen Daten-I/O-Schaltungen 2033 und 2043 des
A Ports 2030 und des B Ports 2040 enthalten jeweils
Datenausgabezweck-Schaltungen 2065A und 2065B und Dateneingabezweck-Schaltungen 2074A und 2074B,
die im Nachstehenden beschrieben werden. Aus dem Speicher-Array 2012 durch
den Lesepuffer 2016 gelesene Daten werden, wie in der Figur
gezeigt, jeweils zur Datenausgabezweck-Schaltung 2065A oder 2065B durch
den Datenbus 2021 und das Transfergate 2024 oder 2025 gesendet.
-
Die
Datenausgabezweck-Schaltungen 2065A und 2065B enthalten
jeweils Datenverriegelungen A1 und B1, Transfersignal-Generatorschaltungen 2067A und 2067B,
Transfergates 2069A und 2069B, Datenverriegelungen
A2 und B2, Parallel- Seriell-Wandler 2070A und 2070B,
und Ausgabepuffer 2071A und 2071B.
-
Die
Transfergates 2024 und 2025 werden von der Steuerschaltung 2014 des
DRAM-Kerns 2011 auf der Basis der internen Operationen
gesteuert. Wenn der ausgeführte
Befehl Read-A ist (d. h. eine Leseoperation in Bezug auf den A Port),
ist das Transfergate 2024 offen. Wenn der ausgeführte Befehl
Read-B ist, ist das Transfergate 2025 offen. Die Datenverriegelungen
A1 und B1 speichern die Daten darin, die dann zu den jeweiligen
Datenverriegelungen A2 und B2 eine vorherbestimmte Latenz nach dem
Empfang von Lesebefehlen in den jeweiligen Ports gesendet werden,
wo eine solche Latenz durch Operationen der Transfergates 2068A und 2068B eingeführt wird.
Die Daten werden dann jeweils durch die Parallel-Seriell-Wandler 2070A und 2070B konvertiert,
gefolgt davon, dass sie zu den Ausgabepuffern 2071A und 2071B transferiert
werden, um daraus ausgegeben zu werden.
-
Die
Transfersignal-Generatorschaltungen 2067A und 2067B,
wie in 49 gezeigt, setzen eine Serie
von Flip-Flops 2072 ein,
um die jeweiligen Lesebefehle RA1 und RB1 um eine solche Anzahl von
Taktzyklen zu verzögern,
wie durch die Latenzeinstellungen bestimmt, wodurch ein Datentransfersignal 2002 generiert
wird. Da der Transfer gelesener Daten von den Transfergates 2068A und 2068B auf das
Datentransfersignal 2002 ansprechen kann, werden die gelesenen
Daten letztendlich von der Zeiteinstellung einer Leseoperation um
so viele Taktzyklen verzögert
wie zur Latenz äquivalent.
-
50 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Dateneingabe gemäß der ersten
Ausführungsform
relevant ist. Die Dateneingabezweck-Schaltungen 2074A und 2074B enthalten
jeweils Dateneingabe (Din)-puffer 2075A und 2075B,
Seriell-Parallel-Wandler 2076A und 2076B, und
Datentransfereinheiten 2077A und 2077B. Schreib daten
von den Datentransfereinheiten 2077A und 2077B werden
zum WriteAmp 2015 jeweils durch die Schreibdatenregister 2022 und 2023,
die Datentransfereinheiten 2078A und 2078B, und
den Datenbus 21 gesendet, und werden in das Speicher-Array 2012 geschrieben.
-
Seriell
eingegebene Daten werden gemäß der Burst-Länge von
seriell in parallel konvertiert, und werden dann zu den Schreibregistern 2022 und 2023 zu
der Zeiteinstellung gesendet, zu der das letzte Datenelement eingegeben
wird. Wenn der Schreibbefehl vom Entscheider 2026 zum DRAM-Kern 2011 gesendet
wird, werden auch die entsprechenden Daten durch das Datentransfergate 2078A oder 2078B zum
DRAM-Kern 2011 gesendet.
-
51 bis 58 sind
Zeitdiagramme, die Operationen des Multiport-Speichers der ersten
Ausführungsform
zeigen. 51 und 52, 54 und 55,
und 57 und 58 sind
Zeichnungen, die ein einzelnes Zeitdiagramm zum Zweck der geeigneten
Darstellung teilen, wobei eine die erste Hälfte des Zeitdiagramms zeigt,
und die andere die zweite Hälfte
zeigt, mit einigen Überlappungen
dazwischen.
-
51 und 52 zeigen
Operationen, die vorgenommen werden, wenn Lesebefehle konsekutiv
in die beiden Ports eingegeben werden. Der A Port und der B Port,
denen die jeweiligen Takte CLKA und CLKB mit voneinander verschiedenen
Frequenzen geliefert werden, nehmen einen Befehl, eine Adresse und
Schreibdaten synchron mit dem empfangenen Takt auf, und geben abgerufene
Daten synchron mit den Takten aus. In diesem Beispiel operiert der
A Port bei einer maximalen Taktfrequenz, und der B Port operiert
bei einer geringfügig
langsameren Taktfrequenz. Für
den A Port gilt: ein Lesebefehlszyklus = 4 (CLKA), eine Datenlatenz
= 4, und eine Burst-Länge
= 4. Für
den B Port gilt: ein Lesebefehlszyklus = 2 (CLKB), eine Datenlatenz
= 2, und eine Burst-Länge
= 2.
-
Die
Datenlatenzen und die Burst-Längen werden
in den Modusregistern 2031 und 2041 der jeweiligen
Ports eingestellt. In diesem Beispiel wird die Eingabe/Ausgabe von
Daten 4-mal synchron mit Takten ansprechend auf einen Befehl vorgenommen, und
die abgefragten Daten werden 4 Takte nach der Eingabe eines Lesebefehls
ausgegeben.
-
Die
den Ports A und B zugeführten
Befehle werden in den Befehlsregistern 2028 bzw. 2029 gespeichert.
Wenn der Auffrischzeitgeber 2051 ein Signal generiert,
speichert das Auffrischbefehlsregister 2027 einen Auffrischbefehl
darin. Der Entscheider 2026 überwacht diese Befehlsregister,
und sendet diese Befehle zum DRAM-Kern 2011 in der Reihenfolge,
in der sie erteilt werden. Ein nächster
Befehl wird gesendet, nachdem die Verarbeitung des letzten gesendeten
Befehls vollendet ist. Aus dem DRAM-Kern 2011 gelesene
Daten werden vom Lesepuffer 2016 zu den Datenverriegelungen 2069A und 2069B der
jeweiligen Ports gesendet, und werden dann aus parallelen Daten
in serielle Daten konvertiert, gefolgt davon, dass sie als Burst-Daten
synchron mit den jeweiligen externen Takten ausgegeben werden.
-
Ein
Befehl Read-A2 wird in das Lesebefehlsregister AR eingegeben, und
ein Befehl Read-B2 wird in das Lesebefehlsregister BR eingegeben,
wie in der Figur gezeigt. Davor tritt einmal eine Auffrischung auf,
und ein Auffrischbefehl wird in das Auffrischbefehlsregister eingegeben.
Gemäß der Reihenfolge
von Befehlserteilungen sendet der Entscheider 2026 diese
Befehls zum DRAM-Kern 2011 in der Reihenfolge von Read-A2 → Ref → Read-B2, und
diese Befehle werden dann vom Kern ausgeführt. Auch wenn eine Auffrischoperation
intern vorgenommen wird, erscheint es extern, dass Daten nach einer
vorherbestimmten Datenlatenz ausgegeben werden. So besteht keine
Notwendigkeit, Auffrischoperationen in irgendeiner Weise zu beachten.
-
53 zeigt ein Beispiel, bei dem Schreibbefehle
konsekutiv unter denselben Bedingungen wie oben beschrieben eingegeben
werden. Von der Außenseite
der Anordnung zur Zeit einer Schreiboperation eingegebene Daten
werden auch in der Form von Burst-Eingängen geliefert. Der Schreibbefehl
wird in dem Schreibbefehlsregister AW zu der Zeiteinstellung gespeichert,
zu der das letzte Datenstück
eingegeben wird. Auch in diesem Fall besteht keine Notwendigkeit,
Auffrischoperationen in irgendeiner Weise zu beachten, auch wenn
ein Auffrischbefehl intern generiert und ausgeführt wird.
-
54 und 55 zeigen
Operationen, die vorgenommen werden, wenn sowohl der A Port als auch
der B Port für
Leseoperationen bei der maximalen Taktfrequenz operieren. 56 ist eine Zeichnung, welche Operationen zeigt,
die vorgenommen werden, wenn sowohl der A Port als auch der B Port für Schreiboperationen
bei der maximalen Taktfrequenz operieren. In diesem Fall kann eine
Phasendifferenz in den Takten beider Ports existieren. Für beide
Ports gilt: ein Lesebefehlszyklus = 4, ein Schreibbefehlszyklus
= 4, eine Datenlatenz = 4, und eine Burst-Länge = 4. Auch in diesem Fall
werden Operationen geeignet vorgenommen, wie aus der Figur ersichtlich
ist.
-
57 und 58 sind
Zeitdiagramme, welche Operationen zeigen, die vorgenommen werden,
wenn beide Ports bei der höchsten
Frequenz operieren, und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird. Dies ist der Fall, in dem Befehle am meisten
verdichtet sind.
-
Der
DRAM-Kern 2011 operiert in der Reihenfolge von Ref → Write-A1 → Write-B1 → Read-A2 → Read-B2
ohne jegliche Lücken
dazwischen, wie veranschaulicht. In diesem Beispiel werden Read-A2 und
Read-B2 6 Takte nach der Eingabe von Schreibbefehlen eingegeben.
Auch wenn diese Zeiteinstel lungen um 2 Takte vorgesetzt werden,
ist es nicht möglich,
die internen Operationen des DRAM-Kerns vorzusetzen. Die Ausgabezeiteinstellung
gelesener Daten wird durch die Datenlatenz ab der Eingabe eines
Lesebefehls gesteuert. Wenn die Eingabezeiteinstellungen von Read-A2
und Read-B2 vorgesetzt werden, müssen
auch die Datenausgabezeiteinstellungen nach vorne gebracht werden.
In diesem Fall kommt die Datenausgabezeiteinstellung ansprechend
auf Read-B2 dem Start der DRAM-Kernoperation zu nahe, so dass Read-B2
nicht geeignet ausgeführt
werden kann. Aus diesem Grund muss das Befehlsintervall eines Write→Read-Übergangs
relativ lang eingestellt werden, so wie 6 Takte in diesem Beispiel.
-
Da
für das
Befehlsintervall Read→Write Schreibdaten
nicht in DQ-Anschlüsse
eingegeben werden können,
außer
die Ausgabe gelesener Daten ist vollendet, wird das Befehlsintervall
unweigerlich lang.
-
59A und 59B sind
Zeichnungen, die Operationen des DRAM-Kerns 2011 zeigen. 59A zeigt eine Leseoperation, und 59B zeigt eine Schreiboperation. Eine Serie von
Operationen wird ansprechend auf einen einzigen Befehl vorgenommen,
in der Reihenfolge Wortleitungsauswahl → Datenverstärkung → Rückschreiben → Vorladen,
wie in den Figuren gezeigt, wodurch die gesamte Operation vollendet
wird.
-
Ein
Befehlsintervall wird zur Zeit eines Befehlsübergangs von einem Schreibbefehl
zu einem Lesebefehl in der ersten Ausführungsform verlängert, wie
oben beschrieben. Dies wird in einer zweiten Ausführungsform
verbessert. Während
ein relevantes Befehlsintervall in der ersten Ausführungsform
sechs Taktzyklen beträgt,
kann die zweite Ausführungsform
dies auf fünf
Taktzyklen verkürzen.
-
Der
Multiport-Speicher der zweiten Ausführungsform der vorliegenden
Erfindung hat eine Konfiguration ähnlich jener des Multiport-Speichers
der ersten Ausführungsform
und unterscheidet sich nur dadurch, dass eine Auffrisch-Schaltung eine wie
in 60 gezeigte Konfiguration hat. 61 ist eine Zeichnung, welche die Schaltungskonfiguration
eines zweiten Entscheiders 2083 zeigt.
-
Die
Auffrisch-Schaltung der zweiten Ausführungsform, wie in 60 gezeigt, enthält einen Auffrischzeitgeber/Auffrischbefehlsgenerator 2081,
der den Auffrischzeitgeber 2051 und den Auffrischbefehlsgenerator 2052 von 43C kombiniert, ein zweites Auffrischbefehlsregister 2082,
und einen zweiten Entscheider 2083, und ein aus dem zweiten Entscheider 2083 ausgegebener
Auffrischbefehl wird in das Auffrischbefehlsregister 2027 eingegeben.
Der Auffrischbefehl REF2 des Auffrischbefehlsregisters 2027 wird
in den Entscheider 2026 wie in der ersten Ausführungsform
eingegeben. In dieser Konfiguration wird auch ein Rücksetzsignal
ResetREF, das aus dem Entscheider 2026 zum Auffrischbefehlsregister 2027 nach
der Vollendung einer Auffrischoperation ausgegeben wird, dem zweiten
Auffrischbefehlsregister 2082 zugeführt.
-
In
der Auffrisch-Schaltung der zweiten Ausführungsform ist der zweite Entscheider 2083 entlang dem
Weg eines Auffrischbefehls vorgesehen. Wenn erwartet wird, dass
Befehle wie in dem Fall eines Befehlsübergangs von Schreibbefehl → Lesebefehl
verdichtet sind, verzögert
der zweite Entscheider 2083 den Transfer eines Auffrischbefehls
zum Auffrischbefehlsregister 2027. Der zweite Entscheider 2083 prüft unter
Verwendung einer wie in 61 gezeigten Schaltungskonfiguration,
ob eine Änderung
von einem Schreibbefehl zu einem Lesebefehl stattfindet, und verzögert den
Transfer eines Auffrischbefehls von dem zweiten Auffrischbefehlsregister 2082 zum Auffrischbefehlsregister 2027,
wenn eine solche Änderung
detektiert wird.
-
REF
Transferverbotssignale A und B werden beim Empfang eines von der
Außenseite
der Anordnung zugeführten
Schreibbefehls durch die jeweiligen Ports deaktiviert, und werden
einen Taktzyklus später
aktiviert, gefolgt davon, dass sie einige Taktzyklen (d. h. 3 Taktzyklen
in diesem Beispiel) nach dem Empfang des letzten Datenelements erneut
deaktiviert werden, wie in 61 gezeigt.
3CLK Verzögerungen 2084A und 2084B von 61 enthalten Flip-Flops, etc., und werden durch
WA1 bzw. WB1 zurückgesetzt,
was dazu führt,
dass WA1D und WB1D zurückgesetzt
werden, wenn sie durch die Verzögerungen
hindurchgehen. Ein logisches UND der REF Transferverbotssignale
A und B wird erhalten, um ein REF Befehlstransfer-Verbotssignal
zu generieren. Dieses logische UND wird erhalten, da das Problem
in diesem Beispiel nur dann entsteht, wenn beide Ports Änderungen
von einem Schreibbefehl zu einem Lesebefehl erfahren, und kein Problem
existiert, wenn nur einer Port eine solche Änderung erfährt. Ferner ist der Grund,
warum die REF Transferverbotssignale A und B nur für einen
Taktzyklus nach dem Empfang eines Schreibbefehls deaktiviert werden,
dass dies eine extra zeit gibt, um eine Auffrischoperation vor dem
Empfang des letzten Datenelements vorzunehmen. Ferner ist die Verzögerung 2086 für den Zweck
einer geringfügigen
Verzögerung der
Zeiteinstellung relativ zum Takt vorgesehen, um so eine Differenz
in relativen Zeiteinstellungen zwischen dem REF Befehlstransfer-Verbotssignal
und dem von der Außenseite
der Anordnung zugeführten Befehl
zu verstärken.
-
62 bis 69 sind
Zeitdiagramme, die Operationen des zweiten Entscheiders zeigen. 70 bis 72 sind
Zeitdiagramme, die Operationen des Multiport-Speichers der zweiten
Ausführungsform
zeigen. 62 und 63, 64 und 65, 66 und 67, 68 und 69,
und 70 und 71 sind
Zeichnungen, die ein einzelnes Zeitdiagramm der Darstellung halber
in die Hälfte teilen, wobei
eine die erste Hälfte
des Zeitdiagramms zeigt, und die andere die zweite Hälfte zeigt,
mit einigen Überlappungen
dazwischen.
-
62 und 63 zeigen
einen Fall, in dem beide Ports eine Write→Read-Befehlsänderung
erfahren, und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode
auftritt. In diesem Fall wird eine Auffrischoperation Ref nach der
Vollendung von Read-A2 und Read-B2 vorgenommen.
-
64 und 65 zeigen
einen Fall, in dem beide Ports eine Write→Read-Befehlsänderung
erfahren, wie in dem obigen Fall, ein Auffrischzeitgeberereignis
tritt jedoch vor einer REF Transferverbotsperiode auf. In diesem
Fall werden eine Schreiboperation und eine Leseoperation vorgenommen,
nachdem eine Auffrischoperation Ref vorgenommen wird.
-
66 und 67 veranschaulichen
einen Fall, in dem nur der A Port einen Write→Read-Befehlsübergang
eingeht, und ein Auffrischzeitgeberereignis während einer REF Transferverbotsperiode auftritt.
In diesem Fall wird eine Auffrischoperation Ref nach der Vollendung
einer Schreiboperation vorgenommen, und dann wird eine Leseoperation
vorgenommen.
-
68 und 69 zeigen
einen Fall, in dem Write in beiden Ports fortgesetzt wird. In diesem
Fall werden, sofort nachdem der Schreibbefehl nach der letzten Dateneingabe
eingegeben wurde, die 3CLK Verzögerungen 2084A und 2084B deaktiviert.
-
70 und 71 sind
Zeitdiagramme, welche Operationen der zweiten Ausführungsform zeigen,
die den in 57 und 58 gezeigten
Operationen der ersten Ausführungsform
entsprechen. Das Befehlsintervall eines Write→Read-Befehlsübergangs
wird von sechs Takten auf fünf
Takte verglichen mit der ersten Ausführungsform verkürzt.
-
72 ist ein Zeitdiagramm, das Operationen der zweiten
Ausführungsform
zeigt, die in 56 gezeigten Operationen der
ersten Ausführungsform entsprechen.
Obwohl die Reihenfolge der Befehlsausführung bezüglich einer Auffrischoperation
verglichen mit der ersten Ausführungsform
geändert
wird, werden ordnungsgemäß Operationen
aufrechterhalten.
-
Die
zweite Ausführungsform,
wie oben beschrieben, kann unter beliebigen Bedingungen Operationen
geeignet vornehmen, und kann das Befehlsintervall eines Schreibbefehl→Lesebefehl-Übergangs
auf 5 Taktzyklen verkürzen.
-
Die
vorliegende Erfindung, wie oben beschrieben, ermöglicht, dass der Multiport-Speicher ohne
jede Rücksicht
auf Auffrischoperationen verwendet wird, wenn das Speicher-Array
auf der Basis eines DRAM-Kerns implementiert wird, wodurch ein Multiport-Speicher
zu niedrigen Kosten vorgesehen wird, der eine große Kapazität hat und
einfach zu verwenden ist.
-
(Dritter Aspekt der Erfindung)
-
Im
Folgenden wird ein dritter Aspekt der vorliegenden Erfindung beschrieben.
-
Es
gibt einige Arten von Multiport-Speichern. Hier im Nachstehenden
wird auf einen Speicher Bezug genommen, der eine Vielzahl von Ports
aufweist, und der ermöglicht,
dass Zugriffe von den jeweiligen Ports unabhängig voneinander auf ein gemeinsames Speicher-Array
vorgenommen werden. Ein Multiport-Speicher eines Zweiport-Typs ist
beispielsweise mit einem A Port und einem B Port ausgestattet, und ermöglicht,
dass Lese/Schreibzugriffe auf den gemeinsamen Speicher unabhängig von
einer CPU-A, die mit dem A Port verknüpft ist, und von einer CPU-B,
die mit dem B Port verbunden ist, vorgenommen werden.
-
Als
Multiport-Speicher dieser Art ist ein Speicher mit einem SRAM-Speicher-Array
bekannt, bei dem Wortleitungen und Bitleitungspaare in doppelten Sätzen vorgesehen
sind, und jede Speicherzelle mit 2 Sätzen von Wortleitungen und
Bitleitungspaaren verbunden ist. Dieser Multiport-Speicher hat jedoch insofern
ein Problem einer geringen Schaltungsdichte, als die doppelten Sätze von
Wortleitungen und Bitleitungspaaren vorgesehen werden müssen.
-
Um
dies zu beheben, ist es denkbar, denselben Mechanismus wie gemeinsam
genutzte Speicher zu verwenden, die von einem Computer mit einer
Multiprozessor-Konfiguration verwendet werden. Ein gemeinsam genutzter
Speicher hat eine Vielzahl von Ports, die für einen gemeinsamen Speicher
vorgesehen sind. Typischerweise wird ein SRAM als Speicher verwendet,
und die Vielzahl von Ports wird als diskrete ICs implementiert.
Wenn Zugriffe simultan von der Vielzahl von Ports vorgenommen werden,
können
Operationen, die auf die Vielzahl von Ports ansprechen können, nicht
simultan vorgenommen werden, da das Speicher-Array gemeinsam genutzt
wird. Der einfachste Weg, ein solches Problem zu verhindern, ist,
ein BUSY-Signal für
einen Port zu generieren, um einen zugriff auf diesen zu verhindern,
wenn ein Zugriff von einem anderen Port vorgenommen wird. Dies führt jedoch
zu einem Problem einer Begrenzung der Verwendung des Speichers.
Unter Berücksichtigung
dessen wird eine Entscheider genannte Entscheidungsschaltung für einen
gemeinsamen Speicher vorgesehen, und sie bestimmt die Priorität von Zugriffsanforderungen,
die von der Vielzahl von Ports empfangen werden. Eine Steuerschaltung
des Speicher-Arrays ist konfiguriert, Operationen, die auf Zugriffsanforderungen
ansprechen können,
in einer Prioritätsreihenfolge
durchzuführen.
Zugriffsanforderungen werden beispielsweise in einer Reihenfolge
der Ankunft durchgeführt,
d. h. in einer Reihenfolge, in der die Zugriffsanforderungen den
jeweiligen Ports zugeführt
werden. Dies ändert
jedoch nicht die Situation, dass ein neuer Be fehl nicht ausgeführt werden
kann, während
ein Befehl eines anderen Ports verarbeitet wird. In einem solchen
Fall muss ein BUSY-Signal gesendet werden, und eine Anordnung, die
auf den Speicher zugreift, muss auch mit einem Mechanismus versehen
werden, der BUSY-Signale behandelt.
-
Dies
führt letztendlich
dazu, dass auf das Speicher-Array
direkt von der Vielzahl von Ports zugegriffen wird. Deshalb wird
keine Spaltenzugriffsoperation vorgesehen, die aufeinanderfolgend
auf konsekutive Spaltenadressen an der gleichen Reihenadresse zugreift,
während
eine solche Spaltenzugriffsoperation typischerweise bei DRAMs verfügbar ist.
Das heißt,
eine Zelle wird ausgewählt,
auf diese wird für
eine Lese/Schreiboperation zugegriffen, und sie wird zurückgesetzt,
was alles ansprechend auf einen einzigen Zugriff vorgenommen wird.
-
Wenn
ein gemeinsam genutzter Speicher zu implementieren ist, wird im
Allgemeinen ein SRAM herkömmlich
als Speicher-Array
verwendet. Dies ist darauf zurückzuführen, dass
ein SRAM Hochgeschwindigkeits-Direktzugriffsoperationen durchführen kann,
und es auch leicht ist, einen SRAM zu verwenden, da keine Notwendigkeit
für eine
Auffrischoperation besteht. Außerdem
ist ein Multiport-Speicher eines einzigen Chips herkömmlich mit
doppelten Sätzen
von Wortleitungen und Bitleitungspaaren versehen, und ein Multiport-Speicher
eines einzigen Chips auf der Basis eines Speicher-Arrays mit einer gewöhnlichen
SRAM-Konfiguration wurde in der Praxis noch nicht verwendet.
-
Zusammenfassend
werden Multiport-Speicher und gemeinsam genutzte Speicher unter
Verwendung von SRAMs implementiert, und DRAMs werden nicht verwendet,
die Auffrischoperationen erfordern.
-
Die
zu verarbeitende Datenmenge steigt in dem Maße, in dem Systeme eine zunehmend
hohe Leistung bieten, und Multi port-Speicher müssen auch eine große Kapazität aufweisen.
Es ist denkbar, einen Multiport-Speicher unter Verwendung eines Speicherzellen-Arrays
des dynamischen Typs (DRAM) zu implementieren, das eine höhere Schaltungsdichte
hat als die SRAMs, wodurch ein Multiport-Speicher mit einer großen Speicherkapazität zu niedrigen
Kosten vorgesehen wird. Die Auffrischoperation der Speicherzellen
stellt jedoch ein Problem dar.
-
In
herkömmlichen
DRAMs muss ein Auffrischbefehl in konstanten Intervallen von einer
Außenseite
der Anordnung zwischen Lese/Schreibbefehlen vorgesehen werden. Zu
diesem Zweck wird eine Controlleranordnung in einem System auf DRAM-Basis
mit einem Zeitgeber und/oder einer Steuerschaltung zur Auffrischverwaltung
versehen. Eine solche Schaltung wird jedoch nicht in Systemen vorgesehen,
die Multiport-Speicher
auf SRAM-Basis verwenden. Auch in einem Fall, wo Speicher auf der Basis
von DRAMs implementiert werden, müssen solche Speicher auf die
gleiche Weise in diesen Systemen verwendbar sein wie es die herkömmlichen Multiport-Speicher sind. Ein
Multiport-Speicher, der ein Speicherzellen-Array davon aufweist,
das aus DRAMs besteht, muss nämlich
selbst für
Auffrischoperationen sorgen.
-
Wenn
ein Entscheider ein BUSY-Signal ausgibt, besteht insofern ein Problem,
als die Verwendung des Speichers ziemlich mühevoll ist, wie oben beschrieben.
-
Die
vorliegende Erfindung ist auf das Vorsehen eines Multiport-Speichers
gerichtet, der ein Speicherzellen-Array davon aufweist, das aus
einem DRAM-Kern besteht, und der ohne Rücksicht auf Auffrischoperationen
verwendet werden kann, wodurch ein Multiport-Speicher zu niedrigen
Kosten vorgesehen wird, der eine große Kapazität hat und einfach zu verwenden
ist.
-
Um
die oben beschriebenen Probleme zu beheben, ist eine Multiport-Halbleiter-Speicheranordnung
der vorliegenden Erfindung konfiguriert, n interne Operationen während einer
Zeitperiode m (m ≥ 2) Male
durchführen
zu können,
solange ein minimaler Eingabezyklus jedes externen Ports erfüllt wird,
wobei mN < n < m(N + 1).
-
Die
oben beschriebene Bedingung erfordert, dass der minimale Befehlszyklus
jedes der N Ports auf eine Zeitperiode eingestellt wird, die N interne Operationszyklen
zuläßt, plus
einer Zeitperiode α,
die kürzer
ist als ein einzelner interner Operationszyklus. Wenn beispielsweise
N = 2, wird der minimale externe Befehlszyklus jedes Ports auf eine
Zeitperiode eingestellt, die zwei interne Operationszyklen zuläßt, plus
einer Zeitperiode α.
Hier ist die Zeitperiode α kürzer als
ein interner Operationszyklus.
-
Die
vorliegende Erfindung nützt
die Zeitperiode, die zwei interne Operationszyklen zuläßt, um das
Problem einer mühevollen
Verwendung des Speichers zu beheben, das von der Ausgabe eines BUSY-Signals
durch den Entscheider verursacht wird, und nützt die Zeitperiode α, um das
Problem von Auffrischoperationen zu beseitigen.
-
73 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung (dritter Aspekt), und zeigt einen Fall, in dem Leseoperationen
in Bezug auf zwei Ports vorgenommen werden.
-
Befehle
für die
beiden externen Ports, den A Port und den B Port, werden in einem
minimalen Intervall eingegeben, während welchem interne Operationszyklen
2,2-mal vorgenommen werden können. Das
heißt,
2,2-mal der interne Operationszyklus ist gleich dem minimalen externen
Befehlszyklus, und ein externer Befehlszyklus wird auf mehr als
die Zeitperiode eingestellt, die ermöglicht, dass interne Operationszyklen
2,2-mal vorgenommen werden. Takte CLKA und CLKB werden in den A
Port bzw. den B Port eingegeben, und die Eingabe/Aus gabe von einem
Befehl, einer Adresse und Daten in einen/aus einem externen Port
wird synchron mit einem entsprechenden Takt vorgenommen. Obwohl
nicht veranschaulicht, wird eine Adresse simultan mit einem Befehl
eingegeben. Wenn Lesebefehle dem A Port und dem B Port in den minimalen
externen Befehlszyklen zugeführt
werden, wie in der Figur gezeigt, führt eine Entscheidungsschaltung
die Steuerung durch, die einem Befehl einer Erstankunft Priorität verleiht,
wenn Kernoperationen vorgenommen werden.
-
Der
DRAM-Kern nimmt zwei Leseoperationen vor, um Daten aus einem Speicher-Array
während
eines externen Befehlszyklus zu lesen, und gibt die Daten zum A
Port und zum B Port aus. Der A Port und der B Port halten jeweils
die abgefragten Daten und geben die abgefragten Daten synchron mit
einer bestimmten Taktzeiteinstellung der jeweiligen Taktsignale
aus, das heißt,
der 6. Takt ab der Eingabe der Lesebefehle. Das heißt, die
Datenlatenz ist in diesem Fall 6.
-
Ein
Auffrischzeitgeber ist als interner Schaltungsaufbau vorgesehen
und generiert alleine einen Auffrischbefehl. Wenn keine Auffrischoperation
auftritt, operiert der interne Schaltungsaufbau der Anordnung routinemäßig, um
so zwei Operationen vorzunehmen, die Befehlen A und B während eines
externen Befehlszyklus entsprechen. Da die internen Operationen
2,2-mal während
eines externen Befehlszyklus durchgeführt werden können, wird
der DRAM-Kern eine extra Zeit tα haben,
die nach der Vollendung der beiden internen Operationen übrig bleibt.
-
Wenn
ein Auffrischbefehl intern generiert wird, operiert der interne
Schaltungsaufbau der Anordnung mit einer schnellen Geschwindigkeit.
Hier bedeutet die schnelle Geschwindigkeit, dass Operationen durchgeführt werden,
ohne dass eine extra Zeit tα erzeugt
wird. Wenn ein Auffrischbefehl generiert wird, nimmt die Anordnung
eine Auffrischope ration vor. Da in der Zwischenzeit Befehle in den
A Port und den B Port eingegeben werden, werden Befehle, die verarbeitet
werden sollten, akkumulieren. Die Anordnung führt Befehle einen nach dem
anderen mit der schnellen Geschwindigkeit aus, ohne dass die extra
Zeit tα vorgesehen
wird. Obwohl Befehle in den A Port und den B Port einer nach dem
anderen eingegeben werden, finden Auffrischbefehle nur in längeren Intervallen
statt als der externe Befehlszyklus, und nur die Befehle A und die
Befehle B müssen
ausgeführt
werden, bis der nächste
Auffrischbefehl generiert wird. Da die Geschwindigkeit einer internen Befehlsverarbeitung
schneller ist, wird es am Ende keine akkumulierten Befehle geben.
Mit anderen Worten, die interne Verarbeitung wird die Eingabe externer
Befehle einholen. Danach kehrt die Anordnung zu ihrem Routinebetrieb
zurück.
Die extra Zeit α wird unter
Berücksichtigung
der Anzahl externer Ports, der Anzahl interner Operationszyklen,
eines Auffrischintervalls, etc., bestimmt.
-
Die
Verzögerungszeit
(Datenlatenz) einer Datenausgabe, die auf einen Lesebefehl (RD)
anspricht, muss auf 3 Zyklen interner Operationen eingestellt werden
(in dem Fall von zwei Ports), da die Zeiteinstellung am schlechtesten
wird, wenn ein interner Auffrischbefehl und eine Befehlseingabe
in einen anderen Port unmittelbar vor dem Lesebefehl stattfinden.
Da jedoch ein externer Befehlszyklus, der geringfügig länger ist
als zwei interne Operationszyklen, alles ist, was für den geeigneten
Anordnungsbetrieb notwendig ist, ist eine Datentransferrate ziemlich
hoch.
-
Die
vorliegende Erfindung, wie oben beschrieben, kann Auffrischoperationen
gegenüber
der Außenseite
der Anordnung verbergen, und stellt den externen Befehlszyklus nur
geringfügig
länger
ein als die beiden internen Operationszyklen. Es besteht keine Notwendigkeit,
eine Auffrischsteue rung von der Außenseite durchzuführen, und
auch wenn eine Auffrischoperation intern durchgeführt wird,
ist sie für
die Außenseite
völlig
unsichtbar und beeinträchtigt
nicht die Weise, in der die Anordnungsoperationen an der Außenseite
erscheinen. Demgemäß kann ein
Zugriff auf den Speicher von jedem externen Port ohne jede Rücksicht
auf andere Ports erfolgen.
-
Auf
diese Weise kann die vorliegende Erfindung einen Multiport-Speicher
unter Verwendung von DRAM-Speicherzellen vorsehen, der eine große Kapazität und eine
schnelle Datentransferrate aufweist, während die Verwendung des Speichers
ohne jede Rücksicht
auf Auffrischoperationen ermöglicht wird,
als wäre
er auf der Basis der SRAMs implementiert.
-
In
dem Beispiel von 73 wird ein Element gelesener
Daten synchron mit dem externen Takt ansprechend auf einen Lesebefehl
ausgegeben. Das heißt,
eine Burst-Länge
ist 1. Nachdem die Ausgabe gelesener Daten in einem Taktzyklus vollendet
ist, werden daher die externen Ports keinerlei Daten während der
drei verbleibenden Taktzyklen des externen Befehlszyklus ausgeben,
was in einem ineffizienten Datentransfer resultiert. Dieses Problem kann
durch die Verlängerung
der Burst-Länge
behoben werden.
-
74 ist eine Zeichnung zur Erläuterung des Prinzips der vorliegenden
Erfindung und zeigt ein Beispiel, in dem die Burst-Länge 4 ist.
In diesem Beispiel, wie in dem vorhergehenden Fall, werden die externen
Befehlszyklen der beiden externen Ports auf eine Länge eingestellt,
die 2,2 interne Operationszyklen aufnehmen kann. Ferner entspricht
ein externer Befehlszyklus vier Taktzyklen. Daten werden viermal
aus einem externen Port während
eines einzigen externen Befehlszyklus synchron mit dem Takt so ausgegeben,
dass eine Datenlatenz von 6 vorgesehen wird. Wenn die Burst-Länge gemäß der Anzahl von Taktzyklen
eines externen Be fehlszyklus eingestellt wird, werden daher lückenlose
Leseoperationen in beiden der zwei Ports erzielt, wodurch die Datentransferrate
signifikant erhöht
wird. In diesem Fall ist es erforderlich, dass so viele Datenelemente wie
die Burst-Länge
intern in das Speicher-Array ansprechend auf einen Einzelzugriff
eingegeben/aus diesem ausgegeben werden. Wenn beispielsweise die
Anzahl von Dateneingabe/ausgabestiften eines externen Ports 4 ist,
und die Burst-Länge 4 ist,
ist es notwendig sicherzustellen, dass 16 Bit-Daten in das Speicher-Array
durch eine Einzelzugriffsoperation eingegeben/aus diesem ausgegeben
werden können.
-
Es
ist zu beachten, dass der A Port und der B Port nicht synchron operieren
müssen,
und jeweilige externe Befehlszyklen können unabhängig voneinander auf beliebige
Zeiteinstellungen eingestellt werden, solange der minimale Zyklus
gleich einer Dauer eingestellt wird, die für N interne Operationszyklen
notwendig ist, plus einer Dauer α,
die kürzer ist
als ein einzelner interner Operationszyklus.
-
75 und 76 sind
Zeichnungen, welche die Beziehung zwischen einem minimalen externen
Befehlszyklus und internen Operationszyklen in dem Fall von 2, 3
und N Ports zeigen. Wenn, wie in den Figuren gezeigt, die Anzahl
von Ports 2 ist, ist der minimale externe Befehlszyklus
eine Zeitlänge, die
zwei interne Operationen zuläßt, plus α, und wenn
die Anzahl von Ports 3 ist, ist der minimale externe Befehlszyklus
eine Zeitperiode, die drei interne Operationen zuläßt, plus α. Wenn ferner
die Anzahl von Ports N ist, ist der minimale externe Befehlszyklus
gleich einer Zeitlänge,
in der N + 1 interne Operationen durchgeführt werden können, plus
einer Zeitlänge α.
-
77 und 78A bis 78C sind Zeichnungen, die eine Konfiguration des
Multiport-Speichers gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigen. 77 zeigt einen DRAM-Kern
und seinen relevanten Schaltungsaufbau, und 78A zeigt
den A Port, und 78B zeigt den B Port. Ferner
zeigt 78C eine Auffrisch-Schaltung.
In 78A bis 78C gezeigte Schaltungen
sind mit jeweiligen Teilen von 77 verbunden.
-
Der
Multiport-Speicher dieser Ausführungsform,
wie in den Figuren gezeigt, enthält
einen DRAM-Kern 3011, einen Entscheider 3026 für den Steuerungszweck
der Bestimmung einer Operationsreihenfolge und zum Sicherstellen,
dass Operationen in der bestimmten Reihenfolge vorgenommen werden,
ein Befehlsregister 3025, das temporär von dem Entscheider 3026 zugeführte Befehle
speichert, und das diese Befehle zu einer Steuerschaltung 3014 des DRAM-Kerns 3011 in
der Reihenfolge transferiert, in der die Befehle empfangen werden,
Sätze von
Registern, die temporär
Befehle, Adressen und Daten jeweiliger Ports speichern, zwei externe
Ports, die aus einem A Port 3030 und einem B Port 3040 bestehen, und
eine Auffrisch-Schaltung 3050.
-
Der
A Port 3030 bzw. der B Port 3040 enthalten Modusregister 3031 und 3041,
die CLK-Puffer 3032 und 3042, Daten-I/O-Schaltungen 3033 und 3043,
Adresseneingangsschaltungen 3034 und 3044, und
Befehlseingabeeinheiten 3035 und 3045, welche
auf der Basis jeweiliger getrennter Taktfrequenzen operieren, die
von der Außenseite
der Anordnung zugeführt
werden. Eine Datenlatenz und Burst-Länge werden in den Modusregistern 3031 und 3041 gespeichert,
so dass sie getrennt eingestellt werden können. Die Daten-I/O-Schaltungen 3033 und 3043 sind
mit einem Mechanismus ausgestattet, um die Parallel-Seriell-Konvertierung
und Seriell-Parallel-Konvertierung
von Eingabe/Ausgabe-Daten gemäß der Burst-Länge vorzunehmen.
-
Die
Auffrisch-Schaltung 3050 enthält einen Auffrischzeitgeber 3051 und
einen Auffrischbefehlsgenerator 3052. Der Auffrischzeitgeber 3051 generiert
ein Auffrischstartsignal in vorherbestimmten Intervallen, und der
Auffrischbefehlsgenerator 3052 generiert ansprechend darauf
einen Auffrischbefehl.
-
Dem
A Port und dem B Port zugeführte
Befehle werden in einem Befehlsregister A 28A bzw. einem
Befehlsregister B 28B gespeichert. Adressen werden in einem
Adressenregister A 19A bzw. einem Adressenregister B 19B gespeichert,
und zu schreibende Daten werden in einem Schreibdatenregister A 22A bzw.
einem Schreibdatenregister B 22B gespeichert. Ferner wird
ein Auffrischbefehl in einem Auffrischbefehlsregister 3027 gespeichert,
und eine Auffrischadresse wird in einem Auffrischadressenzähler/register 3018 gespeichert.
-
Der
Entscheider 3026 bestimmt eine Reihenfolge der Befehlsausführung auf
der Basis der Reihenfolge der Befehlsankunft, und transferiert die
Befehle zum Befehlsregister 3025 in Reihenfolge, die bestimmt
wird. Das Befehlsregister 3025 sendet diese Befehle zur
Steuerschaltung 3014 des DRAM-Kerns 3011 in der Reihenfolge,
in der die Befehle von dem Entscheider 3026 empfangen werden. Wenn
der DRAM-Kern einen gegebenen Befehl verarbeitet, wird die Steuerschaltung 3014 in
einen Zustand versetzt, in dem sie einen nächsten Befehl empfangen kann.
Ansprechend darauf sendet das Befehlsregister 3025 den
nächsten
Befehl zur Steuerschaltung 3014. Befehle, die von dem Entscheider 3026 in
der Zwischenzeit zugeführt
werden, werden temporär
in dem Befehlsregister 3025 gespeichert. Ferner sendet
das Befehlsregister 3025 ein Transfersignal zu einem entsprechenden
Adressenregister und einem entsprechenden Datenregister (in dem Fall
einer Schreiboperation), zusätzlich
zum Transferieren der Befehle zur Steuerschaltung 3014 des DRAM-Kerns 3011.
In dem DRAM-Kern 3011 spricht die
Steuerschaltung 3014 auf den zugeführten Befehl an, und steuert
einen Decoder 3013, einen Schreibverstärker (WriteAmp) 3015,
und einen Lesepuffer 3016 dementsprechend, wodurch eine
Zugriffsoperation in Bezug auf das Speicher-Array 3012 vorgenommen
wird. In dem Fall einer Schreiboperation decodiert der Decoder 3013 einen
Adresse, auf die für die
Schreiboperation zuzugreifen ist, um so eine Wortleitung und eine
Spaltensignalleitung in dem Speicher-Array 3012 zu aktivieren, was
dazu führt, dass
die in den Schreibdatenregistern A und B gespeicherten Schreibdaten
durch den WriteAmp 3015 in das Speicher-Array 3012 geschrieben
werden. In dem Fall einer Leseoperation wird in ähnlicher Weise auf das Speicher-Array
zugegriffen, was dazu führt, dass
die gelesenen Daten von dem Lesepuffer 3016 zu den Datenausgangsschaltungen
jeweiliger Ports durch als 3024A bzw. 3024B bezeichnete
Transfergates A und B transferiert werden. Transferzeiteinstellungen
der Transfergates werden gemäß Operationszyklen
des DRAM-Kerns 3011 gesteuert, und werden von der Steuerschaltung 3014 bestimmt. Ausgabedaten
werden aus der Datenausgangsschaltung jedes Ports synchron mit dem
entsprechenden externen Takt ausgegeben.
-
Im
Folgenden werden Details beschrieben, die für jede von einer Befehlsverarbeitung,
Adressenverarbeitung und Datenverarbeitung relevant sind.
-
79 und 80 sind
Zeichnungen, welche eine Konfiguration von Einheiten zeigen, die
für eine
Befehlsverarbeitung gemäß einer
ersten Ausführungsform
relevant sind. Die gleichen Elemente wie jene von 77 und 78A bis 78C werden mit denselben Bezugszeichen bezeichnet.
Das Gleiche gilt in dem Fall anderer Zeichnungen.
-
Die
Befehlseingabeeinheit 3035 des A Ports, wie in 79 gezeigt, enthält einen Eingabepuffer 3036,
einen Befehlsdecoder 3037, und eine (n-1)-Taktverzögerung 3038,
und die Befehlseingabeeinheit 3045 des B Ports enthält einen
Eingabepuffer 3046, einen Befehlsdecoder 3047,
und eine (m-1)-Taktverzögerung 3048.
Hier sind n und m Burst-Längen.
Außerdem,
wie in 80 gezeigt, enthält das Befehlsregister
A ein Lesebefehlsregister AR und ein Schreibbefehlsregister AW,
und das Befehlsregister B enthält
ein Lesebefehlsregister BR und ein Schreibbefehlsregister BW.
-
Die
Eingabepuffer 3036 und 3046 erfassen zugeführte Lesebefehle
synchron mit den jeweiligen Takten CLKA1 und CLKB1, und die Befehlsdecoder 3037 und 3047 führen Decodierprozesse
durch. Die Befehlsdecoder 3037 und 3047 generieren
RA1 bzw. RB1 in dem Fall eines Lesebefehls, und generieren WA1 bzw.
WB1 in dem Fall eines Schreibbefehls. Die Signale RA1 und RB1 werden
zu den Lesebefehlsregistern AR bzw. BR ohne jede Zeitmanipulation
gesendet, während
die Signale WA1 und WB1 von der (n-1)-Taktverzögerung 3038 und der
(m-1)Taktverzögerung 3048 verzögert werden,
bis das letzte Datenelement von Burst-Daten eingegeben wird, gefolgt davon,
dass sie zu den Schreibbefehlsregistern AW bzw. BW gesendet werden.
Außerdem
wird ein von der Auffrisch-Schaltung 3050 generierter Auffrischbefehl
zum Auffrischbefehlsregister 3027 gesendet.
-
Der
Entscheider 3026 detektiert eine Reihenfolge, in der Befehle
zu diesen fünf
Befehlsregistern AR, AW, BR, BW und 3027 transferiert werden, und
sendet diese Befehle einen nach dem anderen in der detektierten
Reihenfolge zum Befehlsregister 3025. Beim Empfang eines
vom Entscheider 26 gesendeten Befehls sendet das Befehlsregister 3025 eine
Befehlsempfangsquittung an den Entscheider 3026. Ansprechend
auf die Befehlsempfangsquittung sendet der Entscheider 3026 einen
nächsten
Befehl an das Befehlsregister.
-
Das
Befehlsregister 3025 transferiert die Befehle einen nach
dem anderen zur Steuerschaltung 3014 des DRAM-Kerns 3011 in
der Reihenfolge, in der diese Befehle vom Entscheider 3025 empfangen werden.
Die Steuerschaltung 3014 des DRAM-Kerns führt die
empfangenen Befehle aus, und sendet ein Befehlsempfangs-READY-Signal
zum Befehlsregister 3025, wenn die Befehlsausführung endet
oder einem Ende nahe kommt. Ansprechend auf das Befehlsempfangs-READY-Signal
sendet das Befehlsregister 3025 den nächsten Befehl an die Steuerschaltung 3014.
In der Zwischenzeit werden Befehle, die vom Entscheider 3026 zugeführt werden,
temporär
in dem 3025 gespeichert.
-
81 ist eine Ausführungsform des Entscheiders 3026.
Eine Reihenfolge, in der Befehle in den fünf Befehlsregistern (dem Lesebefehlsregister AR,
dem Schreibbefehlsregister AW, dem Lesebefehlsregister BR, dem Schreibbefehlsregister
BW und dem Auffrischbefehlsregister 3027) von 80 ankommen, wird von Komparatoren 3053 detektiert, wie
in der Figur gezeigt. Jeder Komparator 3053 vergleicht
die Zeiteinstellungen von zwei Befehlsregistern, und ändert einen
Ausgang davon auf "H" auf der Seite, wo "H" zuerst eingegeben wird. Ein UND-Gate 3054 bestimmt,
ob ein gegebener Befehl vor allen vier anderen Befehlen eingegeben
wird, indem geprüft
wird, ob alle relevanten Ausgänge
der zusammenhängenden
Komparatoren 3053 'H' sind. Signale RA31,
WA31, RB31, WB31 und REF31, die jeweiligen Befehlen entsprechen,
werden "H", wenn ein entsprechender
Befehl der früheste
ist, und werden zum Befehlsregister 3025 transferiert.
Wenn RA2 das früheste
von RA2 bis REF2 ist, hat der mit RA2 verbundene Komparator einen
Ausgang davon, der "H" ist, auf der Seite,
wo RA2 angeschlossen ist, was dazu führt, dass RA31 "H" ist. In diesem bestimmten Moment wurde
die Befehlsempfangsquittung noch nicht erzeugt (= "L"), so dass N1 = was dazu führt, dass
R3 "H" ist. Der Befehl
RA3 wird so zum Befehlsregister 3025 gesendet.
-
Das
Befehlsregister 3025 generiert eine Befehlsempfangsquittung,
wenn es einen Befehl empfängt.
Wenn dies geschieht, wird ein "L" Impuls an einem
Knoten N1 generiert, was dazu führt,
dass RA3 bis REF3 alle "L" sind. In der Zwischenzeit
wird eines von ResetRA bis ResetREF generiert. Wenn RA31 "H" ist, wird ResetRA generiert, wodurch
das Lesebefehlsregister AR zurückgesetzt
wird. Ansprechend darauf wird RA2 "L",
und eines von RA31 bis REF31 wird dann "H",
was einen Befehl anzeigt, der als Nächstes an der Reihe ist. Wenn
N1 "H" an einem Ende des "L" Impulses wird, wird der Befehl, der
als Nächstes
an der Reihe ist, zum Befehlsregister 3025 transferiert.
Die oben beschriebenen Operationen werden danach wiederholt.
-
82 und 83 sind
Zeichnungen, die eine Konfiguration des Befehlsregisters 3025 zeigen. Es
ist geteilt und in den beiden Zeichnungen gezeigt.
-
Das
Befehlsregister 3025 enthält hauptsächlich ein Schieberegister 3092,
das darin Befehle speichert und aufeinanderfolgend diese Befehle
zum DRAM-Kern 3011 ausgibt, und es enthält Schalter (SW1–SW3) 3082–3084,
die die von dem Entscheider 3026 empfangenen Befehle zum
Schieberegister 3092 transferieren. In diesem Beispiel
hat das Schieberegister 3092 eine dreistufige Konfiguration,
und enthält
Register 3085–3087 zum
Speichern von Befehlen, Flaggen 3088–3090, die einen Speicherstatus
der Register 3085–3087 anzeigen,
und eine Rücksetzdateneinheit 3091,
die den Zustand der Register 3085–3087 zurücksetzt.
In diesem Zustand, wo kein Befehl in den Registern 3085–3087 gespeichert ist,
sind die Flaggen 3088–3090 alle
LOW (FL1–FL3 = "L"), so dass der Schalter 3082 (SW1)
angeschlossen ist. Der erste Befehl wird in dem Register 3085 durch
SW1 gespeichert, so dass FL1 "H" wird. Wenn FL1 "H" wird, generiert eine "H" Kantenimpulsschaltung 3093 einen
Impuls, so dass eine Befehlsempfangsquittung zum Entscheider 3026 gesendet
wird.
-
Wenn
das Befehlsempfangs-READY-Signal durch den DRAM- Kern 3011 in diesem bestimmten Moment
aktiviert wird, wird das Gate 3097 geöffnet, um den Befehl des Registers 3085 zu
einer Verriegelung 3098 zu transferieren, wobei der Befehl
dann zur Steuerschaltung 3014 des DRAM-Kerns 3011 gesendet
wird. Zur selben Zeit werden eine Adresse, die dem Befehl entspricht,
und dgl. zum DRAM-Kern 3011 gesendet. Der DRAM-Kern 3011 negiert
das Befehlsempfangs-READY-Signal, während Operationen gemäß dem empfangenen
Befehl gestartet werden. Das Gate 3097 wird so geschlossen.
Die Registersteuerschaltung 3096 generiert ein Schiebesignal, das
veranlasst, dass sich die Daten des Registers 3086 zum
Register 3085 bewegen, und die Daten des Registers 3087 zum
Register 3086. Wenn ein Befehl vor der Generierung eines
Schiebesignals nicht in dem Register 3086 gespeichert wird,
führt eine
Schiebeoperation dazu, dass das Register 3085 zurückgesetzt
wird, und FL1 "L" wird. Die Registersteuerschaltung 3096 generiert
ein Transfersperrsignal gleichzeitig mit der Generierung des Schiebesignals,
um so SW1–SW3
zu trennen, wodurch Daten daran gehindert werden, während der
Schiebeoperation zum Schieberegister 3092 transferiert
zu werden. Wenn der erste Befehl (Befehl 1) dem Register 3085 durch
SW1 zugeführt
wird, wird der Befehl in dem Register 3085 gespeichert,
wenn der DRAM-Kern 3011 den
vorhergehenden Befehl ausführt.
FL1 wird "H", was SW1 trennt,
und ferner SW2 nach einer vorherbestimmten Verzögerung trennt. Hier entspricht
die vorherbestimmte Verzögerung
einer Zeitperiode von der Generierung einer Befehlsempfangsquittung
bis zum Zurücksetzen
eines Entscheiderausgangs. Wenn der nächste Befehl (Befehl 2) vom
Entscheider 3026 zugeführt
wird, bevor der DRAM-Kern 3011 bereit ist, einen Befehl
zu empfangen, wird der Befehl 2 in dem Register 3086 durch SW2
gespeichert. FL2 wird "H", was eine Befehlsempfangsquittung
generiert, und SW2 trennt, gefolgt vom weiteren Trennen von SW3
nach einer vorherbestimm ten Verzögerungszeit.
Wenn der DRAM-Kern in einem solchen Zustand ist, dass er einen Befehl
empfangen kann, wird ein Befehlsempfangs-READY-Signal generiert,
um das Gate 3097 zu öffnen,
so dass der Befehl 1 des Registers 3085 zur Verriegelung 3098 und
dann zum DRAM-Kern 3011 gesendet wird. Der DRAM-Kern 3011 negiert
das Befehlsempfangs-READY-Signal, während Operationen davon gemäß dem Befehl
1 starten. Ansprechend darauf wird das Gate 3097 geschlossen.
Die Registersteuerschaltung 3096 generiert ein Schiebesignal,
das den Befehl 2 des Registers 3086 zum Register 3085 verschiebt,
und auch die Inhalte (Rücksetzzustand)
des Registers 3087 zum Register 3086 verschiebt.
Das Register 3085 speichert letztendlich den Befehl 2,
und die Register 3086 und 3087 sind letztendlich
in einem Rücksetzzustand.
Da FL1 "H" ist, und FL2 und
FL3 "L" sind, ist SW2 angeschlossen,
wohingegen SW1 und SW3 getrennt sind.
-
Die
Rücksetzdateneinheit 3091 ist
mit dem Register 3087 des Schieberegisters 3092 auf
der linken Seite davon verbunden. Diese Konfiguration ist zum Zweck
des Verschiebens des Befehls des Registers 3087 zum Register 3086 durch
ein nachfolgenden Schiebesignal vorgesehen, wenn Befehle den gesamten
Weg bis zum Register 3087 gespeichert werden. Auf diese
Weise akkumuliert das Befehlsregister 3025 temporär vom Entscheider 3026 gesendete
Befehle, und detektiert den Zustand des DRAM-Kerns 3011,
gefolgt vom Senden der Befehle einen nach dem anderen.
-
Ein
Befehlsgenerierungs-Detektiersignal wird in die Registersteuerschaltung 3096 eingegeben.
Das Befehlsgenerierungs-Detektiersignal wird generiert, wenn ein
Befehl vom Entscheider 3026 gesendet wird. 84A und 84B zeigen
Operationen der Registersteuerschaltung 3096. Ein Schiebesignal
und ein Transfersperrsignal werden generiert, wenn das Befehlsempfangs-READY-Signal
zur Registersteuerschaltung 3096 deaktiviert wird. Wenn ein
Befehl vom Entscheider 3026 gesendet wird, unmittelbar
bevor das Befehlsempfangs-READY-Signal deaktiviert wird, wird es
jedoch bevorzugt, eine Schiebeoperation erst nach dem Senden eines
früher
empfangenen Befehls zum Schieberegister 3092 vorzunehmen.
Deshalb wird ein Vergleich angestellt, welche von der Abfallkante
des Befehlsempfangs-READY-Signals und der Anstiegkante des Befehlsempfangs-READY-Signals
früher
ist. Wenn die Erstere früher
ist, werden ein Schiebesignal und ein Transfersperrsignal ansprechend
auf die erstere Abfallkante generiert, und wenn das Letztere früher ist, werden
ein Schiebesignal und ein Transfersperrsignal ansprechend auf die
Abfallkante des letzteren Signals generiert.
-
85 und 86 sind
Zeichnungen, die Operationen des Befehlsregisters 3025 zeigen.
Hier erfolgt eine Darstellung in Bezug auf einen Fall, in dem ein
Auffrischbefehl zur Zeit eines Write→Read-Befehlsübergangs
generiert wird, der eine Zeitbedingung präsentiert, zu der Eingabebefehle
am meisten verdichtet sind. Zahlen von SW1 bis SW3, die in den Figuren
gezeigt sind, zeigen einen SW an, der angeschlossen ist, und die
Dauer, für
die ein SW angeschlossen ist, ist veranschaulicht. Ferner entsprechen
Register 1 bis 3 jeweils den Registern 3085 bis 3087.
-
87 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
eine Adressenverarbeitung gemäß der Ausführungsform
relevant ist. Hier im Nachstehenden repräsentiert ein Signal mit dem
Buchstaben "P" am Ende seines Signalnamens ein
Signal, das Impulse aufweist, die aus Anstiegkanten eines Signals
mit einem entsprechenden Signalnamen bestehen. Die Adresseneingangsschaltungen 3034 und 3044,
wie in der Figur gezeigt, enthalten jeweils Eingabepuffer 3057A und 3057B und
Transfergates 3058A und 3058B. Ferner enthalten
das Adressenregister 3019A und das Adres senregister 3020B jeweils
Adressenverriegelungen A1 bis A4 und B1 bis B4, und Transfergates 3059A bis 3063A und 3059B bis 3063B.
Eine von den Transfergates 3062A, 3062B, 3063A und 3063B zugeführte Adresse
wird durch einen Adressenbus 3017 zum DRAM-Kern 3011 gesendet.
Ferner wird auch eine vom Auffrischadressenzähler/register 3018 zugeführte Auffrischadresse
durch das Transfergate 3064 und den Adressenbus 3017 zum
DRAM-Kern 3011 gesendet.
-
Wenn
ein Lesebefehl oder ein Schreibbefehl von einer Außenseite
der Anordnung eingegeben wird, wird eine Adresse, die dem Eingabepuffer 3057A oder 3057B gleichzeitig
mit dem Eingabebefehl zugeführt
wird, jeweils durch das Transfergate 3058A oder 3058B zur
Adressenverriegelung A1 oder B1 gesendet. In dem Fall eines Lesebefehls wird
die Adresse durch die Transfergates 3061A und 3063A oder 3061B und 3063B und
die Adressenverriegelung A4 oder B4 zum DRAM-Kern 3011 gesendet,
synchron mit dem Transfer des Befehls zum DRAM-Kern. In dem Fall
eines Schreibbefehls wird eine Adresse ferner zur Adressenverriegelung
A2 oder B2 zur Zeit der letzten Datenerfassung transferiert, und
wird dann durch das Transfergate 3062A oder 3062B zum
DRAM-Kern 3011 transferiert, synchron mit dem Transfer
des Befehls zum DRAM-Kern. Ferner generiert und hält der/das
Auffrischadressenzähler/register 3018 eine
Auffrischadresse darin, die dann durch das Transfergate 3064 zum
DRAM-Kern 3011 gesendet wird, synchron mit dem Transfer
des Auffrischbefehls zum DRAM-Kern.
-
88 ist eine Zeichnung, die eine Konfiguration
eines Teils zeigt, der für
die Datenausgabe gemäß der Ausführungsform
relevant ist. 89 ist eine Zeichnung, die
eine Transfersignal-Generatorschaltung von 88 zeigt.
Die jeweiligen Daten-I/O-Schaltungen 3033 und 3043 des
A Ports 3030 und des B Ports 3040 enthalten jeweils
Datenausgabezweck-Schaltungen 3065A und 3065B und Dateneingabe zweck-Schaltungen 3074A und 3074B.
Aus dem Speicher-Array 3012 durch den Lesepuffer 3016 gelesene
Daten werden, wie in der Figur gezeigt, jeweils zur Datenausgabezweck-Schaltung 3065A oder 3065B durch
den Datenbus 3021 und die Transfergates 3024A oder 3024B gesendet.
-
Die
Datenausgabezweck-Schaltungen 3065A und 3065B enthalten
jeweils Datenverriegelungen A1 und B1, Transfersignal-Generatorschaltungen 3067A und 3067B,
Transfergates 3068A und 3068B, Datenverriegelungen
A2 und B2, Parallel-Seriell-Wandler 3070A und 3070B,
und Ausgabepuffer 3071A und 3071B.
-
Die
Transfergates 3024A und 3024B werden von der Steuerschaltung 3014 des
DRAM-Kerns 3011 auf der Basis der internen Operationen
gesteuert. Wenn der ausgeführte
Befehl Read-A ist (d. h. eine Leseoperation in Bezug auf den A Port),
ist das Transfergate 3024A offen. Wenn der ausgeführte Befehl
Read-B ist, ist das Transfergate 3024B offen. Die Datenverriegelungen
A1 und B1 speichern die Daten darin, die dann zu den jeweiligen
Datenverriegelungen A2 und B2 eine vorherbestimmte Latenz nach dem
Empfang von Lesebefehlen in den jeweiligen Ports gesendet werden,
wo eine solche Latenz durch Operationen der Transfergates 3068A und 3068B eingeführt wird.
Dann werden die Daten von den Parallel-Seriell-Wandlern 3070A und 3070B konvertiert, gefolgt
davon, dass sie zu den Ausgabepuffern 3071A bzw. 3071B transferiert
werden, um daraus ausgegeben zu werden.
-
Die
Transfersignal-Generatorschaltung 3067 (d. h. 3067A oder 3067B),
wie in 89 gezeigt, setzt eine Serie
von Flip-Flops 3072 ein, um einen jeweiligen Lesebefehl
RA1 oder RB1 um eine solche Anzahl von Taktzyklen zu verzögern, wie
von den Latenzeinstellungen bestimmt, wodurch ein Datentransfersignal 3002 generiert
wird. Da der Transfer gelesener Daten durch die Transfergates 3068A und 3068B auf
das Datentransfersignal 3002 anspricht, werden die gelesenen
Daten letztendlich von der Zeiteinstellung einer Leseoperation um
so viele Taktzyklen wie die Latenzeinstellungen verzögert.
-
90 und 91 sind
Zeichnungen, die eine Konfiguration eines Teils zeigen, der für eine Dateneingabe
gemäß der Ausführungsform
relevant ist. Die Dateneingabezweck-Schaltungen 3074A und 3074B enthalten
jeweils Dateneingabe (Din)-Puffer 3075A und 3075B,
Seriell-Parallel-Wandler 3076A und 3076B, und
Datentransfereinheiten 3077A und 3077B. Schreibdaten
WDA bzw. WDB von den Datentransfereinheiten 3077A und 3077B werden
zum WriteAmp 3015 durch erste Schreibdatenregister 3078A und 3078B,
Datentransfergates 3079A und 3079B, zweite Schreibdatenregister 3080A und 3080B,
Datentransfergates 3081A und 3081B und den Datenbus 3021 gesendet,
und werden dann in das Speicher-Array 3012 geschrieben.
-
Seriell
eingegebene Daten werden gemäß der Burst-Länge von
seriell in parallel konvertiert, und werden dann zu den ersten Schreibdatenregistern 3078A und 3078B zu
der Zeiteinstellung gesendet, zu der das letzte Datenelement eingegeben
wird. Wenn der Schreibbefehl vom Befehlsregister 3025 zum
DRAM-Kern 3011 gesendet wird, werden auch die entsprechenden
Daten zum DRAM-Kern 3011 gesendet.
-
92 bis 99 sind
Zeitdiagramme, die Operationen des Multiport-Speichers der ersten
Ausführungsform
zeigen. 92 und 93, 95 und 96,
und 98 und 99 sind
Zeichnungen, die ein einzelnes Zeitdiagramm zur geeigneten Darstellung
teilen, wobei eine die erste Hälfte
des Zeitdiagramms zeigt, und die andere die zweite Hälfte des
Zeitdiagramms zeigt, mit einigen Überlappungen dazwischen.
-
92 und 93 zeigen
Operationen, die vorgenommen werden, wenn Lesebefehle konsekutiv
in die beiden Ports ein gegeben werden. Der A Port und der B Port,
die mit den jeweiligen Takten CLKA und CLKB mit voneinander verschiedenen
Frequenzen versehen werden, nehmen einen Befehl, eine Adresse und
Schreibdaten auf, synchron mit den empfangenen Takten, und geben
abgefragte Daten synchron mit den Takten aus. In diesem Beispiel
operiert der A Port bei einer maximalen Taktfrequenz, und der B
Port operiert bei einer geringfügig
langsameren Taktfrequenz. Für
den A Port gilt: ein Lesebefehlszyklus = 4 (CLKA), eine Datenlatenz
= 6 (CLKA), und eine Burst-Länge
= 4. Für
den B Port gilt: ein Lesebefehlszyklus = 2 (CLKB), eine Datenlatenz
= 3 (CLKB), und eine Burst-Länge
= 2. Die Datenlatenzen und die Burst-Längen werden in den Modusregistern 3031 und 3041 der
jeweiligen Ports eingestellt. In Bezug auf den A Port wird die Eingabe/Ausgabe
von Daten 4-mal synchron mit dem Takt ansprechend auf einen Befehl
vorgenommen, und die abgefragten Daten werden 6 Taktzyklen nach
der Eingabe eines Lesebefehls ausgegeben. In Bezug auf den B Port
wird die Eingabe/Ausgabe von Daten 2-mal synchron mit dem Takt ansprechend
auf einen Befehl vorgenommen, und die abgefragten Daten werden 3 Taktzyklen
nach der Eingabe eines Lesebefehls ausgegeben.
-
Die
den Ports A und B zugeführten
Befehle werden in den Befehlsregistern 3028A bzw. 3028B gespeichert.
Wenn der Auffrischzeitgeber 3051 ein Signal generiert,
speichert das Auffrischbefehlsregister 3027 einen Auffrischbefehl
darin. Der Entscheider 3026 überwacht diese Befehlsregister,
und sendet diese Befehle zum Befehlsregister 3025 in der
Reihenfolge, in der sie erteilt werden. Das Befehlsregister 3025 speichert
die empfangenen Befehle temporär,
und transferiert sie aufeinanderfolgend zum DRAM-Kern 3011 in
der Reihenfolge, in der sie empfangen werden. Das heißt, ein
nächster
Befehl wird gesendet, nachdem die Verarbeitung des letzten gesendeten
Befehls vollendet ist.
-
Ein
Befehl Read-A2 wird in das Lesebefehlsregister AR eingegeben, und
ein Befehl Read-B2 wird in das Lesebefehlsregister BR eingegeben,
wie in der Figur gezeigt. Davor tritt einmal eine Auffrischung auf,
und ein Auffrischbefehl wird in das Auffrischbefehlsregister eingegeben.
Gemäß der Reihenfolge
von Befehlserteilungen sendet der Entscheider 3026 diese
Befehle zum DRAM-Kern 3011 in der Reihenfolge von Read-A2 → Ref → Read-B2, und
diese Befehle werden dann vom Kern ausgeführt.
-
Es
gibt eine extra Zeit zwischen Read-B1 und ReadA2 hinsichtlich Kernoperationen,
und bis zu diesem Punkt werden normale und Routineoperationen vorgenommen.
Wenn eine Auffrischung auftritt, wird die Auffrischung sofort nach
Read-A2 ohne jede Zeitlücke
dazwischen vorgenommen. Danach werden Read-B2, Read-A3, usw. konsekutiv
ohne jegliche Zeitlücken
bis zur Ausführung
von Read-A5 vorgenommen. Bis zu diesem Punkt werden schnelle Operationen,
im Gegensatz zu den normalen und Routineoperationen, vorgenommen.
-
Aufgrund
der Ausführung
eines Auffrischbefehls zeigen interne Operationen eine gewisse Verzögerung relativ
zur Eingabe von Befehlen von einer Außenseite der Anordnung. Die
schnellen Operationen gleichen die Verzögerung aus, und holen auf bis zu
der Zeit, zu der der Befehl Read-A5 ausgeführt wird. Es gibt erneut eine
extra Zeit zwischen Read-A5 und Read-B5, die eine Rückkehr von
normalen und Routineoperationen anzeigt. Aus dem DRAM-Kern 3011 durch
den Lesepuffer 3016 gelesene Daten werden durch Transfergates
zu den Datenverriegelungen (Datenverriegelung A1 oder B1) eines
Ports gesendet, der einen entsprechenden Lesebefehl empfangen hat.
Die Datenverriegelung A1 oder B1 sieht eine Zeitanpassung für die Daten
vor, die dann zur Datenverriegelung A2 oder B2 transferiert werden,
und synchron mit dem Taktsignal des entsprechenden Ports ausgegeben
werden.
-
Auch
wenn eine Auffrischoperation intern vorgenommen wird, erscheint
es extern, dass Daten nach einer vorherbestimmten Datenlatenz ausgegeben
werden. Es besteht somit keine Notwendigkeit, Auffrischoperationen
in irgendeiner Weise zu berücksichtigen.
-
94 zeigt ein Beispiel, indem Schreibbefehle konsekutiv
unter denselben Bedingungen wie oben beschrieben eingegeben werden.
Von der Außenseite
der Anordnung zur Zeit einer Schreiboperation eingegebene Daten
werden auch in Form von Burst-Eingaben eingegeben. Der Schreibbefehl
wird in dem Schreibbefehlsregister AW zur der Zeiteinstellung gespeichert,
zu der das letzte Datenstück
eingegeben wird. Auch in diesem Fall besteht keine Notwendigkeit,
Auffrischoperationen in irgendeiner Weise zu berücksichtigen, auch wenn ein
Auffrischbefehl intern generiert und ausgeführt wird.
-
95 und 96 zeigen
Operationen, die vorgenommen werden, wenn sowohl der A Port als auch
der B Port für
Leseoperationen bei der maximalen Taktfrequenz operieren. 97 ist eine Zeichnung, welche Operationen zeigt,
die vorgenommen werden, wenn sowohl der A Port als auch der B Port für Schreiboperationen
bei den maximalen Taktfrequenzen operieren. In diesem Fall kann
eine Phasendifferenz in den Takten der beiden Ports existieren. Für beide
Ports gilt: ein Lesebefehlszyklus = 4, ein Schreibbefehlszyklus
= 4, eine Datenlatenz = 6, und eine Burst-Länge = 4. Auch in diesem Fall
werden Operationen geeignet vorgenommen, wie aus der Figur ersichtlich
ist.
-
98 und 99 sind
Zeitdiagramme, welche Operationen zeigen, die vorgenommen werden,
wenn beide Ports bei der höchsten
Frequenz operieren, und Änderungen
von Schreibbefehlen zu Lesebefehlen eingehen, wobei ein Auffrischbefehl
intern generiert wird. Dies ist der Fall, in dem Befehle am meisten
verdichtet sind.
-
Der
DRAM-Kern 3011 operiert in der Reihenfolge von Ref → Write-A1 → Write-B1 → Read-A2 → Read-B2
ohne jegliche Lücken
dazwischen, wie veranschaulicht. In diesem Beispiel werden Read-A2 und
Read-B2 6 Taktzyklen nach der Eingabe von Schreibbefehlen eingegeben.
Auch wenn diese Zeiteinstellungen um 2 Takte vorgesetzt werden,
ist es nicht möglich,
die internen Operationen des DRAM-Kerns vorzusetzen. Die Ausgabezeiteinstellung
gelesener Daten wird durch die Datenlatenz ab der Eingabe eines
Lesebefehls gesteuert. Wenn die Eingabezeiteinstellungen von Read-A2
und Read-B2 vorgesetzt werden, müssen
auch die Datenausgabezeiteinstellungen dementsprechend vorgesetzt
werden. Wenn Read-B2 beispielsweise 4 Taktzyklen nach Write-B1 eingegeben
wird, kommt die Datenausgabezeiteinstellung ansprechend auf Read-B2 dem
Start der DRAM-Kernoperation zu nahe, so dass Read-B2 nicht geeignet
ausgeführt
werden kann. Aus diesem Grund muss das Befehlsintervall eines Write→Read-Übergangs
relativ lang eingestellt werden, so wie 6 Takte wie in diesem Beispiel.
-
Da
für das
Befehlsintervall Read → Write Schreibdaten
nicht in DQ-Anschlüsse
eingegeben werden können,
außer
die Ausgabe gelesener Daten ist vollendet, wird das Befehlsintervall
unweigerlich lang.
-
100A und 100B sind
Zeichnungen, die Operationen des DRAM-Kerns 3011 zeigen. 100A zeigt eine Leseoperation, und 100B zeigt eine Schreiboperation. Eine Serie von
Operationen wird ansprechend auf einen einzigen Befehl vorgenommen,
in der Reihenfolge Wortleitungsauswahl → Datenverstärkung → Rückschreiben → Vorladen,
wie in den Figuren gezeigt, wodurch die gesamte Operation vollendet
wird. Der DRAM-Kern 3011 deaktiviert das Befehlsempfangs-READY-Signal beim
Empfang eines Befehls, und generiert das Befehlsempfangs-READY-Signal,
wenn die Ausführung eines
Be fehls vollendet ist oder einem Ende nahekommt.
-
Die
vorliegende Erfindung, wie oben beschrieben, ermöglicht, dass der Multiport-Speicher ohne
jede Rücksicht
auf Auffrischoperationen verwendet wird, wenn das Speicher-Array
auf der Basis eines DRAM-Kerns implementiert wird, wodurch ein Multiport-Speicher
zu niedrigen Kosten vorgesehen wird, der eine große Kapazität hat und
leicht zu verwenden ist.
-
[Vierter Aspekt der Erfindung]
-
Im
Folgenden wird ein vierter Aspekt der vorliegenden Erfindung beschrieben.
-
Multiport-Speicher,
die mit einer Vielzahl von Ports ausgestattete Halbleiter-Speicheranordnungen sind,
können
in verschiedenste Typen klassifiziert werden. Wenn hier im Nachstehenden
der Ausdruck "Multiport-Speicher" verwendet wird,
bezieht er sich auf einen Speicher, der mit einer Vielzahl von Ports versehen
ist, und der es ermöglicht,
einen Zugriff unabhängig
von einem beliebigen der Ports auf ein gemeinsames Speicher-Array
vorzunehmen. Ein solcher Speicher kann einen A Port und einen B
Port aufweisen und ermöglicht,
dass eine Lese/Schreiboperation in Bezug auf das gemeinsame Speicher-Array
unabhängig
von einer CPU, die mit dem A Port verknüpft ist, und von einer CPU,
die mit dem B Port verknüpft
ist, durchgeführt
wird.
-
Ein
Multiport-Speicher ist mit einer Entscheidungsschaltung ausgestattet,
die Entscheider genannt wird. Der Entscheider bestimmt die Priorität von Zugriffsanforderungen,
die von der Vielzahl von Ports empfangen werden, und eine Steuerschaltung eines
Speicher-Arrays behandelt Zugriffsoperationen eine nach der anderen
gemäß der bestimmten
Priorität.
Je früher
beispielsweise die Ankunft einer Zugriffsanforderung an einem Port
erfolgt, desto höher ist
die dem Zugriff verliehene Priorität.
-
Da
in einem solchen Fall auf das Speicher-Array von einer Vielzahl
von Ports direkt zugegriffen wird, ist es notwendig, das Speicher-Array
sofort zurückzusetzen,
nachdem eine Lese- oder Schreibzugriffsoperation durchgeführt wird,
wodurch sichergestellt wird, dass es für einen nächsten Zugriff vorbereitet
ist. Das heißt,
wenn eine Wortleitung in dem ausgewählten Zustand ansprechend auf
einen Zugriff von einem gegebenen Port gehalten wird, und Spaltenadressen
aufeinanderfolgend verschoben werden, um aufeinanderfolgende Daten
zu lesen, wie bei einer Spaltenzugriffsoperation, die in DRAMs allgemein
verwendet wird, wird ein Zugriff von einem anderen Port während dieser
Operation warten gelassen. Demgemäß ist es notwendig, das Speicher-Array
sofort nach jeder Lese- oder Schreiboperation zurückzusetzen.
-
Herkömmlich wurde
typischerweise ein SRAM als Speicher-Array eines Multiport-Speichers verwendet.
Dies ist darauf zurückzuführen, dass
ein SRAM einen Zufallszugriff mit hoher Geschwindigkeit ermöglicht,
und auch eine nicht-destruktive Leseoperation möglich ist.
-
In
einem Multiport-Speicher mit beispielsweise zwei Ports ist eine
SRAM-Speicherzelle mit zwei Sätzen
von Wortleitungen und Bitleitungspaaren versehen. Einer der Ports
nimmt eine Lese/Schreiboperation unter Verwendung eines Satzes einer
Wortleitung und eines Bitleitungspaars vor, und der andere der Ports
nimmt eine Lese/Schreiboperation unter Verwendung des anderen Satzes
einer Wortleitung und eines Bitleitungspaars vor. Auf diese Weise
können
Lese/Schreiboperationen unabhängig
von den beiden verschiedenen Ports durchgeführt werden. Da es jedoch unmöglich ist,
zwei Schreiboperationen simultan vorzunehmen, wenn die beiden Ports
versuchen, Daten in dieselbe Zelle zur selben Zeit zu schreiben,
erhält
einer der Ports Priorität,
um die Schreiboperation vorzunehmen, und der andere der Ports erhält ein BUSY-Signal.
Dies wird BUSY-Zustand genannt.
-
Mit
der Entwicklung eines Systems zu einer verbesserten Leistung erhöht sich
auch die von dem System behandelte Datenmenge. Als Ergebnis benötigt ein
Multiport-Speicher eine große
Kapazität.
Die Multiport-Speicher des SRAM-Typs haben jedoch insofern einen
Nachteil, als die Größe einer
Speicherzelle groß ist.
-
Um
dies zu beseitigen, ist es denkbar, ein DRAM-Array in einem Multiport-Speicher
zu verwenden, um einen Multiport-Speicher eines neuen Typs herzustellen.
Um eine signifikant höhere
Schaltungsdichte als Multiport-SRAMs zu erzielen, muss eine DRAM-Speicherzelle,
die für
einen Multiport-Speicher
verwendet ist, nur mit einer Wortleitung und einer Bitleitung auf
die gleiche Weise wie eine typische DRAM-Zelle verbunden sein. Wenn
Speicherblöcke unter
Verwendung von DRAM-Zellen in einer solchen Weise implementiert
werden, kann einer der Ports nicht auf einen gegebenen Block zugreifen,
wenn ein anderer der Ports eine Lese- oder Schreiboperation in Bezug
auf diesen Block durchführt.
Dies ist darauf zurückzuführen, dass
nur eine destruktive Leseoperation in einer DRAM-Zelle möglich ist.
Das heißt, wenn
Informationen gelesen werden, kann keine andere Wortleitung in demselben
Block ausgewählt werden,
bis diese Informationen verstärkt
und in der Zelle wiederhergestellt werden, und eine Wortleitung und
eine Bitleitung vorgeladen werden.
-
In
Multiport-Speichern des herkömmlichen SRAM-Typs
wird ein BUSY-Zustand nur dann geschaffen, wenn eine Vielzahl von
Ports simultan Schreibanforderungen an dieselbe Speicherzelle stellt.
Demgemäß muss ein
Multiport-Speicher des DRAM-Typs
mit einer einzigartigen Funktion einer BUSY-Zustandssteuerung versehen
sein, die von herkömmlichen
Multiport-Speichern
des SRAM-Typs verschieden ist.
-
Außerdem benötigt, im
Gegensatz zu einem Multiport- Speicher
des SRAM-Typs, ein Multiport-Speicher des DRAM-Typs eine periodisch
vorzunehmende Auffrischoperation zum Zweck des Aufrechterhaltens
gespeicherter Informationen, so dass irgendeine Maßnahme getroffen
werden muss, um eine geeignete Auffrischzeiteinstellung sicherzustellen.
-
Demgemäß ist die
vorliegende Erfindung darauf gerichtet, einen Multiport-Speicher
des DRAM-Typs vorzusehen, der insbesondere mit DRAMs assoziierte
Probleme behebt.
-
Gemäß der vorliegenden
Erfindung enthält eine
Halbleiter-Speicheranordnung eine Vielzahl von N externen Ports,
von denen jeder Befehle empfängt, eine
Vielzahl von N Bussen, die den jeweiligen externen Ports entsprechen,
eine Vielzahl von Speicherblöcke
n, die mit den N Bussen verbunden sind, eine Adressenvergleichsschaltung,
welche Adressen vergleicht, auf die durch die in die N jeweiligen
externen Ports eingegebenen Befehle zuzugreifen ist, und eine Entscheidungsschaltung,
die bestimmt, welcher oder welche der auf denselben Speicherblock
zugreifenden Befehle auszuführen
ist bzw. sind, und welcher oder welche der auf denselben Speicherblock zugreifenden
Befehle nicht auszuführen
ist bzw. sind, wenn die Adressenvergleichsschaltung Zugriffe auf denselben
Speicherblock auf der Basis des Adressenvergleichs detektiert.
-
Wenn
in der oben beschriebenen Erfindung in die Ports von der Außenseite
der Anordnung eingegebene Befehle versuchen, auf denselben Speicherblock
zuzugreifen, bestimmt eine Entscheidungsschaltung, welcher der Befehle
auszuführen ist,
und welcher der Befehle nicht auszuführen ist. Es werden beispielsweise
Befehlszeiteinstellungen verglichen, und der früheste Befehl wird ausgeführt, während der/die
andere/n Befehl/e nicht ausgeführt wird/werden.
Wenn es einen Befehl gibt, der nicht ausgeführt wird, wird ein BUSY-Signal oder dgl.
generiert und an die Außenseite
der Anord nung ausgegeben. Dies ermöglicht, eine geeignete Zugriffsoperation
vorzunehmen und eine geeignete BUSY-Steuerung zu erzielen, auch
wenn Befehlsadressen in dem Multiport-Speicher auf DRAM-Kern-Basis
miteinander in Konflikt stehen.
-
Gemäß einem
Aspekt der vorliegenden Erfindung enthalten die Speicherblöcke Zellen-Arrays, die
auf der Basis von Speicherzellen des dynamischen Typs implementiert
sind, und die Halbleiter-Speicheranordnung enthält eine Auffrisch-Schaltung, die eine
Zeiteinstellung definiert, zu der die Speicherzellen aufgefrischt
werden. Die Speicherzellen werden in einem ersten Modus ansprechend
auf einen Auffrischbefehl aufgefrischt, der in zumindest einen der
N externen Ports eingegeben wird, und die Speicherzellen werden
in einem zweiten Modus zu der von der Auffrisch-Schaltung angezeigten
Zeiteinstellung aufgefrischt.
-
Die
oben beschriebene Erfindung ist mit einem ersten Operationsmodus
zum Vornehmen einer Auffrischoperation ansprechend auf eine Instruktion von
der Außenseite
der Anordnung und einem Operationsmodus zum Vornehmen einer Auffrischoperation
ansprechend auf eine Instruktion von der internen Auffrisch-Schaltung
versehen. Dies ermöglicht eine
Verwendung des Multiport-Speichers in einer solchen Weise, dass
ein vorherbestimmter externer Port als Port zur Auffrischverwaltung
zugeordnet wird, um so Auffrischbefehle in konstanten Intervallen zu
empfangen, oder die Verwendung des Multiport-Speichers in einer
solchen Weise, dass die interne Auffrisch-Schaltung Auffrischoperationen
initiiert, wenn alle externen Ports in dem deaktivierten Zustand
sind. Demgemäß liefert
die vorliegende Erfindung eine Basis für eine flexible Auffrischverwaltung, die
mit den Systemanforderungen konform ist.
-
Im
Folgenden werden Ausführungsformen der
vorliegenden Erfindung (vierter Aspekt) mit Bezugnahme auf die beige schlossenen
Zeichnungen beschrieben.
-
101 ist ein Blockbild, das eine Ausführungsform
des Multiport-Speichers gemäß der vorliegenden
Erfindung zeigt. In diesem Beispiel ist eine Konfiguration so, dass
zwei Ports, d. h. ein A Port und ein B Port, vorgesehen sind.
-
Ein
Multiport-Speicher 4010 von 101 enthält einen
A Port 4011, einen B Port 4012, eine Selbstauffrisch-Schaltung 4013,
Speicherblöcke 4014-1 bis 4014-n,
einen Entscheider 4015, einen Auffrischadressenzähler 4016,
eine Adressenänderungsschaltung 4017,
eine Adressenänderungsschaltung 4018,
einen Adressenkomparator 4019, einen Bus A 4020-1,
und einen Bus B 4020-2.
-
Der
A Port 4011 enthält
ein Modusregister 4031, einen CLK-Puffer 4032,
eine Daten-I/O-Schaltung 4033, ein Befehlsdecoderregister 4034,
einen/ein Adressenpuffer/register 4035, und eine BUSY-Signal-I/O-Einheit 4036.
Ferner enthält
der B Port 4012 ein Modusregister 4041, einen
CLK-Puffer 4042, eine Daten-I/O-Schaltung 4043,
ein Befehlsdecoderregister 4044, einen/ein Adressenpuffer/register 4044,
einen/ein Adressenpuffer/register 4045, und eine BUSY-Signal-I/O-Einheit 4046.
An dem A Port 11 und an dem B Port 12 wird ein
Zugriff auf einen/von einem externen Bus unabhängig synchron mit jeweiligen
Taktsignalen CLKA und CLKB hergestellt. Die Modusregister 4031 und 4041 können darin Moduseinstellungen
wie eine Datenlatenz und eine Burst-Länge in Bezug auf jeweilige
Ports speichern. In dieser Ausführungsform
sind sowohl der A Port 4011 als auch der B Port 4012 mit
dem jeweiligen Modusregister versehen, so dass jeder Port Moduseinstellungen
vornehmen kann. Ein Modusregister kann jedoch beispielsweise nur
in einem der Ports eingerichtet sein, so dass Einstellungen für beide Ports
vorgenommen werden können,
indem Einstellungen an diesem einem Port vorgenommen werden.
-
Die
Selbstauffrisch-Schaltung 4013 enthält einen Auffrischzeitgeber 4046 und
einen Auffrischbefehlsgenerator 4047. Die Selbstauffrisch-Schaltung 4013 generiert
einen Auffrischbefehl innerhalb der Anordnung, und empfängt Signale
CKEA1 und CKEB1 von dem A Port 4011 bzw. dem B Port 4012. Die
Signale CKEA1 und CKEB1 werden erhalten, indem externe Signale CKEA
und CKEB durch die CLK-Puffer 4032 bzw. 4042 gepuffert
werden. Die externen Signale CKEA und CKEB werden verwendet, um
die Taktpuffer jeweiliger Ports anzuhalten, und die jeweiligen Ports
zu deaktivieren. Wenn sowohl der A Port 4011 als auch der
B Port 4012 in einen deaktivierten Zustand gebracht werden,
startet die Selbstauffrisch-Schaltung 13 eine Operation
davon.
-
Die
Speicherblöcke 4014-1 bis 4014-n sind jeweils
mit dem internen Bus A 4020-1 und dem internen Bus B 4020-2 verbunden.
Es gibt eine Vielzahl externer Ports (d. h. den A Port und den B
Port), wobei der A Port 4011 eine Schnittstelle mit jedem
der Speicherblöcke 4014-1 bis 4014-n durch
den Bus A 4020-1 aufweist, und der B Port eine Schnittstele
mit jedem der Speicherblöcke 4014-1 bis 4014-n durch den
Bus B 4020-2 aufweist.
-
Wenn
ein Zugriff vom A Port 4011 und ein Zugriff vom B Port 4012 zur
selben Zeit eingegeben werden, nehmen Speicherblöcke, auf die zugegriffen wird,
unabhängig
Operationen davon vor, die diesen Zugriffsanforderungen entsprechen,
vorausgesetzt dass diese Zugriffe auf verschiedene Speicherblöcke gerichtet
sind.
-
Wenn
ein Zugriff vom A Port 4011 und ein Zugriff vom B Port 4012 auf
denselben Speicherblock gerichtet sind, bestimmt der Entscheider
(Entscheidungsschaltung) 4015 eine Reihenfolge der Befehlsankunft,
und führt
den Befehl der Erstankunft aus, während er den Befehl der Zweitankunft
aufhebt. Wenn der Befehl aufgehoben wird, generiert der Ent scheider 4015 ein
BUSY-Signal, um so einen externen Controller zu benachrichtigen,
dass ein durch den Befehl der Zweitankunft angeforderter Zugriff
aufgehoben wurde.
-
Der
Adressenkomparator 4019 bestimmt, ob in die beiden Ports
eingegebene Zugriffsanforderungen auf denselben Speicherblock gerichtet
sind. Im Detail vergleicht der Adressenkomparator 4019 Blockauswahladressen,
die in den in die beiden Ports eingegebenen Adressen enthalten sind.
Wenn sie identisch sind, wird dem Entscheider 4015 ein Übereinstimmungssignal
zugeführt.
-
Wenn
der A Port 4011 oder der B Port 4012 in einem
aktivierten Zustand ist, wird ein Auffrischbefehl vom A Port 4011 oder
vom B Port 4012 eingegeben.
-
Der
Entscheider 4015 bestimmt eine Reihenfolge der Befehlsankunft,
wenn ein in einen der beiden Ports eingegebener Auffrischbefehl
auf denselben Speicherblock zugreift, wie dies ein Lesebefehl oder
ein Schreibbefehl vornimmt, der in den anderen der beiden Ports
eingegeben wird. Wenn der Auffrischbefehl später ist als der andere Befehl,
wird der Auffrischbefehl aufgehoben. In diesem Fall generiert der
Entscheider 4015 ein BUSY-Signal, und führt es einer Außenseite
der Anordnung zu. Wenn der externe Controller ein BUSY-Signal detektiert,
liefert er erneut einen Auffrischbefehl an den Multiport-Speicher 4010,
nachdem das BUSY-Signal ausgeschaltet wird.
-
Wenn
der Auffrischbefehl früher
ist als der andere Befehl, oder wenn von der Selbstauffrisch-Schaltung 4013 ein
Selbstauffrischbefehl zugeführt
wird, generiert der Entscheider 4015 ein COUNT UP-Signal,
und führt
es dem Auffrischadressenzähler 4016 zu.
-
Der
Auffrischadressenzähler 4016 zählt Adressen
ansprechend auf das COUNT UP-Signal vorwärts, wodurch Auffrischadressen
generiert werden. Der Grund, warum das COUNT UP- Signal vom Entscheider 4015 zugeführt werden
muss, ist, dass Vorwärtszähl-Operationen
nur auf einen Auffrischbefehl ansprechend sollten, der tatsächlich vom
Entscheider 4015 erteilt wird, da ein Auffrischbefehl wie oben
beschrieben aufgehoben werden kann. Hier wird die Vorwärtszähl-Operation
vorgenommen, nachdem die Auffrischoperation vorgenommen wird.
-
Die
Adressenänderungsschaltung 4017 transferiert
eine extern in den A Port 4011 eingegebene Adresse zum
Bus A 4020-1, wenn der in den A Port 4011 eingegebene
Befehl ein Lesebefehl (Auslesebefehl) oder ein Schreibbefehl (Einschreibbefehl) ist.
Wenn der in den A Port 4011 eingegebene Befehl ein Auffrischbefehl
ist, wird eine Adresse, die vom Auffrischadressenzähler 4016 generiert
wird, zum Bus A 4020-1 gesendet.
-
Die
Adressenänderungsschaltung 4018 transferiert
eine extern in den B Port 4012 eingegebene Adresse zum
Bus B 4020-2, wenn der in den B Port 4012 eingegebene
Befehl ein Lesebefehl (Auslesebefehl) oder ein Schreibbefehl (Einschreibbefehl) ist.
Wenn der in den B Port 4012 eingegebene Befehl ein Auffrischbefehl
ist, wird hingegen eine Adresse, die vom Auffrischadressenzähler 4016 generiert
wird, zum Bus B 4020-2 gesendet.
-
Wenn
sowohl der A Port 4011 als auch der B Port 4012 in
dem deaktivierten Zustand sind, wie oben angegeben, generiert die
Selbstauffrisch-Schaltung 4013 einen Auffrischbefehl auf
der Basis des Zeitsignals des Auffrischzeitgebers 46, der als
interner Schaltungsaufbau vorgesehen ist. In dieser Ausführungsform
werden ein Selbstauffrischbefehl und eine Selbstauffrischadresse
zu den Speicherblöcken 4014-1 bis 4014-n durch
den Bus A 4020-1 gesendet. Da eine Selbstauffrischung keinen Konflikt
mit Befehlen des A Ports 4011 und des B Ports 4012 erzeugt,
besteht keine Notwendigkeit für den
Entscheider 4015, eine Priorität zu bestimmen. Da jedoch ein
COUNT UP-Signal vom Entscheider 4015 generiert werden muss,
wird der Auffrischbefehl auch dem Entscheider 4015 zugeführt.
-
102 ist ein Zeitdiagramm, das ein Beispiel von
Operationen des Multiport-Speichers 4010 gemäß der vorliegenden
Erfindung zeigt.
-
Ein
Befehl Read-x ist ein auf einen Speicherblock 4014-(x + 1) gerichteter
Lesebefehl. Read-0 wird zuerst in den A Port 4011 eingegeben,
und dann wird Read-3 in den B Port 4012 eingegeben. In
diesem Fall sind Speicherblöcke,
auf die zuzugreifen ist, verschieden, so dass der Speicherblock 4014-1 und der
Speicherblock 4014-4 parallel operieren.
-
Danach
wird Read-1 in den A Port 4011 eingegeben, gefolgt davon,
dass Read-1 in den B Port 4012 eingegeben wird. Da in diesem
Fall Speicherblöcke,
auf die zuzugreifen ist, gleich sind, wird ein Übereinstimmungssignal generiert,
das den Befehl aufhebt, der in den B Port 4012 eingegeben
wird. Ferner wird ein BUSY-B (negative Logik) aus der BUSY-Signal-I/O-Einheit 4046 des
B Ports 4012 ausgegeben.
-
Der
externe Controller des B Ports 4012 detektiert das BUSY-B,
und führt
Read-1 erneut dem Multiport-Speicher 4010 zu, nachdem dieses
Signal ausgeschaltet wird.
-
103 ist ein Zeitdiagramm, das ein weiteres Beispiel
von Operationen des Multiport-Speichers 4010 gemäß der vorliegenden
Erfindung zeigt.
-
In 103 gezeigte Operationen sind gleich wie jene
von 102, bis die zweiten Befehle Read-1
in den A Port 4011 und den B Port 4012 eingegeben
werden, wobei BUSY-B generiert wird. Nachdem in diesem Beispiel
BUSY-B ansprechend auf die Read-1-Eingabe in den B Port 4012 auftritt, wird
ein Lesebefehl Read-2 eingegeben, um auf einen anderen Speicherblock
zuzugreifen, bevor BUSY-B zu einem Ende kommt. Auf diese Weise kann
ein nächster
Befehl sogar während
der Periode eingegeben werden, in der BUSY aktiviert wird, solange
der nächste
Befehl auf einen anderen Block gerichtet ist.
-
104 ist ein Zeitdiagramm, das noch ein weiteres
Beispiel von Operationen des Multiport-Speichers 4010 gemäß der vorliegenden
Erfindung zeigt.
-
Das
Beispiel von 104 zeigt einen Fall, in dem
ein Schreibbefehl eingegeben wird. Ein Lesebefehl wird in den A
Port 4011 eingegeben, gefolgt von einem Schreibbefehl,
der in den B Port 4012 eingegeben wird.
-
In
dieser Ausführungsform
sind Eingabe/Ausgabe-Daten jene eines Burst-Typs. Das heißt, die
Datenausgabe wird durch das Lesen paralleler Daten aus einer Vielzahl
von Spaltenadressen und durch das Konvertieren dieser in serielle
Daten in den Daten-I/O-Schaltungen 4033 und 4043 zur
Zeit der Datenausgabe erhalten. Die Dateneingabe erfolgt seriell,
und dann werden sie in den Daten-I/O-Schaltungen 4033 und 4043 in
parallele Daten konvertiert, gefolgt vom Schreiben der parallelen
Daten in eine Vielzahl von Spaltenadressen eines relevanten Speicherblocks.
Die Verwendung dieser Art von Burst-Operation kann die Datentransfergeschwindigkeit
erhöhen.
In diesem Beispiel ist die Burst-Länge 4, so dass vier
Datenelemente kontinuierlich ausgegeben/eingegeben werden.
-
In
dem Fall einer Schreiboperation kann eine Schreiboperation nicht
gestartet werden, bis alle vier Datenelemente eingegeben werden.
Daher ist die Zeiteinstellung, zu welcher der Entscheider 4015 die Priorität für eine Schreiboperation
bestimmen kann, die Zeiteinstellung, zu der das letzte Element einer Serie
serieller Dateneingänge
eingegeben wird.
-
In 104 versuchen der dritte eingegebene Befehl Read-3
des A Ports 4011 und der zweite eingegebene Befehl Write-3
des B Ports 4012 auf denselben Speicherblock zuzugreifen.
Obwohl der Write-3 des B Ports 4012 hinsichtlich der Eingabezeit von
Befehlen in die Ports dem anderen voraus ist, wird Read-3 des A
Ports 4011 erteilt, bevor das letzte Element von Schreibdaten
eingegeben wird. Demgemäß bestimmt
der Entscheider 4015, dass der Befehl des A Ports 4011 dem
anderen voraus ist, und hebt des Befehl des B Ports 4012 auf.
-
Der
A Port 4011 und der B Port 4012, wie in 101 gezeigt, sind mit den CLK-Puffern 4032 bzw. 4042 versehen,
und empfangen verschiedene Taktsignale von der Außenseite
der Anordnung. Die Taktsignale haben Phasen und Frequenzen, die
gleich sein können
oder verschieden sein können.
-
105 ist ein Blockbild der Befehlsdecoderregister 4034 und 4044.
-
Das
Befehlsdecoderregister 4034 enthält einen Eingabepuffer 4061,
einen Befehlsdecoder 4062, und eine (n-1)-Taktverzögerungsschaltung 4063.
Das Befehlsdecoderregister 4044 enthält einen Eingabepuffer 4071,
einen Befehlsdecoder 4072, und eine (n-1)-Taktverzögerungsschaltung 4073.
-
Wenn
ein in den Eingabepuffer 4061 oder 4071 eingegebener
Befehl ein Lesebefehl (RA1, RB1) oder ein Auffrischbefehl (REFA,
REFB) ist, wird der eingegebene Befehl durch den Befehlsdecoder 4062 oder 4072 ohne
jede Zeitmanipulation zum Entscheider 4015 gesendet. In
dem Fall eines Schreibbefehls (WA1, WB1) wird der eingegebene Befehl durch
die (n-1)-Taktverzögerungsschaltung 4063 oder 4073 um
(n-1) Taktzyklen verzögert,
und wird zum Entscheider 4015 zu der Zeiteinstellung gesendet,
zu der das letzte und n-te Datenelement der Serie der Burst-Schreibeingabe
eingegeben wird.
-
106 ist ein Blockbild des Entscheiders 4015 gemäß der Ausführungsform
der vorliegenden Erfindung.
-
Der
Entscheider 4015 enthält
ein Register 4081, eine Verzögerungsschaltung 4082,
ein Transfergate 4083, ein Register 4084, ein
Register 4085, eine Verzögerungsschaltung 4086,
ein Transfergate 4087, ein Register 4088, WEDER-NOCH-Schaltungen 4091 und 4092,
NICHT-UND-Schaltungen 4093 bis 4096, Inverter 97 bis 101,
und WEDER-NOCH-Schaltungen 102 und 103.
-
Ein
vom Befehlsdecoderregister 4043 oder 4044 gesendeter
Befehl wird jeweils in dem Register 4081 oder 4085 gespeichert.
Wenn der A Port 4011 eine Befehlseingabe erhält, wird
ein HIGH Signal am Knoten N1 generiert, welcher der Ausgang des
Inverters 4097 ist. Wenn der B Port 4012 eine
Befehlseingabe erhält,
wird ein HIGH Signal am Knoten N2 generiert, welcher der Ausgang
des Inverters 100 ist. Das frühere von dem Signal von N1
oder dem Signal von N2 wird am Knoten N3 oder N4 verriegelt.
-
Wenn
die Blockauswahladressen zwischen dem A Port 4011 und dem
B Port 4012 nicht übereinstimmen,
generiert der Adressenkomparator 4019 ein Übereinstimmungssignal,
das LOW ist. In diesem Fall werden daher N5 und N6 auf HIGH gesetzt.
Ansprechend auf diese HIGH Signale öffnen sich sowohl das Transfergate
A 4083 als auch das Transfergate B 4087, so dass
die Befehle der Register 4081 und 4085 ohne Ausnahme
zu den Registern 4084 und 4088 gesendet werden.
-
Wenn
die Blockauswahladressen zwischen dem A Port 4011 und dem
B Port 4012 übereinstimmen,
generiert der Adressenkomparator 4019 ein Übereinstimmungssignal,
das HIGH ist. In diesem Fall werden daher Signalpegel an den Knoten
N5 und N6 von den Signalpegeln der Knoten N3 und N4 gesteuert. Wenn
der A Port 4011 früher
ist, wird N5 auf HIGH eingestellt, und N6 wird auf LOW eingestellt. Ansprechend
auf den HIGH Zustand von N5 öffnet sich
das Transfergate A 4083, so dass der Befehl des A Ports 4011 zum
Register 4084 gesendet wird. Ferner schließt der LOW
Zustand von N6 das Transfergate B 4087, so dass der Befehl
des B Ports 4012 nicht zum Register 4088 gesendet
wird.
-
Außerdem werden,
auf der Basis der Signalpegel von N5 und N6, Rücksetzsignale BUSY1-A und BUSY1-B
generiert, die die jeweiligen Register 4081 und 4085 zurücksetzen.
Wenn beispielsweise der Befehl des A Ports 11 ausgewählt wird,
wird BUSY1-B generiert, und das Register 4085 wird zurückgesetzt.
-
Es
besteht keine Notwendigkeit, eine Priorität für einen Selbstauffrischbefehl
zu bestimmen, der Selbstauffrischbefehl wird mit dem Auffrischbefehl REFA
des A Ports 4011 in der Ausgabestufe des Registers 4084 kombiniert.
Ein auf diese Weise in Bezug auf den A Port 4011 geschaffenes
Auffrischbefehlssignal REFA2 wird mit einem Auffrischbefehlssignal
REFB2 des B Ports 4012 so kombiniert, dass ein COUNT UP-Signal
generiert wird. Ansprechend auf das Auftreten eines Auffrischbefehls
wird das COUNT UP-Signal vom Entscheider 4015 dem Auffrischadressenzähler 4016 zugeführt.
-
107 ist ein Zeitdiagramm, das Operation des Entscheiders 4015 zeigt.
-
107 zeigt einen Fall, in dem die Blockauswahladressen
zwischen dem A Port 4011 und dem B Port 4012 übereinstimmen,
und ein Lesebefehl RA1 des A Ports 4011 früher ist
als ein Lesebefehl RB1 des B Ports 4012. Auf die gleiche
Weise wie oben beschrieben werden Signalpegel der Knoten N5 und
N6 durch Signalpegel der Knoten N3 und N4 gesteuert, die Signalpegel
der Knoten N1 und N2 reflektieren, und der Lesebefehl RA2 wird demgemäß vom Entscheider 4015 gesendet.
Der Lesebefehl des B Ports 4012 wird aufgehoben, ohne ausgegeben
zu werden, und ein BUSY1-B-Signal wird generiert.
-
108 ist ein Blockbild des Adressenpuffers/registers
und der Adressenänderungsschaltung.
-
In 108 wird ein Signal mit einem Signalnamen (z.
B. RA1P) mit einem an das Ende eines Signalnamens (z. B. RA1) angefügten Buchstaben "P" generiert, indem Impulse zu Anstiegkantenzeiteinstellungen
eines Signals mit dem letzteren Signalnamen (z. B. RA1) geschaffen
werden.
-
Der/das
Adressenpuffer/register 4035 des A Ports 4011 enthält einen
Eingabepuffer 4035-1, ein Transfergate 4035-2,
und eine ODER-Schaltung 4035-3. In Bezug auf ein Lesebefehlssignal
RA1, das aus dem in 105 gezeigten Befehlsdecoder 4062 ausgegeben
wird, werden Anstiegkanten in Impulse konvertiert, um ein Impulssignal
RA1P zu generieren, das dann einem Eingang der ODER-Schaltung 4035-3 zugeführt wird.
In Bezug auf ein Schreibbefehlssignal WA1, das aus dem in 105 gezeigten Befehlsdecoder 4062 ausgegeben
wird, werden Anstiegkanten in Impulse konvertiert, um ein Impulssignal
WA1P zu generieren, das dann dem anderen Eingang der ODER-Schaltung 4035-3 zugeführt wird. Ein
Ausgang der ODER-Schaltung 4035-3 wird
dem Transfergate 4035-2 als Transferrichtungssignal zugeführt, das
den Datentransfer anweist.
-
Der/das
Adressenpuffer/register 4045 des B Ports 4012 enthält einen
Eingabepuffer 4045-1, ein Transfergate 4045-2,
und eine ODER-Schaltung 4045-3. Die Konfiguration des Adressenpuffers/registers 4045 für den B
Port 4012 ist gleich wie die Konfiguration des Adressenpuffers/registers 4035 für den A
Port 4011.
-
Die
Adressenänderungsschaltung 4017 enthält eine
Adressenverriegelung 4017-1, Transfergates 4017-2 und 4017-3,
eine Adressenverriegelung 4017-4, und ODER-Schaltungen 4017-5 und 4017-6.
Die ODER-Schaltung 4017-5 empfängt Signale RA1P und WAD1P,
und führt
einen Ausgang davon dem Transfergate 4017-2 als Transferinstruktionssignal
zu. Die ODER-Schaltung 4017-6 empfängt Signale REFAP und SR-AP,
und führt
einen Ausgang davon dem Transfergate 4017-3 als Transferinstruktionssignal
zu.
-
Die
Adressenänderungsschaltung 4018 enthält eine
Adressenverriegelung 4018-1, Transfergates 4018-2 und 4018-3,
eine Adressenverriegelung 4018-4, und eine ODER-Schaltung 4018-5.
Die ODER-Schaltung 4018-5 empfängt Signale RB1P und WBD1P,
und führt
einen Ausgang davon dem Transfergate 4018-3 als Transferinstruktionssignal zu.
Auch ein Signal REFBP wird dem Transfergate 4018-2 als
Transferinstruktionssignal zugeführt.
-
Wenn
ein Lesebefehl oder ein Schreibbefehl von der Außenseite der Anordnung eingegeben
wird, wird eine zusammen mit dem Befehl eingegebene Adresse zur
Adressenänderungsschaltung 4017 oder 4018 gesendet.
In dem Fall eines Lesebefehls wird der Befehl ohne jede Zeitmanipulation
zur Adressenverriegelung 4017-4 oder 4018-4 gesendet. In
dem Fall eines Schreibbefehls wird der Befehl zur Adressenverriegelung 4017-4 oder 4018-4 zu
der Zeiteinstellung gesendet, zu das letzte Datenelement einer Serie
von Schreibdaten erfasst wird.
-
In
dem Fall eines Auffrischbefehls wird eine vom Auffrischadressenzähler 4016 generierte
Auffrischadresse zur Zeiteinstellung eines Signals REFA, REFB oder
SR-A zur Adressenverriegelung 4017-4 oder 4018-4 gesendet.
-
109 ist ein Blockbild eines Speicherblocks. 109 zeigt den Speicherblock 4014-1 als Beispiel
der Speicherblöcke 4014-1 bis 4014-n.
Die Speicherblöcke 4014-1 bis 4014-n haben
dieselbe Konfiguration.
-
Der
Speicherblock 4014-1 enthält ein Speicher-Array 4111,
eine Steuerschaltung 4112, Busselektoren 4113 und 4114,
einen Leseverstärkerpuffer 4115,
und einen Schreibverstärker 4116.
Das Speicher-Array 4111 enthält DRAM-Speicherzellen, Zellengatetransistoren,
Wortleitungen, Bitleitungen, Leseverstärker, Spaltenleitungen, Spaltengates,
etc., und speichert Daten für
Leseoperationen und Schreib operationen. Die Steuerschaltung 4112 steuert
den Betrieb des Speicherblocks 4014-1. Der Schreibverstärker 4116 verstärkt in das
Speicher-Array 4111 zu schreibende Daten. Der Lesepuffer 4115 verstärkt aus
dem Speicher-Array 4111 gelesene Daten.
-
Die
Steuerschaltung 4112 ist mit dem Bus A 4020-1 und
dem Bus B 4020-2 verbunden, und wird ansprechend auf eine
relevante Blockauswahladresse ausgewählt, die ihrem eigenen Block
entspricht. Wenn ausgewählt,
erfasst die Steuerschaltung 4112 einen Befehl von einem
der Busse, der die relevante Blockauswahladresse erteilt hat. Wenn
der Befehl des Busses A 4020-1 erfasst wird, wird der Busselektor 4113 so
gesteuert, dass er Adressensignale des Busses A 4020-1 zum
Speicher-Array 4111 sendet. Ferner wird der Busselektor 4114 so
gesteuert, dass er den Lesepuffer 4115 oder den Schreibverstärker 4116 mit
den Datenleitungen des Busses A 4020-1 verbindet. Wenn
der Befehl des Busses B 4020-2 erfasst wird, wird der Busselektor 4113 so
gesteuert, dass er Adressensignale des Busses B 4020-2 zum Speicher-Array 4111 sendet.
Ferner wird der Busselektor 4114 so gesteuert, dass er
den Lesepuffer 4115 oder den Schreibverstärker 4116 mit
den Datenleitungen des Busses B 4020-2 verbindet. Wenn der
von der Steuerschaltung 4112 erfasste Befehl ein Auffrischbefehl
ist, muss der Busselektor 114 nicht betrieben werden.
-
Einer
der Busse wird wie oben beschrieben ausgewählt, und dann werden aufeinanderfolgend eine
Wortleitungsauswahl, Zellendatenverstärkung, entweder Read, Write
oder Refresh, und eine Vorladeoperation als Serie kontinuierlicher
Operationen vorgenommen.
-
110A und 110E sind
Zeitdiagramme, die Operation des Speicherblocks zeigen.
-
110A zeigt einen Fall einer Leseoperation, und 110E zeigt einen Fall einer Schreiboperation.
Zu Opera tionszeiteinstellungen, wie in 110A und 110E gezeigt, werden aufeinanderfolgend
eine Wortleitungsauswahl, Datenverstärkung, entweder eine Leseoperation
oder eine Schreiboperation, eine Rückschreib (Datenwiederherstellungs)-operation,
und eine Vorladeoperation ansprechend auf einen einzigen Befehl
vorgenommen, wodurch eine angeforderte Operation vollendet wird.
-
Wenn
in der vorliegenden Erfindung (vierter Aspekt) von der Außenseite
der Anordnung in die Ports eingegebene Befehle versuchen, auf denselben
Speicherblock zuzugreifen, bestimmt eine Entscheidungsschaltung,
welcher der Befehle auszuführen
ist, und welcher der Befehle nicht auszuführen ist. Beispielsweise werden
Befehlszeiteinstellungen verglichen, und der früheste Befehl wird ausgeführt, wohingegen
der (die) andere (n) Befehl (e) nicht ausgeführt wird (werden). Wenn es
einen Befehl gibt, der nicht ausgeführt wird, wird ein BUSY-Signal
oder dgl. generiert und an die Außenseite der Anordnung ausgegeben.
Dies ermöglicht,
eine geeignete Zugriffsoperation vorzunehmen, und eine geeignete
BUSY Steuerung zu erzielen, auch wenn Befehlszugriffe in dem Multiport-Speicher
auf DRAM-Kern-Basis miteinander in Konflikt stehen.
-
Die
vorliegende Erfindung ist ferner mit einem Operationsmodus zum Vornehmen
einer Auffrischoperation ansprechend auf eine Instruktion von der
Außenseite
der Anordnung und einem Operationsmodus zum Vornehmen einer Auffrischoperation ansprechend
auf eine Instruktion von der internen Auffrisch-Schaltung versehen.
Dies ermöglicht
es, den Multiport-Speicher in einer solchen Weise zu verwenden,
dass ein vorherbestimmter externer Port als Port zur Auffrischverwaltung
zugeordnet wird, um Auffrischbefehle in konstanten Intervallen zu
empfangen, oder den Multiport-Speicher in einer solchen Weise zu
verwenden, dass die interne Auf frisch-Schaltung Auffrischoperationen
initiiert, wenn alle externen Ports in dem deaktivierten Zustand sind.
Demgemäß sieht
die vorliegende Erfindung eine Basis für eine flexible Auffrischverwaltung
vor, die mit den Systemanforderungen konform ist.
-
[Fünfter
Aspekt der Erfindung]
-
Im
Folgenden wird ein fünfter
Aspekt der vorliegenden Erfindung beschrieben.
-
Multiport-Speicher
haben zwei oder mehr Sätze
von Eingangs/Ausgangsanschlüssen
(d. h. eine Vielzahl von Eingangs/Ausgangsports), und nehmen Speicheroperationen
ansprechend auf empfangene Signale vor. Im Gegensatz zu gewöhnlichen Speichern
können
eine Leseoperation und eine Schreiboperation simultan ausgeführt werden.
Wenn beispielsweise eine Vielzahl von Bussen in einem System existiert,
und wenn eine Vielzahl von Controllern (CPU oder dgl.) die jeweiligen
Busse verwenden muss, kann das System implementiert werden, indem
Eingabe/Ausgabe-Ports eines Multiport-Speichers mit den jeweiligen
Bussen verbunden werden. Dadurch entfällt die Notwendigkeit der Verwendung eines
spezifisch ausgebildeten Steuerlogikschaltungsaufbaus (FIFO-Logik
oder dgl.).
-
Außerdem werden
Multiport-Speicher auch als Bildspeicher entwickelt (im Allgemeinen
als Dualport-Reportspeicher). Ein Bildspeicher hat Direktzugriffsports,
durch die ein Zugriff auf eine beliebige Speicherzelle durchgeführt werden
kann, und serielle Zugriffsports, die Daten mit einer Anzeigeanordnung austauschen.
-
Diese
Art eines Multiport-Speichers setzt einen SRAM-Kern oder einen DRAM-Speicherkern in dem
Speicherzellenbereich ein.
-
Es
müssen
jedoch noch Multiport-Speicher entwickelt werden, die verschiedene
Taktsignale an jeweiligen Einga be/Ausgabe-Ports empfangen und einen
Direktzugriff auf einen der Speicherzellenbereiche synchron mit
den Taktsignalen vornehmen. Das heißt, es ist noch nicht bekannt,
wie Details eines Schaltungsaufbaus zu implementieren sind, und
wie ein taktsynchronisierter Multiport-Speicher einer solchen Art
zu steuern ist.
-
Außerdem sind
herkömmliche
Multiport-Speicher (insbesondere Dualport-Speicher) mit Bitleitungen
und Leseverstärkern
getrennt für
jeweilige Sätze
von Eingabe/Ausgabe-Ports
versehen. Aus diesem Grund besteht insofern ein Problem, als die Layout-Größe eines
Speicherkerns groß wird,
wodurch die Chipgröße eines
Multiport-Speichers unerwünscht
vergrößert wird.
-
Demgemäß ist die
vorliegende Erfindung darauf gerichtet, einen taktsynchronisierten
Multiport-Speicher vorzusehen, der es ermöglicht, dass ein Direktzugriff
vorgenommen wird.
-
Die
vorliegende Erfindung ist ferner darauf gerichtet, einen Multiport-Speicher
vorzusehen, der voneinander verschiedene Taktsignale an jeweiligen Sätzen von
Eingabe/Ausgabe-Ports empfängt,
und auf zuverlässige
Weise arbeitet.
-
Die
vorliegende Erfindung ist außerdem
darauf gerichtet, einen Multiport-Speicher vorzusehen, der einen
Speicherkern antreiben kann, indem ein Befehlssignal zu einer beliebigen
Zeit ungeachtet des Status anderer Eingabe/Ausgabe-Ports empfangen
wird.
-
Darüber hinaus
ist die vorliegende Erfindung darauf gerichtet, einen Multiport-Speicher
klein mit reduzierter Chipgröße vorzusehen.
-
Gemäß der vorliegenden
Erfindung (fünfter Aspekt)
operieren einige der Vielzahl von Speicherkernen auf der Basis von
Taktsignalen und Adressensignalen, die einer Vielzahl von Eingabe/Ausgabe-Ports
zugeführt
werden. Jeder der Einga be/Ausgabe-Ports enthält einen Taktanschluss zum
Empfangen eines Taktsignals, Adressenanschlüsse zum Empfangen von Adressensignalen,
die synchron mit dem Taktsignal zugeführt werden, und Dateneingangs/ausgangsanschlüsse zum
Eingeben/Ausgeben von Datensignalen. Steuerschaltungen sind für die jeweiligen
Speicherkerne vorgesehen.
-
Eine
Steuerschaltung bringt einen Speicherkern dazu, ansprechend auf
zuerst empfangene Adressensignale zu operieren, wenn Adressensignale,
die denselben Speicherkern anzeigen, zwei oder mehreren der Eingabe/Ausgabe-Ports
zugeführt
werden. Das heißt,
die Speicheroperation wird in Bezug auf einen Eingabe/Ausgabe-Port
vorgenommen, der Adressensignale zuerst empfangen hat. Die Speicherkerne
können
so definiert sein, dass sie jeweiligen Leseverstärkerbereichen entsprechen,
wobei eine Leseverstärkerbereich
ein Bereich ist, in dem Leseverstärker gemeinsam operieren. Ein
Speicherkern wird durch einen oberen Teil der Adressensignale ausgewählt. Speicherzellen
des Speicherkerns werden durch einen unteren Teil der Adressensignale ausgewählt. Datensignale
der vom unteren Teil der Adressensignale ausgewählten Speicherzellen werden
von der Außenseite
der Anordnung über
einen Eingabe/Ausgabe-Port eingegeben bzw. daraus ausgegeben, der
dem oberen Teil der Adressensignale entspricht, die zuerst empfangen
werden.
-
Die
Steuerschaltung kann als einfache Schaltung implementiert werden,
da nur der Vergleich von Adressensignalen notwendig ist. Dies trägt zu einer
Chipgrößenreduktion
bei.
-
Da
jeder Eingabe/Ausgabe-Port einen Taktanschluss hat, kann die Frequenz
des Taktsignals getrennt für
jeden Eingabe/Ausgabe-Port gesteuert werden. Das heißt, eine
Vielzahl von Controllern mit verschiedenen Operationsfrequenzen
kann mit dem Multiport-Speicher verbunden werden.
-
In
dem Multiport-Speicher der vorliegenden Erfindung werden die Adressensignale
eine vorherbestimmte Einrichtzeit vor einer bestimmten Kante des
Taktsignals ausgeregelt, das zum Erfassen der Adressensignale verwendet
wird. Die Steuerschaltung bestimmt eine Reihenfolge der Ankunft
von Adressensignalen unter Verwendung der Adressensignale, die vor
dieser bestimmten Kante des Taktsignals ausgeregelt werden. Deshalb
kann eine Reihenfolge der Ankunft von Adressensignalen unter Verwendung
einer Kante eines Taktsignals bestimmt werden, das zuerst empfangen
wird. Dadurch wird es möglich,
einen Eingabe/Ausgabe-Port, der Priorität hat, vor einem Start einer
Speicherkernoperation zu identifizieren, wodurch eine Hochgeschwindigkeits-Speicheroperation
erzielt wird. Da die Adressensignale zu einer vorherbestimmten Zeiteinstellung
verglichen werden (d. h. die Kante des Taktsignals), kann ein falscher
Vergleich von Adressensignalen, die für Speicheroperationen irrelevant
sind, verhindert werden.
-
Gemäß der vorliegenden
Erfindung operieren einige der Vielzahl von Speicherkernen auf der Basis
von Taktsignalen und Adressensignalen, die einer Vielzahl von Eingabe/Ausgabe-Ports
zugeführt werden.
Jeder der Eingabe/Ausgabe-Ports enthält einen Taktanschluss zum
Empfangen eines Taktsignals, Adressenanschlüsse zum Empfangen von Adressensignalen,
die synchron mit dem Taktsignal zugeführt werden, und Dateneingangs/ausgangsanschlüsse zum
Eingeben/Ausgeben von Datensignalen. Steuerschaltungen sind für die jeweiligen
Speicherkerne vorgesehen.
-
Eine
Steuerschaltung bringt einen Speicherkern dazu, ansprechend auf
zuerst empfangene Adressensignale zu operieren, wenn Adressensignale,
die denselben Speicherkern anzeigen, zwei oder mehreren der Eingabe/Ausgabe-Ports
zugeführt
werden. Danach bringt die Steuerschaltung den Speicherkern dazu,
ansprechend auf Adressensignale in einer Rei henfolge zu operieren,
in der die Adressensignale empfangen werden. Ein Speicherkern wird durch
einen oberen Teil der Adressensignale ausgewählt. Speicherzellen des Speicherkerns
werden durch einen unteren Teil der Adressensignale ausgewählt. Datensignale
der vom unteren Teil der Adressensignale ausgewählten Speicherzellen werden aufeinanderfolgend
von der Außenseite
der Anordnung über
Eingabe/Ausgabe-Ports eingegeben bzw. daraus ausgegeben, die den
jeweiligen Adressensignalen entsprechen. Demgemäß werden Speicheroperationen
ohne Ausnahme für
alle Eingabe/Ausgabe-Ports vorgenommen, die Anforderungen für Speicheroperationen
empfangen haben.
-
Der
Multiport-Speicher ist nämlich
zu jeder Zeit in einem READY-Zustand. Ein mit dem Multiport-Speicher
verbundener Controller muss keinen BUSY-Zustand des Multiport-Speichers detektieren. Dies
vereinfacht den Betrieb des Controllers hinsichtlich Hardware und
Software. Die Steuerschaltung kann als einfache Schaltung implementiert
werden, da nur der Vergleich von Adressensignalen notwendig ist.
Dies trägt
zu einer Chipgrößenreduktion
bei.
-
Da
jeder Eingabe/Ausgabe-Port einen Taktanschluss hat, kann die Frequenz
des Taktsignals getrennt für
jeden Eingabe/Ausgabe-Port gesteuert werden. Das heißt, eine
Vielzahl von Controllern mit verschiedenen Operationsfrequenzen
kann mit dem Multiport-Speicher verbunden werden.
-
In
dem Multiport-Speicher der vorliegenden Erfindung ist jeder Eingabe/Ausgabe-Port
mit einem Befehlsanschluss zum Empfangen eines Befehlssignals synchron
mit dem Taktsignal zum Steuern von Speicherkernoperationen versehen.
In jedem Eingabe/Ausgabe-Port werden die Befehlssignale zum Aktivieren
von Speicherkernen in Intervallen zugeführt, welche zumindest zweimal
so lang sind wie die Operationsperiode von Speicherkernen, die für eine Leseoperation
und eine Schreiboperation notwendig ist. Wenn der Multiport- Speicher mit zwei
Eingabe/Ausgabe-Ports oder vier Eingabe/Ausgabe-Ports versehen ist,
können
die Intervalle von Befehlssignalen jeweils auf das Zweifache der
Operationsperiode oder das Vierfache der Operationsperiode eingestellt
werden. Mit solchen Einstellungen ist der Multiport-Speicher in
einem READY-Zustand, um auf den externen Controller anzusprechen.
-
Wenn
die Befehlssignale in kürzeren
Intervallen als den vorherbestimmten Intervallen zugeführt werden,
werden die Befehlssignale ungültig
gemacht, um eine Fehlfunktion zu verhindern. Wenn die Befehlssignale
verschiedenen Eingabe/Ausgabe-Ports zugeführt werden, werden diese Befehlssignale
akzeptiert, auch wenn die Intervalle nicht kürzer sind als die vorherbestimmten
Intervalle.
-
Gemäß der vorliegenden
Erfindung werden ferner Daten, die aus den Speicherzellen gelesen oder
in diese geschrieben werden, über
einen Puffer zwischen den Dateneingangs/ausgangsanschlüssen und
den Speicherzellen transferiert. Der Puffer speichert darin Daten
mit einer vorherbestimmten Anzahl von Bits, deren Betrag zwei oder
mehreren der Speicherzellen gleicht.
-
Bei
einem Start einer Leseoperation und einer Schreiboperation werden
beispielsweise die Daten mit einer vorherbestimmten Anzahl von Daten von
den Speicherzellen zum Puffer transferiert. Bei der Leseoperation
werden jeweiligen Adressensignalen entsprechende Daten aus dem Puffer
gelesen und von den Dateneingangs/ausgangsanschlüssen an die Außenseite
ausgegeben. Bei der Schreiboperation werden jeweiligen Adressensignalen
entsprechende Daten in dem Puffer gespeichert, und die Daten des
Puffers werden am Ende der Schreiboperation auf einmal in die Speicherzellen
geschrieben.
-
Auf
diese Weise wird leicht eine Seitenoperation vorgenommen. Im Allgemeinen
müssen
Speicherkerne (Leseverstärker und
dgl.) während
einer Seitenoperation aktiviert gehalten werden. Wäre der Puffer
der vorliegenden Erfindung nicht vorgesehen, wäre es unmöglich, eine Speicheroperation
in Bezug auf einen Eingabe/Ausgabe-Port während einer Seitenoperation
vorzunehmen, die für
einen anderen Eingabe/Ausgabe-Port vorgenommen wird. Bei der vorliegenden
Erfindung werden Daten der Speicherzellen beim Start einer Operation
zum Puffer transferiert, so dass die Speicherkerne sofort danach
deaktiviert werden können.
Als Ergebnis muss ein mit dem Multiport-Speicher verbundener Controller
einen BUSY-Zustand des Multiport-Speichers auch nicht während der
Seitenoperation detektieren.
-
Im
Folgenden werden Ausführungsformen der
vorliegenden Erfindung (fünfter
Aspekt) mit Bezugnahme auf die beigeschlossenen Zeichnungen beschrieben.
-
111 zeigt eine erste Ausführungsform eines Multiport-Speichers
gemäß der vorliegenden
Erfindung (fünfter
Aspekt). Ein Multiport-Speicher M wird unter Verwendung eines CMOS-Prozesses
auf einem Siliciumsubstrat gebildet.
-
Der
Multiport-Speicher M enthält
zwei Eingabe/Ausgabe-Ports
PORT-A und PORT-B, eine I/O-Schaltung 5010, die Signale
aus den Ports PORT-A und PORT-B ausgibt und in diese eingibt, und
eine Vielzahl von Speicherblöcken
MB. Die Speicherblöcke
MB enthalten jeweils einen DRAM-Speicherkern (der Speicherzellen,
Leseverstärkerleitungen
SA, etc., enthält),
und sie enthalten ferner einen Steuerschaltungsaufbau, Decoder,
etc., die in der Zeichnung nicht veranschaulicht sind. Die Speicherzellen
enthalten jeweils einen Kondensator, der eine elektrische Ladung
speichert, die auf den Wert eines Datensignals ansprechen kann.
Einer der Speicherkerne wird gemäß einem
Reihenadressensignal ausgewählt,
das durch den Port PORT-A oder den Port PORT-B zugeführt wird.
Alle Leseverstärker der
Leseverstärkerleitung
SA in einem gegebe nen Speicherkern werden simultan ansprechend auf
die Auswahl des gegebenen Speicherkerns aktiviert. Ein Speicherkern
wird nämlich
ansprechend auf einen aktiven Befehl ACT aktiviert, der im Nachstehenden beschrieben
wird, und alle Speicherzellenbereiche in diesem Speicherkern werden
ausgewählt.
Lesedaten oder Schreibdaten werden an einer Speicherzelle gemäß einem
Spaltenadressensignal gelesen oder geschrieben, das nach der Aktivierung
von Leseverstärkern
zugeführt
wird.
-
112 zeigt Details der I/O-Schaltung 5010 und
eines Speicherblocks MB des Multiport-Speichers M. In der Figur
bestehen durch eine Darstellung mit fettgedruckten Linien gezeigte
Signalleitungen jeweils aus einer Vielzahl von Leitungen.
-
Die
I/O-Schaltung 5010 enthält
Modusregister 5012a und 5012b, Taktpuffer 5014a und 5014b, Dateneingabe/ausgabepuffer 5016a und 5016b, Adressenpuffer/register 5018a und 5018b,
Befehlspuffer 5020a und 5020b, und BUSY-Puffer 5022a und 5022b,
die den Eingabe/Ausgabe-Ports PORT-A bzw. PORT-B entsprechen. Die
Modusregister 5012a und 5012b sind Register zum
Einstellen eines Operationsmodus des Multiport-Speichers M von der
Außenseite
der Anordnung.
-
Der
Taktpuffer 5014a, der/das Adressenpuffer/register 5018a und
der Befehlspuffer 5020a führen dem Speicherblock MB ein
Taktsignal CLKA, Adressensignale ADDA bzw. Befehlssignale CMDA zu,
wenn sie von der Außenseite
der Anordnung zugeführt
werden. Der Eingabe/Ausgabepuffer 5016a wird zum Ausgeben
und Eingeben von Datensignalen DQA aus dem und in den Speicherblock
MB verwendet. Der BUSY-Puffer 5022a gibt ein BUSY-Signal/BSYA
an die Außenseite
der Anordnung aus. Der Taktpuffer 5014b, der/das Adressenpuffer/register 5018b und
der Befehlspuffer 5020b führen dem Speicherblock MB ein
Taktsignal CLKB, Adressensignale ADDB bzw. Befehlssignale CMDB zu,
wenn sie von der Außenseite
der Anordnung zugeführt werden.
Der Eingabe/Ausgabepuffer 5016b wird zum Ausgeben und Eingeben
von Datensignalen DQB aus dem und in den Speicherblock MB verwendet. Der
BUSY-Puffer 5022b gibt ein BUSY-Signal/BSYB an die Außenseite
der Anordnung aus. Die Taktsignale CLKA und CLKB, die Adressensignale
ADDA und ADDB, die Befehlssignale CMDA und CMDB, die Datensignale
DQA und DQB, und die BUSY-Signale/BSYA und/BSYB werden durch Taktanschlüsse, Adressenanschlüsse, Befehlsanschlüsse, Dateneingangs/ausgangsanschlüsse bzw.
BUSY-Anschlüsse transferiert.
Der aktive Befehl ACT und ein Operationsbefehl (z. B. ein Lesebefehl
RD, ein Schreibbefehl WR), etc., werden als Befehlssignale CMDA
und CMDB zum Steuern des Betriebs des Speicherkerns zugeführt.
-
Die
Adressensignale ADDA und ADDB werden jeweils als Reihenadressensignale
RA und Spaltenadressensignale CA getrennt voneinander zugeführt. In
dem Eingabe/Ausgabe-Port PORT-A werden die Reihenadressensignale
RA, die Spaltenadressensignale CA und Befehlssignale CMDA synchron mit
Anstiegkanten des Taktsignals CLKA zugeführt. In dem Eingabe/Ausgabe-Port
PORT-B werden die Reihenadressensignale RA, die Spaltenadressensignale
CA und Befehlssignale CMDB synchron mit Anstiegkanten des Taktsignals
CLKB zugeführt.
Auf diese Weise empfängt
der Multiport-Speicher M die Taktsignale CLKA und CLKB zur exklusiven
Verwendung an den Eingabe/Ausgabe-Ports PORT-A bzw. PORT-B, und
operiert synchron mit den Taktsignalen CLKA und CLKB.
-
Der
Speicherblock MB enthält
Taktpuffer 5024a und 5024b, Befehlsverriegelungen 5026a und 5026b,
Datenverriegelungen 5028a und 5028b, Reihenadressenverriegelungen 5030a und 5030b,
Spaltenadressenpuffer 5031a und 5031b, und Spaltenadressenverriegelungen 5032a und 5032b,
die dem Eingabe/Ausgabe-Port PORT-A bzw. PORT-B entsprechen. Der
Speicherblock MB enthält
eine Entscheidungsschaltung 5034, eine Steuersignalverriegelung 5036,
einen Spaltenadressenzähler 5038, und
einen Speicherkern 5040, welche die Eingabe/Ausgabe-Ports
PORT-A und PORT-B gemeinsam haben. Der Speicherkern 5040 ist
ein Typ, der Befehlssignale RAS, CAS und WE, die Reihenadressensignale
RA und die Spaltenadressensignale CA synchron mit dem Taktsignal
aufnimmt.
-
Das
Modusregister 5012a, der Taktpuffer 5024a, die
Befehlsverriegelung 5026a, die Datenverriegelung 5028a,
der Reihenadressenpuffer 5031a und die Spaltenadressenverriegelung 5032a,
die dem Eingabe/Ausgabe-Port PORT-A entsprechen, operieren, wenn
ein von der Entscheidungsschaltung 5034 zugeführtes Freigabesignal/ENA
aktiviert wird. Das Modusregister 5012b, der Taktpuffer 5024b,
die Befehlsverriegelung 5026b, die Datenverriegelung 5028b,
der Reihenadressenpuffer 5031b und die Spaltenadressenverriegelung 5032b,
die dem Eingabe/Ausgabe-Port PORT-B entsprechen, operieren, wenn
ein von der Entscheidungsschaltung 5034 zugeführtes Freigabesignal/ENB
aktiviert wird.
-
Zur
Zeit der Aktivierung des Freigabesignals/ENA führt nämlich der Taktpuffer 5024a das Taktsignal
CLKA dem Taktanschluss CLK des Speicherkerns 5040 zu. Ferner
führt die
Befehlsverriegelung 5026a die verriegelten Befehlssignale
CMDA der Steuersignalverriegelung 5036 zu, und der Reihenadressenpuffer 5031a führt das
verriegelte Reihenadressensignal RA (das z. B. oberen Adressenbits
entspricht) den Reihenadressenanschlüssen RA des Speicherkerns 5040 zu.
Außerdem
führt die Spaltenadressenverriegelung 5032a das
verriegelte Spaltenadressensignal CA (das z. B. den unteren Adressenbits
entspricht) dem Spaltenadressenzähler 5038 zu,
und die Datenverriegelung 5028a tauscht Datensignale mit
den Dateneingangs/ausgangsanschlüssen
DQ des Speicherkerns 5040 und dem Eingabe/Ausgabepuffer 5016a aus.
-
Ähnlich führt zur
Zeit der Aktivierung des Freigabe signals/ENB der Taktpuffer 5024b das
Taktsignal CLKB dem Taktanschluss CLK des Speicherkerns 5040 zu.
Ferner führt
die Befehlsverriegelung 5026a die verriegelten Befehlssignale
CMDB der Steuersignalverriegelung 5036 zu, und der Reihenadressenpuffer 5031b führt das
verriegelte Reihenadressensignal RA den Reihenadressenanschlüssen RA
des Speicherkerns 5040 zu. Außerdem führt die Spaltenadressenverriegelung 5032b das
verriegelte Spaltenadressensignal CA dem Spaltenadressenzähler 5038 zu,
und die Datenverriegelung 5028b tauscht Datensignale mit
den Dateneingangs/ausgangsanschlüssen
DQ des Speicherkerns 5040 und dem Eingabe/Ausgabepuffer 5016b aus.
-
Die
Steuersignalverriegelung 5036 generiert ein Reihenadressen-Strobe-Signal
RAS, ein Spaltenadressen-Strobe-Signal CAS und ein Schreibfreigabesignal
WE zum Betreiben des Speicherkerns 5040 gemäß den empfangenen
Befehlssignalen CMDA und CMDB, und führt die generierten Signale
dem Speicherkern 5040 zu. Außerdem führt die Steuersignalverriegelung 5036 der
Entscheidungsschaltung 5034 die Lese/Schreibbefehlssignale
RWCMD zu, die eine von der Leseoperation und der Schreiboperation
anzeigen.
-
Der
Spaltenadressenzähler 5038 generiert das
Spaltenadressensignal CA gemäß den Informationen über die
Burst-Länge, die
von den Modusregistern 5012a und 5012b zugeführt werden,
und die Adressensignale ADDA und ADDB, und gibt das Spaltenadressensignal
an den Speicherkern 5040 aus.
-
Die
Entscheidungsschaltung 5034 enthält eine Adressenvergleichsschaltung 5042 und
eine Entscheidungssteuerschaltung 5044. Die Adressenvergleichsschaltung 5042 vergleicht
die Reihenadressensignale RA zwischen den Adressensignalen ADDA
und ADDB, die von den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden, und
entscheidet, welches früher
ankommt. Die Entscheidungssteuerschaltung 5044 generiert
die BUSY-Signale/BSYA und/BSYB und die Freigabesignale/ENA und/ENB
zum Betreiben eines internen Schaltungsaufbaus gemäß dem Vergleich
durch die Adressenvergleichsschaltung 5042.
-
113 zeigt die Details der Adressenvergleichsschaltung 5042.
-
Die
Adressenvergleichsschaltung 5042 enthält zwei Adressenübereinstimmungsschaltungen 5042a und
einen Adressenkomparator 5042b, der eine Reihenfolge der
Ankunft von Adressen detektiert. Die Adressenübereinstimmungsschaltung 5042a enthält eine
Vielzahl von EXKLUSIV-ODER-Schaltungen 5042c, von denen
jede entsprechende Bits der Reihenadressensignale RA zwischen dem
Adressensignal ADDA und dem Adressensignal ADDB vergleicht, und
enthält
ferner eine Vielzahl von nNOS-Transistoren 5042d, die der
jeweiligen EXKLUSIV-ODER-Schaltung 5042c entsprechen.
Die nMOS-Transistoren 5042d haben jeweils ein Gate davon
verbunden mit dem Ausgang einer entsprechenden EXKLUSIV-ODER-Schaltung 5042c,
eine Source davon geerdet, und den Drain davon miteinander verbunden.
Jede EXKLUSIV-ODER-Schaltung 5042c gibt ein Niederpegelsignal
aus, wenn Bitwerte der Reihenadressensignale RA zwischen den Eingabe/Ausgabe-Ports
PORT-A und PORT-B miteinander übereinstimmen,
und gibt ein Hochpegelsignal aus, wenn die Bitwerte der Reihenadressensignale
RA nicht übereinstimmen.
Die nMOS-Transistoren 5042d werden ansprechend auf das
Niederpegelsignal von den EXKLUSIV-ODER-Schaltungen 5042c ausgeschaltet,
und ansprechend auf das Hochpegelsignal eingeschaltet. Übereinstimmungssignale/COIN1
und/COIN2, die aus den Adressenübereinstimmungsschaltungen 5042a ausgegeben
werden, werden nämlich
schwebend, wenn alle Bits der Reihenadressensignale RA zwischen
entsprechenden Bits übereinstimmen,
und werden ein Niederpegelsignal, wenn sich zumindest ein Bit der
Reihenadressensignale zwischen entspre chenden Bits unterscheidet.
Die beiden Adressenübereinstimmungsschaltungen 5042a sind
an dem jeweiligen oberen Ende und unteren Ende des in 111 gezeigten Speicherblocks MB angeordnet (d.
h. nahe bei den Eingangs/Ausgangsschaltungen 5010 angeordnet).
Die Anordnung der Adressenübereinstimmungsschaltungen 5042a nahe
bei den I/O-Schaltungen 5010 ermöglicht es, die Ausbreitungsverzögerung der
Adressensignale ADDA und ADDB den gesamten Weg bis zu den Adressenübereinstimmungsschaltungen 5042a zu
verkürzen. Dementsprechend
können
die Adressensignale ADDA und ADDB zu einer früheren Zeiteinstellung verglichen
werden, wodurch ein Hochgeschwindigkeitsbetrieb erzielt wird.
-
Der
Komparator 5042b empfängt Übereinstimmungssignale/COIN1
und/COIN2 und die Taktsignale CLKA und CLKB, und gibt Erstankunftssignale/FSTA
und/FSTB aus.
-
114 zeigt die Details des Komparators 5042b.
-
Der
Komparator 5042b enthält
Impulsgeneratoren 5042e, die positive Impulse PLSA bzw.
PLSB synchron mit Anstiegkanten der Taktsignale CLKA und CLKB generieren,
und enthält
ferner ein Flip-Flop 5042f, das die Impulse PLSA und PLSB
an den Eingangsanschlüssen
davon empfängt.
Der Komparator 5042b empfängt die Übereinstimmungssignale/COIN1
und/COIN2 als Eingänge
in jeweilige Inverter, die die Impulse PLSA bzw. PLSB ausgeben. NICHT-UND-Gates,
die jeweilige Impulssignale in dem Komparator 5042b generieren,
sind als Schaltungselemente mit einer kleinen Größe implementiert, so dass den Übereinstimmungssignalen/COIN1 und/COIN2
Priorität
verliehen wird, wenn die aus den NICHT-UND-Gates ausgegebenen Signale
mit den Übereinstimmungssignalen/COIN1
und/COIN2 in Konflikt stehende Signalpegel aufweisen. Das Flip-Flop 5042f bringt
das Erstankunftssignal/FSTA auf einen Niederpegel hinunter, wenn
der Impuls PLSA empfangen wird, und bringt das Erstankunftssignal/FSTB
auf einen Niederpegel hinunter, wenn der Impuls PLSB empfangen wird.
-
115 zeigt Operationen des Komparators 5042b,
die vorgenommen werden, wenn die den Eingabe/Ausgabe-Ports PORT-A
und PORT-B zugeführten
Reihenadressensignale miteinander übereinstimmen. In diesem Beispiel
haben die Taktsignale CLKA und CLKB denselben Zyklus.
-
Die
in 113 gezeigte Adressenübereinstimmungsschaltung 5042a bringt
die Übereinstimmungssignale/COIN1
und/COIN2 in einen schwebenden Zustand (Hi-z), wenn die Reihenadressensignale
RA übereinstimmen.
Ansprechend darauf werden die Impulse PLSA und PLSB synchron mit der
Anstiegkante der Taktsignale CLKA bzw. CLKB generiert (115-(a)). Das in 114 gezeigte Flip-Flop 5042f aktiviert
das Erstankunftssignal/FSTA ansprechend auf den Impuls PLSA, der
vor dem anderen empfangen wird (115-(b)).
Das Erstankunftssignal/FSTB, das dem später empfangenen Impuls PLSB
entspricht, wird nach der Deaktivierung des Erstankunftssignals/FSTA
aktiviert (115-(c)).
-
116 zeigt Operationen des Komparators 5042b in
einem Fall, in dem die Reihenadressensignale RA zwischen den Eingabe/Ausgabe-Ports PORT-A
und PORT-B nicht übereinstimmen.
In diesem Beispiel haben die Taktsignale CLKA und CLKB denselben
Zyklus.
-
Die
Adressenübereinstimmungsschaltung 5042a bringt
jedes der Übereinstimmungssignale/COIN1
und/COIN2 auf einen Niederpegel hinunter (116-(a)),
wenn die Reihenadressensignale RA auch nur in einem Bit nicht übereinstimmen.
Ansprechend darauf erzwingt der in 114 gezeigte
Impulsgenerator 5042c, dass die Impulssignale PLSA und
PLSB auf den Niederpegel hinunter gebracht werden, ungeachtet der
Taktsignale CLKA und CLKB (116-(b)).
Dementsprechend werden die Erstankunftssignale/FSTA und/FSTB auf
dem Hochpegel gehalten (116-(c)).
-
117 zeigt Operationen des Komparators 5042b,
wenn die den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale
RA unter der Bedingung übereinstimmen, dass
das Taktsignal CLKA einen Zyklus hat, der von dem Zyklus des Taktsignals
CLKB verschieden ist. In diesem Beispiel wird der Zyklus des Taktsignals CLKB
gleich dem Doppelten des Zyklus des Taktsignals CLKA eingestellt.
Die Reihenadressensignale RA werden synchron mit den Anstiegkanten
der Taktsignale CLKA bzw. CLKB erfasst. In der Zeichnung veranschaulichen
die mit durchgehenden Linien gezeigten Reihenadressensignale RA
Signale, die den Eingabe/Ausgabe-Ports
PORT-A und PORT-B zugeführt
werden, und die mit gestrichelten Linien gezeigten Reihenadressensignale
RA veranschaulichen die Signale, die von den in 112 gezeigten jeweiligen Reihenadressenverriegelungen 5030a und 5030b verriegelt
werden.
-
Wenn
die Reihenadressensignale RA übereinstimmen,
werden die Übereinstimmungssignale/COIN1
und/COIN2 auf die gleiche Weise wie in 115 in
den schwebenden Zustand (Hi-Z) gebracht. Wenn die Übereinstimmungssignale/COIN1 und/COIN2
in dem schwebenden Zustand sind, wird der in 114 gezeigte
Impulsgenerator wirksam, so dass die Impulssignale PLSA und PLSB
und die Erstankunftssignale/FSTA und/FSTB synchron mit den Anstiegkanten
der Taktsignale CLKA bzw. CLKB generiert werden.
-
118 zeigt die Entscheidungssteuerschaltung 5044,
die in der in 112 gezeigten Entscheidungsschaltung 5034 vorgesehen
ist.
-
Die
Entscheidungssteuerschaltung 5044 enthält Steuerschaltungen 5044a bzw. 5044b,
die den Eingabe/Ausgabe-Ports PORT-A und PORT-B entsprechen. Die
Steuerschaltung 5044a empfängt ein Rücksetzsignal RESETA, ein Verzögerungstaktsignal
DCLKA, ein aktives Befehlssignal ACTA, und das Erst ankunftssignal/FSTA,
und ein BUSY-Signal/BSYA, und gibt ein Freigabesignal/ENA und ein BUSY-Signal/BSYB
aus. Die Steuerschaltung 5044b empfängt ein Rücksetzsignal RESETB, ein Verzögerungstaktsignal
DCLKB, ein aktives Befehlssignal ACTB, das Erstankunftssignal/FSTB,
und ein BUSY-Signal/BSYB, und gibt ein Freigabesignal/ENB und ein
BUSY-Signal/BSYA aus.
-
Wenn
Lese- oder Schreiboperationen, die den Eingabe/Ausgabe-Ports PORT-A
und PORT-B entsprechen, vollendet sind, werden die Rücksetzsignale
RESETA und RESETB für
jeweilige vorherbestimmte Perioden aktiviert. Die Verzögerungstaktsignale
DCLKA und DCLKB sind Signale, die durch das Verzögern der Taktsignale CLKA bzw.
CLKB erhalten werden. Die aktiven Befehlssignale ACTA und ACTB werden
aktiviert, wenn ein aktiver Befehl ACT den Eingabe/Ausgabe-Ports
PORT-A und PORT-B zugeführt
wird.
-
119 zeigt Operationen der Entscheidungssteuerschaltung 5044,
die vorgenommen werden, wenn die den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführten
Reihenadressensignale übereinstimmen.
In diesem Beispiel sind die Zyklen von Taktsignalen CLKA und CLKB
gleich. Ein aktiver Befehl ACT wird synchron mit dem Taktsignal
CLKA zugeführt,
unmittelbar gefolgt von einem aktiven Befehl ACT, der synchron mit
dem Taktsignal CLKB zugeführt
wird.
-
Die
Steuerschaltung 5044a nimmt das Erstankunftssignal/FSTA
mit einem Niederpegel synchron mit einer Anstiegkante des Verzögerungstaktsignals
DCLKA auf, und aktiviert das BUSY-Signal/BSYB (119-(a)). Ansprechend auf die Aktivierung des
aktiven Befehlssignals ACTA und einen deaktivierten Zustand des
BUSY-Signals/BSYA aktiviert die Steuerschaltung 5044a das
Freigabesignal/ENA (119-(b)). Da die Steuerschaltung 5044b das
Erstankunftssignal/FSTB mit einem Hochpegel synchron mit einer Anstiegkante
des Verzö gerungstaktsignals
DCLKB erfasst, wird das BUSY-Signal/BSYA nicht aktiviert (119-(c)). Obwohl die Steuerschaltung 5044b das
aktive Befehlssignal ACTB eines aktivierten Zustands empfängt, aktiviert die
Steuerschaltung 5044b das Freigabesignal/ENB nicht, da
das BUSY-Signal/BSYB aktiviert ist (119-(d))
-
Ansprechend
auf die Aktivierung des Freigabesignals/ENA wird das dem Eingabe/Ausgabe-Port PORT-A
zugeführte
Signal zum Speicherkern 5040 gesendet. Der Speicherkern 5040 wird
aktiviert, wobei er eine Leseoperation gemäß dem Lesebefehl RD vornimmt,
der dem Eingabe/Ausgabe-Port PORT-A zugeführt wird. Nach der Vollendung
der Leseoperation spricht die Steuerschaltung 5044a auf die
Aktivierung des Rücksetzsignals
RESETA an, um das Freigabesignal/ENA und das BUSY-Signal/BSYB zu deaktivieren
(119-(e)).
-
Im
Folgenden wird der oben beschriebene Multiport-Speicher M in Bezug
auf Operationen davon weiter beschrieben.
-
120 zeigt Operationen, die vorgenommen werden,
wenn die den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale
RA miteinander übereinstimmen.
In diesem Beispiel haben die Taktsignale CLKA und CLKB denselben
Zyklus, und die Phase des Taktsignals CLKA ist der Phase des Taktsignals
CLKB geringfügig
voraus. Beide Burst-Längen der
Eingabe/Ausgabe-Ports PORT-A und PORT-B werden von den jeweiligen
Modusregistern 5012a und 5012b gleich 4 eingestellt.
Hier ist die Burst-Länge
die Anzahl der Datenelemente, die während einer Schreib- oder Leseoperation
ausgegeben und eingegeben werden.
-
Der
Eingabe/Ausgabe-Port PORT-A empfängt
den aktiven Befehl ACT (Befehlssignal CMDA) und die Reihenadressensignale
RA (Adressensignale ADDA) synchron mit einer Anstiegkante des Taktsignals
CLKA (120-(a)). Sofort nach dem Signalempfang
durch den Eingabe/Ausgabe-Port PORT-A empfängt der Eingabe/Ausgabe-Port
PORT-B einen aktiven Befehl ACT (Befehlssignal CMDB) und die Reihenadressensignale
RA (Adressensignale ADDB) synchron mit einer Anstiegkante des Taktsignals
CLKB (120-(b)). Hier haben die Befehlssignale
CMDA und CMDB und die Adressensignale ADDA und ADDB Signalpegel
davon, die zu einer vorherbestimmten Einrichtzeit tS vor den jeweiligen Anstiegkanten
der Taktsignale CLKA und CLKB ausgeregelt werden (d. h. gemäß Zeiteinstellungsspezifikationen).
-
Da
die dem Port PORT-B zugeführten
Reihenadressensignale RA gleich sind wie die dem Port PORT-A zugeführten Reihenadressensignale
RA, werden die Erstankunftssignale/FSTA und/FSTB eines nach dem
anderen generiert, wie in 115 gezeigt.
Die Entscheidungssteuerschaltung 5044 aktiviert das Freigabesignal/ENA
und das BUSY-Signal/BSYB (120-(c)
und (d)) ansprechend auf die Erstankunftssignale/FSTA und/FSTB,
wie in Verbindung mit 119 beschrieben.
Auf diese Weise wird das erste zwischen den beiden Adressensignalen, das
ankommt, unter Verwendung der Reihenadressensignale RA bestimmt,
die während
der Einrichtzeit tS zugeführt
werden, und unter Verwendung einer Anstiegkante des Taktsignals
(in diesem Beispiel CLKA) mit einer früheren Phase. Danach operiert
der Speicherkern 5040 entsprechend den Reihenadressensignalen
RA ansprechend auf die Aktivierung des Freigabesignals/ENA (120-(e)).
-
Ansprechend
auf das BUSY-Signal/BSYB ermittelt ein Controller, wie eine mit
dem Eingabe/Ausgabe-Port PORT-B verbundene CPU, dass der dem Multiport-Speicher
M zugeführte
aktive Befehl ACT ungültig
ist.
-
Der
Eingabe/Ausgabe-Port PORT-A empfängt
einen Lesebefehl RD (d. h. ein Befehlssignal CMD) und Spaltenadressensignale
CA (Adressensignale ADDA) synchron mit der folgenden Anstiegkante
des Taktsignals CLKA (120-(f)).
Der Einga be/Ausgabe-Port PORT-B empfängt einen Lesebefehl RD (Befehlssignal
CMDB) und Spaltenadressensignale CA (Adressensignale ADDB) synchron mit
der folgenden Anstiegkante des Taktsignals CLKB (120-(g)). Die Lesebefehle RD (oder Schreibbefehle
WR) werden nach den aktiven Befehlen ACT synchron mit den nächsten Anstiegkanten der
jeweiligen Taktsignale CLKA und CLKB zugeführt (gemäß Zeiteinstellungsspezifikationen).
In Abhängigkeit
vom BUSY-Signal/BSYB kann der mit dem Eingabe/Ausgabe-Port PORT-B
verbundene Controller den Lesebefehl RD und die Spaltenadressensignale
CA nicht zuführen.
-
Der
Speicherblock MB gibt aufeinanderfolgend Daten als Datensignal DQA
(Q0–Q3)
aus (120-(h)), wenn sie aus Speicherzellen
gelesen werden, die den dem Eingabe/Ausgabe-Port PORT-A zugeführten Spaltenadressensignalen
CA entsprechen. Das Datensignal DQA wird 2 Takte nach dem Empfang
des Lesebefehls RD ausgegeben. Nach dem Ausgeben des Datensignals
DQA so oft wie die Burst-Länge
(= 4) nimmt der Speicherkern 5040 eine Vorladeoperation
vor (120-(i)), wodurch ein Speicherzyklus
vollendet wird. Das Freigabesignal/ENA wird ansprechend auf die
Vollendung der Leseoperation deaktiviert (120-(j)).
Hier lädt die
Vorladeoperation Bitleitungen zum Transferieren von Daten zu und
von Speicherzellen auf ein vorherbestimmtes Potential, und deaktiviert
einen Schaltungsaufbau, der für
Reihenadressenoperationen relevant ist. Diese Vorladeoperation wird
automatisch bei jeder Speicheroperation vorgenommen. Die Zeiteinstellung
der Vorladeoperation wird gemäß der größeren von
der Burst-Länge
des Eingabe/Ausgabe-Ports PORT-A oder der Burst-Länge des
Eingabe/Ausgabe-Ports PORT-B bestimmt, die in dem entsprechenden
Modusregister gespeichert ist. Wenn in dieser Ausführungsform
die Burst-Länge 4 ist,
wird der Speicherzyklus (d. h. die für eine einzelne Lese- oder
Schreib operation erforderliche Zeitperiode) auf vier Taktzyklen
fixiert. Das heißt,
die Leseoperation und die Schreiboperation werden immer eine vorherbestimmte
Zeit nach dem Empfang eines aktiven Befehls vollendet.
-
Synchron
mit dem Taktsignal CLKA, das zum Ausgeben der Daten Q1 verwendet
wird, wird ein nächster
aktiver Befehl ACT dem Eingabe/Ausgabe-Port PORT-A zugeführt (120-(k)).
Da in diesem bestimmten Moment kein Befehlssignal CMDB dem Eingabe/Ausgabe-Port
PORT-B zugeführt
wird, erzeugt ein Vergleich der Reihenadressensignale RA durch die
in 113 gezeigte Adressenvergleichsschaltung 5042 ein
Ergebnis, das eine Fehlübereinstimmung
anzeigt. Deshalb werden die BUSY-Signale/BSYA
und/BSYB nicht aktiviert, und nur das Freigabesignal/ENA wird aktiviert
(120-(l)). Die Erstankunftssignale/FSTA und/FSTB
werden auf einem Hochpegel gehalten, wie in 116 gezeigt.
-
Der
Speicherkern 5040 operiert gemäß den dem Eingabe/Ausgabe-Port
PORT-A zugeführten Reihenadressensignalen
RA, wie vorstehend beschrieben wurde (120-(m)).
Der Speicherblock MB gibt das Datensignal DQA (Q0–Q3) eines
nach dem anderen gemäß einem
Lesebefehl RD und Spaltenadressensignale CA aus, die synchron mit
dem folgenden Taktsignal CLKA zugeführt werden (120-(n)).
-
Nachdem
die Operation des Speicherkerns 5040 entsprechend dem Eingabe/Ausgabe-Port PORT-A
vollendet ist, werden ein aktiver Befehl ACT und ein Lesebefehl
RD aufeinanderfolgend dem Eingabe/Ausgabe-Port PORT-B zugeführt (120-o)). Da in diesem bestimmten Moment kein Befehlssignal CMDA
dem Eingabe/Ausgabe-Port PORT-A zugeführt wird, operiert der Speicherkern 5040 in
Bezug auf den Eingabe/Ausgabe-Port PORT-B, wodurch ein Datensignal
DQB ausgegeben wird (120-(p)).
-
Obwohl
dies in der Figur nicht gezeigt ist, wird eine Auffrischoperation,
die eine Ladung in den Kondensatoren von Speicherzellen wiederherstellt, ansprechend
auf Reihenadressensignale RA und einen Auffrischbefehl vorgenommen,
die synchron mit einer Anstiegkante eines Taktsignals zugeführt werden,
wobei die Reihenadressensignale RA den aufzufrischenden Speicherkern 5040 spezifizieren.
Eine Auffrischoperation kann entweder über den Eingabe/Ausgabe-Port
PORT-A oder den Eingabe/Ausgabe-Port PORT-B angefordert werden.
Auf diese Weise werden Auffrischoperationen durch die Einheit eines
Speicherkerns 5040 gemäß den von
der Außenseite
der Anordnung zugeführten
Adressensignalen vorgenommen.
-
121 zeigt Operationen, die vorgenommen werden,
wenn die Zyklen der Taktsignale CLKA und CLKB gleich sind, und die
Phase des Taktsignals CLKA um mehr als einen halben Zyklus der Phase des
Taktsignals CLKB voraus ist. Die Befehlssignale CMDA und CMDB und
die Adressensignale ADDA und ADDB, die dem Multiport-Speicher M
zugeführt werden,
sind gleich wie in dem Fall von 120.
-
Wenn
in diesem Beispiel ein aktiver Befehl ACT und Reihenadressensignale
RA dem Eingabe/Ausgabe-Port PORT-A zugeführt werden (121-(a)), werden ein Befehlssignal CMDB und Adressensignale
ADDB noch nicht dem Eingabe/Ausgabe-Port PORT-B zugeführt. Deshalb
wird das Freigabesignal/ENA aktiviert (121-(b)),
und der Speicherkern 5040 operiert in Bezug auf den Eingabe/Ausgabe-Port
PORT-A (121-(c)). Danach werden ein
aktiver Befehl ACT und dieselben Reihenadressensignale RA wie beim
Eingabe/Ausgabe-Port PORT-A dem Eingabe/Ausgabe-Port PORT-B zugeführt (121-(d)).
-
Die
in 118 gezeigte Steuerschaltung 5044b aktiviert
das BUSY-Signal/BSYB (121-(e))
gemäß der Aktivierung
des Erstankunftssignals/FSTA und der Aktivierung des Freigabesignals/ENA.
Ansprechend auf das BUSY-Signal/BSYB ermittelt ein Controller, wie
eine mit dem Einga be/Ausgabe-Port PORT-B verbundene CPU, dass der
dem Multiport-Speicher M zugeführte
aktive Befehl ACT ungültig
ist. Operationen danach sind gleich wie die oben beschriebenen von 120.
-
122 zeigt Operationen in dem Fall, wo die Reihenadressensignale
RA, die nahezu simultan den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden,
voneinander verschieden sind. Die Taktsignale CLKA und CLKB haben
denselben Taktzyklus, und die Phase des Taktsignals CLKA ist der
Phase des Taktsignals CLKB geringfügig voraus. Die Burst-Länge wird
vom Modusregister 12 in Bezug auf beide der Eingabe/Ausgabe-Ports
PORT-A und PORT-B gleich 4 eingestellt.
-
Wenn
die Reihenadressensignale RA verschieden sind, operieren verschiedene
Speicherkerne 5040. Der in 114 gezeigte
Komparator 5042b deaktiviert so beide Erstankunftssignale/FSTA und/FSTB.
Das heißt,
es wird keine Adressenentscheidung vorgenommen. Die Entscheidungssteuerschaltung 5044 spricht
auf den deaktivierten Zustand der Erstankunftssignale/FSTA und/FSTB
und die Aktivierung der aktiven Befehlssignale ACTA und ACTB an,
und aktiviert die Freigabesignale/ENA und/ENB (122-(a) und (b)). Als Ergebnis operiert ein relevanter
Speicherkern 5040 (122-(c))
ansprechend auf den aktiven Befehl ACT und die Reihenadressensignale
RA, die dem Eingabe/Ausgabe-Port PORT-A zugeführt werden, und ein anderer
Speicherkern 5040 operiert (122-(d))
ansprechend auf den aktiven Befehl ACT und die Reihenadressensignale
RA, die dem Eingabe/Ausgabe-Port PORT-B zugeführt werden. Die Eingabe/Ausgabe-Ports PORT-A
und PORT-B operieren nämlich
unabhängig voneinander.
Da die Reihenadressensignale SA voneinander verschieden sind, wird
weder das BUSY-Signal/BSYA noch das BUSY-Signal/BSYB aktiviert.
-
In
dieser oben beschriebenen Ausführungsform
operiert der Speicherkern 5040 in Bezug auf das erste zwischen
den Reihenadressensignalen RA, das ankommt, wenn die Eingabe/Ausgabe-Ports PORT-A
und PORT-B die beiden Reihenadressensignale RA, die denselben Speicherkern 5040 anzeigen,
synchron mit den Taktsignalen CLKA bzw. CLKB empfangen. Das heißt, der
Multiport-Speicher M eines Taktsynchronisationstyps kann so implementiert werden.
-
Die
Entscheidungsschaltung 5034 erfüllt alle an sie gestellten
Erwartungen, indem sie die Reihenadressensignale RA vergleicht,
und kann so durch eine einfache Konfiguration implementiert werden. Dementsprechend
kann die Chipgröße des Multiport-Speichers
M klein ausgebildet werden.
-
Da
die Eingabe/Ausgabe-Ports PORT-A und PORT-B die jeweiligen Taktanschlüsse CLKA
und CLKB aufweisen, kann die Frequenz der Taktsignale CLKA und CLKB
für jeden
der Eingabe/Ausgabe-Ports PORT-A und PORT-B getrennt eingestellt werden.
Das heißt,
eine Vielzahl von Controllern, die auf verschiedenen Operationsfrequenzen
operieren, kann mit dem Multiport-Speicher M verbunden werden.
-
Ferner
wird die erste zwischen den beiden Adressen, die ankommt, unter
Verwendung der Reihenadressensignale RA entschieden, die vor den
relevanten Anstiegkanten der Taktsignale CLKA und CLKB ausgeregelt
werden. Die erste, die ankommt, wird nämlich unter Verwendung der
Einrichtzeit tS von Adressensignalen identifiziert. Deshalb kann
ein Eingabe/Ausgabe-Port, der Priorität erhält, identifiziert werden, bevor
der Speicherkern 5040 einen Betrieb davon startet, wodurch
ein Hochgeschwindigkeits-Speicherbetrieb erzielt wird. Da die erste,
die ankommt, auf der Basis einer Anstiegkante des Taktsignals CLKA
(oder CLKB) mit einer früheren
Phase bestimmt wird, kann ferner die Speicherbetriebsgeschwindigkeit
weiter erhöht
werden.
-
In
der Entscheidungsschaltung 5034 vergleicht die Adressenvergleichsschaltung 5042 die Reihenadressensignale
RA, und die Entscheidungssteuerschaltung 5044 prüft eine
Adressenübereinstimmung
synchron mit den Taktsignalen CLKA und CLKB, die verwendet werden,
um die aktiven Befehle ACT zu erfassen. Da die Reihenadressensignale
RA immer zu einer vorherbestimmten Zeiteinstellung (d. h. an der
Kante eines Taktsignals) miteinander verglichen werden, ist es möglich, eine
Fehlfunktion des Speicherkerns 5040 zu verhindern, die
durch für Speicheroperationen
irrelevante Adressensignale verursacht wird.
-
123 zeigt eine zweite Ausführungsform des Multiport-Speichers
und des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt). Die gleichen Elemente wie jene der ersten Ausführungsform
werden mit denselben Bezugszahlen bezeichnet, und eine detaillierte
Beschreibung davon wird weggelassen.
-
In
dieser Ausführungsform
ist ein Speicherblock MB (der als fettgedruckter Rahmen in der Figur veranschaulicht
ist) in einem Viertel der Größe der ersten
Ausführungsform
gebildet. Das heißt,
die Anzahl von simultan aktivierten Leseverstärkern beträgt ein Viertel jener der ersten
Ausführungsform.
Außer der
Größe des Speicherblocks
MB sind die Konfigurationen gleich wie die erste Ausführungsform.
Da der Multiport-Speicher M von 123 weniger
simultan getriebene Leseverstärker
hat, wird der Energieverbrauch zur Zeit des Speicherbetriebs reduziert.
-
Diese
Ausführungsform
kann dieselben Vorteile wie die oben beschriebene erste Ausführungsform
ergeben. Zusätzlich
kann in dieser Ausführungsform
der Energieverbrauch reduziert werden.
-
124 zeigt eine dritte Ausführungsform des Multiport-Speichers
und des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt). Die gleichen Elemente wie jene der ersten Ausführungsform
werden mit denselben Bezugszahlen bezeichnet, und eine detaillierte
Beschreibung davon wird weggelassen.
-
In
dieser Ausführungsform
sind Datenregister (Puffer) 5046a und 5046b, die
temporär
jeweilige Datensignale DQA und DQB speichern, zwischen den Datenverriegelungen 5028 und
dem Speicherkern 5040 in jedem Speicherblock MB vorgesehen. Die
Datenregister 5046a und 5046b operieren in Assoziation
mit einem der beiden Eingabe/Ausgabe-Ports PORT-A und PORT-B. Außerdem ist
die Entscheidungssteuerschaltung 5048 der Entscheidungsschaltung 5034 von
der Entscheidungssteuerschaltung 5044 der ersten Ausführungsform
verschieden. Die Entscheidungssteuerschaltung 5048 gibt
nicht die BUSY-Signale/BSYA und/BSYB aus, und kein BUSY-Puffer ist
in der I/O-Schaltung 5010 vorgesehen.
Andere Konfigurationen sind nahezu gleich wie jene der ersten Ausführungsform.
In den Eingabe/Ausgabe-Ports PORT-A und PORT-B werden nämlich die
Taktsignale CLKA und CLKB, die Adressensignale ADDA und ADDB, die
Befehlssignale CMDA und CMDB, und die Datensignale DQA und DQB durch
Taktanschlüsse,
Adressenanschlüsse,
Befehlsanschlüsse
bzw. Dateneingangs/ausgangsanschlüsse transferiert. Der Speicherblock
MB enthält
den DRAM-Speicherkern 5040, und enthält ferner einen Steuerschaltungsaufbau,
Decoder und dgl., die nicht veranschaulicht sind. Speicherzellen enthalten
Kondensatoren, die eine elektrische Ladung in Übereinstimmung mit Werten von
Datensignalen speichern.
-
Dieser
Multiport-Speicher M kann Speicheroperationen in Bezug auf beide
Eingabe/Ausgabe-Ports PORT-A und PORT-B vornehmen, auch wenn die
Eingabe/Ausgabe-Ports PORT-A und PORT-B simultan eine Anforderung
für eine
Speicheroperation in Bezug auf dieselben Reihenadressensignale RA
empfangen, wie im Nachstehenden beschrieben wird. Deshalb besteht
keine Notwendigkeit, die BUSY-Signale/BSYA und/BSYB an die Außenseite
der Anordnung auszugeben wie in der ersten Ausführungsform.
-
In
jedem Eingabe/Ausgabe-Port PORT-A und PORT-B werden Intervalle,
in denen die aktiven Befehle ACT zugeführt werden, gleich mehr als
dem Doppelten der Operationsperiode des Speicherkerns 5040 eingestellt
(gemäß Zeiteinstellungsspezifikationen).
Wenn die Intervalle der aktiven Befehle ACT kleiner sind als die
oben identifizierte Periode in demselben Eingabe/Ausgabe-Port PORT-A
(oder PORT-B), wird der zugeführte
aktive Befehl ACT aufgehoben. Intervalle der aktiven Befehle ACT,
die verschiedenen Eingabe/Ausgabe-Ports zugeführt werden, sind nicht begrenzt.
-
Ein
Lesebefehl RD und ein Schreibbefehl WR werden wie in der ersten
Ausführungsform
synchron mit einer bestimmten Zeiteinstellung des Taktsignals nach
der Zeiteinstellung zugeführt,
die für
den Empfang des aktiven Befehls ACT verwendet wird. Der Speicherkern 5040 wird
automatisch nach dem Betrieb davon vorgeladen. In dieser Ausführungsform
wird beispielsweise der Zyklus tCLK der Taktsignale CLKA und CLKB
auf 10 ns eingestellt, die Burst-Länge BL auf 4, und die Datenlatenz
DL auf 4. Die Datenlatenz DL definiert die Anzahl von Taktzyklen
von der Eingabe eines Lesebefehls RD bis zur Ausgabe von Daten.
Die Burst-Länge
BL und die Datenlatenz werden in den Modusregistern 5012a und 5012b eingestellt.
-
125 zeigt Details der Entscheidungssteuerschaltung 5048.
-
Die
Entscheidungssteuerschaltung 5048 wird konfiguriert, indem
jeweils Steuerschaltungen 5048a und 5048b zu den
Steuerschaltungen 5044a und 5044b der ersten Ausführungsform
hinzugefügt werden.
Die Steuerschaltung 5048a, die dem Eingabe/Ausgabe-Port
PORT-A entspricht, empfängt
ein Rücksetzsignal
RESETA und ein Umkehrsignal RVS sowie ein Freigabesignal/ENA. Die
Steuerschaltung 5048b, die dem Eingabe/Ausgabe-Port PORT-B
entspricht, empfängt
ein Rücksetzsignal
RESETB und ein Umkehrsignal RVS sowie ein Freigabesignal/EBN0 und
ein BUSY-Signal/BSYA von der Steuerschaltung 5044b, und
gibt ein Freigabesignal/ENB aus. Die Freigabesignale/ENA0 und/ENB0
werden zur selben Zeiteinstellung generiert wie die Freigabesignale/ENA
und/ENB der ersten Ausführungsform.
-
126 zeigt Operationen der Entscheidungssteuerschaltung 5048,
die vorgenommen werden, wenn die den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführten
Reihenadressensignale miteinander übereinstimmen. In diesem Beispiel
sind die Zyklen der Taktsignale CLKA und CLKB gleich. Synchron mit
dem Taktsignal CLKA wird ein aktiver Befehl ACT dem Eingabe/Ausgabe-Port
PORT-A zugeführt.
Unmittelbar darauffolgend wird ein aktiver Befehl ACT dem Eingabe/Ausgabe-Port PORT-B synchron
mit dem Taktsignal CLKB zugeführt.
Der mit dem Eingabe/Ausgabe-Port PORT-A verbundene Controller fordert
eine Schreiboperation an, und der mit dem Eingabe/Ausgabe-Port PORT-B
verbundene Controller fordert eine Leseoperation an.
-
Operationen
der Steuerschaltungen 5044a und 5044b sind nahezu
identisch mit jenen der vorher beschriebenen ersten Ausführungsform (119). Die Steuerschaltung 5044a nimmt
das Erstankunftssignal/FSTA mit einem Niederpegel synchron mit einer
Anstiegkante des Taktverzögerungssignals
DCLKA auf, und aktiviert das BUSY-Signal/BSYB (126-(a)). Da die Steuerschaltung 5044b das
Erstankunftssignal/FSTB mit einem Hochpegel synchron mit einer Anstiegkante
des Verzögerungstaktsignals
DCLKB erfasst, wird das BUSY-Signal/BSYA nicht aktiviert (126-(b)). Die Steuerschaltung 5048a spricht
auf die Aktivierung des BUSY-Signals/BSYB und den Niederpegel des
Umkehrsignals RVS an, um das Freigabesignal /ENA zu aktivieren (126-(c)). Die Steuerschaltung 5048b spricht
auf den deaktivierten Zustand des BUSY-Signals/BSYA und den Niederpegel
des Umkehrsignals RSV an, um das Freigabesignal/ENB zu aktivieren (126-(d)).
-
Synchron
mit der nächsten
Zeiteinstellung der Taktsignale CLKA und CLKB werden ein Schreibbefehl
WR bzw. ein Lesebefehl RD zugeführt (126-(e)). Ansprechend auf den Schreibbefehl WR
und den Lesebefehl RD aktiviert die Steuerschaltung (nicht gezeigt),
die das Umkehrsignal RVS generiert, das Umkehrsignal RVS (126-(f)).
-
Die
Steuerschaltungen 5048a und 5048b sprechen auf
die Aktivierung des Umkehrsignals RVS an, um die Pegel der Freigabesignale/ENA bzw./ENB
umzuschalten (126-(g)). Dann wird zuerst
die Leseoperation in Bezug auf den Eingabe/Ausgabe-Port PORT-B vorgenommen (126-(h)). Nach der Vollendung der Leseoperation
wird das Rücksetzsignal
RESETB aktiviert, und das Umkehrsignal RVS wird deaktiviert (126-(i)). Die Steuerschaltungen 5048a und 5048b sprechen auf
die Deaktivierung des Umkehrsignals RVS an, um die Pegel der Freigabesignale/ENA
und/ENB auf ihre jeweiligen ursprünglichen Pegel zurückzuführen (126-(j)). Dann wird eine Leseoperation in Bezug auf
den Eingabe/Ausgabe-Port
PORT-A vorgenommen (126-(k)), ansprechend auf die
Aktivierung des Freigabesignals/ENA.
-
Nach
der Vollendung der Leseoperation wird das Rücksetzsignal RESETA aktiviert
(126-(l)), und das BUSY-Signal/BSYB wird deaktiviert (126-(m)). Die Steuerschaltung 5048a deaktiviert
das Freigabesignal/ENA ansprechend auf die Deaktivierung des BUSY-Signals/BSYB (126-(n)). Wenn die Reihenadressensignale RA gleich
sind, und wenn der Befehl der Erstankunft eine Schreiboperation
anfordert, gefolgt von dem Befehl der Zweitankunft, der eine Leseoperation
anfordert, wird auf diese Weise wird in dieser Ausfüh rungsform der
Speicherkern 5040 so gesteuert, dass er zuerst eine Leseoperation
vornimmt. In Speicher-LSIs wie DRAMs mit einem Multiport-Speicher
wird eine Schreiboperation durch das Treiben des Speicherkerns nach
dem Empfang zu schreibender Daten durchgeführt, und eine Leseoperation
wird durch das Treiben eines Speicherkerns zuerst und das Ausgeben
von Daten als Nächstes
vorgenommen. Wenn eine Leseoperation nach einer Schreiboperation
vorgenommen wird, werden deshalb gesamte Operationszyklen üblicherweise
langwierig. In dieser Ausführungsform
wird eine Leseoperation zuerst durchgeführt, wenn eine Schreiboperation
und eine Leseoperation miteinander konkurrieren, wodurch gesamte Operationszyklen
verkürzt
werden, und die Nutzungseffizienz des Datenbusses, der Datensignale transferiert,
verbessert wird.
-
Im
Folgenden werden Operationen des Multiport-Speichers M gemäß der dritten
Ausführungsform
beschrieben.
-
127 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B
aktive Befehle ACT und dieselben Reihenadressensignale RA empfangen.
Die Phase des Taktsignals CLKA ist der Phase des Taktsignals CLKB
geringfügig
voraus. Die Eingabe eines aktiven Befehls ACT in den Eingabe/Ausgabe-Port
PORT-A ist nämlich
geringfügig
früher
als die Eingabe eines aktiven Befehls ACT in den Eingabe/Ausgabe-Port
PORT-B.
-
In
Bezug auf den Eingabe/Ausgabe-Port PORT-A wird eine Leseoperation
READ ansprechend auf den aktiven Befehl ACT vorgenommen (127-(a)). Aus Speicherzellen gelesene Daten werden
in dem Datenregister 5046a (oder 5046b) gespeichert.
In Bezug auf den Eingabe/Ausgabe-Port PORT-B wird dann eine Leseoperation
READ ansprechend auf den aktiven Befehl ACT vorgenommen (127-(b)). Die Leseoperation READB in Bezug auf
den Eingabe/Ausgabe-Port PORT-B wird nach der Vollendung der Leseoperation
READA unter der Steuerung der Entscheidungsschaltung 5034 vorgenommen
(127-(c)). Die aus den Speicherzellen durch die
Leseoperation READB gelesenen Daten werden in dem Datenregister 5046b (oder 5046a)
gespeichert (127-(d)). Auch wenn der aktive
Befehl ACT und dieselben Reihenadressensignale RA im Wesentlichen
simultan den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden,
wird auf diese Weise eine Leseoperation (oder eine Schreiboperation)
aufeinanderfolgend in Bezug auf jeden der Eingabe/Ausgabe-Ports PORT-A
und PORT-B vorgenommen. Der Speicherkern 5040 nimmt automatisch
eine Vorladeoperation nach der Vollendung jeder der Leseoperationen READA
und READB vor, wodurch ein Speicherzyklus vollendet wird.
-
Die
abgefragten Daten, die in dem Register 5046a gespeichert
werden, das dem Eingabe/Ausgabe-Port PORT-A entspricht, werden aufeinanderfolgend
als Ausgabedaten Q0–Q3
nach der Eingabe des Lesebefehls RD synchron mit dem in der Figur gezeigten
fünften
bis achten Taktsignal CLKA ausgegeben (127-(e)).
Die abgefragten Daten, die in dem Register 5046 gespeichert
werden, das dem Eingabe/Ausgabe-Port PORT-B entspricht, werden aufeinanderfolgend
als Ausgabedaten Q0–Q3
nach der Eingabe des Lesebefehls RD synchron mit dem in der Figur
gezeigten fünften
bis achten Taktsignal CLKB ausgegeben (127-(f)).
-
Beide
der Eingabe/Ausgabe-Ports PORT-A und PORT-B empfangen den nächsten aktiven
Befehl ACT 4 Takte nach dem ersten aktiven Befehl ACT,
und nehmen ferner Leseoperationen READA bzw. READB vor (127-(g) und (h)). Wenn die aktiven Befehle ACT
einmal alle vier Taktzyklen zugeführt werden, können abgefragte
Daten kontinuierlich lückenlos
ausgegeben werden (d. h. lückenloses
Lesen). Außerdem
werden Direktzugriffsoperationen erzielt, indem aktive Befehle ACT
einmal alle vier Taktzyklen empfangen werden.
-
128 zeigt die Weise, in der eine Leseoperation vorgenommen
wird, wenn aktive Befehle ACT und voneinander verschiedene Reihenadressensignale
RA den Eingabe/Ausgabe-Ports
PORT-A und PORT-B zugeführt
werden.
-
In
Bezug auf den Eingabe/Ausgabe-Port PORT-A, der einen aktiven Befehl
ACT und Reihenadressensignale RA zuerst empfangen hat, wird eine Leseoperation
READA ansprechend auf den aktiven Befehl ACT vorgenommen (128-(a)). Aus Speicherzellen gelesene Daten werden
in dem Datenregister 5046a gespeichert (128-(b)). In Bezug auf den Eingabe/Ausgabe-Port
PORT-B wird dann eine Leseoperation READB, die auf einen anderen
Speicherkern 5040 gerichtet ist, der von dem einen für die Leseoperation
READA verschieden ist, ansprechend auf den aktiven Befehl ACT vorgenommen (128-(c)). Die Leseoperation READA und die Leseoperation
READB werden nämlich
unabhängig voneinander
vorgenommen. Aus Speicherzellen durch die Leseoperation READB gelesene
Daten werden in dem Datenregister 5046b gespeichert (128-(d)).
-
Die
in dem Register 5046a gespeicherten abgefragten Daten werden
aufeinanderfolgend als Ausgabedaten Q0–Q3 nach der Eingabe des Lesebefehls
RD synchron mit dem in der Figur gezeigten fünften bis achten Taktsignal
CLKA ausgegeben (128-(e)). Die abgefragten Daten,
die in dem Register 5046 gespeichert werden, das dem Eingabe/Ausgabe-Port
PORT-B entspricht, werden aufeinanderfolgend als Ausgabedaten Q0–Q3 nach
der Eingabe des Lesebefehls RD synchron mit dem in der Figur gezeigten
fünften
bis achten Taktsignal CLKB ausgegeben (128-(f)).
-
Beide
der Eingabe/Ausgabe-Ports PORT-A und PORT-B empfangen den nächsten aktiven
Befehl ACT 4 Takte nach dem ersten aktiven Befehl ACT,
und nehmen ferner Leseoperationen READA bzw. READB vor (128-(g) und (h)).
-
129 zeigt die Weise, in der eine Schreiboperation vorgenommen
wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B aktive Befehle
ACT und dieselben Reihenadressensignale RA empfangen.
-
In
den Eingabe/Ausgabe-Ports PORT-A und PORT-B werden ein Schreibbefehl
WR, Spaltenadressensignale CA und die ersten Schreibdaten Q0 und
Q0 zugeführt
(129-(a) und (b)), synchron mit einer Anstiegkante
der jeweiligen Taktsignale CLKA und CLKB, welche als Nächstes der
Anstiegkante folgen, die zum Empfangen des aktiven Befehls ACT verwendet
wird. Danach werden Schreibdaten Q1–Q3 und Q0–Q3 zugeführt (129-(c)
und (d)), synchron mit den jeweiligen Taktsignalen CLKA und CLKB.
Die Schreibdaten Q0–Q3
und Q0–Q3
werden in den getrennten Datenregistern 5046a bzw. 5046b gespeichert
(129-(e) und (f)). In Bezug auf den Eingabe/Ausgabe-Port
PORT-A, der den aktiven Befehl ACT und die Reihenadressensignale
RA zuerst empfangen hat, wird eine Schreiboperation WRITEA synchron
mit einer bestimmten Zeiteinstellung des Taktsignals CLKA vorgenommen,
das die Schreibdaten Q3 erfasst (129-(g)).
Eine Schreiboperation WRITEB, die dem Eingabe/Ausgabe-Port PORT-B entspricht,
wird nach der Vollendung der Schreiboperation WRITEA vorgenommen
(129-(h)). Durch die Schreiboperationen WRITEA
und WRITEB werden die in den jeweiligen Datenregistern 5046a und 5046b gespeicherten
Schreibdaten Q0–Q3
und Q0–Q3
in Speicherzellen geschrieben, die den Spaltenadressensignalen CA
entsprechen, wodurch die Schreiboperationen vollendet werden.
-
In
den Schreiboperationen wird auch ein Satz von Schreibdaten einmal
alle vier Taktzyklen zugeführt,
so dass die Schreibdaten kontinuierlich ohne jede Lücke eingegeben
werden können
(d. h. lückenloses
Schreiben).
-
130 zeigt einen Fall, in dem eine Schreiboperation
und eine Leseoperation aufeinanderfolgend in Bezug auf den Eingabe/Ausgabe-Port PORT-A
vorgenommen werden, und eine Schreiboperation, die auf dieselben
Reihenadressensignale RA gerichtet ist wie jene der Schreiboperation
des Eingabe/Ausgabe-Ports PORT-A, und eine Schreiboperation, die
auf dieselben Reihenadressensignale RA gerichtet ist wie jene der
Leseoperation des Eingabe/Ausgabe-Ports PORT-A, werden konsekutiv
in Bezug auf den Eingabe/Ausgabe-Port PORT-B vorgenommen. Die Zeiteinstellung
der ersten Schreiboperation ist gleich wie jene von 127, und eine Beschreibung davon wird weggelassen.
-
In
dem Eingabe/Ausgabe-Port PORT-B wird ein aktiver Befehl ACT, welcher
der zweiten Schreiboperation entspricht, zur selben Zeiteinstellung
wie 127 zugeführt (130-(a)).
Da kein Befehlssignal CMDA dem Eingabe/Ausgabe-Port PORT-A zugeführt wird,
wird eine Schreiboperation WRITEB sofort nach der Erfassung von
Schreibdaten Q0–Q3 vorgenommen
(130-(b)).
-
In
dem Eingabe/Ausgabe-Port PORT-A wird ein nächster aktiver Befehl ACT synchron
mit dem in der Figur gezeigten 7. Taktsignal CLKA zugeführt (130-(c)). Obwohl nicht veranschaulicht, wird das
Freigabesignal/ENB in Bezug auf den Eingabe/Ausgabe-Port PORT-B
in diesem bestimmten Moment aktiviert. Als Ergebnis wird eine Leseoperation READA
nach der Vollendung der Schreiboperation WRITEB vorgenommen (130-(d)). Da der Multiport-Speicher M die Schreiboperation
WRITEB und die Leseoperation READA in der Reihenfolge durchführt, in
der die jeweiligen Befehle empfangen werden, besteht keine Chance,
dass Daten von Speicherzellen gelesen werden, bevor die Schreiboperation
vollendet ist.
-
Da
der Eingabe/Ausgabe-Port PORT-A als abgefragte Daten die Daten ausgeben
kann, die in dem Datenregister 5046b gespeichert werden,
das dem Eingabe/Ausgabe-Port PORT-B entspricht, ist es zusätzlich möglich, die
Leseoperation READA des Eingabe/Ausgabe-Ports PORT-A vor der Schreiboperation
WRITEB des Eingabe/Ausgabe-Ports PORT-B vorzunehmen.
-
131 zeigt einen Fall, in dem eine Schreiboperation
und eine Leseoperation aufeinanderfolgend in Bezug auf den Eingabe/Ausgabe-Port PORT-A
vorgenommen werden, und eine Leseoperation, die auf dieselben Reihenadressensignale
RA gerichtet ist wie jene der Schreiboperation des Eingabe/Ausgabe-Ports
PORT-A, und eine Schreiboperation, die auf dieselben Reihenadressensignale
RA gerichtet ist wie jene der Leseoperation des Eingabe/Ausgabe-Ports
PORT-A, werden konsekutiv in Bezug auf den Eingabe/Ausgabe-Port
PORT-B vorgenommen. Die Zeiteinstellung der ersten Schreiboperation
für den
Eingabe/Ausgabe-Port PORT-A und die Zeiteinstellung der ersten Leseoperation
für den Eingabe/Ausgabe-Port
PORT-B sind gleich wie die Schreiboperation von 129 bzw. die Leseoperation von 128.
-
In
dem Eingabe/Ausgabe-Port PORT-A werden ein aktiver Befehl ACT und
ein Lesebefehl RD synchron mit dem in der Figur gezeigten 7. und
8. Taktsignal CLKA zugeführt
(131-(a)). Da in diesem bestimmten Moment kein
aktiver Befehl ACT dem Eingabe/Ausgabe-Port PORT-B zugeführt wird, wird
eine Leseoperation READA in Bezug auf den Eingabe/Ausgabe-Port PORT-A
vorgenommen (131-(b)).
-
Als
Nächstes
werden in dem Eingabe/Ausgabe-Port PORT-B ein aktiver Befehl ACT
und ein Schreibbefehl WR synchron mit dem in der Figur gezeigten
8. und 9. Taktsignal CLKB zugeführt (131-(c)). Nach dem Empfang der Daten Q0–Q3 wird
eine Schreiboperation (nicht gezeigt) in Bezug auf den Eingabe/Ausgabe-Port
PORT-B vorgenommen.
-
132 zeigt Operationen, die vorgenommen werden,
wenn die den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale
RA miteinander in dem Fall übereinstimmen, dass
die Taktsignale CLKA und CLKB ver schiedene Taktzyklen haben. In
diesem Beispiel ist der Zyklus des Taktsignals CLKB zweimal so lang
wie der Zyklus des Taktsignals CLKA.
-
In
dem Eingabe/Ausgabe-Port PORT-A wird ein Satz eines aktiven Befehls
ACT und eines Lesebefehls RD einmal alle vier Taktzyklen zugeführt, und Leseoperationen
werden auf die gleiche Weise wie in 127 vorgenommen.
Auch in dem Eingabe/Ausgabe-Port PORT-B wird ein Satz eines aktiven
Befehls ACT und eines Lesebefehls RD einmal alle vier Taktzyklen
zugeführt.
Die Eingabe des ersten aktiven Befehls ACT in den Eingabe/Ausgabe-Port
PORT-B ist später
als die Eingabe des ersten aktiven Befehls ACT in den Eingabe/Ausgabe-Port PORT-A (132-(a)). Deshalb wird eine Leseoperation READB
nach der Leseoperation READA wie in dem Fall von 127 vorgenommen (132-(b)).
Eine nächste
Leseoperation READB, die auf den folgenden aktiven Befehl ACT des
Eingabe/Ausgabe-Ports PORT-B anspricht, wird zwischen zwei Leseoperationen
READA durchgeführt
(132-(c)).
-
Diese
Ausführungsform
kann dieselben Vorteile wie die vorher beschriebene erste Ausführungsform
vorsehen. Zusätzlich
verwendet diese Ausführungsform
das Intervall (gemäß Zeiteinstellungsspezifikationen)
aktiver Befehle ACT, das mehr als das Doppelte des Operationszyklus
des Speicherkerns 5040 in jedem der Eingabe/Ausgabe-Ports
PORT-A und PORT-B beträgt.
Auch wenn die den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführten Reihenadressensignale
RA gleich sind, können
deshalb eine Leseoperation und eine Schreiboperation in Bezug auf
jeden Port sicher vorgenommen werden. Demgemäß muss der Controller, der
den Multiport-Speicher M steuert, den BUSY-Zustand des Multiport-Speichers
M nicht detektieren. So wird die Steuerung des Controllers (hinsichtlich
Hardware und Software) vereinfacht.
-
133 zeigt eine vierte Ausführungsform des Multi- Port-Speichers und
des Verfahrens zum Steuern des Multiport-Speichers gemäß der vorliegenden Erfindung
(fünfter
Aspekt). Die gleichen Elemente wie jene der ersten und dritten Ausführungsform
werden mit denselben Bezugszahlen bezeichnet, und eine Beschreibung
davon wird weggelassen.
-
In
dieser Ausführungsform
sind Seitenpuffer 5050a und 5050b anstelle der
Datenregister 5046a und 5046b der oben beschriebenen
dritten Ausführungsform
vorgesehen. Die Seitenpuffer 50a und 50b operieren
in Assoziation mit zumindest einem vom Eingabe/Ausgabe-Port PORT-A
und PORT-B. Andere Konfigurationen sind nahezu gleich wie jene der dritten
Ausführungsform.
-
Die
Seitenpuffer 5050a und 5050b enthalten jeweils
eine Verriegelung, die darin Daten aller Speicherzellen in dem Speicherkern 5040 speichert. Beim
Start einer Leseoperation und einer Schreiboperation werden in den
Speicherzellen eines ausgewählten
Speicherkerns 5040 gespeicherte Daten in den Seitenpuffer 50a (oder 50b)
gelesen. In einer Leseoperation werden die in dem Seitenpuffer 5050a verriegelten
Daten als Datensignale ansprechend auf Spaltenadressensignale CA
ausgegeben. In einer Schreiboperation werden Datensignale zuerst
in den Seitenpuffer 5050a gemäß den Spaltenadressensignalen
CA geschrieben. Danach werden die Daten des Seitenpuffers 5050a in
Speicherzellen zur Zeit der Vollendung der Schreiboperation geschrieben.
-
Im
Folgenden werden Operationen des Multiport-Speichers M der vierten
Ausführungsform
beschrieben.
-
134 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn die Eingabe/Ausgabe-Ports PORT-A und PORT-B
aktive Befehle ACT und dieselben Reihenadressensignale RA empfangen.
Die Phase des Taktsignals CLKA ist der Phase des Taktsignals CLKB
geringfügig
voraus. Ein in den Eingabe/Ausgabe-Port PORT-A eingegebener aktiver
Befehl ACT ist nämlich
geringfügig
früher
als der in den Eingabe/Ausgabe-Port PORT-B eingegebene aktive Befehl
ACT.
-
In
dem Eingabe/Ausgabe-Port PORT-A wird eine Leseoperation READA ansprechend
auf den aktiven Befehl ACT vorgenommen (134-(a)).
Daten werden aus allen Speicherzellen eines Speicherkerns 5040 gelesen,
der durch die Leseoperation READA ausgewählt wird, und die abgefragten
Daten werden in einem der Seitenpuffer 5050a (oder 5050b)
gespeichert (134-(b)). In dem Eingabe/Ausgabe-Port
PORT-B sind hingegen die Reihenadressensignale RA gleich wie die
dem Eingabe/Ausgabe-Port PORT-A zugeführten, so dass keine Leseoperation
durchgeführt
wird, die auf den aktiven Befehl ACT anspricht.
-
In
dem Eingabe/Ausgabe-Port PORT-A wird ein Lesebefehl RD synchron
mit dem in der Figur gezeigten 1. und 5. Taktsignal CLKA zugeführt (134-(c) und (d)). Die in dem Seitenpuffer 5050a gespeicherten
Daten werden aufeinanderfolgend als Ausgabedaten Q0–Q7 synchron
mit dem 5. bis 12. Taktsignal CLKA nach dem Empfang der jeweiligen Lesebefehle
RD ausgegeben (134-(e)). Das heißt, es wird
eine Seitenleseoperation vorgenommen.
-
Ebenso
werden in dem Eingabe/Ausgabe-Port PORT-B Lesebefehle RD synchron
mit dem in der Figur gezeigten 1. und 5. Taktsignal CLKB zugeführt (134-(f) und (g)). Die in dem Seitenpuffer 5050a gespeicherten
Daten werden aufeinanderfolgend als Ausgabedaten Q0–Q7 synchron
mit dem 5. bis 12. Taktsignal CLKB nach dem Empfang der jeweiligen
Lesebefehle RD ausgegeben (134-(h)). Wenn
die Reihenadressensignale RA gleich sind, wird auf diese Weise ein
Seitenpuffer 5050a (oder 5050b) von den Eingabe/Ausgabe-Ports
PORT-A und PORT-B gemeinsam genutzt.
-
Beide
der Eingabe/Ausgabe-Ports PORT-A und PORT-B empfangen einen nächsten aktiven
Befehl ACT 8 Taktzyklen nach dem ersten aktiven Befehl
ACT (134-(i) und (j)). Da die Reihenadressensignale
RA gleich sind, wird nur eine Leseoperation READA vorgenommen (134-(k)). Es wird keine Leseoperation READB in
Bezug auf den Eingabe/Ausgabe-Port PORT-B vorgenommen. Gelesene Daten
können
kontinuierlich ohne jede Lücke
ausgegeben werden, indem Lesebefehle RD einmal alle vier Taktzyklen
zugeführt
werden (d. h. lückenloses Lesen).
-
135 zeigt die Weise, in der eine Leseoperation
vorgenommen wird, wenn aktive Befehle ACT und verschiedene Reihenadressensignale
RA den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt werden.
Die Zeiteinstellung von Leseoperationen ansprechend auf den Eingabe/Ausgabe-Port
PORT-A ist gleich wie jene von 134.
-
In
dem Eingabe/Ausgabe-Port PORT-A, der einen aktiven Befehl ACT und
Reihenadressensignale RA zuerst empfängt, wird eine Leseoperation
READA ansprechend auf den aktiven Befehl ACT vorgenommen (135-(a)). Aus allen Speicherzellen des Speicherkerns 5040 gelesene
Daten werden in dem Seitenpuffer 5050a gespeichert (134-(b)).
-
In
dem Eingabe/Ausgabe-Port PORT-B wird eine Leseoperation READB ansprechend
auf einen aktiven Befehl ACT in Bezug auf einen Speicherkern 5040 vorgenommen,
der von jenem der Leseoperation READA verschieden ist (135-(c)). Aus allen Speicherzellen des Speicherkerns 5040 durch
die Leseoperation READB gelesene Daten werden in dem Seitenpuffer 5050b gespeichert
(135-(d)). Danach wird eine Leseoperation auf die
gleiche Weise vorgenommen, wie in Verbindung mit 134 beschrieben wurde. Wenn die Reihenadressensignale RA
voneinander verschieden sind, werden auf diese Weise die Leseoperation
READA und die Leseoperation READB unabhängig vorgenommen, und die abgefragten
Daten werden in den getrennten Seitenpuffern 5050a bzw. 5050b gespeichert.
-
136 zeigt einen Fall, in dem aktive Befehle ACT und
dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und Schreiboperationen vorgenommen werden, gefolgt davon,
dass aktive Befehle ACT und verschiedene Reihenadressensignale RA zugeführt werden,
was dazu führt,
dass Schreiboperationen vorgenommen werden.
-
In
den Eingabe/Ausgabe-Ports PORT-A und PORT-B werden aktive Befehle
ACT und dieselben Reihenadressensignale RA synchron mit jeweiligen Anstiegkanten
der Taktsignale CLKA und CLKB zugeführt. Die in 133 gezeigte Entscheidungsschaltung 5034 ermittelt,
dass der Eingabe/Ausgabe-Port PORT-A den aktiven Befehl ACT zuerst
empfängt,
und nimmt eine Leseoperation READA vor (136-(a)),
um Daten von Speicherzellen zum Seitenpuffer 5050a (oder 5050b)
zu transferieren.
-
Daten
werden aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der von der Leseoperation READA ausgewählt wird, und werden in dem Seitenpuffer 5050a (oder 5050b)
gespeichert (136-(b)). In dem Eingabe/Ausgabe-Port PORT-B
wird hingegen keine Leseoperation ansprechend auf den aktiven Befehl
ACT vorgenommen, da die Reihenadressensignale RA gleich sind wie
die dem Eingabe/Ausgabe-Port PORT-A zugeführten.
-
Danach
werden in dem Eingabe/Ausgabe-Port PORT-A Schreibbefehle WR und
Spaltenadressensignale CA synchron mit dem in der Figur gezeigten
1. und 5. Taktsignal CLKA zugeführt (136-(c) und (d)). Schreibdaten Q0–Q7, die
aufeinanderfolgend synchron mit dem Taktsignal CLKA zugeführt werden,
werden in den Seitenpuffer 5050a geschrieben (135-(e)). Das heißt, eine Seitenschreiboperation
wird vorgenommen.
-
In
dem Eingabe/Ausgabe-Port PORT-B werden Schreibbefehle WR und Spaltenadressensignale CA
synchron mit dem in der Figur gezeigten 1. und 5. Taktsignal CLKB
zugeführt
(136-(f) und (g)). Schreibdaten Q0–Q7, die
nacheinander synchron mit dem Taktsignal CLKB zugeführt werden,
werden in den gemeinsamen Seitenpuffer 5050a geschrieben (136-(h)). Wenn die Reihenadressensignale RA gleich
sind, wird auf diese Weise derselbe Seitenpuffer 5050a (oder 50b)
von den Eingabe/Ausgabe-Ports PORT-A und PORT-B in der Schreiboperation
gemeinsam genutzt.
-
In
dem Eingabe/Ausgabe-Port PORT-A, der den aktiven Befehl ACT zuerst
empfangen hat, wird eine Schreiboperation WRITEA synchron mit einer bestimmten
Zeiteinstellung des Taktsignals CLKA vorgenommen, zu der die Schreibdaten
Q7 erfasst werden (136-(i)). Eine Schreiboperation
WRITEB, die dem Eingabe/Ausgabe-Port PORT-B entspricht, wird nach
der Vollendung der Schreiboperation WRITEA vorgenommen (136-(j)).
-
Danach
werden in den Eingabe/Ausgabe-Ports PORT-A und PORT-B aktive Befehle
ACT und voneinander verschiedene Reihenadressensignale RA synchron
mit den jeweiligen Anstiegkanten der Taktsignale CLKA und CLKB zugeführt. Die
in 133 gezeigte Entscheidungsschaltung 5034 ermittelt,
dass der aktive Befehl ACT zuerst dem Eingabe/Ausgabe-Port PORT-A
zugeführt
wird, und nimmt Leseoperationen READA und READB eine nach der anderen
vor (136-(k) und (l)). Daten werden
aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der durch die Leseoperation READA ausgewählt wird, und werden in dem
Seitenpuffer 5050a (oder 5050b) gespeichert (136-(m)). Ferner werden Daten aus allen Speicherzellen
des Speicherkerns 5040 gelesen, der durch die Leseoperation READB
ausgewählt
wird, und werden in einem anderen Seitenpuffer 5050b (oder 5050a)
gespeichert (136-(n)).
-
In
dem Eingabe/Ausgabe-Port PORT-A werden Lesebefehle RD und Spaltenadressensignale CA
synchron mit dem in der Figur gezeigten 13. und 17. Taktsignal CLKA
zugeführt
(136-(o) und (p)). Schreibdaten Q0–Q7, die
nacheinander synchron mit dem Taktsignal CLKA zugeführt werden,
werden in dem Seitenpuffer 5050a gespeichert (136-(q)).
-
Ähnlich werden
in dem Eingabe/Ausgabe-Port PORT-B Schreibbefehle WR und Spaltenadressensignale
CA synchron mit dem in der Figur veranschaulichten 13. und 17. Taktsignal
CLKB zugeführt
(136-(r) und (s)). Schreibdaten Q0–Q7, die
nacheinander synchron mit dem Taktsignal CLKB zugeführt werden,
werden in den Seitenpuffer 5048b geschrieben (136-(t)). Auf diese Weise werden die Seitenpuffer 5050a und 5050b verwendet,
wenn die Reihenadressensignale RA verschieden sind.
-
In
dem Eingabe/Ausgabe-Port PORT-A, der den aktiven Befehl ACT und
die Reihenadressensignale RA zuerst empfangen hat, wird eine Schreiboperation
WRITEA synchron mit einer bestimmten Zeiteinstellung des Taktsignals
CLKA vorgenommen, zu der die Schreibdaten Q7 erfasst werden (136-(u)). Eine Schreiboperation WRITEB, die dem
Eingabe/Ausgabe-Port PORT-B entspricht, wird nach der Vollendung
der Schreiboperation WRITEA vorgenommen (136-(v)).
Durch die Schreiboperationen WRITEA und WRITEB werden die in den Seitenpuffern 5050a bzw. 5050b gespeicherten Schreibdaten
Q0–Q7
in die Speicherzellen geschrieben, die den Spaltenadressensignalen
CA entsprechen, wodurch die Schreiboperation vollendet wird.
-
137 zeigt einen Fall, in dem aktive Befehle ACT
und dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und Schreiboperationen werden vorgenommen, gefolgt davon,
dass aktive Befehle ACT und dieselben Reihenadressensignale RA zugeführt werden,
was dazu führt,
dass eine Leseoperation in dem Ein gabe/Ausgabe-Port PORT-A vorgenommen
wird, und eine Schreiboperation in dem Eingabe/Ausgabe-Port PORT-B
vorgenommen wird. Die Zeiteinstellung der ersten Schreiboperation
ist gleich wie jene von 137,
und eine Beschreibung davon wird weggelassen.
-
In
den Eingabe/Ausgabe-Ports PORT-A und PORT-B werden aktive Befehle
ACT und dieselben Reihenadressensignale RA synchron mit den jeweiligen
Anstiegkanten der in der Figur gezeigten 12. Taktsignale CLKA und
CLKB zugeführt
(137-(a) und (b)). Die in 133 gezeigte
Entscheidungsschaltung 5034 ermittelt, dass der aktive
Befehl ACT dem Eingabe/Ausgabe-Port PORT-A zuerst zugeführt wird,
und nimmt eine Leseoperation READA vor (137-(c)).
Daten werden aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der von der Leseoperation READA ausgewählt wird, und werden in dem
Seitenpuffer 5050a (oder 5050b) gespeichert (137-(d)). In dem Eingabe/Ausgabe-Port PORT-B wird
keine Schreiboperation ansprechend auf den aktiven Befehl ACT vorgenommen,
da die Reihenadressensignale RA gleich sind wie die dem Eingabe/Ausgabe-Port
PORT-A zugeführten
Signale.
-
Danach
werden in dem Eingabe/Ausgabe-Port PORT-A Lesebefehle RD und Spaltenadressensignale
CA synchron mit dem in der Figur gezeigten 13. und 17. Taktsignal
CLKA zugeführt (137-(e) und (f)). Die in dem Seitenpuffer 5050a gespeicherten
Daten werden aufeinanderfolgend als Ausgabedaten Q0–Q7 synchron
mit dem 17. bis 24. Taktsignal CLKA ausgegeben, wie in der Figur
gezeigt, nachdem entsprechende Lesebefehle RD empfangen werden (137-(g)).
-
In
dem Eingabe/Ausgabe-Port PORT-B werden Schreibbefehle WR synchron
mit dem 13. und 17. Taktsignal CLKB zugeführt, wie in der Figur gezeigt
(137-(h) und (i)). Schreibdaten Q0–Q7, die aufeinanderfolgend
synchron mit dem Taktsignal CLKB zugeführt werden, werden in dem gemeinsam genutzten
Seitenpuffer 5050a gespeichert (137-(j)).
-
In
dem Eingabe/Ausgabe-Port PORT-B wird danach eine Schreiboperation
WRITEB synchron mit einer bestimmten Zeiteinstellung des Taktsignals CLKB
vorgenommen, zu der die Schreibdaten Q7 erfasst werden (137-(k)).
-
138 zeigt einen Fall, in dem aktive Befehle ACT
und dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A und
PORT-B zugeführt
werden, und eine Schreiboperation und eine Leseoperation vorgenommen
werden, gefolgt davon, dass aktive Befehle ACT und verschiedene Reihenadressensignale
RA zugeführt
werden, was dazu führt,
dass eine Schreiboperation und eine Leseoperation vorgenommen werden.
-
In
den Eingabe/Ausgabe-Ports PORT-A und PORT-B werden aktive Befehle
ACT und dieselben Reihenadressensignale RA synchron mit den Anstiegkanten
von Taktsignalen CLKA und CLKB zugeführt (138-(a)
und (b)). Die Entscheidungsschaltung 5034 bestimmt, dass
ein aktiver Befehl ACT dem Eingabe/Ausgabe-Port PORT-A zuerst zugeführt wird,
und nimmt eine Leseoperation READA vor (138-(c)).
Daten werden aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der von der Leseoperation READA ausgewählt wird, und die gelesenen
Daten werden in dem Seitenpuffer 5050a (oder 5050b)
gespeichert (138-(d)). In dem Eingabe/Ausgabe-Port
PORT-B sind hingegen die Reihenadressensignale RA gleich wie die
dem Eingabe/Ausgabe-Port PORT-A zugeführten, so dass keine Leseoperation
ansprechend auf den aktiven Befehl ACT vorgenommen wird.
-
Danach
werden in dem Eingabe/Ausgabe-Port PORT-A Schreibbefehle WR synchron
mit dem 1. und 5. Taktsignal CLKA zugeführt (138-(e)
und (f)). Schreibdaten Q0 bis Q7, die aufeinanderfolgend synchron
mit dem Taktsignal CLKA zugeführt
werden, werden in dem Seitenpuffer 5050a gespeichert (138-(g)).
-
In
dem Eingabe/Ausgabe-Port PORT-B werden Lesebefehle RD synchron mit
dem 1. und 5. Taktsignal CLKB zugeführt (138-(h)
und (i)). Die in dem Seitenpuffer 5050a gespeicherten Daten
werden als Ausgabedaten Q0–Q7
nacheinander synchron mit der 5. bis 12. Zeiteinstellung des Taktsignals
CLKB nach dem Empfang der jeweiligen Lesebefehle RD ausgegeben (138-(j)). In dem Eingabe/Ausgabe-Port PORT-A wird
eine Schreiboperation WRITEA synchron mit einer bestimmten Zeiteinstellung
des Taktsignals CLKA vorgenommen, zu der die Schreibdaten Q7 erfasst
werden (138-(k)).
-
Dann
werden in den Eingabe/Ausgabe-Ports PORT-A und PORT-B aktive Befehle
ACT und voneinander verschiedene Reihenadressensignale RA synchron
mit den Anstiegkanten der Taktsignale CLKA und CLKB zugeführt (138-(l) und (m)). Die Entscheidungsschaltung 5034 ermittelt,
dass der aktive Befehl ACT dem Eingabe/Ausgabe-Port PORT-A zuerst
zugeführt
wird, und nimmt aufeinanderfolgend Leseoperationen READA und READB
vor (138-(n) und (o)). Daten werden
aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der von der Leseoperation READA ausgewählt wird, und die gelesenen
Daten werden in einem der Seitenpuffer 5050a (oder 5050b)
gespeichert (138-(p)). Ferner werden Daten
aus allen Speicherzellen des Speicherkerns 5040 gelesen,
der von der Leseoperation READB ausgewählt wird, und die gelesenen
Daten werden in dem anderen der Seitenpuffer 5050b (oder 5050a)
gespeichert (138-(q)).
-
In
dem Eingabe/Ausgabe-Port PORT-A werden Schreibbefehle WR synchron
mit der 13. und 17. Zeiteinstellung des Taktsignals CLKA zugeführt (138-(r) und (s)). Schreibdaten Q0–Q7, die nacheinander
synchron mit dem Taktsignal CLKA zugeführt werden, werden in den Seitenpuffer 5050a geschrieben
(138-(t)).
-
Ähnlich werden
in dem Eingabe/Ausgabe-Port PORT-B Schreibbefehle WR synchron mit der
13. und 17. Zeiteinstellung des Taktsignals CLKB zugeführt (138-(u) und (v)). Schreibdaten Q0–Q7, die
nacheinander synchron mit dem Taktsignal CLKB zugeführt werden,
werden in den Seitenpuffer 5050b geschrieben (138-(w)).
-
Diese
Ausführungsform
kann dieselben Vorteile wie die vorher beschriebene dritte Ausführungsform
vorsehen. In dieser Ausführungsform
sind ferner die Seitenpuffer 5050a und 5050b,
die als temporäre
Datenspeicher für
alle Speicherzellen eines Speicherkerns 5040 dienen, zwischen
der Datenverriegelung 28 und dem Speicherkern 5040 vorgesehen.
Dies ermöglicht,
dass der Multiport-Speicher M eine Seitenleseoperation und eine
Seitenschreiboperation vornimmt.
-
Wenn
dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A
und PORT-B zugeführt
werden, wird ein und derselbe Seitenpuffer 5050a gemeinsam
genutzt. Dies verhindert, dass in die Speicherzellen zu schreibende
Daten durch Überschreiboperationen
zerstört
werden.
-
Wenn
dieselben Reihenadressensignale RA den Eingabe/Ausgabe-Ports PORT-A
und PORT-B zugeführt
werden, wird eine Leseoperation nur ansprechend auf einen der Ports
vorgenommen. Deshalb kann der Energieverbrauch während des Betriebs verglichen
mit einem Fall reduziert werden, in dem jeweilige Leseoperationen
in Bezug auf beide Ports vorgenommen werden. Durch die Verwendung der
Seitenpuffer 5050a und 5050b entfällt die
Notwendigkeit, dass der den Multiport-Speicher M steuernde Controller
eine BUSY-Zustand des Multiport-Speichers M detektiert, auch wenn
eine Seitenoperation vorgenommen wird. Dementsprechend wird die
Steuerung (hinsichtlich Hardware und Software) des Controllers oder
dgl. einfacher.
-
139 zeigt Operationen des Multiport-Speichers
M gemäß einer
fünften
Ausführungsform
des Multiport-Speichers und des Verfahrens zum Steuern des Multiport-Speichers
der vorliegenden Erfindung. Die gleichen Elemente wie jene der vierten
Ausführungsform
werden mit denselben Bezugszahlen bezeichnet, und eine detaillierte
Beschreibung davon wird weggelassen.
-
Diese
Ausführungsform
wird mit einem Lesebefehl RD und einem Schreibbefehl WR, beide für gewöhnliche
Burst-Operationen, und einem Lesebefehl PRD und einem Schreibbefehl
PWR, beide für Seitenoperationen,
versehen. Die Schaltungskonfiguration des Multiport-Speichers M
ist im Wesentlichen gleich wie jene der vierten Ausführungsform.
-
In 139 werden aktive Befehle ACT und dieselben Reihenadressensignale
RA den Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt (139-(a) und (b)). Synchron mit dem nächsten Zyklus
der Taktsignale CLKA und CLKB werden Lesebefehle PRD zugeführt (139-(c) und (d)), und eine Seitenleseoperation
wird vorgenommen (139(e)). Zeiteinstellungen
von Seitenleseoperationen sind gleich wie jene von 134, und eine detaillierte Beschreibung davon
wird weggelassen.
-
Danach
werden aktive Befehle und dieselben Reihenadressensignale RA den
Eingabe/Ausgabe-Ports PORT-A und PORT-B zugeführt (139-(f)
und (g)). Synchron mit dem nächsten Zyklus
der Taktsignale CLKA und CLKB werden Lesebefehle RD zugeführt (139-(h) und (i)). Leseoperationen READA und READB
werden aufeinanderfolgend in Bezug auf die jeweiligen Eingabe/Ausgabe-Ports
PORT-A und PORT-B vorgenommen (139-(j)
und (k)). Das heißt,
gewöhnliche
Leseoperationen (d. h. Burst-Leseoperationen) werden vorgenommen.
-
Diese
Ausführungsform
kann dieselben Vorteile wie die vorher beschriebene vierte Ausführungsform
vorsehen. Da diese Ausführungsform
Befehle PRD und PWR für
Seitenoperationen sowie Befehle RD und WR für gewöhnliche Operationen vorbereitet,
kann der Multiport-Speicher M nicht nur Seitenoperationen, sondern
auch normale Operationen ansprechend auf die zugeführten Befehlssignale
vornehmen.
-
Die
oben beschriebenen Ausführungsformen waren
auf ein Beispiel gerichtet, in dem die vorliegende Erfindung bei
einem Multiport-Speicher eines Adressen-Multiplex-Typs verwendet
wird, der Adressensignale multiplext. Diese Erfindung ist nicht
auf diese besonderen Ausführungsformen
beschränkt. Beispielsweise
kann die vorliegende Erfindung bei einem Multiport-Speicher eines
Adressen-Nicht-Multiplex-Typs verwendet werden, der Adressensignale
auf einmal empfängt.
-
Die
oben beschriebenen Ausführungsformen waren
auf ein Beispiel gerichtet, in dem die vorliegende Erfindung bei
dem Multiport-Speicher M mit zwei Eingabe/Ausgabe-Ports PORT-A und
PORT-B verwendet wird. Diese Erfindung ist nicht auf diese Ausführungsformen
beschränkt.
Beispielsweise kann die vorliegende Erfindung bei einem Multiport-Speicher mit
vier Eingabe/Ausgabe-Ports verwendet werden. In diesem Fall werden
Intervalle zugeführter
aktiver Befehle ACT (gemäß Zeiteinstellungsspezifikationen)
gleich oder größer als
4-mal so lang wie die Operationsperiode eines Speicherkerns eingestellt.
-
In
den oben beschriebenen Ausführungsformen
wurde eine Beschreibung in Bezug auf ein Beispiel gegeben, in dem
die vorliegende Erfindung bei einem Multiport-Speicher verwendet
wird, der einen synchronen DRAM-Speicherkern aufweist. Diese Erfindung
ist nicht auf diese Art einer Ausführungsform beschränkt. Beispielsweise
kann die vorliegende Erfindung bei einem Multiport-Speicher verwendet
werden, der einen synchronen SRAM-Speicherkern hat.
-
In
dem oben beschriebenen Multiport-Speicher kann ferner eine Anforderung
für eine
Speicherkernoperation als Befehlssignal eingegeben werden. Ein solches
Befehlssignal wird dem Befehlsanschluss eines Eingabe/Ausgabe-Ports
synchron mit dem Taktsignal zugeführt. Das Befehlssignal kann
in einen aktiven Befehl zum Aktivieren eines spezifischen Speicherbereichs
des Speicherblocks und einen Aktionsbefehl geteilt werden, der entweder
eine Leseoperation oder eine Schreiboperation anzeigt, die in diesem
Speicherbereich vorzunehmen ist, und diese Befehle können aufeinanderfolgend
zugeführt werden.
Ebenso können
auch Adressensignale eines nach dem anderen auf einer Time-Sharing-Basis
zugeführt
werden. Ein Leseoperationszyklus und ein Schreiboperationszyklus
werden auf konstante Zyklen fixiert, indem der Aktionsbefehl vorherbestimmte Taktzyklen
nach der Zufuhr eines aktiven Befehls zugeführt wird.
-
Auffrischoperationen
werden benötigt,
wenn die Speicherzellen von Speicherblöcken aus DRAM-Zellen bestehen.
Auffrischoperationen werden in Bezug auf Auffrischadressen vorgenommen, die
von einem beliebigen der Eingabe/Ausgabe-Ports zugeführten Adressensignalen angezeigt werden.
Diese Konfiguration kann die Größe der in dem
Multiport-Speicher vorgesehenen Steuerschaltung minimieren, wodurch
die Chipgröße reduziert wird.
-
Eine
Vorladeoperation, die mit den Speicherzellen verbundene Bitleitungen
auf eine vorherbestimmte Spannung zurücksetzt, wird automatisch nach
einer Leseoperation und einer Schreiboperation vorgenommen. Dies
ermöglicht,
die Leseoperation und die Schreiboperation innerhalb einer vorherbestimmten
Zeitperiode ab dem Start der jeweiligen Operationen zu vollenden.
Das heißt,
eine Lesezykluszeit und eine Schreibzykluszeit können fixiert werden, um konstant
zu sein.
-
Außerdem kann
ein BUSY-Anschluss für
jeden Eingabe/Ausgabe-Port vorgesehen werden, um ein BUSY-Signal
auszugeben. Ein solches BUSY-Signal wird ausgegeben, wenn einem
der Eingabe/Ausgabe-Ports zugeführte
Adressensignale gleich sind wie jene, die einem anderen der Eingabe/Ausgabe-Ports zugeführt werden,
und wenn eine Speicheroperation in Bezug auf den letzteren Eingabe/Ausgabe-Port
durchgeführt
wird. Mit dieser Konfiguration weiß ein mit dem Multiport-Speicher verbundener
Controller leicht, dass die angeforderte Operation nicht vorgenommen
wurde.
-
Ferner
ist die vorliegende Erfindung nicht auf diese Ausführungsformen
beschränkt,
sondern es können
verschiedenste Variationen und Modifikationen vorgenommen werden,
ohne vom Umfang der vorliegenden Erfindung abzuweichen.
-
Beispielsweise
wurden der erste bis fünfte Aspekt
der vorliegenden Erfindung mit Bezugnahme auf eine Konfiguration
beschrieben, in der nur eine von einer Anstiegkante und einer Abfallkante
für den Synchronisationszweck
verwendet wird. Für
Fachleute ist es jedoch klar, dass eine beliebige der oben beschriebenen
Konfigurationen einfach und leicht modifiziert werden kann, um mit
DDR-Operationen (doppelte Datenrate) übereinzustimmen, bei denen sowohl
die Anstiegkante als auch die Abfallkante für den Synchronisationszweck
verwendet werden. Eine solche naheliegende Modifikation soll in
den Umfang der vorliegenden Erfindung fallen.
-
Die
vorliegende Anmeldung basiert auf den
Japanischen Prioritätsanmeldungen Nr. 2000-387891 ,
eingereicht am 20. Dezember 2000, Nr.
2001-034361 , eingereicht am 9.
Februar 2001, Nr.
2001-037547 ,
eingereicht am 14. Februar 2001, Nr.
2000-398893 , eingereicht am 27.
Dezember 2000, und Nr.
2000-399052 ,
eingereicht am 27. Dezember 2000 beim Japanischen Patentamt.