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

Microprocesadores

Los primeros pioneros de la informática, como Alan Turing y John Von Neumann, postularon que para que un dispositivo informático fuera realmente útil, no solo tenía que poder generar salidas específicas según lo dictado por instrucciones programadas, sino que también tenía que poder escribir datos. a la memoria y poder actuar sobre esos datos más adelante.

Tanto los pasos del programa como los datos procesados ​​debían residir en un "grupo" de memoria común, dando paso a la etiqueta de la computadora con programa almacenado . La máquina teórica de Turing utilizó una cinta de acceso secuencial, que almacenaría datos para que los leyera un circuito de control, el circuito de control volvería a escribir los datos en la cinta y / o movería la cinta a una nueva posición para leer más datos.

Las computadoras modernas usan dispositivos de memoria de acceso aleatorio en lugar de cintas de acceso secuencial para lograr esencialmente lo mismo, excepto con una mayor capacidad.

Un ejemplo útil es el de las primeras tecnologías de control automático de máquinas herramienta. Llamado bucle abierto o, a veces, solo NC (control numérico), estos sistemas de control dirigirían el movimiento de una máquina herramienta, como un torno o un molino, siguiendo instrucciones programadas como agujeros en cinta de papel.

La cinta correría en una dirección a través de un mecanismo de "lectura" y la máquina seguiría ciegamente las instrucciones de la cinta sin tener en cuenta ninguna otra condición. Si bien estos dispositivos eliminaron la carga de tener que tener un maquinista humano que dirigiera cada movimiento de la máquina herramienta, su utilidad era limitada.

Debido a que la máquina no veía el mundo real y solo seguía las instrucciones escritas en la cinta, no podía compensar las condiciones cambiantes, como la expansión del metal o el desgaste de los mecanismos.

Además, el programador de cinta tenía que ser muy consciente de la secuencia de instrucciones previas en el programa de la máquina para evitar circunstancias problemáticas (como decirle a la máquina herramienta que mueva la broca lateralmente mientras todavía está insertada en un agujero en el trabajo), ya que el dispositivo no tenía más memoria que la propia cinta, que era de solo lectura.

La actualización de un simple lector de cinta a un diseño de control de estado finito le dio al dispositivo una especie de memoria que podría usarse para realizar un seguimiento de lo que ya había hecho (a través de la retroalimentación de algunos de los bits de datos a los bits de dirección), por lo que al menos el programador podría decidir que el circuito recuerde los "estados" en los que podría estar la máquina herramienta (como "refrigerante encendido" o la posición de la herramienta). Sin embargo, todavía había margen de mejora.

El enfoque final es que el programa dé instrucciones que incluirían la escritura de nuevos datos en una memoria de lectura / escritura (RAM), que el programa podría recuperar y procesar fácilmente. De esta manera, el sistema de control podía registrar lo que había hecho y cualquier cambio de proceso detectable por el sensor, de la misma manera que un maquinista humano podría anotar notas o medidas en un bloc de notas para referencia futura en su trabajo. Esto es lo que se conoce como CNC o Control numérico de bucle cerrado .

Los ingenieros e informáticos esperaban con interés la posibilidad de construir dispositivos digitales que pudieran modificar su propia programación, al igual que el cerebro humano adapta la fuerza de las conexiones interneurales en función de las experiencias ambientales (es por eso que la retención de la memoria mejora con el estudio repetido, y el comportamiento se modifica a través de la retroalimentación consecuente).

Solo si el programa de la computadora estuviera almacenado en el mismo "grupo" de memoria grabable que los datos, esto sería práctico. Es interesante notar que la noción de un programa auto-modificable todavía se considera a la vanguardia de la informática.

La mayoría de la programación informática se basa en secuencias de instrucciones bastante fijas, siendo un campo de datos separado la única información que se modifica.

Para facilitar el enfoque del programa almacenado, necesitamos un dispositivo que sea mucho más complejo que el FSM simple, aunque se aplican muchos de los mismos principios. Primero, necesitamos memoria de lectura / escritura a la que se pueda acceder fácilmente:esto es bastante fácil de hacer.

Los chips de RAM estáticos o dinámicos funcionan bien y son económicos. En segundo lugar, necesitamos algún tipo de lógica para procesar los datos almacenados en la memoria. Debido a que las funciones aritméticas estándar y booleanas son tan útiles, podemos usar una Unidad Aritmética Lógica (ALU) como el ejemplo de ROM de tabla de búsqueda explorado anteriormente.

Finalmente, necesitamos un dispositivo que controle cómo y dónde fluyen los datos entre la memoria, la ALU y el mundo exterior. Esta llamada Unidad de control es la pieza más misteriosa del rompecabezas hasta el momento, ya que se compone de búferes de tres estados (para dirigir datos hacia y desde los buses) y una lógica de decodificación que interpreta ciertos códigos binarios como instrucciones para llevar a cabo.

Las instrucciones de muestra pueden ser algo como:"agregar el número almacenado en la dirección de memoria 0010 con el número almacenado en la dirección de memoria 1101" o "determinar la paridad de los datos en la dirección de memoria 0111". La elección de qué códigos binarios representan qué instrucciones para la unidad de control decodificar es en gran medida arbitraria, al igual que la elección de qué códigos binarios usar para representar las letras del alfabeto en el estándar ASCII fue en gran medida arbitraria.

Sin embargo, ASCII es ahora un estándar reconocido internacionalmente, mientras que los códigos de instrucción de la unidad de control son casi siempre específicos del fabricante.

Al juntar estos componentes (memoria de lectura / escritura, ALU y unidad de control) se obtiene un dispositivo digital que normalmente se denomina procesador . Si se utiliza una memoria mínima y todos los componentes necesarios están contenidos en un solo circuito integrado, se denomina microprocesador . Cuando se combina con los circuitos de soporte de control de bus necesarios, se conoce como una Unidad de procesamiento central o CPU.

El funcionamiento de la CPU se resume en el llamado ciclo de recuperación / ejecución . Obtener significa leer una instrucción de la memoria para que la unidad de control la decodifique. Un pequeño contador binario en la CPU (conocido como contador de programa o puntero de instrucción ) contiene el valor de la dirección donde se almacena la siguiente instrucción en la memoria principal.

La unidad de control envía este valor de dirección binaria a las líneas de dirección de la memoria principal, y la unidad de control lee la salida de datos de la memoria para enviarla a otro registro de retención. Si la instrucción obtenida requiere leer más datos de la memoria (por ejemplo, al sumar dos números, tenemos que leer los dos números que se van a sumar de la memoria principal o de alguna otra fuente), la unidad de control direcciona apropiadamente la ubicación de los datos solicitados y dirige la salida de datos a los registros ALU.

A continuación, la Unidad de Control ejecutaría la instrucción indicando a la ALU que hiciera lo que se le pidiera con los dos números, y dirigiría el resultado a otro registro llamado acumulador . La instrucción ahora ha sido "recuperada" y "ejecutada", por lo que la unidad de control ahora incrementa el contador del programa para pasar a la siguiente instrucción, y el ciclo se repite.

 Microprocesador (CPU) -------------------------------------- | ** Contador de programa ** | | (incrementa el valor de la dirección enviado a | | chip (s) de memoria externa para buscar | ==========> Bus de direcciones | la siguiente instrucción) | (a la memoria RAM) -------------------------------------- | ** Unidad de control ** | <=========> Bus de control | (decodifica las instrucciones leídas desde | (a todos los dispositivos que comparten | programa en memoria, habilita el flujo | buses de direcciones y / o datos; | de datos desde y hacia ALU, internos | arbitra todas las comunicaciones de bus | registros y dispositivos externos) | cationes) -------------------------------------- | ** Unidad aritmética lógica (ALU) ** | | (realiza todas las matemáticas | | cálculos y booleanos | | funciones) | -------------------------------------- | ** Registros ** | | (pequeñas memorias de lectura / escritura para | <=========> Bus de datos | tenencia de códigos de instrucción, | (de la memoria RAM y otros | códigos de error, datos ALU, etc; | dispositivos externos) | incluye el "acumulador") | -------------------------------------- 

Como se podría suponer, llevar a cabo incluso instrucciones sencillas es un proceso tedioso. Son necesarios varios pasos para que la unidad de control complete los procedimientos matemáticos más simples.

Esto es especialmente cierto para los procedimientos aritméticos como exponentes, que implican ejecuciones repetidas ("iteraciones") de funciones más simples. ¡Imagínese la gran cantidad de pasos necesarios dentro de la CPU para actualizar los bits de información para la pantalla gráfica en un juego de simulador de vuelo!

Lo único que hace que un proceso tan tedioso sea práctico es el hecho de que los circuitos del microprocesador pueden repetir el ciclo de búsqueda / ejecución con gran velocidad.

En algunos diseños de microprocesadores, hay programas mínimos almacenados dentro de una memoria ROM especial interna del dispositivo (llamada microcódigo ) que manejan todos los subpasos necesarios para realizar operaciones matemáticas más complejas. De esta manera, solo se debe leer una sola instrucción de la RAM del programa para realizar la tarea, y el programador no tiene que lidiar con tratar de decirle al microprocesador cómo hacer cada paso de un minuto. En esencia, es un procesador dentro de un procesador; un programa que se ejecuta dentro de un programa.


Tecnología Industrial

  1. Protocolos de red
  2. ¿Por qué digital?
  3. Términos y conceptos de la memoria digital
  4. Memoria de solo lectura (ROM)
  5. Datos del amplificador operacional
  6. Tipos de datos de Python
  7. La fabricación basada en datos está aquí
  8. C - Tipos de datos
  9. C - Uniones
  10. C - Gestión de memoria
  11. Poniendo tus datos a trabajar