Aumentar letras   Inicio   Información   Contactar   Mapa
Català   English

Estructura de Computadores 2 (EC2)

Créditos Dept. Tipo Requisitos
7.5 (6.0 ECTS) AC
  • Obligatoria para la EI
  • Obligatoria para la ETIS
  • Optativa para la ETIG
EC1 - Prerequisito para la EI , ETIG , ETIS
IC - Prerequisito para la EI , ETIG , ETIS
P1 - Prerequisito para la EI , ETIG , ETIS

Profesores

Responsable:  Josep Llosa Espuny (josepll@ac.upc.edu)
Otros:Carlos Alvarez Martinez (calvarez@ac.upc.edu)
Josep Sole Clotet (joseps@ac.upc.edu)
Montserrat Fernández Barta (montsef@ac.upc.edu)

Objectivos Generales

En las asignaturas previas (IC y EC1) el estudiante ha adquirido los conocimientos básicos de cómo funciona un computador. Todas las prácticas, los ejercicios y los problemas han sido realizados sobre computadores pedagógicos y simuladores. El objetivo principal de EC2 es que el estudiante profundice en los conocimientos ya adquiridos y que los aplique sobre un computador real: un PC compatible basado en un procesador IA32.

Objectivos Específicos

Conocimientos

  1. El alumno ha de conocer el Lenguaje Máquina de un procesador comercial (IA32).
  2. El alumno ha de conocer los dispositivos básicos de entrada/salida en una máquina real (PC compatible).
  3. El alumno ha de comprender las implicaciones que tiene en el rendimiento del computador la velocidad, el ancho de banda y la jerarquía de buses.
  4. Dada una configuración del subsistema de entrada/salida, el alumno debería ser capaz de escoger la que obtenga mejor rendimiento.

Habilidades

  1. El alumno ha de ser capaz de realizar programas de 15-25 líneas en ensamblador de una máquina real (IA32).
  2. El alumno ha de ser capaz de enlazar programas escritos en ensamblador con programas escritos en C, llamando desde alto nivel a una rutina escrita en ensamblador y viceversa. Incluye el paso de parámetros y la gestión de las variables locales. El alumno ha de ser capaz de traducir código escrito en C a ensamblador. El código generado ha de ser razonablemente eficiente.
  3. El alumno ha de aprender a desarrollar programas en C y ensamblador en un entorno de trabajo Linux. El alumno ha de ser capaz de utilizar un depurador (debugger) para eliminar errores en un programa en ensamblador y C.
  4. El alumno ha de ser capaz de programar operaciones básicas de entrada/salida, utilizando sincronización por encuesta y por interrupciones.
  5. El alumno ha de comprender y saber evaluar los esquemas básicos de memorias cache que incluyen: mapeos, diferentes tamaños de cache y de línea, políticas de escritura, algoritmos de reemplazo, y varios niveles de cache.
  6. El alumno ha de saber evaluar el impacto de realizar transformaciones simples en un programa escrito en C cuando éste se ejecuta en procesador con una configuración dada de Memoria Cache.

Competencias

  1. Capacidad de abstracción. Capacidad para enfrentarse a problemas nuevos recurriendo conscientemente a estrategias que han resultado útiles en problemas resueltos anteriormente.
  2. Capacidad de análisis y de síntesis.
  3. Capacidad para trabajar efectivamente en grupos pequeños de personas para la resolución de un problema de dificultad media.

Contenidos

Horas estimadas de:

T P L Alt L Ext. Est O. Ext.
Teoria Problemas Laboratorio Otras actividades Laboratorio externo Estudio Otras horas fuera del horario fijado

1. Ensamblador del IA32
T      P      L      Alt    L Ext. Est    O. Ext. Total 
12,0 8,0 6,0 0 12,0 20,0 0 58,0
En este tema se pretende que los alumnos practiquen con un ensamblador real en una máquina real. El procesador escogido es el utilizado en los PCs compatibles (Intel Pentium y AMD). El ensamblador escogido es el IA32. El entorno de trabajo será el SO Linux.

2. Subsistema de Memoria
T      P      L      Alt    L Ext. Est    O. Ext. Total 
13,0 7,0 4,0 0 8,0 20,0 0 52,0
En este tema se repasarán los conceptos ya conocidos de Entrada / Salida (encuesta, interrupciones, DMA, periféricos, etc). Se estudiarán los dispositivos reales de un PC compatible.En este tema también se estudiarán los elementos de interconexión de un computador: los buses, haciendo énfasis en los buses estándar y en la jerarquía de buses.

3. Entrada/Salida
T      P      L      Alt    L Ext. Est    O. Ext. Total 
10,0 2,0 1,0 0 2,0 12,0 0 27,0
En este tema se repasarán los conceptos ya conocidos de Entrada / Salida (encuesta, interrupciones, DMA, periféricos, etc). Se estudiarán los dispositivos reales de un PC compatible.En este tema también se estudiarán los elementos de interconexión de un computador: los buses, haciendo énfasis en los buses estándar y en la jerarquía de buses.


Total por tipo T      P      L      Alt    L Ext. Est    O. Ext. Total 
35,0 17,0 11,0 0 22,0 52,0 0 137,0
Horas adicionales dedicadas a la evaluación 3,0
Total horas de trabajo para el estudiante 140,0

Metodología docente

La asignatura tiene 5 horas de clase por semana: 4 de teoría y problemas y 1 de laboratorio.Las clases de laboratorio servirán de soporte a la teoría. Los alumnos dispondrán de la información de prácticas antes de cada sesión. Es recomendable que los alumnos preparen la práctica antes de realizarla (leer la documentación, estudiar los conceptos utilizados, etc). Igualmente es recomendable, una vez acabada la sesión, repasar los conceptos vistos.

No se hará una distinción explícita entre las clases de teoría y problemas, sino que se irán distribuyendo en función de las necesidadas de cada tema.

En esta asignatura se pretende realizar una evaluación continuada. Durante el curso se realizarán 3 exámenes. Si el alumno supera satisfactoriamente la evaluación continuada no será necesario que realice el examen final.

Método de evaluación

La nota de la asignatura se calculará a partir de 2 notas:
- Nota de contenidos teóricos (peso 80%).
- Nota de laboratorio o contenidos prácticos (peso 20%).

La nota de laboratorio se obtendrá a partir de las notas de seguimiento de las sesiones de prácticas que elabora cada profesor.

La nota de contenidos teóricos se puede obtener por controles a lo largo del cuso o bien en el examen final. Durante el curso se realizarán 3 controles teóricos (C1 Lenguaje Máquina, peso 33%; C2 Jerarquía, peso 33%; C3 Memoria Virtual y Entrada/Salida, peso 33%). El alumno que supere la parte de contenidos teóricos por medio de los controles quedará liberado, si quiere, del examen final. Los alumnos que se presenten al examen final perderán la nota de los controles de clase.

Bibliografía básica

  • Computer Systems: A Programmer's Perspective, Prentice Hall, 2003.
  • David A. Patterson and John L. Hennessy , Ed. Reverté S.A., 2000.

Bibliografía complementaria

(Información no introducida)

Enlaces web

(Información no introducida)

Capacidades previas

- El alumno ha de ser capaz de programar rutinas sencillas en un ensamblador cualquiera.
- El alumno ha de ser capaz de programar rutinas de complejidad media en un Lenguaje de Alto Nivel Cualquiera.
- El alumno ha de tener conocimientos básicos de circuitos digitales.
- El alumno ha de tener conocimientos básicos de aritmética binaria.



 
logo FIB © Facultad de Informática de Barcelona - webmaster@fib.upc.edu - RSS RSS