BR112017027915B1 - Método e aparelho de processamento de dados e dispositivo flash - Google Patents

Método e aparelho de processamento de dados e dispositivo flash Download PDF

Info

Publication number
BR112017027915B1
BR112017027915B1 BR112017027915-0A BR112017027915A BR112017027915B1 BR 112017027915 B1 BR112017027915 B1 BR 112017027915B1 BR 112017027915 A BR112017027915 A BR 112017027915A BR 112017027915 B1 BR112017027915 B1 BR 112017027915B1
Authority
BR
Brazil
Prior art keywords
overprovisioning
flash device
data
space
user
Prior art date
Application number
BR112017027915-0A
Other languages
English (en)
Other versions
BR112017027915A2 (pt
Inventor
Jianhua Zhou
Po Zhang
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 BR112017027915A2 publication Critical patent/BR112017027915A2/pt
Publication of BR112017027915B1 publication Critical patent/BR112017027915B1/pt

Links

Classifications

    • 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
    • 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/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0608Saving storage space on 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/0629Configuration or reconfiguration 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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
    • 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/7211Wear leveling

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

método e aparelho de processamento de dados e dispositivo flash. modalidades da presente invenção fornecem um método e aparelho de processamento de dados e um dispositivo flash. o método inclui: receber (s101) uma instrução de operação enviada por um hospedeiro, realizar (s101), de acordo com a instrução de operação, uma operação em dados armazenados no dispositivo flash e determinar (s101) um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário; determinar (s102) um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento; determinar (s103) um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e ajustar (s104) uma capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste. de acordo com as modalidades da presente invenção, uma razão de sobreprovisionamento pode ser ajustada dinamicamente, a confiabilidade e estabilidade de desempenho de um dispositivo flash podem ser aprimoradas, e uma vida útil do dispositivo flash pode ser prolongada.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção refere-se ao campo de tecnologias de dispositivo flash, e especificamente, a um método e aparelho de processamento de dados, e um dispositivo flash.
FUNDAMENTOS
[0002] Um disco de estado sólido (também chamado de Unidade de Estado Sólido), denominado SSD por abreviação, é um disco rígido feito de um arranjo de chip de armazenamento eletrônico de estado sólido. O SSD é amplamente aplicado aos campos tais como militares, veículos, controle industrial, vigilância em vídeo, monitoramento de rede, terminais de rede, eletricidade, cuidados médicos, aviação e dispositivos de navegação. No mercado, as capacidades de SSD comuns incluem, em geral, 60/64 GB, 120/128 GB, 240/256 GB, 480/512 GB, e 960 /1.024 G, em que um valor à esquerda de uma barra representa uma capacidade de espaço disponível para usuário, um valor à direita de uma barra representa uma capacidade de espaço físico de um SSD, e uma diferença entre os dois valores é o espaço de sobreprovisionamento (Over Provisioning, OP). Em geral, um usuário não pode realizar uma operação nessa parte do espaço, e uma capacidade dessa parte de espaço é geralmente determinada por um controlador primário. OP é geralmente usado para realizar uma operação de otimização, incluindo nivelamento de desgaste, coleta de lixo, mapeamento de setor defeituoso e similares. Uma razão de sobreprovisionamento é uma razão de uma capacidade de espaço de sobreprovisionamento para a capacidade de espaço disponível ao usuário, e razões típicas de sobreprovisionamento na indústria são 7% e 28%. Uma capacidade de espaço físico de 1.024 GB é usada como um exemplo. Quando uma capacidade de espaço disponível para usuário é 960 GB, uma razão de sobreprovisionamento correspondente é 7%, ou seja, (1.024-960)/960. Quando uma capacidade de espaço disponível para usuário é 800 GB, uma razão de sobreprovisionamento correspondente é 28%, ou seja, (1.024-800)/800. Uma maior razão de sobreprovisionamento indica melhor desempenho de gravação aleatório, menor oscilação de desempenho, e uma maior vida útil, mas custos maiores.
[0003] Uma memória flash no SSD precisa ser apagada antes de ser regravada, e é gravada e lida em páginas enquanto são apagadas em blocos. Portanto, um volume de dados realmente gravados é muito maior do que o de dados gravados com o uso de um hospedeiro. A amplificação de gravação (Write Amplification, WA) é uma razão de um volume de dados realmente gravados para um tamanho de dados gravados com o uso de um hospedeiro. Maior WA indica uma menor razão de sobreprovisionamento, uma vida útil mais curta, e desempenho de gravação aleatório mais fraco.
[0004] Atualmente, um vendedor de SSD fornece múltiplas razões de sobreprovisionamento para um SSD de uma capacidade específica, e um usuário seleciona uma razão de sobreprovisionamento fixa de acordo com uma exigência de usuário. Uma vez que uma razão de sobreprovisionamento é fixada, parâmetros do SSD são fixados, e o desempenho e uma vida útil do SDD são também fixos. Dessa maneira, o SSD pode somente ser executado na razão de sobreprovisionamento fixa. Consequentemente, é difícil otimizar mais o desempenho e a vida útil do SSD.
SUMÁRIO
[0005] As modalidades da presente invenção fornecem um método e aparelho de processamento de dados, e um dispositivo flash, a fim de ajustar dinamicamente uma razão de sobreprovisionamento, aprimorar a confiabilidade e estabilidade de desempenho de um dispositivo flash, e prolongar uma vida útil do dispositivo flash.
[0006] Um primeiro aspecto das modalidades da presente invenção fornece um método de processamento de dados, em que o método é aplicado a um sistema de armazenamento, e o sistema de armazenamento inclui um hospedeiro e um dispositivo flash, em que múltiplos níveis de sobreprovisionamento são configurados para espaço de armazenamento físico do dispositivo flash de acordo com múltiplas razões de sobreprovisionamento diferentes, cada nível de sobreprovisionamento é correspondente a um intervalo de uma capacidade de espaço de armazenamento de usuário, cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, a razão de sobreprovisionamento é uma razão de uma capacidade de espaço de sobreprovisionamento para a capacidade de espaço de armazenamento de usuário, e a capacidade de espaço de sobreprovisionamento é uma diferença entre uma capacidade de espaço de armazenamento físico e a capacidade de espaço de armazenamento de usuário; e o método é realizado pelo dispositivo flash e inclui: receber uma instrução de operação enviada pelo hospedeiro, realizar, de acordo com a instrução de operação, uma operação em dados armazenados no dispositivo flash e determinar um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário; determinar um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e o intervalo que é da capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento; determinar um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e ajustar a capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste.
[0007] Em uma primeira implantação possível do primeiro aspecto das modalidades da presente invenção, o recebimento de uma instrução de operação enviada pelo hospedeiro, a realização, de acordo com a instrução de operação, de uma operação em dados armazenados no dispositivo flash, e a determinação de um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário inclui: receber uma instrução de gravação enviada pelo hospedeiro e determinar dados a serem adicionados de acordo com a instrução de gravação; e adicionar os dados a serem adicionados ao dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem adicionados são adicionados ao dispositivo flash e que são salvos pelo usuário.
[0008] Em uma segunda implantação possível do primeiro aspecto das modalidades da presente invenção, o recebimento de uma instrução de operação enviada pelo hospedeiro, a realização, de acordo com a instrução de operação, de uma operação em dados armazenados no dispositivo flash, e a determinação um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário inclui: receber uma instrução de exclusão enviada pelo hospedeiro e determinar dados a serem excluídos de acordo com a instrução de exclusão; e excluir os dados a serem excluídos do dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem excluídos são excluídos e que são salvos pelo usuário.
[0009] Em referência à primeira implantação possível do primeiro aspecto das modalidades da presente invenção, em uma terceira implantação possível do primeiro aspecto das modalidades da presente invenção, antes da adição dos dados a serem adicionados ao dispositivo flash, o método inclui adicionalmente: comprimir os dados a serem adicionados, em que os dados a serem adicionados são dados comprimidos.
[0010] Em referência a qualquer uma dentre a primeira à terceira implantações possíveis do primeiro aspecto das modalidades da presente invenção, em uma quarta implantação possível do primeiro aspecto, após a etapa de ajustar a capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste, o método inclui adicionalmente: realizar, de acordo com um parâmetro-alvo de ajuste de coleta de lixo no parâmetro-alvo de ajuste, processamento de coleta de lixo nos dados armazenados no dispositivo flash.
[0011] Em referência a qualquer uma dentre a primeira à terceira implantações possíveis do primeiro aspecto das modalidades da presente invenção, em uma quinta implantação possível do primeiro aspecto, após a etapa de ajustar a capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste, o método inclui adicionalmente: realizar, de acordo com um parâmetro-alvo de ajuste de nivelamento de desgaste no parâmetro-alvo de ajuste, processamento de nivelamento de desgaste nos dados armazenados no dispositivo flash.
[0012] Um segundo aspecto das modalidades da presente invenção fornece um aparelho de processamento de dados sendo que o aparelho de processamento de dados é caracterizado pelo fato de que é aplicado a um dispositivo flash em um sistema de armazenamento, e o sistema de armazenamento inclui adicionalmente um hospedeiro, em que múltiplos níveis de sobreprovisionamento são configurados para espaço de armazenamento físico do dispositivo flash de acordo com múltiplas razões de sobreprovisionamento diferentes, cada nível de sobreprovisionamento é correspondente a um intervalo de uma capacidade de espaço de armazenamento de usuário, cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, a razão de sobreprovisionamento é uma razão de uma capacidade de espaço de sobreprovisionamento para a capacidade de espaço de armazenamento de usuário, e a capacidade de espaço de sobreprovisionamento é uma diferença entre uma capacidade de espaço de armazenamento físico e a capacidade de espaço de armazenamento de usuário; e o aparelho de processamento de dados inclui: uma unidade de recebimento, configurada para: receber uma instrução de operação enviada pelo hospedeiro, realizar, de acordo com a instrução de operação, uma operação em dados armazenados no dispositivo flash e determinar um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário; Uma unidade de determinação, configurada para determinar um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e o intervalo que é da capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento, em que a unidade de determinação é adicionalmente configurada para determinar um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e uma unidade de ajuste, configurada para ajustar a capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste.
[0013] Em uma primeira implantação possível do segundo aspecto das modalidades da presente invenção, a unidade de recebimento é especificamente configurada para: receber uma instrução de gravação enviada pelo hospedeiro, determinar dados a serem adicionados de acordo com a instrução de gravação, adicionar os dados a serem adicionados ao dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem adicionados são adicionados ao dispositivo flash e que são salvos pelo usuário.
[0014] Em uma segunda implantação possível do segundo aspecto das modalidades da presente invenção, a unidade de recebimento é especificamente configurada para: receber uma instrução de exclusão enviada pelo hospedeiro, determinar dados a serem excluídos de acordo com a instrução de exclusão, excluir os dados a serem excluídos do dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem excluídos são excluídos e que são salvos pelo usuário.
[0015] Em referência à primeira implantação possível do segundo aspecto das modalidades da presente invenção, em uma terceira implantação possível das modalidades da presente invenção, a unidade de recebimento é adicionalmente configurada para comprimir os dados a serem adicionados, e os dados a serem adicionados são dados comprimidos.
[0016] Em referência qualquer uma dentre a primeira à terceira implantações possíveis do segundo aspecto das modalidades da presente invenção, em uma quarta implantação possível das modalidades da presente invenção, o aparelho inclui adicionalmente: uma unidade de processamento, configurada para realizar, de acordo com um parâmetro-alvo de ajuste de coleta de lixo no parâmetro-alvo de ajuste, processamento de coleta de lixo nos dados armazenados no dispositivo flash.
[0017] Em referência qualquer uma dentre a primeira à terceira implantações possíveis do segundo aspecto das modalidades da presente invenção, em uma quinta implantação possível das modalidades da presente invenção, a unidade de processamento é adicionalmente configurada para realizar, de acordo com um parâmetro-alvo de ajuste de nivelamento de desgaste no parâmetro-alvo de ajuste, processamento de nivelamento de desgaste nos dados armazenados no dispositivo flash.
[0018] Um terceiro aspecto das modalidades da presente invenção fornece um dispositivo flash, que inclui o aparelho de processamento de dados fornecido no segundo aspecto das modalidades da presente invenção.
[0019] Nas modalidades da presente invenção, uma instrução de operação enviada por um hospedeiro é recebida, uma operação é realizada, de acordo com a instrução de operação, em dados armazenados em um dispositivo flash, e um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário é determinado; então, um nível de sobreprovisionamento-alvo é determinado de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento, e um parâmetro-alvo de ajuste é determinado de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e, finalmente, uma capacidade de espaço de sobreprovisionamento do dispositivo flash é ajustada de acordo com o parâmetro-alvo de ajuste. Portanto, uma razão de sobreprovisionamento do dispositivo flash é ajustada dinamicamente de acordo com um volume de dados armazenados, e, além disso, a confiabilidade e estabilidade de desempenho do dispositivo flash são aprimoradas e uma vida útil do dispositivo flash é prolongada.
BREVE DESCRIÇÃO DOS DESENHOS
[0020] Para descrever as soluções técnicas nas modalidades da presente invenção ou na técnica anterior mais claramente, a seguir são descritos brevemente os desenhos anexos exigidos para descrever as modalidades ou a técnica anterior. Aparentemente, os desenhos anexos na descrição a seguir mostram meramente algumas modalidades da presente invenção e um indivíduo de habilidade comum na técnica ainda pode derivar outros desenhos a partir desses desenhos anexos sem esforços criativos.
[0021] A Figura 1 é um diagrama esquemático de uma arquitetura de rede de um sistema de armazenamento na técnica anterior;
[0022] A Figura 2 é um diagrama esquemático de configuração de nível de sobreprovisionamento de acordo com uma modalidade da presente invenção;
[0023] A Figura A Figura 3 é um diagrama estrutural esquemático de um dispositivo flash de acordo com uma modalidade da presente invenção;
[0024] A Figura 4 é um fluxograma esquemático de um método de processamento de dados de acordo com uma modalidade da presente invenção;
[0025] A Figura 5 é um fluxograma esquemático de outro método de processamento de dados de acordo com uma modalidade da presente invenção; e
[0026] A Figura 6 é um diagrama esquemático estrutural de um aparelho de processamento de dados de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DAS MODALIDADES
[0027] A seguir, são descritas clara e completamente as soluções técnicas nas modalidades da presente invenção em referência aos desenhos anexos nas modalidades da presente invenção. Aparentemente, as modalidades descritas são meramente algumas, mas não todas as modalidades da presente invenção. Todas as outras modalidades obtidas por uma pessoa de habilidade comum na técnica com base nas modalidades da presente invenção sem esforços criativos devem ser abrangidas pelo escopo de proteção da presente invenção.
[0028] Para melhor entendimento de um método e aparelho de processamento de dados, e um dispositivo flash que são revelados nas modalidades da presente invenção, a seguir, é descrito primeiro uma arquitetura de rede de um sistema de armazenamento na técnica anterior. Em referência à Figura 1, a Figura 1 é um diagrama esquemático de uma arquitetura de rede de um sistema de armazenamento na técnica anterior. O sistema de armazenamento mostrado na Figura 1 inclui um hospedeiro e um dispositivo flash. Deve-se observar que, o sistema de armazenamento na técnica anterior inclui múltiplos hospedeiros e múltiplos dispositivos flash, e um hospedeiro e um dispositivo flash no sistema de armazenamento são descritos nas modalidades da presente invenção. O hospedeiro pode incluir, porém, sem limitação, um dispositivo tal como um computador de mesa, um computador portátil, ou um servidor, e o hospedeiro controla o dispositivo flash enviando-se uma série de instruções. O dispositivo flash realiza uma operação correspondente tal como leitura, gravação ou exclusão de acordo com uma instrução enviada pelo hospedeiro. O espaço de armazenamento físico do dispositivo flash inclui espaço de sobreprovisionamento e espaço de armazenamento de usuário, o espaço de armazenamento físico é total espaço do dispositivo flash, e o espaço de armazenamento de usuário é usado para armazenar dados inseridos por um usuário com o uso do hospedeiro. O método e aparelho de processamento de dados, e o dispositivo flash que são fornecidos nas modalidades da presente invenção podem ser aplicados ao sistema de armazenamento mostrado na Figura 1, e pode ser especificamente aplicado a uma situação de ajuste do espaço de sobreprovisionamento de um dispositivo flash. O aparelho de processamento de dados nas modalidades da presente invenção é localizado no dispositivo flash.
[0029] O dispositivo flash nas modalidades da presente invenção pode incluir, porém sem limitação, um dispositivo de armazenamento com um flash de NAND (NAND Flash), por exemplo, uma unidade de estado sólido (Solid State Disk, SSD), um disco rígido removível, um disquete, uma unidade de flash de USB, ou um cartão SD. Deve-se observar que uma unidade de estado sólido na memória flash é principalmente descrita nas modalidades da presente invenção, e outro dispositivo flash também pode ser usado nas modalidades da presente invenção.
[0030] A unidade de estado sólido SSD inclui principalmente um controlador primário e um flash de NAND. O flash de NAND é um meio de armazenamento de acesso aleatório não volátil e é caracterizado por não perder dados depois que o flash de NAND é desativado. O flash de NAND é diferente de um meio de armazenamento de acesso aleatório volátil convencional e um dispositivo flash volátil convencional tal como uma memória de acesso aleatório dinâmica DRAM e uma memória de acesso aleatório estática SRAM e, portanto, pode ser usado como um dispositivo flash externo. O flash de NAND é classificado em dois tipos: uma célula de nível único (Single Level Cell, SLC) e uma célula de níveis múltiplos (Multi-Level Cell, MLC), e uma diferença principal entre as duas é que as mesmas têm estruturas diferentes. Atualmente, a maioria dos flashes de NAND no mercado usam um mercado de MLC.
[0031] Um componente de flash de NAND inclui, em geral, um registro interno e uma matriz de armazenamento. A matriz de armazenamento inclui vários blocos, cada bloco contém várias páginas, e cada página contém vários bytes. As operações principais realizadas no flash de NAND são leitura, gravação e apagamento. Devido ao fato de que o dispositivo flash é um semicondutor não volátil, o flash de NAND é lido e gravado em páginas e é apagado em blocos. Uma página precisa ser apagada antes de ser gravada. Uma sequência de uso do flash de NAND é geralmente: apagar — programar — ler por múltiplas vezes —— apagar...
[0032] Espaço de sobreprovisionamento (Over Provisioning, OP) é o espaço no qual um usuário não pode realizar uma operação e cujo tamanho é uma capacidade de espaço físico de um SSD menos uma capacidade de espaço disponível para usuário. Uma área de OP é geralmente usada para uma operação de otimização, por exemplo, nivelamento de desgaste, coleta de lixo e mapeamento de setor defeituoso.
[0033] O nivelamento de desgaste (Wear leveling, WL) é um mecanismo usado para garantir que a quantidades de vezes para a qual todos os blocos são gravados seja igual. Os dados no espaço de endereço lógico de usuário são atualizados em diferentes velocidades. Os dados em algumas áreas são frequentemente atualizados, mas os dados em algumas áreas não são frequentemente atualizados. Aparentemente, um bloco de flash ocupado pelos dados que são frequentemente atualizados é rapidamente gasto, enquanto um bloco de flash ocupado pelos dados que não são frequentemente atualizados é menos gasto. Esse problema pode ser resolvido com o uso do mecanismo de nivelamento de desgaste, de modo que a quantidade de vezes pelas quais todos os blocos de flash são programados seja mantida igual o máximo possível.
[0034] Coleta de lixo (Garbage Collection, GC) significa copiar dados em uma página válida de um bloco de flash para um bloco vazio e então apagar o bloco inteiro. GC é uma operação extremamente crucial para um SSD, e a eficiência de GC tem impacto decisivo no desempenho. Uma quantidade de páginas válidas do bloco de flash tem impacto decisivo na eficiência de GC, ou seja, uma quantidade menor de páginas válidas indica uma quantidade menor de páginas que precisam ser copiadas e indica que um tempo menor é custo, a fim de aprimorar a eficiência de coleta de lixo.
[0035] A amplificação de gravação (Write amplification, WA) é uma razão de um tamanho de dados realmente gravados em um flash de NAND para um tamanho de dados gravados com o uso de um hospedeiro. Devido ao fato de que o flash de NAND precisa ser apagado antes de ser gravado, durante a execução dessas operações, os dados de usuário são movidos ou sobrescritos mais do que uma vez. Essas operações repetidas não somente aumentam um volume de dados gravados e encurta uma vida útil de um SSD, mas também consome largura de banda do flash de NAND e afetam indiretamente o desempenho de gravação aleatório do SSD. Por exemplo, quando dados de 4 KB precisam ser gravados, em um pior caso no qual um bloco não tem espaço vazio, mas tem dados inválidos que podem ser apagados, um controlador primário lê todos os dados a uma memória cache e apaga o bloco, dados do bloco inteiro são atualizados na memória cache, e novos dados são gravados novamente. A amplificação de gravação resultante dessa operação é: Gravar realmente dados de 4 KB causa uma operação de gravação no bloco inteiro (1.024 KB no total), ou seja, um volume de dados gravados é amplificado em 256 vezes. Ao mesmo tempo, uma operação de uma etapa simples de gravação dos dados de 4 KB torna-se uma operação de quatro etapas: Ler de uma memória flash (1.024 KB) ^ Atualizar em uma memória cache (4 KB) ^ Apagar a memória flash (1.024 KB) ^ Gravar na memória flash (1.024 KB). Consequentemente, um atraso é amplamente aumentado, e uma velocidade de gravação é diminuída. Portanto, a amplificação de gravação é um fator chave que afeta o desempenho de gravação aleatório e a vida útil do SSD.
[0036] Múltiplos níveis de sobreprovisionamento são configurados para o espaço de armazenamento físico do dispositivo flash nas modalidades da presente invenção de acordo com múltiplas razões de sobreprovisionamento diferentes. Para detalhes, consultar um diagrama esquemático de configuração de nível de sobreprovisionamento mostrado na Figura 2. Deve-se observar que um valor na Figura 2 é somente um exemplo, e um valor específico pode ser definido por um fabricante de um dispositivo flash e não é limitado ao presente documento. Um dispositivo flash cuja capacidade de espaço de armazenamento físico é 1.024 G é usado como um exemplo na Figura 2. Se uma razão de sobreprovisionamento for 7%, uma capacidade de espaço de armazenamento de usuário é 960 G, e uma diferença de 64 G entre 1.024 G e 960 G é uma capacidade de espaço de sobreprovisionamento do dispositivo flash. Nas modalidades da presente invenção, cinco níveis de sobreprovisionamento: um nível 0, um nível 1, um nível 2, um nível 3, um nível 4, e um nível 5 são configurados para espaço de armazenamento físico 1.024 G do dispositivo flash de acordo com múltiplas razões de sobreprovisionamento diferentes, e intervalos correspondentes da capacidade de espaço de armazenamento de usuário são respectivamente (800 G, 960 G], (720 G, 800 G], (660 G, 720 G], (520 G, 660 G], (400 G, 520 G], e [0 G, 400 G]. Nas modalidades da presente invenção, um parâmetro de ajuste correspondente é adicionalmente configurado para cada capacidade de espaço de armazenamento de usuário. O parâmetro de ajuste inclui parâmetros tal como um parâmetro de ajuste de espaço de sobreprovisionamento, um parâmetro de ajuste de coleta de lixo GC, um parâmetro de ajuste de nivelamento de desgaste WL, amplificação de gravação WA, e frequência de troca de dados quentes e frios. Devido ao fato de que cada nível de sobreprovisionamento é correspondente a um intervalo da capacidade de espaço de armazenamento de usuário, e cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste pode ser derivada. Na técnica anterior, ao fabricar um dispositivo flash de SSD, um fabricante do dispositivo flash geralmente fornece uma razão de sobreprovisionamento fixa para um consumidor de acordo com uma exigência de consumidor. Uma vez que uma razão de sobreprovisionamento é fixada, é difícil otimizar mais o desempenho, parâmetros, uma vida útil, e similares do dispositivo flash de SSD.
[0037] Com base na arquitetura de rede mostrada na Figura 1, em referência à Figura 3, a Figura A Figura 3 é um diagrama estrutural esquemático de um dispositivo flash de acordo com uma modalidade da presente invenção. Conforme mostrado na Figura 3, o dispositivo flash inclui pelo menos um processador 1001 tal como um CPU, uma interface de comunicações 1003, uma memória 1004, e pelo menos um barramento de comunicações 1002. Opcionalmente, o processador 1001 é um controlador primário do dispositivo flash. A interface de comunicações 1003 é configurada para receber uma instrução de operação enviada por um hospedeiro que está em um mesmo sistema de armazenamento que o dispositivo flash. O barramento de comunicações 1002 é configurado para implantar conexões e uma comunicação entre esses componentes. A memória 1005 pode ser uma memória flash de NAND configurada para armazenar dados. Múltiplos níveis de sobreprovisionamento são configurados para espaço de armazenamento físico da memória 1005 de acordo com múltiplas razões de sobreprovisionamento diferentes, cada nível de sobreprovisionamento é correspondente a um intervalo de uma capacidade de espaço de armazenamento de usuário, cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, a razão de sobreprovisionamento é uma razão de uma capacidade de espaço de sobreprovisionamento para a capacidade de espaço de armazenamento de usuário, e a capacidade de espaço de sobreprovisionamento é uma diferença entre uma capacidade de espaço de armazenamento físico e a capacidade de espaço de armazenamento de usuário.
[0038] Em seguida, métodos de processamento de dados de acordo com as modalidades da presente invenção são descritos em detalhes em referência à Figura 3 à Figura 5.
[0039] Em referência à Figura 4, a Figura 4 é um fluxograma esquemático de um método de processamento de dados de acordo com uma modalidade da presente invenção. Em referência ao dispositivo flash descrito na Figura 3, a memória 1005 armazena um grupo de código de programa, e o processador 1001 invoca o código de programa armazenado na memória 1005 para realizar o método de processamento de dados. O método pode incluir a etapa S101 a seguir à etapa S104.
[0040] S101. Receber uma instrução de operação enviada por um hospedeiro, realizar, de acordo com a instrução de operação, uma operação em dados armazenados em um dispositivo flash e determinar um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário.
[0041] Opcionalmente, o processador 1001 realiza, de acordo com a instrução de operação que é enviada pelo hospedeiro e que é recebida pela interface de comunicações 1003, uma operação em dados armazenados na memória 1005, e determina um tamanho de dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário. Quando a interface de comunicações 1003 recebe a instrução de operação, o processador 1001 determina primeiro a possibilidade de a instrução de operação ter sido executada. Se um resultado da determinação for não, ou seja, o processador 1001 não executou a instrução de operação, a operação é realizada nos dados armazenados na memória 1005. Antes de o processador 1001 realizar a operação, a memória 1005 pode armazenar uma parte dos dados, e essa parte de dados é usada como um tamanho inicial de dados no dispositivo flash. O tamanho inicial de dados pode mudar depois que a operação é realizada. Portanto, o dispositivo flash precisa determinar o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário, e determina, de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário, a possibilidade de um nível de sobreprovisionamento para o dispositivo flash precisar ser ajustado. Se o processador 1001 tiver executado a instrução de operação, pode-se entender que o processador 1001 realizou, de acordo com a instrução de operação, a operação nos dados armazenados na memória 1005. Nesse caso, nenhum processamento é realizado no dispositivo flash.
[0042] A instrução de operação inclui uma instrução de gravação ou uma instrução de exclusão. Especificamente, quando a instrução de operação é a instrução de gravação, o processador 1001 determina primeiro a possibilidade de a instrução de gravação ter sido executada, e em caso negativo, determina dados a serem adicionados, adiciona os dados a serem adicionados ao dispositivo flash para aumentar o tamanho inicial de dados em uma base original e, portanto, determina, como o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário, uma soma do tamanho inicial de dados e um volume dos dados a serem adicionados. Quando a instrução de operação é a instrução de exclusão, o processador 1001 determina primeiro a possibilidade de a instrução de exclusão ter sido executada, e em caso negativo, determina dados a serem excluídos, exclui os dados a serem excluídos da memória 1005 para diminuir o tamanho inicial de dados em um base original e, portanto, determina, como o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário, uma diferença entre o tamanho inicial de dados e um volume de os dados a serem excluídos.
[0043] S102. Determinar um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento.
[0044] Opcionalmente, devido ao fato de que múltiplos níveis de sobreprovisionamento são configurados para o dispositivo flash de acordo com razões de sobreprovisionamento diferentes, e cada nível de sobreprovisionamento é correspondente a um intervalo da capacidade de espaço de armazenamento de usuário, o processador 1001 determina o nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário e o intervalo que é da capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento. Se o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário for 500 G, pode-se aprender a partir da Figura 2 que, nesse caso, um intervalo correspondente da capacidade de espaço de armazenamento de usuário é (400 G, 520 G], um nível de sobreprovisionamento correspondente é um nível 4, e o nível 4 é determinado como o nível de sobreprovisionamento-alvo. Se o dispositivo flash não tiver sido usado ou formatado, o nível de sobreprovisionamento-alvo é definido para um nível 5 por padrão.
[0045] S103. Determinar um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste.
[0046] Opcionalmente, devido ao fato de que múltiplos níveis de sobreprovisionamento são configurados para o dispositivo flash de acordo com razões de sobreprovisionamento diferentes, cada nível de sobreprovisionamento é correspondente a um intervalo da capacidade de espaço de armazenamento de usuário, e cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, a correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste pode ser derivada, ou seja, o dispositivo flash configura diferentes parâmetros de ajuste para níveis de sobreprovisionamento. O processador 1001 determina o parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e a correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste. O parâmetro-alvo de ajuste pode ser igual ou diferente de um parâmetro de ajuste usado antes de a instrução de operação ser recebida, e é determinado de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário. Se o tamanho dos dados que são obtidos após a operação e que são salvos na memória 1005 pelo usuário e o tamanho inicial de dados pertencerem a um mesmo intervalo da capacidade de espaço de armazenamento de usuário, o parâmetro-alvo de ajuste é igual a um parâmetro de ajuste correspondente ao tamanho inicial de dados; de outro modo, o parâmetro-alvo de ajuste é diferente de um parâmetro de ajuste correspondente ao tamanho inicial de dados. Cada vez que um tamanho dos dados salvo na memória 1005 pelo usuário muda, o processador 1001 precisa determinar um novo nível de sobreprovisionamento-alvo e um novo parâmetro- alvo de ajuste. Na técnica anterior, devido ao fato de que há uma razão de sobreprovisionamento fixa e uma capacidade de espaço de sobreprovisionamento fixa, independente de uma mudança no tamanho dos dados salvos na memória 1005 pelo usuário, o processador 1001 ajusta, de acordo com um parâmetro de ajuste fixado, os dados salvos pelo usuário. Desse modo, a confiabilidade e a estabilidade de desempenho do dispositivo flash são afetadas em alguma extensão.
[0047] S104. Ajustar uma capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste.
[0048] Opcionalmente, o processador 1001 ajusta uma capacidade de espaço de sobreprovisionamento da memória 1005 de acordo com o parâmetro-alvo de ajuste. Na técnica anterior, uma capacidade de espaço de sobreprovisionamento de cada dispositivo flash foi determinada na entrega, de modo que o desempenho de processamento do dispositivo flash seja limitado em alguma extensão. O espaço de sobreprovisionamento da memória 1005 nessa modalidade da presente invenção não é fixo, mas varia com o tamanho dos dados salvos na memória 1005 pelo usuário, e a capacidade de espaço de sobreprovisionamento da memória 1005 é ajustado de modo correspondente de acordo com um parâmetro de ajuste, de modo que o dispositivo flash esteja em um estado de execução ideal. Por exemplo, o parâmetro-alvo de ajuste é um parâmetro de ajuste correspondente a um nível 4, e o espaço de sobreprovisionamento correspondente nesse caso é ajustado para 1.024 G-520 G=504 G de acordo com o parâmetro-alvo de ajuste. Em comparação com o espaço de sobreprovisionamento correspondente 64 G de um dispositivo flash cuja razão de sobreprovisionamento fixa é 7% na técnica anterior, o espaço de sobreprovisionamento é aumentado, e isso ajuda a reduzir o WA. Portanto, em comparação com o aquele da técnica anterior, o dispositivo flash nessa modalidade da presente invenção tem maior confiabilidade e maior estabilidade de desempenho.
[0049] O parâmetro-alvo de ajuste inclui um parâmetro-alvo de ajuste de coleta de lixo e um parâmetro-alvo de ajuste de nivelamento de desgaste. Depois de ajustar a capacidade de espaço de sobreprovisionamento da memória 1005, o processador 1001 realiza, de acordo com o parâmetro-alvo de ajuste de coleta de lixo, processamento de coleta de lixo nos dados armazenados no dispositivo flash, e realiza, de acordo com o parâmetro-alvo de ajuste de nivelamento de desgaste, processamento de ajuste de nivelamento de desgaste nos dados armazenados no dispositivo flash.
[0050] Deve-se observar que o espaço de sobreprovisionamento na técnica anterior é fixado e não é acessível a um usuário, mas o espaço de sobreprovisionamento nessa modalidade da presente invenção pode ser mudado dinamicamente. Um nível de sobreprovisionamento específico é correspondente ao espaço de sobreprovisionamento fixado, mas o espaço de sobreprovisionamento muda quando o nível de sobreprovisionamento é mudado para outro nível.
[0051] Nessa modalidade da presente invenção, uma instrução de operação enviada por um hospedeiro é recebida, uma operação é realizada, de acordo com a instrução de operação, em dados armazenados em um dispositivo flash, e um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário é determinado; então, um nível de sobreprovisionamento-alvo é determinado de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento, e um parâmetro-alvo de ajuste é determinado de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e, finalmente, uma capacidade de espaço de sobreprovisionamento do dispositivo flash é ajustada de acordo com o parâmetro-alvo de ajuste. Portanto, uma razão de sobreprovisionamento do dispositivo flash é ajustada dinamicamente de acordo com um volume de dados armazenados, e, além disso, a confiabilidade e estabilidade de desempenho do dispositivo flash são aprimoradas e uma vida útil do dispositivo flash é prolongada.
[0052] Em referência à Figura 5, a Figura 5 é um fluxograma esquemático de outro método de processamento de dados de acordo com uma modalidade da presente invenção. Em referência ao dispositivo flash descrito na Figura 3, a memória 1005 armazena um grupo de código de programa, e o processador 1001 invoca o código de programa armazenado na memória 1005 para realizar o método de processamento de dados. O método pode incluir a etapa S201 a seguir à etapa S210.
[0053] S201. Receber uma instrução de gravação enviada pelo hospedeiro e determinar dados a serem adicionados de acordo com a instrução de gravação.
[0054] Opcionalmente, a interface de comunicações 1003 recebe a instrução de gravação enviada pelo hospedeiro, e transmite a instrução de gravação ao processador 1001 com o uso do barramento de comunicações 1002. O processador 1001 determina os dados a serem adicionados de acordo com a instrução de gravação. Ao receber a instrução de gravação, o processador 1001 determina a possibilidade de a instrução de gravação ter sido executada. O hospedeiro e o dispositivo flash são em um sistema de armazenamento, e o hospedeiro controla a execução do dispositivo flash, e pode incluir, porém sem limitação, um dispositivo tal como um computador de mesa, um computador portátil ou um servidor. Devido ao fato de que a instrução de gravação recebido pelo processador 1001 pode ter sido executada, o processador 1001 precisa determinar a possibilidade de a instrução de gravação ter sido executada. Se a instrução de gravação não tiver sido executada, pode-se entender que o processador 1001 não adicionou dados à memória 1005 de acordo com a instrução de gravação. Se a instrução de gravação tiver sido executada, pode- se entender que o processador 1001 adicionou dados à memória 1005 de acordo com a instrução de gravação. Se a instrução de gravação for recebida novamente, um tamanho de dados armazenados na memória 1005 não muda. Nesse caso, nenhum processamento é realizado no dispositivo flash. Determinar os dados a serem adicionados inclui determinar o teor e um volume dos dados a serem adicionados.
[0055] S202. Comprimir os dados a serem adicionados.
[0056] Opcionalmente, o processador 1001 compreende os dados a serem adicionados. Alguns SSDs têm uma função de compressão, de modo que um tamanho de dados que são realmente adicionados por um usuário a um SSD seja um tamanho de dados obtidos depois que os dados adicionados são comprimidos. Portanto, os dados a serem adicionados são dados comprimidos.
[0057] Deve-se observar que a etapa S202 nessa modalidade da presente invenção é realizada quando um SSD tem uma função de compressão, e se o SSD não tiver a função de compressão, a etapa S202 não é realizada, e etapa S203 é diretamente realizada.
[0058] S203. adicionar os dados a serem adicionados a um dispositivo flash e determinar, como um tamanho de dados que são obtidos após uma operação e que são salvos no dispositivo flash por um usuário, um tamanho de dados que são obtidos depois que os dados a serem adicionados são adicionados ao dispositivo flash e que são salvos pelo usuário.
[0059] Opcionalmente, o processador 1001 adiciona os dados a serem adicionados à memória 1005, a fim de adicionar um novo tamanho de dados a um tamanho de dados anteriormente salvos na memória 1005 pelo usuário; e determina, como um tamanho de dados que são obtidos após uma operação e que são salvos na memória 1005 pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem adicionados são adicionados à memória 1005 e que são salvos pelo usuário.
[0060] S204. Receber uma instrução de exclusão enviada por um hospedeiro e determinar dados a serem excluídos de acordo com a instrução de exclusão.
[0061] Opcionalmente, o processador 1001 recebe a instrução de exclusão enviada pelo hospedeiro, e transmite a instrução de exclusão ao processador 1001 com o uso do barramento de comunicações 1002. O processador 1001 determina os dados a serem excluídos de acordo com a instrução de exclusão. Ao receber a instrução de exclusão, o processador 1001 determina a possibilidade de a instrução de exclusão ter sido executada. A instrução de exclusão é uma instrução de corte (TRIM). Um pré-requisito para implantar essa modalidade da presente invenção é que o dispositivo flash pode suportar a instrução de corte. A instrução de corte é usada por um sistema operacional para informar, depois que um arquivo é excluído ou formatação é realizada, um controlador primário de um SSD que esse bloco de dados não é mais necessário. Quando alguns arquivos são excluídos ou uma partição inteira é formatada, o sistema operacional envia, ao controlador primário do SSD (incluindo um endereço de dados inválidos), a instrução de corte junto com um endereço lógico que é atualizado durante uma operação. Desse modo, no processamento subsequente de coleta de lixo, dados inválidos podem ser removidos, de modo que uma capacidade de espaço de armazenamento de usuário e uma capacidade de espaço de sobreprovisionamento sejam aumentadas de modo correspondente, a amplificação de gravação WA seja reduzida, e o desempenho seja aprimorado. De acordo com essa modalidade da presente invenção, o hospedeiro é adicionalmente exigido para entrega o máximo possível de instruções de corte, de modo que o dispositivo flash possa ajustar de modo reverso um nível de sobreprovisionamento. Devido ao fato de que a instrução de exclusão recebida pelo processador 1001 pode ter sido executada, o processador 1001 precisa determinar a possibilidade de a instrução de exclusão ter sido executada. Se a instrução de exclusão não tiver sido executada, pode-se entender que o processador 1001 não excluiu dados do dispositivo flash de acordo com a instrução de exclusão. Se a instrução de exclusão tiver sido executada, pode-se entender que o processador 1001 excluiu, de acordo com a instrução de exclusão, dados da memória 1005. Se a instrução de exclusão for recebida novamente, um tamanho de dados armazenados na memória 1005 não muda. Nesse caso, nenhum processamento é realizado no dispositivo flash. Determinar os dados a serem excluídos inclui determinar o teor e um volume dos dados a serem excluídos, que podem ser entendidos como determinar dados que precisam ser invalidados ou um bloco de dados que precisam ser apagados.
[0062] S205. Excluir os dados a serem excluídos de um dispositivo flash e determinar, como um tamanho de dados que são obtidos após uma operação e que são salvos no dispositivo flash por um usuário, um tamanho de dados que são obtidos depois que os dados a serem excluídos são excluídos e que são salvos pelo usuário.
[0063] Opcionalmente, o processador 1001 exclui os dados a serem excluídos da memória 1005, a fim de diminuir um tamanho de dados de um tamanho de dados anteriormente salvos na memória 1005 pelo usuário. O processador 1001 determina, como um tamanho de dados que são obtidos após uma operação e que são salvos na memória 1005 pelo usuário, o tamanho dos dados que são obtidos depois que os dados a serem excluídos são excluídos e que são salvos pelo usuário.
[0064] S206. Determinar um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento.
[0065] S207. Determinar um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste.
[0066] S208. Ajustar uma capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste.
[0067] Para um processo de implantação específica da etapa S206 à etapa S208 nessa modalidade da presente invenção, consultar as descrições específicas da etapa S102 à etapa S104 na modalidade mostrada na Figura 3. Detalhes não são mais descritos no presente documento.
[0068] S209. Realizar, de acordo com um parâmetro-alvo de ajuste de coleta de lixo no parâmetro-alvo de ajuste, processamento de coleta de lixo em dados armazenados no dispositivo flash.
[0069] Opcionalmente, o processador 1001 realiza, de acordo com o parâmetro-alvo de ajuste de coleta de lixo no parâmetro-alvo de ajuste, processamento de coleta de lixo nos dados armazenados no dispositivo flash. Coleta de lixo é: Um controlador primário de um SSD combina todos os dados "válidos" naqueles blocos que incluem dados "inválidos", coloca dados combinados em um novo "bloco vazio", e exclui um bloco de dados "inválido” para aumentar uma quantidade de "blocos vazios" separados. Pode-se aprender que, por meio de coleta de lixo, não somente um volume de dados inválidos é reduzido, mas uma quantidade de blocos vazios é também diminuída, de modo que mais blocos vazios disponíveis sejam fornecidos para o usuário.
[0070] Devido ao fato de que a coleta de lixo gera uma grande quantidade de carga em um SSD, coleta de lixo pode ser classificada em coleta de lixo inativa e coleta de lixo passiva. Coleta de lixo inativa é: Um controlador primário de um SSD realiza uma coleta de lixo operação antecipadamente quando um sistema é inativo, para gerar uma quantidade específica de blocos vazios, de modo que uma coleta de lixo operação não afete obviamente a experiência de usuário, mas uma desvantagem é que amplificação de gravação extra é causada devido ao fato de que dados válidos recém obtidos por meio de coleta de lixo podem se tornar inválidos devido à atualização realizada por um usuário. A coleta de lixo passiva está presente em todos os SSDs. O desempenho de controlador primário de um SSD tem impacto decisivo na eficiência de coleta de lixo passiva devido ao fato de que o SSD nesse caso precisa realizar simultaneamente a coleta de lixo e uma operação de dados que é exigida pelo usuário. Quando o desempenho de controlador primário é fraco, o usuário encontra o desempenho do SSD se deteriora. A coleta de lixo passiva é: realizar uma coleta de lixo operação de acordo com uma instrução de corte enviada por um hospedeiro associado, a fim de disparar o SSD para gerar mais dados em uma página inválida, aliviar a pressão de coleta de lixo, e reduzir uma oportunidade de que o usuário constata que o desempenho do SSD se deteriora.
[0071] Um parâmetro de ajuste de coleta de lixo é usado para determinar quando realizar uma operação de processamento de coleta de lixo no dispositivo flash, ou seja, o parâmetro de ajuste de coleta de lixo é um parâmetro usado para iniciar a coleta de lixo. Na técnica anterior, em um caso de uma razão de sobreprovisionamento fixa, independente de um tamanho de dados armazenados em um SSD, processamento de coleta de lixo é realizado no SSD de acordo com um parâmetro de coleta de lixo parâmetro fixado, e consequentemente, o desempenho e confiabilidade do SSD são afetados. Devido ao fato de que os parâmetros de ajuste ideais são separadamente configurados para diferentes níveis de sobreprovisionamento de espaço nessa modalidade da presente invenção, o processamento de coleta apropriado de lixo pode ser realizado de acordo com um volume de dados armazenados nessa modalidade da presente invenção, a fim de otimizar o desempenho do SSD.
[0072] S210. Realizar, de acordo com um parâmetro-alvo de ajuste de nivelamento de desgaste no parâmetro-alvo de ajuste, processamento de nivelamento de desgaste em dados armazenados no dispositivo flash.
[0073] Opcionalmente, o processador 1001 realiza, de acordo com o parâmetro-alvo de ajuste de nivelamento de desgaste no parâmetro-alvo de ajuste, processamento de nivelamento de desgaste nos dados armazenados no dispositivo flash, para garantir que a quantidade de vezes pelas quais todos os blocos são gravados seja igual. Há dois tipos de algoritmos de nivelamento de desgaste: um algoritmo de nivelamento de desgaste dinâmico e um algoritmo de nivelamento de desgaste estático. Em resumo, o nivelamento de desgaste dinâmico significa o uso de um bloco de flash mais novo de cada vez em vez de usar um bloco de flash antigo, e nivelamento de desgaste estático significa mover dados antigos que não foram modificados por um longo tempo fora de um novo bloco de flash e salvar os dados antigos em um bloco de flash mais antigo, de modo que o novo bloco de flash pode ser frequentemente usado novamente. Tanto o nivelamento de desgaste estático quanto o nivelamento de desgaste estático precisam de uma granularidade inicial. Um parâmetro de ajuste de nivelamento de desgaste é um parâmetro usado para determinar quando iniciar uma operação de processamento de nivelamento de desgaste. Cada nível de sobreprovisionamento é correspondente a um diferente parâmetro de ajuste de desgaste, e um nível de sobreprovisionamento correspondente a uma maior razão de sobreprovisionamento é correspondente a uma maior granularidade inicial.
[0074] Nas modalidades da presente invenção, uma instrução de operação enviada por um hospedeiro é recebida, uma operação é realizada, de acordo com a instrução de operação, em dados armazenados em um dispositivo flash, e um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário é determinado; então, um nível de sobreprovisionamento-alvo é determinado de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento, e um parâmetro-alvo de ajuste é determinado de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste; e, finalmente, uma capacidade de espaço de sobreprovisionamento do dispositivo flash ser ajustada de acordo com o parâmetro-alvo de ajuste do dispositivo flash é ajustada de modo correspondente de acordo com o parâmetro-alvo de ajuste. Portanto, uma razão de sobreprovisionamento do dispositivo flash é ajustada dinamicamente de acordo com um volume de dados armazenados, e, além disso, a confiabilidade e estabilidade de desempenho do dispositivo flash são aprimoradas, e uma vida útil do dispositivo flash é prolongada e a pró-atividade do dispositivo flash é aprimorada.
[0075] Em seguida, um aparelho de processamento de dados de acordo com uma modalidade da presente invenção é descrito em detalhes em referência à Figura 6. Deve-se observar que o aparelho de processamento de dados mostrado na Figura 6 é configurado para realizar os métodos nas modalidades mostradas na Figura 4 e na Figura 5. Para facilidade de descrição, somente uma parte relacionada a essa modalidade da presente invenção é mostrada. Para detalhes técnicos específicos não revelados, consultar as modalidades mostradas na Figura 4 e na Figura 5 da presente invenção.
[0076] O aparelho de processamento de dados nessa modalidade da presente invenção é aplicado a um dispositivo flash no sistema de armazenamento mostrado na Figura 1. Múltiplos níveis de sobreprovisionamento são configurados para espaço de armazenamento físico do dispositivo flash de acordo com múltiplas razões de sobreprovisionamento diferentes, cada nível de sobreprovisionamento é correspondente a um intervalo de uma capacidade de espaço de armazenamento de usuário, cada intervalo da capacidade de espaço de armazenamento de usuário é correspondente a um parâmetro de ajuste diferente, a razão de sobreprovisionamento é uma razão de uma capacidade de espaço de sobreprovisionamento para a capacidade de espaço de armazenamento de usuário, e a capacidade de espaço de sobreprovisionamento é uma diferença entre uma capacidade de espaço de armazenamento físico e a capacidade de espaço de armazenamento de usuário.
[0077] Em referência à Figura 6, a Figura 6 é um diagrama esquemático estrutural de um aparelho de processamento de dados de acordo com a presente invenção. O aparelho de processamento de dados 10 pode incluir uma unidade de recebimento 101, uma unidade de determinação 102 e uma unidade de ajuste 103.
[0078] A unidade de recebimento 101 é configurada para: receber uma instrução de operação enviada por um hospedeiro, realizar, de acordo com a instrução de operação, uma operação em dados armazenados em um dispositivo flash e determinar um tamanho de dados que são obtidos após a operação e que são salvos no dispositivo flash por um usuário.
[0079] A unidade de determinação 102 é configurada para determinar um nível de sobreprovisionamento-alvo de acordo com o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário e um intervalo que é de uma capacidade de espaço de armazenamento de usuário e que é correspondente a cada nível de sobreprovisionamento.
[0080] A unidade de determinação 102 é adicionalmente configurada para determinar um parâmetro-alvo de ajuste de acordo com o nível de sobreprovisionamento-alvo e uma correspondência entre cada nível de sobreprovisionamento e um parâmetro de ajuste.
[0081] A unidade de ajuste 103 é configurada para ajustar uma capacidade de espaço de sobreprovisionamento do dispositivo flash de acordo com o parâmetro-alvo de ajuste.
[0082] Essa modalidade da presente invenção e a modalidade de método mostrada na Figura 4 são baseadas em um mesmo conceito, e produzir um mesmo efeito técnico. Para um princípio específico, referência à descrição na modalidade mostrada na Figura 4, e detalhes não são adicionalmente descritos no presente documento.
[0083] Opcionalmente, a unidade de recebimento 101 é especificamente configurada para: receber uma instrução de gravação enviada pelo hospedeiro, determinar dados a serem adicionados de acordo com a instrução de gravação, adicionar os dados a serem adicionados ao dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem adicionados são adicionados ao dispositivo flash e que são salvos pelo usuário.
[0084] A unidade de recebimento 101 é especificamente configurada para: receber uma instrução de exclusão enviada pelo hospedeiro, determinar dados a serem excluídos de acordo com a instrução de exclusão, excluir os dados a serem excluídos do dispositivo flash e determinar, como o tamanho dos dados que são obtidos após a operação e que são salvos no dispositivo flash pelo usuário, um tamanho de dados que são obtidos depois que os dados a serem excluídos são excluídos e que são salvos pelo usuário.
[0085] A unidade de recebimento 101 é adicionalmente configurada para comprimir os dados a serem adicionados e os dados a serem adicionados são dados comprimidos.
[0086] O aparelho de processamento de dados 10 inclui adicionalmente: uma unidade de processamento, configurada para realizar, de acordo com um parâmetro-alvo de ajuste de coleta de lixo no parâmetro-alvo de ajuste, processamento de coleta de lixo nos dados armazenados no dispositivo flash.
[0087] A unidade de processamento é adicionalmente configurada para realizar, de acordo com um parâmetro de ajuste de nivelamento de desgaste no parâmetro-alvo de ajuste, processamento de nivelamento de desgaste nos dados armazenados no dispositivo flash.
[0088] Essa modalidade da presente invenção e a modalidade de método mostrada na Figura 5 são baseadas em um mesmo conceito, e produzir um mesmo efeito técnico. Para um princípio específico, referência à descrição na modalidade mostrada na Figura 5, e detalhes não são adicionalmente descritos no presente documento.
[0089] Uma pessoa de habilidade comum na técnica pode entender que todos ou alguns dos processos dos métodos nas modalidades podem ser implantados por um programa de computador que instrui hardware relevante. O programa pode ser armazenado em um meio de armazenamento legível por computador. Quando o programa é executado, os processos dos métodos nas modalidades são realizados. O meio de armazenamento anterior pode incluir: um disco magnético, um disco óptico, uma memória apenas de leitura (ReadOnly Memory, ROM), ou uma memória de acesso aleatório (Random Access Memory, RAM).
[0090] As descrições anteriores são meramente exemplos de modalidades da presente invenção e certamente não se destinam a limitar o escopo de proteção da presente invenção. Portanto, variações equivalentes realizadas de acordo com as reivindicações da presente invenção devem estar dentro do escopo da presente invenção.

Claims (12)

1. Método implementado por um dispositivo flash e compreendendo: obter uma capacidade livre de um espaço livre em um espaço de armazenamento de usuário, em que o dispositivo flash inclui um espaço de armazenamento físico, em que o espaço de armazenamento físico inclui o espaço de armazenamento de usuário para armazenar dados de usuário e compreende um espaço de sobreprovisionamento, e em que o espaço livre está vazio; e CARACTERIZADO pelo fato de ajustar uma capacidade de sobreprovisionamento do espaço de sobreprovisionamento adicionando-se toda a capacidade livre do espaço livre ao espaço de sobreprovisionamento, em que o espaço de sobreprovisionamento é para nivelamento de desgaste, coleta de lixo, ou mapeamento de setor defeituoso.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma capacidade de armazenamento de usuário ajustada é uma capacidade total do espaço de armazenamento físico menos uma capacidade de sobreprovisionamento ajustada.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: ter disponível o espaço de sobreprovisionamento; e armazenar os dados de usuário após ter disponível o espaço de sobreprovisionamento.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: armazenar, antes de obter a capacidade livre, os dados de usuário no espaço de armazenamento de usuário.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma capacidade de sobreprovisionamento ajustada corresponde a um parâmetro de ajuste de coleta de lixo, e em que o parâmetro de ajuste de coleta de lixo é para realizar coleta de lixo nos dados de usuário.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma capacidade de sobreprovisionamento ajustada corresponde a um parâmetro de ajuste de nivelamento de desgaste, e em que o parâmetro de ajuste de nivelamento de desgaste é para realizar nivelamento de desgaste nos dados de usuário.
7. Dispositivo flash, CARACTERIZADO pelo fato de que compreende: uma mídia de armazenamento de acesso aleatório não volátil fornecendo um espaço de armazenamento físico, em que o espaço de armazenamento físico inclui um espaço de armazenamento de usuário para armazenar dados de usuário e compreende um espaço de sobreprovisionamento, e em que o espaço livre está vazio; e um controlador primário configurado para: obter uma capacidade livre do espaço livre; e ajustar uma capacidade de sobreprovisionamento do espaço de sobreprovisionamento adicionando-se toda a capacidade livre do espaço livre ao espaço de sobreprovisionamento, em que o espaço de sobreprovisionamento é para nivelamento de desgaste, coleta de lixo, ou mapeamento de setor defeituoso.
8. Dispositivo flash, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que uma capacidade de armazenamento de usuário ajustada é uma capacidade total do espaço de armazenamento físico menos uma capacidade de sobreprovisionamento ajustada.
9. Dispositivo flash, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o controlador primário é adicionalmente configurado para: ter disponível o espaço de sobreprovisionamento; e armazenar os dados de usuário após ter disponível o espaço de sobreprovisionamento.
10. Dispositivo flash, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que antes de obter a capacidade livre, o controlador primário é configurado adicionalmente para: controlar a mídia de armazenamento para armazenar os dados de usuário no espaço de armazenamento de usuário.
11. Dispositivo flash, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que uma capacidade de sobreprovisionamento ajustada corresponde a um parâmetro de ajuste coleta de lixo, e em que o parâmetro de ajuste de coleta de lixo é para realizar coleta de lixo nos dados de usuário.
12. Dispositivo flash, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a capacidade de sobreprovisionamento ajustada corresponde a um parâmetro de ajuste de nivelamento de desgaste, e em que o parâmetro de ajuste de nivelamento de desgaste é usado realizar nivelamento de desgaste nos dados de usuário.
BR112017027915-0A 2015-09-29 2016-09-29 Método e aparelho de processamento de dados e dispositivo flash BR112017027915B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510629175.3A CN105335100B (zh) 2015-09-29 2015-09-29 一种数据处理方法、装置及闪存设备
CN201510629175.3 2015-09-29
PCT/CN2016/100824 WO2017054756A1 (zh) 2015-09-29 2016-09-29 一种数据处理方法、装置及闪存设备

Publications (2)

Publication Number Publication Date
BR112017027915A2 BR112017027915A2 (pt) 2018-08-28
BR112017027915B1 true BR112017027915B1 (pt) 2024-02-20

Family

ID=55285681

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017027915-0A BR112017027915B1 (pt) 2015-09-29 2016-09-29 Método e aparelho de processamento de dados e dispositivo flash

Country Status (9)

Country Link
US (3) US10552315B2 (pt)
EP (2) EP3316115B1 (pt)
JP (1) JP6484763B2 (pt)
CN (3) CN105335100B (pt)
AU (1) AU2016333294B2 (pt)
BR (1) BR112017027915B1 (pt)
CA (1) CA2990969C (pt)
SG (1) SG11201710576XA (pt)
WO (1) WO2017054756A1 (pt)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335100B (zh) 2015-09-29 2018-09-21 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN105824667A (zh) * 2016-03-15 2016-08-03 深圳市硅格半导体股份有限公司 存储设备的管理方法、装置及系统
CN107885455B (zh) * 2016-09-30 2020-02-07 郑州云海信息技术有限公司 一种磁盘日志区动态调整方法
US10489064B2 (en) 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
CN106502586B (zh) * 2016-10-17 2019-10-25 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法
CN107066208B (zh) * 2017-04-19 2020-04-03 江苏大学 一种外存设备的非对称读写方法及nvm外存设备
CN109308162B (zh) * 2017-07-26 2022-04-01 北京兆易创新科技股份有限公司 闪存的优化装置、优化方法及设备
CN111966540B (zh) * 2017-09-22 2024-03-01 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
CN110554970A (zh) * 2018-05-31 2019-12-10 北京忆恒创源科技有限公司 显著降低写放大的垃圾回收方法及存储设备
CN108733320A (zh) * 2018-04-03 2018-11-02 郑州云海信息技术有限公司 一种ssd性能和容量配置方法
US11074173B1 (en) * 2018-04-26 2021-07-27 Lightbits Labs Ltd. Method and system to determine an optimal over-provisioning ratio
US11093408B1 (en) 2018-04-26 2021-08-17 Lightbits Labs Ltd. System and method for optimizing write amplification of non-volatile memory storage media
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
CN108920313A (zh) * 2018-06-21 2018-11-30 郑州云海信息技术有限公司 一种raid的测试方法、装置、设备及介质
CN108845908A (zh) * 2018-06-21 2018-11-20 郑州云海信息技术有限公司 一种ssd硬盘测试方法、装置、设备及介质
KR102620731B1 (ko) * 2018-09-27 2024-01-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN109857337B (zh) * 2018-12-10 2022-04-22 浪潮(北京)电子信息产业有限公司 一种写入速度控制方法、系统、装置及可读存储介质
CN110750211B (zh) * 2019-09-05 2021-05-04 华为技术有限公司 一种存储空间的管理方法及装置
CN110955642A (zh) * 2019-10-12 2020-04-03 平安科技(深圳)有限公司 数据采集优化方法、装置、设备及可读存储介质
US11392304B2 (en) * 2020-05-29 2022-07-19 Seagate Technology Llc Data storage device with adaptive object storage capabilities
CN111930517B (zh) * 2020-09-18 2023-07-14 北京中科立维科技有限公司 一种高性能自适应垃圾收集方法和计算机系统
CN112187817B (zh) * 2020-10-09 2023-03-31 厦门亿联网络技术股份有限公司 流媒体数据传输方法、装置、设备及存储介质
CN112527194B (zh) * 2020-12-04 2024-02-13 北京浪潮数据技术有限公司 固态硬盘写放大设定方法、系统、装置及可读存储介质
CN112558868B (zh) * 2020-12-07 2024-04-09 炬芯科技股份有限公司 一种配置数据存储的方法和装置及设备
US11385798B1 (en) 2020-12-28 2022-07-12 Lightbits Labs Ltd. Method and system for application aware, management of write operations on non-volatile storage
CN113032290B (zh) * 2021-03-19 2024-01-19 维沃移动通信有限公司 闪存配置方法、装置、电子设备和存储介质
CN113138719B (zh) * 2021-04-29 2022-11-01 山东华芯半导体有限公司 一种实现ssd快速随机写并避免写重复的方法
CN116610249A (zh) * 2022-02-09 2023-08-18 华为云计算技术有限公司 一种ssd的规格参数的调节方法及相关产品
CN114817231B (zh) * 2022-06-30 2022-09-30 深圳中科智能技术有限公司 一种冗余数据识别过滤方法及系统
CN116703651B (zh) * 2023-08-08 2023-11-14 成都秦川物联网科技股份有限公司 一种智慧燃气数据中心运行管理方法、物联网系统和介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
CN101661412B (zh) * 2008-08-29 2012-08-29 智微科技股份有限公司 快闪存储器的配置方法
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
CN102023818A (zh) * 2010-12-06 2011-04-20 成都市华为赛门铁克科技有限公司 一种存储设备容量调整方法、装置及存储设备
CN103492958B (zh) * 2011-04-25 2015-08-12 佳能株式会社 充电构件、处理盒和电子照相设备
EP2702491A4 (en) * 2011-04-26 2015-02-25 Lsi Corp VARIABLE OVERSIZING FOR NON-VOLATILE STORAGE
WO2012161933A1 (en) 2011-05-24 2012-11-29 Marvell World Trade Ltd. Method for storage devices to achieve low write amplification with low over provision
JP5265734B2 (ja) 2011-06-21 2013-08-14 大見工業株式会社 穿孔機における油供給装置
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9158695B2 (en) * 2011-08-09 2015-10-13 Seagate Technology Llc System for dynamically adaptive caching
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
US8862810B2 (en) 2012-09-27 2014-10-14 Arkologic Limited Solid state device write operation management system
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
US9542306B2 (en) 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US9804960B2 (en) * 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
US9778885B2 (en) * 2013-03-15 2017-10-03 Skyera, Llc Compressor resources for high density storage units
CN103309816A (zh) * 2013-05-31 2013-09-18 苏州亮智科技有限公司 固态硬盘、电子装置和其动态容量控制方法
CN103488575B (zh) * 2013-08-12 2017-02-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
CN104102459A (zh) * 2014-07-03 2014-10-15 优佰特电子科技(无锡)有限公司 一种闪存设备的数据处理方法及闪存设备
US10216572B2 (en) * 2014-07-22 2019-02-26 Ngd Systems, Inc. Flash channel calibration with multiple lookup tables
US10031673B2 (en) * 2014-09-26 2018-07-24 SK Hynix Inc. Techniques for selecting amounts of over-provisioning
KR102365269B1 (ko) * 2015-04-13 2022-02-22 삼성전자주식회사 데이터 스토리지 및 그것의 동작 방법
CN105335100B (zh) * 2015-09-29 2018-09-21 华为技术有限公司 一种数据处理方法、装置及闪存设备
US10592110B2 (en) * 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics

Also Published As

Publication number Publication date
EP3316115B1 (en) 2019-12-25
JP2018527688A (ja) 2018-09-20
CA2990969A1 (en) 2017-04-06
BR112017027915A2 (pt) 2018-08-28
CN105335100A (zh) 2016-02-17
CN106484331A (zh) 2017-03-08
WO2017054756A1 (zh) 2017-04-06
EP3678016B1 (en) 2023-05-03
CN106484331B (zh) 2019-04-12
US10552315B2 (en) 2020-02-04
US20220083465A1 (en) 2022-03-17
AU2016333294B2 (en) 2019-04-18
CN109358804B (zh) 2022-03-29
US11200160B2 (en) 2021-12-14
EP3316115A1 (en) 2018-05-02
US20180210828A1 (en) 2018-07-26
JP6484763B2 (ja) 2019-03-13
EP3678016A1 (en) 2020-07-08
SG11201710576XA (en) 2018-01-30
EP3316115A4 (en) 2018-07-11
AU2016333294A1 (en) 2018-01-18
CA2990969C (en) 2020-06-02
CN109358804A (zh) 2019-02-19
US11960393B2 (en) 2024-04-16
CN105335100B (zh) 2018-09-21
US20200133840A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
BR112017027915B1 (pt) Método e aparelho de processamento de dados e dispositivo flash
US11922039B2 (en) Storage device that secures a block for a stream or namespace and system having the storage device
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
JP6517684B2 (ja) メモリシステムおよび制御方法
JP6517685B2 (ja) メモリシステムおよび制御方法
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
CN111159059B (zh) 一种垃圾回收方法、装置及非易失性的存储设备
US20170199680A1 (en) System and method of write amplification factor mitigation and flash lifespan extension
JPWO2015015589A1 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US20140219041A1 (en) Storage device and data processing method thereof
JP2020046752A (ja) 記憶装置及び情報処理システム
US10831656B2 (en) System and method to improve input output command latency by dynamic size logical to physical caching
US20230205427A1 (en) Storage device including memory controller and operating method of the same
US11740792B2 (en) Techniques for data storage management
US20240134552A1 (en) Storage device that secures a block for a stream or namespace and system having the storage device
CN114981786A (zh) 高速缓存媒体管理

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 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 29/09/2016, OBSERVADAS AS CONDICOES LEGAIS