TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Paralelismo de Processadores Superescalares

Por:   •  26/11/2015  •  Trabalho acadêmico  •  1.411 Palavras (6 Páginas)  •  1.028 Visualizações

Página 1 de 6
  1. PARALELISMO DE PROCESSADORES SUPERESCALARES

  1. CONTEXTUALIZAÇÃO

O termo superescalar, criado em 1987, refere-se a uma máquina que é projetada para melhorar o desempenho de instruções escalares(aritmética de inteiro e ponto flutuante, leitura, escrita e desvios condicionais). Portanto, essa abordagem representa o próximo passo na evolução de processadores(uso geral e alto desempenho).

Um processador superescalar contém múltiplos e independentes pipilines de instruções. Cada pipiline tem múltiplos e independentes estágios, possibilitado a execução de múltiplas instruções simultâneas.

Explora o paralelismo em nível de instrução, que indica o grau em que as instruções de um programa podem ser executadas em paralelo.

Técnica usada em processadores RISC e CISC, principalmente RISC.

Em uma arquitetura superescalar, existem múltiplas unidades funcionais, cada uma implementada como um pipiline, o que suporta a execução paralela de várias instruções.

[pic 1]

Estudos de ganhos de desempenho.

Referência

Speed-up

Tjaden e Flynn, 1970

1,8

Kuck, Parker e Sameh, 1977

8

Weiss e Smith, 1984

1,58

Acosta, Kjelstup e Torng, 1986

2,7

Sohi, 1990

1,8

Smith, Johnson e Horowitz, 1989

2,3

Jouppi, 1989

2,2

Lee, Kwok e Briggs, 1991

7

  1. SUPERESCALAR VS SUPERPIPILINES

[pic 2]

Abordagem alternativa criada em 1988.

Explora o fato de que muitos estágios de pipiline executam tarefas que requerem menos do que a metade de um ciclo de clock.

Dobrar a velocidade interna do clock permite a execução de duas tarefas num ciclo de clock externo.

  1. LIMITAÇÕES

A abordagem superescalar depende da exploração do parelelismo em nível de instrução. Para tanto, tem que lidar com algumas limitações:

  • Dependência de dados verdadeira
  • Dependência procedural
  • Conflitos de recursos
  • Dependência de saída
  • Antidependência
  1. Dependência de dados verdadeira

  1. Dependência de fluxo ou dependência de escrita após leitura(WAR)

ADD   EAX,   ECX        ;eax  =  eax  +  ecx

MOV   EBX,   EAX        ;ebx  =  eax

A segunda instrução deve esperar(precisa de dados produzidos) pelo término da primeira.

A segunda instrução é atrasada quantos ciclos foresm necessários até que a dependência seja resolvida.

[pic 3]

  1. DEPENDÊNCIAS PROCEDURAIS

As instruções que vêm depois de um desvio(tomado ou não) possuem uma dependência procedural com o desvio e não podem ser executadas até que o desvio seja executado.

[pic 4]

  1. CONFLITOS DE RECURSOS

Acesso concorrente/simultâneo de duas ou mais instruções ao mesmo recurso(cache, barramentos, entradas para banco de registradores e unidades funcionais).

Semelhante à dependência de dados, mas podendo ser evitados com a replicação de recursos.

[pic 5]

  1. QUESTÕES DE PROJETO

  1. PARALELISMO EM NÍVEL DE INSTRUÇÃO (ILP)

Existe quando as instruções de uma sequência são independentes e podem ser executadas em paralelo por sobreposição.

O grau de ILP é determinado pela frequência de dependência de dados verdadeira, de dependência procedural e também pela latência de operação de cada instrução.

LOAD    R1,   R2

ADD   R3,   1

ADD   R3,   1

ADD   R4,   R3

ADD   R4,   R2

STORE   R0,   R4

Instruções independentes           instruções dependentes

  1. PARALELISMO DE MÁQUINA

Medida da habilidade do processo em tirar proveito do paralelismo em nível de instruções.

É determinado pelo número de instruções que podem ser obtidas e executadas ao mesmo tempo(pipilnes paralelos) e pela velocidade e sofisticação dos mecanismos que o processador usa para localizar instruções idependentes.

[pic 6]

  1. POLÍTICA DE EMISSÃO DE INSTRUÇÕES

Processador deve ser capaz de orquestrar a busca, a decodificação e a execução de instruções em paralelo.

Emissão de instrução: processo de iniciação da execução de uma instrução em unidades funcionais do processador.

Política de emissão: protocolo usado para emissão de instruções.

O processador olha a frente do ponto atual de execução para identificar instruções que possam ser trazidas para o pipiline e executadas.

  1. TRÊS TIPOS DE ORDENAÇÃO
  • Ordem na qual as instruções são lidas;
  • Ordem na qual as instruções são executadas;
  • Ordem na qual as instruções atualizam registradores e posições de memória.

Para otimizar a utilização de vários elementos do piplne, o processador precisa alterar uma ou mais dessas ordens respeitando a lógica sequencial do programa.

O resultado deve ser correto, idependente da reordenação das instruções.

  1. CATEGORIAS DE POLÍTICAS DE EMISSÃO DE INSTRUÇÕES SUPERESCALARES

  • Emissão em-ordem com conclusão em-ordem;
  • Emissão em-ordem com conclusão fora-de-ordem;
  • Emissão fora-de-ordem com conclusão fora-de-ordem.
  1. EMISSÃO EM-ORDEM COM CONCLUSÃO EM-ORDEM

Ordem exata que seria alcançada pela execução sequencial(emissão em-ordem) e pela escrita dos resultados na mesma ordem(conclusão em-ordem).

...

Baixar como (para membros premium)  txt (8.8 Kb)   pdf (874.9 Kb)   docx (195.1 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com