stringtranslate.com

palanca de cambios de barril

Esquema de una palanca de cambios de barril con barra transversal de 4 bits. 'x' denota bits de entrada e y denota bits de salida.

Un cambiador de barril es un circuito digital que puede cambiar una palabra de datos en un número específico de bits sin el uso de ninguna lógica secuencial , sólo lógica combinacional pura , es decir, proporciona inherentemente una operación binaria . Sin embargo, en teoría también se puede utilizar para implementar operaciones unarias , como el desplazamiento lógico a la izquierda , en los casos en que esté limitado por una cantidad fija (por ejemplo, para la unidad de generación de direcciones ). Una forma de implementar un cambiador de barril es como una secuencia de multiplexores donde la salida de un multiplexor está conectada a la entrada del siguiente multiplexor de una manera que depende de la distancia de cambio. Un cambiador de barril se utiliza a menudo para cambiar y rotar n bits en microprocesadores modernos, [1] normalmente dentro de un solo ciclo de reloj .

Por ejemplo, tomemos una palanca de cambios de barril de cuatro bits, con entradas A, B, C y D. La palanca de cambios puede cambiar el orden de los bits ABCD como DABC , CDAB o BCDA ; en este caso no se pierde ningún bit. Es decir, puede desplazar todas las salidas hasta tres posiciones hacia la derecha (y así realizar cualquier combinación cíclica de A, B, C y D). La palanca de cambios de barril tiene una variedad de aplicaciones, incluido ser un componente útil en microprocesadores (junto con la ALU ).

Implementación

Las palancas de cambio más rápidas se implementan como barras transversales completas, de manera similar a la palanca de cambios de 4 bits que se muestra arriba, solo que más grande. Estos incurren en el menor retraso, con la salida siempre un retraso de puerta única detrás de la entrada que se va a cambiar (después de permitir el pequeño tiempo necesario para que se estabilice el decodificador del recuento de cambios; sin embargo, esta penalización solo se incurre cuando cambia el recuento de cambios). Sin embargo, estos cambiadores de barra transversal requieren n 2 puertas para cambios de n bits. Debido a esto, el cambiador de barril a menudo se implementa como una cascada de multiplexores paralelos 2×1, lo que permite una gran reducción en el número de puertas, que ahora crece solo con n x log n ; Sin embargo, el retraso de propagación es mayor y crece con log n (en lugar de ser constante como con el desplazador de barra transversal).

Para un cambiador de barril de 8 bits, se utilizan dos señales intermedias que cambian de cuatro y dos bits, o pasan los mismos datos, según el valor de S[2] y S[1]. Luego, esta señal es desplazada por otro multiplexor, que está controlado por S[0]:

int1 = EN , si S[2] == 0 = EN << 4, si S[2] == 1 int2 = int1, si S[1] == 0 = int1 << 2, si S[1] == 1 SALIDA = int2, si S[0] == 0 = int2 << 1, si S[0] == 1

Los cambiadores de barril más grandes tienen etapas adicionales.

La palanca de cambios en cascada tiene la ventaja adicional sobre la palanca de cambios de barra transversal completa de no requerir ninguna lógica de decodificación para el recuento de cambios.

Costo

El número de multiplexores necesarios para una palabra de n bits es . [2] A continuación se enumeran cinco tamaños de palabras comunes y la cantidad de multiplexores necesarios:

Costo de la ruta crítica en FO4 (estimado, sin demora de cable):

Usos

Un uso común de una palanca de cambios de barril es en la implementación de hardware de la aritmética de punto flotante . Para una operación de suma o resta de punto flotante, los significados de los dos números deben estar alineados, lo que requiere desplazar el número más pequeño hacia la derecha, aumentando su exponente , hasta que coincida con el exponente del número mayor. Esto se hace restando los exponentes y usando la palanca de cambios para desplazar el número más pequeño hacia la derecha por diferencia, en un ciclo.

Ver también

Referencias

  1. ^ Abhilasha; Sudharshan; Anusha, SL (2015). "Diseño e implementación de FPGA de un multiplicador védico de 8 bits de alto rendimiento utilizando un cambiador de barril basado en lógica reversible". Actas de la Segunda Conferencia Internacional sobre Procesamiento de Señales, Procesamiento de Imágenes y VLSI . Singapur: Servicios de publicación de investigaciones. doi :10.3850/978-981-09-6200-5_vlsi-74.
  2. ^ Kroening, Daniel; Strichman, Ofer (2008). Procedimientos de decisión . Saltador . pag. 159.ISBN _ 978-3-540-74104-6.
  3. ^ Wang, David T. (15 de agosto de 2002). "Revisando la métrica FO4" . Consultado el 19 de mayo de 2016 .

Otras lecturas

enlaces externos