PDF de programación - Clase 1 - Arquitectura de Computadoras II

Imágen de pdf Clase 1 - Arquitectura de Computadoras II

Clase 1 - Arquitectura de Computadoras IIgráfica de visualizaciones

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
  • Links de descarga
http://lwp-l.com/pdf10967

Comentarios de: Clase 1 - Arquitectura de Computadoras II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad