`(12) United States Patent
`Guthery et al.
`Guthery et al.
`
`111111111111111111111111111R9111!g111110111111111111111111
`USOO6824064B2
`(10) Patent No.:
`US 6,824,064 B2
`US 6,824,064 B2
`(to) Patent No.:
`(45) Date of Patent:
`Nov.30, 2004
`(45) Date of Patent:
`Nov. 30, 2004
`
`(*) Notice:
`Notice:
`(*)
`
`(54) CONCURRENT COMMUNICATION WITH
`(54)
`CONCURRENT COMMUNICATION WITH
`MULTIPLE APPLICATIONS ON A SMART
`MULTIPLE APPLICATIONS ON A SMART
`CARD
`CARD
`(75) Inventors: Scott Bates Guthery, Newton, MA
`(75)
`Inventors:
`Scott Bates Guthery, Newton, MA
`(US); Mary Joanne Kiernan Cronin,
`(US); Mary Joanne Kiernan Cronin,
`Newton, MA (US)
`Newton, MA (US)
`(73)
`Assignee:
`Mobile-Mind, Inc., Watertown, MA
`(73) Assignee: Mobile-Mind, Inc., Watertown, MA
`(US)
`(US)
`Subject to any disclaimer, the term of this
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`past l5SS. alusted under 35
`U.S.C. 154(b) by 286 days.
`a --
`y
`yS.
`(21)
`Appl. No.: 09/730,670
`(21) Appl. No.: 09/730,670
`(22) Filed:
`Dec. 6, 2000
`(22)
`Filed:
`Dec. 6, 2000
`(65)
`Prior Publication Data
`(65)
`Prior Publication Data
`US 2002/0066792 Al Jun. 6, 2002
`US 2002/0066792 A1 Jun. 6, 2002
`(51) Int. Cl." ................................................ G06K 19/06
`(51)
` GO6K 19/06
`Int. C1.7
`(52) U.S. Cl. ....................... 235/492; 235/375; 235/380;
`(52)
`U.S. Cl.
` 235/492; 235/375; 235/380;
`235/382; 361/737; 711/102; 711/103; 710/102;
`235/382; 361/737; 711/102; 711/103; 710/102;
`710/301
`710/301
`(58) Field of Search ................................. 235/492, 380,
`(58)
`Field of Search
` 235/492, 380,
`235/382, 486, 379; 361/737; 711/102, 103;
`235/382, 486, 379; 361/737; 711/102, 103;
`710/102,301
`710/102, 301
`
`(56)
`(56)
`
`EP
`EP
`EP
`EP
`EP
`EP
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`References Cited
`References Cited
`U.S. PATENT DOCUMENTS
`U.S. PATENT DOCUMENTS
`3,412,382. A 11/1968 Couleur et al.
`11/1968 Couleur et al.
`3,412,382 A
`3.825,904 A 7/1974 Burk et al.
`3,825,904 A
`7/1974 Burk et al.
` 364/200
`4,442,484 A
`4/1984 Childs, Jr. et al.
`4,442,484 A 4/1984 Childs, Jr. et al. .......... 364/200
`(List continued on next page.)
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`FOREIGN PATENT DOCUMENTS
`1179 780 A1
`2/2002
`1 179 780 Al
`2/2002
`1331 565 A1
`7/2002
`1 331 565 Al
`7/2002
`1331 565 A1
`7/2003
`1 331 565 Al
`7/2003
`WO 97/50063
`12/1997
`WO 97/50063
`12/1997
`WO 01/16707 A1
`1/2000
`WO 01/16707 Al
`1/2000
`WO 01/16759 Al
`1/2000
`WO 01/16759 A1
`1/2000
`WO 01/16865 A1
`1/2000
`WO 01/16865 Al
`1/2000
`
`WO
`WO
`WO
`WO
`
`1/2000
`WO 01/16873 Al
`1/2000
`WO 01/16873 A1
`1/2000
`WO 01/16874 Al
`1/2000
`WO 01/16874 A1
`(List continued on next page.)
`(List continued on next page.)
`OTHER PUBLICATIONS
`OTHER PUBLICATIONS
`“Part III-Application Section,” EMV '96 Integrated Cir
`"Part III —Application Section," EMV '96 Integrated Cir-
`cuit Card Specification for Payment Systems, Version 3.1.1,
`cuit Card Specification for Payment Systems, Version 3.1.1,
`May 31, 1998.
`May 31, 1998.
`International Standard, “Information technology -Identifi
`International Standard, "Information technology —Identifi-
`cation cards -Integrated circuit(s) with contacts -Part 4:
`cation cards —Integrated circuit(s) with contacts —Part 4:
`Interindustry commands for interchange," ISO/IEC 7816-4,
`issists commands for interchange.” ISO/IEC 7816–4,
`(1995).
`Global System for Mobile Communications, “Digital cellu
`Global System for Mobile Communications, "Digital cellu-
`lar telecommunications System (Phase 2+); Specification of
`lar telecommunications system (Phase 2+); Specification of
`the SIM Application Toolkit for the Subscriber Identity
`the SIM Application Toolkit for the Subscriber Identity
`Module -Mobile Equipment (SIM-ME) interface.” GSM
`Module —Mobile Equipment (SIM —ME) interface," GSM
`11.14 version 8.2.0, Release 1999.
`11.14 version 8.2.0, Release 1999.
`(List continued on next page.)
`(List continued on next page.)
`Primary Examiner Michael G. Lee
`Primary Examiner—Michael G. Lee
`ASSistant Examiner-Ahshik Kim
`Assistant Examiner Ahshik Kim
`(74) Attorney, Agent, or Firm-Gesmer Updegrove LLP
`(74) Attorney, Agent, or Firm—Gesmer Updegrove LLP
`(57)
`ABSTRACT
`(57)
`ABSTRACT
`A Smart card capable of having a plurality of applications
`A smart card capable of having a plurality of applications
`has a memory that is logically partitioned into a plurality of
`has a memory that is logically partitioned into a plurality of
`memory blocks. A control program allocates one or more
`memory blocks. A control program allocates one or more
`blocks to one of the applications, upon a declaration from
`blocks to one of the applications, upon a declaration from
`the application of its memory needs, and Schedules the
`the application of its memory needs, and schedules the
`applications for execution. Only those applications whose
`applications for execution. Only those applications whose
`memory needs have been satisfied are scheduled. The con-
`memory needs have been satisfied are Scheduled. The con
`trol program receives a permission request packet from a
`trol program receives a permission request packet from a
`host, addressed to an application, and passes the permission
`host, addressed to an application, and passes the permission
`request packet to the application. When the control program
`request packet to the application. When the control program
`receives a permission packet from the addressed application
`receives a permission packet from the addressed application
`after the addressed application has had its declared memory
`after the addressed application has had its declared memory
`needs Satisfied, the control program Sends the permission
`needs satisfied, the control program sends the permission
`packet to the host. A virtual machine is used to execute one
`packet to the host. A virtual machine is used to execute one
`or more of the applications. The control program commu-
`or more of the applications. The control program commu
`nicates with the virtual machine to control scheduling to
`nicates with the virtual machine to control Scheduling to
`predetermined time granularity. A Swapper Swaps data pages
`predetermined time granularity. A swapper swaps data pages
`between the Smart card's memory, i.e., primary Storage, and
`between the smart card's memory, i.e., primary storage, and
`Secondary Storage in a host.
`secondary storage in a host.
`
`7 Claims, 33 Drawing Sheets
`7 Claims, 33 Drawing Sheets
`
`HIW
`
`14
`
`RAM
`
`8
`ry
`ROM
`
`18
`EEPROM
`EEPROM
`
`20
`CPU
`
`1 1
`11
`11
`11
`11
`I I
`11
`i
`11
`11
`11 1,
`
`
`
`12
`
`24
`
`I/O
`
`SNV
`SW
`
`Applications
`Applications
`
`Appi
`AN241
`ark
`
`32
`— 32
`
`ao
`
`10
`—10
`
`A8Cit 5rdiNt4
`
`— 32
`
`ME Swapper
`Swapper
`Card
`Manager
`35
`anager
`34
`34
`
`Virtual
`Wirtual
`Machine
`Machine
`36
`38
`
`Ex.1005
` Page 1 of 44
`
`GARMIN /
`
`
`
`US 6,824,064 B2
`US 6,824,064 B2
`Page 2
`Page 2
`
`U.S. PATENT DOCUMENTS
`U.S. PATENT DOCUMENTS
`
`2/2003 Elabd
`6,526,462 B1
`2/2003 Elabd
`6,526,462 B1
`6,564,995 B1 * 5/2003 Montgomery ............... 235/379
` 235/379
`6,564,995 B1 * 5/2003 Montgomery
`2002/0095661 A1
`7/2002 Angel et al.
`2002/0095661 Al
`7/2002 Angel et al.
`2002/0099871 A1
`7/2002 Vargas et al. ............... 709/328
` 709/328
`2002/0099871 Al
`7/2002 Vargas et al.
`2003/0037089 A1
`2/2003 Cota-Robles et al.
`2003/0037089 Al
`2/2003 Cota-Robles et al.
`2003/0041244 A1
`2/2003 Buttyan et al.
`2003/0041244 Al
`2/2003 Buttyan et al.
`2003/0046365 A1
`3/2003 Pfister et al.
`2003/0046365 Al
`3/2003 Pfister et al.
`2003/0065676 A1
`4/2003 Gbadegesin et al.
`2003/0065676 Al
`4/2003 Gbadegesin et al.
`FOREIGN PATENT DOCUMENTS
`FOREIGN PATENT DOCUMENTS
`
`8/1987 Zave
`4,685,125 A
`4,685,125 A 8/1987 Zave
`370/89
`4,718,061 A
`1/1988 Turner
`4,718,061 A 1/1988 Turner ......................... 370/89
`4,774,659 A
`9/1988 Smith et al.
`364/200
`4,774,659 A 9/1988 Smith et al. ................ 364/200
`4,868,376 A
`9/1989 Lessin et al.
`4,868,376 A 9/1989 Lessin et al.
`364/200
`4,972,338 A
`11/1990 Crawford 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,204,965 A
`4/1993 Guthery et al.
`395/800
`5,613,073. A 3/1997 Hammond, Jr. et al. ... 395/250
`5,613,073 A
`3/1997 Hammond, Jr. et al.
`395/250
`5,729,717 A * 3/1998 Tamada et al. ............. 395/491
`5,729,717 A * 3/1998 Tamada et al.
`395/491
`5,860,083 A * 1/1999 Sukegawa ......
`... 711/103
`5,860,083 A * 1/1999 Sukegawa
`711/103
`2/2000
`WO 00/07153
`2/2000
`WO OO/07153
`5,912,453 A * 6/1999 Gungl et al. ................ 235/492
`5,912,453 A * 6/1999 Gungl et al.
`235/492
`8/2000
`WO 00/46709
`8/2000
`WO OO/46709
`5,923,884. A
`7/1999 Peyret et al. ............... 395/712
`5,923,884 A
`7/1999 Peyret et al.
`395/712
`9/2000
`WO 00/56030
`9/2000
`WO OO/56030
`5,969,318 A 10/1999 Mackenthun ............... 235/380
`5,969,318 A
`10/1999 Mackenthun
`235/380
`1/2002
`WO 02/08897 Al
`1/2002
`WO O2/O8897 A1
`6,003,134. A 12/1999 Kuo et al.
`6,003,134 A
`12/1999 Kuo et al.
`2/2002
`WO 02/10889 A2
`WO 02/10889 A2 2/2002
`6,005,942 A 12/1999 Chan et al. ................... 380/25
`380/25
`6,005,942 A
`12/1999 Chan et al.
`WO 02/10918 Al
`2/2002
`WO 02/10918 A1
`2/2002
`6,029,892 A * 2/2000 Miyake ......
`235/380
`6,029,892 A * 2/2000 Miyake
`235/380
`WO 02/25976 Al
`3/2002
`WO O2/25976 A1
`3/2002
`6,032,137 A
`2/2000 Ballard ........................ 705/7s
`6,032,137 A * 2/2000 Ballard
`705/75
`WO 02/056174 A2
`7/2002
`WO O2/O56174 A2
`7/2002
`6,038,551 A
`3/2000 Barlow et al. ................ 705/41
`6,038,551 A
`3/2000 Barlow et al.
`705/41
`WO 03/007105 A2
`1/2003
`WO 03/007 105 A2
`1/2003
`6,052,690 A
`4/2000 de Jong ...................... 707/101
`6,052,690 A
`4/2000 de Jong
`707/101
`WO 03/017125 Al
`2/2003
`WO 03/017125 A1
`2/2003
`6,081.665 A 6/2000 Nilsen et al.
`6,081,665 A
`6/2000 Nilsen et al.
`6,095,412 A
`8/2000 Bertina et al. .............. 235/380
`235/380
`6,095,412 A * 8/2000 Bertina et al.
`OTHER PUBLICATIONS
`OTHER PUBLICATIONS
`6,145,080 A 11/2000 Hanel ......................... 713/200
`6,145,080 A * 11/2000 Hanel
`713/200
`6,186,677 B1
`2/2001 Angel et al.
`Guthery, S., Self Timing Programs and the Quantum Sched
`6,186,677 B1
`2/2001 Angel et al.
`Guthery, S., Self—Timing Programs and the Quantum Sched-
`212 B: 2. Thirie- 711/11s
`uler, Communications of the ACM, Jun. 1988.
`711/115
`6,216,204 B1 * 4/2001 Thiriet
`
`uler, Communications of the ACM, Jun. 1988.
`235/380
`6,220,510 B1 * 4/2001 Everett et al.
`Guthery, Scott B.; “Planned Preemption Scheduling of
`... 235/380
`6,220,510 B1
`4/2001 Everett et al. ....
`Guthery, Scott B.; "Planned Preemption Scheduling of
`ss
`6,250,557 B1 * 6/2001 Forslund et al. ............ 235/492
`235/492
`6,250,557 B1 * 6/2001 Forslund et al.
`6.256,690 B1 * 7/2001 Carper ....................... 7.
`Light-Weight Processes in a Time-Shared Environment.
`Light—Weight Processes in a Time—Shared Environment."
`6,256,690 B1 * 7/2001 Carper
`710/102
`Abstracts Of The IEEE Computer Society - Third Work
`6,273,335 B1 * 8/2001 Sloan ............
`235/382
`Abstracts Of The IEEE Computer Society —Third Work-
`6,273,335 B1 * 8/2001 Sloan
`235/382
`6,296,191 B1 10/2001 Hamann et al. ............ 235,492
`shop On Real-Time Operating Systems, Boston, Massachu
`shop On Real—Time Operating Systems, Boston, Massachu-
`6,296,191 B1 * 10/2001 Hamann et al.
`235/492
`setts; IEEE Computer Society, Feb. 28, 1986.
`6,317.832 B1 * 11/2001 Everett et al. .............. 713/372
`setts; IEEE Computer Society, Feb. 28, 1986.
`6,317,832 B1 * 11/2001 Everett et al.
`713/372
`Hypponen, Konstantin et al.; “Trading-Off Type-Inference
`6,374,286 B1
`4/2002 Gee et al.
`Hypponen, Konstantin et al.; "Trading—Off Type—Inference
`6,374,286 B1
`4/2002 Gee et al.
`Memory Complexity Against Communication.” The Fifth
`6,390,374 B1
`5/2002 Carper et al. ............... 235/492
`235/492 Memory Complexity Against Communication." The Fifth
`6,390,374 B1
`5/2002 Carper et al.
`7/2002 Wichmann .................. 455/558
`International Conference on Information and Communica
`6,415,160 B1
`6,415,160 B1
`7/2002 Wichmann
`455/558
`International Conference on Information and Communica-
`6,438,573 B1
`8/2002 Nilsen
`tion Security, Huhhot, Mongolia, Oct. 2003.
`6,438,573 B1
`8/2002 Nilsen
`tion Security, Huhhot, Mongolia, Oct. 2003.
`6,480,935 B1 * 11/2002 Carper et al. ............... 711/115
`711/115
`6,480,935 B1 * 11/2002 Carper et al.
`6,510.498 B1
`1/2003 Holzle et al.
`* cited by examiner
`6,510,498 B1
`1/2003 Holzle et al.
`* cited by examiner
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`
`
`Ex.1005
` Page 2 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 1 of 33
`Sheet 1 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`2
`
`4
`
`
`
`6
`
`CI
`
` •
`
`8
`
`CI
`
`1
`
`II=Pd\
`
`FIG. 1
`F.G. 1
`
`10
`
`Ex.1005
` Page 3 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 2 of 33
`Sheet 2 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`
`
`12
`
`H/W
`AW
`
`14
`
`RAM
`
`16
`
`ROM
`
`22-
`
`18
`18
`EEPROM
`EEPROM
`
`20
`CPU
`
`24
`
`I/O
`
`S/W
`W S
`
`Applications
`
`30
`
`— 10
`
`App #1
`Bank
`
`1— 32
`
`App #N
`Credit — 32
`Card
`
`Swapper
`35
`
`Card
`Manager
`34
`
`Virtual
`Virtual
`Machine
`Machine
`36
`
`FIG. 2
`F.G. 2
`
`Ex.1005
` Page 4 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 3 of 33
`Sheet 3 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`
`
`RAM
`
`14
`
`BUFFER
`BUFFER
`1—
`40
`a
`3.
`
`BUFFER
`BUFFER
`b
`b
`
`40
`
`•
`
`•
`
`•
`
`BUFFER
`k
`
`BUFFER
`
`1----
`40
`
`FIG. 3
`FIG. 3
`
`Ex.1005
` Page 5 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 4 of 33
`Sheet 4 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`App #1
`
`32
`
`App #2
`
`32
`
`App #N
`
`32
`
`
`
`30
`
`Application
`Application
`Loader
`Loader
`42
`42
`
`Directory
`Directory
`
`44
`
`Virtual
`Machine
`
`36
`
`Swapper
`Swapper
`35
`35
`
`I/O
`Driver
`
`38
`
`Card
`Card
`Manager
`Manager
`34
`34
`
`FG. 4
`FIG. 4
`
`Ex.1005
` Page 6 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 5 of 33
`Sheet 5 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Byte 1
`Byte 1
`
`Application ID
`Application ID
`
`52
`52
`
` 'Mk
`
`
`
`54
`54
`
`Last
`Last
`Packet
`Packet
`
`Byte 2
`Byte 2
`
`Packet TVOe
`Packet Type
`yo
`
`56
`56
`
`Byte 3
`Byte 3
`
`Data
`Data
`
`58
`58
`
`Packet
`Packet
`50
`5O
`
`Byte 16
`Byte 16
`
`Data
`Data
`
`58
`58
`
`F.G. 5
`FIG. 5
`
`Ex.1005
` Page 7 of 44
`
`GARMIN /
`
`
`
`Waled *S11
`U.S. Patent
`
`Nov.30, 2004
`1700Z `0£ 'AIN
`
`Sheet 6 of 33
`££ JO 9 13311S
`
`to 179017Z8`9 Sa
`US 6,824,064 B2
`
`
`
` 4
`
`•
`
`•
`
`•
`
`54
`(
`0
`
`FIG. 6
`
`CO
`CD
`-
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`54
`
`1
`
`A
`
`
`
`A
`
`Packet #1
`
`S.
`9d
`CD
`(s
`l
`
`50-1
`
`A
`
`59
`
`S3
`
`
`
`
`
`Packet #J
`
`s
`9. Cl
`
`50-J
`
`c
`O
`
`Ex.1005
` Page 8 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 7 of 33
`Sheet 7 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application Index
`Application Index
`
`62
`62
`
`Packet Type:
`54 Apia, Sid 64
`64
`54
`Application ID (AID)
`
`AlD Length
`AID Length
`
`66
`66
`
`-,
`
`„
`
`,
`
`68 > 60
`68
`60
`
`99
`99
`
`AID
`AD
`
`AID
`AID
`
`Filler
`
`Filler
`Filer
`
`FIG. 7
`FIG 7
`
`Ex.1005
` Page 9 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 8 of 33
`Sheet 8 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`0
`
`72
`
`54
`54
`
`Packet Type:
`Packet Type:
`Request to send
`Request to send
`
`74
`74
`
`1st Application Index
`1st Application Index
`
`76
`76
`
`•
`
`Last Application Index
`
`70
`
`0
`25
`
`78
`78
`
`Filler
`
`99
`99
`
`Filler
`
`FIG. 8
`
`Ex.1005
` Page 10 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 9 of 33
`Sheet 9 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application index
`Application Index
`
`82
`82
`
`54
`
`Packet Type:
`Packet Type:
`Permission to send
`Permission to send
`
`84
`84
`
`80
`80
`
`> 99
`99
`
`Filler
`
`•
`
`Filler
`Filer
`
`FIG. 9
`FIG. 9
`
`Ex.1005
` Page 11 of 44
`
`GARMIN /
`
`
`
`Poled *S11.
`U.S. Patent
`
`Nov.30, 2004
`
`££ Jo OI lamIS
`Sheet 10 of 33
`
`Zff 179017Z8`9 Sa US 6,824,064 B2
`
`112
`
`FIG. 10
`
`Card Manager Processes
`
`
`
`Z || ||Sass300.Jd Je6eue.W pueO
`
`
`
`
`
`Packet
`
`Processing Phase
`
`120—
`
`110 — Application Moves Packet to its
`
`RAM Processing Buffer
`
`Activate Addressed
`
`Application
`
`yes
`
`Permission-To-Send to this
`
`Address Outstanding
`
`no
`
`108 —
`
`106
`
`no
`
`yes
`
`Address 0?
`
`104 —
`
`Receive Packet from Host
`
`102 —
`
`Input Phase
`
`100 —
`
`
`
`
`
`Ex.1005
` Page 12 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 11 of 33
`Sheet 11 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`120
`12O
`
`
`
`122
`122
`
`
`
`124
`124 ---
`
`
`
`
`
`126
`126
`
`
`
`
`
`128
`128
`
`Processing Phase
`Processing Phase
`
`Determine Amount of Time
`Determine Amount of Time
`Available for Processing Phase
`Available for Processing Phase
`
`Select an Application
`Select an Application
`
`Activate Application for a
`Activate Application for a
`Determined Number of Steps
`Determined Number of Steps
`
`
`
`
`
`
`
`Processing Time
`Processing Time
`Remaining?
`Remaining?
`
`no
`O
`
`yes
`
`130 -
`
`130
`
`Output Phase
`
`Output Phase
`
`FIG. 11
`F.G. 11
`
`Ex.1005
` Page 13 of 44
`
`GARMIN /
`
`
`
`Zff 179017Z8`9 Sa US 6,824,064 B2
`
`££ Jo Z1 laNS
`
`sP
`C.i4
`
`?
`
`Poled •S•11
`U.S. Patent
`
`F 100
`
`Input Phase
`
`
`
`
`
`FIG. 12
`
`Packets Remaining
`Decrement Number of
`
`Return Outgoing Packet to
`
`Host
`
`o.
`
`none
`
`Set Continuation Bit in
`
`Outgoing Packet
`
`more than one
`
`Remaining to be Returned to Host
`
`Determine Number of Packets
`
`138—
`
`136
`
`134
`
`132
`
`one
`
`Output Phase
`
`130 —
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ex.1005
` Page 14 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`Pined *S11
`
`1700Z `0£ 'AIN
`
`££ Jo CI laNS
`
`Zff 179017Z8`9 Sf1 US 6,824,064 B2
`
`FIG. 13
`
`End Application Processing
`
`—170
`
`—168
`
`
`
`—166
`
`Output Packet
`Mark Buffer as
`
`Place Permission-To-Send
`
`Packet in Buffer
`
`t
`
`Acquire Buffer
`
`Mark Output Buffer as
`
`Output Packet
`
`yes
`
`Output Generated?
`
`Perform Application
`
`Processing
`
`164
`
`162—
`no
`
`158—
`
`Buffer if Awaiting Input
`Transfer Packet to Input
`
`154 —
`
`* no
`
`yes
`
`Need Buffer?
`
`152
`
`t
`
`Start Application Processing
`
`150
`
`
`
`
`
`
`
`
`
`
`
`Ex.1005
` Page 15 of 44
`
`GARMIN /
`
`
`
`Poled *S11.
`
`££ Jo 17i lamIS
`
`Zff 179017Z8`9 Sfl
`
`FIG. 14A
`
`Output PTS to M 214
`
`Ask for 2 Buffers 208
`
`Output M's PTS Packet 216
`
`A
`
`Provide Buffers d,e 212
`
`Monitor Buffer Availability for M 210
`
`-11 Activate M with RTS 206
`
`Receive RTS in Buffer a 204
`
`Application M
`
`Card Manager
`
`H
`
`Host
`
`Send RTS to M 202
`
`200 One Application - Single Packet Request/Single Packet Response
`
`FIG. 14
`
`FIG. 146
`
`FIG. 14A
`
`Ex.1005
` Page 16 of 44
`
`GARMIN /
`
`
`
`Juaied 'Ka
`
`cc Jo Si 13311S
`
`Zff 179017Z8`9 Sa
`
`FIG. 14B
`
`Receive Response from M 246
`
`Free Buffers d, e 242
`
`Copy Buffer e to Buffer b 240
`
`Output Response in e 238
`
`Run j Steps 234
`
`Run j Steps 230
`
`Activate M for j Steps 236
`
`Activate M for j Steps 232
`
`Activate M for j Steps 228
`
`Copy Buffer b to Buffer d 226
`
`Output Buffer b 244
`
`j
`
`-161 Pass Buffer b to M 224
`
`Receive Message in Buffer b 222
`
`Send Message to M 220
`
`A
`
`Receive M's PTS 218
`
`Ex.1005
` Page 17 of 44
`
`GARMIN /
`
`
`
`Waled *S11
`U.S. Patent
`
`1700Z `0£ 'AIN
`
`££ JO 91 laNS
`
`to 179017Z8`9 Sa US 6,824,064 B2
`
`) M: Output PTS to M 314
`
`•
`
`FIG. 15A
`
`M: Ask for 2 Buffers 308
`
`-111 Provide Buffers d,e to M 312
`
`Monitor Buffer Availability for M 310
`
`Activate M with RTS 306
`
`Receive RTS in Buffer a 304
`
`Applications M & N
`
`Card Manager
`
`II
`
`Send RTS to M 302
`Host
`
`FIG. 15D
`
`FIG. 15C
`
`FIG. 15B
`
`
`
`FIG. 15A
`
`FIG. 15
`
`Two Applications - Single Packet Request/Single Packet Response
`
`300
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ex.1005
` Page 18 of 44
`
`GARMIN /
`
`
`
`Waled *ST1
`
`££ JO LT WINS
`
`Zff 179017Z8`9 Sa
`
`Provide Buffers f,g to N 342
`
`FIG. 15B
`
`M: Run j Steps 340
`
`M: Copy Buffer b to Buffer d 336
`
`Activate M for j Steps 338
`
`Pass Buffer b to M 334
`
`Receive Message in Buffer b 332
`
`Send Message to M 330
`
`N: Ask for 2 Buffers 326
`
`Monitor Buffer Availability for N 328
`
`Th.61 Activate N with RTS 324
`
`Receive RTS in Buffer a 322
`
`Send RTS to N 320
`
`Receive M's PTS 318
`
`Output M's PTS Packet 316
`
`A
`
`Ex.1005
` Page 19 of 44
`
`GARMIN /
`
`
`
`Poled •S•11
`
`£C Jo XI PaliS
`
`Zff 179017Z8`9 Sa
`
`M: Output Response in e 368
`
`N: Run j Steps 364
`
`N: Copy Buffer a to Buffer f 360
`
`M: Run j Steps 356
`
`Copy e to b 370
`
`C
`
`FIG. 15C
`
`Activate M for j Steps 366
`
`Activate N for j Steps 362
`
`Pass Buffer a to N 358
`
`-11 Activate M for j Steps 354
`
`Receive Message in Buffer a 352
`
`N: Output PTS to N 344
`
`B
`
`Output N's PTS Packet 346
`
`Send Message to N 350
`
`Receive N's PTS 348
`
`Ex.1005
` Page 20 of 44
`
`GARMIN /
`
`
`
`Zff 179017Z8`9 Sf1
`
`££ Jo 61 lamIS
`
`4.
`0
`0
`IN
`:=
`C.04
`'.
`
`Poled *S'fl.
`
`FIG. 16
`
`FIG. 16B
`
`FIG. 16A
`
`FIG. 15D
`
`Output Buffer b 386
`
`Free Buffers f, g 384
`
`i
`
`Copy g to b 382
`
`J
`
`Receive Response from N 388
`
`N: Output Response in g 380
`
`Activate N for j Steps 378
`
`Receive Response from M 376
`
`Free Buffers d, e 374
`
`Output Buffer b 372
`
`C
`
`Ex.1005
` Page 21 of 44
`
`GARMIN /
`
`
`
`Poied •S•11
`
`1700Z'oc•Aom
`
`££ Jo OZ laNS
`
`Zff 179017Z8`9 Sfl
`
`FIG. 16A
`
`A
`
`Receive Message in Buffer b 422
`
`Send Message to M 420
`
`Receive M's PTS 418
`
`Output PTS to M 414
`
`Ask for 2 Buffers 408
`
`Output M's PTS Packet 416
`
`Provide Buffers d,e 412 L,L,
`
`Monitor Buffer Availability for M 410
`
`IActivate M with Request 406
`
`Receive RTS in Buffer a 404
`
`Application M
`
`Card Manager
`
`H
`
`Send RTS to M 402
`
`Host
`
`One Application - Single Packet Request/Multi-Packet Response
`
`400
`
`Ex.1005
` Page 22 of 44
`
`GARMIN /
`
`
`
`ivalud *S*11.
`
`££ Jo 1Z 13311S
`
`Zff 179017Z8`9 Sf1
`
`FIG. 16B
`
`Free Buffers d, e 452
`
`Output Response Packet 448
`
`Receive Response from M 450
`
`Output Response in e 446
`
`(..e.,
`
`Activate M for j Steps 444
`
`Receive Response from M 442
`
`Output Buffer d 440
`
`Output Response in d 438
`
`Run j Steps 434
`
`Run j Steps 430
`
`Activate M for j Steps 436
`
`Activate M for j Steps 432
`
`Activate M for j Steps 428
`
`Copy Buffer b to Buffer d 426
`
`Pass Buffer b to M 424
`
`A
`
`Ex.1005
` Page 23 of 44
`
`GARMIN /
`
`
`
`Waled *S11
`U.S. Patent
`
`££ Jo ZZ laNS
`
`Zff 179017Z8`9 Sfl US 6,824,064 B2
`
`Output PTS to M 816
`
`A
`
`FIG. 17A
`
`Output PTS to M 814
`
`Ask for 2 Buffers 808
`
`Provide Buffers d,e 812 Lik.
`
`Monitor Buffer Availability for M 810
`
`--*1 Activate M with RTS 806
`
`Receive RTS in Buffer a 804
`
`LI
`
`RTS to M 802
`
`FIG. 7
`1
`
`FIG. 17C
`
`FIG. 17B
`
`FIG. 17A
`
`Application M
`
`Card Manager
`
`Host
`
`Entire message received before processing
`
`800 One Application - Multi-Packet Request/Multi-Packet Response
`
`
`
`
`
`
`
`Ex.1005
` Page 24 of 44
`
`GARMIN /
`
`
`
`Waled *ST1
`
`CC Jo £Z 13311S
`
`Zff 179017Z8`9 Sa
`
`Copy Buffer b to Buffer e 840 I
`
`o
`
`Pass Buffer b to M 838
`
`Receive Data in Buffer b 836
`
`I
`
`Output PTS to M 830
`
`FIG. 17B
`
`Send Part 2 of Message to M
`834
`
`Receive M's PTS 832
`
`Output PTS to M 828
`
`Copy Buffer b to Buffer d 826
`
`Pass Buffer b to M 824
`
`Receive Data in Buffer b 822
`
`I
`
`Send Part 1 of Message to M
`820
`
`Receive M's PTS 818
`
`A
`
`Ex.1005
` Page 25 of 44
`
`GARMIN /
`
`
`
`Juaied 'Ka
`
`££ Jo 17Z laNS
`
`Zff 179017Z8`9 Sfl
`
`FIG. 17C
`
`Free Buffers d, e 896
`
`Output Response Packet 892
`
`Receive Response from M 894
`
`Output Response in e 890
`
`Activate M for j Steps 888
`
`1
`
`Response Packet 884
`
`Output Response
`
`Receive Response from M 886
`
`Output Response in d 882
`
`Run j Steps 848
`
`Run j Steps 844
`
`Activate M for j Steps 880
`
`Activate M for j Steps 846
`
`0 Activate M for j Steps 842
`
`Ex.1005
` Page 26 of 44
`
`GARMIN /
`
`
`
`Pined •S•11
`
`££ Jo SZ 13311S
`
`Zff 179017Z8`9 Sa
`
`Activate M with RTS 906
`
`Receive RTS in Buffer a 904
`
`Application M
`
`Card Manager
`
`Message parts processed as they are received
`
`FIG. 18A
`
`H
`
`Send RTS to M 902
`
`Host
`
`900 One Application - Multi-Packet Request/Multi-Packet Response
`
`FIG. 18D
`
`FIG. 18C
`
`FIG. 186
`
`FIG. 18A
`
`FIG. 18
`
`Ex.1005
` Page 27 of 44
`
`GARMIN /
`
`
`
`Waled *S11
`
`££ JO 9Z laNS
`
`Zff 179017Z8`9 Sfl
`
`Copy Buffer b to Buffer d 926
`
`Activate M for j Steps 928
`
`Pass Buffer b to M 924 La
`
`FIG. 18B
`
`Receive Data in Buffer b 922
`
`ti
`
`Send Part 1 of Message to M
`920
`
`Receive M's PTS 918
`
`Output PTS to M 914
`
`Output PTS to M 916
`
`Provide Buffer d 912
`
`Monitor Buffer Availability for M 910
`
`Ask for 1 Buffer 908
`
`A
`
`Ex.1005
` Page 28 of 44
`
`GARMIN /
`
`
`
`Waled *S11
`
`££ JO LZ WINS
`
`Zff 179017Z8`9 Sfl
`
`C
`
`Run j Steps 950
`
`Copy Buffer b to Buffer d 946
`
`Activate M for j Steps 948
`
`Pass Buffer b to M 944
`
`FIG. 18C
`
`Receive Data in Buffer b 942
`
`Output PTS to M 936
`
`Send Part 2 of Message to M
`940
`
`Receive M's PTS 9381
`
`Output PTS to M 934
`
`Activate M for j Steps 932
`
`Run j Steps 930
`
`B
`
`Ex.1005
` Page 29 of 44
`
`GARMIN /
`
`
`
`ivalud *S*11.
`U.S. Patent
`
`Nov.30, 2004
`
`cc Jo xz 13311S
`Sheet 28 0f 33
`
`Zff 179017Z8`9 Sa US 6,824,064 B2
`
`Free Buffer d 972
`
`Output Response Packet 968
`
`FIG. 18D
`
`Receive Response from M 970
`
`Output Response in d 966
`
`Activate M for j Steps 964
`
`Receive Response from M 962
`
`Output Response Packet 960
`
`
`
`
`
`
`
`096 1940ed ºsuodsay, Indino
`
`Output Response in d 958
`
`Run j Steps 954
`
`Activate M for j Steps 956
`
`Activate M for j Steps 952
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ex.1005
` Page 30 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 29 of 33
`Sheet 29 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application Index
`Application Index
`
`502
`502
`
`54
`
`Packet type:
`Packet type:
`SWAP
`
`504
`
`Secondary index of requested 506
`Secondary index of requested 506
`incoming page
`Incoming page
`m
`
`Primary index of
`Primary index of
`CE page
`outgoing page
`
`508
`508
`
`Outgoing page data
`Outgoing page data
`
`510
`510
`
`500
`500
`
`Outgoing page data
`Outgoing page data
`
`510
`510
`
`99 <
`99
`
`Filler
`
`•
`
`p
`
`Filler
`Filer
`
`FIG. 19
`FIG. 19
`
`Ex.1005
` Page 31 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 30 0f 33
`Sheet 30 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application Index
`Application Index
`
`522
`522
`
`54
`
`Packet type:
`Packet type:
`TERMERSEoNSE 524
`TERMINAL RESPONSE
`
`524
`
`Secondary index of
`Secondary index of
`Outgoing page
`outgoing page
`
`Primary index of
`Primary index of
`incoming page
`Incoming page
`
`526
`526
`
`28
`528
`aaaaaaaa
`
`Incoming page data
`Incoming page data
`
`530
`530
`
`0.
`
`> 520
`52O
`
`Incoming page data
`Incoming page data
`
`530
`530
`
`99
`99 <
`
`,
`
`Filler
`
`•
`
`Filler
`
`FIG. 20
`FIG. 20
`
`..
`
`Ex.1005
` Page 32 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 31 of 33
`Sheet 31 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`
`
`
`
`Secondary Index
`602
`
`Swap Table 600
`Swap Table 600
`Application Identification
`604
`
`145
`0
`0
`
`8
`2
`5
`
`FIG. 21
`FIG 21
`
`Primary Index
`Primary Index
`606
`606
`4
`7
`4
`
`Secondary Index
`602
`
`0
`0
`337
`
`Swap Table 600
`Swap Table 600
`Application Identification
`604
`
`W.
`
`8
`2
`5
`
`FIG. 24
`
`Primary Index
`606
`
`4
`7
`4
`
`O
`
`Swap Table 700
`Swap Table 700
`Secondary Index Application identification Primary Index RAM Location
`Secondary Index
`Application Identification
`RAM Location
`Primary Index
`702
`704
`706
`708
`702
`704
`7O6
`708
`0
`4
`6
`8
`0
`2
`7
`2
`2
`0
`7
`2
`5
`4
`o
`337
`5
`4
`0
`FIG. 25
`
`PPPFPPR
`
`
`
`
`
`Ex.1005
` Page 33 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 32 0f 33
`Sheet 32 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application Index
`Application Index
`
`502
`502
`
`54
`
`Packet type:
`Packet type:
`SWAP
`
`504
`
`145
`145
`
`506
`506
`
`4
`4
`
`508
`508
`
`Data for AD 5
`Data for AID 5
`
`510
`510
`
`500
`500
`
`•
`
`•
`
`•
`
`Data for AID 5
`Data for AD 5
`
`510
`510
`
`99
`99 <
`
`s..
`
`Filler
`
`•
`
`Filler
`
`FIG. 22
`FIG. 22
`
`Ex.1005
` Page 34 of 44
`
`GARMIN /
`
`
`
`U.S. Patent
`U.S. Patent
`
`Nov.30, 2004
`Nov. 30, 2004
`
`Sheet 33 of 33
`Sheet 33 of 33
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`Application index
`Application Index
`
`522
`522
`
`54
`
`Packet type:
`Packet type:
`TERMSR2SEoNSE 524
`TERMINAL RESPONSE
`
`524
`
`337
`337
`
`526
`526
`
`4
`
`528
`
`Data for AD 8
`Data for AID 8
`
`530
`530
`
`520
`> 520
`
`Data for AID 8
`Data for AD 8
`
`530
`530
`
`99 <
`99
`
`Filler
`
`e
`
`Filler
`
`FIG. 23
`FIG. 23
`
`..,
`
`Ex.1005
` Page 35 of 44
`
`GARMIN /
`
`
`
`15
`15
`
`40
`40
`
`US 6,824,064 B2
`US 6,824,064 B2
`
`1
`1
`CONCURRENT COMMUNICATION WITH
`CONCURRENT COMMUNICATION WITH
`MULTIPLE APPLICATIONS ON A SMART
`MULTIPLE APPLICATIONS ON A SMART
`CARD
`CARD
`
`2
`2
`by reference in its entirety, one finds the concept of a method
`by reference in its entirety, one finds the concept of a method
`whereby a Smart card and in particular a Subscriber identity
`whereby a smart card and in particular a subscriber identity
`module (SIM) chip in a GSM mobile telephone can request
`module (SIM) chip in a GSM mobile telephone can request
`Services from the handset. The Smart card can, in the process
`services from the handset. The smart card can, in the process
`of responding to an APDU, Stimulate the terminal to issue a
`5 of responding to an APDU, stimulate the terminal to issue a
`FETCHAPDU. The FETCHAPDU provides the smart card
`BACKGROUND OF THE INVENTION
`BACKGROUND OF THE INVENTION
`FETCH APDU. The FETCH APDU provides the smart card
`with the ability to send a command to the terminal for
`with the ability to send a command to the terminal for
`Smart cards are Small, tamper resistant plastic cards that
`Smart cards are small, tamper resistant plastic cards that
`execution. After the terminal has executed this command,
`execution. After the terminal has executed this command,
`contain in them a central processing unit (CPU) and Sup
`contain in them a central processing unit (CPU) and sup-
`the terminal returns the result of the execution to the Smart
`the terminal returns the result of the execution to the smart
`porting hardware. They can be used, for example, as Smart
`porting hardware. They can be used, for example, as smart
`card using a TERMINAL RESPONSE APDU. In a mobile
`10 card using a TERMINAL RESPONSE APDU. In a mobile
`credit cards, or employee badges, or for thousands of other
`credit cards, or employee badges, or for thousands of other
`telephone application, for example, the FETCH and TER
`telephone application, for example, the FETCH and TER-
`uses, by having different application programs on board.
`uses, by having different application programs on board.
`MINAL RESPONSE APDUs are used to give commands to
`MINAL RESPONSE APDUs are used to give commands to
`In the international Smart card standard ISO/IEC 7816-4,
`In the international smart card standard ISO/IEC 7816-4,
`the handset, Such as a command to display a message or to
`the handset, such as a command to display a message or to
`incorporated herein by reference in its entirety, one finds the
`incorporated herein by reference in its entirety, one finds the
`retrieve a keypad hit from the subscriber.
`retrieve a keypad hit from the subscriber.
`concept of up to four logically independent communication
`concept of up to four logically independent communication
`In addition, in a general technique known as data caching,
`In addition, in a general technique known as data caching,
`channels with a Smart card. The State each of these channels
`channels with a smart card. The state each of these channels
`data currently being used by a processor is Stored in a
`data currently being used by a processor is stored in a
`is kept Separate from the State of each of the others. Thus, for
`is kept separate from the state of each of the others. Thus, for
`manner that enables the processor to access it more quickly
`manner that enables the processor to access it more quickly
`example, the current file on one channel may be different
`example, the current file on one channel may be different
`than when it resides in its assigned Storage location. For
`than when it resides in its assigned storage location. For
`from the current file on another channel. A command Sent to
`from the current file on another channel. A command sent to
`example, a microprocessor chip may cache the instructions
`example, a microprocessor chip may cache the instructions
`the card on one channel must be completed before a com
`the card on one channel must be completed before a com-
`it executes in high-speed cache memory rather than retur