Procesadores de 64 bits

Documentos relacionados
Aprendiendo Sistemas Operativos: Programación de Procesadores de Arquitectura IA-32

Microprocesadores. Procesador IA-32 - Gestión de Memoria en 64 bits. Alejandro Furfaro

Procesamiento con Multitarea

Fundamentos de Arquitectura y Código Máquina

Arquitectura de Computadores II Clase 15

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Microprocesadores. Procesador IA-32 e Intel R 64 Protección. Alejandro Furfaro

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

Conceptos de Arquitectura de Computadoras Curso 2015

Conmutación de Tareas

6-REGISTROS DEL 8086 Y DEL 80286

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Arquitectura de Computadores II 8086 Parte II

Procesadores IA-32 e Intel R 64 Gestión de Interrupciones

MANEJO DEL MOUSE EN LENGUAJE C++

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Procesadores IA-32 e Intel R 64 Gestión de Interrupciones

Programación en ensamblador (x86-64)

Microprocesadores. Procesador IA-32 - Gestión de Memoria. Alejandro Furfaro

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

Apellidos Nombre DNI

Instituto Tecnológico de Costa Rica

Arquitectura intel Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

MONITOREO DE EVENTOS PARA PENTIUM CON MMX

Entorno de Ejecución del Procesador Intel Pentium

ESTRUCTURA DE MICROPROCESADORES

1.2.- EL MICROPROCESADOR.

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Paso de parámetros y gestión del marco de pila

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Fig. 1: Tipos de datos que puede manejar el procesador

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

EL EMU8086 Y EL MICROPROCESADOR 8086.

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.

Arquitectura de Computadores II Clase #3

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

Tema 5.1: Presentación de datos en pantalla

Espacio de direcciones de un proceso

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

INTERRUPCIONES SOFTWARE y EXCEPCIONES

ARQUITECTURA DEL MICROPROCESADOR 8086

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

Organización del Computador I 1er. Parcial 17-Mayo Turno:

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Historia de los Microprocesadores Intel

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:

Periféricos Práctica 4: CD-Audio

Alternativas de programación

Manual de Programación X86 sobre plataforma FPGA.

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

SISTEMAS OPERATIVOS Arquitectura de computadores

La arquitectura del 8086/8088

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR

Tema 5. Presentación de datos por pantalla

Escuela de Ingeniería Electrónica. Memoria. Memoria para el EL Estructura de Microprocesadores. Ing. José Alberto Díaz García.

Práctica 3: El teclado del PC

101 Sombras del Malware. Israel Aráoz Severiche C EH,C HFI,

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

GUÍA DE INSTALACIÓN Noviembre 3 de 2010

Arquitecturas vectoriales, SIMD y extensiones multimedia

Arquitectura de Computadores II Introducción al 8086

1 La figura 1 muestra la estructura de la CPU de un computador con palabras y direcciones de 32 bits, cuya

Práctica 2. Registros y posiciones de memoria

Apuntes de Máquinas Electrónicas. (2º parcial) , José María Foces Morán.

Modulo LCD MODULO LCD

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

EJEMPLOS EN ENSAMBLADOR

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

Introducción a la arquitectura de computadores

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Capítulo 2 Un Microprocesador Comercial de 8 bitshoja 2 de 65. Tabla de Contenidos

Definición de Memoria

ITT-327-T Microprocesadores

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Departamento de Sistemas e Informática

movl $var, %eax movl $0xf02, %ebx movb var, %ah movw %bx, %ax mov ebx, eax movl %ebx, %eax movl 3(%ebx), %eax

CICLOS DEL PROCESADOR

Apunte sobre Bochs. Programación de Sistemas Operativos. 1. Introducción bochs - VM con Debugger... 2

Funcionamiento de la computadora

Trabajo Práctico Nro 3: Assembler

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

klib librería del núcleo

Funcionamiento de la Pila (o stack)

LENGUAJE ENSAMBLADOR PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

Universitat Oberta de Catalunya. Entorno de trabajo. Miquel Albert Gerard Enrique

ESCUELA DE INGENIERÍA DE SISTEMAS CÁTEDRA: ASSEMBLER

"Programación en Ensamblador del microprocesador Pentium (I)"

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Hola a todos los seguidores del curso de ensamblador de AESOFT.

Notas de Teórico. Arquitectura del Computador

Transcripción:

Procesadores de 64 bits Técnicas Digitales III Ing. Gustavo Nudelman 2013

Introducción Desarrollada por AMD en 2003 con el modelo Opteron, continuando con el Athlon para ser luego tomado por Intel en los modelos de PIV Al igual que el modo protegido, para trabajar en 64 bits debemos activar una unidad del procesador a fin de pasar a modo largo o modo IA32e Dicho modo se habilita mediante el bit LME (long mode enable) del registro EFER (Extended Feature Enable Register) El modo largo, posee 2 sub-modos de operación: Compatibility mode : para ejecutar código compatible de IA32 64-bit mode : para ejecutar código de 64 bits El sub-modo se especifica mediante al bit 5 y 6 (D/B y reservado en IA32) del 6to byte del descriptor de segmento (00=16; 01=32; 10=64; 11=reservado). Para pasar de sub-modo (Dentro del modo largo) debemos cambiar de segmento de código

AMD64 / IA32e - Modos de operación Legacy mode

AMD64 / IA32e - Modos de operación

Comportamiento de Long mode Se utilizan descriptores en la GDT de 8 bytes similares los de modo Legacy Los segmentos se tratan como FLAT y en el sub modo 64 no se chequea el campo límite Todos los registros de puntero se extienden a 64 bits aunque todavía se toman como direcciones lineal solo 48 bits. (En modo compatibilidad, los bits 32..47 deben valer 0) Con direcciones lineales de 48 bits, y un sistema de paginación mediante PAE de 4 niveles se obtienen direcciones físicas de 52 bits. No se dispone de conmutación de tarea por Hardware Se puede verificar si es posible pasar a modo largo mediante la instrucción CPUID con la funcionalidad dada por EAX=0x80000001, donde se obtendría el bit 29 de EDX en 1 si el procesador admite este modo

Direccionamiento en long mode PAE 4K

Descriptores para paginación de 4K en long mode NX: Non exec MBZ: Must be zero. If not: General protection IGN: Ignored

Descriptores para paginación de 4K en long mode NX: Non exec MBZ: Must be zero. If not: General protection IGN: Ignored

Direccionamiento en long mode PAE 2M

Descriptores para paginación de 2M en long mode

Descriptores para paginación de 2M en long mode

Modelo de ejecución Los registros de propósito general se expanden a 64 bits Se disponen de 8 nuevos registros de propósito general (r8.. r15) Los registros de puntero pueden ser accedidos por byte Las instrucciones push y pop trabajan con alineaciones de 64 bits. Se dispone de 8 registros XMM nuevos Las extensiones de 64 bits no pueden utilizarse en modo protegido ni en modo compatibilidad EFLAGS se extiende a 64 bits como RFLAGS

Modelo de ejecución RIP

Modelo de ejecución (extensión de registros) 64 32 16 8 RAX RBX RCX RDX RSI RDI RBP RSP EAX ah AX al EBX bh BX bl ECX ch CX cl EDX dh DX dl ESI EDI EBP ESP SI sil DI dil BP bpl SP spl

Modelo de ejecución (nuevos registros) 64 32 16 8 r8 r9 r10 r11 R12 R13 R14 R15 r8d r9d r8w r8b r9w r9b r10d r10w r10b r11d r11w r11b r12d r12w r12b r13d r13w r13b r14b r14d r14w r15d r15w r15b

Registros de control en 64 bits CR0 CR2

Registros de control en 64 bits CR3 CR4

Model-specific registers A partir del procesador Pentium se incorpora un set de registros llamados MSRs (Model Specific Regiters) cuya cantidad puede variar en diferentes modelos. Es por eso que existen 2 instrucciones privilegiadas para trabajar sobre los mismos rdmsr y wrmsr Antes de ejecutar cualquiera de estas 2 instrucciones debemos especificar cual será el MSR a ser accedido mediante ECX Si la implementación no existe ocurrirá una excepción de protección general El registro EFER es uno de los tantos MSRs el cual corresponde a ECX=0C0000080h Luego mediante rdmsr obtenemos el registro en EDX:EAX. (por que no en RAX?) Entonces para setear el bit que habilita long mode del registro EFER debemos hacer el OR correspondiente y luego ejecutar la instrucción wrmsr

Extended Feature Enable Register (EFER)

Activación del modo largo Si bien para pasar a modo largo, debemos activar el bit LME (long mode enable) del registro EFER, este modo funciona solo si está activada la paginación PAE de 4 niveles. Es decir: con el bit LME lo habilitamos pero no lo activamos Como regla de buen comportamiento es conveniente hacerlo desde modo protegido Legacy mode y desactivar la paginación de este modo para armar las tablas que corresponden al modo largo. Cuando el modo largo está efectivamente activado, se lo indica mediante la activación automática del bit LMA (long mode activated) del registro EFER

Activando el modo largo 1. Suponiendo que se encuentra en modo protegido: desactivar la paginación (si es que está activada) 2. Desactivar interrupciones, ya que la IDT en este modo es diferente a la utilizada en IA32 y cargar idtr con la IDT correspondiente 3. Debe estar armado en memoria el esquema de 4 niveles requerido por long mode 4. Activar el bit PAE del registro CR4 5. Cargar CR3 con la base de PML4 6. Setear el bit LME del registro EFER 7. Activar la paginación (CR0.PG) lo que causará la activación del long mode (activándose EFER.LMA)

Comenzando en modo largo 1. Una vez entrado en modo largo, el procesador se encuentra en compatibility mode debido a que CS estaba apuntando a un descriptor utilizado en IA32 (Legacy) 2. Si quisiéramos activar el sub-modo 64, debemos realizar un JMP FAR a fin de apuntar CS a un descriptor acorde a este sub-modo 3. Si tenemos correctamente el registro idtr apuntando a una IDT64 entonces habilitamos interrupciones

Lab 1 Hello world 64 Subtitulo o nombre del capitulo Universidad Tecnológica Nacional

Interrupciones en IA32e Tanto para compatibility mode como para 64 bit mode, se utilizan descriptores de 16 bytes a fin de poder almacenar vectores lineales de 64 bits (a diferencia de IA32 que utiliza descriptores de 8 bytes) Si se estaba trabajando con una IDT en IA32, se deberá cargar el registro IDTR para que apunte a una IDT de 64 bits, antes de pasar a modo largo y habilitar interrupciones. Otra diferencia con respecto a IA32, es que cuando un handler de interrupción es invocado, siempre se guarda el selector SS, independientemente de que exista cambio de nivel de privilegio. Recordar que la pila trabaja con qwords > Debemos retornar de la interrupción con iretq. No existe la puerta de tarea

Descriptor de la IDT en modo largo Se debe apuntar a un selector de código de 64 bits IST (Interrupt stack table): Se incorpora la posibilidad de trabajar con varios stacks diferentes almacenados en una tabla (Debe ser 0 si no se desea trabajar con la tabla del TSS)

Manejo de la pila ante una interrupción en modo largo

Lab 2 Interrupciones 64 Comandos de bochs page <lineal addr> show <instrucction> Subtitulo o nombre del capitulo Universidad Tecnológica Nacional