ESTRUCTURA DE MICROPROCESADORES

ESTRUCTURA DE MICROPROCESADORES La arquitectura IA32 Profesor Ing. Johan Carvajal Godínez JCG-2009 AGENDA DE LA CLASE 1. Conceptos básicos 2. La ar

2 downloads 54 Views 1MB Size

Story Transcript

ESTRUCTURA DE MICROPROCESADORES La arquitectura IA32 Profesor Ing. Johan Carvajal Godínez

JCG-2009

AGENDA DE LA CLASE 1. Conceptos básicos 2. La arquitectura IA32 3. Evolución de los microprocesadores Intel 4. Administración de la memoria en IA32 5. Componentes de una microcomputadora IA32 6. Niveles de programación para IA32 JCG-2009

Diseño básico de un microcomputador • El reloj sincroniza la operación del sistema • Una unidad de control (CU) coordina la secuencia de ejecución de instrucciones. • Una unidad aritmético-lógica (ALU) realiza los cálculos y operaciones lógicas data bus

registers Central Processor Unit (CPU) ALU

CU

Memory Storage Unit

clock control bus

address bus JCG-2009

I/O Device #1

I/O Device #2

Importancia del reloj • Sincroniza los elementos del sistema (CPU-BUS-componentes) • Establece la base del tiempo para medir el rendimiento del sistema. • Se utiliza para disparar eventos que determinan la operación del sistema one cycle 1 0 JCG-2009

Ciclo de ejecución de una instrucción PC I-1 memory op1 op2

program I-2 I-3 I-4 fetch

read registers

registers

write

write

I-1 decode

• Búsqueda de la instrucción (Fetch) • Decodificacion (Decode) • Búsqueda de operandos • Ejecución • Almacenamiento del resultado

flags

ALU execute

(output)

JCG-2009

instruction register

Implementación multimulti-etapa • La implementación multi-etapa (pipelining) posibilita la ejecución de instrucciones en paralelo. • La instrucción se divide en etapas discretas con una función específica Stages

Etapas usadas comúnmente: S1

1. Bus Interface Unit (S1)

1

5. Segment Unit (S5)

Cycles

4. Execution Unit (S4)

7

10 11 12

JCG-2009

S6

I-1 I-1

6

9

La figura muestra el flujo de un procesador sin ¨PIPELINING¨

S5

I-1

5

8

6. Paging Unit (S6)

S4

I-1

3 4

3. Instruction Decode Unit (S3)

S3

I-1

2

2. Code Pre-fetch Unit (S2)

S2

I-1 I-2 I-2 I-2 I-2 I-2 I-2

Ejecución PIPELINED Hace un uso eficiente de las estructuras del microprocesador y logra mejor rendimiento a nivel de cantidad de instrucciones procesadas

Cycles

Stages S2

1

S1 I-1

2

I-2

I-1

3 4 5 6 7

I-2

S3

S4

S5

S6 Para k estados y n instrucciones se requieren un número de ciclos:

I-1 I-2

I-1 I-2

k + (n – 1)

I-1 I-2

JCG-2009

I-1 I-2

Riesgos del ¨Pipelining¨ Pipelining¨ Cuando una etapa requiere dos ciclos de reloj o más, esos ciclos adicionales se pierden en ¨ las otras etapas del ¨PIPE¨ Stages

Cycles

S1

S2

S3

exe S4

1

I-1

2

I-2

I-1

3

I-3

I-2

I-1

I-3

I-2

I-1

I-3

I-1

4 5

S5

k + (2n – 1)

6 7

I-2 I-2

I-1

8

I-3

I-2

9

I-3

10 11

S6

Para k estados y n instrucciones se requieren un número de ciclos:

I-1 I-2 I-3 I-3 JCG-2009

burbujas

Procesador Superescalar Un procesador superescalar tiene múltiples etapas de ejecución. Por ejemplo en el siguiente diagrama la unidad de ejecución posee dos flujos (u y v) Stages

Cycles

S4 S2

1

S1 I-1

2

I-2

I-1

3 4

I-3 I-4

I-2 I-3

I-1 I-2

I-1

I-4

I-3 I-4

I-1 I-3

I-2 I-2

I-1

I-3

I-4

I-2

I-1

I-4

I-3 I-4

I-2 I-3

5 6 7 8 9

S3

u

v

S5

S6

Para k estados y n instrucciones se requieren un número de ciclos: k +n

10

I-4 JCG-2009

Lectura de Memoria Normalmente el ciclo de lectura de memoria en un sistema basado en microprocesador requiere la introducción de ciclos de espera puesto que la memorias de almacenamiento masivo son lentas. Cycle 1

Cycle 2

Cycle 3

CLK

Address ADDR

RD

Data DATA

JCG-2009

Cycle 4

Memoria caché • La caché es una memoria SRAM de alta velocidad que se encuentra en el CPU – Level-1 caché: Acceso ultra-rápido por el núcleo (datos para unidades de ejecución) – Level-2 caché: Acceso rápido por el núcleo (instrucciones precargadas al núcleo) – Level-3 caché: Acceso rápido por todos los núcleos

• Cache hit: cuando el dato a leer se encuentra en la memoria caché • Cache miss: cuando el dato a leer NO se encuentra en la memoria caché JCG-2009

Como se ejecuta un programa

JCG-2009

Ambiente multitarea • Actualmente los sistemas operativos pueden ejecutar múltiples programas simultáneamente • Un mismo programa puede generar múltiples ¨hilos¨ ¨ en su ejecución • El sistema operativo administra los recursos del sistema asignando un tiempo especifico a cada programa en ejecución. • El sistema debe tener habilidad para cambiar de tareas rápidamente de forma que el usuario perciba ejecución en tiempo real

JCG-2009

Arquitectura IA32 • • • •

Modos de operación Ambiente básico de ejecución Unidad de punto flotante Evolución de los microprocesadores Intel

JCG-2009

Modos de operación • Modo Protegido: – Modo Nativo (Windows, Linux)

• Modo Real – Nativo MS-DOS

• Modo de manejo del Sistema – Diagnostico, recuperación, debug Virtual-8086 • Híbrido protegido-real • Cada aplicación tiene su sistema 8086

JCG-2009

Ambiente básico de ejecución Permite conocer para cada aplicación:

• Administración de la memoria • Utilización de los registros – Registros de propósito general – Registros de uso específico

• Banderas de estado (FLAGS) • Manejo de operaciones específicas – MMX – FPU – SSE

JCG-2009

Administración de la memoria En ambiente de diseño con microprocesadores se habla de • Memoria Física • Memoria lógica Administración del acceso a memoria • Segmentación • Paginación

JCG-2009

Utilización de los registros 32-bit General-Purpose Registers EAX

EBP

EBX

ESP

ECX

ESI

EDX

EDI 16-bit Segment Registers

EFLAGS EIP

JCG-2009

CS

ES

SS

FS

DS

GS

Acceso de los Registros • Se pueden utilizar con su nombre de 8,16 y 32 bits • Aplica para EAX, EBX, ECX, y EDX 8

8

AH

AL

AX

EAX

8 bits + 8 bits

16 bits

32 bits

JCG-2009

Registros Base e índice A continuación se muestra como se accede a los registros Base e índice:

JCG-2009

Utilización especifica de los registros • Registros de propósito general – EAX – Acumulador – ECX – Contador – ESP – Puntero de pila – ESI, EDI – Índices – EBP – Puntero de base

• Segmento – CS – Segmento de código – DS – segmento de datos – SS – segmento de pila – ES, FS, GS – segmentos adicionales JCG-2009

Utilización especifica de los registros Control de ejecución • EIP – Apuntador de Instrucción (PC) • EFLAGS – Banderas de control y estado

JCG-2009

Banderas de estado (FLAGS) • Carry – Desbordamiento en una operación aritmética sin signo

• Overflow – Desbordamiento en una operación aritmética con signo

• Sign – El resultado es negativo

• Zero – El resultado es cero

• Auxiliary Carry – Acarreo entre los bits 3 y 4

• Parity – La suma de unos es un numero par JCG-2009

FPU, MMX, SSE • Ocho registros de 80 bits para datos de FPU

• ST(0), ST(1), . . . , ST(7) – Ordenados en una pila – Accesibles por todas las operaciones del FPU • Ocho registros de 64 bits para operaciones MMX • Ocho registros de 128 bits para operaciones SIMD (Single Instruction, Multiple Data ) JCG-2009

ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7)

Evolución de los microprocesadores INTEL • • • • •

Intel 8086, 80286 Familia de procesadores IA32 Familia de Procesadores P6 Core I7 Evolución de CISC a RISC

JCG-2009

Los Clásicos Intel • Intel 8080 – – – – –

Espacio de memoria direccionable hasta 64KB Registros de 8 bits Sistema operativo CP/M Arquitectura de bus S-100 Unidad de disco magnético de 8 pulgadas!!!

• Intel 8086/8088 – – – – –

Núcleo de la IBM-PC (8088) Espacio de memoria direccionable hasta 1MB Registros de 16 bits Bus de datos de 16 bits (8 bits para 8088) Unidad de punto flotante(8087) por separado JCG-2009

La microcomputadora IBM-AT • Intel 80286 – Hasta 16 MB de memoria RAM – Memoria protegida – Más rápido que 8086 – Introdujo la arquitectura de interconexión IDE – Unidad de punto flotante(80287)

JCG-2009

Familia de procesadores IA32 • Intel386 – Hasta 4 GB RAM, Registros de 32 bits, paginación y manejo de memoria virtual

• Intel486 – Se implementó ¨pipelining¨ ¨ de instrucciones

• Pentium – Superescalar, bus de direcciones de 32 bits, bus interno de 64 bits. JCG-2009

La familia Intel P6 • Pentium Pro – Optimización del manejo de los microcódigos

• Pentium II – Mejorado para multimedia con set MMX

• Pentium III – Implementa set de instrucciones SSE (SIMD)

• Pentium 4 – Microarquitectura Intel NetBurst, optimizado para aplicaciones multimedia

• Core2 – Mejora el manejo de caché y el consumo de potencia. Elimina HT. Virtualización nativa JCG-2009

La microarquitectura P6

JCG-2009

La arquitectura Corei7 • Primer Quadcore nativo de INTEL • Implementa tecnología Simultaneous Multi-Threading (SMT) • Mejoras en la memoria caché con una nueva arquitectura de tres niveles • Tecnología de interfaz Intel QuickPath Interconnect • Nuevo Conjunto de Instrucciones SSE 4.2

JCG-2009

Set de Instrucciones • CISC – complex instruction set – – – –

Gran variedad de instrucciones Operaciones de alto nivel Se requiere de un interprete de microcódigo ejemplo: Intel 8086

• RISC – reduced instruction set – – – –

Instrucciones simples y compactas Set de instrucciones reducido Ejecutadas directamente por hardware ejemplos: • ARM (Advanced RISC Machines) • DEC Alpha (de HP)

JCG-2009

Manejo de la memoria en IA32 • Arquitectura administración de la memoria • Modo Real • Cálculo de una dirección lineal • Modo Protegido • Modo multi-segmento • Paginación

JCG-2009

Arquitectura de acceso de la memoria

IA32

JCG-2009

Modo Real • Máximo 1MB de memoria direccionable • La aplicación puede acceder cualquier localización de memoria • Monotarea • Ambiente de operación MS-DOS • Esquema de direccionamiento segmentado – Segmento (16 bits) – Desplazamiento (16 bits)

JCG-2009

Memoria segmentada El calculo de la dirección física (linear address) es la combinación de del segmento y del desplazamiento a partir de la dirección de segmento F0000 E0000

8000:FFFF

D0000

Un segmento

C0000 B0000 A0000 90000 80000

Dir. Física= Seg*16+Offset

70000 60000 8000:0250

50000 0250

40000 30000

8000:0000

20000 10000 00000

seg

ofs

JCG-2009

Cálculo de una dirección física Ejemplo: A que valor de dirección física corresponde el siguiente conjunto de segmento : desplazamiento? • 08F1:0100

Valor del segmento ajustado: 0 8 F 1 0 Valor del desplazamiento: Dirección Física:

+

0 1 0 0 0 9 0 1 0

JCG-2009

Modo Protegido(1/2) • Memoria mapeable hasta 4GB (00000000 hasta FFFFFFFFh)

• A cada programa se le asigna una partición de memoria que solo es accesible por dicho programa, lo cual lo protege • Diseñado para ambiente multi-tarea • La asignación de monto de memoria está a cargo del OS

JCG-2009

Modo Protegido(2/2) • Se administra una tabla de descriptores de segmento • Cada programa obtiene: – Área para CS, DS, SS – Un descriptor de segmento – Un descriptor global asociado a GDT

• Utiliza un modelo de segmentación plano (flat)

JCG-2009

Modelo de segmentación plano

• Tabla de descriptores globales única (GDT) • Todos los segmentos se mapean en un área de 32 bits not used

Segment descriptor, in the Global Descriptor Table

FFFFFFFF (4GB)

00040000 limit

access

00000000

00040

----

physical RAM

base address

00000000 JCG-2009

Modelo multimulti-segmento

• Cada programa tiene tabla de descriptores locales – Esa tabla administra cada segmento utilizado por el programa RAM

Local Descriptor Table

26000 base

limit

00026000

0010

00008000

000A

00003000

0002

access

8000

3000 JCG-2009

Paginación • Administrado directamente por el CPU • Se divide cada segmento en paginas de 4K las cuales se denominan paginas • La suma de la memoria utilizada por todos los programas no puede exceder a la memoria física • Los programas que se están ejecutando pueden estar activos pero no estar cargados en memoria RAM física, sino Virtual • El Virtual memory manager (VMM) – OS es el encargado de administrar la carga y descarga de las páginas. • El CPU envía dispara un evento llamado ¨page fault¨ ¨ cuando una pagina requiere ser cargada del disco

JCG-2009

Componentes de una microcomputadora IA32 • • • •

Tarjeta Madre Salida de Video Memoria Puertos de E/S

JCG-2009

Tarjeta Madre • Permite la infraestructura de operación entre los siguientes componentes: – CPU – Caché externo – Memoria del sistema – BIOS – Tarjeta de sonido (opcional) – Tarjeta de video (opcional) – Controlador de disco duro, USB, VIDEO, ETC – Tarjetas de expansión (PCI) JCG-2009

Tarjeta Madre Intel D850MD

Puertos de E/S

Video Tarjeta de Sonido Chipset

Ranuras PCI Microprocesador

Ranuras AGP

DRAM BIOS Controlador IDE Speaker Batería

Fuente alimentación Conector CD/DVD Conector IDE Fuente: Intel® Desktop Board D850MD/D850MV Technical Product Specification JCG-2009

Administración del Video • Existe un controlador de video que puede ser – Integrado en el chipset – Discreto en una tarjeta (AGP, PCI)

• El controlador administra una sección de memoria RAM especializada en video (VRAM) • Normalmente se tienen dos formatos de salida de Video: – Pantallas de tubos de rayos catódicos (CRT) – Monitores de LCD

JCG-2009

Tipos de memoria • ROM – read-only memory • EPROM – erasable programmable read-only memory • Dynamic RAM (DRAM) – Almacenamiento masivo, requiere una lógica de refrescamiento • Static RAM (SRAM) – Alta velocidad, caras, no requieren refrescamiento • Video RAM (VRAM) – Optimizadas para alto refrescamiento • CMOS RAM – complimentary metal-oxide semiconductor – BIOS JCG-2009

Puertos de entrada/Salida • USB (universal serial bus) – Conexión flexible de alta velocidad – Hasta 12 Mbps – Un HUB puede administrar múltiples dispositivos usando un esquema de numeración – Permite conexión OTG

• Paralelo (PPI) – Corto alcance, alta velocidad – Usado en impresoras – Bidireccional – Controlador Intel 8255 JCG-2009

Puertos de entrada/Salida • Serie – Estándar RS-232C – Se transmiten tramas – Soporta mas distancia que paralelo – 16550 UART (universal asynchronous receiver transmitter) – Se puede programar desde ensamblador

JCG-2009

Niveles de programación • Nivel 3: Bibliotecas o funciones en C, C++, Java – Fáciles de implementar; Transparentes para el hardware; bajo rendimiento

• Nivel 2: Llamadas a funciones del sistema operativo – Específicos a un sistema operativo, sistema – Rendimiento medio

• Nivel 1: Llamada funciones de BIOS (basic inputoutput system) – Puede producir variaciones de rendimiento de sistema a sistema – Varía dependiendo de la versión del BIOS – Buen rendimiento

• Nivel 0: Programación directa del HW – Muy eficiente, algunos sistemas operativos lo restringen JCG-2009

Flujo de ejecución de un programa

El siguiente diagrama muestra el flujo de ejecución ejecuci n de un programa

JCG-2009

Application Program

Level 3

OS Function

Level 2

BIOS Function

Level 1

Hardware

Level 0

Niveles de programación en ensamblador Las funciones de entrada/salida de un programas pueden realizar usando cualquiera de las siguientes estratégicas

ASM Program

JCG-2009

OS Function

Level 2

BIOS Function

Level 1

Hardware

Level 0

Tarea • Investigar sobre la estructura del descriptor del sistema que se utilizan para administrar la memoria para los siguientes procesadores: – 80286 – 80386 – 486 – Pentium

• Como se distribuye el mapa de memoria para el modo protegido JCG-2009

Bibliografía • Irvine, Kip; Assembly Language for IntelBased Computers. 5th Edition. Pearson Education. 2007

JCG-2009

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.