Arquitectura de computadoras Técnicas Digitales III Ing. Gustavo Nudelman 2013 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Que entendemos por arquitectura • Un sistema con una CPU, memoria y dispositivos de entrada y salida puede considerarse un sistema computacional. • En el diseño de un sistema computacional elegimos: • • • Tipo de CPU Unidades de I/O Ubicación de las unidades en el mapa de I/O • La elección de la arquitectura puede definir nuestro sistema para que pueda ser usado para aplicaciones específicas (sistemas embedded), sistemas de propósito general (arquitectura estándar) o incluso definir un nuevo estándar. • A principios de los 80 IBM introduce la arquitectura PC, convirtiéndose la misma en un estándar por sobre las diferentes arquitecturas que existían al momento Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Mapa de memoria Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Mapa de memoria Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Mapa de memoria Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Mapa de I/O en arquitectura Pc Universidad Tecnológica Nacional - Facultad Regional Buenos Aires 8254 – Timer programable • Timer0: • Mapeado en la dirección 40h de I/O • Es la base de tiempo del sistema (línea de interrupción IRQ0) • Se programa por ROM (al iniciar el sistema) para generar un pulso cada 55ms • Los sistemas operativos modernos modifican esta configuración • Timer1 • Utilizado en principio para el Refresco de la memoria RAM (hoy no se lo utiliza) • Mapeado en la dirección 41h • Timer2 • Mapeado en la dirección 42h • Programado para generar una señal cuadrada que es utilizada para el beep del speaker básico. • Se utiliza también la dirección 43h para obtener información de status Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Control de interrupciones – PIC 8259 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires PIC 8259 en arquitectura Pc Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Programación por defecto del PIC en arquitectura PC Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Interrupciones del procesador Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Teclado • Un microcontrolador 8042 se encarga del barrido de la matriz de teclas con la implementación del control de anti rebote. • Una vez detectada la pulsación o liberación de una tecla se transmite por línea serie a la PC el código de la misma. • El código transmitido, llamado “ScanCode” corresponde a una información de posición en la matriz. No es el código del carácter. • El SCAN CODE se transmite cada vez que se pulsa una tecla (acción conocida como MAKE) y se vuelve a transmitir cuando se la libera (break) generar una segunda • Tanto para “make”, como para break, el microcontrolador genera una interrupción a través de la línea IRQ1 del PIC • Al generar la interrupción, el 8042 deja disponible en la dirección 60h el scancode correspondiente (con MSB en 1 si es un break) Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Teclas modificadoras en la BIOS data área Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Power on self test (POST) • Cuando el procesador es energizado, este comienza a buscar instrucciones para ejecutar en la dirección FFFF0 en la cual se encuentra mapeada la ROM del sistema (ver mapa de memoria) • Antes de iniciar su operación el sistema verificará el correcto funcionamiento de la CPU • Chequea si el contenido de la ROM es el correcto (realiza un checksum del contenido de la ROM completa que en fábrica se ajusta de modo que el resultado del check sea cero). • Detecta el tipo de adaptador de video instalado. Lo inicializa en modo texto 80x25. Escribe en la BIOS DATA AREA los principales datos de interés para el sistema que proporciona este controlador. • Comprueba la correcta interacción con el 8042 y establece el modo de trabajo con los diferentes ports de E/S que proporciona este chip. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Power on self test (2) • Comprueba el correcto funcionamiento para el canal de DMA 0 y dispara el refresco de memoria. • Comprueba el 8259 y lo inicializa con los valores default de los vectores de Interrupción. A los que usa, los apunta a las rutinas de la ROM correspondientes. • Cuenta la memoria RAM y comprueba su funcionamiento Una vez finalizada la cuenta de memoria, chequea los restantes timers y canales de DMA. Si funcionan correctamente los inicializa de acuerdo a la forma en la que van a trabajar cada uno de ellos. • Funcionando correctamente el teclado y el timer tick, habilita sus interrupciones en el 8259. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Power on self test (3) • Testea el funcionamiento de las unidades de disco. Una vez comprobado las inicializa, y escribe los resultados y principales parámetros en la BIOS DATA AREA. • Chequea si existen ports serie. Inicializa a los que encuentra y guarda resultados en BIOS de DATA AREA. Chequeo de Extensiones BIOS • • El rango de direcciones de memoria en lasaque pueden mapear Chequea si existen ports paralelo. Inicializa los se que encuentra y ROMs va C0000h hasta la EFFFFh. guardaestas resultados endesde BIOSlaDATA AREA. • • Se busca dentro de este rango cada 2K una firma fija e igual a 55AAh. Establece si existen extensiones BIOS. Esto es: La ROM BIOS de Si la encuentra asume que en esa página de 2k comienza una las PCextensión provee un camino para integrar adaptadores de E/S con su de BIOS. propia ROM on-board. • • Si el POST detecta alguna ROM adicional, le transfiere Llama temporariamente a la rutina Bootstrap loader para la carga del sistema el control. operativo • Devolverá al POST el control del sistema (RET) dejando al hardware asociado a la extensión BIOS, listo para su uso. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Carga del sistema operativo • La rutina Boostrap Loader del BIOS solo se limita a: • Leer el primer sector físico del disco. • Cargar los 512 bytes en memoria RAM (0000h:7C00h) • Saltar al primer byte (debe haber allí una instrucción válida) • La unidad de disco que lee es la que tiene configurada el equipo en la secuencia de arranque. • Siendo que ningún sistema operativo puede caber en 512 bytes, en ese sector debe residir un programa que sepa cargar al Sistema Operativo. (botstrap loader) • Un boot loader debe ser capaz de cargar el software en memoria y transferir el control a donde sea necesario Universidad Tecnológica Nacional - Facultad Regional Buenos Aires