Questão Por que a RAM do sistema não pode ter um backup de bateria da mesma maneira que um CMOS? [fechadas]


Este é o acompanhamento de Por que a RAM tem que ser volátil?. Enquanto a pergunta responde porque a memória principal do computador não pode ser não-volátil, ocorre-me que Por que não podemos apenas fazer o backup da DRAM com uma bateria para preservar seu conteúdo nas botas?.

Mas , uma vez que esta tecnologia é inexistente Eu me perguntava quais eram as razões para o mesmo.

Assim, Que razões práticas existem para não conseguir projetar uma memória principal com bateria, como as usadas nos cartuchos CMOS e de jogos? 

Nota : Gostaria de respostas que ilustrem os problemas práticos envolvidos na criação de tal sistema, em vez de compará-lo com tecnologias existentes, como suspender / hibernar.


4


origem


Como isso seria diferente do estado suspenso? - ernie
A RAM precisaria ser atualizada, então você também precisaria alimentar o controlador de memória. Hoje em dia, isso faz parte da CPU, então parte disso pode precisar ficar ligada. E para deci Watts. Eu medi um aumento de 2-3 Watts por DIMM extra instalado (DDR3-533MHz, placa i920 / X58). - Hennes
Provavelmente, sua definição de "insignificante" não corresponde ao consumo real versus a capacidade da bateria em relação ao tempo. Assumindo 10W e 1000 horas de espera, você precisa de uma bateria de 10 KW, que tem cerca de 4 "C" de tamanho NiMH, além de circuitos de carga, conversão de voltagem, etc. É claro, pode-se usar RAM estática e não ter consumo de bateria quando desligado . - mpez0
@Ash, você está satisfeito com as respostas propostas abaixo? Eu por um não sou. O mais próximo que alguém chegou para responder a pergunta satisfatoriamente são os comentários por Hennes e mpez0. Aqueles realmente abordam a questão do que prático razões que existem para serem incapazes de fazer memória de bateria como as usadas nos CMOS e nos cartuchos de jogos. A resposta é que a composição e a quantidade de memória RAM moderna o deixam faminto por poder usar uma bateria pequena como essa. - Synetech
Este não é um conceito novo, um item antigo que nunca realmente pegou (custo proibitivo e pequeno tamanho GiB) é um item da Acard forums.techarena.in/motherboard-processor-ram/1125600.htm - Carl B


Respostas:


Introduzir uma fonte de energia na memória RAM é chamada de ligar um computador, o que você está falando basicamente é apenas deixar o computador ligado e pressionar o botão de suspensão.
Resposta Expandida:
Ele já foi implementado na medida em que o hardware atual permite, o modo de espera desliga todo o hardware não essencial para manter o estado do computador na RAM, portanto as ideias são exatamente as mesmas além do conceito de desligar a máquina. Para realmente reinicializar a máquina no estado anterior, dependeria de algum espaço disponível restante na RAM e PRINCIPAL modificações no kernel, então, a menos que você faça engenharia reversa do NT Kernel ou implique a Microsoft para criar o recurso, o próprio software torna isso impossível.


4



Ênfase na função Sleep. - Doktoro Reichard
-1. A questão é sobre alimentar RAM de uma bateria, que é não modo dormir. Coloque o seu computador em repouso, desligue o cabo de alimentação e veja se a RAM será preservada. Laptops são considerados trapaça;) - gronostaj
@gronostaj considera o modo de suspensão como um equivalente de "estado de baixa potência". Os laptops não têm esse problema porque podem se alimentar por um momento. No seu caso, como você preservaria a RAM em um desktop sem o cabo de alimentação? Resposta: uma bateria de tipos. - Doktoro Reichard
@gronostaj A questão é fornecer energia para a RAM para preservar o estado e economizar tempo de inicialização, não faço menção ao fornecimento de energia, então colocá-lo para dormir e trocar a PSU por uma bateria ainda funcionaria.
@gronostaj A questão é sobre como salvar o estado do computador na RAM e a "praticidade de implementar essa fonte de backup" praticidade referindo-se a adaptar isso para o PC moderno, eu simplesmente expliquei por que você desligaria o PC quando quiser salvá-lo o estado quando você pode preservar a energia usando a função sleep. Eu também mencionei potenciais obstáculos para a criação de um estado de salvamento no desligamento porque ele também perguntou sobre isso.


Adicionando ao que Slowki disse, a razão pela qual o Sono funciona é que você não é reiniciando.

Os dados na RAM só têm significado se você souber o que e onde está. Como é, não há regra explícita para, na inicialização, qualquer programa deve armazenar suas informações em qualquer lugar da RAM (há exceções, é claro).

Se o que você sugere (retendo informações de RAM entre as reinicializações) entrou em prática, o sistema operacional teria que vir como um homem do meio entre cada programa que estava sendo executado e as informações presentes na RAM. Para fazer isso, você precisaria armazenar os endereços de cada informação na RAM e, então, dizer aos programas para acessá-los.

Isso não requer apenas uma reescrita completa das regras de alocação de memória, mas uma situação perigosa em que o sistema operacional, e não o programa, é responsável pelo estado do programa. Devido à dificuldade envolvida nisso, e as práticas atuais de programação, estas são as razões que aponto pela inviabilidade de sua proposta.

Dormir coloca seu computador em um estado de baixa energia, de modo que o estado do computador seja armazenado. Nenhuma atividade de RAM ou disco deve acontecer enquanto o computador estiver em repouso.

Há também a função Hibernate, em que você, em vez de usar a RAM volátil, usa um armazenamento não volátil (seu HDD ou SDD) para armazenar o conteúdo da RAM. Neste caso você não usa nenhum tipo de poder.


3



Bom trabalho no rigor da sua resposta. Outro ponto seria que seria necessária uma reescrita de todos os Kernels modernos apenas para lidar com a ideia de RAM já sendo preenchida durante a inicialização, e eu nem tenho certeza se a própria BIOS poderia lidar com isso. Além disso, se o estado salvo estivesse em 100% de uso da RAM, haveria perda de dados apenas para obter o BIOS / Kernel / Init-Systems carregado na RAM.
@Slowki você pode adicionar os detalhes acima também à sua resposta. Eles afirmam pontos válidos. - Ashildr


Essa ideia pode ser prejudicial. Se você desligasse o computador e a memória ainda mantivesse seu conteúdo, a alteração de qualquer coisa no computador poderia ser destrutiva.


1



Embora essa seja uma objeção válida, presumivelmente, se alguém fizesse algo parecido com o que o OP está pedindo, haveria uma maneira de realmente desligar o sistema. Muito parecido com o ATX, as PSUs costumam ter uma chave na parte de trás que, na verdade, as desliga, em vez de apenas ajustá-las para um poder de desligamento. Estado. - Michael Kjörling


Como Hennes afirmou em seu comentário, a RAM requer atualização contínua e não apenas energia. Nos dias de processadores mais simples, isso era feito intercalando ciclos de atualização com ciclos de dados no barramento do sistema. Portanto, sua ideia de backup de bateria poderia ter sido obtida mantendo-se o processador. No entanto, isso era mais conhecido como deixar a energia ligada, por isso não pegou. A tecnologia de bateria também não era tão eficiente, as baterias de laptop eram maiores e mais pesadas.

Em tempos mais modernos, o processador contém uma unidade de gerenciamento de memória para atualizar a RAM. Portanto, sua ideia agora requer manter apenas uma parte do processador - a MMU - na energia. Isso exigiria um novo design do processador.

Processadores em telefones celulares podem fazer algumas coisas muito inteligentes com seu uso de energia, a fim de maximizar a vida útil da bateria. Isso inclui a desativação seletiva de componentes inativos. Você poderia tentar construir um PC usando um processador de telefone.

Tudo acima, obviamente, espera que todos os outros componentes; HDD, tela etc. são desligados.


1



Mas o problema é que usar um processador de telefone (também conhecido como processador ARM) implica duas coisas. Um sistema operacional que foi escrito para a plataforma ARM e aplicativos para acompanhá-lo. Dito isto, o Windows 8 RT é apenas isso. - Doktoro Reichard
Bom ponto @Doktoro Reichard. O PC é mais do que apenas o hardware, o sistema operacional precisa lidar com isso. Eu também vi alguns telefones Samsung e Asus que podem ser encaixados como um laptop, o que não é uma abordagem muito diferente. - Judith
Esta resposta está errada em algumas coisas. A MMU traduz endereços virtuais para endereços físicos e impõe restrições de acesso. Ele não atualiza a DRAM, isso é bobagem, sem mencionar que ela é removida da DRAM por alguns níveis de cache. É o trabalho do controlador de memória para fazer interface com a DRAM e executar atualizações. Somente nos últimos anos os controladores de memória foram integrados aos processadores. Além disso, todas as gerações de SDRAM suportam modos de economia com auto-atualização que não exigem nada do controlador de memória, mas mantêm algumas linhas de controle em um nível definido. - Andreas Bombe


Por que não introduzir uma fonte de bateria na RAM para preservar seu conteúdo nas botas?

Na verdade, o seu computador já está usando memória alimentada por bateria. Você já teve que redefinir as configurações da BIOS quando não conseguiu inicializar o computador? Existem duas maneiras de fazer isso: com o jumper ou removendo a bateria do CMOS. Essa bateria é usada para alimentar pouca quantidade de memória usada para manter as configurações da BIOS. Não é RAM, mas está perto do que você está pedindo - como você pode ver, já estamos usando memória ativa.

A partir de agora, não estamos usando RAM ativada porque temos SSDs. Os SSDs de nível de consumidor permitem inicializar o sistema operacional em segundos e são muito mais baratos que a RAM. É isso quando se trata de ler arquivos do disco.

Mas os SSDs são totalmente revolucionários. Então, por que não estávamos usando RAM alimentada antes do Era SSD? Porque 20 GB (o tamanho da minha pasta Windows) do espaço HDD custa US $ 2,2 e 20 GB de DDR3 custa US $ 220 (melhores ofertas da Newegg). Se você puder pagar isso, existem algumas opções disponíveis.

Estou falando apenas de manter arquivos na RAM porque, com o atual design de hardware e software, manter o estado entre as reinicializações é impossível. Keltari tem já postado que, por exemplo, alterar a placa gráfica pode ser destrutivo para o hardware ou software. O mesmo se aplica à realização de modificações no disco.

Por exemplo, o mesmo arquivo na RAM e no disco rígido pode perder a sincronização em algum momento se você retirar a unidade (ou a RAM) e mexer em alguns arquivos). Verificar se os arquivos RAM correspondem aos arquivos do disco é tão lento quanto simplesmente ler o disco, então isso iria frustrar o propósito. Você teria que lembrar de redefinir a RAM (como a bateria da CMOS) ou criar sistemas de hardware que fizessem isso, mas eles também precisariam de uma fonte de energia. Construir esse sistema é difícil, se não impossível.

E finalmente, Estado destina-se a ser volátil - como o oposto de arquivos, que deve permanecer. É assim que os computadores são projetados. Para mudar isso, você teria que repensar tudo o que viemos desde que a RAM volátil foi usada pela primeira vez em um computador.


1



O primeiro parágrafo está incorreto, no sentido de que o BIOS não precisa "acessar aleatoriamente" sua memória. Além disso, o segundo último parágrafo não faz muito sentido, já que a RAM e os discos rígidos não foram projetados para serem removidos (no entanto, havia um bom post sobre hotplugging) - Doktoro Reichard
@DoktoroReichard Eu não estou falando sobre como remover o disco rígido de um sistema em execução, mas removê-lo em geral. Por exemplo, se você quiser usá-lo para mover alguns dados de um PC para outro e depois conectá-lo de volta. Ou você pode "emprestar" RAM ao diagnosticar problemas de RAM com outro PC. - gronostaj
@DoktoroReichard apenas por curiosidade, que tipo de memória é usada para manter as configurações da BIOS? - gronostaj
Está uma forma de ROM. Além disso, os exemplos que você deu, embora válidos, não são tão comuns. - Doktoro Reichard
@DoktoroReichard Eu acho que esse link se aplica à memória que abriga o próprio BIOS, não as configurações do BIOS. Eu acredito que eles são mantidos em algum tipo de memória volátil, caso contrário, o truque da bateria não funcionaria. De qualquer forma, editei o primeiro parágrafo. - gronostaj