Está en la página 1de 15

UNIVERSIDAD ESPAÑA

INGENIERÍA EN TECNOLOGÍAS Y SISTEMAS DE


INFORMACIÓN

SEPTIMO CUATRIMESTRE

MICROCONTROLADORES

UNIDAD LOGICA ARITMETICA (ALU)

CATEDRÁTICO: ING. HECTOR QUIÑONEZ NAVA

ALUMNO: CÉSAR ALEJANDRO CARROLA ACOSTA

Durango, Dgo; Semptiembre de 2020


CONTENIDO

INTRODUCCIÓN

UNIDAD LOGICA ARITMETICA (ALU)

CONCLUSIÓN
INTRODUCCIÓN

El procesador después de acceder a memoria principal para copiar la instrucción en


el registro de instrucción, inicia la secuencia de acciones propias de cada
instrucción. Muchas de estas instrucciones consisten en la transformación de datos
mediante la realización de operaciones lógicas o aritméticas. Para realizar estas
operaciones existe un bloque especial de la CPU denominado Unidad Aritmético
Lógica (ALU).
Gobernada por la unidad de control, la ALU tiene como entradas os datos
almacenados en los registros internos de la CPU. Adicionalmente, la ALU tiene
como salida los indicadores de estado que señalan las características del resultado
de la última operación (por ejemplo, si el resultado ha sido cero, negativo, etc.).
La ALU a su vez está compuesta por diversos circuitos especializados en realizar
una transformación particular de los datos, típicamente una operación aritmética o
lógica. Como ejemplo una ALU puede disponer de una unidad de suma/resta de
enteros, una unidad de multiplicación de enteros, una unidad de división de enteros
y su equivalente en punto flotante.
Características de la unidad lógica aritmética (ALU)
Según Mandado, Mariño, & Lago (El procesador después de acceder a memoria
principal para copiar la instrucción en el registro de instrucción, inicia la secuencia
de acciones propias de cada instrucción. Muchas de estas instrucciones consisten
en la transformación de datos mediante la realización de operaciones lógicas o
aritméticas. Para realizar estas operaciones existe un bloque especial de la CPU
denominado Unidad Aritmético Lógica (ALU).

Gobernada por la unidad de control, la ALU tiene como entradas os datos


almacenados en los registros internos de la CPU. Adicionalmente, la ALU tiene
como salida los indicadores de estado que señalan las características del resultado
de la última operación (por ejemplo, si el resultado ha sido cero, negativo, etc.).

La ALU a su vez está compuesta por diversos circuitos especializados en realizar


una transformación particular de los datos, típicamente una operación aritmética o
lógica. Como ejemplo una ALU puede disponer de una unidad de suma/resta de
enteros, una unidad de multiplicación de enteros, una unidad de división de enteros
y su equivalente en punto flotante.

Estos módulos en los que se divide la ALU se pueden clasificar en función de


diversos parámetros.

Características de la ALU

Según Floy (2007). Módulo combinacional o secuencial. En el caso de módulos


combinacionales se tiene un circuito digital combinacional, sin elementos de
memoria. Si se modifica uno de los operandos el resultado se modifica con un
retraso que vendrá dado por la suma de los retrasos de todas las puertas que
intervienen en la operación.

Número de operandos del módulo. Hay módulos que solamente emplean un


operando, como es el de la negación, pero habitualmente la mayoría de los módulos
realizan operaciones que utilizan dos operadores, como son la suma, división o AND
lógico.
Incorporación de paralelismo al módulo. Si el módulo realiza la operación bit a
bit se dirá que es serie, sin embargo, si se transforma toda la palabra
simultáneamente se dirá que es paralelo. El primero es de tipo secuencial y requiere
tantas fases como dígitos tengan los operandos, mientras que el segundo es de tipo
paralelo.

Operación aritmética o lógica. La operación realizada puede ser de tipo lógico


(AND, OR, etc). O de tipo aritmético (suma, multiplicación, etc).

Integración en la CPU. Puede ocurrir que parte de los módulos de la ALU estén
integrados en la CPU (típicamente los que realizan operaciones lógicas o
aritméticas con números enteros), y otros sean externos a la CPU debido a que son
muy complejos y ocupan mucha superficie de silicio. Es el caso de los
coprocesadores matemáticos que se utilizaban en procesadores.

Un ejemplo de módulo ALU es el sumador elemental de 1 bit. Este operador es


aritmético y utiliza dos operandos. Suponiendo que una palabra tiene una anchura
de 8 bits, si se conectan 8 sumadores elementales se obtiene un sumador paralelo.
Sin embargo, si la unidad de control suministra de manera secuencial los bits a una
sola unidad de suma elemental y almacena el resultado parcial en un registro, se
trata de un sumador serie.

La principal ventaja del operador serie es que es más pequeño y por tanto ocupa
menos superficie de silicio. La desventaja de este módulo es que es más lento que
el operador paralelo. Cabe destacar cómo el operador serie ocupará más de 1/8
parte del módulo paralelo, al incluir también la UC módulos que secuencian las
operaciones.
Estructura y operaciones de la ALU

La ALU está formada por un conjunto de operadores, un conjunto de registros que


van a almacenar los operandos fuente y resultados parciales y unos biestables de
estado. El órgano secuenciador (si hay operadores secuenciales) se integran en la
UC.

Las operaciones más complejas no se implementan con circuitos combinacionales,


ya que requerirían una gran superficie de silicio. Será la unidad de control la que se
encarga de generar la ejecución secuencial de los algoritmos de las operaciones
complejas. Un ejemplo típico son las operaciones de multiplicación y división. Este
tipo de operaciones en procesadores pequeños no suele implementarse con lógica
combinacional dentro del operador, sino que su ejecución se basa en sumas y
restas elementales realizadas en módulos combinacionales.

Las ALUs suelen tener varios operadores que pueden funcionales


independientemente de los demás y en algunos casos en paralelo. El banco de
registros de propósito general sirve para almacenar resultados de operaciones
intermedias, típicamente una ALU de tamaño intermedio suele tener de 8 a 16
registros. En algunas CPU existe un registro especial llamado acumulador que
recibe los resultados del operador y ciertas operaciones sólo pueden realizarse
sobre el contenido del acumulador.

El registro de estado del procesador consta de una serie de indicadores o flags que
almacenan información sobre el resultado de la última operación realizada.

Las operaciones más frecuentes que implementan los operadores de la ALU son
las siguientes:

Desplazamientos: lógicos, circulares y aritméticos.

Operaciones lógicas: NOT, AND, OR, XOR.

Operaciones aritméticas: suma, resta, multiplicación y división.

Estas operaciones se pueden ejecutar de diversas maneras, dependiendo del


paralelismo que implemente en cada una de ellas. A mayor paralelismo, mayor
rapidez; pero habrá más unidades funcionales, con lo que la ALU ocupará más
superficie de silicio y por tanto será más cara.

Las operaciones básicas y más frecuentes (suma, resta, desplazamientos y


operaciones lógicas) siempre se implementan con una unidad combinacional
específica. Los procesadores más potentes incorporan unidades específicas para
realizar las operaciones de multiplicación y división en coma flotante, quedando para
coprocesadores aritméticos y programas específicos operaciones como raíces y
operaciones trigonométricas.

OPERACIONES DE LA ALU

Una unidad aritmética y lógica (ALU) es un circuito combinacional que desarrolla


microoperaciones lógicas y aritméticas de dos operandos A y B de n bits. Las
operaciones llevadas a cabo por la ALU son controladas por un grupo de entradas
de selección de función.

Se debe diseñar una ALU de 4 bits con 3 entradas de selección de función: modo
M, entradas de selección S0 y S1. La entrada M selecciona entre una operación
lógica (M=0) y una aritmética (M=1). Las funciones desarrolladas por la ALU se
muestran en la siguiente tabla. Cuando se está realizando una resta, asumiremos
que el resultado es positivo ( p. ej. A>B cuando se hace A-B).
Con el fin de hacer el diseño más manejable se divide el problema en módulos. En
lugar de diseñar una ALU de 4 bits como un solo circuito, se implementará primero
una ALU de 1 bit (bit-slice) para con base en ella montar el circuito de 4 bits. Esta
unidad tendría 6 entradas y dos salidas, lo cual la haría bastante tediosa para su
diseño por tablas. Una alternativa está en separar esta unidad de 1 bit en dos
módulos: uno lógico y uno aritmético, y realizar el diseño de cada módulo en forma
independiente.

Ancho de palabra de datos

la clasificación de los DSP se realiza con base en el tipo de aritmética que utilizan
para realizar los cálculos matemáticos dividiéndose en DSP de punto fijo y DSP de
punto flotante. Dentro de cada grupo se clasifican, además, según el ancho de su
palabra de datos.

El CPU de los procesadores de punto fijo requiere un hardware más simple que el
de punto flotante. Esto se traduce en una reducción del costo unitario del DSP,
haciéndolos idóneos para aplicaciones de gran consumo que no requieran alta
resolución. Esta simplicidad del CPU también reduce el consumo del dispositivo y
su tamaño, un aspecto sumamente interesante para aplicaciones portátiles como
los teléfonos móviles. La utilización de un CPU poco sofisticado permite liberar área
del CI para incluir bancos internos de memoria RAM de mayor tamaño o incluso
bancos EPROM o FLASH, donde grabar el código de la aplicación. Además, suelen
disponer de un conjunto de periféricos más variado. De hecho, los procesadores
destinados a aplicaciones específicas (control de motores, sistemas de tratamiento
de voz, etc.), son procesadores de punto fijo.

La anchura de la palabra de datos puede ser de 16, 24 o 32 bits. Esto tiene una
importante repercusión en el costo, ya que influye poderosamente en el tamaño y
número de terminales del dispositivo, y en los bancos de memoria externa
conectados al mismo. Por lo tanto, los diseñadores intentan utilizar el CI con el
menor ancho de palabra que su aplicación pueda tolerar.

Los DSP de punto flotante son dispositivos de escala alta, cuyo CPU dispone de
hardware específico para operar con datos de punto flotante. La anchura de la
palabra con frecuencia es de 32 bits; si bien el uso de bits de guarda les permite
operar en el interior del CPU con datos de 40 bits, esto no es obstáculo para que
también puedan operar con datos en punto fijo. El área ocupada por el CPU en este
tipo de DSP es mayor que en el caso de los de los de punto fijo. Por este motivo, la
variedad de los periféricos que integran es menor, tratándose en la mayoría de los
caos de periféricos (puertos serie y paralelo, DMA) utilizados en la comunicación
con elementos externos (convertidores A/D y D/A). Los DSP más sofisticados
disponen de puertos de comunicación que permiten el montaje de redes para un
procesamiento en paralelo.

Cada tipo de procesador es ideal para un ámbito de aplicaciones. Los procesadores


de 16 bits de punto fijo son adecuados para sistemas de voz, como teléfonos, ya
que trabajan con el intervalo relativamente estrecho de las frecuencias de sonido.
Las aplicaciones estero de alta fidelidad tienen un intervalo de frecuencias más
amplio, de forma general, los requerimientos mínimos para este tipo de tareas
serían un ADC de 16 bits y un procesador de 24 bits de punto fijo, de esta forma se
proporciona un intervalo suficientemente amplio para obtener la señal de alta
fidelidad y para poder manipular los valores que se obtienen al procesar la señal. El
procesamiento de imágenes, gráficos en 3D y simulaciones científicas tienen un
intervalo dinámico mucho mas amplio, por lo que se precisa de DSP de 32 bits con
aritmética de punto flotante.

Unidad Aritmética y Lógica (ALU).

Este bloque esta destinado a realizar las operaciones aritméticas y lógicas del
microprocesador, es decir, es la unidad que hace todo el procesamiento. Esta
unidad además de realizar las operaciones aritméticas y lógicas, también realiza el
cálculo de las direcciones para el manejo de bloques de datos o arreglos en la
memoria de datos. La ALU es de 16 bits y esta implementada con un esquema de
acarreo anticipado por generación y propagación para tener un tiempo de respuesta
de 2 retardos de propagación de forma constante para la obtención de los acarreos.
En la ilustración 1 se muestra el bloque de la ALU.

Como se puede observar en la ilustración 1, la ALU maneja las siguientes señales:

 Dos Buses de entrada de 16 bits. Estos buses proporcionan los operandos a


usar en las operaciones aritméticas y lógicas. Los operandos pueden
provenir del archivo de registros, la pila o de la parte baja del formato de
instrucción (I[11-0]).
 Un Bus de salida de 16 bits. En este bus se coloca el resultado de la
operación aritmética o lógica.
 Un Bus ALUOP de entrada de 4 bits. Es un bus que permite seleccionar la
operación aritmética y lógica a realizar por la ALU.
 Un Bus de banderas de salida de 4 bits. En este bus se mandan los valores
de las banderas Z (zero), C (carry), N (negative) y OV (overflow) que genera
cada operación en la ALU.

De cada operación se obtienen los valores de las banderas de acarreo (C), negativo
(N), cero (Z) y desbordamiento (OV). Estas banderas son conocidas como banderas
de estado puesto que proporcionan el estado de la ALU después de cada operación.
Estas banderas son almacenadas en el registro de banderas o registro de estado
para poder ser usadas con las instrucciones de comparación y brincos
condicionales.

Cada una de las banderas de la ALU tiene las siguientes funciones:

Bandera Z (zero). Esta bandera se pone en 1 cuando los 16 bits del resultado de
la ALU son cero, en caso contrario tiene 0. Esto se logra con una compuerta NOR
que tiene como entradas todos los bits de resultado.

Bandera C (carry). Esta bandera muestra el valor que tiene el último acarreo de la
ALU, en el caso de una ALU de 16 bits, el acarreo C16 es la bandera C.

Bandera N (negative). Esta bandera muestra el valor que tiene el bit más
significativo (bit de signo) del bus del resultado, en el caso de una ALU de 16 bits,
el bit 15 de resultado es la bandera N. Cuando N tiene 1 significa que el resultado
es negativo, de lo contrario es positivo.

Bandera OV (overflow). Esta bandera es usada para operaciones aritméticas con


signo. Cuando OV = 1 marca un desbordamiento en el resultado, lo que significa
que el resultado no se puede representar con los bits que tenemos para el resultado.
Esto se logra con una compuerta XOR entre los dos acarreos más significativos, en
el caso de una ALU de 16 bits, la entrada de la compuerta XOR es C16 y C15.

Las operaciones aritméticas y lógicas que se pueden realizar dependen de la


arquitectura diseñada de la ALU. En la ilustración 2, podemos observar la
arquitectura para un bit del ALU del ESCOMIPS.
Terminales del microcontrolador y sus respectivas funciones:

El PIC16C84 está fabricado en tecnología CMOS, consume baja potencia, y es


completamente estático (si el reloj se detiene, los datos de la memoria no se
pierden). El 16F84 tiene las mismas características, pero posee memoria FLASH,
esto hace que tenga menor consumo de energía, y como si fuera poco tiene mayor
capacidad de almacenamiento.

El encapsulado más común para estos microcontrolador es el DIP (Dual In line Pin)
de 18 pines, y utiliza un reloj de 4 MHz (cristal de cuarzo). Sin embargo, hay otros
tipos de encapsulado, por ejemplo, el encapsulado tipo surface mount (montaje
superficial) es mucho + pequeño.

Ésta sería la disposición de sus terminales y sus respectivos nombres

Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas


bidireccionales de E/S (definidas por programación). Es capaz de entregar niveles
TTL cuando la alimentación aplicada en VDD es de 5V ± 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa como
entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede
reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco
voltios). Cuando se usa como salida digital se comporta como colector abierto; por
lo tanto se debe poner una resistencia de pull-Up (resistencia externa conectada a
un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenderás mejor). Como
salida, la lógica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1"
lógico. Este pin como salida no puede manejar cargas como fuente, sólo en el modo
sumidero.

Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada de Reset


(master clear) si está a nivel bajo y también es la habilitación de la tensión de
programación cuando se está programando el dispositivo. Cuando su tensión es la
de VDD el PIC funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación.


La tensión de alimentación de un PIC está comprendida entre 2V y 6V aunque se
recomienda no sobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho


líneas bidireccionales de E/S (definidas por programación). Pueden manejar niveles
TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede
programarse además como entrada de interrupciones externas INT. Los pines RB4
a RB7 pueden programarse para responder a interrupciones por cambio de estado.
Las patas RB6 y RB7 se corresponden con las líneas de entrada de reloj y entrada
de datos respectivamente, cuando está en modo programación del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la


entrada externa de reloj y salida de oscilador a cristal respectivamente.
CONCLUSIÓN

ALU Es un circuito digital que resuelve o calcula operaciones aritméticas (como


suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos
números.

Una unidad aritmética lógica puede realizar un conjunto de operaciones


aritméticas básicas y un conjunto de operaciones lógicas, a través de líneas de
selección.
En informática, la Unidad Aritmética Lógica forma parte del circuito digital del
procesador indefectiblemente, teniendo además presencia en otros Circuitos
Electrónicos que necesiten realizar estas operaciones.

También podría gustarte