throbber
(12) United States Patent
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket