Clase 1. Introducción a la materia - Facultad de Ciencias-UCV

Anuncio
6002: Organización y Estructura del
Computador II
Clase 1: Introducción a la materia
Prof. Jaime A. Parada D. y Prof. Jesús Lares
6002, Semestre 1-2014
Escuela de Computación
Universidad Central de Venezuela
Caracas, 16 de junio de 2014
1
Agenda
• Aspectos administrativos de la materia
• Qué vamos a estudiar este semestre
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
2
Agenda
• Aspectos administrativos de la materia
• Qué vamos a estudiar este semestre
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
3
Objetivo del curso
• Cerrar la brecha entre el hardware y el software
– ¿cómo funciona un procesador?
– ¿cómo está organizado un computador?
• Establecer las bases para la construcción de
aplicaciones de alto nivel
– ¿cómo entender/interpreter el rendimiento de un
programa?
– ¿cómo entender los movimientos tecnológicos que
están aconteciendo?
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
4
Grupo Docente
• Sección C1:
– Profesor: Jaime A. Parada D. (Coordinador)
•
•
•
•
Lunes y miércoles de 7-9 am
Oficina: CCPD – Escuela de Computación
email: [email protected]
Consulta: Lunes y miércoles después de clase
– Preparadora: María Fernanda Cordobés
• Viernes de 9-11 am
• email: [email protected]
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
5
Grupo Docente
• Sección C2:
– Profesor: Jesús Láres
• Lunes y miércoles de 7-9 am
• email: [email protected]
• Consulta: Lunes y miércoles después de clase
– Preparador: Carlos Mora
• Viernes de 9-11 am
• email: [email protected]
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
6
Grupo Docente
• Por favor, no utilicen los correos para
comunicaciones de la materia (a menos que
sea estrictamente necesario). Este semestre
utilizaremos una página web en piazza.
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
7
Información General
• Nota Informativa:
– Código: 6002
– Créditos: 5
– Semestre: 3ro.
• Requisitos:
– Organización y Estructura del Computador I (6001)
• Modalidad: Básica
• Tipo: Obligatoria
• Horas de clase:
– Cuatro (4) de teoría
– Dos (2) de práctica
– Tendremos algunos talleres!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
8
Página web y noticias
• Información de la materia:
– Página web:
http://www.ciens.ucv.ve/portalasig/organización_y_estruc
tura_del_computador_ii/1-2014/informacion_general
• Nota informativa
• Láminas de clase
• Anuncios y discusiones: Piazza
– Página web:
https://piazza.com/universidad_central_de_venezuela/spr
ing2014/cs6002/home
• Preguntas sobre todos los aspectos de la materia
• ¡Utilicen esta página con frecuencia!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
9
Bibliografía
• El temario de esta materia de basa
principalmente en los libros:
– David Harris & Sarah Harris. Digital
Design and Computer Architecture. 2da. edición.
Morgan Kaufmann Publishers, 2012
– David A. Patterson & John L. Hennessy.
Estructura y Diseño de Computadores:
La Interfaz Hardware/Software. 4ta
edición. Editorial Reverté,Barcelona,
2011 (o la 5ta edición en inglés–2014)
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
10
Trabajo por delante…
• Asistir a clases puntualmente
– Participar en clase
– Trabajar en las clases prácticas
– REALIZAR LOS PROYECTOS!!!
• Leer el libro
– Las lecturas se publicarán en la página web
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
11
Evaluación
• Exámenes prácticos:
–
–
–
–
1ero - 3,33% - 09/07/14
2do - 3,33% - 24/09/14
3ro. - 3,33% - 29/10/14
Sirven como preparación para el parcial...
• Exámenes teóricos:
– 1ero - 25% - 16/07/14
– 2do - 25% - 01/10/14
– 3ro. - 20% - Fijado por Control de Estudios
• Proyectos: Cuatro (4) miniproyectos - 5% c/u
• Talleres: No tienen nota
– Son sumamente importantes para realizar los proyectos!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
12
Notas importantes
• Para aprobar la materia el alumno deberá obtener una
nota definitiva mayor o igual a 10 puntos
• La asistencia puntual a cada una de las clases de teoría,
practica y talleres es obligatoria
– Como obligatoria se entiende que el alumno será evaluado
de acuerdo a las actividades desarrolladas durante las
clases
• No se acepta la entrega de trabajos, reportes u otra
asignación escrita a través de medios electrónicos y/o
digitales
• No hay exámenes de recuperación
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
13
Notas importantes
• Existe un único bloque horario para las dos secciones,
por tanto no hay cambios de sección
• Los exámenes son departamentales y las fechas de
realización de éstos son impostergables
• Una vez dada revisión sobre alguna evaluación no
habrá segunda revisión. Las revisiones de cada
evaluación SOLO serán dadas en las fechas estipuladas
por el grupo docente
• Cualquier duda o inquietud debe plantearla al profesor
de su sección o en su defecto al coordinador de la
materia. De forma similar se recomienda que copien
cualquier email de interés al coordinador de la materia
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
14
Honestidad académica
• Usted está en la capacidad de discutir técnicas de
resolución de problemas en las diversas actividades de
la asignatura con sus compañeros
– Las soluciones para cada asignación deben ser PROPIAS y
expresadas en sus propias palabras
• Está permitido buscar ayuda de otros (compañeros,
libros, Internet, etc.) para tratar de comprender la
asignación planteada
– Las respuestas provistas deben ser expresadas en sus
propias palabras, en la forma en que entendió el contenido
investigado
– Cualquier material consultado y tomado textualmente,
debe ser citado con las referencias pertinentes
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
15
Honestidad académica
• NO se permiten “las colaboraciones” durante las
evaluaciones en clase
– El incumplimiento de esta política acarreará la pérdida de
la evaluación correspondiente, y la notificación a las
autoridades pertinentes
• Las copias serán sancionadas con pérdida total de la
evaluación para las partes involucradas (ambas)
• Con la finalidad de velar por el cumplimiento de la
política de honestidad académica expuesta con
anterioridad, el GDOECII utilizara herramientas de
software para descartar el plagio o copia en las
actividad de programación (proyectos y laboratorios)
asignados a los estudiantes
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
16
Respecto a las evaluaciones
• El material a evaluar en los exámenes tendrá
relación con:
– Clases teóricas
– Ejercicios prácticos
– Proyectos
– Tareas y asignaciones
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
17
¿Cuándo empezamos?
• Teoría:
– El día de hoy
• Práctica:
– El viernes 20/06/14
• Talleres
– Ya está publicado el primer taller!!!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
18
Objetivos del curso
• Analizar y sintetizar circuitos combinacionales y secuenciales.
Además, dibujar esquemas lógicos de cada uno de los bloques
combinacionales que realizan las operaciones aritméticas básicas.
• Comprender el diseño de un procesador RISC sencillo de propósito
de propósito general y comprender las diferencias más relevantes
entre los computadores RISC y CISC.
• Explicar el funcionamiento de un bloque de memoria RAM
mediante un cronograma de sus señales de E/S. Conocer detalles
de diseño e implementación de la jerarquía memoria.
• Explicar las diferentes funcionalidades de una interfaz de E/S,
definir los parámetros principales y detallar el esquema bloques de
los diferentes subsistemas de entrada/salida.
• Describir las técnicas empleadas en el diseño de computadores
basadas en paralelismo y sus principios de funcionamiento.
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
19
Temas a discutir
• TEMA 1: Diseño Digital
• TEMA 2: Medición del Rendimiento de
Computadores
• TEMA 3: Diseño del Procesador.
• TEMA 4: Diseño e Implementación del Sistema de
Memoria
• TEMA 5: Entrada/Salida, Buses, Interfaces y
Periféricos
• TEMA 6: Arquitecturas de Computadores
Paralelos
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
20
¿Cómo aprovechar al máximo cada
clase?
• Lea sobre lo que se va a discutir con antelación
• Asista a la clase
– Preste atención a las discusiones que se presenten
– Haga preguntas, participe
• Haga los ejercicios que se plantean en clase
– Muchas veces el profesor selecciona éstos para los
parciales
• Inicie la tarea el día que se le entrega, no el día
final!!!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
21
¿Preguntas?
• ¿Dudas?, ¿Inquietudes?
• Hablemos de la organización y arquitectura
del computador!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
22
Agenda
• Aspectos administrativos de la materia
• Qué vamos a estudiar este semestre
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
23
8 grandes ideas en la arquitectura del
computador
1. Ley de Moore
2. Abstracción para simplificar el diseño
(Capas de Representación/Interpretación)
3. Hacer el caso común más rápido
4. Mejora del rendimiento: Paralelismo
5. Mejora del rendimiento: Segmentación
6. Mejora del rendimiento: Predicción
7. Principio de Localidad/Jerarquía de Memoria
8. Fiabilidad a través de la Redundancia
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
24
Introducción a los sistemas
computacionales
• Interruptor eléctrico (switch)
– Encendido/apagado (on/off)
– Binario
• Transistor
6/16/2014
El primer transistor en una mesa de trabajo
en los laboratorios ATT Bell en 1947
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
25
Ley de Moore
• ¿Quién es Moore?... Cofundador de Intel quien en 1965 planteó:
– El número de transistores que pueden ser integrados en una oblea se
dobla cada 18 a 24 meses (es decir, crece exponencialmente con el
tiempo)
• Un increible visionario!
–
–
–
–
2300 transistores, reloj de 1 MHz (Intel 4004) - 1971
16 millones de transistores (Ultra Sparc III)
42 millones de transistores, reloj 2 GHz (Intel Xeon) - 2001
55 millones de transistores, 3 GHz, tecnología de 130nm, oblea de
250mm2 (Intel Pentium 4) - 2004
– 290+ millones de transistores, 3 GHz (Intel Core 2 Duo) - 2007
– 721 millones de transistores, 2 GHz (Nehalem) - 2009
– 1.4 millardos de transistores, 3.4 GHz Intel Haswell (Quad core) - 2013
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
26
Número de transistores en un microprocesador
desde 1971-2011 & Ley de Moore
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
27
Número de transistores en un microprocesador
desde 1971-2011 & Ley de Moore
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
28
Paralelismo
CPU: Central Processing Unit
(Unidad Central de Procesamiento)
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
29
Los inicios y la época actual
• El primer transistor
• Un Intel Haswell
• 1.4 millardos de transistores
• Mesa de trabajo en los
• 177 milímetros cuadrados
AT&T Labs
• Cuatro núcleos de procesamiento
• 1947
• Bardeen, Brattain y Shockley
6002: Organización y Estructura del Computador II
6/16/2014
Semestre 1-2014 – Clase #1
30
Los inicios y la época actual
• El primer transistor
• Exynos 5 Octa de Samsung. Combina:
• Cortex-A15 cuatro-núcleos de alto rendimiento
• Mesa de trabajo en los
• Cortex-A7 cuatro-núcleos de bajo consumo
AT&T Labs
• Diseñado para tabletas y teléfonos inteligentes
• 1947
de alta gama (Galaxy Note 3, Galaxy S4)
• Bardeen, Brattain y Shockley
6002: Organización y Estructura del Computador II
6/16/2014
Semestre 1-2014 – Clase #1
31
Paralelismo
CPU: Central Processing Unit
(Unidad Central de Procesamiento)
6/16/2014
GPU: Graphics Processing Unit
(Unidad de Procesamiento “Gráfico”)
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
32
Los cómputos que se adaptan bien al
GPU ofrecen mayores GFlops
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
33
Supercomputadores
• Petaflops (1015)
– GPUs/multicore/100s-1000s cores
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
34
Se acabó el “free lunch” de la
programación monohilo!!!
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
35
¿Por qué los estudiantes de
computación necesitan esta materia?
• Funcionalidad y rendimiento
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
36
¿Por qué los estudiantes de
computación necesitan esta materia?
• Para ser mejores computistas
•
•
•
•
Abstracción: formas de simplificar la complejidad
¿Cómo está organizado un sistema computacional? ¿Cómo se contruye?
¿Cómo se programa? ¿cómo puede modificarse?
¿Cómo la organización/diseño afectan el rendimiento del computador?
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
37
Organización de un Computador
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
38
Dispositivos móviles personales
Personal Mobile Devices
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
39
Centros de cómputo a grandes escalas
Warehouse Scale Computer
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
40
Organización de un Sistema de
Sistema de Cómputo = ? Cómputo
Entrada +
Salida +
Memoria +
Camino de datos +
Control
Video
Keyboard
Network
Mouse
USB
Registers
bus
bus
Serial
CPU
Memory
6/16/2014
Disk
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
Audio
41
Niveles de código de un programa
• Lenguaje de alto nivel
– Nivel de abstracción más
cercano al dominio del
problema
– Se emplea para
productividad y
portabilidad
• Lenguaje ensamblador
– Representación textual de
las instrucciones
• Representación hardware
– Dígitos binarios (bits)
– Instrucciones y datos
codificados
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
42
Compiladores y Ensambladores
C
int x = 10;
x = 2 * x + 15;
r0 = 0
compiler
MIPS
assembly
language
addi r5, r0, 10
muli r5, r5, 2
addi r5, r5, 15
r5 = r0 + 10
r5 = r5 * 2
r5 = r15 + 15
assembler
MIPS
machine
language
6/16/2014
op = addi r0
r5
10
00100000000001010000000000001010
00000000000001010010100001000000
00100000101001010000000000001111
op = addi r5
r5
15
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
43
Arquitectura del Conjunto de
Instrucciones
• ISA
– Interfaz abstracta entre el hardware y el nivel más
bajo del software
– Porción del conjunto de instrucciones que
visualiza el usuario mas las interfaces del sistema
operativo utilizadas por los programadores de
aplicación
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
44
Computador sencillo
• Un procesador ejecuta instrucciones
– El procesador posee algún estado interno en los
elementos de almacenamiento (registros)
• Una memoria almacena instrucciones y datos
– Arquitectura von Neumann: instrucciones y datos
combinados
• Ambos están conectados por un bus
regs
procesador
6/16/2014
01010000
10010100
…
bus
dirección, datos,
r/w
memoria
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
45
¿Cómo diseñar un procesador simple?
10
r5
inst
memory
32
register file
r0
10
5 5 5
new pc
calculation
control
00: addi
04: muli
08: addi
6/16/2014
alu
2
00
pc
0
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
r5, r0, 10
r5, r5, 2
r5, r5, 15
46
Dentro del procesador
• AMD Barcelona: 4 processor cores
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
47
¿Cómo programar el procesador?
ISA MIPS R3000
• Categorias de las instrucciones
–
–
–
–
Registers
Carga/Almacenamiento
Computacionales
Saltos y bifurcaciones
Punto flotante
R0 - R31
PC
HI
• coprocesador
– Administración de memoria
OP
rs
rt
OP
rs
rt
OP
6/16/2014
LO
rd
sa
funct
immediate
jump target
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
48
Visión general de las materias Organización
y Estructura del Computador
Applicación (ej: navegador)
Compilador
Software
Hardware
Ensamblador
Procesador
Sistema
Operativo
(Linux)
Memoria Sistema de E/S
6001 y
6002
Arquitectura
del Conjunto de
Instrucciones
Camino de datos & Control
Diseño Digital
Diseño de Circuitos
Transistores
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
49
Aplicaciones
• En estos últimos años, casi todo!
– Teléfonos, carros, televisión, juegos,
computadores,…
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
50
Aplicaciones
1200
millions
1000
Cell Phones
PCs
TVs
785
800
Xilinx FPGA
600
400
200
405
502
295
265
202
200
189
136
135
114
110
93
0
1997
1999
2001
Computación
en Nube
2005
2007
Berkeley mote
NVidia GPU
6/16/2014
2003
Teléfonos celulares
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
Carros
51
Vamos a cubrir en Organización y
Estructura del Computador II
Applicación (ej: navegador)
Compilador
Software
Hardware
Ensamblador
Procesador
Sistema
Operativo
(Linux)
Memoria Sistema de E/S
Arquitectura
del Conjunto de
Instrucciones
Camino de datos & Control
Diseño Digital
Diseño de Circuitos
Transistores
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
6002
52
Importancia
• ¿Por qué esforzarme en esta materia?
– Se presenta conocimiento básico que es necesario para las
demás áreas de la ciencia de la computación:
• Sistemas operativos, compiladores, …
– Los niveles no son independientes
• Diseño del hardware ↔ diseño del software ↔ rendimiento
– Atravesar estas fronteras es retador, pero importante
• Manejadores de dispositivos
– Técnicas de diseño importantes
• Abstracción, organización en capas, segmentación, paralelo vs.
serial, …
– Comprender los cambios tecnológicos que acontecen
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
53
Resumen
• Cómo se diseñan componentes sencillos
empleando la lógica digital
• Estudiaremos los detalles de implementación
de un procesador
• Procesadores segmentados
• Cómo se puede lograr programación de alto
rendimiento aprovechando el paralelismo
6/16/2014
6002: Organización y Estructura del Computador II
Semestre 1-2014 – Clase #1
54
Descargar