`
`
`
`
`
`
`
`
`
`Exhibit 16
`
`
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 2 of 11
`
`US008572597B2
`
`(12) United States Patent
`Here
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,572,597 B2
`Oct. 29, 2013
`
`(54)
`54). APPARATUS AND METHOD FOR
`PERFORMING ANOVER-THE-AIR
`SOFTWARE UPDATE IN ADUAL
`PROCESSORMOBILE STATION
`
`(75) Inventor: Sudhindra P. Herle, Plano, TX (US)
`(73) Assignee: Samsung Electronics Co., Ltd.,
`Suwon-Si (KR)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 2222 days.
`(21) Appl. No.: 10/600,223
`
`(*) Notice:
`
`(22) Filed:
`
`Jun. 20, 2003
`
`(65)
`
`Prior Publication Data
`
`Dec. 23, 2004
`
`US 2004/O261072 A1
`(51) Int. Cl.
`G06F 9/44
`(52) U.S. Cl.
`USPC ............ 717/168; 717/170; 717/172; 717/175
`(58) Field of Classification Search
`USPC ........................... 717/168–178; 455/418 420
`See application file for complete search history.
`
`(2006.01)
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`6,279,153 B1* 8/2001 Bi et al. ........................ 717/171
`6,640,334 B1 : 10/2003 Rasmussen ................... 717/171
`
`
`
`
`
`
`
`
`
`
`gA. R: ck 1858. R . . . . . . . . . . .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. 22.2
`7231,531 B2 * 6/2007 Cupps et al. .
`T13,322
`2003/0023964 A1* 1/2003 Rajaram et al. .
`717/172
`2003/0154471 A1
`8/2003 Teachman et al.
`717, 171
`38.88: t A. : 3.S. Neil 't
`22,f
`C. C. a. . .
`2004/0098715 A1* 5/2004 Aghera et al. ..
`717, 173
`2005/0120346 A1* 6/2005 Sprigg .....
`77/76
`2005/0204353 A1* 9, 2005. Ji .............
`T17,168
`2005/0215248 A1* 9, 2005 Brookshire ................ 455,426.1
`
`
`
`2006/0195840 A1* 8/2006 Sundarrajan et al. ......... 717/176
`2006/0258291 A1* 11/2006 Nakata et al. .....
`455/67.11
`2007/00 15499 A1
`1/2007 Vikse et al. ................... 455,419
`2007/0142083 A1* 6/2007 Cupps et al. .
`455,556.1
`2008.0020753 A1* 1/2008 Glass et al. ...
`455,425
`
`OTHER PUBLICATIONS
`Srikanteswara et al., Design and implementation of a completely
`reconfigurable soft radio, IEEE, Sep. 2000 pp. 7-11.*
`Forsberg et al., Distributing mobility agents hierarchically under
`frequent location updates, IEEE, Nov. 1999 pp. 159-168.*
`Mihaljevic et al., R al th R Aplysis:'St.s
`spent in software deline radio. IEEE, Oct 20 pp 8s.
`Lange, Danny B. “Mobile objects and mobile agents: the future of
`distributed computing?' ECOOP'98–Object-Oriented Program
`ming. Springer Berlin Heidelberg, 1998, pp. 1-12.*
`Lorenzo Bettini et al., Software update via mobile agent based pro
`gramming, Proceeding SAC '02 Proceedings of the 2002 ACM sym
`posium on Applied computing, pp. 32-36.
`Angin, Oguz, et al. “The Mobiware toolkit: Programmable support
`for adaptive mobile networking.” Personal Communications, IEEE
`5.4 (1998), pp. 32-43.*
`* cited by examiner
`
`Primary Examiner — Wei Zhen
`Assistant Examiner — Satish Rampuria
`(57)
`ABSTRACT
`A wireless communication device for accessing a wireless
`network and downloading a software upgrade file. The wire
`less communication device comprises: i) a CPU for control
`ling wireless communications with the wireless network; ii) a
`first memory associated with the first CPU: iii) a CPU for
`executing at least one end-user application on the wireless
`communication device; and iv) a second memory associated
`with the Second CPU. The first CPU downloads the software
`upgrade file from the wireless network and stores the down
`loaded Software upgrade file in the second memory for Sub
`sequent execution. The first CPU and the second CPU share
`resources in order to carry out software upgrades for either or
`both CPUs.
`
`24 Claims, 4 Drawing Sheets
`
`500
`y
`
`START
`
`505
`
`INITIALLY, MAINCPU255
`rums THE PROTOCOLSTACK
`
`50
`
`MAIN CU 2SS OWNLOAS SOFTWARE UPDATEFILE
`FRUPAE SERWERWAWIRELESS NetWORK 100
`
`515
`
`MANCP) 255molfESSAWE CU 205 recARING
`the SIZE AND TARGET OF THE SOFTWARE UPDATEL
`
`|
`
`:
`
`:
`:
`
`SLAWE CU20s NOTFES ANCPU2ss
`520 WHETHER SUFFICIENTMEMORY SAWA As
`to STOR THESWARJATEFIL
`
`525
`
`MAINCJ 255RANSFERS OWNLOAD
`SOFTWARE UPDATEFILEOSLAWE CPU 25
`For Stras NMEMRY OFSAw CU20s
`
`SLAWE CU 205 fuss McRARYBUFFERS
`530 - AND COMMITSDOWNLOADD SOFTWARE UPDATE
`ITO MEMORY OF SLAve CP205
`
`
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 1 of 4
`
`US 8,572,597 B2
`
`
`
`TO / FROM
`PSTN
`
`TO / FROM
`INTERNET
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 3 of 11
`
`FIG. 1
`
`
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 2 of 4
`
`US 8,572,597 B2
`
`
`
`2O5
`
`111
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 4 of 11
`
`FIG. 2
`
`
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 3 of 4
`
`US 8,572,597 B2
`
`
`
`265
`
`305
`
`OTADOWNLOAD PROGRAM
`
`31 O
`
`1
`315
`
`PC CONTROL PROGRAM
`
`DOWNLOADED UPGRADE
`FILE (e.g., DELTAFILE)
`
`
`
`
`
`32O
`
`UPGRADE AGENT PROGRAM
`
`FIG. 3
`
`
`
`410
`
`PC CONTROL PROGRAM
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 5 of 11
`
`215
`
`415
`
`DOWNLOADED UPGRADE
`FILE (e.g., DELTAFILE)
`
`42Oul UPGRADE AGENT PROGRAM
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Oct. 29, 2013
`
`Sheet 4 of 4
`
`US 8,572,597 B2
`
`-
`
`or
`
`re
`
`r
`
`s as H or w - - - see - - as - - arm m me a
`
`up upo
`
`as a
`
`us - a - - a
`
`505
`
`INITIALLY, MAIN CPU 255
`RUNS THE PROTOCOL STACK
`
`510 MAN CPU 255 DOWNLOADS SOFTWARE UPDATE FILE
`FROM UPDATE SERVER VIAWIRELESS NETWORK 100
`
`515
`
`MAN CPU 255 NOTFES SLAVE CPU 205 REGARDING
`THE SIZE AND TARGET OF THE SOFTWARE UPDATE FILE
`
`slave CPU 205 NOTIFES MAN CPU 255
`520 - WHETHER SUFFICIENT MEMORY ISAVAILABLE
`TO STORE THE SOFTWARE UPDATE FILE
`
`525
`
`MAN CPU 255 TRANSFERS DOWNLOADED
`SOFTWARE UPDATE FILE TO SLAVE CPU 205
`FOR STORAGE IN MEMORY OF SLAVE CPU 205
`
`
`
`SLAVE CPU 205 FLUSHES TEMPORARY BUFFERS
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 6 of 11
`
`
`
`US 8,572,597 B2
`
`1.
`APPARATUS AND METHOD FOR
`PERFORMING ANOVER-THE-AIR
`SOFTWARE UPDATE IN ADUAL
`PROCESSORMOBILE STATION
`
`TECHNICAL FIELD OF THE INVENTION
`
`The present invention is directed generally to wireless
`communication systems and, more specifically, to an appara
`tus and method for upgrading the Software in a dual processor
`wireless communication device.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`15
`
`25
`
`30
`
`35
`
`In order to increase the wireless market to the greatest
`extent possible, wireless service providers and wireless
`equipment manufacturers constantly seek new ways to make
`wireless equipment and services as convenient, user-friendly,
`and affordable as possible. To that end, wireless service pro
`viders and the manufacturers of wireless mobile stations,
`Such as cell phones, and fixed (or stationary) wireless termi
`nals, frequently work together to streamline procedures for
`enrolling and equipping new subscribers and for improving
`the services and equipment of existing Subscribers.
`One important aspect of these efforts involves over-the-air
`(OTA) provisioning and upgrading of wireless mobile sta
`tions, such as cellphones, wireless personal digital assistants
`(PDAs), wireless hand-held computers, two-way pagers, and
`the like, as well as fixed wireless terminals. OTA provisioning
`is a relatively new feature that enables a new subscriber who
`purchases a new cellphone (or otherwireless device) to set up
`a new account with a wireless service provider and to config
`ure the new cell phone for operation. The OTA provisioning
`procedure is mostly automated and often does not require the
`new subscriber to visit a cell phone service center. Typically,
`the new subscriber removes the new cell phone from its box,
`calls a special purpose telephone number (given in the
`instructions), and performs an interactive provisioning pro
`cedure with an automated agent or a human service represen
`tative.
`The over-the-air (OTA) upgrading of a wireless device also
`is a relatively new procedure that enables a subscriber to
`download and install upgraded Software containing patches,
`bug fixes, and newer versions of the Software, including the
`operating system, stored in the wireless device. The wireless
`service provider or the mobile station manufacturer, or both,
`may provide the upgraded Software.
`It has long been possible to download and to install soft
`ware upgrades for a personal computer (PC) via the Internet.
`However, this process is considerably more complicated in a
`mobile station. A personal computer has far more resources
`available to perform a software upgrade, including dynami
`cally linked libraries (DLLs), a memory management unit
`(MMU), and a large random access memory (RAM) space. A
`55
`conventional PC Software upgrade may be partitioned and
`downloaded to a personal computer as a group of shared
`objects.
`In contrast, a wireless mobile station (e.g., a cell phone)
`typically has far fewer resources available than a PC. Mobile
`stations lack a memory management unit and code is not
`executed from RAM. Code is executed out of a Flash memory
`(or other non-volatile (NV) memory) that acts as a read-only
`memory (ROM). The Flash memory generally cannot be writ
`ten to, it can only be re-programmed with great difficulty.
`These resource limitations greatly complicate OTA software
`upgrade operations in wireless mobile stations.
`
`40
`
`45
`
`50
`
`60
`
`65
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 7 of 11
`
`2
`Additionally, OTA software upgrade procedures became
`more complicated with the appearance in the cellular market
`of cell phones containing two central processing units. For
`example, Samsung R is delivering dual central processing
`unit (CPU) phones in Korea. In a dual CPU mobile station, a
`main (or primary) CPU executes the radio frequency (RF)
`communication functions and call processing operations of
`the mobile station. The main CPU also may be referred to as
`the modem CPU. A slave (or secondary) CPU executes user
`interface (UI) functions and end-user applications on the
`wireless mobile station. These user applications may include
`a word processing application, a calendar application, a video
`game, an e-mail application, and the like. The slave CPU may
`also be referred to as the multimedia CPU. In this manner, the
`Software that runs on a conventional wireless communication
`device is split into two parts in a dual CPU mobile station.
`Currently, there is no OTA upgrade procedure that addresses
`the upgrading problems that are peculiar to a dual CPU wire
`less communication device.
`Therefore, there is a need in the art for improved systems
`and methods for performing automatic Software upgrades of
`wireless mobile stations and fixed wireless terminals that
`incorporate a dual CPU architecture.
`
`SUMMARY OF THE INVENTION
`
`To address the above-discussed deficiencies of the prior art,
`it is a primary object of the present invention to provide a
`wireless communication device capable of accessing a wire
`less network and downloading a Software upgrade file there
`from. According to an advantageous embodiment of the
`present invention, the wireless communication device com
`prises: i) a first central processing unit (CPU) capable of
`controlling wireless communications with the wireless net
`work; ii) a first memory associated with the first CPU: iii) a
`second central processing unit (CPU) capable of executing at
`least one end-user application on the wireless communication
`device; and iv) a second memory associated with the second
`CPU, wherein the first CPU downloads the software upgrade
`file from the wireless network and stores the downloaded
`Software upgrade file in the second memory.
`According to one embodiment of the present invention, the
`first CPU is capable of executing a first upgrade agent pro
`gram that replaces first existing code associated with a first
`existing software file in the first memory with first replace
`ment code from the downloaded software upgrade file.
`According to another embodiment of the present invention,
`the first upgrade agent program is stored in the first memory.
`According to still another embodiment of the present
`invention, the downloaded Software upgrade file is trans
`ferred from the second memory to the first memory by an
`interprocessor communication unit.
`According to yet another embodiment of the present inven
`tion, the first CPU executes the first upgrade agent program
`after the downloaded software upgrade file is transferred into
`the first memory from the second memory.
`According to a further embodiment of the present inven
`tion, the first upgrade agent program is transferred from the
`second memory and stored in the first memory.
`According to a still further embodiment of the present
`invention, the second CPU is capable of executing a second
`upgrade agent program that replaces second existing code
`associated with a second existing Software file in the second
`memory with second replacement code from the downloaded
`Software upgrade file.
`
`
`
`US 8,572,597 B2
`
`10
`
`15
`
`25
`
`30
`
`3
`According to a yet further embodiment of the present
`invention, the second upgrade agent program is stored in the
`second memory.
`In one embodiment of the present invention, the second
`upgrade agent program is transferred from the first memory
`and stored in the second memory.
`Before undertaking the DETAILED DESCRIPTION OF
`THE INVENTION below, it may be advantageous to set forth
`definitions of certain words and phrases used throughout this
`patent document: the terms “include” and “comprise.” as well
`as derivatives thereof, mean inclusion without limitation; the
`term 'or' is inclusive, meaning and/or; the phrases “associ
`ated with and “associated therewith, as well as derivatives
`thereof, may mean to include, be included within, intercon
`nect with, contain, be contained within, connect to or with,
`couple to or with, be communicable with, cooperate with,
`interleave, juxtapose, be proximate to, be bound to or with,
`have, have a property of, or the like; and the term “controller
`means any device, system or part thereofthat controls at least
`one operation, Such a device may be implemented in hard
`ware, firmware or software, or some combination of at least
`two of the same. It should be noted that the functionality
`associated with any particular controller may be centralized
`or distributed, whether locally or remotely. Definitions for
`certain words and phrases are provided throughout this patent
`document, those of ordinary skill in the art should understand
`that in many, if not most instances, such definitions apply to
`prior, as well as future uses of such defined words and
`phrases.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`For a more complete understanding of the present inven
`tion and its advantages, reference is now made to the follow
`ing description taken in conjunction with the accompanying
`drawings, in which like reference numerals represent like
`parts:
`FIG. 1 illustrates an exemplary wireless network according
`to one embodiment of the present invention;
`FIG. 2 illustrates an exemplary dual CPU mobile station in
`greater detail according to one embodiment of the present
`invention;
`FIG. 3 illustrates selected files in the memory associated
`with the primary CPU of the exemplary dual CPU mobile
`station according to one embodiment of the present invention;
`FIG. 4 illustrates selected files in the memory associated
`with the secondary CPU of the exemplary dual CPU mobile
`station according to one embodiment of the present invention;
`and
`FIG. 5 is a flow diagram illustrating an over-the-air (OTA)
`Software update procedure in the exemplary mobile station
`according to one embodiment of the present invention.
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 8 of 11
`
`35
`
`40
`
`45
`
`50
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`FIGS. 1 through 5, discussed below, and the various
`embodiments used to describe the principles of the present
`invention in this patent document are by way of illustration
`only and should not be construed in any way to limit the scope
`of the invention. Those skilled in the art will understand that
`the principles of the present invention may be implemented in
`any Suitably arranged wireless communication device.
`FIG. 1 illustrates exemplary wireless network 100 accord
`ing to one embodiment of the present invention. Wireless
`network 100 comprises a plurality of cell sites 121-123, each
`containing one of the base stations, BS 101, BS 102, or BS
`103. Base stations 101-103 communicate with a plurality of
`
`55
`
`60
`
`65
`
`4
`mobile stations (MS) 111-114 over code division multiple
`access (CDMA) channels. Mobile stations 111-114 may be
`any suitable wireless devices, including conventional cellular
`radiotelephones, PCS handset devices, personal digital assis
`tants, portable computers, or metering devices.
`However, it should be understood that the present invention
`is not limited to mobile devices. Other types of access termi
`nals may be used, including fixed (i.e., stationary) wireless
`terminals. For the sake of simplicity, only mobile stations are
`shown and discussed hereafter. However, for the purposes of
`defining the scope of the claims of the present invention, the
`terms “mobile station,” “wireless communication device.”
`“wireless terminal.” and any other term used to denote a
`device that wirelessly communicates with a base station,
`should be construed broadly to include both mobile and sta
`tionary wireless access devices.
`Dotted lines show the approximate boundaries of the cell
`sites 121-123 in which base stations 101-103 are located. The
`cell sites are shown approximately circular for the purposes of
`illustration and explanation only. It should be clearly under
`stood that the cell sites may have other irregular shapes,
`depending on the cell configuration selected and natural and
`man-made obstructions.
`As is well known in the art, each one of cell sites 121-123
`comprises a plurality of sectors (not shown), each sector
`being illuminated by a directional antenna coupled to the base
`station. The embodiment of FIG. 1 illustrates the base station
`in the center of the cell. Alternate embodiments position the
`directional antennas in corners of the sectors. The present
`invention is not limited to any particular cell site configura
`tion.
`In one embodiment of the present invention, each one of
`BS 101, BS 102, and BS 103 comprises a base station con
`troller (BSC) and one or more base transceiver subsystem(s)
`(BTS). Base station controllers and base transceiver sub
`systems are well known to those skilled in the art. A base
`station controller is a device that manages wireless commu
`nications resources, including the base transceiver Sub
`systems, for specified cells within a wireless communications
`network. A base transceiver subsystem (BTS) comprises the
`RF transceivers, antennas, and other electrical equipment
`located in each cell site. This equipment may include air
`conditioning units, heating units, electrical power Supplies,
`telephone line interfaces, and RF transmitters and RF receiv
`ers. For the purpose of simplicity and clarity in explaining the
`operation of the present invention, the base transceiver Sub
`system(s) in each of cells 121, 122, and 123 and the base
`station controller (BSC) associated with each base transceiver
`subsystem (BTS) are collectively represented by BS 101, BS
`102 and BS 103, respectively.
`BS 101, BS 102 and BS 103 transfer voice and data signals
`between each other and the public switched telephone net
`work (PSTN) (not shown) via communication line 131 and
`mobile switching center MSC) 140. BS 101, BS 102 and BS
`103 also transfer data signals, such as packet data, with the
`Internet (not shown) via communication line 131 and packet
`data server node (PDSN) 150. Line 131 also provides the
`connection path to transfers control signals between MSC
`140 and BS 101, BS 102 and BS 103 used to establish con
`nections for voice and data circuits between MSC 140 and BS
`101, BS 102 and BS 103.
`Communication line 131 may be any suitable connection
`means, including a T1 line, a T3 line, a fiber optic link, a
`network packet data backbone connection, or any other type
`of data connection. Line 131 links each vocoder in the BSC
`with switch elements in MSC 140. Those skilled in the art will
`recognize that the connections on line 131 may provide a
`
`
`
`5
`transmission path for transmission of analog Voice band sig
`nals, a digital path for transmission of Voice signals in the
`pulse code modulated (PCM) format, a digital path for trans
`mission of voice signals in an Internet Protocol (IP) format, a
`digital path for transmission of Voice signals in an asynchro
`nous transfer mode (ATM) format, or other suitable connec
`tion transmission protocol. Those skilled in the art will rec
`ognize that the connections on line 131 may provide a
`transmission path for transmission of analog or digital control
`signals in a Suitable signaling protocol.
`MSC 140 is a switching device that provides services and
`coordination between the subscribers in a wireless network
`and external networks, such as the PSTN or Internet. MSC
`140 is well known to those skilled in the art. In some embodi
`ments of the present invention, communications line 131 may
`be several different data links where each data link couples
`one of BS 101, BS 102, or BS 103 to MSC 140.
`In the exemplary wireless network 100, MS 111 is located
`in cell site 121 and is in communication with BS 101. MS 113
`is located in cell site 122 and is in communication with BS
`102. MS 114 is located in cell site 123 and is in communica
`tion with BS 103. MS 112 is also located close to the edge of
`cell site 123 and is moving in the direction of cell site 123, as
`indicated by the direction arrow proximate MS 112. At some
`point, as MS 112 moves into cell site 123 and out of cell site
`121, a hand-off will occur.
`As is well known, the hand-off procedure transfers control
`of a call from a first cell site to a second cell site. As MS 112
`moves from cell 121 to cell 123, MS 112 detects the pilot
`signal from BS 103 and sends a Pilot Strength Measurement
`Message to BS 101. When the strength of the pilot transmitted
`by BS 103 and received and reported by MS 112 exceeds a
`threshold, BS 101 initiates a soft hand-off process by signal
`ing the target BS 103 that a handoff is required as described in
`TIA/EIA IS-95 or TIA/EIAIS-2000.
`35
`BS 103 and MS 112 proceed to negotiate establishment of
`a communications link in the CDMA channel. Following
`establishment of the communications link between BS 103
`and MS 112, MS 112 communicates with both BS 101 and BS
`103 in a soft handoff mode. Those acquainted with the art will
`recognize that Soft hand-off improves the performance on
`both forward (BS to MS) channel and reverse (MS to BS)
`channel links. When the signal from BS 101 falls below a
`predetermined signal strength threshold, MS 112 may then
`drop the link with BS 101 and only receive signals from BS
`103. The callis thereby seamlessly transferred from BS 101 to
`BS 103. The above-described soft hand-off assumes the
`mobile station is in a voice or data call. An idle hand-off is the
`hand-off between cells sites of a mobile station that is com
`municating in the control or paging channel.
`50
`Any or all of the mobile stations (including fixed wireless
`terminals) in wireless network 100 may be upgraded by
`means of an over-the-air (OTA) upgrade procedure that trans
`fers new software to the mobile stations from a remote
`upgrade server. The remote upgrade server may be accessed
`via PDSN 150 or MSC 140. In one embodiment of the present
`invention, the upgrade server may upgrade an existing soft
`ware file (or target file) in a mobile station by transmitting a
`new image file that replaces the target file in its entirety. In an
`alternate embodiment, the remote server may transmit a delta
`file that is used to replace only selected portions of the target
`software file, rather than the entire target file. The mobile
`station executes a software algorithm that reads instructions
`and data from the delta file. The software algorithm modifies,
`for example, the existing operating system Software to pro
`duce a new (or upgraded) version of the operating system
`Software. In this advantageous embodiment, the mobile sta
`
`30
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 9 of 11
`
`40
`
`45
`
`55
`
`60
`
`65
`
`US 8,572,597 B2
`
`10
`
`15
`
`25
`
`6
`tion downloads a small delta file over the air, rather than a
`large image file, thereby saving bandwidth.
`FIG. 2 illustrates exemplary dual central processing unit
`(CPU) mobile station 111 in greater detail according to one
`embodiment of the present invention. Mobile station 111
`comprises central processing unit (CPU) 205, user interface
`circuitry 210, non-volatile (NV) memory 215, and random
`access memory (RAM) 220. Mobile station 111 also com
`prises central processing unit (CPU) 255, radio frequency
`(RF) transceiver 260, antenna 261, read-only memory (ROM)
`265, and random access memory (RAM) 270. Interprocessor
`communication (IPC) unit 230, bus 235 and bus 240 provide
`communication between CPU 205 and CPU 255.
`In the exemplary embodiment, CPU 255 is the main (or
`modem) CPU that controls wireless communications via RF
`transceiver 260. ROM 265 and RAM 270 store programs and
`data used by main CPU 255. ROM 265 may be a Flash
`memory or a similar non-volatile memory. CPU 205 is the
`slave (or multimedia) CPU that executes end-user applica
`tions in mobile station 111. Non-volatile (NV) memory 215
`and RAM 220 store programs and data used by slave CPU
`205. NV memory 215 may be, for example, a Flash memory.
`IPC unit 230 may comprise any conventional circuit that is
`capable of transferring data between main CPU 255 and slave
`CPU 215, including, for example, a shared memory, a dual
`port RAM, a FIFO, a serial bus, and the like.
`FIG. 3 illustrates selected files in ROM 265 according to
`one embodiment of the present invention. Among other files,
`ROM 265 stores over-the-air (OTA) download program 305,
`IPC control program 310, downloaded upgrade file 315, and
`upgrade agent program 320. FIG. 4 illustrates selected files in
`NV memory 215 according to one embodiment of the present
`invention. Among other files, NV memory 215 stores IPC
`control program 410, downloaded upgrade file 415 and
`upgrade agent program 420.
`OTA download program 305 is the download control pro
`gram executed by main CPU 255 in order to retrieve a soft
`ware upgrade file from the remote server. Main CPU 255
`stores the upgrade file (delta file or entire image file) in
`downloaded upgrade file 315. Main CPU 255 executes IPC
`control program 310 in order to transfer the upgrade file to
`Slave CPU 205 via IPC unit 230. Slave CPU 205 Stores the
`upgrade file (delta file or entire image file) in downloaded
`upgrade file 415. Slave CPU 205 executes IPC control pro
`gram 410 in order to transfera saved upgrade file to main CPU
`255 via IPC unit 230.
`Slave CPU 205 hosts all applications (MMI, graphics, etc.)
`while main CPU 255 executes the bare protocol stack. Thus,
`slave CPU 205 normally will have larger memory resources
`(i.e., RAM 220, NV memory 215) than main CPU 255 (e.g.,
`ROM 265, RAM 270). For example, main CPU 255 may use
`2 Mb of RAM 270 and 4 Mb of NOR flash memory (ROM
`265) for code storage. However, slave CPU 205 may use
`16-32 Mb of SDRAM 270 and 32-64 Mb of NAND flash
`memory 215 (for code, data and file system). Therefore, the
`most advantageous method for performing OTA operation is
`for the downloaded software update file to be stored in NV
`memory 215 of slave CPU 205.
`The software code executed by main CPU 255 is distinct
`from the software code executed by slave CPU 205. Thus, an
`OTA operation for a dual CPU design may involve a software
`update for i) main CPU 255 only; ii) slave CPU 205 only; or
`iii) CPU215 and CPU 255. Slave CPU 205 executes upgrade
`agent program 320 in NV memory 215 in order to actually
`apply the software update file for slave CPU 205. Main CPU
`
`
`
`US 8,572,597 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`7
`255 executes upgrade agent program 420 in ROM 265 in
`order to actually apply the software update file for main CPU
`255.
`FIG.5 depicts flow diagram 500, which illustrates an over
`the-air (OTA) software update procedure in the exemplary
`mobile station according to one embodiment of the present
`invention. The OTA software update procedure consists of
`two distinct phases: a download phase and a patch application
`phase. The download phase retrieves and stores the software
`upgrade file. After the software upgrade file is stored in the
`correct memory, the patch application phase applies the Soft
`ware upgrade file.
`During routine operation, main CPU 255 runs the protocol
`stack of choice, such as CDMA, GSM, GPRS, EDGE or the
`like (process step 505). At some point, main CPU 255 con
`tacts the remote update server (not shown) and downloads the
`software update file for slave CPU 205 or main CPU 255. In
`either case, the download procedure is the same (process step
`510). As soon as the first packet from the upgrade server is
`received, main CPU 255 extracts the size of the software
`update from the message header. For example, if the down
`load protocol is HTTP, the size of the software update is
`available through the HTTP header Content-Length field.
`Main CPU 255 then sends the file size value to slave CPU 205
`Via IPC unit 230. Main CPU 255 also notifies Slave CPU 205
`whether the target for updating is slave CPU 205 software or
`main CPU 255 software) (process step 515).
`When slave CPU 205 receives the file-size message, slave
`CPU 205 verifies whether there is sufficient space in the file
`system in NV memory 215 and/or RAM 220 and sends an
`appropriate response back to main CPU 255 (process step
`520). Depending on the role of the software update, slave
`CPU 205 creates and reserves downloaded upgrade file 415 in
`the file system in NV memory 215 for storing the downloaded
`Software. If main CPU 255 receives an “Insufficient
`Memory” notification message from slave CPU 205, main
`CPU 255 may abort the OTA upgrade procedure or may
`prompt the user to delete unwanted files, thus making more
`memory available.
`If main CPU 255 receives a “Memory OK' notification
`message from slave CPU 205, main CPU 205 sends subse
`quent downloaded data from wireless network 100 directly to
`slave CPU 205 205 (via IPC unit 230) to be saved in the
`memory (file-system) of the slave CPU 205. Slave CPU 205
`saves further received packets in the file space of downloaded
`upgrade file 415 reserved for this purpose (process step 525).
`When all of the upgrade software is received, main CPU 255
`sends an “End” message to slave CPU 205. When slave CPU
`205 receives an End message via IPC unit 230, slave CPU 205
`flushes all temporary buffers and commits update software
`file to NV memory 215 (process step 530). Thus, the software
`update package for either main CPU 255 or slave CPU 205 is
`stored in NV memory 215 (i.e., file-system) of slave CPU
`2O5.
`During application of the Software patch, the upgrade agent
`program needs a small amount of NV memory for bookkeep
`ing purposes and fail-safe recovery. This additional NV
`memory may be in either main CPU 255 or in slave CPU 205.
`If such temporary NV memory comes from the other CPU,
`then an IPC message is used to read/write to Such temporary
`memory.
`In an alternate embodiment of the present invention, if
`main CPU 255 and slave CPU 205 execute the same instruc
`tion set (e.g., both are ARM CPUs or both are MIPS CPUs),
`then one instance of the Software update agent program can be
`used by both CPUs. Assuming that update agent program 320
`is stored in the NV memory (i.e., ROM 265) of the main
`
`Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 10 of 11
`
`50
`
`55
`
`60
`
`65
`
`8
`CPU), main CPU 255 executes update agent program 320 and
`first applies the patch on the code for main CPU 255. Next,
`CPU 255 transfers update agent program 320 via IPC unit 230
`to slave CPU 205. Slave CPU 205 then executes update agent
`program 320 and applies the software patch on the code for
`slave CPU 205. It is noted that the common update agent
`program could have been stored initially on slave CPU 205. In
`Such a case, the procedure would first apply the upgraded
`software on slave CPU 205, transfer update agent program
`420 to main CPU 255, and apply the upgraded software to
`main CPU 255.
`In still another alternative embodiment, if the address
`space (hardware bus) of one CPU is