1 Estructura y Tecnología de Computadores Módulo E. El subsistema de E/S Tema 11. Dispositivos de entrada/salida José Manuel Mendías Cuadros Dpto. Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid 2 contenidos 1. El teclado Modo de funcionamiento. Tipos de teclados: lineales y matriciales. Estructura de un interfaz de teclado matricial. 2. El ratón Modo de funcionamiento. 3. El monitor CRT Modo de funcionamiento. Tipos de monitores: de barrido y vectoriales. Monitor monocromo. Monitor color. Estructura de un interfaz de monitor CRT alfanumérico de barrido. 4. El disco Modo de funcionamiento. Tipos de discos: Winchester y floppy. Organización física de un disco. Organización lógica de sectores. 5. El CD-ROM Modo de funcionamiento 6. Ejemplo: interfaz de FDD i8272A Tipos de líneas. Formato software IBM 3740. Programación del i8272A. Comandos del i8272A. Resultado de comandos estructura y tecnología de computadores 3 1. el teclado Ö Un teclado es una colección de pulsadores cuyo estado puede ser conocido individualmente Ö La configuraciones mas comunes son: Ø teclados lineales: cada pulsador tiene una línea dedicada para conocer su estado Ø teclados matriciales: los pulsadores se disponen en filas y columnas, de manera que los pulsadores de la misma fila compartan la línea que permite conocer su estado Ö Las tareas a efectuar para obtener de un teclado una información que sea procesable por el computador son: Ø Ø Ø Detectar que ha habido pulsación Esperar a que la pulsación se estabilice (evitando los rebotes) Generar el códido de la tecla pulsada Ö Estas tareas pueden realizarse: Ø Ø Sn S1 S0 pulsador R0 Vcc R1 Vcc Rm Vcc por software: utilizando un interfaz paralelo estándar por hardware: utilizando un interfaz dedicado En un teclado matricial valor de las salidas es: ü ü Si el pulsador (fil,col) está OFF: Rfil = 1 Si el pulsador (fil,col) está ON: Rfil = Scol teclado maticial estructura y tecnología de computadores 4 1. el teclado Estructura de un interfaz de teclado matricial Ö Registro de scan Ø almacena el patrón de bits que estimula las entradas del teclado Ö Registro de retorno Ø carga (una vez pasado el tiempo de rebote) el patrón de bits devuelto por el teclado Ö Lógica de control Ø genera los patrones de bits y temporiza la carga del registro de retorno Ø genera el código de tecla y lo transmite al exterior Ö Existen los dos tipos de interfaces: Ø paralelo: transmite el codigo de tecla en paralelo junto con una señal de dato válido (STROBE) Ø serie: transmite el código de tecla en serie a un interfaz estándar lógica de control Registo de retorno Registo de scan R S Interfaces más complejos permiten la programación de sus características de funcionamiento, el almacenamiento temporal de varias pulsaciones y la conexión directa al bus de E/S estructura y tecnología de computadores Algoritmo de detección de pulsaciones en un teclado matricial poner a 0 todas las columnas esperar a que una fila valga 0 esperar 20 ms poner a 0 una única columna dejando el resto a 1 vale 0 la fila SI generar el código de tecla NO 5 2. el ratón Ö Un ratón es un dispositivo que permite conocer los movimientos que realiza sobre una superficie plana Ö Un ratón (opto-mecánico) esta formado por Ø una bola que se hace rotar al deslizarla por una superfice Ø un par de cilindros perpendiculares que rotan junto con la bola y que en uno de sus extremos poseen una rueda con agujeros (rueda índice) Ø un par de leds que generan luz perpendicular a cada una de las ruedas Ø un par de células fotoeléctricas que detectan cuando la luz generada por los leds atraviesa un agujero de la rueda Ø adicionalmente un ratón puede tener uno o varios pulsadores célula fotoeléctrica LED rueda índice bola tren de pulsos vertical tren de pulsos horizontal Ö El número de pulsos generado por cada una de las células en un intervalo de tiempo, junto con el sentido de rotación de las ruedas, indica cuál a sido el movimiento del ratón en dicho intervalo. Ö La información de movimiento y del estado de los pulsadores deben codificarse en una colección de palabras que deben enviarse al computador Ö El computador será el encargado de interpretar dicha información y de actualizar correctamente la posición del cursor de ratón sobre la pantalla estructura y tecnología de computadores 6 3. el monitor CRT Ö Una pantalla de tubo de rayos catódigos (CRT) está formada por: Ø un tubo de vacío de forma piramidal cuya base está recubierta de un material fluorescente Ø un filamento que produce un haz de electrones (y varios para pantallas en color) Ø un par de bobinas deflectoras perpendiculares que permiten modificar la trayectoria del haz de electrones cañón de electrones haz de electrones V tubo de vacío I H deflectores magnéticos pantalla con revestimiento fluorescente estructura y tecnología de computadores Ö El choque del haz de electrones con el material fluorescente hace que éste se ilumine: Ø el tipo de material fluorescente determina el color de la luz Ø la densidad del haz de electrones determina la intensidad de la luz Ø la desviación inducida por las bobinas determina el lugar de impacto del haz Ø el tamaño del punto de impacto determina la resolución de la pantalla Ö Existen dos métodos de generar imágenes sobre la pantalla: Ø CRT de barrido (raster scan): el haz barre la superfice fluerescente de una forma sistemática modulando la intensidad del haz de acuerdo a la información a representar Ø CRT vectoriales: se manipula el haz para formar directamente los dibujos 7 3. el monitor CRT Ö En los CRT de barrido, el haz de electrones recorre la pantalla completa: Ø Comenzando por la esquina superior izquierda, recorre horizontalmente una fila de pixels Ø Cuando alcanza el final de la fila, apaga momentáneamente el cañon y se coloca al comienzo de la siguiente fila (horizontal retrace). Ø Cuando todas las filas han sido recorridas y se ha alcanzado la la esquina inferior derecha, se apaga el cañón y se retorna al comienzo (vertical retrace). Ö Para controlar el barrido, el interfaz envía a la pantalla tres señales Ø Sincronización horizontal: que marca el comienzo y final de una fila Ø Sincronización vertical: que marca el comienzo y final de una imagen completa (frame). Ø Intensidad: que indica la intensidad del haz de electrones. Ö La información de la información a representar se almacena en la memoria de refresco primera linea segunda linea tercera linea caracter 6×8 caracter 6×8 estructura y tecnología de computadores 8 3. el monitor CRT Ö En un monitor en color (RGB monitor) Ø Ø Ø Ø La pantalla se cubre con trios de puntos de fósforo de colores diferentes (rojo, verde, azul) colocados muy próximos Cada punto del trio puede ser estimulado por un cañón diferente. Para evitar que la dispersión de los haces pueda ocasionar que en un instante se ilumine más de un trio, los haces se pasan a través de una máscara. La intensidad relativa de los diferentes haces determina el color del trio Ö Para controlar el barrido, el interfaz envía a la pantalla cinco señales: Ø Ø Sincronización horizontal y sincronización vertical: que controlan la la trayectoria de los tres haces (que recorren acompasadamente la pantalla) Intensidad roja, intensidad verde e intensidad azul: que indican por separado la intensidad del cada uno de los haces de electrones (valores digitales que pasan a través de conversores D/A) Los interfaces a color pueden requerir memorias de refresco enormes y altas velocidades de transferencia: 800×600 puntos × 256 colores = 480000 bytes 50 Hz de refresco = 24 Mb/s haz rojo haz verde máscara haz azul Por ello se suelen utilizar paletas que reducen el número de colores que pueden mostrarse simultáneamente a un subconjunto de los colores que permite la pantalla. Los colores que se almacenan en la memoria de refresco se traducen a colores reales a través de una memoria de paleta estructura y tecnología de computadores fósforo azul fósforo rojo fósforo verde 9 3. el monitor CRT Estructura de un interfaz de monitor CRT alfanumérico de barrido bus direcciones cc: caracteres por columna cf: caracteres por filas reloj f bus datos SVD Contador col. barrido f1 Contador col. car pv: puntos ver. por caracter ph: puntos hor. por caracter Hsyn Memoria de refresco Generador caracteres f2 Contador fila barrido f3 Contador fila car. Vsyn f4 f1 = f ÷ ph f2 = f1 ÷ ( cf + hor. retrace ) f3 = f2 ÷ pv f4 = f3 ÷ ( cc + ver. retrace ) En los monitores gráficos, la memoria de refresco se conecta directamente a la salida de vídeo serie. estructura y tecnología de computadores 10 3. el monitor CRT Estructura de un interfaz de monitor CRT alfanumérico de barrido (cont.) Ö Líneas de control de barrido (Hsyn, Vsyn, SVD) Ø Generan las señales de sincronización y de datos serie Ö Líneas de acceso al bus Ø Permiten actualizar el contenido de la memoria de refresco Ö Memoria de refresco (doble puerto) Ø contiene los códigos (ASCII) de los caracteres a mostrar Ö Generador de caracteres Ø almacena la matriz de puntos con que se representa cada carácter Ö Contador de fila de caracter Ø almacena la fila de caracteres que se está refrescando Ö Contador de columna de caracter Ø almacena la columna del caracter que se está refrescando Ö Contador de fila de barrido Ø almacena la fila de la matriz de puntos que se está refrescando Ö Contador de columna de barrido Ø almacena la columna de la matriz de puntos que se está Ö Ejemplo: para una pantalla de 80×25 caracteres y un de caracter de 9×14 puntos ü ü ü ü tamaño RAM 2000 bytes (80·25) tamaño ROM: 3584 palabras de 9 bits (256·14) Vsyn = 50 Hz Hsyn = 18432 KHz f = 16257 MHz f1 = f ÷ 9 f2 = f1 ÷(80+hr) f3 = f2 ÷14 f4 = f3 ÷(9+vr) estructura y tecnología de computadores 11 4. el disco Ö Un disco (tipo Winchester) está formado por: Ø Una colección de superfices circulares cubiertas por ambos lados de un material magnetizable Ø Un motor que hace girar a la vez todas las superficies a una velocidad angular constante Ø Una colección de cabezales que pueden moverse tangencialmente al sentido de giro y sobre los que se puede inducir un campo magnético. Ö Operación escritura: se aplican pulsos de corriente de polaridad adecuada sobre los cabezales para modificar el sentido de magnetización de la superficie Ö Operación de lectura: los cambios en el sentido de magnetización de la superficie inducen pulsos de corriente sobre el cabezal Ö observación: sólo pueden detectarse transiciones, por lo que es necesario disponer de información de sincronización: Ø Ø superficie codificando el reloj en los propios datos (ej: codificación Manchester) almacenando el reloj en una pista separada - + dominio magnetico cabezal lectura/escritura eje de giro transición cabezal S N S película magnetizable N soporte estructura y tecnología de computadores 12 4. el disco Organización física de un disco Ö Un disco se organiza en: Ø Ø Ø Ø Superficie: cada una de las superficies magnetizables sobre las que se graba información Pista: cada una de las tiras concéntricas que giran delante de un cabezal (numeradas de fuera adentro comenzando por el 0). Los datos se almacenan en serie dentro de una pista Cilindro: el conjunto de todas las pistas con un mismo número de pista (ubicadas en diferentes superficies) Sector: porción de pista que constituye la unidad de información que se transfiere en un acceso. La división de una pista en sectores puede ser: ð Hardware: mediante marcas mecánicas ð Software: mediante grupos de bits que delimitan el comienzo y el final del sector Cabecera de pista Cabecera sector: cilindro/superficie/sector Sector 1 Datos Sector n Fin de sector Fin de pista dado que la velocidad de giro es constante y que todas las pistas se estructuran del mismo modo, la información e graba con una mayor densidad en las pistas internas que en las externas Ö Esta organización determina que el tiempo de acceso a un grupo de datos sea la suma de: Ø Ø Tiempo de búsqueda: tiempo que tarda el cabezal en alcanzar una pista dada Tiempo de latencia: tiempo que tarda el cabezal en alcanzar un sector dado una vez que se encuentra en la pista adecuada estructura y tecnología de computadores 13 4. el disco Organización lógica de sectores Ö ¿Cómo se organiza la información en un disco? Ø Cuando la información a almacenar supera la capacidad de un sector suele almacenarse en sectores consecutivos. Ø Si supera la capacidad de una pista suelen utilizarse varias pistas pertenecientes al mismo cilindro. Ø Si supera la capacidad de un cilindro suelen utilizarse los cilindors adyacentes Ö Para minimizar los tiempos de acceso se utilizan las siguientes técnicas: Ø Intercalado de sectores (sector interleaving): direcciones consecutivas de sector no se ubican consecutivamente en la pista. Permite que el interfaz tenga tiempo de vaciar los bufferes de almacenamiento intermedio mientras el disco sigue girando. Ø Cylinder skew: las direcciones de de sector pertenicientes a un mismo cilindro están desplazadas de una superficie a otra. Permite encadenar las lecturas de sectores consecutivos pertenecientes a diferentes superficies Ø Track skew: las direcciones de sector están desplazadas de una pista a otra. Permite encadenar las lecturas de sectores consecutivos pertenecientes a diferentes pistas. cylinder skew 1 6 9 11 2 11 10 7 track skew 1 1 11 2 10 3 9 3 4 4 8 6 9 7 sector interleaving 1 2 11 1 9 9 8 4 7 10 10 3 8 5 8 11 10 2 5 8 7 7 6 3 3 4 4 6 5 2 5 5 6 estructura y tecnología de computadores 14 4. el disco Ö Un disco (tipo floppy) está formado por: Ø Una única superfice circular extraíble cubierta por ambos lados de un material magnetizable Ø Un motor que hace girar la superficie a una velocidad angular constante Ø Dos cabezales que pueden moverse tangencialmente al sentido de giro y sobre los que se puede inducir un campo magnético. Ø Pares led/célula fotoeléctrica. Ö Los aspectos operativos y organizativos son similares a los de los discos tipo Winchester. Se diferencian en rendimiento. Floppy Capacidad: 2 Mb Velocidad de giro: 360 rpm Ancho de banda: 62,5 Kb/s • 1 superfice extraible • los cabezales están en contacto con la superficie • no rota constantemente Disco tipo Winchester Capacidad: ∼Gb Velocidad de giro: 3600-10000 rpm Ancho de banda: ∼ Mb/s • varias superfices fijas • los cabezales “vuelan” sobre la superficie • rota constantemente estructura y tecnología de computadores protección de escritura detectores eje de giro superficie índice cabezal 15 5. el CD-ROM CD-ROM Ö Un CD-ROM está formado por: Ø Ø Ø Ø Una única superficie circular cubierta por un lado de un material reflectante Un motor que hace girar a la superficie a una velocidad lineal constante Un haz laser que indice sobre la superficie. Una célula fotoeléctrica que recoge la interferencia del haz emitido con el haz reflejado soporte metal reflectante separador de haz haz emitido = haz reflejado haz suma interferencia constructiva célula fotoelectrica haz láser haz emitido = haz reflejado haz suma interferencia destructiva diodo láser estructura y tecnología de computadores 16 6. ejemplo: interfaz de FDD i8272A Controlador de floppy i8272A Ö Interfaz diseñado para el control de hasta 4 floppy (compatible i8086) Ö Compatible con el formato software IBM 3750 Ö Capacidad de transferencias por DMA DB0-DB7 DS0-DS1 CS* RW*/SEEK A0 RD* WR* MFM HDL HDSEL READY i8272A RESET FLT/TRK0 WP*/TS DRQ* DACK* TC INT IDX LCT/DIR FR/STP WE WR DATA PS1 WR CLK PS0 RD DATA DW VCO estructura y tecnología de computadores Ö 4 grupos de líneas: Ø Líneas de comunicación con la CPU Ø Líneas de comunicación con el controlador de DMA Ø Líneas de control de operación del FDD Ø Líneas de control de transferencia con el FDD Ö 2 registros: Ø Registro de estado Ø Registro de datos 17 6. ejemplo: interfaz de FDD i8272A Formato software: IBM 3740 Marca de comienzo de pista Sector 26 188 bytes Gap 4 (FF) Gap 5 (FF) 275 bytes 40 bytes Sinc (00) FC Gap1 (FF) Sector 1 Sector 2 Sector 25 6 bytes 1 byte 26 bytes 188 bytes 188 bytes 188 bytes Sinc (00) ID Gap 2 (FF) Sinc (00) Campo de datos Gap 3 (FF) 6 bytes 7 bytes 11 bytes 6 bytes 131 bytes 27 bytes Adrress mark Num. pista 00 Num. sector 00 Cheqsum Data mark Datos Cheqsum 1 byte 1 byte 1 byte 1 byte 1 byte 2 bytes 1 byte 128 bytes 2 bytes estructura y tecnología de computadores 18 6. ejemplo: interfaz de FDD i8272A Líneas de comunicación con el controlador de DMA DRQ*: línea de petición de DMA DACK*: línea de concesión de DMA TC (Terminal Count): indica el fin de la transfrencia DMA INT: línea de petición de interrupción Líneas de comunicación con la CPU DB0-DB7: líneas de datos CS* (chip select): la activa la CPU para programar el FDC A0: selección de los registros internos (estado/datos) RD*: indica la lectura de un registro del FDC WR*: indica la escritura de un registro del FDC RESET: reinicia el FDC y sus salidas. No borra el último comando Líneas de control de transferencia con el FDD WR DATA (Write Data): genera en serie los bits de reloj y datos que han de grabarse sobre la pista WE (Write Enable): capacita la escritura de los bits generados por WR DATA WR CLK (Write Clock): señal de reloj para la escritura de datos PS1-PS0 (Precompensation): indica la grabación de información de compensación durante la grabación en modo MFM RD DATA (Read Data): acepta en serie los bits de reloj y datos que se leen de la pista DW (Data Window): indica al FDC donde se encuentran los bits de datos dentro de la línea RD DATA VCO (VCO Sync): habilita que un circuito externo se sincronice con los pulsos leídos sobre la pista estructura y tecnología de computadores 19 6. ejemplo: interfaz de FDD i8272A Líneas de control de operación del FDD DS0-DS1 (Drive Select): líneas de selección de floppy RW*/SEEK: indica el modo de operación del disco (transferencia o búsqueda) READY: la activa el FDD para indicar su disponibilidad para la transferencia HDL (Head Load): indica que el cabezal se ponga en contacto con la superficie HDSEL (Head Select): selecciona el cabezal que debe ponerse en contacto (para discos con dos superficies) MFM: indica el modo de grabación de los datos MFM o FM WP*/TS (Write Protect/Two-side): indica que el disco está protegido contra escritura (modo transferencia) o si el disco tiene dos superficies (modo búsqueda) FLT/TRK0 (Fault/Track 0): indica un problema durante la trasferencia (modo transferencia) o que el cabezal está sobre la pista 0 (modo búsqueda) IDX (Index): indica el comienzo de la pista LCT/DIR (Low Current/Direction): indica que se utilice menor intensidad en la grabación de las pistas más internas para evitar que los bits se solapen al ser almacenados a una mayor densidad (modo transferencia) o indica la dirección de movimiento del cabezal (modo búsqueda) FR/STP (Fault Reset/Step): resetea el indicador de fallo de transferencia (modo transferencia) o genera pulsos para mover el cabezal de una pista a la contigüa estructura y tecnología de computadores 20 6. ejemplo: interfaz de FDD i8272A Programación del i8272A Ö El i8272A dispone de 2 registros de 8 bits cada uno: Ø Registro de datos (A0=1). Diseñado como una pila de 9 registros (accesibles secuencialmente) sobre los que se escriben los comandos y de los que se leen la información de estado de su ejecución. Ø Registro de estado principal (A0=0). Contiene información general de estado del interfaz y puede ser accedido en cualquier momento. ð Bit 0/1/2/3: indican si el FDD 0/1/2/3 están en modo búsqueda ð Bit 4: indica que se está ejecutando un comando de transferencia ð Bit 5: indica que el FDC no utiliza DMA ð Bit 6: indica si se está leyendo o escribiendo sobre registro de datos ð Bit 7: indica si el registro de datos está preparado para una nueva escritura/lectura Ö El i8272A puede ejecutar 15 comandos que se codifican con un máximo de 9 bytes. El resultado de dichos comandos se codifica con un máximo de 7 bytes. Dado que la CPU y el i8772A deben intercambiar información multi-byte, en la ejecución de un comando se distinguen 3 fases: Ø Fase de comando. El FDC recibe el comando y los parámetros de la CPU Ø Fase de ejecución. El FDC ejecuta el comando Ø Fase de resultados: La información de estado se haya disponible para que la lea CPU estructura y tecnología de computadores 21 6. ejemplo: interfaz de FDD i8272A Comandos del i8272A Ö Lectura de datos: ordena bajar el cabezal y leer una cantidad de datos de un sector particular (indicando cilindro, cabezal y sector) Ö Escritura de datos: ordena bajar el cabezal y escribir una cantidad de datos en un sector. Ö Lectura de datos borrados: lee datos de sectores marcados como borrados Ö Escritura de datos borrados: marca un sector como borrado Ö Lectura de una pista: lee todos los sectores de una pista Ö Lectura de identificador: lee el primer campo de identificación que encuentre en una pista sobre la que se hallen los cabezales Ö Formateo de una pista: da un formato de terminado a una pista indicando el número de bytes por sector, de sectores por pista y el tamaño de los “gaps” Ö Comparación: compara byte a byte la información que se lee del disco con la que envía la CPU o el DMA por el puerto de datos (puede ser de igualdad, mayoría o minoría) Ö Búsqueda: ordena colocar los cabezales en una posición determinada Ö Calibrado: ordena colocar los cabezales sobre la pista 0 Ö Lectura de la causa de la interrupción Ö Lectura del estado disco: lee las señales de estado del disco (FLT, WP, ...) Ö Especificación de temporización: programa la temporización de las señales de control del disco (HDL, SEEK, ...) estructura y tecnología de computadores 22 6. ejemplo: interfaz de FDD i8272A Comandos del i8272A (Cont) Ö El comando de formateo utiliza 6 bytes: Ø byte 1: Ø byte 2: Ø Ø Ø Ø byte 3: byte 4: byte 5: byte 6: 0 MFM 0 0 1 1 0 1 0 0 0 0 0 HDS DS1 DS0 MFM→ modo de grabación de datos HDS→ selección de superficie DS1-0 → selección de disco número de bytes de datos por sector número de sectores por pista longitud del GAP 3 patrón con el que se rellenará el sector Ö El comando de lectura utiliza 9 bytes: Ø byte 1: MT MFM SK 0 0 1 1 0 Ø byte 2: 0 0 0 0 HDS DS1 DS0 Ø Ø Ø Ø Ø Ø Ø número de pista número de superficie número de sector número de bytes de datos por sector número del último sector de una pista longitud del GAP 3 número de bytes a leer byte 3: byte 4: byte 5: byte 6: byte 7: byte 8: byte 9: estructura y tecnología de computadores MT→ modo de lectura multi-pista MFM→ modo de grabación de datos SK→ saltar las marcas de sector borrado HDS→ selección de superficie DS1-0 → selección de disco 23 6. ejemplo: interfaz de FDD i8272A Resultado del comando de lectura Ö Byte 1: Ø Bit 0/1 (Unit Select): indica el disco que ha provocado la interrupción Ø Bit 2 (Head Address): indica el estado del cabezal Ø Bit 3 (Not Ready): indica si el FDD está preparado Ø Bit 4 (Equipment Check): utilizado por el comando de calibrado Ø Bit 5 (Seek End): indica que finalizó el comando de búsqueda Ø Bit 6/7 (Interrupt Code): indica cómo finalizó el comando Ö Byte 2: Ø Bit 0 (Missing Address Mark): no se dectecta la marca ID Ø Bit 1 (Not Writable): indica si el disco está protegido contra escritura Ø Bit 2 (No Data): no encuentra el sector indicado Ø Bit 4 (Over Run): las transferencias no fueron atendidas Ø Bit 5 (Data Error): detectado un error de CRC Ø Bit 7 (End of Cylinder): se intentó acceder a un sector posterior al último Ö Byte 3: Ø Bit 0 (Missing Address Mark in Data Field): no se dectecta la marca ID Ø Bit 1 (Bad Cylinder): error en la selección de pista Ø Bit 2 (Scan Not Satisfied): resultado del comando de scan Ø Bit 3 (Scan Equal Hit): resultado del comando de scan Ø Bit 4 (Wrong Cylinder): error en la selección de pista Ø Bit 5 (Data Error in Data Field): detectado un error de CRC en los datos Ø Bit 6 (Control Mark): detectado un sector marcado como borrado Ö Bytes 4/5/6/7: devuelven actualizados los bytes 3/4/5/6 indicados en el comando de manera que indentifiquen la dirección del siguiente sector lógico estructura y tecnología de computadores