Download Transparencias 4 1305

Document related concepts
no text concepts found
Transcript
Arquitectura de PCs
Operación de los
periféricos del PC
Principios del hardware E/S

El hardware de E/S se considera desde
distintos puntos de vista:





Ingeniero hardware considera chips, motores, etc.
Ingeniero software considera interfaz al software:
comandos de hardware y errores reportados
Alcance del curso: programación de
dispositivos periféricos
El curso no cubre: diseño, fabricación,
mantenimiento de dispositivos de E/S
La programación de dispositivos se relaciona
con sus características internas
Principios del hardware E/S

Dispositivos de E/S:

Dispositivos de bloque (ej. discos)




Dispositivos de carácter (ej. teclado, monitor,
ratón, impresora, interfaz de red)


Almacenan información en bloques de tamaño fijo con
dirección propia
Tamaño de bloques: 128B a 1024B
En cualquier instante el programa puede leer o escribir
cualquier bloque
Transmiten o reciben secuencias de caracteres sin
formato de bloque ni direcciones
Reloj de la computadora: genera interrupciones a
intervalos definidos (no admite direcciones de
bloque, ni genera o recibe caracteres)
Principios del hardware E/S

Composición general de dispositivos de
E/S:


Componente mecánica: es el “dispositivo
de E/S” o “dispositivo periférico”, en tercer
escalón de la arquitectura piramidal del PC
Componente electrónica: “controlador de
bus” o “controlador de dispositivo” en
segundo escalón de la arquitectura del PC
Arquitectura Piramidal
CPU
Intel 80x86
Bus del sistema
Memoria Programa
y datos
Buses de expansión:
Interfaces de bajo nivel
según estándares
internacionales IEEE,
ANSI, etc: permite
fabricación de
controlador y dispositivo
por distintas compañías.
Se considera por ejemplo
interfaz disquete a
disquetera y controlador
de monitor a monitor
Controlador PCI
Bus PCI
Controlador de
disco
Bus IDE
Discos
Dispositivos
PCI
Bus de direcciones
Bus de datos
2 patas de interrupciones
Patas de control
Controladores
de bus: comunican
CPU con buses de
expansión
Buses de expansión
Dispositivos periféricos
Principios del hardware E/S

Interfaz de disquete a controlador:


Trama de bits serial: encabezado, 4096 bits
de datos del sector, y CRC
Función del controlador de disquete:


Controlador de disquete construye el bloque de
bytes, bit por bit, en un buffer
Si no tiene errores, copia bloque solicitado por
el programador a memoria principal
Principios del hardware E/S

Interfaz de monitor CRT a controlador:

Señal analógica que provoca:




escritura en pantalla
retroceso de haz horizontal tras barrido de línea
retroceso vertical tras barrido de pantalla
Función del controlador del monitor:


Genera señal para desplegar en pantalla los
caracteres escritos por el programador en zona
predefinida de memoria
Programador inicia el controlador con ciertos
parámetros (números de caracteres por línea, de
líneas por pantalla, etc.), y se olvida
Principios del hardware E/S

Interfaz CPU a controlador de bus:



registros en el espacio de E/S de la CPU
línea de interrupciones IRQ
Para PC IBM:
Principios del hardware E/S

Secuencia general de operación de E/S:



Escritura de comando a registros de controlador;
muchos comandos requieren parámetros
Tras ejecutar comando, el controlador causa IRQ,
que ejecuta rutina de atención a la interrupción
Rutina de atención a la interrupción verifica
resultado de la operación en registros del
controlador
El sistema de teclado


Función principal del sistema de
teclado: convertir movimientos de
teclas de teclado a datos útiles a los
programas
Composición del sistema:


Teclado (dispositivo de E/S)
Controlador de teclado en la placa madre
(controlador de dispositivo): chip 8042
para PC >=AT, chip 8055 para PC/XT
El sistema de teclado

Operación básica:



Teclado incluye microcontrolador 8031 u
8048, que controla LEDs y codifica
movimiento de tecla en código “Kscan”
El micro del teclado envía códigos Kscan a
controlador de teclado por línea serie
bidireccional dedicada
El controlador de teclado recibe Kscan, lo
verifica y lo carga en buffer para la CPU
El sistema de teclado

Bajada tecla “P” en AT:
CONTROLADOR
DE TECLADO
ES 063H
ES 062H
ES 061H
4DH
Kscan a Scan
de sistema
CPU
ES 060H
IRQ1
19H
4DH
Línea serie
P
El sistema de teclado

Subida tecla “P” en AT:
CONTROLADOR
DE TECLADO
Subida
ES 063H
ES 062H
ES 061H
F0H 4DH
Kscan a Scan
de sistema
CPU
ES 060H
IRQ1
99H
F0H 4DH
Línea serie
19H + 80H
Subida
P
El sistema de teclado


Corresponde al programa que procesa
la E/S de teclado determinar si se trata
de una “P” mayúscula, minúscula, etc.,
en función de las teclas activas
Por tanto: se trata de una interfaz
flexible, que sitúa la complejidad en el
software
El sistema de video


Función principal del sistema de video:
genera la señal para desplegar en pantalla a
los datos en la RAM de video
Composición del sistema de video:



Controlador de video
Zona de memoria especial denominada “RAM de
video”, en el espacio de direcciones de memoria
El sistema de video se encuentra físicamente
en la “tarjeta de video”
El sistema de video




La pantalla se pinta por líneas horizontales
Los puntos que componen cada línea se
denominan “pixeles”
En cada línea horizontal, se pinta píxel por
píxel de izquierda a derecha
En general, se pintan de 200 a 1200 líneas
horizontales, con 200 a 1200 pixeles por línea
El sistema de video


La imagen en pantalla depende de los datos en la
RAM de video
La correspondencia de imagen en pantalla y los datos
en la RAM de video, y la dirección de la RAM de video
dependen de 2 atributos del controlador:

El modo de funcionamiento del controlador:



modo texto: sólo despliega caracteres
modo gráfico: despliega gráficos complejos y caracteres en
variedad de formas y tamaños
El tipo de controlador:


monocromo: opera en modo texto o modo gráfico con un solo
color
color/gráfico (CGA): opera en modo texto o modo gráfico con
muchos colores
El sistema de video

Controlador en modo texto:

Pantalla:




Dirección de comienzo RAM de video:



Pinta 350 líneas de 720 píxeles, visualizados como 25
renglones de 80 caracteres
Carácter: rectángulo b x h = 9 x 14 píxeles
Patrones de caracteres se guardan en ROM
0xB0000 en controlador monocromo
0xB8000 en controlador color
Correspondencia RAM de video – Pantalla:

Cada carácter en pantalla corresponde a 2 bytes RAM :


LSB: código ASCII de carácter en pantalla
MSB: atributo de carácter en pantalla (color, inversión,
etc.)
El sistema de video

Correspondencia RAM video – pantalla para controlador
monocromo:
FFFFFH
B0F9FH
B0F9FH
L25
4000 bytes
B0F00H
B0F00H
07H
20H
33H
07H
20H
07H
20H
32H
C1
C80
‘3’
L1
C2
C3
C80
A B
1
2
3
L2
C2
C1
‘2’
C80
‘1’
B013FH
L2
B009FH
B00A0H
B009FH
L1
B0000H
00000H
B0000H
07H
31H
07H
20H
42H
07H
20H
41H
L25
C2
‘B’
C1
‘A’
El sistema de video

Cursor en modo texto:



Indica la posición activa en la pantalla
Tiene el tamaño de un carácter (9 x 14
pixeles)
Se maneja por comandos al controlador de
video
El sistema de video

Controlador en modo gráfico análogo al
modo texto, salvo que:


Para tipo monocromo, cada BIT en RAM de
video representa un píxel en pantalla
En tipo color, un número dado de BITS
(por ej. 4 bits para modo gráfico 16
colores) en RAM de video representa un
píxel en pantalla
Temporizadores del sistema

Función de los temporizadores del sistema:
soporte a toda función temporizada del
sistema. Dos tipos:

Temporizadores programables. Se componen de:




Oscilador de cristal que genera señal periódica de 1 a
20MHz
Contador “cuenta” decrementado cada período del
oscilador; provoca interrupción de CPU cuando pasa a 0
Registro con la “cuenta inicial”
RTC (Reloj de tiempo real): mantiene la hora
actual aún apagado el sistema; se puede leer y
escribir
Temporizadores del sistema

El PC incluye temporizador programable
8254, con oscilador a 1.1932 MHz y 3
temporizadores de 16 bits:



Temporizador 0: temporizador primario del
sistema
Temporizador 1: refresco de DRAM
Temporizador 2: de uso general para
aplicaciones
Temporizadores del sistema


Cada temporizador tiene 6 modos de operación, 0 a 5
La conexión de cada temporizador limita los modos disponibles
Temporizadores del sistema

Clasificación general de modos de
operación de los temporizadores
programables:


Modo un solo disparo
Modo onda cuadrada
Temporizadores del sistema


Ej. “modo un solo disparo”: modo 0 (T0 y T2)
Secuencia:

Clock

Out

Gate


Se carga cuenta inicial
Temporizador decrementa cuenta si GATE = 1
Cuando cuenta pasa a 0, OUT pasa a 1
La cuenta se detiene si GATE pasa a 0
Ej. con cuenta inicial 4
Temporizadores del sistema


Clock
Ej. “modo onda cuadrada”: modo 3 (T0, T1 y T2)
Secuencia:


Out

Gate

Se carga cuenta inicial. Se supone: par, OUT=1
Cuenta se decrementa por 2 cada ciclo si GATE = 1
Si cuenta pasa a 0: invierte OUT, restaura automáticamente
cuenta inicial y reinicia cuenta regresiva
Ej. con cuenta inicial 6
Resultado: onda
cuadrada periódica
en OUT (si GATE=1)
OUT de T0 = IRQ0
Interrupción periódica
= “Tic de reloj”
Sistema de disquete


Función principal del sistema de
disquete: leer y escribir los datos de un
disquete
Descripción:


Disquete: medio magnético continuo
Disquetera:


motor que rota al disquete
cabezal lector/escritor que se desplaza por un
motor paso a paso sobre 2 rieles radiales
Sistema de disquete

Sistema físico:
Medio magnético
continuo (disquete)
Desplazamiento discreto de cabezal
hace que los datos se almacenen en
círculos concéntricos: “pistas”
Cabezal lector
(disquetera)
Motor de rotación
(disquetera)
Cada pista se divide en sectores:
- Sectores tienen igual número de bytes
- Unidad de almacenamiento del disquete
- Sectores de ambos lados forman cilindro
- Hueco indica comienzo de pista
Sistema de disquete

Cada sector de un disquete se refiere
por una coordenada tridimensional:



Cilindro o pista: 0 el más externo
Cabezal: 0 superior, 1 inferior
Sector: los sectores de una pista se
numeran en sentido horario desde 1
Sistema de disquete

Formato de cada pista del disquete:



Hueco
Pulsos de sincronización
Concatenación de sectores. Cada sector se
compone de:


Marca de referencia
ID de sector (se inicia al dar formato al disquete):






Cilindro “C” (se inicia al número de cilindro CHS)
Cabezal “H” (se inicial al número de cabezal físico CHS)
Sector “R” (se inicia al número de sector CHS)
Código de tamaño “N” (2 indica 512 bytes)
Datos de los sectores
CRC
Sistema de disquete

Secuencia lectura de sector (2, 0, 3)
Controlador
de disquete
Enciende motor
Búsqueda C = 2
Verifica C = 2
Lectura (2,0,3)
CPU
Si no hay otra
transferencia
por 2 seg se
apaga motor
Registro
de datos
Registro
de estado
Transferencia de
datos por bus
Buffer de sistema de
disquete
1FF D1FF
001
000
D1
D0
2
1
0
Sistema de disquete

DMA:
Dirección
de memoria
Número de
bytes
CPU
Memoria principal
FFFFFH
Controlador
DMA
10200H
10000H
10000H
Controlador
de disquete
D1FF
D1
D0
Buffer
1FFH
00000H
1FF
D1FF
001
000
D1
D0
WR
RD
Inicio DMA
Bus de datos
Comandos de transferencia
INTR
IRQ6
Disquetera
Sistema de disquete



El controlador sólo lee bloque por medio: mientras transmite
datos a memoria se pierde bits del sector siguiente
Por tanto, lectura de dos sectores consecutivos requiere un
rotación completa
Solución: numerar sectores teniendo en cuenta factor de salto
(“Interleaving”)
Sistema de disco duro


Disco duro es una generalización de
disquete: se organiza como pila de
platos rotatorios, con estructura de
cada plato igual a disquete
Alternativamente un disco se puede ver
como cilindros concéntricos, donde
cada cilindro tiene tantas pistas como
cabezales
Sistema de disco duro

Disco como cilindros concéntricos:
Sistema de disco duro



Las pistas del disco se dividen en sectores
Todas las pistas tienen el mismo número de
sectores
Un sector se refiere por su coordenada CHS:



Cilindro C (0..65535)
Cabeza H (0..15)
Sector S (1..255)
Sistema de disco duro

En discos duros la geometría vista por el controlador
de disco difiere de la geometría física, ya que:



Tienen más sectores físicos en pistas externas que en
internas (aumenta capacidad de almacenamiento). Sin
embargo, la geometría que ve controlador de disco tiene
igual número de sectores en todas las pistas
Por compatibilidad hacia atrás: el PC original destina sólo 6
bits a la coordenada S del CHS, y un total de 24 bits a la
coordenada CHS. Se transforman las coordenadas para
permitir el acceso a todos los sectores
Discos duros se denominan IDE (Integrated Device
Electronics) por la electrónica que convierte
parámetros al controlador en parámetros internos
Sistema de disco duro

El procesamiento de la electrónica hace
innecesario el conocimiento del detalle
físico por parte del programador
Sistema de disco duro

Ej.: Secuencia de lectura de sector 001 de dispositivo
0 del canal primario de PC >= AT (no usa DMA)
Controlador de
canal primario
CPU
Comando lectura
01F7H
Nr.Disco-Cabezal
01F6H
Cilindro H
01F5H
Cilindro L
01F4H
Sector
01F3H
Nr. sectores
01F2H
00H
01F1H
D2
D0 D3
D1
INTR
01F0H
IRQ14
20H
A0H
00H
00H
01H
01H
00H
Disco duro
Buffer
1FF D1FF
001 D1
000 D0
Bus
ATA-2
Sistema de disco duro

Como el controlador de disco es más
complicado que el controlador de disquete, el
acceso a datos de disco es más simple que el
acceso a datos de disquete


El acceso a disco duro requiere un único comando
con varios parámetros
El acceso a disquete requiere de una secuencia de
comandos (encender motor, búsqueda,
verificación, lectura/escritura, apagar motor)