30 may 2022

ELECTRÓNICA BÁSICA - Microprocesadores (XXVII)

          

Si habéis llegado hasta aquí, es evidente que este campo os apasiona. Ya hemos visto los componentes pasivos y activos, y hemos visto los Circuitos Integrados, Electrónica Analógica y Digital. Vamos a dar un paso más allá, entrando en el campo de los Microprocesadores Digitales.



INTRODUCCIÓN.
En general, el término “microprocesador”, hace referencia al dispositivo principal dentro de las computadoras digitales, es decir, al elemento encargado de realizar los cálculos necesarios para que podamos escribir una carta, editar una fotografía, administrar nóminas o comunicarse en tiempo real con alguna persona al otro lado del mundo, ver una película o controlar complejos procesos industriales. Este esto nos hace pensar en un dispositivo con un enorme poder de cálculo, bastante costoso, que consume mucha potencia y al alcance de pocas personas.

Pero actualmente esta realidad es muy distinta. En nuestro hogar, existe una enorme cantidad de microprocesadores realizando diversas tareas, que hacen la vida diaria más sencilla. Los podemos encontrar en nuestro televisor, en el equipo de sonido, en el reproductor de DVD, en los teléfonos móviles, en el mando a distancia o en un reloj de pulsera.

Y es que esta tecnología se ha abaratado hasta tal punto que muchas aplicaciones que antes requerían el uso de varios dispositivos individuales, ahora se pueden realizar con más facilidad y de manera más económica con la aplicación de un microprocesador, o de su variante, un microcontrolador.





EL MICROPROCESADOR Y SUS INICIOS.
historia de los microprocesadores se debe afortunadamente, a una larga sucesión de acontecimientos. Diseñado por Federico Faggin, e iniciado por dos grandes empresas, Intel y Busicom, a principios de 1971. La primera, conocida por ser fabricante de circuitos integrados y la segunda, por fabricar de calculadoras electrónicas. Entre ambas empresas, desarrollaron el primer microprocesador de la historia, el Intel 4004, un dispositivo de tan solo 4 bits que servía como “cerebro” de toda una línea de calculadoras de escritorio.



 


Seguramente, los diseñadores de este dispositivo modesto, que contaba en su interior con “solo” unos 2300 transistores y una velocidad de proceso de 740KHz, nunca imaginaron que en unas cuantas décadas se tendrían microprocesadores, procesando instrucciones a miles de millones de ciclos por segundo, y que en su interior contendrían cientos de millones de transistores trabajando.



En la imagen superior, se puede ver la vista al  microscopio de los 2.300 transistores del microprocesador Intel 4004.

En las siguientes imágenes, podemos ver el esquema electrónico, diagrama de bloques y la correspondencia de las patillas del 4004.









ESTRUCTURA DEL MICROPROCESADOR.
Los microprocesadores, son circuitos integrados, que contiene algunos o todos los elementos necesarios para conformar una (o más) "unidad central de procesamiento" UCP, o CPU. 
Actualmente, una CPU está compuesta por millones de transistores, integrados en una misma placa de silicio.

Lo que hace tan especiales a los microprocesadores es precisamente su versatilidad, por su capacidad de manejar de diversas maneras una serie de datos binarios, realizando una gran cantidad de operaciones lógicas basadas en un programa preestablecido (Software), y buscando con ello obtener un resultado final.



En el mismo encapsulado se encuentra un bloque de memoria de programación, donde se puede almacenar el programa que se desee ejecutar en el microprocesador, un bloque de memoria RAM para guardar datos temporales, una serie de puertos I/O (entrada-salida) para conectar directamente señales externas al microcontrolador y para que éste pueda comunicarse con los elementos a su alrededor, un generador de reloj interno, una serie de temporizadores, bloques de comunicación, etc.

Se debe distinguir entre el concepto de Procesador, que es un concepto de Hardware, con el concepto de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU.

Desde el punto de vista lógico y funcional, el microprocesador está compuesto básicamente por: varios registros, una Unidad de control, una Unidad aritmético-lógica y dependiendo del procesador, puede contener una unidad en coma flotante.
El modo de funcionamiento de la Unidad de Control se puede resumir en:
  • La Unidad de Control captura la instrucción de la memoria
  • Esta es decodificada
  • Y la ejecuta, volviendo al paso 1, para capturar la siguiente instrucción en memoria.
Es decir, la CPU sigue una ejecución secuencial de las instrucciones, que se colocaban de forma lineal en la memoria, con la excepción de alteración de dicha linealidad sólo por la existencia de instrucciones de desvíos (condicionales e incondicionales).

Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentación. 

La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo). Dicho reloj es básicamente un circuito oscilador basado en un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos en un segundo. Este reloj, en la actualidad, genera miles de MHz.

Dentro de la CPU, se pueden distinguir los siguientes componentes principales:
  • Una memoria principal. Almacenaba tanto datos como instrucciones. 
  • Una unidad de cálculo para operaciones aritméticas y lógicas. (ALU). 
  • Una unidad de control.
  • Un equipamiento de entrada/salida. Para interactuar con el mundo exterior.


En lo que respecta a las instrucciones, se pueden agrupar en los siguientes tipos:
  • Transferencia de Dato
  • Desvíos Incondicionales
  • Desvíos Condicionales
  • Aritméticas y Lógicas


CPU.
La unidad central de proceso, UCP o CPU (por el acrónimo en inglés Central Processing Unit) o simplemente el procesador, es el componente en una computadora digital que interpreta las instrucciones contenidas en los programas de la computadora, procesa los datos almacenados o adquiridos para luego entregar algún tipo de resultado. 

Las CPU proporcionan la característica fundamental de una computadora digital, que es la programabilidad y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida.

Su estructura interna está diseñada para proporcionar al dispositivo una flexibilidad que no tienen otro tipo de componentes, con procesos o funciones concretas, por lo que se puede utilizar el mismo microprocesador en un computador, en una consola de videojuegos, en el control de un automóvil, o en el panel de un proceso industrial, tan solo modificando el programa que ejecuta.

Es el procesador propiamente dicho, y es el encargado de realizar todas las tareas elementales para el que fue diseñado. Entre las tareas que realiza se encuentra:
  • Realizar las instrucciones del Repertorio Básico asignado
  • Ordenar el trabajo de la Unidad Aritmético Lógica
  • Generar las líneas de control que regirán el funcionamiento de cada uno de los bloques integrantes del sistema.
  • Procesar la información organizada en las memorias respectivas.
  • Arbitrar el trabajo de los periféricos asociados.


ALU.
O Unidad Aritmético Lógica, es la unidad encargada de llevar a cabo todas las operaciones aritméticas y lógicas que realizará el computador en forma de instrucciones directas. Los elementos utilizados para el diseño de esta unidad, son generalmente los Arreglos Lógicos Programables. Esto se debe a que las operaciones a implementar, son eminentemente funciones combinacionales, por lo tanto se prestan perfectamente para ser implementados por este sistema, de esta manera se obtiene una implementación óptima, respecto al tiempo de ejecución y a la minimización de la electrónica utilizada.

Las operaciones más comunes que se realizan en sistemas de procesadores tipo industriales, son:
  • Suma booleana (OR).
  • Multiplicación booleana (AND).
  • Complementación (INV)
  • Suma Exclusiva booleana (EXOR)
  • Suma binaria.
  • Resta binaria.
  • Comparación.


MEMORIA DE PROGRAMA.
Como indicamos anteriormente, el procesador es capaz de realizar tareas elementales (denominadas instrucciones) en un orden preestablecido y de forma ordenada. Dicha sucesión es lo que se denomina Programa. Estas instrucciones, deberán estar codificadas en código binario, y almacenadas en algún sistema que permita su posterior ejecución. Este lugar se lo denomina, Memoria de Programa.

Los chips que soportarán dicha información (programas) deberán ser dispositivos de solo lectura, (ver sección ROM, PROM, EPROM, etc). La característica que se rescata de ellas es tan solo para su elección, por lo que dichas memorias, una vez grabadas, no se borra ni se pierde su información, a pesa de cortar la energía. Por lo tanto son las adecuadas para utilizar en sistemas de control, y que además entran en funcionamiento una vez que se restablezca la alimentación.

Por lo general, se graban en simuladores donde se depura el programa a ejecutar, y posteriormente se colocan en los zócalos del computador para definir la función a realizar.
Para su correcta elección se debe tener en cuenta que las velocidades de acceso de lectura, sean compatibles con las de lectura del microprocesador. Esto se debe a que los tiempos característicos de acceso al microprocesador, no pueden ser variados por el usuario (programador). Por lo tanto en caso de diferir, las velocidades de las memorias deberán ser mayores que las del microprocesador.



MEMORIA DE DATOS.
En la ejecución del programa que deberá efectuar la CPU, es normal que se generen datos transitorios como “set points”, estrada de datos, resultados de operaciones aritméticas y/o  lógicas, protección de datos a ser utilizados por otros programas, etc. Toda esta información, que el procesador maneja de forma habitual debe ser almacenada en sistemas que permitan ser grabados y leídos temporalmente, y compatibles con la ejecución del programa. Dichos sistema se denomina Memoria de datos.

Los chips que soportarán toda esta información deberán ser de Lectura y Escritura, y de Acceso Aleatorio. La característica de lectura/escritura es obvia para la función definida, y el acceso aleatorio, es debido a que el tiempo de acceso a los datos (tanto lectura como escritura) debe ser independiente a la ubicación de los mismos dentro de la memoria. Es por ello que los  chips empleados son los denominados RAM.

La forma de codificación empleada es la Hexadecimal. Por lo tanto teniendo en cuenta que los micros de 8 bits disponen de un campo direccionable de 64 Kbytes, podemos decir que la dirección inicial es la 0000H y la final la FFFFH.

La característica que rige el lugar de implementación de la Memoria de Programa, es el valor con el que el Contador de Programa (PC o Program Counter) se carga en el momento de efectuarse un reset (inicialización) del procesador. Esta operación de reset, se efectúa cada vez que se inicia el sistema, y entre las tareas que tiene a su cargo es cargar al Contador de Programa, un valor determinado, para que a partir de este, se comience la ejecución del programa. La posterior ubicación de la Memoria de Datos, dependerá de las zonas libres y del tipo de decodificación que se aplicará a la detección de esta memoria como a los periféricos asociados al sistema.



PERIFÉRICOS, ENLACE Y TIPOS.
Todo este conjunto de sistemas, sería inútil de no tener la posibilidad de comunicarse con el exterior. Este “enlace” o “unión” se efectúa mediante dispositivos creados para ese fin, denominados enlace a Periféricos.

Debido a que dichos periféricos pueden ser  de diversas características, no solamente se encuentra la división clásica de periféricos de entradas y de salida, sino que también depende del nivel de procesamiento con que transmite o recibe las señales, y se necesitará un sistema intermedio para adaptar dicha información y que pueda ser posteriormente procesada. Este sistema se  denomina Enlace a Periféricos.

Parte de las funciones de éste, se encuentra el ubicar (o direccionar) los periféricos dentro del campo direccionable del procesador. Esta tarea se implementa mediante la correcta utilización de decodificadores que asignarán direcciones a cada sistema. Por otro lado todo esto debe responder a las líneas de control que la CPU genera, a fin de que la información generada pueda ser leída en los momentos exactos que la CPU dispone.

Tras la dirección de la comunicación del sistema con el exterior, la información que es procesada suele tener una fuente externa de información, y el resultado del proceso ha de ser entregada de nuevo al exterior. Estos sistemas son los denominados Periféricos de Entrada y de Salida.

Existe una gran cantidad de formas de cómo la información puede ser administrada al sistema, y por ende hay gran cantidad de periféricos distintos. Tan solo a modo de ejemplo de periféricos de entrada, podemos indicar:
  • Puertos de entrada de un bit.
  • Puertos de entrada paralelo.
  • Teclados elementales.
  • Teclados ASCII.
  • Puertos Serie.
  • Kits Multimedia
  • Etc.
A pesar de la gran diferencia funcional que existe entre ellos, todos tienen en común, sin importar la complejidad del dato generado, que todos son datos binarios.

De forma similar a los periféricos de entrada, se cumple con los periféricos de salida. Estos, en definitiva, reciben información binaria, la cual adaptarán a la forma de salida para lo que fueron diseñados. Entre los periféricos de salida, se pueden nombrar:
  • Puertos de salida de un bit
  • Puertos de salida paralelo
  • Puertos de salida serie
  • Display alfanuméricos 
  • Pantallas 
  • Kits Multimedia
  • Impresoras
  • Etc.


LÍNEAS DE DATOS, CONTROL Y DIRECCIONES.
Los microprocesadores transfieren datos e instrucciones entre la CPU y la memoria (o E/S) a través de líneas bus o de datos bidireccional.

La mayoría de los microprocesadores se caracterizan porque tienen todas o algunas de las siguientes líneas de control: 
Líneas de reloj. 
Líneas de lectura / escritura. 
Líneas de entrada / salida. 
Líneas de interrupción. 
Líneas de reinicio. 
Líneas de control de bus 
Líneas de status del ciclo

Y por último, el bus de direcciones, permite direccionar memorias. Cuanto mayor sea, permite direccionar memorias mayores. Por ejemplo, el 8080, utiliza un bus de dirección de 16 bits, lo  que permite direccionar solamente 216 o 64K de memoria.



REGISTROS.
Los registros internos, permiten almacenar temporalmente información para el correcto funcionamiento de la CPU. Podemos nombrar los siguientes registros:
  • Contador de programa (PC) es el registro que contiene la dirección de la siguiente instrucción del programa, como se vio en la Memoria de Datos.
  • Acumulador, es el registro o registros asociados a las operaciones de la ALU y en ocasiones, a las operaciones de E/S.
  • El registro de status está en todos los microprocesadores. Generalmente, están asociados a operaciones de la ALU y son utilizados por instrucciones de bifurcación.
  • Los registros de propósito general pueden utilizarse para almacenar datos temporalmente o para que contengan una dirección
  • El registro índice se utiliza para que contenga la dirección de un operando cuando se utiliza el modo de direccionamiento indexado
  • Puntero de pila (SP), es un registro especializado que sigue la pista de la siguiente posición de memoria disponible en la pila. La pila es un área reservada de la RAM utilizada para almacenamiento temporal de datos, direcciones de vuelta y contenido de registros.




En la próxima publicación, veremos como ejemplo un uP 8080.

Y aquí tienes la lista de publicaciones anteriores, por si os perdisteis alguna:
Electrónica Básica, Conceptos Básicos (I)  
Electrónica Básica, Circuitos Básicos (II)
Electrónica Básica, Resistencias (III)
Electrónica Básica, Condensadores (IV)
Electrónica Básica, Inductores (V)
Electrónica Básica, Diodos (VI)
Electrónica Básica, Transistores (VII)
Electrónica Básica, Circuitos Integrados (VIII)
Electrónica Básica, Amplificador Operacional (IX)
Electrónica Básica, Amplificadores de Audio (X)
Electrónica Básica, Temporizador 555 (XI)
Electrónica Básica, Conmutadores (XII)
Electrónica Básica, Comparadores (XIII)
Electrónica Básica, Electrónica Digital (XIV)
Electrónica Básica, Puertas Lógicas (XV)
Electrónica Básica, Funciones Lógicas (XVI)
Electrónica Básica, Contadores (XXVI).


Esperamos que os haya gustado esta publicación. Si es así, no dudes en compartirla.

© Se permite reproducción total o parcial de este contenido, siempre y cuando se reconozca la fuente de información utilizada y se incluya el enlace a este artículo.

Equipo Xanur©2022.

No hay comentarios:

Publicar un comentario