KR20130084501A - 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치 - Google Patents

데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치 Download PDF

Info

Publication number
KR20130084501A
KR20130084501A KR1020120005326A KR20120005326A KR20130084501A KR 20130084501 A KR20130084501 A KR 20130084501A KR 1020120005326 A KR1020120005326 A KR 1020120005326A KR 20120005326 A KR20120005326 A KR 20120005326A KR 20130084501 A KR20130084501 A KR 20130084501A
Authority
KR
South Korea
Prior art keywords
data
raid
pages
mth
controller
Prior art date
Application number
KR1020120005326A
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 KR1020120005326A priority Critical patent/KR20130084501A/ko
Priority to US13/739,417 priority patent/US20130185483A1/en
Publication of KR20130084501A publication Critical patent/KR20130084501A/ko

Links

Images

Classifications

    • 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/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16KVALVES; TAPS; COCKS; ACTUATING-FLOATS; DEVICES FOR VENTING OR AERATING
    • F16K31/00Actuating devices; Operating means; Releasing devices
    • F16K31/12Actuating devices; Operating means; Releasing devices actuated by fluid
    • F16K31/122Actuating devices; Operating means; Releasing devices actuated by fluid the fluid acting on a piston
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F15FLUID-PRESSURE ACTUATORS; HYDRAULICS OR PNEUMATICS IN GENERAL
    • F15BSYSTEMS ACTING BY MEANS OF FLUIDS IN GENERAL; FLUID-PRESSURE ACTUATORS, e.g. SERVOMOTORS; DETAILS OF FLUID-PRESSURE SYSTEMS, NOT OTHERWISE PROVIDED FOR
    • F15B15/00Fluid-actuated devices for displacing a member from one position to another; Gearing associated therewith
    • F15B15/20Other details, e.g. assembly with regulating devices
    • F15B15/22Other details, e.g. assembly with regulating devices for accelerating or decelerating the stroke
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F15FLUID-PRESSURE ACTUATORS; HYDRAULICS OR PNEUMATICS IN GENERAL
    • F15BSYSTEMS ACTING BY MEANS OF FLUIDS IN GENERAL; FLUID-PRESSURE ACTUATORS, e.g. SERVOMOTORS; DETAILS OF FLUID-PRESSURE SYSTEMS, NOT OTHERWISE PROVIDED FOR
    • F15B15/00Fluid-actuated devices for displacing a member from one position to another; Gearing associated therewith
    • F15B15/20Other details, e.g. assembly with regulating devices
    • F15B15/24Other details, e.g. assembly with regulating devices for restricting the stroke
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F15FLUID-PRESSURE ACTUATORS; HYDRAULICS OR PNEUMATICS IN GENERAL
    • F15BSYSTEMS ACTING BY MEANS OF FLUIDS IN GENERAL; FLUID-PRESSURE ACTUATORS, e.g. SERVOMOTORS; DETAILS OF FLUID-PRESSURE SYSTEMS, NOT OTHERWISE PROVIDED FOR
    • F15B2211/00Circuits for servomotor systems
    • F15B2211/70Output members, e.g. hydraulic motors or cylinders or control therefor
    • F15B2211/705Output members, e.g. hydraulic motors or cylinders or control therefor characterised by the type of output members or actuators
    • F15B2211/7051Linear output members
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F15FLUID-PRESSURE ACTUATORS; HYDRAULICS OR PNEUMATICS IN GENERAL
    • F15BSYSTEMS ACTING BY MEANS OF FLUIDS IN GENERAL; FLUID-PRESSURE ACTUATORS, e.g. SERVOMOTORS; DETAILS OF FLUID-PRESSURE SYSTEMS, NOT OTHERWISE PROVIDED FOR
    • F15B2211/00Circuits for servomotor systems
    • F15B2211/70Output members, e.g. hydraulic motors or cylinders or control therefor
    • F15B2211/755Control of acceleration or deceleration of the output member

Landscapes

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

Abstract

데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치가 제공된다. 상기 데이터 저장 시스템은 순서대로 배열된 제1 내지 제m 워드 라인과, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하는 비휘발성 메모리 장치, 제1 내지 제m-1 데이터를 이용하여 제1 RAID 패러티를 생성하는 RAID 컨트롤러, 상기 RAID 컨트롤러와 연결되고, 상기 비휘발성 메모리 장치에 억세스할 수 있는 억세스 컨트롤러를 포함하되, 상기 억세스 컨트롤러는 상기 제1 내지 제m-1 데이터를 상기 제1 내지 제m-1 페이지에 프로그램하고, 상기 제1 RAID 패러티를 상기 제m 페이지에 프로그램한다.

Description

데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치{Data storage system, memory controller, and nonvolatile memory device}
본 발명은 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치에 관한 것이다.
RAID(Redundant Array of Inexpensive Disk)는 중요한 데이터를 가지고 있는 서버에 주로 사용되며, 동일한 데이터를 다른 위치에 중복해서 저장하는 방법이다. RAID를 이용함으로써 입출력 작업의 균형을 이룰 수 있고 서버의 전체적인 성능이 개선된다.
또한, 최근 서버로 HDD(Hard Disk Driver) 대신 SSD(Solid State Driver)를 사용하고 있다. SSD에 사용되는 반도체 메모리는 NAND 플래시일 수 있다. 그런데, NAND 플래시는 프로그램/이레이즈 싸이클(P/E cycle)이 증가함에 따라 신뢰성이 떨어질 수 있다.
본 발명이 해결하려는 과제는, 프로그램/이레이즈 싸이클이 증가하더라도 신뢰성을 보장할 수 있는 데이터 저장 시스템을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 프로그램/이레이즈 싸이클이 증가하더라도 신뢰성을 보장할 수 있는 메모리 컨트롤러를 제공하는 것이다.
본 발명이 해결하려는 또 다른 과제는, 프로그램/이레이즈 싸이클이 증가하더라도 신뢰성을 보장할 수 있는 비휘발성 메모리 장치를 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 데이터 저장 시스템의 일 태양은 순서대로 배열된 제1 내지 제m 워드 라인과, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하는 비휘발성 메모리 장치, 제1 내지 제m-1 데이터를 이용하여 제1 RAID 패러티를 생성하는 RAID 컨트롤러, 상기 RAID 컨트롤러와 연결되고, 상기 비휘발성 메모리 장치에 억세스할 수 있는 억세스 컨트롤러를 포함하되, 상기 억세스 컨트롤러는 상기 제1 내지 제m-1 데이터를 상기 제1 내지 제m-1 페이지에 프로그램하고, 상기 제1 RAID 패러티를 상기 제m 페이지에 프로그램한다.
상기 과제를 해결하기 위한 본 발명의 메모리 컨트롤러의 일 태양은 제1 내지 제m-1 데이터를 이용하여 제1 RAID 패러티를 생성하는 RAID 컨트롤러, 순서대로 배열된 제1 내지 제m 워드 라인과, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하는 비휘발성 메모리 장치에 억세스할 수 있고, 상기 RAID 컨트롤러와 연결된 억세스 컨트롤러를 포함하되, 상기 억세스 컨트롤러는 상기 제1 내지 제m-1 데이터를 상기 제1 내지 제m-1 페이지에 프로그램하고, 상기 제1 RAID 패러티를 상기 제m 페이지에 프로그램한다.
상기 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 일 태양은 순서대로 배열된 제1 내지 제m 워드 라인, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하고, 상기 제1 내지 제m-1 페이지에 제1 내지 제m-1 데이터가 저장되고, 제m 페이지에는 상기 제1 내지 제m-1 데이터를 이용하여 생성된 제1 RAID 패러티가 저장된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 비휘발성 메모리 장치의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법을 설명하기 위한 블록도이다.
도 4는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 일 예를 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 다른 예를 설명하기 위한 도면이다.
도 7는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 또 다른 예를 설명하기 위한 도면이다.
도 8은 도 1의 메모리 컨트롤러의 일 예를 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템을 설명하기 위한 블록도이다. 도 2는 도 1의 비휘발성 메모리 장치의 구성을 설명하기 위한 블록도이다. 도 3은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법을 설명하기 위한 블록도이다.
우선, 도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템(100)은 내부 RAID(internal RAID)와 ECC(Error Correction Code)를 채택할 수 있으나, 이에 한정되는 것은 아니다. 여기서 외부 RAID(external RAID)는 다수의 독립적인 반도체 칩에 동일한 데이터를 중복하여 저장하는 것을 의미하고, 내부 RAID는 하나의 반도체 칩 내에 동일한 데이터를 중복하여 저장하는 것을 의미할 수 있다.
또한, 이하에서 설명될 RAID는 다양한 레벨일 수 있다. 예를 들어, RAID 레벨 0(Striped set without parity or Striping), RAID 레벨 1(Mirrored set without parity or Mirroring), RAID 레벨 2(Hamming code parity), RAID 레벨 3(Striped set with dedicated parity, bit interleaved parity, or byte level parity), RAID 레벨 4(Block level parity), RAID 레벨 5(Striped set with distributed parity or interleave parity), RAID 레벨 6(Striped set with dual distributed parity), RAID 레벨 7, RAID 레벨 10, 및 RAID 레벨 53 중에서 어느 하나 또는 상기 RAID 레벨들 중에서 적어도 2개를 혼합한(merged) RAID 레벨(예컨대, RAID 0+1, RAID 1+0, RAID 5+0, RAID 5+1, 또는 RAID 0+1+5)일 수도 있다.
이러한 데이터 저장 시스템(100)은 메모리 컨트롤러(20), 비휘발성 메모리 장치(30) 등을 포함할 수 있다.
메모리 컨트롤러(20)는 리드 동작시 호스트(10)로부터 출력된 리드 명령에 응답하여, 비휘발성 메모리 장치(30)로부터 리드된 데이터를 호스트(10)로 전송할 수 있다.
또한, 메모리 컨트롤러(20)는 프로그램 동작시(또는, 라이트 동작시) 호스트(10)로부터 출력된 프로그램 명령(또는 라이트 명령)에 응답하여, 호스트(10)로부터 출력된 데이터를 비휘발성 메모리 장치(30)에 라이트(또는 프로그램)할 수 있다.
또한, 메모리 컨트롤러(20)는 호스트(10)로부터 출력되는 데이터를 기초로 RAID(Redundant Array of Inexpensive Disk) 패러티(parity)를 생성할 수 있다. 예를 들어, 다수의 데이터를 XOR 연산하여 RAID 패러티를 생성할 수 있다. 또한, 메모리 컨트롤러(20)가 데이터와 RAID 패러티를 비휘발성 메모리 장치(30)에 저장하는 방법에 대해서는 도 3 내지 도 7를 참조하여 자세히 후술한다. 메모리 컨트롤러(20)의 예시적 구조에 대해서는 도 8을 참조하여 자세히 후술한다.
여기서, 도 2를 참조하면, 비휘발성 메모리 장치(30)는 다수의 메모리 블록(BLK1~BLKn, 단, n은 자연수)을 포함한다. 도시된 것과 같이, 다수의 메모리 블록(BLK1~BLKn)은 채널(CH1~CHn, 단, n은 자연수)에 대응될 수 있다. 여기서, 채널(CH1~CHn)은 데이터 및 RAID 패러티가 전송되는 적어도 하나의 데이터 라인을 의미할 수 있다.
또한, 다수의 메모리 블록(BLK1~BLKn)은 웨이(WAY1~WAYi, 단, i는 자연수)에 대응될 수 있다. 여기서, 웨이(WAY1~WAYi)는 메모리 뱅크(memory bank)일 수 있다. 따라서, 도 2에 도시된 i개의 웨이는, i개의 메모리 뱅크가 메모리 컨트롤러(20)에 연결될 수 있음을 의미할 수 있다.
또한, 각 메모리 블록(BLK1~BLKn)은 다수의 페이지(P1~Pm, 단, m은 자연수)를 포함할 수 있다. 예를 들어, 비휘발성 메모리 장치에 사용되는 메모리 셀이 SLC(Single Level Cell)일 경우 각 메모리 블록(BLK1~BLKn)은 64개의 페이지를 포함할 수 있고, 사용되는 메모리 셀이 MLC(Multi Level Cell)일 경우 각 메모리 블록(BLK1~BLKn)은 128개의 페이지를 포함할 수 있고, 사용되는 메모리 셀이 TLC(Triple Level Cell)일 경우 각 메모리 블록(BLK1~BLKn)은 192개의 페이지를 포함할 수 있다.
비휘발성 메모리 장치(30)에 사용되는 메모리 셀은 예를 들어, 플래시 메모리(flash memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), OUM(Ovonic Unified Memory)라고도 불리는 PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM 또는 ReRAM), 나노튜브 RRAM (Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
여기서, 도 3을 참조하면, 전술한 것과 같이, 비휘발성 메모리 장치(30) 내에는, 순서대로 배열된 제1 내지 제m 워드 라인(WL1~WLm)과, 제1 내지 제m 워드 라인(WL1~WLm)에 각각 연결된 제1 내지 제m 페이지(P1~Pm)를 포함할 수 있다. 즉, 제1 내지 제m 페이지(P1~Pm) 각각은 서로 다른 워드 라인(WL1~WLm)에 연결될 수 있다. 제1 내지 제m 페이지(P1~Pm) 각각은 서로 다른 제1 내지 제m 메모리 블록(BLK1~BLKn) 내에 배치될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 제1 내지 제m 페이지(P1~Pm)가 하나의 메모리 블록(BLK1~BLKn) 내에 배치될 수도 있다.
여기서, 메모리 컨트롤러(20)는 제1 내지 제m-1 데이터(D1~Dm-1)를 이용하여 제1 RAID 패러티(PRT1)를 생성할 수 있다. 예를 들어, 제1 내지 제m-1 데이터(D1~Dm-1)를 XOR 연산하여 제1 RAID 패러티(PRT1)를 생성할 수 있다. 메모리 컨트롤러(20)는 제1 내지 제m-1 데이터(D1~Dm-1)를 제1 내지 제m-1 페이지(P1~Pm-1)에 프로그램하고, 제1 RAID 패러티(PRT1)를 제m 페이지(Pm)에 프로그램한다.
이와 같이, 제1 내지 제m-1 데이터(D1~Dm-1)와 제1 RAID 패러티(PRT1)를 서로 다른 워드 라인(WL1~WLm-1, WLm)에 연결된 페이지(P1~Pm-1, Pm)에 저장하는 이유는 다음과 같다.
비휘발성 메모리 셀(예를 들어, NAND 플래시 메모리 셀)은 메모리 블록(BLK1~BLKn) 내의 위치에 따라서 신뢰성이 변할 수 있다. 예를 들어, 각 메모리 블록(BLK1~BLKn)의 중간에 위치하는 페이지는, 다른 위치에 위치하는 페이지에 비해서 신뢰성이 좋지 않을 수 있다. 즉, 특정한 워드 라인과 연결되어 있는 페이지의 특성이 좋지 않을 수 있다. 이러한 현상은 프로그램/이레이즈 싸이클이 증가할수록 더욱 심해질 수 있다.
그런데, 제1 내지 제m-1 데이터(D1~Dm-1)와, 제1 RAID 패러티(PRT1) 모두를 동일한 워드 라인(예를 들어, WL1)과 연결된 페이지에 저장한 경우, 워드 라인(WL1)과 연결된 페이지(P1)의 특성이 현저히 안 좋아진다면, 데이터 복구가 불가능하다.
하지만, 본 발명의 몇몇 실시예에서와 같이, 제1 내지 제m-1 데이터(D1~Dm-1)와 제1 RAID 패러티(PRT1)를 서로 다른 워드 라인(WL1~WLm-1, WLm)에 연결된 페이지(P1~Pm-1, Pm)에 저장하는 경우에는 데이터 복구가 용이하다. 예를 들어, 제1 데이터(D1)에 에러가 발생하더라도, 나머지 워드 라인(WL2~WLm)과 연결된 페이지(P2~Pm)에 저장된 제2 내지 제m-1 데이터(D2~Dm-1)와, 제1 RAID 패러티(PRT1)를 이용하여 제1 데이터(D1)를 복구할 수 있다. 따라서, 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템(100)은 프로그램/이레이즈 싸이클이 증가하더라도 신뢰성을 보장할 수 있다. 따라서, 데이터 저장 시스템(100)의 수명은 증가될 수 있다.
이러한 데이터 저장 시스템(100)은 SSD(Solid State Driver)를 구성할 수 있다.
또는, 예시적으로, 데이터 저장 시스템(100)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 데이터 저장 시스템(100)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 것이다.
다른 예로서, 데이터 저장 시스템(100)은 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공된다.
예시적으로, 데이터 저장 시스템(100)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 데이터 저장 시스템(100)은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
도 4는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 일 예를 설명하기 위한 도면이다.
도 4를 참조하면, 비휘발성 메모리 장치(30)는 순서대로 배열된 제1 내지 제m 메모리 블록(BLK1~BLKm)과, 제1 내지 제m 메모리 블록(BLK1~BLKm)을 가로지르고 순서대로 배열된 제1 내지 제m 워드 라인(WL1~WLm)과, 제1 내지 제m 블록(BLK1~BLKm)과 제1 내지 제m 워드 라인(WL1~WLm)이 교차되는 영역에 정의되는 m*m개의 페이지를 포함할 수 있다. 도 4에서는 예시적으로, 메모리 블록(BLK1~BLKn)의 개수와, 워드 라인(WL1~WLm)의 개수가 각각 m개인 경우를 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 1개의 워드 라인(예를 들어, WLm)에, m과 다른 s(단, s는 자연수)개의 페이지가 연결될 수 있다.
이하에서, 설명의 편의를 위해서, 예를 들어, 제1 워드 라인(WL1)과 제1 메모리 블록(BLK1)이 교차되는 영역에 정의되는 페이지를 P(WL1, BLK1)로 기재하기로 한다.
프로그램 순서는 화살표 방향으로(즉, 도면의 좌측에서 우측으로) 진행될 수 있다. 즉, 제1 워드 라인(WL1)에 대응되는 페이지(P(WL1, BLK1)~P(WL1, BLKm))가 프로그램되고, 이어서, 제2 워드 라인(WL2)에 대응되는 페이지(P(WL2, BLK1)~P(WL2, BLKm))가 프로그램된다. 이와 같은 방식으로, 제m-1 워드 라인(WLm-1)에 대응되는 페이지(P(WLm-1, BLK1)~P(WLm-1, BLKm))까지 프로그램된다.
이어서, 제m 워드 라인(WLm)에 대응되는 페이지(P(WLm, BLK1)~P(WLm, BLKm))에, 제1 내지 제m RAID 패러티(PRT1~PRTm)가 프로그램된다. 도시된 것과 같이, PRT2, PRT3, PRT4, PRT5, ~, PRTm, PRT1 순서로 프로그램될 수 있다.
예를 들어, 화살표 A를 참조하면, 제1 RAID 패러티(PRT1)는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 이용하여 생성될 수 있다. 예를 들어, 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 XOR하여, 제1 RAID 패러티(PRT1)가 생성될 수 있다.
화살표 B를 참조하면, 제2 RAID 패러티(PRT2)는 제1 내지 제m-1 데이터(D2(1)~D2(m-1))를 이용하여 생성될 수 있다. 예를 들어, 제1 내지 제m-1 데이터(D2(1)~D2(m-1))를 XOR하여, 제2 RAID 패러티(PRT2)가 생성될 수 있다.
화살표 C를 참조하면, 제3 RAID 패러티(PRT3)는 제1 내지 제m-1 데이터(D3(1)~D3(m-1))를 이용하여 생성될 수 있다. 예를 들어, 제1 내지 제m-1 데이터(D3(1)~D3(m-1))를 XOR하여, 제3 RAID 패러티(PRT3)가 생성될 수 있다.
이와 같이, 본 발명의 몇몇 실시예에서, 제m 워드 라인(WLm)에 m개의 페이지(P(WLm, BLK1)~P(WLm, BLKm))가 연결되고, 각 페이지(P(WLm, BLK1)~P(WLm, BLKm))에는 제1 내지 제m RAID 패러티(PRT1~PRTm)가 저장될 수 있다.
도 5 및 도 6은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 다른 예를 설명하기 위한 도면이다. 이하에서는 도 4을 이용하여 설명하였던 것과 다른 내용을 위주로 설명한다.
도 4를 참조하면, 제1 RAID 패러티(PRT1)는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 이용하여 생성될 수 있다. 이 때, 제1 내지 제m-1 데이터(D1(1)~D1(m-1))은, 서로 인접한 메모리 블록(BLK1~BLKm)에 저장된다.
반면, 도 5 및 도 6을 참조하면, 제1 RAID 패러티(PRT1)는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 이용하여 생성될 수 있다. 이 때, 제1 내지 제m-1 데이터(D1(1)~D1(m-1))는 서로 떨어진 메모리 블록(BLK1~BLKm) 내에 저장된다. 즉, 제1 내지 제m-1 데이터(D1(1)~D1(m-1)) 중에서, 제q 데이터(단, 1≤q≤m-1, q는 자연수)와 제q+1 데이터는 서로 떨어져 있는 메모리 블록 내에 저장된다.
도 5는 제q 데이터(단, 1≤q≤m-1, q는 자연수)가 저장되는 메모리 블록과, 제q+1 데이터가 저장되는 메모리 블록 사이에는, 1개의 메모리 블록이 배치되는 경우를 도시한다(화살표 D 참조). 예를 들어, D1(1)은 제1 메모리 블록(BLK1)에 저장되고, D1(2)는 제3 메모리 블록(BLK3)에 저장된다.
도 6는 제q 데이터(단, 1≤q≤m-1, q는 자연수)가 저장되는 메모리 블록과, 제q+1 데이터가 저장되는 메모리 블록 사이에는, 2개의 메모리 블록이 배치되는 경우를 도시한다(화살표 E 참조). 예를 들어, D1(1)은 제1 메모리 블록(BLK1)에 저장되고, D1(2)는 제4 메모리 블록(BLK4)에 저장된다.
도 7는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 데이터 저장 방법의 또 다른 예를 설명하기 위한 도면이다. 이하에서는 도 4을 이용하여 설명하였던 것과 다른 내용을 위주로 설명한다.
도 4를 참조하면, 제1 내지 제m RAID 패러티(PRT1~PRTm)는, 하나의 워드 라인(WLm)과 연결된 페이지(P(WLm, BLK1)~P(WLm, BLKm))에 각각 저장된다.
반면, 도 7을 참조하면, 제1 내지 제m RAID 패러티(PRT1~PRTm)는, 서로 다른 워드 라인(WL2~WLm+1)과 연결된 페이지(P1~Pm)에 각각 저장될 수 있다. 도 7에 도시된 것은 예시적인 것에 불과하고, 이에 한정되는 것은 아니다.
도 8은 도 1의 메모리 컨트롤러의 일 예를 설명하기 위한 블록도이다.
도 8을 참조하면, 메모리 컨트롤러(20)는 ROM(101), 메인 프로세서 인터페이스(103), 메인 프로세서(105), 호스트 인터페이스(107), 버퍼 컨트롤러(109), RAID 컨트롤러(110), 억세스 컨트롤러(140), 및 버퍼 메모리(150) 등을 포함할 수 있다.
메인 프로세서(105)는 호스트로부터 출력된 억세스 명령, 예컨대 라이트 명령, 프로그램 명령, 리드 명령, 또는 이레이즈 명령을 해석하고 해석 결과에 따라 각 구성 요소(107, 109, 110, 140, 150 등)의 동작을 제어할 수 있다.
메모리 컨트롤러(20)가 버퍼 컨트롤러(109)를 포함하지 않을 때, 호스트 인터페이스(107)는 호스트와 RAID 컨트롤러(110) 사이에서 인터페이싱 동작을 수행할 수 있다. 반면, 메모리 컨트롤러(20)가 버퍼 컨트롤러(190)를 포함할 때, 호스트 인터페이스(107)는 호스트와 버퍼 컨트롤러(109) 사이에서 인터페이싱 동작을 수행할 수 있다.
호스트로부터 제1 내지 제m-1 데이터(예를 들어, 도 4의 D1(1)~D1(m-1) 참조)가 입력되면, 버퍼 메모리(150)는 호스트로부터 입력되는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 저장할 수 있다.
RAID 컨트롤러(110)는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 이용하여, 제1 RAID 패러티(PRT1)를 생성한다. 예를 들어, RAID 컨트롤러(110)는 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 XOR 연산하여 제1 RAID 패러티(PRT1)를 생성할 수 있으나, 이에 한정되는 것은 아니다.
억세스 컨트롤러(140)는 RAID 컨트롤러(110)와 연결되고, 비휘발성 메모리 장치(30)에 억세스할 수 있다. 비휘발성 메모리 장치(30)가 NAND 플래시 메모리로 구현될 때, 억세스 컨트롤러(140)는 NAND 플래시 컨트롤러로 구현될 수 있다. 억세스 컨트롤러(140)는 전술한 것과 같이, 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 제1 내지 제m-1 페이지(도 4의 P(WL1, BLK1), P(WL2, BLK2), ~, P(WLm-1, BLKm-1) 참조)에 프로그램하고, 제1 RAID 패러티(PRT1)를 제m 페이지(도 4의 P(WLm, BLKm) 참조)에 프로그램할 수 있다.
한편, 버퍼 메모리(150)는 RAID 컨트롤러(110)에서 제1 내지 제m-1 데이터(D1(1)~D1(m-1))를 모두 저장하고 있을 수 있다.
또는, 버퍼 메모리(150) 저장되는 양을 줄이기 위해서, 버퍼 메모리(150)는 XOR 연산된 값을 저장하고 있을 수 있다.
예를 들어, 제1 내지 제m-1 데이터(D1(1)~D1(m-1))가 순서대로 입력된다고 할 때, 제w(단, 1<w≤m-1, w는 자연수) 데이터가 입력되었을 때, 버퍼 메모리(150)는 제1 내지 제w 데이터(D1(1)~D1(w))의 XOR 연산값을 저장할 수 있다. 구체적으로, 제2 데이터(D1(2))가 입력되었을 때, D1(1)D1(2) 가 버퍼 메모리(150)에 저장되고, 제3 데이터(D1(3))가 입력되었을 때, D1(1)D1(2)D1(3)가 버퍼 메모리(150)에 저장될 수 있다. 이와 같은, XOR 연산은 RAID 컨트롤러(110)에서 수행될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 호스트 20: 메모리 컨트롤러
30: 비휘발성 메모리 장치 103: 메인 프로세서 인터페이스
105: 메인 프로세서 107: 호스트 인터페이스
109: 버퍼 컨트롤러 110: RAID 컨트롤러
140: 억세스 컨트롤러 150: 버퍼 메모리

Claims (10)

  1. 순서대로 배열된 제1 내지 제m 워드 라인과, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하는 비휘발성 메모리 장치;
    제1 내지 제m-1 데이터를 이용하여 제1 RAID 패러티를 생성하는 RAID 컨트롤러; 및
    상기 RAID 컨트롤러와 연결되고, 상기 비휘발성 메모리 장치에 억세스할 수 있는 억세스 컨트롤러를 포함하되,
    상기 억세스 컨트롤러는 상기 제1 내지 제m-1 데이터를 상기 제1 내지 제m-1 페이지에 프로그램하고, 상기 제1 RAID 패러티를 상기 제m 페이지에 프로그램하는 데이터 저장 시스템.
  2. 제 1항에 있어서,
    상기 제1 내지 제m 페이지 각각은 서로 다른 제1 내지 제m 메모리 블록 내에 배치되는 데이터 저장 시스템.
  3. 제 2항에 있어서,
    상기 제1 내지 제m 메모리 블록은 순서대로 배열된 데이터 저장 시스템.
  4. 제 2항에 있어서,
    상기 제1 내지 제m-1 데이터 중에서, 제q 데이터(단, 1≤q≤m-1, q는 자연수)와 제q+1 데이터는 서로 떨어져 있는 메모리 블록 내에 저장되는 데이터 저장 시스템.
  5. 제 1항에 있어서,
    상기 제1 내지 제m-1 데이터를 저장하는 버퍼 메모리를 더 포함하는 데이터 저장 시스템.
  6. 제 1항에 있어서,
    상기 제1 내지 제m-1 데이터가 순서대로 입력되고,
    제w(단, 1<w≤m-1, w는 자연수) 데이터가 입력되면, 상기 제1 내지 제w 데이터의 XOR 연산값을 저장하는 버퍼 메모리를 더 포함하는 데이터 저장 시스템.
  7. 제 1항에 있어서,
    상기 제m 워드 라인에 s(단, s은 자연수)개의 페이지가 연결되고, 상기 s개의 페이지에는 제1 내지 제s RAID 패러티가 저장되는 메모리 장치.
  8. 제 1항에 있어서,
    상기 데이터 저장 시스템은 SSD(Solid State Driver)인 데이터 저장 시스템.
  9. 제1 내지 제m-1 데이터를 이용하여 제1 RAID 패러티를 생성하는 RAID 컨트롤러; 및
    순서대로 배열된 제1 내지 제m 워드 라인과, 상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하는 비휘발성 메모리 장치에 억세스할 수 있고, 상기 RAID 컨트롤러와 연결된 억세스 컨트롤러를 포함하되,
    상기 억세스 컨트롤러는 상기 제1 내지 제m-1 데이터를 상기 제1 내지 제m-1 페이지에 프로그램하고, 상기 제1 RAID 패러티를 상기 제m 페이지에 프로그램하는 메모리 컨트롤러.
  10. 순서대로 배열된 제1 내지 제m 워드 라인; 및
    상기 제1 내지 제m 워드 라인에 각각 연결된 제1 내지 제m 페이지를 포함하고,
    상기 제1 내지 제m-1 페이지에 제1 내지 제m-1 데이터가 저장되고, 제m 페이지에는 상기 제1 내지 제m-1 데이터를 이용하여 생성된 제1 RAID 패러티가 저장되는 비휘발성 메모리 장치.
KR1020120005326A 2012-01-17 2012-01-17 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치 KR20130084501A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120005326A KR20130084501A (ko) 2012-01-17 2012-01-17 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치
US13/739,417 US20130185483A1 (en) 2012-01-17 2013-01-11 Data storage system, memory controller, nonvolatile memory device, and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120005326A KR20130084501A (ko) 2012-01-17 2012-01-17 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치

Publications (1)

Publication Number Publication Date
KR20130084501A true KR20130084501A (ko) 2013-07-25

Family

ID=48780813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120005326A KR20130084501A (ko) 2012-01-17 2012-01-17 데이터 저장 시스템, 메모리 컨트롤러 및 비휘발성 메모리 장치

Country Status (2)

Country Link
US (1) US20130185483A1 (ko)
KR (1) KR20130084501A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160044289A (ko) * 2014-10-15 2016-04-25 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424930B2 (en) * 2010-09-15 2016-08-23 Sandisk Technologies Llc Apparatus, system, and method for non-volatile storage element programming
US9176810B2 (en) * 2011-05-27 2015-11-03 SanDisk Technologies, Inc. Bit error reduction through varied data positioning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160044289A (ko) * 2014-10-15 2016-04-25 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러

Also Published As

Publication number Publication date
US20130185483A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
US10116336B2 (en) Error correcting code adjustment for a data storage device
US9213598B2 (en) Nonvolatile memory device and method of operating the same
US9323613B2 (en) Parity scheme for a data storage device
US9105333B1 (en) On-chip copying of data between NAND flash memory and ReRAM of a memory die
KR102081584B1 (ko) 메모리 장치 구동 방법 및 메모리 시스템
US8432735B2 (en) Memory system and related method of programming
US9244767B1 (en) Data storage device with in-memory parity circuitry
KR102081581B1 (ko) 메모리 장치 구동 방법
KR20130111821A (ko) Raid 메모리 시스템
KR102565888B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
US9053790B1 (en) Counter for write operations at a data storage device
KR20160112135A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102503169B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20160075174A (ko) 메모리 시스템 및 그 동작방법
KR20160107970A (ko) 메모리 시스템 및 그의 동작방법
US20190096485A1 (en) Controller, semiconductor memory device, and memory system having the same
CN111798910A (zh) 存储装置及其操作方法
KR102429456B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20200001310A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
TWI716381B (zh) 資料處理系統
US10020070B2 (en) Semiconductor memory device and method of operating the same
US20130301340A1 (en) Erasing method of resistive random access memory
KR20200076487A (ko) 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170089069A (ko) 메모리 시스템 및 그의 동작방법
US9478289B1 (en) Semiconductor memory device and operating method thereof

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid