Beruflich Dokumente
Kultur Dokumente
Pipeline uma tcnica de implementao de processadores que permite a sobreposio temporal das diversas fases da execuo de instrues. Tradicionalmente, as instrues do MIP so executadas em ate ! passos" #. $usca da instruo na mem%ria& '. (eitura dos re)istradores enquanto uma instruo decodificada, *o formato das instrues do MIP permite que a leitura e a codificao ocorram simultaneamente+& ,. -xecuo de uma operao ou c.lculo de um endereo& /. 0cesso a um operando de mem%ria& !. -scrita do resultado em um re)istrador& Portanto, o pipeline do MIP tem cinco est.)ios.
=onflitos do Pipeline
-xistem situaes em que a instruo se)uinte no pode ser executada no pr%ximo ciclo de cloc>.
=onflitos estruturais
i)nifica que o hard9are no pode suportar a comunicao de instrues que o pipeline dese4a executar no mesmo ciclo de cloc>. :o caso do MIP , suponha que s% tivssemos uma 5nica mem%ria, em ve1 de duas *instrues e dados+. :o pipeline a primeira instruo estaria acessando um dado da mem%ria e a quarta estaria sendo buscada na mesma mem%ria, no mesmo ciclo de cloc>.
=onflitos de =ontrole
e ori)ina 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 :7P+. Solues Parada" 7corre uma perda de performance muito alta. Torna8se necess.rio inserir no pipeline um esta)io de parada, ou bolha ap%s o desvio condicional. Predio" @m esquema simples sempre predi1er que os desvios condicionais vo falhar. Auando voc6 estiver certo, o pipeline prosse)ue na velocidade m.xima. omente quando os desvios se reali1arem que h. necessidade de se atrasar o avano normal das instrues por meio do pipeline.
Para reter o valor de determinada instruo durante seus outros quatro est.)ios, necess.rio salvar em um re)istrador o valor lido da mem%ria de instrues& portanto, necess.rio que se coloque um re)istrador em cada uma das fronteiras entre os est.)ios de pipeline.
,. -xecuo ou c.lculo do endereo" 7 conte5do do re)istrador # lido do re)istrador FII-G e o resultado da extenso de sinal tambm, adicionando8os, usando a @(0. 7 resultado dessa soma colocado no re)istrador -GIM-M. /. 0cesso < mem%ria" 0 mem%ria de dados lida a partir do endereo arma1enado em -GIM-M e o dado resultante carre)ado no re)istrador M-MI-H. !. -scrita no banco de re)istradores" 7 dado lido do re)istrador M-MI-G escrito no banco de re)istradores.
desenvolvidos com pipelines com oito ou mais est.)ios. @sando esta tcnica, est.)ios lon)os so 2quebrados3 em est.)ios menores, resultando, no final das contas, em mais est.)ios do pipeline.
uperescalar
Heplicao dos componentes internos do processador de modo que ele possa colocar varias instrues em cada est.)io do pipeline. 7 lanamento de v.rias instrues por est.)io permite que a taxa de instrues prontas na unidade de tempo exceda a taxa do cloc>, permitindo que tenhamos uma =PI menor que #. @m problema que no possEvel a execuo simultMnea de instrues dependentes.
MIP
uperescalar
$usca e decodificao de J/bits de instrues Para distribuir em paralelo uma operao envolvendo a @(0 e a outra operao envolvendo transfer6ncia de dados, h. necessidade de um hard9are adicional. Portas extras no banco de re)istradores *tanto para leitura quanto para escrita dos mesmos+. =olocar um somador no caminho de dados para calcular o endereo efetivo das instrues de transfer6ncia de dados.
Tcnica de (oop @nrollin) *desdobramento do loopin)+" utili1ada para obter uma melhor performance de loops que acessam arraDs. =onsiste na reali1ao de varias c%pias do corpo do loop, permitindo que instrues de iteraes diferentes se4am escalonadas 4untas. -scalonamento FinMmico do Pipeline" 7 processador pro4etado dividido em tr6s unidades principais" uma unidade de busca e distribuio das instrues, varias unidades de execuo e uma unidade de entre)a. 0 primeira unidade busca as instrues, decodifica8as, e envia cada uma delas para a unidade funcional correspondente para sua execuo. =ada unidade funcional tem seus buffers, chamados de unidades de reserva, que arma1enam os operandos e as operaes. Auando o buffer adquire todos os operando necess.rios e a unidade funcional estiver pronta para a execuo, o resultado calculado. 0 unidade de entre)a decide quando o resultado poder. ser colocado com se)urana no banco de re)istradores ou na mem%ria.
Auestes Pipeline
Auais as caracterEsticas do processador MIP *arquitetura+ que permitem se ter uma implementao em pipeline eficienteN
0s instrues do MIP possuem o mesmo tamanho, o que torna simples a busca e a decodificao de instrues. Possui pouco formato de instrues, sempre com o re)istrador fonte na mesma posio. -ssa simetria torna possEvel a leitura do banco de re)istradores ao mesmo tempo da determinao do tipo de instruo. 0penas as instrues de load 9ord e store 9ord manipulam operandos na mem%ria. -sta restrio permite que o c.lculo de endereo possa ser feito no est.)io de execuo, sendo o acesso < mem%ria reali1ado no est.)io se)uinte. e as outras instrues pudessem operar dados diretamente da mem%ria, seria necess.rio ter um est.)io apenas para c.lculo do endereo.
=ompare a tcnica de implementao em pipeline com a tcnica de implementao multiciclo. Auais as vanta)ens e desvanta)ens de cada tcnicaN
Oanta)ens 7 uso de pipeline permite que todos os recursos envolvidos operem em paralelo, de maneira que mais instrues possam ser processadas na unidade de tempo considerada. :o multiciclo as instrues no so executadas na mesma quantidade de tempo, portanto, as instrues so executadas no seu tempo caracterEstico * e no no tempo da instruo mais lon)a+. Tambm no h. ocorr6ncia de conflitos. Fesvanta)ens :o multiciclo no possEvel que v.rias instrues se4am processadas ao mesmo tempo. P preciso que uma instruo se4a totalmente processada para que a pr%xima instruo comece sua execuo. Isto torna mais lenta a execuo de um )rupo de instruo, pios h. recursos no utili1ados todo o tempo. :o pipeline, para haver um desempenho mais not.vel necess.rio uma )rande quantidade de instrues. -nquanto o pipeline no est. totalmente cheio, a performance no ideal. 0lm disso, h. o fato do balanceamento imperfeito, o ciclo de cloc> deve ser de acordo com a instruo mais lon)a. Problemas de conflitos de dados, estruturais e de controle que necessitam de instrues que exi)em acrscimo de hard9are para sua soluo que nem sempre so solucionadas completamente, havendo perda de efetividade do mesmo 4eito.
0diantamento de resultados -m instrues do tipo H, o resultado a ser arma1enado no re)istrador destino 4. calculado no esta)io -G, pela @(0. Portanto, o dado que causa depend6ncia 4. est. disponEvel onde deve ser escrito no $H, no esta)io -H. Para reali1ar o adiantamento do desse resultado *evitando conflitos de dados+ precisamos obter entradas da @(0 a partir de qualquer dos re)istradores do pipeline em ve1 de um s% do re)istrador FII-G. =olocando multiplexadores na entrada da @(0, com controles apropriados um controle de adiantamento deve ser implementado no esta)io -G, pois os multiplexadores da @(0 respons.veis pele seleo dos valores adiantados esto nesse esta)io. 7s n5meros dos re)istradores com os operandos do esta)io FI so passados via re)istrador FII-G para saber de vai ou no ser necess.rio o adiantamento dedados. =onflitos por dados e paradas -m casos de instruo de (; se)uida de uma instruo dependente de al)o precisa parar o pipeline. 0lm da unidade de adiantamento precisamos tambm de unidade de deteco de conflitos. -sta unidade verifica se o sinal (erMem est. ativo, ou se4a, se a instruo de load;ord e verifica se o campo referente ao re)istrador Q destino d (; no esta)io -G i)ual a qualquer dos re)istradores Q fonte da instruo que estiver no esta)io FI. e a condio for verdadeira, a instruo p.ra por um ciclo de cloc>. Fessa forma a l%)ica de adiantamento pode tratar a depend6ncia e a execuo prosse)ue. Para impedir que a instruo dos est.)ios $I e FI avancem no pipeline, preciso que tanto o P= quanto o re)istrador $IIF- no sofram qualquer modificao. 0lm disso, devemos inserir uma bolha no pipeline. =onflitos por desvios condicionais =om a pressuposio de desvios condicional precisamos descartar , instrues no caso de haver desvio . Para redu1ir esse retardo, devemos deslocar a execuo do desvio condicional para o esta)io FI, deslocando o somador do esta)io M-M para o esta)io FI. Para tratar da deciso de desviar ou no, devemos comparar os valores dos dois re)istradores lidos durante o esta)io FI. Mudando isso tudo s% haver. uma 5nica instruo a ser eliminada do pipeline. Podemos acrescentar uma nova linha de controle.