WO2025254357A1 - Data storage device and operating method thereof - Google Patents

Data storage device and operating method thereof

Info

Publication number
WO2025254357A1
WO2025254357A1 PCT/KR2025/006603 KR2025006603W WO2025254357A1 WO 2025254357 A1 WO2025254357 A1 WO 2025254357A1 KR 2025006603 W KR2025006603 W KR 2025006603W WO 2025254357 A1 WO2025254357 A1 WO 2025254357A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
memory unit
main
memory
booting
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.)
Pending
Application number
PCT/KR2025/006603
Other languages
French (fr)
Korean (ko)
Inventor
신상훈
김호성
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Innotek Co Ltd
Original Assignee
LG Innotek Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020250041976A external-priority patent/KR20250173406A/en
Application filed by LG Innotek Co Ltd filed Critical LG Innotek Co Ltd
Publication of WO2025254357A1 publication Critical patent/WO2025254357A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • the present invention relates to a data storage device and an operating method thereof.
  • NAND flash memory is an example of a NAND-based data storage device and is a non-volatile memory.
  • NAND flash memory If a power interruption or unstable power supply occurs to NAND flash memory, data within the memory may be corrupted. For example, if a power interruption occurs during a write/erase operation, data may not be saved properly and may become corrupted. Specifically, while some blocks undergoing write/erase operations can be recovered after backup, some blocks may be difficult to recover.
  • the technical problem to be achieved by the present invention is to provide a data storage device and an operating method thereof that can stably boot without data loss even when power is cut off.
  • a method of operating a data storage device includes the steps of: receiving a control signal instructing one of first firmware stored in a first memory unit and second firmware stored in a second memory unit to operate as a main firmware; executing the first firmware as the main firmware according to the control signal; if booting is successful as a result of executing the first firmware as the main firmware, updating the second firmware with reference to the first firmware; if booting fails as a result of executing the first firmware as the main firmware, executing the second firmware as the main firmware; and if booting is successful as a result of executing the second firmware as the main firmware, updating the first firmware with reference to the second firmware.
  • the first memory unit and the second memory unit may be different dies included in one NAND flash memory.
  • the address range allocated to the first memory section may not overlap with the address range allocated to the second memory section.
  • booting may be executed from a first boot start address within an address range allocated to the first memory section
  • booting may be executed from a second boot start address within an address range allocated to the second memory section.
  • the address range allocated to the first memory unit may be 0 to 2 N -1, and the address range allocated to the second memory unit may be 2 N to 2 N+1 -1.
  • the above control signal can be received through at least one GPIO (general purpose input output).
  • GPIO general purpose input output
  • a data storage device includes a first memory unit for storing a first firmware, a second memory unit for storing a second firmware, and a control unit, wherein the control unit is configured to, when receiving a control signal instructing either the first firmware or the second firmware to operate as a main firmware, execute the first firmware as the main firmware according to the control signal, and, if booting is successful as a result of executing the first firmware as the main firmware, update the second firmware with reference to the first firmware, and, if booting fails as a result of executing the first firmware as the main firmware, execute the second firmware as the main firmware, and, if booting is successful as a result of executing the second firmware as the main firmware, update the first firmware with reference to the second firmware.
  • a data storage device capable of stable booting without data loss even during a power outage and an operating method thereof can be obtained.
  • it is possible to recover data lost during a power outage without increasing the memory capacity or physical size.
  • backup data can be updated simultaneously with the normal operation of the data storage device.
  • FIG. 1 is a block diagram of a system including a data storage device according to one embodiment of the present invention.
  • FIG. 2 is a block diagram of a data storage device according to one embodiment of the present invention.
  • Figure 3 is a block diagram of a data storage device according to another embodiment of the present invention.
  • FIG. 4 is a flowchart of an operating method of a data storage device according to one embodiment of the present invention.
  • FIG. 5 is a flowchart of an operating method of a data storage device according to another embodiment of the present invention.
  • Figure 6 is a flowchart of an operating method of a data storage device according to another embodiment of the present invention.
  • a component when a component is described as being 'connected', 'coupled' or 'connected' to another component, it may include not only cases where the component is directly connected, coupled or connected to the other component, but also cases where the component is 'connected', 'coupled' or 'connected' by another component between the component and the other component.
  • “above” or “below” when described as being formed or arranged “above or below” each component, “above” or “below” includes not only cases where the two components are in direct contact with each other, but also cases where one or more other components are formed or arranged between the two components. Furthermore, when expressed as “above” or “below”, it can include the meaning of a downward direction as well as an upward direction based on one component.
  • FIG. 1 is a block diagram of a system including a data storage device according to one embodiment of the present invention.
  • a system (10) includes a power supply (100) and a data storage device (200).
  • the power supply (100) may include a conversion unit (110), an input voltage detection unit (120), and a detection signal transmission unit (130).
  • the conversion unit (110) may receive an input voltage corresponding to the main power, and may convert the received input voltage into a voltage required by each component of the data storage device (200) and output the converted voltage. More specifically, the conversion unit (110) may be implemented as a regulator.
  • the regulator may receive an input voltage through an input terminal and output an output voltage through an output terminal.
  • the output voltage of the regulator may be a driving voltage of the data storage device (200).
  • the regulator may stabilize the input voltage and output it, thereby driving a stable driving voltage to the data storage device (200).
  • the input voltage detection unit (120) can detect the magnitude of the input voltage supplied to the main power source and output a detection signal accordingly.
  • the input voltage detection unit (120) can include a comparator and output a detection signal according to the comparison result between the input voltage and a reference signal.
  • the detection signal transmission unit (130) can transmit the detection signal output from the input voltage detection unit (120) to the data storage device (200).
  • the detection signal transmission unit (130) can include a logic circuit that converts the high voltage of the detection signal into a low voltage that can be received by the control unit (230) of the data storage device (200) and outputs it.
  • the data storage device (200) can operate using the voltage input from the power supply device (100) as the driving voltage.
  • the data storage device (200) can communicate with the control device (300) and store data transmitted from the control device (300). That is, the data storage device (200) can communicate with the control device (300) and store a control signal received from the control device (300).
  • the data storage device (200) may be placed in a vehicle, and the control device (300) may be a vehicle control device that controls the vehicle, but is not limited thereto.
  • the data storage device (200) according to an embodiment of the present invention may be applied to various technical fields such as electronic devices, communications, vehicles, networks, and telematics, and the control device (300) may be a device that controls a system in which the data storage device (200) according to an embodiment of the present invention is mounted.
  • a data storage device (200) includes a memory unit (210), a power supply unit (220), and a control unit (230).
  • the control unit (230) controls the memory unit (210) and may be used interchangeably with a central processing unit (CPU).
  • the control unit (230) receives an operation signal from the memory unit (210) and accesses the memory unit (210) based on the operation signal.
  • the operation signal may be, for example, a Ready output signal and a Busy output signal.
  • the memory unit (210) may be a nonvolatile memory capable of writing, erasing, and reading data.
  • the memory unit (210) may be a nonvolatile memory capable of electrically writing and erasing and not requiring a refresh function for rewriting data at regular intervals.
  • the memory unit (210) may be a NAND flash memory.
  • the operation signal of the control unit (230) may correspond to the timing of the NAND flash memory constituting the memory unit (210). Here, the timing may be converted into different time periods depending on the operation type of the NAND flash memory.
  • the different time periods depending on the operation type of the NAND flash memory may include a time for loading data from a memory cell to a page register (read operation), a time for loading data from a page register to a memory cell (write operation), a time for erasing memory cells in block units (erase operation), etc.
  • the memory unit (210) may be a NOR (Not AND Read-Only memory) or an eMMC (embedded multimedia card) memory, and the type of memory is not limited thereto.
  • the power supply unit (220) of the data storage device (200) is connected to the output terminal of the conversion unit (110) to receive the output voltage of the conversion unit (110), stabilize the received output voltage, and supply a driving voltage to the memory unit (210).
  • the power supply unit (220) may be a PMIC (power management IC) that supplies the driving voltage to the memory unit (210).
  • the PMIC constituting the power supply unit (220) may be a power control module including a discrete power element module for power, a high-voltage power circuit, a low-voltage digital circuit, and high-voltage and low-voltage analog circuits, and may play a role in converting, distributing, charging, and controlling the input voltage input to the data storage device (200) to suit the memory unit (210).
  • a data storage device capable of stable booting without data loss even in the event of a power outage or power instability.
  • FIG. 2 is a block diagram of a data storage device according to one embodiment of the present invention
  • FIG. 3 is a block diagram of a data storage device according to another embodiment of the present invention
  • FIG. 4 is a flowchart of an operating method of a data storage device according to one embodiment of the present invention.
  • the data storage device (200) includes a memory unit (210), a power supply unit (not shown), and a control unit (230).
  • a memory unit (210) With respect to the memory unit (210), the power supply unit (not shown), and the control unit (230), duplicate descriptions of the same contents as those described with reference to FIG. 1 will be omitted.
  • the control unit (230) of the data storage device (200) includes a bootloader (231).
  • the bootloader (231) is executed, thereby allowing an operating system (OS) to be loaded.
  • OS operating system
  • the memory unit (210) of the data storage device (200) includes a plurality of memory units.
  • the memory unit (210) is illustrated and described in this specification as including a first memory unit (211) and a second memory unit (212), but is not limited thereto, and the memory unit (210) according to an embodiment of the present invention may include two or more plurality of memory units.
  • the memory unit (210) includes one NAND flash memory, and one NAND flash memory may include a plurality of dies. That is, in the embodiment of FIG. 2, the first memory unit (211) may be a first die, and the second memory unit (212) may be a second die.
  • a die may be a basic unit for storing data and may be configured as a semiconductor chip.
  • Each die may include a plurality of blocks.
  • Each block is a logical unit for storing data, and although not illustrated, each block may include a plurality of pages. Data erasure may be performed in units of blocks, and data writing may be performed in units of pages. Memory addresses may be assigned in units of pages.
  • FIG. 1 the embodiment of FIG.
  • the first memory unit (211) and the second memory unit (212) may be a first die and a second die included in one NOR memory.
  • the first memory unit (211) and the second memory unit (212) may be the first die and the second die included in one eMMC memory.
  • the memory unit (210) may include a plurality of NAND flash memories. That is, in the embodiment of FIG. 3, the first memory unit (211) may be used interchangeably with the first NAND flash memory, and the second memory unit (212) may be used interchangeably with the second NAND flash memory. As described above, each NAND flash memory includes a plurality of dies, each die includes a plurality of blocks, each block includes a plurality of pages, and memory addresses may be allocated in units of pages. Alternatively, in the embodiment of FIG. 3, the first memory unit (211) and the second memory unit (212) may be a first NOR memory and a second NOR memory. Alternatively, in the embodiment of FIG. 3, the first memory unit (211) and the second memory unit (212) may be a first eMMC memory and a second eMMC memory.
  • a first firmware is stored in a first memory unit (211), a second firmware is stored in a second memory unit (212), and the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) contain the same data.
  • Firmware is a program that operates on a specific hardware device and may refer to software that controls and manages the basic operation of the hardware device. Firmware may perform functions such as the operating method of the hardware device, input signal processing, data transmission, booting process, and error detection and correction. Firmware may be updated periodically or aperiodically. For example, new functions may be added to the firmware or the performance of the firmware may be improved through firmware updates.
  • Firmware may be updated periodically or aperiodically through wired communication, wireless communication, or an external storage device of the data storage device (200).
  • Wireless communication may be, for example, FOTA (Firmware Over The Air), and the external storage device may be, for example, a memory stick.
  • FOTA Firmware Over The Air
  • the second firmware stored in the second memory unit (212) when the first firmware stored in the first memory unit (211) operates as the main firmware, the second firmware stored in the second memory unit (212) can operate as the backup firmware, and when the second firmware stored in the second memory unit (212) operates as the main firmware, the first firmware stored in the first memory unit (211) can operate as the backup firmware. If the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) contain the same data, the main firmware and the backup firmware are not fixed and can be changed depending on the state of the memory unit (210).
  • the first firmware stored in the first memory unit (211) is not fixed as the main firmware
  • the second firmware stored in the second memory unit (212) is not fixed as the backup firmware, but depending on the state of the memory unit (210) or the control of the control unit (230), the first firmware stored in the first memory unit (211) may operate as the main firmware, or the second firmware stored in the second memory unit (212) may operate as the main firmware.
  • the first firmware that operated as the main firmware at the first time point may operate as the backup firmware at the second time point
  • the second firmware that operated as the backup firmware at the first time point may operate as the main firmware at the second time point.
  • the bootloader (231) within the control unit (230) is executed (S400)
  • the first firmware of the first memory unit (211) is executed as the main firmware (S410).
  • the firmware is software that controls or supports a hardware device, and when the firmware is executed, the system can be booted.
  • the second firmware stored in the second memory unit (212) is updated (S430).
  • the second firmware can be updated by referencing the data of the first firmware, which is the main firmware.
  • the second firmware can be updated in the same way as the data of the first firmware, which is the main firmware. Accordingly, the second firmware can serve as a backup firmware.
  • the update of step S430 may be performed repeatedly, periodically or aperiodically, after the successful booting of step S420. Accordingly, the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) may both contain the same latest data.
  • the booting in step S420 may fail. If the booting in step S420 fails, the second firmware in the second memory unit (212) is executed as the main firmware (S440). If the booting is successful as a result of executing the second firmware in the second memory unit (212) as the main firmware in step S440 (S450), the first firmware stored in the first memory unit (211) is recovered and updated (S460). To this end, the first firmware can be recovered and updated by referring to the data of the second firmware, which is the main firmware. Accordingly, the first firmware can serve as a backup firmware.
  • the recovery and update of step S460 may be performed repeatedly, periodically or aperiodically, after the successful booting of step S450. Accordingly, the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) may both contain the same latest data.
  • step S450 if the booting of step S450 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S470).
  • the bootloader (231) in the control unit (230) when executed, the first firmware of the first memory unit (211) or the second firmware of the second memory unit (212) is executed as the main firmware. At this time, which firmware among the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) will operate as the main firmware can be selected by a control signal.
  • control signal may mean a signal that the control unit (230) instructs the first memory unit (211) or the second memory unit (212) to determine which firmware to operate as the main firmware and which firmware to operate as the backup firmware.
  • control signal may mean a signal that the selection unit (240), the power supply unit (100), or the control unit (300) in the data storage device (200) instructs the control unit (230) to determine which firmware to operate as the main firmware and which firmware to operate as the backup firmware.
  • FIG. 5 is a flowchart illustrating an operating method of a data storage device according to another embodiment of the present invention. For convenience of explanation, duplicate descriptions of the same content as described with reference to Figures 1 to 4 are omitted.
  • the control unit (230) checks the settings regarding the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S510). As illustrated in FIGS. 2 and 3, the control unit (230) can receive the settings regarding the memory unit in which the firmware to be operated as the main firmware is stored from the selection unit (240). At this time, the selection unit (240) is connected to the control unit (230) and can store setting information in the memory unit in which the firmware to be operated as the main firmware is stored in the control unit (230).
  • the selection unit (240) may be included in the control unit (230) but may be an external component of the bootloader (231), included in the data storage device (200) but may be an external component of the control unit (230), or may be an external component of the data storage device (200).
  • the setting information stored in the selection unit (240) may not be fixed information.
  • the setting information stored in the selection unit (240) may be changed by the control unit (230) or by an external device (not shown).
  • the selection unit (240) may be a memory stick.
  • the control unit (230) may transmit a control signal to the memory unit (210) for executing the main firmware and updating the backup firmware according to the setting of the selection unit (240).
  • step S520 If it is confirmed as a result of the verification in step S510 that the memory section storing the firmware to be operated as the main firmware is set to the first memory section (211), the first firmware of the first memory section (211) is executed as the main firmware (S520).
  • the second firmware stored in the second memory unit (212) is updated with reference to the first firmware of the first memory unit (211) (S540).
  • booting may fail in step S530.
  • the control unit (230) modifies the setting of the selection unit (240) regarding the main firmware (S550). That is, the control unit (230) may reset the second firmware stored in the second memory unit (212) to the main firmware.
  • the control unit (230) may also transmit a control signal to control the selection unit (240) so that the selection unit (240) resets the second firmware stored in the second memory unit (212) to the main firmware.
  • the control unit (230) may transmit a control signal to the memory unit (210) for executing the main firmware and updating the backup firmware according to the reset.
  • the second firmware of the second memory unit (212) is executed as the main firmware (S560). If booting is successful as a result of executing the second firmware of the second memory unit (212) as the main firmware in step S560 (S570), the first firmware stored in the first memory unit (211) is recovered and updated by referring to the second firmware stored in the second memory unit (212) (S580).
  • step S570 if the booting of step S570 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S590).
  • the control section (230) can quickly execute the main firmware according to the setting information stored in advance in the selection section (240).
  • the setting information is reset to a memory section other than the corresponding memory section in the event of a booting failure, it is possible to quickly execute the main firmware according to the pre-stored reset information even at the next boot.
  • FIG. 6 is a flowchart illustrating an operating method of a data storage device according to another embodiment of the present invention. For convenience of explanation, duplicate descriptions of the same content as described with reference to Figures 1 to 5 are omitted.
  • the control unit (230) receives a control signal for the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S610).
  • the control signal may be an external input signal transmitted through a GPIO (general-purpose input/output).
  • the control signal may be transmitted from the power supply unit (100) illustrated in FIG. 1, from the control device (300) illustrated in FIG. 1, or from other external devices not illustrated in FIG. 1.
  • a boot start address may be indicated according to the control signal transmitted through the GPIO.
  • Table 1 is an example of control signals via GPIO
  • Table 2 is another example of control signals via GPIO.
  • booting when an L signal is input through GPIO 0, booting can start with an address assigned to the first memory unit (211), and when an H signal is input through GPIO, booting can start with an address assigned to the second memory unit (212). That is, when an L signal is input through GPIO 0, the first firmware stored in the first memory unit (211) can be executed as the main firmware, and when an H signal is input through GPIO 0, the second firmware stored in the second memory unit (212) can be executed as the main firmware.
  • the memory section (210) includes eight memory sections, for example, eight dies, and a control signal is input through three GPIOs, booting can be started with an address assigned to each memory section according to the “L” and “H” combination of the three GPIOs.
  • the address ranges allocated to each memory unit may be set so as not to overlap with each other.
  • the memory unit (210) is a single NAND flash memory
  • the first memory unit (211) and the second memory unit (212) are different dies included in the single NAND flash memory
  • the address ranges allocated to each die may be set so as not to overlap with each other.
  • the address range allocated to the first die that is the first memory unit (211) may be 0 to 2 N -1
  • the address range allocated to the second die that is the second memory unit (212) may be 2 N to 2 N+1 -1.
  • N may be a positive integer.
  • the memory unit (210) is an 8-bit memory and the memory unit (210) is composed of a first die, which is a first memory unit (211), and a second die, which is a second memory unit (212), an address in the range of 0 to 2047 may be assigned to the first die, which is the first memory unit (211), and an address in the range of 2048 to 4095 may be assigned to the second die, which is the second memory unit (212).
  • the address ranges assigned to each die are set so as not to overlap each other, the boot start address is determined according to the control signal indicated through the GPIO, and the booting process can be sequentially performed within the corresponding address range from the boot start address. Accordingly, even if some dies are damaged due to a power outage or power instability, the other dies can quickly perform the function of the main firmware and boot.
  • the first firmware of the first memory unit (211) is executed as the main firmware (S620).
  • the main firmware S620.
  • the memory unit (210) is an 8-bit memory and is composed of a first die, which is the first memory unit (211), and a second die, which is the second memory unit (212), booting can be performed sequentially from a boot start address of 0 among the address range of 0 to 2047 assigned to the first memory unit (211).
  • the second firmware stored in the second memory unit (212) is updated with reference to the first firmware stored in the first memory unit (211) (S640).
  • booting may fail in step S630. If the booting in step S630 fails, the control unit (230) again receives a control signal for the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S650), and the second firmware of the second memory unit (212) is executed as the main firmware (S660). For example, booting may be performed sequentially from the boot start address 2048 among the address range 2048 to 4095 allocated to the second memory unit (212). In another embodiment of the present invention, step S650 may be omitted, and if the booting in step S630 fails, step S660 may be automatically executed.
  • booting may be performed sequentially from the boot start address 2048 among the address range allocated to the second memory unit (212). If booting is successful as a result of executing the second firmware of the second memory unit (212) as the main firmware in step S660 (S670), the first firmware stored in the first memory unit (211) is recovered and updated by referring to the second firmware stored in the second memory unit (212) (S680).
  • step S670 if the booting of step S670 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S690).
  • each die can operate as either the main firmware or the backup firmware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

An operating method of a data storage device, according to one embodiment of the present invention, comprises the steps of: receiving a control signal that instructs either first firmware stored in a first memory unit or second firmware stored in a second memory unit to operate as main firmware; executing the first firmware as the main firmware according to the control signal; updating the second firmware with reference to the first firmware when booting resulting from the execution of the first firmware as the main firmware is successful; executing the second firmware as the main firmware when booting resulting from the execution of the first firmware as the main firmware fails; and updating the first firmware with reference to the second firmware when booting resulting from the execution of the second firmware as the main firmware is successful.

Description

데이터 저장 장치 및 그의 동작 방법Data storage device and method of operation thereof

본 발명은 데이터 저장 장치 및 그의 동작 방법에 관한 것이다.The present invention relates to a data storage device and an operating method thereof.

데이터 저장 장치는 전자기기, 통신, 차량, 네트워크, 텔레매틱스 등 다양한 기술분야에 광범위하게 사용된다. 특히, NAND 플래시 메모리는 NAND 기반 데이터 저장 장치의 일 예이며, 비휘발성 메모리이다.Data storage devices are widely used in various technological fields, including electronics, communications, vehicles, networks, and telematics. In particular, NAND flash memory is an example of a NAND-based data storage device and is a non-volatile memory.

NAND 플래시 메모리에 대한 전원 순단이 발생하거나, 전원이 불안정하게 공급될 경우, 메모리 내 데이터가 손상을 입을 수 있다. 예를 들어, 기록(write)/소거(erase) 진행 중 NAND 플래시 메모리에 대한 전원 순단이 발생한 경우, 데이터가 정상적으로 저장되지 않고 깨질 수 있다. 특히, 기록(write)/소거(erase) 진행 중이던 블록의 일부는 백업 후 복구가 가능하지만, 일부 블록은 복구가 어려울 수도 있다.If a power interruption or unstable power supply occurs to NAND flash memory, data within the memory may be corrupted. For example, if a power interruption occurs during a write/erase operation, data may not be saved properly and may become corrupted. Specifically, while some blocks undergoing write/erase operations can be recovered after backup, some blocks may be difficult to recover.

NAND 플래시 메모리를 포함하는 임베디드 시스템에 전원 순단이 발생한 경우, 시스템의 부팅이 어려워질 수 있으며, 시스템의 신뢰성이 낮아질 수 있다. 이에 따라, 전원 순단 시에도 시스템의 신뢰성을 유지하며 안정적으로 부팅할 수 있는 방법이 필요하다.When a power outage occurs in an embedded system containing NAND flash memory, the system may struggle to boot and its reliability may be compromised. Therefore, a method is needed to maintain system reliability and ensure stable booting even during a power outage.

본 발명이 이루고자 하는 기술적 과제는 전원 순단 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치 및 그의 동작 방법을 제공하는 데 있다.The technical problem to be achieved by the present invention is to provide a data storage device and an operating method thereof that can stably boot without data loss even when power is cut off.

본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법은 제1 메모리부에 저장된 제1 펌웨어 및 제2 메모리부에 저장된 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하는 단계, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 상기 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하는 단계, 그리고 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하는 단계를 포함한다.A method of operating a data storage device according to one embodiment of the present invention includes the steps of: receiving a control signal instructing one of first firmware stored in a first memory unit and second firmware stored in a second memory unit to operate as a main firmware; executing the first firmware as the main firmware according to the control signal; if booting is successful as a result of executing the first firmware as the main firmware, updating the second firmware with reference to the first firmware; if booting fails as a result of executing the first firmware as the main firmware, executing the second firmware as the main firmware; and if booting is successful as a result of executing the second firmware as the main firmware, updating the first firmware with reference to the second firmware.

상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)일 수 있다.The first memory unit and the second memory unit may be different dies included in one NAND flash memory.

상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않을 수 있다.The address range allocated to the first memory section may not overlap with the address range allocated to the second memory section.

상기 제1 펌웨어가 메인 펌웨어로 동작할 때 상기 제1 메모리부에 할당된 어드레스 구간 내 제1 부트 시작 어드레스로부터 부팅이 실행되고, 상기 제2 펌웨어가 메인 펌웨어로 동작할 때 상기 제2 메모리부에 할당된 어드레스 구간 내 제2 부트 시작 어드레스로부터 부팅이 실행될 수 있다.When the first firmware operates as the main firmware, booting may be executed from a first boot start address within an address range allocated to the first memory section, and when the second firmware operates as the main firmware, booting may be executed from a second boot start address within an address range allocated to the second memory section.

상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1일 수 있다.The address range allocated to the first memory unit may be 0 to 2 N -1, and the address range allocated to the second memory unit may be 2 N to 2 N+1 -1.

상기 제어 신호는 적어도 하나의 GPIO(general purpose input output)를 통하여 수신될 수 있다.The above control signal can be received through at least one GPIO (general purpose input output).

본 발명의 한 실시예에 따른 데이터 저장 장치는 제1 펌웨어를 저장하는 제1 메모리부, 제2 펌웨어를 저장하는 제2 메모리부, 그리고 제어부를 포함하고, 상기 제어부는, 상기 제1 펌웨어 및 상기 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하면, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하고, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하고, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하며, 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하도록 설정된다.A data storage device according to one embodiment of the present invention includes a first memory unit for storing a first firmware, a second memory unit for storing a second firmware, and a control unit, wherein the control unit is configured to, when receiving a control signal instructing either the first firmware or the second firmware to operate as a main firmware, execute the first firmware as the main firmware according to the control signal, and, if booting is successful as a result of executing the first firmware as the main firmware, update the second firmware with reference to the first firmware, and, if booting fails as a result of executing the first firmware as the main firmware, execute the second firmware as the main firmware, and, if booting is successful as a result of executing the second firmware as the main firmware, update the first firmware with reference to the second firmware.

본 발명의 실시예에 따르면, 전원 순단 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치 및 그의 동작 방법을 얻을 수 있다. 특히, 본 발명의 실시예에 따르면, 메모리의 용량 또는 메모리의 물리적인 크기를 증가시키지 않고도, 전원 순단 시 손실된 데이터를 복구하는 것이 가능하다. 또한, 본 발명의 실시예에 따르면, 데이터 저장 장치의 정상적인 동작과 동시에 백업 데이터의 업데이트가 가능하다.According to embodiments of the present invention, a data storage device capable of stable booting without data loss even during a power outage and an operating method thereof can be obtained. In particular, according to embodiments of the present invention, it is possible to recover data lost during a power outage without increasing the memory capacity or physical size. Furthermore, according to embodiments of the present invention, backup data can be updated simultaneously with the normal operation of the data storage device.

도 1은 본 발명의 한 실시예에 따른 데이터 저장 장치를 포함하는 시스템의 블록도이다.FIG. 1 is a block diagram of a system including a data storage device according to one embodiment of the present invention.

도 2는 본 발명의 한 실시예에 따른 데이터 저장 장치의 블록도이다.FIG. 2 is a block diagram of a data storage device according to one embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른 데이터 저장 장치의 블록도이다Figure 3 is a block diagram of a data storage device according to another embodiment of the present invention.

도 4는 본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법의 순서도이다.FIG. 4 is a flowchart of an operating method of a data storage device according to one embodiment of the present invention.

도 5는 본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다.FIG. 5 is a flowchart of an operating method of a data storage device according to another embodiment of the present invention.

도 6은 본 발명의 또 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다.Figure 6 is a flowchart of an operating method of a data storage device according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the attached drawings.

다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.However, the technical idea of the present invention is not limited to some of the embodiments described, but can be implemented in various different forms, and within the scope of the technical idea of the present invention, one or more of the components between the embodiments can be selectively combined or substituted for use.

또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.In addition, terms (including technical and scientific terms) used in the embodiments of the present invention may be interpreted as having a meaning that can be generally understood by a person of ordinary skill in the technical field to which the present invention belongs, unless explicitly and specifically defined and described, and terms that are commonly used, such as terms defined in a dictionary, may be interpreted in consideration of the contextual meaning of the relevant technology.

또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.Additionally, the terms used in the embodiments of the present invention are intended to describe the embodiments and are not intended to limit the present invention.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.In this specification, the singular may also include the plural unless specifically stated otherwise in the phrase, and when it is described as “A and/or at least one (or more) of B, C”, it may include one or more of all combinations that can be combined with A, B, C.

또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.Additionally, in describing components of embodiments of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used.

이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.These terms are intended only to distinguish one component from another, and are not intended to limit the nature, order, or sequence of the component.

그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.And, when a component is described as being 'connected', 'coupled' or 'connected' to another component, it may include not only cases where the component is directly connected, coupled or connected to the other component, but also cases where the component is 'connected', 'coupled' or 'connected' by another component between the component and the other component.

또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.Additionally, when described as being formed or arranged "above or below" each component, "above" or "below" includes not only cases where the two components are in direct contact with each other, but also cases where one or more other components are formed or arranged between the two components. Furthermore, when expressed as "above" or "below", it can include the meaning of a downward direction as well as an upward direction based on one component.

이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. Regardless of the drawing numbers, identical or corresponding components are given the same reference numbers, and redundant descriptions thereof will be omitted.

도 1은 본 발명의 한 실시예에 따른 데이터 저장 장치를 포함하는 시스템의 블록도이다.FIG. 1 is a block diagram of a system including a data storage device according to one embodiment of the present invention.

도 1을 참조하면, 본 발명의 한 실시예에 따른 시스템(10)은 전원 장치(100) 및 데이터 저장 장치(200)를 포함한다. Referring to FIG. 1, a system (10) according to one embodiment of the present invention includes a power supply (100) and a data storage device (200).

전원 장치(100)는 변환부(110), 입력 전압 검출부(120) 및 검출 신호 전달부(130)를 포함할 수 있다. 변환부(110)는 주 전원(main power)에 해당하는 입력 전압을 수신하며, 수신한 입력 전압을 데이터 저장 장치(200)의 각 구성 요소에서 요구되는 전압으로 변환하여 출력할 수 있다. 더욱 구체적으로, 변환부(110)는 레귤레이터(regulator)로 구현될 수 있다. 레귤레이터는 입력단을 통해 입력 전압을 수신하고, 출력단을 통해 출력 전압을 출력할 수 있다. 레귤레이터의 출력 전압은 데이터 저장 장치(200)의 구동 전압일 수 있다. 레귤레이터는 입력 전압을 안정화하여 출력함으로써 데이터 저장 장치(200)에 안정적인 구동 전압을 구동할 수 있다.The power supply (100) may include a conversion unit (110), an input voltage detection unit (120), and a detection signal transmission unit (130). The conversion unit (110) may receive an input voltage corresponding to the main power, and may convert the received input voltage into a voltage required by each component of the data storage device (200) and output the converted voltage. More specifically, the conversion unit (110) may be implemented as a regulator. The regulator may receive an input voltage through an input terminal and output an output voltage through an output terminal. The output voltage of the regulator may be a driving voltage of the data storage device (200). The regulator may stabilize the input voltage and output it, thereby driving a stable driving voltage to the data storage device (200).

입력 전압 검출부(120)는 주전원으로 공급되는 입력 전압의 크기를 검출하고, 이에 따른 검출 신호를 출력할 수 있다. 예를 들어, 입력 전압 검출부(120)는 비교기를 포함할 수 있으며, 입력 전압과 기준 신호 간 비교 결과에 따라 검출 신호를 출력할 수 있다. 검출 신호 전달부(130)는 입력 전압 검출부(120)로부터 출력된 검출 신호를 데이터 저장 장치(200)에 전달할 수 있다. 도시되지 않았으나, 검출 신호 전달부(130)는 검출 신호가 가지는 높은 전압을 데이터 저장 장치(200)의 제어부(230)에서 수신할 수 있는 수준의 낮은 전압으로 변환하여 출력하는 논리 회로를 포함할 수 있다.The input voltage detection unit (120) can detect the magnitude of the input voltage supplied to the main power source and output a detection signal accordingly. For example, the input voltage detection unit (120) can include a comparator and output a detection signal according to the comparison result between the input voltage and a reference signal. The detection signal transmission unit (130) can transmit the detection signal output from the input voltage detection unit (120) to the data storage device (200). Although not shown, the detection signal transmission unit (130) can include a logic circuit that converts the high voltage of the detection signal into a low voltage that can be received by the control unit (230) of the data storage device (200) and outputs it.

데이터 저장 장치(200)는 전원 장치(100)로부터 입력되는 전압을 구동 전압으로 하여 동작할 수 있다. 데이터 저장 장치(200)는 제어 장치(300)와 통신을 수행하고, 제어 장치(300)로부터 전달되는 데이터를 저장할 수 있다. 즉, 데이터 저장 장치(200)는 제어 장치(300)와 통신을 하며, 제어 장치(300)로부터 수신한 제어 신호를 저장할 수 있다. 예를 들어, 데이터 저장 장치(200)는 차량 내에 배치되며, 제어 장치(300)는 차량을 제어하는 차량 제어 장치일 수 있으나, 이로 제한되는 것은 아니다. 본 발명의 실시예에 따른 데이터 저장 장치(200)는 전자기기, 통신, 차량, 네트워크, 텔레매틱스 등 다양한 기술분야에 적용될 수 있으며, 제어 장치(300)는 본 발명의 실시예에 따른 데이터 저장 장치(200)가 탑재되는 시스템을 제어하는 장치일 수 있다.The data storage device (200) can operate using the voltage input from the power supply device (100) as the driving voltage. The data storage device (200) can communicate with the control device (300) and store data transmitted from the control device (300). That is, the data storage device (200) can communicate with the control device (300) and store a control signal received from the control device (300). For example, the data storage device (200) may be placed in a vehicle, and the control device (300) may be a vehicle control device that controls the vehicle, but is not limited thereto. The data storage device (200) according to an embodiment of the present invention may be applied to various technical fields such as electronic devices, communications, vehicles, networks, and telematics, and the control device (300) may be a device that controls a system in which the data storage device (200) according to an embodiment of the present invention is mounted.

본 발명의 실시예에 따른 데이터 저장 장치(200)는 메모리부(210), 전원 공급부(220) 및 제어부(230)를 포함한다. 제어부(230)는 메모리부(210)를 제어하며, CPU(central processing unit)과 혼용될 수 있다. 제어부(230)는 메모리부(210)로부터 동작 신호를 수신한 후, 이에 기반하여 메모리부(210)에 액세스할 수 있다. 동작 신호는, 예를 들어 Ready output signal 및 Busy output signal일 수 있다.A data storage device (200) according to an embodiment of the present invention includes a memory unit (210), a power supply unit (220), and a control unit (230). The control unit (230) controls the memory unit (210) and may be used interchangeably with a central processing unit (CPU). The control unit (230) receives an operation signal from the memory unit (210) and accesses the memory unit (210) based on the operation signal. The operation signal may be, for example, a Ready output signal and a Busy output signal.

본 발명의 실시예에 따르면, 메모리부(210)는 데이터의 기록, 소거 및 읽기가 가능한 비휘발성 메모리일 수 있다. 예를 들어, 메모리부(210)는 전기적으로 기록 및 소거가 가능하며, 일정 주기로 데이터를 재작성하는 리프레시 기능이 필요 없는 비휘발성 메모리일 수 있다. 예를 들어, 메모리부(210)는 NAND 플래시 메모리일 수 있다. 제어부(230)의 동작 신호는 메모리부(210)를 구성하는 NAND 플래시 메모리의 타이밍에 대응할 수 있다. 여기서, 타이밍은 NAND 플래시 메모리의 동작 타입에 따라 다른 시간 주기로 변환될 수 있다. 예를 들어, NAND 플래시 메모리의 동작 타입에 따라 다른 시간 주기는 메모리 셀로부터 페이지 레지스터로 데이터를 로딩하는 시간(리딩 동작), 페이지 레지스터로부터 메모리 셀로 데이터를 로딩하는 시간(기록 동작), 블록 단위로 메모리 셀들을 소거하는 시간(소거 동작) 등을 포함할 수 있다.According to an embodiment of the present invention, the memory unit (210) may be a nonvolatile memory capable of writing, erasing, and reading data. For example, the memory unit (210) may be a nonvolatile memory capable of electrically writing and erasing and not requiring a refresh function for rewriting data at regular intervals. For example, the memory unit (210) may be a NAND flash memory. The operation signal of the control unit (230) may correspond to the timing of the NAND flash memory constituting the memory unit (210). Here, the timing may be converted into different time periods depending on the operation type of the NAND flash memory. For example, the different time periods depending on the operation type of the NAND flash memory may include a time for loading data from a memory cell to a page register (read operation), a time for loading data from a page register to a memory cell (write operation), a time for erasing memory cells in block units (erase operation), etc.

또는, 메모리부(210)는 NOR(Not AND Read-Only 메모리이거나, eMMC(embedded multimedia card) 메모리일 수도 있으며, 메모리의 종류가 이로 제한되는 것은 아니다.Alternatively, the memory unit (210) may be a NOR (Not AND Read-Only memory) or an eMMC (embedded multimedia card) memory, and the type of memory is not limited thereto.

데이터 저장 장치(200)의 전원 공급부(220)는 변환부(110)의 출력단과 연결되어 변환부(110)의 출력 전압을 수신하고, 수신한 출력 전압을 안정화하여 메모리부(210)에 구동 전압을 공급할 수 있다. 전원 공급부(220)는 메모리부(210)에 구동 전압을 공급하는 PMIC(power management IC)일 수 있다. 전원 공급부(220)를 구성하는 PMIC는 전력용 디스크리트 파워 소자 모듈과 고전압 파워 회로, 저전압 디지털 회로, 고전압 및 저전압 아날로그 회로를 포함하는 전원 제어 모듈일 수 있으며, 데이터 저장 장치(200)에 입력된 입력 전압을 메모리부(210)에 맞게 변환, 분배, 충전 및 제어하는 역할을 할 수 있다.The power supply unit (220) of the data storage device (200) is connected to the output terminal of the conversion unit (110) to receive the output voltage of the conversion unit (110), stabilize the received output voltage, and supply a driving voltage to the memory unit (210). The power supply unit (220) may be a PMIC (power management IC) that supplies the driving voltage to the memory unit (210). The PMIC constituting the power supply unit (220) may be a power control module including a discrete power element module for power, a high-voltage power circuit, a low-voltage digital circuit, and high-voltage and low-voltage analog circuits, and may play a role in converting, distributing, charging, and controlling the input voltage input to the data storage device (200) to suit the memory unit (210).

본 발명의 실시예에 따르면, 전원 순단 또는 전원 불안정 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치를 얻고자 한다.According to an embodiment of the present invention, it is desired to obtain a data storage device capable of stable booting without data loss even in the event of a power outage or power instability.

도 2는 본 발명의 한 실시예에 따른 데이터 저장 장치의 블록도이고, 도 3은 본 발명의 다른 실시예에 따른 데이터 저장 장치의 블록도이며, 도 4는 본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법의 순서도이다.FIG. 2 is a block diagram of a data storage device according to one embodiment of the present invention, FIG. 3 is a block diagram of a data storage device according to another embodiment of the present invention, and FIG. 4 is a flowchart of an operating method of a data storage device according to one embodiment of the present invention.

도 2 및 도 3을 참조하면, 데이터 저장 장치(200)는 메모리부(210), 전원 공급부(미도시) 및 제어부(230)를 포함한다. 메모리부(210), 전원 공급부(미도시) 및 제어부(230)와 관련하여 도 1을 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.Referring to FIGS. 2 and 3, the data storage device (200) includes a memory unit (210), a power supply unit (not shown), and a control unit (230). With respect to the memory unit (210), the power supply unit (not shown), and the control unit (230), duplicate descriptions of the same contents as those described with reference to FIG. 1 will be omitted.

본 발명의 실시예에 따르면, 데이터 저장 장치(200)의 제어부(230)는 부트로더(bootloader, 231)를 포함한다. 데이터 저장 장치(200)에 전원이 들어오면, 부트로더(231)가 실행되며, 이에 따라 운영체제(operating system, OS)가 로드될 수 있다.According to an embodiment of the present invention, the control unit (230) of the data storage device (200) includes a bootloader (231). When power is supplied to the data storage device (200), the bootloader (231) is executed, thereby allowing an operating system (OS) to be loaded.

본 발명의 실시예에 따르면, 데이터 저장 장치(200)의 메모리부(210)는 복수의 메모리부를 포함한다. 설명의 편의를 위하여, 본 명세서에서는 메모리부(210)가 제1 메모리부(211) 및 제2 메모리부(212)를 포함하는 것으로 도시 및 설명하고 있으나, 이로 제한되는 것은 아니며, 본 발명의 실시예에 따른 메모리부(210)는 2 이상의 복수의 메모리부를 포함할 수 있다.According to an embodiment of the present invention, the memory unit (210) of the data storage device (200) includes a plurality of memory units. For convenience of explanation, the memory unit (210) is illustrated and described in this specification as including a first memory unit (211) and a second memory unit (212), but is not limited thereto, and the memory unit (210) according to an embodiment of the present invention may include two or more plurality of memory units.

도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리부(210)는 하나의 NAND 플래시 메모리를 포함하며, 하나의 NAND 플래시 메모리는 복수의 다이(Die)를 포함할 수 있다. 즉, 도 2의 실시예에서 제1 메모리부(211)는 제1 다이(Die)이고, 제2 메모리부(212)는 제2 다이(Die)일 수 있다. 다이는 데이터를 저장하는 기본 단위일 수 있고, 반도체 칩으로 구성될 수 있다. 각 다이는 복수의 블록을 포함할 수 있다. 각 블록은 데이터를 저장하는 논리적 단위이며, 도시되지 않았으나 각 블록은 복수의 페이지(page)를 포함할 수 있다. 데이터의 소거는 블록 단위로 수행될 수 있고, 데이터의 기록은 페이지 단위로 수행될 수 있다. 메모리 어드레스는 페이지 단위로 할당될 수 있다. 또는, 도 2의 실시예에서 제1 메모리부(211) 및 제2 메모리부(212)는 하나의 NOR 메모리에 포함된 제1 다이 및 제2 다이일 수도 있다. 또는, 도 2의 실시예에서 제1 메모리부(211) 및 제2 메모리부(212)는 하나의 eMMC 메모리에 포함된 제1 다이 및 제2 다이일 수도 있다. As illustrated in FIG. 2, the memory unit (210) according to the embodiment of the present invention includes one NAND flash memory, and one NAND flash memory may include a plurality of dies. That is, in the embodiment of FIG. 2, the first memory unit (211) may be a first die, and the second memory unit (212) may be a second die. A die may be a basic unit for storing data and may be configured as a semiconductor chip. Each die may include a plurality of blocks. Each block is a logical unit for storing data, and although not illustrated, each block may include a plurality of pages. Data erasure may be performed in units of blocks, and data writing may be performed in units of pages. Memory addresses may be assigned in units of pages. Alternatively, in the embodiment of FIG. 2, the first memory unit (211) and the second memory unit (212) may be a first die and a second die included in one NOR memory. Alternatively, in the embodiment of FIG. 2, the first memory unit (211) and the second memory unit (212) may be the first die and the second die included in one eMMC memory.

또는, 도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리부(210)는 복수의 NAND 플래시 메모리를 포함할 수 있다. 즉, 도 3의 실시예에서 제1 메모리부(211)는 제1 NAND 플래시 메모리와 혼용될 수 있고, 제2 메모리부(212)는 제2 NAND 플래시 메모리와 혼용될 수 있다. 전술한 바와 같이, 각 NAND 플래시 메모리는 복수의 다이를 포함하고, 각 다이는 복수의 블록을 포함하며, 각 블록은 복수의 페이지를 포함하고, 메모리 어드레스는 페이지 단위로 할당될 수 있다. 또는, 도 3의 실시예에서 제1 메모리부(211) 및 제2 메모리부(212)는 제1 NOR 메모리 및 제2 NOR 메모리일 수도 있다. 또는, 도 3의 실시예에서 제1 메모리부(211) 및 제2 메모리부(212)는 제1 eMMC 메모리 및 제2 eMMC 메모리일 수도 있다.Alternatively, as illustrated in FIG. 3, the memory unit (210) according to the embodiment of the present invention may include a plurality of NAND flash memories. That is, in the embodiment of FIG. 3, the first memory unit (211) may be used interchangeably with the first NAND flash memory, and the second memory unit (212) may be used interchangeably with the second NAND flash memory. As described above, each NAND flash memory includes a plurality of dies, each die includes a plurality of blocks, each block includes a plurality of pages, and memory addresses may be allocated in units of pages. Alternatively, in the embodiment of FIG. 3, the first memory unit (211) and the second memory unit (212) may be a first NOR memory and a second NOR memory. Alternatively, in the embodiment of FIG. 3, the first memory unit (211) and the second memory unit (212) may be a first eMMC memory and a second eMMC memory.

본 발명의 실시예에 따르면, 제1 메모리부(211)에는 제1 펌웨어가 저장되고, 제2 메모리부(212)에는 제2 펌웨어가 저장되며, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 동일한 데이터를 포함한다. 펌웨어는 특정 하드웨어 장치에서 동작하는 프로그램으로, 하드웨어 장치의 기본적인 동작을 제어하고 관리하는 소프트웨어를 의미할 수 있다. 펌웨어는 하드웨어 장치의 동작 방식, 입력 신호 처리, 데이터 전송, 부팅 과정, 오류 감지 수정 등의 기능을 수행할 수 있다. 펌웨어는 주기적 또는 비주기적으로 업데이트될 수 있다. 예를 들어, 펌웨어의 업데이트를 통해 펌웨어에 새로운 기능이 추가되거나, 펌웨어의 성능이 향상될 수 있다. 펌웨어는 데이터 저장 장치(200)의 유선 통신, 무선 통신 또는 외부 저장 장치를 통하여 주기적 또는 비주기적으로 업데이트될 수 있다. 무선 통신은, 예를 들어 FOTA(Firmware Over The Air)일 수 있고, 외부 저장 장치는, 예를 들어 메모리 스틱일 수 있다.According to an embodiment of the present invention, a first firmware is stored in a first memory unit (211), a second firmware is stored in a second memory unit (212), and the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) contain the same data. Firmware is a program that operates on a specific hardware device and may refer to software that controls and manages the basic operation of the hardware device. Firmware may perform functions such as the operating method of the hardware device, input signal processing, data transmission, booting process, and error detection and correction. Firmware may be updated periodically or aperiodically. For example, new functions may be added to the firmware or the performance of the firmware may be improved through firmware updates. Firmware may be updated periodically or aperiodically through wired communication, wireless communication, or an external storage device of the data storage device (200). Wireless communication may be, for example, FOTA (Firmware Over The Air), and the external storage device may be, for example, a memory stick.

본 발명의 실시예에 따르면, 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 동작할 때, 제2 메모리부(212)에 저장된 제2 펌웨어는 백업 펌웨어로 동작할 수 있고, 제2 메모리부(212)에 저장된 제2 펌웨어가 메인 펌웨어로 동작할 때, 제1 메모리부(211)에 저장된 제1 펌웨어는 백업 펌웨어로 동작할 수 있다. 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 동일한 데이터를 포함하면, 메인 펌웨어와 백업 펌웨어가 고정되지 않고 메모리부(210)의 상태에 따라 변경될 수 있다. 즉, 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 고정되고, 제2 메모리부(212)에 저장된 제2 펌웨어가 백업 펌웨어로 고정된 것이 아니라, 메모리부(210)의 상태 또는 제어부(230)의 제어에 따라 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 동작하거나, 제2 메모리부(212)에 저장된 제2 펌웨어가 메인 펌웨어로 동작할 수 있으며, 제1 시점에서 메인 펌웨어로 동작하던 제1 펌웨어가 제2 시점에서는 백업 펌웨어로 동작하고, 제1 시점에서 백업 펌웨어로 동작하던 제2 펌웨어가 제2 시점에서는 메인 펌웨어로 동작할 수도 있다.According to an embodiment of the present invention, when the first firmware stored in the first memory unit (211) operates as the main firmware, the second firmware stored in the second memory unit (212) can operate as the backup firmware, and when the second firmware stored in the second memory unit (212) operates as the main firmware, the first firmware stored in the first memory unit (211) can operate as the backup firmware. If the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) contain the same data, the main firmware and the backup firmware are not fixed and can be changed depending on the state of the memory unit (210). That is, the first firmware stored in the first memory unit (211) is not fixed as the main firmware, and the second firmware stored in the second memory unit (212) is not fixed as the backup firmware, but depending on the state of the memory unit (210) or the control of the control unit (230), the first firmware stored in the first memory unit (211) may operate as the main firmware, or the second firmware stored in the second memory unit (212) may operate as the main firmware. The first firmware that operated as the main firmware at the first time point may operate as the backup firmware at the second time point, and the second firmware that operated as the backup firmware at the first time point may operate as the main firmware at the second time point.

도 2 내지 도 4를 참조하면, 제어부(230) 내 부트로더(231)가 실행되면(S400), 제1 메모리부(211)의 제1 펌웨어가 메인 펌웨어로 실행된다(S410). 여기서, 펌웨어는 하드웨어 장치를 제어하거나 지원하는 소프트웨어이며, 펌웨어가 실행되면 시스템이 부팅될 수 있다.Referring to FIGS. 2 to 4, when the bootloader (231) within the control unit (230) is executed (S400), the first firmware of the first memory unit (211) is executed as the main firmware (S410). Here, the firmware is software that controls or supports a hardware device, and when the firmware is executed, the system can be booted.

단계 S410에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S420), 제2 메모리부(212)에 저장된 제2 펌웨어가 업데이트된다(S430). 이때, 제2 펌웨어는 메인 펌웨어인 제1 펌웨어의 데이터를 참조하여 업데이트될 수 있다. 제2 펌웨어는 메인 펌웨어인 제1 펌웨어의 데이터와 동일하게 업데이트될 수 있다. 이에 따라, 제2 펌웨어는 백업 펌웨어의 역할을 할 수 있다.If booting is successful as a result of executing the first firmware of the first memory unit (211) as the main firmware in step S410 (S420), the second firmware stored in the second memory unit (212) is updated (S430). At this time, the second firmware can be updated by referencing the data of the first firmware, which is the main firmware. The second firmware can be updated in the same way as the data of the first firmware, which is the main firmware. Accordingly, the second firmware can serve as a backup firmware.

본 발명의 실시예에 따르면, 단계 S430의 업데이트는 단계 S420의 부팅 성공 후 주기적 또는 비주기적으로 반복하여 수행될 수 있다. 이에 따르면, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 모두 동일한 최신 데이터를 포함할 수 있다.According to an embodiment of the present invention, the update of step S430 may be performed repeatedly, periodically or aperiodically, after the successful booting of step S420. Accordingly, the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) may both contain the same latest data.

한편, 제1 메모리부(211) 또는 제1 메모리부(211)의 제1 펌웨어가 손상된 경우, 단계 S420의 부팅이 실패할 수 있다. 단계 S420의 부팅이 실패하면, 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다(S440). 단계 S440에서 제2 메모리부(212)의 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S450), 제1 메모리부(211)에 저장된 제1 펌웨어가 복구 및 업데이트된다(S460). 이를 위하여, 제1 펌웨어는 메인 펌웨어인 제2 펌웨어의 데이터를 참조하여 복구 및 업데이트될 수 있다. 이에 따라, 제1 펌웨어는 백업 펌웨어의 역할을 할 수 있다.Meanwhile, if the first memory unit (211) or the first firmware of the first memory unit (211) is damaged, the booting in step S420 may fail. If the booting in step S420 fails, the second firmware in the second memory unit (212) is executed as the main firmware (S440). If the booting is successful as a result of executing the second firmware in the second memory unit (212) as the main firmware in step S440 (S450), the first firmware stored in the first memory unit (211) is recovered and updated (S460). To this end, the first firmware can be recovered and updated by referring to the data of the second firmware, which is the main firmware. Accordingly, the first firmware can serve as a backup firmware.

본 발명의 실시예에 따르면, 단계 S460의 복구 및 업데이트는 단계 S450의 부팅 성공 후 주기적 또는 비주기적으로 반복하여 수행될 수 있다. 이에 따르면, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 모두 동일한 최신 데이터를 포함할 수 있다.According to an embodiment of the present invention, the recovery and update of step S460 may be performed repeatedly, periodically or aperiodically, after the successful booting of step S450. Accordingly, the first firmware stored in the first memory unit (211) and the second firmware stored in the second memory unit (212) may both contain the same latest data.

다만, 단계 S450의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S470).However, if the booting of step S450 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S470).

이와 같이, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 중 하나가 메인 펌웨어로 동작하고, 다른 하나가 메인 펌웨어의 데이터를 참조하여 복구 및 업데이트되면, 전원 순단 또는 전원 불안정에 의해 두 개의 메모리부 중 하나가 손상되더라도, 나머지 메모리부를 통하여 부팅 및 복구가 가능하며, 메인 펌웨어로 동작하는 제1 메모리부(211)에 영향을 미치지 않고 제2 메모리부(212)의 백업 펌웨어를 업데이트하는 것이 가능하다. 특히, 제1 메모리부(211) 및 제2 메모리부(212)가 하나의 NAND 플래시 메모리에 포함된 제1 다이 및 제2 다이인 경우, 물리적인 공간을 추가하지 않고도 2개의 NAND 플래시 메모리를 사용하는 효과를 얻을 수 있다.In this way, if one of the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) operates as the main firmware, and the other is recovered and updated by referencing the data of the main firmware, even if one of the two memory units is damaged due to a power outage or power instability, booting and recovery are possible through the remaining memory unit, and it is possible to update the backup firmware of the second memory unit (212) without affecting the first memory unit (211) operating as the main firmware. In particular, if the first memory unit (211) and the second memory unit (212) are the first die and the second die included in one NAND flash memory, the effect of using two NAND flash memories can be obtained without adding physical space.

본 발명의 실시예에 따르면, 제어부(230) 내 부트로더(231)가 실행되면, 제1 메모리부(211)의 제1 펌웨어 또는 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다. 이때, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 중 어느 펌웨어가 메인 펌웨어로 동작할지는 제어 신호에 의해 선택될 수 있다.According to an embodiment of the present invention, when the bootloader (231) in the control unit (230) is executed, the first firmware of the first memory unit (211) or the second firmware of the second memory unit (212) is executed as the main firmware. At this time, which firmware among the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) will operate as the main firmware can be selected by a control signal.

본 명세서에서, 제어 신호는 제어부(230)가 제1 메모리부(211) 또는 제2 메모리부(212)에게 어느 펌웨어가 메인 펌웨어로 동작하고 어느 펌웨어가 백업 펌웨어로 동작할지를 지시하는 신호를 의미할 수 있다. 또는, 제어 신호는 데이터 저장 장치(200) 내의 선택부(240), 전원 장치(100) 또는 제어 장치(300)가 제어부(230)에게 어느 펌웨어가 메인 펌웨어로 동작하고 어느 펌웨어가 백업 펌웨어로 동작할지를 지시하는 신호를 의미할 수도 있다.In this specification, the control signal may mean a signal that the control unit (230) instructs the first memory unit (211) or the second memory unit (212) to determine which firmware to operate as the main firmware and which firmware to operate as the backup firmware. Alternatively, the control signal may mean a signal that the selection unit (240), the power supply unit (100), or the control unit (300) in the data storage device (200) instructs the control unit (230) to determine which firmware to operate as the main firmware and which firmware to operate as the backup firmware.

도 5는 본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다. 설명의 편의를 위하여, 도 1 내지 도 4를 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.Figure 5 is a flowchart illustrating an operating method of a data storage device according to another embodiment of the present invention. For convenience of explanation, duplicate descriptions of the same content as described with reference to Figures 1 to 4 are omitted.

도 5를 참조하면, 제어부(230) 내 부트로더(231)가 실행되면(S500), 제어부(230)는 제1 메모리부(211) 및 제2 메모리부(212) 중 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 관한 설정을 확인한다(S510). 도 2 및 도 3에 도시된 바와 같이, 제어부(230)는 선택부(240)로부터 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 관한 설정을 수신할 수 있다. 이때, 선택부(240)는 제어부(230)와 연결되며, 제어부(230)에게 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 설정 정보를 저장할 수 있다. 여기서, 선택부(240)는 제어부(230)에 포함되되 부트로더(231)의 외부 구성이거나, 데이터 저장 장치(200)에 포함되되 제어부(230)의 외부 구성이거나, 데이터 저장 장치(200)의 외부 구성일 수 있다. 선택부(240)에 저장된 설정 정보는 고정된 정보가 아닐 수 있다. 예를 들어, 선택부(240)에 저장된 설정 정보는 제어부(230)에 의해 변경되거나, 외부 장치(미도시)에 의해 변경될 수 있다. 예를 들어, 선택부(240)는 메모리 스틱일 수 있다. 제어부(230)는 선택부(240)의 설정에 따라 메모리부(210)에게 메인 펌웨어의 실행 및 백업 펌웨어의 업데이트를 위한 제어 신호를 전송할 수 있다.Referring to FIG. 5, when the bootloader (231) in the control unit (230) is executed (S500), the control unit (230) checks the settings regarding the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S510). As illustrated in FIGS. 2 and 3, the control unit (230) can receive the settings regarding the memory unit in which the firmware to be operated as the main firmware is stored from the selection unit (240). At this time, the selection unit (240) is connected to the control unit (230) and can store setting information in the memory unit in which the firmware to be operated as the main firmware is stored in the control unit (230). Here, the selection unit (240) may be included in the control unit (230) but may be an external component of the bootloader (231), included in the data storage device (200) but may be an external component of the control unit (230), or may be an external component of the data storage device (200). The setting information stored in the selection unit (240) may not be fixed information. For example, the setting information stored in the selection unit (240) may be changed by the control unit (230) or by an external device (not shown). For example, the selection unit (240) may be a memory stick. The control unit (230) may transmit a control signal to the memory unit (210) for executing the main firmware and updating the backup firmware according to the setting of the selection unit (240).

단계 S510의 확인 결과, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부가 제1 메모리부(211)로 설정된 것으로 확인된 경우, 제1 메모리부(211)의 제1 펌웨어가 메인 펌웨어로 실행된다(S520).If it is confirmed as a result of the verification in step S510 that the memory section storing the firmware to be operated as the main firmware is set to the first memory section (211), the first firmware of the first memory section (211) is executed as the main firmware (S520).

단계 S520에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S530), 제2 메모리부(212)에 저장된 제2 펌웨어는 제1 메모리부(211)의 제1 펌웨어를 참조하여 업데이트된다(S540).If booting is successful as a result of executing the first firmware of the first memory unit (211) as the main firmware in step S520 (S530), the second firmware stored in the second memory unit (212) is updated with reference to the first firmware of the first memory unit (211) (S540).

한편, 제1 메모리부(211) 또는 제1 메모리부(211)의 제1 펌웨어가 손상된 경우, 단계 S530에서 부팅이 실패할 수 있다. 단계 S530의 부팅이 실패하면, 제어부(230)는 메인 펌웨어에 관한 선택부(240)의 설정을 수정한다(S550). 즉, 제어부(230)는 제2 메모리부(212)에 저장된 제2 펌웨어를 메인 펌웨어로 재설정할 수 있다. 이때, 제어부(230)는 선택부(240)가 제2 메모리부(212)에 저장된 제2 펌웨어를 메인 펌웨어로 재설정하도록 선택부(240)를 제어하는 제어 신호를 전송할 수도 있다. 그리고, 제어부(230)는 재설정에 따라 메모리부(210)에게 메인 펌웨어의 실행 및 백업 펌웨어의 업데이트를 위한 제어 신호를 전송할 수 있다.Meanwhile, if the first memory unit (211) or the first firmware of the first memory unit (211) is damaged, booting may fail in step S530. If the booting in step S530 fails, the control unit (230) modifies the setting of the selection unit (240) regarding the main firmware (S550). That is, the control unit (230) may reset the second firmware stored in the second memory unit (212) to the main firmware. At this time, the control unit (230) may also transmit a control signal to control the selection unit (240) so that the selection unit (240) resets the second firmware stored in the second memory unit (212) to the main firmware. In addition, the control unit (230) may transmit a control signal to the memory unit (210) for executing the main firmware and updating the backup firmware according to the reset.

이후, 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다(S560). 단계 S560에서 제2 메모리부(212)의 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S570), 제1 메모리부(211)에 저장된 제1 펌웨어는 제2 메모리부(212)에 저장된 제2 펌웨어를 참조하여 복구 및 업데이트된다(S580).Thereafter, the second firmware of the second memory unit (212) is executed as the main firmware (S560). If booting is successful as a result of executing the second firmware of the second memory unit (212) as the main firmware in step S560 (S570), the first firmware stored in the first memory unit (211) is recovered and updated by referring to the second firmware stored in the second memory unit (212) (S580).

다만, 단계 S570의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S590).However, if the booting of step S570 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S590).

이와 같이, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 관한 설정 정보가 선택부(240)에 미리 저장되면, 제어부(230)는 선택부(240)에 미리 저장된 설정 정보에 따라 신속하게 메인 펌웨어를 실행할 수 있다. 특히, 부팅 실패 시 해당 메모리부가 아닌 다른 메모리부로 설정 정보를 재설정하면, 다음 부팅 시에도 미리 저장된 재설정 정보에 따라 신속하게 메인 펌웨어를 실행하는 것이 가능하다.In this way, if the setting information regarding the memory section where the firmware to be operated as the main firmware is stored is stored in advance in the selection section (240), the control section (230) can quickly execute the main firmware according to the setting information stored in advance in the selection section (240). In particular, if the setting information is reset to a memory section other than the corresponding memory section in the event of a booting failure, it is possible to quickly execute the main firmware according to the pre-stored reset information even at the next boot.

도 6은 본 발명의 또 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다. 설명의 편의를 위하여, 도 1 내지 도 5를 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.Figure 6 is a flowchart illustrating an operating method of a data storage device according to another embodiment of the present invention. For convenience of explanation, duplicate descriptions of the same content as described with reference to Figures 1 to 5 are omitted.

도 6을 참조하면, 제어부(230) 내 부트로더(231)가 실행되면(S600), 제어부(230)는 제1 메모리부(211) 및 제2 메모리부(212) 중 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 대한 제어 신호를 수신한다(S610). 여기서, 제어 신호는 GPIO(general-purpose input/output)을 통하여 전송되는 외부 입력 신호일 수 있다. 여기서, 제어 신호는 도 1에 도시된 전원 장치(100)로부터 전송되거나, 도 1에 도시된 제어 장치(300)로부터 전송되거나, 도 1에 도시되지 않은 기타 외부 장치로부터 전송될 수 있다. 본 발명의 실시예에 따르면, GPIO를 통하여 전송되는 제어 신호에 따라 부트 시작 어드레스(boot start address)가 지시될 수 있다.Referring to FIG. 6, when the bootloader (231) in the control unit (230) is executed (S600), the control unit (230) receives a control signal for the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S610). Here, the control signal may be an external input signal transmitted through a GPIO (general-purpose input/output). Here, the control signal may be transmitted from the power supply unit (100) illustrated in FIG. 1, from the control device (300) illustrated in FIG. 1, or from other external devices not illustrated in FIG. 1. According to an embodiment of the present invention, a boot start address may be indicated according to the control signal transmitted through the GPIO.

표 1은 GPIO를 통한 제어 신호의 한 예이고, 표 2는 GPIO를 통한 제어 신호의 다른 예이다.Table 1 is an example of control signals via GPIO, and Table 2 is another example of control signals via GPIO.

Case 1Case 1 GPIO 0GPIO 0 부트 시작 어드레스Boot start address 11 LL 제1 메모리부에 할당된 어드레스Address allocated to the first memory section 22 HH 제2 메모리부에 할당된 어드레스Address allocated to the second memory area

Case 1Case 1 GPIO 0GPIO 0 GPIO 1GPIO 1 GPIO2GPIO2 부트 시작 어드레스Boot start address 11 LL LL LL 00 22 LL LL HH 20482048 33 LL HH LL 40964096 44 LL HH HH 81928192 55 HH LL LL 1024010240 66 HH LL HH 1228812288 77 HH HH LL 1433614336 88 HH HH HH 1638416384

표 1을 참조하면, GPIO 0를 통하여 L 신호가 입력되면, 제1 메모리부(211)에 할당된 어드레스로 부트 시작되고, GPIO를 통하여 H 신호가 입력되면, 제2 메모리부(212)에 할당된 어드레스로 부트 시작될 수 있다. 즉, GPIO 0를 통하여 L 신호가 입력되면, 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 실행되고, GPIO 0를 통하여 H 신호가 입력되면, 제2 메모리부(212)에 저장된 제2 펌웨어가 메인 펌웨어로 실행될 수 있다.Referring to Table 1, when an L signal is input through GPIO 0, booting can start with an address assigned to the first memory unit (211), and when an H signal is input through GPIO, booting can start with an address assigned to the second memory unit (212). That is, when an L signal is input through GPIO 0, the first firmware stored in the first memory unit (211) can be executed as the main firmware, and when an H signal is input through GPIO 0, the second firmware stored in the second memory unit (212) can be executed as the main firmware.

표 2를 참조하면, 메모리부(210)가 8개의 메모리부, 예를 들어 8개의 다이(die)를 포함하고, 3개의 GPIO를 통하여 제어 신호가 입력되면, 3개의 GPIO의 “L” 및 “H” 조합에 따라 각 메모리부에 할당된 어드레스로 부트 시작될 수 있다.Referring to Table 2, if the memory section (210) includes eight memory sections, for example, eight dies, and a control signal is input through three GPIOs, booting can be started with an address assigned to each memory section according to the “L” and “H” combination of the three GPIOs.

이를 위하여, 메모리부(210)를 구성하는 복수의 메모리부에 대하여, 메모리부 별로 할당된 어드레스 구간은 서로 중첩되지 않도록 설정될 수 있다. 예를 들어, 메모리부(210)가 하나의 NAND 플래시 메모리이고, 제1 메모리부(211) 및 제2 메모리부(212)가 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(die)인 경우, 다이 별로 할당된 어드레스 구간은 서로 중첩되지 않도록 설정될 수 있다. 예를 들어, 메모리부(210)가 제1 메모리부(211)인 제1 다이(die) 및 제2 메모리부(212)인 제2 다이(die)로 구성된 경우, 제1 메모리부(211)인 제1 다이에 할당된 어드레스 구간은 0~2N-1이고, 제2 메모리부(212)인 제2 다이에 할당된 어드레스 구간은 2N~2N+1-1일 수 있다. 여기서, N은 양의 정수일 수 있다. 예를 들어, 메모리부(210)가 8비트 메모리이고, 메모리부(210)가 제1 메모리부(211)인 제1 다이(die) 및 제2 메모리부(212)인 제2 다이(die)로 구성된 경우, 제1 메모리부(211)인 제1 다이에 대하여 0~2047 구간의 어드레스가 할당되고, 제2 메모리부(212)인 제2 다이에 대하여 2048~4095 구간의 어드레스가 할당될 수 있다. 이와 같이, 다이 별로 할당된 어드레스 구간은 서로 중첩되지 않도록 설정될 경우, GPIO를 통해 지시된 제어 신호에 따라 부트 시작 어드레스가 결정되며, 부트 시작 어드레스로부터 해당 어드레스 구간 내에서 순차적으로 부팅 과정이 수행될 수 있다. 이에 따르면, 전원 순단 또는 전원 불안정에 의해 일부 다이가 손상되더라도 다른 다이가 신속하게 메인 펌웨어의 기능을 하며 부팅될 수 있다.To this end, for the plurality of memory units constituting the memory unit (210), the address ranges allocated to each memory unit may be set so as not to overlap with each other. For example, if the memory unit (210) is a single NAND flash memory, and the first memory unit (211) and the second memory unit (212) are different dies included in the single NAND flash memory, the address ranges allocated to each die may be set so as not to overlap with each other. For example, if the memory unit (210) is composed of a first die that is a first memory unit (211) and a second die that is a second memory unit (212), the address range allocated to the first die that is the first memory unit (211) may be 0 to 2 N -1, and the address range allocated to the second die that is the second memory unit (212) may be 2 N to 2 N+1 -1. Here, N may be a positive integer. For example, if the memory unit (210) is an 8-bit memory and the memory unit (210) is composed of a first die, which is a first memory unit (211), and a second die, which is a second memory unit (212), an address in the range of 0 to 2047 may be assigned to the first die, which is the first memory unit (211), and an address in the range of 2048 to 4095 may be assigned to the second die, which is the second memory unit (212). In this way, if the address ranges assigned to each die are set so as not to overlap each other, the boot start address is determined according to the control signal indicated through the GPIO, and the booting process can be sequentially performed within the corresponding address range from the boot start address. Accordingly, even if some dies are damaged due to a power outage or power instability, the other dies can quickly perform the function of the main firmware and boot.

단계 S610에서 GPIO를 통해 제어부(230)가 수신한 제어 신호에 기초하여, 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 설정되었음이 확인되면, 제1 메모리부(211)의 제1 펌웨어가 메인 펌웨어로 실행된다(S620). 예를 들어, 표 1을 참조하여, GPIO 0을 통하여 L 신호가 입력되면, 이는 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 설정되었음을 의미할 수 있다. 메모리부(210)가 8비트 메모리이고, 메모리부(210)가 제1 메모리부(211)인 제1 다이(die) 및 제2 메모리부(212)인 제2 다이(die)로 구성된 경우, 제1 메모리부(211)에 할당된 어드레스 구간인 0~2047 중 부트 시작 어드레스인 0으로부터 순차적으로 부팅을 수행할 수 있다. If it is confirmed that the first firmware stored in the first memory unit (211) is set as the main firmware based on the control signal received by the control unit (230) through the GPIO in step S610, the first firmware of the first memory unit (211) is executed as the main firmware (S620). For example, referring to Table 1, if an L signal is input through GPIO 0, this may mean that the first firmware stored in the first memory unit (211) is set as the main firmware. If the memory unit (210) is an 8-bit memory and is composed of a first die, which is the first memory unit (211), and a second die, which is the second memory unit (212), booting can be performed sequentially from a boot start address of 0 among the address range of 0 to 2047 assigned to the first memory unit (211).

단계 S620에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S630), 제2 메모리부(212)에 저장된 제2 펌웨어는 제1 메모리부(211)에 저장된 제1 펌웨어를 참조하여 업데이트된다(S640).If booting is successful as a result of executing the first firmware of the first memory unit (211) as the main firmware in step S620 (S630), the second firmware stored in the second memory unit (212) is updated with reference to the first firmware stored in the first memory unit (211) (S640).

한편, 제1 메모리부(211) 또는 제1 메모리부(211)의 제1 펌웨어가 손상된 경우, 단계 S630에서 부팅이 실패할 수 있다. 단계 S630의 부팅이 실패하면, 제어부(230)는 제1 메모리부(211) 및 제2 메모리부(212) 중 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 대한 제어 신호를 다시 수신하며(S650), 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다(S660). 예를 들어, 제2 메모리부(212)에 할당된 어드레스 구간인 2048~4095 중 부트 시작 어드레스인 2048으로부터 순차적으로 부팅을 수행할 수 있다. 본 발명의 다른 실시예에서, 단계 S650은 생략될 수도 있으며, 단계 S630의 부팅이 실패하면, 단계 S660이 자동으로 실행될 수도 있다. 즉, 단계 S630의 부팅이 실패하면, 제2 메모리부(212)에 할당된 어드레스 구간 중 부트 시작 어드레스인 2048부터 순차적으로 부팅을 수행할 수도 있다. 단계 S660에서 제2 메모리부(212)의 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S670), 제1 메모리부(211)에 저장된 제1 펌웨어는 제2 메모리부(212)에 저장된 제2 펌웨어를 참조하여 복구 및 업데이트된다(S680).Meanwhile, if the first memory unit (211) or the first firmware of the first memory unit (211) is damaged, booting may fail in step S630. If the booting in step S630 fails, the control unit (230) again receives a control signal for the memory unit in which the firmware to be operated as the main firmware is stored among the first memory unit (211) and the second memory unit (212) (S650), and the second firmware of the second memory unit (212) is executed as the main firmware (S660). For example, booting may be performed sequentially from the boot start address 2048 among the address range 2048 to 4095 allocated to the second memory unit (212). In another embodiment of the present invention, step S650 may be omitted, and if the booting in step S630 fails, step S660 may be automatically executed. That is, if the booting in step S630 fails, booting may be performed sequentially from the boot start address 2048 among the address range allocated to the second memory unit (212). If booting is successful as a result of executing the second firmware of the second memory unit (212) as the main firmware in step S660 (S670), the first firmware stored in the first memory unit (211) is recovered and updated by referring to the second firmware stored in the second memory unit (212) (S680).

다만, 단계 S670의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S690).However, if the booting of step S670 also fails, both the first firmware of the first memory unit (211) and the second firmware of the second memory unit (212) are reported as damaged, and the system may be shut down or a reboot may be attempted (S690).

이와 같이, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부가 고정되지 않고 GPIO를 통해 수신되는 제어 신호에 따라 달라질 경우, 복수의 메모리부 중 하나가 손상되더라도, 손상되지 않은 메모리부를 통하여 신속하게 부팅하고, 손상된 메모리부를 복구 및 업데이트하는 것이 가능하다. 특히, 다이 별로 서로 중첩되지 않는 구간으로 어드레스가 할당될 경우, 각 다이는 메인 펌웨어로 동작하거나 백업 펌웨어로 동작할 수 있다.In this way, if the memory section storing the firmware that will operate as the main firmware is not fixed but varies depending on the control signals received via GPIO, even if one of the multiple memory sections is damaged, it is possible to quickly boot using the undamaged memory section and to recover and update the damaged memory section. In particular, if addresses are assigned to each die in non-overlapping sections, each die can operate as either the main firmware or the backup firmware.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described above with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below.

Claims (10)

데이터 저장 장치의 동작 방법에 있어서,In the method of operating a data storage device, 제1 메모리부에 저장된 제1 펌웨어 및 제2 메모리부에 저장된 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하는 단계,A step of receiving a control signal instructing one of the first firmware stored in the first memory unit and the second firmware stored in the second memory unit to operate as the main firmware; 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하는 단계, A step of executing the first firmware as the main firmware according to the above control signal; 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하는 단계,If booting is successful as a result of executing the first firmware as the main firmware, a step of updating the second firmware by referring to the first firmware; 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 상기 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하는 단계, 그리고If the booting fails as a result of executing the first firmware as the main firmware, a step of executing the second firmware as the main firmware; and 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하는 단계를 포함하는 동작 방법.An operating method including a step of updating the first firmware by referencing the second firmware when booting is successful as a result of executing the second firmware as the main firmware. 제1항에 있어서,In the first paragraph, 상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)인 동작 방법.An operating method in which the first memory section and the second memory section are different dies included in one NAND flash memory. 제1항에 있어서,In the first paragraph, 상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않는 동작 방법.An operating method in which the address range allocated to the first memory section does not overlap with the address range allocated to the second memory section. 제3항에 있어서,In the third paragraph, 상기 제1 펌웨어가 메인 펌웨어로 동작할 때 상기 제1 메모리부에 할당된 어드레스 구간 내 제1 부트 시작 어드레스로부터 부팅이 실행되고,When the above first firmware operates as the main firmware, booting is executed from the first boot start address within the address range allocated to the first memory section, 상기 제2 펌웨어가 메인 펌웨어로 동작할 때 상기 제2 메모리부에 할당된 어드레스 구간 내 제2 부트 시작 어드레스로부터 부팅이 실행되는 동작 방법.An operating method in which booting is executed from a second boot start address within an address range allocated to the second memory section when the second firmware operates as the main firmware. 제3항에 있어서,In the third paragraph, 상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1인 동작 방법.An operating method wherein the address range allocated to the first memory section is 0 to 2 N -1, and the address range allocated to the second memory section is 2 N to 2 N+1 -1. 제1항에 있어서,In the first paragraph, 상기 제어 신호는 적어도 하나의 GPIO(general purpose input output)를 통하여 수신되는 동작 방법.An operating method in which the above control signal is received through at least one GPIO (general purpose input output). 제1 펌웨어를 저장하는 제1 메모리부,A first memory section storing the first firmware, 제2 펌웨어를 저장하는 제2 메모리부, 그리고A second memory section storing the second firmware, and 제어부를 포함하고,Including a control unit, 상기 제어부는,The above control unit, 상기 제1 펌웨어 및 상기 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하면, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하고, When a control signal instructing one of the first firmware and the second firmware to operate as the main firmware is received, the first firmware is executed as the main firmware according to the control signal, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하고, If booting is successful as a result of executing the above first firmware as the main firmware, the second firmware is updated with reference to the above first firmware, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하며,If booting fails when the above first firmware is executed as the main firmware, the above second firmware is executed as the main firmware. 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하도록 설정된 데이터 저장 장치.A data storage device set to update the first firmware by referencing the second firmware when booting is successful as a result of executing the second firmware as the main firmware. 제7항에 있어서,In paragraph 7, 상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)인 데이터 저장 장치.A data storage device in which the first memory section and the second memory section are different dies included in one NAND flash memory. 제8항에 있어서,In paragraph 8, 상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않는 데이터 저장 장치. A data storage device in which the address range allocated to the first memory section does not overlap with the address range allocated to the second memory section. 제9항에 있어서,In paragraph 9, 상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1인 데이터 저장 장치.A data storage device in which the address range allocated to the first memory section is 0 to 2 N -1, and the address range allocated to the second memory section is 2 N to 2 N+1 -1.
PCT/KR2025/006603 2024-06-03 2025-05-15 Data storage device and operating method thereof Pending WO2025254357A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20240072143 2024-06-03
KR10-2024-0072143 2024-06-03
KR1020250041976A KR20250173406A (en) 2024-06-03 2025-04-01 Data storage device and operating method of the same
KR10-2025-0041976 2025-04-01

Publications (1)

Publication Number Publication Date
WO2025254357A1 true WO2025254357A1 (en) 2025-12-11

Family

ID=97961202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2025/006603 Pending WO2025254357A1 (en) 2024-06-03 2025-05-15 Data storage device and operating method thereof

Country Status (1)

Country Link
WO (1) WO2025254357A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000073693A (en) * 1999-05-13 2000-12-05 윤종용 Boot rom structure and booting method of micro process
KR20060120988A (en) * 2005-05-23 2006-11-28 삼성전자주식회사 System boot device and method using redundant bootrom
KR20090120541A (en) * 2008-05-20 2009-11-25 주식회사 이노와이어리스 Embedded system with operating system (OS) automatic recovery and automatic recovery method
KR20110084626A (en) * 2010-01-18 2011-07-26 전지혜 System boot control method and device
KR20120050685A (en) * 2010-11-11 2012-05-21 삼성전자주식회사 Display apparatus and method for updating micom code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000073693A (en) * 1999-05-13 2000-12-05 윤종용 Boot rom structure and booting method of micro process
KR20060120988A (en) * 2005-05-23 2006-11-28 삼성전자주식회사 System boot device and method using redundant bootrom
KR20090120541A (en) * 2008-05-20 2009-11-25 주식회사 이노와이어리스 Embedded system with operating system (OS) automatic recovery and automatic recovery method
KR20110084626A (en) * 2010-01-18 2011-07-26 전지혜 System boot control method and device
KR20120050685A (en) * 2010-11-11 2012-05-21 삼성전자주식회사 Display apparatus and method for updating micom code

Similar Documents

Publication Publication Date Title
US11494077B2 (en) Memory system with selective access to first and second memories
US7890732B2 (en) Memory card and semiconductor device
US8352672B2 (en) Memory system with nonvolatile memory
US20110119431A1 (en) Memory system with read-disturb suppressed and control method for the same
JPS58127259A (en) Memory module selection and reconfiguration device in data processing system
WO2012050275A1 (en) Method and system for setting up sequential ids for multiple slaves of a battery pack
JP2001243110A (en) Memory controller, flash memory system and access method to flash memory
CN111045703A (en) A method and system for upgrading battery management unit software
WO2013180387A1 (en) Method for reading page data from nand flash memory device
US11495191B2 (en) Reading extended display identification data (EDID) from display device to get native resolution of display device
WO2017164515A1 (en) Address translation method for storage system and memory device controller for storage system
WO2020093529A1 (en) Protection circuit for memory in display panel and display panel
WO2025254357A1 (en) Data storage device and operating method thereof
KR20020036717A (en) Microcomputer and method for controlling the same
US7281150B1 (en) Methods and apparatus for controlling operation of a data storage system
US11430495B2 (en) Semiconductor storing apparatus including multiple chips and continous readout method
WO2011019162A2 (en) Image reproducing apparatus and method for controlling the same
WO2010107173A1 (en) Ssd controller, and method for operating an ssd controller
KR20250173406A (en) Data storage device and operating method of the same
EP4542364A1 (en) Method, apparatus, and system for sharing memory device
TW202611689A (en) Data storage device and operating method of the same
JP2002196977A (en) Memory controller, flash memory system with memory controller, and control method for flash memory
CN114281385A (en) Upgrading method and upgrading device for electronic equipment
WO2017188620A1 (en) Virtual memory management apparatus for avoiding error cell in main memory and method therefor
US20050120155A1 (en) Multi-bus I2C system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25820363

Country of ref document: EP

Kind code of ref document: A1