DE102018113447A1 - Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung - Google Patents

Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung Download PDF

Info

Publication number
DE102018113447A1
DE102018113447A1 DE102018113447.9A DE102018113447A DE102018113447A1 DE 102018113447 A1 DE102018113447 A1 DE 102018113447A1 DE 102018113447 A DE102018113447 A DE 102018113447A DE 102018113447 A1 DE102018113447 A1 DE 102018113447A1
Authority
DE
Germany
Prior art keywords
data
packet
host
upiu
buffer
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
DE102018113447.9A
Other languages
English (en)
Inventor
Young-Min Lee
Sung Ho Seo
Kyung-Phil Yoo
Hwa-Seok Oh
Seong-yong JANG
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 DE102018113447A1 publication Critical patent/DE102018113447A1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0638Organizing or formatting or addressing of data
    • 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/0656Data buffering arrangements
    • 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
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access

Abstract

Ein Verfahren zum Betreiben einer Speichervorrichtung (200) enthält das Empfangen eines ersten Pakets (Paket_H) mit einer Pufferadresse (ADD_Buf), die den Ort eines Datenpuffers aus einer Vielzahl an Datenpuffern in dem Host (100) angibt, von einem Host (100), Zergliedern der Pufferadresse (ADD_Buf) des ersten Pakets (Paket_H) und Übertragen eines zweiten Pakets (Paket_S) mit der Pufferadresse (ADD_Buf) an den Host (100) in Antwort an das erste Paket (Paket_H).

Description

  • 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]

Claims (20)

  1. Verfahren zum Betreiben einer Speichervorrichtung, umfassend: Empfangen eines ersten Pakets (Paket_H) von einem Host (100), wobei das erste Paket (Paket_H) eine Pufferadresse (ADD_Buf) enthält, die den Ort eines Datenpuffers angibt, der aus einer Vielzahl von Datenpuffern in dem Host (100) ausgewählt ist; Zergliedern der Pufferadresse des ersten Pakets (Paket_H); und Übertragen eines zweiten Pakets (Paket_S) mit der Pufferadresse (ADD_Buf) an den Host (100) in Antwort auf das erste Paket (Paket_H).
  2. Verfahren nach Anspruch 1, weiterhin umfassend: Speichern eines Befehls, der von dem ersten Paket (Paket_H) in einer Befehlsreihe abgetrennt wurde, und Speichern der Pufferadresse (ADD_Buf), die dem Befehl in einer Adressreihe entspricht, wobei die Speichervorrichtung (200) die Befehlsreihe und die Adressreihe umfasst.
  3. Verfahren nach Anspruch 2, weiterhin umfassend: Lesen der Pufferadresse (ADD_Buf) von der Adressreihe (542), wobei die Pufferadresse (ADD_Buf), die von der Adressreihe (542) gelesen wurde, in dem zweiten Paket (Paket_S) enthalten ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das erste Paket (Paket_H) einer Datenschreibeanforderung entspricht, das zweite Paket (Paket_S) ein Paket ist, um den Host aufzufordern, Schreibdaten (DATA_W) zu übertragen, und die Pufferadresse den Ort des Datenpuffers angibt, in dem die Schreibdaten (DATA_W) gespeichert sind.
  5. Verfahren nach Anspruch 1, wobei das erste Paket (Paket_H) einer Datenleseanforderung entspricht, das zweite Paket (Paket_S) Lesedaten von der Speichervorrichtung (200) enthält und die Pufferadresse den Ort des Datenpuffers angibt, in dem die Lesedaten zu speichern sind.
  6. Verfahren nach einem der Ansprüche 1 bis 5, weiterhin umfassend: Ermitteln eines Typs des zweiten Pakets (Paket_S), wobei in Antwort auf das Ermitteln, dass das zweite Paket (Paket_S) ein Paket ist, um den Zugriff auf wenigstens einen Datenpuffer aus der Vielzahl der Datenpuffer anzufordern, wobei die Pufferadresse (ADD_Buf) selektiv in dem zweiten Paket (Paket_S) bereitgestellt ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Speichervorrichtung (200) konfiguriert ist, um mit dem Host (100) gemäß einer Universalflashspeicher (UFS) Schnittstelle zu kommunizieren und jedes der ersten und zweiten Pakete (Paket_H; Paket_S) eine UFS Protokollinformationseinheit (UPIU) ist.
  8. Verfahren nach Anspruch 7, wobei das erste Paket (Paket_H) ein Befehl UPIU entsprechend einer Datenschreibe- oder -leseanforderung ist und das zweite Paket (Paket_S) ein data in UPIU oder ein Fertig-zum-Übertragen (RTT) UPIU ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei jedes der ersten und zweiten Pakete einen Kopfbereich (H) mit einer vordefinierten Größe und ein Extrakopfgebiet (EHS), in dem die Pufferadresse (ADD_Buf) niedergelegt ist, enthält.
  10. Verfahren nach Anspruch 9, weiterhin umfassend: Empfangen eines dritten Pakets, das keine Pufferadresse enthält, wobei eine Summe der Größen des Kopfgebiets (H) und des Extrakopfgebiets (EHS) in jedem der ersten und zweiten Pakete (Paket_H; Paket_S) größer ist als eine Größe eines Kopfgebiets (H) des dritten Pakets.
  11. Verfahren zum Betreiben eines Hosts, umfassend: Empfangen eines ersten Pakets (RTT UPIU_1; DATA_IN UPIU) von einer Speichervorrichtung (200; 340), wobei das erste Paket (RTT UPIU_1) eine erste Pufferadresse (PA_1; PA) enthält, die den Ort eines Datenpuffers ausgewählt aus einer Vielzahl an Datenpuffern in dem Host (100) angibt; Abtrennen der ersten Pufferadresse (PA_1; PA) von dem ersten Paket (RTT UPIU_1; DATA_IN UPIU); und Zugreifen auf Daten in einem Datenpuffer, der von der ersten Pufferadresse (PA_1; PA), die abgetrennt wurde, angegeben wird.
  12. Verfahren nach Anspruch 11, weiterhin umfassend: Übertragen eines zweiten Pakets (DATA_OUT UPIU) an die Speichervorrichtung (200), wobei das zweite Paket (DATA_OUT UPIU) Schreibdaten (DATA_W) enthält, die in dem Datenpuffer gespeichert sind, dessen Ort durch die erste Pufferadresse (PA_1) angegeben wurde, wobei das erste Paket (RTT UPIU_1) ein Paket ist, um die Übertragung der Schreibdaten (DATA_W) anzufordern.
  13. Verfahren nach Anspruch 11, weiterhin umfassend: Speichern von Lesedaten (DATA_R) in dem Datenpuffer an dem Ort, der durch die erste Pufferadresse (PA) angegeben wird, wobei das erste Paket (DATA_IN UPIU) die Lesedaten (DATA_R) von der Speichervorrichtung (200) enthält.
  14. Verfahren nach Anspruch 11, weiterhin umfassend: Überprüfen eines Übertragungsanforderungsbeschreibers, der Information über ein zweites Paket enthält, in einem ersten Gebiet eines Hostspeichers (330; 410) in dem Host (100); Erfassen, in einem zweiten Gebiet des Hostspeichers (330), einer zweiten Pufferadresse, die den Ort des Datenpuffers, auf den zuzugreifen ist, angibt, gemäß einem Ergebnis der Prüfung des Übertragungsanforderungsbeschreibers; und Übertragen des zweiten Pakets mit der zweiten Pufferadresse an die Speichervorrichtung (200).
  15. Verfahren nach Anspruch 14, wobei das erste Paket von der Speichervorrichtung (200) in Antwort an das zweite Paket empfangen wird und die erste Pufferadresse unter Verwendung der zweiten Pufferadresse in der Speichervorrichtung (200) erzeugt wird.
  16. Verfahren nach Anspruch 14 oder 15, wobei das Zugreifen auf die Daten in dem Datenpuffer ohne das Erfassen in dem zweiten Gebiet des Hostspeichers (330; 410) durchgeführt wird.
  17. Verfahren nach Anspruch 11, wobei der Host (100) konfiguriert ist, um mit der Speichervorrichtung (200) gemäß einer Universalflashspeicher (UFS) Schnittstelle zu kommunizieren und das erste Paket (RTT UPIU_1; DATA_IN UPIU) eine UFS Protokollinformationseinheit (UPIU) ist.
  18. Verfahren nach Anspruch 17, außerdem umfassend: Erzeugen eines zweiten Pakets (DATA_OUT UPIU) mit Schreibdaten (DATA_W), auf die in dem Datenpuffer an dem durch die erste Pufferadresse angegebenen Ort zugegriffen wird; und Übermitteln des zweiten Pakets (DATA_OUT UPIU) an die Speichervorrichtung (200), wobei das erste Paket eine Fertig-zum-Übertragen (RTT) UPIU ist.
  19. Verfahren nach Anspruch 17, wobei das erste Paket (DATA_IN UPIU) eine data_in UPIU mit Lesedaten (DATA_R) ist und das Zugreifen auf die Daten das Speichern der Lesedaten (DATA R) in dem Datenpuffer an einem durch die erste Pufferadresse (PA) angegebenen Ort umfasst.
  20. Verfahren nach einem der Ansprüche 11 bis 19, wobei: der Host (100) einen Anwendungsprozessor mit einer Hostcontrollerschnittstelle und wenigstens einem geistigen Eigentum und einem Hostspeicher (330; 410) mit den Datenpuffern enthält, der Zugriff auf die Daten durch Zugriff auf den Hostspeicher (330; 410) unter Verwendung der Hostcontrollerschnittstelle durchgeführt wird, und der Hostspeicher (330; 410) zwischen der Hostcontrollerschnittstelle und dem wenigstens einen geistigen Eigentum geteilt wird.
DE102018113447.9A 2017-07-31 2018-06-06 Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung Pending DE102018113447A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0097133 2017-07-31
KR1020170097133A KR102395190B1 (ko) 2017-07-31 2017-07-31 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법

Publications (1)

Publication Number Publication Date
DE102018113447A1 true DE102018113447A1 (de) 2019-01-31

Family

ID=65004349

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018113447.9A Pending DE102018113447A1 (de) 2017-07-31 2018-06-06 Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung

Country Status (4)

Country Link
US (4) US10599591B2 (de)
KR (1) KR102395190B1 (de)
CN (1) CN109324754B (de)
DE (1) DE102018113447A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6967959B2 (ja) * 2017-12-08 2021-11-17 キオクシア株式会社 メモリシステムおよび制御方法
JP7048289B2 (ja) * 2017-12-08 2022-04-05 キオクシア株式会社 情報処理装置および方法
US10664420B2 (en) * 2018-04-19 2020-05-26 Avago Technologies International Sales Pte. Limited System and method for port-to-port communications using direct memory access
US10891078B2 (en) 2018-06-22 2021-01-12 Western Digital Technologies, Inc. Storage device with a callback response
JP7155028B2 (ja) * 2019-01-29 2022-10-18 キオクシア株式会社 メモリシステムおよび制御方法
JP7143232B2 (ja) * 2019-01-29 2022-09-28 キオクシア株式会社 メモリシステムおよび制御方法
US10802750B2 (en) * 2019-02-28 2020-10-13 Silicon Motion Inc. Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module
US11275527B1 (en) * 2019-06-11 2022-03-15 Western Digital Technologies, Inc. Execution condition embedded in a command or a request to storage device
KR20210016938A (ko) 2019-08-06 2021-02-17 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
JP2021111210A (ja) * 2020-01-14 2021-08-02 キヤノン株式会社 情報処理装置、およびその制御方法
US11068421B1 (en) * 2020-02-20 2021-07-20 Silicon Motion, Inc. Memory device and associated flash memory controller
TWI738359B (zh) * 2020-05-26 2021-09-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20220070613A (ko) * 2020-11-23 2022-05-31 삼성전자주식회사 호스트 장치, 메모리 장치의 구동 방법 및 메모리 시스템
KR102547950B1 (ko) * 2021-01-13 2023-06-27 삼성전자주식회사 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템
CN116601594A (zh) * 2021-03-18 2023-08-15 华为技术有限公司 存储器操作的执行方法和装置
US11941253B2 (en) * 2021-04-22 2024-03-26 EMC IP Holding Company, LLC Storage system and method using persistent memory
CN113467425B (zh) * 2021-07-05 2022-09-09 中国兵器装备集团自动化研究所有限公司 一种应用于龙芯下位机的自主控制测试方法及系统
US11815938B2 (en) 2021-07-13 2023-11-14 SK Hynix Inc. Storage device and method of operating the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564271B2 (en) * 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US7472205B2 (en) * 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
KR100449807B1 (ko) * 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
US7284075B2 (en) * 2004-03-23 2007-10-16 Intel Corporation Inbound packet placement in host memory
US7469309B1 (en) * 2005-12-12 2008-12-23 Nvidia Corporation Peer-to-peer data transfer method and apparatus with request limits
FR2908195B1 (fr) * 2006-11-06 2009-02-06 Oberthur Card Syst Sa Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre
US20100088232A1 (en) * 2008-03-21 2010-04-08 Brian Gale Verification monitor for critical test result delivery systems
US8255593B2 (en) * 2009-09-29 2012-08-28 Oracle America, Inc. Direct memory access with striding across memory
EP2563091B1 (de) * 2010-04-23 2016-06-08 Huawei Device Co., Ltd. Modul für drahtlosen internetzugang, host, kommunikationsverfahren dafür und datenkarte
US8386644B1 (en) * 2010-10-11 2013-02-26 Qlogic, Corporation Systems and methods for efficiently processing large data segments
CN102075401B (zh) * 2011-01-28 2013-08-07 华为技术有限公司 在pcie总线上传输报文的方法、设备和系统
US8799920B2 (en) 2011-08-25 2014-08-05 Virtustream, Inc. Systems and methods of host-aware resource management involving cluster-based resource pools
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN102609215B (zh) * 2012-04-11 2015-05-27 华为数字技术(成都)有限公司 数据处理方法及装置
TWI526838B (zh) * 2013-02-27 2016-03-21 東芝股份有限公司 記憶體裝置
KR101861744B1 (ko) 2013-02-28 2018-05-29 삼성전자주식회사 데이터 블록 오프셋에 기초하여 버퍼 디스크립터의 타겟 엔트리 어드레스를 계산할 수 있는 집적 회로와 상기 집적 회로를 포함하는 시스템
CA2901757A1 (en) * 2013-03-07 2014-09-12 Charles I. Peddle High speed flash controllers
US9069660B2 (en) * 2013-03-15 2015-06-30 Apple Inc. Systems and methods for writing to high-capacity memory
US9317444B2 (en) 2013-03-15 2016-04-19 Vmware, Inc. Latency reduction for direct memory access operations involving address translation
US20140310536A1 (en) * 2013-04-16 2014-10-16 Qualcomm Incorporated Storage device assisted inline encryption and decryption
CN104216837A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
KR102094902B1 (ko) 2013-07-08 2020-03-30 삼성전자주식회사 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템
US10003675B2 (en) * 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
JP2015186233A (ja) * 2014-03-26 2015-10-22 富士通株式会社 パケット処理装置、及びパケット処理方法
US9984007B2 (en) * 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof
KR102196971B1 (ko) * 2014-03-28 2020-12-31 삼성전자주식회사 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
WO2015194005A1 (ja) 2014-06-19 2015-12-23 株式会社日立製作所 ストレージ装置およびインタフェース装置
US20160011790A1 (en) 2014-07-14 2016-01-14 Sandisk Technologies Inc. Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)
KR102264444B1 (ko) * 2014-09-04 2021-06-15 삼성전자주식회사 전자 장치에서 기능 실행 방법 및 장치
US10146475B2 (en) 2014-09-09 2018-12-04 Toshiba Memory Corporation Memory device performing control of discarding packet
US9720866B2 (en) 2014-09-11 2017-08-01 Kabushiki Kaisha Toshiba Interface circuit executing protocol control in compliance with first and second interface standards
KR102238652B1 (ko) 2014-11-12 2021-04-09 삼성전자주식회사 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법
US20160162416A1 (en) 2014-12-08 2016-06-09 Intel Corporation Apparatus and Method for Reducing Latency Between Host and a Storage Device
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
KR20160148940A (ko) 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US20170031601A1 (en) 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Memory system and storage system
US10031670B2 (en) * 2015-09-04 2018-07-24 Toshiba Memory Corporation Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices
US10452556B2 (en) 2015-09-11 2019-10-22 Toshiba Memory Corporation Memory device and information processing device
US10467155B2 (en) * 2015-10-26 2019-11-05 Micron Technology, Inc. Command packets for the direct control of non-volatile memory channels within a solid state drive
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
US10019403B2 (en) * 2015-11-04 2018-07-10 International Business Machines Corporation Mapping data locations using data transmissions
US9959227B1 (en) * 2015-12-16 2018-05-01 Amazon Technologies, Inc. Reducing input/output latency using a direct memory access (DMA) engine
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US10318334B2 (en) * 2017-07-07 2019-06-11 Netronome Systems, Inc. Virtio relay
US20190044879A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Technologies for reordering network packets on egress

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7679133B2 (en) 2007-11-08 2010-03-16 Samsung Electronics Co., Ltd. Vertical-type non-volatile memory devices
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US20110233648A1 (en) 2010-03-26 2011-09-29 Samsung Electronics Co., Ltd. Three-Dimensional Semiconductor Memory Devices And Methods Of Fabricating The Same
US8654587B2 (en) 2010-08-11 2014-02-18 Samsung Electronics Co., Ltd. Nonvolatile memory devices, channel boosting methods thereof, programming methods thereof, and memory systems including the same
US8559235B2 (en) 2010-08-26 2013-10-15 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof and memory system including the same

Also Published As

Publication number Publication date
US10599591B2 (en) 2020-03-24
US11080217B2 (en) 2021-08-03
US20190034364A1 (en) 2019-01-31
US20200192835A1 (en) 2020-06-18
US20230144485A1 (en) 2023-05-11
US11573915B2 (en) 2023-02-07
US11775455B2 (en) 2023-10-03
US20210326280A1 (en) 2021-10-21
KR20190013106A (ko) 2019-02-11
CN109324754A (zh) 2019-02-12
CN109324754B (zh) 2024-04-02
KR102395190B1 (ko) 2022-05-06

Similar Documents

Publication Publication Date Title
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102017128952B4 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102013110085B4 (de) Nicht-flüchtige speichervorrichtung
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE102013016993B4 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE102013016609A1 (de) Vorrichtung und Verfahren für ein Storage Class Memory mit niedrigem Energieverbrauch, niedriger Latenz und hoher Kapazität
DE102017104448A1 (de) Datenspeichervorrichtung
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE102015012566A1 (de) Mehrlagenkonzept für logische speicherungsverwaltung
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE202010017668U1 (de) Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung
DE112011106060T5 (de) Verfahren und Vorrichtung zum Verteilen von Code- und Datenspeicherungen zwischen flüchtigem und nichtflüchtigem Speicher
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE102020116362B3 (de) Dynamische zuweisung von unterblöcken
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE112015003536T5 (de) Host-Verwalter nicht flüchtiger Speicher
DE102019120573A1 (de) Technologien zur rechnerischen speicherung über ablade-kernel-erweiterungen
DE102021115626A1 (de) Datenaggregation in zns-laufwerk
DE112018004252T5 (de) Redundanzcodierstreifen auf der basis eines koordinierten internen adressschemas über mehrere vorrichtungen
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
DE102021114458A1 (de) Befehlsentleerung unter verwendung des host-speicherpuffers
DE112017001118T5 (de) Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums

Legal Events

Date Code Title Description
R012 Request for examination validly filed