Está en la página 1de 86

Arquitectura de

Computadores

Tema 1:
CONEXIN DE PROCESADORES.
BUSES

http:// www.atc.us.es

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

NDICE (2)

LNEAS DE CONTROL
{
{
{

EJEMPLOS DE CONEXIONES A PROCESADORES REALES:


{
{
{
{

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

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

INTRODUCCIN (1)

En 1946 John Louis Von Neumann describi lo


que son los fundamentos para la construccin y
desarrollo 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.

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, ordenador
electrnico) y UNIVAC (1951, primer ordenador
comercial y uso compilador).
Tres componentes fundamentales: CPU
procesador, memoria y sistema de Entrada/salida
(E/S) de datos. Bus el cuarto componente?

INTRODUCCIN (3)

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.

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 leer
datos.

BUS DEL SISTEMA (BUS): elemento que comunica


la CPU, MEMORIA y E/S.
CPU

Arquitectura general de
un ordenador
computador moderno

Memoria

Bus del sistema

E/S

INTRODUCCIN (6)
Esquema general
de funcionamiento
de un ordenador
computador
moderno

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

INTRODUCCIN A LOS BUSES

Los componentes de un computador (CPU, Memoria,


E/S) se conectan entre s mediante un conjunto de
lneas que transmiten seales con funciones
especficas.
Tres tipos de seales que constituyen un bus:
direcciones (de memoria o E/S), datos y control.
Bus de Datos
Bus de Direcciones
Bus de Control

Memoria de
Datos y
Programas

Memoria
no Voltil
para
Arranque

Dispositivo
E/S

CPU

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 ser
una potencia de dos (8=23, 16=24, 32=25, 64=26, ...).
Lneas/bus de direcciones: designan la
posicin/direccin de los datos. Son salidas de la
CPU/procesador y determinan capacidad de
direccionamiento.
Lneas/bus de control: controlan el acceso y uso de
las lneas/buses anteriores.

Caractersticas y tipos de seales


de buses (2)
BUS DE DIRECCIONES

BUS DE DATOS

E/S

CPU
CONTROL

CONTROL

MEMORIA

Clasificacin de buses

Tipos de buses:
{

SERIE y PARALELO: los primeros transmiten bit a bit y los


segundos varios bits a la vez.
MULTIPLEXADOS y NO MULTIPLEXADOS DEDICADOS: los
multiplexados realizan diferentes funciones en funcin de las
necesidades del momento.
Ejemplo: bus compartido para direcciones y datos ahorro en
Hardware y por lo tanto en costes.
CENTRALIZADOS y DISTRIBUIDOS (arbitracin): necesidad de
determinar 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 transmisin
de informacin. Utilizacin de una seal de reloj (comunicacin
sncrona) unas lneas de protocolo (comunicacin asncrona).

Jerarqua de buses (1)

Compatibilidad entre buses:


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

Antiguamente slo exista un bus principal que lo


conectaba todo: bus del sistema.
Actualmente existe un conjunto de buses
conectados entre s y formando una jerarqua.
Facilita la mejora del rendimiento de todo el
computador al agrupar dentro de los diferentes
tipos de buses aquellos componentes del
ordenador que tienen aproximadamente la misma
velocidad de transmisin de la informacin.

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: elementos


ms rpidos tales como la memoria cach.
Bus local bus del sistema (Front Side Bus): conecta
elementos tales como la memoria principal o
dispositivos rpidos (por ejemplo AGP).
Bus de expansin y/o E/S: PCI, USB, ATA, SCSI, ...

Jerarqua de buses (3)


Procesador
Intel Pentium4

Memoria
Principal

Procesador

SCSI

Bus local

Cache/
Adaptador

Grficos

Firewire

Video

Interfaz con el
bus de
expansin

Modem

Tarjeta
Grfica

Puente
Norte

Canales IDE

Puente
Sur

Memoria
DDR-DRAM

LAN

Bus del sistema


FAX

Chipset

Bus del sistema

Serie

Bus de expansin

Esquema tpico de jerarqua de


buses en un ordenador. Los buses
de arriba son los ms rpidos y el
bus de expansin el ms lento.

Canales Audio

Interface Tarjeta Red

Bus PCI
Puertos USB

Memoria
Flash BIOS

Esquema de conexin de
componentes en un PC. El chip
Puente Sur agrupa los buses
ms lentos y el Puente Norte los
ms rpidos.

Cronogramas o Diagramas de
Temporizacin (1)

Muestran cmo ocurren las secuencias de


acciones y la relacin causa-efecto entre
diferentes sucesos Muestran comunicacin
entre dos dispositivos conectados a travs de un
bus.
Las lneas de un bus tienen dos niveles de seal
o tensin 0 1.

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.

Cronogramas o Diagramas de
Temporizacin (3)

La transicin de una seal en un dispositivo


puede dar lugar a transiciones en las seales de
otros dispositivos.

En los buses denominados sncronos existe una


seal de reloj que sirve para sincronizar
sucesos.
Es una seal peridica y repetitiva.

Cronogramas o Diagramas de
Temporizacin (4)

Generalmente en los buses sncronos se lee el


valor de una seal a la subida o a la bajada de la
seal de reloj.

Cronogramas o Diagramas de
Temporizacin (5)
Esquema cronograma
para una operacin de
lectura sncrona.
La CPU emite una
seal de lectura y coloca
direccin en bus
direcciones.
Cada suceso ocupa un
ciclo de reloj.

Cronogramas o Diagramas de
Temporizacin (6)
Esquema Cronograma para una operacin de lectura
asncrona.
1) El dispositivo Maestro
solicita acceso: indica hay
direccin y seales de control
vlidas.
2) El Esclavo realiza la
tarea pedida y activa su seal
al terminar.
3) El Maestro coge el dato
vlido y lo almacena y
desactiva seal.
4) El Esclavo detecta que el
Maestro ha desactivado su
seal y desactiva la suya.

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

LNEAS DE DATOS Y
DIRECCIN (1)

Lnea de datos nicas realmente necesarias.


Lneas direccin y control necesarias para
correcto funcionamiento. Ejemplo: bus serie.
Ancho de banda, data rate bits por unidad de
tiempo: generalmente expresado en
bits/segundo. Ejemplo: bus PCI de 64 bits a
66MHZ 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.

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 son
capaces de ejecutar ms de una instruccin por ciclo.

Lneas de direccin: indican localizacin dato


para L/E y determinan nmero posiciones
accesibles. Ejemplo: en el 68000 hay 24 bits
direcciones 224 bytes = 16 MB.
Es posible dividiendo la fase de direcciones en
dos ciclos/partes (o ms), acceder a ms
posiciones. Ejemplo: bus PCI.

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 para
diferenciar ambos buses y circuitera para separar
ambos valores. Es ms lento.

Los buses NO multiplexados son ms rpidos al


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

Direcc. N+1

Dato N-1

Dato
N

LNEAS DE DATOS Y
DIRECCIN (4)

Actualmente una misma direccin provoca


varios accesos (consecutivos). Por ello ventaja
buses 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 una
vez transmitida la direccin del dato libera el bus.
Luego espera a que la memoria o el perifrico de
E/S ponga el resultado en un buffer o comunique
dato disponible a travs del bus de control.

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 informacin
suele ser el byte.
La palabra del procesador se compone a su vez
de varios bytes.

Organizacin de la memoria (1)


En el esquema se ve un posible
esquema de memoria para un
80286 con tamao de palabra de
16 bits: dos bancos de 1 byte y
20 lneas de direccin (A0 ...A19).
Con el bit A0 se selecciona el
banco: byte par o byte impar de
la palabra.

Alineamiento: un procesador accede a


posiciones de memoria pares (A0 = 0) para
optimizar los accesos a memoria. Estos accesos
suponen acceso en paralelo de los bancos de
memoria, lo cual, evita dos accesos a memoria
para leer una palabra de procesador. Ejemplo:

Organizacin de la memoria (2)


En el esquema el
procesador accede a
una palabra impar
de 16 bits. Eso implica
acceder primero a el
banco 1 de memoria y
despus al banco 0.

El alineamiento es importante para acceder a palabras de


una forma eficiente. Los microprocesadores luego
pueden acceder a un byte dentro de la palabra. Ejemplo:
seal BHE* en el procesador 8086.

Algunos microprocesadores como el


68000 exigen alineamiento de palabras.

Organizacin de la memoria (3)


El siguiente alineamiento de palabras
en memoria no se permite en un
procesador de la familia 68000. El
objetivo es que al leer una posicin
par de memoria se lea una palabra
completa.

Estas formas de direccionamiento se pueden generalizar


a ms bancos. Ejemplo: el 80586 (Pentium) tiene
palabras de 32 bits. Un posible esquema de memoria
sera:

Organizacin de la memoria (4)

Aunque el programador trabaja con 232 y puede


direccionar con los bits A31.. A0, externamente se
utilizan A31.. A2 como direccin, de cada palabra de 32
bits, 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 dos


bancos de un byte, y 23 bits para direcciones de manera
que A23.. A1 apuntan a 223 palabras ( 224 bytes). A0 no
existe. A cambio tiene dos seales, UDS* y LDS* que
sirven para acceder a uno y/o otro banco.

Memorias ROM (1)


MEMORIAS ROM

Memorias no voltiles. Borrado/escritura de datos


costosa.
Varios tipos en funcin de su forma de borrado:
ROM,PROM, EPROM, EEPROM, Flash
EEPROM (utilizada para guardar la BIOS en PCs
actuales).
Diferentes capacidades (N posiciones x Bits por
posicin): 1Kx8, 16Kx8, 32Kx8, 64Kx8, ...
Buses de datos y direcciones.

Memorias ROM (2)

Seales de control:
{
{
{

CS* CE* (Chip Select Chip Enable): la memoria


empieza a trabajar decodificando la direccin.
OE* (Output Enable): indica ciclo de lectura
WE* (Write Enable): indica ciclo de escritura.
Incompatible con OE*.

Conjunto de pines del chip


62256P-10 (32Kx8).
Bus de direcciones (A0
A14): 215 = 25Ks = 32Ks
Bus de datos (I/O1
I/O8): 8 bits = 1 byte

Memorias ROM (3)

Diagrama de ciclo de lectura simplificado de


memoria 62256P-10 (32Kx8)

Decodificacin de espacios de
memoria (1)
DECODIFICACIN DE ESPACIOS DE MEMORIA

La memoria total que el procesador puede direccionar se


divide en varios espacios de memoria.
Cada espacio de memoria puede tener asociado un
determinado tipo de memoria (uno o varios chips de
memoria tipo ROM RAM).
Las direcciones que enva el procesador tienen que ser
decodificadas para activar unos chips de memoria u
otros.
Las activaciones de memoria (en los chips) se realizan
mediante la seal CS* (chip select).

Decodificacin de espacios de
memoria (2)

Distribucin de espacios de
memoria en el espacio de
direcciones de un
procesador.

Decodificacin total del


espacio de direcciones.

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 una
direccin del procesador. Usada en sistemas de
propsito general.
{ Decodificacin parcial: una posicin de memoria
puede ser accedida mediante varias direcciones que
enva el procesador. Sencilla pero no utiliza toda la
capacidad de la memoria.
Para hacer la decodificacin se pueden emplear
decodificadores. En realidad se suelen emplear PALs
(Programmable Array Logic), PLAs (Programmable Logic
Array) o circuitos integrados especficos.

NDICE (2)

LNEAS DE CONTROL
{
{
{

EJEMPLOS DE CONEXIONES A PROCESADORES REALES:


{
{
{
{

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

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

LNEAS DE CONTROL
IDENTIFICADOR DE CICLO DE BUS

Ciclo de bus: periodo de tiempo en el que el procesador


realiza un acceso exterior (no registros internos) a
memoria o E/S.
Tiene que haber lneas de control dentro del bus de
control 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 de
control. Ejemplo: 80x86, seales rd*, wr*, M/IO, ...
{ El procesador indica su estatus y una circuitera
externa activa seales de control. Ejemplo: 68000.

Seales de sincronizacin (1)


SEALES DE SINCRONIZACIN

Un ciclo de bus tiene varios pasos indicados


por seales de control para que los eventos
ocurran en el orden correcto.
Tres tipos de sincronizacin:
{

Sistemas SNCRONOS:
Gobernados por una seal de reloj peridica.
Indica cuando leer, escribir, cuantos ciclos hay que
mantener una seal, ...

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 de
reloj. En frecuencias altas el retraso de
propagacin de la seal entre los diferentes
dispositivos alejados puede provocar desfases
temporales.
Ejemplo de sistema/bus sncrono: el bus PCI.

Sistemas ASNCRONOS:

Utilizan seales del bus de control que sincronizan


los diferentes pasos en la comunicacin.
Ejemplo: protocolo de cuatro eventos handshake
(apretn de manos).

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.

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).

SEALES DE ARBITRAJE

Cmo y quin controla el acceso al bus?

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 del
sistema a la CPU (Master) mediante la seal HOLD. La
CPU 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.

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 en
paralelo.
Ante varias peticiones
RQ se activa una seal
de concesin GT.
Sistema de concesin
variado: rotacin,
prioridades, ...
Ejemplo: bus PCI.

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 Master se


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

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 bus
difiere de lo posteriormente ledo, han perdido la
arbitracin.
Ejemplos: bus SCSI y CAN (Controller Area
Network).
Si se utilizan lneas de arbitracin diferentes a las
de datos es posible transmitir datos mientras se
realiza la transmisin de datos y aprovechar
mejor el ancho de banda del bus.

Circuitera usada en la interfaz de


bus (1)
CIRCUITERA USADA EN LA INTERFAZ DE BUS

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 (2)

En estos ltimos, la salida est conectada de


manera que siempre est a la vista el contenido:
bien lo almacenado o la nueva entrada. Tambin
suele haber un OE* (Output Enable).

NDICE (2)

LNEAS DE CONTROL
{
{
{

EJEMPLOS DE CONEXIONES A PROCESADORES REALES:


{
{
{
{

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

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
PROCESADORES REALES
LA FAMILIA 80x86

En los primeros 80x86 haba 20 lneas de direccin. En


los Pentium hay 32 puede direccionar hasta 4 GBs de
memoria 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 procesador
de 16 bits).
Posiciones pares en un banco e impares en otro
(seleccin con A0).

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 valor
de la direccin en un Latch. El bus es multiplexado, el
valor de direccin que aparezca en el bus ser
sustituido a continuacin por el valor del dato.

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 los


latches), M/IO*.
T2: Desaparece valor de direccin; Bus en alta
impedancia; Comienza RD*.
T3: Lectura del dato a la bajada del ciclo. Para ello
tiene que estar Ready en nivel alto. Pueden existir
estados de espera. Ready=0 significa no preparado.
T4: FIN. Se desactivan todas las seales de control y
finaliza el ciclo

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 sustituye
por el dato. Se activa WR*.
La escritura se realiza en T4, a la subida de WR*.
Decisin de diseo: retardar lo ms posible la
escritura.

El 8086 tiene una cola de instrucciones donde se


van almacenando conforme se van leyendo.

El procesador 8086 (4)


(Ejemplo conexin y acceso con procesador genrico)

En el esquema anterior se utilizan las lneas ms


significativas del bus de direcciones (bits ms
significativos), para activar el/los chip/s de memoria a los
que se va a acceder Seal CS* Chip Select.

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 muchas
memorias como indicador de Output Enable.
Aunque puede parecer redundante (bastara con
WR*=0 para escritura y WR*=1 para lectura) as
se permite que en lectura no se pongan los datos
hasta bien avanzado el ciclo de bus.

El procesador 8086 (6)

Ciclo de
lectura de un
8088/8086
simplificado

El procesador 8086 (7)

Ciclo de
escritura de un
8088/8086
simplificado

EJEMPLOS DE CONEXIONES A
PROCESADORES REALES
LA FAMILIA 68000

El Motorola 68000 (y familia) fue utilizado en los


primeros ordenadores Macintosh.
Encapsulado en chips de 64 pines. Incluye 23
lneas de direcciones (A1 A23) 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 una
palabra de 16 bits respectivamente como
mximo se pueden direccionar 224 bytes = 16MB.

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 para
lectura que han sido tomados del bus de datos (en
D0 D15) en el caso de ciclo bus para escritura.
Permite comunicacin asncrona. Seal similar a
Ready en 8086.
Reset*: inicializacin de controladores conectados al
68000.

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* y
DTACK*.

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 parte
del 68000.
BGACK* (Bus Grant Ackowledge): confirmacin de
recepcin de seal BG*.

El procesador 68000 (3)

Seales de Control de Interrupciones: usadas


para trabajar en modo asncrono con dispositivos
de 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 de
E/S de datos).
FC0*, FC1*, FC2*: todas a 1 indican reconocimiento
(Acknowledge) de la peticin de interrupcin para un
controlador de E/S. Tambin sirven para indicar el
estado interno del 68000.

Ejemplo de
comunicacin
simple entre el
68000 y la
memoria

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 la
CPU que todo va bien. Si no se activa, quiere
decir que hay que esperar a la memoria
repitiendo S4.

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 los
que no se hace nada, son necesarios para
respetar los tiempos que las memorias invierten
en los accesos y para asegurar la estabilidad de
la 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 y
mantenimiento de las seales.

Ciclo de lectura
del 68000

Ciclo de escritura
del 68000

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 por
escritura es el tiempo que debe permanecer el dato en
el bus hasta desactivar seal CS (tDOSL + tDSL en el
68000).
Tiempo de Hold: necesidad de que el dato o la seal
permanezca estable un tiempo una vez desactivado el
CS (chip select). Durante S7 en el 68000 estos tiempos
corresponden: tSHDII en lectura y tSHDOI en escritura.
El tiempo de acceso (tacc) en lectura se puede
considerar como el tiempo hasta obtener el dato, desde
activacin de CS o bien desde que la direccin es
vlida.

EJEMPLOS DE CONEXIONES A
PROCESADORES REALES
CIRCUITERA ADICIONAL: EL RESET Y EL RELOJ

El Reset: seal comn a todos los procesadores


que los lleva a un estado inicial.
Dos tipos: el del usuario (accionado con un
botn) y el de arranque (accionado al
encenderse el sistema).
Cada vez que se acciona se salta a una
direccin de memoria fija. En esas posiciones de
memoria hay que colocar memoria no voltil. En
el 8086 la direccin es la FFFF0h y en el 68000
la 0h.

Circuitera adicional: el Reset y el


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, un
tiempo mximo de subida, un duty cycle
(proporcin entre el tiempo que el ciclo est en
alta y el periodo), sincronizacin con otras
seales, etc
{

Un ciclo de reloj incluye dos estados peridicos: uno


con valor 0 y otro con valor 1.

Ejemplo de aplicacin: diseo de


un sistema de memoria
DISEO DE UN SISTEMA DE MEMORIA PARA UN
68000

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


1) Circuitera de Decodificacin

Las 23 lneas de direcciones del 68000 (A1 ... A23) se


dividen 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


para un 68000 (1)

Se sitan los 64Ks en la


parte baja de memoria
porque all empieza a
direccionar el 68000 en
caso de reset. Esto quiere
decir que A16 ... A23 = 00h.
Con las seales LDS* y
UDS* se selecciona bloque
par o impar.
La decodificacin de las
direcciones es una
decodificacin completa.

Diseo de un sistema de memoria


para un 68000 (2)
Circuito de
decodificacin de
direcciones del anterior
esquema.

Solucin con decodificacin parcial o incompleta: si se


tuvieran por ejemplo otros 64Ks de memoria RAM,
bastara con permitir mediante la lnea A23 cualquier
direccin a la mitad baja para la EPROM (A23 = 0) y
cualquier direccin a la mitad alta para la RAM (A23 = 1).

Diseo de un sistema de memoria


para un 68000 (3)
2) Clculo Tiempos Acceso a Memoria y Estados
de Espera

Si el 68000 funciona a una frecuencia de 12,5


MHz (T = 80 ns), averiguar los tiempos de
espera necesarios suponiendo los siguientes
tiempos de lectura para las memorias EPROM
de 8Ks:
{
{
{

A) Necesidad de direccin estable de 250 ns.


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

Diseo de un sistema de memoria


para un 68000 (4)
Esquema cronograma de lectura de
un chip de memoria EPROM de
8Ks

Hay que comprobar atendiendo a los tiempos de un ciclo


de lectura de un 68000, que los tiempos mnimos
correspondientes al acceso para lectura a la memoria
EPROM, 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).

Diseo de un sistema de memoria


para un 68000 (5)

A) La duracin mnima de direccin estable:


TDmin. = 3.5 T - TCLAV + TCHADZ.
Tomando los casos ms desfavorables (valor mximo
TCLAV 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 dato
vlido:
TDDmin. = 3 T - TCLAV - TDICL
Y el caso ms desfavorable (valores TCLAV - TDICL
mximos),
TDDmin. = 3 *80 - 55 - 10 = 175 ns

Diseo de un sistema de memoria


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 las
direcciones para CS* hay que tener en cuenta, que
viendo el esquema de decodificacin de direcciones y el
cronograma 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 mximos
de TDICL y TCHSL),
TDDmin. = 2.5 *80 - 55 - 10= 135 ns
Para hacer que supere los 200 ns necesarios, hace falta
un ciclo/estado de espera: 80 + 135 = 215 > 200 ns

Diseo de un sistema de memoria


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 en
cuenta los dos elementos utilizados en la decodificacin
de direcciones (puerta OR + decodificador):
TDec. = 2.5 T - TDICL - TCHSL - 2*16 = 103 ns
Esto supondra dos tiempos/ciclos de espera, ya que:
2*80 + 103 = 263 > 200 ns
En este ejemplo se va a despreciar el retraso por
circuitera.

Diseo de un sistema de memoria


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 de


escritura de un 68000, es necesario algn
estado/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


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 siguiente
acceso) es tambin 20 ns. Sin embargo, observando
los tiempos en el ciclo de escritura del 68000, ese
tiempo 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 el
problema.

Diseo de un sistema de memoria


para un 68000 (10)

La insercin de nueva circuitera puede afectar al


clculo anterior de tiempos.

Diseo de un sistema de memoria


para un 68000 (11)
3) Circuitera de Generacin de Estados de
Espera

Para generar el estado de espera se utilizar la


seal AS*. Se pueden utilizar cualquiera de las
seales 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 que
mantenga por ms tiempo activadas las
direcciones (A0 A23) y el resto de seales de
control (AS*, UDS*, ...).

Diseo de un sistema de memoria


para un 68000 (12)
Esquema general del circuito
de insercin de estados de
espera

Para implementar el circuito de retraso para


accesos de lectura se pueden emplear bateras
de Flip-Flops:

Diseo de un sistema de memoria


para un 68000 (13)

En escritura no se
necesitan estados de
espera. El circuito anterior
se completara con:
La salida del anterior circuito queda retrasada
segn se muestra en la figura siguiente:

También podría gustarte