ASM
POR AESOFT
Corregido
y pasado a HTML por dek_Oin
LECCIÓN
3:
CHIPS
DE APOYO (Ampliación de la lección 1)
Hola
a todos los seguidores del curso de ensamblador de AESOFT.
A petición de algunos lectores de este curso, incluí esta
lección,
una ampliación de la primera. Más concretamente, desarrollé‚
un
poco más el tema de los chips de apoyo (inteligentes, programables, etc.)
que
toqué tan ligeramente.
Aunque
aún no es el momento de estudiarlos por separado, y por tanto
en
profundidad, dar‚ una relación de ellos, y qué función realizan.
Bueno, menos rollo y al grano:
CHIPS
DE APOYO (Ampliación de la lección 1):
Ya
vimos en la primera lección qué se entendía por chips de apoyo, soporte,
etc.
También llamados controladores, ya que controlan una parte del hardware
para
ir aligerando el trabajo de la CPU. De esta forma la CPU tiene más
tiempo
para la ejecución del programa correspondiente.
En
muchos casos, estos chips son programables.
Por
supuesto, estos chips pueden ser programados por el programador en
ensamblador
(valga la redundancia), con lo cual no trabajan por su cuenta,
sino
que aceptan las instrucciones que les hacen funcionar a través de
la
CPU.
A
continuación se da una relación de los diferentes chips de apoyo o
controladores
del PC:
El
controlador programable de interrupciones (chip 8259)
En
un PC, una de las tareas esenciales de la CPU consiste en responder a
las
interrupciones del hardware. Una interrupción del hardware es una
señal
generada por un componente del ordenador que indica que ese
componente
requiere la atención del procesador.
Por
ejemplo el reloj del sistema, el teclado, y los controladores de disco, generan
interrupciones de hardware en un momento dado para que
se
lleve a cabo su tarea. En ese momento, la CPU responde a cada
interrupción,
llevando a cabo la actividad de hardware apropiada, ejecutando
lo
que se llama rutina de atención a la interrupción, que es una porción
de
c¢digo que se ejecuta como respuesta a una petición de interrupción.
Tomemos como ejemplo el teclado. (Puede ser conveniente
leer antes el
apartado
'Interrupciones', que viene desarrollado más abajo).
El
usuario pulsa una tecla.
Inmediatamente,
la circuitería digital del periférico detecta la pulsación
de
la tecla y almacena su "código de rastreo" (toda tecla tiene asociado
un
código de 8 bits denominado scan code) en un registro reservado para
tal
fin, llamado puerto de teclado. (Más adelante, al hablar de puertos,
se
ampliará esta información).
Entonces,
el teclado activa una línea de petición de interrupción, más
concretamente,
la línea IR1 del 8259. (IR son las siglas de Interrupt
Request,
o petición de interrupción). También se puede decir IRQ, que es a lo que
estamos m s acostumbrados, sobre todo cuando instalamos una
tarjeta
de sonido o algo por el estilo).
A
continuación, el 8259 activa el pin INTR de la CPU. (El pin INTR se activa
cada
vez que se produce una petición de interrupción, es una línea externa
que
comunica al Procesador con el exterior).
Por
último, y resumiendo mucho, la CPU termina la instrucción en curso,
y
ejecuta la rutina de atención a la interrupción.
Al
terminar de ejecutar esta rutina, el control vuelve a la siguiente
instrucción
por donde se había quedado en el programa en curso.
Todos
los registros deben tener el valor que tenían antes de ejecutar
dicha
rutina.
El
controlador programable de interrupciones se llama a menudo por sus
siglas:
PIC
El
controlador DMA (chip 8237)
Algunas
partes del ordenador son capaces de transferir datos hacia y desde
la
memoria, sin pasar a través de los registros de la CPU.
Esta
operación se denomina acceso directo a memoria o DMA (Direct Memory
Access),
y la lleva a cabo un controlador conocido como controlador DMA.
El
propósito principal de dicho controlador, es el de permitir a las
unidades
de disco leer y escribir datos prescindiendo de pasar por los
registros
del microprocesador. De esta forma, las transferencias de datos
se
hacen más rápidas.
Pero
esto es sólo en teoría, ya que con los modernos procesadores que
cuentan
con una frecuencia de proceso varias veces más rápida que la del
bus,
el controlador DMA, apenas ofrece ninguna ventaja.
El
Interface de periferia (chip 8255)
El
interface de periferia crea una conexión entre la CPU y los dispositivos
periféricos
como el teclado y el altavoz. Actúa como una especie de
intermediario
utilizado por la CPU para comunicar determinadas señales
al
dispositivo deseado.
El
generador de reloj (chip 8248)
Este
generador suministra las señales de reloj que coordinan el
microprocesador
y los periféricos. Produce una señal oscilante de alta
frecuencia.
Por ejemplo, en el IBM PC original esta frecuencia era de
14,31818
megahercios o millones de ciclos por segundo. No hay que confundir
esta
frecuencia con la frecuencia del procesador.
Otros
chips que necesitan una señal de tiempo regular, la obtienen del
generador
de reloj, dividiendo la frecuencia base por una constante para
obtener
la frecuencia que necesitan para realizar sus tareas.
Por
ejemplo, el 8088 del IBM PC, funcionaba a 4,77 MHz, una tercera parte
de
la frecuencia base. El bus interno del IBM PC y el temporizador utilizan
una
frecuencia de 1,193 MHz, es decir, un cuarto del ratio del 8088 y
una
doceava parte del ratio base.
El
temporizador o timer (chip 8253)
Este
chip genera señales de tiempo a intervalos regulares controlados por
software.
Esto quiere decir, que podemos cambiar la frecuencia de estos intervalos
por
medio de un programa.
El
timer dispone de varias líneas de salida, funcionando cada una con
una
frecuencia independiente a las otras, y conectadas cada una a otros
componentes
del sistema.
Una
función esencial del contador es la de generar un tic tac de reloj
que
mantenga actualizada la hora del día. Otra de las señales producidas
por
el contador puede ser utilizada para controlar la frecuencia de los
tonos
producidos por el altavoz del ordenador.
El
controlador de video (chip 6845)
El
controlador de video, al contrario del resto de chips de apoyo
presentados
hasta ahora, no se encuentra en la motherboard (o placa madre) del PC, sino
que
está depositado en una tarjeta de video colocada en una ranura de
ampliación.
Es
el corazón de las tarjetas de video CGA, EGA, VGA, etc.
Controladores
de entrada/salida
Los
PCs tienen varios subsistemas de entrada/salida con circuitería de
control
especializada que proporciona un interfaz entre la CPU y el
hardware
de E/S. Por ejemplo, el teclado tiene un chip controlador propio
que
transforma las señales eléctricas producidas por las pulsaciones de
teclas
en un código de 8 bits que representa la tecla pulsada. Todas las
unidades
de disco disponen de circuitería independiente que controla
directamente
la unidad. La CPU se comunica con el controlador a través
de
un interfaz. Los puertos serie y paralelo también disponen de sus
propios
controladores de entrada/salida.
Los
coprocesadores matemáticos (8087/80287/80387)
Son
utilizados en caso de estar disponibles en el ordenador, para trabajar
con
números en coma flotante y coma real, cosa que el 8086 no puede hacer.
Todos
estos chips se conectan entre s¡ a través del BUS, que ya sabemos
en
qué consiste.
Esto
es todo por ahora.
Un
saludo.
AESOFT.