Ir ao conteúdo
  • Cadastre-se

Por Dentro da Arquitetura do Pentium M


     138.857 visualizações    Processadores    0 comentários
Por Dentro da Arquitetura do Pentium M

Unidades Estação de Reserva e de Execução

Como comentamos anteriormente, o Pentium M usa microinstruções fundidas (ou seja, manipula duas microinstruções dentro de uma só) da unidade de decodificação até as portas de envio localizadas na estação de reserva. A estação de reserva envia cada microinstrução individualmente para ser executada.

O Pentium M tem cinco portas de envio numeradas de 0 a 4, localizadas na sua estação de reserva. Cada porta está conectada a uma ou mais unidades de execução, como você pode ver na Figura 5.

Por Dentro da Arquitetura do Pentium M
Figura 5: Unidades Estação de Reserva e de Execução.

Aqui está uma pequena explicação de cada unidade de execução encontrada no Pentium M:

  • IEU: a Unidade de Execução de Instrução (IEU, Instruction Execution Unit) é onde instruções “comuns” são executadas. Esta unidade é também chamada de ULA (Unidade Lógica e Aritmética). Instruções “comuns” são também chamadas de instruções “inteiras”.
  • FPU: a Unidade de Ponto Flutuante é onde instruções matemáticas complexas são executadas. No passado esta unidade era também conhecida como “co-processador matemático”.
  • SIMD: é nesta unidade que as instruções SIMD são executadas, a exemplo das instruções MMX, SSE e SSE2.
  • WIRE: outras funções (não divulgadas pela Intel).
  • JEU: a Unidade de Execução de Desvios (JEU, Jump Execution Unit) processa os desvios e também é conhecida como Unidade de Desvio.
  • Shuffle: esta unidade executa um tipo de instrução SSE chamada “shuffle”.
  • PFADD: executa uma instrução SSE chamada PFADD (Packed FP Add) e também as instruções COMPARE, SBTRACT, MIN/MAX e CONVERT. Esta unidade tem um pipilene e por isso pode iniciar a execução de uma nova microinstrução em cada pulso de clock mesmo que a execução da microinstrução anterior não tenha terminado ainda. Esta unidade tem uma latência de três pulsos de clock, ou seja, ela demora três pulsos de clock para entregar cada instrução processada.
  • Reciprocal Estimates: executa duas instruções SSE, uma chamada RCP (Reciprocal Estimate) e outra chamada RSQRT (Reciprocal Square Root Estimate).
  • Load: unidade de carga, processa instruções que solicitam dados a serem lidos da memória RAM.
  • Store Address: unidade de armazenamento de endereços, processa instruções que solicitam dados a serem escritos na memória RAM. Esta unidade é também conhecida como Unidade de Geração de Endereços (AGU, Address Generator Unit). Este tipo de instrução usa tanto as unidades Store Address e Store Data ao mesmo tempo.
  • Store Data: unidade de armazenamento de dados, processa instruções que solicitam dados a serem escritos na memória RAM. Este tipo de instrução usa tanto as unidades Store Address e Store Data ao mesmo tempo.

Tenha em mente que instruções complexas podem levar várias pulsos de clocks para serem processadas. Vamos pegar um exemplo da porta 1, onde a unidade de ponto flutuante está localizada. Enquanto esta unidade está ocupada processando uma instrução muito complexa que leva vários pulsos de clock para ser executada, a unidade de envio da porta 1 não estará ocupada e continuará enviando instruções simples para a IEU enquanto a FPU estiver ocupada.

Desta forma, apesar de a taxa máxima de envio de microinstruções ser cinco, na verdade o processador pode ter até 12 microinstruções sendo processadas ao mesmo tempo.

Isso explica porque as portas 0 e 1 têm mais do que uma unidade de execução. Se você prestar atenção, a Intel colocou na mesma porta uma unidade rápida junto com pelo menos uma unidade complexa (e lenta). Por isso, enquanto a unidade complexa estiver processando dados, a outra unidade pode continuar recebendo microinstruções da sua porta de envio correspondente. Como mencionamos anteriormente, a ideia é manter todas as unidades de execução ocupadas ao mesmo tempo.

Como mencionamos, nas instruções que solicitam ao processador para ler um dado armazenado em um determinado endereço de memória RAM, a unidade Store Address e a unidade Store Data são usadas ao mesmo tempo, uma para calcular o endereço e outra para armazenar o dado.

Como explicamos, após cada microinstrução ter sido executada, elas retornam para o buffer de reordenamento, onde seus marcadores são definidos como “executada”. Então na unidade de retirada as microinstruções que tem seus marcadores definidos como “executada” são removidas do buffer de reordenamento na sua ordem original (isto é, na ordem em que foram decodificadas) e então os registradores x86 são atualizados (o processo inverso da unidade de renomeamento de registradores). Até três microinstruções podem ser removidas do buffer de reordenamento por pulso de clock. Após isto a instrução é completamente executada.


Artigos similares


Comentários de usuários

Respostas recomendadas

Não há comentários para mostrar.



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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...