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

MIPS - Pepe Line

Casos: MIPS - Pepe Line. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  26/10/2014  •  1.155 Palavras (5 Páginas)  •  259 Visualizações

Página 1 de 5

PIPELINE

É uma técnica de implementação que visa maximizar a utilização dos diferentes recursos de HW

Pipeline permite que várias instruções sejam processadas simultaneamente com cada parte do HW

atuando numa instrução distinta

Aumento do número de estágios do pipeline aumenta o desempenho

Estágios de um Pipeline:

IF (Instruction Fetch) : Busca instrução

ID (Instruction Decode): Decodifica instrução e lê registradores

EX (EXecute operation) : Calcula dados ou endereços

MEM (Access MEMory operand): Acessa operando na memória

WB (Write result Back to register): Escreve resultado no registrador

MIPS projetado para pipeline:

• Todas as instruções são de 32 bits, mais fácil de buscar e decodificar em um ciclo

• Poucas instruções e instruções regulares, permite decodificação e leitura de registradores em um estágio

• Endereçamento do Load/store : Permite cálculo de endereço no terceiro estágio e acesso no quarto estágio

Melhora de desempenho por utilizar pipeline:

• Estágios com a mesma duração

• Instruções independentes de resultados calculados em instrução anterior

• Execução sequencial das instruções

Conflitos : Situações que evitam que uma nova instrução seja iniciada no próximo ciclo

• Estruturais: Recurso necessário para execução de uma instrução está ocupado, por exemplo, 2 instruções tentam acessar a memória no mesmo ciclo.

Solução é replicar recurso.

• Dados : Dependência de dados entre instruções, uma instrução depende de um dado gerado por uma instrução anterior.

o Soluções em software (compilador/montador) : Inserção de NOPs e Re-arrumação de código.

o Soluções em hardware : Método de Curto-circuito (Forwarding), Usa o resultado desejado assim que é computado; Inserção de retardos (stalls).

Como Implementar Forwarding?

• Idéia é acrescentar HW com uma lógica capaz de detectar conflitos de dados e controlar unidade de processamento para realizar o forwarding

• Deve-se acrescentar mais conexões para permitir que resultados possam ser utilizados antes de escritos no banco de registradores

• Possivelmente, acrescenta-se multiplexadores para que outros estágios possam selecionar a fonte do operando

• Controle : causados por alteração de fluxo de controle, Decisão da próxima instrução a ser executada depende de uma instrução anterior.

Resolvendo Conflitos de Controle

• Soluções em software (compilador/montador): Re-arrumação de código

• Soluções em hardware : Congelamento do pipeline; Execução especulativa; Aceleração de avaliação de desvio

Execução especulativa : Pode reduzir penalidades de desempenho decorridos de conflitos.

• Estática : Simplicidade de implementação; Não se baseia no comportamento do código, tendo resultados que variam de aplicação para aplicação

• Dinâmica : Baseia-se no comportamento do código (maior probabilidade de acerto) ; Complexidade de implementação e maior custo de HW.

Aceleração de avaliação de desvios: Ajuda a diminuir penalidades de desempenho; Custo maior de HW, devido a replicação de componentes

CACHE (SRAM)

A Cache deve ser controlada por hardware, pois ela tem que ser rápida e se fosse controlada por software geraria atraso; Na cache é guardado endereço e valor;

A unidade da cache é chamada de bloco. A cache de Dados se diferencia da cache de instrução pela capacidade de suportar escrita.

HIT -> Quando a cache contém o dado. HIT Time: Tempo para acessar o dado.

Outras Formas de Reduzir Hit Time : Diminuir tamanho da cache ; Diminuir associatividade

MISS -> Quando ela não contém o dado. Aumentar o tamanho do bloco normalmente diminui a tx de falha. MISS PENALTY -> Tempo para buscar um bloco da memoria para a cache + tempo para transf ao processador.

MAPEAMENTO DIRETO -> Estruturaonde vcada local de memoria é mapeado exatamente para um local na cache, isso acontece usando os bits menos significativos do endereço de memória.

TAG -> Um campo da cache que contem informações de endereços para identificar se uma word é a word solicitada..

BIT DE VALIDADE -> Um campo na cache que identifica se uma entrada contém um endereço válido.

LOCALIDADE TEMPORAL: Se um local de dados for usado, ele tende a ser usado novamente.

LOCALIDADE ESPACIAL: Se um local de dados for usado, então os dados com endereços próximos tenderão a ser usados.

Diagrama e algoritimo de um sistema com cache para leitura:

1) Verifica se endereço já está na cache;

2) Se está, compara o Tag e se for igual, verifica se é valido, e se for, retorna o valor;

3) Se não, ongela o pipeline, o controlador da cache lê o valor na memória, armazena no lugar com utilização mais antiga, guarda também a tag e coloca válido, depois retorna valor;

Diagrama e algoritimo de um sistema com cache para escrita:

1) Acha

...

Baixar como (para membros premium)  txt (8.5 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com