domingo, 6 de fevereiro de 2011

Passos da Execução Nativa

Os processadores de execução nativa são aqueles que correm directamente o código x86, sem tradução para RISC. Os passos necessários à execução das instruções varia conforme o processador. No entanto, na generalidade, são os que vamos ver em seguida e em processadores mais recentes estas instruções correm em pipelines:

  • Fetch- O primeiro passo é carregar a instrução na unidade de execução. Dado que a memória é muito lenta comparada com o processador, este passo não envolve uma leitura directa da memória. Em vez disso, um circuito de controlo carrega blocos de 16 ou 32 bits de instruções ou dados, da memória directamente para uma cache primária de instruções. Estes dados estão assim disponíveis para as unidades de execução, conforme forem solicitados. Alguns processadores têm unidades de prefetch para executar esta operação.
  • Decode- A descodificação é usada para examinar a instrução carregada e determinar o seu tamanho, se requer um acesso à memória para ler dados, etc. Alguns processadores empregam múltiplos descodificadores, de modo a aumentar a sua performance.
  • Address Generate- Enquanto algumas instruções operam em localizações de memória, outras não. Para aquelas que acedem á memória, neste estágio é gerado o endereço da localização baseado na informação dada como parte da instrução.
  • Execute- É aqui que a instrução é executada, de acordo com a informação processada nos passos anteriores.
  • Write-Back- Após a execução da instrução, é produzido um resultado que é escrito num regist interno da memória de sistema. Mas como a memória de sistema é muito lenta, na realidade esse resultado é escrito num write buffer, onde é mantido até que possa ser finalmente escrito na memória de sistema ou na cache.

Sem comentários:

Enviar um comentário