Responsable: | (-) |
Altres: | (-) |
Crèdits | Dept. | Tipus | Requisits |
---|---|---|---|
7.5 (6.0 ECTS) | AC |
|
AC
- Pre-requisit per la EI |
Responsable: | (-) |
Altres: | (-) |
Que l'alumne sigui capaç de:
- comprendre el funcionament i implementar a nivell de blocs un processador segmentat senzill amb una jerarquia de cache (instruccions i dades) i amb suport per a memoria virtual paginada.
- comprendre el funcionament i implementar a nivell de blocs un processador segmentat senzill amb excepcions precises i suport per a interrupcions externes
- comprendre el funcionament i implementar a nivell de blocs tecniques actuals de millora del rendiment d'un processador segmentat, incloent execució superescalar, execució fora d'ordre i tècniques de multithreading
- comprendre el funcionament i implementar a nivell de blocs les tècniques de processament vectorial, aplicades en particular al suport de programes multimedia.
- comprendre el funcionament de processadors de propòsti específic com poden ser els DSP o les targes acceleradores de gràfics 3D.
Hores estimades de:
T | P | L | Alt | L Ext. | Est | A Ext. |
Teoria | Problemes | Laboratori | Altres activitats | Laboratori extern | Estudi | Altres hores fora d'horari fixat |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 0 | 0 | 0 | 0 | 0 | 2,0 | |||
Revisió Llei de Rendiment i Llei d'Amdhal. Concepte de dependència registres i memòria. Revisió concepte de segmentació. Revisió curtircuits.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 0 | 0 | 0 | 6,0 | 0 | 14,0 | |||
Repàs processador segmentat en 5 etapes. Repàs motivació i concepte jerarquia de memòria. Introducció cache instruccions i dades en el processador. Pipeline de stores: dificultat implementació uni-cicle i solucions. Recordatori memòria virtual. Introducció concepte TLB. Acoblament del TLB en el processador. Solucions a les fallades de TLB. Excepcions precises: introducció i problemàtica. Propagació vector excepcions. Comunicació amb el sistema operatiu.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 0 | 0 | 0 | 4,0 | 0 | 10,0 | |||
Pipeline de punt flotant. Acabament instruccions en desordre. Problemes en conflictes de write back. Solució riscs WAW. Problema excepcions precises: solució reorder buffer i future file (Smith & Plezskun). Problemes amb pipeline de stores, dependencies load-store i bypassos.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 0 | 0 | 0 | 2,0 | 0 | 4,0 | |||
Concepte de predicció de salts. Integració del predictor en el pipeline segmentat. Tècniques d'implementació de predictors: 2-bit i amb història.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 0 | 0 | 0 | 4,0 | 0 | 10,0 | |||
Problema ordenació dinàmica. Renaming centralitzat tipus MIPS R10000. Noves estructures: finestra instruccions, taula renombrament, llista graduació (ROB). Implementació Pick & Wakeup. Algorisme renombrament registres R10000. Excepcions: recuperació de la taula renaming. Integració amb el predictor: còpies de la taula de renaming. Implementació Free List. Implementació mort selectiva d'instruccions.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 1,0 | 0 | 0 | 0 | 2,0 | 0 | 5,0 | |||
Objectiu IPC > 1. Problema Fetch: aprofitament línia cache per obtenir dues instruccions per cicle. Modificacions a decode: renombrament en cascada. Modificacions a finestra: nou picker. Modificacions per retirar instruccions.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 1,0 | 0 | 0 | 0 | 4,0 | 0 | 9,0 | |||
Concepte thread. Rel.lació amb S.O. Objectiu multithreading: augmentar throughput i millorar eficiencia. Tècniques de multithreading: fine-grain, switch-on-event, simultaneous multithreading. Integració mutlithreading en el pipeline segmentat fora d'ordre. Exemple Penitum-4. Processadors multi-core.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 0 | 0 | 0 | 6,0 | 0 | 14,0 | |||
Execució paralela amb múltiples unitats funcionals: problemes i solucions. Concepte "Single Instruction Multiple Data". Variants multimedia. Instruccions específiques vectorials: accés a memoria amb stride, gather/scatter, execució sota máscara. Implementació banc registres vectorial. Accés a memória organitzada en bancs.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 2,0 | 0 | 0 | 0 | 5,0 | 0 | 12,0 | |||
Pipeline Grafic. Etapes de proces: geometry, transform, rasterize, fragment, raster ops. Vertex Shaders, Pixel Shaders, Controlador de Memoria. Etapes de funcio fixa del pipeline. Organització Multithreaded. Sincronitzacio. Cache de Textures.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 14,0 | 0 | 30,0 | 0 | 0 | 44,0 | |||
En les classes de laboratori s'anirà desenvolupant la implementació (usant LogicWorks) d'un processador segmentat multicicle superescalar. El processador fara fetch i retirarà dues instruccions per cicle. Preferiblement, els alumnes implementaran un processador de 2 vies generals, pero només caldrà fer un accés a la cache de dades per cicle. El sistema inclourà memòria principal i un controlador de disc amb DMA que haurà de interrompore el processador. Opcionalment, alguns alumnes podran fer una versió amb 2 threads.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
En aquest tema s'unifiquen tots els conceptes vistos fins al moment i es presenten en el context d'un pipeline i un processador real (Pentium 4 o Pentium M), per completar aquells aspectes que han quedat simplificats en els temes anteriors.
|
Total per tipus | T | P | L | Alt | L Ext. | Est | A Ext. | Total |
41,0 | 12,0 | 14,0 | 0 | 30,0 | 37,0 | 0 | 134,0 | |
Hores addicionals dedicades a l'avaluació | 0 | |||||||
Total hores de treball per l'estudiant | 134,0 |
Teoria i Problemes: Habitual (magistral)
Laboratori:
Els alumnes realitzen COL.LECTIVAMENT una única pràctica que consisteix en implementar un processador senzill amb 5, 6 o 7 etapes, superescalar, multicicle i amb predicció de salts. El processador ha d'incloure una jerarquia de cache (instruccions i dades), i ha de compartir dades amb un controlador de disc a través del bus i la memòria principal.
Es important emfatitzar que tots els alumnes treballen en el MATEIX processador. Es a dir, els alumnes s'estructuren en grups per etapes, pero al final han d'ensamblar totes les peces del processador i fer que funcioni. No cal destacar l'excel.lent impacte docent, de motivació i d'interès que aquesta manera de treballar comporta. Els alumnes s'enfronten a un projecte real, en el que els diferents equips s'han de comunicar entre ells, negociar, arribar a a acords i escollir una implementació que sigui simple per a tothom. A més a més, el professor vetlla per a que no es facin simplificacions excessives en la implementació, afegint doncs pressió per a que el procés total s'acosti al màxim a la realitat.
La planificació del curs s'adapta a la pràctica. Al prinicpi, es fan el màxim de classes de teoria (i alguna de problemes) per poder exposar en 4 setmanes els coneixements que permetin iniciar la pràctica quan abans millor.
Les sessions del laboratori poden ser indistinatament a l'aula de PCs o a l'aula de pissarra. En les primeres, els alumnes implementen detalls concrets de la pràctica i debuggen els circuits. Aquestes sessions son especialment útils en els moments que cal integrar les diferents etapes del processador.
El segon tipus de sessions son les sessions de disseny del processador, en el que els diferents grups discuteixen la implementació exacta del processador sota la supervisió del professor.
NP1 = Nota Pràctica Primera Entrega
NP2 = Nota Pràctica Segona Entrega
NE = Nota Examen
Nota Final = 0.4 NE + 0.2 NP1 + 0.4 NP2
La primera entrega de pràctica es realitzarà abans de la meitar del curs per verificar el bon funcionament dels components bàsics del processador i el bon seguiment de l'alumne dels conceptes explicats a teoria i posats en aplicació a la pràctica.
(-)