A CPU recebe seus dados de vários lugares, dependendo do que o programa está fazendo:
*
Memória principal (RAM): Esta é a principal fonte de dados da CPU. Instruções e dados que a CPU precisa acessar com frequência são carregados na RAM. A CPU busca constantemente instruções e dados da RAM.
* Memória do cache: Este é um tipo de memória menor e mais rápido localizado mais próximo da CPU. Os dados freqüentemente acessados da RAM são copiados em cache para uma recuperação ainda mais rápida. Normalmente, existem vários níveis de cache (L1, L2, L3), sendo L1 o mais rápido e menor, e L3 sendo o mais lento e maior. A CPU verifica o cache primeiro antes de ir para a RAM.
*
Registros: Estes são locais de armazenamento extremamente rápido * dentro * da própria CPU. Eles mantêm os dados em que a CPU está trabalhando ativamente. Os registros são os pontos de acesso mais imediatos da CPU para dados.
*
Dispositivos de entrada/saída (E/O): Isso inclui coisas como discos rígidos, SSDs, cartões de rede e dispositivos USB. A CPU solicita dados desses dispositivos e os dados são transferidos para a RAM (e posteriormente para cache e registros) antes que a CPU possa processá -los.
Em resumo, o fluxo de dados da CPU é tipicamente:
E/O -> RAM -> Cache -> Registros -> CPU . A CPU sempre tenta obter dados da fonte mais rápida possível; Se os dados não forem encontrados nos registros ou no cache, eles o recuperarão da RAM e, finalmente, se necessário, a partir de dispositivos de E/S mais lentos.