Computadores y Comunicaciones Tema 4: Arquitectura y funcionamiento básico del ordenador Febrero, 2011 Jorge Juan Chico <[email protected]>, Julián Viejo Cortés <[email protected]> Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons. Puede consultar el texto completo de la licencia en http://creativecommons.org/licenses/by-sa/3.0/ Objetivos Conocer la estructura básica de un ordenador Comprender cómo funcionan los principales componentes del ordenador Conocer los distintos dispositivos de memoria y almacenamiento existentes y valorar ventajas e inconvenientes de cada uno Comprender la utilidad de los mecanismos de interrupciones y acceso directo a memoria como método para mejorar las prestaciones de las operaciones de entrada y salida 2 Contenidos Estructura básica del ordenador Unidades funcionales – El bus. La memoria. Dispositivos de entrada/salida. La CPU. Dispositivos de almacenamiento – Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD. Interrupciones y métodos de entrada/salida 3 Estructura básica del ordenador. Modelo de Von Neumann Un ordenador consiste en una serie de componentes básicos capaces de realizar tareas simples: operaciones lógicas, operaciones aritméticas, movimiento de datos, etc. Cuando estos componentes se organizan para realizar una tarea determinada se dice que el ordenador está "programado" para esa tarea. – – Programa cableado (hardwired): los primeros ordenadores se programaban conectando "físicamente" sus componentes en la forma requerida. Programa almacenado (software): en la actualidad, la programación se realiza mediante el almacenamiento de instrucciones en una "memoria" siguiendo el modelo de Von Neumann. 4 Estructura básica del ordenador. Modelo de Von Neumann Principios básicos: – – – Los datos y las instrucciones se almacenan en una misma memoria de lectura y escritura. Tanto los datos como las instrucciones se acceden de una misma forma (las instrucciones pueden ser tratadas como datos). Las instrucciones se ejecutan secuencialmente salvo que se de una orden especial Ventajas – facilidad de programación, flexibilidad, código reutilizable. Inconvenientes – se dedica tiempo y recursos a la captación y ejecución de las instrucciones almacenadas en la memoria. 5 Estructura básica del ordenador Memoria CPU Conexión E/S Periféricos CPU CPU Memoria Memoria E/S E/S 11 E/S E/S 22 BUS (Conexión) 6 Estructura básica del ordenador CPU (Unidad central de proceso) – cerebro del ordenador, ejecuta instrucciones, realiza operaciones lógicas y aritméticas Memoria – almacena datos y programas – directamente accesible por la CPU Entrada/Salida (E/S) – comunica la CPU con dispositivos "externos" (periféficos): monitor, teclado, red, modem, discos, etc. Sistema de conexión – comunica la CPU con la memoria y los módulos de E/S 7 Contenidos Estructura básica del ordenador Unidades funcionales – El bus. La memoria. Dispositivos de entrada/salida. La CPU. Dispositivos de almacenamiento – Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD. Interrupciones y métodos de entrada/salida 8 Unidades Funcionales. El Bus Conjunto de líneas eléctricas que permiten la comunicación entre los componentes del ordenador. Tipo de líneas: – – – Dirección (bus de direcciones -AB-): indican el origen o destino de los datos Datos (bus de datos -DB-): contienen el dato a transferir Control: determinan el tipo de operación a realizar CPU Memoria E/S 1 direcciones datos control 9 El bus. Arbitración Bus Master (maestro del bus): dispositivo que controla el bus en un momento determinado. Árbitro: dispositivo que concede el control del bus a los demás – – REQ#: petición de uso del bus (request) GR#: cesión del bus (grant) Árbitro Árbitro REQ1 REQ2 GRT1 CPU CPU GRT3 GRT2 REQ3 E/S E/S 11 E/S E/S 22 Memoria Memoria BUS 10 El bus. Jerarquía No hay un sólo bus que cubra todas las necesidades: velocidad, extensión, coste, compatibilidad, etc. Los puentes se encargan de que la estructura "lógica" siga siendo de bus único CPU Memoria Bus del sistema (133MHz, 64 bits) Puente VGA Discos Red Bus PCI (33MHz, 32 bits) Puente E/S 1 E/S 2 Bus ISA (8MHz, 16 bits) 11 Unidades Funcionales. El bus Ejemplo de bus simple: – – – – Direcciones: 16 bits (0 .. FF) Datos: 8 bits Control: Memoria/ES (M/I): Memoria=0, E/S=1 Lectura (R): activa=1 Escritura (W): activa=1 Transferencia reconocida (ACK): activa=1 Reloj: activo en "flanco de bajada" BUS DIR 0000 DATO 00 M/I 0 R 0 W 0 ACK 0 12 Unidades Funcionales. Memoria La memoria está compuesta por un conjunto de registros de una anchura determinada (p. ej. 8, 16 o 32 bits). Cada registro (o posición de memoria) se identifica con una dirección unívoca. Cada posición de memoria almacena un dato que puede ser leido o escrito. – – al leer una posición de memoria, el dato no se modifica al escribir en una posición de memoria el dato antiguo se borra La memoria se conecta con el exterior mediante: – – – líneas de dirección (A): identifican la posición de memoria a la que se quiere acceder. líneas de datos (D): trasmiten el dato a almacenar o el leido. líneas de control: seleccionan una de las dos posibles operaciones: lectura (R) o escritura (W). 13 Memoria. Lectura Memoria BUS DIR 0003 0000 0001 0002 0003 0004 0005 0006 D2 A6 61 34 24 3C F1 . . . . . . FFFF 7872 DATO 34 M/I 0 R 1 W 0 ACK 1 14 Memoria. Escritura Memoria BUS DIR 0005 0000 0001 0002 0003 0004 0005 0006 D2 A6 61 34 24 17 F1 . . . . . . FFFF 7872 DATO 17 M/I 0 R 0 W 1 ACK 1 15 Entrada/Salida. Funcionamiento básico Análogo a la memoria Activada cuando la operación en el bus es de entrada/salida Cada dispositivo responde a una o varias direcciones Los dispositivos no direccionados permanecen inactivos Periférico A Periférico B Periférico C E/S 00-03 E/S 04 E/S A8-AF BUS 16 Entrada/Salida. Lectura Periférico A Periférico B E/S Puerto 0003 E/S Puerto 0005 7F BUS DIR 0003 1234 DATO 7F M/I 1 R 1 W 0 ACK 1 17 Entrada/Salida. Escritura Periférico A Periférico B E/S Puerto 0003 E/S Puerto 0005 54 BUS DIR 0003 1234 DATO 54 M/I 1 R 0 W 1 ACK 1 18 Entrada/Salida Ejemplo: terminal de texto Hello World! Hola Mundo Dispositivo sólo de salida Puerto de E/S (dirección): 01 Recibe datos de 8 bits e imprime en la pantalla el símbolo correspondiente según la codificación Latin-1 (ISO-8859-1) Dispone de un registro interno para almacenamiento temporal. E/S 01 H BUS 19 Entrada/Salida Ejemplo: teclado QWERT YUIOP ASDFG HJKLÑ ZXCVB NM,.** ***** *** Dispositivo sólo de entrada Puerto de E/S (dirección): 02 Envía datos de 8 bits correspondientes a símbolos de la codificación Latin-1 (ISO-8859-1) Dispone de un buffer interno para almacenar 4 símbolos Emite un sonido cuando se pulsa una tecla y el buffer está lleno 789/ 456* 1230.=+ E/S buffer 02 H O L A BUS 20 CPU Ciclo de instrucción La tarea de la CPU es ejecutar intrucciones almacenadas en la memoria. Para ello repite incesantemente el "ciclo de instrucción" Para realizar la ejecución, la CPU cuenta con: Unidades de procesamiento Registros internos Unidad de control Captación Ejecución no ¿fin? si FIN 21 CPU. Estructura básica CPU Unidad de control Unidad de Procesamiento Registros Unidades de procesamiento: operaciones lógicas, aritméticas, punto flotante, etc. Registros internos: almacenamiento temporal de operandos y resultados Unidad de control: gestiona todo el proceso de captación y ejecución de instrucciones BUS 22 CPU de ejemplo Registros – CPU PC IR D2 A6 A B C D 34 24 3C F1 Z OV 1 0 – – – – PC (8 bits): contador de programa (Program Counter). Almacena la dirección de la próxima instrucción a ejecutar. IR (16 bits): registro de instrucción (Instruction Register). Almacena el códico de la próxima instrucción a ejecutar. A,B,C y D (16 bits): registros de propósito general. Z (1 bit): bandera de cero. Se pone a 1 cuando el resultado de una operación lógica o aritmética es 0. OV (1 bit): bandera de overflow. Se pone a 1 cuando hay desbordamiento en un operación aritmética. 23 CPU Instrucciones Lenguaje (código) máquina: código binario de las instrucciones que ejecuta la CPU Lenguaje ensamblador: representación del lenguaje máquina mediante palabras clave fáciles de entender para el programador MOV MOV ADD ADD MOV MOV A,5 A,5 A,6 A,6 A,7 A,7 0011001011000101 0011001011000101 1101001010000110 1101001010000110 0011001011000111 0011001011000111 24 CPU. Instrucciones Ejemplo ;; ejemplo ejemplo introductorio; introductorio; suma suma los los números números de de una una lista lista SECTION SECTION .data .data global global xx x: x: dd dd dd dd dd dd dd dd sum: sum: ;; comienzo comienzo del del segmento segmento de de datos datos 11 55 22 18 18 dd dd 00 SECTION SECTION .text .text ;; comienzo comienzo del del segmento segmento de de código código mov mov eax,4 eax,4 mov mov ebx,0 ebx,0 mov mov ecx, ecx, xx ;; EAX EAX servirá servirá de de contador contador para para el el ;; número número de de datos datos que que quedan quedan por por sumar sumar ;; EBX EBX almacenará almacenará la la suma suma ;; ECX apunta al siguiente elemento ECX apunta al siguiente elemento ;; aa sumar sumar top: top: add add ebx, ebx, [ecx] [ecx] add ;; mueve add ecx,4 ecx,4 mueve el el puntero puntero al al siguiente siguiente elemento elemento dec ;; decrementa dec eax eax decrementa el el contador contador jnz ;; si jnz top top si el el contador contador no no es es 0, 0, repetir repetir done: done: mov mov [sum],ebx [sum],ebx ;; hecho, hecho, almacena almacena el el resultado resultado en en [sum] [sum] 25 http://heather.cs.ucdavis.edu/~matloff/50/LinuxAssembly.html Computador simple Memoria CPU PC IR D2A7 A610 A B C D Z OV BUS 341C 2470 3C30 F100 0000 0001 0002 0003 0004 0005 0006 D2 A6 61 34 24 3C F1 1 0 . . . . . . FFFF 7872 DIR 0000 DATO 00 M/I Hello World! Hola Mundo E/S 01 H 0 E/S 02 R 0 W 0 H O L A ACK 0 QWERT YUIOP ASDFG HJKLÑ ZXCVB NM,.** ***** *** 789/ 456* 1230.=+ 26 Contenidos Estructura básica del ordenador Unidades funcionales – El bus. La memoria. Dispositivos de entrada/salida. La CPU. Dispositivos de almacenamiento – Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD. Interrupciones y métodos de entrada/salida 27 Almacenamiento. Clasificación Ubicación – CPU, memoria interna, memoria externa, ... Capacidad – tamaño de la palabra, número de palabras. Unidad de transferencia – palabra, bloque Tecnología de fabricación – semiconductor, magnética, óptica, ... Tipo de acceso – secuencial, aleatorio Características físicas – Volatil/No-volatil, borrable/no-borrable Prestaciones – tiempo de acceso, velocidad de transferencia 28 Almacenamiento. Ubicación Registros de la CPU – – usados como argumentos en las operaciones lógicas, aritméticas, etc. almacenamiento más próximo a la CPU y de acceso más rápido. Memoria Interna (o Memoria Principal) – – – accesible directamente por la CPU (instrucciones de acceso a memoria) acceso rápido medio semiconductor (circuito electrónico) Memoria externa (o Dispositivos de Almacenamiento) – – – acceso indirecto: primero hay que transferir los datos a la memoria principal accesible mediante dispositivos de entrada/salida diferentes medios: discos magnéticos, CD-ROM, cintas, etc. 29 Almacenamiento. Jerarquía No existe un tipo único de memoria que cubra todas las necesidades Es necesario combinar varios tipos Externa Interna Registros Registros CPU CPU Memoria Memoria caché caché Memoria Memoria principal principal menor coste mayor capacidad mayor tiempo acceso Discos Discos magnéticos magnéticos Cintas/discos Cintas/discos ópticos ópticos 30 Memoria interna. Tipos Tipo M. de acceso aleatorio (RAM) Volatilidad volátil M. de sólo lectura (ROM) Operaciones lectura / escritura Borrado por bytes lectura Escritura eléctricamente máscaras no posible ROM programable (PROM) PROM borrable (EPROM) chip completo (luz ultrav.) no-volátil sobre todo lectura eléctricamente PROM borrable eléctr. (EEPROM) por bytes eléctricamente Memoria FLASH por bloques eléctricamente 31 Memoria interna. Ejemplo 32 Memoria interna. Evolución 33 Memoria caché – CPU CPU – – Caché Caché – Memoria Memoria principal principal – Memoria de alta velocidad situada entre la CPU y la memoria principal Guarda los datos más recientes y que serán accedidos por la CPU con mayor probabilidad. Se base en el "principio de localidad": los datos/instrucciones accedidos recientemente tienen mayor probabilidad de ser accedidos en el futuro. Permite que la CPU opera a su velocidad máxima. Puede haber varios niveles de caché: interna, externa, etc. 34 Memoria externa. Tipos Discos magnéticos – – – – gran capacidad lectura/escritura alta velocidad memoria secundaria CD/DVD – – – capacidad moderada velocidad media distribución de programas y documentación, copias de seguridad, etc. Unidades Flash (llave USB, etc.) – – – equivalente al disco magnético pero con tecnología Flash fiable alta velocidad Cintas magnéticas – – – gran capacidad acceso secuencial copias de seguridad 35 Discos magnéticos Una unidad de datos (sector) se accede indicando tres parámetros: C-H-S – – – Cilindro (C): proporciona la posición radial de las cabezas. El conjunto de cabezas se desplaza el cilindro seleccionado. Cabeza (H - Head): activa una cabeza de lectura/escritura. Selecciona una cara concreta. Sector (S): selecciona un sector dentro de una pista. El sector se lee al pasar por debajo de la cabeza de lectura/escritura. 37 http://commons.wikimedia.org/wiki/Image:Cilindro_Cabeza_Sector.svg Discos magnéticos. Sector cola datos cabecera Cabecera: – contiene información de localización y estado del sector Datos: – bloque de datos almacenados Cola: – código de detección y corrección de errores (CRC) Archivos – los archivos empleados por el Sistema Operativo se construyen a base de listas de sectores distribuidos por el disco de forma más o menos ordenada. 38 Discos magnéticos. Propiedades Tiempo medio de acceso – – tiempo medio que se tarde en mover las cabezas y rotar el disco hasta comenzar a leer un sector ~ 10ms Velocidad de transferencia máxima (burst rate) – – velocidad de lectura de datos cuando se lee un sector depende de la velocidad de rotación, el número de sectores en una pista y el tamaño del sector Velocidad de transferencia media – – – velocidad de lectura de datos media considerando tiempos empleados en cambiar de un sector a otro disminuye cuando aumenta la “fragmentación” ~ 20-60 MB/s 39 Cintas magnéticas datos cabezal cabecera Acceso secuencial Estructura en bloques Múltiples cabezas/pistas 40 CD-ROM/R/RW – – – – Tecnología óptica Una única pista en espiral (5km) 20000 pistas aparentes Disco original audio: 1.2 m/s 73 min 774.57 MB 176.4 B/s (650MB efect.) 41 DVD-ROM/+-R/+-RW – – – – Tecnología similar al CD pero con mayor capacidad Mayor densidad por capa: 4.7GB (7 CD's) Hasta 4 capas (dos por cara): 17 GB (26 CD's) Diseñado para ~2 horas de vídeo MPEG2 a resolución PAL CD DVD 42 CD/DVD-ROM 43 CD/DVD-R 44 CD/DVD-RW 45 Contenidos Estructura básica del ordenador Unidades funcionales – El bus. La memoria. Dispositivos de entrada/salida. La CPU. Dispositivos de almacenamiento – Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD. Interrupciones y métodos de entrada/salida 46 Interrupciones En muchas ocasiones es necesario "avisar" a la CPU de un acontecimiento: – – – llegada de un paquete de red presión de una tecla avisos periódicos: actualizar un reloj, multitarea, etc. Esto se consigue mediante el mecanismo de "Interrupciones". Al recibir una interrupción (activación de la señal de interrupción), la CPU: – – – Deja de ejecutar el programa actual Salta a un programa de servicio a la interrupción Vueve a ejecutar el primer programa donde lo había dejado. 47 Interrupciones Programa principal Durante la ejecución de una instrucción, se activa una línea de interrupción (*) Gestor de interrupción * RETORNO La CPU guarda la información necesaria sobre el programa principal (contexto) y salta al "gestor de interrupción". El gestor de interrupción hace las operaciones necesarias para atender la interrupción. Una instrucción de "retorno de interrupción" devuelve el control al programa principal y continúa la ejecución. 48 Interrupciones. Ciclo de instrucción Captación Ejecución si ¿interr? Salvar contexto Ejecutar interrupción Recuperar contexto no no ¿fin? si FIN 49 Métodos de entrada/salida Entrada/salida programada – – se realiza al ejecutar una instrucción de E/S la CPU permanece bloqueada mientras se completa la operación de entrada/salida Entrada/salida mediante interrupciones – emplea interrupciones para evitar tiempos de espera de la CPU Acceso directo a memoria (DMA) – el módulo de E/S transfiere datos directamente a la memoria mediante múltiples operaciones, sin intervención de la CPU 50 Métodos de entrada/salida E/S programada La operación se realiza al encontrar una instrucción de E/S en el programa (E/S programada) La CPU permanece bloqueada mientras se completa la operación de entrada salida Esto es un problema en operaciones con dispositivos más lentos que la CPU, que son la mayoría. 51 Métodos de entrada/salida E/S mediante interrupciones Evita los estados de bloqueo de la CPU en las operaciones de E/S Procedimiento: – – – – La CPU inicia una operación de E/S sobre un módulo Mientras el módulo procesa la operación, la CPU pasa a ejecutar otra tarea (proceso) que esté pendiente de ejecución. Cuando el módulo completa la operación de E/S, activa una señal de interrupción. La CPU recibe la señal de interrupción y finaliza la operación de E/S. 52 Métodos de entrada/salida Acceso Directo a Memoria (DMA) Libera a la CPU de toda transferencia de datos, la cual es realizada directamente por el módulo de E/S hacia o desde la memoria. Procedimiento: – – – – La CPU inicia la operación indicando al módulo de entrada salida los parámetros de la transferencia, entre otros: dirección de memoria inicial número de bytes a transferir El módulo realiza la operación haciendo todas las transferencias que sean necesarias de forma directa, tomando el control del BUS. La CPU pasa a ejecutar otra tarea (proceso) que esté pendiente de ejecución. Cuando el módulo ha transferido todo el bloque de datos, activa una señal de interrupción. La CPU recibe la señal de interrupción y finaliza la operación de E/S. 53 Métodos de entrada/salida Ejemplo PIO * Int. * * * DMA t * Proceso A Proceso B Proceso A durante E/S CPU bloqueada Interrupción 54