KR100597063B1 - 플래시 메모리 및 메모리 제어 방법 - Google Patents

플래시 메모리 및 메모리 제어 방법 Download PDF

Info

Publication number
KR100597063B1
KR100597063B1 KR1020057006067A KR20057006067A KR100597063B1 KR 100597063 B1 KR100597063 B1 KR 100597063B1 KR 1020057006067 A KR1020057006067 A KR 1020057006067A KR 20057006067 A KR20057006067 A KR 20057006067A KR 100597063 B1 KR100597063 B1 KR 100597063B1
Authority
KR
South Korea
Prior art keywords
flash memory
data
ratio
notification information
information
Prior art date
Application number
KR1020057006067A
Other languages
English (en)
Other versions
KR20050059249A (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 KR1020057006067A priority Critical patent/KR100597063B1/ko
Publication of KR20050059249A publication Critical patent/KR20050059249A/ko
Application granted granted Critical
Publication of KR100597063B1 publication Critical patent/KR100597063B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

플래시 메모리 안의 상태를 외부에 통지하고, 폐정보 수집(garbage collection)을 지원한다. 상태 통지 정보 생성부(12)는 플래그 영역(f1, f2, f3, …, fn)을 참조하여 사용자 영역(u1, u2, u3, …, un)의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하고, 출력부(13)는 이러한 상태 통지 정보를 외부로 출력함으로써 외부에 플래시 메모리(10) 안의 상태를 통지한다.

Description

플래시 메모리 및 메모리 제어 방법{FLASH MEMORY AND MEMORY CONTROL SYSTEM}
본 발명은 플래시 메모리 및 플래시 메모리의 동작을 제어하는 메모리 제어 방법에 관한 것으로, 특히, 데이터가 기억되는 복수의 사용자 영역과, 사용자 영역의 상태를 나타내는 복수의 플래그 영역으로 이루어진 메모리 셀 어레이를 갖는 플래시 메모리 및 그와 같은 플래시 메모리를 제어하는 메모리 제어 방법에 관한 것이다.
플래시 메모리는 전기적으로 소거(재기록) 가능한 불휘발성 메모리로서, 여러 가지 전기 제품에 탑재되어 있다. 최근에는 고속 저소비 전력의 FeRAM(Ferroelectric Random Access Memory), MRAM(Magnetoresistive Random Access Memory), OUM(Ovonics Unified Memory) 등의 신형 메모리가 차례 차례로 등장하고 있다. 그러나, 비용 면에서는, 여전히 플래시 메모리가 우위에 있고, 특히, 카메라가 달린 휴대 전화기나 디지털 카메라 등에서는 그 대부분을 플래시 메모리가 독점하고 있다.
한편, 상기한 장점과는 반대로 다음과 같은 단점을 갖고 있다. 즉, 플래시 메모리는 데이터의 기록시에 덮어쓰기를 할 수 없기 때문에, 데이터의 기록이나 삭 제를 반복하면 분단된 불필요한 영역이 소거되지 않고 남는다. 그 때문에, 이 불필요한 영역을 소거하고, 사용하고 있는 영역을 연속한 영역으로 통합하여, 그 결과 사용할 수 있는 영역을 늘리는 처리(이하 폐정보 수집이라 부름)를 실행해야 한다(예컨대, 특허문헌 1 참조).
도 18은 종래의 플래시 메모리를 이용한 데이터 재기록시의 처리 흐름을 도시한 흐름도이다.
이하의 처리는 플래시 메모리의 외부에 설치된 CPU(Central Processing Unit)의 제어 하에 행해진다.
처리가 시작되면, 우선, CPU는 데이터 처리가 기록인지, 그렇지 않으면 무효화 처리인지를 판단하여(S100), 기록이면 데이터 기록 처리를 행하고(S101), 무효화이면 데이터 무효화 처리를 행한다(S102). 다음에 관리 데이터의 갱신을 행하여 (S103), 플래시 메모리 안의 영역 사용률을 계산한다(S1O4). 다음에, 영역 사용률의 계산 결과에 따라 폐정보를 수집할 필요가 있는지 여부를 판단하여(S105), 필요하면 폐정보 수집 처리를 행하고(S106), 필요하지 않으면 그대로 처리를 종료한다.
그러나, 상기한 바와 같이, 플래시 메모리의 데이터 재기록 처리 후에, 처리 시간이 긴 폐정보 수집 처리를 실행하므로, 휴대 전화기 등의 장치 전체의 처리 시간을 길게 해 버린다고 하는 문제가 있었다.
이 문제는 플래시 메모리의 데이터 재기록 처리와 폐정보 수집 처리를 다른 타이밍으로 실행시킴으로써 해결할 수 있지만, 그러기 위해서는 폐정보 수집 처리를 실행하는 타이밍을 얻을 필요가 있다.
특허문헌 1
일본 특허 공개 제2000-278730호(단락 번호 [0023]∼[0027], 도 1)
본 발명은 이러한 점을 감안하여 이루어진 것으로, 폐정보 수집과 같이 불필요한 데이터를 소거하는 타이밍을 외부에 통지할 수 있는 플래시 메모리를 제공하는 것을 목적으로 한다.
또한, 본 발명의 다른 목적은 폐정보 수집과 같이 불필요한 데이터를 소거하는 타이밍을 외부에 통지할 수 있는 플래시 메모리를 제어하는 메모리 제어 방법을 제공하는 것이다.
본 발명에서는 상기 과제를 해결하기 위해서, 도 1에 도시한 바와 같은, 데이터가 기억되는 복수의 사용자 영역(u1, u2, u3, ‥·, un)과, 사용자 영역(u1, u2, u3, …, un)의 상태를 나타내는 복수의 플래그 영역(f1, f2, f3, …, fn)으로 이루어지는 메모리 셀 어레이(11)를 갖는 플래시 메모리(10)에 있어서, 플래그 영역(f1, f2, f3, …, fn)을 참조하여 사용자 영역(u1, u2, u3, …, un)의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하는 상태 통지 정보 생성부(12)와, 상태 통지 정보를 출력하는 출력부(13)를 갖는 것을 특징으로 하는 플래시 메모리(10)가 제공된다.
상기한 구성에 따르면, 상태 통지 정보 생성부(12)는 플래그 영역(f1, f2, f3, …, fn)을 참조하여 사용자 영역(u1, u2, u3, …, un)의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하고, 출력부(13)는 이러한 상태 통지 정보를 외부로 출력함으로써 외부로 플래시 메모리(10) 안의 상태를 통지한다.
본 발명의 상기 및 다른 목적, 특징 및 이점은 본 발명의 예로서 바람직한 실시 형태를 나타내는 첨부의 도면과 관련된 이하의 설명에 의해 밝혀질 것이다.
도 1은 본 발명의 플래시 메모리의 원리를 설명하는 원리 구성도이다.
도 2는 본 발명의 제1 실시 형태의 플래시 메모리 및 그 외부에 배치되는 회로를 도시한 구성도이다.
도 3은 플래시 메모리에 데이터를 기록하는 경우의 타이밍 차트이다.
도 4는 플래시 메모리의 데이터를 무효화(또는 삭제)하는 경우의 타이밍 차트이다.
도 5는 인터럽트 신호를 외부에 출력할 때의 타이밍 차트이다.
도 6은 비율을 재기록할 때의 타이밍 차트이다.
도 7은 플래시 메모리의 데이터를 재기록할 때의 처리 흐름을 도시한 흐름도이다.
도 8은 기록 동작시의 처리 흐름을 도시한 흐름도이다.
도 9는 무효화 처리를 도시한 흐름도이다.
도 10은 데이터를 소거하는 처리의 흐름을 도시한 흐름도이다.
도 11은 인터럽트 신호 출력시의 플래시 메모리 안에서의 처리 흐름을 도시한 흐름도이다.
도 12는 폐정보 수집 처리의 흐름을 도시한 흐름도이다.
도 13은 본 발명의 제2 실시 형태의 플래시 메모리 및 그 외부에 배치되는 회로를 도시한 구성도이다.
도 14는 기록 처리 후에 비율을 출력하는 경우의 타이밍 차트이다.
도 15는 무효화 처리 후에 비율을 출력하는 경우의 타이밍 차트이다.
도 16은 제2 실시 형태의 구성에 있어서의 처리 흐름을 도시한 흐름도이다.
도 17은 비율 명령에 따라 비율을 출력할 때의 타이밍 차트이다.
도 18은 종래의 플래시 메모리를 이용한 데이터 재기록시의 처리 흐름을 도시한 흐름도이다.
이하 본 발명의 실시 형태를 도면을 참조하여 설명한다.
도 1은 본 발명의 플래시 메모리의 원리를 설명한 원리 구성도이다.
플래시 메모리(10)는 데이터가 기억되는 복수의 사용자 영역(u1, u2, u3, …, un)과, 사용자 영역(u1, u2, u3, …, un)의 상태를 도시한 복수의 플래그 영역(f1, f2, f3, …, fn)으로 이루어진 메모리 셀 어레이(11)와, 플래그 영역(f1, f2, f3, …, fn)을 참조하여, 사용자 영역(u1, u2, u3, …, un)의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하는 상태 통지 정보 생성부(12)와, 상태 통지 정보를 출력하는 출력부(13)로 구성된다.
이하에서는, 복수의 사용자 영역(u1, u2, u3, …, un)을 사용자 영역{ux(x=1, 2, 3, …, n)}이라고 기재하고, 복수의 플래그 영역(f1, f2, f3, …, fn)을 플래그 영역{fy(y=1, 2, 3, …, n)}이라고 기재하기로 한다.
플래시 메모리(10)의 동작을 설명한다.
메모리 셀 어레이(11)에 있어서, 사용자 영역(ux)에 데이터를 기록하면, 사용자 영역(ux)에 대응한 플래그 영역(fy)은 유효를 나타내는 값이 되고, 데이터가 무효화되면, 플래그 영역(fy)은 무효를 나타내는 값이 된다. 상태 통지 정보 생성부(12)는 플래그 영역(fy)의 값을 참조하여 이것에 대응한 사용자 영역(ux)의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보, 예컨대 사용자 영역(ux)이 무효인 비율(상세하게는 후술)을 생성한다. 그 후, 출력부(13)는 상태 통지 정보를 플래시 메모리(10)의 외부로 출력한다.
이에 따라, 예컨대, 폐정보 수집을 행하는 플래시 메모리(10)의 외부에 배치되는 CPU 등의 제어부(도시하지 않음)는 플래시 메모리 안의 상태{무효 상태의 사용자 영역(ux)의 비율 등}를 간단히 알 수 있고, 현재 폐정보 수집 처리를 행할 필요가 있는지 여부를 판단할 수 있다.
이하, 본 발명의 실시 형태를 상세하게 설명한다.
우선, 본 발명의 제1 실시 형태의 플래시 메모리를 설명한다.
도 2는 본 발명의 제1 실시 형태의 플래시 메모리 및 그 외부에 배치되는 회로를 도시한 구성도이다.
본 발명의 제1 실시 형태의 플래시 메모리(20)는 메모리 셀 어레이(21), 비율 기억부(22), 비교부(23), 시간 관리부(24), 제어부(25)로 구성된다.
메모리 셀 어레이(21)는 전술한 도 1과 같이 복수의 사용자 영역(ux)과, 복수의 플래그 영역(fy)으로 이루어진다. 플래그 영역(fy)은 각 사용자 영역(ux)에 대하여 2비트의 정보를 갖는다. 플래그 영역(fy)이 "00"의 경우는 그 플래그 영역(fy)에 대응하는 사용자 영역(ux)의 데이터는 소거되어 있는 것을 나타낸다. 플래그 영역(fy)이 "01"의 경우는 그 플래그 영역(fy)에 대응하는 사용자 영역(ux)의 데이터는 유효인 것을 나타낸다. 플래그 영역(fy)이 "11"인 경우는 그 플래그 영역(fy)에 대응하는 사용자 영역(ux)의 데이터는 무효인 것을 나타낸다. 사용전의 플래시 메모리(20)의 메모리 셀 어레이(21)는 사용자 영역(ux)의 전 영역에 데이터가 기록되어 있지 않다. 또한 메모리 셀 어레이(21)의 플래그 영역)(fy)의 전 영역에는 데이터가 소거되어 있는 것을 나타내는 값 "00"이 기록되어 있다.
비율 기억부(22)에는 미리 소정의 비율이 기억되어 있다. 예컨대, "80%" 등이라 기억되어 있다.
비교부(23)는 메모리 셀 어레이(21)의 플래그 영역(fy)의 상태를 판정하여 사용자 영역(ux)이 무효인 비율을 산출하고, 그 후, 비율 기억부(22)에 저장되어 있는 비율과 비교한다.
시간 관리부(24)는 어떤 일정한 시간 간격, 예컨대 60초 간격으로 제어부(25)에 신호를 보낸다.
제어부(25)는 플래시 메모리(20)의 각부를 제어하고, 외부와의 정보의 송수신을 행한다. 제어부(25)는 인터럽트 신호선(101), 제어 신호선(102)에 의해 CPU(50)와 접속되어 있다. 또한 데이터 버스(60), 어드레스 버스(70)와 접속된다.
CPU(50)는 데이터 버스(60), 어드레스 버스(70)와 접속되어 있고, 데이터 버스는 RAM(Random Access Memory; 80)을 통해 어드레스 버스(70)와 접속된다. CPU(50)는 데이터 버스(60)와 어드레스 버스(70)를 사용하여 플래시 메모리(20)와 RAM(80)의 데이터 기록 및 판독을 행하고, RAM(80)에 기록된 프로그램을 실행한다.
또, 제1 실시 형태에 있어서, 도 l의 상태 통지 정보 생성부(12)의 기능은 비교부(23)에 포함되고, 출력부(13)의 기능은 제어부(25)에 포함된다.
이하, 도 1의 동작을 설명하는 동시에, 본 발명의 제1 실시 형태의 플래시 메모리(20)의 동작을 설명한다.
우선, 기록 동작을 설명한다.
도 3은 플래시 메모리에 데이터를 기록하는 경우의 타이밍 차트이다.
데이터의 기록 처리시의 어드레스 버스(70), 제어 신호선(102), 인터럽트 신호선(101), 데이터 버스(60) 신호의 상태를 나타내고 있다.
RAM(80)에 기록되어 있는 데이터를 플래시 메모리(20)에 기록하는 경우, CPU(50)는 제어 신호선(102)의 신호의 레벨을 "H"(하이 레벨)로 하는 동시에, 데이터 버스(60)를 통해 기록 명령을 제어부(25)로 보낸다. 그 후, 제어 신호선(102)을 "L"(로우 레벨)로 되돌린다. 또한 CPU(50)는 데이터 버스(60)를 통해 RAM(80)으로부터 판독한 데이터를 제어부(25)로 보낸다. 또한, CPU(50)는 어드레스 버스(70)를 통해 기록 목적지의 어드레스를 제어부(25)로 보낸다.
플래시 메모리(20)의 제어부(25)는 도 3과 같이 제어 신호선(102)이 "H"가 되었을 때에, 데이터 버스(60)로부터 데이터의 기록 명령을 수신한다. 다음에, 데이터 버스(60)로부터 데이터를 수신하고, 어드레스 버스(70)로부터 어드레스를 수신하여, 데이터를 어드레스로 지정된 메모리 셀 어레이(21)의 사용자 영역(ux)에 기록한다. 또한 제어부(25)는 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 유효인 것을 나타내는 값 "01"을 기록한다.
다음에 무효화 처리 및 데이터의 삭제시의 동작을 설명한다.
도 4는 플래시 메모리의 데이터를 무효화(또는 삭제)하는 경우의 타이밍 차트이다.
데이터의 무효화(또는 삭제) 처리시의 어드레스 버스(70), 제어 신호선(102), 인터럽트 신호선(101), 데이터 버스(60)의 신호의 상태를 나타내고 있다.
플래시 메모리(20)에 기록되어 있는 데이터를 무효화(또는 삭제)하는 경우는, CPU(50)는 제어 신호선(102)을 "H"로 하는 동시에, 데이터 버스(60)를 통해 데이터를 무효로 하는 명령을 플래시 메모리(20)의 제어부(25)로 보낸다. 그 후, 제어 신호선(102)을 "L"로 되돌린다. 또한 CPU(50)는 어드레스 버스(70)를 통해 무효로 하는 데이터의 어드레스를 제어부(25)로 보낸다.
플래시 메모리(20)의 제어부(25)는 도 4와 같이, 제어 신호선(102)이 "H"가 되었을 때에, 데이터 버스(60)로부터 무효화(또는 삭제) 명령을 수취한다. 다음에, 어드레스 버스(70)로부터 수취한 어드레스로 지정된 메모리 셀 어레이(21)의 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 무효인 것을 나타내는 값 "11"을 기록한다. 데이터의 삭제의 경우는 수취한 어드레스로 지정된 메모리 셀 어레이(21)의 사용자 영역(ux)의 데이터를 삭제하고, 삭제한 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 소거되어 있는 것을 나타내는 값 "00"을 기록한다.
다음에 본 실시 형태의 특징 부분의 동작을 설명한다.
플래시 메모리(20) 안에서, 전술한 바와 같이 시간 관리부(24)는 어떤 일정한 시간 간격, 예컨대 60초 간격으로 제어부(25)에 신호를 보낸다. 시간 관리부(24)로부터 신호를 수신한 제어부(25)는 플래그 영역(fy)의 데이터를 판독하고, 판독한 데이터를 비교부(23)로 보낸다. 플래그 영역(fy)의 데이터를 수취한 비교부(23)는 무효인 것을 나타내는 데이터의 갯수를 하나하나 세어 사용자 영역(ux)의 데이터가 무효인 비율을 산출한다. 또한 비교부(23)는 비율 기억부(22)에 미리 저장되어 있던 비율, 예컨대 "80%"와 비교한다. 비교 결과, 사용자 영역(ux)의 데이터가 무효인 비율이 비율 기억부(22)에 미리 저장되어 있던 비율보다 큰 경우는 제어부(25)에 신호를 보낸다.
비교부(23)로부터 신호를 수취한 제어부(25)는 인터럽트 신호선(101)을 이용하여 인터럽트 신호를 CPU(50)에 송신한다.
도 5는 인터럽트 신호를 외부로 출력할 때의 타이밍 차트이다.
도면에서는, 인터럽트 신호를 출력할 때의 어드레스 버스(70), 제어 신호선(102), 인터럽트 신호선(101), 데이터 버스(60)의 신호의 상태를 나타내고 있다.
도면과 같이 인터럽트 신호선(101)을 "H"로 하고, 인터럽트 신호를 CPU(50)에 송신한다. 이 인터럽트 신호는 플래시 메모리(20)가 폐정보 수집 처리를 필요로 하고 있는 것을 외부에 통지하는 신호이다.
인터럽트 신호를 수취한 CPU(50)는 RAM(80)에 저장되어 있는 폐정보 수집을 행하는 프로그램을 실행한다. 이것에 의해, 플래시 메모리(20) 안의 불필요한 데이 터를 소거하고, 빈 영역을 늘리는 폐정보 수집을 실행한다.
또, 미리 비율 기억부(22)에 저장된 비율은 재기록하는 것이 가능하다.
도 6은 비율을 재기록할 때의 타이밍 차트이다.
도면에서는, 비율을 재기록하는 처리시의 어드레스 버스(70), 제어 신호선(102), 인터럽트 신호선(101), 데이터 버스(60)의 신호의 상태를 나타내고 있다.
플래시 메모리(20)의 비율 기억부(22)에 기억되어 있는 비율을 재기록하는 경우는, 도 6과 같이, CPU(50)는 우선 제어 신호선(102)을 "H"로 하는 동시에, 데이터 버스(60)를 통해 비율 저장 명령을 플래시 메모리(20)의 제어부(25)에 송신한다. 그 후, 제어 신호선(102)을 "L"로 되돌린다. 다음에, 데이터 버스(60)를 통해 예컨대 RAM(80)에 저장된 재기록용 비율의 데이터를 제어부(25)에 송신한다.
제어부(25)는 제어 신호선(102)이 "H"가 되었을 때, 데이터 버스(60)로부터 비율 저장 명령을 수신하고, 다음에 데이터 버스(60)로부터 재기록하는 비율의 데이터를 수신한다. 제어부(25)는 수신한 재기록하는 비율의 데이터를 비율 기억부(22)에 보내고, 비율 기억부(22)는 수취한 비율의 데이터를 기억한다.
이상의 제1 실시 형태의 동작의 흐름을 흐름도에 의해 통합한다.
도 7은 플래시 메모리의 데이터를 재기록할 때의 처리의 흐름을 도시한 흐름도이다.
S10: 기록인지 무효화인지의 판단
처리가 시작되면, CPU(50)는 실행하는 데이터 처리가 데이터의 기록 처리인지 데이터의 무효화 처리인지를 판단한다. 데이터의 기록 처리의 경우는 단계 S11 로 진행하여, 데이터의 무효화 처리의 경우는 단계 S12로 진행한다.
S1: 데이터 기록 처리
단계 S10에서, 데이터의 기록 처리를 행한다고 판단되었기 때문에, 데이터의 기록 처리를 실행한다.
S12: 데이터 무효화 처리
단계 S10에서, 데이터의 무효화 처리를 행한다고 판단되었기 때문에, 데이터의 무효화 처리를 실행한다.
단계 S11 또는 단계 S12의 처리가 종료되면, CPU(50)는 플래시 메모리(20)의 데이터를 재기록하는 처리를 종료한다.
도 8은 기록 동작시의 처리의 흐름을 도시한 흐름도이다.
S20: 사용자 영역으로의 데이터 기록
기록 처리가 시작되면, 플래시 메모리(20)의 제어부(25)는 도 3에서 도시한 바와 같은 타이밍으로, 메모리 셀 어레이(21)의 사용자 영역(ux)의 지정된 어드레스에 데이터를 기록한다.
S21: 플래그 영역에의 "01"의 기록
단계 S20에서 사용자 영역(ux)에의 기록 처리가 행해지면, 제어부(25)는 데이터를 기록한 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 유효인 것을 나타내는 값 "01"을 기록한다.
도 9는 무효화 처리를 나타내는 흐름도이다.
S30: 플래그 영역에의 "11"의 기록
무효화 처리가 시작되면, 플래시 메모리(20)의 제어부(25)는 도 4에서 도시한 바와 같은 타이밍으로 메모리 셀 어레이(21)의 무효화하는 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 무효인 것을 나타내는 값 "11"을 기록한다. 그 후, 무효화 처리를 종료한다.
도 10은 데이터를 소거하는 처리의 흐름을 도시한 흐름도이다.
S4O: 사용자 영역의 데이터 소거
데이터를 소거하는 처리가 시작되면, 플래시 메모리(20)의 제어부(25)는 도 4에서 도시한 바와 같은 타이밍으로 메모리 셀 어레이(21)의 사용자 영역(ux)의 지정 어드레스의 데이터를 소거한다.
S41: 플래그 영역에의 "OO"의 기록
제어부(25)는 소거한 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 소거되고 있는 것을 나타내는 값 "00"을 기록하고, 데이터의 소거 처리를 종료한다.
도 11은 인터럽트 신호 출력시의 플래시 메모리 안에서의 처리 흐름을 도시한 흐름도이다.
S50: 소정 시간이 경과했는지 여부의 판정
제어부(25)는 시간 관리부(24)로부터, 소정 시간 간격으로 출력되는 신호를 수신하여, 소정 시간(예컨대, 60초) 경과했는지 여부를 판정한다. 여기서, 소정 시간이 경과했다고 판정된 경우에는, 단계 S51로 진행하고, 소정 시간 경과하고 있지 않다고 판정된 경우, 즉, 시간 관리부(24)로부터의 신호를 수신하지 않는 경우는, 단계 S50을 반복한다.
S51: 플래그 영역의 데이터가 "11"인 비율을 산출
제어부(25)는 비교부(23)에 대응하는 사용자 영역(ux)의 데이터가 무효인 것을 나타내는 플래그 영역(fy)의 데이터 "11"의 비율을 산출시킨다.
S52: 산출한 비율이 소정 비율보다 큰지 여부의 판정
다음에 제어부(25)는 비율 기억부(22)에 미리 저장된 소정의 비율을 추출하여, 비교부(23)에 보내고, 그래서, 단계 S51의 처리에 의해 산출한 비율과 비교시킨다. 여기서, 산출한 비율이 미리 저장된 소정 비율(예컨대 80%)보다 큰 경우는 단계 S53으로 진행하고, 그렇지 않은 경우는 단계 S50으로 되돌아간다.
S53: 인터럽트 신호를 출력
제어부(25)는 무효인 비율이 크기 때문에, 외부에 인터럽트 신호를 출력하여, 폐정보 수집 처리를 요구한다. 그 후, 단계 S50으로부터의 처리를 반복한다.
도 12는 폐정보 수집 처리의 흐름을 도시한 흐름도이다.
S60: 인터럽트 신호를 수신했는지 여부의 판정
CPU(50)는 플래시 메모리(20)의 제어부(25)로부터, 폐정보 수집 처리의 실행을 요구하는 인터럽트 신호를 수신했는지 여부를 판정하고, 수신했다고 판정한 경우는 단계 S61로 진행하고, 수신하지 않는 경우는 단계 S60을 반복한다.
S61: 폐정보 수집(garbage collection) 처리
CPU(50)는 플래시 메모리(20)에 대하여 폐정보 수집 처리를 실행한다.
폐정보 수집 처리는 사용자 영역(ux)이 무효인 데이터를 소거하고, 유효한 영역을 연속한 영역에 통합하며, 그 결과, 사용할 수 있는 영역을 늘리는 처리이다.
이와 같이, 제1 실시 형태의 플래시 메모리(20)를 이용함으로써 CPU(50)가 실행하는 플래시 메모리(20) 안의 데이터를 재기록하는 프로그램과, 폐정보 수집의 프로그램을 각각 독립된 프로그램으로서 실행할 수 있다. 또한, 제1 실시 형태의 플래시 메모리(20)에 따르면, 폐정보 수집의 프로그램을 실행하는 타이밍을 인터럽트 신호로서 외부에 통지할 수 있다.
다음에 본 발명의 제2 실시 형태의 플래시 메모리를 설명한다.
도 13은 본 발명의 제2 실시 형태의 플래시 메모리 및 그 외부에 배치되는 회로를 도시한 구성도이다.
본 발명의 제2 실시 형태의 플래시 메모리(30)는 메모리 셀 어레이(31), 비율 계산부(32), 제어부(33)로 구성된다.
메모리 셀 어레이(31)는 제1 실시 형태와 마찬가지로, 복수의 사용자 영역(ux)과, 그것에 대응한 플래그 영역(fy)으로 이루어진다.
비율 계산부(32)는 메모리 셀 어레이(31)의 플래그 영역(fy)의 상태를 판정하여 사용자 영역(ux)이 무효인 비율을 산출하고, 산출한 비율을 제어부(33)로 보낸다.
제어부(33)는 플래시 메모리(30)의 각부를 제어하고, 외부와의 정보의 송수신을 행한다. 제어부(33)는 제어 신호선(102)에 의해 CPU(50)와 접속되어 있다. 또한 데이터 버스(60), 어드레스 버스(70)와 접속된다. 또한, 제어부(33)는 비율 계 산부(32)에서 산출된 비율을 수신하고, 이것을 데이터의 기록 동작 또는 무효화 처리 직후에 외부로 출력한다.
플래시 메모리(30)의 외부 회로의 구성에 대해서는 제1 실시 형태와 동일하기 때문에 같은 부호로 하고, 설명을 생략한다.
또, 제2 실시 형태에 있어서, 도 1의 상태 통지 정보 생성부(12)의 기능은 비율 계산부(32)에 포함되고, 출력부(13)의 기능은 제어부(33)에 포함된다.
본 발명의 제2 실시 형태의 플래시 메모리(30)는 제1 실시 형태의 플래시 메모리(20)와 다르고, 비율 계산부(32)에서 계산한 비율 그 자체를 제어부(33)에 의해 외부로 출력하는 점이 다르다. 또한 시간 관리부(24)를 생략하고, 데이터의 기록 동작 또는 무효화 처리 직후에 외부로 출력한 점이 다르다.
이하, 제2 실시 형태의 동작을 설명한다.
도 14는 기록 처리 후에 비율을 출력하는 경우의 타이밍 차트이다.
도면에서는, 기록 처리 후에 비율을 출력할 때의, 어드레스 버스(70), 제어 신호선(102), 데이터 버스(60)의 신호 상태를 나타내고 있다.
플래시 메모리(30)의 제어부(33)는 도 14와 같이, 제어 신호선(102)이 "H"가 되었을 때에, 데이터 버스(60)로부터 기록 명령을 수취한다. 다음에, 어드레스 버스(70)로부터 수취한 어드레스로 지정된 메모리 셀 어레이(31)의 사용자 영역(ux)에, 데이터 버스(60)를 통해 수신한 데이터를 기록한다. 또한, 대응하는 플래그 영역(fy)에 데이터가 유효인 것을 나타내는 값 "01"을 기록한다. 그 후, 비율 계산부(32)에서 플래그 영역(fy)의 상태를 판정하여 사용자 영역(ux)이 무효인 비율을 산 출시킨다. 제어부(33)는 비율 계산부(32)에서 산출된 비율을 수취하고, 이것을 데이터 버스(60)에 출력하여 외부에 통지한다.
도 15는 무효화 처리 후에 비율을 출력하는 경우의 타이밍 차트이다.
도면에서는, 무효화 처리 후에 비율을 출력할 때의, 어드레스 버스(70), 제어 신호선(102), 데이터 버스(60)의 신호의 상태를 나타내고 있다.
플래시 메모리(30)의 제어부(33)는, 도 15와 같이, 제어 신호선(102)이 "H"가 되었을 때에, 데이터 버스(60)로부터 무효화 명령을 수취한다. 다음에, 어드레스 버스(70)로부터 수취한 어드레스로 지정된 메모리 셀 어레이(31)의 사용자 영역(ux)에 대응하는 플래그 영역(fy)에 데이터가 무효인 것을 나타내는 값 "11"을 기록한다. 그 후, 비율 계산부(32)에서 플래그 영역(fy)의 상태를 판정하여 사용자 영역(ux)이 무효인 비율을 산출시킨다. 제어부(33)는 비율 계산부(32)에서 산출된 비율을 수취하고, 이것을 데이터 버스(60)에 출력하여 외부에 통지한다.
도 16은 제2 실시 형태의 구성에 있어서의 처리 흐름을 도시한 흐름도이다.
S70: 기록인지 무효화인지의 판단
처리가 시작되면, CPU(50)는 실행하는 데이터 처리가 데이터의 기록 처리인지, 데이터의 무효화 처리인지를 판단한다. 데이터의 기록 처리의 경우는 단계 S71로 진행하고, 데이터의 무효화 처리의 경우는 단계 S72로 진행한다.
S71: 데이터 기록 처리
단계 S70에서 데이터의 기록 처리를 행한다고 판단되었기 때문에, 데이터 기록 처리를 실행한다.
S72: 데이터 무효화 처리
단계 S70에서 데이터의 무효화 처리를 행한다고 판단되었기 때문에, 데이터의 무효화 처리를 실행한다.
S73: 산출한 비율의 판독
CPU(50)는 데이터 버스(60)를 통해 기록 또는 무효화 처리 직후에 플래시 메모리(30)에 의해 산출되어 출력되는 비율을 판독한다.
S74: 산출한 비율이 소정 비율보다 큰지 여부의 판정
다음에, CPU(50)는 산출한 비율이 RAM(80)에 저장된 소정 비율(예컨대 80%)보다 큰지 여부를 판정하여, 크면 단계 S75로 진행하고, 그렇지 않으면 처리를 종료한다.
S75: 폐정보 수집 처리
플래시 메모리(30)로부터 통지된 비율이 소정 비율을 상회한 경우는, CPU(50)는 폐정보 수집 처리가 필요하다고 간주하여 폐정보 수집 처리를 행한다.
이와 같이, 제2 실시 형태의 플래시 메모리(20)는 데이터 기록, 또는 데이터 무효화 처리 직후에 비율을 출력하도록 하였기 때문에, 인터럽트 신호선(101)이 필요 없게 된다.
다음에 본 발명의 제3 실시 형태를 설명한다.
제3 실시 형태의 구성은 도 13에서 도시한 제2 실시 형태의 구성도와 동일해지므로 생략한다.
제3 실시 형태에서는, CPU(50)가 플래시 메모리(20)에 대하여 비율을 요구하 는 비율 출력 명령을 송신하는 점이 제2 실시 형태와 다르다.
도 17은 비율 출력 명령에 따라 비율을 출력할 때의 타이밍 차트이다.
도면에서는, 그 때의 어드레스 버스(70), 제어 신호선(102), 데이터 버스(60)의 신호의 상태를 나타내고 있다.
플래시 메모리(30)의 제어부(33)는 도 17과 같이, 제어 신호선(102)이 "H"가 되었을 때에, 데이터 버스(60)로부터 비율 출력 명령을 수취한다. 이것에 따라, 비율 계산부(32)에서 플래그 영역(fy)의 상태를 판정하여 사용자 영역(ux)이 무효인 비율을 산출시킨다. 제어부(33)는 비율 계산부(32)에서 산출된 비율을 수취하고, 이것을 데이터 버스(60)에 출력하여 외부에 통지한다.
이와 같이, 제3 실시 형태에서는, 플래시 메모리(20)에 비율 출력 명령을 송신할 때에 비율을 취득하기 때문에, 임의의 타이밍으로 비율을 취득하는 것이 가능하다.
또, 상기한 제1 실시 형태에서는, 일정 시간 간격으로 사용자 영역(ux)이 무효인 비율을 계산하여 플래시 메모리(20) 안에서, 산출한 비율과 미리 저장하고 있던 소정 비율과 비교하여, 산출한 비율이 큰 경우는, 폐정보 수집 처리를 요구하는 인터럽트 신호를 출력하도록 하였다. 한편, 제2 실시 형태에서는, 기록 동작 또는 무효화 처리 직후에, 산출한 비율 그 자체를 출력하는 경우로 하였다. 그러나, 이것에 한정되지 않고, 일정 시간 간격으로 산출한 비율 그 자체를 출력하도록 하여도 좋고, 기록 동작 또는 무효화 처리 직후에, 산출한 비율과 미리 저장하고 있던 소정의 비율과 비교하여, 산출한 비율이 큰 경우는, 폐정보 수집 처리를 요구하는 인터럽트 신호를 출력하도록 하여도 좋다.
또한, 제3 실시 형태에서는, 외부로부터의 비율 출력 명령에 따라 사용자 영역(ux)이 무효인 비율을 출력하도록 하였지만, 제1 실시 형태와 같은 구성으로 하여 외부로부터의 명령이 플래시 메모리에 입력된 경우에, 폐정보 수집 처리를 요구하는 인터럽트 신호를 출력하도록 하여도 좋다.
또한, 상기에서는, 플래그 영역(fy)의 값으로서, 소거 상태의 경우는 "00", 유효 상태의 경우는 "01", 무효 상태의 경우는 "11"로서 설명하였지만, 이것에 한정되지 않는다.
이상 설명한 바와 같이 본 발명에서는, 데이터가 기억되는 복수의 사용자 영역과, 사용자 영역의 상태를 나타내는 복수의 플래그 영역으로 이루어진 메모리 셀 어레이를 갖는 플래시 메모리에 있어서, 플래그 영역의 값을 참조하여 사용자 영역의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하고, 상태 통지 정보를 외부에 출력하도록 하였기 때문에, 플래시 메모리의 외부에서는, 플래시 메모리 안의 상태를 간단히 알 수 있고, 현재 폐정보 수집 처리를 행할 필요가 있는지 여부를 판단할 수 있다.
상기에 대해서는 단순히 본 발명의 원리를 나타낸 것이다. 또한, 다수의 변형, 변경이 당업자에 있어서 가능하고, 본 발명은 상기에 나타내며, 설명한 정확한 구성 및 응용예에 한정되는 것이 아니라, 대응하는 모든 변형예 및 균등물은 첨부한 청구항 및 그 균등물에 의한 본 발명의 범위로 간주된다.

Claims (12)

  1. 데이터가 기억되는 복수의 사용자 영역과, 상기 사용자 영역의 상태를 나타내는 복수의 플래그 영역으로 이루어진 메모리 셀 어레이를 갖는 플래시 메모리에 있어서,
    상기 플래그 영역을 참조하여 상기 사용자 영역의 상태에 따른 정보를 외부에 통지하기 위한 상태 통지 정보를 생성하는 상태 통지 정보 생성부와,
    상기 상태 통지 정보를 출력하는 출력부
    를 구비하는 것을 특징으로 하는 플래시 메모리.
  2. 제1항에 있어서, 상기 상태 통지 정보 생성부는 상기 플래그 영역을 참조하여 상기 사용자 영역의 상태가 무효 상태인 비율을 산출하는 것을 특징으로 하는 플래시 메모리.
  3. 제2항에 있어서, 상기 상태 통지 정보 생성부는 미리 저장된 소정 비율과 상기 무효 상태인 비율을 비교하여, 상기 무효 상태인 비율이 크면, 폐정보 수집이 필요하다는 취지의 상기 상태 통지 정보를 생성하는 것을 특징으로 하는 플래시 메모리.
  4. 제2항에 있어서, 상기 출력부는 상기 무효 상태인 비율을 상기 상태 통지 정 보로서 출력하는 것을 특징으로 하는 플래시 메모리.
  5. 제1항에 있어서, 상기 출력부는 일정한 시간 간격으로 상기 상태 통지 정보를 출력할 수 있는 것을 특징으로 하는 플래시 메모리.
  6. 제1항에 있어서, 상기 출력부는 상기 사용자 영역에의 상기 데이터의 기록 직후 또는 상기 데이터의 무효화 직후에 상기 상태 통지 정보를 출력하는 것을 특징으로 하는 플래시 메모리.
  7. 제1항에 있어서, 상기 출력부는 상기 상태 통지 정보를 요구하는 정보 요구 신호의 수신 직후에 상기 상태 통지 정보를 출력하는 것을 특징으로 하는 플래시 메모리.
  8. 제3항에 있어서, 상기 소정 비율은 재기록 가능한 것을 특징으로 하는 플래시 메모리.
  9. 데이터가 기억되는 복수의 사용자 영역과, 상기 사용자 영역의 상태를 나타내는 복수의 플래그 영역으로 이루어진 메모리 셀 어레이를 갖는 플래시 메모리의 동작을 제어하는 메모리 제어 방법에 있어서,
    상기 플래시 메모리로부터, 폐정보 수집이 필요하다는 취지의 정보를 수신하 는 단계와,
    상기 정보에 따라 상기 플래시 메모리에 대하여 상기 폐정보 수집을 행하는 단계를 포함하는 것을 특징으로 하는 메모리 제어 방법.
  10. 제9항에 있어서, 상기 플래시 메모리에 상기 정보의 통지를 요구하는 단계를 더 포함하는 것을 특징으로 하는 메모리 제어 방법.
  11. 데이터가 기억되는 복수의 사용자 영역과, 상기 사용자 영역의 상태를 나타내는 복수의 플래그 영역으로 이루어진 메모리 셀 어레이를 갖는 플래시 메모리의 동작을 제어하는 메모리 제어 방법에 있어서,
    상기 플래시 메모리로부터, 상기 사용자 영역이 무효 상태인 비율을 수신하는 단계와,
    상기 무효 상태인 비율과 소정 비율을 비교하는 단계와,
    상기 소정 비율보다 상기 무효 상태인 비율이 큰 경우는, 상기 플래시 메모리에 대하여 폐정보 수집을 행하는 단계를 포함하는 것을 특징으로 하는 메모리 제어 방법.
  12. 제11항에 있어서, 상기 플래시 메모리에 상기 무효 상태인 비율의 통지를 요구하는 단계를 더 포함하는 것을 특징으로 하는 메모리 제어 방법.
KR1020057006067A 2005-04-08 2003-02-28 플래시 메모리 및 메모리 제어 방법 KR100597063B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020057006067A KR100597063B1 (ko) 2005-04-08 2003-02-28 플래시 메모리 및 메모리 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020057006067A KR100597063B1 (ko) 2005-04-08 2003-02-28 플래시 메모리 및 메모리 제어 방법

Publications (2)

Publication Number Publication Date
KR20050059249A KR20050059249A (ko) 2005-06-17
KR100597063B1 true KR100597063B1 (ko) 2006-07-06

Family

ID=37252276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057006067A KR100597063B1 (ko) 2005-04-08 2003-02-28 플래시 메모리 및 메모리 제어 방법

Country Status (1)

Country Link
KR (1) KR100597063B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876613B2 (en) 2006-05-18 2011-01-25 Samsung Electronics Co., Ltd. Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards
KR100778082B1 (ko) 2006-05-18 2007-11-21 삼성전자주식회사 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드
KR100919156B1 (ko) 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법

Also Published As

Publication number Publication date
KR20050059249A (ko) 2005-06-17

Similar Documents

Publication Publication Date Title
US7487286B2 (en) Flash memory and method for controlling the memory
US7613871B2 (en) Storage system using a flash memory partitioned with write-once and rewritable blocks
AU2003286967B2 (en) Dual journaling store method and storage medium thereof
JP4902547B2 (ja) フラッシュメモリのデータ処理装置及び方法
TW200947445A (en) Memory system
CN101595460A (zh) 用于收集非托管存储空间的实现
JPWO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
CN101645306A (zh) 非易失性存储器控制方法及半导体装置
CN100382049C (zh) 用于闪速存储器的数据处理设备和方法
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
JP2011527807A (ja) 固体記憶装置におけるデータ収集および圧縮
JP2007193449A (ja) 情報記録装置及びその制御方法
JP2009037317A (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP2007193865A (ja) 情報記録装置及びその制御方法
KR20210051873A (ko) 컨트롤러 및 메모리 시스템
WO2009031727A1 (en) Cache management method and cache device using sector set
KR20080064476A (ko) 플래쉬 메모리 소자의 소거 횟수 저장 방법
KR100597063B1 (ko) 플래시 메모리 및 메모리 제어 방법
KR100704618B1 (ko) 플래시 메모리의 데이터 복구 장치 및 방법
US10564886B2 (en) Methods and apparatus for controlling flash translation layer recycle from host
KR100594687B1 (ko) 휴대용단말기에서 대량의 데이타 저장 방법
JP4485231B2 (ja) 電子機器
JP5253471B2 (ja) メモリコントローラ
KR101718888B1 (ko) 메모리 시스템 및 그것의 가비지 컬렉션 방법
KR100309879B1 (ko) 플래시 메모리 관리 시스템 및 그 구현 방법

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: 20130531

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee