El sumador Brent-Kung ( BKA o BK ), propuesto en 1982, [1] es un diseño de sumador binario avanzado , que tiene una profundidad de nivel de puerta de .
El sumador Brent-Kung es una forma de sumador de prefijo paralelo (PPA) de sumador de anticipación (CLA). Propuesto por Richard Peirce Brent y Hsiang Te Kung en 1982, introdujo una mayor regularidad en la estructura del sumador y tiene menos congestión de cableado, lo que conduce a un mejor rendimiento y menos área de chip necesaria para implementar en comparación con el sumador Kogge-Stone (KSA). También es mucho más rápido que los sumadores de acarreo ondulado (RCA).
Los sumadores de acarreo de ondulación fueron los sumadores multibit iniciales que se desarrollaron en los primeros días y obtuvieron su nombre del efecto dominó que producía el acarreo mientras se propagaba de derecha a izquierda. El tiempo necesario para la adición fue directamente proporcional a la longitud del bit que se agregó. Esto es lo contrario en los sumadores Brent-Kung, donde el carry se calcula en paralelo, lo que reduce drásticamente el tiempo de suma. Se ha trabajado más en sumadores Brent-Kung y otros sumadores paralelos para reducir el consumo de energía y el área del chip, así como para aumentar la velocidad, haciéndolos adecuados para diseños de baja potencia.
Un sumador Brent-Kung es un sumador paralelo fabricado con un diseño regular con el objetivo de minimizar el área del chip y facilitar la fabricación. La suma de un número de n bits se puede realizar en el tiempo con un tamaño de área de chip, lo que lo convierte en un sumador de buena elección con restricciones de área y maximización del rendimiento. Su simetría y estructura de construcción regular reducen los costos de producción de manera efectiva y permiten su uso en arquitecturas de tuberías. En los sumadores paralelos, la ruta crítica se decide mediante el cálculo del acarreo desde el sumador del bit menos significativo (LSB) al sumador del bit más significativo (MSB); por lo tanto, los esfuerzos se centran en reducir la ruta crítica para que el acarreo llegue al MSB.
En general, la mayoría de los sumadores utilizan el acarreo y los bits correspondientes de dos números (A y B) para obtener el bit de suma correspondiente y el acarreo, y los sumadores de acarreo ondulado toman tiempo para que el acarreo alcance MSB.
Brent y Kung transformaron aún más la generación y propagación del acarreo al definir un operador asociativo ○ que define la generación y propagación del acarreo en un rango de bits como
(g 1 , p 1 ) ○ (g 2 , p 2 ) = (g 1 ∨ ( pag 1 ∧ gramo 2 ), pag 1 ∧ pag 2 ) .
Aprovechando la asociatividad del operador ○ , (G n , P n ) se puede calcular en forma de árbol.
El diseño de los nodos blancos es obvio ya que solo almacenan en búfer los g i y p i , y los nodos negros realizan la operación definida por el operador ○ , que es similar a un sumador de un bit.
Utilizando la transformación de propagación y generación de acarreo para calcular la suma y el acarreo utilizada por Brent y Kung, el rendimiento del sumador aumenta considerablemente y también conduce a un aumento en la regularidad. La suma final se puede calcular de la siguiente manera: s i = p i ⊕ G i-1 , ya que p i = a i ⊕ b i y G i-1 = c i-1 .
El aumento en el rendimiento de los sumadores Brent-Kung se atribuye a su estructura de árbol de propagación de acarreo, que también conduce a un menor consumo de energía, ya que la señal de acarreo ahora tiene que viajar a través de menos etapas, lo que lleva a una menor conmutación de transistores. Además, la disminución en la cantidad de cableado y distribución también contribuye en gran medida a su menor consumo de energía que los sumadores CLA. También se puede utilizar un sumador Brent-Kung en forma de tubería, lo que puede reducir aún más el consumo de energía al reducir la profundidad de la lógica combinatoria y la estabilización de fallas. [1] El gráfico muestra un sumador Brent-Kung de baja potencia. [2]
Debido a que este tipo de sumador requiere menos módulos para implementar que el sumador Kogge-Stone , el sumador Brent-Kung es mucho más sencillo de construir. También contiene muchas menos conexiones a otros módulos, lo que también contribuye a su simplicidad. [3]
Este tipo de sumador tiene un mayor retraso y requiere 2 log 2 n − 2 niveles de lógica para calcular todos los bits de acarreo. (Kogge-Stone requiere log 2 n .)
Sumador Kogge-Stone de 8 bits, valencia-2:
P00 = A0 XOR B0 '1dt, S0G00 = A0 Y B0 '1dt, C0P10 = A1 XOR B1 '1dt G10 = A1 Y B1 '1dtP20 = A2 XOR B2 '1dtG20 = A2 Y B2 '1dtP30 = A3 XOR B3 '1dtG30 = A3 Y B3 '1dtP40 = A4 XOR B4 '1dtG40 = A4 Y B4 '1dtP50 = A5 XOR B5 '1dtG50 = A5 Y B5 '1dt P60 = A6 XOR B6 '1dtG60 = A6 Y B6 '1dtP70 = A7 XOR B7 '1dtG70 = A7 Y B7 '1dtG11 = G10 O P10 Y G00 '3dt, C1P21 = P20 Y P10 '2dtG21 = G20 O P20 Y G10 '3dtP31 = P30 Y P20 '2dtG31 = G30 O P30 Y G20 '3dtP41 = P40 Y P30 '2dtG41 = G40 O P40 Y G30 '3dtP51 = P50 Y P40 '2dtG51 = G50 O P50 Y G40 '3dtP61 = P60 Y P50 '2dtG61 = G60 O P60 Y G50 '3dtP71 = P70 Y P60 '2dtG71 = G70 O P70 Y G60 '3dtG22 = G21 O P21 Y G00 '4dt, C2G32 = G31 O P31 Y G11 '5dt, C3P42 = P41 Y P21 '3dtG42 = G41 O P41 Y G21 '5dtP52 = P51 Y P31 '3dtG52 = G51 O P51 Y G31 '5dtP62 = P61 Y P41 '3dtG62 = G61 O P61 Y G41 '5dtP72 = P71 Y P51 '3dtG72 = G71 O P71 Y G51 '5dtG43 = G42 O P42 Y G00 '6dt, C4G53 = G52 O P52 Y G11 '6dt, C5G63 = G62 O P62 Y G22 '6dt, C6G73 = G72 O P72 Y G32 '7dt, C7, CoutS0 = P00 '1dtS1 = P10 XOR G00 '2dtS2 = P20 XOR G11 '4dtS3 = P30 XOR G22 '5dtS4 = P40 XOR G32 '6dtS5 = P50 XOR G43 '7dtS6 = P60 XOR G53 '7dtS7 = P70 XOR G63 '7dt
Sumador Kogge-Stone de 8 bits, valencia-2,3,4:
P00 = A0 XOR B0 '1dt, S0G00 = A0 Y B0 '1dt, C0P10 = A1 XOR B1 '1dtG10 = A1 Y B1 '1dtP20 = A2 XOR B2 '1dtG20 = A2 Y B2 '1dtP30 = A3 XOR B3 '1dtG30 = A3 Y B3 '1dtP40 = A4 XOR B4 '1dtG40 = A4 Y B4 '1dtP50 = A5 XOR B5 '1dtG50 = A5 Y B5 '1dtP60 = A6 XOR B6 '1dtG60 = A6 Y B6 '1dtP70 = A7 XOR B7 '1dtG70 = A7 Y B7 '1dtG11 = G10 O P10 Y G00 '3dt, distancia=2^0=1, valencia-2, C1P21 = P20 Y P10 '2dtG21 = G20 O P20 Y G10 '3dt, distancia=2^0=1, valencia-2P31 = P30 Y P20 '2dtG31 = G30 O P30 Y G20 '3dt, distancia=2^0=1, valencia-2P41 = P40 Y P30 '2dtG41 = G40 O P40 Y G30 '3dt, distancia=2^0=1, valencia-2P51 = P50 Y P40 '2dtG51 = G50 O P50 Y G40 '3dt, distancia=2^0=1, valencia-2P61 = P60 Y P50 '2dtG61 = G60 O P60 Y G50 '3dt, distancia=2^0=1, valencia-2P71 = P70 Y P60 '2dtG71 = G70 O P70 Y G60 '3dt, distancia=2^0=1, valencia-2G22 = G20 O_ P20 Y G10 O_ P20 Y P10 Y G00 '3dt, distancia=2^1=2, valencia-3, C2G32 = G30 O_ P30 Y G20 O_ P30 Y P20 Y G10 O_ P30 Y P20 Y P10 Y G00 '3dt, distancia=2^1=2, valencia-4, C3P42 = P41 Y P21 '3dt, distancia=2^1=2G42 = G40 O_ P40 Y G30 O_ P40 Y P30 Y G20 O_ P40 Y P30 Y P20 Y G10 '3dt, distancia=2^1=2, valencia-4P52 = P51 Y P31 '3dt, distancia=2^1=2G52 = G50 O_ P50 Y G40 O_ P50 Y P40 Y G30 O_ P50 Y P40 Y P30 Y G20 '3dt, distancia=2^1=2, valencia-4P62 = P61 Y P41 '3dt, distancia=2^1=2G62 = G60 O_ P60 Y G50 O_ P60 Y P50 Y G40 O_ P60 Y P50 Y P40 Y G30 '3dt, distancia=2^1=2, valencia-4P72 = P71 Y P51G72 = G70 O_ P70 Y G60 O_ P70 Y P60 Y G50 O_ P70 Y P60 Y P50 Y G40 '3dt, distancia=2^1=2, valencia-4G43 = G42 O P42 Y G00 '5dt, distancia=2^2=4, valencia-2, C4G53 = G52 O P52 Y G11 '5dt, distancia=2^2=4, valencia-2, C5G63 = G62 O P62 Y G22 '5dt, distancia=2^2=4, valencia-2, C6G73 = G72 O P72 Y G32 '5dt, distancia=2^2=4, valencia-2, C7S0 = P00 '1dtS1 = P10 XOR G00 '2dtS2 = P20 XOR G11 '4dtS3 = P30 XOR G22 '4dtS4 = P40 XOR G32 '6dtS5 = P50 XOR G43 '6dtS6 = P60 XOR G53 '6dtS7 = P70 XOR G63 '6dt
Sumador Brent-Kung de 8 bits, valencia-2:
P00 = A0 XOR B0 '1dt, S0G00 = A0 Y B0 '1dt, C0P10 = A1 XOR B1 '1dtG10 = A1 Y B1 '1dtP20 = A2 XOR B2 '1dtG20 = A2 Y B2 '1dtP30 = A3 XOR B3 '1dtG30 = A3 Y B3 '1dtP40 = A4 XOR B4 '1dtG40 = A4 Y B4 '1dtP50 = A5 XOR B5 '1dtG50 = A5 Y B5 '1dtP60 = A6 XOR B6 '1dtG60 = A6 Y B6 '1dtP70 = A7 XOR B7 '1dtG70 = A7 Y B7 '1dtG11 = G10 O P10 Y G00 '3dt, C1G21 = G20 O P20 Y G11 '3dt, C2P31 = P30 Y P20 '2dtG31 = G30 O P30 Y G20 '3dtP51 = P50 Y P40 '2dt G51 = G50 O P50 Y G40 '3dtP71 = P70 Y P60 '2dt G71 = G70 O P70 Y G60 '3dtG32 = G31 O P31 Y G11 '5dt, C3P72 = P71 Y P51 '3dtG72 = G71 O P71 Y G51 '5dt G53 = G51 O P51 Y G32 '7dt, C5G73 = G72 O P72 Y G32 '7dt, C7, CoutG44 = G40 O P40 Y G32 '7dt, C4G64 = G60 O P60 Y G53 '9dt, C6S0 = P00 '1dt S1 = P10 XOR G00 '2dtS2 = P20 XOR G11 '4dtS3 = P30 XOR G21 '4dtS4 = P40 XOR G32 '6dtS5 = P50 XOR G44 '8dtS6 = P60 XOR G53 '8dtS7 = P70 XOR G64 '10dt