Question Pourquoi la RAM système ne peut-elle pas avoir une batterie de secours de la même manière qu'un CMOS? [fermé]


Ceci est le suivi de Pourquoi la RAM doit-elle être volatile?. Alors que la question répond pourquoi la mémoire principale de l'ordinateur ne peut pas être non volatile, il me semble que Pourquoi ne pouvons-nous pas simplement sauvegarder la DRAM avec une batterie pour conserver son contenu entre les bottes?.

Mais , puisque cette technologie est inexistante , Je me suis demandé quelles étaient les raisons de la même chose.

Alors, Quelles sont les raisons pratiques d'être incapables de concevoir une mémoire principale protégée par batterie comme celles utilisées dans le CMOS et les cartouches de jeu? 

Remarque : J'aimerais des réponses qui illustrent les problèmes pratiques liés à la conception d'un tel système plutôt que de le comparer aux technologies existantes, telles que la suspension / l'hibernation.


4
2017-12-17 18:26


origine


En quoi cela serait-il différent de l'état suspendu? - ernie
La RAM devrait être rafraîchie, vous devrez donc également alimenter le contrôleur de mémoire. Ces jours-ci, cela fait partie du processeur, donc une partie de cela pourrait devoir rester sous tension. Et déci Watts. J'ai mesuré une augmentation de 2-3 watts par module DIMM supplémentaire installé (DDR3-533 MHz, carte i920 / X58). - Hennes
Votre définition de «négligeable» ne correspond probablement pas à la consommation réelle par rapport à la capacité de la batterie par rapport au temps. En supposant 10W et 1000 heures de veille, vous avez besoin d'une batterie de 10 KW, soit environ 4 "C" de taille NiMH, plus un circuit de charge, une conversion de tension, etc. . - mpez0
@Ash, êtes-vous satisfait des réponses proposées ci-dessous? Moi non plus. Les commentaires les plus proches sont ceux qui répondent le mieux à la question. Hennes et mpez0. Celles-ci abordent en fait la question de ce que pratique Les raisons pour lesquelles il est impossible de créer de la mémoire sauvegardée par batterie, comme celles utilisées dans le CMOS et les cartouches de jeux. La réponse étant que le maquillage et la quantité de mémoire vive moderne rendent trop gourmande l’utilisation d’une pile de ce type. - Synetech
Ce n'est pas un concept nouveau, un article ancien qui n'a jamais vraiment pris racine (coût prohibitif et petite taille de GiB) est un article d'Acard forums.techarena.in/motherboard-processor-ram/1125600.htm - Carl B


Réponses:


L’introduction d’une source d’alimentation dans la RAM est appelée «allumer un ordinateur». Ce dont vous parlez, c’est simplement de laisser votre ordinateur allumé et d’appuyer sur le bouton de veille.
Réponse étendue:
Il a déjà été implémenté dans la mesure où le matériel actuel le permet, le mode veille arrête tout matériel non essentiel au maintien de l’état de l’ordinateur en mémoire vive, de sorte que les idées sont exactement les mêmes en dehors du concept d’arrêt de la machine. Pour redémarrer réellement la machine dans l’état précédent, il faudrait disposer d’un espace disponible dans la RAM et MAJEUR modifications du noyau, à moins que vous ne procédiez au reverse engineering du noyau NT ou que vous ne demandiez à Microsoft de créer la fonctionnalité, le logiciel lui-même le rend impossible.


4
2017-12-17 18:31



Accent sur la fonction Sommeil. - Doktoro Reichard
-1. La question porte sur l’alimentation de la mémoire vive d’une batterie, qui est ne pas mode veille. Mettez votre ordinateur en veille, débranchez le cordon d'alimentation et vérifiez si la RAM sera préservée. Les ordinateurs portables sont considérés comme de la triche;) - gronostaj
@gronostaj considère le mode veille comme un équivalent de «faible consommation». Les ordinateurs portables n’ont pas ce problème parce qu’ils peuvent s’alimenter un moment. Dans votre cas, comment préserveriez-vous la RAM sur un bureau sans le cordon d'alimentation? Réponse: une sorte de batterie. - Doktoro Reichard
@gronostaj La question est de fournir de la puissance à la RAM pour préserver l'état et de gagner du temps de démarrage, je ne fais aucune mention de l'alimentation, donc le mettre en veille et échanger le bloc d'alimentation contre une batterie fonctionnerait toujours.
@gronostaj La question concerne la sauvegarde de l’état de l’ordinateur dans la mémoire vive et le caractère pratique de l’implémentation d’une telle source de sauvegarde en faisant référence à l’adaptation au PC moderne. l'état dans lequel vous pouvez conserver l'énergie en utilisant la fonction de veille. J'ai également mentionné des obstacles potentiels à la création d'un état de sauvegarde à l'arrêt, car il a également posé des questions à ce sujet.


En plus de ce que Slowki a dit, la raison pour laquelle Sleep fonctionne est que vous n'êtes pas redémarrage.

Les données de la mémoire vive n'ont de sens que si vous savez quoi et où elles se trouvent. Comme c'est le cas, il n'y a pas de règle explicite à, au démarrage, tout programme devrait stocker ses informations n'importe où sur la RAM (il y a bien sûr des exceptions).

Si ce que vous proposez (conserver les informations de la RAM entre les redémarrages) est entré en vigueur, le système d'exploitation devrait intermédiaire entre chaque programme en cours d'exécution et les informations présentes dans la RAM. Pour ce faire, vous devez stocker les adresses de chaque information dans la RAM, puis demander aux programmes d'y accéder.

Cela nécessite non seulement une réécriture complète des règles d'allocation de mémoire, mais également une situation dangereuse dans laquelle le système d'exploitation, et non le programme, est responsable de l'état du programme. En raison des difficultés que cela implique et des pratiques actuelles en matière de programmation, ce sont les raisons pour lesquelles je souligne l’impossibilité de votre proposition.

Le mode veille permet à votre ordinateur de consommer peu d'énergie, de sorte que l'état de l'ordinateur est stocké. Aucune activité de RAM ou de disque ne doit se produire lorsque l'ordinateur est en veille.

Il y a aussi la fonction Hibernate, au lieu d'utiliser la mémoire volatile, utilisez plutôt une mémoire non volatile (votre disque dur ou votre SDD) pour stocker le contenu de la RAM. Dans ce cas, vous n'utilisez aucune sorte de puissance.


3
2017-12-17 18:47



Bon travail sur la rigueur de votre réponse. Un autre point serait que cela nécessiterait une ré-écriture de tous les noyaux d’OS modernes, juste pour gérer l’idée que la RAM est déjà remplie au démarrage, et je ne suis même pas sûr que le BIOS lui-même puisse le gérer. De plus, si l'état enregistré était à 100% de RAM, il y aurait une perte de données pour charger le BIOS / Kernel / Init-Systems dans la RAM.
@ Slowki vous pouvez ajouter les détails ci-dessus également à votre réponse.Ils énoncent des points valides. - Ashildr


Cette idée pourrait être préjudiciable. Si vous éteignez l'ordinateur et que la mémoire conserve toujours son contenu, tout changement sur l'ordinateur peut être destructeur.


1
2017-12-17 18:49



Bien qu'il s'agisse d'une objection valable, si l'on fait quelque chose comme ce que le PO demande, il y aurait moyen de fermer le système. Tout comme les blocs d’alimentation ATX ont souvent un commutateur à l’arrière qui les désactive, au lieu de simplement les éteindre. Etat. - Michael Kjörling


Comme Hennes l’a déclaré dans son commentaire, la RAM nécessite un rafraîchissement continu, pas seulement du pouvoir. À l'époque des processeurs plus simples, cela se faisait en intercalant des cycles de rafraîchissement avec des cycles de données sur le bus système. Ainsi, votre idée de sauvegarde de la batterie aurait pu être réalisée en maintenant le processeur en marche. Cependant, cela était mieux connu sous le nom de laisser l’alimentation sous tension. La technologie de la batterie n'était pas aussi efficace, les batteries d'ordinateurs portables étaient plus grandes et plus lourdes.

Dans les temps plus modernes, le processeur contient une unité de gestion de la mémoire pour rafraîchir la mémoire vive. Votre idée nécessite donc de ne conserver qu'une partie du processeur - le MMU - sous tension. Cela nécessiterait une nouvelle conception du processeur.

Les processeurs dans les téléphones mobiles peuvent faire des choses très intelligentes avec leur consommation d'énergie afin de maximiser la durée de vie de la batterie. Cela inclut la mise hors tension sélective des composants inactifs. Vous pouvez essayer de construire un PC en utilisant un processeur de téléphone.

Tout ce qui précède attend bien sûr tous les autres composants; Le disque dur, l'écran, etc. sont éteints.


1
2017-12-17 19:42



Mais le problème est que l'utilisation d'un processeur téléphonique (également appelé processeur ARM) implique 2 choses. Un système d'exploitation qui a été écrit pour la plate-forme ARM et les applications qui l'accompagnent. Cela étant dit, Windows 8 RT n'est que cela. - Doktoro Reichard
Bon point @Doktoro Reichard. Le PC est plus que le matériel, le système d'exploitation doit le gérer. J'ai également vu des téléphones Samsung et Asus qui peuvent être connectés comme un ordinateur portable, ce qui n'est pas une approche très différente. - Judith
Cette réponse est fausse sur quelques points. Le MMU traduit les adresses virtuelles en adresses physiques et applique des restrictions d'accès. Il ne rafraîchit pas la DRAM, c'est idiot, sans compter qu'il est supprimé de la mémoire DRAM par quelques niveaux de cache. C'est le travail du contrôleur de mémoire d'interfacer avec la DRAM et d'effectuer des rafraîchissements. Ce n'est que ces dernières années que les contrôleurs de mémoire ont été intégrés aux processeurs. En outre, toutes les générations de SDRAM prennent en charge les modes de mise hors tension avec auto-rafraîchissement, ce qui ne nécessite rien du contrôleur de mémoire, mais conserve quelques lignes de contrôle à un niveau défini. - Andreas Bombe


Pourquoi ne pas introduire une source de batterie dans la RAM pour préserver son contenu sur les bottes?

En fait, votre ordinateur utilise déjà de la mémoire sur batterie. Avez-vous déjà eu à réinitialiser les paramètres de votre BIOS lorsque vous ne pouviez pas démarrer l'ordinateur? Il y a deux façons de le faire: avec le cavalier ou en retirant la batterie CMOS. Cette batterie est utilisée pour alimenter une petite quantité de mémoire utilisée pour conserver les paramètres du BIOS. Ce n'est pas de la RAM, mais c'est proche de ce que vous demandez - comme vous pouvez le voir, nous utilisons déjà de la mémoire alimentée.

À l'heure actuelle, nous n'utilisons pas de RAM alimentée car nous avons des SSD. Les disques SSD grand public vous permettent de démarrer votre système d'exploitation en quelques secondes et sont beaucoup moins chers que la RAM. C'est ça quand il s'agit de lire des fichiers à partir du disque.

Mais les SSD sont des changeurs de jeu totaux. Alors, pourquoi n'utilisions-nous pas de RAM alimentée avant la Ère SSD? Parce que 20 Go (la taille de mon dossier Windows) de l’espace disque dur coûte 2,2 dollars et que 20 Go de DDR3 coûtent 220 dollars (meilleures offres de Newegg). Si vous pouvez vous le permettre, il y a quelques options disponibles.

Je ne parle que de la conservation des fichiers dans la mémoire vive car, avec la conception actuelle du matériel et des logiciels, il est impossible de conserver un état lors des redémarrages. Keltari a déjà posté Par exemple, le changement de carte graphique peut être destructeur pour le matériel ou le logiciel. Il en va de même pour les modifications de disque.

Par exemple, le même fichier dans la RAM et sur le disque dur pourrait perdre de la synchronisation à un moment donné si vous retirez le disque (ou la RAM) et que vous vous trompez avec certains fichiers). Vérifier si les fichiers RAM correspondent aux fichiers disques est aussi lent que de simplement lire le disque, ce qui irait à l'encontre de l'objectif. Il ne faut pas oublier de réinitialiser la RAM (comme la batterie CMOS) ou de créer des systèmes matériels qui le feraient, mais ils nécessitent également une source d'alimentation. Construire un tel système est difficile, voire impossible.

Et enfin, Etat est censé être volatile - comme le contraire de des dossiers, qui devrait rester. C'est comme ça que les ordinateurs sont conçus. Pour changer cela, vous devez repenser tout ce que nous sommes devenus depuis que la RAM volatile a été utilisée pour la première fois sur un ordinateur.


1
2017-12-17 19:45



Le premier paragraphe est incorrect, dans le sens où le BIOS n’a pas besoin d’accéder de manière aléatoire à sa mémoire. En outre, le deuxième paragraphe ne fait pas beaucoup de sens, car la RAM et les disques durs ne sont généralement pas conçus pour être supprimés (il y avait cependant un bon message sur le branchement à chaud). - Doktoro Reichard
@DoktoroReichard Je ne parle pas de retirer le disque dur d'un système en cours d'exécution, mais de le supprimer en général. Par exemple, si vous souhaitez l'utiliser pour déplacer certaines données d'un PC vers un autre, puis le reconnecter. Ou vous pouvez "emprunter" de la RAM lors du diagnostic des problèmes de RAM avec un autre PC. - gronostaj
@DoktoroReichard juste par curiosité, quel type de mémoire est utilisé pour conserver les paramètres du BIOS? - gronostaj
Ses une forme de ROM. De plus, les exemples que vous avez donnés, bien que valides, ne sont pas si courants. - Doktoro Reichard
@DoktoroReichard Je suppose que ce lien s'applique à la mémoire qui héberge le BIOS lui-même, pas aux paramètres du BIOS. Je crois qu'ils sont conservés dans une sorte de mémoire volatile, sinon le tour de batterie ne fonctionnerait pas. En tout cas, j'ai édité le premier paragraphe. - gronostaj