Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010...

79
Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Módulo II Buses Buses

Transcript of Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010...

Page 1: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

Oliverio J. Santana Jaria

Periféricos e InterfacesIngeniería en Informática

Curso 2009 – 2010

Módulo IIMódulo IIBusesBuses

Page 2: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

2

BusesBuses

Un bus es un camino de comunicación compartido entre dos o más dispositivos

Cualquier señal transmitida estará disponible para todos los demás dispositivos Sólo un dispositivo puede transmitir en un momento dado Si dos dispositivos transmiten al mismo tiempo, sus señales

se solaparán y, probablemente, se distorsionarán Los dispositivos deben obtener el control del bus antes de

poder utilizarlo para transferir información

[STALLINGS 3.4]

Page 3: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

3

Líneas de comunicaciónLíneas de comunicación

Un bus suele estar formado por varias líneas de comunicación Cada línea tiene un significado o función particular Físicamente, las líneas de comunicación no son sino

un conjunto de conductores eléctricos

Cada línea transmite señales digitales binarias (0,1) Se puede transmitir una secuencia de dígitos binarios a través

de una única línea durante un intervalo de tiempo Se pueden utilizar varias líneas del bus para transmitir dígitos

binarios simultáneamente en paralelo

[STALLINGS 3.4]

Page 4: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

4

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 5: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

5

El bus del sistemaEl bus del sistema

Los computadores poseen diferentes tipos de buses que proporcionan comunicación a distintos niveles entre sus componentes

El bus que conecta los componentes principales del computador (procesador, memoria y E/S) es el llamado bus del sistema

[STALLINGS 3.4]

Page 6: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

6

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 7: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

7

Estructura del bus del sistemaEstructura del bus del sistema

Aunque existen diseños muy diversos, las líneas que forman el bus del sistema pueden clasificarse en tres grupos funcionales: datos, dirección y control

También pueden existir líneas de alimentación para suministrar energía a los módulos conectados al bus

[STALLINGS 3.4]

Page 8: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

8

Líneas de datosLíneas de datos

Las líneas de datos proporcionan un camino para transmitir datos entre los módulos del sistema

El conjunto de las líneas de datos suele denominarse bus de datos Se suele hablar de “anchura del bus” para

referirse al número de líneas de datos La anchura del bus de datos es un factor clave para

determinar el rendimiento de un sistema▫ Cada línea puede transportar un único bit cada vez

▫ La anchura del bus determina cuantos bits se puden transmitir de forma simultánea y, por tanto, la velocidad de transferencia

[STALLINGS 3.4]

Page 9: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

9

Líneas de direcciónLíneas de dirección

Las líneas de dirección se utilizan para designar la fuente o el destino del dato situado en el bus de datos Posición de memoria Dispositivo de E/S

La anchura del bus de direcciones determina el tamaño máximo del espacio de direcciones del sistema Cuando la E/S está asignada en memoria, el espacio

de direcciones se comparte entre memoria y E/S Cuando la E/S está aislada de memoria, los espacios

de direcciones están separados y tienen el mismo tamaño máximo

[STALLINGS 3.4] [STALLINGS 7.3]

Page 10: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

10

Líneas de controlLíneas de control

Dado que las líneas de datos y direcciones son compartidas por todos los dispositivos conectados al bus, debe existir alguna forma de controlar su uso

El propósito de las líneas de control es: Determinar quien accede a las líneas de datos y direcciones Gestionar el uso que se hace de esas líneas

▫ Transmitir órdenes que especifican las operaciones a realizar

▫ Transmitir información de temporización que indica la validez de los datos y direcciones

[STALLINGS 3.4]

Page 11: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

11

Algunas líneas de control típicasAlgunas líneas de control típicas

Escritura en memoria: hace que el dato presente en el bus se escriba en la posición direccionada

Lectura de memoria: hace que el dato de la posición direccionada se sitúe en el bus

Escritura de E/S: hace que el dato presente en el bus se transfiera a través del puerto de E/S direccionado

Lectura de E/S: hace que el dato presente en el puerto de E/S direccionado se sitúe en el bus

Transferencia reconocida: indica a un dispositivo que el dato que envió ha sido aceptado o que el dato que desea está disponible en el bus

[STALLINGS 3.4]

Page 12: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

12

Algunas líneas de control típicasAlgunas líneas de control típicas

Petición de bus: indica que un dispositivo necesita disponer del control del bus

Cesión de bus: indica que se cede el control del bus a un dispositivo que lo había solicitado

Petición de interrupción: indica que hay una interrupción pendiente

Interrupción reconocida: señala que la interrupción pendiente ha sido aceptada

Reloj: se utiliza para sincronizar operaciones Reinicio: devuelve los dispositivos conectados a su

estado inicial

[STALLINGS 3.4]

Page 13: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

13

Estructura físicaEstructura física

El bus del sistema se extiende a traves de todos los componentes del sistema, cada uno de los cuales se conecta a algunas o a todas las líneas del bus

Una organización clásica consiste en una distribución longitudinal a lo largo de la que se distribuyen ranuras de conexión (slots) a intervalos regulares

[STALLINGS 3.4]

Page 14: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

14

Estructura físicaEstructura física

El sistema completo se introduce dentro de un chasis que también contiene la fuente de alimentación, algunos dispositivos periféricos, etc…

Cada uno de los componentes principales del sistema ocupa una o varias tarjetas que se conectan al bus a través de las ranuras de conexión

[STALLINGS 3.4]

Page 15: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

15

Estructura físicaEstructura física

Esta disposición es muy práctica porque permite expandir el sistema añadiendo nuevas tarjetas o actualizarlo/repararlo sustituyendo tarjetas

No obstante, los sistemas actuales tienden a tener sus componentes principales en una misma tarjeta El procesador, la memoria caché y el bus que los

comunica se integran en un único componente La memoria y otros dispositivos siguen estando en tarjetas

separadas que se comunican con el procesador por medio del bus del sistema

[STALLINGS 3.4]

Page 16: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

16

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 17: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

17

Inconvenientes de tener un bus únicoInconvenientes de tener un bus único

El rendimiento de un bus puede disminuir si se conecta un gran número de dispositivos A más dispositivos conectados, mayor retardo de

propagación▫ Los dispositivos tardarán más en coordinarse para usar el bus

▫ Si el control del bus pasa con frecuencia de un dispositivo a otro, los retardos afectarán al rendimiento

Entre más peticiones reciba el bus, más probable será que se cruce la barrera de su capacidad máxima, convirtiéndose el bus en un cuello de botella

▫ Puede resolverse usando buses más rápidos y/o más anchos

▫ La velocidad y la anchura tienen límites físicos, mientras que la velocidad de transferencia que necesitan los dispositivos conectados al bus se está incrementando rápidamente

[STALLINGS 3.4]

Page 18: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

18

Jerarquía de busesJerarquía de buses

El bus único está destinado a dejar de utilizarse La mayoría de los computadores utilizan varios buses

organizados de forma jerárquica

[STALLINGS 3.4]

Page 19: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

19

Jerarquía de busesJerarquía de buses

El procesador se conecta con la memoria caché por medio de un bus local al que también pueden conectarse dispositivos de E/S locales

[STALLINGS 3.4]

Page 20: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

20

Jerarquía de busesJerarquía de buses

El controlador de la memoria caché se conecta tanto al bus local como al bus del sistema, donde se encuentran los distintos módulos de la memoria principal

[STALLINGS 3.4]

Page 21: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

21

Jerarquía de busesJerarquía de buses

Los controladores de E/S se pueden conectar directamente al bus del sistema

Las transferencias entre la memoria y la E/S no interferirán en la actividad del procesador

[STALLINGS 3.4]

Page 22: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

22

Jerarquía de busesJerarquía de buses

Es más eficiente conectar los controladores de E/S a un bus de expansión

Su interfaz regula las transferencias de datos entre los controladores E/S conectados a él y el bus del sistema

[STALLINGS 3.4]

Page 23: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

23

Jerarquía de busesJerarquía de buses

El bus de expansión permite: Conectar una amplia variedad de dispositivos de E/S Aislar el tráfico de información Memoria Procesador

del tráfico correspondiente a la E/S

[STALLINGS 3.4]

Page 24: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

24

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

La jerarquía de buses tradicional es razonablemente eficiente, pero no consigue adaptarse al continuo aumento del rendimiento de los dispositivos de E/S

La respuesta a este problema consiste en utilizar un bus de alta velocidad Estrechamente integrado al resto del sistema Sólo se requiere un adaptador (bridge) entre el bus del

procesador y el bus de alta velocidad

Esta arquitectura recibe el nombre de “arquitectura de entreplanta”

[STALLINGS 3.4]

Page 25: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

25

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

El procesador se conecta por medio de un bus local al controlador de la memoria caché

El controlador de la memoria caché se conecta a su vez al bus del sistema donde está la memoria principal

[STALLINGS 3.4]

Page 26: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

26

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

El controlador de la memoria caché está integrado junto con el adaptador o dispositivo de acoplo que permite la conexión con el bus de alta velocidad

[STALLINGS 3.4]

Page 27: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

27

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

El bus de alta velocidad se utiliza para conectar los controladores de E/S rápidos que así lo necesiten

Los más lentos pueden conectarse al bus de expansión, que usa una interfaz para adaptar el tráfico que circula

[STALLINGS 3.4]

Page 28: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

28

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

La ventaja de esta organización es que el bus de alta velocidad acerca al procesador los dispositivos que exigen un rendimiento elevado pero, al mismo tiempo, es independiente del procesador

[STALLINGS 3.4]

Page 29: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

29

Jerarquía de buses de alto rendimientoJerarquía de buses de alto rendimiento

Los adaptadores e interfaces tratan con las diferencias de velocidad y de definición de líneas de los buses

Los cambios realizados en una parte de la arquitectura no afectan a las demás partes

[STALLINGS 3.4]

Page 30: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

30

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 31: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

31

Elementos de diseño de un busElementos de diseño de un bus

Existe una gran variedad de diseños de buses pero, en general, hay unos pocos elementos comunes de diseño que permiten clasificarlos y distinguirlos unos de otros

[STALLINGS 3.4]

Page 32: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

32

Tipos de busesTipos de buses

Las líneas de bus se pueden dividir en dos tipos genéricos: Dedicadas: están permanentemente asignadas a una función

o a un conjunto de componentes del computador▫ Un ejemplo típico de dedicación funcional es el uso de líneas

separadas para direcciones y datos

Multiplexadas: pueden utilizarse para propósitos diferentes▫ Direcciones y datos podrían transmitirse por la misma línea si se

utilizara una señal de control “Dirección Válida”

▫ Se pone la dirección en el bus y se activa la línea de control, dando un tiempo para que los distintos controladores lean el bus y comprueben si están siendo direccionados

▫ Después de un periodo de tiempo se quita la dirección del bus y se utilizan las mimas líneas para realizar la transferencia

[STALLINGS 3.4]

Page 33: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

33

Tipos de busesTipos de buses

La dedicación física requiere el uso de múltiples buses, cada uno de los cuales conecta solo a un conjunto de controladores Ventaja: alto rendimiento por el menor número de conflictos Desventaja: incremento del costo y el tamaño del sistema

El multiplexado en el tiempo de las líneas permite utilizar las mismas líneas para usos diferentes Ventaja: normalmente ahorra espacio y costes Desventajas:

▫ Los controladores necesitarán una circuitería más compleja

▫ La falta de paralelismo puede reducir el rendimiento

[STALLINGS 3.4]

Page 34: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

34

Método de arbitrajeMétodo de arbitraje

En un momento dado puede haber más de un controlador intentando usar el bus, pero sólo uno de ellos puede obtener el control y usarlo para transmitir

Es necesario disponer de un método de arbitraje que determine quién utiliza el bus

En general, los diversos métodos de arbitraje se pueden clasificar en: Centralizados Distribuidos

[STALLINGS 3.4]

Page 35: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

35

Método de arbitrajeMétodo de arbitraje

El objetivo de ambos métodos de arbitraje es designar un dispositivo como “maestro del bus”, el cual iniciará una transferencia hacia otro dispositivo (esclavo)

En un esquema centralizado hay un único dispositivo físico llamado controlador de bus o árbitro El árbitro es el responsable de asignar tiempos en el bus Puede ser un módulo separado o parte del propio procesador

En un esquema distribuido no existe un árbitro central Cada módulo dispone de lógica para controlar el acceso Los módulos actúan conjuntamente para compartir el bus

[STALLINGS 3.4]

Page 36: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

36

TemporizaciónTemporización

El término temporización hace referencia a la forma en la que se coordinan los eventos en el bus Con temporización síncrona, la presencia de un evento en el

bus está determinada por una señal de reloj▫ El reloj es una línea del bus a través de la que se transmite una

secuencia de 1s y 0s a intervalos regulares de igual duración

▫ El ciclo de reloj o de bus es el intervalo mínimo en el que la señal toma los dos valores posibles y define la unidad de medida del tiempo dentro del bus (time slot)

▫ Todos los eventos empiezan al principio del ciclo de bus

Con temporización asíncrona, la presencia de un evento en el bus es consecuencia y depende de que se produzca un evento previo

[STALLINGS 3.4]

Page 37: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

37

TemporizaciónTemporización

La temporización síncrona es más fácil de implementar y comprobar

Sin embargo, la temporización síncrona es menos flexible debido a que todos los dispositivos conectados al bus deben operar a la misma frecuencia de reloj y, por tanto, no siempre se aprovecharán sus posibilidades

La temporización asíncrona permite que una mezcla de dispositivos rápidos y lentos, construidos con distintas tecnologías, compartan un mismo bus

[STALLINGS 3.4]

Page 38: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

38

Temporización síncronaTemporización síncrona

[STALLINGS 3.4]

Page 39: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

39

Temporización asíncrona: lecturaTemporización asíncrona: lectura

[STALLINGS 3.4]

Page 40: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

40

Temporización asíncrona: escrituraTemporización asíncrona: escritura

[STALLINGS 3.4]

Page 41: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

41

Anchura del busAnchura del bus

La anchura de un bus es el número de líneas distintas que lo componen

La anchura del bus afecta tanto a la capacidad como al rendimiento del sistema Cuanto más ancho es el bus de datos, mayor es el número

de bits que se transmiten a la vez y, por tanto, mayor es el rendimiento del sistema

Cuanto más ancho es el bus de direcciones, mayor es el rango de posiciones a las que se puede hacer referencia y, por tanto, mayor es la capacidad máxima del sistema

[STALLINGS 3.4]

Page 42: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

42

Tipos de transferencia de datosTipos de transferencia de datos

Un bus permite varios tipos de transferencias de datos Todos los buses permiten transferencias de lectura y escritura

▫ Transferencias de lectura: esclavo maestro

▫ Transferencias de escritura: maestro esclavo

En el caso de un bus multiplexado, primero se especifica la dirección y luego se transmite el dato

▫ Las lecturas implican esperar la respuesta del esclavo

▫ Tanto en lecturas como en escrituras pueden aparecer retardos adicionales si es necesario tomar el control del bus dos veces por medio de un procedimiento de arbitraje

[STALLINGS 3.4]

Page 43: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

43

Tipos de transferencia de datosTipos de transferencia de datos

Un bus permite varios tipos de transferencias de datos Todos los buses permiten transferencias de lectura y escritura

▫ Transferencias de lectura: esclavo maestro

▫ Transferencias de escritura: maestro esclavo

En el caso de líneas dedicadas, la dirección se sitúa en el bus de direcciones y se mantiene ahí mientras que el dato se ubica en el bus de datos

▫ En una escritura, el maestro pone el dato tan pronto se estabiliza la dirección y el esclavo ha podido reconocerla

▫ En una lectura, el esclavo pone el dato tan pronto como haya reconocido la dirección y disponga del mismo

[STALLINGS 3.4]

Page 44: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

44

Tipos de transferencia de datosTipos de transferencia de datos

Algunos buses permiten operaciones combinadas Una lectura-modificación-escritura es una lectura seguida

inmediatamente de una escritura en la misma dirección▫ La dirección se proporciona una sola vez al comienzo de la operación

▫ La operación se considera indivisible para evitar el acceso al dato por parte de otros maestros del bus (protección de memoria compartida)

[STALLINGS 3.4]

Page 45: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

45

Tipos de transferencia de datosTipos de transferencia de datos

Algunos buses permiten operaciones combinadas Una lectura-después-de-escritura consiste en una escritura

seguida de una lectura en la misma dirección▫ También es una operación indivisible

▫ La lectura puede tener el propósito de comprobar el resultado

[STALLINGS 3.4]

Page 46: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

46

Tipos de transferencia de datosTipos de transferencia de datos

Algunos buses permiten transferencias de bloques de datos Hay un ciclo de dirección y luego varios ciclos de datos El primer dato se transmite a/desde la dirección

especificada, mientras que el resto de datos se transfieren a/desde las direcciones siguientes

[STALLINGS 3.4]

Page 47: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

47

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 48: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

48

El bus PCIEl bus PCI

[STALLINGS 3.5]

El bus PCI (Peripheral Component Interconnect) es un bus muy popular de ancho de banda elevado e independiente del procesador

Está diseñado para permitir una cierta variedad de configuraciones basadas en sistemas monoprocesador y sistemas multiprocesador Proporciona un conjunto de funciones de uso general Las direcciones y datos están multiplexadas en el tiempo El esquema de arbitraje empleado es centralizado Utiliza temporización síncrona

Page 49: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

49

El bus PCIEl bus PCI

[STALLINGS 3.5]

El diseño del bus PCI se ha realizado específicamente para ajustarse a los requisitos de E/S de los sistemas actuales

Podemos distinguir tres ventajas del bus PCI Es económico: se implementa con muy pocos circuitos Es flexible: permite que otros buses se conecten a él Es rápido: comparado con otras especificaciones comunes de

bus, proporciona un mejor rendimiento para los subsistemas de E/S de alta velocidad

▫ Puede utilizarse como bus de periféricos

▫ También puede utilizarse para una arquitectura de entreplanta

Page 50: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

50

El bus PCIEl bus PCI

[STALLINGS 3.5]

Las especificaciones del bus PCI son de dominio público Son respetadas por un amplio abanico de fabricantes de

procesadores y periféricos, por lo que los productos de diferentes compañías son compatibles

La asociación PCI SIG (special interest group) continúa el desarrollo de las especificaciones y vela por que se mantenga la compatibilidad

El resultado ha sido que el bus PCI no solo está ampliamente adoptado en la actualidad sino que su uso se sigue extendiendo

Page 51: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

51

PCI en sistemas monoprocesadorPCI en sistemas monoprocesador

[STALLINGS 3.5]

Un dispositivo integra el controlador de memoria y el adaptador al bus PCI Proporciona el acoplamiento al procesador (buffer temporal) Aísla la capacidad de E/S del procesador de la velocidad real

del bus, lo que posibilita transmitir datos a alta velocidad

Page 52: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

52

PCI en sistemas multiprocesadorPCI en sistemas multiprocesador

[STALLINGS 3.5]

Se pueden conectar una o varias configuraciones PCI al bus del sistema por medio de adaptadores Al bus del sistema sólo se conectan las unidades

procesador/caché, la memoria principal y los adaptadores Los adaptadores mantienen la independencia procesador-PCI

Page 53: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

53

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 54: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

54

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

El estándar actual permite configurar el bus PCI como un bus de 32 ó 64 bits Hay 49 líneas de señal obligatorias que se dividen en los

siguientes grupos funcionales:▫ Terminales de sistema: reloj y reinicio

▫ Terminales de direcciones y datos▪ 32 líneas para direcciones y datos multiplexadas en el tiempo

▪ Líneas adicionales para interpretar y validar las direcciones y datos

▫ Terminales de control de interfaz: controlan la temporización de las transferencias y permiten la coordinación entre emisor y receptor

▫ Terminales de arbitraje: no son líneas compartidas – cada maestro tiene su propio par de líneas que lo conectan con el árbitro del bus

▫ Terminales para señales de error: utilizadas para indicar errores (paridad…)

Page 55: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

55

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

Page 56: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

56

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

Page 57: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

57

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

Page 58: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

58

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

El estándar actual permite configurar el bus PCI como un bus de 32 ó 64 bits La especificación también define 51 señales opcionales que

se dividen en los siguientes grupos funcionales:▫ Terminales de interrupción: no son líneas compartidas – cada

dispositivo tiene sus propias líneas para generar peticiones a un controlador de interrupciones

▫ Terminales de soporte de caché: necesarios para permitir memorias caché en el bus asociadas a un procesador o a otro dispositivo

▫ Terminales de ampliación a bus de 64 bits▪ 32 líneas para direcciones y datos multiplexadas en el tiempo que

se pueden combinar con las obligatorias para tener un total de 64

▪ Líneas adicionales para interpretar y validar las direcciones y datos, así como para permitir que dos dispositivos acuerden el uso de los 64 bits

▫ Terminales de test: siguen estándar IEEE para procedimientos de test

Page 59: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

59

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

Page 60: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

60

Estructura del bus PCIEstructura del bus PCI

[STALLINGS 3.5]

Page 61: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

61

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 62: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

62

Órdenes del bus PCIÓrdenes del bus PCI

[STALLINGS 3.5]

La actividad del bus consiste en transferencias entre dispositivos conectados al bus El dispositivo que inicia la transferencia es el maestro Cuando el maestro adquiere el control del bus determina el

tipo de transferencia que se realizará (líneas C/BE)

Los tipos de órdenes son: Reconocimiento de interrupción

▫ Orden de lectura generada por el controlador de interrupciones del bus

▫ Las líneas de dirección no se utilizan para direccionar el dispositivo

▫ Las líneas de byte activo (byte enable) indican el tamaño del identificador de interrupción a devolver

Page 63: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

63

Órdenes del bus PCIÓrdenes del bus PCI

[STALLINGS 3.5]

Los tipos de órdenes son: Ciclo especial: se utiliza para iniciar la difusión de un

mensaje a uno o más destinatarios Ciclo de dirección dual: el maestro utiliza esta orden para

indicar que la transferencia utiliza direcciones de 64 bits Lectura de E/S y Escritura de E/S

▫ Se utilizan para intercambiar datos entre el maestro y un controlador de E/S

▫ Cada dispositivo de E/S tiene su propio espacio de direcciones

▫ Las líneas de direcciones se utilizan para indicar un dispositivo concreto y para especificar los datos a transferir a/desde ese dispositivo

Page 64: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

64

Órdenes del bus PCIÓrdenes del bus PCI

[STALLINGS 3.5]

Los tipos de órdenes son: Lectura de memoria

▫ Se utiliza para especificar la transferencia de una secuencia de datos desde memoria durante uno o más ciclos de reloj

▫ Si el controlador de memoria utiliza el protocolo PCI para las transferencias entre la caché y la memoria principal, la transferencia se realizará en términos de líneas de caché

▫ Hay tres órdenes de lectura de memoria distintas:

Page 65: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

65

Órdenes del bus PCIÓrdenes del bus PCI

[STALLINGS 3.5]

Los tipos de órdenes son: Escritura en memoria

▫ Se usa para transferir datos a memoria durante uno o más ciclos del bus

▫ Hay dos órdenes de escritura en memoria distintas▪ Escritura en memoria

▪ Escritura e invalidación de memoria• Transfiere datos e indica que al menos se ha escrito una línea de caché

• Permite el funcionamiento de una caché write back (postescritura)

Lectura de configuración y Escritura de configuración▫ Permiten que el maestro lea y actualice los parámetros de

configuración de un dispositivo conectado al bus

▫ Cada dispositivo puede disponer de hasta 256 registros internos que permitan configurarlo

Page 66: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

66

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 67: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

67

Transferencias de datos en el bus PCITransferencias de datos en el bus PCI

[STALLINGS 3.5]

Toda transferencia de datos en un bus PCI es una transacción única que consta de una fase de direccionamiento y una o más fases de datos

Como ejemplo veremos la temporización de una operación de lectura típica (la de escritura es análoga) Los dispositivos conectados al bus interpretan las líneas en los

flancos de subida de la señal de reloj (comienzo del ciclo) Todos los eventos se sincronizan en los flancos de bajada de

la señal de reloj (punto medio del ciclo)

Page 68: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

68

Transferencias de datos en el bus PCITransferencias de datos en el bus PCI

[STALLINGS 3.5]

Page 69: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

69

Transferencias de datos en el bus PCITransferencias de datos en el bus PCI

[STALLINGS 3.5]

a. Una vez que el maestro del bus tiene el control del mismo inicia la transacción

▫ Sitúa la dirección de inicio en AD y la orden de lectura en C/BE

▫ Activa la señal FRAME, la cual debe permanecer activa hasta que el maestro esté listo para terminar la última fase de datos

b. Al comienzo del segundo ciclo de reloj, el dispositivo del que se lee reconocerá su dirección en las líneas AD

c. El dispositivo de lectura activa DEVSEL para indicar que reconoce su dirección (se mantendrá activa durante toda la transmisión) mientras que el maestro deja libre AD

▫ En todas las líneas que pueden ser activadas por más de un dispositivo se necesita un ciclo de cambio para que la liberación se complete

▫ El maestro cambia las líneas C/BE para indicar cuáles de las líneas AD se utilizarán para transferir el dato

▫ El maestro activa IRDY indicando que está listo para recibir el primer dato

Page 70: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

70

Transferencias de datos en el bus PCITransferencias de datos en el bus PCI

[STALLINGS 3.5]

d. El dispositivo de lectura responde▫ Sitúa el dato solicitado en las líneas AD

▫ Activa TRDY para indicar que hay un dato válido en el bus

e. El maestro lee el dato al comienzo del cuarto ciclo de reloj y cambia las líneas de habilitación de byte según se necesite para la próxima lectura

f. En este ejemplo, el dispositivo de lectura necesita algún tiempo para preparar el segundo bloque de datos

▫ Desactiva TRDY para indicar que no transmitirá el próximo ciclo

▫ El maestro, en consecuencia, no lee las líneas de datos al comienzo del quinto ciclo de reloj y no cambia la señal de habilitación de byte

▫ El nuevo bloque de datos se leerá al comienzo del sexto ciclo

Page 71: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

71

Transferencias de datos en el bus PCITransferencias de datos en el bus PCI

[STALLINGS 3.5]

g. Durante el sexto ciclo de reloj, el dispositivo de lectura sitúa el tercer bloque de datos en el bus, pero el maestro no está preparado para leerlo

▫ El maestro desactiva IRDY

▫ El dispositivo de lectura mantiene el dato en el bus durante un ciclo extra

h. El maestro sabe que el tercer bloque de datos es el último,▫ Desactiva FRAME para indicarle al dispositivo de lectura que éste es el

último dato a transferir

▫ Activa IRDY para indica que está listo para completar la transferencia

i. El maestro desactiva IRDY y el dispositivo de lectura desactiva TRDY y DEVSEL: el bus vuelve a estar libre

Page 72: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

72

Estructura del temaEstructura del tema

Introducción Buses: conceptos generales

Estructura de un bus Jerarquías de buses múltiples Elementos de diseño de un bus

El bus PCI Estructura Órdenes Transferencia de datos Arbitraje

Page 73: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

73

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

El bus PCI utiliza un esquema de arbitraje centralizado síncrono en el que cada maestro tiene una única señal de petición (REQ) y cesión (GNT) del bus

Estas líneas se conectan a un árbitro central, lo que permite que los dispositivos accedan al bus tras un simple intercambio de señales de petición y cesión

Page 74: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

74

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

La especificación del bus PCI no indica un algoritmo particular de arbitraje El árbitro puede utilizar cualquier esquema de prioridad

▫ Primero en llegar, primero en servirse

▫ Rotatorio (round robin)

▫ …

El maestro establece, para cada transferencia que desee realizar, si tras la fase de dirección sigue una o más fases de datos consecutivas

Como ejemplo veremos el intercambio de señales necesario para decidir cual de entre dos dispositivos, A y B, obtiene el control del bus

Page 75: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

75

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

Page 76: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

76

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

a. Al comienzo del primer ciclo de reloj el árbitro detecta que A ha activado su señal REQ

b. Durante el primer ciclo de reloj, B activa también su señal REQ

c. Al mismo tiempo, el árbitro activa GNT-A para ceder el bus a A

d. A detecta al comienzo del segundo ciclo de reloj que se le ha cedido el bus

▫ IRDY y TRDY están desactivadas, por lo que el bus está libre

▫ En consecuencia activa FRAME, pone la dirección en el bus AD y la orden correspondiente en las líneas C/BE

▫ Además, mantiene activa su señal REQ porque debe realizar otra transferencia después de ésta

Page 77: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

77

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

e. Al comienzo del tercer ciclo de reloj el árbitro vuelve a comprobar las líneas REQ y decide ceder el bus a B para la siguiente transacción

▫ El árbitro desactiva GNT-A y activa GNT-B

▫ A pesar de tener acceso al bus, B tendrá que esperar a que esté libre, pues IRDY y TRDY indican que sigue ocupado

f. A desactiva FRAME para indicar que su última transferencia de datos está activa

▫ Pone los datos en el bus AD y se lo indica al dispositivo destino con IRDY

▫ El dispositivo lee el dato al comienzo del siguiente ciclo de reloj

g. Al comienzo del quinto ciclo de reloj, B encuentra IRDY y TRDY desactivadas

▫ Toma el control del bus activando FRAME

▫ Desactiva REQ porque no desea transmitir un segundo dato

Page 78: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

78

Arbitraje del bus PCIArbitraje del bus PCI

[STALLINGS 3.5]

Más adelante, el dispositivo A (que mantenía REQ activa) recuperará el control del bus y continuará la transmisión pendiente

Es importante destacar que el arbitraje se produce al mismo tiempo que el actual maestro del bus realiza una transferencia No se pierden ciclos de bus para realizar el arbitraje Esto se conoce como arbitraje oculto o solapado

(hidden arbitration)

Page 79: Oliverio J. Santana Jaria Periféricos e Interfaces Ingeniería en Informática Curso 2009 – 2010 Módulo II Buses.

79

BibliografíaBibliografía

[STALLINGS]Organización y arquitectura de computadores

William StallingsPearson Education – Prentice Hall, 2005 (7ª edición)