throbber
Case 1:20-cv-00034-ADA Document 44-17 Filed 03/20/20 Page 1 of 11
`
`
`
`
`
`
`
`
`
`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

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