KR20160049956A - Mobile divece and operating method thereof - Google Patents

Mobile divece and operating method thereof Download PDF

Info

Publication number
KR20160049956A
KR20160049956A KR1020150100412A KR20150100412A KR20160049956A KR 20160049956 A KR20160049956 A KR 20160049956A KR 1020150100412 A KR1020150100412 A KR 1020150100412A KR 20150100412 A KR20150100412 A KR 20150100412A KR 20160049956 A KR20160049956 A KR 20160049956A
Authority
KR
South Korea
Prior art keywords
boot
boot images
images
shadowed
shadow
Prior art date
Application number
KR1020150100412A
Other languages
Korean (ko)
Other versions
KR102198609B1 (en
Inventor
양 유
최창은
김경호
전진완
주원철
로버트 브레넌
Original Assignee
삼성전자주식회사
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160049956A publication Critical patent/KR20160049956A/en
Application granted granted Critical
Publication of KR102198609B1 publication Critical patent/KR102198609B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

An operating method for shadowing one or more boot images of a mobile device comprises the following steps: setting a first register representing whether the boot images are configured or not by a host unit of the mobile device; and periodically accessing a shadow routine by a shadow control logic unit, thereby having improved operating speed and performance.

Description

모바일 장치 및 그것의 동작 방법{MOBILE DIVECE AND OPERATING METHOD THEREOF}≪ Desc / Clms Page number 1 > MOBILE DIVECE AND OPERATING METHOD THEREOF &

본 발명은 모바일 장치(mobile devices)와 관련된 것으로, 좀 더 구체적으로 모바일 장치의 부팅 이미지들의 섀도잉(shadowing) 방법에 관한 것이다.The present invention relates to mobile devices, and more particularly, to a method of shadowing boot images of a mobile device.

불휘발성 메모리(플래시(flash)) 스토리지는 스마트 폰들(smartohones), 테블릿(tanlets), 울트라 북들(ultra-books), 웨어러블 장치들(wearable devices) 및 다른 임베디드(embedded) 및 모바일 장치들의 중요한 요소이다. "장치가 부팅되지 않는 문제"에 대한 이슈(issue)는 최종 사용자들이 보수 또는 교체를 위해 모바일 장치를 리턴하는 이유의 매우 높은 비율을 포함한다. 이러한 장치가 부팅되지 않는 증상들은 플래시 스토리지 장치의 부팅 데이터(boot data)의 변형 때문이다. 부팅 데이터 변형은 갑작스런 전력 손실, 열악한 전력 서브시스템(subsystem) 디자인, 소프트웨어 결함들, 호스트 시스템 문제들, 부팅 영역의 의도하지 않은 겹쳐 쓰기, 또는 보호되지 않은 데이터와 같은 많은 원인들로부터 제어될 수 있다.Nonvolatile memory (flash) storage is an important component of smartphones, smartphones, tanlets, ultra-books, wearable devices and other embedded and mobile devices. to be. The issue of "device not booting" includes a very high percentage of reasons why end users return the mobile device for repair or replacement. Symptoms that these devices do not boot are due to variations in the boot data of the flash storage device. Boot data modifications can be controlled from many sources, such as sudden power loss, poor power subsystem design, software faults, host system problems, unintentional overwriting of the boot area, or unprotected data .

일반적으로, 부팅 이미지들의 디버깅은 부트 로더 이미지(boot loader image)가 실행된 이후에 인에이블되는(enabled) USB 기능을 통해 수행될 수 있다. 그러나, 일반적인 접근에서, 예를 들어, 갑작스런 전력 손실, 열악한 시스템 디자인, 소프트웨어 결함들 및/또는 장치 펌웨어(firmware) 구조의 약함 때문에, 부팅 파티션(partition)에 존재하는 부팅 이미지들이 변형되면, 모바일 장치들은 부팅될 수 없고, 특히 일반적으로 매우 제한된 디버깅 기능의 모바일 장치들의 제조 버전(version)에서, 부팅 이미지를 재 프로그램하는 쉬운 방법은 없다. Generally, debugging of boot images can be performed through a USB function enabled after the boot loader image is executed. However, in a typical approach, if the boot images present in the boot partition are modified due to, for example, sudden power loss, poor system design, software defects, and / or weak device firmware structure, Can not be booted and there is no easy way to reprogram the boot image, especially in the production version of mobile devices with generally limited debugging capabilities.

대부분의 경우, 그것은 시간 낭비 및 이러한 장치들의 수리 비용이 많이 든다. 이러한 문제들은 이러한 장치들의 최종 사용자들뿐만 아니라 제조 업체의 하부 라인, 부품 공급 업체 및/또는 유통 파트너들에게 영향을 미칠 수 있다.In most cases, it costs a lot of time and the repair costs of these devices. These problems can affect not only the end-users of these devices, but also the manufacturers' sub-lines, component suppliers and / or distribution partners.

본 발명의 목적은 향상된 성능을 갖는 모바일 장치 및 그것의 동작 방법을 제공하는 데에 있다.It is an object of the present invention to provide a mobile device with improved performance and a method of operation thereof.

본 발명의 실시 예에 따른 모바일 장치의 하나 이상의 부팅 이미지들(boot images)을 섀도잉(shadowing)하기 위한 동작 방법은 상기 모바일 장치의 호스트부에 의해, 하나 이상의 부팅 이미지들이 구성되었는지에 대한 여부를 나타내는 제1 레지스터를 설정하는 단계 및 섀도우 제어 로직부에 의해, 섀도우 루틴(routine)으로 주기적으로 진입하는 단계를 포함한다.An operating method for shadowing one or more boot images of a mobile device according to an embodiment of the present invention includes determining, by the host portion of the mobile device, whether one or more boot images are configured And setting the first register to a first state, and periodically entering the shadow routine by a shadow control logic unit.

본 발명의 실시 예에 따른 모바일 장치는 부팅 파티션들(boot partitions)에 대해 예약된 영역에 하나 이상의 부팅 이미지들(boot images)을 저장하는 제1 불휘발성 메모리, 사용자 파티션들에 대해 예약된 영역에 하나 이상의 사용자 이미지들을 저장하는 제2 불휘발성 메모리 및 상기 제1 불휘발성 메모리로부터 상기 하나 이상의 부팅 이미지들을 상기 제2 불휘발성 메모리의 상기 사용자 파티션들에 대해 예약된 상기 영역의 하나 이상의 섀도잉된 부팅 이미지들로 섀도잉하는 섀도우 제어 로직부를 포함한다.A mobile device according to an embodiment of the present invention includes a first non-volatile memory for storing one or more boot images in a reserved area for boot partitions, a second non-volatile memory for storing reserved areas for user partitions, Volatile memory for storing one or more user images; and a second nonvolatile memory for storing the one or more boot images from the first nonvolatile memory into one or more shadowed boot regions of the region reserved for the user partitions of the second non- And a shadow control logic portion that shadows images.

본 발명의 실시 예들에 따르면, 모바일 장치는 부팅 이미지들을 섀도잉한다. 이어 따라, 향상된 동작 속도 및 성능을 갖는 모바일 장치 및 그것의 동작 방법 제공된다.According to embodiments of the present invention, the mobile device shadows boot images. Subsequently, a mobile device with improved operating speed and performance and an operating method thereof are provided.

도 1은 본 발명의 실시 예에 따른 섀도우 제어 로직부를 포함하는 모바일 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 부팅 파티션들(boot partitions), 사용자 파티션들 및 부팅 파티션들의 섀도우 카피들을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 동적 섀도잉 기술을 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 부팅 이미지를 검증하기 위한 기술을 보여주는 순서도이다.
도 5는 본 발명의 실시 예에 따른 하나 이상의 부팅 이미지들의 섀도잉에 대한 기술을 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 부팅 실패를 감지하기 위한 기술을 보여주는 순서도이다.
도 7은 도 1의 섀도우 제어 로직부를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
1 is a block diagram illustrating a mobile device including a shadow control logic portion in accordance with an embodiment of the present invention.
2 is a block diagram illustrating shadow copies of boot partitions, user partitions, and boot partitions in accordance with an embodiment of the present invention.
3 is a block diagram illustrating a dynamic shadowing technique in accordance with an embodiment of the present invention.
4 is a flowchart illustrating a technique for verifying a boot image according to an embodiment of the present invention.
5 is a flow chart illustrating a technique for shadowing one or more boot images in accordance with an embodiment of the invention.
6 is a flowchart illustrating a technique for detecting a boot failure according to an embodiment of the present invention.
7 is a block diagram illustrating a computing system including the shadow control logic portion of FIG.

참조는 본 발명의 실시 예들을 상세히 설명하기로 하고, 예시들은 첨부 도면을 통해 도시된다. 다음의 상세한 설명에서, 다수의 특정 세부 사항들이 본 발명의 개념의 이해를 가능하도록 개시된다. 이 기술 분야에서 통상의 지식을 가진 사람은 이들 특정 세부 사항 없이 본 발명의 개념을 수행할 수 있음을 이해해야한다. 다른 예로서, 잘 알려진 방법, 절차, 요소, 회로 및 네트워크는 실시 예들의 불필요한 양상들을 분명하게 하기 위해서, 상세히 설명되지 않는다.Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the concepts of the present invention. It is to be understood that persons of ordinary skill in the art may implement the concepts of the present invention without these specific details. In other instances, well-known methods, procedures, elements, circuits, and networks have not been described in detail in order to make unnecessary aspects of the embodiments clear.

제1, 제2 와 같은 용어들은 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지 않는다. 이러한 용어들은 하나의 요소를 다른 요소로부터 구분하기 위해서 사용된다. 본 발명의 개념의 범위를 벗어나지 않고, 제1 서버는 는 제2 서버로 명명될 수 있고, 유사하게 제2 서버는 제1 서버로 명명될 수 있다.  The terms first and second can be used to describe various components, but the components are not limited by the terms. These terms are used to distinguish one element from another. Without departing from the scope of the inventive concept, the first server may be referred to as a second server, and similarly, the second server may be referred to as a first server.

본 발명의 개념의 설명에서 사용된 용어는 본 발명의 특정 실시 예들을 설명하기 위한 것이며, 본 발명의 개념을 제한하는 것으로 의도되지 않는다. 본 발명의 개념의 설명 및 첨부된 청구 범위에서 사용된 바와 같이, "a", "an" 및 "the"와 같은 단수 형태들은 명백하게 제시되지 않는 한, 복수형을 포함하는 것으로 의도된다. "및/또는"과 같은 용어는 열거된 항목들의 하나 이상의 모든 가능한 조합들을 포함한다. 본 발명의 상세한 설명에서 사용되는 "포함하는" 또는 "구성되는"과 같은 용어는 설명된 특징, 단계, 동작, 성분, 및/또는 구성요소의 존재를 명시하나, 추가적인 하나 이상의 특징, 단계, 동작, 성분, 구성요소 및/또는 그들의 그룹의 존재를 가능하게 한다.The terminology used in describing the concepts of the present invention is intended to illustrate specific embodiments of the invention and is not intended to limit the inventive concept. As used in the description of the concepts of the present invention and the appended claims, singular forms, such as "a," "an," and "the" are intended to include the plural, unless the context clearly dictates otherwise. The terms "and / or" include all possible combinations of one or more of the listed items. As used in the detailed description of the present invention, terms such as "comprising" or "comprising" specify the presence of stated features, steps, operations, components, and / or components, , Components, components and / or groups thereof.

본 발명의 실시 예들은 플래시 메모리와 같은 불휘발성 메모리 장치의 사용자 영역의 섀도우 파티션들(partitions)로 부팅 이미지들을 복제하기 위한 기술들 포함한다. 기술은 부팅 이미지 변형의 감지, 섀도우 파티션들로부터 부팅하기 위한 모바일 장치를 제어를 포함할 수 있다. 기술은 동적 섀도잉 및 섀도우 파티션들로부터 사용되는 블록들의 해제를 포함할 수 있다. 기술은 부팅 실패 회복 및 플래시 변환 계층(FTL) 펌웨어를 통한 불량 이미지의 보존을 포함할 수 있다. 부팅 이미지 변형의 실패들은 섀도우 파티션들을 사용하여 디버그 또는/및 회복될 수 있다.Embodiments of the present invention include techniques for replicating boot images to shadow partitions of a user area of a non-volatile memory device such as a flash memory. The technique may include detecting a boot image variation, controlling a mobile device to boot from shadow partitions. The technique may include dynamic shadowing and release of blocks used from shadow partitions. The technique may include boot failure recovery and retention of bad images through flash translation layer (FTL) firmware. Failures of boot image modification may be debugged and / or recovered using shadow partitions.

도 1은 본 발명의 실시 예에 따른 섀도우 제어 로직부(120)를 포함하는 모바일 장치(105)를 보여주는 블록도이다. 모바일 장치(105)는 코드(code) 스토리지 영역(110), 호스트부(125) 및 섀도우 제어 로직부(120)를 포함할 수 있다. 섀도우 제어 로직부(120)가 코드 스토리지부(110)와 분리된 것으로 도시되어 있지만, 섀도우 제어 로직(120)은 코드 스토리지부(110)의 일부분일 수 있다. 예를 들어, 섀도우 제어 로직부(120)는 펌웨어, 하드웨어 또는 이들의 결합 형태, 또는 불휘발성 장치(155) 및/또는 중앙 처리 장치(CPU)(135) 상 또는 내부에 위치할 수 있다. 코드 실행 블록(115)은 모바일 장치(105)의 예시 부팅 시퀀스(190)를 개시한다. CPU(135)는 레지스터들(registers)(130) 및 CPU 읽기 전용 메모리(ROM)(140)를 포함할 수 있다. ROM(140)은 불휘발성 메모리일 수 있다. CPU ROM(140)은 제1 CPU 부트 로더(boot loader) 이미지(145) 및 제2 CPU 부트 로더 이미지(150)를 포함할 수 있다. 다시 말해서, CPU ROM은 부팅 파티션들에 의해 예약된 영역에 하나 이상의 부팅 이미지들을 저장할 수 있다.1 is a block diagram illustrating a mobile device 105 that includes a shadow control logic portion 120 in accordance with an embodiment of the present invention. The mobile device 105 may include a code storage area 110, a host part 125 and a shadow control logic part 120. [ Shadow control logic 120 may be part of code storage 110, although shadow control logic 120 is illustrated as being separate from code storage 110. For example, shadow control logic 120 may be located on or in firmware, hardware, or a combination thereof, or non-volatile device 155 and / or central processing unit (CPU) 135. The code execution block 115 initiates the example boot sequence 190 of the mobile device 105. CPU 135 may include registers 130 and CPU read only memory (ROM) The ROM 140 may be a non-volatile memory. The CPU ROM 140 may include a first CPU boot loader image 145 and a second CPU boot loader image 150. In other words, the CPU ROM can store one or more boot images in the area reserved by the boot partitions.

코드 스토리지부(110)는 불휘발성 메모리(155)를 포함할 수 있다. 불휘발성 메모리(155)는 플래시 메모리, 불휘발성 자기 메모리(magneto resistive random access memory, MRAM) 모듈들(modules), 상 변화 메모리(phase-change memory, PRAM) 모듈들, 저항성 메모리 모듈들을 포함할 수 있다. 불휘발성 메모리(155)는 부트 논리 유닛0(boot logical unit 0, LU0) 및/또는 부트 LU1을 포함할 수 있다. 불휘발성 메모리(155)는 리플레이 보호된 메모리 블록(replay protected memory block, RPMB)(162)를 포함할 수 있다. 불휘발성 메모리(155)는 사용자 LUs(165)를 위한 영역을 포함할 수 있다. 사용자 LUs를 위한 영역은 부트 LU0 및/또는 부트 LU1과 같은 섀도잉된 부팅 이미지들을 포함할 수 있다. 불휘발성 메모리(155)는 운영 체제(OS) 커넬(kernel) 이미지(170), 시스템 및 사용자 데이터 이미지들(175)을 포함할 수 있다.The code storage unit 110 may include a nonvolatile memory 155. [ The non-volatile memory 155 may include flash memory, magneto resistive random access memory (MRAM) modules, phase-change memory (PRAM) modules, have. Non-volatile memory 155 may include boot logical unit 0 (boot logical unit 0, LU0) and / or boot LU1. The non-volatile memory 155 may include a replay protected memory block (RPMB) Non-volatile memory 155 may include an area for user LUs 165. The area for user LUs may include shadowed boot images such as boot LU0 and / or boot LU1. Non-volatile memory 155 may include an operating system (OS) kernel image 170, system and user data images 175.

호스트부(125)는 호스트 프로세스들(processes) 및 어플리케이션들(applications)을 실행할 수 있다. 호스트부(125)는 코드 스토리지부(110) 및/또는 섀도우 제어 로직부(120)와 통신에 관하여 연결될 수 있다. 예를 들어, 호스트부(125)는 하나 이상의 레지스터들(130) 및/또는 (132)을 업데이트(update) 및/또는 액세스할 수 있다. 섀도우 제어 로직부(120)는 하나 이상의 부팅 이미지들(제1 CPU 부트 로더 이미지(145) 및/또는 제2 CPU 부트 로더 이미지(150))을 불휘발성 메모리(155)의 하나 이상의 섀도잉된 부팅 이미지들(부트 LU0 및/또는 부트 LU1)로 섀도잉할 수 있다.The host unit 125 may execute host processes and applications. The host unit 125 may be connected for communication with the code storage unit 110 and / or the shadow control logic unit 120. For example, host portion 125 may update and / or access one or more registers 130 and / or 132. The shadow control logic portion 120 may store one or more boot images (the first CPU boot loader image 145 and / or the second CPU boot loader image 150) into one or more shadowed boot Images (boot LU0 and / or boot LU1).

모바일 장치(105)의 부트 시퀀스(190)의 코드 실행(115)에서 개시된 바와 같이, 특정한 순서로 발생할 수 있는 특정 코드 실행이 있다. 예를 들어, 부팅은 모바일 장치(105)의 전원이 켜졌을 때, ROM 코드 실행 내부의 CPU로부터 시작될 수 있다. 이와 같이, 부팅은 불휘발성 요소(155)의 부팅 파티션들/LUs를 처리할 수 있다. 좀 더 구체적으로, 제1 CPU 부트 로더 이미지(145)는 1의 내부 랜덤 액세스 메모리(internal random access memory, IRAM)에 로드될 수 있고, 제2 CPU 부트 로더 이미지(150)는 2의 IRAM 및/또는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)에 로드될 수 있다. 부트 로더 이미지(160) 3의 DRAM에 로드될 수 있고, OS 핵심 이미지들(175)는 5의 DRAM에 로드될 수 있다.There is a particular code execution that can occur in a particular order, as described in code execution 115 of the boot sequence 190 of the mobile device 105. For example, booting may be initiated from the CPU within the ROM code execution when the mobile device 105 is powered on. As such, booting can handle boot partitions / LUs of non-volatile element 155. More specifically, the first CPU bootloader image 145 may be loaded into one internal random access memory (IRAM), and the second CPU boot loader image 150 may be loaded into two IRAMs and / Or a dynamic random access memory (DRAM). Can be loaded into the DRAM of the boot loader image 160 (3), and the OS core images 175 can be loaded into the DRAM of 5.

도 2는 본 발명의 실시 예에 따른 부팅 파티션들(boot partitions)(205)(때때로, "부팅 이미지들"로 언급된다), 사용자 파티션들(215)(때때로 "사용자 이미지들"로 언급된다.) 및 부팅 파티션들의 섀도우 카피들(225)을 보여주는 블록(200)도이다. 부트 LU 섀도잉 루틴(shadowing routine)(220)은 섀도우 제어 로직부(도 1의 120)로부터 주기적으로 수행될 수 있다. 섀도우 제어 로직부(120)는 하나 이상의 부팅 이미지들(205)을 하나 이상의 섀도잉된 부팅 이미지들로(225) 섀도우할 수 있다.2 is a block diagram of a computer system 200 that includes boot partitions 205 (sometimes referred to as " boot images "), user partitions 215 (sometimes referred to as" user images " And the shadow copies 225 of the boot partitions. The boot LU shadowing routine 220 may be performed periodically from the shadow control logic portion (120 in FIG. 1). The shadow control logic portion 120 may shadow one or more boot images 205 to one or more shadowed boot images 225. [

모바일 장치(105)는 일반적으로, 화살표(237)로부터 개시된 바와 같이 하나 이상의 부팅 이미지들(205)로부터 부팅할 수 있다. 하나 이상의 부팅 이미지들(205)의 변형의 이벤트에서, 모바일 장치(105)는 화살표(239)로부터 도시된 바와 같이 하나 이상의 섀도우 부팅 이미지들(225)로부터 대신 부팅할 수 있다. 섀도우 제어 로직부(120)는 하나 이상의 부팅 이미지들(205) 내의 변형을 감지할 수 있다. 변형의 감지에 응답하여, 섀도우 제어 로직부(120)는 하나 이상의 섀도잉된 부팅 이미지들(225)로부터 부팅하기 위한 모바일 장치(105)를 제어할 수 있다.The mobile device 105 may generally boot from one or more boot images 205 as disclosed by arrow 237. In the event of a modification of one or more boot images 205, the mobile device 105 may instead boot from one or more shadow boot images 225 as shown from arrow 239. The shadow control logic 120 may detect a variation in one or more boot images 205. In response to detecting the deformation, the shadow control logic 120 may control the mobile device 105 to boot from one or more shadowed boot images 225.

좀 더 구체적으로, 플래시 변환 계층(flash translation layer, FTL)(230)은 물리적 어드레스들(235) 사이의 하나 이상의 포인터들(pointers)을 하나 이상의 부팅 이미지들(205)에서, 각각, 하나 이상의 섀도잉된 부팅 이미지들로(225) 업데이트할 수 있다. 논리 어드레스들(240)과 호스트부(도 1의 125) 인터페이스들 그리고 물리적 어드레스들(235)의 FTL 조작은 호스트부(125)으로부터 숨겨질 수 있다. 다르게 말하면, 섀도우 이미지들(225)이 호스트에서 볼 수 없으면, 외부 액세스로부터 보호될 수 있다. FTL(230)은 부팅 실패 감지 상의 섀도우 이미지들(225)로 포인터들을 업데이트할 수 있고, 원본 부팅 이미지들(305)은 논리 어드레스 공간(240)에서 운영하는 호스트부(125)에 액세스할 수 없게 된다. 하나 이상의 변질된 이미지들(205)은 연속적인 루트의 원인 및/또는 디버깅으로부터 보호될 수 있다.More specifically, a flash translation layer (FTL) 230 may map one or more pointers between physical addresses 235 to one or more shadow images 205 in one or more boot images 205, You can update (225) the boot images. The FTL operations of the logical addresses 240 and the host part 125 (FIG. 1) interfaces and physical addresses 235 may be hidden from the host part 125. In other words, if shadow images 225 are not visible on the host, they can be protected from external access. The FTL 230 may update the pointers with shadow images 225 on boot failure detection and the original boot images 305 may not be accessible to the host part 125 operating in the logical address space 240 do. One or more altered images 205 may be protected from cause and / or debug of subsequent roots.

도 3은 본 발명의 실시 예에 따른 동적 섀도잉 기술을 보여주는 블록도이다. 섀도우 제어 로직부(도 1의 120)은 사용자 파티션들(215)에 대해 예약된 영역 내의 이용 가능한 공간(305)의 양을 감지할 수 있고, 325에 도시된 바와 같이, 이용 가능한 공간(305)의 양이 미리 정해진 임계치(310) 이하인지 판단할 수 있다. 이용 가능한 공간(305)의 양이 미리 정해진 임계치(310) 이하라고 판단될 때, 섀도우 제어 로직부(120)은 가비지 콜랙션(garbage collection)을 위해 지정되고, 무효로 표시된 섀도우 부팅 이미지 카피들(225)을 발생시킬 수 있다. 그리고, 330에서 도시된 바와 같이, 섀도우 부팅 이미지 카피들(225)로부터 차지된 공간은, 사용자 파티션들(215)에 대해 예약된 영역으로 해제될 수 있다. 330에 도시된 바와 같이, 제2 이용 가능한 공간(315)의 양이 이용 가능한 공간(305)보다 작을 때, 사용자 파티션들(215)에 대해 이용 가능한 전체 공간은 증가한다. 이와 같이, 사용자 파티션들에 대해 스토리지 장치가 사용 가능한 밀도에 미치는 영향이 달성된다.3 is a block diagram illustrating a dynamic shadowing technique in accordance with an embodiment of the present invention. The shadow control logic portion 120 of FIG. 1 may sense the amount of available space 305 in the reserved area for user partitions 215 and may determine the available space 305, as shown at 325, It is possible to judge whether the amount is equal to or less than a predetermined threshold value 310. [ When it is determined that the amount of available space 305 is less than or equal to the predetermined threshold 310, the shadow control logic unit 120 is designated for garbage collection and the shadow boot image copies 225 Can be generated. And, as shown at 330, the space occupied from the shadow boot image copies 225 may be released into the reserved area for user partitions 215. [ As shown in 330, when the amount of second available space 315 is less than available space 305, the total available space for user partitions 215 increases. As such, an impact on the usable density of the storage device for user partitions is achieved.

335에 도시된 바와 같이, 이용 가능한 공간(320)의 양에 미리 정해진 임계치(310)보다 크다고 판단될 때, 섀도우 제어 로직부(120)은 하나 이상의 섀도잉된 부팅 이미지들(225)에 대한 사용자 파티션들(215)을 위해 예약된 영역 내에 할당된 공간을 다시 발생시킬 수 있다. 예를 들어, 장치가 덜 가득 차면(전체 부팅 파티션/LU 사이즈의 5배 이상의 밀도를 제공), 섀도우 제어 로직부(120)는 자동으로 사용자 영역에 부팅 파티션들을 복제하기 위한 섀도잉 루틴으로 진입할 수 있다. 다시 말해서, 사용자 파티션들(215)에 대해 예약된 불휘발성 메모리(155)의 영역 내의 블록들은 부팅 파티션들의 섀도잉을 수용하기 위해 해제 및 회수될 수 있다.The shadow control logic portion 120 may determine that the amount of available space 320 is greater than a predetermined threshold 310 as shown in 335, And recreate the allocated space within the reserved area for the partitions 215. [ For example, if the device is less full (providing a density of more than five times the full boot partition / LU size), the shadow control logic 120 automatically enters the shadowing routine to replicate boot partitions to the user area . In other words, blocks in the area of non-volatile memory 155 reserved for user partitions 215 may be freed and retrieved to accommodate the shadowing of boot partitions.

도 4는 본 발명의 실시 예에 따른 부팅 이미지를 검증하기 위한 기술을 보여주는 순서도(400)이다. 405 단계에서, 모바일 장치(도 1의 (105))는 전원이 공급된다. 호스트부(도 1의(125))는 ROM(도 1의 (145, 150))으로부터 부트 로더 이미지들로 채우기 위해 부팅 파티션들을 발생시킬 수 있다. 그리고, 410 단계에서, 호스트부(도 1의(125))는 시스템 전원이 공급된 후, 주요 부트 로더 이미지들을 실행시킬 수 있다. 415 단계에서, 호스트부(125)은 부트 LUs(도 2의 하나 이상의 부팅 이미지들(205))로부터 부트 로더를 실행시킬 수 있다. 420 단계에서, 호스트부 (125)는 OS 커넬(kernel)을 패치(fetch)할 수 있다.4 is a flowchart 400 illustrating a technique for verifying a boot image in accordance with an embodiment of the present invention. In step 405, the mobile device (105 in FIG. 1) is powered. The host unit (125 in FIG. 1) may generate boot partitions to fill the boot loader images from the ROM (145, 150). Then, in step 410, the host unit (125 in FIG. 1) may execute the main boot loader images after the system power is supplied. In step 415, the host unit 125 may execute the boot loader from the boot LUs (one or more boot images 205 in FIG. 2). In operation 420, the host unit 125 may fetch an OS kernel.

425 단계에서, 부트 로더 단계 및 OS 커넬 패칭(fetching) 단계가 성공적으로 패스(pass)되면, 호스트부(125)는 부팅 이미지들(205)이 잘 구성되고 검증되었음을 나타내는 1과 같은 미리 정의된 값으로 BOOT_SUCCESS 레지스터(resister)(도 1의 (130, 132))를 설정할 수 있다. BOOT_SUCCESS 레지스터는 다르게 또는 두 개의 상이한 상태들을 구별하기 위한 다른 알맞은 값들로 설정될 수 있다. BOOT_SUCCESS 는 임의의 적절한 메모리 영역에 가변적으로 저장될 수 있다. BOOT_SUCCESS 레지스터는 섀도우 이미지들(225)에 부팅 이미지들(205)의 양호한 데이터를 보존하는 것을 허용할 수 있다. BOOT_SUCCESS 레지스터는 섀도잉이 완료되지 않았을 경우, 섀도우 제어 로직부(120)이 섀도잉 프로세스를 시작하도록 부팅 파티션들의 이미지의 확인을 지시할 수 있다. 430 단계에서, 호스트부(125)은 OS 커넬을 실행할 수 있다.In step 425, when the boot loader step and the OS kernel fetching step are successfully passed, the host unit 125 determines whether the boot images 205 are well-formed and validated, such as 1, A BOOT_SUCCESS register (130, 132 in FIG. 1) can be set. The BOOT_SUCCESS register may be set to any other suitable value for differentiating between two different states. BOOT_SUCCESS can be variably stored in any suitable memory area. The BOOT_SUCCESS register may allow preserving good data of the boot images 205 in the shadow images 225. The BOOT_SUCCESS register may direct the shadow control logic 120 to verify the image of the boot partitions to start the shadowing process if the shadowing is not complete. In step 430, the host unit 125 may execute the OS kernel.

도 5는 본 발명의 실시 예에 따른 하나 이상의 부팅 이미지들의 섀도잉에 대한 기술을 보여주는 순서도(500)이다. 505 단계에서, 섀도우 루틴(routine)은 시작된다. 섀도우 제어 로직부(도 1의 (120))은 주기적으로 진입되는 섀도우 루틴을 발생시킬 수 있다. 특정 상태들에 도달하면, 섀도우 제어 로직부(120)은 부티 파티션들 및 섀도우 파티션들이 같은 이미지들을 갖도록 하나 이상의 부팅 파티션들(도 2의 (205))을 하나 이상의 섀도우 파티션들(도 2의 (225))로 섀도잉 되도록 한다.5 is a flowchart 500 illustrating a technique for shadowing one or more boot images in accordance with an embodiment of the present invention. In step 505, a shadow routine is started. The shadow control logic portion (120 in FIG. 1) may generate a shadow routine that enters periodically. Upon reaching certain states, the shadow control logic 120 may cause one or more boot partitions (205 in FIG. 2) to be partitioned into one or more shadow partitions 225). ≪ / RTI >

510 단계에서, 섀도우 루틴의 시작 시간에 대해, 판단은 BOOT_FROM_SHADOW 레지스터(도 1의 (130, 132))가 1과 같은 미리 정해진 값과 동일한지 여부에 따라 이루어질 수 있다. 값은 모바일 장치(105)가 하나 이상의 섀도잉된 부팅 이미지들(225)로부터 부팅하는지 또는 하나 이상의 섀도잉된 이미지들(225)로부터 부팅할 것인지를 나타낸다. 섀도우 루틴은 무 동작(no-operation, NOP)(515)에서 더 이상 지속되지 않고 종료된다. 0의 값은 모바일 장치(105)가 하나 이상의 섀도잉된 부팅 이미지들(225)로부터 부팅되지 않는 것을 나타낸다. 이러한 경우, 섀도우 루틴은 520 단계로 처리된다. BOOT_FROM_SHADOW 레지스터는 다르게 또는 두 개의 상이한 상태들을 구별하기 위한 다른 알맞은 값들로 설정될 수 있다. BOOT_FROM_SHADOW는 임의의 적절한 메모리 영역에 가변적으로 저장될 수 있다. In step 510, for the start time of the shadow routine, the determination may be made according to whether or not the BOOT_FROM_SHADOW register (130, 132 in FIG. 1) is equal to a predetermined value such as one. Value indicates whether the mobile device 105 will boot from one or more shadowed boot images 225 or from one or more shadowed images 225. [ The shadow routine is no longer terminated at no-operation (NOP) 515 and ends. A value of zero indicates that the mobile device 105 is not booted from one or more shadowed boot images 225. In this case, the shadow routine is processed in step 520. The BOOT_FROM_SHADOW register may be set to any other suitable value for differentiating between two different states. BOOT_FROM_SHADOW can be variably stored in any suitable memory area.

520 단계에서, 다른 판단은 해시 체크(hash check)가 동일한지에 따라 이루어질 수 있다. 좀 더 구체적으로, 섀도우 제어 로직부(도 1의 (120))는 하나 이상의 섀도잉된 부팅 이미지들(225)의 해시와 하나 이상의 부팅 이미지들(205)의 해시를 비교할 수 있다. 제1 및 제2 해시들의 비교의 일치에 응답하여, 이는 하나 이상의 섀도잉된 부팅 이미지들(225)이 하나 이상의 부팅 이미지들(205)과 일치하는지에 대해 나타낸다. 그리고, 루틴은 NOP(530)와 함께 종료된다. 다시 말해서, 루틴이 NOP(530)와 함께 종료되는 경우, 이는 섀도우 이미지들이 이미 구성되었음을 의미한다. 반대로, 제1 및 제2 해시들의 비교의 불일치에 응답하여, 루틴은 계속해서 535 단계를 수행하고, SHADOW_COMPLETE 레지스터는 하나 이상의 섀도잉된 이미지들(225)이 하나 이상의 부팅 이미지들(205)의 완전한 사본이 아직 아님을 의미하는 0과 같은 미리 정의된 값으로 설정될 수 있다. SHADOW_COMPLETE 레지스터는 다르게 또는 두 개의 상이한 상태들을 구별하기 위한 다른 알맞은 값들로 설정될 수 있다. SHADOW_COMPLETE는 임의의 적절한 메모리 영역에 가변적으로 저장될 수 있다. In step 520, another determination may be made as to whether the hash check is the same. More specifically, the shadow control logic portion (120 in FIG. 1) may compare the hash of one or more shadowed boot images 225 with the hash of one or more boot images 205. In response to the match of the comparison of the first and second hashes, it indicates whether one or more shadowed boot images 225 match one or more boot images 205. Then, the routine ends with the NOP 530. In other words, if the routine ends with NOP 530, this means that the shadow images have already been configured. Conversely, in response to the inconsistency of the comparison of the first and second hashes, the routine continues to step 535, where the SHADOW_COMPLETE register indicates that the one or more shadowed images 225 are complete It can be set to a predefined value, such as 0, which means the copy is not yet. The SHADOW_COMPLETE register may be set to any other suitable value for differentiating between two different states. SHADOW_COMPLETE may be variably stored in any suitable memory area.

540 단계에서, 하나 이상의 부팅 이미지들(205)이 사용자 LUs를 위해 예약된 사용자 영역의 하나 이상의 섀도잉된 부팅 이미지들(225)로 복제될 수 있다. 복제는 모바일 장치(105)의 성능에 영향을 미치지 않게 하기 위해서 증분 방식으로 수행될 수 있다. At step 540, one or more boot images 205 may be replicated to one or more shadowed boot images 225 of the user area reserved for user LUs. Replication may be performed in an incremental fashion so as not to affect the performance of the mobile device 105.

545 단계에서, 다른 판단은 해시 체크(hash check)가 동일한지에 따라 이루어질 수 있다. 이러한 판단은 525 단계를 통해 언급된 판단 방법과 동일하거나 유사하다. 해시 체크가 동일하지 않은 것으로 판단되는 경우, 섀도잉은 성공하지 못한다. 그리고, 섀도잉된 이미지들은 무효로 되고, 재구성을 필요로 한다. 그리고 나서, 사용자 영역에 부트 LUs의 추가적인 복제를 위해서 540 단계로 되돌아온다. In step 545, another determination may be made as to whether the hash check is the same. This determination is the same as or similar to the determination method mentioned in step 525. If it is determined that the hash check is not the same, shadowing is not successful. Then, the shadowed images are invalidated and require reconstruction. The process then returns to step 540 for additional replication of the boot LUs to the user area.

반면에, 해시 체크가 동일한 것으로 판단되는 경우, 550 단계가 진행된다. SHADOW_COMPLETE 레지스터는 1로 설정된다. 이는 섀도잉 프로세스가 완료되었음을 나타낸다. 호스트부(125)은 SHADOW_COMPLETE 상태 레지스터를 읽음으로써 상태(섀도잉 여부)를 알 수 있다. 하나 이상의 부팅 이미지들의 해시 코드들은 데이터 비교 및 에러 체크를 위해 상용 및 저장될 수 있다.On the other hand, if it is determined that the hash check is the same, step 550 is performed. The SHADOW_COMPLETE register is set to one. This indicates that the shadowing process is complete. The host unit 125 can know the state (whether or not to shadow) by reading the SHADOW_COMPLETE status register. The hash codes of one or more boot images may be stored and stored for data comparison and error checking.

섀도우 제어 로직부(도 1의 (120))은 섀도잉 파티션들로써 사용자 파티션의 물리적 영역들을 할당할 수 있다. 이러한 영역들의 전체 사이즈는 부팅 파티션들(부트 LUs)의 전체 사이즈와 동일할 수 있다. 섀도우 제어 로직부(120)는 성능 및 안정성 개선을 위해 싱글 레벨 셀(single-level cell, SLC) 모드로 하나 이상의 섀도잉된 부팅 이미지들을 추가적으로 구성할 수 있다. 섀도우 제어 로직부(120)는 부팅 파티션들로부터 데이터를 읽을 수 있고, 장치 유휴 시간 동안, 사용자 파티션에 저장된 섀도잉된 부팅 이미지들로 데이터를 쓸 수 있다. The shadow control logic portion (120 in FIG. 1) may allocate physical regions of the user partition as shadowing partitions. The total size of these areas may be equal to the total size of boot partitions (boot LUs). The shadow control logic 120 may additionally configure one or more shadowed boot images in a single-level cell (SLC) mode for improved performance and stability. The shadow control logic portion 120 can read data from the boot partitions and write data to the shadowed boot images stored in the user partition during the device idle time.

모바일 장치(105)의 유휴 상태를 가져오는 호스트 커맨드로부터 섀도잉 프로세스가 중단되는 경우, 섀도우 제어 로직부(120)는 프로세스를 추적할 수 있다. 모바일 장치(105)가 다시 유휴 상태로 들어가는 경우, 섀도우 제어 로직부(120)는 섀도잉 프로세스가 완료될 때까지, 섀도잉 프로세스를 재개할 수 있다. 이후에, 섀도우 제어 로직부(120)는 해시 체킹을 수행할 수 있고, SHADOW_COMPLETE 상태 레지스터를 섀도잉 프로세스가 완료되었음을 나타내는 1로 설정할 수 있다. 섀도우 파티션들에 대한 블록들의 물리적인 위치는 고정될 필요는 없다. 섀도우 제어 로직부(120)는 섀도우 파티션들의 블록들의 물리적인 위치들을 추적할 수 있다. 도 5에 도시된 단계들은 순서대로 일어날 필요는 없고, 상이한 순서 및/또는 중간 단계에서 발생할 수 있다.If the shadowing process is aborted from a host command that brings the mobile device 105 to an idle state, the shadow control logic unit 120 may track the process. If the mobile device 105 enters the idle state again, the shadow control logic portion 120 may resume the shadowing process until the shadowing process is complete. Thereafter, the shadow control logic unit 120 may perform hash checking, and may set the SHADOW_COMPLETE status register to 1, indicating that the shadowing process is complete. The physical location of the blocks for the shadow partitions need not be fixed. The shadow control logic 120 may track the physical locations of the blocks of the shadow partitions. The steps shown in Fig. 5 need not occur in order, but may occur in different orders and / or intermediate steps.

도 6은 본 발명의 실시 예에 따른 부팅 실패를 감지하기 위한 기술을 보여주는 순서도(600)이다. 모바일 장치(105)의 부팅 프로세스 동안, CPU ROM(도 1의 (140))의 주요한 부트 로더들(도 1의 (145, 150))은 첫 번째로 실행된다. 주요한 부트 로더들은 호스트부(도 1의 (125))를 통해 불휘발성 메모리(도 1의 (155))로 초기화 명령 시퀀스들을 발생시킬 수 있다. 예를 들어, BOOT_SUCCESS레지스터가 1로 설정되는 경우, 섀도우 제어 로직부(도 1의 (120))는 부팅 파티션의 부팅 이미지들(도 2의 (205))이 양호한지에 대해 추정할 수 있고, 부팅 이미지들은 동적 섀도잉 프로세스에서 섀도잉된 부팅 이미지들로 복제될 수 있다.FIG. 6 is a flowchart 600 illustrating a technique for detecting a boot failure according to an embodiment of the present invention. During the boot process of the mobile device 105, the primary boot loaders (145, 150 in FIG. 1) of the CPU ROM (140 in FIG. 1) are executed first. The primary boot loaders may generate initialization command sequences into the non-volatile memory (155 in FIG. 1) via the host portion (125 in FIG. 1). For example, if the BOOT_SUCCESS register is set to 1, the shadow control logic portion (120 in FIG. 1) can estimate that boot images (205 in FIG. 2) of the boot partition are good, Images can be replicated to shadowed boot images in a dynamic shadowing process.

예를 들어, BOOT_SUCCESS 레지스터가 0의 값을 갖는 경우, 섀도우 제어 로직부(120)는 호스트 초기화 발급 요청들의 전체 개수를 추적하기 위한 INIT_CYCLE 내부 카운터를 유지할 수 있다. BOOT_SUCCESS 레지스터가 0의 값으로부터 1의 값으로 변화되는 경우, INIT_CYCLE 카운터는 0의 값으로 클리어(clear)될 수 있다. For example, if the BOOT_SUCCESS register has a value of zero, the shadow control logic unit 120 may maintain an INIT_CYCLE internal counter to track the total number of host initiation issuance requests. If the BOOT_SUCCESS register changes from a value of 0 to a value of 1, the INIT_CYCLE counter can be cleared to a value of zero.

하나 이상의 부팅 이미지들이 구성되지 않음(도 5의 520 단계)을 나타내는 BOOT_SUCCESS 레지스터의 판단에 응답하여, 섀도우 루틴은 도 6의 605 단계와 같이 처리될 수 있다. 섀도우 제어 로직부(120)는 모바일 장치(105)의 호스트부(125)로부터 초기화 요청들의 개수를 카운트할 수 있다. 섀도우 제어 로직부(120)는 초기화 요청의 개수가 미리 정해진 임계치(20)를 초과하는지 여부에 대해 판단할 수 있다.In response to the determination of the BOOT_SUCCESS register indicating that one or more boot images are not configured (step 520 of FIG. 5), the shadow routine may be processed as in step 605 of FIG. The shadow control logic unit 120 may count the number of initialization requests from the host unit 125 of the mobile device 105. [ The shadow control logic unit 120 may determine whether the number of initialization requests exceeds a predetermined threshold 20. [

초기화 요청들의 개수가 미리 정해진 임계치를 초과하지 않는 경우, 루틴은 초기화 사이클(cycle)조건이 충족되지 않음을 의미하는 NOP(610)에서 종료되고, 호스트부(125)는 더 많은 부팅 재시도들을 수행할 필요가 있다. 반면에, 615 단계에서, 섀도우 제어 로직부(120)는 SHADOW_COMPLETE 레지스터가 하나 이상의 부팅 이미지들(도 2의 (205))이 하나 이상의 섀도잉된 부팅 이미지들로 완벽하게 섀도잉되었는지 여부를 판단할 수 있다. If the number of initialization requests does not exceed the predetermined threshold, the routine ends at NOP 610, which means that the initialization cycle condition is not satisfied, and the host unit 125 performs more boot retries Needs to be. On the other hand, in step 615, the shadow control logic unit 120 determines whether the SHADOW_COMPLETE register has completely shadowed one or more boot images (205 in FIG. 2) into one or more shadowed boot images .

SHADOW_COMPLETE 레지스터가 1이 아니면(0), 루틴은 모바일 장치(105)의 부팅이 실패하기 전에 섀도잉 프로세스가 제대로 완료되지 않음을 의미하는 NOP(620)에서 종료될 수 있다. 반면에, 하나 이상의 부팅 이미지들이 하나 이상의 섀도잉된 부팅이미지들로 완벽하게 섀도잉됨(SHADOW_COMPLETE=1)을 나타내는 제2 레지스터에 의한 판단에 응답하여, 섀도우 제어 로직부(120)는 하나 이상의 부팅 이미지들(도 2의 (205))의 제1 해시와 하나 이상의 섀도잉된 부팅 이미지들(도 2의 (225))의 제2 해시를 비교할 수 있다.If the SHADOW_COMPLETE register is not equal to one (0), the routine may be terminated at NOP 620, which means that the shadowing process is not properly completed before the mobile device 105 fails to boot. On the other hand, in response to the determination by the second register that one or more boot images are completely shadowed (SHADOW_COMPLETE = 1) with one or more shadowed boot images, the shadow control logic portion 120 may determine that one or more boot images (205 in FIG. 2) and the second hash of one or more shadowed boot images (FIG. 2, 225).

다시 말해서, 섀도우 제어 로직부(120)는 호스트부(125)로부터의 초기화 요청들의 개수가 미리 정해진 임계치(20)보다 큰지에 대해 판단하는 경우, 섀도우 제어 로직부(120)은 현재 부팅 파티션 이미지들의 해시와 섀도우 파티션들 내의 카피된 이미지들을 비교하기 위한 해시 체킹 프로세스(hash checking process)를 수행할 수 있다. 이러한 해시 체킹 프로세스의 기간은 모바일 장치(105)의 해시 체킹 기간 레지스터를 통해 호스트부(125)에 의해 프로그래밍 할 수 있는 'X' 번호 설정에 의존할 수 있다. 예를 들어, 모바일 장치(105)는 20의 해시 체킹 기간에 대한 디폴트(default) 값을 가질 수 있다.In other words, when the shadow control logic unit 120 determines that the number of initialization requests from the host unit 125 is larger than the predetermined threshold value 20, the shadow control logic unit 120 determines that the current boot partition images A hash checking process may be performed to compare the hashed and copied images within the shadow partitions. The duration of this hash checking process may depend on the setting of the 'X' number that can be programmed by the host unit 125 through the hash checking period register of the mobile device 105. For example, the mobile device 105 may have a default value for 20 hash checking periods.

625 단계에서, 섀도우 제어 로직부(120)가 부팅 파티션(LU) 이미지 변형을 의미할 수 있는 해시 코드 불일치를 찾는 경우, 호스트 초기화 재시도의 하이 넘버(high number)는 부팅 이미지 변형의 근본 원인일 수 있다. 이러한 실패는 자동적으로 감지될 수 있다. 635 단계에서, 섀도우 제어 로직부(120)는 하나 이상의 부팅 파티션들 의 논리 어드레스 포인터들을 업데이트하기 위한 FTL을 물리적 부트 영역에서 섀도잉된 파티션들로 발생시킬 수 있다. 640 단계에서, 섀도우 제어 로직부(120)는 호스트부(125)에 알리기 위해 BOOT_FROM_SHADOW 레지스터를 1로 설정할 수 있다. 다음 부팅은 사용자 영역의 하나 이상의 섀도우 파티션들로부터 부팅된다.In step 625, if the shadow control logic 120 finds a hash code mismatch that may mean a boot partition (LU) image modification, the high number of host initialization attempts is the root cause of the boot image modification . This failure can be detected automatically. In operation 635, the shadow control logic unit 120 may generate the FTL for updating the logical address pointers of one or more boot partitions to the shadowed partitions in the physical boot area. In step 640, the shadow control logic unit 120 may set the BOOT_FROM_SHADOW register to 1 to notify the host unit 125. [ The next boot will boot from one or more shadow partitions in the user area.

호스트부(125)는 섀도우 파티션들로부터 부팅 후, OS의 BOOT_FROM_SHADOW 레지스터를 체크할 수 있고, 추가적으로, 동작을 취하는 사용자를 알리는 사용자에 대한 메시지를 표시할 수 있다. 반면에, 625 단계에서, 섀도우 제어 로직부(120)가 해시 체크가 동일함(해시들이 동일한)을 찾으면, 루틴은 부팅이 실패했음을 의미하는 NOP(630)에서 종료되고, 변형은 해시들의 매치 때문에 부팅 파티션들에서 반드시 발견되는 것은 아니다.After booting from the shadow partitions, the host unit 125 can check the BOOT_FROM_SHADOW register of the OS and additionally display a message to the user informing the user to take action. On the other hand, if, in step 625, the shadow control logic 120 finds that the hash check is the same (hashes are the same), the routine ends at NOP 630, which means that boot failed, It is not necessarily found in boot partitions.

다르게 말하면, 625 단계에서, 하나 이상의 부팅 이미지들의 해시와 하나 이상의 섀도잉된 부팅 이미지들의 해시의 비교에 따른 불일치에 응답하여, 섀도우 제어 로직부(120)는 하나 이상의 부팅 이미지들이 변형되었음을 추측할 수 있다. 635 단계에서, FTL은 하나 이상의 섀도잉된 부팅 이미지들 각각에 대한, 하나 이상의 부팅 이미지들로부터 하나 이상의 포인터들을 업데이트할 수 있다. 640 단계에서, 섀도우 제어 로직부(120)는 모바일 장치(105)가 하나 이상의 섀도잉된 부팅 이미지들로 부팅되는 것을 나타내는 1과 같은 미리 정해진 값으로 BOOT_FROM_SHADOW 레지스터를 설정할 수 있다. In other words, in step 625, in response to a discrepancy due to a comparison of the hash of one or more boot images and the hash of one or more shadowed boot images, the shadow control logic 120 may assume that one or more boot images have been modified have. In step 635, the FTL may update one or more pointers from one or more boot images, for each of the one or more shadowed boot images. In operation 640, the shadow control logic unit 120 may set the BOOT_FROM_SHADOW register to a predetermined value, such as 1, indicating that the mobile device 105 is booted with one or more shadowed boot images.

도 6에 도시된 단계는 도시된 순서대로 일어날 필요는 없고, 상이한 순서 및/또는 중간 단계에서 발생할 수 있다.The steps shown in Fig. 6 need not occur in the order shown, but may occur in different orders and / or intermediate steps.

아래의 테이블 1은 본 발명에서 설명된 다양한 레지스터들에 대한 이해를 돕기 위해 제공된다.Table 1 below is provided to help understand the various registers described in the present invention.

레지스터 이름Register name 종류Kinds 종류 정의Type Definitions 용법usage BOOT_SUCCESSBOOT_SUCCESS R/W/CPR / W / CP 레시스터는 정전 및/또는 하드웨어 리셋에 의해 값이 삭제된 후 쓰기를 할 수 있다.The resolver can write after the value is erased by power failure and / or hardware reset. 호스트부는 모든 부팅 사이클(booting cycle)이 완료된 후 레지스터를 리셋할 수 있다. 레지스터는 모든 장치의 전원이 켜질 때 자동적으로(펌 웨어 에 의해서) 리셋할 수 있다.The host can reset the registers after all boot cycles have been completed. The register can be reset automatically (by the firmware) when all devices are powered on. SHADOW_COMPLETESHADOW_COMPLETE R/W/ER / W / E 레지스터는 정전, 하드웨어 리셋 및/또는 소프트웨어 리셋 후 값을 유지하면서 여러 번 쓰기를 할 수 있다. 또한 레지스터는 읽을 수 있다.Registers can be written multiple times while maintaining values after power failure, hardware reset, and / or software reset. The registers can also be read. 레지스터는 호스트부 및/또는 장치 펌웨어의 섀도잉 프로세스의 완료를 알리기 위한 상태 레지스터일 수 있다. The register may be a status register for indicating the completion of the shadowing process of the host unit and / or the device firmware. BOOT_FROM_SHADOWBOOT_FROM_SHADOW R/W/ER / W / E 레지스터는 정전, 하드웨어 리셋 및/또는 소프트웨어 리셋 후 값을 유지하면서 여러 번 쓰기를 할 수 있다. 또한 레지스터는 읽을 수 있다.Registers can be written multiple times while maintaining values after power failure, hardware reset, and / or software reset. The registers can also be read. 레지스터는 하나 이상의 섀도잉된 파티션들로부터 현재 및 다음 부팅될 호스트부 및/또는 장치 펌웨어를 알리기 위한 상태 레지스터일 수 있다.The register may be a status register for informing the host and / or device firmware to be current and next booted from one or more shadowed partitions.

도 6에 도시된 단계는 도시된 순서대로 일어날 필요는 없고, 상이한 순서 및/또는 중간 단계에서 발생할 수 있다.The steps shown in Fig. 6 need not occur in the order shown, but may occur in different orders and / or intermediate steps.

아래의 테이블 1은 본 발명에서 설명된 다양한 레지스터들에 대한 이해를 돕기 위해 제공된다. Table 1 below is provided to help understand the various registers described in the present invention.

도 7은 도 1의 섀도우 제어 로직부를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다. 도 7을 참조하면, 컴퓨팅 시스템(700)은 클럭(clock)(710), 랜덤 액세스 메모리(Random access memory, RAM)(715), 사용자 인터페이스(720), 베이스밴드 칩 세트(baseband chipset)와 같은 모뎀(modem)(725), 섀도우 제어 로직부(730), 솔리드 스테이트 드라이브 /디스크(solid state drive/disk)(SSD)(740), 메모리 컨트롤러(745), 및/또는 프로세서(735), 전기적으로 연결된 시스템 버스(705)를 포함한다. 도 7의 섀도우 제어 로직부(730)는 상술된 섀도우 제어 로직부(120)과 동일하고, 시스템 버스(705)와 전기적으로 연결된다. 섀도우 제어 로직부(730)은 클럭(710), RAM(715), 메모리 컨트롤러(745), 및/또는 프로세서(735)를 포함하거나 인터페이스할 수 있다.7 is a block diagram illustrating a computing system including the shadow control logic portion of FIG. 7, a computing system 700 includes a processor 710, such as a clock 710, a random access memory (RAM) 715, a user interface 720, a baseband chipset, A solid state drive / disk (SSD) 740, a memory controller 745, and / or a processor 735, an electrical (not shown) And a system bus 705 connected to the system bus 705. The shadow control logic portion 730 of FIG. 7 is the same as the shadow control logic portion 120 described above, and is electrically connected to the system bus 705. Shadow control logic 730 may include or interface with clock 710, RAM 715, memory controller 745, and / or processor 735.

"장치가 부팅하지 않는" 문제는 부트 논리부들(부팅 파티션들)의 부트 코드 이미지 변형으로부터 발생되고, 본 발명의 실시 예들은 모바일 장치가 이러한 실패의 회복을 도울 수 있다. 본 발명의 실시 예들에 따르면, 불휘발성 메모리(플래시 스토리지 장치)의 펌웨어는 부트 논리부들(부팅 파티션들)의 콘텐츠를 물리적 어드레스 공간의 이동 작업을 펌웨어 내부 데이터를 통해 사용자 논리부들(사용자 파티션들)로 자동적으로 복사할 수 있다. 부팅 이미지들의 복사된 카피들은 부트 논리 유닛들에 있는 오리지널(original) 이미지들과 동일한 해시 데이터를 포함한다. 해시 데이터는 오류 체크를 위해 유지될 수 있다. 사용자 파티션의 복사된 카피들은 섀도우 파티션들이라 명명된다. The "device does not boot" problem arises from the boot code image modification of boot logical units (boot partitions), and embodiments of the present invention can help the mobile device recover from this failure. According to embodiments of the present invention, the firmware of the non-volatile memory (flash storage device) is used to transfer the contents of the boot logical units (boot partitions) to user logical units (user partitions) via firmware internal data, Can be copied automatically. The copied copies of the boot images contain the same hash data as the original images in the boot logical units. The hash data can be maintained for error checking. Copied copies of the user partition are named shadow partitions.

"장치가 부팅되지 않는" 문제에 의한 부팅 파티션들의 코드 변형이 발생하는 경우, 펌웨어는 호스트로부터 발생되는 연속적인 초기화 재시도 요청들을 기반으로 실패를 자동적으로 감지할 수 있다. 이러한 재시도 임계치는 호스트로부터 설정가능하고, 디폴트 값을 가질 수 있다. 실패 감지 기준 값과 임계치가 일치하면, 펌웨어 FTL 계층은 자동적으로 오리지널 부팅 코드 이미지들의 유효한 사본들을 포함하는 사용자 영역의 섀도우 파티션들을 가리키는 부팅 파티션들의 물리적 어드레스 테이블을 업데이트한다. If code changes occur in the boot partitions due to a "device not booting" problem, the firmware can automatically detect failures based on subsequent initialization retry requests from the host. These retry thresholds are configurable from the host and may have default values. If the failure detection reference value and the threshold match, the firmware FTL layer automatically updates the physical address table of the boot partitions that point to the shadow partitions of the user area containing valid copies of the original boot code images.

그러므로, 모바일 장치가 다시 부팅을 시도할 때, 부팅 코드 데이터는 호스트의 섀도우 파티션들로부터 패치될 수 있다. 호스트가 논리적 어드레스 공간에서 동작하고 펌웨어 FTL 계층이 불휘발성 메모리 스토리지 장치의 내부의 포인터 업데이트를 다룰 때, 본 발명의 근본적인 측면들은 호스트 하드웨어 및 소트프웨어에 보이지 않을 수 있다. 실패 조건은 루트(root) 발생 및 디버깅(debugging)을 위해 보존될 수 있다.Thus, when the mobile device attempts to reboot, the boot code data may be patched from the shadow partitions of the host. When the host operates in the logical address space and the firmware FTL layer handles pointer updates inside the non-volatile memory storage device, the essential aspects of the invention may not be visible to the host hardware and software. Failure conditions can be preserved for root generation and debugging.

본 발명의 다양한 실시 예들은 최소한의 호스트 소프트웨어의 개입으로 구현될 수 있다. 부팅 파티션들/LUs의 다양한 크기들은 수백 메가바이트(megabyte) 이상만큼 큰 용량을 지원될 수 있다. 몇몇 실시 예들로서, 섀도우 제어 로직부(120)은 부트 LU에 위치한 경우, OS 커널을 섀도잉할 수 있다. 증분 복제는 백그라운드(background) 및/또는 장치 유휴 시간 동안 수행되므로 성능에 영향을 미치지 않는다. 더 나아가, 섀도잉은 동적이고, 장치가 가득 차있을 때, 해제될 수 있기 때문에, 밀도의 손실이 없다.Various embodiments of the invention may be implemented with minimal host software intervention. Different sizes of boot partitions / LUs can be supported with capacities as large as several hundred megabytes or more. In some embodiments, the shadow control logic portion 120 may shadow the OS kernel when located in the boot LU. Incremental replication is performed during the background and / or device idle time and does not affect performance. Furthermore, shadowing is dynamic and there is no loss of density because the device can be released when it is full.

상기의 설명은 본 발명의 개념의 특정 양상들이 구현될 수 있는 기계 또는 적합한 기계의 간략하고 일반적인 설명을 제공한다. 일반적으로, 기계는 프로세서들, 메모리(RAM, 판독 전용 메모리(read-only memory, ROM) 또는 다른 보존 저장 매체), 스토리지 장치들, 비디오 인터페이스 및/또는 입/출력 인터페이스 포트들(ports)에 접근하기 위한 시스템 버스를 포함한다.The foregoing description provides a brief, general description of a machine or a suitable machine upon which certain aspects of the inventive concepts may be implemented. In general, a machine may be a processor, a processor, a memory (RAM, read-only memory, ROM or other storage medium), storage devices, a video interface, and / The system bus.

기계는 키보드들, 마우스들과 같은 일반적인 입력 장치들의 입력으로부터 제어될 수 있다. 뿐만 아니라. 기계는 다른 기계로부터 수신된 가상 현실(virtual reality, VR) 환경, 생체 인식 피드백, 또는 다른 입력 신호와의 상호작용 지시로부터 제어될 수 있다. 본 발명에서 사용된 "기계"라는 용어는 신호 기계, 가상 기계 또는 기계들과 통신에 대하여 연결된 시스템, 가상 기계들 또는 함께 동작하는 장치들을 아울러서 사용된다. 예시적은 기계들은 개인 컴퓨터, 워크스테이션들(workstations), 서버들, 휴대용 컴퓨터들, 핸드헬드(handheld) 장치들, 휴대폰들, 테블렛들(tablets)과 같은 컴퓨팅 장치들뿐만 아니라, 개인 또는 공용 수송 장치(자동차, 기차, 택시)와 같은 수송 장치들을 포함한다.The machine can be controlled from the input of common input devices such as keyboards, mice, and the like. As well as. The machine may be controlled from a virtual reality (VR) environment received from another machine, biometric feedback, or an interaction indication with another input signal. As used herein, the term "machine" is used in conjunction with a signal machine, a virtual machine, or a system connected to communicate with a machine, virtual machines or devices operating together. Examples of such machines include personal computers, workstations, servers, portable computers, handheld devices, cellular phones, computing devices such as tablets, as well as personal or public transport And transport devices such as devices (automobiles, trains, taxis).

장치는 프로그래머블(programmable) 또는 프로그램 할 수 없는(non-programmable) 로직 장치들 또는 어레이들, 응용 주문형 집적 회로들(Application Specific Integrated Circuits, ASICs), 임베디드 컴퓨터들, 스마트 카드들과 같은 임베디드 컨트롤러들(embedded controllers)을 포함할 수 있다. 기계는 네트워크 인터페이스, 모뎀 또는 다른 통신에 대한 연결을 통해 하나 이상의 원격 기계들과 하나 이상의 연결들을 이용할 수 있다. 기계들은 인트라넷(intranet), 로컬 영역 네트워크들, 광역 네트워크들과 같은 물리적 및/또는 논리적 네트워크 방법을 통해 상호 연결될 수 있다. 당업자는, 무선 주파수(RF), 위성, 마이크로파(microwave), 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineer, IEEE) 545.11, 블루투스, 광, 적외선, 케이블, 레이저를 포함하는 네트워크 통신이 다양한 연결 및/또는 무선 단거리 또는 장거리 수송 및 프로토콜임을 이해할 수 있다.The devices may be programmable or non-programmable logic devices or arrays, application specific integrated circuits (ASICs), embedded computers, embedded controllers such as smart cards embedded controllers. A machine may utilize one or more connections with one or more remote machines via a connection to a network interface, modem, or other communication. The machines may be interconnected via physical and / or logical network methods such as intranets, local area networks, wide area networks. Those skilled in the art will appreciate that network communications including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 545.11, Bluetooth, optical, infrared, / ≪ / RTI > or wireless short-range or long-distance transport and protocol.

본 발명의 실시 예들은 기능들, 절차들, 데이터 구조들, 어플리케이션 프로그램들을 포함하는 관련 데이터와 함께 또는 언급하여 설명될 수 있다. 관련 데이터는 RAM, ROM과 같은 휘발성 및/또는 불휘발성 메모리 또는 다른 스토리지 장치들 및 하드 드라이브들, 플로피 디스크들(floppy-disks), 광 스토리지, 테이블들, 플래시 메모리 스틱들(memory sticks), 생체 정보 스토리지 등을 포함하는 관련 저장 미디어에 저장될 수 있다. 관련 데이터는 압축 또는 암호화 포맷에서 사용될 수 있는 패킷들, 시리얼 데이터(serial data), 병렬 데이터, 전파 신호 등과 같은 형태의 물리적 및/또는 논리적 네트워크를 포함하는 운송 환경들을 통해 전송될 수 있다. 관련 데이터는 분산 환경에서 사용되고, 기계 액세스에 대해 국부적으로 및/또는 원격적으로 저장될 수 있다. Embodiments of the present invention may be described in conjunction with or with reference to related data, including functions, procedures, data structures, application programs. Related data may include volatile and / or nonvolatile memory such as RAM, ROM or other storage devices and hard drives, floppy-disks, optical storage, tables, flash memory sticks, Information storage, and the like. Relevant data may be transmitted over transport environments that include physical and / or logical networks in the form of packets, serial data, parallel data, radio signals, etc., that may be used in a compressed or encrypted format. The relevant data is used in a distributed environment and can be stored locally and / or remotely for machine access.

이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, an optimal embodiment has been disclosed in the drawings and specification. Although specific terms have been employed herein, they are used for purposes of illustration only and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will appreciate that various modifications and equivalent embodiments are possible without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

105: 모바일 장치 170: OS 커넬 이미지
110: 스토리지 영역 175: 사용자 데이터 이미지들
115: 코드 실행 블록 700: 컴퓨팅 시스템
120: 섀도우 제어 로직 영역 705: 버스
125: 호스트부 710: 클럭
132: 레지스터 715: RAM
135: CPU 720: 사용자 인터페이스
140: CPU ROM 725: 모뎀
145: 제1 CPU 부트 로더 이미지 730: 섀도우 제어 로직부
150: 제2 CPU 부트 로더 이미지 735: 프로세서
155: 불휘발성 메모리 740: SSD
160: 부트 로더 이미지 745: 메모리 컨트롤러
165: 사용자 LUs
105: mobile device 170: OS kernel image
110: storage area 175: user data images
115: code execution block 700: computing system
120: Shadow control logic area 705: Bus
125: Host section 710: Clock
132: Register 715: RAM
135: CPU 720: user interface
140: CPU ROM 725: modem
145: First CPU boot loader image 730: Shadow control logic unit
150: Second CPU boot loader image 735: Processor
155: nonvolatile memory 740: SSD
160: Boot loader image 745: Memory controller
165: User LUs

Claims (10)

모바일 장치의 하나 이상의 부팅 이미지들(boot images)을 섀도잉(shadowing)하기 위한 동작 방법에 있어서:
상기 모바일 장치의 호스트부에 의해, 하나 이상의 부팅 이미지들이 구성되었는지에 대한 여부를 나타내는 제1 레지스터를 설정하는 단계; 및
섀도우 제어 로직부에 의해, 섀도우 루틴(routine)으로 주기적으로 진입하는 단계를 포함하는 방법.
CLAIMS What is claimed is: 1. An operating method for shadowing one or more boot images of a mobile device, comprising:
Setting a first register by the host unit of the mobile device, the first register indicating whether one or more boot images are configured; And
Wherein the shadow control logic unit periodically enters the shadow routine.
제 1 항에 있어서,
상기 섀도우 루틴에서,
상기 제1 레지스터가 상기 하나 이상의 부팅 이미지들이 구성되었음을 나타내는 것으로 판단하는 것에 응답하여:
상기 섀도우 제어 로직부에 의해, 상기 하나 이상의 부팅 이미지들을 하나 이상의 섀도잉된 부팅 이미지들로 섀도잉하는 단계; 및
상기 섀도잉 제어 로직부에 의해, 상기 하나 이상의 부팅 이미지들이 상기 하나 이상의 섀도잉된 부팅 이미지들로 완벽하게 섀도잉되었는지를 나타내는 제2 레지스터를 설정하는 단계를 더 포함하는 방법.
The method according to claim 1,
In the shadow routine,
In response to determining that the first register indicates that the one or more boot images are configured:
Shadowing the one or more boot images with one or more shadowed boot images by the shadow control logic; And
Further comprising setting a second register by the shadowing control logic to indicate whether the one or more boot images are fully shadowed with the one or more shadowed boot images.
제 2 항에 있어서,
상기 섀도우 루틴에서
상기 제1 레지스터가 상기 하나 이상의 부팅 이미지들이 구성되지 않았음을 나타내는 것으로 판단하는 것에 응답하여:
상기 섀도우 제어 로직부에 의해, 상기 모바일 장치의 상기 호스트부로부터의 초기화 요청들의 수를 카운트(count)하는 단계;
상기 섀도우 제어 로직부에 의해, 상기 초기화 요청들의 수가 임계치를 초과하는지 여부에 대해 판단하는 단계;
상기 초기화 요청들의 수가 상기 임계치를 초과한다고 판단되면, 상기 제2 레지스터가 상기 하나 이상의 부팅 이미지들이 상기 하나 이상의 섀도잉된 부팅 이미지들로 완벽하게 섀도잉되었는지를 나타내는지 판단하는 단계; 및
상기 제2 레지스터가 상기 하나 이상의 부팅 이미지들이 상기 하나 이상의 섀도잉된 부팅 이미지들로 완벽하게 섀도잉되었음을 나타내면, 상기 하나 이상의 부팅 이미지들의 제1 해시(hash)를 상기 하나 이상의 섀도잉된 부팅 이미지들의 제2 해시와 비교하는 단계를 더 포함하는 방법.
3. The method of claim 2,
In the shadow routine
In response to determining that the first register indicates that the one or more boot images are not configured:
Counting the number of initialization requests from the host portion of the mobile device by the shadow control logic portion;
Determining, by the shadow control logic, whether the number of initialization requests exceeds a threshold;
Determining if the second register indicates whether the one or more boot images are fully shadowed with the one or more shadowed boot images if the number of initialization requests is determined to exceed the threshold; And
If the second register indicates that the one or more boot images have been fully shadowed with the one or more shadowed boot images, then the first hash of the one or more boot images is stored in the one or more shadowed boot images And comparing the second hash to the second hash.
제 3 항에 있어서,
상기 섀도우 루틴에서
상기 제1 해시 및 상기 제2 해시가 불일치 하면:
플래시 변환 계층에 의해, 하나 이상의 포인터들을 상기 하나 이상의 부팅 이미지들에서 상기 하나 이상의 섀도잉된 부팅 이미지들로 각각 업데이트하는 단계; 및
상기 섀도우 제어 로직부에 의해, 상기 모바일 장치가 상기 하나 이상의 섀도잉된 부팅 이미지들로부터 부팅됨을 나타내는 제3 레지스터를 설정하는 단계를 더 포함하는 방법.
The method of claim 3,
In the shadow routine
If the first hash and the second hash do not match, then:
Updating, by the flash translation layer, one or more pointers from the one or more boot images to the one or more shadowed boot images, respectively; And
Further comprising: setting, by the shadow control logic, a third register indicating that the mobile device will boot from the one or more shadowed boot images.
부팅 파티션들(boot partitions)에 대해 예약된 영역에 하나 이상의 부팅 이미지들(boot images)을 저장하는 제1 불휘발성 메모리;
사용자 파티션들에 대해 예약된 영역에 하나 이상의 사용자 이미지들을 저장하는 제2 불휘발성 메모리; 및
상기 제1 불휘발성 메모리로부터 상기 하나 이상의 부팅 이미지들을 상기 제2 불휘발성 메모리의 상기 사용자 파티션들에 대해 예약된 상기 영역의 하나 이상의 섀도잉된 부팅 이미지들로 섀도잉하는 섀도우 제어 로직부를 포함하는 모바일 장치.
A first non-volatile memory for storing one or more boot images in a reserved area for boot partitions;
A second non-volatile memory for storing one or more user images in a reserved area for user partitions; And
And a shadow control logic portion for shadowing the one or more boot images from the first non-volatile memory into one or more shadowed boot images of the region reserved for the user partitions of the second non-volatile memory. Device.
제 5 항에 있어서,
상기 섀도우 제어 로직부는 상기 하나 이상의 부팅 이미지들 내의 변형을 감지하고,
상기 감지에 응답하여, 상기 섀도우 제어 로직부는 상기 하나 이상의 섀도잉된 부팅 이미지들로부터 부팅하도록 상기 모바일 장치를 제어하는 모바일 장치.
6. The method of claim 5,
Wherein the shadow control logic portion senses a variation in the one or more boot images,
And in response to the detection, the shadow control logic unit controls the mobile device to boot from the one or more shadowed boot images.
제 6 항에 있어서,
하나 이상의 포인터들을 상기 하나 이상의 부팅 이미지들로부터 상기 하나 이상의 섀도잉된 부팅 이미지들로 각각 업데이트하고, 후속하는 근본 원인 분석(root causing) 또는 디버깅(debugging)을 위해 상기 변형을 포함하는 상기 하나 이상의 부팅 이미지들을 보호하는 플래시(flash) 변환 계층을 더 포함하는 모바일 장치.
The method according to claim 6,
Updating one or more pointers from the one or more boot images to the one or more shadowed boot images respectively and updating the one or more bootings including the variant for subsequent root cause or debugging, Further comprising a flash translation layer to protect the images.
제 5 항에 있어서,
상기 섀도우 제어 로직부는 상기 사용자 파티션들에 대해 예약된 상기 영역 내의 사용 가능한 공간의 양을 감지하고, 상기 사용 가능한 공간의 양이 임계치 이하인지 판단하는 모바일 장치.
6. The method of claim 5,
Wherein the shadow control logic portion senses the amount of available space in the area reserved for the user partitions and determines whether the amount of available space is below a threshold.
제 8 항에 있어서,
상기 사용 가능한 공간의 양이 상기 임계치 이하이면,
상기 섀도우 제어 로직부는,
상기 하나 이상의 섀도잉된 부팅 이미지들을 가비지 콜렉션(garbage collection)하고,
상기 하나 이상의 섀도잉된 부팅 이미지들로부터 차지된 상기 제2 불휘발성 메모리의 상기 사용자 파티션들에 의해 예약된 상기 영역의 공간을 해제하는 모바일 장치.
9. The method of claim 8,
If the amount of available space is below the threshold,
Wherein the shadow control logic unit comprises:
Garbage collection of the one or more shadowed boot images,
And releases the space of the area reserved by the user partitions of the second nonvolatile memory occupied from the one or more shadowed boot images.
제 8 항에 있어서,
상기 사용 가능한 공간의 양이 상기 임계치보다 크면,
상기 섀도우 제어 로직부는,
상기 하나 이상의 섀도잉된 부팅 이미지들에 대한 상기 사용자 파티션들에 대해 예약된 상기 영역 내의 공간을 할당하고,
상기 제1 불휘발성 메모리로부터 상기 하나 이상의 부팅 이미지들을 상기 제2 불휘발성 메모리의 상기 사용자 파티션들에 대해 예약된 상기 영역의 상기 하나 이상의 섀도잉된 부팅 이미지들로 섀도잉하는 모바일 장치.


9. The method of claim 8,
If the amount of available space is greater than the threshold,
Wherein the shadow control logic unit comprises:
Allocating space in the area reserved for the user partitions for the one or more shadowed boot images,
Wherein the one or more boot images from the first non-volatile memory are shadowed with the one or more shadowed boot images of the region reserved for the user partitions of the second non-volatile memory.


KR1020150100412A 2014-10-28 2015-07-15 Mobile divece and operating method thereof KR102198609B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462069805P 2014-10-28 2014-10-28
US62/069,805 2014-10-28
US14/663,220 US9823972B2 (en) 2014-10-28 2015-03-19 Mobile flash storage boot partition and/or logical unit shadowing
US14/663,220 2015-03-19

Publications (2)

Publication Number Publication Date
KR20160049956A true KR20160049956A (en) 2016-05-10
KR102198609B1 KR102198609B1 (en) 2021-01-05

Family

ID=55792089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150100412A KR102198609B1 (en) 2014-10-28 2015-07-15 Mobile divece and operating method thereof

Country Status (2)

Country Link
US (2) US9823972B2 (en)
KR (1) KR102198609B1 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659178B1 (en) 2013-10-22 2017-05-23 Square, Inc. Device blanking
US9569622B2 (en) 2014-11-20 2017-02-14 Micron Technology, Inc. Self-measuring nonvolatile memory device systems and methods
US10475034B2 (en) 2016-02-12 2019-11-12 Square, Inc. Physical and logical detections for fraud and tampering
WO2018057039A1 (en) * 2016-09-26 2018-03-29 Hewlett-Packard Development Company, L. Update memory management information to boot an electronic device from a reduced power mode
US10255603B1 (en) * 2017-08-31 2019-04-09 Sqaure, Inc. Processor power supply glitch mitigation
US11182148B2 (en) * 2018-03-13 2021-11-23 Dell Products L.P. System and method for automated BIOS recovery after BIOS corruption
US11257072B1 (en) 2018-03-29 2022-02-22 Square, Inc. Detecting unauthorized devices
US11182794B1 (en) 2018-03-29 2021-11-23 Square, Inc. Detecting unauthorized devices using proximity sensor(s)
US10733291B1 (en) 2018-06-11 2020-08-04 Square, Inc. Bi-directional communication protocol based device security
US10754785B2 (en) * 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
US11023249B1 (en) * 2018-09-26 2021-06-01 United States Of America As Represented By The Administrator Of Nasa First stage bootloader (FSBL)
CN109656598A (en) * 2018-12-24 2019-04-19 天津凯发电气股份有限公司 A kind of application program online upgrading method based on MQX real time operating system
US11487439B1 (en) 2021-05-27 2022-11-01 Western Digital Technologies, Inc. Utilizing host memory buffers for storage device recoveries
US11861012B2 (en) * 2021-07-01 2024-01-02 Macronix International Co., Ltd. Memory device having safety boot capability
US11914468B1 (en) 2022-08-15 2024-02-27 Western Digital Technologies, Inc. NVMe boot partition error correction code enhancement

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US20040199825A1 (en) * 2003-04-07 2004-10-07 Zeller Jeremy R. Redundant boot memory
US20060069902A1 (en) * 2004-09-30 2006-03-30 Yu Rui Method for recovering operating system and user data executed in a computer and its recovery system thereof
KR20130040636A (en) * 2011-10-14 2013-04-24 삼성전자주식회사 Method for generating boot image for fast booting and image forming apparatus for performing the same, method for performing fast booting and image forming apparatus for performing the same
KR20140058281A (en) * 2012-11-06 2014-05-14 삼성전자주식회사 Method for updating boot image for fast booting and image forming apparatus for performing the same

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1254937B (en) * 1991-05-06 1995-10-11 DYNAMIC UPDATE OF NON-VOLATILE MEMORY IN A COMPUTER SYSTEM
US5603011A (en) * 1992-12-11 1997-02-11 International Business Machines Corporation Selective shadowing and paging in computer memory systems
US5537540A (en) * 1994-09-30 1996-07-16 Compaq Computer Corporation Transparent, secure computer virus detection method and apparatus
US5568641A (en) * 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US7734945B1 (en) 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
TWI286704B (en) * 2005-08-08 2007-09-11 Via Tech Inc Computer system and boot method thereof
US7886190B2 (en) 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
GB0620928D0 (en) * 2006-10-20 2006-11-29 Vodafone Plc Boot process
US7792879B2 (en) * 2008-03-11 2010-09-07 Intel Corporation Efficient heap utilization and partitioning
US8140837B2 (en) 2008-11-05 2012-03-20 International Business Machines Corporation Automatically making selective changes to firmware or configuration settings
US20120084601A1 (en) 2010-09-30 2012-04-05 Yung-Chih Lee Computer system rescue method
JP5860543B2 (en) * 2011-10-26 2016-02-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. Boot data loading

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US20040199825A1 (en) * 2003-04-07 2004-10-07 Zeller Jeremy R. Redundant boot memory
US20060069902A1 (en) * 2004-09-30 2006-03-30 Yu Rui Method for recovering operating system and user data executed in a computer and its recovery system thereof
KR20130040636A (en) * 2011-10-14 2013-04-24 삼성전자주식회사 Method for generating boot image for fast booting and image forming apparatus for performing the same, method for performing fast booting and image forming apparatus for performing the same
KR20140058281A (en) * 2012-11-06 2014-05-14 삼성전자주식회사 Method for updating boot image for fast booting and image forming apparatus for performing the same

Also Published As

Publication number Publication date
US10146627B2 (en) 2018-12-04
US20160117225A1 (en) 2016-04-28
KR102198609B1 (en) 2021-01-05
US20180032403A1 (en) 2018-02-01
US9823972B2 (en) 2017-11-21

Similar Documents

Publication Publication Date Title
US10146627B2 (en) Mobile flash storage boot partition and/or logical unit shadowing
US20170212814A1 (en) Accelerated data recovery in a storage system
US11036421B2 (en) Apparatus and method for retaining firmware in memory system
US11157357B2 (en) Operation methods of memory system and host, and computing system
US9817600B2 (en) Configuration information backup in memory systems
CN103995784A (en) Flash memory controller, storage device and flash memory control method
US9389960B2 (en) Recovering from a defective boot image
TWI489466B (en) Memory erasing method, memory controller and memory storage apparatus
KR20120014939A (en) Object oriented memory in solid state devices
KR20200113992A (en) Apparatus and method for reducing cell disturb in open block of the memory system during receovery procedure
KR20160074025A (en) Operating method for data storage device
CN112558860A (en) Memory system for distributing and reading data and operating method thereof
US10395751B2 (en) Automated testing system and operating method thereof
KR20200058867A (en) Apparatus and method for reducing repeated access to the same block of the memory system during receovery procedure
US20200250104A1 (en) Apparatus and method for transmitting map information in a memory system
JP6600815B2 (en) Recording apparatus and information processing apparatus
US11461516B2 (en) Development system and productization method for data storage device
US9275697B2 (en) Utilizing destructive features as RAM code for a storage device
CN108509295B (en) Operation method of memory system
US20230026712A1 (en) Generating system memory snapshot on memory sub-system with hardware accelerated input/output path
US20230229310A1 (en) Memory control method and memory storage system
TWI712052B (en) Memory management method, storage controller and storage device
US20240176542A1 (en) Interworking method external device and storage device
KR20230001522A (en) Systems and method for bootup activation of firmware images
CN115933968A (en) Computing storage device and electronic system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant