21
1 Arquitectura de Computadores II Clase #1 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Aspectos administrativos: quiénes, cuándo? Docentes Eduardo Grampín Álvaro Martín Luis Michelena Matías Richart Juan Saavedra Gonzalo Tejera Teórico Miércoles y Viernes de 8:00 a 10:30 hs. Salón A12 Taller Lunes de 16 a 18 hs. Salón A21

Arquitectura de Computadores II Clase #1 Aspectos administrativos:

Embed Size (px)

Citation preview

1

Arquitectura de Computadores IIClase #1

Facultad de IngenieríaUniversidad de la República

Instituto de ComputaciónCurso 2010

Aspectos administrativos:quiénes, cuándo?� Docentes

� Eduardo Grampín� Álvaro Martín� Luis Michelena� Matías Richart� Juan Saavedra� Gonzalo Tejera

� Teórico • Miércoles y Viernes de 8:00 a 10:30 hs. Salón A12

� Taller• Lunes de 16 a 18 hs. Salón A21

2

Aspectos administrativos:laboratorios

� Microarquitectura MIC-1 • Presentación: clase del 18/8/2010• Entrega: 12/9/2010

� Arquitectura Intel IA-32• Presentación: clase del 8/10/2010• Entrega: 7/11/2010

Recursos� Página web

� http://www.fing.edu.uy/inco/cursos/arqsis2/

� Newsgroup� fing.cursos.arqsis2

� Bibliografía� William Stallings, Computer Organization and Architecture 5th

Edition, Prentice Hall, 2000, ISBN: 0130812943.� J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 3rd Edition, Morgan Kaufmann PublishingCo., 2002, ISBN: 1558607242

� Andrew S. Tanenbaum, Structured Computer Organization 4th Edition, Prentice Hall, 1998, ISBN: 0130959901.

3

Veremos

� Introducción, por qué estudiar la arquitectura del computador?

� Definición de Arquitectura, Organización e Implementación

� Perspectiva histórica:mejorando la performance.

� La máquina de von Neumann

Por qué estudiar esto? (1/3)� Cambios vertiginosos:

• Tubo de vacío -> transistor -> IC -> VLSI

• Se duplica cada 18 meses:

• Capacidad de la memoria

• Velocidad del procesador (x avances en tecnología y organización)

� De que trata este curso:• ¿Cómo funcionan los computadores? Ejemplos

• ¿Cómo analizar la performance?

• Temas importantes para procesadores modernos

• Servidores, sistemas embebidos, ¿que es esto?

4

Por qué estudiar esto? (2/3)� Las computadores le dan sentido práctico a la Ciencia de la

computación.� Considerar el computador como “caja negra” es riesgoso

� Programas eficientes en diferentes arquitecturas?� Qué sistema elegir? Servidores? Performance?

� Y si tuviera que implementar un sistema embebido?� Es importante conocer la relación entre lenguajes de alto y bajo nivel y su relación con el hardware

� La arquitectura soporta el sistema operativo y loslenguajes de programación…� Más vale conocerla!

Por qué estudiar esto? (3/3)� Entender los factores que influyen sobre la performance para construir

programas y sistemas� Conocer alternativas de compra; asesoramiento “experto”� Entender las técnicas de diseño, estructuras de máquinas, factores

tecnológicos, métodos de evaluación que determinan el desarrollo actual de los computadores

Tecnología Lenguajes de Programación

SistemasOperativos Historia

AplicacionesDiseño de las Interfaces

(ISA)

Medidas& Evaluación

Paralelismo

Arquitectura del Computador:• Diseño del Set de Instrucciones• Organización• Hardware

5

Qué es un computador? (1/2)� Componentes:

� entrada (mouse, teclado)� salida (monitor, impresora)� memoria (discos duros, DRAM, SRAM, CD)� red

� Nos centraremos en el procesador (datapath y control)� Implementado con millones de transistores� Imposible de entender analizando qué hace cada transistor

� Necesitamos abstracción

� Arquitectura, ¿qué es?• Coordinación de niveles de abstracción• Sometida a un conjunto de estímulos cambiantes

I/O systemInstr. Set Proc.

Compiler

OperatingSystem

Application

Digital DesignCircuit Design

Instruction SetArchitecture

Firmware

Datapath & Control

Layout

Qué es un computador? (2/2)

6

AbstracciónPrograma en C

swap(int v[], int k)

{int temp;

temp=v[k];

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

v[k+1]=temp;

}

Programa en Assembler

swap:

muli $t1, $a1,4

add $t1, $a0,$t1

lw $t0, 0($t1)

lw $t2, 4($t1)

sw $t2, 0($t1)

sw $t0, 4($t1)

jr $ra

Programa en Lenguaje de máquina

00000000101000010000000000011000

00000000100011100001100000100001

10001100011000100000000000000000

10001100111100100000000000000100

10101100111100100000000000000000

10101100011000100000000000000100

00000011111000000000000000001000

Compilador de C (MIPS)

Ensamblador (MIPS)

� Abstracción permite manejar la complejidad

Arquitectura del Computador� Instruction Set Architecture (IBM 360)

� … atributos de un sistema [computacional] visto por el programador/compilador. Es decir, la estructura conceptual y el comportamiento funcional, a diferencia de la organizacióndel flujo de datos y el control, el diseño lógico y la implementación física. -- Amdahl, Blaaw, & Brooks, 1964

� Códigos de operación, modos de direccionamiento, registrosenteros y de punto flotante…

� Organización (microarquitectura)� Visión del diseñador del procesador/sistema: ALUs y otrasunidades funcionales, pipelines, caches, registros físicos, buses, memorias, etc…

� Implementación� Compuertas, transistores, pistas…

7

Qué temas se resuelven en cada nivel?

� Arquitectura: atributos visibles al programador� Set de instrucciones, tamaño de palabra, mecanismos de E/S, técnicas de direccionamiento.• Por ejemplo: ¿existe la multiplicación?

� Organización: cómo se implementan las características de la arquitectura� Señales de control, interfaces, tecnología de memoria.

• Por ejemplo: ¿la multiplicación se hace en hardware o mediante microprogramación (usando la suma)?

� Implementación: diseño físico, eléctrico, mecánico� Cuantas capas tiene la placa madre?� Circuitería extra en un solo integrado?

Set de Instrucciones(Instruction Set Architecture –ISA)� Una abstracción importante

� interfaz entre el hardware y el software de bajo nivel

� Estandariza instrucciones, lenguaje de máquina

� ventaja: es posible tener diferentes implementaciones de la

misma arquitectura

� desventaja: puede impedir innovaciones

� Ejemplos:� x86, x86-64 (AMD/Intel), IA-64 (Itanium), SPARC, PowerPC, MIPS, la familia IBM System/370

� Compatibilidad del código� (al menos hacia atrás)

� La organización difiere entre distintas versiones

8

Estructura y funcionamiento

� Estructura: ¿de qué manera los componentes se relacionan entre si?

� Funcionalidad: operación individual de c/componente como parte de una estructura

Visión funcional

� Funciones de un computador:� Procesamiento de datos

� Almacenamiento de datos

� Transferencia de datos

� Control

9

Operaciones (1/2)

(1) Transferencia de datos (2) Almacenamiento de datos

Operaciones (2/2)

(3) Procesamiento desde/haciaalmacenamiento

(4) Procesamiento desdealmacenamiento a E/S

10

Estructura: alto nivel

Computer

Main Memory

InputOutput

SystemsInterconnection

Peripherals

Communicationlines

CentralProcessing Unit

Computer

Computer Arithmeticand Login Unit

ControlUnit

Internal CPUInterconnection

Registers

CPU

I/O

Memory

SystemBus

CPU

Estructura: la CPU

11

CPU

ControlMemory

Control Unit Registers and Decoders

SequencingLogin

ControlUnit

ALU

Registers

InternalBus

Control Unit

Estructura: Unidad de Control

Historia:Generaciones de Computadores

� Tubos de vacío - 1946-1957� Transistores - 1958-1964� Small scale integration - 1965 en adelante

� Hasta 100 transistores en un chip

� Medium scale integration - hacia 1971� 100-3,000 transistores en un chip

� Large scale integration - 1971-1977� 3,000 - 100,000 transistores en un chip

� Very large scale integration - 1978 a la fecha� 100,000 - 100,000,000 transistores en un chip

� Ultra large scale integration� Más de 100,000,000 transistores en un chip

12

Ley de Moore� Gordon Moore - cofundador de Intel:

� La capacidad de integración se duplica cada año

� Desde los 70’s se “enlentece”:� Número de transistores se duplica cada 18 meses

� Algunas consecuencias:• Costo x chip no ha cambiado -> costo de la lógica y memoria baja dramáticamente

• Mayor densidad -> “cables” más cortos, mayor performance de la interconexión

• Más circuitos x chip -> menos interconexiones, mayor confiablilidad

• Menor tamaño -> mayor flexibilidad (poder de cómputo de un celular?)

• Requerimientos de alimentación y refrigeración

Ley de Moore:Transistores x CPU, familia Intel

13

Ley de Moore: otra mirada…

Tran

sist

ors

�������

��

��

� ��

��

��� �

��

� �

��

� �

���

��� �

�� �� �

��� �

���

� ���

1,000

10,000

100,000

1,000,000

10,000,000

100,000,000

1970 1975 1980 1985 1990 1995 2000 2005

Bit-level parallelism Instruction-level Thread-level (?)

i4004

i8008i8080

i8086

i80286

i80386

R2000

Pentium

R10000

R3000

Aumentando la velocidad…

� Algunas técnicas para mantener la CPU trabajando siempre:

� Pipelining� On board cache� On board L1 & L2 cache� Branch prediction� Data flow analysis� Ejecución especulativa

14

Problemas de Performance…

� Incremento en velocidad del Procesador

� Incremento en capacidad de memoria

� Velocidad de acceso a la memoria crece mucho menos!

Performance:Memoria vs. Lógica (CPU)

15

Uso de memoria

Soluciones� Incrementar la cantidad de bits accedidos cada vez� DRAM “más ancha”

� Cambio de la interfaz de memoria� Caché

� Reducir la frecuencia de acceso a memoria� Cachés más complejas, caché en el chip

� Incrementar el ancho de banda de la interconexión� Buses de alta velocidad� Jerarquía de buses

16

Una familia exitosa:Intel (1/4)

� 1971 - 4004 � Primer microprocesador� CPU en un solo chip� 4 bits

� En 1972 aparece el 8008� 8 bits� Ambos diseñados para aplicaciones específicas

� 1974 - 8080� Primer procesador de propósito general de Intel� Data path de 8 bits� Usado en el primer “personal computer”: Altair

Una familia exitosa:Intel (2/4)

� 1978 – 8086 (1980 – coproc. matemático 8087)� Más poderoso� 16 bits� Caché de instrucciones, prefetch de instrucciones� 8088 (bus externo de 8 bits) usado en el primer IBM PC

� 1982 - 80286� 16 Mbytes de memoria direccionable (antes 1Mb)

� 1985 - 80386� 32 bits� Soporte para multitarea

� 1989 - 80486� sofisticado caché y pipelining de instrucciones� coprocesador matemático integrado

17

Una familia exitosa:Intel (3/4)

� Pentium� Superescalar� Múltiples instrucciones ejecutadas en paralelo

� Pentium Pro� Mejora de la organización superescalar� Renombrado “agresivo” de registros� branch prediction� data flow analysis� Ejecución especulativa

� Pentium II� Tecnología MMX� Procesamiento de gráficos, video & audio

Una familia exitosa:Intel (4/4)

� Pentium III� Más instrucciones de punto flotante para gráficos 3D

� Pentium 4� Más mejoras de punto flotante y multimedia

� Itanium� 64 bit� Arquitectura nueva!

� Se dice…• …la arquitectura Intel está “esposada” por la necesidad de retrocompatibilidad…

• …es una arquitectura difícil de entender…

� Pero: • … sigue evolucionando y se sigue usando.

� Demostración: x86-64

18

Repaso del curso anterior

� Sistemas de Numeración� Representación interna de datos� Tipos de datos� Álgebra de Boole� Combinatoria� Máquina de estados� Sistemas secuenciales� Máquina lógica general� Interrupciones

Curso anterior -> este curso: Máquina de von Neumann

� Concepto de Programa Almacenado� Memoria principal almacena programas y datos� ALU opera con datos binarios� La unidad de control manda a ejecutar las instrucciones almacenadas en memoria

� Dispositivos de Entrada/Salida operados por la unidad de control

� Se completó en 1952 en el Princeton Institutefor Advanced Studies� Se denominó IAS

19

Estructura de la máquina de von Neumann

Estructura en detalle de la IAS

Palabra de 40 bits:

Entero con signo

2 instrucciones de 20 bits por palabra

Instrucciones:

Transferencia de datos

Saltos (Cond. e Incond.)

Aritmética

Modificación de direcciones

20

Concepto de Programa� Sistemas cableados son inflexibles� Hardware de propósito general puede hacerdiferente tareas, excitado con las señales de control correctas

� En lugar de re-cablear, un nuevo conjunto de señales de control

� Qué es un programa? � Secuencia de pasos� Por cada paso se completa una operación aritmética o lógica

� Para cada operación se necesita un conjunto particular de señales de control

Funciones de la Unidad de Control

� Cada operación se corresponde con un código único� Ej. ADD, MOVE

� El hardware acepta el código y genera lasseñales de control necesarias…tenemosun computador!

21

Componentes

� La Unidad de Control y la Unidad Aritmético-Lógicaconstituyen la Unidad Central de Proceso (CPU)

� Datos e instrucciones debeningresar al sistema, y losresultados deben salir� Entrada/Salida

� Almacenamiento temporal de código y resultados� Memoria principal

Preguntas?