DE60112701T2 - Multiportspeicher auf Basis von DRAM - Google Patents

Multiportspeicher auf Basis von DRAM Download PDF

Info

Publication number
DE60112701T2
DE60112701T2 DE60112701T DE60112701T DE60112701T2 DE 60112701 T2 DE60112701 T2 DE 60112701T2 DE 60112701 T DE60112701 T DE 60112701T DE 60112701 T DE60112701 T DE 60112701T DE 60112701 T2 DE60112701 T2 DE 60112701T2
Authority
DE
Germany
Prior art keywords
command
port
data
input
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60112701T
Other languages
English (en)
Other versions
DE60112701D1 (de
Inventor
Yasurou Kawasaki-shi Matsuzaki
Takaaki Kawasaki-shi Suzuki
Masafumi Kawasaki-shi Yamazaki
Kenichi Kawasaki-shi Kawasaki
Shinnosuke Kawasaki-shi Kamata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2000387891A external-priority patent/JP5070656B2/ja
Priority claimed from JP2000399052A external-priority patent/JP4997663B2/ja
Priority claimed from JP2000398893A external-priority patent/JP4783501B2/ja
Priority claimed from JP2001034361A external-priority patent/JP4824180B2/ja
Priority claimed from JP2001037547A external-priority patent/JP5028710B2/ja
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE60112701D1 publication Critical patent/DE60112701D1/de
Publication of DE60112701T2 publication Critical patent/DE60112701T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/107Serial-parallel conversion of data or prefetch

Description

  • HTNTERGRUND 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-6 078 527-A, auf welcher der Oberbegriff von Anspruch 1 basiert, beschreibt einen Pipeline-Dualport-Integrationsschaltungsspeicher (20), welcher ein Array (21) statischer Direktzugriffsspeicher (SRAM)-Zellen enthält, wobei jede der Speicherzellen (80) mit einer einzigen Wortleitung (72) und mit einem einzigen Bitleitungspaar (74, 76) verbunden ist. Der Zugriff jedes Ports wird synchron in Bezug auf ein entsprechendes Taktsignal vorgenommen. Die beiden Taktsignale sind in Bezug aufeinander asynchron. Wenn Zugriffsanforderungen von beiden Ports im Wesentlichen simultan empfangen werden, bestimmt eine Entscheidungsschaltung (24), welcher Port Priorität erhält. Der Port, der Priorität erhält, greift zuerst auf das Array (21) zu. Die Entscheidungsschaltung (24) stellt sicher, dass im Wesentlichen simultane Zugriffsanforderungen sequentiell bedient werden und innerhalb eines einzigen Zyklus eines entsprechenden Taktsignals auftreten.
  • Die US-5 659 711-A beschreibt 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 zum Detektieren eines Zugriffskonflikts an dem ersten Speicherblock, einen zweiten Zugriffskonfliktdetektor 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 US-5 946 262-A beschreibt einen Speicher mit einem SRAM, einem DRAM und zwei externen IO-Ports. Der SRAM hat drei IO-Ports zum Freigeben der externen IO-Ports und des DRAM, um auf jede einzelne Speicherzelle in dem DRAM zuzugreifen. Jede SRAM-Zelle ist mit zwei IO-Ports versehen, die mit den externen IO-Ports gekoppelt sind, und mit einem IO-Port zum Transferieren von Daten zu und von dem DRAM. Die Dreiport-SRAM-Zelle umfasst drei Eingabedatenleitungen, die mit einer Verriegelungsschaltung gekoppelt sind, zum Schreiben von Daten, die von den externen IO-Ports und dem DRAM zugeführt werden, und drei Ausgabedatenleitungen, die mit dem Verriegelungssystem gekoppelt sind, zum Lesen gespeicherter Daten in die externen IO-Ports und den DRAM. Drei Schreibadressenleitungen und drei Leseadressenleitungen sehen eine Adressierung der SRAM-Zelle für Datenschreib- und -leseoperationen vor, die von den externen IO-Ports und dem DRAM vorgenommen werden. Jede SRAM-Zelle kann gleichzeitig über alle drei Ports gelesen werden, damit auf die meisten aktuellen Daten, die in dem SRAM gespeichert sind, von einem beliebigen Port zu einer beliebigen Zeit zugegriffen werden kann.
  • 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.
  • Die Erfindung ist in dem beigeschlossenen unabhängigen Anspruch definiert, auf den nun Bezug zu nehmen ist. Ferner sind bevorzugte Merkmale in den auf diesen rückbezogenen Unteransprüchen zu finden.
  • 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, mit einer Vielzahl von N externen Ports, von denen jeder Befehle empfängt, und einer internen Schaltung, die zumindest N Zugriffsoperationen während eines minimalen Intervalls der Befehle vornimmt, die in einen der externen Ports eingegeben werden.
  • Ferner ist eine Entscheidungsschaltung vorgesehen, die eine Reihenfolge der Befehlsausführung bestimmt, in der eine interne Schaltung eine Vielzahl von in N jeweilige externe Ports eingegebenen Befehlen ausführt.
  • Wenn in der oben beschriebenen Erfindung Befehle in N Ports eingegeben werden, werden alle der N Befehle entsprechend den N Ports einer nach dem anderen innerhalb eines minimalen Befehlszyklus eines beliebigen gegebenen Ports ausgeführt. Deshalb erscheint eine Zugriffsoperationen, die sich auf einen beliebigen gegebenen Port bezieht, 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 auf die gleiche Adresse von einer Vielzahl von Ports zugegriffen wird. Somit 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 Erfindung ist 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. Aufgrund dieser Konfiguration wird es ermöglicht, dass einer der externen Ports als Port zur Auffrischverwaltung operiert, um so Auffrischbefehle in konstanten Intervallen zu empfangen, oder die interne Auffrisch-Schaltung nimmt Auffrischoperationen vor, wenn dieser Port für die Auffrischverwaltung in einem deaktivierten Zustand ist. Dadurch wird ermöglicht, dass Auffrischoperationen in einer flexiblen Weise gemäß Systemkonfigurationen verwaltet werden.
  • 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äß einer weiteren Erfindung zeigt (vierter Aspekt), die nicht Teil dieser Anmeldung ist;
  • 102 ist ein Zeitdiagramm, das ein Beispiel von Operationen des Multiport-Speichers gemäß der anderen Erfindung zeigt (vierter Aspekt);
  • 103 ist ein Zeitdiagramm, das ein weiteres Beispiel von Operationen des Multiport-Speichers gemäß der anderen Erfindung zeigt (vierter Aspekt);
  • 104 ist ein Zeitdiagramm, das noch ein weiteres Beispiel von Operationen des Multiport-Speichers gemäß der anderen Erfindung zeigt (vierter Aspekt);
  • 105 ist ein Blockbild eines Befehlsdecoderregisters;
  • 106 ist ein Blockbild eines Entscheiders gemäß der Ausführungsform der anderen 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äß einer weiteren Erfindung (fünfter Aspekt), die nicht Teil dieser Anmeldung ist;
  • 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 anderen Erfindung (fünfter Aspekt);
  • 124 zeigt eine dritte Ausführungsform des Multiport-Speichers und des Verfahrens zum Steuern des Multiport-Speichers gemäß der anderen 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 anderen 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 anderen 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 Fallveranschaulicht 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 Folgen 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 N11, 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 indem 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 WR1D 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 = "H", 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) 30823084, 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 30853087 zum Speichern von Befehlen, Flaggen 30883090, die einen Speicherstatus der Register 30853087 anzeigen, und eine Rücksetzdateneinheit 3091, die den Zustand der Register 30853087 zurücksetzt. In diesem Zustand, wo kein Befehl in den Registern 30853087 gespeichert ist, sind die Flaggen 30883090 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 zeit 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.
  • Der vierte und fünfte Aspekt der Erfindung, wie im Nachstehenden beschrieben, werden in der vorliegenden Anmeldung nicht beansprucht.
  • [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-Zustands steuerung 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 Anordnung 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 Systemanforderun gen konform ist.
  • Im Folgenden werden Ausführungsformen der vorliegenden Erfindung (vierter Aspekt) mit Bezugnahme auf die beigeschlossenen 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 Entscheider 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 Auff rischbefehl 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 eingege ben 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-Spei cherzellen, Zellengatetransistoren, Wortleitungen, Bitleitungen, Leseverstärker, Spaltenleitungen, Spaltengates, etc., und speichert Daten für Leseoperationen und Schreiboperationen. 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 110B sind Zeitdiagramme, die Operation des Speicherblocks zeigen.
  • 110A zeigt einen Fall einer Leseoperation, und 110B zeigt einen Fall einer Schreiboperation. Zu Operationszeiteinstellungen, wie in 110A und 110B 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 Auffrischverwal tung zugeordnet wird, um Auffrischbefehle in konstanten Intervallen zu empfangen, oder den Multiport-Speicher in einer solchen Weise zu verwenden, dass die interne Auffrisch-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 Speicherzellen bereich ein.
  • Es müssen jedoch noch Multiport-Speicher entwickelt werden, die verschiedene Taktsignale an jeweiligen Eingabe/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) ope rieren 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. 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 Reihenfolge 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 Schreib operation 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 Viehzahl 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 gegebenen 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 Spal tenadressenverriegelungen 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 Freigabesignals /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 Schreiboperatior. 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 nMOS-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 entsprechenden 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 CLKR 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 Erstankunftssignal /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 Steuer schaltung 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 Reihenadressensi gnale 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 Lesebe fehl RD (d.h. ein Befehlssignal CMD) und Spaltenadressensignale CA (Adressensignale ADDA) synchron mit der folgenden Anstiegkante des Taktsignals CLKA (120-(f)). Der Eingabe/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 Schreiboperation 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 CLKR 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/Aus gabe-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 Akti vierung des Erstankunftssignals /FSTA und der Aktivierung des Freigabesignals /ENA. 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. 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üh rungsform 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ührungsform 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 Be fehl 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 B. 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 verschiedene 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 detek tieren. So wird die Steuerung des Controllers (hinsichtlich Hardware und Software) vereinfacht.
  • 133 zeigt eine vierte 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 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 Reihenadressensi gnale 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 RERDB 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 Schreibopera tionen werden vorgenommen, 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. 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 Schreibbe fehle 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 dein 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)). Schreib daten 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, deren gesamte Inhalte hier durch Bezugnahme eingeschlossen sind.

Claims (41)

  1. Halbleiter-Speicheranordnung (10), welche ein taktsynchroner dynamischer Direktzugriffsspeicher ist, mit: einer Vielzahl von N (N ist eine ganze Zahl größer als Eins) externen Ports (11, 12), von denen jeder erste Befehle empfängt; und dadurch gekennzeichnet, dass die Anordnung umfasst: eine interne Schaltung, welche mehr als N interne Operationen während eines minimalen Zeitintervalls zwischen den ersten Befehlen vornimmt, die in einen der externen Ports eingegeben werden.
  2. Halbleiter-Speicheranordnung nach Anspruch 1, bei welcher jeder der N externen Ports einen Taktanschluss zum Empfangen eines Taktsignals von einer Außenseite der Anordnung enthält, und synchron mit dem Taktsignal operiert.
  3. Halbleiter-Speicheranordnung nach Anspruch 2, bei welcher jeder der N externen Ports enthält: eine Schaltung, die empfangene serielle Daten der internen Schaltung als parallele Daten zuführt; und eine Schaltung, die von der internen Schaltung zugeführte parallele Daten an die Außenseite der Anordnung als serielle Daten ausgibt.
  4. Halbleiter-Speicheranordnung nach Anspruch 1, ferner mit einer Entscheidungsschaltung (15), die eine Reihenfolge der Befehlsausführung bestimmt, in der die interne Schaltung eine Vielzahl von in die N jeweiligen externen Ports eingegebenen Befehlen ausführt.
  5. Halbleiter-Speicheranordnung nach Anspruch 4, bei welcher jeder der N externen Ports enthält: eine Schaltung, die empfangene serielle Daten der internen Schaltung als parallele Daten zuführt; und eine Schaltung, die von der internen Schaltung zugeführte parallele Daten an die Außenseite der Anordnung als serielle Daten ausgibt, wobei eine Vielzahl von in die N jeweiligen externen Ports eingegebenen Befehlen einen Lesebefehl und einen Schreibbefehl enthält, und die Entscheidungsschaltung die Reihenfolge der Befehlsausführung ansprechend auf eine Zeiteinstellung, zu der der Lesebefehl in einen externen Port eingegeben wird, und eine Zeiteinstellung, zu der ein letztes Datenelement seriell eingegebener Daten für den Schreibbefehl in einen externen Port eingegeben wird, bestimmt.
  6. Halbleiter-Speicheranordnung nach Anspruch 4, ferner mit: einer Adressenvergleichsschaltung, die bestimmt, ob es zwei oder mehrere Befehle, die auf eine gleiche Adresse zugreifen, unter der Vielzahl von in die N jeweiligen externen Ports eingegebenen Befehlen gibt; und einer Signalausgangsschaltung, die ein vorherbestimmtes Signal an die Außenseite der Anordnung ansprechend auf ein Ereignis ausgibt, dass es zwei oder mehrere Befehle gibt, die auf dieselbe Adresse zugreifen.
  7. Halbleiter-Speicheranordnung nach Anspruch 6, ferner mit: einer Signaleingangsschaltung, die das vorherbestimmte Signal von der Außenseite der Anordnung empfängt; und einem Modusregister (31), das einen von einem Master-Operationsmodus und einem Slave-Operationsmodus anzeigt, wobei die Signalausgangsschaltung ansprechend auf eine Anzeige des Master-Operationsmodus durch das Modusregister aktiviert wird, und die Signaleingangsschaltung ansprechend auf eine Anzeige des Slave-Operationsmodus durch das Modusregister aktiviert wird.
  8. Halbleiter-Speicheranordnung nach Anspruch 7, bei welcher die Entscheidungsschaltung die Reihenfolge der Befehlsausführung ansprechend auf ein Ereignis ändert, dass die Signaleingangsschaltung das vorherbestimmte Signal von der Außenseite der Anordnung empfängt, wenn das Modusregister den Slave-Operationsmodus anzeigt.
  9. Halbleiter-Speicheranordnung nach Anspruch 8, bei welcher ein normaler Operationsmodus und ein kontinuierlicher Operationsmodus vorgesehen sind, wobei der normale Operationsmodus eine Operation der Reihenauswahl, worin eine Operation einem einzigen Befehl entspricht, und eine Vorladeoperation innerhalb eines einzigen internen Operationszyklus vornimmt, und der kontinuierliche Operationsmodus eine Operation der Reihenauswahl, worin kontinuierliche Operationen einer Vielzahl von Befehlen entsprechen, und eine Vorladeoperation innerhalb eines einzigen internen Operationszyklus vornimmt, und bei welcher der normale Operationsmodus und der kontinuierliche Operationsmodus ansprechend auf eine von der Adressenvergleichsschaltung vorgenommene Bestimmung umgeschaltet werden.
  10. Halbleiter-Speicheranordnung nach Anspruch 9, bei welcher, wenn die Vielzahl von in dem kontinuierlichen Operationsmodus ausgeführten Befehlen Schreibbefehle sind, einer der Schreibbefehle ausgewählt und ausgeführt wird, während verbleibende der Schreibbefehle nicht ausgeführt werden.
  11. Halbleiter-Speicheranordnung nach Anspruch 9, bei welcher eine Operation, die das vorherbestimmte Signal an die Außenseite der Anordnung sendet oder von dieser empfängt, in dem kontinuierlichen Operationsmodus während einer Periode vorgenommen wird, die zwischen der Operation der Reihenauswahl und den der Vielzahl von Befehlen entsprechenden kontinuierlichen Operationen vorgesehen ist.
  12. Halbleiter-Speicheranordnung nach Anspruch 11, bei welcher die Periode eine variable Länge hat.
  13. Halbleiter-Speicheranordnung nach Anspruch 6, ferner mit einer Schaltung, die ein Unterbrechungssignal von einem externen Controller ansprechend auf ein vorherbestimmtes Signal empfängt, wobei die Entscheidungsschaltung die Reihenfolge der Befehlsausführung ansprechend auf den Empfang des Unterbrechungssignals ändert.
  14. Halbleiter-Speicheranordnung nach Anspruch 9, bei welcher ein normaler Operationsmodus und ein kontinuierlicher Operationsmodus vorgesehen sind, wobei der normale Operationsmodus eine Operation der Reihenauswahl, worin eine Operation einem einzigen Befehl entspricht, und eine Vorladeoperation innerhalb eines einzigen internen Operationszyklus vornimmt, und der kontinuierliche Operationsmodus eine Operation der Reihenauswahl, worin kontinuierliche Operationen einer Vielzahl von Befehlen entsprechen, und eine Vorladeoperation innerhalb eines einzigen internen Operationszyklus vornimmt, und bei welcher der normale Operationsmodus und der kontinuierliche Operationsmodus ansprechend auf eine von der Adressenvergleichsschaltung vorgenom mene Bestimmung umgeschaltet werden, und eine Operation des Empfangs des Unterbrechungssignals in dem kontinuierlichen Operationsmodus während einer Periode vorgenommen wird, die zwischen der Operation der Reihenauswahl und den der Vielzahl von Befehlen entsprechenden kontinuierlichen Operationen vorgesehen ist.
  15. Halbleiter-Speicheranordnung nach Anspruch 1, bei welcher die interne Schaltung enthält: ein Zellen-Array, das auf der Basis von Speicherzellen des dynamischen Typs implementiert ist; und eine Auffrisch-Schaltung, die eine Zeiteinstellung der Auffrischung der Speicherzellen definiert, wobei die Speicherzellen in einem ersten Modus ansprechend auf einen Auffrischbefehl aufgefrischt werden, der in zumindest einen der N externen Ports eingegeben wird, und die Speicherzellen in einem zweiten Modus zu einer Zeiteinstellung aufgefrischt werden, die von der Auffrisch-Schaltung angezeigt wird.
  16. Halbleiter-Speicheranordnung nach Anspruch 15, bei welcher der zweite Modus eingegangen wird, wenn zumindest einer der N externen Ports in einen inaktivierten Zustand ist.
  17. Halbleiter-Speicheranordnung nach Anspruch 15, bei welcher ein externer Port zum Empfangen des Auffrischbefehls unter den N externen Ports von der Außenseite der Anordnung ausgewählt wird.
  18. Halbleiter-Speicheranordnung nach Anspruch 17, bei welcher der zweite Modus eingegangen wird, wenn der externe Port zum Empfangen des Auffrischbefehls unter den N externen Ports in einen inaktivierten Zustand ist.
  19. Halbleiter-Speicheranordnung nach Anspruch 17, ferner mit einem Modusregister, das den externen Port zum Empfangen des Auffrischbefehls unter den N externen Ports anzeigt.
  20. Halbleiter-Speicheranordnung nach Anspruch 7, bei welcher jeder der N externen Ports einen Taktanschluss zum Empfangen eines Taktsignals von einer Außenseite der Anordnung enthält, und synchron mit dem Taktsignal operiert, und bei welcher die Signaleingangsschaltung und die Signalausgangsschaltung asynchron mit dem Taktsignal operieren.
  21. Halbleiter-Speicheranordnung (10) nach Anspruch 1, mit: einem Speicher-Array (51); und dadurch gekennzeichnet, dass eine Schaltung zum Generieren eines internen Befehls intern und unabhängig einen zweiten Befehl generiert, wobei ein minimaler Eingabezyklus der ersten Befehle, die von jedem der externen Ports empfangen werden, gleich einer Periode, in der die Halbleiter-Speicheranordnung N+1 interne Operationen vornimmt, oder größer als diese eingestellt wird.
  22. Halbleiter-Speicheranordnung nach Anspruch 21, ferner mit einer Entscheidungsschaltung (15), die eine solche Steuerung durchführt, dass die in die N externen Ports eingegebenen ersten Befehle und der zweite Befehl in einer vorherbestimmten Reihenfolge vorgenommen werden.
  23. Halbleiter-Speicheranordnung nach Anspruch 21, bei welcher das Speicher-Array auf der Basis von Speicherzellen des dynamischen Typs implementiert ist, und der zweite Befehl ein Auffrischbefehl ist.
  24. Halbleiter-Speicheranordnung nach Anspruch 21, bei welcher jeder der N externen Ports einen Taktanschluss zum Empfangen eines Taktsignals von einer Außenseite der Anordnung enthält, und Eingabe/Ausgabeoperationen synchron mit dem empfangenen Taktsignal vornimmt.
  25. Halbleiter-Speicheranordnung nach Anspruch 24, bei welcher jeder der N externen Ports eine Dateneingabe/ausgabeeinheit des Burst-Typs enthält, und eine Dateneingabe/ausgabe mehrfache Male innerhalb eines Eingabezyklus der ersten Befehle vornimmt.
  26. Halbleiter-Speicheranordnung nach Anspruch 24, bei welcher Daten, deren Menge gleich ist einer Burst-Länge, durch eine Zugriffsoperation zwischen dem Speicher-Array und einem der externen Ports eingegeben/ausgegeben werden.
  27. Halbleiter-Speicheranordnung nach Anspruch 25, bei welcher die ersten Befehle einen Lesebefehl und einen Schreibbefehl enthalten, und die Entscheidungsschaltung die Reihenfolge ansprechend auf eine erste Zeiteinstellung, zu der der Lesebefehl in einen externen Port eingegeben wird, und eine zweite Zeiteinstellung, zu der ein letztes Datenelement von Burst-Eingabedaten für den Schreibbefehl in einen externen Port eingegeben wird, bestimmt.
  28. Halbleiter-Speicheranordnung nach Anspruch 27, bei welcher, wenn die erste Zeiteinstellung nach der zweiten Zeiteinstellung in Bezug auf die externen Ports während einer vorherbestimmten Periode kommt, die Entscheidungsschaltung die Priorität des zweiten Befehls senkt, der während der vorherbestimmten Periode generiert wird.
  29. Halbleiter-Speicheranordnung nach Anspruch 28, bei welcher die vorherbestimmte Periode so positioniert ist, dass sie die zweite Zeiteinstellung darin enthält.
  30. Halbleiter-Speicheranordnung nach Anspruch 1, mit einem Speicher-Array; und dadurch gekennzeichnet, dass eine Schaltung zum Generieren eines internen Befehls intern und unabhängig einen zweiten Befehl generiert, wobei ein minimaler Eingabezyklus der ersten Befehle, die von jedem der externen Ports empfangen werden, so eingestellt ist, dass die Halbleiter-Speicheranordnung zumindest n interne Operationen innerhalb von m (m ≥ 2) Malen des minimalen Eingabezyklus vornimmt, wobei mN < n < m(N + 1).
  31. Halbleiter-Speicheranordnung nach Anspruch 30, bei welcher die n internen Operationen mN Operationen, die dem ersten Befehl entsprechen, und zumindest eine Operation, die dem zweiten Befehl entspricht, enthalten.
  32. Halbleiter-Speicheranordnung nach Anspruch 31, bei welcher das Speicher-Array auf der Basis von Speicherzellen des dynamischen Typs implementiert ist, und der zweite Befehl ein Auffrischbefehl ist.
  33. Halbleiter-Speicheranordnung nach Anspruch 30, ferner mit: einer Steuerschaltung, die das Speicher-Array steuert; einem Befehlsregister, das temporär darin die ersten Befehle und den zweiten Befehl vor dem Transfer davon zur Steuerschaltung speichert; und einer Entscheidungsschaltung, die eine Reihenfolge einer Befehlsankunft der ersten Befehle und des zweiten Befehls bestimmt, und eine solche Steuerung durchführt, dass die ersten Befehle und der zweite Befehl zum Befehlsregister in der bestimmten Reihenfolge transferiert werden.
  34. Halbleiter-Speicheranordnung nach Anspruch 33, bei welcher eine Zeiteinstellung, zu der das Befehlsregister die ersten Befehle und den zweiten Befehl zur Steuerschaltung transferiert, durch Operationszyklen des Speicher-Arrays gesteuert wird.
  35. Halbleiter-Speicheranordnung nach Anspruch 34, bei welcher das Befehlsregister ein Schieberegister ist.
  36. Halbleiter-Speicheranordnung nach Anspruch 34, bei welcher das Befehlsregister ein Erfassungsvollendungssignal bei der Vollendung der Erfassung eines von der Entscheidungsschaltung transferierten Befehls generiert, und die Entscheidungsschaltung einen nächsten Befehl bei der Detektion des Erfassungsvollendungssignals transferiert.
  37. Halbleiter-Speicheranordnung nach Anspruch 30, bei welcher jeder der N externen Ports eine Takteingangsschaltung zum Empfangen eines Taktsignals von einer Außenseite der Anordnung enthält, und Eingabe/Ausgabeoperationen synchron mit dem empfangenen Taktsignal vornimmt.
  38. Halbleiter-Speicheranordnung nach Anspruch 37, bei welcher jeder der N externen Ports ein Modusregister enthält, das darin eine Datenlatenzeinstellung speichert, die von der Außenseite der Anordnung vorgesehen wird, und Daten mit einer durch die Datenlatenzeinstellung angezeigten Datenlatenz ausgibt.
  39. Halbleiter-Speicheranordnung nach Anspruch 38, bei welcher jeder der N externen Ports eine Dateneingabe/ausgabeeinheit des Burst-Typs enthält, und das Modusregister darin eine Burst-Längeneinstellung speichert, die von der Außenseite der Anordnung vorgesehen wird, und bei welcher jeder der externen Ports eine Dateneingabe/ausgabe so viele Male wie durch die Burst-Längeneinstellung angezeigt innerhalb eines Eingabezyklus der ersten Befehle vornimmt.
  40. Halbleiter-Speicheranordnung nach Anspruch 33, bei welcher Daten, deren Menge gleich ist einer Burst-Länge, durch eine Zugriffsoperation zwischen dem Speicher-Array und einem der externen Ports eingegeben/ausgegeben werden.
  41. Halbleiter-Speicheranordnung nach Anspruch 33, bei welcher die ersten Befehle einen Lesebefehl und einen Schreibbefehl enthalten, und die Entscheidungsschaltung die Reihenfolge ansprechend auf eine erste Zeiteinstellung, zu der der Lesebefehl in einen externen Port eingegeben wird, und eine zweite Zeiteinstellung, zu der ein letztes Datenelement von Burst-Eingabedaten für den Schreibbefehl in einen externen Port eingegeben wird, bestimmt.
DE60112701T 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM Expired - Lifetime DE60112701T2 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
JP2000387891A JP5070656B2 (ja) 2000-12-20 2000-12-20 半導体記憶装置
JP2000387891 2000-12-20
JP2000399052 2000-12-27
JP2000399052A JP4997663B2 (ja) 2000-12-27 2000-12-27 マルチポートメモリおよびその制御方法
JP2000398893 2000-12-27
JP2000398893A JP4783501B2 (ja) 2000-12-27 2000-12-27 半導体記憶装置
JP2001034361 2001-02-09
JP2001034361A JP4824180B2 (ja) 2001-02-09 2001-02-09 半導体記憶装置
JP2001037547A JP5028710B2 (ja) 2001-02-14 2001-02-14 半導体記憶装置
JP2001037547 2001-02-14

Publications (2)

Publication Number Publication Date
DE60112701D1 DE60112701D1 (de) 2005-09-22
DE60112701T2 true DE60112701T2 (de) 2006-05-18

Family

ID=27531745

Family Applications (4)

Application Number Title Priority Date Filing Date
DE60142756T Expired - Lifetime DE60142756D1 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von mehreren Speicherkernen
DE60112701T Expired - Lifetime DE60112701T2 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM
DE60136574T Expired - Lifetime DE60136574D1 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM
DE60132382T Expired - Lifetime DE60132382T2 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60142756T Expired - Lifetime DE60142756D1 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von mehreren Speicherkernen

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60136574T Expired - Lifetime DE60136574D1 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM
DE60132382T Expired - Lifetime DE60132382T2 (de) 2000-12-20 2001-10-02 Multiportspeicher auf Basis von DRAM

Country Status (6)

Country Link
US (1) US20020078311A1 (de)
EP (4) EP1564748B1 (de)
KR (1) KR100801119B1 (de)
CN (1) CN1271636C (de)
DE (4) DE60142756D1 (de)
TW (1) TW526500B (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6515914B2 (en) * 2001-03-21 2003-02-04 Micron Technology, Inc. Memory device and method having data path with multiple prefetch I/O configurations
KR100408716B1 (ko) * 2001-06-29 2003-12-11 주식회사 하이닉스반도체 오토프리챠지 갭리스 보호회로를 가진 반도체 메모리소자의 오토프리챠지장치
US6801980B2 (en) * 2002-04-25 2004-10-05 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
KR100475093B1 (ko) * 2002-09-13 2005-03-10 삼성전자주식회사 둘 이상의 입력포트를 구비하는 집적 회로 장치 및 시스템
US20050289293A1 (en) * 2004-06-28 2005-12-29 Parris Michael C Dual-port DRAM cell with simultaneous access
US7860943B2 (en) * 2004-08-23 2010-12-28 Zhe Khi Pak Enhanced network direct attached storage controller
KR100609265B1 (ko) 2004-11-10 2006-08-09 삼성전자주식회사 메모리 장치 및 메모리 장치의 듀얼 포트 동작 방법
US7174403B2 (en) * 2005-02-24 2007-02-06 Qualcomm Incorporated Plural bus arbitrations per cycle via higher-frequency arbiter
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
KR100660874B1 (ko) * 2005-07-25 2006-12-26 삼성전자주식회사 듀얼 포트를 갖는 디램에서의 리프레시 제어 방법
EP1750273B1 (de) 2005-08-05 2011-12-07 Infineon Technologies AG Speicherzelle mit erhöhter Zugriffszuverlässigkeit
KR100831489B1 (ko) * 2005-08-05 2008-05-22 인피니언 테크놀로지스 아게 메모리 셀, 메모리 셀 제어 방법 및 저장 매체
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
KR100655081B1 (ko) * 2005-12-22 2006-12-08 삼성전자주식회사 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법
KR100776127B1 (ko) * 2005-12-29 2007-11-15 매그나칩 반도체 유한회사 에스램을 위한 명령어 제어회로
US7433263B2 (en) 2006-02-28 2008-10-07 Samsung Electronics Co., Ltd. Multi-port semiconductor device and method thereof
US7369453B2 (en) 2006-02-28 2008-05-06 Samsung Electronics Co., Ltd. Multi-port memory device and method of controlling the same
KR100800384B1 (ko) * 2006-06-20 2008-02-01 삼성전자주식회사 반도체 메모리 장치 및 이에 따른 셀프 리프레쉬 방법
US7529149B2 (en) * 2006-12-12 2009-05-05 Mosaid Technologies Incorporated Memory system and method with serial and parallel modes
US7908501B2 (en) 2007-03-23 2011-03-15 Silicon Image, Inc. Progressive power control of a multi-port memory device
KR20090013342A (ko) * 2007-08-01 2009-02-05 삼성전자주식회사 멀티 포트 반도체 메모리 장치 및 그에 따른 리프레쉬 방법
US7613055B2 (en) 2007-08-09 2009-11-03 Altera Corporation Programmable control block for dual port SRAM application
US8166238B2 (en) * 2007-10-23 2012-04-24 Samsung Electronics Co., Ltd. Method, device, and system for preventing refresh starvation in shared memory bank
JP5599969B2 (ja) * 2008-03-19 2014-10-01 ピーエスフォー ルクスコ エスエイアールエル マルチポートメモリ、および該マルチポートメモリを備えるコンピュータシステム
JP5998814B2 (ja) * 2012-10-03 2016-09-28 株式会社ソシオネクスト 半導体記憶装置
US9047978B2 (en) 2013-08-26 2015-06-02 Micron Technology, Inc. Apparatuses and methods for selective row refreshes
KR102251241B1 (ko) * 2013-11-29 2021-05-12 삼성전자주식회사 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치
US9324416B2 (en) * 2014-08-20 2016-04-26 Qualcomm Incorporated Pseudo dual port memory with dual latch flip-flop
US9812189B2 (en) * 2015-06-04 2017-11-07 Intel Corporation Read and write apparatus and method for a dual port memory
JP6470160B2 (ja) 2015-10-23 2019-02-13 ルネサスエレクトロニクス株式会社 マルチポートメモリ、及び半導体装置
DE102017106713A1 (de) * 2016-04-20 2017-10-26 Samsung Electronics Co., Ltd. Rechensystem, nichtflüchtiges Speichermodul und Verfahren zum Betreiben einer Speichervorrichtung
CN106981265B (zh) * 2017-05-25 2021-01-12 京东方科技集团股份有限公司 应用处理器、显示驱动器和电子设备
US10580475B2 (en) 2018-01-22 2020-03-03 Micron Technology, Inc. Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
KR102035602B1 (ko) * 2018-01-29 2019-10-23 한밭대학교 산학협력단 Fpga를 이용한 케이블 선번 연결 자동 탐색, 설정 및 양방향 연결선 구현 장치 및 방법
KR102626048B1 (ko) * 2018-03-21 2024-01-18 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US11152050B2 (en) * 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
CN113254373B (zh) * 2021-06-16 2021-10-12 上海矽久微电子有限公司 支持同时读写的类双口存储器实现方法、类存储器及芯片结构
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796232A (en) 1987-10-20 1989-01-03 Contel Corporation Dual port memory controller
JPH02246087A (ja) * 1989-03-20 1990-10-01 Hitachi Ltd 半導体記憶装置ならびにその冗長方式及びレイアウト方式
US5001671A (en) * 1989-06-27 1991-03-19 Vitelic Corporation Controller for dual ported memory
JP2549209B2 (ja) * 1991-01-23 1996-10-30 株式会社東芝 半導体記憶装置
JP2673390B2 (ja) * 1991-03-13 1997-11-05 三菱電機株式会社 マルチポートメモリ
JP3169639B2 (ja) * 1991-06-27 2001-05-28 日本電気株式会社 半導体記憶装置
US5587957A (en) * 1995-09-29 1996-12-24 Intel Corporation Circuit for sharing a memory of a microcontroller with an external device
US5768211A (en) * 1996-07-31 1998-06-16 Cypress Semiconductor Corporation Multi-port arbitration for high performance width expansion
US5946262A (en) * 1997-03-07 1999-08-31 Mitsubishi Semiconductor America, Inc. RAM having multiple ports sharing common memory locations
US6078527A (en) * 1997-07-29 2000-06-20 Motorola, Inc. Pipelined dual port integrated circuit memory
US5781480A (en) * 1997-07-29 1998-07-14 Motorola, Inc. Pipelined dual port integrated circuit memory
KR19990055450A (ko) * 1997-12-27 1999-07-15 윤종용 듀얼포트 메모리를 사용하는 프로세서의 인터페이스 장치
DE59903684D1 (de) * 1998-09-30 2003-01-16 Siemens Ag Dual-port speicherzelle
KR20000046821A (ko) * 1998-12-31 2000-07-25 김영환 메모리의 리드/라이트 제어회로

Also Published As

Publication number Publication date
KR100801119B1 (ko) 2008-02-05
EP1564749B1 (de) 2008-11-12
EP1564749A3 (de) 2006-03-29
EP1564749B8 (de) 2009-02-18
TW526500B (en) 2003-04-01
KR20020050092A (ko) 2002-06-26
EP1564749A2 (de) 2005-08-17
DE60142756D1 (de) 2010-09-16
CN1271636C (zh) 2006-08-23
EP1220226A3 (de) 2002-12-18
EP1564748B1 (de) 2008-01-09
DE60112701D1 (de) 2005-09-22
EP1564748A3 (de) 2006-03-29
DE60132382T2 (de) 2008-07-24
EP1808861B1 (de) 2010-08-04
EP1564748A2 (de) 2005-08-17
DE60132382D1 (de) 2008-02-21
DE60136574D1 (de) 2008-12-24
EP1220226A2 (de) 2002-07-03
EP1808861A1 (de) 2007-07-18
EP1220226B1 (de) 2005-08-17
US20020078311A1 (en) 2002-06-20
CN1360314A (zh) 2002-07-24

Similar Documents

Publication Publication Date Title
DE60112701T2 (de) Multiportspeicher auf Basis von DRAM
DE60213560T2 (de) Halbleiterspeicher
US8717842B2 (en) Multi-port memory based on DRAM core
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE69923634T2 (de) Synchrone Burstzugriffshalbleiterspeicheranordnung
DE4432217C2 (de) Halbleiterspeichereinrichtung
DE19807298C2 (de) Synchrone Halbleiterspeichereinrichtung
DE69725632T2 (de) Halbleiterspeicheranordnung mit &#34;Pipeline&#34; Betrieb
DE69535672T2 (de) Synchrone NAND DRAM Architektur
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE10350865A1 (de) Speicherbaustein mit variabel verzögerter Spaltenauswahl
DE69333520T2 (de) Synchrone LSI Speicherandordnung
DE60318906T2 (de) Synchrone globale Steuereinheit für eine verbesserte Pipeline
DE102014107661A1 (de) Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate
DE102006048972A1 (de) Gezieltes automatisches Auffrischen für einen dynamischen Direktzugriffsspeicher
DE19951677A1 (de) Halbleiterspeichervorrichtung
DE69816464T2 (de) Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
DE69935690T2 (de) Integrierter Halbleiterschaltungsspeicher und Bussteuerungsverfahren
DE102006048971A1 (de) Gezieltes automatisches Auffrischen für einen dynamischen Direktzugriffsspeicher
DE102006048970A1 (de) Gezieltes automatisches Auffrischen für einen dynamischen Direktzugriffsspeicher
DE10217359A1 (de) Halbleiterspeichervorrichtung, die sowohl für eine CAS-Latenzzeit von eins als auch für eine CAS-Latenzzeit von mehr als eins betreibbar ist
DE102006011720A1 (de) Speicher mit Datenzwischenspeicherschaltung, die einen Selektor umfasst
DE60221490T2 (de) Verfahren zum Datenzugriff in einer Auffrischung benötigenden Halbleiterspeicheranordnung und Halbleiterspeicheranordnung dafür
DE102004060644B4 (de) Direktzugriffsspeicher, Speichersteuerung und Verfahren unter Verwendung von Vorladezeitgebern in einem Testmodus
DE69721361T2 (de) Einchipspeichersystem mit einem Dekoder für Pulswortleitungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FUJITSU MICROELECTRONICS LTD., TOKYO, JP

8327 Change in the person/name/address of the patent owner

Owner name: FUJITSU SEMICONDUCTOR LTD., YOKOHAMA, KANAGAWA, JP

8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE