Download ESTRUCTURA DE MICROPROCESADORES

Document related concepts
no text concepts found
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