Paralelismo de Processadores Superescalares
Por: SergioStocco • 26/11/2015 • Trabalho acadêmico • 1.411 Palavras (6 Páginas) • 1.074 Visualizações
- PARALELISMO DE PROCESSADORES SUPERESCALARES
- 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 |
- 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.
- 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
- Dependência de dados verdadeira
- 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]
- 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]
- 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]
- QUESTÕES DE PROJETO
- 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
- 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]
- 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.
- 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.
- 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.
- 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).
...