jueves, 4 de abril de 2013

Bloques

Observe primero los bloques externos. Existe un cristal que se conecta en OSC1 y OSC2 para generar el CLOCK del sistema. Luego una señal de entrada llamada MCLR negada, que es un nombre de fantasía para nuestro conocido RESET (debido a que esa pata tiene un doble uso) y, por último, dos puertos paralelos de I/O (entrada o salida) llamados puerto A y puerto B. Una de las patas del puerto A puede ser utilizada como entrada de  interrupciones (esta pata especial hace que el microprocesador deje de realizar la tarea que estaba ejecutando y pase a realizar otra tarea alternativa; cuando la termina vuelve a su programa original).
Analicemos el bloque más grande (temporizadores), en éste observamos un grupo de bloques dedicados a mejorar el funcionamiento pero sin influir directamente en el flujo de señales. Vemos un temporizador de encendido, un temporizador de arranque del oscilador de CLOCK, un circuito  de  reset  y  un  circuito  llamado  de  vigilancia  o WATCHDOG.  Los  dos  primeros  bloques  procuran  un arranque ordenado para no producir una carga al mismo tiempo sobre la fuente. Por último, existe un circuito con un nombre curioso: “perro guardián”. Su función es estar vigilante el máximo de tiempo que tarda el microprocesador en completar su programa (o mejor sería decir, la  derivación más larga de su programa) y en caso de superar- se ese tiempo, provocar un reset automático porque el microprocesador se quedó trabado en alguna parte de su programa. También se dice que el microprocesador se quedó colgado o congelado.
Este  bloque  de  circuitos  no  trabaja  independiente- mente sino que requiere conexiones al exterior y al interior del dispositivo. Por ejemplo, no siempre son utilizados
y es el programa quien determina su utilización y además ajusta sus parámetros. Esto se realiza a través del bloque de control o decodificador de instrucciones.
Analicemos ahora la sección de arriba a la izquierda en donde observamos la memoria de programa, el contador de programa, el registro de instrucciones y la pila o STACK de 8 niveles. Cuando hablamos de registros nos referimos a pequeñas unidades de memoria transitoria, construida por lo general con un registro de desplaza- miento como los analizados en “el rey micro”. Son memorias volátiles que se utilizan para guardar información por un tiempo mínimo, con el fin de realizar una operación compleja de varios pasos.
El contador de programa es el responsable de que el microprocesador vaya analizando las instrucciones en orden ascendente. Este guarda el número de instrucción en el STACK y la instrucción misma la pasa al registro de instrucciones desde donde se envía al resto del microprocesador. El STACK es, en realidad, una pila de registros (en nuestro ejemplo hay 8), debido a que el programa puede tener derivaciones (en la jerga LOOPS, rulos o subprogramas). Cuando se termina de ejecutar un loop se debe volver al mismo punto del programa en donde se había producido la bifurcación y eso es posible porque ese número de instrucción quedó guardado en uno de los registros de la pila. Es común que un loop tenga, a su vez, un loop secundario y cuando se ejecuta ese loop secundario se debe volver al mismo punto del loop primario, eso se consigue con guardar ese número de instrucción del loop secundario en otro registro de la pila.
Analicemos ahora la sección inferior derecha. En ese sector se ubican los bloques responsables de efectuar operaciones matemáticas y lógicas binarias; recordemos que el nombre ALU proviene de Aritmetic Logic Unite(unidad arimética y lógica). En este sector es imprescindible utilizar un registro ya que una operación aritmética
o lógica siempre se efectúa entre dos números. Los números binarios que deben procesarse se toman de la memoria de datos, el primero se acumula en el registro de trabajo o registro W (de Work = trabajo) el segundo es el presente en el instante en que se invoca la memoria de datos. Como las operaciones pueden ser encadenadas
(cuando el resultado sirve como operando de la siguiente operación, tal como el caso de un producto) el registro W tiene un retorno a la ALU.
Vemos además que la ALU está comandada por el bloque MUX (MUltipleXador). En efecto, la ALU requiere que se le envíen números para procesar que le lleguen desde la memoria de datos, pero antes se la debe predisponer para que efectúe la operación requerida (comparación, rotación de dígitos, etc.).
El registro de estado o estatus colabora durante las operaciones matemáticas. Piense cómo opera Ud. para realizar una resta: primero ubica el primer número, luego el segundo y después comienza a analizar los bits menos significativos (las unidades), pero si el número de arriba es menor que el número de abajo, entonces toma prestado de la columna de las decenas, luego debe recordar esto porque el número de arriba en la columna de las decenas se redujo en una unidad. En realidad, aunque se trate de una operación entre dos números su ejecución re- quiere guardar lo que se llama acarreo en otro registro y éste no es otra cosa más que el registro STATUS.
El PIC16C84 contiene además de todo lo visto una memoria RAM de registros que puede ser llamada desde el registro de instrucción a través de un multiplexador de direcciones. Esta sección sólo se utiliza en desarrollos avanzados

Unidad de Control (CU)
Como su nombre lo indica, es la unidad que controla el funcionamiento del microprocesador a través del envío y recepción de señales de estado desde los demás componentes. Además, es la unidad encargada de la decodificación de las instrucciones en formato binario o también llamado código de máquina, lo que sumado a su acción de control provoca que esta unidad envíe ordenes hacia los distintos componentes internos gestionando la correcta operación del uP.
Unidad de Aritmética Lógica (ALU)
Es la unidad que realiza las operaciones matemáticas de suma y resta y las operaciones lógicas a nivel binario según la instrucción decodificada por la unidad de control. Como se puede intuir un uP no ejecuta multiplicaciones ni divisiones, sino que ejecuta sumas o restas iterativas para generar el resultado solicitado. Inclusive el testeo de un bit de estado requerido por la CU es realizado a través de suma o resta y su resultado enviado de vuelta para que la CU ordene alguna operación.

No hay comentarios:

Publicar un comentario