Sei sulla pagina 1di 8

T7.

Procesador y aritmética del computador


Por:
1. Bustamante Ruiz, Edwin Rolando
2. Chilon Tingal, Willy
3. Cuzco Ramos, Manuel Edilberto
4. Ñontol Estacio, Kevin Manuel
5. Velasquez Pereyra, Kevin Ewler

Martes 16, octubre 2018


1. La Unidad Aritmético-Lógica
Para hablar sobre la Unidad de Procesamiento, tanto para su organización como su para estructura
se necesitaría hablar de todos sus componentes a la vez, así que, en esta parte del estudio del
procesador, nos centraremos en su Unidad Aritmético-Lógica (ALU). De esta unidad, se hablará
sobre su organización y estructura en esta primera parte y su funcionamiento en lo posterior. Así
pues, empezaremos dando unos conceptos claves. En cuanto a su organización, la Unidad
Aritmético-Lógica es la parte del computador que calcula operaciones simples y complejas. Entre
las simples están las operaciones aritméticas (adición, sustracción, multiplicación y división),
operaciones lógicas (AND, NOT, OR, XOR, XNOR) y 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). Y entre las complejas están por ejemplo el cálculo de una raíz
cuadrada. Para lo cual utiliza algoritmos y una representación de números en formato binario.
En cuanto a su estructura, la Unidad Aritmético-Lógica 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 y resta de
enteros, una unidad de multiplicación de enteros, una unidad de división de enteros y su
equivalente en coma flotante (FPU, que es un término utilizado generalmente por los ingenieros
cuando se realizan operaciones en formatos más complejos en coma flotante). La ALU también
está controlada por la unidad de control y tiene como entradas los datos almacenados en los
registros internos de la CPU. Luego, 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.). Dicho de otro modo, la ALU se basa en el uso de dispositivos lógicos
digitales sencillos, los cuales permiten la entrada de datos y la salida de estos, pero luego de pasar
por un proceso del tipo que sea.
La forma en la que se interconecta la Unidad Aritmético-Lógica con el resto del procesador es de
la siguiente manera. Primero los datos se presentan a la ALU en registros y es en registros mismos
en donde se almacenan los resultados de las operaciones producidas por la ALU. Estos registros
son posiciones de memoria temporal internas al procesador y están conectados a la ALU. De una
manera gráfica hemos hecho una descripción de cómo es que funciona la ALU y es como sigue.
La ALU está en la parte del centro, por el lado izquierdo están las entradas de datos hacia la ALU
que se presentan en registros, y por ese mismo lado está la Unidad de control, la cual se encarga
de darle los recursos necesarios a esta, con el fin de que realice la tarea encargada. Y por el lado
derecho de la ALU, están los registros, que como se mencionó antes, los datos después de ser
procesados salen en forma de registros también, y de ese mismo lado se puede apreciar a los
indicadores (flags), los cuales se pueden activar como resultado de una operación.
Antes de pasar al funcionamiento de la ALU, se dará un pequeño ejemplo. Un módulo de la 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. Ahora, se pasarán a explicar las funciones que tiene la ALU a profundidad, tratando de
obtener la mayor información posible.
2. Representación digital de números enteros
Un entero {…, B2, B1, 0, 1, 2, …} se representa internamente en el computador, como cualquier
otra información, mediante un vector de n bits: X= xnB1xnB2…x2x1x0 con xi Є {0,1} Definir
una representación consiste en encontrar una tabla o una expresión aritmética que, para cada
posible vector de bits, nos indique el número que representa. No puede ser la misma para enteros
que para naturales (la que conocemos), porque ésta es solo para positivos. Hay muchas formas de
representación. Se busca una con la que sea sencillo y rápido hacer operaciones con los números.
En las entradas y salidas los números son tratados y codificados como caracteres de un texto, de
tal manera que si por ejemplo se teclea un 7, el 7 se codifica como si fuese una letra, una “a” por
ejemplo, sin tener en cuenta su naturaleza de número, esta codificación es inapropiada para
realizar operaciones aritméticas. Si un dato se va a utilizar en un programa como un número para
operar matemáticamente con él se efectúa una transformación entre códigos binarios,
obteniéndose una representación fundamentada en el sistema de numeración de base 2, y, por
tanto apta para realizar operaciones aritméticas. Si por ejemplo supongamos que queremos
representar dos números y sumarlos, cuando nosotros tecleamos este número, se utiliza una
notación de entrada y salida como puede ser el código ASCII. Los datos de tipo entero se pueden
representar en binario de muy diversas formas, las más importantes son: los enteros sin signo en
los que se almacena el valor absoluto del número, luego tenemos otra representación que es
enteros con signo, dentro de la cual hay fundamentalmente 4 variantes signo y magnitud,
complemento uno, complemento dos y representación sesgada, y, luego tenemos otro tipo de
representación en binario llamado datos enteros BCD.
Los datos numéricos se almacenan en un número, n, predeterminado de bits así los números
enteros se suelen representar con 8, 16 o 32 bits. Las distintas representaciones en signo y
magnitud lo que se hace es que el bit codifica el signo y los n-1 bits restantes, el valor absoluto
del número, si el número es positivo, el código del signo es 0 y si el número es negativo el código
del signo es un 1, en complemento 1, hay que diferenciar dos situaciones que el número sea
positivo o el número negativo, si el numero positivo se modifica exactamente igual que en signo
y magnitud, de forma tal que el bit de signo es un 0 y el resto de los bits del número los n-1 bits
restantes incluye el valor absoluto del número en binario natural, si por el contrario el número es
negativo, el bit de signo es un 1 el resto de los bits se incluye el complemento a 1 del valor
absoluto del número representado en binario natural. En complemento a dos es exactamente igual
a complemento 1 solo que los números negativos a partir del signo que también es uno se
representa el complemento a 2 del número expresado en binario natural y por último tenemos la
notación sesgado, en la que sencillamente lo que se almacena es el valor del número más un sesgo
que es 2n-1, siendo n el número total de bits que tenemos para representar el número, 2n-1 equivale
a decir que tenemos un 1 de n-1 ceros.

3. Aritmética con Enteros


En esta sección se examina funciones aritméticas comunes con números enteros representados en
complemento de a dos: Negación para realizar la representación de complemento de a dos, la
negación consiste en los siguientes pasos primero se obtiene el complemento booleano de cada
bits del entero (incluyendo el bit de signo), es decir esto se refiere a cambiar cada 1 por un 0, y
cada 0 por un 1. Con este paso se obtiene como resultado un número entero binario sin signo,
sumarle 1.A este proceso de cambiar 1 por 0, y 0 por 1 y finalmente a este resultado sumarle 1,
es lo que se conoce como transformación a complemento de a dos de un entero. Por ejemplo si
+18 = 00010010 entonces el realizamos complemento bit a bit, obtenemos 111101101
proseguimos sumándole 1, el cual como resultado se obtiene 11101110 = -18 cuyo resultado será
el opuesto del número 18. Y si queremos el complemento de -18 seguiremos los mismos pasos
el cual como resultado obtendremos 18.
Suma y Resta: La suma en complemento a dos se realiza igual que si los números fueran enteros
sin signo, si el resultado de la operación es positivo, se obtiene un numero positivo en forma de
complemento a dos, pero si el resultado es negativo entonces lo que conseguimos como resultado
fue un numero negativo en forma de complemento a dos. En algunos caso al realizar este tipo de
operaciones se obtienen acarreos, este bits se ignora. Si el resultado es mayor que lo permitido
por la longitud de palabra que está utilizando, se produce la condición de desbordamiento
(overflow), y si ocurre esto la ALU debe indicarlo para que no se utilice el resultado obtenido.
Pero como es que la ALU analiza si se ha producido un desbordamiento, lo hace de la siguiente
manera, si al sumar dos números de mismo ya sean solo positivos o solo negativos, se produce
desbordamiento si y solo si el resultado tiene signo diferente. Es decir si suma dos numero ambos
positivo y como resultado se obtiene un numero de signo negativo o bien si se suma dos números
negativos y como resultado se obtiene un numero de signo positivo, entonces se concluye que en
ambos casos se ha producido un desbordamiento.
Para realizar la resta. Se debe obtener su complemento a dos del substraendo, luego este nuevo
resultado se le suma al minuendo, de esta manera es como se consigue la resta. Al igual que en la
suma también se puede obtener desbordamiento y para identificarlo se sigue el mismo método
interior. Los pasos que se realiza dentro de la ALU para la suma: en este caso se tiene dos
elementos un sumador binario y un indicador de desbordamiento. El sumador recibe los números
desde dos registros (A y B) luego se encarga de sumar los números como enteros sin signos , el
resultado lo almacena en cualquiera de los dos registro y no en un tercero, en caso de haberse
obtenido desbordamiento entonces lo almacena en el indicador de desbordamiento de un bit (0 =
no desbordamiento; 1 = desbordamiento).En el caso de la resta, por ejemplo si B es el sustraendo
entonces este valor debe pasar por un complementado antes de llegar al sumador, para que de esta
manera cuando llegue al sumador sea el complemento a dos de B el cual sumaria con A.
La multiplicación, para multiplicar enteros sin signo se realiza como si estuvieras realizándolo en
un papel o en tu cuaderno, sin embargo se necesitaría más registros y tiempo. Para ello se utiliza
un algoritmo en el cual los números que se van a multiplicar están en los registros (Q y M), además
se utiliza un registro A inicializado en 0, un registro C de un bit inicializado en 0 el cual retiene
los acarreos generados por las sumas. Entonces la lógica de control lee uno por uno los bits del
multiplicador de derecha a izquierda. Si Q0 es 1, se suma el multiplicador al registro A y el
resultado es almacenado en A, utilizando el bit C para el acarreo. Entonces se desplaza todos los
bits de los registro C, A y Q una posición a la derecha, de manera que el bit de C pasa a An-1, A0
pasa a Qn-1 y Q0 se pierde. Si Q0 era 0, no se realiza la suma, solo el desplazamiento, este proceso
se repite para cada bit quedando el producto resultante en A y Q. Pero si uno de los dos ya sea el
multiplicando o el multiplicador es negativo entonces la multiplicación no es correcta entonces
una posible solución sería pasar tanto el multiplicando y el multiplicador a números positivos y
luego realizar el producto dicho resultado se debe convertir a complemento a dos si y solo si el
signo de los dos números iniciales difiere, o si no se podría utilizar el algoritmo de Booth. Para
la división existe un algoritmo basado en principios generales “papel y lápiz” y la operación
conlleva repetidos desplazamientos y sumas o restas. Para realizar división de complemento a
dos, el dividendo debe de estar expresado en número de complemento de a dos.
4. Representación en Coma Flotante
La representación en coma flotantes es una forma de notación científica usada en los
microprocesadores con la que se pueden representar números racionales ya sean muy pequeños o
muy grandes de manera eficiente y compacta y pudiendo utilizar los datos almacenados para
realizar operaciones aritméticas. Este método de representación surgió como solución para el
almacenamiento de números fijos enteros y fraccionarios ya que los computadores no pueden
representar números reales o complejos de manera exacta además de que muchos programas o
aplicaciones requieren de la utilización de números muy grandes para sus cálculos. Como ya
sabemos en el sistema de numeración binaria se puede representar cualquier número utilizando
los números 0, 1, signo menos y la coma de la base que separa la parte entera de la decimal. Esta
representación se expresa como la mantisa, significado, o número; multiplicado por una constante
o base elevada a una potencia entera o lo que es igual un exponente.
Esta representación nos es muy útil cuando queremos representar números de órdenes
enormemente dispares limitados por un exponente, Nos permite cálculos entre magnitudes con
precisión. Además, proporciona la misma precisión relativa para todos los órdenes, limitado por
la mantisa, claro está. La representación la base b es implícita y no necesita almacenarse ya que
es la misma para todos los números por lo general es 10, por lo tanto, solo se debe almacenar la
mantisa y el exponente necesitándose menos bits para almacenarlos a estos, que al número
completo en la base correspondiente. Por lo general el signo del número real, fraccionario ocupa
un bit al igual que él del exponente. Ahora el exponente ocupa 7 bits y la Mantisa al menos 23
bits. En la mayoría de los cálculos en coma flotante las mantisas se normalizan, es decir, se toman
de forma que el bit más significativo que es el primer bit sea siempre 1. Por lo que la Mantisa
cumple la ecuación, representándose siempre normalizada.
El primer bit en q es siempre 1, por lo que no es necesario almacenarlo proporcionando un bit
significativo adicional. Esta forma de almacenar un número en coma flotante se conoce con el
nombre de técnica del bit fantasma. Pero para que los computadores puedan comunicarse se
define un estándar para este tipo de representación que es el IEEE 754, establecida en 1985 por
el Instituto de Ingenieros Eléctricos y Electrónicos. Siendo los formatos más comunes el de 32 o
64 bits de longitud total. Este estándar define los formatos aritméticos que son los conjuntos de
datos de coma flotante binarios y decimales, Formatos de intercambio que son codificaciones o
cadenas de bits que se pueden utilizar para intercambiar datos de coma flotante de forma eficiente
y compacta, Reglas de redondeo que son propiedades que deben satisfacerse al redondear los
números durante las operaciones aritméticas y las conversiones , Operaciones aritméticas ,
además de los Manejos de excepciones que indican las condiciones excepcionales, tales como
división por cero, desbordamiento, etc.
En el tipo de formato tenemos la precisión sencilla o de simple precisión es un formato de número
de computador u ordenador que ocupa 4 bytes (32 bits) en su memoria y representa un amplio
rango dinámico de valores mediante el uso de la coma flotante. El estándar IEEE 754 especifica
que un formato binary32 consta de Bits de signo (S): 1 bit, Exponente desplazado (E): 8 bits y
Significando o Mantisa (T): 24 bits (23 almacenados explícitamente). Y el otra es el formato en
coma flotante de doble precisión este es un formato de número de computador u ordenador que
ocupa 64 bits en su memoria y representa un amplio y dinámico rango de valores mediante el uso
de la coma flotante. Este formato suele ser conocido como binary64 establece que un número en
formato binary64 consta de Bit de signo (S): 1 bit, Exponente (E): 11 bits y Significando o
Mantisa: 53 bits (52 bits son almacenados explícitamente). Además existen algunas
peculiaridades como que para el cero positivo y cero negativos tienen distintos valores que
difieren en el bit del signo.

5. Aritmética en coma flotante:


Se encarga de realizar las cuatro operaciones básicas de la aritmética en coma flotante: la de suma,
resta, multiplicación y división. En sumas y restas se debe tener en cuenta que ambos operandos
tengan el mismo exponente. En la operación de suma y resta se debe ajustar las partes
significativas, por lo que resulta más complejo que la suma y multiplicación. Existen cuatro etapas
elementales del algoritmo para sumar y restar: estas son comprobar valores cero, el ajuste de
partes significativas, sumar o restar las partes significativas y normalizar el resultado. En la
primera etapa la operación se cambia el signo del substraendo cuando es una resta, puesto que la
suma y la resta son idénticas solo se diferencian por el signo, en la segunda etapa los números son
modificados para que sus exponentes sean iguales, caso contrario estos números no podrían
sumarse, esta alineación se logra desplazando un espacio hacia la derecha el número más pequeño,
consiguiendo que su exponente se incremente ó desplazando un espacio hacia la izquierda el
dígito más grande. En caso de que ambos exponentes sean demasiado diferentes se procede a
eliminar el menor de los números.
La tercera etapa es la suma o resta de partes significativas, en esta etapa ambas partes
significativas se suman, considerando los signos. En caso que se dé el desbordamiento de la
mantisa en un dígito, es decir de la parte fraccionaria de este número, se desplaza a la derecha la
parte significativa del resultado, incrementándose el exponente. La cuarta y última etapa es la
normalización, en esta etapa el resultado se normaliza, es decir que los dígitos de la parte
fraccionaria se desplazan a la izquierda, hasta que el más importante ya sea de 1 bits o 4 bits para
exponentes de base 16 sea diferente de cero. Por otro cada uno de los desplazamientos causan una
disminución del exponente, esto podría ocasionar un desbordamiento a cero. Finalmente se
procede a redondearse y suministrarse el resultado. La multiplicación y la división en coma
flotante son más sencillas de realizar que la suma y resta. En la multiplicación si cualquiera de
los dígitos es cero, el resultado será cero, posteriormente se suman los exponentes, si estos están
almacenados en forma sesgada, es decir que el valor fijo se suma al exponente de forma que,
internamente, todos los exponentes pasen a ser positivos,
Entonces su suma tendrá un sesgo doble, para ello se debe restar de la suma el valor del sesgo,
dando como resultado un desbordamiento a cero del exponente, el cual se mostrará y luego se
concluirá el algoritmo. Cuando el exponente del producto se encuentra dentro del rango adecuado,
el próximo paso es multiplicar las partes significativas, para ello se debe tener en cuenta los signos
de la operación, esta operación se ejecuta del mismo modo que los números enteros, es decir que
estamos trabajando con una representación en signo-magnitud, esto quiere decir que el bit que se
encuentra en el extremo izquierdo de la secuencia es el bit del signo, mientras que el resto de la
secuencia es la magnitud del número. El producto final doblara la longitud del multiplicando y
multiplicador y los bits extra se perderán durante el redondeo del número. Por otro lado, en la
operación para realizar la división, el primer paso es verificar los ceros, en caso de que el divisor
sea cero, entonces se dará una indicación de error o se pondrá el resultado a infinito. Un dividendo
que sea igual a cero dará como resultado el mismo.
Posteriormente el exponente del divisor se resta al del dividendo, eliminando el sesgo, el cual se
agregará nuevamente, finalmente se procede a comprobar posibles desbordamientos a cero del
exponente, luego se divide las partes significativas, se normaliza el valor resultado, si es
necesario, y se redondea el número. Las Unidades aritméticas en como flotante de los
computadores se construyen utilizando dos unidades aritméticas en como fija: la Unidad de
tratamiento de mantisas y la Unidad de tratamiento de exponente. Más una Unidad de Control
que conectará ambas unidades y que se encarga entre otras cosas de normalizar adecuadamente
el resultado. En todos los computadores se ha normalizado la notación en coma flotante al
estándar IEEE-754. Este estándar posee dos formatos posibles de representación o
almacenamiento de la información, aunque internamente puede utilizarse formatos con más bits
para una mayor precisión, este estándar especifica cómo deben representarse los números en coma
flotante con simple precisión (32 bits) o doble precisión (64 bits), y también cómo deben
realizarse las operaciones aritméticas con ellos.
6. Organización del procesador
Lo que debe hacer un procesador es captar instrucciones, interpretar esas instrucciones, ejecutar
una instrucción puede necesitar leer datos, ejecutar instrucciones puede llevar a realizar
operaciones y los resultados obtenidos se pueden escribir en la memoria o en los módulos de
E/S. Para realizar todo esto el procesador necesita almacenar datos temporales, recordar
posiciones de instrucciones…por lo que necesita de una pequeña memoria interna. Sus dos
componentes más importantes del procesador como la unidad aritmético lógica es la que lleva
a cabo el procesamiento de datos, la unidad de control controla las transferencias e instrucciones
de datos hacia adentro y hacia afuera del procesador, además de la pequeña memoria interna
que consta de un conjunto de posiciones de almacenamiento llamados registros.
7. Organización de los registros
Un computador emplea una jerarquía de memorias, en los niveles más altos las memorias son
más rápidas, más pequeñas pero más caras. Dentro del procesador hay un conjunto de registros
que funciona con un nivel de jerarquía aún más que la memoria principal y la memoria cache,
dichos registros son de dos tipos: Registros visibles por el usuario permite al programador de
lenguaje maquina minimizar las referencias a la memoria principal y los Registros de control y
de estado que lo utiliza la unidad de control para controlar el funcionamiento del procesador.
Los Registros Visibles por el Usuario se clasifican en: Registros de uso general es el que
contiene el operando de cualquier código de operación lo que permite la utilización de registros
de uso general autentico, también se le puede utilizar para funciones de direccionamiento;
Registros de datos se usa únicamente para contener datos y no se emplea en el cálculo de
direcciones de un operador; Los registros de dirección pueden ser de uso general o pueden estar
dedicados a un modo de direccionamiento particular o también como punteros de segmento,
registros índice, punteros de pilas y muchos más; Códigos de condición son bits fijados por el
hardware del procesador como resultado de alguna operación, se agrupan en uno o más registros
normalmente en registros de control.
Los Registros de Control y de Estado para llevar a cabo una instrucción necesita de cuatro
registros como son: Contador de programa (PC) contiene la instrucción a captar, Registro de
instrucción (IR) contiene la instrucción captada más reciente, Registro de dirección de memoria
(MAR) contiene la dirección de una posición de memoria y Registro intermedio de memoria
MBR) contiene la palabra de datos a escribir en memoria o la palabra leída mas reciente. No
todos los procesadores cuentan con los registros MAR y MBR pero estos se necesitan de algún
mecanismo de almacenamiento intermedio. Estos cuatro registros de utilizan para la
transferencia de datos entre el procesador y la memoria, dentro del procesador los datos tienen
que ofrecerse a la ALU, esta puede tener acceso directo a la MBR y a los registros visibles para
el usuario, puede haber registros adicionales entorno a la ALU que sirven como registros de
entrada y salida e intercambian datos con la MBR y registro visuales por el usuario. Muchos
diseños de procesadores incluyen un registro o conjunto de registros conocidos como palabra
de estado del programa (PSW) que contiene información del estado, incluyen los siguientes
indicadores: Signo, Cero, Acarreo, Igual, Desbordamiento, Interrupciones
habilitadas/inhabilitadas, Supervisor. En algún otro diseño de procesador es posible encontrar
otros registros relativos a estado y control.

8. Instrucciones
Un ciclo de instrucción incluye los siguientes subciclos: Captación: llevar la siguiente instrucción
de la memoria al procesador, ejecución: interpretar el código de operación y llevar a cabo la
operación indicada, interrupción: si las interrupciones están habilitadas y ha ocurrido una
interrupción, guardar el estado del proceso actual y atender la interrupción. Se pueden aprovechar
los progresos en la tecnología, tales como una circuitería más rápida, el empleo de múltiples
registros en lugar de un único acumulador y el uso de una memoria caché a todo estos procesos
se denomina segmentación de instrucciones que cuenta con uno de los mayores problemas del
diseño que es la instrucción de salto condicional que si una instrucción no se ejecuta es imposible
determinar si el salto de producirá o no.
En el Ciclo indirecto se capta de la memoria cada operando de entrada y ente proceso puede
requerir direccionamiento indirecto, una vez que se ejecuta la operación puede ser necesario un
proceso similar para almacenar el resultado en la memoria principal. Flujo de datos una variable
PC contiene la dirección de la siguiente instrucción que hay que captar, esta dirección se lleva al
MAR y se coloca en el bus de direcciones, la unidad de control solicita una lectura de memoria y
el resultado se pone en el bus de datos, se copia en el MBR y se lleva al IR, mientras tanto PC
incrementa en uno para preparar la siguiente instrucción.
9. Segmentación de Instrucciones
Estrategias de segmentación: La segmentación de instrucciones es una poderosa técnica para
aumentar las prestaciones pero requiere un diseño cuidadoso si se quieren obtener resultados
óptimos con una complejidad razonable. Para la aceleración de procesos este debe tener más
etapas como puede ser: captar instrucción(FI) leer la supuesta siguiente instrucción en un buffer,
Decodificar instrucción(DI) determinar el código de operación y los códigos de operando,
Calcular operandos (CO) calcular la dirección de cada operando fuente, Captar operandos (FO)
captar cada operando que resida en memoriam mas no los de registros, Ejecutar instrucción(EI)
realizar la operación indicada y almacenar el resultado en la posición de operando destinado
especifica. En cada etapa del cauce, hay algún gasto extra debido a la transferencia de datos de
buffer a buffer y a la realización de varias funciones de preparación y distribución. Este gasto
adicional puede prolongar sensiblemente el tiempo de ejecución total de una instrucción aislada.
Tratamiento de saltos condicionales por Flujos múltiples: un cause simple puede ser penalizado
por las instrucciones de salto porque se debe escoger entre dos instrucciones y se puede elegir la
equivocada, con cauces múltiples hay retardos debido a la competencia por el acceso a los
registros y a la memoria, pueden entrar en el cauce instrucciones de salto adicionales antes de que
se resuelva la decisión del salto original; Pre captar el destino del salto: cuando se identifica un
salto condicional, se pre capta la instrucción destino del salto además de la siguiente la del salto,
se guarda entonces la instrucción hasta que se ejecute la instrucción de salto; Buffer de bucles:
memoria pequeña de gran velocidad gestionada por la etapa de captación de instrucción del cauce
que contiene secuencialmente las n instrucciones captadas más recientes; Predicción de estados
existen diferentes técnicas como: predecir que nunca se salta, predecir que siempre se salta,
predecir según el código de operación, conmutador saltar/no saltar, tabla de historia de saltos;
Salto retardado: se puede mejorar las prestaciones de un cauce reordenando automáticamente las
instrucciones de un programa, de manera que las instrucciones de salto tengan lugar después de
lo realmente deseado.
10. El procesador Pentium y Powerpc
La organización del registro del Pentium tiene los tipos: generales: contiene ocho registros que
puede ser usado en cualquier tipo de instrucción, de segmentos: tiene seis registros de 16 bits
como CS (segmento de código), SS (segmento de pila), DS, ES, FS, GS.; indicadores, puntero de
instrucciones, numéricos, de control, de estado, palabra de etiquetas. Los registros de EFLAGS
que indica el estado del procesador y ayuda a controlar su funcionamiento, registros de control
que controla diferentes aspectos del funcionamiento, registró MMX que no están incluidos
específicamente sino que utiliza un renombramiento para almacenar estos valores.
Existen interrupciones que se generan por una señal del hardware aleatoriamente y hay
interrupciones enmascarables y no enmascarables pero también excepciones detectadas por el
procesador, excepciones programadas.
En los registros del powerpc tenemos a generales, registros de excepción, registros de estado y
control de coma flotante, registro de condición, registro de enlace. En interrupciones tenemos el
reset que hace reiniciar el sistema, el de chequeo de máquina que detecta alginas anomalías en
cache o una memoria inexistente
La Unidad Aritmético-Lógica es parte fundamental del procesador y por ende también es parte
fundamental de computador en general, ya que el principal motivo por el cual el hombre se esmeró
en la creación de este, fue el hecho de simplificar y agilizar procesos por ejemplo aritméticos. Lo
que nos lleva a pensar que lo que tardaría un hombre en hacer cálculos complejos y sobre todo en
coma flotante, la ALU lo haría en un tiempo mucho más reducido.
11. Conclusiones
11.1. Los números en arquitectura de computador deben ser procesados en binario para que la
computadora pueda trabajar con más fluidez y poder operar más eficazmente las distintas
operaciones que se deben realizar y para esto hay representaciones de enteros representados
en binario sin signo, que vendría a ser el valor absoluto, entero con signo y datos enteros
BCD (cada dígito decimal es codificado en una secuencia de 4 bits).
11.2. Gracias a este capítulo entendemos cómo es que la ALU realiza las operaciones básicas:
suma, resta, multiplicación y división en complemento a dos, operaciones que lleva a cabo
recibiendo números de los registro y además necesitando de otros registros para almacenar
los datos, y además cuenta con indicadores de los cuales se encargan de indicar si en los
resultados se ha producido desbordamiento, si es si entonces los indica con un 1 de tal
manera que no se utilice este resultado.
11.3. El sistema de punto flotante puede representar números más grandes o más pequeños que
otros sistemas con una igual cantidad de bits además de tener el lenguaje estándar IEEE 754
que permite su universalidad de uso en diferentes países siendo una representación muy
eficaz además de que es una manera muy eficiente y compacta para almacenar los números,
su notación científica es una forma de comprimir los números muy grandes o muy pequeños
siendo esta su principal ventaja frente a otras representaciones.
11.4. Como conclusión expresamos que la representación en coma flotante se utiliza para
representar a los números reales. Sin embargo, no puede representar a todos ya que estos
son infinitos y la capacidad de almacenamiento en coma flotante es finita. El exponente
determina el rango de la recta real, es decir los segmentos de ella, mientras que la mantisa
determina la precisión (longitud del mínimo intervalo). Otro detalle a tener en cuenta es que
el formato con el cual se trabaja internamente es distinto al de la IEEE 754.

Potrebbero piacerti anche