As Unidades de Execução
Após as instruções terem sido decodificadas, elas são enviadas para a unidade de agendamento apropriada, inteiro ou ponto flutuante. A arquitetura Bulldozer tem apenas uma unidade de ponto flutuante, que é compartilhada entre os dois “núcleos” disponíveis. Por outro lado, ela tem unidades de números inteiros completamente independentes, os chamados “núcleos”.
Figura 4: As unidades de execução
Cada motor de números inteiros tem quatro unidades de execução, chamadas:
- EX, MUL: Pode executar qualquer tipo de instrução inteira, incluindo multiplicação, mas não divisão
- EX, DIV: Pode executar qualquer tipo de instrução inteira, incluindo divisão, mas não multiplicação
- AGen: Geração de endereços, também chamada Unidade de Geração de Endereços ou AGU, usada para gerar os endereços que o processador buscará ou armazenará um dado
Existe uma unidade de Carga/Armazenamento (Load/Store ou “Ld/ST”), responsável por buscar ou armazenar um dado requisitado por uma instrução. Normalmente esta unidade é desenhada ao lado das unidades listadas acima, mas nesta apresentação a AMD decidiu desenhá-la separadamente.
A arquitetura Bulldozer usa um motor de execução fora de ordem, assim como os processadores AMD64 e Intel desde o Pentium Pro (arquitetura P6). Como nem todos os motores de execução podem processar todo tipo de instruções, se não houvesse uma unidade de execução fora de ordem unidades do processador poderiam ficariam ociosas. Digamos que a próxima instrução a ser executada envolve a divisão de um número inteiro, mas a unidade capaz de processar este tipo de instrução está ocupada com outra instrução. Em vez de aguardar até que esta unidade desocupe, a unidade de agendamento irá procurar uma instrução que possa ser executar imediatamente em uma das outras unidades, caso elas estejam disponíveis, é claro. Portanto o papel da unidade de agendamento é manter todas as unidades de execução do processador ocupadas a maior parte do tempo.
Após a execução de instruções de números inteiros, elas serão enviadas para a unidade de retirada, onde o processador irá colocá-las na ordem correta.
A unidade de ponto flutuante também tem quatro unidades de execução, chamadas:
- MMX: Pode executar instruções básicas de ponto flutuante (instruções x87), incluindo instruções MMX
- 128-bit FMAC: Pode executar todas as instruções de ponto flutuante
Figura 5: A unidade de ponto flutuante
Respostas recomendadas
Crie uma conta ou entre para comentar
Você precisa ser um usuário para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar agora