KR20100068905A - 플래시 메모리장치, 및 그 제어방법 - Google Patents

플래시 메모리장치, 및 그 제어방법 Download PDF

Info

Publication number
KR20100068905A
KR20100068905A KR1020080127418A KR20080127418A KR20100068905A KR 20100068905 A KR20100068905 A KR 20100068905A KR 1020080127418 A KR1020080127418 A KR 1020080127418A KR 20080127418 A KR20080127418 A KR 20080127418A KR 20100068905 A KR20100068905 A KR 20100068905A
Authority
KR
South Korea
Prior art keywords
address
controller
command
processing result
list
Prior art date
Application number
KR1020080127418A
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 KR1020080127418A priority Critical patent/KR20100068905A/ko
Publication of KR20100068905A publication Critical patent/KR20100068905A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

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

Abstract

본 발명은 메모리 셀에 대한 명령어 처리 결과를 별도의 메모리를 통해 이용함으로써 플래시 메모리장치의 제어장치에 대한 신뢰성을 증가시키는 것은 물론, 제어장치의 오동작을 최소화하는 플래시 메모리장치, 및 제어방법을 개시한다.
Figure P1020080127418
플래시 메모리, 컨트롤러, 제어 명령어, 레지스터

Description

플래시 메모리장치, 및 그 제어방법{Flash device and flash device control mehtod}
본 발명은 플래시 메모리장치, 및 플래시 메모리장치의 제어방법에 대한 것이다.
통상, 플래시 메모리장치는 하나의 컨트롤러에 복수의 칩(chip)을 연결하여 저장장치를 구현한다.
플래시 메모리장치가 저장장치로 이용될 때, 플래시 메모리장치는 종래의 기계식 하드디스크 드라이브(Hard Disk Drive)를 대체할 수 있다. 플래시 메모리장치가 기계식 하드디스크 드라이브를 대체하여 컴퓨터, 서버, 휴대단말기, 및 기타 스토리지를 필요로 하는 다양한 장치(이하, 호스트라 한다)에 적용될 때, 플래시 메모리장치에 내장되는 컨트롤러는 복수의 칩을 제어하는 제1제어부, 및 호스트와 데이터 통신을 담당하는 제2제어부를 구비하여야 한다.
플래시 메모리장치에 내장되는 컨트롤러는 원-칩(one-chip), 또는 두 개의 개별 칩으로 구성될 수 있다.
플래시 메모리장치에 내장되는 컨트롤러는 호스트와 데이터 통신을 수행하면 서, 호스트의 명령어를 처리하고, 처리 결과를 호스트로 리턴(return)해야 한다.
호스트와 통신을 담당하는 컨트롤러는 시 분할(time division) 방식에 따라 호스트와 데이터 통신을 수행하면서, 호스트의 명령어에 대한 처리 결과를 호스트로 리턴해야 한다.
제1제어부는 호스트의 명령어 처리 결과를 제2제어부로 리턴하며, 이때, 제1제어부로 인터럽트를 전달한다. 제2제어부는 호스트와 데이터 통신을 수행하면서 인터럽트에 응답하여야 한다. 이때, 제2제어부로 인가된 인터럽트보다 우선순위가 더 높은 인터럽트가 존재할 경우, 제2제어부는 제1제어부의 처리 결과에 응답하지 못한다. 즉, 종래의 제어방식은 컨트롤러의 신뢰성이 높지 않으며, 데이터 전송에 오류가 발생하는 문제가 있다.
따라서, 본 발명의 목적은 플래시 메모리장치의 컨트롤러의 신뢰성을 증가시키는 플래시 메모리장치, 및 제어방법을 제공함에 있다.
상기한 목적은 본 발명에 따라, 호스트의 명령어에 응답하여 메모리 셀을 제어하는 제1제어부, 및 상기 명령어에 대한 리스트와 상기 명령어에 대한 처리 결과값의 저장 위치를 각각 메모리의 제1어드레스와 제2어드레스에 설정하는 제2제어부를 포함하며, 상기 제1제어부는 상기 제1어드레스를 참조하여 상기 리스트를 획득하고, 처리 결과값은 상기 제2어드레스의 저장영역에 저장하며, 상기 제2제어부는 상기 제2어드레스를 참조하여 상기 처리 결과값을 획득하는 플래시 메모리장치에 의해 달성된다.
상기한 목적은 본 발명에 따라, 메모리 셀을 제어하는 셀 제어부가 참조할 명령어에 대한 리스트, 및 처리 결과값이 저장될 위치를 각각 메모리의 제1어드레스, 및 제2어드레스에 설정하는 단계, 및 상기 제2어드레스의 저장영역에서 상기 셀 제어부의 처리 결과값을 획득하여 호스트로 전달하는 단계에 의해 달성된다.
본 발명은 메모리 셀에 대한 명령어 처리 결과를 별도의 메모리를 통해 이용토록 함으로써 플래시 메모리장치의 제어장치에 대한 신뢰성을 증가시키는 것은 물론, 제어장치의 오동작을 최소화한다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다.
본 명세서에서 기술되는 플래시 메모리장치는 NAND 게이트, 또는 NOR 게이트를 이용하는 플래시 메모리장치일 수 있다. 또한, 본 발명에서 기술되는 플래시 메모리 장치는 SLC(Single Level Cell) 방식, 또는 MLC(Multi Level Cell) 방식의 칩을 구비하는 플래시 메모리장치일 수 있다.
본 발명은, 어떤 종류의 메모리 셀을 이용하는가에 따라 그 기술적 사상이 영향을 받지 않는다. 따라서, 본 발명에서 언급되는 메모리 셀은 NAND 게이트나 NOR 게이트 방식의 플래시 메모리 칩을 이용할 수 있으며, 마찬가지로, SLC 방식에 따른 메모리 칩이거나, MLC 방식에 따른 칩이 적용되어도 무방하므로 따로 구분하여 설명하지 않는다.
또한, 이하의 설명에서는 메모리 셀을 제어하는 컨트롤러, 및 컨트롤러와 연동하여 구동하는 부분을 제어부라 하고, 제어부를 구성하는 구성요소에 대한 접미사로서 "모듈", 또는 "부"가 사용될 수 있다. 따라서, 제어부는 단일 칩(chip)으로 형성되거나, 복수의 칩(chip)이 모여서 하나의 구성요소를 이룰 수 있다.
본 명세서에서 사용되는 구성요소, 및 그에 대한 접미사는 본 명세서 작성의 용이함만을 고려하여 부여되는 것으로, 상기 "모듈", 및 "부"는 상호 혼용되어 사용될 수 있다.
본 명세서에서 기술되는 "플래시 메모리장치"는 SSD(Solid State Disk)로 구현되거나, 임베디드 장치에서 비 휘발성 저장매체의 역할을 수행할 수 있다.
본 명세서에서 플래시 메모리장치와 접속 가능한 퍼스널 컴퓨터, 서버, 노트북, PDA(Personal Digital Assistant), PMP(Personal Media Player), 비디오 게임기, 휴대단말기(mobile phone), 및 기타 데이터 저장을 위한 다양한 장치는 "호스트"라고 지칭한다.
도 1은 본 발명에 따른 플래시 메모리장치, 및 플래시 메모리장치와 호스트의 접속관계에 대한 개념도를 도시한다.
도 1을 참조하면, 본 발명에 따른 플래시 메모리장치(100)는 호스트(50)에 접속되어 사용되며, 호스트(50)가 부팅될 때, 호스트(50)와 데이터 전송 방식을 협의하고, 협의된 데이터 전송 방식에 따라 상호 데이터 전송을 처리한다.
먼저, 호스트(50)가 부팅될 때, 프로세서(CPU)(51)는 바이오스(BIOS)(52)를 통해 플래시 메모리장치(100)에 대한 장치 정보를 획득한다. 바이오스(52)는 호스트(50)에 장착되는 각종 하드웨어 장치에 대한 장치 정보를 구비하며, 호스트(50)가 부팅될 때, 각종 하드웨어 장치 정보를 프로세서(51)로 전송한다. 다음으로, 프로세서(51)는 플래시 메모리장치(100)의 존재를 인식하고, 플래시 메모리장치(100)가 사용 가능한지를 확인한다(S1). 이때, 플래시 메모리장치(100)의 제어부(120)는 호스트(50)에 대해 사용 가능함을 응답하며(S2), 호스트(50)와 데이터 전송을 위한 주소 체계를 협의한다(S3). 주소체계는 통상 CHS 주소체계와 LBA 주소체계 중 하나가 적용될 수 있다. CHS 주소 체계는 바이오스(52)가 하드디스크 드라이브의 실린더(Cylinder), 헤드(Head), 섹터(Sector)정보를 저장해두고, 호스 트(50) 측 프로세서(51)가 CHS 정보를 이용하여 하드디스크 드라이브와 데이터 통신을 수행하는 주소 체계를 의미한다.
LBA(Logical Block Addressing) 주소 체계는 하드디스크 드라이브의 첫 번째 섹터에 일렬번호를 매긴 뒤, 그 다음번 일련번호를 그 다음번 섹터에 할당하여 주소를 형성하는 주소 체계를 의미한다. 본 명세서는 현재 가장 널리 이용되는 LBA 주소 체계를 기준으로 설명을 진행하도록 한다. 물론, 추후, 주소 체계는 현재의 주소 체계(CHS, LBA)와 다른 것이 존재할 수 있으나, 새로운 주소 체계가 바이오스를 통해 프로세서(51)로 제공되고, 프로세서(51)가 플래시 메모리장치(100)와 협의할 수 있다면 본 발명에 따른 플래시 메모리장치(100)는 새로운 주소 체계를 이용할 수 있음이 자명하다 할 것이다.
호스트(50)와 플래시 메모리장치(100)의 제어부(120)가 상호 인식하고, 데이터 전송을 위한 주소 체계에 대한 협의가 종료되면, 호스트(50)는 플래시 메모리장치(100)로 데이터 읽기, 쓰기, 삭제, 및 기타 다양한 제어 명령어(command)를 전송할 수 있으며(S4), 플래시 메모리장치(100)는 호스트(50)의 제어 명령어(command)에 대한 응답(response)을 수행한다(S5). 플래시 메모리장치(100)의 응답은 호스트(50)가 원하는 데이터를 읽거나, 쓰거나, 삭제했을 때, 호스트(50)로 데이터를 전송하거나, 호스트(50)의 제어 명령어(commnand)에 대한 처리 결과를 호스트(50)로 전송하는 것 중 하나에 해당한다.
한편, 플래시 메모리장치(100)는 호스트(50)가 제어 명령어(command)를 전송하기 전, 메모리 셀(140)을 구성하는 각 블록에 대해 매핑 테이블을 형성한다.
메모리 셀(140)은 복수의 블록으로 구성되며, 각 블록은 기계식 하드디스크 드라이브와는 달리 실린더, 헤더, 및 섹터의 기준으로 구획되지 않는다. 따라서, 현재도 널리 사용되는 하드디스크 드라이브를 대신하여 호스트(50)와 데이터 통신을 수행하기 위해서는 각 물리적인 블록을 호스트(50)의 논리 주소체계와 대응시켜야 하며, 통상 "매핑 테이블"을 이용한다. 본 발명에서, 매핑 테이블은 복수로 구획되어 복수의 부분 매핑 테이블을 형성하고, 각 부분 매핑 테이블은 각 블록(141a ∼ 141n)에 분산되어 저장된다. 여기서, 메모리 셀(140)은 하나만이 도시되어 있으나, 이는 설명과 이해의 편의를 위한 것일 뿐이며, 메모리 셀(140)은 둘, 또는 복수일 수 있다.
또한, 각각의 블록(141a ∼ 141n)은 복수의 섹터로 구성되고, 각 섹터는 복수의 섹터(sector)를 구비한다. 섹터는 호스트(50)가 기록을 요청하는 데이터의 최소 기록단위로서 수 Byte ∼ 수 KB의 크기를 가질 수 있다.
제어부(120)는 호스트(50)와 데이터 통신을 수행하며, 호스트(50)의 제어 명령어를 수신하고, 수신된 제어 명령어에 대한 처리 결과를 호스트(50)로 리턴한다. 제어부(120)는 호스트(50)의 제어 명령에 따라, 메모리 셀(140)에서 데이터를 읽거나, 기록하거나, 또는 삭제할 수 있으며, 호스트(50)가 플래시 메모리장치에 대한 상태정보를 요청할 때, 이에 응답하여 플래시 메모리장치의 상태 정보를 제공한다.
여기서, 제어부(120)는 메모리 셀(140)을 제어하는 제1제어부(121)와 호스트(50)와 데이터 통신을 수행하는 제2제어부(122)로 나눌 수 있으며, 제1제어부(121)와 제2제어부(122)는 하나의 칩(chip)으로 형성되거나, 별개의 칩(chip)으 로 형성될 수 있다.
제2제어부(122)는 호스트(50)의 제어 명령어를 수신하고, 수신된 제어 명령어에 대한 리스트를 작성한다. 또한, 제2제어부(122)는 호스트(50)의 제어 명령어에 대한 리스트가 저장될 제1어드레스, 및 제1제어부(121)의 명령어 처리 결과가 저장될 제2어드레스를 설정한다.
여기서, 제1어드레스와 제2어드레스는 메모리(150)에 대한 어드레스를 의미한다. 메모리(150)는 휘발성 메모리로서, 제1제어부(121)와 제2제어부(122)에서 필요로 하는 임시 저장공간을 제공한다.
본 발명에서, 메모리(150)는 메모리 셀(140)에 비해 처리 속도가 빠른 DRAM, 및 SRAM과 같은 메모리가 적용되나, 메모리(150)의 종류는 이에 한정될 필요는 없다. 메모리(150)는 추후 새로운 종류의 메모리가 나타날 경우, DRAM 이나 SRAM을 대체하여 사용될 수 있음은 물론이다.
제2제어부(122)는 호스트(50)의 제어 명령어에 대한 리스트가 저장될 제1어드레스, 및 제1제어부(121)의 처리 결과가 저장될 제2어드레스를 설정 후, 제1제어부(121)로 통보한다. 제1제어부(121)는 제2제어부(122)가 통보한 제1어드레스를 참조하여 메모리(150)에서 제1어드레스의 저장영역(151)에서 호스트(50)의 제어 명령어를 획득하고 수행한다.
여기서, 리스트는 하나, 또는 둘 이상의 제어 명령어의 집합체를 의미한다.
제1제어부(122)는 호스트(50)의 제어 명령어를 처리한 처리 결과값을 제2어드레스의 저장영역(152)에 저장 후, 제2제어부(122)로 인터럽트를 가하여 처리 결 과값이 제2어드레스의 저장영역(152)에 저장되었는지의 여부를 제2제어부(122)로 통보한다.
제2제어부(122)는 제1제어부(121)의 인터럽트에 응답하여 메모리(150)의 제2어드레스를 조회한다. 제2제어부(122)는 메모리(150)의 제2어드레스의 저장영역(152)에서 처리 결과값을 획득하고, 획득한 처리 결과값을 호스트(50)로 리턴(return)한다.
한편, 제1제어부(121)는 제2제어부(122)를 통해 데이터 기록을 위한 기록 명령어를 수신했을 경우, 메모리 셀(140)을 구성하는 블록들 중 어느 블록에 데이터를 기록할 것인지를 결정하여야 한다. 통상, 플래시 메모리장치는 데이터를 기록할 때마다 그 수명이 감소하므로 메모리 셀(140)을 구성하는 모든 블록이 균등하게 마모되도록 해야 하며, 이를 통상 마모도 평준화라 한다.
마모도 평준화는 각 블록에 대한 소거 횟수를 참조하여 가장 소거 횟수가 적은 블록을 기록대상 블록으로 선택하는 것이 일반적이다. 만일, 제1제어부(121)가 소거 횟수를 기준으로 마모도 평준화를 수행할 경우, 메모리 셀(140)을 구성하는 각 블록에 부분 매핑 테이블을 분산 저장해 두었다가 호스트(50)가 리셋할 때, 호출하여 하나의 전체 매핑 테이블을 형성하며, 제1제어부(121)는 호스트(50)에서 데이터 기록을 요구할 때, 전체 매핑 테이블을 참조하여 소거 횟수가 적은 블록에 데이터를 기록한다.
다른 한편, 제1제어부(121)가 오류 비트수를 이용하여 마모도 평준화를 수행할 경우, 제1제어부(121)는 메모리(150)에 각 블록에 대한 소거 횟수 대신 각 섹터 나 섹터가 소속되는 블록에 대해 오류 비트수를 기록한다. 제1제어부(121)는 메모리(150)에 기록된 전체 테이블에 기록된 오류 비트수를 참조하여 오류 비트수가 가장 적은 블록에 호스트(50)가 기록을 요청한 데이터를 기록할 수 있다.
여기서, 전체 테이블은 호스트(50)가 리셋될 때, 제1제어부(121)가 각 블록(141a ∼ 141n)에 저장된 부분 매핑 테이블을 취합하여 형성하며, 메모리(150)에 저장한다. 도면에서는 "mapping table" 로 표시된다.
도 2는 본 발명에 따른 플래시 메모리장치의 제어방법에 대한 개념도를 나타낸다.
제2제어부(122)는 호스트에서 전송된 제어 명령어를 해석하여 제1제어부(121)로 제어 명령어(command)를 전달한다. 제2제어부(122)가 제1제어부(121)로 읽기, 쓰기, 지우기와 같은 제어 명령어를 전송하면, 제1제어부(121)는 메모리 셀(140)을 제어하여 읽기, 쓰기, 및 지우기 작업 중 하나를 수행한다. 그리고, 제1제어부(121)는 메모리 셀(140)에 대한 읽기, 쓰기, 및 지우기 작업의 처리 결과값을 레지스터(152)에 저장한다.
제1제어부(121)는 레지스터(152)에 저장된 처리 결과값을 제2제어부(122)가 설정한 제2어드레스의 저장영역(152)에 저장한다. 이후, 제1제어부(121)는 제2제어부(122)에서 전송되는 제어 명령어의 처리 결과값을 제2어드레스의 저장영역(152)에 저장하며, 제2어드레스의 저장영역(152)에 처리 결과값을 저장할 때마다 제1제어부(121)로 인터럽트를 인가한다.
이때, 제1제어부(121)의 레지스터(152)는 각 제어 명령어의 처리 결과값이 지속적으로 갱신된다. 종래에는 레지스터(152)에 저장된 처리 결과값을 제2제어부(122)에 정상적으로 획득하지 못했을 경우, 레지스터(152)에 저장된 처리 결과값이 새로운 제어 명령어에 대한 처리 결과값으로 갱신되었으므로, 제2제어부(122)는 원하는 처리 결과값을 획득할 수 없었다.
그러나, 본 발명에서는 제2제어부(122)가 제2어드레스를 참조하여 언제든지 메모리(150)에 저장된 처리 결과값을 획득할 수 있다. 따라서, 제2제어부(122)가 호스트(50)와 데이터 통신을 수행하는 중에 제1제어부(121)의 인터럽트(예컨대, int 1)를 처리하지 못하는 경우에도 제2제어부(122)는 메모리(150)에서 원하는 처리 결과값을 획득할 수 있다. 또한, 제1제어부(121)가 제2제어부(122)로 인가한 인터럽트보다 우선순위가 더 높은 인터럽트가 제2제어부(122)에 인가될 때도, 제2제어부(122)는 우선순위가 더 높은 인터럽트를 처리 후, 제1제어부(121)의 명령어 처리 결과를 획득할 수 있음은 물론이다.
본 발명에 의한 플래시 메모리장치의 제어방법은 제2제어부(122)의 상태에 관계없이 제2제어부(122)가 제1제어부(121)의 명령어를 처리한 처리 결과값을 획득할 수 있도록 한다.
도 3은 본 발명과 대비되는 통상의 플래시 메모리장치의 제어방법에 대한 개념도를 나타낸다.
도 3을 참조하면 제2제어부(122)가 호스트(50)에서 전송된 제어 명령어를 해석하여 제1제어부(121)로 제어 명령어(command)를 전달할 때, 제1제어부(121)는 제어 명령어를 처리하고, 처리 결과를 레지스터(122b)에 저장한다.
제1제어부(121)는 제2제어부(122)에서 제어 명령어들이 전송될 때마다 메모리 셀(140)을 제어하여 읽기, 쓰기, 및 지우기 작업을 수행하며, 처리 결과값은 레지스터(122b)에 저장한다. 레지스터(122b)는 오직 하나의 처리 결과값만을 저장한다. 제1제어부(121)가 3개의 제어 명령어를 처리하고, 그 처리 결과값이 순차적으로 N, N+1, N+2 이라고 가정할 경우, 처리 결과값 N이 레지스터(122b)에 저장된 후, 처리 결과값 N+1이 레지스터(122b)에 저장된 처리 결과값 N을 덮어쓰며, 이후, 처리 결과값 N+2가 처리 결과값 N+1를 덮어쓴다. 제1제어부(121)는 각각의 처리 결과값이 생성될 때마다 제2제어부(122)에 인터럽트를 인가하고, 제2제어부(122)는 인터럽트가 인가될 때마다 레지스터(122b)에 억세스하여 처리 결과값을 획득한다.
만일, 제2제어부(122)가 호스트(50)와 데이터 통신을 수행하는 중이거나 호스트(50)로부터 우선순위가 더 높은 인터럽트를 인가받았을 경우, 제2제어부(122)는 제1제어부(121)가 인가한 인터럽트를 처리하지 못할 수 있다. 제2제어부(122)가 제1제어부(121)에서 인가한 인터럽트에 즉각 응답하지 못할 경우, 제2제어부(122)는 인터럽트에 대응하는 처리 결과값을 획득할 수 없다.
예컨대, 인터럽트 int 1, int 2, 및 int 3에 대한 처리 결과값이 각각 N, N+1, N+2라고 가정할 때, 제2제어부(122)가 int 1에 대한 응답이 늦어질 경우, int 2에 대한 처리 결과값이 레지스터(122b)에 저장될 수 있으며, 이때, 제2제어부(122)는 인터럽트(int 1)에 대한 처리 결과값(N)을 획득할 수 없다.
즉, 통상의 플래시 메모리장치는 제2제어부(122)가 제1제어부(121)의 인터럽트에 즉각 반응하지 못했을 경우, 인터럽트에 해당하는 처리 결과값을 획득하지 못 할 수 있으나, 본 발명은 제1제어부(121)와 제2제어부(122)가 공유하는 메모리(150)에 처리 결과값을 저장해둠으로써 제2제어부(122)가 언제든 제1제어부(121)의 처리 결과값을 획득할 수 있도록 한다.
도 4는 제2제어부에서 메모리에 저장하는 명령어의 리스트에 대한 일 예를 나타낸다.
도 4를 참조하면, 명령어 리스트는 명령번호, 명령어, 물리주소, 섹터 데이터의 버퍼 포인터, 및 섹터 수에 대한 필드를 구비한다.
명령번호 필드는 제2제어부(122)에서 제공되는 명령어들에 대해 순차로 부여된다.
명령어 필드는 제1제어부(121)가 메모리 셀(140)에 대해 처리해야 할 명령어를 나타낸다. 명령어 필드에는 읽기, 쓰기, 및 지우기와 같은 명령어가 기재될 수 있다.
물리 주소(physical address) 필드는 명령어가 메모리 셀(140)에 대한 읽기, 쓰기, 및 지우기 중 어느 하나에 해당할 때, 제1제어부(121)가 메모리 셀(140)에 데이터를 읽거나, 쓰거나, 지울 위치를 나타낸다.
데이터를 기록하거나, 읽거나, 지우는 대상인 메모리 셀(140)은 하나, 또는 복수의 칩(chip)으로 구성되고, 각각의 칩은 복수의 블록으로 구성되며, 각각의 블록은 복수의 페이지로 구성되고, 각 페이지는 복수의 섹터로 구성된다. 따라서, 물리주소는 데이터를 기록해야 할 위치를 칩 번호, 블록 번호, 페이지 번호, 및 섹터 번호로 구분하여 나타내는 것이 바람직하다.
섹터 데이터의 버퍼 포인터 필드는 제1제어부(121)의 처리 결과값에 대응하는 데이터의 어드레스를 가리킨다. 제2제어부(122)에서 제1제어부(121)로 전송된 제어 명령어가 읽기 명령이고, 제1제어부(121)가 메모리 셀(140)에서 데이터 읽기에 성공하면, 제1제어부(121)는 제2어드레스의 저장영역(152)에 데이터 읽기의 성공 여부를 나타내는 처리 결과값을 저장된다. 제1제어부(121)는 제2어드레스의 저장영역(152)에 처리 결과값을 기록함은 물론, 읽기 명령에 해당하는 데이터를 메모리(150)의 일 영역에 기록하며, 메모리(150)에 기록된 데이터는 추후 제2제어부(122)가 획득하여 호스트(50)로 전송한다.
따라서, 섹터 데이터의 버퍼 포인터 필드는 제1제어부(121)가 메모리 셀(140)에서 읽은 데이터가 버퍼링 될 메모리(150)의 어드레스를 나타낸다. 마지막으로, 섹터 수 필드는 제1제어부(121)가 제어 명령어에 의해 데이터를 기록하거나 읽어야 할 섹터의 수를 나타낸다.
도 5는 제1제어부에서 메모리에 저장하는 명령어 리스트의 일 예를 나타낸다.
도 5를 참조하면, 처리 결과값은 명령 번호, 명령 수행여부, 명령처리 결과, 섹터당 최대 ECC 오류 비트수, 및 버퍼의 데이터 포인터에 대한 필드를 구비한다.
명령 번호 필드는 리스트의 명령 번호 필드와 매칭되는 번호로서, 리스트에 기재된 명령과 그 처리 결과값을 매칭하기 위해 부여된다. 즉, 리스트의 명령 번호가 "1"일 때, 처리 결과값에 부여된 명령 번호가 "1"이면 처리 결과값의 명령 번호 "1"은 리스트의 명령 번호 "1"에 대한 처리 결과를 나타낸다.
명령수행 여부 필드는 리스트의 명령 번호에 대해 제1제어부(121)의 수행 여부를 나타낸다. 도 5에서 명령 번호 "1"과 "2"는 각각 리스트의 읽기 명령과 쓰기 명령에 대응하며, 제1제어부(121)가 읽기 명령과 쓰기 명령을 수행하였음을 나타낸다. 반면, 도 5의 명령 번호 "3"은 제1제어부(121)가 아직 수행하지 않았음을 나타낸다.
명령 처리 결과 필드는, 명령어 리스트의 명령 번호에 해당하는 명령에 대한 처리 결과를 나타낸다. 도 5에서, 명령 번호 1과 2에 대한 처리 결과는 "성공"이고, 명령 번호 3에 대한 처리 결과는 "실패"를 의미한다. 여기서, 명령 번호 3에 대한 처리 결과가 "실패"인 이유는 제1제어부(121)가 명령 번호 3에 해당하는 명령(지우기)를 수행하지 않은데 기인한다.
섹터당 최대 ECC 오류 비트수 필드는 제1제어부(121)가 메모리 셀(140)의 특정 섹터에서 데이터를 읽어올 때, 섹터에서 발생하는 오류 비트의 수를 나타낸다. 섹터당 최대 ECC 오류 비트수는 제1제어부(121)가 메모리 셀(140)에 데이터를 기록할 때, 마모도 평준화를 위해 이용될 수 있으며, 버퍼의 데이터 포인터 필드는 제1제어부(121)가 읽기 및 쓰기 명령을 수행한 메모리 셀(140) 내부의 섹터의 위치를 가리킨다.
도 6은 본 발명에 따른 플래시 메모리장치의 제어방법에 대한 처리 순서를 개념적으로 도시한다.
먼저, 제2제어부(122)는 호스트(50)에서 전송된 명령어를 수신하고, 수신된 제어 명령어를 해석 후, 제1제어부(121)를 제어하기 위한 제어 명령어의 리스트를 생성하여 메모리(150)의 제1어드레스의 저장영역(151)에 저장한다(1). 이때, 제2제어부(122)는 메모리(150)에 저장되는 리스트의 어드레스(제1어드레스), 및 리스트에 포함되는 명령어가 제1제어부(121)에서 처리된 후, 메모리(150)에 저장할 처리 결과값의 어드레스를 설정한다. 다음으로, 제2제어부(122)는 리스트의 어드레스(제1어드레스)를 제1제어부(121)로 통보하고(2), 리스트에 포함되는 명령어의 처리 결과값을 저장할 제2어드레스를 제1제어부(121)로 통보한다(3).
다음으로, 제2제어부(122)는 처리 결과값이 저장될 제2어드레스의 저장영역(152)을 초기화한다(4). 제2제어부(122)는 초기화가 처리된 후, 제1제어부(121)로 리스트의 처리를 요청한다(5).
다음으로, 제1제어부(121)는 제2제어부(122)가 통보한 리스트를 참조하여 제1어드레스의 저장영역(151)에 억세스 하여 리스트를 획득한다(6). 이후, 제1제어부(121)는 리스트에 포함되는 명령어를 수행하고, 처리 결과를 제2어드레스의 저장영역(152)에 저장한다(7). 다음으로, 제1제어부(121)는 제2제어부(122)에 인터럽트를 인가하여 하나의 명령어가 처리되었음을 통보하며(8), 제2제어부(122)는 인터럽트에 응답하여 제2어드레스의 저장영역(152)에 억세스하여 처리 결과값을 획득한다(9).
상기한 제어 방법은, 제2제어부(122)에 과부하가 걸리거나, 제1제어부(121)가 제2제어부(122)로 인가하는 인터럽트에 비해 우선 순위가 더 높은 타 인터럽트가 제2제어부(122)로 인가되거나, 제2제어부(122)가 호스트(50)와 데이터 통신을 수행중일 때도, 제2제어부(122)가 처리 결과값을 획득할 수 있도록 한다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
도 1은 본 발명에 따른 플래시 메모리장치, 및 플래시 메모리장치와 호스트의 접속관계에 대한 개념도,
도 2는 본 발명에 따른 플래시 메모리장치의 제어방법에 대한 개념도,
도 3은 본 발명과 대비되는 통상의 플래시 메모리장치의 제어방법에 대한 개념도,
도 4는 제2제어부에서 메모리에 저장하는 명령어의 리스트에 대한 일 예를 나타내는 도면,
도 5는 제1제어부에서 메모리에 저장하는 명령어 리스트의 일 예를 나타내는 도면, 그리고
도 6은 본 발명에 따른 플래시 메모리장치의 제어방법에 대한 처리 순서를 개념적으로 도시한다.
*도면의 주요 부분에 대한 부호의 설명*
50 : 호스트 120 : 제어부
121 : 제1제어부 122 : 제2제어부
140 : 메모리 셀 150 : 메모리

Claims (14)

  1. 호스트의 명령어에 응답하여 메모리 셀을 제어하는 제1제어부; 및
    상기 명령어에 대한 리스트와 상기 명령어에 대한 처리 결과값의 저장 위치를 각각 메모리의 제1어드레스와 제2어드레스에 설정하는 제2제어부;를 포함하며,
    상기 제1제어부는 상기 제1어드레스를 참조하여 상기 리스트를 획득하고, 처리 결과값은 상기 제2어드레스의 저장영역에 저장하며, 상기 제2제어부는 상기 제2어드레스를 참조하여 상기 처리 결과값을 획득하는 플래시 메모리장치.
  2. 제1항에 있어서,
    상기 제1제어부는,
    상기 호스트의 명령어에 대한 처리를 수행 후, 상기 제2제어부에 인터럽트를 인가하는 것을 특징으로 하는 플래시 메모리장치.
  3. 제1항에 있어서,
    상기 제2제어부는,
    상기 호스트의 명령어를 상기 제2어드레스에 대한 저장영역에 저장하기 전, 상기 제2어드레스에 대한 저장영역을 초기화하는 것을 특징으로 하는 플래시 메모리장치.
  4. 제1항에 있어서,
    상기 제1제어부는,
    상기 명령어 리스트를 저장하기 위한 제1레지스터; 및
    상기 제2어드레스를 저장하기 위한 제2레지스터;를 구비하는 것을 특징으로 하는 플래시 메모리장치.
  5. 제1항에 있어서,
    상기 명령어에 대한 리스트는,
    상기 명령어에 대한 제1참조번호를 포함하고, 상기 처리 결과값은, 상기 제1참조번호에 대응하는 제2참조번호를 구비하는 것을 특징으로 하는 플래시 메모리장치.
  6. 제1항에 있어서,
    상기 리스트는,
    상기 메모리 셀에 저장된 데이터에 대한 상기 메모리의 저장 어드레스를 가리키는 포인터 정보를 더 포함하는 것을 특징으로 하는 플래시 메모리장치.
  7. 제1항에 있어서,
    상기 처리 결과값은,
    상기 호스트의 명령어 중 읽기 명령, 및 기록 명령 중 어느 하나에 대한 상 기 메모리 셀의 데이터가 상기 메모리에 저장되는 위치를 가리키는 포인터 정보를 포함하는 것을 특징으로 하는 플래시 메모리장치.
  8. 제1항에 있어서,
    상기 제1제어부와 상기 제2제어부는,
    하나의 칩(Chip), 및 별개의 독립된 칩(Chip) 중 어느 하나로 구현되는 것을 특징으로 하는 형성되는 것을 특징으로 하는 플래시 메모리장치.
  9. 메모리 셀을 제어하는 셀 제어부가 참조할 명령어에 대한 리스트, 및 처리 결과값이 저장될 위치를 각각 메모리의 제1어드레스, 및 제2어드레스에 설정하는 단계; 및
    상기 제2어드레스의 저장영역에서 상기 셀 제어부의 처리 결과값을 획득하여 호스트로 전달하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리장치의 제어방법.
  10. 제9항에 있어서,
    상기 설정하는 단계는,
    상기 제1어드레스에 상기 리스트를 저장하는 단계; 및
    상기 리스트에 포함되는 적어도 하나의 명령어에 대한 처리를 상기 셀 제어부에 요청하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리장치의 제어방 법.
  11. 제10항에 있어서,
    상기 리스트를 저장하는 단계는,
    상기 리스트를 상기 제2어드레스에 대한 저장영역에 저장하기 전, 상기 제2어드레스를 초기화하는 단계;를 더 포함하는 것을 특징으로 하는 플래시 메모리장치의 제어방법.
  12. 제9항에 있어서,
    상기 명령어에 대한 리스트는,
    상기 명령어에 대한 제1참조번호를 포함하며, 상기 처리 결과값은, 상기 제1참조번호에 대응하는 제2참조번호를 구비하는 것을 특징으로 하는 플래시 메모리장치의 제어방법.
  13. 제9항에 있어서,
    상기 리스트는,
    상기 메모리 셀에 저장된 데이터에 대한 상기 메모리의 저장 어드레스를 가리키는 포인터 정보를 포함하는 것을 특징으로 하는 플래시 메모리장치의 제어방법.
  14. 제9항에 있어서,
    상기 처리 결과값은,
    상기 호스트의 명령어 중 읽기 명령, 및 기록 명령 중 어느 하나에 대한 상기 메모리 셀의 데이터가 상기 메모리에 저장되는 위치를 가리키는 포인터 정보를 포함하는 것을 특징으로 하는 플래시 메모리장치의 제어방법.
KR1020080127418A 2008-12-15 2008-12-15 플래시 메모리장치, 및 그 제어방법 KR20100068905A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080127418A KR20100068905A (ko) 2008-12-15 2008-12-15 플래시 메모리장치, 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080127418A KR20100068905A (ko) 2008-12-15 2008-12-15 플래시 메모리장치, 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20100068905A true KR20100068905A (ko) 2010-06-24

Family

ID=42367091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080127418A KR20100068905A (ko) 2008-12-15 2008-12-15 플래시 메모리장치, 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR20100068905A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500707B2 (en) 2018-11-30 2022-11-15 SK Hynix Inc. Controller, memory controller, storage device, and method of operating the controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500707B2 (en) 2018-11-30 2022-11-15 SK Hynix Inc. Controller, memory controller, storage device, and method of operating the controller

Similar Documents

Publication Publication Date Title
US11593259B2 (en) Directed sanitization of memory
US8166233B2 (en) Garbage collection for solid state disks
US8819338B2 (en) Storage system and storage apparatus
US8489803B2 (en) Efficient use of flash memory in flash drives
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
US9223696B2 (en) Data storage device for holding erasure of victim block having valid page copied to merge block and method of operating the same
KR20200020464A (ko) 데이터 저장 장치 및 그 동작 방법
US20210103517A1 (en) Operating method of memory system and host recovering data with write error
KR101515621B1 (ko) 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
KR20200013956A (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
KR20190091035A (ko) 메모리 시스템 및 그것의 동작 방법
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20100068905A (ko) 플래시 메모리장치, 및 그 제어방법
KR20100055201A (ko) 플래시 메모리장치, 및 데이터 기록방법
KR20100095938A (ko) 플래시 메모리장치
KR20100111992A (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
KR20100062191A (ko) 플래시 메모리장치, 및 그 제어방법
KR20110096829A (ko) 반도체 메모리장치 및 그 제어방법
US11294587B2 (en) Data storage device capable of maintaining continuity of logical addresses mapped to consecutive physical addresses, electronic device including the same, and method of operating the data storage device
KR20100106109A (ko) 플래시 메모리장치
KR20240053298A (ko) 호스트와 메모리 시스템에서 맵데이터를 관리하는 장치 및 방법
KR20100132837A (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
KR20100095937A (ko) 플래시 메모리장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination