Arq_de_Comp_3

69
ARQUITECTURA DE COMPUTADORES I Profesor: Duván Fernando García Cedeño Universidad del Valle – Facultad de Ingeniería Escuela de Ingeniería Eléctrica y Electrónica EIEE Grupo de Arquitecturas Digitales y Microelectrónica GADYM

description

arquitectura de pcs

Transcript of Arq_de_Comp_3

Page 1: Arq_de_Comp_3

ARQUITECTURA DE COMPUTADORES I

Profesor:

Duván Fernando García Cedeño

Universidad del Valle – Facultad de Ingeniería

Escuela de Ingeniería Eléctrica y Electrónica EIEE

Grupo de Arquitecturas Digitales y Microelectrónica GADYM

Page 2: Arq_de_Comp_3

Perspectiva de Alto Nivel del Funcionamiento y de las Interconexiones del Computador

3.1.Componentes del computador

3.2.Funcionamiento del computador•Los ciclos de captación y ejecución

•Interrupciones

•Funcionamiento de las E/S.

3.3.Estructura de interconexión

3.4.Interconexion con buses•Estructura del bus

•Jerarquías de buses múltiples

•Elementos de diseño de un bus

3.5.PCI•Estructura del bus

•Ordenes del PCI

•Transferencia de datos

•Arbitraje

Page 3: Arq_de_Comp_3

Perspectiva de Alto Nivel del Funcionamiento y de las Interconexiones del Computador

A este nivel un computador esta constituido por la CPU, la memoria y las unidades de E/S. Estos componentes se interconectan para que el computador pueda llevar a cabo la ejecución de programas.

El computador lo podemos describir por el comportamiento de sus componentes, es decir mediante los datos y las señales de control que un componente intercambia con los otros, o se puede describir mediante la estructura de interconexión y los controles necesarios para gestionar el uso de dicha estructura.

Page 4: Arq_de_Comp_3

Componentes del Computador

Recordemos que los sistemas cableados eran inflexibles.

Actualmente la mayoría de computadores utilizan la arquitectura de Von Neumann, implementando hardware de propósito general que puede hacer diferentes tareas, teniendo en cuenta las señales de control correctas.

En lugar de volver a cablear se proporciona un nuevo conjunto de señales de control.

Page 5: Arq_de_Comp_3

Que es un Programa?

Es una secuencia de pasos o instrucciones a ejecutar por la CPU.

Para cada paso se realiza una operación aritmética o lógica y cada operación necesita un conjunto diferente de señales de control.

Existen dos clases de programación, la programación hardware y la programación software.

Page 6: Arq_de_Comp_3

Que es un Programa?

Programación Hardware Programación Software

Page 7: Arq_de_Comp_3

Componentes del Computador

Componentes del computador y registros internos

Page 8: Arq_de_Comp_3

Ciclo de Instrucción

La función básica que realiza un computador es la ejecución de un programa, constituido por un conjunto de instrucciones almacenadas en memoria.

El procesamiento requiere de una instrucción que se denomina ciclo de instrucción.

Este ciclo de instrucción esta compuesto por dos pasos, el ciclo de captación y el ciclo de ejecución.

Page 9: Arq_de_Comp_3

Ciclo de Instrucción

Ciclo de instrucción básico

Page 10: Arq_de_Comp_3

Ciclo de Captación

1. El contador de programa (PC) tiene la dirección de la siguiente instrucción a ejecutar.

2. El Procesador recupera la instrucción de la posición de memoria a la que apunta PC.

3. Después se incrementa el valor de PC.•A menos que se indique lo contrario.

4. Se carga la instrucción en el registro de instrucción (IR).

5. Y por ultimo el procesador interpreta la instrucción para llevarla a cabo en el ciclo de ejecución.

Page 11: Arq_de_Comp_3

Ciclo de Ejecución

La ejecución puede ser de cuatro tipos:

1. Procesador-Memoria: deben transferirse datos desde la CPU a la memoria, o desde la memoria a la CPU.

2. Procesador-E/S: deben transferirse datos a o desde el exterior mediante transferencias entre la CPU y un modulo E/S.

3. Procesamiento de Datos: la CPU ha de realizar alguna operación aritmética o lógica con los datos.

4. Control: una alteración en la secuencia de operación, un ejemplo un salto.

La ejecución puede implicar una combinación de estas acciones.

Page 12: Arq_de_Comp_3

Ejemplo de Programa de Ejecución

Características de una maquina hipotética

Page 13: Arq_de_Comp_3

Ejemplo de Programa de Ejecución

Ejemplo de ejecución de un programa (contenidos de la memoria y de los registros en hexadecimal)

Page 14: Arq_de_Comp_3

Ciclo de Instrucción

Diagrama de estados del ciclo de instrucción.

Page 15: Arq_de_Comp_3

Interrupciones

Las interrupciones proporcionan una forma de mejorar la eficiencia del procesador.

Prácticamente todos los computadores disponen de un mecanismo mediante el que otros módulos (E/S, memoria) pueden interrumpir el procesamiento normal de la CPU.

Page 16: Arq_de_Comp_3

Interrupciones

Clases de Interrupciones

Con el uso de interrupciones, el procesador puede dedicarse a ejecutar otras instrucciones mientras una operación de E/S esta en curso.

Page 17: Arq_de_Comp_3

Interrupciones y el Ciclo de Instrucción

Flujo de control de un programa sin y con interrupción

Page 18: Arq_de_Comp_3

Ciclo de Interrupciones

1. Se añade el ciclo de interrupción al ciclo de instrucción.

2. El procesador comprueba si se ha generado alguna interrupción.•Indicada por una señal de interrupción.

3. Si no hay señales de interrupción, se continua con la instrucción siguiente.

4. Si hay alguna interrupción pendiente:•Suspende la ejecución del programa actual

•Guarda el contexto, es decir almacena la dirección de la siguiente instrucción

•Carga el PC con la dirección de inicio de una rutina de gestión de interrupción

5. El procesador realiza la captación y ejecución de la interrupción.

6. El procesador continua la ejecución del programa de usuario en el punto en que se interrumpió.

Page 19: Arq_de_Comp_3

Ciclo de Interrupciones

Transferencia de control debida a una interrupción

Page 20: Arq_de_Comp_3

Ciclo de Instrucción con Interrupciones

Page 21: Arq_de_Comp_3

Temporización de un programa

Espera corta de E/S

Page 22: Arq_de_Comp_3

Temporización de un programa

Espera larga de E/S

Page 23: Arq_de_Comp_3

Ciclo de Instrucción con Interrupciones

Diagrama de estados

Page 24: Arq_de_Comp_3

Interrupciones Múltiples

Hasta el momento solo se ha hablado de la existencia de una solo interrupción, pero en la realidad se pueden producir varias interrupciones.

En este caso se pueden seguir dos alternativas para tratar las interrupciones múltiples:

•La interrupción inhabilitada.

•La prioridad de interrupciones.

Page 25: Arq_de_Comp_3

Interrupciones Múltiples

Deshabilitar las interrupciones.•Procesador ignorará las interrupciones cuando se este procesando una interrupción.

•Las interrupciones quedan pendientes hasta que se termina la rutina de gestión de interrupción, que es cuando se vuelven a habilitar las interrupciones y el procesador comprueba si se ha producido una interrupción adicional.

•Interrupciones se manejan en orden secuencial, es decir a medida que ocurren.

Definir las prioridades.•En este caso se definen prioridades para las interrupciones permitiendo que una interrupción de baja prioridad puede ser interrumpida por las interrupciones de mayor prioridad.

•Cuando la interrupción de más alta prioridad ha sido procesada, el procesador se devuelve a atender las interrupciones anteriores.

Page 26: Arq_de_Comp_3

Transferencia de Control con Interrupciones Múltiples

Procesamiento de secuencia de interrupciones

Page 27: Arq_de_Comp_3

Transferencia de Control con Interrupciones Múltiples

Procesamiento de interrupciones anidadas

Page 28: Arq_de_Comp_3

Interrupciones Múltiples

Ejemplo de secuencia temporal de varias interrupciones

Page 29: Arq_de_Comp_3

Funcionamiento de las E/S

Un modulo de E/S (controlador de disco) puede intercambiar datos directamente con el procesador.

El procesador leer o escribir en memoria, o en un modulo E/S.

En algunos casos es deseable permitir intercambios de información entre la memoria y un modulo de E/S. en este caso el procesador cede al modulo la autoridad para leer o escribir en memoria. Esta operación se conoce con el nombre de acceso directo a memoria (DMA, Direct Memory Access)

Page 30: Arq_de_Comp_3

Estructura de Interconexión

Un computador esta constituido por un conjunto de unidades o módulos de tres tipos elementales (procesador, memoria, E/S) que se comunican entre si.

El conjunto de líneas que conectan los diversos módulos se denomina estructura de interconexión. Dicha estructura dependerá de los intercambios que deban producirse entre los módulos.

Page 31: Arq_de_Comp_3

Estructura de Interconexión

Módulos de un ComputadorMemoria: constituido por N palabras de la misma longitud. Cada palabra tiene una única dirección y pueden leerse o escribirse dependiendo de la señal de control.

Modulo E/S: similar a la memoria, puede leerse o escribirse y puede controlar un dispositivo externo, tiene líneas de datos de entrada y salida y envía señales de interrupción.

Procesador: lee instrucciones y datos, escribe datos procesados y utiliza ciertas señales de control, además recibe las señales de interrupción.

Page 32: Arq_de_Comp_3

Estructura de Interconexión

La estructura de interconexión debe dar cobertura a los siguientes tipos de transferencia:

•Memoria a Procesador: el procesador lee una instrucción o un dato desde la memoria.

•Procesador a Memoria: el procesador escribe un dato en la memoria.

•E/S a Procesador: el procesador lee datos de un dispositivo de E/S a través de un modulo de E/S.

•Procesador a E/S: el procesador envía datos al dispositivo de E/S.

•Memoria a E/S y viceversa: un modulo de E/S puede intercambiar datos directamente con la memoria, sin que tengan que pasar a través del procesador, utilizando acceso directo a memoria (DMA).

Page 33: Arq_de_Comp_3

Interconexión con Buses

Un bus es un camino de comunicación entre dos o mas dispositivos, siendo un medio de transmisión compartido. Cualquier señal transmitida por el bus por uno de los dispositivos esta disponible para que los demás dispositivos conectados puedan acceder a ella. Es importante que solo un dispositivo transmita en un periodo de tiempo, de los contrario las señales pueden solaparse y distorsionarse.

Page 34: Arq_de_Comp_3

Interconexión con Buses

Existen diferentes tipos de buses que proporcionan comunicación entre sus componentes.

El bus del sistema es aquel que conecta los componentes principales del computador(procesador, memoria, E/S).

Generalmente se utilizan uno o mas buses del sistema.

Page 35: Arq_de_Comp_3

Interconexión con Buses

Esquema de interconexión mediante un bus.

Page 36: Arq_de_Comp_3

Interconexión con Buses

Bus de Datos: Proporciona un camino para transmitir datos entre los módulos del sistema. El numero de líneas determina la anchura del bus de datos, siendo un factor clave a hora de determinar las prestaciones del conjunto del sistema.

Ejemplo: si el bus es de 8 bits y las instrucciones son de 16 bits, el procesador debe acceder a la memoria 2 veces por cada ciclo de instrucción.

Page 37: Arq_de_Comp_3

Interconexión con Buses

Bus de Dirección: se utiliza para designar la fuente o el destino del dato situado en el bus de datos, también se utiliza para direccionar los puertos de E/S, la anchura del bus de direcciones determina la máxima capacidad de memoria posible en el sistema.

Ejemplo: en un bus de 8 bits, la dirección 01111111 e inferiores harían referencia a las posiciones de memoria y las direcciones 10000000 y superiores designarían dispositivos de E/S.

Page 38: Arq_de_Comp_3

Interconexión con Buses

Bus de Control: se utiliza para controlar el acceso y el uso de las líneas de datos y direcciones, las señales de control transmiten tanto ordenes como información de temporización entre los módulos.

Ejemplo de señales de control: lectura/escritura en memoria, lectura/ escritura en E/S, petición/cesión del bus, petición/aceptación interrupción, señal de reloj entre otras.

Page 39: Arq_de_Comp_3

Interconexión con Buses

Implementación física típica de una arquitectura de bus

Page 40: Arq_de_Comp_3

Jerarquías de Buses

Al conectar un gran numero de dispositivos al bus, las prestaciones pueden disminuir. Hay dos causas principales:

1.A mas dispositivos conectados mayor es el retardo de propagación, este retardo determina el tiempo necesario para que los dispositivos puedan coordinarse en el uso del bus. Al pasar el control frecuentemente de un dispositivo a otro los retardos se hacen considerables afectando las prestaciones del sistema.

Page 41: Arq_de_Comp_3

Jerarquías de Buses

2. El bus puede convertirse en le cuello de botella a medida que las peticiones de transferencia acumuladas se aproximan a la capacidad del bus. Este problema se puede solucionar en parte incrementando la velocidad del bus y utilizando buses mas anchos.

Por este motivo la mayoría de computadores utilizan varios buses, normalmente organizados jerárquicamente.

Page 42: Arq_de_Comp_3

Jerarquías de Buses

En una estructura típica hay un bus local que conecta el procesador a la memoria cache y al que pueden conectarse uno o mas dispositivos locales. El controlador de memoria cache también se conecta al bus de sistema donde se encuentran conectados todos los módulos de memoria principal, es posible conectar controladores de E/S directamente, pero una solución mas eficiente es utilizar buses de expansión.

Page 43: Arq_de_Comp_3

Jerarquías de Buses

Arquitectura de bus tradicional

Page 44: Arq_de_Comp_3

Jerarquías de Buses

La arquitectura tradicional es razonablemente eficiente, pero se muestra débil cuando se incrementan las prestaciones de los dispositivos E/S, por lo cual se propone el uso de un bus de alta velocidad estrechamente integrado con el sistema y requiere solo un adaptador (bridge) entre el bus del procesador y el bus de alta velocidad. Esta disposición es conocida como arquitectura entre plana (mezzanine architecture).

Page 45: Arq_de_Comp_3

Jerarquías de Buses

Arquitectura de altas prestaciones

Page 46: Arq_de_Comp_3

Elementos de Diseño de un Bus

Existe una gran diversidad de diseños de buses, pero hay unos pocos parámetros o elementos de diseño que sirven para distinguir y clasificar los buses.

Elementos de diseño de un bus.

Page 47: Arq_de_Comp_3

Elementos de Diseño de un Bus

Tipos de Buses. Las líneas del bus se pueden dividir en dos tipos genéricos: dedicadas y multiplexadas.

Dedicado: esta permanentemente asignado a una función o un subconjunto físico de componentes, separa las líneas de datos y las líneas de direcciones.

Multiplexado: utiliza las mismas líneas para el envió de datos, direcciones e incluso señales de control, por lo cual utiliza menos líneas, ahorrando espacio y costos pero requiere de un sistema de control mas sofisticado.

Page 48: Arq_de_Comp_3

Elementos de Diseño de un Bus

Método de Arbitraje. Los diversos métodos se pueden clasificar como centralizados y distribuidos.

Centralizado: en este esquema un único dispositivo hardware denominado controlador del bus o arbitro, es el responsable de asignar los tiempos del bus, este dispositivo puede estar separado o ser parte del procesador .

Distribuido: en este esquema no existe un controlador central, es decir cada modulo dispone de lógica para controlar el acceso y los módulos actúan conjuntamente compartiendo el bus.

Page 49: Arq_de_Comp_3

Elementos de Diseño de un Bus

Temporización. Este termino hace referencia a la forma en que se coordinan los eventos en el bus, los buses utilizan la temporización síncrona o asíncrona.

Síncrona: quiere decir que la presencia de un evento en el bus esta determinada por un reloj y esta señal se incluye en una línea del bus.

Asíncrona: con esté tipo de temporización la presencia de un evento en el bus es consecuencia y depende de que se produzca un evento previo.

Page 50: Arq_de_Comp_3

Elementos de Diseño de un Bus

Temporización síncrona de las operaciones de bus.

Page 51: Arq_de_Comp_3

Elementos de Diseño de un Bus

Temporización asíncrona diagrama de lectura

Page 52: Arq_de_Comp_3

Elementos de Diseño de un Bus

Temporización asíncrona diagrama de escritura

Page 53: Arq_de_Comp_3

Elementos de Diseño de un Bus

Anchura del bus. La anchura del bus de datos afecta las prestaciones del sistema: cuanto mas ancho es el bus de datos, mayor es el numero de bits que se transmiten a la vez. La anchura del bus de direcciones afecta a la capacidad del sistema: cuanto mas ancho es el bus de direcciones, mayor es el rango de posiciones a as que se puede hacer referencia.

Page 54: Arq_de_Comp_3

Elementos de Diseño de un Bus

Tipo de Transferencia de Datos. Todos los buses permiten tanto transferencias de escritura como lectura. En el caso de un bus con direcciones y datos multiplexados, el bus se utiliza primero para especificar la dirección y luego para transferir el dato.

Page 55: Arq_de_Comp_3

Elementos de Diseño de un Bus

Tipos de transferencia de datos en un bus

Page 56: Arq_de_Comp_3

El Bus PCI

El Bus PCI (Peripheral Component Interconnect, Interconexión de Componente Periférico) es un bus muy popular de ancho de banda elevado, independiente del procesador, que se puede utilizar como bus de periféricos o bus para arquitectura de entreplanta. El PCI proporciona mejores prestaciones para los subsistemas de E/S de alta velocidad.

Ejemplo: los adaptadores de pantalla grafica, los controladores de interfaz de red, los controladores de disco, etc.

Page 57: Arq_de_Comp_3

El Bus PCI

El estándar actual permite el uso de hasta 64 líneas de datos a 66 MHz, para una velocidad de transferencia de 528 MB, o 4,224 Gbps.

El PCI esta diseñado para permitir una cierta variedad de configuraciones basadas en microprocesadores, incluyendo sistemas de uno como de varios procesadores, proporcionando un conjunto de funciones de uso general. Utiliza temporización síncrona y un esquema de arbitraje centralizado.

Intel empezó a trabajar en el bus PCI en 1990 y después cedió sus patentes al dominio publico.

Page 58: Arq_de_Comp_3

El Bus PCI

Bus PCI en su sistema monoprocesador

Page 59: Arq_de_Comp_3

El Bus PCI

Bus PCI en su sistema multiprocesador

Page 60: Arq_de_Comp_3

El Bus PCI

Estructura del Bus

El bus PCI puede configurarse como un bus de 32 o 64 bits, y tiene 49 líneas de señal obligatorias que se definen en los siguientes grupos funcionales:

• Terminales (patillas) del sistema.

• Terminales de dirección y datos.

• Terminales de control de la interfaz.

• Terminales de arbitraje.

• Terminales para señales de error.

Page 61: Arq_de_Comp_3

Líneas obligatorias del bus PCI

Page 62: Arq_de_Comp_3

El Bus PCI

Estructura del Bus

Además el bus PCI posee 51 señales opcionales que se definen en los siguientes grupos funcionales:

• Terminales de interrupción.

• Terminales de soporte de cache.

• Terminales de ampliación a bus de 64 bits.

•Terminales de test (JTAG/Boundary Scan)

Page 63: Arq_de_Comp_3

Líneas opcionales del bus PCI

Page 64: Arq_de_Comp_3

El Bus PCI

Ordenes des PCI

La actividad del bus consiste en transferencias entre elementos conectados al bus, denominándose maestro al que inicia la transferencia. El maestro determina el tipo de transferencia y se utilizan las líneas C/BE para indicar el tipo de transferencia.

Los tipos de interrupciones son:

reconocimiento de interrupción, ciclo especial, lectura de E/S, escritura de E/S, lectura de memoria, lectura de línea de memoria, lectura múltiple de memoria, escritura en memoria, escritura e invalidación de memoria, lectura de configuración, escritura de configuración, ciclo de

dirección dual.

Page 65: Arq_de_Comp_3

El Bus PCI

Transferencia de datos

Toda transferencia de datos en el bus PCI es una transacción única que consta de una fase de direccionamiento y una o mas fases de datos

Page 66: Arq_de_Comp_3

El Bus PCI

Operación de lectura del PCI

Page 67: Arq_de_Comp_3

El Bus PCI

Arbitraje

El bus PCI utiliza un esquema de arbitraje centralizado síncrono en el que cada maestro tiene una señal de petición (REQ) y sesión (GNT) del bus. Estas líneas se conectan al arbitro central y se utiliza un simple intercambio de las señales de petición y cesión para permitir el acceso al bus.

Page 68: Arq_de_Comp_3

El Bus PCI

Arbitro del bus PCI

Page 69: Arq_de_Comp_3

El Bus PCI

Arbitraje del bus PCI entre dos maestros