Fundamentos de arquitectura de computadores … · 2011-03-09 · – Instrucción de salto...
Transcript of Fundamentos de arquitectura de computadores … · 2011-03-09 · – Instrucción de salto...
09/03/2011
1
Fundamentos de arquitectura de computadores relacionados con SO
Ingeniería del Software
EUITI
Índice
Estructura del computador
– Modelo de programación
– Registros del procesador
– Ejecución de instrucciones
Interrupciones
Jerarquía de memoria
Entrada/salida
Protección
09/03/2011
2
Esquema de funcionamiento
Elementos del sistema
Procesador Memoria principal
– volatil– Memoria real o primaria
I/O modulos– Dispositivos de memoria
secundaria– Comunicaciones– Terminales
Bus del sistema– Comunicacion entre
procesadores, memoria e I/O
09/03/2011
4
Registros del procesador
Registros de usuario– Permiten al programador minimizar el uso de
memoria principal (referencias a memoria)
Control y estado– Usados por el procesador
– Usados por rutinas privilegiadas del sistema operativo para controlar la ejecucion de programas
– Estado (octeto de usuario) si puede ser usado por programas
Registros de usuario
Pueden ser referenciados por codigo maquina (ensamblador)
Pueden ser usados por todos los programas, usuario y sistema.
Tipos de registros– Datos– Direcciones
Indice/s– Se utiliza para conseguir una direccion absoluta con una referencia
relativa
Puntero de segmento (segment pointer)– Cuando la memoria se divide en segmentos, las referencias pueden
ser generadas de forma relativa a un puntero de segmento y un offset.
Puntero de pila (Stack pointer)– Apunta al principio de la pila.
09/03/2011
5
Registros de control y estado Program Counter (PC)
– Contiene la direccion de la instruccion a ser cargada (fetch)
Instruction Register (IR)– Contiene la instruccion mas reciente
Program Status Word (PSW)– Condition codes (usuario)
Banderas (flags) o codigos de condicion– Bits fijados por el hardware del procesador como resultado de
operaciones
Ejemplos– Resultado positivo– Resultado negativo (N)– Cero (Zero=Z)– Desbordamiento (Overflow)
– Interrupt enable/disable (nucleo)– Supervisor/user mode (nucleo)
Instrucciones
Tipos de instruccion– Procesador-memoria
Transferencia de datos
– Procesador-I/O Transferencia a dispositivos
– Procesamiento datos Aritmeticos o logicos
– Control Cambiar la secuencia de ejecucion
09/03/2011
6
Secuencia de ejecucion
El procesador carga (fetch) la instruccion de memoria apuntada por el contador de programa, Program counter (PC), en el registro de instruccion IR
El PC se incrementa despues de cada carga
Maquina hipotetica
09/03/2011
7
Ejemplo de ejecucion
Secuencia de ejecución
Secuencia
– Lectura de la instrucción apuntada por el PC
– Incrementa PC
– Ejecuta instrucción
Es lineal e infinita
– Instrucción de salto modifica PC
– Interrupción (procesador modifica PC)
Interna o externa
TRAP produce interrupción
09/03/2011
8
Lenguajes programación
LOADA mem - Load register A from memory address LOADB mem - Load register B from memory address CONB con - Load a constant value into register B SAVEB mem - Save register B to memory address SAVEC mem - Save register C to memory address ADD - Add A and B and store the result in C SUB - Subtract A and B and store the result in C MUL - Multiply A and B and store the result in C DIV - Divide A and B and store the result in C COM - Compare A and B and store the result in test JUMP addr - Jump to an address JEQ addr - Jump, if equal, to address JNEQ addr - Jump, if not equal, to address JG addr - Jump, if greater than, to address JGE addr - Jump, if greater than or equal, to address JL addr - Jump, if less than, to address JLE addr - Jump, if less than or equal, to address STOP - Stop execution
a=1;
f=1;
while (a <= 5)
{
f = f * a;
a = a + 1;
}
Compilador
// Assume a is at address 128 // Assume F is at address 129 0 CONB 1 // a=1; 1 SAVEB 128 2 CONB 1 // f=1; 3 SAVEB 129 4 LOADA 128 // if a > 5 the jump to 17 5 CONB 5 6 COM 7 JG 17 8 LOADA 129 // f=f*a; 9 LOADB 128 10 MUL 11 SAVEC 129 12 LOADA 128 // a=a+1; 13 CONB 114 ADD 15 SAVEC 128 16 JUMP 4 // loop back to if 17 STOP
09/03/2011
9
Ensamblador
Índice
Estructura del computador
– Modelo de programación
– Registros del procesador
– Ejecución de instrucciones
Interrupciones
Jerarquía de memoria
Entrada/salida
Protección
09/03/2011
10
Ciclo de interrupción El procesador (HW) chequea las interrupciones Si no hay interrupciones, el procesador carga la siguiente instrucción del
programa en ejecución. Si hay una interrupción pendiente, se suspende la ejecución del programa en
curso y se ejecuta la rutina de manejo de la interrupción (Interrupt Handler, Manejador de interrupción, Rutina de atención a la interrupción)
– Programa para una interrupción, un dispositivo I/O particular
Sobrecarga del procesador, pero sigue siendo ventajoso
Cambios en memoria y registros en una interrupcion
09/03/2011
11
Interrupciones
Interrupciones en microcontroladores
Interrupciones en computadores.
– Casi todos los dispositivos de I/O son mas lentos que el procesador
El procesador debe hacer una pausa para esperar al dispositivo
Interrupciones
Rompen la secuencia de ejecución– HW
Salva algunos registros (PC y estado)
Eleva nivel de ejecución a núcleo
Salto a SO
– SO Tabla y rutina pertenecen al
sistema operativo Rutina de tratamiento de la
interrupción Instruccion RETI devuelve el
control al programa– Baja a modo usuario– Caso de retornar al proceso,
recupera el PC y registro de estado
09/03/2011
12
Procesamiento de una interrupcion simple
Interrupciones Fuentes de interrupción:
– Excepciones de programa
– Interrupciones periódicas de reloj
– Interrupciones E/S
– Excepciones del HW
– Instrucción TRAP
09/03/2011
13
Flujo de control del programa sin interrupciones
Flujo de control de programa con interrupciones, corta espera I/O
09/03/2011
14
Flujo de control de programa con interrupciones, larga espera I/O
Diagrama de tiempos basado en una espera I/O corta
09/03/2011
15
Diagrama de tiempos basados en una espera I/O larga
Interrupciones multiples
Estrategia: deshabilitar interrupciones mientras que interrupcion esta siendo procesada.
09/03/2011
16
Interrupciones multiples
Se definen prioridades para las interrupciones
Interrupciones multiples
09/03/2011
17
Sistema multiprogramacion
El procesador tiene mas de un proceso
La secuencia en la que los programas se ejecutan depende de su prioridad relativa y de si estan esperando I/O
Despues de una interrupcion, el control puede que no retorno al programa que se estaba ejecutando cuando salto la interrupcion
Índice
Estructura del computador
– Modelo de programación
– Registros del procesador
– Ejecución de instrucciones
Interrupciones
Jerarquía de memoria
Entrada/salida
Protección
09/03/2011
18
Jerarquía de memoria
Ventajas:– Equilibrio entre
eficiencia y coste
Problemas:– Información replicada
en los distintos niveles– Problema de coherencia– Migración de la
información Automática Demanda explicita
– Traducción de direcciones
Jerarquía de memoria
Segun se baja en la jerarquia– Decrece el coste por bit– Aumenta la capacidad– Se incrementa el tiempo de acceso– Disminuye la frecuencia de acceso por el
procesador Proximidad referencial
Memoria primaria– Volatil, RAM
Memoria secundaria– No volatil, disco– Memoria auxiliar– Almacenan programas y datos
09/03/2011
19
Jerarquía de memoria
Nivel Capacidad Tiempo de acceso
Tipo
Registros 64-256 bytes
1-5ns Palabra
Cache 8Kb – 2Mb 5-20ns Palabra
Memoria principal
128Mb a 64 Gb
60-200 ns Palabra
Disco 50 Mb a 250 Gb
10-30 ms Sector
Jerarquía de memoria
Migración de la información
– Automática
– Por demanda explicita
Migración automática
– Tamaño bloque transferido
– Política de extracción
– Política de reemplazo
– Política de ubicación
– Traducción de direcciones
09/03/2011
20
Cache
Hardware
– ExternaInterna 512Kb
Software
– Acceso a datos de disco.
– Una porción de memoria principal se puede usar como buffer temporal para contener datos del disco
Las escrituras y lecturas se realizan en clusters.
Referencias continuas a los mismos datos son mucho mas rápidas
Memoria cache
Invisible al SO, tratamiento por hardware
Aumenta la velocidad de la memoria
– SRAM, mas cara, mas rapida, mas pequeña.
Explota el principio de localidad o proximidad referencial
09/03/2011
21
Sistema de memoria cache/ppal
Memoria ppal 2n
direcciones, n bits (4Gb con 32bits)
Tamaño de bloque=K palabras
M=2n/K bloques en memoria principal
Cache contiene C<<M
Operación de lectura de la cache
Contiene una copia de una porción de la memoria principal
El procesador primero mira la cache.
Si no se encuentran los datos en la cache, el bloque de memoria principal se copia a la cache y se suministran al procesador (invisible al SO)
09/03/2011
22
Diseño de la cache Tamaño
– Caches pequeñas tienen un fuerte impacto en el rendimiento
Tamaño del bloque– La unidad de intercambio entre cache y memoria ppal– Un tamaño de bloque mas grande incrementa la tasa de acierto
en un principio, hasta que la probabilidad de referenciar un dato de fuera de la cache supera a la probabilidad de reusar un dato de dentro
Función de ubicación (mapping)– En que posición de la cache se ubica el bloque requerido
Algoritmo de reemplazo– Que bloque reemplazar, el que tenga menor probabilidad de ser
referenciado– Algoritmo Least-Recently-Used (LRU)
Política de escritura– Cuando se realiza la escritura en memoria principal?– Puede producirse cada vez que el bloque se modifica– La escritura se realiza cuando se reemplaza el bloque
Minimiza las operaciones en memoria ppal Deja la memoria principal obsoleta (DMA, multiprocesadores)
Cache actual
Pentium 4 (on die)– Nivel 1
16 Kb datos, 12Kb (Execution trace cache) instrucciones ya decodificadas
– Nivel 2 (Advanced Transfer cache) 512 Kb – 1 Mb
Velocidad del micro 3.8Ghz122Gb/seg, Pentium III 1 Ghz16Gb/seg
– Nivel 3 (Extreme Edition processor) 1- 2Mb
800-1066Mhz system bus
09/03/2011
23
Jerarquía de memoria
¿Porque Funciona? Traza: Re=re(1),re(2)…,re(j)
– Distancia d(u,v)=|u-v|
Proximidad referencial– Espacial
i-j pequeñod(re(i),re(j)) prob. pequeña Causas
– Programa secuencial– Bucles pequeños– Estructuras de datos
– Temporal d(re(j+1),re(j-x)) prob. pequeña Causas
– Bucles– Uso de datos– Subrutinas frecuentes
Rendimiento
Rendimiento de una memoria simple de 2 niveles– Nivel 1, 1000 palabras y tiempo de acceso de 0,1us
– Nivel 2, 100.000 palabras, tiempo de acceso de 1us
– Tasa de aciertos H=95%
– Tiempo medio de acceso
0,95 x 0,1 + (1-0,95)x(0,1 +1) = 0,15us
– El numero de palabras influye en la tasa de aciertos
– No se ha tenido en cuenta la penalización del tratamiento del fallo
0,95 x 0,1 + (1-0,95)x(2x0,1 +fallo de pagina)
09/03/2011
24
Asignación de memoria clásica
Los programas reciben del SO un espacio de memoria para su ejecución
– ¿Y si no hay suficiente?
Memoria virtual
Fundamentos– El procesador utiliza y genera direcciones virtuales
– Parte del mapa de memoria virtual esta en disco (swap) y parte en memoria principal.
Paginas virtuales
Marco de pagina (mem ppal)
Pagina de intercambio (disco)
– La Memory Management Unit MMU convierte las direcciones virtuales en físicas por HARDWARE (traducción)
– Si la dirección generada no esta en memoria ppal (fallo de pagina), la MMU genera una interrupción
– El SO gestiona la interrupción, trayendo la información de disco a memoria ppal
09/03/2011
25
División del espacio de memoria
El espacio virtual se divide en paginas 4Kb
Algunas paginas están en memoria ppal
– SO se encarga de que estén las necesarias, respondiendo a los fallos de pagina de la MMU (paginacion)
Traducción de direcciones
La MMU realiza la traducción de pagina virtual a marco de pagina
09/03/2011
26
Tablas de paginas
El SO genera y mantiene las tablas de paginas, la MMU las usa para hacer la traducción (TLB)
Una tabla por cada proceso
Elementos de la tabla de paginas
Otras informaciones:
– Copy on Write
– Edad
– No pagina (fija en memoria fisica)
– Rellenar a ceros
09/03/2011
27
Ej. Traducción con tablas de paginas
Tabla de paginas con 2 niveles
Mas flexible
Menor espacio
Necesita 3 accesos a Memoria ppal por cada acceso de la CPU
09/03/2011
29
Otros…
Diferencia entre la caché de disco y la memoria virtual
Trashing=hiperpaginacion
Índice
Estructura del computador
– Modelo de programación
– Registros del procesador
– Ejecución de instrucciones
Jerarquía de memoria
Entrada/salida
Protección
09/03/2011
30
E/S y concurrencia
Concurrencia entre CPU y E/S
– E/S programada: concurrencia nula
– E/S por interrupciones : concurrencia
– E/S por DMA: maxima concurrencia
El SO se encarga de explotar esta concurrencia
Transferencia de datos
Espera activa
Espera pasiva (interrupciones)
DMA
09/03/2011
31
I/O programada
El que realiza la accion es el modulo I/O, no el procesador
Cuando termina, fija los bits adecuados en el registro de estado.
No hay interrupciones
El procesador chequea el estado continuamente hasta que la operacion finaliza
I/O por interrupcion
El procesador es interrumpido cuando el modulo I/O esta listo para el intercambio de datos.
No son necesarias esperas, el procesador salva el contexto del programa y comienza a ejecutar la interrupción.
Consume tiempo de procesamiento porque cada dato pasa por el procesador.
09/03/2011
32
Direct Memory Access (DMA)
I/O transfiere directamente a/de memoria
La interrupcion se lanza cuando la transferencia se termina
El procesador debe conferir privilegios al modulo I/O para que pueda leer o escribir a memoria.
Libera al procesador de la responsabilidad de hacer el intercambio
Índice
Descripción computador– Hardware
Estructura del computador– Modelo de programación– Registros del procesador– Ejecución de instrucciones
Interrupciones– Reloj del computador
Jerarquía de memoria Entrada/salida Protección
09/03/2011
33
Protección
CPU– Niveles de ejecución
Núcleo: todas las instrucciones maquina, toda E/S (con instrucciones privilegiadas), registros y memoria
Usuario: un subconjunto de instrucciones y solo mapa propio
– Las interrupciones (y solo ellas) pasan la CPU a modo nucleo TRAP genera una
interrupción Reloj evita que se
monopolice
Protección de memoria
Memoria ppal: registros valla o claves
09/03/2011
34
Protección: división del mapa de memoria
Memoria:
– Espacios de memoria virtual independientes
Tablas de paginas como protección de memoria
Memoria virtual
– Regiones definidas por la tabla de paginas