`Guthery et al.
`
`USOO6824064B2
`(10) Patent No.:
`US 6,824,064 B2
`(45) Date of Patent:
`Nov.30, 2004
`
`(54) CONCURRENT COMMUNICATION WITH
`MULTIPLE APPLICATIONS ON A SMART
`CARD
`(75) Inventors: Scott Bates Guthery, Newton, MA
`(US); Mary Joanne Kiernan Cronin,
`Newton, MA (US)
`(73) Assignee: Mobile-Mind, Inc., Watertown, MA
`(US)
`Subject to any disclaimer, the term of this
`past l5SS. alusted under 35
`a --
`y
`yS.
`(21) Appl. No.: 09/730,670
`(22) Filed:
`Dec. 6, 2000
`(65)
`Prior Publication Data
`
`(*) Notice:
`
`US 2002/0066792 A1 Jun. 6, 2002
`(51) Int. Cl." ................................................ G06K 19/06
`(52) U.S. Cl. ....................... 235/492; 235/375; 235/380;
`235/382; 361/737; 711/102; 711/103; 710/102;
`710/301
`(58) Field of Search ................................. 235/492, 380,
`235/382, 486, 379; 361/737; 711/102, 103;
`710/102,301
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`3,412,382. A 11/1968 Couleur et al.
`3.825,904 A 7/1974 Burk et al.
`4,442,484 A 4/1984 Childs, Jr. et al. .......... 364/200
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`1179 780 A1
`2/2002
`1331 565 A1
`7/2002
`1331 565 A1
`7/2003
`WO 97/50063
`12/1997
`WO 01/16707 A1
`1/2000
`WO 01/16759 A1
`1/2000
`WO 01/16865 A1
`1/2000
`
`EP
`EP
`EP
`WO
`WO
`WO
`WO
`
`WO
`WO
`
`1/2000
`WO 01/16873 A1
`1/2000
`WO 01/16874 A1
`(List continued on next page.)
`OTHER PUBLICATIONS
`“Part III-Application Section,” EMV '96 Integrated Cir
`cuit Card Specification for Payment Systems, Version 3.1.1,
`May 31, 1998.
`International Standard, “Information technology -Identifi
`cation cards -Integrated circuit(s) with contacts -Part 4:
`issists commands for interchange.” ISO/IEC 7816–4,
`Global System for Mobile Communications, “Digital cellu
`lar telecommunications System (Phase 2+); Specification of
`the SIM Application Toolkit for the Subscriber Identity
`Module -Mobile Equipment (SIM-ME) interface.” GSM
`11.14 version 8.2.0, Release 1999.
`(List continued on next page.)
`Primary Examiner Michael G. Lee
`ASSistant Examiner-Ahshik Kim
`(74) Attorney, Agent, or Firm-Gesmer Updegrove LLP
`(57)
`ABSTRACT
`A Smart card capable of having a plurality of applications
`has a memory that is logically partitioned into a plurality of
`memory blocks. A control program allocates one or more
`blocks to one of the applications, upon a declaration from
`the application of its memory needs, and Schedules the
`applications for execution. Only those applications whose
`memory needs have been satisfied are Scheduled. The con
`trol program receives a permission request packet from a
`host, addressed to an application, and passes the permission
`request packet to the application. When the control program
`receives a permission packet from the addressed application
`after the addressed application has had its declared memory
`needs Satisfied, the control program Sends the permission
`packet to the host. A virtual machine is used to execute one
`or more of the applications. The control program commu
`nicates with the virtual machine to control Scheduling to
`predetermined time granularity. A Swapper Swaps data pages
`between the Smart card's memory, i.e., primary Storage, and
`Secondary Storage in a host.
`
`7 Claims, 33 Drawing Sheets
`
`SW
`
`Applications
`
`Appi
`ark
`
`32
`
`10
`
`
`
`8
`ry
`
`18
`EEPROM
`
`ME Swapper
`anager
`35
`34
`
`Wirtual
`Machine
`38
`
`Ex.1005
`APPLE INC. / Page 1 of 44
`
`
`
`US 6,824,064 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`4,685,125 A 8/1987 Zave
`4,718,061 A 1/1988 Turner ......................... 370/89
`4,774,659 A 9/1988 Smith et al. ................ 364/200
`4,868,376 A 9/1989 Lessin et al.
`4,972,338 A 11/1990 Crawford et al. ........... 364/200
`5,204,965 A 4/1993 Guthery et al. ............. 395/800
`5,613,073. A 3/1997 Hammond, Jr. et al. ... 395/250
`5,729,717 A * 3/1998 Tamada et al. ............. 395/491
`5,860,083 A * 1/1999 Sukegawa ......
`... 711/103
`5,912,453 A * 6/1999 Gungl et al. ................ 235/492
`5,923,884. A
`7/1999 Peyret et al. ............... 395/712
`5,969,318 A 10/1999 Mackenthun ............... 235/380
`6,003,134. A 12/1999 Kuo et al.
`6,005,942 A 12/1999 Chan et al. ................... 380/25
`6,029,892 A * 2/2000 Miyake ......
`235/380
`6,032,137 A
`2/2000 Ballard ........................ 705/7s
`6,038,551 A
`3/2000 Barlow et al. ................ 705/41
`6,052,690 A
`4/2000 de Jong ...................... 707/101
`6,081.665 A 6/2000 Nilsen et al.
`6,095,412 A
`8/2000 Bertina et al. .............. 235/380
`6,145,080 A 11/2000 Hanel ......................... 713/200
`6,186,677 B1
`2/2001 Angel et al.
`212 B: 2. Thirie- 711/11s
`6,220,510 B1
`4/2001 Everett et al. ....
`... 235/380
`6,250,557 B1 * 6/2001 Forslund et al. ............ 235/492
`6.256,690 B1 * 7/2001 Carper ....................... 7.
`6,273,335 B1 * 8/2001 Sloan ............
`235/382
`6,296,191 B1 10/2001 Hamann et al. ............ 235,492
`6,317.832 B1 * 11/2001 Everett et al. .............. 713/372
`6,374,286 B1
`4/2002 Gee et al.
`6,390,374 B1
`5/2002 Carper et al. ............... 235/492
`6,415,160 B1
`7/2002 Wichmann .................. 455/558
`6,438,573 B1
`8/2002 Nilsen
`6,480,935 B1 * 11/2002 Carper et al. ............... 711/115
`6,510.498 B1
`1/2003 Holzle et al.
`
`
`
`2/2003 Elabd
`6,526,462 B1
`6,564,995 B1 * 5/2003 Montgomery ............... 235/379
`2002/0095661 A1
`7/2002 Angel et al.
`2002/0099871 A1
`7/2002 Vargas et al. ............... 709/328
`2003/0037089 A1
`2/2003 Cota-Robles et al.
`2003/0041244 A1
`2/2003 Buttyan et al.
`2003/0046365 A1
`3/2003 Pfister et al.
`2003/0065676 A1
`4/2003 Gbadegesin et al.
`FOREIGN PATENT DOCUMENTS
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`2/2000
`WO OO/07153
`8/2000
`WO OO/46709
`9/2000
`WO OO/56030
`1/2002
`WO O2/O8897 A1
`WO 02/10889 A2 2/2002
`WO 02/10918 A1
`2/2002
`WO O2/25976 A1
`3/2002
`WO O2/O56174 A2
`7/2002
`WO 03/007 105 A2
`1/2003
`WO 03/017125 A1
`2/2003
`
`OTHER PUBLICATIONS
`Guthery, S., Self Timing Programs and the Quantum Sched
`uler, Communications of the ACM, Jun. 1988.
`Guthery, Scott B.; “Planned Preemption Scheduling of
`ss
`Light-Weight Processes in a Time-Shared Environment.
`Abstracts Of The IEEE Computer Society - Third Work
`shop On Real-Time Operating Systems, Boston, Massachu
`setts; IEEE Computer Society, Feb. 28, 1986.
`Hypponen, Konstantin et al.; “Trading-Off Type-Inference
`Memory Complexity Against Communication.” The Fifth
`International Conference on Information and Communica
`tion Security, Huhhot, Mongolia, Oct. 2003.
`* cited by examiner
`
`Ex.1005
`APPLE INC. / Page 2 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 1 of 33
`
`US 6,824,064 B2
`
`2
`
`
`
`F.G. 1
`
`Ex.1005
`APPLE INC. / Page 3 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 2 of 33
`
`US 6,824,064 B2
`
`AW
`
`W S
`
`
`
`18
`EEPROM
`
`Virtual
`Machine
`
`F.G. 2
`
`Ex.1005
`APPLE INC. / Page 4 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 3 of 33
`
`US 6,824,064 B2
`
`
`
`BUFFER
`3.
`
`BUFFER
`b
`
`BUFFER
`
`FIG. 3
`
`Ex.1005
`APPLE INC. / Page 5 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 4 of 33
`
`US 6,824,064 B2
`
`
`
`Application
`Loader
`42
`
`Directory
`
`Swapper
`35
`
`Card
`Manager
`34
`
`FG. 4
`
`Ex.1005
`APPLE INC. / Page 6 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 5 of 33
`
`US 6,824,064 B2
`
`Byte 1
`
`Application ID
`
`52
`
`
`
`54
`
`Byte 2
`
`Last
`Packet
`
`Packet TVOe
`yo
`
`56
`
`Byte 3
`
`Data
`
`58
`
`Packet
`5O
`
`Byte 16
`
`Data
`
`58
`
`F.G. 5
`
`Ex.1005
`APPLE INC. / Page 7 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 6 of 33
`
`US 6,824,064 B2
`
`S3
`
`s
`9. Cl
`
`c
`O
`
`S.
`9d
`CD
`(s
`l
`
`CO
`CD
`-
`
`Ex.1005
`APPLE INC. / Page 8 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 7 of 33
`
`US 6,824,064 B2
`
`Application Index
`
`62
`
`54 Apia, Sid 64
`
`AlD Length
`
`66
`
`68
`
`60
`
`99
`
`AD
`
`AID
`
`Filer
`
`FIG 7
`
`Ex.1005
`APPLE INC. / Page 9 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 8 of 33
`
`US 6,824,064 B2
`
`54
`
`Packet Type:
`Request to send
`
`74
`
`1st Application Index
`
`76
`
`25
`
`78
`
`99
`
`Ex.1005
`APPLE INC. / Page 10 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 9 of 33
`
`US 6,824,064 B2
`
`Application index
`
`82
`
`Packet Type:
`Permission to send
`
`84
`
`80
`
`99
`
`Filer
`
`FIG. 9
`
`Ex.1005
`APPLE INC. / Page 11 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 10 of 33
`
`US 6,824,064 B2
`
`
`
`Z || ||Sass300.Jd Je6eue.W pueO
`
`
`
`
`
`
`
`Ex.1005
`APPLE INC. / Page 12 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 11 of 33
`
`US 6,824,064 B2
`
`12O
`
`
`
`122
`
`
`
`124
`
`
`
`
`
`126
`
`
`
`
`
`128
`
`Processing Phase
`
`Determine Amount of Time
`Available for Processing Phase
`
`Select an Application
`
`Activate Application for a
`Determined Number of Steps
`
`
`
`
`
`
`
`Processing Time
`Remaining?
`
`O
`
`130 -
`
`Output Phase
`
`F.G. 11
`
`Ex.1005
`APPLE INC. / Page 13 of 44
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 12 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`
`
`
`
`SPY3NdjnNOCOEL
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`O01aset{djnduj
`
`
`
`QUOUPL]BJOW
`
`
`
`U!Jlq@UORENUIUODJes
`
`yeeHuiobino
`
`$]8x9dJOJAQWNN
`
`JSOH0}POUNjeyaq0}Bulureway
`
`9U0
`
`suiWwa}9q
`
`
`
`
`
`0}Ja49eqHuloHyjnouinjay
`
`}SOH
`
`clOld
`
`{0JOQUWINNJUuaWal098gBel
`
`Buiurewaysjayoed
`
`
`
`Ex.1005
`APPLEINC./ Page 14 of 44
`
`Ex.1005
`APPLE INC. / Page 14 of 44
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 13 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`
`
`
`
`
`
`99},—JayngaunboySahé/ayngpeanZS|.
`
`
`
`
`
`SPBJOUNgWeW
`
` yexoed
`PUAaS-O|-UOISSILUSdSOPyndu;0}yayD9eqJeysuBI|ou
`
`
`
`
`Jaynguljex0eyndu;BunlemyJ!Jayng
`
`INdINO
`
`
`
`
`
`FLOlaBulssac0lguoneoiyddypuz
`
`
`uoyeoiddywiovag
`
`Bulsseocs,gS}
`
`SoA
`
`
`
`éPayesausyjndinoa
`
`yayoedgyndjn
`
`
`
`seJayngsnchnooeyypol
`
`Ex.1005
`APPLEINC./ Page 15 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Gulssad0iguopeoiyddypieysOSL
`
`Ex.1005
`APPLE INC. / Page 15 of 44
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 14 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`INUONneoddyJaBeuewpeg}SOH
`
`802siayingZ10}ys
`
`90ZSLYUMWoleaoy
`
`vO?&JangUS{xyaalaoey
`
`202WO}SLYpues
`
`
`
`OL?WAO}AjiqejeaysayingJoyuoy)
`
`
`
`
`
`
`
`Vl‘Old
`
`
`
`LeW}Sitdindino
`
`
`
`che8'pStayingapiAodd
`
`LZ402dSidSWInding
`
`Ex.1005
`APPLEINC./ Page 16 of 44
`
`
`
`
`
`
`
`asuodsayjax0eajBuisjsanbeyjexoeya[Bulg-uoeojddyaup
`
`
`
`
`
`
`
`|
`
`22N
`
`vlSls
`
`VelSid
`
`ablOld
`
`Ex.1005
`APPLE INC. / Page 16 of 44
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 15 of 33
`
`US 6,824,064 B2
`
`92PJaINg0}gJangAdoy
`
`
`
`8Ec9ulssuodsayjnding
`
`
`
`sdajsfuny
`
`
`
`sdajsfuny
`
`Sdayg|10Wyayeayoy
`
`sdaygf10}WayeAoy
`
`sdayg|40}wyajeanoy
`
`dv!Old
`
`Ove9JeyNg0}8wayngAdoy
`
`@pe98‘psuayngee4
`
`
`
`preqs9yngindjng
`
`
`
`WOFqJajingsseq
`
`
`
`@ce4JaynguieGessayanisooy
`
`beSldSWaAleoay
`
`
`
`022WOabessayypuss
`
`
`
`
`
`OFcIWwouasucdseysAlaoey
`
`Ex.1005
`APPLEINC./ Page 17 of 44
`
`Ex.1005
`APPLE INC. / Page 17 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 16 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`SbSls
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`esuodseyjaye,ajBuisjsenbayjeyoeda[Buis-suoyeoyddyomLOOF
`
`
`
`
`
`
`
`
`
`
`
`N21AsuoljesiddylabeuewpiedJSOH
`
`
`
`
`
`
`
`BOEsueyNgZJO}4S‘IN
`
`90ESLYUMWayeanoy
`
`POEeBJALNGUSLyaMIacey
`
`ZOEWO}SLYpuss
`
`
`
`CLEWO}8'pSayingapiAgid
`
`
`
`OLEW40)AniqeyeayseyngsoWUOYy
`
`
`
`
`
`
`
`
`
`PLEWOlStdyndjno-w
`
`(v)WSL‘Old
`
`Ex.1005
`APPLEINC./ Page 18 of 44
`
`Ex.1005
`APPLE INC. / Page 18 of 44
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 17 of 33
`
`US 6,824,064 B2
`
`9ZESAYINGZJO}¥SY'N
`
`S.LaWWMNayeaipy
`
`ec&&JangULSLYaAladay
`
`ole
`
`194gSidSWINdjNO
`
`BLESidSWerlanay
`
`Oze
`
`NOSLYpuss
`
`
`
`
`
`N40}AyiqeienyJeyngsoupy
`
`ce
`
`
`
`pJayNg0}qseyngAdos-;w
`
`
`
`
`
`OPEsdaygfuny:;W
`
`
`
`
`
`ce JayngulaBessayyealscay
`
`
`
`O€€W0}abesseypuas
`
`
`
`W0)qJayngsse4
`
`
`
`sdajs|Jo}Wy)ayeanoy
`
`
`
`N0}644suayingapincig
`
`gS)Old
`
`Ex.1005
`APPLEINC./ Page 19 of 44
`
`Ex.1005
`APPLE INC. / Page 19 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 18 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`PVENOlSIdIndino:N
`
`
`
`OSEJJayng0}2sayingAdoy:N
`
`
`
`b9Esdajgfuny:N
`
`
`
`
`
`QGEsdaysfuny:W
`
`
`
`Q9EaulaSuodsayjndino:IN
`
`
`
`
`
`cSe
`
`
`
`2JangulaBessaywerleoay
`
`OPE18408dSidSNINndjno
`
`@PESidS.NeAIQ0ay
`
`
`
`OSEN0}oGessayWpuas
`
`[aaaveKeo|SOG!‘Old
`
`
`
`sdajg|105:ayeanoy
`
`
`
`N0}8Jaungsseg
`
`sdajg|40}Noyeanoy
`
`
`
`sdajg[10Wyayeanoy
`
`Ex.1005
`APPLEINC./ Page 20 of 44
`
`Ex.1005
`APPLE INC. / Page 20 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 19 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`O8€6ulasuodsayindino:N
`
`QZEsdajgf10}Nayeanoy
`
`
`
`PLE2‘pSuayjngaeu4
`
`
`
`S|‘Sls
`
`7BEqo}6Adog
`
`
`
`Pee6'ysueyngaei4
`
`
`
`984JeyNgjndjno
`
`
`
`
`
`ZZE Jayngindjno
`
`
`
`V9l‘Sls
`
`
`
`dg9l‘Sls
`
`9bSIs
`
`Ex.1005
`APPLEINC./ Page 21 of 44
`
`
`
`
`
`9ZEWWoasuodsayarigoay
`
`B8E
`
`
`
`
`
`NWO.asuodsaysAlaoay
`
`Ex.1005
`APPLE INC. / Page 21 of 44
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 20 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`asuodsayJayoed-INWASANbaYyJaxoeyalGuls~uoHeoIddyuO
`
`
`
`
`
`
`
`
`
`WuonesddyJaBeuewpies
`
`80PSuayngZJO)ysy
`
`90PIsenbayUMWsyeanoy
`
`yOr2JayNgUlS1yaAlsOay
`
`ZOPIWOlSLYpuas
`
`LyW40}
`
`AiqeyeayJeyngsoyucyy
`
`
`
`
`
`vl?WO}SidIndjno
`
`
`
`ZbPa'psuelingapiaoig
`
`OlPJN9€dSidSWINdino;
`
`
`
`lvS$
`
`
`
`
`IdSWealaoay
`
`
`
`VOLSls(v)
`
`
`
`ey4JeyngulaBessayyaniaoey
`
`
`
`OZ?W0}ebessayypues
`
`Ex.1005
`APPLEINC./ Page 22 of 44
`
`Ex.1005
`APPLE INC. / Page 22 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 21 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`EbPu!asuodsayIndjno
`
`9ZpPsayngogJayngAda
`
`
`
`berWO}qJayngssey
`
`
`
`sdajsfuny
`
`
`
`sdaysfuny
`
`Zepsdajyg[10):ayeayoy
`
`9EPsdajgIsoyWyayeanoy
`
`
`
`
`
`8zrsdaigf10)-Wayeanoy
`
`
`
`SPPaulasuodsoyIndino
`
`bbbsdayg|10}wayeanoy
`
`
`
`OrbpJayngIndjno
`
`
`
`
`
`ZppWWoyasuodsayaalgoay
`
`9}‘ls
`
`
`
`csp3
`
`psiauingsau
`
`
`
`
`
`OSPWWoyesucdseysaizoay
`
`
`
`ShpJex0eBYasuodsayindijno
`
`
`
`
`
`Ex.1005
`APPLEINC./ Page 23 of 44
`
`Ex.1005
`APPLE INC. / Page 23 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 22 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`VilOld
`
`
`
`@Z}‘Old
`
`DZtOld
`
`
`
`
`
`
`
`
`
`asuodsayJeyoeg-HININASaNbayJayoed-NW-uoVeaddyeuQ008
`
`
`
`
`
`
`
`
`
`
`
`Bulssaoo/daojaqpenjeoa:ebessawauijuy
`
`
`
`
`
`ZLOld
`
`
`
`
`
`WuonesddysaBeuewpiedJSOH
`
`808suaLngZJO}ys
`
`908SLYUMWWejeaqoy
`
`pOg2JayngUIS1ejealeoay
`
`208WO}SLY
`
`
`
`
`
`
`
`O18WO)AuiqeyeaysayingsoUOy)
`
`
`
`PLSWOlSidInding
`
`
`
`CLE9'pSIBLINGBplAcsd
`
`
`
`LgWOlStdINndino
`
`VALOla
`
`Ex.1005
`APPLEINC./ Page 24 of 44
`
`Ex.1005
`APPLE INC. / Page 24 of 44
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 23 of 33
`
`US 6,824,064 B2
`
`928PJayng0}qJayngAdop
`
`828WOSIdyndyno
`
`
`
`728W0}qJaLINgsseg
`
`
`
`2c89JaynguleyeqaAiso0y
`
`O€8WOSidIndino
`
`ZE8SldSWaaiaoay
`
`vee
`
`W0}aBessawjozpegpuas
`
`LBSldSWSAjeoay
`
`028
`
`
`
`Wo}aBessajo|Wegpuas
`
`
`
`
`
`e84Jaynguleyegaalsoay
`
`
`
`8E8WO}qJeyngsseq
`
`Org2Jayng0}qJayngAdoy
`
`qZ)Old
`
`Ex.1005
`APPLEINC./ Page 25 of 44
`
`Ex.1005
`APPLE INC. / Page 25 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 24 of 33
`
`US 6,824,064 B2
`
`pbssdajs|uny
`
`
`
`8r8sdajsfuny
`
`sdajs|10);ayeanoy
`
`
`
`sdajg|40}Wy)eyeaoy
`
`
`
`
`
`sdays[JoyW)ayeAnoy
`
`
`
`
`
`788Puiasuodsayjndjno
`
`
`
`0682ulasucdsayjndjno
`
`
`
`Says|Jo}Wy)eyealjOW
`
`
`
`
`
`p88jayeasuodsayyndino
`
`
`
`
`
`268JexOeYasuodseyIndino
`
`OLLSld
`
`9689‘pSuayingeel
`
`
`
`
`
`988IWwo.esuodsayanlaoey
`
`
`
`
`
`P68IWWoldasuodsayeaalsoey
`
`Ex.1005
`APPLEINC./ Page 26 of 44
`
`Ex.1005
`APPLE INC. / Page 26 of 44
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`8bOld
`
`
`
`
`
`asuodseyjaxoeq-NIN|WASeNbayjoyoeg-iinyy-uojeoddyaug«006
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 25 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`penjecalaieAay}sepassaooidspiedabessayy
`
`
`
`WWUoneoiddyJsoBeuewpie}SOH
`
`
`
`206WO}S1ypuag
`
`906SLYUMWyajennoy
`
`706©JUNGUlSLYanladay
`
`
`
`©)V8l“Sls
`
`Ex.1005
`APPLEINC./ Page 27 of 44
`
`Ex.1005
`APPLE INC. / Page 27 of 44
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 26 of 33
`
`US 6,824,064 B2
`
`06Jayng}10)ysy
`
`
`
`
`
`16WJoyAyiqelienyseyngsoyuoyy
`
`
`
`PLBWOlSidIndjno
`
`
`
`L6PJayNgaplAoid
`
`
`
`916WOS1dIndino
`
`26P484Ng0}qJajngAdoy
`
`
`
`sdayg|Jo}W)ayBanoy
`
`
`
`W0}gJayngsseg
`
`
`
`
`
`rAs)qJaynguleyeqaaiaoay
`
`b6SldSW8Alsoey
`
`026
`
`
`
`IN0}eBessay-jo|Wegpuas
`
`aslOla
`
`Ex.1005
`APPLEINC./ Page 28 of 44
`
`Ex.1005
`APPLE INC. / Page 28 of 44
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 30, 2004
`
`Sheet 27 of 33
`
`US 6,824,064 B2
`
`7E6WO}S1dINdino
`
`
`
`0&6sdajsfuny
`
`ZE6sdajg|10)Weyeanoy
`
`9€6WO}Sidindino
`
`O66Ptang0}qJayngAdoy
`
`0S6sdajg[uny
`
`8v6sdajs40};ayeanoy
`
`
`
`yv6W0}0Joyngsseq
`
`Zr6qJayngulejeqBAladay
`
`BEGSidSWeAlsoay
`
`06
`
`
`
`W0}eBessay)joZWegpuas
`
`
`
`O8l‘Sis
`
`Ex.1005
`APPLEINC./ Page 29 of 44
`
`Ex.1005
`APPLE INC. / Page 29 of 44
`
`
`
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 28 0f 33
`
`US 6,824,064 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`096 1940ed ºsuodsay, Indino
`
`
`
`
`
`Ex.1005
`APPLE INC. / Page 30 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 29 of 33
`
`US 6,824,064 B2
`
`Application Index
`
`502
`
`Packet type:
`
`Secondary index of requested 506
`
`Incoming page
`
`m
`
`Primary index of
`CE page
`
`508
`
`Outgoing page data
`
`510
`
`500
`
`Outgoing page data
`
`510
`
`99
`
`p
`
`Filer
`
`FIG. 19
`
`Ex.1005
`APPLE INC. / Page 31 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 30 0f 33
`
`US 6,824,064 B2
`
`Application Index
`
`522
`
`Packet type:
`TERMERSEoNSE 524
`
`Secondary index of
`Outgoing page
`
`Primary index of
`Incoming page
`
`526
`
`28
`aaaaaaaa
`
`Incoming page data
`
`530
`
`0.
`
`52O
`
`Incoming page data
`
`530
`
`99
`
`FIG. 20
`
`Ex.1005
`APPLE INC. / Page 32 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 31 of 33
`
`US 6,824,064 B2
`
`
`
`
`
`Swap Table 600
`
`Primary Index
`606
`
`FIG 21
`
`Swap Table 600
`
`Swap Table 700
`Secondary Index Application identification Primary Index RAM Location
`702
`704
`7O6
`708
`
`O
`
`PPPFPPR
`
`
`
`
`
`0
`
`2
`5
`
`7
`4
`
`2
`o
`
`Ex.1005
`APPLE INC. / Page 33 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 32 0f 33
`
`US 6,824,064 B2
`
`Application Index
`
`502
`
`Packet type:
`
`145
`
`506
`
`4
`
`508
`
`Data for AD 5
`
`510
`
`500
`
`Data for AD 5
`
`510
`
`99
`
`FIG. 22
`
`Ex.1005
`APPLE INC. / Page 34 of 44
`
`
`
`U.S. Patent
`
`Nov.30, 2004
`
`Sheet 33 of 33
`
`US 6,824,064 B2
`
`Application index
`
`522
`
`Packet type:
`TERMSR2SEoNSE 524
`
`337
`
`526
`
`Data for AD 8
`
`530
`
`520
`
`Data for AD 8
`
`530
`
`99
`
`e
`
`FIG. 23
`
`Ex.1005
`APPLE INC. / Page 35 of 44
`
`
`
`US 6,824,064 B2
`
`1
`CONCURRENT COMMUNICATION WITH
`MULTIPLE APPLICATIONS ON A SMART
`CARD
`
`2
`by reference in its entirety, one finds the concept of a method
`whereby a Smart card and in particular a Subscriber identity
`module (SIM) chip in a GSM mobile telephone can request
`Services from the handset. The Smart card can, in the process
`of responding to an APDU, Stimulate the terminal to issue a
`FETCHAPDU. The FETCHAPDU provides the smart card
`with the ability to send a command to the terminal for
`execution. After the terminal has executed this command,
`the terminal returns the result of the execution to the Smart
`card using a TERMINAL RESPONSE APDU. In a mobile
`telephone application, for example, the FETCH and TER
`MINAL RESPONSE APDUs are used to give commands to
`the handset, Such as a command to display a message or to
`retrieve a keypad hit from the subscriber.
`In addition, in a general technique known as data caching,
`data currently being used by a processor is Stored in a
`manner that enables the processor to access it more quickly
`than when it resides in its assigned Storage location. For
`example, a microprocessor chip may cache the instructions
`it executes in high-speed cache memory rather than return
`them to comparatively low-speed RAM memory in the
`expectation that recently executed instructions are more
`likely to be executed in the near future than instructions that
`have not been recently executed. Another example is the
`caching of Web pages on the World Wide Web where
`recently viewed pages are store closer (with respect trans
`mission time on the network) to the computer on which they
`were viewed than the original network Source of the pages.
`In yet another general technique known as Virtual
`memory, the amount of memory available to an application
`program is larger than the actual amount of memory on the
`processor on which it is running. Segments of the Virtual
`memory Space are Swapped into and out of the actual
`memory of the processor from a non-memory device Such as
`a hard disk as they are needed by the application.
`While there are many applications of Smart codes, one
`particular application is for its use in a mobile or cellular
`telephone.
`
`SUMMARY OF THE INVENTION
`A multi-application integrated circuit card (“smart card”)
`contains a plurality of application programs. It is desirable
`for the entities communicating with the Smart card to be able
`to conduct Simultaneous independent communications with
`more than one of these programs. Current art holds that only
`one application can be communicating with entities outside
`the Smart card at any one time. This restriction is due to a
`number of factors, including the fact that only one of the data
`messages of today's art can fit in the Smart card's random
`access memory (RAM) at a time.
`A System and method is hereby disclosed for Simulta
`neously communicating with multiple individual applica
`tions on a Smart card. The System and method employs
`fixed-size data packets and tightly couples the execution of
`applications and thereby communication with them with
`efficient management of the Smart card's limited RAM
`memory.
`The present invention provides “lightweight' or fine grain
`Scheduling of applications. Packets comprising partial com
`munication with multiple, concurrently running applications
`on the Smart card can be intermixed on the Single physical
`communication channel with the card. An additional benefit
`of the method of the disclosure is that multiple long-running
`applications can be concurrently active on the card.
`AS noted above current art includes the notion of multiple
`independent applications and multiple independent applica
`
`15
`
`BACKGROUND OF THE INVENTION
`Smart cards are Small, tamper resistant plastic cards that
`contain in them a central processing unit (CPU) and Sup
`porting hardware. They can be used, for example, as Smart
`credit cards, or employee badges, or for thousands of other
`uses, by having different application programs on board.
`In the international Smart card standard ISO/IEC 7816-4,
`incorporated herein by reference in its entirety, one finds the
`concept of up to four logically independent communication
`channels with a Smart card. The State each of these channels
`is kept Separate from the State of each of the others. Thus, for
`example, the current file on one channel may be different
`from the current file on another channel. A command Sent to
`the card on one channel must be completed before a com
`mand can be sent on another channel.
`The EMV 96 Smart card specification, incorporated
`herein by reference in its entirety, defines the notion of
`application Selection wherein the card returns a list of all of
`the applications that are contained on the card. Also in EMV
`25
`96 is described a method of activating individual applica
`tions on the Smart card. A command Sent to one application
`must be completed before a command can be sent to another
`application.
`U.S. Pat. No. 6,005,942 discloses a method for activating
`individual applications on a Smart card. When an application
`is activated all communication with the Smart card is
`directed to that application. To communicate with another
`application the currently activated application must be deac
`tivated and the new application activated.
`U.S. Pat. No. 6,052,690 discloses the notion of maintain
`ing multiple independent contexts on a Smart card and the
`notion of communicating with any one of these contexts.
`U.S. Pat. No. 5,204,965 discloses the scheduling of tasks
`on a computer based on the availability of data needed by
`those tasks.
`In Summary, current art teaches "heavyweight” or “course
`grain' Scheduling of applications on a Smart card. One
`application must completely process a message Sent to it
`before another application is started.
`Currently, data to be processed by a Smart card is trans
`mitted by the terminal to the Smart card in a single data block
`called an Application Protocol Data Unit (APDU). An
`APDU contains the data to be processed as well as the
`50
`description of the type of processing that is to be performed.
`The data returned by the Smart card to the terminal in
`response to an APDU is the result of applying the requested
`processing to the provided data. The Size of the data block
`that can be provided to the Smart card and retrieved from the
`Smart card of the current art is typically less than or equal to
`256 bytes. This restriction is due primarily to the limited
`amount of random access memory (RAM) in the Smart card
`as it is the RAM memory that is used hold data as it is
`received into and Sent out of the Smart card.
`U.S. Pat. No. 3,825,904 (among many other following)
`discloses a method of mapping pages of random acceSS
`memory to and from disk Storage in order to Support
`programs whose memory needs in total exceed the size of
`the random access memory actually available on a computer.
`In the ETSI international mobile telephony standards
`GSM 11.11 and 11.14, each of which is incorporated herein
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`Ex.1005
`APPLE INC. / Page 36 of 44
`
`
`
`US 6,824,064 B2
`
`15
`
`25
`
`35
`
`40
`
`3
`tion execution contexts on a Smart card. Current art also
`includes the notion of up to four independent logical com
`munication channels to the card that can be used to com
`municate with applications on the Smart card.
`It would be natural to use these methods in combination
`and to thereby temporarily associate a communication chan
`nel with an application to achieve Simultaneous communi
`cation with up to four applications. This requires the entity
`or entities communicating with applications on the Smart
`card to maintain an up-to-date list of association of channels
`to applications. In effect, current art externalizes an impor
`tant component of the management of the State of the Smart
`card: the activation and Scheduling of multiple applications
`on a Smart card and the concurrent communication with
`them. This places an unnecessary burden on programs and
`Systems using multi-application Smart cards and, by expos
`ing Some internal State of the Smart card, can weaken the
`Security provided by the Smart card.
`The current disclosure teaches a System and method for
`moving the administration of Simultaneous communication
`with multiple applications on a Smart card onto the Smart
`card itself. This simplifies communication with the applica
`tions on a Smart card from the point of view of the entities
`using the Smart card and at the same time makes more
`efficient use of the limited RAM memory and the physical
`communication channel with the Smart card.
`The Smart card can associate each of its applications with
`an application indeX that is unique on that card. An appli
`cation indeX provides shorthand identification for, and
`hence, faster access to, each application on the card. An
`application-identification packet is sent to the host for each
`application on the Smart card, each application-identification
`packet identifying the application and providing the associ
`ated application indeX. In one embodiment, upon the Start of
`a usage Session, an application-identification packet for each
`application on the Smart card is Sent to the host upon the Start
`of a usage Session, which may include, for example, the
`application of power to the Smart card, or the connection of
`the Smart card to a host.
`According to another aspect of the invention, an applica
`tion that executes on a Smart card receives a requesting
`packet from a host requesting to Send information. The
`application declares its memory requirements. When the
`application is notified that its memory requirements have
`been Satisfied, it sends to the host a permission packet Such
`as a permission-to-Send packet, at which time the applica
`tion is ready to receive the information from the host.
`According to yet another aspect of the invention, a Smart
`card host sends a request-to-Send packet to a Smart card that
`is capable of having a plurality of applications. The packet
`is addressed to an application on the Smart card. A
`permission-to-Send packet is received from the addressed
`application once Sufficient memory has been allocated to the
`addressed application. Information is then Sent to the
`addressed application upon receiving, at the host, the
`permission-to-Send packet.
`A further embodiment of the present invention provides a
`protocol whereby blocks of data larger than will fit in the
`communication buffer of the random access memory (RAM)
`of an integrated circuit card ("Smart card”) can nonetheless
`be processed by the Smart card. The protocol is also of use
`when multiple programs are Sharing the RAM of a Smart
`card and their total combined use of RAM exceeds the
`available physical RAM of the Smart card. The disclosed
`protocol is compatible with existing Smart card technology,
`Standards, conventions and implementations.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Accordingly, with respect to one embodiment of the
`present invention, a Smart card capable of having on it a
`plurality of applications, has a random access memory
`(RAM) that is logically partitioned into a plurality of
`memory blocks. A control program on the Smart card allo
`cates one or more memory blocks to one of the applications,
`upon a declaration from the application of its memory needs.
`The control program then Schedules the applications for
`execution. Only those applications whose memory needs are
`currently Satisfied are Scheduled for execution.
`The control program receives a request Such as a request
`to-send (RTS) packet from a host. The packet is addressed
`to a particular application, and the control program passes
`the requesting packet to the application. When the control
`program receives a permission Such as a permission-to-Send
`(PTS) packet from the addressed application after the
`addressed application has had its declared memory needs
`Satisfied, the control program Sends the permission packet to
`the host.
`In a further embodiment, the control program maintains a
`list of outstanding permissions. Any incoming packet
`addressed to an application that, using this list, cannot be
`paired with a permission Sent out the addressed application,
`is rejected.
`The host can be, for example, a wireleSS communication
`device, which is meant to include any part of the device, for
`example, the handset, and is meant cover any variety of Such
`devices including but not limited to cellular mobile tele
`phones and personal digital assistants (PDAS).
`In one embodiment, a virtual machine is used to execute
`one or more of the applications on the Smart card. The
`control program communicates with the virtual machine to
`control Scheduling to a predetermined granularity. For
`example, an application might be allowed to execute ten
`Steps, or it might be allowed to execute just one Step. The
`number of steps allowed may be fixed, or it may be
`determined once for each application or it may be deter
`mined repeatedly for every application just before executing
`the application.
`Various Scheduling algorithms. Such as round robin Sched
`uling can be used. Alternatively, the control program can
`Schedule just those applications that have incoming data. In
`yet another alternative, the control program Schedules appli
`cations based on priorities assigned to the applications. Of
`course, various combinations of these and other Scheduling
`algorithms can also be used.
`A further embodiment of the present invention includes a
`capability called a Swapper for Swapping data pages between
`the Smart card's memory (the primary storage) and a host,
`for example a mobile telephone handset (the Secondary
`Storage).
`Using, for example, the method of ETSI GSM 11.14, the
`swapper causes a FETCH command to be issued from the
`host. Upon receiving a FETCH command from the host, a
`first Set, e.g. a first block or page, of data is Swapped out
`from the memory of the Smart card back to the host. At the
`Same time a request can be made for a Second Set of data
`from the Secondary Storage to be transferred back into the
`Smart card. In this latter case, the requested Second set of
`data is received from the Secondary Storage and is Stored in
`the Smart card's memory.
`In one embodiment, a Swap table is maintained in which
`each entry tracks, for a given application and memory page,
`the corresponding data Stored in the Secondary Storage.
`In another embodiment, an extended Swap table is main
`tained in which each entry tracks, for a given application and
`
`Ex.1005
`APPLE INC. / Page 37 of 44
`
`
`
`US 6,824,064 B2
`
`S
`logical page, corresponding data Stored in the Secondary
`Storage and a corresponding physical page location where
`the data is Stored in primary Storage, i.e., the Smart card's
`memory, thus providing a