Arquitectura de Computadores

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
  • Prerrequisito: EC
  • Prerrequisito: SO
  • Precorrequisito: PE
Departamento
AC
El objetivo general es comprender cómo funciona un computador actual y los fundamentos de diseño y evaluación de los computadores. Se cubre el impacto de las decisiones de diseño en el rendimiento, potencia, consumo energético, coste y fiabilidad. Se tratan temas como jerarquía de memoria, memoria virtual, sistemas de almacenamiento, juego de instrucciones y técnicas avanzadas como segmentación, procesadores superescalares y multiprocesadores. Poniendo también cierto énfasis en la interacción hardware/software para lograr el rendimiento.

Profesorado

Responsable

  • Josep Llosa Espuny ( )

Otros

  • Miquel Moretó Planas ( )
  • Teresa Monreal Arnal ( )
  • Victor Soria Pardos ( )

Horas semanales

Teoría
2
Problemas
1
Laboratorio
1
Aprendizaje dirigido
0.4
Aprendizaje autónomo
5.6

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT2 - Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
    • CT2.3 - Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
    • CT2.4 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los Sistemas de información, incluidos los basados en web.
  • CT3 - Demostrar conocimiento y comprensión del contexto organizativo, económico y legal en el que desarrolla su trabajo (Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa, organización y gestión de empresas.)
    • CT3.6 - Demostrar conocimiento de la dimensión ética en la empresa: la responsabilidad social y corporativa en general y, en particular, las responsabilidades civiles y profesionales del ingeniero en informática.
  • CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
    • CT5.2 - Conocer, diseñar y utilizar de forma eficiente los tipos y las estructuras de datos más adecuados para la resolución de un problema.
  • CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
    • CT6.2 - Demostrar conocimiento, comprensión y capacidad de evaluar la estructura y la arquitectura de los computadores, así como los componentes básicos que los conforman.
  • CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
    • CT7.1 - Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
    • CT7.2 - Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
    • CT7.3 - Determinar los factores que inciden negativamente en la seguridad y la fiabilidad de un sistema hardware/software, y minimizar sus efectos.
  • CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
    • CT8.1 - Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
    • CT8.4 - Elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y la normativa vigente.

Competencias Transversales

Sostenibilidad y compromiso social

  • G2 [Avaluable] - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental
    • G2.2 - Aplicar criterios de sostenibilidad y los códigos deontológicos de la profesión en el diseño y la evaluación de soluciones tecnológicas. Identificar la necesidad de aplicar la legislación, regulaciones y normativas, en particular las que afectan al ejercicio de la profesión de ingeniero técnico en informática. Analizar y valorar el impacto medioambiental de las soluciones técnicas en el ámbito TIC.

Objetivos

  1. El alumno debe ser capaz de traducir rutinas y fragmentos de código de alto nivel a ensamblador de una máquina real (IA32) y enlazar rutinas en ensamblador con un lenguaje de alto nivel (C) utilizando la Interfaz Binaria de Aplicaciones de Linux.
    Competencias relacionadas: CT5.2,
  2. El alumno debe ser capaz de describir la estructura interna y funcionamiento de los principales componentes de la jerarquía de memoria y las técnicas para mejorar su rendimiento.
    Competencias relacionadas: CT8.1, CT7.2, CT6.2,
  3. El alumno debe ser capaz de describir el funcionamiento y utilizar los principales mecanismos de detección y corrección de errores.
    Competencias relacionadas: CT7.3, CT2.3,
  4. El alumno debe ser capaz de describir la estructura y funcionamiento de los sistemas de almacenamiento de datos y evaluar su fiabilidad.
    Competencias relacionadas: CT8.1, CT7.2, CT7.3, CT6.2, CT2.4,
  5. El alumno debe ser capaz de describir la taxonomía de los lenguajes máquina (ISA) y los rasgos característicos de los diferentes paradigmas (como RISC-CISC).
    Competencias relacionadas: CT7.2, CT6.2,
  6. El alumno debe de ser capaz de describir las técnicas empleadas en el diseño de computadores basadas en paralelismo (como: segmentación, procesadores superescalares, procesadores VLIW, extensiones vectoriales y SIMD, procesadores multihilo, multiprocesadores y multicomputadores) y sus principios de funcionamiento.
    Competencias relacionadas: CT7.2, CT6.2, CT2.3,
  7. El alumno debe ser capaz de evaluar el rendimiento de fragmentos de código y / o aplicaciones (tanto en ensamblador como en alto nivel) teniendo en cuenta componentes como: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
    Competencias relacionadas: CT7.1, CT7.2, CT6.2, CT5.2, CT2.3,
  8. El alumno debe ser capaz de evaluar el impacto en la potencia y el consumo energético de fragmentos de código y / o aplicaciones (tanto en ensamblador como en alto nivel) teniendo en cuenta componentes como: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
    Competencias relacionadas: G2.2, CT7.1, CT7.2, CT6.2, CT8.4, CT3.6,
  9. El alumno debe ser capaz de aplicar optimizaciones sencillas en fragmentos de código para mejorar su rendimiento y / o consumo teniendo en cuenta: la jerarquía de memoria, los sistemas de almacenamiento, el diseño del lenguaje máquina (ISA) y las principales técnicas de diseño de procesadores basadas en paralelismo.
    Competencias relacionadas: CT7.1, CT5.2,

Contenidos

  1. Fundamentos de diseño y evaluación de computadores
  2. Interfaz alto nivel-ensamblador
  3. Jerarquía de memoria
  4. Sistemas de almacenamiento
  5. Diseño del juego de instrucciones
  6. Segmentación y paralelismo en el diseño de computadores

Actividades

Actividad Acto evaluativo


C1


Objetivos: 1 2 7 8 9
Semana: 8 (Fuera de horario lectivo)
Teoría
0h
Problemas
2h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Fundamentos de diseño y evaluación de computadores


Objetivos: 7 8
Contenidos:
Teoría
4h
Problemas
2h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7h

Interfaz alto nivel-ensamblador


Objetivos: 1 7 8 9
Contenidos:
Teoría
4h
Problemas
3h
Laboratorio
5h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h

C2


Objetivos: 1 2 3 4 5 6 7 8 9
Semana: 15 (Fuera de horario lectivo)
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7h

Jerarquía de memoria


Objetivos: 2 3 7 8 9
Contenidos:
Teoría
10h
Problemas
5h
Laboratorio
5h
Aprendizaje dirigido
0h
Aprendizaje autónomo
28h

Sistemas de almacenamiento


Objetivos: 3 4 7 8 9
Contenidos:
Teoría
4h
Problemas
1h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Diseño del juego de instrucciones


Objetivos: 5 7 8 9
Contenidos:
Teoría
2h
Problemas
1h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Segmentación y paralelismo en el diseño de computadores


Objetivos: 6 7 8 9
Contenidos:
Teoría
3h
Problemas
1h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
2h
Aprendizaje autónomo
1h

Documental "The E-Waste Tragedy" + debat



Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
2h
Aprendizaje autónomo
1h

Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
2h
Aprendizaje autónomo
1h

Metodología docente

Clases de teoría magistrales con algún problema pequeño intercalado. En las clases de teoría se pondrán problemas a los estudiantes para la siguiente clase de problemas.

En las clases de problemas se harán actividades en grupo. A partir de la resolución individual de los problemas hechos en casa, los estudiantes harán una puesta en común en grupo y resolverán las dudas que hayan podido surgir. Debido a la metodología empleada en las clases de problemas se recomienda que los estudiantes no se matriculen con solapamiento, ya que las actividades de grupo serán realizadas al grupo que están matriculados.

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 fundamental 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. Los estudiantes deben preparar un trabajo previo que entregarán al principio de cada sesión. Las sesiones de laboratorio son presenciales y evaluables, y se realizan en el grupo que está matriculado el alumno, por tanto es imprescindible que no haya solapamientos con el laboratorio a la hora de hacer la matriculación.

Método de evaluación

La evaluación se hace a partir de los dos controles (C1 y C2), la nota de laboratorio (LAB) y la nota de actividad en problemas (AP).

La nota final (NF) se calcula (con un solo decimal y redondeo al par) como:
NF = 0,3*C1 + 0,4*C2 + 0,2* LAB + 0,1* AP

Los estudiantes sólo serán evaluados de LAB y AP si ASISTEN a las clases del GRUPO DONDE ESTÁN MATRICULADOS.

Bibliografía

Básica:

Complementaria:

Capacidades previas

Conocimientos de estadística y probabilidad, sistemas operativos, circuitos digitales y estructura de computadores.