Articulo de referencia

Registro de turnos

Un registro de desplazamiento es un tipo de circuito digital que utiliza una cascada de biestables, donde la salida de un biestable se conecta a la entrada del siguiente. Compar...

Un registro de desplazamiento es un tipo de circuito digital que utiliza una cascada de biestables, donde la salida de un biestable se conecta a la entrada del siguiente. Comparten una única señal de reloj , lo que provoca que los datos almacenados en el sistema se desplacen de una ubicación a otra. Al conectar el último biestable al primero, los datos pueden circular dentro de los registros de desplazamiento durante periodos prolongados. En esta configuración, se utilizaron como memoria de ordenador , reemplazando a los sistemas de memoria de línea de retardo a finales de la década de 1960 y principios de la de 1970.

En la mayoría de los casos, se utilizan varios registros de desplazamiento paralelos para crear una memoria más grande, conocida como " matriz de bits ". Los datos se almacenan en la matriz y se leen en paralelo, generalmente como una palabra de computadora , mientras que cada bit se almacena en serie en los registros de desplazamiento. El diseño de las matrices de bits implica una desventaja inherente: al colocar más flip-flops en una fila, un solo registro de desplazamiento puede almacenar más bits, pero se requieren más ciclos de reloj para que los datos pasen por todos los registros antes de que puedan leerse nuevamente.

Los registros de desplazamiento pueden tener entradas y salidas tanto en paralelo como en serie . Suelen configurarse como "entrada en serie, salida en paralelo" (SIPO) o como "entrada en paralelo, salida en serie" (PISO) . También existen tipos con entrada en serie y en paralelo, y tipos con salida en serie y en paralelo. Además, hay registros de desplazamiento "bidireccionales", que permiten el desplazamiento en ambas direcciones: izquierda   derecha o derecha   izquierda. La entrada y la salida en serie de un registro de desplazamiento se conectan para crear un registro de desplazamiento circular . Un registro PIPO (entrada en paralelo, salida en paralelo) es simplemente un registro de tipo D y no es un registro de desplazamiento, pero es muy rápido: la salida se obtiene en un solo pulso de reloj. Un registro de desplazamiento "universal" proporciona entrada y salida en serie bidireccional, así como entrada y salida en paralelo.

Entrada serie, salida serie (SISO)

Lectura destructiva

Estos son los registros de desplazamiento más sencillos. La cadena de datos se presenta en "data in" y se desplaza una etapa a la derecha cada vez que "data advance" se activa . En cada avance, el bit de la izquierda ("data in") se transfiere a la salida del primer flip-flop . El bit de la derecha ("data out") se descarta.

Los datos se almacenan después de cada uno en la salida "Q", por lo que hay cuatro "ranuras" de almacenamiento disponibles en esta configuración; por lo tanto, es un registro de 4 bits. Para dar una idea del patrón de desplazamiento, imagine que el registro contiene 0000 (por lo que todas las ranuras de almacenamiento están vacías). Cuando "data in" presenta 1,0,1,1,0,0,0,0 (en ese orden, con un pulso en "data advance" cada vez; esto se llama sincronización o estroboscopio) al registro, este es el resultado. La columna de la derecha corresponde al pin de salida del flip-flop más a la derecha, y así sucesivamente.

Así, la salida serial del valor completo es 00010110. Se observa que si se continuara ingresando datos, se obtendría exactamente el valor introducido (10110000), pero con un desfase de cuatro ciclos de "avance de datos". Esta disposición es el equivalente en hardware de una cola . Además, en cualquier momento, el registro completo puede ponerse a cero activando los pines de reinicio (R).

Este sistema realiza una lectura destructiva : cada dato se pierde una vez que se ha desplazado fuera del bit más a la derecha. 

Entrada serie, salida paralela (SIPO)

Esta configuración permite la conversión de formato serie a paralelo. La entrada de datos es serie, como se describe en la sección SISO anterior. Una vez que los datos se han introducido, se pueden leer simultáneamente en cada salida o se pueden enviar a través de un conmutador.

En esta configuración, cada flip-flop se activa por flanco . Todos los flip-flops operan a la frecuencia de reloj especificada. Cada bit de entrada llega a la enésima salida después de N ciclos de reloj, lo que da como resultado una salida en paralelo.

En los casos en que las salidas paralelas no deban modificarse durante el proceso de carga en serie, es conveniente utilizar una salida con retención o búfer . En un registro de desplazamiento con retención (como el 74595 ), los datos en serie se cargan primero en un registro de búfer interno y, al recibir una señal de carga, el estado de dicho registro se copia en un conjunto de registros de salida. En general, la aplicación práctica del registro de desplazamiento de entrada en serie/salida en paralelo consiste en convertir datos del formato en serie (transmitido por un solo cable) al formato en paralelo (transmitido por varios cables).

Entrada paralela, salida serie (PISO)

Esta configuración tiene la entrada de datos en las líneas D1 a D4 en formato paralelo, siendo D1 el bit más significativo. Para escribir los datos en el registro, la línea de control de escritura/desplazamiento debe mantenerse en BAJO. Para desplazar los datos, la línea de control W/S se pone en ALTO y se activan los registros. El sistema ahora funciona como un registro de desplazamiento PISO, con D1 como entrada de datos. Sin embargo, siempre que el número de ciclos de reloj no sea mayor que la longitud de la cadena de datos, la salida de datos, Q, será la lectura de datos en paralelo en orden.

Registro de desplazamiento PISO de 4 bits

La animación que aparece a continuación muestra la secuencia de escritura/desplazamiento, incluyendo el estado interno del registro de desplazamiento.

Usos

Registro de desplazamiento SIPO dual Toshiba TC4015BP

Conversión en serie y en paralelo

Uno de los usos más comunes de un registro de desplazamiento es la conversión entre interfaces serie y paralela.

Demora

Los registros de desplazamiento serie -serie

Pila

También se pueden conectar varios registros de desplazamiento bidireccionales en paralelo para una implementación de hardware de una pila .

Más pines de E/S

Los registros de desplazamiento se suelen conectar a los microcontroladores cuando se requieren más pines de entrada/salida de propósito general de los disponibles, a veces a través de una interfaz periférica serie en configuración en cadena , lo que permite acceder a cualquier número de dispositivos binarios utilizando solo de dos a cuatro pines, aunque más lentamente que la E/S paralela.

Para obtener más salidas, se utilizan registros de desplazamiento SIPO. Las salidas paralelas del registro de desplazamiento y el estado deseado de todos estos dispositivos se pueden enviar desde el microcontrolador mediante una única conexión serial.

Para gestionar más entradas, se utilizan registros de desplazamiento PISO. Cada entrada binaria (como un botón o un circuito más complejo) se conecta a una entrada paralela del registro de desplazamiento, y los datos se envían de vuelta en serie al microcontrolador.

extensores de pulso

Los registros de desplazamiento también pueden utilizarse como extensores de pulsos. En comparación con los multivibradores monoestables , la temporización no depende de los valores de los componentes, pero requiere un reloj externo, y la precisión de la temporización está limitada por la granularidad de este reloj. Un ejemplo de este tipo de extensor de pulsos es el Ronja Twister , en el que cinco registros de desplazamiento 74164 crean el núcleo de la lógica de temporización de esta manera ( esquema ).

Proceso de datos

En los primeros ordenadores, los registros de desplazamiento se utilizaban para el procesamiento de datos: dos números que se iban a sumar se almacenaban en dos registros de desplazamiento y se enviaban a una unidad aritmético-lógica (ALU), cuyo resultado se retroalimentaba a la entrada de uno de los registros de desplazamiento (el acumulador), que era un bit más largo, ya que la suma binaria solo puede dar como resultado una respuesta del mismo tamaño o un bit más larga.

Operaciones de Bitshift

Muchos lenguajes de programación incluyen operaciones bit a bit para "desplazar a la derecha" y "desplazar a la izquierda" los datos en un registro, dividiendo o multiplicando por dos por cada posición desplazada.

Memoria de registro de desplazamiento

En algunos dispositivos construidos a principios de la década de 1970, se utilizaban registros de desplazamiento de entrada y salida en serie de gran tamaño (de miles de bits) de forma similar a la memoria de línea de retardo anterior . Los registros de desplazamiento no necesitan muchos pines ni lógica de decodificación de direcciones, por lo que eran mucho más baratos que la memoria de acceso aleatorio en aquel entonces. [ 2 ] A este tipo de memoria de registro de desplazamiento se la denominaba a veces memoria circulante .

Por ejemplo, el Datapoint 3300 almacenaba su pantalla de terminal de 25  filas y 72  columnas de caracteres en mayúsculas de 6 bits mediante 54 registros de desplazamiento de 200 bits (organizados en 6 pistas de 9 paquetes), lo que proporcionaba almacenamiento para 1800 caracteres. El diseño de los registros de desplazamiento permitía desplazar la pantalla de la terminal simplemente pausando la salida para saltar una línea de caracteres. [ 3 ] Se utilizó un diseño similar para la terminal del Apple I. [ 4 ]

Historia

Uno de los primeros ejemplos conocidos de un registro de desplazamiento fue en el Mark 2 Colossus , una máquina de descifrado de códigos construida en 1944. Era un dispositivo de seis etapas construido con tubos de vacío y tiratrones . [ 5 ] También se utilizó un registro de desplazamiento en la máquina IAS , construida por John von Neumann y otros en el Instituto de Estudios Avanzados a finales de la década de 1940. Los registros de desplazamiento se incorporaron a los circuitos integrados en la década de 1960 como lo demuestran las primeras patentes de Frank Wanlass [ 6 ] y Kent Smith [ 7 ] que trabajaban en General Instrument .

Véase también

Referencias

  1. US4530107A , Williams, Marshall, "Circuito de retardo de registro de desplazamiento", publicado el 16 de julio de 1985 
  2. Shirriff, Ken (2014). "Dentro del Intel 1405: fotos del chip de una memoria de registro de desplazamiento de 1970" . Blog de Ken Shirriff . Archivado del original el 28 de julio de 2023. Consultado el 6 de agosto de 2023 .
  3. "Manual de mantenimiento del DataPoint 3300" (PDF) . bitsavers.org . Datapoint Corporation. Diciembre de 1976.
  4. Shirriff, Ken. "Dentro de la memoria del registro de cambios del Apple-1" . Blog de Ken Shirriff . Archivado del original el 6 de junio de 2023. Consultado el 4 de agosto de 2023 .
  5. Flowers, Thomas H. (1983), "El diseño de Colossus" , Annals of the History of Computing , 5 (3): 246, doi : 10.1109/MAHC.1983.10079 , S2CID 39816473 
  6. "Sistema de registro de desplazamiento" .
  7. "Sistema de registro de desplazamiento electrónico" .