57
Autor:Alejandro Furfaro 1 Arquitectura IA-32 Modo Real

Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

  • Upload
    others

  • View
    11

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 1

Arquitectura IA-32Modo Real

Page 2: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 2

Modo RealEn este modo de operación el procesador presenta de manera exacta el entorno de ejecución de un 8086, con algunas extensiones.

Extensión Nº2:Algunos recursos que son propios del Modo Protegido actúan en forma “silenciosa” en modo real.

Extensión Nº2:Algunos recursos que son propios del Modo Protegido actúan en forma “silenciosa” en modo real.

Extensión Nº1:El modelo de 32 bits de registros generales está disponible en modo real.

Extensión Nº1:El modelo de 32 bits de registros generales está disponible en modo real.

00000h

220-1

MemoriaRAMDH DL

DXCH CL

CXBH BL

BXAH AL

AX07815

DI

SI

SP

BP

015

CS

SS

DS

ES

IP

Flags

015

Desplazamiento

Selector

015

Desplazamiento

Selector

Desplazamiento

Selector

IDTR

0

2

4

6

8

10

Vector de INT 0

Vector de INT 1

Vector de INT 2

Hasta Vector 255

Page 3: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 3

Direccionamiento en Modo Real

Page 4: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 4

Dirección Lógica

SelectorSelector15 0

Direccionamiento en Modo Real

DesplazamientoDesplazamiento15 0

Page 5: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 4

Dirección Lógica

SelectorSelector15 0

Direccionamiento en Modo Real

DesplazamientoDesplazamiento15 0

16

Dirección BaseDirección Base19 0

Page 6: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 4

Dirección Lógica

SelectorSelector15 0

Direccionamiento en Modo Real

DesplazamientoDesplazamiento15 0

16

Dirección BaseDirección Base19 0

Page 7: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 4

Dirección Lógica

SelectorSelector15 0

Direccionamiento en Modo Real

DesplazamientoDesplazamiento15 0

16

Dirección BaseDirección Base19 0

Dirección FísicaDirección Física19 0

Page 8: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 4

Dirección Lógica

SelectorSelector15 0

Direccionamiento en Modo Real

DesplazamientoDesplazamiento15 0

16

Dirección BaseDirección Base19 0

Dirección FísicaDirección Física19 0

Al Bus de Al Bus de Address Address

Page 9: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 5

Arquitectura IA-32Modo Protegido

Page 10: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 6

DH DLDX

CH CLCX

BH BLBX

AH ALAX

07815

DI

SI

SP

BP

Entorno Básico de EjecuciónRegistros de Propósito General

Registros de Control y Estado

015

CS

SS

DS

ES

IP

Flags

Registros de Segmento

Page 11: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 6

DH DLDX

CH CLCX

BH BLBX

AH ALAX

07815

DI

SI

SP

BP

Entorno Básico de EjecuciónRegistros de Propósito General

Registros de Control y Estado

015

CS

SS

DS

ES

IP

Flags

Registros de Segmento

1631

EDX

ECX

EBX

EAX

EDI

ESI

ESP

EBP

FS

GS

EFlags

EIP

Page 12: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 7

Entorno Básico de Ejecución

Registro EFLAGS

Page 13: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 8

Sistemas Operativos Multitasking

q UNIX, el padre de los Sistemas Abiertos, fue desarrollado en 1969.....

q En los 70’s aparecieron los primeros microprocesadores de 8 bits, pero sus prestaciones eran insuficientes para satisfacer los requerimientos de un sistema como UNIX.

q La aparición del microprocesador de Intel 80286 (1981!!!), introdujo por primera vez la capacidad de procesamiento multitasking real. Pero sus recursos, aun no eran suficientes para sostener a UNIX.

q Los Sistemas Operativos,ya por entones, requerían capacidades adicionales de los procesadores.

q La arquitectura de los procesadores modernos de 32 bits, se concibió en función de estos requerimientos.

Page 14: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 9

Requerimientos de los Sistemas Operativos Multitaskingq Area de memoria exclusiva para cada tarea para

almacenar su código y sus datos. (Area Local)q Area de memoria común a todas las aplicaciones,

para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo de modo de permitir la comunicación entre las aplicaciones. (Area Global).

q Cada tarea podrá acceder únicamente a su AreaLocal y al Area Global, pero nunca podrá acceder al Area Local de otra tarea. De este modo el Sistema Operativo garantiza la integridad del código y de los datos propios de cada tarea.

q En cada momento la CPU ejecuta una tarea de la lista que mantiene, poniendo a su disposición todos los recursos de hardware de la máquina, incluyendo la cantidad de memoria requerida por la aplicación.

Page 15: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 10

Requerimientos de los Sistemas Operativos Multitaskingq Alta velocidad de procesamientoq Gran capacidad de Direccionamiento de memoria

2 Amplio espacio de direccionamiento para memoria RAM2 Capacidad de Gestión de memoria de cada tarea por el

método de Memoria Virtualq Gestión de Memoria en entorno de protección:

2 Un área de memoria exclusiva para cada tarea para almacenar su código y sus datos. (Area Local)

2 Un área de memoria común a todas las aplicaciones, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo de modo de permitir la comunicación entre las aplicaciones. (Area Global).

2 Cada tarea podrá acceder únicamente a su Area Local y al Area Global, pero nunca podrá acceder al Area Local de otra tarea.

q Capacidad de implementar Multitarea de manera rápida y segura.

Page 16: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 11

Memoria Virtual

Descripción de una variable o de un Código de Operación

Microprocesador

Memoria DRAM

del Sistema

Variable o Código de Operación Presente

Variable o Código de Operación Ausente

Captura el evento

Bus del Sistema

Memoria Virtual(Disco)

Genera un evento indicando la

Ausencia

Manejador de Memoria del

Sistema Operativo

Busca elemento Ausente

Transfiere Elemento a Memoria Física

Para conseguir direccionargran cantidad de memoria se emplea la técnica de Memoria Virtual, método que proporciona al programador la posibilidad de disponer de un espacio de direccionamiento de memoria, mucho mayor que el disponible físicamente.

Para conseguir direccionargran cantidad de memoria se emplea la técnica de Memoria Virtual, método que proporciona al programador la posibilidad de disponer de un espacio de direccionamiento de memoria, mucho mayor que el disponible físicamente.

Page 17: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 12

Registros del procesador para uso del Sistema Operativo

47 1516 0GDTRLIMITEBASE

IDTR1516 0

LIMITEBASE47

15 0

TR

1516 0

LIMITEBASE

47

REGISTRO CACHE INVISIBLESELECTOR

15 0

LDTR LIMITEBASE

47

REGISTRO CACHE INVISIBLESELECTOR

1516 0

CR0

CR1

CR3

CR2

31 0

MSWPG

RESERVADO USOS FUTUROS

REG.DIR.LINEAL FALLO DE PAGINA

REG.BASE DIRECTORIO DE PAGINAS

1516

DR0

DR1

DR3

DR6

DR7

DR2

31 0DIRECCION LINEAL PUNTO

PARADA 1DIRECCION LINEAL PUNTO

PARADA 2DIRECCION LINEAL PUNTO

PARADA 3DIRECCION LINEAL PUNTO

PARADA 4ESTADO DE LOS PUNTOS DE

PARADACONTROL DE LOS PUNTOS DE

PARADA

REGISTROS DE DEBUGGING

REGISTROS DE CONTROL

TR6

TR7

31 0

REGISTROS DE PRUEBA DE LA TLB

CONTROL DE PRUEBAS

ESTADO DE LAS PRUEBAS

PM

CR4 DIFERENTES BITS DE CONTROL

Page 18: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 13

Ingreso al entorno de protección

Para poner al procesador en Modo Protegido todo lo que se requiere es setear el bit PE, (bit 0 del registro CR0).

Es un lamentable error considerar que esto es todo lo que hay hecer.Setear PE es solo el principio. De hecho el siguiente programa funciona sin problemas. Veamos...

PE

MP

EM

TS

ET

NE

WP

AM

NW

CD

PG

5 4 3 2 1 018 1631 30 29

Registro de control CR0Registro de control CR0

Page 19: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 14

use16org 100hinicio:

climov eax,cr0 ;lee el registro de control 0.or al,1 ;setea el bit PE Protection Enable.mov cr0,eax ;pasa a modo protegido.jmp short $+2;vacía la cola de ejecución.

mp: in al,60h ;lee el tecladodec al ;compara con escjnz mp ;sino es esc siguemov eax,cr0and al,0feh ;resetea el PE.mov cr0,eax ;retorna a modo real.jmp short $+2;vacía la cola de ejecución.sti ;habilita las interrupciones.mov ah,4ch ;retorna al dos con el int 21h ;servicio 4ch de la int 21h.codigo.

use16org 100hinicio:

climov eax,cr0 ;lee el registro de control 0.or al,1 ;setea el bit PE Protection Enable.mov cr0,eax ;pasa a modo protegido.jmp short $+2;vacía la cola de ejecución.

mp: in al,60h ;lee el tecladodec al ;compara con escjnz mp ;sino es esc siguemov eax,cr0and al,0feh ;resetea el PE.mov cr0,eax ;retorna a modo real.jmp short $+2;vacía la cola de ejecución.sti ;habilita las interrupciones.mov ah,4ch ;retorna al dos con el int 21h ;servicio 4ch de la int 21h.codigo.

Ingreso al entorno de protección

Page 20: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 15

Acceso a la memoria en MP

Para acceder a la memoria, los programas seguirán trabajando con segmentos, del mismo modo en que lo hacen en Modo Real.La difrerencia está en la información que se necesita en un entorno protegido para definir un segmento:

2 Dirección a partir de la cual comienza el segmento. La llamamos Dirección BaseDirección Base.

2 Tamaño del segmento. Intel lo denomina LímiteLímite.2 Permisos de acceso al segmento: Read Only,

Código/Datos, y demás características que ahora serán rigurosamente chequeadas. Los denominaremos Atributos.Atributos.

Page 21: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 16

Acceso a la memoria en MP

segmento

Dirección Base = 01F00000hDirección Base = 01F00000h01F00000

01F20000

Tamaño = 20000h (128 Kbytes)Tamaño = 20000h (128 Kbytes)

Para definir (o describir) un segmento en Modo Protegido se necesita un número de :

32 bits para la dirección base+ 32 bits para el tamaño

n bits para los atributos…..--------------------------------------------

> 64 bits!!!!!

Para definir (o describirdescribir) un segmento en Modo Protegido se necesita un número de :

32 bits para la dirección base+ 32 bits para el tamaño

n bits para los atributos…..--------------------------------------------

> 64 bits!!!!!

Page 22: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 17

Descriptores de Segmento

q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.

q La estructura que define un segmento se denomina descriptor.

q Los descriptores se agrupan en tablas.

Page 23: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 17

Descriptores de Segmento

q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.

q La estructura que define un segmento se denomina descriptor.

q Los descriptores se agrupan en tablas.

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Reservado

Campos del Procesador 80286Campos del Procesador 80286

Dirección n+4

Dirección n

31 16 15 8 7 0

Page 24: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 17

Descriptores de Segmento

q En Modo protegido, la información necesaria para definir (describir) un segmento se almacena fuera del procesador en la memoria RAM.

q La estructura que define un segmento se denomina descriptor.

q Los descriptores se agrupan en tablas.

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Reservado

Campos del Procesador 80286Campos del Procesador 80286

Dirección n+4

Dirección n

31 16 15 8 7 0

Campos del Procesador 80386 y posteriores (IACampos del Procesador 80386 y posteriores (IA--32)32)

Base 31-24 Atributos Límite 19-16

24 23 20 19

Page 25: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 18

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Dirección n+4

Dirección n

31 16 15 8 7 0

Descriptores de Segmento

Base 31-24 Atributos Límite 19-16

24 23 20 19

Descriprtor de Segmento

Page 26: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 18

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Dirección n+4

Dirección n

31 16 15 8 7 0

Descriptores de Segmento

Base 31-24 Atributos Límite 19-16

24 23 20 19

Descriprtor de Segmento

A7 6 5 4 3 2 1 0

TIPOSP DPL

Page 27: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 18

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Dirección n+4

Dirección n

31 16 15 8 7 0

Descriptores de Segmento

Base 31-24 Atributos Límite 19-16

24 23 20 19

Descriprtor de Segmento

A7 6 5 4 3 2 1 0

TIPOSP DPL

E

Page 28: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 18

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Dirección n+4

Dirección n

31 16 15 8 7 0

Descriptores de Segmento

Base 31-24 Atributos Límite 19-16

24 23 20 19

Descriprtor de Segmento

A7 6 5 4 3 2 1 0

TIPOSP DPL

E

W0 ED

R1 C

Page 29: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 18

Límite 0-15Dir. Base 0-15

Atributos Base 23-16Dirección n+4

Dirección n

31 16 15 8 7 0

Descriptores de Segmento

Base 31-24 Atributos Límite 19-16

24 23 20 19

Descriprtor de Segmento

A7 6 5 4 3 2 1 0

TIPOSP DPL

E

W0 ED

R1 C

AVLG D/B 0

Page 30: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 19

Campo Tipo para S=0 (Descriptor de Sistema).

q Cuando el Bit S es 0, el descriptor se denomina descriptor de sistema.

q En ciertos casos, el descriptor corresponde a un segmento para uso del sistema operativo.

q En otras ocasiones es simplemente un mecanismo que utilizará el Sistema Operativo.

q Cuando el Bit S es 0, el descriptor se denomina descriptor de sistema.

q En ciertos casos, el descriptor corresponde a un segmento para uso del sistema operativo.

q En otras ocasiones es simplemente un mecanismo que utilizará el Sistema Operativo.

Page 31: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 20

Selectores de Segmento

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX TITI

q En modo real los registros de segmento contenían toda la información necesaria para definir el segmento.

q En Modo Protegido los registros de segmento siguen conteniendo información necesaria para acceder al segmento, pero esa información se utiliza ahora para ubicar en la memoria del sistema, al descriptor del segmento a acceder.

q Por tal motivo al contenido de un registro de segmento, en Modo Progtegido se lo denomina SelectorSelector.

q Esta denominación se extiende al Modo Real ya que siempre un registro de segmento “seleccionaselecciona” con su contenido a un segmento determinado en memoria.

Formato de un Selector

RPLRPL

Page 32: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 21

Tablas de descriptores: GDT y LDT

Área de memoria exclusiva de cada tarea para almacenar su código y sus datos. (Área Local)

Área de memoria exclusiva de cada tarea para almacenar su código y sus datos. (Área Local)

Área de memoria común a todas las tareas, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo (Base de modo de permitir la comunicación entre las aplicaciones. (Área Global).

Área de memoria común a todas las tareas, para que éstas puedan acceder a datos globales del sistema, o a código propio del Sistema Operativo (Base de modo de permitir la comunicación entre las aplicaciones. (Área Global).

Selector Nulo

LimiteDirección Base

56484032241680

56484032241680

SelectorLímite

Dirección Base

Registro LDTRRegistro GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX TITI RPLRPL

TI=1 TI=0 Global Decriptor Table

Local Decriptor Table

Page 33: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 22

Translación de dirección lógica a lineal (Selector con TI=0)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPL

OFFSETOFFSETDirección Lógica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

Page 34: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 22

Translación de dirección lógica a lineal (Selector con TI=0)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPL

OFFSETOFFSETDirección Lógica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

8 * INDEX

Page 35: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 22

Translación de dirección lógica a lineal (Selector con TI=0)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPL

OFFSETOFFSETDirección Lógica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

8 * INDEX Límite 0-15Dir. Base 0-15

Atributos Base 23-16

31 16 15 8 7 0

Base 31-24 AtributosLímite 19-16

24 23 20 19

Page 36: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 22

Translación de dirección lógica a lineal (Selector con TI=0)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPL

OFFSETOFFSETDirección Lógica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

8 * INDEX Límite 0-15Dir. Base 0-15

Atributos Base 23-16

31 16 15 8 7 0

Base 31-24 AtributosLímite 19-16

24 23 20 19

LIM

ITE

+ 1

Límite 0-15

Page 37: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 22

Translación de dirección lógica a lineal (Selector con TI=0)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPL

OFFSETOFFSETDirección Lógica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

8 * INDEX Límite 0-15Dir. Base 0-15

Atributos Base 23-16

31 16 15 8 7 0

Base 31-24 AtributosLímite 19-16

24 23 20 19

LIM

ITE

+ 1

Límite 0-15

Objeto direccionado en memoria

CS, SS, DS,ES, FS, o GS

Límite 0-15Dir. Base 0-15

Atributos Base 23-16

16 15 8 7 0

AtributosLímite 19-16

20 19

Page 38: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.

Page 39: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

Page 40: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEX

Page 41: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

Page 42: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

LIM

ITE

+ 1

LDT

Dirección BaseDirección Base

Page 43: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

LIM

ITE

+ 1

LDT

Dirección BaseDirección Base

8 * INDEX

Page 44: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

LIM

ITE

+ 1

LDT

Dirección BaseDirección Base

8 * INDEXLímite 0-15Base 0-15

Atributos Base 23-16Base 31-24 Atributos

Límite 19-16

31 16 15 8 7 024 23 20 19

Page 45: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

LIM

ITE

+ 1

LDT

Dirección BaseDirección Base

8 * INDEXLímite 0-15Base 0-15

Atributos Base 23-16Base 31-24 Atributos

Límite 19-16

31 16 15 8 7 024 23 20 19

LIM

ITE

+ 1

Atributos Base 23-16Base 31-24 Atribu Límite 16 15 8 7 024 23 20 19

Page 46: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 23

Translación de dirección lógica a lineal (Selector con TI=1)

GDT

LímiteLímite

Dirección BaseDirección Base

GDTR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 11 RPLRPL

OFFSETOFFSET

Dire

cció

n Ló

gica

CS, SS, DS,ES, FS, o GS

ESI, EDI, etc.15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX 00 RPLRPLLDTR

8 * INDEXDPLP 0 0010

Límite 0-15Base 23-16

31 16 15 8 7 0

Base 31-24 Atributos

Límite 19-16

24 23 20 19

Base 0-15

TIPO = Descriptor de LDT

LIM

ITE

+ 1

LDT

Dirección BaseDirección Base

8 * INDEXLímite 0-15Base 0-15

Atributos Base 23-16Base 31-24 Atributos

Límite 19-16

31 16 15 8 7 024 23 20 19

LIM

ITE

+ 1

Atributos Base 23-16Base 31-24 Atribu Límite 16 15 8 7 024 23 20 19

Objeto direccionado en memoria

Page 47: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 24

Dirección lineal15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

INDEXINDEX TITI RPLRPL

Descriptor deSegmento

Tabla de Descriptores

OFFSETOFFSET

Dirección BaseDirección Base

Dirección LinealDirección Lineal31 0

La Dirección Lineal recibe ese nombre por ser la salida de la Unidad de Segmentación un espacio contiguo y consecutivo de direcciones de memoria

31 0

31 0

Page 48: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 25

“Memorizando” los descriptores: Registros hiddenPara evitar un acceso a la GDT o LDT cada vez que necesita un descriptor de segmento, el procesador mantiene un registro cachéinvisible por cada registro cuyo contenido sea un selector.Esos registros no son accesibles ni siquiera al programador del S.O.

CSSSDSESFSGS

TRLDTR

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Base + Límites + Atributos

Page 49: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 26

Paginación de Memoria

q La segmentación posee claras ventajas para proveer un entorno flexible en la programación de aplicaciones.

q Para Adminsitración de la memoria por parte del sistema operativo, la variabilidad del tamaño de los segmentos intruduce complejidad en el diseño de un sistema de memoria virtual.

q Los sistemas operativos como UNIX desde su concepción trabajaron la memoria en bloques de tamaño uniforme.

q La Paginación cumple con ese requisito.

Page 50: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 27

Unidad de Segmentación

Unidad de Unidad de SegmentaciónSegmentación

Unidad de PaginaciónUnidad de Unidad de PaginaciónPaginación

MemoriaFísica

MemoriaMemoriaFísicaFísica

INDEX TI

RPL

SELECTOR

DESPLAZAMIENTO

Estructura de la MMU

Dirección Lógica

Dirección Lógica

Dirección Lineal

Dirección Lineal

Dirección Física

Dirección Física

Unidad de Paginación No activadaDirección Física= Dirección Lineal

La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386 y subsiguientes, una Unidad de Gestíón de Memoria que contieneuna Unidad de Paginación a continuación de la Unidad de Segmentación

La IA-32 introduce como una de las mejoras mas importantes a nivel de laarquitectura interna de los procesadores 80386 y subsiguientes, una Unidad de Gestíón de Memoria que contieneuna Unidad de Paginación a continuación de la Unidad de Segmentación

Page 51: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 28

Paginación de Memoria

q En los primeros procesadores (hasta el Pentium Pro), el tamaño de página es fijo: 4Kbytes.

q A partir del Pentium Pro cada tarea puede optar por tener páginas de 4 Kbytes o 4 Mbytes.

q Las páginas son contiguas y a diferencia de los segmentos no se solapan.

q El máximo tamaño de un espacio lineal es 4 Gbytes

q El espacio Lineal se divide entones en 1.000.000 de páginas de 4 Kbytes c/u.

q Se necesita un descriptor para cada página que especifique:2 Dirección Base de la página: Se necesitan 20 bits

(comienzan en múltiplos de 4K ya que no se solapa, de modo que los 12 bits menos significativos serán 0)

2 Atributos. Del mismo modo que los segmentos2 No se requiere límite ya que su tamaño es fijo.

Page 52: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 29

Tabla de Páginas de Memoria q 4 bytes por cada descriptor y un millón de

descriptores de página.q Se necesita una tabla de descriptores de página de 4

Mbytes!!!.q La primer PC 386 venía con 4 Mbytes de RAM.q Evidentemente se necesita otro approach.

Una tabla de 4 Mbytes

con 1.000.000

descriptores de páginas

Una tabla de 4 Mbytes

con 1.000.000

descriptores de páginas

1001 Tablas de 4 Kbytes c/u con 1.000 descriptores de páginas

1001 Tablas de 4 Kbytes c/u con 1.000 descriptores de páginas

1.000 tablas con 1.000 descriptores de páginac/u

Directorio de Tablas de Páginas con 1.000 descriptores de tablas

de página

Page 53: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 30

Paginación de Memoria en dos niveles

RaízRaRaíízz

CR0CR1CR2CR3CR4

31 031 0

31 0

Descriptor de Página

DirectorioDirectorio

Tabla dePáginas

TablaTabla31 022 12

OffsetOffset

Memoria

121010

CPU

Unidad de Unidad de SegmentaciónSegmentación

DirecciónLineal

Dirección Base de la Página 31-12Reservado

S.O.0 0 D A 0 0 U/S

R/W

P

31 012 1234567891011

Sistema deTraducción de Páginas de dos niveles

Directorio de Tablas de Páginas Page Directory

Entries (PDE’s)

Page Table Entries (PTE’s)

Page 54: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 31

Segmentación y Paginación de Memoria

DirectorioDirectorio TablaTabla31 022 12

OffsetOffset

SelectorSelector DesplazamientoDesplazamiento

Descriptor de Descriptor de SegmentoSegmento

Tabla de Tabla de DescriptoresDescriptores

Espacio Lineal Espacio Lineal de Direcciones de Direcciones

(4Gbytes)(4Gbytes)

Dirección Lógica o puntero farDirección Lógica o puntero far

SegmentoSegmento

Dirección LinealDirección Lineal

Espacio Físico Espacio Físico de de

DireccionesDirecciones

Dirección FísicaDirección Física

PAGINACIONSEGMENTACION

PDE

PTE

Dirección LinealDirección Lineal

PáginasPáginas PáginaPágina

Tabla de Tabla de PáginasPáginas

Directorio de Directorio de Tablas de Tablas de PáginasPáginas

Dirección BaseDirección Basedel Segmentodel Segmento

Page 55: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 32

Modelos de Memoria

Modelo Flat Básico

CSSSDSESFSGS

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos

Atributos

Atributos

Atributos

Atributos Límite

Límite

Límite

Límite

Límite

Límite

Tabla de Descriptores

0

FFFFFFFFCódigo

No Presente

Datos y Pila

Espacio Lineal de Direcciones (o Memoria Física)

Tanto el Sistema Operativo como las aplicaciones tienen acceso a un espacio de 4 Gbytes no segmentado.Se evitan las excepciones por exceso en ellímite de memoria ya que el límite de todos los descriptores es FFFFFFFF. Aún si se accede a áreas en las que no existe memoria física.

Page 56: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 33

Modelos de Memoria

Modelo Flat Protegido

CSSSDSESFSGS

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos

Atributos

Atributos

Atributos

Atributos Límite

Límite

Límite

Límite

Límite

Límite

Tabla de Descriptores

0

FFFFFFFFCódigo

No Presente

Datos y Pila

Espacio Lineal de Direcciones (o Memoria Física)

Memoria para E/S

Los segmentos tienen el límoite acorde a la memoria física instalada en el sistema.

Page 57: Arquitectura IA-32 Modo Real - electron.frba.utn.edu.argjoyuela/presentaciones/Procesador I… · Direccionamiento en Modo Real Desplazamiento 15 0 16 Dirección Base 19 0 Dirección

Autor:Alejandro Furfaro 34

Modelos de Memoria.

Modelo Multi Segment

CSSSDSESFSGS

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Dirección Base

Atributos

Atributos

Atributos

Atributos

Atributos

Atributos Límite

Límite

Límite

Límite

Límite

Límite

Tabla de Descriptores

0

FFFFFFFF

Código

Pila

Datos

Espacio Lineal de Direcciones

(o Memoria Física)

Datos

Datos

Datos

Dirección BaseAtributos Límite

Dirección BaseAtributos Límite