BRPI0708916A2 - descriÇço e enfileiramento de regiÕes discretas de armazenamento flash - Google Patents

descriÇço e enfileiramento de regiÕes discretas de armazenamento flash Download PDF

Info

Publication number
BRPI0708916A2
BRPI0708916A2 BRPI0708916-3A BRPI0708916A BRPI0708916A2 BR PI0708916 A2 BRPI0708916 A2 BR PI0708916A2 BR PI0708916 A BRPI0708916 A BR PI0708916A BR PI0708916 A2 BRPI0708916 A2 BR PI0708916A2
Authority
BR
Brazil
Prior art keywords
flash
data
component
media
drive
Prior art date
Application number
BRPI0708916-3A
Other languages
English (en)
Inventor
Andrew Michael Rogers
Sahin Chiman Patel
Yadhu N Gopalan
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0708916A2 publication Critical patent/BRPI0708916A2/pt
Publication of BRPI0708916A8 publication Critical patent/BRPI0708916A8/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0643Management of files
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

DESCRIÇçO E ENFILEIRAMENTO DE REGIÕES DISCRETAS DE ARMAZENAMENTO FLASH É divulgado um acionador flash que pode ser usado por sistemas de arquivos e por outras aplicações para determinar atributos e propriedades mais detalhadas, tal como geometria de região, que descrevem o componente flash básico. Isto permite que um sistema de arquivos, por exemplo, fique ciente de cada região flash e de suas propriedades. Então, o sistema de arquivos pode ser otimizado para utilizar mais eficientemente o componente fIash. Estas otimizações podem levar à maior vida útil do componente e ao melhor desempenho de leitura/gravação.

Description

"DESCRIÇÃO E ENFILEIRAMENTO DE REGIÕES DISCRETAS DEARMAZENAMENTO FLASH"
ANTECEDENTES DA INVENÇÃO
Componentes de armazenamento flash, tais como componentes de armazenamen-to flash NAND e NOR1 são freqüentemente compostos por regiões físicas discretas, cadaqual com diferentes características, ou podem ser opcionalmente configurados com elas. Ascaracterísticas incluem diferentes bloco, página e tamanhos de setor, atributos de desempe-nho de leitura / gravação / apagamento exclusivos, e as capacidades de exclusividade deleitura, de leitura / gravação ou de uma única gravação, por exemplo.
Sistemas de arquivos de software convencionais visualizam componentes flashcomo conjuntos únicos e heterogêneos de setores ou agrupamentos sem consideração àsdiferentes características de região. Não há mecanismo padrão para expor informação deregião flash que diz respeito a cada região e às suas propriedades a um sistema de arqui-vos. Isto leva a uma utilização e desempenho ineficientes dos componentes flash.
SUMÁRIO DA INVENÇÃO
Um acionador flash pode ser usado por sistemas de arquivos e por outras aplica-ções para determinar atributos e propriedades mais detalhados, tal como geometria da regi-ão, que descrevem o componente flash básico. Isto permite que um sistema de arquivos,por exemplo, fique ciente de cada região flash e de suas propriedades. Então, o sistema dearquivos pode ser otimizado para utilizar de forma mais eficiente o componente flash. Estasotimizações podem levar à maior longevidade do componente e a um melhor desempenhode leitura / gravação.
Uma API (interface de programa de aplicação) interna no acionador de mídia flashfornece propriedades flash de baixo nível a uma camada de abstração flash. Uma interfacede acionador flash, tal como um código de controle de l/O (entrada / saída), é exposta peloacionador flash e fornece propriedades flash e de acionador. Este código de controle de l/Opode ser usado pelo sistema de arquivos e por outras aplicações.
Este Sumário é fornecido para introduzir uma seleção de conceitos de uma formasimplificada que é adicionalmente descrita a seguir na Descrição Detalhada. Não pretende-se que este Sumário identifique recursos chaves ou recursos essenciais do assunto emquestão reivindicado, nem pretende-se que seja usado para limitar o escopo do assunto emquestão reivindicado.
DESCRIÇÃO RESUMIDA DOS DESENHOS
A figura 1 é um diagrama de blocos de um exemplo do sistema de enfileiramentoflash.
A figura 2 é um fluxograma de um método de exemplo de enfileiramento flash.
A figura 3 é um diagrama de um esquema de sistema de arquivos de exemplo.A figura 4 é um diagrama de blocos de um ambiente de computação de exemplo noqual modalidades e aspectos de exemplo podem ser implementados.
DESCRIÇÃO DETALHADA
Uma arquitetura de armazenamento flash, tal como uma arquitetura de múltiplosobjetos de camada de abstração flash, permite o particionamento físico de um único compo-nente flash em regiões que podem ser, cada qual, tratadas independentemente. Cada regi-ão flash é desejavelmente isolada de uma outra e pode ser gerenciada por um objeto decamada de abstração flash. O objeto de camada de abstração flash abstrai a interface aocomponente flash e fornece uma interface de acionador usada para camadas superiores dapilha, tais como um acionador de partição e um acionador de sistemas de arquivos. Além domais, a arquitetura de múltiplos objetos de camada de abstração flash suporta componentesflash com tamanho de bloco variável. Componentes com tamanho de bloco variável contêmregiões de flash que têm tamanhos de bloco diferentes de outras regiões.
Um componente de armazenamento flash pode compreender regiões físicas discre-tas, cada qual com diferentes características. As características incluem diferentes bloco,página e tamanhos de setor, atributos de desempenho de leitura / gravação / apagamentoexclusivos, e a capacidade de exclusividade de leitura, de leitura / gravação ou de uma úni-ca gravação, por exemplo. Regiões podem ter propriedades de desempenho exclusivas,bem como diferentes tamanhos de bloco. Uma interface é fornecida para que um sistema dearquivos possa usar as propriedades, bem como futuras propriedades, dos componentes dearmazenamento flash.
A figura 1 é um diagrama de blocos de um sistema de enfileiramento flash de e-xemplo. Um acionador flash 15 pode ser usado pelos sistemas de arquivos e por outras a-plicações para determinar atributos e propriedades mais detalhados, tal como geometria daregião, que descrevem o componente flash básico 10. Isto permite que um sistema de ar-quivos 40, por exemplo, fique ciente de cada região flash e de suas propriedades. Então, osistema de arquivos pode ser otimizado para utilizar mais eficientemente o componente fla-sh 10. Estas otimizações podem levar à maior longevidade do componente e a um melhordesempenho de leitura / gravação. Da forma aqui usada, um acionador flash diz respeito aum componente, tal como um componente de software, que gerencia o flash e expõe o flashàs camadas superiores (por exemplo, acionadores de partição, sistemas de arquivos, etc.).Uma interface de acionador flash pode ser uma API que é exposta pelo acionador flash àscamadas superiores.
Em relação à figura 1, um acionador flash 15, que compreende um acionador demídia flash 20 e camada de abstração flash 30, pode receber informação de propriedadebem como outras informações do hardware, tais como uma mídia ou componente de arma-zenamento flash 10 e/ou um registro de sistema 50. O registro de sistema 50 fornece propri-edades de baixo nível, recuperadas durante a configuração do acionador, ao acionador demídia flash 20 e propriedades de alto nível, recuperadas da configuração do acionador, àcamada de abstração flash 30. O acionador flash 15 pode fornecer a informação de proprie-dade a um sistema de arquivos 40, por exemplo. Propriedades de baixo nível incluem carac-terísticas físicas do flash, tais como velocidade de leitura, velocidade de gravação, tamanhode bloco, etc., por exemplo. Propriedades de alto nível podem ser impostas ou forçadas aosoftware, tais como exclusividade de leitura, leitura / gravação, regiões reservadas, grava-ção atômica, etc., por exemplo.
O componente flash 10 pode compreender um componente NAND ou NOR, por e-xemplo, e, desejavelmente, fornece propriedades de baixo nível ao acionador de mídia flash20. O acionador de mídia flash 20 pode ser específico de dispositivo e, desejavelmente, estáenvolvido no acesso físico direto ao componente flash 10.
No acionador flash 15, as propriedades de baixo nível para o componente flash 10são fornecidas à camada de abstração flash 30. A camada de abstração flash 30 é uma ca-mada acima do acionador de mídia flash 20 que trata do nivelamento de desgaste, das tran-sações de setor de gravação, do mapeamento e da tradução de setor lógico para físico, eindepende do tipo de mídia.
Uma camada de abstração flash de exemplo pode compreender um gerenciador desetor, um mapeador de setor lógico para físico e um compactador. Um gerenciador de setorpode ser responsável por gerenciar a lista de setores livres na mídia. Quando estimulado,desejavelmente, o gerenciador de setor retornará o próximo setor livre da mídia (se disponí-vel). Um mapeador de setor lógico para físico pode ser responsável por retornar o mapea-mento de setor lógico para físico. O sistema de arquivos usa setores lógicos que, então, sãomapeados para setores físicos arbitrários da mídia. Em decorrência disto, desejavelmente, acamada de abstração flash traduz os endereços de setor lógico do sistema de arquivos emendereços de setor físico correspondentes da mídia. Um compactador pode ser responsávelpor reciclar setores SUJOS em setores LIVRES. Desejavelmente, o compactador analisatodo o bloco FLASH para determinar quais setores estão SUJOS e podem ser reciclados.Todos os setores em um bloco que não estão SUJOS são remapeados para uma outra par-te da mídia.
Um acionador de mídia flash de exemplo é um componente plugável responsávelpor realizar a l/O real do dispositivo flash. Desejavelmente, acionadores de mídia flash con-têm o código específico de dispositivo usado para leitura / gravação / apagamento do dispo-sitivo de memória flash.
Mais particularmente, a propriedade e outras informações, por exemplo, do compo-nente flash 10 e/ou do registro de sistema 50 são fornecidas à camada de abstração flash30. A camada de abstração flash 30 fornece a informação (as propriedades e as faixas dohardware) ao sistema de arquivos 40. Assim, as propriedades do componente flash 10 e doacionador flash 15 são fornecidas do acionador flash 15 até o sistema de arquivos 40.
Duas interfaces são fornecidas: uma interface para a camada de abstração flash 30consultar o acionador de mídia flash 20, e uma interface para fornecer informação ao siste-ma de arquivos 40 da camada de abstração flash 30. As interfaces podem ser implementa-das usando estruturas consultadas usando códigos de controle l/O, por exemplo. O aciona-dor de mídia flash 20 fornece informação que diz respeito às características físicas do com-ponente flash 10 à camada de abstração flash 30 que, por sua vez, a fornece ao sistema dearquivos 40, onde ela pode ser usada.
Como um exemplo, o acionador flash 15 pode compreender uma API (interface deprograma de aplicação) no acionador de mídia flash 20 que fornece propriedades flash debaixo nível à camada de abstração flash 30. A interface do acionador flash pode compreen-der um código de controle de l/O (entrada / saída) que é exposto e fornece propriedadesflash e do acionador. Este código de controle de l/O pode ser usado pelo sistema de arqui-vos 40 e por outras aplicações, por exemplo.
Desejavelmente, o acionador de mídia flash 20 é específico de hardware e podeexplorar as propriedades existentes dos componentes flash 10. Alternativamente, um usuá-rio pode criar um acionador de mídia flash 20 pela adição de suporte para as funções doacionador de mídia flash ao acionador do usuário, por exemplo. A camada de abstraçãoflash 30 usa as funções e propriedades do acionador de mídia flash 20.
A figura 2 é um fluxograma de um método de exemplo de enfileirar flash. Na etapa200, um acionador de mídia flash recupera propriedades de baixo nível de um componenteflash. Na etapa 210, o acionador de mídia flash pode recuperar propriedades de baixo nívelda configuração do acionador por meio do registro de sistema. O acionador de mídia flashfornece as propriedades de baixo nível recuperadas à camada de abstração flash na etapa220. A camada de abstração flash recupera propriedades de alto nível da configuração doacionador por meio do registro de sistema na etapa 230. As propriedades, tanto de baixonível quanto de alto nível, são fornecidas ao sistema de arquivos na etapa 240.
A API do acionador de mídia flash fornece detalhes de baixo nível gerais sobre ocomponente flash. Esta API pode descrever a geometria do componente flash, bem comotodas as partes reservadas do componente. Por exemplo, há quatro níveis de informaçãopara a API que podem ser fornecidos pelo acionador de mídia flash: informação flash bási-ca, informação padrão de região flash, informação de desempenho de região flash e infor-mação padrão de reserva flash. Esta informação é obtida do próprio hardware flash. Perce-be-se que a API pode ser estendida para suportar níveis adicionais de informação à medidaque as exigências e preferências mudam.
Desejavelmente, informação flash básica inclui informação geral sobre o compo-nente flash, tais como tipo flash: NAND ou NOR1 ID do fabricante, número serial, número deregiões e número de regiões reservadas, por exemplo.
Desejavelmente1 informação padrão de região flash inclui um arranjo de estruturas,uma por região flash, cada qual descrevendo propriedades básicas da região, tais como:propriedades de região (exclusividade de leitura, uma única gravação, programação se-qüencial exigida (flash MLC)), limite de programa por página, geometria física e lógica, bytesde dados por setor, e bytes reservas por setor, por exemplo.
Desejavelmente, a informação de desempenho de região flash inclui um arranjo deestruturas, uma por região flash, cada qual descrevendo características de desempenho daregião, tais como rendimento de leitura, rendimento de gravação, tempo de apagamento,tempo de ajuste de leitura e tempo de ajuste de gravação, por exemplo.
Desejavelmente, informação padrão de reserva flash inclui um arranjo de estrutu-ras, uma por região flash reservada, cada qual descrevendo a região reservada, tais como onome da região reservada, local e tamanho da região reservada, e propriedades da regiãoreservada (exclusividade de leitura, uma única gravação), por exemplo. Desejavelmente, aregião reservada fica escondida do sistema de arquivos. Esta informação pode ou não vircom o hardware flash.
A informação fornecida pelo acionador de mídia flash pode ser reunida a partir demúltiplos locais. Por exemplo, alguma informação pode ser embutida em código no códigodo acionador de mídia flash, alguma pode ser lida a partir do registro de sistema, e algumapode ser diretamente recuperada do componente flash por meio de uma interface flash co-mum (CFI) ou de outro dispositivo. Componentes flash sem regiões discretas podem relataruma região que abrange todos os componentes flash.
Desejavelmente, a camada de abstração flash combinará sua própria informaçãocom a informação fornecida pelo acionador de mídia flash para formar um rico conjunto depropriedades flash exposto por meio de uma interface, tal como por meio de um código decontrole de l/O. Há quatro níveis de informação para esta API que podem ser fornecidospelo acionador de mídia flash: informação padrão, informação padrão de região, informaçãode desempenho de região e informação padrão de reserva. A API pode ser estendida parasuportar níveis adicionais de informação à medida que exigências e preferências mudam.Esta informação é similar à informação no acionador de mídia flash. Esta é a informaçãoque fornecedores terceiros de software flash exporão.
Desejavelmente, informação padrão inclui informação geral sobre todo o dispositivode armazenamento, tais como ID do fabricante, número serial, número de regiões e númerode regiões reservadas, por exemplo.
Desejavelmente, informação padrão de região inclui propriedades e recursos deuma região distinta em um dispositivo de armazenamento. Para dispositivos de armazena-mento sem múltiplas regiões distintas, uma única estrutura pode ser usada para descrevertodo o dispositivo. Aqui, informação inclui propriedades desta região (exclusividade de leitu-ra, gravação / leitura, uma única gravação, XIP, gravação atômica), recursos suportados poresta região (deleção de setor, limpeza segura, esvaziamento do cache), tamanho de setor ede bloco, contagem total de setor e contagem de bloco reserva, por exemplo.
Desejavelmente, informação de desempenho de região inclui capacidades de de-sempenho de uma região distinta em um dispositivo de armazenamento. Para dispositivosde armazenamento sem múltiplas regiões distintas, uma única estrutura pode ser usadapara descrever todo o dispositivo. Informação pode incluir tamanho de transferência de Ieitu-ra preferido (número de setores), tamanho de transferência de gravação preferido (númerode setores), taxa de transferência de leitura, taxa de transferência de gravação, tempo deajuste de leitura e tempo de ajuste de gravação, por exemplo.
Desejavelmente, informação padrão de reserva inclui informação sobre uma regiãoreservada do dispositivo de armazenamento que é inacessível por meio das operações deleitura e de gravação padrões, tais como o nome da região reservada, local e tamanho daregião reservada e propriedades da região reservada (exclusividade de leitura, uma únicagravação), por exemplo.
Suporte para o acionador flash não é limitado aos dispositivos flash, e pode ser su-portado por outra mídia (discos rígidos, cartões flash removíveis, etc.) em que há necessi-dade de fornecer um conjunto de rica informação que descreve propriedades do dispositivo.
Em relação à utilização do sistema de arquivos, com a rica informação fornecidapelo acionador flash, é possível que o componente flash seja mais bem utilizado por um sis-tema de arquivos em relação ao melhor desempenho e à maior longevidade do componen-te. Por exemplo, um componente flash pode ser configurado com dois tamanhos de bloco: aprimeira parte do componente é configurada menos densamente como flash SLC (setores 0até N), e o restante do flash é configurado como flash MLC mais denso (setores N+1 até M).MLC e SLC são duas categorias de flash atualmente disponíveis.
Um esquema de sistema de arquivos de exemplo é mostrado na figura 3. O es-quema do sistema de arquivos 300 compreende duas regiões: uma região 320 que contémuma tabela de alocação de arquivos 325 e uma região 340 que contém dados de arquivo ede diretório 345. A região 320 pode ter uma densidade de 32 setores por bloco, por exem-plo, e ter um alto desempenho de leitura / gravação. A região 340 pode ter uma densidadede 64 setores por bloco, por exemplo, e ter um médio desempenho de leitura / gravação.
Os blocos 0 a N na tabela de alocação de arquivo 324 são menores do que os blo-cos N+1 até M nos dados de arquivo e de diretório 345. Então, OaN têm menos dados doque N+1 a M. É mais rápido apagar (por exemplo) um bloco menor do que um bloco maior,então, é desejável colocar dados que o sistema de arquivos lê e grava freqüentemente nos7blocos menores. Isto torna o sistema mais rápido.
Uma configuração flash de exemplo como esta resulta em menores tamanhos debloco e em maior desempenho para a parte SLC do flash, tornando esta região desejávelpara dados freqüentemente acessados, tais como metadados. O sistema de arquivos podeescolher armazenar sua tabela de alocação de arquivo 325 freqüentemente acessada naparte SLC do flash, colocando dados de arquivo e de diretório 345 na parte MLC restante doflash. Este esquema de exemplo alavanca o maior desempenho do SLC para os setoresmais freqüentemente acessados e a densidade do flash MLC para armazenar mais dados.Outras otimizações, tais como armazenar os conteúdos do diretório raiz na parte SLC tam-bém podem melhorar o desempenho.
ARRANJO DE COMPUTAÇÃO EXEMPLAR
A figura 4 mostra um ambiente de computação exemplar no qual modalidades easpectos de exemplo podem ser implementados. O ambiente do sistema de computação100 é somente um exemplo de um ambiente de computação adequado e não pretende-seque sugira nenhuma limitação ao escopo do uso ou à funcionalidade. Nem deve o ambientede computação 100 ser interpretado com nenhuma dependência nem exigência relaciona-das a nenhum dos componentes ilustrados no ambiente operacional 100 exemplar, ou desuas combinações.
Inúmeros outros ambientes ou configurações do sistema de computação de uso ge-ral ou de uso especial podem ser usados. Exemplos de sistemas, ambientes e/ou configura-ções de computação bem conhecidos que podem ser adequados para uso incluem, massem limitações, computadores pessoais, computadores servidores, dispositivos de mão ouportáteis, sistemas multiprocessadores, sistemas com base em microprocessador, conver-sores de sinal de freqüência, dispositivos eletrônicos programáveis pelo cliente, PCs emrede, minicomputadores, computadores de grande porte, sistemas embutidos, ambientes decomputação distribuída que incluem qualquer um dos sistemas ou dispositivos expostos, econgêneres.
Instruções executáveis por computador, tais como módulos de programa, que sãoexecutadas por um computador, podem ser usadas. No geral, módulos de programa incluemrotinas, programas, objetos, componentes, estruturas de dados, etc. que realizam tarefasem particular ou implementam tipos de dados abstratos em particular. Ambientes de compu-tação distribuída podem ser usados onde tarefas são realizadas por dispositivos de proces-samento remotos que são ligados por meio de uma rede de comunicações ou de outra mídiade transmissão de dados. Em um ambiente de computação distribuída, módulos de progra-ma e outros dados podem ficar localizados em mídia de armazenamento no computadortanto local quanto remota, incluindo dispositivos de armazenamento em memória.
Em relação à figura 4, um sistema exemplar inclui um dispositivo de computação deuso geral na forma de um computador 110. Componentes do computador 110 podem incluir,mas sem limitações, uma unidade de processamento 120, uma memória de sistema 130 eum barramento de sistema 121 que acopla vários componentes do sistema, incluindo a me-mória do sistema, na unidade de processamento 120. A unidade de processamento 120pode representar múltiplas unidades de processamento lógicas, tais como aquelas suporta-das em um processador com múltiplas linhas de execução. O barramento do sistema 121pode ser qualquer um de diversos tipos de estruturas de barramento, incluindo um barra-mento de memória ou controlador de memória, um barramento periférico e um barramentolocal que usa qualquer uma de uma variedade de arquiteturas de barramento. A título de exemplo, e sem limitações, tais arquiteturas incluem barramento Arquitetura Padrão da In-dústria (ISA), barramento Arquitetura Micro Canal (MCA), barramento ISA Melhorado(EISA), barramento Associação dos Padrões Eletrônicos de Vídeo (VESA) local, barramentoInterconexão de Componente Periférico (PCI) (também conhecido como barramento Mez-zanine). O barramento do sistema 121 também pode ser implementado como uma conexãoponto a ponto, estrutura de comutação ou congêneres, dentre os dispositivos em comunica-ção.
Tipicamente, o computador 110 inclui uma variedade de mídias legíveis por compu-tador. Mídia legível por computador pode ser qualquer mídia disponível que pode ser aces-sada pelo computador 110 e inclui mídia tanto volátil quanto não volátil, removível e nãoremovível. A título de exemplo, e sem limitações, mídia legível por computador pode com-preender mídia de armazenamento no computador e mídia de comunicação. Mídia de arma-zenamento no computador inclui mídia tanto volátil quanto não volátil, removível e não re-movível implementada em qualquer método ou tecnologia para o armazenamento de infor-mação, tais como instruções legíveis por computador, estruturas de dados, módulos de pro-grama ou outros dados. Mídia de armazenamento no computador inclui, mas sem limita-ções, RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CDROM, dis-cos versáteis digitais (DVD) ou outro armazenamento em disco ótico, ou qualquer outra mí-dia que pode ser usada para armazenar a informação desejada e que pode ser acessadapelo computador 110. Tipicamente, mídia de comunicação incorpora instruções legíveis porcomputador, estruturas de dados, módulos de programa ou outros dados em um sinal dedados modulado, tais como uma onda portadora ou outro mecanismo de transporte, e incluiqualquer mídia de distribuição de informação. O termo "sinal de dados modulado" significaum sinal que tem uma ou mais de suas características ajustadas ou modificadas de umamaneira tal para codificar informação no sinal. A título de exemplo, e sem limitações, mídiade comunicação inclui mídia com fios, tais como uma rede com fios ou conexão direta comfios, e mídia sem fios, tais como acústica, RF, infravermelho e outras mídias sem fios. Com-binações de qualquer um dos expostos também devem ser incluídas no escopo da mídialegível por computador.
A memória de sistema 130 inclui mídia de armazenamento no computador na formade memória volátil e/ou não volátil, tais como memória exclusiva de leitura (ROM) 131 ememória de acesso aleatório (RAM) 132. Tipicamente, um sistema básico de entrada / saída(BIOS) 133, que contém as rotinas básicas que ajudam a transferir informação entre ele-mentos no computador 110, tal como durante a inicialização, fica armazenado na ROM 131.Tipicamente, a RAM 132 contém dados e/ou módulos de programa que são imediatamenteacessíveis pela unidade de processamento 120 e/ou estão sendo atualmente operados porela. A título de exemplo, e sem limitações, a figura 4 ilustra o sistema operacional 134, pro-gramas de aplicação 135, outros módulos de programa 136 e dados de programa 137.
O computador 110 também pode incluir outras mídias de armazenamento no com-putador removíveis / não removíveis, voláteis / não voláteis. A título de exemplo somente, afigura 4 ilustra uma unidade de disco rígido 140 que lê a partir da mídia magnética não re-movível e não volátil ou grava nela, uma unidade de disco magnético 151 que lê a partir dodisco magnético removível e não volátil 152 ou grava nele, e uma unidade de disco ótico155 que lê a partir de um disco ótico removível e não volátil 156, tais como um CD ROM ououtra mídia ótica, ou grava nele. Outras mídias de armazenamento no computador removí-veis / não removíveis, voláteis / não voláteis que podem ser usadas no ambiente operacionalexemplar incluem, mas sem limitações, cassetes de fita magnética, cartões de memória fla-sh, discos versáteis digitais, fita de vídeo digital, RAM em estado sólido, ROM em estadosólido e congêneres. Tipicamente, a unidade de disco rígido 141 é conectada no barramentodo sistema 121 por meio de uma interface de memória não removível, tal como a interface140, e, tipicamente, a unidade de disco magnético 151 e a unidade de disco ótico 155 sãoconectadas no barramento do sistema 121 por uma interface de memória removível, tal co-mo a interface 150.
As unidades e suas mídias de armazenamento no computador associadas expostase ilustradas na figura 4 fornecem armazenamento das instruções legíveis por computador,das estruturas de dados, dos módulos de programa e de outros dados ao computador 110.
Por exemplo, na figura 4, a unidade de disco rígido 141 é ilustrada armazenando o sistemaoperacional 144, os programas de aplicação 145, outros módulos de programa 146 e dadosde programa 147. Note que estes componentes podem ser tanto os mesmos quanto diferen-tes do sistema operacional 134, dos programas de aplicação 135, dos outros módulos deprograma 136 e dos dados de programa 137. Aqui, são dados diferentes números ao siste-ma operacional 144, aos programas de aplicação 145, aos outros módulos de programa 146e aos dados de programa 147 para ilustrar que, no mínimo, eles são cópias diferentes. Umusuário pode inserir comandos e informação no computador 20 por meio de dispositivos deentrada, tais como um teclado 162 e um dispositivo de apontamento 161, comumente referi-do como um mouse, dispositivo de apontamento com esfera superior ou plataforma sensívelao toque. Outros dispositivos de entrada (não mostrados) podem incluir um microfone, ma-nete, controlador de jogos, antena parabólica, digitalizador ou congêneres. Estes e outrosdispositivos de entrada são freqüentemente conectados na unidade de processamento 120 por meio de uma interface de entrada de usuário 160 que é acoplada no barramento do sis-tema, mas podem ser conectados por outra interface e estruturas de barramento, tais comouma porta paralela, uma porta de jogos ou um barramento serial universal (USB). Um moni-tor 191, ou outro tipo de dispositivo de exibição, também é conectado no barramento do sis-tema 121 por meio de uma interface, tal como uma interface de vídeo 190. Além do monitor,computadores também podem incluir outros dispositivos de saída periféricos, tais como alto-falantes 197 e impressora 196, que podem ser conectados por meio de uma interface perifé-rica de saída 195.
O computador 110 pode operar em um ambiente de rede usando conexões lógicasa um ou mais computadores remotos, tal como um computador remoto 180. O computadorremoto 180 pode ser um computador pessoal, um servidor, um roteador, um PC em rede,um dispositivo par ou outro nó de rede comum e, tipicamente, inclui muitos ou todos os ele-mentos supradescritos em relação ao computador 110, embora somente um dispositivo dearmazenamento em memória 181 tenha sido ilustrado na figura 4. As conexões lógicas re-presentadas na figura 4 incluem uma rede de área local (LAN) 171 e uma rede de área am- pia (WAN) 173, mas também podem inclui outras redes. Tais ambientes de rede são corri-queiros em escritórios, redes de computador empresariais, intranets e a Internet.
Quando usado em um ambiente de rede LAN, o computador 110 é conectado naLAN 171 por meio de uma interface ou adaptador de rede 170. Quando usado em um ambi-ente de rede WAN, tipicamente, o computador 110 inclui um modem 172 ou outro dispositivopara estabelecer comunicações sobre a WAN 173, tal como a Internet. O modem 172, quepode ser interno ou externo, pode ser conectado no barramento do sistema 121 por meio dainterface de entrada do usuário 160 ou de outro mecanismo apropriado. Em um ambiente derede, módulos de programa representados em relação ao computador 110, ou a partes dele,podem ser armazenados no dispositivo remoto de armazenamento em memória. A título deexemplo, e sem limitações, a figura 4 ilustra programas de aplicação 185 remotos residentesno dispositivo de memória 181. Percebe-se que as conexões de rede mostradas são exem-plares e que outros dispositivos para estabelecer uma ligação de comunicações entre oscomputadores podem ser usados.
Embora o assunto em questão tenha sido descrito em linguagem específica a re-cursos estruturais e/ou a atos metodológicos, entende-se que o assunto em questão defini-do nas reivindicações anexas não está necessariamente limitado aos recursos ou aos atosespecíficos supradescritos. Em vez disto, os recursos e atos específicos supradescritos sãodivulgados como formas de exemplo da implementação das reivindicações.

Claims (20)

1. Sistema de consulta de componente flash, CARACTERIZADO pelo fato de quecompreende:um acionador flash (15) que mantém dados relativos a um componente flash (10); eum sistema ou aplicação de arquivos (4) que recebe os dados do acionador flash(15).
2. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de queos dados compreendem informação de propriedade relacionada ao componente flash (10).
3. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que oacionador flash (15) é adaptado para receber os dados relacionados ao componente flash(10) a partir do componente flash (10).
4. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que oacionador flash (15) compreende:um acionador de mídia flash (20); euma camada de abstração flash (30) em comunicação com o acionador de mídiaflash (20).
5. Sistema, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de quecompreende adicionalmente um registro de sistema (50) que fornece propriedades de baixonível ao acionador de mídia flash (20), e propriedades de alto nível à camada de abstraçãoflash (30).
6. Sistema, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que oacionador de mídia flash (20) é adaptado para fornecer as propriedades de baixo nível àcamada de abstração flash (30).
7. Sistema, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que oacionador de mídia flash (20) é adaptado para receber os dados relacionados ao componen-te flash (10) a partir do componente flash (10).
8. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de queos dados compreendem características de uma pluralidade de regiões discretas do compo-nente flash (10).
9. Método para consultar um componente flash, CARACTERIZADO pelo fato deque compreende:receber dados relacionados às propriedades de um componente flash em um acio-nador flash (200);fornecer os dados a um arquivo ou aplicação de sistema (240).
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de queos dados recebidos relacionados ao componente flash compreendem receber dados docomponente flash (200).
11. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de quereceber dados relacionados ao componente flash compreende receber dados de um registrode sistema (210).
12. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de queo acionador flash (15) compreende um acionador de mídia flash (20), e receber dados rela-cionados ao componente flash compreende recuperar dados usando o acionador de mídiaflash (200, 210).
13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de queo acionador flash (15) compreende uma camada de abstração flash (30) em comunicaçãocom o acionador de mídia flash (20), compreendendo adicionalmente fornecer os dados re-cuperados à camada de abstração flash (220).
14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de quecompreende adicionalmente fornecer dados adicionais à camada de abstração flash a partirda configuração do acionador por meio do registro de sistema (230).
15. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de queos dados compreendem características de uma pluralidade de regiões discretas do compo-nente flash (10).
16. Acionador flash, CARACTERIZADO pelo fato de que compreende:um acionador de mídia flash (20) que mantém dados relacionados a um componente flash (10); euma camada de abstração flash (30) que recebe os dados e fornece os dados a umsistema ou aplicação de arquivos (40).
17. Acionador flash, de acordo com a reivindicação 16, CARACTERIZADO pelo fa-to de que os dados compreendem características de uma pluralidade de regiões discretasdo componente flash (10).
18. Acionador flash, de acordo com a reivindicação 16, CARACTERIZADO pelo fa-to de que o acionador de mídia flash (20) é adaptado para receber os dados do componenteflash (10).
19. Acionador flash, de acordo com a reivindicação 16, CARACTERIZADO pelo fa-to de que o acionador de mídia flash (20) é adaptado para receber propriedades de baixonível no acionador de mídia flash (20), e propriedades de alto nível na camada de abstraçãoflash (30), a partir de um registro de sistema (50).
20. Acionador flash, de acordo com a reivindicação 19, CARACTERIZADO pelo fa-to de que o acionador de mídia flash (20) é adaptado para fornecer as propriedades de bai-xo nível à camada de abstração flash (30).
BRPI0708916A 2006-03-30 2007-02-23 Descrição e enfileiramento de regiões discretas de armazenamento flash BRPI0708916A8 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/393,349 US7779426B2 (en) 2006-03-30 2006-03-30 Describing and querying discrete regions of flash storage
US11/393.349 2006-03-30
PCT/US2007/004723 WO2007120394A1 (en) 2006-03-30 2007-02-23 Describing and querying discrete regions of flash storage

Publications (2)

Publication Number Publication Date
BRPI0708916A2 true BRPI0708916A2 (pt) 2011-06-14
BRPI0708916A8 BRPI0708916A8 (pt) 2017-01-17

Family

ID=38576906

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0708916A BRPI0708916A8 (pt) 2006-03-30 2007-02-23 Descrição e enfileiramento de regiões discretas de armazenamento flash

Country Status (12)

Country Link
US (1) US7779426B2 (pt)
EP (1) EP1999592A4 (pt)
JP (1) JP5238685B2 (pt)
KR (1) KR101376937B1 (pt)
CN (1) CN101416165B (pt)
AU (1) AU2007239066B2 (pt)
BR (1) BRPI0708916A8 (pt)
CA (1) CA2643332C (pt)
IL (1) IL193446A (pt)
MX (1) MX2008011916A (pt)
RU (1) RU2433455C2 (pt)
WO (1) WO2007120394A1 (pt)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
US8166267B2 (en) 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8200904B2 (en) * 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
US8443260B2 (en) 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
TWI375953B (en) * 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
US8819563B2 (en) * 2008-04-03 2014-08-26 Dell Products L.P. Systems and methods for accessing system utilities
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
JP4683438B2 (ja) * 2008-06-13 2011-05-18 讀賣テレビ放送株式会社 データ放送システム、データ放送方法及びプログラム
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US8880835B2 (en) * 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
TWI434284B (zh) * 2009-12-03 2014-04-11 Silicon Motion Inc 主動式快閃管理之方法以及相關之記憶裝置及其控制器
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8568079B2 (en) 2012-02-15 2013-10-29 Cascade Corporation Rotator braking system for a lift truck load handler
US9703500B2 (en) 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
CN102830941B (zh) * 2012-06-15 2016-03-30 记忆科技(深圳)有限公司 固态硬盘的驱动方法及其存储系统
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
WO2016192025A1 (en) 2015-06-01 2016-12-08 SZ DJI Technology Co., Ltd. Systems and methods for memory architecture
GB2541916B (en) * 2015-09-03 2018-05-09 Gurulogic Microsystems Oy Method of operating data memory and device utilizing method
US10420928B2 (en) 2015-12-14 2019-09-24 Medtronic, Inc. Implantable medical device having a scheme for managing storage of data
US12182436B2 (en) 2022-10-12 2024-12-31 Samsung Electronics Co., Ltd. Communicating information for performing a live migration using recursive large-to-small-granularity querying
US20250278202A1 (en) * 2024-03-01 2025-09-04 Micron Technology, Inc. Edge block assignment to single level cell (slc) mode in memory devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6598169B1 (en) 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
AU7864700A (en) 1999-10-05 2001-05-10 Ejasent Inc. Ip virtualization
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
JP2003216491A (ja) * 2002-01-23 2003-07-31 Hitachi Ltd 階層キャッシュ制御方法
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US6621746B1 (en) * 2002-02-27 2003-09-16 Microsoft Corporation Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations
US20040078542A1 (en) 2002-10-14 2004-04-22 Fuller William Tracy Systems and methods for transparent expansion and management of online electronic storage
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US7321951B2 (en) * 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US7480760B2 (en) * 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface

Also Published As

Publication number Publication date
RU2008138708A (ru) 2010-04-10
KR101376937B1 (ko) 2014-03-20
AU2007239066B2 (en) 2011-07-28
JP5238685B2 (ja) 2013-07-17
CN101416165B (zh) 2012-06-27
IL193446A (en) 2014-03-31
KR20080104337A (ko) 2008-12-02
RU2433455C2 (ru) 2011-11-10
CN101416165A (zh) 2009-04-22
BRPI0708916A8 (pt) 2017-01-17
EP1999592A1 (en) 2008-12-10
MX2008011916A (es) 2008-09-29
US7779426B2 (en) 2010-08-17
AU2007239066A1 (en) 2007-10-25
EP1999592A4 (en) 2010-09-15
CA2643332C (en) 2014-09-09
IL193446A0 (en) 2009-05-04
JP2009532761A (ja) 2009-09-10
WO2007120394A1 (en) 2007-10-25
CA2643332A1 (en) 2007-10-25
US20070239927A1 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
BRPI0708916A2 (pt) descriÇço e enfileiramento de regiÕes discretas de armazenamento flash
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
US9152559B2 (en) Metadata storage associated with wear-level operation requests
US8078794B2 (en) Hybrid SSD using a combination of SLC and MLC flash memory arrays
US8429358B2 (en) Method and data storage device for processing commands
US20200089619A1 (en) Data storage device and method of deleting namespace thereof
JP2021128582A (ja) メモリシステムおよび制御方法
CN114402282A (zh) 存取存储的元数据以识别存储数据的存储器装置
CN114402306A (zh) 映射未经分类的存储器存取至经分类的存储器存取
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
US20100095083A1 (en) Selectively utilizing a plurality of disparate solid state storage locations
EP1960887A2 (en) Method for flash-memory management
US20190391756A1 (en) Data storage device and cache-diversion method thereof
KR20090037705A (ko) 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US12360696B2 (en) Communication of data relocation information by storage device to host to improve system performance
US8156278B2 (en) Non-volatile data storage system and method thereof
Park et al. New techniques for real-time FAT file system in mobile multimedia devices
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
Shen et al. One size never fits all: A flexible storage interface for SSDs
US20260023499A1 (en) Method and non-transitory computer-readable storage medium and apparatus for collecting data based on data type
Dirik Performance analysis of nand flash memory solid-state disks
WO2024060944A1 (zh) 键值存储方法及系统

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]

Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL