`
`US 7,203,829 B2
`(10) Patent No.:
`az United States Patent
`Lim
`(45) Date of Patent:
`Apr. 10, 2007
`
`
`(54) APPARATUS AND METHOD FOR
`INITIALIZING COPROCESSOR FOR USE IN
`SYSTEM COMPRISED OF MAIN
`PROCESSOR AND COPROCESSOR
`
`(52) U.S. Ch ec cceetneeee 713/2; 713/1; 713/100;
`717/168
`(58) Field of Classification Search .......0..00000.... None
`See application file for complete search history.
`
`Inventor: Chae-Whan Lim, Daegu (KR)
`(75)
`(73) Assignee: Samsung Electronics Co., Ltd.,
`Suwon-si (KR)
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 326 days
`
`(21) Appl. No.: 10/864,459
`
`(22)
`
`Filed:
`
`Jun. 10, 2004
`
`(65)
`
`Prior Publication Data
`US 2004/0255111 Al
`Dee. 16, 2004
`
`Foreign Application Priority Data
`(30)
`Jun. 13, 2003
`(KR)
`cessssssseeesesene 10-2003-0038386
`
`(51)
`
`Int. Cl.
`GO6F 9/22
`GO6F 9/44
`GO6F 15/177
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`(56)
`
`References Cited
`US. RATEND DUOUMENTS
`6,253,233 Bl*
`6/2001 Hayashi ...........0... 711/147
`
`wee 712/31 6,330,658 BL* 12/2001 Evoy etal. ww...
`6,400,717 BL*
`6/2002 Von Ahnenet al.
`.......... 714/36
`......0..... 711/148
`6,604,189 BI*
`8/2003 Zemlyak et al.
`2002/0170051 Al* 11/2002 Watanabe etal. ........... 717/168
`* cited by examiner
`
`Primary Examiner—James K. Trujillo
`(74) Attorney, Agent, or Firm—Roylance, Abrams, Berdo &
`Goodman, L.L.P.
`
`ABSTRACT
`67)
`An apparatus and method for initializing a coprocessor for
`use in system comprised of a main processor and coproces-
`Sor. The apparatus can be provided with fewer required
`memory components, such as a NOR flash memory, by
`enabling a coprocessor to perform a booting function upon
`receiving a control signal from the main processor.
`
`20 Claims, 12 Drawing Sheets
`
`START
`
`
`
`POWER ON? 10
`
`YES
`
`REQUESTTINY FLASH FILE SYSTEM
`TRANSMISSION FROM MAIN PROCESSOR~357
`
`
`
`
`
`
`
`
`
`MOVE/STORE PROGRAM CODE STORED IN
`
`SECOND FLASH MEMORY OF COPROCESSOR
`
`USING TINY FLASH FILE SYSTEM IN INTERNAL RAM
`
`INTEL 1014
`
`INTEL 1014
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 1 of 12
`
`US 7,203,829 B2
`
`100
`
`200
`
`MAIN
`PROCESSOR
`
`COPROCESSOR
`
`FIRST FLASH
`MEMORY
`
`J~2!0
`
`FIRST FLASH |_|.)|_[SECOND FLASH] 990
`
`
`
`MEMORY
`MEMORY
`
`OTHER
`
`PERIPHERAL
`
`DEVICES
`
`[249
`
`SECOND FLASH
`
`paw 130
`
`)
`a
`()
`PERIPHERAL
`DEVICES
`
`1140
`
`FIG.1
`(PRIOR ART)
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 2 of 12
`
`US 7,203,829 B2
`
`100
`
`MAIN
`PROCESSOR §
`
`
`
`COPROCESSOR
`
`200
`
`
`
`
`FIRST FLASH
`MEMORY
`
`SECOND FLASH
`MEMORY
`
`
`
`; OTHER
`
`
`DEVICES
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 3 of 12
`
`US 7,203,829 B2
`
`Ode
`
`
`
`Hsv14GNOD3S
`
`AMOWSW
`
`ObIMWHat
`
`song
`
`©Old
`
`
`
`coefnoH~02—L-]coi~fvafroele01
`
`OveWes3¢0eb~HownsGNODSS
`
`
`wesanIANOWSIN
`SJonadAMON
`
`
`00¢001
`
`Oe!Wy
`
`WSHLO
`
`
`
`HSV1JLSuls
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 4 of 12
`
`US 7,203,829 B2
`
`START
`
`POWER ON? 0
`
`YES
`
`INITIALIZE COPROCESSOR USING
`BOOT PROGRAM OF INTERNAL ROM
`
`F~S!S
`
`MOVE/STORE PROGRAM CODE STOREDJ
`IN SECOND FLASH MEMORY OF
`COPROCESSOR USING TINY FLASH FILE
`SYSTEM OF INTERNAL ROM IN INTERNAL RAM
`
`
`
`A Y
`
`ES
`
`COMMAND COPROCESSOR'S PC TO JUMP TO
`ENTRANCE POINT OF LOADED CODE AREA
`
`J~8!9
`
`OPERATE COPROCESSOR
`
`321
`
`FIG.4
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 5 of 12
`
`US 7,203,829 B2
`
`START
`
`POWER ON? 80
`
`YE
`
`S
`
`INITIALIZE COPROCESSOR USING
`BOOT PROGRAM OF INTERNAL ROM
`
`3
`
`53
`
`COMMUNICATE WITH MAIN PROCESSOR
`USING LOADER PROGRAM OF INTERNAL ROM
`
`3
`
`99
`
`REQUEST TINY FLASH FILE SYSTEM
`TRANSMISSION FROM MAIN PROCESSORI~
`
`397
`
`TINY FLASH FILE SYSTEM
`RECEIVED?
`
`Y
`
`ES
`
`STORE RECEIVED TINY FLASH
`FILE SYSTEM IN INTERNAL RAM
`
`BI
`
`3
`
`
`
`
`—<—Fiste7
`
`MOVE/STORE PROGRAM CODE STOREDIN
`SECOND FLASH MEMORY OF COPROCESSOR
`USING TINY FLASH FILE SYSTEM IN INTERNAL RAM
`
`YES
`
`COMMAND COPROCESSOR'S PC TO JUMP TO §
`ENTRANCE POINT OF LOADED CODE AREA
`-367
`
`OPERATE COPROCESSOR
`
`L369
`
`FIG.o
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 6 of 12
`
`US 7,203,829 B2
`
`0c¢
`
`
`
`HSW14ONOD3S
`
`AMON
`
`0&2
`
`Wd
`
`OllAYOWSW
`
`HSV1dLSuls
`
`Ove
`
`YSIHLO
`
`Wu3Hdluad
`
`SIOIASI
`
`Oc
`
`
`
`HSv14GNOO3S
`
`AMOWSIN
`
`00¢001
`
`
`
`OC!INVH
`
`a!Wu3Hdld3d
`
`SAOIAIO
`
`YIHLO
`
`9DI
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 7 of 12
`
`US 7,203,829 B2
`
`START
`
`YES
`
`INITIALIZE COPROCESSOR USING
`BOOT PROGRAM OF INTERNAL ROM
`
`413
`
`MOVE/STORE PROGRAM CODE STORED IN SECOND
`FLASH MEMORY OF COPROCESSORUSING TINY FLASH
`FILE SYSTEM OF INTERNAL ROM IN EXTERNAL RAM
`
`
`
`
`
`YES
`
`COMMAND COPROCESSOR'S PC TO JUMP TO
`ENTRANCE POINT OF LOADED CODE AREAff~4!9
`
`OPERATE COPROCESSOR
`
`L404
`
`FIG.7
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 8 of 12
`
`US 7,203,829 B2
`
`START
`
`POWER ON? an
`
`YES
`
`INITIALIZE COPROCESSOR USING
`BOOT PROGRAM OF INTERNAL ROM
`
`[7-493
`
`COMMUNICATE WITH MAIN PROCESSOR USING
`LOADER PROGRAM OF INTERNAL ROM
`
`[-~499
`
`REQUEST TINY FLASH FILE SYSTEM
`TRANSMISSION FROM MAIN PROCESSOR]~497
`
`TINY FLASH FILE SYSTEM
`RECEIVED?
`
`YES
`
`STORE RECEIVED TINY
`FLASH FILE SYSTEM IN EXTERNAL RAM
`
`[~46!
`
`MOVE/STORE PROGRAM CODE STOREDIN SECOND
`FLASH MEMORY OF COPROCESSOR USING
`TINY FLASH FILE SYSTEM IN EXTERNAL RAM
`
`
`
`
`
`COMMAND COPROCESSOR'S PC TO JUMP TO }
`ENTRANCE POINT OF LOADED CODE AREA
`
`467
`
`OPERATE COPROCESSOR
`
`t
`
`agg
`
`FIG.8
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 9 of 12
`
`US 7,203,829 B2
`
`OE?
`
`WY
`
`OLlAYOWSM
`
`HSV13LSuls
`
`Ove
`
`YSHLO
`
`WHSHdld¥3d
`
`S3OIASG~
`
`Oz!ASOWSW
`
`HSV14QNOOIS
`
`Odd
`
`
`
`~ANOW3I-
`
`
`
`HSV14GNOO3S
`
`coi~tnvdWoe
`
`00¢
`
`001
`
`OblWY
`
`
`
`OVI‘Wu3Hdldsd
`
`SSOIAIC
`
`YIHLO
`
`6DIA
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 10 of 12
`
`US 7,203,829 B2
`
`ee
`
`YES
`
`COPROCESSOR'S STANDBY MODE &
`COPROCESSOR'S INTERNAL RAM INITIALIZED
`BY MAIN PROCESSOR'S INTERNAL RAM
`
`13
`
`
`
`
`RECEIVE BOOTAND TINY FLASH FILE
`
`
`SYSTEM CODE FILES OF MAIN PROCESSOR'S
`
`INTERNAL ROM, & MOVE/STORE RECEIVED
`
`CODE FILES IN COPROCESSOR'S INTERNAL RAM
`
`<—eser?
`
`YES
`
`COMMAND COPROCESSOR TO JUMP
`TO ENTRANCE POINT OF BOOT AND
`TINY FLASH FILE SYSTEM CODE AREA
`
`519
`
`INITIALIZE COPROCESSOR
`
`521
`
`
`
`LOAD PROGRAM CODE STOREDIN SECOND
`FLASH MEMORY OF COPROCESSORIN
`
`
`INTERNAL RAM USING TINY FLASH FILE SYSTEM
`
`<—Fiisteo7
`
`YES
`
`COMMAND COPROCESSOR'S PC TO JUMP TO
`ENTRANCE POINT OF LOADED CODE AREA
`
`OPERATE COPROCESSOR
`
`927
`
`599
`
`"
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 11 of 12
`
`US 7,203,829 B2
`
`O&¢
`
`Wu
`
`ol~y ABONSIN
`
`HSv14LSuld
`
`Ove
`
`Y3IH1LO
`
`TWHSHdl¥3d
`
`SIOIASG
`
`~
`
`0Z|AYOWSW
`
`HSV14GNOOSS
`
`Occ
`
`
`
`HSV14GNOD3S
`
`“AMOWSN
`
`coi~ve)noe
`
`00c001
`
`OF!VY
`
`
`
`SIOIAIOOr‘WusdHdldad
`
`YAHLO
`
`LTDId
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 10, 2007
`
`Sheet 12 of 12
`
`US 7,203,829 B2
`
`START
`
`POWER ON? 0
`
`YES
`
`COPROCESSOR'S STANDBY MODE&
`COPROCESSOR'S EXTERNAL RAM INITIALIZED
`BY MAIN PROCESSOR'S INTERNAL RAM
`
`
`RECEIVE BOOT AND TINY FLASH FILE
`SYSTEM CODE FILES OF MAIN PROCESSOR'S
`INTERNAL ROM, & MOVE/STORE RECEIVED
`CODE FILES IN COPROCESSOR'S EXTERNAL RAM
`
`
`
`<<eser?
`
`YES
`
`COMMAND COPROCESSOR TO JUMP
`TO ENTRANCE POINT OF BOOT AND
`TINY FLASH FILE SYSTEM CODE AREA
`
`f.619
`
`INITIALIZE COPROCESSOR
`
`621
`
`LOAD PROGRAM CODE STORED IN SECOND
`FLASH MEMORY OF COPROCESSOR IN
`EXTERNAL RAM USING TINY FLASH FILE SYSTEM
`
`
`
`
`
`
`YES
`
`COMMAND COPROCESSOR'S PC TO JUMP TO
`ENTRANCE POINT OF LOADED CODE AREA
`
`OPERATE COPROCESSOR
`
`627
`
`629
`
`FIG, 1 2
`
`
`
`US 7,203,829 B2
`
`1
`APPARATUS AND METHOD FOR
`INITIALIZING COPROCESSOR FOR USE IN
`SYSTEM COMPRISED OF MAIN
`PROCESSOR AND COPROCESSOR
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application claims the benefit under 35 U.S.C. §
`119(a) of Korean Patent Application No. 2003-38386
`entitled “APPARATUS AND METHODFORINITIALIZ-
`ING COPROCESSOR FOR USE IN SYSTEM COM-
`PRISED OF MAIN PROCESSOR AND COPROCES-
`
`SOR”, filed in the Korean Intellectual Property Office on
`Jun. 13, 2003, the entire contents of which are incorporated
`herein by reference.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to an apparatus and method
`for booting a controller. More particularly,
`the present
`invention relates to an apparatus and method for booting a
`coprocessor for use in a system comprised of a main
`processor and a coprocessor.
`2. Description of the Related Art
`Typically, in a system comprised of a main processor and
`a coprocessor, the main processor controls overall opera-
`tions of the system, and the coprocessor controls a specific
`function upon receiving a control signal from the main
`processor. The aforementioned system has been widely used
`in mobile terminals having current hybrid functions. For
`example,
`in the case of a mobile terminal provided for
`processing current video signals, a main processor controls
`overall operations of a communication or mobile terminal,
`and a coprocessor performs the processing of video signals
`upon receiving a control signal from the main processor. The
`aforementioned mobile terminal can be provided with any
`number of devices, such as a mobile terminal for a cam-
`corder, a PDA (Personal Digital Assistant), a VOD (Video
`On Demand) phone, and similar devices.
`A representative example of the aforementioned system,
`including the main processor and the coprocessor, is shown
`in FIG. 1. The following detailed description will hereinafter
`be described with reference to FIG. 1 in which, the example
`of the aforementioned system is provided as a mobile
`terminal.
`
`the main processor 100 controls
`Referring to FIG. 1,
`communication and overall operations of the mobile termi-
`nal. A first flash memory 110 is comprised of a NOR flash
`memory for storing boot and loader programs and main
`operation programs of the main processor 100. A second
`flash memory 120 is comprised of a NAND flash memory
`for storing large amounts of nonvolatile data, for example,
`content data, font data, bitmap data, phonebook data, and
`similar data.
`
`The second flash memory 120 has a limited number of
`correction times associated with the same area, such that
`encounters with an unexpected error in a specified area
`results in an outcome wherein data cannot be recorded or
`
`stored any further in the second flash memory 120. There-
`fore, a flash file system is adapted to access data ofthe flash
`memory (ie., 110 and 120). RAM (Random Access
`Memory) 130 can be adapted to function as a work memory
`for use in the main processor 100. Other peripheral devices
`140 are comprised of devices operated by a control signal
`generated from the main processor 100. In this case, the
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`2
`peripheral devices 140 can be keypads, displays, RF (Radio
`Frequency) units, communication units, and similar devices.
`Uponreceiving a control signal from the main processor
`100, the coprocessor 200 assumes direction of a specific
`function, and processes the specific function. An additional
`first flash memory 210 is comprised of a NOR flash memory
`for storing boot and loader programs and main operation
`programsof the coprocessor 200. An additional second flash
`memory 220 is comprised of a NAND flash memory for
`storing large amounts of nonvolatile data, for example,
`content data associated with functions of the coprocessor
`200. RAM 230 can be adapted as a work memory of the
`coprocessor 200. Other peripheral devices 240 are com-
`prised of devices operated by a control signal generated
`from the coprocessor 200. In this case, 1f the mobile terminal
`is a camcorder, the peripheral devices 240 can be devices
`such as multimedia codecs, cameras, displays (e.g., LCDs),
`and similar devices. Content data stored in the second flash
`memory 220 can then include video-processed and similar
`data. If the mobile terminal is a PDA terminal, substantially
`all the applications, other than a communication function,
`can be provided by the peripheral devices 240.
`The first flash memories 110 and 210 each can be pro-
`vided as a NOR flash memory. The second flash memories
`120 and 220 can be provided as a NAND flash memory.
`As stated above, the main processor 100 and the copro-
`cessor 200 each include a memory unit comprised of NOR
`and NAND flash memories and RAMs. Therefore, the main
`processor 100 and the coprocessor 200 must each include
`the aforementioned memories, resulting in increased hard-
`ware installation space and increased production cost.
`Therefore,
`it is preferable for either one of the NOR and
`NANDflash memories to be removed.
`
`The NOR flash memory is very expensive, and where it
`is configured in the form of a stable configuration,
`it can
`store boot and loader programs andflash file systems. The
`NANDflash memory has advantagesin that it is relatively
`cheaper than the NOR flash memory, and has excellent
`capacity whichis higher than that of the NOR flash memory.
`However, the NAND flash memory hasa relatively-high
`probability of creating bad sectors in the memory, in which
`the memory stores content data for use in a corresponding
`device. Therefore, when storing the boot and loader pro-
`gramsandflash filter systems in the NAND flash memory,
`it is impossible to perform operations of an overall system
`if unexpected bad sectors occur in a specific area for storing
`the programs.
`Accordingly, a need exists for an improved system for
`stably accessing the boot and loader programsandthe flash
`file systems in devices wherein the costly NOR flash
`memory is removed.
`
`SUMMARY OF THE INVENTION
`
`Therefore, the embodiments of the present invention have
`been madein view ofthe above problems, andit is an object
`of the present invention to provide an apparatus and method
`for removing a relatively high-priced NOR flash memory
`from a coprocessor,
`in a system comprised of a main
`processor and the coprocessor, and enabling the coprocessor
`to perform a booting function upon receiving a control
`signal from the main processor.
`It is another object of the present invention to provide an
`apparatus and method for enabling a coprocessor having no
`NOR flash memory to perform a booting function using
`boot/loader programs stored in an internal ROM anda tiny
`
`
`
`US 7,203,829 B2
`
`3
`4
`stood from the following detailed description taken in con-
`flash file system, in a system comprised of a main processor
`junction with the accompanying drawings, in which:
`and the coprocessor including a ROM and a RAM.
`FIG. 1 is a block diagram illustrating a conventional
`It is yet another object of the present invention to provide
`system comprised of a main processor and a coprocessor;
`an apparatus and method for enabling a coprocessor having
`FIG.2 is a block diagram illustrating a system comprised
`no NORflash memory to perform a booting function using
`of a main processor and a coprocessor in accordance with an
`boot/loader programs stored in an internal ROM anda tiny
`embodimentof the present invention;
`flash file system stored ina NOR or NANDflash memory of
`FIG.3 is a block diagram illustrating a system comprised
`a main processor,
`in a system comprised of the main
`of a main processor and a coprocessor in accordance with a
`processor and the coprocessor including a ROM anda RAM.
`first exemplary embodiment of the present invention;
`It is yet another object of the present invention to provide
`FIG.4 is a flow chart illustrating a booting procedure for
`an apparatus and method for enabling a coprocessor having
`use in a coprocessor when an internal ROM of the copro-
`no NORflash memory to perform a booting function using
`cessor of FIG. 3 includes a boot program andatinyflash file
`boot/loader programs stored in an internal ROM anda tiny
`system in accordance with the first embodiment of the
`flash file system in a system comprised of a main processor
`present invention;
`and the coprocessor including only ROM.
`FIG. 5 is a flow chart illustrating a booting procedure for
`It is yet another object of the present invention to provide
`use in a coprocessor when an internal ROM of the copro-
`an apparatus and method for enabling a coprocessor having
`cessor includes boot and loader programs and the other
`no NORflash memory to perform a booting function using
`internal ROM of the main processorincludesa tiny flash file
`boot/loader programs stored in an internal ROM anda tiny
`system in accordance with the first embodiment of the
`flash file system stored ina NOR or NANDflash memory of
`present invention;
`a main processor,
`in a system comprised of the main
`FIG.6 is a block diagram illustrating a system comprised
`processor and the coprocessor including only ROM.
`of a main processor and a coprocessor in accordance with a
`It is yet another object of the present invention to provide
`second exemplary embodiment of the present invention;
`an apparatus and method for enabling a coprocessor having
`FIG.7 is a flow chart illustrating a booting procedure for
`no NORflash memory to perform a booting function using
`use in a coprocessor when an internal ROM of the copro-
`boot/loader programsanda tiny flash file system thatareall
`cessor of FIG. 6 includes a boot program andatinyflash file
`stored in a NOR or NAND flash memory of a main proces-
`system in accordance with the second embodiment of the
`sor, in a system comprised of the main processor and the
`present invention;
`coprocessor and having no internal ROM.
`FIG. 8 is a flow chart illustrating a booting procedure for
`It is yet another object of the present invention to provide
`use in a coprocessor when an internal ROM of the copro-
`an apparatus and method for enabling a coprocessor having
`cessor includes boot and loader programs and the other
`no NORflash memory to perform a booting function using
`internal ROM of the main processorincludesa tinyflash file
`boot/loader programsanda tinyflash file system,thatare all
`system in accordance with the second embodiment of the
`stored in a NOR or NANDflash memory of a main proces-
`present invention;
`sor, in a system comprised of the main processor and the
`FIG. 9 is a block diagram illustrating a system comprised
`coprocessor and having no internal ROM and RAM.
`of a main processor and a coprocessor in accordance with a
`In accordance with the embodimentsof the present inven-
`third exemplary embodiment of the present invention;
`tion, the above and other objects can be accomplished by
`FIG. 10 is a flow chart illustrating a booting procedure for
`providing an apparatus including a main device and an
`use in a coprocessor when an internal ROM of the main
`auxiliary device, comprising in part, the following compo-
`processor of FIG. 9 includes a boot program and a tiny flash
`nents.
`file system in accordance with the third embodimentof the
`present invention;
`FIG.11 is a block diagram illustrating a system comprised
`of a main processor and a coprocessor in accordance with a
`fourth exemplary embodiment of the present invention; and
`FIG. 12 is a flow chart illustrating a booting procedure for
`use in a coprocessor when an internal ROM of the main
`processor of FIG. 11 includes a boot program anda tiny flash
`file system in accordance with the third embodimentof the
`present invention.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`The main device can include a main processor, including
`a ROM (Read Only Memory) and a RAM (Random Access
`Memory), for controlling overall operations of the main
`device, a first flash memory for storing principal programs
`of the main device, a second flash memory for storing
`content data of the main device, and a RAM acting as a work
`memory of the main device.
`The auxiliary device can include a second flash memory
`for storing principal programs and content data of the
`auxiliary device, an external RAM acting as a work memory
`of the auxiliary device, and a coprocessor for including a
`ROM and a RAM whichstore boot, loader, andtiny flashfile
`system code files. The coprocessor is further provided for
`booting the auxiliary device using a boot program stored in
`the internal ROM whenitis initially powered on by the main
`processor. The coprocessor is still further provided for
`controlling a loader program to load principal programs
`stored in the second flash memory byoperating the tiny flash
`file system, and for controlling the operations of the auxil-
`iary device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The above and other objects, features and other advan-
`tages of the present invention will be more clearly under-
`
`DETAILED DESCRIPTION OF THE
`EXEMPLARY EMBODIMENTS
`
`55
`
`60
`
`65
`
`invention will be
`The embodiments of the present
`described in detail with reference to the annexed drawings.
`In the drawings, the sameor similar elements are denoted by
`the same reference numerals even though they are depicted
`in different drawings. In the following description, a detailed
`description of known functions and configurations incorpo-
`rated herein will be omitted when it may make the subject
`matter of the present invention unclear.
`it should be
`Prior to describing the present invention,
`noted that the following terms will hereinafter be used in the
`detailed description of the embodiments of the present
`invention.
`
`
`
`US 7,203,829 B2
`
`5
`The coprocessor is comprised of a processor for operating
`application programs or specific functions requiring a high
`speed, for example, a GUI (Graphic User Interface), a
`multimedia codec, and similar devices.
`The main processor is comprised of a processor for
`controlling overall operations of a system. For example, in
`the case of a mobile terminal, an MSM chip may be adapted
`as the main processor.
`The boot module is comprised of a software module for
`initializing operations of a controller to enter a main soft-
`ware routine.
`The loader module is comprised of a software module for
`initializing a numberof necessary modules after performing
`a booting function, and moving the remaining main software
`code parts to a specific memory area capable of operating a
`controller.
`
`The boot-loader module is comprised of a software mod-
`ule wherein the boot module and the loader module are
`integrated in one module.
`The flash file system is comprised of a software module
`for writing data on a NAND flash memory orreading data
`from the NAND flash memory without generating errors.
`The tiny flash file system is comprised of a minimum
`software module for reading data from the NAND flash
`memory without generating errors.
`It should be noted that
`the aforementioned flash file
`
`
`
`system and the tiny flash file system can be separately
`adapted to the present invention. Specifically, the tiny flash
`file system is comprised of a flash file system having a
`minimum data read function that is capable of guaranteeing
`integrity of data stored in the NAND flash memory. The
`flash file system is comprisedofa file system for overcom-
`ing a variety of problems,
`for example, a problem of
`generating bad sectors of the NAND flash memory, and an
`aging problem generated when a specific position is repeat-
`edly used such that further corrections (i.e., higher than a
`predetermined number of correction times) are made
`unavailable. In doingso, the flash file system can be used for
`stably writing or reading data on/from a memory. The tiny
`flash file system can be used where a memory is an equiva-
`lent to a NANDflash memory. A detailed description of the
`NORflash memory is described in greater detail below.
`The first flash memory is comprised of a NOR flash
`memory.
`The second flash memory is comprised of a NAND flash
`memory.
`The embodiments of the present invention removea flash
`memory for storing initialization information of a coproces-
`from a system, the system including a main processor
`and the coprocessor, and stores initialization information of
`the coprocessor in either another memory of the coproces-
`sor, or a memory of the main processor, such that the system
`initialization is established. The memory can beeither one of
`a ROM, a RAM,
`first and second flash memories, and
`similar devices. The initialization information can be either
`one of a boot program module, a loader program, a boot
`loader program, and a tiny flash file system of the copro-
`cessor.
`
`
`
`In the implementation of the aforementioned configura-
`tions, a main device for use in the embodiments of the
`present invention can include a main processorfor operating
`overall operations of the main device, a first flash memory
`for storing the principal programsof the main processor, and
`a second flash memory for storing content data of the main
`processor. An auxiliary device for use in the embodiments of
`the present invention can include a coprocessor for control-
`ling overall operations of the auxiliary device, and a second
`
`20
`
`25
`
`35
`
`40
`
`45
`
`6
`flash memory for storing the principal programs and content
`data of the auxiliary device. Initialization information of the
`auxiliary device, for example, a boot program, a loader
`program, a boot-loader program, andtiny flash file systems,
`can be stored in an internal ROM of the coprocessor, an
`internal ROM of the main processor, thefirst flash memory
`or the second flash memory. A detailed description of the
`aforementioned initialization information is described in
`greater detail below with reference to the following pre-
`ferred embodiments.
`for
`initialization information,
`The
`aforementioned
`example, a boot program, a loader program, a boot-loader
`program, anda tiny flash file system, can be stored in the
`coprocessor’s ROM, the main processor’s ROM and/or the
`main processor’s flash memory. The flash memory of the
`main processor can be comprised of NOR and NANDflash
`memories. The boot program, the loader program, the boot-
`loader program,andthetinyflash file systems are comprised
`of programs operated in the coprocessor.
`In accordance with the system initialization operations for
`use in the system, which is comprised of the main device and
`the auxiliary device, a system booting operation can be
`performed by a boot program stored in the main processor’s
`memory or the coprocessor’s internal ROM,and the prin-
`cipal programs stored in the second flash memory of the
`coprocessorare loadedbythetiny flash file system, such that
`operations of the auxiliary device can be performed.
`FIG. 2 is a block diagram illustrating a system comprised
`of a main processor and a coprocessor in accordance with an
`embodimentof the present invention. Specifically, FIG. 2 is
`a block diagram of a system for removing a first flash
`memory from the coprocessor 200.
`Referring to FIG. 2, the remaining block diagram con-
`figurations, from which the first flash memory is removed
`from the coprocessor 200, are equal to those of PIG. 1. In
`this case,
`the first flash memory 110,
`the second flash
`memory 120, external RAM 130, and other peripheral
`devices 140 are driven by a control signal received from the
`main processor 100. Thefirst flash memory 110 is comprised
`of a memory for storing a boot module, a loader module, a
`flash file system, and other execution program modules of
`the main processor 100. The second flash memory 120 is
`comprised of a memory for storing nonvolatile data gener-
`ated by a control signal of the main processor 100, for
`example, content data, font data, bit data, phonebook data,
`and similar data. The main processor 100 performs its
`initialization operation using individual software modules
`stored in the first flash memory 110 when it
`is initially
`powered on, and provides the coprocessor 200 with a
`power-supply voltage such that it is able to initialize the
`coprocessor 200.
`In this case, the first flash memory is removed from the
`coprocessor 200. This first flash memory removed from the
`coprocessor 200 is comprised of a memory for storing a boot
`module, a loader module, a flash file system, and other
`coprocessors” program modules. Therefore, the embodiment
`of the present invention shownin FIG.2 distributes the boot
`module,
`the loader module, and a tiny flash file system
`needed to read the data of the NAND flash memory from
`amongthe flashfile system, and stores the above distributed
`parts in another memory. Further, upon receiving a control
`signal from the main processor 100, the embodimentof the
`present invention initializes the coprocessor 200, and loads/
`operates the remaining program modules, including a flash
`file system, using a tiny flash file system.
`In accordance with a first exemplary embodiment of the
`present invention which is capable of removingthefirst flash
`
`
`
`US 7,203,829 B2
`
`7
`memory from the coprocessor 200, the coprocessor 200 can
`perform its booting operation underthe following two cases,
`ie., a first case in which the coprocessor 200 includes
`internal ROM and RAM and the internal ROM includes a
`
`8
`Referring to FIG.4, if the coprocessor 200 is powered on
`when the main processor 100 is initialized,
`it detects the
`powered-on state at step 311, and gains access to the boot
`module stored in the internal ROM 203 such that
`the
`
`boot module, a loader module, anda tiny flash file system,
`and a second case in which the internal ROM includes only
`boot and loader modules anda tiny flash file system of the
`coprocessor 200 is included in either the first flash memory
`110 or the second flash memory 120.
`In accordance with a second exemplary embodiment of
`the present invention, the coprocessor 200 can perform its
`booting operation under the following twocases, i.e., a first
`case in which the coprocessor 200 includes an internal ROM
`and the internal ROM includes a boot module, a loader
`module, and a tiny flash file system, and a second case in
`which the internal ROM includes only boot and loader
`modules and a tiny flash file system of the coprocessor 200
`is includedin either the first flash memory 110 or the second
`flash memory 120.
`In accordancewith the first exemplary embodimentofthe
`present invention, a RAM is includedin the coprocessor, and
`a tiny flash file system is stored in the internal RAM of the
`coprocessor.
`In accordance with the second exemplary
`embodimentofthe present invention, a RAM is not included
`in the coprocessor, but is stored in an external RAM ofthe
`coprocessor.
`Tn accordance with a third exemplary embodimentof the
`present
`invention,
`the coprocessor 200 can perform its
`booting operation in the case where it includes only a RAM,
`and wherein eitherthe first flash memory 110 or the second
`flash memory 120 of the main processor 100 includes a boot
`module, a loader module, and a tiny flash file system of the
`coprocessor 200.
`Tn accordance with a fourth exemplary embodimentof the
`present
`invention,
`the coprocessor 200 can perform its
`booting operation in the case where it does not include a
`RAMand a ROM,and wherein eitherthefirst flash memory
`110 or the second flash memory 120 of the main processor
`100 includes a boot module, a loader module, and a tiny
`flash file system of the coprocessor 200.
`FIG. 3 is a block diagram illustrating an overall system
`associated with the aforementioned case in which the ROM
`
`203 and the RAM 205 are included in the coprocessor 200
`in a system comprised of the main processor 100 and the
`coprocessor 200.
`Referring to FIG. 3, the coprocessor 200 includes the
`ROM 203 and the RAM 205. The internal ROM 203 stores
`a boot module, a loader module, anda tinyflash file system
`of the coprocessor 200, as denoted by ‘boot+loader+tiny
`flash file system’. Also, the boot module and the loader
`module are stored in the internal ROM 203, as denoted by
`“boot+loader’. The tiny flash file system of the coprocessor
`200 is stored in either the first flash memory 110 or the
`second flash memory 120 of the main processor 100.
`FIG. 4 is a flow chart illustrating an initialization proce-
`dure of the coprocessor 200 in the case where the ROM 203
`and the RAM 205 are includedin the coprocessor 200, and
`the internal ROM 203 stores a boot module, a loader
`module, and a tiny flashfile system of the coprocessor 200.
`FIG.5 is a flow chart illustrating an initialization procedure
`of the coprocessor 200 in the case where the ROM 203 and
`the RAM 205 are included in the coprocessor 200,
`the
`internal ROM 203 stores the boot and loader modules, and
`the tiny flash file system of the coprocessor 200 is stored in
`eitherthefirst flash memory 110 or the second flash memory
`120.
`
`25
`
`40
`
`45
`
`coprocessor 200 is initialized at step 313. A loader module
`of the coprocessor 200, which is provided for storing the
`loader module in the second flash memory 220, reads a
`program code of the coprocessor 200 using a tiny flash file
`system of the internal ROM 203, and the read program data
`is stored in the internal RAM 205 at step 315.
`The aforementioned operations are repeated until a code
`that is capable of performing basic operationsis stored in the
`internal RAM 205. After completing the aforementioned
`operations,
`the coprocessor 200 detects this operation
`completion state at step 317, and a program counter (PC) of
`the coprocessor 200 jumps to an entrance point of a loaded
`code area at step 319. The coprocessor 200 then performs
`main operations at step 321.
`Referring to FIG. 5, if the coprocessor 200 is powered on
`when the main processor 100 is initialized, the coprocessor
`200 detects the powered-on state at step 351, and gains
`access to the boot module stored in the internal ROM 203
`such that the coprocessor 200 1s initialized at step 353. The
`internal ROM 205 accesses the loader module, a