Arq_de_Comp_3
-
Upload
carlosdavid86 -
Category
Documents
-
view
213 -
download
0
description
Transcript of 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
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
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.
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.
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.
Que es un Programa?
Programación Hardware Programación Software
Componentes del Computador
Componentes del computador y registros internos
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.
Ciclo de Instrucción
Ciclo de instrucción básico
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.
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.
Ejemplo de Programa de Ejecución
Características de una maquina hipotética
Ejemplo de Programa de Ejecución
Ejemplo de ejecución de un programa (contenidos de la memoria y de los registros en hexadecimal)
Ciclo de Instrucción
Diagrama de estados del ciclo de instrucción.
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.
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.
Interrupciones y el Ciclo de Instrucción
Flujo de control de un programa sin y con interrupción
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ó.
Ciclo de Interrupciones
Transferencia de control debida a una interrupción
Ciclo de Instrucción con Interrupciones
Temporización de un programa
Espera corta de E/S
Temporización de un programa
Espera larga de E/S
Ciclo de Instrucción con Interrupciones
Diagrama de estados
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.
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.
Transferencia de Control con Interrupciones Múltiples
Procesamiento de secuencia de interrupciones
Transferencia de Control con Interrupciones Múltiples
Procesamiento de interrupciones anidadas
Interrupciones Múltiples
Ejemplo de secuencia temporal de varias interrupciones
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)
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.
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.
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).
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.
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.
Interconexión con Buses
Esquema de interconexión mediante un bus.
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.
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.
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.
Interconexión con Buses
Implementación física típica de una arquitectura de bus
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.
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.
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.
Jerarquías de Buses
Arquitectura de bus tradicional
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).
Jerarquías de Buses
Arquitectura de altas prestaciones
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.
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.
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.
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.
Elementos de Diseño de un Bus
Temporización síncrona de las operaciones de bus.
Elementos de Diseño de un Bus
Temporización asíncrona diagrama de lectura
Elementos de Diseño de un Bus
Temporización asíncrona diagrama de escritura
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.
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.
Elementos de Diseño de un Bus
Tipos de transferencia de datos en un bus
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.
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.
El Bus PCI
Bus PCI en su sistema monoprocesador
El Bus PCI
Bus PCI en su sistema multiprocesador
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.
Líneas obligatorias del bus PCI
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)
Líneas opcionales del bus PCI
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.
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
El Bus PCI
Operación de lectura del PCI
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.
El Bus PCI
Arbitro del bus PCI
El Bus PCI
Arbitraje del bus PCI entre dos maestros