fbpx
Wikipedia

Unidad aritmética lógica

En computación, la unidad aritmética lógica o unidad aritmético-lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que realiza operaciones aritméticas (suma, resta) y operaciones lógicas (SI, Y, O, NO) entre los valores de los argumentos (uno o dos)

Un típico símbolo esquemático para una ALU: A y B son operandos; R es la salida; F es la entrada de la unidad de control; D es un estado de la salida.

Por mucho, los circuitos electrónicos más complejos son los que están construidos dentro de los chips de microprocesadores modernos. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y potente. De hecho, un microprocesador moderno (y los mainframes) puede tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples ALU.

Muchos otros circuitos pueden contener en el interior una unidad aritmético lógica: unidades de procesamiento gráfico como las que están en las GPU modernas, FPU como el viejo coprocesador matemático 80387, y procesadores digitales de señales como los que se encuentran en tarjetas de sonido, lectoras de CD y los televisores de alta definición. Todos estos tienen en su interior varias ALU potentes y complejas.

Historia: Propuesta de Von Neumann

El matemático John von Neumann propuso el concepto de la ALU en 1945, cuando escribió un informe sobre las fundaciones para un nuevo computador llamado EDVAC (Electronic Discrete Variable Automatic Computer) (Computador Automático Variable Discreto Electrónico). Más adelante, en 1946, trabajó con sus colegas diseñando un computador para el Princeton Institute of Advanced Studies (IAS) (Instituto de Princeton de Estudios Avanzados). El IAS computer se convirtió en el prototipo para muchos computadores posteriores. En esta propuesta, von Neumann esbozó lo que él creyó sería necesario en su máquina, incluyendo una ALU.

Von Neumann explicó que una ALU es un requisito fundamental para una computadora porque necesita efectuar operaciones matemáticas básicas: adición, sustracción, multiplicación, y división.[1]​ Por lo tanto, creyó que era "razonable que una computadora debería contener los órganos especializados para estas operaciones".[1]

Sistemas numéricos

Una ALU debe procesar números usando el mismo formato que el resto del circuito digital. Para los procesadores modernos, este formato casi siempre es la representación del número binario de complemento a dos. Las primeras computadoras usaron una amplia variedad de sistemas de numeración, incluyendo complemento a uno, formato signo-magnitud, e incluso verdaderos sistemas decimales, con diez tubos por dígito.

Las ALU para cada uno de estos sistemas numéricos mostraban diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación más simple, para el circuito electrónico de la ALU, para calcular adiciones, sustracciones, etc.

Introducción práctica

 
Una ALU simple de 2 bits que hace operaciones de AND, OR, XOR y adición (ver explicación en el texto).

La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas, Registro Acumulador y un Registro de Estados, conjunto de registros que hacen posible la realización de cada una de las operaciones.

La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma datos de los registros del procesador. Estos datos son procesados y los resultados de esta operación se almacenan en los registros de salida de la ALU. Otros mecanismos mueven datos entre estos registros y la memoria.[2]

Una unidad de control controla a la ALU, al ajustar los circuitos que le señala a la ALU qué operaciones realizar.

Detalle

En la imagen se detalla una ALU de 2 bits con dos entradas (operandos) llamadas A y B: A[0] y B[0] corresponden al bit menos significativo y A[1] y B[1] corresponden al bit más significativo.

Cada bit de la ALU se procesa de manera idéntica, con la excepción del direccionamiento del bit del acarreo. El manejo de este bit es explicado más adelante.

Las entradas A y B van hacia las cuatro puertas de la derecha, de arriba abajo, XOR, AND, OR. Las tres primeras puertas realizan las operaciones XOR, AND, y OR sobre los datos A y B. La última puerta XOR es la puerta inicial de un sumador completo.

El paso final de las operaciones sobre cada bit es la multiplexación de los datos. La entrada OP de 3 bits, OP[0], OP[1] y OP[2] (desde la unidad de control) determina cual de las funciones se van a realizar:

  • OP = 000 → XOR
  • OP = 001 → AND
  • OP = 010 → OR
  • OP = 011 → Adición

Claramente se ve que las otras cuatro entradas del multiplexor están libres para otras operaciones (sustracción, multiplicación, división, NOT A, NOT B, etc). Aunque OP[2] actualmente no es usada en este montaje (a pesar de estar incluida y conectada), ésta sería usada en el momento de realizar otras operaciones además de las 4 operaciones listadas arriba.

Los datos de acarreo de entrada y acarreo de salida, llamados flags (banderas), son típicamente conectados a algún tipo de registro de estado.

Operaciones simples

La mayoría de las ALU pueden realizar las siguientes operaciones:

Operaciones complejas

Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más costosa será la ALU, más espacio usará en el procesador, y más energía disipará, etc.

Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al procesador (u otros circuitos) una ALU suficientemente potente para calcular rápido, pero no de una complejidad de tal calibre que haga una ALU económicamente prohibitiva. Imagina que necesitas calcular, digamos, la raíz cuadrada de un número; el ingeniero digital examinará las opciones siguientes para implementar esta operación:

  1. Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número en un solo paso. Esto es llamado cálculo en un solo ciclo de reloj.
  2. Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el algoritmo que algunos hemos aprendido en la escuela). Esto es llamado cálculo iterativo, y generalmente confía en el control de una unidad de control compleja con microcódigo incorporado.
  3. Diseñar una ALU simple en el procesador, y vender un procesador separado, especializado y costoso, que el cliente pueda instalar adicional al procesador, y que implementa una de las opciones de arriba. Esto es llamado coprocesador o unidad de coma flotante.
  4. Emular la existencia del coprocesador, es decir, siempre que un programa intente realizar el cálculo de la raíz cuadrada, hacer que el procesador compruebe si hay presente un coprocesador y usarlo si lo hay; si no hay uno, interrumpir el proceso del programa e invocar al sistema operativo para realizar el cálculo de la raíz cuadrada por medio de un cierto algoritmo de software. Esto es llamado emulación por software.
  5. Decir a los programadores que no existe el coprocesador y no hay emulación, así que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por software. Esto es realizado por bibliotecas de software.

Las opciones superiores van de la más rápida y más costosa a la más lenta y económica. Por lo tanto, mientras que incluso la computadora más simple puede calcular la fórmula más complicada, las computadoras más simples generalmente tomarán un tiempo largo porque varios de los pasos para calcular la fórmula implicarán las opciones #3, #4 y #5 de arriba.

Los procesadores complejos como el Pentium IV y el AMD Athlon 64 implementan la opción #1 para las operaciones más complejas y la más lenta #2 para las operaciones extremadamente complejas. Eso es posible por la capacidad de construir ALU muy complejas en estos procesadores.

Entradas y salidas

Las entradas a la ALU son los datos en los que se harán las operaciones (llamados operandos) y un código desde la unidad de control indicando qué operación realizar. Su salida es el resultado del cómputo de la operación.

En muchos diseños la ALU también toma o genera como entradas o salidas un conjunto de códigos de condición desde o hacia un registro de estado. Estos códigos son usados para indicar casos como acarreo entrante o saliente, overflow, división por cero, etc.[2]

ALU vs. FPU

Una unidad de coma flotante, Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de coma flotante, que es mucho más complicada que la representación de complemento a dos usada comúnmente en una ALU. Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos, incluyendo algunas ALU internas.

Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritméticas en formatos de número entero (como complemento a dos y BCD), mientras que los circuitos que calculan en formatos más complejos como coma flotante, números complejos, etc., reciben generalmente un nombre más específico, como FPU.

Véase también

Referencias

  1. Stallings page 19
  2. Stallings page 290-291
  • Stallings, William (2006). Computer Organization & Architecture: Designing for Performance 7th ed. Pearson Prentice Hall. ISBN 0-13-185644-8. 

Enlaces externos

  • A Simulator of Complex ALU in MATLAB
  •   Datos: Q192903
  •   Multimedia: Computer arithmetic

unidad, aritmética, lógica, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, noviembre, 2013, para, otros, usos, este, término, véase, desambiguación, computación, unidad, aritmética, lógica, unidad, arit. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 15 de noviembre de 2013 Para otros usos de este termino vease Alu desambiguacion En computacion la unidad aritmetica logica o unidad aritmetico logica tambien conocida como ALU siglas en ingles de arithmetic logic unit es un circuito digital que realiza operaciones aritmeticas suma resta y operaciones logicas SI Y O NO entre los valores de los argumentos uno o dos Un tipico simbolo esquematico para una ALU A y B son operandos R es la salida F es la entrada de la unidad de control D es un estado de la salida Por mucho los circuitos electronicos mas complejos son los que estan construidos dentro de los chips de microprocesadores modernos Por lo tanto estos procesadores tienen dentro de ellos un ALU muy complejo y potente De hecho un microprocesador moderno y los mainframes puede tener multiples nucleos cada nucleo con multiples unidades de ejecucion cada una de ellas con multiples ALU Muchos otros circuitos pueden contener en el interior una unidad aritmetico logica unidades de procesamiento grafico como las que estan en las GPU modernas FPU como el viejo coprocesador matematico 80387 y procesadores digitales de senales como los que se encuentran en tarjetas de sonido lectoras de CD y los televisores de alta definicion Todos estos tienen en su interior varias ALU potentes y complejas Indice 1 Historia Propuesta de Von Neumann 2 Sistemas numericos 3 Introduccion practica 3 1 Detalle 4 Operaciones simples 5 Operaciones complejas 6 Entradas y salidas 7 ALU vs FPU 8 Vease tambien 9 Referencias 10 Enlaces externosHistoria Propuesta de Von Neumann EditarEl matematico John von Neumann propuso el concepto de la ALU en 1945 cuando escribio un informe sobre las fundaciones para un nuevo computador llamado EDVAC Electronic Discrete Variable Automatic Computer Computador Automatico Variable Discreto Electronico Mas adelante en 1946 trabajo con sus colegas disenando un computador para el Princeton Institute of Advanced Studies IAS Instituto de Princeton de Estudios Avanzados El IAS computer se convirtio en el prototipo para muchos computadores posteriores En esta propuesta von Neumann esbozo lo que el creyo seria necesario en su maquina incluyendo una ALU Von Neumann explico que una ALU es un requisito fundamental para una computadora porque necesita efectuar operaciones matematicas basicas adicion sustraccion multiplicacion y division 1 Por lo tanto creyo que era razonable que una computadora deberia contener los organos especializados para estas operaciones 1 Sistemas numericos EditarUna ALU debe procesar numeros usando el mismo formato que el resto del circuito digital Para los procesadores modernos este formato casi siempre es la representacion del numero binario de complemento a dos Las primeras computadoras usaron una amplia variedad de sistemas de numeracion incluyendo complemento a uno formato signo magnitud e incluso verdaderos sistemas decimales con diez tubos por digito Las ALU para cada uno de estos sistemas numericos mostraban diferentes disenos y esto influencio la preferencia actual por el complemento a dos debido a que esta es la representacion mas simple para el circuito electronico de la ALU para calcular adiciones sustracciones etc Introduccion practica Editar Una ALU simple de 2 bits que hace operaciones de AND OR XOR y adicion ver explicacion en el texto La ALU se compone basicamente de Circuito Operacional Registros de Entradas Registro Acumulador y un Registro de Estados conjunto de registros que hacen posible la realizacion de cada una de las operaciones La mayoria de las acciones de la computadora son realizadas por la ALU La ALU toma datos de los registros del procesador Estos datos son procesados y los resultados de esta operacion se almacenan en los registros de salida de la ALU Otros mecanismos mueven datos entre estos registros y la memoria 2 Una unidad de control controla a la ALU al ajustar los circuitos que le senala a la ALU que operaciones realizar Detalle Editar En la imagen se detalla una ALU de 2 bits con dos entradas operandos llamadas A y B A 0 y B 0 corresponden al bit menos significativo y A 1 y B 1 corresponden al bit mas significativo Cada bit de la ALU se procesa de manera identica con la excepcion del direccionamiento del bit del acarreo El manejo de este bit es explicado mas adelante Las entradas A y B van hacia las cuatro puertas de la derecha de arriba abajo XOR AND OR Las tres primeras puertas realizan las operaciones XOR AND y OR sobre los datos A y B La ultima puerta XOR es la puerta inicial de un sumador completo El paso final de las operaciones sobre cada bit es la multiplexacion de los datos La entrada OP de 3 bits OP 0 OP 1 y OP 2 desde la unidad de control determina cual de las funciones se van a realizar OP 000 XOR OP 001 AND OP 010 OR OP 011 AdicionClaramente se ve que las otras cuatro entradas del multiplexor estan libres para otras operaciones sustraccion multiplicacion division NOT A NOT B etc Aunque OP 2 actualmente no es usada en este montaje a pesar de estar incluida y conectada esta seria usada en el momento de realizar otras operaciones ademas de las 4 operaciones listadas arriba Los datos de acarreo de entrada y acarreo de salida llamados flags banderas son tipicamente conectados a algun tipo de registro de estado Operaciones simples EditarLa mayoria de las ALU pueden realizar las siguientes operaciones Operaciones aritmeticas de numeros enteros adicion sustraccion y a veces multiplicacion y division aunque esto es mas complejo Operacion logica de bits AND NOT OR XOR XNOR Operacion de desplazamiento de bits Desplazan o rotan una palabra en un numero especifico de bits hacia la izquierda o la derecha con o sin extension de signo Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2 Operaciones complejas EditarUn ingeniero puede disenar una ALU para calcular cualquier operacion sin importar lo compleja que sea el problema es que cuanto mas compleja sea la operacion tanto mas costosa sera la ALU mas espacio usara en el procesador y mas energia disipara etc Por lo tanto los ingenieros siempre calculan un compromiso para proporcionar al procesador u otros circuitos una ALU suficientemente potente para calcular rapido pero no de una complejidad de tal calibre que haga una ALU economicamente prohibitiva Imagina que necesitas calcular digamos la raiz cuadrada de un numero el ingeniero digital examinara las opciones siguientes para implementar esta operacion Disenar una ALU muy compleja que calcule la raiz cuadrada de cualquier numero en un solo paso Esto es llamado calculo en un solo ciclo de reloj Disenar una ALU compleja que calcule la raiz cuadrada con varios pasos como el algoritmo que algunos hemos aprendido en la escuela Esto es llamado calculo iterativo y generalmente confia en el control de una unidad de control compleja con microcodigo incorporado Disenar una ALU simple en el procesador y vender un procesador separado especializado y costoso que el cliente pueda instalar adicional al procesador y que implementa una de las opciones de arriba Esto es llamado coprocesador o unidad de coma flotante Emular la existencia del coprocesador es decir siempre que un programa intente realizar el calculo de la raiz cuadrada hacer que el procesador compruebe si hay presente un coprocesador y usarlo si lo hay si no hay uno interrumpir el proceso del programa e invocar al sistema operativo para realizar el calculo de la raiz cuadrada por medio de un cierto algoritmo de software Esto es llamado emulacion por software Decir a los programadores que no existe el coprocesador y no hay emulacion asi que tendran que escribir sus propios algoritmos para calcular raices cuadradas por software Esto es realizado por bibliotecas de software Las opciones superiores van de la mas rapida y mas costosa a la mas lenta y economica Por lo tanto mientras que incluso la computadora mas simple puede calcular la formula mas complicada las computadoras mas simples generalmente tomaran un tiempo largo porque varios de los pasos para calcular la formula implicaran las opciones 3 4 y 5 de arriba Los procesadores complejos como el Pentium IV y el AMD Athlon 64 implementan la opcion 1 para las operaciones mas complejas y la mas lenta 2 para las operaciones extremadamente complejas Eso es posible por la capacidad de construir ALU muy complejas en estos procesadores Entradas y salidas EditarLas entradas a la ALU son los datos en los que se haran las operaciones llamados operandos y un codigo desde la unidad de control indicando que operacion realizar Su salida es el resultado del computo de la operacion En muchos disenos la ALU tambien toma o genera como entradas o salidas un conjunto de codigos de condicion desde o hacia un registro de estado Estos codigos son usados para indicar casos como acarreo entrante o saliente overflow division por cero etc 2 ALU vs FPU EditarUna unidad de coma flotante Floating Point Unit FPU tambien realiza operaciones aritmeticas entre dos valores pero lo hace para numeros en representacion de coma flotante que es mucho mas complicada que la representacion de complemento a dos usada comunmente en una ALU Para hacer estos calculos una FPU tiene incorporados varios circuitos complejos incluyendo algunas ALU internas Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritmeticas en formatos de numero entero como complemento a dos y BCD mientras que los circuitos que calculan en formatos mas complejos como coma flotante numeros complejos etc reciben generalmente un nombre mas especifico como FPU Vease tambien EditarAritmetica de saturacion Arquitectura de CPU Circuito digital CPU Microcodigo Microprocesador Registro hardware Serie 7400 chip 74181 Sumador Unidad de control Unidad de ejecucion Unidad de gestion de memoria Unidad de proceso Unidad de punto flotanteReferencias Editar a b Stallings page 19 a b Stallings page 290 291 Stallings William 2006 Computer Organization amp Architecture Designing for Performance 7th ed Pearson Prentice Hall ISBN 0 13 185644 8 Enlaces externos EditarA Simulator of Complex ALU in MATLAB Datos Q192903 Multimedia Computer arithmetic Obtenido de https es wikipedia org w index php title Unidad aritmetica logica amp oldid 133682536, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos