Em algum momento, isso entra na questão do que até conta como "RAM". Existem muitas CPUs e microcontroladores que têm bastante memória no chip para rodar pequenos sistemas operacionais sem chips de RAM separados. Na verdade, isso é relativamente comum no mundo dos sistemas embarcados. Então, se você está apenas se referindo a não ter chips de RAM separados anexados, então, sim, você pode fazer isso com muitos chips atuais, especialmente aqueles projetados para o mundo embarcado. Eu fiz isso sozinho no trabalho. No entanto, como a única diferença real entre a memória endereçável no chip e os chips RAM separados é apenas a localização (e, obviamente, a latência), é perfeitamente razoável considerar a própria memória no chip como RAM. Se você está contando isso como RAM, então o número de processadores atuais e reais que seriam realmente executados sem a RAM é bastante reduzido.
Se você está se referindo a um PC normal, não, você não pode executá-lo sem blocos de RAM separados, mas isso é apenas porque o BIOS foi projetado para não tentar inicializar sem RAM instalada (que é, por sua vez , porque todos os sistemas operacionais modernos de PCs exigem que a RAM seja executada, especialmente porque as máquinas x86 normalmente não permitem o endereçamento direto da memória no chip; ela é usada apenas como cache.)
Finalmente, como Zeiss disse, não há razão teórica para que você não possa projetar um computador para rodar sem qualquer RAM, além de alguns registros. A RAM existe apenas porque é mais barata que a memória no chip e muito mais rápida que os discos. Computadores modernos têm uma hierarquia de memórias que variam de grandes, mas lentas a muito rápidas, mas pequenas. A hierarquia normal é algo assim:
- Registros - Muito rápido (pode ser operado diretamente pelas instruções da CPU, geralmente sem latência adicional), mas geralmente muito pequeno (núcleos de processador x86 de 64 bits têm apenas 16 registros de finalidades gerais, por exemplo, cada um podendo para armazenar um único número de 64 bits.) Os tamanhos de registro são geralmente pequenos porque os registros são muito caros por byte.
- Caches da CPU - Ainda são muito rápidos (geralmente de 1 a 2 ciclos de latência) e significativamente maiores que os registradores, mas ainda muito menores (e muito mais rápidos) do que a DRAM normal. O cache da CPU também é muito mais caro por byte do que a DRAM, e é por isso que ela é tipicamente muito menor. Além disso, muitas CPUs possuem hierarquias mesmo dentro do cache. Eles geralmente têm caches menores e mais rápidos (L1 e L2) além de caches maiores e mais lentos (L3.)
- DRAM (o que a maioria das pessoas pensa como 'RAM') - Muito mais lenta que o cache (latência de acesso tende a dezenas a centenas de ciclos de clock), mas muito mais barata por byte e, portanto, tipicamente maior que cache. A DRAM ainda é, no entanto, muitas vezes mais rápida que o acesso ao disco (normalmente centenas a milhares de vezes mais rápido).
- Discos - Estes são, novamente, muito mais lentos que DRAM, mas também geralmente muito mais baratos por byte e, portanto, muito maiores. Além disso, os discos geralmente não são voláteis, o que significa que eles permitem que os dados sejam salvos mesmo depois que um processo é encerrado (assim como depois que o computador é reiniciado).
Note que todo o motivo das hierarquias de memória é simplesmente economia. Não há nenhuma razão teórica (pelo menos dentro da ciência da computação) porque não poderíamos ter um terabyte de registros não voláteis em um dado de CPU. A questão é que seria insanamente difícil e caro construir. Ter hierarquias que variam de pequenas quantidades de memória muito cara a grandes quantidades de memória barata nos permite manter velocidades rápidas com custos razoáveis.