ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA



Documentos relacionados
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Entorno de Ejecución del Procesador Intel Pentium

Familia de procesadores Intel x86

6-REGISTROS DEL 8086 Y DEL 80286


MICROPROCESADORES, EVOLUCIÓN HISTÓRICA Y CARACTERÍSTICAS TÉCNICAS BÁSICAS

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

Tema 2. Diseño del repertorio de instrucciones

ITT-327-T Microprocesadores

MICROPROCESADORES. Conrado Perea

Generación de código para funciones. Generación de código para funciones. Generación de código para funciones. Generación de código para funciones

Hardware: dentro de la caja. Introducción a la Informática

El Diseño de un Lenguaje Máquina

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

Tema: Historia de los Microprocesadores

Apellidos Nombre DNI

Lógica Binaria. Arquitectura de Ordenadores. Codificación de la Información. Abelardo Pardo Universidad Carlos III de Madrid

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

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción

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

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

1.2 Análisis de los Componentes. Arquitectura de Computadoras Rafael Vazquez Perez

Estado actual de los procesadores

Arquitectura de Computadores

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Los números naturales y enteros en el 80X86 y en LAN

TAREA 1 MANTENIMIENTO DE COMPUTADORES:

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Dr.-Ing. Paola Vega Castillo

Arquitecturas CISC y RISC

Generated by Foxit PDF Creator Foxit Software For evaluation only.

INSTRUCCIONES ARITMÉTICAS.

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

Clase 02: Representación de datos

Autor: Alejandro Furfaro

Hardware: Dentro de la caja. Informática Aplicada Grado en GAP Fac. de Admón. y Dir. de Empresas Univ. Politécnica de Valencia


DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Arquitectura Von Neumann

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

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

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Sistemas de Numeración Operaciones - Códigos

Conmutación de Tareas

Instrucciones del microprocesador

Capítulo 2 REPRESENTACIÓN DE LOS DATOS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

18. Camino de datos y unidad de control

TEMA 1 Representación de la información

FORMATO BINARIO DE NÚMEROS NEGATIVOS

Curso S08 para Cavernícolas

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9)

Representación de números en binario

Apuntes de Microcontroladores (Repaso de temas previos)

Práctica 4 - Arquitectura CPU

GENERACIÓN DE CÓDIGO

Análisis general de un Microprocesador

TEMA 4. Unidades Funcionales del Computador

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

Procesador Pentium II 450 MHz Procesador Pentium II 400 MHz Procesador Pentium II 350 MHz Procesador Pentium II 333 MHz Procesador Pentium II 300 MHz

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

by Tim Tran:

Arquitecturas de Computadoras II. Febrero 2013

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Arquitectura de Computadores II Clase #16

Primeros conmutadores: diodos de cristal y de tubos de vacío (1906). Transistor (TRT): más pequeño y fiable, de material semiconductor (1950).

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Computación I Representación Interna Curso 2011

Departamento de Sistemas e Informática

SOLUCION EXAMEN junio 2006

Ejemplo del uso de las subrutinas

Fundamentos de Programación. Sabino Miranda-Jiménez

La arquitectura del 8086/8088

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

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

picojava TM Características

Práctica 4. Introducción a la programación en lenguaje ensamblador

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

SISTEMAS DE NUMERACIÓN. Sistema decimal

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tema 4. Fundamentos del ensamblador

TRAB. PRÁCTICO Nº 3: UNIDAD CENTRAL DE PROCESAMIENTO (C.P.U.)

TIPOS BÁSICOS DE ARQUITECTURAS DE MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

Almacenamiento y estructura de archivos

El microprocesador. Alberto Molina Coballes David Sánchez López. Noviembre Fundamentos de Hardware

Programación de IA-32 Modo Real

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Tema 1. Fundamentos del lenguaje ensamblador

MASTER DEGREE: Industrial Systems Engineering

TEMA 5. ELECTRÓNICA DIGITAL

Arquitectura (Procesador familia 80 x 86 )

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Organización Básica de un Computador y Lenguaje de Máquina

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

La Unidad Procesadora.

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

Transcripción:

Tema 4: Familia x86 Carlos Garre 1

Familia x86 Contenidos Concepto de familia: la familia x86. Generaciones de la familia x86. Primera generación: 8086. Segunda generación: 80286. Tercera generación: 80386. Cuarta generación: 80486. Quinta generación: Pentium. Siguientes generaciones: Pentium Pro, Pentium 4 Otras familias de Intel: Itanium, Core2, i7, Celeron... Resumen de características de la familia x86. Programación en ensamblador de la familia x86. 2

Versiones del P4 2002: P4 HT (Hyper Threading): 2 procesadores lógicos vs 1 procesador físico (multithread). Poco más que duplicar registros. 2003: P4 Extreme Edition: Caché L3 de 2MBs. FSB de 800MHz. 2004: P4 Prescott: 64 bits! instrucciones x86-64, registros, buses No confundir con IA-64 (Itanium) o con AMD-64 (un año antes). 13 nuevas instrucciones SSE3: operaciones horizontales en registros. Segmentación de 31 etapas. 2005: Pentium D: Dos Pentium 4 Prescott en un único integrado. Procesadores no monolíticos: 2 cachés, comunicación por FSB. 3

Familia x86 Contenidos Concepto de familia: la familia x86. Generaciones de la familia x86. Primera generación: 8086. Segunda generación: 80286. Tercera generación: 80386. Cuarta generación: 80486. Quinta generación: Pentium. Siguientes generaciones: Pentium Pro, Pentium 4 Otras familias de Intel: Itanium, Core2, i7, Celeron... Resumen de características de la familia x86. Programación en ensamblador de la familia x86. 4

Arquitectura Intel Core Evolución de la arquitectura x86 (P8: 8ª generación). Se vuelve a la arquitectura P6 (Pentium Pro) Intel abandona Netburst! Se conservan algunas aportaciones de los P4: SSE3, 2006: Intel CoreDuo: 2 procesadores de 32 bits en uno (monolítico): una sola caché. Intel CoreSolo (versión con un solo núcleo). 2006: Intel Core2: Varios núcleos de 64 bits: Core2 Duoy Pentium Dual Core, Quad. 32 nuevas instrucciones SSSE3 (Suplemental SSE3). Versiones Extreme. Ejemplo: Intel Core 2 Extreme Quad-Core: 4 núcleos de 64 bits. 12MBs de caché en total. FSB a 1600MHz. 5

Modelo Tic-Tac En Intel se impone un modelo en el que se van alternando dos tipos de innovaciones: TIC: Se reduce la escala de integración. TAC: Se implementan cambios en la arquitectura, que aprovechan el mayor número de transistores disponibles gracias al anterior TIC. 6

Arquitectura Nehalem Nueva arquitectura de Intel: 2008. Sucesora de Intel Core 2. Primera implementación: Intel Core i7. >700M transistores. 7

Características de Nehalem Hasta 8 núcleos. Procesador de gráficos integrado (IGP). QPI (QuickPathInterconnect): Reemplaza al clásico FSB. Conexión punto a punto con el procesador, de hasta 32GB/s (el doble que un FSB a 1600MHz). La memoria se conecta directamente al microprocesador, que tiene su propio controlador de memoria. 3 canales simultáneos de acceso a memoria. Se vuelve al HyperThreading(hasta 16 threads simultáneos). Caché: L1: 32KB + 32KBpor cada núcleo. L2: 256 KB por cada núcleo. L3: 8 MBscompartidos. 8

Arquitectura Itanium Arquitectura de 64 bits: IA-64. Intel y Hewlett-Packard, desde 2001. Arquitectura radicalmente diferente a x86 y x86-64. Modelo EPIC (VLIW: VeryLong InstructionWord): Paralelismo a nivel de instrucción explícito. El compilador decide qué instrucciones se van a paralelizar. La instrucción detalla el estado de todas las unidades funcionales del sistema. Compiladores muy complejos hardware muy sencillo. Instrucciones de 128 bits Compatibilidad hacia atrás nula! 6 instrucciones/ciclo (2 FPUs+ 4 ALUs) 9

Familia x86 Contenidos Concepto de familia: la familia x86. Generaciones de la familia x86. Primera generación: 8086. Segunda generación: 80286. Tercera generación: 80386. Cuarta generación: 80486. Quinta generación: Pentium. Siguientes generaciones: Pentium Pro, Pentium 4 Otras familias de Intel: Itanium, Core2, i7, Celeron... Resumen de características de la familia x86. Programación en ensamblador de la familia x86. 10

Evolución 11

Evolución (II) 12

Familia x86 Contenidos Concepto de familia: la familia x86. Generaciones de la familia x86. Primera generación: 8086. Segunda generación: 80286. Tercera generación: 80386. Cuarta generación: 80486. Quinta generación: Pentium. Siguientes generaciones: Pentium Pro, Pentium 4 Otras familias de Intel: Itanium, Core2, i7, Celeron... Resumen de características de la familia x86. Programación en ensamblador de la familia x86. 13

Entorno de Programación MASM http://www.masm32.com/ 1. Code Create New Console Application 2. Project Makeit.bat 3. Project Run program Salvad cambios siempre antes de ejecutar Makeit.bat! 14

Conceptos básicos 4 registros de propósito general: EAX, EBX, ECX, EDX. También se pueden utilizar: EDI, ESI, EBP. Enteros en complemento a 2. Segmentación de la memoria:.data: directiva para indicar comienzo del segmento de datos..code: directiva para indicar comienzo del segmento de código..stack: directiva para indicar comienzo del segmento de pila. Variables: Variable dd 100 dd: byte (8 bits), dw: word(16 bits), dd: double-word(32 bits). Variable dd100 inicializa Variable con el valor 100. Variable dd? crea Variablesin valor inicial. Cadena db Hola Mundo,0 declaración de strings. Matriz db00h, 11H, 22H, 33H declaración de arrays. 15

Modos de direccionamiento MOV destino, fuente Direccionamiento inmediato: MOV EAX, 100óMOV EAX, 100H ómov EAX, 100B Direccionamiento directo a registro: MOV EAX, EBX Direccionamiento directo (indirecto a registro DS implícito, con desplazamiento): MOV EAX, [1000H] Direccionamiento indirecto a registro con desplazamiento: MOV EAX, [EBX + 100H] ó MOV EAX, [EBX] Direccionamiento base más índice: MOV EAX, [BX + DI] ó MOV EAX, [BX + DI + 100H] 16

Instrucciones Aritméticas INC eax eax= eax+ 1 DEC eax eax= eax-1 ADD eax, ebx eax= eax+ ebx SUB eax, ebx eax= eax ebx MUL ebx Un operando siempre fijo: EAX resultado = eax* ebx El resultado se guarda en EDX:EAX IMUL para multiplicación con signo: IMUL eax, ebx eax= eax*ebx DIV ebx Un operando siempre fijo: EAX resultado = eax/ ebx El resto se guarda en EDX y el cociente en EAX. IDIV para división con signo: IDIV ebx 17

Instrucciones de Control Bifurcación incondicional: Etiqueta: JMP Etiqueta Bifurcaciones condicionales: Las condiciones se obtienen del registro de estado (flags): OF (desbordamiento): desbordamiento en operaciones con signo. SF (signo): signo resultante de una operación aritmética (1=negativo). ZF (cero): (1 = el resultado de la última operación fue 0). PF (paridad): paridad en operación de datos de ocho bits (1=paridad par). CF (acarreo): acarreo de operación aritmética óúltimo biten una operación de desplazamiento o rotación de bits. 18

Instrucciones de Control (II) Ejemplo: Saltar si dos registros son iguales: CMP EAX, EBX JE iguales 19

Instrucciones de Control (III) Instrucciones de subrutina: Llamada a subrutina: CALL subrutina Retorno de subrutina: RET Paso de parámetros por pila: PUSH eax guarda el contenido de EAX en la pila. POP eax extrae el último valor de la pila, y lo guarda en EAX. Si no queremos recuperar el valor utilizando POP, podemos vaciarla pila simplemente con: ADD esp, n nes el número de bytes que hemos subido con PUSH. 20

Otras instrucciones útiles LEA eax, variable eax= dir(variable) Operaciones en coma flotante: Numero REAL4 3.14 Inicializa la variable Numero a 3 14 REAL4 es un número real de 4 bytes (precisión simple IEEE-754). FADD, FSUB, FMUL, FDIV, FSQRT, FABS Cientos de instrucciones entre el juego básico, instrucciones SIMD, y otras extensiones. 21

Ejemplo Cálculo del factorial: 22

Práctica 1 Programación en Ensamblador x86 Primera práctica obligatoria. Práctica individual. Campus Virtual: Enunciado. Material de apoyo. Ejemplos de código. Fechas de entrega. Se valorará vuestra capacidad de estudiar por vuestra cuenta: uso de instrucciones no explicadas, optimizaciones bien documentadas, Si se detecta copia Suspensa toda la convocatoria! 23