stringtranslate.com

Sumador (electrónica)

Un sumador , o sumador , [1] es un circuito digital que realiza la suma de números. En muchas computadoras y otros tipos de procesadores , los sumadores se utilizan en las unidades aritméticas lógicas (ALU). También se utilizan en otras partes del procesador, donde se utilizan para calcular direcciones , índices de tablas , operadores de incremento y decremento y operaciones similares.

Aunque se pueden construir sumadores para muchas representaciones numéricas , como decimal codificado en binario o exceso de 3 , los sumadores más comunes operan con números binarios . En los casos en los que se utiliza el complemento a dos o el complemento a uno para representar números negativos , es trivial modificar un sumador en un sumador-restador . Otras representaciones de números con signo requieren más lógica en torno al sumador básico.

Historia

En 1937, Claude Shannon demostró la suma binaria en su tesis de posgrado en el MIT. [2]

sumadores binarios

Medio sumador

El medio sumador suma dos dígitos binarios únicos y . Tiene dos salidas, suma ( ) y acarreo ( ). La señal de acarreo representa un desbordamiento hacia el siguiente dígito de una suma de varios dígitos. El valor de la suma es . El diseño de medio sumador más simple, que se muestra a la derecha, incorpora una puerta XOR y una puerta AND para . La lógica booleana para la suma (en este caso ) será mientras que para el acarreo ( ) será . Con la adición de una puerta OR para combinar sus salidas de acarreo, se pueden combinar dos medios sumadores para formar un sumador completo. [3] El medio sumador agrega dos bits de entrada y genera un acarreo y una suma, que son las dos salidas de un medio sumador. Las variables de entrada de un medio sumador se denominan bits sumando y sumando. Las variables de salida son la suma y el acarreo.

La tabla de verdad para el medio sumador es:

Varios circuitos lógicos digitales de medio sumador:

sumador completo

Un sumador completo suma números binarios y contabiliza los valores entrantes y salientes. Un sumador completo de un bit suma tres números de un bit, a menudo escritos como , y ; y son los operandos, y se traslada un poco de la etapa anterior menos significativa. [4] El sumador completo suele ser un componente de una cascada de sumadores, que suman números binarios de 8, 16, 32, etc. El circuito produce una salida de dos bits. El acarreo de salida y la suma generalmente están representados por las señales y , donde la suma es igual .

Un sumador completo se puede implementar de muchas maneras diferentes, como con un circuito personalizado a nivel de transistor o compuesto por otras puertas. La implementación más común es con:

Las expresiones anteriores para y se pueden derivar usando un mapa de Karnaugh para simplificar la tabla de verdad.

En esta implementación, la puerta OR final antes de la salida de ejecución puede reemplazarse por una puerta XOR sin alterar la lógica resultante. Esto se debe a que cuando A y B son ambos 1, el término siempre es 0 y, por lo tanto , sólo puede ser 0. Por lo tanto, las entradas a la puerta OR final nunca pueden ser ambas 1 (esta es la única combinación para la cual OR y XOR las salidas difieren).

Debido a la propiedad de integridad funcional de las puertas NAND y NOR, también se puede implementar un sumador completo utilizando nueve puertas NAND , [5] o nueve puertas NOR .

Usar sólo dos tipos de puertas es conveniente si el circuito se implementa usando chips de circuito integrado simples que contienen solo un tipo de puerta por chip.

Un sumador completo también se puede construir a partir de dos medios sumadores conectando y a la entrada de un medio sumador, luego tomando su salida suma como una de las entradas al segundo medio sumador y como su otra entrada, y finalmente las salidas de acarreo de los dos semisumadores están conectados a una puerta OR. La salida suma del segundo medio sumador es la salida suma final ( ) del sumador completo y la salida de la puerta OR es la salida de acarreo final ( ). La ruta crítica de un sumador completo pasa por ambas puertas XOR y termina en el bit de suma . Suponiendo que una puerta XOR tarda 1 retraso en completarse, el retraso impuesto por la ruta crítica de un sumador completo es igual a:

La ruta crítica de un acarreo pasa por una puerta XOR en el sumador y por 2 puertas (Y y O) en el bloque de acarreo y, por lo tanto, si las puertas Y u O tardan 1 retraso en completarse, tiene un retraso de:

La tabla de verdad para el sumador completo es:

La inversión de todas las entradas de un sumador completo también invierte todas sus salidas, lo que se puede utilizar en el diseño de sumadores rápidos con acarreo ondulado, porque no es necesario invertir el acarreo. [6]

Varios circuitos lógicos digitales sumadores completos:

Sumadores que soportan múltiples bits

Sumador de acarreo de ondulación

Se muestra un sumador de 4 bits con un diagrama de bloques lógicos
Se muestra un sumador de 4 bits con un diagrama de bloques lógicos
Sumador de acarreo de ondulación decimal de 4 dígitos. FA = sumador completo, HA = medio sumador.

Es posible crear un circuito lógico utilizando múltiples sumadores completos para sumar números de N bits. Cada sumador completo ingresa a , que es el del sumador anterior. Este tipo de sumador se llama sumador de acarreo de ondulación (RCA), ya que cada bit de acarreo "se propaga" al siguiente sumador completo. Tenga en cuenta que el primer (y sólo el primero) sumador completo puede ser reemplazado por un medio sumador (suponiendo que ).

El diseño de un sumador de acarreo ondulado es simple, lo que permite un tiempo de diseño rápido; sin embargo, el sumador de acarreo es relativamente lento, ya que cada sumador completo debe esperar a que se calcule el bit de acarreo a partir del sumador completo anterior. El retardo de la puerta se puede calcular fácilmente inspeccionando todo el circuito sumador. Cada sumador completo requiere tres niveles de lógica. En un sumador de acarreo rizado de 32 bits, hay 32 sumadores completos, por lo que el retraso de la ruta crítica (peor de los casos) es 3 (desde la entrada hasta el acarreo en el primer sumador) + 31 × 2 (para la propagación del acarreo en los últimos sumadores) = 65 retrasos en la puerta. [7] La ​​ecuación general para el retraso en el peor de los casos para un sumador de ondulación de acarreo de n bits, que tiene en cuenta tanto la suma como los bits de acarreo, es:

Un diseño con polaridades de acarreo alternas y compuertas AND-OR-Invert optimizadas puede ser aproximadamente el doble de rápido. [8] [6]

Sumador de anticipación

Sumador de 4 bits con anticipación de acarreo
Sumador de 64 bits con anticipación de acarreo

Para reducir el tiempo de cálculo, los ingenieros idearon formas más rápidas de sumar dos números binarios mediante el uso de sumadores de anticipación (CLA). Funcionan creando dos señales ( y ) para cada posición de bit, en función de si un acarreo se propaga desde una posición de bit menos significativa (al menos una entrada es un 1), generado en esa posición de bit (ambas entradas son 1), o muerto en esa posición de bit (ambas entradas son 0). En la mayoría de los casos, es simplemente la suma de la salida de un medio sumador y es la salida de acarreo del mismo sumador. Después de generar y , se crean los acarreos para cada posición de bit. Algunas arquitecturas avanzadas de anticipación de acarreo son la cadena de acarreo de Manchester , el sumador Brent-Kung (BKA), [9] y el sumador Kogge-Stone (KSA). [10] [11]

Algunas otras arquitecturas de sumadores multibit dividen el sumador en bloques. Es posible variar la longitud de estos bloques en función del retardo de propagación de los circuitos para optimizar el tiempo de cálculo. Estos sumadores basados ​​en bloques incluyen el sumador de salto de acarreo (o derivación de acarreo) que determinará los valores para cada bloque en lugar de cada bit, y el sumador de selección de acarreo que pregenera la suma y los valores de acarreo para cualquiera de las posibles entradas de acarreo ( 0 o 1) al bloque, usando multiplexores para seleccionar el resultado apropiado cuando se conoce el bit de acarreo.

Al combinar múltiples sumadores de anticipación, se pueden crear sumadores aún más grandes. Esto se puede utilizar en múltiples niveles para crear sumadores aún más grandes. Por ejemplo, el siguiente sumador es un sumador de 64 bits que utiliza cuatro CLA de 16 bits con dos niveles de unidades de acarreo anticipadas .

Otros diseños de sumadores incluyen el sumador de selección de acarreo , el sumador de suma condicional , el sumador de omisión de acarreo y el sumador de acarreo completo.

Sumadores de acarreo y guardado

Si un circuito sumador va a calcular la suma de tres o más números, puede resultar ventajoso no propagar el resultado del acarreo. En su lugar, se utilizan sumadores de tres entradas, generando dos resultados: una suma y un acarreo. La suma y el acarreo pueden introducirse en dos entradas del sumador de tres números posterior sin tener que esperar la propagación de una señal de acarreo. Sin embargo, después de todas las etapas de la suma, se debe utilizar un sumador convencional (como el acarreo de ondas o el de anticipación) para combinar la suma final y los resultados del acarreo.

compresores 3:2

Un sumador completo puede verse como un compresor con pérdida 3:2 : suma tres entradas de un bit y devuelve el resultado como un único número de dos bits; es decir, asigna 8 valores de entrada a 4 valores de salida. Así, por ejemplo, una entrada binaria de 101 da como resultado una salida de 1 + 0 + 1 = 10 (número decimal 2). La ejecución representa el bit uno del resultado, mientras que la suma representa el bit cero. Asimismo, se puede utilizar un medio sumador como compresor con pérdidas 2:2 , comprimiendo cuatro posibles entradas en tres posibles salidas.

Estos compresores se pueden utilizar para acelerar la suma de tres o más sumandos. Si el número de sumandos es exactamente tres, el diseño se conoce como sumador de acarreo y guardado . Si el número de sumandos es cuatro o más, es necesaria más de una capa de compresores, y existen varios diseños posibles para el circuito: los más comunes son los árboles Dadda y Wallace . Este tipo de circuito se utiliza sobre todo en circuitos multiplicadores , por lo que estos circuitos también se conocen como multiplicadores Dadda y Wallace.

Sumadores cuánticos

Sumador cuántico completo, utilizando puertas Toffoli y CNOT . La puerta CNOT que está rodeada por un cuadrado punteado en esta imagen se puede omitir si no se requiere un cálculo para restaurar la salida B.

Utilizando únicamente las puertas lógicas cuánticas de Toffoli y CNOT , es posible producir sumadores completos y medios sumadores cuánticos. [12] [13] [14] Los mismos circuitos también se pueden implementar en la computación reversible clásica , ya que tanto CNOT como Toffoli también son puertas lógicas clásicas .

Dado que la transformada cuántica de Fourier tiene una baja complejidad de circuito , también se puede utilizar de manera eficiente para sumar números. [15] [16]

sumadores analógicos

Al igual que en los sumadores binarios, la combinación de dos corrientes de entrada efectivamente suma esas corrientes. Dentro de las limitaciones del hardware, las señales no binarias (es decir, con una base superior a 2) se pueden sumar para calcular una suma. También conocida como "amplificador sumador", [17] esta técnica se puede utilizar para reducir el número de transistores en un circuito de suma.

Ver también

Referencias

  1. ^ Singh, Ajay Kumar (2010). Diseño VLSI digital. Prentice Hall India. pag. 321.ISBN _ 9788120341876- a través de libros de Google.
  2. ^ "Circuitos de computadora :: Libro de texto CC 210". libros de texto.cs.ksu.edu .
  3. ^ Lancaster, Geoffrey A. (2004). Diseño y desarrollo de software Excel HSC. Prensa Pascal. pag. 180.ISBN _ 978-1-74125175-3.
  4. ^ Mano, M. Morris (1979). Lógica Digital y Diseño Informático . Prentice Hall . págs. 119-123. ISBN 978-0-13-214510-7.
  5. ^ Teja, Ravi (15 de abril de 2021), Circuitos de medio sumador y de sumador completo , consultado el 27 de julio de 2021
  6. ^ abc Fischer, P. "Einfache Schaltungsblöcke" (PDF) . Universidad de Heidelberg. Archivado desde el original (PDF) el 5 de septiembre de 2021 . Consultado el 5 de septiembre de 2021 .
  7. ^ Satpatía, Pinaki (2016). Diseño e implementación de Carry Select Adder utilizando T-Spice. Publicaciones académicas ancla. pag. 22.ISBN _ 978-3-96067058-2.
  8. ^ Burgess, Neil (2011). Sumadores rápidos de transporte ondulado en CMOS VLSI de celda estándar. 20º Simposio IEEE sobre aritmética informática . págs. 103-111.
  9. ^ Brent, Richard Peirce ; Kung, Hsiang Te (marzo de 1982). "Un diseño regular para sumadores paralelos". Transacciones IEEE en computadoras . C-31 (3): 260–264. doi :10.1109/TC.1982.1675982. ISSN  0018-9340. S2CID  17348212. Archivado desde el original el 24 de septiembre de 2017.
  10. ^ Kogge, Peter Michael ; Stone, Harold S. (agosto de 1973). "Un algoritmo paralelo para la solución eficiente de una clase general de ecuaciones de recurrencia". Transacciones IEEE en computadoras . C-22 (8): 786–793. doi :10.1109/TC.1973.5009159. S2CID  206619926.
  11. ^ Reynders, Nele; Dehaene, Wim (2015). Diseño de voltaje ultrabajo de circuitos digitales energéticamente eficientes . Circuitos analógicos y procesamiento de señales (1 ed.). Cham, Suiza: Springer International Publishing AG Suiza . doi :10.1007/978-3-319-16136-5. ISBN 978-3-319-16135-8. ISSN  1872-082X. LCCN  2015935431.
  12. ^ Feynman, Richard P. (1986). "Computadoras mecánicas cuánticas". Fundamentos de la Física . Springer Science y Business Media LLC. 16 (6): 507–531. Código bibliográfico : 1986FoPh...16..507F. doi :10.1007/bf01886518. ISSN  0015-9018. S2CID  122076550.
  13. ^ "Ejemplo de código: sumador cuántico completo". QuTech (Universidad Tecnológica de Delft (TU Delft) y Organización Holandesa para la Investigación Científica Aplicada (TNO)).
  14. ^ Dibyendu Chatterjee, Arijit Roy (2015). "Un esquema de medio sumador cuántico basado en transmon". Progresos de la Física Teórica y Experimental . 2015 (9): 093A02. Código Bib : 2015PTEP.2015i3A02C. doi : 10.1093/ptep/ptv122 .
  15. ^ Draper, Thomas G. (7 de agosto de 2000). "Suma en una computadora cuántica". arXiv : quant-ph/0008033 .
  16. ^ Ruiz-Pérez, Lidia; Juan Carlos, García-Escartin (2 de mayo de 2017). "Aritmética cuántica con la transformada cuántica de Fourier". Procesamiento de información cuántica . 16 (6): 152. arXiv : 1411.5949v2 . Código Bib : 2017QuiP...16..152R. doi :10.1007/s11128-017-1603-1. S2CID  10948948.
  17. ^ "El amplificador sumador es un sumador de voltaje de amplificador operacional". 22 de agosto de 2013.

Otras lecturas

enlaces externos