Diferencia entre revisiones de «Unidad aritmético lógica»

De El Museo de los 8 bits
Saltar a: navegación, buscar
 
Línea 1: Línea 1:
[[Image:ALU symbol.svg|thumb|300px|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]]
+
[[Imagen:ALU symbol.svg|thumb|300px|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]]
  
 
La '''Unidad Aritmético Lógica''' ('''UAL'''), o '''Arithmetic Logic Unit''' ('''ALU'''), es un [[circuito digital]] que calcula operaciones aritméticas (como adición, substracción, etc.) y operaciones lógicas (como OR, NOT, XOR, etc.), entre dos números.
 
La '''Unidad Aritmético Lógica''' ('''UAL'''), o '''Arithmetic Logic Unit''' ('''ALU'''), es un [[circuito digital]] que calcula operaciones aritméticas (como adición, substracción, etc.) y operaciones lógicas (como OR, NOT, XOR, etc.), entre dos números.
  
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc...
+
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc.
  
Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de [[microprocesador]]es modernos como el [[Intel Pentium|Pentium]]. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los [[mainframe]]s) pueden tener múltiples [[Multi núcleo|núcleos]], cada núcleo con múltiples [[unidad de ejecución|unidades de ejecución]], cada una de ellas con múltiples ALU.
+
Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de [[microprocesador]]es modernos como el [[Intel Core Duo]]. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los [[mainframe]]s) pueden tener múltiples [[Multi núcleo|núcleos]], cada núcleo con múltiples [[unidad de ejecución|unidades de ejecución]], cada una de ellas con múltiples ALU.
  
Muchos otros circuitos pueden contener en el interior ALU: [[GPU]] como los que están en las [[tarjeta gráfica|tarjetas gráficas]] [[NVidia]] y [[ATI]], [[FPU]] como el viejo [[coprocesador]] numérico [[Intel 80387|80387]], y [[procesador digital de señal|procesadores digitales de señales]] como los que se encuentran en tarjetas de sonido [[Sound Blaster]], lectoras de CD y las TV de [[alta definición]]. Todos éstos tienen adentro varias ALU poderosas y complejas.
+
Muchos otros circuitos pueden contener en el interior ALU: [[GPU]] como los que están en las [[tarjeta gráfica|tarjetas gráficas]] [[NVIDIA]] y [[ATI Technologies|ATI]], [[FPU]] como el viejo [[coprocesador]] numérico [[Intel 80387|80387]], y [[procesador digital de señal|procesadores digitales de señales]] como los que se encuentran en tarjetas de sonido [[Sound Blaster]], lectoras de CD y las TV de [[alta definición]]. Todos éstos tienen adentro varias ALU poderosas y complejas.
  
==Historia: Propuesta de Von Neumann==
+
== Historia: [[Arquitectura Eckert-Mauchly|Propuesta de Eckert-Mauchly]] ==
 +
[[John Presper Eckert]] y [[John William Mauchly]]
 +
idearon el concepto de la ALU en [[1945]] que fue injustamente acreditado al matemático [[John von Neumann]] al publicarse el informe en el que von Neumann recopilaba los trabajos 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 la propuesta, von Neumann describió lo que el equipo creyó sería necesario en su máquina, incluyendo una ALU.
  
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 la 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 una necesidad para una computadora porque está garantizado que una computadora tendrá que computar operaciones matemáticas básicas, incluyendo adición, sustracción, multiplicación, y división.<ref>Stallings page 19</ref> Por lo tanto, creyó que era "razonable que (la computadora) debe contener los órganos especializados para estas operaciones".<ref>Stallings page 19</ref>
  
Von Neumann indicó que una ALU es una necesidad para una computadora porque está garantizado que una computadora tendrá que computar operaciones matemáticas básicas, incluyendo adición, sustracción, multiplicación, y división <ref>Stallings page 19</ref>. Por lo tanto, creyó que era "razonable que (la computadora) debe contener los órganos especializados para estas operaciones" <ref>Stallings page 19</ref>.
+
== Sistemas numéricos ==
 
+
==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 de [[Sistema binario|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 [[sistema decimal|sistemas decimales]], con diez tubos por dígito.
 
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 de [[Sistema binario|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 [[sistema decimal|sistemas decimales]], con diez tubos por dígito.
  
Las ALUs para cada uno de estos [[sistema numérico|sistemas numéricos]] tenían diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación que hace más fácil, para el circuito electrónico de la ALU, calcular adiciones y sustracciones,etc.
+
Las ALUs para cada uno de estos [[sistema de numeración|sistemas numéricos]] tenían diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación que hace más fácil, para el circuito electrónico de la ALU, calcular adiciones y sustracciones, etc.
  
==Introducción práctica==
+
== Introducción práctica ==
  
[[Image:2-bit ALU.png|thumb|400px|Una ALU simple de 2 bits que hace operaciones de [[AND]], [[OR]], [[XOR]] y adición (haga click en la imagen para una explicación)]]
+
[[Imagen:2-bit ALU.png|thumb|400px|Una ALU simple de 2 bits que hace operaciones de [[AND]], [[OR]], [[XOR]] y adición (haga click en la imagen para una explicación)]]
  
La ALU 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 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 [[Registro (hardware)|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 <ref>Stallings page 290-291</ref>.
+
La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma datos de los [[Registro (hardware)|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.<ref>Stallings page 290-291</ref>
  
 
Una [[unidad de control]] controla a la ALU, al ajustar los circuitos que le dicen a la ALU qué operaciones realizar.
 
Una [[unidad de control]] controla a la ALU, al ajustar los circuitos que le dicen a la ALU qué operaciones realizar.
  
==Operaciones simples==
+
== Operaciones simples ==
  
 
La mayoría de las ALU pueden realizar las siguientes operaciones:
 
La mayoría de las ALU pueden realizar las siguientes operaciones:
Línea 39: Línea 39:
 
* [[Operación de desplazamiento|Operaciones de desplazamiento]] de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin [[extensión de signo]]). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
 
* [[Operación de desplazamiento|Operaciones de desplazamiento]] de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin [[extensión de signo]]). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
  
==Operaciones complejas==
+
== 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...
+
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 [[CPU|procesador]] (u otros circuitos) un ALU suficientemente poderoso para hacerlo rápido, pero no tan complejo para llegar a ser prohibitivo. Imagine que usted necesitan calcular, digamos, la raíz cuadrada de un número; el ingeniero digital examinará las opciones siguientes para implementar esta operación:
+
Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al [[CPU|procesador]] (u otros circuitos) un ALU suficientemente poderoso para hacerlo rápido, pero no tan complejo para llegar a ser prohibitivo. Imagine que usted necesita calcular, digamos, la raíz cuadrada de un número; el ingeniero digital examinará las opciones siguientes para implementar esta operación:
  
 
# 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'''.
 
# 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'''.
Línea 55: Línea 55:
 
Los procesadores poderosos como el [[Intel Pentium 4|Pentium IV]] y el [[AMD64]] 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.
 
Los procesadores poderosos como el [[Intel Pentium 4|Pentium IV]] y el [[AMD64]] 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==
+
== Entradas y salidas ==
  
 
Las entradas a la ALU son los datos en los que se harán las operaciones (llamados [[operando]]s) 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.
 
Las entradas a la ALU son los datos en los que se harán las operaciones (llamados [[operando]]s) 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. <ref>Stallings page 290-291</ref>
+
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.<ref>Stallings page 290-291</ref>
  
==ALU vs. FPU==
+
== ALU vs. FPU ==
  
Una [[unidad de punto flotante]], Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de [[punto flotante]], que es mucho más complicada que la representación de [[complemento a dos]] usada en una típica ALU. Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos, incluyendo algunas ALU internas.
+
Una [[unidad de punto flotante]], Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de [[punto flotante]], que es mucho más complicada que la representación de [[complemento a dos]] usada en una típica ALU. Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos, no 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 [[punto flotante]], [[número complejo|números complejos]], etc., reciben generalmente un nombre más ilustre.rty
+
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 [[punto flotante]], [[número complejo|números complejos]], etc., reciben generalmente un nombre más ilustre
  
==Véase también==
+
== Véase también ==
 
*[[Serie 7400]] (chip # 74181)
 
*[[Serie 7400]] (chip # 74181)
 
*[[Sumador]]
 
*[[Sumador]]
Línea 74: Línea 74:
 
*[[división (electrónica)]]
 
*[[división (electrónica)]]
  
==Notas==
+
== Notas ==
 
<!--This article uses the Cite.php citation mechanism. If you would like more information on how to add footnotes to this article, please see http://meta.wikimedia.org/wiki/Cite/Cite.php -->
 
<!--This article uses the Cite.php citation mechanism. If you would like more information on how to add footnotes to this article, please see http://meta.wikimedia.org/wiki/Cite/Cite.php -->
 
<div class="references-small">
 
<div class="references-small">
Línea 80: Línea 80:
 
</div>
 
</div>
  
==Referencias==
+
== Referencias ==
 
*{{cite book | first=William| last=Stallings| year=2006| title=Computer Organization & Architecture: Designing for Performance 7th ed| publisher=Pearson Prentice Hall| id=ISBN 0-13-185644-8| url=http://williamstallings.com/COA/COA7e.html| authorlink=William Stallings}}
 
*{{cite book | first=William| last=Stallings| year=2006| title=Computer Organization & Architecture: Designing for Performance 7th ed| publisher=Pearson Prentice Hall| id=ISBN 0-13-185644-8| url=http://williamstallings.com/COA/COA7e.html| authorlink=William Stallings}}
  
==Enlaces externos==
+
== Enlaces externos ==
 
+
 
*[http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12762&objectType=FILE A Simulator of Complex ALU in MATLAB]
 
*[http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12762&objectType=FILE A Simulator of Complex ALU in MATLAB]
  
 
{{wp}}
 
{{wp}}
 
 
[[Categoría:Arquitectura de ordenadores]]
 
[[Categoría:Arquitectura de ordenadores]]
 
[[Categoría:Unidad Central de Proceso]]
 
[[Categoría:Unidad Central de Proceso]]
Línea 94: Línea 92:
 
[[Categoría:Circuitos digitales]]
 
[[Categoría:Circuitos digitales]]
  
 +
[[ar:وحدة الحساب والمنطق]]
 +
[[ca:Unitat aritmètico lògica]]
 
[[cs:Aritmeticko-logická jednotka]]
 
[[cs:Aritmeticko-logická jednotka]]
 
[[de:Arithmetisch-logische Einheit]]
 
[[de:Arithmetisch-logische Einheit]]
 
[[en:Arithmetic logic unit]]
 
[[en:Arithmetic logic unit]]
[[es:Unidad aritmético lógica]]
 
 
[[et:Aritmeetika-loogikaplokk]]
 
[[et:Aritmeetika-loogikaplokk]]
 
[[eu:Unitate aritmetiko-logiko]]
 
[[eu:Unitate aritmetiko-logiko]]
Línea 105: Línea 104:
 
[[hu:Aritmetikai logikai egység]]
 
[[hu:Aritmetikai logikai egység]]
 
[[id:ALU]]
 
[[id:ALU]]
[[it:Arithmetic Logic Unit]]
+
[[it:Unità aritmetica e logica]]
 
[[ja:演算論理装置]]
 
[[ja:演算論理装置]]
 
[[ko:산술 논리 장치]]
 
[[ko:산술 논리 장치]]
 +
[[lb:Aritmethic Logic Unit]]
 +
[[lv:Aritmētiski loģiskā ierīce]]
 
[[nl:Arithmetic Logic Unit]]
 
[[nl:Arithmetic Logic Unit]]
 +
[[no:Aritmetisk logisk enhet]]
 
[[pl:Jednostka arytmetyczno-logiczna]]
 
[[pl:Jednostka arytmetyczno-logiczna]]
 
[[pt:Unidade lógica e aritmética]]
 
[[pt:Unidade lógica e aritmética]]
 
[[ru:Арифметическо-логическое устройство]]
 
[[ru:Арифметическо-логическое устройство]]
 +
[[simple:Arithmetic logic unit]]
 
[[sk:Aritmeticko-logická jednotka]]
 
[[sk:Aritmeticko-logická jednotka]]
 +
[[th:หน่วยคำนวณและตรรกะ]]
 +
[[tr:Aritmetik mantık birimi]]
 
[[zh:算術邏輯單元]]
 
[[zh:算術邏輯單元]]

Revisión de 20:20 24 nov 2008

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

La Unidad Aritmético Lógica (UAL), o Arithmetic Logic Unit (ALU), es un circuito digital que calcula operaciones aritméticas (como adición, substracción, etc.) y operaciones lógicas (como OR, NOT, XOR, etc.), entre dos números.

Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc.

Por mucho, los más complejos circuitos electrónicos son los que están construidos dentro de los chips de microprocesadores modernos como el Intel Core Duo. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los mainframes) pueden 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 ALU: GPU como los que están en las tarjetas gráficas NVIDIA y ATI, FPU como el viejo coprocesador numérico 80387, y procesadores digitales de señales como los que se encuentran en tarjetas de sonido Sound Blaster, lectoras de CD y las TV de alta definición. Todos éstos tienen adentro varias ALU poderosas y complejas.

Historia: Propuesta de Eckert-Mauchly

John Presper Eckert y John William Mauchly idearon el concepto de la ALU en 1945 que fue injustamente acreditado al matemático John von Neumann al publicarse el informe en el que von Neumann recopilaba los trabajos 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 la propuesta, von Neumann describió lo que el equipo creyó sería necesario en su máquina, incluyendo una ALU.

Von Neumann explicó que una ALU es una necesidad para una computadora porque está garantizado que una computadora tendrá que computar operaciones matemáticas básicas, incluyendo adición, sustracción, multiplicación, y división.[1] Por lo tanto, creyó que era "razonable que (la computadora) debe contener los órganos especializados para estas operaciones".[2]

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 de 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 ALUs para cada uno de estos sistemas numéricos tenían diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación que hace más fácil, para el circuito electrónico de la ALU, calcular adiciones y sustracciones, etc.

Introducción práctica

Una ALU simple de 2 bits que hace operaciones de AND, OR, XOR y adición (haga click en la imagen para una explicación)

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.[3]

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

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) un ALU suficientemente poderoso para hacerlo rápido, pero no tan complejo para llegar a ser prohibitivo. Imagine que usted necesita 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 aprendimos en la escuela). Esto es llamado cálculo interactivo, 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.
  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 realizadado por bibliotecas de software.

Las opciones arriba 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 poderosos como el Pentium IV y el AMD64 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.[4]

ALU vs. FPU

Una unidad de punto flotante, Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de punto flotante, que es mucho más complicada que la representación de complemento a dos usada en una típica ALU. Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos, no 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 punto flotante, números complejos, etc., reciben generalmente un nombre más ilustre

Véase también

Notas

  1. Stallings page 19
  2. Stallings page 19
  3. Stallings page 290-291
  4. Stallings page 290-291

Referencias


Enlaces externos

Atribución

Wikipedia-logo-es.png Este artículo proviene originalmente de Wikipedia
que lo licencia simultáneamente bajo las licencias

Creative Commons Reconocimiento - CompartirIgual 3.0
y la licencia de documentación libre GNU v.1.2 y posteriores
El Museo de los 8 bits lo integra en su wiki bajo cc-by-sa-3.0

Creative Commons License
GNU head