DE112011103916B4 - Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren - Google Patents

Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren Download PDF

Info

Publication number
DE112011103916B4
DE112011103916B4 DE112011103916.6T DE112011103916T DE112011103916B4 DE 112011103916 B4 DE112011103916 B4 DE 112011103916B4 DE 112011103916 T DE112011103916 T DE 112011103916T DE 112011103916 B4 DE112011103916 B4 DE 112011103916B4
Authority
DE
Germany
Prior art keywords
memory
access
cpu
cpus
requests
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.)
Active
Application number
DE112011103916.6T
Other languages
English (en)
Other versions
DE112011103916T5 (de
Inventor
Hisato Matsuo
Rika Nagahara
Kenji Ohtani
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011103916T5 publication Critical patent/DE112011103916T5/de
Application granted granted Critical
Publication of DE112011103916B4 publication Critical patent/DE112011103916B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

Speicherzugriffseinheit für gemeinsame Nutzung eines Speichers (43) für Hauptspeicher (452) mehrerer CPUs (49) und einen Datenpuffer (451) anderer Funktionsblöcke, wobei die Einheit aufweist:mehrere CPUs (49) nutzen einen Speicher (43) als Hauptspeicher (452);andere Funktionsblöcke nutzen den Speicher (43) als diesen Datenpuffer (451);eine mit einem Bus (48) für die CPUs (49) verbundene CPU-Schnittstellenschaltung (52), um Speicherzugriffsanfragen von den mehreren CPUs zu steuern; undeine mit der CPU-Schnittstellenschaltung (52) verbundene Speichersteuereinheit (46), um Speicherzugriffs(CPU-Zugriffs- und Funktionsblockzugriffs)-Anfragen von den CPUs (49) und den Funktionsblöcken zu arbitrieren;wobei die CPU-Schnittstellenschaltung (52)Speicherzugriffsanfragen von den mehreren CPUs (49) zurückhält,eine Adresse, einen Datenübertragungsmodus und einen Datenumfang jedes CPU-Zugriffs empfängt und speichert,die Speichersteuereinheit (46) über die Zugriffsanfragen benachrichtigt,bei Empfangen eines Zugelassen-Signals für die Zugriffsanfragen die Informationen als Reaktion auf das Zugelassen-Signal an die Speichersteuereinheit (46) sendet, undbei Nicht-Empfangen des Zugelassen-Signals für die Zugriffsanfragen die wartenden Zugriffsanfragen von den mehreren CPUs (49) zurückhält, unddie Speichersteuereinheit (46)die Zugriffsanfragesignale empfängt, eine CPU (49) angibt, deren Zugriffsanfragen von der Zugriffsarbitrierung zugelassen wurden, und das Zugelassen-Signal an die CPU-Schnittstellenschaltung (52) sendet und die mehreren CPU-Zugriffsanfragen in einem einzigen Buszyklus ausführt, undbei Empfangen mehrerer CPU-Zugriffsanfragen im Falle, dass gerade eine Datenflussübertragung des anderen Funktionsblocks durchgeführt wird, die mehreren CPU-Zugriffsanfragen zurückhält und die mehreren CPU-Anfragen nach Abschluss der Datenflussübertragung vom Funktionsblock in einem einzigen Übertragungszyklus durchführt.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Speicherzugriffssteuerung für mehrere in einer Informationsvorrichtung enthaltene Prozessoren.
  • Hintergrund
  • Die Verringerung des Stromverbrauchs und die Kostensenkung stellen für eine Speichereinheit einen Hauptgesichtspunkt dar. Zum Beispiel leistet eine Verringerung der Anzahl verwendeter DRAM-Speicher einen großen Beitrag zur Verringerung von Stromverbrauch, Kosten und Speicheraufwand. Kürzlich wurde eine mit mehreren CPUs ausgestattete SoC-LSI (hochintegrierte Schaltung in Ein-Chip-Lösung) entwickelt. Im Allgemeinen benötigt jede der mehreren CPUs jeweils einen Hauptspeicher. Die gemeinsame Nutzung der mehreren CPU-Arbeitsspeicher mit anderen DRAM-Speichern in der LSI (hochintegrierte Schaltung) kann die Anzahl der als Hauptspeicher verwendeten DRAM-Speicher verringern.
  • 1 zeigt einen ASIC mit einem DRAM-Speicher, auf den von einer CPU (CPU-Zugriff) und Datenflussübertragungen gemeinsam zugegriffen wird, sowie einen Arbiter, der die gemeinsame Nutzung des Speichers ermöglicht. In dieser Konfiguration mit gemeinsam genutztem Speicher nutzen ein Datenpuffer für Datenflüsse und ein Hauptspeicher der CPU denselben DRAM-Speicherchip gemeinsam. Beim gemeinsam genutzten Speicher sind nutzbare Bereiche eines DRAM-Speichers physisch voneinander getrennt.
  • Firmware, die eine CPU verwendet, steuert Hardware wie beispielsweise einen Datenfluss-ASIC, um Daten von und zu Speichermedien zu übertragen. Da sich der Codehauptteil der Firmware in einem Hauptspeicher befindet, erfolgt der Zugriff auf den Hauptspeicher innerhalb der Firmware-Abläufe. Eine Verzögerung zwischen der Ausgabe einer Zugriffsanfrage auf den Hauptspeicher bis zum Abschluss der Anfrage stellt eine Latenzzeit der CPU dar. Je länger diese Latenzzeit ist, desto geringer ist die Leistungsfähigkeit der CPU.
  • Bei diesem Verfahren führt ein Steckenbleiben entsprechender Daten zu einer Unterbrechung einer Host-Übertragung oder einer Verringerung der Datenträgerübertragungsrate. Wird die Architektur eines Datenpuffers betrachtet, muss bei gleichzeitigem Auftreten von Datenübertragungsanfragen von allen Blöcken jeweils Bedarf an benötigten Bändern erfüllt werden. Auch wenn ein Speicher vom Hauptspeicher und dem Datenpuffer gemeinsam genutzt wird, muss der Durchsatz von Datenflussübertragungen und CPU-Zugriffen erfüllt werden. Insbesondere wenn die Einheit mit mehreren CPUs ausgestattet ist, muss die Bandbreite des DRAM-Speichers gesichert werden. Das physische Band des DRAM-Speichers, über das auf der Grundlage der Busbreite und -frequenz entschieden wird, ist jedoch begrenzt.
  • Weiterhin beeinflusst die Durchlaufzeit eines Hauptspeicherzugriffs die Leistungsfähigkeit der CPU. Wenn eine Anfrage nach Zugriff auf den Hauptspeicher während einer sich vom Hauptspeicherzugriff (z.B. Datenflussübertragung) unterscheidenden Übertragung eintrifft, muss die Anfrage bis zum Abschluss der aktuellen Übertragung warten. Wenn somit ein Speicher vom Hauptspeicher und einem anderen DRAM-Speicher gemeinsam genutzt wird, entstehen die folgenden Probleme.
  • Wie kann eine erforderliche Bandbreite von Hauptspeicherzugriffen für mehrere CPUs innerhalb einer begrenzten Bandbreite garantiert werden. Eine einfache Möglichkeit, die erforderliche Bandbreite sicherzustellen, stellt ein Erhöhen der physischen Bandbreite dar. Ein Erweitern der Busbreite, um die Bandbreite zu erhöhen, führt jedoch zu einer Erhöhung der Anzahl verwendeter Chips, und dies macht das beabsichtigte Ziel des Verringerns der Anzahl von Speicherteilen zunichte. Andererseits führt ein Erhöhen der Betriebsfrequenz zu einer Erhöhung des Stromverbrauchs, und dies stellt keine perfekte Lösung dar.
  • Ein Verringern des Übertragungsaufwandes stellt ein wirksames Mittel zum Verbessern der Bandbreite innerhalb einer gegebenen physischen Bandbreite dar. Bei der gemeinhin verwendeten DRAM-Technologie, wie beispielsweise DDR3 SDRAM, kann im Falle, dass sich die Burst-Übertragungslänge um einen Zugriff erhöht, das Aufwandsverhältnis verringert werden. Bei einer Speicherarchitektur, die der benötigten Bandbreite genügt, ist es wirksam, für Blöcke mit hoher benötigter Bandbreite eine lange Burst-Übertragungslänge und für Blöcke mit niedriger benötigter Bandbreite eine kurze Burst-Übertragungslänge vorzusehen. Der Datenpuffer von IBM Bandlaufwerken ist auf der Grundlage dieses Konzeptes ausgelegt, wodurch eine relativ niedrige Betriebsfrequenz mit hoher Datenübertragungseffizienz erreicht wird.
  • Im Falle von Hauptspeicherzugriffen, für welche die Durchlaufzeit einen Hauptgesichtspunkt darstellt, muss der Hauptspeicherzugriff im Falle, dass der Speicherzugriff durch einen anderen Block durchgeführt wird, wenn eine Hauptspeicheranfrage eintrifft, bis zum Abschluss der aktuellen Übertragung warten. Eine mögliche Option zum Lösen dieses Problems stellt es dar, die aktuelle Übertragung anzuhalten und die Hauptspeicherübertragung zuzulassen, dies kann jedoch in einem System, mit hoher erforderlicher Leistung nicht angewandt werden, da dies die Bandbreite der anderen Blöcke beeinträchtigt.
  • Zum Aufwand bei der DRAM-Technologie zählen ein „mode register set“-Befehl (MRS), ein Befehl zum Aktivieren einer Zeilenadresse, auf die zugegriffen werden soll (Aktivieren), ein Befehl zum Schließen der verwendeten Zeile (Voraufladen (Precharge)), einen Aktualisierungsbefehl (Aktualisieren) und weitere. Gemäß diesen Befehlen werden keine Daten übertragen. Beim Anwenden der Spezifikationen gibt es eine vorhandene Technik, keinen Vorauflade-Befehl an Zugriffe mit aufeinander folgenden Adressen auszugeben. Dies ist für einen ausschließlich als Hauptspeicher verwendeten DRAM wirkungsvoll und führt tatsächlich zu einer Verringerung des Aufwands. Im Falle eines von CPUs für verschiedene Zwecke gemeinsam genutzten Speichers ist dieses Verfahren jedoch nicht wirkungsvoll, da der Speicher genutzt wird, indem der physische Bereich des Speichers geteilt wird und damit die Adressen nicht aufeinander folgend sind.
  • Der Zugriff von einer CPU auf einen Hauptspeicher stellt einen Zugriff in Bytes oder durch eine Cachespeicherzeile dar. Im Falle einer CPU in einem integrierten System, beträgt die Cachespeicherzeile 32 Bytes oder 64 Bytes. Wenn in diesem Fall der Datenbus für den DRAM-Speicher 32 Bit beträgt, findet die Übertragung in acht Bursts oder 16 Bursts statt. Somit ist der CPU-Zugriff hinsichtlich der Burst-Übertragung nicht effizient und vergrößert den Aufwand.
  • 2. Wie kann die Durchlaufzeit von Hauptspeicheranfragen verringert werden.
  • Wie beim vorstehenden Problem 1 erwähnt, muss die Hauptspeicheranfrage im Falle, dass eine Anfrage nach Zugriff auf den Hauptspeicher während einer Übertragung eines anderen Blocks (z.B. Datenfluss) eintrifft, bis zum Abschluss der aktuellen Übertragung warten. Im Falle eines Arbiters, der so gestaltet ist, dass er dem Hauptspeicherzugriff die höchste Priorität einräumt, wird der Zugriff erlaubt, um die Daten zu übertragen. Der Übertragungszyklus jedes anderen Blocks beträgt mindestens ungefähr 20 Taktzyklen des DRAM-Speichertaktgebers, und dies stellt einen der Hauptfaktoren bei der Erhöhung der Latenzzeiten des Hauptspeicherzugriffs dar. Das Verfahren des Unterbrechens der Übertragung eines anderen Blocks muss ein System berücksichtigen, um die Unterbrechungsverzögerung zu kompensieren. Zu diesem Zweck erhöht sich dann der Übertragungsaufwand, da ein Neuübertragungszyklus erforderlich ist, was es schwierig macht, die Bandbreite des Blocks zu garantieren.
  • Die JP H11 120 124 A betrifft ein Buszugangs-Arbitrierungssystem für Datenpufferzugriffe zwischen einer Host-Seite und einer CD-Datenträger-Seite. Beim Steuern von Zugriffen mehrerer Blöcke in einem CD-Laufwerk auf einen Datenpuffer erteilt dieses Buszugangs-Arbitrierungssystem Prioritäten für Zugriffe von jeweiligen Blöcken und Beschränkungen für die Anzahl von Zugriffen von diesen.
  • Die WO 2010 / 073 776 A1 offenbart ein Bandlaufwerk zum Lesen von Bändern, die mehrere in Vorwärts- oder Rückwärtsrichtung zu lesende Spuren umfassen. Mehrere Datensätze werden effizient von einem Aufzeichnungsmedium gelesen, auf dem die zu lesenden Datensätze verteilt aufgezeichnet sind. In einem Controller des Bandlaufwerks, wenn ein Befehlsprozessor eine Kennung d-id von Daten und eine Kennung m-id von Metadaten empfängt, erfasst eine Kassettenspeicher-Ein-/Ausgabeeinheit eine Positionstabelle, welche die Spuren, auf denen die durch die d-id gekennzeichneten Datensätze und die durch die m-id gekennzeichneten Metadaten aufgezeichnet sind, und deren physikalische Positionen (L-POSs) in Leserichtung der Spur angibt. Eine Lesereihenfolge-Feststellungseinheit ermittelt eine Lesereihenfolge der Datensätze und Metadaten, indem sie einen Datensatz-Extraktor, eine Richtungsbeurteilungseinheit und einen Auswertungsausführungslistengenerator gemäß den L-POSs in jeder der Spurrichtungen steuert. Anschließend liest eine Kanal-Ein-/Ausgabeeinheit die Daten und die Metadaten entsprechend der Lesereihenfolge vom Band und ein Puffermanager gibt die Daten und die Metadaten über den Befehlsprozessor an ein externes Gerät aus.
  • Die US 2007 / 0 055 813 A1 offenbart eine integrierte Schaltung und ein Verfahren zum Betreiben der integrierten Schaltung für den Zugriff auf einen externen Speicher. Die integrierte Schaltung umfasst eine Verbindungslogik zum Koppeln von Master-Logikeinheiten und Slave-Logikeinheiten, um das Ausführen von Transaktionen zu ermöglichen, wobei jede Transaktion einen Adresstransfer von einer Master-Logikeinheit zu einer Slave-Logikeinheit und einen oder mehrere Datentransfers zwischen dieser Master-Logikeinheit und dieser Slave-Logikeinheit umfasst. Mindestens eine Master-Logikeinheit kann, wenn sie auf Daten aus einem externen Speicher zugreifen soll, eine Transaktion initiieren, indem sie den Adresstransfer über die Verknüpfungslogik auslöst, wobei die Transaktion mit Formatinformationen verknüpft ist, die verwendet werden, um den einen oder die mehreren Datentransfers der Transaktion für die Übertragung über die Verknüpfungslogik zu formatieren. Ein Speicher-Controller fungiert als Slave-Logikeinheit für die Transaktion und ist über einen externen Bus mit dem externen Speicher gekoppelt. Der Speicher-Controller verarbeitet die Transaktion, indem er einen oder mehrere Befehle über den externen Bus an den externen Speicher ausgibt, um einen oder mehrere externe Datentransfers zwischen dem Speicher-Controller und dem externen Speicher zu veranlassen. Dabei kann der Speicher-Controller für jeden Befehl ein externes Format für den einen oder die mehreren externen Datentransfers unter Berücksichtigung mindestens einer vorgegebenen Beschränkung des externen Speichers und der Formatinformation der Transaktion auswählen. Diese Herangehensweise kann eine effiziente Ausnutzung des externen Busses, der den Speicher-Controller mit dem externen Speicher verbindet, ermöglichen.
  • Die US 2008 / 0 082 707 A1 offenbart ein Verfahren und eine Vorrichtung für einen Bus-Controller, der ein flexibles Busprotokoll unterstützt, das Bustransaktionen mit Pipelines und variabler Latenz handhabt und gleichzeitig eine Punkt-zu-Punkt- (P2P-) FIFO-Ordnung von Transaktionen in einer nicht blockierenden Weise beibehält. In einer Beispiel beinhaltet die Vorrichtung einen Bus-Controller, um eine Vielzahl von Bustransaktionen an einem ersten eingehenden Anschluss von einem Bus zu empfangen. Der Bus-Controller ist so konfiguriert, dass er die Vielzahl von Bustransaktionen in einer Pipeline verarbeitet, wobei die P2P-FIFO-Ordnung der Vielzahl von Bustransaktionen beibehalten wird, selbst wenn die Vielzahl von Bustransaktionen eine variable Anzahl von Zyklen zum Abschluss benötigt.
  • Zusammenfassung der Erfindung
  • Durch die Erfindung zu lösendes Problem
  • Das Busarbitrierungssystem von Patentdokument 1 berücksichtigt nicht die Latenzzeiten von CPU-Zugriffen und Durchsätze von CPUs sowie mehrere Übertragungsblöcke in einem Speichersystem, bei dem ein Speicher von Hauptspeichern mehrerer CPUs und einem Datenpufferspeicher gemeinsam genutzt wird.
  • Die vorliegende Erfindung stellt eine Speicherzugriffseinheit bereit, die einen Mechanismus für gemeinsam genutzten Speicher und ein Verfahren für mehrere in eine Informationsvorrichtung (z.B. eine Speichereinheit) eingebaute CPUs beinhaltet
  • Mittel zum Lösen der Probleme
  • Um das vorstehende Ziel zu erreichen, stellt die vorliegende Erfindung eine Speicherzugriffseinheit für die gemeinsame Nutzung von Hauptspeichern für mehrere CPUs und einen Datenpuffer für andere Funktionsblöcke bereit. Diese Speicherzugriffseinheit enthält:
    • die mehreren CPUs, die einen Speicher als diese Hauptspeicher nutzen;
    • die anderen Funktionsblöcke, die den Speicher als diesen Datenpuffer nutzen;
    • eine mit einem Bus für die CPUs verbundene CPU-Schnittstellenschaltung, um Speicherzugriffsanfragen von den mehreren CPUs zu steuern; und
    • eine mit der CPU-Schnittstellenschaltung verbundene Speichersteuereinheit, um Speicherzugriffsanfragen von den CPUs und den Funktionsblöcken zu arbitrieren, wobei
    • die CPU-Schnittstellenschaltung Zugriffsanfragen von den mehreren CPUs zurückhält, während sie die Adresse, den Datenübertragungsmodus und den Datenumfang jedes Zugriffs empfängt und speichert, die Speichersteuereinheit über die Zugriffsanfragen benachrichtigt, bei Empfangen eines Zugelassen-Signals für die Zugriffsanfragen die Informationen als Reaktion auf das Zugelassen-Signal an die Speichersteuereinheit sendet, und
    • die Speichersteuereinheit die Zugriffsanfragesignale empfängt, eine CPU angibt, deren Zugriffsanfrage von der Zugriffsarbitrierung zugelassen wurde, und das Zugelassen-Signal an die CPU-Schnittstellenschaltung sendet.
  • Gemäß einer Ausführungsform handelt es sich bei dem Speicher um einen DRAM.
  • Diese Speicherzugriffseinheit ist dadurch gekennzeichnet, dass die CPU-Schnittstellenschaltung im Falle, dass die Speichersteuereinheit das Zugelassen-Signal für die Zugriffsanfragen nicht sendet, wartende Zugriffsanfragen von den mehreren CPUs zurückhält.
  • Diese Speicherzugriffseinheit ist dadurch gekennzeichnet, dass die Speichersteuereinheit eine Übertragungssequenz von mehreren CPU-Zugriffsanfragen in einem einzigen Buszyklus ausführt.
  • Diese Speicherzugriffseinheit ist dadurch gekennzeichnet, dass die Speichersteuereinheit bei Empfangen mehrerer CPU-Zugriffsanfragen im Falle, dass die Übertragung eines anderen Funktionsblocks durchgeführt wird, die mehreren CPU-Zugriffsanfragen zurückhält und die mehreren CPU-Zugriffsanfragen nach Abschluss der Datenflussübertragung in einem einzigen Übertragungszyklus durchführt.
  • Gemäß einer Ausführungsform führt die Speichersteuereinheit (a) eine oder mehrere Zugriffsanfragen von den mehreren CPUs in einem einzigen Übertragungszyklus unter Verwendung eines Bank Interleave (Bankverschränkung) des DRAM durch.
  • Gemäß einer Ausführungsform ist die Speicherzugriffseinheit dazu ausgebildet, dass (b) im Falle, dass die Zugriffsanfragen von denselben CPUs stammen wie diejenigen, welche die Speichersteuereinheit während der Ausführung der Übertragung eines andern Blocks zurückhält, die Speichersteuereinheit die mehreren CPU-Zugriffsanfragen zurückhält und die mehreren CPU-Zugriffsanfragen nach Abschluss der Datenflussübertragung in einem einzigen Übertragungszyklus durchführt.
  • Gemäß einer Ausführungsform werden die Übertragung von (a) und die Übertragung von (b) in Kombination durchgeführt.
  • Gemäß einer Ausführungsform beinhaltet die CPU-Schnittstellenschaltung:
    • einen Schritt (Ruhe) des Sendens eines Übertragungsmodus (Lesen/Schreiben) und einer Adresse jedes Zugriffs an die Speichersteuereinheit;
    • einen Schritt des Empfangens von Übertragungsanfragen von mehreren CPUs, und wenn sich diese Bankadressen unterscheiden, Senden eines Bl-Signals an die Speichersteuereinheit, das angibt, in den Bank-Interleave-Modus einzutreten;
    • einen Schritt des Zählens von Übertragungswörtern, Durchführens der zurückgehaltenen Übertragungs-Anfragen, Lesen oder Schreiben, bis die Wortzahl den Übertragungsumfang der entsprechenden CPU-Zugriffe erreicht und Durchführen beider im Bank-Interleave-Modus, da die entsprechenden Zugriffe von CPUs zurückgehalten wurden; und
    • einen Schritt, bei dem die CPU-Schnittstellenschaltung im Falle, dass die folgenden Übertragungsanfragen eintreffen und diese Anfrageadressen dieselben Bankadressen darstellen wie vorherige, ein Fortfahr-Signal am die Speichersteuereinheit sendet, und
    • die Speichersteuereinheit enthält:
      • einen Schritt des Prüfens, ob das BI-Signal empfangen wurde;
      • einen Schritt des Anhaltens der Burst-Übertragung, wenn die CPU-Schnittstellenschaltung dies angibt;
      • einen Schritt des Bestätigens, dass das Fortfahr-Signal bei den folgenden Anfragen gilt, und wenn das Fortfahr-Signal bei den folgenden Anfragen gilt, Durchführen dieser wartenden Anfragen in der CPU-Schnittstellenschaltung bzw. Zurückgehen zu Schritt 3, um Daten jeweils bis zum Burst-Anhalten zu übertragen, oder wenn das Fortfahr-Signal nicht gilt, Beenden der Sequenz mit einem nachstehenden Beendigungsschritt; und
      • einen Schritt des Ausgebens eines Vorauflade-Befehls an den Speicher, um die Bänke, die verwendet werden, zu schließen.
  • Gemäß einer Ausführungsform beinhaltet der Schritt der Speichersteuereinheit einen Schritt, in dem im Falle des Eintreffens eines BI-Signals mehrere Aktivier-Befehle für entsprechende Bänke an den Speicher ausgegeben werden, oder wenn kein BI-Signal eintrifft, ein Aktivier-Befehl ausgegeben wird.
  • Gemäß einer Ausführungsform ist ein DRAM als der Speicher enthalten.
  • Um das vorgenannte Ziel zu erreichen, wird als zusätzliches Ausführungsbeispiel ein Speicherzugriffsverfahren für eine Einheit bereitgestellt, beinhaltend: mehrere einen Speicher als diese Hauptspeicher nutzende CPUs, die den Speicher mit einem Datenpuffer für andere Funktions-(Datenfluss-)Blöcke gemeinsam nutzen; die anderen Funktions-(Datenfluss-)blöcke nutzen den Speicher als diesen Datenpuffer; eine mit einem Bus für die CPUs verbundene CPU-Schnittstellenschaltung, um Speicherzugriffsanfragen von den mehreren CPUs abzuwickeln; und eine mit der CPU-Schnittstellenschaltung verbundene Speichersteuereinheit, um Speicherzugriffsanfragen von den CPUs und den Funktionsblöcken zu arbitrieren. Das Verfahren beinhaltet:
    • einen Schritt des Einreihens von Zugriffsanfragen (Signalen) von den mehreren CPUs in eine Warteschlange;
    • einen Schritt des Empfangens und Speicherns der Adresse, des Datenübertragungsmodus und des Datenumfangs jedes Zugriffs und Benachrichtigens der Speichersteuereinheit über die Zugriffsanfragen;
    • einen Schritt des Sendens der Informationen an die Speichersteuereinheit als Reaktion auf ein zugelassenes Signal bei Empfangen des zugelassenen Signals für die Zugriffsanfragen (Signale); und
    • einen Schritt des Empfangens der Zugriffsanfragesignale, Angebens der CPUs, deren Zugriffsübertragungen von der Zugriffsarbitrierung zugelassen wurden, und Sendens des zugelassenen Signals an die CPU-Schnittstellenschaltung.
  • Vorteil der Erfindung
  • Wie vorstehend beschrieben, wird gemäß der vorliegenden Erfindung in einem durch einen Hauptspeicher für mehrere CPUs und andere Speicher wie beispielsweise Datenpuffer gemeinsam genutzten Speichersystem im Falle, dass Hauptspeicherzugriffsanfragen eintreffen, die Datenübertragung ermöglicht, wobei die Zugriffsverzögerung minimiert und der Aufwand der Datenübertragung verringert wird.
  • Figurenliste
    • 1 zeigt einen ASIC mit einem DRAM-Speicher, auf den gemeinsam von einer CPU (CPU-Zugriff) und Datenflussübertragungen zugegriffen wird;
    • 2 zeigt ein Konzeptschaubild, das Speicherübertragungen der vorliegenden Erfindung in einer DRAM-Konfiguration mit mehreren CPU-Zugriffen und Datenflusszugriffen zeigt;
    • 3 zeigt ein Blockschaubild, das die Konfiguration einer Bandaufzeichnungseinheit darstellt;
    • 4 zeigt eine Konfiguration (ASIC) einer in einer Steuereinheit 16 des Bandlaufwerks enthaltenen DRAM-Steuereinheit und Schaltungsblöcke zum Durchführen der Datenflusssteuerung und Weiterem;
    • 5 zeigt ein Blockschaubild, das Verbindungen zwischen einem lokalen Bus 51 für Zugriffsblöcke darstellt, einschließlich mehrerer CPUs, einer CPU-Schnittstelle und einer DRAM-Steuereinheit;
    • 6 zeigt, dass die CPU-Schnittstelle zwei oder mehr lokale Busse mit der DRAM-Steuereinheit verbindet; und
    • 7 zeigt einen Ablaufplan, der eine Befehlssequenz zum Ausführen der vorliegenden Erfindung darstellt.
  • Ausführungsart der Erfindung
  • Eine DRAM-Zugriffseinheit gemäß einer bevorzugten Ausführungsform (nachfolgend einfach die „Ausführungsform“ genannt) der vorliegenden Erfindung wird nachstehend hinsichtlich Datenflüssen in einer Aufzeichnungseinheit und Zugriffen von mehreren CPUs beschrieben. Es ist zu beachten, dass es sich bei der folgenden Ausführungsform um ein veranschaulichendes Beispiel handelt und sie nicht als den Inhalt der vorliegenden Erfindung einschränkend beabsichtigt ist.
  • In einem Speichersystem zur gemeinsamen Nutzung von Hauptspeichern für mehrere CPUs und einen weiteren Datenpufferspeicher werden im Falle, dass eine CPU-Zugriffsanfrage eintrifft, die folgenden Verfahren durchgeführt:
    1. (a) Wenn mehrere Hauptspeicherzugriffsanfragen eintreffen, werden diese Anfragen in einem Wartezustand gehalten, wenn gerade die Übertragung eines anderen Blocks durchgeführt wird. Dann werden nach Abschluss der Übertragung eines anderen Blocks diese beiden Übertragungsanfragen in einem einzigen Zyklus unter Verwendung eines in Spezifikationen wie beispielsweise DDR3 SDRAM definierten Bank Interleave (hierin nachfolgend mit BI abgekürzt) durchgeführt.
    2. (b) Wenn eine bestimmte Hauptspeicherzugriffsanfrage eintrifft, wird diese Anfrage in einem Wartezustand gehalten, falls gerade die Übertragung eines anderen Blocks durchgeführt wird. Während dieser Zeitdauer wird die nächste Zugriffsanfrage von derselben CPU ausgegeben. Eine DRAM-Speichersteuereinheit (Arbiter) lässt den Zugriff auf den Hauptspeicher zu, und wenn die nächste Übertragungsanfrage zusammen mit der bereits in die Warteschlange eingereihten CPU-Anfrage in die Warteschlange eingereiht wird, führt sie unter Berücksichtigung von Umständen die nächste Datenübertragung im selben Zyklus durch.
    3. (c) Eine Kombination der zwei vorstehenden Verfahren
  • Durch Verwenden dieser Verfahren wird der Übertragungsaufwand zum Durchführen effizienter DRAM-Übertragung verringert.
  • Gemäß (a) werden in einer Architektur, in der die Hauptspeicher für die mehreren CPUs logisch in Bereiche auf dem gemeinsam genutzten Speicher geteilt sind, entsprechenden Bereichen Bankadressen von DDR3 SDRAM zugeordnet. In diesem Fall werden mit den Bankadressen unter Verwendung eines Bank Interleave auch dann zwei Übertragungen gleichzeitig durchgeführt, wenn sich die zwei CPU-Zugriffe in zwei Bereichen von Zugriffszielen unterscheiden. Somit ist das Problem 2 im Hinblick auf die zweite Übertragungsanfrage und nachfolgende Übertragungsanfragen gelöst.
  • Gemäß (b) wird die erste Anfrage bis zum Abschluss der gerade durchgeführten Übertragung eines anderen Blocks im Wartezustand gehalten, die Durchlaufzeit zu nachfolgenden Übertragungsanfragen wird jedoch enorm verringert. Somit ist das Problem 2 im Hinblick auf die zweite Übertragungsanfrage und nachfolgende Übertragungsanfragen gelöst.
  • Da gemäß (c) die zwei Techniken (a) und (b) in Kombination verwendet werden, werden Übertragungsanfragen von den mehreren CPUs innerhalb eines einzigen Übertragungszyklusses abgeschlossen. Da Zugriffe von den mehreren CPUs durch eine einzige Übertragung durchgeführt werden, wird der Übertragungsaufwand verringert und somit die Effizienz bei der Verwendung von Speicherbändern verbessert, wodurch das Problem 1 verbessert wird. Da Extrabänder gesichert werden können, können sie dem Hauptspeicherband selbst oder einem Band für andere Blöcke (z.B. Datenflussblöcke) zugewiesen werden. Diese Anzahl von Warteschlangen kann abhängig vom System gesteuert werden, um eine Steuereinheit für gemeinsam genutzten Speicher mit hoher Nutzeffizienz zu verwirklichen.
  • 2 zeigt ein Konzeptschaubild, das Speicherübertragungen der vorliegenden Erfindung in einer DRAM-Konfiguration mit mehreren CPU-Zugriffen und Datenflusszugriffen zeigt. Unter Bezugnahme auf 2 werden die Techniken (a) bis (c) der vorliegenden Erfindung beschrieben. 2B zeigt, dass ein Datenbus 47 und ein lokaler CPU-Bus 48 Anfragen an einen externen DRAM 45 richten. Eine Informationsvorrichtung (z.B. eine Speichereinheit) ist mit mehreren CPUs zur Funktionssteuerung und dem Datenbus 47 zum Lesen/Schreiben von Daten ausgestattet. Eine Zugriffsübertragung wird von jeder CPU 49 an den DRAM 45 vorgenommen. Parallel zu diesen Zugriffsübertragungen wird der Speicher für das Lesen/Schreiben von Daten als ein Datenpuffer 451 verwendet. Die CPU-Übertragungen (CPU-Zugriffe) von mehreren CPUs 1, 2 und 3 verwenden einen 452 im DRAM. Zu diesem Zeitpunkt werden die Adressen von den jeweiligen CPUs durch Adressieren unter Verwendung eines Bank Interleave unterschiedlichen Bankadressen zugewiesen. 2A zeigt, dass der Datenbus 47 jeweils einmal für die Datenfluss-REQ 1, 2, ... eine Übertragung 41 von 512 Byte vornimmt. Während dieser Übertragung werden Übertragungen von mehreren CPUs im Wartezustand gehalten. Eine Übertragung 43 von den CPUs 1,... wird nach Abschluss der Datenübertragung kollektiv durch eine einzige Übertragung durchgeführt. Somit wird der CPU-Zugriffsaufwand 39 verringert. 512 Byte an Daten in jedem Datenfluss 41 werden in einem einzigen Übertragungszyklus übertragen, und während des Zyklus wird die CPU-Übertragung im Wartezustand gehalten, um eine Verzögerung beim CPU-Zugriff hervorzurufen. Wenn sich die Zugriffe von mehreren CPUs fortsetzen und somit ausgelastet werden, beeinflusst die Verzögerung beim Abschließen der Datenübertragung jede Zugriffsübertragung. Bei den CPU-Zugriffsübertragungen handelt es sich um Teile (schraffierte Flächen) 32B, die den Lese/Schreib-Befehl einschließen, und diese Teile sind von geringer Größe. Wenn daher zwei oder mehr CPU-Zugriffe in eine Übertragung zusammengefasst werden können, kann der CPU-Zugriffsaufwand insgesamt verringert werden. Wenn andererseits CPU-Zugriffe gesammelt werden können, können nicht nur ausreichend Übertragungsbänder für die Übertragung von CPU-Zugriffen, sondern auch für Datenflüsse gesichert werden, was den Durchsatz von Datenübertragungen verbessert.
  • 3 zeigt ein Blockschaubild, das die Konfiguration eines Bandlaufwerks 10 darstellt. Hier wird das Bandlaufwerk beschrieben, auf das die Ausführungsform angewandt wird. Das Bandlaufwerk 10 enthält eine Schnittstelle 11, einen Datenpuffer 12, einen Aufzeichnungskanal 13, ein Band 23, einen Kopf 14, Spulen 21 und 22, eine Kassette 20, einen Motor 15, eine Steuereinheit 16, ein Kopfpositionier-Steuersystem 17 und einen Motortreiberstufe 18. Die Schnittstelle 11 tauscht Daten mit einem Host 30 aus.
  • Die Schnittstelle 11 empfängt einen Befehl, der das Schreiben von von dem Host 30 an den Datenpuffer 12 zu übertragenden Daten anweist, und einen Befehl, der das Schreiben von Daten im Datenpuffer 12 auf das Band 23 anweist. Zum Beispiel handelt es sich beim Datenübertragungsstandard für die Schnittstelle 11 um SCSI oder Fibre Channel.
  • Beim Datenpuffer 12 handelt es sich um einen Speicher zum Ansammeln von auf das Band 23 zu schreibenden Daten. Der Datenpuffer 12 ist in Segmente fester Länge aufgeteilt. Ein Segment entspricht einem Datensatz auf dem Band 23. Der Datensatz besitzt eine Datenstruktur, zu der aus einer C1-Parität und einer C2-Parität bestehender wiederholter Code hinzugefügt wird. Der Datensatz (DataSet) enthält in einer Datensatzinformationstabelle (Data Set Information Table DSIT) Trenninformationen zu mehreren darin enthaltenen Datensätzen (Daten) als Attributinformationen. Eine in der Steuereinheit 16 enthaltene CPU erzeugt die DSIT für jeden Datensatz im Datenpuffer 12. Die DSIT wird in jeden Datensatz eingefügt. Die Erzeugung der DSIT bedeutet, dass die CPU direkt auf den Datenpuffer zugreifen und Firmware ausführen kann, um Datenverwaltungsinformationen hinzuzufügen.
  • Der Datenpuffer 12 wird Ringdatenpuffer genannt, da er Daten bis zum letzten Segment empfängt und dann wieder mit dem Empfangen von Daten vom ersten Segmente an beginnt. Die Daten besitzen eine beliebige Länge und werden vom Host 30 zum Laufwerk übertragen. Auch wenn Daten fester Länge vom Host übertragen werden, wird sich die Datenlänge von Daten zu Daten unterscheiden, falls die Daten komprimiert sind. Diese Stücke von Übertragungsdaten werden sequenziell in den Segmenten des Datenpuffers 12 angesammelt. Bei dem Aufzeichnungskanal 13 handelt es sich um einen Datenübertragungspfad zum Schreiben von mit Daten verschiedener Größe gefüllten Segmentdaten als einen Datensatz auf ein Bandmedium. Die im Datenpuffer 12 als ein Datensatz für jedes Segment angesammelten Daten werden auf den Banddatenträger geschrieben. Das Schreiben erfolgt, wenn das Segment mit Daten gefüllt ist.
  • Bei dem Band 23 handelt es sich um ein Aufzeichnungsmedium als Datenaufzeichnungsmittel. Die Daten, die den Aufzeichnungskanal 13 durchlaufen haben, werden durch den Kopf 14 als ein Datensatz auf das Band 23 geschrieben. Das Band 23 wird zwischen den Spulen 21 und 22 so abgewickelt, dass es sich zusammen mit der Drehung in Längsrichtung von der Spule 21 zur Spule 22 oder umgekehrt bewegt. Bei der Kassette 20 handelt es sich um einen Behälter zum Aufnehmen der Spule 21, auf die das Band 23 gewickelt ist. Eine Kassette derselben Art wie die Kassette 20 kann bereitgestellt werden, um eine Spule 14d aufzunehmen. Der Motor 15 treibt die Spulen 21 und 22 so an, dass sie sich drehen.
  • Die Steuereinheit 16 steuert den gesamten Betrieb des Bandlaufwerks 10. Die Steuereinheit 16 steuert das Schreiben/Lesen von Daten auf das Band 23 entsprechend einem durch die Schnittstelle 11 vom Host 30 empfangenen Befehl. Die Steuereinheit steuert zudem das Kopfpositionier-Steuersystem 17 und den Motortreiberstufe 18. Das Kopfpositionier-Steuersystem 17 folgt einer gewünschten Spur. Wenn der Kopf 14 zwischen Spuren wechseln muss, steuert das Kopfpositionier-Steuersystem 17 den Kopf 14 so, dass er elektrisch wechselt. Die Motortreiberstufe 18 kann auch direkt mit der Steuereinheit 16 verbunden sein.
  • 4 zeigt eine Konfiguration (ASIC) einer in der Steuereinheit 16 des Bandlaufwerks enthaltenen DRAM-Steuereinheit und Schaltungsblöcke zum Durchführen der Datenflusssteuerung und Weiterem. Die Steuereinheit 16 enthält Funktionsblöcke, wie beispielsweise Prozessoren 80 zum Durchführen verschiedener Arten von Steuerungen, einen Flash-ROM 90, in dem Firmware gespeichert ist, einen Pufferverwalter 40, eine Bandübertragung 70, eine Host-Übertragung 60 und einen C2-ECC-Berechner (Fehlerkorrektur) 50. Der Bandübertragungsblock 70 verbindet das Band 23 und den Lese/Schreibkopf 14. Der Host-Übertragungsblock 60 ist mit dem Host 30 verbunden. Die Steuereinheit (ASIC) 16 steuert die Zuordnung zwischen dem Banddatenträger 23 und dem Kopf 14 sowie zwischen dem Host 30 und dem externen Puffer 12. Insbesondere besitzt der Pufferverwalter 40 eine Funktion, Speicherzugriffe zwischen dem externen Puffer 12, dem Bandübertragungsblock 70, dem Host-Übertragungsblock 60, dem C2-ECC-Berechnerblock 50 und den zwei Prozessoren (CPU 1 und CPU 2) 80 zu arbitrieren.
  • Nachfolgend wird ein Datenübertragungsfluss vom Zeitpunkt des Übertragens von Daten vom Host 30 bis zum Zeitpunkt des Schreibens von Daten auf das Band beschrieben. Daten vom Host-Übertragungsblock 60, die vom Host empfangen wurden, werden durch den Pufferverwalterblock 40 einmal im externen Puffer 12 gespeichert. Der Pufferverwalterblock 40 benötigt eine hohe Bandbreite, um Hochgeschwindigkeits-Pipelineverarbeitung an Zugriffen von Datenübertragungen von jedem der Funktionsblöcke 50, 60 und 70 in den externen Puffer durchzuführen. Bei dem externen Puffer handelt es sich zum Beispiel um einen DDR3 SDRAM 12 mit einer Busbreite von vier Byte oder acht Byte. Die im externen Puffer 12 gespeicherten Daten werden an den SRAM des C2-ECC-Berechners 50 übertragen. Im C2-ECC 50 werden Fehler in allen Datenstücken korrigiert, und die korrigierten Daten werden zurück in den DDR3 SDRAM 12 geschrieben. Als eine Funktion der Datenflusssteuereinheit wechselt der Pufferverwalter in Timesharing-Weise zwischen Bussen, damit jedem der Funktionsblöcke 50, 60 und 70 der effiziente Zugriff auf den DDR3 SDRAM 12 ermöglicht wird. Der C2-ECC 50 besitzt strenge Anforderungen an die Zeitverarbeitung aufgrund einer derartigen Architektur, dass vom DDR3 SDRAM 12 gelesene Daten auf den DDR3 SDRAM 12 zurückgeschrieben werden.
  • Um gleichförmige Pipeline-Verarbeitung an Datenübertragung von jedem der Funktionsblöcke zu ermöglichen, ist es notwendig, die erforderliche Bandbreite jedes Blocks zu garantieren. Wenn die CPU Host- oder Datenträgerübertragungen steuert, werden Daten vorübergehend im externen Puffer gespeichert und sequenziell verarbeitet. Zum Beispiel werden im Falle des Schreibens vom Host auf die Speichereinheit Daten vom Host zuerst im externen Puffer gespeichert. Als Nächstes werden die Daten vom externen Puffer gelesen, um Fehlerkorrekturcode (nachfolgend ECC genannt) hinzuzufügen. Eine durch den ECC-Berechner berechnete ECC-Parität wird wiederum im externen Puffer gespeichert. Danach werden die Daten wieder vom externen Puffer auf die Datenträgerseite gelesen. Für einen Schreib- oder Lesevorgang greift der Pufferverwalter mehrere Male über mehrere Funktionsblöcke auf den externen Puffer zu. Weiterhin bilden diese Prozesse eine Pipeline, und mehrere Zugriffsanfragen auf den externen Puffer werden gleichzeitig ausgegeben.
  • 5 zeigt ein Blockschaubild, das Verbindungen zwischen einem lokalen Bus 51 für (nicht gezeigte) Zugriffsblöcke darstellt, einschließlich mehrerer CPUs, einer CPU-Schnittstelle und einer DRAM-Steuereinheit. In 3 sind diese DRAM-Zugriffsschaltungen in der Steuereinheit 16 enthalten. Die DRAM-Steuereinheit nutzt den Datenpuffer 12 gemeinsam. Normalerweise verwaltet die DRAM-Steuereinheit eine Sequenz zum Ausgeben von Befehlen an einen DRAM, wie beispielsweise einen DDR3 SDRAM. Da eine Reihenfolge des Ausgebens optimaler Befehle abhängig vom Zugreifen auf Blöcke variiert, wird die Befehlssequenz durch eine Zustandsmaschine in der Hardware verwendet, d.h. die DRAM-Steuereinheit besteht aus einer Befehlssteuerschaltung und einer CPU-Schnittstellenschaltung. Es wird von einem System ausgegangen, bei dem ein gemeinsam genutzter Speicher als zwei Speicher, einen CPU-Hauptspeicherraum und einen Datenpufferraum, genutzt wird. Signalleitungen zu einem Speicherchip (nicht gezeigt) werden von beiden Seiten gemeinsam genutzt, und eine DRAM-Steuereinheit 53 überträgt Daten zu und vom DRAM-Speicher in einer Timesharing-Weise während jeder Zugriffsblock arbitriert wird. Zugriffsblöcke, die Hauptspeicherzugriffe von CPUs enthalten, machen Übertragungsanfragen geltend (REQ-Signale) und wenn sie zugelassen werden, wird ein Zugelassen-Signal geltend gemacht, um jede Übertragung zu starten. Wenn bei der DRAM-Steuereinheit 53 über einen (nicht gezeigten) Block entschieden wird, von dem Zugriff zugelassen ist, beginnt die Befehlssteuerschaltung, daran zu arbeiten, Befehle in einer Sequenz entsprechend dem Übertragungsblock auszugeben.
  • Nachfolgend wird eine CPU-Schnittstelle (auch „CPU-Schnittstellenschaltung“ oder „CPU-Schnittstellenblock“ genannt) beschrieben. Diese Schaltung ist mit dem lokalen Bus für mehrere CPUs verbunden, um Zugriffsanfragen und Datenübertragungen durchzuführen. In Verbindung mit der DRAM-Steuereinheit-Seite sendet diese Schaltung DRAM-Übertragungsanfragen, führt Datenübertragungen durch, nachdem Übertragungen zugelassen sind. Signale wie beispielsweise Adressen, Lese/Schreib-Richtung und Übertragungsdatenumfang sind mit dem lokalen Bus mit einem Übertragungsanfragesignal verbunden.
  • 6 zeigt, dass die CPU-Schnittstelle zwei oder mehr lokale CPU-Busse mit der Steuereinheit verbindet. Die CPU 1 und die CPU 2 liegen als zwei Schnittstellenblöcke vor. Die DRAM-Zugriffsblöcke 1, ...n bilden die anderen Funktionsblöcke der Informationsvorrichtung. Zum Beispiel handelt es sich bei den Zugriffsblöcken 63 und 64 um Blöcke zum Schreiben/Lesen von Daten in Datenflüssen. Zugriffe von den zwei CPUs auf entsprechende Bereiche eines gemeinsam genutzten Hauptspeichers werden einem externen DRAM-Speicher 67 über die Schaltung einer CPU-Schnittstelle 52 bereitgestellt. Übertragungsanfragesignale (REQ-Signale) werden an eine Anfragewarteschlangen-Steuereinheit 54 zur Abwicklung von Warteschlangen gesendet. Eine erste Anfrage wird unmittelbar durch diese Steuerschaltung 54 verarbeitet und eine DRAM-Übertragungsanfrage wird an die DRAM-Steuereinheit 53 gesendet. Ein in der DRAM-Steuereinheit enthaltener Arbiter 65 arbitriert Übertragungsanfragen einschließlich derjenigen von den anderen Blöcken. Beim Zulassen einer CPU-Übertragung (CPU-Zugriffsübertragung) setzt die DRAM-Steuereinheit ein Zugelassen-Signal. Die DRAM-Steuereinheit-Schnittstellenschaltung 54, die das Zugelassen-Signal empfangen hat, führt die Übertragung von Speicheradressen und Schreibdaten oder Lesedaten zu oder von der DRAM-Steuereinheit 53 durch.
  • Wenn kein Zugelassen-Signal als Reaktion auf die DRAM-Übertragungsanfragen von den CPUs gilt, wird es sich um einen Fall handeln, in dem die Zugriffe nicht zugelassen werden, weil gerade ein anderer Block 63 oder 64 Datenübertragung durchführt. Die DRAM-Steuereinheit-Schnittstelle 54 wartet auf die Zulassung, während die REQ-Signale geltend bleiben. Wenn zu diesem Zeitpunkt eine nächste Übertragungsanfrage eintrifft, nimmt die Anfragewarteschlangen-Steuereinheitschaltung 54 die Anfrage an. Die vorstehenden drei Techniken a, b und c werden abhängig davon, wie Anfragen in Warteschlangen eingereiht werden (d.h. abhängig von den Anfragewarteschlangen), getrennt verwendet. Wenn von zwei CPUs auf zwei Anfragewarteschlangen zugegriffen wird, wird die Technik a so verwendet, dass bei Eintreffen des Zugelassen-Signals ein Bank-Interleave-Signal (BI-Signal) gilt, um die Übertragung unter Verwendung von Bank Interleave zu ermöglichen. In diesem Fall müssen sich jedoch die Bankadressen der Anfrageadressen von den zwei CPUs voneinander unterscheiden. Wenn andererseits die zwei Anfragewarteschlangen von derselben CPU stammen, wird die Technik b so verwendet, dass bei Eintreffen des Zugelassen-Signals zwei Anfragen mithilfe eines Fortfahr-Signals in einem einzigen Zyklus übertragen werden. Alternativ dazu kann die Technik c verwendet werden, um die Übertragungseffizienz zu verbessern. In anderen Worten: Wenn eine nächste Anfrage von einer CPU eintrifft, deren vorheriger Zugriff gerade mit Operation a durchgeführt wird, wird Operation b während der Ausführung dieses Zyklus ausgeführt.
  • Ob eine nächste Übertragungsanfrage in die Warteschlange eingereiht werden kann, hängt von den Spezifikationen der CPU ab. Auch wenn tatsächlich keine Schreibanfrage an den Hauptspeicher übertragen wird, kann der Schreibzyklus beendet werden, wenn die Schreibdaten empfangen werden. Wenn im Falle von Leseübertragung die CPU in der Lage ist, Daten im Voraus zu holen, kann nur die Anfrage so in die Warteschlange eingereiht werden, dass Lesedaten später empfangen werden.
  • Im Folgenden wird die DRAM-Steuereinheit 53 beschrieben. Wenn das vorgenannte REQ-Signal noch nicht empfangen wurde, d.h. wenn das Zugelassen-Signal nicht gilt, wird die Übertragung im Falle, dass Zugriffsanfragen von mehreren CPUs stammen, unter Verwendung des Bank-Interleave-Modus durchgeführt. Wenn weiterhin das Zugelassen-Signal gilt, überträgt die CPU-Schnittstelle 52 die Übertragungsmodusinformationen, die Adresse und die Daten mit der richtigen Zeittaktung an oder von einer Befehlssequenz-Steuereinheit 66 der DRAM-Steuereinheit. Nach Abschluss der Datenübertragung wird der Vorauflade-Befehl mit der richtigen Zeittaktung ausgegeben, um den Zyklus zu beenden. Davor prüft die CPU-Schnittstelle 52 den Status der Übertragungsanfrage-Warteschlange, und wenn eine nächste Anfrage bereit ist, macht die CPU-Schnittstelle 52 das Fortfahr-Signal geltend und richtet eine Anfrage für die nächste Übertragung an die DRAM-Steuereinheit. Die DRAM-Steuereinheit, die das Fortfahr-Signal empfangen hat, gibt einen nächsten Übertragungsbefehl aus (Schreiben oder Lesen) und verarbeitet die nächste Anfrage in der Warteschlange. Es ist zu beachten, dass der Arbiter 65 Zugriffe von mehreren Blöcken arbitriert.
  • 7 zeigt einen Ablaufplan, der eine Befehlssequenz zum Ausführen der vorliegenden Erfindung darstellt. Dieser Ablaufplan (linke Abbildung) zeigt in Form einer Befehlsfluss-Ablaufsteuereinheit die Funktionsweise der vorliegenden Erfindung in einem System zum gemeinsamen Benutzen von Hauptspeichern mehrerer CPUs. Die rechte Abbildung zeigt die Funktionen der CPU-Schnittstellenschaltung und der DRAM-Steuereinheit in jedem Schritt.
    • Schritt 0 CPU-Schnittstelle:
      • Ein Übertragungsmodus (Lesen/Schreiben) und eine oder mehrere Adressen werden an die DRAM-Steuereinheit gesendet.
    • Schritt 1 CPU-Schnittstelle:
      • Eine oder mehrere Übertragungsanfragen von mehreren CPUs werden empfangen. Wenn die Anfragen von zwei CPUs stammen und sich deren Bankadressen voneinander unterscheiden, ist der Bank-Interleave-Modus ausführbar. In diesem Fall wird ein BI-Signal an die DRAM-Steuereinheit gesendet, welches ein Eintreten in einen Bank-Interleave-Modus angibt.
    • Schritt 2 DRAM-Steuereinheit:
      • Es wird geprüft, ob das BI-Signal empfangen wurde. Wenn das BI-Signal gilt, wurde das BI-Signal empfangen, und es werden mehrere Aktivier-Befehle für entsprechende Bänke ausgegeben. Wenn das BI-Signal nicht gilt, wird ein einziger Aktivier-Befehl ausgegeben.
    • Schritt 3 CPU-Schnittstelle:
      • Dann wird eine in der Warteschlange befindliche Hauptspeicherübertragung, Lesen oder Schreiben, durchgeführt. Da im Bank-Interleave-Modus entsprechende Zugriffe von mehreren CPUs in die Warteschlange eingereiht werden, werden alle von ihnen durchgeführt. Daten der aktuellen Anfrage werden im Burst-Modus übertragen, während weiterhin Übertragungswörter gezählt werden, bis die Wortzahl den angegebenen Übertragungsumfang erreicht
      DRAM-Steuereinheit:
      • Wenn die CPU-Schnittstelle die Burst-Übertragung abschließt, fährt die Steuerung mit Schritt 4 fort.
    • Schritt 4 CPU-Schnittstelle:
      • Wenn die nächsten Übertragungsanfragen bis zu diesem Punkt gelangt sind und es sich bei diesen Anfrageadressen um Adressen handelt, die in der Lage sind, in den BI-Modus einzutreten, wird das Fortfahr-Signal an die DRAM-Steuereinheit gesendet.
      DRAM-Steuereinheit:
      • Es wird geprüft, ob das Fortfahr-Signal gilt. Wenn das Fortfahr-Signal gilt, wird mit Schritt 3 fortgefahren. Wenn das Fortfahr-Signal nicht gilt, wird mit Schritt 5 fortgefahren, um diesen Übertragungszyklus zu beenden.
    • Schritt 5 DRAM-Steuereinheit:
      • Wenn der Übertragungszyklus beendet ist, schließt der Vorauflade-Befehl die Zeilen (ROW)-Zugriffe.
  • Als Nächstes werden Bedingungen berücksichtigt, unter denen die CPU-Schnittstelle das BI-Signal und das Fortfahr-Signal geltend macht. Im DRAM-Speicher kann auf fortlaufende Adressen ohne zusätzlichen Aufwand kontinuierlich zugegriffen werden. Dies ist insbesondere der Fall, wenn Bank- und Zeilenadressen des DRAM-Speichers identisch sind. Der DRAM-Speicher besitzt Bank-, Zeilen- und Spaltenadressen. Wenn die Bank- und die Zeilenadressen dieselben sind, kann unter dieser Bedingung jede Spaltenadresse angesprochen werden. Dies bedeutet, dass Schritt 3 in 7 wiederholt wird. Somit können unter dieser Bedingung zwei oder mehr Zugriffsanfragen mit einem Aufwand von einem Zyklus übertragen werden.
  • Wenn sich Zeilenadressen unterscheiden, muss der Aktivier-Befehl in jedem einzelnen Fall ausgegeben werden. Dies bedeutet, dass Schritt 2 in 7 erforderlich ist. Da der Vorauflade-Befehle in Schritt 5 eine Bank-Adresse angibt und auf der Bank ausgeführt wird, kann er auch bei unterschiedlichen Zeilenadressen durch einen einzigen Vorauflade-Befehl durchgeführt werden, solange die Bankadressen dieselben sind.
  • Wenn sich die Bankadressen unterscheiden, müssen Aktivier-Befehle ausgegeben werden. Da der Vorauflade-Befehl nach Abschluss der Übertragung an alle Bänke ausgegeben werden kann, wird der Aufwand nicht erhöht. Somit kann das Verwenden des Bank Interleave zum Durchführen von Zugriffen von den mehreren CPUs durch eine einzige Übertragung den Aufwand für den Vorauflade-Befehl verringern.
  • In einem Fall bringt es unter Übertragungsanfragen von den mehreren CPUs für die vorliegende Erfindung die besten Ergebnisse, dass sich voneinander unterscheidende Anfragen mit Bankadressen, die jedoch dieselbe Bank- und Zeilenadresse aufweisen, kontinuierlich durchgeführt werden. Daher ist in der vorgenannten Ausführungsform die Bedingung für das Geltendmachen des Fortfahr-Signals so festgelegt, dass die Bank- und Zeilenadressen dieselben sind wie bei der vorherigen Übertragung. Hier handelt es sich bei Bankadressen und anderen um Adressen des DRAM. Da es sich bei von CPUs verwendeten Adressen um logische Adressen, bei den DRAM-Adressen jedoch um physische Adressen handelt, ist ein Verfahren erforderlich, damit die CPU-Schittstellenschaltung eine Fortfahr-Bedingung aus logischen CPU-Adressen ermitteln kann. Daher wird eine Tabelle, die angibt, welches Bit jeder logischen Adresse einer Bankadresse und welches Bit einer Zeilenadresse zugeordnet ist, von der DRAM-Steuereinheit an die CPU-Schnittstelle weitergeleitet. Mithilfe dieser Tabelle ermittelt die CPU-Schnittstelle, ob es sich bei Adressen vor und nach einer angefragten Adresse um dieselben physischen Adressen handelt, die als die Fortfahr-Bedingung festzulegen sind. Dies wird in 6 als ein „PADDR-Tabellen“-Signal zwischen der CPU-Schnittstelle und dem DRAM-Controller angezeigt.
  • Wie vorstehend beschrieben, sind in der Ausführungsform die vorgenannten Merkmale sowohl bei der CPU-Schnittstelle als auch bei der DRAM-Steuereinheit realisiert, um die Übertragung mehrerer Anfragen von mehreren CPUs in einem einzigen DRAM-Zugriffszyklus übertragen und dadurch die Nutzungseffizienz der Bandbreite erhöhen zu können. Als ein Beispiel werden CPU-Zugriffe mit einer Cachespeichergröße von 32 Byte betrachtet. Da ein Wort im DDR3 SDRAM vier Byte beträgt, kann im Falle einer Busbreite des DRAM von 32 Bit die Übertragung in acht Bursts erreicht werden. Da in einem DDR-Speicher zwei Bursts in einem Taktzyklus vorkommen, beträgt der Datenübertragungs-Taktzyklus vier Takte. Entsprechend der vorgeschriebenen Wechselstromtaktung von DDR3 SDRAM erfordert das Lesen dieses Zyklus ungefähr 22 Takte. Diese Anzahl von Takten hängt von der Betriebsfrequenz und anderen Parametern ab. Nur im Fall dieses Zugriffs beträgt der Aufwand mehr als 80 Prozent. Wenn die Merkmale dieser Erfindung auf diesen Fall angewandt werden, in dem zum Beispiel zwei Übertragungen von zwei CPUs kollektiv in einem einzigen Zyklus durchgeführt werden, kann eine Übertragung von insgesamt 64 Byte durchgeführt und dabei der Aufwand auf ungefähr 50 % verringert werden.
  • Da es für Übertragungen andere Datenflussübertragungen als diejenigen von CPUs gibt, werden gemäß der vorliegenden Erfindung Zugriffe von mehreren CPUs (mit einer kurzen Burst-Länge) effizient in einem Rahmenwerk des Arbitersystems zum Dazwischenschieben der CPU-Übertragungen in der Zwischenperiode übertragen. Da die Burst-Länge kurz ist, wird der Übertragungsaufwand des DDR-Speichers relativ groß, wodurch die Übertragungseffizienz verringert wird. Der Umfang der vorliegenden Erfindung deckt in einer Umgebung des Verwendens eines solchen gemeinsam genutzten Speichers so viele CPU-Zugriffe wie möglich bei maximaler Effizienz ab.
  • Bezugszeichenliste
  • 10
    Bandlaufwerk
    11
    Schnittstelle
    12
    Datenpuffer
    13
    Kanal
    14
    Kopf
    15
    Motor
    16
    Steuereinheit (ASIC)
    17
    Kopfpositionier-Steuersystem
    18
    Motortreiberstufe
    20
    Kassette
    21, 22
    Spule
    30
    Host
    40
    Pufferverwalterblock
    50
    C2-ECC-Berechner
    60
    Host-Übertragungsblock
    70
    Band-Übertragungsblock
    80
    Prozessor
    90
    Firmware

Claims (7)

  1. Speicherzugriffseinheit für gemeinsame Nutzung eines Speichers (43) für Hauptspeicher (452) mehrerer CPUs (49) und einen Datenpuffer (451) anderer Funktionsblöcke, wobei die Einheit aufweist: mehrere CPUs (49) nutzen einen Speicher (43) als Hauptspeicher (452); andere Funktionsblöcke nutzen den Speicher (43) als diesen Datenpuffer (451); eine mit einem Bus (48) für die CPUs (49) verbundene CPU-Schnittstellenschaltung (52), um Speicherzugriffsanfragen von den mehreren CPUs zu steuern; und eine mit der CPU-Schnittstellenschaltung (52) verbundene Speichersteuereinheit (46), um Speicherzugriffs(CPU-Zugriffs- und Funktionsblockzugriffs)-Anfragen von den CPUs (49) und den Funktionsblöcken zu arbitrieren; wobei die CPU-Schnittstellenschaltung (52) Speicherzugriffsanfragen von den mehreren CPUs (49) zurückhält, eine Adresse, einen Datenübertragungsmodus und einen Datenumfang jedes CPU-Zugriffs empfängt und speichert, die Speichersteuereinheit (46) über die Zugriffsanfragen benachrichtigt, bei Empfangen eines Zugelassen-Signals für die Zugriffsanfragen die Informationen als Reaktion auf das Zugelassen-Signal an die Speichersteuereinheit (46) sendet, und bei Nicht-Empfangen des Zugelassen-Signals für die Zugriffsanfragen die wartenden Zugriffsanfragen von den mehreren CPUs (49) zurückhält, und die Speichersteuereinheit (46) die Zugriffsanfragesignale empfängt, eine CPU (49) angibt, deren Zugriffsanfragen von der Zugriffsarbitrierung zugelassen wurden, und das Zugelassen-Signal an die CPU-Schnittstellenschaltung (52) sendet und die mehreren CPU-Zugriffsanfragen in einem einzigen Buszyklus ausführt, und bei Empfangen mehrerer CPU-Zugriffsanfragen im Falle, dass gerade eine Datenflussübertragung des anderen Funktionsblocks durchgeführt wird, die mehreren CPU-Zugriffsanfragen zurückhält und die mehreren CPU-Anfragen nach Abschluss der Datenflussübertragung vom Funktionsblock in einem einzigen Übertragungszyklus durchführt.
  2. Einheit nach Anspruch 1, wobei es sich bei dem Speicher (43) um einen DRAM handelt.
  3. Einheit nach Anspruch 1, wobei die Speichersteuereinheit (52), a, eine oder mehrere Zugriffsanfragen von den unterschiedlichen mehreren CPUs (49) in einem einzigen Übertragungszyklus unter Verwendung eines Bank Interleave des DRAM durchführt.
  4. Einheit nach Anspruch 3, wobei, b, im Falle, dass die nächsten Zugriffs(CPU-Zugriffs)-Anfragen von denselben CPUs (49) empfangen werden wie der aktuelle CPU-Zugriff, der während des Durchführens der Anfrage des anderen Funktionsblockzugriffs in eine Warteschlange eingereiht wurde, die Speichersteuereinheit (46) die mehreren CPU-Zugriffsanfragen zurückhält und nach Abschluss der Datenflussübertagung durch den anderen Funktionsblockzugriff die mehreren CPU-Zugriffsanfragen in einem einzigen Übertragungszyklus durchführt.
  5. Einheit nach Anspruch 4, wobei die Übertragung von a und die Übertragung von b in Kombination durchgeführt werden.
  6. Einheit nach Anspruch 4, wobei die CPU-Schnittstellenschaltung (52) enthält: einen Schritt des Sendens eines Übertragungsmodus und einer Adresse jedes Zugriffs an die Speichersteuereinheit (46); einen Schritt des Empfangens von Übertragungsanfragen von mehreren CPUs (49) und wenn sich diese Bankadressen unterscheiden, Senden eines BI-Signals an die Speichersteuereinheit (46), das angibt, in den Bank-Interleave-Modus einzutreten; einen Schritt des Zählens von Übertragungswörtern, Durchführens der zurückgehaltenen Übertragungsanfragen, Lesen oder Schreiben, bis die Wortzahl den Übertragungsumfang der entsprechenden CPU-Zugriffe erreicht und Durchführen beider im Bank-Interleave-Modus, da die entsprechenden Zugriffe in Ruhestellung sind; und einen Schritt, bei dem im Falle, dass die nachfolgenden Übertragungsanfragen eintreffen und diese Anfragenadressen dieselben Bankadressen darstellen wie vorherige, die CPU-Schnittstellenschaltung (52) ein Fortfahr-Signal an die Speichersteuereinheit (46) sendet, und die Speichersteuereinheit (46) enthält: einen Schritt des Prüfens, ob das BI-Signal empfangen wurde; einen Schritt des Anhaltens der Burst-Übertragung, durch Benachrichtigen von der CPU-Schnittstellenschaltung (52); einen Schritt des Bestätigens, dass das Fortfahr-Signal für die mehreren CPUs (49) gilt, und Durchführens der nächsten in eine Warteschlange in der CPU-Schnittstellenschaltung (52) eingereihten Anfragen, einen Schritt des Burst-Anhaltens, und wenn das Fortfahr-Signal nicht gilt, Beenden der Sequenzschritte mit dem nachstehenden Beendigungsschritt; und einen Schritt des Ausgebens eines Vorauflade-Befehls an den Speicher (43), um die Banken, die verwendet werden, zu schließen.
  7. Einheit nach Anspruch 6, wobei der Schritt 2 der Speichersteuereinheit einen Schritt beinhaltet, in dem im Falle des Empfangens des BI-Signals eine Vielzahl von Aktivier-Befehlen für entsprechende Bänke an den Speicher (43) ausgegeben werden, oder wenn kein BI-Signal empfangen wird, ein einziger Aktivier-Befehl ausgegeben wird.
DE112011103916.6T 2010-11-25 2011-10-06 Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren Active DE112011103916B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010-262860 2010-11-25
JP2010262860 2010-11-25
JPJP-2010-262860 2010-11-25
PCT/JP2011/073053 WO2012070319A1 (ja) 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法

Publications (2)

Publication Number Publication Date
DE112011103916T5 DE112011103916T5 (de) 2013-10-10
DE112011103916B4 true DE112011103916B4 (de) 2021-11-25

Family

ID=46145677

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011103916.6T Active DE112011103916B4 (de) 2010-11-25 2011-10-06 Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren

Country Status (7)

Country Link
US (2) US9268721B2 (de)
JP (1) JP5426036B2 (de)
CN (1) CN103201725B (de)
DE (1) DE112011103916B4 (de)
GB (1) GB2500529B (de)
TW (1) TW201234188A (de)
WO (1) WO2012070319A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2500529B (en) 2010-11-25 2020-03-25 Ibm Memory access device for memory sharing among multiple processors and access method for the same
US9208002B2 (en) 2012-01-06 2015-12-08 International Business Machines Corporation Equalizing bandwidth for multiple requesters using a shared memory system
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
KR20150018291A (ko) * 2013-08-09 2015-02-23 에스케이하이닉스 주식회사 메모리 시스템
US9286208B2 (en) * 2014-02-07 2016-03-15 Kabushiki Kaisha Toshiba Controller controlling an interleave operation, solid-state drive including the controller, and control method controlling an interleave operation
JP5911548B1 (ja) * 2014-10-23 2016-04-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP6114767B2 (ja) * 2015-01-28 2017-04-12 株式会社東芝 ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP5989818B2 (ja) * 2015-01-28 2016-09-07 株式会社東芝 ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
US10133493B2 (en) * 2016-03-01 2018-11-20 Marvell World Trade Ltd. DRAM controller with adaptive precharge policy
US10198216B2 (en) * 2016-05-28 2019-02-05 Advanced Micro Devices, Inc. Low power memory throttling
CN108536619B (zh) * 2017-03-03 2021-12-14 北京忆恒创源科技股份有限公司 快速恢复ftl表的方法与装置
US10628057B2 (en) * 2017-03-28 2020-04-21 Hewlett Packard Enterprise Development Lp Capability based locking and access of shared persistent memory
JP6890055B2 (ja) * 2017-06-30 2021-06-18 ルネサスエレクトロニクス株式会社 半導体装置
KR102499255B1 (ko) * 2018-02-19 2023-02-13 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system
US10534731B2 (en) * 2018-03-19 2020-01-14 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays
US10714159B2 (en) * 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
JP7018833B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法
TWI671632B (zh) 2018-10-24 2019-09-11 財團法人工業技術研究院 記憶體裝置及其復新資訊同步方法
CN109582226A (zh) * 2018-11-14 2019-04-05 北京中电华大电子设计有限责任公司 一种高速存储访问逻辑结构及其控制方法
JP7142562B2 (ja) * 2018-12-25 2022-09-27 ルネサスエレクトロニクス株式会社 半導体装置、および、データのアクセスを制御するための方法
WO2021111583A1 (ja) * 2019-12-05 2021-06-10 オリンパス株式会社 データ転送装置およびデータ転送方法
CN113835673B (zh) * 2021-09-24 2023-08-11 苏州睿芯集成电路科技有限公司 一种用于降低多核处理器加载延时的方法、系统及装置
CN115225592B (zh) * 2022-06-01 2024-01-12 裕太微(上海)电子有限公司 一种直接存储器访问数据传输方法及系统
CN115480708B (zh) * 2022-10-11 2023-02-28 成都市芯璨科技有限公司 一种分时复用局部存储器访问的方法
CN116521096B (zh) * 2023-07-03 2023-09-22 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120124A (ja) 1997-10-14 1999-04-30 Toshiba Corp バスアクセス装置、バス調停システム、cd−romデコーダ、dvd−romデコーダ及びcd−romドライブ
US20070055813A1 (en) 2005-09-08 2007-03-08 Arm Limited Accessing external memory from an integrated circuit
US20080082707A1 (en) 2006-09-29 2008-04-03 Synfora, Inc. Non-blocking bus controller for a pipelined, variable latency, hierarchical bus with point-to-point first-in first-out ordering
WO2010073776A1 (ja) 2008-12-25 2010-07-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 記録媒体に記録されたデータを読み出す装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3317150B2 (ja) 1996-07-29 2002-08-26 日本電気株式会社 情報処理装置
US6182177B1 (en) * 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
WO2003085524A2 (en) 2002-04-04 2003-10-16 Infineon Technologies Ag Improved architecture with shared memory
JP2006099731A (ja) * 2004-08-30 2006-04-13 Matsushita Electric Ind Co Ltd リソース管理装置
US8065459B2 (en) 2006-05-17 2011-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks
US8285895B2 (en) 2007-08-06 2012-10-09 Winbond Electronics Corporation Handshake free sharing in a computer architecture
US7861041B2 (en) 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
GB2500529B (en) 2010-11-25 2020-03-25 Ibm Memory access device for memory sharing among multiple processors and access method for the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120124A (ja) 1997-10-14 1999-04-30 Toshiba Corp バスアクセス装置、バス調停システム、cd−romデコーダ、dvd−romデコーダ及びcd−romドライブ
US20070055813A1 (en) 2005-09-08 2007-03-08 Arm Limited Accessing external memory from an integrated circuit
US20080082707A1 (en) 2006-09-29 2008-04-03 Synfora, Inc. Non-blocking bus controller for a pipelined, variable latency, hierarchical bus with point-to-point first-in first-out ordering
WO2010073776A1 (ja) 2008-12-25 2010-07-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 記録媒体に記録されたデータを読み出す装置及び方法

Also Published As

Publication number Publication date
CN103201725A (zh) 2013-07-10
GB2500529A (en) 2013-09-25
TW201234188A (en) 2012-08-16
GB2500529B (en) 2020-03-25
US9268721B2 (en) 2016-02-23
GB201311026D0 (en) 2013-08-07
WO2012070319A1 (ja) 2012-05-31
JPWO2012070319A1 (ja) 2014-05-19
US9460763B2 (en) 2016-10-04
US20160211006A1 (en) 2016-07-21
DE112011103916T5 (de) 2013-10-10
JP5426036B2 (ja) 2014-02-26
US20140059286A1 (en) 2014-02-27
CN103201725B (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
DE112011103916B4 (de) Speicherzugriffseinheit für gemeinsame Speichernutzung zwischen mehreren Prozessoren
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE19983745B3 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE69838387T2 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
DE102005009174B4 (de) Bussystem, zugehöriges Busbelegungszuteilverfahren und Datenübertragungsverfahren
US9164937B2 (en) Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
DE69834026T2 (de) Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge
DE112018005427T5 (de) Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem
US20050210185A1 (en) System and method for organizing data transfers with memory hub memory modules
DE112011103208T5 (de) Hochgeschwindigkeits-Speichersystem
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE10048402A1 (de) Datenspeichersystem
DE102018119881A1 (de) Verwaltung einer DRAM-Bankaktivierung
DE112008002273T5 (de) Optimale Lösung zur Steuerung von Datenkanälen
EP2998867B1 (de) Datenschreibverfahren und speichersystem
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE102012202174A1 (de) Mikrocomputer
DE10310055A1 (de) Systeme und Verfahren zum Erfassen und Kompensieren von Kleinblockdatenübertragungen
DE102006012659A1 (de) System und Verfahren zum Reduzieren der Speicherlatenz bei mit einem Bus verbundenen Mikroprozessorsystemen
DE102020116192A1 (de) Nand-detektion und -wiederherstellung eines verworfenen befehls
DE60308225T2 (de) Verbesserung der transfer-leistungsfähigkeit vom optischen speicher
DE602005002533T2 (de) Dmac-ausgabemechanismus über ein steaming-id-verfahren
DE10219359B4 (de) Vorrichtung und Verfahren mit einem Queuemechanismus
DE202011052249U1 (de) Zeitplanung für Mikrocontrollersystembus für Multiport-Slave-Module

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final