Buses Ignacio Vissani Organización del Computador I DC - UBA 2do Cuatrimestre de 2014 (Práctica 6) Buses 2do Cuatrimestre de 2014 1 / 21 1 Repaso 2 Ejercicios 3 Morir (Práctica 6) Buses 2do Cuatrimestre de 2014 2 / 21 ¿Qué es un BUS? (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo Sirve para... ...transmitir información: (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo Sirve para... ...transmitir información: direcciones (en sentido amplio), (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo Sirve para... ...transmitir información: direcciones (en sentido amplio), datos, (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo Sirve para... ...transmitir información: direcciones (en sentido amplio), datos, señales de control, (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 ¿Qué es un BUS? Un canal de comunicación... ...entre dispositivos (CPU, memoria, dispositivos de E/S) Lo podemos pensar... ...como un conjunto de cables + un protocolo Sirve para... ...transmitir información: direcciones (en sentido amplio), datos, señales de control, en fin, bits, entre dos o más dispositivos (Práctica 6) Buses 2do Cuatrimestre de 2014 3 / 21 Tipos de Bus Hay diversas clasificaciones ortogonales. (Práctica 6) Buses 2do Cuatrimestre de 2014 4 / 21 Tipos de Bus Hay diversas clasificaciones ortogonales. Las que nos van a interesar en la práctica son: 1. Modo de sincronización Sincrónicos (o sı́ncronos): Si tienen una señal periódica (¡clk!) que sirve para sincronizar los distintos dispositivos. VS Asincrónicos (o ası́ncronos): Si no. 2. Por la anchura de sus lı́neas Dedicadas: Si cada lı́nea tiene un propósito especı́fico. VS Multiplexadas: Si las lı́neas varı́an su propósito de acuerdo a la etapa del protocolo. (Práctica 6) Buses 2do Cuatrimestre de 2014 4 / 21 Tipos de Bus Hay diversas clasificaciones ortogonales. Las que nos van a interesar en la práctica son: 1. Modo de sincronización Sincrónicos (o sı́ncronos): Si tienen una señal periódica (¡clk!) que sirve para sincronizar los distintos dispositivos. VS Asincrónicos (o ası́ncronos): Si no. 2. Por la anchura de sus lı́neas Dedicadas: Si cada lı́nea tiene un propósito especı́fico. VS Multiplexadas: Si las lı́neas varı́an su propósito de acuerdo a la etapa del protocolo. Pero hay más: Serial VS. Paralelo, Único maestro VS. Múltiples maestros, etc. (Práctica 6) Buses 2do Cuatrimestre de 2014 4 / 21 Cosas que quedaron colgando (Práctica 6) Buses 2do Cuatrimestre de 2014 5 / 21 Cosas que quedaron colgando ¿Qué es un protocolo? Un conjunto de reglas que le indican a cada componente lo que puede/debe hacer en cada momento para que la comunicación sea exitosa. Puede definirse formalmente (o semi-formalmente). (Práctica 6) Buses 2do Cuatrimestre de 2014 5 / 21 Cosas que quedaron colgando ¿Qué es un protocolo? Un conjunto de reglas que le indican a cada componente lo que puede/debe hacer en cada momento para que la comunicación sea exitosa. Puede definirse formalmente (o semi-formalmente). Ah, el clk. A ese lo tengo de algún lado No confundir. El clock del bus no es el mismo clock de la CPU (freq. cpu clk >> freq. bus clk). Los dos se usan para sincronizar, pero de formas distintas. (Práctica 6) Buses 2do Cuatrimestre de 2014 5 / 21 En una Orga1 (Práctica 6) Buses 2do Cuatrimestre de 2014 6 / 21 En una Orga1 (Práctica 6) Buses 2do Cuatrimestre de 2014 6 / 21 En una Orga1 ¿Qué deberı́a viajar por el bus al ejecutar un MOV [0x0014], R0? (Práctica 6) Buses 2do Cuatrimestre de 2014 6 / 21 En una Orga1i (Práctica 6) Buses 2do Cuatrimestre de 2014 7 / 21 En una Orga1i (Práctica 6) Buses 2do Cuatrimestre de 2014 7 / 21 En una Orga1i ¿Y si se ejecutara un MOV R0, [0xFFF0]? (Práctica 6) Buses 2do Cuatrimestre de 2014 7 / 21 Diagramas de tiempo Ejercicio 1 Hacer el diagrama de tiempos del bus de una máquina Orga1 para una escritura en memoria. (Práctica 6) Buses 2do Cuatrimestre de 2014 8 / 21 Diagramas de tiempo Ejercicio 1 Hacer el diagrama de tiempos del bus de una máquina Orga1 para una escritura en memoria. Teniendo en cuenta que: cada agente (CPU, memoria, dispositivo) puede cargar o censar las lı́neas sólo se cargan las lı́neas cuando el clock está alto sólo se censan las lı́neas cuando el clock está bajo al finalizar el ciclo el bus debe volver al estado inicial (Práctica 6) Buses 2do Cuatrimestre de 2014 8 / 21 Ej. 1 - Diagrama de tiempo (Práctica 6) Buses 2do Cuatrimestre de 2014 9 / 21 Ej. 1 - Diagrama de tiempo clk d L|HH|LL|HH|LL|HH|LL|H (Práctica 6) Buses 2do Cuatrimestre de 2014 9 / 21 Ej. 1 - Diagrama de tiempo ciclo ←− 1 −→←− 2 −→←− 3 −→ clk d L|HH|LL|HH|LL|HH|LL|H (Práctica 6) Buses 2do Cuatrimestre de 2014 9 / 21 Ej. 1 - Diagrama de tiempo ciclo clk req r/w ack data (Práctica 6) d d d d d ←− 1 −→←− 2 −→←− 3 −→ L|HH|LL|HH|LL|HH|LL|H LL|HHHH|LLLLLLLL LLLLLLLLLLLLLL LLLLLL|HHHH|LLLL bmb<DDD><DDD>mbmbmbmb Buses 2do Cuatrimestre de 2014 9 / 21 Diagrama de tiempo Ejercicio 2 Hagamos el diagrama de tiempo de la lectura desde un dispositivo. (Esquema 2.) (Práctica 6) Buses 2do Cuatrimestre de 2014 10 / 21 Diagrama de tiempo Ejercicio 2 Hagamos el diagrama de tiempo de la lectura desde un dispositivo. (Esquema 2.) Ejercicio 2 - Solución (Práctica 6) Buses 2do Cuatrimestre de 2014 10 / 21 Diagrama de tiempo Ejercicio 2 Hagamos el diagrama de tiempo de la lectura desde un dispositivo. (Esquema 2.) Ejercicio 2 - Solución ciclo clk req r/w ack data (Práctica 6) d d d d d ←− 1 −→←− 2 −→←− 3 −→←− 4 −→ L|HH|LL|HH|LL|HH|LL|HH|LL|H LL|HHHH|LLLLLLLLLLLL LL|HHHHHHHHHHHH|LLLL LLLLLLLLLL|HHHH|LLLL mbm<DDDD>mbmbm<DDDD>mbmbm Buses 2do Cuatrimestre de 2014 10 / 21 Capacidad del bus Ejercicio 3 Suponiendo que el clock tiene una frecuencia de 100 Khz 1 ¿Cuánto tiempo toma realizar un ciclo de escritura a memoria (ejercicio 1)? 2 ¿Cuánto toma un ciclo de lectura de un dispositivo (ejercicio 2)? 3 Si cada operación es de 16 bits, ¿cuál es la máxima capacidad del bus? (Práctica 6) Buses 2do Cuatrimestre de 2014 11 / 21 Capacidad del bus Ejercicio 3 - Solución (Práctica 6) Buses 2do Cuatrimestre de 2014 12 / 21 Capacidad del bus Ejercicio 3 - Solución Pista → 100 Khz = 100.000 ciclos por segundo. (Práctica 6) Buses 2do Cuatrimestre de 2014 12 / 21 Capacidad del bus Ejercicio 3 - Solución Pista → 100 Khz = 100.000 ciclos por segundo. 1 1 Escritura = 3 ciclos ≈ (Práctica 6) 1 33333 segundos. Buses 2do Cuatrimestre de 2014 12 / 21 Capacidad del bus Ejercicio 3 - Solución Pista → 100 Khz = 100.000 ciclos por segundo. 1 33333 segundos. 1 25000 segundos. 1 1 Escritura = 3 ciclos ≈ 2 1 Lectura = 4 ciclos = (Práctica 6) Buses 2do Cuatrimestre de 2014 12 / 21 Capacidad del bus Ejercicio 3 - Solución Pista → 100 Khz = 100.000 ciclos por segundo. 1 33333 segundos. 1 25000 segundos. 1 1 Escritura = 3 ciclos ≈ 2 1 Lectura = 4 ciclos = 3 Máxima capacidad del bus para escritura = 33333 operaciones por segundo = 66666 bytes por segundo ≈ 65.10 KB/s. Máxima capacidad del bus para lectura = 25000 operaciones por segundo = 50000 bytes por segundo ≈ 48.82 KB/s. (Práctica 6) Buses 2do Cuatrimestre de 2014 12 / 21 Máquinas de estado ¿Qué son? (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Qué son? Formalismo para describir comportamiento. (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Qué son? Formalismo para describir comportamiento. Sintáxis (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Qué son? Formalismo para describir comportamiento. Sintáxis Grafos dirigidos: cı́rculos (nodos) + flechas (ejes, transiciones). (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Qué son? Formalismo para describir comportamiento. Sintáxis Grafos dirigidos: cı́rculos (nodos) + flechas (ejes, transiciones). Semántica (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Qué son? Formalismo para describir comportamiento. Sintáxis Grafos dirigidos: cı́rculos (nodos) + flechas (ejes, transiciones). Semántica Cada nodo representa un estado en donde se realiza una acción. Las transiciones indican cómo cambia de estado el objeto descripto. Las transisiones se suponen instantáneas o de tiempo despreciable. Debe haber una transición inicial. (Práctica 6) Buses 2do Cuatrimestre de 2014 13 / 21 Máquinas de estado ¿Para qué sirven? (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. Las transiciones a niveles bajos del clock. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. Las transiciones a niveles bajos del clock. Cada elemento debe ser acompañado con una breve descripción: (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. Las transiciones a niveles bajos del clock. Cada elemento debe ser acompañado con una breve descripción: En los estados se especifica qué lı́neas se cargan durante ese semi-ciclo. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. Las transiciones a niveles bajos del clock. Cada elemento debe ser acompañado con una breve descripción: En los estados se especifica qué lı́neas se cargan durante ese semi-ciclo. En las transiciones se especifica qué lı́neas se censan durante ese semi-ciclo. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado ¿Para qué sirven? Para muchas cosas. Ya lo van a ver mejor en ISW 1 (Ingenierı́a del Software I). Nosotros las vamos a usar para describir el comportamiento de un agente dentro de un protocolo de bus. ¿Cómo las vamos a usar? Los estados corresponden a niveles altos del clock. Las transiciones a niveles bajos del clock. Cada elemento debe ser acompañado con una breve descripción: En los estados se especifica qué lı́neas se cargan durante ese semi-ciclo. En las transiciones se especifica qué lı́neas se censan durante ese semi-ciclo. Compatibilidad Diremos que una máquina de estados y un diagrama de tiempos son compatibles si no se contradicen. (Práctica 6) Buses 2do Cuatrimestre de 2014 14 / 21 Máquinas de estado Ejercicio 4 Hacer una máquina de estado que describa un comportamiento compatible con la memoria que describe el diagrama de tiempos del Ejercicio 1. ciclo clk req r/w ack data (Práctica 6) d d d d d ←− 1 −→←− 2 −→←− 3 −→ L|HH|LL|HH|LL|HH|LL|H LL|HHHH|LLLLLLLL LLLLLLLLLLLLLL LLLLLL|HHHH|LLLL mbm<DDD><DDD>mbmbmbmb Buses 2do Cuatrimestre de 2014 15 / 21 Máquinas de estado Ejercicio 4 - Solución (Práctica 6) Buses 2do Cuatrimestre de 2014 16 / 21 Máquinas de estado Ejercicio 4 - Solución (Práctica 6) Buses 2do Cuatrimestre de 2014 16 / 21 Máquinas de estado Ejercicio 5 Sea un bus sincrónico para el esquema 1 cuyo protocolo de escritura es el que sigue: 1. La CPU: coloca la dirección que desea leer en el bus de direcciones sube la lı́nea de RD/W para indicar que es una escritura. sube la lı́nea de REQ para indicar que quiere un acceso a memoria. 2. El módulo de memoria: detecta la señal alta en REQ toma la dirección del bus de direcciones. sube la señal ACK para indicar al CPU que responderá al pedido y sube DWAIT para indicar que está esperando el dato. 3. La CPU coloca el dato en el bus de datos y baja la lı́nea de RD/W. 4. El módulo de memoria toma el dato del bus de datos y baja la señal DWAIT. 5. La CPU detecta la señal baja en DWAIT y quita la dirección y el dato. 6. La memoria indica la finalización de la operación bajando ACK. 7. La CPU detecta esto y baja REQ. Dibujar el diagrama de tiempos del protocolo y las máquinas de estado del CPU y la memoria. (Práctica 6) Buses 2do Cuatrimestre de 2014 17 / 21 Máquinas de estado Ejercicio 5 - Solución (Práctica 6) Buses 2do Cuatrimestre de 2014 18 / 21 Máquinas de estado Ejercicio 5 - Solución JA! Pensaron que se los iba a dar resuelto, ¿no? Pues no, este ejercicio va de TAREA. (Práctica 6) Buses 2do Cuatrimestre de 2014 18 / 21 Yapa teórica Los BUSES ¿Son parte de la arquitectura o de la organización de la computadora? (Práctica 6) Buses 2do Cuatrimestre de 2014 19 / 21 ¿Cómo seguimos? (Práctica 6) Buses 2do Cuatrimestre de 2014 20 / 21 ¿Cómo seguimos? Ya pueden hacer (toda) la práctica 6: Buses (Práctica 6) Buses 2do Cuatrimestre de 2014 20 / 21 ¿Cómo seguimos? Ya pueden hacer (toda) la práctica 6: Buses El martes que viene a las 18 hs es el Taller de Buses (obligatorio) en el Labo. (Práctica 6) Buses 2do Cuatrimestre de 2014 20 / 21 ¿Preguntas? ( En un ratito damos los parciales corregidos ) (Práctica 6) Buses 2do Cuatrimestre de 2014 21 / 21