DE102021210515A1 - Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben - Google Patents

Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben Download PDF

Info

Publication number
DE102021210515A1
DE102021210515A1 DE102021210515.7A DE102021210515A DE102021210515A1 DE 102021210515 A1 DE102021210515 A1 DE 102021210515A1 DE 102021210515 A DE102021210515 A DE 102021210515A DE 102021210515 A1 DE102021210515 A1 DE 102021210515A1
Authority
DE
Germany
Prior art keywords
rpmb
host
piu
data
message
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
DE102021210515.7A
Other languages
English (en)
Inventor
Hui Won LEE
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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
Priority claimed from KR1020210106006A external-priority patent/KR20220039562A/ko
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of DE102021210515A1 publication Critical patent/DE102021210515A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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
    • G06F3/064Management of blocks
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die vorliegende Technologie bezieht sich auf eine elektronische Einrichtung. Gemäß der vorliegenden Technologie kann eine elektronische Einrichtung, die eine verbesserte Sicherheitsfunktion bereitstellt, eine Speichereinrichtung mit einem wiedergabegeschützten Speicherblock, RPMB, und eine Host-Einrichtung, die so konfiguriert ist, dass sie eine Befehlsprotokollinformationseinheit, PIU, bereitstellt, die die Speichereinrichtung anweist, auf den RPMB zuzugreifen, umfassen. Die Befehls-PIU kann ein Basis-Header-Segment, das ein Gesamt-Extra-Header-Segment-Längenfeld mit einem anderen Wert als 0 enthält, und ein Extra-Header-Segment mit einer Host-RPMB-Nachricht, enthalten.

Description

  • TECHNISCHES GEBIET
  • Die offenbarte Technologie bezieht sich auf eine elektronische Einrichtung, und insbesondere auf eine Speichereinrichtung, eine Host-Einrichtung, eine elektronische Einrichtung, die die Speichereinrichtung und die Host-Einrichtung enthält, und ein Verfahren zu deren Betrieb.
  • HINTERGRUND
  • Eine Speicher- oder Datenspeichereinrichtung kann eine Speichereinrichtung, die Daten speichert, und einen Controller umfassen, der es einer Host-Einrichtung wie einem Computer oder einem Smartphone ermöglicht, die Daten aus der Datenspeichereinrichtung zu lesen und/oder in sie zu schreiben. Die Speichereinrichtung kann je nach ihrer Fähigkeit, gespeicherte Daten bei fehlender Stromversorgung zu halten, als flüchtige Speichereinrichtung oder als nichtflüchtige Speichereinrichtung bezeichnet werden.
  • Die flüchtige Speichereinrichtung behält die gespeicherten Daten bei, wenn sie mit Strom versorgt wird ist, aber wenn die Stromversorgung unterbrochen wird, gehen die gespeicherten Daten verloren. Beispiele für eine flüchtige Speichereinrichtung sind ein statischer Direktzugriffsspeicher (SRAM) und ein dynamischer Direktzugriffsspeicher (DRAM).
  • Die nichtflüchtige Speichereinrichtung kann die gespeicherten Daten auch bei Fehlen einer Stromquelle beibehalten. Beispiele für eine nichtflüchtige Speichereinrichtung sind ein Festwertspeicher (ROM), ein programmierbares ROM (PROM), ein elektrisch programmierbares ROM (EPROM), ein elektrisch löschbares und programmierbares ROM (EEPROM) und ein Flash-Speicher.
  • ZUSAMMENFASSUNG
  • Die Ausführungsformen der offenbarten Technologie stellen neben anderen Merkmalen und Vorteilen eine Host-Einrichtung, die eine verbesserte Sicherheitsfunktion bietet, eine elektronische Einrichtung, die die Host-Einrichtung enthält, und ein Verfahren zu deren Betrieb bereit.
  • In einer Ausführungsform der offenbarten Technologie kann eine Speichereinrichtung eine nichtflüchtige Speichereinrichtung, die einen wiedergabeschützen Speicherblock (Replay Protected Memory Block; RPMB) enthält, und einen Speichercontroller umfassen, der so konfiguriert ist, dass er eine Befehls-Protokollinformationseinheit (Protocol Information Unit; PIU) mit einer Host-RPMB-Nachricht von einem externen Host empfängt und Daten in dem RPMB entsprechend der unter Verwendung der Host-RPMB-Nachricht durchgeführten Authentifizierung speichert. Die Befehls-PIU kann ein Basis-Header-Segment enthalten, das gemeinsam in einer PIU enthalten ist, die zwischen dem externen Host und dem Speichercontroller übertragen/empfangen wird, sowie ein Extra-Header-Segment, das die Host-RPMB-Nachricht enthält.
  • In einigen Ausführungsformen der offenbarten Technologie kann eine Speichereinrichtung eine nichtflüchtige Speichereinrichtung enthalten, die einen wiedergabegeschützten Speicherblock (RPMB) und einen Speichercontroller umfasst, der so konfiguriert ist, dass er eine Befehls-Protokollinformationseinheit (PIU) mit einer Host-RPMB-Nachricht von einem externen Host empfängt und im RPMB gespeicherte Daten liest. Die Befehls-PIU kann ein Basis-Header-Segment enthalten, das gemeinsam in einer PIU enthalten ist, die zwischen dem externen Host und dem Speichercontroller übertragen/empfangen wird, sowie ein Extra-Header-Segment, das die Host-RPMB-Nachricht enthält.
  • In einigen Ausführungsformen der offenbarten Technologie kann eine Host-Einrichtung, die eine Speichereinrichtung mit einem wiedergabegeschützten Speicherblock (RPMB) steuert, einen Host-Nachrichten-Authentifizierungs-Code-(Message-Authentication-Code; MAC)-Rechner, der so konfiguriert ist, dass er einen Host-MAC unter Verwendung von Host-Metadaten berechnet, und einen Host-PIU-Generator enthalten, der so konfiguriert ist, dass er eine Befehls-Protokollinformationseinheit (PIU) bereitstellt, die die Speichereinrichtung anweist, auf den RPMB zuzugreifen. Die Befehls-PIU kann ein Basis-Header-Segment enthalten, das gemeinsam in einer PIU enthalten ist, die zwischen der Host-Einrichtung und der Speichereinrichtung übertragen wird, sowie ein Extra-Header-Segment, das den Host-MAC und die Host-Metadaten enthält.
  • In einigen Ausführungsformen der offenbarten Technologie kann eine elektronische Einrichtung eine Speichereinrichtung mit einem wiedergabegeschützten Speicherblock (RPMB) und eine Host-Einrichtung umfassen, die so konfiguriert ist, dass sie eine Befehls-Protokollinformationseinheit (PIU) bereitstellt, die die Speichereinrichtung anweist, auf den RPMB zuzugreifen. Die Befehls-PIU kann ein Basis-Header-Segment enthalten, das ein Gesamt-Extra-Header-Segment-Längenfeld mit einem anderen Wert als 0 und ein Extra-Header-Segment mit einer Host-RPMB-Nachricht enthält.
  • Gemäß der vorliegenden Technologie werden eine Speichereinrichtung, die eine verbesserte Sicherheitsfunktion bietet, eine Host-Einrichtung, eine elektronische Einrichtung, die die Speichereinrichtung und die Host-Einrichtung enthält, und ein Verfahren zum Betrieb derselben bereitgestellt.
  • Figurenliste
    • 1 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 2 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung aus 1 zeigt.
    • 3 ist ein Diagramm, das eine Beispielkonfiguration eines der Speicherblöcke von 2 zeigt.
    • 4 ist ein Diagramm, das eine Einheit einer Datenkommunikation zwischen einem RPMB-Host-Controller 410 und einem RPMB-Einrichtungs-Controller 210 zeigt.
    • 5 ist ein Diagramm, das eine Beispielstruktur eines Basis-Header-Segments einer Protokollinformationseinheit (PIU) zeigt.
    • 6 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht zeigt.
    • 7 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 8 ist ein Flussdiagramm, das ein Beispiel für einen authentifizierten Datenschreibvorgang in einem normalen RPMB-Modus zeigt.
    • 9 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht darstellt, die durch den Vorgang S805 von 8 bereitgestellt wird.
    • 10 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht darstellt, die durch den Vorgang S813 von 8 bereitgestellt wird.
    • 11 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht darstellt, die durch den Vorgang S819 von 8 bereitgestellt wird.
    • 12 ist ein Flussdiagramm, das ein Beispiel für einen authentifizierten Datenlesevorgang im normalen RPMB-Modus zeigt.
    • 13 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht darstellt, die durch den Vorgang S1005 von 12 bereitgestellt wird.
    • 14 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht darstellt, die durch den Vorgang S1011 von 12 bereitgestellt wird.
    • 15 ist ein Diagramm, das eine Beispielkonfiguration einer Befehls-PIU zeigt.
    • 16 ist ein Diagramm, das eine Beispielkonfiguration einer Antwort-PIU zeigt.
    • 17 ist ein Flussdiagramm, das ein Beispiel für einen authentifizierten Datenschreibvorgang in einem erweiterten (advanced) RPMB-Modus zeigt.
    • 18 ist ein Diagramm, das eine Beispielstruktur einer Befehls-PIU zeigt, die im Vorgang S1201 von 17 übertragen wird.
    • 19 ist ein Diagramm, das eine Beispielstruktur einer Antwort-PIU zeigt, die im Vorgang S1207 von 17 übertragen wird.
    • 20 ist ein Flussdiagramm, das den authentifizierten Datenlesevorgang im erweiterten RPMB-Modus veranschaulicht.
    • 21 ist ein Diagramm, das eine Beispielstruktur einer Befehls-PIU zeigt, die im Vorgang S1301 von 20 übertragen wird.
    • 22 ist ein Diagramm, das eine Beispielstruktur einer Antwort-PIU zeigt, die im Vorgang S1305 von 20 übertragen wird.
    • 23 ist ein Flussdiagramm, das ein Beispiel für einen Authentifizierungsschlüssel-Programmiervorgang im erweiterten RPMB-Modus zeigt.
    • 24 ist ein Diagramm, das ein Beispiel für einen PIU-Befehl darstellt, der bei dem Authentifizierungsschlüssel-Programmiervorgang bereitgestellt wird.
    • 25 ist ein Diagramm, das ein Beispiel für eine Antwort-PIU darstellt, die bei der Programmierung des Authentifizierungsschlüssels bereitgestellt wird.
    • 26 ist ein Diagramm, das ein Beispiel für einen PIU-Sender 2600 in einer Initiatoreinrichtung zeigt.
    • 27 ist ein Diagramm, das ein Beispiel für einen PIU-Empfänger 2700 in einer Zieleinrichtung zeigt.
    • 28 ist ein Diagramm, das ein weiteres Beispiel für einen Speichercontroller aus 1 zeigt.
    • 29 ist ein Blockdiagramm, das ein Beispiel für ein Speicherkartensystem zeigt, das eine Speichereinrichtung enthält, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 30 ist ein Blockdiagramm, das ein Solid-State-Drive-System (SSD) zeigt, das eine Speichereinrichtung enthält, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
    • 31 ist ein Blockdiagramm, das ein Benutzersystem zeigt, das eine Speichereinrichtung enthält, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die in diesem Patentdokument offenbarte Technologie kann in verschiedenen Ausführungsformen implementiert werden, um Datenspeichereinrichtungen und Datenspeicherverfahren bereitzustellen, die neben anderen Merkmalen und Vorteilen eine verbesserte Sicherheit durch die Verwendung von Sicherheitsprotokollen bereitstellen können, die wiedergabegeschützte Speicherblockmerkmale umfassen. Spezifische strukturelle oder funktionale Beschreibungen von Ausführungsformen, die in der vorliegenden Spezifikation oder Anwendung offenbart werden, werden nur dargestellt, um Beispielausführungen der offenbarten Technologie zu beschreiben. Die Ausführungsformen der offenbarten Technologie können in verschiedenen Formen implementiert werden und sollten nicht als auf die in der vorliegenden Spezifikation oder Anwendung beschriebenen Ausführungsformen beschränkt verstanden werden.
  • 1 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • Bezugnehmend auf 1 kann die Speichereinrichtung 50 eine Speichereinrichtung 100 und einen Speichercontroller 200 umfassen. Die Speichereinrichtung 50 kann eine Einrichtung umfassen, die Daten unter der Steuerung eines Hosts 400, wie z. B. eines Mobiltelefons, eines Smartphones, eines MP3-Players, eines Laptops, eines Desktop-Computers, eines Game-Players, eines Fernsehers, eines Tablet-PCs oder eines fahrzeuggestützten Infotainment-Systems, speichert. Alternativ kann die Speichereinrichtung 50 eine Einrichtung umfassen, die Daten unter der Steuerung des Hosts 400 speichert, der Daten mit hoher Kapazität an einem Ort speichert, z. B. auf einem Server oder in einem Datenzentrum.
  • Bei der Speichereinrichtung 50 kann es sich um jede Art von Datenspeichereinrichtung handeln, die über eine Host-Schnittstelle (Host-Interface) mit dem Host 400 in Verbindung steht. Beispiele für die Speichereinrichtung 50 können eine SSD, eine Multimediakarte in Form einer MMC, einer eMMC, einer RS-MMC und einer Mikro-MMC, eine sichere digitale Karte in Form einer SD, einer MiniSD und einer Mikro-SD, eine Universal Serial Bus (USB)-Speichereinrichtung, eine Universal Flash Storage (UFS)-Einrichtung, eine Speichereinrichtung des Typs PCMCIA (Personal Computer Memory Card International Association), eine Speichereinrichtung des Typs PCI (Peripheral Component Interconnection), eine Speichereinrichtung des Typs PCI-Express (PCI-E), eine Compact-Flash-Karte (CF), eine Smart-Media-Karte und einen Memory-Stick umfassen.
  • Die Speichereinrichtung 50 kann als eine beliebige von verschiedenen Arten von Gehäusen hergestellt werden. Zum Beispiel kann die Speichereinrichtung 50 als eine von verschiedenen Arten von Gehäusen hergestellt werden, wie z. B. als Package-on-Package (POP), als System-in-Package (SIP), als System-on-Chip (SOC), als Multi-Chip-Package (MCP), als Chip-on-Board (COB), als Wafer-Level-Fabricated-Package (WFP) und als Wafer-Level-Stack-Package (WSP).
  • Die Speichereinrichtung 100 kann Daten speichern. Die Speichereinrichtung 100 arbeitet unter der Steuerung des Speichercontrollers 200. Die Speichereinrichtung 100 kann ein Speicherzellenfeld (nicht dargestellt) mit einer Vielzahl von Speicherzellen enthalten, die Daten speichern.
  • Jede der Speicherzellen kann als Single-Level-Zelle (SLC), die ein Datenbit speichert, als Multi-Level-Zelle (MLC), die zwei Datenbits speichert, als Triple-Level-Zelle (TLC), die drei Datenbits speichert, oder als Quad-Level-Zelle (QLC), die vier Datenbits speichern kann, konfiguriert sein.
  • Das Speicherzellenfeld (nicht dargestellt) kann eine Vielzahl von Speicherblöcken enthalten. Jeder Speicherblock kann eine Vielzahl von Seiten enthalten. In einer Ausführungsform kann die Seite die kleinste Einheit für Lese- oder Schreib-(Programmier-)Vorgänge in der Speichereinrichtung 100 sein. Der Speicherblock kann die kleinste Einheit für Löschvorgänge sein.
  • Die in der Speichereinrichtung 100 enthaltenen Speicherblöcke können einen geschützten Speicherblock wie einen wiedergabegeschützten Speicherblock (Replay Protected Memory Block; RPMB) 110a und einen normalen Block Normal-BLK 110b umfassen. Der geschützte Speicherblock ist so konfiguriert, dass er Informationen zur Authentifizierung von Daten speichert, die aus der Speichereinrichtung gelesen oder in sie geschrieben werden sollen, und auf die nur nach erfolgreicher Authentifizierung auf der Grundlage eines Sicherheitsauthentifizierungsprotokolls zugegriffen werden kann, um nicht authentifizierte Zugriffe einschließlich Wiedergabe-Angriffe (sog. Replay-Angriffe) zu verhindern.
  • Der RPMB 110a kann einen Speicherblock enthalten, auf den nur durch einen vorbestimmten speziellen Befehl oder eine Authentifizierung zugegriffen werden kann. Der normale Block 110b kann einen Speicherblock enthalten, auf den ohne separate Authentifizierung zugegriffen werden kann. Der normale Block 110b kann einen Speicherblock enthalten, der andere Daten als die im RPMB 110a gespeicherten Daten speichert.
  • Wenn die Speichereinrichtung 50 die mit dem RPMB 110a verbundenen technischen Merkmale unterstützt, kann auf den RPMB 110a in zwei oder mehr Modi zugegriffen werden. Beispielsweise kann der Zugriff auf den RPMB 110a in einem normalen RPMB-Modus oder in einem erweiterten RPMB-Modus erfolgen.
  • Ein Schreibzählwert, der angibt, wie oft Daten erfolgreich in dem RPMB 110a gespeichert wurden, kann auf eine vorgegebene Anzahl von Schreibvorgängen begrenzt werden. Wenn der Schreibzählwert für den RPMB 110a einen maximalen Schreibzählwert erreicht, kann daher nur noch ein Lesevorgang auf dem RPMB 110a zugelassen werden.
  • Eine Einheit für einen Schreib- oder Programmiervorgang zum Speichern von Daten im RPMB 110a und eine Einheit für einen Lesevorgang zum Lesen von Daten aus dem RPMB 110a kann im Voraus festgelegt werden. Wenn beispielsweise im normalen RPMB-Modus auf den RPMB 110a zugegriffen wird, können Daten in einer Einheit von 256 Bytes gespeichert oder gelesen werden. Wenn auf den RPMB 110a im erweiterten RPMB-Modus zugegriffen wird, können die Daten in einer Einheit von 4 KByte gespeichert oder gelesen werden. Die Einheit oder Größe der Daten, auf die im erweiterten RPMB-Modus zugegriffen wird, ist jedoch nicht auf 4 KByte beschränkt und kann in Abhängigkeit von der Dateneinheit variieren, auf deren Grundlage der Programmiervorgang von der Speichereinrichtung 100 durchgeführt wird.
  • Der Zugriff auf den RPMB 110a kann nur bei erfolgreicher Authentifizierung zugelassen werden. Die Authentifizierung für den RPMB 110a kann beinhalten, dass sowohl der Host 400 als auch die Speichereinrichtung 50 denselben Authentifizierungsschlüssel nur einmal zum ersten Mal speichern und dass feststellt wird, ob die von dem Host 400 und der Speichereinrichtung 50 erzeugten Nachrichtenauthentifizierungscodes (Message Authentifizierung Codes; MACs) mit den zuvor vereinbarten Daten und dem Authentifizierungsschlüssel übereinstimmen. Der MAC kann sowohl vom Host 400 als auch von der Speichereinrichtung 50 unter Verwendung eines Hash-basierten MACs (HMAC SHA-256) erzeugt werden, aber die offenbarte Technologie ist nicht darauf beschränkt. Die in dem RPMB 110a gespeicherten Daten können beibehalten werden, während der Authentifizierungsschlüssel und der Schreibzählwert des RPMB 110a beibehalten werden.
  • In 1 enthält die Speichereinrichtung 100 einen RPMB 110a, aber die Speichereinrichtung 100 kann auch zwei oder mehr RPMBs 110a enthalten. In diesem Fall kann jeder RPMB 110a einen eindeutigen bzw. einzigartigen Authentifizierungsschlüssel und Schreibzählwert aufweisen.
  • In einer Ausführungsform kann ein RPMB 110a in eine Vielzahl von RPMB-Regionen unterteilt sein. Die maximale Anzahl von RPMB-Regionen in dem RPMB 110a kann vier betragen. Jede RPMB-Region kann einen eindeutigen Authentifizierungsschlüssel und Schreibzählwert aufweisen.
  • Die in dem RPMB 110a enthaltenen RPMB-Regionen können gemäß einem RPMB-Deskriptor definiert werden. Der RPMB-Deskriptor kann durch einen vom Host 400 an die Speichereinrichtung 50 gegebenen Befehl oder durch einen von der Speichereinrichtung 50 an den Host 400 gegebenen Befehl bereitgestellt werden. Der RPMB-Deskriptor kann 8 Bits des RPMB-Region-Freigabewertes bRPMBRegionEnable zum Einstellen der in dem RPMB 110a enthaltenen RPMB-Regionen enthalten.
  • In einer Ausführungsform kann der Modus, der den Zugriff der Speichereinrichtung 50 auf den RPMB 110a des normalen RPMB-Modus und des erweiterten RPMB-Modus unterstützt, anhand des RPMB-Region-Freigabewerts bRPMBRegionEnable bestimmt werden.
  • In einer Ausführungsform kann der RPMB-Region-Freigabewert bRPMBRegionEnable gemäß einer in der nachstehenden Tabelle 1 beschriebenen Regel festgelegt werden. [Tabelle 1]
    Bit Regel
    BIT-0 Unwichtig. RPMB-Region 0 ist unabhängig von diesem Bitwert immer aktiviert
    BIT-1 Auf 1 gesetzt, um RPMB-Region 1 zu aktivieren
    BIT-2 Auf 1 setzen, um RPMB-Region 2 zu aktivieren
    B IT-3 Auf 1 gesetzt, um RPMB-Region 3 zu aktivieren
    BIT-4 Auf 1 gesetzt, um den Erweiterten RPMB-Modus zu aktivieren. (Auf 0 gesetzt, um den Normalen RPMB-Modus zu aktivieren.
    BIT-5, BIT-6, BIT-7 reserviert
  • In einer Ausführungsform kann ein Zugriffsverfahren des RPMB 110a auf den normalen RPMB-Modus oder den erweiterten RPMB-Modus gemäß dem RPMB-Region-Freigabewert bRPMBRegionEnable eingestellt werden. Die Speichereinrichtung 50 kann feststellen, dass eine Anforderung des Hosts 400 fehlgeschlagen ist, wenn eine vom Host 400 bereitgestellte Zugriffsanforderung für den RPMB 110a von einem eingestellten RPMB-Modus abweicht.
  • In einer Ausführungsform kann die Speichereinrichtung 100 mindestens einen DDR-SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) Speicher, einen LPDDR4-SDRAM (Low Power Double Data Rate), einen GDDR-SDRAM (Graphics Double Data Rate), einen LPDDR (Low Power DDR), einen Rambus Dynamic Random Access Memory (RDRAM) einen NAND-Flash-Speicher, einen vertikalen NAND-Flash-Speicher, einen NOR-Flash-Speicher, einen resistiven Direktzugriffsspeicher (RRAM), einen Phasenänderungsspeicher (PRAM), einen magnetoresistiven Direktzugriffsspeicher (MRAM), einen ferroelektrischen Direktzugriffsspeicher (FRAM), einen Spin-Transfer-Torque-Direktzugriffsspeicher (STT-RAM) oder andere umfassen. In diesem Patentdokument wird der Einfachheit halber davon ausgegangen, dass die Speichereinrichtung 100 ein NAND-Flash-Speicher ist.
  • Die Speichereinrichtung 100 ist so konfiguriert, dass sie einen Befehl und eine Adresse von der Speichersteuerung 200 empfängt und auf einen durch die Adresse ausgewählten Bereich im Speicherzellenfeld zugreift. Die Speichereinrichtung 100 kann einen durch den Befehl angewiesenen Betriebsvorgang in dem durch die Adresse ausgewählten Bereich durchführen. Zum Beispiel kann die Speichereinrichtung 100 einen Schreibvorgang (Programmiervorgang), einen Lesevorgang und einen Löschvorgang durchführen. Während des Programmiervorgangs kann die Speichereinrichtung 100 Daten in den durch die Adresse ausgewählten Bereich programmieren. Während des Lesevorgangs kann die Speichereinrichtung 100 Daten aus dem durch die Adresse ausgewählten Bereich lesen. Während des Löschvorgangs kann die Speichereinrichtung 100 die in dem durch die Adresse ausgewählten Bereich gespeicherten Daten löschen.
  • Der Speichercontroller 200 kann den Gesamtbetrieb der Speichereinrichtung 50 steuern.
  • Wenn die Speichereinrichtung 50 mit Strom versorgt wird, kann der Speichercontroller 200 Operationen, d. h. Betriebsvorgänge, ausführen, die mit der Firmware verbunden sind, wie z. B. einer Flash-Übersetzungsschicht (Flash-Translation-Layer; FTL) zur Steuerung der Kommunikation zwischen dem Host 400 und der Speichereinrichtung 100.
  • In einer Ausführungsform kann der Speichercontroller 200 Daten und eine logische Blockadresse (Logical Block Address; LBA) vom Host 400 empfangen und die LBA in eine physikalische Blockadresse (Physical Block Address; PBA) umwandeln, die einen physikalischen Ort oder eine Adresse von Speicherzellen angibt, in denen die in der Speichereinrichtung 100 enthaltenen Daten gespeichert werden sollen.
  • Der Speichercontroller 200 kann die Speichereinrichtung 100 so steuern, dass sie den Programmiervorgang, den Lesevorgang oder den Löschvorgang entsprechend einer Anforderung des Hosts 400 durchführt. Während des Programmiervorgangs kann der Speichercontroller 200 einen Programmierbefehl, die PBA und Daten an die Speichereinrichtung 100 liefern. Während des Lesevorgangs kann der Speichercontroller 200 einen Lesebefehl und die PBA an die Speichereinrichtung 100 übermitteln. Während des Löschvorgangs kann der Speichercontroller 200 der Speichereinrichtung 100 einen Löschbefehl und die PBA bereitstellen.
  • In einer Ausführungsform kann der Speichercontroller 200 unabhängig von der Anforderung des Hosts 400 einen Befehl, eine Adresse und Daten erzeugen und den Befehl, die Adresse und die Daten an die Speichereinrichtung 100 übertragen. Beispielsweise kann der Speichercontroller 200 den Befehl, die Adresse und die Daten für die Durchführung eines Programmiervorgangs, eines Lesevorgangs und eines Löschvorgangs, die mit der Durchführung von Verschleißausgleich (Wear Levelling), Leserückgewinnung (Read Reclaim), (Abfallsammlung (Garbage Collection) und anderen einhergehen, an die Speichereinrichtung 100 übermitteln.
  • In einer Ausführungsform kann die Speichersteuerung 200 den Betrieb von zwei oder mehr Speichereinrichtungen 100 steuern. In diesem Fall kann der Speichercontroller 200 die Speichereinrichtungen 100 mit einem Verschachtelungsverfahren steuern, um das Betriebsverhalten zu verbessern. Das Verschachtelungsverfahren kann die Steuerung von Operationen für mindestens zwei Speichereinrichtungen 100 umfassen, die sich gegenseitig überlappen.
  • Der Host 400 kann mit der Speichereinrichtung 50 über mindestens eine von verschiedenen Kommunikationsverfahren kommunizieren, wie z. B. einen universellen seriellen Bus (USB), einen seriellen AT-Anschluss (SATA), einen seriell angeschlossenen SCSI-Anschluss (SAS), einen Hochgeschwindigkeits-Interchip (HSIC), ein Small Computer System Interface (SCSI), eine Peripheral Component Interconnection (PCI), eine PCI Express (PCIe), eine Nonvolatile Memory Express (NVMe), eine Universal Flash Storage (UFS), eine Secure Digital (SD), eine MultiMedia-Card (MMC), eine Embedded MMC (eMMC), ein Dual In-Line Memory Module (DIMM), ein Registered DIMM (RDIMM) und ein Load Reduced DIMM (LRDIMM).
  • In der vorliegenden Beschreibung führen die Speichereinrichtung 50 und der Host 400 die Datenkommunikation unter Verwendung einer UFS-Kommunikationsschnittstelle durch, aber die offenbarte Technologie ist in Bezug auf die Datenkommunikationsschnittstelle nicht auf die UFS-Kommunikationsschnittstelle beschränkt. Insbesondere können die Speichereinrichtung 50 und der Host 400 die Datenkommunikation unter Verwendung eines Befehls durchführen, der als eine Protokollinformationseinheit (Protocol Information Unit; PIU) definiert ist. Die PIU kann ein Datenpaket enthalten, das nach einem vorgegebenen Protokoll erzeugt wird.
  • Die PIU kann einen Befehl enthalten, den der Host 400 oder die Speichereinrichtung 50 anfordert, um irgendeine Operation durchzuführen, anzuweisen oder darauf zu reagieren. In einer Ausführungsform können verschiedene PlUs je nach Verwendung und Zweck definiert werden. So kann die PIU beispielsweise eine Abfrage-Anforderungs-PIU, eine Befehls-PIU, eine Antwort-PIU, eine Datenausgangs-PIU, eine Dateneingangs-PIU und eine Übertragungsbereitschafts-PIU umfassen.
  • In einer Ausführungsform kann die Abfrageanforderungs-PIU einen Einrichtungsdeskriptor enthalten, der verschiedene Parameter der Speichereinrichtung 50 bereitstellt. Der Einrichtungsdeskriptor kann Informationen enthalten, die angeben, ob die Speichereinrichtung 50 die Speichereinrichtung ist, die den erweiterten RPMB-Modus unterstützt.
  • Eine Größe der kleinsten Einheit der PIU kann 32 Byte sein und eine maximale Größe der PIU kann 65600 Byte sein. Ein Format der PIU kann je nach Typ unterschiedliche Größen aufweisen.
  • Der Speichercontroller 200 kann einen RPMB-Einrichtungs-Controller 210 enthalten.
  • Der RPMB-Einrichtungs-Controller 210 kann eine Zugriffsanforderung des Hosts 400 an den RPMB 110a verarbeiten.
  • Der RPMB-Einrichtungs-Controller 210 kann einen authentifizierten Datenschreibvorgang zum Speichern von Daten in dem RPMB 110a und einen authentifizierten Datenlesevorgang zum Lesen von in dem RPMB 110a gespeicherten Daten verarbeiten. Ein spezifisches Verfahren für die RPMB-Einrichtungs-Controller 210 zur Verarbeitung des authentifizierten Datenschreibvorgangs und des authentifizierten Datenlesevorgangs wird unter Bezugnahme auf die nachstehend noch zu beschreibenden 7 bis 22 ausführlicher beschrieben.
  • Der Host 400 kann außerdem einen RPMB-Host-Controller 410 enthalten.
  • Der RPMB-Host-Controller 410 kann PIUs zur Steuerung des RPMB 110a erzeugen und die PlUs an den RPMB-Einrichtungs-Controller 210 weiterleiten. Der RPMB-Host-Controller 410 kann die PIU von dem RPMB-Einrichtungs-Controller 210 empfangen.
  • Der RPMB-Einrichtungs-Controller 210 und der RPMB-Host-Controller 410 werden unter Bezugnahme auf die nachstehend noch zu beschreibenden 7, 26 und 27 ausführlicher beschrieben.
  • 2 ist ein Diagramm, das ein Beispiel für die Speichereinrichtung von 1 zeigt.
  • Wie in 2 dargestellt, kann die Speichereinrichtung 100 ein Speicherzellenfeld 110, einen Spannungsgenerator 120, einen Adressendecoder 130, eine Eingangs-/Ausgangsschaltung 140 und eine Steuerlogik 150 umfassen.
  • Das Speicherzellenfeld 110 enthält eine Vielzahl von Speicherblöcken BLK1 bis BLKi. Die Vielzahl von Speicherblöcken BLK1 bis BLKi sind über Zeilenleitungen RL mit dem Adressendecoder 130 verbunden. Die Vielzahl von Speicherblöcken BLK1 bis BLKi können über Spaltenleitungen CL mit der Eingangs-/Ausgangsschaltung 140 verbunden sein. In einer Ausführungsform können die Zeilenleitungen RL Wortleitungen, Source-Auswahlleitungen und Drain-Auswahlleitungen umfassen. In einer Ausführungsform können die Spaltenleitungen CL Bitleitungen enthalten.
  • Jeder der mehreren Speicherblöcke BLK1 bis BLKi enthält eine Vielzahl von Speicherzellen. In einer Ausführungsform kann die Vielzahl der Speicherzellen nichtflüchtige Speicherzellen umfassen. Speicherzellen, die mit der gleichen Wortleitung unter der Vielzahl von Speicherzellen verbunden sind, können als eine physikalische Seite definiert werden. Das heißt, das Speicherzellenfeld 110 kann eine Vielzahl von physikalischen Seiten umfassen. Jede der Speicherzellen der Speichereinrichtung 100 kann als Single-Level-Zelle (SLC), die ein Datenbit speichert, als Multi-Level-Zelle (MLC), die zwei Datenbits speichert, als Triple-Level-Zelle (TLC), die drei Datenbits speichert, oder als Quad-Level-Zelle (QLC), die vier Datenbits speichern kann, konfiguriert sein.
  • Einige der Vielzahl von Speicherblöcken BLK1 bis BLKi können den mit Bezug auf 1 beschriebenen RPMB 110a enthalten, und die anderen der mehreren Speicherblöcke BLK1 bis BLKi können den normalen Block 110b enthalten.
  • In einer Ausführungsform können der Spannungsgenerator 120, der Adressendecoder 130 und die Eingangs-/Ausgangsschaltung 140 gemeinsam als Peripherieschaltung bezeichnet werden. Die Peripherieschaltung kann verwendet werden, um das Speicherzellenfeld 110 unter der Steuerung der Steuerlogik 150 zu betreiben. Die Peripherieschaltung kann verwendet werden, um das Speicherzellenfeld 110 zu betreiben, um den Programmiervorgang, den Lesevorgang und den Löschvorgang durchzuführen.
  • Der Spannungsgenerator 120 ist so konfiguriert, dass er eine Vielzahl von Betriebsspannungen unter Verwendung einer der Speichereinrichtung 100 zugeführten externen Versorgungsspannung erzeugt. Der Spannungsgenerator 120 arbeitet in Reaktion auf die Steuerung durch die Steuerlogik 150.
  • In einigen Implementierungen der offenbarten Technologie kann der Spannungsgenerator 120 eine interne Versorgungsspannung durch Regeln der externen Versorgungsspannung erzeugen. Die vom Spannungsgenerator 120 erzeugte interne Versorgungsspannung wird als Betriebsspannung für die Speichereinrichtung 100 verwendet.
  • In einigen Ausführungsformen der offenbarten Technologie kann der Spannungsgenerator 120 die Vielzahl der Betriebsspannungen unter Verwendung einer externen Versorgungsspannung oder einer internen Versorgungsspannung erzeugen. Der Spannungsgenerator 120 kann so konfiguriert sein, dass er verschiedene Spannungen erzeugt, die in der Speichereinrichtung 100 benötigt werden. Zum Beispiel kann der Spannungsgenerator 120 eine Vielzahl von Löschspannungen, eine Vielzahl von Programmierspannungen, eine Vielzahl von Durchlassspannungen, eine Vielzahl von ausgewählten Lesespannungen und eine Vielzahl von nicht ausgewählten Lesespannungen erzeugen.
  • Der Spannungsgenerator 120 kann eine Vielzahl von Pumpkondensatoren enthalten, die die interne Versorgungsspannung erhalten, um die Vielzahl von Betriebsspannungen mit verschiedenen Spannungspegeln zu erzeugen, und kann die Vielzahl von Betriebsspannungen durch selektives Aktivieren der Vielzahl von Pumpkondensatoren in Reaktion auf die Steuerung der Steuerlogik 150 erzeugen.
  • Die erzeugte Vielzahl von Betriebsspannungen kann durch den Adressendecoder 130 an das Speicherzellenfeld 110 geliefert werden.
  • Der Adressendecoder 130 ist über die Zeilenleitungen RL mit dem Speicherzellenfeld 110 verbunden. Der Adressendecoder 130 ist so konfiguriert, dass er als Reaktion auf die Steuerung der Steuerlogik 150 arbeitet. Der Adressendecoder 130 kann eine Adresse ADDR von der Steuerlogik 150 empfangen. Der Adressendecoder 130 kann eine Blockadresse aus den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 wählt mindestens einen Speicherblock aus den Speicherblöcken BLK1 bis BLKi entsprechend der dekodierten Blockadresse aus. Der Adressendecoder 130 kann eine Zeilenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann mindestens eine Wortleitung unter den Wortleitungen eines ausgewählten Speicherblocks entsprechend der dekodierten Zeilenadresse auswählen. In einer Ausführungsform kann der Adressendecoder 130 eine Spaltenadresse unter den empfangenen Adressen ADDR dekodieren. Der Adressendecoder 130 kann die Eingangs-/Ausgangsschaltung 140 und das Speicherzellenfeld 110 entsprechend der dekodierten Spaltenadresse miteinander verbinden.
  • Der Adressendecoder 130 kann beispielsweise Komponenten wie einen Zeilendecoder, einen Spaltendecoder und einen Adresspuffer enthalten.
  • Die Eingangs-/Ausgangsschaltung 140 kann eine Vielzahl von Seitenpuffern enthalten. Die Vielzahl von Seitenpuffer können über die Bitleitungen mit dem Speicherzellenfeld 110 verbunden sein. Während des Programmierbetriebs können Daten in ausgewählten Speicherzellen entsprechend den in der Vielzahl von Seitenpuffern gespeicherten Daten gespeichert werden.
  • Während des Lesevorgangs können die in den ausgewählten Speicherzellen gespeicherten Daten über die Bitleitungen erfasst und die erfassten Daten in den Seitenpuffern gespeichert werden.
  • Die Steuerlogik 150 kann den Betrieb des Adressendecoders 130, des Spannungsgenerators 120 und der Eingangs-/Ausgangsschaltung 140 steuern. Die Steuerlogik 150 kann in Reaktion auf den von einer externen Einrichtung übertragenen Befehl CMD arbeiten. Die Steuerlogik 150 kann als Reaktion auf den Befehl CMD und die Adresse ADDR Steuersignale erzeugen, um die peripheren Schaltungen zu steuern.
  • 3 ist ein Diagramm, das eine Beispielkonfiguration eines der Speicherblöcke von 2 zeigt.
  • Der Speicherblock BLKi ist ein beliebiger BLKi der Speicherblöcke BLK1 bis BLKi von 2.
  • Wie in 3 dargestellt, kann eine Vielzahl von parallel zueinander angeordneten Wortleitungen zwischen einer ersten Auswahlleitung und einer zweiten Auswahlleitung angeschlossen werden. Dabei kann die erste Auswahlleitung die Source-Auswahlleitung SSL und die zweite Auswahlleitung die Drain-Auswahlleitung DSL umfassen. Genauer gesagt kann der Speicherblock BLKi eine Vielzahl von Strings ST (z. B. einen String von Speicherzellen) enthalten, die zwischen den Bitleitungen BL1 bis BLn und der Sourceleitung SL angeschlossen sind. Die Bitleitungen BL1 bis BLn können jeweils mit den Strings ST verbunden sein, und die Source-Leitung SL kann gemeinsam mit den Strings ST verbunden sein. Da die Strings ST so konfiguriert sein können, dass sie untereinander identisch sind, wird als Beispiel ein String ST beschrieben, der mit der ersten Bitleitung BL1 verbunden ist.
  • Der String (auch als Strang oder Kette bezeichnet ST kann einen Source-Select-Transistor (Source-Wähl-Transistor) SST, eine Vielzahl von Speicherzellen MC1 bis MC16 und einen Drain-Select-Transistor (Drain-Wähl-Transistor) DST enthalten, der in Reihe zwischen der Source-Leitung SL und der ersten Bitleitung BL1 geschaltet ist. Ein String ST kann mindestens einen der beiden Transistoren, den Source-Select-Transistor SST und den Drain-Select-Transistor DST, sowie die Speicherzellen MC1 bis MC16 enthalten. In anderen Ausführungsformen kann ein String mehr als die in 3 gezeigten 16 Speicherzellen enthalten.
  • Eine Source des Source-Select-Transistors SST kann mit der Source-Leitung SL verbunden sein und ein Drain des Drain-Select-Transistors DST kann mit der ersten Bitleitung BL1 verbunden sein. Die Speicherzellen MC1 bis MC16 können in Reihe zwischen dem Source-Select-Transistor SST und dem Drain-Select-Transistor DST geschaltet sein. Gates der in den verschiedenen Strings ST enthaltenen Source-Select-Transistoren SST können mit der Source-Select-Leitung SSL verbunden werden, die Gates der Drain-Select-Transistoren DST können mit der Drain-Select-Leitung DSL verbunden werden, und die Gates der Speicherzellen MC1 bis MC16 können mit der Vielzahl von Wortleitungen WL1 bis WL16 verbunden werden. Eine Gruppe von Speicherzellen, die an dieselbe Wortleitung angeschlossen sind, kann unter den Speicherzellen, die in verschiedenen Strings ST enthalten sind, als eine Seite PG bezeichnet werden. Daher kann der Speicherblock BLKi die gleiche Anzahl von Seiten PG enthalten wie die der Wortleitungen WL1 bis WL16.
  • In einigen Implementierungen kann jede Speicherzelle eine Single-Level-Zelle (SLC) (Einzel-Pegel-Zelle) sein, die ein Bit an Daten speichert. In diesem Fall kann eine physikalische Seite PG auf eine logische Seite (LPG) abgebildet werden, um ein Bit Daten pro Zelle zu speichern. Jede logische Seite (LPG) kann Datenbits in der gleichen Anzahl enthalten wie die Speicherzellen einer physikalischen Seite PG.
  • In anderen Implementierungen kann jede Speicherzelle eine Multi-Level-Zelle (MLC) (Multi-Pegel-Zelle) sein, die zwei Datenbits speichert, oder eine Speicherzelle, die drei oder mehr Datenbits pro Zelle speichert. In diesem Fall kann jede physikalische Seite PG auf mehr als eine logische Seite (LPG) abgebildet werden.
  • 4 ist ein Diagramm, das eine Einheit der Datenkommunikation zwischen dem RPMB-Host-Controller 410 und dem RPMB-Einrichtungs-Controller 210 zeigt.
  • Unter Bezugnahme auf die 1 und 4 können der RPMB-Host-Controller 410 und der RPMB-Einrichtungs-Controller 210 über Datenpakete kommunizieren, die als Protokollinformationseinheit (PIU) bezeichnet werden. In Bezug auf eine physikalische Einrichtung ist der RPMB-Host-Controller 410 im Host 400 enthalten, und der RPMB-Einrichtungs-Controller 210 ist in der Speichereinrichtung 50 enthalten. Was die Schnittstelle zwischen zwei Einrichtungen betrifft, so kann eine Einrichtung die PIU an die andere Einrichtung übertragen. In diesem Fall kann eine Einrichtung, die die PIU erzeugt, als Initiatoreinrichtung bezeichnet werden, und eine Einrichtung, die die erzeugte PIU empfängt, kann als Zieleinrichtung bezeichnet werden. Das heißt, die PIU kann ein Datenpaket enthalten, das zwischen zwei Einrichtungen übertragen wird, und nicht ein Datenpaket, das einseitig von einem des Hosts 400 oder der Speichereinrichtung 50 an die andere Einrichtung übertragen wird.
  • Die PIU kann eine Abfrageanforderungs-PIU (Query-Request-PIU), eine Befehls-PIU (Command-PIU), eine Antwort-PIU (Response-PIU), eine Datenausgabe-PIU (Data-Out-PIU), eine Dateneingabe-PIU (Data-In-PIU) und eine Übertragungsbereitschafts-PIU (Ready-to-Transfer-PIU) entsprechend einer von der RPMB-Host-Steuerung 410 oder dem RPMB-Einrichtungs-Controller 210 auszuführenden Operation umfassen.
  • Die Abfrageanforderungs-PIU kann einen Einrichtungsdeskriptor enthalten, der verschiedene Parameter der Speichereinrichtung 50 angibt. Der Einrichtungsdeskriptor kann Informationen enthalten, die angeben, ob die Speichereinrichtung 50 die Speichereinrichtung ist, die den erweiterten RPMB-Modus unterstützt. In einer Ausführungsform kann die Abfrageanforderungs-PIU einen RPMB-Deskriptor enthalten.
  • Der RPMB-Host-Controller 410 kann die Abfrageanforderungs-PIU einschließlich des RPMB-Deskriptors an den RPMB-Einrichtungs-Controller 210 übermitteln. Der RPMB-Deskriptor kann 8 Bits des RPMB-Regionen-Freigabewertes bRPMBRegionEnable zum Einstellen der in der RPMB 110a enthaltenen RPMB-Regionen enthalten. In einer Ausführungsform kann der Modus, in dem die Speichereinrichtung 50 den Zugriff auf den RPMB 110a unterstützt, d. h. der normale RPMB-Modus und der erweiterte RPMB-Modus, anhand des RPMB-Regionen-Freigabewertes bRPMBRegionEnable bestimmt werden.
  • Die Befehls-PIU kann eine PIU enthalten, die übertragen wird, wenn der Host 400 einen Befehl an die Speichereinrichtung 50 übermittelt.
  • Die Antwort-PIU kann eine PIU enthalten, die übertragen wird, wenn die Speichereinrichtung 50 eine Antwort auf den vom Host 400 bereitgestellten Befehl liefert.
  • Die Datenausgabe-PIU kann eine PIU sein, die übertragen wird, wenn der Host 400 Daten an die Speichereinrichtung 50 liefert.
  • Die Dateneingabe-PIU kann eine PIU enthalten, die übertragen wird, wenn die Speichereinrichtung 50 Daten an den Host 400 liefert.
  • Die Übertragungsbereitschafts-PIU kann eine PIU umfassen, die gesendet wird, wenn die Speichereinrichtung 50 mitteilt, dass die Speichereinrichtung 50 bereit ist, die Datenausgabe-PIU vom Host 400 zu empfangen. Die Übertragungsbereitschafts-PIU kann gesendet werden, wenn die Speichereinrichtung 50 über einen ausreichenden Pufferspeicherplatz verfügt, um die vom Host 400 bereitgestellten Daten zu speichern.
  • Die kleinste PIU kann 32 Byte groß sein, die maximale Größe der PIU kann 65600 Byte betragen. Ein Format der PIU kann je nach Typ unterschiedliche Größen aufweisen.
  • Die PIU kann ein Basis-Header-Segment (Basic-Header-Segment) 61, ein transaktionsspezifisches Feld 62, ein Extra-Header-Segment (Extra-Header-Segment) 63 und ein Datensegment 64 enthalten.
  • Das Basis-Header-Segment 61 kann eine Größe von 12 Byte aufweisen. Das Basis-Header-Segment 61 kann in allen PlUs gemeinsam enthalten sein. Das Basis-Header-Segment 61 kann grundlegende Einstellungsinformationen über die PIU enthalten.
  • Das transaktionsspezifische Feld 62 kann in einer Byte-Adresse „31“ von einer Byte-Adresse „12“ der PIU enthalten sein. Das transaktionsspezifische Feld 62 kann einen speziellen Transaktionscode enthalten, der dem Typ der PIU entspricht.
  • Das Extra-Header-Segment 63 kann definiert sein, wenn ein Gesamt-Extra-Header-Segment-Länge (Total EHS Length) Feld des Basis-Header-Segments 61 einen Wert ungleich 0 hat. Das Extra-Header-Segment 63 kann mit einer Byte-Adresse „32“ der PIU beginnen. Das Extra-Header-Segment 63 kann ein Bereich sein, in dem zusätzlich Daten gespeichert werden können, wenn im Basis-Header-Segment 61 nicht genügend Informationen enthalten sind.
  • Das Datensegment 64 kann in der Datenausgabe-PIU oder in der Dateneingabe-PIU enthalten sein, und kann möglicherweise in anderen PlUs nicht enthalten sein.
  • In einer Ausführungsform können das Extra-Header-Segment 63 und das Datensegment 64 nicht in allen Protokoll-PIUs, sondern nur in einer bestimmten PIU enthalten sein.
  • 5 ist ein Diagramm, das eine Beispielstruktur eines Basis-Header-Segments der PIU zeigt.
  • Wie in 5 dargestellt, kann das Basis-Header-Segment 61 einen Transaktionstyp, Flags, eine Logikeinheits-Nummer (LUN), ein Task-Tag, eine Initiator-ID, einen Befehlssatztyp, eine Abfragefunktion/Aufgabenverwaltungsfunktion (Query Function, Task Manag. Function), eine Antwort, einen Status, eine Gesamt-Extra-Header-Segmentlänge (Total EHS Length), Einrichtungsinformationen und eine Datensegmentlänge enthalten.
  • Der Transaktionstyp kann je nach Typ der PIU einen eindeutigen Wert aufweisen. Ein Beispiel für den Transaktionstyp entsprechend dem Typ der PIU ist in [Tabelle 2] unten dargestellt. [Tabelle 2]
    Wenn die Initiatoreinrichtung eine Zieleinrichtung vorsieht TransaktionsTyp Wenn die Zielvereinbarung eine Initiatoreinrichtung vorsieht TransaktionsTyp
    Befehls-PIU 000001b Antwort PIU 100001b
    Datenausgabe-PIU 00 0010b Daten in PIU 10 0010b
    X X Übertragungsbereitschafts-PIU 11 0001 b
  • Die Flags können Felder enthalten, die je nach Transaktionstyp unterschiedliche Werte aufweisen.
  • Die LUN kann ein Feld enthalten, das die Nummer einer logischen Einheit angibt, an der eine Operation aus einer Vielzahl von logischen Einheiten durchgeführt werden soll, die in einem Objekt enthalten sind, an dem eine Operation durchgeführt werden soll. Beispielsweise können sowohl der Host 400 als auch die Speichereinrichtung 50, die unter Bezugnahme auf 1 beschrieben wurden, eine Vielzahl von logischen Einheiten (Logikeinheiten) enthalten, und die LUN des Basis-Header-Segments 61, das in der PIU enthalten ist, kann eine bestimmte logische Einheit aus der Vielzahl der logischen Einheiten angeben.
  • Das Task-Tag (Aufgaben-Tag) kann Felder enthalten, die je nach Transaktionstyp unterschiedliche Werte aufweisen.
  • Die Initiator-ID kann ein Feld enthalten, das angibt, wer der Initiator ist, der eine Operation anfordert. Daher kann die Initiator-ID unterschiedliche Werte aufweisen, wenn der Host die PIU erzeugt und die Speichereinrichtung die PIU erzeugt.
  • Der Befehlssatztyp kann ein Feld enthalten, das in der Befehls-PIU und der Antwort-PIU enthalten ist. Der Befehlssatztyp kann ein Feld enthalten, das angibt, welche Schnittstelle ein Befehl unterstützt, z. B. ob der Befehl ein SCSI-Befehl, ein UFS-Befehl oder ein von einem Hersteller definierter Befehl ist.
  • Die Abfragefunktion/Aufgabenverwaltungsfunktion (Query Function, Task Manag. Function) kann ein Feld enthalten, das in die PIU eingegeben wird, z. B. eine Abfrageanfrage, eine Abfrageantwort oder eine Aufgabenverwaltungsanfrage.
  • Die Antwort kann ein Feld enthalten, das angibt, ob die Durchführung der angeforderten Operation erfolgreich war oder fehlgeschlagen ist.
  • Der Status kann ein Feld enthalten, das einen SCSI-Status anzeigt.
  • Die Gesamt-Extra-Header-Segment-Länge (Total EHS Length) kann ein Feld enthalten, das die Größe des Extra-Header-Segments in 32-Bit-Einheiten angibt. Die Gesamt-Extra-Header-Segment-Länge (Total EHS Length) kann verwendet werden, wenn die PIU ein Extra-Header-Segment enthält. Die Länge des Extra-Header-Segments kann 4 Byte umfassen. Die maximale Größe des Extra-Header-Segments kann 1024 Bytes umfassen. Wenn das Extra-Header-Segment nicht verwendet wird, kann die Gesamt-Extra-Header-Segment-Länge (Total EHS Length) 0 betragen.
  • Die Einrichtungsinformationen können Informationen enthalten, die nur bei der Ausführung einer bestimmten Funktion verwendet werden.
  • Die Datensegmentlänge kann ein Feld enthalten, das eine Länge eines Datensegments der PIU angibt. Wenn die PIU das Datensegment nicht enthält, kann die Datensegmentlänge 0 enthalten.
  • 6 ist ein Diagramm, das ein Beispiel für eine RPMB-Nachricht zeigt.
  • Wenn, unter Bezugnahme auf 1 und 6, der Host 400 oder die Speichereinrichtung 50 die PIU, die sich auf die RPMB 110a bezieht, sendet/empfängt, können der Host 400 oder die Speichereinrichtung 50 die RPMB-Nachricht an den jeweils anderen übertragen. Die RPMB-Nachricht kann Informationen zur Authentifizierung enthalten.
  • Die RPMB-Nachricht kann eine Vielzahl von Komponenten enthalten. Die RPMB-Nachricht kann je nach Situation, in der die RPMB-Nachricht übertragen wird, einige oder alle der in 6 dargestellten Komponenten enthalten.
  • Ein Anforderungsnachrichtentyp (Request Message Type) kann eine Größe von 2 Byte aufweisen. Der Anforderungsnachrichtentyp kann eine Komponente enthalten, die einen Typ einer Anforderung/Anfrage zu der RPMB 110a angibt. Der Anforderungsnachrichtentyp kann in einer Anforderung /Anfrage enthalten sein, die von der Initiatoreinrichtung an die Zieleinrichtung übertragen wird. Ein Beispiel für einen Codewert, den der Anforderungsnachrichtentyp aufweisen kann, ist in [Tabelle 3] unten dargestellt. [Tabelle 3]
    Code Request Message Typen
    0001h Authentifizierungsschlüssel-Programmieranforderung
    0002h Schreibzähler-Leseanforderung
    0003h Anforderung zum Schreiben authentifizierter Daten
    0004h Anforderung zum Lesen authentifizierter Daten
    0005h Ergebnis-Leseanforderung
    0006h Sicherer-Schreibschutz-Konfigurationsblock-Schreibanforderung
    0007h Sicherer-Schreibschutz-Konfigurationsblock-Leseanforderung
    Andere Reserviert
  • Die Programmieranforderung für den Authentifizierungsschlüssel kann einen Anforderungsnachrichtentyp enthalten, der die Programmierung des Authentifizierungsschlüssels anfordert. Die Leseanforderung für den Schreibzähler kann einen Anforderungsnachrichtentyp enthalten, der den in einem Schreibzähler gespeicherten Schreibzählwert anfordert. Die Schreibanforderung für authentifizierte Daten kann einen Anforderungsnachrichtentyp enthalten, der die Speicherung von Daten in der RPMB 110a anfordert. Die Leseanforderung für authentifizierte Daten kann einen Anforderungsnachrichtentyp enthalten, der das Lesen der im RPMB 110a gespeicherten Daten anfordert. Die Ergebnisleseanforderung kann ein Anforderungsnachrichtentyp sein, der ein Leistungsergebnis einer Operation in Bezug auf den RPMB 110a anfordert (einen in einem Ergebnisregister gespeicherten Wert).
  • Ein Antwortnachrichtentyp (Response Message Type) kann eine Größe von 2 Byte aufweisen. Der Antwortnachrichtentyp kann eine Komponente enthalten, die eine Art der Antwort angibt. Der Antwortnachrichtentyp kann in einer Antwort enthalten sein, die von der Zieleinrichtung an die Initiatoreinrichtung übermittelt wird, anstatt in der von der Initiatoreinrichtung an die Zieleinrichtung übermittelten Anfrage enthalten zu sein. Ein Codewert, den der Antwortnachrichtentyp aufweisen kann, ist in [Tabelle 4] unten dargestellt. [Tabelle 4]
    Code Response Message Typen
    0100h Authentifizierungsschlüssel-Programmierantwort
    0200h Schreibzähler-Leseantwort
    0300h Antwort auf das Schreiben authentifizierter Daten
    0400h Antwort auf das Lesen authentifizierter Daten
    0500h Umgekehrt
    0600h Sicherer-Schreibschutz-Konfigurationsblock-Schreibantwort
    0700h Sicherer-Schreibschutz-Konfigurationsblock-Leseantwort
    Andere Reserviert
  • Die Authentifizierungsschlüssel-Programmierantwort kann ein Antwortnachrichtentyp sein, der eine Antwort auf die RPMB-Nachricht anzeigt, die zur Programmierung des Authentifizierungsschlüssels auffordert. Die Schreibzähler-Leseantwort kann ein Antwort-Nachrichtentyp sein, der die RPMB-Nachricht angibt, die den im Schreibzähler gespeicherten Schreibzählwert an die Initiatoreinrichtung überträgt. Die Antwort auf das Schreiben authentifizierter Daten kann ein Antwortnachrichtentyp sein, der eine Antwort auf die Schreibanforderung für authentifizierte Daten anzeigt, die die Speicherung von Daten in der RPMB 110a verlangt. Die Antwort auf das Lesen authentifizierter Daten kann ein Antwortnachrichtentyp sein, der eine Antwort auf die Anforderung zum Lesen von authentifizierten Daten anzeigt, die zum Lesen der im RPMB 110a gespeicherten Daten auffordert. Eine Ergebnisleseantwort kann ein Antwortnachrichtentyp sein, der eine Antwort auf die Ergebnisleseanforderung anzeigt, die das Leistungsergebnis der Operation in Bezug auf das RPMB 110a (den im Ergebnisregister gespeicherten Wert) anfordert.
  • Der Authentifizierungsschlüssel (Authentication Key) kann eine Größe von 32 Byte aufweisen. Der Authentifizierungsschlüssel kann eine RPMB-Nachrichtenkomponente (RPMB Message Component) enthalten, die in der PIU enthalten ist, die der Programmieranforderung für den Authentifizierungsschlüssel entspricht, wenn erstmals die Programmierung an der RPMB 110a angefordert wird. Daher kann der Authentifizierungsschlüssel nur in der Anforderung enthalten sein, die von der Initiatoreinrichtung an die Zieleinrichtung übertragen wird.
  • Der Nachrichtenauthentifizierungscode (Message Authentication Code; MAC) kann eine Größe von 32 Byte aufweisen. Der MAC kann in der von der Zieleinrichtung an die Initiatoreinrichtung übermittelten Antwort sowie in der von der Initiatoreinrichtung an die Zieleinrichtung übermittelten Anforderung enthalten sein. Der MAC kann eine RPMB-Nachrichtenkomponente enthalten, die zur Authentifizierung dient.
  • Ein Ergebnis (Result) kann eine Größe von 2 Byte aufweisen. Das Ergebnis kann einen Wert enthalten, der im Ergebnisregister des RPMB 110a gespeichert ist. Daher kann das Ergebnis in einer Antwort enthalten sein, die von der Zieleinrichtung an die Initiatoreinrichtung übertragen wird.
  • Der Schreibzähler (Write Counter) kann eine Größe von 4 Byte aufweisen. Der Schreibzähler kann die Gesamtzahl der erfolgreich durchgeführten authentifizierten Datenschreibvorgänge anzeigen. Der Schreibzähler kann den Wert des Schreibzählers enthalten, der im Schreibzähler im RPMB 110a gespeichert ist. Der Schreibzähler kann sowohl in der von der Zieleinrichtung an die Initiatoreinrichtung übermittelten Antwort als auch in der von der Initiatoreinrichtung an die Zieleinrichtung übermittelten Anforderung enthalten sein.
  • Eine Adresse (Address) kann eine Größe von 2 Byte aufweisen. Die Adresse kann den Ort, an dem die Daten in der RPMB 110a gespeichert werden, oder eine logische Adresse der in der RPMB 110a gespeicherten Daten enthalten. Die Adresse kann sowohl in der Antwort enthalten sein, die von der Zieleinrichtung an die Initiatoreinrichtung übermittelt wird, als auch in der Anforderung bzw. Anfrage, die von der Initiatoreinrichtung an die Zieleinrichtung übermittelt wird.
  • Ein Nonce kann eine Größe von 16 Bytes aufweisen. Das Nonce kann eine beliebige Zahl oder ein Zufallswert sein. Das Nonce kann sowohl in der von der Zieleinrichtung an die Initiatoreinrichtung übermittelten Antwort als auch in der von der Initiatoreinrichtung an die Zieleinrichtung übermittelten Anforderung bzw. Anfrage enthalten sein. In einer Ausführungsform kann das Nonce vom Host 400 erzeugt werden, und die Speichereinrichtung 50 kann das vom Host 400 erzeugte Nonce kopieren und verwenden.
  • In einigen Implementierungen können die Daten (Data) Daten umfassen, die im RPMB 110a gespeichert oder aus dem RPMB 110a gelesen werden. Die Daten können eine Größe von 256 Byte aufweisen. In einer Ausführungsform können die Daten (Data) Daten enthalten, die zwischen der Initiatoreinrichtung und der Zieleinrichtung übertragen werden, wenn auf den RPMB 110a im normalen RPMB-Modus zugegriffen wird.
  • Zu den erweiterten RPMB-Daten (Advanced RPMB Data) können Daten gehören, die im RPMB 110a zu speichern sind, oder Daten, die im erweiterten RPMB-Modus (Advanced RPMB Mode) aus dem RPMB 110a gelesen werden. Die erweiterten RPMB-Daten können in einer Größe von 4 KB-Einheiten übertragen werden. Die erweiterten RPMB-Daten können Daten enthalten, die gemäß der Schreibanforderung für authentifizierte Daten im RPMB 110a zu speichern sind, oder Daten, die gemäß der Leseanforderung für authentifizierte Daten von der Speichereinrichtung 50 aus dem RPMB 110a gelesen werden.
  • Ein Blockzählwert (Block Count) kann eine Größe von 2 Byte aufweisen. Die Blockzählwert kann einen Wert enthalten, der die Anzahl der Datenblöcke angibt, die zwischen der Initiatoreinrichtung und der Zieleinrichtung im normalen RPMB-Modus übertragen werden. Im normalen RPMB-Modus kann ein Block eine Größe von 256 Byte aufweisen.
  • Ein erweiterter RPMB-Blockzähwert (Advanced RPMB Block Count) kann einen Wert enthalten, der die Anzahl der Blöcke der erweiterten RPMB-Daten angibt, die zwischen der Initiatoreinrichtung und der Zieleinrichtung im erweiterten RPMB-Modus übertragen werden. Im erweiterten RPMB-Modus kann ein Block eine Größe von 4 KB aufweisen.
  • Die unter Bezugnahme auf 6 beschriebenen RPMB-Nachrichtenkomponenten (RPMB Message Components) können in der RPMB-Nachricht enthalten sein, die zwischen dem Host 400 und der Speichereinrichtung 50 oder zwischen der Initiatoreinrichtung und der Zieleinrichtung übertragen wird, wenn auf den RPMB-Block im normalen RPMB-Modus oder im erweiterten RPMB-Modus zugegriffen wird. Die RPMB-Nachrichtenkomponenten können in einer PIU enthalten sein oder je nach Art des Vorgangs/der Operation in eine Vielzahl von PlUs aufgeteilt werden.
  • 7 ist ein Diagramm, das ein Beispiel für eine Speichereinrichtung zeigt, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • Unter Bezugnahme auf 1 und 7 kann die Speichereinrichtung 50 den RPMB 110a und den RPMB-Einrichtungs-Controller 210 enthalten. Die RPMB 110a kann mindestens einen Block aus den Speicherblöcken enthalten, die in der mit Bezug auf 1 beschriebenen Speichereinrichtung 100 enthalten sind, und der RPMB-Einrichtungs-Controller 210 kann in der Speichersteuerung 200 enthalten sein. Der RPMB-Host-Controller 410 kann in dem Host 400 enthalten sein.
  • Der RPMB 110a kann einen Authentifizierungsschlüssel 111, einen Schreibzähler 112, ein Ergebnisregister 113 und einen RPMB-Datenbereich 114 enthalten.
  • Der Authentifizierungsschlüssel 111 kann möglicherweise nur einmalig am Anfang gespeichert werden und kann möglicherweise nicht ausgelesen werden, es sei denn, er wird als Schlüssel für den Zugang zum RPMB 110a bei der Berechnung des MAC verwendet, der zur Authentifizierung des Zugangs/Zugriffs zum RPMB 110a dient. In einer Ausführungsform kann der Authentifizierungsschlüssel 111 eine Größe von 32 Byte aufweisen, aber die Größe des Authentifizierungsschlüssels ist nicht auf 32 Byte beschränkt.
  • Der Schreibzähler 112 kann die Anzahl der erfolgreichen authentifizierten Datenschreibvorgänge (Schreibvorgänge für authentifizierte Daten) zählen, die zur Speicherung von Daten in der RPMB 110a durchgeführt wurden. Der vom Schreibzähler 112 angezeigte Wert oder der im Schreibzähler 112 gespeicherte Wert kann den Schreibzählwert enthalten. Der Schreibzähler 112 kann einen Schreibzählwert speichern, der 4 Byte entspricht, er kann aber auch einen Schreibzählwert speichern, der Daten einer größeren Größe entspricht. Ein anfänglicher Schreibzählwert kann „0000 0000h“ sein. „Der Schreibzählwert des Schreibzählers 112 kann nicht zurückgesetzt oder verringert werden. Der Zählwert des Schreibzählers 112 kann nicht mehr ansteigen, nachdem er den Maximalwert „FFFF FFFFh“ erreicht hat. Wenn der Schreibzählwert des Schreibzählers 112 den Maximalwert erreicht, kann der RPMB 110a daher keine Daten mehr speichern, und der RPMB 110a arbeitet als reiner Leseblock.
  • Das Ergebnisregister 113 kann ein Leistungsergebnis der an der RPMB 110a durchgeführten Operation speichern. Beispielsweise kann das Ergebnisregister 113 einen Ergebniscode speichern, der das Ergebnis des am RPMB 110a durchgeführten Vorgangs angibt. Ein Beispiel für den im Ergebnisregister gespeicherten Ergebniscode ist in [Tabelle 5] unten dargestellt. [Tabelle 5]
    Code Beschreibung
    0000h (0080h) Operation OK
    0000h (0081h) Allgemeiner Fehler
    0000h (0082h) Authentifizierung fehlgeschlagen - MAC-Vergleich nicht passend, MAC-Berechnungsfehler
    0000h (0083h) Zählerfehler
    - Zähler stimmen im Vergleich nicht überein, Zählerinkrementierungsfehler
    0000h (0084h) Adressfehler
    - Adresse außerhalb des Bereichs, falsche Adressausrichtung
    0000h (0085h) Schreibfehler
    - Daten / Zähler / Ergebnis Schreibfehler
    0000h (0086h) Lesefehler
    - Daten / Zähler / Ergebnis Lesefehler
    0007h Authentifizierungsschlüssel noch nicht programmiert.
    - Dieser Wert ist der einzig gültige Ergebniswert, bis der Authentifizierungsschlüssel programmiert wurde. Sobald der Schlüssel programmiert ist, wird dieser Wert nicht mehr verwendet.
    0008h (0088h) Sicherer-Schreibschutz-Konfigurations-Block Zugriffsfehler
    - Sicherer-Schreibschutz-Konfigurations-Block Lese- oder Schreibfehler
    0009h (0089h) Ungültiger Gesicherter-Schreib-Schutz-Block-Konfigurationsparamter
    - Ungültige LUN oder logische Einheit nicht aktiviert, DATA LENGTH (Datenlänge), LOGICAL BLOCK (logischer Block) ADRESSE, ANZAHL DER LOGISCHEN BLÖCKE, oder überlappende Bereiche
    OOOAh (008Ah) Sicherer Schreibschutz nicht anwendbar
    - Logische Einheit, die mit anderen Schreibschutzmodi konfiguriert ist (permanent oder Power-on)
  • In einer Ausführungsform sind der Authentifizierungsschlüssel 111, der Schreibzähler 112 und das Ergebnisregister 113 unabhängig für jeden RPMB 110a enthalten und können einen eindeutigen Wert aufweisen. In verschiedenen Ausführungsformen kann der RPMB 110a in eine Vielzahl von RPMB-Regionen unterteilt sein. Die maximale Anzahl von RPMB-Regionen in dem RPMB 110a kann vier betragen. Jede RPMB-Region kann einen eindeutigen Authentifizierungsschlüssel und Schreibzählwert aufweisen.
  • Der RPMB-Datenbereich kann einen Bereich umfassen, in dem nur dann Daten gespeichert werden, wenn die Authentifizierung bestanden wurde. In einer Ausführungsform kann die Kapazität des RPMB-Datenbereichs mindestens 128 KByte und höchstens 16 MByte betragen.
  • Bei der Durchführung des authentifizierten Datenschreibvorgangs (Schreibvorgangs für authentifizierte Daten) kann der RPMB-Host-Controller 410 dem RPMB-Einrichtungs-Controller 210 die RPMB-Nachricht gemäß einem vorgegebenen Format bereitstellen. Die vom RPMB-Host-Controller 410 bereitgestellte RPMB-Nachricht kann Informationen enthalten, die zur Durchführung der Authentifizierung für die RPMB 110a erforderlich sind. Zum Beispiel kann die RPMB-Nachricht authentifizierte Daten enthalten. Die authentifizierten Daten können die von dem RPMB-Host-Controller 410 erzeugten MAC enthalten.
  • Die der RPMB-Einrichtungs-Controller 210 kann außerdem einen Authentifizierungsmanager 211 und eine Zugriffs-Controller 212 umfassen.
  • Der Authentifizierungsmanager 211 kann die Authentifizierung unter Verwendung des in der RPMB 110a gespeicherten Authentifizierungsschlüssels 111 durchführen. Der Authentifizierungsmanager 211 kann ein Leistungsergebnis der Authentifizierung an den Zugriffs-Controller 212 übermitteln. Der Zugriffs-Controller 212 kann entsprechend dem Leistungsergebnis der Authentifizierung Daten in dem RPMB 110a speichern oder die Speicherung von Daten in dem RPMB 110a unterbinden.
  • Wenn die Authentifizierung bestanden ist, kann der Zugriffs-Controller 212 den RPMB 110a so steuern, dass er die vom Host 400 empfangenen Daten, die in dem RPMB 110a gespeichert werden sollen, im RPMB-Datenbereich speichert. Wenn die Daten erfolgreich gespeichert wurden, kann der Zugriffs-Controller 212 den im Schreibzähler 112 gespeicherten Schreibzählwert erhöhen und das Leistungsergebnis des authentifizierten Datenschreibvorgangs im Ergebnisregister 113 speichern.
  • Wenn die Authentifizierung fehlgeschlagen ist, kann der Zugriffs-Controller 212 die Daten, die in der RPMB 110a gespeichert werden sollen, nicht im RPMB-Datenbereich speichern. Der Zugriffs-Controller 212 kann den Wert des Schreibzählers 112 beibehalten und Informationen, die anzeigen, dass die Authentifizierung fehlgeschlagen ist, im Ergebnisregister 113 speichern.
  • Bei der Durchführung des authentifizierten Datenlesevorgangs (Lesevorgang für authentifizierte Daten) kann der RPMB-Host-Controller 410 die RPMB-Nachricht dem RPMB-Einrichtungs-Controller 210 gemäß einem vorgegebenen Format zur Verfügung stellen.
  • Der Zugriffs-Controller 212 kann die in dem RPMB 110a gespeicherten Daten lesen und die RPMB-Nachricht erzeugen, die an den RPMB-Host-Controller 410 übermittelt wird. Der Zugriffs-Controller 212 kann Metadaten erzeugen, die in die RPMB-Nachricht aufgenommen werden. Die Metadaten können einen Teil der Informationen, die in der vom RPMB-Host-Controller 410 empfangenen RPMB-Nachricht enthalten sind, die aus dem RPMB 110a gelesenen Daten und einen Ergebniscode, der ein Leistungsergebnis des authentifizierten Datenlesevorgangs anzeigt, enthalten. In einer Ausführungsform kann der Zugriffs enthalten 212 den MAC, die authentifizierte Daten sind, unter Verwendung des Authentifizierungsschlüssels 111 und der in der RPMB 110a gespeicherten Metadaten erzeugen.
  • Der Zugriffs-Controller enthalten 212 kann die RPMB-Nachricht mit den authentifizierten Daten und den Metadaten erzeugen. Der Zugriffs-Controller 212 kann die Lesedaten und die RPMB-Nachricht an dem RPMB-Host-Controller 410 bereitstellen.
  • 8 ist ein Flussdiagramm, das ein Beispiel für den Schreibvorgang von authentifizierten Daten im normalen RPMB-Modus zeigt.
  • Unter Bezugnahme auf die 1 und 8 kann der Host 400 im normalen RPMB-Modus die Befehls-PIU (Command PIU) dreimal übertragen, um den authentifizierten Datenschreibvorgang (also einen Schreibvorgang für authentifizierte Daten) durchzuführen, und die Speichereinrichtung 50 kann die Antwort-PIU (Response PIU) dreimal übertragen.
  • Im Einzelnen kann der Vorgang des Schreibens authentifizierter Daten die Übertragung der RPMB-Nachrichten der Schreibanforderung für authentifizierter Daten, der Leseanforderung des Ergebnisses und der Antwort auf das Lesen des Ergebnisses durch die PIU umfassen.
  • Die Anforderung zum Schreiben authentifizierter Daten kann durch die Vorgänge (Operationen) S801 bis S807, die Anforderung zum Lesen des Ergebnisses durch die Vorgänge S809 bis S815 und die Antwort auf das Lesen des Ergebnisses durch die Vorgänge S817 bis S821 bereitgestellt werden.
  • Die authentifizierte Datenschreibanforderung kann durch Übermittlung der RPMB-Nachricht mit der Aufforderung, Daten in der RPMB 110a zu speichern, und der zu speichernden Daten an die Speichereinrichtung 50 durch den Host 400 bereitgestellt werden.
  • Die Ergebnisleseanforderung kann eine Anforderung zur Übertragung der RPMB-Nachricht, die den Wert anfordert, der in dem in der RPMB 110a enthaltenen Ergebnisregister gespeichert ist, in dem das Leistungsergebnis des authentifizierten Datenschreibvorgangs gespeichert ist, vom Host 400 an die Speichereinrichtung 50 umfassen.
  • Die Ergebnisleseantwort kann eine Antwort enthalten, in der die Speichereinrichtung 50 die RPMB-Nachricht mit dem Wert des Ergebnisregisters an den Host 400 übermittelt.
  • In Operation S801 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die in Operation S801 übertragene Befehls-PIU kann einen Sicherheitsprotokoll-Aus-Befehl (Security Protocol Out Command) enthalten, der anzeigt, dass der Host 400 Daten übertragen wird. In Operation S803 kann die Speichereinrichtung 50 als Reaktion auf den in Operation S801 empfangenen PIU-Befehl die Übertragungsbereitschafts-PIU (Ready-to-Transfer PIU) an den Host 400 übermitteln. Die Übertragungsbereitschafts-PIU kann eine PIU umfassen, die bereitgestellt wird, wenn die Speichereinrichtung 50 bereit ist, Daten zu empfangen, die vom Host 400 bereitgestellt werden sollen. In einer Ausführungsform kann die Übertragungsbereitschafts-PIU eine PIU enthalten, die eine Nachricht liefert, die anzeigt, dass die Speichereinrichtung 50 bereit ist, die Daten aus der PIU zu empfangen.
  • In Operation S805 kann der Host 400 die Datenausgabe-PIU (Data Out PIU) an die Speichereinrichtung 50 liefern. Die vom Host 400 bereitgestellte Datenausgabe-PIU kann die RPMB-Nachricht enthalten, die der authentifizierten Datenschreibanforderung entspricht. Die in Operation S805 übertragene RPMB-Nachricht kann ein Stuff-Byte, authentifizierte Daten und Metadaten enthalten. Die Metadaten können Daten enthalten, die in der RPMB 110a gespeichert werden sollen. Da 7 einen Fall zeigt, in dem der Schreibvorgang für authentifizierte Daten im normalen RPMB-Modus durchgeführt wird, können die Daten eine Vielzahl von Blöcken mit einer Größe von 256 Byte enthalten. Die in der Operation S805 übertragene RPMB-Nachricht wird unter Bezugnahme auf 9, die später beschrieben wird, ausführlicher beschrieben.
  • In Vorgang S807 kann die Speichereinrichtung 50 die Antwort-PIU (Response-PIU) an den Host 400 übermitteln. Die in Operation S807 übertragene Antwort-PIU kann eine Antwort auf die in Operation S801 übertragene Befehls-PIU enthalten.
  • In Vorgang S809 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die in Operation S809 übertragene Befehls-PIU kann den Sicherheitsprotokoll-Ausgabebefehl enthalten, der anzeigt, dass der Host 400 Daten übertragen wird. Danach, in Operation S811, kann die Speichereinrichtung 50 die Übertragungsbereitschafts-PIU an den Host 400 als Antwort auf die in Operation S809 empfangenen Befehl-PIU liefern. Die Übertragungsbereitschafts-PIU kann eine PIU umfassen, die bereitgestellt wird, wenn die Speichereinrichtung 50 bereit ist, Daten zu empfangen, die vom Host 400 bereitgestellt werden sollen. In einer Ausführungsform kann die Übertragungsbereitschafts-PIU eine PIU enthalten, die eine Nachricht liefert, die anzeigt, dass die Speichereinrichtung 50 bereit ist, die Daten aus der PIU zu empfangen.
  • In Operation S813 kann der Host 400 die Datenausgabe-PIU an die Speichereinrichtung 50 liefern. Die in Operation S813 bereitgestellte Datenausgabe-PIE kann die RPMB-Nachricht enthalten, die der Ergebnisleseanforderung entspricht. In einer Ausführungsform wird die RPMB-Nachricht, die in der in Operation S813 bereitgestellten Datenausgabe-PIU enthalten ist, unter Bezugnahme auf 10, die später beschrieben wird, ausführlicher beschrieben.
  • In Vorgang S815 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die in Vorgang S815 übertragene Antwort-PIU kann eine Antwort auf die in Vorgang S809 übertragene Befehls-PIU enthalten.
  • In Vorgang S817 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die in Operation S817 bereitgestellte Befehls-PIU kann einen Sicherheitsprotokoll-Ein-Befehl (Security Protocol In Command) enthalten, der einen Befehl angibt, der Daten und Informationen von der Speichereinrichtung 50 anfordert.
  • In Vorgang S819 kann die Speichereinrichtung 50 die Dateneingabe-PIU (Data In PIU) an den Host 400 übermitteln. Die in Operation S819 übertragene Dateneingabe-PIU kann die RPMB-Nachricht enthalten, die der Ergebnisleseantwort entspricht. Die in Operation S819 übertragene RPMB-Nachricht kann das Stuff-Byte, die authentifizierten Daten und die Metadaten enthalten. Die Metadaten können einen aktualisierten Schreibzählwert und den Wert des Ergebnisregisters, der das Leistungsergebnis des Schreibvorgangs für authentifizierte Daten angibt, enthalten. Die in Operation S819 übertragene RPMB-Nachricht wird unter Bezugnahme auf 11, die später beschrieben wird, ausführlicher beschrieben.
  • In Vorgang S821 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die in Vorgang S821 übertragene Antwort-PIU kann eine Antwort auf die in Vorgang S817 übertragene Befehls-PIU enthalten.
  • 9 ist ein Diagramm, das ein Beispiel für die RPMB-Nachricht darstellt, die durch den Vorgang S805 von 8 bereitgestellt wird.
  • Wie in den 1, 8 und 9 dargestellt, kann die RPMB-Nachricht, die der Schreibanforderung für authentifizierte Daten entspricht, das Stuff-Byte (Füll-Bbyte), die authentifizierten Daten und die Metadaten enthalten.
  • Das Stuff-Bbyte kann ein Bit enthalten, das zur Synchronisierung eines vorbestimmten Datenformats oder einer Datenkommunikation hinzugefügt wird. In einer Ausführungsform kann ein dem Stuff-Byte entsprechendes Feld „0“ sein.
  • Die authentifizierten Daten, die in der RPMB-Nachricht enthalten sind, die der Anforderung zum Schreiben authentifizierter Daten entspricht, können die MAC enthalten, die vom RPMB-Host-Controller 410 erzeugt wurde, wie in 7 beschrieben.
  • Die Metadaten können die in der RPMB 110a zu speichernden Daten, die Nonce, den aktuellen Schreibzählwert, die den Daten entsprechende Adresse, die Anzahl der Datenblöcke (hier ist ein Block 256B) und den Anforderungsnachrichtentyp, der angibt, dass es sich bei der RPMB-Nachricht um die Schreibanforderung für authentifizierte Daten handelt, enthalten. In einer Ausführungsform kann ein Feld, das der Nonce entspricht, „0“ sein.
  • 10 ist ein Diagramm, das ein Beispiel für die RPMB-Nachricht darstellt, die durch den Vorgang S813 von 8 bereitgestellt wird.
  • Unter Bezugnahme auf die 1, 8 und 10 kann die RPMB-Nachricht, die der Ergebnisleseanforderung entspricht, das Stuff-Byte (Füll-Byte), die authentifizierten Daten und die Metadaten enthalten.
  • In einer Ausführungsform kann in der RPMB-Nachricht, die der Ergebnisleseanforderung entspricht, nur der in den Metadaten enthaltene Anforderungsnachrichtentyp einen Wert aufweisen, und die Werte der übrigen Felder können „0“ sein. Der Anforderungsnachrichtentyp kann einen Codewert 0005h enthalten, der anzeigt, dass es sich bei der RPMB-Nachricht um eine Ergebnisleseanforderung handelt.
  • 11 ist ein Diagramm, das ein Beispiel für die RPMB-Nachricht darstellt, die durch den Vorgang S819 von 8 bereitgestellt wird.
  • Unter Bezugnahme auf die 1, 8 und 11 kann die RPMB-Nachricht, die der Ergebnisleseantwort entspricht, das Füll-Byte, die authentifizierten Daten und die Metadaten enthalten.
  • Das Stuff-Byte kann ein Bit enthalten, das zur Synchronisierung eines vorbestimmten Datenformats oder einer Datenkommunikation hinzugefügt wird. In einer Ausführungsform kann das dem Stuff-Byte entsprechende Feld „0“ sein.
  • Die authentifizierten Daten, die in der RPMB-Nachricht enthalten sind, die der Leseergebnisantwort entspricht, können die MAC enthalten, die von dem in 7 beschriebenen RPMB-Einrichtungs-Controller 210 erzeugt wurde.
  • Insbesondere kann der Zugangs-Controller 212 die in die RPMB-Nachricht aufzunehmenden Metadaten erzeugen und die MAC unter Verwendung der erzeugten Metadaten und des im RPMB 110a gespeicherten Authentifizierungsschlüssels 111 generieren.
  • Die Metadaten können den aktualisierten Schreibzählwert, die Adresse der durch die Schreiboperation für authentifizierte Daten gespeicherten Daten, den Ergebniscode, der das Leistungsergebnis der Schreiboperation für authentifizierte Daten angibt, und „0300h“ enthalten, der ein Antwortnachrichtentyp-Code ist, der angibt, dass die RPMB-Nachricht die Schreibantwort für authentifizierte Daten ist. Hier kann die Adresse denselben Wert enthalten wie die Adresse in der RPMB-Nachricht, die der Anforderung zum Schreiben authentifizierter Daten entspricht, wie in 9 beschrieben.
  • In einer Ausführungsform können das Füll-Byte, die Daten, die Nonce und die Blockzählungsfelder in der RPMB-Nachricht, die der Ergebnisleseantwort entspricht, „0“ enthalten.
  • 12 ist ein Flussdiagramm, das ein Beispiel für den Lesevorgang authentifizierter Daten im normalen RPMB-Modus zeigt.
  • Unter Bezugnahme auf die 1 und 12 kann der Host 400 im normalen RPMB-Modus die Befehls-PIU zweimal übertragen, um den Datenlesevorgang für authentifizierte Daten durchzuführen, und die Speichereinrichtung 50 kann die Antwort-PIU zweimal übertragen.
  • Im Einzelnen kann der Datenlesevorgang für authentifizierte Daten die Übertragung der RPMB-Nachrichten, die jeweils der Anforderung zum Lesen authentifizierter Daten und der Antwort auf das Lesen authentifizierter Daten entsprechen, über die PIU umfassen.
  • Die Leseanforderung von authentifizierten Daten kann durch die Vorgänge S1001 bis S1007 erfolgen, und die Antwort auf das Lesen authentifizierter Daten kann durch die Vorgänge S1009 bis S1013 erfolgen.
  • Die Leseanforderung von authentifizierten Daten umfasst einen Prozess, bei dem der Host 400 die RPMB-Nachricht, die die Leseanforderung für die in der RPMB 110a gespeicherten Daten anzeigt, an die Speichereinrichtung 50 überträgt, und die Leseantwort für authentifizierte Daten umfasst einen Prozess, bei dem die Speichereinrichtung 50 die aus der RPMB 110a gelesenen Daten an den Host 400 überträgt.
  • In Operation S1001 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die in Operation S1001 bereitgestellte Befehls-PIU kann den Sicherheitsprotokoll-Aus-Befehl enthalten, der anzeigt, dass der Host 400 Daten übertragen wird.
  • In Vorgang S1003 kann die Speichereinrichtung 50 die Übergabebereitschafts-PIU an den Host 400 liefern.
  • In Operation S1005 kann der Host 400 die Datenausgabe-PIU an die Speichereinrichtung 50 liefern. Die in Operation S1005 bereitgestellte Datenausgabe-PIU kann die RPMB-Nachricht enthalten. Insbesondere kann die in Operation S1005 bereitgestellte RPMB-Nachricht die Metadaten enthalten. Hier enthalten die Metadaten die vom Host generierte Nonce, die zu lesende Adresse, den Blockzählwert, der die Anzahl der zu lesenden Datenblöcke angibt, und den Anforderungsnachrichtentyp, der angibt, dass die RPMB-Nachricht die Leseanforderung für authentifizierte Daten ist. Die RPMB-Nachricht, die der Leseanforderung für authentifizierte Daten entspricht, wird später unter Bezugnahme auf 13 näher beschrieben.
  • In Vorgang S1007 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die von der Speichereinrichtung 50 bereitgestellte Antwort-PIU kann eine Antwort auf die in Operation S1001 übertragene Befehls-PIU enthalten.
  • In Vorgang S1009 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die in Operation S1009 bereitgestellte Befehls-PIU kann den Sicherheitsprotokoll-Ein-Befehl enthalten, der den Befehl angibt, der Daten und Informationen von der Speichereinrichtung 50 anfordert.
  • Im Vorgang S1011 kann die Speichereinrichtung 50 die Daten in der PIU an den Host 400 liefern. Die Daten in der PIU, die von der Speichereinrichtung 50 bereitgestellt werden, können die RPMB-Nachricht enthalten. Insbesondere kann die in Operation S1011 bereitgestellte RPMB-Nachricht das Füll-Byte, die authentifizierten Daten und die Metadaten enthalten. Dabei können die authentifizierten Daten die von der Speichereinrichtung 50 erzeugte MAC enthalten. Die Metadaten können die von der RPMB 110a gelesenen Daten, die Nonce, die Adresse, den Blockzählwert, der die Anzahl der Blöcke der gelesenen Daten angibt, und den Antwortnachrichtentyp enthalten, der angibt, dass die RPMB-Nachricht die Leseantwort für authentifizierte Daten ist. Die RPMB-Nachricht, die der Leseantwort für authentifizierte Daten entspricht, wird später unter Bezugnahme auf 14 ausführlicher beschrieben.
  • In Vorgang S1013 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die vom Host 400 in Operation S1013 empfangene Antwort-PIU kann eine Antwort auf die in Operation S1009 übertragene Befehls-PIU enthalten.
  • 13 ist ein Diagramm, das ein Beispiel für die RPMB-Nachricht darstellt, die durch den Vorgang S1005 von 12 bereitgestellt wird.
  • Unter Bezugnahme auf die 1, 12 und 13 kann die RPMB-Nachricht, die der Leseanforderung für authentifizierte Daten entspricht, die Metadaten und das Füll-Byte ohne die authentifizierten Daten enthalten. Das Füll-Byte kann ein Bit enthalten, das zur Synchronisierung eines vorbestimmten Datenformats oder einer Datenkommunikation hinzugefügt wird. In einer Ausführungsform kann das dem Füll-Byte entsprechende Feld „0“ sein.
  • Die Metadaten können die vom Host generierte Nonce, die zu lesende Adresse, den Blockzählwert, der die Anzahl der Blöcke der zu lesenden Daten angibt, und den Anforderungsnachrichtentyp, der angibt, dass die RPMB-Nachricht die Leseanforderung für authentifizierte Daten ist, enthalten.
  • In verschiedenen Ausführungsformen kann ein Wert, der jeweils dem Füll-Byte, dem MAC, den Daten, dem Schreibzähler und dem Ergebnis, das in der RPMB-Nachricht entsprechend der Leseanforderung von authentifizierten Daten enthalten ist, entspricht, „0“ sein.
  • 14 ist ein Diagramm, das ein Beispiel für die RPMB-Nachricht darstellt, die durch den Vorgang S1011 von 12 bereitgestellt wird.
  • Unter Bezugnahme auf die 1, 12 und 14 kann die RPMB-Nachricht, die der Leseantwort für authentifizierter Daten entspricht, die authentifizierten Daten und die Metadaten enthalten. Die authentifizierten Daten können die MAC enthalten, die von dem RPMB-Einrichtungs-Controller 210 der Speichereinrichtung 50 erzeugt wurde. Die Metadaten können die aus dem RPMB 110a gelesenen Daten, die Nonce, die Adresse, den Blockzählwert, der die Anzahl der Blöcke der gelesenen Daten angibt, und den Antwortnachrichtentyp enthalten, der angibt, dass die RPMB-Nachricht die Leseantwort für authentifizierte Daten ist.
  • Die Nonce kann die Nonce sein, die in der RPMB-Nachricht enthalten ist, die der durch Operation S1005 übertragenen Leseanforderung von authentifizierten Daten entspricht, d. h. ein Wert, der durch Kopieren eines vom Host 400 erzeugten Nonce-Werts erhalten wird. Die Adresse und der Blockzählwert der gelesenen Daten können denselben Wert wie die zu lesende Adresse und der Blockzählwert enthalten, der die Anzahl der Blöcke der zu lesenden Daten in der RPMB-Nachricht angeben, die der Leseanforderung für authentifizierte Daten entspricht. Das Ergebnis kann den Ergebniscode enthalten, der das Leistungsergebnis des Lesevorgangs für authentifizierte Daten angibt. Der Antwortnachrichtentyp kann einen Code 0400h enthalten, der anzeigt, dass die RPMB-Nachricht die Leseantwort für authentifizierte Daten ist.
  • Der im Host 400 enthaltene RPMB-Host-Controller 410 kann die RPMB-Nachricht empfangen, die die gemäß dem Lesevorgang von authentifizierten Daten gelesenen Daten enthält, und kann dann den MAC unter Verwendung des im RPMB-Host-Controller 410 enthaltenen Authentifizierungsschlüssels und der in der RPMB-Nachricht enthaltenen Metadaten bearbeiten. Nur wenn der vom RPMB-Host-Controller 410 berechnete MAC und der von der Speichereinrichtung 50 erzeugte MAC, der die in der RPMB-Nachricht enthaltenen authentifizierten Daten darstellt, übereinstimmen, kann der RPMB-Host-Controller 410 die gelesenen Daten erhalten.
  • Wie in den 8 bis 14 beschrieben, wird im normalen RPMB-Modus bei dem Schreibvorgang von authentifizierten Daten und dem Lesevorgang von authentifizierten Daten die Befehls-PIU zur Bereitstellung der zu speichernden Daten oder der Lesedaten einmal bereitgestellt, aber die Bereitstellung einer Extra-Befehls-PIU oder der Antwort-PIU kann zusätzlich erforderlich sein, um die RPMB-Nachricht zu übertragen. Dies kann zu einer Verzögerung bei der Zugriffsgeschwindigkeit auf die RPMB 110a, zur Komplexität der Konstruktion oder zu anderen Problemen führen.
  • 15 ist ein Diagramm, das eine Beispielkonfiguration der Befehls-PIU zeigt.
  • 16 ist ein Diagramm, das eine Beispielkonfiguration der Antwort-PIU zeigt.
  • Unter Bezugnahme auf die 1, 15 und 16 können die Befehls-PIU und die Antwort-PIU das Basis-Heaer-Segment, das transaktionsspezifische Feld, das Extra-Header-Segment und das Datensegment enthalten. Das in der Befehls-PIU und der Antwort-PIU enthaltene Basis-Header-Segment umfasst die Gesamt-Extra-Header-Segmentlänge (Total EHS Length). Wenn das Feld für die Gesamt-Extra-Header-Segmentlänge (Total EHS Length) einen anderen Wert als 0 (ungleich Null) aufweist, kann das Feld für das Extra-Header-Segment in der Befehls-PIU und in der Antwort-PIU verwendet werden. Das Extra-Header-Segment kann ab der Byte-Adresse 32 der PIU beginnen. Das Extra-Header-Segment kann einen Bereich enthalten, in dem zusätzliche Daten gespeichert werden können, wenn das Basis-Header-Segment nicht genügend Informationen enthält.
  • Im erweiterten RPMB-Modus können der Host 400 und die Speichereinrichtung 50 die RPMB-Nachricht unter Verwendung des in der Befehls-PIU und der Antwort-PIU enthaltenen Extra-Header-Segments übertragen. Insbesondere können der Host 400 und die Speichereinrichtung 50 das in den Basis-Header-Segmenten der Befehls-PIU und der Antwort-PIU enthaltene Feld für die Gesamt-Extra-Header-Segmentlänge (Total EHS Length) auf einen Wert ungleich 0 (ungleich Null) setzen und die RPMB-Nachricht übertragen, indem sie die RPMB-Nachricht in das Extra-Header-Segment aufnehmen.
  • 17 ist ein Flussdiagramm, das ein Beispiel für einen Schreibvorgang von authentifizierten Daten im erweiterten RPMB-Modus zeigt. Unter Bezugnahme auf die 1 und 17 kann der Host 400 in der Operation S1201 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die Befehls-PIU kann die RPMB-Nachricht im Extra-Header-Segment enthalten. Die Befehls-PIU kann den Sicherheitsprotokoll-Aus-Befehl enthalten, der anzeigt, dass der Host 400 Daten übertragen wird. Die in der Operation S1201 übertragene RPMB-Nachricht wird in der später zu beschreibenden Beschreibung von 18 ausführlicher beschrieben.
  • In Operation S1203 kann die Speichereinrichtung 50 die Übertragungsbereitschafts-PIU dem Host 400 als Reaktion auf die in Operation S1201 empfangene Befehls-PIU zur Verfügung stellen.
  • In Operation S1205 kann der Host 400 die Datenausgabe-PIU an die Speichereinrichtung 50 übermitteln. Da der Host 400 der Speichereinrichtung 50 bereits die RPMB-Nachricht zur Verfügung gestellt hat, indem er die RPMB-Nachricht in das Extra-Header-Segment der Befehls-PIU in Operation S1201 aufgenommen hat, kann die in Operation S1205 übertragene Datenausgabe-PIU die RPMB-Nachricht nicht enthalten und nur die in der RPMB 110a zu speichernden Daten enthalten.
  • In Vorgang S1207 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die von der Speichereinrichtung 50 bereitgestellte Antwort-PIU kann die RPMB-Nachricht enthalten. Die RPMB-Nachricht kann in das Extra-Header-Segment der Antwort-PIU aufgenommen werden.
  • 18 ist ein Diagramm, das eine Beispielstruktur der Befehls-PIU zeigt, die im Vorgang S1201 von 17 übertragen wird.
  • Unter Bezugnahme auf 18 kann die in Operation S1201 übertragene Befehls-PIU die PIU enthalten, die das Extra-Header-Segment verwendet, im Gegensatz zu der Befehls-PIU, die in der unter Bezugnahme auf die 8 bis 14 beschriebenen Ausführungsform übertragen wird. Daher kann ein Feld, das die Gesamt-Extra-Header-Segment-Längeninformation, die im Basis-Header-Segment enthalten ist, auf einen anderen Wert als Null (nicht Null) 02h gesetzt werden.
  • Das Extra-Header-Segment der in Operation S1201 übertragenen Befehls-PIU kann die RPMB-Nachricht enthalten. Die im Extra-Header-Segment enthaltene RPMB-Nachricht kann einige Daten der RPMB-Nachricht enthalten, die der mit Bezug auf 9 beschriebenen Schreibanforderung für authentifizierte Daten entsprechen.
  • Insbesondere kann das Extra-Header-Segment der Befehls-PIU die authentifizierten Daten und die Metadaten enthalten. Anders als bei der RPMB-Nachricht in 9 können die im Extra-Header-Segment enthaltenen Metadaten möglicherweise die in der RPMB 110a zu speichernden Daten nicht enthalten. Die Metadaten können die vom Host generierte Nonce, den aktuellen Schreibzählwert, die den Daten entsprechende Adresse, die Anzahl der Datenblöcke (hier ist ein Block 4KB) und den Anforderungsnachrichtentyp, der angibt, dass es sich bei der RPMB-Nachricht um eine Schreibanforderung für authentifizierte Daten (0003h) handelt, enthalten. Die authentifizierten Daten können den MAC enthalten, der vom RPMB-Host-Controller 410 generiert wurde, wie in 7 beschrieben.
  • 19 ist ein Diagramm, das eine Beispielstruktur der Antwort-PIU zeigt, die im Vorgang S1207 von 17 übertragen wird.
  • Unter Bezugnahme auf 19 kann die in Operation S1207 übertragene Antwort-PIU die PIU enthalten, die das zusätzliche Kopfsegment verwendet, im Gegensatz zu der Antwort-PIU, die in der unter Bezugnahme auf die 8 bis 14 beschriebenen Ausführungsform übertragen wird. Daher kann das Feld, das die Gesamtlänge des Extra-Header-Segments angibt, das im Basis-Header-Segment enthalten ist, auf einen Wert 02h ungleich 0 (ungleich Null) gesetzt werden.
  • Das Extra-Header-Segment der in Operation S1207 übertragenen Antwort-PIU kann die RPMB-Nachricht enthalten. Die im Extra-Header-Segment enthaltene RPMB-Nachricht kann einige Daten der RPMB-Nachricht enthalten, die der mit Bezug auf 11 beschriebenen Ergebnisleseantwort entsprechen.
  • Insbesondere kann das Extra-Header-Segment der Antwort-PIU die authentifizierten Daten und die Metadaten enthalten. Die Metadaten können den Schreibzählwert des Schreibzählers enthalten, der entsprechend der Leistung des Schreibvorgangs für authentifizierte Daten aktualisiert wird, die Adresse der durch den Schreibvorgang für authentifizierte Daten gespeicherten Daten, den Ergebniscode, der das Leistungsergebnis des Schreibvorgangs für authentifizierte Daten anzeigt, und den Antwortnachrichtentyp, der anzeigt, dass die RPMB-Nachricht die Antwort auf den Schreibvorgang für authentifizierte Daten ist. Hier kann die Adresse denselben Wert enthalten wie die Adresse, die in der RPMB-Nachricht enthalten ist, die der Schreibanforderung für authentifizierte Daten entspricht, wie in 18 beschrieben. Die Nonce kann ein Wert sein, der durch Kopieren der Nonce in der RPMB-Nachricht, die der mit Bezug auf 18 beschriebenen Schreibanforderung für authentifizierte Daten entspricht, erhalten wird. Die authentifizierten Daten können den MAC enthalten, der von dem in 7 beschriebenen RPMB-Einrichtungs-Controller 210 unter Verwendung der Metadaten und des in der RPMB 110a gespeicherten Authentifizierungsschlüssels erzeugt wurde.
  • 20 ist ein Flussdiagramm, das den Lesevorgang für authentifizierte Daten im erweiterten RPMB-Modus veranschaulicht.
  • Unter Bezugnahme auf die 1 und 20 kann der Host 400 im Vorgang S1301 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Die Befehls-PIU kann die RPMB-Nachricht im Extra-Header-Segment enthalten. Die Befehls-PIU kann einen Sicherheitsprotokoll-Ein-Befehl enthalten, der anzeigt, dass der Host 400 die Übertragung von Daten an die Speichereinrichtung 50 anfordert. Die in der Operation S1301 übertragene RPMB-Nachricht wird in der Beschreibung von 21, die später beschrieben wird, ausführlicher beschrieben.
  • In Operation S1303 kann die Speichereinrichtung 50 die in der RPMB 110a gespeicherten Daten unter Verwendung der RPMB-Nachricht, die in der in Operation S1301 empfangenen Befehls-PIU enthalten ist, lesen und die Daten in der PIU einschließlich der gelesenen Daten an den Host 400 liefern. Da der Host 400 die RPMB-Nachricht bereits der Speichereinrichtung 50 zur Verfügung gestellt hat, indem er die RPMB-Nachricht in das Extra-Header-Segment der Befehls-PIE in Operation S1301 aufgenommen hat, können die Daten in der PIU, die in Operation S1303 übertragen werden, die RPMB-Nachricht nicht enthalten und können nur die aus der RPMB 110a gelesenen Daten enthalten.
  • Im Vorgang S1305 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 übermitteln. Die von der Speichereinrichtung 50 bereitgestellte Antwort-PIU kann die RPMB-Nachricht enthalten. Die RPMB-Nachricht kann in das Extra-Header-Segment der Antwort-PIU aufgenommen werden. Die RPMB-Nachricht, die von der Speichereinrichtung 50 an den Host 400 in der Operation S1305 geliefert wird, wird unter Bezugnahme auf 22, die später beschrieben wird, ausführlicher beschrieben.
  • 21 ist ein Diagramm, das eine Beispielstruktur der Befehls-PIU zeigt, die im Vorgang S1301 von 20 übertragen wird.
  • Unter Bezugnahme auf 1, 7, 20 und 21 kann die in Operation S1301 übertragene Befehls-PIU die PIU enthalten, die das Extra-Header-Segment verwendet, im Gegensatz zu der Befehls-PIU, die in der unter Bezugnahme auf 8 und 12 beschriebenen Ausführungsform übertragen wird. Daher kann das Feld, das die Gesamt-Extra-Header-Segment-Längeninformation angibt, die im Basis-Header-Segment enthalten ist, auf einen Wert 02h ungleich 0 (ungleich Null) gesetzt werden.
  • Das Extra-Header-Segment der in Operation S1301 übertragenen Befehls-PIU kann die RPMB-Nachricht enthalten. Die im Extra-Header-Segment enthaltene RPMB-Nachricht kann einige oder alle Daten enthalten, die in der RPMB-Nachricht enthalten sind, die der mit Bezug auf 13 beschriebenen Leseanforderung für authentifizierte Daten entspricht.
  • Insbesondere kann das Extra-Header-Segment der Befehls-PIU die authentifizierten Daten und die Metadaten enthalten. In einer Ausführungsform kann die Befehls-PIU nur die Metadaten ohne die authentifizierten Daten enthalten. Die Metadaten können die vom Host generierte Nonce, die zu lesende Adresse, den Blockzählwert der erweiterten RPMB, der die Anzahl der zu lesenden Datenblöcke angibt (hier ist ein Block 4 KB), und 0004h, der der Anforderungsnachrichtentyp ist, der angibt, dass die im Extra-Header-Segment enthaltene RPMB-Nachricht die Leseanforderung für authentifizierte Daten ist, enthalten. In einer Ausführungsform kann ein Wert, der jeweils dem MAC, dem Schreibzähler und dem Ergebnis in der RPMB-Nachricht im Extra-Header-Segment entspricht, „0“ sein.
  • 22 ist ein Diagramm, das eine Beispielstruktur der Antwort-PIU zeigt, die im Vorgang S1305 von 20 übertragen wird.
  • Unter Bezugnahme auf 1, 7 und 22 kann die in Operation S1305 übertragene Antwort-PIU die PIU enthalten, die das Extra-Header-Segment verwendet, im Gegensatz zu der Antwort-PIU, die in der unter Bezugnahme auf 8 bis 14 beschriebenen Ausführungsform übertragen wird. Daher kann das Feld, das die Gesamtlängeninformation des Extra-Header-Segments angibt, die im Basis-Header-Segment enthalten ist, auf einen Wert 02h ungleich 0 (ungleich Null) gesetzt werden.
  • Das Extra-Header-Segment der in Operation S1305 übertragenen Antwort-PIU kann die RPMB-Nachricht enthalten. Die in dem Extra-Header-Segment enthaltene RPMB-Nachricht kann die RPMB-Nachricht enthalten, die der unter Bezugnahme auf 14 beschriebenen Leseantwort für authentifizierte Daten entspricht. Das Extra-Header-Segment kann die authentifizierten Daten und die Metadaten enthalten. Die authentifizierten Daten können den MAC enthalten, der von dem RPMB-Einrichtungs-Controller 210 der Speichereinrichtung 50 erzeugt wurde. Die Metadaten können die von der RPMB 110a gelesenen Daten, die Nonce, die Adresse, die den Blockzählwert des erweiterten RPMB, der die Anzahl der Blöcke der gelesenen Daten angibt, und den Antwortnachrichtentyp, der angibt, dass die RPMB-Nachricht die Leseantwort für authentifizierte Daten ist, enthalten.
  • Die Nonce kann die Nonce sein, die in der RPMB-Nachricht enthalten ist, die der durch den Vorgang S1301 übertragenen Leseanforderung für authentifizierte Daten entspricht, d. h. ein Wert, der durch Kopieren des vom Host 400 erzeugten Nonce-Werts erhalten wird. Die Adresse und der Blockzählwert der gelesenen Daten können denselben Wert wie die zu lesende Adresse und der Blockzählwert, der die Anzahl der Blöcke der zu lesenden Daten in der RPMB-Nachricht angeben, die der Leseanforderung für authentifizierte Daten entspricht, enthalten Das Ergebnis kann den Ergebniscode enthalten, der das Leistungsergebnis des Lesevorgangs für authentifizierte Daten angibt. Der Antwortnachrichtentyp kann einen Code 0400h enthalten, der anzeigt, dass die RPMB-Nachricht die Leseantwort für authentifizierte Daten ist.
  • Der RPMB-Host-Controller 410, der im Host 400 enthalten ist, kann die gemäß der Leseoperation für authentifizierte Daten in Operation S1303 gelesenen Daten empfangen, und in Operation S1305 kann der RPMB-Host-Controller 410 nach dem Empfang der RPMB-Nachricht, die der Leseantwort für authentifizierte Daten entspricht, den MAC unter Verwendung des in dem RPMB-Host-Controller 410 enthaltenen Authentifizierungsschlüssels und der in der RPMB-Nachricht enthaltenen Metadaten betreiben. Nur wenn der vom RPMB-Host-Controller 410 berechnete MAC und der von der Speichereinrichtung 50 erzeugte MAC, der die in der RPMB-Nachricht enthaltenen authentifizierten Daten darstellt, übereinstimmen, kann der RPMB-Host-Controller 410 die gelesenen Daten erhalten.
  • Gemäß der unter Bezugnahme auf die 17 bis 22 beschriebenen Ausführungsform ist im erweiterten RPMB-Modus, da die RPMB-Nachricht in das Extra-Header-Segment aufgenommen und übertragen wird, im Gegensatz zum normalen RPMB-Modus eine Übertragung durch die Dateneingabe-PIU oder die Datenausgabe-PIU nicht erforderlich. Da die Anzahl der zu übertragenden PlUs im erweiterten RPMB-Modus geringer ist als im normalen RPMB-Modus, kann daher im erweiterten RPMB-Modus auf den RPMB 110a mit einer höheren Geschwindigkeit als im normalen RPMB-Modus zugegriffen werden.
  • 23 ist ein Flussdiagramm, das ein Beispiel für einen Programmiervorgang eines Authentifizierungsschlüssels im erweiterten RPMB-Modus zeigt.
  • 24 ist ein Diagramm, das ein Beispiel für die Befehls-PIU bei der Programmierung des Authentifizierungsschlüssels zeigt.
  • 25 ist ein Diagramm, das ein Beispiel für die Antwort-PIU darstellt, die bei dem Programmiervorgang des Authentifizierungsschlüssels bereitgestellt wird.
  • Unter Bezugnahme auf die 23 bis 25 kann der Host 400 den Vorgang der Programmierung des Authentifizierungsschlüssels zum Speichern des Authentifizierungsschlüssels in dem RPMB 110a, der in der Speichereinrichtung 50 enthalten ist, nur einmal zum ersten Mal durchführen. Bei der Programmierung des Authentifizierungsschlüssels kann der Host 400 eine Anforderung zur Programmierung des Authentifizierungsschlüssels an die Speichereinrichtung 50 senden. Insbesondere kann der Host 400 die Befehls-PIU einschließlich der RPMB-Nachricht, die der Anforderung zur Programmierung des Authentifizierungsschlüssels entspricht, an die Speichereinrichtung 50 senden.
  • Die Speichereinrichtung 50 kann den Authentifizierungsschlüssel erhalten, der in der RPMB-Nachricht enthalten ist, die der vom Host 400 bereitgestellten Anforderung zur Programmierung des Authentifizierungsschlüssels entspricht, und den Authentifizierungsschlüssel in dem RPMB 110a speichern. Die Speichereinrichtung 50 kann dem Host 400 als Antwort auf die Anforderung zur Programmierung des Authentifizierungsschlüssels eine Programmierantwort des Authentifizierungsschlüssels geben.
  • In einer Ausführungsform kann der Programmiervorgang für den Authentifizierungsschlüssel im normalen RPMB-Modus oder im erweiterten RPMB-Modus durchgeführt werden. Bei der Programmierung des Authentifizierungsschlüssels im normalen RPMB-Modus kann die RPMB-Nachricht zwischen dem Host 400 und der Speichereinrichtung 50 in jedem der Vorgänge S805, S813 und S819 in einem Verfahren übertragen/empfangen werden, das dem des Schreibvorgangs für authentifizierte Daten ähnelt, der unter Bezugnahme auf 8 beschrieben ist.
  • Wenn die Programmierung des Authentifizierungsschlüssels im erweiterten RPMB-Modus durchgeführt wird, kann die zwischen dem Host 400 und der Speichereinrichtung 50 übertragene PIU die RPMB-Nachricht im Extra-Header-Segment enthalten.
  • In Operation S2001 kann der Host 400 die Befehls-PIU an die Speichereinrichtung 50 übermitteln. Unter Bezugnahme auf 24 kann die in Operation S2001 bereitgestellte Befehls-PIU die RPMB-Nachricht im Extra-Header-Segment enthalten. Daher kann das Feld für die Gesamt-Extra-Header-Segment-Länge (Total EHS Length), das in der in Operation S2001 bereitgestellten Befehls-PIU enthalten ist, einen Wert 02h ungleich 0 (ungleich Null) aufweisen. Das Extra-Header-Segment kann die Metadaten und die authentifizierten Daten enthalten. Die Authentifizierungsdaten können einen Schlüsselwert Key (Schlüssel) enthalten, der dem in der RPMB 110a zu speichernden Authentifizierungsschlüssel entspricht, wie in 1 beschrieben. Die Metadaten können den Anforderungsnachrichtentyp 0001h enthalten, der anzeigt, dass die in der Befehls-PIU enthaltene RPMB-Nachricht die Programmieranforderung des Authentifizierungsschlüssels ist.
  • Die Speichereinrichtung 50 kann den Schlüsselwert Key, der in den authentifizierten Daten enthalten ist, als Reaktion auf die Befehls-PIU in dem RPMB 110a speichern, der unter Bezugnahme auf 7 beschrieben ist.
  • In Operation S2003 kann die Speichereinrichtung 50 die Antwort-PIU an den Host 400 liefern. Unter Bezugnahme auf 25 kann die in Operation S2003 bereitgestellte Antwort-PIU die RPMB-Nachricht im zusätzlichen Kopfsegment enthalten. Daher kann das Feld für die Gesamtlänge des Extra-Header-Segments (Total EHS Length), das in der in Operation S2003 bereitgestellten Antwort-PIU enthalten ist, einen Wert 02h ungleich 0 (ungleich Null) aufweisen. Das Extra-Header-Segment kann die Metadaten enthalten. Die Metadaten können den Antwortnachrichtentyp 0100h enthalten, der anzeigt, dass es sich bei der im Extra-Header-Segment der Antwort-PIU enthaltenen RPMB-Nachricht um die Antwort auf die Authentifizierungsschlüsselprogrammierung handelt, sowie ein Ergebnis, das ein Leistungsergebnis der Authentifizierungsschlüsselprogrammierung anzeigt. In einer Ausführungsform kann das Ergebnis einen Ergebniscode enthalten, der ein Ergebniscode ist, der das im Ergebnisregister 113 gespeicherte Leistungsergebnis des Authentifizierungsschlüssel-Programmiervorgangs ist.
  • 26 ist ein Diagramm, das ein Beispiel für einen PIU-Sender 2600 in der Initiatoreinrichtung zeigt.
  • Unter Bezugnahme auf 7 und 26 können der Host 400 und die Speichereinrichtung 50 eine Operation in Bezug auf den RPMB 110a durchführen, während sie die PIU senden/empfangen. Bei der Durchführung des Schreibvorgangs für authentifizierte Daten, des Lesevorgangs für authentifizierte Daten und des Programmiervorgangs für den Authentifizierungsschlüssel, die in den 8 bis 25 beschrieben sind, können sowohl der RPMB-Host-Controller 410 als auch der RPMB-Einrichtungs-Controller 210 die PIU erzeugen und die erzeugte PIU übertragen oder die von einem Gegenstück übertragene PIU empfangen, um die Authentifizierung durchzuführen. Daher können der RPMB-Host-Controller 410 und der RPMB-Einrichtungs-Controller 210 sowohl den PIU-Sender 2600 als auch einen PIU-Empfänger 2700 enthalten, der unter Bezugnahme auf die später zu beschreibende 27 beschrieben wird.
  • Eine Einrichtung, die die PIU erzeugt, kann die Initiatoreinrichtung umfassen. Eine Einrichtung, die die erzeugte PIU empfängt, kann die Zieleinrichtung sein. Wenn der RPMB-Host-Controller 410 die PIU an den RPMB-Einrichtungs-Controller 210 liefert, kann der Host 400 die Initiatoreinrichtung und die Speichereinrichtung 50 die Zieleinrichtung enthalten. Umgekehrt kann, wenn der RPMB-Einrichtungs-Controller 210 die PIU an den RPMB-Host-Controller 410 liefert, die Speichereinrichtung 50 die Initiatoreinrichtung und der Host 400 die Zieleinrichtung enthalten.
  • Der PIU-Sender 2600 kann einen MAC-Rechner 2620, einen Authentifizierungsschlüsselspeicher 2630, einen Metadatengenerator 2610 und einen PIU-Generator 2640 umfassen.
  • Der Authentifizierungsschlüsselspeicher 2630 kann den Authentifizierungsschlüssel speichern. Der Authentifizierungsschlüsselspeicher 2630 kann dem Authentifizierungsschlüssel 111 entsprechen, der in der RPMB 110a enthalten ist, die unter Bezugnahme auf 7 beschrieben wird. Der Authentifizierungsschlüssel kann in dem RPMB 110a gemäß dem unter Bezugnahme auf die 23 bis 25 beschriebenen Programmiervorgang für den Authentifizierungsschlüssel gespeichert werden. Da der Authentifizierungsschlüssel verwendet wird, um den MAC zu erzeugen, wenn der Schreibvorgang für authentifizierte Daten und der Lesevorgang für authentifizierte Daten durchgeführt werden, muss der Authentifizierungsschlüssel in dem RPMB 110a gespeichert werden, bevor der Schreibvorgang für authentifizierte Daten und der Lesevorgang für authentifizierte Daten durchgeführt werden. Der Metadatengenerator 2610 kann die Metadaten erzeugen. Die Metadaten können in der RPMB-Nachricht enthalten sein. Die Metadaten können je nach Typ der RPMB-Nachricht unterschiedliche Komponenten enthalten. Zu den Komponenten, die in den Metadaten enthalten sein können, kann mindestens eine der folgenden gehören: der Schreibzählwert, der Typ der Anforderungsnachricht, der Typ der Antwortnachricht, das Ergebnis, die Adresse, die Nonce, die Daten, die erweiterten RPMB-Daten, den Blockzählwert und den erweiterten RPMB-Blockzählwert, die unter Bezugnahme auf 6 beschrieben wurden.
  • Der Metadatengenerator 2610 kann die erzeugten Metadaten an den MAC-Rechner 2620 und den PIU-Generator 2640 weitergeben.
  • Der MAC-Rechner 2620 kann den MAC unter Verwendung der Metadaten und des im Authentifizierungsschlüsselspeicher 2630 gespeicherten Authentifizierungsschlüssels erzeugen. Insbesondere kann der MAC-Rechner 2620 den MAC unter Verwendung eines hashbasierten Nachrichtenauthentifizierungscodes (HMAC SHA-256) erzeugen. Der generierte MAC kann von der Zieleinrichtung zur Authentifizierung verwendet werden. Der MAC kann eine Länge von 256 Bit (32 Byte) aufweisen. Der zur Erzeugung des MAC verwendete Authentifizierungsschlüssel kann 256 Bit lang sein. Die Größe des MAC und des Authentifizierungsschlüssels ist jedoch bei einigen Ausführungsformen der offenbarten Technologie nicht begrenzt. Der MAC-Rechner 2620 kann den erzeugten MAC an den PIU-Generator 2640 geben.
  • Der PIU-Generator 2640 kann die PIU generieren, die der Zieleinrichtung zur Verfügung gestellt wird. Insbesondere kann der PIU-Generator 2640 die RPMB-Nachricht mit den authentifizierten Daten und den Metadaten erzeugen. Die authentifizierten Daten können den MAC enthalten, der vom MAC-Rechner 2620 erzeugt wurde. In einer Ausführungsform können die authentifizierten Daten, die in der RPMB-Nachricht enthalten sind, die der Programmieranforderung für den Authentifizierungsschlüssel entspricht, die im Programmiervorgang für den Authentifizierungsschlüssel bereitgestellt wird, der Authentifizierungsschlüssel selbst sein.
  • Im normalen RPMB-Modus kann der PIU-Generator 2640 die erzeugte RPMB-Nachricht über die Dateneingabe-PIU oder die Datenausgabe-PIU an die Zieleinrichtung weiterleiten.
  • Im erweiterten RPMB-Modus kann der PIU-Generator 2640 die PIU einschließlich der RPMB-Nachricht im Extra-Header-Segment erzeugen und die erzeugte PIU der Zieleinrichtung zur Verfügung stellen. Im erweiterten RPMB-Modus kann das Feld für die Gesamtlänge des Extra-Header-Segments im Basis-Header-Segment der PIU, die die RPMB-Nachricht enthält, einen anderen Wert als 0 (ungleich Null) enthalten.
  • 27 ist ein Diagramm, das ein Beispiel für den PIU-Empfänger 2700 in der Zieleinrichtung zeigt.
  • Unter Bezugnahme auf 8 und 27 können der Host 400 und die Speichereinrichtung 50 die Operation in Bezug auf die RPMB 110a durchführen, während die PIU gesendet/empfangen wird. Bei der Durchführung des Schreibvorgangs für authentifizierte Daten, des Lesevorgangs für authentifizierte Daten und des Programmiervorgangs für den Authentifizierungsschlüssel, die in den 8 bis 25 beschrieben sind, können sowohl der RPMB-Host-Controller 410 als auch der RPMB-Einrichtungs-Controller 210 die PIU erzeugen und die erzeugte PIU übertragen oder die von einem Gegenstück übertragene PIU empfangen, um die Authentifizierung durchzuführen. Daher können der RPMB-Host-Controller 410 und der RPMB-Einrichtungs-Controller 210 sowohl den PIU-Sender 2600, der unter Bezugnahme auf 26 beschrieben wird, als auch den PIU-Empfänger 2700 umfassen.
  • Die Einrichtung, die die PIU erzeugt, kann die Initiatoreinrichtung sein. Die Einrichtung, die die erzeugte PIU empfängt, kann die Zieleinrichtung sein. Wenn der RPMB-Host-Controller 410 die PIU an den RPMB-Einrichtungs-Controller 210 liefert, kann der Host 400 die Initiatoreinrichtung und die Speichereinrichtung 50 die Zieleinrichtung sein. Umgekehrt kann, wenn der RPMB-Einrichtungs-Controller 210 die PIU an die RPMB-Hoststeuerung 410 liefert, die Speichereinrichtung 50 die Initiatoreinrichtung und der Host 400 die Zieleinrichtung sein.
  • Der PIU-Empfänger 2700 kann einen PIU-Parser 2710, einen MAC-Rechner 2720 und einen MAC-Vergleicher 2730 enthalten. Der PIU-Parser 2710 (PIU Durchseher) kann die von der Initiatoreinrichtung bereitgestellte PIU empfangen. Die vom PIU-Parser 2710 empfangene PIU kann die Dateneingabe-PIU oder die Datenausgabe-PIU im normalen RPMB-Modus enthalten. Die vom PIU-Parser 2710 empfangene PIU kann die Befehls-PIU oder die Antwort-PIU im erweiterten RPMB-Modus enthalten.
  • Der PIU-Parser 2710 kann die RPMB-Nachricht durch Parsen (Durchsehen) der empfangenen PIU erhalten und die Metadaten und die authentifizierten Daten durch Parsen der RPMB-Nachricht erhalten. In einer Ausführungsform können die Metadaten je nach Typ der RPMB-Nachricht unterschiedliche Komponenten enthalten. Zu den Komponenten, die in den Metadaten enthalten sein können, kann mindestens eine der folgenden gehören: der Schreibzählwert, der Typ der Anforderungsnachricht, der Typ der Antwortnachricht, das Ergebnis, die Adresse, die Nonce, die Daten, die erweiterten RPMB-Daten, den Blockzählwert und den erweiterten RPMB-Blockzählwert, wie in 6 beschrieben.
  • Bei den authentifizierten Daten kann es sich um den von der Initiatoreinrichtung erzeugten MAC handeln. In einer Ausführungsform können die authentifizierten Daten, die in der RPMB-Nachricht enthalten sind, die der Anforderung zur Programmierung des Authentifizierungsschlüssels entspricht, die im Rahmen des Programmiervorgangs für den Authentifizierungsschlüssel bereitgestellt wird, der Authentifizierungsschlüssel selbst sein.
  • Der MAC-Rechner 2720 kann den zuvor in der Zieleinrichtung gespeicherten Authentifizierungsschlüssel ermitteln. Der zuvor in der Zieleinrichtung gespeicherte Authentifizierungsschlüssel kann denselben Wert enthalten wie der in der Initiatoreinrichtung gespeicherte Authentifizierungsschlüssel.
  • Der MAC-Rechner 2720 kann den MAC unter Verwendung der vom PIU-Parser 2710 empfangenen Metadaten und des zuvor in der Zieleinrichtung gespeicherten Authentifizierungsschlüssels berechnen. Beispielsweise kann der MAC-Rechner 2720 den MAC unter Verwendung eines hashbasierten Nachrichtenauthentifizierungscodes (HMAC SHA-256) berechnen. Der MAC-Rechner 2720 kann den berechneten MAC an den MAC-Vergleicher 2730 weitergeben.
  • Der MAC-Vergleicher 2730 kann vergleichen, ob der vom PIU-Parser 2710 empfangene MAC und der vom MAC-Rechner 2720 empfangene MAC übereinstimmen, und kann ein Authentifizierungsergebnis entsprechend einem Vergleichsergebnis ausgeben. Das Authentifizierungsergebnis kann verwendet werden, um die Schreiboperation für authentifizierte Daten und die Leseoperation für authentifizierte Daten durchzuführen, die Operationen auf dem RPMB sind.
  • Folglich kann die Authentifizierung fehlschlagen, wenn die in der Initiatoreinrichtung und der Zieleinrichtung gespeicherten Authentifizierungsschlüssel unterschiedlich sind oder die für die Berechnung des MAC verwendeten Metadaten unterschiedlich sind, und nur wenn die in der Initiatoreinrichtung und der Zieleinrichtung gespeicherten Authentifizierungsschlüssel gleich sind und die für die Berechnung des MAC verwendeten Metadaten gleich sind, kann die Authentifizierung erfolgreich sein. Daher kann der RPMB 110a eine Datenspeicherfunktion bereitstellen, die hohe Sicherheit bietet.
  • 28 ist ein Diagramm, das ein weiteres Beispiel für den Speichercontroller von 1 zeigt.
  • Bezugnehmend auf 28 kann der Speichercontroller 800 einen Prozessor 810, einen RAM 820, eine Fehlerkorrekturschaltung 830, eine Host-Schnittstelle 840, einen ROM 850 und eine Flash-Schnittstelle 860 umfassen.
  • Der Prozessor 810 kann den Gesamtbetrieb des Speichercontrollers 800 steuern. Der RAM 820 kann als Pufferspeicher, Cache-Speicher, Betriebsspeicher und andere Arten von Speichereinrichtungen der Speichersteuerung 800 verwendet werden.
  • Im ROM 850 können verschiedene Informationen gespeichert werden, die für den Betrieb des Speichercontrollers 800 in Form einer Firmware erforderlich sind.
  • Der Speichercontroller 800 kann über die Hostschnittstelle 840 mit einer externen Einrichtung (z. B. dem Host 400, einem Anwendungsprozessor und dergleichen) kommunizieren.
  • Der Speichercontroller 800 kann mit der Speichereinrichtung 100 über die Flash-Schnittstelle 860 kommunizieren. Der Speichercontroller 800 kann einen Befehl CMD, eine Adresse ADDR und ein Steuersignal CTRL über die Flash-Schnittstelle 860 an die Speichereinrichtung 100 übertragen und Daten DATA empfangen. Die Flash-Schnittstelle 860 kann zum Beispiel eine NAND-Schnittstelle sein.
  • 29 ist ein Blockdiagramm, das ein Beispiel für ein Speicherkartensystem zeigt, das eine Speichereinrichtung enthält, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • Das Speicherkartensystem 2000 umfasst eine Speichercontroller 2100, eine Speichereinrichtung 2200 und einen Steckverbinder 2300 (siehe 29).
  • Der Speichercontroller 2100 ist mit der Speichereinrichtung 2200 verbunden. Der Speichercontroller 2100 ist für den Zugriff auf die Speichereinrichtung 2200 konfiguriert. Zum Beispiel kann der Speichercontroller 2100 so konfiguriert sein, dass er Lese-, Programmier-, Lösch- und Hintergrundoperationen der Speichereinrichtung 2200 steuert. Der Speichercontroller 2100 ist so konfiguriert, dass er eine Schnittstelle zwischen der Speichereinrichtung 2200 und einem Host bereitstellt. Der Speichercontroller 2100 ist so konfiguriert, dass er Firmware-Operationen zur Steuerung der Speichereinrichtung 2200 durchführt. Der Speichercontroller 2100 kann in gleicher Weise implementiert werden wie der Speichercontroller 200, der unter Bezugnahme auf 1 beschrieben ist.
  • Der Speichercontroller 2100 kann beispielsweise Komponenten wie einen Direktzugriffsspeicher (RAM), einen Prozessor, eine Host-Schnittstelle, eine Speicherschnittstelle und eine Fehlerkorrektor-Einheit enthalten.
  • Der Speichercontroller 2100 kann über den Steckverbinder 2300 mit einer externen Einrichtung kommunizieren. Der Speichercontroller 2100 kann mit einer externen Einrichtung (z. B. dem Host) gemäß einem bestimmten Kommunikationsstandard kommunizieren. Beispielsweise ist der Speichercontroller 2100 so konfiguriert, dass er mit einer externen Einrichtung über mindestens einen von verschiedenen Kommunikationsstandards kommuniziert, wie z. B. einen universellen seriellen Bus (USB), eine Multimedia-Karte (MMC), eine eingebettete MMC (eMMC), eine Peripheral Component Interconnection (PCI), PCI Express (PCI-E), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), FireWire, Universal Flash Storage (UFS), Wi-Fi, Bluetooth und NVMe. Beispielsweise kann der Steckverbinder 2300 durch mindestens einen der verschiedenen oben beschriebenen Kommunikationsstandards definiert sein.
  • Die Speichereinrichtung 2200 kann beispielsweise aus verschiedenen nichtflüchtigen Speicherelementen wie einem elektrisch löschbaren und programmierbaren ROM (EEPROM), einem NAND-Flash-Speicher, einem NOR-Flash-Speicher, einem Phase-Change-RAM (Phasenänderungs-RAM; PRAM), einem resistiven RAM (ReRAM), einem ferroelektrischen RAM (FRAM) und einem magnetischen Spin-Transfer-Torque-RAM (STT-MRAM) bestehen.
  • Der Speichercontroller 2100 und die Speichereinrichtung 2200 können in eine Halbleitereinrichtung integriert werden, um eine Speicherkarte zu konfigurieren. Beispielsweise können der Speichercontroller 2100 und die Speichereinrichtung 2200 in eine Halbleitereinrichtung integriert werden, um eine Speicherkarte wie eine PC-Karte (Personal Computer Memory Card International Association (PCMCIA)), eine Compact-Flash-Karte (CF), eine Smart-Media-Karte (SM oder SMC), einen Memory-Stick, eine Multimedia-Karte (MMC, RS-MMC, MMCmicro oder eMMC), eine SD-Karte (SD, miniSD, microSD oder SDHC) und einen Universal Flash Storage (UFS) zu konfigurieren.
  • 30 ist ein Blockdiagramm, das ein Beispiel für ein Solid-State-Drive-System (SSD) zeigt, das eine Speichereinrichtung enthält, die auf einigen Ausführungsformen der offenbarten Technologie basiert.
  • Wie in 30 dargestellt, umfasst das SSD-System 3000 einen Host 3100 und ein SSD 3200. Die SSD 3200 tauscht über einen Signalanschluss 3001 ein Signal mit dem Host 3100 aus und erhält über einen Stromanschluss 3002 Strom. Die SSD 3200 umfasst einen SSD-Controller 3210, eine Vielzahl von Flash-Speichern 3221 bis 322n, eine Zusatzstromversorgung 3230 und einen Pufferspeicher 3240.
  • In einigen Ausführungsformen der offenbarten Technologie kann der SSD-Controller 3210 die Funktion des mit Bezug auf 1 beschriebenen Speichercontrollers 200 übernehmen.
  • Der SSD-Controller 3210 kann die Mehrzahl der Flash-Speicher 3221 bis 322n in Reaktion auf das vom Host 3100 empfangene Signal steuern. Das Signal kann zum Beispiel Signale enthalten, die auf einer Schnittstelle zwischen dem Host 3100 und dem SSD 3200 basieren. Zum Beispiel kann das Signal ein Signal enthalten, das durch mindestens eine der Schnittstellen wie einen universellen seriellen Bus (USB), eine Multimedia-Karte (MMC), eine eingebettete MMC (eMMC), eine Peripheral Component Interconnection (PCI), eine PCI Express (PCI-E), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), FireWire, Universal Flash Storage (UFS), Wi-Fi, Bluetooth und NVMe definiert ist.
  • Die Zusatzstromversorgung 3230 ist über den Stromanschluss 3002 mit dem Host 3100 verbunden. Das Zusatzstromversorgung 3230 kann den Strom vom Host 3100 empfangen und den Strom laden. Die Zusatzstromversorgung 3230 kann die SSD 3200 mit Strom versorgen, wenn die Stromversorgung durch den Host 3100 nicht reibungslos funktioniert. Die Zusatzstromversorgung 3230 kann beispielsweise in der SSD 3200 oder außerhalb der SSD 3200 angeordnet sein. Beispielsweise kann die Zusatzstromversorgung 3230 auf einer Hauptplatine angeordnet sein und die SSD 3200 mit Zusatzstrom (zusätzlicher Energie) versorgen.
  • Der Pufferspeicher 3240 arbeitet als Pufferspeicher des SSD 3200. Der Pufferspeicher 3240 kann beispielsweise vom Host 3100 empfangene Daten oder von der Vielzahl der Flash-Speicher 3221 bis 322n empfangene Daten vorübergehend speichern oder Metadaten (z. B. eine Abbildungstabelle) der Flash-Speicher 3221 bis 322n vorübergehend speichern. Der Pufferspeicher 3240 kann ein flüchtiger Speicher wie ein DRAM, ein SDRAM, ein DDR-SDRAM, ein LPDDR-SDRAM und ein GRAM oder ein nichtflüchtiger Speicher wie ein FRAM, ein ReRAM, ein STT-MRAM und ein PRAM sein.
  • 31 ist ein Blockdiagramm, das ein Beispiel für ein Benutzersystem zeigt, das die auf einigen Ausführungsformen der offenbarten Technologie basierende Speichereinrichtung enthält.
  • Wie in 31 dargestellt, umfasst das Benutzersystem 4000 einen Anwendungsprozessor 4100, ein Speichermodul 4200, ein Netzwerkmodul 4300, ein Speichermodul 4400 und eine Benutzeroberfläche 4500.
  • Der Anwendungsprozessor 4100 kann die Operationen ausführen, die mit den Komponenten im Benutzersystem 4000, einem Betriebssystem (OS), einem Benutzerprogramm oder anderen im Benutzersystem 4000 enthaltenen Komponenten verbunden sind. Der Anwendungsprozessor 4100 kann beispielsweise Steuerungen, Schnittstellen, Grafik-Engines und andere Komponenten enthalten, die die im Benutzersystem 4000 enthaltenen Komponenten steuern. Der Anwendungsprozessor 4100 kann als System-On-Chip (SoC) bereitgestellt werden.
  • Das Speichermodul 4200 kann als Hauptspeicher, Betriebsspeicher, Pufferspeicher oder Cache-Speicher des Benutzersystems 4000 arbeiten. Das Speichermodul 4200 kann einen flüchtigen Direktzugriffsspeicher wie einen DRAM, einen SDRAM, einen DDR SDRAM, einen DDR2 SDRAM, einen DDR3 SDRAM, einen LPDDR SDARM, einen LPDDR2 SDRAM und einen LPDDR3 SDRAM oder einen nichtflüchtigen Direktzugriffsspeicher wie einen PRAM, einen ReRAM, einen MRAM und einen FRAM enthalten. Beispielsweise können der Anwendungsprozessor 4100 und das Speichermodul 4200 in einem Package-on-Package (POP) untergebracht sein und als ein einziges Halbleiterpaket geliefert werden.
  • Das Netzwerkmodul 4300 kann mit externen Einrichtungen kommunizieren. Zum Beispiel kann das Netzwerkmodul 4300 drahtlose Kommunikation wie CDMA (Code Division Multiple Access), GSM (Global System for Mobile Communications), WCDMA (Wideband CDMA), CDMA-2000, TDMA (Time Division Multiple Access), Long Term Evolution, Wimax, WLAN, UWB, Bluetooth und Wi-Fi unterstützen. Das Netzwerkmodul 4300 kann beispielsweise in den Anwendungsprozessor 4100 integriert sein.
  • Das Speichermodul 4400 kann Daten speichern. Beispielsweise kann das Speichermodul 4400 Daten speichern, die vom Anwendungsprozessor 4100 empfangen wurden. Alternativ dazu kann das Speichermodul 4400 die im Speichermodul 4400 gespeicherten Daten an den Anwendungsprozessor 4100 übertragen. Das Speichermodul 4400 kann beispielsweise mit einem nichtflüchtigen Halbleiterspeicherelement wie einem Phase-Change-RAM (PRAM), einem magnetischen RAM (MRAM), einem resistiven RAM (RRAM), einem NAND-Flash, einem NOR-Flash und einem dreidimensionalen NAND-Flash realisiert werden. Das Speichermodul 4400 kann beispielsweise als Wechselspeicher (Wechsellaufwerk), wie eine Speicherkarte, und als externes Laufwerk des Benutzersystems 4000 vorgesehen sein.
  • Das Speichermodul 4400 kann beispielsweise eine Vielzahl von nichtflüchtigen Speichereinrichtungen enthalten, und die Vielzahl von nichtflüchtigen Speichereinrichtungen können identisch mit der in 1 beschriebenen Speichereinrichtung 100 funktionieren. Das Speichermodul 4400 kann identisch zu der mit Bezug auf 1 beschriebenen Speichereinrichtung 50 arbeiten.
  • Die Benutzerschnittstelle 4500 kann Schnittstellen zur Eingabe von Daten oder einer Anweisung in den Anwendungsprozessor 4100 oder zur Ausgabe von Daten an eine externe Einrichtung enthalten. Beispielsweise kann die Benutzerschnittstelle 4500 Benutzereingabeschnittstellen wie eine Tastatur, ein Tastenfeld, eine Taste, ein Touchpanel, einen Touchscreen, ein Touchpad, einen Touchball, eine Kamera, ein Mikrofon, einen Gyroskopsensor, einen Vibrationssensor und ein piezoelektrisches Element umfassen. Die Benutzerschnittstelle 4500 kann Benutzerausgabeschnittstellen wie eine Flüssigkristallanzeige (LCD), eine organische Leuchtdioden-Anzeigeeinrichtung (OLED), eine Aktivmatrix-OLED-Anzeigeeinrichtung (AMOLED), eine LED, einen Lautsprecher und einen Monitor umfassen.
  • Es werden nur einige Beispiele oder Ausführungsformen der offenbarten Technologie beschrieben. Variationen oder Verbesserungen der offenbarten Beispiele oder Ausführungsformen und andere Ausführungsformen sind auf der Grundlage des Offenbarten möglich.

Claims (47)

  1. Speichereinrichtung, umfassend: eine nichtflüchtige Speichereinrichtung, die einen wiedergabeschützen Speicherblock, RPMB, umfasst; und einen Speichercontroller, der so konfiguriert ist, dass er eine Befehlsprotokollinformationseinheit, PIU, mit einer Host-RPMB-Nachricht von einem Host empfängt und Daten in dem RPMB auf der Grundlage einer unter Verwendung der Host-RPMB-Nachricht durchgeführten Authentifizierung speichert, wobei die Befehls-PIU umfasst: ein Basis-Header-Segment, das gemeinsam in PlUs enthalten ist, die zwischen dem Host und dem Speichercontroller übertragen oder empfangen werden; und ein Extra-Header-Segment, das die Host-RPMB-Nachricht enthält.
  2. Speichereinrichtung nach Anspruch 1, wobei die Befehls-PIU ferner ein transaktionsspezifisches Feld umfasst, das so konfiguriert ist, dass es einen Typ der PIU identifiziert, die zwischen dem Host und dem Speichercontroller übertragen oder empfangen wird.
  3. Speichereinrichtung nach Anspruch 1, wobei das Basis-Header-Segment ferner ein Gesamt-Extra-Header-Segment-Längenfeld enthält, das einen Wert ungleich 0 aufweist.
  4. Speichereinrichtung nach Anspruch 1, wobei der RPMB umfasst: einen Authentifizierungsschlüsselspeicher, der so konfiguriert ist, dass er einen Authentifizierungsschlüssel speichert, der für eine Authentifizierung verwendet wird; einen Schreibzähler, der so konfiguriert ist, dass er einen Schreibzählwert speichert, der anzeigt, wie oft eine Schreiboperation von authentifizierten Daten zum Speichern von Daten in der RPMB erfolgreich durchgeführt wurde; ein Ergebnisregister, das so konfiguriert ist, dass es ein Leistungsergebnis einer Operation auf dem RPMB speichert; und einen RPMB-Datenbereich, in dem vom Host empfangene Schreibdaten gespeichert werden.
  5. Speichereinrichtung nach Anspruch 4, wobei der Speichercontroller umfasst: einen Authentifizierungsmanager, der so konfiguriert ist, dass er die Authentifizierung durchführt und ein Ergebnis der Authentifizierung ausgibt; und einen Zugriffs-Controller, die so konfiguriert ist, dass er den RPMB auf der Grundlage des Ergebnisses der Authentifizierung steuert, und wobei die Host-RPMB-Nachricht einen Host Message Authentication Code (MAC) und Host-Metadaten enthält.
  6. Speichereinrichtung nach Anspruch 5, wobei der Authentifizierungsmanager umfasst: einen Einrichtungs-MAC-Rechner, der so konfiguriert ist, dass er einen Einrichtungs-MAC unter Verwendung der Host-Metadaten und des Authentifizierungsschlüssels erzeugt; und einen MAC-Vergleicher, der so konfiguriert ist, dass er das Ergebnis der Authentifizierung abhängig davon erzeugt, ob der Host-MAC und der Einrichtungs-MAC übereinstimmen.
  7. Speichereinrichtung nach Anspruch 6, wobei der MAC-Rechner den Einrichtungs-MAC unter Verwendung eines sicheren Hash-Algorithmus-256 (SHA-256) auf der Grundlage der Host-Metadaten und des Authentifizierungsschlüssels erzeugt.
  8. Speichereinrichtung nach Anspruch 6, wobei der Zugriffs-Controller die nichtflüchtige Speichereinrichtung steuert, um die Schreibdaten in dem RPMB zu speichern, wenn die Host-MAC und die Einrichtungs-MAC übereinstimmen.
  9. Speichereinrichtung nach Anspruch 8, wobei der Zugriffs-Controller die nichtflüchtige Speichereinrichtung steuert, um einen erhöhten Schreibzählwert zu speichern, der durch Erhöhen des Schreibzählwerts in dem Schreibzähler erhalten wird, und einen Ergebniscode im Ergebnisregister zu speichern, der anzeigt, dass die Schreiboperation für authentifizierte Daten erfolgreich ist.
  10. Speichereinrichtung nach Anspruch 9, wobei der Zugriffs-Controller eine Antwort-PIU erzeugt, die eine Einrichtungs-RPMB-Nachricht enthält.
  11. Speichereinrichtung nach Anspruch 10, wobei ein in der Antwort-PIU enthaltenes Extra-Header-Segment die Einrichtungs-RPMB-Nachricht enthält.
  12. Speichereinrichtung nach Anspruch 11, wobei die Einrichtungs-RPMB-Nachricht der Einrichtung den erhöhten Schreibzählwert und den Ergebniscode enthält.
  13. Speichereinrichtung, umfassend: eine nichtflüchtige Speichereinrichtung, die einen wiedergabeschützen Speicherblock, RPMB, umfasst; und einen Speichercontroller, der so konfiguriert ist, dass er eine Befehlsprotokollinformationseinheit, PIU, die eine Host-RPMB-Nachricht enthält, von einem Host empfängt und in dem RPMB gespeicherte Daten liest, wobei die Befehls-PIU umfasst: ein Basis-Header-Segment, das gemeinsam in PlUs enthalten ist, die zwischen dem Host und dem Speichercontroller übertragen oder empfangen werden; und ein Extra-Header-Segment, das die Host-RPMB-Nachricht enthält.
  14. Speichereinrichtung nach Anspruch 13, wobei die Befehls-PIU ferner ein transaktionsspezifisches Feld umfasst, das so konfiguriert ist, dass es einen Typ der PIU identifiziert, die zwischen dem Host und dem Speichercontroller übertragen oder empfangen wird.
  15. Speichereinrichtung nach Anspruch 13, wobei das Basis-Header-Segment ferner ein Gesamt-Extra-Header-Segment-Längenfeld enthält, das einen Wert ungleich 0 aufweist.
  16. Speichereinrichtung nach Anspruch 13, wobei die Host-RPMB-Nachricht eine Adresse enthält, die Daten angibt, die aus dem RPMB gelesen werden sollen.
  17. Speichereinrichtung nach Anspruch 13, wobei der RPMB umfasst: einen Authentifizierungsschlüsselspeicher, der so konfiguriert ist, dass er einen Authentifizierungsschlüssel speichert, der zum Erzeugen eines Einrichtungs-Message Authentication Codes, MAC, verwendet wird; und einen RPMB-Datenbereich, in dem Daten gespeichert werden.
  18. Speichereinrichtung nach Anspruch 17, wobei der Speichercontroller umfasst: einen Authentifizierungsmanager, der so konfiguriert ist, dass er die Einrichtungs-MAC erzeugt, die zur Authentifizierung von Daten verwendet wird, die aus dem RPMB durch den Host gelesen werden; und einen Zugriffs-Controller, der so konfiguriert ist, dass er eine Antwort-PIU erzeugt, die einer Antwort auf die Befehls-PIU entspricht, die Lesedaten an den Host liefert, und die Antwort-PIU an den Host liefert.
  19. Speichereinrichtung nach Anspruch 18, wobei der Zugriffs-Controller umfasst: einen Einrichtungs-Metadatengenerator, der so konfiguriert ist, dass er Einrichtungs-Metadaten erzeugt, die einen Teil der in der Host-RPMB-Nachricht enthaltenen Daten enthalten; und einen Einrichtungs-PIU-Generator, der so konfiguriert ist, dass er eine Einrichtungs-RPMB-Nachricht erzeugt, die die Einrichtungs-Metadaten und den Einrichtungs-MAC enthält.
  20. Speichereinrichtung nach Anspruch 19, wobei der Authentifizierungsmanager den Einrichtungs-MAC unter Verwendung eines sicheren Hash-Algorithmus-256 (SHA-256) auf der Grundlage der Einrichtungs-Metadaten und des Authentifizierungsschlüssels erzeugt.
  21. Speichereinrichtung nach Anspruch 19, wobei die Einrichtungs-RPMB-Nachricht in einem Extra-Header-Segment der Antwort-PIU enthalten ist.
  22. Speichereinrichtung nach Anspruch 19, wobei der in der Host-RPMB-Nachricht enthaltene Teil der Daten ein in der Host-RPMB-Nachricht enthaltenes Nonce ist.
  23. Speichereinrichtung nach Anspruch 19, wobei der in der Host-RPMB-Nachricht enthaltene Teil der Daten eine Adresse ist, die die in der Host-RPMB-Nachricht enthaltenen, aus dem RPMB zu lesenden Daten angibt.
  24. Host-Einrichtung, die so konfiguriert ist, dass sie die Operationen einer Speichereinrichtung steuert, die einen wiedergabegeschützten Speicherblock, RPMB, enthält, wobei die Host-Einrichtung umfasst: einen Host Message Authentication Code, MAC, Rechner, der so konfiguriert ist, dass er einen Host-MAC unter Verwendung von Host-Metadaten berechnet; und einen Host-PIU-Generator, der so konfiguriert ist, dass er eine Befehlsprotokollinformationseinheit, PIU, bereitstellt, die die Speichereinrichtung anweist, auf den RPMB zuzugreifen, wobei die Befehls-PIU umfasst: ein Basis-Header-Segment, das gemeinsam in PlUs enthalten ist, die zwischen der Host-Einrichtung und der Speichereinrichtung übertragen werden; und ein Extra-Header-Segment mit der Host-MAC und den Host-Metadaten.
  25. Host-Einrichtung nach Anspruch 24, ferner umfassend: einen Authentifizierungsschlüsselspeicher, der so konfiguriert ist, dass er einen Authentifizierungsschlüssel speichert, der zur Erzeugung der Host-MAC verwendet wird.
  26. Host-Einrichtung nach Anspruch 25, wobei der Host-MAC-Rechner den Host-MAC unter Verwendung der Host-Metadaten und des Authentifizierungsschlüssels errechnet.
  27. Host-Einrichtung nach Anspruch 24, wobei die Befehls-PIU ferner ein transaktionsspezifisches Feld umfasst, das so konfiguriert ist, dass es einen Typ der PIU identifiziert, der zwischen der Host-Einrichtung und der Speichereinrichtung übertragen wird.
  28. Host-Einrichtung nach Anspruch 24, wobei das Basis-Header-Segment ferner ein Gesamt-Extra-Header-Segment-Längenfeld enthält, das einen Wert ungleich 0 aufweist.
  29. Host-Einrichtung nach Anspruch 24, wobei der Host-PIU-Generator eine Antwort-PIU von der Speichereinrichtung empfängt, und die Antwort-PIU ein Basis-Header-Segment, das ein Gesamt-Extra-Header-Segment-Längenfeld mit einem Wert ungleich 0 enthält, und ein Extra-Header-Segment, das eine Einrichtungs-RPMB-Nachricht enthält, umfasst.
  30. Host-Einrichtung nach Anspruch 29, wobei die Antwort-PIU ferner ein transaktionsspezifisches Feld umfasst, das einen Typ der PIU identifiziert, die zwischen der Host-Einrichtung und der Speichereinrichtung übertragen wird.
  31. Host-Einrichtung nach Anspruch 29, wobei die Einrichtungs-RPMB-Nachricht eine Einrichtungs-MAC und Einrichtungs-Metadaten enthält.
  32. Host-Einrichtung nach Anspruch 31, wobei die Einrichtungs-MAC von der Speichereinrichtung unter Verwendung der Einrichtungs-Metadaten erzeugt wird.
  33. Host-Einrichtung nach Anspruch 31, wobei die Einrichtungs-Metadaten einen Ergebniscode enthalten, der ein Ergebnis eines Zugriffs auf den RPMB durch die Befehls-PIU anzeigt.
  34. Host-Einrichtung nach Anspruch 31, wobei die Einrichtungs-Metadaten einen Schreibzählwert enthalten, der die Anzahl der auf dem RPMB durchgeführten Schreiboperationen angibt.
  35. Elektronische Einrichtung, umfassend: eine Speichereinrichtung, die einen wiedergabegeschützten Speicherblock, RPMB, umfasst; und eine Host-Einrichtung, die so konfiguriert ist, dass sie eine Befehlsprotokollinformationseinheit, PIU, bereitstellt, die die Speichereinrichtung anweist, auf den RPMB zuzugreifen, wobei die Befehls-PIU ein Basis-Header-Segment und ein Extra-Header-Segment umfasst, und wobei das Basis-Header-Segment ein Gesamt-Extra-Header-Segment-Längenfeld enthält, das einen Wert ungleich 0 hat, und das Extra-Header-Segment eine Host-RPMB-Nachricht enthält.
  36. Elektronische Einrichtung nach Anspruch 35, wobei der RPMB umfasst: einen Authentifizierungsschlüsselspeicher, der so konfiguriert ist, dass er einen Einrichtungs-Authentifizierungsschlüssel speichert, der zur Authentifizierung für den RPMB verwendet wird; einen Schreibzähler, der so konfiguriert ist, dass er einen Schreibzählwert speichert, der anzeigt, wie oft ein Schreibvorgang für authentifizierte Daten zum Speichern von Daten in dem RPMB erfolgreich durchgeführt wurde; ein Ergebnisregister, das so konfiguriert ist, dass es ein Leistungsergebnis einer Operation auf dem RPMB speichert; und einen RPMB-Datenbereich, der von der Host-Einrichtung empfangene Schreibdaten speichert.
  37. Elektronische Einrichtung nach Anspruch 36, wobei die Speichereinrichtung umfasst: einen Authentifizierungsmanager, der so konfiguriert ist, dass er die Authentifizierung durchführt und ein Ergebnis der Authentifizierung ausgibt; und einen Zugriffs-Controller, die so konfiguriert ist, dass er den RPMB auf der Grundlage des Ergebnisses der Authentifizierung steuert, wobei die Host-RPMB-Nachricht einen Host Message Authentication Code, MAC, und Host-Metadaten enthält.
  38. Elektronische Einrichtung nach Anspruch 37, wobei der Authentifizierungsmanager umfasst: einen Einrichtungs-MAC-Rechner, der so konfiguriert ist, dass er einen Einrichtungs-MAC unter Verwendung der Host-Metadaten und des Einrichtungs-Authentifizierungsschlüssels erzeugt; und einen MAC-Vergleicher, der so konfiguriert ist, dass er das Ergebnis der Authentifizierung abhängig davon erzeugt, ob der Host-MAC und der Einrichtungs-MAC übereinstimmen.
  39. Elektronische Einrichtung nach Anspruch 38, wobei der Einrichtungs-MAC-Rechner den Einrichtungs-MAC unter Verwendung eines sicheren Hash-Algorithmus-256 (SHA-256) auf der Grundlage der Host-Metadaten und des Einrichtungs-Authentifizierungsschlüssels erzeugt.
  40. Elektronische Einrichtung nach Anspruch 37, wobei die Host-Einrichtung umfasst: einen Host-MAC-Rechner, der so konfiguriert ist, dass er den Host-MAC unter Verwendung der Host-Metadaten berechnet; einen Host-PIU-Generator, der so konfiguriert ist, dass er die Befehls-PIU erzeugt; und einen Authentifizierungsschlüsselspeicher, der so konfiguriert ist, dass er einen Host-Authentifizierungsschlüssel speichert, der zur Erzeugung der Host-MAC verwendet wird.
  41. Elektronische Einrichtung nach Anspruch 40, wobei der Host-MAC-Rechner den Host-MAC unter Verwendung der Host-Metadaten und des Host-Authentifizierungsschlüssels berechnet.
  42. Elektronische Einrichtung nach Anspruch 35, wobei die Befehls-PIU ferner ein transaktionsspezifisches Feld umfasst, das einen Typ einer PIU identifiziert, die zwischen der Host-Einrichtung und der Speichereinrichtung übertragen wird.
  43. Elektronische Einrichtung nach Anspruch 35, wobei die Host-Einrichtung eine Antwort-PIU von der Speichereinrichtung empfängt, und die Antwort-PIU ein Basis-Header-Segment, das ein Gesamt-Extra-Header-Segment-Längenfeld mit einem Wert ungleich 0 enthält, und ein Extra-Header-Segment, das eine Einrichtungs-RPMB-Nachricht enthält, umfasst.
  44. Elektronische Anlage nach Anspruch 43, wobei die Einrichtungs-RPMB-Nachricht eine Einrichtungs-MAC und Einrichtungs-Metadaten enthält.
  45. Elektronische Einrichtung nach Anspruch 44, wobei die Einrichtungs-MAC von der Speichereinrichtung unter Verwendung der Einrichtungs-Metadaten erzeugt wird.
  46. Elektronische Einrichtung nach Anspruch 44, wobei die Einrichtungs-Metadaten einen Ergebniscode enthalten, der ein Ergebnis eines Zugriffs auf den RPMB durch die Befehls-PIU anzeigt.
  47. Elektronische Einrichtung nach Anspruch 44, wobei die Einrichtungs-Metadaten einen Schreibzählwert enthalten, der die Anzahl der auf dem RPMB durchgeführten Schreibvorgänge angibt.
DE102021210515.7A 2020-09-22 2021-09-22 Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben Pending DE102021210515A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2020-0122028 2020-09-22
KR20200122028 2020-09-22
KR10-2021-0106006 2021-08-11
KR1020210106006A KR20220039562A (ko) 2020-09-22 2021-08-11 스토리지 장치, 호스트 장치, 이들을 포함하는 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
DE102021210515A1 true DE102021210515A1 (de) 2022-03-24

Family

ID=80473998

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021210515.7A Pending DE102021210515A1 (de) 2020-09-22 2021-09-22 Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben

Country Status (4)

Country Link
US (1) US20220091760A1 (de)
CN (1) CN114255813A (de)
DE (1) DE102021210515A1 (de)
TW (1) TW202213107A (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200128825A (ko) * 2019-05-07 2020-11-17 삼성전자주식회사 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
US11487454B2 (en) * 2019-12-05 2022-11-01 Sandisk Technologies Llc Systems and methods for defining memory sub-blocks
US11481141B1 (en) * 2021-04-26 2022-10-25 Micron Technology, Inc. Secure self-purging memory partitions
WO2024040506A1 (en) * 2022-08-25 2024-02-29 Micron Technology, Inc. Memory chip test pad access management to facilitate data security

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
US9934412B2 (en) * 2015-06-23 2018-04-03 Microsoft Technology Licensing, Llc Implementing replay protected storage
US10491569B1 (en) * 2015-11-10 2019-11-26 Alterednets Cyber Solutions LLC Secure transfer of independent security domains across shared media
US11144214B2 (en) * 2019-07-25 2021-10-12 Micron Technology, Inc. Memory authentication
KR20210016191A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치

Also Published As

Publication number Publication date
US20220091760A1 (en) 2022-03-24
TW202213107A (zh) 2022-04-01
CN114255813A (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
DE102021210515A1 (de) Speichereinrichtung, host-einrichtung, elektronische einrichtung mit speichereinrichtung und host-einrichtung und verfahren zum betrieb derselben
US20190317892A1 (en) Memory system, data processing system, and operating method of memory system
KR20210144180A (ko) 스토리지 장치 및 그 동작 방법
US11868624B2 (en) Computing system and operating method thereof
KR20210113906A (ko) 컴퓨팅 시스템 및 그 동작 방법
KR102620727B1 (ko) 전자 장치
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US20220091757A1 (en) Apparatus including data storage device and method of operating the same
US11556252B2 (en) Storage device and method of operating the same
US11455102B2 (en) Computing system and operating method thereof
US20220155976A1 (en) Data storage device and method of operating the same
DE102022211563A1 (de) Speichervorrichtung, rechnersystem und verfahren zum betrieb desselben
US20230134534A1 (en) Memory controller and storage device
DE102022207151A1 (de) Speichereinrichtung und verfahren zum betreiben derselben
KR20190102998A (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
KR20230064538A (ko) 메모리 컨트롤러 및 스토리지 장치
US20230297261A1 (en) Storage device and operating method thereof
US11657000B2 (en) Controller and memory system including the same
KR20230064526A (ko) 스토리지 장치, 컴퓨팅 시스템 및 그 동작 방법
US11288007B2 (en) Virtual physical erase of a memory of a data storage device
DE102022209281A1 (de) Speichersteuerung, Speichergerät und Hostvorrichtung
KR20230011214A (ko) 스토리지 장치 및 이의 동작 방법
DE102023104826A1 (de) Speichergerät, elektronische vorrichtung mit demselben und betriebsverfahren dafür
KR20230041570A (ko) 메모리 컨트롤러, 스토리지 장치 및 호스트 장치
KR20240019429A (ko) 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법