stringtranslate.com

registro de turno

Un registro de desplazamiento es un tipo de circuito digital que utiliza una cascada de flip-flops donde la salida de un flip-flop se conecta a la entrada del siguiente. Comparten una única señal de reloj , lo que hace que los datos almacenados en el sistema cambien de una ubicación a otra. Al conectar el último flip-flop al primero, los datos pueden circular dentro de los cambiadores durante períodos prolongados, y en esta configuración se utilizaron como memoria de computadora , desplazando a los sistemas de memoria de línea de retardo a finales de los años 1960 y principios de los 1970.

En la mayoría de los casos, se utilizarían varios registros de desplazamiento paralelos para construir un grupo de memoria más grande conocido como " matriz de bits ". Los datos se almacenaban en la matriz y se leían en paralelo, a menudo como una palabra de computadora , mientras que cada bit se almacenaba en serie en los registros de desplazamiento. Existe una compensación inherente en el diseño de matrices de bits; poner más flip-flops en fila permite que un solo cambiador almacene más bits, pero requiere más ciclos de reloj para enviar los datos a través de todos los cambiadores antes de que los datos puedan volver a leerse.

Los registros de desplazamiento pueden tener entradas y salidas tanto en paralelo como en serie . A menudo se configuran como "entrada en serie, salida en paralelo" (SIPO) o como "entrada en paralelo, salida en serie" (PISO). También hay tipos que tienen entrada en serie y en paralelo y tipos con salida en serie y en paralelo. También hay registros de desplazamiento "bidireccionales", que permiten realizar cambios en ambas direcciones: L → R o R → L. La entrada en serie y la última salida de un registro de desplazamiento también se pueden conectar para crear un "registro de desplazamiento circular". Un registro PIPO (entrada paralela, salida paralela) es simplemente un registro tipo D y no es un registro de desplazamiento, pero es muy rápido: se proporciona una salida dentro de un solo pulso de reloj. Un registro de desplazamiento "universal" proporciona entrada y salida en serie bidireccionales, así como entrada y salida en paralelo.

Entrada serie salida serie (SISO)

lectura destructiva

Estos son el tipo más simple de registros de desplazamiento. La cadena de datos se presenta en "datos de entrada" y se desplaza hacia la derecha una etapa cada vez que el "avance de datos" aumenta . En cada avance, el bit del extremo izquierdo (es decir, "datos de entrada") se desplaza a la salida del primer flip-flop . El bit del extremo derecho (es decir, "salida de datos") se desplaza y se pierde.

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

Entonces, la salida en serie de todo el registro es 00010110. Se puede ver que si se continuaran ingresando datos, se obtendría exactamente lo que se ingresó (10110000), pero se compensaría con cuatro ciclos de "avance de datos". Esta disposición es el equivalente hardware de una cola . Además, en cualquier momento, todo el registro se puede poner a cero elevando los pines de reinicio (R).

Esta disposición realiza una lectura destructiva  : cada dato se pierde una vez que se ha desplazado del bit más a la derecha.

Entrada serie y salida paralela (SIPO)

Esta configuración permite la conversión del formato serie a paralelo. La entrada de datos es en serie, como se describe en la sección SISO anterior. Una vez que los datos han sido registrados, se pueden leer simultáneamente en cada salida o se pueden transferir.

En esta configuración, cada flip-flop se activa por flanco . Todos los flip-flops funcionan a la frecuencia de reloj dada. Cada bit de entrada desciende hasta la enésima salida después de N ciclos de reloj, lo que genera una salida en paralelo.

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

Entrada y salida paralela (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 Write/Shift debe mantenerse BAJA. Para cambiar los datos, la línea de control W/S se pone ALTA y los registros se sincronizan. El arreglo ahora actúa 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án los datos paralelos leídos en orden.

Registro de desplazamiento PISO de 4 bits

La siguiente animación muestra la secuencia de escritura/desplazamiento, incluido el estado interno del registro de desplazamiento.

Usos

Registro de desplazamiento SIPO dual Toshiba TC4015BP

Conversión en serie y paralelo

Uno de los usos más comunes de un registro de desplazamiento es convertir entre interfaces serie y paralela.

Demora

Los registros de desplazamiento de entrada y salida en serie se pueden utilizar como circuitos de retardo simples. [1]

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 conectan comúnmente a los microcontroladores cuando se requieren más pines de entrada/salida de uso general de los disponibles, a veces a través de una interfaz periférica en serie en configuración en cadena , lo que permite acceder a cualquier número de dispositivos binarios usando solo de dos a cuatro pines. aunque más lentamente que la E/S paralela.

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

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

Extensores de pulso

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

Procesamiento de datos

En las primeras computadoras, los registros de desplazamiento se usaban para manejar el procesamiento de datos: dos números que se iban a sumar se almacenaban en dos registros de desplazamiento y se registraban en una unidad aritmética y lógica (ALU) y el resultado se retroalimentaba a la entrada de uno de los registros de desplazamiento. registros (el acumulador), que era un bit más largo, ya que la suma binaria sólo puede dar como resultado una respuesta que tenga el mismo tamaño o sea un bit más largo.

Operaciones de cambio de bits

Muchos lenguajes informáticos incluyen operaciones bit a bit para "desplazar a la derecha" y "desplazar a la izquierda" los datos en un registro, dividiendo efectivamente por dos o multiplicando por dos por cada lugar desplazado.

Memoria de registro de desplazamiento

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

Datapoint 3300 , por ejemplo, almacenó la visualización de su terminal en 25 filas de 72 columnas de caracteres en mayúscula de 6 bits utilizando 54 registros de desplazamiento de 200 bits (dispuestos en 6 pistas de 9 paquetes), lo que proporciona almacenamiento para 1800 caracteres. El diseño del registro de desplazamiento significaba que se podía desplazar la pantalla del terminal simplemente pausando la salida de la pantalla para saltar una línea de caracteres. [3] Se utilizó un diseño similar para el terminal 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 abrieron paso en 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 .

Ver también

Referencias

  1. ^ US4530107A, Williams, Marshall, "Circuito de retardo del registro de cambio", publicado el 16 de julio de 1985 
  2. ^ Shiriff, Ken (2014). "Dentro del Intel 1405: fotografías de una memoria de registro de desplazamiento de 1970". Blog de Ken Shirriff . Archivado desde el original el 28 de julio de 2023 . Consultado el 6 de agosto de 2023 .
  3. ^ bitsavers.org, Manual de mantenimiento de DataPoint 3300 , diciembre de 1976.
  4. ^ Comisario, Ken. "Dentro de la memoria de registro de desplazamiento del Apple-1". Blog de Ken Shirriff . Archivado desde el original el 6 de junio de 2023 . Consultado el 4 de agosto de 2023 .
  5. ^ Flowers, Thomas H. (1983), "The Design of Colossus", Annals of the History of Computing , 5 (3): 246, doi :10.1109/MAHC.1983.10079, S2CID  39816473
  6. ^ "Sistema de registro de turnos".
  7. ^ "Sistema de registro de turnos electrónico".