Publicado el 8 de Mayo del 2018
1.145 visualizaciones desde el 8 de Mayo del 2018
249,4 KB
42 paginas
Creado hace 13a (02/08/2010)
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
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 Publishing
Co., 2002, ISBN: 1558607242
Andrew S. Tanenbaum, Structured Computer Organization 4th
Edition, Prentice Hall, 1998, ISBN: 0130959901.
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?
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 los
lenguajes 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
Paralelismo
Aplicaciones
Lenguajes de
Programación
Arquitectura del Computador:
• Diseño del Set de Instrucciones
• Organización
• Hardware
Diseño de las Interfaces
(ISA)
Sistemas
Operativos
Medidas&
Evaluación
Historia
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
Qué es un computador? (2/2)
Application
Operating
System
Firmware
Compiler
Instr. Set Proc.
I/O system
Datapath & Control
Digital Design
Circuit Design
Layout
Instruction Set
Architecture
Arquitectura, ¿qué es?
• Coordinación de niveles de abstracción
• Sometida a un conjunto de estímulos cambiantes
Abstracción
Programa en C
swap(int v[], int k)
Compilador de C (MIPS)
{int temp;
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
}
Abstracción
permite manejar
la complejidad
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
Ensamblador (MIPS)
Programa en Lenguaje de máquina
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
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ón
del 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, registros
enteros y de punto flotante…
Organización (microarquitectura)
Visión del diseñador del procesador/sistema: ALUs y otras
unidades funcionales, pipelines, caches, registros físicos,
buses, memorias, etc…
Implementación
Compuertas, transistores, pistas…
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
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
Operaciones (1/2)
(1) Transferencia de datos
(2) Almacenamiento de datos
Operaciones (2/2)
(3) Procesamiento desde/hacia
almacenamiento
(4) Procesamiento desde
almacenamiento a E/S
Estructura: alto nivel
Peripherals
Computer
Communication
lines
Computer
Central
Processing
Unit
Main
Memory
Systems
Interconnection
Input
Output
Estructura: la CPU
Computer
I/O
System
Bus
CPU
Memory
CPU
Registers
Arithmetic
and
Login Unit
Internal CPU
Interconnection
Control
Unit
Estructura: Unidad de Control
CPU
ALU
Internal
Bus
Control
Unit
Registers
Control Unit
Sequencing
Login
Control Unit
Registers and
Decoders
Control
Memory
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
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
Ley de Moore:
otra mirada…
100,000,000
10,000,000
1,000,000
100,000
10,000
i
s
r
o
t
s
s
n
a
r
T
Bit-level parallelism
Instruction-level
Thread-level (?)
R10000
Pentium
i80286
i80386
R3000
R2000
i8086
i8080
i8008
i4004
1,000
1970
1975
1980
1985
1990
1995
2000
2005
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
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)
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
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
Comentarios de: Clase 1 - Arquitectura de Computadoras II (0)
No hay comentarios