[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100571915B1 - Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof - Google Patents

Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof Download PDF

Info

Publication number
KR100571915B1
KR100571915B1 KR1020030086507A KR20030086507A KR100571915B1 KR 100571915 B1 KR100571915 B1 KR 100571915B1 KR 1020030086507 A KR1020030086507 A KR 1020030086507A KR 20030086507 A KR20030086507 A KR 20030086507A KR 100571915 B1 KR100571915 B1 KR 100571915B1
Authority
KR
South Korea
Prior art keywords
data
updated
updating
flash memory
erase
Prior art date
Application number
KR1020030086507A
Other languages
Korean (ko)
Other versions
KR20050052924A (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 삼성전자주식회사
Priority to KR1020030086507A priority Critical patent/KR100571915B1/en
Publication of KR20050052924A publication Critical patent/KR20050052924A/en
Application granted granted Critical
Publication of KR100571915B1 publication Critical patent/KR100571915B1/en

Links

Images

Classifications

    • 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/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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법 및 그 장치를 개시한다.The present invention discloses a method and apparatus for updating a program by selecting full erase and partial erase according to data to be updated.

본 발명에 의하면, 플래시 메모리 소자에 저장된 프로그램을 갱신하는 방법에 있어서, 갱신할 데이터를 포함하는 데이터를 수신하여, 갱신할 데이터가 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 판단하여, 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우 플래시 메모리를 전체 지우기로 지우고, 수신한 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우고, 플래시 메모리 소자의 해당되는 영역에 갱신할 데이터를 복사하여 프로그램을 갱신하여, 부분 지우기만으로 플래시 메모리의 전체 영역에 기록되어 있던 데이터를 지우는 경우보다 지우는 시간이 대폭 줄어들게 되어, 그 결과 제품 생산 시간을 단축할 수 있고, 사용자가 장치 사용 중에 사용자가 직접 펌웨어를 갱신하는 경우에도 갱신 시간을 단축할 수 있어 플래시 메모리를 포함하여 펌웨어 갱신을 할 수 있는 장치 사용을 하는 환경이 사용자의 입장에서 간편해지는 효과를 제공한다.According to the present invention, in the method for updating a program stored in a flash memory device, the data including the data to be updated is received, the data to be updated is determined to be data for updating the entire area of the flash memory device, and the data to be updated. Is the data for updating the entire area, the flash memory is erased with full erase. If the data to be updated is the data for updating the partial area, the corresponding partial area of the flash memory is erased with the partial erase. By updating the program by copying the data to be updated in the area to be updated, the erasing time is significantly reduced than when erasing the data recorded in the entire area of the flash memory only by partial erasing. As a result, the product production time can be shortened. Firmware while the device is in use In the case of updating the update time, the update time can be shortened, so that the environment using the device for updating the firmware including the flash memory can be simplified from the user's point of view.

Description

갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법 및 그 장치{Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof}Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus approximately}

도 1은 종래의 펌웨어를 갱신하는 과정을 도시한 것이다.1 shows a process of updating a conventional firmware.

도 2는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 본 발명에 따른 방법의 흐름을 도시한 것이다.2 shows the flow of a method according to the invention for updating a program by selecting a full erase and a partial erase in accordance with the data to be updated.

도 3은 본 발명에 따른 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 장치의 구성을 블록으로 도시한 것이다.3 is a block diagram illustrating a configuration of an apparatus for updating a program by selecting full erase or partial erase according to data to be updated according to the present invention.

도 4는 플래시 메모리 소자의 내용을 갱신할 데이터를 포함하는 데이터의 구조의 일 예를 도시한 것이다.4 illustrates an example of a structure of data including data for updating contents of a flash memory device.

본 발명은 컴퓨터와 같은 장치 내의 프로그램을 갱신하는 분야에 관한 것으로서, 더 자세히는 플래시 롬과 같은 소자 내부에 저장되는 프로그램을 갱신하는 하는 방법 및 그 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to the field of updating a program in a device, such as a computer, and more particularly, to a method and apparatus for updating a program stored in a device such as a flash ROM.

종래에 컴퓨터나 프린터와 같은 장치의 내부 제어를 위해 동작하는 CPU가 사용하는 프로그램인 펌웨어(firmware)를 갱신(update)하기 위해서는 펌웨어 코드가 기록되어 있는 ROM과 같은 메모리 소자를 컴퓨터나 프린터 장치에서 탈착하여 UV 광을 이용해서 그 내용을 삭제하고, ROM writer와 같은 장치에 넣어 새로운 내용을 기록한 후에 다시 장착하는 방법을 사용했다.Conventionally, in order to update firmware, which is a program used by a CPU operating for internal control of a device such as a computer or a printer, a memory device such as a ROM having a firmware code recorded thereon is removed from the computer or printer device. We used UV light to delete the contents, put them in a device such as a ROM writer, record new contents, and then remount them.

근래에는 펌웨어 코드를 저장하고 인출하기 위한 메모리 소자로 플래시 메모리(flash memory)를 사용하여 메모리 소자가 장치 내에 장착되어 있는 상태에서 메모리 소자내의 내용을 삭제하고 필요한 내용을 다시 기록하여 메모리 소자에 저장된 내용을 갱신한다.In recent years, a flash memory is used as a memory device for storing and retrieving firmware codes. In the state where the memory device is mounted in the device, the contents of the memory device are deleted and the necessary contents are rewritten to store the contents stored in the memory device. Update the.

도 1은 종래의 펌웨어를 갱신하는 과정을 도시한 것이다.1 shows a process of updating a conventional firmware.

예를 들어 컴퓨터나 프린터와 같은 장치 내부에서 새로운 내용으로 갱신될 펌웨어 데이터를 수신하고 이를 일시 저장한다(100 단계). 그리고 펌웨어가 현재 기록되어 있는 플래시 메모리의 데이터를 일부 영역만을 지우는 방법인 부분 지우기를 이용해서 섹터 단위로 전체 혹은 부분적으로 플래시 메모리에 저장되어 있는 내용을 지운다(110 단계). 내용이 지워진 플래시 메모리에 100 단계에서 수신하여 일시 저장한 데이터를 플래시 메모리에 복사 혹은 기록하여 플래시 메모리의 데이터인 펌웨어를 갱신한다(120 단계).For example, in a device such as a computer or a printer, firmware data to be updated with new contents is received and temporarily stored (step 100). Then, the firmware erases the contents stored in the flash memory in whole or in part in units of sectors by using partial erasing, which is a method of erasing only a partial region of data in the flash memory (step 110). In step 100, the data, which is received and temporarily stored in the flash memory whose contents have been erased, is copied or written to the flash memory and the firmware, which is data of the flash memory, is updated (step 120).

플래시 메모리에 기록될 데이터는 플래시 메모리 전체에 다시 기록될 내용일 수도 있고 혹은 플래시 롬의 일부 영역만에 기록될 데이터일 수도 있다. 즉 갱신될 데이터의 종류마다 플래시 메모리 내에 기록된 데이터를 지워야 할 부분이 달라질 수 있는 것이다. 이와 같은 경우들에 대응하기 위해 110 단계에서 플래시 메모리의 데이터를 지울 때에 데이터가 기록되는 섹터(sector) 단위로 지우는 부분 지우기 기능을 이용해서 지우는 것이 통상적인 방법이다.The data to be written to the flash memory may be contents to be written back to the entire flash memory or may be data to be written to only a part of the flash ROM. That is, the part to erase the data recorded in the flash memory may vary for each type of data to be updated. In order to cope with such cases, when the data of the flash memory is erased in step 110, it is common to erase the data using a partial erasing function that erases data in sectors in which data is recorded.

그런데 예를 들어 플래시 메모리의 저장 용량이 512 킬로 바이트(KByte)이고, 섹터 크기가 1024 바이트이면 섹터는 512개가 된다. 섹터 단위로 지우는 경우에는 지우기를 512번 해야 하며, 이런 과정에서 소모되는 시간이 상당히 크다. 특히 플래시 메모리와 같은 소자는 접근 시간이 상당히 큰 편이며, 그에 따라 플래시 메모리의 내용을 지우는 시간이 많이 걸린다. For example, if the storage capacity of the flash memory is 512 kilobytes (KByte) and the sector size is 1024 bytes, the number of sectors is 512. In the case of sector-by-sector erasing, 512 erases are required, and the time required for this process is quite large. In particular, devices such as flash memory have a large access time, which takes a long time to erase the contents of the flash memory.

그 결과 컴퓨터나 프린터를 생산하는 측에서도 펌웨어를 갱신하는 과정에 시간이 많이 걸려 생산성이 악화될 수 있으며, 컴퓨터나 프린터를 사용하는 사용자가 직접 펌웨어를 갱신하는 경우에는 그 갱신하는 시간이 많이 걸려, 장치가 고장인 것으로 생각한 사용자가 펌웨어를 다 갱신하지 않은 상태에서 장치의 전원을 끄고 다시 시작하는 경우가 생겨 장치를 아예 사용할 수 없게 되는 더 심각한 상태로 초래하는 문제를 발생시키기도 한다.As a result, even a computer or printer producing side may take a long time to update the firmware, and productivity may deteriorate. When a user who uses a computer or a printer directly updates the firmware, the updating takes a long time. A user who thinks that the system is faulty may turn off and restart the device without updating the firmware, resulting in a more serious condition that renders the device unusable.

본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 펌웨어와 같은 프로그램을 갱신할 때에 항상 부분 지우기를 이용해서 기록되어 있던 내용을 지우는 것이 아니라 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법 및 그 장치를 제공하는데 있다.The technical problem to be solved by the present invention is to solve the above problems, in order to solve the above problems, it is not necessary to always use partial erasing when updating a program such as firmware, but to erase the entire contents and partial erasing according to the data to be updated. To provide a method and apparatus for updating a program by selecting the.

상기 기술적 과제를 해결하기 위한 본 발명에 의한, 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법은, 플래시 메모리 소자에 저장된 프로그램을 갱신하는 방법에 있어서, (a) 갱신할 데이터를 포함하는 데이터를 수신하는 단계; (b) 상기 수신한 데이터의 갱신할 데이터가 상기 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 판단하는 단계; (c) 상기 수신한 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우 상기 플래시 메모리를 전체 지우기로 지우고, 상기 수신한 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우는 단계; 및 (d) 상기 플래시 메모리 소자의 해당되는 영역에 상기 수신한 갱신할 데이터를 복사하여 프로그램을 갱신하는 단계;를 포함하는 것을 특징으로 한다.According to the present invention for solving the above technical problem, a method of updating a program by selecting a full erase and a partial erase according to the data to be updated, the method of updating a program stored in a flash memory device, (a) Receiving data comprising data; determining whether the data to be updated of the received data is data for updating the entire area of the flash memory device; (c) if the received data to be updated is data for updating an entire area, the flash memory is erased with full erase; if the received data to be updated is data for updating a partial area, a corresponding portion of the flash memory is updated. Erasing the area by partial erasing; And (d) updating the program by copying the received data to be updated to a corresponding area of the flash memory device.

상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 장치는, 플래시 메모리 소자에 저장된 프로그램을 갱신하는 장치에 있어서, 갱신할 데이터를 포함하는 데이터를 수신하는 데이터수신부; 상기 수신한 데이터의 갱신할 데이터가 상기 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가를 상기 데이터수신부에서 수신한 데이터에 포함된 시작 어드레스 및 갱신할 내용의 크기에 따라 판단하는 판단부; 상기 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리를 전체 지우기로 지우고, 상기 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우는 지우기부; 및 상기 플래시 메모리 소자의 해당되는 영역에 상기 수신한 갱신 할 데이터를 복사하여 갱신하는 갱신부;를 포함하는 것을 특징으로 한다.According to the present invention for solving the above other technical problem, the apparatus for updating a program by selecting a full erase and a partial erase according to the data to be updated, the apparatus for updating the program stored in the flash memory device, the data to be updated A data receiving unit for receiving data including; A determination unit that determines whether the data to be updated of the received data is data for updating the entire area of the flash memory device according to the start address included in the data received by the data receiver and the size of the content to be updated; If the data to be updated is data for updating the entire area, the flash memory is erased with a full erase. If the data to be updated is data for updating a partial area, the corresponding partial area of the flash memory is partially erased. Clearing unit; And an update unit for copying and updating the received data to be updated in a corresponding region of the flash memory device.

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

도 2는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 본 발명에 따른 방법의 흐름을 도시한 것이다.2 shows the flow of a method according to the invention for updating a program by selecting a full erase and a partial erase in accordance with the data to be updated.

플래시 메모리 소자에 저장된 프로그램을 갱신할 때에 갱신할 데이터를 포함하는 데이터를 수신한다(100 단계). 갱신할 데이터가 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 판단하여(210 단계), 전체 영역을 갱신하는 데이터인 경우 플래시 메모리를 전체 지우기로 지우고, 일부 영역을 갱신하는 데이터인 경우에는 대응되는 일부 영역을 부분 지우기로 지우며(220 단계), 플래시 메모리 소자의 해당되는 영역에 갱신할 데이터를 복사하여 프로그램을 갱신한다(230 단계).When updating a program stored in a flash memory device, data including data to be updated is received (step 100). If it is determined that the data to be updated is data for updating the entire area of the flash memory device (step 210), if the data for updating the entire area is erased, the flash memory is erased with full erase, and if the data for updating a partial area is the corresponding part The region is partially erased (step 220), and the program is updated by copying data to be updated in the corresponding region of the flash memory device (step 230).

도 3은 본 발명에 따른 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 장치의 구성을 블록으로 도시한 것이다.3 is a block diagram illustrating a configuration of an apparatus for updating a program by selecting full erase or partial erase according to data to be updated according to the present invention.

플래시 메모리 소자(340)에 저장된 프로그램을 갱신하는 이 장치는, 갱신할 데이터를 포함하는 데이터를 수신하는 데이터수신부(300), 갱신할 데이터가 플래시 메모리 소자(340)의 전체 영역을 갱신하는 데이터인가를 판단하는 판단부(310), 전체 영역을 갱신하는 데이터인 경우에는 플래시 메모리(340)를 전체 지우기로 지우고, 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 대응되는 일부 영역을 부분 지우기로 지우는 지우기부(320) 및 플래시 메모리 소자(340)의 해당되는 영역에 갱신할 데이터를 복사하여 갱신하는 갱신부(330)를 포함한다.The device for updating a program stored in the flash memory device 340 is a data receiver 300 for receiving data including data to be updated, or is data to be updated to update the entire area of the flash memory device 340. Determining unit 310 for determining, if the data to update the entire area erases the flash memory 340 to erase all, if the data to be updated to update the partial area to the partial erase the corresponding partial area The eraser 320 includes an eraser 320 and an updater 330 which copies and updates data to be updated in a corresponding area of the flash memory device 340.

펌웨어와 같은 프로그램이 저장된 플래시 메모리 소자(이하 플래시 메모리라 한다)에 기록된 내용을 갱신하는 경우 컴퓨터와 같은 장치는 인터넷, 혹은 디스켓과 같은 다른 저장 매체를 통해 갱신 데이터를 받아 장치 내에 장착된 플래시 메모리의 내용을 갱신한다. 프린터와 같은 장치의 경우 프린터와 연결된 컴퓨터를 통해 갱신 데이터를 내려받아 프린터에 장착된 플래시 메모리에 저장되어 있던 펌웨어를 새로운 내용으로 갱신한다.When updating contents recorded in a flash memory device (hereinafter referred to as flash memory) in which a program such as firmware is stored, a device such as a computer receives update data through the Internet or another storage medium such as a diskette, and is mounted in the device. Update the contents of. In the case of a device such as a printer, update data is downloaded through a computer connected to the printer, and the firmware stored in the flash memory installed in the printer is updated with new contents.

데이터수신부(300)는 상기와 같은 방법으로 제공되는 갱신할 데이터를 포함하는 데이터를 수신한다(200 단계). The data receiver 300 receives data including data to be updated, which is provided in the above manner (step 200).

판단부(310)는 데이터수신부(300)를 통해 수신한 갱신할 데이터가 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 혹은 일부의 영역에 기록된 프로그램 혹은 데이터를 갱신하는 데이터인가를 판단한다(210 단계).The determination unit 310 determines whether the data to be updated received through the data receiver 300 is data for updating the entire region of the flash memory device or data for updating a program or data recorded in a portion of the region (210). step).

이때에 플래시 메모리 소자의 전체 영역 갱신인가를 판단하는 것은 200 단계에서 수신한 데이터에 포함된 플래시 메모리 소자에 기록될 시작 어드레스 및 갱신할 데이터의 크기에 대한 정보를 이용하는 것이 바람직하다.In this case, it is preferable to use information about the start address to be written in the flash memory device included in the data received in the step 200 and the size of the data to be updated to determine whether the entire area of the flash memory device is updated.

도 4는 플래시 메모리 소자의 내용을 갱신할 데이터를 포함하는 데이터의 구조의 일 예를 도시한 것이다.4 illustrates an example of a structure of data including data for updating contents of a flash memory device.

수신되는 데이터는 헤더부분에 갱신될 데이터(420)가 기록될 영역의 시작 어드레스(400) 및 갱신될 데이터 크기(410)를 나타내는 필드를 포함한다. 판단부(310)는 수신된 데이터의 헤더 부분의 시작 어드레스 필드(400)의 값에 갱신 될 데이터 크기 필드(410)의 값을 더해 끝나는 어드레스를 계산하는 것이 바람직하다. 컴퓨터와 같은 디지털 장치들은 내부의 자원에 접근하기 위해 각 자원마다 일정한 영역을 할당하고, CPU와 중앙처리장치가 자원에 접근할 때에는 그 자원에 할당된 영역의 어드레스를 지정하여 필요한 데이터를 그 자원으로부터 읽거나 혹은 그 자원에 쓰게 된다.The received data includes a field indicating a start address 400 of an area in which data 420 to be updated is recorded and a data size 410 to be updated. The determination unit 310 preferably calculates an ending address by adding the value of the data size field 410 to be updated to the value of the start address field 400 of the header portion of the received data. Digital devices such as computers allocate a certain area for each resource to access internal resources, and when the CPU and CPU access a resource, they designate the address of the area allocated to that resource and retrieve the necessary data from that resource. Read or write to that resource.

컴퓨터 혹은 프린터와 같은 장치의 소자들은 각각 그 소자들에 대응하는 어드레스에 따라 접근할 수 있다. 예를 들면 CPU가 플래시 메모리에 쓰거나 혹은 읽기 위해 플래시 메모리의 시작 주소 16진수 0000번지에서 마지막 주소인 16진수 ffff번지까지의 영역을 어드레스를 지정하여 접근할 수 있다.Elements of a device, such as a computer or printer, may each be accessed according to an address corresponding to the elements. For example, the CPU can access the area from the hexadecimal address 0000 to the last hexadecimal ffff address by writing to or reading from the flash memory.

플래시 메모리에 할당된 영역은 전 영역에 펌웨어 프로그램이 기록될 수도 있고 혹은 할당된 영역 중에서도 일정한 영역만이 펌웨어 프로그램이 기록되는 부분일 수 있다. 이와 같이 펌웨어 프로그램이 기록되는 영역은 장치 설계 시에 미리 결정되는 기본 사양인 것이며, 따라서 펌웨어 프로그램을 갱신하려는 도 4와 같은 데이터 구조의 시작 어드레스(400)와 데이터 크기(410)는 이런 기본적인 사양에 따라 결정된 것이다.In the area allocated to the flash memory, the firmware program may be recorded in all areas, or only a certain area among the allocated areas may be the part in which the firmware program is recorded. The area in which the firmware program is recorded as described above is a basic specification that is predetermined at the time of device design. Therefore, the start address 400 and the data size 410 of the data structure as shown in FIG. It is decided accordingly.

따라서 시작 어드레스 필드(400)에 기재된 값과 데이터 크기 필드(410)에 기재된 값을 참조하면 갱신될 데이터(420)가 복사될 혹은 써질 영역이 플래시 메모리(340)의 펌웨어 프로그램이 기록될 전체 영역인가 혹은 전체 영역 중의 일부의 영역인가를 판단할 수 있다.Therefore, referring to the value described in the start address field 400 and the value described in the data size field 410, the area to which the data 420 to be updated is copied or written is the entire area to which the firmware program of the flash memory 340 is to be written. Or it can be determined whether it is a part of the whole area.

갱신될 때에 갱신될 데이터(420)의 첫 부분(A)은 시작 어드레스에 기록될 것 이고, 마지막 부분(B)은 시작 어드레스와 데이터 크기에 따라 정해지는 마지막 어드레스에 기록될 것이다.When updated, the first part A of the data 420 to be updated will be written to the start address, and the last part B will be written to the last address determined by the start address and data size.

도 4의 데이터 구조와 같이 헤더 부분이 시작 어드레스와 데이터 크기에 대한 정보를 포함할 수도 있고, 구현 예에 따라서는 시작 어드레스와 끝나는 어드레스에 대한 정보를 포함할 수도 있을 것이다.As shown in the data structure of FIG. 4, the header part may include information about a start address and a data size, and in some embodiments, may include information about a start address and an end address.

지우기부(320)는 판단부(310)에서 판단한 결과에 따라 플래시 메모리(340)의 해당 영역을 지운다. 즉, 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우에는 플래시 메모리(340)를 전체 지우기로 지우고, 상기 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 플래시 메모리(340)의 대응되는 일부 영역을 부분 지우기로 지운다. 이때에 플래시 메모리 내의 데이터를 부분적으로 지울 때에는 섹터 단위로 지우는 것이 바람직하다. The erasing unit 320 erases the corresponding area of the flash memory 340 according to the result determined by the determination unit 310. That is, when the data to be updated is data for updating the entire area, the flash memory 340 is erased with full erase, and when the data to be updated is data for updating some areas, the corresponding partial area of the flash memory 340. Delete with partial erase. At this time, when partially erasing data in the flash memory, it is preferable to erase sector by sector.

갱신할 데이터가 플래시 메모리 전체에 대한 갱신인 경우에는 전체 지우기이며, 예를 들면 chip erase와 같은 명령을 사용하여 플래시 메모리 내의 전 영역에 기록된 데이터를 지운다.If the data to be updated is the update of the entire flash memory, it is a full erase. For example, a command such as chip erase is used to erase data written to all areas in the flash memory.

갱신할 데이터가 플래시 메모리의 일부 영역에 대응하는 경우에는 지우기부(320)는 플래시 메모리 내의 해당되는 어드레스 영역만을 갱신하게 된다. 따라서 이 경우는 sector erase와 같은 부분 지우기 명령을 사용하여 해당되는 영역만을 지운다.When the data to be updated corresponds to a partial area of the flash memory, the eraser 320 updates only the corresponding address area in the flash memory. Therefore, in this case, use the partial erase command such as sector erase to erase only the corresponding area.

플래시 메모리의 용량이나 사양에 따라 달라질 수 있겠지만 512 KByte의 플래시 메모리의 경우 전체 지우기 기능을 이용하는 경우 1초 정도의 시간 내에 메모 리 전체의 내용을 지울 수 있다. 만일 종래와 같이 전체 지우기와 부분 지우기를 구별하지 않고 부분 지우기로 플래시 메모리의 전체 내용을 지우려면 상기에 예를 든 용량 512 KByte이며, 섹터 크기가 1024 바이트이며 섹터의 수는 512개인 플래시 메모리의 경우 섹터 단위로 512회의 섹터 지우기를 하면 대략적으로 24초 정도의 시간이 걸린다. 따라서 플래시 메모리 전체 지우기를 하는 경우에는 종래에 비해 지우는 시간이 대폭 줄어든 것을 알 수 있다.Depending on the size and specifications of the flash memory, the flash memory of 512 KByte can be used to erase the entire contents of the memory within a second. If you want to erase the entire contents of the flash memory by partial erasing without distinguishing between full erasing and partial erasing as in the prior art, a flash memory having a capacity of 512 KByte, a sector size of 1024 bytes, and a number of sectors of 512 may be used. Erase 512 sectors in sectors takes approximately 24 seconds. Therefore, when erasing the entire flash memory, it can be seen that the erasing time is significantly reduced as compared with the prior art.

갱신부(330)는 플래시 메모리(340)가 전체 지우기로 지워진 경우에는 플래시 메모리 전체 영역을 대상으로 상기에 설명된 시작 어드레스부터 끝나는 어드레스까지 갱신될 데이터를 복사하여 플래시 메모리의 내용을 갱신한다(230 단계). 혹은 플래시 메모리(340)의 일부 영역이 부분 지우기로 지워진 경우에는 해당되는 시작 어드레스부터 갱신될 데이터를 복사하여 부분적으로 내용을 갱신한다(230 단계).When the flash memory 340 is erased by erasing the entire memory, the updater 330 updates the contents of the flash memory by copying data to be updated from the above-described start address to the end address of the entire flash memory area (230). step). Alternatively, when a part of the area of the flash memory 340 is erased by partial erasing, the content is partially updated by copying data to be updated from the corresponding start address (step 230).

만일 210 단계에서 갱신될 데이터의 시작 어드레스와 데이터 크기를 참조로 하여 판단한 결과 플래시 메모리에 할당된 어드레스 영역을 넘어서는 갱신될 데이터임으로 판단된다면 이는 원하는 경우가 아닌 잘못된 경우이므로 판단부(310)는 적절한 에러 메시지를 출력하여 사용자에게 알리는 것이 바람직하다. If it is determined by referring to the start address and data size of the data to be updated in step 210 that it is determined that the data is to be updated beyond the address area allocated to the flash memory, this is not the case but is a wrong case. It is desirable to output a message to inform the user.

그리고 그 다음의 지우는 단계(220 단계)를 진행하지 않고 펌웨어 갱신 동작을 중지해야 한다. 제대로 작성되지 않은 갱신될 데이터를 사용하여 펌웨어를 갱신한다면 그 장치는 제대로 동작하지 않을 것이기 때문에 이와 같이 잘못된 데이터로 펌웨어를 갱신하는 것은 절대적으로 피해야 한다.Then, the firmware update operation must be stopped without proceeding to the next erasing step (step 220). If you update the firmware using incorrectly updated data to be updated, the device will not work properly and you should absolutely avoid updating the firmware with this incorrect data.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발 명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다. 상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. Examples included in the above description are introduced for the understanding of the present invention, and these examples do not limit the spirit and scope of the present invention. It will be apparent to those skilled in the art that various embodiments in accordance with the present invention in addition to the above examples are possible. The scope of the present invention is shown not in the above description but in the claims, and all differences within the scope will be construed as being included in the present invention.

또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.In addition, it can be easily understood by those skilled in the art that each of the above steps according to the present invention can be variously implemented in software or hardware using a general programming technique.

그리고 본 발명의 일부 또는 전 단계들은, 또한, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, CD-RW, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.And some or all of the steps of the present invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, CD-RW, magnetic tape, floppy disks, HDDs, optical disks, magneto-optical storage devices, and carrier wave (eg, Internet It also includes the implementation in the form of). The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

본 발명에 의하면, 플래시 메모리 소자에 저장된 프로그램을 갱신하는 방법에 있어서, 갱신할 데이터를 포함하는 데이터를 수신하여, 갱신할 데이터가 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 판단하여, 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우 플래시 메모리를 전체 지우기로 지우고, 수신한 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우고, 플래시 메모리 소자의 해당되는 영역에 갱신할 데이터를 복사하여 프로그램을 갱신하여, 부분 지우기만으로 플래시 메모리의 전체 영역에 기록되어 있던 데이터를 지우는 경우보다 지우는 시간이 대폭 줄어들게 되어, 그 결과 제품 생산 시간을 단축할 수 있고, 사용자가 장치 사용 중에 사용자가 직접 펌웨어를 갱신하는 경우에도 갱신 시간을 단축할 수 있어 플래시 메모리를 포함하여 펌웨어 갱신을 할 수 있는 장치 사용을 하는 환경이 사용자의 입장에서 간편해지는 효과를 제공한다.According to the present invention, in the method for updating a program stored in a flash memory device, the data including the data to be updated is received, the data to be updated is determined to be data for updating the entire area of the flash memory device, and the data to be updated. Is the data for updating the entire area, the flash memory is erased with full erase. If the data to be updated is the data for updating the partial area, the corresponding partial area of the flash memory is erased with the partial erase. By updating the program by copying the data to be updated in the area to be updated, the erasing time is significantly reduced than when erasing the data recorded in the entire area of the flash memory only by partial erasing. As a result, the product production time can be shortened. Firmware while the device is in use In the case of updating the update time, the update time can be shortened, so that the environment using the device for updating the firmware including the flash memory can be simplified from the user's point of view.

Claims (6)

플래시 메모리 소자에 저장된 프로그램을 갱신하는 방법에 있어서,A method of updating a program stored in a flash memory device, (a) 갱신할 데이터를 포함하는 데이터를 수신하는 단계;(a) receiving data containing data to be updated; (b) 상기 수신한 데이터의 갱신할 데이터가 상기 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가 판단하는 단계;determining whether the data to be updated of the received data is data for updating the entire area of the flash memory device; (c) 상기 수신한 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우 상기 플래시 메모리를 전체 지우기로 지우고, 상기 수신한 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우는 단계; 및(c) if the received data to be updated is data for updating an entire area, the flash memory is erased with full erase; if the received data to be updated is data for updating a partial area, a corresponding portion of the flash memory is updated. Erasing the area by partial erasing; And (d) 상기 플래시 메모리 소자의 해당되는 영역에 상기 수신한 갱신할 데이터를 복사하여 프로그램을 갱신하는 단계;를 포함하는 것을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법.(d) updating the program by copying the received data to be updated to a corresponding area of the flash memory device, and selecting a full erase or partial erase according to the data to be updated. How to. 제1항에 있어서,The method of claim 1, 상기 (b) 단계에서 플래시 메모리 소자의 전체 영역 갱신인가를 판단하는 것은 상기 (a) 단계에서 수신한 데이터에 포함된 상기 플래시 메모리 소자에 기록될 시작 어드레스 및 갱신할 데이터의 크기에 대한 정보를 이용하는 것임을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법.Determining whether the entire area of the flash memory device is updated in the step (b) uses information on the start address to be written to the flash memory device included in the data received in the step (a) and the size of the data to be updated. Updating the program by selecting a full erase or partial erase according to the data to be updated. 제2항에 있어서, The method of claim 2, 상기 시작 어드레스에 갱신할 데이터의 크기를 더하여 끝나는 어드레스를 계산하여 플래시 메모리 소자의 전체 영역 갱신인가를 판단하는 것을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법.And determining whether to update the entire area of the flash memory device by calculating an ending address by adding the size of data to be updated to the start address, and selecting a full erase or partial erase according to the data to be updated. 제2항 또는 제3항에 있어서, The method according to claim 2 or 3, 상기 (b) 단계에서 시작 어드레스 및 갱신할 데이터의 크기에 대한 정보를 이용하여 갱신할 데이터가 기록될 영역이 상기 플래시 메모리 소자에 대응하는 어드레스 영역 이내가 아닌 경우에는 사용자에게 이를 알리고 다음 단계인 (c) 단계 및 (d) 단계로 진행하지 않고 갱신을 중단하는 것을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법.If the area in which data to be updated is written is not within the address area corresponding to the flash memory device using the information on the start address and the size of the data to be updated in step (b), the user is informed of this and the next step ( c) updating the program by selecting a full erase or partial erase according to the data to be updated, wherein the update is interrupted without proceeding to steps (d) and (d). 제1항 내지 제3항 중의 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 (c) 단계의 부분 지우기는 섹터 단위로 지우기임을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 방법.The partial erasing of the step (c) is a sector-by-sector erasing method to select a full erase and a partial erase according to the data to be updated to update the program. 플래시 메모리 소자에 저장된 프로그램을 갱신하는 장치에 있어서,An apparatus for updating a program stored in a flash memory device, 갱신할 데이터를 포함하는 데이터를 수신하는 데이터수신부;A data receiver receiving data including data to be updated; 상기 수신한 데이터의 갱신할 데이터가 상기 플래시 메모리 소자의 전체 영역을 갱신하는 데이터인가를 상기 데이터수신부에서 수신한 데이터에 포함된 시작 어드레스 및 갱신할 내용의 크기에 따라 판단하는 판단부;A determination unit that determines whether the data to be updated of the received data is data for updating the entire area of the flash memory device according to the start address included in the data received by the data receiver and the size of the content to be updated; 상기 갱신할 데이터가 전체 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리를 전체 지우기로 지우고, 상기 갱신할 데이터가 일부 영역을 갱신하는 데이터인 경우에는 상기 플래시 메모리의 대응되는 일부 영역을 부분 지우기로 지우는 지우기부; 및If the data to be updated is data for updating the entire area, the flash memory is erased with a full erase. If the data to be updated is data for updating a partial area, the corresponding partial area of the flash memory is partially erased. Clearing unit; And 상기 플래시 메모리 소자의 해당되는 영역에 상기 수신한 갱신할 데이터를 복사하여 갱신하는 갱신부;를 포함하는 것을 특징으로 하는 갱신할 데이터에 따라 전체 지우기와 부분 지우기를 선택하여 프로그램을 갱신하는 장치.And an update unit for copying and updating the received data to be updated in a corresponding region of the flash memory device.
KR1020030086507A 2003-12-01 2003-12-01 Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof KR100571915B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030086507A KR100571915B1 (en) 2003-12-01 2003-12-01 Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030086507A KR100571915B1 (en) 2003-12-01 2003-12-01 Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20050052924A KR20050052924A (en) 2005-06-07
KR100571915B1 true KR100571915B1 (en) 2006-04-17

Family

ID=37248739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030086507A KR100571915B1 (en) 2003-12-01 2003-12-01 Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof

Country Status (1)

Country Link
KR (1) KR100571915B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953081B1 (en) * 2008-06-10 2010-04-19 팅크웨어(주) Device and method for data cache
US9933974B2 (en) 2014-02-28 2018-04-03 Samsung Electronics Co., Ltd. Method of operating data storage device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953081B1 (en) * 2008-06-10 2010-04-19 팅크웨어(주) Device and method for data cache
US9933974B2 (en) 2014-02-28 2018-04-03 Samsung Electronics Co., Ltd. Method of operating data storage device
US10552084B2 (en) 2014-02-28 2020-02-04 Samsung Electronics Co., Ltd. Method of operating data storage device
US11216206B2 (en) 2014-02-28 2022-01-04 Samsung Electronics Co., Ltd. Method of operating data storage device

Also Published As

Publication number Publication date
KR20050052924A (en) 2005-06-07

Similar Documents

Publication Publication Date Title
KR100644602B1 (en) Method for driving remapping for flash memory and flash memory architecture thereto
US6625096B1 (en) Optical disk recording and reproduction method and apparatus as well as medium on which optical disk recording and reproduction program is recorded
US7984231B2 (en) Information recording medium access device, and data recording method
US6789158B2 (en) Method of rewriting program in a flash microcomputer
US6571312B1 (en) Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
JP4268396B2 (en) Non-volatile memory device file management that can be programmed once
KR20000048766A (en) Method for performing a continuous over-write of a file in a nonvolatile memory
JP2009199625A (en) Memory card, and method for controlling memory card and method for controlling nonvolatile semiconductor memory
US7502284B2 (en) Methods for optical disc sector verification
JP2006040264A (en) Control method of memory card, and control method of nonvolatile semiconductor memory
JP2003532222A (en) Method, system, and computer program for data management on a storage medium
KR100703680B1 (en) Flash file system
JP4347707B2 (en) Information recording medium formatting method and information recording medium
JP4215746B2 (en) Information processing apparatus and life monitoring method
JP4130808B2 (en) Formatting method
JP4731325B2 (en) Recording medium, data processing apparatus, and data processing method
JPH10326227A (en) System for managing storage device using flash memory as storage medium
KR100571915B1 (en) Method for updating a program with selecting of erase-all or erase-section command according to the updating data and apparatus thereof
US7062682B2 (en) Data recorder and data recording method avoiding data loss due to data transfer error
US20050149493A1 (en) Data recording apparatus and data recording method
EP0338839A2 (en) Optical recording medium recording and reproducing device
JPH1031611A (en) File system for nonvolatile memory storage medium
US7821894B2 (en) Method and apparatus for recording information onto and reproducing information from a recording medium and managing a defective area in a recording medium
JP3927192B2 (en) Memory card and memory card drive
JPH06332795A (en) Electrically erasable nonvolatile memory controlling method and system therefor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee