BR112015027470B1 - Aparelho, método e sistema para ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido - Google Patents
Aparelho, método e sistema para ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido Download PDFInfo
- Publication number
- BR112015027470B1 BR112015027470B1 BR112015027470-6A BR112015027470A BR112015027470B1 BR 112015027470 B1 BR112015027470 B1 BR 112015027470B1 BR 112015027470 A BR112015027470 A BR 112015027470A BR 112015027470 B1 BR112015027470 B1 BR 112015027470B1
- Authority
- BR
- Brazil
- Prior art keywords
- volatile memory
- memory devices
- controller logic
- operating frequency
- logic
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1008—Graphical user interface [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Abstract
AJUSTE DE DESEMPENHO IMEDIATO PARA DISPOSITIVOS DE ARMAZENAMENTO DE ESTADO SÓLIDO Métodos e aparelho referem-se às técnicas de ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido. Em uma modalidade, uma lógica de controlador controla o acesso a um ou mais dispositivos de memória não volátil. A lógica de controlador causa uma mudança em uma frequência operacional de um ou mais dentre: a lógica de controlador, um barramento que acopla um ou mais dispositivos de memória não volátil à lógica de controlador e um ou mais de um ou mais dispositivos de memória não volátil. Além disso, a lógica de controlador tem capacidade de causar a mudança na frequência operacional em resposta a um comando. Ademais, possibilita-se a mudança de limites de potência para escalonar desempenho de dispositivo de armazenamento de estado sólido com base em capacidades de sistema. Outras modalidades são descritas e reivindicadas.
Description
[0001] Este pedido refere-se e reivindica prioridade do Pedido Provisório de Patente de U.S. no 61/829.983, intitulado "ON-THE-FLY PERFORMANCE ADJUSTMENT FOR SOLID STATE STORAGE DEVICES" depositado em 31 de maio de 2013 e ao Pedido de Patente U.S. no 13/929,708, intitulado "ON-THE-FLY PERFORMANCE ADJUSTMENT FOR SOLID STORAGE DEVICES", depositado em 27 de junho de 2013.
[0002] A presente descrição refere-se, de modo geral, ao campo da eletrônica. Mais particularmente, algumas modalidades da invenção se referem, em geral, a técnicas de ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido.
[0003] Em geral, a memória usada para armazenar dados em um sistema de computação pode ser volátil (para armazenar informações voláteis) ou não volátil (para armazenar informações persistentes). Estruturas de dados voláteis armazenadas na memória volátil são usadas para informações temporárias ou intermediárias que são exigidas para suportar a funcionalidade de um programa durante o tempo de execução do programa. Por outro lado, estruturas de dados persistentes armazenadas na memória não volátil estão disponíveis além do tempo de execução de um programa e podem ser reutilizadas. Ademais, novos dados são tipicamente gerados como dados voláteis primeiro, antes que o usuário ou programador decida tornar os dados persistentes. Por exemplo, programadores ou usuários podem causar mapeamento (isto é, instanciamento) de estruturas voláteis na memória principal volátil que é diretamente acessível por um processador. Estruturas de dados persistentes, por outro lado, são instanciadas em dispositivos de armazenamento não volátil como discos giratórios fixados a barramentos de entrada/saída (I/O ou IO) ou dispositivos baseados em memória não volátil como memória flash.
[0004] Para aumentar o desempenho, alguns sistemas podem utilizar uma Unidade de Estado Sólido (SSD) que inclui memória não volátil tal como memória flash para fornecer uma solução de armazenamento não volátil. Tais SSDs geralmente tomam menos espaço, pesam menos, e são mais rápidos do que mais unidades de disco rígido tradicionais (HDDs). Ademais, as unidades de disco rígido fornecem uma solução de armazenamento de custo relativamente baixo e são usados em muitos dispositivos de computação para fornecer armazenamento não volátil. As unidades de disco rígido, no entanto, podem usar muita potência quando comparados a Unidades de Estado Sólido visto que uma unidade de disco rígido precisa girar seus discos giratórios em uma velocidade relativamente alta e mover cabeças de discos em relação aos discos giratórios para ler/gravar dados. Todos esses movimentos físicos geram calor e aumentam o consumo de potência.
[0005] Para essa finalidade, alguns dispositivos móveis estão migrando para unidades de estado sólido. Além disso, alguns sistemas de comutação estacionários (tais como computadores de mesa, estações de trabalho, servidores, etc.) podem utilizar tais unidades de estado sólido para aprimorar o desempenho. No entanto, utilizar o mesmo modelo de uso para unidades de estado sólido diferentes tipos de dispositivos de computação pode não resultar sempre em um equilíbrio ideal entre desempenho e confiabilidade.
[0006] Uma descrição detalhada é fornecida em referência às Figuras anexas. Nas Figuras, o(s) dígito(s) mais à esquerda de um número de referência identifica(m) uma Figura na qual o número de referência aparece primeiro. O uso dos mesmos números de referência em Figuras diferentes indica itens similares ou idênticos.
[0007] As Figuras 1, 5, e 6 e 7 ilustram diagramas de bloco de modalidades de sistemas de computação, que podem ser utilizados para implantar várias modalidades discutidas no presente documento.
[0008] As Figuras 2, 4, e 4A ilustram fluxogramas de acordo com algumas modalidades.
[0009] A Figura 3 ilustra um sample interface de usuário para fornecer controle sobre girar de um dispositivo de armazenamento de estado sólido, de acordo com uma modalidade.
[0010] A Figura 4B ilustra um diagrama de blocos de vários componentes de um SSD, de acordo com uma modalidade.
[0011] Na descrição detalhada a seguir, inúmeros detalhes específicos são estabelecidos com o fim de fornecer total compreensão das várias modalidades. No entanto, várias modalidades da invenção podem ser praticadas sem os detalhes específicos. Em outros casos, métodos, procedimentos, componentes e circuitos bem conhecidos não foram descritos em detalhes de modo a não obscurecer as modalidades particulares da invenção. Além disso, vários aspectos de modalidades da invenção podem ser realizados com o uso de vários meios, tais como circuitos semicondutores integrados ("hardware"), instruções legíveis por computador organizados em um ou mais programas ("software"), ou alguma combinação de hardware e software. Para os propósitos desta descrição, referência à "lógica" deve significar tanto hardware, software, firmware, como alguma combinação dos mesmos.
[0012] Algumas modalidades fornecem técnicas de ajuste de desempenho imediato para unidades de estado sólido. Conforme discutido no presente documento, ajuste de desempenho "imediato" ou "dinâmico" geralmente se refere a ajuste de desempenho sem exigir uma reinicialização de sistema de computação ou reinicialização de sistema operacional (OS). Além disso, tais unidades de estado sólido podem incluir memória flash (também denominado no presente documento de modo intercambiável como um dispositivo de armazenamento de estado sólido), memória de mudança de fase (PCM), memória de acesso aleatório de transferência de torque giratório (STTRAM), memória de acesso aleatório resistiva, memória de ponto cruzado 3D (Tridimensional), etc. Portanto, algumas modalidades fornecem métodos e/ou aparelho para permitir controle de desempenho dinâmico de SSDs. Uma modalidade permite que usuários finais controlem dinamicamente o desempenho de SSDs, trocando entre desempenho, confiabilidade, restrições térmicas, e/ou vida útil do dispositivo. Em uma modalidade, uma interface de comando (por exemplo, por meio de software) permite que tais trocas de desempenho sejam feitas de modo imediato, por exemplo, de dentro de um OS.
[0013] Em uma modalidade, um usuário final pode utilizar técnicas/recursos discutidos no presente documento para ajustar/sintonizar o desempenho de um SSD, por exemplo, permitindo over-clocking de SSD. Over-clocking geralmente se refere ao aumento da frequência operacional de um componente (tal como um SSD) além de uma frequência operacional normal/padrão, por exemplo, para aumentar o desempenho. Por exemplo, a sintonização pode ser baseada em OEM (Fabricante de Equipamento Original) e/ou tolerância de usuário final a mudanças de condições térmicas, de potência, e/ou confiabilidade. Tais abordagens permitem utilizar diferentes características ou modelo de uso para SSDs em diferentes tipos de dispositivos de computação para fornecer um equilíbrio mais ideal entre uma ou mais dentre condições de desempenho, confiabilidade, consumo de potência, condições térmicas, etc.
[0014] Ademais, sem algumas modalidades, os SSDs usados em maiores sistemas de computador de mesa com entrega de potência e capacidade de resfriamento adicional podem ter de operar dentro das mesmas restrições de SSDs usados em computadores notebook ultrafinos e suas capacidades menores de resfriamento e entrega de potência. Além disso, um servidor de arquivo pode ter diferentes expectativas de confiabilidade do que um sistema de jogos. Para essa finalidade, algumas modalidades permitem que um projetista de sistema (ou usuário savvy) tenha entrada nessas trocas de plataforma. Além disso, algumas modalidades fornecem uma capacidade similar a "Turbo" de SSD baseado em plataforma, por exemplo, em que o desempenho de SSD pode ser ajustado (também denominado no presente documento como "sintonização"), em tempo real ou durante o tempo de execução, para um ou mais períodos de tempo (consecutivos ou não consecutivos) e/ou com base em vários critérios, tais como: demandas de carga de trabalho de software, dados de sensor, e/ou condições ambientais. Adicionalmente, o Utilitário de Sintonização Extrema (XTU) da Corporação Intel® permite que usuários finais realizem over-clock da Unidade de Processamento Central (CPU), Unidade de Processamento Gráfico (GPU), e/ou memória de sistema para alcançar maior sistema desempenho. Esse utilitário pode ser estendido em uma modalidade para permitir que usuários finais realizem over-clock de seus SSDs, por exemplo, resultando em desempenho aprimorado para cargas de trabalho de ligação de I/O (entrada/saída) de armazenamento. Além disso, ao permitir a capacidade de over-clock de SSDs, algumas modalidades evitam o potencial de perda de dados extensiva (por exemplo, quando um controlador de dispositivo de armazenamento de estado sólido para de operar). Ademais, embora algumas modalidades no presente documento discutam técnicas aplicadas a SSDs, é previsto que as mesmas técnicas ou técnicas similares também possam ser aplicadas a outros tipos de dispositivos de memória não volátil.
[0015] As técnicas discutidas no presente documento podem ser fornecidas em vários sistemas de computação (por exemplo, incluindo telefones inteligentes, dispositivos do tipo tablet, consoles de jogos portáteis, Computadores Pessoais Ultra Móveis (UMPCs), etc.), tal como aquelas discutidas em referência às Figuras 1 a 7. Mais particularmente, a Figura 1 ilustra um diagrama de blocos de um sistema de computação 100, de acordo com uma modalidade da invenção. O sistema 100 pode incluir um ou mais processadores 102-1 através de 102-N (geralmente denominados no presente documento como "processadores 102" ou "processador 102"). Os processadores 102 podem se comunicar por meio de uma interconexão ou barramento 104. Cada processador pode incluir vários componentes em que alguns dos quais são somente discutidos em referência a processador 102-1 a título de clareza. Consequentemente, cada um dos processadores restantes 102-2 através de 102-N pode incluir os mesmos componentes ou componentes similares discutidos em referência ao processador 102-1.
[0016] Em uma modalidade, o processador 102-1 pode incluir um ou mais núcleos de processador 106-1 através de 106-M (denominados no presente documento como "núcleos 106," ou mais geralmente como "núcleo 106"), um cache 108 (que pode ser um cache compartilhado ou um cache privado em várias modalidades), e/ou um roteador 110. Os núcleos de processador 106 podem ser implantados em um único chip de circuito integrado (IC). Ademais, o chip pode incluir um ou mais caches compartilhados e/ou privados (tal como cache 108), barramentos ou interconexões (tal como um barramento ou interconexão 112), lógica 120, controladores de memória (tal como aqueles discutidos em referência às Figuras 5 a 7) ou outros componentes.
[0017] Em uma modalidade, o roteador 110 pode ser usado para se comunicar entre vários componentes do processador 102-1 e/ou sistema 100. Ademais, o processador 102-1 pode incluir mais do que um roteador 110. Ademais, a multitude de roteadores 110 pode estar em comunicação para permitir roteamento de dados entre vários componentes dentro ou fora do processador 102-1.
[0018] O cache 108 pode armazenar dados (por exemplo, incluindo instruções) que são utilizados por um ou mais componentes do processador 102-1, tal como os núcleos 106. Por exemplo, o cache 108 pode armazenar em cache de modo localizado dados armazenados em uma memória 114 para acesso mais rápido pelos componentes do processador 102. Conforme mostrado na Figura 1, a memória 114 pode estar em comunicação com os processadores 102 por meio da interconexão 104. Em uma modalidade, o cache 108 (que pode ser compartilhado) pode ter vários níveis, por exemplo, o cache 108 pode ser um cache de nível intermediário e/ou um cache de último nível (LLC). Além disso, cada um dos núcleos 106 pode incluir um nível 1 (L1) cache (116-1) (geralmente denominado no presente documento como "L1 cache 116"). Vários componentes do processador 102-1 podem se comunicar com o cache 108 diretamente, através de um barramento (por exemplo, o barramento 112) e/ou um controlador de memória ou hub.
[0019] Conforme mostrado na Figura 1, a memória 114 pode ser acoplada a outros componentes de sistema 100 através de um controlador de memória 120. A memória 114 pode incluir memória não volátil tal como memória flash (ou um dispositivo de armazenamento de estado sólido, incluindo um SSD), PCM, STTRAM, memória de acesso aleatório resistiva, Memória de Ponto Cruzado 3D, etc. em algumas modalidades. Embora o controlador de memória 120 seja mostrado como acoplado entre a interconexão 104 e a memória 114, o controlador de memória 120 pode ser localizado em outro lugar no sistema 100. Por exemplo, o controlador de memória 120 ou porções do mesmo podem ser fornecidas dentro de um dos processadores 102 em algumas modalidades. Além disso, em algumas modalidades, o sistema 100 pode incluir lógica (por exemplo, a lógica de controlador de armazenamento de estado sólido 125) para controlar o acesso a um ou mais NVM ou dispositivos (tais como um ou mais SSDs 130 discutidos, posteriormente, em referência à Figura 2) de memória não volátil (incluindo um ou armazenamento de estado sólido), em que os um ou mais dispositivos de NVM podem ser fornecidos na mesma matriz de circuito integrado em algumas modalidades). Ademais, embora a lógica 125 seja mostrada como diretamente acoplada à interconexão 104 na Figura 1, a lógica 125 pode se comunicar, alternativamente, por meio de um barramento de armazenamento/interconector (tal como o SATA (fixação de tecnologia avançada serial) discutido em referência à Figura 2) com um ou mais outros componentes de sistema 100 (por exemplo, em que o barramento de armazenamento é acoplado ao interconector 104 por meio de alguma outra lógica como uma ponte de barramento, chipset (tal como discutido em referência às Figuras 5 e 6), etc.). Adicionalmente, a lógica 125 pode ser incorporada em um controlador de memória (tal como aqueles discutidos em referência às Figuras 1 e 5 e 6) ou pelo menos fornecida em um mesmo dispositivo de circuito integrado em várias modalidades.
[0020] Ademais, a lógica 125 pode ser acoplada a um ou mais sensores 150 para receber informações (por exemplo, na forma de um ou mais bits ou sinais) para indicar o estado do ou valores detectados pelos um ou mais sensores 150. O(s) sensor(s) 150 pode(m) ser fornecido(s) próximo(s) aos componentes de sistema 100 (ou outros sistemas de computação discutidos no presente documento tal como aqueles discutidos em referência às outras Figuras incluindo 5 a 7, por exemplo), tais como os núcleos 106, interconexões 104 ou 112, componentes fora do processador 102, SSD, SSD barramento, barramento SATA, a lógica 125, etc., para captar variações em vários fatores que afetam o desempenho de potência/térmico do sistema/plataforma, tal como temperatura, frequência operacional, tensão operacional, consumo de potência, e/ou atividade de comunicação entre núcleos, etc.
[0021] A Figura 2 ilustra um fluxograma de alto nível para sintonizar um SSD, de acordo com uma modalidade. Embora a Figura 2 discuta a sintonização de um SSD, as mesmas técnicas ou técnicas similares também podem ser aplicadas a qualquer tipo de dispositivo de NVM de armazenamento de estado sólido. Conforme ilustrado, o software de sintonização de desempenho 202 (que pode ser um aplicativo em execução dentro de um OS 204) inclui um aplicativo de software de sintonização de desempenho de SSD 206 que aceita e valida a(s) solicitação(ões) de sintonização de desempenho de SSD de um usuário final (por exemplo, por meio de uma interface gráfica de usuário (GUI)) e/ou de um aplicativo de software automatizado (por exemplo, com base em um ou mais critérios predefinidos).
[0022] Em uma operação 208, um comando de driver passa para iniciar a sintonização/mudança ao desempenho de SSD (por exemplo, por meio de um driver de dispositivo de armazenamento tal como uma unidade de fixação de tecnologia avançada serial (SATA)). O comando de driver passa a uma lógica de controlador de SATA 210 (por exemplo, include em um Hub de Controle Periférico (PCH) ou outro hardware) por meio de um barramento SATA. Em uma modalidade, o controlador de SATA 210 é o mesmo ou similar à lógica 125 da Figura 1. Por sua vez, SSD 130 aceita o comando e realiza a mudança de desempenho que se aplica ao SSD (tal como mudar a frequência operacional do barramento que acopla um controlador de SSD interno às células de memória não volátil no SSD, a células de memória não volátil, e/ou outros componentes do SSD).
[0023] A Figura 3 ilustra um GUI de amostra para fornecer controles de software para sintonizar um SSD, de acordo com uma modalidade. Conforme discutido no presente documento, sintonizar um SSD se refere ao ajuste o desempenho de um SSD, por exemplo, permitindo-se over-clocking de SSD. Além disso, o over-clocking geralmente se refere ao aumento da frequência operacional de um componente (tal como um SSD, sua interface/barramento, ou a lógica de controlador de SSD 125, etc.) além de uma frequência operacional normal/padrão, por exemplo, para aumentar o desempenho. Por exemplo, a sintonização pode ser baseada em OEM (Fabricante de Equipamento Original) e/ou tolerância de usuário final a mudanças de condições térmicas, de potência, e/ou confiabilidade. Embora a Figura 3 discuta técnicas para sintonizar um SSD, as mesmas técnicas ou técnicas similares também podem ser aplicadas a outros tipos de dispositivos de armazenamento de estado sólido. A Figura 3 ilustra uma implantação de amostra com o uso do Utilitário de Sintonização Extrema (XTU) da Intel® em uma modalidade. Conforme mostrado, a GUI permite definição da frequência de controlador de SSD (1) tal como a frequência operacional da lógica 125 da Figura 1, a definição de limites de potência de SSD (2), visualizar padrão e frequência de controlador de SSD proposta e valores de modo de potência (3), visualizar um histograma da frequência de controlador de SSD em um dado período de tempo (4), e/ou visualizar a frequência operacional de controlador de SSD (5) atual.
[0024] Ademais, algumas modalidades fornecem ajuste imediato de desempenho características for dispositivos de armazenamento de estado sólido (incluindo SSDs) fornecendo-se a capacidade de realizar mudanças sem uma reinicialização de sistema ou OS. Isso permite que uma pluralidade de opções de sintonização em tempo real por meio de comunicação de software e/ou hardware e mecanismos de controle gerenciem sintonização dinâmica, conforme discutido em referência às Figuras 2 e 3, por exemplo. Em uma modalidade, uma interface de comando é fornecida para detectar opções configuráveis e mudanças de comunicação a uma unidade de armazenamento de estado sólido.
[0025] Por exemplo, a Figura 3 ilustra como um aplicativo de software pode ser usado para ajustar as características de desempenho do SSD. Embora uma implantação de amostra seja discutida em referência às Figuras 2 e 3, modalidades da invenção podem ser exemplificadas através de diferentes combinações de serviços, aplicações e serviços de apoio.
[0026] Consequentemente, algumas modalidades permitem que o dispositivo de armazenamento de estado sólido realize over-clocking sintonizando-se a frequência do controlador de dispositivo (por exemplo, a lógica 125 da Figura 1), escalonando-se dinamicamente a frequência de lógica de controlador além de nível de estoque através de um comando de SCT (Transporte de Comando Inteligente) (que pode ser transmitido através de um barramento SATA ou outra interface, incluindo por exemplo, através do interconector 104 da Figura 1), permitindo explosão de potência em aceleração ao limite de potência segura de dispositivo de armazenamento (por exemplo, em que "em aceleração" se refere a um período de pico de consumo de potência durante a explosão de transferência de dados), permitindo (por exemplo, SOC (Sistema On Chip)) que o consumo de potência exceda o limiar especificado por OEM através de um API (Interface de Programa de Aplicativo), permitindo (por exemplo, NAND e/ou NOR, ou outros tipos de NVM) over-clocking de memória flash escalonando- se dinamicamente a frequência flash além de nível de estoque através do comando de SCT, e/ou seleção de controladores de dispositivo de armazenamento de estado sólido para maiores compartimentos de desempenho com o uso de registradores internos (por exemplo, por meio de segmentação ou "compartimentação" de controladores de dispositivo de armazenamento de estado sólido por sua limite de frequencia operacional superior/máxima determinada/atribuída). Um "compartimento" geralmente se refere a um conjunto de componentes eletrônicos aos quais são atribuídos um SKU (Unidade de Manutenção de Estoque) com base em sua classificação de frequência operacional determinada/atribuída.
[0027] Ademais, tais técnicas podem ser usadas para permitir que um recurso de "SSD Turbo" em que plataforma lógica (tal como software e/ou firmware) possa modificar dinamicamente o desempenho de SSD para equilibrar/mudar o desempenho versus vida de bateria em fatores de forma particulares e condições operacionais. Além disso, algumas modalidades evitam falhas catastróficas (por exemplo, causados por ataques maliciosos) fornecendo métodos de recuperação (tal como discutido em referência à Figura 4) e limites fixados em faixas de entrada para sintonizar parâmetros de desempenho de SSD (tal como valores de frequência limítrofes para o dispositivo flash e/ou lógica de controlador 125) para fornecer proteção adicional, conforme será também discutido abaixo. Além disso, um utilitário pode ser fornecido para reinicializar a unidade após a falha, por exemplo, apagando-se a unidade e tornando-a utilizável novamente.
[0028] A Figura 4 ilustra um fluxograma de um método 400 para se recuperar de falha de acordo com uma modalidade. O método 400 pode ser usado para readquirir estabilidade após a falha, por exemplo, devido à seleção de parâmetros de sintonização excessivamente agressivos ao sintonizar o desempenho de um SSD. Embora a Figura 4 discuta técnicas de sintonização para um SSD, as mesmas técnicas ou técnicas similares também podem ser aplicadas a outros tipos de dispositivos de NVM. Em várias modalidades, uma ou mais operações do método 400 podem ser realizadas por um ou mais componentes discutidos em referência às outras Figuras (por exemplo, a lógica 125).
[0029] Em referência à Figura 4, após ativar a plataforma na operação 402, um SSD é ativado na operação 404. Em uma operação 406, a inicialização de SSD é realizada (por exemplo, retornando-se as definições de sintonização ou over-clocking aos valores padrão). Em uma operação 408 é realizado Autoteste de Ativação (POST) de BIOS (Sistema de Entrada e Saída Básico). Em uma operação 410, o BIOS tem uma oportunidade de realizar teste de SSD e/ou OC (OverClocking). Uma operação 412 determina se as operações de SSD são estáveis e, se não estiverem, o sistema é reinicializado retornando à operação 402. De outro modo, o método 400 continua com a inicialização OS na operação 414 (por exemplo, do SSD ou outro dispositivo NVM). Alternativamente, a operação 408 pode ser diretamente seguida pela operação 414. Em uma operação 416, OS está pronto e em operação (por exemplo, ocioso). Em uma modalidade, as operações 418 e/ou 420 são realizadas (uma vez que o OS é operacional na operação 416) para sintonizar over-clocking de SSD/sintonizar e determinar a estabilidade das operações de SSD em definições atuais. Se as operações de SSD se tornarem instáveis na operação 420, o sistema reinicializa retornando-se à operação 402.
[0030] Várias modalidades usam SCT e/ou ATA (Fixação de Tecnologia Avançada) comandos para se comunicar com SSDs para invocar a sintonização ou over-clocking. O comando de SCT pode ser transmitido por meio de um comando SATA enviado a um SSD. A Tabela 1 abaixo lista comandos de SCT que podem ser usados em algumas modalidades (que podem ser específicos de fornecedor em algumas modalidades). Uma modalidade usa comandos de SCT para o valor de temporização de NAND, o valor de frequência de controlador máximo e valor de potência acumulada. Em uma modalidade, um comando de trava de over-clocking de SSD é usado para evitar que usuários realizem over-clocking da unidade por meio de software a menos que explicitamente destravado (por exemplo, ajudando a evitar códigos maliciosos ou impedir que alguns usuários causem danos). Portanto, a trava evita a sintonização ou over-clocking e o destravamento permite mudanças. O comando de trava pode causar a definição (ou limpeza, dependendo da implantação) de um bit de estado de trava em algum dispositivo de armazenamento (tal como uma memória (incluindo memórias discutidas em referência às Figuras 1 ou 5 a 7), registrador, memória na lógica de controlador 125, no firmware, no SSD, etc.). Para proteção adicional, algumas modalidades limitam a faixa dos valores aceitos para esses itens abaixo.
TABELA 1
[0031] Ademais, comandos ATA podem ser usados para ler o modelo/números de série do SSD e outras informações de identificação (por exemplo, a partir dos endereços de ATA em um dispositivo de armazenamento, firmware, etc.). A temperatura do SSD também pode ser monitorada por meio de comando ATA (por exemplo, por meio de um ou mais dos sensores 150 da Figura 1, que podem ser fisicamente próximos ao SSD, estar dentro do SSD, ou de outro modo termicamente acoplados ao SSD).
[0032] Algumas modalidades fazem uso dos protocolos de comando ATA e SCT existentes; no entanto, novos comandos são adicionados para os recursos de sintonização exclusivos discutidos no presente documento (por exemplo, tal como mostrado na Tabela 1). A maioria dos comandos usados são comandos baseados em SCT. Por exemplo, em relação à última linha da Tabela 1, o comando de Travamento de Over-clocking de Unidade é criado (e uma meia dúzia de outros mostrados na Tabela 1) para gerenciar a capacidade de sintonizar o desempenho de SSD imediato e em tempo real (em vez de por meio de firmware codificado permanentemente que os fabricantes de SSD usariam para desenvolver/testar suas soluções, por exemplo).
[0033] Ademais, algumas modalidades usam comandos ATA, por exemplo, para telemetria como entradas para ciclos de retorno em que software inteligente muda dinamicamente os parâmetros de sincronização. Por exemplo, quando empurrar os limites de desempenho, o dispositivo de armazenamento pode aquecer e comandos ATA para recuperar os dados de temperatura podem ser usados para ajudar a detectar essa situação e reduzir um ou mais parâmetros de sincronização para manter a unidade em condições operacionais saudáveis.
[0034] A Figura 4A ilustra um fluxograma de um método 450 para determinar quais unidades ou dispositivos de armazenamento (por exemplo, SSDs) em um sistema têm capacidade de serem sintonizados, de acordo com uma modalidade. Em uma modalidade, o método 450 é realizado antes de expor a opção de sintonizar o desempenho a um usuário por meio de software ou utilitários. Em várias modalidades, uma ou mais operações do método 400 podem ser realizadas por um ou mais componentes discutidos em referência às outras Figuras (por exemplo, a lógica 125).
[0035] Em referência à Figura 4A, em uma operação 452, locais para dispositivos de armazenamento endereçáveis são determinados. Em uma operação 454, cada dispositivo de armazenamento (identificado na operação 452) é inquirido com um comando exclusivo (por exemplo, por meio de comandos SCT/ATA ou outra interface). Em uma operação 456, se o dispositivo responder corretamente à inquirição da operação 454, o dispositivo é sinalizado como sintonizável em uma operação 458. Em uma operação 460, uma lista de unidades sintonizáveis é exibida (por exemplo, em uma interface gráfica de usuário (GUI)) e/ou permite-se que comandos de sintonização sejam enviados às unidades suportadas. Conforme mostrado na Figura 4A, se o dispositivo falhar em responder na operação 456, uma operação 462 sinaliza o dispositivo como não sintonizável e o método 450 retorna à operação 460.
[0036] A Figura 4B ilustra um diagrama de blocos de vários componentes de um SSD, de acordo com uma modalidade. Conforme mostrado na Figura 4B, o SSD 130 inclui uma lógica de controlador 482 (que, por sua vez, inclui um ou mais núcleos de processador ou processadores 484 e uma memória lógica de controlador 486), Memória de Acesso Aleatório (RAM) 488, armazenamento de firmware 490 e um ou mais módulos de memória 492-1 a 492-n (que pode incluir NAND, NOR, ou outros tipos de memória não volátil). Os módulos de memória 492-1 a 492-n são acoplados à memória lógica de controlador 486 por meio de um ou mais canais de memória ou barramentos. Além disso, SSD 130 se comunica com lógica a 125 por meio de uma interface (tal como um SATA, PCIe (expresso de Conector de Componente Periférico), etc.).
[0037] Ademais, a sintonização pode ser iniciada pelo software de sistema (por exemplo, aplicativo, utilitário, etc.) ou sistema BIOS. Além disso, a sintonização pode ser iniciada manualmente (por exemplo, por meio de um usuário GUI) ou automaticamente (por exemplo, por lógica inteligente, incluindo software e/ou firmware). Comandos para iniciar essa sintonização podem utilizar os protocolos SCT ou ATA, tal como discutido em referência à Tabela 1 acima. Por exemplo, quando iniciado de dentro do OS, os comandos atravessam o driver de dispositivo de armazenamento (que pode ser armazenado na memória 114 da Figura 1, por exemplo), o sistema interface, SATA, ou barramento PCIe, ao dispositivo de armazenamento (por exemplo, SSD 130). A lógica de controlador 482 no dispositivo de armazenamento, então, executa código de firmware para analisar e executar os comandos.
[0038] Em uma modalidade, a lógica de controlador 482 pode mudar sua própria frequência de relógio/operacional mudando a razão (também conhecida como multiplicador) ao seu relógio existente. Por exemplo, se o relógio nominal do controlador for 33,3MHz e a razão normalmente fixada for 3 para uma frequência eficaz de 100MHz, mudar a razão para 4 forneceria uma maior frequência de relógio (por exemplo, 133MHz) que pode acelerar o desempenho. De modo similar, a frequência de relógio/operacional de um ou mais dos barramentos ou canais acoplados entre os módulos de memória 492-1 a 492-n e memória lógica de controlador 786, assim como frequências operacionais/de relógio de um ou mais dos módulos de memória 492-1 to 492-n podem ser mudadas em várias modalidades. Ademais, embora um exemplo de razões de mudança seja fornecido, em vez disso (ou adicionalmente a isso) também pode ser possível mudar a frequência de relógio nominal diretamente. Em tais casos, o fluxo seria similar e pode incluir, opcionalmente, comunicação/controle de uma fonte de relógio externa.
[0039] De acordo com algumas modalidades, os botões usados podem incluir um ou mais dentre: (a) frequência de lógica de controlador 125, por exemplo, derivada da temporização (por exemplo, entre cerca de 400MHz to 625MHz) de sistema PLL (Ciclo Travado de Fase); (b) frequência de barramento SSD que pode incluir o barramento SATA acoplado ao SSD, um barramento interno no SSD que é acoplado a células de memória não volátil do SSD, etc. (por exemplo, comutação entre cerca de 83MHz e 100MHz); e/ou (c) modo de potência (tal como baixo, típico, não restrito, etc.).
[0040] Adicionalmente, de acordo com algumas modalidades, os valores que são monitorados podem incluir um ou mais dentre: temperatura, a frequência de lógica de controlador 125, frequência de barramento de memória flash (por exemplo, que pode ser a mesma frequência de lógica de controlador 125), frequência operacional de dispositivo de armazenamento de estado sólido, e/ou potência acumulada.
[0041] Ademais, algumas modalidades fornecem uma capacidade similar ao dispositivo de armazenamento de estado sólido "Turbo" baseado em plataforma, por exemplo, em que o desempenho de dispositivos de armazenamento de estado sólido pode ser aumentado, por exemplo, em tempo real, para um ou mais períodos de tempo (consecutivos ou não consecutivos) e/ou com base em vários critérios, tais como: demandas de carga de trabalho de software, dados de sensor, e/ou condições ambientais. O recurso de SSD Turbo pode ser formado colocando-se juntos a sintonização de SSD e blocos de formação de over-clocking discutidos no presente documento. Portanto, algumas modalidades fornecem uma estrutura, pela primeira vez, que permite mudanças dinâmicas ao desempenho de SSD, incluindo frequência(s) de monitoramento, consumo de potência e parâmetros de ciclo fechado. Desse modo, o princípio geral de Turbo pode ser aplicado aos SSDs, por exemplo, acelerar os SSDs para cumprir demandas de pico e desacelerar SSDs (utilizando níveis de potência menor) quando a demanda é reduzida.
[0042] A Figura 5 é um diagrama em blocos de um sistema de computação 500 de acordo com uma modalidade da presente invenção. O sistema de computação 500 pode incluir uma ou mais Unidade(s) de Processamento Central (CPUs) 502 ou processadores que se comunicam por meio de uma rede de interconexão (ou barramento) 504. Os processadores 502 podem incluir um processador de propósito geral, um processador de rede (que processa dados comunicados através de uma rede de computador 503), um processador de aplicativo (tal como aqueles usados em telefones celulares, telefones inteligentes, etc.), ou outros tipos de um processador (incluindo um computador com conjunto reduzido de instruções (RISC) processador ou um computador com conjunto complexo de instruções (CISC)). Vários tipos de redes de computador 503 podem ser utilizados incluindo redes com fio (por exemplo, Ethernet, Gigabit, Fiber, etc.) ou redes sem fio (tal como celular, 3G (Tecnologia de Telefone Celular de Terceira Geração ou Formato Sem Fio de Terceira Geração (UWCC)), 5G, Baixa Potência Embutida (LPE), etc.). Ademais, os processadores 502 podem ter um projeto de único núcleo ou múltiplos núcleos. Os processadores 502 com um projeto de múltiplos núcleos podem integrar diferentes tipos de núcleos de processador na mesma matriz de circuito integrado (IC). Além disso, os processadores 502 com um projeto de múltiplos núcleos podem ser implantados como multiprocessadores simétricos ou assimétricos.
[0043] Em uma modalidade, um ou mais dos processadores 502 pode ser o mesmo ou similar aos processadores 102 da Figura 1. Por exemplo, um ou mais dos processadores 502 pode incluir um ou mais dos núcleos 106 e/ou cache 108. Além disso, as operações discutidas em referência às Figuras 1 a 4 podem ser realizadas por um ou mais componentes do sistema 500.
[0044] Um chipset 506 também pode se comunicar com a rede de interconexão 504. O chipset 506 pode incluir um hub de controle de gráfico e memória (GMCH) 508. O GMCH 508 pode incluir um controlador de memória 510 (que pode ser o mesmo ou similar ao controlador de memória 120 da Figura 1 em uma modalidade) que se comunica com a memória 114. A memória 114 pode armazenar dados, que inclui sequências de instruções que são executados pela CPU 502, ou qualquer outro dispositivo incluído no sistema de computação 500. Além disso, o sistema 500 inclui lógica 125 e SSD 130 (que podem ser acoplados a sistema 500 por meio de barramento 522, tal como ilustrado, por meio de outros interconectores tal como 504, em que a lógica 125 é incorporada ao chipset 506, etc. em várias modalidades). Em uma modalidade da invenção, a memória 114 pode incluir um ou mais dispositivos de armazenamento (ou memória) volátil tal como memória de acesso aleatório (RAM), RAM dinâmica (DRAM), DRAM síncrona (SDRAM), RAM estática (SRAM), ou outros tipos de dispositivos de armazenamento. A memória não volátil também pode ser utilizada tal como um disco rígido, flash, PCM, Memória de Ponto Cruzado 3D, Memória de Acesso Aleatório Resistiva, e STTRAM. Dispositivos adicionais podem se comunicar por meio da rede de interconexão 504, tais como múltiplos CPUs e/ou múltiplas memórias de sistema.
[0045] O GMCH 508 também pode incluir uma interface gráfica 514 que se comunica com um acelerador gráfico 516. Em uma modalidade da invenção, a interface gráfica 514 pode se comunicar com o acelerador gráfico 516 por meio de uma porta gráfica acelerada (AGP). Em uma modalidade da invenção, um visor 517 (tal como um visor de painel plano, tela sensível ao toque, etc.) pode se comunicar com a interface gráfica 514 através de, por exemplo, um conversor de sinal que translada uma representação digital de uma imagem armazenada em um dispositivo de armazenamento tal como memória de vídeo ou memória de sistema aos sinais de exibição que são interpretados e exibidos pelo visor. Os sinais de exibição produzidos pelo dispositivo de exibição podem passar por vários dispositivos de controle antes de serem interpretados por e subsequentemente exibidos no visor 517.
[0046] Uma interface de hub 518 pode permitir que o GMCH 508 e um hub de controle de entrada/saída (ICH) 520 se comuniquem. O ICH 520 pode fornecer uma interface aos dispositivos de I/O que se comunicam com o sistema de computação 500. O ICH 520 pode se comunicar com um barramento 522 através de uma ponte periférica (ou controlador) 524, tal como uma ponte de interconector de componente periférico (PCI), um controlador de barramento serial universal (USB) ou outros tipos de pontes periféricas ou controladores. A ponte 524 pode fornecer um caminho de dados entre a CPU 502 e dispositivos periféricos. Outros tipos de topologias podem ser utilizados. Além disso, múltiplos barramentos podem se comunicar com o ICH 520, por exemplo, através de múltiplas pontes ou controladores. Ademais, outros periféricos em comunicação com o ICH 520 podem incluir, em várias modalidades da invenção, eletrônica de unidade integrada (IDE) ou pequena interface de sistema de computador (SCSI) disco(s) rígido(s), porta(s) USB, um teclado, um mouse, porta(s) paralela(s), porta(s) em série, unidade(s) de disquete, suporte de saída digital (por exemplo, interface de vídeo digital (DVI)) ou outros dispositivos.
[0047] O barramento 522 pode se comunicar com um dispositivo de áudio 526, um ou mais disco(s) rígido(s) 528, e um dispositivo de interface de rede 530 (que está em comunicação com a rede de computador 503, por exemplo, por meio de uma interface com fio ou sem fio). Conforme mostrado, o dispositivo de interface de rede 530 pode ser acoplado a uma antena 531 para se comunicar sem uso de fios (por exemplo, por meio de uma interface 802.11 de Instituto de Engenheiros de Elétrica e Eletrônica (IEEE) (incluindo IEEE 802.11a/b/g/n, etc.), interface de celular, 3G, 5G, LPE, etc.) com a rede 503. Outros dispositivos podem se comunicar por meio do barramento 522. Além disso, vários componentes (tais como o dispositivo de interface de rede 530) podem se comunicar com o GMCH 508 em algumas modalidades da invenção. Adicionalmente, o processador 502 e o GMCH 508 podem ser combinados para formar um único chip. Ademais, o acelerador gráfico 516 pode ser incluído dentro do GMCH 508 em outras modalidades da invenção.
[0048] Ademais, o sistema de computação 500 pode incluir memória volátil e/ou memória não volátil (ou armazenamento). Por exemplo, memória não volátil pode incluir um ou mais dentre o seguinte: memória somente de leitura (ROM), ROM programável (PROM), PROM apagável (EPROM), EPROM eletricamente (EEPROM), um disco rígido (por exemplo, 528), um disquete, um disco compacto ROM (CD-ROM), um disco versátil digital (DVD), memória flash, um disco magneto-óptico, ou outros tipos de meios legíveis em máquina não voláteis que têm capacidade de armazenar dados eletrônicos (por exemplo, incluindo instruções).
[0049] A Figura 6 ilustra um sistema de computação 600 que é disposto em uma configuração ponto a ponto (PtP), de acordo com uma modalidade da invenção. Em particular, a Figura 6 mostra um sistema em que processadores, memória, e entrada/saída dispositivos são interconectados por várias interfaces ponto a ponto. As operações discutidas em referência às Figuras 1 a 5 podem ser realizadas por um ou mais componentes do sistema 600.
[0050] Conforme ilustrado na Figura 6, o sistema 600 pode incluir diversos processadores, dos quais somente dois processadores 602 e 604 são mostrados para efeito de clareza. Os processadores 602 e 604 podem incluir, cada um, um hub de controlador de memória local (MCH) 606 e 608 para permitir a comunicação com memórias 610 e 612. As memórias 610 e/ou 612 podem armazenar vários dados tais como aqueles discutidos em referência à memória 114 das Figuras 1 e/ou 5. Além disso, MCH 606 e 608 pode incluir o controlador de memória 120 em algumas modalidades. Ademais, o sistema 600 inclui lógica 125 e SSD 130 (que podem ser acoplados ao sistema 600 por meio de barramento 640/644 tais como ilustrados, por meio de outras conexões ponto a ponto ao(s) processador(es) 602/604 ou chipset 620, em que a lógica 125 é incorporada ao chipset 620, etc. em várias modalidades).
[0051] Em uma modalidade, os processadores 602 e 604 podem ser um dos processadores 502 discutidos em referência à Figura 5. Os processadores 602 e 604 podem mudar dados por meio de uma interface ponto a ponto (PtP) 614 com o uso de circuitos de interface PtP 616 e 618, respectivamente. Além disso, cada um dos processadores 602 e 604 pode trocar dados com um chipset 620 por meio de interfaces PtP 622 e 624 individuais com o uso de circuitos de interface ponto a ponto 626, 628, 630, e 632. O chipset 620 pode também trocar dados com um circuito gráfico de alto desempenho 634 por meio de uma interface gráfica de alto desempenho 636, por exemplo, com o uso de um circuito de interface de PtP 637. Conforme discutido em referência à Figura 5, a interface gráfica 636 pode ser acoplada a um dispositivo de exibição (por exemplo, o visor 517) em algumas modalidades.
[0052] Conforme mostrado na Figura 6, um ou mais dos núcleos 106 e/ou cache 108 da Figura 1 podem ser localizados dentro dos processadores 602 e 604. Outras modalidades da invenção, no entanto, podem existir em outros circuitos, em unidades lógicas, ou dispositivos dentro do sistema 600 da Figura 6. Ademais, outras modalidades da invenção podem ser distribuídas em todos os vários circuitos, unidades lógicas ou dispositivos ilustrados na Figura 6.
[0053] O chipset 620 pode se comunicar com um barramento 640 com o uso de um circuito de interface de PtP 641. O barramento 640 pode ter um ou mais dispositivos que se comunicam com o mesmo, tais como uma ponte de barramento 642 e dispositivos de I/O 643. Por meio de um barramento 644, a ponte de barramento 642 pode se comunicar com outros dispositivos, tais como um teclado/mouse 645, dispositivos de comunicação 646 (tal como modems, dispositivos de interface de rede ou outros dispositivos de comunicação que podem se comunicar com a rede de computador 503, conforme discutido em referência a dispositivo de interface de rede 530 por exemplo, incluindo por meio da antena 531), dispositivo de I/O de áudio, e/ou um dispositivo de armazenamento de dados 648. O dispositivo de armazenamento de dados 648 pode armazenar código 649 que podem ser executados pelos processadores 602 e/ou 604.
[0054] Em algumas modalidades, um ou mais dos componentes discutidos no presente documento podem ser incorporados como um dispositivo de Sistema On Chip (SOC). A Figura 7 ilustra um diagrama de blocos de um pacote de SOC de acordo com um exemplo. Conforme ilustrado na Figura 7, SOC 702 inclui um ou mais núcleos de Unidade de Processamento Central (CPU) 720, um ou mais núcleos de Unidade de Processador Gráfico (GPU) 730, uma interface de entrada/saída (I/O) 740 e um controlador de memória 742. Vários componentes do pacote de SOC 702 podem ser acoplados a um interconector ou barramento, tal como discutido no presente documento em referência às outras Figuras. Além disso, o pacote de SOC 702 pode incluir mais ou menos componentes, tais como aqueles discutidos no presente documento em referência às outras Figuras. Além disso, cada componente do pacote de SOC 720 pode incluir um ou mais outros componentes, por exemplo, conforme discutido em referência às outras Figuras no presente documento. Em uma modalidade, o pacote de SOC 702 (e seus componentes) é fornecido em uma ou mais matrizes de circuito integrado (IC), por exemplo, que são empacotados em um único dispositivo semicondutor.
[0055] Conforme ilustrado na Figura 7, o pacote de SOC 702 é acoplado a uma memória 760 (que pode ser similar ou a mesma memória discutida no presente documento em referência às outras Figuras) por meio do controlador de memória 742. Em uma modalidade, a memória 760 (ou uma porção da mesma) pode ser integrada no pacote de SOC 702.
[0056] A interface de I/O 740 pode ser acoplada a um ou mais dispositivos de I/O 770, por exemplo, por meio de um interconector e/ou barramento tal como discutido no presente documento em referência às outras Figuras. O(s) I/O dispositivo(s) 770 pode incluir um ou mais de um teclado, um mouse, um dispositivo touchpad, um visor, um dispositivo de captura de imagem/vídeo (tal como uma câmera ou câmera filmadora/gravadora de vídeo), uma tela sensível ao toque, um alto-falante, ou similares. Ademais, o pacote de SOC 702 pode incluir/integrar a lógica 125 em uma modalidade. Alternativamente, a lógica 125 pode ser fornecida fora do pacote de SOC 702 (isto é, como uma lógica distinta).
[0057] Os exemplos seguintes pertencem às modalidades adicionais. O exemplo 1 inclui um aparelho que compreende: lógica de controlador para controlar o acesso a um ou mais dispositivos de memória não volátil; em que a lógica de controlador deve causar uma mudança em uma frequência operacional de um ou mais dentre: a lógica de controlador, um barramento que acopla os um ou mais dispositivos de memória não volátil à lógica de controlador, e um ou mais dos um ou mais dispositivos de memória não volátil, em que a lógica de controlador deve causar a mudança na frequência operacional em resposta a um comando. O exemplo 2 inclui o aparelho do exemplo 1, em que os um ou mais dispositivos de memória não volátil devem compreender um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva, e uma memória de acesso aleatório de transferência de torque giratório. O exemplo 3 inclui o aparelho do exemplo 1, em que o comando deve compreender um comando de transporte de comando inteligente. O exemplo 4 inclui o aparelho do exemplo 1, em que o comando deve ser emitido durante o tempo de execução para causar a mudança sem uma reinicialização de sistema ou sistema operacional. O exemplo 5 inclui o aparelho do exemplo 1, em que a lógica de controlador deve abster-se de causar a mudança em resposta a um comando de trava. O exemplo 6 inclui o aparelho do exemplo 1, em que a lógica de controlador deve abster-se de causar a mudança em resposta a um valor de um bit de estado de trava. O exemplo 7 inclui o aparelho do exemplo 1, em que a lógica de controlador deve causar um reinício de sistema em resposta à detecção de uma condição operacional instável associada aos um ou mais dispositivos de memória não volátil. O exemplo 8 inclui o aparelho do exemplo 1, em que o comando deve ser emitido por uma interface de usuário ou um aplicativo de software automatizado. O exemplo 9 inclui o aparelho do exemplo 1, em que os um ou mais dispositivos de memória não volátil estão em uma mesma matriz de circuito integrado. O exemplo 10 inclui o aparelho do exemplo 1, em que um ou mais da lógica de controlador, os um ou mais dispositivos de memória não volátil e um núcleo de processador estão em uma mesma matriz de circuito integrado. O exemplo 11 inclui o aparelho do exemplo 1, em que um controlador de memória deve compreender a lógica de controlador.
[0058] O exemplo 12 inclui um método que compreende: controlar o acesso a um ou mais dispositivos de memória não volátil por meio de lógica de controlador e causar uma mudança em uma frequência operacional de um ou mais dentre: a lógica de controlador, um barramento que acopla os um ou mais dispositivos de memória não volátil à lógica de controlador e um ou mais dos um ou mais dispositivos de memória não volátil da lógica de controlador, em que a lógica de controlador causa a mudança na frequência operacional em resposta a um comando. O exemplo 13 inclui o método do exemplo 12, em que os um ou mais dispositivos de memória não volátil compreendem um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva e uma memória de acesso aleatório de transferência de torque giratório. O exemplo 14 inclui o método do exemplo 12, em que o comando compreende um comando de transporte de comando inteligente. O exemplo 15 inclui o método do exemplo 12 que compreende, adicionalmente, emitir o comando durante o tempo de execução para causar a mudança sem uma reinicialização de sistema ou sistema operacional. O exemplo 16 inclui o método do exemplo 12 que compreende, adicionalmente, a lógica de controlador que se abstém de causar a mudança em resposta a um comando de trava. O exemplo 17 inclui o método do exemplo 12 que compreende, adicionalmente, a lógica de controlador que se abstém de causar a mudança em resposta a um valor de um bit de estado de trava. O exemplo 18 inclui o método do exemplo 12, que compreende, adicionalmente, a lógica de controlador que causa um reinício de sistema em resposta à detecção de uma condição operacional instável associada aos um ou mais dispositivos de memória não volátil. O exemplo 19 inclui o método do exemplo 12 que compreende, adicionalmente, emitir o comando por uma interface de usuário ou um aplicativo de software automatizado.
[0059] O exemplo 20 inclui um sistema que compreende: um ou mais dispositivos de memória não volátil; e pelo menos um núcleo de processador para acessar os um ou mais dispositivos de memória não volátil por meio de lógica de controlador, em que a lógica de controlador deve causar uma mudança em uma frequência operacional de um ou mais dentre: a lógica de controlador, um barramento que acopla os um ou mais dispositivos de memória não volátil à lógica de controlador, e um ou mais dos um ou mais dispositivos de memória não volátil, em que a lógica de controlador deve causar a mudança na frequência operacional em resposta a um comando. O exemplo 21 inclui o sistema do exemplo 20, em que os um ou mais dispositivos de memória não volátil devem compreender um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva, e uma memória de acesso aleatório de transferência de torque giratório. O exemplo 22 inclui o sistema do exemplo 20, em que o comando deve compreender um comando de transporte de comando inteligente. O exemplo 23 inclui o sistema do exemplo 20, em que o comando deve ser emitido durante o tempo de execução para causar a mudança sem uma reinicialização de sistema ou sistema operacional. O exemplo 24 inclui o sistema do exemplo 20, em que um ou mais dentre a lógica de controlador, os um ou mais dispositivos de memória não volátil e o pelo menos um núcleo de processador estão em uma mesma matriz de circuito integrado. O exemplo 25 inclui o sistema do exemplo 20 que compreende, adicionalmente, uma tela sensível ao toque para exibir dados armazenados nos um ou mais dispositivos de memória não volátil.
[0060] O exemplo 26 inclui um aparelho para ajustar desempenho for dispositivos de armazenamento de estado sólido imediato, sendo que o aparelho compreende: meios para controlar o acesso a um ou mais dispositivos de memória não volátil acoplados a lógica de controlador; e meios para causar uma mudança em uma frequência operacional de um ou mais dentre: a lógica de controlador, um barramento que acopla os um ou mais dispositivos de memória não volátil à lógica de controlador e um ou mais dos um ou mais dispositivos de memória não volátil da lógica de controlador, em que a lógica de controlador causa a mudança na frequência operacional em resposta a um comando. O exemplo 27 inclui o aparelho do exemplo 26 que compreende meios para emitir o comando durante o tempo de execução para causar a mudança sem uma reinicialização de sistema ou sistema operacional. O exemplo 28 inclui o aparelho do exemplo 26, que compreende meios para se abster de causar a mudança em resposta a um comando de trava. O exemplo 29 inclui o aparelho do exemplo 26, que compreende meios para se abster de causar a mudança em resposta a um valor de um bit de estado de trava.
[0061] O exemplo 30 inclui um meio legível por computador que compreende um ou mais instruções que, quando executadas em um processador, configuram o processador para realizar um ou mais operações de qualquer um dos exemplos 12 a 19.
[0062] Em várias modalidades da invenção, as operações discutidas no presente documento, por exemplo, em referência às Figuras 1 a 7, podem ser implantadas como hardware (por exemplo, conjunto de circuitos), software, firmware, microcódigo ou combinações dos mesmos, que podem ser fornecidos como um produto de programa de computador, por exemplo, incluindo um meio tangível (por exemplo, não transitório) legível por máquina ou meio legível por computador que tem armazenado no mesmo instruções (ou procedimentos de software) usadas para programar um computador para realizar um processo discutido no presente documento. Além disso, o termo "lógica" pode incluir, à título de exemplo, software, hardware, ou combinações de software e hardware. O meio legível em máquina pode incluir um dispositivo de armazenamento tal como aqueles discutidos em relação às Figuras 1 a 7.
[0063] Adicionalmente, tais meios legíveis por computador tangíveis podem ser transferidos por download como um produto de programa de computador, em que o programa pode ser transferido de um computador remoto (por exemplo, um servidor) a um computador de solicitação (por exemplo, um cliente) por meio de sinais de dados (tal como em uma onda portadora ou outro meio de propagação) por meio de um enlace de comunicação (por exemplo, um barramento, um modem, ou uma conexão de rede).
[0064] Referências no decorrer desse relatório descritivo a "uma (1) modalidade" ou "uma modalidade" significam que um recurso, estrutura ou característica particular descrita em conexão com uma modalidade pode ser incluída em pelo menos uma implantação. O aparecimento da frase "em uma modalidade" em vários lugares no relatório descritivo pode ou não se referir necessariamente à mesma modalidade
[0065] Além disso, na descrição e reivindicações, os termos "acoplado(a)" e "conectado(a)", junto a seus derivados, podem ser usados. Em algumas modalidades da invenção, "conectado" pode ser usado para indicar que dois ou mais elementos estão em contato físico ou contato elétrico um com o outro. "Acoplado" pode significar que dois ou mais elementos estão em contato físico ou contato elétrico. No entanto, o termo "acoplado" também pode significar que dois ou mais elementos não estão em contato direto um com o outro, mas ainda assim cooperam ou interagem entre si.
[0066] Desse modo, embora as modalidades da invenção tenham sido descritas na linguagem específica aos recursos estruturais e/ou ações metodológicas, deve-se entender que a matéria reivindicada pode não ser limitada aos recursos específicos ou ações descritas. Em vez disso, os recursos e ações específicos são revelados como formas de amostra de implantação da matéria reivindicada.
Claims (11)
1. Aparelho que compreende: lógica de controlador (125), em que a lógica de controlador (125) causa a mudança em uma frequência operacional de um ou mais dispositivos de memória não volátil (130) em resposta a um comando, e os referidos um ou mais dispositivos de memória não volátil (130) acoplados à lógica de controlador (125), caracterizado pelo fato de que: a lógica de controlador (125) controla o acesso a um ou mais dispositivos de memória não volátil (130), e a lógica de controlador (125) causa, em resposta a um comando de trava de over-clocking e bit de estado de trava permitir over-clocking da frequência operacional de um ou mais dispositivos de memória não volátil (130), uma mudança na frequência operacional de um ou mais dispositivos de memória não volátil (130) para uma frequência operacional além da frequência operacional normal/padrão de um ou mais dispositivos de memória não volátil (130).
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o um ou mais dispositivos de memória não volátil (130) devem compreender um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva e uma memória de acesso aleatório de transferência de torque giratório.
3. Aparelho, de acordo com qualquer uma das reivindicações 1 a2, caracterizado pelo fato de que a lógica de controlador (125) se abstém de causar a mudança em resposta a um valor de um bit de estado de trava.
4. Método caracterizado pelo fato de que compreende: acoplar um ou mais dispositivos de memória não volátil (130) a uma lógica de controlador (125) controlar o acesso a um ou mais dispositivos de memória não volátil (130) por meio de lógica de controlador (125); aceitar, por um ou mais dispositivos de memória não volátil (130), um comando de trava de over-clock, e causar, pela lógica de controlador (125) e em resposta ao comando de trava de over-clock e o bit de estado de trava permitir over-clocking da frequência operacional de um ou mais dispositivos de memória não volátil (130), uma mudança na frequência operacional de um ou mais dispositivos de memória não volátil (130) para uma frequência operacional além da frequência operacional normal/padrão de um ou mais dispositivos de memória não volátil (130).
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o um ou mais dispositivos de memória não volátil (130) compreendem um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva e uma memória de acesso aleatório de transferência de torque giratório.
6. Método, de acordo com qualquer uma das reivindicações 4 a 5, caracterizado pelo fato de que ainda compreende a lógica de controlador (125) que se abstém de causar a mudança em resposta a um valor de um bit de estado de trava.
7. Método, de acordo com qualquer uma das reivindicações 4 a 6, caracterizado pelo fato de que ainda compreende a lógica de controlador (125) que causa um reinício de sistema em resposta à detecção de uma condição operacional instável associada com o um ou mais dispositivos de memória não volátil.
8. Sistema que compreende: um ou mais dispositivos de memória não volátil(130); e pelo menos um núcleo de processador para acessar um ou mais dispositivos de memória não volátil (130) por meio de lógica de controlador, em que um ou mais dispositivos de memória não volátil (130) são configurados para serem acoplados a uma lógica de controlador (125); caracterizado pelo fato de que: a lógica de controlador (125) controla o acesso a um ou mais dispositivos de memória não volátil (130), e a lógica de controlador (125) causa, em resposta a um comando de trava de over-clocking e um bit de estado de trava permitir over-clocking da frequência operacional de um ou mais dispositivos de memória não volátil (130), uma mudança na frequência operacional de um ou mais dispositivos de memória não volátil (130) para uma frequência operacional além da frequência operacional normal/padrão de um ou mais dispositivos de memória não volátil (130).
9. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que o um ou mais dispositivos de memória não volátil devem compreender um ou mais dentre: um dispositivo de armazenamento de estado sólido, uma memória de mudança de fase, uma memória de ponto cruzado 3D (Tridimensional), uma memória de acesso aleatório resistiva e uma memória de acesso aleatório de transferência de torque giratório.
10. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que o comando será emitido durante o tempo de execução para causar a mudança sem uma reinicialização de sistema ou sistema operacional.
11. Sistema, de acordo com as reivindicações 8, 9 e 10, caracterizado pelo fato de que um ou mais dentre a lógica de controlador (125), o um ou mais dispositivos de memória não volátil (130) e o pelo menos um núcleo de processador estão em uma mesma matriz de circuito integrado.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361829983P | 2013-05-31 | 2013-05-31 | |
US61/829,983 | 2013-05-31 | ||
US13/929,708 US20140359196A1 (en) | 2013-05-31 | 2013-06-27 | On-the-fly performance adjustment for solid state storage devices |
US13/929,708 | 2013-06-27 | ||
PCT/US2014/039594 WO2014193844A1 (en) | 2013-05-31 | 2014-05-27 | On-the-fly performance adjustment for solid state storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112015027470A2 BR112015027470A2 (pt) | 2017-07-25 |
BR112015027470B1 true BR112015027470B1 (pt) | 2022-07-26 |
Family
ID=51986487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112015027470-6A BR112015027470B1 (pt) | 2013-05-31 | 2014-05-27 | Aparelho, método e sistema para ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido |
Country Status (8)
Country | Link |
---|---|
US (1) | US20140359196A1 (pt) |
EP (1) | EP3005079B1 (pt) |
JP (1) | JP6160848B2 (pt) |
KR (1) | KR101764044B1 (pt) |
CN (1) | CN105164635B (pt) |
BR (1) | BR112015027470B1 (pt) |
RU (1) | RU2624563C2 (pt) |
WO (1) | WO2014193844A1 (pt) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102267041B1 (ko) | 2015-06-05 | 2021-06-22 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US9792190B2 (en) * | 2015-06-26 | 2017-10-17 | Intel Corporation | High performance persistent memory |
US10073659B2 (en) | 2015-06-26 | 2018-09-11 | Intel Corporation | Power management circuit with per activity weighting and multiple throttle down thresholds |
US10198061B2 (en) * | 2015-09-01 | 2019-02-05 | Toshiba Memory Corporation | Storage and storage system |
US9804795B2 (en) | 2015-09-09 | 2017-10-31 | Toshiba Memory Corporation | Memory system and controller |
US10599349B2 (en) * | 2015-09-11 | 2020-03-24 | Samsung Electronics Co., Ltd. | Method and apparatus of dynamic parallelism for controlling power consumption of SSDs |
US10459644B2 (en) * | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US10585608B2 (en) * | 2017-03-22 | 2020-03-10 | Oracle International Corporation | System and method for securely isolating a system feature |
US10585598B2 (en) | 2017-09-29 | 2020-03-10 | Hewlett Packard Enterprise Development Lp | Modifying accessibility based on memory access patterns |
US10402121B2 (en) * | 2017-12-21 | 2019-09-03 | Apple Inc. | Systems and methods for reducing performance state change latency |
JP2020046752A (ja) * | 2018-09-14 | 2020-03-26 | キオクシア株式会社 | 記憶装置及び情報処理システム |
US11079945B2 (en) * | 2018-09-20 | 2021-08-03 | Ati Technologies Ulc | Dynamic configuration of memory timing parameters |
KR102678655B1 (ko) | 2019-07-05 | 2024-06-27 | 에스케이하이닉스 주식회사 | 메모리 인터페이스, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 |
CN111580639A (zh) * | 2020-05-06 | 2020-08-25 | 深圳忆联信息系统有限公司 | Ssd自适应负载时钟的调节方法、装置和计算机设备 |
CN111833797A (zh) * | 2020-07-28 | 2020-10-27 | 重庆惠科金渝光电科技有限公司 | 时序控制板、驱动装置和显示装置 |
KR20230026877A (ko) * | 2021-08-18 | 2023-02-27 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그 동작 방법 |
US20230106101A1 (en) * | 2021-10-02 | 2023-04-06 | Innogrit Technologies Co., Ltd. | Adaptive thermal calibration for throttling prevention |
CN116301662B (zh) * | 2023-05-12 | 2023-08-01 | 合肥联宝信息技术有限公司 | 一种固态硬盘功耗管理方法及固态硬盘 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2870328B2 (ja) * | 1992-11-12 | 1999-03-17 | 日本電気株式会社 | 不揮発性半導体記憶装置 |
US6185692B1 (en) * | 1998-05-12 | 2001-02-06 | International Business Machine Corporation | Data processing system and method for dynamically setting bus clock frequency in response to a number of loads |
TW522297B (en) * | 2000-03-17 | 2003-03-01 | Micro Star Int Co Ltd | Automatic over-clock method for CPU |
JP4841069B2 (ja) * | 2001-07-24 | 2011-12-21 | パナソニック株式会社 | 記憶装置 |
JP2005031729A (ja) * | 2003-07-07 | 2005-02-03 | Fujitsu Ltd | ディスク制御装置、ディスク装置、ディスク制御方法、ディスク制御プログラム |
US7206960B2 (en) * | 2003-08-22 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Bus clock frequency management based on device load |
US7467318B2 (en) * | 2003-09-29 | 2008-12-16 | Ati Technologies Ulc | Adaptive temperature dependent feedback clock control system and method |
US7382366B1 (en) * | 2003-10-21 | 2008-06-03 | Nvidia Corporation | Method, apparatus, system, and graphical user interface for selecting overclocking parameters of a graphics system |
DE20321085U1 (de) * | 2003-10-23 | 2005-12-29 | Commissariat à l'Energie Atomique | Phasenwechselspeicher, Phasenwechselspeicheranordnung, Phasenwechselspeicherzelle, 2D-Phasenwechselspeicherzellen-Array, 3D-Phasenwechselspeicherzellen-Array und Elektronikbaustein |
US7287199B2 (en) * | 2004-03-31 | 2007-10-23 | Giga-Byte Technology Co., Ltd. | Device capable of detecting BIOS status for clock setting and method thereof |
US7779239B2 (en) * | 2004-07-28 | 2010-08-17 | Intel Corporation | User opt-in processor feature control capability |
US20060056233A1 (en) * | 2004-09-10 | 2006-03-16 | Parkinson Ward D | Using a phase change memory as a replacement for a buffered flash memory |
US7584006B2 (en) * | 2004-12-20 | 2009-09-01 | Corsair Memory | Managing memory modules |
US8593470B2 (en) * | 2005-02-24 | 2013-11-26 | Ati Technologies Ulc | Dynamic memory clock switching circuit and method for adjusting power consumption |
US7426592B2 (en) * | 2006-03-30 | 2008-09-16 | Inventec Corporation | Management function setting method for intelligent platform management interface |
US7861113B2 (en) * | 2007-03-16 | 2010-12-28 | Dot Hill Systems Corporation | Method and apparatus for operating storage controller system in elevated temperature environment |
KR20100071063A (ko) * | 2007-10-05 | 2010-06-28 | 디스키퍼 코포레이션 | 고체 상태 드라이브 최적화기 |
US20090235108A1 (en) * | 2008-03-11 | 2009-09-17 | Gold Spencer M | Automatic processor overclocking |
TW200951812A (en) * | 2008-06-03 | 2009-12-16 | Dfi Inc | Method and apparatus for changing BIOS parameters via a hot key |
US20090307416A1 (en) * | 2008-06-04 | 2009-12-10 | Intitio Corporation | Ssd with a controller accelerator |
CN101676879A (zh) * | 2008-09-17 | 2010-03-24 | 鸿富锦精密工业(深圳)有限公司 | 超频能力测试系统及方法 |
US20100274933A1 (en) * | 2009-04-24 | 2010-10-28 | Mediatek Inc. | Method and apparatus for reducing memory size and bandwidth |
EP2302519B1 (en) * | 2009-09-09 | 2013-01-16 | ST-Ericsson SA | Dynamic frequency memory control |
US8214580B2 (en) * | 2009-10-23 | 2012-07-03 | International Business Machines Corporation | Solid state drive with adjustable drive life and capacity |
CN102063263B (zh) * | 2009-11-18 | 2013-06-26 | 成都市华为赛门铁克科技有限公司 | 固态硬盘响应主机读写操作请求的方法、设备及系统 |
US20120074466A1 (en) * | 2010-09-28 | 2012-03-29 | Seagate Technology Llc | 3d memory array with vertical transistor |
JP5537474B2 (ja) * | 2011-03-24 | 2014-07-02 | 公益財団法人鉄道総合技術研究所 | プログラム及びセンサノードプログラム作成装置 |
CN102736666B (zh) * | 2011-04-12 | 2016-03-30 | 群联电子股份有限公司 | 参考频率设定方法、存储器控制器及闪存储存装置 |
TWI468946B (zh) * | 2011-04-27 | 2015-01-11 | Silicon Motion Inc | 用來進行主裝置指揮運作之方法以及記憶裝置及控制器 |
CN103562842B (zh) * | 2011-05-24 | 2018-09-14 | 马维尔国际贸易有限公司 | 用于存储设备的用低预留空间实现低写入放大的方法 |
-
2013
- 2013-06-27 US US13/929,708 patent/US20140359196A1/en not_active Abandoned
-
2014
- 2014-05-27 EP EP14803579.3A patent/EP3005079B1/en active Active
- 2014-05-27 JP JP2016512117A patent/JP6160848B2/ja active Active
- 2014-05-27 KR KR1020157028207A patent/KR101764044B1/ko active IP Right Grant
- 2014-05-27 BR BR112015027470-6A patent/BR112015027470B1/pt active IP Right Grant
- 2014-05-27 CN CN201480024473.3A patent/CN105164635B/zh active Active
- 2014-05-27 WO PCT/US2014/039594 patent/WO2014193844A1/en active Application Filing
- 2014-05-27 RU RU2015146912A patent/RU2624563C2/ru not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR101764044B1 (ko) | 2017-08-14 |
KR20150128907A (ko) | 2015-11-18 |
JP2016517988A (ja) | 2016-06-20 |
CN105164635B (zh) | 2019-06-14 |
EP3005079A4 (en) | 2016-11-30 |
RU2015146912A (ru) | 2017-05-10 |
CN105164635A (zh) | 2015-12-16 |
JP6160848B2 (ja) | 2017-07-12 |
EP3005079A1 (en) | 2016-04-13 |
EP3005079B1 (en) | 2021-11-17 |
RU2624563C2 (ru) | 2017-07-04 |
US20140359196A1 (en) | 2014-12-04 |
WO2014193844A1 (en) | 2014-12-04 |
BR112015027470A2 (pt) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112015027470B1 (pt) | Aparelho, método e sistema para ajuste de desempenho imediato para dispositivos de armazenamento de estado sólido | |
US10783075B2 (en) | Data security for multiple banks of memory | |
US10346345B2 (en) | Core mapping | |
BRPI1006211B1 (pt) | Método para operar um computador, meio não transitório lido por computador, e dispositivo eletrônico | |
US20210357202A1 (en) | Firmware updating | |
US10942798B2 (en) | Watchdog timer hierarchy | |
US20180165448A1 (en) | Multiple cores with hierarchy of trust | |
US9323539B2 (en) | Constructing persistent file system from scattered persistent regions | |
EP3782066B1 (en) | Nop sled defense | |
US11444918B2 (en) | Subsystem firewalls |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B350 | Update of information on the portal [chapter 15.35 patent gazette] | ||
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/05/2014, OBSERVADAS AS CONDICOES LEGAIS |