DE102007031265A1 - System und Verfahren zum Ausgeben von Befehlen - Google Patents

System und Verfahren zum Ausgeben von Befehlen Download PDF

Info

Publication number
DE102007031265A1
DE102007031265A1 DE102007031265A DE102007031265A DE102007031265A1 DE 102007031265 A1 DE102007031265 A1 DE 102007031265A1 DE 102007031265 A DE102007031265 A DE 102007031265A DE 102007031265 A DE102007031265 A DE 102007031265A DE 102007031265 A1 DE102007031265 A1 DE 102007031265A1
Authority
DE
Germany
Prior art keywords
command
volatile memory
operands
instruction
overlay window
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.)
Withdrawn
Application number
DE102007031265A
Other languages
English (en)
Inventor
Rom-Shen Kao
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.)
Qimonda North America Corp
Original Assignee
Qimonda North America 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 Qimonda North America Corp filed Critical Qimonda North America Corp
Publication of DE102007031265A1 publication Critical patent/DE102007031265A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Abstract

Ausführungsbeispiele der Erfindung stellen ein Verfahren, Vorrichtungen und ein System zum Ausgeben von Befehlen von einer ersten Vorrichtung an eine zweite Vorrichtung bereit. Bei einem Ausführungsbeispiel umfasst das Verfahren ein Empfangen durch die erste Vorrichtung eines ersten Befehls, der einen zweiten Befehl in einen Speicherort in der ersten Vorrichtung schreibt. Der zweite Befehl umfasst einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet. Das Verfahren umfasst auch ein Liefern des zweiten Befehls zu der zweiten Vorrichtung. Bei einem Ausführungsbeispiel lädt die zweite Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl.

Description

  • Querverweis auf verwandte Anmeldungen
  • Diese Anmeldung ist verwandt mit der US-Patentanmeldung Seriennummer _/_,_ Anwaltsaktenzeichen QIMO/0263, mit dem Titel CONTROL PROTOCOL AND SIGNALING IN A NEW MEMORY ARCHITECTURE, der US-Patentanmeldung Seriennummer _/_,_, Anwaltsaktenzeichen QIMO/0267, mit dem Titel METHOD FOR ACCESSING A NON-VOLATILE MEMORY VIA A VOLATILE MEMORY INTERFACE, und der US-Patentanmeldung Seriennummer _/_,_, Anwaltsaktenzeichen QIMO/0269, mit dem Titel METHOD FOR ACCESSING CONTROL REGISTERS VIA A MEMORY DEVICE, die alle am 6. Juli 2006 eingereicht wurden. Jede dieser verwandten Patentanmeldungen ist durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen.
  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die Erfindung bezieht sich im Allgemeinen auf ein Zugreifen auf einen Speicher in einem Computersystem.
  • Beschreibung der verwandten Technik
  • Viele moderne elektronische Vorrichtungen, wie z. B. zelluläre Telefone, PDAs, tragbare Musikabspielgeräte, Haushaltsgeräte usw. umfassen in der Regel ein eingebettetes Computersystem. Ein eingebettetes Computersystem enthält in der Regel einen Computerprozessor (als Host bezeichnet), einen nichtflüchtigen Speicher (wie z. B. einen Flash-Speicher und/oder einen ROM-Speicher) und einen flüchtigen Speicher, wie z. B. einen Direktzugriffsspeicher mit dynamischem Zugriff (DRAM = dynamic random access memory). Der Host kann eine zentrale Verarbeitungseinheit (CPU = central processing unit), einen Digitalsignalprozessor (DSP = digital signal processor), eine Mikrosteuerungseinheit (MCU = microcontroller unit) oder eine Speicherdirektzugriffsdatenübertragungsvorrichtung (DMA-Datenübertragungsvorrichtung; DMA = direct memory access) umfassen. Das eingebettete System kann auch eine Nichtflüchtiger-Speicher-Steuerung umfassen, die verwendet werden kann, um den nichtflüchtigen Speicher zu steuern und/oder auf denselben zuzugreifen.
  • In dem eingebetteten System kann auf den flüchtigen Speicher in der Regel schneller zugegriffen werden als auf den nichtflüchtigen Speicher. So kann z. B. ein Code, der durch den Host ausgeführt wird, in dem flüchtigen Speicher gespeichert werden und es kann durch den Host von dem flüchtigen Speicher aus auf denselben zugegriffen werden. Da der flüchtige Speicher jedoch in der Regel eine Leistungsquelle benötigt, um die in demselben gespeicherten Daten aufrechtzuerhalten, wird der flüchtige Speicher in der Regel gelöscht, wenn das eingebettete System abgeschaltet wird. Dementsprechend kann der nichtflüchtige Speicher, der in der Regel keine Leistungsquelle benötigt, um gespeicherte Daten aufrechtzuerhalten, verwendet werden, um den durch den Host ausgeführten Code zu speichern, während das eingebettete System abgeschaltet wird. Wenn das eingebettete System eingeschaltet wird (z. B., wenn das eingebettete System in einen Rücksetzzustand eintritt), kann der durch das Hostsystem verwendete Code in den flüchtigen Speicher geladen werden und durch den Host von dem flüchtigen Speicher aus ausgeführt werden. Der Prozess des Ladens eines in dem nichtflüchtigen Speicher gespeicherten Codes in den flüchtigen Speicher und Ausführen des Codes von dem flüchtigen Speicher aus kann als Code-Schattenbildung bezeichnet werden.
  • Um eine Flexibilität beim Zugreifen auf Daten in dem eingebetteten System aufrechtzuerhalten, kann der Wunsch bestehen, Daten zwischen dem Host, dem flüchtigen Speicher und dem nichtflüchtigen Speicher auf eine Vielfalt von Arten zu übertragen. Es kann z. B. ein Wunsch bestehen, Datenübertragungen zwischen dem flüchtigen Speicher und dem Host, dem nichtflüchtigen Speicher und dem Host und dem flüchtigen Speicher und dem nichtflüchtigen Speicher durchzuführen. Bei gleichzeitiger Aufrechterhaltung einer Flexibilität beim Zugreifen auf Daten in dem eingebetteten System kann auch ein Wunsch bestehen, die Kosten und Komplexität der Schnittstelle zwischen dem Host und den Komponenten des Speichersystems zu verringern.
  • Dementsprechend besteht Bedarf an einem verbesserten System und verbesserten Verfahren zum Zugreifen auf einen Speicher in einem eingebetteten System.
  • Zusammenfassung der Erfindung
  • Ausführungsbeispiele der Erfindung stellen ein Verfahren, Vorrichtungen und ein System zum Ausgeben von Befehlen von einer ersten Vorrichtung an eine zweite Vorrichtung bereit. Bei einem Ausführungsbeispiel umfasst das Verfahren ein Empfangen, durch die erste Vorrichtung, eines ersten Befehls, der einen zweiten Befehl in einen Speicherort in der ersten Vorrichtung schreibt. Der zweite Befehl umfasst einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet. Das Verfahren umfasst auch ein Liefern des zweiten Befehls zu der zweiten Vorrichtung. Bei einem Ausführungsbeispiel lädt die zweite Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl.
  • Kurze Beschreibung der Zeichnungen
  • Um die Art und Weise der die im Vorhergehenden genannten Merkmale der vorliegenden Erfindung im Detail zu verstehen, kann eine genauere Beschreibung der Erfindung, die im Vorhergehenden kurz zusammengefasst wurde, durch Bezugnahme auf Ausführungsbeispiele, von denen manche in den beigefügten Zeichnungen veranschaulicht sind, gewonnen werden. Es sei jedoch darauf hingewiesen, dass die beigefügten Zeichnungen lediglich typische Ausführungsbeispiele dieser Erfindung veranschaulichen und deswegen den Schutzbereich derselben nicht beschränken sollen, da die Erfindung auch auf andere, gleich wirksame Ausführungsbeispiele anwendbar ist.
  • 1A bis 1C sind Blockdiagramme, die eingebettete Systeme darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 2A bis 2B sind Flussdiagramme, die Prozesse zum Konfigurieren eines Überlagerungsfensters darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 3A bis 3D sind Blockdiagramme, die Aspekte einer Überlagerungsfensterkonfiguration darstellen, gemäß einem Ausführungsbeispiel der Erfindung;
  • 4 ist ein Zeitdiagramm, das Befehle darstellt, die ausgegeben werden, um ein Überlagerungsfenster zu konfigurieren, gemäß einem Ausführungsbeispiel der Erfindung;
  • 5A bis 5B sind Flussdiagramme, die Prozesse zum Zugreifen auf Daten und Ausgeben von Befehlen über ein Überlagerungsfenster darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 6 bis 7 sind Blockdiagramme, die Steuerregister und Puffer in einem Überlagerungsfenster darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 8 ist ein Blockdiagramm, das einen Befehl darstellt, der an ein Op-Code-Register ausgegeben wird, gemäß einem Ausführungsbeispiel der Erfindung;
  • 9A bis 9D sind Blockdiagramme, die Datenübertra gungen in einem eingebetteten System darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 10A bis 10B sind Flussdiagramme, die Prozesse zum Durchführen von DMA-Übertragungen zwischen einem Host und einem nichtflüchtigen Speicher darstellen, gemäß Ausführungsbeispielen der Erfindung;
  • 11 ist ein Blockdiagramm, das gespiegelte Steuerregister darstellt, auf die über ein Überlagerungsfenster zugegriffen wird, gemäß einem Ausführungsbeispiel der Erfindung; und
  • 12 ist ein Flussdiagramm, das einen Prozess zum Spiegeln von Steuerregisterdaten darstellt, gemäß einem Ausführungsbeispiel der Erfindung.
  • Ausführliche Beschreibung des bevorzugten Ausführungsbeispiels
  • Ausführungsbeispiele der Erfindung stellen ein Verfahren, Vorrichtungen und ein System zum Ausgeben von Befehlen von einer ersten Vorrichtung an eine zweite Vorrichtung bereit. Bei einem Ausführungsbeispiel umfasst das Verfahren ein Empfangen, durch die erste Vorrichtung, eines ersten Befehls, der einen zweiten Befehl in einen Speicherort in der ersten Vorrichtung schreibt. Der zweite Befehl umfasst einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet. Das Verfahren umfasst auch ein Liefern des zweiten Befehls zu der zweiten Vorrichtung. Bei einem Ausführungsbeispiel lädt die zweite Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl.
  • Ein eingebettetes System
  • 1A ist ein Blockdiagramm, das ein eingebettetes System 100 gemäß einem Ausführungsbeispiel der Erfindung darstellt. Wie dargestellt, kann das eingebettete System 100 einen Host 102, einen flüchtigen Speicher 104, eine Nichtflüchtiger-Speicher-Steuerung 106 und einen nichtflüchtigen Speicher 108 umfassen.
  • Bei einem Ausführungsbeispiel kann der Host 102 eine Steuerschaltungsanordnung 132 und eine Flüchtiger-Speicher-Schnittstelle 110 zum Kommunizieren mit einer Flüchtiger-Speicher-Schnittstelle 112 des flüchtigen Speichers 104 umfassen. Bei einem Ausführungsbeispiel kann die Flüchtiger-Speicher-Schnittstelle 112 eine Schnittstelle umfassen, die der Vorschrift des Joint Electron Device Engineering Council (JEDEC = eine US-amerikanische Organisation zur Standardisierung von Halbleitern) bezüglich synchroner Doppeldatenraten-Direktzugriffsspeicher mit dynamischen Zugriff mit niedriger Leistung (LPDDR-SDRAM = Low Power Double Data Rate synchronous dynamic random access memory) entspricht. Optional kann jede andere beliebige geeignete Flüchtiger-Speicher-Schnittstelle (z. B. unter Verwendung von DRAM-Schnittstellensteuersignalen, wie z. B. Schreibfreigabe (WE = write enable), Zeilenzugriffsübernahmesignal (RAS = row access strobe), Spaltenzugriffsübernahmesignal (CAS = column access strobe) und Chipansteuerung (CS = chip select)) verwendet werden. Die Steuerschaltungsanordnung kann z. B. verwendet werden, um Computerinstruktionen und Prozessdaten, die von dem flüchtigen Speicher 104 oder einem anderen Ort (z. B. einem Plattenlaufwerk oder einer anderen Speicherungsvorrichtung) empfangen wurden, auszuführen. In manchen Fällen kann der Host 102 auch zusätzliche Schaltungsanordnung, z. B. Eingabe/Ausgabe-Schnittstellen (I/O-Schnittstellen) zum Empfangen einer Benutzereingabe und zusätzliche Schnittstellen mit anderen eingebetteten Systemkomponenten, wie z. B. zusätzlichen Speicherkomponenten, Plattenlaufwerken und anderen Vorrichtungen, umfassen. Wie es nachfolgend beschrieben ist, kann der Host 102 auch die Flüchtiger-Speicher-Schnittstelle 112 verwenden, um Befehle und Informationen bereitzustellen und um Informationen von dem flüchtigen Speicher 104, der Nichtflüchtiger-Speicher-Steuerung 106 und/oder dem nichtflüchtigen Speicher 108 zu empfangen.
  • Bei einem Ausführungsbeispiel kann der flüchtige Speicher 104 eine Flüchtiger-Speicher-Schnittstelle 112 zum Kommunizieren mit dem Host 102 und eine Nichtflüchtiger-Speicher-Schnittstelle 120 zum Kommunizieren mit der Nichtflüchtiger-Speicher-Steuerung 106 umfassen. Der flüchtige Speicher 104 kann hinsichtlich sowohl des Hosts 102 als auch der Nichtflüchtiger-Speicher-Steuerung 106 als ein Slawe (untergeordneter Computer) fungieren (z. B. kann der flüchtige Speicher durch die andere Komponente der Schnittstelle gesteuert werden). Optional kann der flüchtige Speicher 104 der Master (Leitrechner) hinsichtlich der Nichtflüchtiger-Speicher-Steuerung 106 sein. Die Nichtflüchtiger-Speicher-Schnittstelle 112 kann eine beliebige Schnittstelle umfassen, die verwendet wird, um auf den nichtflüchtigen Speicher 108 zuzugreifen, einschließlich z. B. der Schreibfreigabe(WE)-, der Ausgabefreigabe(OE = Output enable)- und der Chipansteuerungs(CS)-Steuersignale.
  • Der flüchtige Speicher 104 kann auch eine Flüchtiger-Speicher-Steuerschaltungsanordnung 114 zum Verarbeiten von Befehlen, die über die Flüchtiger-Speicher-Schnittstelle 112 und/oder die Nichtflüchtiger-Speicher-Schnittstelle 120 empfangen wurden, umfassen. Der flüchtige Speicher 104 kann ferner ein Flüchtiger-Speicher-Array 116 zum Speichern von Daten indem flüchtigen Speicher 104 und einen oder mehrere Puffer 118 zum Übertragen von Daten und/oder Befehlen zwischen dem Host 102, dem flüchtigen Speicher 104, der Nichtflüchtiger-Speicher-Steuerung 106 und/oder dem nichtflüchtigen Speicher 108 umfassen. Bei einem Ausführungsbeispiel können die Puffer 118 ein RAM-Speicher mit dynamischem Zugriff (DRAM-Speicher) sein. Optional können die Puffer 118 ein statischer RAM-Speicher (SRAM-Speicher) sein. Der flüchtige Speicher 104 kann auch eine Nichtflüchtiger-Speicher-Schnittstelle 120 zum Kommunizieren mit der Nichtflüchtiger-Speicher-Steuerung 106 umfassen.
  • Bei einem Ausführungsbeispiel der Erfindung kann die Nichtflüchtiger-Speicher-Steuerung 106 eine erste Nichtflüchtiger-Speicher-Schnittstelle 122 zum Kommunizieren mit dem flüchtigen Speicher 104 und eine zweite Nichtflüchtiger-Speicher-Schnittstelle 126 zum Kommunizieren mit dem nichtflüchtigen Speicher 108 umfassen. Die Nichtflüchtiger-Speicher-Steuerung 106 kann auch eine Nichtflüchtiger-Speicher-Steuerschaltungsanordnung 124 zum Steuern von Datenübertragungen zwischen dem flüchtigen Speicher 104, der Nichtflüchtiger-Speicher-Steuerung 106 und dem nichtflüchtigen Speicher umfassen. Auf den nichtflüchtigen Speicher 108 kann über eine Nichtflüchtiger-Speicher-Schnittstelle 128 zugegriffen werden. Daten in dem nichtflüchtigen Speicher 108 können in dem Nichtflüchtiger-Speicher-Array 130 gespeichert werden.
  • Während sie im Vorhergehenden im Hinblick auf einen gesonderten flüchtigen Speicher 104 und eine gesonderte Nichtflüchtiger-Speicher-Steuerung 106 beschrieben wurden, können Ausführungsbeispiele der Erfindung, die hierin beschrieben sind, auch mit einem flüchtigen Speicher 134 verwendet werden, der eine Nichtflüchtiger-Speicher-Steuerschaltungsanordnung 124 umfasst und auf den nichtflüchtigen Speicher 108 über die Nichtflüchtiger-Speicher-Schnittstelle 128 zugreift, wie es in 1B dargestellt ist.
  • 1C ist ein Blockdiagramm, das weitere Details des flüchtigen Speichers 104 und der Nichtflüchtiger-Speicher-Steuerung 106 gemäß einem Ausführungsbeispiel der Erfindung darstellt. Wie dargestellt kann der flüchtige Speicher 104 eine Befehls- und Adressendecodierschaltungsanordnung 164 umfassen (z. B. als Teil der Flüchtiger-Speicher-Steuerschaltungsanordnung 114). Wenn die Befehls- und Adressendecodierschaltungsanordnung 164 einen Befehl von dem Host 102 empfängt, der auf Daten in einer der Bänke 136 in dem Flüchtiger-Speicher-Array 116 zugreift, kann auf die Daten über die Flüchtiger-Speicher-Zugriffssteuerung 160 des Hosts für das Flüchtiger-Speicher-Array 116 zugegriffen werden. Der flüchtige Speicher 104 kann auch Modusregister 170 zum Steuern der Arbeitsweise des flüchtigen Speichers 104, Überlagerungsfenstersteuerregister 138 zum Steuern eines Überlagerungsfensters, und einen Überlagerungsfensterpuffer 146 zum Übertragen von Daten zwischen den Komponenten des eingebetteten Systems 100 bereitstellen, wie es nachfolgend noch genauer beschrieben ist.
  • Bei einem Ausführungsbeispiel der Erfindung kann der flüchtige Speicher 104 ferner Steuerregister 140 zum internen Speicherdirektzugriff (iDMA = internal direct memory access) zum Steuern von DMA-Übertragungen zwischen dem nichtflüchtigen Speicher 108, der Nichtflüchtiger-Speicher-Steuerung 106 und dem flüchtigen Speicher 104 bereitstellen. Wie es nachfolgend beschrieben ist, kann ein Modifizieren der Einstellungen der iDMA-Steuerregister in dem flüchtigen Speicher 104 bewirken, dass der flüchtige Speicher 104 Befehle an die Nichtflüchtiger-Speicher-Steuerung 106 ausgibt, die bewirken, dass entsprechende Veränderungen in iDMA-Steuerregistern 152 in einer iDMA-Steuerung 150 der Nichtflüchtiger-Speicher-Steuerung 106 vorgenommen werden. Derartige Veränderungen können z. B. zur Folge haben, dass ein Befehl an die iDMA-Steuerung 150 ausgegeben wird, der bewirkt, dass eine DMA-Übertragung durchgeführt wird, z. B. zwischen dem flüchtigen Speicher 104, der Nichtflüchtiger-Speicher-Steuerung 106 und dem nichtflüchtigen Speicher 108.
  • Bei einem Ausführungsbeispiel kann die DMA-Übertragung z. B. Puffer 154 in der Nichtflüchtiger-Speicher-Steuerung 106 verwenden, um Daten, die zwischen dem nichtflüchtigen Speicher 108 und dem flüchtigen Speicher 104 übertragen werden, temporär zu fassen. Hinsichtlich des flüchtigen Speichers 104 kann die DMA-Übertragung eine iDMA-Flüchtiger-Speicher-Zugriffssteuerung 162 verwenden, um auf das Flüchtiger-Speicher-Array 116 zuzugreifen (z. B., um Daten für die DMA-Übertragung zu lesen oder zu schreiben). Daten von dem Flüchtiger-Speicher-Array 116 können zu einem iDMA-Puffer 144 oder von demselben übertragen werden, der wiederum verwendet werden kann, um Daten über die Nichtflüchtiger-Speicher-Schnittstelle 120 des flüchtigen Speichers 104 zu übertragen. Eine iDMA-Puffersteuerung 148 kann verwendet werden, um die Datenübertragung zwischen der iDMA-Flüchtiger-Speicher-Zugriffssteuerung 162, dem iDMA-Puffer 144 und der Nicht flüchtiger-Speicher-Schnittstelle 120 des flüchtigen Speichers 104 zu steuern.
  • Bei einem Ausführungsbeispiel kann der flüchtige Speicher 104 auch Universeller-Serieller-Bus/Fortschrittliche-Technologie-Anschluss-Register (USB/ATA-Register; USB = Universal Serial Bus; ATA = Advanced Technology Attachment) 142 umfassen, die verwendet werden können, um eine USB/ATA-Funktionalität in der Nichtflüchtiger-Speicher-Steuerung 106 zu steuern. Zum Beispiel kann, wie es nachfolgend beschrieben ist, wenn eine Änderung an den USB/ATA-Registern in dem flüchtigen Speicher 104 vorgenommen wird, der flüchtige Speicher 104 automatisch bewirken, dass eine entsprechende Veränderung in USB/ATA-Steuerregistern 158 in der Nichtflüchtiger-Speicher-Steuerschaltungsanordnung 124 der Nichtflüchtiger-Speicher-Steuerung 106 vorgenommen wird. Somit kann der Host 102 in der Lage sein, auf die USB/ATA-Funktionalität der Nichtflüchtiger-Speicher-Steuerung 106 über den flüchtigen Speicher 104 zuzugreifen.
  • Konfigurieren eines Überlagerungsfensters zum Zugreifen auf Daten
  • Bei einem Ausführungsbeispiel der Erfindung kann ein Abschnitt des Flüchtiger-Speicher-Adressraums für den flüchtigen Speicher 104 einem Überlagerungsfenster zugeordnet werden. 3A ist ein Blockdiagramm, das ein Überlagerungsfenster 304 darstellt, das einen Abschnitt des Flüchtiger-Speicher-Adressraums 302 belegt, gemäß einem Ausführungsbeispiel der Erfindung. Der Flüchtiger-Speicher-Adressraum 302 des flüchtigen Speichers 104 umfasst im Allgemeinen den Bereich von Adressen, auf die über die Flüchtiger-Speicher-Schnittstelle 112 des flüchtigen Speichers 104 zugegriffen werden kann. Zum Beispiel kann, wenn die Flüchtiger-Speicher-Schnittstelle 112 insgesamt 18 Adressbits bereitstellt (z. B. zwei Bankadressbits BA0 und BA1 und 16 Adressbits A[15:0]), der Adressraum 302 des flüchtigen Speichers 104 262, 144 Adressen (2 potenziert mit 18) umfassen, was bis zu 256k Zeileneinträge (wobei jeder Zeileneintrag einer gegebenen Adresse entspricht) von Daten in den flüchtigen Speicher 104, auf die zugegriffen wird, ermöglichen kann.
  • In manchen Fällen kann durch ein Zugreifen auf Adressen in dem Überlagerungsfenster 304 über die Flüchtiger-Speicher-Schnittstelle 112 der Host 102 in der Lage sein, auf Daten in dem nichtflüchtigen Speicher 108 sowie in dem Überlagerungsfenstersteuerungsregister 138, den iDMA-Steuerregistern 140 und den USB/ATA-Steuerregistern 142 zuzugreifen. Somit kann das Überlagerungsfenster 304 einen Zugriff über die Flüchtiger-Speicher-Schnittstelle 112 auf andere Register und Speicherarrays als das Flüchtiger-Speicher-Array 116 ermöglichen. Wenn ein Zugriffsbefehl (z. B. ein Lese- oder Schreibbefehl), der über die Flüchtiger-Speicher-Schnittstelle 112 empfangen wurde, nicht in den Bereich von durch das Überlagerungsfenster spezifizierten Adressen fällt, kann der Zugriffsbefehl verwendet werden, um auf das Flüchtiger-Speicher-Array 116 zuzugreifen. Wenn die empfangene Adresse nicht in das Überlagerungsfensters 304 fällt, kann der Zugriffsbefehl verwendet werden, um auf andere Daten (z. B. Daten in dem Überlagerungsfensterpuffer 146 oder in den Steuerregistern 138, 140, 142 in dem flüchtigen Speicher 104) zuzugreifen.
  • Wie im Vorhergehenden beschrieben, kann das Überlagerungsfenster 304 einen Abschnitt des Flüchtiger-Speicher-Adressraums 302 belegen. Bei einem Ausführungsbeispiel kann das Überlagerungsfenster 304 z. B. als Folge eines Befehls, der über die Flüchtiger-Speicher-Schnittstelle 112 empfangen wurde, freigegeben oder gesperrt werden. Ferner können in manchen Fällen die durch das Überlagerungsfenster belegten Flüchtiger-Speicher-Adressen 302 konfigurierbar sein. Somit können die Basisadresse 306 des Überlagerungsfensters 304 sowie die Größe 308 des Überlagerungsfensters 304 (in 3A dargestellt) durch ein Modifizieren von Steuerungsregistereinstellungen in dem flüchtigen Speicher 104 konfigurierbar sein.
  • Dort wo das Überlagerungsfenster 304 Flüchtiger-Speicher-Adressraum 302 belegt, der in der Regel verwendet wird, um auf das Flüchtiger-Speicher-Array 116 zuzugreifen, ist es möglich, dass auf den Abschnitt des Flüchtiger-Speicher-Arrays 116, der durch das Überlagerungsfenster 304 adressiert wird, nicht zugegriffen werden kann (z. B. können Zugriffe auf diese Adressen Daten außerhalb des Flüchtiger-Speicher-Arrays 116 modifizieren). Jedoch können durch Bewegen des Überlagerungsfensters 304 verschiedene Teile des Flüchtiger-Speicher-Arrays 116 „offengelegt" werden (z. B. kann auf dieselben über die Flüchtiger-Speicher-Schnittstelle 112 zugegriffen werden) oder "abgedeckt" werden (z. B. können Zugriffe auf diese Adressen mittels des Überlagerungsfensters 304 umgeleitet werden). Ferner kann, dort wo das Überlagerungsfenster 304 gesperrt ist, auf das gesamte Flüchtiger-Speicher-Array 116 über den Flüchtiger-Speicher-Adressraum 302 zugegriffen werden. Auch kann bei einem Ausführungsbeispiel der Flüchtiger-Speicher-Adressraum 302 größer als die Menge von Daten in dem Flüchtiger-Speicher-Array 116 sein (z. B. können mehr Datenadressen als Daten bereitgestellt sein), was es möglich macht, dass das Überlagerungsfenster 304 in einem Abschnitt des Flüchtiger-Speicher-Adressraums 302, der keine Datenadressen für das Flüchtiger-Speicher-Array 116 überlappt, platziert wird.
  • 2A ist ein Flussdiagramm, das einen Prozess 200 zum Konfigurieren des Überlagerungsfensters 304 gemäß einem Ausführungsbeispiel der Erfindung darstellt. Der Prozess 200 kann bei Schritt 202 beginnen, in dem das Überlagerungsfenster 304 freigegeben wird. Bei Schritt 204 kann die Basisadresse 306 für das Überlagerungsfenster 304 eingestellt werden. Die Basisadresse 306 kann eine Flüchtiger-Speicher-Adresse anzeigen, an der das Überlagerungs fenster 304 beginnt. Bei einem Ausführungsbeispiel kann die Basisadresse 306 derart begrenzt sein, dass die ausgewählte Basisadresse 306 lediglich auf eine Grenze in der Größe einer Seite fällt. Optional kann jede beliebige Ausrichtung für die Basisadresse 306 verwendet werden (z. B. eine Byteausrichtung). Bei Schritt 206 kann die Größe 308 des Überlagerungsfensters 304 eingestellt werden. Die Größe 308 des Überlagerungsfensters 304 kann z. B. einen Bereich von Flüchtiger-Speicher-Adressen anzeigen, beginnend bei der Basisadresse 306, die das Überlagerungsfenster 304 belegt. Bei einem Ausführungsbeispiel kann der für die Größe 308 bereitgestellte Wert multipliziert werden, um die tatsächliche Größe zu bestimmen (z. B. kann die tatsächliche Größe des Überlagerungsfensters 304 die bereitgestellte Größe multipliziert mit 1024 (1K) oder 2048 (2K) sein), derart, dass die Größe 308 eine ganze Zahl von Blöcken von Speicheradressen für das Überlagerungsfenster 304 zuordnet. Bei Schritt 208 kann das Überlagerungsfenster 304 für einen Datenzugriff verwendet werden (z. B., um auf den Überlagerungsfensterpuffer 146 und/oder Steuerregister 138, 140, 142 zuzugreifen).
  • Im Allgemeinen kann der Prozess 200, der in 2A dargestellt ist, unter Verwendung eines beliebigen Verfahrens, das den Fachleuten auf dem Gebiet bekannt ist, durchgeführt werden. Zum Beispiel kann jeder Schritt durch Ausgeben von Befehlen an den flüchtigen Speicher 104 durchgeführt werden. Optional können änderbare Voreinstellungseinstellungen und/oder dauerhafte, voreingestellte Einstellungen für jedes Überlagerungsfensterattribut bereitgestellt werden (z. B., ob das Überlagerungsfenster 304 freigegeben ist, die Basisadresse 306 und/oder die Größe).
  • 2B ist ein Flussdiagramm, das einen exemplarischen Prozess 210 zum Konfigurieren des Überlagerungsfensters 304 gemäß einem Ausführungsbeispiel der Erfindung darstellt. Der Prozess 210 kann bei Schritt 212 beginnen, in dem das Überlagerungsfenster durch Setzen eines Überla gerungsfensterfreigabebits (OWE-Bits; OWE = overlay window enable) Bits in einem Modusregister 170 des flüchtigen Speichers 104 unter Verwendung eines Modusregistereinstellbefehls (MRS-Befehls; MRS = mode register set) freigegeben wird. Anschließend kann bei Schritt 214 die Basisadresse 306 für das Überlagerungsfenster 304 unter Verwendung eines MRS-Befehls eingestellt werden.
  • Bei einem Ausführungsbeispiel kann, nachdem die Basisadresse 306 des Überlagerungsfensters 304 eingestellt worden ist, der flüchtige Speicher 104 automatisch einen Voreinstellungsadressraum 310 für das Überlagerungsfenster 304 an dem Beginn der im Vorhergehenden eingestellten Basisadresse 306 zuordnen, wie es in 3B dargestellt ist. Der automatisch zugeordnete Adressraum 310 für das Überlagerungsfenster 304 kann verwendet werden, um auf die Überlagerungsfenstersteuerregister 138 und die anderen Steuerregister 140, 142 zuzugreifen. Da auf die Steuerregister 138, 140, 142 unter Verwendung von Zugriffsbefehlen (z. B. Lese- und Schreibbefehlen), die an Adressen in dem flüchtigen Speicher 104 über die Flüchtiger-Speicher-Schnittstelle 112 ausgegeben werden, zugegriffen werden kann, können die Steuerregister 138, 140, 142 als speicherabgebildete Register bezeichnet werden. Somit kann durch Lesen einer Adresse in dem Flüchtiger-Speicher-Adressraum 302, der dem automatisch zugeordneten Adressraum 310 für das Überlagerungsfenster 304 entspricht, oder Schreiben in dieselbe Adresse in ein Überlagerungsfensterregister, das der Adresse entspricht, auf die zugegriffen wird, geschrieben werden oder aus demselben gelesen werden.
  • Bei Schritt 218 kann die Größe 308 des Überlagerungsfensters 304 durch Schreiben mittels der Flüchtiger-Speicher-Schnittstelle 112 in die speicherabgebildeten Überlagerungsfenstersteuerregister 138 eingestellt werden. Die Größe 308, die durch Schreiben in die Überlagerungsfenstersteuerregister 138 eingestellt wird, kann eine Größe des Überlagerungsfensters 304 beginnend von der im Vorher gehenden eingestellten Basisadresse 306 anzeigen. Optional kann die Größe 308 eine Größe des Überlagerungsfensters 304 zusätzlich zu und beginnend bei dem Ende des automatisch zugeordneten Überlagerungsfensteradressraums 310 anzeigen. Die Größe 308, die für das Überlagerungsfenster 304 bereitgestellt ist, kann einen Pufferadressraum 330 (dargestellt in 3B) umfassen, der auf den Überlagerungsfensterpuffer 146 abgebildet und für einen Datenzugriff verwendet wird, wie es nachfolgend beschrieben ist. Nachdem das Überlagerungsfenster 304 wie in Schritten 212, 214, 216 und 218 beschrieben konfiguriert worden ist, kann das Überlagerungsfenster für einen Datenzugriff bei Schritt 208 verwendet werden. Zum Beispiel kann der zugeordnete Raum für das Überlagerungsfenster 304 verwendet werden, um Befehle an den flüchtigen Speicher 104, die Nichtflüchtiger-Speicher-Steuerung 106 und den nichtflüchtigen Speicher 108 auszugeben (nachfolgend ausführlicher beschrieben).
  • 3C ist ein Blockdiagramm, das eine exemplarische MRS-Befehlsstruktur zum Freigeben des Überlagerungsfensters 304 und Einstellen der Überlagerungsfensterbasisadresse 306 gemäß einem Ausführungsbeispiel der Erfindung darstellt. Wie dargestellt kann ein über die Flüchtiger-Speicher-Schnittstelle 112 an den flüchtigen Speicher 104 ausgegebener Befehl einen Befehlsabschnitt 312 und einen Adressabschnitt 314 umfassen, der Bankadressbits BA0, BA1, die eine Bank 136 des Flüchtiger-Speicher-Arrays 116, auf die zugegriffen wird, anzeigen und Adressbits Ai ... A0, die eine Adresse in der spezifizierten Bank 136, auf die zugegriffen wird, anzeigen, umfasst.
  • Wenn ein ausgegebener Befehl 312 ein MRS-Befehl ist, können die Bankadressbits verwendet werden, um einen MRS-Befehlstyp zu kennzeichnen, und die Adressbits Ai ... A0 können zum Auswählen und Modifizieren eines der Modusregister 170 verwendet werden. Wie dargestellt können die Bankadressbits verwendet werden, um einen von vier MRS-Befehlstypen auszuwählen. Wenn die Bankadressbits beide Null sind, kann der MRS-Befehl verwendet werden, um das Voreinstellungsmodusregister (MRS) zu modifizieren. Wenn BA1 Null und BA0 Eins ist, kann der MRS-Befehl verwendet werden, um das erweiterte Modusregister (EMRS = extended mode register) zu modifizieren. Wenn BA1 Eins und BA0 Null ist, kann der MRS-Befehl für eine Statusregisterleseoperation verwendet werden.
  • Wenn beide mit einem MRS-Befehl empfangenen Bankadressbits Eins sind, kann der MRS-Befehl ein Modusregister-11-Befehl (MRS-11-Befehl) sein und verwendet werden, um ein MRS-11-Teilregister 320, 322, 324, 326, das durch Adressbits A9 und A8 gekennzeichnet ist, zu modifizieren. Wie dargestellt können die Adressbits A9 und A8 durch eine Auswahlschaltungsanordnung 316 verwendet werden, um das entsprechende Teilregister 320, 322, 324, 326 auszuwählen, das durch einen durch Adressbits A7-A0 bereitgestellten Teilregisterwert modifiziert wird.
  • Bei einem Ausführungsbeispiel kann, um das Überlagerungsfenster 302 freizugeben, ein MRS-Befehl ausgegeben werden, bei dem beide Bankadressbits auf Eins gesetzt sind, was anzeigt, dass der MRS-Befehl eines der MRS-11-Teilregister 320, 322, 324, 326 modifiziert. Um das Teilregister 320, das das Überlagerungsfensterfreigabebit (OWE-Bit) enthält, auszuwählen, können die Adressbits A9 und A8 in dem ausgegebenen Befehl beide Null sein. Schließlich kann, um das OWE-Bit zu setzen, das Adressbit A6 in dem ausgegebenen MRS-11-Befehl Eins sein.
  • Bei einem Ausführungsbeispiel kann die Überlagerungsfensterbasisadresse 306 eine ausgerichtete Adresse sein (z. B. eine Adresse, ein ganzes Vielfaches einer gewissen durch eine Anzahl von Adressbits gekennzeichneten Datengröße ist). Wie dargestellt kann die Basisadresse 306 aus den Werten von den drei Teilregistern 322, 324, 326 erhalten werden. Somit können, um die Basisadresse 306 einzustellen, drei MRS-11-Befehle mit [A9:A8] gleich „11", „10” bzw. „01" ausgegeben werden, wodurch die Basisadressbits den Teilregistern 326, 324 bzw. 322 bereitgestellt werden.
  • Wie im Vorhergehenden erwähnt, können bei einem Ausführungsbeispiel der Erfindung Voreinstellungseinstellungen für Überlagerungsfensterattribute, wie z. B. die Überlagerungsfensterbasisadresse 306, die Überlagerungsfenstergröße 310, und ob das Überlagerungsfenster 304 freigegeben ist (z. B., ob OWE als eine Voreinstellungseinstellung gesetzt oder gelöscht ist) bereitgestellt werden. Bei einem Ausführungsbeispiel können die Voreinstellungsüberlagerungsfensterbasisadresse 306, die Voreinstellungsüberlagerungsfenstergröße 310 und die OWE-Einstellung durch Erfassen-bei-Rücksetzen-eins 350 bereitgestellt sein, wie es in 3D gezeigt ist. Die Pins 350 können (z. B. durch den Hersteller des eingebetteten Systems 100) mit Hoch- oder Niedrigspannungspegeln verbunden sein, die von der erwünschten Überlagerungsfensterbasisadresse 306, der Überlagerungsfenstergröße 310 abhängen und davon abhängen, ob das Überlagerungsfenster 304 durch Voreinstellung freigegeben sein soll. Wenn der flüchtige Speicher 104 ein Rücksetzsignal empfängt (z. B., wenn zum ersten Mal Leistung an den flüchtigen Speicher 104 angelegt wird, oder wenn der flüchtige Speicher 104 rückgesetzt wird), kann der flüchtige Speicher 104 automatisch die Überlagerungsfenstersteuerregister 138 und Modusregister 170 mit den durch die Erfassen-bei-Rücksetzen-Pins 350 bereitgestellten Einstellungen laden. Diese Einstellungen können nachfolgend aufgehoben werden, z. B. durch Ausgeben von Befehlen an die Modusregister 170 und die Überlagerungsfenstersteuerregister 138, wie es vorhergehend beschrieben ist. Optional können die Voreinstellungseinstellungen durch ein Schmelzen von Sicherungen in dem flüchtigen Speicher 104 gemäß den erwünschten Einstellungen oder durch Verdrahten der Einstellungen in die Schaltungsanordnung des flüchtigen Speichers 104 eingestellt werden.
  • 4 ist ein Zeitsteuerungsdiagramm, das Befehle darstellt, die ausgegeben werden, um das Überlagerungsfenster 304 zu konfigurieren, gemäß einem Ausführungsbeispiel der Erfindung. Wie dargestellt kann zu einem Zeitpunkt T1 ein MRS-11-Befehl ausgegeben werden, der das OWE-Bit in dem MRS-11-Teilregister „00" setzt (BA1, BA0 gleich „11", A9, A8 gleich „00" und A7-A0 gleich "40h" in Hexadezimal, derart, dass A6 gleich „1" ist). Anschließend können, zu Zeitpunkten T2-T4, zusätzliche MRS-11-Befehle ausgegeben werden, die die Überlagerungsfensterbasisadresse 306 in den MRS-11-Teilregistern 322, 324, 326 einstellen (base0, base1 bzw. base2). Wie im Vorhergehenden beschrieben kann, nachdem das Überlagerungsfenster 304 freigegeben worden ist und die Überlagerungsfenstergröße 308 eingestellt worden ist, der automatisch zugeordnete Adressraum 310 für das Überlagerungsfenster 304 verwendet werden, um auf Daten, die die Überlagerungsfenstersteuerregister 138 umfassen, zuzugreifen. Somit kann, z. B. zu einem Zeitpunkt T6, ein Schreibbefehl ausgegeben werden, der die Überlagerungsfenstergröße 308 in die entsprechende Flüchtiger-Speicher-Adresse in dem automatisch zugeordneten Adressraum 310 schreibt. Die Adresse des Überlagerungsfenstergrößenregisters kann durch die Adressbits BA1-BA0 und A9-A0 bereitgestellt werden, während die Größeneinstellung über Daten-Eingänge/Ausgänge (DQ) der Flüchtiger-Speicher-Schnittstelle 11 bereitgestellt werden kann. Weitere Befehle, z. B. Zugreifen auf den Flüchtiger-Speicher-Adressraum 302, können bei Schritt T7 ausgegeben werden.
  • Während sie im Vorhergehenden hinsichtlich einer Freigabe eines Überlagerungsfensters 304, eines Einstellens einer Basisadresse 306 und eines Einstellens einer Größe 308 beschreiben wurden, können die Befehle, die ausgegeben werden, um das Überlagerungsfenster 304 zu konfigurieren, in einer beliebigen Reihenfolge durchgeführt werden. Auch kann, wie im Vorhergehenden beschrieben, in manchen Fällen das Fenster 306 durch Voreinstellung freigegeben sein und/oder es können Voreinstellungswerte für die Basisadres se 306 und die Größe 308 bereitgestellt sein. In derartigen Fällen werden unter Umständen im Vorhergehenden beschriebene Konfigurationsbefehle nicht verwendet, oder es werden derartige Konfigurationsbefehle unter Umständen nur dort verwendet, wo sie durch den Entwickler des eingebetteten Systems erwünscht sind.
  • Ausgeben von Befehlen über das Überlagerungsfenster
  • Bei einem Ausführungsbeispiel der Erfindung kann, nachdem das Überlagerungsfenster 304 konfiguriert worden ist, das Überlagerungsfenster 304 verwendet werden, um auf die Speicherregister 138, 140, 142 und den Überlagerungsfensterpuffer 146 zuzugreifen. Durch Zugreifen auf die Steuerregister 138, 140, 142 und den Überlagerungsfensterpuffer 146 kann der Host 102 in der Lage sein, Befehle über die Flüchtiger-Speicher-Schnittstelle 110 auszugeben, die Konfigurationsänderungen in der Nichtflüchtiger-Speicher-Steuerung 106 und/oder Datenübertragungen zwischen dem flüchtigen Speicher 104 und dem nichtflüchtigen Speicher 108 über die Nichtflüchtiger-Speicher-Steuerung 106 zur Folge haben.
  • 5 ist ein Flussdiagramm, das einen Prozess 500 zum Zugreifen auf die Steuerregister 138, 140, 142 und den Überlagerungsfensterpuffer 146 über das Überlagerungsfenster 304 darstellt, gemäß einem Ausführungsbeispiel der Erfindung. der Prozess 500 kann bei Schritt 502 beginnen, an dem über die Flüchtiger-Speicher-Schnittstelle 112 des flüchtigen Speichers 104 ein Zugriffsbefehl empfangen wird. Bei Schritt 504 kann eine Entscheidung getroffen werden, ob das Überlagerungsfenster 304 freigegeben ist. Wenn das Überlagerungsfenster 304 gesperrt ist (OWE = 0), kann der Zugriffsbefehl verwendet werden, um bei Schritt 508 auf das Flüchtiger-Speicher-Array 116 zuzugreifen. Wenn das Überlagerungsfenster freigegeben ist (OWE = 1), kann bei Schritt 506 eine Entscheidung getroffen werden, ob der Zugriffsbefehl auf eine Speicheradresse innerhalb des Überlagerungsfensters 304 zugreift. Wenn sich die Adresse, auf die zugegriffen wird, außerhalb des Überlagerungsfensters 304 befindet, kann der Zugriffsbefehl verwendet werden, um auf das Flüchtiger-Speicher-Array 116 an der durch den Befehl bei Schritt 108 bereitgestellten Speicheradresse zuzugreifen.
  • Wenn sich jedoch die Adresse für den Zugriffsbefehl innerhalb des Überlagerungsfensters 304 befindet, dann kann bei Schritt 512 eine Entscheidung getroffen werden, ob der Zugriffsbefehl auf eine Speicheradresse innerhalb des automatisch zugeordneten Steuerregisteradressraums 310 des Überlagerungsfensters 304 zugreift. Wenn sich die Adresse innerhalb des Steuerregisteradressraums 310 des Überlagerungsfensters 304 befindet, kann der Zugriffsbefehl verwendet werden, um bei Schritt 514 auf die speicherabgebildeten Steuerregister (z. B. die Überlagerungsfenstersteuerregister 138 oder die anderen speicherabgebildeten Register 140, 142) zuzugreifen. Wenn sich die durch den Zugriffsbefehl bereitgestellte Adresse innerhalb des Überlagerungsfensters 304, jedoch außerhalb des Steuerregisterspeicherraums 310 (und somit innerhalb des Pufferadressraums 330) befindet, kann der Zugriffsbefehl verwendet werden, um auf eine entsprechende Adresse innerhalb des Überlagerungsfensterpuffers 146 des nichtflüchtigen Speichers 108 zuzugreifen. Der Prozess 500 kann anschließend bei Schritt 510 fortfahren.
  • Bei einem Ausführungsbeispiel der Erfindung kann der Host 102 Befehle an den nichtflüchtigen Speicher 108 und/oder die Nichtflüchtiger-Speicher-Steuerung 106 durch Schreiben der Befehle in ein Steuerregister ausgeben. Zum Beispiel kann der Host 102 einen Schreibbefehl an eine Adresse eines speicherabgebildeten Steuerregisters 138, 140, 142 in dem Überlagerungsfensteradressraum 304 ausgeben. Die durch den Schreibbefehl geschriebenen Daten können selbst ein Befehl sein. Wenn der Befehl in das Überlagerungsfenster 304 geschrieben wird, kann der flüchtige Speicher 104 den empfangenen Befehl verwenden, um entsprechende Befehle an die Nichtflüchtiger-Speicher-Steuerung 106 und/oder den nichtflüchtigen Speicher 108 auszugeben. Der Host 102 kann den Status des ausgeführten Befehls (z. B., ob der Befehl anstehend oder abgeschlossen ist), durch Lesen von Statusdaten aus einem geeigneten speicherabgebildeten Register 138, 140, 142 in dem Überlagerungsfenster 304 bestimmen. Optional kann ein durch den flüchtigen Speicher 104 an den Host 102 ausgegebenes Unterbrechungssignal verwendet werden, um dem Host 102 zu signalisieren, dass der Befehl abgeschlossen ist. In manchen Fällen kann, wenn ein Unterbrechungssignal verwendet wird, die Flüchtiger-Speicher-Schnittstelle 112 modifiziert werden, um eine derartige Unterbrechung aufzunehmen.
  • In manchen Fällen können, wenn der in das Überlagerungsfenster 304 geschriebene Befehl Daten von dem Host 102 verwendet oder Daten von dem nichtflüchtigen Speicher 108 zurücksendet, die Daten unter Verwendung des Überlagerungsfensterpuffers 146 übertragen werden. Optional können die Daten auch aus einem speicherabgebildeten Register innerhalb des Steuerfensters 304 oder aus dem Flüchtiger-Speicher-Array 116 erhalten werden. Wenn Daten für den Befehl in den Überlagerungsfensterpuffer 146 oder ein speicherabgebildetes Register innerhalb des Überlagerungsfensters 304 platziert werden, kann der Host 102 auf den Überlagerungsfensterpuffer 146 über das Überlagerungsfenster 304 zugreifen, wie es im Vorhergehenden beschrieben ist. Die Puffer 144 und 146 in dem flüchtigen Speicher 104 bzw. die Nichtflüchtiger-Speicher-Steuerung 106 können auch verwendet werden, um Daten zwischen dem nichtflüchtigen Speicher 108 und dem flüchtigen Speicher 104 zu übertragen.
  • 5B ist ein Flussdiagramm, das einen Prozess 540 zum Ausführen von in das Überlagerungsfenster 304 in dem flüchtigen Speicher 104 geschriebenen Befehlen dar stellt, gemäß einem Ausführungsbeispiel der Erfindung. Der Prozess 540 kann bei Schritt 550 beginnen, in dem der Host 102 den flüchtigen Speicher 104 prüft, um zu bestimmen, ob irgendwelche Befehle (z. B. im Vorhergehenden durch den Host 102 ausgegebene Befehle) anstehen. Wenn vorhergehende Befehle nicht abgeschlossen worden sind und nach wie vor anstehen, kann der Host 102 warten, bis die vorhergehenden Befehle abgeschlossen sind (z. B., bis die Nichtflüchtiger-Speicher-Steuerung 106 eine Ausführung der vorhergehenden Befehle abgeschlossen hat). Bei einem Ausführungsbeispiel kann der Host 102 durch Lesen eines speicherabgebildeten Statusregisters über das Überlagerungsfenster 304 bestimmen, ob ein Befehl ansteht. Optional kann der flüchtige Speicher 104 dem Host 102 durch Ausgeben einer Unterbrechung an den Host 102 anzeigen, dass ein vorhergehender Befehl abgeschlossen worden ist. Wie im Vorhergehenden beschrieben, kann, wenn ein Unterbrechungssignal verwendet wird, die Flüchtiger-Speicher-Schnittstelle 112 modifiziert werden, um eine derartige Unterbrechung aufzunehmen.
  • Nach dem Bestimmen, dass keine Befehle anstehen, kann anschließend in Schritt 552 der Host 102 einen Befehl in eine Adresse eines speicherabgebildeten Steuerregisters 138, 140, 142 innerhalb des Überlagerungsfensters 304 des flüchtigen Speichers 304 schreiben, wodurch der Befehl in das Steuerregister platziert wird. In manchen Fällen können, wenn der Befehl zusätzliche Daten erforderlich macht, die Daten auch in ein Steuerregister 138, 140, 142 oder in den speicherabgebildeten Überlagerungsfensterpuffer 146 geschrieben werden. Bei Schritt 554 kann der Host 102 ein Steuerregisterbit setzen, das anzeigt, dass der Befehl in den flüchtigen Speicher 104 geschrieben worden ist. Bei einem Ausführungsbeispiel kann der Host 102 das Steuerregisterbit durch Schreiben in eine Adresse, die einem speicherabgebildeten Steuerregister 138, 140, 142 in dem Überlagerungsfenster 304 entspricht, setzen. Optional kann bei einem Ausführungsbeispiel der flüchtige Speicher 104 auto matisch erkennen, dass der Befehl geschrieben worden ist, ohne dass das Steuerregisterbit gesetzt wird.
  • [0058] Bei Schritt 560 kann der flüchtige Speicher 104 die Anzeige empfangen, dass der Befehl durch den Host 102 geschrieben worden ist. Anschließend kann bei Schritt 562 der flüchtige Speicher 104 der Nichtflüchtiger-Speicher-Steuerung 106 über die Nichtflüchtiger-Speicher-Schnittstelle 102 anzeigen, dass ein Befehl empfangen worden ist. Bei einem Ausführungsbeispiel kann der flüchtige Speicher 104 durch Ausgeben einer Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 anzeigen, dass ein Befehl empfangen worden ist. Auf ein Empfangen der Unterbrechung hin kann die Nichtflüchtiger-Speicher-Steuerung 106 den Befehl über ihre Nichtflüchtiger-Speicher-Schnittstelle 122 bei Schritt 566 lesen und den empfangenen Befehl bei Schritt 568 ausführen.
  • Optional kann, statt eines Ausgebens einer Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 der flüchtige Speicher 104 einen entsprechenden Befehl direkt an die Nichtflüchtiger-Speicher-Steuerung 106 ausgeben. Der flüchtige Speicher 104 kann auch ein Statusregisterbit setzen, das anzeigt, dass ein neuer Befehl empfangen worden ist. Das Statusregisterbit kann durch die Speichersteuerung 106 abgefragt werden. Auf ein Erfassen hin, dass das Bit gesetzt worden ist, kann die Speichersteuerung 106 den Befehl z. B. durch Ausgeben eines Lesebefehls an den flüchtigen Speicher 104 abrufen.
  • Ein Ausführen des empfangenen Befehls kann ein Lesen von Daten aus dem nichtflüchtigen Speicher 108 und ein Platzieren der gelesenen Daten in das Flüchtiger-Speicher-Array 116 oder den Überlagerungsfensterpuffer 146 des flüchtigen Speichers 104 umfassen. Ein Ausführen des Befehls kann auch ein Schreiben von Daten aus dem Überlagerungsfensterpuffer 146 oder dem Flüchtiger-Speicher-Array 116 in den nichtflüchtigen Speicher 108 umfassen. Ein Ausführen des Befehls kann ferner ein Durchführen einer DMA-Übertragung zwischen dem nichtflüchtigen Speicher 108 und dem flüchtigen Speicher 104, ein Modifizieren von Steuerregistereinstellungen in der Nichtflüchtiger-Speicher-Steuerung 106 (z. B. in der iDMA-Steuerung 150 oder in der Nichtflüchtiger-Speicher-Steuerschaltungsanordnung 124), ein Durchführen von NAND-Verwaltungsfunktionen oder ein Übertragen von Steuerregistereinstellungen zwischen der Nichtflüchtiger-Speicher-Steuerung 106 und dem flüchtigen Speicher 104 umfassen, wie es nachfolgend beschrieben ist.
  • Bei Schritt 570 kann, nachdem der Befehl ausgeführt worden ist, die Nichtflüchtiger-Speicher-Steuerung 106 einen Befehl an den flüchtigen Speicher 104 über die Nichtflüchtiger-Speicher-Schnittstelle 122 ausgeben, um ein Steuerregisterbit (z. B. in einem der speicherabgebildeten Steuerregister 138, 140, 142) zu setzen, das anzeigt, dass der empfangene Befehl ausgeführt worden ist. Bei Schritt 564 kann der flüchtige Speicher 104 das entsprechende Steuerregisterbit aktualisieren, um anzuzeigen, dass der Befehl ausgeführt worden ist, und bei Schritt 556 kann der Host die Anzeige empfangen, dass der Befehl ausgeführt worden ist. Der Prozess 540 kann dann bei Schritt 558 fortfahren. Bei einem Ausführungsbeispiel kann der Host 102 durch Lesen eines Steuerregisters, das das gesetzte Bit enthält, das anzeigt, dass der Befehl ausgeführt worden ist (z. B. durch Abfragen des geeigneten Bits in einem Steuerregister 138, 140, 142 über das Überlagerungsfenster 304) bestimmen, dass der Befehl ausgeführt worden ist. Optional kann bei einem Ausführungsbeispiel eine Unterbrechung an den Host 102 ausgegeben werden, die anzeigt, dass der Befehl ausgeführt worden ist.
  • Exemplarische speicherabgebildete Register und Puffer, auf die über das Überlagerungsfenster zugegriffen werden kann
  • Wie im Vorhergehenden beschrieben kann, wenn das Überlagerungsfenster 304 durch das Setzen des OWE-Bits freigegeben ist, der Steuerregisterspeicherraum 310 automatisch zugeordnet werden. Auf ein Einstellen der Größe 308 des Überlagerungsfensters 304 hin kann ein zusätzlicher Pufferspeicherraum 330 zugeordnet werden. Das Überlagerungsfenster 304 kann auch andere Puffer, speicherabgebildete Register usw. enthalten. 6 ist ein Blockdiagramm, das exemplarische Steuerregister 600, die durch den automatisch zugeordneten Steuerregisterraum 310 abgebildet sind, darstellt. Wie im Vorhergehenden beschrieben, kann der Steuerregisterraum an der Überlagerungsfensterbasisadresse 306 beginnen und sich zu höheren Adressen bin (z. B. von der Basisadresse 306 zu der Basisadresse 306 plus „M" in dem Diagramm) erstrecken. Die speicherabgebildeten Register 600 können Systemkonfigurationsregister 606, Laden-Speichern-Befehlsregister 608, Pufferzugriffsbefehlsregister 610, NAND-Verwaltungseinrichtungsbefehlsregister 612, Befehlsoperandregister 614 und Puffergrößeninformationsregister 616 umfassen.
  • Die Systemkonfigurationsregister 606 können verwendet werden, um eine Konfiguration des eingebetteten Systems 100 zu modifizieren, z. B. durch Auswählen von geeigneten Datenaustauschraten zwischen dem flüchtigen Speicher 104 und der Nichtflüchtiger-Speicher-Steuerung 106. Die Laden-Speichern-Befehlsregister 608 können durch den Host 102 geschriebene Datenzugriffsbefehle empfangen. Die durch den Host 102 geschriebenen Datenzugriffsbefehle können Lesebefehle zum Lesen von Daten von dem nichtflüchtigen Speicher 108 in einen Ort in dem flüchtigen Speicher umfassen (z. B. in den Überlagerungsfensterpuffer 146 oder das Flüchtiger-Speicher-Array 116). Die durch den Host 102 geschriebenen Datenzugriffsbefehle können ferner Schreibbefehle zum Schreiben von Daten von dem flüchtigen Speicher 104 (z. B. von dem Überlagerungsfensterpuffer 146, dem Flüchtiger-Speicher-Array 116 oder von einem Befehlsope randregister 614) in den nichtflüchtigen Speicher 108 umfassen. Die durch den Host 102 geschriebenen Datenzugriffsbefehle können ferner DMA-Befehle zum Durchführen von DMA-Übertragungen zwischen dem flüchtigen Speicher 104 und dem nichtflüchtigen Speicher 108 über die Nichtflüchtiger-Speicher-Steuerung 106 umfassen.
  • Bei einem Ausführungsbeispiel kann das Pufferzugriffsbefehlsregister 610 durch den Host 102 verwendet werden, um Befehle zum Zugreifen auf den Überlagerungsfensterpuffer 146 auszugeben. Das NAND-Verwaltungseinrichtungsbefehlsregister 612 kann durch den Host 602 verwendet werden, um Befehle an die Nichtflüchtiger-Speicher-Steuerung 106 auszugeben. Zum Beispiel kann, nachdem der Host 102 einen NAND-Verwaltungseinrichtungsbefehl an das NAND-Verwaltungseinrichtungsbefehlsregister 612 geschrieben hat, der Host 102 ein Steuerregisterbit in dem flüchtigen Speicher 104 setzen, das anzeigt, dass der Befehl geschrieben worden ist. Der flüchtige Speicher 104 kann anschließend eine Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 ausgeben, die anzeigt, dass der NAND-Verwaltungseinrichtungsbefehl empfangen worden ist. Auf ein Empfangen der Unterbrechung hin kann die Nichtflüchtiger-Speicher-Steuerung 106 den Befehl aus dem flüchtigen Speicher 104 über die Nichtflüchtiger-Speicher-Schnittstelle 120 des flüchtigen Speichers 104 abrufen. Der NAND-Verwaltungseinrichtungsbefehl kann dann durch die Nichtflüchtiger-Speicher-Steuerschaltungsanordnung 124 ausgeführt werden.
  • Bei einem Ausführungsbeispiel kann der Steuerregisterraum 310 auch Befehlsoperandregister 614 zum Speichern von Befehlsoperanden und Puffergrößeninformationsregister 616 umfassen. Die Puffergrößeninformationsregister 616 können verwendet werden, um auf Informationen, z. B. über den Überlagerungsfensterpuffer 146, zuzugreifen. Die Informationen können die Größe des Puffers 146 und/oder die Menge von Daten in dem Puffer 146 umfassen (z. B. welcher Abschnitt des Puffers für eine Datenspeicherung verwendet wird). Während einer Datenübertragung kann durch den Host 102 oder die Nichtflüchtiger-Speicher-Steuerung 106 auf die Informationen zugegriffen werden, um zu bestimmen, ob der Puffer 146 voll ist, und um zu bestimmen, ob mehr Daten, die übertragen werden müssen, in den Puffer 146 platziert werden oder ob zusätzliche Daten aus dem Puffer 146 gelesen werden.
  • 7 ist ein Blockdiagramm, das einen Speicherraum, der jedem der speicherabgebildeten Register 600 zugeordnet ist, darstellt, gemäß einem Ausführungsbeispiel der Erfindung. Wie dargestellt kann ein Systemoperationscoderegister (System-OP-Code-Register) 702 an einer ersten Adresse (z. B. der Überlagerungsfensterbasisadresse 306) bereitgestellt sein. Ähnlich kann ein Laden/Speichern-OP-Code-Register (LD/ST-OP-Code-Register; LD/ST = load/store) 704 an einem ersten Versatz bereitgestellt sein, ein Puffer-OP-Code-Register (BUFF-OP-Code-Register; BUFF = buffer) 706 an einem zweiten Versatz bereitgestellt sein und ein NAND-OP-Code-Register 708 an einem dritten Versatz bereitgestellt sein.
  • Operandregister 308, 712, 714 können an zahlreichen Adressversätzen bereitgestellt sein, wie es dargestellt ist. Jeder der Operanden kann verwendet werden, um Informationen zum Ausführen von über die OP-Code-Register 702, 704, 706, 708 spezifizierten Befehlen bereitzustellen. Die Operandregister können ein Register 308 für die Überlagerungsfenstergröße und ein Register 712 für Laden/Speichern-Operanden (die z. B. eine Startadresse (SA) und eine Zieladresse (DA = destination address) für Daten, die übertragen werden, aufweisen) umfassen. Die Operandregister können auch ein Operandregister 714 zum Speichern von NAND-Adressinformationen und anderen Daten umfassen. Wie im Vorhergehenden beschrieben können die speicherabgebildeten Register 600 auch das Puffergrößeninformationsregister 616 umfassen.
  • Bei einem Ausführungsbeispiel der Erfindung kann der Pufferraum 330 in mehrere RAM-Puffer [1 ... n] partitioniert werden. Durch Bereitstellen mehrerer RAM-Puffer (z. B. als Partition des Überlagerungsfensterpuffers, des iDMA-Puffers 144 oder anderer Puffer in dem flüchtigen Speicher 104) kann der flüchtige Speicher 104 durch den Host 102 und/oder die Nichtflüchtiger-Speicher-Steuerung 106 verwendet werden, um mehrere Datenübertragungen zwischen unterschiedlichen Orten in dem Flüchtiger-Speicher-Array 116 und/oder dem nichtflüchtigen Speicher 108 durchzuführen.
  • Spezifizieren von Operanden für über das Überlagerungsfenster ausgegebene Befehle
  • Bei einem Ausführungsbeispiel der Erfindung können unterschiedlichen OP-Codes, die den speicherabgebildeten Registern 600 bereitgestellt sind, unterschiedliche Operandregister 308, 712, 714, die an unterschiedlichen Versätzen innerhalb des Speicherregisterraums 310 angeordnet sind, verwenden. In manchen Fällen kann der in einem OP-Code-Register 702, 704, 706, 708 platzierte Befehl spezifizieren, welche Operanden mit dem OP-Code verwendet werden sollen, wodurch es der Vorrichtung, die den Befehl liest (z. B. dem flüchtigen Speicher 104 oder der Nichtflüchtiger-Speicher-Steuerung 106) ermöglicht wird, zu bestimmen, wo die Operanden für den gegebenen Befehl zu lokalisieren sind. Somit können in manchen Fällen verschiedene Orte und Operandgrößen für einen gegebenen Befehl verwendet werden.
  • 8 ist ein Blockdiagramm, das einen Befehl darstellt, der an ein OP-Code-Register (z. B. an eines der OP-Code-Register 702, 704, 706, 708) ausgegeben wurde, gemäß einem Ausführungsbeispiel der Erfindung. Wie dargestellt kann der Befehl 808 den Befehls-OP-Code, eine Ope randlänge für den Befehl 808 und einen Operandversatz für den Befehl 808 umfassen. Wenn eine Vorrichtung den Befehl 808 liest, kann die Vorrichtung die Operandlänge und den Operandversatz verwenden, um zu bestimmen, wo die Befehlsoperanden zu erhalten sind. Bei einem Ausführungsbeispiel der Erfindung kann der Operandversatz eine vollständige Adresse spezifizieren, an der die Operanden zu finden sind. Optional kann der Operandversatz einen Versatz von einem vorbestimmten Ort in dem Speicher, z. B. von der Überlagerungsfensterbasisadresse 306, von der Adresse 802 des Befehls 808 oder von einer anderen vorbestimmten Adresse spezifizieren.
  • Wie dargestellt kann der Operandversatz einen Versatz von der Adresse ,n' 802 dese Befehls bereitstellen. Die Adresse ,i' 804, die durch den Versatz angezeigt ist, kann einen ersten Operanden für den Befehl 808 enthalten. Andere Operanden für den Befehl 808 können von der Adresse ,i' 804 zu der Adresse ,i + j' 806, die durch den Operandversatz angezeigt ist, lokalisiert werden.
  • Durchführen einer Datenübertragung zwischen einem Flüchtiger-Speicher-Array und dem nichtflüchtigen Speicher
  • Wie im Vorhergehenden beschrieben kann das Überlagerungsfenster 304 verwendet werden, um Befehle an die Nichtflüchtiger-Speicher-Steuerung 106 auszugeben. Die ausgegebenen Befehle können NAND-Verwaltungseinrichtungskonfigurationsbefehle und iDMA-Konfigurationsbefehle umfassen, die nicht zu zusätzlichen Datenübertragungen zwischen dem flüchtigen Speicher 104 und dem nichtflüchtigen Speicher 108 führen. Derartige Befehle können Informationen an die Nichtflüchtiger-Speicher-Steuerung 106 liefern, die durch die Steuerung 106 verwendet werden, um Steuerregistereinstellungen zu ändern. Die Steuerregistereinstellungen können verwendet werden, um nachfolgende Datenübertragungen durchzuführen oder um NAND-Verwaltungseinrichtungs funktionen durchzuführen. Befehle, die über das Überlagerungsfenster 304 durch den Host 102 ausgegeben werden, können auch Lese- oder Schreibbefehle umfassen, die über die Nichtflüchtiger-Speicher-Steuerung 106 Daten von einer Quellenadresse in dem flüchtigen Speicher 104 (z. B. von einem Operandregister 714, von einem Überlagerungsfensterpuffer 146 oder von dem Flüchtiger-Speicher-Array 116) an eine Zieladresse in dem nichtflüchtigen Speicher 108 übertragen. Die Befehle können auch Daten von dem nichtflüchtigen Speicher 108 an einen Ort in dem flüchtigen Speicher 104 übertragen.
  • Bei einem Ausführungsbeispiel der Erfindung kann der durch den Host 102 bereitgestellte Datenübertragungsbefehl eine DMA-Übertragung sein. Ein erster Typ von DMA-Übertragungsbefehl (als ein STORE-Befehl bezeichnet; STORE = Speichern) kann zur Folge haben, dass Daten von dem Flüchtiger-Speicher-Array 116 zu dem nichtflüchtigen Speicher 108 übertragen werden, wie es in 9A dargestellt ist. Der Befehl kann eine spezifizierte Datenmenge bereitstellen, die übertragen werden soll. In manchen Fällen kann die iDMA-Steuerung 150 für jede Datenadresse, die übertragen wird, Anforderungen an den flüchtigen Speicher 104 ausgeben. Die angeforderten Daten können anschließend zu dem iDMA-Puffer 144 in dem flüchtigen Speicher 104, dann zu einem Puffer 154 in der Nichtflüchtiger-Speicher-Steuerung 106 und schließlich zu der Zieladresse in dem nichtflüchtigen Speicher 108 übertragen werden.
  • Bei einem Ausführungsbeispiel kann die iDMA-Steuerung 150 in der Nichtflüchtiger-Speicher-Steuerung 106 den iDMA-Puffer 148 verwenden, um einen Teil der DMA-Übertragungsarbeitslast abzuladen. Zum Beispiel kann die iDMA-Steuerung 150 einen Befehl an die iDMA-Puffersteuerung 148 in dem flüchtigen Speicher 104 ausgeben, der die Datenmenge, die von dem Flüchtiger-Speicher-Array 116 übertragen werden soll, und die Quellenadresse der zu übertragenden Daten anzeigt. Die iDMA-Puffersteuerung 148 kann anschlie ßend auf das Flüchtiger-Speicher-Array 116 zugreifen und mit dem Übertragen von Daten in den iDMA-Puffer 144 beginnen. Die iDMA-Puffersteuerung 148 kann mit dem Beladen des iDMA-Puffers 144 fortfahren, bis die spezifizierte Datenmenge übertragen worden ist, oder bis der Puffer 144 voll ist.
  • Während die iDMA-Puffersteuerung 148 den iDMA-Puffer 144 lädt, kann die iDMA-Steuerung 150 in der Nichtflüchtiger-Speicher-Steuerung 106 den Status des iDMA-Puffers 144 bestimmen. Eine derartige Bestimmung kann z. B. durch Abfragen eines Puffergrößeninformationsregisters 616 in dem flüchtigen Speicher 104 vorgenommen werden. Optional kann eine derartige Bestimmung als Folge einer Unterbrechung, die durch die iDMA-Puffersteuerung 148 in dem flüchtigen Speicher 104 an die Nichtflüchtiger-Speicher-Steuerung 106 ausgegeben wird, vorgenommen werden. Eine derartige Unterbrechung kann z. B. ausgegeben werden, wenn beliebige Daten in dem Puffer 144 platziert werden, wenn eine vorbestimmte Datenmenge in dem Puffer 144 platziert wird, wenn eine durch die iDMA-Steuerung 150 spezifizierte Datenmenge in dem Puffer 144 platziert wird und/oder wenn der Puffer 144 voll ist. Wenn die iDMA-Puffersteuerung 148 bestimmt, dass der Puffer 144 Daten enthält, kann die iDMA-Puffersteuerung 148 anschließend die Daten in den Puffer 154 in der Nichtflüchtiger-Speicher-Steuerung 106 laden, bevor sie die Daten an den nichtflüchtigen Speicher 108 überträgt.
  • Nachdem die iDMA-Steuerung 150 die Daten aus dem iDMA-Puffer 144 geladen hat, kann die iDMA-Steuerung 150, wenn mehr Daten zurückbleiben, die von dem Flüchtiger-Speicher-Array 116 übertragen werden sollen, der iDMA-Puffersteuerung 148 in dem flüchtigen Speicher 104 anzeigen, dass in dem Puffer 144 Pufferraum verfügbar ist, und dass die DMA-Übertragung fortgeführt werden kann. Optional kann die iDMA-Puffersteuerung 148 einen Status des iDMA-Puffers 144 überwachen und automatisch erfassen, wann Pufferraum verfügbar ist. Auf ein Erfassen, dass Pufferraum verfügbar ist, hin, kann die iDMA-Puffersteuerung 148 wiederum fortfahren, den Puffer 144 mit Daten aus dem Flüchtiger-Speicher-Array 116 zu beladen, bis der Puffer 144 wiederum gefüllt ist, oder bis die spezifizierte Datenmenge übertragen worden ist.
  • Wie in 9B dargestellt, können die DMA-Übertragungen auch von dem nichtflüchtigen Speicher 108 zu dem Flüchtiger-Speicher-Array 116 durchgeführt werden. Der Befehl, der verwendet wird, um derartige Übertragungen durchzuführen, kann als LOAD-Befehl bezeichnet werden (LOAD = Laden). In manchen Fällen kann, wie es im Vorhergehenden beschrieben ist, die iDMA-Steuerung 150 in der Nichtflüchtiger-Speicher-Steuerung 106 die DMA-Übertragungsarbeitslast in die iDMA-Puffersteuerung 148 in dem flüchtigen Speicher 104 abladen. Zum Beispiel kann die iDMA-Steuerung 150 einen Befehl an die iDMA-Puffersteuerung 148 ausgeben, der anzeigt, dass Daten in das Flüchtiger-Speicher-Array 116, beginnend bei einer Zieladresse, die durch den DMA-Übertragungsbefehl spezifiziert ist, übertragen werden sollen. Die iDMA-Puffersteuerung 148 kann anschließend den iDMA-Puffer 144 überwachen. Wenn die iDMA-Steuerung 150 Daten von dem nichtflüchtigen Speicher 108 in den iDMA-Puffer 144 platziert, kann die iDMA-Puffersteuerung 148 anschließend mit dem Schreiben der empfangenen Daten in das Nichtflüchtiger-Speicher-Array 116 beginnen. Bei einem Ausführungsbeispiel kann die iDMA-Puffersteuerung 148 automatisch erfassen, dass der Puffer 144 zu schreibende Daten enthält. Optional kann die iDMA-Steuerung 150 ein Signal (z. B. durch Setzen eines Statusregisterbits, Ausgeben eines Befehls oder Ausgeben einer Unterbrechung) an die iDMA-Puffersteuerung 148 liefern, wenn der Puffer 144 Daten enthält, die an den flüchtigen Speicher 116 übertragen werden sollen.
  • In manchen Fällen kann die iDMA-Steuerung 150 den Puffer 144 überwachen (z. B. über ein Pufferstatusregis ter), um zu bestimmen, ob der Puffer 144 voll ist und/oder zu bestimmen, ob mehr Daten in den Puffer 144 zu platzieren sind. Optional kann die iDMA-Puffersteuerung 148 eine Anzeige (z. B. eine Unterbrechung) an die iDMA-Steuerung 150 liefern, wenn der Puffer 144 leer ist und/oder wenn der Puffer 144 einen vordefinierten oder spezifizierten Betrag an freiem Raum enthält.
  • In manchen Fällen kann, nachdem eine DMA-Übertragung durch die Nichtflüchtiger-Speicher-Steuerung 106 durchgeführt worden ist, die Nichtflüchtiger-Speicher-Steuerung 106 dem Host 102 über den flüchtigen Speicher 104 anzeigen, dass der Befehl abgeschlossen worden ist. Die Anzeige kann durch die Nichtflüchtiger-Speicher-Steuerung 106 z. B. durch Setzen eines Statusregisterbits in einem der Modusregister 170 oder speicherabgebildeten Steuerregister 138, 140, 142 durchgeführt werden. Das Statusbit kann anschließend durch den Host 102 abgefragt werden, um zu bestimmen, wann der Befehl abgeschlossen wurde. Optional kann, nach dem Empfangen eines Befehls von der Nichtflüchtiger-Speicher-Steuerung 106 oder nachdem durch die Nichtflüchtiger-Speicher-Steuerung 106 ein Statusbit gesetzt worden ist, der flüchtige Speicher 104 eine Unterbrechung an den Host 102 ausgeben, um anzuzeigen, dass die DMA-Übertragung abgeschlossen worden ist.
  • In manchen Fällen versucht u. U. während DMA-Übertragungen, die das Flüchtiger-Speicher-Array 116 betreffen, der Host 102, gleichzeitig mit der Nichtflüchtiger-Speicher-Steuerung 106 oder der iDMA-Puffersteuerung 148 auf das Flüchtiger-Speicher-Array 116 zuzugreifen. In derartigen Fällen können die Host-Flüchtiger-Speicher-Zugriffssteuerung 160 des und die iDMA-Flüchtiger-Speicher-Zugriffssteuerung 162 bestimmen, welcher Zugriff stattfindet. Bei einem Ausführungsbeispiel kann Zugriffen durch den Host 102 auf das Flüchtiger-Speicher-Array 116 der Vorzug gegenüber Zugriffen über die iDMA-Flüchtiger-Speicher-Zugriffssteuerung 162 gegeben werden. In manchen Fällen können, wenn Zugriffe über mehrere Taktzyklen hinweg durchgeführt werden, Zugriffe durch den Host 102 Zugriffe über die iDMA-Flüchtiger-Speicher-Zugriffssteuerung 162 aufheben und somit unterbrechen. Optional kann jedem beliebigen Zugriff, der zuerst eingeleitet wird, der Vorzug gegeben werden. Ferner kann, wenn die iDMA-Puffersteuerung 148 eine DMA-Übertragung durchführt, die DMA-Übertragung angehalten werden, um es dem Host 102 zu ermöglichen, auf das Flüchtiger-Speicher-Array 116 zuzugreifen. Nachdem der Host 102 auf das Flüchtiger-Speicher-Array 116 zugegriffen hat, kann anschließend die DMA-Übertragung wieder beginnen.
  • Bei einem Ausführungsbeispiel der Erfindung können mehrere Zugriffe auf das Flüchtiger-Speicher-Array 116 parallel durchgeführt werden. Zum Beispiel können, wenn ein durch den Host 102 durchgeführter Zugriff auf eine erste Speicherbank (z. B. Bank 1360 ) in dem Flüchtiger-Speicher-Array 116 zugreift, während ein Zugriff durch die iDMA-Puffersteuerung 148 auf eine zweite Speicherbank (z. B. Bank 1363 ) zugreift, beide Zugriffe gleichzeitig durchgeführt werden, ohne dass dieselben einander stören. Ähnlich kann, wenn eine DMA-Übertragung durch die Nichtflüchtiger-Speicher-Steuerung 106, die einen Puffer 146, 144 in dem flüchtigen Speicher 104 verwendet, durchgeführt wird, der Host 102 gleichzeitig Zugriffe auf das Flüchtiger-Speicher-Array 116 durchführen, ohne dass Störungen auftreten. Ähnlich kann, wenn der Host 102 auf die Modusregister 170, die Steuerregister 138, 140, 142 über das Überlagerungsfenster 304 oder auf die Puffer 146 über das Überlagerungsfenster 304 zugreift, die Nichtflüchtiger-Speicher-Steruerung 106 (oder die iDMA-Puffersteuerung 148) gleichzeitig auf das Flüchtiger-Speicher-Array 116 zugreifen, ohne dass Störungen auftreten.
  • Durchführen einer Datenübertragung zwischen dem Host und dem nichtflüchtigen Speicher über das Überlagerungsfenster
  • Bei einem Ausführungsbeispiel der Erfindung kann der Host 102 einen DMA-Übertragungsbefehl über das Überlagerungsfenster 304 ausgeben, der Daten zwischen dem Überlagerungsfensterpuffer 146 und dem nichtflüchtigen Speicher 108 überträgt, wie es in 9C dargestellt ist. Zum Beispiel kann der Befehl eine Quellenadresse in dem Überlagerungsfensterpuffer 146 und eine Zieladresse in dem nichtflüchtigen Speicher 108 spezifizieren. Der Befehl kann auch eine zu übertragende Datenmenge spezifizieren. Auf ein Empfangen des Befehls hin kann die iDMA-Steuerung 150 automatisch die spezifizierte von Datenmenge von dem Überlagerungsfensterpuffer 146 zu dem nichtflüchtigen Speicher 108 übertragen. Der Host 102 kann auch einen entsprechenden Datenbefehl ausgeben, um eine spezifizierte Datenmenge von dem Nichtflüchtiger-Speicher-Array 108 in den Überlagerungsfensterpuffer 146 zu übertragen. Der Host 102 kann anschließend über das Überlagerungsfenster 304 auf die übertragenen Daten zugreifen, wie es in 9D dargestellt ist.
  • Bei einem Ausführungsbeispiel der Erfindung kann der Host 102 DMA-Übertragungsbefehle an die Nichtflüchtiger-Speicher-Steuerung 106 ausgeben, die bewirken, dass die iDMA-Steuerung 150 automatisch Daten zwischen dem nichtflüchtigen Speicher 108 und dem Überlagerungsfensterpuffer 146 überträgt. Somit kann die iDMA-Steuerung entweder durch Abfragen eines Statusregisters oder durch Empfangen von Unterbrechungen von dem flüchten Speicher 104 bestimmen, ob Daten in den Überlagerungsfensterpuffer 146 übertragen oder von dem Überlagerungsfensterpuffer 146 gelesen werden sollen. Der Host 102 kann in ähnlicher Weise ein Statusregister abfragen, um Unterbrechungen von dem flüchtigen Speicher 104 zu empfangen und dadurch zu bestimmen, ob Daten von dem Überlagerungsfensterpuffer 146 gelesen oder zur Übertragung in den nichtflüchtigen Speicher 108 in den Überlagerungsfensterpuffer 146 geschrieben werden sollen.
  • 10A ist ein Blockdiagramm, das einen Prozess 1000 zum Durchführen einer automatischen DMA-Übertragung von dem Host 102 zu dem nichtflüchtigen Speicher 108 durchzuführen, gemäß einem Ausführungsbeispiel der Erfindung. Der Prozess 100 kann bei Schritt 1002 beginnen, in dem der Host 102 anstehende Befehle in dem flüchtigen Speicher 104 prüft. Nachdem bestimmt wurde, dass keine Befehle anstehen, kann der Host 102 einen DMA-Übertragungsbefehl ausgeben, der bei Schritt 1004 eine Quellenadresse in dem Überlagerungsfensterpuffer 146 und eine Zieladresse in dem nichtflüchtigen Speicher 108 anzeigt. Die Nichtflüchtiger-Speicher-Steuerung 106 kann, auf ein Erfassen des Befehls über ein abgefragtes Statusregister oder eine Unterbrechung von dem flüchtigen Speicher 104 hin, wie es im Vorhergehenden beschrieben ist, den DMA-Übertragungsbefehl bei Schritt 1016 empfangen.
  • Nachdem der Befehl empfangen wurde, können durch den Host 102 und die Nichtflüchtiger-Speicher-Steuerung 106 durchgeführte Schritte unabhängig voneinander fortfahren (z. B. ohne dass weitere Befehle zwischen der Nichtflüchtiger-Speicher-Steuerung 106 und dem Host 102 ausgegeben werden). Bei Schritt 1006 kann der Host 102 den Überlagerungsfensterpuffer 146 auf Überlauf prüfen, z. B. durch Prüfen des Puffergrößeninformationsregisters 616 über das Überlagerungsfenster 304. Optional kann bei einem Ausführungsbeispiel der Erfindung eine Unterbrechung an den Host 102 ausgegeben werden, um anzuzeigen, wann der Puffer 146 leer ist oder wann ein vordefinierter Betrag von Raum in dem Puffer 146 verfügbar ist. Besteht kein Pufferüberlauf, kann der Host 102 bei Schritt 108 Daten in den Puffer 146 schreiben. Wenn der Host 102 oder die Nichtflüchtiger-Speicher-Steuerung 106 Daten von dem Puffer liest oder Daten in denselben überträgt, kann der flüchtige Speicher 104 bei Schritt 1014 den Pufferstatus aktualisieren, z. B. durch Modifizieren der Einstellungen in dem Puffergrößeninformationsregister 616.
  • Bei Schritt 1010 kann der Host 102 bestimmen, ob mehr Daten in den nichtflüchtigen Speicher 108 geschrieben werden sollen. Wenn mehr Daten geschrieben werden sollen, kann der Host 102 bei Schritt 1006 mit dem Prüfen auf Raum in dem Speicher 146 und bei Schritt 1008 mit dem Schreiben in den Puffer 146 fortfahren, wenn Raum in dem Puffer 146 verfügbar ist. Andernfalls kann der Host 102 mit dem Verarbeiten von Daten bei Schritt 1012 fortfahren.
  • Während der Host 102 Daten in den Puffer 146 platziert, kann die Nichtflüchtiger-Speicher-Steuerung 106 den Puffer 146 überwachen und Daten von dem Puffer 146 lesen, wenn dort Daten durch den Host 102 platziert sind. Somit kann bei Schritt 1018 die Nichtflüchtiger-Speicher-Steuerung 106 den Puffer 146 auf Daten prüfen. Die Überprüfung kann z. B. durch Lesen des Puffergrößeninformationsregisters 616, das durch den flüchtigen Speicher 104 aktualisiert wird, durchgeführt werden. Optional kann eine Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 ausgegeben werden, wenn Daten in dem Puffer 146 platziert sind, wenn eine spezifische Datenmenge in dem Puffer 146 platziert ist, oder wenn der Puffer 146 voll ist. Wenn die Nichtflüchtiger-Speicher-Steuerung 106 bei Schritt 1020 bestimmt, dass der Puffer 146 Daten enthält, kann die Steuerung 106 die Daten aus dem Puffer 146 abrufen und die Daten in die Zieladresse in dem nichtflüchtigen Speicher 108 schreiben. Optional kann, wenn sich keine Daten in dem Puffer 146 befinden, die Steuerung 106 bei Schritt 1018 mit dem Prüfen auf Daten fortfahren.
  • Wenn die Steuerung 106 Daten aus dem Puffer liest, können die Puffergrößeninformationen 616 durch den flüchtigen Speicher 104 aktualisiert werden. Bei Schritt 1024 kann die Steuerung 106 bestimmen, ob die Datenübertragung vollständig ist. Wenn die Datenübertragung nicht vollständig ist, kann die Steuerung 106 bei Schritt 1018 mit dem Prüfen des Puffers 146 auf Daten fortfahren. Optional kann die Steuerung 106, wenn die Datenübertragung vollständig ist, bei Schritt 1026 mit dem Verarbeiten der Daten fortfahren. Bei einem Ausführungsbeispiel kann die Steuerung 106 durch Bestimmen, ob eine spezifizierte Datenmenge übertragen worden ist, bestimmen, dass eine Datenübertragung vollständig ist. Der spezifizierte Betrag von Daten kann z. B. durch den durch den Hast 102 ausgegebenen DMA-Übertragungsbefehl spezifiziert werden. Optional kann die Steuerung 106 bestimmen, dass die Übertragung vollständig ist, wenn von dem Hast 102 über das Überlagerungsfenster 304 ein Befehl an die Steuerung 106 ausgegeben wird, der anzeigt, dass die Übertragung vollständig ist. Optional kann die Steuerung 106 den Puffer 146 oder einen Abschnitt des Puffers 146 kontinuierlich prüfen, um zu bestimmen, ob der Hast 102 dort Daten platziert hat, die zu dem nichtflüchtigen Speicher 108 übertragen werden sollen.
  • 10B ist ein Blockdiagramm, das einen Prozess 1050 zum Durchführen einer automatischen DMA-Übertragung von dem nichtflüchtigen Speicher 108 zu dem Hast 102 darstellt, gemäß einem Ausführungsbeispiel der Erfindung. Der Prozess 1050 kann bei Schritt 1052 beginnen, in dem der Hast 102 anstehende Befehle in dem flüchtigen Speicher 104 prüft. Nachdem bestimmt wurde, dass keine Befehle anstehen, kann der Hast 102 einen DMA-Übertragungsbefehl ausgeben, der bei Schritt 1054 eine Quellenadresse in dem nichtflüchtigen Speicher 108 und eine Zieladresse in dem Überlagerungsfensterpuffer 146 anzeigt. Die Nichtflüchtiger-Speicher-Steuerung 106 kann auf ein Erfassen des Befehls über ein abgefragtes Statusregister oder eine Unterbrechung von dem flüchtigen Speicher 104 hin, wie es im Vorhergehenden beschrieben ist, bei Schritt 1068 den DMA-Übertragungsbefehl empfangen.
  • Nachdem der Befehl empfangen wurde, können durch den Hast 102 und die Nichtflüchtiger-Speicher-Steuerung 106 durchgeführte Schritte unabhängig voneinander fortfahren (z. B., ohne dass weitere Befehle zwischen der Nichtflüchtiger-Speicher-Steuerung 106 und Hast 102 ausgegeben wer den). Bei Schritt 1070 kann die Steuerung 106 den Überlagerungsfensterpuffer 146 auf Überlauf prüfen, z. B. durch Prüfen des Puffergrößeninformationsregisters 616 über das Überlagerungsfenster 304. Optional kann bei einem Ausführungsbeispiel der Erfindung eine Unterbrechung an die Steuerung 106 ausgegeben werden, um anzuzeigen, wann der Puffer 146 leer ist oder wann ein vorbestimmten Betrag von Raum in dem Puffer 146 verfügbar ist. Liegt kein Pufferüberlauf vor, kann die Steuerung 106 Schritt 1072 Daten aus dem nichtflüchtigen Speicher 108 bei in den Puffer 146 schreiben. Wenn die Steuerung 106 oder der Host 102 Daten von dem Puffer liest oder Daten in denselben überträgt, kann der flüchtige Speicher 104 bei Schritt 1066 den Pufferstatus aktualisieren, z. B. durch Modifizieren der Einstellungen in dem Puffergrößeninformationsregister 616, wie es im Vorhergehenden beschrieben ist.
  • Bei Schritt 1074 kann die Steuerung 106 bestimmen, ob noch mehr Daten von dem nichtflüchtigen Speicher 108 in den Puffer 146 geschrieben werden sollen. Wenn mehr Daten geschrieben werden sollen, kann die Steuerung 106 bei Schritt 1070 mit dem Prüfen auf Raum in dem Puffer 146 und bei Schritt 1072 mit dem Schreiben in den Puffer 146 fortfahren, wenn Raum in dem Puffer 146 verfügbar ist. Andernfalls kann die Steuerung 106 bei Schritt 1012 mit dem Verarbeiten von Daten fortfahren. Bei einem Ausführungsbeispiel kann die Steuerung 106 durch Bestimmen, ob eine durch den DMA-Übertragungsbefehl bestimmte Datenmenge übertragen worden ist, bestimmen, ob weitere Daten übertragen werden sollen. Optional kann die Steuerung 106 mit dem Schreiben von Daten fortfahren, bis der Host 102 einen Befehl an die Steuerung 106 ausgibt, der anzeigt, dass die Übertragung vollständig ist.
  • Während die Steuerung 106 Daten in dem Puffer 146 platziert, kann der nichtflüchtige Host 102 den Puffer 146 überwachen und Daten von dem Puffer 146 lesen, wenn dort Daten durch die Steuerung 106 platziert sind. Somit kann bei Schritt 1056 die Nichtflüchtiger-Speicher-Steuerung 106 den Puffer 146 auf Daten prüfen. Die Überprüfung kann z. B. durch Lesen des Puffergrößeninformationsregisters 616, das durch den flüchtigen Speicher 104 aktualisiert wird, durchgeführt werden. Optional kann eine Unterbrechung an den Host 102 ausgegeben werden, wenn Daten in dem Puffer 146 platziert sind, wenn eine spezifische Datenmenge in dem Puffer 146 platziert ist oder wenn der Puffer 146 voll ist. Wenn der Host 102 bei Schritt 1058 bestimmt, dass der Puffer 146 Daten enthält, kann der Host 102 die Daten aus dem Puffer 146 abrufen. Optional kann der Host 102, wenn sich keine Daten in dem Puffer 146 befinden, in Schritt 1056 mit dem Prüfen auf Daten fortfahren.
  • Wenn der Host 102 Daten aus dem Puffer liest, können die Puffergrößeninformationen 616 durch den flüchtigen Speicher 104 aktualisiert werden. Bei Schritt 1062 kann der Host 102 bestimmen, ob die Datenübertragung vollständig ist. Wenn die Datenübertragung nicht vollständig ist, kann der Host 102 bei Schritt 1056 mit dem Prüfen des Puffers 146 auf Daten fortfahren. Optional kann anschließend der Host 102, wenn die Datenübertragung vollständig ist, bei Schritt 1064 mit dem Verarbeiten der Daten fortfahren. Bei einem Ausführungsbeispiel kann der Host 102 durch Bestimmen, ob eine spezifizierte Datenmenge übertragen worden ist, bestimmen, dass eine Datenübertragung vollständig ist, wie es im Vorhergehenden beschrieben wurde. Optional kann der Host 102, jedes Mal wenn der Host 102 zusätzliche Daten benötigt, kontinuierlich Daten von dem Puffer 146 oder einem Abschnitt des Puffers 146 lesen. Auch kann, wie es vorhergehend beschrieben ist, der Host 102 durch Ausgeben eines Befehls an die Speichersteuerung 106 über das Überlagerungsfenster 304 die Übertragung beenden.
  • Bei einem Ausführungsbeispiel der Erfindung kann der Puffer 146 in mehrere Sektionen partitioniert sein. Jede Sektion kann verwendet werden, um unterschiedliche DMA-Übertragungen, wie sie durch durch den Host 102 ausge gebene Befehle spezifiziert sind, durchzuführen. Somit kann in manchen Fällen ein Abschnitt des Puffers 146 durch den Host 102 verwendet werden, um automatisch Daten aus einer Quellenadresse und aufeinanderfolgenden Adressen in dem nichtflüchtigen Speicher 108 abzurufen, während ein anderer Abschnitt des Puffers 146 durch den Host 102 verwendet werden kann, um automatisch Daten in eine Zieladresse und aufeinanderfolgende Adressen in dem nichtflüchtigen Speicher 108 zu schreiben.
  • Zugreifen auf gespiegelte Steuerregister über das Überlagerungsfenster
  • Bei einem Ausführungsbeispiel der Erfindung kann der Host 102 das Überlagerungsfenster 304 verwenden, um auf Fernsteuerregister in der Nichtflüchtiger-Speicher-Steuerung 106 zuzugreifen. Die Fernsteuerregister, auf die über das Überlagerungsfenster zugegriffen werden kann, können die USB/ATA-Steuerregister 158 sowie andere Steuerregister (z. B. die iDMA-Steuerregister 152) umfassen. Ein derartiger Zugriff kann ein Bestimmen des Status der Steuerregister 158 und ein Verändern der Einstellungen der Steuerregister 158 umfassen.
  • Bei einem Ausführungsbeispiel kann ein Speicherraum 1102 in dem Überlagerungsfenster 304 bereitgestellt werden, um auf die gespiegelten Steuerregister 1104 in dem flüchtigen Speicher 104 zuzugreifen, wie es in 11 dargestellt ist. Bei einem Ausführungsbeispiel kann der gespiegelte Steuerregisterspeicherraum 1102 in dem Speicherraum 310, der automatisch zugeordnet wird, wenn das Überlagerungsfenster 304 freigegeben wird (z. B., wenn das Überlagerungsfensterbit OWE gesetzt ist), angeordnet sein. Optional kann der Speicherregisterraum 1102 zugeordnet werden, wenn die Überlagerungsfenstergröße 308 eingestellt wird. In manchen Fällen kann der Steuerregisterraum 1102 direkt nach dem Speicherraum für die Steuerregister 600, was hinsichtlich 6 beschrieben ist, zugeordnet werden. Optional kann der Steuerregisterraum 1102 nach dem Pufferraum 330 zugeordnet werden. Ferner kann bei einem Ausführungsbeispiel der Ort des gespiegelten Steuerregisterraums 1102 konfigurierbar sein, z. B. durch Bereitstellen eines speicherabgebildeten Steuerregisters in dem Überlagerungsfenster 304, das verwendet werden kann, um eine Basisadresse und/oder Größe für den gespiegelten Steuerregisteradressraum 1102 zu spezifizieren.
  • 12 ist ein Flussdiagramm, das einen Prozess 1200 zum Zugreifen auf die Fernsteuerregister 158 über die gespiegelten Steuerregister 1104 darstellt, gemäß einem Ausführungsbeispiel der Erfindung. Der Prozess 1200 kann bei Schritt 1202 beginnen, in dem der Host 102 den flüchtigen Speicher 104 auf anstehende Befehle prüft. Wenn der Host 102 bestimmt, dass keine Befehle anstehen, kann der Host 102 über die Flüchtiger-Speicher-Schnittstelle 112 des flüchtigen Speichers 104 Daten in den gespiegelten Steuerregisteradressraum 1102 schreiben. Die in den gespiegelten Steuerregisterraum 1102 geschriebenen Daten können in die gespiegelten Steuerregister 1104 platziert werden. Der Host 102 kann anschließend bei Schritt 1206 ein Steuerregisterbit in dem flüchtigen Speicher 104 setzen, das anzeigt, dass die gespiegelten Steuerregister 1104 modifiziert worden sind. Optional kann der flüchtige Speicher 104 automatisch bestimmen, dass die gespiegelten Steuerregister 1104 aktualisiert worden sind.
  • Bei Schritt 1212 kann der flüchtige Speicher 104 die Anzeige erhalten, dass die gespiegelten Steuerregister 1104 modifiziert worden sind. Der flüchtige Speicher 104 kann bei Schritt 1214 anschließend der Nichtflüchtiger-Speicher-Steuerung 106 anzeigen, dass die gespiegelten Steuerregister 1104 modifiziert worden sind. Die Anzeige kann anschließend der Nichtflüchtiger-Speicher-Steuerung 106 entweder durch Ausgeben einer Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 oder durch Setzen eines Statusbits, das durch die Nichtflüchtiger-Speicher-Steuerung 106 abgefragt werden kann, zur Verfügung werden. Auf ein Empfangen der Anzeige hin, dass die gespiegelten Register 1104 modifiziert worden sind, kann die Nichtflüchtiger-Speicher-Steuerung 106 bei Schritt 1218 die Daten von den gespiegelten Registern 1104 in den flüchtigen Speicher 104 laden und bei Schritt 1220 die geladenen Daten in die Steuerregister 158 platzieren.
  • Bei Schritt 1222 kann die Nichtflüchtiger-Speicher-Steuerung 106 einen Befehl an den flüchtigen Speicher 104 ausgeben, um ein Steuerregisterbit zu setzen, das anzeigt, dass die Fernsteuerregister 158 erfolgreich aktualisiert worden sind. In manchen Fällen kann die Nichtflüchtiger-Speicher-Steuerung 106 auch eine Kopie von aktualisierten Informationen aus den Fernsteuerregistern 158 bereitstellen, die in die gespiegelten Steuerregister 1104 in dem flüchtigen Speicher 104 zu platzieren sind. Bei Schritt 1216 kann der flüchtige Speicher 104 das Steuerregisterbit, das anzeigt, dass die Fernsteuerregister 158 aktualisiert worden sind, aktualisieren. Der Host 102 kann die Anzeige, dass die Steuerregister 158 aktualisiert worden sind, bei Schritt 1208 empfangen. Der Prozess 1200 kann dann bei Schritt 1210 fortfahren.
  • Auch wenn es im Vorhergehenden mit Bezug auf ein Spiegeln, das als Folge von durch den Host 102 ausgegebenen Befehlen durchgeführt wird, beschrieben ist, kann Spiegeln in manchen Fällen auch automatisch durch den flüchtigen Speicher 104 (z. B. durch Setzen eines Statusregisterbits, das durch die Nichtflüchtiger-Speicher-Steuerung 106 oder durch Ausgeben einer Unterbrechung an die Nichtflüchtiger-Speicher-Steuerung 106 geprüft wurde) durchgeführt werden, z. B. jedes Mal, wenn die gespiegelten Steuerregister 1104 aktualisiert werden. Wenn das Statusregisterbit oder die Unterbrechung durch die Speichersteuerung 106 erfasst wird, kann die Speichersteuerung 106 automatisch die gespiegelten Steuerregister 1104 in die Fernsteuerregister 158 laden. Optional kann das Spiegeln durch den flüchtigen Speicher 104 in einem spezifizierten Intervall durchgeführt werden.
  • Ferner kann in manchen Fällen ein Spiegeln von aktualisierten Daten aus den Fernsteuerregistern 158 durch die Nichtflüchtiger-Speicher-Steuerung 106 eingeleitet werden, z. B. durch Ausgeben von Befehlen an oder Schreiben von Daten in den flüchten Speicher 104, der aktualisierte Daten von den Fernsteuerregistern 158, die in die gespiegelten Steuerregister 1104 zu platzieren sind, enthält. Bei einem Ausführungsbeispiel kann die Nichtflüchtiger-Speicher-Steuerung 106 das Spiegeln periodisch einleiten, z. B. in einem spezifizierten Intervall. Das spezifizierte Intervall kann bei einem Ausführungsbeispiel durch den Host 102 über die gespiegelten Steuerregister 1104 spezifiziert werden. Optional kann die Nichtflüchtiger-Speicher-Steuerung 106 die gespiegelten Steuerregister 1104 jedes Mal, wenn die Fernsteuerregister 158 modifiziert werden, aktualisieren.
  • Bei einem Ausführungsbeispiel kann, wenn die gespiegelten Steuerregister 1104 durch die Nichtflüchtiger-Speicher-Steuerung 106 aktualisiert werden, der flüchtige Speicher 104 eine Anzeige der Aktualisierung für den Host 102 bereitstellen. Die Anzeige kann z. B. durch Ausgeben einer Unterbrechung von dem flüchtigen Speicher 104 an den Host 102 oder durch Setzen eines Statusregisterbits in dem flüchtigen Speicher 104, auf das durch den Host 102 über die Modusregister 170 oder über einen der Sätze von speicherabgebildeten Steuerregistern 138, 140, 142 zugegriffen werden kann (z. B. abgefragt werden kann) bereitgestellt werden.
  • Schlussfolgerung
  • Während sie im Vorhergehenden hinsichtlich eines Prozessors, der durch eine Flüchtiger-Speicher- Schnittstelle auf einen flüchtigen Speicher und einen nichtflüchtigen Speicher zugreift, beschrieben wurden, können Ausführungsbeispiele der Erfindung auch in eingebetteten System verwendet werden, in denen der Hostprozessor über zusätzliche Schnittstellen auf zusätzliche Speicherkomponenten (z. B. flüchtige Speicher und nichtflüchtige Speicher) zugreift. Ähnlich können Ausführungsbeispiele der Erfindung, auch wenn sie im Vorhergehenden hinsichtlich eines flüchtigen Speichers, eines nichtflüchtigen Speichers und einer Nichtflüchtiger-Speicher-Steuerung beschrieben wurden, die auf gesonderten Chips erzeugt sind, auch verwendet werden, wenn getrennte Komponenten (z. B. der flüchtige Speicher und die Nichtflüchtiger-Speicher-Steuerung oder der nichtflüchtige Speicher und die Nichtflüchtiger-Speicher-Steuerung) auf demselben Chip erzeugt sind.
  • Auch wenn sich das Vorhergehende auf Ausführungsbeispiele der vorliegenden Erfindung richtet, können andere und weitere Ausführungsbeispiele der Erfindung entwickelt werden, ohne von dem grundlegenden Schutzbereich derselben abzuweichen, und der Schutzbereich derselben wird durch die folgenden Patentansprüche bestimmt.

Claims (28)

  1. Ein Verfahren zum Ausgeben von Befehlen von einer ersten Vorrichtung an eine zweite Vorrichtung mit: Empfangen, durch die erste Vorrichtung eines ersten Befehls, der einen zweiten Befehl in einen Speicherort in der ersten Vorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Liefern des zweiten Befehls an die zweite Vorrichtung, wobei die zweite Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl lädt.
  2. Das Verfahren gemäß Anspruch 1, bei dem das Laden der Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl Folgendes aufweist: Bestimmen einer Basisadresse in der ersten Vorrichtung; und Laden der Anzahl von Operanden beginnend bei einer Versatzadresse, die durch den ersten zu der Basisadresse hinzugefügten Wert angezeigt ist.
  3. Das Verfahren gemäß Anspruch 2, bei dem die Basisadresse der Speicherort in der ersten Vorrichtung ist, in den der zweite Befehl geschrieben wird.
  4. Das Verfahren gemäß Anspruch 1, bei der Speicherort, in den der zweite Befehl geschrieben wird, einem speicherabgebildeten Register entspricht.
  5. Das Verfahren gemäß Anspruch 1, bei der Speicherort eine Adresse an einem vorbestimmten Versatz von einer Basisadresse eines Überlagerungsfensters ist, wobei das Überlagerungsfenster einen Bereich von Speicheradressen aufweist, wobei die Basisadresse des Überlagerungsfensters über ein oder mehrere Basisadressensteuerregister eingestellt wird.
  6. Ein Verfahren zum Ausgeben von Befehlen an eine entfernte Vorrichtung über eine Flüchtiger-Speicher-Vorrichtung, mit: Ausgeben eines Schreibbefehls an die Flüchtiger-Speicher-Vorrichtung, wobei der Schreibbefehl einen zweiten Befehl in ein speicherabgebildetes Register in der Flüchtiger-Speicher-Vorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der eine Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Schreiben der Operanden des zweiten Befehls in die Flüchtiger-Speicher-Vorrichtung, wobei die Operanden in Operandadressen in der Flüchtiger-Speicher-Vorrichtung geschrieben werden, die dem Operandversatz und der Anzahl der Operanden entsprechen, wobei die entfernte Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl der Operanden lädt.
  7. Das Verfahren gemäß Anspruch 6, ferner mit: Ausgeben eines Benachrichtigungsbefehls an die Flüchtiger-Speicher-Vorrichtung, wobei die Flüchtiger-Speicher-Vorrichtung, ansprechend auf ein Empfangen des Benachrichtigungsbefehls, die entfernte Vorrichtung benachrichtigt, dass der zweite Befehl empfangen worden ist.
  8. Das Verfahren gemäß Anspruch 7, bei dem die Flüchtiger-Speicher-Vorrichtung die entfernte Vorrichtung durch Setzen eines Statusregisterbits, das anzeigt, dass der zweite Befehl empfangen worden ist, benachrichtigt.
  9. Das Verfahren gemäß Anspruch 7, bei dem die Flüchtiger-Speicher-Vorrichtung die entfernte Vorrichtung durch Ausgeben einer Unterbrechung an die entfernte Vorrichtung, die anzeigt, dass der zweite Befehl empfangen worden ist, benachrichtigt.
  10. Das Verfahren gemäß Anspruch 6, bei dem das speicherabgebildete Register und die Operandadressen innerhalb des Überlagerungsfensters in der Flüchtiger-Speicher-Vorrichtung angeordnet sind, wobei das Überlagerungsfenster einen Bereich von Speicheradressen aufweist, wobei eine Größe und eine Basisadresse des Überlagerungsfensters über Steuerregister in der Flüchtiger-Speicher-Vorrichtung konfiguriert werden.
  11. Das Verfahren gemäß Anspruch 6, bei dem die Operandadressen an einer Operandbasisadresse, die durch den zu einer vordefinierten Basisadresse hinzugefügten Versatzwert angezeigt ist, beginnen.
  12. Das Verfahren gemäß Anspruch 11, bei dem die vordefinierte Basisadresse eine Adresse des speicherabgebildeten Registers ist.
  13. Eine Speichervorrichtung mit: einer ersten Schnittstelle; einer zweiten Schnittstelle; einem Flüchtiger-Speicher-Array; einer Steuerschaltungsanordnung, die konfiguriert ist zum: Empfangen eines ersten Befehls über die erste Schnittstelle, wobei der erste Befehl einen zweiten Befehl in einen Speicherort in der Speichervorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Liefern des zweiten Befehls an eine entfernte Vorrichtung über die zweite Schnittstelle, wobei eine entfernte Vorrichtung die Operanden des zweiten Befehls über die zweite Schnittstelle unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl lädt.
  14. Die Speichervorrichtung gemäß Anspruch 13, bei der die Anzahl von Operanden von einer ersten Operandadresse, die gleich einer Versatzadresse ist, die durch den ersten einer Basisadresse hinzugefügten Wert gekennzeichnet ist, geladen wird.
  15. Die Speichervorrichtung gemäß Anspruch 14, bei der die Basisadresse der Speicherort in der ersten Speichervorrichtung ist, in den der zweite Befehl geschrieben wird.
  16. Die Speichervorrichtung gemäß Anspruch 13, bei der Speicherort, in den der zweite Befehl geschrieben wird, einem speicherabgebildeten Register entspricht.
  17. Die Speichervorrichtung gemäß Anspruch 13, bei der Speicherort eine Adresse an einem vorbestimmten Versatz von einer Basisadresse eines Überlagerungsfensters ist, wobei das Überlagerungsfenster einen Bereich von Speicheradressen aufweist, wobei die Basisadresse des Überlagerungsfensters über ein oder mehrere Basisadressensteuerregister eingestellt wird.
  18. Ein Prozessor mit: einer Schnittelle zum Kommunizieren mit einer Flüchtiger-Speicher-Vorrichtung; einer Steuerschaltungsanordnung, die konfiguriert ist zum: Ausgeben eines Schreibbefehls an die Flüchtiger-Speicher-Vorrichtung, wobei der Schreibbefehl einen zweiten Befehl in ein speicherabgebildetes Register in der Flüchtiger-Speicher-Vorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der eine Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Schreiben der Operanden des zweiten Befehls in die Flüchtiger-Speicher-Vorrichtung, wobei die Operanden in Operandadressen in der Flüchtiger-Speicher-Vorrichtung geschrieben werden, die dem Operandversatz und der Anzahl der Operanden entsprechen, wobei eine entfernte Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl der Operanden lädt.
  19. Der Prozessor gemäß Anspruch 18, bei dem die Steuerschaltungsanordnung ferner konfiguriert ist zum Ausgeben eines Benachrichtigungsbefehls an die Flüchtiger-Speicher-Vorrichtung, wobei die Flüchtiger-Speicher-Vorrichtung, ansprechend auf ein Empfangen des Benachrichtigungsbefehls, die entfernte Vorrichtung benachrichtigt, dass der zweite Befehl empfangen worden ist.
  20. Der Prozessor gemäß Anspruch 18, bei dem das speicherabgebildete Register und die Operandadressen innerhalb des Überlagerungsfensters in der Flüchtiger-Speicher-Vorrichtung angeordnet sind, wobei das Überlagerungsfenster einen Bereich von Speicheradressen aufweist, wobei eine Größe und eine Basisadresse des Überlagerungsfensters durch den Prozessor über Steuerregister in der Flüchtiger-Speicher-Vorrichtung konfiguriert werden.
  21. Der Prozessor gemäß Anspruch 18, bei dem die Operandadressen an einer Operandbasisadresse, die durch den zu einer vordefinierten Basisadresse hinzugefügten Versatzwert angezeigt ist, beginnen.
  22. Der Prozessor gemäß Anspruch 21, bei dem die vordefinierte Basisadresse eine Adresse des speicherabgebildeten Registers ist.
  23. Eine Speichervorrichtung mit: einer ersten Einrichtung zum schnittstellenmäßigen Verbinden; einer zweiten Einrichtung zum schnittstellenmäßigen Verbinden; einer Einrichtung zum Speichern; einer Steuerschaltungsanordnung, die konfiguriert ist zum: Empfangen eines ersten Befehls über die erste Einrichtung zum schnittstellenmäßigen Verbinden, wobei der erste Befehl einen zweiten Befehl in einen Speicherort in der Speichervorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der einen Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Liefern des zweiten Befehls an eine entfernte Vorrichtung über die zweite Einrichtung zum schnittstellenmäßigen Verbinden, wobei eine entfernte Vorrichtung die Operanden des zweiten Befehls über die zweite Schnittstelle unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl lädt.
  24. Die Speichervorrichtung gemäß Anspruch 23, bei der die Anzahl von Operanden von einer ersten Operandadresse, die gleich einer Versatzadresse ist, die durch den ersten einer Basisadresse hinzugefügten Wert gekennzeichnet ist, geladen wird.
  25. Die Speichervorrichtung gemäß Anspruch 24, bei der die Basisadresse der Speicherort in der ersten Vorrichtung ist, in den der zweite Befehl geschrieben wird.
  26. Die Speichervorrichtung gemäß Anspruch 23, bei der Speicherort, in den der zweite Befehl geschrieben wird, einem speicherabgebildeten Register entspricht.
  27. Die Speichervorrichtung gemäß Anspruch 23, bei der Speicherort eine Adresse an einem vorbestimmten Versatz von einer Basisadresse eines Überlagerungsfensters ist, wobei das Überlagerungsfenster einen Bereich von Speicheradressen aufweist, wobei die Basisadresse des Überlagerungsfensters über ein oder mehrere Basisadressensteuerregister eingestellt wird.
  28. Ein System mit: einer Flüchtiger-Speicher-Vorrichtung mit: einer Flüchtiger-Speicher-Schnittstelle; einer Nichtflüchtiger-Speicher-Schnittstelle; einem Steuerregister; und einem Flüchtiger-Speicher-Array; einer Nichtflüchtiger-Speicher-Steuerung, die konfiguriert ist, um über die Nichtflüchtiger-Speicher-Schnittstelle auf den flüchtigen Speicher zuzugreifen; und einem Prozessor, der konfiguriert ist zum: Ausgeben eines Schreibbefehls an die Flüchtiger-Speicher-Vorrichtung über die Flüchtiger-Speicher-Schnittstelle, wobei der Schreibbefehl einen zweiten Befehl in das Steuerregister in der Flüchtiger-Speicher-Vorrichtung schreibt, wobei der zweite Befehl einen Befehlscode, einen ersten Wert, der eine Operandversatz für Operanden des zweiten Befehls kennzeichnet, und einen zweiten Wert, der eine Anzahl der Operanden des zweiten Befehls kennzeichnet, umfasst; und Schreiben der Operanden des zweiten Befehls über die Flüchtiger-Speicher-Schnittstelle in die Flüchtiger-Speicher-Vorrichtung, wobei die Operanden in Operandadressen in der Flüchtiger-Speicher-Vorrichtung geschrieben werden, die dem Operandversatz und der Anzahl der Operanden entsprechen, wobei eine entfernte Vorrichtung die Operanden des zweiten Befehls unter Verwendung des durch den zweiten Befehl bereitgestellten Versatzes und der durch den zweiten Befehl bereitgestellten Anzahl der Operanden lädt.
DE102007031265A 2006-07-06 2007-07-05 System und Verfahren zum Ausgeben von Befehlen Withdrawn DE102007031265A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/456,064 2006-07-06
US11/456,064 US20080010419A1 (en) 2006-07-06 2006-07-06 System and Method for Issuing Commands

Publications (1)

Publication Number Publication Date
DE102007031265A1 true DE102007031265A1 (de) 2008-02-14

Family

ID=38920326

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007031265A Withdrawn DE102007031265A1 (de) 2006-07-06 2007-07-05 System und Verfahren zum Ausgeben von Befehlen

Country Status (3)

Country Link
US (1) US20080010419A1 (de)
CN (1) CN101101531A (de)
DE (1) DE102007031265A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US7451263B2 (en) * 2006-02-08 2008-11-11 Infineon Technologies Ag Shared interface for components in an embedded system
US20080007569A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Control protocol and signaling in a new memory architecture
US20080010420A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Method for Accessing Control Registers via a Memory Device
US7441070B2 (en) * 2006-07-06 2008-10-21 Qimonda North America Corp. Method for accessing a non-volatile memory via a volatile memory interface
US20080147940A1 (en) * 2006-12-18 2008-06-19 Rom-Shen Kao Method and apparatus for controlling a shared bus
US9626127B2 (en) * 2010-07-21 2017-04-18 Nxp Usa, Inc. Integrated circuit device, data storage array system and method therefor
EP3432150B1 (de) * 2010-12-13 2021-01-20 Nokia Technologies Oy Verfahren und vorrichtung für 3d aufnahmesynchronisierung
JP5727633B2 (ja) * 2012-02-13 2015-06-03 日本電信電話株式会社 フレーム検索処理装置および方法
US9690703B1 (en) * 2012-06-27 2017-06-27 Netapp, Inc. Systems and methods providing storage system write elasticity buffers
KR102004849B1 (ko) * 2012-08-02 2019-07-29 삼성전자 주식회사 동적 메모리 재할당 관리 방법과 상기 방법을 수행할 수 있는 장치
KR20160131359A (ko) * 2015-05-07 2016-11-16 에스케이하이닉스 주식회사 메모리 모듈, 메모리 모듈의 모듈 콘트롤러 및 메모리 모듈의 동작 방법
US9678681B2 (en) * 2015-06-17 2017-06-13 International Business Machines Corporation Secured multi-tenancy data in cloud-based storage environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US6134631A (en) * 1996-08-19 2000-10-17 Hyundai Electronics America, Inc. Non-volatile memory with embedded programmable controller
TWI240864B (en) * 2001-06-13 2005-10-01 Hitachi Ltd Memory device
US20030014687A1 (en) * 2001-07-10 2003-01-16 Grandex International Corporation Nonvolatile memory unit comprising a control circuit and a plurality of partially defective flash memory devices
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
US7139909B2 (en) * 2003-10-16 2006-11-21 International Business Machines Corporation Technique for system initial program load or boot-up of electronic devices and systems
DE102004004796B4 (de) * 2004-01-30 2007-11-29 Infineon Technologies Ag Vorrichtung zur Datenübertragung zwischen Speichern
US20060294295A1 (en) * 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US7404136B2 (en) * 2005-07-15 2008-07-22 Infineon Technologies Ag Semiconductor memory device including a signal control device and method of operating the same
US7415581B2 (en) * 2005-10-04 2008-08-19 Infineon Technologies Ag Semiconductor memory chip
US7221615B2 (en) * 2005-10-04 2007-05-22 Infineon Technologies Ag Semiconductor memory chip
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US7451263B2 (en) * 2006-02-08 2008-11-11 Infineon Technologies Ag Shared interface for components in an embedded system
US20080010420A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Method for Accessing Control Registers via a Memory Device
US7441070B2 (en) * 2006-07-06 2008-10-21 Qimonda North America Corp. Method for accessing a non-volatile memory via a volatile memory interface
US20080007569A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Control protocol and signaling in a new memory architecture

Also Published As

Publication number Publication date
CN101101531A (zh) 2008-01-09
US20080010419A1 (en) 2008-01-10

Similar Documents

Publication Publication Date Title
DE102007031269A1 (de) Verfahren zum Zugreifen auf Steuerregister über eine Speichervorrichtung
DE102007031270A1 (de) Verfahren zum Zugreifen auf einen nichtflüchtigen Speicher über eine Flüchtiger-Speicher-Schnittstelle
DE102007031265A1 (de) System und Verfahren zum Ausgeben von Befehlen
US9836391B2 (en) System and method of page buffer operation for memory devices
DE112011106021B4 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE102007031271A1 (de) Steuerprotokoll und Signalisierung in einer neuen Speicherarchitektur
DE19615956C2 (de) Ein nicht-flüchtiger, an einen DRAM-Bus anschließbarer Halbleiterspeicher und Verfahren zu dessen Betrieb
DE102007003179A1 (de) Verfahren zum Systembooten mit Direktspeicherzugriff bei einer neuen Speicherarchitektur
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
CN107481746A (zh) 用于操作ddr可兼容异步存储器模块的系统和方法
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102008015034A1 (de) Speicherkarte, Speicherkartensystem, Verfahren zum Steuern eines Hosts und Verfahren zum Betreiben einer Speicherkarte
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
JP2008009942A (ja) メモリシステム
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
DE102007060058A1 (de) Verfahren und Vorrichtung zum Steuern eines gemeinschaftlich verwendeten Busses
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
TWI531901B (zh) 群組表資料沖除技術
DE102019112291A1 (de) Verbessertes speicherungsmodell für ein computersystem mit persistentem systemspeicher
DE102021114458A1 (de) Befehlsentleerung unter verwendung des host-speicherpuffers
DE112020005044T5 (de) Zonenanhang-befehlsplanung basierend auf zonenzustand
DE10048402A1 (de) Datenspeichersystem
DE112022000468T5 (de) Unterschiedliche schreibpriorisierung in zns-vorrichtungen
DE102021115893A1 (de) EFFIZIENTE DATENSPEICHERUNGSNUTZUNG IM ZUSAMMENHANG MIT EINEM NICHT ORDNUNGSGEMÄßEN HERUNTERFAHREN

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee