Intro

40
Arquitectura de Computadores 503351 Cecilia Hernández [email protected]

description

 

Transcript of Intro

Page 1: Intro

Arquitectura de Computadores503351

Cecilia Hernández

[email protected]

Page 2: Intro

Contenidos del Curso

Introducción Arquitectura de conjunto de instrucciones y

programación assembly Métricas de desempeño Arquitectura y organización de

procesadores Sistemas de Memoria Entrada/salida

Page 3: Intro

Qué es un computador?

Computador es una máquina que ejecuta algoritmos expresados como un programa en lenguaje de máquina. Fundamentalmente, un circuito

secuencial sincrónico Problema a resolver Conjunto de algoritmos Algoritmos Programa en lenguaje de alto nivel (C, C+

+, Java, etc.) Programa lenguaje de alto nivel Programa lenguaje

de máquina

Page 4: Intro

¿Por qué, para qué?

Especificar correctamente un equipo computacional dependiendo de requerimientos Tipo de aplicaciones que debe soportar Tipo y número de usuarios

Optimizar el desempeño de un programa en cualquier lenguaje

Diseñar sistemas digitales avanzados para aplicaciones de alto desempeño

La implementación de abstracciones es una de las bases de la ingeniería, y además es entretenido!

Page 5: Intro

Organización de un Sistema computacional

Hardware y software

Datos y control Arquitectura de

conjunto de instrucciones (ISA)

CPU

Memoria

Módulosde

Salida

Secciónde

Datos

Sw

Secciónde

Control

Módulosde

Entrada Fwy

Hw

Compilador oIntérprete

Interfaz de SwI SA

Sistema Operativo

Aplicaciones

Page 6: Intro

Arquitectura y organización de computadores

Consiste en el estudio de Estructura: Como se organizan los

componentes internos en forma estática Organización: Interacción dinámica entre

sus partes y el control involucrado Implementación: diseño de bloques

específicos Desempeño: estudio del comportamiento

del sistema o de sus componentes

Page 7: Intro

EstructuraModelo de Von Neumann

Jerarquía

De Memoria

I/Ocontrol ALU

RegistrosPC

estado

Buses memoria

Buses Entrada/Salida

CPU: sección datos, control

+

Page 8: Intro

Arquitectura de computadoresEnfoque ISA

ISA: Instrucción Set Architecture Arquitectura: interfaz entre niveles ISA interfaz entre HW y SW ISA es la parte visible al programador ISA consiste en:

Instrucciones (operaciones con su respectiva codificación) Formato de instrucciones Tipos de datos soportados por la arquitectura Modos de direccionamiento Unidades de información (tamaño, como se direccionan) Registros que representan el estado del procesador Control Entrada/Salida

Page 9: Intro

Interfaz HW/SW

swap (int v[], int k){

int tmp;tmp=v[k];v[k]=v[k+1];v[k+1]=tmp;

}swap: muli $2,$5,4

add $2,$4,$2 lw $15,0($2) lw $16,4($2) sw $16,0($2) sw $15,4($2) jr $31

Compilador C

Ensamblador

000100 00101 00010 0000000000000100000000 00100 00010 00010 00000 000001100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 00000 00000 001000

Programa C

Programa Assembler

Programa Lenguaje Máquina

InstruccionesDirectas a la CPU

Page 10: Intro

Ejemplo: ISA MIPS 3000 Localización de datos

Instrucciones operan con datos en registros internos

Instrucciones para mover datos entre memoria y registros

Tipos de instrucciones Load/store Lógica y aritmética entera Control de flujo (saltos) Punto flotante Excepciones

Tipos de datos Enteros complemento a 2 Punto flotante IEEE

R0 - R31

PC

HI

LO

Registros

Tres formatos de instrucciones: 32 bits

OP

OP

OP

rs rt rd sa funct

rs rt immediate

jump target

Page 11: Intro

Organización

Implementación de la arquitectura Cuáles son los componentes básicos de un

computador y como se relacionan entre sí Componentes básicos de la CPU Componentes básicos de la jerarquía de

memoria Como están diseñados, controlados y

conectados los componentes básicos Organización utilizada en forma

transparente a la arquitectura ISA + Organización Desempeño

Page 12: Intro

Historia

Generación 0: Dispositivos Mecánicos (1642 - 1945) Pascal (1642): suma y resta Von Leibniz (1672):

multiplicación y división Babbage (1792 - 1871):

máquina diferencial y máquina analítica

1930 - 1944: máquinas electromagnéticas, aritmética binaria, Aiken: Mark I y Mark II

Page 13: Intro

Historia

Generación 1: Tubos de Vacío (1945 - 1955) ENIAC (1946):

18000 tubos 5000 sumas/segundo 1500 relés 30 toneladas 140 KWatts

EDSAC, JOHNIAC, ILLIAC, MANIAC, WEIZAC, EDVAC

IAS: originó la arquitectura de von Neumann. Programa representado

digitalmente, almacenado en memoria junto a datos

Organización de máquinas contemporáneas

Page 14: Intro

Historia

Generación 2: Transistores (1955 - 1965) DEC PDP-1 (1961): 4 KB

memoria, 18 bits, 5 ms. IBM 7090, 7094: 32K memoria,

36 bits, 2 ms. IBM 1401 aplicaciones

comerciales 4 KB CDC 6600 (1964): alto

desempeño en aplicaciones numéricas paralelismo interno en CPU

Burroughs B5000: diseñada para facilitar tarea al compilador

Page 15: Intro

Historia

Generación 3: Circuitos integrados (1965 - 1980) IBM/360: familia de

modelos compatibles (ISA diferente de implementación). Memoria de 250 nseg a 1 mseg, límite de 16 MB. Multiprogramación.

DEC PDP-11: minicomputador precio/desempeño

Page 16: Intro

Historia

Generación 4: Circuitos VLSI (1980 - ????) PCs Workstations Mainframes Supercomputadores Redes de Computadores Sistemas portables

Page 17: Intro

Historia

Qué viene ahora? portabilidad

extrema? Computación

distribuida? Grid Computing? Nuevos modelos

computacionales? Cuántica, DNA?

Page 18: Intro

Desarrollo histórico de la tecnología

CPU Tubos al vacío

Transistores(on/off interruptor eléctrico)

Cirtuitos integrados(combina cientos de transistores en un chip)

VLSI(combina millones de transistores en un chip)

Memorias Tubos al vacío

Ferrite core Semiconductores(sustancia que no conduce bien la electricidad)

Semiconductores

Estructura CPU

Una CPU Mainframes Micros y minis Arq de 64 bits

Superescalares

Multihebras

Procesadores Dual core

Page 19: Intro

Relación entre Estructuras

Referencia: DAP Spr. 1998 ©UCB

Page 20: Intro

Cambiando un poco

Razones de cambio Avance tecnológico, costo, funcionalidad

Referencia: DAP Spr. 1998 ©UCB

Page 21: Intro

Moore’s Law

The observation made in 1965 by Gordon Moore, co-founder of Intel, that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented. Moore predicted that this trend would continue for the foreseeable future. In subsequent years, the pace slowed down a bit, but data density has doubled approximately every 18 months, and this is the current definition of Moore's Law, which Moore himself has blessed. Most experts, including Moore himself, expect Moore's Law to hold for at least another two decades. Definición en: http://www.webopedia.com/

Page 22: Intro

Referencia: Intel 2005 As of 2006, chip areas range from a few square mm to around 250 mm2, with up

to 1 million transistors per mm2 (wikipedia)

Tendencia en tecnología

Page 23: Intro

Tendencia en velocidad de procesador intel

0

500

1000

1500

2000

2500

3000

3500

4000

1971 1974 1979 1982 1985 1989 1993 1997 1998 1999 2000 2001 2002 2003

Year

Sp

eed

(M

Hz)

Referencia: Universidad USA

Page 24: Intro

Tendencia en Capacidad y velocidad de Memoria DRAM

Referencia: DAP Spr. 1998 ©UCB

Page 25: Intro

Tecnología: avances dramáticos

Ley de Moore: desempeño se duplica cada 18 meses

DRAM

Year Size

1980 64 Kb

1983 256 Kb

1986 1 Mb

1989 4 Mb

1992 16 Mb

1996 64 Mb

2000 256 Mb

2002 1 Gb

uP-Name

Microprocessor Logic DensityDRAM chip capacity

i4004

i8086

i80386

Pentium

i80486

i80286

SU MIPS

R3010

R4400

R10000

1000

10000

100000

1000000

10000000

100000000

1965 1970 1975 1980 1985 1990 1995 2000 2005

Tra

nsis

tors

i80x86

M68K

MIPS

Alpha

Page 26: Intro

Algunas compañías importantes

IBM 704, 709, 70xx etc.. De 1955 hasta 1965 360, 370, 43xx, 33xx De 1965 hasta ahora Power PC

DEC PDP-11, VAX De 1970 hasta 1985 Alpha (Compaq, HP) en años 1990

SUN Microsystems Sparc, Ultra Sparc desde 1985

Mips Silicon Graphics Mips 2000, 3000, 4400, 10000 desde 1985

Page 27: Intro

Algunas compañías importantes

Intel Primeros microcomputadores 40xx in early 70’s x86 (086,…,486, Pentium, Pentium Pro, Pentium 3, Pentium 4)

desde 1980 IA-64 (Itanium) en 2001

AMD Opteron

The world’s highest performing 2P and 4P servers are now powered by AMD Opteron™ processors. Receive the performance and security benefits of 64-bit computing, while getting the best 32-bit performance available anywhere. http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8825,00.html

Athlon 64 bits. The FIRST Windows®-Compatible 64-bit PC Processor Turion 64 bits

Page 28: Intro

Pentium 4 en CMOS 90nm

Más de 125.000.000 transistores

Velocidad de operación de 3.2GHz

Más de 1MByte de memoria cache en el chip

Consumo energía menor que 100W

Tamaño: 112 mm2

Precio inferior a US$200 permite su uso en computadores personales

Desempeño de procesadores se duplica consistentemente cada 18 meses (Ley de Moore)

Page 29: Intro

Comparación: Xbox 360

Especificaciones técnicas CPU IBM con tres procesadores de 3.2GHz en

un solo chip 512MBytes de RAM Disco duro de 20GBytes Tarjeta gráfica ATI de 500MHz Lector de DVD Tarjeta de red inalámbrica incorporada Soporta televisión de alta definición

Precio: alrededor de US$400

¡Relación precio/desempeño ha mejorado en un factor de más de 8 órdenes de magnitud en los últimos 25 años!

Comparar con otra industria

Page 30: Intro

RISC vs. CISC

CISC: Complex Instruction Set Computer Instrucciones poderosas ISA más cercana a operaciones de lenguajes de alto nivel Codificación variada de instrucciones, formatos complejos Instrucciones más poderosas, pero también más difíciles de implementar Ejemplos: VAX, Intel Pentium

RISC: Reduced Instruction Set Computer Instrucciones sencillas ALU sólo opera con operandos en registros Codificación sencilla, pocos formatos Únicas instrucciones que accesan la memoria son load/store Más fácil de implementar más rápido Optimizaciones de código a cargo del compilador Ejemplos: MIPS, PowerPC, Alpha

Page 31: Intro

Registros

Son las unidades básicas de almacenamiento en la CPU

Son parte esencial de la arquitectura Puente entre HW y programador

Son las unidades que proporcionan mayor velocidad de acceso en la CPU

Normalmente número de registros es reducido en la arquitectura (típicamente 32 o 64) por lo tanto fáciles de identificar

También se usan para direccionar la memoria

Page 32: Intro

Registros

No todos son iguales en términos de funcionalidad Algunos son de propósito específico

Ejemplos: PC (Contador de programas), estado (almacena estado de CPU)

Algunos son usados para operaciones enteras y otros para operaciones de punto flotante

Por qué tipicamente 32 o 64 Codificación para direccionamiento de registros

requiere mas HW (más líneas para direccioarlos)

Page 33: Intro

Almacenamiento

Sistema de almacenamiento definido mediante jerarquía de memoria Registros Caches (dentro y fuera del chip) Memoria principal (DRAM) Memoria secundaria (disco)

Page 34: Intro

Unidades de información

Bit: Unidad básica Bits: Agrupados para formar otras

unidades Byte: 8 bits Word: 16 bits Double word: 32 bits

Page 35: Intro

Direccionamiento a Memoria

Memoria, arreglo de unidades de información Cada unidad tiene el mismo tamaño Cada unidad tiene su propia dirección Direcciones y contenido de unidades son distintas

-128

0

20

0

1

2

direcciones contenidos

Page 36: Intro

Direccionamiento

En la mayoría de los computadores modernos, la unidad básica de direccionamiento es el byte MIPS

Espacio de direccionamiento de un proceso es el conjunto de todas las unidades que un programa puede direccionar El espacio de direccionamiento está ligado al largo de los

registros MIPS tiene registros de 32 bits. Por lo tanto su espacio de

direccionamiento es 2^32 : 4GB Procesadores mas antiguos tenían 16 bits, 2^16 : 64KB Algunos procesadores actuales (Alpha, Itanium, Sparc,

Althon) tienen 64 bits, 2^64 :

Page 37: Intro

Direccionando words

A pesar que memorias son direccionables al byte, lo que mas se usa como unidad de almacenamiento es la word

Cada word comienza en una dirección divisible por cuatro

04812

Page 38: Intro

Big-endian vs little-endian

Orden de bytes en una word

0123 Little-endian,MIPS

310 2 Big-endian

Page 39: Intro

Qué es una instrucción?

Comando que le dice a la CPU que operación realizar Mediante código de operación

Todas las instrucciones están codificadas Donde se encuentran los operandos necesarios para ejecutar la

operación ISA de una instrucción especifica

Código de operación Cuántos operandos son necesarios, tipos, tamaños, ubicación

Operandos Registros (enteros, punto flotante, PC) Dirección de memoria Constantes

Page 40: Intro

Ejecución de instrucción de máquina

CPU ejecuta instrucciones de un programa ciclo

Instrucciones especifican operaciones sobre operandos y generan resultados

Datos pueden encontrarse en memoria (RAM, ROM) o en registros internos al procesador

Instrucciones pueden también modificar el flujo de control (saltos, llamadas a procedimiento)

Instrucciones pueden crear excepciones

LeerInstrucción

Decodificar

LeerOperandos

EjecutarInstrucción

AlmacenarResultados

Cálculo SgteInstrucción