KR20180024218A - 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법 - Google Patents

쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법 Download PDF

Info

Publication number
KR20180024218A
KR20180024218A KR1020160109989A KR20160109989A KR20180024218A KR 20180024218 A KR20180024218 A KR 20180024218A KR 1020160109989 A KR1020160109989 A KR 1020160109989A KR 20160109989 A KR20160109989 A KR 20160109989A KR 20180024218 A KR20180024218 A KR 20180024218A
Authority
KR
South Korea
Prior art keywords
memory
data
request
encoder
encoded
Prior art date
Application number
KR1020160109989A
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 KR1020160109989A priority Critical patent/KR20180024218A/ko
Publication of KR20180024218A publication Critical patent/KR20180024218A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템 및 그의 제어 방법을 개시한다. 즉, 본 발명은 PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽음으로써, 워드 라인 및 비트 라인을 통해 발생하는 쓰기 디스터번스로 인한 에러를 최소화할 수 있다.

Description

쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템 및 그의 제어 방법{PCM system for mitigating write disturbance error and control method thereof}
본 발명은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템 및 그의 제어 방법에 관한 것으로, 특히 PCM(Phase-Change Memory) 시스템에서 쓰기 디스터번스(write disturbance)를 줄이기 위해서 메모리 쓰기 요청 시 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리 읽기 요청 시 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽음으로써 쓰기 디스터번스 에러를 줄이는 PCM 시스템 및 그의 제어 방법에 관한 것이다.
PCM(Phase-Change Memory)에서는 셀(cell)의 상태(state)를 이용하여 데이터를 저장한다.
즉, 셀에 데이터를 저장할 때, 1(또는 SET 상태)을 저장하기 위해서는 미리 설정된 약 160℃의 낮은 열을 가하여 결정 상태(crystal state)로 바꾸며, 0(또는 RESET 상태)을 저장하기 위해서는 미리 설정된 약 600℃의 높은 열을 가하여, 비결정질 상태(amorphous state)로 바꾼다.
셀을 0으로 프로그래밍을 할 때, 셀에 인가되는 높은 열에 의해서 열이 주위의 셀로 전달이 된다. 이때, 주위의 셀이 값이 0이며 프로그래밍되지 않는 경우, 전달된 열로 인하여 결정화되어 저장된 값이 0에서 1로 바뀌는 쓰기 디스터번스가 발생하게 된다.
이러한 쓰기 디스터번스의 문제를 해결하기 위해서 기존에는 많은 수의 에러를 수정할 수 있는 오류 정정 부호(error correcting code)를 추가하였으나, 이 방법으로는 메타 데이터로 인하여 저장해야 할 데이터의 양을 증가시키는(즉 데이터 비트 수를 늘리는 방법) 문제점이 있다.
또한, 상기 쓰기 디스터번스의 문제를 해결하기 위한 다른 기존의 방법은 쓰기 명령어를 추적하여 쓰기 디스터번스가 일어날 확률이 높은 셀들을 선택적으로 프로그래밍하나, 이러한 방법은 셀의 쓰기 횟수를 늘려 라이프타임(lifetime)을 줄이는 오버헤드가 발생한다.
한국등록특허 제10-1239791호 [명칭: 상변화 메모리 FEOL 프로세스 플로우에서 회로 및 메모리 어레이 상대적 높이의 제어]
본 발명의 목적은 PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 메모리 쓰기 요청 시 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리 읽기 요청 시 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽음으로써 쓰기 디스터번스 에러를 줄이는 PCM 시스템 및 그의 제어 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 PCM 시스템의 제어 방법은 쓰기 디스터번스(write disturbance) 에러를 줄이기 위한 PCM(Phase-Change Memory) 시스템의 제어 방법에 있어서, 메모리 컨트롤러에 의해, 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 단계; 인코더에 의해, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 데이터를 쓰려고하는 상기 메모리 내의 로우(row) 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인하는 단계; 및 상기 인코더에 의해, 상기 확인 결과를 근거로 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계는, 상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하는 과정; 및 상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하는 과정을 포함하며, 상기 'd'는, don't care condition을 나타내며, '1' 및 '0' 중 어느 하나의 값을 가질 수 있다.
본 발명과 관련된 일 예로서 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계는, 상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하는 과정; 및 상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하는 과정을 포함할 수 있다.
본 발명과 관련된 일 예로서 디코더에 의해, 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 디코딩하여 원래의 데이터를 읽는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 PCM 시스템의 제어 방법은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법에 있어서, 메모리 컨트롤러에 의해, 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 단계; 인코더에 의해, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 선택 비트를 근거로 데이터를 셔플하는 단계; 상기 인코더에 의해, 상기 셔플된 복수의 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 '1' 및 'd'가 교번되는 '1d' 형태 또는 'd' 및 '1'이 교번되는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터를 확인하는 단계; 및 상기 인코더에 의해, 상기 확인된 '1d' 형태 또는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터 및 상기 하나의 셔플된 데이터를 셔플하는데 사용된 선택 비트를 상기 메모리에 저장하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 디코더에 의해, 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 데이터를 상기 메모리에 저장된 선택 비트를 근거로 디코딩하여 원래의 데이터를 읽는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 PCM 시스템의 제어 방법은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법에 있어서, 인코더에 의해, 데이터를 메모리의 제 1 행에서 '1'과 '1 또는 0'이 교번되는 순서가 되도록 하고, 연속되는 메모리의 제 2 행에서 '1 또는 0'과 '1'이 교번되는 순서가 되도록 인코딩하여 출력하면서 사용된 인코딩 정보를 생성하는 단계; 상기 메모리에 의해, 상기 인코더에 의해 인코딩된 데이터를 각 행에 기록하는 단계; 및 디코더에 의해, 상기 메모리에 기록된 데이터를 상기 인코더에서 생성한 인코딩 정보를 근거로 디코딩하여 상기 데이터를 복원하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리의 제 1 행은, 홀수 행 또는 짝수 행이고, 상기 메모리의 제 2 행은, 상기 제 1 행에 반대되는 짝수 행 또는 홀수 행일 수 있다.
본 발명의 실시예에 따른 PCM 시스템은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템에 있어서, 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 메모리 컨트롤러; 및 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 데이터를 쓰려고하는 상기 메모리 내의 로우 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인하고, 상기 확인 결과를 근거로 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 인코더를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 인코더는, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하고, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장할 수 있다.
본 발명과 관련된 일 예로서 상기 인코더는, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하고, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장할 수 있다.
본 발명과 관련된 일 예로서 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 디코딩하여 원래의 데이터를 읽는 디코더를 더 포함할 수 있다.
본 발명의 실시예에 따른 PCM 시스템은 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 메모리 컨트롤러; 및 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 선택 비트를 근거로 데이터를 셔플하고, 상기 셔플된 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 '1' 및 'd'가 교번되는 '1d' 형태 또는 'd' 및 '1'이 교번되는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터를 확인하고, 상기 확인된 '1d' 형태 또는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터 및 상기 하나의 셔플된 데이터를 셔플하는데 사용된 선택 비트를 상기 메모리에 저장하는 인코더를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 상기 메모리에 저장된 선택 비트를 근거로 디코딩하여 원래의 데이터를 읽는 디코더를 더 포함할 수 있다.
본 발명의 실시예에 따른 PCM 시스템은 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템에 있어서, 데이터를 메모리의 제 1 행에서 '1'과 '1 또는 0'이 교번되는 순서가 되도록 하고, 연속되는 메모리의 제 2 행에서 '1 또는 0'과 '1'이 교번되는 순서가 되도록 인코딩하여 출력하면서 사용된 인코딩 정보를 생성하는 인코더; 상기 인코더에 의해 인코딩된 데이터를 각 행에 기록하고, 기록된 데이터를 독출하는 메모리; 및 상기 메모리에서 독출한 데이터를 상기 인코더에서 생성한 인코딩 정보를 근거로 디코딩하여 데이터 순서로 복원하는 디코더를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 인코더 및 상기 디코더는, 복수의 스위치로 구성되는 셔플 네트워크를 포함할 수 있다.
본 발명은 PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽음으로써, 워드 라인 및 비트 라인을 통해 발생하는 쓰기 디스터번스로 인한 에러를 최소화할 수 있는 효과가 있다.
도 1 및 도 2는 본 발명의 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 구성을 나타낸 블록도이다.
도 3은 본 발명의 제 1 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법을 나타낸 흐름도이다.
도 4는 본 발명의 제 2 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법을 나타낸 흐름도이다.
도 5 및 도 6은 본 발명의 실시예에 따른 셔플 네트워크를 사용하여 데이터를 인코딩하는 예를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 셔플 네트워크를 사용하여 데이터를 디코딩하는 예를 나타낸 도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1 및 도 2는 본 발명의 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, PCM 시스템(또는 메모리 시스템)(10)은 메모리 컨트롤러(100), 인코더(200), 메모리(300) 및 디코더(400)로 구성된다. 도 1에 도시된 PCM 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 PCM 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 PCM 시스템(10)이 구현될 수도 있다.
상기 메모리 컨트롤러(100)는 상기 PCM 시스템(10)의 전반적인 제어 기능을 수행한다.
또한, 상기 메모리 컨트롤러(100)는 메모리 요청이 메모리(300)에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단한다. 이때, 해당 데이터를 저장하고자 하는 패턴(또는 데이터가 저장된 패턴)은 로우 주소에 대해서 미리 설정된 상태일 수 있다.
상기 판단 결과, 상기 메모리 요청이 상기 메모리(300)에 대한 쓰기 요청인 경우, 상기 메모리 컨트롤러(100)는 상기 메모리 요청을 상기 인코더(200)에 제공한다.
또한, 상기 판단 결과, 상기 메모리 요청이 상기 메모리(300)에 대한 읽기 요청인 경우, 상기 메모리 컨트롤러(100)는 상기 메모리 요청을 상기 디코더(400)에 제공한다.
상기 인코더(encoder)(200)는 상기 메모리 컨트롤러(100) 내부 또는 상기 메모리(300) 내부에 위치(또는 구성/설치)한다.
또한, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청인 경우, 상기 인코더(200)는 데이터를 쓰려고하는 상기 메모리(300) 내의 로우(row) 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인한다.
상기 확인 결과, 상기 로우 주소가 홀수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태로 최대한 인코딩하여 상기 메모리(300)(또는 상기 메모리(300) 내의 홀수 번째 주소에 대응하는 로우 주소)에 저장한다. 여기서, 상기 'd'는 don't care condition을 나타내며, '1' 및 '0' 중 어느 하나의 값을 가질 수 있다.
이때, 상기 로우 주소가 홀수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1d1...d1' 형태로 최대한 인코딩하여 상기 메모리(300)에 저장할 수도 있다.
또한, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 'd' 및 '1'가 교번되도록 'd1d1...d1' 형태(또는 상기 로우 주소가 홀수 번째 주소인 상태에서의 데이터 패턴과 반대되는 형태)로 최대한 인코딩하여 상기 메모리(300)(또는 상기 메모리(300) 내의 짝수 번째 주소에 대응하는 로우 주소)에 저장한다.
이때, 상기 로우 주소가 짝수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태(또는 상기 로우 주소가 홀수 번째 주소인 상태에서의 데이터 패턴과 반대되는 형태)로 최대한 인코딩하여 상기 메모리(300)에 저장할 수도 있다.
이와 같이, 본 발명의 실시예에 따른 상기 인코더(200)를 통한 인코딩 방식은 데이터를 미리 설정된 '1d' 형태/패턴(또는 'd1' 형태/패턴)으로 변환하고, 상기 변환된 데이터를 원래의 데이터로 복구할 수 있는 어떠한 알고리즘(예를 들어 셔플 네트워크 방식, CAFO(Cost Aware Flip Optimization) 방식, 플립-N-쓰기(Flip-N-Write) 방식, 플립민(FlipMin) 방식 등 포함)도 가능하다.
예를 들어, 복수의 스위치로 구성되는 셔플 네트워크(shuffle network)를 통해 데이터를 인코딩할 수도 있다.
즉, 상기 셔플 네트워크를 사용할 경우의 인코딩에 대해서는, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청인 경우, 상기 인코더(200)는 선택 비트(selection bit)를 근거로 데이터를 셔플(또는 인코딩)한다. 여기서, 상기 선택 비트는 데이터가 N 비트(여기서 N은 자연수)인 경우 log2N 비트로 구성할 수 있다.
또한, 상기 인코더(200)는 상기 셔플된 복수의 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 상태(또는 패턴)와 유사한 하나의 셔플된 데이터를 확인(또는 선택)한다.
또한, 상기 인코더(200)는 상기 확인된 셔플된 데이터 및 상기 선택 비트(또는 해당 데이터를 셔플하는데 사용된 선택 비트)를 상기 메모리(300)에 저장한다.
또한, 상기 인코더(200)는 상기 데이터를 상기 메모리(300)의 제 1 행에서 '1'과 '1 또는 0'이 교번되는 순서가 되도록 하고, 연속되는 메모리의 제 2 행에서 '1 또는 0'과 '1'이 교번되는 순서가 되도록 인코딩하여 출력하면서 사용된 인코딩 정보를 생성한다. 여기서, 상기 제 1 행은 홀수 행 또는 짝수 행이고, 상기 제 2 행은 상기 제 1 행에 반대되는 짝수 행 또는 홀수 행일 수 있다.
상기 메모리(또는 저장 매체)(300)는 PCM(Phase Change Memory)일 수 있다.
또한, 상기 메모리(300)는 상기 인코더(200)를 통해 인코딩된 데이터를 저장한다. 이때, 상기 메모리(300)에 저장되는 인코딩된 데이터는 로우 주소가 홀수 번째 주소인 경우 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태로 최대한 인코딩된 데이터이고, 로우 주소가 짝수 번째 주소인 경우 앞선 패턴과 반대인 'd' 및 '1'이 교번되도록 'd1d1...d1' 형태로 최대한 인코딩된 데이터일 수 있다.
또한, 셔플 네트워크가 적용된 경우, 상기 메모리(300)에 저장되는 인코딩된 데이터는 선택 비트로 데이터를 인코딩한 상태일 수 있다.
또한, 상기 메모리(300)는 상기 인코더(200)에 의해 인코딩된 데이터(또는 인코딩된 정보), 해당 인코딩된 데이터에 대응하는 선택 비트 등을 각 행에 기록한다.
또한, 상기 메모리(300)는 상기 기록된 데이터(또는 인코딩된 데이터/인코딩된 정보)를 읽는다(또는 독출한다).
상기 디코더(decoder)(400)는 상기 메모리 컨트롤러(100) 내부 또는 상기 메모리(300) 내부에 위치(또는 구성/설치)한다.
또한, 상기 판단 결과, 상기 메모리 요청이 읽기 요청인 경우, 상기 디코더(400)는 상기 메모리(300)에 저장된 데이터(또는 인코딩된 데이터/특정 로우 주소에 대응하는 데이터)를 디코딩하여, 원래의 데이터를 읽는다.
이와 같이, 본 발명의 실시예에 따른 상기 디코더(400)를 통한 디코딩 방식은 데이터를 미리 설정된 'd1' 형태/패턴(또는 '1d' 형태/패턴)으로 변환하고, 상기 변환된 데이터를 원래의 데이터로 복구할 수 있는 어떠한 알고리즘(예를 들어 셔플 네트워크 방식, CAFO(Cost Aware Flip Optimization) 방식, 플립-N-쓰기(Flip-N-Write) 방식, 플립민(FlipMin) 방식 등 포함)도 가능하다.
예를 들어, 상기 복수의 스위치로 구성되는 셔플 네트워크를 통해 데이터를 디코딩할 수도 있다.
즉, 상기 셔플 네트워크를 사용할 경우의 디코딩에 대해서는, 상기 판단 결과, 상기 메모리 요청이 읽기 요청인 경우, 상기 디코더(400)는 상기 메모리(300)에 저장된 선택 비트를 근거로 상기 메모리(300)에 저장된 데이터(또는 인코딩된 데이터/셔플된 데이터/특정 로우 주소에 대응하는 데이터/해당 선택 비트에 대응하는 데이터)를 디코딩하여, 원래의 데이터를 읽을 수 있다.
이러한 쓰기 디스터번스에 대해서, 상기 인코더(200)를 통해 쓰고자 하는 데이터를 선택 비트를 이용하여 미리 설정된 '1d1d...1d'(또는 'd1d1...d1') 패턴으로 최대한 인코딩하여 저장함으로써, 상기 쓰기 디스터번스를 최소화할 수 있다.
이와 같이, PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽을 수 있다.
이하에서는, 본 발명에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법을 도 1 내지 도 7을 참조하여 상세히 설명한다.
도 3은 본 발명의 제 1 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법을 나타낸 흐름도이다.
먼저, 메모리 컨트롤러(100)는 메모리 요청이 메모리(300)에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단한다.
일 예로, 상기 메모리 컨트롤러(100)는 제 1 메모리 요청이 상기 메모리(300)에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단한다(S310).
상기 판단 결과, 상기 메모리 요청이 쓰기 요청인 경우, 인코더(200)는 데이터를 쓰려고하는 상기 메모리(300) 내의 로우(row) 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인한다.
일 예로, 상기 판단 결과, 제 1 메모리 요청이 쓰기 요청일 때, 상기 인코더(200)는 제 1 입력 데이터를 쓰려고하는 상기 메모리(300) 내의 로우 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인한다(S320).
상기 확인 결과, 상기 로우 주소가 홀수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태로 최대한 인코딩하여 상기 메모리(300)(또는 상기 메모리(300) 내의 홀수 번째 주소에 대응하는 로우 주소)에 저장한다. 여기서, 상기 'd'는 don't care condition을 나타내며, '1' 및 '0' 중 어느 하나의 값을 가질 수 있다.
이때, 상기 로우 주소가 홀수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1d1...d1' 형태로 최대한 인코딩하여 상기 메모리(300)에 저장할 수도 있다.
일 예로, 상기 제 1 입력 데이터를 쓰려고하는 상기 메모리(300) 내의 로우 주소가 홀수 번째 주소일 때, 상기 인코더(200)는 상기 제 1 입력 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태로 최대한 인코딩하여 상기 홀수 번째 주소에 대응하는 로우 주소에 저장한다(S330).
또한, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 'd' 및 '1'가 교번되도록 'd1d1...d1' 형태(또는 상기 로우 주소가 홀수 번째 주소인 상태에서의 데이터 패턴과 반대되는 형태)로 최대한 인코딩하여 상기 메모리(300)(또는 상기 메모리(300) 내의 짝수 번째 주소에 대응하는 로우 주소)에 저장한다.
이때, 상기 로우 주소가 짝수 번째 주소인 경우, 상기 인코더(200)는 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d1d...1d' 형태(또는 상기 로우 주소가 홀수 번째 주소인 상태에서의 데이터 패턴과 반대되는 형태)로 최대한 인코딩하여 상기 메모리(300)에 저장할 수도 있다.
일 예로, 상기 제 1 입력 데이터를 쓰려고하는 상기 메모리(300) 내의 로우 주소가 짝수 번째 주소일 때, 상기 인코더(200)는 상기 제 1 입력 데이터를 상기 로우 주소가 홀수 번째에 해당하는 데이터 패턴(예를 들어 '1' 및 'd'가 교번되는 데이터 패턴)과 반대되는 형태인 'd' 및 '1'이 교번되도록 'd1d1...d1' 형태로 최대한 인코딩하여 상기 짝수 번째 주소에 대응하는 로우 주소에 저장한다(S340).
또한, 상기 판단 결과, 상기 메모리 요청이 읽기 요청인 경우, 디코더(400)는 상기 메모리(300)에 저장된(또는 기록된) 데이터(또는 인코딩된 데이터/특정 로우 주소에 대응하는 데이터)를 디코딩하여, 원래의 데이터를 읽는다.
일 예로, 상기 판단 결과, 제 1 메모리 요청이 읽기 요청일 때, 상기 디코더(400)는 상기 메모리(300) 내의 특정 로우 주소에 저장된 인코딩된 제 1 입력 데이터를 디코딩하여, 원래의 제 1 입력 데이터를 읽는다(S350).
도 4는 본 발명의 제 2 실시예에 따른 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법을 나타낸 흐름도이다.
먼저, 메모리 컨트롤러(100)는 메모리 요청이 메모리(300)에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단한다. 이때, 해당 데이터를 저장하고자 하는 패턴(또는 데이터가 저장된 패턴)은 로우 주소에 대해서 미리 설정된 상태일 수 있다.
일 예로, 상기 메모리 컨트롤러(100)는 제 2 메모리 요청이 상기 메모리(300)에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단한다. 이때, 8 비트의 데이터를 저장하고자 하는 패턴은 로우 주소에 대해서 '1d1d1d1d'라 가정한다(S410).
상기 판단 결과, 상기 메모리 요청이 쓰기 요청인 경우, 인코더(200)는 선택 비트를 근거로 데이터를 셔플(또는 인코딩)한다. 여기서, 상기 선택 비트는 데이터가 N 비트(여기서 N은 자연수)인 경우 log2N 비트로 구성할 수 있다.
일 예로, 상기 판단 결과, 상기 제 2 메모리 요청이 쓰기 요청일 때, 도 5 및 도 6에 도시된 바와 같이, 상기 인코더(200)는 8 비트의 제 2 입력 데이터(예를 들어 b7b6b5b4b3b2b1b0 인 '11100101')에 대한 3 비트의 선택 비트를 근거로 상기 제 2 입력 데이터(예를 들어 b7b6b5b4b3b2b1b0 인 '11100101')를 셔플한다(S420).
이후, 상기 인코더(200)는 상기 셔플된 복수의 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 상태(또는 패턴)와 유사한 하나의 셔플된 데이터를 확인(또는 선택)한다.
일 예로, 상기 인코더(200)는 상기 도 5에 도시된 상기 제 2 입력 데이터에 대응하는 8개의 셔플된 데이터 중에서 상기 제 2 입력 데이터를 저장하고자 하는 로우 주소에 대한 패턴(예를 들어 '1d1d1d1d')과 가장 유사한 하나의 셔플된 데이터(예를 들어 선택 비트 101 비트에 대응하는 '10101101')를 확인한다(S430).
이후, 상기 인코더(200)는 상기 확인된 셔플된 데이터 및 상기 선택 비트(또는 해당 데이터를 셔플하는데 사용된 선택 비트)를 상기 메모리(300)에 저장한다.
일 예로, 상기 인코더(200)는 상기 확인된 셔플된 데이터(예를 들어 b2b3b0b1b6b7b4b5 인 '10101101')와 해당 데이터를 셔플하는데 사용된 선택 비트(예를 들어 '101')를 상기 메모리(300)에 저장함으로써, 쓰기 디스터번스 에러 발생을 최소화할 수 있다. 이때, 상기 b4b5는 본 발명에 따른 셔플 네트워크를 이용해서 미리 설정된 '1d' 패턴을 생성할 수 없다(S440).
또한, 상기 판단 결과, 상기 메모리 요청이 읽기 요청인 경우, 디코더(400)는 상기 메모리(300)에 저장된 선택 비트를 근거로 상기 메모리(300)에 저장된 데이터(또는 인코딩된 데이터/셔플된 데이터/특정 로우 주소에 대응하는 데이터/해당 선택 비트에 대응하는 데이터)를 디코딩하여, 원래의 데이터를 읽는다.
일 예로, 상기 판단 결과, 상기 제 2 메모리 요청이 읽기 요청일 때, 도 7에 도시된 바와 같이, 상기 디코더(400)는 상기 메모리(300)에 저장된 셔플된 데이터(예를 들어 b2b3b0b1b6b7b4b5 인 '10101101') 및 3 비트의 선택 비트(예를 들어 h2h1h0인 '101')를 근거로 상기 메모리(300)에 저장된 셔플된 데이터(예를 들어 b2b3b0b1b6b7b4b5 인 '10101101')를 디코딩하고, 상기 디코딩된 데이터(또는 원래의 데이터/상기 제 2 입력 데이터)(예를 들어 b7b6b5b4b3b2b1b0 인 '11100101')를 상기 메모리(300)로부터 읽는다(S450).
본 발명의 실시예는 앞서 설명된 바와 같이, PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽어, 워드 라인 및 비트 라인을 통해 발생하는 쓰기 디스터번스로 인한 에러를 최소화할 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 PCM 시스템에서 쓰기 디스터번스를 줄이기 위해서 쓰기 디스터번스가 발생하지 않는 데이터 패턴으로 데이터를 인코딩하여 메모리에 저장하고, 메모리에 저장된 인코딩된 데이터를 디코딩하여 읽음으로써, 워드 라인 및 비트 라인을 통해 발생하는 쓰기 디스터번스로 인한 에러를 최소화할 수 있는 것으로, 메모리 분야 등의 정보 저장 디바이스에서 광범위하게 이용될 수 있다.
10: PCM 시스템 100: 메모리 컨트롤러
200: 인코더 300: 메모리
400: 디코더

Claims (17)

  1. 쓰기 디스터번스(write disturbance) 에러를 줄이기 위한 PCM(Phase-Change Memory) 시스템의 제어 방법에 있어서,
    메모리 컨트롤러에 의해, 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 단계;
    인코더에 의해, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 데이터를 쓰려고하는 상기 메모리 내의 로우(row) 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인하는 단계; 및
    상기 인코더에 의해, 상기 확인 결과를 근거로 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계를 포함하는 PCM 시스템의 제어 방법.
  2. 제 1 항에 있어서,
    상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계는,
    상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하는 과정; 및
    상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하는 과정을 포함하며,
    상기 'd'는,
    don't care condition을 나타내며, '1' 및 '0' 중 어느 하나의 값을 가지는 것을 특징으로 하는 PCM 시스템의 제어 방법.
  3. 제 1 항에 있어서,
    상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 단계는,
    상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하는 과정; 및
    상기 인코더에 의해, 상기 확인 결과, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하는 과정을 포함하는 것을 특징으로 하는 PCM 시스템의 제어 방법.
  4. 제 1 항에 있어서,
    디코더에 의해, 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 디코딩하여 원래의 데이터를 읽는 단계를 더 포함하는 것을 특징으로 하는 PCM 시스템의 제어 방법.
  5. 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법에 있어서,
    메모리 컨트롤러에 의해, 메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 단계;
    인코더에 의해, 상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 선택 비트를 근거로 데이터를 셔플하는 단계;
    상기 인코더에 의해, 상기 셔플된 복수의 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 '1' 및 'd'가 교번되는 '1d' 형태 또는 'd' 및 '1'이 교번되는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터를 확인하는 단계; 및
    상기 인코더에 의해, 상기 확인된 '1d' 형태 또는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터 및 상기 하나의 셔플된 데이터를 셔플하는데 사용된 선택 비트를 상기 메모리에 저장하는 단계를 포함하는 PCM 시스템의 제어 방법.
  6. 제 5 항에 있어서,
    디코더에 의해, 상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 상기 메모리에 저장된 선택 비트를 근거로 디코딩하여 원래의 데이터를 읽는 단계를 더 포함하는 것을 특징으로 하는 PCM 시스템의 제어 방법.
  7. 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템의 제어 방법에 있어서,
    인코더에 의해, 데이터를 메모리의 제 1 행에서 '1'과 '1 또는 0'이 교번되는 순서가 되도록 하고, 연속되는 메모리의 제 2 행에서 '1 또는 0'과 '1'이 교번되는 순서가 되도록 인코딩하여 출력하면서 사용된 인코딩 정보를 생성하는 단계;
    상기 메모리에 의해, 상기 인코더에 의해 인코딩된 데이터를 각 행에 기록하는 단계; 및
    디코더에 의해, 상기 메모리에 기록된 데이터를 상기 인코더에서 생성한 인코딩 정보를 근거로 디코딩하여 상기 데이터를 복원하는 단계를 포함하는 PCM 시스템의 제어 방법.
  8. 제 7 항에 있어서,
    상기 메모리의 제 1 행은,
    홀수 행 또는 짝수 행이고,
    상기 메모리의 제 2 행은,
    상기 제 1 행에 반대되는 짝수 행 또는 홀수 행인 것을 특징으로 하는 PCM 시스템의 제어 방법.
  9. 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템에 있어서,
    메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 메모리 컨트롤러; 및
    상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 데이터를 쓰려고하는 상기 메모리 내의 로우 주소가 홀수 번째 주소인지 또는 짝수 번째 주소인지 여부를 확인하고, 상기 확인 결과를 근거로 상기 데이터를 미리 설정된 데이터 패턴에 따라 인코딩하여 상기 메모리에 저장하는 인코더를 포함하는 PCM 시스템.
  10. 제 9 항에 있어서,
    상기 인코더는,
    상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하고, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하는 것을 특징으로 하는 PCM 시스템.
  11. 제 9 항에 있어서,
    상기 인코더는,
    상기 확인 결과, 상기 로우 주소가 홀수 번째 주소일 때, 상기 데이터를 미리 설정된 'd' 및 '1'이 교번되도록 'd1' 형태로 인코딩하여 상기 메모리에 저장하고, 상기 로우 주소가 짝수 번째 주소일 때, 상기 데이터를 미리 설정된 '1' 및 'd'가 교번되도록 '1d' 형태로 인코딩하여 상기 메모리에 저장하는 것을 특징으로 하는 PCM 시스템.
  12. 제 9 항에 있어서,
    상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 디코딩하여 원래의 데이터를 읽는 디코더를 더 포함하는 것을 특징으로 하는 PCM 시스템.
  13. 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템에 있어서,
    메모리 요청이 메모리에 대한 쓰기 요청인지 또는 읽기 요청인지 여부를 판단하는 메모리 컨트롤러; 및
    상기 판단 결과, 상기 메모리 요청이 쓰기 요청일 때, 선택 비트를 근거로 데이터를 셔플하고, 상기 셔플된 데이터 중에서 상기 데이터를 저장하고자 하는 로우 주소에 대해서 미리 설정된 '1' 및 'd'가 교번되는 '1d' 형태 또는 'd' 및 '1'이 교번되는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터를 확인하고, 상기 확인된 '1d' 형태 또는 'd1' 형태와 가장 유사한 하나의 셔플된 데이터 및 상기 하나의 셔플된 데이터를 셔플하는데 사용된 선택 비트를 상기 메모리에 저장하는 인코더를 포함하는 PCM 시스템.
  14. 제 13 항에 있어서,
    상기 판단 결과, 상기 메모리 요청이 읽기 요청일 때, 상기 메모리에 저장된 인코딩된 데이터를 상기 메모리에 저장된 선택 비트를 근거로 디코딩하여 원래의 데이터를 읽는 디코더를 더 포함하는 것을 특징으로 하는 PCM 시스템.
  15. 쓰기 디스터번스 에러를 줄이기 위한 PCM 시스템에 있어서,
    데이터를 메모리의 제 1 행에서 '1'과 '1 또는 0'이 교번되는 순서가 되도록 하고, 연속되는 메모리의 제 2 행에서 '1 또는 0'과 '1'이 교번되는 순서가 되도록 인코딩하여 출력하면서 사용된 인코딩 정보를 생성하는 인코더;
    상기 인코더에 의해 인코딩된 데이터를 각 행에 기록하고, 기록된 데이터를 독출하는 메모리; 및
    상기 메모리에서 독출한 데이터를 상기 인코더에서 생성한 인코딩 정보를 근거로 디코딩하여 데이터 순서로 복원하는 디코더를 포함하는 PCM 시스템.
  16. 제 15 항에 있어서,
    상기 메모리의 제 1 행은,
    홀수 행 또는 짝수 행이고,
    상기 메모리의 제 2 행은,
    상기 제 1 행에 반대되는 짝수 행 또는 홀수 행인 것을 특징으로 하는 PCM 시스템.
  17. 제 15 항에 있어서,
    상기 인코더 및 상기 디코더는,
    복수의 스위치로 구성되는 셔플 네트워크를 포함하는 것을 특징으로 하는 PCM 시스템.
KR1020160109989A 2016-08-29 2016-08-29 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법 KR20180024218A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160109989A KR20180024218A (ko) 2016-08-29 2016-08-29 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160109989A KR20180024218A (ko) 2016-08-29 2016-08-29 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20180024218A true KR20180024218A (ko) 2018-03-08

Family

ID=61726522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160109989A KR20180024218A (ko) 2016-08-29 2016-08-29 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법

Country Status (1)

Country Link
KR (1) KR20180024218A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200022213A (ko) * 2018-08-22 2020-03-03 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200022213A (ko) * 2018-08-22 2020-03-03 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법

Similar Documents

Publication Publication Date Title
JP5722420B2 (ja) 縮退故障を有するメモリセル内にビットを記憶するための技術
US8510633B2 (en) Semiconductor storage device and method of operating the same
US10283216B2 (en) Data storage device and data maintenance method thereof
JP4953648B2 (ja) 不揮発性記憶装置およびメモリコントローラ
JP2007087464A (ja) 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US10031865B2 (en) Memory system, storage device, and method for controlling memory system
US20160283319A1 (en) Data storage device and encoding method thereof
US8243536B2 (en) Systems and methods for increasing bit density in a memory cell
US9171629B1 (en) Storage device, memory controller and memory control method
KR20170130410A (ko) 일회성 프로그램 가능 메모리
TWI466127B (zh) 記憶體裝置控制器以及存取記憶體方法
JP2011060217A (ja) データ蓄積装置及びデータ書込み/読出し方法
US20140164683A1 (en) Nonvolatile memory apparatus, operating method thereof, and data processing system having the same
US10186302B2 (en) Semiconductor systems performing double-write operations and methods of operating the same
US20150143187A1 (en) Implementing enhanced performance with read before write to phase change memory
KR20150079917A (ko) 반도체 기억 장치 및 그 제어 방법
JP2009157515A (ja) 半導体メモリコントローラおよび半導体メモリ
KR20180024218A (ko) 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법
JP5361826B2 (ja) 記録ユニット及び故障チップ特定方法
EP3179727A1 (en) Video server device and writing/reading data method
US10951238B1 (en) Memory system and method for controlling non-volatile memory
US9104596B2 (en) Memory system
US8856613B2 (en) Semiconductor storage device, memory control device, and control method of semiconductor memory
JPWO2020031435A1 (ja) 記憶制御装置、記憶装置および記憶制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application