unidad 2 arquitectura del computador

60
UNIVERSIDAD TECNICA ESTATAL DE QUEVEDO UNIDAD 2 ARQUITECTURA DEL COMPUTADOR FACULTAD DE CIENCIAS DE LA INGENIERÍA QUINTO SEMESTRE 2013-2014 ING. EDUARDO SAMANIEGO ESTUDIANTES DE TERCER AÑO ING. SISTEMAS

Upload: cristhixn-leon

Post on 01-Jun-2015

607 views

Category:

Education


1 download

DESCRIPTION

este trabajo fue realizado por los estudiantes de TERCER AÑO de ingenieria en sistemas de la UTEQ.

TRANSCRIPT

Page 1: Unidad 2 arquitectura del computador

UNIVERSIDAD TECNICA ESTATAL DE QUEVEDO

UNIDAD 2 ARQUITECTURA DEL COMPUTADOR

FACULTAD DE CIENCIAS DE LA INGENIERÍA

QUINTO SEMESTRE

2013-2014

ING. EDUARDO SAMANIEGO

ESTUDIANTES DE TERCER AÑO ING. SISTEMAS

Page 2: Unidad 2 arquitectura del computador

LA UNIDAD CENTRAL DE PROCESAMIENTORepertorio de instrucciones

Es una especificación que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU.

La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir este conjunto de características de la microarquitectura, que son los elementos y técnicas que se emplean para implementar el conjunto de instrucciones.

Page 3: Unidad 2 arquitectura del computador

Características de las instrucciones de Máquina

Código de operación.

Referencia de datos fuente.

Referencia al operando resultado.

Referencia a la siguiente instrucción.

Código de operación

Especifica la operación a ser realizada. Su especificación y formato serán determinados por la arquitectura del conjunto de instrucciones del componente de hardware de computador.

Page 4: Unidad 2 arquitectura del computador

Características de las instrucciones de Máquina

Referencia de datos fuente.

La operación puede implicar uno o más operandos fuente, que son entradas para la instrucción.

Referencia al operando resultado.

La operación puede producir un resultado.

Referencia a la siguiente instrucción.

Dice a la CPU de donde captar la siguiente instrucción tras completarse la ejecución de la instrucción actual.

Page 5: Unidad 2 arquitectura del computador

Como las instrucciones máquina operan con datos

Las categorías más importantes de datos son:

Números

Caracteres

Datos Lógicos

División

Números

Tenemos tres tipos de datos numéricos:

Enteros (MIPS)

Con signo, representados en complemento a 2.

Tipos de Operandos

Page 6: Unidad 2 arquitectura del computador

Tipos de Operandos

Sin signo, en binario natural.

Tamaños: byte, media palabra.

Punto flotante (MIPS)

IEEE 754: simple precisión (32 bits) y doble precisión (64 bits).

Decimal (no en la MIPS)

En BCD (Decimal Codificado en Binario):

Empaquetado: 2 dígitos decimales por byte.

Ejemplo: 01001001 = 49.

Desempaquetado: 1 dígito/byte.

Ejemplo: 00000100 00001001 = 49.

Page 7: Unidad 2 arquitectura del computador

Tipos de Operandos

Caracteres

Al igual que los números los caracteres se almacenan en los sistemas de cómputo en datos binarios. Una de la representaciones más conocida es el ASCII

Datos Lógicos

A veces es útil considerar una unidad de n bits como n elementos o datos de 1 bit, donde cada elemento tiene un valor 1 o 0.

Dirección

En ocasiones debe realizarse algún cálculo sobre la referencia de un operando, se consideran como números enteros sin signo

Page 8: Unidad 2 arquitectura del computador

Tipos de Operaciones

Los códigos de operación varían de una máquina a otra, pero las operaciones son las mismas. Los tipos de operaciones son:

Transferencia de datos

Aritméticas

Lógicas

Conversión

Entrada/Salida

Control del sistema

Control de flujo

Page 9: Unidad 2 arquitectura del computador

Tipos de Operaciones

Transferencia de datos La instrucción de transferencia debe especificar varias cosas: Posiciones de los operandos fuente y destino Longitud de los datos a transferir Modo de direccionamiento para cada operando

Aritméticas Las operaciones aritméticas básicas son: suma , resta, multiplicación y

división; pero hay operaciones que requieren un solo operando: Absolute Negative Increment Derement

Page 10: Unidad 2 arquitectura del computador

Tipos de Operaciones

Lógicas

Se basan en operaciones boleanas. En este caso se aplican operando básicos como, AND, OR, XOR, EQUAL, además se incluyen operaciones de desplazamiento y rotación tales como.

Desplazamiento lógico a la derecha

Desplazamiento lógico a la izquierda

Desplazamiento aritmético a la derecha

Desplazamiento aritmético a la izquierda

Rotación a la derecha

Rotación a la izquierda

Page 11: Unidad 2 arquitectura del computador

Tipos de Operaciones

Conversión

Instrucciones de conversión son aquellas que cambian el formato u operan sobre el formato de los datos. Un ejemplo común es el de convertir un decimal a binario.

Entrada/Salida

Como ya los revisamos antes teníamos varios tipos de entradas salidas: entrada/salida programada aisladas, entradas/salidas programadas asignadas en memoria, DMA y procesador de E/S.

Control del sistema

Llamadas instrucciones privilegiadas, que se ejecutan solo cuando el procesador está en un estado privilegiado o está ejecutando un programa en una zona privilegiada. Por lo general las usa el sistema operativo.

Page 12: Unidad 2 arquitectura del computador

Tipos de Operaciones

Control de flujo

Algunas razones para el uso de funciones de control de flujo:

Para ejecutar instrucciones más de una vez

Para la toma de decisiones

Ejecución de programas largos

Operaciones de control de flujo:

Instrucciones de bifurcación

Instrucciones de salto implícito

Instrucciones de llamada a procedimiento.

Page 13: Unidad 2 arquitectura del computador

Modos de Direccionamiento

Es un mecanismo que permite conocer la ubicación de un objeto (dato o instrucción). Los modos de direccionamiento disponibles están determinados por la arquitectura interna de la máquina y por el repertorio de instrucciones.

Modos de direccionamiento en MIPS (millones de instrucciones por segundo)

Direccionamiento directo a registro.

Direccionamiento indirecto a registro con desplazamiento.

Direccionamiento relativo a PC con desplazamiento.

Direccionamiento inmediato.

Direccionamiento pseudodirecto.

Direccionamiento implícito.

Page 14: Unidad 2 arquitectura del computador

Direccionamiento directo a registro

El campo tiene 5 bits.

Permitido para operando fuente o destino.

Notación: $n

Ejemplo:

add $16, $17, $18 _ suma el contenido del registro 17 con el registro 18 y lo almacena en el registro 16.

Direccionamiento indirecto a registro con desplazamiento

Campos:

Registro: 5 bits.

Desplazamiento: 16 bits.

Permitido para operando fuente en almacenamientos y destino en cargas.

Notación: desplazamiento($n)

Ejemplo:

lw $16, 20($17) _ carga (“load word”) en el registro 16 la palabra contenida 20 bytes más allá de la dirección almacenada en el registro

Modos de Direccionamiento

Page 15: Unidad 2 arquitectura del computador

Modos de Direccionamiento

Direccionamiento relativo a PC con desplazamiento

Campos:

Desplazamiento: 16 bits.

El desplazamiento se alinea a múltiplo de 4 bits y se extiende en signo a 32 bits para calcular la dirección efectiva. Se utiliza para direcciones en bifurcaciones.

Notación: oculto en etiqueta.

Ejemplo:

bne $16, $17, Fin _ Si el contenido del registro 16 es ¹ del 17, entonces salta a la dirección indicada por la etiqueta “Fin”.

Page 16: Unidad 2 arquitectura del computador

Modos de Direccionamiento

Direccionamiento inmediato

Campos:

Inmediato de 16 bits.

Los datos inmediatos se extienden a 32 bits.

En ciertas instrucciones se hace extensión de signo.

En otras instrucciones se hace extensión con ceros.

También se usa para indicar la longitud de un desplazamiento.

En este caso el inmediato es de 5 bits.

Permitido sólo para operandos fuente.

Notación: dato (sin prefijo).

Ejemplo:

addi $16, $17, 1 _ suma una unidad al contenido del registro 17 y el resultado lo almacena en el registro 16.

Page 17: Unidad 2 arquitectura del computador

Modos de Direccionamiento

Direccionamiento pseudodirecto

Campos:

Dirección de 26 bits.

La dirección se desplaza dos bits a la izquierda (es decir, se multiplica por 4), y se concatena a los cuatro primeros bits del contador de programa. Se utiliza en instrucciones de salto.

Notación: dirección (sin prefijo)

Ejemplo:

j 2500 _ salta a la dirección de memoria correspondiente a la palabra 2500 (dirección 10000 = 2500·4).

Page 18: Unidad 2 arquitectura del computador

Direccionamiento implícito

Un operando tiene direccionamiento implícito cuando está determinado por el código de operación. En MIPS hay pocos casos.

Ejemplo: jal 2500 _ almacena la dirección de la siguiente instrucción del programa (PC + 4) en el registro de retorno $ra y salta a la dirección de memoria correspondiente a la palabra 2500 (dirección 10000), donde empieza una subrutina.

Modos de Direccionamiento

Page 19: Unidad 2 arquitectura del computador

Formatos de Instrucciones

Un programa consta de una secuencia de instrucciones, cada una de las cuales especifica una acción particular. Una parte de la instrucción, llamada código de operación, señala la acción que va a ejecutarse.

. El propósito de una instrucción es especificar la acción que debe ser realizada y los operandos sobre los que se efectúa esta acción. Dentro de esos operandos pueden quedar incluidos tanto los datos de la operación como los lugares donde deben depositarse los resultados que la instrucción pueda producir.

La mayoría de las instrucciones de un procesador tienen una de las siguientes formas:

xn ← f(x1, x2, . . . , xn) xn ← f(x1, x2, . . . , xn− 1)

Page 20: Unidad 2 arquitectura del computador

Formatos de Instrucciones

Donde x1, x2, . . . , xn son los operandos de la instrucción. La representación natural de esta instrucción de n operandos es el formato de la figura 2.1 que comprende un código de operación y la especificación den operandos.

Page 21: Unidad 2 arquitectura del computador

Criterios de diseño de los formatos de instrucción

Cuando se diseña un computador ha de elegirse el formato, o formatos, de instrucción considerando multitud de factores. Uno de los factores más importantes a tener en cuenta es la longitud de la palabra de instrucción: ésta puede o no ser igual para todas las instrucciones del computador y puede ser menor, igual o mayor que la longitud de palabra de memoria.

También conviene que la longitud de instrucción sea múltiplo o submúltiplo de la palabra de memoria. Una característica importante a tener en cuenta para el diseño de los formatos de instrucción es la ortogonalidad. Se dice que dos aspectos de una arquitectura son ortogonales si son independientes.

Page 22: Unidad 2 arquitectura del computador

Número de direcciones

Especificar explícitamente sólo m de los n operandos, dejando implícita la especificación de los n − m restantes. Se dice que un procesador es de m direcciones si m es el número máximo de operandos explícitos que tiene una instrucción aritmético-lógica genérica.

En la actualidad, el número de direcciones de las instrucciones depende de la organización interna del procesador. Los computadores pueden tener una de las siguientes organizaciones:

 

Organización de un solo acumulador.

Organización en registros de uso general.

Organización de pila.

Page 23: Unidad 2 arquitectura del computador

Instrucciones con longitud variable

Algunas máquinas tienen instrucciones con un número variable de bits. Esto implica que la primera parte de la palabra de instrucción debe tener información sobre el código de operación y sobre el número de operandos que le siguen. De esta forma, la longitud total de la instrucción depende del número de operandos. Sin embargo, en estas máquinas, el número de bits del código de operación suele ser fijo. Un ejemplo de este tipo de formatos lo constituye el VAX.

Page 24: Unidad 2 arquitectura del computador

Instrucciones con código de operación de longitud variable

Una máquina con un formato de instrucción con código de operación de longitud fija de n bits puede tener 2n instrucciones diferentes, que pueden ser monarias, binarias, etc. Sin embargo, puede ser posible mantener una longitud de instrucción fija y variar la longitud del código de operación según diferentes factores, tales como la frecuencia de uso de las instrucciones o el número de operandos de las mismas. En los apartados siguientes se abordará cada uno de estos esquemas.

Page 25: Unidad 2 arquitectura del computador

Instrucciones con código de operación de longitud variable

Una máquina con un formato de instrucción con código de operación de longitud fija de n bits puede tener 2n instrucciones diferentes, que pueden ser monarias, binarias, etc.

Sin embargo, puede ser posible mantener una longitud de instrucción fija y variar la longitud del código de operación según diferentes factores, tales como la frecuencia de uso de las instrucciones o el número de operandos de las mismas.

En los apartados siguientes se abordará cada uno de estos esquemas.

Page 26: Unidad 2 arquitectura del computador

Instrucciones con código de operación de longitud variable

Codificación de Huffman:

Este método de codificación de las instrucciones se adopta aplicando un principio de diseño básico en Arquitectura de Computadores: mejorar en lo posible los casos más frecuentes.

este principio se traduce en que las instrucciones más frecuentes tengan códigos de operación más cortos y así minimizar su tiempo de decodificación o la cantidad de memoria ocupada por el programa.

En general este tipo de código se puede emplear siempre que se quiera disminuir el número de bits necesarios para una codificación (compresión).

Page 27: Unidad 2 arquitectura del computador

Codificación de Huffman

En este punto hay que destacar que la frecuencia (o probabilidad) de utilización de las instrucciones se puede medir de dos formas:

La frecuencia estática, que se refiere a las veces que cada instrucción se utiliza en los programas.

La frecuencia dinámica, que se refiere a las veces que esas instrucciones son ejecutadas, esta frecuencia diferirá de la anterior , por ejemplo, si una instrucción se encuentra en un bucle, ya que se ejecutará mucha s veces (frecuencia dinámica alta) pero aparecerá en el programa sólo una vez (frecuencia estática baja).

Según lo que se quiera optimizar en el diseño de un computador se puede utilizar una o la otra.

Si se pretende minimizar la cantidad de memoria ocupada por el programa se utilizará la frecuencia estática, ya que la memoria ocupada por el programa depende del número de veces que aparezcan las instrucciones más largas.

Sin embargo, si se pretende minimizar el tiempo de decodificación de las instrucciones se utilizará la frecuencia dinámica ya que el número de accesos a memoria depende de las veces que las instrucciones se ejecuten.

Page 28: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

La computadora interactúa con el entorno externo por medio de los periféricos o líneas de comunicación.

Una computadora como ya ha sido visto en la asignatura precedente lo conforman 4 componentes estructurales principales:

Unidad Central de Procesamiento: Controla el funcionamiento de la computadora y lleva a cabo sus funciones de procesamiento de datos, frecuentemente se le llama microprocesador o simplemente procesador.

Memoria principal: Almacena datos.

E/S: Transfiere datos entre la computadora y el entorno externo.

Sistema de Interconexión: Es un mecanismo que proporciona la comunicación entre la CPU, la memoria, y la E/S. En los últimos años ha habido un uso frecuente de varios procesadores en un solo sistema, surgiendo cuestiones relativas al multiprocesamiento, que será analizado en esta asignatura más adelante.Según lo que se quiera optimizar en el diseño de un computador se puede utilizar una o la otra.

Page 29: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

Su estructura básica se muestra en la figura siguiente.

Sus principales componentes estructurales son: Unidad Aritmética y Lógicas: Lleva a cabo las funciones de procesamiento de datos de la

computadora.

• Registros: Proporciona almacenamiento interno de la CPU.

• Interconexión interna de la CPU: Es el mecanismo que proporciona comunicación entre la Unidad de Control, la ALU y los registros.

• Unidad de Control: controla el funcionamiento de la CPU y por lo tanto, de la computadora. El repertorio (set) de instrucciones de máquina contribuye en gran medida a definir el procesador. Si conocemos el repertorio (set) de instrucciones máquina, lo que incluye una comprensión del efecto década código de operación y de los modos de direccionamiento, y si se conoce el conjunto de registros visibles por el usuario, entonces se conocen las funciones que puede realizar el procesador.

Page 30: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

Ésta no es una descripción completa. Se necesita conocer las interfaces externas, por lo general, accesibles a través de un bus, y saber cómo se manejan las interrupciones. Siguiendo esta línea de razonamiento, surge la siguiente lista de conceptos, necesarios para especificar la funcionalidad de un procesador:

1. Operaciones (códigos de operación)

2. Modos de direccionamiento

3. Registros

4. Interfaz con el módulo de E/S

5. Interfaz con el módulo de memoria

6. Estructura del procesamiento de interrupciones

Esta lista, aunque general, es bastante completa. Los puntos del 1 al 3 quedan definidos por el set de instrucciones. Los puntos 4 y 5 vienen determinados típicamente por el bus del sistema. El punto 6 está definido parcialmente por el bus del sistema, y parcialmente por el tipo de apoyo que ofrece el procesador al sistema operativo.

Page 31: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

La Unidad Aritmética y Lógica:

La ALU es la parte de la computadora que realiza realmente las operaciones aritméticas y Lógica con los datos. El resto de los elementos del computador (Unidad de Control, registros, memoria E/S).

Están principalmente para suministrar datos a la ALU, a fin de que esta los procese, y para recuperar los resultados.

La figura indica en términos generales, cómo se interconecta la ALU con el resto del procesador.

Los datos se presentan a la ALU en registros y en registros se almacenan los resultados delas operaciones producidas por la ALU.

Estos registros son posiciones de memoria temporal interna al procesador que están conectados a la ALU. La ALU también puede activar indicadores  (Flags) como resultado de una operación.

Por ejemplo, un indicador de desbordamiento se pondrá a 1 si el resultado de una operación excede la longitud del registro en donde este debe almacenarse. Los valores de los indicadores se almacenan también en otros registros dentro del procesador.

La unidad de control proporciona las señales que gobiernan el funcionamiento de la ALU y la transferencia  de los datos dentro y fuera de la ALU.

Page 32: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

La Unidad de Control:

La ejecución de una instrucción implica la ejecución de una secuencia de pasos más pequeños, normalmente llamados “ciclos”. Por ejemplo, una ejecución puede constar de ciclos de captación, acceso indirecto a memoria, ejecución e interrupción.

Además, cada ciclo se compone de una serie de operaciones más elementales, llamadas “microoperaciones”.

Una única microoperación implica, por lo general, una transferencia entre registros, una transferencia entre un registro y un bus externo, o una sencilla operación de la ALU.4. Interfaz con el módulo de E/S

Page 33: Unidad 2 arquitectura del computador

Estructura y funcionamiento del procesador

La unidad de control de un procesador realiza dos tareas:

• Secuenciamiento: Hace que el procesador ejecute las microoperaciones en la secuencia correcta, determinada por el programa que se está ejecutando.

• Ejecución: Genera las señales de control que provocan la ejecución de cada microoperación.

Las señales de control generadas por la unidad de control causan la apertura y el cierre de ciertas puertas lógicas, lo que da como resultado una transferencia de datos hacia, o desde, los registros, y una operación de la ALU.

Una técnica para construir la unidad de control es la implementación cableada, en la cual ésta es un circuito combinacional. Sus señales lógicas de entrada, gobernadas por la instrucción máquina en curso, se transforman en un conjunto de señales de control de salida.

Page 34: Unidad 2 arquitectura del computador

Organización de los registros

Un computador emplea una jerarquía de memoria. En los niveles más altos de la jerarquía, la memoria es más rápida, más pequeña y más cara (por bit). Dentro de la CPU hay un conjunto de registros que funciona como un nivel de memoria, por encima de la memoria principal y de la caché en la jerarquía.

Los registros de la CPU son de dos tipos:

Registros visibles para el usuario: Permiten al programador de lenguaje máquina o ensamblador, minimizar las referencias a memoria principal cuando optimiza el uso de registros. 

Registros de control y de estado: Son utilizados por la unidad de control para controlar el funcionamiento de la CPU, y por programas privilegiados del sistema operativo para controlar la ejecución de programas. 

No hay una separación bien definida de registros dentro de estas dos categorías. Por ejemplo, en algunas máquinas el contador de programa es visible para el usuario (por ejemplo, en el VAX), pero en muchas no lo es.

Page 35: Unidad 2 arquitectura del computador

Organización de los registros

Registros visibles para el usuario:

Un registro visible para el usuario es uno que puede ser referenciado por medio del lenguaje máquina que ejecuta la CPU. Podemos clasificarlos en las siguientes categorías:

Uso general

Datos

Direcciones

Códigos de condición

Los registros de uso general pueden ser asignados por el programador a diversas funciones. A veces, su uso dentro del repertorio de instrucciones depende de la operación.

Es decir, cualquier registro de uso general puede contener el operando para cualquier código de operación. Esto proporciona una utilización de registros de auténtico uso general. Con frecuencia, sin embargo, existen restricciones. Por ejemplo, puede haber registros específicos para operaciones en coma flotante y operaciones de pila. En algunos casos, los registros de uso general pueden ser utilizados para funciones de direccionamiento.

Los registros de datos pueden usarse únicamente para contener datos, y no se pueden emplear en el cálculo de una dirección de operando. Los registros de dirección pueden ser de uso más o menos generales, o pueden estar dedicados a un modo de direccionamiento particular.

Page 36: Unidad 2 arquitectura del computador

Organización de los registros

Entre otros, se pueden citar los siguientes ejemplos:

Punteros de segmento: En una máquina con direccionamiento segmentado un registro de segmento contiene la dirección de la base del segmento. Puede haber múltiples registros: por ejemplo, uno para el sistema operativo y otro para el proceso actual.

Registros índices: Se usan para direccionamiento indexado, y pueden ser autoindexados.

Puntero de pila: Si existe direccionamiento a pila visible al usuario, la pila está normalmente en memoria, y hay un registro dedicado que apunta a la cabecera de ésta. Esto permite un direccionamiento implícito; es decir, apilar (“push”), desapilar (“pop”), y otras instrucciones dela pila que no necesitan contener un operando explícito referente a ella.

Hay aquí varias cuestiones de diseño a estudiar. Una importante, es si usar registros de uso completamente general o si especializar su uso.

Con el uso de registros especializados, generalmente puede quedar implícito en el código de operación a qué tipo de registro se  refiere un determinado campo de operando.

El campo de operando sólo debe identificar uno de entre un conjunto de registros especializados, en lugar de uno de entre todos los registros, lo cual ahorra bits.

Por otra parte, esta especialización limita la flexibilidad del programador. No hay una óptima y definitiva solución a este problema de diseño, pero, como se mencionó, la tendencia parece ir hacia el uso de registros especializados.

Page 37: Unidad 2 arquitectura del computador

Organización de los registros

Registros de Control y de Estado:

Hay diversos registros de la CPU que se emplean para controlar su funcionamiento. La mayoría de ellos, en la mayor parte de las máquinas, no son visibles para el usuario. Algunos de ellos pueden ser visibles a instrucciones máquina ejecutada en un modo de control o de sistema operativo.

Puntero de pila: Si existe direccionamiento a pila visible al usuario, la pila está normalmente en memoria, y hay un registro dedicado que apunta a la cabecera de ésta. Esto permite un direccionamiento implícito; es decir, apilar (“push”), desapilar (“pop”), y otras instrucciones dela pila que no necesitan contener un operando explícito referente a ella.

Naturalmente, máquinas diferentes tendrán diferentes organizaciones de registros y usarán distintaterminología.

Se incluye aquí una lista razonablemente completa de tipos de registros, con una breve descripción.

Page 38: Unidad 2 arquitectura del computador

Organización de los registros

Son esenciales cuatro registros para la ejecución de una instrucción:

• Contador de programa (Program Counter, PC): contiene la dirección de la siguiente instrucción a captar.

• Registro de instrucciones (Instruction Register, IR): contiene la instrucción captada más recientemente.

• Registro de direcciones de memoria (Memory Address Register, MAR): Está conectado a las líneas de dirección del bus del sistema. Especifica la dirección de memoria de una operación de lectura o de escritura.

• Registro intermedio de memoria o Registro de Datos o Registro de Palabra (MemoryBuffer Register, MBR): Está conectado a las líneas de datos del bus del sistema. Contiene el valor a almacenar en memoria o el último valor leído de memoria. Normalmente, la CPU actualiza el contador de programa después de cada captación de instrucción, demanera que siempre apunta a la siguiente instrucción a ejecutar.

Page 39: Unidad 2 arquitectura del computador

Organización de los registrosComo alternativa, puedehaber registros intermedios adicionales en torno a la ALU; estos registros sirven como registros de entrada y salida de la ALU, e intercambian datos con MBR y los registros visibles para el usuario. Todos los diseños de CPU incluyen un registro o un conjunto de registros, conocidos a menudo como palabra de estado del programa (program status word, PSW), que contiene información de estado. PSW contiene normalmente códigos de condición, además de otra información de estado. Entre los campos o indicadores comunes se incluyen los siguientes:

• Signo: Contiene el bit de signo del resultado de la última operación aritmética.

• Cero: Puesto a uno cuando el resultado es 0.

 • Acarreo: Puesto a uno si una operación da lugar a un acarreo (suma) o adeudo (resta) del bit más significativo. Se usa en operaciones aritméticas multipalabra.

• Igual: Puesto a uno si el resultado de una comparación lógica es la igualdad.

• Desbordamiento: Usado para indicar un desbordamiento aritmético.

• Interrupciones habilitadas/inhabilitadas: Usado para permitir o inhabilitar interrupciones.

• Supervisor: Indica si la CPU funciona en modo supervisor o usuario. Únicamente en modo supervisor se pueden ejecutar ciertas instrucciones privilegiadas y se puede acceder a ciertas áreas de memoria. 

Page 40: Unidad 2 arquitectura del computador

Ejemplo de ejecución de un programaSuponiendo que en el disco duro de un PC esté guardado el programa Sumar, si alguien quiere realizar una suma con dicho programa, deberá seguir, como mínimo, los siguientes cinco pasos:

1. Encender el ordenador. Enseguida algunos programas del sistema operativo instalado en la máquina se cargarán en la memoria principal y tomarán el control de la computadora, la cual quedará a la espera de que el usuario "diga" que quiere hacer.

2. Seleccionar el programa Sumar para ejecutarlo. Si el sistema operativo ofrece una interfaz gráfica, el usuario podrá seleccionar el programa haciendo doble clic con el puntero del ratón sobre su nombre (Sumar).

3. Introducir los datos de entrada. El usuario debe teclear un número (por ejemplo, el 3) y pulsar Enter, y realizar la misma operación para el segundo número (por ejemplo, el 5). A continuación, la unidad aritmético/lógica calculará la suma, que en este caso resultará ser 8. Los tres datos también se guardarán en la memoria.

4. Finalizar el programa. Llegados a este punto, el programa Sumar finalizará después de que el usuario pulse cualquier tecla. En consecuencia, el sistema operativo liberará el espacio de memoria ocupado por las instrucciones del programa y por todos los datos utilizados en su ejecución (en este caso tres datos). Después de ejecutar cualquier programa siempre hay que dejar libre el espacio de memoria ocupado y, así, dejar hueco para que otros programas puedan ejecutarse.

5. Apagar el ordenador. Si ahora el usuario decide apagar el ordenador, también se liberará el espacio de memoria ocupado por los programas del sistema operativo y todo volverá a estar como al principio.

Page 41: Unidad 2 arquitectura del computador

Aritmética del Computador Los computadores no almacenan los números con precisión infinita

sino de forma aproximada empleando un número fijo de bits (apócope del término inglés Binary Digit) o bytes (grupos de ocho bits). Prácticamente todos los computadores permiten al programador elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden diferir en el número de bits empleados, pero también (lo que es más importante) en cómo el número representado es almacenado: en formato fijo (también denominado 'entero') o en punto flotante2 (denominado 'real').

Page 42: Unidad 2 arquitectura del computador

Unidad Aritmética-Lógica Unidad Lógica Aritmética (ULA), o Arithmetic Logic Unit (ALU), es un

circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (como igual a, menor que, mayor que, 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.

Page 43: Unidad 2 arquitectura del computador

Aritmética del Computador Los computadores no almacenan los números con precisión infinita

sino de forma aproximada empleando un número fijo de bits (apócope del término inglés Binary Digit) o bytes (grupos de ocho bits). Prácticamente todos los computadores permiten al programador elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden diferir en el número de bits empleados, pero también (lo que es más importante) en cómo el número representado es almacenado: en formato fijo (también denominado 'entero') o en punto flotante2 (denominado 'real').

Page 44: Unidad 2 arquitectura del computador

Representación de Enteros

En el sistema de numeración binaria, cualquier número puede representarse tan solo con los dígitos 1 y 0. El signo menos, y la coma de la base (que separa la parte entera del decimal). Por ejemplo: -1101,01012 = -13,312510

Una palabra de 8 bits puede representar números desde 0 hasta 255. Entre los que se encuentran: 00000000 = 0

00000001 = 1

00101001 = 41

10000000 = 128

11111111 = 255

Page 45: Unidad 2 arquitectura del computador

Aritmética con enteros

Las reglas:1. Obtener el complemento booleano de cada

bit del entero (incluyendo el bit de signo). Es decir, cambiar cada 1 por 0, y cada 0 por 1.

2. Tratando el resultado como un entero binario sin signo, sumarle 1. Este proceso en dos etapas se denomina transformación a complemento a dos, u

obtención del complemento a dos de un entero.

Page 46: Unidad 2 arquitectura del computador

SUMA

La suma se efectúa igual que si los números enteros fuesen sin signo. Si el resultado de la operación es positivo, se obtiene un número positivo en forma de complemento a dos, que tiene la misma forma como entero sin signo. Si el resultado de la operación es negativo, conseguimos un número negativo en forma de complemento a dos.

Page 47: Unidad 2 arquitectura del computador

MULTIPLICACIÒN

1. La multiplicación implica la generación de productos parciales, uno para cada digito del multiplicador. Estos productos parciales se suman después para producir el producto final.

2. Los productos parciales se definen fácilmente. Cuando el bit del multiplicador es 0, el producto es 0. Cuando el multiplicador es 1, el producto parcial es el multiplicando.

3. El producto total se obtiene sumando los productos parciales. Para esta operación, cada producto parcial sucesivo se desplaza en una posición hacia la izquierda con respecto al producto parcial precedente.

Page 48: Unidad 2 arquitectura del computador

DIVISIÒN La división es más compleja que la multiplicación pero está basada

en los principios generales. La operación conlleva repetidos desplazamientos y sumas o restas.

Primero se examinan los bits del dividendo de izquierda a derecha hasta que el conjunto de bits examinados represente un número mayor o igual que el divisor; o, en otras palabras, hasta que el divisor sea capaz de dividir al número. Hasta que eso ocurre, se van colocando ceros en el cociente de izquierda a derecha. Cuando dicho evento ocurre, se coloca un 1 en el cociente, y se substrae el divisor del dividendo parcial. Al resultado se le denomina resto parcial. Desde este punto en adelante, la división sigue un patrón cíclico. En cada ciclo, se añaden bits adicionales del dividendo al resto parcial hasta que el resultado sea mayor o igual al divisor. Como antes, de este número se resta el divisor para producir un nuevo parcial. El proceso continua hasta que se acaban los bits del dividendo.

Page 49: Unidad 2 arquitectura del computador

REPRESENTACIÒN EN COMA FLOTANTE

La representación de coma flotante: es una forma de notación científica usada en los CPU, GPU, FPU, etc., con la cual se pueden representar números reales extremadamente grandes y pequeños de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritméticas. El estándar para la representación en coma flotante es el IEEE 754.

Page 50: Unidad 2 arquitectura del computador

Representación (número de bits) Características

TipoSig

noExponente Significante Total Tamaño

Bias del

exponente

Bits de precisión

(Nro. de bits

significativos)

Dígitos

significativos

en decimal (aprox)

Rango

Medio (Half) 1 6 9 16 2 bytes (16 bits) 31 10 3 ??  ??

Simple (Simple) 1 8 23 32 4 bytes (32 bits) 127 24 6 1/2 -1,701411733e38 .. 3,402823466e+38

Doble (Double) 1 11 52 64 8 bytes (64 bits) 1023 53 152,2250738585072014e-308 ..

1,7976931348623158e+308

Cuádruple (Quad) 1 15 112 128 16 bytes (128 bits) 16383 113 33 ??  ??

Page 51: Unidad 2 arquitectura del computador

ARITMÈTICA EN COMA FLOTANTE 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.

Page 52: Unidad 2 arquitectura del computador

ARITMÈTICA EN COMA FLOTANTE

Simple Precisión

El estándar IEEE-754 para la representación en simple precisión de números en coma flotante exige una cadena de 32 bits. El primer bit es el bit de signo (S), los siguientes 8 son los bits del exponente (E) y los restantes 23 son la mantisa (M):

Page 53: Unidad 2 arquitectura del computador

ARITMÈTICA EN COMA FLOTANTE

Doble Precisión

El estándar IEEE-754 para la representación en doble precisión de números en coma flotante exige una cadena de 64 bits. El primer bit es el bit de signo (S), los siguientes 11 son los bits del exponente (E) y los restantes 52 son la mantisa (M):

Page 54: Unidad 2 arquitectura del computador

ARITMÈTICA EN COMA FLOTANTE

Precisión Extendida

Formato de precisión extendida en IEEE754.

Este formato suele reservarse normalmente para almacenar resultados intermedios, su longitud extra le permite proteger los resultados finales del redondeo y los cálculos intermedios del overflow y underflow. El bit implícito de los anteriores formatos aquí no se contempla, ya que se encuentra físicamente presente en la mantisa.

Page 55: Unidad 2 arquitectura del computador

LA UNIDAD DE CONTROL

uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento. Los otros dos bloques son la unidad de proceso y el bus de entrada/salida. Su función es buscar las instrucciones en la memoria principal, decodificarlas (interpretación) y ejecutarlas, empleando para ello la unidad de proceso.

En computadoras, la unidad de control fue históricamente definida como una parte distinta del modelo de referencia de 1946 de la arquitectura de von neumann. en diseños modernos de computadores, la unidad de control es típicamente una parte interna del CPU.

Page 56: Unidad 2 arquitectura del computador

LA UNIDAD DE CONTROL

Componentes: Registro de instrucción: Es el encargado de almacenar la

instrucción que se está ejecutando.

Registro contador de programas: Contiene la dirección de memoria de la siguiente instrucción a ejecutar.

Controlador y decodificador: Se encarga de interpretar la instrucción para su posterior proceso. Es el encargado de extraer el código de operación de la instrucción en curso.

Secuenciador: Genera microórdenes necesarias para ejecutar la instrucción.

Reloj: Proporciona una sucesión de impulsos eléctricos a intervalos constantes.

Page 57: Unidad 2 arquitectura del computador

FUNCIONAMIENTO

La función principal de la unidad de control de la UCP es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción. 1. Ir a la memoria y extraer el código de la siguiente instrucción

(que estará en la siguiente celda de memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional (to fetch significa traer, ir por).

2. Decodificar la instrucción recién leída (determinar de qué instrucción se trata).

3. Ejecutar la instrucción.

4. Prepararse para leer la siguiente casilla de memoria (que contendrá la siguiente instrucción), y volver al paso 1 para continuar.

Page 58: Unidad 2 arquitectura del computador

PASOS PARA LA EJECUCION DE UN PROGRAMA

En virtud de que el programa comienza a partir de la celda número 10, se debe indicar a la unidad de control que esa celda contiene la primera instrucción. Esto se hace por medio de un apuntador (que forma parte de los circuitos electrónicos de la unidad de control) que recibe el nombre de contador de programa (CP). Así pues, el primer paso debe consistir en apuntar a la casilla 10, y esto se representara por CP-10.

(obsérvese que este paso es externo, esto es, no forma parte del programa, sino que se tiene que hacer “desde afuera” para iniciar la operación de la computadora)

La unidad de control ejecutara el paso I e ira a la casilla 10 para leer su contenido, que es 21.

La unidad de control ejecuta el paso II, con lo que decodifica el 21 recién leído y determina que se trata de una operación CARGA_Ac. En este momento sucede algo de primordial importancia: como la instrucción 21 tiene una longitud de dos celdas cuyo valor se cargara en el acumulador (que en este caso de casualidad también es 21), la maquina deberá ajustar el valor del contador de programa para que este apunte a celda siguiente.

Page 59: Unidad 2 arquitectura del computador

CONTRL MICRO PROGRAMADO

Se empezará por definir palabra de control (CW: control word) como una palabra cuyos bits individuales representan las diferentes señales de control. Por lo tanto, cada uno de los pasos de control de la secuencia de control de una instrucción define una combinación única de unos y ceros en la CW.  Una secuencia de CW correspondientes a la secuencia de control de una instrucción de máquina constituye el microprograma para esa instrucción. Las palabras individuales de control en este microprograma por lo general se denominan microinstrucciones.

Page 60: Unidad 2 arquitectura del computador

CONTRL MICRO PROGRAMADO

Considérese que los microprogramas correspondientes al conjunto de instrucciones de una computadora están almacenados en una memoria especial a la que se denomina la memoria de microprograma. La unidad de control puede generar las señales de control para cualquier instrucción, leyendo en forma secuencial las CW del microprograma correspondiente en la memoria de microprograma. Esto sugiere organizar la unidad de control. Para leer en forma secuencial las palabras de control a partir de la memoria de microprograma se emplea un contador de microprograma (m PC).