US20090094414A1 - Firmware Update for Storage Device - Google Patents
Firmware Update for Storage Device Download PDFInfo
- Publication number
- US20090094414A1 US20090094414A1 US12/333,320 US33332008A US2009094414A1 US 20090094414 A1 US20090094414 A1 US 20090094414A1 US 33332008 A US33332008 A US 33332008A US 2009094414 A1 US2009094414 A1 US 2009094414A1
- Authority
- US
- United States
- Prior art keywords
- firmware
- memory
- update
- storage device
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- the present invention relates to a storage device (e.g., an optical disc drive) comprising a dedicated memory update controller for updating firmware of the storage device.
- a storage device e.g., an optical disc drive
- a dedicated memory update controller for updating firmware of the storage device.
- An optical disc drive is a device for accessing information stored in an optical disc.
- a processor of an optical disc drive controls operations of the optical disc drive through executing specific program codes.
- the specific program codes are referred to as the firmware of the optical disc drive.
- the optical disc drive's firmware includes all needed data, commands, instructions, programs, and all other information utilized by the optical disc drive.
- the optical disc drive's firmware is always stored in a nonvolatile memory of the optical disc drive and needs to be updated if required.
- a firmware update scheme of a system in a related art stores both the needed firmware information and an update routine code in a nonvolatile memory of an optical disc drive.
- a processor of the optical disc drive executes the firmware stored in the nonvolatile memory to control operations of the optical disc drive.
- the processor executes the update routine code to update the firmware stored in the nonvolatile memory.
- This firmware update scheme requires additional update routine code.
- the nonvolatile memory must provide additional space for storing the update routine code. Furthermore, additional time is required for the processor to update the firmware by executing the update routine.
- an optical disc drive includes a system control chip, a buffer memory, and a flash memory.
- the system control chip comprises a microprocessor and an additional memory.
- the flash memory stores the optical disc drive's firmware
- the additional memory of the system control chip stores ordinary information.
- the microprocessor executes the firmware stored in the flash memory to control ordinary operations of the optical disc drive.
- the additional memory of the system control chip stores an update routine code.
- the microprocessor updates the firmware stored in the flash memory by a new version of firmware stored in the buffer memory.
- the additional update routine code must be provided during firmware update.
- the firmware update requires significant time.
- a storage device having at least a normal operation mode and a firmware update mode.
- the storage device includes: a firmware memory; a buffer memory; a processor electrically connected to the firmware memory, for controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory when the storage device is under the normal operation mode; and a memory update controller electrically connected to the firmware memory and the buffer memory, for fetching the update firmware from the buffer memory and storing the update firmware into the firmware memory when the storage device is under the firmware update mode.
- a firmware update method utilized in a storage device includes a firmware memory, a buffer memory, a processor, and a memory update controller.
- the method includes: (a) controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory with the processor; and (b) without utilizing the processor to execute an update routine code, utilizing the memory update controller to fetch the update firmware from the buffer memory and store the update firmware into the firmware memory.
- FIG. 1 shows an optical disc drive according to an exemplary embodiment of the present invention.
- FIG. 2 shows an embodiment of the memory update controller of FIG. 1 .
- FIG. 3 , FIG. 4 , and FIG. 5 show flowcharts illustrating how the optical disc drive of FIG. 1 operates.
- FIG. 1 shows an optical disc drive 100 according to an exemplary embodiment of the present invention.
- the optical disc drive 100 includes a radio frequency (RF) circuit 110 , a buffer memory 120 , a firmware memory 130 , and a system control chip 140 .
- the buffer memory 120 stores information retrieved from an optical disc 102 or information to be recorded into the optical disc 102 .
- the buffer memory 120 can be a volatile memory, such as a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM).
- the firmware memory 130 stores firmware.
- the firmware memory 130 can be a nonvolatile memory, such as a flash memory, an electrical erasable programmable read only memory (EEPROM), or a serial flash memory.
- EEPROM electrical erasable programmable read only memory
- the system control chip 140 includes a memory update controller 142 , a processor 144 , a decoder 146 , and a controller 148 .
- the processor 144 can be a microprocessor or an embedded processor.
- a data bus 141 interconnects the memory update controller 142 , the processor 144 , the decoder 146 , and the controller 148 .
- the data bus 141 can also be set external to the system control chip 140 .
- the system control chip 140 connects to an optional computer 106 through a main board interface 104 .
- the main board interface 104 can be an integrated drive electronics (IDE) interface, a small computer system interface (SCSI interface), a serial advanced technology attachment (SATA) interface, or any other functionally similar interfaces.
- IDE integrated drive electronics
- SCSI interface small computer system interface
- SATA serial advanced technology attachment
- the optical disc drive 100 of this embodiment has a normal operation mode and a firmware update mode.
- the memory update controller 142 is in an idle state.
- the processor 144 accesses the firmware stored in the firmware memory 130 .
- the processor 144 controls ordinary operations of the optical disc drive 100 by executing the firmware stored in the firmware memory 130 .
- the processor 144 controls the optical disc drive 100 to fetch an update firmware, e.g. from the optical disc 102 , and store the update firmware into the buffer memory 120 in the same manner as if the update firmware is ordinary information.
- the update firmware can also be stored in the buffer memory 120 with a specific format, such as a table of content (TOC) format.
- TOC table of content
- the optical disc drive 100 After the update firmware is retrieved and stored into the buffer memory 120 , the optical disc drive 100 enters the firmware update mode. Under the firmware update mode, the processor 144 is in an idle state; the memory update controller 142 becomes a dedicated hardware for updating the firmware. Without utilizing the processor 144 to execute an update routine code, the memory update controller 142 fetches the update firmware from the buffer memory 120 (e.g., through the decoder 146 ), and updates the firmware memory 130 .
- the processor 144 initializes the optical disc drive 100 . After the initialization process is finished, the processor 144 enters a standby state to wait for commands from the computer 106 . If the system control chip 140 receives a read command, the processor 144 sends corresponding parameters and instructions to control the operations of the decoder 146 and the controller 148 . Data is retrieved from the optical disc 102 , decoded and corrected if necessary, and stored in the buffer memory 120 . The computer 106 then reads the data stored in the buffer memory 120 . During the read operation, the optical disc drive 100 is under the normal operation mode, and the memory update controller 142 remains in an idle state.
- the processor 144 first controls the optical disc drive 100 to fetch an update firmware, e.g. from the optical disc 102 , and store the update firmware into the buffer memory 120 . Secondly, the processor 144 initializes the memory update controller 142 . This initialization process that is performed on the memory update controller 142 can alternatively be performed by the computer 106 or other external devices.
- the information utilized in the initialization process may include, but is not limited to, a starting address of the update firmware in the buffer memory 120 , a size of the update firmware, and a target address of the firmware memory 130 . If there does exist a fixed target address, the information utilized in the initialization process may also exclude the fixed target address of the firmware memory 130 .
- the optical disc drive 100 enters the firmware update mode
- the processor 144 enters the idle state
- the memory update controller 142 begins to update the firmware stored in the firmware memory 130 .
- FIG. 2 is a diagram illustrating a relationship between the memory update controller 142 and the firmware memory 130 .
- the memory update controller 142 includes a direct memory access (DMA) unit 201 and a dedicated memory update unit 202 .
- the DMA unit 201 fetches the update firmware from the buffer memory 120 (e.g., through the decoder 146 ) in sequence and sends the fetched update firmware to the dedicated memory update unit 202 .
- the dedicated memory update unit 202 then stores the update firmware received from the DMA unit 201 into the firmware memory 130 . Additionally, a small FIFO may be placed between the DMA unit 201 and the dedicated memory update unit 202 .
- the firmware memory 130 is a flash memory.
- there exist multiple methods to update the firmware stored in the firmware memory 130 One is to update the firmware memory 130 in a byte-by-byte manner, and the other is to update the firmware memory 130 in a page-by-page manner. Each page includes 128 bytes of memory space.
- the memory update controller 142 is performing the firmware update, the update firmware stored in the buffer memory 120 is treated as ordinary data.
- the firmware memory 130 can send an indication flag to the data bus 141 to report its status.
- the dedicated memory update unit 202 examines the indication flag to determine whether each piece of data is correctly stored into the firmware memory 130 . Once the entire update firmware in the buffer memory 120 is correctly stored into the firmware memory 130 , the firmware update is completed.
- the memory update controller 142 may dispatch a reset signal to reset the processor 144 and switch the optical disc drive 100 back to the normal operation mode.
- FIGS. 3-5 show flowcharts illustrating the operations of the optical disc drive 100 .
- the computer 106 is reset.
- the computer 106 sends instructions to the processor 144 to make the processor 144 reinitialize the optical disc drive 100 (step 310 ).
- the processor 144 continues to determine whether there is a request for firmware update (step 321 ).
- the firmware update can be instructed in several ways, for example, by a user through a dedicated user interface or by the computer 106 through the main board interface 104 .
- the optical disc drive 100 goes to step 322 ; otherwise, the optical disc drive 100 goes to step 340 to perform ordinary operations, such as accessing the optical disc 102 .
- step 322 the firmware of the optical disc drive 100 is updated.
- This step can be further divided into two parts, shown in FIGS. 4 and 5 , respectively. The first part is under the normal operation mode and the second part is under the firmware update mode.
- step 410 of FIG. 4 the processor 144 executes the firmware stored in the firmware memory 130 to control the optical disc drive 100 to fetch the update firmware, e.g. from the optical disc 102 , and store the update firmware into the buffer memory 120 .
- step 411 the processor 144 initializes the memory update controller 142 . More specifically, the processor 144 sets related information, such as the starting address of the update firmware in the buffer memory 120 , the size of the update firmware, and the destination address in the firmware memory 130 , into registers of the memory update controller 142 .
- step 430 the optical disc drive 100 enters the firmware update mode.
- the memory update controller 142 updates the firmware stored in the firmware memory 130 .
- the processor 144 then enters the idle state.
- step 500 the DMA unit 201 fetches the update firmware from the buffer memory 120 in a byte-by-byte manner or a page-by-page manner.
- the DMA unit 201 then sends the fetched update firmware and address information to the dedicated memory update unit 202 .
- step 510 the dedicated memory update unit 202 converts the received update firmware and address information into a format conforming to an update protocol adopted by the firmware memory 130 .
- step 520 updates the firmware memory 130 .
- Step 520 checks whether the firmware update was completed within a certain time constraint. It is considered that the firmware update is failed if the firmware update is not completed within the time constraint.
- the optical disc drive 100 goes to step 530 to indicate the failure of the firmware update.
- the optical disc drive 100 goes to step 540 if the firmware update is finished within the time constraint.
- Step 530 can be implemented utilizing a counter as an auxiliary tool.
- Step 540 determines whether the entire update firmware stored in the buffer memory 120 has been written into the firmware memory 130 .
- the firmware update is considered finished if the entire update firmware stored in the buffer memory 120 was written into the firmware memory 130 .
- step 310 of FIG. 3 is executed next.
- the optical disc drive 100 enters the normal operation mode, the memory update controller 142 enters the idle state, and the processor 144 reinitializes the optical disc drive 100 .
- step 340 the processor 144 controls ordinary operations of the optical disc drive 100 by executing the renewed firmware stored in the firmware memory 130 .
- the memory update controller 142 proceeds with step 500 to process a subsequent byte (or a subsequent page) of the update firmware.
- the present invention does not require an additional update routine code or the additional memory space for storing the additional update routine code. Furthermore, since the memory update controller is utilized to update firmware of the optical disc drive without utilizing the processor to execute an update routine code, the firmware update is faster than that of the related art.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Optical Recording Or Reproduction (AREA)
Abstract
A storage device includes a firmware memory, a buffer memory, a processor and a memory update controller. When the storage device is under a normal mode, the memory update controller is in an idle state. The processor controls the storage device to fetch an update firmware and store the update firmware into the buffer memory. When the storage device is under a firmware update mode, the processor is in an idle state. The memory update controller fetches the update firmware from the buffer memory and stores the update firmware into the firmware memory without the processor executing an update routine code.
Description
- This continuation application claims the benefit of co-pending U.S. patent application Ser. No. 10/907,949, which filed on Apr. 21, 2005 and included herein by reference.
- The present invention relates to a storage device (e.g., an optical disc drive) comprising a dedicated memory update controller for updating firmware of the storage device.
- An optical disc drive is a device for accessing information stored in an optical disc. A processor of an optical disc drive controls operations of the optical disc drive through executing specific program codes. The specific program codes are referred to as the firmware of the optical disc drive. The optical disc drive's firmware includes all needed data, commands, instructions, programs, and all other information utilized by the optical disc drive. The optical disc drive's firmware is always stored in a nonvolatile memory of the optical disc drive and needs to be updated if required.
- A firmware update scheme of a system in a related art stores both the needed firmware information and an update routine code in a nonvolatile memory of an optical disc drive. Under a normal operation mode, a processor of the optical disc drive executes the firmware stored in the nonvolatile memory to control operations of the optical disc drive. Under a firmware update mode, the processor executes the update routine code to update the firmware stored in the nonvolatile memory. This firmware update scheme requires additional update routine code. The nonvolatile memory must provide additional space for storing the update routine code. Furthermore, additional time is required for the processor to update the firmware by executing the update routine.
- U.S. Pat. No. 6,170,043 discloses another firmware update scheme for optical disc drives. According to this patent, an optical disc drive includes a system control chip, a buffer memory, and a flash memory. The system control chip comprises a microprocessor and an additional memory. Under a normal operation mode, the flash memory stores the optical disc drive's firmware, and the additional memory of the system control chip stores ordinary information. The microprocessor executes the firmware stored in the flash memory to control ordinary operations of the optical disc drive. Under a firmware update mode, the additional memory of the system control chip stores an update routine code. The microprocessor updates the firmware stored in the flash memory by a new version of firmware stored in the buffer memory. The additional update routine code must be provided during firmware update. The firmware update requires significant time.
- U.S. Pat. No. 6,523,083 discloses another firmware update method. Unfortunately, this firmware update method needs an additional host device.
- According to the claimed invention, a storage device having at least a normal operation mode and a firmware update mode is disclosed. The storage device includes: a firmware memory; a buffer memory; a processor electrically connected to the firmware memory, for controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory when the storage device is under the normal operation mode; and a memory update controller electrically connected to the firmware memory and the buffer memory, for fetching the update firmware from the buffer memory and storing the update firmware into the firmware memory when the storage device is under the firmware update mode.
- According to the claimed invention, a firmware update method utilized in a storage device is disclosed. The storage device includes a firmware memory, a buffer memory, a processor, and a memory update controller. The method includes: (a) controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory with the processor; and (b) without utilizing the processor to execute an update routine code, utilizing the memory update controller to fetch the update firmware from the buffer memory and store the update firmware into the firmware memory.
- These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
-
FIG. 1 shows an optical disc drive according to an exemplary embodiment of the present invention. -
FIG. 2 shows an embodiment of the memory update controller ofFIG. 1 . -
FIG. 3 ,FIG. 4 , andFIG. 5 show flowcharts illustrating how the optical disc drive ofFIG. 1 operates. -
FIG. 1 shows anoptical disc drive 100 according to an exemplary embodiment of the present invention. In this embodiment, theoptical disc drive 100 includes a radio frequency (RF)circuit 110, abuffer memory 120, afirmware memory 130, and asystem control chip 140. Thebuffer memory 120 stores information retrieved from anoptical disc 102 or information to be recorded into theoptical disc 102. Thebuffer memory 120 can be a volatile memory, such as a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM). Thefirmware memory 130 stores firmware. Thefirmware memory 130 can be a nonvolatile memory, such as a flash memory, an electrical erasable programmable read only memory (EEPROM), or a serial flash memory. - The
system control chip 140 includes amemory update controller 142, aprocessor 144, adecoder 146, and acontroller 148. Theprocessor 144 can be a microprocessor or an embedded processor. Adata bus 141 interconnects thememory update controller 142, theprocessor 144, thedecoder 146, and thecontroller 148. Thedata bus 141 can also be set external to thesystem control chip 140. In addition to controlling theRF circuit 110 to access theoptical disc 102, thesystem control chip 140 connects to anoptional computer 106 through amain board interface 104. Themain board interface 104 can be an integrated drive electronics (IDE) interface, a small computer system interface (SCSI interface), a serial advanced technology attachment (SATA) interface, or any other functionally similar interfaces. - The
optical disc drive 100 of this embodiment has a normal operation mode and a firmware update mode. When theoptical disc drive 100 is under the normal operation mode, thememory update controller 142 is in an idle state. Through thedata bus 141, theprocessor 144 accesses the firmware stored in thefirmware memory 130. Theprocessor 144 controls ordinary operations of theoptical disc drive 100 by executing the firmware stored in thefirmware memory 130. When a firmware update is required, theprocessor 144 controls theoptical disc drive 100 to fetch an update firmware, e.g. from theoptical disc 102, and store the update firmware into thebuffer memory 120 in the same manner as if the update firmware is ordinary information. The update firmware can also be stored in thebuffer memory 120 with a specific format, such as a table of content (TOC) format. After the update firmware is retrieved and stored into thebuffer memory 120, theoptical disc drive 100 enters the firmware update mode. Under the firmware update mode, theprocessor 144 is in an idle state; thememory update controller 142 becomes a dedicated hardware for updating the firmware. Without utilizing theprocessor 144 to execute an update routine code, thememory update controller 142 fetches the update firmware from the buffer memory 120 (e.g., through the decoder 146), and updates thefirmware memory 130. - For example, every time the
computer 106 is turned on or reset, theprocessor 144 initializes theoptical disc drive 100. After the initialization process is finished, theprocessor 144 enters a standby state to wait for commands from thecomputer 106. If thesystem control chip 140 receives a read command, theprocessor 144 sends corresponding parameters and instructions to control the operations of thedecoder 146 and thecontroller 148. Data is retrieved from theoptical disc 102, decoded and corrected if necessary, and stored in thebuffer memory 120. Thecomputer 106 then reads the data stored in thebuffer memory 120. During the read operation, theoptical disc drive 100 is under the normal operation mode, and thememory update controller 142 remains in an idle state. - During the firmware update, the
processor 144 first controls theoptical disc drive 100 to fetch an update firmware, e.g. from theoptical disc 102, and store the update firmware into thebuffer memory 120. Secondly, theprocessor 144 initializes thememory update controller 142. This initialization process that is performed on thememory update controller 142 can alternatively be performed by thecomputer 106 or other external devices. The information utilized in the initialization process may include, but is not limited to, a starting address of the update firmware in thebuffer memory 120, a size of the update firmware, and a target address of thefirmware memory 130. If there does exist a fixed target address, the information utilized in the initialization process may also exclude the fixed target address of thefirmware memory 130. After the initialization process is finished, theoptical disc drive 100 enters the firmware update mode, theprocessor 144 enters the idle state, and thememory update controller 142 begins to update the firmware stored in thefirmware memory 130. -
FIG. 2 is a diagram illustrating a relationship between thememory update controller 142 and thefirmware memory 130. InFIG. 2 , thememory update controller 142 includes a direct memory access (DMA)unit 201 and a dedicatedmemory update unit 202. TheDMA unit 201 fetches the update firmware from the buffer memory 120 (e.g., through the decoder 146) in sequence and sends the fetched update firmware to the dedicatedmemory update unit 202. The dedicatedmemory update unit 202 then stores the update firmware received from theDMA unit 201 into thefirmware memory 130. Additionally, a small FIFO may be placed between theDMA unit 201 and the dedicatedmemory update unit 202. - For example, consider that the
firmware memory 130 is a flash memory. In this example, there exist multiple methods to update the firmware stored in thefirmware memory 130. One is to update thefirmware memory 130 in a byte-by-byte manner, and the other is to update thefirmware memory 130 in a page-by-page manner. Each page includes 128 bytes of memory space. When thememory update controller 142 is performing the firmware update, the update firmware stored in thebuffer memory 120 is treated as ordinary data. When each piece of data is being stored into thefirmware memory 130, thefirmware memory 130 can send an indication flag to thedata bus 141 to report its status. The dedicatedmemory update unit 202 examines the indication flag to determine whether each piece of data is correctly stored into thefirmware memory 130. Once the entire update firmware in thebuffer memory 120 is correctly stored into thefirmware memory 130, the firmware update is completed. Thememory update controller 142 may dispatch a reset signal to reset theprocessor 144 and switch theoptical disc drive 100 back to the normal operation mode. -
FIGS. 3-5 show flowcharts illustrating the operations of theoptical disc drive 100. Please refer toFIG. 3 . Instep 300, thecomputer 106 is reset. Next, thecomputer 106 sends instructions to theprocessor 144 to make theprocessor 144 reinitialize the optical disc drive 100 (step 310). After theoptical disc drive 100 is reinitialized, theprocessor 144 continues to determine whether there is a request for firmware update (step 321). The firmware update can be instructed in several ways, for example, by a user through a dedicated user interface or by thecomputer 106 through themain board interface 104. When there is a request for firmware update, theoptical disc drive 100 goes to step 322; otherwise, theoptical disc drive 100 goes to step 340 to perform ordinary operations, such as accessing theoptical disc 102. - In
step 322, the firmware of theoptical disc drive 100 is updated. This step can be further divided into two parts, shown inFIGS. 4 and 5 , respectively. The first part is under the normal operation mode and the second part is under the firmware update mode. - In
step 410 ofFIG. 4 , theprocessor 144 executes the firmware stored in thefirmware memory 130 to control theoptical disc drive 100 to fetch the update firmware, e.g. from theoptical disc 102, and store the update firmware into thebuffer memory 120. Next, instep 411, theprocessor 144 initializes thememory update controller 142. More specifically, theprocessor 144 sets related information, such as the starting address of the update firmware in thebuffer memory 120, the size of the update firmware, and the destination address in thefirmware memory 130, into registers of thememory update controller 142. Next, instep 430, theoptical disc drive 100 enters the firmware update mode. Thememory update controller 142 updates the firmware stored in thefirmware memory 130. Theprocessor 144 then enters the idle state. - In
step 500, theDMA unit 201 fetches the update firmware from thebuffer memory 120 in a byte-by-byte manner or a page-by-page manner. TheDMA unit 201 then sends the fetched update firmware and address information to the dedicatedmemory update unit 202. Instep 510, the dedicatedmemory update unit 202 converts the received update firmware and address information into a format conforming to an update protocol adopted by thefirmware memory 130. Finally, the dedicatedmemory update unit 202 updates thefirmware memory 130. Step 520 checks whether the firmware update was completed within a certain time constraint. It is considered that the firmware update is failed if the firmware update is not completed within the time constraint. Theoptical disc drive 100 goes to step 530 to indicate the failure of the firmware update. Theoptical disc drive 100 goes to step 540 if the firmware update is finished within the time constraint. Step 530 can be implemented utilizing a counter as an auxiliary tool. Step 540 determines whether the entire update firmware stored in thebuffer memory 120 has been written into thefirmware memory 130. The firmware update is considered finished if the entire update firmware stored in thebuffer memory 120 was written into thefirmware memory 130. In this case, step 310 ofFIG. 3 is executed next. Theoptical disc drive 100 enters the normal operation mode, thememory update controller 142 enters the idle state, and theprocessor 144 reinitializes theoptical disc drive 100. Finally, instep 340, theprocessor 144 controls ordinary operations of theoptical disc drive 100 by executing the renewed firmware stored in thefirmware memory 130. In the event wherestep 540 determines that the firmware update is not finished, thememory update controller 142 proceeds withstep 500 to process a subsequent byte (or a subsequent page) of the update firmware. - In contrast to the related art, the present invention does not require an additional update routine code or the additional memory space for storing the additional update routine code. Furthermore, since the memory update controller is utilized to update firmware of the optical disc drive without utilizing the processor to execute an update routine code, the firmware update is faster than that of the related art.
- Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Claims (21)
1. A storage device having a normal operation mode and a firmware update mode, the storage device comprising:
a firmware memory;
a buffer memory;
a processor electrically connected to the firmware memory, for controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory when the storage device is under the normal operation mode; and
a memory update controller electrically connected to the firmware memory and the buffer memory, for fetching the update firmware from the buffer memory and storing the update firmware into the firmware memory when the storage device is under the firmware update mode without the processor executing an update routine code for updating firmware stored in the firmware memory.
2. The storage device of claim 1 , wherein the processor controls the storage device to fetch the update firmware from an optical disc.
3. The storage device of claim 1 , wherein the memory update controller comprises:
a direct memory access (DMA) unit electrically connected to the buffer memory, for fetching the update firmware from the buffer memory; and
a dedicated memory update unit electrically connected to the DMA unit and the firmware memory, for receiving the update firmware from the DMA unit and storing the update firmware into the firmware memory.
4. The storage device of claim 1 , wherein when the storage device is under the normal operation mode, the processor executes the firmware stored in the firmware memory to control operations of the storage device.
5. The storage device of claim 1 , wherein when the storage device is under the firmware update mode, the processor is in an idle state; and when the storage device is under the normal operation mode, the memory update controller is in an idle state.
6. The storage device of claim 1 , wherein the processor and the memory update controller are set in a system control chip of the storage device.
7. The storage device of claim 1 , wherein the firmware memory is a flash memory, an electrical erasable programmable read only memory (EEPROM), or a serial flash memory.
8. The storage device of claim 1 , wherein the buffer memory is a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM).
9. A system control chip utilized in a storage device, for updating firmware of the storage device, the system control chip comprising:
a processor electrically connected to a firmware memory of the storage device, the firmware memory being for storing firmware of the storage device;
a controller electrically connected to the processor, for receiving a control signal and general data;
a decoder electrically connected to the processor, the controller, and a buffer memory of the storage device; and
a memory update controller electrically connected to the processor and the firmware memory, for receiving an update firmware and storing the update firmware into the firmware memory without the processor executing an update routine code for updating firmware stored in the firmware memory.
10. The system control chip of claim 9 , wherein the memory update controller is further electrically connected to the decoder, and receives the update firmware from the decoder.
11. The system control chip of claim 10 , wherein the memory update controller comprises:
a direct memory access (DMA) unit electrically connected to the decoder, for receiving the update firmware from the decoder; and
a dedicated memory update unit electrically connected to the DMA unit and the firmware memory, for receiving the update firmware from the DMA unit and storing the update firmware into the firmware memory.
12. The system control chip of claim 9 , wherein the processor, the controller, the decoder, and the memory update controller are interconnected through a data bus.
13. The system control chip of claim 12 , wherein the processor sets the memory update controller through the data bus.
14. The system control chip of claim 9 , wherein the processor executes the firmware stored in the firmware memory to control operations of the decoder and the controller.
15. The system control chip of claim 9 , wherein the firmware memory is a flash memory, an electrical erasable programmable read only memory (EEPROM), or a serial flash memory.
16. The system control chip of claim 9 , wherein the buffer memory is a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM).
17. A firmware update method utilized in a storage device, the storage device comprising a firmware memory, a buffer memory, a processor, and a memory update controller, the firmware update method comprising:
(a) controlling the storage device to fetch an update firmware and store the update firmware into the buffer memory with the processor; and
(b) without utilizing the processor to execute an update routine code for updating firmware stored in the firmware memory, utilizing the memory update controller to fetch the update firmware from the buffer memory and store the update firmware into the firmware memory.
18. The firmware update method of claim 17 , wherein step (a) controls the storage device to fetch the update firmware from an optical disc.
19. The firmware update method of claim 17 , wherein:
step (a) further comprises controlling the memory update controller to be in an idle state; and
step (b) further comprises controlling the processor to be in an idle state.
20. The firmware update method of claim 17 , wherein the firmware memory is a flash memory, an electrical erasable programmable read only memory (EEPROM), or a serial flash memory.
21. The firmware update method of claim 17 , wherein the buffer memory is a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM).
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/333,320 US20090094414A1 (en) | 2004-09-16 | 2008-12-12 | Firmware Update for Storage Device |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW093128050 | 2004-09-16 | ||
| TW093128050A TWI259974B (en) | 2004-09-16 | 2004-09-16 | Optical disk drive capable of updating firmware and firmware updating method thereof |
| US10/907,949 US7480904B2 (en) | 2004-09-16 | 2005-04-21 | Firmware update for optical disc drive |
| US12/333,320 US20090094414A1 (en) | 2004-09-16 | 2008-12-12 | Firmware Update for Storage Device |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/907,949 Continuation US7480904B2 (en) | 2004-09-16 | 2005-04-21 | Firmware update for optical disc drive |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20090094414A1 true US20090094414A1 (en) | 2009-04-09 |
Family
ID=36035427
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/907,949 Expired - Lifetime US7480904B2 (en) | 2004-09-16 | 2005-04-21 | Firmware update for optical disc drive |
| US12/333,320 Abandoned US20090094414A1 (en) | 2004-09-16 | 2008-12-12 | Firmware Update for Storage Device |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/907,949 Expired - Lifetime US7480904B2 (en) | 2004-09-16 | 2005-04-21 | Firmware update for optical disc drive |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US7480904B2 (en) |
| TW (1) | TWI259974B (en) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060282653A1 (en) * | 2005-06-08 | 2006-12-14 | Ping-Ying Chu | Method for updating frimware of memory card |
| US20110197185A1 (en) * | 2010-02-05 | 2011-08-11 | Lenovo (Singapore) Pte, Ltd. | Method and Apparatus for Updating Firmware on a Storage Device |
| US20110209134A1 (en) * | 2010-02-22 | 2011-08-25 | Ricoh Company, Ltd. | Information processing apparatus |
| US20120096451A1 (en) * | 2010-10-15 | 2012-04-19 | Roche Diagnostics Operations, Inc. | Firmware update in a medical device with multiple processors |
| US20120110562A1 (en) * | 2010-10-27 | 2012-05-03 | David Heinrich | Synchronized firmware update |
| WO2012039971A3 (en) * | 2010-09-22 | 2012-07-19 | Intel Corporation | Platform firmware armoring technology |
| WO2012087069A3 (en) * | 2010-12-23 | 2012-10-04 | Samsung Electronics Co., Ltd. | Condensed fota backup |
| US20130086571A1 (en) * | 2011-09-30 | 2013-04-04 | International Business Machines Corporation | Dynamically Updating Firmware In A Computing System |
| US8661429B2 (en) | 2012-02-28 | 2014-02-25 | Seagate Technology Llc | Updating peripheral device firmware via a portable device |
| US11216269B2 (en) * | 2020-01-09 | 2022-01-04 | Dell Products L.P. | Systems and methods for update of storage resource firmware |
| US20250045400A1 (en) * | 2023-08-02 | 2025-02-06 | Dell Products, L.P. | Secure firmware updates in heterogeneous computing platforms |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI259974B (en) * | 2004-09-16 | 2006-08-11 | Mediatek Inc | Optical disk drive capable of updating firmware and firmware updating method thereof |
| US8688933B2 (en) * | 2006-08-31 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Firmware component modification |
| KR100849212B1 (en) * | 2006-10-12 | 2008-07-31 | 삼성전자주식회사 | Memory card and method for updating of memory card program |
| JP4940967B2 (en) * | 2007-01-30 | 2012-05-30 | 富士通株式会社 | Storage system, storage device, firmware hot replacement method, firmware hot swap program |
| US8572598B1 (en) * | 2007-04-18 | 2013-10-29 | Nvidia Corporation | Method and system for upgrading software in a computing device |
| EP2702479A4 (en) * | 2011-04-29 | 2014-10-29 | Hewlett Packard Development Co | Computer system firmware update |
| KR101845290B1 (en) * | 2011-08-25 | 2018-04-04 | 엘지전자 주식회사 | Method and device for updating firmware based on a device management command |
| CN102855151B (en) * | 2012-08-21 | 2016-06-08 | 武汉电信器件有限公司 | The optical module firmware not interrupting business is in application upgrade method |
| KR102261815B1 (en) | 2014-10-30 | 2021-06-07 | 삼성전자주식회사 | Data storage device for reducing firmware update time, and data processing system including the same |
| JP6549454B2 (en) * | 2015-09-11 | 2019-07-24 | ラピスセミコンダクタ株式会社 | Information processing device |
| CN113377392B (en) * | 2020-03-09 | 2024-03-29 | 瑞昱半导体股份有限公司 | Systems that can upgrade firmware in the background and methods for upgrading firmware in the background |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5586127A (en) * | 1993-11-30 | 1996-12-17 | Fujitsu Limited | Apparatus and method for correcting error in data read from recording medium |
| US6128724A (en) * | 1997-12-11 | 2000-10-03 | Leland Stanford Junior University | Computation using codes for controlling configurable computational circuit |
| US6170043B1 (en) * | 1999-01-22 | 2001-01-02 | Media Tek Inc. | Method for controlling an optic disk |
| US6523083B1 (en) * | 1999-12-09 | 2003-02-18 | Via Technologies, Inc. | System and method for updating flash memory of peripheral device |
| US20030217358A1 (en) * | 2002-05-17 | 2003-11-20 | Sun Microsystems, Inc. | Method, system, and article of manufacture for firmware downloads |
| US20040062166A1 (en) * | 2002-09-30 | 2004-04-01 | Mitsumi Electric Co., Ltd., A Japanese Corporation | Optical disc drive and method of updating firmware |
| US20040083469A1 (en) * | 2002-10-23 | 2004-04-29 | Ping-Sheng Chen | Method for updating firmware of optical disk system |
| US20040133711A1 (en) * | 2003-01-03 | 2004-07-08 | Ping-Sheng Chen | Control chip for optical disk drive and method for updating firmware in the control chip |
| US20040143828A1 (en) * | 2003-01-20 | 2004-07-22 | Tun-Hsing Liu | Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating |
| US6769087B2 (en) * | 2000-04-11 | 2004-07-27 | Kabushiki Kaisha Toshiba | Data storage device and method for controlling the device |
| US20050144612A1 (en) * | 2003-12-31 | 2005-06-30 | Shin-Ping Wang | Firmware updating method and application utilizing the same |
| US7480904B2 (en) * | 2004-09-16 | 2009-01-20 | Mediatek Incorporation | Firmware update for optical disc drive |
-
2004
- 2004-09-16 TW TW093128050A patent/TWI259974B/en not_active IP Right Cessation
-
2005
- 2005-04-21 US US10/907,949 patent/US7480904B2/en not_active Expired - Lifetime
-
2008
- 2008-12-12 US US12/333,320 patent/US20090094414A1/en not_active Abandoned
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5586127A (en) * | 1993-11-30 | 1996-12-17 | Fujitsu Limited | Apparatus and method for correcting error in data read from recording medium |
| US6128724A (en) * | 1997-12-11 | 2000-10-03 | Leland Stanford Junior University | Computation using codes for controlling configurable computational circuit |
| US6170043B1 (en) * | 1999-01-22 | 2001-01-02 | Media Tek Inc. | Method for controlling an optic disk |
| US6523083B1 (en) * | 1999-12-09 | 2003-02-18 | Via Technologies, Inc. | System and method for updating flash memory of peripheral device |
| US6769087B2 (en) * | 2000-04-11 | 2004-07-27 | Kabushiki Kaisha Toshiba | Data storage device and method for controlling the device |
| US20030217358A1 (en) * | 2002-05-17 | 2003-11-20 | Sun Microsystems, Inc. | Method, system, and article of manufacture for firmware downloads |
| US20040062166A1 (en) * | 2002-09-30 | 2004-04-01 | Mitsumi Electric Co., Ltd., A Japanese Corporation | Optical disc drive and method of updating firmware |
| US20040083469A1 (en) * | 2002-10-23 | 2004-04-29 | Ping-Sheng Chen | Method for updating firmware of optical disk system |
| US20040133711A1 (en) * | 2003-01-03 | 2004-07-08 | Ping-Sheng Chen | Control chip for optical disk drive and method for updating firmware in the control chip |
| US20040143828A1 (en) * | 2003-01-20 | 2004-07-22 | Tun-Hsing Liu | Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating |
| US20050144612A1 (en) * | 2003-12-31 | 2005-06-30 | Shin-Ping Wang | Firmware updating method and application utilizing the same |
| US7480904B2 (en) * | 2004-09-16 | 2009-01-20 | Mediatek Incorporation | Firmware update for optical disc drive |
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060282653A1 (en) * | 2005-06-08 | 2006-12-14 | Ping-Ying Chu | Method for updating frimware of memory card |
| US20110197185A1 (en) * | 2010-02-05 | 2011-08-11 | Lenovo (Singapore) Pte, Ltd. | Method and Apparatus for Updating Firmware on a Storage Device |
| US9063816B2 (en) * | 2010-02-05 | 2015-06-23 | Lenovo (Singapore) Pte. Ltd. | Method and apparatus for updating firmware on a storage device |
| US20110209134A1 (en) * | 2010-02-22 | 2011-08-25 | Ricoh Company, Ltd. | Information processing apparatus |
| GB2497224A (en) * | 2010-09-22 | 2013-06-05 | Intel Corp | Platform firmware armoring technology |
| WO2012039971A3 (en) * | 2010-09-22 | 2012-07-19 | Intel Corporation | Platform firmware armoring technology |
| US8522322B2 (en) | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
| GB2497224B (en) * | 2010-09-22 | 2018-08-01 | Intel Corp | Platform firmware armoring technology |
| US20120096451A1 (en) * | 2010-10-15 | 2012-04-19 | Roche Diagnostics Operations, Inc. | Firmware update in a medical device with multiple processors |
| US20120110562A1 (en) * | 2010-10-27 | 2012-05-03 | David Heinrich | Synchronized firmware update |
| WO2012087069A3 (en) * | 2010-12-23 | 2012-10-04 | Samsung Electronics Co., Ltd. | Condensed fota backup |
| US8924777B2 (en) | 2010-12-23 | 2014-12-30 | Samsung Electronics Co., Ltd. | Condensed FOTA backup |
| US20130086571A1 (en) * | 2011-09-30 | 2013-04-04 | International Business Machines Corporation | Dynamically Updating Firmware In A Computing System |
| US8661429B2 (en) | 2012-02-28 | 2014-02-25 | Seagate Technology Llc | Updating peripheral device firmware via a portable device |
| US11216269B2 (en) * | 2020-01-09 | 2022-01-04 | Dell Products L.P. | Systems and methods for update of storage resource firmware |
| US20250045400A1 (en) * | 2023-08-02 | 2025-02-06 | Dell Products, L.P. | Secure firmware updates in heterogeneous computing platforms |
Also Published As
| Publication number | Publication date |
|---|---|
| TW200611189A (en) | 2006-04-01 |
| US7480904B2 (en) | 2009-01-20 |
| US20060059300A1 (en) | 2006-03-16 |
| TWI259974B (en) | 2006-08-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20090094414A1 (en) | Firmware Update for Storage Device | |
| CN1318979C (en) | How to Update the Firmware of the Optical Disk System | |
| US6170043B1 (en) | Method for controlling an optic disk | |
| US6317827B1 (en) | Method and apparatus for fault tolerant flash upgrading | |
| US6480932B1 (en) | Computer system having a host computer coupled to a disk drive with a drive-selected-application partition for storing data for execution by the host computer in response to drive-determined conditions | |
| US7107364B2 (en) | Control chip for optical disk drive and method for updating firmware in the control chip | |
| US7320126B2 (en) | Implementation of in system programming to update firmware on memory cards | |
| US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
| US8301858B2 (en) | Control device | |
| US20030206442A1 (en) | Flash memory bridiging device, method and application system | |
| US20020049871A1 (en) | Method and system for virtual memory compression in an embedded system | |
| US20080114923A1 (en) | Apparatus and method for controlling operation processing in nonvolatile memory | |
| US6195107B1 (en) | Method and system for utilizing virtual memory in an embedded system | |
| US20030033465A1 (en) | Hot-swap device applicable to ATA interface | |
| CN115904512A (en) | Method for realizing high-reliability starting of embedded system based on CPLD | |
| US20060047938A1 (en) | Method and apparatus to initialize CPU | |
| US20080301358A1 (en) | Electronic device that Downloads Operational Firmware from an External Host | |
| US8230198B2 (en) | System for synchronous code retrieval from an asynchronous source | |
| JP2004110827A (en) | Execution of variable length instruction stored in plurality of individual storage address areas | |
| JP4083474B2 (en) | MEMORY DEVICE CONTROL METHOD, PROGRAM THEREOF, AND RECORDING MEDIUM | |
| US20040264261A1 (en) | Controller and method for writing data | |
| US20040236932A1 (en) | Apparatus and method for firmware upgrade in microprocessor-based processing units | |
| US20070011394A1 (en) | Access method and access circuit for flash memory in embedded system | |
| JP4826873B2 (en) | Microprocessor system with hot routine memory | |
| US20050265266A1 (en) | Optical disc drive that downloads operational firmware from an external host |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MEDIATEK INC., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HSU, CHI-CHUN;WU, WEN-YI;REEL/FRAME:021968/0120 Effective date: 20050413 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |