Professional Documents
Culture Documents
Ejercicios T6 (2022-23 Q1) DSBM UPC
Ejercicios T6 (2022-23 Q1) DSBM UPC
TEMA 6
EXÁMENES RESUELTOS
Este documento contiene una colección de exámenes parciales y finales
correspondientes al tema 6 de la asignatura DSBM. Todos los ejercicios tienen el
desarrollo de la solución o su valor final numérico.
Informacionsaddicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 11 de Juliol al despatx dels professors
Tenim un sistema A amb entrada Di i sortida Do que té 4 etapes C1 a C4 que tenen, cadascuna,
un retard de 2,2 ns.
Di Do Di Do
C1 C2 C3 C4 C1 R1 C2 R2 C3 R3 C4 R4
Ck
1
𝑓𝑓𝑚𝑚𝑚𝑚𝑚𝑚 = = 113,6 𝑀𝑀𝑀𝑀𝑀𝑀
8,8𝑛𝑛𝑛𝑛
𝑙𝑙𝑙𝑙𝑙𝑙è𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 = 4 ∙ 𝑇𝑇 = 11,6𝑛𝑛𝑛𝑛
1
Tenim un sistema amb pipeline de 6 etapes que executa un codi que té una instrucció de salt no
predictible per a cada 24 instruccions. Aquest sistema, funciona amb rellotge de 50 MHz i pot
fer entrar una instrucció a la pipeline en cada cicle de rellotge quan es produeixen hits a la seva
cache.Quan es produeix un miss de la cache, tenim un penalty equivalent a 10 cicles de rellotge.
c) Determineu el CPI promig del sistema si considerem, només, l'efecte dels salts no
predictibles.
𝑁𝑁𝐼𝐼 + 𝐿𝐿𝑃𝑃 − 1 24 + 6 − 1
�����
𝐶𝐶𝐶𝐶𝐶𝐶 = = = 1,2
𝑁𝑁𝐼𝐼 24
d) Determineu el miss rate (en %) que fa que es sistema tingui una velocitat efectiva igual
a la meitat de la que tindria si no haguessin misses. No considereu aquí l'efecte dels
salts.
1 10 2
+ 𝑀𝑀𝑀𝑀 ∙ =
𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶
Per tant:
10 1 1
𝑀𝑀𝑀𝑀 ∙ = 𝑀𝑀𝑀𝑀 = = 10%
𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 10
e) Determineu la velocitat del sistema en MIPS per un miss rate del 5% i codi amb un
salt no predicible cada 24 instruccions.
1 1 1,5
��������
𝑇𝑇𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 = + 𝑀𝑀𝑀𝑀 ∙ ∆𝑇𝑇 = (1 + 10 ∙ 𝑀𝑀𝑀𝑀) =
𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶
1 1 𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 50𝑀𝑀𝑀𝑀𝑀𝑀
𝑣𝑣 = = = = 27,78 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
��������
𝑇𝑇 ����� 1,5 ∙ �����
𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝐶𝐶𝐶𝐶𝐶𝐶 𝐶𝐶𝐶𝐶𝐶𝐶 1,5 ∙ 1,2 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐
𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖
Tenim un sistema amb 3 interrupcions amb diferents prioritats associades a RSIs que duren
600µs en tots tres cassos. La CPU triga 20 µs en fer un canvi de context. Una vegada iniciat el
canvi de context, aquest no es pot interrompre.
Si una RSI no es pot interrompre, el pitjor cas es que es demani una interrupció menys
prioritària just abans, per tant tindrem:
2
DSBM
31 de Maig de 2017
Data notes provisionals: 9 de Juny
Període al·legacions fins: 16 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 20 de Juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 14 de Juny al despatx dels professors
Determini per aquest programa el CPI, els MIPS i el temps total d'execució.
c) Consideri un sistema format per un processador i una memòria principal amb un temps
d'accés de 60 ns. Es desitja millorar el temps d'accés com a mínim en un factor 10 instalant
una cache L1 amb un temps d'accés de 4 ns. Quin hauria de ser, com a mínim, el Hit Ratio
de la cache?
Suposi que el penalty coincideix amb el temps d'accés de la memòria principal.
e) Tenim un sistema del que penja un conjunt de perifèrics a una única línia d'interrupció. Per
gestionar els perifèrics tenim dues opcions: Interrogar als perifèrics per determinar qui ha
generat la interrupció o fer servir una Daisy Chain.
1
Descrigui com es gestionarien les prioritats en ambdós cassos i si el mètode requerit per
canviar-les.
Raoni la possibilitat i utilitat de fer servir interrupcions vectoritzades en les dues opcions.
f) Un sistema te connectat un ratolí que s'ha de consultar 20 vegades cada segon per
actualitzar la seva posició. La seva rutina requereix 2000 cicles de rellotge per la seva
execució. Si la freqüència del rellotge es de 25 MHz:
2
SOLUCIÓ
Millora MIPS=
b) Un programa de prova s'està executant en un processador que funciona amb un rellotge de
40 MHz. El programa consta de 100.000 instruccions amb la distribució i cicles de rellotge
de la taula:
Determini per aquest programa el CPI, els MIPS i el temps total d'execució.
CPI= =1,55
MIPS= = 25,8
t_exec= = =3,875 ms
c) Consideri un sistema format per un processador i una memòria principal amb un temps
d'accés de 60 ns. Es desitja millorar el temps d'accés com a mínim en un factor 10 instalant
una cache L1 amb un temps d'accés de 4 ns. Quin hauria de ser, com a mínim, el HitRatio
de la cache?
Suposi que el penalty coincideix amb el temps d'accés de la memòria principal.
TAccess = THit + MR ⋅ ∆t Miss
6ns = 4ns + (1-HR)·60ns -> HR=0,9667 -> HR=96,67%
3
d) Consideri un processador amb instruccions de multiplicació que duren 12 cicles de rellotge
i apareixen amb una freqüència del 15% en les instruccions del programa. La resta
d'instruccions te una mitja de 4 cicles per instrucció.
d.1) Quin percentatge del temps dedica el processador a multiplicacions?
%t_mult = =34,61%
d.2) Suposi que es pot passar a les multiplicacions de 12 cicles a 8 amb el únic cost de
disminuir la freqüència de rellotge en un 20%.
Val la pena aquesta modificació? Raoni la resposta.
Originalment: -> CPI_1=12*0,15+4*0,85=5,2 amb freqüència f1=1/T1
amb la modificació el CPI baixarà: -> CPI_2=8*0,15+4*0,85=4,6
però com que la freqüència f2 es més petita que f1 (f2=0,8*f1)
el període serà més gran (T2=1,25*T1). Per tant, si calculem el temps d’execució d’1 instrucció:
t_exec1=5,2*T1
t_exec2=4,6*T2=4,6*1,25*T1=5,75*T1
El temps d’execució 2 és més gran i NO val la pena fer la modificació
e) Tenim un sistema del que penja un conjunt de perifèrics a una única línia d'interrupció. Per
gestionar els perifèrics tenim dues opcions: Interrogar als perifèrics per determinar qui ha
generat la interrupció o fer servir una DaisyChain.
Descrigui com es gestionarien les prioritats en ambdós cassos i si el mètode requerit per
canviar-les.
Consulta -> La prioritat queda assignada per l’ordre de consulta a cada perifèric. Per
canviar la prioritat tan sols s’ha de canviar l’ordre en que es consulta a cada perifèric.
Daisy Chain -> La prioritat queda assignada per l’ordre que ocupa un perifèric en la
cadena. Per canviar la prioritat s’ha de canviar el connexionat dels perifèrics al sistema.
No es pot fer per software.
Raoni la possibilitat i utilitat de fer servir interrupcions vectoritzades en les dues opcions.
Consulta -> La RSI és única. No s’utilitzen interrupcions vectoritzades.
Daisy Chain -> Cada perifèric té la seva RSI. Es fan servir interrupcions vectoritzades.
f) Un sistema te connectat un ratolí que s'ha de consultar 20 vegades cada segon per
actualitzar la seva posició. La seva rutina requereix 2000 cicles de rellotge per la seva
execució. Si la freqüència del rellotge es de 25 MHz:
4
DSBM Exàmen Final 19 de Gener de 2017
b) Tenim un processador que opera a 5MHz amb un CPI efectiu de 1,5 oferint 7 DMIPS.
El processador te 3 cárregues: (A) de 1 MIPS, (B) de 3 DMIPS i (C) que ocupa sempre
3ms cada 20ms.
Determineu la càrrega U total. Determineu a quant hem d'augmentar la freqüència
de rellotge per tenir una càrrega del 70%.
c) Tenim dues CPU que operen amb les següents capacitats màximes.
Disposem d'un programa a la CPU A que requereix 5 MIPS pel seu funcionament.
Estimeu els MIPS que requerirà si l'executem a la CPU B.
d) Tenim una CPU de 8 bits que te 4 línies d'interrupció IRQ0 a IRQ3. Expliqueu, de
manera raonada, el màxim de RSI diferents que pot gestionar depenent de que les
interrupcions siguin directes, vectoritzades o autovectorizades.
Solució
1 𝑀𝑀𝑀𝑀𝑀𝑀 3 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷
𝑓𝑓 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
+ 7 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 = 55%
𝑓𝑓
1,5 𝑀𝑀𝑀𝑀𝑀𝑀 5 𝑀𝑀𝑀𝑀𝑀𝑀
1
𝑓𝑓 = {1,5𝑀𝑀𝑀𝑀𝑀𝑀 + 2,14𝑀𝑀𝑀𝑀𝑀𝑀} = 6,62𝑀𝑀𝑀𝑀𝑀𝑀
55%
c) Tenim dues CPU que operen amb les següents capacitats màximes.
Disposem d'un programa a la CPU A que requereix 5 MIPS pel seu funcionament.
Estimeu els MIPS que requerirà si l'executem a la CPU B.
𝑣𝑣 5 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
𝑈𝑈𝐴𝐴 = = = 83,3%
𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚 6 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
La càrrega, en DMIPS, se suposa que es independent de la CPU, per tant donarà lloc a una
càrrega a la CPU B:
𝑣𝑣 6,66 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
𝑈𝑈𝐵𝐵 = = = 41,63%
𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚 16 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀
d) Tenim una CPU de 8 bits que te 4 línies d'interrupció IRQ0 a IRQ3. Expliqueu, de
manera raonada, el màxim de RSI diferents que pot gestionar depenent de que les
interrupcions siguin directes, vectoritzades o autovectorizades.
Les interrupcions directes i autovectoritzades només poden tenir una RSI per cada línea per tant,
només tindríem 4 RSI.
Les interrupcions vectoritzades posen un vector al bus de dades durant el reconeixement
d'interrupció. Com que el bus es de 8 bits, podríem tenir, a priori, fins a 256 interrupcions. Això
suposant que hi ha una taula única de vectors d'interrupció per les quatre línies d'interrupció.
Nom i Cognoms: Grup:
PROBLEMA 3: (2 punts) La descripció interna d’un port GPIO del µC Atmega48A és:
a) (1 punt) Indiqueu quin valor hem de programar al bit PUD per tal de tenir activada la
resistència de pull-up interna del GPIO.
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 19 de Gener de 10h a 13h al despatx C4-006
Tenim una CPU RISC (CPI = 1) que opera a 200MHz i que fa servir una cache que opera a la
velocitat de la CPU. La memòria principal, fora de la cache, te un temps d'accés de 100ns. Quan
hi a un miss, tenim un miss penalty equivalent a 16 accessos de la memòria principal.
a) Determineu el màxim miss rate per que la memòria cache sigui útil. Es a dir, que faci
el sistema mes ràpid que si no fos implementada.
�����
𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎 = 𝑇𝑇 + 𝑀𝑀𝑀𝑀 ∙ ∆𝑇𝑇
�����
𝑡𝑡𝑎𝑎𝑎𝑎𝑎𝑎 = 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚
Per tant:
𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚 = 𝑇𝑇 + 𝑀𝑀𝑀𝑀 ∙ 16 ∙ 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚
1 𝑇𝑇 1 1
𝑀𝑀𝑀𝑀 = �1 − �= �1 − � = 5,94%
16 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚 16 𝑓𝑓 ∙ 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚
b) Determineu el màxim miss rate per que la velocitat del processador no caigui per sota
de 50 MIPS.
La CPU te CPI = 1, per tant, MIPS = f[MHz], per tant, el límit es:
1
𝑡𝑡�����
𝑎𝑎𝑎𝑎𝑎𝑎 = = 20𝑛𝑛𝑛𝑛
50𝑀𝑀𝑀𝑀𝑀𝑀
Amb això:
20𝑛𝑛𝑛𝑛 = 𝑇𝑇 + 𝑀𝑀𝑀𝑀 ∙ 16 ∙ 𝑡𝑡𝑚𝑚𝑚𝑚𝑚𝑚
1 20𝑛𝑛𝑛𝑛 − 5𝑛𝑛𝑛𝑛
𝑀𝑀𝑀𝑀 = � � = 0,94%
16 100𝑛𝑛𝑛𝑛
Suposarem que la CPU descrita te una pipeline de 6 etapes i que no te cap predicció de salts.
Per les següents preguntes suposarem que tot el codi s'executa dins de la Cache.
1
c) Quantes instruccions s'han de poder executar abans d'un salt per mantenir la
velocitat per sobre de 150 MIPS.
��������������
𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 = 𝑓𝑓⁄�����
𝐶𝐶𝐶𝐶𝐶𝐶
𝑓𝑓
�����
𝐶𝐶𝐶𝐶𝐶𝐶 =
��������������
𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉
Sabem:
𝑁𝑁𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 + 𝐿𝐿𝑃𝑃 − 1
�����
𝐶𝐶𝐶𝐶𝐶𝐶 =
𝑁𝑁𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖
Per tant:
• Considereu nul el temps que passa des que es rep una interrupció fins que s'accepta
• Després d'acceptar una interrupció ha d'acabar la instrucció màquina actual.
• Per guardar o recuperar el contexte d'execució calen 12 cicles de rellotge
• No hi ha late arrival ni tail chaining
d) Quina es la màxima latència d'interrupció per la prioritat alta (en ns). Considereu dos
cassos:
1) Una interrupció no pot interrompre a un altre.
2) Una interrupció pot interrompre a un altre menys prioritària.
1) El cas pitjor es que s'hagi demanat la interrupció més llarga just abans i que acabem de
començar una instrucció nova:
6 cicles per acabar la instrucció actual
12 cicles per guardar contexte
126 cicles per la RSI
12 cicles per recuperar el contexte
12 cicles per guardar el nou contexte
El total es de 168 cicles que son 840ns treballant a 200MHz
2
e) Determineu la ocupació U (en %) de la CPU associada a les interrupcions.
𝑓𝑓𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒
𝑈𝑈 = 𝑓𝑓𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 𝑇𝑇𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 = 𝑓𝑓𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 ∙ 𝑇𝑇 ∙ 𝑛𝑛𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 = 𝑛𝑛
𝑓𝑓𝐶𝐶𝐶𝐶𝐶𝐶 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐
1000𝐻𝐻𝐻𝐻
𝑈𝑈𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 = 84 = 420 ∙ 10−6
200𝑀𝑀𝑀𝑀𝑀𝑀
200𝐻𝐻𝐻𝐻
𝑈𝑈𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 150 = 150 ∙ 10−6
200𝑀𝑀𝑀𝑀𝑀𝑀
20𝐻𝐻𝐻𝐻
𝑈𝑈𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = 114 = 11,4 ∙ 10−6
200𝑀𝑀𝑀𝑀𝑀𝑀
Finalment:
3
SBM Examen Final 21 de Gener de 2015
PROBLEMA 2 (3 Punts)
3
a) (0.25 punts) Quin valor per defecte espera l’acceleròmetre de la línia de relloge ? (el valor
quan no hi ha transacció). Justifiqueu breument la resposta.
b) (0.25 punts) En quins flanc de rellotge (pujada o baixada) captura les dades d’entrada
l’acceleròmetre ? Justifiqueu breument la resposta.
c) (0.25 punts) En quins flancs de rellotge (pujada o baixada) treu les dades de sortida
l’acceleròmetre ? Justifiqueu breument la resposta.
4
Com es pot veure, el rellotge del bus SPI generat pel microcontrolador varia en funció dels bits CPOL
i CPHA (bits de configuració).
d) (0.75 punts) Indiqueu com s’han de programar els bits CPOL i CPHA de cara a comunicar-se
amb l’acceleròmetre. Justifiqueu breument la resposta.
e) (0.75 punts) Si fSCK=8 MHz, quin seria el màxim temps possible de setup en lectura del senyal
SDI de l’acceleròmetre per tal que la lectura es faci correctament ? Compareu aquesta dada
amb la real de l’acceleròmetre. Complim el requisit ?
f) (0.75 punts) Si fSCK=8 MHz, quin seria el màxim temps possible de hold en lectura del senyal
SDI de l’acceleròmetre per tal que la lectura es faci correctament ? Compareu aquesta dada
amb la real de l’acceleròmetre. Complim el requisit ?
5
PROBLEMA 3 (3.5 Punts)
A banda de les interrupcions (IRQ0-IR29) hi ha una instrucció ensamblador (TRAP) que genera una
interrupció software que no és enmascarable. Aquesta interrupció té més prioritat que qualsevol
interrupció hardware.
En el mode ‘concurrent’ del microcontrolador les interrupcions no s’aniden (no s’interrumpeixen entre
elles), llevat del cas de la interrupció deguda a la instrucció TRAP. Un exemple de seqüenciació
d’execucions de rutines de servei d’interrupció es pot veure a la següent figura (en aquest exemple
considerem que totes les RSIs duren 3 divisions temporals):
a) (0.5 punts) Si cada cop que s’entra a una RSI, la quantitat de memòria enmagatzemada a la
pila és fixa (10 bytes). Quina serà la màxima quantitat de memòria ocupada a la pila en
quasevol moment degut a guardar la informació de retorn de les interrupcions ?
Amb aquest esquema no és possible canviar la prioritat de les interrupcions, i només la instrucció
TRAP pot interrompre una interrupció en curs. Per augmentar la versatilitat del microcontrolador els
dissenyadors del microcontrolador l’han dissenyat de manera que a cada interrupció hardware se li pot
assignar una ‘prioritat software’:
6
Aquesta priorització software es té en compte abans que la hardware (nested interrupt mode):
Si ara hem programat les interrupcions hardware IRQ0, IRQ1, IRQ2, IRQ3 i IRQ4 amb les prioritats
software seqüents:
Software priority 2 1 0 1 3
c) (0.5 punts) Quina ha estat l’ocupació màxima de la pila deguda a interrupcions durant
l’execució del diagrama de l’apartat b) ? (considereu que cada cop que hi ha una interrupció la
informació d’adreça de retorn, registres, etc., enmagatzemada a la pila és de 10 bytes)
d) (0.5 punts) En aquest mateix mode, quina serà l’ocupació màxima (en bytes) de la pila que pot
arribar a donar-se deguda a les interrupcions ?
7
SEBM
3 de Juny de 2015
Data notes provisionals: 10 de Juny
Període al·legacions fins: 23 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 30 de Juny
c) Tenim una CPU que te una línea NMI autovectoritzada i un línea IRQ vectoritzada.
Els vectors d'interrupció que es posen al bus de dades son de 8 bits.
Quin es el màxim de RSI independents que podem tenir al sistema?
Raoneu si pot haver diferències en la latència d'interrupció a la línea NMI i IRQ.
Tenim una CPU que opera a 82MHz que te una latència mínima d'interrupció de 8
cicles de rellotge associada al canvi de context des del programa principal. La CPU te tail
chaining que fa que, quan hi ha una interrupció pendent durant l'execució d'una RSI, el temps
entre l'acabament d'una RSI i l'inici de l'altre es de només 4 cicles.
Les interrupcions no es poden iniciar si hi ha un altre en curs. Però tenim late arrival, es a dir,
sempre s'executa la RSI de la interrupció més prioritària que s'ha demanat just abans de acabar
el canvi de context.
Tenim tres interrupcions. Cap no repeteix la petició en menys de 50µs. La següent taula mostra
el nombre de cicles de rellotge que triga cada RSI en cicles de CPU.
1
SOLUCIO QUESTIONS BREUS
c) Tenim una CPU que te una línea NMI autovectoritzada i un línea IRQ vectoritzada.
Els vectors d'interrupció que es posen al bus de dades son de 8 bits.
Quin es el màxim de RSI independents que podem tenir al sistema?
Raoneu si pot haver diferències en la latència d'interrupció a la línea NMI i IRQ.
La línea IRQ pot tenir 256 RSI. La línea NMI només una. En total tenim 257 RSIs máximes.
La latència de la línea IRQ serà major per que s'ha de fet el procés de posar el vector al bus.
IRQ0: Pitjor cas es IRQ2 (la més llarga) començant a córrer just quan es demana IRQ0.
No incloem el primer canvi de context per que hi ha late arrival.
Amb el tail chaining tindrem:
1
𝐿𝐿𝐿𝐿𝐿𝐿è𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 = (300 + 4) = 3,7𝜇𝜇𝜇𝜇
𝑓𝑓
IRQ1: Pitjor cas es IRQ2 començant a córrer just quan es demana IRQ1 i amb IRQ0 demanada
mentre corre IRQ2. Novament no hem d'incloure el primer canvi de context. Amb el tail
chaining tindrem:
1
𝐿𝐿𝐿𝐿𝐿𝐿è𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 = (300 + 4 + 200 + 4) = 6,19𝜇𝜇𝜇𝜇
𝑓𝑓
IRQ2: Pitjor cas es que IRQ0 i IRQ1 es demanin al mateix temps. Aquest cas inclou el primer
canvi de context:
1
𝐿𝐿𝐿𝐿𝐿𝐿è𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛 = (8 + 200 + 4 + 180 + 4) = 4,83𝜇𝜇𝜇𝜇
𝑓𝑓
El Watchdog es un temporitzador decreixent que fa reset de la CPU passat un cert temps en que
no s'ha actualitzat. Es fa servir per fer un reset quan el programa que executa la CPU no
funciona correctament.
El IWDG te un rellotge independent per continuar actiu encara que no funcioni el rellotge
principal de la CPU.
2
SEBM
21 de Gener de 2015
Data notes provisionals: 26 de Gener
Període al·legacions fins: 28 de Gener
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 29 de Gener
c) Describa los tres tipos de interrupciones que hay respecto a la manera de identificar
la RSI asociada.
e) Compare los buses SPI e I2C a nivel de: número de masters, número de líneas y
velocidad de transmisión.
25
PREGUNTAS BREVES (Solución) (1,2 puntos)
c) Describa los tres tipos de interrupciones que hay respecto a la manera de identificar
la RSI asociada.
e) Compare los buses SPI e I2C a nivel de: número de masters, número de líneas y
velocidad de transmisión.
El bus SPI está pensado para tener un único master, el I2C es multimaster.
El bus SPI requiere 3 líneas (CLK, MISO y MOSI) mas una línea adicional para cada esclavo.
El bus I2C requiere sólo de 2 líneas con independencia del número de dispositivos conectados.
El bus I2C requiere gestionar un protocolo y además su velocidad de reloj es menor que la
máxima disponible en SPI. Adicionalmente I2C es half-duplex mientras que SPI es full-duplex.
De todo ello SPI puede ser sustancialmente más rápido que I2C.
26
Exàmen final SBM 21 de Gener de 2015
PROBLEMA 2 (3 Punts)
3
a) (0.25 punts) Quin valor per defecte espera l’acceleròmetre de la línia de relloge ? (el valor
quan no hi ha transacció). Justifiqueu breument la resposta.
b) (0.25 punts) En quins flanc de rellotge (pujada o baixada) captura les dades d’entrada
l’acceleròmetre ? Justifiqueu breument la resposta.
c) (0.25 punts) En quins flancs de rellotge (pujada o baixada) treu les dades de sortida
l’acceleròmetre ? Justifiqueu breument la resposta.
4
Com es pot veure, el rellotge del bus SPI generat pel microcontrolador varia en funció dels bits CPOL
i CPHA (bits de configuració).
d) (0.75 punts) Indiqueu com s’han de programar els bits CPOL i CPHA de cara a comunicar-se
amb l’acceleròmetre. Justifiqueu breument la resposta.
e) (0.75 punts) Si fSCK=8 MHz, quin seria el màxim temps possible de setup en lectura del senyal
SDI de l’acceleròmetre per tal que la lectura es faci correctament ? Compareu aquesta dada
amb la real de l’acceleròmetre. Complim el requisit ?
f) (0.75 punts) Si fSCK=8 MHz, quin seria el màxim temps possible de hold en lectura del senyal
SDI de l’acceleròmetre per tal que la lectura es faci correctament ? Compareu aquesta dada
amb la real de l’acceleròmetre. Complim el requisit ?
5
PROBLEMA 3 (3.5 Punts)
A banda de les interrupcions (IRQ0-IR29) hi ha una instrucció ensamblador (TRAP) que genera una
interrupció software que no és enmascarable. Aquesta interrupció té més prioritat que qualsevol
interrupció hardware.
En el mode ‘concurrent’ del microcontrolador les interrupcions no s’aniden (no s’interrumpeixen entre
elles), llevat del cas de la interrupció deguda a la instrucció TRAP. Un exemple de seqüenciació
d’execucions de rutines de servei d’interrupció es pot veure a la següent figura (en aquest exemple
considerem que totes les RSIs duren 3 divisions temporals):
a) (0.5 punts) Si cada cop que s’entra a una RSI, la quantitat de memòria enmagatzemada a la
pila és fixa (10 bytes). Quina serà la màxima quantitat de memòria ocupada a la pila en
quasevol moment degut a guardar la informació de retorn de les interrupcions ?
Amb aquest esquema no és possible canviar la prioritat de les interrupcions, i només la instrucció
TRAP pot interrompre una interrupció en curs. Per augmentar la versatilitat del microcontrolador els
dissenyadors del microcontrolador l’han dissenyat de manera que a cada interrupció hardware se li pot
assignar una ‘prioritat software’:
6
Aquesta priorització software es té en compte abans que la hardware (nested interrupt mode):
Si ara hem programat les interrupcions hardware IRQ0, IRQ1, IRQ2, IRQ3 i IRQ4 amb les prioritats
software seqüents:
Software priority 2 1 0 1 3
c) (0.5 punts) Quina ha estat l’ocupació màxima de la pila deguda a interrupcions durant
l’execució del diagrama de l’apartat b) ? (considereu que cada cop que hi ha una interrupció la
informació d’adreça de retorn, registres, etc., enmagatzemada a la pila és de 10 bytes)
d) (0.5 punts) En aquest mateix mode, quina serà l’ocupació màxima (en bytes) de la pila que pot
arribar a donar-se deguda a les interrupcions ?
7
SEBM
20 de Gener de 2014
Data notes provisionals: 26 de Juny
Període d’al·legacions fins: 30 de Juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Data notes revisades: 2 de Juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
• L'examen corregit es podrà veure el dia 27 de Juny de 12 a 13h a l'aula seminari (C4 001)
CUESTIONES BREVES
SOLUCION
1
SEBM
16 de Gener de 2014
Data notes provisionals:22/1/2014
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Període d’al·legacions fins 24/1/2014
Data notes revisades: 27/1/2014
e) Explique qué significa DMA y las ventajas que aporta que esté disponible en un
periférico.
1
SOLUCION
La diferencia reside en donde se halla la RSI para cada línea de interrupción IRQ:
Directas: La RSI ha de empezar en una posición concreta para cada línea IRQ
Autovectorizadas: La RSI empieza en una posición apuntada por un vector para cada IRQ
Vectorizadas: El periférico proporciona a la CPU qué vector ha de emplearse para llamar a
la RSI
Excepción es toda salida del flujo normal del programa. La interrupción es un tipo
concreto de excepción externa asociada a líneas de interrupción externas.
Ejemplos de excepciones:
- Error de bus
- Supervisor Call
- División por cero
- Acceso no autorizado por la MMU
etc...
e) Explique qué significa DMA y las ventajas que aporta que esté disponible en un
periférico.
DMA significa Direct Memory Access. Significa que un periférico puede controlar los
buses del sistema. La ventaja fundamental es que permite descargar a la CPU de la tarea
de mover la información entre el periférico y la memoria.
2
Disseny Microelectrònic I
10 de Juny de 2013
Data notes provisionals: 18 de juny
DEPARTAMENT D’ENGINYERIA ELECTRÒNICA
Període d’al·legacions: 18 a 21 de juny
Data notes revisades: 25 de juny
Informacions addicionals:
• Duració de l’examen: 2h 30m.
ENUNCIADO
a) Un sistema emplea una transmisión serie RS232 a 36000 baudios con 8 bits de datos, y
un bit de paridad, start y stop.
Determine la máxima velocidad de transmisión real que puede ofrecer en Bytes/s.
1
SOLUCIÓN
a) Un sistema emplea una transmisión serie RS232 a 36000 baudios con 8 bits de datos, y
un bit de paridad, start y stop.
Determine la máxima velocidad de transmisión real que puede ofrecer en Bytes/s.
Baudios son símbolos por segundo. En el caso de una transmisión binaria como RS232 se trata
de bits por segundo. Un byte son 8 bits, pero tenemos 3 bits de overhead (start, paridad y stop).
Por tanto, para transmitir un Byte hemos de transferir 11 bits. De ello:
Algunas ventajas:
• Prioridad programable en PIC vs fijada por hardware en Daisy Chain
• Mayor simplicidad de los periféricos en PIC respecto a necesidad de reconocimiento de
interrupciones vectorizadas en Daisy Chain.
• Potencial mejor respuesta temporal en PIC respecto Daisy Chain, especialmente cuando
hay muchos periféricos.
• Posibilidad con PIC de interrumpir una interrupción en curso.