BR112017007040B1 - METHOD FOR USE IN A STORAGE DEVICE AND STORAGE DEVICE - Google Patents

METHOD FOR USE IN A STORAGE DEVICE AND STORAGE DEVICE Download PDF

Info

Publication number
BR112017007040B1
BR112017007040B1 BR112017007040-5A BR112017007040A BR112017007040B1 BR 112017007040 B1 BR112017007040 B1 BR 112017007040B1 BR 112017007040 A BR112017007040 A BR 112017007040A BR 112017007040 B1 BR112017007040 B1 BR 112017007040B1
Authority
BR
Brazil
Prior art keywords
command
test
memory devices
flash memory
pattern
Prior art date
Application number
BR112017007040-5A
Other languages
Portuguese (pt)
Other versions
BR112017007040A2 (en
Inventor
Laura Marie Caulfield
Mark Alan Santaniello
J. Michael Andrewartha
John J. Siegler
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/532,646 external-priority patent/US9558848B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112017007040A2 publication Critical patent/BR112017007040A2/en
Publication of BR112017007040B1 publication Critical patent/BR112017007040B1/en

Links

Abstract

TESTE DE CONSUMO DE ENERGIA DE ARMAZENAMENTO SEMICONDUTOR BASEADO EM COMANDOS DE ACESSO EXECUTADOS. A presente invenção diz respeito a métodos, sistemas e produtos de programa de computador para testar sistema de circuitos de energia de dispositivo de armazenamento (113). Um controlador do dispositivo de armazenamento (102) inclui um programa de teste incorporado (104). O controlador do dispositivo de armazenamento executa o programa de teste em resposta a receber um comando de teste. Em um aspecto, o programa de teste emite vários diferentes padrões de comando (107A, ..., 107C) para testar o sistema de circuitos de energia compartilhado (113) dos componentes do dispositivo de armazenamento (por exemplo, compartilhado por uma gama de dispositivos de memória flash do tipo NAND (108A, ..., 108C)). O programa de teste identifica um padrão de comando (107) que causa uma maior absorção de corrente total. Em outro aspecto, o programa de teste emite um padrão de comando especificado (possivelmente repetidamente) para o sistema de circuitos de energia compartilhado para determinar se o sistema de circuitos de energia compartilhado falha.SEMICONDUCTOR STORAGE POWER CONSUMPTION TEST BASED ON EXECUTED ACCESS COMMANDS. The present invention relates to methods, systems and computer program products for testing storage device (113) power circuitry systems. A storage device controller (102) includes a built-in test program (104). The storage device controller runs the test program in response to receiving a test command. In one aspect, the test program issues several different command patterns (107A, ..., 107C) to test the shared power circuitry system (113) of the storage device components (e.g., shared by a range of NAND-type flash memory devices (108A, ..., 108C)). The test program identifies a command pattern (107) that causes greater total current draw. In another aspect, the test program issues a specified command pattern (possibly repeatedly) to the shared power circuit to determine whether the shared power circuit fails.

Description

ANTECEDENTESBACKGROUND 1. Antecedentes e Técnica Relevante1. Background and Relevant Technique

[001] Os fabricantes de Unidade de Estado Sólido (SSD) frequentemente projetam circuitos de energia baseados nas especificações de corrente máxima nas especificações NAND. Uma especificação NAND pode incluir a corrente eficaz (RMS) máxima para um NAND. Entretanto, as especificações NAND tipicamente incluem pouca, se existir, informação adicional sobre as características de energia de um NAND.[001] Solid State Drive (SSD) manufacturers often design power circuits based on the maximum current specifications in the NAND specifications. A NAND specification can include the maximum effective current (RMS) for a NAND. However, NAND specifications typically include little, if any, additional information about the power characteristics of a NAND.

[002] Durante a operação, a verdadeira absorção de corrente de chips NAND frequentemente exibe picos se aproximando de 3x a corrente RMS (e pode potencialmente ser ainda maior). Por exemplo, os picos de corrente através de várias matrizes em um arranjo SSD NAND podem ocorrer simultaneamente. Os picos de corrente simultâneos podem interromper o sistema de circuitos de energia da SSD causando que a SSD falhe. Baseado somente na informação em uma especificação NAND, um projetista de circuito pode ficar alheio à potencial magnitude de picos de corrente.[002] During operation, the true current absorption of NAND chips often exhibit spikes approaching 3x the RMS current (and could potentially be even greater). For example, current spikes through multiple arrays in an SSD NAND array can occur simultaneously. Simultaneous current spikes can interrupt the SSD's power circuitry system causing the SSD to fail. Based solely on the information in a NAND specification, a circuit designer may be unaware of the potential magnitude of current spikes.

[003] Técnicas padrão de teste podem ser utilizadas para obter algumas informações adicionais de características de energia para um NAND. Entretanto, as técnicas padrão de teste raramente capturam as condições de energia prejudiciais causadas pelos picos de energia simultâneos devido às cargas de trabalhos geradas pelo hospedeiro tipicamente não especificamente exercitam várias (ou todas) as matrizes NAND ao mesmo tempo.[003] Standard test techniques can be used to obtain some additional energy characteristic information for a NAND. However, standard testing techniques rarely capture the harmful power conditions caused by simultaneous power spikes due to host-generated workloads typically not specifically exercising multiple (or all) NAND arrays at the same time.

BREVE SUMÁRIOBRIEF SUMMARY

[004] A presente invenção se estende para métodos, sistemas e produtos de programa de computador para testar o sistema de circuitos de energia de dispositivo de armazenamento. Um controlador de dispositivo de armazenamento inclui o firmware do controlador e o armazenamento do controlador. Um programa de teste é incorporado no controlador de dispositivo de armazenamento. Em um aspecto, o controlador do dispositivo de armazenamento recebe um comando para iniciar um teste de energia. O controlador do dispositivo de armazenamento executa o programa de teste em reposta a receber o comando. O programa de teste acessa uma matriz de testes. A matriz de testes inclui vários padrões de comando de componente de dispositivo de armazenamento (por exemplo, padrões de comando NAND).[004] The present invention extends to methods, systems and computer program products for testing storage device power circuitry system. A storage device controller includes controller firmware and controller storage. A test program is built into the storage device driver. In one aspect, the storage device controller receives a command to initiate a power test. The storage device controller runs the test program in response to receiving the command. The test program accesses an array of tests. The test matrix includes several storage device component command patterns (for example, NAND command patterns).

[005] O programa de teste utiliza a matriz de testes para testar as capacidades de energia do sistema de circuitos de energia compartilhado por vários dos componentes do dispositivo de armazenamento (por exemplo, compartilhado por um arranjo de dispositivos de memória flash NAND). Cada padrão de comando nos vários padrões de comando é emitido a partir do controlador para os vários componentes do dispositivo de armazenamento. O padrão de comando que causa a maior absorção de corrente total no sistema de circuitos de energia compartilhado é identificado.[005] The test program uses the test matrix to test the power capabilities of the power circuitry system shared by several of the storage device components (eg, shared by an array of NAND flash memory devices). Each command pattern in the various command patterns is issued from the controller to the various storage device components. The command pattern that causes the greatest total current absorption in the shared power circuit system is identified.

[006] Em outro aspecto, um controlador de dispositivo de armazenamento recebe um comando para iniciar um padrão especificado de comando de componente do dispositivo de armazenamento (por exemplo, um padrão de comando NAND especificado). Um programa de teste acessa o padrão de comando do componente do dispositivo de armazenamento especificado em resposta a receber o comando. O programa de teste testa as características de energia de um ou mais componentes do dispositivo de armazenamento por emitir o padrão de comando do comando do dispositivo de armazenamento especificado a partir do controlador do dispositivo de armazenamento para o um ou mais componentes do dispositivo de armazenamento. Pode ser que o padrão de comando do componente do dispositivo de armazenamento especificado seja emitido várias vezes.[006] In another aspect, a storage device controller receives a command to initiate a specified storage device component command pattern (for example, a specified NAND command pattern). A test program accesses the command pattern of the specified storage device component in response to receiving the command. The test program tests the power characteristics of one or more storage device components by issuing the specified storage device command command pattern from the storage device controller to the one or more storage device components. The specified storage device component command pattern may be issued multiple times.

[007] Este sumário é proporcionado para introduzir uma seleção de conceitos de uma forma simplificada, os quais são adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindicado, nem é pretendido para ser utilizado como um auxílio ao determinar o escopo do assunto reivindicado.[007] This summary is provided to introduce a selection of concepts in a simplified form, which are further described below in the Detailed Description. This Summary is not intended to identify key aspects or essential aspects of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[008] Aspectos e vantagens adicionais da invenção serão expostos na descrição a seguir, e em parte serão óbvios a partir da descrição, ou podem ser aprendidos pela prática da invenção. Os aspectos e vantagens da invenção podem ser realizados e obtidos por meio dos instrumentos e combinações particularmente salientados nas concretizações. Estes e outros aspectos da presente invenção irão se tornar mais totalmente aparente a partir da descrição seguinte e das concretizações, ou podem ser aprendidos pela prática da invenção como exposta daqui para frente.[008] Additional aspects and advantages of the invention will be set forth in the description that follows, and in part will be obvious from the description, or may be learned by practice of the invention. Aspects and advantages of the invention can be realized and obtained by means of the instruments and combinations particularly pointed out in the embodiments. These and other aspects of the present invention will become more fully apparent from the following description and embodiments, or may be learned by practice of the invention as set forth hereinafter.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[009] De modo a descrever a maneira na qual as vantagens e aspectos citados acima e outros aspectos e vantagens da invenção podem ser obtidos, uma descrição mais particular da invenção resumidamente descrita acima será produzida por referência às implementações específicas da mesma, as quais são ilustradas nos desenhos anexos. Entendendo que estes desenhos representam somente implementações da invenção e, portanto, não são para ser considerados como sendo limitativos de seu escopo, a invenção será descrita e explicada com especificidade e detalhes adicionais através do uso dos desenhos acompanhantes, nos quais:[009] In order to describe the manner in which the advantages and aspects cited above and other aspects and advantages of the invention can be obtained, a more particular description of the invention briefly described above will be produced by reference to the specific implementations thereof, which are illustrated in the attached drawings. Understanding that these drawings only represent implementations of the invention and, therefore, are not to be considered as limiting its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:

[0010] A Figura 1 ilustra uma arquitetura de computador ilustrativa que facilita testar o sistema de circuitos de energia do dispositivo de armazenamento.[0010] Figure 1 illustrates an illustrative computer architecture that facilitates testing of the storage device power circuitry system.

[0011] A Figura 2 ilustra um fluxograma de um método ilustrativo para testar o sistema de circuitos de energia do dispositivo de armazenamento.[0011] Figure 2 illustrates a flowchart of an illustrative method for testing the storage device power circuitry system.

[0012] A Figura 3 ilustra um fluxograma de um método ilustrativo para testar o sistema de circuitos de energia do dispositivo de armazenamento.[0012] Figure 3 illustrates a flowchart of an illustrative method for testing the storage device power circuitry system.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0013] A presente invenção se estende para métodos, sistemas e produtos de programa de computador para testar sistema de circuitos de dispositivo de armazenamento. Em um aspecto, um controlador do dispositivo de armazenamento inclui firmware do controlador e armazenamento do controlador. Um programa de teste é incorporado no controlador do dispositivo de armazenamento. O controlador do dispositivo de armazenamento recebe um comando para iniciar um teste de energia. O controlador do dispositivo de armazenamento executa o programa de teste em resposta a receber o comando. O programa de teste acessa uma matriz de testes. A matriz de testes inclui vários padrões de comando de componente do dispositivo de armazenamento (por exemplo, padrões de comando NAND).[0013] The present invention extends to methods, systems and computer program products for testing storage device circuitry system. In one aspect, a storage device controller includes controller firmware and controller storage. A test program is built into the storage device driver. The storage device controller receives a command to initiate a power test. The storage device controller runs the test program in response to receiving the command. The test program accesses an array of tests. The test matrix includes several storage device component command patterns (for example, NAND command patterns).

[0014] O programa de teste utiliza a matriz de testes para testar as capacidades de energia do sistema de circuitos de energia compartilhado, compartilhado pelos vários componentes do dispositivo de armazenamento (por exemplo, compartilhado por um arranjo de dispositivos de memória flash NAND). Cada padrão de comando nos vários padrões de comando é emitido a partir do controlador para os vários componentes do dispositivo de armazenamento. O padrão de teste causa que a maior absorção de corrente no sistema de circuitos de energia compartilhado seja identificada.[0014] The test program uses the test matrix to test the power capabilities of the shared power circuitry system, shared by the various components of the storage device (eg, shared by an array of NAND flash memory devices). Each command pattern in the various command patterns is issued from the controller to the various storage device components. The test pattern causes the highest current draw in the shared power circuit system to be identified.

[0015] Em outro aspecto, um controlador do dispositivo de armazenamento recebe um comando para iniciar um padrão específico de comando de componente do dispositivo de armazenamento (por exemplo, um padrão de comando NAND especificado). Um programa de teste acessa o padrão de comando de componente do dispositivo de armazenamento especificado em resposta a receber o comando. O programa de teste testa as características de energia do um ou mais componentes do dispositivo de armazenamento por emitir o padrão especificado de comando do componente do dispositivo de armazenamento a partir do controlador de dispositivo de armazenamento para o um ou mais componentes do dispositivo de armazenamento. Pode ser que o padrão especificado de comando de componente do dispositivo de armazenamento seja emitido várias vezes.[0015] In another aspect, a storage device controller receives a command to initiate a specific storage device component command pattern (eg, a specified NAND command pattern). A test program accesses the specified storage device component command pattern in response to receiving the command. The test program tests the power characteristics of the one or more storage device components by issuing the specified storage device component command pattern from the storage device controller to the one or more storage device components. The specified storage device component command pattern may be issued multiple times.

[0016] Implementações da presente invenção podem compreender ou utilizar um computador de propósito especial ou de propósito geral incluindo hardware de computador, tal como, por exemplo, um ou mais processadores e memória do sistema, como discutido abaixo em maiores detalhes. Implementações dentro do escopo da presente invenção também incluem meio físico e outros meios legíveis por computador para transportar ou armazenar instruções e/ou estruturas de dados executáveis por computado. Tais meios legíveis por computador podem ser qualquer meio disponível que possa ser acessado por um sistema de computador de propósito geral ou de propósito especial. Meios legíveis por computador que armazenam instruções executáveis por computador são meios (dispositivos) de armazenamento do computador. Meios legíveis por computador que transportam instruções executáveis por computador são meios de transmissão. Assim, a título de exemplo e não de limitação, implementações da invenção podem compreender pelo menos dois tipos distintamente diferentes de meios legíveis por computador: meios (dispositivos) de armazenamento do computador e meios de transmissão.[0016] Implementations of the present invention may comprise or utilize a special purpose or general purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in more detail below. Implementations within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media may be any available medium that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media (devices). Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example and not limitation, implementations of the invention may comprise at least two distinctly different types of computer readable media: computer storage media (devices) and transmission media.

[0017] O meio (dispositivo) de armazenamento do computador inclui RAM, ROM, EEPROM, CD-ROM, unidades de estado sólido ("SSDs"), memória Flash, memória com mudança de fase ("PCM"), outros tipos de memória, outros armazenamento em disco ótico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser utilizado para armazenar meios de código de programa desejados na forma de instruções ou de estruturas de dados executáveis por computador e que possam ser acessados por um computador de propósito geral ou de propósito especial.[0017] The computer's storage medium (device) includes RAM, ROM, EEPROM, CD-ROM, solid state drives ("SSDs"), Flash memory, phase shift memory ("PCM"), other types of memory, other optical disk storage, magnetic disk storage, or other magnetic storage devices, or any other medium that may be used to store desired program code media in the form of instructions or computer-executable data structures that can be be accessed by a general-purpose or special-purpose computer.

[0018] Uma "rede" é definida como uma ou mais ligações de dados que permitem o transporte de dados eletrônicos entre sistemas de computador e/ou módulos e/ou outros dispositivos eletrônicos. Quando informação é transferida ou proporcionada através de uma rede ou de outra conexão de comunicações (seja com ligação física, sem uso de fios, ou uma combinação de ligação física ou sem uso de fios) para um computador, o computador apropriadamente vê a conexão como um meio de transmissão. O meio de transmissão pode incluir uma rede e/ou ligações de dados que podem ser utilizadas para transportar os meios de código de programa desejados na forma de instruções ou de estruturas de dados executáveis por computador e que possa ser acessado por um computador de propósito geral ou de propósito especial. Combinações do dito acima também devem estar incluídas dentro do escopo de meio legível por computador.[0018] A "network" is defined as one or more data links that allow the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or other communications connection (whether hardwired, wireless, or a combination of hardwired and wireless) to a computer, the computer appropriately views the connection as a transmission medium. The transmission medium may include a network and/or data links that may be used to transport the desired program code means in the form of instructions or computer-executable data structures accessible by a general-purpose computer. or special purpose. Combinations of the above shall also be included within the scope of a machine-readable medium.

[0019] Adicionalmente, ao alcançar vários componentes do sistema de computador, o meio de código de programa na forma de instruções ou de estruturas de dados legíveis por computador pode ser transferido automaticamente a partir do meio de transmissão para o meio (dispositivo) de armazenamento do computador (ou vice-versa). Por exemplo, instruções ou estruturas de dados executáveis por computador recebidas através de uma rede ou ligação de dados podem ser colocadas em memória temporária na RAM dentro de um módulo de interface de rede (por exemplo, um "NIC"), e então, eventualmente transferidas para a RAM do sistema de computador e/ou para meios (dispositivos) de armazenamento do computador menos voláteis em um sistema de computador. Assim, deve ser entendido que os meios (dispositivos) de armazenamento do computador podem estar incluídos em componentes do sistema de computador que também (ou mesmo principalmente) utilizam meio de transmissão.[0019] Additionally, by reaching various components of the computer system, the program code medium in the form of instructions or computer-readable data structures can be transferred automatically from the transmission medium to the storage medium (device) computer (or vice versa). For example, computer-executable instructions or data structures received over a network or data connection may be buffered in RAM within a network interface module (e.g., a "NIC"), and then eventually transferred to computer system RAM and/or to less volatile computer storage media (devices) within a computer system. Thus, it should be understood that computer storage media (devices) may be included in components of the computer system that also (or even primarily) use transmission media.

[0020] Instruções executáveis por computador compreendem, por exemplo, instruções e dados que, quando executados em um processador, causam que um computador de propósito geral, computador de propósito especial, ou dispositivo de processamento de propósito especial execute alguma função ou grupo de funções. As instruções executáveis por computador podem ser, por exemplo, binários, instruções em formato intermediário tal como linguagem Assembly, ou mesmo código fonte. Apesar de o assunto ter sido descrito em linguagem específica para aspectos estruturais e/ou atos metodológicos, é para ser entendido que o assunto definido nas concretizações não está necessariamente limitado aos aspectos ou atos descritos acima. Ao invés disso, os aspectos e atos descritos são revelados como formas ilustrativas para implementar as concretizações.[0020] Computer-executable instructions comprise, for example, instructions and data that, when executed on a processor, cause a general-purpose computer, special-purpose computer, or special-purpose processing device to perform some function or group of functions . Computer-executable instructions can be, for example, binary, instructions in an intermediate format such as assembly language, or even source code. Although the subject has been described in language specific to structural aspects and/or methodological acts, it is to be understood that the subject defined in the embodiments is not necessarily limited to the aspects or acts described above. Rather, the described aspects and acts are revealed as illustrative ways to implement the embodiments.

[0021] Os versados na técnica irão apreciar que a invenção pode ser praticada em ambiente de computação em rede com vários tipos de configurações de sistema de computador, incluindo computadores pessoais, computadores de mesa, computadores laptop, processadores de mensagem, dispositivos portáteis, dispositivos vestíveis, sistemas multiprocessador, eletroeletrônicos programáveis ou baseados em microprocessador, PCs de rede, minicomputadores, computadores de grande porte, telefones celulares, PDAs, tablets, pagers, relógios, roteadores, comutadores, dentre outros. A invenção também pode ser praticada em ambiente de sistema distribuído onde sistemas de computador, locais e remotos, que estão ligados (seja por ligações de dados físicas, ligações de dados sem uso de fios, ou por uma combinação de ligações de dados físicas e sem uso de fios) através de uma rede, ambos executam tarefas. Em um ambiente de sistema distribuído, os módulos de programa podem estar localizados tanto nos dispositivos de armazenamento locais como nos remotos.[0021] Those skilled in the art will appreciate that the invention can be practiced in a networked computing environment with various types of computer system configurations, including personal computers, desktop computers, laptop computers, message processors, handheld devices, devices wearables, multiprocessor systems, programmable or microprocessor-based electronics, network PCs, minicomputers, mainframes, cell phones, PDAs, tablets, pagers, clocks, routers, switches, among others. The invention may also be practiced in a distributed system environment where computer systems, local and remote, that are connected (either by physical data links, wireless data links, or by a combination of physical and wireless data links use of wires) over a network, both perform tasks. In a distributed system environment, program modules can be located on both local and remote storage devices.

[0022] A invenção também pode ser implementada em ambientes de computação em nuvem. Nesta descrição e nas concretizações, "computação em nuvem" é definida como um modelo para permitir acesso à rede sob demanda para um conjunto compartilhado de recursos de computação configuráveis. Por exemplo, a computação em nuvem pode ser empregada no mercado para oferecer acesso sob demanda generalizado e conveniente para o conjunto compartilhado de recursos de computação configuráveis. O conjunto compartilhado de recursos de computação configuráveis pode ser rapidamente aprovisionado via virtualização e distribuído com baixo esforço de gerenciamento ou interação com o provedor de serviço, e então por consequência dimensionado.[0022] The invention can also be implemented in cloud computing environments. In this description and in the embodiments, "cloud computing" is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing can be deployed in the marketplace to provide widespread and convenient on-demand access to a shared pool of configurable computing resources. The shared pool of configurable computing resources can be rapidly provisioned via virtualization and distributed with little management effort or service provider interaction, and then scales accordingly.

[0023] Um modelo de computação em nuvem pode ser composto de várias características tais como, por exemplo, auto-serviço sob demanda, acesso amplo à rede, reunião de recursos, elasticidade rápida, serviço medido, dentre outras. Um modelo de computação em nuvem também pode expor vários modelos de serviço, tais como, por exemplo, Software como um Serviço ("SaaS"), Plataforma como um Serviço ("PaaS"), e Infra-Estrutura como um Serviço ("IaaS"). Um modelo de computação em nuvem também pode ser implementado utilizando modelos diferentes de implementação tais como nuvem privada, nuvem de comunidade, nuvem pública, nuvem híbrida, dentre outros. Nesta descrição e nas concretizações, um "ambiente de computação em nuvem" é um ambiente no qual a computação em nuvem é empregada.[0023] A cloud computing model can be composed of several characteristics such as, for example, self-service on demand, broad network access, pooling resources, fast elasticity, measured service, among others. A cloud computing model can also expose various service models, such as, for example, Software as a Service ("SaaS"), Platform as a Service ("PaaS"), and Infrastructure as a Service ("IaaS") "). A cloud computing model can also be implemented using different implementation models such as private cloud, community cloud, public cloud, hybrid cloud, among others. In this description and the embodiments, a "cloud computing environment" is an environment in which cloud computing is employed.

[0024] Neste relatório descritivo e nas concretizações, "memória flash" é definida como um meio eletrônico de armazenamento do computado não volátil que pode ser eletricamente apagado e reprogramado.[0024] In this specification and in the embodiments, "flash memory" is defined as a non-volatile electronic computer storage medium that can be electrically erased and reprogrammed.

[0025] Neste relatório descritivo e nas concretizações, "memória flash NOR" é definida como memória flash onde características internas de células de memória flash individuais exibem características similares a estas de uma porta NOR.[0025] In this specification and in the embodiments, "NOR flash memory" is defined as flash memory where internal characteristics of individual flash memory cells exhibit characteristics similar to those of a NOR gate.

[0026] Neste relatório descritivo e nas concretizações, "memória flash NAND" é definida como memória flash onde características internas de células de memória flash individuais exibem características similares a estas de uma porta NAND.[0026] In this specification and in the embodiments, "NAND flash memory" is defined as flash memory where internal characteristics of individual flash memory cells exhibit characteristics similar to those of a NAND gate.

[0027] Neste relatório descritivo e nas concretizações, uma "unidade de estado sólido" é definida como um dispositivo de armazenamento de dados utilizando montagens de circuito integrado para armazenar dados de forma persistente. As montagens de circuito integrado de uma unidade de estado sólido (SSD) podem incluir dispositivos de memória flash NAND ou NOR, os quais são utilizados para armazenar dados.[0027] In this specification and in the embodiments, a "solid state drive" is defined as a data storage device utilizing integrated circuit assemblies to persistently store data. The integrated circuit assemblies of a solid state drive (SSD) can include NAND or NOR flash memory devices, which are used to store data.

[0028] Neste relatório descritivo e nas concretizações, uma "unidade flash de Barramento Serial Universal (USB)" é definida como um dispositivo de armazenamento de dados utilizando dispositivos de memória flash NAND com uma interface USB integrada.[0028] In this specification and in the embodiments, a "Universal Serial Bus (USB) flash drive" is defined as a data storage device using NAND flash memory devices with an integrated USB interface.

[0029] A Figura 1 ilustra uma arquitetura de computador ilustrativa 100 que facilita testar sistema de circuitos de energia de dispositivo de armazenamento. Referindo-se à Figura 1, a arquitetura de computador 100 inclui a unidade de estado sólido (SSD) 101 e o sistema de computador 112. Cada um dentre a SSD 101 e o sistema de computador 112 pode ser conectado um com o outro através (ou ser parte de) uma rede, tal como, por exemplo, um barramento de sistema, uma Rede de Área Local ("LAN"), uma Rede de Longa Distância ("WAN"), e mesmo a Internet. Por consequência, cada um dentre a SSD 101 e o sistema de computador 112, bem como quaisquer outros sistemas de computador conectados e seus componentes, pode criar dados relacionados com mensagem e trocar os dados relacionados com mensagem (por exemplo, mensagens do barramento do sistema, datagramas de Protocolo Internet ("IP") e outros protocolos de camada mais elevada que utilizam datagramas IP, tais como, o Protocolo de Controle de Transmissão ("TCP"), Protocolo de Transferência de Hipertexto ("HTTP"), Protocolo Simples de Transferência de Correspondência ("SMTP"), etc., outros protocolos que não sejam datagramas, etc.) através da rede.[0029] Figure 1 illustrates an illustrative computer architecture 100 that facilitates testing of storage device power circuitry. Referring to Figure 1, computer architecture 100 includes solid state drive (SSD) 101 and computer system 112. Each of SSD 101 and computer system 112 can be connected to each other via ( or be part of) a network, such as, for example, a system bus, a Local Area Network ("LAN"), a Wide Area Network ("WAN"), and even the Internet. Accordingly, each of the SSD 101 and the computer system 112, as well as any other connected computer systems and components thereof, can create message-related data and exchange the message-related data (e.g., system bus messages , Internet Protocol ("IP") datagrams, and other higher layer protocols that use IP datagrams, such as Transmission Control Protocol ("TCP"), Hypertext Transfer Protocol ("HTTP"), Simplex Protocol Transfer Protocol ("SMTP"), etc., protocols other than datagrams, etc.) over the network.

[0030] Como representado, a unidade de estado sólido (SSD) 101 adicionalmente inclui o controlador 102, o arranjo NAND 108, e o sistema de circuitos de energia compartilhado 113. O controlador 102 inclui firmware 103 e o armazenamento 106. O arranjo NAND 108 inclui vários dispositivos de memória flash NAND, incluindo os dispositivos NAND 108A, 108B, 108C, etc. Os dispositivos NAND 108A, 108B, 108C, etc. podem ser utilizados para persistentemente armazenar dados na SSD 101. Cada um dos dispositivos NAND 108A, 108B, 108C, etc. recebe energia a partir do sistema de circuitos de energia compartilhado 113.[0030] As depicted, solid state drive (SSD) 101 additionally includes controller 102, NAND array 108, and shared power circuitry 113. Controller 102 includes firmware 103 and storage 106. NAND array 108 includes various NAND flash memory devices, including NAND devices 108A, 108B, 108C, etc. NAND devices 108A, 108B, 108C, etc. can be used to persistently store data on the SSD 101. Each of the NAND devices 108A, 108B, 108C, etc. receives power from the shared power circuit system 113.

[0031] O controlador 102 pode ser um processador que executa código em nível de firmware para executar várias funções, tais como, por exemplo, correções de erro, equalização de desgaste, mapeamento de bloco ruim, depuração de leitura, colocação de leitura e gravação em memória cache, coleta de lixo, etc.[0031] Controller 102 may be a processor that executes firmware-level code to perform various functions, such as, for example, error corrections, wear equalization, bad block mapping, read debugging, read-write placement caching, garbage collection, etc.

[0032] A SSD 101 também inclui as entradas 121, 122, 123 e 124.[0032] SSD 101 also includes entries 121, 122, 123 and 124.

[0033] Em geral, outros dispositivos podem submeter cargas de trabalho para a SSD 101 através da entrada 121. Por exemplo, o sistema de computador 112 pode submeter carga de trabalho 110 para a SSD 101 através da entrada 121. Uma carga de trabalho pode indicar que dados (por exemplo, um arquivo) é para ser armazenado, movido, copiado, lido, apagado, sobrescrito, etc., dentro do arranjo NAND 108. O controlador 102 pode traduzir uma carga de trabalho para os comandos NAND correspondentes. Por exemplo, o controlador 102 pode traduzir a carga de trabalho 110 para um ou mais comandos NAND. O controlador 102 pode enviar os comandos NAND para o arranjo NAND 108 para implementar a pretensão expressa na carga de trabalho 119. Os comandos NAND para implementar a carga de trabalho podem inclui leitura, gravação e deleção, bem como quaisquer outros comandos que transferem dados entre um controlador e um arranjo NAND.[0033] In general, other devices may submit workloads to SSD 101 via input 121. For example, computer system 112 may submit workload 110 to SSD 101 via input 121. A workload may indicate what data (eg, a file) is to be stored, moved, copied, read, deleted, overwritten, etc., within NAND array 108. Controller 102 may translate a workload into corresponding NAND commands. For example, controller 102 may translate workload 110 into one or more NAND commands. Controller 102 may send NAND commands to NAND array 108 to implement the claim expressed in workload 119. NAND commands to implement workload may include read, write, and delete, as well as any other commands that transfer data between a controller and a NAND array.

[0034] O firmware 103 inclui o programa de teste 104. O programa de teste 104 pode ser executado para testar as características de energia do arranjo NAND 108 ou de um ou mais dos dispositivos NAND incluídos no mesmo. Em um aspecto, o programa de teste 104 inclui código executável para gerar uma matriz de texto durante a execução. Em outro aspecto, o programa de teste 104 se refere a uma matriz de testes no armazenamento 106, tal como, por exemplo, a matriz de testes 107.[0034] The firmware 103 includes the test program 104. The test program 104 can be executed to test the power characteristics of the NAND array 108 or one or more of the NAND devices included therein. In one aspect, test program 104 includes executable code for generating a text array at runtime. In another aspect, test program 104 refers to an array of tests in storage 106, such as, for example, test array 107.

[0035] A matriz de testes pode conter vários padrões de comando diferentes que podem ser emitidos para o arranjo NAND 108 ou para um ou mais dos dispositivos NAND incluídos no mesmo. Cada padrão de comando diferente pode incluir uma combinação diferente de comandos NAND (por exemplo, gravação, leitura, deleção, etc.) a ser emitida em uma sequência especificada e/ou com um tempo especificado para o arranjo NAND 108 ou para um ou mais dispositivos NAND incluídos no mesmo. O arranjo NAND 108 pode receber um padrão de comando e implementar o padrão de comando através de um ou mais (e potencialmente através de todos) dispositivos NAND.[0035] The test matrix can contain several different command patterns that can be issued to the NAND array 108 or to one or more of the NAND devices included therein. Each different command pattern may include a different combination of NAND commands (e.g., write, read, delete, etc.) to be issued in a specified sequence and/or with a specified time to the NAND array 108 or to one or more NAND devices included therein. NAND array 108 can receive a command pattern and implement the command pattern across one or more (and potentially across all) NAND devices.

[0036] Em um aspecto, de diferentes padrões de comando em uma matriz de testes, pelo menos um padrão de comando causa uma maior absorção de corrente no arranjo NAND 108, e/ou no sistema de circuitos de energia compartilhado 113 em relação a outros padrões de comando na matriz de testes. O padrão de comando causando uma maior absorção de corrente pode ser identificado e possivelmente armazenado separadamente no armazenamento 106. Em outro aspecto, durante a emissão de padrões de comando, um padrão de comando causa absorção de corrente suficientemente alta para causar que o arranjo NAND 108 e/ou o sistema de circuitos de energia compartilhado 113 funcione mal ou de outro modo opere de uma maneira não pretendida. O padrão de comando causando um mau funcionamento ou operação não pretendida pode ser identificado e possivelmente armazenado separadamente no armazenamento 106 (por exemplo, no registro de atividades 109).[0036] In one aspect, of different command patterns in a test matrix, at least one command pattern causes greater current absorption in the NAND array 108, and/or in the shared power circuitry system 113 relative to others command patterns in the test matrix. The command pattern causing increased current absorption can be identified and possibly stored separately in storage 106. In another aspect, during the issuance of command patterns, a command pattern causes sufficiently high current absorption to cause the NAND array 108 to and/or the shared power circuitry system 113 malfunctions or otherwise operates in an unintended manner. The command pattern causing a malfunction or unintended operation can be identified and possibly stored separately in storage 106 (e.g. in activity log 109).

[0037] Outros dispositivos, tal como, por exemplo, o sistema de computador 112, podem submeter solicitações para executar através dos padrões de comando em uma matriz de testes para a entrada 122. O controlador 102 pode detectar uma solicitação na entrada 122 e iniciar o programa de teste 102 para executar através de cada padrão de comando em uma matriz de testes. Outros dispositivos, tal como, por exemplo, o sistema de computador 112, põem submeter solicitações para executar um padrão de comando especificado (ou subconjunto especificado de padrões de comando) para a entrada 123. O controlador 102 pode detectar uma solicitação na entrada 123 e iniciar o programa de teste 104 para executar um padrão de comando específico (ou subconjunto específico de padrões de comando). Em um aspecto, quando uma solicitação é detectada na entrada 123, o controlador 102 inicia o programa de teste 104 para executar um padrão de comando anteriormente identificado como causando uma maior absorção de corrente no arranjo NAND 108 e/ou no sistema de circuitos de energia compartilhado 113. Em outro aspecto, quando uma solicitação é detectada na entrada 123, o controlador 102 inicia o programa de teste 104 para executar um padrão de comando anteriormente identificado como causando um mau funcionamento ou operação não pretendida no arranjo NAND 108 e/ou no sistema de circuitos de energia compartilhado 113.[0037] Other devices, such as, for example, computer system 112, may submit requests to run through the command patterns in a test matrix to input 122. Controller 102 may detect a request on input 122 and initiate the test program 102 to run through each command pattern in a test matrix. Other devices, such as, for example, computer system 112, submit requests to execute a specified command pattern (or specified subset of command patterns) to input 123. Controller 102 may detect a request on input 123 and starting test program 104 to execute a specific command pattern (or specific subset of command patterns). In one aspect, when a request is detected on input 123, controller 102 initiates test program 104 to execute a command pattern previously identified as causing increased current draw in the NAND array 108 and/or the power circuitry system. 113. In another aspect, when a request is detected on input 123, controller 102 initiates test program 104 to execute a command pattern previously identified as causing a malfunction or unintended operation in the NAND array 108 and/or the shared power circuit system 113.

[0038] O programa de teste 104 pode ser utilizado em um cenário de qualificação ou cenário de produção para testar características de energia do arranjo NAND 108 e/ou do sistema de circuitos de energia compartilhado 113. Um dispositivo externo de monitoramento, tal como, por exemplo, um medidor ou osciloscópio, pode ser eletricamente conectado com o arranjo NAND 108 e/ou com o sistema de circuitos de energia compartilhado 113. O dispositivo externo de monitoramento pode monitorar características elétricas nos componentes do arranjo NAND 108 e/ou no sistema de circuitos de energia compartilhado 113 à medida que diferentes padrões de comando são implementados no arranjo NAND. Um dispositivo externo de monitoramento pode submeter retroalimentação para a entrada 124. O controlador 102 pode receber a retroalimentação a partir de dispositivos externos de monitoramento na entrada 124. O controlador 102 pode armazenar retroalimentação (ou partes da mesma) no armazenamento 106, tal como, por exemplo, no registro de atividade 109. Em um aspecto, um padrão de comando é armazenado junto com as características de energia do NAND 108 monitorado durante a implementação do padrão de comando.[0038] The test program 104 can be used in a qualification scenario or production scenario to test power characteristics of the NAND array 108 and/or the shared power circuit system 113. An external monitoring device, such as, for example, a meter or oscilloscope, may be electrically connected with the NAND array 108 and/or the shared power circuitry system 113. The external monitoring device may monitor electrical characteristics in the components of the NAND array 108 and/or the system of shared power circuitry 113 as different command patterns are implemented in the NAND array. An external monitoring device may submit feedback to input 124. Controller 102 may receive feedback from external monitoring devices on input 124. Controller 102 may store feedback (or portions thereof) in storage 106, such as, for example, in activity log 109. In one aspect, a command pattern is stored along with the energy characteristics of the NAND 108 monitored during implementation of the command pattern.

[0039] A Figura 2 ilustra um fluxograma de um método ilustrativo 200 para testar o sistema de circuitos de energia do dispositivo de armazenamento. O método 200 será descrito com respeito aos componentes e aos dados da arquitetura de computador 100.[0039] Figure 2 illustrates a flowchart of an illustrative method 200 for testing the storage device power circuitry. Method 200 will be described with respect to the components and data of computer architecture 100.

[0040] O método 200 inclui receber um comando no controlador para iniciar um teste de energia (201). Por exemplo, o sistema de computador 112 pode enviar o comando de teste 131 para a entrada 122. O controlador 102 pode receber o comando de teste 131 na entrada 122. O método 200 inclui executar um programa de teste incorporado no controlador em resposta a receber o comando (202). Por exemplo, o controlador 102 pode executar o programa de teste 104 (incorporado no firmware 103) em resposta ao comando de teste 131.[0040] Method 200 includes receiving a command at the controller to initiate a power test (201). For example, computer system 112 may send test command 131 to input 122. Controller 102 may receive test command 131 on input 122. Method 200 includes executing a test program embedded in the controller in response to receiving the command (202). For example, controller 102 may execute test program 104 (embedded in firmware 103) in response to test command 131.

[0041] O método 200 inclui o programa de teste acessando uma matriz de testes, a matriz de testes incluindo vários padrões de comando de memória flash (203). Por exemplo, em um aspecto, o programa de teste 104 acessando a matriz de testes 107 a partir do armazenamento 106. Como descrito, a matriz de testes 107 inclui padrões de comando 107A, 107B, 107C, etc. Alternativamente, em outro aspecto, o programa de teste 104 executa uma parte de código executável para gerar a matriz de testes 107.[0041] Method 200 includes the test program accessing a test matrix, the test matrix including various flash memory command patterns (203). For example, in one aspect, test program 104 accessing test matrix 107 from storage 106. As described, test matrix 107 includes command patterns 107A, 107B, 107C, etc. Alternatively, in another aspect, the test program 104 executes a piece of executable code to generate the test matrix 107.

[0042] O método 200 inclui o programa de teste utilizando a matriz de testes para testar as capacidades de energia de um arranjo de dispositivos de memória flash (204). Por exemplo, o programa de teste 104 pode utilizar a matriz de testes 107 para testar as capacidades de energia do arranjo NAND 108 e/ou do sistema de circuitos de energia compartilhado 113 .[0042] The method 200 includes the test program using the test matrix to test the power capabilities of an array of flash memory devices (204). For example, test program 104 can use test matrix 107 to test the power capabilities of NAND array 108 and/or shared power circuitry system 113.

[0043] O teste das capacidades de energia do arranjo de dispositivos de memória flash inclui para cada padrão de comando de memória flash nos vários dos padrões de comando de memória flash, emitir o padrão de comando de memória flash a partir do controlador para o arranjo de dispositivos de memória flash (205). Por exemplo, o programa de teste 104 pode emitir cada um dos padrões de comando 107A, 107B, 107C, etc. para o arranjo NAND 108. O arranjo NAND 108 pode tentar implementar os padrões de comando 107A, 107B, 107C, etc. à medida que cada um dos padrões de comando 107A, 107B, 107C, etc. é recebido. Como descrito, um padrão de comando pode incluir uma sequência sincronizada de comandos NAND, incluindo leituras, gravações, deleções, e quaisquer outros comandos que transferem dados entre um controlador e um arranjo NAND.[0043] Testing the power capabilities of the flash memory device array includes for each flash memory command pattern in the various of the flash memory command patterns, issue the flash memory command pattern from the controller to the array of flash memory devices (205). For example, test program 104 may issue each of command patterns 107A, 107B, 107C, etc. to NAND array 108. NAND array 108 may attempt to implement command patterns 107A, 107B, 107C, etc. as each of command patterns 107A, 107B, 107C, etc. is received. As described, a command pattern can include a synchronized sequence of NAND commands, including reads, writes, deletes, and any other commands that transfer data between a controller and a NAND array.

[0044] O dispositivo de monitoramento 141, tal como, por exemplo, um medidor ou osciloscópio, pode ser eletricamente conectado com o sistema de circuitos de energia compartilhado 113 e/ou com o sistema de circuitos de energia de dispositivos NAND individuais 108A, 108B, 108C, etc. O dispositivo de monitoramento 141 pode monitorar características de energia no sistema de circuitos de energia compartilhado 113 e/ou no sistema de circuitos de energia de dispositivos NAND individuais à medida que padrões de comando são implementados. O dispositivo de monitoramento 141 pode enviar retroalimentação 142 (por exemplo, uma absorção de corrente medida no sistema de circuitos de energia) para a entrada 124 e/ou para outro sistema de computador (por exemplo, sistema de computador 112). O controlador 102 pode receber retroalimentação 142 na entrada 124. O programa de teste 124 pode gravar um padrão de comando e a retroalimentação correspondente para o padrão de comando no registro de atividade 109.[0044] The monitoring device 141, such as, for example, a meter or oscilloscope, can be electrically connected with the shared power circuit system 113 and/or with the power circuit system of individual NAND devices 108A, 108B , 108C, etc. The monitoring device 141 can monitor power characteristics in the shared power circuitry 113 and/or in the power circuitry of individual NAND devices as command patterns are implemented. Monitoring device 141 may send feedback 142 (eg, a measured current draw in the power circuitry system) to input 124 and/or to another computer system (eg, computer system 112). Controller 102 may receive feedback 142 at input 124. Test program 124 may record a command pattern and corresponding feedback for the command pattern in activity log 109.

[0045] O dispositivo de monitoramento 141 pode estar incluído ou ser separado do sistema de computador 112.[0045] The monitoring device 141 may be included or separate from the computer system 112.

[0046] O sistema de computador 112 e/ou outro sistema de computador também pode manter padrões de comando e retroalimentação correspondente 142 para uso e análise subsequentes.[0046] The computer system 112 and/or other computer system may also maintain command patterns and corresponding feedback 142 for subsequent use and analysis.

[0047] Testar as capacidades de energia do arranjo de dispositivos de memória flash inclui identificar o padrão de comando de memória flash que causa a maior absorção de corrente total no arranjo de dispositivos de memória flash (206). Por exemplo, baseado na retroalimentação 142 para vários diferentes padrões de comando, o programa de teste 104 (ou um módulo no sistema de computador 112 ou em algum outro sistema de computador) pode identificar o padrão de comando 107C como o padrão de comando que causa a maior absorção de corrente no arranjo NAND 108 e/ou no sistema de circuitos de energia compartilhado 113.[0047] Testing the power capabilities of the flash memory device array includes identifying the flash memory command pattern that causes the greatest total current absorption in the flash memory device array (206). For example, based on feedback 142 for several different command patterns, test program 104 (or a module in computer system 112 or some other computer system) may identify command pattern 107C as the command pattern that causes the greater current absorption in the NAND array 108 and/or in the shared power circuitry system 113.

[0048] O programa de teste 104 pode armazenar o padrão de comando 107C separadamente no armazenamento 106 (e/ou pode enviar uma indicação do padrão de comando 107 para o sistema de computador 112 ou para algum outro sistema de computador). O padrão de comando 107C então pode ser utilizado para mais rigorosamente testar as capacidades de energia do arranjo NAND 108. Por exemplo, o padrão de comando 107C pode ser (repetidamente) emitido para o arranjo NAND 108 em intervalos especificados (por exemplo, na ordem de microssegundos ou milissegundos) durante um período de tempo.[0048] Test program 104 may store command pattern 107C separately in storage 106 (and/or may send an indication of command pattern 107 to computer system 112 or to some other computer system). Command pattern 107C can then be used to more rigorously test the power capabilities of NAND array 108. For example, command pattern 107C can be (repeatedly) issued to NAND array 108 at specified intervals (e.g., in order microseconds or milliseconds) over a period of time.

[0049] Assim, o programa de teste 104 essencialmente pode pesquisar a matriz de testes 107 para identificar um padrão de comando causando maior absorção de corrente no arranjo NAND 108 e/ou no sistema de circuitos de energia compartilhado 113. O programa de teste 104 também pode pesquisar a matriz de testes 107 para identificar quaisquer padrões de comando que causem mau funcionamento ou outras operações não pretendidas no arranho NAND 108 e/ou no sistema de circuitos de energia compartilhado 113. Por exemplo, o programa de teste 104 pode sistematicamente progredir através de um número máximo de dispositivos NAND operando cada tipo de operação (por exemplo, leitura, gravação, deleção, e quaisquer outros comandos que transferem dados entre um controlador e um arranjo NAND).[0049] Thus, the test program 104 can essentially search the test matrix 107 to identify a command pattern causing increased current absorption in the NAND array 108 and/or the shared power circuitry system 113. The test program 104 it may also search the test matrix 107 to identify any command patterns that cause malfunctions or other unintended operations on the NAND scratch 108 and/or the shared power circuitry system 113. For example, the test program 104 may systematically progress through a maximum number of NAND devices operating each type of operation (for example, read, write, delete, and any other commands that transfer data between a controller and a NAND array).

[0050] Um arranjo de dispositivos de memória flash (por exemplo, um arranjo NAND) pode estar apto a operar como pretendido quando implementado qualquer dos um ou mais padrões de comando causando maior absorção de corrente. Assim, o programa de teste 104 pode identificar o padrão de comando causando a maior absorção de corrente possível em um arranjo de dispositivos de memória flash (por exemplo, um arranjo NAND) em relação aos outros padrões de comando. Por outro lado, pode existir qualquer número de padrões de comando que quando implementados causam que um arranjo de dispositivos de memória flash (por exemplo, um arranjo NAND) e/ou o sistema de circuitos de energia compartilhado funcione mal ou de outro modo opere de uma maneira não pretendida (por exemplo, devido à absorção de corrente excedendo as capacidades dos componentes elétricos). O programa de teste 104 pode identificar quaisquer padrões de comando que causam um mau funcionamento ou outra operação não pretendida em um arranjo de dispositivos de memória flash e/ou em um sistema de circuitos de energia compartilhado.[0050] An array of flash memory devices (eg, a NAND array) may be able to operate as intended when implementing any of the one or more command patterns causing increased current absorption. Thus, test program 104 can identify the command pattern causing the greatest possible current draw in an array of flash memory devices (eg, a NAND array) relative to the other command patterns. On the other hand, there may be any number of command patterns that when implemented cause an array of flash memory devices (e.g., a NAND array) and/or shared power circuitry system to malfunction or otherwise operate improperly. in an unintended way (for example, due to current absorption exceeding the capabilities of electrical components). Test program 104 can identify any command patterns that cause a malfunction or other unintended operation in an array of flash memory devices and/or in a system of shared power circuits.

[0051] Em um aspecto, a matriz de testes 107 é configurada para exercer um caso onde todos os dispositivos de memória flash em um arranjo (por exemplo, arranjo NAND 108) sejam ativados de modo a mais completamente testar o projeto do circuito de energia da SSD 101.[0051] In one aspect, test matrix 107 is configured to exercise a case where all flash memory devices in an array (e.g., NAND array 108) are activated in order to more thoroughly test the power circuit design from SSD 101.

[0052] A Figura 3 ilustra um fluxograma de um método ilustrativo 300 para testar sistema de circuitos de energia de dispositivo de armazenamento. O método 300 será descrito com respeito aos componentes e dados da arquitetura de computador 100.[0052] Figure 3 illustrates a flow chart of an illustrative method 300 for testing storage device power circuitry system. Method 300 will be described with respect to the components and data of computer architecture 100.

[0053] O método 300 inclui receber um comando no controlador para iniciar um teste de energia, o teste de energia anteriormente identificado dentre vários testes de energia utilizados para testar as características de energia do arranjo de dispositivos de memória flash, o teste de energia definindo um padrão de comandos de memória flash (301). Por exemplo, o sistema de computador 112 pode enviar o comando de padrão específico 132 para a entrada 123. O controlador 102 pode receber o comando de padrão específico 132 na entrada 123. O comando de padrão específico 132 pode ser um comando para iniciar um padrão de comando especificado anteriormente identificado a partir da matriz de testes 107.[0053] Method 300 includes receiving a command at the controller to initiate a power test, the previously identified power test of several power tests used to test the power characteristics of the flash memory device array, the power test setting a pattern of flash memory commands (301). For example, the computer system 112 may send the specific pattern command 132 to the input 123. The controller 102 may receive the specific pattern command 132 on the input 123. The specific pattern command 132 may be a command to start a pattern previously identified specified command from test matrix 107.

[0054] Em um aspecto, o comando de padrão específico 132 solicita que um padrão de comando causando uma maior absorção de corrente seja emitido. Por exemplo, o comando de padrão específico 132 pode ser um comando para iniciar o padrão de comando 107C. O comando de padrão específico 132 pode especialmente identificar o padrão de comando 107C. Alternativamente, a entrada 123 pode ser especificamente configurada para ativar o início de um padrão de comando com alta absorção de corrente identificado quando uma solicitação é detectada na entrada 123.[0054] In one aspect, the specific pattern command 132 requests that a command pattern causing increased current absorption be issued. For example, the specific pattern command 132 could be a command to start command pattern 107C. Specific pattern command 132 can especially identify command pattern 107C. Alternatively, input 123 can be specifically configured to trigger the initiation of an identified high current sink command pattern when a request is detected at input 123.

[0055] Em outros aspectos, a entrada 123 pode ser utilizada para identificar qualquer padrão de comando contido na matriz de testes 107 (seja a matriz de testes 107 armazenada separadamente ou gerada pelo programa de teste 104 em tempo de execução).[0055] In other respects, input 123 can be used to identify any command pattern contained in the test matrix 107 (whether the test matrix 107 is stored separately or generated by the test program 104 at runtime).

[0056] O método 300 inclui executar um programa de teste incorporado no controlador em resposta a receber o comando (302). Por exemplo, o controlador 102 pode executar o programa de teste 104 (incorporado no firmware 103) em resposta a receber o comando de padrão específico 132. O método 300 inclui o programa de teste acessando o teste de energia (303). Por exemplo, o programa de teste 104 pode acessar o padrão de comando 107C (ou algum outro padrão de comando especificado). O programa de teste 104 pode acessar o padrão de comando 107C (ou algum outro padrão de comando especificado) a partir do armazenamento 106. Alternativamente, o programa de teste 104 pode gerar o padrão de comando 107C (ou algum outro padrão de comando especificado) em tempo de execução.[0056] Method 300 includes executing a test program built into the controller in response to receiving command (302). For example, controller 102 may execute test program 104 (embedded in firmware 103) in response to receiving specific pattern command 132. Method 300 includes test program accessing power test (303). For example, test program 104 might access command pattern 107C (or some other specified command pattern). Test program 104 may access command pattern 107C (or some other specified command pattern) from storage 106. Alternatively, test program 104 may generate command pattern 107C (or some other specified command pattern) at runtime.

[0057] O método 300 inclui o programa de teste testando as características de energia de um ou mais dispositivos de memória flash incluídos no arranjo de dispositivos de memória flash por emitir o padrão de comandos a partir do controlador para o um ou mais dispositivos de memória flash (304). Por exemplo, o controlador 102 pode emitir õ padrão de comando 107C para o arranjo NAND 108 ou para um ou mais dispositivos NAND incluídos no mesmo para testar uma ou mais dentre: as características de energia do arranjo NAND 108, as características de energia de um ou mais dispositivos NAND incluídos no mesmo, e as características de energia do sistema de circuitos de energia compartilhado 113. O arranjo NAND 108 ou um ou mais dispositivos NAND incluídos no mesmo podem implementar a sequência de comandos 107C. Como descrito, um padrão de comando pode incluir uma sequência sincronizada de comandos NAND, incluindo leituras, gravações, deleções, e quaisquer outros comandos que transferem dados entre um controlador e um arranjo NAND.[0057] Method 300 includes the test program testing the power characteristics of one or more flash memory devices included in the array of flash memory devices by issuing pattern commands from the controller to the one or more memory devices flash (304). For example, controller 102 may issue command pattern 107C to NAND array 108 or to one or more NAND devices included therein to test one or more of: the power characteristics of NAND array 108, the power characteristics of a or more NAND devices included therein, and the power characteristics of shared power circuitry system 113. NAND array 108 or one or more NAND devices included therein can implement command sequence 107C. As described, a command pattern can include a synchronized sequence of NAND commands, including reads, writes, deletes, and any other commands that transfer data between a controller and a NAND array.

[0058] Em um aspecto, o controlador 102 repetidamente emite o padrão de comando 107C para o arranjo NAND 108 em intervalos especificados (por exemplo, na magnitude de microssegundos ou de milissegundos). O dispositivo de monitoramento 141 pode monitorar as características de energia do arranjo NAND 108 e/ou do sistema de circuitos de energia compartilhado 114 através de tempo à medida que o padrão de comando 107C é repetidamente implementado no arranjo NAND 108. O dispositivo de monitoramento 141 pode proporcionar realimentação para o controlador 102.[0058] In one aspect, the controller 102 repeatedly issues the command pattern 107C to the NAND array 108 at specified intervals (e.g., in the magnitude of microseconds or milliseconds). Monitoring device 141 can monitor the power characteristics of the NAND array 108 and/or the shared power circuitry system 114 over time as the command pattern 107C is repeatedly implemented in the NAND array 108. The monitoring device 141 may provide feedback to controller 102.

[0059] Aspectos da invenção também são aplicáveis para testar arranjos NAND contidos em unidades flash de Barramento Serial Universal (USB). Um programa de teste pode ser incorporado em um controlador USB. O programa de teste pode emitir padrões de comando (possivelmente a partir de uma matriz de testes) para os dispositivos NAND na unidade flash USB. Os padrões de comando causando maior absorção de corrente, causando maus funcionamentos, ou causando ouras operações não pretendidas podem ser gravados.[0059] Aspects of the invention are also applicable for testing NAND arrays contained in Universal Serial Bus (USB) flash drives. A test program can be built into a USB controller. The test program can issue command patterns (possibly from a test matrix) to the NAND devices on the USB flash drive. Command patterns causing increased current draw, causing malfunctions, or causing other unintended operations can be recorded.

[0060] Aspectos da invenção também podem ser utilizados para testar componentes de energia de outros tipos de dispositivos de armazenamento, tais como, por exemplo, unidades magnéticas, unidades óticas, memória flash baseada em NOR, etc. Em um aspecto, um programa de teste é incorporado em firmware em um controlador de uma unidade de disco magnético. O programa de teste pode emitir diferentes padrões de comando para exercitar o sistema de circuitos de energia compartilhado entre vários componentes da unidade de disco magnético. O programa de teste também pode utilizar padrões de teste diferentes para exercitar uma cabeça de leitura / gravação através de um ou mais discos. Os padrões de comando causando maior absorção de corrente, mau funcionamento, ou outras operações não pretendidas podem ser gravados.[0060] Aspects of the invention can also be used to test power components of other types of storage devices, such as, for example, magnetic drives, optical drives, NOR-based flash memory, etc. In one aspect, a test program is embedded in firmware in a magnetic disk drive controller. The test program can issue different command patterns to exercise the power circuitry system shared between various magnetic disk drive components. The test program can also use different test patterns to exercise a read/write head across one or more disks. Command patterns causing increased current draw, malfunction, or other unintended operations can be recorded.

[0061] Aspectos da invenção podem ser ajustados para considerar limitações em um dispositivo de armazenamento. Um desenvolvedor de teste pode considerar limites em relação ao número de operações em execução quando projetando um programa de teste e/ou a matriz de testes. Por exemplo, pode ser que um espaço de memória temporária de um controlador possa acomodar um número especificado de leituras durante a execução. Assim, o programa de teste pode ser projetado para limitar o número especificado de dispositivos NAND ativos com um tipo de operação (por exemplo, uma operação de leitura), mas ter outros dispositivos NAND ativos com outros tipos de operação. O programa de teste também pode ser projetado para considerar se transferência de dados e operações flash utilizam a mesma linha de transmissão de energia.[0061] Aspects of the invention can be adjusted to consider limitations in a storage device. A test developer may consider limits on the number of operations to be performed when designing a test program and/or test matrix. For example, it may be that a controller's temporary memory space can accommodate a specified number of reads at runtime. Thus, the test program can be designed to limit the specified number of NAND devices active with one type of operation (for example, a read operation), but have other NAND devices active with other types of operation. The test program can also be designed to consider whether data transfer and flash operations use the same power transmission line.

[0062] A presente invenção pode ser implementada em outras formas específicas sem afastamento de seu espírito ou de suas características essenciais. As implementações descritas são para ser consideradas em todos os aspectos somente como ilustrativas e não como restritivas. Portanto, o escopo da invenção é indicado pelas concretizações ao invés do que pela descrição precedente. Todas as alterações que surjam dentro do significado e da faixa de equivalência das concretizações são para ser abrangidas dentro de seu escopo.[0062] The present invention can be implemented in other specific forms without departing from its spirit or its essential characteristics. The described implementations are to be considered in all respects as illustrative only and not restrictive. Therefore, the scope of the invention is indicated by the embodiments rather than by the foregoing description. All changes arising within the meaning and range of equivalence of embodiments are to be embraced within its scope.

Claims (8)

1. Método para uso em um dispositivo de armazenamento (101), o dispositivo de armazenamento (101) incluindo um controlador (102) e uma pluralidade de dispositivos de memória (108A, 108B, 108C), o método para testar características de potência da pluralidade de dispositivos de memória (108A, 108B, 108C), caracterizado pelo fato de que compreende: receber um comando no controlador (101) para iniciar uma pluralidade de testes de potência incluídos em uma matriz de teste, cada teste de potência definindo um padrão de comando de comandos de memória, executar um programa de teste embutido no controlador (101) em resposta a receber o comando; o programa de teste configurado para pesquisar a matriz de teste para identificar um padrão de comandos de memória que causa maior consumo de corrente em relação a outros padrões de comando na matriz de teste; o programa de teste acessar os testes de potência, em que acessar os testes de potência compreende acessar a matriz de teste de dentro de armazenamento do controlador (101); o programa de teste testar as características de potência de um ou mais dispositivos de memória (108A, 108B, 108C), em que o teste compreende para cada um da pluralidade de testes de potência, emitir o padrão de comando definido para o teste de potência para os um ou mais dispositivos de memória (108A, 108B, 108C); um dispositivo de monitoramento (141) monitorar as características de potência dos um ou mais dispositivos de memória (108A, 108B, 108C) e enviar feedback para uma entrada, o controlador (101) receber o feedback do dispositivo de monitoramento (141) na entrada; e manter padrões de comando e feedback correspondente para uso e análise subsequentes, com base no feedback para os padrões de comando emitidos, identificar, entre os padrões de comando emitidos, um padrão de comando (107C) que causa o maior consumo total de corrente dos um ou mais dispositivos de memória (108A, 108B, 108C) e receber um comando de padrão específico (132) no controlador para emitir o padrão de comando identificado (107C), emitir, em particular repetidamente em intervalos especificados, o padrão de comando identificado (107C) para um ou mais dispositivos de memória, e monitorar as características de potência à medida que o padrão de comando identificado (107C) é emitido para os um ou mais dispositivos de memória, em particular monitorá-lo ao longo do tempo à medida que o padrão de comando identificado é repetidamente emitido para os um ou mais dispositivos de memória.1. Method for use in a storage device (101), the storage device (101) including a controller (102) and a plurality of memory devices (108A, 108B, 108C), the method for testing power characteristics of the a plurality of memory devices (108A, 108B, 108C), characterized in that it comprises: receiving a command at the controller (101) to initiate a plurality of power tests included in a test matrix, each power test defining a pattern commanding memory commands, executing a test program built into the controller (101) in response to receiving the command; the test program configured to search the test matrix to identify a memory command pattern that causes greater current draw relative to other command patterns in the test matrix; the test program accessing the power tests, wherein accessing the power tests comprises accessing the test matrix from within controller storage (101); the test program testing the power characteristics of one or more memory devices (108A, 108B, 108C), the test comprising for each of the plurality of power tests, issuing the defined command pattern for the power test to the one or more memory devices (108A, 108B, 108C); a monitoring device (141) monitors the power characteristics of the one or more memory devices (108A, 108B, 108C) and sends feedback to an input, the controller (101) receives feedback from the monitoring device (141) on the input ; and maintaining command patterns and corresponding feedback for subsequent use and analysis, based on the feedback to the issued command patterns, identifying, among the issued command patterns, a command pattern (107C) that causes the greatest total current consumption of the one or more memory devices (108A, 108B, 108C) and receiving a specific pattern command (132) at the controller to issue the identified command pattern (107C), issuing, in particular repeatedly at specified intervals, the identified command pattern (107C) to one or more memory devices, and monitoring the power characteristics as the identified command pattern (107C) is issued to the one or more memory devices, in particular monitoring it over time as that the identified command pattern is repeatedly issued to the one or more memory devices. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de dispositivos de memória (108A, 108B, 108C) inclui uma matriz de dispositivos de memória flash (108A, 108B, 108C) e em que receber um comando no controlador (101) compreende receber um comando para iniciar um teste de potência para testar as características de potência da matriz de dispositivos de memória flash (108A, 108B, 108C); e em que o programa de teste testar as características de potência de um ou mais dispositivos de memória (108A, 108B, 108C) compreende o programa de teste testar as características de potência de um ou mais dispositivos de memória flash (108A, 108B, 108C) incluídos na matriz de memória flash dispositivos (108A, 108B, 108C) emitindo um padrão de comando de comandos de memória flash.2. Method according to claim 1, characterized in that the plurality of memory devices (108A, 108B, 108C) includes an array of flash memory devices (108A, 108B, 108C) and in which receiving a command at the controller (101) comprises receiving a command to initiate a power test to test the power characteristics of the array of flash memory devices (108A, 108B, 108C); and wherein the test program testing the power characteristics of one or more flash memory devices (108A, 108B, 108C) comprises the test program testing the power characteristics of one or more flash memory devices (108A, 108B, 108C ) included in the array of flash memory devices (108A, 108B, 108C) issuing a command pattern of flash memory commands. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende: receber uma medição de tensão de uma tensão detectada nos um ou mais dispositivos de memória flash (108A, 108B, 108C) durante a implementação do padrão de comando de comandos de memória flash nos um ou mais dispositivos de memória flash (108A, 108B, 108C); e determinar se os um ou mais dispositivos de memória flash (108A, 108B, 108C) operaram adequadamente sob a voltagem detectada.3. Method according to claim 2, characterized in that it further comprises: receiving a voltage measurement of a voltage detected in the one or more flash memory devices (108A, 108B, 108C) during the implementation of the command pattern flash memory commands on the one or more flash memory devices (108A, 108B, 108C); and determining whether the one or more flash memory devices (108A, 108B, 108C) have operated properly under the detected voltage. 4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que testar as características de potência de um ou mais dispositivos de memória flash (108A, 108B, 108C) incluídos na matriz de dispositivos de memória flash (108A, 108B, 108C) compreende emitir um padrão de comando de memória flash comandos que incluem pelo menos um dos seguintes comandos: um comando de gravação, um comando de leitura, e um comando de apagamento.4. Method according to claim 2, characterized in that testing the power characteristics of one or more flash memory devices (108A, 108B, 108C) included in the array of flash memory devices (108A, 108B, 108C ) comprises issuing a flash memory command pattern commands that include at least one of the following commands: a write command, a read command, and an erase command. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que receber um comando no controlador (101) para iniciar um teste de potência compreende receber um comando para iniciar um teste de potência previamente identificado como causando um consumo de corrente máximo prático dos um ou mais dispositivos de memória (108A, 108B, 108C).5. Method according to claim 1, characterized in that receiving a command at the controller (101) to start a power test comprises receiving a command to start a power test previously identified as causing a practical maximum current consumption of the one or more memory devices (108A, 108B, 108C). 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de dispositivos de memória (108A, 108B, 108C) inclui uma matriz de dispositivos de memória flash (108A, 108B, 108C) e em que o programa de teste acessar uma matriz de teste compreende o programa de teste acessar uma matriz de teste incluindo uma pluralidade de padrões de comando de memória flash; em que o programa de teste usar a matriz de teste para testar as características de potência da pluralidade de dispositivos de memória (108A, 108B, 108C) compreende o programa de teste usar a matriz de teste para testar as características de potência da matriz de dispositivos de memória flash (108A, 108B, 108C), incluindo: para cada padrão de comando de memória flash na pluralidade de padrões de comando de memória flash, emitir o padrão de comando de memória flash do controlador (101) para a matriz de dispositivos de memória flash (108A, 108B, 108C); e identificar o padrão de comando de memória flash que causa o maior consumo total de corrente na matriz de dispositivos de memória flash (108A, 108B, 108C).6. Method according to claim 1, characterized in that the plurality of memory devices (108A, 108B, 108C) includes an array of flash memory devices (108A, 108B, 108C) and in which the test accessing a test matrix comprising the test program accessing a test matrix including a plurality of flash memory command patterns; wherein the test program using the test matrix to test the power characteristics of the plurality of memory devices (108A, 108B, 108C) comprises the test program using the test matrix to test the power characteristics of the device array flash memory command patterns (108A, 108B, 108C), including: for each flash memory command pattern in the plurality of flash memory command patterns, issuing the flash memory command pattern from the controller (101) to the array of flash memory devices flash memory (108A, 108B, 108C); and identify the flash memory command pattern that causes the greatest total current draw in the array of flash memory devices (108A, 108B, 108C). 7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende emitir o padrão de comando de memória identificado do controlador (101) para a matriz de dispositivos de memória (108A, 108B, 108C) uma pluralidade adicional de vezes para estressar circuitos de potência compartilhados entre a matriz de dispositivos de memória (108A, 108B, 108C).7. The method of claim 5, further comprising issuing the identified memory command pattern from the controller (101) to the array of memory devices (108A, 108B, 108C) an additional plurality of times to stress shared power circuits between the array of memory devices (108A, 108B, 108C). 8. Dispositivo de armazenamento (101), o dispositivo de armazenamento (101) caracterizado pelo fato de que compreende: um controlador (101); uma pluralidade de componentes de armazenamento; circuitos de potência compartilhados pela pluralidade de componentes de armazenamento; um programa de teste embutido no controlador (101), o programa de teste configurado para pesquisar a matriz de teste para identificar um padrão de comando que causa maior consumo de corrente em relação a outros padrões de comando na matriz de teste e características de potência de teste da pluralidade de componentes de armazenamento, incluindo: acessar uma pluralidade de padrões de comando em resposta a um comando recebido no controlador (101), a pluralidade de padrões de comando para testar componentes de armazenamento, em que a pluralidade de padrões de comando está incluída em uma matriz de teste e acessar a pluralidade de padrões de comando compreende acessar a matriz de teste; usar a pluralidade de padrões de comando para testar as capacidades de potência dos circuitos de potência compartilhados, incluindo para cada padrão de comando na pluralidade de padrões de comando, emitir o padrão de comando do controlador (101) para a pluralidade de componentes de armazenamento; receber feedback de um dispositivo de monitoramento (141) monitorando as características de potência da pluralidade de componentes de armazenamento; e manter padrões de comando e feedback correspondente para uso e análise subsequentes, com base no feedback para os padrões de comando emitidos, identificar, entre os padrões de comando emitidos, um padrão de comando que causa o maior consumo total de corrente da pluralidade de componentes de armazenamento, em resposta a um comando de padrão específico (132) recebido na emissão do controlador, em particular repetidamente em intervalos especificados, o padrão de comando identificado (107C) para um ou mais componentes de armazenamento, e receber feedback das características de potência monitoradas à medida que o padrão de comando identificado (107C) é emitido para os um ou mais componentes de armazenamento, em particular monitorado ao longo do tempo à medida que o padrão de comando identificado (107C) é emitido repetidamente para os um ou mais componentes de armazenamento.8. Storage device (101), the storage device (101) characterized in that it comprises: a controller (101); a plurality of storage components; power circuits shared by the plurality of storage components; a test program built into the controller (101), the test program configured to search the test matrix to identify a command pattern that causes greater current draw relative to other command patterns in the test matrix and power characteristics of testing the plurality of storage components, including: accessing a plurality of command patterns in response to a command received at the controller (101), the plurality of command patterns for testing storage components, wherein the plurality of command patterns are included in a test matrix and accessing the plurality of command patterns comprises accessing the test matrix; using the plurality of command patterns to test the power capabilities of the shared power circuits, including for each command pattern in the plurality of command patterns, issuing the command pattern from the controller (101) to the plurality of storage components; receiving feedback from a monitoring device (141) monitoring the power characteristics of the plurality of storage components; and maintaining command patterns and corresponding feedback for subsequent use and analysis, based on the feedback to the issued command patterns, identifying, among the issued command patterns, a command pattern that causes the greatest total current consumption of the plurality of components storage, in response to a specific pattern command (132) received at the controller issue, in particular repeatedly at specified intervals, the identified command pattern (107C) to one or more storage components, and receiving feedback of the power characteristics monitored as the identified command pattern (107C) is issued to the one or more storage components, in particular monitored over time as the identified command pattern (107C) is issued repeatedly to the one or more components of storage.
BR112017007040-5A 2014-11-04 2015-11-03 METHOD FOR USE IN A STORAGE DEVICE AND STORAGE DEVICE BR112017007040B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/532,646 US9558848B2 (en) 2014-11-04 2014-11-04 Testing storage device power circuitry
US14/532,646 2014-11-04
PCT/US2015/058695 WO2016073388A1 (en) 2014-11-04 2015-11-03 Test of semiconductor storage power consumption on basis of executed access commands

Publications (2)

Publication Number Publication Date
BR112017007040A2 BR112017007040A2 (en) 2017-12-12
BR112017007040B1 true BR112017007040B1 (en) 2023-06-27

Family

ID=

Similar Documents

Publication Publication Date Title
US10699798B2 (en) Testing storage device power circuitry
Cojocar et al. Are we susceptible to rowhammer? an end-to-end methodology for cloud providers
US9378846B2 (en) Non-mounted storage test device based on FPGA
TWI482084B (en) Apparatus, method and system for providing platform independent memory logic
US20170062075A1 (en) Apparatus including core and clock gating circuit and method of operating same
US9244865B2 (en) Obtaining diagnostic information through host interfaces
CN105474192A (en) Event-triggered storage of data to non-volatile memory
US9305663B2 (en) Techniques for assessing pass/fail status of non-volatile memory
US20180364304A1 (en) Stimulus generation for component-level verification
Wei et al. Accelerating file system metadata access with byte-addressable nonvolatile memory
Ahmadian et al. Investigating power outage effects on reliability of solid-state drives
US10395751B2 (en) Automated testing system and operating method thereof
Li et al. Fantastic SSD internals and how to learn and use them
Bjørling et al. Performing sound flash device measurements: some lessons from uFLIP
CN115443451A (en) Recording and decoding of information related to memory errors identified by a microprocessor
Huang et al. BVSSD: Build built-in versioning flash-based solid state drives
CN112540869A (en) Memory controller, memory device, and method of operating memory device
CN107357700A (en) A kind of method and system of test NVME hard disk order stability
BR112017007040B1 (en) METHOD FOR USE IN A STORAGE DEVICE AND STORAGE DEVICE
CN110609596B (en) Development system and production method of data storage device
Melton et al. Inferring file system of solid state drives based on current consumption
WO2023034454A1 (en) Internal resource monitoring in memory devices
Ahmadian et al. Evaluating reliability of SSD-based I/O caches in enterprise storage systems
KR20210034456A (en) Storage device and method of operating the storage device
Liu et al. VST: A virtual stress testing framework for discovering bugs in SSD flash-translation layers