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.
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. In addition to controlling the RF circuit 110 to access the optical disc 102, 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.
The optical disc drive 100 of this embodiment has a normal operation mode and a firmware update mode. When the optical disc drive 100 is under the normal operation mode, the memory update controller 142 is in an idle state. Through the data bus 141, 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. When a firmware update is required, 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. 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.
For example, every time the computer 106 is turned on or reset, 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.
During the firmware update, 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. After the initialization process is finished, the optical disc drive 100 enters the firmware update mode, the processor 144 enters the idle state, and the memory update controller 142 begins to update the firmware stored in the firmware memory 130.
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 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. When the memory update controller 142 is performing the firmware update, the update firmware stored in the buffer memory 120 is treated as ordinary data. When each piece of data is being stored into the firmware memory 130, 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.
In step 322, the firmware of the optical disc drive 100 is updated. This step can be further divided into two parts, shown in
In step 410 of
In 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. In 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. Finally, the dedicated memory update unit 202 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. In this case, step 310 of
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.
Number | Date | Country | Kind |
---|---|---|---|
093128050 | Sep 2004 | TW | national |
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.
Number | Date | Country | |
---|---|---|---|
Parent | 10907949 | Apr 2005 | US |
Child | 12333320 | US |