Upload
roberto-carlos
View
246
Download
0
Embed Size (px)
Citation preview
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: