View
229
Download
1
Category
Preview:
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!
Recommended