-
TECHNISCHER HINTERGRUND
-
Die Beschreibung bezieht sich auf ein Verfahren zum Betreiben eines Hosts und einer Speichervorrichtung, insbesondere auf eine Speichervorrichtung zum Koppeln mit einem Host und ein Verfahren zum Betreiben des Hosts und der Speichervorrichtung.
-
Eine nicht-flüchtige Speichervorrichtung kann darin gespeicherte Daten selbst dann erhalten, wenn die Betriebsspannung ausgeschaltet wird. Aktuell werden Speichervorrichtungen, wie eine eingebettete Multi-Media Karte (eMMC), ein universeller Flashspeicher (UFS), eine Festkörper-Festplatte (SSD) und eine Speicherkarte, die einen flashbasierten nicht-flüchtigen Speicher enthält, oft verwendet. Speichervorrichtungen sind zum Speichern oder zum Bewegen großer Datenmengen sehr nützlich.
-
Ein Datenverarbeitungssystem mit einer Speichervorrichtung wird als Speichersystem bezeichnet. Ein Speichersystem kann einen Host und eine Speichervorrichtung enthalten. Der Host und die Speichervorrichtung können über verschiedene Schnittstellenstandards miteinander verbunden sein und können durch das Verringern von einem Overhead von Datenverarbeitungsschritten, wie beispielsweise einem Lesevorgang und einem Schreibvorgang während der Kopplung, in Bezug auf die Datenverarbeitungsleistung verbessert werden.
-
ZUSAMMENFASSUNG
-
Die Beschreibung stellt ein Verfahren zum Betreiben eines Hosts und einer Speichervorrichtung bereit, um die Datenverarbeitungsleistung durch das Reduzieren eines Overheads an Datenverarbeitung zwischen dem Host und der Speichervorrichtung zu erhöhen.
-
Gemäß einem Aspekt der Beschreibung wird ein Verfahren zum Betreiben einer Speichervorrichtung bereitgestellt. Das Verfahren enthält das Empfangen eines ersten Pakets mit einer Pufferadresse, die den Ort des Datenpuffers, der aus einer Vielzahl an Datenpuffern in dem Host ausgewählt wurde, anzeigt, von einem Host. Die Pufferadresse wird aus dem ersten Paket zergliedert (parsed). In Antwort auf das erste Paket wird ein zweites Paket mit der Pufferadresse zu dem Host übertragen.
-
Gemäß einem weiteren Aspekt der Beschreibung wird eine Speichervorrichtung mit einem Speicherkern und einem Speichercontroller bereitgestellt. Der Speicherkern ist konfiguriert, um Daten in nicht-flüchtiger Art zu speichern. Der Speichercontroller ist konfiguriert, um außen mit einem Host zu koppeln, um Pufferadressen für eine Vielzahl an Datenpuffern in dem Host zu verwalten, um eine Pufferadresse, die den Ort wenigstens eines Datenpuffers in einem Paket anzeigt, und um das Paket zu dem Host zu übertragen, falls das Paket für eine Zugriffsanforderung für den wenigstens einen Datenpuffer vorgesehen ist. Gemäß einem weiteren Aspekt der Beschreibung wird ein Verfahren zum Betreiben eines Hosts bereitgestellt. Das Verfahren enthält das Empfangen eines ersten Pakets von einer Speichervorrichtung, wobei das erste Paket eine erste Pufferadresse, die den Ort eines Datenpuffers, der aus einer Vielzahl an Datenpuffern in dem Host ausgewählt wurde, anzeigt. Die erste Pufferadresse wird aus dem ersten Datenpaket zergliedert. Es wird auf Daten in einem Datenpuffer an einem Ort, der von der ersten Pufferadresse, die zergliedert wurde, angezeigt wird, zugegriffen.
-
Gemäß einem weiteren Aspekt der Beschreibung wird ein Verfahren bereitgestellt, das von einem Host zur Kommunikation mit einer nicht-flüchtigen Speichervorrichtung ausgeführt wird. Das Verfahren umfasst das Empfangen eines ersten Pakets mit erster Information zum Identifizieren einer ersten Adresse in einem Datenpuffer von der nicht-flüchtigen Speichervorrichtung. In Antwort auf das Empfangen des ersten Datenpakets wird unter Verwendung der ersten Information auf die erste Adresse zugegriffen.
-
Figurenliste
-
Ausführungsformen der Beschreibung lassen sich aus der folgenden detaillierten Beschreibung zusammen mit den begleitenden Figuren leichter verstehen, in welchen:
- 1 ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer Ausführungsform der Beschreibung ist;
- 2 ein Blockdiagramm eines Hosts aus 1 gemäß einer Ausführungsform der Beschreibung ist;
- 3 ein Blockdiagramm eines Speichercontrollers aus 1 gemäß einer Ausführungsform der Beschreibung ist;
- 4 ein Blockdiagramm eines Speichersystems, das eine Universal-Flash-Speicherschnittstelle (UFS) gemäß einer Ausführungsform der Beschreibung verwendet, ist;
- 5 und 6 Ablaufdiagramme eines Verfahrens zum Betreiben eines Hosts gemäß einer Ausführungsform der Beschreibung ist;
- 7 ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform der Beschreibung ist;
- 8 und 9A und 9B Blockdiagramme verschiedener Arten von Informationen, die in einem Hostspeicher und einem Register in einem Hostcontroller gespeichert sind, gemäß einer Ausführungsform der Beschreibung ist;
- 10 und 11A und 11B Diagramme eines Datenlesevorgangs und Pakete in einer UFS-Schnittstelle gemäß einer Ausführungsform der Beschreibung darstellen;
- 12 und 13 Diagramme eines Datenschreibvorgangs und Pakete in der UFS-Schnittstelle gemäß einer Ausführungsform der Beschreibung darstellen;
- 14 ein Diagramm eines Beispiels darstellt, in dem eine Ausführungsform der Beschreibung auf verschiedene Pakettypen, die in der UFS-Schnittstelle definiert sind, angewandt werden;
- 15 zeigt ein Blockdiagramm eines Speichercontrollers, der eine Pufferadresse verwaltet, gemäß einer Ausführungsform der Beschreibung;
- 16 zeigt ein Ablaufdiagramm eines Verfahrens zum Betreiben des in 15 dargestellten Speichercontrollers gemäß einer Ausführungsform der Beschreibung;
- 17A bis 17C zeigen Blockdiagramme eines Betriebs eines Speichersystems, wenn eine Vielzahl an Fertig-zum-Übertragen (ready-to-transfer RTT) UFS Protokollinformationseinheiten (UPIUs) in Antwort auf einen einzelnen Befehl UPIU übertragen werden;
- 18(a) und 18(b) Diagramme von Strukturen eines Pakets zeigen gemäß einiger Ausführungsformen der Beschreibung; und
- 19 bis 25 Diagramme verschiedener Strukturen eines Pakets, das gemäß einiger Ausführungsformen der Beschreibung erzeugt wurde.
-
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
1 zeigt ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer Ausführungsform der Beschreibung.
-
Ein Datenverarbeitungssystem 10 kann einen Host 100 und eine Speichervorrichtung 200 enthalten. Die Speichervorrichtung 200 kann einen Speichercontroller 210 und einen Speicherkern 220 enthalten. Wenn die Speichervorrichtung 200 Daten auf nicht-flüchtige Art speichert, kann der Speicherkern 220 einen nicht-flüchtigen Speicher (NVM) Kern enthalten. Der Host 100 kann einen Hostcontroller 110 und eine Hostspeicher 120 enthalten. Der Hostspeicher 120 kann ein Puffergebiet 121 enthalten.
-
Das Datenverarbeitungssystem (oder Speichersystem) 10 kann als Personal Computer (PC), als Datenserver, als network-attached Speicher (NAS), als Internet of Things (IoT) oder als tragbare elektronische Vorrichtung ausgebildet sein. Die tragbare elektronische Vorrichtung kann ein Laptop Computer, ein Mobiltelefon, ein Smartphone, ein Tablet PC, ein persönlicher digitaler Assistent (PDA), ein firmendigitaler Assistent (EDA), eine digitale Fotokamera, eine digitale Videokamera, eine Audiovorrichtung, ein tragbarer Multimedia-Abspieler (PMP), eine persönliche Navigationsvorrichtung (PND), ein MP3-Spieler, eine tragbare Spielekonsole, ein e-Book oder eine tragbare Vorrichtung sein.
-
Die Speichervorrichtung 200 kann Speichermedien enthalten, die Daten auf eine Anforderung von dem Host 100 hin speichern. Beispielsweise kann die Speichervorrichtung 200 wenigstens eine Festkörperfestplatte (SSD) enthalten. Falls die Speichervorrichtung 200 eine SSD enthält, kann die Speichervorrichtung 200 eine Vielzahl an Flash-Speicherchips (z. B. NAND Speicherchips) enthalten, die Speicher in nicht-flüchtiger Art speichern.
-
Alternativ dazu kann die Speichervorrichtung 200 eine Flash-Speichervorrichtung mit wenigstens einem Flash-Speicherchip sein. Gemäß einiger Ausführungsformen kann die Speichervorrichtung 200 ein embedded Speicher in dem Speichersystem 10 sein. Beispielsweise kann die Speichervorrichtung 200 eine embedded Multi-Media Karte (eMMC) oder eine embedded universelle Flash-Speicher (UFS) Speichervorrichtung sein. Gemäß einiger Ausführungsformen kann die Speichervorrichtung 200 ein externer Speicher sein, der an das Speichersystem 10 anschließbar oder entnehmbar ist. Beispielsweise kann die Speichervorrichtung 200 eine UFS-Speicherkarte, eine Kompakt-Flash (CF) Karte, eine sichere digitale (SD) Karte, eine Micro-SD Karte, eine Mini-SD Karte, eine extreme digitale (xD) Karte oder ein Speicherstick sein.
-
Wenn die Speichervorrichtung 200 Flash-Speicher enthält, kann der Flash-Speicher ein zweidimensionales (2D) NAND-Speicherfeld oder ein dreidimensionales (3D) (oder vertikales NAND (VNAND)) Speicherfeld enthalten. Ein 3D Speicherfeld kann monolithisch ausgebildet sein und wenigstens ein physikalisches Niveau an Speicherzellfeldern enthalten, die ein aktives Gebiet auf einem Siliziumsubstrat oder auf einem Schaltkreis, der in dem Betrieb der Speicherzellen eingebunden ist und auf oder in dem Substrat ausgebildet ist, enthalten. Der Ausdruck „monolithisch“ bedeutet, dass Schichten von jedem Niveau eines Feldes direkt auf den Schichten eines darunter liegenden Niveaus des Feldes direkt angeordnet sind. In einigen Ausführungsformen der Beschreibung enthält das 3D Speicherfeld vertikale NAND Ketten, die in einer vertikalen Richtung angeordnet sind, so dass wenigstens eine Speicherzelle auf einer anderen Speicherzelle angeordnet ist. Die wenigstens eine Speicherzelle kann eine Ladungseinfangschicht enthalten.
-
Strukturen eines 3D Speicherfeldes, in dem das 3D Speicherfeld eine Vielzahl an Niveaus und Wortleitungen und/oder Bitleitungen, die von den Niveaus geteilt werden, enthalten, sind in der
US Patentveröffentlichung Nr. 7,679,133 ,
US Patentveröffentlichung Nr. 8,553,466 ,
US Patentveröffentlichung Nr. 8,654,587 ,
US Patentveröffentlichung Nr. 8,559,235 und
US Patentanmeldung Nr. 2011/0233648 , deren Beschreibungen hier durch Bezugnahme integriert werden, offenbart.
-
In einem anderen Beispiel enthält die Speichervorrichtung 200 verschiedene Arten eines nicht-flüchtigen Speichers. Die Speichervorrichtung 200 kann einen magnetischen Zufallszugriffspeicher (MRAM), einen Spin-Übertragungsmoment MRAM, leitendes Überbrücken RAM (conductive bridging RAM (CBRAM)), ferroelektrisches RAM (FeRAM), Phasen RAM (PRAM), resistives RAM und andere verschiedene Arten eines Speichers verwenden. Der Host 100 kann mit der Speichervorrichtung 200 unter Verwendung verschiedener Arten an Schnittstellen kommunizieren. Beispielsweise kann der Host 100 mit der Speichervorrichtung 200 unter Verwendung einer Standardschnittstelle, wie beispielsweise Universal Flash-Speicher (UFS), serial advanced technology attachment (SATA), small computer small interface (SCSI), serial attached SCSI (SAS) oder eMMC verbunden werden. Der Host 100 und die Speichervorrichtung 200 können ein Paket gemäß einem von den aktuell verwendeten Schnittstellen erzeugen und übertragen. 1 zeigt ein erstes Paket Paket_H, das in dem Host 100 erzeugt wurde und das zur Speichervorrichtung 200 übertragen wurde und ein zweites Paket Paket_S, das in der Speichervorrichtung 200 erzeugt und zu dem Host 100 übertragen wurde.
-
Der Hostcontroller 110 kann eine Hostcontrollerschnittstelle (nicht gezeigt) enthalten. Die Hostcontrollerschnittstelle kann den Vorgang zum Speichern von Daten (z. B. Schreibdaten) auf das Puffergebiet 121 in dem Speicherkern 220 oder das Speichern von Daten (z. B. Lesedaten) von dem Speicherkern 220 in das Puffergebiet 121 steuern. Der Speichercontroller 210 kann eine Gerätecontrollerschnittstelle (nicht gezeigt) als Schnittstelle mit dem Hostcontroller 110 enthalten.
-
Der Hostcontroller 110 und der Hostspeicher 120 können in separaten Halbleiterchips entsprechend implementiert sein. Alternativ dazu kann der Hostcontroller 110 und der Hostspeicher 120 in einem Halbleiterchip integriert sein. Der Hostcontroller 110 kann als einer einer Vielzahl an Modulen in einem Anwendungsprozessor enthalten sein. Der Anwendungsprozessor kann als ein system on chip (SoC) implementiert sein. Der Hostspeicher 120 kann ein embedded Speicher in dem Anwendungsprozessor oder einer Speichervorrichtung oder einem Modul, das außerhalb des Anwendungsprozessors angeordnet ist, angeordnet sein.
-
Der Host 100 kann auch verschiedene Vorrichtungen, die in dem Betrieb der Speichervorrichtung 200 eingebunden sind, enthalten. Beispielsweise können ein Softwaremodul (nicht gezeigt) und eine Hostanwendung oder ein Vorrichtungstreiber in dem Host 100 enthalten sein. Das Softwaremodul kann in den Hostspeicher 120 geladen werden und von einem Prozessor (nicht gezeigt) ausgeführt werden.
-
Das Puffergebiet 121 des Hostspeichers 120 kann eine Vielzahl an Datenpuffern enthalten. Die Datenpuffer können über eine Pufferadresse ADD_Buf erreicht werden. Beispielsweise können Schreibdaten in einem Datenpuffer gespeichert werden und können von dem Datenpuffer zur Speichervorrichtung 200 basierend auf der Steuerung des Hostcontrollers 110 übertragen werden. Außerdem können Schreibdaten von der Speichervorrichtung 200 unter der Steuerung des Hostcontrollers 110 in einem Datenpuffer gespeichert werden.
-
Der Hostcontroller 110 kann die Pufferadresse ADD_Buf, die den Ort eines Datenpuffers in dem ersten Paket Paket_H aus einer Vielzahl von Datenpuffern infolge einer Anforderung ausgewählt wurde. Beispielsweise, wenn das erste Paket Paket_H, das ein Datenschreiben fordert, kann der Hostcontroller 110 das erste Paket Paket_H erzeugen, das die Pufferadresse ADD_Buf, die den Ort eines Datenpuffers, in dem die Schreibdaten gespeichert sind, enthält, erzeugen, und kann das erste Paket Paket_H an die Speichervorrichtung 200 übertragen.
-
Wenn das erste Paket Paket_H, das ein Datenlesen fordert, erzeugt wurde, erzeugt der Hostcontroller 110 das erste Paket Paket_H, das die Pufferadresse ADD_Buf enthält, und das den Ort des Datenpuffers enthält, in dem die Lesedaten gespeichert werden.
-
Der Speichercontroller 210 kann die Pufferadresse ADD_Buf und einen Befehl, der von dem ersten Paket Paket_H abgeteilt wurde, speichern und steuern. Wenn das zweite Paket Paket_S in Antwort auf das erste Paket Paket_H erzeugt wird, kann der Speichercontroller 210 die Pufferadresse ADD_Buf, die in der Speichervorrichtung 200 gespeichert und gesteuert wurde, in dem zweiten Paket Paket_S enthalten.
-
Der Host 100 kann das zweite Paket Paket_S, das die Pufferadresse ADD_Buf enthält, von dem Speichercontroller 210 empfangen und kann das Puffergebiet 121 unter Verwendung der Pufferadresse ADD_Buf, die von dem zweiten Paket Paket_S abgeteilt wurde, ansteuern. Mit anderen Worten muss der Host 100 nicht auf andere Gebiete zugreifen, um relevante Information zu prüfen, um einen Ort eines Datenpuffers zu ermitteln, sondern kann gleich auf einen Datenpuffer entsprechend der Pufferadresse ADD_Buf, die von dem zweiten Paket Paket_S abgeteilt wurde, zugreifen.
-
Gemäß der oben beschriebenen Ausführungsformen sind weitere Zugriffsvorgänge auf den Hostspeicher 120 nicht notwendig, um einen Ort eines Datenpuffers festzustellen, und daher kann die Frequenz, mit der der Hostcontroller 110 auf den Hostspeicher 120 zugreift, verringert werden. Üblicherweise ist beispielsweise eine Pufferadresse separat in einem Gebiet in dem Hostspeicher 120 gespeichert und es muss ein separater Zugriff, z. B. ein Vorgang zum Lesen der Pufferadresse, um den Ort eines Datenpuffers zu ermitteln, in dem die Schreibdaten gespeichert sind oder die Lesedaten gespeichert werden sollen, durchgeführt werden.
-
Gemäß der Ausführungsformen der vorliegenden Beschreibung jedoch kann der Datenpuffer direkt angesprochen werden, ohne einen separaten Zugriffsvorgang. Als Ergebnis kann der Overhead eines Datenverarbeitungsvorgangs verringert werden, so dass die Datenverarbeitungsleistung erhöht wird.
-
2 zeigt ein Blockdiagramm des Hosts 100 aus 1 gemäß einer Ausführungsform der Beschreibung. 2 zeigt einen Anwendungsprozessor (AP) mit einem Hostcontroller.
-
Bezug nehmend auf 2 enthält der Host 100 den AP und den Hostspeicher 120. Der AP enthält wenigstens ein Modul als ein geistiges Eigentum (intellectual property - IP). Beispielsweise kann der AP den Hostcontroller 110, einen Prozessor 130, ein Modem 140, eine Kameraschnittstelle (I/F) 150, eine Anzeige I/F 160, eine Speichersteuereinheit 171 und einen embedded Speicher 172 enthalten.
-
Obwohl es in 2 dargestellt ist, dass der Hostspeicher 120 ein externer Speicher des AP ist, ist die Offenbarung nicht hierauf begrenzt. Beispielsweise kann der embedded Speicher 172 des AP als Hostspeicher verwendet werden. Die in 2 dargestellten Elemente sind lediglich Beispiele und der AP könnte auch andere als die in 2 gezeigten Elemente enthalten oder einige der in 2 dargestellte Elemente können auch nicht in dem AP enthalten sein.
-
Der Prozessor 130 kann alle Vorgänge des AP steuern. Beispielsweise die Software (z. B. ein AP und ein Gerätetreiber) zum Steuern eines Datenschreibe/Lesevorgangs einer Speichervorrichtung 200 kann in den Hostspeicher 120 oder den embedded Speicher 172 geladen werden, und der Prozessor 130 kann den Datenschreibe/Lesevorgang durch Ausführen der Software steuern. Der Hostspeicher 120 kann als flüchtiger Speicher oder nicht-flüchtiger Speicher implementiert werden. In einigen Ausführungsformen kann der Speicher 120 flüchtigen Speicher als dynamischen RAM (DRAM) und/oder statisches RAM (SRAM) enthalten.
-
Der AP kann einen Kamerasteuervorgang, einen Anzeigesteuervorgang und einen Modemvorgang durchführen. Da das Modem 140 in dem AP enthalten ist, kann das AP als ModAP bezeichnet werden.
-
Der Hostcontroller 110 kann ein Paket mit der Pufferadresse ADD_Buf wie oben beschrieben zu oder von der Speichervorrichtung 200 übertragen oder empfangen. Der Hostcontroller 110 kann ein Register 111 enthalten, das wenigstens eine Übertragungsanforderung speichert. In einem Schreibvorgang und/oder einen Lesevorgang auf der Speichervorrichtung 200 involvierte Übertragungsanforderungen können in dem Register 111 basierend auf der Steuerung des Prozessors 130 gespeichert werden. Verschiedene Arten von Information, die verwendet werden, um ein Paket entsprechend den Übertragungsanforderungen zu erzeugen, können in dem Hostspeicher 120 basierend auf der Steuerung des Prozessors 130 gespeichert werden. Beispielsweise kann Tabelleninformation, die Information über den Pakettyp und die Pufferadresse ADD_Buf enthält, in dem Hostspeicher 120 gespeichert werden. Im Fall einer Datenschreibeanforderung können die Schreibedaten in einer Vielzahl an Datenpuffern in dem Hostspeicher 120 basierend auf der Steuerung des Prozessors 130 gespeichert werden. Der Hostcontroller 110 kann die in dem Register 111 gespeicherten Übertragungsanforderungen prüfen und basierend auf den Übertragungsanforderungen eine Verbindung mit der Speichervorrichtung 200 herstellen.
-
Wie oben beschrieben kann der Hostcontroller 110 ein Paket mit der Pufferadresse ADD_Buf von der Speichervorrichtung 200 enthalten und kann die Pufferadresse ADD_Buf von dem Paket abtrennen und kann gemäß der Pufferadresse ADD_Buf einen Ort des Datenpuffers ermitteln. Beispielsweise kann der Hostcontroller 110 eine niedrigere Zugriffspriorität auf den Hostspeicher 120 haben als die anderen Module in dem AP. In diesem Fall ist die Latenz für den Zugriff des Hostcontrollers 110 auf den Hostspeicher 120 hoch. Die Frequenz, mit der der Hostcontroller 110 auf den Hostspeicher 120 zugreift, kann gemäß einiger Ausführungsformen der Beschreibung verringert werden und eine Zunahme des Overheads der Datenverarbeitungsvorgänge kann vermieden werden.
-
3 zeigt ein Blockdiagramm eines Speichercontrollers 210 aus 1 gemäß einer Ausführungsform der Beschreibung.
-
Bezug nehmend auf 1 und 3 kann der Speichercontroller 210 eine zentrale Verarbeitungseinheit (CPU) 211 als Prozessor, einen Host I/F 212 und einen Speicher I/F 213 enthalten. Der Speichercontroller 210 kann ebenso eine Flash-Übersetzungsschicht (FTL) 214, einen Paketmanager 215 und einen Puffermanager 216 enthalten. Der Speichercontroller 210 kann auch einen Arbeitsspeicher (nicht gezeigt) enthalten, in den das FTL 214 geladen ist und wenn die CPU 211 das FTL 214 ausführt, können Datenschreibe- und Datenlesevorgänge auf dem Speicherkern 220 gesteuert werden.
-
Der Host I/F 212 kann ein Paket zu oder von dem Host 100 übertragen oder empfangen. Wie oben beschrieben kann das in dem Host I/F 212 übertragene oder empfangene Paket die Pufferadresse ADD_Buf enthalten, die einen Ort eines Datenpuffers in dem Pufferbereich 121 in dem Host 100 anzeigt. Der Speicher I/F 213 kann einen Vorgang zum Schreiben oder Lesen von Daten durch die Kommunikation mit dem Speicherkern 220 durchführen.
-
Der Paketmanager 215 kann ein Paket, das mit dem Protokoll der Schnittstelle zwischen dem Paketmanager 215 und dem Host 100 übereinstimmt erzeugen und kann verschiedene Arten von Informationen von dem Paket abteilen. Der Puffermanager 216 kann den Vorgang zum Speichern verschiedener Arten an Informationen, die von dem Paket in einen Puffer 230 abgeteilt wurden, steuern. Beispielsweise kann der Puffermanager 216 den Vorgang zum Speichern eines Befehls CMD und der Pufferadresse ADD_Buf, die von dem Paket abgetrennt wurden, steuern. Der Puffermanager 216 kann auch einen Vorgang zum Speichern von Schreibedaten, die von dem Paket in dem Puffer 230 abgetrennt wurden, und einen Vorgang zum Speichern von Lesedaten von dem Speicherkern 220 in dem Puffer 230 steuern. Der Puffer 230 kann in dem Speichercontroller 210 enthalten sein oder kann außerhalb des Speichercontrollers 210 angeordnet sein. Obwohl die Pufferadresse ADD_Buf und die in einem Puffer in der in 3 dargestellten Ausführungsform gespeichert sind, können die Pufferadresse ADD_Buf und die Daten entsprechend in getrennten Speicherschaltkreisen gespeichert werden.
-
Wenn, wie oben beschrieben, die Speichervorrichtung 200 ein Paket erzeugt, das zu dem Host 100 zu übertragen ist, kann die Speichervorrichtung 200 die Pufferadresse ADD_Buf von dem Puffer 230 lesen und kann die Pufferadresse ADD Buf in dem zu dem Host 100 zu übermittelnden Paket enthalten.
-
Beispielsweise können in einem Datenschreibevorgang ein Schreibebefehl und eine entsprechende erste Pufferadresse von einem von dem Host empfangenen Paket abgetrennt werden und die erste Pufferadresse kann in dem Puffer 230 der Speichervorrichtung 200 gespeichert werden. Die Speichervorrichtung 200 kann ein Paket erzeugen, das infolge des Schreibbefehls anfordert, die Schreibedaten in einer vorher festgelegten Größeneinheit zu übertragen. Zu diesem Zeitpunkt kann die erste Pufferadresse entsprechend dem Schreibbefehl in dem Paket enthalten sein und der Host 100 kann auf die erste Pufferadresse in dem Paket verweisen und die in einem Datenpuffer an einem Ort, der durch die erste Pufferadresse angegeben ist, in die Speichervorrichtung 200 übertragen.
-
Ähnlich kann in einem Datenlesevorgang ein Lesebefehl und eine zweite entsprechende Pufferadresse von einem von dem Host 100 empfangenen Paket abgetrennt werden und die zweite Pufferadresse kann in dem Puffer 230 der Speichervorrichtung 200 gespeichert werden. Die Speichervorrichtung 200 kann infolge des Lesebefehls ein Paket mit den Lesedaten erzeugen. Die zweite Pufferadresse, die dem Lesebefehl entspricht, kann in dem Paket enthalten sein. Der Host 100 kann auf die zweite Pufferadresse in dem Paket verweisen und die Lesedaten in einem Datenpuffer an einem Ort der durch die zweite Pufferadresse angezeigt ist speichern.
-
4 zeigt ein Blockdiagramm eines Speichersystems, das die UFS Schnittstelle gemäß einer Ausführungsform der Beschreibung verwendet.
-
Bezug nehmend auf 4 können ein UFS Host und eine UFS Speichervorrichtung gemäß einer UFS Schnittstelle in einem Speichersystem 300 kommunizieren. Der UFS Host kann ein Softwaremodul 310 und ein Hardwaremodul, das einen UFS Hostcontroller 320 und einen Hostspeicher 330 enthält, umfassen. Das Softwaremodul 310 kann Anwendungssoftware und einen UFS Hostcontrollertreiber enthalten. Die Anwendungssoftware kann aus verschiedenen Anwendungsprogrammen bestehen, die in dem UFS Host ausgeführt werden. Der UFS Hostcontrollertreiber wird verwendet, um die mit dem UFS Host verbundenen Peripheriegeräte zu steuern. Datenverwaltungsvorgänge wie Datenschreibe- und -lesevorgänge auf der Speichervorrichtung können durch das Ausführen des UFS Hostcontrollertreibers durchgeführt werden. Die Anwendungssoftware und der UFS Hostcontrollertreiber können in dem in 4 dargestellten Hostspeicher 330 oder in einem anderen Arbeitsspeicher in dem UFS Host geladen werden und können von einem Prozessor ausgeführt werden.
-
Der UFS Hostcontroller 320 kann eine UFS Hostcontrollerschnittstelle, eine UFS Transportprotokoll (UTP) Maschine und eine UFS Verbindungsschicht enthalten. Die UFS Hostcontrollerschnittstelle kann eine unter Verwendung des UFS Hostcontrollertreibers erzeugte Anforderung empfangen und die Anforderung an die UCP Maschine übertragen. Die UFS Hostcontrollerschnittstelle kann auch ein Datenzugriffsergebnis von der UTP Maschine an den UFS Hostcontrollertreiber übermitteln. Die UTP Maschine kann Dienste für eine obere Schicht (oder Anwendungsschicht) bereitstellen. Die UTP Maschine kann ein Paket erzeugen oder ein Paket freigeben und Information darin zergliedern (parsen).
-
Die UFS Verbindungsschicht kann mit einer UFS Speichervorrichtung 340 kommunizieren. Die UFS Verbindungsschicht kann eine Linkschicht und eine physikalische (PHY) Schicht enthalten. Die Linkschicht kann mobile industry processor interface (MIPI) UniPro sein und die PHY Schicht kann MIPI M-PHY sein. Der UFS Host kann eine Referenztakt RefClock und ein Resetsignal Reset für die UFS Speichervorrichtung 340 gemäß der UFS Schnittstelle sein.
-
Die UFS Speichervorrichtung 340 kann einen Speichercontroller und einen Speicherkern enthalten. In der in 4 dargestellten Ausführungsform kann der Speichercontroller eine UFS Verbindungsschicht, eine UTP Maschine und einen UFS Speichervorrichtungsschnittstelle enthalten. Der Speicherkern kann der Kern mit einem nicht-flüchtigen Speicher, z. B. ein NVM Kern sein.
-
In der Struktur, in der der UFS Hostcontroller 320 mit der UFS Speichervorrichtung 340 kommuniziert, kann das Übertragen oder Empfangen von Daten gemäß einer Anforderung von dem UFS Hostcontrollertreiber durch die UFS Hostcontrollerschnittstelle durchgeführt werden. In einem Datenschreibevorgang zum Beispiel kann das Softwaremodul 310 Schreibedaten in einem Datenpuffer des Hostspeichers 230 speichern, die UFS Hostcontrollerschnittstelle kann auf den Datenpuffer des Hostspeichers 230 zugreifen und die so erhaltenen Schreibedaten können zur UFS Speichervorrichtung 340 übertragen werden.
-
Gemäß einer Ausführungsform der Beschreibung kann eine Pufferadresse, die den Ort eines Datenpuffers in dem Hostspeicher 330 anzeigt, in dem ersten Paket Paket_H, das von dem UFS Host zu der UFS Speichervorrichtung 340 übertragen wurde und/oder dem zweiten Paket Paket_S, das von der UFS Speichervorrichtung 340 zu dem UFS Host übertragen wurde, enthalten sein. Die Pufferadresse kann einer physikalischen Adresse entsprechen, die den Ort des Datenpuffers anzeigt. Tabelleninformation (z. B. eine physical region description table (PRDT)) mit den Pufferadressen kann in einem bestimmten Gebiet in dem Hostspeicher 330 gespeichert werden. Die UTP Maschine des UFS Hosts kann eine Pufferadresse basierend auf der PRDT ermitteln und das erste Paket Paket_H mit der Pufferadresse erzeugen. Die UTP Maschine der UFS Speichervorrichtung 340 kann das zweite Paket Paket_S mit einer Pufferadresse, die in der UFS Speichervorrichtung 340 gespeichert und gesteuert wird, erzeugen.
-
Der USF Hostcontroller 320 kann mit der UFS Speichervorrichtung 340 mittels anschluss-zugeordnetem Eingang/Ausgang (input/output I/O) verbunden werden. Schreibe- und Lesevorgänge können in dem Multi-Task-Modus durchgeführt werden. Demgemäß kann die UFS Speichervorrichtung 340 eine Vielzahl an Befehlen, die von einer Vielzahl von Paketen und Pufferadressen entsprechend der Befehle abgetrennt wurden, speichern und steuern.
-
Da die UFS Schnittstelle verwendet wird, können verschiedene Pakettypen definiert werden und Ausführungsformen der Beschreibung können auf wenigstens einige dieser Pakete angewandt werden. Zum Beispiel kann ein Paket, das mit der UFS Schnittstelle übereinstimmt, als UFS Protokollinformationseinheit (UPIU) definiert werden. Verschiedene Pakettypen können einen Befehl UPIU zum Anfordern des Schreibens oder Lesens, einer Antwort UPIU, einer data in UPIU mit Lesedaten, einer data out UPIU mit Schreibdaten, eine Tasksteuer (task management TM) Anforderungs UPIU und eine ready-to-transfer (RTT) UPIU enthalten.
-
Gemäß einiger Ausführungsformen der Offenbarung kann die oben beschriebene Pufferadresse in wenigsten einigen der Pakettypen aus den verschiedenen in der UFS Schnittstelle definierten Pakettypen enthalten sein. Zum Beispiel kann die Pufferadresse in einer Paketanforderung, um auf einen Datenpuffer des Hostspeichers 330 zuzugreifen, enthalten sein.
-
Im Folgenden werden die Vorgänge einer Schnittstelle zwischen einem Host und einer Speichervorrichtung gemäß einiger Ausführungsformen der Beschreibung im Detail beschrieben. Obwohl der Host und die Speichervorrichtung die UFS Schnittstelle in diesen Ausführungsformen verwenden, können die Ausführungsformen auch auf andere Schnittstellenarten als die UFS Schnittstelle angewandt werden.
-
5 und 6 zeigen Flussdiagramme eines Verfahrens zum Betreiben eines Hosts gemäß einer Ausführungsform der Beschreibung. 5 zeigt ein Beispiel, bei dem der Host ein Paket überträgt. 6 zeigt ein Beispiel, bei dem der Host ein Paket empfängt.
-
Bezug nehmend auf 5 enthält der Host einen Hostcontroller und verschiedene Arten an Information, die unter Verwendung eines Softwaremoduls in dem Host erzeugt werden, können in einem Hostspeicher gespeichert werden. Beispielsweise kann wenigstens eine Übertragungsanforderung in einem Register in dem Hostcontroller gespeichert werden und ein Übertragungsanforderungsbeschreiber entsprechend der Übertragungsanforderung kann in einem bestimmten Gebiet (z. B. einem Beschreibergebiet) in dem Hostspeicher gespeichert werden. Der Übertragungsanforderungsbeschreiber kann verwendet werden, um eine Antwort UPIU und eine Befehls UPIU, die zusammen mit der PRDT Information verwendet wird, erzeugt werden. Paket-bezogene Information wie beispielsweise ein Befehl UPIU oder eine Antwort UPIU und eine PRDT Information kann in einem anderen Gebiet in dem Hostspeicher gespeichert werden. Die PRDT Information kann eine Pufferadresse enthalten, die den Ort eines Datenpuffers anzeigt, in welchem Schreibdaten oder Lesedaten gespeichert werden. Die in dem Hostspeicher gespeicherte Paket-bezogene Information wird als Befehls UPIU Information oder Antwort UPIU Information oder Antwort UPIU Information bezeichnet.
-
Wenn ein Hostcontroller Schnittstellenvorgang zu Datenübertragung/-empfang startet, überprüft der Hostcontroller einen Übertragungsanforderungsbeschreiber, der dem in dem Register gespeicherten Übertragungsanforderung entspricht, im Vorgang S11 in dem Hostspeicher. Der Hostcontroller kann die Befehls UPIU Information für eine Datenschreibanforderung und eine PRDT Information, die im Ablauf S12 den Übertragungsanforderungsbeschreiber verwendet, überprüfen. Der Hostcontroller kann ein Paket erzeugen, das eine Pufferadresse (z. B. eine physikalische Adresse) enthält, die den Ort eines Datenpuffers, in dem Schreibdaten gespeichert sind, anzeigt, und die PRDT Information im Ablauf S13 verwendet und das Paket an eine Speichervorrichtung im Ablauf S14 übermittelt.
-
Bezug nehmend auf 6 kann der Host ein Paket von einer Speichervorrichtung im Schritt S21 empfangen. Das Paket kann von dem Hostcontroller in dem Host bereitgestellt werden. Der Hostcontroller kann verschiedene Arten an Information aus dem Paket zerlegen. Wie oben beschrieben kann die Speichervorrichtung einen Befehl und eine Pufferadresse entsprechend dem Befehl speichern und managen, wobei diese von dem Host übertragen wurden, und die Pufferadresse kann an wenigsten einen der verschiedenen Pakettypen von der Speichervorrichtung übertragen werden.
-
Der Hostcontroller kann im Schritt S22 eine Pufferadresse von dem Paket zergliedern. Der Hostcontroller kann auch auf einen Datenpuffer in dem Hostspeicher unter Verwendung der Pufferadresse im Schritt S23 zugreifen. Wenn das Paket einem RTT UPIU entspricht, der die Übertragung von Schreibdaten fordert, kann der Hostcontroller die in dem Datenpuffer an einem Ort, der der Pufferadresse entspricht, die Schreibdaten zur Speichervorrichtung übertragen ohne extra die in dem Hostspeicher gespeicherte PRDT Information zu prüfen. Wenn das Paket data_in UPIU mit Lesedaten entspricht, kann der Hostcontroller die Lesedaten in dem Paket in dem Datenpuffer an einem Ort, der der Pufferadresse entspricht, speichern ohne extra die PRDT Information, die in dem Hostspeicher gespeichert ist, zu prüfen.
-
7 zeigt ein Flussdiagramm eines Verfahrens zum Betreiben einer Speichervorrichtung gemäß einer Ausführungsform der Beschreibung.
-
Die Speichervorrichtung kann ein erstes Paket im Schritt S31 von einem Host empfangen. Das erste Paket kann einem Befehl UPIU entsprechen. Der Befehl UPIU kann einem Befehl für einen Datenzugriff, wie beispielsweise Datenschreiben oder Datenlesen, entsprechen. Wie oben beschrieben kann das erste Paket eine Pufferadresse enthalten, die den Ort eines Datenpuffers zeigt, in dem die Schreibdaten gespeichert sind oder die Lesedaten zu speichern sind. Die Speichervorrichtung kann die Pufferadresse von dem ersten Paket im Schritt S32 zergliedern und kann den Befehl in dem ersten Paket und in die Pufferadresse in der internen Speichereinheit (z. B. eine Befehlsfolge und eine Adressfolge) im Schritt S33 speichern und verwalten.
-
Die Speichervorrichtung kann ein zweites Paket in Antwort auf das erste Paket erzeugen und das zweite Paket zu dem Host übermitteln. Die Pufferadresse, die aus dem ersten Paket zergliedert wurde, kann in dem zweiten Paket, das in Antwort auf das erste Paket erzeugt wurde, im Schritt S34 enthalten sein. Beispielsweise kann während des Datenschreibvorgangs die Speichervorrichtung als das zweite Paket ein RTT UPIU erzeugen, der anzeigt, dass die Speichervorrichtung bereit ist, um Schreibdaten zu empfangen und die Pufferadresse kann in dem RTT UPIU enthalten sein. Während eines Datenlesevorgangs kann die Speichervorrichtung als zweites Paket ein data_in UPIU erzeugen, der Lesedaten enthält und die Pufferadresse kann in den data_in UPIU enthalten sein. Die Speichervorrichtung kann das zweite Paket mit der Pufferadresse im Schritt S35 zu dem Host übertragen.
-
Die 8 und 9A und 9B zeigen Blockdiagramme verschiedener Informationsarten, die in einem Hostspeicher gespeichert sind und ein Register, das in dem Hostcontroller enthalten ist, gemäß einer Ausführungsform der Beschreibung.
-
Bezug nehmend auf 8 kann ein Host 400 einen Hostspeicher 410 und ein Register 420 enthalten. Das Register 420 kann innerhalb eines Hostcontrollers und der Hostspeicher 410 außerhalb des Hostcontrollers bereitgestellt sein. Verschiedene Befehlsarten und Parameter, die in den Joint Electron Device Engineering Council (JEDEC) UFS Standards definiert sind können in dem Hostspeicher 410 und dem Register 420 gespeichert sein, um Daten in Bezug auf eine Speichervorrichtung zu verwalten. Ein UTP Übertragungsanforderungsbeschreiber kann in einem Beschreibergebiet des Hostspeichers 410 gespeichert werden und UPIU Information und entsprechende PRDT Information kann in einem anderen Gebiet des Hostspeichers 410 gespeichert werden. UTP Übertragungsanforderungsbeschreiber können in dem Hostspeicher 410 basierend auf einer UTP Übertragungsanforderung, die in dem Register 420 gespeichert ist, gespeichert oder geprüft werden.
-
Schreibdaten und Lesedaten können in einer Vielzahl von Datenpuffern in dem Puffergebiet des Hostspeichers 410 enthalten sein. PRDT Information kann eine Pufferadresse als physikalische Adresse eines Datenpuffers enthalten. PRDT Information kann nicht in Bezug auf einige UPIU Befehle gespeichert werden. Beispielsweise kann PRDT Information nicht in Bezug auf einen UPIU Befehl irrelevant zu einem Zugriff auf einen Datenpuffer gespeichert werden.
-
Andere verschiedene Informationsarten, die in dem JEDEC UFS Standards gespeichert sind, sind in 8 dargestellt. Beispielsweise kann eine UTP Aufgabenverwaltungsanforderungsliste ebenfalls in einem Gebiet des Hostspeichers 410 gespeichert werden. Beispielsweise kann eine Aufgabenverwaltungsanforderung UPIU und eine Aufgabenverwaltungsantwort UPIU in einem Gebiet des Hostspeichers 410 gespeichert werden. Die Aufgabenverwaltungsanforderungsliste kann in dem Hostspeicher 410 basierend auf einer in dem Register 420 gespeicherten UTP Aufgabenverwaltungsanforderung gespeichert werden. Daneben sind auch andere Komponenten, die in dem JEDEC UFS Standards definiert sind, in 8 dargestellt. Beispielsweise Hostcontrollerkapazitäten, Unterbrechungs- und Hoststatus, UFS Verbindungsbefehl (UIC) und verkäuferspeziell in dem Register 420 gespeichert werden.
-
Die Ausführungsformen der vorliegenden Beschreibung sind nicht auf die in 8 dargestellte Konfiguration beschränkt. Gemäß einer Ausführungsform kann wenigstens einiges der in dem Hostspeicher 410 in 8 gespeicherten Information in dem Register 420 gespeichert werden. Gemäß einer Ausführungsform kann wenigstens eines von dem UTP Übertragungsanforderungsbeschreiber, der UPIU Information, der PRDT Information und der UTP Aufgabenverwaltungsanforderungsliste in dem Register 420 gespeichert werden. Außerdem kann in einer anderen Ausführungsform der Hostspeicher 410 auch nur Datenpuffer enthalten, und die restliche Information kann in dem Register 420 gespeichert werden.
-
9A und 9B zeigen Blockdiagramme im Vergleich der Zugriffsfrequenz auf einen Hostspeicher zwischen einem typischen Fall und einer Ausführungsform der Offenbarung. 9A und 9B zeigen Beispiele, in denen ein Host entsprechend einem von einer Speichervorrichtung empfangenen Paket arbeitet. 9A zeigt ein Beispiel, in dem ein Paket im typischen Format verarbeitet wird. Bezug nehmend auf 9A kann wenigstens eine UTP Übertragungsanforderung in dem Register 420 in einem Hostcontroller gespeichert werden. Beispielsweise kann eine erste Übertragungsanforderung „TRANSFER REQUEST 0“ einer Datenschreibeanforderung entsprechen und eine dritte Übertragungsanforderung „TRANSFER REQUEST 2“ kann einer Datenleseanforderung entsprechen. Der Hostcontroller kann in Antwort auf die erste Übertragungsanforderung „TRANSFER REQUEST 0“ von der Speichervorrichtung einen RTT UPIU empfangen. Der Hostcontroller kann auch data_in UPIU von der Speichervorrichtung in Antwort auf die dritte Übertragungsanforderung „TRANSFER REQUEST 2“ enthalten.
-
In einem von der Speichervorrichtung übertragenen Paket kann ein Kopfgebiet, das Kopfinformation speichert, enthalten sein. Kopfinformation der RTT UPIU kann Information über die Größe und den Offset für einen Datenschreibevorgang für übertragene Daten enthalten. Der Hostcontroller kann unter Verwendung wenigstens einiger Informationswerte in der Kopfinformation der RTT UPIU einen Verarbeitungsvorgang durchführen. Beispielsweise bezieht sich der Hostcontroller auf eine logische Einheitsnummer (logical unit number - LUN) und Tag (z. B. Identifizierer) Information in der Kopfinformation des RTT UPIU und greift auf den Hostspeicher 410 zu, um einen entsprechenden UTP Übertragungsanforderungsbeschreiber zu prüfen. Der Hostcontroller kann auch auf einen von dem UTP Übertragungsanforderungsbeschreiber in dem Hostspeicher 410 erfassten Ort zugreifen, um PRDT Information zu prüfen. Der Hostcontroller kann auch auf einem Datenpuffer basierend auf der PRDT Information (z. B. einer Pufferadresse) zugreifen und in dem Datenpuffer gespeicherte Daten an die Speichervorrichtung übertragen.
-
Wenn die data_in UPIU empfangen wurde, kann der Hostcontroller auf den Hostspeicher 410 zugreifen, um einen UTP Übertragungsanforderungsbeschreiber entsprechend der Kopfinformation der data_in UPIU ① zu prüfen. Der Hostcontroller kann auch auf den Hostspeicher 410 zugreifen, um entsprechende PRDT Information ② zu prüfen. In den data_in UPIU enthaltenen Lesedaten können in einem Datenpuffer entsprechend der PRDT Information ③ gespeichert werden.
-
Gemäß dem oben beschriebenen Verfahren wird für einen Datenverarbeitungsvorgang relativ häufig auf den Hostspeicher 410 zugegriffen. Beispielsweise greift der Hostcontroller auf den Hostspeicher 410 zweimal zu, um einen Übertragungsanforderungsbeschreiber und PRDT Information zu prüfen und greift einmal zu, um Schreibdaten zu lesen, um einen RTT UPIU zu verarbeiten. Insgesamt sind drei Zugriffe auf den Hostspeicher 410 notwendig. Zu diesem Zeitpunkt wird der Overhead an Datenverarbeitung erhöht, da der Hostcontroller eine niedrigere Zugriffspriorität auf den Hostspeicher 410 hat, als andere Elemente (z. B. Anzeige I/F, Kamera I/F und Modem) des Hosts.
-
Gemäß einer Ausführungsform der Beschreibung kann ein Host wie in 9B dargestellt die erste Übertragungsanforderung „TRANSFER REQUEST 0“ an eine Speichervorrichtung übertragen und einen RTT UPIU entsprechend der ersten Übertragungsanforderung „TRANSFER REQUEST 0“ empfangen ①. Der Host kann eine Pufferadresse vom RTT UPIU zergliedern und kann durch die Pufferadresse bezeichnete Daten, die in einem Datenpuffer gespeichert sind, an die Speichervorrichtung übertragen ②. Mit anderen Worten kann ein Zugriff auf den Hostspeicher 410, der von einem Hostcontroller durchgeführt wird, um auf den RTT UPIU hin empfangene PRDT Information zu prüfen, vermieden werden.
-
Ähnlich braucht der Hostcontroller, wenn der Host die data_in UPIU empfängt, keinen Zugriff durchführen, um PRDT Information in dem Hostspeicher 410 zu prüfen, um den Ort eines Datenpuffers, an dem die Lesedaten gespeichert werden sollen, zu ermitteln. Beispielsweise kann der Hostcontroller die Art der Anforderung durch Prüfen eines UTP Übertragungsanforderungsbeschreibers basierend auf der Kopfinformation der data_in UPIU ermitteln ① und kann die Lesedaten in einem durch die von dem data_in UPIU zergliederter Pufferadresse speichern ②.
-
Gemäß der oben beschriebenen Ausführungsform kann die Zugriffsfrequenz auf den Hostspeicher 410 verringert werden und dadurch der Datendurchsatz erhöht werden. Beispielsweise können bei einem Datenschreibevorgang eine Vielzahl an RTT UPIU sequenziell zu dem Host in Antwort auf einen einzelnen Befehl UPIU gemäß einer Datenschreibeeinheit in der Speichervorrichtung übertragen werden. Zu diesem Zeitpunkt kann die Datenverarbeitung durchgeführt werden ohne auf den Hostspeicher 410 zuzugreifen, um in Antwort auf jeden RTT UPIU separat die PRDT Information zu prüfen.
-
10 und 11A und 11B zeigen Diagramme eines Datenlesevorgangs und von Paketen, die an einer UFS Schnittstelle beteiligt sind gemäß einer Ausführungsform der Beschreibung.
-
Bezug nehmend auf 10 kann ein Befehl (CMD) UPIU für eine Datenleseanforderung von einem Host an die Speichervorrichtung übertragen werden. Eine Pufferadresse (oder eine physikalische Adresse (PA) eines Datenpuffers) kann für die Datenleseanforderung in dem CMD UPIU enthalten sein. Die Speichervorrichtung kann Daten von einem Speicherkern in Antwort auf den CMD UPIU für die Datenleseanforderung lesen und kann data_in UPIU an den Host übermitteln. Zu diesem Zeitpunkt enthält data in UPIU die von dem CMD UPIU zergliederten PA und die Lesedaten. Zusätzlich kann die Speichervorrichtung eine Antwort UPIU übertragen, die Vollständigkeit eines Vorgangs gemäß dem CMD UPIU anzeigt, an den Host übertragen. Wie oben beschrieben kann der Host Lesedaten in einem Datenpuffer an einer von den data_in UPIU zergliederten PA speichern.
-
Die Paketstruktur des CMD UPIU kann wie in 11A gezeigt implementiert werden und die Paketstruktur der data_in UPIU kann wie in 11B gezeigt implementiert werden. Die 11A und 11B zeigen Beispiele, in denen eine Pufferadresse in einem bestehenden Kopfgebiet enthalten ist. 11A zeigt die Struktur des CMD UPIU und 11B zeigt die Struktur der data in UPIU.
-
Bezug nehmend auf 11A enthält ein Kopfgebiet H des CMD UPIU ein reserviertes Gebiet und eine Pufferadresse und relevante Information kann in einem Teil des reservierten Gebiets enthalten sein. Beispielsweise kann eine Hostspeicherpufferadresse in dem reservierten Gebiet enthalten sein. Information CWA, die anzeigt, dass die Pufferadresse in dem CMD UPIU enthalten ist und Information CWA_LENGTH, die die Größe eines Gebiets, in dem die Pufferadresse gespeichert wird (oder die Größe eines Gebiets, in dem die Pufferadresse und die relevante Information gespeichert wird), anzeigt, kann ebenso in dem reservierten Gebiet enthalten sein.
-
Bezug nehmend auf 11B kann data_in UPIU das Kopfgebiet H und ein Nutzlastgebiet DATA, das Daten enthält, umfassen. Das Kopfgebiet H kann ein reserviertes Gebiet enthalten. Eine Hostspeicherpufferadresse und relevante Information kann in wenigsten einem Teil des reservierten Gebiets enthalten sein. Die in dem reservierten Gebiet enthaltene Information ist wie in 11B dargestellt gleich oder ähnlich zu der in 11A dargestellten. Das heißt, auf eine detaillierte Beschreibung davon wird verzichtet.
-
Die 12 und 13 zeigen Diagramme eines Datenschreibvorgangs und Pakete, die bei der UFS Schnittstelle gemäß einer Ausführungsform der Beschreibung beteiligt sind.
-
Bezug nehmend auf 12 kann ein CMD UPIU für eine Datenschreibanforderung von dem Host an die Speichervorrichtung übertragen werden. Eine PA, die den Ort eines Datenpuffers anzeigt, in dem Schreibdaten in dem Host gespeichert wurden, können in dem CMD UPIU gespeichert werden. Die Speichervorrichtung kann wenigstens einen RTT UPIU, der anzeigt, dass sie fertig ist, um Schreibdaten zu empfangen, in Antwort auf den CMD UPIU für die Datenschreibeanforderung an den Host übertragen. Gemäß der Größe der Schreibdaten und einer Datenschreibeinheit der Speichervorrichtung können eine Vielzahl an RTT UPIU an den Host übermittelt werden.
-
Beispielsweise kann ein erster RTT UPIU, z. B. RTT UPIU_1 von der Speichervorrichtung an den Host übertragen werden. Eine erste PA PA_1, die den Ort eines Datenpuffers anzeigt, an dem Schreibeinheitsdaten, die zu übertragen sind, zuerst gespeichert werden sollen, kann in dem RTT UPIU_1 enthalten sein.
-
Der Host kann den Ort des Datenpuffers darin unter Verwendung der ersten PA PA_1, wie sie von dem RTT UPIU_1 zergliedert wurde, ermittelt werden und kann die in dem Datenpuffer gespeicherten Daten an die Speichervorrichtung als Schreibdaten übertragen. Der Host kann einen data_out UPIU mit den Schreibdaten an die Speichervorrichtung übertragen.
-
Zusätzlich kann die Speichervorrichtung einen zweiten RTT UPIU, z. B. RTT UPIU_2 an den Host übertragen. Eine zweite PA PA_2, die den Ort eines Datenpuffers anzeigt, an den Schreibeinheitsdaten gespeichert sind, die an zweiter Stelle übertragen werden sollen, können in dem RTT UPIU_2 enthalten sein. Der Host kann die zweite PA PA_2 von der RTT UPIU_2 abtrennen und kann Daten, die in dem Datenpuffer an einem Ort, der durch die zweite PA PA_2 dargestellt ist, an die Speichervorrichtung übertragen. Da dieser Vorgang wiederholt wird, können alle Daten, die zum Schreiben angefordert wurden, an die Speichervorrichtung übermittelt werden. Wenn das Datenschreiben beendet ist, kann die Speichervorrichtung einen Antwort UPIU, der die Vollständigkeit des Vorgangs entsprechend dem CMD UPIU anzeigt, an den Host übertragen werden.
-
13 zeigt ein Beispiel einer Paketstruktur der oben beschriebenen RTT UPIU. In diesem Beispiel ist eine Pufferadresse in einem bestehenden Kopfgebiet enthalten. 13 zeigt den RTT UPIU_1 aus der Vielzahl der RTT UPIUs der in Antwort auf einen einzelnen CMD UPIU übertragen wurde. Die Struktur der anderen RTT UPIUs können gleich oder ähnlich zu der in 13 dargestellten Struktur sein.
-
Bezug nehmend auf 13 kann das Kopfgebiet H des RTT UPIU_1 ein reserviertes Gebiet enthalten. Eine Pufferadresse, die den Ort eines Datenpuffers anzeigt, an dem Schreibeinheitsdaten gespeichert wurden, kann in wenigstens einem Teil des reservierten Gebiets enthalten sein. Die Information CWA, die anzeigt, dass die Pufferadresse enthalten ist, und die Information CWA_LENGTH, die die Größe des Gebiets, in dem die Pufferadresse zu speichern ist, anzeigt, kann ebenfalls in dem reservierten Gebiet enthalten sein. Nachdem der RTT UPIU_1 übertragen ist, kann der nächste RTT UPIU, z. B. der RTT UPIU_2 an den Host übertragen werden. Zu diesem Zeitpunkt kann sich der Wert der Pufferadresse, die den Ort des Datenpuffers angibt, in dem die Schreibdaten zu speichern sind, sich ändern.
-
14 zeigt ein Diagramm eines Beispiels, in dem eine Ausführungsform der Beschreibung auf verschiedene Pakettypen, die in der UFS Schnittstelle definiert sind, angewandt werden.
-
Ein Host kann nacheinander eine Vielzahl an UPIUs an eine Speichervorrichtung übermitteln. In dem in 14 dargestellten Beispiel wird CMD UPIU als Schreibanforderung, z. B. CMD UPIU 1, CMD UPIUs als Leseanforderung, z. B. CMD UPIU 2, CMD UPIU 4, CMD UPIU 5 und CMD UPIU 6 und UPIU als Aufgabenverwaltungsanforderung, z. B. TMF_REQ UPIU 3 übertragen. Wie oben beschrieben ist bei der UFS Schnittstelle ein Zugriff auf einen Datenpuffer in dem Host während Datenschreibe- und -lesevorgängen auf der Speichervorrichtung notwendig. Demgemäß kann eine Pufferadresse, z. B. eine PA, in jedem der CMD UPIUs, z. B. CMD UPIU 1, CMD UPIU 2, CMD UPIU 4, CMD UPIU 5 und CMD UPIU 6 enthalten sein. Die Speichervorrichtung kann die Pufferadresse zergliedern, z. B. die PA, von jedem der CMD UPIUs, z. B. CMD UPIU 1, CMD UPIU 2, CMD UPIU 4, CMD UPIU 5 und CMD UPIU 6 und kann die PA speichern und verwalten.
-
In Antwort auf eine von dem Host empfangene Anforderung kann die Speichervorrichtung eine UPIU erzeugen und die UPIU an den Host übermitteln. Eine oder mehrere RTT UPIU, z. B. RTT UPIU(1)_0 und RTT UPIU(1)_1 und eine data_in UPIU, z. B.DATA_IN UPIU(2), die Lesedaten enthalten, sind in 14 dargestellt. Da während eines Vorgangs zum Antworten auf einen RTT UPIU oder einen data_in UPIU der Zugriff auf einen Datenpuffer notwendig ist, kann eine PA in jedem der RTT UPIU und dem data_in UPIU enthalten sein.
-
Der Host kann einen UPIU mit Schreibdaten, z. B. DATA_OUT UPIU(1)_0, in Antwort auf den RTT UPIU an die Speichervorrichtung übertragen. Der Host kann auch eine Aufgabenverwaltungsanforderung UPIU, z. B. TMF_REQ UPIU 3 an die Speichervorrichtung übermitteln. Die Speichervorrichtung kann in Antwort auf den TMF_REQ UPIU 3 auf den darin gespeicherten Befehlen einen Verwaltungsvorgang durchführen. Die Speichervorrichtung kann ebenso eine Aufgabenverwaltungsantwort UPIU, z. B. TMF_RESP UPIU(3) übertragen, die die Vollständigkeit des Befehlsverwaltungsvorgangs zu dem Host in Antwort auf den TMF_REQ UPIU 3 anzeigt.
-
Wie oben beschrieben sind ein data_out UPIU und ein TMF_REQ UPIU vom Host und ein TMF_RESP UPIU von der Speichervorrichtung irrelevant für das Zugreifen auf einen Datenpuffer in dem Host. So eine oben beschriebene Pufferadresse muss nicht in diesen UPIUs enthalten sein. Demgemäß ist für verschiedene Pakettypen, die über die UFS Schnittstelle übertragen wurden, die Größe einiger Pakettypen ohne die Zuladung von der Größe anderer Pakettypen ohne Zuladung verschieden.
-
15 zeigt ein Blockdiagramm eines Speichercontrollers, der eine Pufferadresse gemäß einer Ausführungsform der Beschreibung verwaltet.
-
Bezug nehmend auf 15 enthält der Speichercontroller 500 eine Steuerschaltung 510, einen Host I/F 520, einen Speicher I/F 530, eine CMD Reihe 541, eine Adress (ADD)-Reihe 542 und einen Datenpuffer 550. Beim Beschreiben der Vorgänge in dem Speichercontroller 500 wie in 15 dargestellt, wird auf die Beschreibung gleicher oder ähnlicher Abläufe, wie unter Bezugnahme auf 3 beschrieben, verzichtet. Der Datenpuffer 550 kann vorübergehend Schreibdaten DATA_W und Lesedaten DATA_R speichern.
-
Die Steuerschaltung 510 kann verschiedene Elemente zum Steuern der Datenschreibe- und -lesevorgänge in einem Speicherkern gemäß eines UFS Schnittstellenprotokolls enthalten. Der Steuerschaltkreis 510 kann einen Hostcontroller 511 enthalten. Der Hostcontroller 511 kann einen Paketbestimmer 511_1 enthalten. Der Hostcontroller 511 kann auch eine UTP Maschine (nicht dargestellt) für den UTP Prozess enthalten. Der Hostcontroller 511 kann ein Paket erzeugen oder verschiedene Arten an Information aus dem empfangenen Paket wie oben beschrieben zergliedern.
-
Ein zergliederter Befehl und Pufferadresse CMD/ADD_Buf können in der CMD Reihe 541 und der ADD Reihe 542 basierend auf der Steuerung des Steuerschaltkreises 510 verwaltet werden. Eine Pufferadresse ADD_Buf kann von der ADD Reihe 542 gelesen werden und dem Hostcontroller 511 bereitgestellt werden und ein Paket, das die Pufferadresse ADD_Buf enthält, kann erzeugt werden. Der Paketbestimmer 511_1 kann bestimmen, ob ein Paket, das zu einem Host zu übermitteln ist, den Zugriff auf einen Datenpuffer eines Hostspeichers erfordert. Gemäß dem Bestimmungsergebnis kann die ADD Reihe 542 selektiv ausgewählt werden.
-
16 zeigt ein Flussdiagramm eines Verfahrens zum Betreiben des in 15 dargestellten Speichercontrollers 500 gemäß einer Ausführungsform der Beschreibung.
-
Bezug nehmend auf 16 zergliedert eine Speichervorrichtung wie oben beschrieben eine Pufferadresse aus Paketen, die von einem Host übertragen wurden, und speichert und verwaltet die Pufferadresse im Schritt S41.
-
Danach führt die Speichervorrichtung Prozesse entsprechend einer Vielzahl an Anforderungen, die von dem Host übermittelt wurden, durch und überträgt Pakete, die sich aus diesen Prozessen ergeben, zu dem Host. Wenn die Pakete gemäß der Prozessergebnisse erzeugt werden, erfasst die Speichervorrichtung die zu erzeugenden Pakettypen im Schritt S42 und ermittelt, ob das zu erzeugende Paket einen Zugriff auf einen Datenpuffer in dem Host erfordert, basierend auf dem Erfassungsergebnis im Schritt S43.
-
Falls ermittelt wird, dass das Paket keinen Zugriff auf einen Datenpuffer in dem Host benötigt, wird das Paket ohne die Zugriffsinformation in einer Adressreihe in der Speichervorrichtung erzeugt. Falls jedoch ermittelt wird, dass das Paket einen Zugriff auf einen Datenpuffer in dem Host erfordert, wird eine Pufferadresse von der Adressreihe in der Speichervorrichtung im Schritt S44 gelesen und ein Paket mit der Pufferadresse wird erzeugt und an den Host im Schritt S45 übertragen.
-
17A bis 17C zeigen Blockdiagramme des Vorgangs auf einem Speichersystem, wenn eine Vielzahl an RTT UPIUs in Antwort auf einen einzelnen Befehl UPIU übertragen werden. Die 17A bis 17C zeigen ein Beispiel, in dem vier RTT UPIUs in Antwort auf einen einzelnen Befehl UPIU übertragen werden.
-
Bezug nehmend auf 17A kann ein Speichersystem 600A einen Host 610A und eine Speichervorrichtung 620A enthalten. Der Host 610A kann einen Hostcontroller 611A enthalten. Der Hostcontroller 611A kann einen Adressberechner 611A_1 enthalten. Die Speichervorrichtung 620A kann einen Speichercontroller 621A und einen Speicherkern 622A enthalten.
-
Eine Pufferadresse ADD_Buf 1, die den Ort eines Datenpuffers anzeigt, in dem die Schreibdaten zu speichern sind, kann in einem CMD UPIU enthalten sein. Das Speichersystem 600A kann die Pufferadresse ADD_Buf 1 in jedem der vier RTT UPIUs enthalten, z. B. RTT UPIU_1 bis RTT UPIU_4. Die Orte der entsprechenden Datenpuffer, in denen die Schreibdaten entsprechend der vier RTT UPIUs, z. B. RTT UPIU_1 bis RTT UPIU_4 gespeichert wurden, können sich voneinander unterscheiden und der Adressberechner 611A_1 kann die Pufferadressen ADD_Buf 1_1 bis ADD_Buf 1_4 berechnen, die entsprechend die Datenpuffer der vier RTT UPIUs, z. B. RTT UPIU_1 bis RTT UPIU_4 der Pufferadresse ADD_Buf 1 bezeichnen. Die Berechnung kann unter Verwendung der Kopfinformation, die oben beschrieben wurde, zusammen mit der Pufferadresse ADD_Buf 1 in den RTT UPIUs durchgeführt werden.
-
17B zeigt ein Beispiel, in dem die oben beschriebene Adressberechnung in einer Speichervorrichtung durchgeführt wird. Bezug nehmend auf 17B kann ein Speichersystem 600B einen Host 610B und eine Speichervorrichtung 620B enthalten. Der Host 610B kann einen Hostcontroller 611B enthalten. Die Speichervorrichtung 620B kann einen Speichercontroller 621B und einen Speicherkern 622B enthalten. Der Speichercontroller 621B kann einen Adressberechner 621B_1 enthalten.
-
Der Speichercontroller 621B kann einen CMD UPIU mit einer Pufferadresse ADD_Buf 1 empfangen und nacheinander vier RTT UPIUs, z. B. RTT UPIU_1 bis RTT UPIU 4 an den Host 610B unter Berücksichtigung einer Schreibeinheit übermitteln. Der Adressberechner 621B_1 in dem Speichercontroller 621B kann die Pufferadressen ADD_Buf 1_1 bis ADD Buf 1_4 unter Verwendung der Größe der Schreibeinheit und der zergliederten Pufferadresse ADD_Buf 1 berechnen. Die erste Pufferadresse ADD_Buf 1_1 kann in dem ersten RTT UPIU, z. B. RTT UPIU_1 enthalten sein und die vierte Pufferadresse ADD_Buf 1_4 können in den vier RTT UPIUs, z. B. RTT UPIU_4 enthalten sein.
-
17C zeigt ein Beispiel, in dem ein Host eine Vielzahl an Pufferadressen unter Berücksichtigung der Größe einer Schreibeinheit an eine Speichervorrichtung übermittelt. Bezug nehmend auf 17C enthält ein Speichersystem 600C einen Host 610C und eine Speichervorrichtung 620C. Der Host 610C kann einen Hostcontroller 611C enthalten. Die Speichervorrichtung 620C kann einen Speichercontroller 621C und einen Speicherkern 622C enthalten.
-
Der Host 610C kann eine Vielzahl an Pufferadressen, z. B. ADD_Buf 1_1 bis ADD_Buf 1_4 in einer einzelnen CMD UPIU unter Berücksichtigung der Größe einer Schreibeinheit der Speichervorrichtung 620C enthalten. Die Speichervorrichtung 620C kann die Vielzahl der Pufferadressen ADD_Buf 1_1 bis ADD_Buf 1_4, die empfangen wurden, speichern und verwalten.
-
Die Speichervorrichtung 620C kann auch nacheinander vier RTT UPIUs, z. B. RTT UPIU_1 bis RTT UPIU_4 an den Host 610 übertragen und kann in jedem der RTT UPIUs eine andere Pufferadresse enthalten. Beispielsweise kann die erste Pufferadresse ADD_Buf 1_1 in dem ersten RTT UPIU, z. B. RTT UPIU_1, enthalten sein und die vierte Pufferadsresse ADD_Buf 1_5 kann in dem vierten RTT UPIU, z. B. RTT UPIU_4 enthalten sein.
-
Die 18(a) und 18(b) zeigen Diagramme einer Paketstruktur gemäß einiger Ausführungsformen der Beschreibung. Die 18a und 18b zeigen einen ersten Pakettyp mit einer Pufferadresse und einen zweiten Pakettyp, der keine Pufferadresse enthält. Hier ist die Pufferadresse in einem Extrakopfsegment EHS enthalten.
-
Bezug nehmend auf 18(a) enthält der erste Pakettyp den Kopf H, das Extrakopfsegment EHS und die Nutzlast. Verschiedene Arten an Kopfinformation können in dem Kopf H enthalten sein. Eine Pufferadresse entsprechend der PA oder eine Pufferadresse in einem Hostspeicher kann in dem Extrakopfsegment EHS enthalten sein. Neben der Pufferadresse können andere verschiedene Arten an Information zur Datenverwaltung in einer Speichervorrichtung in dem Extrakopfsegment EHS enthalten sein.
-
Im Fall der UFS Schnittstelle kann der Kopf H eine vorher festgelegte Größe aufweisen. Beispielsweise kann der Kopf H eine Größe von 32 Bytes aufweisen. Der Kopf H kann Felder verschiedener Informationsarten, wie beispielsweise LUN, ein Tag, Flags und einen Befehlssatztyp enthalten. Die Größe des Extrakopfsegments EHS kann variieren und die Information über die Größe des Extrakopfsegments EHS kann in einem der Felder in dem Kopf enthalten sein. In dem oben dargestellten Beispiel in 18(a) hat das Kopfsegment EHS eine Größe von α Byte(s).
-
Das Extrakopfsegment EHS ist nicht in dem zweiten Pakettyp wie in 18(a) gezeigt enthalten. Demgemäß kann die Größe des zweiten Pakettyps ohne eine Nutzlast auf 32 Bytes festgesetzt werden. Die Größe des ersten Pakettyps ohne eine Nutzlast kann größer als 32 Bytes sein und variieren. Daher kann die Größe eines Pakets ohne eine Nutzlast mit dem Pakettyp in verschiedenen Ausführungsformen der Beschreibung variieren.
-
Die 19 bis 25 zeigen Diagramme verschiedener Paketstrukturen gemäß einiger Ausführungsformen der Beschreibung. Es wird angenommen, dass eine Pufferadresse in dem Extrakopfsegment EHS eines Pakets enthalten ist. Verschiedene Felder, die zusammen als EHS Feld bezeichnet werden, können in dem Extrakopfsegment EHS enthalten sein. Das EHS Feld kann ein EHS Kopffeld und ein EHS Datenfeld enthalten.
-
19 zeigt einen CMD UPIU für einen Datenschreibevorgang gemäß einer Ausführungsform der Beschreibung. Wie in 19 dargestellt, kann der CMD UPIU das Kopfgebiet H und das Extrakopfsegment EHS enthalten. Das Kopfgebiet H kann Information über eine Gesamtlänge EHS enthalten und kann ebenso Information über eine erwartete Datenübertragungslänge enthalten.
-
Das Extrakopfsegment EHS kann EHS Typinformation EHS_TYPE und EHS Längeninformation EHS_LENGTH enthalten. Die EHS Typinformation EHS_TYPE kann auf einem sich ändernden Wert gesetzt werden. Wenn die EHS Typinformation EHS_TYPE auf einen speziellen Wert gesetzt wurde, z. B. 2h, kann das anzeigen, dass eine Pufferadresse in dem Extrakopfsegment EHS enthalten ist. In der in 19 gezeigten Ausführungsform entspricht eine Pufferadresse entsprechend einer PA eines Datenpuffers, in den Schreibdaten gespeichert wurden, „0x40C0_0000“.
-
Die 20A und 20B zeigen Beispiele der RTT UPIUs entsprechend dem CMD UPIU wie in 19 dargestellt. 20A zeigt den ersten RTT UPIU, z. B. RTT UPIU_1, und 20 zeigt den zweiten RTT UPIU, z. B. RTT UPIU_2. Auch wenn es nicht dargestellt ist, können auch mehr RTT UPIUs von der Speichervorrichtung zu einem Host entsprechend der Größe einer Schreibeinheit übertragen werden.
-
Bezug nehmend auf die 20A und 20B kann jede der ersten und zweiten RTT UPIUs, z. B. RTT UPIU_1 und RTT UPIU_2 das Kopfgebiet H und das Extrakopfsegment EHS enthalten. Das Kopfgebiet H kann einen Datenpufferversatz und Datenübertragungszählerinformation enthalten. Die Extrakopfsegmente EHS der entsprechenden ersten und zweiten RTT UPIUs, z. B. RTT UPIU_1 und RTT UPIU_2 können den gleichen Wert enthalten, z. B. „0x40C0_0000“ für eine Pufferadresse.
-
Der Host kann den Ort eines Datenpuffers, der die Schreibdaten speichert, unter Verwendung der Information in dem Kopfgebiet H und dem Extrakopfgebiet EHS in jedem der ersten und zweiten RTT UPIUs, z. B. RTT UPIU_1 und RTT UPIU_2, ermitteln. Beispielsweise kann der Host den Ort des Datenpuffers unter Verwendung des Datenpufferversatzes, der Datenübertragungszählerinformation und der Pufferadresse ermitteln und die entsprechenden Schreibdaten an die Speichervorrichtung übertragen.
-
Die 21A und 21B zeigen weitere Beispiele von RTT UPIUs entsprechend dem CMD UPIU, wie in 19 dargestellt. 21A zeigt den ersten RTT UPIU, z. B. RTT UPIU_1 und 21B zeigt den zweiten RTT UPIU, z. B. RTT UPIU_2. Redundante Beschreibungen der gleichen wie oben unter Bezugnahme auf die 20A und 20B beschrieben, werden vermieden.
-
Bezug nehmend auf 19 und 21A und 21B berechnet eine Speichervorrichtung eine Vielzahl an Pufferadressen unter Verwendung einer Pufferadresse (z. B. 0x40C0_0000), die in einem CMD UPIU enthalten ist, und kann die Pufferadressen in eine Vielzahl an RTT UPIUs entsprechend einfügen. Pufferadressen mit verschiedenen Werten können in eine Vielzahl an RTT UPIUs eingefügt werden. Beispielsweise kann eine Pufferadresse entsprechend 0x40C0_0000 in den ersten RTT UPIU eingefügt werden, z. B. RTT UPIU_1, und eine Pufferadresse entsprechend 0x40C0_8000 kann in dem zweiten RTT UPIU, z. B. RTT UPIU_2 eingefügt werden. Gemäß den 21A und 21B dargestellten Ausführungsformen kann ein Host direkt auf einen Datenpuffer an einem Ort, der durch eine Pufferadresse in einem RTT UPIU enthalten ist, zugreifen, ohne einen Berechnungsvorgang an der in dem RTT UPIU enthaltenen Pufferadresse durchzuführen.
-
22 bis 25 zeigen Beispiele, in denen ein Host eine Vielzahl an Pufferadressen in einer einzelnen CMD UPIU enthält. In 22 bis 25 dargestellte Ausführungsformen können angewandt werden, wenn eine Vielzahl an Schreibeinheiten für zu schreibende Daten kontinuierlich oder diskontinuierlich in einem Puffergebiet angeordnet sind. Es wäre effizienter, die Ausführungsformen auf die Fälle anzuwenden, bei denen Schreibeinheiten für Daten diskontinuierlich in einem Puffergebiet lokalisiert sind. Die Struktur und Information eines Kopfgebiets, wie es in den beschriebenen Ausführungsformen verwendet wird, sind unter Bezugnahme auf die 22 bis 25 gleich oder ähnlich zu den oben beschriebenen und sind daher nicht weiter in den 22 bis 25 dargestellt.
-
Bezug nehmend auf 22 kann ein EHS Feld in einem CMD UPIU einen EHS Kopf und EHS Daten enthalten. Der EHS Kopf kann die Typinformation EHS_TYPE und die Längeninformation EHS_LENGTH wie oben beschrieben enthalten. Wenn Daten, die der Größe der Schreibeinheit entsprechen, viermal von dem Host zu einer Speichervorrichtung in Antwort auf den einzelnen CMD UPIU übertragen werden, können Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4, bei dem vier Daten mit der Größe der Schreibeinheit entsprechend angeordnet sind, in das EHS Feld eingefügt werden. Die Speichervorrichtung kann die Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 speichern und verwalten.
-
Die 23A und 23B zeigen RTT UPIUs, die von der Speichervorrichtung übertragen wurden. 23A zeigt die erste RTT UPIU, z. B. RTT UPIU_1 und 23B zeigt die vierte RTT UPIU, z. B. RTT UPIU_4. Bezug nehmend auf 23A kann die erste Pufferadresse, z. B. BUFFER ADDRESS1_1 ein EHS Feld des ersten RTT UPIU, z. B. RTT UPIU_1 enthalten. Der Host kann die erste Pufferadresse, z. B. BUFFER ADDRESS1_1 von der ersten RTT UPIU, z. B. RTT UPIU_1 zergliedern und kann Daten, die die Größe einer Schreibeinheit haben, und der ersten Pufferadresse, z. B. BUFFER ADDRESS1_1 aufweisen, an die Speichervorrichtung übertragen werden. Bezug nehmend auf 23B kann ein EHS Feld der vierten RTT UPIU, z. B. RTT UPIU_4, die vierte Pufferadresse, z. B. BUFFER ADDRESS 1_4 mit einem anderen Wert als die erste Pufferadresse, z. B. BUFFER ADDRESS 1_1, enthalten. Ein Host kann Daten entsprechend der vierten Pufferadresse, z. B. BUFFER ADDRESS 1_4, an die Speichervorrichtung übertragen.
-
24 zeigt eine modifizierbare Ausführungsform, in der ein RTT UPIU erste bis vierte Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 enthält. Alle der ersten bis vierten Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 können in jedem der ersten bis vierten RTT UPIU, z. B. RTT UPIU_1 bis RTT UPIU_4 enthalten sein. Der Host kann unter Verwendung einer der Pufferadressen gemäß der Information in dem Kopf selektiv auf die Daten zugreifen.
-
25 zeigt ein Beispiel eines data in UPIU. Es wird angenommen, dass der in 22 dargestellte CMD UPIU einen Lesevorgang fordert.
-
Die Speichervorrichtung kann eine Vielzahl an Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 enthalten in einem CMD UPIU gemäß einer Leseanforderung speichern und verwalten. Wenn ein data in UPIU in Antwort auf den CMD UPIU übertragen wird, kann die Speichervorrichtung die Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 in den data in UPIU einfügen. Der Host kann die Lesedaten an entsprechenden Orten der Datenpuffer in einem Hostspeicher unter Verwendung der Pufferadressen, z. B. BUFFER ADDRESS1_1 bis BUFFER ADDRESS1_4 enthalten in dem data_in UPIU speichern.
-
Gemäß der Ausführungsformen der Beschreibung wird eine Pufferadresse, die den Ort eines Datenpuffers anzeigt, zwischen dem Host und der Speichervorrichtung übertragen und daher kann auf einen Lesevorgang durch einen Hostspeicher, um den Ort des Datenpuffers, auf den zugegriffen werden muss, zu ermitteln, verzichtet werden. Als Ergebnis kann der Overhead der Datenverarbeitung zwischen dem Host und der Speichervorrichtung verringert werden und die Datenverarbeitungsleistung wird erhöht.
-
Wie es auf diesem Gebiet üblich ist, werden Ausführungsformen beschrieben und dargestellt in Form von Blöcken, die eine beschriebene Funktion oder Funktionen ausführen. Diese Blöcke, auf die hier als Einheiten oder Module oder ähnliches Bezug genommen wurde, sind physikalisch durch analoge und/oder digitale Schaltkreise, wie logische Gatter, integrierter Schaltkreise, Mikroprozessoren, Mikrocontroller, Speicherschaltkreise, passive Elektronikkomponenten, aktive Elektronikkomponenten, optische Komponenten, hartverdrahtete Schaltkreise und ähnliches implementiert und können optional auch durch Firmware und/oder Software realisiert werden. Die Schaltkreise zum Beispiel können in einem oder mehreren Halbleiterchips oder auf Substrathalterungen, wie beispielsweise gedruckte Platinen und ähnlichem, ausgeführt werden. Die Schaltkreise, die einen Block bilden, können durch spezielle Hardware, oder durch einen Prozessor (z. B. einen oder mehrere programmierte Mikroprozessoren und angeschlossene Schaltkreise) oder durch eine Kombination dedizierter Hardware ausgeführt werden, um einige Funktionen des Blocks oder durch einen Prozessor um andere Funktionen des Blocks auszuführen, Jeder Block der Ausführungsformen kann physikalisch in zwei oder mehr zusammenarbeitende oder diskrete Blöcke geteilt werden, ohne von dem Umfang der Beschreibung abzuweichen. Ebenso können die Blöcke der Ausführungsformen physikalisch in mehrere komplexe Blöcke kombiniert werden, ohne vom Umfang der Beschreibung abzuweichen.
-
Obwohl die Beschreibung teilweise gezeigt und beschrieben wurde unter Bezugnahme auf spezielle Ausführungsformen ist es klar, dass verschiedene Änderungen in Form und Details durchgeführt werden können, ohne von dem Umfang der folgenden Patentansprüche abzuweichen.
-
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
-
- US 7679133 [0015]
- US 8553466 [0015]
- US 8654587 [0015]
- US 8559235 [0015]
- US 2011/0233648 [0015]