Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO Pipeline
RESUMO Pipeline
Conflitos do Pipeline
Existem situaes em que a instruo seguinte no pode ser executada no
prximo ciclo de clock.
Conflitos estruturais
Significa que o hardware no pode suportar a comunicao de instrues
que o pipeline deseja executar no mesmo ciclo de clock. No caso do MIPS,
suponha que s tivssemos uma nica memria, em vez de duas
(instrues e dados). No pipeline a primeira instruo estaria acessando um
dado da memria e a quarta estaria sendo buscada na mesma memria, no
mesmo ciclo de clock.
Conflitos de Controle
Se origina da necessidade de se tomar uma deciso com base nos
resultados de uma instruo, enquanto outras esto sendo executadas.
Parada do Pipeline = bolha (insero de uma instruo NOP).
Solues
Parada: Ocorre uma perda de performance muito alta. Torna-se necessrio
inserir no pipeline um estagio de parada, ou bolha aps o desvio
condicional.
Predio: Um esquema simples sempre predizer que os desvios
condicionais vo falhar. Quando voc estiver certo, o pipeline prossegue na
velocidade mxima. Somente quando os desvios se realizarem que h
necessidade de se atrasar o avano normal das instrues por meio do
pipeline.
Superescalar
Replicao dos componentes internos do processador de modo que ele
possa colocar varias instrues em cada estgio do pipeline.
O lanamento de vrias instrues por estgio permite que a taxa de
instrues prontas na unidade de tempo exceda a taxa do clock, permitindo
que tenhamos uma CPI menor que 1. Um problema que no possvel a
execuo simultnea de instrues dependentes.
MIPS Superescalar
Questes Pipeline
Quais as caractersticas do processador MIPS (arquitetura) que
permitem se ter uma implementao em pipeline eficiente?
Adiantamento de resultados
Em instrues do tipo R, o resultado a ser armazenado no registrador
destino j calculado no estagio EX, pela ULA. Portanto, o dado que causa
dependncia j est disponvel onde deve ser escrito no BR, no estagio ER.
Para realizar o adiantamento do desse resultado (evitando conflitos de
dados) precisamos obter entradas da ULA a partir de qualquer dos
registradores do pipeline em vez de um s do registrador DI/EX. Colocando
multiplexadores na entrada da ULA, com controles apropriados um controle
de adiantamento deve ser implementado no estagio EX, pois os
multiplexadores da ULA responsveis pele seleo dos valores adiantados
esto nesse estagio. Os nmeros dos registradores com os operandos do
estagio DI so passados via registrador DI/EX para saber de vai ou no ser
necessrio o adiantamento dedados.
Conflitos por dados e paradas
Em casos de instruo de LW seguida de uma instruo dependente de algo
precisa parar o pipeline. Alm da unidade de adiantamento precisamos
tambm de unidade de deteco de conflitos. Esta unidade verifica se o
sinal LerMem est ativo, ou seja, se a instruo de loadWord e verifica se
o campo referente ao registrador destino d LW no estagio EX igual a
qualquer dos registradores fonte da instruo que estiver no estagio DI.
Se a condio for verdadeira, a instruo pra por um ciclo de clock. Dessa
forma a lgica de adiantamento pode tratar a dependncia e a execuo
prossegue. Para impedir que a instruo dos estgios BI e DI avancem no
pipeline, preciso que tanto o PC quanto o registrador BI/DE no sofram
qualquer modificao. Alm disso, devemos inserir uma bolha no pipeline.
Conflitos por desvios condicionais
Com a pressuposio de desvios condicional precisamos descartar 3
instrues no caso de haver desvio . Para reduzir esse retardo, devemos
deslocar a execuo do desvio condicional para o estagio DI, deslocando o
somador do estagio MEM para o estagio DI. Para tratar da deciso de
desviar ou no, devemos comparar os valores dos dois registradores lidos
durante o estagio DI. Mudando isso tudo s haver uma nica instruo a
ser eliminada do pipeline. Podemos acrescentar uma nova linha de controle.