id192693
ANÀLISI DE RENDIMENT I OPTIMITZACIÓ EN
TARGETES SIM
MARC ROCA CAMPOS
Di ec o /a
ALEXPAJUELOGONZALEZ(Giesecke+De ien )
Ti ulació
G auenEnginye iaIn o mà ica(Tecnologiesdelain o mació)
Memò ia del eball de i de g au
Facul a d'In o mà ica de Ba celona (FIB)
Uni e si a Poli ècnica de Ca alunya (UPC) - Ba celonaTech
15/05/2025
Anàlisi de endimen i op imi zació en a ge es SIM
Resum
Les SIM (Subsc ibe Iden i y Module) són disposi ius embedded amb dissenya s
pe a connec a -se a xa xes mòbils de mane a segu a i eficien .
En aques p ojec e és comba el p oblema de eballa en l’es udi i millo a de
emps d’execució d’aques s disposi ius. T eballan amb el o ma de a ge a.
Es desen olupen dues eines clau pe es udia el compo amen de les SIM. La
p ime a, és un pe filado pe ex eu e aces de codi pe a isuali za amb
Speedscope. La segona, Debug Time , usa empo i zado s in e ns pe mesu a
emps en a ge a.
El p ojec e se à desen olupa en SCRUM en e amen pe l’au o .
Resumen
Las SIM (Subsc ibe Iden i y Module) son disposi i os embedded diseñados pa a
conec a se a edes mó iles de mane a segu a y eficien e.
En es e p oyec o se abo da el p oblema de es udia y mejo a los iempos de
ejecución de es os disposi i os. T abajando con el o ma o de a je a.
Se desa ollan dos he amien as cla e, u ilizadas pa a es udia el compo amien o
de las SIM. La p ime a, es un pe filado pa a ex ae azas de código pa a
isualiza con Speedscope. La segunda, Debug Time , u iliza empo izado es
in e nos pa a medi iempos en a je a.
El p oyec o se á desa ollado en SCRUM en e amen e po el au o .
Abs ac
SIM (Subsc ibe Iden i y Module) a e embedded de ices designed o secu ely and
e ficien ly connec o mobile ne wo ks.
This p ojec add esses he p oblem o s udying and imp o ing execu ion imes o
hese de ices. Wo king wi h he ca d o ma .
Two key ools a e de eloped o s udy he beha io o SIM. The fi s ool is a p ofile
ha ex ac s code aces o isualiza ion in Speedscope. The second, Debug
Time , uses in e nal ime s o measu e ime on ca ds.
This p ojec will be de eloped using SCRUM en i ely by he au ho .
0
Anàlisi de endimen i op imi zació en a ge es SIM
Taula de con ingu s
1. In oducció......................................................................................................................................... 5
1.1. Funcionamen d’un a ge a SIM.............................................................................................5
1.1.1. Comandes APDU.............................................................................................................................5
1.2. Image T us ed Loade (ITL)........................................................................................................7
1.3. Iden ificació del P oblema........................................................................................................8
2. Abas .................................................................................................................................................... 9
2.1. Objec ius..............................................................................................................................................9
2.1.1. Objec iu p incipal.......................................................................................................................... 9
2.1.2. Objec ius secunda is..................................................................................................................9
2.2. Reque imen s..................................................................................................................................9
2.2.1. Reque imen s uncionals........................................................................................................9
2.2.1. Reque imen s no uncionals...............................................................................................10
2.3. S akeholde s...................................................................................................................................10
2.4 Obs acles i iscs............................................................................................................................. 10
3. Jus ificació........................................................................................................................................ 11
3.1. Solucions ac uals............................................................................................................................11
3.2. Jus ificació.........................................................................................................................................11
3.2.1. C eació d’eines de pe filació................................................................................................. 11
3.2.2. Millo a de endimen ............................................................................................................... 12
4. Me odologia.................................................................................................................................... 13
4.1. T eball..................................................................................................................................................13
4.2. Seguimen ....................................................................................................................................... 13
5. Planificació...................................................................................................................................... 14
5.1. Desc ipció de les asques.........................................................................................................14
5.1.1. Ges ió del p ojec e...................................................................................................................... 14
5.1.2. Mesu a de endimen .............................................................................................................. 14
5.1.3. Anàlisi de esul a s......................................................................................................................15
5.1.4. Desen olupamen ......................................................................................................................15
5.1.5. Resum.................................................................................................................................................16
5.2. Diag ama de Gan ......................................................................................................................17
5.3. Recu sos............................................................................................................................................18
5.4. Ges ió de iscs................................................................................................................................18
5.5. Des iació en planificació..........................................................................................................18
5.6. Es a final de les asques......................................................................................................... 19
6. Ges ió econòmica......................................................................................................................... 21
6.1. P essupos .........................................................................................................................................21
6.1.1. Cos de pe sonal............................................................................................................................21
6.1.2. Cos del Ha dwa e..................................................................................................................... 22
6.1.3. Cos de l’espai............................................................................................................................... 23
6.1.4. Cos del So wa e.......................................................................................................................24
1
Anàlisi de endimen i op imi zació en a ge es SIM
6.1.5. Riscs.....................................................................................................................................................25
6.1.5. To al......................................................................................................................................................25
6.2. Con ol de ges ió......................................................................................................................... 25
7. Sos enibili a ...................................................................................................................................27
7.1. Dimensió econòmica................................................................................................................. 27
7.2. Dimensió social.............................................................................................................................27
7.3. Dimensió mediambien al.......................................................................................................27
8. A qui ec u a d’una a ge a SIM.............................................................................................28
8.1. P ocessado s (Secu eCo e SC300/Co ex-M35P)....................................................... 28
8.1.1. Componen s en comú.............................................................................................................29
8.1.2. Di e ències......................................................................................................................................30
8.2. Memò ia Flash..............................................................................................................................30
8.3. In e ícies de comunicació..................................................................................................... 31
8.4. Componen s addicionals....................................................................................................... 33
9. Pe filació en a ge es SIM........................................................................................................34
9.1. Pe i è ics pe la pe filació en p ocessado s Co ex-M.............................................34
9.1.1. Da a Wa chpoin and T ace (DWT).................................................................................34
9.1.2. Embedded T ace Mac ocell (ETM)..................................................................................35
9.1.3. Ins umen T ace Mac ocell (ITM)................................................................................... 35
9.1.4. Diag ama de les componen s de depu ació amb ARM..................................35
9.2. Pe filació amb Keil µVision....................................................................................................36
9.2.1. Pe o mance Analyze .............................................................................................................37
9.2.2. T ace Reco ding.........................................................................................................................38
9.2.3. Funcions de depu ació en Keil µVision......................................................................39
9.2.4. Simulació amb µVision - Ins uc ion Se Simula o s (ISS)...........................40
9.2.5. A an a ges i desa an a ges del ISS de Keil............................................................40
9.2.3. Emulació amb µVision........................................................................................................... 41
9.2.4. A an a ges i desa an a ges d’emulació amb Keil..............................................41
9.3. Simulació So wa e uncional de sis emes embedded.........................................42
9.3.1. A an a ges i desa an a ges de simulació uncional......................................... 42
9.4. Tes s usan lec o s de a ge es...........................................................................................42
9.4.1. A an a ges i desa an a ges de es s usan lec o s............................................43
9.5. Ins umen ali zació del codi en a ge es SIM........................................................... 43
9.5.1. Ins umen ali zació pe la mesu a de emps......................................................... 43
9.5.2. A an a ges i desa an a ges de la ins umen ali zació pe la mesu a de
emps............................................................................................................................................................ 44
9.5.3. Ins umen ali zació pe l’ob enció de aces.........................................................44
9.5.4. A an a ges i desa an a ges de la ins umen ali zció pe l’ob enció de
aces..............................................................................................................................................................45
10. Desc ipció de la solució.......................................................................................................... 46
10.1. Conclusions................................................................................................................................... 46
10.2. T aces de codi pe cada comanda.................................................................................. 46
2
Anàlisi de endimen i op imi zació en a ge es SIM
10.3. Mesu a de emps.......................................................................................................................47
11. Speedscope................................................................................................................................... 48
11.1. Ob enció dels egis es............................................................................................................48
11.1.1. Opcions de compilació...........................................................................................................49
11.1.2. Funcions hooks...........................................................................................................................49
11.1.3. Fo ma d’emmaga zema ge.............................................................................................49
11.1.4. Fo ma de aces....................................................................................................................... 50
11.2. Funcionamen de l’eina..........................................................................................................50
11.5. Anàlisi de aces...........................................................................................................................53
12. Debug Time .................................................................................................................................54
12.1. Tempo i zado Ha dwa e en a ge es SIM...................................................................54
12.2. Rep esen ació del emps...................................................................................................... 55
12.3. Funcionamen .............................................................................................................................56
12.4. API pel p og amado ...............................................................................................................56
12.5. Emmaga zema ge i e o n dels alo s..........................................................................57
12.6. Disseny............................................................................................................................................ 58
12.6.2. Diag ama UML..........................................................................................................................58
12.6.2. P incipis So wa e en el disseny....................................................................................59
12.7. Exemple d’ús................................................................................................................................60
13. Mesu es, anàlisi i millo es....................................................................................................... 62
13.1. Mesu a....................................................................................................................................62
13.2. Anàlisi dinàmic............................................................................................................................62
13.2.1. Codi segu ......................................................................................................................................63
13.3. Compilació.....................................................................................................................................63
13.4. Anàlisi es à ic.............................................................................................................................. 64
14. Conclusions...................................................................................................................................65
14.1. Resum...............................................................................................................................................65
14.2. Complimen d’objec ius........................................................................................................65
14.2.1. Objec iu P incipal....................................................................................................................65
14.2.2. Objec ius Secunda is........................................................................................................... 65
14.3. Assolimen de compe ències............................................................................................ 66
14.4. Adequació al coneixemen del g au..............................................................................66
14.5. T eball u u ..................................................................................................................................67
14.6. Opinió pe sonal..........................................................................................................................67
15. Glossa i............................................................................................................................................68
16. Bibliog afia....................................................................................................................................70
3
Anàlisi de endimen i op imi zació en a ge es SIM
Taula de aules
Taula 1: Resum de asques. Elabo ació p òpia.............................................................................16
Taula 2: Es a ac ual del p ojec e. Elabo ació p òpia..............................................................20
Taula 3: Sou mi jans dels ols. Elabo ació p òpia.......................................................................21
Taula 4: Cos de les asques. Elabo ació p òpia.........................................................................22
Taula 5: Cos del Ha dwa e. Elabo ació p òpia........................................................................... 23
Taula 6: Cos de l’espai. Elabo ació p òpia....................................................................................24
Taula 7: Cos del So wa e. Elabo ació p òpia............................................................................. 25
Taula 8: Cos s o als. Elabo ació p òpia.......................................................................................... 25
Taula 9: Especificació a ge es SIM del eball. Elabo ació p òpia..................................28
Taula 10: Taula amb emps de memò ia flash de STM32F1. Elabo ació p òpia.........31
Taula 11: Fo ma d’emmaga zema ge de ma ques emps. Elabo ació p òpia........ 58
Taula de figu es
Figu a 1: Exemple d’APDU SELECT aco d a especificació 3GPP......................................... 6
Figu a 2: Diag ama del p océs d’ac uali zació amb ITL..........................................................8
Figu a 3: Diag ama Gan del p ojec e. Elabo ació p òpia...................................................17
Figu a 4: Componen s de p ocessado s SC300 i M35P........................................................ 29
Figu a 5: In e ície especificada pe ISO/IEC 7816 pe a ge es SIM...............................32
Figu a 6: Fo ma s de a ge es SIM, jun amen amb eSIM...................................................33
Figu a 7: Diag ama d’ETM i ITM en Co ex-M3........................................................................... 36
Figu a 8: Fines a de Keil µVision en depu ació de codi.......................................................37
Figu a 9: Fines a de Pe o mance Analyze de Keil µVision.............................................38
Figu a 10: Fines a de Ins uc ion T ace de Keil µVision.......................................................39
Figu a 11: ULINKp o, disposi iu pe connec a o dinado a emulado ...........................41
Figu a 12: In e ície de l’eina Speedscope en inici................................................................... 48
Figu a 13: Log en Speedscope mos a de mane a empo al.............................................51
Figu a 14: Visuali zació del Log en o ma Le Hea y........................................................... 52
Figu a 15: Visuali zació del Log en o ma Sandwich............................................................. 52
Figu a 16: Diag ama UML del disseny de Debug Time . Elabo ació p òpia...............59
4
Anàlisi de endimen i op imi zació en a ge es SIM
1. In oducció
Les SIM (Subsc ibe Iden i y Module) són el p incipal ac o en elecomunicacions
mòbil. Son secu e elemen s (SE), defini s com a xips que o e eixen p o ecció de
dades i se eis usa s pe iden ificaciò, emmaga zema ge segu de dades. En
aques cas el se ei és d'au en icació a xa xa mòbil[32].
Habi en mol s disposi ius ambé com a sis emes inc us a s; en aques cas
s'anomenen eSIM (Embedded SIM). Qualse ol disposi iu que es connec i a xa xes
mòbils po con eni eSIM; càme es de segu e a , mòbils, co xes[32]...
1.1. Funcionamen d’un a ge a SIM
El p opòsi d’usa una a ge a SIM com au en icació en xa xa mòbil és aïlla lA
in o mació i p ocessos d’a acs i e o s.
Pe a du a e me aques a asca enen un mic ocon olado al cen e d'aques es,
un ci cui in eg a amb o s els elemen s necessa is pe execu a un p og ama;
memò ia, p ocessado i pe i è ics de comunicació amb l'ex e io . Aques s són de
mida i capaci a s eduïdes, comp en de mol poca memò ia, p ocessado s len s i
d’ins uccions simples[41].
1.1.1. Comandes APDU
Les a ge es SIM con enen un sis ema ope a iu enca ega de ges iona els
se eis que o e eix. La uni a de comunicació és la comanda Applica ion P o ocol
Da a Uni (APDU), es uc u a definida en es ànda d ISO/IEC 7816[45].
Les comandes APDU són missa ges en ia s pe lec o s de a ge es que
encapsulen comandes. Fo ma s pe una capçale a de 5 by es codifican ins ucció
i classe de la comanda, i fins a 255 by es de dades opcionals. La capçale a con é el
següen o ma .
● CLA (Class). By e codifican la classe de comanda.
● INS (Ins uc ion). By e codifican la ins ucció de la comanda.
● P1 (Pa ame e 1). By e codifican in o mació pa icula de la comanda.
● P2 (Pa ame e 2). By e codifican in o mació pa icula de la comanda.
● Lc (Lengh o Command Da a) . By e codifican la mida del payload
( àile ) amb dades.
Segui de la capçale a enim.
● Da a. Payload opcional con enin dades de la comanda. Tamany codifica
pe Lc.
● Le (Expec ed Response Leng h). By e opcional codifican el núme o de
by es espe a en la espos a.
5
Anàlisi de endimen i op imi zació en a ge es SIM
En espos a de la comanda, la a ge a e o na à un missa ge APDU esponse amb
el següen o ma .
● Da a. Payload ( àile ) opcional con enin dades de la espos a. Tamany
codifica pel pa àme e Le.
● SW (S a us Wo d). Missa ge espos a de la comanda codifica en 2 by es.
En la figu a eiem d’exemple una ins ucció de Selec del Mas e File (MF), sense
Le[24].
Figu a 1: Exemple d’APDU SELECT aco d a especificació 3GPP.
Una espos a ípica de la a ge a se ia espond e 90 00. Aques és el missa ge més
comú pe comanda execu ada sa is ac ò iamen .
Exemples de les comandes APDU més comunes, pe l’especificació de ISO 7816
són[45].
● SELECT. Selecciona fi xe o aplicació.
● READ BINARY. Llegeix con ingu de fi xe .
● UPDATE BINARY. Ac uali za con ingu de fi xe .
● GET DATA. Llegeix con ingu de dades iden ificades pe e ique a ( ag).
● EXTERNAL AUTHENTICATE. Au en ica la a ge a usan alo únic gene a
en la sessió.
● VERIFY. Ve ifica PIN o con asenya.
● GET RESPONSE. Re o na més dades en cas que l’an e io comanda APDU
ingui més dades disponibles (la a ge a espon amb SW 61 XX, on XX és el
nomb e de by es penden s).
6
Anàlisi de endimen i op imi zació en a ge es SIM
1.2. Image T us ed Loade (ITL)
El sis ema ope a iu ha de se ca ega al xip. També és necessa i inclou e dades
úniques pe la a ge a o amília d'aques es. Aques p océs s'anomena
pe sonali zació. Les dades són emmaga zemades en el p océs de p oducció de la
a ge a. Exemples comuns de dades ca egades en la pe sonali zació són
aplicacions o claus pe iden ifica els usua is[35].
Com qualse ol al e disposi iu amb So wa e, és ulne able a e o s o necessi a
ac uali zacions. Pe ac uali za el sis ema ope a iu sense necessi a de ecolli
ísicamen les a ge es, a Giesecke+De ien es a desen olupa un upda e agen
o ITL (Image T us ed Loade ).
A més, aques p océs pe me gua da i ecupe a en la no a e sió les dades de la
pe sonali zació, que són p oduïdes en un en o n segu (aques es no poden se
modificades). Fa em se i el e me ITL i upda e agen indis in amen [36].
Els passos que segueix el ITL pe ac uali za el sis ema ope a iu són.
● El ITL p en con ol de la SIM.
● Rep una ima ge (p og ama en o ma execu able) del sis ema ope a iu a
a és de comandes APDU i la cà ega al secu e elemen .
● La ima ge s’ins al·la ac uali zan el sis ema ope a iu.
● En un pas final el ITL e o na el con ol al nou sis ema ope a iu de la SIM.
En el següen diag ama eiem aques p océs[7].
7
Anàlisi de endimen i op imi zació en a ge es SIM
5. Planificació
En aques apa a es p o undi za à en la planificació empo al del p ojec e. Inicia
el 23 de se emb e amb da a final de p esen ació el 24 de gene de 2025.
P ime amen , la pa de ges ió de p ojec es ocupa à de l’inici del p ojec e el 23 de
se emb e fins a fi d’assaja la p esen ació, s’es ima eni lles a aques a el 15 de
gene . Les 2 p ime es se manes en el plan ejamen se an 20 ho es se manals. La
edacció de la memò ia se an 80 ho es en o al, és eballa à finsa la se mana de
l’en ega segons a anci el p ojec e. La p epa ació de la p esen ació se an 30 ho es
o als. En o al 170 ho es.
La pa més ècnica del p ojec e es eballa à, majo i à iamen , en e-se mana
dins les oficines de Giesecke+De ien del 14 d’oc ub e al 13 de desemb e. Es
dedica à de mi jana 20 ho es se manals de eina en oficines, un o al de 200 ho es
fixes. Complemen ada d’es udi 20 ho es d’es udi addicional.
5.1. Desc ipció de les asques
Les asques es an di idides en g ups segons la na u alesa de la asca, cada un
dels següen s subapa a s con é un ipus.
5.1.1. Ges ió del p ojec e
To es les asques de ges ió de p ojec e se an eballades en emo .
● GP1 - Planejamen inicial. P ime a asca. Comença amb l’es udi del
con ex , definició d’abas del p ojec e. Seguidamen de la planificació. En
da e a ins ància es udi de sos enibili a i p essupos . Són les asques a
en ega en la p ime a en ega de GEP. Es planeja dedica 20 ho es du an
es se manes, un o al de 60 ho es.
● GP2 - Memò ia. Redacció del documen pe l’en ega final, des de la
se mana de l’en ega de GEP s’espe a dedica 80 ho es en o al. Exis eix
dependència amb GP1 - Plan ejamen inicial.
● GP3 - Lec u a del T eball. Es dedica à 10 ho es se manals al lla g de es
se manes (30 en o al) a p epa a p esen ació; incloen -hi c eació d’aques a
i assaig. Exis eix dependència amb GP2 - Memò ia.
5.1.2. Mesu a de endimen
P ime pas en el p ojec e és la mesu a de endimen , sense les eines adequades i
coneixemen del endimen eal no es po eballa cap de les al es asques.
● MR1 - In es igació de solucions ac uals. Anali za en p o undi a les
solucions ac uals. De esul a s’ex au à solucions que es desen olupa à en
14
Anàlisi de endimen i op imi zació en a ge es SIM
el següen pas. La du ada se à de 10 ho es, aques eball se à en e amen
emo . Exis eix dependència amb GP1 - Plan ejamen inicial, necessi a
acaba aques pe comença a eballa .
● MR2 - Desen olupamen d’eines de pe filamen . Disseny i
desen olupamen de les eines que s’usa an pe mesu a el endimen del
Sis ema Ope a iu. Du ada de 50 ho es en les oficines. Exis eix dependència
amb MR1 - In es igació de solucions ac uals, abans de e el disseny és
necessi a sabe el ipus d’eines que s’han de desen olupa .
● MR3 - P esa i au oma i zació de esul a s. C eació d’eina pe pode ecolli
i isuali za els esul a s àcilmen . Alho a documen a el p océs i esul a s
ex e s. S’in e i an unes 15 ho es in si u. Exis eix dependència amb MR2 -
Desen olupamen d’eines de pe filamen , es necessi a l’eina p ime .
5.1.3. Anàlisi de esul a s
Un cop s’ha ob ingu esul a s és necessi a à aça un pla. Aquí s’anali za an
possibles solucions i millo es a al ni ell i s’indaga à en compilado s.
● AR1 - Anàlisi dinàmica. Com an e io men esmen a aques anali za en
p o undi a el flux del codi. Un cop conegudes les pa s del codi que
consumeixen més emps s’anali za à la solució ac ual i es pensa à en
possibles es a ègies de millo a de endimen , cada una d’aques es
cons a à d’un ique . S’in e i an unes 50 ho es. To almen eballa en
oficines. Exis eix dependència amb MR3 - P esa i au oma i zació de
esul a s.
● AR2 - Anàlisi del compilado . El compilado és una eina clau pe la millo a
de qualse ol codi. S’in es iga à la solució ac ual, possibles millo es i
es a ègies a aplica . Se an 10 ho es en emo . Exis eix dependència amb
MR3 - P esa i au oma i zació de esul a s pe comença a mesu a
l’impac e eal de les di e en s opcions de compilació.
5.1.4. Desen olupamen
Les úl imes asques se an eballa amb l’anàlisi p è iamen e a i mesu a
millo es.
● DV1 - Aplicació de millo a dinàmica. Dels di e en s ique s c ea s en
l’anàlisi es desen olupa an les di e en s p opos es i mesu a à l’impac e.
In e i em 40 ho es en aques . Exis eix dependència amb AR1 - Anàlisi
dinàmica.
● DV2 - Aplicació de millo a del compilado . Di e en s es a ègies i mesu a
del endimen . Es eballa à 15 ho es in si u. Té dependència amb asca AR2
- Anàlisi del compilado .
15
Anàlisi de endimen i op imi zació en a ge es SIM
● DV3 - Millo a es à ica. Tan les uncions més accedides com les que
consumeixen més emps se an anali zades es à icamen en p o undi a ,
això es a à mi an el codi compila i o iginal. S’es a à 30 ho es en aques a
pa del p ojec e in si u. Exis eix dependències amb DV1 - Aplicació de
millo a dinàmica i DV2 - Aplicació de millo a del compilado , ja que es
p e én es udia el codi màquina.
5.1.5. Resum
La següen aula con é o es les asques, dependències i emps o al.
ID
Tasca
Ho es
Dependències
GP
Ges ió del p ojec e
170
-
GP1
Plan ejamen inicial
60
-
GP2
Memò ia
80
GP1
GP3
Lec u a del T eball
30
GP2
MR
Mesu a del endimen
75
-
MR1
In es igació de solucions ac uals
10
-
MR2
Desen olupamen d’eines de
pe filamen
50
MR1
MR3
P esa i au oma i zació de
esul a s
15
MR2
AR
Anàlisi de esul a s
60
-
AR1
Anàlisi dinàmica
50
MR3
AR2
Anàlisi del compilado
10
MR3
D
Desen olupamen
85
-
D1
Aplicació de millo a dinàmica
40
AR1
D2
Aplicació de millo a del
compilado
15
AR2
D3
Millo a es à ica
30
D1, D2
Taula 1: Resum de asques. Elabo ació p òpia.
16
Anàlisi de endimen i op imi zació en a ge es SIM
5.2. Diag ama de Gan
De l’an e io aula de i a el següen diag ama. Elabo a amb l’eina GANTTp ojec .
Figu a 3: Diag ama Gan del p ojec e. Elabo ació p òpia.
És po ap ecia que els Sp in s comencen el 14 d’oc ub e. L’única asca que queda pa ida en e Sp in s és l’anàlisi dinàmica,
que es di idi à en 2 ique s. Un pe i desni ell en ho es eballada en alguns Sp in s pe acomoda les asques.
17
Anàlisi de endimen i op imi zació en a ge es SIM
5.3. Recu sos
En p ime a ins ància, el p ojec e se à du en e amen pe l’au o , assumi à els ols
de ges ió i desen olupamen . El ol dels esponsables dins Giesecke+De ien i
l’UPC se à de seguimen del p ojec e, amb eunions espo àdiques.
P ime amen , el Ha dwa e, en oficines comp a é amb o dinado p opie a de
l’emp esa, lec o s de a ge es SIM i les a ge es. A casa, eballa é amb o dinado
pe sonal usan Windows.
El So wa e usa o a d’oficines se à Google Mee , Google D i e, Gan P ojec . La
documen ació es a à mi jançan Google Docs. Dins l’à ea de l’emp esa s’u ili za à
eines com Ji a, Gi i Confluence pe documen ació. En úl ima ins ància, es a à
se i ambé p og ama i p opi pel desen olupamen de sis emes ope a ius en
a ge es SIM.
5.4. Ges ió de iscs
Essencial pe qualse ol p ojec e és p e eu e acciden s i adap a a imp e is s.
● Enda e imen s. El p incipal isc a causa de la dependència
d'implemen acions amb anàlisi i c eació d'eines. Com es eballa amb
me odologia àgil, si és necessa i és possible modifica el pla. Si s'hi
haguessin de e alla ho es d'alguna asca se ia p ime amen d'anàlisi
es à ica i, en cas de e al a, en segon lloc, la millo a i anàlisi de compilado .
● E o s. Risc mi jà. El es ing ha de se igo ós, ja que el ITL o ma pa d’un
secu e elemen i ac a amb dades i p ocessos sensibles. L’apa ició d'e o s
és comú en qualse ol desen olupamen , no malmen el sis ema ope a iu
o e eix p o ecció d'e o s de codi, pel e que ges iona o s els ecu sos del
Ha dwa e. S’ha de man eni un bon his ò ic de commi s. Pe so , acili a à
la eina el e de eballa sob e un sis ema ja uncionan i amb es s.
● Complexi a . Risc mi jà. La complexi a de la ecnologia i p ocessos poden
causa que el p ojec e sigui mol més di ícil del que s'ha es ima . Po se
que no es obi bona solució de pe filamen i l'anàlisi sigui limi a . Si es
donés el cas, s’hau ía de ea alua els objec ius i asques del p ojec e.
● Falls de Ha dwa e. Suposen un isc mínim. To es eballa en se ido s i
exis eixen backups. Pel que a a les a ge es SIM semp e se’n é una
quan i a ex a al poc cos que enen.
5.5. Des iació en planificació
Hi ha hagu des iacions g ans espec e al plan ejamen inicial.
To comença en el desconeixemen p e i a l’inici del p ojec e, una
con ex uali zació no p ou p o unda ha ocasiona en la in a alo ació de la asca
18
Anàlisi de endimen i op imi zació en a ge es SIM
d’anali za les eines de pe filamen en Ha dwa e embedded, això a conseqüència
de eni un pa ell d’anys d’expe iència embedded en l’emp esa. Pe això s’ha
can ia ambé el í ol del eball de “Op imi zació en ac uali zacions de sis emes
ope a ius embedded” a “Anàlisi de endimen i op imi zació en Ta ge es SIM”.
Solucions exis ien, pe ò cap e a compa ible amb la ecnologia de a ge es SIM a
cause p incipalmen de la in e ície ISO 7816-2 i a ie a de models d’aques es.
S’ha in en a con end e amb a ies eines p òpies de ab ican s, inicialmen
conside an e una solució sob e complicada ins umen ali zan Keil. Finalmen ,
s’ha decidi que la millo opció e a c ea 2 eines sepa ades i més senzilles pe
p end e aces i emps.
La pa de la c eació d’eines ha sigu la que ha consumi més emps del p ojec e i
ha sigu la que ha dona millo s esul a s.
Un cop c ea les eines de mesu a de endimen , ambé s’ha in a alo a els
esul a s que es podien ex eu e de l’anàlisi. El upda e agen comp a de di e en s
componen s. Els esul a s són p i a s, pe ò majo i à iamen s’ha is que el cos
en p o ocols de comunicació i esc ip u a de memò ia és menja g an pa del
emps ine i ablemen , i exis eix conflic es en capes de segu e a amb l’eficiència.
A menciona de la asca d’anàlisi es à ica, que ambé ha dona pocs esul a s. La
majo pa de les egades s’aconseguia emps negligibles. Po se , en al es
p oduc es més pe i s hi hau ia impac e, pe ò en aques cas els esul a s e en
escassos.
La asca de compilació a se àpidamen deses imada. Fen inicialmen p o es
d’empènye al màxim l’op imi zació del codi s’han ap ecia can is pe i s, alen in
o el p océs de Build. Lla o s, s’ha deses ima (com més al el ni ell de
compilació, majo el emps d’aques ).
Úl im aspec e que s’ha sob e alo a , és la eloci a de edacció. Sembla una
es imació co ec a, pe ò ha p es bas an emps la ece ca i documen ació pe se
òpic mol poc documen a , més la p òpia len i ud de l’au o en edac a .
Comp an o s els e a ds, sob e o amb la edacció, s’han excedi les ho es de
p ojec e. Pe ò en a à dins el isc ese a de 12,5% en l’apa a 6.1.5. Riscs.
5.6. Es a final de les asques
La aula a con inuació mos a l’es a ac ual de les asques.
La columna d’ho es eals mos a.
● Tasca a emps. En cas de de finali za -se en da a p e is a.
● Tasca amb e às. En cas de no finali za -se amb da a p e is a.
● Tasca deses imada. Degu a l’anàlisi p e i s’ha deses ima la asca.
19
Anàlisi de endimen i op imi zació en a ge es SIM
La asca de GP3 - Lec u a del T eball ha sigu omesa, ja que la p esen ació és
pos e io a la memò ia.
ID
Tasca
Ho es
es imades
Ho es
eals
GP
Ges ió del p ojec e
140
160
GP1
Plan ejamen inicial
60
60
GP2
Memò ia
80
100
MR
Mesu a del endimen
75
100
MR1
In es igació de solucions ac uals
10
40
MR2
Desen olupamen d’eines de
pe filamen
50
50
MR3
P esa i au oma i zació de esul a s
15
10
AR
Anàlisi de esul a s
60
45
AR1
Anàlisi dinàmica
50
40
AR2
Anàlisi del compilado
10
5
D
Desen olupamen
85
50
D1
Aplicació de millo a dinàmica
40
40
D2
Aplicació de millo a del compilado
5
0
D3
Millo a es à ica
30
10
-
To al
390
355
Taula 2: Es a ac ual del p ojec e. Elabo ació p òpia.
20
Anàlisi de endimen i op imi zació en a ge es SIM
6. Ges ió econòmica
A con inuació es calcula à el p essupos del p ojec e; ma e ial i ecu sos humans.
6.1. P essupos
6.1.1. Cos de pe sonal
Es di idi à el p ojec e en 4 ols:
● Cap de p ojec e. Enca ega d’o gani za , planeja i moni o a el p og és
del p ojec e.
● Desen olupado Embedded. Du a a e me les asques de
desen olupamen i anàlisi del codi del xip.
● Tes e . Enca ega de es eja . Re isa o desen olupamen d’eines i
solucions no es. També de documen a i anali za els esul a s.
● De Ops. Enca ega d’au oma i zació i unificació de p ocessos. Impo an
pe desen olupa les eines necessà ies pe mesu a el endimen del xip.
El sou dels di e en s ols se à ex e del po al GlassDoo [37], aques a epo a alo
mi jà de eballado s eals anual en Espanya i se à di idi pe 2080 ho es[27] que
són jo nada comple a. Lla o s al sou ex e s’a egi à una ap oximació de Segu e a
Social mul iplican pe 1,3. S’ob enen els següen s esul a s.
Rol
Sou b u (€/h)
Sou o al (€/h)
CP - Cap de p ojec e
17,79
23,13
DE - Desen olupado Embedded
16,34
21.24
T - Tes e
10,58
13.75
DO - De Ops
17,31
22.50
Taula 3: Sou mi jans dels ols. Elabo ació p òpia.
21
Anàlisi de endimen i op imi zació en a ge es SIM
Lla o s, d’aco d amb les asques definides, el cos o al de les asques en ecu sos
humans s’ap ecia en la següen aula.
ID
Tasca
Ho es
Cos (€)
To al
CP
DE
T
DO
GP
Ges ió del p ojec e
170
125
15
15
15
3.732,36
GP1
Plan ejamen inicial
60
45
5
5
5
1.307,06
GP2
Memò ia
80
50
10
10
10
1.731,40
GP3
Lec u a del T eball
30
30
0
0
0
693,90
MR
Mesu a del
endimen
75
0
15
5
45
1.624,85
MR1
In es igació de
solucions ac uales
10
0
0
0
10
225,00
MR2
Desen olupamen
d’eines de
pe filamen
50
0
15
0
35
1.106,10
MR3
P esa i
au oma i zació de
esul a s
15
0
0
5
10
293,75
AR
Anàlisi de esul a s
60
0
50
10
0
1.167,80
AR1
Anàlisi dinàmica
50
0
40
10
0
987,10
AR2
Anàlisi del
compilado
10
0
10
0
0
212,40
D
Desen olupamen
85
0
78
12
0
1.715,52
D1
Aplicació de millo a
dinàmica
40
0
35
5
0
812,15
D2
Aplicació de millo a
del compilado
15
0
13
2
0
303,62
D3
Millo a es à ica
30
0
25
5
0
599,75
To al
390
125
158
42
60
8.240,53
Taula 4: Cos de les asques. Elabo ació p òpia.
6.1.2. Cos del Ha dwa e
Aques apa a no eflec i à el ma e ial usa en Giesecke+De ien , si no s’usa à
ma e ial genè ic de desen olupamen .
Pe a ge es SIM, p ime s’emp a à lec o s genè ics ma ca Omnikey. S’ap oxima à
el cos de les a ge es u ili zan un model genè ic pe usos indus ials, ja que els
p eus eals no són públics.
22
Anàlisi de endimen i op imi zació en a ge es SIM
El cos d'amo i zació es calcula à usan ida mi jana d’un po à il, de 4 anys
d’ús[31]. Es de i a la següen ó mula.
𝐴𝑚𝑜𝑟𝑡𝑖𝑡𝑧𝑎𝑐𝑖ó = 𝐶𝑜𝑠𝑡 * ℎ𝑜𝑟𝑒𝑠 𝑑'ú𝑠
𝑉𝑖𝑑𝑎 ú𝑡𝑖𝑙 (𝑎𝑛𝑦𝑠) * ℎ𝑜𝑟𝑒𝑠 𝑙𝑎𝑏𝑜𝑟𝑎𝑏𝑙𝑒𝑠 𝑎𝑛𝑢𝑎𝑙𝑠
Ob enin les ho es labo ables anuals en apa a an e io [27], la ó mula és
simplifica.
𝐴𝑚𝑜𝑟𝑡𝑖𝑡𝑧𝑎𝑐𝑖ó = 𝐶𝑜𝑠𝑡 * 390
4 * 2080
𝐴𝑚𝑜𝑟𝑡𝑖𝑡𝑧𝑎𝑐𝑖ó = 𝐶𝑜𝑠𝑡 *0. 046875
El o al lla o s es eflec eix en la següen aula. El cos de les a ge es se à
comp a al comple , a causa de l’ex ens ús que pa eixen en desen olupamen .
Ha dwa e
Cos (€)
Amo i zació
(€)
Cos en
P ojec e (€)
Po à il Leno o IdeaPad Slim 3[56]
549,00
25,73
25,73
Pack ecla + a olí Blue oo h -
HP[55]
29,99
1,40
1,40
Moni o IPS Samsung 27”[54]
99,00
4,64
4,64
3 x Lec o a ge es SIM Omnikey
3121[1]
71,97
3,37
3,37
6 x a ge es SIM[28]
33,42
-
33,42
To al
816,80
35,14
68,56
Taula 5: Cos del Ha dwa e. Elabo ació p òpia.
6.1.3. Cos de l’espai
P ime s’ap oxima à el cos de l’espai, usan alo s genè ics a Ba celona, a
con inuació el cos de ma e ial d’oficina.
El olum mínim pe eballado en oficines d’aco d amb el Dec e Real 486/1997
es ipula mínim 10 me es quad a s pe eballado no ocupa s, i 2 me es de
supe ície lliu e, un o al de 12 me es quad a s[43]. Ap oximan a 15 me es
quad a s d’oficina pe cau ela esul a en 259,05 eu os de cos mensual p enen el
cos de llogue mi jà de Ba celona en agos 2024 de 17,27 eu os el me e
quad a [2].
Pa in de la mi ja de 15 me es quad a s s’ob é un consum elèc ic de 65.62 Kwh
mensual dels 15 me es, pa in de consum anual de 52,5 Kwh/m2[30]. Sen el p eu
de la llum en agos 2024 0,1463 €/KWh[26], el o al esul a en 9,59 € mensuals.
23
Anàlisi de endimen i op imi zació en a ge es SIM
● Conjun d’ins uccions Thumb o Thumb-2. Thumb comp a amb
ins uccions de 16 bi s, jun amen amb un conjun equi alen
d’ins uccions 32 bi s ARM. Es à compos pe les ins uccions ARM de 32
bi s més comunes. Pe execu a una o al a el p ocessado é dos es a s
d’execució; ARM o Thumb. El mode Thumb ope a amb alo s més pe i s,
pe ò és més àpid[17].
Thumb-2 és ex ensió de Thumb que a egeix algunes ins uccions de 32 bi s
amb in e ope abili a amb les de 16 bi s. També, in odueix condicionali a
a la majo ia d’ins uccions d’ARM[18].
● Mesu es de p o ecció Ha dwa e. Pe p o egi con a a acs ísics, com
manipulació del ol a ge o a acs amb làse pe p o oca e o s.
● Sys em ime (SysTick). Tempo i zado de 24 bi s que comp a en e e des
de alo en el egis e de e esc a 0, amb capaci a d’indui in e upció en
assoli aques alo [14].
● In eg a ed Nes ed Vec o ed In e up Con olle (NVIC). Pe me la
configu ació d’in e upcions i u ines d’in e upcions d’aques es[12].
● Wakeup In e up Con olle (WIC). Con olado pe despe a el
p ocessado en es a de do mi , elle an pe p o ocols de comunicació[16].
● Memo y P o ec ion Uni (MPU). Pe me defini egions de memò ia i els
pe misos de lec u a, esc ip n u a i execució[15].
● ETM (Elec o T ace Mac ocell), Ins umen a ion T ace (ITM).
Componen s opcionals de pe filació. No es an implemen a s pe cap de les
a ge es amb què es eballa, pe ò s’expliquen en més de all en el següen
apa a Pe i è ics pe la pe filació en p ocessado s Co ex-m.
● Join Tes Ac ion G oup (JTAG) i Se ial Wi e. Po s i in e ícies opcionals
pe pode depu a . Pe me en la configu ació de B eakpoin s i Wa chpoin s.
No es an implemen a s pe cap de les a ge es amb què es eballa,
elle an s pel uncionamen de les eines en l’apa a Pe i è ics pe la
pe filació en p ocessado s Co ex-m.
8.1.2. Di e ències
Les p incipals di e ències de i en de que SC300 és un chip més an ic.
En p ime lloc, el conjun d’ins uccions és A m 7-M pe SC300, men e que M35P
és A m 8-M wi h Mainline ex ension. El da e inclou ins uccions addicionals[3].
Al es di e encies són meno s, M35P con é més mesu es de segu e a , cache
opcional d’ins uccions, opcionalmen eines de p océs de senyals digi als, e c.
8.2. Memò ia Flash
La memò ia flash és memò ia NVM (Non-Vola ile Memo y), és a di , memò ia que
emmaga zema dades que no són pe dudes en einici del xip (pè dua de co en ),
a di e ència de memò ia RAM (Random Access Memo y). La e minologia di e eix
30
Anàlisi de endimen i op imi zació en a ge es SIM
espec e a mic ocon olado s, i la on se à especificacions de les a ge es SIM
mencionades p eceden men .
Pe ambdós p ocessado s an dades com codi esideixen en la ma eixa memò ia.
Això implica que el sis ema ope a iu i les dades que gua da esidi an en flash.
La memò ia NVM es di ideix en pàgines. L’es a inicial d’una pàgina és esbo a , és
quan o s els seus bi s enen el alo 1.
Esc iu e en una pàgina compo a ans o ma els dígi s 1 en 0. L’esc ip u a é
g anula i a bi , sho o wo d. En con as , l’esbo amen ans o ma els ze os en
uns i la g anula i a és en pàgina.
Mides ípiques de pàgina pe a ge es SIM oscil·len els 128 a 512 by es.
Les ope acions en flash són len es i suposa an un cul d’ampolla pel endimen .
Pe la confidenciali a emps específics no poden mos a -se, pe ò aga an de
e e ència un mic ocon olado d’especificacions simila s. En la següen aula
es an els emps d’esc ip u a i esbo a pel mic ocon olado STM32F1. S’ha escolli
pe usa p ocessado Co ex-M3[74].
Taula 10: Taula amb emps de memò ia flash de STM32F1. Elabo ació p òpia.
Cu a de no con ond e bi amb by e. També no cau e en la ampa què 1 MiB
equi al a 1024 KB, a di e ència de 1 MB que són 1.000 KB, pe ò STM usa la
ep esaen ació binà ia amb el ac ònim i nom de la decimal[75].
To i que o s els emps aga a s són el pi jo cas, ja es po eu e una limi ació en la
ecnologia d’aques es. Els mic ocon olado s no són xips op imi za s pe a ac a
amb p ocessamen de mol es dades. Els emps calcula s pe 1 MB, així ma eix, no
comp a amb el emps de i a del p ocessamen en e esc ip u es i esbo a s.
8.3. In e ícies de comunicació
Exis eixen múl iples p o ocols de comunicació implemen a s en els
mic ocon olado s esmen a s. Això no significa que o es les in e ícies es iguin
implemen ades pe o s els p oduc es.
Pe exemple, en a ge es SIM el o ma p incipal és l’especifica pe ISO/IEC 7816,
amb el que es eballa à. En el següen diag ama s’ap ecia la in e ície ISO/IEC
31
Ope ació
Mida mínima
Temps màxim
pe mida mínima
Temps pe 1 MB
Esc ip u a ( p og)
2 B
70 μs
36.700.160 μs (~36,7 s)
Esbo a ( ERASE)
1024 B
40.000 μs
40.960.000 μs (40,96 s)
Esbo a +
esc ip u a
1024 B
75.840 μs
77.660.160 μs (~77,67 s)
Anàlisi de endimen i op imi zació en a ge es SIM
7816 amb els pins de con ol, implemen ada an pe USB com pe ISO/IEC
7816-3[44].
Figu a 5: In e ície especificada pe ISO/IEC 7816 pe a ge es SIM.
Les pa s més impo an s del p o ocol són.
● En encend e la a ge a aques a en ia un ATR (Answe o Rese ) amb
pa àme es del p o ocol de comunicació com eqüència de ello ge de
comunicacióm ol a ge, e c.
● Exis eixen 2 p o ocols de ansmissió de by es. T=0 ansme by es
indi idualmen , T=1 ansme by es pe paque s.
● L’especificació defineix la comanda de comunicació és APDU. Fo ma is
en l’apa a 1.1.1. Comandes APDU.
Com a exemple con a i, en can i, una embedded SIM es a soldada a un
disposi iu majo , lla o s no ind à implemen ada aques a in e ície (implemen a
l’in e ície I2C). En la següen figu a es mos en els di e en s o ma s de a ge es,
jun amen amb embedded SIM (eSIM)[46].
32
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 6: Fo ma s de a ge es SIM, jun amen amb eSIM.
8.4. Componen s addicionals
Exemples elle an s de componen s addicionals són.
● Memò ia RAM. En aula 9 eisdeixen el amany de les memò ies RAM de
a ge es SIM del eball. El alo onda els 40 a 80 KB.
● Pe i è ics pe assis i en c ip og afia. Ja que el cos de les ope acions
c ip og àfiques és gene almen al , algunes con enen pe i è ics pe assis i
en aques es. Exemples són cop ocessado s pe algo i mes AES o DES en
a ge es SLI37CMA1M0 o el gene ado de nomb es alea o is en ST33K1M5A.
● Tempo i zado s. To es les a ge es comp en amb més empo i zado s que
SysTick, pe assis i en asques de segu e a o comunicació.
33
Anàlisi de endimen i op imi zació en a ge es SIM
9. Pe filació en a ge es SIM
En aques apa a s’es udia àn les di e en s solucions pe pe filació en a ge es
SIM. Essencialmen , es olen conèixe 2 dades, en p ime a ins ància emps
d’execució, en segona les c ides i so ides de uncions pe pode anali za en
p o undi a el flux de codi.
P ime amen , dos concep es clau pe l’apa a són.
● Ins umen ali zació. La ins umen ali zació és la ècnica d’injec a codi pe
ex eu e in o mació del compo amen d’un p og ama o aplicació. Tècnica
onamen al pe assoli els objec ius.
● Simulació d’embedded So wa e. P océs de eplica el uncionamen d’un
sis ema embedded, amb l’objec iu d’imi a com es compo a el sis ema en
execució de codi sense necessi a de eni els disposi ius en mà.
En el p ime apa a aplaca à les componen s de pe filació dins el xip, la es a les
di e en s opcions pe pe fila .
9.1. Pe i è ics pe la pe filació en p ocessado s
Co ex-M
En l’apa a 8.1. P ocessado s (Secu eCo e SC300/Co ex-M35P) s’ha esmen a
b eumen els pe i è ics dels p ocessado s Co ex-M3 pe depu a . Aques es no
es an implemen ades pe a ge es com an e io men esmen a , a causa que el
nexe de comunicació són els pins de la in e ície ISO-7816.
No obs an , si es an implemen a s pe simulado s i emulado s, pe això. Lla o s,
se an explica s b eumen .
9.1.1. Da a Wa chpoin and T ace (DWT)
El Da a Wa chpoin and T ace (DWT) és un mòdul del p ocessado con enin
di e ses uncionali a s de debugging. Relle an pe aça el codi con é les
següen s uncionali a s[7].
● Pe me mos eig del egis e apun an a l’ac ual ins ucció execu an -se, el
P og am Coun e (PC). Llegeix el PC pe iòdicamen pe econs ui el flux
d’execució, amb eqüència configu ada en egis e DWT_CTRL. Depèn del
xip si pe me mos eja en cada cicle.
● Mesu a els cicles del p ocessado .
Com aspec e posi iu, és la acili a d’ús pe ope a . Pe ò és més limi a , ja que a de
mos eig en comp es d’ope a amb els cicles del p ocessado , i é un ample de
banda més baix que ETM, explica seguidamen .
34
Anàlisi de endimen i op imi zació en a ge es SIM
9.1.2. Embedded T ace Mac ocell (ETM)
L’Embedded T ace Mac ocell (ETM) és un mòdul del p ocessado que p opo ciona
ins uccions i dades de i ades d’un p ocessado . Els p incipals elemen s d’un ETM
són[11].
● Gene ació de aces. Gene ació d’en ades i so ides de uncions a emps
eal, cap u a cada ins ucció execu ada pe la CPU.
● Fil a ge i T igge s. Pe me fil a els esul a s i especifica quines accions o
equisi s són necessa is pe a la gene ació de aces.
Com l’ample de banda és més g an, equ eix de componen específica pe
anspo de les dades, anomena T ace Po Analyze (TPA).
9.1.3. Ins umen T ace Mac ocell (ITM)
L’Ins umen T ace Mac ocell (ITM) és un mòdul del p ocessado enca ega de la
gene ació de missa ges i esde enimen s, pe me depu a codi en es il p in pe
as eja esde enimen s i gene a in o mació de diagnòs ic del sis ema[8].
9.1.4. Diag ama de les componen s de depu ació amb ARM
En da e a ins ància, en la següen figu a es mos a l’es uc u a de les
componen s es udiades de depu ació en p ocessado s ARM[9].
CTI és sigles de C oss T igge In e ace, componen enca egada de coo dina
esde enimen s en e les di e en s componen s de depu ació.
ATB són les sigles de Ad anced T ace Bus.
Finalmen , TPIU és T ace Po In e ace Uni , componen enca egada de
o ma a i en ia els missa ges d’ETM i ITM al PC. Co eSigh és el nom d’aques a
ecnologia.
35
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 7: Diag ama d’ETM i ITM en Co ex-M3.
9.2. Pe filació amb Keil µVision
Keil MDK (Mic ocon olle De elopmen Ki ) és un conjun d’eines de
desen olupamen pe mic ocon olado s ARM. En e elles, exis eix Keil µVision, la
qual és un en o n in eg a de desen olupamen (en anglès In eg a ed
de elopmen en i onmen , IDE) o e in eines pe simula i depu a amb
emulado les a ge es SIM[19].
En la figu a enido a, es mos a la in e ície del p og ama en depu ació de codi. A
ecalca les uncionali a s següen s, que no són les úniques o e ides pe Keil,
opcions de con ol de l’execució, alo s dels egis es, codi màquina
(Dissassembly) i codi on sen execu a , pila de uncions, isuali zació de
con ingu s de memò ia[48].
36
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 8: Fines a de Keil µVision en depu ació de codi.
9.2.1. Pe o mance Analyze
Keil µVision con é l’eina Pe o mance Analyze que ens deixa es udia el emps
d’execució en elació als mòduls (fi xe s objec e) o uncions. En la figu a a
con inuació, es mos a la isuali zació de l’eina en un exemple dona pe Keil. El
mòdul Se ial és 95 % del emps d’execució, dins d’aques , la unció ge key és
esponsable del 93 % del o al de emps d’execució amb un o al de 2 c ides[50].
37
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 9: Fines a de Pe o mance Analyze de Keil µVision.
El Pe o mance Analyze és limi a , ja que només mos a emps d’execució i
nomb e de c ides. En cas de desi ja una anàlisi p o unda del flux del codi és
necessa i d’eines addicionals.
9.2.2. T ace Reco ding
Keil µVision con é eina addicional pe anàlisi de l’execució, T ace Reco ding,
pe me gua da un èco d de les ins uccions execu ades. A con inuació es
mos a d’exemple d’una aça de codi. La p ime a columna mos a el núme o de
l’execució de la ins ucció, seguidamen de l’ad eça i in o mació d’aques a, la
p ime a és BPL (B anch i Plus), emmaga zemada en la di ecció 0x00000158[49].
38
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 10: Fines a de Ins uc ion T ace de Keil µVision.
El egis e d’execució po se impo a a fi xe ex , copian i enganxan .
Pe o mance Analyze és una eina po en , que dona mol a in o mació sob e el
codi execu a . Això sí, no es à o ma ada de mane a que sigui llegible pe
execucions g ans, una eina hau ia de se necessi ada de desen olupa .
9.2.3. Funcions de depu ació en Keil µVision
Keil µVision pe me l’execució de Sc ip s de depu ació en el codi. Aques s són
e e i s com INI sc ip s.
Els INI sc ip s s’execu en des del PC i no el xip, lla o s no poden se a egi s
di ec amen en el codi on , pe ò si pe me en la definició de B eakpoin s i
uncions pe execu a en aques s[20].
P ime , s’ha de defini una unció de depu ació. Com a exemple, a con inuació es
mos a, usan les comandes FUNC i LOG, unció pe emmaga zema con ingu de
di ecció específica (com a alo uin 32_ ) en un fi xe anomena log. x [21].
// Funció pe emmaga zema con ingu en 0x20000000.
FUNC LogFunc ion() {
LOG >> "C: log. x " "%08X", *(uin 32_ *)0x20000000
}
Configu a un B eakpoin és possible amb la comanda B eakSe , exemples
d’ARM. En que a egim un a la unció main pe c ida al mè ode c ea
an e io men [21].
// Configu a B eakpoin s.
39
Anàlisi de endimen i op imi zació en a ge es SIM
10. Desc ipció de la solució
L’objec iu de pe fila el codi és pe ob eni aques es dues dades.
● T aces de codi pe cada comanda. Les aces ens pe me en una anàlisi del
flux del codi en p o undi a .
● Mesu a emps d’execució. Volem podem compa a di e en s solucions i
sabe quines pa s de cada comanda o e eixen millo .
Seguidamen , es plan eja à les conclusions de l’anàlisi e a en l’apa a p e i i en
da e pas s’explica à b eumen les 2 implemen acions, cadascuna comp a à amb
el seu apa a en què s’explica à en més de all la solució.
10.1. Conclusions
To i que a p ime a is a, l’emulació o simulació amb Keil, is a en 9.2. Pe filació
amb Keil µVision, són les opcions que poden dona la millo in o mació en
aques s dos objec ius. El g an desa an a ge és la dependència amb eines dels
ab ican s. Aques es eines són di ícils i len es de configu a , i di e en s p oduc es
enen di e ències sub ils en el compo amen i es uc u ació de les eines pels
desen olupado s.
Lla o s, la millo opció és la c eació d’eines p opie à ies. Com a pun final sob e
Keil, la ins umen ali zació d’aques suposa igualmen la c eació d’aques es,
a egin di e en s capes d’eines i configu ació.
Com s’ha is en 9.5. Ins umen ali zació del codi en a ge es SIM, exis eix conflic e
en la p esa de aces i la mesu a del emps, ja que la p ime a és una eina al amen
in usi a. En conseqüència, es a a 2 eines di e en s, la p ime a pe anali za el flux
de les comandes APDU, i la segona pe p end e els emps de les di e en s pa s
del codi.
10.2. T aces de codi pe cada comanda
Pe acili a pe al desen olupado , s’ha decidi implemen a la solució final en
simulado So wa e uncional, com explica en l’apa a 9.3. Simulació So wa e
uncional de sis emes embedded. Ja que no ens impo a el e que els emps no
siguin exac es, i la simulació és més àcil de e se i (no necessi es lec o s o
a ge es, és àpid i es po accedi als alo s di ec amen ) i se eix pe a o es les
a qui ec u es.
S’implemen a à l’eina especificada en 9.5.3. Ins umen ali zació pe l’ob enció de
aces en a ge es SIM, pe ò en el simulado . A egin unció hook a cada c ida i
so ida és gua da a aques es accions en un fi xe .
Pe isuali za els esul a s s’usa à l’eina pública de SpeedScope, aques a pe me
la isuali zació in e ac i a del flux del codi[77].
46
Anàlisi de endimen i op imi zació en a ge es SIM
També ens pe me à, en un u u si es necessa i, acili a la c eació de l’eina en
a ge es eals si es desi ja e .
10.3. Mesu a de emps
Pe al de calcula el emps d’execució és desn oloupa à la solució desc i a en
9.5.1. Ins umen ali zació pe la mesu a de emps. Es c ea à una eina que el
desen olupado pugui emp a de mane a senzill en les pa s del codi.
Exis eix l’incon enien que no se à cen pe cen au omà ic, pe ò com hi ha
supo de l’eina de Speedscope, els pun s a mesu a se an àcilmen descob ibles,
ja que donà una isió global de la lògica del codi que pe indica les uncions
c ucials a mesu a i pode compa a les di e en s solucions.
L’eina se à anomenada Debug Time i pe me à comença a comp a , gua da
ma ques de emps en els pun s desi ja s.
47
Anàlisi de endimen i op imi zació en a ge es SIM
11. Speedscope
Speedscope és una eina web in e ac i a de isuali zació de pe fils de endimen
open-sou ce.
Accep a múl iples o ma s d’en ada pe mos a els egis es en o ma de g àfic.
Exis eixen mòduls pe llengua ges com Py hon i Ja asc ip , en aques cas s'hau à
de gene a manualmen i ans o ma els egis es a un dels 3 o ma s genè ics
supo a s[78].
● Fo ma JSON pa icula de Speedscope.
● Fo ma de pila col·lapsa de B endan G egg.
● T ace E en Fo ma de Google.
Pe isuali za el g àfic, només a al a a ossega el fi xe a l’eina des del
na egado . L’eina és pública, com an e io men menciona , i po eu e’s en
(enca a que no és necessa i d’accés a In e ne si e baixes el fi xe h ml).
h ps://www.speedscope.app/
Figu a 12: In e ície de l’eina Speedscope en inici.
11.1. Ob enció dels egis es
Com s’ha esplaia en 10.3. Mesu a de emps, es con inua à amb la idea d’un hook a
c ides i so ides de uncions.
48
Anàlisi de endimen i op imi zació en a ge es SIM
11.1.1. Opcions de compilació
Aques cop, es compila amb Mic oso Visual C++ (MSVC). Les opcions de
compilació són /Gh i /GH. Respec i amen , a egeixen les uncions hooks en
en ada i so ida de qualse ol unció[60][61].
Fa à al a disce ni el llis a de fi xe s que compila amb les opcions. Pe exemple,
cap unció que sigui c idada pe aques es hau ia de compila -se a egin el hook, o
es c ea ia un cicle infini de c ides ecu si es. Alho a, po se es ol ome e alguns
mè odes de depu ació, o s’es imen i elle an s pe l’anàlisi.
11.1.2. Funcions hooks
Les uncions hooks són.
oid __declspec(naked) __cdecl _pen e ( oid );
oid __declspec(naked) __cdecl _pexi ( oid );
A di e ència dels hooks de Clang aques s no enen a gumen s.
Comp en en el manual de e e ència de Mic oso de 2 modificado s de uncions,
ex ensions de compilado específiques de Mic oso .
__cdecl dic a com passa a gumen s al s ack, només can ia com es decla a la
unció en aques cas[59].
__declspec(naked) deshabili a el p òleg i epíleg de les uncions. Pe exemple, eu
el e o n au omà ic, ampoc ges iona au omà icamen el s ack a l’inici de la
unció, e c[62].
Pe ob eni pun e oid* amb la següen ins ucció de la unció que ha e la c ida.
MSVC comp a amb unció _Re u nAdd ess()[63].
Pe ob eni el emps s’usa à Que yPe o manceCoun e ([ou ] LARGE_INTEGER
*lpPe o manceCoun ), unció de Windows API que e o na el alo ac ual d’un
comp ado de endimen d’al a esolució[64].
Les uncions són execu ades pe cada c ida. S’ha c ea mecanisme de con ol pe
comença a esc iu e els alo s en inici d’APDU i dis ingi les aces de cada
comanda.
11.1.3. Fo ma d’emmaga zema ge
Pe cada en ada i so ida de uncions es egis a an 3 alo s.
● Ca àc e pe indica el ipus d’e en .
● Di ecció de la unció.
● Temps.
49
Anàlisi de endimen i op imi zació en a ge es SIM
Pe pode isuali za co ec amen és necessa i els noms de les uncions, pe ò en
mig d’execució és cos ós d’aconsegui . Pe això en el hook només s’ha de gua da
la di ecció de la unció que c ida, més a d amb un Sc ip es po elaciona els
alo s de cada unció amb el fi xe mapa ob ingu de la compilació (a més,
pe me o ma a co ec amen en el o ma adequa ).
Com a exemple, en si es c ida _pen e () des de la unció oo() amb di ecció
0x8000000. Un cop calcula l’inici de la unció oo(), hau iem de egis a el
següen codi.
B800000020000000
● B deno a l’e en d’en ada.
● 0x8000000 deno a la di ecció d’en ada.
● 0x20000000 deno a el emps.
11.1.4. Fo ma de aces
S’ha decidi usa el o ma de aces d’e en s de Google a causa de la se a
senzillesa. A con inuació es mos a l’exemple an e io usan el o ma de
Google[29].
{ "name": " oo", "ph": "B", " s": “20000000” },
S’ap ecien els següen s pa s de “clau” : “ alo ”.
● name con é el nom de la unció oo.
● ph con é el ipus d’e en B.
● s con é ma ca de emps 20000000.
El ipus d’e en elle an s són B de Begin en en ada a unció i E d’End en so ida
a unció.
11.2. Funcionamen de l’eina
El o ma Flame G aph, el o ma que Speedscope usa pe isuali za els egis es,
mos a les c ides a uncions de o ma je à quica a a és del emps.
Les c ides a uncions es ep esen en com a flames ( o ma de ba a), l’amplada
ep esen a al emps d’execució, i les sub u ines s’amun eguen a sob e com a
flames addicionals.
No només pe me sabe l’o d e c onològic de les c ides, ambé pe me en sabe la
p o undi a de les uncions, el nomb e d’in ocacions.
En la següen ima ge es mos a un exemple de aces dona pels c eado s de
Speedscope. S’explica à les eines i isuali zació d’aques [77].
50
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 13: Log en Speedscope mos a de mane a empo al.
1. A la can onada esque a supe io hi ha 4 opcions de isuali zació, a a
ma eix es mos a el g àfic en o d e empo al (Time O de ). Els ipus de
isuali zació són Time O de , Le Hea y, Sandwich i pe úl im una fines a
d’ajuda. Es mos en, espec i amen , en la figu a 14 i figu a 15 .
2. G àfic de na egació, con enin o es les aces i una fines a a l’ac ual am
del Flame G aph que s'es à isuali zan . Tenim la uncionali a de e Zoom
pe isuali za amb més g anula i a i na ega pe o el g àfic.
3. Flame G aph, en aques exemple hi ha seleccionada la unció
me geAdjacen F ames(), c idada pe map() cap al segon 2.51 i acaba
ap oximadamen al segon 2.53. La es a de c ides la unció seleccionada
es an essal ades en blau.
4. La pes anya in e io mos a in o mació de la unció seleccionada. En aques
cas, de o a l’execució me geAdjacen F ames() s’execu a du an 120.38
mic osegons en aques a c ida (un 1.4% de o el emps d’execució) i en
o es les c ides a da 361.99 mic osegons (un 8.7% de o a l’execució). La
columna de To al con é els emps suman les sub u ines, i la columna Sel
només con é el emps en sub u ines.
En la següen figu a es isuali za la fines a Le Hea y és simila a Time O de ,
pe ò en con a d’usa o d e c onològic o dena les u ines pel emps
d’execució[77].
51
Anàlisi de endimen i op imi zació en a ge es SIM
Figu a 14: Visuali zació del Log en o ma Le Hea y
A con inuació, es mos a la is a en o ma Sandwich. En aques exemple, s’ha
escolli la unció s a sWi hKeywo d, en la pa d’amun s’exposa les u ines que la
c iden, en Calle s. En la pa in e io hi ha les sub u ines de s a sWi hKeyboa d,
en Callees[77].
Figu a 15: Visuali zació del Log en o ma Sandwich
52
Anàlisi de endimen i op imi zació en a ge es SIM
11.5. Anàlisi de aces
Pe conclou e, Speedscope és una eina mol eficaç en l'anàlisi deguda a la
isuali zació in e ac i a, in uï i a i je à quica. Tècniques comunes pe anali za
són.
● Iden ificació de ho spo s usan la is a Le Hea y.
○ Les uncions més execu ades s’ha d’anali za si s’es à en eina
epe ida.
○ Les uncions amb més amplada s’ha d’anali za si la lògica po
millo a pe se més eficien , enca a que el emps no sigui exac e en
a ge a, la endència és que si una unció con é més ins uccions,
a da à més.
● Ce ca de pa ons epe i s. En solucions So wa e amb múl iples capes és
comú que exis eixi eina epe ida. Di e en s capes poden es a en les
ma eixes e ificacions, ex acció o càlcul de alo s. Es poden iden ifica com
flames con enin les ma eixes u ines i sub u ines idèn iques al lla g de la
comanda.
● Ce ca d’e en s impo an s. Com a exemples, les esc ip u es a NVM,
excepcions, ope acions c ip og àfiques. Relle an pe en end e en
p o undi a el p océs de la comanda i implicacions en el sis ema.
● Anàlisi de les dependències en e mòduls. Si un mòdul específic és
cons an men in oca en una u ina d'un mòdul di e en , po se signe que
al a un mè ode pe la componen in ocad pe simplifica la lògica i
po encialmen millo a el endimen .
● Desglossa uncions g ans en més pe i es. En cas d’un mè ode g an,
pode eu e les sub u ines més impo an s pe me en end e els pun s
claus d’una unció. Ja que, sol exis i co elació en emps d’execució i
impo ància.
53
Anàlisi de endimen i op imi zació en a ge es SIM
12. Debug Time
El p ime impedimen a eballa en a ge es SIM, s’ha conclòs, és la limi ació en
in e ícies que dificul a el es a ge. Lla o s, és necessa i d’eines de ab ican s pe
ob eni la majo p ecisió, dificul an la po abili a i au oma i zació del
desen olupamen .
Amb l’eina de Debug Time es ol c ea una API pe a mesu a emps d’execució,
emmaga zema aques s, i ex eu e’ls ia APDU. Necessi an així només la a ge a i
el lec o de a ge es pe mesu a el endimen .
La p ime a eina, Speedscope, hau ia de mos a la lògica de cada comanda. Es po
iden ifica edundàncies i en end e les pa s del codi clau. Lla o s amb Debug
Time és possible mesu a en Ha dwa e eal i compa a di e en s solucions.
Exis eixen 2 objec ius amb el disseny final.
● O e i una in e ície als desen olupado s amigable.
● Sepa a la capa d’execució única pe cada a ge a SIM pe àcil expansió de
l’eina.
Qualse ol ep esen ació de codi, o nom de unció, no és idèn ic a la solució
implemen ada en Giesecke+De ien .
12.1. Tempo i zado Ha dwa e en a ge es SIM
To i que el nomb e i uncionamen de empo i zado s en a ge es SIM a ia
model a model, pe ò són semblan s al SysTick i qualse ol al e empo i zado en
Embedded. A con inuació es llis a les ca ac e ís iques comunes en e les
implemen acions, pe pode en end e les solucions en els següen s apa a s.
● Regis e de comp a ge o alo . Con ind à el nomb e de ics del
empo i zado ac ual. S’ha de eni en comp e, alguns empo i zado s
comp en amun o a all, depèn si cada ic augmen a en 1 el alo de
comp a ge o disminueix en 1.
● Regis e de ecà ega. En cas que el alo desbo di, si el empo i zado
sob epassa el alo màxim o mínim, depenen si con a amun o a all
espec i amen , el alo d’aques egis e se à ca ega al egis e de
comp a ge.
● P eescalado s. Els empo i zado s pe me en aplica p eescalado s, ajus en
la eqüència del ello ge. No malmen , es a can ian la à io que els ics
del p ocessado co esponen als ics del empo i zado , pe exemple po
configu a -se pe què un ic de p ocessado sigui un de empo i zado , pe ò
si es ol e se i en execució lla ga, és possible augmen a en 16 o 32 o 64
ics de p ocessado pe empo i zado .
54
Anàlisi de endimen i op imi zació en a ge es SIM
● Regis es de con ol i es a . Cada xip ind à di e en s mane es d’ac i a ,
pa a i consul a l’es a del empo i zado . Exemples són, consul a si
desbo damen ha oco egu , comp o a si es à co en el empo i zado .
● In e upcions. En cas de desbo damen po dispa a in e upció si
l’habili em.
S’habili a à un empo i zado pe xip pe comp a el emps. En einici de la a ge a
semp e es à apaga i s’hau à de configu a i ac i a quan es desi gi u ili za , enin
en comp e que no c eï conflic es pe el Ha dwa e.
12.2. Rep esen ació del emps
La uni a de mesu a d’un empo i zado són els cicles. En gene al, una ins ucció
necessi a un cicle de e ch i al e d’execució. Pe això, el p ocessado pa al·leli za la
eina de busca la següen ins ucció amb execució de l’ac ual en xips mode ns,
així ins uccions senzilles onden el cicle d’execució. Sal s de codi,
emmaga zema ge de dades i ce ca en memò ia són ope acions més len es[6].
Aga an de e e ència la a ge a més àpida en el eball (SLI37CMA1M0) amb un
p ocessado de 100 MHz, enim el següen nomb e de cicles pe segon en
màxima po ència (pe es iccions en consum de ol a ge po no se la eqüència
eal d’execució).
100 𝑀ℎ𝑧 = 108 𝐻𝑧 = 100. 000.000 𝑐𝑖𝑐𝑙𝑒𝑠 𝑝𝑒𝑟 𝑠𝑒𝑔𝑜𝑛
En un segon enim 100 milions de cicles. Els empo i zado s enen uns 16 bi s de
ep esen ació de emps. El màxim alo ep esen a pe 16 bi s és.
𝑉𝑎𝑙𝑜𝑟 𝑚à𝑥𝑖𝑚 =2 16 − 1 = 65.535
Fins i o amb p escalado al com 256, ocasiona à en desbo damen en el
següen nomb e de cicles.
65.535 𝑐𝑖𝑐𝑙𝑒𝑠 * 256 =16. 777.216 𝑐𝑖𝑐𝑙𝑒𝑠
A causa d’aques a limi ació s’ha decidi usa 32 bi s pe ep esen a el emps, així
el màxim sense p escalado és.
𝑉𝑎𝑙𝑜𝑟 𝑚à𝑥𝑖𝑚 =2 32 − 1 = 4.294. 967.295
Pe mesu a amb 32 bi s de p ecisió s’hau à de comp a els cops que s’ha
desbo da el empo i zado , cada desbo damen suma à 1 al alo al del emps.
S’han implemen a 2 es a ègies a escolli pel desen olupado .
● Comp o ació del desbo damen usan egis es de con ol. Cada cop
que es gua da una ma ca de emps, es consul a els egis es de con ol. En
cas d’ha e -hi desbo damen , s’inc emen a el comp ado de
desbo damen s i es ne eja el ma cado en el egis e.
55
Anàlisi de endimen i op imi zació en a ge es SIM
13. Mesu es, anàlisi i millo es
Aques apa a documen a els esul a s de les úl imes e apes del eball, sense
en a en específics. Les eines desen olupades en aques eball pe me en
mesu a el endimen dins el codi, pe ò els esul a s de les p opos es són
mesu a s en els emps de comandes.
A causa de la p i aci a de l’ITL, no es conc e a à en p o undi a solucions i
peculia i a s del codi.
13.1. Mesu a
Com a eco da o i, enim en la figu a 2 el p océs de l’ITL. Cada pas llis a comp a
de múl iples comandes, aques s són.
● Es abli connexió segu a. El p océs de c eació d’un canal segu eque eix
au en icació i ope acions c ip og àfiques.
● Recepció ima ge. El p océs de ecepció i emmaga zema ge d’ima ge
eque eix d’un nomb e al de comandes, com an e io men menciona el
màxim nomb e de dades en comanda APDU són 255 by es.
● Au en ificació, pe sonali zació i emmaga zema ge de la ima ge.
Reque eixen en o pas de comp o acions de segu e a i
emmaga zema ge de dades.
En el següen pun expandi em en aques es mesu es, pun es e amen
elaciona amb el de mesu es.
13.2. Anàlisi dinàmic
Pe aplaca aques a asca és clau busca les comandes que siguin cul d’ampolla.
Alguns dels passos c ucials són.
● Codi elaciona amb el despa x de comandes.
● Mòduls d’emmaga zema ge de dades.
● Sis ema d’au en icació i mòdul de c ip og afia.
El p océs de ca ega una no a ima ge, i eemplaça l’ac ual, és bas an len i
compo a múl iples passos, coo dinació de di e en s componen s in e nes i
mol es comandes. S’ha cen ali za es o ços en aques s es pe què és un p océs
de complexi a ele ada i exis eix la possibili a d’ex eu e una immesu able
quan i a d’in o mació. És impo an cen ali za els es o ços en els pun s més
claus.
Malg a això, els esul a s del eball no són sa is ac o is pel que a a l’anàlisi del
sis ema. Els p incipals obs acles han sigu la limi ació en emps, complexi a ,
di e si a en asques i la g andà ia del codi. I, en p ocessos de c ip og afia,
comunicació o emmaga zema ge de dades, es às mol limi a pels ecu sos dels
62
Anàlisi de endimen i op imi zació en a ge es SIM
xips. El g uix de les execucions solen se p ocessos més di ec es dels quals no
exis eix g an espai de maniob a.
En da e a ins ància, i obs acle majo , un dels p oblemes és que en o momen el
codi ha de eni p esen la possibili a de pè dues de co en , comandes o a
d’o d e i e o s o a acs p opaga s en al es capes del codi. En el següen apa a
s’expandeix més sob e aques cul d’ampolla, la segu e a .
13.2.1. Codi segu
Un dels aspec es més complexos és la segu e a de la solució. Les mesu es de
segu e a suposen un cos en endimen , ja que compo en la epe ició de
p ocessos o a egimen d’aques s.
El codi en o momen ha de se p o egi d’e o s i a acs. En el cas d’elemen s
segu s el codi s’ha de desen olupa enin en comp e possibles a acs ísics als
xips. Aques s inclouen a acs amb làse s als egis es pe al e a el compo amen
del xip[52].
Exemples de mesu es de segu e a són.
● Usa en e s en comp es de booleans pe codifica e o ns. En o alo eni
en comp e la dis ància Hamming (mesu a la di e ència en e 2 alo s)[38].
● Emmaga zema alo s segu s en execució de pa s de codi pe comp o a
ha e passa pe aques es pa s.
● Elimina dades c í iques desp és de cada ús.
● Repe i càlculs segu s.
● Re-comp o ació de condicionals.
● Valo s checksum en dades c í iques.
13.3. Compilació
L’op imi zació amb compilado és mi jançan les flags (opcions passades pe
con ola el p océs de compilació).
En ARM la p incipal opció pe al e a el endimen és el ni ell d’op imi zació. Els
p incipals són[10].
● -O0. Mínima op imi zació, el codi objec e hau ia de co espond e amb el
on . Pe depu ació és millo , i pe més àpid emps de compilació.
● -O1. Op imi zació es ingida.
● -O2. Op imi zació al a.
● -O3. Op imi zació mol al a.
● -O as . Op imi zació ag essi a. Po a iba a enca no mes del llengua ge
de p og amació.
● -Oz. Op imi zació amb l’objec iu de limi a la dimensió del codi.
63
Anàlisi de endimen i op imi zació en a ge es SIM
La p ime a p o a millo an el ni ell d’op imi zació és mesu a la mida del codi,
s’ap ecia un augmen de 0,1%, un bon senyal. Pe ò, en mesu a el emps de les
comandes el endimen , la millo a mesu ada podia a iba a se 0,5% en els millo s
dels casos.
Di e en s hipò esis exis eixen.
● L’ag essi i a en inlining (inse ció del codi de uncions en comp es de
c ides) i desplegamen de bucles po augmen a el amany de les uncions
en que el codi no càpiga en les cache d’ins uccions.
● Els se s d’ins uccions més simples no comp en amb o es les eines pe
op imi za el codi. Pe exemple, SIMD (Single ins uc ion, mul iple da a)
que emmaga zemen múl iples alo s simul àniamen .
● Limi acions en la ecnologia, com len i ud d’esc ip u a a memò ia flash, o
p o ocols len s de comunicació ocupen la majo pa del emps d’execució.
● Llib e ies impo ades de ab ican s o ex e ns no són compilades, no exis eix
can i. Tampoc en p ocessos Ha dwa e agnòs ics al codi.
L’es a ègia e a, ja que cada ni ell d’op imi zació ag upa di e en s flags, in es iga
quines e en les més impo an s can ien en e ni ells de compilació manualmen .
Pe això, is el poc emps a guanya s’ha deses ima la asca pe què l’augmen en
ni ell d’op imi zació ambé compo a més emps de compilació i més
di e enciació en e el codi on i objec e (possibles eg essions).
13.4. Anàlisi es à ic
Enca a que el codi en embedded sigui codi de mesu a més pe i a i emps més
c í ics, anali zan el codi objec e àpidamen es a descob i que millo an unció a
unció po s es al ia cicles comp a s en cadascuna, esul a s negligibles.
Les hipò esis dels esul a s meno s en anali za es à icamen el codi són.
P ime amen , els majo s culs d’ampolla esideixen en p o ocols de comunicació,
emmaga zema ge de dades i c ip og afia. Millo es pe i es en la es a del codi
p o oquen en meno guany de endimen .
Finalmen , jun amen amb la limi ació de ecu sos en les SIM i la g andà ia de la
solució, no són uns pocs pun s es enyen el endimen , sinó un conjun de
pe i es pè dues en múl iples mòduls.
64
Anàlisi de endimen i op imi zació en a ge es SIM
14. Conclusions
14.1. Resum
Els esul a s d’aques p ojec e no han assoli plenamen els objec ius inicials,
p incipalmen a causa d’un mal plan ejamen en les ases inicials.
Malg a això, Speedscope i de Debug Time són solucions p àc iques, uncionals i
e ec i es pe a l’anàlisi de endimen en a ge es SIM. El disseny modula
d’aques es a que siguin una opció po able i àcil de man eni en el u u .
Com a conclusió, el desen olupamen en a ge es SIM és un p océs que po se
inc eïblemen p opie a i, p esen a de mol s ep es espec ius als sis emes
embedded en en o ns es ingi s. El eball se eix com a ad e imen i guia pe a
ap oximacions simila s, l’èxi en l’op imi zació de sis emes c í ics com les SIM
eque eixen igo ècnic, flexibili a i coneixemen en un camp inc eïblemen
di e s de la in o mà ica; p o ocols de comunicació, sis emes d’in eg ació, sis emes
embedded…
14.2. Complimen d’objec ius
14.2.1. Objec iu P incipal
1. Op imi za el endimen de l’ITL mi jançan la c eació d’eines pe
mesu a els emps en a ge a.
No assoli en e amen . Els esul a s finals han sigu menys sa is ac o is del
plan ejamen inicial.
14.2.2. Objec ius Secunda is
2. Eines de pe filació.
2.1. Ob eni alo s eals de endimen del Ha dwa e.
Assoli . El e de pode mesu a in e namen el endimen ens eu dub es de si
al es elemen s en el p océs de comunicació a egeixen so oll.
2.2. Es anda di za les eines desen olupades en el p ojec e pe se
àcilmen e-usables, au oma i za o s els p ocessos possibles pe
majo acili a d’ús.
Assoli . Les eines uncionen. El e de eni 2 eines sepa ades és un pe i
comp omís accep able donades les limi acions ecnològiques.
3. Anàlisi.
3.1. Ex eu e els pun s del codi que consumeixen més emps.
65
Anàlisi de endimen i op imi zació en a ge es SIM
Assoli .
3.2. Aconsegui llis a d’es a ègies pe millo a els emps d’execució.
Assoli pa cialmen . No s’ha aconsegui ex eu e un ca àleg exhaus iu de
solucions, pe ò sí que s’ha expandi el coneixemen del endimen i impac e de
les solucions.
4. Implemen ació.
4.1. Implemen a di e en s idees del pun an e io i mesu a la millo a de
cadascuna d’elles.
Assoli pa cialmen . Els esul a s mos en ma ges d’op imi zació més modes s
dels espe a s. A més, di e ses p opos es compo en es iccions de segu e a .
14.3. Assolimen de compe ències
● CTI1.2. Selecciona , dissenya , desplega , in eg a , ges iona xa xes i
in aes uc u es de comunicació en una o gani zació.
● CTI2.2. Adminis a i man eni aplicacions, sis emes in o mà ics i xa xes de
compu ado s.
● CTI3.1. Conceb e sis emes, aplicacions i se eis basa s en ecnologies de
xa xa, enin en comp e In e ne , web, come ç elec ònic, mul imèdia,
se eis in e ac ius i compu ació ubiqua.
L’eina d’ITL és una eina in e na pe ac uali za sis emes ope a ius en els nos es
xips. El can i del ocus en el eball, enin més pes la p ime a pa de mesu a de
endimen , i menys la segona de millo es en l’eina, ocasionen en compe ències
més en ocades en l’apa a d’embedded que el de comunicació de sis emes.
Tanma eix, el eball ha eque i coneixemen en múl iples camps, o el
elaciona amb sis emes ope a ius eque eix coneixemen ècnic d’in aes uc u a
en o es les capes d’un sis ema, incloses comunicació i emmaga zema ge de
dades.
14.4. Adequació al coneixemen del g au
Com an e io men esmen a , les pa icula i a s de eballa en a ge es SIM
eque eixen d’ap i usds ans e sal en especiali a s del g au d’in o mà ica.
P ime , és un sis ema embedded, el codi és execu a en xips i exis eix accés
di ec e als egis es i componen s Ha dwa e. Pe això, es à es e amen
elacionada amb l’especiali a d’Engyinye ia de Compu ado s.
En segona ins ància, les a ge es comp en de múl iples p o ocols d’in o mació i el
seu p opòsi final és connec a -se a xa xes mòbils. Pe això han de ges iona o s
els ecu sos del xip pe emmaga zema i ges iona in o mació pe pode
iden ifica l’usua i. Els sis emes ope a ius se eixen ambé pe dona supo als
66
Anàlisi de endimen i op imi zació en a ge es SIM
seus usua is i aplicacions. I l’ITL és l’enca ega de man eni els sis emes ope a ius
desplega s en milions de xips. Pe o això, ambé es à elacionada amb
l’especiali a de Tecnologies de la In o mació.
Finalmen , com el p opòsi e a millo a el endimen , s’anali za del disseny en el
con ex de l’eficiència i segu e a . La limi ació dels ecu sos, èm asi a p o egi
d’a acs i e o s, i al a manipulació de dades, causen que la solució s’hagi de
medi a en p o undi a . També es à elacionada amb l’especiali a de
Compu ació.
14.5. T eball u u
Pe mesu a de endimen , exis eix espai pe eu ili za eines de Debug Time i el
pe filado del simulado pe c ea un pe filado amb a ge es eals. També po se
adap a en eines de simulació o depu ació (com Keil).
Pel que a a mesu a de endimen , aques a és una asca que po se eballada
infini amen . Exis eixen dues conclusions, la p ime a és que és millo eballa en
pun s p ecisos, com més específic sigui el pun que ulguis millo a el endimen
més àcil se à eballa , pe això és impo an comp a amb bones eines de
pe filació. El pun final és se me iculós en o desen olupamen , e oac i amen
millo a el endimen suposa un sob ecos .
14.6. Opinió pe sonal
La subes imació de la complexi a en el desen olupamen d’eines de pe filació
pe a a ge es SIM, jun amen amb expec a i es poc ealis es sob e el seu
impac e, han conduï a des iacions significa i es. No es a dedica p ou emps a
una ase explo a ò ia sòlida pe a alua al e na i es ècniques o limi acions de
Ha dwa e abans d’implemen a solucions.
Això compo a ce a decepció i sen imen de de o a. Tanma eix, ha sigu una
expe iència al amen o ma i a. Aspec es que s’han ap o undi za mol han sigu
pe exemple en a qui ec u a de mic ocon olado s, compilado s, endimen de
sis emes, eines de depu ació en embedded. I una isió més global de la solució de
l’ITL.
67
Anàlisi de endimen i op imi zació en a ge es SIM
15. Glossa i
En aques eball ens és e e i à a les SIM com a ge es, el desen olupamen es a
en aques es enca a que e en ualmen agin a sis emes embedded. També
s'usa à el e me xip com a sinònim.
La llis a de e minologia, ecomana de isi a si cau qualse ol dub e llegin el
p ojec e.
● APDU (Applica ion P o ocol Da a Uni ). Uni a de comunicació en e
lec o i a ge a SIM. L'es uc u a d'un APDU es à definida en els es ànda ds
ISO/IEC 7816.
● ATR (Answe To Rese ). Missa ge en ia pe la a ge a SIM en encend e’s,
con enin pa àme es de pe es abli comunicació amb el lec o .
● B eakpoin . Pun en el codi on s’a u a l’execució pe pe me e depu ació.
● Co ex-M35P. P ocessado ARM pe secu e elemen s, u ili za en a ge es
SIM.
● Da a Wa chpoin and T ace (DWT). Mòdul de p ocessado s ARM usa pe
depu ació i aça de dades.
● Debugging. Depu ació. P océs d’anàlisi de uncionamen de codi
execu an aques o amb eines que eguin in o mació de l’execució.
● Elemen segu (secu e elemen ). Sis ema ope a iu esidin en xip amb
mesu es de segu e a pe al de p o egi dades i se eis.
● Embedded T ace Mac ocell (ETM). Mòdul de p ocessado s ARM usa pe
gene a aces d’ins uccions en emps eal.
● eSIM (Embedded SIM). SIM inc us ada en disposi iu.
● Hook. Mecànisme d’injec ació de codi, un hook cap u a l’execució ac ual
pe execu a codi di e en .
● In eg a ed De elopmen En i onmen (IDE). En o n in eg a de
desen olupamen . In e ície que combina edi o s de codi amb al es eines
pe assis i en el desen olupamen del codi, com compilado s i consola pe
comandes.
● ISO/IEC 7816. Es ànda d in e nacional pe a secu e elemen s que defineix
in e ície de con ac e i missa ges APDU i ATR.
● ITL (Image T us ed Loade ). Componen desen olupada pe
Giesecke+De ien enca egada d’ac uali za el sis ema ope a iu de secu e
elemen s.
● Keil µVision. IDE pe a sis emes embedded, con é eines de simulació,
emulació, edi o s de codi, e c.
● Memò ia flash. Tipus d’emmaga zema ge de dades no olà il; en cas de
pè dua de co en no es pe den els alo s gua da s.
● Non-Vola ile Memo y (NVM). Memò ia no olà il. Tipus de memò ia que
e é els alo s emmaga zema s enca a que no hi hagi co en ac i a (en cas
d’apaga del xip).
● Pe sonali zació. P océs de ca ega dades úniques en una SIM específica.
68
Anàlisi de endimen i op imi zació en a ge es SIM
● Pe filació. P océs d’u ili za eines pe e anàlisi de endimen sob e
p og ames o aplicacions, iden ifican pun s c í ics que consumeixen majo
pa de ecu sos.
● Secu Co e SC300. P ocessado ARM pe secu e elemen s, u ili za en
a ge es SIM.
● Sc um. Me odologia àgil de desen olupamen de So wa e pe a ges ió de
p ojec es.
● SIM (Subsc ibe Iden i y Module). Ci cui in eg a amb p opòsi de
pe me e l’accés d’un usua i a xa xa mòbil.
● SysTick. Tempo i zado de sis ema. Tempo i zado de p ocessado s ARM.
● Ta ge a in el·ligen (Sma Ca d). Ta ge a amb mic oxip in eg a ,
no malmen Secu e Elemen .
69
Anàlisi de endimen i op imi zació en a ge es SIM
16. Bibliog afia
1. Amazon. “HID Omnikey 3121”. Amazon. (s.d.).
h ps://www.amazon.es/HID-Omnikey-elec %C3%B3nico-Ta je as-In eligen
es/dp/B06XY2XLWF. Ex e 10/2024.
2. À ea me opoli ana de Ba celona. “E olución del me cado inmobilia io de
oficinas i locales”. À ea me opoli ana de Ba celona. (s.d.).
h ps://oficinesilocals.amb.ca /es/Indicado s. Ex e 10/2024.
3. A m. “Compa ibili y be ween A m 6-M, A m 7-M, and A m 8-M
a chi ec u es”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/107706/0100/In oduc ion- o- h
e-A m 8-M-excep ion-Model/Compa ibili y-be ween-A m 6-M--A m 7-M--
and-A m 8-M-a chi ec u es. Ex e 03/2025.
4. A m. “Compile Command-line Op ions - --gnu_ins umen ,
--no_gnu_ins umen ”. a m.de elope . (s.d.).
h ps://de elope .a m.com/documen a ion/dui0472/k/Compile -Command-
line-Op ions/--gnu-ins umen ----no-gnu-ins umen . Ex e 03/2025.
5. A m. “Co ex-M35P”. (s.d.). de elope .a m.
h ps://de elope .a m.com/P ocesso s/Secu Co e%20SC300#Technical-Spec
ifica ions. Ex e 03/2025.
6. A m. “Co ex-M3 Technical Re e ence Manual 1p1 - P ocesso ins uc ion
imings”. a m.de elope . (s.d.).
h ps://de elope .a m.com/documen a ion/ddi0337/e/BABBCJII. Ex e
03/2025.
7. A m. “Co ex-M3 Technical Re e ence Manual 2p0 - Chap e 8. Da a
Wa chpoin and T ace Uni ”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/ddi0337/h/da a-wa chpoin -and-
ace-uni ?lang=en. Ex e 03/2025.
8. A m. “Co ex-M3 Technical Re e ence Manual 2p0 - Chap e 9 -
Ins umen a ion T ace Mac ocell Uni ”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/ddi0337/h/ins umen a ion- ac
e-mac ocell-uni ?lang=en. Ex e 03/2025.
9. A m. “A m Co ex-M3 P ocesso Technical Re e ence Manual Re ision 2p1 -
ETM block diag am”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/100165/0201/Embedded-T ace-M
ac ocell/ETM- unc ional-desc ip ion/ETM-block-diag am?lang=en. Ex e
03/2025.
10. A m. “A m C/C++ Compile Re e ence Guide Ve sion 19.3.0 - Op imiza ion
op ions”. (s.d.).
h ps://de elope .a m.com/documen a ion/101458/1930/Compile -op ions/O
p imiza ion-op ions. Ex e 03/2025.
11. A m. “Embedded T ace Mac ocell A chi ec u e Specifica ion”.
de elope .a m. (s.d.). h ps://de elope .a m.com/documen a ion/ihi0014/q.
Ex e 03/2025.
70
Anàlisi de endimen i op imi zació en a ge es SIM
12. A m. “NVIC”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/ddi0337/e/In oduc ion/Compon
en s--hie a chy--and-implemen a ion/NVIC. Ex e 03/2025.
13. A m. “Secu Co e SC300”. de elope .a m. (s.d.).
h ps://de elope .a m.com/P ocesso s/Secu Co e%20SC300#Technical-Spec
ifica ions. Ex e 03/2025.
14. A m. “Sys em ime , SysTick”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/dui0552/a/co ex-m3-pe iphe als
/sys em- ime --sys ick. Ex e 03/2025.
15. A m. “The op ional Memo y P o ec ion Uni ”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/dui0552/a/co ex-m3-pe iphe als
/op ional-memo y-p o ec ion-uni . Ex e 03/2025.
16. A m. “The op ional Wakeup In e up Con olle ”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/dui0552/a/ he-co ex-m3-p oces
so /powe -managemen / he-op ional-wakeup-in e up -con olle . Ex e
03/2025.
17. A m. “The Thumb ins uc ion se ”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/ddi0210/c/CACBCAAE. . Ex e
03/2025.
18. A m. “Thumb-2 echnology”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/dui0471/m/key- ea u es-o -a m-
a chi ec u e- e sions/ humb-2- echnology. Ex e 03/2025.
19. A m. “µVision Use 's Guide”. de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/101407/0542/Abou -uVision.
Ex e 03/2025.
20. A m. “µVision Use 's Guide - Debug Sc ip ing”. de elope .a m.
h ps://de elope .a m.com/documen a ion/101407/0542/Debugging/Debug
-Sc ip ing. Ex e 03/2025.
21. A m. “µVision Use 's Guide - Debug Sc ip ing - Debug Commands”.
de elope .a m. (s.d.).
h ps://de elope .a m.com/documen a ion/101407/0542/Debug-Commands
?lang=en. Ex e 03/2025.
22. A lassian. “Confluence p icing. A lassian”. A lassin. (s.d.).
h ps://www.a lassian.com/so wa e/confluence/p icing. Ex e 10/2024.
23. A lassian. “Ji a P icing. A lassian”. A lassian. (s.d.).
h ps://www.a lassian.com/so wa e/ji a/p icing. Ex e 10/2024.
24. Cele , V. “Ta je a SIM como Módulo de Segu idad (HSM)”. Cele SMS. 12/2021.
h ps://www.cele sms.com/and oid-SIM-HSM-es.h m. Ex e 10/2024.
25. Clang. “Clang command line a gumen e e ence”. Clang. (s.d.).
h ps://clang.ll m.o g/docs/ClangCommandLineRe e ence.h ml. Ex e
03/2025.
26. Cos EEne gía. “E olución del p ecio de la luz pa a agos o de 2024”.
Cos EEne gía. (s.d.). h ps://www.cos eene gia.es/his o ico/p pc-agos o.
Ex e 10/2024.
71