BR112016021172B1 - Método para armazenar dados por dispositivo de armazenamento e dispositivo de armazenamento - Google Patents

Método para armazenar dados por dispositivo de armazenamento e dispositivo de armazenamento Download PDF

Info

Publication number
BR112016021172B1
BR112016021172B1 BR112016021172-3A BR112016021172A BR112016021172B1 BR 112016021172 B1 BR112016021172 B1 BR 112016021172B1 BR 112016021172 A BR112016021172 A BR 112016021172A BR 112016021172 B1 BR112016021172 B1 BR 112016021172B1
Authority
BR
Brazil
Prior art keywords
write request
data
storage area
space
storage
Prior art date
Application number
BR112016021172-3A
Other languages
English (en)
Other versions
BR112016021172A2 (pt
Inventor
Chungong Lin
Fei Xu
Enting Cai
Original Assignee
Huawei Technologies Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112016021172A2 publication Critical patent/BR112016021172A2/pt
Publication of BR112016021172B1 publication Critical patent/BR112016021172B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability of storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

MÉTODO PARA ARMAZENAR DADOS POR DISPOSITIVO DE ARMAZENAMENTO E DISPOSITIVO DE ARMAZENAMENTO. A presente invenção revela uma solução para armazenar dados por um dispositivo de armazenamento. O dispositivo de armazenamento inclui uma primeira área de armazenamento e uma segunda área de armazenamento, onde a primeira área de armazenamento inclui espaço de dados e espaço reservado, e a segunda área de armazenamento inclui espaço de dados e espaço reservado, e o dispositivo de armazenamento determina um recurso de uma solicitação de gravar, e armazena, de acordo com um resultado da determinação, dados portados na solicitação de gravar em um espaço reservado de uma área de armazenamento correspondente.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção se refere ao campo de tecnologias da informação, e em particular, a um método para armazenar dados por um dispositivo de armazenamento e a um dispositivo de armazenamento.
ANTECEDENTES
[0002] Um disco de estado sólido (Disco de Estado Sólido, SSD), mostrado na Figura 1, inclui um controlador de armazenamento 101 e um meio 102 (por exemplo, um chip de memória flash). O controlador de armazenamento 101 inclui uma unidade de processamento central 1011 (Unidade de Processamento Central, CPU) e uma memória 1012. O armazenamento no SSD é organizado usando-se um bloco físico (bloco físico) e uma página (página) como unidades. A página é a menor unidade de ler/ gravar no disco de estado sólido, e um tamanho da página pode ser 4 KB, 8 KB, ou 16 KB. As páginas são combinadas em um bloco físico, e cada bloco físico pode ter 32, 64, ou 128 páginas. O SSD em geral divide o espaço de armazenamento em espaço de dados e espaço reservado (Excesso de Provisionamento). O espaço de dados é o espaço no qual dados já estão gravados, e o espaço reservado é espaço livre, inclui páginas livres, e dados podem ser gravados no espaço reservado. Quando dados já armazenados no espaço de dados no SSD devem ser sobrescritos por novos dados, um mecanismo de redirecionamento de gravação (Redirecionamento de Gravação, ROW) é usado. Isto é, quando o SSD grava novos dados em um endereço de bloco lógico (Endereço de Bloco Lógico, LBA) para modificar os dados já armazenados, o SSD grava os novos dados em uma página do espaço reservado, estabelece uma relação de mapeamento entre o LBA e um endereço de página do espaço reservado, e marca dados em um endereço de página, para o qual o LBA é previamente mapeado, do espaço de dados como dados sem significado. Quando o espaço reservado é menor que um limiar, o SSD realiza reciclagem de espaço de lixo para um bloco físico da página na qual os dados sem significado estão localizados. Um processo de reciclagem é conforme a seguir: ler dados válidos no bloco físico da página na qual os dados sem significado estão localizados, gravar os dados de leitura válidos no espaço reservado, apagar dados no bloco físico da página na qual os dados sem significado estão localizados, e usar o bloco físico como novo espaço reservado. No processo de reciclagem de espaço de lixo, um processo no qual os dados válidos são lidos e os dados válidos são gravados no espaço reservado é referido como um movimento de dados válidos.
[0003] A reciclagem de espaço de lixo causa amplificação de gravação, e uma razão de uma soma de um tamanho V dos dados válidos movidos na reciclagem de espaço de lixo no SSD e um tamanho W dos dados recém-gravados para o tamanho W dos dados recém-gravados, isto é, (V+W)/W, é referida como uma amplificação de gravação.
SUMÁRIO
[0004] De acordo com um primeiro aspecto, uma modalidade da presente invenção fornece uma solução para armazenar dados por um dispositivo de armazenamento, onde o dispositivo de armazenamento inclui uma primeira área de armazenamento e uma segunda área de armazenamento, onde a primeira área de armazenamento inclui espaço de dados e espaço reservado, e a segunda área de armazenamento inclui espaço de dados e espaço reservado, o dispositivo de armazenamento recebe uma solicitação de gravar, onde a solicitação de gravar porta um endereço lógico e dados, e o dispositivo de armazenamento determina um recurso da solicitação de gravar.
[0005] Quando o recurso da solicitação de gravar atende uma primeira condição, o dispositivo de armazenamento grava os dados portados na solicitação de gravar em um primeiro endereço de armazenamento do espaço reservado da primeira área de armazenamento, e estabelece uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento, ou quando o recurso da solicitação de gravar atende uma segunda condição, o dispositivo de armazenamento grava os dados portados na solicitação de gravar em um segundo endereço de armazenamento do espaço reservado da segunda área de armazenamento, e estabelece uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento. Nessa modalidade da presente invenção, os dados portados na solicitação de gravar são gravados no espaço reservado de diferentes áreas de armazenamento de acordo com o recurso da solicitação de gravar, o que reduz movimentos de dados válidos em um processo de reciclagem de espaço de lixo e reduz amplificação de gravação.
[0006] Opcionalmente, o dispositivo de armazenamento pode independentemente realizar reciclagem de lixo para a primeira área de armazenamento e a segunda área de armazenamento. O fato do dispositivo de armazenamento poder realizar reciclagem de espaço de lixo independentemente para a primeira área de armazenamento e a segunda área de armazenamento significa que o dispositivo de armazenamento realiza reciclagem de espaço de lixo para uma dentre a primeira área de armazenamento e a segunda área de armazenamento, e não afeta a outra área de armazenamento, ou pode realizar reciclagem de espaço de lixo tanto para a primeira área de armazenamento quanto para a segunda área de armazenamento. Para solicitações de gravar tendo diferentes recursos, dados são gravados em diferentes áreas de armazenamento, e reciclagem de espaço de lixo é realizada independentemente para as áreas de armazenamento com base em espaço reservado diferente configurado nas diferentes áreas de armazenamento. Portanto, movimentos de dados válidos em um processo de reciclagem de espaço de lixo podem ser reduzidos, amplificação de gravação pode ser reduzida, e uma quantidade de vezes de disparo do processo de reciclagem de espaço de lixo também pode ser reduzida configurando-se espaço reservado diferente, de modo que uma quantidade de vezes de se apagar um bloco físico no dispositivo de armazenamento é reduzida, e uma vida útil do dispositivo de armazenamento é aumentada.
[0007] Opcionalmente, um tamanho do espaço reservado da primeira área de armazenamento é diferente de um tamanho do espaço reservado da segunda área de armazenamento.
[0008] Opcionalmente, o espaço reservado da primeira área de armazenamento é menor que o espaço reservado da segunda área de armazenamento, ou uma razão do espaço reservado da primeira área de armazenamento para o espaço de dados da primeira área de armazenamento é menor que uma razão do espaço reservado da segunda área de armazenamento para o espaço de dados da segunda área de armazenamento. Uma vez que a segunda área de armazenamento tem mais espaço reservado, uma quantidade de vezes de reciclagem de espaço de lixo na segunda área de armazenamento pode ser reduzida.
[0009] Opcionalmente, quando dados são gravados em uma área correspondente de armazenamento, por exemplo, as supracitadas primeira ou segunda área de armazenamento, se o espaço reservado da área correspondente de armazenamento é insuficiente, pode ser realizado ajuste dinâmico. Por exemplo, sob a pré-condição de que uma quota redundante máxima não seja esgotada, pode ser requerido espaço extra reservado, e então os dados na solicitação de gravar são gravados no espaço reservado que foi recém-requerido.
[0010] Opcionalmente, a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar inclui: determinar, pelo dispositivo de armazenamento, se a solicitação de gravar é ou não uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória, onde a primeira condição é a solicitação de gravar em sequência, e a segunda condição é a solicitação de gravar aleatória, e armazenar respectivamente a solicitação de gravar em sequência e a solicitação de gravar aleatória em diferentes áreas de armazenamento, o que reduz os movimentos de dados válidos em um processo de reciclagem de espaço de lixo e reduz amplificação de gravação. Além disso, em um caso em que tanto a solicitação de gravar em sequência quanto a solicitação de gravar aleatória existem, desempenho de gravação aleatória do dispositivo de armazenamento é aperfeiçoado sem afetar o desempenho da solicitação de gravar em sequência. Opcionalmente, é determinado se dados são gravados ou não em um endereço lógico de referência, onde um valor absoluto de uma diferença de endereço entre o endereço lógico de referência e o endereço lógico não é maior que L, e L pode ser definido de acordo com uma exigência para a solicitação de gravar em sequência. Em uma implantação, quando dados são gravados no endereço lógico de referência, a solicitação de gravar é uma solicitação de gravar em sequência; de outra maneira, a solicitação de gravar é uma solicitação de gravar aleatória. Em outra implantação, quando não são gravados dados no endereço lógico de referência, a solicitação de gravar é uma solicitação de gravar aleatória. Quando dados são gravados no endereço lógico de referência, além disso, o dispositivo de armazenamento determina se ou não um intervalo entre um tempo no qual a solicitação de gravar portando um endereço de referência é recebida pela última vez e um tempo no qual a solicitação de gravar portando o endereço lógico é recebida pela última vez é maior que um limiar T e, se for, a solicitação de gravar é ainda uma solicitação de gravar aleatória; de outra maneira, a solicitação de gravar é uma solicitação de gravar em sequência. T pode ser definido de acordo com uma implantação específica.
[0011] Opcionalmente, a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar inclui: determinar, pelo dispositivo de armazenamento, um nível de sequência da solicitação de gravar, onde a primeira condição é uma primeira faixa de nível de sequência, a segunda condição é uma segunda faixa de nível de sequência, e um valor mínimo da primeira faixa de nível de sequência é maior que um valor máximo da segunda faixa de nível de sequência. Opcionalmente, o nível de sequência é uma razão S (um nível de sequência) de uma contagem Cs de solicitação de gravar em sequência de um endereço lógico corrente para (uma soma da contagem Cs de solicitação de gravar em sequência do endereço lógico corrente e uma contagem Cr de solicitação de gravar aleatória do endereço lógico corrente), isto é, Cs/(Cs+Cr)=S. De acordo com o nível de sequência, dados portados em solicitações de gravar tendo diferentes níveis de sequência podem ser respectivamente armazenados em diferentes áreas de armazenamento tendo espaço reservado diferente, o que reduz movimentos de dados válidos em um processo de reciclagem de espaço de lixo e reduz amplificação de gravação.
[0012] Opcionalmente, a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar inclui: determinar, pelo dispositivo de armazenamento, um nível de aleatoriedade da solicitação de gravar, onde a primeira condição é uma primeira faixa de nível de aleatoriedade, a segunda condição é uma segunda faixa de nível de aleatoriedade, e um valor máximo da primeira faixa de nível de aleatoriedade é menor que um valor mínimo da segunda faixa de nível de aleatoriedade. Opcionalmente, o nível de aleatoriedade é uma razão R de uma contagem Cr de solicitação de gravar aleatória de um endereço lógico corrente para (uma soma de uma contagem Cs de solicitação de gravar em sequência do endereço lógico corrente e a contagem Cr de solicitação de gravar aleatória do endereço lógico corrente), isto é, Cr/(Cr+Cs)=R. De acordo com o nível de aleatoriedade, dados portados em solicitações de gravar tendo diferentes níveis de aleatoriedade podem ser separadamente armazenados, o que reduz movimentos de dados válidos em um processo de reciclagem de espaço de lixo e reduz a amplificação de gravação.
[0013] Opcionalmente, a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar inclui: determinar, pelo dispositivo de armazenamento, um tamanho dos dados portados na solicitação de gravar, onde a primeira condição é uma primeira faixa de dados armazenada na primeira área de armazenamento, a segunda condição é uma segunda faixa de dados armazenada na segunda área de armazenamento, e um valor mínimo da primeira faixa de dados é maior que um valor máximo da segunda faixa de dados. O dispositivo de armazenamento inclui diferentes áreas de armazenamento, cada área de armazenamento armazena uma faixa de armazenamento de dados correspondente, o que pode reduzir movimentos de dados válidos em um processo de reciclagem de lixo e reduzir amplificação de gravação. Opcionalmente, uma faixa de dados se refere a um intervalo de um tamanho de dados portados em uma solicitação de gravar armazenada em uma área de armazenamento.
[0014] Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, o dispositivo de armazenamento preferencialmente processa uma solicitação de gravar que atende a primeira condição, para aperfeiçoar o desempenho de gravação do dispositivo de armazenamento.
[0015] Opcionalmente, o dispositivo de armazenamento é um SSD, ou um disco de gravação magnética em setores sobrepostos (Gravação Magnética em Setores Sobrepostos, SMR), ou um arranjo de armazenamento tendo uma função de reciclagem de espaço de lixo e com base em um mecanismo ROW.
[0016] Correspondendo à solução implantada no primeiro aspecto, de acordo com um segundo aspecto, uma modalidade da presente invenção fornece adicionalmente uma solução para dividir uma área de armazenamento por um dispositivo de armazenamento. O dispositivo de armazenamento divide espaço de armazenamento em uma primeira área de armazenamento e em uma segunda área de armazenamento, onde a primeira área de armazenamento inclui espaço de dados e espaço reservado, e a segunda área de armazenamento inclui espaço de dados e espaço reservado, onde o espaço reservado da primeira área de armazenamento é configurado para armazenar dados portados em uma primeira solicitação de gravar, o espaço reservado da segunda área de armazenamento é configurado para armazenar dados portados em uma segunda solicitação de gravar, um recurso da primeira solicitação de gravar atende uma primeira condição, e um recurso da segunda solicitação de gravar atende uma segunda condição.
[0017] Opcionalmente, uma quantidade de áreas de armazenamento correspondente pode ser dividida de acordo com um número de classe de um nível de sequência ou de um nível de aleatoriedade de uma solicitação de gravar, e espaço reservado correspondente é configurado de acordo com um valor de cada classe do nível de sequência ou do nível de aleatoriedade. A divisão das áreas de armazenamento e a configuração do espaço reservado correspondente podem ser realizadas antecipadamente, ou divisão e configuração dinâmicas podem ser realizadas durante o uso.
[0018] De acordo com um terceiro aspecto, correspondente ao primeiro aspecto e ao segundo aspecto, uma modalidade da presente invenção fornece adicionalmente um dispositivo de armazenamento, usado separadamente como o dispositivo de armazenamento nas modalidades do primeiro aspecto e do segundo aspecto, para implantar as soluções das modalidades fornecidas no primeiro aspecto e no segundo aspecto das modalidades da presente invenção. O dispositivo de armazenamento inclui uma unidade estrutural que implanta as soluções das modalidades da presente invenção no primeiro aspecto e no segundo aspecto, ou o dispositivo de armazenamento inclui um controlador de armazenamento para implantar as soluções das modalidades no primeiro aspecto e no segundo aspecto.
[0019] De modo correspondente, uma modalidade da presente invenção fornece adicionalmente um meio de armazenamento legível por computador não volátil e um produto de programa de computador. Quando uma instrução de computador incluída no meio de armazenamento legível por computador não volátil e no produto de programa de computador é carregada em uma memória do controlador de armazenamento do dispositivo de armazenamento fornecido nas modalidades da presente invenção, e uma CPU do controlador de armazenamento executa a instrução de computador, o dispositivo de armazenamento realiza funções do dispositivo de armazenamento nas modalidades do primeiro aspecto e do segundo aspecto, para implantar as soluções fornecidas no primeiro aspecto e no segundo aspecto das modalidades da presente invenção.
BREVE DESCRIÇÃO DOS DESENHOS
[0020] A Figura 1 é um diagrama estrutural esquemático de um SSD;
[0021] A Figura 2 é um fluxograma de acordo com uma modalidade da presente invenção;
[0022] A Figura 3 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0023] A Figura 4 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0024] A Figura 5 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0025] A Figura 6 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0026] A Figura 7 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0027] A Figura 8 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0028] A Figura 9 é um diagrama esquemático de uma área de armazenamento de acordo com uma modalidade da presente invenção;
[0029] A Figura 10 é um diagrama esquemático de um dispositivo de armazenamento de acordo com uma modalidade da presente invenção; e
[0030] A Figura 11 é um diagrama esquemático de um dispositivo de armazenamento de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DE MODALIDADES
[0031] Um SSD é usado como um exemplo em uma modalidade da presente invenção. Nessa modalidade da presente invenção, o SSD inclui uma primeira área de armazenamento Vd1 e uma segunda área de armazenamento Vd2. Vd1 inclui espaço de dados e espaço reservado, Vd2 inclui espaço de dados e espaço reservado, e um tamanho do espaço reservado de Vd1 é diferente de um tamanho do espaço reservado de Vd2. Nessa modalidade da presente invenção, o SSD pode realizar reciclagem de espaço de lixo independentemente para Vd1 e para Vd2. O fato de que o SSD pode realizar reciclagem de espaço de lixo independentemente para Vd1 e para Vd2 significa que o SSD realiza reciclagem de espaço de lixo para um dentre Vd1 e Vd2, e não afeta a outra área de armazenamento, ou pode realizar reciclagem de espaço de lixo tanto para Vd1 quanto para Vd2. Para solicitações de gravar tendo diferentes recursos, dados são gravados em diferentes áreas de armazenamento, e a reciclagem de espaço de lixo é realizada independentemente para as áreas de armazenamento com base em um espaço reservado diferente configurado nas diferentes áreas de armazenamento. Portanto, movimentos de dados válidos em um processo de reciclagem de espaço de lixo podem ser reduzidos, a amplificação de gravação pode ser reduzida, e uma quantidade de vezes de disparo do processo de reciclagem de espaço de lixo também pode ser reduzida configurando-se espaço reservado diferente, de modo que uma quantidade de vezes de se apagar um bloco físico no SSD seja reduzida, e uma vida útil do SSD seja aumentada.
[0032] As supracitadas características do SSD nessa modalidade da presente invenção podem ser adicionalmente aplicadas a outro dispositivo de armazenamento nas modalidades da presente invenção, e detalhes não são descritos novamente no presente documento.
[0033] Conforme mostrado na Figura 2, uma modalidade da presente invenção inclui:
[0034] Etapa 201: Receber uma solicitação de gravar.
[0035] Um SSD recebe uma solicitação de gravar, onde a solicitação de gravar porta um LBA e dados.
[0036] Etapa 202: Determinar um recurso da solicitação de gravar.
[0037] Uma maneira de se implantar a determinação de um recurso da solicitação de gravar inclui:
[0038] Especificamente, quando recebe a solicitação de gravar, o SSD determina se a solicitação de gravar é ou não uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória. Nessa modalidade da presente invenção, o SSD registra um tempo no qual cada solicitação de gravar é recebida e um endereço LBA portado na solicitação de gravar. Em uma maneira de implantação específica, um método para determinar se a solicitação de gravar é ou não uma solicitação de gravar em sequência (uma primeira condição mostrada na Figura 2) ou uma solicitação de gravar aleatória (uma segunda condição mostrada na Figura 2) é conforme a seguir:
[0039] O SSD registra o LBA portado na solicitação de gravar recebida, e um tempo no qual a solicitação de gravar é recebida pela última vez. De acordo com um LBA m portado na solicitação de gravar, o SSD consulta se dados são gravados ou não em um LBA n (referido como um endereço lógico de referência), onde um valor absoluto de uma diferença entre o LBA m e o LBA n não é maior que L, e L pode ser definido de acordo com uma exigência para a solicitação de gravar em sequência. Se não há dados gravados no LBA n, a solicitação de gravar portando o LBA m é uma solicitação de gravar aleatória. Em uma maneira de implantação, se dados são gravados no LBA n, a solicitação de gravar portando o LBA m é uma solicitação de gravar em sequência. Em outra maneira de implantação, quando dados são gravados no LBA n, o SSD adicionalmente determina se um intervalo entre um tempo no qual a solicitação de gravar portando o LBA n é recebida pela última vez e um tempo no qual a solicitação de gravar portando o LBA m é recebida pela última vez é ou não maior que um limiar T. Se o intervalo é maior que T, a solicitação de gravar portando o LBA m é uma solicitação de gravar aleatória. Se o intervalo não é maior que T, a solicitação de gravar portando o LBA m é uma solicitação de gravar em sequência. T pode ser definido de acordo com uma implantação específica, não havendo uma limitação nessa modalidade da presente invenção. A solicitação de gravar em sequência é em geral uma solicitação de gravar a partir de um mesmo arquivo ou aplicativo, e a solicitação de gravar aleatória é uma solicitação de gravar a partir de um arquivo ou aplicativo diferente.
[0040] Nessa modalidade da presente invenção, o SSD inclui uma primeira área de armazenamento (Vd1) mostrada na Figura 2 e uma segunda área de armazenamento (Vd2) mostrada na Figura 2, onde Vd1 e Vd2 incluem, cada um, um ou mais blocos físicos. Conforme mostrado na Figura 3, nessa modalidade da presente invenção, Vd1 inclui Y blocos físicos, onde cada bloco físico inclui (n+1) páginas, Vd1 é configurada para armazenar dados portados em uma solicitação de gravar em sequência, um primeiro bloco físico até um (Y-2)-ésimo bloco físico formam espaço de dados de Vd1, e um (Y-l)-ésimo bloco físico e um Y-ésimo bloco físico formam espaço reservado.
[0041] Conforme mostrado na Figura 4, um SSD recebe uma primeira solicitação de gravar em sequência, onde um endereço lógico portado na primeira solicitação de gravar em sequência é um LBA 1. O LBA 1 já está mapeado em (n+1) páginas do primeiro bloco físico em Vd1, isto é, o LBA 1 é mapeado em uma página 0 até uma página n do primeiro bloco físico em Vd1. Com base em um mecanismo ROW do SSD, o SSD grava dados portados na primeira solicitação de gravar em sequência ao (Y-l)-ésimo bloco físico do espaço reservado em Vd1, estabelece um mapeamento entre o LBA 1 e (n+1) páginas do (Y-l)-ésimo bloco físico em Vd1, isto é, estabelece um mapeamento entre o LBA 1 e uma página 0 até uma página n do (Y-l)-ésimo bloco físico em Vd1, e identifica dados na página 0 até a página n do primeiro bloco físico em Vd1 como dados sem significado (e remove o mapeamento entre o LBA 1 e as (n+1) páginas do primeiro bloco físico em Vd1). O SSD recebe uma segunda solicitação de gravar em sequência, onde um endereço lógico portado na segunda solicitação de gravar em sequência é um LBA 2. O LBA 2 já está mapeado em (n+1) páginas do segundo bloco físico em Vd1, isto é, o LBA 2 é mapeado em uma página 0 até uma página n do segundo bloco físico em Vd1. Com base no mecanismo ROW do SSD, o SSD grava dados portados na segunda solicitação de gravar em sequência no Y-ésimo bloco físico do espaço reservado em Vd1, estabelece um mapeamento entre o LBA 2 e (n+1) páginas do Y-ésimo bloco físico em Vd1, isto é, estabelece um mapeamento entre o LBA 2 e uma página 0 até uma página n do Y-ésimo bloco físico em Vd1, e identifica dados na página 0 para a página n do segundo bloco físico em Vd1 como dados sem significado (e remove o mapeamento entre o LBA 2 e as (n+1) páginas do segundo bloco físico em Vd1).
[0042] Pelo fato do espaço reservado em Vd1 mostrado na Figura 4 mudar para 0, a reciclagem de espaço de lixo precisa ser iniciada. A reciclagem de espaço de lixo é realizada para um bloco físico incluindo a maior parte dos dados sem significado em Vd1. Nessa modalidade da presente invenção, o primeiro bloco físico e o segundo bloco físico que são mostrados na Figura 4 incluem a maior parte dos dados sem significado. Portanto, a reciclagem de espaço de lixo para o primeiro bloco físico e para o segundo bloco físico é iniciada. Conforme mostrado na Figura 5, em um processo de reciclagem de espaço de lixo, uma vez que dados armazenados em páginas do primeiro bloco físico e do segundo bloco físico em Vd1 são todos dados sem significado, e não há dados válidos, um movimento de dados válidos não precisa ser realizado, isto é, não há amplificação de gravação. Portanto, uma solicitação de gravar em sequência é armazenada em Vd1, e no processo de reciclagem de espaço de lixo, movimentos de dados válidos e amplificação de gravação são reduzidos em Vd1. Além disso, uma vez que não há dados válidos ou poucos dados válidos no processo de reciclagem de espaço de lixo, uma pequena quantidade de espaço reservado pode ser alocada para Vd1.
[0043] Conforme mostrado na Figura 6, nessa modalidade da presente invenção, Vd2 inclui X blocos físicos, onde cada bloco físico inclui (n+1) páginas, Vd2 é configurada para armazenar dados portados em uma solicitação de gravar aleatória, um primeiro bloco físico até um (X-3)-ésimo bloco físico formam espaço de dados de Vd2, e um (X-2)-ésimo bloco físico até um X-ésimo bloco físico formam espaço reservado.
[0044] Conforme mostrado na Figura 7, um SSD recebe uma primeira solicitação de gravar aleatória, onde um endereço lógico portado na primeira solicitação de gravar aleatória é um LBA 1'. O LBA 1' já está mapeado nas primeiras m páginas do primeiro bloco físico em Vd2, isto é, o LBA 1' é mapeado em uma página 0 até uma página m-1 do primeiro bloco físico em Vd2. Com base em um mecanismo ROW do SSD, o SSD grava dados portados na primeira solicitação de gravar aleatória para o (X-2)-ésimo bloco físico do espaço reservado em Vd2, estabelece um mapeamento entre o LBA 1' e as primeiras m páginas do (X-2)-ésimo bloco físico em Vd2, isto é, estabelece um mapeamento entre o LBA 1' e uma página 0 até uma página m- 1 do (X-2)-ésimo bloco físico em Vd2, e identifica dados na página 0 até a página m-1 do primeiro bloco físico em Vd2 como dados sem significado (e remove o mapeamento entre o LBA 1' e as primeiras m páginas do primeiro bloco físico em Vd2). O SSD recebe uma segunda solicitação de gravar aleatória, onde um endereço lógico portado na segunda solicitação de gravar aleatória é um LBA 3'. O LBA 3' já está mapeado nas primeiras (n+1-m) páginas do segundo bloco físico em Vd2, isto é, o LBA 3' é mapeado em uma página 0 até uma página n-m do segundo bloco físico em Vd2. Com base no mecanismo ROW do SSD, o SSD grava dados portados na segunda solicitação de gravar aleatória para o (X-2)-ésimo bloco físico do espaço reservado em Vd2, estabelece um mapeamento entre o LBA 3' e as primeiras (n+1-m) páginas do (X-2)-ésimo bloco físico em Vd2, isto é, estabelece um mapeamento entre o LBA 3' e uma página m para uma página n do (X-2)- ésimo bloco físico em Vd2, e identifica dados na página 0 até a página n-m do segundo bloco físico em Vd2 como dados sem significado (e remove o mapeamento entre o LBA 3' e as primeiras (n+1-m) páginas do segundo bloco físico em Vd2).
[0045] Conforme mostrado na Figura 8, quando o espaço reservado em Vd2 é menor que um limiar e a reciclagem de espaço de lixo é iniciada, é determinado que os blocos físicos para os quais a reciclagem precisa ser realizada são o primeiro bloco físico e o segundo bloco físico em Vd2. Dados válidos são armazenados em uma página m para uma página n do primeiro bloco físico, e um movimento de dados válidos precisa ser realizado. Nessa modalidade da presente invenção, os dados válidos armazenados na página m para a página n do primeiro bloco físico são movidos para uma página 0 até uma página n-m do (X-1)-ésimo bloco físico em Vd2, e um mapeamento entre um LBA 4' e a página 0 em uma página m-1 do (X-1)- ésimo bloco físico em Vd2 é estabelecido. Além disso, dados válidos armazenados em uma página m para uma página n do segundo bloco físico em Vd2 são movidos para uma página m até uma página n do (X-1)-ésimo bloco físico em Vd2, e um mapeamento entre um LBA 2' e a página m para a página n do (X-1)-ésimo bloco físico em Vd2 é estabelecido. O SSD apaga dados no primeiro bloco físico e no segundo bloco físico em Vd2, e o primeiro bloco físico e o segundo bloco físico são usados como espaço reservado.
[0046] Nessa modalidade da presente invenção, Vd1 é configurada para armazenar dados portados em uma solicitação de gravar em sequência, Vd2 é configurada para armazenar dados portados em uma solicitação de gravar aleatória, e os dados portados na solicitação de gravar em sequência e os dados portados na solicitação de gravar aleatória são respectivamente armazenados em diferentes áreas de armazenamento de acordo com um recurso de uma solicitação de gravar, o que reduz movimentos de dados válidos em um processo de reciclagem de espaço de lixo e reduz amplificação de gravação.
[0047] Nessa modalidade da presente invenção, mais espaço reservado é alocado para Vd2, isto é, o espaço reservado de Vd2 é maior que o espaço reservado de Vd1, o que pode reduzir uma quantidade de vezes de reciclagem de espaço de lixo, de modo que uma quantidade de vezes de se apagar um bloco físico em Vd2 seja reduzida, e uma vida útil de um SSD seja aumentada. Em outra implantação, uma razão do espaço reservado de Vd2 para o espaço de dados de Vd2 é maior que uma razão do espaço reservado de Vd1 para o espaço de dados de Vd1, o que também pode alcançar um efeito de reduzir uma quantidade de vezes de reciclagem de espaço de lixo nessa modalidade da presente invenção.
[0048] Nessa modalidade da presente invenção, o SSD inclui Vd1 e Vd2, onde Vd1 é configurada para armazenar dados portados em uma solicitação de gravar em sequência, e Vd2 é configurada para armazenar dados portados em uma solicitação de gravar aleatória. Em um caso em que tanto a solicitação de gravar aleatória quanto a solicitação de gravar em sequência existem, o desempenho da solicitação de gravar em sequência não é afetado, e o desempenho de gravação aleatória do SSD é aperfeiçoado.
[0049] Opcionalmente, quando dados são gravados em uma área correspondente de armazenamento, por exemplo, as supracitadas primeira ou segunda área de armazenamento, se o espaço reservado da área correspondente de armazenamento é insuficiente, pode ser realizado ajuste dinâmico. Por exemplo, sob a pré-condição de que uma quota redundante máxima não seja esgotada, pode ser requerido espaço extra reservado, e então os dados na solicitação de gravar são gravados no espaço reservado que foi recém-requerido.
[0050] Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, quando solicitações de gravar recebidas pelo SSD incluem tanto uma solicitação de gravar em sequência quanto uma solicitação de gravar aleatória, dados portados na solicitação de gravar em sequência podem ser preferencialmente gravados na primeira área de armazenamento, para aperfeiçoar o desempenho de gravação.
[0051] Uma modalidade da presente invenção fornece outra solução de implantação da etapa 2 de determinar um recurso da solicitação de gravar: coletar, pelo SSD, estatísticas sobre uma contagem de solicitação de gravar em sequência e uma contagem de solicitação de gravar aleatória em um LBA portado na solicitação de gravar. Nessa modalidade da presente invenção, a contagem de solicitação de gravar em sequência no LBA portado na solicitação de gravar é também referida como uma contagem de solicitação de gravar em sequência da solicitação de gravar, e a contagem de solicitação de gravar aleatória no LBA portado na solicitação de gravar é também referida como uma contagem de solicitação de gravar aleatória da solicitação de gravar.
[0052] Por exemplo, quando o SSD determina que uma solicitação de gravar portando um LBA m é uma solicitação de gravar em sequência, uma contagem Cs de solicitação de gravar em sequência do LBA m é aumentada em 1, ou quando o SSD determina que uma solicitação de gravar portando um LBA m seja uma solicitação de gravar aleatória, uma contagem Cr de solicitação de gravar aleatória do LBA m é aumentada em 1. Um valor S (um nível de sequência) de uma contagem Cs de solicitação de gravar em sequência corrente do LBA m dividida por (uma soma da contagem corrente Cs de solicitação de gravar em sequência do LBA m e uma contagem Cr de solicitação de gravar aleatória corrente do LBA m) é calculado. Se S atende a primeira condição (uma primeira faixa de nível de sequência) mostrada na Figura 2, dados portados na solicitação de gravar são gravados em Vd1, ou quando S atende a segunda condição (uma segunda faixa de nível de sequência) mostrada na Figura 2, dados portados na solicitação de gravar são gravados em Vd2. Por exemplo, a primeira faixa de nível de sequência é maior que 0,8 e não é maior que 1, e a segunda faixa de nível de sequência não é maior que 0,8. Um nível de sequência de uma solicitação de gravar correspondente a dados armazenados em Vd1 é maior que um nível de sequência de uma solicitação de gravar correspondente a dados armazenados em Vd2, e um bloco físico em Vd1 gera menos movimentos de dados válidos que um bloco físico em Vd2 em um processo de reciclagem de espaço de lixo, desse modo reduzindo a amplificação de gravação.
[0053] O nível de sequência da solicitação de gravar correspondente aos dados armazenados em Vd1 é maior que o nível de sequência da solicitação de gravar correspondente aos dados armazenados em Vd2, e o espaço reservado alocado pelo SSD para Vd1 é menor que o espaço reservado de Vd2, ou uma razão do espaço reservado de Vd1 para o espaço de dados de Vd1 é menor que uma razão do espaço reservado de Vd2 para o espaço de dados de Vd2. Nessa maneira de implantação, uma quantidade de vezes de reciclagem de espaço de lixo em Vd2 é reduzida, desse modo reduzindo uma quantidade de vezes de se apagar um bloco físico em Vd2, e aumentando uma vida útil do SSD. Adicionalmente, solicitações de gravar são respectivamente gravadas em diferentes áreas de acordo com diferentes níveis de sequência; portanto, uma solicitação de gravar tendo um nível de sequência mais alto não é afetado, e o desempenho de gravação aleatória do SSD é aperfeiçoado.
[0054] Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, quando solicitações de gravar recebidas por um SSD têm diferentes níveis de sequência, uma solicitação de gravar tendo um nível de sequência mais alto pode ser processada preferencialmente, ou quando solicitações de gravar recebidas por um SSD têm diferentes níveis de aleatoriedade, uma solicitação de gravar tendo um nível de aleatoriedade mais baixo pode ser processada preferencialmente, para aperfeiçoar o desempenho de gravação.
[0055] Outra maneira de implantação também pode ser com base em um nível de aleatoriedade R. Quando o SSD determina que uma solicitação de gravar portando um LBA m é uma solicitação de gravar em sequência, uma contagem Cs de solicitação de gravar em sequência do LBA m é aumentada em 1, ou quando o SSD determina que uma solicitação de gravar portando um LBA m é uma solicitação de gravar aleatória, uma contagem Cr de solicitação de gravar aleatória do LBA m é aumentada em 1. Um valor R (um nível de aleatoriedade) de uma contagem Cr de solicitação de gravar aleatória corrente do LBA m dividido por (uma soma de uma contagem Cs de solicitação de gravar em sequência corrente do LBA m e da contagem Cr de solicitação de gravar aleatória corrente do LBA m) é calculado. Se R atende a primeira condição (uma primeira faixa de nível de aleatoriedade) mostrada na Figura 2, dados portados na solicitação de gravar são gravados em Vd1, ou quando R atende a segunda condição (uma segunda faixa de nível de aleatoriedade) mostrada na Figura 2, dados portados na solicitação de gravar são gravados em Vd2. Por exemplo, a primeira faixa de nível de aleatoriedade não é maior que 0,2, e a segunda faixa de nível de aleatoriedade é maior que 0,2, mas não é maior que 1. Um nível de aleatoriedade de uma solicitação de gravar correspondente a dados armazenados em Vd1 é menor que um nível de aleatoriedade de uma solicitação de gravar correspondente a dados armazenados em Vd2, e um bloco físico em Vd1 gera menos movimentos de dados válidos que um bloco físico em Vd2 em um processo de reciclagem de espaço de lixo, desse modo reduzindo a amplificação de gravação.
[0056] O nível de aleatoriedade da solicitação de gravar correspondente aos dados armazenados em Vd1 é menor que o nível de aleatoriedade da solicitação de gravar correspondente aos dados armazenados em Vd2, e o espaço reservado alocado pelo SSD para Vd1 é menor que o espaço reservado de Vd2, ou uma razão do espaço reservado de Vd1 para o espaço de dados de Vd1 é menor que uma razão do espaço reservado de Vd2 para o espaço de dados de Vd2. Nessa maneira de implantação, uma quantidade de vezes de reciclagem de espaço de lixo em Vd2 é reduzida, desse modo reduzindo uma quantidade de vezes de se apagar um bloco físico em Vd2, e aumentando uma vida útil do SSD. Adicionalmente, solicitações de gravar são respectivamente gravadas em diferentes áreas de acordo com diferentes níveis de aleatoriedade; portanto, uma solicitação de gravar tendo um nível de aleatoriedade mais baixo não é afetada, e o desempenho de gravação aleatória do SSD é aperfeiçoado.
[0057] Opcionalmente, uma quantidade de áreas de armazenamento correspondente pode ser dividida de acordo com um número de classe de um nível de sequência ou de um nível de aleatoriedade de uma solicitação de gravar, e o espaço reservado correspondente é configurado de acordo com um valor de cada classe do nível de sequência ou do nível de aleatoriedade. A divisão das áreas de armazenamento e a configuração do espaço reservado correspondente pode ser realizada antecipadamente, ou a divisão e configuração dinâmicas podem ser realizadas durante o uso.
[0058] Uma modalidade da presente invenção fornece outra solução de implantação da etapa 2 de determinar um recurso da solicitação de gravar: determinar um tamanho de dados portados na solicitação de gravar, e determinar uma área de armazenamento de acordo com o tamanho dos dados portados na solicitação de gravar.
[0059] Conforme mostrado na Figura 9, um SSD inclui nove áreas de armazenamento, marcadas como Vd1, Vd2, ..., e Vd9. Nessa modalidade da presente invenção, em uma maneira de implantação, cada área de armazenamento inclui R blocos físicos, e cada bloco físico inclui (n+1) páginas. Em outra maneira de implantação, cada área de armazenamento pode incluir uma diferente quantidade de blocos físicos, não havendo uma limitação nessa modalidade da presente invenção. O SSD seleciona uma área de armazenamento de acordo com um tamanho de dados portados em uma solicitação de gravar. Vd1 é configurada para armazenar (0-4 KB] de dados, Vd2 é configurada para armazenar dados de (4 KB-8 KB], Vd3 é configurada para armazenar dados de (8 KB-16 KB], Vd4 é configurada para armazenar dados de (16 KB-32 KB], Vd5 é configurada para armazenar dados de (32 KB- 64 KB], Vd6 é configurada para armazenar dados de (64 KB-128 KB], Vd7 é configurada para armazenar dados de (128 KB-256 KB], Vd8 é configurada para armazenar dados de (256 KB-512 KB], e Vd9 é configurada para armazenar dados que sejam maiores que 512 KB. Os dados de (4 KB-8 KB] são também referidos como dados de uma faixa de dados. Uma faixa de dados se refere a um intervalo de um tamanho de dados portados em uma solicitação de gravar armazenada em uma área de armazenamento. Uma faixa de dados de Vd1 representa que um tamanho de dados portados em uma solicitação de gravar armazenada em Vd1 não é maior que 4KB. Quando recebe uma solicitação de gravar, o SSD determina, de acordo com uma faixa de dados armazenada em cada área de armazenamento, uma área de armazenamento que é usada para armazenar dados portados na solicitação de gravar. Por exemplo, a segunda área de armazenamento mostrada na Figura 2 é Vd1. Pelo fato dos dados na faixa de dados de Vd1 não serem maiores que 4 KB (a segunda condição mostrada na Figura 2), dados portados em múltiplas solicitações de gravar são armazenados em um mesmo bloco físico. Quando alguns dos dados são identificados como dados inválidos por causa de modificação, e reciclagem de espaço de lixo é realizada para um bloco físico, dados portados em outra solicitação de gravar armazenada no bloco físico são usados como dados válidos, e um movimento de dados válidos precisa ser realizado, deste modo causando amplificação de gravação. Por exemplo, Vd9 é a primeira área de armazenamento mostrada na Figura 2. Pelo fato dos dados em uma faixa de dados de Vd9 serem maiores que 512 KB (a primeira condição mostrada na Figura 2), dados portados em uma mesma solicitação de gravar ou uma pequena quantidade de solicitações de gravar são armazenados em um mesmo bloco físico. Portanto, quando o SSD recebe novamente uma solicitação de gravar para modificar dados no bloco físico, dados armazenados em páginas do bloco físico inteiro são identificados como dados sem significado. Quando a reciclagem de espaço de lixo é realizada para o bloco físico, uma vez que todos os ou a maioria dos dados no bloco físico inteiro são dados sem significado, nenhum movimento de dados válidos é gerado ou somente uma pequena quantidade de movimentos de dados válidos é gerada, o que não causa amplificação de gravação ou causa uma pequena amplificação de gravação. Portanto, o SSD é dividido em diferentes áreas de armazenamento, e cada área de armazenamento armazena uma faixa de armazenamento de dados correspondente, o que pode reduzir movimentos de dados válidos em um processo de reciclagem de espaço de lixo, e reduzir a amplificação de gravação. Opcionalmente, um tamanho de dados portados em uma solicitação de gravar determina uma área correspondente de armazenamento. Mais espaço reservado é alocado para uma área de armazenamento correspondente a uma faixa de dados que armazena um pequeno volume de dados que para uma área de armazenamento correspondente a uma faixa de dados que armazena grande volume de dados, ou uma razão de espaço reservado de uma área de armazenamento correspondente a uma faixa de dados que armazena pequeno volume de dados para o espaço de dados da área de armazenamento correspondente à faixa de dados que armazena pequeno volume de dados é maior que uma razão de espaço reservado de uma área de armazenamento correspondente a uma faixa de dados que armazena grande volume de dados para o espaço de dados da área de armazenamento correspondente à faixa de dados que armazena grande volume de dados, o que pode reduzir uma quantidade de vezes de reciclagem de espaço de lixo, reduzir uma quantidade de vezes de se apagar um bloco físico, e aumentar uma vida útil de um SSD.
[0060] Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, quando se recebe solicitações de gravar portando diferentes tamanhos de dados, um SSD pode preferencialmente processar uma solicitação de gravar portando um volume de tamanho de dados relativamente grande, para aperfeiçoar o desempenho de gravação.
[0061] Nessa modalidade da presente invenção, o espaço reservado alocado pelo SSD para Vd1 é menor que o espaço reservado de Vd2, ou uma razão do espaço reservado de Vd1 para o espaço de dados de Vd1 é menor que uma razão do espaço reservado de Vd2 para o espaço de dados de Vd2. Em uma implantação específica, pesos de diferentes quotas de espaço reservadas podem ser determinados de acordo com recursos de solicitações de gravar correspondentes em Vd1 e Vd2. O espaço reservado alocado para Vd1 é menor que o espaço reservado de Vd2, ou a razão do espaço reservado de Vd1 para o espaço de dados de Vd1 é menor que a razão do espaço reservado de Vd2 para o espaço de dados de Vd2, não havendo uma limitação nessa modalidade da presente invenção.
[0062] Nessa modalidade da presente invenção, após dados portados em uma solicitação de gravar serem gravados em uma página, uma relação de mapeamento entre um LBA e a página é estabelecida, e de acordo com a implantação específica do SSD, um mapeamento a partir do LBA para um bloco físico no qual a página na qual os dados são gravados está localizada pode ser estabelecido primeiramente. Para uma implantação específica, fazer referência a um mecanismo de mapeamento do SSD, não havendo uma limitação na presente invenção, e detalhes não são descritos novamente no presente documento.
[0063] A presente invenção pode ser adicionalmente aplicada a um disco de gravação magnética em setores sobrepostos (Gravação Magnética em Setores Sobrepostos, SMR). Em virtude de uma estrutura especial do disco SMR, quando dados são gravados em uma faixa A, os dados em L faixas após a faixa A são sobrescritos, e os dados em uma faixa antes da faixa A não são sobrescritos. Portanto, M (M>=L) faixas são em geral usadas para formar uma zona (zona) no disco SMR, dados em espaço físico na zona são gravados em sequência, e dados válidos na zona são primeiramente movidos antes da gravação. O disco SMR em geral usa um mecanismo ROW, divide espaço de armazenamento físico em uma zona de dados (uma zona na qual dados já estão armazenados) e uma zona reservada (uma zona livre), e registra um mapeamento a partir de um endereço lógico para o espaço de armazenamento físico. Quando dados estão sendo gravados, os dados são gravados em sequência no espaço da zona reservada, o endereço lógico é então mapeado em um endereço físico no qual os dados estão recém- gravados, e dados armazenados em um endereço físico no qual o endereço lógico é previamente mapeado são marcados como dados sem significado. Após uma quantidade de zonas reservadas ser menor que um limiar, a reciclagem de espaço de lixo é iniciada, uma zona tendo mais dados sem significado é encontrada, dados válidos na zona são movidos, e a zona se torna uma zona reservada na qual dados podem continuar a ser gravados. A zona no disco SMR tem uma característica similar àquela de um bloco físico em um SSD. Portanto, uma solução na qual os movimentos de dados válidos são reduzidos em dados sem significado no SSD nas modalidades da presente invenção também pode ser aplicada ao disco SMR. O disco SMR é dividido em diferentes áreas de armazenamento, onde cada área de armazenamento inclui múltiplas zonas (incluindo uma zona de dados e uma zona reservada), zonas reservadas tendo diferentes tamanhos são alocadas para as diferentes áreas de armazenamento, e um recurso de uma solicitação de gravar é determinado. Por exemplo, se a solicitação de gravar é ou não uma solicitação de gravar aleatória ou se uma solicitação de gravar em sequência é determinada, ou se um nível de sequência da solicitação de gravar é determinado, ou se um nível de aleatoriedade da solicitação de gravar é determinado, ou se um tamanho de dados portados na solicitação de gravar é determinado. Os dados portados na solicitação de gravar são armazenados em uma zona reservada de uma área de armazenamento específica, de modo que movimentos de dados válidos em um disco SMR durante a reciclagem de espaço de lixo sejam reduzidos, e a amplificação de gravação seja reduzida. Para uma implantação específica, referência pode ser feita a uma solução de implantação do SSD, e detalhes não são descritos novamente no presente documento nessa modalidade da presente invenção. Para uma maneira pela qual zonas reservadas podem ser alocadas para diferentes áreas de armazenamento em um disco SMR, fazer referência a uma maneira descrita acima na qual espaço reservado é alocado para diferentes áreas de armazenamento em um SSD.
[0064] Além disso, em um arranjo de armazenamento tendo uma função de reciclagem de espaço de lixo e com base em um mecanismo ROW, por exemplo, em um arranjo de armazenamento todo de SSD e um arranjo de armazenamento de acionador de disco rígido (HDD), um controlador de arranjo de armazenamento divide um endereço de bloco lógico de cada disco rígido em blocos de acordo com uma unidade (por exemplo, 1 MB). Um bloco é tirado de cada disco dentre N discos para formar um segmento (segmento) que atende uma condição (por exemplo, um segmento de um arranjo redundante de discos independentes (Arranjo Redundante de Discos Independentes, RAID), por exemplo, para formar um RAID 6 (incluindo 3 blocos de dados + 2 blocos de verificação). Uma maneira de gravar sequencial é usada no segmento para aperfeiçoar o desempenho de gravação. Os dados no segmento não podem ser sobrescritos, e dados válidos no segmento precisam ser primeiramente movidos antes da gravação. O controlador de arranjo de armazenamento divide o espaço de armazenamento em um segmento de dados (um segmento no qual dados já estão gravados) e um segmento reservado (um segmento livre), e registra um mapeamento a partir de um endereço lógico para o espaço de armazenamento físico. Quando dados estão sendo gravados, o controlador de arranjo de armazenamento em sequência grava os dados em um segmento reservado, então mapeia um endereço lógico para um endereço físico no qual os dados estão recém-gravados, e marca dados armazenados em um endereço físico no qual o endereço lógico é previamente mapeado como dados sem significado. Depois que uma quantidade de segmentos reservados é menor que um limiar, a reciclagem de espaço de lixo é iniciada, um segmento tendo mais dados sem significado é encontrado, um bloco de dados válidos no segmento é movido, e o segmento se torna um segmento reservado no qual dados podem continuar a ser gravados.
[0065] No supracitado arranjo de armazenamento, o segmento tem uma característica similar àquela de um bloco físico em um SSD. Portanto, uma solução na qual movimentos de dados válidos são reduzidos durante a reciclagem de dados de lixo no SSD nas modalidades da presente invenção também pode ser aplicada ao supracitado arranjo de armazenamento. O arranjo de armazenamento é dividido em diferentes áreas de armazenamento, onde cada área de armazenamento inclui múltiplos segmentos (incluindo um segmento de dados e um segmento reservado), e um recurso de uma solicitação de gravar é determinado. Por exemplo, é determinado se a solicitação de gravar é ou não uma solicitação de gravar aleatória ou uma solicitação de gravar em sequência, ou é determinado um nível de sequência da solicitação de gravar, ou é determinado um nível de aleatoriedade da solicitação de gravar, ou é determinado um tamanho de dados portados na solicitação de gravar. Os dados portados na solicitação de gravar são armazenados em um segmento reservado de uma área de armazenamento específica, de modo que movimentos de dados válidos em um arranjo de armazenamento durante reciclagem de espaço de lixo sejam reduzidos, e a amplificação de gravação seja reduzida. Para uma implantação específica, referência pode ser feita a uma solução de implantação do SSD, e detalhes não são descritos novamente no presente documento nessa modalidade da presente invenção. Para uma maneira na qual segmentos reservados podem ser alocados para diferentes áreas de armazenamento em um arranjo de armazenamento, fazer referência a uma maneira descrita acima na qual o espaço reservado é alocado para diferentes áreas de armazenamento em um SSD.
[0066] Essa modalidade da presente invenção pode ser adicionalmente aplicada a outro produto formado usando-se um meio de memória flash e um meio de armazenamento tendo uma característica similar.
[0067] Opcionalmente, em uma modalidade da presente invenção, usando um SSD como um exemplo, o SSD pode include mais que duas áreas de armazenamento. Adicionalmente, o SSD pode determinar um recurso de uma solicitação de gravar em múltiplas maneiras. Por exemplo, o SSD inclui uma primeira área de armazenamento e uma segunda área de armazenamento, e determina se ou não uma solicitação de gravar é uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória. Quando a solicitação de gravar é uma solicitação de gravar em sequência, o SSD grava dados portados na solicitação de gravar na primeira área de armazenamento, ou quando a solicitação de gravar é uma solicitação de gravar aleatória, o SSD grava dados portados na solicitação de gravar na segunda área de armazenamento. O SSD adicionalmente inclui uma terceira área de armazenamento e uma quarta área de armazenamento, determina um nível de sequência ou um nível de aleatoriedade de uma solicitação de gravar, e grava dados portados na solicitação de gravar na terceira área de armazenamento ou na quarta área de armazenamento de acordo com o nível de sequência ou o nível de aleatoriedade da solicitação de gravar. Opcionalmente, o SSD adicionalmente inclui uma quinta área de armazenamento e uma sexta área de armazenamento, determina um tamanho de dados portados em uma solicitação de gravar, e grava dados portados na solicitação de gravar na quinta área de armazenamento ou na sexta área de armazenamento de acordo com o tamanho dos dados portados na solicitação de gravar. Uma combinação de maneiras de implantação específicas não é limitada na presente invenção.
[0068] Uma modalidade da presente invenção fornece um dispositivo de armazenamento, conforme mostrado na Figura 10, incluindo: um controlador de armazenamento 1001, uma primeira área de armazenamento 1002, e uma segunda área de armazenamento 1003, onde a primeira área de armazenamento 1002 inclui espaço de dados e espaço reservado, e a segunda área de armazenamento 1003 inclui espaço de dados e espaço reservado. O controlador de armazenamento 1001 é configurado para realizar a modalidade da presente invenção mostrada na Figura 2. Especificamente, o controlador de armazenamento 1001 recebe uma solicitação de gravar, onde a solicitação de gravar porta um endereço lógico e dados, e determina um recurso da solicitação de gravar. Quando o recurso da solicitação de gravar atende uma primeira condição, o controlador de armazenamento 1001 grava os dados portados na solicitação de gravar em um primeiro endereço de armazenamento do espaço reservado da primeira área de armazenamento 1002, e estabelece uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento, ou quando o recurso da solicitação de gravar atende uma segunda condição, o controlador de armazenamento 1001 grava os dados portados na solicitação de gravar em um segundo endereço de armazenamento do espaço reservado da segunda área de armazenamento 1003, e estabelece uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento. Opcionalmente, o dispositivo de armazenamento mostrado na Figura 10 pode ser um SSD, e o controlador de armazenamento 1001 é um controlador do SSD. Opcionalmente, o dispositivo de armazenamento mostrado na Figura 10 pode adicionalmente ser um disco SMR, e o controlador de armazenamento 1001 é um controlador do disco SMR. Opcionalmente, o dispositivo de armazenamento mostrado na Figura 10 pode adicionalmente ser um arranjo de armazenamento descrito nas modalidades da presente invenção, e o controlador de armazenamento 1001 é um controlador de arranjo do arranjo de armazenamento. Para descrições específicas, fazer referência às descrições de partes correspondentes nas modalidades da presente invenção, e detalhes não são descritos novamente no presente documento. Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, o dispositivo de armazenamento preferencialmente processa uma solicitação de gravar que atende a primeira condição, para aperfeiçoar o desempenho de gravação do dispositivo de armazenamento. Opcionalmente, quando dados são gravados em uma área correspondente de armazenamento, por exemplo, as supracitadas primeira ou segunda área de armazenamento, se o espaço reservado da área correspondente de armazenamento é insuficiente, pode ser realizado ajuste dinâmico. Por exemplo, sob a pré-condição de que uma quota redundante máxima não seja esgotada, pode ser requerido espaço extra reservado, e então os dados na solicitação de gravar são gravados no espaço reservado que foi recém-requerido.
[0069] O dispositivo de armazenamento nessa modalidade da presente invenção pode adicionalmente ser outro produto formado usando-se um meio de memória flash e um meio de armazenamento tendo uma característica similar.
[0070] Uma modalidade da presente invenção fornece outro dispositivo de armazenamento, conforme mostrado na Figura 11, incluindo um controlador de armazenamento, uma primeira área de armazenamento 1105, e uma segunda área de armazenamento 1106, onde o controlador de armazenamento inclui uma unidade de recebimento 1101, uma unidade de determinação 1102, uma unidade de gravação 1103, e uma unidade de mapeamento 1104. A unidade de recebimento 1101 é configurada para receber uma solicitação de gravar, onde a solicitação de gravar porta um endereço lógico e dados. A unidade de determinação 1102 é configurada para determinar um recurso da solicitação de gravar. A unidade de gravação 1103 é configurada para gravar, quando o recurso da solicitação de gravar atende uma primeira condição, os dados portados na solicitação de gravar em um primeiro endereço de armazenamento de espaço reservado da primeira área de armazenamento 1105. A unidade de mapeamento 1104 é configurada para estabelecer uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento. A unidade de gravação 1103 é adicionalmente configurada para gravar, quando o recurso da solicitação de gravar atende uma segunda condição, os dados portados na solicitação de gravar em um segundo endereço de armazenamento de espaço reservado da segunda área de armazenamento 1106. A unidade de mapeamento 1104 é adicionalmente configurada para estabelecer uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento. Opcionalmente, no dispositivo de armazenamento mostrado na Figura 11, o controlador de armazenamento pode realizar reciclagem de espaço de lixo independentemente para a primeira área de armazenamento 1105 e para a segunda área de armazenamento 1106. Opcionalmente, um tamanho do espaço reservado da primeira área de armazenamento 1105 é diferente de um tamanho do espaço reservado da segunda área de armazenamento 1106. Opcionalmente, o espaço reservado da primeira área de armazenamento 1105 é menor que o espaço reservado da segunda área de armazenamento 1106, e o tamanho do espaço reservado da primeira área de armazenamento 1105 é menor que o tamanho do espaço reservado da segunda área de armazenamento 1106. Opcionalmente, uma razão do espaço reservado da primeira área de armazenamento 1105 para o espaço de dados da primeira área de armazenamento 1105 é menor que uma razão do espaço reservado da segunda área de armazenamento 1106 para o espaço de dados da segunda área de armazenamento 1106. Opcionalmente, a unidade de determinação 1102 é especificamente configurada para determinar se a solicitação de gravar é ou não uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória, onde a primeira condição é a solicitação de gravar em sequência, e a segunda condição é a solicitação de gravar aleatória. Opcionalmente, uma unidade de determinação 1102 é especificamente configurada para determinar um nível de sequência da solicitação de gravar, onde a primeira condição é uma primeira faixa de nível de sequência, a segunda condição é uma segunda faixa de nível de sequência, e um valor mínimo da primeira faixa de nível de sequência é maior que um valor máximo da segunda faixa de nível de sequência. Para um significado de um nível de sequência, fazer referência à descrição na modalidade mostrada na Figura 2. Opcionalmente, uma unidade de determinação 1102 é especificamente configurada para determinar um nível de aleatoriedade da solicitação de gravar, onde a primeira condição é uma primeira faixa de nível de aleatoriedade, a segunda condição é uma segunda faixa de nível de aleatoriedade, e um valor máximo da primeira faixa de nível de aleatoriedade é menor que um valor mínimo da segunda faixa de nível de aleatoriedade. Para um significado de um nível de aleatoriedade, fazer referência à descrição na modalidade mostrada na Figura 2. Opcionalmente, a unidade de determinação 1102 é especificamente configurada para determinar um tamanho dos dados portados na solicitação de gravar, onde a primeira condição é uma primeira faixa de dados armazenada na primeira área de armazenamento 1105, a segunda condição é uma segunda faixa de dados armazenada na segunda área de armazenamento 1106, e um valor mínimo da primeira faixa de dados é maior que um valor máximo da segunda faixa de dados. Para um significado de uma faixa de dados, fazer referência à descrição na modalidade mostrada na Figura 2. Opcionalmente, em um caso em que múltiplas solicitações de gravar são enviadas simultaneamente, o dispositivo de armazenamento preferencialmente processa uma solicitação de gravar que atende a primeira condição, para aperfeiçoar o desempenho de gravação do dispositivo de armazenamento. Opcionalmente, quando dados são gravados em uma área correspondente de armazenamento, por exemplo, as supracitadas primeira ou segunda área de armazenamento, se o espaço reservado da área correspondente de armazenamento é insuficiente, pode ser realizado ajuste dinâmico. Por exemplo, sob a pré-condição que uma quota redundante máxima não seja esgotada, pode ser requerido espaço extra reservado, e então os dados na solicitação de gravar são gravados no espaço reservado que foi recém-requerido.
[0071] O dispositivo de armazenamento mostrado na Figura 11 pode ser um SSD, um disco SMR, ou o arranjo de armazenamento nas modalidades da presente invenção. O dispositivo de armazenamento mostrado na Figura 11 pode adicionalmente ser outro produto formado usando-se um meio de memória flash e um meio de armazenamento tendo uma característica similar. Para descrições específicas, fazer referência às descrições de partes correspondentes nas modalidades da presente invenção, e detalhes não são descritos novamente no presente documento.
[0072] De acordo com o dispositivo de armazenamento mostrado na Figura 11, em uma maneira de implantação, as supracitadas unidades são instaladas no dispositivo de armazenamento, as supracitadas unidades podem ser carregadas em uma memória do controlador de armazenamento do dispositivo de armazenamento, e uma CPU do controlador de armazenamento executa uma instrução na memória, para implantar uma função em uma modalidade correspondente da presente invenção. Em outra implantação, uma unidade incluída no dispositivo de armazenamento pode ser implantada por hardware, ou implantada por uma combinação de software e hardware. As supracitadas unidades também pode ser referidas como unidades estruturais.
[0073] Uma modalidade da presente invenção fornece adicionalmente um meio de armazenamento legível por computador não volátil e um produto de programa de computador. Quando uma instrução de computador incluída no meio de armazenamento legível por computador não volátil e no produto de programa de computador é carregada na memória do controlador de armazenamento do dispositivo de armazenamento mostrado na Figura 10 ou Figura 11, uma CPU executa a instrução de computador carregada na memória, para implantar funções correspondentes nas modalidades da presente invenção.
[0074] De acordo com as supracitadas modalidades, uma modalidade da presente invenção fornece um método para dividir uma área de armazenamento por um dispositivo de armazenamento. O dispositivo de armazenamento divide espaço de armazenamento em uma primeira área de armazenamento e uma segunda área de armazenamento, onde a primeira área de armazenamento inclui espaço de dados e espaço reservado, e a segunda área de armazenamento inclui espaço de dados e espaço reservado, onde o espaço reservado da primeira área de armazenamento é configurado para armazenar dados portados em uma primeira solicitação de gravar, o espaço reservado da segunda área de armazenamento é configurado para armazenar dados portados em uma segunda solicitação de gravar, um recurso da primeira solicitação de gravar atende uma primeira condição, e um recurso da segunda solicitação de gravar atende uma segunda condição. Especificamente, para a primeira condição, a segunda condição, o recurso da primeira solicitação de gravar, e o recurso da segunda solicitação de gravar, fazer referência às descrições na modalidade mostrada na Figura 2, e detalhes não são descritos novamente no presente documento. Para uma relação entre o espaço reservado da primeira área de armazenamento e o espaço reservado da segunda área de armazenamento, também fazer referência às descrições na modalidade mostrada na Figura 2. Para uma estrutura do dispositivo de armazenamento nas modalidades da presente invenção, referência pode ser feita à Figura 10, e detalhes não são descritos novamente no presente documento. Opcionalmente, uma quantidade de áreas de armazenamento correspondente pode ser dividida de acordo com um número de classe de um nível de sequência ou de um nível de aleatoriedade de uma solicitação de gravar, e espaço reservado correspondente é configurado de acordo com um valor de cada classe do nível de sequência ou com o nível de aleatoriedade. A divisão das áreas de armazenamento e a configuração do espaço reservado correspondente pode ser realizada antecipadamente, ou divisão e configuração dinâmicas podem ser realizadas durante o uso.
[0075] Nas diversas modalidades fornecidas na presente invenção, deve ser entendido que o aparelho e o método revelados podem ser implantados de outras maneiras. Por exemplo, a divisão por unidade na modalidade de aparelho descrita é meramente divisão de função lógica e pode ser outra divisão em uma implantação efetiva. Por exemplo, uma pluralidade de unidades ou componentes podem ser combinados ou integrados em outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implantados usando-se algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas, ou outras formas.
[0076] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e partes exibidas como unidades podem ou não ser unidades físicas, podem ser localizadas em uma posição, ou podem ser distribuídas em uma pluralidade de unidades de rede. Algumas das ou todas as unidades podem ser selecionadas de acordo com necessidades efetivas para se alcançar os objetivos das soluções das modalidades.
[0077] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada uma das unidades pode existir sozinha fisicamente, ou duas ou mais unidades são integradas em uma unidade.

Claims (15)

1. Método para armazenar dados por um dispositivo de armazenamento, CARACTERIZADO pelo fato de que o dispositivo de armazenamento compreende uma primeira área de armazenamento e uma segunda área de armazenamento, em que a primeira área de armazenamento compreende espaço de dados e espaço reservado, e a segunda área de armazenamento compreende espaço de dados e espaço reservado, e o método compreende: receber (201), pelo dispositivo de armazenamento, uma solicitação de gravar, em que a solicitação de gravar porta um endereço lógico e dados; determinar (202), pelo dispositivo de armazenamento, um recurso da solicitação de gravar; gravar, pelo dispositivo de armazenamento quando o recurso da solicitação de gravar atende uma primeira condição, os dados portados na solicitação de gravar em um primeiro endereço de armazenamento do espaço reservado da primeira área de armazenamento; e estabelecer, pelo dispositivo de armazenamento, uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento; gravar, quando o recurso da solicitação de gravar atende uma segunda condição, os dados portados na solicitação de gravar em um segundo endereço de armazenamento do espaço reservado da segunda área de armazenamento; e estabelecer, pelo dispositivo de armazenamento, uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento; em que o espaço de excesso de provisionamento da primeira área de armazenamento é menor que o espaço de excesso de provisionamento da segunda área de armazenamento; ou uma razão do espaço de excesso de provisionamento da primeira área de armazenamento para o espaço de dados da primeira área de armazenamento é menor que uma razão do espaço de excesso de provisionamento da segunda área de armazenamento para o espaço de dados da segunda área de armazenamento.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar compreende: determinar, pelo dispositivo de armazenamento, se a solicitação de gravar é uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória, em que a primeira condição é a solicitação de gravar em sequência, e a segunda condição é a solicitação de gravar aleatória.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar compreende: determinar, pelo dispositivo de armazenamento, um nível de sequência da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de sequência, a segunda condição é uma segunda faixa de nível de sequência, e um valor mínimo da primeira faixa de nível de sequência é maior que um valor máximo da segunda faixa de nível de sequência.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar compreende: determinar, pelo dispositivo de armazenamento, um nível de aleatoriedade da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de aleatoriedade, a segunda condição é uma segunda faixa de nível de aleatoriedade, e um valor máximo da primeira faixa de nível de aleatoriedade é menor que um valor mínimo da segunda faixa de nível de aleatoriedade.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação, pelo dispositivo de armazenamento, de um recurso da solicitação de gravar compreende: determinar, pelo dispositivo de armazenamento, um tamanho dos dados portados na solicitação de gravar, em que a primeira condição é uma primeira faixa de dados armazenada na primeira área de armazenamento, a segunda condição é uma segunda faixa de dados armazenada na segunda área de armazenamento, e um valor mínimo da primeira faixa de dados é maior que um valor máximo da segunda faixa de dados.
6. Dispositivo de armazenamento, CARACTERIZADO pelo fato de que compreende um controlador de armazenamento, uma primeira área de armazenamento (1105), e uma segunda área de armazenamento (1106), em que a primeira área de armazenamento (1105) compreende espaço de dados e espaço de excesso de provisionamento, a segunda área de armazenamento (1106) compreende espaço de dados e espaço de excesso de provisionamento, e o controlador de armazenamento (1001) compreende: uma unidade de recebimento (1101), configurada para receber uma solicitação de gravar, em que a solicitação de gravar porta um endereço lógico e dados; uma unidade de determinação (1102), configurada para determinar um recurso da solicitação de gravar; uma unidade de gravação (1103), configurada para gravar, quando o recurso da solicitação de gravar atende uma primeira condição, os dados portados na solicitação de gravar em um primeiro endereço de armazenamento do espaço de excesso de provisionamento da primeira área de armazenamento (1105); uma unidade de mapeamento (1104), configurada para estabelecer uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento, em que a unidade de gravação (1103) é adicionalmente configurada para gravar, quando o recurso da solicitação de gravar atende uma segunda condição, os dados portados na solicitação de gravar em um segundo endereço de armazenamento do espaço de excesso de provisionamento da segunda área de armazenamento (1106); e a unidade de mapeamento (1104) é adicionalmente configurada para estabelecer uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento; em que o espaço de excesso de provisionamento da primeira área de armazenamento (1105) é menor que o espaço de excesso de provisionamento da segunda área de armazenamento (1106); ou uma razão do espaço de excesso de provisionamento da primeira área de armazenamento (1105) para o espaço de dados da primeira área de armazenamento (1105) é menor que uma razão do espaço de excesso de provisionamento da segunda área de armazenamento (1106) para o espaço de dados da segunda área de armazenamento (1106).
7. Dispositivo de armazenamento, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a unidade de determinação (1102) é especificamente configurada para determinar se a solicitação de gravar é uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória, em que a primeira condição é a solicitação de gravar em sequência, e a segunda condição é a solicitação de gravar aleatória.
8. Dispositivo de armazenamento, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a unidade de determinação (1102) é especificamente configurada para determinar um nível de sequência da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de sequência, a segunda condição é uma segunda faixa de nível de sequência, e um valor mínimo da primeira faixa de nível de sequência é maior que um valor máximo da segunda faixa de nível de sequência.
9. Dispositivo de armazenamento, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a unidade de determinação (1102) é especificamente configurada para determinar um nível de aleatoriedade da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de aleatoriedade, a segunda condição é uma segunda faixa de nível de aleatoriedade, e um valor máximo da primeira faixa de nível de aleatoriedade é menor que um valor mínimo da segunda faixa de nível de aleatoriedade.
10. Dispositivo de armazenamento, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a unidade de determinação (1102) é especificamente configurada para determinar um tamanho dos dados portados na solicitação de gravar, em que a primeira condição é uma primeira faixa de dados armazenada na primeira área de armazenamento (1105), a segunda condição é uma segunda faixa de dados armazenada na segunda área de armazenamento (1106), e um valor mínimo da primeira faixa de dados é maior que um valor máximo da segunda faixa de dados.
11. Dispositivo de armazenamento, CARACTERIZADO pelo fato de que compreende um controlador de armazenamento (1001), uma primeira área de armazenamento (1002), e uma segunda área de armazenamento (1003), em que a primeira área de armazenamento (1002) compreende espaço de dados e espaço de excesso de provisionamento, e a segunda área de armazenamento (1003) compreende espaço de dados e espaço de excesso de provisionamento, e o controlador de armazenamento (1001) é configurado para: receber uma solicitação de gravar, em que a solicitação de gravar porta um endereço lógico e dados; determinar um recurso da solicitação de gravar; gravar, quando o recurso da solicitação de gravar atende uma primeira condição, os dados portados na solicitação de gravar em um primeiro endereço de armazenamento do espaço de excesso de provisionamento da primeira área de armazenamento (1002); e estabelecer uma relação de mapeamento entre o endereço lógico e o primeiro endereço de armazenamento; gravar, quando o recurso da solicitação de gravar atende uma segunda condição, os dados portados na solicitação de gravar em um segundo endereço de armazenamento do espaço de excesso de provisionamento da segunda área de armazenamento (1003); e estabelecer uma relação de mapeamento entre o endereço lógico e o segundo endereço de armazenamento; em que o espaço de excesso de provisionamento da primeira área de armazenamento (1002) é menor que o espaço de excesso de provisionamento da segunda área de armazenamento (1003); ou uma razão do espaço de excesso de provisionamento da primeira área de armazenamento (1002) para o espaço de dados da primeira área de armazenamento (1002) é menor que uma razão do espaço de excesso de provisionamento da segunda área de armazenamento (1003) para o espaço de dados da segunda área de armazenamento (1003).
12. Dispositivo de armazenamento, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o controlador de armazenamento (1001) é especificamente configurado para determinar se a solicitação de gravar é uma solicitação de gravar em sequência ou uma solicitação de gravar aleatória, em que a primeira condição é a solicitação de gravar em sequência, e a segunda condição é a solicitação de gravar aleatória.
13. Dispositivo de armazenamento, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o controlador de armazenamento (1001) é especificamente configurado para determinar um nível de sequência da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de sequência, a segunda condição é uma segunda faixa de nível de sequência, e um valor mínimo da primeira faixa de nível de sequência é maior que um valor máximo da segunda faixa de nível de sequência.
14. Dispositivo de armazenamento, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o controlador de armazenamento (1001) é especificamente configurado para determinar um nível de aleatoriedade da solicitação de gravar, em que a primeira condição é uma primeira faixa de nível de aleatoriedade, a segunda condição é uma segunda faixa de nível de aleatoriedade, e um valor máximo da primeira faixa de nível de aleatoriedade é menor que um valor mínimo da segunda faixa de nível de aleatoriedade.
15. Dispositivo de armazenamento, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o controlador de armazenamento (1001) é especificamente configurado para determinar um tamanho dos dados portados na solicitação de gravar, em que a primeira condição é uma primeira faixa de dados armazenada na primeira área de armazenamento (1002), a segunda condição é uma segunda faixa de dados armazenada na segunda área de armazenamento (1003), e um valor mínimo da primeira faixa de dados é maior que um valor máximo da segunda faixa de dados.
BR112016021172-3A 2015-11-27 2015-11-27 Método para armazenar dados por dispositivo de armazenamento e dispositivo de armazenamento BR112016021172B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/095846 WO2017088185A1 (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备

Publications (2)

Publication Number Publication Date
BR112016021172A2 BR112016021172A2 (pt) 2017-10-03
BR112016021172B1 true BR112016021172B1 (pt) 2022-12-06

Family

ID=58746365

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016021172-3A BR112016021172B1 (pt) 2015-11-27 2015-11-27 Método para armazenar dados por dispositivo de armazenamento e dispositivo de armazenamento

Country Status (13)

Country Link
US (1) US20180232314A1 (pt)
EP (2) EP3779663A1 (pt)
JP (1) JP6311195B2 (pt)
KR (4) KR102060736B1 (pt)
CN (2) CN107003809B (pt)
AU (2) AU2015383834B2 (pt)
BR (1) BR112016021172B1 (pt)
CA (1) CA2942443C (pt)
MX (1) MX363170B (pt)
RU (1) RU2642349C1 (pt)
SG (1) SG11201607335XA (pt)
WO (1) WO2017088185A1 (pt)
ZA (1) ZA201704018B (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554970A (zh) * 2018-05-31 2019-12-10 北京忆恒创源科技有限公司 显著降低写放大的垃圾回收方法及存储设备
KR20190128392A (ko) * 2018-05-08 2019-11-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
WO2020000480A1 (zh) * 2018-06-30 2020-01-02 华为技术有限公司 数据存储方法及数据存储装置
KR102593757B1 (ko) * 2018-09-10 2023-10-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
CN109376095B (zh) * 2018-12-04 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种基于flash区域地址映射机制的垃圾回收方法
CN111949560B (zh) * 2019-05-16 2024-01-23 兆易创新科技集团股份有限公司 一种数据写入方法、装置及存储设备
KR20200132495A (ko) * 2019-05-17 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법
CN114237489B (zh) * 2020-09-09 2024-04-05 浙江宇视科技有限公司 将逻辑资源写入smr盘的方法、装置、电子设备及存储介质
CN112214175A (zh) * 2020-10-21 2021-01-12 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质
WO2022240318A1 (ru) * 2021-05-13 2022-11-17 Общество с ограниченной ответственностью "РЭЙДИКС" Способ управления системой хранения данных и система хранения данных
CN113342272B (zh) * 2021-06-07 2023-02-10 深圳数联天下智能科技有限公司 一种坐姿数据的存储方法、展示方法、智能坐垫和系统
CN113703664B (zh) * 2021-06-24 2024-05-03 杭州电子科技大学 一种eMMC芯片随机写入速率优化实现方法
CN113608702A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端
CN114415981B (zh) * 2022-03-30 2022-07-15 苏州浪潮智能科技有限公司 一种多控存储系统的io处理方法、系统及相关组件
CN114741327B (zh) * 2022-04-22 2024-04-19 中科驭数(北京)科技有限公司 一种垃圾回收方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3585091B2 (ja) * 1998-06-15 2004-11-04 富士通株式会社 記憶装置
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR101515525B1 (ko) * 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR100962186B1 (ko) 2008-12-22 2010-06-10 한국과학기술원 초저전력 스토리지 시스템 및 그의 데이터 관리방법
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
JP2010211618A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 半導体記憶装置
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
CN102023810B (zh) * 2009-09-10 2012-08-29 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列
TWI407310B (zh) * 2009-10-09 2013-09-01 Silicon Motion Inc 資料儲存裝置及資料存取方法
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
KR20140040137A (ko) * 2011-05-17 2014-04-02 샌디스크 테크놀로지스, 인코포레이티드 활성 slc 및 mlc 메모리 분할들 간에 분포된 작은 논리 그룹들을 가진 비휘발성 메모리 및 방법
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
US8671241B2 (en) * 2011-09-13 2014-03-11 Dell Products Lp Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
KR20130030640A (ko) * 2011-09-19 2013-03-27 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법 및 그것을 포함하는 데이터 저장 장치
KR101889298B1 (ko) * 2011-11-08 2018-08-20 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
CN102541760B (zh) * 2012-01-04 2015-05-20 记忆科技(深圳)有限公司 基于固态硬盘的计算机系统
JP6011153B2 (ja) * 2012-08-22 2016-10-19 富士通株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9495287B2 (en) * 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
US9454551B2 (en) * 2014-03-13 2016-09-27 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive
TWI519951B (zh) * 2014-11-03 2016-02-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN104317742B (zh) * 2014-11-17 2017-05-03 浪潮电子信息产业股份有限公司 一种优化空间管理的自动精简配置方法
US9910791B1 (en) * 2015-06-30 2018-03-06 EMC IP Holding Company LLC Managing system-wide encryption keys for data storage systems

Also Published As

Publication number Publication date
KR20190143502A (ko) 2019-12-30
US20180232314A1 (en) 2018-08-16
AU2018220027A1 (en) 2018-09-06
AU2018220027B2 (en) 2020-06-25
KR101962359B1 (ko) 2019-03-26
AU2015383834B2 (en) 2018-07-19
CN107003809B (zh) 2019-01-18
JP2017538981A (ja) 2017-12-28
WO2017088185A1 (zh) 2017-06-01
CN109656486A (zh) 2019-04-19
BR112016021172A2 (pt) 2017-10-03
EP3220255A4 (en) 2018-03-07
CN107003809A (zh) 2017-08-01
MX2016013227A (es) 2017-06-29
KR20170081133A (ko) 2017-07-11
SG11201607335XA (en) 2017-07-28
KR20190031605A (ko) 2019-03-26
MX363170B (es) 2019-03-13
ZA201704018B (en) 2019-04-24
KR101871471B1 (ko) 2018-08-02
KR20180072855A (ko) 2018-06-29
AU2015383834A1 (en) 2017-06-15
KR102170539B1 (ko) 2020-10-27
EP3220255A1 (en) 2017-09-20
JP6311195B2 (ja) 2018-04-18
CA2942443C (en) 2019-07-30
CN109656486B (zh) 2022-07-12
RU2642349C1 (ru) 2018-01-24
EP3779663A1 (en) 2021-02-17
CA2942443A1 (en) 2017-05-27
KR102060736B1 (ko) 2020-02-11

Similar Documents

Publication Publication Date Title
BR112016021172B1 (pt) Método para armazenar dados por dispositivo de armazenamento e dispositivo de armazenamento
US10649910B2 (en) Persistent memory for key-value storage
JP6890401B2 (ja) 多重モード格納管理装置、多重モード格納装置、及びその選別潜在露出(sue)マッピング動作方法
JP6910131B2 (ja) 多重モード動作のための多重パーティションを含む格納装置、及びその動作方法
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US10019352B2 (en) Systems and methods for adaptive reserve storage
US10203876B2 (en) Storage medium apparatus, method, and program for storing non-contiguous regions
US9513822B2 (en) Unmap storage space
US9666244B2 (en) Dividing a storage procedure
US11126561B2 (en) Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
BR112016019305B1 (pt) Controlador de arranjo, disco de estado sólido, e método para controlar disco de estado sólido para gravar dados
JP2010009548A (ja) 記憶装置、制御装置、記憶システム、および記憶方法
JP2017091524A (ja) 格納媒体を多重モードで動作させる管理システム、それを含む格納システム、及びそれを利用して格納媒体を管理する方法
JP2015507798A (ja) メモリ・モジュールにおいてデータ・エンティティを消去するための方法
US10268717B2 (en) System and method for reading file blocks
WO2018188618A1 (zh) 固态硬盘访问
US20180232154A1 (en) Append Only Streams For Storing Data On A Solid State Device
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/11/2015, OBSERVADAS AS CONDICOES LEGAIS