KR100759590B1 - Method for initializing flash memory of mobile device and recording medium recorded program according to the method - Google Patents

Method for initializing flash memory of mobile device and recording medium recorded program according to the method Download PDF

Info

Publication number
KR100759590B1
KR100759590B1 KR1020060055247A KR20060055247A KR100759590B1 KR 100759590 B1 KR100759590 B1 KR 100759590B1 KR 1020060055247 A KR1020060055247 A KR 1020060055247A KR 20060055247 A KR20060055247 A KR 20060055247A KR 100759590 B1 KR100759590 B1 KR 100759590B1
Authority
KR
South Korea
Prior art keywords
flash memory
block
bad
portable device
requested
Prior art date
Application number
KR1020060055247A
Other languages
Korean (ko)
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 경북대학교 산학협력단
Priority to KR1020060055247A priority Critical patent/KR100759590B1/en
Application granted granted Critical
Publication of KR100759590B1 publication Critical patent/KR100759590B1/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

A method for initializing a flash memory of a mobile device and a recording medium storing a program thereof are provided to reduce booting time of the mobile device by initializing the flash memory without a memory test. A bad block list is set to null in initial booting without checking the flash memory(S200). It is checked whether the mobile device is the idle state after the mobile device is booted(S210). If the mobile device is the idle state, each block of the flash memory is sequentially checked and a number of bad blocks is added to the bad block list(S232). If a write task to the predetermined block of the flash memory is requested, a flash memory initialization flag is checked. If the flag is false, the block is checked and the block number is added to the bad block list when the block is bad. If the flag is true, the requested write task is performed.

Description

휴대용 기기의 플래쉬 메모리 초기화 방법 및 상기 방법에 따른 프로그램이 기록된 기록 매체{Method for initializing flash memory of mobile device and recording medium recorded program according to the method}Method for initializing flash memory of mobile device and recording medium recorded program according to the method}

도 1은 본 발명의 바람직한 실시예에 따른 휴대용 기기의 부팅 과정을 순차적으로 도시한 흐름도이다. 1 is a flowchart sequentially illustrating a booting process of a portable device according to an exemplary embodiment of the present invention.

도 2는 본 발명의 바람직한 실시예에 따른 휴대용 기기의 플래쉬 메모리 초기화 방법을 순차적으로 설명하는 흐름도이다. 2 is a flowchart sequentially illustrating a flash memory initialization method of a portable device according to an exemplary embodiment of the present invention.

도 3은 본 발명의 바람직한 실시예에 따른 휴대용 기기의 플래쉬 메모리로 요청된 작업을 수행하는 과정을 순차적으로 설명하는 흐름도이다. 3 is a flowchart sequentially illustrating a process of performing a requested operation to a flash memory of a portable device according to an exemplary embodiment of the present invention.

본 발명은 휴대폰 등에 탑재된 플래쉬 메모리를 초기화시키는 방법 및 상기 방법이 구현된 프로그램이 기록된 기록 매체에 관한 것으로서, 더욱 구체적으로는 휴대폰이 부팅 시간을 최소화시키면서 휴대폰 등에 탑재된 플래쉬 메모리를 효율적으로 초기화시키는 플래쉬 메모리 초기화 방법에 관한 것이다. The present invention relates to a method of initializing a flash memory mounted on a mobile phone and the like and a recording medium on which a program in which the method is implemented is recorded. More specifically, the mobile phone efficiently initializes the flash memory mounted on a mobile phone while minimizing a boot time. To initialize a flash memory.

휴대폰 등을 포함하는 휴대용 기기에는 대용량의 데이터를 저장하기 위한 NAND 플래쉬 메모리가 장착된다. 따라서, 휴대용 기기의 전원을 켜면, 휴대용 기기의 펌웨어 또는 운영 체제(OS)가 휴대용 기기에 장착된 하드웨어를 초기화시키고, 사용자 응용 프로그램을 서비스하기 위한 준비 작업을 수행한다. 일반적으로, 부팅시간은 휴대용 기기의 전원을 켠 시점부터 사용자 응용 프로그램이 서비스될 수 있는 시점까지의 시간을 말하는 것으로서, 이러한 휴대용 기기의 부팅시간을 최소화시키는 것은 매우 중요한 작업 중의 하나가 되고 있다. Portable devices, including mobile phones, are equipped with NAND flash memory for storing large amounts of data. Therefore, when the portable device is turned on, the firmware or operating system (OS) of the portable device initializes hardware mounted in the portable device and performs preparation for servicing the user application. In general, booting time refers to the time from when the portable device is powered on to when the user application can be serviced, and minimizing the booting time of the portable device is one of very important tasks.

그런데, 휴대용 기기의 펌웨어 또는 운영 체제를 이용한 부팅시에 많은 시간이 소요되는 초기화 작업 중의 하나가 NAND 플래쉬 메모리에 대한 초기화 작업이다. NAND 플래쉬 메모리에 대한 초기화 작업은 메모리내의 각 블록들에 대하여 검사하여 불량 블록이 존재하는지 여부를 확인하는 작업으로서, 일반적으로 메모리의 크기에 선형적으로 비례하는 시간이 소요된다. 예를 들어, 32MB NAND 플래쉬 메모리를 초기화시키는데 소요되는 시간은 약 4초 정도이다. However, one of the initialization operations that takes a lot of time when booting using the firmware or the operating system of the portable device is the initialization operation for the NAND flash memory. The initialization operation for the NAND flash memory checks each block in the memory to determine whether a bad block exists, and generally takes time linearly proportional to the size of the memory. For example, it takes about four seconds to initialize a 32MB NAND flash memory.

최근, 휴대용 기기에 장착되는 NAND 플래쉬 메모리의 용량이 점차 증가하고 있는 추세이며, 빠른 부팅 시간에 대한 중요성이 점차 크게 부각되고 있는 점을 고려할 때, NAND 플래쉬 메모리의 초기화 작업에 대한 효과적인 알고리즘 개발이 절실히 요구되고 있다. In recent years, the capacity of NAND flash memory mounted in portable devices is gradually increasing, and considering the importance of fast boot time, the development of an effective algorithm for initializing NAND flash memory is urgently needed. It is required.

전술한 문제점을 해결하기 위한 본 발명의 목적은 휴대용 기기의 부팅 시간을 감소시킬 수 있는 방법을 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention to solve the above problems is to provide a method that can reduce the boot time of a portable device.

본 발명의 다른 목적은 휴대용 기기의 부팅 시간을 감소시키면서 휴대용 기 기에 장착된 플래쉬 메모리에 대한 효율적인 초기화 방법을 제공하는 것이다. Another object of the present invention is to provide an efficient initialization method for a flash memory mounted on a portable device while reducing the boot time of the portable device.

본 발명의 다른 목적은 전술한 방법들이 구현된 프로그램이 기록된 기록 매체를 제공하는 것이다. Another object of the present invention is to provide a recording medium in which a program in which the above-described methods are implemented is recorded.

전술한 기술적 과제를 달성하기 위한 본 발명의 특징은 휴대용 기기의 플래쉬 메모리를 초기화하는 방법에 관한 것으로서, A feature of the present invention for achieving the above technical problem relates to a method of initializing a flash memory of a portable device,

(a) 초기 부팅시에 플래쉬 메모리에 대한 불량 검사를 수행하지 않고, 불량 블록 목록을 널(NULL)로 설정하고, '플래쉬 메모리 초기화 플래그'를 'FALSE'로 설정하는 단계,(a) setting the bad block list to NULL and setting the 'flash memory initialization flag' to 'FALSE' without performing a bad check on the flash memory at the initial boot,

(b) 상기 휴대용 기기가 부팅 후 유휴상태인지 여부를 확인하는 단계,(b) checking whether the portable device is idle after booting,

(c) 만약 휴대용 기기가 유휴 상태인 경우, 플래쉬 메모리의 각 블록에 대해 순차적으로 불량 여부를 검사하고, 불량 블록은 불량 블록 목록에 추가시키는 단계(c) If the portable device is in an idle state, each block of the flash memory is sequentially checked for badness, and the bad block is added to the bad block list.

(d) 플래쉬 메모리의 모든 블록에 대한 불량 여부 검사가 종료되면, '플래쉬 메모리 초기화 플래그'를 'TRUE'로 설정하는 단계를 구비하여 휴대용 기기가 유휴 상태일때 플래쉬 메모리를 검사하여 휴대용 기기의 초기 부팅 시간을 감소시킨다. (d) When the badness check of all blocks of the flash memory is finished, the step of setting the 'flash memory initialization flag' to 'TRUE' includes checking the flash memory when the portable device is in an idle state and initial booting of the portable device. Reduce time.

전술한 특징을 갖는 상기 플래쉬 메모리 초기화 방법은 The flash memory initialization method having the above-described characteristics

(e) 만약 플래쉬 메모리의 특정 블록으로 '쓰기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그를 확인하고, (e) if a 'write operation' is requested to a specific block of flash memory, check the flash memory initialization flag,

(f) 만약 상기 플래그가 'FALSE'인 경우, 해당 블록에 대한 불량 여부를 검사하고, 해당 블록이 불량인 경우에는 불량 블록 목록에 해당 블록을 추가하는 단 계,(f) if the flag is 'FALSE', checking whether the corresponding block is bad or adding the corresponding block to the bad block list if the corresponding block is bad;

(g) 만약 상기 플래그가 'TRUE'인 경우, 요청된 작업을 수행하는 단계를 더 구비하여, 메모리로 요청된 '쓰기 작업'을 수행한다. (g) If the flag is 'TRUE', the method further includes performing a requested operation to perform a 'write operation' requested to the memory.

전술한 특징을 갖는 상기 플래쉬 메모리 초기화 방법은The flash memory initialization method having the above-described characteristics

(e) 만약 플래쉬 메모리의 특정 블록에 대한 '읽기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그에 대한 확인없이 바로 요청된 작업을 수행하는 단계를 더 구비하여, 메모리로 요청된 '읽기 작업'을 수행한다. (e) if a 'read operation' is requested for a specific block of flash memory, further comprising performing the requested operation immediately without checking the flash memory initialization flag, thereby performing a 'read operation' requested to the memory. Perform.

본 발명의 다른 특징은 휴대용 기기의 플래쉬 메모리를 초기화시키는 프로그램이 기록된 기록 매체에 관한 것으로서, 상기 프로그램은Another aspect of the present invention relates to a recording medium having recorded thereon a program for initializing a flash memory of a portable device.

(a) 초기 부팅시에 플래쉬 메모리에 대한 불량 검사를 수행하지 않고, 불량 블록 목록을 널(NULL)로 설정하고, '플래쉬 메모리 초기화 플래그'를 'FALSE'로 설정하는 절차,(a) a procedure of setting a bad block list to NULL and a 'flash memory initialization flag' to 'FALSE' without performing a bad check on the flash memory at the initial boot,

(b) 상기 휴대용 기기가 부팅 후 유휴상태인지 여부를 확인하는 절차,(b) determining whether the portable device is idle after booting,

(c) 만약 휴대용 기기가 유휴 상태인 경우, 플래쉬 메모리의 각 블록에 대해 순차적으로 불량 여부를 검사하고, 해당 블록이 불량인 경우 해당 블록을 불량 블록 목록에 추가시키는 절차,(c) if the portable device is idle, sequentially check each block in the flash memory for badness, and if the block is bad, add the block to the bad block list;

(d) 플래쉬 메모리의 모든 블록에 대한 불량 여부 검사가 종료되면, '플래쉬 메모리 초기화 플래그'를 'TRUE'로 설정하는 절차를 순차적으로 수행하여 휴대용 기기가 유휴 상태일때 플래쉬 메모리를 검사하여 휴대용 기기의 초기 부팅 시간을 감소시킨다.(d) When the badness check of all blocks of the flash memory is finished, the procedure of setting the 'flash memory initialization flag' to 'TRUE' is sequentially performed to inspect the flash memory when the portable device is in an idle state. Reduce initial boot time.

전술한 특징을 갖는 상기 기록 매체의 상기 프로그램은 The program of the recording medium having the above-mentioned characteristics

(e) 만약 플래쉬 메모리의 특정 블록으로 '쓰기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그를 확인하는 절차, (e) a process of checking the flash memory initialization flag if a 'write operation' is requested to a specific block of flash memory;

(f) 만약 상기 플래그가 'FALSE'인 경우, 해당 블록에 대한 불량 여부를 검사하고, 해당 블록이 불량인 경우에는 불량 블록 목록에 해당 블록을 추가하는 절차,(f) if the flag is 'FALSE', a process of checking whether a block is bad or adding a block to the bad block list if the block is bad;

(g) 만약 상기 플래그가 'TRUE'인 경우, 요청된 작업을 수행하는 절차를 수행한다. (g) If the flag is 'TRUE', the procedure to perform the requested operation is performed.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 휴대용 기기의 플래쉬 메모리의 초기화 방법에 대하여 구체적으로 설명한다. 본 발명의 바람직한 실시예에 따른 플래쉬 메모리의 초기화 방법은 플래쉬 메모리에 대한 초기화 작업을 휴대용 기기의 부팅시에 수행하는 것이 아니라 부팅 후 휴대용 기기가 유휴 상태(idle)에서 수행하는 것을 특징으로 한다. Hereinafter, a method of initializing a flash memory of a portable device according to an exemplary embodiment of the present invention will be described in detail with reference to the accompanying drawings. The initialization method of the flash memory according to the preferred embodiment of the present invention is characterized in that the initialization operation for the flash memory is performed in the idle state after booting, rather than performing the initialization operation for the portable device.

도 1은 본 발명의 바람직한 실시예에 따른 플래쉬 메모리의 초기화 방법에 따른 휴대용 기기의 초기화 과정을 순차적으로 설명하는 흐름도이다. 이하, 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 휴대용 기기의 초기화 과정을 순차적으로 설명한다. 1 is a flowchart sequentially illustrating a process of initializing a portable device according to a method of initializing a flash memory according to an exemplary embodiment of the present invention. Hereinafter, an initialization process of a portable device according to an exemplary embodiment of the present invention will be described with reference to FIG. 1.

먼저, 휴대용 기기의 전원을 켬으로써 휴대용 기기의 펌웨어 또는 운영체제의 초기화 작업을 실행한다(단계 100). 하드웨어 장치를 초기화시키면서, 플래쉬 메모리를 초기화하는 과정을 수행하지 않고 불량 블록에 대한 목록을 널(NULL)로 설정하고, '플래쉬 메모리 초기화 플래그'를 'FALSE'로 설정한다(단계 110). 다음, 응용 프로그램의 실행 환경을 초기화시킨 후(단계 120), 펌웨어 또는 운영체제의 초기화 작업을 종료한다(단계 130).First, the initialization operation of the firmware or the operating system of the portable device is executed by turning on the portable device (step 100). While initializing the hardware device, the list of bad blocks is set to null and the 'flash memory initialization flag' is set to 'FALSE' without performing a process of initializing the flash memory (step 110). Next, after initializing the execution environment of the application program (step 120), the initialization operation of the firmware or the operating system is terminated (step 130).

이와 같이, 휴대용 기기의 초기화 작업시에는 플래쉬 메모리의 불량 블록에 대한 검사 과정없이 플래쉬 메모리의 불량 블록이 없는 것으로 설정함으로써, 빠른 부팅을 가능하게 한다. As described above, during the initialization operation of the portable device, by setting the defective block of the flash memory without the inspection process for the defective block of the flash memory, fast booting is possible.

한편, 본 발명의 바람직한 실시예에 따른 플래쉬 메모리의 초기화 방법에 따라 휴대용 기기가 유휴 상태일 때, 플래쉬 메모리에 대한 불량 블록 목록 작성 작업을 순차적으로 설명한다. 도 2는 휴대용 기기가 유휴 상태일 때 수행되는 플래쉬 메모리에 대한 초기화 작업 과정을 순차적으로 도시한 흐름도이다. On the other hand, according to the flash memory initialization method according to an embodiment of the present invention, when the portable device is in an idle state, a bad block list creation operation for the flash memory will be described sequentially. 2 is a flowchart sequentially illustrating an initialization process for a flash memory that is performed when the portable device is in an idle state.

도 2를 참조하면, 먼저 현재 블록 번호는 '0'으로 설정한다(단계 200). 다음, 휴대용 기기가 유휴 상태인지를 확인하며, 만약 유휴 상태가 아니면 유휴 상태가 될때까지 대기하며, 만약 유휴 상태인 경우에는 플래쉬 메모리의 각 블록이 불량 블록인지 여부를 검사하는 초기화 작업을 계속 수행한다(단계210).Referring to FIG. 2, first, the current block number is set to '0' (step 200). Next, it checks whether the portable device is in an idle state, and waits until it is idle if it is not idle, and if it is in the idle state, it performs the initialization operation that checks whether each block of the flash memory is a bad block. (Step 210).

현재 블록 번호가 마지막 블록 번호인지 여부를 확인하고, 만약 현재 블록 번호가 마지막 블록 번호인 경우에는 플래쉬 메모리 초기화 플래그를 'TRUE'로 설정한 후(단계 220) 불량 블록 목록 작성 작업을 종료한다(단계 222).Check whether the current block number is the last block number, and if the current block number is the last block number, set the flash memory initialization flag to 'TRUE' (step 220) and then terminate the bad block list creation operation (step 220). 222).

만약 현재 블록 번호가 마지막 블록 번호가 아닌 경우에는, 현재 블록에 대한 불량 여부를 검사하고(단계 230), 현재 블록이 불량 블록인 경우는 불량 블록 목록에 현재 블록 번호를 추가시킨 후(단계 232), 현재 블록 번호를 1 증가시킨 후 단계 210으로 되돌아가서 해당 블록에 대한 불량 여부를 검사한다(단계 234).If the current block number is not the last block number, it is checked whether the current block is bad (step 230). If the current block is a bad block, the current block number is added to the bad block list (step 232). After increasing the current block number by 1, the process returns to step 210 to check whether the corresponding block is defective (step 234).

전술한 바와 같이 본 발명의 바람직한 실시예에 따른 플래쉬 메모리 초기화 방법은, 휴대용 기기가 유휴 상태일 때 NAND 플래쉬 메모리에 대한 불량 블록 목록을 작성하고, 휴대용 기기가 어떤 작업을 수행해야 하는 상태에서는 불량 블록 목록 작성 작업을 일시적으로 중지한다. 이와 같이, 휴대용 기기가 유휴 상태일 때 불량 블록 목록을 작성함으로써, 휴대용 기기에 별도의 부하를 주지 않으면서도 휴대용 기기의 부팅 시간을 감소시킬 수 있게 된다. As described above, in the flash memory initialization method according to the preferred embodiment of the present invention, the bad block list for the NAND flash memory is created when the portable device is in an idle state, and the bad block is performed when the portable device must perform some operation. Temporarily stop creating a list. As such, by creating a bad block list when the portable device is in an idle state, booting time of the portable device can be reduced without additional load on the portable device.

한편, 전술한 불량 블록 목록의 작성 작업이 종료되어 플래쉬 메모리 초기화 플래그가 'TRUE'로 설정된 경우에는, 휴대용 기기에 의한 플래쉬 메모리에 대한 읽기 및 쓰기 작업이 요청되더라도 그대로 처리하게 된다. 그런데, 전술한 불량 블록 목록의 작성 작업이 종료되지 않고 플래쉬 메모리 초기화 플래그가 'FALSE'인 경우에는 플래쉬 메모리에 대한 읽기 및 쓰기 작업이 요청된 경우에는 해당 블록이 불량 블록인지 여부를 확인한 후 요청된 작업을 수행해야 된다. 이하, 도 3을 참조하여 휴대용 기기로부터 읽기 및 쓰기 작업이 요청된 경우의 처리 과정을 순차적으로 설명한다. On the other hand, when the above-described bad block list creation operation is completed and the flash memory initialization flag is set to 'TRUE', the read and write operations for the flash memory by the portable device are processed as it is. However, when the above-described bad block list creation operation is not terminated and the flash memory initialization flag is 'FALSE', when a read and write operation for the flash memory is requested, after checking whether the corresponding block is a bad block or not, You have to do it. Hereinafter, referring to FIG. 3, a process in the case where a read and write operation is requested from the portable device will be described sequentially.

먼저, 플래쉬 메모리에 대한 읽기/쓰기 작업이 요청된 경우, 플래쉬 메모리 초기화 플래그의 상태를 확인한다(단계 300). 만약 상기 플래그가 'TRUE'인 경우, 요청된 읽기/쓰기 작업을 수행한 후 종료한다(단계 310).First, when a read / write operation to the flash memory is requested, the state of the flash memory initialization flag is checked (step 300). If the flag is 'TRUE', the process ends after performing the requested read / write operation (step 310).

만약 상기 플래그가 'TRUE'가 아니면서 요청된 작업이 '읽기 작업'인 경우, 요청된 읽기 작업을 수행한 후 종료한다(단계 310).If the requested task is a 'read operation' without the flag being 'TRUE', the process ends after performing the requested read operation (step 310).

만약 상기 플래그가 'TRUE'가 아니면서 요청된 작업이 '쓰기 작업'인 경우, 쓰기 작업이 요청된 블록 번호가 불량 블록 목록에 포함되어 있는지 여부를 확인한다(단계 312). 만약 상기 요청된 블록 번호가 불량 블록 목록에 포함되어 있는 경우, 쓰기 작업이 수행되지 않았음을 통지한 후에 종료한다(단계 314). If the flag is not 'TRUE' and the requested operation is 'write operation', it is checked whether the block number for which the write operation is requested is included in the bad block list (step 312). If the requested block number is included in the bad block list, the process ends after notifying that the write operation has not been performed (step 314).

다음, 쓰기 작업이 요청된 블록 번호와 현재 블록 번호를 비교하여(단계 320), 쓰기 작업이 요청된 블록 번호가 현재 블록 번호보다 더 작으면 해당 작업을 수행한 후 종료한다(단계 310). 만약 쓰기 작업이 요청된 블록 번호가 현재 블록 번호보다 큰 경우, 아직 메모리에 대한 불량 블록 목록의 작성 작업이 완료되지 않은 상태이므로, 해당 블록에 대한 불량 검사를 수행한다(단계 330). 만약 해당 블록이 불량 블록인 경우, 불량 블록 목록에 해당 블록의 번호를 추가한 후(단계 340) 쓰기 작업이 수행되지 않았음을 통지한 후 종료한다(단계 350). 이 경우, 쓰기 작업이 정상적으로 수행되지 않을 경우에는 상위 응용 프로그램으로 정상적으로 쓰기 작업이 수행되지 않았음을 나타내는 에러 값을 반환시킨다. Next, the block number for which the write operation is requested is compared with the current block number (step 320). If the block number for which the write operation is requested is smaller than the current block number, the operation is terminated after performing the corresponding operation (step 310). If the block number for which a write operation is requested is larger than the current block number, since the creation operation of the bad block list for the memory has not been completed yet, a bad check is performed on the corresponding block (step 330). If the corresponding block is a bad block, the block is added to the bad block list (step 340), then the notification is not performed that the write operation is terminated (step 350). In this case, when the write operation is not performed normally, an error value indicating that the writing operation is not normally performed to the upper application is returned.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. Although the present invention has been described above with reference to preferred embodiments thereof, this is merely an example and is not intended to limit the present invention, and those skilled in the art do not depart from the essential characteristics of the present invention. It will be appreciated that various modifications and applications which are not illustrated above in the scope are possible. And differences relating to such modifications and applications should be construed as being included in the scope of the invention defined in the appended claims.

본 발명에 따른 플래쉬 메모리 초기화 방법에 의하여, 휴대용 기기의 부팅 시간을 감소시킬 수 있게 된다. 또한, 휴대용 기기의 유휴 상태에서 플래쉬 메모리 초기화 작업을 수행함으로써, 휴대용 기기의 부팅 시간도 감소시키면서, 불량 블록 목록도 효율적으로 작성할 수 있게 된다. By the flash memory initialization method according to the present invention, it is possible to reduce the booting time of the portable device. In addition, by performing the flash memory initialization operation in the idle state of the portable device, the boot time of the portable device may be reduced, and the bad block list may be efficiently written.

Claims (9)

휴대용 기기의 플래쉬 메모리를 초기화하는 방법에 있어서, In the method of initializing the flash memory of the portable device, (a) 초기 부팅시에 플래쉬 메모리에 대한 불량 검사를 수행하지 않고, 불량 블록 목록을 널(NULL)로 설정하는 단계;(a) setting the bad block list to null without performing a bad check on the flash memory at initial booting; (b) 상기 휴대용 기기가 부팅 후 유휴상태인지 여부를 확인하는 단계;(b) checking whether the portable device is idle after booting; (c) 만약 휴대용 기기가 유휴 상태인 경우, 플래쉬 메모리의 각 블록에 대해 순차적으로 불량 여부를 검사하고, 불량 블록에 대한 번호를 불량 블록 목록에 추가시키는 단계;(c) if the portable device is in an idle state, sequentially checking each block of the flash memory for badness and adding a number of bad blocks to the bad block list; 를 구비하여 휴대용 기기가 유휴 상태일때 플래쉬 메모리를 검사하여 휴대용 기기의 초기 부팅 시간을 감소시키는 것을 특징으로 하는 휴대용 기기의 플래쉬 메모리 초기화 방법. The flash memory initialization method of the portable device, characterized in that for reducing the initial boot time of the portable device by checking the flash memory when the portable device is idle. 제1항에 있어서, (a) 단계는 '플래쉬 메모리 초기화 플래그'를 'FALSE'로 설정하는 단계를 더 구비하고, The method of claim 1, wherein step (a) further comprises setting the 'flash memory initialization flag' to 'FALSE', (c)단계는 플래쉬 메모리의 모든 블록에 대한 불량 여부 검사가 종료되면, '플래쉬 메모리 초기화 플래그'를 'TRUE'로 설정하는 단계를 더 구비하는 것을 특징으로 하는 휴대용 기기의 플래쉬 메모리 초기화 방법.Step (c) further comprises the step of setting the "flash memory initialization flag" to "TRUE" when the failure check of all the blocks of the flash memory is finished, the flash memory initialization method of the portable device. 제2항에 있어서, 상기 플래쉬 메모리 초기화 방법은 The method of claim 2, wherein the flash memory initialization method is (d) 만약 플래쉬 메모리의 특정 블록으로 '쓰기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그를 확인하는 단계, (d) if a 'write operation' is requested to a specific block of flash memory, checking the flash memory initialization flag; (e) 만약 상기 플래그가 'FALSE'인 경우, 해당 블록에 대한 불량 여부를 검사하고, 해당 블록이 불량인 경우에는 불량 블록 목록에 해당 블록 번호를 추가하는 단계;(e) if the flag is 'FALSE', checking whether the corresponding block is bad or adding the corresponding block number to the bad block list if the corresponding block is bad; (f) 만약 상기 플래그가 'TRUE'인 경우, 요청된 작업을 수행하는 단계(f) if the flag is 'TRUE', performing the requested operation 를 더 구비하는 것을 특징으로 하는 휴대용 기기의 플래쉬 메모리 초기화 방법. Flash memory initialization method of a portable device characterized in that it further comprises. 제2항에 있어서, 상기 플래쉬 메모리 초기화 방법은The method of claim 2, wherein the flash memory initialization method is (d) 만약 플래쉬 메모리의 특정 블록에 대한 '읽기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그에 대한 확인없이 바로 요청된 작업을 수행하는 단계를 더 구비하는 것을 특징으로 하는 휴대용 기기의 플래쉬 메모리 초기화 방법. (d) if a 'read operation' is requested for a specific block of the flash memory, the flash memory initialization of the portable device further comprising the step of immediately performing the requested operation without checking the flash memory initialization flag. Way. 제1항 내지 제4항 중 어느 한 항에 따른 플래쉬 메모리 초기화 방법이 적용된 휴대용 기기.A portable device to which the flash memory initialization method according to any one of claims 1 to 4 is applied. 휴대용 기기의 플래쉬 메모리를 초기화시키는 프로그램으로서, As a program to initialize the flash memory of a portable device, (a) 초기 부팅시에 플래쉬 메모리에 대한 불량 검사를 수행하지 않고, 불량 블록 목록을 널(NULL)로 설정하고, '플래쉬 메모리 초기화 플래그'를 'FALSE'로 설 정하는 절차;(a) a procedure of setting a bad block list to null and setting a 'flash memory initialization flag' to 'FALSE' without performing a bad check on the flash memory at initial booting; (b) 상기 휴대용 기기가 부팅 후 유휴상태인지 여부를 확인하는 절차;(b) determining whether the portable device is idle after booting; (c) 만약 휴대용 기기가 유휴 상태인 경우, 플래쉬 메모리의 각 블록에 대해 순차적으로 불량 여부를 검사하고, 불량 블록에 대한 번호는 불량 블록 목록에 추가시키는 절차;(c) if the portable device is idle, sequentially checking each block of the flash memory for badness and adding a number of bad blocks to the bad block list; (d) 플래쉬 메모리의 모든 블록에 대한 불량 여부 검사가 종료되면, '플래쉬 메모리 초기화 플래그'를 'TRUE'로 설정하는 절차;(d) setting a 'flash memory initialization flag' to 'TRUE' when all the blocks of the flash memory have been checked for defects; 를 순차적으로 수행하여 휴대용 기기가 유휴 상태일때 플래쉬 메모리를 검사하여 휴대용 기기의 초기 부팅 시간을 감소시키는 것을 특징으로 하는 프로그램이 기록된 기록 매체. And sequentially performing operation to check the flash memory when the portable device is in an idle state, thereby reducing the initial boot time of the portable device. 제6항에 있어서, 상기 프로그램은  The method of claim 6, wherein the program is (e) 만약 플래쉬 메모리의 특정 블록으로 '쓰기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그를 확인하는 절차; (e) checking a flash memory initialization flag if a 'write operation' is requested to a particular block of flash memory; (f) 만약 상기 플래그가 'FALSE'인 경우, 해당 블록에 대한 불량 여부를 검사하고, 해당 블록이 불량인 경우에는 불량 블록 목록에 해당 블록의 번호를 추가하는 절차;(f) if the flag is 'FALSE', checking whether the corresponding block is bad or adding the number of the corresponding block to the bad block list if the corresponding block is bad; (g) 만약 상기 플래그가 'TRUE'인 경우, 요청된 작업을 수행하는 절차(g) if the flag is 'TRUE', performing the requested operation; 를 더 구비하는 것을 특징으로 하는 기록 매체. And a recording medium further comprising. 제6항에 있어서, 상기 프로그램은 The method of claim 6, wherein the program is (e) 만약 플래쉬 메모리의 특정 블록에 대한 '읽기 작업'이 요청된 경우, 플래쉬 메모리 초기화 플래그에 대한 확인없이 바로 요청된 작업을 수행하는 절차를 더 수행하는 것을 특징으로 하는 기록 매체.(e) if a 'read operation' is requested for a specific block of flash memory, the recording medium further performing a procedure of immediately performing the requested operation without checking the flash memory initialization flag. 제7항에 있어서, 상기 (f)단계는,The method of claim 7, wherein step (f), 만약 상기 플래그가 'FALSE'인 경우, 해당 블록이 불량 블록 목록에 포함되어 있는지 여부를 확인하여, 해당 블록이 불량 블록 목록에 포함되어 있는 경우에는 쓰기 작업이 수행되지 않았음을 통지한 후 종료하는 절차,If the flag is 'FALSE', it is checked whether the corresponding block is included in the bad block list. If the corresponding block is included in the bad block list, it is terminated after notifying that writing has not been performed. step, 만약 해당 블록이 불량 블록 목록에 포함되어 있지 않는 경우, 현재 블록 검사 중인 블록 번호와 쓰기 작업이 요청된 블록 번호를 비교하는 절차; 및If the block is not included in the bad block list, comparing a block number currently being checked for a block number with a write operation requested; And 만약 현재 블록 번호가 쓰기 작업이 요청된 블록 번호보다 작은 경우, 해당 작업을 수행한 후 종료하며, 만약 그렇지 않은 경우에는 쓰기 작업이 요청된 블록에 대한 불량 검사를 수행하고 해당 블록이 불량 블록이면 해당 블록의 번호를 불량 블록 목록에 추가한 후 종료하는 절차;If the current block number is smaller than the block number for which the write operation is requested, the operation is terminated after performing the operation. If not, the write operation performs a bad check on the requested block and if the block is a bad block, Adding the number of blocks to the bad block list and ending; 로 이루어지는 것을 특징으로 하는 기록 매체. And a recording medium.
KR1020060055247A 2006-06-20 2006-06-20 Method for initializing flash memory of mobile device and recording medium recorded program according to the method KR100759590B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060055247A KR100759590B1 (en) 2006-06-20 2006-06-20 Method for initializing flash memory of mobile device and recording medium recorded program according to the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060055247A KR100759590B1 (en) 2006-06-20 2006-06-20 Method for initializing flash memory of mobile device and recording medium recorded program according to the method

Publications (1)

Publication Number Publication Date
KR100759590B1 true KR100759590B1 (en) 2007-09-18

Family

ID=38738151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060055247A KR100759590B1 (en) 2006-06-20 2006-06-20 Method for initializing flash memory of mobile device and recording medium recorded program according to the method

Country Status (1)

Country Link
KR (1) KR100759590B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113223583A (en) * 2021-05-14 2021-08-06 深圳市硅格半导体有限公司 Method for rereading data in NAND Flash bad block, electronic equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050028752A (en) * 2003-09-19 2005-03-23 삼성전자주식회사 Apparatus and method for booting system using flash memory
KR20060018335A (en) * 2004-08-24 2006-03-02 삼성전자주식회사 Method and apparatus for verifying an initial state of non-volatile memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050028752A (en) * 2003-09-19 2005-03-23 삼성전자주식회사 Apparatus and method for booting system using flash memory
KR20060018335A (en) * 2004-08-24 2006-03-02 삼성전자주식회사 Method and apparatus for verifying an initial state of non-volatile memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113223583A (en) * 2021-05-14 2021-08-06 深圳市硅格半导体有限公司 Method for rereading data in NAND Flash bad block, electronic equipment and storage medium
CN113223583B (en) * 2021-05-14 2024-05-17 深圳市硅格半导体有限公司 Method for re-reading data in NAND FLASH bad blocks, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US9262283B2 (en) Method for reading kernel log upon kernel panic in operating system
US8782469B2 (en) Request processing system provided with multi-core processor
US9218893B2 (en) Memory testing in a data processing system
US20100235617A1 (en) System recovery method and embedded system with automatic recovery function
US20160314002A1 (en) Caching unified extensible firmware interface (uefi) and/or other firmware instructions in a non-volatile memory of an information handling system (ihs)
CN110502281A (en) A kind of method of embedded device starting linux kernel and file system
CN110716845B (en) Log information reading method of Android system
US20140181495A1 (en) System on chip including boot shell debugging hardware and driving method thereof
JP2008009721A (en) Evaluation system and evaluation method thereof
US8103862B2 (en) Self test initialization
CN113377586B (en) Automatic detection method and device for server and storage medium
KR100825786B1 (en) Memory card and debugging method for the same
JP6643407B2 (en) Method, apparatus, server and program for inspecting defect function
US9183152B2 (en) System and method for providing instant video in an information handling system
KR100759590B1 (en) Method for initializing flash memory of mobile device and recording medium recorded program according to the method
CN114968753A (en) Equipment upgrading test method, medium, electronic equipment and test system
US20090259835A1 (en) System and method for tracking and recording system configurations of electronic devices
CN115422091B (en) Firmware debugging method and device, electronic equipment and storage medium
CN115495275B (en) Storage system and control method thereof
US20240176887A1 (en) Method for Running Startup Program of Electronic Device, and Electronic Device
JP2005149503A (en) System and method for testing memory using dma
CN113672260A (en) CPU initialization method for processor
CN113590388B (en) UBOOT-based SPL rollback method and device, storage medium and terminal
KR101342074B1 (en) Computer system and control method thereof
CN110476153A (en) The method and electronic equipment of access instruction SRAM

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120828

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130828

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140822

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee