Beruflich Dokumente
Kultur Dokumente
2013.1
PIPELINE = ENCANAMENTO
Melhor analogia linha de produo Exemplo: lavadora automtica de carros, com esteiras e estaes em que os passos so realizados
1-Lavagem Lava com gua quente e sabo 2-Enxague Lava com gua quente pura 3-Secagem Sopra ar sobre a superfcie
Comparao
Frequncia mxima de execuo de lavagens:
Para o caso de estao nica (sem pipeline) o inverso do tempo de latncia No caso com mltiplas estaes a frequncia trs vezes o inverso do tempo de latncia Esta frequncia denominada throughput (taxa mdia)
Diferenas
Os carros se movem de forma contnua e os dados movem-se sincronamente com o clock O tempo de cada estgio, logo, igual ao perodo do clock e o mesmo para todos os estgio.
Atraso mximo
O maior atraso seria de 1.0 ns, correspondendo ao estgio 3 0.2ns o atraso da plataforma, o atraso da seleo pelo MUX D e 0.6 de atraso para escrever de volta nos registradores Frequncia mxima = 1 GHz = 2.4 vezes Porque a melhoria no foi de 3x ?? O clock governado pelo maior atraso, e no pelo atraso mdio.
Custo
A lavadora de carros com pipeline ocupa trs vezes mais espao e ainda precisa mover os carros entre as estaes Comparado com trs estaes completas?? O aumento no custo no datapath foi basicamente as plataformas de pipeline
Sete operaes em nove clocks. 9 x 1ns = 9ns versus 7 x 2.4 = 16.8ns => 1.9 vezes mais rpido
Velocidade
No comeo o pipeline est em preenchimento No final est esvaziando O pipeline s atinge velocidade mxima quando est sendo utilizado completamente Como manter o pipeline sempre cheio? Uma unidade de controle especial que lida com os chamados pipeline hazards.
Instrues
1 LDI R1, 1 2 LDI R2, 2 3 LDI R3, 3 4 LDI R4, 4 5 LDI R5, 5 6 LDI R6, 6 7 LDI R7, 7
RISC
Reduced Instruction Set Computer Computador com conjunto de instrus reduzido Arquitetura de conjunto de instrues
Acesso de memria via carga e armazenamento (load/store) Poucos modos de endereamento (~4) Formato de instrues com comprimento nico Instrues que requerem apenas operaes elementares
Fazendo um RISC
Baseado no computador simples estudado O datapath de ciclo-nico convertido para o datapath com pipeline Modificamos o banco de registradores e a unidade funcional (ula + shifter) devido ao comprimento maior da palavra Deslocamento com mltiplas posies Unidade de controle com pipeline com suporte para palavras e instrues de 32 bits Tratamento de desvios em um ambiente com pipeline Tratamento de Data Hazards and Control Hazards
Um contador de programa No h registrador especial para operaes com pilha, que so realizadas via instrues e registradores normais
Registradores
Conjunto de Instrues
As operaes realizadas so elementares e podem ser descritas por uma nica sentena de transferncia de registradores Apenas Load e Store lidam com a memria de dados Mais instrues com endereamento imediato IM significa extenso de sinal Os bits de estado (flags) no so armazenados. As instrues de desvio testam o contedo dos registradores. A instruo SLT (set if less than) atualiza o valor de um registrador com 0 ou 1. Se o valor de R[SA] for menor que R[SB], R[DR] = 1. 0 caso contrrio.
Modos de endereamento
4 modos de endereamento:
Registrador Indireto via registrador instrues com 3 operandos load/store
Imediato
Relativo
formato imediato
desvio e salto, endereo p/ memria de instrues
O modo indicado no opcode (e no em um campo separado) Outros modos de endereamento feito com conjutno de instrues RISC
Organiza o do Datapath
Deslocamento de apenas 1 bit por um deslocador tipo barril (barrel shifter) que permite deslocamento de mltiplas posies
Deslocador de barril
SH = IR[4:0]
Banco de registradores
O banco de registradores no mais uma plataforma pipeline para escrita de valores no final do estgio de escrita de volta (WB, write back) Pode-se utilizar latches no lugar de flip-flops e escrito mais cedo do que a borda positiva do clock. Lgica especial permite a escrita na primeira metade do ciclo e lido na outra metade. possvel ler os valores escritos no mesmo ciclo. Reduz o custo (rea) do banco de registradores e diminui a complexidade de circuito que lida com hazards de dados
Controle
Acrscimo de SH ao IR Bit CS para o decodificador de instrues MD expandido para 2 bits Outros sinais para permitir a nova lgica de controle para o PC Mux C seleciona 3 fontes diferentes para o prximo valor do PC, selecionado por BS
PC +1 PC atualizado + offset extendido com sinal (BrA) R[AA]
Prximo PC
Registrador PC
Dois registradores de pipeline PC-1 e PC-2 PC -2 somado com a constante (somador dedicado) MUX C (est no estgio EX
Decodificador de instrues
Circuito combinacional 4 bits do opcode formam a funo FS AA, BA e DA vm diretamente dos campos AS, SB e DR Projeto do decodificador de instrues segue os mesmos princpios de uma CPU sem pipeline, apenas tomar cuidado com a temporizao.
Data Hazards
Outro problema alm do preenchimento e esvaziamento do pipeline Hazards so problemas de temporizao devido ao fato da execuo de uma instruo ocorrer vrios ciclos depois da sua busca Se uma instruo posterior utilizar o resultado desta operao antes deste estar disponvel, utilizar um resultado antigo, o que resultar em erro.
Exemplo
1 MOVA R1, R5 2 ADD R2, R1, R6 3 ADD R3, R1, R2
Modificaes no Pipeline
Hardware adicional mostrado sombreado em azul claro Ocorre um data-hazard de leitura de registrador se:
H um registrador de destino no estgio de execuo que vai ser escrito no prximo ciclo e que deveria ser lido no estgio atual DOF como um dos dois operandos
Equaes booleanas
HA MADOF ( DAEX AADOF ) RWEX ( DAEX )i
i 0 4 4
DHS HA HB
Condies
MA(DOF) = 0 operando A um registrador AA(DOF) = DA(EX) um registrador sendo lido e que pode ser escrito no prximo ciclo RW = 1 realmente vai ser escrito no WB DA 00000 R0 um registrador virtual e pode ser escrito O mesmo para B
O sinal DHS
O sinal DHS usado invertido Inicia a bolha, evitando mudanas no registrador de instrues IR e o PC Portas AND foram RW e MW para 0, no ocorrendo escritas nos registradores nem memria Fora BS para zero (incrementa PC), evitando leitura de registradores (no salto com registrador) ou desvios (nos flags) As portas AND tambm foram DA para zero, fazendo a escrita no registrador R0, provocando uma condio que no provoca stall PC, PC-1 PC-2 e IR so substitudos por registradores com habilitao de carga
Data Forwarding
Anlise
No h aumento de ciclos de clock Mesmo throughput que sem data-hazard Pode acrescentar atraso combinacional devido ao caminho maior Perodo de clock pode ser mais longo Penaliza todos os estgios
Hazard de controle
Ocorrem devido aos desvios Exemplo:
1 BZ 2 MOVA 3 MOVA 4 MOVA 20 MOVA R1, 18 R2, R3 R1, R2 R4, R2 R5, R6
Execuo atrasada
Insero de NOPs
Predio de desvios
Prxima aula