Atualmente estou lendo sobre como o computador funciona, especificamente como a CPU, a RAM e a unidade de disco rígido funcionam juntas simultaneamente.
Pelo que li, a CPU usa o que chamamos de unidade de controle para obter os dados da RAM. E então processa os dados.
Mas antes que a CPU possa obter dados da RAM, os dados devem ser carregados do disco rígido para a RAM, pois o acesso à RAM é mais rápido do que o acesso ao disco rígido.
Minha pergunta é: a CPU pode obter dados diretamente do disco rígido?
Como a unidade de disco rígido transfere dados ou carrega os dados na RAM? Assim como a CPU para RAM usando unidade de controle?
Eu li um pouco sobre disco de E/S. O disco de E/S tem algo a ver com isso?
Responder1
A CPU pode obter dados diretamente do disco rígido?
A CPU (ou mais corretamente, o software em execução na CPU) inicia uma transferência do disco rígido (emitindo, por exemplo, um READ DMA
comando SATA) para um local especificado na RAM e é sinalizado (de forma assíncrona) posteriormente quando a transferência é completo.
Como a Wikipédia explicaDMA,o acesso direto à memória (DMA) é um recurso de sistemas computadorizados que permite que certos subsistemas de hardware acessem a memória principal do sistema independentemente da unidade central de processamento (CPU).
Para armazenar quantidades significativas de dados, a CPU trabalha com seus caches e RAM do sistema. Ele não acessa periféricos como um disco rígido diretamente.
Como a unidade de disco rígido transfere dados ou carrega os dados na RAM?
Como dito acima, emitindo uma solicitação ao disco rígido para transferir um setor específico, ou intervalo de setores, do disco rígido para a RAM, praticamente sempre hoje em dia usando DMA. Dispositivos de armazenamento modernos usamLBAendereçamento, mas isso é principalmente um detalhe de implementação.
Ao usar o DMA, a CPU fica livre para cuidar de outras tarefas enquanto a transferência está em execução, aumentando drasticamente o desempenho geral e a capacidade de resposta do sistema.
Em tudo isso,a CPU está executando apenas qualquer código fornecido pela RAM.