À un certain point, cela se pose sur la question de ce qui compte même comme «RAM». Il existe de nombreux processeurs et microcontrôleurs qui ont beaucoup de mémoire sur puce pour exécuter de petits systèmes d'exploitation sans puce RAM séparée. En fait, cela est en fait relativement courant dans le monde des systèmes embarqués. Donc, si vous faites simplement référence à l'absence de puces RAM séparées, alors, oui, vous pouvez le faire avec de nombreuses puces actuelles, en particulier celles conçues pour le monde embarqué. Je l'ai fait moi-même au travail. Cependant, comme la seule vraie différence entre la mémoire sur puce adressable et les puces RAM séparées est simplement l'emplacement (et, évidemment, la latence), il est parfaitement raisonnable de considérer que la mémoire sur puce est elle-même RAM. Si vous comptez cela comme RAM, alors le nombre de courant,
Si vous faites référence à un PC normal, non, vous ne pouvez pas l'exécuter sans barrettes de RAM séparées, mais c'est uniquement parce que le BIOS est conçu pour ne pas tenter de démarrer sans RAM installée (ce qui est, à son tour, parce que tous les systèmes d'exploitation PC modernes nécessitent de la RAM pour fonctionner, d'autant plus que les machines x86 ne vous permettent généralement pas d'adresser directement la mémoire sur puce; elle est utilisée uniquement comme cache.)
Enfin, comme l'a dit Zeiss, il n'y a aucune raison théorique pour laquelle vous ne pouvez pas concevoir un ordinateur pour fonctionner sans RAM du tout, à part quelques registres. La RAM existe uniquement parce qu'elle est moins chère que la mémoire sur puce et beaucoup plus rapide que les disques. Les ordinateurs modernes ont une hiérarchie de mémoires qui va de grande, mais lente à très rapide, mais petite. La hiérarchie normale ressemble à ceci:
- Registres - Très rapide (peut être utilisé directement par les instructions du processeur, généralement sans latence supplémentaire), mais généralement très petit (les cœurs de processeur x86 64 bits ne disposent que de 16 registres à usage général, par exemple, chacun pouvant stocker un nombre unique de 64 bits.) Les tailles de registre sont généralement petites car les registres sont très chers par octet.
- Caches CPU - Toujours très rapide (souvent 1-2 cycles de latence) et significativement plus grand que les registres, mais toujours beaucoup plus petit (et beaucoup plus rapide) que la DRAM normale. Le cache du processeur est également beaucoup plus cher par octet que la DRAM, c'est pourquoi il est généralement beaucoup plus petit. De plus, de nombreux processeurs ont en fait des hiérarchies même dans le cache. Ils ont généralement des caches plus petits et plus rapides (L1 et L2) en plus des caches plus grands et plus lents (L3.)
- DRAM (ce que la plupart des gens considèrent comme `` RAM '') - Beaucoup plus lent que le cache (la latence d'accès a tendance à être des dizaines de centaines de cycles d'horloge), mais beaucoup moins cher par octet et, par conséquent, généralement beaucoup plus grande que le cache. La DRAM est toujours, cependant, beaucoup plus rapide que l'accès au disque (généralement des centaines à des milliers de fois plus rapide.)
- Disques - Ceux-ci sont, encore une fois, beaucoup plus lents que la DRAM, mais aussi généralement beaucoup moins chers par octet et, par conséquent, beaucoup plus grands. De plus, les disques sont généralement non volatils, ce qui signifie qu'ils permettent d'enregistrer les données même après la fin d'un processus (ainsi que après le redémarrage de l'ordinateur).
Notez que la raison entière des hiérarchies de mémoire est simplement économique. Il n'y a aucune raison théorique (pas en informatique du moins) pour laquelle nous ne pourrions pas avoir un téraoctet de registres non volatils sur une puce CPU. Le problème est qu'il serait tout simplement incroyablement difficile et coûteux à construire. Le fait d'avoir des hiérarchies allant de petites quantités de mémoire très coûteuse à de grandes quantités de mémoire bon marché nous permet de maintenir des vitesses rapides à des coûts raisonnables.