A próxima etapa de uma instrução da CPU depende inteiramente do que é a instrução * atual * e qual é a arquitetura da CPU. Não há resposta única. No entanto, podemos delinear o processo geral:
Depois que uma CPU conclui uma instrução, o fluxo típico é:
1.
incremento o contador do programa (PC): O PC é um registro que mantém o endereço de memória da próxima instrução a ser executada. A CPU aumenta automaticamente o PC para apontar para a próxima instrução em sequência (a menos que uma instrução de salto ou ramificação tenha alterado).
2.
buscar a próxima instrução: A CPU busca as instruções localizadas no endereço armazenado no PC a partir da memória.
3.
decodificar a instrução: A instrução buscada é decodificada para determinar qual operação precisa ser executada e quais operando (dados) estão envolvidos.
4.
Execute a instrução: A CPU executa a instrução, executando a operação especificada. Isso pode envolver o acesso à memória, executando operações aritméticas ou lógicas, manipulando registros ou controlando o fluxo do programa (saltos, ramificações, etc.).
5.
Escreva de volta (se necessário): Se a instrução envolver a gravação de dados em um local de registro ou memória, o resultado será gravado de volta.
O que o torna complexo: *
Tipos de instrução: Diferentes instruções (aritmética, lógica, acesso à memória, fluxo de controle) têm diferentes caminhos de execução.
*
Pipeline: As CPUs modernas usam pipelining, onde várias instruções são processadas simultaneamente em diferentes estágios (busca, decodificar, executar, gravar de volta). O "próximo passo" para uma instrução pode estar entrelaçado com a execução de outras instruções.
*
Previsão da filial: Se a instrução atual for uma ramificação (salto condicional), a CPU poderá tentar prever o resultado para evitar esperar que a condição da filial seja avaliada antes de buscar instruções subsequentes. Se a previsão estiver errada, será necessária uma descarga de pipeline.
*
Interrupções: Eventos externos (interrupções) podem interromper a sequência normal de execução de instruções, forçando a CPU a lidar com a interrupção antes de retomar o programa original.
*
cache: O acesso à memória é significativamente mais rápido se os dados estiverem no cache da CPU. O próximo passo da CPU pode envolver a verificação do cache antes de acessar a memória principal.
Em suma, há um ciclo geral, mas os detalhes são incrivelmente complexos e dependem da instrução e da arquitetura da CPU. O aparentemente simples "próximo passo" é um processo altamente otimizado e complexo.