vdfsvadsafcsadf

Páginas: 8 (1972 palabras) Publicado: 16 de septiembre de 2014
Estructura de Computadores

Unidad 6. Sistemas de Entrada/Salida (E/S)
Escuela Politécnica Superior - UAM

1

Índice

6.1.- Interfaz entre el procesador y los periféricos: mapa de
direcciones
6.1.1.- Relación entre tamaño de bloques en memoria y número de bits
utilizados para su identificación. Bloques alineados y no alineados.

6.2.- Gestión de dispositivos de E/S: polling,interrupciones y DMA
6.3.- Buses y su organización

2

Arquitectura clásica Von NEUMANN

A.L.U.

BANCO
DE
REGISTROS

U.C.

C.P.U.
BUS DE CONTROL (CB)
BUS DE DIRECCIONES (AB)
BUS DE DATOS (DB)

MEMORIA

I/O

PERIFERICOS

3

Interfaz entre los dispositivos de E/S y
el procesador
¿Cómo se accede desde el micro a la información de los dispositivos de E/S?
 El micro sóloaccede al exterior por el bus, así que
para él sólo hay direcciones distintas
 Los dispositivos de E/S se mapean sobre el espacio
de direcciones: mapa de direcciones
 Al leer ciertas direcciones se consigue la información
de E/S, y al escribir sobre otras se envía información
a E/S

0xFFFF

FLASH
0xC000
0xBFFF

Sin usar
E/S

0x8100
0x80FF
0x8000
0x7FFF

RAM
0x0000

Mapade memoria
(64 kbytes)

4

Esquema de acceso a memoria: sin E/S
Suponiendo arquitectura Von Neumann con un
solo bus (código y datos en la misma memoria
lógica, aunque sean chips distintos)
CLK

Procesador

MemWrite
Address
WriteData

WE

Memoria

ReadData

5

Esquema de acceso a memoria: con E/S
(decodificador direcciones)
Si es arquitectura Harvard
(código y datospor separado)
las E/S se mapean sobre la
memoria de datos

Decod. direcciones

Procesador

CLK

WE

Address

RDsel 1:0

MemWrite

WEM

WE1
WE2

CLK

Memoria

WriteData
CLK

00
EN

EN

Disp_1
E/S

01

ReadData

10

Disp_2
E/S
6

Bloques alineados y no alineados


Cada conjunto de direcciones que representa a un mismo dispositivo
se denominabloque. Normalmente el tamaño de cada bloque en bytes
es una potencia de dos.



Un bloque está alineado si todos los bits no implicados en su
direccionamiento interno están fijos. La decodificación entonces está
minimizada.
 Ejemplo: Microprocesador byte-direccionable de 64 kBytes de
espacio de memoria. Necesita 16 bits para la direccionar.
 3 Bloques: RAM de 32 kB, Flash de 16 kB y E/S256 direcciones.
 El bloque RAM de 32 kB usa 15 bits para su direccionamiento
interno: estará alineado si el bit que sobra está fijo:

0xFFFF

RAM
0x8000
0x7FFF

 1XXX XXXX XXXX XXXX (800016 a FFFF16): A15 = 1
RAM

 0XXX XXXX XXXX XXXX (000016 a 7FFF16): A15 = 0

0x0000

7

Bloques alineados y no alineados
0xFFFF



Si el bloque no está alineado, la decodificación secomplica:
 (400016 a BFFF16): A15A14=01 or A15A14=10
 En realidad utiliza dos espacios de 16 kB (14 bits)
yuxtapuestos:
 01XX XXXX XXXX XXXX (400016 a 7FFF16)
 10XX XXXX XXXX XXXX (800016 a BFFF16)

0xBFFF

RAM
0x4000

0x0000

 El

circuito decodificador de direcciones (combinacional),
genera las señales de entrada de habilitación (enable) para
cada bloque (CE, Chip Enabley/o WE, Write Enable) y de
control del multiplexor que elige entre los datos de salida de
cada bloque.
8

Mapeo completo/incompleto






3 Bloques: RAM de 32 kB (15 bits), Flash de 16 kB (14 bits)
Flash
y E/S 256 direcciones (8 bits).
 RAM: (000016 a 7FFF16) => 0XXX XXXX XXXX XXXX
Sin usar
 Flash: (C00016 a FFFF16) => 11XX XXXX XXXX XXXX
E/S
 E/S: (800016 a 80FF16) =>1000 0000 XXXX XXXX
 Sin usar (libre): (810016 a BFFF16)
Decodificación:
RAM
 RAM: A15 = 0
 Flash: A15A14 = 11
 E/S, mapeo completo: A15A14A13A12 A11A10A9A8 = 1000 0000
 E/S, mapeo incompleto: A15A14 = 10 (con esto ya se distingue)

0xFFFF

0xC000
0xBFFF
0x8100
0x80FF
0x8000
0x7FFF

0x0000

¿Y si el micro pone una dirección libre? P. ej. 0x900016
 En mapeo completo no...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS