WO2025254357A1 - 데이터 저장 장치 및 그의 동작 방법 - Google Patents

데이터 저장 장치 및 그의 동작 방법

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
English (en)
French (fr)
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/ko
Application filed by LG Innotek Co Ltd filed Critical LG Innotek Co Ltd
Publication of WO2025254357A1 publication Critical patent/WO2025254357A1/ko
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

본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법은 제1 메모리부에 저장된 제1 펌웨어 및 제2 메모리부에 저장된 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하는 단계, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 상기 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하는 단계, 그리고 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하는 단계를 포함한다.

Description

데이터 저장 장치 및 그의 동작 방법
본 발명은 데이터 저장 장치 및 그의 동작 방법에 관한 것이다.
데이터 저장 장치는 전자기기, 통신, 차량, 네트워크, 텔레매틱스 등 다양한 기술분야에 광범위하게 사용된다. 특히, NAND 플래시 메모리는 NAND 기반 데이터 저장 장치의 일 예이며, 비휘발성 메모리이다.
NAND 플래시 메모리에 대한 전원 순단이 발생하거나, 전원이 불안정하게 공급될 경우, 메모리 내 데이터가 손상을 입을 수 있다. 예를 들어, 기록(write)/소거(erase) 진행 중 NAND 플래시 메모리에 대한 전원 순단이 발생한 경우, 데이터가 정상적으로 저장되지 않고 깨질 수 있다. 특히, 기록(write)/소거(erase) 진행 중이던 블록의 일부는 백업 후 복구가 가능하지만, 일부 블록은 복구가 어려울 수도 있다.
NAND 플래시 메모리를 포함하는 임베디드 시스템에 전원 순단이 발생한 경우, 시스템의 부팅이 어려워질 수 있으며, 시스템의 신뢰성이 낮아질 수 있다. 이에 따라, 전원 순단 시에도 시스템의 신뢰성을 유지하며 안정적으로 부팅할 수 있는 방법이 필요하다.
본 발명이 이루고자 하는 기술적 과제는 전원 순단 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치 및 그의 동작 방법을 제공하는 데 있다.
본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법은 제1 메모리부에 저장된 제1 펌웨어 및 제2 메모리부에 저장된 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하는 단계, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하는 단계, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 상기 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하는 단계, 그리고 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하는 단계를 포함한다.
상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)일 수 있다.
상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않을 수 있다.
상기 제1 펌웨어가 메인 펌웨어로 동작할 때 상기 제1 메모리부에 할당된 어드레스 구간 내 제1 부트 시작 어드레스로부터 부팅이 실행되고, 상기 제2 펌웨어가 메인 펌웨어로 동작할 때 상기 제2 메모리부에 할당된 어드레스 구간 내 제2 부트 시작 어드레스로부터 부팅이 실행될 수 있다.
상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1일 수 있다.
상기 제어 신호는 적어도 하나의 GPIO(general purpose input output)를 통하여 수신될 수 있다.
본 발명의 한 실시예에 따른 데이터 저장 장치는 제1 펌웨어를 저장하는 제1 메모리부, 제2 펌웨어를 저장하는 제2 메모리부, 그리고 제어부를 포함하고, 상기 제어부는, 상기 제1 펌웨어 및 상기 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하면, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하고, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하고, 상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하며, 상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하도록 설정된다.
본 발명의 실시예에 따르면, 전원 순단 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치 및 그의 동작 방법을 얻을 수 있다. 특히, 본 발명의 실시예에 따르면, 메모리의 용량 또는 메모리의 물리적인 크기를 증가시키지 않고도, 전원 순단 시 손실된 데이터를 복구하는 것이 가능하다. 또한, 본 발명의 실시예에 따르면, 데이터 저장 장치의 정상적인 동작과 동시에 백업 데이터의 업데이트가 가능하다.
도 1은 본 발명의 한 실시예에 따른 데이터 저장 장치를 포함하는 시스템의 블록도이다.
도 2는 본 발명의 한 실시예에 따른 데이터 저장 장치의 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 데이터 저장 장치의 블록도이다
도 4는 본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법의 순서도이다.
도 5는 본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.
이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 한 실시예에 따른 데이터 저장 장치를 포함하는 시스템의 블록도이다.
도 1을 참조하면, 본 발명의 한 실시예에 따른 시스템(10)은 전원 장치(100) 및 데이터 저장 장치(200)를 포함한다.
전원 장치(100)는 변환부(110), 입력 전압 검출부(120) 및 검출 신호 전달부(130)를 포함할 수 있다. 변환부(110)는 주 전원(main power)에 해당하는 입력 전압을 수신하며, 수신한 입력 전압을 데이터 저장 장치(200)의 각 구성 요소에서 요구되는 전압으로 변환하여 출력할 수 있다. 더욱 구체적으로, 변환부(110)는 레귤레이터(regulator)로 구현될 수 있다. 레귤레이터는 입력단을 통해 입력 전압을 수신하고, 출력단을 통해 출력 전압을 출력할 수 있다. 레귤레이터의 출력 전압은 데이터 저장 장치(200)의 구동 전압일 수 있다. 레귤레이터는 입력 전압을 안정화하여 출력함으로써 데이터 저장 장치(200)에 안정적인 구동 전압을 구동할 수 있다.
입력 전압 검출부(120)는 주전원으로 공급되는 입력 전압의 크기를 검출하고, 이에 따른 검출 신호를 출력할 수 있다. 예를 들어, 입력 전압 검출부(120)는 비교기를 포함할 수 있으며, 입력 전압과 기준 신호 간 비교 결과에 따라 검출 신호를 출력할 수 있다. 검출 신호 전달부(130)는 입력 전압 검출부(120)로부터 출력된 검출 신호를 데이터 저장 장치(200)에 전달할 수 있다. 도시되지 않았으나, 검출 신호 전달부(130)는 검출 신호가 가지는 높은 전압을 데이터 저장 장치(200)의 제어부(230)에서 수신할 수 있는 수준의 낮은 전압으로 변환하여 출력하는 논리 회로를 포함할 수 있다.
데이터 저장 장치(200)는 전원 장치(100)로부터 입력되는 전압을 구동 전압으로 하여 동작할 수 있다. 데이터 저장 장치(200)는 제어 장치(300)와 통신을 수행하고, 제어 장치(300)로부터 전달되는 데이터를 저장할 수 있다. 즉, 데이터 저장 장치(200)는 제어 장치(300)와 통신을 하며, 제어 장치(300)로부터 수신한 제어 신호를 저장할 수 있다. 예를 들어, 데이터 저장 장치(200)는 차량 내에 배치되며, 제어 장치(300)는 차량을 제어하는 차량 제어 장치일 수 있으나, 이로 제한되는 것은 아니다. 본 발명의 실시예에 따른 데이터 저장 장치(200)는 전자기기, 통신, 차량, 네트워크, 텔레매틱스 등 다양한 기술분야에 적용될 수 있으며, 제어 장치(300)는 본 발명의 실시예에 따른 데이터 저장 장치(200)가 탑재되는 시스템을 제어하는 장치일 수 있다.
본 발명의 실시예에 따른 데이터 저장 장치(200)는 메모리부(210), 전원 공급부(220) 및 제어부(230)를 포함한다. 제어부(230)는 메모리부(210)를 제어하며, CPU(central processing unit)과 혼용될 수 있다. 제어부(230)는 메모리부(210)로부터 동작 신호를 수신한 후, 이에 기반하여 메모리부(210)에 액세스할 수 있다. 동작 신호는, 예를 들어 Ready output signal 및 Busy output signal일 수 있다.
본 발명의 실시예에 따르면, 메모리부(210)는 데이터의 기록, 소거 및 읽기가 가능한 비휘발성 메모리일 수 있다. 예를 들어, 메모리부(210)는 전기적으로 기록 및 소거가 가능하며, 일정 주기로 데이터를 재작성하는 리프레시 기능이 필요 없는 비휘발성 메모리일 수 있다. 예를 들어, 메모리부(210)는 NAND 플래시 메모리일 수 있다. 제어부(230)의 동작 신호는 메모리부(210)를 구성하는 NAND 플래시 메모리의 타이밍에 대응할 수 있다. 여기서, 타이밍은 NAND 플래시 메모리의 동작 타입에 따라 다른 시간 주기로 변환될 수 있다. 예를 들어, NAND 플래시 메모리의 동작 타입에 따라 다른 시간 주기는 메모리 셀로부터 페이지 레지스터로 데이터를 로딩하는 시간(리딩 동작), 페이지 레지스터로부터 메모리 셀로 데이터를 로딩하는 시간(기록 동작), 블록 단위로 메모리 셀들을 소거하는 시간(소거 동작) 등을 포함할 수 있다.
또는, 메모리부(210)는 NOR(Not AND Read-Only 메모리이거나, eMMC(embedded multimedia card) 메모리일 수도 있으며, 메모리의 종류가 이로 제한되는 것은 아니다.
데이터 저장 장치(200)의 전원 공급부(220)는 변환부(110)의 출력단과 연결되어 변환부(110)의 출력 전압을 수신하고, 수신한 출력 전압을 안정화하여 메모리부(210)에 구동 전압을 공급할 수 있다. 전원 공급부(220)는 메모리부(210)에 구동 전압을 공급하는 PMIC(power management IC)일 수 있다. 전원 공급부(220)를 구성하는 PMIC는 전력용 디스크리트 파워 소자 모듈과 고전압 파워 회로, 저전압 디지털 회로, 고전압 및 저전압 아날로그 회로를 포함하는 전원 제어 모듈일 수 있으며, 데이터 저장 장치(200)에 입력된 입력 전압을 메모리부(210)에 맞게 변환, 분배, 충전 및 제어하는 역할을 할 수 있다.
본 발명의 실시예에 따르면, 전원 순단 또는 전원 불안정 시에도 데이터의 손실 없이 안정적인 부팅이 가능한 데이터 저장 장치를 얻고자 한다.
도 2는 본 발명의 한 실시예에 따른 데이터 저장 장치의 블록도이고, 도 3은 본 발명의 다른 실시예에 따른 데이터 저장 장치의 블록도이며, 도 4는 본 발명의 한 실시예에 따른 데이터 저장 장치의 동작 방법의 순서도이다.
도 2 및 도 3을 참조하면, 데이터 저장 장치(200)는 메모리부(210), 전원 공급부(미도시) 및 제어부(230)를 포함한다. 메모리부(210), 전원 공급부(미도시) 및 제어부(230)와 관련하여 도 1을 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.
본 발명의 실시예에 따르면, 데이터 저장 장치(200)의 제어부(230)는 부트로더(bootloader, 231)를 포함한다. 데이터 저장 장치(200)에 전원이 들어오면, 부트로더(231)가 실행되며, 이에 따라 운영체제(operating system, OS)가 로드될 수 있다.
본 발명의 실시예에 따르면, 데이터 저장 장치(200)의 메모리부(210)는 복수의 메모리부를 포함한다. 설명의 편의를 위하여, 본 명세서에서는 메모리부(210)가 제1 메모리부(211) 및 제2 메모리부(212)를 포함하는 것으로 도시 및 설명하고 있으나, 이로 제한되는 것은 아니며, 본 발명의 실시예에 따른 메모리부(210)는 2 이상의 복수의 메모리부를 포함할 수 있다.
도 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 다이일 수도 있다.
또는, 도 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 메모리일 수도 있다.
본 발명의 실시예에 따르면, 제1 메모리부(211)에는 제1 펌웨어가 저장되고, 제2 메모리부(212)에는 제2 펌웨어가 저장되며, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 동일한 데이터를 포함한다. 펌웨어는 특정 하드웨어 장치에서 동작하는 프로그램으로, 하드웨어 장치의 기본적인 동작을 제어하고 관리하는 소프트웨어를 의미할 수 있다. 펌웨어는 하드웨어 장치의 동작 방식, 입력 신호 처리, 데이터 전송, 부팅 과정, 오류 감지 수정 등의 기능을 수행할 수 있다. 펌웨어는 주기적 또는 비주기적으로 업데이트될 수 있다. 예를 들어, 펌웨어의 업데이트를 통해 펌웨어에 새로운 기능이 추가되거나, 펌웨어의 성능이 향상될 수 있다. 펌웨어는 데이터 저장 장치(200)의 유선 통신, 무선 통신 또는 외부 저장 장치를 통하여 주기적 또는 비주기적으로 업데이트될 수 있다. 무선 통신은, 예를 들어 FOTA(Firmware Over The Air)일 수 있고, 외부 저장 장치는, 예를 들어 메모리 스틱일 수 있다.
본 발명의 실시예에 따르면, 제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 시점에서는 메인 펌웨어로 동작할 수도 있다.
도 2 내지 도 4를 참조하면, 제어부(230) 내 부트로더(231)가 실행되면(S400), 제1 메모리부(211)의 제1 펌웨어가 메인 펌웨어로 실행된다(S410). 여기서, 펌웨어는 하드웨어 장치를 제어하거나 지원하는 소프트웨어이며, 펌웨어가 실행되면 시스템이 부팅될 수 있다.
단계 S410에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S420), 제2 메모리부(212)에 저장된 제2 펌웨어가 업데이트된다(S430). 이때, 제2 펌웨어는 메인 펌웨어인 제1 펌웨어의 데이터를 참조하여 업데이트될 수 있다. 제2 펌웨어는 메인 펌웨어인 제1 펌웨어의 데이터와 동일하게 업데이트될 수 있다. 이에 따라, 제2 펌웨어는 백업 펌웨어의 역할을 할 수 있다.
본 발명의 실시예에 따르면, 단계 S430의 업데이트는 단계 S420의 부팅 성공 후 주기적 또는 비주기적으로 반복하여 수행될 수 있다. 이에 따르면, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 모두 동일한 최신 데이터를 포함할 수 있다.
한편, 제1 메모리부(211) 또는 제1 메모리부(211)의 제1 펌웨어가 손상된 경우, 단계 S420의 부팅이 실패할 수 있다. 단계 S420의 부팅이 실패하면, 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다(S440). 단계 S440에서 제2 메모리부(212)의 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S450), 제1 메모리부(211)에 저장된 제1 펌웨어가 복구 및 업데이트된다(S460). 이를 위하여, 제1 펌웨어는 메인 펌웨어인 제2 펌웨어의 데이터를 참조하여 복구 및 업데이트될 수 있다. 이에 따라, 제1 펌웨어는 백업 펌웨어의 역할을 할 수 있다.
본 발명의 실시예에 따르면, 단계 S460의 복구 및 업데이트는 단계 S450의 부팅 성공 후 주기적 또는 비주기적으로 반복하여 수행될 수 있다. 이에 따르면, 제1 메모리부(211)에 저장된 제1 펌웨어와 제2 메모리부(212)에 저장된 제2 펌웨어는 모두 동일한 최신 데이터를 포함할 수 있다.
다만, 단계 S450의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S470).
이와 같이, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 중 하나가 메인 펌웨어로 동작하고, 다른 하나가 메인 펌웨어의 데이터를 참조하여 복구 및 업데이트되면, 전원 순단 또는 전원 불안정에 의해 두 개의 메모리부 중 하나가 손상되더라도, 나머지 메모리부를 통하여 부팅 및 복구가 가능하며, 메인 펌웨어로 동작하는 제1 메모리부(211)에 영향을 미치지 않고 제2 메모리부(212)의 백업 펌웨어를 업데이트하는 것이 가능하다. 특히, 제1 메모리부(211) 및 제2 메모리부(212)가 하나의 NAND 플래시 메모리에 포함된 제1 다이 및 제2 다이인 경우, 물리적인 공간을 추가하지 않고도 2개의 NAND 플래시 메모리를 사용하는 효과를 얻을 수 있다.
본 발명의 실시예에 따르면, 제어부(230) 내 부트로더(231)가 실행되면, 제1 메모리부(211)의 제1 펌웨어 또는 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다. 이때, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 중 어느 펌웨어가 메인 펌웨어로 동작할지는 제어 신호에 의해 선택될 수 있다.
본 명세서에서, 제어 신호는 제어부(230)가 제1 메모리부(211) 또는 제2 메모리부(212)에게 어느 펌웨어가 메인 펌웨어로 동작하고 어느 펌웨어가 백업 펌웨어로 동작할지를 지시하는 신호를 의미할 수 있다. 또는, 제어 신호는 데이터 저장 장치(200) 내의 선택부(240), 전원 장치(100) 또는 제어 장치(300)가 제어부(230)에게 어느 펌웨어가 메인 펌웨어로 동작하고 어느 펌웨어가 백업 펌웨어로 동작할지를 지시하는 신호를 의미할 수도 있다.
도 5는 본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다. 설명의 편의를 위하여, 도 1 내지 도 4를 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.
도 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)에게 메인 펌웨어의 실행 및 백업 펌웨어의 업데이트를 위한 제어 신호를 전송할 수 있다.
단계 S510의 확인 결과, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부가 제1 메모리부(211)로 설정된 것으로 확인된 경우, 제1 메모리부(211)의 제1 펌웨어가 메인 펌웨어로 실행된다(S520).
단계 S520에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S530), 제2 메모리부(212)에 저장된 제2 펌웨어는 제1 메모리부(211)의 제1 펌웨어를 참조하여 업데이트된다(S540).
한편, 제1 메모리부(211) 또는 제1 메모리부(211)의 제1 펌웨어가 손상된 경우, 단계 S530에서 부팅이 실패할 수 있다. 단계 S530의 부팅이 실패하면, 제어부(230)는 메인 펌웨어에 관한 선택부(240)의 설정을 수정한다(S550). 즉, 제어부(230)는 제2 메모리부(212)에 저장된 제2 펌웨어를 메인 펌웨어로 재설정할 수 있다. 이때, 제어부(230)는 선택부(240)가 제2 메모리부(212)에 저장된 제2 펌웨어를 메인 펌웨어로 재설정하도록 선택부(240)를 제어하는 제어 신호를 전송할 수도 있다. 그리고, 제어부(230)는 재설정에 따라 메모리부(210)에게 메인 펌웨어의 실행 및 백업 펌웨어의 업데이트를 위한 제어 신호를 전송할 수 있다.
이후, 제2 메모리부(212)의 제2 펌웨어가 메인 펌웨어로 실행된다(S560). 단계 S560에서 제2 메모리부(212)의 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S570), 제1 메모리부(211)에 저장된 제1 펌웨어는 제2 메모리부(212)에 저장된 제2 펌웨어를 참조하여 복구 및 업데이트된다(S580).
다만, 단계 S570의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S590).
이와 같이, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 관한 설정 정보가 선택부(240)에 미리 저장되면, 제어부(230)는 선택부(240)에 미리 저장된 설정 정보에 따라 신속하게 메인 펌웨어를 실행할 수 있다. 특히, 부팅 실패 시 해당 메모리부가 아닌 다른 메모리부로 설정 정보를 재설정하면, 다음 부팅 시에도 미리 저장된 재설정 정보에 따라 신속하게 메인 펌웨어를 실행하는 것이 가능하다.
도 6은 본 발명의 또 다른 실시예에 따른 데이터 저장 장치의 동작 방법의 흐름도이다. 설명의 편의를 위하여, 도 1 내지 도 5를 참조하여 설명한 내용과 동일한 내용에 대해서는 중복된 설명을 생략한다.
도 6을 참조하면, 제어부(230) 내 부트로더(231)가 실행되면(S600), 제어부(230)는 제1 메모리부(211) 및 제2 메모리부(212) 중 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부에 대한 제어 신호를 수신한다(S610). 여기서, 제어 신호는 GPIO(general-purpose input/output)을 통하여 전송되는 외부 입력 신호일 수 있다. 여기서, 제어 신호는 도 1에 도시된 전원 장치(100)로부터 전송되거나, 도 1에 도시된 제어 장치(300)로부터 전송되거나, 도 1에 도시되지 않은 기타 외부 장치로부터 전송될 수 있다. 본 발명의 실시예에 따르면, GPIO를 통하여 전송되는 제어 신호에 따라 부트 시작 어드레스(boot start address)가 지시될 수 있다.
표 1은 GPIO를 통한 제어 신호의 한 예이고, 표 2는 GPIO를 통한 제어 신호의 다른 예이다.
Case 1 GPIO 0 부트 시작 어드레스
1 L 제1 메모리부에 할당된 어드레스
2 H 제2 메모리부에 할당된 어드레스
Case 1 GPIO 0 GPIO 1 GPIO2 부트 시작 어드레스
1 L L L 0
2 L L H 2048
3 L H L 4096
4 L H H 8192
5 H L L 10240
6 H L H 12288
7 H H L 14336
8 H H H 16384
표 1을 참조하면, GPIO 0를 통하여 L 신호가 입력되면, 제1 메모리부(211)에 할당된 어드레스로 부트 시작되고, GPIO를 통하여 H 신호가 입력되면, 제2 메모리부(212)에 할당된 어드레스로 부트 시작될 수 있다. 즉, GPIO 0를 통하여 L 신호가 입력되면, 제1 메모리부(211)에 저장된 제1 펌웨어가 메인 펌웨어로 실행되고, GPIO 0를 통하여 H 신호가 입력되면, 제2 메모리부(212)에 저장된 제2 펌웨어가 메인 펌웨어로 실행될 수 있다.
표 2를 참조하면, 메모리부(210)가 8개의 메모리부, 예를 들어 8개의 다이(die)를 포함하고, 3개의 GPIO를 통하여 제어 신호가 입력되면, 3개의 GPIO의 “L” 및 “H” 조합에 따라 각 메모리부에 할당된 어드레스로 부트 시작될 수 있다.
이를 위하여, 메모리부(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를 통해 지시된 제어 신호에 따라 부트 시작 어드레스가 결정되며, 부트 시작 어드레스로부터 해당 어드레스 구간 내에서 순차적으로 부팅 과정이 수행될 수 있다. 이에 따르면, 전원 순단 또는 전원 불안정에 의해 일부 다이가 손상되더라도 다른 다이가 신속하게 메인 펌웨어의 기능을 하며 부팅될 수 있다.
단계 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으로부터 순차적으로 부팅을 수행할 수 있다.
단계 S620에서 제1 메모리부(211)의 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면(S630), 제2 메모리부(212)에 저장된 제2 펌웨어는 제1 메모리부(211)에 저장된 제1 펌웨어를 참조하여 업데이트된다(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).
다만, 단계 S670의 부팅도 실패하면, 제1 메모리부(211)의 제1 펌웨어 및 제2 메모리부(212)의 제2 펌웨어 모두 손상된 것으로 보고, 시스템이 종료되거나 재부팅이 시도될 수 있다(S690).
이와 같이, 메인 펌웨어로 동작할 펌웨어가 저장된 메모리부가 고정되지 않고 GPIO를 통해 수신되는 제어 신호에 따라 달라질 경우, 복수의 메모리부 중 하나가 손상되더라도, 손상되지 않은 메모리부를 통하여 신속하게 부팅하고, 손상된 메모리부를 복구 및 업데이트하는 것이 가능하다. 특히, 다이 별로 서로 중첩되지 않는 구간으로 어드레스가 할당될 경우, 각 다이는 메인 펌웨어로 동작하거나 백업 펌웨어로 동작할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 데이터 저장 장치의 동작 방법에 있어서,
    제1 메모리부에 저장된 제1 펌웨어 및 제2 메모리부에 저장된 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하는 단계,
    상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하는 단계,
    상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하는 단계,
    상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 상기 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하는 단계, 그리고
    상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하는 단계를 포함하는 동작 방법.
  2. 제1항에 있어서,
    상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)인 동작 방법.
  3. 제1항에 있어서,
    상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않는 동작 방법.
  4. 제3항에 있어서,
    상기 제1 펌웨어가 메인 펌웨어로 동작할 때 상기 제1 메모리부에 할당된 어드레스 구간 내 제1 부트 시작 어드레스로부터 부팅이 실행되고,
    상기 제2 펌웨어가 메인 펌웨어로 동작할 때 상기 제2 메모리부에 할당된 어드레스 구간 내 제2 부트 시작 어드레스로부터 부팅이 실행되는 동작 방법.
  5. 제3항에 있어서,
    상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1인 동작 방법.
  6. 제1항에 있어서,
    상기 제어 신호는 적어도 하나의 GPIO(general purpose input output)를 통하여 수신되는 동작 방법.
  7. 제1 펌웨어를 저장하는 제1 메모리부,
    제2 펌웨어를 저장하는 제2 메모리부, 그리고
    제어부를 포함하고,
    상기 제어부는,
    상기 제1 펌웨어 및 상기 제2 펌웨어 중 어느 하나가 메인 펌웨어로 동작하도록 지시하는 제어 신호를 수신하면, 상기 제어 신호에 따라 상기 제1 펌웨어를 메인 펌웨어로 실행하고,
    상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면, 상기 제1 펌웨어를 참조하여 상기 제2 펌웨어를 업데이트하고,
    상기 제1 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 실패하면, 상기 제2 펌웨어를 메인 펌웨어로 실행하며,
    상기 제2 펌웨어를 메인 펌웨어로 실행한 결과 부팅이 성공하면 상기 제2 펌웨어를 참조하여 상기 제1 펌웨어를 업데이트하도록 설정된 데이터 저장 장치.
  8. 제7항에 있어서,
    상기 제1 메모리부 및 상기 제2 메모리부는 하나의 NAND 플래시 메모리에 포함된 서로 다른 다이(Die)인 데이터 저장 장치.
  9. 제8항에 있어서,
    상기 제1 메모리부에 할당된 어드레스 구간은 상기 제2 메모리부에 할당된 어드레스 구간과 중첩되지 않는 데이터 저장 장치.
  10. 제9항에 있어서,
    상기 제1 메모리부에 할당된 어드레스 구간은 0 내지 2N-1이고, 상기 제2 메모리부에 할당된 어드레스 구간은 2N 내지 2N+1-1인 데이터 저장 장치.
PCT/KR2025/006603 2024-06-03 2025-05-15 데이터 저장 장치 및 그의 동작 방법 Pending WO2025254357A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20240072143 2024-06-03
KR10-2024-0072143 2024-06-03
KR1020250041976A KR20250173406A (ko) 2024-06-03 2025-04-01 데이터 저장 장치 및 그의 동작 방법
KR10-2025-0041976 2025-04-01

Publications (1)

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

Family

ID=97961202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2025/006603 Pending WO2025254357A1 (ko) 2024-06-03 2025-05-15 데이터 저장 장치 및 그의 동작 방법

Country Status (1)

Country Link
WO (1) WO2025254357A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000073693A (ko) * 1999-05-13 2000-12-05 윤종용 마이크로프로세서 응용시스템에서 부트-롬 구조 및 부트-롬 교체방법
KR20060120988A (ko) * 2005-05-23 2006-11-28 삼성전자주식회사 이중화된 부트롬을 사용하는 시스템 부팅 장치 및 방법
KR20090120541A (ko) * 2008-05-20 2009-11-25 주식회사 이노와이어리스 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법
KR20110084626A (ko) * 2010-01-18 2011-07-26 전지혜 시스템 부팅 제어 방법 및 장치
KR20120050685A (ko) * 2010-11-11 2012-05-21 삼성전자주식회사 디스플레이 장치 및 이에 적용되는 마이컴 코드 업데이트 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000073693A (ko) * 1999-05-13 2000-12-05 윤종용 마이크로프로세서 응용시스템에서 부트-롬 구조 및 부트-롬 교체방법
KR20060120988A (ko) * 2005-05-23 2006-11-28 삼성전자주식회사 이중화된 부트롬을 사용하는 시스템 부팅 장치 및 방법
KR20090120541A (ko) * 2008-05-20 2009-11-25 주식회사 이노와이어리스 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법
KR20110084626A (ko) * 2010-01-18 2011-07-26 전지혜 시스템 부팅 제어 방법 및 장치
KR20120050685A (ko) * 2010-11-11 2012-05-21 삼성전자주식회사 디스플레이 장치 및 이에 적용되는 마이컴 코드 업데이트 방법

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 (ja) デ−タ処理システムにおけるメモリモジユ−ル選択及び再構成装置
WO2012050275A1 (ko) 배터리팩의 멀티 슬레이브에 대한 순차적 아이디 설정방법 및 시스템
JP2001243110A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
CN111045703A (zh) 一种电池管理单元软件升级方法及系统
WO2013180387A1 (ko) 낸드 플래시 메모리 장치의 페이지 데이터 독출 방법
US11495191B2 (en) Reading extended display identification data (EDID) from display device to get native resolution of display device
WO2017164515A1 (ko) 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러
WO2020093529A1 (zh) 显示面板中存储器的保护电路及显示面板
WO2025254357A1 (ko) 데이터 저장 장치 및 그의 동작 방법
KR20020036717A (ko) 마이크로컴퓨터 및 그 제어 방법
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 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
KR20250173406A (ko) 데이터 저장 장치 및 그의 동작 방법
EP4542364A1 (en) Method, apparatus, and system for sharing memory device
TW202611689A (zh) 資料儲存裝置及其操作方法
JP2002196977A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
CN114281385A (zh) 电子设备的升级方法和升级装置
WO2017188620A1 (ko) 주 메모리의 에러 셀 회피를 위한 가상 메모리 관리 장치 및 그 방법
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