capítulo 1- introducción - departamento de electrónica y automática

Upload: ignacio-rodriguez

Post on 07-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    1/17

    ICAIdea

    Estructura de Computadores

    Capítulo 1: Introducción.

    José Daniel Muñoz Frías

    Universidad Pontificia Comillas. ETSI ICAI.

    Departamento de Electrónica y Automática

    Estructura de Computadores Capítulo 1: Introducción.– p. 1

    ICAIdea

    Índice

    1. Niveles de estudio del ordenador.

    2. Descripción del computador.

    3. Ciclo de ejecución.

    4. Estructura de un computador elemental.

    5. Análisis/diseño de un ordenador.

    Estructura de Computadores Capítulo 1: Introducción.– p. 2

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    2/17

    ICAIdea

    Niveles de estudio del ordenador

    Arquitectura de computadores: Estudia  “los

    atributos de un sistema [computacional] talcomo son vistos por el programador”. Define:

    • El juego de instrucciones y cómo secodifican.

    • Los registros internos.

    • Los tipos de datos: enteros, coma flotante. . .• Los modos de direccionamiento.

    • El tratamiento de excepciones.

    Estructura de Computadores Capítulo 1: Introducción.– p. 3

    • Esta definición es la primera realizada sobre la arquitectura de ordenadores,

    aparecida en el artículo:  Architecture of the IBM system/360  (Amdahl et al., 1964).1

    Otra manera de expresarlo es decir que la arquitectura define  qué hace un ordenador.

    • El juego de instrucciones está formado por todas las instrucciones que es capaz de

    ejecutar el ordenador. Estas instrucciones se codifican como números binarios.

    • Los registros internos también están definidos por la arquitectura. Por ejemplo la

    arquitectura MIPS define 31 registros de propósito general de 32 bits y varios de uso

    específico por la CPU. La arquitectura IA-32 (Pentium) define en cambio sólo 8

    registros de propósito general de 32 bits.• El tipo de datos soportados varía de una arquitectura a otra. Por ejemplo, los

    microcontroladores de 8 bits soportan sólo enteros de 8 bits. En cambio los

    microprocesadores de altas prestaciones de 32 bits (p. ej. Pentium) soportan enteros

    de 8, 16 y 32 bits, números en coma flotante de 64 bits, etc.

    • Los modos de direccionamiento definen los distintos métodos para acceder a la

    memoria por parte de la CPU. Por ejemplo, la dirección que se desea acceder puede

    estar contenida en un registro interno, en la propia instrucción. . .

    • El tratamiento de excepciones define qué hace un ordenador cuando ocurre un error

    interno (por ejemplo al dividir por cero), cuando ejecuta una instrucción no definida,

    cuando recibe una interrupción externa, etc.

    1Por programador se entiende el programador en lenguaje ensamblador. No obstante hay

    aspectos de la arquitectura que sí pueden interesar al programador de alto nivel, como son los

    tipos de datos soportados por la máquina o el tratamiento de excepciones.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    3/17

    ICAIdea

    Niveles de estudio del ordenador

    Organización de computadores: Estudia  cómo se

    implanta una arquitectura mediante circuitosdigitales. Define

    • Con qué unidades funcionales se implanta laarquitectura.

    • Cómo se implanta cada una de estas

    unidades.• Cómo es el flujo de datos entre unidades.

    • Cómo se controlan.

    Estructura de Computadores Capítulo 1: Introducción.– p. 4

    • Es decir, la organización de un computador define  cómo éste realiza sus funciones.

    • Una misma arquitectura se puede implantar de varias maneras. Por ejemplo si se

    desea mayor velocidad se pueden usar dos ALUs para poder efectuar dos

    operaciones en paralelo, lo cual implica mayor velocidad, aunque también un mayor

    coste.

    • Una misma unidad funcional se puede implantar de distintas formas. Por ejemplo un

    sumador se puede implantar con propagación de acarreo (lento pero barato) o con

    predicción de acarreo (rápido pero caro).

    • El flujo de datos especifica cómo se mueven los datos entre las distintas unidades del

    ordenador.

    • Para controlar las unidades se usa la unidad de control, que puede implementarse

    como una máquina de estados (control cableado) o con un secuenciador (control mi-

    croprogramado).

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    4/17

    ICAIdea

    Niveles de estudio del ordenador

    Realización del computador: Estudia la

    tecnología con la que se implanta  físicamenteuna organización concreta. Por ejemplo usando:

    • Componentes discretos para la CPU.

    • CPU en un solo chip: Microprocesador.

    • Tecnología de fabricación de 130 nm a

    90 nm.• Técnicas de encapsulado y de refrigeración.

    Estructura de Computadores Capítulo 1: Introducción.– p. 5

    • La construcción de la CPU mediante componentes discretos está en la actualidad

    totalmente obsoleta.

    • Las tecnologías de fabricación de los circuitos integrados se definen por el ancho de

    canal de los transistores que es posible fabricar. Cuanto menor sea el ancho del

    canal, más rápido conmuta el transistor y por tanto puede funcionar a una frecuencia

    de reloj mayor. En la actualidad la tecnologías de fabricación de los

    microprocesadores de altas prestaciones oscila entre 0,25 µm y 0,13 µm.

    • El límite fundamental de la frecuencia de operación es la capacidad de evacuar el

    calor generado en el chip, el cual es proporcional a la frecuencia de reloj. Por tanto

    un mismo chip mejor refrigerado puede funcionar a mayor frecuencia (overclocking).

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    5/17

    ICAIdea

    Niveles de estudio del ordenador

    En resumen:

    • Una misma arquitectura puede tenerdistintas organizaciones.

    • Una misma organización puede tenerdistintas realizaciones.

    Por ejemplo:

    • Arquitectura: IA-32

    • Organizaciones: 8086, 80286 . . . Pentium 4

    • Realizaciones Pentium 4: de 2.4 a 3.4 GHz

    Estructura de Computadores Capítulo 1: Introducción.– p. 6

    • El ejemplo propuesto no es del todo cierto, ya que Intel ha introducido mejoras en la

    arquitectura en los sucesivos modelos. Por ejemplo, a partir del Pentium MMX se

    añadieron nuevas instrucciones para soporte multimedia junto con 8 registros de 64

    bits accesibles por estas nuevas instrucciones. A pesar de esto, la compatibilidad

    hacia arriba está garantizada, es decir, un Pentium 4 fabricado hoy es capaz de

    ejecutar un programa escrito en 1978 para el 8086.

    • Otro ejemplo de arquitectura es la del IBM System/360, nacida en 1964 y que ha

    evolucionado hasta los sistemas S/390 de la actualidad.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    6/17

    ICAIdea

    Descripción del computador

    Un computador es un sistema complejo

    organizado como una jerarquía de subsistemasinterrelacionados. De cada nivel interesaestudiar:

    • El funcionamiento.

    • La estructura.

    Estructura de Computadores Capítulo 1: Introducción.– p. 7

    La organización jerárquica es imprescindible a la hora de estudiar y diseñar sistemas

    complejos. Cada nivel consta de una serie de subsistemas interrelacionados de los que sólo se

    necesita un modelo simplificado. De esta forma la complejidad de cada nivel es abordable. Por

    ejemplo, en un programa en C la función main() consta de varias funciones, de las que sólo

    hace falta conocer lo que hacen y cuales son sus argumentos. A su vez cada función necesitará

    llamar a otras funciones de las que sólo necesita conocer su cometido y sus argumentos. . .

    Para estudiar cada nivel es necesario conocer:

    • El funcionamiento: Es la operación de cada componente individual como parte de la

    estructura.• La estructura: Es el modo en que cada uno de los componentes están interrelaciona-

    dos.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    7/17

    ICAIdea

    Función de un computador

    • Procesar datos ->Cálculos.

    • Almacenar datos ->Bases de datos.

    • Transferir datos ->Comunicaciones.

    Entonces:

    • Una calculadora.

    • Un radio-cassette.• Un teléfono.

    ¿Son computadores?

    Estructura de Computadores Capítulo 1: Introducción.– p. 8

    Los ordenadores se utilizan para todo tipo de tareas. Sin embargo, cada una de estas

    tareas incluye una o varias de estas funciones:

    • Procesar datos. Es la función para la que nacieron los primeros computadores.

    Veremos en esta asignatura que los datos del mundo real se modelan como entidades

    codificadas en binario sobre las cuales se realizan una serie de operaciones básicas.

    • Almacenar datos. La primera idea que se viene a la cabeza es la de un gran sistema

    de bases de datos. Sin embargo hasta los computadores empotrados (p. ej. el ABS de

    un coche) cuya función principal no es el almacenamiento de datos, necesitan un

    almacenamiento temporal para guardar los resultados intermedios de sus cálculos.

    Transferir datos. Antes de procesar datos, el computador necesita adquirir dichos da-tos desde el exterior. De la misma forma necesita enviar los resultados de sus cálculos

    al exterior. Para ello usa una serie de dispositivos periféricos conectados a su sistema

    de entrada/salida. Además, cada día tienen mayor importancia las comunicaciones.

    En ellas los computadores tienen un papel fundamental como enrutadores de datos,

    conversores de protocolo, etc.

    Según lo anterior cabe preguntarse si una calculadora sencilla (+, -, *, /) es un com-

    putador, pues es capaz de procesar datos. De la misma forma un radio cassette es capaz de

    almacenar datos en una cinta magnética y un teléfono permite realizar una comunicación.

    Todos estos sistemas tienen en común el estar compuestos de un conjunto de subsistemas

    interrelacionados que les permite realizar su función, junto con un sistema de control que los

    gobierna. La diferencia entre la calculadora, el radio cassette y el teléfono y un ordenadores que en los tres primeros el control es   fijo, mientras que en el ordenador el control es

    programable, lo que le permite solucionar cualquier problema que pueda resolverse con sus

    unidades funcionales.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    8/17

    ICAIdea

    Estructura de un computador

    de

    Control

    CPU

    Datos  Datos

    Memoria

    E/S

    Instrucciones

    Camino

    Datos

    Señales

    de control

    Señales

    de datos

    Arquitectura de von Newmann.

    Estructura de Computadores Capítulo 1: Introducción.– p. 9

    • La función de almacenamiento de datos se realiza en la memoria. (En realidad

    también se realiza en los dispositivos de almacenamiento como discos, cintas, etc.

    Dichos dispositivos se conectan al sistema de entrada/salida).

    • El proceso de datos se realiza en el camino de datos. Dicho camino de datos está

    formado por una o varias ALU ( Arithmetic-Logic Unit ), registros para almacenar

    datos temporales, unidades de punto flotante, etc.

    • La transferencia de datos se realiza en el sistema de entrada y salida (E/S). De esta

    forma es posible la comunicación con el exterior para la entrada de datos y

    programas y la salida de resultados.

    • Todo el sistema está controlado por la unidad de control. El comportamiento de la

    unidad de control viene dado por el programa, que se almacena también en la memo-

    ria.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    9/17

    ICAIdea

    Ciclo de ejecución

    Ejecución

    Inicio

    Parada

    Captura

    Instrucción

    ¿Parar?

      No

    Si

    Estructura de Computadores Capítulo 1: Introducción.– p. 10

    El funcionamiento del computador viene dado por el diagrama de flujo mostrado en la

    transparencia:

    • Cuando se conecta el ordenador, éste comienza a leer instrucciones de memoria

    (captura instrucción) y a ejecutarlas (ejecución).

    • El ciclo captura-ejecución continúa hasta que se desconecta el ordenador.

    • No obstante, en los ordenadores primitivos existía una instrucción de stop que

    paraba el programa y avisaba al operador (con una campana en el caso del EDVAC)

    para que este cargase el siguiente programa. Hoy en día dicho modo de

    funcionamiento está totalmente obsoleto. Los ordenadores actuales están

    continuamente ejecutando múltiples procesos, incluso de varios usuarios

    (multiproceso y multiusuario), con lo que no tiene sentido parar la CPU cuando un

    programa termina; sino devolver el control al sistema operativo para que ejecute otro

    proceso (esto es lo que hace la función  exit() de C).

    • A pesar de esto, muchos ordenadores disponen de instrucciones especiales (llamadas

    halt, idle, stop. . . ) que hacen que se pare la ejecución y la CPU entre en un modo de

    bajo consumo. La ejecución de instrucciones se reanuda cuando se produce alguna

    petición de entrada/salida (p. ej. una llamada por modem, la pulsación de una tecla,

    etc.).

    • ¿Qué ocurre cuando se produce un error (p. ej. una división por 0)? En estos casos

    la CPU detecta esta condición y ejecuta una función específica para tratar este error.

    Por ejemplo, puede terminar el programa y dar un mensaje de error al usuario. A este

    proceso se le denomina tratamiento de excepciones.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    10/17

    ICAIdea

    Ciclo de ejecución detallado

    Cálculo Dir.

    Dato

    Decodificar

    Instrucción

    Operación

    Instrucción

    Captación

    Dato

    VariasPalabras

    Cálculo Dir.

    Resultado

    Almacenar

    Resultado

    VariasPalabras

    Cálculo Dir.

    Instrucción

    Captación

    Instrucción

    Operaciones

    Acceso a

    Memoria

    CPU

    Ciclo deCaptación

    Ciclo deEjecución

    Instrucción vectorial

    Estructura de Computadores Capítulo 1: Introducción.– p. 11

    El diagrama de la figura representa el ciclo de instrucción de un ordenador en mayor

    detalle. El ciclo representado es el de la instrucción más compleja de un computador CISC.1 Las

    instrucciones más simples sólo emplean algunas de las etapas de las mostradas.

    • En primer lugar se calcula la dirección de la siguiente instrucción. Como los

    programas se almacenan en memoria de forma que las instrucciones del programa

    están situadas consecutivamente, dicho cálculo consiste en la mayoría de los casos

    en incrementar un contador. La excepción a esta regla se da en las instrucciones de

    salto.

    • A continuación se lee la instrucción de memoria y se almacena en un registro internode la CPU.

    • Una vez obtenida la instrucción se puede pasar a su decodificación para averiguar

    qué hay que hacer a continuación.

    • Si la instrucción necesita traer datos de memoria se realiza un ciclo de cálculo de

    dirección, lectura de la memoria y almacenamiento en un registro interno. Si el dato

    ocupa más de una palabra, será necesario repetir este ciclo varias veces hasta leer

    todas las palabras que componen el dato. Por otro lado, existen ordenadores que

    disponen de instrucciones que usan varios datos de memoria. En este caso, también

    será necesario repetir estas dos etapas tantas veces como sea necesario.

    1Complex Instruction Set Computer . Este tipo de ordenadores se caracterizan por tener un

    gran conjunto de instrucciones heterogéneas que realizan labores complejas. Por heterogé-

    neas se entiende de distintos formatos y tamaños.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    11/17

    • Una vez que la CPU tiene todos los datos, puede pasar a ejecutar la operación

    demandada por la instrucción y generar el resultado, el cual se guarda en un registro

    interno.

    • Por último, el resultado obtenido puede ser escrito en memoria. En este caso se

    realiza un ciclo de cálculo de dirección y escritura en memoria del resultado. En este

    caso, si el resultado ocupa más de una palabra, será necesario repetir el ciclo de

    escritura.• Existen ordenadores que disponen de instrucciones que realizan una misma operación

    sobre un vector de datos. En este tipo de instrucciones, después de obtener el resultado

    se lee el siguiente elemento del vector para realizar una nueva operación. En caso

    contrario, la ejecución continúa con la siguiente instrucción.

    Existe una alternativa más simple, que es la adoptada por las máquinas RISC.2 Dicha alternativa

    consiste en permitir instrucciones con un ciclo más homogéneo. En el caso del MIPS, que

    es el procesador que usaremos en el laboratorio, en lugar de existir un ciclo complejo como

    2 Reduced Instruction Set Computer . Este tipo de ordenadores se caracterizan por tener un

    conjunto de instrucciones reducido y homogéneo que realizan labores muy simples de forma

    muy eficiente. Por juego de instrucciones homogéneo se entiende de tamaño fijo y de formato

    regular. Con esta filosofía de diseño se consiguen circuitos más pequeños y más eficientes. El

    único inconveniente es que los programas necesitan más instrucciones, aunque debido al bajo

    coste de la memoria esto no es ningún problema hoy en día (salvo en sistemas empotrados

    con restricciones de memoria); sobre todo porque el resultado es un sistema con mejores

    prestaciones (Patterson y Hennessy, 2000).

    el estudiado, del cual unas instrucciones utilizan todas las etapas y otras sólo unas cuantas;

    existen sólo 4 ciclos básicos de instrucción que además son muy parecidos entre ellos:

    • Ciclo de lectura de memoria.

    • Ciclo de escritura de memoria.

    • Ciclo de operación.

    • Ciclo de salto.

    Esto hace que todas las instrucciones sean muy parecidas y como consecuencia el sistema

    se puede paralelizar fácilmente. Por el contrario, en un computador CISC, unas instruccio-

    nes tienen un operando de memoria, otras dos, otras ninguno. . . lo cual hace que el ciclo de

    ejecución de cada instrucción sea distinto, siendo entonces más difícil su paralelización.

    En las siguientes transparencias se detallan los ciclos de instrucción del procesador

    MIPS.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    12/17

    ICAIdea

    Ciclos de ejecución del MIPS

    Cálculo Dir.

    Dato

    Decodificar

    Instrucción

    Captación

    DatoVarias

    Palabras

    Cálculo Dir.

    Instrucción

    Captación

    Instrucción

    Operaciones

    Acceso a

    Memoria

    CPU

    Ciclo deEjecución

    Ciclo deCaptación

    Ciclo de lectura de memoria.

    Estructura de Computadores Capítulo 1: Introducción.– p. 12

    ICAIdea

    Ciclos de ejecución del MIPS

    Almacenar

    Dato

    VariasPalabras

    Cálculo Dir.

    Instrucción

    Captación

    Instrucción

    Operaciones

    Acceso a

    Memoria

    CPU

    Ciclo de

    Ejecución

    Decodificar

    Instrucción

    Cálculo Dir.

    Dato

    Ciclo deCaptación

    Ciclo de escritura en memoria.

    Estructura de Computadores Capítulo 1: Introducción.– p. 13

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    13/17

    ICAIdea

    Ciclos de ejecución del MIPS

    Decodificar

    Instrucción

    Cálculo Dir.

    Instrucción

    Captación

    Instrucción

    Operaciones

    Acceso a

    Memoria

    CPU

    Operación

    Instrucción

    Ciclo deEjecución

    Ciclo deCaptación

    Ciclo de operación o salto.

    Estructura de Computadores Capítulo 1: Introducción.– p. 14

    El MIPS tiene un banco de 31 registros internos, lo que le permite almacenar variables

    y resultados intermedios para operar con ellos sin necesidad de acceder a memoria. Esto

    permite una mayor velocidad de operación, ya que el acceso a los registros es mucho más

    rápido que el acceso a la memoria y además de esta forma mientras está realizando la opera-

    ción puede estar leyendo la siguiente instrucción de memoria, lo cual hace que aumenten las

    prestaciones enormemente.

    En resumen la filosofía RISC es cargar los datos que necesitemos para realizar la ope-

    ración en los registros del procesador y a continuación realizar las operaciones pertinentes.

    Cuando se obtengan resultados que es necesario guardar se realiza una operación de escritura

    para almacenarlos en la memoria principal.

    Por último indicar que las operaciones de salto lo único que hacen es “informar” a la

    etapa de cálculo de la dirección de la instrucción que la siguiente instrucción a ejecutar está

    en la dirección a la que se desea saltar.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    14/17

    ICAIdea

    Estructura de un computador elemental

    Reg. 1

    Reg. 2

    RDIMR. Est

    R. I.

    Unidad

    de control

    Acc C.P.

    RDAM

    Memoria

    Bus Interno (Datos y direcciones)

    Bus de Direcciones

    Bus de Datos

    ALU

    CPU

    Estructura de Computadores Capítulo 1: Introducción.– p. 15

    En la transparencia se muestra un diagrama de bloques simplificado de un ordenador

    elemental con arquitectura von-Newmann. No se ha incluido la unidad de entrada/salida para

    no complicar en exceso en diagrama. La función de cada elemento es:

    • C.P. es el contador de programa. Contiene la dirección de la siguiente instrucción del

    programa.

    • R.I. es el registro de instrucción. Almacena la instrucción que se está ejecutando en

    este momento.

    Reg. 1 y Reg. 2 son dos registros para almacenar temporalmente los operandos de laALU.

    • ALU es la unidad aritmético lógica. Esta unidad es la encargada de realizar todas las

    operaciones del ordenador. La elección de la operación a realizar la realiza la unidad

    de control en función de la instrucción que se esté ejecutando.

    • Acc es el acumulador. Su función es almacenar el resultado de la ALU para que

    pueda ser usado posteriormente.

    • R. Est. es el registro de estado. Almacena en una serie de indicadores sobre el

    resultado de la operación de la ALU (p. ej. si ha ocurrido un rebose).

    • RDIM es el registro de dirección de memoria. Como su propio nombre indica,

    almacena la dirección de la palabra que se desea leer de la memoria.

    • RDAM es el registro de datos de memoria. Contiene el dato leído o escrito en el

    último acceso a memoria.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    15/17

    • Unidad de control. Es el “cerebro” del sistema. Se encarga de decodificar la

    instrucción almacenada en el R.I. y generar las señales de control (µ-ordenes) que

    gobiernan el resto de elementos de la CPU.

    • Bus Interno. Está compuesto por una serie de conexiones que comunican entre sí a

    todos los elementos de la ruta de datos de la CPU. En este caso elemental el mismo

    bus permite transportar tanto direcciones como datos. En CPUs más complejas

    existen varios buses internos de forma que se puede conseguir mayor grado deparalelismo.

    • Bus de Direcciones. Es un bus que permite enviar a la memoria la dirección a la que

    la CPU desea acceder.

    • Bus de Datos. Es un bus bidireccional que permite a la CPU leer o escribir datos en

    la memoria.

    • Memoria. Permite almacenar tanto el programa como los datos. Se organiza como un

    vector de  n  palabras. Necesita una señal de control denominada  R/W, que proviene

    de la unidad de control, para indicar si el acceso es de lectura o de escritura.

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    16/17

  • 8/18/2019 Capítulo 1- Introducción - Departamento de Electrónica y Automática

    17/17

    Referencias

    Amdahl, G. M., Blaauw, G. A., y Brooks Jr., F. P. (1964). Architecture of the IBM Sys-

    tem/360.  IBM Journal Of Research And Development , 8(2). Disponible on-line en:

    http://www.research.ibm.com/journal/rd/441/amdahl.pdf.

    Patterson, D. A. y Hennessy, J. L. (2000).   Estructura y diseño de computadores. Interficie

    circuitería/programación. Reverté.

    1   6  -2