vdfsvadsafcsadf
Páginas: 8 (1972 palabras)
Publicado: 16 de septiembre de 2014
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.