arquitectura ia-32

45
1 Técnicas Digitales III Arquitecturas Intel de 16 y 32 bits

Upload: santiago-constantini

Post on 26-Sep-2015

239 views

Category:

Documents


2 download

DESCRIPTION

Arquitectura de microprocesadores de 32 bits

TRANSCRIPT

  • 1

    Tcnicas Digitales III

    Arquitecturas Intel de 16 y 32 bits

  • 2

    Conceptos de memoria virtual

    Mecanismo implementado entre la CPU y el SO, que permite manejar un espacio de direcciones mucho mayor que:- La cantidad de memoria principal existente y/o - El espacio de direcciones que maneja el procesador.

    La memoria virtual permite que las aplicaciones ocupen mucho ms espacio que el disponible en la memoria principal.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 3

    Conceptos de memoria virtual

    Los programas ven direcciones virtuales, que la MMU traduce a direcciones fsicas.

    Cuando un objeto no est presente en memoria fsica, el SO lo debe cargar desde la memoria secundaria.

    Cuando toda la memoria primaria est ocupada, un algoritmo de reemplazo debe determinar que objeto sera el ms conveniente de ser quitado de la memoria principal.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 4

    Conceptos de memoria virtual

    Modelo de traduccin de una direccin virtual a direccin fsica.

  • 5

    Conceptos de memoria virtual

    Si va a ser reemplazado un objeto que no fue modificado, simplemente se lo sobre-escribe.

    Si va a ser reemplazado un objeto que, durante su permanencia en memoria principal, ha sido modificado, debe ser transferido a memoria secundaria antes de sobre-escribirlo.

    El objeto a reemplazar debera ser el menos probable de ser requerido en el futuro cercano.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 6

    Conceptos de memoria virtual

    Como no se puede adivinar si un objeto volver a ser requerido en el futuro, los algoritmos de reemplazo se basan en un par de principios empricos:

    - vecindad temporal- vecindad espacial

    Un algoritmo tpico es el LRU (Least RecentlyUsed), que supone que el objeto que desde hace ms tiempo no ha sido accedido es el menos probable de ser requerido en el futuro inmediato.

    SantiagoResaltadoSantiagoResaltado
  • 7

    Organizacin de la memoria virtual

    Para poder implementar los algoritmos de reemplazo e intercambio, los espacios de memoria virtual y fsica se dividen:

    - En segmentos- Bloques de tamao variable y contenido

    coherente (cdigo, datos, pila, etc.)- En pginas

    - Bloques de tamao fijo, pero cuyocontenido puede ser mixto.

    - En segmentos paginados

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 8

    Memoria virtual con segmentacin

    Como los segmentos pueden ser de tamaos diferentes, a medida que se realizan intercambios pueden quedar fragmentos disjuntos, lo que representa un desperdicio.

    Si se requiere cargar un segmento muy grande para utilizar slo una pequea porcin de l, se produce una importante prdida de tiempo.

    Como el contenido de un segmento es coherente, se pueden aplicar polticas de proteccin.

  • 9

    Memoria virtual con paginacin

    Las pginas son de tamao fijo y pequeo (por ej.: 4 KB).

    Es menos probable cargar objetos no necesarios

    El intercambio es ms gil que usando segmentos

    Al ser todas las pginas de igual tamao, no se producen desperdicios.

    En una pgina puede haber mezcla de cdigo, datos, etc. Hay menor posibilidad de proteccin

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 10

    Memoria virtual con segmentos paginados

    Aprovecha lo mejor de cada uno:- Proteccin a nivel de segmentos- Agilidad por el intercambio de pginas

    Un segmento no se carga completo en la memoria principal, sino aquellas pginas que van siendo requeridas.

    Ms complejo, requiere administrar segmentos y pginas.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 11

    Vecindad temporal

    Si un objeto fue accedido recientemente, es altamente probable que vaya a ser requerido prximamente.

    Si un objeto hace mucho tiempo que no es accedido, es poco probable que vaya a serlo en breve.

    SantiagoResaltadoSantiagoResaltado
  • 12

    Si un objeto fue accedido recientemente, es altamente probable que algn objeto cercano vaya a ser requerido prximamente.

    Ejemplo:for( i=0, suma=0; i

  • 13

    Traduccin de direccin virtual a fsica en IA-32

    El esquema que utiliza puede ser:

    - Memoria virtual segmentada, (bsico)- Memoria virtual con segmentos paginados

    (opcional)

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 14

    Traduccin de direccin virtual a fsica en IA-32

    Cuando la MMU detecta la ausencia de un elemento en memoria fsica, genera una excepcin que debe ser capturada por el SO, para efectuar el intercambio correspondiente.

    SantiagoResaltado
  • 15

    Traduccin de direccin virtual a fsica en IA-32

    Una direccin lgica o virtual se compone de:

    - Selector de segmento (registro CS, DS, SS, etc.)- Desplazamiento

    - EIP para la bsqueda de una instruccin a ejecutar

    - SP para instrucciones push y pop- EBX, ESI, etc para acceso a datos

    usando direccionamiento indirecto.

    - etc.

    SantiagoResaltadoSantiagoResaltado
  • 16

    Traduccin de direccin virtual a fsica en IA-32

    Cuando no est activada la paginacin, la direccin virtual se traduce a fsica.

    Los segmentos se cargan completos en la memoria principal.

    SantiagoResaltado
  • 17

    Traduccin de direccin virtual a fsica en IA-32

    Los descriptores de segmento contienen los siguientes campos:

    - Direccin base del segmento (32 bits)- Lmite del segmento (20 bits)- Atributos (12 bits)

    Define caractersticas del segmento

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 18

    Traduccin de direccin virtual a fsica en IA-32

    Principales atributos:- P : presencia (1: segmento presente en memoria fsica)

    - A : Accedido (se pone a 1 cada vez que un segmentoes accedido. Sirve para implementaralgn algoritmo de reemplazo).

    - DPL : Nivel de privilegio (03) - 0 : mximo nivel (kernel)- 3 : mnimo nivel (aplicaciones)

    - Tipo : Indica si el segmento es de:- Cdigo- Datos (normal o pila, R/W o R)- Especiales (o del Sistema)

    - Granularidad: indica si el lmite est dado en bytes oen mltiplos de 4 KB

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 19

    Traduccin de direccin virtual a fsica en IA-32

    Con los 14 msb del selector de segmento se selecciona un descriptor de la tabla

  • 20

    Traduccin de direccin virtual a fsica en IA-32

    En cada instante se tienen a disposicin dos tablas de descriptores:

    - GDT (global para todas las tareas)- LDT (exclusiva de la tarea actual)

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 21

    Traduccin de direccin virtual a fsica en IA-32

    - TI selecciona la tabla de descriptores- LDTR y GDTR apuntan a la base de ambas tablas- El campo ndice selecciona un descriptor

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 22

    Traduccin de direccin virtual a fsica en IA-32

    Esquema completo de la obtencin de la direccin lineal o fsica (sin la paginacin activada).

  • 23

    Conmutacinde tareas

    TSSSegmento de

    Estado de Tareas

    Almacena todos los registros que definen el estado actual de una tarea (contexto), y permitirn restaurarla en un momento posterior.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 24

    Conmutacin de tareas

    Cuando el procesador recibe la orden de conmutar a otra tarea, guarda el contexto de la tarea en ejecucin y carga el contexto de la tarea a reactivar.

    SantiagoResaltado
  • 25

    Conmutacin de tareas

    Esquema del direccionamiento del TSS.TR: Registro de tarea selecciona el descriptor que apunta al TSS actual

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 26

    Conmutacin de tareas

    Esquema de la conmutacin de tareas mediante una puerta de tarea

  • 27

    Protecciones

    De acuerdo al valor del DPL, cada segmento pertenece a un determinado nivel de privilegio

  • 28

    Protecciones

  • 29

    Protecciones

    Regla:Desde el rea local de una tarea est

    prohibido acceder al rea local de cualquier otra, independientemente de los niveles de privilegio.

    Esto se cumple gracias a que cada tarea tiene su propia LDT

    Cuando el SO crea la LDT para una tarea, debe incluir en ella solamente los descriptores de segmento exclusivos de dicha tarea.

    SantiagoResaltadoSantiagoResaltadoSantiagoResaltadoSantiagoResaltado
  • 30

    Protecciones

    Accesos entre segmentos de cdigo

  • 31

    Protecciones

    Accesos a segmentos de datos

  • 32

    Protecciones Puertas de llamada

    Transferencias de control intranivel permitidas

  • 33

    Protecciones Puertas de llamada

    A travs de una puerta de llamada, desde un segmento de cdigo de nivel 3 se puede saltar a un punto especfico de un segmento de cdigo de nivel 0.

    SantiagoResaltado
  • 34

    Protecciones Puertas de llamada

    Funcionamiento de una puerta de llamada

    SantiagoResaltado
  • 35

    Protecciones Puertas de llamada

    Estructura del descriptor tipo Puerta de Llamada.

    El campo Tipo lleva el valor 0xC

    Selector : Desplazamiento indican la direccin de inicio para la ejecucin en el segmento de destino.

    SantiagoResaltado
  • 36

    Protecciones Puertas de llamada

    Transferencia de control a travs de una PLL

    SantiagoResaltado
  • 37

    Protecciones Puertas de llamada

    Ejemplos de transferencias de control usando PLL

    SantiagoResaltado
  • 38

    Segmentacin en modo real

    SantiagoResaltado
  • 39

    Segmentacin en modo protegido

    SantiagoResaltado
  • 40

    Interrupciones Modo Real

    El vector de interrupcin provee CS:IP (direccin de inicio de la rutina de interrupcin).

    SantiagoResaltado
  • 41

    Interrupciones Modo Protegido

    La Puerta de Interrupcin provee CS:EIP (direccin virtual de inicio de la rutina de interrupcin)

    SantiagoResaltado
  • 42

    Interrupciones Puerta de interrupcin

    Atencin de una interrupcin en modo protegido, mediante una puerta de interrupcin

    PUERTA DE

    INTERRUPCION

    SantiagoResaltado
  • 43

    Interrupciones Puerta de interrupcin

    Formato del descriptor tipo Puerta de Interrupcin

    SantiagoResaltado
  • 44

    Memoria cach - Ejemplo

    Asociativa de 4 vas Bus de direcciones de 32 bits Tamao total: 2 MB 128 lneas por va

    Tamao de la va: 2 MB / 4 = 512 KB

    Tamao de la lnea: 512 KB / 128 = 4 KB

    Estructura de la direccin

    Etiqueta ndice Offset

    31 19 18 12 11 0

  • 45

    Memoria cach - Ejemplo