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)