lenguaje ensamblador
o
Organizaci´n de entrada/salida
o
La familia de procesadores 80x86, presente en el IBM PC, utiliza la arquitectura Von
Neumann, que puede verse en la figura 1. El denominado bus del sistema conecta las
diferentes partes de una m´quina von Neumann, y en la familia 80x86 se diferencian 3 clases
a
de buses:
1. Bus de datos, de 8, 16, 32 ´ 64 bits dependiendodel modelo (64 bits para los Pentiums
o
de ultima generaci´n). El n´mero de bits se usa, en general, para determinar el tama˜o
´
o
u
n
(size) del procesador.
2. Bus de direcciones, para poder conectar la CPU con la memoria y con los dispositivos
de entrada/salida.
3. Bus de control, para enviar se˜ales que determinan c´mo se comunica la CPU con el
n
o
resto del sistema (por ejemplo,las l´
ıneas de lectura (read ) y escritura (write) especifican
qu´ es lo que se est´ haciendo en la memoria).
e
a
Memoria
CPU
Dispositivos de
Entrada/Salida
Figura 1: Arquitectura t´
ıpica de una m´quina Von Neumann
a
Por tanto, los dispositivos de entrada/salida son una de las partes fundamentales de la
arquitectura del computador y su objetivo es la eficiencia en la gesti´n delas operaciones de
o
entrada/salida, descargando a la CPU de tanto trabajo como sea posible. Estos dispositivos
tienen velocidades muy variadas:
1
Dispositivos lentos (como el rat´n, el teclado, el joystick. . . )
o
Dispositivos de velocidad media (como una impresora)
Dispositivos r´pidos (como un disco duro, una tarjeta de red. . . )
a
Por tanto, un dispositivo concreto no puedeaceptar datos enviados a una tasa arbitrariamente alta (por ejemplo, una impresora no puede imprimir los millones de caracteres por
segundo que ser´ capaz de enviarle un Pentium IV). Por ello, ha de haber alguna forma de
ıa
coordinar el env´ de datos entre la CPU y los perif´ricos. Esa es la misi´n de los circuitos de
ıo
e
o
interfaz que aparecen en la figura 2.
Existen 2 formas b´sicas deconectar estos circuitos de interfaz, dependiendo del tipo de
a
procesador en que se base la arquitectura. Ambos tipos de acceso requieren que la CPU realice
el movimiento de los datos entre el perif´rico y la memoria principal:
e
1. Conexi´n mapeada en memoria (memory–mapped I/O), que usa “direcciones espeo
ciales” en el espacio normal de direcciones. En este caso el circuito de interfaz seconecta
en el computador como si fuera memoria. Presentan este tipo de entrada/salida, por
ejemplo, aquellas arquitecturas basadas en el M68000 de Motorola. Cualquier instrucci´n que acceda a la memoria (como “mov”) puede acceder a un puerto I/O mapeado
o
en memoria.
2. Conexi´n mediante puertos especiales de entrada/salida (I/O–mapped I/O),
o
que usa “instrucciones especiales” deentrada/salida 1 y un espacio de direcciones espec´
ıfico. Este es el caso de las CPUs 80x86, y por tanto el que nos interesa para este
proyecto.
La familia de procesadores 80x86 proporciona, por tanto, dos espacios de direcciones:
Para memoria
Para dispositivos de E/S
El bus de direcciones (address bus) var´ de tama˜o seg´n el procesador de la familia que se
ıa
n
u
emplee (puede ser de 20, 24 ´ 32bits), pero para la entrada/salida es siempre de 16 bits.
o
Esto permite al microprocesador direccionar hasta 65536 diferentes localizaciones especiales
de entrada/salida, lo que es m´s que suficiente para la mayor´ de los dispositivos, aunque
a
ıa
muchas veces un dispositivo requiera m´s de una direcci´n de entrada/salida (por ejemplo,
a
o
en el caso del rat´n PS/2 veremos que habr´ queacceder a las direcciones 60h y 64h; en el
o
a
caso del puerto de juegos, suele ser la 201h). Hay 2 espacios de direcciones, pero un solo bus
de direcciones y son las l´
ıneas de control las que deciden a qu´ espacio estamos accediendo
e
en cada momento. De esta manera, el direccionamiento de entrada/salida (I/O addressing)
se comporta exactamente igual que el direccionamiento de memoria...
Regístrate para leer el documento completo.