Buses Transparencias

download Buses Transparencias

of 86

Transcript of Buses Transparencias

  • 7/22/2019 Buses Transparencias

    1/86

    Tema 1:

    CONEXIN DE PROCESADORES.BUSES

    http:// www.atc.us.es

    Arquitectura deComputadores

  • 7/22/2019 Buses Transparencias

    2/86

    NDICE (1)NDICE (1)

    INTRODUCCIN: estructura de un computador y mquina de VonNeumann.

    INTRODUCCIN A LOS BUSES: Caractersticas y tipos de seales Clasificacin de buses Jerarqua de buses Cronogramas Diagramas de Temporizacin

    LNEAS DE DATOS Y DIRECCIN Organizacin de la memoria Memorias ROM Decodificacin de espacios de memoria

  • 7/22/2019 Buses Transparencias

    3/86

    NDICE (2)NDICE (2)

    LNEAS DE CONTROL Seales de sincronizacin Seales de arbitraje Circuitera usada en la interfaz de bus

    EJEMPLOS DE CONEXIONES A PROCESADORES REALES: La familia 80x86. El 8086. La familia 68000. El 68000. Circuitera adicional: el Reset y el Reloj. Ejemplo de aplicacin: diseo de un sistema de memoria para un 68000.

    EJEMPLO DE BUS REAL: EL BUS PCI

  • 7/22/2019 Buses Transparencias

    4/86

    INTRODUCCIN (1) En 1946 John Louis Von Neumann describi lo

    que son los fundamentos para la construccin ydesarrollo de los todos los computadores.

    Instrucciones y datos se almacenan juntos en un

    medio uniforme: la memoria. Elemento en memoria ambiguo: es dato o

    instruccin? Depende de cmo se opere o ejecute

    respectivamente. Presencia de registros internos: registro de

    instruccin y otro de datos.

  • 7/22/2019 Buses Transparencias

    5/86

    INTRODUCCIN (2) Ciclo repetitivo de pasos: localizar y ejecutar en

    secuencia las instrucciones de un programa. Con el modelo Von Neumann se construyeron:

    EDVAC (1949, primera con almacenamiento

    masivo memoria), EDSAC (1949, ordenadorelectrnico) y UNIVAC (1951, primer ordenadorcomercial y uso compilador).

    Tres componentes fundamentales: CPU procesador, memoria y sistema de Entrada/salida(E/S) de datos. Bus el cuarto componente?

  • 7/22/2019 Buses Transparencias

    6/86

    INTRODUCCIN (3)

  • 7/22/2019 Buses Transparencias

    7/86

    INTRODUCCIN (4) Elementos de un Sistema Basado en Computador:

    CPU PROCESADOR: nico elemento activo que: Maneja datos e instrucciones. Realiza operaciones: transferencia, aritmticas, lgicas, etc.

    (Posee un Juego de Instrucciones) Se dice elemento activo porque recibe una serie de datos y

    genera otros diferentes.

    MEMORIA: elemento (pasivo) que: Almacena datos/instrucciones, sin alterarlos, en un conjunto de

    celdas, direccionables por el procesador, para lectura o

    escritura. Capacidad de direccionamiento de una memoria: M=2n. La capacidad se define en Kilobytes (210), Megabytes (220),

    Gigabytes (230). Mapa de memoria de una CPU: datos, programas y E/S.

  • 7/22/2019 Buses Transparencias

    8/86

    INTRODUCCIN (5) SUBSISTEMA DE ENTRADA/SALIDA (E/S):

    elemento que comunica el computador con el exterior. El computador ve el subsistema de E/S como un conjunto de

    posiciones de memoria sobre las que se puede escribir o leerdatos.

    BUS DEL SISTEMA (BUS): elemento que comunicala CPU, MEMORIA y E/S.

    CPU Memoria

    E/S

    Bus del sistema

    Ar qui t ect ur a gener al de

    un or denador comput ador moder no

  • 7/22/2019 Buses Transparencias

    9/86

    INTRODUCCIN (6)Esquema gener alde f unci onami ent o

    de un or denador comput adormoder no

  • 7/22/2019 Buses Transparencias

    10/86

    NDICE (1)NDICE (1)

    INTRODUCCIN: estructura de un computador y mquina de VonNeumann.

    INTRODUCCIN A LOS BUSES: Caractersticas y tipos de seales Clasificacin de buses Jerarqua de buses Cronogramas Diagramas de Temporizacin

    LNEAS DE DATOS Y DIRECCIN Organizacin de la memoria Memorias ROM Decodificacin de espacios de memoria

  • 7/22/2019 Buses Transparencias

    11/86

    INTRODUCCIN A LOS BUSES Los componentes de un computador (CPU, Memoria,

    E/S) se conectan entre s mediante un conjunto delneas que transmiten seales con funcionesespecficas.

    Tres tipos de seales que constituyen un bus:

    direcciones (de memoria o E/S), datos y control.

    CPUMemoriano Voltil

    paraArranque

    DispositivoE/S

    Memoria deDatos y

    Programas

    Bus de Datos

    Bus de Direcciones

    Bus de Control

  • 7/22/2019 Buses Transparencias

    12/86

    Caractersticas y tipos de

    seales de buses (1) Los buses se componen de lneas elctricas que

    transmiten un 0 (cero voltios) o un 1 (ms de cero

    voltios). Lneas/bus de datos: camino para transferir datos

    entre el resto de componentes de un computador.Su anchura (nmero de lneas elctricas) suele seruna potencia de dos (8=23, 16=24, 32=25, 64=26, ...).

    Lneas/bus de direcciones: designan laposicin/direccin de los datos. Son salidas de la

    CPU/procesador y determinan capacidad dedireccionamiento. Lneas/bus de control: controlan el acceso y uso de

    las lneas/buses anteriores.

  • 7/22/2019 Buses Transparencias

    13/86

    Caractersticas y tipos de seales

    de buses (2)

    E/S

    MEMORIA

    CPU

    BUS DE DIRECCIONES

    BUS DE DATOS

    CONTROL

    CONTROL

  • 7/22/2019 Buses Transparencias

    14/86

    Tipos de buses:

    SERIE y PARALELO: los primeros transmiten bit a bit y lossegundos varios bits a la vez. MULTIPLEXADOS y NO MULTIPLEXADOS DEDICADOS: los

    multiplexados realizan diferentes funciones en funcin de lasnecesidades del momento.Ejemplo: bus compartido para direcciones y datos ahorro enHardware y por lo tanto en costes.

    CENTRALIZADOS y DISTRIBUIDOS (arbitracin): necesidad dedeterminar qu elemento transmite y cul recibe. Generalmente

    existe arbitracin centralizada por la CPU procesador. SNCRONOS y ASNCRONOS (temporizacin): cmo ocurren los

    diferentes eventos (comienzo, fin, ...) implicados en la transmisinde informacin. Utilizacin de una seal de reloj (comunicacinsncrona) unas lneas de protocolo (comunicacin asncrona).

    Clasificacin de buses

  • 7/22/2019 Buses Transparencias

    15/86

    Jerarqua de buses (1) Compatibilidad entre buses:

    slo si son elctricamente idnticos. Las caractersticas de losdiferentes tipos de buses deben estar normalizadas. Ejemplo:bus PCI, AGP, USB, FireWire...

    Antiguamente slo exista un bus principal que loconectaba todo: bus del sistema.

    Actualmente existe un conjunto de busesconectados entre s y formando una jerarqua.

    Facilita la mejora del rendimiento de todo el

    computador al agrupar dentro de los diferentestipos de buses aquellos componentes delordenador que tienen aproximadamente la mismavelocidad de transmisin de la informacin.

  • 7/22/2019 Buses Transparencias

    16/86

    Jerarqua de buses (2) Contra ms lejos de la CPU, buses ms lentos y

    normalmente de menos lneas de datos. Varios tipos de buses en funcin de su posicin

    dentro de la jerarqua:

    Bus de CPU bus local del procesador: elementosms rpidos tales como la memoria cach.

    Bus local bus del sistema (Front Side Bus): conectaelementos tales como la memoria principal odispositivos rpidos (por ejemplo AGP).

    Bus de expansin y/o E/S: PCI, USB, ATA, SCSI, ...

  • 7/22/2019 Buses Transparencias

    17/86

    Jerarqua de buses (3)

    Chipset

    Bus PCI

    Puente

    Sur

    Canales Audio

    Puertos USB

    Canales IDE

    Interface Tarjeta Red

    Puente

    Norte

    Tarjeta

    Grfica

    Memoria

    DDR-DRAM

    ProcesadorIntel Pentium4

    Memoria

    Flash BIOS

    Cache/Adaptador

    SerieFAX

    LANVideoGrficosFirewireSCSI

    MemoriaPrincipal

    Procesador

    ModemInterfaz con elbus de

    expansin

    Bus del sistemaBus local

    Bus del sistema

    Bus de expansin

    Esquema tpico de jerarqua debuses en un ordenador. Los busesde arriba son los ms rpidos y elbus de expansin el ms lento.

    Esquema de conexin decomponentes en un PC. El chipPuente Sur agrupa los busesms lentos y el Puente Norte losms rpidos.

  • 7/22/2019 Buses Transparencias

    18/86

    Cronogramas o Diagramas de

    Temporizacin (1) Muestran cmo ocurren las secuencias de

    acciones y la relacin causa-efecto entrediferentes sucesos Muestran comunicacinentre dos dispositivos conectados a travs de unbus.

    Las lneas de un bus tienen dos niveles de sealo tensin 0 1.

  • 7/22/2019 Buses Transparencias

    19/86

    Cronogramas o Diagramas de

    Temporizacin (2) Flanco subida: transicin seal 0 a 1.

    Flanco bajada: transicin seal 1 a 0. Se requiere cierto tiempo para estabilizar las

    transiciones de las seales (zona metaestabilidad).

    Seal triestado: 0, 1 o alta impedancia(desconectada). Varias seales pueden formar grupos y se

    representan como una lnea compuesta.

  • 7/22/2019 Buses Transparencias

    20/86

    Cronogramas o Diagramas de

    Temporizacin (3) La transicin de una seal en un dispositivo

    puede dar lugar a transiciones en las seales deotros dispositivos.

    En los buses denominados sncronos existe unaseal de reloj que sirve para sincronizarsucesos.

    Es una seal peridica y repetitiva.

  • 7/22/2019 Buses Transparencias

    21/86

    Cronogramas o Diagramas de

    Temporizacin (4)

    Generalmente en los buses sncronos se lee elvalor de una seal a la subida o a la bajada de laseal de reloj.

  • 7/22/2019 Buses Transparencias

    22/86

    Cronogramas o Diagramas de

    Temporizacin (5)

    Esquema cronograma

    para una operacin delectura sncrona.

    La CPU emite unaseal de lectura y coloca

    direccin en busdirecciones.

    Cada suceso ocupa unciclo de reloj.

  • 7/22/2019 Buses Transparencias

    23/86

    Cronogramas o Diagramas de

    Temporizacin (6) Esquema Cronograma para una operacin de lecturaasncrona. 1) El dispositivo Maestro

    solicita acceso: indica haydireccin y seales de controlvlidas.

    2) El Esclavo realiza latarea pedida y activa su sealal terminar.

    3) El Maestro coge el dato

    vlido y lo almacena ydesactiva seal.

    4) El Esclavo detecta que elMaestro ha desactivado su

    seal y desactiva la suya.

  • 7/22/2019 Buses Transparencias

    24/86

    NDICE (1)NDICE (1)

    INTRODUCCIN: estructura de un computador y mquina de Von

    Neumann.

    INTRODUCCIN A LOS BUSES: Caractersticas y tipos de seales

    Clasificacin de buses Jerarqua de buses Cronogramas Diagramas de Temporizacin

    LNEAS DE DATOS Y DIRECCIN Organizacin de la memoria Memorias ROM Decodificacin de espacios de memoria

  • 7/22/2019 Buses Transparencias

    25/86

    LNEAS DE DATOS Y

    DIRECCIN (1) Lnea de datos nicas realmente necesarias.

    Lneas direccin y control necesarias paracorrecto funcionamiento. Ejemplo: bus serie.

    Ancho de banda, data rate bits por unidad de

    tiempo: generalmente expresado enbits/segundo. Ejemplo: bus PCI de 64 bits a66MHZ 64 bits * 66*106 = 4224 Mbps = 528

    MB/s Lo normal es que los buses conectados a la CPU

    sean del tamao de palabra del procesador.

  • 7/22/2019 Buses Transparencias

    26/86

    LNEAS DE DATOS Y

    DIRECCIN (2) Buses ms pequeos: menor patillaje, opcin de bajo

    coste. Buses ms grandes: aumento del ancho de banda.

    Usados en procesadores superescalares que soncapaces de ejecutar ms de una instruccin por ciclo.

    Lneas de direccin: indican localizacin datopara L/E y determinan nmero posicionesaccesibles. Ejemplo: en el 68000 hay 24 bitsdirecciones 224 bytes = 16 MB.

    Es posible dividiendo la fase de direcciones endos ciclos/partes (o ms), acceder a msposiciones. Ejemplo: bus PCI.

  • 7/22/2019 Buses Transparencias

    27/86

    LNEAS DE DATOS Y

    DIRECCIN (3) A veces se realiza el multiplexado en el tiempo: se

    comparten los buses de datos y direcciones a

    travs de las mismas lneas. Ventajas: se disminuye el patillaje del procesador y as

    se ahorran costes.

    Desventajas: se necesitan seales externas paradiferenciar ambos buses y circuitera para separarambos valores. Es ms lento.

    Los buses NO multiplexados son ms rpidos al

    poder indicar direcciones y recibir datos a la vez.Direcc.

    NDirecc. N+1

    Dato N-1 DatoN

  • 7/22/2019 Buses Transparencias

    28/86

    LNEAS DE DATOS Y

    DIRECCIN (4) Actualmente una misma direccin provoca

    varios accesos (consecutivos). Por ello ventajabuses NO multiplexados desaparece. Ejemplo:acceso en modo rfaga del bus PCI.

    La memoria es ms lenta que el procesador

    ciclos partidos split transactions: la CPU unavez transmitida la direccin del dato libera el bus.

    Luego espera a que la memoria o el perifrico deE/S ponga el resultado en un buffero comuniquedato disponible a travs del bus de control.

  • 7/22/2019 Buses Transparencias

    29/86

    LNEAS DE DATOS Y

    DIRECCIN (5) Ventaja: aumenta utilizacin del bus otros

    dispositivos lo pueden usar. Desventajas: el dato no se lee cuando est

    disponible, se compiten dos veces por el bus,...

    ORGANIZACIN DE LA MEMORIA

    En la memoria principal (memoria RAM) y

    secundaria la unidad mnima de informacinsuele ser el byte. La palabra del procesador se compone a su vez

    de varios bytes.

  • 7/22/2019 Buses Transparencias

    30/86

    Organizacin de la memoria (1)

    Alineamiento: un procesador accede aposiciones de memoria pares (A

    0

    = 0) paraoptimizar los accesos a memoria. Estos accesossuponen acceso en paralelo de los bancos dememoria, lo cual, evita dos accesos a memoria

    para leer una palabra de procesador. Ejemplo:

    En el esquema se ve un posibleesquema de memoria para un

    80286 con tamao de palabra de16 bits: dos bancos de 1 byte y20 lneas de direccin (A0 ...A19).Con el bit A0 se selecciona elbanco: byte par o byte impar dela palabra.

  • 7/22/2019 Buses Transparencias

    31/86

    Organizacin de la memoria (2)

    El alineamiento es importante para acceder a palabras deuna forma eficiente. Los microprocesadores luegopueden acceder a un byte dentro de la palabra. Ejemplo:

    seal BHE* en el procesador 8086.

    En el esquema elprocesador accede a

    una palabra imparde 16 bits. Eso implicaacceder primero a el

    banco 1 de memoria ydespus al banco 0.

    Algunos microprocesadores como el68000 exigen alineamiento de palabras.

  • 7/22/2019 Buses Transparencias

    32/86

    Organizacin de la memoria (3)

    Estas formas de direccionamiento se pueden generalizara ms bancos. Ejemplo: el 80586 (Pentium) tienepalabras de 32 bits. Un posible esquema de memoriasera:

    El siguiente alineamiento de palabrasen memoria no se permite en un

    procesador de la familia 68000. Elobjetivo es que al leer una posicinpar de memoria se lea una palabracompleta.

  • 7/22/2019 Buses Transparencias

    33/86

    Organizacin de la memoria (4)

    Aunque el programador trabaja con 232 y puede

    direccionar con los bits A31.. A0, externamente seutilizan A31.. A2 como direccin, de cada palabra de 32bits, y los dos ltimos bits activan las seales de control/BE0-/BE3 que controlan el banco donde se accede.

    El Motorola 68000 tiene 16 bits para datos, en dosbancos de un byte, y 23 bits para direcciones de manera

    que A23.. A1 apuntan a 223 palabras ( 224 bytes). A0 noexiste. A cambio tiene dos seales, UDS* y LDS* quesirven para acceder a uno y/o otro banco.

  • 7/22/2019 Buses Transparencias

    34/86

    Memorias ROM (1)

    Memorias no voltiles. Borrado/escritura de datoscostosa.

    Varios tipos en funcin de su forma de borrado:ROM,PROM, EPROM, EEPROM, FlashEEPROM (utilizada para guardar la BIOS en PCsactuales).

    Diferentes capacidades (N posiciones x Bits porposicin): 1Kx8, 16Kx8, 32Kx8, 64Kx8, ... Buses de datos y direcciones.

    MEMORIAS ROM

  • 7/22/2019 Buses Transparencias

    35/86

    Memorias ROM (2) Seales de control:

    CS* CE* (Chip Select Chip Enable): la memoriaempieza a trabajar decodificando la direccin.

    OE* (Output Enable): indica ciclo de lectura WE* (Write Enable): indica ciclo de escritura.

    Incompatible con OE*.Conj unt o de pi nes del chi p62256P- 10 ( 32Kx8) .

    Bus de di r ecci ones ( A0 A14) : 215 = 25Ks = 32Ks

    Bus de dat os ( I / O1 I / O8) : 8 bi t s = 1 byte

  • 7/22/2019 Buses Transparencias

    36/86

    Memorias ROM (3)

    Di agr ama de ci cl o de l ect ur a si mpl i f i cado de

    memor i a 62256P- 10 ( 32Kx8)

    f

  • 7/22/2019 Buses Transparencias

    37/86

    Decodificacin de espacios de

    memoria (1)

    La memoria total que el procesador puede direccionar sedivide en varios espacios de memoria.

    Cada espacio de memoria puede tener asociado un

    determinado tipo de memoria (uno o varios chips dememoria tipo ROM RAM).

    Las direcciones que enva el procesador tienen que ser

    decodificadas para activar unos chips de memoria uotros.

    Las activaciones de memoria (en los chips) se realizanmediante la seal CS* (chip select).

    DECODIFICACIN DE ESPACIOS DE MEMORIA

    D difi i d i d

  • 7/22/2019 Buses Transparencias

    38/86

    Decodificacin de espacios de

    memoria (2)

    Distribucin de espacios dememoria en el espacio dedirecciones de un

    procesador.

    Decodificacin total delespacio de direcciones.

    D difi i d i d

  • 7/22/2019 Buses Transparencias

    39/86

    Decodificacin de espacios de

    memoria (3) Dos tipos de decodificacin de direcciones:

    Decodificacin total: cada posicin de memoria (byte,

    palabra, ...) slo puede ser decodificada por unadireccin del procesador. Usada en sistemas depropsito general.

    Decodificacin parcial: una posicin de memoriapuede ser accedida mediante varias direcciones queenva el procesador. Sencilla pero no utiliza toda lacapacidad de la memoria.

    Para hacer la decodificacin se pueden empleardecodificadores. En realidad se suelen emplear PALs(Programmable Array Logic), PLAs (Programmable LogicArray) o circuitos integrados especficos.

  • 7/22/2019 Buses Transparencias

    40/86

    NDICE (2)NDICE (2)

    LNEAS DE CONTROL

    Seales de sincronizacin Seales de arbitraje Circuitera usada en la interfaz de bus

    EJEMPLOS DE CONEXIONES A PROCESADORES REALES: La familia 80x86. El 8086. La familia 68000. El 68000. Circuitera adicional: el Reset y el Reloj. Ejemplo de aplicacin: diseo de un sistema de memoria para un 68000.

    EJEMPLO DE BUS REAL: EL BUS PCI

  • 7/22/2019 Buses Transparencias

    41/86

    LNEAS DE CONTROL

    Ciclo de bus: periodo de tiempo en el que el procesadorrealiza un acceso exterior (no registros internos) amemoria o E/S.

    Tiene que haber lneas de control dentro del bus decontrol que distinga el tipo de acceso: lectura, escritura,memoria, E/S, instrucciones, datos, interrupciones, ...

    Dos posibilidades para activacin de seales:

    El procesador activa directamente las seales decontrol. Ejemplo: 80x86, seales rd*, wr*, M/IO, ...

    El procesador indica su estatus y una circuitera

    externa activa seales de control. Ejemplo: 68000.

    IDENTIFICADOR DE CICLO DE BUS

  • 7/22/2019 Buses Transparencias

    42/86

    Seales de sincronizacin (1)

    Un ciclo de bus tiene varios pasos indicadospor seales de control para que los eventosocurran en el orden correcto.

    Tres tipos de sincronizacin: Sistemas SNCRONOS:

    Gobernados por una seal de reloj peridica.

    Indica cuando leer, escribir, cuantos ciclos hay quemantener una seal, ...

    SEALES DE SINCRONIZACIN

  • 7/22/2019 Buses Transparencias

    43/86

    Seales de sincronizacin (2) Tpico de buses locales o de sistema. Requiere que todos los dispositivos (memoria,

    CPU, perifricos de E/S) tengan la misma seal dereloj. En frecuencias altas el retraso depropagacin de la seal entre los diferentesdispositivos alejados puede provocar desfases

    temporales. Ejemplo de sistema/bus sncrono: el bus PCI.

    Sistemas ASNCRONOS:

    Utilizan seales del bus de control que sincronizanlos diferentes pasos en la comunicacin. Ejemplo: protocolo de cuatro eventos handshake

    (apretn de manos).

  • 7/22/2019 Buses Transparencias

    44/86

    Seales de sincronizacin (3)

    Sistemas SEMISNCRONOS, MIXTOS de

    BUS SNCRONO: Buses sncronos a los que se les aaden seales

    asncronas para comunicarse con dispositivos

    lentos. Los dispositivos rpidos pueden tener que esperar

    ciertos ciclos de reloj hasta la activacin de alguna

    seal por parte del dispositivo lento.

  • 7/22/2019 Buses Transparencias

    45/86

    Seales de sincronizacin (4) A estos tiempos de espera se les llama estados de

    espera (wait states).

    Ejemplo: el procesador 68000 y la seal DTACK*(Data Acknowledgement).

    Cmo y quin controla el acceso al bus?

    SEALES DE ARBITRAJE

  • 7/22/2019 Buses Transparencias

    46/86

    Seales de arbitraje (1) Un dispositivo Master(Maestro) puede controlar el bus

    mientras que un dispositivo Slave (Esclavo) interpreta las

    seales del Master. Pueden existir varios dispositivos Master. Ejemplo: controlador de DMA (Slave) en arquitecturas

    80x86 que realiza transferencias entre la memoria y los

    perifricos de E/S. Pide permiso de utilizacin del bus delsistema a la CPU (Master) mediante la seal HOLD. LaCPU concede permiso con seal HOLDA.

    1) El DMA pide permiso.

    2) El P da permiso.

    3) El DMA devuelve el control.

    4) El P retoma el control.

  • 7/22/2019 Buses Transparencias

    47/86

    Seales de arbitraje (2) La arbitracin de un bus puede ser centralizada o

    distribuida. En la arbitracin centralizada un dispositivo hace

    de arbitrador y la arbitracin puede ser enparalelo.

    Ant e var i as pet i ci onesRQ se act i va una sealde concesi n GT.Si st ema de concesi n

    var i ado: r ot aci n,pr i or i dades, . . .

    Ej empl o: bus PCI .

  • 7/22/2019 Buses Transparencias

    48/86

    Seales de arbitraje (3) Configuracin en Daisy Chain (cadena de

    margaritas): la prioridad viene determinada por la

    proximidad del Slave al arbitrador.

    En la arbitracin distribuida todos los Masterse

    ponen de acuerdo en ver quin transmite.Parecido a una red local.

  • 7/22/2019 Buses Transparencias

    49/86

    Seales de arbitraje (4) Los nodos (dispositivos Master) envan un

    identificador al bus y posteriormente monitorizan

    el estado del bus. Si lo que dejaron en el busdifiere de lo posteriormente ledo, han perdido laarbitracin.

    Ejemplos: bus SCSI y CAN (Controller AreaNetwork). Si se utilizan lneas de arbitracin diferentes a las

    de datos es posible transmitir datos mientras serealiza la transmisin de datos y aprovecharmejor el ancho de banda del bus.

    Circuitera usada en la interfaz de

  • 7/22/2019 Buses Transparencias

    50/86

    Circuitera usada en la interfaz de

    bus (1)

    Circuitera usada para conectar dispositivos(memoria E/S) a la CPU: Dispositivos combinacionales (no conservan estado) puertas lgicas (AND, OR, ...), inversores lgicos,

    multiplexores, decodificadores, ... Dispositivos secuenciales (conservan estado)

    buffers, transceivers, latches, registros, ...

    CIRCUITERA USADA EN LA INTERFAZ DE BUS

    Circuitera usada en la interfaz de

  • 7/22/2019 Buses Transparencias

    51/86

    Circuitera usada en la interfaz de

    bus (2)

    En estos ltimos, la salida est conectada demanera que siempre est a la vista el contenido:

    bien lo almacenado o la nueva entrada. Tambinsuele haber un OE* (Output Enable).

  • 7/22/2019 Buses Transparencias

    52/86

    NDICE (2)NDICE (2)

    LNEAS DE CONTROL

    Seales de sincronizacin Seales de arbitraje Circuitera usada en la interfaz de bus

    EJEMPLOS DE CONEXIONES A PROCESADORES REALES: La familia 80x86. El 8086. La familia 68000. El 68000. Circuitera adicional: el Reset y el Reloj. Ejemplo de aplicacin: diseo de un sistema de memoria para un 68000.

    EJEMPLO DE BUS REAL: EL BUS PCI

    EJEMPLOS DE CONEXIONES A

  • 7/22/2019 Buses Transparencias

    53/86

    EJEMPLOS DE CONEXIONES A

    PROCESADORES REALES

    En los primeros 80x86 haba 20 lneas de direccin. Enlos Pentium hay 32 puede direccionar hasta 4 GBs dememoria RAM.

    El bus de datos: 16 lneas (8086, 80186, 80286), 32

    lneas (80386, 80486) y 64 lneas (Pentium). El bus de control: diversas lneas.

    Como ejemplo se va a describir el 8086: 20 lneas de

    direcciones y 16 lneas de datos (palabra de procesadorde 16 bits).

    Posiciones pares en un banco e impares en otro

    (seleccin con A0).

    LA FAMILIA 80x86

  • 7/22/2019 Buses Transparencias

    54/86

    El procesador 8086 (1) Con las lneas A19 ... A1 se accede a las

    posiciones dentro de cada banco de memoria. Con la seal BHE* se accede a cualquier byte

    dentro de la palabra a la palabra entera. Seales de control del 8086 (y familia 80x86):

    RD*, WR*: Lectura o escritura. M/IO*: Indica si se accede a una direccin de memoria

    o de entrada/salida.

    ALE (Address Latch Enable). Sirve para capturar valorde la direccin en un Latch. El bus es multiplexado, elvalor de direccin que aparezca en el bus sersustituido a continuacin por el valor del dato.

  • 7/22/2019 Buses Transparencias

    55/86

    El procesador 8086 (2) READY. Es una seal para la sincronizacin con otros

    dispositivos como, por ejemplo, la memoria.

    Equivalente a DTACK* del 68000. Cada ciclo de bus tiene 4 ciclos de reloj:

    T1: Direccin, ALE (se almacena la direccin en loslatches), M/IO*.

    T2: Desaparece valor de direccin; Bus en altaimpedancia; Comienza RD*.

    T3: Lectura del dato a la bajada del ciclo. Para ello

    tiene que estar Ready en nivel alto. Pueden existirestados de espera. Ready=0 significa no preparado. T4: FIN. Se desactivan todas las seales de control y

    finaliza el ciclo

  • 7/22/2019 Buses Transparencias

    56/86

    El procesador 8086 (3) En el caso de ciclo de bus para escritura hay

    algunas diferencias: La CPU pone el dato.

    En T2 desaparece el valor de direccin, y se sustituyepor el dato. Se activa WR*.

    La escritura se realiza en T4, a la subida de WR*.Decisin de diseo: retardar lo ms posible laescritura.

    El 8086 tiene una cola de instrucciones donde sevan almacenando conforme se van leyendo.

  • 7/22/2019 Buses Transparencias

    57/86

    El procesador 8086 (4)

    En el esquema anterior se utilizan las lneas mssignificativas del bus de direcciones (bits mssignificativos), para activar el/los chip/s de memoria a losque se va a acceder Seal CS* Chip Select.

    ( Ej empl o conexi n y acceso con pr ocesador genr i co)

  • 7/22/2019 Buses Transparencias

    58/86

    El procesador 8086 (5) Las lneas/bits menos significativos del bus de

    direcciones se usan como direcciones dentro del/

    de los chip/s seleccionado/s. Si no hay acceso a datos, el bus de datos est

    en alta impedancia (HI).

    La seal RD* puede usarse en muchasmemorias como indicador de Output Enable.Aunque puede parecer redundante (bastara con

    WR*=0 para escritura y WR*=1 para lectura) asse permite que en lectura no se pongan los datoshasta bien avanzado el ciclo de bus.

  • 7/22/2019 Buses Transparencias

    59/86

    El procesador 8086 (6)

    Ciclo delectura de un8088/8086simplificado

  • 7/22/2019 Buses Transparencias

    60/86

    El procesador 8086 (7)

    Ciclo deescritura de un8088/8086simplificado

    EJEMPLOS DE CONEXIONES A

  • 7/22/2019 Buses Transparencias

    61/86

    PROCESADORES REALES

    El Motorola 68000 (y familia) fue utilizado en losprimeros ordenadores Macintosh. Encapsulado en chips de 64 pines. Incluye 23

    lneas de direcciones (A1 A

    23) y 16 lneas de

    datos (D0 D15). La memoria se divide en dos bancos de un byte

    cada uno. Con las seales UDS* y LDS* se

    puede seleccionar la parte alta y baja de unapalabra de 16 bits respectivamente comomximo se pueden direccionar 224 bytes = 16MB.

    LA FAMILIA 68000

  • 7/22/2019 Buses Transparencias

    62/86

    El procesador 68000 (1) Seales de control:

    AS* (Addres Strobe): indica que la direccin est

    preparada es vlida. R/W*: indica que el acceso es de lectura (1) o

    escritura (0). DTACK*: indica al 68000 que la informacin est

    disponible (en D0 D15) en el caso de ciclo bus paralectura que han sido tomados del bus de datos (enD0 D15) en el caso de ciclo bus para escritura.Permite comunicacin asncrona. Seal similar aReady en 8086.

    Reset*: inicializacin de controladores conectados al68000.

  • 7/22/2019 Buses Transparencias

    63/86

    El procesador 68000 (2) Halt*: deteccin de errores al tratar errores. El

    procesador se queda parado y lo indica con la seal

    Halt. BERR* (Bus Error): se le indica a la CPU (el 68000)

    que aborte el ciclo de bus actual. Activada entre AS* yDTACK*.

    Seales de control del bus: BR* (Bus Request): peticin de uso del bus por otro

    dispositivo. Por ejemplo un controlador de DMA.

    BG* (Bus Grant): concesin del uso del bus por partedel 68000. BGACK* (Bus Grant Ackowledge): confirmacin de

    recepcin de seal BG*.

  • 7/22/2019 Buses Transparencias

    64/86

    El procesador 68000 (3) Seales de Control de Interrupciones: usadas

    para trabajar en modo asncrono con dispositivosde E/S e indicar estados internos 68000. IPL0*, IPL1*, IPL2* (Interrupt Level) : sirven para

    indicar prioridades de controladores de E/S que

    solicitan interrupcin (realizacin de una operacin deE/S de datos).

    FC0*, FC1*, FC2*: todas a 1 indican reconocimiento

    (Acknowledge) de la peticin de interrupcin para uncontrolador de E/S. Tambin sirven para indicar elestado interno del 68000.

  • 7/22/2019 Buses Transparencias

    65/86

    Ejemplo decomunicacin

    simple entre el68000 y lamemoria

  • 7/22/2019 Buses Transparencias

    66/86

    El procesador 68000 (4) El ciclo de bus tarda 4 ciclos de reloj

    divididos en 8 semiciclos (S0

    ... S7

    ): S0: activacin de R/W. Direccin en alta

    impedancia. S1: colocacin de la direccin vlida. S2: Se activan AS*, UDS*, LDS*. S4: si se activa DTACK*, para adaptar el

    proceso a memorias ms lentas, indica a laCPU que todo va bien. Si no se activa, quieredecir que hay que esperar a la memoriarepitiendo S4.

  • 7/22/2019 Buses Transparencias

    67/86

    El procesador 68000 (5) S6: A la bajada de este semiciclo, el procesador

    leer lo que haya en el bus de datos. Los

    espacios de tiempo intermedios (S3, S5) en losque no se hace nada, son necesarios pararespetar los tiempos que las memorias invierten

    en los accesos y para asegurar la estabilidad dela seal en el momento de la lectura.

    Las seales al pasar de un estado a otro

    pasan por una zona de metaestabilidad

    Respetar unos tiempos de transicin ymantenimiento de las seales.

  • 7/22/2019 Buses Transparencias

    68/86

    Ciclo de lecturadel 68000

  • 7/22/2019 Buses Transparencias

    69/86

    Ciclo de escrituradel 68000

  • 7/22/2019 Buses Transparencias

    70/86

    El procesador 68000 (6) Tiempo de Setup: en el caso de acceso por lectura,

    necesidad de que el dato o la seal est un tiempo

    antes (tDICL en el 68000). En el caso de acceso porescritura es el tiempo que debe permanecer el dato enel bus hasta desactivar seal CS (tDOSL + tDSL en el68000).

    Tiempo de Hold: necesidad de que el dato o la sealpermanezca estable un tiempo una vez desactivado elCS (chip select). Durante S7 en el 68000 estos tiemposcorresponden: tSHDII en lectura y tSHDOI en escritura.

    El tiempo de acceso (tacc) en lectura se puedeconsiderar como el tiempo hasta obtener el dato, desdeactivacin de CS o bien desde que la direccin esvlida.

    EJEMPLOS DE CONEXIONES A

  • 7/22/2019 Buses Transparencias

    71/86

    PROCESADORES REALES

    El Reset: seal comn a todos los procesadoresque los lleva a un estado inicial. Dos tipos: el del usuario (accionado con un

    botn) y el de arranque (accionado alencenderse el sistema).

    Cada vez que se acciona se salta a unadireccin de memoria fija. En esas posiciones de

    memoria hay que colocar memoria no voltil. Enel 8086 la direccin es la FFFF0h y en el 68000la 0h.

    CIRCUITERA ADICIONAL: EL RESET Y EL RELOJ

    Circuitera adicional: el Reset y el

  • 7/22/2019 Buses Transparencias

    72/86

    Reloj Las lneas de direccin y memoria permanecen

    en alta impedancia, y las lneas de control

    inactivas. El reloj: La onda cuadrada que produce el cristal

    hay que adaptarla a nuestro sistema, que exigir

    una frecuencia mxima, frecuencia mnima, untiempo mximo de subida, un duty cycle(proporcin entre el tiempo que el ciclo est enalta y el periodo), sincronizacin con otrasseales, etc Un ciclo de reloj incluye dos estados peridicos: uno

    con valor 0 y otro con valor 1.

    Ejemplo de aplicacin: diseo de

  • 7/22/2019 Buses Transparencias

    73/86

    un sistema de memoria

    Memoria de 64Kbytes de EPROM con chips de 8Kx8.

    DISEO DE UN SISTEMA DE MEMORIA PARA UN68000

    1) Circuitera de Decodificacin

    Las 23 lneas de direcciones del 68000 (A1 ... A23) sedividen de la siguiente manera: A1 ... A13 : direccionamiento interno de cada chip de

    8Kx8 (vase que 213 = 23.210 = 8K) A14 y A15 : seleccin de los cuatro niveles de bancos

    (en total 8 chips de 8Kx8). A16 ... A23 : seleccin de la zona de memoria donde

    estn los 64K.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    74/86

    para un 68000 (1) Se sitan los 64Ks en la

    parte baja de memoria

    porque all empieza adireccionar el 68000 encaso de reset. Esto quieredecir que A

    16

    ... A23

    = 00h.

    Con las seales LDS* yUDS* se selecciona bloquepar o impar.

    La decodificacin de lasdirecciones es unadecodificacin completa.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    75/86

    para un 68000 (2)

    Solucin con decodificacin parcial o incompleta: si setuvieran por ejemplo otros 64Ks de memoria RAM,bastara con permitir mediante la lnea A23 cualquierdireccin a la mitad baja para la EPROM (A23 = 0) ycualquier direccin a la mitad alta para la RAM (A23 = 1).

    Circuito de

    decodificacin dedirecciones del anterioresquema.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    76/86

    para un 68000 (3)

    Si el 68000 funciona a una frecuencia de 12,5MHz (T = 80 ns), averiguar los tiempos deespera necesarios suponiendo los siguientestiempos de lectura para las memorias EPROMde 8Ks: A) Necesidad de direccin estable de 250 ns.

    B) Tiempo desde direccin vlida hasta dato vlido de250 ns. C) Tiempo de acceso desde CS*: 200 ns.

    2) Clculo Tiempos Acceso a Memoria y Estadosde Espera

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    77/86

    para un 68000 (4)

    Hay que comprobar atendiendo a los tiempos de un ciclode lectura de un 68000, que los tiempos mnimoscorrespondientes al acceso para lectura a la memoriaEPROM, se van a respetar. En caso contrario estados

    de espera. Tres casos a estudiar: a) duracin mnima de direccin

    estable (250 ns), b) tiempo mnimo de direccin estable(250 ns) y c) tiempo mnimo de decodificacin de las

    direcciones para CS* (200 ns).

    Esquema cronograma de lectura de

    un chip de memoria EPROM de8Ks

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    78/86

    para un 68000 (5) A) La duracin mnima de direccin estable:

    TDmin. = 3.5 T - TCLAV + TCHADZ.

    Tomando los casos ms desfavorables (valor mximoTCLAV y mnimo TCHADZ),TDmin. = 3.5*80 55 + 0 = 225 ns.

    No llega a los 250 ns requeridos Introducir un estado(ciclo) de espera, ya que 225ns + 80 ns >250 ns

    B) El tiempo mnimo desde direccin estable hasta datovlido:

    TDDmin. = 3 T - TCLAV - TDICLY el caso ms desfavorable (valores TCLAV - TDICLmximos),

    TDDmin. = 3 *80 - 55 - 10 = 175 ns

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    79/86

    para un 68000 (6)No llega a los 250 ns requeridos Introducir un estado(ciclo) de espera, ya que 175ns + 80 ns = 255 ns >250 ns

    C) En el tiempo mnimo de decodificacin de lasdirecciones para CS* hay que tener en cuenta, queviendo el esquema de decodificacin de direcciones y elcronograma de ciclo de lectura de un 68000, la seal

    ms tarda (desfavorable) es la AS*/UDS*/LDS*.TDec. = 2.5 T - TDICL - TCHSL

    Tomando los casos ms desfavorables (valores mximosde TDICL y TCHSL),

    TDDmin. = 2.5 *80 - 55 - 10= 135 nsPara hacer que supere los 200 ns necesarios, hace faltaun ciclo/estado de espera: 80 + 135 = 215 > 200 ns

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    80/86

    para un 68000 (7) En el anterior caso no se han tenido en cuenta los

    retrasos derivados de la circuitera (puertas lgicas y

    decodificadores). Si se supusiese un retraso de 16 ns(retraso mximo tpico de circuitos LS) y teniendo encuenta los dos elementos utilizados en la decodificacinde direcciones (puerta OR + decodificador):

    TDec. = 2.5 T - TDICL - TCHSL - 2*16 = 103 nsEsto supondra dos tiempos/ciclos de espera, ya que:

    2*80 + 103 = 263 > 200 ns

    En este ejemplo se va a despreciar el retraso porcircuitera.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    81/86

    para un 68000 (8) Ahora supongamos los siguientes datos de la

    EPROM para escritura: A) Pulso mnimo de escritura: 50 ns B) Tiempo de Setup-Hold: 20 ns

    En base al cronograma que muestra el ciclo deescritura de un 68000, es necesario algnestado/ciclo de espera? A) Tiempo de escritura TDSL= 80 ns > 50 ns y por lo

    tanto al 68000 le sobran 30 ns. B1) El Setup es TDSL + TDOSL = 80 + 15 = 95 ns > 20

    ns y tambin est sobrado de tiempo.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    82/86

    para un 68000 (9) B2) Por su parte el Hold de datos (tiempo que se debe

    esperar y mantener el dato despus de desactivar

    AS* LDS*/UDS* antes de hacer un siguienteacceso) es tambin 20 ns. Sin embargo, observandolos tiempos en el ciclo de escritura del 68000, esetiempo es TSHDOI = 15 ns y por lo tanto no es

    suficiente. Esto ltimo obliga a guardar en un latch el dato

    para que cuando se desactive AS* LDS*/UDS*,el dato siga a la entrada de la memoria EPROM.Insertar estados de espera no soluciona elproblema.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    83/86

    para un 68000 (10)

    La insercin de nueva circuitera puede afectar alclculo anterior de tiempos.

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    84/86

    para un 68000 (11)

    Para generar el estado de espera se utilizar laseal AS*. Se pueden utilizar cualquiera de lasseales del 68000 involucradas en el acceso a

    memoria: CS*, UDS*, ... El objetivo es retrasar la recepcin de la seal

    DTACK* en el 68000, una vez se ha accedido a

    los datos de la memoria EPROM, para quemantenga por ms tiempo activadas lasdirecciones (A0 A23) y el resto de seales decontrol (AS*, UDS*, ...).

    3) Circuitera de Generacin de Estados deEspera

  • 7/22/2019 Buses Transparencias

    85/86

    Diseo de un sistema de memoria

  • 7/22/2019 Buses Transparencias

    86/86

    para un 68000 (13)

    La salida del anterior circuito queda retrasadasegn se muestra en la figura siguiente:

    En escritura no senecesitan estados deespera. El circuito anteriorse completara con: