KR101453951B1 - 플래시 메모리를 이용한 운용시간 기록 시스템 - Google Patents

플래시 메모리를 이용한 운용시간 기록 시스템 Download PDF

Info

Publication number
KR101453951B1
KR101453951B1 KR1020130109675A KR20130109675A KR101453951B1 KR 101453951 B1 KR101453951 B1 KR 101453951B1 KR 1020130109675 A KR1020130109675 A KR 1020130109675A KR 20130109675 A KR20130109675 A KR 20130109675A KR 101453951 B1 KR101453951 B1 KR 101453951B1
Authority
KR
South Korea
Prior art keywords
data
block
operation time
blocks
recorded
Prior art date
Application number
KR1020130109675A
Other languages
English (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 KR1020130109675A priority Critical patent/KR101453951B1/ko
Application granted granted Critical
Publication of KR101453951B1 publication Critical patent/KR101453951B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

플래시 메모리를 이용한 운용시간 기록 시스템을 공개한다. 본 발명은 데이터를 저장 및 소거하는 복수개의 블록을 구비하는 플래시 메모리, 전원이 인가되면 구동되어, 기설정된 주기마다 타이밍 신호를 출력하는 타이머, 및 상기 플래시 메모리의 복수개의 블록 중 기설정된 개수의 블록을 운용시간 기록 영역으로 설정하고, 상기 타이밍 신호가 수신될 때마다 상기 운용시간 기록 영역의 블록에 기설정된 순서로 순차적으로 상기 운용시간에 대응하는 데이터를 기록하고, 상기 운용시간 기록 영역 전체에 상기 데이터가 기록되면, 상기 데이터를 기설정된 단위로 증가 또는 감소시켜 다시 운용시간 기록 영역에 로테이션하여 기록하는 제어부를 포함한다.

Description

플래시 메모리를 이용한 운용시간 기록 시스템{SYSTEM FOR RECORDING OPERATION TIME USING FLASH MEMORY}
본 발명은 운용시간 기록 시스템에 관한 것으로, 특히 작은 용량의 플래시 메모리를 이용한 효율적 운용시간 기록 시스템에 관한 것이다.
최근 각종 시스템들은 안정도를 높이기 위한 주기적 부품 교체, 제품 수명 확인 등과 같은 다양한 목적으로 운용시간을 기록하도록 설정된 경우가 많다. 그리고 운용시간을 기록하는 대부분 시스템은 전원이 인가되지 않는 경우에도 이전 운용시간을 기록하고 전원이 인가된 이후에 이전 운용시간에 누적하여 운용시간을 기록하도록 하고 있다. 이는 실질적으로 시스템인 운용된 총 운용시간을 기록할 수 있도록 하기 위함이다. 따라서 시스템에 전원이 인가되지 않더라도 운용시간을 기억할 수 있어야 하므로, 운용시간은 대부분 비휘발성 메모리를 이용하여 기록한다. 그리고 비휘발성 메모리 중에서도 최근에는 고용량으로 구현이 용이하고 비용이 상대적으로 저렴한 플래시 메모리를 이용하여 운용시간을 기록하는 경우가 매우 빈번하다.
그러나 플래시 메모리는 기본적인 특성상 블록단위로 기록된 데이터를 소거하는 단점이 있다. 이에 플래시 메모리를 이용하여 운용시간을 기록하는 시스템의 대부분은 운영체제(Operating System : 이하 OS) 또는 별도의 플래시 메모리 관리 프로그램이 설치되어 플래시 메모리의 물리적 주소와 소프트웨어에서 사용하는 논리적 주소를 분리하여 관리함으로써 이러한 단점을 극복할 수 있도록 한다. 플래시 메모리를 관리하는 소프트웨어들은 일반적으로 플래시 메모리를 페이지(page) 단위로 관리하고, 주기적으로 가비지 컬렉팅(garbage collecting)을 수행하여 내에서 더 이상 필요치 않다고 판단되는 데이터를 회수 메모리 용량을 확보한다. 그러나 별도의 메모리 관리 프로그램은 다양한 상황에 대해 모두 적용 가능한 범용성을 가지도록 설계됨으로써 프로그램이 복잡하고 부하(load)가 크다.
한편 최근에는 별도의 OS를 사용하지 않으면서, 1Mbyte 이하의 플래시 메모리를 활용하여 운용되는 소형 임베디드 시스템을 적용한 전자기기의 보급이 크게 확대되고 있다.
이러한 소형 임베디드 시스템에서는 OA가 없으므로, 물리적 주소와 구분되는 논리적 주소를 제공하기 어려우며, 운용시간을 위한 1개의 변수를 위해 플래시 메모리를 관리하는 별도의 관리 프로그램을 개발하여 적용하는 것은 프로그램 개발 비용에 의한 낭비일 뿐만 아니라, 관리 프로그램을 저장하고 구동하기 위한 메모리를 추가로 필요로 하게 되므로 불필요한 비용의 증가를 가져오게 된다. 또한 가비지 컬렉팅을 수행하는 것 또한 시스템의 제어 프로세서에 부하를 유발하므로, 임베디드 시스템과 같은 소형 시스템에서는 적합하지 않다.
이에 기존에 OS나 관리 프로그램을 구비하지 않는 시스템에서는 운용시간을 계산하기 위해 플래시 메모리에서 큰 데이터 영역(예를 들면, 10Mbyte)을 운용시간 계산을 위한 영역으로 설정하고, 설정된 영역의 데이터를 0xFF로 소거한 후, 1분마다 1byte씩 0x00의 데이터를 기록한다. 그리고 운용시간을 확인하는 경우에는 0x00이 기록된 byte 의 수를 계산하여 운용시간을 판단하였다. 이러한 방식으로 운용시간을 기록하는 시스템에서 간단한 방식으로 운용시간을 기록할 수 있으나, 운용시간이 길어질 경우 메모리의 용량이 함께 커져야 하는 한계가 있다. 예를 들어 상기한 바와 같이 1분마다 1byte씩 데이터를 기록하여 운용시간을 기록하는 경우에, 10년의 운용시간을 기록하기 위해서는 5.3Mbyte라는 매우 큰 메모리 용량이 요구된다. 만일 메모리 용량을 줄이기 위해 동일 영역에 반복하여 읽기/쓰기를 수행하여 메모리 용량을 줄이고자 한다면, 쓰기(write) 시간에 비해 소거(erase)시간이 길어서 불리할 뿐만 아니라, 플래쉬 메모리 특성상 최대 쓰기 횟수가 제한되어 플래시 메모리의 수명을 단축시키게 된다.
한국 등록 특허 제0448905호에는 플래시 메모리를 시스템 구동 및 저장용으로 사용할 수 있는 시스템에 대해 개시하고 있다. 그러나 상기한 한국 등록 특허는 서로 다른 복수개의 인터페이스 장치를 통해 OS가 플래시 메모리를 관리하도록 하고 있으므로, OS가 설치되지 않는 소형 임베디드 시스템에는 적용할 수 없다는 한계가 있다.
본 발명의 목적은 별도의 메모리 관리 프로그램을 구비하지 않은 소형 임베디드 시스템에서 작은 크기의 플래시 메모리 영역으로도 간단하게 운용시간을 기록할 수 있는 운용시간 기록 시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 예에 따른 플래시 메모리를 이용한 운용시간 기록 시스템은 데이터를 저장 및 소거하는 복수개의 블록을 구비하는 플래시 메모리; 전원이 인가되면 구동되어, 기설정된 주기마다 타이밍 신호를 출력하는 타이머; 및 상기 플래시 메모리의 복수개의 블록 중 기설정된 개수의 블록을 운용시간 기록 영역으로 설정하고, 상기 타이밍 신호가 수신될 때마다 상기 운용시간 기록 영역의 블록에 기설정된 순서로 순차적으로 상기 운용시간에 대응하는 데이터를 기록하고, 상기 운용시간 기록 영역 전체에 상기 데이터가 기록되면, 상기 데이터를 기설정된 단위로 증가 또는 감소시켜 다시 운용시간 기록 영역에 로테이션하여 기록하는 제어부; 를 포함한다.
상기 제어부는 상기 운용시간 기록 영역에 Tn(여기서 Tn 은 3 이상의 자연수)개의 블록이 포함되도록 설정하는 것을 특징으로 한다.
상기 제어부는 상기 적어도 Tn개의 블록 중 메모리 주소가 가장 낮은 주소의 블록의 가장 낮은 주소부터 주소를 증가시키며, 상기 데이터를 기록하고, 상기 Tn개의 블록 중 2개의 블록에 데이터가 기록되면, 이전 데이터가 기록된 블록의 데이터는 소거하는 것을 특징으로 한다.
상기 제어부는 상기 Tn개의 블록 중 n (여기서 n은 Tn 이하의 자연수)번째 블록의 데이터 기록이 완료되어, n+1번째 블록에 데이터를 기록할 때, n-1번째 블록의 데이터를 소거하는 것을 특징으로 한다.
상기 제어부는 상기 n+1번째 블록이 1번째 블록이면, 1번째 블록부터 로테이션하여 데이터를 기록하고, Tn-1번째 블록의 데이터를 소거하며, n+1 블록이 2번째 블록이면, Tn번째 블록의 데이터를 소거하는 것을 특징으로 한다.
따라서, 본 발명의 플래시 메모리를 이용한 운용시간 기록 시스템은 최소 3개의 메모리 블록 영역을 운용 기록 영역으로 사용하고, 운용 기록 영역의 메모리의 데이터를 기설정된 시간마다 1byte 단위로 순차적으로 감소하도록 구성함으로써, 매우 적은 메모리 용량으로도 상대적으로 긴 시스템 운용 시간을 기록할 수 있도록 한다. 뿐만 아니라 별도의 플래시 메모리 관리 프로그램을 필요로 하지 않으므로, 관리 프로그램에 의한 부하 및 메모리 용량 손실을 줄일 수 있으며, 결과적으로 소형 임베디드 시스템에 유용하게 적용할 수 있다.
도1 은 본 발명의 일 실시예에 따른 운용시간 기록 시스템을 나타낸다.
도2 및 도3 은 본 발명에 따른 운용시간 기록 영역에 기록되는 데이터의 일예를 나타낸다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도1 은 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 운용시간 기록 시스템을 나타낸다.
도1 을 참조하면 본 발명의 플래시 메모리를 이용한 운용시간 기록 시스템(1)은 소형 임베디드 시스템으로서 프로세서(10), 메모리 제어부(20), 타이머(30) 및 플래시 메모리(40)를 포함한다. 프로세서(10)는 시스템의 용도에 따라 각종 데이터를 처리하는 중앙 처리 장치(CPU)로서 메모리 제어부(20)로 메모리 제어 신호를 전송하여 메모리 제어부(20)를 제어하고, 메모리 제어부(20)를 통해 플래시 메모리(30)에 데이터를 저장하거나 데이터를 독출한다. 그리고 프로세서(10)는 플래시 메모리(40)에서 독출된 데이터를 이용하여 기설정된 소정의 작업을 수행하고, 수행의 완료 결과로서 생성되거나 수정된 데이터를 메모리 제어부(20)를 통해 플래시 메모리(40)에 저장한다. 그리고 프로세서(10)는 운용시간을 확인할 필요성이 발생하면, 운용시간 확인 신호를 메모리 제어부(20)로 전송하여 플래시 메모리(40)에 저장된 운용시간 데이터를 획득하고, 획득된 운용시간 데이터를 기설정된 방식으로 변환하여 시스템(1)의 운용 시간을 획득한다. 프로세서(10)는 주기적(예를 들면 1분)으로 운용시간을 확인할 수도 있으며, 시스템(1)에 사용자 인터페이스 또는 통신부가 더 구비된 경우 외부로부터 운용시간 확인 명령이 인가되면 운용시간을 확인할 수도 있다. 또한 확인된 운용시간을 사용자 인터페이스나 통신부를 통해 외부로 출력할 수도 있다.
메모리 제어부(20)는 프로세서(10)에서 인가되는 메모리 제어 신호에 응답하여 플래시 메모리(40)를 제어하여 플래시 메모리(40)에 데이를 입출력한다. 특히 메모리 제어부(20)는 플래시 메모리(40)의 메모리 용량 중에서 기설정된 소정 크기의 용량을 시스템(1)의 운용시간을 기록하기 위한 운용시간 영역으로 설정한다. 한편 메모리 제어부(20)는 타이머(30)로부터 타이밍 신호가 수신되면, 기설정된 방식에 따라 플래시 메모리(40)의 운용시간영역에 데이터를 기록한다. 그리고 프로세서(10)로부터 운영시간 확인 신호가 수신되면, 플래시 메모리(40)의 운용시간 영역에 기록된 데이터를 독출하여 프로세서(10)로 전송한다.
타이머(30)는 시스템(1)에 전원이 인가되면, 시스템의 구동과 동시에 동작하며, 기설정된 시간(예를 들면 1분)마다 메모리 제어부(20)로 타이밍 신호를 전송하여 메모리 제어부(20)가 플래시 메모리(30)의 메모리 영역 중 운용시간을 기록하기 위해 할당된 운용시간 기록 영역의 데이터를 수정하도록 한다.
플래시 메모리(40)는 데이터를 저장하는 메모리 장치로서, 본 발명에서는 고속 엑세스와 대용량을 지원하고 비교적 가격이 저렴한 낸드(NAND) 플래시 메모리를 의미한다. 플래시 메모리(40)는 메모리 제어부(20)의 제어에 따라 데이터를 수신하여 저장하거나, 저장된 데이터를 출력한다. 특히 본 발명의 플래시 메모리(40)는 메모리 제어부(20)에서 지정하는 영역을 운용시간 기록 영역으로 설정하여 운용시간에 대응하는 데이터를 저장한다.
여기서 운용시간 기록 영역은 각각 소정의 메모리 용량을 갖는 적어도 3개의 블록으로 설정된다. 플래시 메모리(40), 특히 낸드 플래시 메모리는 기설정된 크기의 블록 단위 소거 동작을 수행하도록 설계된다. 따라서 운용시간 기록 영역 또한 블록 단위로 설정되며, 본 발명에서는 특히 적어도 3개 이상의 블록이 운용시간 기록 영역으로 설정된다. 블록 단위의 크기는 플래시 메모리(40)의 설정에 따라 다양하게 설정될 수 있으나, 본 발명에서는 일 예로 각각의 블록 단위가 4Kbyte의 크기인 것으로 가정하여 설명한다. 운용시간 기록 영역으로 적어도 3개 이상의 블록을 설정하는 것은 적어도 3개의 블록 중 2개의 블록에 현재 운용시간에 대한 데이터를 기록하고, 나머지 블록은 데이터 소거를 수행할 수 있도록 하기 위함이다. 즉 본 발명에서는 교대로 적어도 3개의 블록 중 2개의 블록에 데이터를 기록하고, 2개의 블록에 데이터를 기록하는 동안 나머지 블록을 소거하여 데이터를 재기록 할 수 있도록 하기 위함이다. 이는 낸드 플래시 메모리가 블록 단위의 소거만을 제공하기 때문이다.
상기에서는 설명의 편의를 위하여 프로세서(10)와 메모리 제어부(20)를 별도로 도시하였으나, 프로세서(10)와 메모리 제어부(20)는 통합하여 제어부로 구현될 수 있다. 특히 본 발명과 같은 소형 임베디드 시스템의 경우에는 별도의 메모리 제어부(20)를 구비하는 경우가 극히 드물기 때문에 일반적으로 프로세서(10)가 메모리 제어부(20)의 기능을 함께 수행하는 제어부로 구현된다. 즉 메모리 제어부(20)의 기능은 소프트웨어로 구현될 수 있다.
도2 및 도3 은 본 발명에 따른 운용시간 기록 영역에 기록되는 데이터의 일예를 나타낸다.
도1 을 참조하여 도2 및 도3을 설명하면, 상기한 바와 같이 운용시간 기록 영역으로 3개의 4Kbyte 블록(B1 ~ B3)이 설정되는 것으로 가정한다. 본 발명에서는 설명의 편의를 위하여 플래시 메모리(40)의 가장 앞선 메모리 주소(0x0000)부터 3개의 블록(B1 ~ B3)이 운용시간 영역으로 설정되는 것으로 가정한다. 그러나 운용시간 기록 영역은 플래시 메모리(40)의 다른 메모리 주소 영역이 설정되어도 무방하다. 다만 운용시간 기록 영역은 연속되는 주소를 갖도록 설정되는 것이 바람직하지만, 연속되지 않아도 무방하다.
도2 에서 (a)는 시스템이 운용되기 전 초기 상태로서, 운용시간 영역에 모든 데이터가 소거 상태이다. 따라서 운용기록 영역에 데이터는 모두 0xFF이다. 즉 모든 블록(B1 ~ B3)의 데이터가 소거 상태(0xFF)이면, 프로세서(10)는 시스템의 운용시간이 0 인 초기 상태로 인식할 수 있다.
(b)는 운용시간을 기록하기 시작하는 상태로서, 타이머(30)가 시스템 운용 이후 최초 기설정된 시간(예를 들면 1분)이 소요되면 타이머(30)가 타이밍 신호를 출력하고, 메모리 제어부(20)는 타이밍 신호에 응답하여, 운용시간 기록 영역에서 가장 앞선 주소(0x0000)부터 소거 상태의 데이터(0xFF)보다 1 낮은 데이터(0xFE)를 기록하기 시작한다. 즉 운용시간 기록 영역의 3개의 블록(B1 ~ B3) 중 제1 블록(B1)의 첫번째 byte 부터 소거 상태(0xFF)보다 1 차감된 데이터(0xFE)를 기록한다.
제1 블록(B1)에 데이터가 기록되고 나머지 2개의 블록(B2 ~ B3)가 소거 상태이면, 운용시간이 기록되기 시작한 구간으로 프로세서(10)은 제1 블록(B1)에 소거 상태의 데이터(0xFF)가 기록되지 않은 byte 수를 분석하여 운영시간을 판별할 수 있다. 만일 제1 블록(B1)에 300개의 byte에 데이터(0xFE)가 기록되어 있다면, 시스템의 운영시간이 300단위 시간인 것으로 판별할 수 있다. 여기서 단위 시간은 타이머(30)가 타이밍 신호를 출력하는 시간 단위로, 상기에서 타이머에 설정된 시간이 1분인 것으로 가정하였으므로 300 단위시간은 300분을 의미한다.
(c)는 제1 블록(B1)의 4Kbyte의 블록에 4096개의 byte에 모두 0xFE가 기록된 이후, 제2 블록(B2)에 소거 상태(0xFF)보다 1 차감된 데이터(0xFE)를 기록하는 상태를 나타낸다. 즉 시스템이 운용되기 시작하여 4097 단위 시간째에 타이머(30)로부터 타이밍 신호가 인가되면, 제1 블록(B1)의 모든 byte에 데이터(0xFE)가 기록되어 있으므로, 다음 블록인 제2 블록(B2)에 데이터(0xFE)를 기록한다. 이때, 제1 블록(B1)의 모든 byte는 데이터(0xFE)가 기록된 상태를 유지하고, 제3 블록(B3)의 모든 byte는 소거 상태(0xFF)를 유지한다.
제1 블록(B2)의 4096 byte에 데이터(0xFE)가 기록된 이후, 제2 블록(B2)에 데이터(0xFE)가 기록되므로, 운용시간은 제1 블록(B1)의 byte 수(4096) + 제2 블록(B2)에 데이터(0xFE)가 기록된 byte 수로서 계산될 수 있다.
도3 에서 (d)는 제1 및 제2 블록(B1, B2)에 데이터(0xFE)가 기록된 후 제3 블록(B3)에 데이터(0xFE)를 기록하는 과정으로 운용시간이 4096*2 = 8192 단위 시간이 지난 후 다음 타이밍 신호가 인가되는 경우를 나타낸다. 운용시간이 8193단위시간째에 제1 및 제2 블록(B1, B2)에 데이터(0xFE)가 기록되었으므로, 제3 블록(B3)에 데이터(0xFE)의 최초 주소(0x20000)부터 데이터(0xFE)가 기록된다. 그리고 이와 동시에 제1 블록(B1)을 소거한다. 상기한 바와 같이 플래시 메모리는 동일 메모리 영역에 다른 데이터를 재기록하기 위해서는 블록단위의 소거 동작을 필요로 한다. 이에 본 발명에서는 제1 블록(B1)을 제3 블록(B3)에 데이터를 기록하기 시작하는 시점에 모두 소거한다. 이때 제2 블록(B2)의 데이터를 소거하지 않는 것은 제3 블록(B3)의 첫번째 byte에 기록될 데이터가 제2 블록(B2)의 마지막 byte에 기록된 데이터를 참조할 수 있도록 하기 위함이다. 즉 본 발명에서 각 블록(B1 ~ B3)은 이전 블록의 데이터를 참조하여 데이터를 기록한다.
(e)는 제3 블록(B3)까지 데이터(0xFE)가 기록된 이후, 운용시간을 기록하는 방식을 나타낸다. (e)에 도시된 바와 같이, 3개의 블록(B1 ~ B3)에 데이터(0xFE)가 기록되면, 이미 데이터가 소거되어 0xFF가 기록된 제1 블록(B1)부터 데이터를 다시 1 감소시켜 데이터(0xFD)를 기록한다. 이와 동시에 제2 블록(B2)의 데이터를 소거한다. 즉 제1 내지 제3 블록(B1 ~ B3)에 순차적으로 데이터를 감소시키면서 로테이션(Rotation)하여 기록할 수 있도록 한다. 이때 제1 블록(B1)의 맨 앞 주소의 데이터는 제3 블록(B3)의 맨 마지막 주소에 기록된 데이터에서 1을 감소하여 기록한다. 즉 상기한 바와 같이 본 발명의 운용시간 기록 시스템은 운용시간 기록 영역의 데이터를 인접한 이전 byte에 데이터를 참조하여 동일한 데이터를 기록하되 운용기록 영역의 가장 앞선 주소의 byte는 운용 기록 영역의 가장 마지막 주소의 byte에 기록된 데이터에서 1 감소한 데이터를 기록한다.
그리고 데이터가 기록되는 블록(B1 ~ B3)이 다음 블록으로 전환될 때, 인접한 바로 앞 블록을 제외한 나머지 블록을 소거하여, 이후 데이터 값이 다른 데이터를 기록할 수 있도록 한다.
따라서 최초 데이터가 기록되는 초기 상태 이후에는 적어도 3개의 블록 중 인접한 2개의 블록은 데이터가 기록된 상태이며, 나머지 블록은 모두 소거 상태로 유지된다. 여기서 2개의 블록에 데이터가 기록되는 것은 상기한 바와 같이 현재 기록되는 블록의 데이터가 이전 블록에 기록된 데이터 값을 참조할 수 있도록 하기 위함이다.
(e)는 (b)와 마찬가지로 제1 블록(B1)에 데이터가 기록되는 상태이지만, (b)와 달리 데이터가 운용시간 기록 영역에 모두 기록되어 로테이션 된 상태이다. 이에 운용시간을 판단하는 프로세서(10)는 로테이션 횟수를 데이터 값을 이용하여 판단한다. 즉 최초 운용시간이 기록되는 데이터(0xFE)로부터 현재 기록되는데이터를 뺀 차값이 곧 로테이션 횟수이다. 로테이션 횟수는 운용시간 기록 영역 전체의 byte 수에 대응하는 운용시간을 의미한다.
마지막으로 (f)는 운용시간 기록 영역에 기록 가능한 최대 시간이 기록된 상태를 나타낸다. 소거 상태(0xFF)로부터 로테이션이 될 때마다 데이터가 1씩 감소하도록 설정되므로, 기록 가능한 최대 시간의 운용시간이 기록되면, 제3 블록(B3)의 모든 byte에 데이터(0x00)이 기록된다.
따라서 4Kbyte 크기의 3개의 블록(B1 ~ B3)에 소거 상태의 데이터(0xFF)로부터 데이터(0x00)가 기록될 때까지 운용 시간을 기록할 수 있으므로, 기록 가능한 운용 시간은 1byte 당 기록 가능 비트 수 * 각 블록의 byte 수 * 블록수로 계산될 수 있다. 1byte 당 기록 가능 비트 수는 28 이므로 256으로 계산되어야 하나, 플래시 메모리에서 데이터(0xFF)가 기록된 상태는 소거 상태로서 운용시간이 기록되기 이전 상태이므로 제외되어야 한다. 따라서 28 -1 로 계산되어 255이다. 그리고 각 블록의 byte 수는 4Kbyte 이므로 4*210 = 4096 이고, 블록(B1 ~ B3) 개수는 3이다. 이에 도2 의 플래시 메모리는 최대 기록 가능한 운용 시간으로 255 * 4096 * 3 = 3,133,440의 단위 시간을 기록할 수 있다.
여기서 단위 시간은 타이머(30)가 타이밍 신호를 출력하는 시간 단위로, 상기에서 타이머에 설정된 시간이 1분인 것으로 가정하였으므로 도2 의 플래시 메모리의 운용 시간 기록 영역은 약 5.98년의 운용 시간을 기록할 수 있다.
결과적으로 4Kbyte 크기의 블록 3개를 이용한 12Kbyte 의 플래시 메모리 용량으로 거의 6년의 운용시간을 기록할 수 있으며, 결과적으로 4Kbyte 크기의 블록 6개를 이용한 24Kbyte 의 플래시 메모리 용량으로 10년 이상의 운용시간을 기록할 수 있다.
이는 기존에 소거 상태(0xFF)에서 1byte씩 0x00의 데이터를 기록하는 운용시간 기록 방법과 비교하면, 10년의 운용시간을 기록하기 위해 기존의 방법은 5.3Mbyte의 기록 용량을 필요로 하는데 비해, 본 발명은 24Kbyte의 용량만을 필요로 하므로 기존 방법 대비 0.5% 크기의 운용시간 기록 영역으로도 동일한 효과를 얻을 수 있음을 의미한다.
그리고 만일 반복 횟수를 기록하는 영역(예를 들면 1byte)을 추가로 구비하는 경우에는 운용시간 기록 영역(B1 ~ B3) 모두를 재초기화하여 다시 기록할 수 있으므로 운용시간 기록 가능한 기간을 확장할 수 있다. 다만 재초기화하여 다시 기록하는 것은 플래시 메모리의 재기록 가능 횟수에 의해 데이터 오류나 손실이 발생할 수 있으므로, 바람직하지 않다.
상기한 플래시 메모리(40)에 기록된 운용시간은 수학식 1 에 따라 계산할 수 있다.
Figure 112013083508417-pat00001
(여기서 0xFE는 초기 운용시간이 기록되는 데이터로서, 10진수 14의 값이고, Dn 은 현재 데이터가 기록되는 n번째 블록에 기록되는 데이터값이다. 그리고 Tn은 운용시간 기록 영역의 전체 블록수이며, N은 각 블록당 byte 수를 나타내고, n은 현재 데이터가 기록되고 있는 블록을 나타내며, Bn은 현재 데이터가 기록되고 있는 n번째 블록에 소거 상태 데이터(0xFF)가 아닌 데이터가 기록된 byte의 수를 나타낸다. 또한 Ti는 단위 시간으로 타이머(30)에서 타이밍 신호를 발생하는 주기를 나타낸다.)
수학식 1은 운용시간 기록 영역에 운용시간이 기록된 경우에 운용시간을 계산하기 위한 수학식을 나타내며, 운용시간이 기록되지 않은 초기 상태의 경우에는 모든 블록의 모든 byte에 데이터가 소거 상태(0xFF)이므로, 수학식 1과 별도로 초기 상태를 추가로 정의할 수 있다. 즉 모든 블록이 소거 상태인 경우에 시스템이 초기 상태인 것으로 판별할 수 있다.
결과적으로 본 발명의 운용시간 기록 시스템은 운용시간 기록 영역에 데이터를 순차적으로 감소시키면서 반복하여 기록할 수 있도록 함으로써, 매우 작은 메모리 용량으로도 상대적으로 긴 시간의 운용시간을 기록할 수 있도록 한다. 뿐만 아니라 플래시 메모리를 관리하기 위한 별도의 OS나 프로그램을 구비하지 않아도 되므로, 효율적인 운용시간 기록이 가능하도록 한다.
본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 데이터를 저장 및 소거하는 복수개의 블록을 구비하는 플래시 메모리;
    전원이 인가되면 구동되어, 기설정된 주기마다 타이밍 신호를 출력하는 타이머; 및
    상기 플래시 메모리의 복수개의 블록 중 Tn(여기서 Tn 은 3 이상의 자연수)개의 블록을 운용시간 기록 영역으로 설정하고, 상기 타이밍 신호가 수신될 때마다 상기 운용시간 기록 영역의 상기 Tn 개의 블록에 기설정된 순서로 순차적으로 상기 운용시간에 대응하는 데이터를 기록하고, 상기 기설정된 순서로 상기 Tn개의 블록 중 마지막 블록에 상기 데이터가 기록되면, 상기 데이터를 기설정된 단위로 증가 또는 감소시켜 다시 상기 Tn개의 블록 중 첫번째 블록부터 로테이션하여 기록하는 제어부; 를 포함하는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
  2. 삭제
  3. 제1 항에 있어서, 상기 제어부는
    상기 Tn개의 블록 중 메모리 주소가 가장 낮은 주소의 블록의 가장 낮은 주소부터 주소를 증가시키며, 상기 데이터를 기록하고, 상기 Tn개의 블록 중 2개의 블록에 데이터가 기록되면, 이전 데이터가 기록된 다른 블록의 데이터는 소거하는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
  4. 제3 항에 있어서, 상기 제어부는
    상기 Tn개의 블록 중 n (여기서 n은 Tn 이하의 자연수)번째 블록의 데이터 기록이 완료되어, n+1번째 블록에 데이터를 기록할 때, n-1번째 블록의 데이터를 소거하고, 상기 n+1번째 블록이 상기 운용시간 기록 영역의 블록이 아니면, 상기 Tn개의 블록 중 1번째 블록에 로테이션하여 데이터를 기록하며, 상기 1번째 블록의 데이터 기록이 완료되면, 2번째 블록에 데이터를 기록할 때, 상기 n번째 블록의 데이터를 소거하는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
  5. 삭제
  6. 제4 항에 있어서, 상기 제어부는
    상기 운용시간에 대응하는 데이터의 초기값을 소거 상태가 아닌 byte 단위의 최대값으로 설정하고, 상기 로테이션 될 때마다, 상기 데이터의 값을 1씩 감소시키는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
  7. 제1 항에 있어서, 상기 제어부는
    상기 운용시간 확인 명령이 인가되면, 상기 운용시간 기록 영역에 기록된 데이터를 분석하여 수학식
    0xFF {(0xFE - Dn) * Tn * N + (n-1) * N + Bn * Ti}
    (여기서 0xFE는 초기 운용시간이 기록되는 데이터로서, 10진수 14의 값이고, Dn 은 현재 데이터가 기록되는 n번째 블록에 기록되는 데이터값이다. 그리고 Tn은 운용시간 기록 영역의 전체 블록수이며, N은 각 블록당 byte 수를 나타내고, n은 현재 데이터가 기록되고 있는 블록을 나타내며, Bn은 현재 데이터가 기록되고 있는 n번째 블록에 소거 상태 데이터(0xFF)가 아닌 데이터가 기록된 byte의 수를 나타낸다. 또한 Ti는 단위 시간으로 타이머(30)에서 타이밍 신호를 발생하는 주기를 나타낸다.)
    에 따라 운용시간을 계산하는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
  8. 제4 항에 있어서, 상기 제어부는
    상기 운용시간에 대응하는 데이터의 초기값을 byte 단위의 최소값으로 설정하고, 상기 로테이션 될 때마다, 상기 데이터의 값을 1씩 증가시키는 것을 특징으로 하는 플래시 메모리를 이용한 운용시간 기록 시스템.
KR1020130109675A 2013-09-12 2013-09-12 플래시 메모리를 이용한 운용시간 기록 시스템 KR101453951B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130109675A KR101453951B1 (ko) 2013-09-12 2013-09-12 플래시 메모리를 이용한 운용시간 기록 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130109675A KR101453951B1 (ko) 2013-09-12 2013-09-12 플래시 메모리를 이용한 운용시간 기록 시스템

Publications (1)

Publication Number Publication Date
KR101453951B1 true KR101453951B1 (ko) 2014-10-23

Family

ID=51998566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130109675A KR101453951B1 (ko) 2013-09-12 2013-09-12 플래시 메모리를 이용한 운용시간 기록 시스템

Country Status (1)

Country Link
KR (1) KR101453951B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050119085A (ko) * 2004-06-15 2005-12-20 오끼 덴끼 고오교 가부시끼가이샤 플래시 메모리의 기록방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050119085A (ko) * 2004-06-15 2005-12-20 오끼 덴끼 고오교 가부시끼가이샤 플래시 메모리의 기록방법

Similar Documents

Publication Publication Date Title
US9141526B2 (en) Reclaiming units by searching units for a predetermined criterion and storing data from a valid subunit
US8041879B2 (en) Flash memory backup system and method
US8166231B2 (en) Memory controller, nonvolatile memory device, access device, and nonvolatile memory system
KR101700720B1 (ko) 호스트에 연결될 수 있는 통신 디바이스에 의해 포함된 대용량 스토리지를 위한 플래시 메모리를 제어하기 위한 방법, 및 상기 방법을 수행하기 위한 컴퓨터 프로그램 물건
US8589617B2 (en) Write once recording device
JP4215746B2 (ja) 情報処理装置および寿命監視方法
JP5486047B2 (ja) フラッシュメモリの優先順位付き消去のためのデバイスおよび方法
JP4280055B2 (ja) メモリ制御方法および装置
US9262339B2 (en) Managing write operations in a computerized memory
JP2008504628A (ja) 安全なフラッシング
KR101453951B1 (ko) 플래시 메모리를 이용한 운용시간 기록 시스템
JP5002944B2 (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
KR101398960B1 (ko) 플래시 메모리를 이용한 운용시간 기록 방법
JP5996129B2 (ja) 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム
US11481120B2 (en) Reducing wear on zoned storage devices for storing digital data
JP5491201B2 (ja) 半導体記録装置及び半導体記録システム
JP2009276883A (ja) 半導体補助記憶装置
JP4438333B2 (ja) データバックアップ装置および方法
JP2008191797A (ja) ファイルシステム
KR101247574B1 (ko) 메모리 기기 상의 데이터 저장 방법, 기기 및 데이터 구조
JP2008171246A (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
US20090319587A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP5255389B2 (ja) 記憶装置およびメモリ制御方法
JP2006163801A5 (ko)
JP2005276288A (ja) 不揮発性記憶装置の寿命管理方法

Legal Events

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

Payment date: 20170823

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180806

Year of fee payment: 5