DE102013112894A1 - Speichervorrichtung, Computersystem mit derselben und dazugehöriges Verfahren zur Datenübertragung - Google Patents

Speichervorrichtung, Computersystem mit derselben und dazugehöriges Verfahren zur Datenübertragung Download PDF

Info

Publication number
DE102013112894A1
DE102013112894A1 DE102013112894.7A DE102013112894A DE102013112894A1 DE 102013112894 A1 DE102013112894 A1 DE 102013112894A1 DE 102013112894 A DE102013112894 A DE 102013112894A DE 102013112894 A1 DE102013112894 A1 DE 102013112894A1
Authority
DE
Germany
Prior art keywords
interface
fis
data transmission
host
memory
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.)
Pending
Application number
DE102013112894.7A
Other languages
English (en)
Inventor
Hojun Shim
Eunchan KIM
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013112894A1 publication Critical patent/DE102013112894A1/de
Pending legal-status Critical Current

Links

Images

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/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

Ein Datenübertragungsverfahren einer Speichervorrichtung (1300), die einen Host-Bus-Adapter (1320) zum Kommunizieren mit einem externen Host über eine erste Schnittstelle und zum internen Kommunizieren über eine zweite Schnittstelle enthält, wird bereitgestellt. Das Datenübertragungsverfahren kann Ausgeben eine Schreibbefehls und eines Lesebefehls an den Host-Bus-Adapter (1320); Durchführen einer Direktspeicherzugriffsoperation unter Verwendung der ersten Schnittstelle als Antwort auf den Schreibbefehl und gleichzeitiges Durchführen einer Schreib-Direktspeicherzugriffs-Operation unter Verwendung der zweiten Schnittstelle als Antwort auf den Lesebefehl; und Erzeugen von Frame-Information-Structure-(FIS)-Sequenzen gemäß der zweiten Schnittstelle als Antwort auf den ausgegebenen Schreibbefehl und den ausgegebenen Lesebefehl enthalten. Die erste Schnittstelle kann eine erste Vollduplex-Datenübertragung durchführen und die zweite Schnittstelle kann eine Halbduplex-Datenübertragung durchführen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Es wurde die Priorität unter 35 U.S.C. §119 der beim koreanischen Amt für geistiges Eigentum am 26. November 2012 eingereichten koreanischen Patentanmeldung Nr. 10-2012-0134589 beansprucht, deren gesamte Inhalte hiermit durch Bezugnahme aufgenommen werden.
  • HINTERGRUND
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte beziehen sich auf eine Speichervorrichtung, ein Computersystem mit denselben und auf ein dazugehöriges Datenübertragungsverfahren.
  • In den letzten Jahren konnte ein Festkörperlaufwerk (SSD) verwendet werden als eine Speichervorrichtung eines Computersystems. Das SSD kann einen nicht-flüchtigen Speicher (z. B. einen Flash-Speicher) zum Speichern von Daten verwenden. Verglichen mit einem typischen Festplattenlaufwerk kann das SSD vorteilhaft sein hinsichtlich Beständigkeit, Größe, Leistung usw. Die SSDs können gemäß einem Kommunikationsverfahren mit einem Host unterteilt werden in eine Peripheral-Component-Interconnect(PCI)-SSD und eine Serial-Advanced-Technology-Attachment(SADA)-SSD.
  • KURZFASSUNG
  • Einige beispielhafte Ausführungsformen der erfinderischen Konzepte beziehen sich auf ein Datenübertragungsverfahren einer Speichervorrichtung.
  • Gemäß einer beispielhaften Ausführungsform wird ein Datenübertragungsverfahren einer Speichervorrichtung bereitgestellt, die einen Host-Bus-Adapter enthält zum Kommunizieren mit einem externen Host über eine erste Schnittstelle und zum internen Kommunizieren über eine zweite Schnittstelle. Das Datenübertragungsverfahren kann aufweisen: Ausgeben eines Schreibbefehls und eines Lesebefehls an den Host-Bus-Adapter; Durchführen einer Lese-Direktspeicherzugriffs-Operation unter Verwendung der ersten Schnittstelle als Antwort auf den Schreibbefehl und gleichzeitiges Durchführen einer Schreib-Direktspeicherzugriffs-Operation unter Verwendung der zweiten Schnittstelle als Antwort auf den Lesebefehl; und Erzeugen von Frame-Information-Structure-(FIS)-Sequenzen gemäß der zweiten Schnittstelle als Antwort auf den ausgegebenen Schreibbefehl und den ausgegebenen Lesebefehl. Die erste Schnittstelle kann eine Vollduplex-Datenübertragung durchführen und die zweite Schnittstelle kann eine Halbduplex-Datenübertragung durchführen.
  • Gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte wird ein Datenübertragungsverfahren einer Speichervorrichtung bereitgestellt, die eine CPU, einen Hauptspeicher und eine Speichervorrichtung mit einem Host-Bus-Adapter zum Kommunizieren mit der CPU über eine erste Schnittstelle und zum internen Kommunizieren über eine zweite Schnittstelle aufweist. Das Datenübertragungsverfahren kann aufweisen: Übertragen einer Befehlsschlange, die einer Eingabe/Ausgabe-Anforderung von der CPU an den Hauptspeicher entspricht; Übertragen von Information an den Host-Puffer-Adapter, die anzeigt, dass die Eingabe/Ausgabe-Anforderung von der CPU an den Hauptspeicher gemacht wurde; Abholen der Eingabe/Ausgabe-Anforderung durch Senden einer Frame-Information-Structure (FIS), die der Eingabe/Ausgabe-Anforderung entspricht, an den Hauptspeicher als Antwort auf die Information bei der Speichervorrichtung; Durchführen einer Datenübertragung zwischen dem Hauptspeicher und der Speichervorrichtung, die der Eingabe/Ausgabe-Anforderung bei der Speichervorrichtung entspricht, gemäß der ersten Schnittstelle; Erzeugen einer FIS-Sequenz gemäß der zweiten Schnittstelle nach der Datenübertragung; Erzeugen eines Interrupt bei der Speichervorrichtung; und Abschließen der Eingabe/Ausgabe-Anforderung auf der Grundlage des Interrupt bei der CPU.
  • Gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte wird eine Speichervorrichtung bereitgestellt. Die Speichervorrichtung kann aufweisen: eine erste Schnittstellenschaltung, die dazu konfiguriert ist, Daten gemäß einer ersten Schnittstelle zu übertragen und zu empfangen; einen Host-Bus-Adapter, der dazu konfiguriert ist, mit der ersten Schnittstellenschaltung gemäß der ersten Schnittstelle zu kommunizieren; einen Emulator einer zweiten Schnittstelle, der dazu konfiguriert ist, mit dem Host-Bus-Adapter gemäß einer zweiten Schnittstelle zu kommunizieren; eine Direktspeicherzugriffsschaltung, die dazu konfiguriert ist, eine Datenübertragung mit einem externen Host-Speicher durchzuführen; zumindest eine nicht-flüchtige Speichervorrichtung, die dazu konfiguriert ist, Daten zu speichern; und einen Speichercontroller, der dazu konfiguriert ist, zumindest eine nicht-flüchtige Speichervorrichtung gemäß einer Eingabe/Ausgabe-Anforderung zu steuern, die von dem Emulator einer zweiten Schnittstelle abgegeben wurde. Die Direktspeicherzugriffsschaltung kann dazu konfiguriert sein, eine Vollduplex-Datenübertragung von der ersten Schnittstelle bei der Datenübertragung durchzuführen, und eine Frame-Information-Structure-(FIS)-Sequenz gemäß der zweiten Schnittstelle wird nach der Datenübertragung erzeugt.
  • Gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte wird ein Computersystem bereitgestellt. Das Computersystem kann aufweisen: einen Host-Bus; einen mit dem Host-Bus über eine erste Schnittstelle verbundenen Host-Prozessor; einen mit dem Host-Bus über die erste Schnittstelle verbundenen und zum Durchführen einer RAID-Funktion konfigurierten RAID-Controller; und eine Mehrzahl von mit dem RAID-Controller über die erste Schnittstelle verbundenen Speichervorrichtungen. Zumindest eine von der Mehrzahl von Speichervorrichtungen kann aufweisen: eine erste Schnittstellenschaltung, die dazu konfiguriert ist, mit einer externen Vorrichtung zu kommunizieren gemäß der ersten Schnittstelle; einen Host-Bus-Adapter, der dazu konfiguriert ist, mit der ersten Schnittstellenschaltung gemäß der ersten Schnittstelle zu kommunizieren; einen Emulator einer zweiten Schnittstelle, der dazu konfiguriert ist, mit dem Host-Bus-Adapter gemäß einer zweiten Schnittstelle zu kommunizieren; eine Direktspeicherzugriffsschaltung, die dazu konfiguriert ist, eine Datenübertragung mit einem externen Host-Speicher durchzuführen; zumindest eine nicht-flüchtige Speichervorrichtung, die zum Speichern von Daten konfiguriert ist; und einen Speichercontroller, der dazu konfiguriert ist, die zumindest eine nicht-flüchtige Speichervorrichtung gemäß einer von dem Emulator einer zweiten Schnittstelle abgegebenen Eingabe/Ausgabe-Anforderung zu steuern. Die Direktspeicherzugriffsschaltung kann dazu konfiguriert sein, eine Vollduplexdatenübertragung von der ersten Schnittstelle bei der Datenübertragung durchzuführen. Eine Frame-Information-Strukture-(FIS)-Sequenz gemäß der zweiten Schnittstelle kann nach der Datenübertragung erzeugt werden.
  • Gemäß einer weiteren beispielhaften Ausführungsform wird ein Computersystem bereitgestellt. Das Computersystem kann einen Prozessor, einen Hauptspeicher und eine Speichervorrichtung enthalten. Der Hauptspeicher kann dazu konfiguriert sein, eine Eingabe/Ausgabe-Anforderung von dem Prozessor zu empfangen. Die Speichervorrichtung kann dazu konfiguriert sein, Klingelinformation von dem Prozessor zu empfangen, die anzeigt, dass die Eingabe/Ausgabe-Anforderung gemacht wurde; die Eingabe/Ausgabe-Anforderung von dem Hauptspeicher abzuholen durch Senden von mit Frame-Information-Structure-(FIS) bezogener Information an den Hauptspeicher als Antwort auf das Empfangen der Klingelinformation; die nichtflüchtige Speichervorrichtung mit der auf FIS bezogenen Information, die der Eingabe/Ausgabe-Anforderung entspricht, automatisch zu aktualisieren; eine Datenübertragungsoperation gemäß der Eingabe/Ausgabe-Anforderung durchzuführen, wobei die Datenübertragungsoperation zwischen dem Hauptspeicher und der Speichervorrichtung durchgeführt wird; einen Interrupt an den Prozessor zu senden, wenn die Datenübertragungsoperation abgeschlossen ist; und von dem Prozessor Information, die anzeigt, dass die Eingabe/Ausgabe-Anforderung abgeschlossen ist, zu empfangen, wobei die Information, die anzeigt, dass die Eingabe/Ausgabe-Anforderung abgeschlossen ist, auf dem Interrupt basiert.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die obigen und weitere Aufgaben und Merkmale werden anschaulich anhand der folgenden Beschreibung mit Bezug auf die folgenden Figuren, wobei gleiche Bezugszeichen sich in den verschiedenen Figuren durchgehend auf gleiche Teile beziehen, es sei denn es ist anders angegeben, und wobei:
  • 1 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 2 ein Diagramm ist, das schematisch einen Datenfluss zwischen einem Host und einer Speichervorrichtung gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 3 ein Ablaufdiagramm ist, das schematisch eine Vollduplex-Übertragung aus 2 darstellt;
  • 4 ein Ablaufdiagramm ist, das schematisch ein Datenübertragungsverfahren gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 5 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 6 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß noch einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 7 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß noch einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 8 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß noch einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 9 ein Blockdiagramm ist, das schematisch ein Computersystem gemäß noch einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 10 ein Diagramm ist, das schematisch ein Computersystem gemäß noch einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte darstellt;
  • 11 ein Diagramm ist, das schematisch einen PCI-Header eines in einen oder von einem AHCI-Engine aus 10 eingegebenen oder ausgegebenen Datenpaketes darstellt;
  • 12 ein Diagramm ist, das schematisch bei einem AHCI-Engine aus 10 gespeicherte Host-Steuerinformation darstellt;
  • 13 ein Diagramm ist, das schematisch bei einem AHCI-Engine aus 10 gespeicherte Port-Information darstellt;
  • 14A bis 14H Diagramme sind, die schematisch die Spezifikation von einer FIS darstellt, die zwischen einem AHCI-Engine und einem SATA-Emulator aus 10 übertragen wird;
  • 15 ein Diagramm ist, das schematisch eine Struktur eines Host-Puffers in einem Hauptspeicher aus 10 darstellt;
  • 16 ein Diagramm ist, das schematisch eine Befehlslistenstruktur aus 15 darstellt;
  • 17 ein Diagramm ist, das schematisch eine Befehlstabelle aus 16 darstellt;
  • 18 ein Diagramm ist, das schematisch eine eingegebene empfangene FIS-Struktur aus 15 darstellt; und
  • 19 ein Diagramm ist, das schematisch eine Prozedur darstellt, bei der ein Computersystem aus 10 einen Lesebefehl ausführt gemäß einer beispielhaften Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen werden nun im Detail mit Bezug auf die begleitenden Zeichnungen beschrieben werden. Die erfinderischen Konzepte können jedoch in vielen verschiedenen Formen ausgeführt sein und sollten nicht als nur auf die dargestellten Ausführungsformen beschränkt ausgelegt werden. Vielmehr werden diese Ausführungsformen als Beispiele so bereitgestellt, dass diese Offenbarung durchgehend und vollständig sein wird und den Fachleuten die Konzepte der erfinderischen Konzepte vollständig vermitteln werden. Dementsprechend werden bekannte Verfahren, Elemente und Techniken nicht beschrieben mit Bezug auf einige der beispielhaften Ausführungsformen der erfinderischen Konzepte. Wenn nicht anders angegeben bezeichnen gleiche Bezugsziffern durchgehend in den angehängten Zeichnungen und der geschriebenen Beschreibung gleiche Elemente, und somit werden Beschreibungen nicht überholt werden. In den Zeichnungen können die Größen und relative Größen von Schichten und Bereichen zum Zwecke der Klarheit übertrieben sein.
  • Es wird angenommen werden, dass obwohl die Begriffe ”erster/erste/erstes”, ”zweiter/zweite/zweites”, ”dritter/dritte/drittes” usw. hier verwendet werden können zum Beschreiben von verschiedenen Elementen, Komponenten, Bereichen, Schichten und/oder Abschnitten, diese Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte nicht auf diese Begriffe beschränkt sein sollen. Diese Begriffe werden nur verwendet zum Unterscheiden eines Elementes, einer Komponente, eines Bereiches, einer Schicht oder eines Abschnittes von einem anderen Bereich, einer anderen Schicht oder einem anderen Abschnitt. Somit könnte ein erstes Element, eine erste Komponente, ein erster Bereich, eine erste Schicht oder ein erster Abschnitt, die unten diskutiert sind, als ein zweites Element, als eine zweite Komponente, als ein zweiter Bereich, als eine zweite Schicht, oder als ein zweiter Abschnitt bezeichnet werden ohne von den Lehren der erfinderischen Konzepte abzuweichen.
  • Die hierin verwendete Terminologie ist nur zum Zwecke des Beschreibens bestimmter Ausführungsformen und beabsichtigt nicht, die erfinderischen Konzepte zu beschränken. Wie hier verwendet sind die Singularformen ”einer/eine/eines” und ”der/die/das” dazu gedacht, auch die Pluralformen mit einzuschließen, es sei denn der Kontext zeigt eindeutig anderes an. Es wird weiter allgemein angenommen, dass die Begriffe ”umfasst” und/oder ”umfassend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, aber nicht das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen. Wie hier verwendet, enthält der Begriff ”und/oder” irgendeinen und alle Kombinationen von einem oder mehreren der verknüpft aufgelisteten Gegenstände. Außerdem ist der Begriff ”beispielhaft” dazu gedacht, sich auf ein Beispiel oder eine Veranschaulichung zu beziehen.
  • Es wird angenommen, dass wenn ein Element oder eine Schicht als ”auf”, ”verbunden mit”, ”gekoppelt an” oder ”angrenzend an” ein anderes Element oder eine andere Schicht bezeichnet wird, es/sie direkt auf, verbunden mit, gekoppelt mit oder angrenzend an das andere Element oder die andere Schicht sein kann oder dazwischen liegende Elemente oder Schichten vorhanden sein können. Wenn im Gegensatz dazu ein Element als ”direkt auf”, ”direkt verbunden mit”, ”direkt gekoppelt an” oder ”unmittelbar angrenzend an” ein anderes Element oder eine andere Schicht bezeichnet wird, sind keine dazwischen liegenden Elemente oder Schichten vorhanden.
  • Soweit nicht anders definiert, besitzen alle Begriffe (einschließlich technischer und wissenschaftlicher Begriffe), die hier verwendet werden, die gleiche Bedeutung wie sie üblicherweise von einem Durchschnittsfachmann auf dem Gebiet, zu dem die erfinderischen Konzepte gehören, verstanden wird. Es wird weiter angenommen, dass Begriffe, wie diejenigen, die in üblicherweise verwendeten Wörterbüchern definiert sind, so ausgelegt werden sollten, dass sie eine Bedeutung besitzen, die konsistent mit ihrer Bedeutung in dem Kontext der verwandten Technik und/oder der vorliegenden Beschreibung ist, und wird nicht in einer idealisierten oder überformalen Art und Weise interpretiert, außer es wird hier ausdrücklich so definiert.
  • 1 ist ein Blockdiagramm, das schematisch ein Computersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 1 kann ein Computersystem 1000 einen Host-Bus 1001, mindestens einen Host-Prozessor 1100, mindestens einen Host-Speicher 1200 und eine Speichervorrichtung 1300 enthalten. Im Folgenden werden die Komponenten 1001, 1100 und 1200 als ein Host bezeichnet.
  • Der Host-Bus 1001 kann Daten gemäß einer ersten Schnittstelle übertragen zwischen Komponenten (z. B. dem Prozessor 1100 und der Speichervorrichtung 1300) des Computersystems 1000. Hierbei kann die erste Schnittstelle eine Vollduplex-Schnittstelle (oder eine bidirektionale Datenübertragungsschnittstelle) sein. Das bedeutet, dass die erste Schnittstelle einen Übertragungskanal TX und einen Empfangskanal RX bereitstellen kann, die unabhängig voneinander verwendet werden. Zum Beispiel kann die erste Schnittstelle eine Glasfaser(FC)-Schnittstelle, eine Universal-Serial-Bus (USB) 3.0-Schnittstelle, eine USB 2.0-Schnittstelle, eine Serial-Attached-SCSI (SAS), eine Peripheral-Component-Interconnect-express(PCIe)-Schnittstelle, ein Serial-Peripheral-Interface (SPI), eine Thunderbolt-Schnittstelle, eine Lightning-Bolt-Schnittstelle oder eine andere ähnliche Schnittstelle sein.
  • Der Host-Prozessor 1100 kann einen Gesamtbetrieb des Computersystems 1000 steuern. Der Host-Prozessor 1100 kann eine erste Schnittstellenschaltung 1110 enthalten. Die erste Schnittstellenschaltung 1110 kann mit dem Host-Bus 1001 gemäß der ersten Schnittstelle verbunden sein. Der Host-Prozessor 1100 kann einen Speicher-Controller (nicht dargestellt) enthalten, der dazu konfiguriert ist, den Host-Speicher 1200 zu steuern.
  • Der Host-Speicher 1200 kann mit dem Host-Prozessor 1100 verbunden sein und kann Daten speichern, die während einer Operation benötigt werden, gemäß einer Steuerung des Host-Prozessors 1100. Der Host-Speicher 1200 kann implementiert sein mit einer flüchtigen Speichervorrichtung wie z. B. einem DRAM oder mit einer nichtflüchtigen Speichervorrichtung wie z. B. einem PRAM.
  • Die Speichervorrichtung 1300 kann verbunden sein mit dem Host-Bus 1001 gemäß der ersten Schnittstelle und kann Daten speichern. Die Speichervorrichtung 1300 kann mit dem Host extern kommunizieren gemäß der ersten Schnittstelle und eine Datenübertragungsoperation intern gemäß einer zweiten Schnittstelle durchführen. Anders als die erste Schnittstelle kann die zweite Schnittstelle eine Halbduplex-Schnittstelle (oder eine polydirektionale Datenübertragungsschnittstelle) sein. Zum Beispiel kann die zweite Schnittstelle eine ATA-Schnittstelle, eine SATA-Schnittstelle oder eine andere ähnliche Schnittstelle sein.
  • Die Speichervorrichtung 1300 kann eine erste Schnittstellenschaltung 1310 (die als eine externe Schnittstellenschaltung bezeichnet wird), einen Host-Bus-Adapter 1320, einen Emulator 1330 einer zweiten Schnittstelle (der als eine interne Schnittstellenschaltung bezeichnet wird), eine DMA-Schaltung 1340, zumindest eine nicht-flüchtige Speichervorrichtung 1350 und einen Speichercontroller 1360 aufweisen.
  • Die erste Schnittstellenschaltung 1310 kann mit dem Host-Bus 1001 verbunden sein und kann mit einer externen Vorrichtung gemäß der ersten Schnittstelle kommunizieren.
  • Der Host-Bus-Adapter 1320 kann mit der ersten Schnittstellenschaltung 1310 gemäß der ersten Schnittstelle kommunizieren. Der Host-Bus-Adapter 1320 kann eine Software und/oder Hardware sein, die so implementiert ist, dass die Speichervorrichtung 1300 zumindest einen von dem Host-Prozessor 1100 abgegebenen Befehl erkennt. Bei beispielhaften Ausführungsformen kann der Host-Bus-Adapter 1320 ein Advanced-Host-Controller-Interface (AHCI) sein.
  • Der Emulator 1330 einer zweiten Schnittstelle kann mit dem Host-Bus-Adapter 1320 gemäß der zweiten Schnittstelle kommunizieren. Gemäß verschiedenen Ausführungsformen kann der Host-Bus-Adapter 1320 Schreibbefehle und/oder Lesebefehle gemäß einem Verfahren einer integrierten Befehlsreihung empfangen. Der Emulator 1330 einer zweiten Schnittstelle kann derart implementiert sein, dass er eine Emulation einer zweiten Schnittstelle für die Speichervorrichtung 1300 bereitstellt. Zum Beispiel kann der Emulator 1330 einer zweiten Schnittstelle mit dem Host-Bus-Adaptor 1320 kommunizieren unter Verwendung einer Frame-Information-Structure (FIS) der zweiten Schnittstelle. Die FIS kann ein Datenpaket sein, das formatiert oder auf andere Art und Weise gemäß der zweiten Schnittstellenspezifikation konfiguriert ist. Der Emulator 1330 einer zweiten Schnittstelle kann eine FIS-Transaktion zu/von dem Speichercontroller 1360 oder eine FIS des Hosts über den Host-Bus-Adapter 1320 verarbeiten.
  • Die DMA-Schaltung 1340 kann dazu konfiguriert sein, die erste Schnittstellenschaltung 1310 gemäß einem Integrierte-Befehlsreihungs(NCQ)-Befehl (z. B. einen Schreibbefehl oder einen Lesebefehl), der von dem Host-Prozessor 1100 eingegeben ist, zu steuern, so dass die Speichervorrichtung 1300 Daten von/zu dem Host-Speicher 1200 liest/schreibt. Die DMA-Schaltung 1340 kann Übertragungs- und Empfangs-DMA-Schaltungen (nicht dargestellt) besitzen, die dazu konfiguriert sind, eine Vollduplex-Datenübertragungsoperation unter Verwendung eines Übertragungskanals TX und eines Empfangskanalx RX des Host-Busses 1001 durchzuführen.
  • Die zumindest eine nicht-flüchtige Speichervorrichtung 1350 kann eine Vorrichtung zum Speichern von Daten sein und kann zumindest einer von einem Flash-Speicher (z. B. einem NAND-Flash-Speicher), einem Phasenänderungs-RAM (PRAM), einem magnetischen RAM (MRAM), einem resistiven RAM (RRAM), einem ferroelektrischen RAM (FRAM), einem vertikalen NAND (VNAND) und anderen ähnlichen Speichervorrichtungen sein.
  • Der Speichercontroller 1360 kann die zumindest eine nicht-flüchtige Speichervorrichtung 1350 gemäß einer FIS-Transaktion steuern, die von dem Emulator 1330 einer zweiten Schnittstelle übertragen wurde.
  • Im Allgemeinen kann eine die zweite Schnittstelle (z. B. eine Halbduplex-Datenübertragungsschnittstelle) unterstützende Speichervorrichtung keine Vollduplex-Datenübertragungsoperation durchführen. Andererseits kann das Computersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte den Host-Bus-Adapter 1320, der die erste Schnittstelle (z. B. eine Vollduplex-Datenübertragungsschnittstelle) unterstützt, und den Emulator 1330 einer zweiten Schnittstelle enthalten, der der Speichervorrichtung 1300 ermöglicht, mit einem Host-Bus-Adapter unter Verwendung einer FIS der zweiten Schnittstelle zu kommunizieren, so dass sie Daten intern gemäß der zweiten Schnittstelle überträgt und eine Vollduplex-Datentübertragungsoperation extern gemäß der ersten Schnittstelle durchführt. Das bedeutet, dass mit dem Computersystem 1000 der erfinderischen Konzepte eine Datenübertragungsgeschwindigkeit verdoppelt werden kann, wobei eine Bedingung der zweiten Schnittstelle erfüllt wird.
  • Zusätzlich kann das Computersystem 1000 der erfinderischen Konzepte die Speichervorrichtung 1300 mit dem Host-Bus-Adapter 1320 enthalten, der die erste Schnittstelle unterstützt, so dass Entwicklung eines Host-Treibers für die Speichervorrichtung 1300 nicht benötigt wird. Gemäß verschiedenen Ausführungsformen kann der Host-Prozessor 1100 der erfinderischen Konzepte die Speichervorrichtung 1300 der erfinderischen Konzepte betreiben, wobei ein konventioneller Host-Treiber verwendet wird.
  • 2 ist ein Diagramm, das schematisch einen Datenfluss zwischen einem Host und einer Speichervorrichtung gemäß einer Ausführungsform der erfinderischen Konzepte darstellt. Im Folgenden wird ein Datenfluss zwischen einem Host und einer Speichervorrichtung mit Bezug auf die 1 und 2 beschrieben werden.
  • Ein Host-Prozessor 1100 kann prüfen, of eine Speichervorrichtung 1300 einen NCQ-Befehl (z. B. einen Schreibbefehl oder einen Lesebefehl) durchführen kann. Dementsprechend kann der Host-Prozessor 1100 dazu konfiguriert sein, ein Register eines Host-Bus-Adapters 1320 zu lesen, um zu prüfen, ob ein vorhergehender Befehl abgeschlossen ist (S11). Wenn ein Prüfergebnis anzeigt, dass ein vorhergehender Befehl abgeschlossen ist, kann der Host-Prozessor 1100 einen Befehl CMD an einen Host-Speicher 1200 ausgeben (S12). Der Host-Prozessor 1100 kann dem Host-Bus-Adapter 1320 einen Befehl FIS bereitstellen, der informiert, dass ein Befehl CMD an den Host-Speicher 1200 ausgegeben ist (S13). Ein Emulator 1330 einer zweiten Schnittstelle kann einen Befehl abholen durch Speichern von Information (z. B. eines Befehlstyps, einer Adresse, Daten und dergleichen), die mit dem Befehl FIS verknüpft ist bei dem Host-Speicher 1200. Somit kann der Host-Speicher 1200 einen Bereich festlegen für eine Datenübertragung mit der Speichervorrichtung 1300.
  • Danach kann eine Datenübertragung durchgeführt werden zwischen dem Host-Speicher 1200 und der Speichervorrichtung 1300 durch einen Lese- oder Schreibbefehl CMD, wobei die Spezifikation der zweiten Schnittstelle erfüllt wird. Gemäß verschiedenen Ausführungsformen kann eine Datenübertragung eine Vollduplexdatenübertragung sein. Bei solchen Ausführungsformen kann eine Vollduplex-Datenübertragung durchgeführt werden gemäß gleichzeitig empfangenen Lese- und Schreibbefehlen, oder eine Vollduplex-Datenübertragung kann durchgeführt werden in einem Zustand, bei dem Lese- und Schreibbefehle gemischt sind (S15). Wenn eine Datenübertragung abgeschlossen ist, kann der Host-Bus-Adapter 1320 einen Interrupt an den Host-Speicher 1200 senden (S16). Der Host-Prozessor 1100 kann Befehls-Abschlussinformation an den Host-Speicher 1200 übertragen, die informiert, dass eine den Befehl CMD entsprechende Operation abgeschlossen ist (S17).
  • Das Computersystem 1000 gemäß den erfinderischen Konzepten kann eine Vollduplex-Datenübertragung gemäß dem NCQ-Befehl CMD durchführen.
  • 3 ist ein Ablaufdiagramm, das schematisch eine Vollduplex-Übertragung aus 2 veranschaulicht.
  • Bezug nehmend auf 3 kann eine Übertragungs-DMA-Schaltung in einer DMA-Schaltung 1140 dazu konfiguriert sein, Schreibdaten von einem Host-Speicher 1200 zu empfangen, wobei ein Übertragungskanal TX eines Host-Busses 1001 gemäß einem Schreibbefehl verwendet wird. Eine Empfangs-DMA-Schaltung kann dazu konfiguriert sein, Lesedaten an den Host-Speicher 1200 zu übertragen, wobei ein Empfangskanal RX des Host-Busses 1001 verwendet wird gemäß einem Lesebefehl (S21). Das bedeutet, dass eine Übertragung von Schreibdaten und eine Übertragung von Lesedaten parallel durchgeführt werden kann.
  • Wenn eine Übertragung der Schreibdaten über einem Übertragungskanal TX des Host-Busses 1001 abgeschlossen ist, können Schreibdaten FIS (DMA-Setup-FIS, Nicht-Daten-FIS und Set-Device-Bits(SBD)-FIS) gemäß der Spezifikation der zweiten Schnittstelle an den Host-Speicher 1200 übertragen werden (S22, S23 und S24). Hierbei kann die DMA-Setup-FIS Information enthalten, die anzeigt, dass eine DMA-Schaltung 140 für Datenübertragung konfiguriert sein kann. Die Nicht-Daten-FIS kann Information enthalten, die anzeigt, dass Daten nicht vorhanden sind. Die SDB-FIS kann Information enthalten, die anzeigt, ob Datenübertragung abgeschlossen ist oder ein Übertragungszustand erfolgreich ist. Gemäß verschiedenen Ausführungsformen kann die Nicht-Daten-FIS von dem Host-Speicher 1200 erzeugt werden und an die Speichervorrichtung 1300 gesendet werden. Obwohl nicht dargestellt, kann die Data-FIS zum Erfüllen der Übertragungsspezifikation der zweiten Schnittstelle einen Header enthalten, der von einem Emulator 1330 einer zweiten Schnittstelle erzeugt wird, und ein Host-Bus-Adapter 1320 kann die Data-FIS verwenden, die von der Emulation einer zweiten Schnittstelle erzeugt wird.
  • Wenn eine Übertragung von Lesedaten über einen Empfangskanal RX des Host-Busses 1001 abgeschlossen ist, kann eine Lesedaten-FIS (z. B. DMA-Setup-FIS, Nicht-Daten-FIS und SDE-FIS) gemäß der Spezifikation der zweiten Schnittstelle an den Host-Speicher 1200 gesendet werden (S25, S26 und S27). Gemäß verschiedenen Ausführungsformen kann die DMA-Setup-FIS Information enthalten, die anzeigt, ob eine DMA-Schaltung 1340 für Datenempfang zu verwenden ist, kann die Nicht-Daten-FIS Information enthalten, die anzeigt, dass Daten nicht vorhanden sind und kann die SDB-FIS Information enthalten, die anzeigt, ob Datenempfang abgeschlossen ist, oder ein Empfangszustand erfolgreich ist.
  • Bei beispielhaften Ausführungsformen kann die Schreibdaten-FIS und die Lesedaten-FIS verwendet werden, derart, dass sie sequentiell erzeugt werden, nachdem entweder Schreibdaten oder Lesedaten übertragen wurden.
  • Bei beispielhaften Ausführungsformen kann jede von der Schreibdaten-FIS und der Lesedaten-FIS verwendet werden derart, dass sequentiell eine DMA-Setup-FIS, eine Nicht-Daten-FIS und eine SDB-FIS erzeugt werden.
  • Mit einem Vollduplex-Datenübertragungsverfahren der erfinderischen Konzepte werden die DATA-FIS (Schreib-FIS und Lese-FIS) gemäß der Spezifikation der zweiten Schnittstelle virtuell erzeugt und übertragen, nachdem Schreibdaten und Lesedaten gemäß der Spezifikation der ersten Schnittstelle übertragen wurden.
  • 4 ist ein Ablaufdiagramm, das schematisch ein Datenübertragungsverfahren gemäß einer Ausführungsform der erfinderischen Konzepte darstellt. Im Folgenden wird ein Datenübertragungsverfahren gemäß einer Ausführungsform der erfinderischen Konzepte beschrieben werden mit Bezug auf die 1 bis 4.
  • Ein Host-Prozessor 1100 kann konfiguriert sein zum Ausgeben eines NCQ-Befels (Lesen/Schreiben) an eine Speichervorrichtung 1300 (S110). Gemäß verschiedenen Ausführungsformen kann der NCQ-Befehl einen Schreibbefehl und einen Lesebefehl gleichzeitig oder sequentiell ausgeben. Eine Schreib-DMA-Operation und eine Lese-DMA-Operation können parallel zwischen einem Host-Speicher 1200 und der Speichervorrichtung 1300 durchgeführt werden, wobei eine erste Schnittstelle gemäß dem NCQ-Befehl verwendet wird (S120). Nachdem die Schreib-DMA-Operation und die Lese-DMA-Operation abgeschlossen sind, kann eine Daten-FIS-Sequenz (z. B. DMA-Setup-FIS → Nicht-Daten-FIS → SDB-FIS) für das Genügen einer zweiten Schnittstelle von der Speichervorrichtung 1300 an den Host-Speicher 1200 übertragen werden (S130).
  • Wird dem Datenübertragungsverfahren der erfinderischen Konzepte kann eine Data-FIS gemäß der Spezifikation der zweiten Schnittstelle gesendet werden, nachdem DMA-Operationen gemäß der Spezifikation der ersten Schnittstelle durchgeführt wurden.
  • Ein Computersystem 1000, das mit Bezug auf die 1 bis 4 beschrieben wurde, kann die Speichervorrichtung 1300 enthalten, die mit einem Host-Bus 1001 extern verbunden ist, gemäß der Spezifikation der ersten Schnittstelle, und arbeitet intern gemäß der Spezifikation der zweiten Schnittstelle. Das Computersystem 1000 enthält weiter eine Speichervorrichtung, die mit dem Host-Bus 1001 verbunden ist gemäß der Spezifikation der ersten Schnittstelle.
  • 5 ist ein Blockdiagramm, das schematisch ein Computersystem gemäß einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 5 enthält ein Computersystem 2000 einen Host-Bus 2001, mindestens einen Host-Prozessor 2100, mindestens einen Host-Speicher 2200, eine erste Speichervorrichtung 2300 und eine zweite Speichervorrichtung 2400. Gemäß verschiedenen Ausführungsformen können der Host-Bus 2001, der Host-Prozessor 2100 und der Host-Speicher 2200 jeweils gleich oder ähnlich wie ein Host-Bus 1001, ein Host-Prozessor 1100 und ein Host-Speicher 1200 sein. Zusätzlich können gemäß verschiedenen Ausführungsformen die erste Speichervorrichtung 2300, die erste Schnittstellenschaltung 2310, ein Host-Bus-Adapter 2320, der Emulator 2330 einer zweiten Schnittstelle, die DMA-Schaltung 2340, die zumindest eine nicht-flüchtige Speichervorrichtung 2350 und der Speicher-Controller 2360 jeweils gleich oder ähnlich wie eine Speichervorrichtung 1300, die erste Schnittstellenschaltung 1310, der Host-Bus-Adapter 1320, der Emulator 1330 einer zweiten Schnittstelle, die DMA-Schaltung 1340, die zumindest eine nicht-flüchtige Speichervorrichtung 1350 und der Speicher-Controller 1360 sein.
  • Die zweite Speichervorrichtung 2400 kann mit dem Host-Bus 2001 gemäß einer ersten Schnittstelle verbunden sein. Die zweite Speichervorrichtung 2400 kann eine erste Schnittstellenschaltung 2410, mindestens eine nicht-flüchtige Speichervorrichtung 2450 und einen Speicher-Controller 2460 enthalten. Die erste Schnittstellenschaltung 2410 kann derart implementiert sein, dass sie mit einem Host gemäß der Spezifikation der ersten Schnittstelle kommuniziert. Der Speicher-Controller 2460 kann Befehle und Daten gemäß der Spezifikation der ersten Schnittstelle übertragen und kann die nicht-flüchtige Speichervorrichtung 2450 gemäß einer Host-Anforderung steuern.
  • Die zweite Speichervorrichtung 2400 kann auch als eine erste Schnittstellenspeicherschaltung bezeichnet werden. Gemäß verschiedenen Ausführungsformen kann die Speichervorrichtung 2300 auch als eine erste Pseudoschnittstellenspeicherschaltung bezeichnet werden.
  • Ein Computersystem gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte kann weiter eine Funktion einer redundanten Anordnung unabhängiger Festplatten (RAID) aufweisen. Gemäß verschiedenen Ausführungsformen kann die RAID-Funktion eine Mehrzahl von Speichervorrichtungen verwirklichen, in einer gleichen Art und Weise wie eine logische Vorrichtung zu bearbeiten und kann verwendet werden zum zufälligen Erweitern einer Kapazität einer einzelnen Speichervorrichtung oder zum Sichern von Stabilität von in einer Speichervorrichtung gespeicherten Daten.
  • 6 ist ein Blockdiagramm, das schematisch ein Computersystem gemäß noch einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 6 kann ein Computersystem 300 einen Host-Bus 3001, mindestens einen Host-Prozessor 3100, mindestens einen Host-Speicher 3200, einen RAID-Controller 3300, eine erste Speichervorrichtung 3400 und eine zweite Speichervorrichtung 3500 aufweisen. Gemäß verschiedenen Ausführungsformen können der Host-Bus 3001, der Host-Prozessor 3100 und der Host-Speicher 3200 jeweils gleich oder ähnlich dem Host-Bus 1001, einem Host-Prozessor 1100 und einem Host-Speicher 1200 sein.
  • Der RAID-Controller 3300 kann mit dem Host-Bus 3001 gemäß einer ersten Schnittstelle verbunden sein und kann dazu konfiguriert sein, die erste und die zweite Speichervorrichtung 3400 und 3500 derart zu steuern, dass eine RAID-Funktion bereitgestellt wird. Gemäß verschiedenen Ausführungsformen kann die RAID-Funktion ein Datenspiegelungsverfahren enthalten, so dass Daten in der ersten Speichervorrichtung 3400 gespeichert werden und gleichzeitig die gleichen Daten in der zweiten Speichervorrichtung 3500 gespeichert werden. Der RAID-Controller 3300 kann mit der ersten und der zweiten Speichervorrichtung 3400 und 3500 gemäß der ersten Schnittstelle verbunden sein. Jede von der ersten und der zweiten Speichervorrichtung 3400 und 3500 können gleich oder ähnlich der Speichervorrichtung 1300 sein. Bei solchen Ausführungsformen kann jede von der ersten und der zweiten Speichervorrichtung 3400 und 3500 eine erste Pseudoschnittstellenspeichervorrichtung sein.
  • Das Computersystem 3000 gemäß einer Ausführungsform der erfinderischen Konzepte kann eine RAID-Funktion unter Verwendung der ersten Pseudoschnittstellenspeichervorrichtungen 3400 und 3500 durchführen.
  • 6 veranschaulicht ein Beispiel, bei dem das Computersystem 3000 zwei Speichervorrichtungen 3400 und 3500 enthält. Jedoch sind die erfinderischen Konzepte nicht darauf beschränkt. Zum Beispiel kann gemäß verschiedenen Ausführungsformen das Computersystem 3000 derart implementiert sein, dass es eine RAID-Funktion unter Verwendung von drei oder mehr ersten Pseudoschnittstellenspeichervorrichtungen durchführt.
  • Außerdem können Speichervorrichtungen in dem Computersystem 3000 erste Pseudoschnittstellenspeichervorrichtungen sein. Jedoch sind die erfinderischen Konzepte nicht darauf beschränkt. Zum Beispiel kann gemäß verschiedenen Ausführungsformen ein Computersystem der erfinderischen Konzepte zumindest eine HDD enthalten.
  • 7 ist ein Blockdiagramm, das schematisch ein Computersystem gemäß noch einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 7 kann ein Computersystem 4000 einen Host-Bus 4001, zumindest einen Host-Prozessor 4100, zumindest einen Host-Speicher 4200, einen RAID-Controller 4300, eine Speichervorrichtung 4400 und eine HDD 4500 enthalten. Gemäß verschiedenen Ausführungsformen können der Host-Bus 4001, der Host-Prozessor 4100 und der Host-Speicher 4200 jeweils gleich oder ähnlich dem Host-Bus 1001, einem Host-Prozessor 1100 und einem Host-Speicher 1200 sein.
  • Der RAID-Controller 4300 kann mit dem Host-Bus 4001 gemäß einer ersten Schnittstelle verbunden sein und kann dazu konfiguriert sein, die Speichervorrichtung 4400 und die HDD 4500 derart zu steuern, dass eine RAID-Funktion bereitgestellt wird. Der RAID-Controller 4300 kann Schreibdaten gleichzeitig in der Speichervorrichtung 4400 und auf der HDD 4500 speichern als Antwort auf eine Schreibanforderung eines Host.
  • Das Computersystem 4000 gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte kann eine RAID-Funktion in einer Hybridart durchführen unter Verwendung einer ersten Pseudoschnittstellenspeichervorrichtung 4400 und der HDD 4500.
  • In dem Computersystem 400 gemäß der erfinderischen Konzepte kann eine erste Schnittstelle eine PCIe-Schnittstelle und kann eine zweite Schnittstelle eine SATA-Schnittstelle sein.
  • 8 ist ein Blockdiagramm, das schematisch ein Computersystem gemäß noch einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 8 kann ein Computersystem 5000 einen Host-Chipsatz 5100 und einen SSDe-Speichervorrichtung 5300 enthalten. Der Host-Chipsatz 5100 und die SSDe-Speichervorrichtung 5300 können über eine PCIe-Schnittstelle verbunden sein.
  • Der Host-Chipsatz 5100 kann einen AHCI-Controller 5100, einen PCIe-Loop-Port 5120 und eine PCIe-Lane 5130 enthalten. Die SSDe-Speichervorrichtung 5300 kann einen SSD-Controller 5301 enthalten. Der SSD-Controller 5301 kann eine PCIe-Bitübertragungsschicht 5310, eine PCIe-Verbindungsschicht 5320, eine PCIe-Transportschicht 5330 und einen AHCI-Controller 5340 enthalten.
  • Die PCIe-Bitübertragungsschicht 5310 kann mit dem PCIe-Loop-Port 5120 des Host-Chipsatzes 5100 über die PCIe-Lane 5130 verbunden sein. Die PCIe-Bitübertragungsschicht 5310 kann dazu konfiguriert sein, einen analogen Signaleingang von dem Host-Chipsatz 5100 in ein digitales Signal umzuwandeln. Die PCIe-Bitübertragungssschicht 5310 kann dazu konfiguriert sein, an den Host-Chipsatz 5100 zu sendende digitale Daten in ein analoges Signal umzuwandeln.
  • Die PCIe-Verbindungsschicht 5320 kann dazu konfiguriert sein, PCIe-Standard-Codierung/Decodierung an digitalen Daten der PCIe-Bitübertragungsschicht 5310 durchzuführen.
  • Die PCIe-Transportschicht 5330 kann FIS für Übertragen von codierten/decodierten Daten oder Datenpaketen zwischen dem Host-Chipsatz 5100 und einer Anwendungsschicht zu verwalten. Der AHCI-Controller 5340 kann dazu konfiguriert sein, ein Datenpaket der PCIe-Spezifikation in ein Datenpaket der SATAe-Spezifikation umzuwandeln.
  • Der AHCI-Controller 5340 kann die SSDe-Speichervorrichtung 5300 in die Lage versetzen, erkannt zu werden als eine PCIe-Speichervorrichtung, die mit einem Host über eine PCIe-Verbindung verbunden ist.
  • Das Computersystem 5000 kann dazu konfiguriert sein, ein Datenpaket mit einem PCIe-Verbindungsschichtformat zwischen dem Host-Chipsatz 5100 und der SSDe-Speichervorrichtung 5300 über einer PCIe-Lane zu übertragen und zu empfangen.
  • Ein Computersystem gemäß einer Ausführungsform der erfinderischen Konzepte kann derart konfiguriert sein, dass es sowohl eine erste Pseudoschnittstellenspeichervorrichtung als auch eine zweite Schnittstellenspeichervorrichtung enthält.
  • 9 ist ein Blockdiagramm, das schematisch ein Computersystem gemäß noch einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 9 kann ein Computersystem 6000 eine CPU 6100, einen DRAM 6200, einen internen Kanal-Controller 6300, eine AHCI-Speichervorrichtung 6400 und eine SATA-Speichervorrichtung 6500 enthalten. Die CPU 6100 und der DRAM 6200 können jeweils gleich oder ähnlich zu einem Host-Prozessor 1100 und einem Host-Speicher 1200 in 1 sein.
  • Der interne Kanal-Controller 6300 kann verbunden sein gemäß einer PCIe-Schnittstelle und kann einen PCIe-Root-Complex 5310, einen AHCI-Controller 6320 und einen SATA-Controller 6330 enthalten.
  • Die AHCI-Speichervorrichtung 6400 kann verbunden sein mit dem internen Kanal-Controller 6300 über eine PCIe-Schnittstelle und kann einen AHCI-Controller 6410 zum Umwandeln eines Datenpaketes der PCIe-Spezifikation in ein Datenpaket der SATA-Spezifikation enthalten. Die AHCI-Speichervorrichtung 6400 kann als eine PCIe-Speichervorrichtung extern erkannt werden oder eine SATA-Speichervorrichtung intern sein. Die AHCI-Speichervorrichtung 6400 kann gleich oder ähnlich einer Speichervorrichtung 1300 in 1 sein.
  • Die SATA-Speichervorrichtung 6500 kann mit dem internen Kanal-Controller 6300 über eine SATA-Schnittstelle verbunden sein und einen SATA-Controller 6510 zum Verarbeiten eines Datenpaketes der SATA-Spezifikation enthalten. Die SATA-Speichervorrichtung 6500 kann dazu konfiguriert sein, ein SATA-Datenpaket gemäß einer Steuerung des SATA-Controllers 6330 des internen Kanal-Controllers 6300 zu übertragen und zu empfangen. Gemäß verschiedenen Ausführungsformen kann das SATA-Datenpaket empfangen und übertragen werden oder kann in ein PCIe-Datenpaket umgewandelt werden gemäß einem Steuersignal des AHCI-Controllers 6320 des internen Kanal-Controllers 6300, und kann das PCIe-Datenpaket übertragen und empfangen werden zu und von der CPU 6100 über die PCIe-Schnittstelle.
  • Das Computersystem 6000 kann die SATA-Speichervorrichtung 6500 und die mit den internen Kanal-Controller 6300 über die PCIe-Schnittstelle verbundene Pseudo-PCIe-Speichervorrichtung 6400 enthalten.
  • 10 ist ein Diagramm, das schematisch ein Computersystem gemäß noch einer weiteren Ausführungsform der erfinderischen Konzepte darstellt. Bezug nehmend auf 10 kann ein Computersystem 7000 eine CPU 7100, einen Hauptspeicher 7200 und eine SATAe-Speichervorrichtung 7300 enthalten.
  • Die SATAe-Speichervorrichtung 7300 kann eine nicht-flüchtige Speichervorrichtung 7350 und einen SATA-Controller 7360 enthalten, der dazu konfiguriert ist, die nicht-flüchtige Speichervorrichtung 7350 zu steuern.
  • Der SATA-Controller 7360 kann eine PCIe-Schnittstellenschaltung 7361, einen SATAe-Engine 7362, einen statischen On-Chip-Direktzugriffsspeicher (SRAM) 7363 und einen dynamischen Direktzugriffsspeicher-(DRAM)-Puffer 7364 enthalten. Der SATAe-Engine 7362 kann einen AHCI-Engine 7320, einen SATA-Emulator 7330 und eine DMA-Schaltung 7340 enthalten. Die PCIe-Schnittstellenschaltung 7361 kann eine Adressumsetzungseinheit ATU sowie einen ersten und einen zweiten Ausgangsbereich OB1 und OB2 enthalten. Die DMA-Schaltung 7340 kann eine Übertragungs-DMA-Schaltung 7341 für Datenübertragung und eine Empfangs-DMA-Schaltung 7342 für Datenempfang enthalten.
  • Eine Eingabe/Ausgabe-Anforderung IO-RQ kann wie folgt gemacht werden.
  • Wenn die Eingangs/Ausgabe-Anforderung IO-RQ verfügbar ist, kann die CPU 7100 die Eingabe/Ausgabe-Anforderung IO-RQ an den Hauptspeicher 7200 senden (➀). Eine Befehlsreihung entsprechend der Eingabe/Ausgang-Anforderung IO-RQ kann einen Befehls-Header/eine Befehls-FIS, eine physikalische Bereichs-Deskriptoren-Tabelle PRDT, einen Host-Puffer und/oder andere ähnliche Information enthalten. Gemäß verschiedenen Ausführungsformen kann eine physikalische Bereichs-Deskriptoren-Tabelle PRDT eine Tabelle sein zum Speichern einer Struktur, die einen Speicherbereich steuert, in dem an einen Host zu übertragende Daten oder von dem Host zu übertragende Daten gespeichert werden. Die physikalische Bereichs-Deskriptoren-Tabelle PRDT kann eine Größe und eine Adresse eines entsprechenden Speicherbereichs enthalten.
  • Die CPU 7100 kann der SATAe-Speichervorrichtung 7300 Klingelinformation bereitstellen, die anzeigt, dass die Eingabe/Ausgabe-Anforderung IO/RQ gemacht wurde (➁). Der AHCI-Engine 7320 der SATAe-Speichervorrichtung 7300 kann ein Host-Register (z. B. P × Cl) zum Speichern der Klingelinformation enthalten. Die SATAe-Speichervorrichtung 7300 kann die Eingabe/Ausgabe-Anforderung IO-RQ abholen durch Senden von eine FIS betreffender Information an den Hauptspeicher 7200 als Antwort auf die Eingabe/Ausgabe-Anforderung IO-RQ (➂). Außerdem kann FIS, die der Eingabe/Ausgabe-Anforderung IO-RQ entspricht, automatisch aktualisiert werden (➃). Eine Datenübertragung gemäß der Eingabe/Ausgabe-Anforderung IO-RQ kann durchgeführt werden zwischen dem Hauptspeicher 7200 und der SATA-Speichervorrichtung 7300 über die Übertragungs-DMA-Schaltung 7341 und die Empfangs-DMA-Schaltung 7342. Wenn eine Datenübertragungsoperation abgeschlossen ist, kann die SATAe-Speichervorrichtung 7300 einen Interrupt an die CPU 7100 senden (➄). Auf der Grundlage des Interrupts kann die die CPU 7100 der SATAe-Speichervorrichtung 7300 Information bereitstellen, die anzeigt, dass die Eingabe/Ausgabe-Anforderung IO-RQ abgeschlossen ist (➅).
  • Das Computersystem 7000 kann eine Vollduplex-Datenübertragungsoperation zwischen dem Hauptspeicher 7200 und der SATAe-Speichervorrichtung 7300 gemäß der Eingabe/Ausgabe-Anforderung IO-RQ durchführen.
  • 11 ist ein Diagramm, das schematisch einen PCI-Header eines Datenpaketes darstellt, das in oder von einem AHCI-Engine 7320 aus 10 eingegeben oder ausgegeben wurde. Bezug nehmend auf 11 kann ABAR eine AHCI-Basisadresse sein. Eine Startadresse eines Host-Steuerregisters kann einen Wert besitzen, der ABAR plus ”0 × 0000” entspricht, und eine Startadresse eines Port-Registers kann einen Wert besitzen, der ABAR minus ”0 × 0000” entspricht.
  • 12 ist ein Diagramm, das schematisch Host-Steuerinformation darstellt, die bei einem AHCI-Engine 7320 aus 10 gespeichert ist. Bezug nehmend auf 12 können Host-Register, die Adressen in einem Bereich von ”00h” bis ”03h” entsprechen, Information bezüglich Host-Fähigkeiten speichern, und Host-Steuer-Register die Adressen im Bereich von ”0Ch” bis ”0Fh” entsprechen, können Information bezüglich implementierter Ports speichern.
  • 13 ist ein Diagramm, das schematisch bei einem AHCI-Engine 7320 aus 10 gespeicherte Port-Information darstellt. Bezug nehmend auf 13 können Port-Register, die Adressen in einem Bereich von ”00h” bis ”03h” entsprechen, Port-Information über eine Befehlslisten-Basisadresse speichern, können Port-Register, die Adressen in einem Bereich von ”28h” bis 2Bh” entsprechen, Port-Information über einen SATA-Status speichern, und können Port-Register, die Adressen in einem Bereich von ”38h” bis ”3Bh” entsprechen, Port-Information über eine Befehlsausgabe speichern.
  • 14A bis 14H sind Diagramme, die schematisch die Spezifikation einer FIS darstellen, die zwischen einem AHCI-Engine 7320 und einem SATA-Emulator 7330 aus 10 übertragen wird. Bezug nehmend auf 14A bis 14H kann die FIS-Spezifikation die SATA 3.0-Spezifikation erfüllen. 14A zeigt FIS-Typen, 14B zeigt ein H2D-FIS-Layout, 14C zeigt ein D2H-FIS-Layout, 14D zeigt ein PIO-Setup-FIS-Layout, 14E zeigt ein DMA-Setup-FIS-Layout, 14F zeigt ein DMA-Aktivierungs-FIS-Layout, 14G zeigt ein Daten-FIS-Layout und 14H zeigt ein SDB-FIS-Layout.
  • 15 ist ein Diagramm, das schematisch eine Struktur eines Host-Puffers in einem Hauptspeicher 7200 aus 10 darstellt. Bezug nehmend auf 15 kann ein Port-Register P × CLB eine Befehlslistenstruktur (z. B. eine Befehlsreihung) mit einer Mehrzahl von Befehlen zum Unterscheiden einer Befehlstabelle CT speichern, und ein Port-Register P × FB kann eine eingegebene FIS-Struktur speichern. Eine Basisadresse eines Host-Puffers in einem Hauptspeicher 7200 auf der Befehlslistenstruktur kann über das Port-Register P × CLB unterschieden werden. Eine Basisadresse eines Host-Puffers in dem Hauptspeicher 7200 auf der FIS-Struktur kann über das Port-Register P × FB unterschieden werden.
  • 16 ist ein Diagramm, das schematisch eine Befehlslistenstruktur aus 15 darstellt. Bezug nehmend auf 16 kann jeder von den Befehls-Headern eine Befehlstabellen-Basisadresse DW2 und obere 32-Bits DW3 einer Befehlstabellen-Basisadresse speichern.
  • 17 ist ein Diagramm, das schematisch eine Befehlstabelle aus 16 darstellt. Bezug nehmend auf 17 kann eine Befehlstabelle eine physikalische Bereichs-Deskriptoren-Tabelle PRDT enthalten, die eine Mehrzahl von Elementen Item0 bis Item CHz[PRDTL]-1 besitzt. Gemäß verschiedenen Ausführungsformen kann jedes der Elemente Item0 bis Item CHz[PRDTL]-1 eine Datenbasisadresse DBA enthalten. Die Datenbasisadresse DBA kann bei einem Host-Puffer eines Hauptspeichers 7200 gespeichert werden, und die physikalische Bereichs-Deskriptoren-Tabelle PRDT kann verwendet werden für ein Prefetching.
  • 18 ist ein Diagramm, das schematisch eine eingegebene Empfangs-FIS-Struktur aus 15 darstellt. Bezug nehmend auf 18 kann die FIS einen DMA-Setup-FIS-Bereich, einen PIO-Setup-FIS-Bereich, einen D2H-Register-FIS-Bereich, einen unbekannten FIS-Bereich und einen reservierten Bereich enthalten.
  • 19 ist ein Diagramm, das schematisch eine Prozedur darstellt, bei der ein Computersystem aus 10 einen Lesebefehl ausführt. Bezug nehmend auf 19 kann ein Register P × Cl eines AHCI-Engine 7320 einen NCQ-Befehl empfangen und kann der AHCI-Engine 7320 einen Befehl abrufen durch Austauschen von FIS-Information gemäß dem NCQ-Befehl mit einem SATAe-Emulator 7330 und Senden von dazugehöriger FIS-Information (CH, H2D, FIS, PRD-Tabelle usw.) an einen Hauptspeicher 7200. Danach kann ein SATAe-Engine 7362 zugreifen auf den Hauptspeicher 7200, so dass Eingabe/Ausgabe-Daten gemäß dem Befehl übertragen werden. Danach kann eine DMA-Setup-FIS und eine SDB-FIS gemäß der SATAT-Spezifikation gesendet werden von dem SATAe-Emulator 7330 an den AHCI-Engine 7320 und der AHCI-Engine 7320 kann die DMA-Setup-FIS und die SDB-FIS an den Hauptspeicher 7200 übertragen. Danach kann Information über Abschluss des Lesens an den AHCI-Engine 7320 gesendet werden.
  • Während die erfinderischen Konzepte beschrieben wurden mit Bezug auf beispielhafte Ausführungsformen ist es für Fachleute klar, dass verschiedene Änderungen und Abwandlungen gemacht werden können, ohne von dem Geist und dem Umfang der vorliegenden Erfindung abzuweichen. Daher sollte davon ausgegangen werden, dass die obigen Ausführungsformen nicht beschränkend, sondern veranschaulichend sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2012-0134589 [0001]

Claims (10)

  1. Datenübertragungsverfahren einer Speichervorrichtung, wobei die Speichervorrichtung einen Host-Bus-Adapter (1320; 2320; 3320; 4320) enthält, der dazu konfiguriert ist, mit einer externen Host-Vorrichtung über eine erste Schnittstelle zu kommunizieren und intern über eine zweite Schnittstelle zu kommunizieren, wobei das Datenübertragungsverfahren aufweist: Ausgeben von einem Schreibbefehl und einem Lesebefehl an den Host-Bus-Adapter (1320; 2320; 3320; 4320) durch eine Speichervorrichtung; Durchführen eines Lese-Direktspeicherzugriffs-Operation unter Verwendung der ersten Schnittstelle als Antwort auf den Schreibbefehl und gleichzeitiges Durchführen einer Schreib-Direktspeicherzugriffs-Operation unter Verwendung der zweiten Schnittstelle als Antwort auf den Lesebefehl durch die Speichervorrichtung; und Erzeugen von Frame-Information-Structure-(FIS)Sequenzen gemäß der zweiten Schnittstelle als Antwort auf den ausgegebenen Schreibbefehl und den ausgegebenen Lesebefehl durch die Speichervorrichtung, wobei die erste Schnittstelle eine Vollduplex-Datenübertragung durchführt und die zweite Schnittstelle eine Halbduplex-Datenübertragung durchführt.
  2. Datenübertragungsverfahren nach Anspruch 1, wobei der Host-Bus-Adapter (1320; 2320; 3320; 4320) den ausgegebenen Schreibbefehl und den ausgegebenen Lesebefehl gemäß einer integrierten Befehlsreihung (NCQ) empfängt.
  3. Datenübertragungsverfahren nach Anspruch 1, wobei das Ausgeben weiter aufweist: Lesen eines ersten Registers des Host-Bus-Adapters (1320; 2320; 3320; 4320) zum Prüfen, ob ein vorhergehender Befehl der Speichervorrichtung abgeschlossen ist.
  4. Datenübertragungsverfahren nach Anspruch 1, weiter aufweisend: Abrufen eines Befehls durch Senden einer Frame-Information-Structure (FIS) entsprechend jedem von dem ausgegebenen Schreibbefehl und dem ausgegebenen Lesebefehl.
  5. Datenübertragungsverfahren nach Anspruch 1, wobei die FIS-Sequenzen zumindest eine von einer Direktspeicherzugriffs-Setup-Frame-Information-Structure (DMA-Setup-FIS), einer Programm-E/A-Setup-Frame-Information-Structure (PIO-Setup-FIS), einer Daten-Frame-Information-Structure (DATA-FIS) und einer Set-Device-Bit-Frame-Information-Structure (SDB-FIS) enthält.
  6. Datenübertragungsverfahren nach Anspruch 5, wobei die Mehrzahl von FIS-Sequenzen weiter eine Nicht-Daten-Frame-Information-Structure enthält.
  7. Datenübertragungsverfahren nach Anspruch 1, wobei die FIS erzeugt wird nachdem die Lese- und Schreib-Direktspeicherzugriffs-Operationen abgeschlossen sind.
  8. Datenübertragungsverfahren einer Speichervorrichtung, die eine Zentraleinheit (CPU) (1100; 2100; 3100; 4100; 6100; 7100), einen Hauptspeicher (1200; 2200; 3200; 4200; 6200; 7200) und eine Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300) enthält, wobei die Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300) einen Host-Bus-Adapter (1320; 2320) zum Kommunizieren mit der CPU (1100; 2100; 3100; 4100; 6100; 7100) über eine erste Schnittstelle und zum internen Kommunizieren über eine zweite Schnittstelle enthält, das Datenübertragungsverfahren aufweisend: Übertragen einer Befehlsreihung, die einer Eingabe/Ausgabe-Anforderung von der CPU (1100; 2100; 3100; 4100; 6100; 7100) an den Hauptspeicher (1200; 2200; 3200; 4200; 6200; 7200) entspricht, durch die CPU (1100; 2100; 3100; 4100; 6100; 7100); Übertragen von Information, die anzeigt, dass die Eingabe/Ausgabe-Anforderung von der CPU (1100; 2100; 3100; 4100; 6100; 7100) an den Hauptspeicher (1200; 2200; 3200; 4200; 6200; 7200) gemacht wurde, an den Host-Puffer-Adapter durch die CPU (1100; 2100; 3100; 4100; 6100; 7100); Abholen der Eingabe/Ausgabe-Anforderung durch Senden einer Frame-Information-Structure (FIS) an den Hauptspeicher (1200; 2200; 3200; 4200; 6200; 7200) als Antwort auf die Information bei der Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300), durch die CPU (1100; 2100; 3100; 4100; 6100; 7100), wobei die FIS der Eingabe/Ausgabe-Anforderung entspricht; Durchführen einer Datenübertragung zwischen dem Hauptspeicher (1200; 2200; 3200; 4200; 6200; 7200) und der Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300) durch die CPU (1100; 2100; 3100; 4100; 6100; 7100), wobei die Datenübertragung der Eingabe/Ausgabe-Anforderung entspricht, wobei die Datenübertragung gemäß der ersten Schnittstelle bei der Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300) gemacht wird; Erzeugen einer FIS-Sequenz gemäß der zweiten Schnittstelle durch die CPU (1100; 2100; 3100; 4100; 6100; 7100) nach der Datenübertragung; Erzeugen eines Interrupt bei der Speichervorrichtung (1300; 2300; 3300; 4300; 6300; 7300) durch die CPU (1100; 2100; 3100; 4100; 6100; 7100); und Abschließen der Eingabe/Ausgabe-Anforderung durch die CPU (1100; 2100; 3100; 4100; 6100; 7100) auf der Grundlage des Interrupt.
  9. Datenübertragungsverfahren nach Anspruch 8, wobei die erste Schnittstelle dazu konfiguriert ist, eine Vollduplex-Datenübertragung durchzuführen, und die zweite Schnittstelle dazu konfiguriert ist, eine Halbduplex-Datenübertragung durchzuführen.
  10. Speichervorrichtung (1300; 2300; 3300; 4300) mit: einer ersten Schnittstellenschaltung (1110; 2110; 3110; 4310), die dazu konfiguriert ist, Daten gemäß einer ersten Schnittstelle zu übertragen und zu empfangen; einem Host-Bus-Adapter (1320; 2320), der dazu konfiguriert ist, mit der ersten Schnittstellenschaltung (1110; 2110; 3110; 4110) gemäß der ersten Schnittstelle zu kommunizieren; einem Emulator (1330; 2330) einer zweiten Schnittstelle, der dazu konfiguriert ist, mit dem Host-Bus-Adapter (1320; 2320) gemäß einer zweiten Schnittstelle zu kommunizieren; einer Direktspeicherzugriffsschaltung (1340; 2340), die dazu konfiguriert ist, eine Datenübertragung mit einem externen Host-Speicher (1200; 2200; 3200; 4200) durchzuführen, die dazu konfiguriert ist, die Datenübertragung als eine Vollduplex-Datenübertragung von der ersten Schnittstelle durchzuführen, und die dazu konfiguriert ist, eine Frame-Information-Structure(FIS)-Sequenz nach der Datenübertragung gemäß der zweiten Schnittstelle zu erzeugen; mindestens einer nicht-flüchtigen Speichervorrichtung (1350; 2350), die zum Speichern von Daten konfiguriert ist; und einem Speicher-Controller (1360; 2360), der konfiguriert ist zum Steuern der zumindest einen nicht-flüchtigen Speichervorrichtung (1350; 2350) gemäß einer Eingabe/Ausgabe-Anforderung, wobei die Eingabe/Ausgabe-Anforderung von dem Emulator (1330; 2330) einer zweiten Schnittstelle abgegeben wird.
DE102013112894.7A 2012-11-26 2013-11-22 Speichervorrichtung, Computersystem mit derselben und dazugehöriges Verfahren zur Datenübertragung Pending DE102013112894A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0134589 2012-11-26
KR1020120134589A KR101988287B1 (ko) 2012-11-26 2012-11-26 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법

Publications (1)

Publication Number Publication Date
DE102013112894A1 true DE102013112894A1 (de) 2014-05-28

Family

ID=50514009

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013112894.7A Pending DE102013112894A1 (de) 2012-11-26 2013-11-22 Speichervorrichtung, Computersystem mit derselben und dazugehöriges Verfahren zur Datenübertragung

Country Status (6)

Country Link
US (1) US8990462B2 (de)
JP (1) JP6265706B2 (de)
KR (1) KR101988287B1 (de)
CN (1) CN103838687B (de)
DE (1) DE102013112894A1 (de)
NL (1) NL2011838B1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547472B2 (en) 2013-09-18 2017-01-17 HGST Netherlands B.V. ACK-less protocol for noticing completion of read requests
US9778859B2 (en) 2013-09-18 2017-10-03 Western Digital Technologies, Inc. Doorless protocol having multiple queue read requests in flight
US9535870B2 (en) 2013-09-18 2017-01-03 HGST Netherlands B.V. Acknowledgement-less protocol for solid state drive interface
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10042792B1 (en) * 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
TWI579762B (zh) * 2014-05-06 2017-04-21 瑞昱半導體股份有限公司 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統
WO2016020979A1 (ja) * 2014-08-05 2016-02-11 株式会社日立製作所 計算機システム及び仲介デバイス
US9880783B2 (en) 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
EP3374874A4 (de) * 2015-11-12 2019-07-17 Total Phase, Inc. Serieller vorrichtungsemulator mit verwendung von zwei speicherebenen mit dynamischer und konfigurierbarer antwort
TWI615770B (zh) * 2015-11-17 2018-02-21 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN113407244A (zh) 2016-03-01 2021-09-17 华为技术有限公司 一种级联板、ssd远程共享访问的系统和方法
KR20180043451A (ko) * 2016-10-19 2018-04-30 삼성전자주식회사 컴퓨팅 시스템 및 그것의 동작 방법
CN106909523B (zh) * 2017-02-24 2019-11-22 深圳市恒扬数据股份有限公司 大规模数据传输方法及系统
US11356636B2 (en) * 2018-01-19 2022-06-07 Caavo Inc Device identification and power state determination using media device information
CN110321063A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 数据处理方法及存储设备
CN109446015B (zh) * 2018-10-26 2022-05-27 北京计算机技术及应用研究所 一种NVMe原型仿真验证结构
KR20200054004A (ko) * 2018-11-09 2020-05-19 삼성전자주식회사 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법
US11176074B2 (en) 2019-10-22 2021-11-16 Via Labs, Inc. Chip and interface conversion device
TWI753541B (zh) * 2019-10-22 2022-01-21 威鋒電子股份有限公司 晶片及介面轉換裝置
US11782616B2 (en) 2021-04-06 2023-10-10 SK Hynix Inc. Storage system and method of operating the same
KR102555800B1 (ko) * 2021-04-06 2023-07-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그 동작 방법
CN113703683B (zh) * 2021-08-28 2022-05-13 江苏华存电子科技有限公司 一种单一的优化冗余存储系统的装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120134589A (ko) 2011-06-03 2012-12-12 이훈규 멀티미디어 콘텐츠 제작 시스템 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001022221A1 (en) * 1999-09-22 2001-03-29 Netcell Corp. Raid controller system and method with ata emulation host interface
US7284082B2 (en) * 2004-08-19 2007-10-16 Lsi Corporation Controller apparatus and method for improved data transfer
JP2006139548A (ja) 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのコマンド実行方法
JP2006164012A (ja) * 2004-12-09 2006-06-22 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのパワー・セーブ・モードの制御方法
CA2672100A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
US8225019B2 (en) * 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US8244937B2 (en) 2008-09-30 2012-08-14 Micron Technology, Inc. Solid state storage device controller with parallel operation mode
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8055816B2 (en) 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US8341338B2 (en) 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
US8352689B2 (en) * 2009-11-30 2013-01-08 Lsi Corporation Command tag checking in a multi-initiator media controller architecture
KR20100120518A (ko) 2009-05-06 2010-11-16 삼성전자주식회사 데이터 저장 장치 및 그것의 읽기 커멘드 처리 방법
US8131889B2 (en) 2009-11-10 2012-03-06 Apple Inc. Command queue for peripheral component
US20110296131A1 (en) 2010-05-31 2011-12-01 Samsung Electronics Co., Ltd Nonvolatile memory system and the operation method thereof
WO2012140670A2 (en) * 2011-04-11 2012-10-18 Ineda Systems Pvt. Ltd Multi-host sata controller
US8713204B2 (en) * 2011-12-27 2014-04-29 Apple Inc. High-performance AHCI interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120134589A (ko) 2011-06-03 2012-12-12 이훈규 멀티미디어 콘텐츠 제작 시스템 및 방법

Also Published As

Publication number Publication date
KR20140067404A (ko) 2014-06-05
NL2011838B1 (en) 2016-07-15
KR101988287B1 (ko) 2019-06-12
NL2011838A (en) 2014-05-27
US8990462B2 (en) 2015-03-24
CN103838687A (zh) 2014-06-04
CN103838687B (zh) 2018-10-19
US20140149607A1 (en) 2014-05-29
JP2014106977A (ja) 2014-06-09
JP6265706B2 (ja) 2018-01-24

Similar Documents

Publication Publication Date Title
DE102013112894A1 (de) Speichervorrichtung, Computersystem mit derselben und dazugehöriges Verfahren zur Datenübertragung
US9304938B2 (en) Storage device and data transferring method thereof
CN103150275B (zh) 掉电后重建闪存控制器中使用的元数据的方法及闪存装置
DE102009037984B4 (de) Speichereinheit für eine hierarchische Speicherarchitektur
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
CN108549610B (zh) 一种NVMe扩展的实现方法及固态硬盘
DE102015117066A1 (de) Verfahren zum Betreiben einer Datenspeichervorrichtung, mobile Rechenvorrichtung mit derselben und Verfahren der mobilen Rechenvorrichtung
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
CN105404596B (zh) 一种数据传输方法、装置及系统
DE102015005744A1 (de) SYSTEM UND VERFAHREN FÜR PEER-ZU-PEER-PCIe-SPEICHERTRANSFERS
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112011103208T5 (de) Hochgeschwindigkeits-Speichersystem
DE102016204283A1 (de) Datenspeichervorrichtungen, Datenverarbeitungssysteme, die diese aufweisen, Verfahren zum Betreiben und Verfahren zum Herstellen derselben.
DE112016000697T5 (de) Identifizieren von Plattenlaufwerken und Verarbeiten von Datenzugriffsanforderungen
DE102021114458A1 (de) Befehlsentleerung unter verwendung des host-speicherpuffers
DE112020005395T5 (de) Kapazitätserweiterung für speicher-untersysteme
CN108958642A (zh) 存储器系统及其操作方法
CN110377221A (zh) 双端口固态存储设备及其数据处理方法
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen
DE112020000124T5 (de) Ausführung von open-channel-vektorbefehlen
DE102010006148A1 (de) Verfahren zum Reagieren auf einen Befehl zum Löschen einer Datei und Datenspeichervorrichtung
DE102020115962A1 (de) Nvme-sgl-bit-bucket-übertragungen
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: KUHNEN & WACKER PATENT- UND RECHTSANWALTSBUERO, DE

R012 Request for examination validly filed