BR112016009230B1 - Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor - Google Patents

Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor Download PDF

Info

Publication number
BR112016009230B1
BR112016009230B1 BR112016009230-9A BR112016009230A BR112016009230B1 BR 112016009230 B1 BR112016009230 B1 BR 112016009230B1 BR 112016009230 A BR112016009230 A BR 112016009230A BR 112016009230 B1 BR112016009230 B1 BR 112016009230B1
Authority
BR
Brazil
Prior art keywords
memory
volatile memory
modules
storage
module
Prior art date
Application number
BR112016009230-9A
Other languages
English (en)
Other versions
BR112016009230A2 (pt
Inventor
Dimitrios Ziakas
Bassam N. Coury
Mohan J. Kumar
Murugasamy K. Nachimuthu
Thi Dang
Russell J. Wunderlich
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Publication of BR112016009230A2 publication Critical patent/BR112016009230A2/pt
Publication of BR112016009230B1 publication Critical patent/BR112016009230B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7803System on board, i.e. computer system on one or more PCB, e.g. motherboards, daughterboards or blades
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

MÉTODO E APARELHO PARA ARQUITETURAS DE PLATAFORMA DE SERVIDOR QUE PERMITEM A MANUTENÇÃO DE MÓDULOS DE MEMÓRIA NÃO VOLÁTIL. Sistemas e métodos para a implementação de arquiteturas de servidor que podem facilitar a manutenção de componentes de memória em sistemas de computador. Os sistemas e os métodos usam módulos de memória não volátil/armazenamento que incluem memória não volátil (NVM) que pode ser usada para memória de sistema e para armazenamento de massa, assim como memória firmware. Os módulos NVM/armazenamento podem ser recebidos em compartimentos de carregamento dianteiros ou traseiros dos sistemas de computador. Os sistemas e os métodos usam ainda processadores de soquete único, duplo, ou quádruplo, em que cada processador está acoplado comunicavelmente a pelo menos alguns dos módulos NVM/armazenamento dispostos nos compartimentos de carregamento dianteiros ou traseiros por meio de uma ou de mais memórias e/ou canais de entrada/de saída (I/O). Usando módulos NVM/armazenamento que podem ser recebidos em compartimentos de carregamento dianteiros ou traseiros dos sistemas de computador, os sistemas e os métodos providenciam a possibilidade de manutenção de componentes de memória até então inatingível em sistemas de computador implementando arquiteturas de servidor convencionais.

Description

CAMPO TÉCNICO
[001] As modalidades descritas no presente documento se refe rem genericamente a arquiteturas de servidor e, mais particularmente, a sistemas e a métodos para a implementação de uma arquitetura de servidor configurada para facilitar a manutenção de componentes de memória não volátil.
ANTECEDENTES
[002] Um sistema de computador que implementa uma arquitetu ra de servidor convencional tipicamente inclui um chassi, uma placa mãe montada no chassi e um ou mais compartimentos de carregamento dianteiros montados no chassi. A placa mãe pode apresentar um ou mais soquetes de processador acoplados a esta para receber um ou mais processadores, respectivamente, assim como um ou mais conectores de placa-filha para receber uma ou mais placas mezzanine ou riser, respectivamente. Em um sistema de computador desta natu-reza, os compartimentos de carregamento dianteiros tipicamente são configurados para receber dispositivos de armazenamento de massa que incluem meios magnéticos (por ex. unidades de disco rígido), meios ópticos (por ex. unidades de disco compacto (CD), unidades de disco de vídeo digitais (DVD)), etc.. Estes dispositivos de armazenamento de massa podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem "substituíveis em funcionamento", o que significa que os dispositivos de armazenamento de massa podem ser removidos dos e instalados nos respectivos compartimentos de carregamento dianteiros sem desligar o sistema de computador. As placas mezzanine ou riser tipicamente são configuradas para incluir um ou mais módulos de memória, tais como um ou mais módulos de memória em linha dupla (DIMMs) baseados na memória de acesso aleatório dinâmica (DRAM), partes dos quais podem estar alojadas como memória do sistema assim como memória cache.
[003] Em um sistema de computador implementando uma arqui tetura de servidor convencional desta natureza, para fazer a manutenção de um ou mais componentes que falharam nas placas mezzanine ou nas placas riser, tais como um ou mais DIMMs ou outros componentes de memória que falharam, geralmente é necessário desligar o computador e abrir o chassi para aceder e/ou substituir os componentes de memória que falharam. Contudo, uma manutenção de componentes de memória em um sistema de computador desta natureza, mesmo quando não frequente, pode ser sinônimo de consumo de tempo, de complexidade e de custos. BREVE DESCRIÇÃO DAS FIGURAS
[004] As figuras em anexo, que estão incorporadas na e fazem parte da especificação, ilustram uma ou mais modalidades descritas no presente documento e conjuntamente com a Descrição Detalhada, explicam estas modalidades. Nas figuras a:
[005] FIG. 1 - apresenta uma vista plana de cima de um sistema de computador que implementa uma arquitetura de servidor convencional;
[006] FIG. 2 - apresenta uma vista plana de cima de um sistema de computador exemplificativo que implementa uma arquitetura de servidor exemplificativa, de acordo com o presente pedido;
[007] FIG. 3a - apresenta uma vista em perspectiva de um módu lo de memória não volátil/armazenamento exemplificativo que está em conformidade com um formato padrão de indústria, em que um ou mais módulos de memória não volátil/armazenamento desta natureza estão incluídos no sistema de computador de acordo com a FIG. 2;
[008] FIG. 3b - apresenta um diagrama de blocos de componen tes de memória exemplificativos incluídos no módulo de memória não volátil/armazenamento de acordo com a FIG. 3a;
[009] FIG. 4 - apresenta uma vista plana de cima de uma primeira modalidade alternativa do sistema de computador de acordo com a FIG. 2;
[0010] FIG. 5a - apresenta uma vista plana de cima de uma segunda modalidade alternativa do sistema de computador de acordo com a FIG. 2;
[0011] FIG. 5b - apresenta uma vista plana de um módulo de me mória exemplificativo incluído na segunda modalidade alternativa de acordo com a FIG. 5a;
[0012] FIG. 6 - apresenta um fluxograma ilustrando um método exemplificativo de manutenção de memória no sistema de computador de acordo com a FIG. 2, e;
[0013] FIG. 7 - apresenta um diagrama de blocos de componentes funcionais incluídos no sistema de computador de acordo com a FIG. 2.
DESCRIÇÃO DAS MODALIDADES
[0014] A presente invenção se refere a sistemas e a métodos para a implementação de arquiteturas de servidor que podem facilitar a manutenção e o acesso duplo de componentes de memória em sistemas de computador. Os sistemas e os métodos divulgados usam módulos de memória não volátil/armazenamento que estão em conformidade com um formato padrão de indústria e incluem memória não volátil (NVM) que pode ser usada para memória persistente, memória de sistema e armazenamento de massa, assim como memória firmware. Os módulos de memória não volátil/armazenamento são configurados para serem recebidos em compartimentos de carregamento dianteiros e/ou traseiros dos sistemas de computador e são configurados ainda para serem "substituíveis em funcionamento" de forma que os módulos de memória não volátil/armazenamento podem ser removidos dos e instalados nos respectivos compartimentos de carregamento diantei- ros/traseiros sem desligar o sistema de computador. Os sistemas e os métodos divulgados podem usar ainda soquetes de processador únicos, duplos ou quádruplos, em que cada processador está acoplado comunicavelmente a pelo menos algum dos módulos de memória não volátil/armazenamento disposto nos compartimentos de carregamento dianteiros e/ou traseiros por meio de um ou mais canais de memória e/ou de entrada/saída (I/O). Usando módulos de memória não volá- til/armazenamento substituíveis em funcionamento que podem ser recebidos em compartimentos de carregamento dianteiros e/ou traseiros de sistemas de computador, os sistemas e os métodos divulgados podem providenciar a manutenção de componentes de memória até então inalcançável em sistemas de computador implementando arquiteturas de servidor convencionais.
[0015] Além disso, considerando que os subsistemas de memória que incluem módulos de memória não volátil/armazenamento apresentam características de persistência, a manutenção destes módulos de memória não volátil/armazenamento se torna mais importante devido à eventual necessidade de recuperar dados armazenados nesses módulos NVM. Em contraste, a manutenção de módulos de memória volátil geralmente tem sido menos importante considerando que os dados armazenados nestes módulos de memória volátil são perdidos quando os módulos falham. Por este motivo, os subsistemas de memória que incluem módulos de memória volátil (por ex. placas mezzanine ou placas riser baseadas na memória de acesso aleatório dinâmica (DRAM)) tradicionalmente são sujeitos a pouca manutenção ou a manutenção altamente intrusiva, que pode implicar o desligamento do sistema de computador e a abertura do chassi para aceder ao módulo de memória volátil que falhou. A importância da manutenção de módulos de memória não volátil/armazenamento que podem armazenar dados persistentemente aumentou a necessidade de arquiteturas e de topologias de servidor de manutenção fácil, tais como aquelas que permitem a substituição em funcionamento e o acesso duplo.
[0016] A FIG. 1 apresenta um sistema de computador 100 que im plementa uma arquitetura de servidor convencional. Conforme apresentado na FIG. 1, o sistema de computador 100 inclui um chassi 102, uma placa mãe 104 montada no chassi 102 e uma pluralidade de compartimentos de carregamento dianteiros 110.1, 110.2, 110.3, 110.4 montados no chassi 102. A placa mãe 104 apresenta uma pluralidade de soquetes de processador acoplados a esta para receber uma pluralidade de unidades de processamento central (CPUs) (igualmente designadas por "processadores") 106.1, 106.2, respectivamente, assim como uma pluralidade de grupos de soquetes de placa-filha para receber uma pluralidade de grupos de placas auxiliares 108.1, 108.2, 108.3, respectivamente, tais como placas mezzanine, placas riser ou quaisquer outras placas de circuito impresso (PCBs) adequadas. A placa mãe 104 apresenta ainda uma pluralidade de componentes de entrada/saída (I/O) e componentes de legado 112 acoplados a esta e o sistema de computador 100 inclui ainda uma unidade de alimentação de energia (PSU) 114 montada no chassi 102.
[0017] Cada um dos compartimentos de carregamento dianteiros 110.1, 110.2, 110.3, 110.4 é configurado para receber uma pluralidade de dispositivos de armazenamento de massa, tal como um dispositivo de armazenamento de massa 111 recebido no compartimento de carregamento dianteiro 110.1. Os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 111) recebidos nos respectivos compartimentos de carregamento dianteiros 110.1, 110.2, 110.3, 110.4 podem incluir meios magnéticos (por ex. unidades de disco rígido), meios ópticos (por ex. unidades de disco compacto (CD), unidades de disco de vídeo digitais (DVD)), etc.. Além disso, os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 111) podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem substituíveis em funcionamento, o que significa que os dispositivos de armazenamento de massa podem ser removidos dos e insta-lados nos respectivos compartimentos de carregamento dianteiros 110.1 - 110.4 sem desligar o sistema de computador 110.
[0018] O grupo de placas auxiliares 108.1, 108.2, 108.3 são confi gurados para incluir uma pluralidade de módulos de memória, tal como um módulo de memória 109 incluído no grupo de placas auxiliares 108.1. A pluralidade de módulos de memória (por ex. o módulo de memória 109) pode incluir um ou mais módulos de memória em linha dupla (DIMMs), tais como DIMMs de taxa de dados dupla (DDR) baseados na memória de acesso aleatório dinâmica (DRAM), partes dos quais podem estar alojadas como memória de sistema assim como memória cache. Os módulos de memória baseados na DRAM (por ex. o módulo de memória 109) estão acoplados comunicavelmente ao respectivo processador 106.1, 106.2 por meio de uma pluralidade de canais de memória ou de I/O, tais como canais de memória DDR 116.1, 116.2, 116.3, 116.4.
[0019] Mais particularmente, os módulos de memória baseados na DRAM incluídos no grupo de placas auxiliares 108.1 estão acoplados comunicavelmente ao processador 106.1 por meio dos canais de memória DDR 116.1 e os módulos de memória baseados na DRAM incluídos no grupo de placas auxiliares 108.2 estão acoplados comunica- velmente ao processador 106.1 por meio dos canais de memória DDR 116.2. Além disso, os módulos de memória baseados na DRAM incluídos no grupo de placas auxiliares 108.2 estão acoplados comunica- velmente ao processador 106.2 por meio dos canais de memória DDR 116.3 e os módulos de memória baseados na DRAM incluídos no grupo de placas auxiliares 108.3 estão acoplados comunicavelmente ao processador 106.2 por meio dos canais de memória DDR 116.4. No sistema de computador 100 (ver FIG. 1) implementando a arquitetura de servidor convencional, geralmente é necessário desligar o sistema de computador 100 e abrir o chassi 102 para aceder e/ou para substituir componentes de memória que falharam, tais como os módulos de memória baseados em DRAM incluídos nos grupos de placas auxiliares 108.1, 108.2, 108.3. Esta manutenção de componentes de memó ria no sistema de computador 100, mesmo quando frequente, ser sinônimo de consumo de tempo, de complexidade e de custos.
[0020] A FIG. 2 apresenta uma modalidade ilustrativa de um sis tema de computador exemplificativo 200 que implementa uma arquitetura de servidor exemplificativa de acordo com o presente pedido. Conforme apresentado na FIG. 2, o sistema de computador 200 inclui um chassi 202, uma placa mãe 204 montada no chassi 202 e uma pluralidade de compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 montados no chassi 202. A placa mãe 204 apresenta uma pluralidade de soquetes de processador acoplados a esta para receber uma pluralidade de CPUs (processadores) 206.1, 206.2, 206.3, 206.4, respectivamente. A placa mãe 204 apresenta ainda uma pluralidade de componentes de entrada/saída (I/O) e componentes de legado 212.1, 212.2 acoplados a esta. Por exemplo, os componentes de I/O e de legado 212.1, 212.2 podem incluir componentes de eletrô nica de unidades integradas (IDE), componentes de barramento serial universal (USB), componentes de rede local (LAN), componentes áudio, etc.. O sistema de computador 200 pode incluir ainda uma pluralidade de unidades de alimentação de energia (PSUs) 214.1, 214.2 montadas no chassi 202.
[0021] No sistema de computador 200 (ver FIG. 2), cada um dos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 é configurado para receber uma pluralidade de módulos de memória não volátil/armazenamento, tais como um módulo de memória não vo- látil/armazenamento 211 recebido no compartimento de carregamento dianteiro 210.1. Os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volátil/armazenamento 211) recebidos nos respectivos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 podem incluir memória não volátil (NVM) que pode ser usada, conforme desejado e/ou necessário, para memória persistente, memória de sistema e armazenamento de massa, assim como memória firmware. Por exemplo, a memória não volátil incluída nos módulos de memória não volátil/armazenamento pode incluir memória flash NAND ou NOR que usa um único bit por célula de memória, memória de célula multinível (MLC) tal como memória flash NAND com dois bits por célula, memória polimérica, memória de mudança de fase (PCM), memória de retenção de carga baseada em na- nofio, memória de acesso aleatório de transistor ferroelétrico (Fe- TRAM), memória cross-point 3-dimensional, memória não volátil que usa a tecnologia resistor de memória (memristor), memória unificada ovônica, memória de acesso aleatório calcogênio (CRAM), memória de acesso aleatório persistente endereçável em bytes (BPRAM), memória de acesso aleatório magneto-resistiva (MRAM), memória de célula de metalização programável (PMC), memória de acesso aleatório resistiva (RRAM), memória ferromagnética, memória de acesso aleatório de transferência de torque por meio do spin (SPRAM), RAM de tu- nelamento por meio do spin (STRAM), memória dielétrica ou qualquer outra memória não volátil adequada baseada em qualquer outra tecnologia NVM adequada.
[0022] Para efeito desta divulgação, a memória não volátil (NVM) incluída nos respectivos módulos de memória não volá- til/armazenamento (por ex. o módulo de memória não volá- til/armazenamento 211) pode apresentar pelo menos uma ou mais das características seguintes:
[0023] (1) a NVM pode manter o respectivo conteúdo de dados mesmo quando a energia é removida;
[0024] (2) a NVM é endereçável aleatoriamente;
[0025] (3) a NVM pode ser gravada e apagada com um nível redu zido de granularidade (por ex. um nível em bytes de granularidade);
[0026] (4) a NVM pode ser usada como memória de sistema e po de ser alojada na totalidade ou em uma parte do espaço do endereço da memória de sistema;
[0027] (5) a NVM pode ser usada como memória persistente, ar mazenamento de massa e opcionalmente como memória firmware, e;
[0028] (6) a NVM pode estar acoplada a pelo menos um proces sador por meio de um barramento usando um protocolo transacional (isto é, um protocolo que suporta identificadores de transação) para distinguir diferentes transações de forma que estas transações podem ser completadas fora de serviço, permitindo o acesso a um nível de granularidade suficientemente reduzido para suportar a operação da memória não volátil como sistema de memória (por ex. usando um tamanho de bloco de memória cache de 64 bytes ou 128 bytes). Por exemplo, os módulos de memória não volátil/armazenamento podem ser configurados como unidades de estado sólido (SSD) ou qualquer outro meio de armazenamento de dados persistente adequado. Além disso, o barramento que acopla um módulo de memória não volá- til/armazenamento a um processador pode ser um barramento de memória de taxa de dados dupla (DDR) que pode ser executado em um protocolo transacional. Este barramento pode ser um barramento de Interconexão de Componentes Periféricos expresso (PCIe) ou qualquer outro barramento adequado usando um protocolo transacional com um tamanho de carga útil de transação adequado.
[0029] Os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volátil/armazenamento 211) recebidos nos respectivos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 estão acoplados comunicavelmente aos respecti vos processadores 206.1, 206.2, 206.3, 206.4 por meio de uma pluralidade de canais de memória (por ex. canais de memória DDR) e/ou interconexões de I/O ou de tecido. Mais particularmente, os módulos de memória não volátil/armazenamento recebidos no compartimento de carregamento dianteiro 210.1 estão acoplados comunicavelmente ao processador 206.1 por meio de canais de memória DDR e/ou de interconexões de I/O ou de tecido 216.1, os módulos de memória não volátil/armazenamento recebidos no compartimento de carregamento dianteiro 210.2 estão acoplados comunicavelmente ao processador 206.2 por meio de canais de memória DDR e/ou de interconexões de I/O ou de tecido 216.2, os módulos de memória não volá- til/armazenamento recebidos no compartimento de carregamento dianteiro 210.3 estão acoplados comunicavelmente ao processador 206.3 por meio de canais de memória DDR e/ou de interconexões de I/O ou de tecido 216.3 e os módulos de memória não volátil/armazenamento recebidos no compartimento de carregamento dianteiro 210.4 estão acoplados comunicavelmente ao processador 206.4 por meio de ca-nais de memória DDR e/ou de interconexões de I/O ou de tecido 216.4.
[0030] A FIG. 3a apresenta um módulo de memória não volá- til/armazenamento exemplificativo 300 que pode ser recebido em um dos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 do sistema de computador 200 (ver FIG. 2). Por exemplo, o módulo de memória não volátil/armazenamento 300 pode ser configurado em conformidade com um formato padrão de indústria de 6,35 cm ou qualquer outro formato adequado e pode ser configurado ainda para ser substituível em funcionamento, o que significa que o módulo de memória não volátil/armazenamento 300 pode ser removido do e instalado no compartimento de carregamento dianteiro selecionado 210.1, 210.2, 210.3 ou 210.4 sem desligar o sistema de computador 200. Conforme apresentado na FIG. 3a, o módulo de memória não vo- látil/armazenamento 300 pode incorporar um controlador de NVM 302, assim como um subsistema de memória não volátil/armazenamento 304.
[0031] A FIG. 3b apresenta o controlador de NVM 302 e o subsis tema de memória não volátil/armazenamento 304 incorporados no módulo de memória não volátil/armazenamento 300. Conforme apresentado na FIG. 3b, o subsistema de memória não volá- til/armazenamento 304 pode incluir uma pluralidade de dispositivos de NVM 304.1, 304.2, ..., 304.n, cada um dos quais está acoplado comu- nicavelmente ao controlador de NVM 302. O controlador NVM 302 é operativo para manusear pedidos de leitura/escrita de dados emitidos por um processador (por ex. o processador 206.1, 206.2, 206.3 ou 206.4) para ler dados de ou escrever dados em um ou mais dos respectivos dispositivos de NVM 304.1 - 304.n. Conforme acima referido, a memória não volátil (por ex. conforme realizada nos dispositivos de NVM 304.1, 304.2, ., 304.n) incluída nos módulos de memória não volátil/armazenamento pode ser usada, conforme desejado e/ou necessário, para memória persistente, memória de sistema e armazenamento de massa, assim como memória firmware. De acordo com uma modalidade, os dispositivos de NVM 304.1 - 304.n no subsistema de memória não volátil/armazenamento 304 podem ser partilhados dinamicamente entre usos como memória de sistema e como armazenamento de massa sob o controle do controlador de NVM 302, desta forma atenuando uma hierarquia de memória/armazenamento no sistema de computador 200.
[0032] A FIG. 4 apresenta um sistema de computador 400, que é uma modalidade alternativa ao sistema de computador de acordo com a FIG. 2. Conforme apresentado na FIG. 4, o sistema de computador 400 inclui um chassi 402, uma placa mãe 404 montada no chassi 402 e uma pluralidade de compartimentos de carregamento dianteiros 410.1, 410.2, 410.3, 410.4 montados no chassi 402. A placa mãe 404 apresenta uma pluralidade de soquetes de processador acoplados a esta para receber uma pluralidade de CPUs (processadores) 406.1, 406.2, respectivamente, assim como um grupo de soquetes de placa- filha para receber um grupo de placas auxiliares 408, respectivamente. A placa mãe 404 apresenta ainda uma pluralidade de componentes de entrada/saída (I/O) e componentes de legado 412 acoplados a esta e o sistema de computador 400 pode incluir ainda uma unidade de alimentação de energia (PSU) 414 montada no chassi 402.
[0033] As placas auxiliares 408 respectivamente são configuradas para incluir uma pluralidade de módulos de memória, tais como o módulo de memória 409. Conforme acima referido em relação ao sistema de computador 100 (ver FIG. 1), a pluralidade de módulos de memória (por ex. o módulo de memória 409) respectivamente podem incluir um ou mais DIMMs, tais como DIMMs DDR baseados na DRAM. Os módulos de memória baseados na DRAM (por ex. o módulo de memória 409) acoplados às placas auxiliares 408 estão acoplados comunica- velmente ao processador 406.1 por meio de uma primeira pluralidade de canais de memória ou de I/O (tais como os canais DDR 416.1) e acoplados comunicavelmente ao processador 406.2 por meio de uma segunda pluralidade de canais de memória ou de I/O, tais como os canais DDR 416.2.
[0034] No sistema de computador 400 (ver FIG. 4), cada um dos compartimentos de carregamento dianteiros 410.1, 410.4 é configura do para receber uma pluralidade de módulos de memória não volá- til/armazenamento, tais como um módulo de memória não volá- til/armazenamento 411 recebido no compartimento de carregamento dianteiro 410.1. Conforme acima referido em relação ao sistema de computador 200 (ver FIG. 2), os módulos de memória não volá- til/armazenamento (por ex. o módulo de memória não volá- til/armazenamento 411) recebidos nos respectivos compartimentos de carregamento dianteiros 410.1, 410.4 podem incluir memória não volátil (NVM) que pode ser usada, conforme desejado e/ou necessário, para memória persistente, memória de sistema e armazenamento de massa, assim como memória firmware, em que a NVM pode ser implementada usando qualquer tecnologia NVM adequada. Além disso, os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 411) podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem substituíveis em funcionamento.
[0035] Cada um dos compartimentos de carregamento dianteiros 410.2, 410.3 é configurado para receber uma pluralidade de dispositivos de armazenamento de massa, tal como um dispositivo de armazenamento de massa 413 recebido no compartimento de carregamento dianteiro 410.2. Os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 413) recebidos nos respectivos compartimentos de carregamento dianteiros 410.2, 410.3 podem incluir meios magnéticos (por ex. unidades de disco rígido), meios ópticos (por ex. unidades de disco compacto (CD), unidades de disco de vídeo digitais (DVD)), etc.. Além disso, os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 413) podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem substituíveis em funciona- mento.
[0036] Os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volátil/armazenamento 411) recebidos nos respectivos compartimentos de carregamento dianteiros 410.1, 410.4 estão acoplados comunicavelmente aos respectivos processadores 406.1, 406.2, respectivamente, por meio de uma pluralidade de canais de memória (por ex. canais de memória DDR) e/ou intercone- xões de I/O ou de tecido. Mais particularmente, os módulos de memória não volátil/armazenamento recebidos no compartimento de carregamento dianteiro 410.1 estão acoplados comunicavelmente ao processador 406.1 por meio de canais de memória DDR e/ou de interco- nexões de I/O ou de tecido 417.1 e os módulos de memória não volá- til/armazenamento recebidos no compartimento de carregamento dianteiro 410.4 estão acoplados comunicavelmente ao processador 406.2 por meio de canais de memória DDR e/ou de interconexões de I/O ou de tecido 417.2. Separar fisicamente os módulos de memória baseados na DRAM nas placas auxiliares 408 dos módulos de memória não volátil/armazenamento recebidos nos compartimentos de carregamento dianteiros 410.1, 410.4, permite melhorar a manutenção de módulos de memória não volátil/armazenamento comportando dados persistentes.
[0037] A FIG. 5a apresenta um sistema de computador 500, que é uma modalidade alternativa ao sistema de computador de acordo com a FIG. 2. Conforme apresentado na FIG. 5a, o sistema de computador 500 inclui um chassi 502, uma placa mãe 504 montada no chassi 502 e uma pluralidade de compartimentos de carregamento dianteiros 510.1, 510.2, 510.3, 510.4 montados no chassi 502. A placa mãe 504 apresenta uma pluralidade de soquetes de processador acoplados a esta para receber uma pluralidade de CPUs (processadores) 506.1, 506.2, respectivamente, assim como um grupo de soquetes de placa- filha para receber um grupo de placas auxiliares 508.1, 508.2, 508.3, respectivamente. A placa mãe 504 apresenta ainda componentes de entrada/saída (I/O) e componentes de legado 512 acoplados a esta e o sistema de computador 500 pode incluir ainda uma unidade de alimentação de energia (PSU) 514 montada no chassi 502.
[0038] Os grupos de placas auxiliares 508.1, 508.2, 508.3 respec tivamente são configurados para incluírem uma pluralidade de módulos de memória, tais como o módulo de memória 509 incluído no grupo de placas auxiliares 508.1. Por exemplo, a pluralidade de módulos de memória (por ex. o módulo de memória 509) respectivamente pode incluir um ou mais DIMMs, tais como DIMMs DDR baseados na DRAM. Os módulos de memória baseados na DRAM (por ex. o módulo de memória 509) acoplados ao grupo de placas auxiliares 508.1 estão acoplados comunicavelmente ao processador 506.1 por meio de uma primeira pluralidade de canais de memória ou de I/O (tais como os canais DDR 516.1) e os módulos de memória baseados na DRAM acoplados ao grupo de placas auxiliares 508.2 estão acoplados comu- nicavelmente ao processador 506.1 por meio de uma segunda pluralidade de canais de memória ou de I/O (tais como os canais DDR 516.2). Além disso, os módulos de memória baseados na DRAM acoplados ao grupo de placas auxiliares 508.2 estão acoplados comuni- cavelmente ao processador 506.2 por meio de uma terceira pluralidade de canais de memória ou de I/O (tais como os canais DDR 516.3) e os módulos de memória baseados na DRAM acoplados ao grupo de placas auxiliares 508.3 estão acoplados comunicavelmente ao processador 506.2 por meio de uma quarta pluralidade de canais de memória ou de I/O (tais como os canais DDR 516.4).
[0039] No sistema de computador 500 (ver FIG. 5a), o comparti mento de carregamento dianteiro 510.3 é configurado para receber uma pluralidade de módulos de memória não volátil/armazenamento, tais como um módulo de memória não volátil/armazenamento 511. Por exemplo, os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volátil/armazenamento 511) recebidos no compartimento de carregamento dianteiro 510.3 podem incluir memória não volátil (NVM) que pode ser usada, conforme desejado e/ou ne cessário, para memória persistente, memória de sistema e armazenamento de massa, assim como memória firmware, em que a NVM pode ser implementada usando qualquer tecnologia NVM adequada. Além disso, os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volátil/armazenamento 511) podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem substituíveis em funcionamento.
[0040] Cada um dos compartimentos de carregamento dianteiros 510.1, 510.2, 510.4 é configurado para receber uma pluralidade de dispositivos de armazenamento de massa, tais como um dispositivo de armazenamento de massa 513 recebido no compartimento de carregamento dianteiro 510.1. Os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 513) recebidos nos respectivos compartimentos de carregamento dianteiros 510.1, 510.2, 510.4 podem incluir meios magnéticos (por ex. unidades de disco rígido), meios ópticos (por ex. unidades de disco compacto (CD), unidades de disco de vídeo digitais (DVD)), etc.. Além disso, os dispositivos de armazenamento de massa (por ex. o dispositivo de armazenamento de massa 513) podem estar em conformidade com um formato padrão de indústria e podem ser configurados para serem substituíveis em funcionamento.
[0041] De acordo com uma modalidade, os módulos de memória não volátil/armazenamento (por ex. o módulo de memória não volá- til/armazenamento 511) recebidos no compartimento de carregamento dianteiro 510.3 estão acoplados comunicavelmente aos processadores 506.1, 506.2 por meio de um ou mais dos módulos de memória incluídos no grupo de placas auxiliares 508.2. A FIG. 5b apresenta um módulo de memória exemplificativo 550 que pode estar localizado em uma das placas auxiliares no grupo de placas auxiliares 508.2 (ou localizado em outra placa de circuito impresso (PCB) conectada à placa auxiliar) para acoplar comunicavelmente o módulo de memória não volátil/armazenamento 511 (ou outros módulos de memória não volá- til/armazenamento) no compartimento de carregamento dianteiro 510.3 aos respectivos processadores 506.1, 506.2. Conforme apresentado na FIG. 5b, o módulo de memória 550 pode incluir uma pluralidade de componentes de memória 552.1, 552.2 e um controlador 554. Por exemplo, os componentes de memória 552.1, 552.2 respectivamente podem ser configurados como memória volátil (tal como uma memória de acesso aleatório dinâmica (DRAM) ou qualquer outra memória volátil adequada) ou memória não volátil (tal como uma memória de acesso aleatório ferroelétrica (FRAM) ou qualquer outra memória não volátil adequada). De acordo com uma modalidade, o módulo de memória 550 pode ser configurado como um DIMM DDR baseado na DRAM. De acordo com uma modalidade adicional, os respectivos componentes de memória 552.1, 552.2 podem ser configurados como dispositi vos de memória não volátil/armazenamento incluindo memória não volátil (NVM) que pode ser usada para memória persistente e/ou armazenamento de massa. De acordo com outra modalidade adicional, os respectivos componentes de memória 552.1, 552.2 podem ser su primidos do módulo de memória 550, caso em que o módulo de memória 550 pode ser configurado como um chamado "DIMM fictício". O módulo de memória 550 inclui ainda uma pluralidade de contatos 556 configurados para serem recebidos em um ou mais soquetes de placa- filha acoplados à placa mãe 504, assim como um conector 558 acoplado ao controlador 554 e configurado para implementar qualquer in- terconexão(ões) de I/O, de tecido, óptica, por cabo ou qualquer outra alta largar de banda adequada 560 (ver FIGS. 5a, 5b). Por exemplo, a interconexão de alta largura de banda 560 pode estar conectada co- municavelmente com (1) o módulo de memória não volá- til/armazenamento 511 (ou outro(s) módulo(s) de memória não volá- til/armazenamento) no compartimento de carregamento dianteiro 510.3, (2) memória em um outro chassi e/ou (3) um outro módulo de memória como o módulo de memória 550.
[0042] Providenciando o conector 558 acoplado ao controlador 554, assim como os contatos 556 que podem ser recebidos no(s) so- quete(s) de placa-filha na placa mãe 504 pode ser adicionada uma capacidade multiportas (por ex. uma capacidade de duas portas) ao módulo de memória 550, permitindo estabelecer múltiplas conexões desde os respectivos soquetes de processador na placa mãe 504 até ao compartimento de carregamento dianteiro 510.3, memória em um outro chassi e/ou um outro módulo de memória como o módulo de memória 550. É de salientar que um ou mais módulos de memória como o módulo de memória 550 (ver FIG. 5b) podem igualmente estar localizados em uma ou mais das placas auxiliares no grupo de placas auxiliares 508.1, 508.3 para providenciar uma ou mais interconexões de alta largura de banda 562, 564, respectivamente para um ou mais compartimentos de expansão de memória externos da placa ou externos do chassi.
[0043] Um método de manutenção de memória exemplificativo em um sistema de computador é descrito abaixo com referência às FIGS. 2 e 6. Conforme apresentado na caixa 602 (ver FIG. 6), é providenciado um sistema de computador, tal como o sistema de computador 200 (ver FIG. 2) incluindo um ou mais processadores 206.1, 206.2, 206.3, 206.4 e um ou mais compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4, em que cada compartimento de carrega- mento dianteiro aloja um ou mais módulos de memória não volá- til/armazenamento. Conforme apresentado na caixa 604, é providenciada uma pluralidade de canais de memória para acoplar comunica- velmente os módulos de memória não volátil/armazenamento nos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 aos processadores 206.1, 206.2, 206.3, 206.4, respectivamente. Con forme apresentado na caixa 606, é determinado se um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 falhou ou não. No caso em que um dos módulos de memória não volá- til/armazenamento nos respectivos compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4 falhou, os dados armazenados no módulo de memória não volátil/armazenamento que falhou migram para um módulo ou um arranjo de memória/armazenamento funcional e os endereços para aceder aos dados que migraram são remapeados correspondentemente, conforme apresentado na caixa 608. É de salientar que esta migração de dados e este remapeamento de endereço podem ser pelo menos parcialmente evitados duplicando os dados usando um ou mais espelhos de dados ou por redundância de dados. O módulo de memória não volátil/armazenamento que falhou é removido do respectivo compartimento de carregamento dianteiro, conforme apresentado na caixa 610. Conforme apresentado na caixa 612, é instalado um módulo de memória não volátil/armazenamento operativo no respectivo compartimento de carregamento dianteiro no lugar do módulo que falhou.
[0044] A FIG. 7 apresenta um sistema de computador exemplifica- tivo 700 que pode ser configurado para implementar o aparelho e os métodos da invenção reivindicada. Conforme apresentado na FIG. 7, o sistema de computador 700 pode incluir um processador hospedeiro 702 acoplado comunicavelmente a pelo menos uma memória 704 e a pelo menos um módulo de memória não volátil/armazenamento 719 por meio de pelo menos um canal de memória 715. O módulo de memória não volátil/armazenamento 719 pode incluir um controlador NVM 720 e pelo menos um dispositivo NVM 712. O sistema de computador 700 pode incluir ainda um teclado 716 e um visor 718, ambos acoplados comunicavelmente a um barramento de sistema 714. O controla dor NVM 720 é operativo para aceder a dados persistentes armazenáveis no dispositivo NVM 712. O processador hospedeiro 702 é operati vo para executar instruções armazenadas em pelo menos um meio de armazenamento não transitório, tal como a memória 704 ou qualquer outro meio de armazenamento adequado para executar os vários processos no sistema de computador 700, incluindo um ou mais processos para controlar as operações do controlador NVM 720. A memória 704 pode incluir um ou mais componentes de memória tais como uma memória volátil 710, que pode ser implementada como memória de acesso aleatório dinâmica (DRAM) ou qualquer outra memória volátil adequada. A memória 704 pode igualmente ser configurada para armazenar um sistema operativo 706 exequível pelo processador hospedeiro 702, assim como uma ou mais aplicações 708 que podem ser executadas pelo sistema operativo 706. Em resposta a um pedido gerado por uma das aplicações 708, o processador hospedeiro 702 pode executar o sistema operativo 706 para desempenhar operações de escrita/leitura de dados desejadas na memória volátil 710 e/ou operações de escrita/leitura desejadas no dispositivo NVM 712 por meio do controlador NVM 720.
[0045] É de salientar que a FIG. 7 apresenta uma modalidade exemplificativa do sistema de computador 700 e que outras modalidades do sistema de computador 700 podem incluir mais componentes de aparelho ou menos componentes de aparelho do que os componentes de aparelho apresentados na FIG. 7. Além disso, os compo- nentes de aparelho podem ser dispostos de forma diferente daquela apresentada na FIG. 7. Além disso, as funções executadas pelos vários componentes de aparelho contidos em outras modalidades do sistema de computador 700 podem ser distribuídas pelos respectivos componentes de forma diferente daquela descrita no presente documento.
[0046] Tendo descrito as modalidades exemplificativas acima refe ridas dos sistemas e dos métodos divulgados, podem ser realizadas outras modalidades ou variações alternativas. Por exemplo foi descrito no presente documento que os módulos de memória não volá- til/armazenamento (tais como o módulo de memória não volá- til/armazenamento 300; ver FIG. 3a) podem ser configurados em conformidade com um formato padrão de indústria de 6,35 cm ou qualquer outro formato adequado. De acordo com uma modalidade, os módulos de memória não volátil/armazenamento podem ser configurados como módulos de memória em linha dupla registrados (RDIMMs), módulos de memória em linha dupla de pequena dimensão (SODIMMs), DIMMs de carga reduzida (LRDIMMs), mini-DIMMs, DIMMs não tamponados ou quaisquer outros módulos de memória adequados. Além disso, os compartimentos de carregamento dianteiros (por ex. os compartimentos de carregamento dianteiros 210.1, 210.2, 210.3, 210.4) podem ser configurados adequadamente para alojar estes RDIMMs, SODIMMs, LRDIMMs, mini-DIMMs, DIMMs não tamponados, etc..
[0047] Foi igualmente descrito no presente documento que pode ser adicionada uma capacidade multiportas (por ex. de duas portas) aos módulos de memória baseados na DRAM (por ex. o módulo de memória 550; ver FIG. 5b) para permitir o estabelecimento de múltiplas conexões, por ex. desde soquetes de processador na placa mãe de um sistema de computador até um ou mais compartimentos de carregamento dianteiros que alojam módulos de memória não volá- til/armazenamento. De acordo com uma modalidade, estas conexões duplas podem ser estabelecidas desde os soquetes de processador até aos compartimentos de carregamento dianteiros localizando um controlador como o controlador 554 (ver FIG. 5b), assim como um conector como o conector 558 (ver FIG. 5b), em uma placa de processador em vez de no módulo de memória 550.
[0048] Os seguintes exemplos pertencem a modalidades exempli- ficativas adicionais dos sistemas e dos métodos divulgados. O Exemplo 1 é um sistema de computador implementando uma arquitetura de servidor configurada para facilitar a manutenção de componentes de memória não volátil no sistema de computador. O sistema de computador inclui um chassi, uma placa mãe montada no chassi e um ou mais compartimentos de módulo montados no chassi. A placa mãe é configurada para receber um ou mais processadores. Um ou mais dos compartimentos de módulo são configurados para receber um ou mais módulos de memória não volátil/armazenamento, respectivamente. Cada módulo de memória não volátil/armazenamento é operativo para executar operações de memória persistente e de armazenamento de massa. O sistema de computador inclui ainda um ou mais primeiros canais de memória para acoplar comunicavelmente um ou mais módulos de memória não volátil/armazenamento a um ou mais processado-res, respectivamente.
[0049] No Exemplo 2, o objeto do Exemplo 1 opcionalmente pode incluir características em que os primeiros canais de memória incluem um de entre canais de memória de taxa de dados dupla (DDR), inter- conexões de entrada/saída (I/O) e interconexões de tecido.
[0050] No Exemplo 3, o objeto de qualquer um dos Exemplos 1 - 2 opcionalmente pode incluir características em que os módulos de memória não volátil/armazenamento são configurados em conformidade com um formato padrão de indústria predeterminado.
[0051] No Exemplo 4, o objeto de qualquer um dos Exemplos 1 - 3 opcionalmente pode incluir características em que os módulos de memória não volátil/armazenamento são configurados para serem substituíveis em funcionamento.
[0052] No Exemplo 5, o objeto de qualquer um dos Exemplos 1 - 4 opcionalmente pode incluir características em que pelo menos um dos módulos de memória não volátil/armazenamento é configurado como uma unidade de estado sólido (SSD).
[0053] No Exemplo 6, o objeto de qualquer um dos Exemplos 1 - 5 opcionalmente pode incluir características em que pelo menos um dos primeiros canais de memória é configurado como barramento de Inter- conexão de Componentes Periféricos expresso (PCIe).
[0054] No Exemplo 7, o objeto do Exemplo 1 opcionalmente pode incluir características em que a placa mãe é configurada para receber uma ou mais placas auxiliares, em que pelo menos uma das placas auxiliares é configurada para incluir um ou mais módulos de memória.
[0055] No Exemplo 8, o objeto do Exemplo 7 opcionalmente pode incluir características em que os módulos de memória incluem um de entre módulos de memória baseados na memória de acesso aleatório dinâmica (DRAM) e módulos de memória em linha dupla de taxa de dados dupla (DDR) baseados na DRAM.
[0056] No Exemplo 9, o objeto de qualquer um dos Exemplos 7 - 8 opcionalmente pode incluir um ou mais segundos canais de memória para acoplar comunicavelmente um ou mais módulos de memória a um ou mais processadores, respectivamente.
[0057] O Exemplo 10 é um sistema de computador que implemen ta uma arquitetura de servidor configurada para facilitar a manutenção de componentes de memória não volátil no sistema de computador. O sistema de computador inclui um chassi, uma placa mãe montada num chassi e um ou mais compartimentos de módulo montados no chassi. A placa mãe é configurada para receber um ou mais processadores e uma ou mais placas auxiliares. Pelo menos uma das placas auxiliares é configurada para incluir um ou mais módulos de memória. Um ou mais dos compartimentos de módulos são configurados para receber um ou mais módulos de memória não volátil/armazenamento, respectivamente. Cada módulo de memória não volátil/armazenamento é operativo para executar operações de memória persistente e de armazenamento de massa. O sistema de computador inclui ainda um ou mais primeiros canais de memória para acoplar comunicavelmente um ou mais módulos de memória não volátil/armazenamento a um ou mais módulos de memória e um ou mais segundos canais de memória para acoplar comunicavelmente um ou mais módulos de memória a um ou mais processadores.
[0058] No Exemplo 11, o objeto do Exemplo 10 opcionalmente po de incluir características em que pelo menos um dos módulos de memória inclui um controlador operativo para aceder a pelo menos um dos módulos de memória não volátil/armazenamento por meio de pelo menos um dos primeiros canais de memória.
[0059] No Exemplo 12, o objeto de qualquer um dos Exemplos 10 - 11 opcionalmente pode incluir características em que pelo menos um dos módulos de memória inclui o controlador operativo para aceder a pelo menos um dos processadores por meio de pelo menos um dos segundos canais de memória.
[0060] No Exemplo 13, o objeto de qualquer um dos Exemplos 10 - 12 opcionalmente pode incluir características em que os módulos de memória incluem um de entre módulos de memória baseados na memória de acesso aleatório dinâmica (DRAM) e módulos de memória em linha dupla de taxa de dados dupla (DDR) baseados na DRAM.
[0061] No Exemplo 14, o objeto de qualquer um dos Exemplos 10 - 13 opcionalmente pode incluir características em que pelo menos um dos módulos de memória é um módulo de memória multiportas.
[0062] No Exemplo 15, o objeto do Exemplos 14 opcionalmente pode incluir características em que o módulo de memória multiportas inclui o controlador, uma pluralidade de submódulos de memória volátil ou não volátil acoplados comunicavelmente ao controlador, uma primeira interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de submódulos de memória volátil ou não volátil a um ou mais dos primeiros canais de memória e uma segunda interco- nexão operativa para acoplar comunicavelmente o controlador e a pluralidade de submódulos de memória volátil ou não volátil a um ou mais dos segundos canais de memória.
[0063] No Exemplo 16, o objeto de qualquer um dos Exemplos 10 - 14 opcionalmente pode incluir características em que pelo menos um dos módulos de memória é um módulo de memória em linha dupla (DIMM) fictício.
[0064] No Exemplo 17, o objeto do Exemplo 10 opcionalmente po de incluir características em que os módulos de memória não volá- til/armazenamento são configurados em conformidade com um formato padrão da indústria predeterminado.
[0065] No Exemplo 18, o objeto de qualquer um dos Exemplos 10 e 17 opcionalmente pode incluir características em que os módulos de memória não volátil/armazenamento são configurados para serem substituíveis em funcionamento.
[0066] O Exemplo 19 é um módulo de memória multiportas que inclui um controlador, uma pluralidade de módulos de memória volátil ou não volátil acoplados comunicavelmente ao controlador, uma primeira interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de módulos de memória volátil ou não volátil a uma placa de circuito e uma segunda interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de módulos de memória volátil ou não volátil a um ou mais canais de memória.
[0067] O Exemplo 20 é um sistema de computador que inclui um barramento de sistema, um barramento de memória, um visor acoplado comunicavelmente ao barramento de sistema e o módulo de memória multiportas do Exemplo 19 acoplado comunicavelmente ao bar- ramento de memória.
[0068] O Exemplo 21 é um método de manutenção de memória em um sistema de computador que inclui: providenciar um sistema de computador, em que o sistema de computador inclui um ou mais processadores e um ou mais compartimentos de módulo de memória, em que um ou mais dos compartimentos de módulos de memória aloja um ou mais dos módulos de memória não volátil/armazenamento, respectivamente, em que cada módulo de memória não volá- til/armazenamento é operativo para executar operações de memória persistente e de armazenamento de massa; providenciar uma pluralidade de canais de memória para acoplar comunicavelmente os módulos de memória não volátil/armazenamento nos compartimentos de módulo de memória aos processadores; determinar se um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos do módulo de memória falhou; quando é determinado que um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos de módulos de memória falhou, remover o módulo de memória não volátil/armazenamento que falhou do respectivo compartimento de módulos de memória, e; instalar um módulo de memória não volátil/armazenamento operativo no respectivo compartimento de módulo de memória no lugar do módulo que falhou.
[0069] No Exemplo 22 o objeto do Exemplo 21 opcionalmente po de incluir usar o módulo de memória não volátil/armazenamento como um ou mais de entre memória persistente e armazenamento de massa.
[0070] O Exemplo 23 é um método de manutenção de memória em um sistema de computador que inclui: meios para providenciar um sistema de computador, em que o sistema de computador inclui um ou mais processadores e um ou mais compartimentos de módulo de memória, em que um ou mais dos compartimentos de módulo de memória alojam um ou mais dos módulos de memória não volá- til/armazenamento, respectivamente, em que cada módulo de memória não volátil/armazenamento é operativo para executar operações de memória persistente e de armazenamento de massa; meios para providenciar uma pluralidade de canais de memória para acoplar comuni- cavelmente os módulos de memória não volátil/armazenamento nos compartimentos de módulo de memória aos processadores; meios para determinar se um dos módulos de memória não volá- til/armazenamento no respectivo compartimento de módulo de memória falhou; quando é determinado que um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos de módulo de memória falhou, meios para remover o módulo de memória não vo- látil/armazenamento que falhou do respectivo compartimento de módulo de memória, e; meios para instalar um módulo de memória não vo- látil/armazenamento operativo no respectivo compartimento de módulo de memória no lugar do módulo que falhou.
[0071] No Exemplo 24, o objeto do Exemplo 23 opcionalmente po de incluir usar o módulo de memória/armazenamento operativo como um ou mais de entre memória persistente e armazenamento de massa.
[0072] Embora sejam descritos exemplos ilustrativos de várias modalidades do objeto divulgado no presente documento, um perito na técnica facilmente chega à conclusão que alternativamente podem ser usadas outras formas para implementar o objeto divulgado. Na descrição precedente foram descritos vários aspectos do objeto divulgado. Para efeitos de explicação, os sistemas, aparelhos, métodos e configurações foram apresentados de forma a providenciar uma compreensão exaustiva do objeto divulgado. Contudo, para o perito na técnica é evidente o benefício de o objeto poder ser posto em prática sem os detalhes específicos descritos no presente documento. Por outras palavras, as características, os componentes e/ou os módulos conhecidos foram omitidos, simplificados ou combinados para não obscurecer o objeto divulgado.
[0073] É de salientar que o termo "operativo para", conforme usa do no presente documento, significa que um dispositivo, sistema, aparelho, etc. correspondente é capaz de operar ou está adaptado para operar para realizar a respectiva funcionalidade desejada quando o dispositivo, sistema ou aparelho está no estado ligado. Além disso, várias modalidades do objeto divulgado podem ser implementadas em hardware, firmware, software ou qualquer combinação destes e podem ser descritas com referência a ou conjuntamente com códigos de programa tais como instruções, funções, procedimentos, estruturas de dados, lógica, programas de aplicação, representações de design e/ou formatos para a simulação, emulação e/ou fabricação de um design, que quando acedido por uma máquina faz com que a máquina execute tarefas, definindo tipos de dados abstratos ou contextos de hardware de nível reduzido ou produza um resultado.
[0074] Além disso é de salientar que as técnicas ilustradas nas figuras podem ser implementadas usando códigos e/ou dados armazenados e/ou executados em um ou mais dispositivos de computação, tais como computadores ou dispositivos de computação gerais. Estes computadores ou dispositivos de computação armazenam e comunicam códigos e/ou dados (internamente e/ou com outros dispositivos de computação por meio de uma rede) usando meios legíveis por máquinas tais como meios de armazenamento legíveis por máquinas (por ex. discos magnéticos, discos ópticos, memória de acesso aleatório (RAM), memória apenas de leitura (ROM), dispositivos de memória flash, memória de mudança de fase) e meios de comunicação legíveis por máquinas (por ex. sinais elétricos, ópticos, acústicos ou outra forma de sinais propagados tais como ondas portadoras, sinais infravermelhos, sinais digitais, etc.).
[0075] Nenhum elemento, operação ou instrução usado no presen te documento deve ser considerado como crítico ou essencial para o presente pedido exceto quando explicitamente descrito enquanto tal. Além disso, conforme usado no presente documento, o artigo "um(a)" pretende incluir um ou mais itens. Quando apenas inclui um item, é usado o termo "um" ou linguagem similar. Além disso, a frase "baseado em" pretende significar "baseado, pelo menos em parte, em" exceto se explicitamente afirmado de outro modo.
[0076] A presente invenção não está limitada às modalidades es pecíficas divulgadas no presente documento, mas a invenção inclui todas e quaisquer modalidades específicas e equivalentes que caem no âmbito das reivindicações anexas que se seguem.

Claims (14)

1. Sistema de computador implementando uma arquitetura de servidor caracterizado pelo fato de que compreende: um chassi (102, 202, 402, 502); uma placa mãe (104, 204, 404, 504) montada no chassi (102, 202, 402, 502), e; um ou mais compartimentos de módulo montados no chassi (102, 202, 402, 502), em que a placa mãe (104, 204, 404, 504) é configurada para receber um ou mais processadores, em que a placa mãe (104, 204, 404, 504) é ainda configurada para receber uma ou mais placas auxiliares (108.1, 1028.2, 108.3, 408, 508.1, 508.2, 508.3), pelo menos uma das placas auxiliares (108.1, 1028.2, 108.3, 408, 508.1, 508.2, 508.3) sendo configurada para incluir um ou mais módulos de memória volátil, pelo menos um do um ou mais módulos de memória volátil é um módulo de memória em linha dupla (DIMM) fictício, em que um ou mais dos compartimentos de módulo são configurados para receber um ou mais módulos de memória não volátil/armazenamento, respectivamente, cada módulo de memória não volátil/armazenamento operando para executar operações de memória persistente e de armazenamento em massa e incluindo memória não volátil endereçável por bytes, e; em que o sistema de computador ainda compreende: um ou mais primeiros canais de memória para acoplar comunicavelmente o um ou mais módulos de memória não volátil/armazenamento ao um ou mais módulos de memória volátil; e um ou mais segundos canais de memória para acoplar comunicavelmente o um ou mais módulos de memória não volátil/armazenamento ao um ou mais processadores.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos um dos módulos de memória volátil inclui um controlador operativo para acessar pelo menos um dos módulos de memória não volátil/armazenamento por meio de pelo menos um dos primeiros canais de memória.
3. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que pelo menos um dos módulos de memória volátil inclui o controlador operativo para acessar pelo menos um dos processadores por meio de pelo menos um dos segundos canais de memória.
4. Sistema de acordo com a reivindicação 1, caracterizado pelo fato de que os módulos de memória volátil incluem um dentre módulos de memória baseados na memória de acesso aleatório dinâmica (DRAM) e módulos de memória em linha dupla de taxa de dados dupla (DDR) baseados na DRAM.
5. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos um dos módulos de memória volátil é um módulo de memória multiportas.
6. Sistema, de acordo com a reivindicação 5, caracterizado pelo fato de que o módulo de memória multiportas compreende: um controlador; uma pluralidade de submódulos de memória volátil acoplados comunicavelmente ao controlador; uma primeira interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de submódulos de memória volátil a um ou mais dos primeiros canais de memória, e; uma segunda interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de submódulos de memória volátil a um ou mais dos segundos canais de memória.
7. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os módulos de memória não volátil/armazenamento são configurados para se conformar com um formato padrão de indústria predeterminado.
8. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os módulos de memória não volátil/armazenamento são configurados para serem substituíveis em funcionamento.
9. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a memória não volátil endereçável por byte compreende memória de polímero, memória de mudança de fase (PCM), memória de retenção de carga baseada em nanofio, memória de acesso aleatório de transistor ferroelétrico (FeTRAM), memória crosspoint 3-dimensional, memória não volátil que usa a tecnologia resistor de memória (memristor), memória unificada ovônica, memória de acesso aleatório calcogênio (CRAM), memória de acesso aleatório magneto-resistiva (MRAM), memória ferromagnética ou memória de acesso aleatório de transferência de torque por meio do spin.
10. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende a placa mãe (104, 204, 404, 504) para incluir o um ou mais processadores.
11. Módulo de memória multiportas caracterizado pelo fato de que compreende: um controlador; uma pluralidade de módulos de memória volátil ou não volátil acoplados comunicavelmente ao controlador; uma primeira interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de módulos de memória volátil ou não volátil a uma placa de circuito; uma segunda interconexão operativa para acoplar comunicavelmente o controlador e a pluralidade de módulos de memória volátil ou não volátil a um ou mais canais de memória, e; sendo que a memória não volátil é endereçável por bytes.
12. Sistema de computador caracterizado pelo fato de que compreende: um barramento de sistema; um barramento de memória; um visor acoplado comunicavelmente ao barramento de sistema, e; o módulo de memória multiportas como definido na reivindicação 11 acoplado comunicavelmente ao barramento de memória.
13. Método de manutenção de memória em sistema de computador caracterizado pelo fato de que compreende: providenciar um sistema de computador, em que o sistema de computador inclui um ou mais processadores e um ou mais compartimentos de módulo de memória, em que um ou mais dos compartimentos de módulos de memória alojam um ou mais dos módulos de memória não volátil/armazenamento, respectivamente, cada módulo de memória não volátil/armazenamento operando para executar operações de memória persistente e de armazenamento em massa; providenciar uma pluralidade de canais de memória para acoplar comunicavelmente os módulos de memória não volátil/armazenamento nos compartimentos de módulos de memória aos processadores; determinar se um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos de módulo de memória falhou; remover o módulo de memória não volátil/armazenamento que falhou do respectivo compartimento de módulo de memória, quando é determinado que um dos módulos de memória não volátil/armazenamento nos respectivos compartimentos de módulo de memória falhou; instalar um módulo de memória não volátil/armazenamento operativo no respectivo compartimento de módulo de memória no lugar do módulo que falhou, e; sendo que a memória não volátil é endereçável por bytes.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que ainda compreende: usar o módulo de memória não volátil/armazenamento operativo como um ou mais de entre uma memória persistente e um armazenamento em massa.
BR112016009230-9A 2013-11-27 2013-11-27 Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor BR112016009230B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/072159 WO2015080717A1 (en) 2013-11-27 2013-11-27 Method and apparatus for server platform architectures that enable serviceable nonvolatile memory modules

Publications (2)

Publication Number Publication Date
BR112016009230A2 BR112016009230A2 (pt) 2017-08-01
BR112016009230B1 true BR112016009230B1 (pt) 2022-07-26

Family

ID=53199497

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016009230-9A BR112016009230B1 (pt) 2013-11-27 2013-11-27 Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor

Country Status (7)

Country Link
US (1) US10331614B2 (pt)
EP (1) EP3074878A4 (pt)
JP (1) JP2016539397A (pt)
KR (1) KR101781769B1 (pt)
CN (1) CN105981004B (pt)
BR (1) BR112016009230B1 (pt)
WO (1) WO2015080717A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649672B1 (en) * 2016-03-31 2020-05-12 EMC IP Holding Company LLC Offloading device maintenance to an external processor in low-latency, non-volatile memory
US9818457B1 (en) * 2016-09-30 2017-11-14 Intel Corporation Extended platform with additional memory module slots per CPU socket
US10649940B2 (en) 2018-03-05 2020-05-12 Samsung Electronics Co., Ltd. Modular system architecture for supporting multiple solid-state drives
US11157356B2 (en) 2018-03-05 2021-10-26 Samsung Electronics Co., Ltd. System and method for supporting data protection across FPGA SSDs
TWI654521B (zh) * 2018-04-26 2019-03-21 技嘉科技股份有限公司 照明假卡模組
KR20210034726A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템
US20210279004A1 (en) * 2020-03-03 2021-09-09 Silicon Motion, Inc. Ssd system and ssd control system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2746530B2 (ja) * 1993-01-30 1998-05-06 洲 植 全 共有メモリマルチプロセッサ
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6363452B1 (en) * 1999-03-29 2002-03-26 Sun Microsystems, Inc. Method and apparatus for adding and removing components without powering down computer system
US6530033B1 (en) * 1999-10-28 2003-03-04 Hewlett-Packard Company Radial arm memory bus for a high availability computer system
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US6608564B2 (en) * 2000-01-25 2003-08-19 Hewlett-Packard Development Company, L.P. Removable memory cartridge system for use with a server or other processor-based device
US6598174B1 (en) 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6528904B1 (en) 2000-09-29 2003-03-04 Intel Corporation Power management strategy to support hot swapping of system blades during run time
JP2003044189A (ja) * 2001-07-30 2003-02-14 Fujitsu Ltd 情報処理装置及び回路基板並びにモジュール接続方法
US7395041B2 (en) * 2001-12-31 2008-07-01 Nokia Corporation Mobile phone and method of updating radio channel settings
US7103718B2 (en) * 2002-09-03 2006-09-05 Hewlett-Packard Development Company, L.P. Non-volatile memory module for use in a computer system
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
US8140618B2 (en) * 2006-05-04 2012-03-20 Citrix Online Llc Methods and systems for bandwidth adaptive N-to-N communication in a distributed system
US7761625B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory with non-volatile type memory modules, and related technologies
US8230145B2 (en) * 2007-07-31 2012-07-24 Hewlett-Packard Development Company, L.P. Memory expansion blade for multiple architectures
US20090063895A1 (en) * 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US20110047313A1 (en) * 2008-10-23 2011-02-24 Joseph Hui Memory area network for extended computer systems
EP2273365A1 (en) * 2009-06-26 2011-01-12 Thomson Licensing Combined memory and storage device in an apparatus for data processing
US20110208900A1 (en) 2010-02-23 2011-08-25 Ocz Technology Group, Inc. Methods and systems utilizing nonvolatile memory in a computer system main memory
JP5957647B2 (ja) * 2010-06-18 2016-07-27 シーゲイト テクノロジー エルエルシーSeagate Technology LLC スケーラブルな記憶装置
JP2012058888A (ja) * 2010-09-07 2012-03-22 Buffalo Inc 記憶装置
US8851408B2 (en) * 2011-07-26 2014-10-07 John Bihn Grain crushing apparatuses
WO2013112634A1 (en) * 2012-01-23 2013-08-01 The Regents Of The University Of California System and method for implementing transactions using storage device support for atomic updates and flexible interface for managing data logging
US9513845B2 (en) * 2012-03-30 2016-12-06 Violin Memory Inc. Memory module virtualization
CN103210379B (zh) 2012-08-17 2016-05-25 华为技术有限公司 服务器系统、管理方法及设备

Also Published As

Publication number Publication date
US10331614B2 (en) 2019-06-25
BR112016009230A2 (pt) 2017-08-01
US20160239460A1 (en) 2016-08-18
JP2016539397A (ja) 2016-12-15
KR101781769B1 (ko) 2017-09-25
WO2015080717A1 (en) 2015-06-04
KR20160055938A (ko) 2016-05-18
CN105981004B (zh) 2020-08-21
CN105981004A (zh) 2016-09-28
EP3074878A4 (en) 2017-07-19
EP3074878A1 (en) 2016-10-05

Similar Documents

Publication Publication Date Title
BR112016009230B1 (pt) Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor
US11042498B2 (en) System and method for selective communication through a dual-in-line module (DIMM) socket via a multiplexer
US9927999B1 (en) Trim management in solid state drives
TWI514157B (zh) 用於寫入流量控制之記憶體模組與方法、以及電腦系統
BR102020019664A2 (pt) Dispositivo de memória e método para reparar uma memória
US20110208900A1 (en) Methods and systems utilizing nonvolatile memory in a computer system main memory
US11275678B2 (en) Data storage device with spare blocks for replacing bad block in super block and operating method thereof
US20200226045A1 (en) Initialization and power fail isolation of a memory module in a system
US10108542B2 (en) Serial link storage interface (SLSI) hybrid block storage
US11341248B2 (en) Method and apparatus to prevent unauthorized operation of an integrated circuit in a computer system
JP2022529873A (ja) マルチモード保護メモリ
WO2022216344A1 (en) Enhanced d3-c0ld and faster recovery
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
US10168923B2 (en) Coherency management for volatile and non-volatile memory in a through-silicon via (TSV) module
US11669470B2 (en) Storage system with capacity scalability and method of operating the same
CN112242176B (zh) 具有测试接口的存储装置
KR20220010424A (ko) 메모리 디바이스들의 병렬 부트 실행
EP4155894A1 (en) Technologies for memory mirroring across an interconnect
US11853555B2 (en) NVMe dual port enterprise SSD optimization
US20230297277A1 (en) Combining Operations During Reset
US20240118825A1 (en) Master slave managed memory storage
WO2024035452A1 (en) Chipset attached random access memory
GB2546843A (en) Memory module having a memory controller for controlling non-volatile memory

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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