A memória é usada para muitas coisas, como eu entendo. Ele serve como cache de disco e contém as instruções dos programas e sua pilha e pilha. Aqui está um experimento mental. Se alguém não se importa com a velocidade ou o tempo que leva para um computador fazer a trituração, qual é a quantidade mínima de memória que se pode ter, supondo que se tenha um disco muito grande? É possível acabar com a memória e apenas ter um disco?
O cache de disco obviamente não é necessário. Se configurarmos o espaço de troca no disco, a pilha de programas e a pilha também não exigirão memória. Existe algo que exija memória para estar presente?
Respostas:
Certo. Em princípio, dado o hardware apropriado, você poderia ter apenas um disco, com tudo armazenado em disco. Sempre que a CPU executava uma instrução de carregamento ou armazenamento, poderia haver algum hardware que transforma isso em um disco para leitura ou gravação. Seria extremamente lento: em um disco magnético, cada busca leva cerca de 10ms, para que você possa fazer cerca de 100 leituras e gravações de acesso aleatório por segundo.
Alguns sistemas mapearam a memória flash em seu espaço de endereço. A memória flash fornece armazenamento não volátil (persistente). Portanto, de certa forma, isso se assemelha ao que você menciona - embora esses sistemas geralmente também tenham RAM.
fonte
Em termos de computabilidade, sabe-se que todo computador moderno pode ser simulado por uma máquina de Turing cujo único armazenamento é uma célula de fita linear única que pode ser gravada. Supondo que você possa continuar adicionando quantidades ilimitadas de armazenamento em disco, um computador com apenas discos rígidos é igualmente poderoso. Então, certamente, você poderia criar um computador sem memória.
Obviamente, não há discos rígidos com "espaço ilimitado", mas também não há RAM ilimitada.
Há várias questões práticas, por exemplo, você precisaria de convenções para mapear diferentes áreas e endereços no disco, um sistema operacional que gravou no disco para armazenamento intermediário e endereços de disco gerenciado. Na realidade, você acabaria simulando de perto a RAM no seu disco rígido.
fonte
A questão não é puramente acadêmica. É uma questão de registro histórico que um dos primeiros computadores produzidos comercialmente [desculpe, não me lembro qual de imediato] não tinha RAM - todos os programas foram executados buscando instruções diretamente de um tambor magnético [um cilindro rotativo com superfície externa magnetizável (discos vieram depois)]. Foi comparativamente lento, mas muito mais barato que muitos da concorrência. [isso foi no tempo dos 'tubos']
Curiosamente, ele veio com uma ferramenta agora obsoleta conhecida como 'montador otimizador' - ou seja, o montador não apenas gerou instruções da máquina, como as gravou no tambor de forma não consecutiva, a fim de minimizar, para cada instrução, a quantidade de tempo esperando o tambor girar para o próximo.
fonte
Não. As unidades de disco não são endereçáveis aleatoriamente, como a RAM. Em vez disso, são dispositivos de armazenamento em bloco. Você não pode ler ou escrever um byte deles. E sua CPU não pode ler um setor inteiro de uma só vez, eles precisam desse acesso aleatório. Os sistemas operacionais ocultam esse nível de detalhes, mas o fazem lendo um sctor inteiro na RAM, modificando-o e escrevendo-o de volta.
Como resultado, você precisa de um bloco de armazenamento de acesso aleatório. Porém, esse poderia ser o cache da CPU, que é feito de SRAM (um tipo rápido de RAM).
Não são apenas discos. A memória flash é projetada com blocos, o que é fundamental para o seu baixo preço. Ele ainda possui blocos muito maiores que os setores de disco normais, mas usa RAM internamente para ocultar isso do sistema operacional.
Você pode tornar o armazenamento persistente diretamente utilizável por uma CPU. O armazenamento EEPROM se enquadra nessa categoria (memória "somente leitura" programável apagável eletronicamente - embora "otimizado para leitura" seja uma descrição factualmente melhor).
fonte
Quando você usa memória virtual e precisa lidar com falhas de página, pelo menos o manipulador de exceções que manipula a falha de página, o driver de disco que lê os dados do disco rígido e primeiro grava as páginas sujas no disco, e as tabelas de páginas precisam estar na RAM o tempo todo. Porque se eles não estiverem na RAM, você não poderá trocá-los novamente na RAM. Além disso, você precisa de espaço para pelo menos uma página de RAM.
Se você tivesse uma CPU como um maciço Xeon de 12 núcleos com 30 MB de memória cache, pode ser possível ter um sistema sem RAM nem disco rígido, mas use apenas a memória cache. (Não tenho certeza se isso realmente funciona ou se, por algum motivo, a RAM é necessária).
fonte
É conceitualmente possível. RAM é apenas um nível de cache. Existem muitos níveis de armazenamento em cache em um computador moderno (consulte os L1, L2, L3 da CPU. Caches, é claro, Ram, a área de troca - que é uma seção lógica do disco usado como RAM ...-), se você colocar ou adicione um, a máquina funcionará. Por exemplo, um live cd do Ubuntu pode não usar o nível de cache do disco rígido. No entanto, eu não acho que exista um sistema operacional que suporte a ausência de um nível de RAM.
fonte
Tecnicamente, a RAM é uma memória volátil primária usada para melhorar a velocidade de processamento. Depois que a energia acaba, os dados na memória primária são perdidos. Se usarmos um disco, ou seja, como você diz, apenas disco e não RAM, ainda poderemos executar nosso computador, mas haverá mais sobrecarga de gravação e leitura, o que tornará o sistema consideravelmente mais lento. Por isso, usamos RAM.
fonte