Articulo de referencia

sumador de salto de acarreo

Un sumador con salto de acarreo [ nb 1 ] (también conocido como sumador con derivación de acarreo o sumador con cancelación de acarreo ) es una implementación de sumador que mej...

Un sumador con salto de acarreo [ nb 1 ] (también conocido como sumador con derivación de acarreo o sumador con cancelación de acarreo ) es una implementación de sumador que mejora el retardo de un sumador con acarreo en cascada con poco esfuerzo en comparación con otros sumadores. La mejora del retardo en el peor de los casos se logra utilizando varios sumadores con salto de acarreo para formar un sumador con salto de acarreo en bloque.

A diferencia de otros sumadores rápidos, el rendimiento del sumador con salto de acarreo solo aumenta con algunas de las combinaciones de bits de entrada. Esto significa que la mejora de la velocidad es solo probabilística .

Sumador de salto de acarreo simple

El peor caso para un sumador simple de acarreo en cascada de un solo nivel ocurre cuando la condición de propagación [ 1 ] es verdadera para cada par de dígitos.(ai,bi){\displaystyle (a_{i},b_{i})}. Luego, el transporte se propaga a través de lanorte{\displaystyle n}-sumador de bits y aparece como el acarreo despuésτdoRA(norte)norteτVA{\displaystyle \tau _{CRA}(n)\approx n\cdot \tau _{VA}}.

Sumador completo con generación y propagación de señales adicionales.

Para cada par de bits de entrada del operando(ai,bi){\displaystyle (a_{i},b_{i})}las condiciones de propagaciónpagi=aibi{\displaystyle p_{i}=a_{i}\oplus b_{i}}se determinan mediante una puerta XOR. Cuando todas las condiciones de propagación son verdaderas , entonces el bit de acarreo de entradado0{\displaystyle c_{0}}determina el bit de acarreo.

El sumador de salto de acarreo de n bits consta de una cadena de propagación de acarreo de n bits, una puerta AND de n entradas y un multiplexor. Cada bit propagadopagi{\displaystyle p_{i}}, que es proporcionado por la cadena de propagación de acarreo está conectado a la puerta AND de n entradas. El bit resultante se utiliza como bit de selección de un multiplexor que conmuta el último bit de acarreo.donorte{\displaystyle c_{n}}o el transportedo0{\displaystyle c_{0}}a la señal de salidadoot{\displaystyle c_{out}}.

  • s=pagnorte1pagnorte2pag1pag0=pag[0:norte1]{\displaystyle s=p_{n-1}\wedge p_{n-2}\wedge \dots \wedge p_{1}\wedge p_{0}=p_{[0:n-1]}}

Esto reduce considerablemente la latencia del sumador en su ruta crítica, ya que el bit de acarreo de cada bloque ahora puede "saltarse" bloques con una señal de propagación de grupo establecida en lógica 1 (a diferencia de una larga cadena de acarreo en cascada, que requeriría que el acarreo se propagara a través de cada bit del sumador). El número de entradas de la puerta AND es igual al ancho del sumador. Para un ancho grande, esto se vuelve poco práctico y genera retrasos adicionales, ya que la puerta AND debe construirse como un árbol. Se logra un ancho adecuado cuando la lógica de suma tiene la misma profundidad que la puerta AND de n entradas y el multiplexor.

Sumador de 4 bits con salto de acarreo.

Actuación

La ruta crítica de un sumador con salto de acarreo comienza en el primer sumador completo, pasa por todos los sumadores y termina en el bit de suma.snorte1{\displaystyle s_{n-1}}Los sumadores de salto de acarreo se encadenan (ver sumadores de salto de acarreo en bloque) para reducir la ruta crítica general, ya que un solonorte{\displaystyle n}-bit carry-skip-adder no tiene un beneficio de velocidad real en comparación con unnorte{\displaystyle n}Sumador de propagación de bits.

τdoSA(norte)=τdoRA(norte){\displaystyle \tau _{CSA}(n)=\tau _{CRA}(n)}

La lógica de salto consiste en unmetro{\displaystyle m}-Puerta AND de entrada y un multiplexor.

TSK=TAnorteD(metro)+TMETROUincógnita{\displaystyle T_{SK}=T_{AND}(m)+T_{MUX}}

Dado que las señales propagadas se calculan en paralelo y están disponibles con antelación, la ruta crítica para la lógica de salto en un sumador de salto de acarreo consiste únicamente en el retardo impuesto por el multiplexor (salto condicional).

TdoSK=TMETROUincógnita=2D{\displaystyle T_{CSK}=T_{MUX}=2D}.

sumadores de salto de acarreo de bloque

Sumador de 16 bits con salto de acarreo de bloque fijo y un tamaño de bloque de 4 bits.

Los sumadores de salto de acarreo en bloque están compuestos por varios sumadores de salto de acarreo. Hay dos tipos de sumadores de salto de acarreo en bloque. Los dos operandosA=(anorte1,anorte2,,a1,a0){\displaystyle A=(a_{n-1},a_{n-2},\dots ,a_{1},a_{0})}yB=(bnorte1,bnorte2,,b1,b0){\displaystyle B=(b_{n-1},b_{n-2},\dots ,b_{1},b_{0})}están divididos enk{\displaystyle k}bloques de(metrok,metrok1,,metro2,metro1){\displaystyle (m_{k},m_{k-1},\dots ,m_{2},m_{1})}bits.

  • ¿Por qué se utilizan los sumadores block-carry-skip?
  • ¿El tamaño del bloque debe ser constante o variable?
  • Ancho de bloque fijo frente a ancho de bloque variable

sumadores de salto de acarreo de bloque de tamaño fijo

Los sumadores de salto de acarreo de bloque de tamaño fijo dividen elnorte{\displaystyle n}bits de los bits de entrada en bloques demetro{\displaystyle m}bits cada uno, lo que resulta enk=nortemetro{\displaystyle k={\frac {n}{m}}}bloques. La ruta crítica consta de la ruta de propagación y el elemento de salto del primer bloque, las rutas de salto que están encerradas entre el primer y el último bloque, y finalmente la ruta de propagación del último bloque.

TFdoSA(norte)=TdoRA[0:doot](metro)+TdoSK+(k2)TdoSK+TdoRA(metro)=3D+metro2D+(k1)2D+(metro+2)2D=(2metro+k)2D+5D{\displaystyle T_{FCSA}(n)=T_{CRA_{[0:c_{out}]}}(m)+T_{CSK}+(k-2)\cdot T_{CSK}+T_{CRA}(m)=3D+m\cdot 2D+(k-1)\cdot 2D+(m+2)2D=(2m+k)\cdot 2D+5D}

El tamaño de bloque óptimo para un ancho de sumador n dado se obtiene igualando a 0

dTFdoSA(norte)dmetro=0{\displaystyle {\frac {dT_{FCSA}(n)}{dm}}=0}
2D(2norte1metro2)=0{\displaystyle 2D\cdot \left(2-n\cdot {\frac {1}{m^{2}}}\right)=0}
metro1,2=±norte2{\displaystyle \Rightarrow m_{1,2}=\pm {\sqrt {\frac {n}{2}}}}

Solo se pueden realizar tamaños de bloque positivos.

metro=norte2{\displaystyle \Rightarrow m={\sqrt {\frac {n}{2}}}}

Sumadores de salto de acarreo de bloque de tamaño variable (VBA, Oklobdzija-Barnes)

El rendimiento puede mejorarse, es decir, todos los acarreos se propagan más rápidamente, variando el tamaño de los bloques. En consecuencia, los bloques iniciales del sumador se hacen más pequeños para detectar rápidamente los acarreos generados que deben propagarse más allá; los bloques intermedios se hacen más grandes porque no representan el caso problemático; y luego los bloques más significativos se vuelven a hacer más pequeños para que las entradas de acarreo que llegan tarde puedan procesarse rápidamente. [ 2 ]

sumadores multinivel con salto de acarreo

Al utilizar bloques de salto adicionales en una capa adicional, las señales de propagación de bloquespag[i:i+3]{\displaystyle p_{[i:i+3]}}Se resumen con más detalle y se utilizan para realizar saltos más grandes:

pag[i:i+15]=pag[i:i+3]pag[i+4:i+7]pag[i+8:i+11]pag[i+12:i+15]{\displaystyle p_{[i:i+15]}=p_{[i:i+3]}\wedge p_{[i+4:i+7]}\wedge p_{[i+8:i+11]}\wedge p_{[i+12:i+15]}}

De esta forma, la suma se vuelve aún más rápida.

Optimización de salto de acarreo

El problema de determinar el tamaño de los bloques y el número de niveles necesarios para crear el sumador con salto de acarreo físicamente más rápido se conoce como el "problema de optimización del sumador con salto de acarreo". Este problema se complica debido a que los sumadores con salto de acarreo se implementan con dispositivos físicos cuyo tamaño y otros parámetros también afectan el tiempo de suma.

El problema de optimización de salto de acarreo para tamaños de bloque variables y múltiples niveles para un nodo de proceso de dispositivo arbitrario fue resuelto por Oklobdzija y Barnes en IBM y publicado en 1985.

Descripción general de la implementación

Desglosando esto en términos más específicos, para construir un sumador de derivación de acarreo de 4 bits, se necesitarían 6 sumadores completos . Los buses de entrada serían un bus A de 4 bits y un bus B de 4 bits , con una señal de acarreo de entrada ( CIN ). La salida sería un bus X de 4 bits y una señal de acarreo de salida ( COUT ).

Los dos primeros sumadores completos sumarían los dos primeros bits. La señal de acarreo del segundo sumador completo (do1{\displaystyle C_{1}})controlaría la señal de selección para tres multiplexores de 2 a 1. El segundo conjunto de 2 sumadores completos sumaría los dos últimos bits suponiendodo1{\displaystyle C_{1}}es un 0 lógico. Y el conjunto final de sumadores completos asumiría quedo1{\displaystyle C_{1}}es un 1 lógico.

Los multiplexores controlan entonces qué señal de salida se utiliza para COUT .incógnita2{\displaystyle X_{2}}yincógnita3{\displaystyle X_{3}}.

Notas

  1. El sumador con salto de acarreo se abrevia a menudo como CSA; sin embargo, esto puede confundirse con el sumador con ahorro de acarreo .

Referencias

  1. Parhami, Behrooz (2000). Aritmética computacional: algoritmos y diseños de hardware . Oxford University Press . pág . 108. ISBN  0-19-512583-5.
  2. VG Oklobdzija y ER Barnes, "Algunos esquemas óptimos para la implementación de ALU en tecnología VLSI", Actas del 7.º Simposio sobre Aritmética Computacional ARITH-7, págs. 2-8. Reimpreso en Aritmética Computacional, EE Swartzlander (editor), vol. II, págs. 137-142, 1985.
  • Explicación de la ruta crítica del sumador de salto variable
Obtenido de " https://en.wikipedia.org/w/index.php?title=Carry-skip_adder&oldid=1331961099 "