Um dos problemas enfrentados pelos somadores paralelos é o atraso elevado por conta da propagação do carry entre os blocos de somadores completos. Esse atraso acontece porque um bloco somador completo qualquer só conseguirá gerar o resultado correto após todos os somadores completos à sua direita concluírem a soma e propagarem corretamente o carry até ele. Assumindo que o atraso de propagação individual de cada bloco somador completo seja de 5 ns , qual será o atraso total para um somador paralelo de 32 bits? Considerando que o período de um ciclo de clock tem que ser longo o suficiente para acomodar uma operação de soma realizada por este somador paralelo de 32 bits, qual será a frequência máxima do clock para este circuito?
Passo 1
O enunciado pede duas coisas:
- Calcular o atraso total de um somador paralelo de 32 bits, sabendo que o atraso de propagação de cada bloco somador completo (full adder) é de
. - A partir desse atraso, determinar a frequência máxima do clock, sabendo que o período do clock tem que acomodar a operação de soma desse somador.
Informações dadas (peguei estes valores do enunciado):
- Número de bits:
. - Atraso de cada bloco somador completo:
.
Passo 2
Entendendo o que causa o atraso (explicação didática e conceitual).
- Num somador paralelo do tipo ripple-carry (o típico somador “em série” de blocos), o carry gerado em cada full adder precisa chegar ao full adder seguinte para que este calcule seu próprio sum e gere o próximo carry. Na pior situação (caso mais custoso em tempo) o carry inicial precisa “propagar” por todos os
full adders até o bit mais significativo. - Isso significa que os atrasos se somam de forma linear: cada bloco contribui com seu atraso de propagação ao caminho crítico.
- Fórmula simples que usamos para o atraso no pior caso:
onde
é o atraso total (pior caso),
é o número de bits (full adders) e
é o atraso de propagação de um full adder. Aqui cada variável significa explicitamente:
-
: número de blocos full adder que o carry precisa atravessar (aqui ). -
: tempo que um full adder demora para propagar o carry/somar (aqui ).
Passo 3
Aplicando a fórmula ao caso concreto (contas passo a passo).
Calcule:
portanto
Interpretação: no pior caso, a soma de 32 bits só estará correta após
desde a apresentação dos operandos (ou do carry inicial).
Passo 4
Determinando a frequência máxima do clock (razão e cálculo).
- O período mínimo do clock
tem que ser pelo menos igual ao atraso total para que a operação de soma termine antes da borda seguinte:
- A frequência máxima do clock é o inverso do período mínimo:
Calcule:
Passo 5
Resumo prático e dica rápida (motivação).
- Resumo: o atraso total no pior caso é
e, portanto, a frequência máxima segura do clock é . - Dica rápida: se precisar de somas mais rápidas em prova ou projeto, mencione técnicas como adição com carry-lookahead ou pipeline, que reduzem muito esse atraso linear — bom ponto para citar se o professor pedir otimizações.