KR20180051881A - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR20180051881A
KR20180051881A KR1020160148780A KR20160148780A KR20180051881A KR 20180051881 A KR20180051881 A KR 20180051881A KR 1020160148780 A KR1020160148780 A KR 1020160148780A KR 20160148780 A KR20160148780 A KR 20160148780A KR 20180051881 A KR20180051881 A KR 20180051881A
Authority
KR
South Korea
Prior art keywords
data
index information
error correction
host
write data
Prior art date
Application number
KR1020160148780A
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 KR1020160148780A priority Critical patent/KR20180051881A/ko
Priority to US15/666,076 priority patent/US10747456B2/en
Publication of KR20180051881A publication Critical patent/KR20180051881A/ko
Priority to US16/851,838 priority patent/US20200241752A1/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

메모리 시스템은, 호스트 라이트 데이터를 수신하고, 상기 호스트 라이트 데이터가 미리 설정된 패턴들 중 어느 패턴에 대응하는지를 나타내는 인덱스 정보를 생성하는 인덱스 정보 생성 회로; 상기 인덱스 정보와 상기 호스트 라이트 데이터를 이용해 라이트 데이터를 생성하는 데이터 변형 회로; 및 상기 라이트 데이터와 상기 인덱스 정보를 저장하기 위한 하나 이상의 메모리 장치를 포함할 수 있다.

Description

메모리 시스템 {MEMORY SYSTEM}
본 특허 문헌은 메모리 시스템에 관한 것이다.
반도체 메모리 장치 산업의 초창기에는 반도체 제조 프로세스를 통과한 메모리 칩에서 불량 메모리 셀이 하나도 존재하지 않는 오리지날 굿 다이(original good die)가 웨이퍼(wafer) 상에 다수 분포하였다. 그러나 메모리 장치의 용량이 점차로 증가하면서 불량 메모리 셀이 하나도 존재하지 않는 메모리 장치를 만드는 것이 어려워졌으며, 현재에는 이러한 메모리 장치가 제조될 확률은 없다고 봐도 무방하다. 이러한 상황을 타개하기 위한 하나의 방편으로 메모리 장치의 불량 메모리 셀들을 리던던시 메모리 셀들로 리페어하는 방법이 사용되고 있다.
그리고 또 하나의 방편으로 메모리 시스템에서 에러를 정정하는 에러 정정 회로(ECC 회로)를 사용해 메모리 셀에서 발생하는 에러 및 메모리 시스템의 리드 및 라이트 과정에서 데이터가 전송되면서 발생하는 에러를 정정하고 있다.
본 발명의 실시예들은, 메모리 시스템의 데이터 전송 과정 및 에러 정정 과정에서 남는 여분의 비트들을 이용해 메모리 시스템의 효율성을 높일 수 있다.
본 발명의 일실시예에 따른 메모리 장치는, 호스트 라이트 데이터를 수신하고, 상기 호스트 라이트 데이터가 미리 설정된 패턴들 중 어느 패턴에 대응하는지를 나타내는 인덱스 정보를 생성하는 인덱스 정보 생성 회로; 상기 인덱스 정보와 상기 호스트 라이트 데이터를 이용해 라이트 데이터를 생성하는 데이터 변형 회로; 및 상기 라이트 데이터와 상기 인덱스 정보를 저장하기 위한 하나 이상의 메모리 장치를 포함할 수 있다.
상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로를 더 포함하고, 상기 하나 이상의 메모리 장치에는 상기 에러 정정 코드가 더 저장될 수 있다.
상기 데이터 변형 회로는 상기 인덱스 정보가 상기 호스트 라이트 데이터가 상기 미리 설정된 패턴들 중 어느 것에도 대응하지 않는다는 것을 나타내는 경우에는, 상기 호스트 라이트 데이터를 그대로 상기 라이트 데이터로 생성하고, 그렇지 않은 경우에는, 상기 호스트 라이트 데이터와 상관없이 상기 라이트 데이터를 특정 값으로 생성할 수 있다.
리드 동작시에, 상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고, 상기 데이터 변형 회로는 상기 에러가 정정된 인덱스 정보가 상기 에러가 정정된 리드 데이터가 상기 미리 설정된 패턴들 중 어느 패턴에도 대응하지 않는다는 것을 나타내는 경우에는 호스트 리드 데이터를 상기 에러가 정정된 리드 데이터와 동일하게 생성하고, 그렇지 않은 경우에는 상기 인덱스 정보가 나타내는 패턴으로 상기 호스트 리드 데이터를 생성할 수 있다.
상기 인덱스 정보 생성 회로, 상기 데이터 변형 회로 및 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고, 상기 하나 이상의 메모리 장치는 메모리 모듈에 포함될 수 있다.
본 발명의 다른 실시예에 따른 메모리 시스템은, 하나 이상의 데이터 그룹을 포함하는 호스트 라이트 데이터를 수신하고, 데이터 그룹별로 데이터를 반전 또는 비반전해 라이트 데이터를 생성하고, 상기 하나 이상의 데이터 그룹의 데이터의 반전 여부를 나타내는 인덱스 정보를 생성하는 데이터 반전 회로; 상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로; 및 상기 라이트 데이터, 상기 인덱스 정보 및 상기 에러 정정 코드를 저장하기 위한 하나 이상의 메모리 장치를 포함할 수 있다.
상기 인덱스 정보 생성 회로는, 상기 하나 이상의 데이터 그룹별로 '0' 비트의 개수가 임계값 이상인지를 판단해 데이터의 반전 여부를 결정할 수 있다.
리드 동작시에, 상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고, 상기 데이터 반전 회로는 상기 에러가 정정된 인덱스 정보에 따라 상기 에러가 정정된 리드 데이터를 반전 또는 비반전해 호스트 리드 데이터를 생성할 수 있다.
상기 데이터 반전 회로와 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고, 상기 하나 이상의 메모리 장치는 메모리 모듈에 포함될 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템은, 호스트 라이트 데이터를 서로 다른 방식으로 스크램블하는 다수의 데이터 스크램블러; 상기 다수의 데이터 스크램블러의 스크램블 결과중 하나를 라이트 데이터로 선택하고, 상기 다수의 데이터 스크램블러 중 상기 라이트 데이터를 생성한 데이터 스크램블러를 나타내는 인덱스 정보를 생성하는 스크램블 선택 회로; 및 상기 라이트 데이터와 상기 인덱스 정보를 저장하기 위한 하나 이상의 메모리 장치를 포함할 수 있다.
상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로를 더 포함하고, 상기 하나 이상의 메모리 장치에는 상기 에러 정정 코드가 더 저장될 수 있다.
상기 스크램블 선택 회로는 상기 다수의 데이터 스크램블러의 스크램블 결과 중 '0'의 비트가 가장 많은 스크램블 결과를 상기 라이트 데이터로 선택할 수 있다.
리드 동작시에, 상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고, 상기 스크램블 선택 회로는 상기 다수의 데이터 스크램블러 중 에러가 정정된 인덱스 정보에 대응하는 데이터 스크램블러로 에러가 정정된 리드 데이터를 전달하고, 상기 에러가 정정된 인덱스 정보에 대응하는 데이터 스크램블러는 상기 에러가 정정된 리드 데이터를 디스크램블해 호스트 리드 데이터를 생성할 수 있다.
상기 다수의 데이터 스크램블러, 상기 스크램블 선택 회로 및 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고, 상기 하나 이상의 메모리 장치는 메모리 모듈에 포함될 수 있다.
본 발명의 실시예들에 따르면, 메모리 시스템의 데이터 전송 과장 및 에러 정정 과정에서 남는 여분의 비트들을 효율적으로 사용할 수 있다.
도 1은 본 발명의 제1실시예에 따른 메모리 시스템(100)의 구성도.
도 2는 본 발명의 제2실시예에 따른 메모리 시스템(200)의 구성도
도 3은 본 발명의 제3실시예에 따른 메모리 시스템(300)의 구성도
도 4는 본 발명의 제4실시예에 따른 메모리 시스템(400)의 구성도
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1은 본 발명의 제1실시예에 따른 메모리 시스템(100)의 구성도이다. 도 1에서는 메모리 시스템(100)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 콘트롤러(110)와 메모리 모듈(120)을 포함할 수 있다. 메모리 콘트롤러(110)는 호스트(host)의 요청에 따라 메모리 모듈(120)의 리드(read) 및 라이트(write) 등의 동작을 제어할 수 있다. 메모리 콘트롤러(110)는 에러 정정 회로(111, ECC 회로)를 포함할 수 있다. 메모리 모듈(120)은 적어도 하나 이상의 메모리 장치(121~129)를 포함할 수 있다. 여기서는 메모리 모듈(120)이 9개의 메모리 장치들(121~129)을 포함하는 것을 예시했다. 메모리 장치들(121~129)은 DRAM, PCRAM(Phase Change Random Access Memory), Flash memory 등 모든 종류의 메모리 중 하나일 수 있다. 메모리 모듈은 DIMM(Dual In-Line Memory Module) 타입일 수 있다.
이제 라이트 동작과 리드 동작시의 메모리 시스템(100)에서의 데이터의 흐름에 대해 알아보기로 한다. 여기서 한번의 라이트 동작마다 라이트되고 리드되는 데이터는 512비트라고 가정하기로 한다. 즉, 호스트 데이터(HOST_DATA)는 512비트라고 가정하기로 한다.
라이트 동작
라이트 동작시에 메모리 콘트롤러(110)의 에러 정정 회로(111)는 호스트 라이트 데이터(HOST_DATA)를 이용해 에러를 감지 및 정정하기 위한 에러 정정 코드(ECC)를 생성할 수 있다. 예를 들어, 512비트의 호스트 라이트 데이터(HOST_DATA)를 이용해 64비트의 에러 정정 코드(ECC)를 생성할 수 있다. 그리고 512비트의 라이트 데이터(DATA)와 64비트의 에러 정정 코드(ECC)가 메모리 모듈(120)로 전달되어 메모리 모듈(120)의 메모리 장치들(121~129)에 라이트될 수 있다. 라이트 동작시에 라이트 데이터(DATA)는 호스트 라이트 데이터(HOST_DATA)와 동일한 데이터일 수 있다. 메모리 모듈(120)이 9개의 메모리 장치들(121~129)을 포함하므로 하나의 메모리 장치마다 64비트의 라이트 데이터(DATA) 또는 에러 정정 코드(ECC)가 저장될 수 있다. 예를 들어, 메모리 장치들(121~129) 각각이 8개의 데이터 패드를 포함하는 경우에 8개의 데이터 패드 각각에 직렬로 정렬된 8비트의 라이트 데이터(DATA) 또는 에러 정정 코드(ECC)가 입력되어, 메모리 장치들(121~129)마다 64비트의 라이트 데이터(DATA) 또는 에러 정정 코드(ECC)가 저장될 수 있다.
리드 동작
리드 동작시에 메모리 모듈(120)의 메모리 장치들(121~129)로부터 512비트의 리드 데이터(DATA)와 64비트의 에러 정정 코드(ECC)가 리드되어 메모리 콘트롤러(110)의 에러 정정 회로(111)로 전달될 수 있다. 에러 정정 회로(111)는 에러 정정 코드(ECC)를 이용해 리드 데이터(DATA)의 에러를 정정해, 에러가 정정된 리드 데이터인 호스트 리드 데이터(HOST_DATA)를 호스트로 전달할 수 있다. 리드 데이터(DATA)의 에러가 없는 경우에는 리드 데이터(DATA)와 호스트 리드 데이터(HOST_DATA)는 동일한 데이터일 수 있다.
메모리 시스템(100)에서 데이터 전송 과정에서 에러가 발생할 확률이 높지 않은 경우에 에러 정정 코드(ECC)의 비트 수를 줄일 수 있다. 예를 들어, 512비트의 리드 데이터(DATA)의 에러를 정정하기 위해 64비트의 에러 정정 코드(ECC)를 사용하지 않고, 32비트의 에러 정정 코드(ECC)를 사용하거나, 48비트의 에러 정정 코드(ECC)를 사용하는 등 에러 정정 코드(ECC)의 비트 수는 에러 정정 능력에 따라 다양하게 조절될 수 있다.
에러 정정 코드(ECC)의 비트 수를 줄이는 경우에, 사용되지 않는 여분의 비트가 발생하게 되는데, 이 경우 여분의 비트는 모두 '0'으로 제로 패딩(zero padding)하는 것이 일반적이다. 따라서, 제로 패딩되는 여분의 비트들을 보다 효율적으로 활용하기 위한 방안이 요구될 수 있다.
도 2는 본 발명의 제2실시예에 따른 메모리 시스템(200)의 구성도이다. 도 2에서는 메모리 시스템(200)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 2를 참조하면, 메모리 시스템(200)은 메모리 콘트롤러(210)와 메모리 모듈(120)을 포함할 수 있다. 메모리 콘트롤러(210)는 호스트의 요청에 따라 메모리 모듈(120)의 리드 및 라이트 동작 등을 제어할 수 있다.
메모리 콘트롤러(210)는 호스트 라이트 데이터(HOST_DATA)를 이용해 인덱스 정보(INDEX)를 생성하는 인덱스 정보 생성 회로(211), 인덱스 정보(INDEX)를 이용해 호스트 데이터(HOST_DATA)와 데이터(DATA) 간 데이터 변형 동작을 수행하는 데이터 변형 회로(212) 및 에러 정정 회로(213)를 포함할 수 있다.
이제 라이트 동작과 리드 동작시의 메모리 시스템(200)에서의 데이터의 흐름에 대해 알아보기로 한다. 여기서 한번의 라이트 동작시마다 라이트되고 리드되는 데이터는 512비트라고 가정하기로 한다. 즉, 호스트 데이터(HOST_DATA)는 512비트라고 가정하기로 한다.
라이트 동작
라이트 동작시에 인덱스 정보 생성 회로(211)는 호스트 라이트 데이터(HOST_DATA)를 이용해 인덱스 정보(INDEX)를 생성할 수 있다. 인덱스 정보(INDEC)는 호스트 라이트 데이터(HOST_DATA)가 미리 설정된 패턴들 중 어느 패턴에 대응하는지를 나타내는 정보일 수 있다. 하기의 표 1에 호스트 라이트 데이터(HOST_DATA)에 따라 인덱스 정보(INDEX)가 어떻게 생성되는지를 나타냈다.
HOST_DATA INDEX
대응 패턴 없음 000
00000000...00000000 001
11111111...11111111 010
01010101...01010101 011
10101010...10101010 100
11110000...11110000 101
00001111...00001111 110
표 1을 참조하면, 호스트 라이트 데이터(HOST_DATA)가 모두 '0'인 패턴을 가지는 경우에 인덱스 정보(INDEX)는 '001'로 생성되고, 호스트 라이트 데이터(HOST_DATA)가 '0101...'의 패턴을 가지는 경우에 인덱스 정보(INDEX)는 '011'로 생성되는 것을 확인할 수 있다. 또한, 호스트 라이트 데이터(HOST_DATA)가 미리 설정된 패턴들 중 어느 패턴에도 대응하지 않는 경우에 인덱스 정보(INDEX)는 '000'으로 생성될 수 있다.
데이터 변형 회로(212)는 인덱스 정보(INDEX)와 호스트 라이트 데이터(HOST_DATA)를 이용해 라이트 데이터(DATA)를 생성할 수 있다. 인덱스 정보(INDEX)가 '000'인 경우에 라이트 데이터(DATA)는 호스트 라이트 데이터(HOST_DATA)와 동일하게 생성될 수 있다. 인덱스 정보(INDEX)가 '000'이외의 다른 값을 가지는 경우에, 라이트 데이터(DATA)는 호스트 라이트 데이터(HOST_DATA)와 상관 없이 특정 값으로 생성될 수 있다. 예를 들어, 라이트 데이터(DATA)가 모두 '0'의 값을 가지도록 제로 패딩(zero padding)될 수 있다. 이는 인덱스 정보(INDEX)만으로 호스트 라이트 데이터(HOST_DATA)가 무슨 값인지를 나타낼 수 있기 때문이다.
에러 정정 회로(213)는 라이트 데이터(DATA)와 인덱스 정보(INDEX)를 이용해 에러 정정 코드(ECC)를 생성할 수 있다. 에러 정정 코드(ECC)의 비트수는 (라이트 데이터(DATA)의 비트수 + 인덱스 정보(INDEX)의 비트수 + 에러 정정 코드(ECC)의 비트수)가 메모리 모듈(120)에 한번에 저장 가능한 576비트보다 작게 조절될 수 있다. 라이트 동작시에 에러 정정 회로(213)로 입력되는 라이트 데이터(DATA) 및 인덱스 정보(INDEX)와 에러 정정 회로(213)로부터 출력되는 라이트 데이터(DATA') 및 인덱스 정보(INDEX')는 동일할 수 있다. 572의 비트 중 라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)를 이외에 남는 비트가 존재하는 경우에 이들은 제로 패딩될 수 있다.
라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)는 메모리 모듈(120)로 전달되어 메모리 모듈(120)의 메모리 장치들(121~129)에 저장될 수 있다.
리드 동작
리드 동작시에 메모리 모듈(120)의 메모리 장치들(121~129)로부터 리드 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)가 리드되어 메모리 콘트롤러(210)의 에러 정정 회로(213)로 전달될 수 있다. 에러 정정 회로(213)는 에러 정정 코드(ECC)를 이용해 리드 데이터(DATA')와 인덱스 정보(INDEX')의 에러를 정정하고, 에러가 정정된 리드 데이터(DATA)와 에러가 정정된 인덱스 정보(INDEX)를 생성할 수 있다. 리드 데이터(DATA')와 인덱스 정보(INDEX')에 에러가 존재하지 않는 경우에는 리드 데이터(DATA')와 인덱스 정보(INDEX')는 리드 데이터(DATA)와 인덱스 정보(INDEX)와 동일할 수 있다.
데이터 변형부(212)는 에러 정정된 인덱스 정보(INDEX)가 '000'인 경우에 에러 정정된 리드 데이터(DATA)와 동일하게 호스트 리드 데이터(HOST_DATA)를 생성할 수 있다. 그러나 에러 정정된 인덱스 정보(INDEX)가 '000'이외의 값을 가지는 경우에는, 에러 정정된 리드 데이터(DATA)의 값과 상관없이 에러 정정된 인덱스 정보(INDEX)가 나타내는 패턴대로 호스트 리드 데이터(HOST_DATA)를 생성할 수 있다. 예를 들어, 에러 정정된 인덱스 정보(INDEX)가 '101'인 경우에 호스트 리드 데이터(HOST_DATA)는 '11110000...11110000'으로 생성될 수 있다.
그리고 데이터 변형부(212)에서 생성된 호스트 리드 데이터(HOST_DATA)가 호스트로 전달될 수 있다.
도 2의 메모리 시스템(200)에서는 메모리 시스템(200)의 여분의 비트가 인덱스 정보(INDEX)로 사용되고, 인덱스 정보(INDEX)의 사용에 의해 메모리 모듈(120)에 보다 단순한 패턴의 데이터가 저장될 수 있다. 본래의 데이터가 아닌 단순한 패턴(예, '000...000')의 데이터를 메모리 모듈(120)에 저장하는 것에 의해 메모리 모듈(120)의 라이트 및 리드 동작에 소요되는 전류량을 줄일 수 있다.
예를 들어, 메모리 장치들(121~129)이 PCRAM인 경우에, 메모리 장치들(121~129)에 '0' 데이터가 라이트되는지 '1' 데이터가 라이트되는지에 따라 라이트 동작의 전류 소모 및 메모리 장치들(121~129)의 수명이 달라지는데, 인덱스 정보(INDEX)를 사용하는 것에 의해 이를 보다 유리하게 제어할 수 있다.
또한, 메모리 장치들(121~129)이 DRAM인 경우에, 메모리 장치들(121~129)과 메모리 콘트롤러(210) 간에 전송되는 데이터(DATA') 패턴을 최대한 단순하게 하는 것에 의해 데이터(DATA')의 전송 과정에서 소모되는 전류량을 줄일 수 있다.
여기서는 인덱스 정보(INDEX)의 비트 수를 3비트로 예시하였지만, 인덱스 정보(INDEX)의 비트 수 및 인덱스 정보(INDEX)가 나타내는 호스트 데이터(HOST_DATA)의 패턴의 가짓수가 이와 다를 수 있음은 당연하다.
또한, 여기서는 인덱스 정보 생성 회로(211), 데이터 변형 회로(212) 및 에러 정정 회로(213)가 모두 메모리 콘트롤러(210)에 포함되는 것을 예시했으나, 이들 중 일부가 메모리 모듈(120)에 포함될 수도 있으며, 이들 중 일부가 생략된 채로 메모리 시스템(200)이 구성될 수도 있음은 당연하다.
도 3은 본 발명의 제3실시예에 따른 메모리 시스템(300)의 구성도이다. 도 3에서는 메모리 시스템(300)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 3을 참조하면, 메모리 시스템(300)은 메모리 콘트롤러(310)와 메모리 모듈(120)을 포함할 수 있다. 메모리 콘트롤러(310)는 호스트의 요청에 따라 메모리 모듈(120)의 리드 및 라이트 동작 등을 제어할 수 있다.
메모리 콘트롤러(310)는 호스트 라이트 데이터(HOST_DATA)를 반전/비반전해 라이트 데이터(DATA)를 생성하고, 반전 여부를 나타내는 인덱스 정보(INDEX)를 생성하는 데이터 반전 회로(311) 및 에러 정정 회로(312)를 포함할 수 있다.
이제 라이트 동작과 리드 동작시의 메모리 시스템(300)에서의 데이터의 흐름에 대해 알아보기로 한다. 여기서 한번의 라이트 동작시마다 라이트되고 리드되는 데이터는 512비트라고 가정하기로 한다. 즉, 호스트 데이터(HOST_DATA)는 512비트라고 가정하기로 한다.
라이트 동작
라이트 동작시에 데이터 반전 회로(311)는 호스트 라이트 데이터(HOST_DATA)를 그룹들 별로 반전/비반전해 라이트 데이터(DATA)를 생성하고, 반전/비반전 여부를 나타내는 인덱스 정보(INDEX)를 생성할 수 있다. 데이터 반전 회로(311)는 512비트의 호스트 라이트 데이터(HOST_DATA)를 4개의 128비트 그룹으로 나눈 후, 각각의 그룹별로 반전/비반전 동작을 수행한 후, 각각의 그룹별로 반전/비반전 여부를 나타내는 4비트의 인덱스 정보(INDEX)를 생성할 수 있다. 여기서 반전/비반전 여부는 그룹 내의 128비트의 데이터 중 '1'의 개수가 65개 이상인지/아닌지에 따라 결정될 수 있다. 즉, 128비트의 데이터 중 '1'의 개수가 65개 이상이면 해당 그룹의 데이터는 반전되고 해당 그룹을 나타내는 인덱스 정보(INDEX)의 비트는 '1'로 생성되고, 그렇지 않은 경우에 해당 그룹의 데이터는 비반전되고 해당 그룹을 나타내는 인덱스 정보(INDEX)의 비트는 '0'으로 생성될 수 있다.
예를 들어, 인덱스 정보(INDEX)가 '0000'인 경우에 호스트 라이트 데이터(HOST_DATA)는 전부 비반전되어 라이트 데이터(DATA)가 생성되었음을 나타낼 수 있다. 즉 호스트 라이트 데이터(HOST_DATA)는 라이트 데이터(DATA)와 동일할 수 있다. 인덱스 정보(INDEX)가 '1111'인 경우에 호스트 라이트 데이터(HOST_DATA)는 전부 반전되어 라이트 데이터(DATA)가 생성되었음을 나타낼 수 있다. 또한, 인덱스 정보(INDEX)가 '1100'인 경우에는 호스트 라이트 데이터(HOST_DATA) 중 앞의 256비트는 반전되고 뒤의 256비트는 비반전되어 라이트 데이터(DATA)가 생성되었음을 나타낼 수 있다.
에러 정정 회로(312)는 라이트 데이터(DATA)와 인덱스 정보(INDEX)를 이용해 에러 정정 코드(ECC)를 생성할 수 있다. 에러 정정 코드(ECC)의 비트수는 (라이트 데이터(DATA)의 비트수 + 인덱스 정보(INDEX)의 비트수 + 에러 정정 코드(ECC)의 비트수)가 메모리 모듈(120)에 한번에 저장 가능한 576비트보다 작게 조절될 수 있다. 라이트 동작시에 에러 정정 회로(312)로 입력되는 라이트 데이터(DATA) 및 인덱스 정보(INDEX)와 에러 정정 회로(312)로부터 출력되는 라이트 데이터(DATA') 및 인덱스 정보(INDEX')는 동일할 수 있다. 572의 비트 중 라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)를 이외에 남는 비트가 존재하는 경우에 이들은 제로 패딩될 수 있다.
라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)는 메모리 모듈(120)로 전달되어 메모리 모듈(120)의 메모리 장치들(121~129)에 저장될 수 있다.
리드 동작
리드 동작시에 메모리 모듈(120)의 메모리 장치들(121~129)로부터 리드 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)가 리드되어 메모리 콘트롤러(310)의 에러 정정 회로(312)로 전달될 수 있다. 에러 정정 회로(312)는 에러 정정 코드(ECC)를 이용해 리드 데이터(DATA')와 인덱스 정보(INDEX')의 에러를 정정하고, 에러가 정정된 리드 데이터(DATA)와 에러가 정정된 인덱스 정보(INDEX)를 생성할 수 있다. 리드 데이터(DATA')와 인덱스 정보(INDEX')에 에러가 존재하지 않는 경우에는 리드 데이터(DATA')와 인덱스 정보(INDEX')는 리드 데이터(DATA)와 인덱스 정보(INDEX)와 동일할 수 있다.
데이터 반전 회로(311)는 에러가 정정된 인덱스 정보(INDEX)에 응답해 에러가 정정된 리드 데이터(DATA)를 반전/비반전해 호스트 리드 데이터(HOST_DATA)를 생성할 수 있다. 예를 들어, 인덱스 정보(INDEX)가 '0000'인 경우에 호스트 리드 데이터(HOST_DATA)는 리드 데이터(DATA)와 동일하게 생성될 수 있다. 인덱스 정보(INDEX)가 '0011'인 경우에 리드 데이터(DATA)의 앞 256비트는 비반전되고 뒤 256비트는 반전되어 호스트 리드 데이터(HOST_DATA)가 생성될 수 있다.
그리고 데이터 반전 회로(311)에서 생성된 호스트 리드 데이터(HOST_DATA)가 호스트로 전달될 수 있다.
도 3의 메모리 시스템(300)에서는 메모리 시스템(300)의 여분의 비트가 인덱스 정보로 사용되고, 인덱스 정보(INDEX)의 사용에 의해 라이트 데이터와 리드 데이터에 최대한 '0'이 많이 포함되도록 할 수 있다. 그리고 이에 의해 메모리 장치들(121~129)의 전류 소모 및 수명을 늘릴 수 있다. 도 3에서는 라이트 데이터와 리드 데이터에 최대한 '0'이 많이 포함될 수 있도록 인덱스 정보(INDEX)를 사용하는 것을 예시했지만, 메모리 장치들(121~129)의 종류에 따라 라이트 데이터와 리드 데이터에 최대한 '1'이 많이 포함될 수 있도록 인덱스 정보(INDEX)가 사용될 수도 있음은 당연하다.
여기서는 인덱스 정보(INDEX)의 비트 수를 4비트로 예시하였지만, 인덱스 정보(INDEX)의 비트 수가 이와 다르고, 호스트 라이트 데이터(HOST_DATA)에 포함되는 그룹들의 개수가 4개가 아닐 수도 있음은 당연하다. 또한, 여기서는 데이터 반전 회로(311)와 에러 정정 회로(312)가 모두 메모리 콘트롤러(310)에 포함되는 것을 예시했으나, 이들 중 일부가 메모리 모듈(120)에 포함될 수도 있으며, 이들 중 일부가 생략된 채로 메모리 시스템(300)이 구성될 수도 있음은 당연하다.
도 4는 본 발명의 제4실시예에 따른 메모리 시스템(400)의 구성도이다. 도 4에서는 메모리 시스템(400)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 4를 참조하면, 메모리 시스템(400)은 메모리 콘트롤러(410)와 메모리 모듈(120)을 포함할 수 있다. 메모리 콘트롤러(410)는 호스트의 요청에 따라 메모리 모듈(120)의 리드 및 라이트 동작 등을 제어할 수 있다.
메모리 콘트롤러(410)는 호스트 라이트 데이터(HOST_DATA)를 서로 다른 방식으로 스크램블하는 다수의 데이터 스크램블러(411_0~411_3), 다수의 데이터 스크램블러들(411_0~411_3)의 스크램블 결과들(DATA_S0~DATA_S3) 중 하나를 라이트 데이터(DATA)로 선택하고 선택된 데이터 스크램블러를 나타내는 인덱스 정보(INDEX)를 생성하는 스크램블 선택 회로(412), 및 에러 정정 회로(413)를 포함할 수 있다.
이제 라이트 동작과 리드 동작시의 메모리 시스템(400)에서의 데이터의 흐름에 대해 알아보기로 한다. 여기서 한번의 라이트 동작시마다 라이트되고 리드되는 데이터는 512비트라고 가정하기로 한다. 즉, 호스트 데이터(HOST_DATA)는 512비트라고 가정하기로 한다.
라이트 동작
라이트 동작시에 다수의 데이터 스크램블러들(411_0~411_3)은 서로 다른 방식으로 호스트 라이트 데이터(HOST_DATA)를 스크램블해 스크램블 결과들(DATA_S0~DATA_S3)을 생성할 수 있다. 데이터 스크램블러들(411_0~411_3)이 서로 다른 방식들을 사용하므로, 스크램블 결과들(DATA_S0~DATA_S3)은 모두 다른 값을 가질 수 있다.
스크램블 선택 회로(412)는 스크램블 결과들(DATA_S0~DATA_S3) 중 가장 알맞은 스크램블 결과를 라이트 데이터(DATA)로 선택하고, 선택된 스크램블 결과, 즉 데이터 스크램블러들(411_0~411_3) 중 선택된 스크램블러, 를 나타내는 인덱스 정보(INDEX)를 생성할 수 있다. 여기서 스크램블 선택 회로(412)가 가장 알맞은 스크램블 결과 하나를 선택하는 기준에는 메모리 장치들(121~129)의 전류 소모량을 가장 줄이기 위한 기준, 메모리 장치들(121~129)의 수명을 늘리기 위한 기준, 가장 단순한 패턴의 라이트 데이터가 메모리 장치들(121~129)에 라이트되도록 하기 위한 기준 등 여러 가지가 있을 수 있다. 예를 들어, 스크램블 선택 회로(412)는 스크램블 결과들(DATA_S0~DATA_S3) 중 '0'의 개수가 가장 많은 스크램블 결과를 라이트 데이터(DATA)로 선택해 메모리 장치들(121~129)의 전류 소모를 줄일 수 있다. 하기의 표 2는 선택된 데이터 스크램블러와 인덱스 정보(INDEX)의 대응 관계를 나타낸다.
선택된 데이터 스크램블러 인덱스
411_0 00
411_1 01
411_2 10
411_3 11
에러 정정 회로(413)는 라이트 데이터(DATA)와 인덱스 정보(INDEX)를 이용해 에러 정정 코드(ECC)를 생성할 수 있다. 에러 정정 코드(ECC)의 비트수는 (라이트 데이터(DATA)의 비트수 + 인덱스 정보(INDEX)의 비트수 + 에러 정정 코드(ECC)의 비트수)가 메모리 모듈(120)에 한번에 저장 가능한 576비트보다 작게 조절될 수 있다. 라이트 동작시에 에러 정정 회로(413)로 입력되는 라이트 데이터(DATA) 및 인덱스 정보(INDEX)와 에러 정정 회로(413)로부터 출력되는 라이트 데이터(DATA') 및 인덱스 정보(INDEX')는 동일할 수 있다. 572의 비트 중 라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)를 이외에 남는 비트가 존재하는 경우에 이들은 제로 패딩될 수 있다.
라이트 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)는 메모리 모듈(120)로 전달되어 메모리 모듈(120)의 메모리 장치들(121~129)에 저장될 수 있다.
리드 동작
리드 동작시에 메모리 모듈(120)의 메모리 장치들(121~129)로부터 리드 데이터(DATA'), 인덱스 정보(INDEX') 및 에러 정정 코드(ECC)가 리드되어 메모리 콘트롤러(410)의 에러 정정 회로(413)로 전달될 수 있다. 에러 정정 회로(413)는 에러 정정 코드(ECC)를 이용해 리드 데이터(DATA')와 인덱스 정보(INDEX')의 에러를 정정하고, 에러가 정정된 리드 데이터(DATA)와 에러가 정정된 인덱스 정보(INDEX)를 생성할 수 있다. 리드 데이터(DATA')와 인덱스 정보(INDEX')에 에러가 존재하지 않는 경우에는 리드 데이터(DATA')와 인덱스 정보(INDEX')는 리드 데이터(DATA)와 인덱스 정보(INDEX)와 동일할 수 있다.
스크램블 선택 회로(412)는 데이터 스크램블러들(411_0~411_3) 중 에러가 정정된 인덱스 정보(INDEX)에 대응하는 데이터 스크램블러로 에러가 정정된 리드 데이터(DATA)를 전달할 수 있다.
데이터 스크램블러들(411_0~411_3) 중 스크램블 선택 회로(412)에 의해 선택된 데이터 스크램블러는 에러가 정정된 리드 데이터를 디스크램블해 호스트 리드 데이터(HOST_DATA)를 생성할 수 있다. 그리고 호스트 리드 데이터(HOST_DATA)는 호스트로 전달될 수 있다.
도 4의 메모리 시스템(400)에서는 메모리 시스템(400)의 여분의 비트가 인덱스 정보(INDEX)로 사용되고, 인덱스 정보(INDEX)의 사용에 의해 여러 가지의 스크램블 방식 중 최적의 스크램블 방식을 선택해 사용이 가능해질 수 있다.
여기서는 데이터 스크램블러들(411_0~411_3)의 갯수가 4개이고 인덱스 정보(INDEX)가 2비트인것을 예시했으나, 데이터 스크램블러들(411_0~411_3)의 갯수 및 인덱스 정보(INDEX)의 비트 수가 이와 다를 수 있음은 당연하다. 또한, 여기서는 데이터 스크램블러들(411_0~411_3), 스크램블 선택 회로(412) 및 에러 정정 회로(413)가 모두 메모리 콘트롤러(410)에 포함되는 것을 예시했으나, 이들 중 일부가 메모리 모듈(120)에 포함될 수도 있으며, 이들 중 일부가 생략된 채로 메모리 시스템(400)이 구성될 수도 있음은 당연하다.
본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
200: 메모리 시스템 210: 메모리 콘트롤러
120: 메모리 모듈 211: 인덱스 정보 생성 회로
212: 데이터 변형 회로 213: 에러 정정 회로

Claims (14)

  1. 호스트 라이트 데이터를 수신하고, 상기 호스트 라이트 데이터가 미리 설정된 패턴들 중 어느 패턴에 대응하는지를 나타내는 인덱스 정보를 생성하는 인덱스 정보 생성 회로;
    상기 인덱스 정보와 상기 호스트 라이트 데이터를 이용해 라이트 데이터를 생성하는 데이터 변형 회로; 및
    상기 라이트 데이터와 상기 인덱스 정보를 저장하기 위한 하나 이상의 메모리 장치
    를 포함하는 메모리 시스템.
  2. 제 1항에 있어서,
    상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로를 더 포함하고,
    상기 하나 이상의 메모리 장치에는 상기 에러 정정 코드가 더 저장되는
    메모리 시스템.
  3. 제 2항에 있어서,
    상기 데이터 변형 회로는
    상기 인덱스 정보가 상기 호스트 라이트 데이터가 상기 미리 설정된 패턴들 중 어느 것에도 대응하지 않는다는 것을 나타내는 경우에는, 상기 호스트 라이트 데이터를 그대로 상기 라이트 데이터로 생성하고,
    그렇지 않은 경우에는, 상기 호스트 라이트 데이터와 상관없이 상기 라이트 데이터를 특정 값으로 생성하는
    메모리 시스템.
  4. 제 2항에 있어서,
    리드 동작시에
    상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고,
    상기 데이터 변형 회로는 상기 에러가 정정된 인덱스 정보가 상기 에러가 정정된 리드 데이터가 상기 미리 설정된 패턴들 중 어느 패턴에도 대응하지 않는다는 것을 나타내는 경우에는 호스트 리드 데이터를 상기 에러가 정정된 리드 데이터와 동일하게 생성하고, 그렇지 않은 경우에는 상기 인덱스 정보가 나타내는 패턴으로 상기 호스트 리드 데이터를 생성하는
    메모리 시스템.
  5. 제 2항에 있어서,
    상기 인덱스 정보 생성 회로, 상기 데이터 변형 회로 및 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고,
    상기 하나 이상의 메모리 장치는 메모리 모듈에 포함되는
    메모리 시스템.
  6. 하나 이상의 데이터 그룹을 포함하는 호스트 라이트 데이터를 수신하고, 데이터 그룹별로 데이터를 반전 또는 비반전해 라이트 데이터를 생성하고, 상기 하나 이상의 데이터 그룹의 데이터의 반전 여부를 나타내는 인덱스 정보를 생성하는 데이터 반전 회로;
    상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로; 및
    상기 라이트 데이터, 상기 인덱스 정보 및 상기 에러 정정 코드를 저장하기 위한 하나 이상의 메모리 장치
    를 포함하는 메모리 시스템.
  7. 제 6항에 있어서,
    상기 인덱스 정보 생성 회로는
    상기 하나 이상의 데이터 그룹별로 '0' 비트의 개수가 임계값 이상인지를 판단해 데이터의 반전 여부를 결정하는
    메모리 시스템.
  8. 제 6항에 있어서,
    리드 동작시에
    상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고,
    상기 데이터 반전 회로는 상기 에러가 정정된 인덱스 정보에 따라 상기 에러가 정정된 리드 데이터를 반전 또는 비반전해 호스트 리드 데이터를 생성하는
    메모리 시스템.
  9. 제 6항에 있어서,
    상기 데이터 반전 회로와 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고,
    상기 하나 이상의 메모리 장치는 메모리 모듈에 포함되는
    메모리 시스템.
  10. 호스트 라이트 데이터를 서로 다른 방식으로 스크램블하는 다수의 데이터 스크램블러;
    상기 다수의 데이터 스크램블러의 스크램블 결과중 하나를 라이트 데이터로 선택하고, 상기 다수의 데이터 스크램블러 중 상기 라이트 데이터를 생성한 데이터 스크램블러를 나타내는 인덱스 정보를 생성하는 스크램블 선택 회로; 및
    상기 라이트 데이터와 상기 인덱스 정보를 저장하기 위한 하나 이상의 메모리 장치
    를 포함하는 메모리 시스템.
  11. 제 10항에 있어서,
    상기 라이트 데이터와 상기 인덱스 정보를 이용해 에러 정정 코드를 생성하는 에러 정정 회로를 더 포함하고,
    상기 하나 이상의 메모리 장치에는 상기 에러 정정 코드가 더 저장되는
    메모리 시스템.
  12. 제 11항에 있어서,
    상기 스크램블 선택 회로는
    상기 다수의 데이터 스크램블러의 스크램블 결과 중 '0'의 비트가 가장 많은 스크램블 결과를 상기 라이트 데이터로 선택하는
    메모리 시스템.
  13. 제 11항에 있어서,
    리드 동작시에
    상기 에러 정정 회로는 상기 하나 이상의 메모리 장치로부터 리드된 에러 정정 코드를 이용해 상기 하나 이상의 메모리 장치로부터 리드된 리드 데이터와 인덱스 정보의 에러를 정정하고,
    상기 스크램블 선택 회로는 상기 다수의 데이터 스크램블러 중 에러가 정정된 인덱스 정보에 대응하는 데이터 스크램블러로 에러가 정정된 리드 데이터를 전달하고,
    상기 에러가 정정된 인덱스 정보에 대응하는 데이터 스크램블러는 상기 에러가 정정된 리드 데이터를 디스크램블해 호스트 리드 데이터를 생성하는
    메모리 시스템.
  14. 제 11항에 있어서,
    상기 다수의 데이터 스크램블러, 상기 스크램블 선택 회로 및 상기 에러 정정 회로는 메모리 콘트롤러에 포함되고,
    상기 하나 이상의 메모리 장치는 메모리 모듈에 포함되는
    메모리 시스템.
KR1020160148780A 2016-11-09 2016-11-09 메모리 시스템 KR20180051881A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160148780A KR20180051881A (ko) 2016-11-09 2016-11-09 메모리 시스템
US15/666,076 US10747456B2 (en) 2016-11-09 2017-08-01 Memory controller, memory module, and memory system and operation methods thereof
US16/851,838 US20200241752A1 (en) 2016-11-09 2020-04-17 Memory controller, memory module, and memory system and operation methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160148780A KR20180051881A (ko) 2016-11-09 2016-11-09 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20180051881A true KR20180051881A (ko) 2018-05-17

Family

ID=62063869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160148780A KR20180051881A (ko) 2016-11-09 2016-11-09 메모리 시스템

Country Status (2)

Country Link
US (2) US10747456B2 (ko)
KR (1) KR20180051881A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359066A (zh) * 2018-09-19 2019-02-19 天津七所精密机电技术有限公司 一种应用于声纳数据采集的双控存储设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5265883B2 (ja) * 2007-05-24 2013-08-14 株式会社メガチップス メモリアクセスシステム
JP5162763B2 (ja) * 2007-08-07 2013-03-13 株式会社メガチップス メモリアクセスシステム
US8713330B1 (en) * 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
KR101670922B1 (ko) * 2009-08-07 2016-11-09 삼성전자주식회사 아날로그 신호를 출력하는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101650130B1 (ko) * 2010-05-14 2016-08-24 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법
JP2012089085A (ja) * 2010-10-22 2012-05-10 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US8713404B2 (en) * 2011-07-01 2014-04-29 Apple Inc. Controller interface providing improved data reliability
US8898541B2 (en) * 2011-11-30 2014-11-25 Sony Corporation Storage controller, storage device, information processing system, and storage controlling method
JP5112555B1 (ja) * 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
KR20140114516A (ko) * 2013-03-15 2014-09-29 삼성전자주식회사 메모리 컨트롤러 및 이의 동작 방법
US9405794B2 (en) * 2013-07-17 2016-08-02 Thoughtspot, Inc. Information retrieval system
US9454551B2 (en) * 2014-03-13 2016-09-27 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive
US9876511B2 (en) * 2015-09-11 2018-01-23 Toshiba Memory Corporation Memory system and memory control method
KR20170060203A (ko) * 2015-11-23 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US10747456B2 (en) 2020-08-18
US20180129418A1 (en) 2018-05-10
US20200241752A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
US6076182A (en) Memory fault correction system and method
US10691530B2 (en) Apparatuses and methods for correcting errors and memory controllers including the apparatuses for correcting errors
US10353770B2 (en) Memory system and error correcting method of the same
US20240061590A1 (en) Semiconductor device and semiconductor storage device
US20190279734A1 (en) Memory chip and test system including the same
US11657890B2 (en) Memory system, integrated circuit system, and operation method of memory system
KR20200058048A (ko) 반도체 메모리 장치 및 이를 구비하는 메모리 시스템
KR20200052842A (ko) 메모리 시스템, 메모리 모듈 및 메모리 시스템의 동작 방법
US20200241752A1 (en) Memory controller, memory module, and memory system and operation methods thereof
US9239755B2 (en) Semiconductor device and semiconductor system including the same
KR20180070423A (ko) 메모리 장치
KR20190132238A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20190042360A1 (en) Error correction circuit and memory system including the same
US20200327952A1 (en) Memory system and operation method thereof
KR20140083471A (ko) 메모리, 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10191807B2 (en) Memory systems and operation method thereof
KR20230055614A (ko) 반도체 메모리 장치 및 메모리 시스템
US20140195874A1 (en) Memory system
US11817169B2 (en) Memory, memory system and operation method of memory system
US11537467B2 (en) Memory, memory system, and operation method of memory
US11747985B2 (en) Memory system, integrated circuit system, and operation method of memory system
CN115878048B (zh) 一种用于NAND Flash随机化的随机序列种子生成方法及其系统
US11874734B2 (en) Memory and operation method of the same
CN113053451B (zh) Nandflash内生成softbit的方法、系统、主机以及储存介质
US20240062843A1 (en) Semiconductor device having syndrome generator

Legal Events

Date Code Title Description
A201 Request for examination