Vous êtes sur la page 1sur 8

x

Programa del curso IC-3101

Arquitectura de Computadoras

Escuela de Computación
Carrera de Ingeniería de Computación, Plan 410.
I parte: Aspectos relativos al plan de estudios

1 Datos generales

Nombre del curso: Arquitectura de Computadoras

Código: IC-3101

Tipo de curso: Teórico - Práctico

Nº de créditos: 4
Nº horas de clase por
4
semana:
Nº horas extraclase por
8
semana:

Curso del 2° semestre dela carrera de Ingeniería


Ubicación en el plan de
en Computación
estudios:
IC1400 Fundamentos de Organización de
Requisitos: Computadoras.

Correquisitos: IC-2001 Estructuras de Datos

El curso es requisito de: Ninguno

Asistencia: Obligatoria

Suficiencia: No.
Posibilidad de
No.
reconocimiento:
Vigencia del programa: I semestre 2012.

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 2 de 81


2 En este curso se estudiarán todos aquellos recursos de la
Descripción computadora que son visibles al programador de bajo nivel. El
general estudiante será preparado en programación en lenguaje
ensamblador para una arquitectura particular, aunque al mismo
tiempo se estudian conceptos arquitectónicos presentes de manera
extendida en computadoras actuales.

3 Objetivos Objetivo General


Analizar el conocimiento sobre una arquitectura de computadoras
actual para la programación desde una perspectiva de bajo nivel.

Objetivos Específicos
 Programar de manera competente en el lenguaje
ensamblador de al menos una arquitectura.

 Entender los alcances y limitaciones que una arquitectura


establece a un potencial programador.

 Dominar conceptos universales de Arquitectura de


Computadoras presentes en diversas computadoras
actuales.

 Comprender el funcionamiento general de sistemas


empotrados.

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 3 de 81


Contenido Introducción (1 semana)
s
 Organización vs. Arquitectura de Computadoras

 Conceptos generales y Repaso histórico

 Medidas de rendimiento

 ¿Por qué aprender ensamblador?

 Arquitectura ejemplo

Infraestructura de software (0.5 semanas)

 Ensamblador

 Linker

 Loader

 Lenguajes de Alto nivel

 Simuladores

 Relación con Sistema Operativo

Aritmética para computadoras (2 semanas)

 Repaso Sistemas Numéricos

 Diseño general de una ALU

 Enteros con y sin signo

 Suma, resta y operaciones lógicas

 Multiplicación y División

 Punto Flotante

 Aproximaciones

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 4 de 81


Lenguaje Ensamblador (6 semanas)

 Conceptos introductorios.

 Formatos de Instrucción.

 Modos de Direccionamiento.

 Conjunto de instrucciones básico.

 Proceso de ensamblaje - desensamblaje.

 Programación básica con el ensamblador (aritmética y flujo


de control).

 Paso de parámetros y construcción de rutinas.

 Macros y preensamblaje.

 Directivas y Operadores avanzados.

 Modularización, “Linking” y “Loading"

 Formatos de módulos ejecutables

 Comunicación entre Programas

Pipeline y modelos de alto rendimiento (2 semanas)

 Introducción y conceptos básicos

 Paralelismo vs concurrencia

 Pipeline conceptos y dificultades de implantación

 Pipeline de instrucciones

 Predicción de bifurcaciones

 Otros modelos de alto rendimiento

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 5 de 81


RISC vs CISC (0.5 semanas)

 Diferencias y características de ejecución

 Ventajas de CISC y Ventajas de RISC

Entrada/Salida (1 semana)

 Conceptos básicos

 Tipos y características de dispositivos de E/S

 Interfaces E/S con memoria, CPU y Sistema Operativo

 DMA – E/S mapeada a memoria

 Diseño de Sistemas de E/S

Multiprocesadores (2 semanas)

 Introducción

 Conceptos de Programación

 Organizaciones

 Interconection Network

 Sistemas Multicore

 Threads de hardware

 Multiprocesadores y jerarquía de memorias

 Protocolos de coherencia

Sistemas empotrados (1 semana)

 Definiciones

 System-on-chip

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 6 de 81


 Aplicaciones

II parte: Aspectos operativos

5 Clases magistrales donde el profesor desarrollará el material teórico


Metodología asociado al curso. Se seguirán dos grandes ramas: entrenamiento
de en programación ensamblador y conceptos de arquitectura de
enseñanza y computadoras. Se recomienda estos dos temas que no sean
cubiertos de manera secuencial, sino de manera intercalada para
aprendizaje
una mejor comprensión e ilustración de los temas aprendidos en
cada rama. Los estudiantes deberán estudiar independientemente
material adicional asignado en la forma de lecturas o
investigaciones bibliográficas, y desarrollarán una serie de
proyectos de programación en lenguaje ensamblador usando
preferiblemente equipos instalados en nuestros laboratorios o en su
defecto recurriendo a simuladores de software de las arquitecturas
estudiadas. En lo posible se contrastará el ensamblador ejemplo
con algún otro ensamblador que permita apreciar diferencias
sustanciales entre ellos.

6 Evaluación A continuación se detalla la evaluación del curso:

Porcentaje
Presentaciones (charlas) en clase (2) 10 %
Asignaciones y Pruebas Cortas (~n) 20 %
Laboratorios (~6) 30 %
Proyectos programados (2). 30 %
Examen 10 %
Total 100%

El contenido académico de las actividades, llámense tareas o


pruebas cortas, son acumulativos. Las pruebas cortas se efectuarán
en el momento de la clase que el profesor considere más
apropiado. El porcentaje de las pruebas cortas y tareas será el
promedio de las notas obtenidas en cada una de ellas. Las pruebas
cortas no se reponen, se debe llegar a tiempo a las presentaciones.

  

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 7 de 81


7 John Henessy, David Patterson, "Computer Architecture: A
Bibliografía Quantitative Approach", 5ta. Edición, Morgan Kauffman, 2012.

Tanenbaum, Andrew, "Structured Computer Organization", 5ta.


Edición, Prentice Hall, 2005.

Duran, Luis. El gran libro del PC Interno. Grupo Marcombo ediciones


técnicas, primera edición, Barcelona 2007

Irving, Kip. Lenguaje Ensamblador para computadoras basadas en


Intel. Pearson Prentice Hall. Quinta edición. México, 2008

David Patterson, John Henessy, "Computer Organization & Design",


4ta. Edición, Morgan Kauffman, 2009.

Stallings, William. Organización y Arquitectura de Computadores.


Pearson Educación, setima edición, México 2006.

William Hohl, "ARM Assembly Language", CRC Press, 2009

Steve Furber, "ARM System-on-Chip Architecture", Pearon


Education, 2000

Englander, Irv. Arquitectura computacional. Compañía editorial


continental, primera edición, México 2002

Thomas Rauber y Gudula Rünger, "Parallel Programming: for


Multicore and Cluster Systems". Editorial Springer-Verlag. Alemania
2010.

8 Profesor Ing. Jaime Gutiérrez Alfaro.


Correo electrónico: jaime.cr@gmail.com
Sitio web: http://www.ic-itcr.ac.cr/~jgutierrez

Horario y lugar de consulta: martes de 17:00 a 18:00, jueves de


13:00 a 14:00; Laboratorio Experimental.

Escuela de Computación - Carrera de Ingeniería de Computación, Plan 410 Página | 8 de 81

Vous aimerez peut-être aussi