Pipeline e Super Pipeline e Arquitetura Superescalar
Por: Helielton Mainardes • 22/6/2016 • Pesquisas Acadêmicas • 746 Palavras (3 Páginas) • 3.058 Visualizações
[pic 1] | Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Ponta Grossa | [pic 2] |
ALUNO: Helielton Santos Mainardes – RA: 1291882 - TURMA: IT231 – DATA: 15/10/2012
Pipeline e super pipeline e Arquitetura Superescalar
Pipeline e Super pipeline:
É uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de memória dentro do processador (CPU) onde aguardam o momento de serem executadas, só poderá começar quando a outra instrução acabar. Existem alguns problemas com o uso do Pipeline, entre eles estão a dependência de instruções anteriores e desvios que dificultam o processo, bem como a diferença de complexidade de instruções que fazem com que as mesmas possam levar um tempo variável para execução.
A técnica de pipeline é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada dentro da CPU e não precisa ser buscada da memória, normalmente muito mais lenta que a CPU.
Conceito
Cada instrução de um microprocessador passa por diversas fases até sua execução. Estas fases podem ser:
- Decodificação
- Acesso memória ou registradores
- Processamento aritmético
Se usarmos uma técnica de pipeline poderíamos colocar 3 instruções ao mesmo tempo no microprocessador. Na prática todos os microprocessadores modernos utilizam-se de várias fases no processamento para usufruir de clocks maiores (quanto menor a fase, mais rápido pode ser o ciclo).
Uso real
Algumas CPUs incluem conceitos muito mais avançados de pipeline:
- Pré-decodificação: a CPU pode iniciar a decodificação de diversas instruções (paralelamente) antes do momento em que são executadas.
- Execução fora-de-sequência: algumas CPUs podem além de pré-decodificar, executar previamente um determinado número de instruções. Numa etapa posterior, a ordem de execução é verificada e os resultados das operações são consolidados na sua ordem correta.
- Previsão de desvio: caso exista uma instrução de desvio dentro do pipeline e a sua execução for consolidada, todas as instruções posteriores a mesma e que se encontram na fila devem ser abortadas.
Arquitetura Superescalar:
Uma arquitetura superescalar é aquela na qual várias instruções podem ser iniciadas simultaneamente e executadas independentemente umas das outras.
As arquiteturas superescalares incluem todos os aspectos do pipeline e ainda acrescentam o fato de as instruções poderem estar executando no mesmo estágio do pipelining (em linhas pipelining diferentes). Assim, elas têm a habilidade de iniciarem múltiplas instruções no mesmo ciclo de clock.
Principais características dos processadores superescalares:
Dependências:
A arquitetura superescalar tem que resolver todos os tipos de dependências: dependência de controle, dependência de dados e dependência estrutural. As dependências de dados são do tipo RAW (Read-After-Write), WAR (Write-After-Read) e WAW (Write-After-Write).
Busca de Instruções:
Responsável pelo fornecimento de instruções, onde as instruções são buscadas na cache e inseridas na fila de instruções, quando são feitas as previsões de desvios.
Em processadores superescalares a fase de busca traz várias instruções por ciclo da cache.
Detecção do paralelismo:
Compete ao algoritmo de detecção a tarefa de determinar se um ou mais comandos podem ser executados em paralelo. Este mecanismo combinado com um sofisticado esquema de decodificação viabilizam a exploração do paralelismo, logo, tornam as unidades de controle dessa arquitetura mais complexas.
Despacho de Múltiplas Instruções:
Um dos grandes diferenciais das arquiteturas superescalares é o despacho de múltiplas instruções. O mecanismo de despacho procura na janela de instruções aquelas que podem ser executadas.
...