HORARIO
Teoría y problemas:
Lunes: de 11 a 12h.
Martes y jueves de 9 a 10 h.
Aula 07. Escuela Técnica Superior de Ingeniería Informática.
Prácticas:
Lunes y martes por la tarde de 16 a 18h. (un día para cada grupo)
Laboratorio L104. Escuela Técnica Superior de Ingeniería Informática.
OBJETIVOS
El objetivo primordial de esta asignatura es familiarizar al alumno con el
funcionamiento del ordenador desde el punto de vista externo pero al nivel más
bajo. Se pretende que se consiga la comprensión del funcionamiento de la
interfaz hardware-software en un computador. Si el alumno llega a comprender
el computador a este nivel podrá entender las consecuencias de errores al más
bajo nivel que repercutan en capas más altas del sistemas informático.
Se pretende también alcanzar objetivos más generales como desarrollar la capacidad de trabajo en equipo y mejorar la expresión oral y escrita.
RECOMENDACIONES PREVIAS
Se recomienda haber cursado previamente las asignaturas de Fundamentos de
Informática del primer curso.
No se recomienda en absoluto el aprendizaje memorístico, sino la comprensión de los conceptos para luego utilizarlos
en la resolución de problemas.
El material didáctico que se aporta no contiene toda la asignatura.
Este material debe ser complementado con consultas bibliográficas y otros materiales.
En el transcurso de las explicaciones se completarán los materiales didácticos aportados,
así como pautas para resolver problemas .
Arriba
CONTENIDOS
Teóricos
-
CONCEPTOS FUNDAMENTALES
- 1.1.- Origen de los computadores
- 1.2.- Breve reseña histórica
- 1.2.1.- La era mecánica de los computadores
- 1.2.2.- La era electrónica de los computadores
- 1.2.3.- Generaciones de ordenadores
- 1.2.4.- Tendencias actuales
- 1.3.- Requisitos mínimos para la computación
- 1.4.- Máquinas de Turing
- 1.5.- Limitaciones de los computadores
- 1.6.- El modelo de Von Neumann
- 1.7.- Unidades funcionales
- 1.8.- Ejecución de las instrucciones
- 1.9.- Clasificaciones de los procesadores
- 1.10.- Concepto de arquitectura de un computador
- 1.11.- Niveles de estudio y descripción de un computador
- 1.12.- Máquinas multinivel
- 1.13.- Ejemplos de arquitecturas reales
- 1.13.1.- PDP-11
- 1.13.2.- VAX
- 1.13.3.- IBM-360/370
- 1.13.4.- HP-3000
- 1.13.5.- Z-80
- 1.13.6.- MC68000 y derivados
- 1.13.7.- i-8086 y derivados
- 1.13.8.- Arquitectura Alpha
- 1.13.9.- Sun SPARC
-
FORMATOS DE INSTRUCCIÓN
- 2.1.- Introducción
- 2.2.- Criterios de diseño de los formatos de instrucción
- 2.3.- Número de direcciones
- 2.4.- Instrucciones con longitud variable
- 2.5.- Instrucciones con código de operación de longitud variable
- 2.5.1.- Codificación de Huffman
- 2.5.2.- Códigos de operación con extensión
- 2.6.- Ejemplos de formatos de instrucción en computadores reales
- 2.6.1.- PDP-11
- 2.6.2.- VAX
- 2.6.3.- MC68000 y derivados
- 2.6.4.- IBM-360/370
- 2.6.5.- Z-80
- 2.6.6.- i-8086 y derivados
- 2.6.7.- Arquitectura Alpha
- 2.6.8.- Sun SPARC
- MODOS DE DIRECCIONAMIENTO
- 3.1.- Introducción
- 3.2.- Modos de direccionamiento más usuales
- 3.2.1.- Direccionamiento implícito
- 3.2.2.- Direccionamiento inmediato (o literal)
- 3.2.3.- Direccionamiento directo por registro
- 3.2.4.- Direccionamiento directo (o absoluto)
- 3.2.5.- Direccionamiento indirecto
- 3.2.6.- Direccionamiento relativo
- 3.2.7.- Direccionamiento por base y desplazamiento
- 3.2.8.- Direccionamiento indexado
- 3.2.9.- Direccionamiento autoincremental o postincremental
- 3.2.10.- Direccionamiento autodecremental o predecremental
- 3.3.- Visión general de los modos de direccionamiento
- 3.4.- Modos de direccionamiento en ordenadores reales
- 3.4.1.- PDP-11
- 3.4.2.- VAX
- 3.4.3.- MC68000 y derivados
- 3.4.4.- i-8086 y derivados
- CONJUNTOS DE INSTRUCCIONES
- 4.1.- Introducción
- 4.2.- Características generales de los conjuntos de instrucciones
- 4.3.- Tipos de instrucciones
- 4.3.1.- Instrucciones de transferencia de datos
- 4.3.2.- Instrucciones aritméticas y lógicas
- 4.4.- Instrucciones de control del flujo de programa
- 4.4.1.- Instrucciones de bifurcación
- 4.4.2.- Iteraciones
- 4.4.3.- Procedimientos
- 4.4.4.- Corrutinas
- 4.4.5.- Desvíos o excepciones (traps)
- 4.4.6.- Interrupciones
- 4.4.7.- Instrucciones de control de flujo en el VAX
- 4.5.- Relación entre el lenguaje máquina y los lenguajes de alto nivel
- 4.5.1.- Clases de variables
- 4.5.2.- Direccionamiento de estructuras de datos
- 4.6.- Características de los ordenadores RISC
Prácticos
Las prácticas consistirán en trabajos que se desarrollarán en el
laboratorio y básicamente serán programas en lenguaje ensamblador para
arquitectura SPARC.
Arriba
METODOLOGÍA
Clases de teoría
-
Clases magistrales para los contenidos más complicados.
- Preguntas de los alumnos sobre los contenidos de comprensión más sencilla,
previamente estudiados, sin necesidad de clase magistral.
-
Los ejemplos (apartados 1.13, 2.6 , 3.4 y 4.4.7) se prepararán mediante grupos
de trabajo (cada grupo estudiará los diferentes aspectos de una misma
arquitectura). Un componente de cada grupo, aleatoriamente escogido, expondrá
ante todos sus compañeros cada uno de esos aspectos. Estos grupos de trabajo
estarán formados por 3 personas. La pertenencia de los alumnos a estos grupos
de trabajo será voluntaria pero incidirá en la calificación final (ver el
apartado Evaluación).
-
También se ha previsto una hora de seminario al finalizar la docencia de la
asignara para que los alumnos planteen dudas. Por supuesto, la resolución de
dudas no está restringida a este seminario, también puede efectuarse en
cualquier otro tipo de clases.
Clases de problemas
Se propondrán problemas para que los alumnos resuelvan por sí mismos. Durante
las clases de problemas alumnos voluntarios, o en su defecto aleatoriamente
escogidos, resolverán algunos de esos problemas. El profesor solucionará las
dudas que se planteen durante la resolución de los mismos y recalcará los
aspectos más importantes. Los alumnos que se presten voluntarios a resolver
problemas en la pizarra serán recompensados con notas adicionales (ver el
apartado Evaluación).
Clases de laboratorio
En las primeras sesiones de laboratorio se propondrán pequeños ejercicios de
programación para que el alumno se familiarice con el lenguaje ensamblador de la arquitectura
SPARC. Una vez que los alumnos hayan conseguido suficiente destreza con el
citado lenguaje de programación, se mandarán trabajos evaluables más extensos
para hacer en grupos de dos personas.
Arriba
EVALUACIÓN
Consideraciones Generales
Examen ordinario escrito en febrero y extraordinario en julio. Los exámenes
tendrán tanto preguntas teóricas como problemas, así como una pregunta relativa
a los contenidos prácticos.
Para superar la asignatura será necesario superar de forma satisfactoria e
independiente sus partes teórica y práctica.
Para el examen escrito se permitirá el uso de las tablas de instrucciones de los procesadores
analizados en el transcurso de la asignatura. También se permitirá el uso de calculadora no
programable, sin embargo no se aconseja su uso porque suele dar lugar a confusiones.
Criterios de evaluación
En el examen teórico se valorará la comprensión de los conceptos y nunca el
aprendizaje memorístico. Por ello se propondrán tanto cuestiones breves como
problemas en que se evaluará si el alumno ha comprendido bien los contenidos
teóricos y es capaz de aplicarlos. Se apreciará la capacidad de expresión escrita, en especial la ortografía.
En los trabajos prácticos se valorará la adquisición de habilidades en
programación a nivel de lenguaje ensamblador, la presentación y la
documentación de los programas.
Instrumentos de evaluación
Para la calificación final se tendrá en cuenta tanto la calificación del
examen como las exposiciones de los trabajos en equipo, caso de que el alumno
pertenezca a uno de los grupos de trabajo. En este caso, la calificación final
se calculará de la siguiente forma:
- El 80% saldrá de la nota del examen.
- El 20% saldrá de la notas de las exposiciones del grupo, pero de ese 20%,
la mitad vendrá dada por la nota de la exposición individual del alumno en
cuestión, si es que ha salido elegido para hacerla.
Para los alumnos que no formen parte de grupos de trabajo el 100% de la nota será la del examen escrito.
Los problemas resueltos voluntariamente por los alumnos ante sus compañeros
contarán como notas adicionales que se sumarán a la nota total (una o dos
décimas por problema, dependiendo de su dificultad).
Para aprobar la asignatura es condición imprescindible haber defendido con
éxito todos los trabajos de laboratorio evaluables que se propongan. Se
conseguirá nota adicional si el trabajo defendido, su presentación,
documentación, etc. supera los mínimos requeridos.
En caso de no haber defendido con éxito los trabajos prácticos de la
asignatura, se podrá superar esta parte sacando una nota mínima de un 70%
en una de las preguntas del examen escrito que versará sobre los contenidos
prácticos.
Recomendaciones para la evaluación
No estudiar memorísticamente, sino comprendiendo los conceptos. Resolver
los problemas propuestos durante el desarrollo de la asignatura.
Arriba
BIBLIOGRAFíA
-
Bastida, J.:
Introducción a la Arquitectura de Computadores.
Secretariado de
publicaciones de la Universidad de Valladolid, 1995
-
Stallings, W.: Computer Organization & Architecture. Ed. Prentice Hall,
7ª edición, 2006.
Existe traducción en castellano: Organización y arquitectura de
computadores, Prentice-Hall Iberia, 7ª edición, 2006.
-
Paul, R.P.: SPARC Architecture, Assembly Language Programming, & C,
Prentice-Hall, 2ª ed., 2000.
-
Hamacher, V. C.-Vranesic, Z. G.-Zaky, S. G.: Computer Organization.
McGraw-Hill, 5ª edición, 2002
Existe traducción en castellano:
Organización de computadoras. McGraw-Hill, 2003.
-
Tanenbaum, A.S.: Structured Computer Organization. Prentice-Hall
International, 5ª edición, 2006.
Existe traducción en castellano de la edición anterior:
Organización de computadoras. Un enfoque estructurado.
Prentice-Hall Hispanoamericana, 4ª edición, 2000.
-
Hayes, J.P.: Computer Architecture and Organization. Mc.Graw-Hill, 2ª
edición, 1988.
-
De Blasi, M: Computer Architecture. Addison-Wesley, 1990.
-
Baase, S.: VAX-11 Assembly Language Programming. Prentice-Hall, 1983.
-
Brink, J.-Spillman, R.: Computer Arquitecture and VAX Assembly Language
Programming. Benjamin Cummings, 1987.