Memory system and control method
AssigneeKioxia Corporation
InventorsKeiri Nakanishi, Takaya Ogawa, Takashi Takemoto, Kohei Oikawa
Life of this patent
Estimating the term…
Abstract
A controller of a memory system includes circuitry that generates a first compression unit that is calculated based on first namespace setting information indicating setting of a write-destination namespace, and corresponds to the write-destination namespace. The first compression unit has a size satisfying a constraint that an encryption key for encrypting data to be written into the write-destination namespace is not switched in the first compression unit.
Claims20
A memory system connectable to a host, comprising:
- a non-volatile memory;
- and
- a controller having circuitry configured to
- manage a plurality of namespaces, and control the non-volatile memory, the namespaces being used by the host to access the memory system,
- compress a write data item received from the host to create compressed data,
- encrypt the compressed data with an encryption key to generate encrypted data to be written into the non-volatile memory,
- determine, for each of the namespaces, a compression unit that is a unit of compression of the write data item,
- determine a first compression unit in response to a write command that designates a namespace identifier of a write-destination namespace from the host, wherein a size of the first compression unit is calculated based on first namespace setting information corresponding to the write-destination namespace, and having a size of an encryption key switch unit that satisfies a constraint that an encryption key to encrypt data to be written into the write-destination namespace is not switched in the first compression unit, and
- compress data specified by the write command according to the first compression unit.
A memory system connectable to a host, comprising:
- a non-volatile memory;
- and
- a controller having circuitry configured to
- manage a plurality of encryption keys, and control the non-volatile memory, the plurality of encryption keys being associated in a one-to-one relationship respectively with a plurality of logical address ranges set in a logical address space used by the host to access the memory system,
- compress a write data item associated with a write command received from the host to create compressed data,
- encrypt the compressed data to generate encrypted data using an encryption key, of the plurality of encryption keys, associated with the logical address range to which a logical address designated by the write command belongs, the encrypted data to be written into the non-volatile memory,
- identify a logical address range, of the plurality of logical address ranges, to which the logical address designated by the received write command belongs, every time the write command is received from the host,
- determine a compression unit that is a unit of compression of the write data item,
- determine whether a first logical address range to which a first logical address designated by the latest write command belongs matches a second logical address range to which a second logical address designated by the penultimate write command belongs or not,
- in response to the first logical address matching the second logical address range, extend a current size of the compression unit such that a first write data item associated with a latest write command received from the host is compressed with data at least including a second write data item associated with a penultimate write command received from the host, and wait to receive a next write command from the host, and
- in response to the first logical address not matching the second logical address range,
- determine the current size of the compression unit as the compression unit so that the first write data item, and the data at least including the second write data item are separately compressed, and
- set the generated compression unit, and wait for receipt of the next write command from the host.
A memory system connectable to a host, comprising:
- a non-volatile memory;
- and
- controller having circuitry configured to
- manage a plurality of namespaces, control the non-volatile memory, the plurality of namespaces being used by the host to access the memory system, and manage a plurality of encryption keys associated in a one-to-one relationship respectively with the plurality namespaces,
- compress a write data item associated with a write command received from the host to create compressed data;
- encrypt the compressed data to generate encrypted data using the encryption key associated with the namespace in which the write data item is to be written, the encrypted data to be written into the non-volatile memory,
- determine a compression unit that is a unit of compressing the write data item,
- determine whether a first namespace identifier designated by the latest write command matches a second namespace identifier designated by the penultimate write command or not, and
- in response to the first namespace identifier matching the second namespace identifier, extend a current size of the compression unit so that a first write data item associated with a latest write command received from the host is compressed with data at least including a second write data item associated with a penultimate write command received from the host, and wait to receive a next write command from the host, and
- in response to the first namespace identifier not matching the second namespace identifier,
- determine the current size of the compression unit as the compression unit so that the first write data item, and the data at least including the second write data item are separately compressed, and
- set the generated compression unit, and wait for receipt of the next write command from the host.
Dependencies are inferred from the claim text.