Profesor | Luis German Pérez Hernández | lu mi | 13 a 14:30 | 004 (Yelizcalli) |
Ayudante | Daniel Michel Tavera | ma ju | 13 a 14 | 004 (Yelizcalli) |
Ayud. Lab. | Fernando Michel Tavera | vi | 12 a 14 | Taller de Sistemas Operativos, Redes de Cómputo, Sistemas Distribuidos y Manejo de Información |
El presente curso, aunque será impartido en la modalidad presencial, por cuestiones de la pandemia las primeras 4 semanas serán impartidas en línea (del 14 de febrero al 12 de marzo), utilizando un aula virtual de “Google Classroom”.
Google Classroom del grupo:
https://classroom.google.com/c/NDY1MDM4OTY5MDc4?cjc=u5pimsf
Código de la clase: u5pimsf
.Las clases en línea se impartirán por videoconferencia por medio de la herramienta “ZOOM”, las cual se les enviará el enlace utilizando el aula virtual y se realizarán en el horario indicado por la facultad.
Para los estudiantes que no puedan asistir a la primera clase (o alguna posterior en las primeras 4 semanas), se grabarán dichas sesiones y se subirán al aula virtual. Por ello es necesario que se inscriban al aula virtual para que tengan acceso al material del curso. Si tienen alguna pregunta por favor escriban un correo al profesor o a los ayudantes.
Este curso está dirigido a cualquier estudiante de las carreas de Ciencias de la Computación, Matemáticas, Física y Actuaría con conocimientos previos de programación.
Introducción:
La materia de Organización y Arquitectura de Computadoras estudia los atributos físicos de los sistemas de cómputo, la cual el programador debe de considerar para la elaboración de sus programas. Dichos atributos tienen un impacto directo en la ejecución lógica del programa.
También se estudia las unidades funcionales de los sistemas de cómputo y sus interconexiones, que dan lugar a sus especificaciones arquitectónicas.
Temario:
I. Principios cuantitativos del diseño de arquitecturas
I.1 Tendencias tecnológicas y de uso.
1.2 Medidas de desempeño de equipo de cómputo.
II. Representación de datos en una computadora digital
II.1 Sistemas numéricos posicionales.
II.2 Sistemas numéricos bases 2, 8 y 16.
II.3 Representación de enteros con signo en una computadora digital
II.4 Representación de enteros con signo en una computadora digital
III. Álgebra booleana
III.1 Postulados del álgebra booleana
III.2 Formas normales conjuntivas y disjuntivas
III.3 Minimización de funciones
IV. Circuitos combinacionales y secuenciales
IV.1 Circuitos combinacionales elementales: sumadores, comparadores, decodificadores y multiplexores
IV.2 Cerrojos (latches) SR, JK, D, maestro-esclavo
IV.3 Diagramas de estado, diseño de circuitos secuenciales
V. Diseño del conjunto de instrucciones
V.1 Tipos de arquitectura del conjunto de instrucciones
V.2 Arquitecturas load-store y su relación costo-beneficio
V.3 Tipos y tamaño de operandos
V.4 Modos de direccionamiento
V.5 Formatos de instrucción y su proceso de ejecución
I Principios cuantitativos del diseño de arquitecturas
II Representación de datos en una computadora digital
III Álgebra booleana
IV Circuitos combinacionales y secuenciales
V Diseño del conjunto de instrucciones
VI Unidad de control
VII Cause segmentado de ejecución (pipeline)
VIII La relación hardware-software
IX La jerarquía de memoria
X Entrada/Salida y canales
XI Sistemas multiprocesador
XII Arquitecturas de vanguardia
VI. Unidad de control
VI.1 El diagrama de flujo de datos (datapath).
VI.2 Señales de control.
VI.3 Unidades de control microprogramadas y alambradas (hardwired)
VII. Cause segmentado de ejecución (pipeline)
VII.1 Paralelismo a nivel de instrucción (ILP)
VII.2 Diseño de un procesador con cause segmentado
VII.3 Conictos (hazards) de control y de datos
VII.4 Esquemas de predicción de salto, salto retardado (delayed branch)
VIII. La relación hardware-software
VIII.1 El papel del compilador en el desempeño del sistema
VIII.2 La relación entre el sistema operativo y el hardware
IX. La jerarquía de memoria
IX.1 Principio de localidad espacial y temporal
IX.2 Esquemas de colocación de bloques en un cache
IX.3 Políticas de reemplazo de bloque en los caches
IX.4 Manejo de escrituras en el cache
IX.5 Coherencia, conceptos y protocolos
IX.6 Memoria virtual
X. Entrada/Salida y canales
X.1 Canales, conceptos y sincronización
X.2 Esquemas de arbitraje de canal
X.3 Dispositivos de almacenamiento secundario, medidas de desempeño
XI. Sistemas multiprocesador
XI.1 Clasificación de Flynn
XI.2 Arquitecturas paralelas con memoria distribuida
XI.3 Arquitecturas paralelas con memoria centralizada
XI.4 Factores limitantes de la ley de Moore
XI.5 Paralelismo a nivel de hilo de ejecución (Thread Level Parallelism)
XI.6 Arquitecturas multinúcleo
XII. Arquitecturas de vanguardia
XII.1 Ejecución fuera de orden, despacho dinámico
XII.2 Arquitecturas VLIW y EPIC
XII.3 Especulación, predicación, soporte para software pipeline.
Forma de evaluación:
3 exámenes parciales y 3 prácticas con 1 adicional de recuperación. Los detalles se darán conocer en la 1ra sesión del curso y se podrá modificar dicha evaluación.
Horario:
Grupo 7065.
Profesor: Luis German Pérez Hernández. Días de clase: lunes y miércoles de 13 a 14:30
Ayudante: Daniel Michel Tavera. Días de clase: martes y jueves de 13 a 14
Ayudante de Laboratorio: Fernando Michel Tavera. Días de clase: viernes de 12 a 14
Correos:
Profesor: german.perez@ciencias.unam.mx
Ayudantes: daniel_michel@ciencias.unam.mx
fernando_michel@ciencias.unam.mx