Your SlideShare is downloading. ×
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Unidad 2 arquitectura del computador

579

Published on

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

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

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
579
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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
  • 2. LA UNIDAD CENTRAL DE PROCESAMIENTO Repertorio 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.
  • 3. 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.
  • 4. 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.
  • 5.  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
  • 6. 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.
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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.
  • 12. 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.
  • 13. 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.
  • 14. 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
  • 15. 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”.
  • 16. 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.
  • 17. 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).
  • 18. 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
  • 19. 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)
  • 20. 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.
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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).
  • 27. 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.
  • 28. 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.
  • 29. 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.
  • 30. 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.
  • 31. 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.
  • 32. 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
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. 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.
  • 37. 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 us arán distintaterminología.  Se incluye aquí una lista razonablemente completa de tipos de registros, con una breve descripción.
  • 38. 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 cap tación de instrucción, demanera que siempre apunta a la siguiente instrucción a ejecutar.
  • 39. Organización de los registros Como 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.
  • 40. Ejemplo de ejecución de un programa Suponiendo 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.
  • 41. 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').
  • 42. 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.
  • 43. 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').
  • 44. 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
  • 45. 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.
  • 46. 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.
  • 47. 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.
  • 48. 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.
  • 49. 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.
  • 50. Representación (número de bits) Características Tipo Signo Exponente Significante Total Tamaño Biasdel exponente Bitsdeprecisión (Nro.debitssignificativos) Dígitossignificativos endecimal(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 15 2,2250738585072014e-308 .. 1,7976931348623158e+308 Cuádruple (Quad) 1 15 112 128 16 bytes (128 bits) 16383 113 33 ?? ??
  • 51. 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.
  • 52. 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):
  • 53. 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):
  • 54. 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.
  • 55. 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.
  • 56. 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.
  • 57. 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.
  • 58. 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.
  • 59. 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.
  • 60. 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).

×