Logo UAB
2021/2022

Arquitectura de computadors

Codi: 102775 Crèdits: 6
Titulació Tipus Curs Semestre
2502441 Enginyeria Informàtica OB 2 2
La metodologia docent i l'avaluació proposades a la guia poden experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

Professor/a de contacte

Nom:
Miquel Àngel Senar Rosell
Correu electrònic:
MiquelAngel.Senar@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
català (cat)
Grup íntegre en anglès:
No
Grup íntegre en català:
Grup íntegre en espanyol:

Equip docent

Juan Carlos Moure Lopez
Xavier Cano de Castro
Xiaoyuan Yang
Santiago Marco Sola
Gemma Sanjuán Figuerola
Javier Panadero Martinez

Prerequisits

Encara que no hi ha prerequisits formalment establerts, és indispensable un bon coneixement del llenguatge de programació C i de l'estructura bàsica del computador, incloent la organització de la jerarquia de memòria, i entendre el llenguatge assemblador (Resultats d'Aprenentatge d'Estructura de Computadors).

Objectius

  1. Entendre les tècniques arquitectòniques basades en paral·lelisme per millorar el rendiment del computador.
  2. Entendre el principi de localitat d'accés a dades i les solucions arquitectòniques aplicades a la jerarquia de memòria.
  3. Descriure les tècniques d'avaluació de rendiment, les mètriques emprades, i els mètodes de visualització de resultats.
  4. Avaluar el rendiment de fragments d'aplicacions en sistemes de còmput multi-nucli i GPU, seleccionant les tècniques d’avaluació adequades.
  5. Analitzar els colls d'ampolla del rendiment de l'execució d'un fragment de programa: límits per capacitat d'execució dels recursos del computador, límits per dependències de dades i latències de les operacions, i límits per fallades a la jerarquia de memòria.
  6. Fer servir l'anàlisi per a seleccionar el sistema de còmput adequat a una aplicació i/o aplicar optimitzacions del codi que millorin el seu paral·lelisme (a nivell d'instrucció i de fils d'execució) i la localitat d'accés a les dades.

Competències

  • Capacitat per definir, avaluar i seleccionar plataformes de maquinari i programari per al desenvolupament i l'execució de sistemes, serveis i aplicacions informàtiques.
  • Capacitat per dissenyar, desenvolupar, seleccionar i avaluar aplicacions i sistemes informàtics, assegurant-ne la fiabilitat, la seguretat i la qualitat, d'acord amb els principis ètics i la legislació i la normativa vigents.
  • Coneixement, administració i manteniment de sistemes, serveis i aplicacions informàtiques.
  • Conèixer i aplicar els principis fonamentals i tècniques bàsiques de la programació paral·lela, concurrent, distribuïda i de temps real.
  • Conèixer, comprendre i avaluar l'estructura i arquitectura dels computadors, així com els components bàsics que els conformen.
  • Tenir una actitud personal adequada.

Resultats d'aprenentatge

  1. Analitzar i entendre la translació que fa el computador del codi font original per generar el codi binari executable.
  2. Analitzar les diverses alternatives de disseny d'un computador en funció de paràmetres tècnics (prestacions) i econòmics (costos).
  3. Confeccionar codi eficient per ser executat en arquitectures multinucli i multiprocessador.
  4. Conèixer i aplicar els principis fonamentals i tècniques bàsiques de la programació paral·lela i de temps real.
  5. Conèixer, administrar i mantenir sistemes informàtics des del punt de vista hardware.
  6. Dissenyar, desenvolupar, seleccionar i avaluar sistemes informàtics, assegurant la seva fiabilitat, seguretat i qualitat.
  7. Entendre el llenguatge assemblador per depurar errors en el codi font i per detectar problemes de rendiment.
  8. Generar propostes innovadores i competitives en l'activitat professional.
  9. Gestionar la informació incorporant de manera crítica les innovacions del propi camp professional, i analitzar les tendències de futur.
  10. Identificar anomalies, ineficiències i colls d'ampolla de rendiment en executar un programa en un computador monoprocessador, tant en còmput com en accés a memòria, i proposar modificacions al programa per millorar el rendiment.
  11. Identificar l'arquitectura i organització dels microprocessadors actuals, des dels sistemes monoprocessador fins als sistemes multinucli.
  12. Mesurar el temps d'execució d'un programa en un processador i el recompte d'instruccions executades.

Continguts

1. Fonaments de Disseny i Avaluació dels Computadors

  • Latència, Paral·lelisme i Localitat
  • Cost, Rendiment, Consum Energètic i Fiabilitat
  • Mètriques i Tècniques d'Avaluació del Rendiment
  • Mètodes de Visualització de Resultats

2. Jerarquia de Memòria: Funcionalitat i Tasa de Fallades

  • Funcionament de la Jerarquia de Memoria: Caché, Memòria i Disc
  • Bloc i línea de Caché. Algorismes d'emplaçament i reemplaçament
  • Tassa de Fallades i Rendiment de l'execució seqüèncial
  • Patrons d'Accés a Memòria 
  • Optimitzacions de codi per a millorar la localitat d'accés a les dades

3. Paral·lelisme al nucli d'Execució del Processador i a la Jerarquia de Memòria

  • Segmentació de l'execució: Latència i Capacitat d'execució
  • Execució Múltiple d'instruccions i Predicció de Salts
  • Anàlisi de dependències entre instruccions i de límits de capacitat del processador
  • Instruccions explícites per aprofitar el Paral·lelisme de Dades (SIMD)
  • Paral·lelisme en l'accés a la jerarquia de memòria: Latència i Amplada de Banda
  • Optimitzacions de codi que aprofiten el paral·lelisme intern del processador
  • Introducció als sistemes paral·lels multiprocessador i multicomputador.
  • Introducció als sistemes distribuïts.

Metodologia

Classes de Teoria: s'exposaran els coneixements propis de l'assignatura. Es descriuran els conceptes bàsics i s'indicaran exemples i petits problemes de com fer-los servir en la pràctica. Es ressaltaran els problemes d'aprenentatge més importants i es mostrarà com completar i aprofundir en els continguts. Es discutiran casos pràctics i el professor detectarà els problemes de comprensió i raonament més comuns i els resoldrà per a tots els estudiants.

Classes de Problemes: es faran activitats cooperatives de resolució de problemes. A partir del treball previ individual dels alumnes, aquests faran una posta en comú en grup i resoldran els dubtes que hagin pogut sorgir. El professor detectarà els problemes de comprensió i raonament més comuns i els resoldrà per grups o per a tots els estudiants. Aquests seminaris permetran aportar els coneixements que li falten a l'estudiant o indicar on es poden adquirir. Serviran de pont entre les classes de teoria i el treball pràctic. Les classes de problemes són avaluables, i en certes sessions pre-establertes els alumnes resoldran problemes lliurats al començament de la sessió i que s'hauran d'entregar al finalitzar la sessió com a evidències avaluables.

Classes de Laboratori: serviran de suport a la teoria. Els alumnes disposaran de la informació de pràctiques amb temps suficient abans de cada sessió, i hauran de preparar la part prèvia indicada a l'informe per tal que el professor, al començament de la sessió, la pugui revisar. Durant la sessió els alumnes hauran d'informar al professor sobre els seus avenços i els problemes que es puguin trobar, i en finalitzarla sessió entregaran un document amb els resultats de la pràctica i un resum dels problemes trobats.

Competències transversals: Seran treballades i avaluades en diversos moments al llarg del curs. Concretament:

  • T06.03 - Generar propostes innovadors i competitives en l'activitat professional: al llarg del curs es treballaran exemples per il·lustrar de quina forma es poden proposar diferents solucions a un mateix problema, avaluant-ne la seva rellevància des d'un punt de vista del rendiment obtingut. A les classes de laboratori s'avaluarà aquesta competència mitjançant exercicis que els estudiants hauran de resoldre aportant solucions que tinguin aspectes originals i innovadors.
  • T06.04 - Gestionar la informació incorporant de manera crítica les innovacions del propi camp professional, i analitzar les tendències del futur: al llarg del curs es presentaran aquells elements que siguin més innovadors des del punt de vista de l'arquitectura dels nous processadors. A les classes de laboratori s'inclouran preguntes específiques sobre aquestes innovacions tecnològiques contrastant-les amb els equips usats en la resolució dels exercicis pràctics.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de Teoria 26 1,04 1, 2, 3, 4, 5, 6, 8, 9, 10, 11
Problemes 12 0,48 1, 2, 3, 4, 5, 6, 7, 10
Pràctiques de Laboratori 12 0,48 1, 3, 5, 6, 7, 8, 9, 10, 12
Tipus: Autònomes      
Estudi i Preparació de Proves 30 1,2 1, 2, 3, 4, 7, 8, 9, 10, 11, 12
Preparació de Problemes 30 1,2 1, 3, 4, 7, 10, 11, 12
Preparació de Pràctiques 32 1,28 1, 3, 4, 7, 8, 9, 10, 11, 12

Avaluació

Les dates d'avaluació continuada i lliurament de treballs es publicaran a la plataforma Moodle de la UAB i poden estar subjectes a possibles canvis de programació per motius d'adaptació a possibles incidències; sempre s'informarà al Moodle sobre aquests canvis ja que s’entén que és la plataforma habitual d'intercanvi d'informació entre professor i estudiants. Els estudiants que siguin repetidors hauran de fer les mateixes activitats que la resta i no es preveu cap mena de convalidació per activitats realitzades en cursos anteriors. L'assignatura consta de les acivitats d'avaluació següents:

Proves individuals (I1, I2; 25% i 25% sobre la qualificació final).  Són dues proves de resolució de problemes, de preguntes teòriques i de preguntes relacionades amb les pràctiques de laboratori. L'avaluació de l'alumne es farà a partir de les respostes de les proves.

Problemes resolts en grup i participació a les classes de problemes (Prb;  20% sobre la qualificació final). En algunes sessions de problemes es proposaran una sèrie d'exercisis que es resoldran al llarg de la classe de forma individual o en grup. Hi haurà entre 4 entregues, com a mínim, previstes al llarg del curs i totes tindran el mateix pes relatiu en la qualificació d'aquest apartat. Cada entrega serà avaluada per separat i no hi haurà cap mecanisme de recuperació per a aquesta part.

Pràctiques de laboratori en grup (Lab; 30% sobre la qualificació final), amb discussió i ajuda del professor. Les activitats s'estenen durant una o dues sessions i cal entregar un document de resultats, respostes i conclusions al finalitzar la darrera sessió (entre 2 i 4 entregues). L'avaluació de l'alumne es farà a partir de la participació en les sessions i dels documents lliurats. No hi haurà cap mecanisme de recuperació per a aquesta part.

Cal una nota igual o superior a 5 sobre 10 en la nota Lab per a aprovar l'assignatura.  En cas contrari, l'assignatura tindrà una qualificació de Suspès amb un valor numèric igual a la nota Lab / 2.

L'alumne no necessita realitzar més proves si les qualificacions de les proves individuals (I1 i I2) compleixen la condició següent:

     ((max (I1, I2) + 2* min (I1, I2)) / 3 >= 5   (qualificacions I1 i I2 sobre escala de 10 punts)

 

En aquest supòsit, la nota final de l'assignatura es calcula com:

Nota FINAL =   (I1*2,5+ I2*2,5 Prb*2 Lab*3)/10

Cal una nota igual o superior a 5 punts en la Nota FINAL per a aprovar l'assignatura.

 -----------------

Si no es compleix la condició anterior, l'alumne ha de realitzar necessàriament una prova final de recuperació.

Prova Final (F), durant la data reservada per l'Escola. L'avaluació de l'alumne es farà a partir de les respostes de la prova.

Nota FINAL =   (F*5 Prb*2 Lab*3 ) / 10

Cal una nota igual o superior a 5 punts en la Prova Final (F) i una nota igual o superior a 5 punts en la Nota FINAL per a aprovar  l'assignatura. Si la nota de la Prova Final és inferior a 5, l'assignatura tindrà una qualificació de suspès amb un valor numèric igual a la nota de la Prova Final.

---------------

La qualificació de Matrícula d'Honor es podrà obtenir si la qualificació final és igual o superior a 9.00. Com que el nombre d'estudiants amb aquesta distinció no pot excedir el 5% del nombre d'estudiants matriculats en el curs, aquesta distinció s'atorgarà a qui tingui una participació més destacada en tot el curs a criteri dels professors del curs.

Un estudiant es considerarà No Avaluable si no s'ha presentat a cap prova individual (ni I1 ni I2), o en casos excepcionals que seran analitzats i decidits pels responsables docents (malalties o accidents greus,...).

Per a cada activitat d’avaluació, s’indicarà un lloc, data i hora de revisió a través de la plataforma moodle en la que l'estudiant podrà revisar l’activitat amb el professor. En aquest context, es podran fer reclamacions sobre la nota de l’activitat, que seran avaluades pel professorat responsable de l’assignatura. Si l'estudiant no fa cap reclamació o no es presenta, l'activitat no tindrà una revisió posterior.

---------------

NOTES:

a) A part de les activitats d'avaluació descrites anteriorment, al llarg del curs es podran proposar altres activitats de caire voluntari que podran contribuir a la nota final de l'assignatura.

b) Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, les irregularitats comeses per un estudiant que puguin conduir a una variació de laqualificació en una activitat avaluable es qualificaran amb un zero (0). Les activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:

  • la còpia total o parcial d'una pràctica, informe, o qualsevol altra activitat d'avaluació;
  • deixar copiar;
  • presentar un treball de grup no fet íntegrament pels membres del grup (aplicat a tots els membres, no solament els què no han treballat);
  • presentar com a propis materials elaborats perun tercer, encara que  siguin traduccions o adaptacions, i en general treballs amb elementsno originals i exclusius de l'estudiant;
  • tenir dispositius de comunicació (com telèfons mòbils, smart watches, boligrafs amb càmera, etc.) accessibles durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • parlar amb companys durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • copiar o intentar copiar d'altres alumnes durant les proves d'avaluació teorico-pràctiques (exàmens);
  • usar o intentar usar escrits relacionats amb la matèria durant la realització de les proves d'avaluació teorico-pràctiques (exàmens), quan aquests no hagin estat explícitament permesos.
La nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes en cas que l'estudiant hagi comès irregularitats en un acte d'avaluació (i, per tant, no serà possible l'aprovat per compensació). En edicions futures d'aquesta assignatura, a l'estudiantquehagicomès irregularitats en un acte d'avaluació no se li convalidaran cap de les activitats d'avaluació realitzades.

En resum: copiar, deixar copiar o plagiar (o l'intent de) en qualsevol de les activitats d'avaluació equival a un SUSPENS, no compensable i sense convalidacions.

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
Prova Individual de Problemes, Teoria i Laboratori 25% 2 0,08 1, 2, 3, 4, 5, 7, 9, 10, 11
Prova Individual de Problemes, Teoria i Laboratori 25% 2 0,08 1, 2, 3, 4, 5, 7, 9, 10, 11
Resolució de Problemes en Grup 20% 2 0,08 1, 2, 4, 6, 7, 9, 10
Treball en grup al Laboratori 30% 2 0,08 1, 3, 4, 6, 7, 8, 9, 10, 12

Bibliografia

  • HENNESSY, John L. and PATTERSON, David, Computer Architecture: A Quantitative Approach. Morgan Kaufmann (Elsevier), 2018 (Cap. 1, 2 i 3)
  • BRYANT, Randal and O'HALLARON David, Computer Systems: A Programmer's Perspective. Prentice Hall, 2011 (Cap. 5 i 6)
  • BAKHVALOV, Denis, Performance Analysis and Tuning on Modern CPUs, easyperf.net, 2020
  • PATTERSON, David and HENNESSY, John, Computer Organization and Design: The Hardware/Software Interface. Morgan Kauffman (Elsevier), 2009 (Cap. 4 i 5)

Programari

Linux (sistema operatiu) + eines bàsiques (editors, navegadors,...) 

gcc/icc (compiladors)

perf (eina de perfilat d'aplicacions)