2017-09-12 8 views
0

Est-il possible de faire fonctionner le processeur sur un grand support de stockage persistant directement sans utiliser de RAM? Je vais bien si la performance est faible ici.Est-il possible de faire fonctionner le processeur sur un grand support de stockage persistant directement sans utiliser de RAM?

+0

Ressemble à une copie d'une question sur le superutilisateur: https://superuser.com/questions/857465/run-a-computer-without-ram. Sur toute architecture existante, vous avez besoin d'au moins ROM pour un code de programme, mais vous pouvez utiliser [cache-as-ram mode sur x86] (https://superuser.com/questions/857465/run-a-computer-without-ram # comment1834964_857485). Voir aussi https://electronics.stackexchange.com/questions/16485/can-you-run-an-x86-class-processor-ramless –

+0

Bien sûr, si votre espace de stockage non volatile est mappé dans un espace d'adressage physique, par exemple [3D XPoint] (https://en.wikipedia.org/wiki/3D_XPoint) peut être, vous pouvez l'utiliser * comme * RAM même si ce n'est pas une DRAM normale. S'il vous plaît clarifier ce que vous voulez demander. –

+0

En fait IDK si 3D XPoint est destiné à être mappé en mémoire. Je suppose que c'est normalement intégré dans les périphériques de type SSD maintenant. Quoi qu'il en soit, le stockage persistant mappé en mémoire est une chose, et les récentes extensions d'ensemble d'instructions (comme clflushopt et clwb) sont conçues pour permettre au logiciel de s'assurer que les choses arrivent dans le bon ordre et/ou avant de faire quelque chose autre. Voir https://www.microsoft.com/en-us/research/publication/better-io-through-byte-addressable-persistent-memory/ et https://lwn.net/Articles/674752/ –

Répondre

1

Vous devrez spécifier l'architecture CPU qui vous intéresse, la plupart des architectures standard (x86, Power, ARM) supposent l'existence de RAM pour leur bus de données, je crains que seule une carte personnalisée pour ces processeurs permettrait d'utiliser quelque chose comme SSD au lieu de RAM.

Quelques chiffres comparant RAM vs SSD latences: https://gist.github.com/jboner/2841832

En outre, la RAM est là pour une raison, d'accès "lisse" à plus de stockage du CPU, ont un regard sur cette image (de https://www.reddit.com/r/hardware/comments/2bdnny/dram_vs_pcie_ssd_how_long_before_ram_is_obsolete/)

enter image description here

Comme note latérale, il est possible d'accéder à un stockage persistant sans CPU impliquant (bien que la RAM est toujours nécessaire), voir https://www.techopedia.com/definition/2767/direct-memory-access-dma ou https://en.wikipedia.org/wiki/Direct_memory_access

+1

En fait x86 can travailler sans RAM; Les BIOS normaux décident simplement d'arrêter le démarrage lorsqu'ils ne détectent aucune RAM. Avec une ROM personnalisée, vous pouvez utiliser le mode sans remplissage pour utiliser le cache en tant que RAM. https://stackoverflow.com/questions/27699197/cache-as-ram-no-fill-mode-executable-code. Je pense que cela prendrait même en charge DMA, puisque x86 moderne (avec contrôleur de mémoire intégré dans le processeur) a DMA cohérent en cache. Bien sûr, utiliser le cache comme RAM ne fonctionne pas vraiment sans RAM. –

+0

A droite, il y a CAR (Cache comme RAM), n'hésitez pas à ajouter une réponse plus détaillée, elle pourrait être plus correcte que la mienne –

+0

Je vais attendre que le PO réponde à mes commentaires sur la question; on ne sait pas exactement ce qu'ils demandent, et si c'est déjà un doublon de la question du superutilisateur. –