Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Tablas de búsqueda

Habiendo aprendido sobre los dispositivos de memoria digital en el último capítulo, sabemos que es posible almacenar datos binarios dentro de dispositivos de estado sólido. Esas "celdas" de almacenamiento dentro de los dispositivos de memoria de estado sólido se direccionan fácilmente manejando las líneas de "dirección" del dispositivo con los valores binarios adecuados.

Supongamos que tuviéramos un circuito de memoria ROM escrito o programado con ciertos datos, de manera que las líneas de dirección de la ROM sirvieran como entradas y las líneas de datos de la ROM sirvieran como salidas, generando la respuesta característica de una función lógica particular. Teóricamente, podríamos programar este chip ROM para emular cualquier función lógica que quisiéramos sin tener que alterar ninguna conexión de cables o puertas.

Considere el siguiente ejemplo de una memoria ROM de 4 x 2 bits (¡una memoria muy pequeña!) Programada con la funcionalidad de un medio sumador:

Si esta ROM se ha escrito con los datos anteriores (que representan la tabla de verdad de un medio sumador), la activación de las entradas de dirección A y B hará que se habiliten las respectivas celdas de memoria en el chip ROM, generando así los datos correspondientes como Σ ( Sum) y C out bits. A diferencia del circuito de medio sumador construido con puertas o relés, este dispositivo se puede configurar para realizar cualquier función lógica con dos entradas y dos salidas, no solo la función de medio sumador.

Para cambiar la función lógica, todo lo que tendríamos que hacer es escribir una tabla de datos diferente en otro chip ROM. Incluso podríamos usar un chip EPROM que podría reescribirse a voluntad, brindando la máxima flexibilidad en función.

Es de vital importancia reconocer la importancia de este principio aplicado a los circuitos digitales. Mientras que el medio sumador construido a partir de puertas o relés procesos los bits de entrada para llegar a una salida específica, la ROM simplemente recuerda cuáles deberían ser las salidas para cualquier combinación dada de entradas.

Esto no es muy diferente de las "tablas de multiplicar" que se memorizan en la escuela primaria:en lugar de tener que calcular el producto de 5 por 6 (5 + 5 + 5 + 5 + 5 + 5 =30), a los escolares se les enseña a recordar que 5 x 6 =30, y luego se esperaba recuperar este producto de la memoria según fuera necesario. Asimismo, en lugar de que la función lógica dependa de la disposición funcional de las puertas o relés cableados (hardware), depende únicamente de los datos escritos en la memoria (software).

Una aplicación tan simple, con salidas definidas para cada entrada, se llama tabla de búsqueda , porque el dispositivo de memoria simplemente "busca" cuáles deberían ser las salidas para cualquier combinación dada de estados de entrada.

Esta aplicación de un dispositivo de memoria para realizar funciones lógicas es importante por varias razones:

La utilidad de una tabla de consulta se hace cada vez más evidente a medida que aumenta la complejidad de la función. Supongamos que quisiéramos construir un circuito sumador de 4 bits usando una ROM. Necesitaríamos una ROM con 8 líneas de dirección (dos números de 4 bits para sumarlos), más 4 líneas de datos (para la salida firmada):

Con 256 ubicaciones de memoria direccionables en este chip ROM, tendríamos una buena cantidad de programación que hacer, diciéndole qué salida binaria generar para todas y cada una de las combinaciones de entradas binarias.

También correríamos el riesgo de cometer un error en nuestra programación y generar una suma incorrecta, si no fuéramos cuidadosos. Sin embargo, la flexibilidad de poder configurar esta función (o cualquier función) a través del software solo generalmente supera ese costo.

Considere algunas de las funciones avanzadas que podríamos implementar con el "sumador" anterior. Sabemos que cuando sumamos dos conjuntos de números en notación con signo de complemento a 2, corremos el riesgo de que la respuesta se desborde.

Por ejemplo, si intentamos sumar 0111 (decimal 7) a 0110 (decimal 6) con solo un campo numérico de 4 bits, la respuesta que obtendremos es 1001 (decimal -7) en lugar del valor correcto, 13 (7 + 6), que no se puede expresar con 4 bits con signo. Si quisiéramos, podríamos evitar las respuestas extrañas dadas en condiciones de desbordamiento programando este circuito de tabla de búsqueda para generar algo más en condiciones en las que sabemos que se producirá el desbordamiento (es decir, en cualquier caso donde la suma real excedería +7 o -8).

Una alternativa podría ser programar la ROM para que emita la cantidad 0111 (el valor positivo máximo que se puede representar con 4 bits con signo), o cualquier otro valor que determinemos que es más apropiado para la aplicación que el valor típico de "error" desbordado. que produciría un circuito sumador regular. Todo depende del programador decidir qué quiere que haga este circuito, porque ya no estamos limitados por las restricciones de las funciones de la puerta lógica.

Las posibilidades tampoco se limitan a las funciones lógicas personalizadas. Al agregar más líneas de dirección al chip ROM de 256 x 4, podemos expandir la tabla de búsqueda para incluir múltiples funciones:

Con dos líneas de dirección más, el chip ROM tendrá 4 veces más direcciones que antes (1024 en lugar de 256). Esta ROM podría programarse para que cuando A8 y A9 fueran bajos, los datos de salida representaran la suma de los dos números binarios de 4 bits ingresados ​​en las líneas de dirección A0 a A7, tal como lo hicimos con el circuito ROM anterior de 256 x 4.

Para las direcciones A8 =1 y A9 =0, podría programarse para generar la diferencia (resta) entre el primer número binario de 4 bits (A0 a A3) y el segundo número binario (A4 a A7). Para las direcciones A8 =0 y A9 =1, podríamos programar la ROM para generar la diferencia (resta) de los dos números en orden inverso (segundo - primero en lugar de primero - segundo), y finalmente, para las direcciones A8 =1 y A9 =1, la ROM podría programarse para comparar las dos entradas y generar una indicación de igualdad o desigualdad.

Lo que tendremos entonces es un dispositivo que puede realizar cuatro operaciones aritméticas diferentes en números binarios de 4 bits, todo "buscando" las respuestas programadas en él.

Si hubiéramos utilizado un chip ROM con más de dos líneas de dirección adicionales, podríamos programarlo con una variedad más amplia de funciones para realizar en las dos entradas de 4 bits. Hay una serie de operaciones peculiares de los datos binarios (como la comprobación de paridad o la operación OR exclusiva de bits) que podría resultar útil programar en una tabla de consulta de este tipo.

Los dispositivos como este, que pueden realizar una variedad de tareas aritméticas según lo dicta un código de entrada binario, se conocen como unidades lógicas aritméticas (ALU), y constituyen uno de los componentes esenciales de la tecnología informática. Aunque las ALU modernas se construyen con mayor frecuencia a partir de circuitos lógicos combinacionales (compuerta) muy complejos por razones de velocidad, debería ser reconfortante saber que la misma funcionalidad exacta puede duplicarse con un chip ROM "tonto" programado con la tabla de búsqueda adecuada. (s).

De hecho, este enfoque exacto fue utilizado por los ingenieros de IBM en 1959 con el desarrollo de las computadoras IBM 1401 y 1620, que usaban tablas de búsqueda para realizar sumas, en lugar de circuitos sumadores binarios. La máquina se conocía con cariño como "CADET", que significa " C y no A dd, D no es E ven T ry ".

Una aplicación muy común para las ROM de tablas de búsqueda es en los sistemas de control donde es necesario representar una función matemática personalizada. Esta aplicación se encuentra en sistemas de inyección de combustible controlados por computadora para motores de automóviles, donde la proporción adecuada de mezcla de aire / combustible para una operación eficiente y limpia cambia con varias variables ambientales y operativas.

Las pruebas realizadas en motores en laboratorios de investigación determinan cuáles son estas relaciones ideales para diferentes condiciones de carga del motor, temperatura del aire ambiente y presión atmosférica barométrica. Las variables se miden con transductores de sensor, sus salidas analógicas se convierten en señales digitales con circuitos A / D y las señales digitales paralelas que se utilizan como entradas de dirección a un chip ROM de alta capacidad programado para generar el valor digital óptimo para la relación aire / combustible para cualquiera de estas condiciones dadas.

A veces, las ROM se utilizan para proporcionar funciones de tabla de consulta unidimensionales, para "corregir" los valores de la señal digitalizada para que representen con mayor precisión su importancia en el mundo real. Un ejemplo de un dispositivo de este tipo es un transmisor de termopar , que mide la señal de milivoltaje generada por una unión de metales diferentes y emite una señal que se supone directamente corresponden a esa temperatura de unión.

Desafortunadamente, las uniones de termopar no tienen respuestas de temperatura / voltaje perfectamente lineales, por lo que la señal de voltaje sin procesar no es perfectamente proporcional a la temperatura. Al digitalizar la señal de voltaje (conversión A / D) y enviar ese valor digital a la dirección de una ROM programada con los valores de corrección necesarios, la programación de la ROM podría eliminar parte de la no linealidad de la relación temperatura-milivoltaje del termopar, de modo que la salida final del dispositivo sería más precisa.

El término de instrumentación popular para este tipo de tabla de búsqueda es un caracterizador digital. .

Otra aplicación para las tablas de búsqueda es la traducción de códigos especiales. Una ROM de 128 x 8, por ejemplo, podría usarse para traducir código ASCII de 7 bits a código EBCDIC de 8 bits:

Nuevamente, todo lo que se requiere es que el chip ROM esté correctamente programado con los datos necesarios para que cada entrada ASCII válida produzca un código de salida EBCDIC correspondiente.

HOJA DE TRABAJO RELACIONADA:


Tecnología Industrial

  1. Introducción a las mesas elevadoras
  2. Términos y conceptos de la memoria digital
  3. Memoria de solo lectura (ROM)
  4. Microprocesadores
  5. C Asignación de memoria dinámica
  6. Cervoz actualiza la memoria DDR4-2666 de próxima generación
  7. La IA puede usar la magnetización para lograr una eficiencia similar a la humana
  8. C - Gestión de memoria
  9. Memoria dinámica C++
  10. Java 10 - Asignación de montones
  11. Lógica de escalera 202:Organización de la memoria