Diferencia entre revisiones de «Organización del Computador II»

De Cuba-Wiki
(No se muestran 28 ediciones intermedias de 17 usuarios)
Línea 19: Línea 19:
*[[Apuntes primer parcial 03/10/2006 (Organización del Computador II)| Apuntes primer parcial 03/10/2006]]: Clase del 03/10/2006 de Emilio Platzer con tips para el primer parcial.
*[[Apuntes primer parcial 03/10/2006 (Organización del Computador II)| Apuntes primer parcial 03/10/2006]]: Clase del 03/10/2006 de Emilio Platzer con tips para el primer parcial.
*[[Apuntes segundo parcial 14/11/2006 (Organización del Computador II)| Apuntes segundo parcial 14/11/2006]]: Clase del 14/11/2006 de Emilio Platzer con tips para el segundo parcial. Temas: FPU y Listas.
*[[Apuntes segundo parcial 14/11/2006 (Organización del Computador II)| Apuntes segundo parcial 14/11/2006]]: Clase del 14/11/2006 de Emilio Platzer con tips para el segundo parcial. Temas: FPU y Listas.
*[https://docs.google.com/document/d/1G0Tnyp8jiwzN_cUHSDlw0IWKemfbwaV5N3zG2M8jQOk/edit#heading=h.pw1o7wj3m89b Apunte condensado de consulta para el segundo parcial.]
*[[Medio:resumen_2p_orga2.pdf| Apuntes segundo parcial 2do cuatri 2017: System Programming]]
*[[Medio:resumen_2p_orga2.pdf| Apuntes segundo parcial 2do cuatri 2017: System Programming]]
*[[Glosario de términos técnicos (Organización del Computador II)|Glosario de términos técnicos de la materia]]
*[[Glosario de términos técnicos (Organización del Computador II)|Glosario de términos técnicos de la materia]]
*[[Media:Resumen_Instrucciones_IA-32.pdf|Resumen de Instrucciones de IA-32]]: Resumen hecho a partir de extractos los manuales de Intel [Volumen 2] (2009).
*[[Media:Resumen_Instrucciones_IA-32.pdf|Resumen de Instrucciones de IA-32]]: Resumen hecho a partir de extractos los manuales de Intel [Volumen 2] (2009).
*[[Media:Orga2_apunte_primera_parte_2019.pdf|Apunte de la primera parte de la materia 2019]]


== IA-32 ==
== IA-32 ==
Línea 31: Línea 33:
*[[Manejo del stack (Organización del Computador II)|Manejo del stack (pila)]]: Esquema para la creación de un stack frame.
*[[Manejo del stack (Organización del Computador II)|Manejo del stack (pila)]]: Esquema para la creación de un stack frame.
*[[Ejemplo de FPU (Organización del Computador II)|Ejemplo de FPU]]: Resolución del ejercicio 5 de la práctica de FPU. Nos muestra el manejo de la pila y el uso de las operaciones de la FPU.
*[[Ejemplo de FPU (Organización del Computador II)|Ejemplo de FPU]]: Resolución del ejercicio 5 de la práctica de FPU. Nos muestra el manejo de la pila y el uso de las operaciones de la FPU.
 
*[[Medio:Orga2_resumen_2parcial.pdf| Resumen para el segundo parcial]]: Pequeño resumen de algunos elementos de la segunda parte de la materia para llevar al parcial como apoyo. Hecho para el primer cuatrimestre de 2019.
== IA-64 (Itanium) ==
'''Itanium ya no se da como tema desde que está Furfaro como profesor.'''
 
*[[Itanium for Dummies (Organización del Computador II)| Itanium for Dummies]]: También conocido como ''"No sé nada de Itanium, ¿Cómo empiezo?"''
*[[Ejercicios varios Itanium (Organización del Computador II)| Ejercicios varios Itanium]]: Código assembler de funciones varias realizadas en el laboratorio de Itanium. Incluye sumador y Fibonacci versión iterativa y recursiva.
*[[Rotación de Registros y Software Pipelining (Organización del Computador II)| Rotación de Registros y Software Pipelining]]: Apuntes de clase sobre Rotación de registros con ejercicio de ejemplo, próximamente también Software Pipelining.
*[[SIMD (Organización del Computador II)| SIMD]]: Apuntes de clase del 26/10/2006 sobre el set de instrucciones SIMD de Itanium.
*[[Software pipelining (Organización del Computador II)| Software pipelining]]: Apuntes de clase software pipelining.
*[[Instrucciones de pipelining (Organización del Computador II)| Instrucciones de pipelining]]: Un mismo problema resuelto usando ctop, cexit, wtop y wexit para familiarizarse con estas instrucciones.
*[[Suma de vectores con Software Pipelining (Organización del Computador II)| Suma de vectores con Software Pipelining]]: Un pequeño ejemplo útil para encarar el tema.
*[[Mini-Tutorial de Software Pipelining (Organización del Computador II)| Mini-Tutorial de Software Pipelining]]: Un ejemplo de pipelining optimizando la escritura en el mismo vector que leemos.
*[[Media:sp_basico.pdf|Ejemplo básico de Software Pipelining]]: Anónimo, cortesía de Fer (nadie lo probó, pero esta explicado).
*[[Software pipelining para el TP (Organización del Computador II)| Software pipelining para el TP]]: Ejemplo de cómo tener en cuenta las latencias (la idea es que se use para el TP3).
*[[Arquitectura Itanium (Organización del Computador II)|Arquitectura Itanium]]: Apuntes de las teóricas sobre las características generales de la arquitectura, a complementar con la presentación de la página.


== Parciales ==
== Parciales ==
Línea 77: Línea 65:
*[[Medio:Orga2_1parcial_03-10-17_resuelto.pdf|Parcial del 03/10/17 (resuelto)]]
*[[Medio:Orga2_1parcial_03-10-17_resuelto.pdf|Parcial del 03/10/17 (resuelto)]]
*[[Medio:Orga2_1recu_23-11-17_resuelto.pdf|Recuperatorio del 23/11/17 (resuelto)]]
*[[Medio:Orga2_1recu_23-11-17_resuelto.pdf|Recuperatorio del 23/11/17 (resuelto)]]
*[[Medio:Orga2_1parcial_10-05-18_resuelto.pdf|Parcial del 10/05/18 (resuelto)]]
*[[Medio:Orga2_1recu_28-06-18_resuelto.pdf|Recuperatorio del 28/06/18 (resuelto)]]
*[[Medio:Orga2_1parcial_2-10-18_resuelto.pdf|Parcial del 2/10/18 (resuelto)]]
*[[Medio:Orga2_1recu_27-11-18_resuelto.pdf|Recuperatorio del 27/11/18 (resuelto)]]
*[[Medio:Orga2 1parcial 07-05-19.pdf|Parcial del 7/5/19 (resuelto)]]


===Segundos parciales===
===Segundos parciales===
Línea 106: Línea 100:
*[[Medio:Orga2_2recu_18-07-17.pdf|Recuperatorio del 27/07/17 (resuelto)]]
*[[Medio:Orga2_2recu_18-07-17.pdf|Recuperatorio del 27/07/17 (resuelto)]]
*[[Medio:Orga2_2parcial_14-11-17_resuelto.pdf|Parcial del 14/11/17 (resuelto)]]
*[[Medio:Orga2_2parcial_14-11-17_resuelto.pdf|Parcial del 14/11/17 (resuelto)]]
*[[Medio:Orga2_2parcial_21-06-18_resuelto.pdf|Parcial del 21/06/18 (resuelto)]]
*[[Medio:Orga2_2parcial_15-11-18.pdf|Parcial del 15/11/18 (bastante resuelto)]] [[Medio:Orga2_2parcialbis_15-11-18_resuelto.pdf|bis]]
*[[Medio:Orga2_2recu_11-07-19_parte1.pdf|Parcial del 11/07/19 resuelto (parte 1)]] [[Medio:Orga2_2parcial_11-07-19_parte2.pdf|(parte 2)]]
*[[Medio:Orga2_2parcial_18-06-19.pdf|Parcial del 18/06/19]]


== Finales ==
== Finales ==
*[[Orga2_final_09-03-18|Final de 09/03/2018]]
*[[Orga2_final_09-03-18|Final de 09/03/2018]]
*[[Orga2_final_06-08-19|Final de 06/08/2019]]
*<s>[[Finales Dic-2006 (Organización del Computador II)| Finales de Diciembre del 2006]]: Finales ya tomados en Diciembre del 2006.</s> (precaución: en 2018 estos temas no se están tomando más)
*<s>[[Finales Dic-2006 (Organización del Computador II)| Finales de Diciembre del 2006]]: Finales ya tomados en Diciembre del 2006.</s> (precaución: en 2018 estos temas no se están tomando más)


== Material para Finales ==
== Material para Finales ==


'''Recomendación (2018)''': Los finales de Alejandro Furfaro suelen ser orales (si no hay mucha gente, con más de 10 personas, podés esperar que te tome escrito). Los orales duran 15-20 minutos y hace preguntas de microarquitectura: específicamente sobre coherencia de caché, predicción de saltos, y ejecución fuera de orden. También suele tomar aplicaciones prácticas (microarquitectura P6, Netburst, HyperThreading, Pentium 4-M, Intel Core).  
'''Recomendación (2018)''': Los finales de Alejandro Furfaro suelen ser orales (si no hay mucha gente, con más de 10 personas podés esperar que te tome escrito). Los orales duran 15-20 minutos y hace preguntas de microarquitectura: específicamente sobre coherencia de caché (protocolo MESI por ejemplo), predicción de saltos, y ejecución fuera de orden (algoritmo de Tomasulo). También suele tomar aplicaciones prácticas (microarquitectura P6, Netburst, HyperThreading, Pentium 4-M, Intel Core).  


Empezar viendo los videos, luego completar información con las clases de Microarquitectura de Furfi, y recién ahí leer los papers que esperan leas para el final.
Empezar viendo los videos, luego completar información con las clases de Microarquitectura de Furfi, y recién ahí leer los papers que esperan leas para el final.


=== Resúmenes ===
=== Resúmenes ===
 
*[[Media:Resumen_orga_2_zamboni.pdf | Resumen de temas y algunos papers]]: La parte de los papers esta mitad en ingles, mitad en castellano, se agreden aportes. Link a la [https://github.com/Gian150/resumenes-uba/tree/master/Orga2 fuente]
*[[Media:Resumen_orga_2_-_Straminsky.pdf | Resumen de microarquitectura y otros temas para el final (Straminsky)]]
*[[Media:Resumen_orga_2_-_Straminsky.pdf | Resumen de microarquitectura y otros temas para el final (Straminsky)]]
*[[Media:Res_orga2.zip | Resumen para el final (no aclara autor)]] : Contiene los latex y el pdf
*[[Media:Res_orga2.zip | Resumen para el final (no aclara autor)]] : Contiene los latex y el pdf
*Autoevaluación modelo para preparar el final (lbarrios) (disclaimer: no son preguntas oficiales, son preguntas que se me ocurrieron mientras estudiaba, para luego poder hacer un simulacro de final y ver en qué puntos andaba flojo) [https://github.com/lbarrios/orga2-final/blob/master/preguntas-final.md Repositorio Github (Markdown)] [[Medio:Orga2_cuestionario_lbarrios.pdf| [PDF]]]
*Autoevaluación modelo para preparar el final (lbarrios) (disclaimer: no son preguntas oficiales, son preguntas que se me ocurrieron mientras estudiaba, para luego poder hacer un simulacro de final y ver en qué puntos andaba flojo) [https://github.com/lbarrios/orga2-final/blob/master/preguntas-final.md Repositorio Github (Markdown)] [[Medio:Orga2_cuestionario_lbarrios.pdf| [PDF]]]
**Resumen (autoevaluación resuelta) (lbarrios) (disclaimer: no garantizo que las respuestas sean 100% correctas) [https://github.com/lbarrios/orga2-final/blob/master/preguntas-final-resueltas.md Repositorio Github (Markdown)] [[Medio:Orga2_resumen_lbarrios.pdf| [PDF]]]
**Resumen (autoevaluación resuelta) (lbarrios) (disclaimer: no garantizo que las respuestas sean 100% correctas) [https://github.com/lbarrios/orga2-final/blob/master/preguntas-final-resueltas.md Repositorio Github (Markdown)] [[Medio:Orga2_resumen_lbarrios.pdf| [PDF]]]
*[[Media:Resumen_para_el_Final_de_Orga_2.pdf | Un resumen para el final de Orga 2 ]] : con todos los temas. 2 errores conocidos: 1) El pipeline de forwarding puede estar mal por un ciclo de clock 2) en MESI: Mesi usa la linea RFO (NO LA SHARED) cuando un cache que tiene una linea modified tiene que decirle a otro que la quiere leer que espere a que la escriba en memoria


=== Videos ===
=== Videos ===
*[https://www.youtube.com/watch?v=zLP_X4wyHbY&feature=youtu.be&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu]: Videos sobre los temas del final ('''MUY''' recomendado). Las clases importantes son la [https://www.youtube.com/watch?v=CkOPbj5KhP8&index=10&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 9], [https://www.youtube.com/watch?v=NCUDEgLfC_I&index=11&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 10], [https://www.youtube.com/watch?v=nMfbtzWizDA&index=13&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 11] (Habla de ROB), [https://www.youtube.com/watch?v=P-mXr9adbCc&index=14&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 12] (Habla de Tomasulo), [https://www.youtube.com/watch?v=z0EknfZdlIs&index=15&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 13], [https://www.youtube.com/watch?v=AXf_C5qOm8o&index=19&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 17] y [https://www.youtube.com/watch?v=4_Z07m8tf6k&index=20&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 18] (la [https://www.youtube.com/watch?v=JfjT1a0vi4E&index=32&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 29] habla de Snooping Protocols y MESI entre otras cosas).
*[http://www.archive.ece.cmu.edu/~ece447/s15/doku.php?id=schedule Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu]: Videos sobre los temas del final ('''MUY''' recomendado). El link también incluye las clases en formato .ppt y .pdf para descargarse. Las clases (o lecturas) importantes son la [https://www.youtube.com/watch?v=CkOPbj5KhP8&index=10&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 9], [https://www.youtube.com/watch?v=NCUDEgLfC_I&index=11&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 10], [https://www.youtube.com/watch?v=nMfbtzWizDA&index=13&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 11] (Habla de ROB), [https://www.youtube.com/watch?v=P-mXr9adbCc&index=14&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 12] (Habla de Tomasulo), [https://www.youtube.com/watch?v=z0EknfZdlIs&index=15&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 13], [https://www.youtube.com/watch?v=AXf_C5qOm8o&index=19&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 17] y [https://www.youtube.com/watch?v=4_Z07m8tf6k&index=20&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 18] (la [https://youtu.be/JfjT1a0vi4E?t=3922 28] habla de Coherencia de Caché (minuto 1:05:20) y la [https://www.youtube.com/watch?v=JfjT1a0vi4E&index=32&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq 29] habla de Snooping Protocols y MESI entre otras cosas).


* Hay un curso de HPCA (High Performance Computer Architecture) que incluye todos los temas que entran en este final. Son videos de muy corta duración cada uno (de 2 a 5 minutos) en donde cada video explica un tema particular de forma autocontenida. A mí me sirvieron mucho, recomiendo darles una oportunidad (como complemento al resto del material)
* Hay un curso de HPCA (High Performance Computer Architecture) que incluye todos los temas que entran en este final. Son videos de muy corta duración cada uno (de 2 a 5 minutos) en donde cada video explica un tema particular de forma autocontenida. A mí me sirvieron mucho, recomiendo darles una oportunidad (como complemento al resto del material)
Línea 132: Línea 132:
** Parte 3: [https://www.youtube.com/watch?v=Oqfk7U2eaFY&list=PLAwxTw4SYaPnhRXZ6wuHnnclMLfg_yjHs]
** Parte 3: [https://www.youtube.com/watch?v=Oqfk7U2eaFY&list=PLAwxTw4SYaPnhRXZ6wuHnnclMLfg_yjHs]


=== Papers / Extractos ===
=== Papers ===
 
Estos son los papers que se espera que se lean:
 
*[[Medio:Orga2_paper_pentium4.pdf| The Microarchitecture Of The Pentium 4 Processor]]
*[[Medio:Orga2_paper_hyper-threading.pdf| Hyper-Threading Technology Architecture and Microarchitecture]]
*[[Medio:Orga2_paper_pentiumM.pdf| The Intel Pentium M Processor - Microarchitecture and Performance]]
*[[Medio:Orga2_paper_pentium4-90nm.pdf| The Microarchitecture of the Intel Pentium 4 Processor on 90nm Technology]]
*[[Medio:Orga2_paper_duo.pdf| Introduction to Intel Core Duo Architecture]]
*[[Medio:Orga2_paper_cmp.pdf| CMP Implementation in Systems based on the Intel Core Duo prosessor]]
*[[Medio:Orga2_paper_duo-45nm.pdf| Original 45nm Intels Core 2 Processor Performance]]
*[[Medio:Orga2_paper_penyn.pdf| Improvements in the Intels Core 2 Penryn Processor Family Architecture and Microarchitecture]]
 
 
Material extra


*[[Media:Understanding_Pipelining_and_Superscalar_Execution.pdf | Pipelining and Superscalar execution]] : Paper sobre temas de microarquitectura para el final.
*[[Media:Understanding_Pipelining_and_Superscalar_Execution.pdf | Pipelining and Superscalar execution]] : Paper sobre temas de microarquitectura para el final.
*[http://www.nostarch.com/download/insidemachine_ch4.pdf Inside the Machine (Chapter 4): Superscalar Execution] : Capitulo de muestra sobre ejecución superescalar para preparar el final.
*[http://www.nostarch.com/download/insidemachine_ch4.pdf Inside the Machine (Chapter 4): Superscalar Execution] : Capitulo de muestra sobre ejecución superescalar para preparar el final.


=== Bibliografía / Temas ===
=== Bibliografía / Temas ===
Línea 156: Línea 169:
*[ftp://download.intel.com/design/Pentium4/manuals/25366621.pdf Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2A: Instruction Set Reference, A-M]
*[ftp://download.intel.com/design/Pentium4/manuals/25366621.pdf Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2A: Instruction Set Reference, A-M]
*[ftp://download.intel.com/design/Pentium4/manuals/25366721.pdf Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2B: Instruction Set Reference, N-Z]
*[ftp://download.intel.com/design/Pentium4/manuals/25366721.pdf Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2B: Instruction Set Reference, N-Z]
*[https://www.felixcloutier.com/x86/index.html Índice de instrucciones de Felix Cloutier]
*[https://www.officedaytime.com/simd512e/simd.html Otro índice de instrucciones, con mejores visualizaciones (especialmente para SIMD)]


[[Category:Materias]]
[[Category:Materias]]
[[Category:Computación]]
[[Category:Computación]]
[[Category:Sistemas]]
[[Category:Sistemas]]

Revisión del 18:40 6 dic 2019

Organización del Computador II es una materia dedicada al estudio de las arquitecturas IA-32 e IA-64 de Intel. Pertenece al área de Sistemas y, según el Plan de la Carrera, es una materia a ser cursada en Segundo año. Es correlativa de Organización del Computador I, y es requerida para cursar Sistemas Operativos.

Históricamente, esta materia se cursa los Martes y Jueves a la noche.

Contenidos

IA32
  • Operaciones básicas
  • Direccionamiento a memoria
  • Manejo de la pila y convencion C
  • Aritmética de números grandes
  • Strings
  • Vectores y matrices
  • MMX: Multimedia extension
  • FPU: Floating point unit
  • Listas enlazadas

Apuntes

IA-32

Parciales

Primeros parciales


Segundos parciales

Finales

Material para Finales

Recomendación (2018): Los finales de Alejandro Furfaro suelen ser orales (si no hay mucha gente, con más de 10 personas podés esperar que te tome escrito). Los orales duran 15-20 minutos y hace preguntas de microarquitectura: específicamente sobre coherencia de caché (protocolo MESI por ejemplo), predicción de saltos, y ejecución fuera de orden (algoritmo de Tomasulo). También suele tomar aplicaciones prácticas (microarquitectura P6, Netburst, HyperThreading, Pentium 4-M, Intel Core).

Empezar viendo los videos, luego completar información con las clases de Microarquitectura de Furfi, y recién ahí leer los papers que esperan leas para el final.

Resúmenes

Videos

  • Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu: Videos sobre los temas del final (MUY recomendado). El link también incluye las clases en formato .ppt y .pdf para descargarse. Las clases (o lecturas) importantes son la 9, 10, 11 (Habla de ROB), 12 (Habla de Tomasulo), 13, 17 y 18 (la 28 habla de Coherencia de Caché (minuto 1:05:20) y la 29 habla de Snooping Protocols y MESI entre otras cosas).
  • Hay un curso de HPCA (High Performance Computer Architecture) que incluye todos los temas que entran en este final. Son videos de muy corta duración cada uno (de 2 a 5 minutos) en donde cada video explica un tema particular de forma autocontenida. A mí me sirvieron mucho, recomiendo darles una oportunidad (como complemento al resto del material)

Papers

Estos son los papers que se espera que se lean:


Material extra

Bibliografía / Temas

  • Computer Architecture. A quantitative approach. Henessy & Patterson. Ed. Morgan Kaufman : Muy buen libro aunque se zarpa un poco con el alcance. Los capítulos son el 2 y el 4, y el apéndice A.
  • Temas para las fechas de final de Diciembre del 2006: Temas dados por Patricia para el final de Diciembre del 2006 y detalles sobre la bibliografía. (precaución: en 2018 estos temas no se están tomando más)

Recursos

Enlaces externos