KR20150084244A - 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 - Google Patents

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20150084244A
KR20150084244A KR1020140004062A KR20140004062A KR20150084244A KR 20150084244 A KR20150084244 A KR 20150084244A KR 1020140004062 A KR1020140004062 A KR 1020140004062A KR 20140004062 A KR20140004062 A KR 20140004062A KR 20150084244 A KR20150084244 A KR 20150084244A
Authority
KR
South Korea
Prior art keywords
address
error
memory device
memory
cell array
Prior art date
Application number
KR1020140004062A
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 KR1020140004062A priority Critical patent/KR20150084244A/ko
Priority to US14/595,856 priority patent/US20150199234A1/en
Publication of KR20150084244A publication Critical patent/KR20150084244A/ko

Links

Images

Classifications

    • 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
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • 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
    • 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/0409Online test
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Abstract

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법이 개시된다. 일 실시예에 따른 메모리 장치의 동작 방법에 있어서, 상기 메모리 장치는 온-칩 ECC를 포함하고, 상기 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 독출된 독출 데이터의 에러를 체크하는 단계; 상기 제1 어드레스에 대해 발생된 에러 발생 횟수를 카운트하여, 상기 제1 어드레스에 대한 에러 발생 횟수를 제1 테이블에 저장하는 단계; 상기 제1 어드레스에 대한 제1 명령을 수신하는 단계; 상기 제1 테이블을 참조하여, 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인지를 판단하는 단계; 및 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인 경우, 상기 제1 어드레스를 제2 어드레스로 맵핑하는 단계를 포함한다.

Description

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 {Memory Device, Memory System and Operating Method of Memory Device}
본 개시는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 관한 것으로, 특히 에러 발생 확률을 낮출 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 관한 것이다.
전자 장치에 대해 요구되는 처리 용량 및 처리 속도가 증가하고 있다. 이에 따라, 전자 장치에 포함되는 메모리 장치의 동작이 고속화되고 메모리 장치에서 처리되는 데이터의 양이 커져, 메모리 장치에서의 동작의 에러가 발생되는 확률이 증가하고 있다.
본 개시는 에러 발생 확률을 낮출 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법을 제공한다.
본 개시는 에러 발생 확률을 낮추면서도 전력 소모를 줄일 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법을 제공한다.
본 개시는 에러 발생 확률을 낮추면서도 레이아웃 면적을 줄일 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법을 제공한다.
일 실시예에 따른 메모리 장치의 동작 방법에 있어서, 상기 메모리 장치는 온-칩 ECC를 포함하고, 상기 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 독출된 독출 데이터의 에러를 체크하는 단계; 상기 제1 어드레스에 대해 발생된 에러 발생 횟수를 카운트하여, 상기 제1 어드레스에 대한 에러 발생 횟수를 제1 테이블에 저장하는 단계; 상기 제1 어드레스에 대한 제1 명령을 수신하는 단계; 상기 제1 테이블을 참조하여, 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인지를 판단하는 단계; 및 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인 경우, 상기 제1 어드레스를 제2 어드레스로 맵핑하는 단계를 포함한다.
상기 제1 어드레스로부터 독출된 데이터의 에러를 체크하는 단계는, 독출 명령 또는 리프레시(refresh) 명령에 응답하여 독출된 데이터에 대해 수행될 수 있다.
상기 제1 명령은 리프레시(refresh) 명령일 수 있다.
상기 제1 어드레스는 상기 메모리 셀 어레이의 노말 셀 어레이를 나타내는 어드레스이고, 상기 제2 어드레스는 상기 메모리 셀 어레이의 리던던시 셀 어레이를 나타내는 어드레스일 수 있다.
상기 제1 어드레스는 상기 메모리 셀 어레이의 로우 어드레스(row address)일 수 있다.
상기 제1 어드레스에 대한 에러 횟수를 제1 테이블에 저장하는 단계는, 상기 온-칩 ECC가 에러 체크 및 에러 정정을 수행하는 에러 정정 단위의 크기와 동일한, 상기 제1 어드레스로부터 독출된 데이터의 각 섹션 데이터에 포함된 에러 비트의 개수가, 상기 온-칩 ECC가 에러 정정할 수 있는 최대 비트 수 이하인 경우에 수행될 수 있다.
상기 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인 경우, 제2 테이블에 상기 제1 어드레스와 상기 제2 어드레스의 맵핑 정보를 제2 테이블에 저장하는 단계를 더 포함할 수 있다.
상기 제1 어드레스에 대한 제2 명령을 수신하는 단계; 및 상기 제2 테이블을 참조하여, 상기 제2 어드레스에 대해 상기 제2 명령을 수행하는 단계를 더 포함할 수 있다.
상기 제2 어드레스 전체로부터 독출된 데이터를 에러 정정 단위로 에러를 체크하는 단계; 상기 제2 어드레스 전체로부터 독출된 데이터에서 발생된 에러의 개수가 제2 값 이하이면, 상기 제2 테이블에서 상기 제1 어드레스에 대한 정보를 삭제하는 단계를 더 포함할 수 있다.
상기 제2 어드레스로부터 독출된 데이터의 임의의 에러 정정 단위에 대해 에러가 발생한 경우, 상기 제2 어드레스로부터 독출된 데이터에 대한 에러 발생 횟수를 카운트한 값을 제3 테이블에 저장하는 단계를 더 포함할 수 있다.
상기 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인지를 판단하는 단계는, 상기 제1 어드레스에 대한 제1 명령을 수신하는 경우, 상기 제1 테이블을 참조하는 단계; 및 상기 제1 테이블에 상기 제1 어드레스가 존재하는 경우, 상기 제1 테이블의 제1 플래그(flag)를 참조하여, 상기 제1 플래그가 상기 제1 어드레스에 대한 에러 발생 횟수가 제1 값 이상을 나타내는지를 판단하는 단계를 포함할 수 있다.
상기 제1 어드레스에 대한 제2 명령을 수신하는 단계; 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이하인 경우, 상기 제2 명령을 상기 제1 어드레스에 대해 수행하는 단계를 더 포함할 수 있다.
상기 메모리 장치는, DRAM일 수 있다.
일 실시예에 따른 메모리 장치의 동작 방법에 있어서, 상기 메모리 장치는 온-칩 ECC를 포함하고, 상기 제1 어드레스에 대해 독출 또는 리프레시 동작 중에 상기 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 데이터를 독출하여 독출된 데이터의 에러가 정정 가능한 에러인지를 체크하는 단계; 상기 제1 어드레스로부터 독출된 데이터에 에러가 포함된 횟수를 카운트하여, 에러가 포함된 횟수가 i회 반복하는 경우, 상기 제1 어드레스를 정정 불가능한 에러가 발생할 확률이 높은 어드레스로 설정하는 단계; 상기 정정 불가능한 에러가 발생할 확률이 높은 어드레스로 설정된 제1 어드레스에 저장된 데이터를 제2 어드레스에 기입하는 단계; 및 상기 제1 어드레스에 대한 액세스가 요청되면 상기 제2 어드레스에 대한 액세스로 변경하는 단계를 포함한다.
본 개시의 일 실시예에 따른 메모리 장치 및 이의 동작 방법에 의하면, 메모리 칩 내에 온-칩 ECC를 구비함으로써 에러 정정의 효율성을 추구하면서도, 임의의 단위, 예를 들어, 로우 단위에 대해 에러 발생 확률이 높아지는 경우, 해당 어드레스를 리던던시 셀 어레이에 대한 어드레스로 동적으로 대체시킴으로써, 온-칩 ECC의 제한된 에러 정정 능력 하에서도 신뢰성 있는 에러 체크 및 정정 동작을 수행할 수 있다. 예를 들어, 칩 면적, 동작 레이턴시 및 전력 소모 등의 제한에 근거하여 에러 정정 단위에 대해 1 비트의 에러 정정 능력을 갖는 온-칩 ECC를 포함하는 메모리 장치에서, 임의의 단위, 예를 들어 로우 단위로, 정정 가능한 에러가 발생한 횟수를 카운트하여, 각 로우에 대해 에러가 발생한 횟수가 일정 값 이상이면, 해당 로우를 다른 로우로 대체함으로써, 에러 정정 단위에 대해 정정 불가능한 2 비트 이상의 에러가 발생될 확률을 줄일 수 있는 장점이 있다. 즉, 비록 온-칩 ECC에 의해 정정 가능한 에러가 발생하였더라도, 에러의 발생 횟수가 특정 값 이상이 되면, 해당 영역에서 정정 불가능한 상태의 에러가 발생될 확률이 높은 것으로 판단하여, 해당 영역에 대한 액세스를 제한함으로써, 온-칩 ECC에 의해 정정 불가능한 에러가 발생될 확률을 줄일 수 있다.
이에 따라, 메모리 장치 또는 메모리 장치를 포함하는 시스템의 신뢰성을 향상시킬 수 있다. 이때, 정정 불가능한 에러 발생 확률이 높은 어드레스에 대체되는 어드레스는 리던던시 셀 어레이에 대한 어드레스이므로, 칩 면적의 증가가 최소화될 수 있는 장점이 있다.
도 1은 일 실시예에 따른 메모리 장치의 동작 방법을 나타내는 순서도이다.
도 2는 일 실시예에 따른 메모리 장치를 나타내는 도면이다.
도 3은 도 2의 에러 정보 저장부의 제1 테이블의 예를 나타내는 도면이다.
도 4는 도 1의 제1 어드레스에 대한 에러 발생 횟수가 제1 값 이상인지를 판단하는 단계의 예를 나타내는 순서도이다.
도 5는 도 2의 에러 정보 저장부의 제2 테이블의 예를 나타내는 도면이다.
도 6은 일 실시예에 따른 메모리 장치의 동작 방법에서 제1 테이블 및 제2 테이블을 형성하는 예를 나타내는 순서도이다.
도 7은 다른 실시예에 따른 메모리 장치에서의 동작 방법을 나타내는 도면이다.
도 8은 도 2의 에러 정보 저장부의 제3 테이블의 예를 나타내는 도면이다.
도 9는 다른 실시예에 따른 메모리 장치에서의 동작 방법을 나타내는 도면이다.
도 10 내지 도 12는 온-칩 ECC를 포함하는 DRAM에서의 구체적 동작 방법의 예를 나타내는 도면이다.
도 13은 도 12의 제3 테이블을 참조하는 경우의 메모리 장치의 리프레시 동작 방법을 나타내는 순서도이다.
도 14는 도 12의 제1 테이블을 참조하는 경우의 메모리 장치의 리프레시 동작 방법을 나타내는 순서도이다.
도 15내지 도 17은 각각 일 실시에에 따른 메모리 시스템을 나타내는 도면이다.
도 18은 다른 실시예에 따른 메모리 장치로, 다수의 반도체 레이어들을 적층하여 구현되는 예를 나타내는 도면이다.
도 19는 일 실시예에 따른 모바일 장치를 나타내는 도면이다.
도 20은 본 개시의 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 21은 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 22 및 도 23은 각각, 본 개시의 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 24는 본 개시의 실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 메모리 장치의 동작 방법을 나타내는 순서도이다. 일 실시예에 따른 메모리 장치의 동작 방법은, 온-칩 ECC(On-Chip ECC(Error Check and Correction))을 포함하는 DRAM(Dynamic Random Access Memory)에서의 동작 방법일 수 있다. 도 1을 참조하면, 일 실시예에 따른 메모리 장치의 동작 방법은, 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 독출된 데이터의 에러를 체크하는 단계(S110), 에러가 발생한 경우(S120의 YES), 제1 어드레스에서 발생된 에러의 횟수를 카운트하여, 제1 어드레스에 대한 에러 횟수를 제1 테이블에 저장하는 단계(S130), 제1 어드레스에 대한 제1 명령을 수신하는 단계(S140) 및 제1 테이블을 참조하여, 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인 경우(S150의 YES), 제1 어드레스를 제2 어드레스로 맵핑하는 단계(S160)를 포함한다.
도 2는 일 실시예에 따른 메모리 장치를 나타내는 도면이다. 도 2를 참조하면, 일 실시예에 따른 메모리 장치(200)는 메모리 셀 어레이(Memory Cell Array, 210), 센스 앰프(Sense Amplifiers, 220), 온-칩 ECC(230), 데이터 입출력부(240), 제어부(250), 에러 정보 저장부(260) 및 어드레스 디코더(270)를 포함한다.
메모리 셀 어레이(210)는 각각, 대응되는 로우(row)와 칼럼(column)에 연결되는 다수의 메모리 셀(MC)을 포함한다. 각 메모리 셀(MC)은 데이터(DTA) 또는 데이터(DTA)에 포함되는 비트 값을 저장할 수 있다. 메모리 셀 어레이(210)는 노말 셀 어레이(Normal Cell Array, 212) 및 리던던시 셀 어레이(Redundancy Cell Array, 214)를 포함한다. 노말 셀 어레이(212)는 메모리 장치(200)의 일반적인 어드레싱 방식에 따라 어드레싱(addressing) 된 메모리 셀 어레이이다. 메모리 장치(200)의 제조 과정에서, 일련의 테스트 과정을 거치고, 이 과정에서 노말 셀 어레이(212)의 임의의 메모리 셀이 불량 셀로 판명될 수 있다. 이 경우, 노말 셀 어레이(212)의 해당 불량 셀에 대응되는 로우 또는 칼럼을 나타내는 어드레스가 여분(redundancy)의 로우 또는 칼럼을 나타내는 어드레스로 대체(replace)될 수 있다. 리던던시 셀 어레이(214)는 상기와 같이 대체된 로우 및 칼럼에 연결되는 다수의 메모리 셀로 구성될 수 있다.
일 실시예에 따른 메모리 장치(200)의 리던던시 셀 어레이(214)는 제조 과정에서 테스트를 통해 판단된 노말 셀 어레이(212)의 불량 셀을 정적(static)으로 대체할 뿐 아니라, 메모리 장치(200)가 메모리 장치(200)를 포함하는 메모리 시스템에 장착된 이후에 판단된 불량 셀 또한 대체할 수 있다. 이에 대한 좀더 자세한 설명은 후술된다.
센스 앰프(220)는 메모리 장치(200)에 대해 수행이 요구되는 명령(CMD), 예를 들어, 독출 명령 또는 리프레시 명령에 포함되는 어드레스(Addr)에 대응되는, 메모리 셀 어레이(210)의 칼럼의 전압을 센싱하여, 해당 어드레스(Addr)에 저장된 데이터를 식별한다. 이렇게 식별된 데이터(DTA)는, 예를 들어, 독출 명령에 응답하여, 데이터 입출력부(240)를 통해 메모리 장치(200)의 외부로 출력될 수 있다. 또는, 센스 앰프(220)에 의해 식별된 데이터(DTA)는, 예를 들어, 리프레시 명령에 응답하여, 메모리 장치(200)의 동일한 어드레스(Addr) 또는 다른 어드레스(Addr)에 대응되는 적어도 하나 이상의 메모리 셀(MC)에 다시 기입될 수 있다.
온-칩 ECC(230)는 메모리 셀 어레이(210)로 데이터(DTA)를 기입하는 때에 데이터(DTA)를 인코딩(encoding)하여 패리티 데이터를 생성한다. 패리티 데이터는 노말 셀 어레이(212)의 패리티 데이터 저장 영역에 저장될 수 있다. 온-칩 ECC(230)는 메모리 셀 어레이(210)로부터 데이터(DTA)를 독출하는 때에, 독출된 데이터(DTA)의 패리티 데이터를 디코딩(decoding)하여 데이터(DTA)의 에러를 체크하고 정정한다. 독출 명령 또는 리프레시 명령에 응답하여, 메모리 셀 어레이(210)로부터 데이터(DTA)가 독출될 수 있다. 온-칩 ECC(230)는 에러를 체크하여 에러가 발생된 경우 에러 발생 신호(EGS)를 제어부(250)에 전송할 수 있다. 온-칩 ECC(230)는 상기의 동작을 수행하는 인코더 및 디코더를 포함할 수 있다.
메모리 장치의 공정의 미세화가 진행됨에 따라, 수율 향상과 칩 불량을 줄이기 위해, 일 실시예에 따른 메모리 장치(200)는 ECC 엔진(ECC Engine)을 메모리 장치(200)의 내부에 온-칩 ECC로 구비한다. 온-칩 ECC(230)는 센스 앰프(220)에 의해 식별된 데이터(DTA)를 에러 정정 단위, 예를 들어, 섹터(sector) 단위로 에러 체크 및 정정 동작을 수행할 수 있다.
이 경우, 온-칩 ECC(230)는 에러 정정 단위에 대해, 에러를 체크하거나 정정할 수 있는 비트 수가 제한될 수 있다. 예를 들어, 메모리 장치(200)가 구현되는 칩(chip)의 면적, 에러 체크 및 정정에 대해 소요되는 동작 시간 및 전력 소모의 제한 등에 의해, 온-칩 ECC(230)의 에러 정정 능력이 제한될 수 있다. 예를 들어, 온-칩 ECC(230)의 에러 정정 능력에 비례하여 증가되는, 온-칩 ECC(230)에 의해 인코딩(encoding)된 패리티 비트(parity bit)를 저장하기 위한 저장 공간의 면적, 온-칩 ECC(230)에 의한 디코딩 레이턴시(decoding latency)의 증가 등의 제한이 존재한다.
일 실시예에 따른 온-칩 ECC(230)는 상기의 제한 하에 최적화된 성능을 갖도록, 1-bit의 에러 정정 능력으로 구현될 수 있다. 일 실시예에 따른 메모리 장치(200)는 온-칩 ECC(230)의 에러 정정 능력 이하로 에러가 발생될 수 있도록 동작할 수 있다. 예를 들어, 일 실시예에 따른 메모리 장치(200)는, 에러 정정 단위에 대해 1 비트의 에러 정정 능력을 갖는 온-칩 ECC(230)를 구비하고, 2 비트 이상의 에러가 발생될 확률을 줄일 수 있도록 동작할 수 있다. 이에 대한 자세한 설명은 후술된다.
제어부(250)는 명령(CMD)을 수신하여 명령(CMD)에 대응되는 동작이 메모리 장치(200)에서 수행될 수 있도록 제어할 수 있다. 예를 들어, 수신되는 명령(CMD)이 기입 명령 경우, 기입 명령에 포함된 어드레스(Addr)에 대응되는 적어도 하나 이상의 메모리 셀(MC)에, 기입 명령에 대응되는 데이터(DTA)가 기입되도록 제어한다. 제어부(250)는 또한, 수신되는 명령(CMD)이 독출 명령인 경우, 독출 명령에 포함된 어드레스(Addr)에 대응되는 적어도 하나 이상의 메모리 셀(MC)에 저장된 데이터(DTA)가 독출되도록 제어한다. 또는, 메모리 장치(200)가 DRAM인 경우, 제어부(250)는 수신되는 명령(CMD)이 리프레시 명령인 경우, 리프레시 명령에 포함된 어드레스(Addr)에 대응되는 적어도 하나 이상의 메모리 셀(MC)에 저장된 데이터(DTA)가 독출된 후 다시 기입되도록 제어한다. 이를 위해, 제어부(250)는 명령(CMD)에 대응되는 어드레스(Addr)의 로우 및 칼럼을 활성화하는 어드레스 디코더(270)로 제1 제어 신호(XCON1)를 전송할 수 있다.
다만, 이에 한정되는 것은 아니다. 예를 들어, 제어부(250)는 수신되는 명령(CMD)에 응답하여, 또는 내부 동작 클럭(CLK)의 주기에 따라, 메모리 장치(200)의 내부적으로 명령을 생성할 수 있다. 예를 들어, 제어부(250)는 메모리 장치(200)가 DRAM인 경우, 셀프 리프레시(self refresh) 등과 같은, 메모리 장치(200)의 내부 명령을 생성할 수 있다. 또한, 전술된 온-칩 ECC(230)에서의 에러 체크 및 정정 동작을 제어하거나, 전술된 도 1의 동작 방법이 구현되도록 제어할 수 있다.
에러 정보 저장부(260)는 도 1의 동작 방법에 의해 생성된 다양한 에러 정보(Einf)를 저장할 수 있다. 에러 정보 저장부(260)는 레지스터(register) 등으로 구현될 수 있다. 에러 정보 저장부(260)는 제어부(250)로부터 에러 정보(Einf)를 수신하여 에러 정보(Einf)를 저장할 수 있다. 에러 정보(Einf)에는 후술되는 바와 같이, 에러 발생 횟수(Ecnt), 제1 플래그(FL1) 및 제2 플래그(FL2) 등에 대한 정보를 포함할 수 있다.
어드레스 디코더(270)는 제어부(250)로부터 수신되는 제1 제어 신호(XCON1)에 응답하여, 외부로부터 수신되는 외부 어드레스(Addr) 또는 에러 정보 저장부(260)에 저장된 내부 어드레스(Addr)에 대응되는 메모리 셀 어레이(210)의 로우(워드 라인) 및 칼럼(비트 라인)을 활성화한다.
이하에서는 도 2의 메모리 장치(200)에서의 동작을 기준으로, 도 1의 동작 방법을 설명한다. 다만, 이는 일 실시예에 대한 것으로, 다른 구조의 메모리 장치에 대해서도 도 1의 동작 방법이 적용될 수 있다.
도 1 및 도 2를 참조하면, 메모리 장치(200)의 메모리 셀 어레이(210)의 제1 어드레스로부터 독출된 데이터(DTA)의 에러를 체크하는 단계(S110)는 온-칩 ECC(230)에 의해 수행될 수 있다. 제1 어드레스는 메모리 셀 어레이(210)의 로우 단위, 즉 로우 어드레스(row address)일 수 있다. 독출 데이터(DTA)의 에러를 체크하는 단계(S110)는 독출 명령 또는 리프레시 명령에 응답하여 독출된 데이터(DTA)에 대해 수행될 수 있다. 예를 들어, 제1 어드레스가 로우 어드레스인 경우, 독출 명령 또는 리프레시 명령은 제1 어드레스 중 일부 칼럼에 대한 데이터의 독출 또는 리프레시를 지시하는 명령일 수 있다.
독출 명령은 제어부(250)에 의해 처리되는, 외부로부터 수신된 명령(CMD)일 수 있다. 다만, 리프레시 명령은 제어부(250)에 의해 처리되는, 외부로부터 수신된 명령(CMD)이거나, 외부로부터 수신된 명령(CMD)에 응답하여 또는 내부 동작 클럭(CLK)의 주기에 따라 내부적으로 생성된 명령일 수 있다.
온-칩 ECC(230)에 의한 에러 발생 신호(EGS)는 제어부(250)로 전송될 수 있다 예를 들어, 제1 어드레스로부터 독출된 데이터에 에러가 발생한 경우(S120의 YES), 온-칩 ECC(230)는 에러 발생 및 에러 발생된 어드레스를 나타내는 에러 발생 신호(EGS)를 제어부(250)에 전송할 수 있다.
제어부(250)는 에러 발생 신호(EGS)를 수신하여, 제1 어드레스에서 발생된 에러의 횟수, 즉 에러 발생 횟수(Ecnt)를 카운트할 수 있다. 이를 위해, 제어부(250)는 카운터(252)를 포함할 수 있다. 에러 발생 횟수(Ecnt)를 카운트하는 단계(S130)는, 제1 어드레스에 대해 독출된 데이터(DTA)의 각 에러 정정 단위에 포함된 에러 비트의 개수가 온-칩 ECC(230)가 에러 정정할 수 있는 최대 비트 수 이하인 경우에 카운트될 수 있다. 예를 들어, 온-칩 ECC(230)의 에러 정정 능력이 에러 정정 단위에 대해 1 비트이고, 에러 정정 단위가 y 비트이고, 제1 어드레스가 y*128 비트의 로우를 나타낼 수 있고, 제1 어드레스에 대해 독출된 데이터(DTA)의 크기가 y*8 비트라면, 독출된 데이터(DTA)를 y 비트로 나눈 8개의 부분 중 1 비트의 에러가 발생된 부분이 있는 경우, 제1 어드레스에 대해 에러 발생 횟수(Ecnt)가 카운트 될 수 있다.
제1 어드레스로부터 독출된 데이터(DTA)의 각 에러 정정 단위에 포함된 에러 비트가 온-칩 ECC(230)가 에러 정정할 수 있는 최대 비트 수 이상인 경우, 제어부(250)는 해당 데이터(DTA)에 대한 명령을 페일로 처리하거나, 해당 데이터(DTA)를 외부로 전송할 수 있다. 외부의 제어 로직, 예를 들어, 메모리 컨트롤러는 메모리 장치(200)의 온-칩 ECC(230)에 의해 에러 정정되지 못한 데이터에 대해 페일 처리하거나, 다른 에러 정정 스킴을 사용하여 에러 정정 동작을 수행할 수 있다.
전술된 바와 같이, 제1 어드레스는 메모리 셀 어레이(210)의 로우 단위, 즉 어드레스(row address)일 수 있다. 다만, 이에 한정되는 것은 아니다. 제어부(250)는 제1 어드레스는 블록(block), 칼럼(column) 또는 섹션(section)에 대한 어드레스의 단위로, 에러 발생 횟수(Ecnt)를 카운트할 수 있다. 제어부(250)는 카운터(252)의 카운팅 결과, 즉 제1 어드레스에 대한 에러 발생 횟수(Ecnt)를 에러 정보 저장부(260)에 저장할 수 있다(S130).
도 3은 도 2의 에러 정보 저장부의 제1 테이블의 예를 나타내는 도면이다. 도 1 내지 도 3을 참조하면, 제1 테이블(TAL1)은 제1 어드레스에 대한 에러 발생 횟수(Ecnt)를 저장할 수 있다. 제1 테이블(TAL1)의 각 인덱스(idx1~idxn)는 로우 어드레스, 각 로우 어드레스에 대한 에러 발생 횟수(Ecnt) 및 제1 플래그(FL1)를 포함한다. 예를 들어, 제1 인덱스(Idx1)는 로우 어드레스 A에 대한 에러 발생 횟수(Ecnt)를 1로, 제1 플래그(FL1)를 0으로 포함한다. 예를 들어, 제2 인덱스(Idx2)는 로우 어드레스 B에 대한 에러 발생 횟수(Ecnt)를 2로, 제1 플래그(FL1)를 1으로 포함한다. 다만, 제1 어드레스가 로우 어드레스가 아닌 다른 어드레스인 경우, 제1 테이블(TAL1)은 로우 어드레스가 아닌 다른 어드레스에 대한 에러 발생 횟수(Ecnt) 및 제1 플래그(FL1)를 포함할 수 있다.
다시 도 1 및 도 2를 참조하면, 제어부(250)는 제1 어드레스에 대한 제1 명령(CMD)을 수신할 수 있다(S140). 제1 명령(CMD)은 리프레시 명령일 수 있다. 제1 명령(CMD)에 응답하여, 제어부(250)는 도 3의 제1 테이블(TAL1)을 참조하여, 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 제1 값 이상인지를 판단할 수 있다(S150).
도 4는 도 1의 제1 어드레스에 대한 에러 발생 횟수가 제1 값 이상인지를 판단하는 단계의 예를 나타내는 순서도이다. 도 2 내지 도 4를 참조하면, 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 제1 값 이상인지를 판단하는 단계(S150)는, 제1 어드레스에 대한 제1 명령(CMD)을 수신하는 경우, 제1 테이블(TAL1)을 참조하는 단계(S152), 제1 테이블(TAL1)에 제1 어드레스가 존재하는 경우(S154의 YES), 제1 테이블(TAL1)의 제1 플래그(FL1)를 참조하여, 제1 플래그(FL1)가, 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 제1 값 이상을 나타내는지를 판단하는 단계(S156)를 포함한다.
예를 들어, 제어부(250)는 외부로부터 제1 어드레스에 대한 제1 명령(CMD), 예를 들어, 리프레시 명령을 수신할 수 있다(S140). 제어부(250)는 제1 명령(CMD)에 응답하여, 제1 테이블(TAL1)을 참조하여(S152), 제1 어드레스가 제1 테이블(TAL1)에 존재하는지를 판단할 수 있다(S154). 예를 들어, 제1 어드레스가 로우 어드레스 B라면, B가 도 3의 제1 테이블(TAL1)에 존재하는 것으로 판단될 수 있다. 제1 테이블(TAL1)의 제2 인덱스(Idx2)에 로우 어드레스 B가 존재하므로(S154의 YES), 제어부(250)는 로우 어드레스 B에 대한 제1 플래그(FL1)의 값에 근거하여, B인 제1 어드레스의 에러 발생 횟수(Ecnt)가 제1 값 이상인지를 판단할 수 있다(S156).
예를 들어, 일 실시예에 따른 메모리 장치(200)에서, 온-칩 ECC(230)는 에러 정정 단위에 대해 1 비트의 에러 정정 능력을 갖도록 구비될 수 있다. 이 경우, 제1 값은 온-칩 ECC(230)의 에러 정정 능력 및 메모리 장치(200)의 신뢰성 등에 대응되는 값으로 설정될 수 있다. 예를 들어, 제1 테이블(TAL1)의 제1 플래그(FL1)는 로우 어드레스에 대한 에러 발생 횟수(Ecnt)가 2 이상이면, 즉 제1 값이 2 이면, 제1 플래그(FL1)는 1의 값을 가질 수 있다. 반면, 제1 테이블(TAL1)의 제1 플래그(FL1)는 각 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 2 보다 작으면, 제1 플래그(FL1)는 0의 값을 가질 수 있다. 제어부(250)는 제1 명령에 응답하여 제1 테이블(TAL1)을 참조하는 때에, 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 2 이상인 경우, 제1 플래그(FL1)를 1로 설정할 수 있다.
제어부(250)는 제1 테이블(TAL1)에 제1 어드레스가 존재하지 아니하거나(S154의 NO), 제1 어드레스에 대한 제1 테이블(TAL1)의 제1 플래그(FL1)가 0 이면(S156의 NO), 제1 어드레스에 대해 제1 명령(CMD)을 수행할 수 있다(S170). 예를 들어, 제1 명령이 리프레시 명령인 경우, 제1 어드레스로부터 데이터(DTA)를 독출한 후, 리프레시 하여 다시 제1 어드레스에 기입할 수 있다.
반면, 제어부(250)는 제1 어드레스에 대한 제1 테이블(TAL1)의 제1 플래그(FL1)가 1이면(S156의 YES), 제1 어드레스가 대체된 제2 어드레스에 대해 제1 명령(CMD)이 수행될 수 있다(S160). 예를 들어, 제1 명령이 리프레시 명령인 경우, 제1 어드레스로부터 데이터(DTA)를 독출한 후, 리프레시 하여 제2 어드레스에 기입할 수 있다.
예를 들어, 노말 셀 어레이(212)에 대한 제1 어드레스가 리던던시 셀 어레이(214)에 대한 제2 어드레스로 대체될 수 있다. 예를 들어, 제1 어드레스는 외부로부터, 메모리 컨틀로러로부터 제공되는 외부 어드레스이고, 제2 어드레스는 메모리 장치(200)의 내부에서 생성되는 내부 어드레스일 수 있다. 제어부(250)는 제1 어드레스 및 제2 어드레스의 맵핑 정보(Minf)를 에러 정보 저장부(260)에 저장할 수 있다.
도 5는 도 2의 에러 정보 저장부의 제2 테이블의 예를 나타내는 도면이다. 도 2 및 도 5를 참조하면, 제2 테이블(TAL2)은 제1 어드레스 및 제2 어드레스의 맵핑 정보(Minf)를 포함하고, 에러 정보 저장부(260)에 저장될 수 있다. 제2 테이블(TAL2)의 각 인덱스(idx1~idxm)는 외부 로우 어드레스, 및 외부 로우 어드레스에 맵핑되는 내부 로우 어드레스를 포함할 수 있다. 예를 들어, 제2 테이블(TAL2)의 제1 인덱스(Idx1)는 제1 어드레스인 외부 로우 어드레스 B를 제2 어드레스인 내부 로우 어드레스 I와의 맵핑 관계를 포함한다. 제2 테이블(TAL2)에 저장된 제1 어드레스는, 제1 테이블(TAL1)에서 삭제될 수 있다. 예를 들어, 외부 로우 어드레스 B에 대한 제1 테이블(TAL1)의 제2 인덱스(Idx2)는 삭제될 수 있다.
다시 도 1 및 도 2를 참조하면, 전술한 바와 같이, 임의의 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 제1 값 이상인 경우(S150의 YES), 제1 명령(CMD)은 제2 어드레스에 대해 수행되고, 이를 위해, 제어부(250)는 도 5의 제2 테이블(TAL2)을 참조할 수 있다. 예를 들어, 제1 테이블(TAL1)의 제1 플래그(FL1)가 1인 어드레스에 대해 리프레시 명령을 수행하는 경우, 제어부(250)는 제2 테이블(TAL2)을 참조하여, 제2 어드레스에 대응되는 제1 제어 신호(XCON1)를 어드레스 디코더(270)에 전송할 수 있다.
제어부(250)는 제1 어드레스에 대한 에러 발생 횟수(Ecnt)가 제1 값보다 작은 경우(S150의 NO), 제1 어드레스에 대해 제1 명령(CMD) 등을 수행할 수 있다(S170). 예를 들어, 제1 테이블(TAL1)의 제1 플래그(FL1)가 0인 어드레스에 대해 리프레시 명령을 수행하는 경우, 제어부(250)는 제1 어드레스에 대응되는 제1 제어 신호(XCON1)를 어드레스 디코더(270)에 전송할 수 있다.
제어부(250)는 제1 어드레스에 대한 에러가 검출되지 아니하면(S120의 NO), 다음 동작을 수행할 수 있다(S180). 예를 들어, 제1 어드레스에 대한 에러를 체크하는 단계(S110)가 독출 명령 또는 리프레시 명령 등에 따라 수행된 경우, 독출 명령 또는 리프레시 명령에 연속하는 다음 명령이 처리될 수 있다.
이렇듯, 일 실시예에 따른 메모리 장치 및 이의 동작 방법에 의하면, 온-칩 ECC(230)를 구비함으로써 에러 정정의 효율성을 추구하면서도, 임의의 단위, 예를 들어, 로우 단위에 대해 에러 발생 확률이 높아지는 경우, 해당 어드레스를 리던던시 셀 어레이(214)에 대한 어드레스로 동적으로 대체시킴으로써, 온-칩 ECC(230)의 제한된 에러 정정 능력 하에서도 신뢰성 있는 에러 체크 및 정정 동작을 수행할 수 있다. 예를 들어, 칩 면적, 동작 레이턴시 및 전력 소모 등의 제한에 근거하여 에러 정정 단위에 대해 1 비트의 에러 정정 능력을 갖는 온-칩 ECC(230)를 포함하는 메모리 장치(200)에서, 임의의 단위, 예를 들어 로우 단위로, 정정 가능한 에러가 발생한 횟수를 카운트하여, 각 로우에 대해 에러가 발생한 횟수가 일정 값 이상이면, 해당 로우를 다른 로우로 대체함으로써, 에러 정정 단위에 대해 정정 불가능한 2 비트 이상의 에러가 발생될 확률을 줄일 수 있다.
즉, 비록 온-칩 ECC(230)에 의해 정정 가능한 에러가 발생하였더라도, 에러의 발생 횟수가 특정 값 이상이 되면, 해당 영역에서 정정 불가능한 상태의 에러가 발생될 확률이 높은 것으로 판단하여, 해당 영역에 대한 액세스를 제한함으로써, 온-칩 ECC(230)에 의해 정정 불가능한 에러가 발생될 확률을 줄일 수 있다. 이에 따라, 메모리 장치(200) 또는 메모리 장치(200)를 포함하는 시스템의 신뢰성을 향상시킬 수 있다. 이때, 칩 면적의 증가를 최소화하기 위해, 대체되는 어드레스는 리던던시 셀 어레이(214)에 대한 어드레스일 수 있다.
도 6은 일 실시예에 따른 메모리 장치의 동작 방법에서 제1 테이블 및 제2 테이블을 형성하는 예를 나타내는 순서도이다. 도 2 및 도 6을 참조하면, 일 실시예에 메모리 장치(200)의 동작 방법은, 제1 테이블을 형성하는 단계(S620), 제2 테이블을 형성하는 단계(S640), 및 제1 테이블 또는 제2 테이블이 풀(full)인 경우 제1 테이블 또는 제2 테이블의 각 인덱스에 포함된 어드레스 중 LRU(Least Resently Used) 방식에 근거하여, 가장 오랫동안 사용되지 아니한 어드레스를 삭제하는 단계(S660)를 포함할 수 있다. 제1 테이블을 형성하는 단계(S620) 및 제2 테이블을 형성하는 단계(S640)는 전술된 바와 같으므로, 이에 대한 자세한 설명은 생략한다. 제어부(250)는 가장 오랫동안 사용되지 아니한 어드레스를 삭제하는 단계(S660)가 수행될 수 있도록, 각 테이블의 인덱스의 어드레스에 대한 액세스 횟수를 카운트할 수 있다.
도 7은 다른 실시예에 따른 메모리 장치에서의 동작 방법을 나타내는 도면이다. 도 2 및 도 7을 참조하면, 다른 실시예에 따른 메모리 장치(200)의 동작 방법은 제2 어드레스에 대해 제1 명령이 수행(S160)된 후, 즉 도 5의 제2 테이블(TAL2) 상에 제1 어드레스 및 제2 어드레스에 대한 맵핑 정보(Minf)가 저장된 이후에, 제1 어드레스에 대한 제2 명령을 수신하는 단계(S720), 제1 어드레스 전체로부터 독출된 데이터를 에러 정정 단위로 에러를 체크하는 단계(S740), 제1 어드레스 전체로부터 독출된 데이터의 임의의 에러 정정 단위에 대해 에러(정정 가능한 에러)가 발생한 경우(S760의 YES), 제3 테이블에 에러 발생 개수(Ecnt)를 저장하는 단계(S780) 및 제1 어드레스 전체로부터 독출된 데이터에서 발생된 에러의 개수가 제2 값 이하이면(S790의 YES), 상기 제2 테이블에서 상기 제1 어드레스에 대한 정보를 삭제하는 단계(S792)를 포함할 수 있다.
제2 명령은 리프레시 명령일 수 있고, 제1 어드레스는 로우 어드레스일 수 있다. 리프레시 명령의 경우, 로우 단위로 수행될 수 있다. 온-칩 ECC(230)가 하나의 디코더만을 구비하는 경우, 제1 어드레스 전체로부터 독출된 데이터를 에러 정정 단위로 에러를 체크하는 단계(S740)는 제1 어드레스의 크기, 예를 들어 로우의 비트 수를 에러 정정 단위의 크기로 나눈 횟수만큼 에러를 체크할 수 있다. 이 경우, 로우의 비트 수를 에러 정정 단위의 크기로 나눈 횟수만큼 리프레시 동작이 수행된 후에, 제1 어드레스 전체로부터 독출된 데이터에 대한 에러 발생 개수가 카운트될 수 있다. 다만, 온-칩 ECC(230)가 로우의 비트 수를 에러 정정 단위의 크기로 나눈 수만큼의 디코더를 구비한다면, 제1 어드레스 전체로부터 독출된 데이터를 에러 정정 단위로 에러를 체크하는 단계(S740)는 제1 어드레스에 대한 1회의 디코딩 동작으로 제1 어드레스 전체로부터 독출된 데이터에 대한 에러 발생 개수가 카운트될 수 있다.
제3 테이블은 도 8과 같이 형성될 수 있다. 도 2의 에러 정보 저장부의 제3 테이블의 예를 나타내는 도 8을 참조하면, 제3 테이블(TAL3)은 제2 어드레스에 대한 에러 발생 개수(Ecnt)를 저장할 수 있다.
제3 테이블(TAL3)의 각 인덱스(idx1~idxm)는 제1 어드레스(예를 들어 외부 로우 어드레스)와 제1 어드레스에 대한 에러 발생 개수(Ecnt), 그리고 제2 플래그(FL2)를 포함한다. 예를 들어, 제1 인덱스(Idx1)는 도 5의 제2 테이블(TAL2)의 제1 인덱스(Idx1)에 저장된 외부 로우 어드레스 B에 대한 에러 발생 횟수(Ecnt) 및 제2 플래그(FL2)를 저장할 수 있다. 외부 로우 어드레스 B에 대한 에러 발생 횟수(Ecnt)는 외부 로우 어드레스 B 전체에 대해 독출된 데이터를 온-칩 ECC(230)의 에러 정정 단위로 구분하여, 각 에러 정정 단위에서의 에러(정정 가능한 에러) 발생 여부를 나타낸다.
예를 들어, 외부 로우 어드레스 B 전체에 대해 독출된 데이터를 에러 정정 단위로 구분한 하나의 부분에서 에러가 발생되고, 나머지 부분에서 에러가 발생되지 않았다면, 외부 로우 어드레스 B에 대한 에러 발생 개수(Ecnt)는 1이다. 예를 들어, 외부 로우 어드레스 B 전체에 대해 독출된 데이터를 에러 정정 단위로 구분한 두 부분에서 에러가 발생되고, 나머지 부분에서 에러가 발생되지 않았다면, 외부 로우 어드레스 B 에 대한 에러 발생 개수(Ecnt)는 2이다.
제2 플래그(FL2)는 에러 발생 개수(Ecnt)가 제2 값 이하이면, 1로 설정될 수 있다. 예를 들어, 온-칩 ECC(230)의 에러 정정 능력이 1 비트인 경우, 제2 값은 1로 설정될 수 있다. 따라서, 외부 로우 어드레스 B 에 대한 에러 발생 개수가 1인 경우, 외부 로우 어드레스 B 에 대한 제2 플래그(FL2)는 1로 설정될 수 있다.
다시 도 2 및 도 7를 참조하면, 도 8의 제3 테이블(TAL3)에서의 제1 어드레스에 대한 제2 플래그(FL2)가 1이면, 제2 테이블(TAL2)에서 제1 어드레스에 대한 정보를 삭제한다(S790). 제2 어드레스 전체로부터 독출된 데이터에서 발생된 에러의 개수가 제2 값보다 큰 경우(S790의 NO), 다음 동작을 수행할 수 있다(S794). 이렇듯 제2 테이블(TAL2)에 맵핑 관계가 설정된 경우라도, 제1 어드레스가 정정 불가능한 에러가 발생하지 아니한 경우, 제1 어드레스에 대한 액세스를 다시 허용할 수 있다. 전술한 바와 같이, 정정 불가능한 에러가 발생하는 경우에는, 페일 처리될 수 있다.
도 9는 다른 실시예에 따른 메모리 장치에서의 동작 방법을 나타내는 도면이다. 도 9를 참조하면, 독출 또는 리프레시 동작 중에 정정 가능한 에러의 발생 여부를 진단하는 단계(S920), 정정 가능한 에러가 반복적으로 발생하는 로우를 선택하여 정정 불가능한 에러가 발생될 확률이 높은 로우를 예측하는 단계(S940), 정정 불가능한 에러가 발생될 확률이 높은 로우에 저장된 데이터의 저장 위치를 변경하는 단계(S960) 및 정정 불가능한 에러가 발생될 확률이 높은 로우로의 액세스 요청에 대해 저장 위치가 변경된 데이터의 어드레스로 리다이렉션(redirection)하는 단계(S980)를 포함할 수 있다.
독출 또는 리프레시 동작 중에 정정 가능한 에러의 발생 여부를 진단하는 단계(S920)는 도 1의 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 독출된 데이터의 에러를 체크하는 단계(S110)에 대응될 수 있다. 정정 가능한 에러가 반복적으로 발생하는 로우를 선택하여 정정 불가능한 에러가 발생될 확률이 높은 로우를 예측하는 단계(S940)는 도 1의 에러가 발생한 경우(S120의 YES) 제1 어드레스에서 발생된 에러의 횟수를 카운트하여, 제1 어드레스에 대한 에러 횟수를 제1 테이블에 저장하는 단계(S130)에 대응될 수 있다.
정정 불가능한 에러가 발생될 확률이 높은 로우에 저장된 데이터의 저장 위치를 변경하는 단계(S960) 및 정정 불가능한 에러가 발생될 확률이 높은 로우로의 액세스 요청에 대해 저장 위치가 변경된 데이터의 어드레스로 리다이렉션(redirection)하는 단계(S980)는 도 1의 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인 경우(S150의 YES) 제1 테이블을 참조하여, 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인 경우(S150의 YES), 제1 어드레스를 제2 어드레스로 맵핑하는 단계(S160)에 대응될 수 있다.
정정 불가능한 에러가 발생될 확률이 높은 로우를 예측하는 단계(S940)는, 예를 들어, 에러 정정 단위에 대해 1 비트의 에러 정정 능력을 갖는 도 2의 온-칩 ECC(230)를 포함하는 메모리 장치(200)의 경우, 정정 가능한 에러가 2회 이상 반복된 로우에 대해 정정 불가능한 에러가 발생될 확률이 70% 이상일 수 있다. 정정 불가능한 에러가 발생될 확률이 높은 로우에 저장된 데이터의 저장 위치를 변경하는 단계(S960)는 예를 들어, 도 2의 노말 셀 어레이(212)에 저장된 데이터를, 메모리 장치(200)의 내부의 다른 위치, 예를 들어 도 2의 리던던시 셀 어레이(214)로 변경시킬 수 있다.
도 10 내지 도 12는 온-칩 ECC를 포함하는 DRAM에서의 구체적 동작 방법의 예를 나타내는 도면이다. 먼저 도 2 및 도 10을 참조하면, 제어부(250)는 제1 로우 어드레스에 대한 액티브(Active) 명령을 수신(S1020)하는 경우, 도 5의 제2 테이블(TAL2)을 참조하여(S1040), 제1 로우 어드레스가 제2 테이블(TAL2)에 존재하는 경우(S1060의 YES), 어드레스 디코더(270)가 제2 테이블(TAL2) 상에 제1 로우 어드레스와 맵핑된 제2 로우 어드레스의 워드 라인을 활성화(S1080)하도록 제어할 수 있다. 반면, 제어부(250)는 제1 로우 어드레스가 제2 테이블(TAL2)에 존재하지 아니하는 경우(S1060의 NO), 어드레스 디코더(270)가 제1 로우 어드레스의 워드 라인을 활성화(S1090)하도록 제어할 수 있다.
다음으로 도 2 및 도 11을 참조하면, 제어부(250)는 도 10에 의해 제1 로우 어드레스 또는 제2 로우 어드레스가 활성화 되면(S1080, S1090), 독출 명령의 칼럼 어드레스를 수신하고(S1110), 온-칩 ECC(230)이 에러의 체크 및 정정(S1120)한 결과를 수신하여, 에러(정정 가능한 에러)가 존재하는 경우(S1130의 YES) 도 3의 제1 테이블(TAL1)을 참조한다(S1140). 제1 테이블(TAL1)에 제1 로우 어드레스가 존재하면(S1150의 YES), 제1 로우 어드레스에 대한 에러 발생 횟수(Ecnt)를 증가시킨다(S1160). 그리고, 제1 테이블(TAL1)의 에러 발생 횟수(Ecnt)가 제1 값 이상이면(S1170의 YES) 제1 플래그(FL1)를 1로 설정한다(S1180).
반면, 제1 테이블(TAL1)에 제1 로우 어드레스(Addr)가 존재하지 아니하면(S1150의 NO), 제1 테이블에 제1 로우 어드레스를 저장할 수 있는 빈 엔트리(entry)가 존재하는지를 판단하여(S1190), 빈 엔트리가 존재하는 경우(S1190의 YES), 제1 테이블에 제1 로우 어드레스를 저장한다(S1192). 반면, 제1 테이블에 빈 엔트리가 존재하지 아니하는 경우(S1190의 NO), 제1 테이블(TAL1)에서 LRU 엔트리를 삭제(S1194)한 후, 삭제된 엔트리에 제1 로우 어드레스를 저장한다(S1192). 제1 플래그(FL1)를 1로 설정(S1170)한 후, 제1 테이블(TAL1)의 에러 발생 횟수(Ecnt)가 제1 값보다 작은 경우(S1170의 NO), 또는 에러(정정 가능한 에러)가 존재하지 아니하는 경우(S1130의 NO)에는 해당 칼럼 어드레스로부터 독출된 데이터를 출력한다(S1111).
다음으로 도 2 및 도 12를 참조하면, 제어부(250)는 제1 로우 어드레스에 대한 리프레시 명령이 수신되면(S1210), 도 5의 제2 테이블(TAL2)을 참조하여(S1220), 제1 로우 어드레스가 제2 테이블(TAL2)에 존재하는 경우(S1230의 YES), 도 8의 제3 테이블(TAL3)을 참조한다(S1240). 반면, 제1 로우 어드레스가 제2 테이블(TAL2)에 존재하지 아니하는 경우(S1230의 NO), 도 3의 제1 테이블(TAL1)을 참조한다(S1250).
도 13은 도 12의 제3 테이블을 참조하는 경우의 메모리 장치의 리프레시 동작 방법을 나타내는 순서도이다. 도 2 및 도 13을 참조하면, 제3 테이블(TAL3)을 참조하여(S1240), 제2 플래그(FL2)가 1로 설정되어 있는지를 판단한다(S1320). 제2 플래그(FL2)가 1로 설정되어 있으면(S1320의 YES), 제2 로우 어드레스에 저장된 데이터를 제1 로우 어드레스에 기입하여(S1342) 리프레시 동작을 수행하고, 도 2의 제2 테이블(TAL2)에서 제1 로우 어드레스에 대한 엔트리를 삭제한다(S1344). 그리고, 제3 테이블에서 제1 로우 어드레스에 대한 엔트리를 삭제(S1346)할 수 있다.
반면, 제2 플래그(FL2)가 1로 설정되어 있지 아니하면(S1320의 NO), 제어부(250)는 어드레스 디코더(270)가 제1 로우 어드레스의 워드 라인을 활성화(S1361)하도록 제어할 수 있다. 제어부(250)는 활성화된 제1 로우 어드레스로부터 독출된 데이터를 에러 정정 단위로, 온-칩 ECC(230)이 에러의 체크 및 정정(S1362)한 결과를 수신하여, 에러(정정 가능한 에러)가 존재하는 경우(S1363의 YES), 제1 로우 어드레스에 대한 에러 발생 개수(Ecnt)를 증가시킨다(S1364).
제1 로우 어드레스 전체에 대해 독출된 데이터의 에러 발생 개수(Ecnt)가 제2 값이하인 경우(S1366의 YES), 제3 테이블(TAL3)의 제2 플래그(FL2)를 1로 설정하고(S1367), 제1 로우 어드레스의 워드라인을 비활성화한다(S1368). .
반면, 제1 로우 어드레스로부터 독출된 데이터에 에러(정정 가능한 에러)가 존재하지 아니하는 경우(S1363의 NO), 에러 발생 개수(Ecnt)를 증가시키지 아니하고 바로 제1 로우 어드레스 전체에 대해 독출된 데이터의 에러 발생 개수(Ecnt)가 제2 값 이하인지 판단한다(S1366). 제2 로우 어드레스 전체에 대해 독출된 데이터의 에러 발생 횟수(Ecnt)가 제2 값보다 큰 경우(S1366의 NO)는 제2 어드레스의 워드라인을 활성화하여(S1369) 제2 어드레스에 대한 리프레시 동작을 수행한다.
도 14는 도 12의 제1 테이블을 참조하는 경우의 메모리 장치의 리프레시 동작 방법을 나타내는 순서도이다. 도 2 및 도 14를 참조하면, 제1 테이블(TAL1)을 참조하여, 제1 로우 어드레스가 제1 테이블(TAL1)에 존재하고 제1 로우 어드레스에 대한 제1 플래그(FL1)가 1로 설정되어 있으면(S1410의 YES), 제1 로우 어드레스를 대체할 제2 로우 어드레스를 검색한다(S1420). 제1 로우 어드레스를 대체할 제2 로우 어드레스가 존재하면(S1430의 YES), 제2 테이블(TAL2)에 제1 로우 어드레스와 제2 로우 어드레스의 맵핑 정보(Minf)를 저장한다(S1440). 그리고, 제1 로우 어드레스에 저장된 데이터를 제2 로우 어드레스로 옮기고(S1450), 제1 테이블(TAL1)에서 제1 로우 어드레스에 대한 엔트리를 삭제한다(S1460).
반면, 제1 로우 어드레스가 제1 테이블(TAL1)에 존재하지 않거나 제1 로우 어드레스에 대한 제1 플래그(FL1)가 1로 설정되어 있지 아니하거나(S1410의 NO), 제1 로우 어드레스를 대체할 제2 로우 어드레스가 존재하지 아니하면(S1430의 NO), 제1 로우 어드레스에 대한 리프레시 동작을 수행한다(S1470).
도 15는 일 실시에에 따른 메모리 시스템을 나타내는 도면이다. 도 15를 참조하면, 일 실시예에 따른 메모리 시스템(1500)은 메모리 컨트롤러(1520) 및 메모리 장치(200)를 포함할 수 있다. 메모리 컨트롤러(1520)는 각종 신호들을 메모리 장치(200)로 제공하여 메모리 동작을 제어한다. 예컨대, 메모리 컨트롤러(1520)는 클록 신호(CLK), 칩 선택신호(CS), 명령(CMD) 및 어드레스(Addr) 등을 메모리 장치(200)로 제공하며, 또한 기입 및 독출 동작을 위한 데이터(DTA)가 메모리 컨트롤러(1520)와 메모리 장치(200) 사이에서 송수신된다. 온-칩 ECC(230)를 포함하는 메모리 장치(200)는 도 2와 같은 구조로, 도 1 등의 동작 방법으로 동작할 수 있다.
도 15에서는 메모리 장치(200)에 온-칩 ECC(230)가 포함되고, 메모리 컨트롤러(1520)에는 ECC가 포함되지 아니하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 다른 실시에에 따른 메모리 시스템을 나타내는 도 16을 참조하면, 메모리 컨트롤러(1520) 또한, ECC 엔진(1522)을 포함할 수 있다. 이 경우, 메모리 컨트롤러(1520)의 ECC 엔진(1522) 및 메모리 장치(200)의 온-칩 ECC(230)는 서로 에러 정정 능력이 다를 수 있다. 예를 들어, 메모리 컨트롤러(1520)의 ECC 엔진(1522)이 메모리 장치(200)의 온-칩 ECC(230)보다 에러 정정 능력이 높을 수 있다. 이 경우, 메모리 장치(200)의 온-칩 ECC(230)에서 정정하지 못한 데이터에 대해, 메모리 컨트롤러(1520)의 ECC 엔진(1522)이 에러 체크 및 정정 동작을 수행할 수 있다.
또한, 다른 실시에에 따른 메모리 시스템을 나타내는 도 17을 참조하면, 메모리 장치(200)에는 온-칩 ECC(230)가 포함되지 아니하고, 메모리 컨트롤러(1520)의 ECC 엔진(1522)만이 구비될 수 있다. 이때, 메모리 컨트롤러(1520)의 ECC 엔진(1522)에 의해 체크된 에러 등에 대한 처리는 전술된 도 1의 동작 방법이 적용될 수 있다. 예를 들어, 메모리 컨트롤러(1520)의 ECC 엔진(1522)의 에러 정정 능력 이상의 에러가 발생될 확률이 높은 어드레스를 도 2의 리던던시 셀 어레이(214)의 어드레스로 대체할 수 있다. 도 17의 경우, 메모리 컨트롤러(1520)가 메모리 장치(200)의 리던던시 셀 어레이에 대한 내부 어드레스(제2 어드레스)를 메모리 장치(200)로 제공하기 위해, 메모리 컨트롤러(1520)와 메모리 장치(200)의 핀(pin)이 추가되거나, 규정되지 아니한 핀을 내부 어드레스에 대한 핀으로 할당할 수 있다. 또는, 노말 셀 어레이에 대한 어드레스(외부 어드레스(제1 어드레스)를 제공하는 타이밍을 시분할하여 내부 어드레스를 제공할 수 있다.
도 15 내지 도 17의 메모리 시스템(1500)은 정정 불가능한 상태의 에러가 발생될 확률이 높은 것으로 판단된 경우, 해당 영역에 대한 액세스를 제한함으로써, 온-칩 ECC에 의해 정정 불가능한 에러가 발생될 확률을 줄일 수 있다. 이에 따라, 메모리 시스템(1500)의 신뢰성을 향상시킬 수 있다. 또한, 전술한 바와 같이, 정정 불가능한 에러 발생 확률이 높은 어드레스에 대체되는 어드레스는 리던던시 셀 어레이에 대한 어드레스이므로, 메모리 시스템(1500)의 전체 면적의 증가가 최소화될 수 있다.
도 18은 다른 실시예에 따른 메모리 장치로, 다수의 반도체 레이어들을 적층하여 구현되는 예를 나타낸다. 도 18에 도시된 바와 같이, 메모리 장치(1800)는 다수의 반도체 레이어들(LA1~LAn)을 구비할 수 있다. 반도체 레이어들(LA1 ~ LAn) 각각은 DRAM 셀을 포함하는 DRAM 칩일 수 있으며, 또는 반도체 레이어들(LA1 ~ LAn) 중 일부는 외부의 메모리 컨트롤러와 인터페이싱을 수행하는 마스터 칩이고 나머지는 데이터를 저장하는 슬레이브 칩일 수 있다. 도 18의 예에서는, 가장 아래에 위치하는 반도체 레이어(LA1)는 마스터 칩인 것으로 가정하며 또한 나머지 반도체 레이어들(LA2 ~ LAn)은 슬레이브 칩인 것으로 가정한다.
다수의 반도체 레이어들(LA1 ~ LAn)은 관통 실리콘 비아(TSV)를 통해 신호를 서로 송수신하며, 마스터 칩(LA1)은 외면에 형성된 도전 수단(미도시)을 통해 메모리 컨트롤러와 통신한다. 마스터 칩으로서 제1 반도체 레이어(LA1)와 슬레이브 칩으로서 제n 반도체 레이어(LAn)를 중심으로 하여 메모리 장치(1800)의 구성 및 동작을 설명하면 다음과 같다. 제1 반도체 레이어(LA1)는 슬레이브 칩들에 구비되는 메모리 셀 어레이(MCA)을 구동하기 위한 각종 회로들을 구비한다. 예를 들어, 제1 반도체 레이어(LA1)는 메모리 셀 어레이(MCA)의 워드라인을 구동하기 위한 로우 드라이버(X-Driver, XD)와, 비트라인을 구동하기 위한 칼럼 드라이버(Y-Driver, YD)와, 데이터의 입출력을 제어하기 위한 데이터 입출력부(DIO), 기입 명령 판별부(WAU)와, 외부로부터 어드레스를 입력받아 버퍼링하는 어드레스 버퍼(BUF) 등을 구비할 수 있다.
각 반도체 레이어, 예를 들어, 제n 반도체 레이어(LAn)는, 셀 어레이(MCA)와, 셀 어레이를 구동하기 위한 기타 주변 회로들(PU), 예를 들어 셀 어레이(MCA)의 로우 및 칼럼을 선택하기 위한 로우/칼럼 선택부, 비트라인 센스앰프 등(미도시)이 배치되는 주변회로 영역(PU)을 구비할 수 있고, 천이 제어부(TCU)는 주변회로 영역(PU)에 배치될 수 있다. 또한, 도 2의 온-칩 ECC(230)가 주변회로 영역(PU)에 배치될 수 있다. 반도체 레이어들(LA2 ~ LAn)에 기입하고자 하는 데이터(기입 데이터 또는 변조 데이터)는 관통 실리콘 비아(TSV)를 통해 제1 반도체 레이어(LA1)로부터 제공될 수 있다.
도 19는 일 실시예에 따른 모바일 장치를 나타내는 도면이다. 도 19를 참조하면, 본 개시의 실시예에 따른 모바일 장치(1900)는 사용자 인터페이스를 위하여 디스플레이부(DSU), 키 패드 또는 터치 스크린 등 사용자의 입력을 수신하는 입력부(IU), 모바일 장치(1900) 내부로 전력의 제공을 제어하기 위한 전력 관리부(PCU) 및 시스템 온-칩(SoC)을 포함할 수 있다. 모바일 장치(1900)는 휴대폰, 스마트 폰, MP3 등 음향 기기, 노트북 및 태블릿 PC 등 각종 장치 등이 적용될 수 있으며, 모바일 장치(1900)의 다양한 기능에 따른 다른 장치들이 모바일 장치(1900)에 더 구비될 수 있다. 시스템 온-칩(SoC)은 본 개시의 실시예에 따른 메모리 장치 및/또는 메모리 시스템을 구비하고, 에러 정정 능력 이상의 에러가 발생될 확률을 낮춰 장치의 신뢰성을 향상시킬 수 있다.
도 20은 본 개시의 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 20을 참조하면, 본 개시의 실시예에 따른 메모리 시스템(2000)은 메모리 모듈(2040)과 메모리 컨트롤러(2020)를 포함한다. 또한, 메모리 모듈(2040)은 모듈 보드(Module board) 상에 장착된 하나 이상의 메모리 장치(200)를 구비하며, 예를 들어 메모리 장치(200)는 DRAM 칩일 수 있다. 또한, 메모리 장치(200)는 전술한 도 2의 메모리 장치와 같은 구조로 구비되고 도 1 등의 동작 방법으로 동작할 수 있다. 메모리 컨트롤러(2020)는 메모리 모듈(2040)에 구비되는 메모리 장치(200)를 제어하기 위한 각종 신호들을 출력한다. 예를 들어, 메모리 컨트롤러(2020)는 도 15와 같은 각종 신호들을 메모리 모듈(2040)에 전송할 수 있다.
도 21은 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다. 도 21을 참조하면, 메모리 모듈(2100)은 메모리 칩들 및 제어 칩을 포함할 수 있다. 메모리 칩들은 데이터를 저장할 수 있다. 제어 칩은 외부의 메모리 컨트롤러로부터 전송되는 각종 신호에 응답하여, 메모리 칩들을 제어할 수 있다. 예를 들어, 제어 칩은 외부로부터 전송되는 칩 선택 신호에 대응되는 메모리 칩을 활성화할 수 있다. 또한, 일 실시예에 따른 메모리 모듈(2100)의 제어 칩은 ECC를 포함할 수 있다. 그리고, 각 메모리 칩들에서 독출되는 데이터에 대한 에러 체크 및 정정 동작을 수행할 수 있다. 이때, 일 실시예에 따른 메모리 모듈(2100)의 제어 칩은 ECC의 에러 정정 능력 이상의 에러가 발생할 확률을 낮추기 위해, 일정 횟수 이상의 에러가 발생된 어드레스를 다른 어드레스, 예를 들어, 각 메모리 칩의 리던던시 메모리 셀 어레이로 대체함으로써, 신뢰성을 향상시킬 수 있다. 도 21의 경우, 메모리 칩이 메모리 장치(200)의 리던던시 셀 어레이에 대한 내부 어드레스(제2 어드레스)를 메모리 장치(200)로 제공하기 위해, 메모리 칩과 메모리 장치(200)의 핀(pin)이 추가되거나, 규정되지 아니한 핀을 내부 어드레스에 대한 핀으로 할당할 수 있다. 또는, 노말 셀 어레이에 대한 어드레스(외부 어드레스(제1 어드레스)를 제공하는 타이밍을 시분할하여 내부 어드레스를 제공할 수 있다.
도 22는 본 개시의 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 22를 참조하면, 본 개시의 실시예에 따른 메모리 시스템(2200)은 메모리 컨트롤러(2220) 및 메모리 장치(200)를 포함하고, 메모리 장치(200)는 도 2와 같은 구조로, 도 1 등의 동작을 수행함으로써, 메모리 시스템(2200)의 신뢰성을 향상시킬 수 있다. 도 22의 메모리 시스템(2200)에서, 메모리 장치(200)는 예를 들어 인터페이스를 와이드 I/O 인터페이스로 채택한 LPDDR DRAM일 수 있고, 메모리 컨트롤러(2220)는 메모리 장치(200)와 와이드 I/O 인터페이스로 통신할 수 있도록 와이드 I/O 컨트롤러를 포함할 수 있다. 도 22의 메모리 시스템(2200)에서의 와이드 I/O 인터페이스는1.2V 파워로 구동되고, 4채널 128 비트로 동작하고, 2133Mtps의 전송율로 구동될 수 있다.
도 23은 본 개시의 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 23의 메모리 시스템(2300)은 광 연결 장치들(OLK1, OLK2)과 메모리 컨트롤러(2320), 그리고 메모리 장치(200)을 포함한다. 메모리 장치(200)로서 DRAM 칩이 예시된다. 광 연결 장치들(OLK1, OLK2)은 메모리 컨트롤러(2320)와 메모리 장치(200)를 상호 연결한다(interconnect). 메모리 컨트롤러(2320)는 컨트롤 유닛(CU), 제1 송신부(CTx) 및 제1 수신부(CRx)를 포함한다. 컨트롤 유닛(CU)은 제1 전기 신호(SN1)를 제1 송신부(CTx)로 전송한다. 제1 전기 신호(SN1)는 메모리 장치(200)로 전송되는 CA 신호, 클록 신호, 및 데이터 등을 포함할 수 있다.
제1 송신부(CTx)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제1 전기 신호(SN1)를 제1 광 송신 신호(OTP1EC)로 변환하여 광 연결 장치(OLK1)로 전송한다. 제1 광 송신 신호(OTP1EC)는 광 연결 장치(OLK1)를 통하여 시리얼 통신으로 전송된다. 제1 수신부(CRx)는 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(OLK2)로부터 수신된 제2 광 수신 신호(OPT2OC)를 제2 전기 신호(SN2)로 변환하여 컨트롤 유닛(CU)으로 전송한다. 메모리 장치(MDEV)는 제2 수신부(MRx), 셀 어레이(MCA) 및 제2 송신부(MTx)를 포함한다. 제2 수신부(MRx)은 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(OLK1)로부터 제1 광 수신 신호(OPT1OC)를 제1 전기 신호(SN1)로 변환하여 메모리 셀 어레이(MCA)로 전송한다.
셀 어레이(MCA)는 제1 전기 신호(SN1)에 응답하여 라이트 데이터를 메모리 셀에 기입하거나, 리드된 데이터를 제2 전기 신호(SN2)로서 제2 송신부(MTx)로 전송한다. 제2 전기 신호(SN2)는 메모리 컨트롤러(MCtrl)로 전송되는 클록 신호, 리드 데이터 등을 포함할 수 있다. 제2 송신부(MTx)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제2 전기 신호(SN2)를 제2 광 송신 신호(OPT2EC)로 변환하여 광 연결 장치(OLK2)로 전송한다. 제2 광 송신 신호(OTP2EC)는 광 연결 장치(OLK2)를 통하여 시리얼 통신으로 전송된다. 도 23에는 도시되지 않았으나, 본 개시의 실시예에 따른 메모리 장치(200)는 도 2와 같은 구조로, 도 1 등의 동작을 수행할 수 있다. 예를 들어, 도 23의 메모리 장치(200)는, 온-칩 ECC의 에러 정정 능력 이상의 에러가 발생할 확률을 낮추기 위해, 일정 횟수 이상의 에러가 발생된 어드레스를 다른 어드레스, 예를 들어, 리던던시 메모리 셀 어레이로 대체함으로써, 신뢰성을 향상시킬 수 있다.
도 24는 본 개시의 실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다. 도 24를 참조하면, 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(2400)에 메모리 장치가 시스템 메모리(MDEV)로 장착될 수 있다. 시스템 메모리(MDEV)로 장착되는 메모리 장치는 앞서 설명되었던 다수의 실시예들 중 어느 하나가 적용될 수 있다. 예를 들어, 시스템 메모리(MDEV)는 본 개시의 실시예에 따른 메모리 장치(200)로, 포함하는 온-칩 ECC의 에러 정정 능력 이상의 에러가 발생할 확률을 낮추기 위해, 일정 횟수 이상의 에러가 발생된 어드레스를 다른 어드레스, 예를 들어, 리던던시 메모리 셀 어레이로 대체함으로써, 신뢰성을 향상시킬 수 있다. 또한, 도 24의 시스템 메모리(MDEV)는 메모리 장치와 메모리 컨트롤러를 포함하는 개념일 수 있다. 본 개시의 실시예에 따른 컴퓨팅 시스템(2400)은 프로세서(PR), 시스템 메모리(MDEV), 유저 인터페이스(UI)와 블휘발성 메모리를 구비하는 저장 장치(ST)를 포함하며, 이들 구성 요소는 각각 버스(BS)에 전기적으로 연결되어 있다. 저장 장치(ST)는 SSD나 HDD와 같은 대용량 저장 장치가 사용될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 개시를 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 개시에 의한 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
200: 메모리 장치
210: 메모리 셀 어레이
220: 센스 앰프
230: 온-칩 ECC
240: 데이터 입출력부
250: 제어부
260: 에러 정보 저장부
270:어드레스 디코더

Claims (10)

  1. 온-칩 ECC(Error Check and Correction)를 포함하는 메모리 장치의 동작 방법에 있어서,
    상기 메모리 장치의 메모리 셀 어레이의 제1 어드레스로부터 독출된 독출 데이터의 에러를 체크하는 단계;
    상기 제1 어드레스에 대해 발생된 에러 발생 횟수를 카운트하여, 상기 제1 어드레스에 대한 에러 발생 횟수를 제1 테이블에 저장하는 단계;
    상기 제1 어드레스에 대한 제1 명령을 수신하는 단계;
    상기 제1 테이블을 참조하여, 상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인지를 판단하는 단계; 및
    상기 제1 어드레스의 에러 발생 횟수가 제1 값 이상인 경우, 상기 제1 어드레스를 제2 어드레스로 맵핑하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  2. 제1 항에 있어서, 상기 제1 어드레스로부터 독출된 데이터의 에러를 체크하는 단계는,
    독출 명령 또는 리프레시(refresh) 명령에 응답하여 독출된 데이터에 대해 수행되는 것을 특징으로 하는 메모리 장치의 동작 방법.
  3. 제1 항에 있어서,
    상기 제1 명령은 리프레시(refresh) 명령인 것을 특징으로 하는 메모리 장치의 동작 방법.
  4. 제1 항에 있어서,
    상기 제1 어드레스는 상기 메모리 셀 어레이의 노말 셀 어레이를 나타내는 어드레스이고,
    상기 제2 어드레스는 상기 메모리 셀 어레이의 리던던시 셀 어레이를 나타내는 어드레스인 것을 특징으로 하는 메모리 장치의 동작 방법.
  5. 제1 항에 있어서,
    상기 제1 어드레스는 상기 메모리 셀 어레이의 로우 어드레스(row address)인 것을 특징으로 하는 메모리 장치의 동작 방법.
  6. 제5 항에 있어서, 상기 제1 어드레스에 대한 에러 횟수를 제1 테이블에 저장하는 단계는,
    상기 온-칩 ECC가 에러 체크 및 에러 정정을 수행하는 에러 정정 단위의 크기와 동일한, 상기 제1 어드레스로부터 독출된 데이터의 각 섹션 데이터에 포함된 에러 비트의 개수가, 상기 온-칩 ECC가 에러 정정할 수 있는 최대 비트 수 이하인 경우에 수행되는 것을 특징으로 하는 메모리 장치의 동작 방법.
  7. 제1 항에 있어서,
    상기 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인 경우, 제2 테이블에 상기 제1 어드레스와 상기 제2 어드레스의 맵핑 정보를 제2 테이블에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  8. 제1 항에 있어서, 상기 제1 어드레스에서 발생된 에러의 횟수가 제1 값 이상인지를 판단하는 단계는,
    상기 제1 어드레스에 대한 제1 명령을 수신하는 경우, 상기 제1 테이블을 참조하는 단계; 및
    상기 제1 테이블에 상기 제1 어드레스가 존재하는 경우, 상기 제1 테이블의 제1 플래그(flag)를 참조하여, 상기 제1 플래그가 상기 제1 어드레스에 대한 에러 발생 횟수가 제1 값 이상을 나타내는지를 판단하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  9. 제1 항에 있어서,
    상기 제1 어드레스에 대한 제2 명령을 수신하는 단계;
    상기 제1 어드레스의 에러 발생 횟수가 제1 값 이하인 경우, 상기 제2 명령을 상기 제1 어드레스에 대해 수행하는 단계를 더 구비하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  10. 제1 항에 있어서, 상기 메모리 장치는,
    DRAM(Dynamic Random Access Memory)인 것을 특징으로 하는 메모리 장치의 동작 방법.
KR1020140004062A 2014-01-13 2014-01-13 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 KR20150084244A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140004062A KR20150084244A (ko) 2014-01-13 2014-01-13 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US14/595,856 US20150199234A1 (en) 2014-01-13 2015-01-13 Memory device, memory system, and method of operating memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140004062A KR20150084244A (ko) 2014-01-13 2014-01-13 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150084244A true KR20150084244A (ko) 2015-07-22

Family

ID=53521469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140004062A KR20150084244A (ko) 2014-01-13 2014-01-13 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법

Country Status (2)

Country Link
US (1) US20150199234A1 (ko)
KR (1) KR20150084244A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056823A (ko) * 2015-11-16 2017-05-24 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210025682A (ko) * 2018-07-24 2021-03-09 마이크론 테크놀로지, 인크 메모리 시스템 내 예비 대체
KR20240025369A (ko) * 2022-08-18 2024-02-27 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법
KR20240025370A (ko) * 2022-08-18 2024-02-27 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법
KR20240028697A (ko) * 2022-08-25 2024-03-05 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9619320B2 (en) * 2015-02-20 2017-04-11 Western Digital Technologies, Inc. Error correction for non-volatile memory
KR20170009554A (ko) * 2015-07-17 2017-01-25 에스케이하이닉스 주식회사 테스트 시스템 및 테스트 방법
US10067825B2 (en) 2015-09-14 2018-09-04 Samsung Electronics Co., Ltd. Memory device and method of controlling ECC operation in the same
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
KR20170098538A (ko) 2016-02-22 2017-08-30 에스케이하이닉스 주식회사 반도체 장치 및 그 구동 방법
US10078567B2 (en) * 2016-03-18 2018-09-18 Alibaba Group Holding Limited Implementing fault tolerance in computer system memory
KR102550685B1 (ko) * 2016-07-25 2023-07-04 에스케이하이닉스 주식회사 반도체장치
KR102259928B1 (ko) 2017-06-26 2021-06-03 에스케이하이닉스 주식회사 오류 관리 시스템 및 이를 포함하는 데이터 처리 시스템
KR102326659B1 (ko) * 2017-07-19 2021-11-16 삼성전자주식회사 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
KR102587648B1 (ko) * 2018-07-23 2023-10-11 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 적층형 메모리 장치의 테스트 방법
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US11169873B2 (en) * 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
KR20210026201A (ko) * 2019-08-29 2021-03-10 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법
US20210306006A1 (en) * 2019-09-23 2021-09-30 SK Hynix Inc. Processing-in-memory (pim) devices
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
KR20210089016A (ko) 2020-01-07 2021-07-15 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11579968B2 (en) * 2020-08-26 2023-02-14 Micron Technology, Inc. Efficient management of failed memory blocks in memory sub-systems
KR20220068831A (ko) * 2020-11-19 2022-05-26 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11579797B2 (en) * 2021-04-29 2023-02-14 Micron Technology, Inc. Memory sub-system refresh
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US9104595B2 (en) * 2013-03-12 2015-08-11 Intel Corporation Selective remedial action based on category of detected error for a memory read
US9406403B2 (en) * 2013-06-25 2016-08-02 Advanced Micro Devices, Inc. Spare memory external to protected memory
US9378081B2 (en) * 2014-01-02 2016-06-28 Qualcomm Incorporated Bit remapping system

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056823A (ko) * 2015-11-16 2017-05-24 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US11231996B2 (en) 2015-11-16 2022-01-25 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and methods of operating memory systems
US11593199B2 (en) 2015-11-16 2023-02-28 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and methods of operating memory systems
US11994948B2 (en) 2015-11-16 2024-05-28 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and methods of operating memory systems
KR20210025682A (ko) * 2018-07-24 2021-03-09 마이크론 테크놀로지, 인크 메모리 시스템 내 예비 대체
US11726866B2 (en) 2018-07-24 2023-08-15 Micron Technology, Inc. Spare substitution in memory system
KR20240025369A (ko) * 2022-08-18 2024-02-27 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법
KR20240025370A (ko) * 2022-08-18 2024-02-27 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법
KR20240028697A (ko) * 2022-08-25 2024-03-05 넷솔 주식회사 Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법

Also Published As

Publication number Publication date
US20150199234A1 (en) 2015-07-16

Similar Documents

Publication Publication Date Title
KR20150084244A (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US10997020B2 (en) Memory device, memory system, and method of operating the same
US10692566B2 (en) Interface method of memory system, interface circuitry and memory module
CN112837725A (zh) 半导体存储器件和操作半导体存储器件的方法
US20190310923A1 (en) Data storage device and operating method thereof
US12013756B2 (en) Method and memory system for writing data to dram submodules based on the data traffic demand
US20190377634A1 (en) Memory controller and memory system including the same
US20240192862A1 (en) Automated Error Correction with Memory Refresh
KR20220168737A (ko) 반도체 메모리 장치
US10917111B2 (en) Error correction code unit and error correction method
US20230163786A1 (en) Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit
CN110032466B (zh) 数据存储装置及其操作方法
US10109373B2 (en) Data storage apparatus and operating method thereof
KR20230036730A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
EP4202939A1 (en) Memory system and method of operating the same
US20180150245A1 (en) Data storage device and data processing system
US20230259422A1 (en) Memory system including data-width aware encoder and data-width aware decoder and operating method thereof
KR102686445B1 (ko) 데이터 저장 장치 및 그 동작 방법
KR20230077606A (ko) 에러 정정 코드 회로, 에러 정정 코드 회로를 포함하는 메모리 장치, 및 에러 정정 코드 회로의 동작 방법
KR20240096194A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR20240082072A (ko) 에러 정정 코드, 에러 정정 코드를 포함하는 메모리 장치, 및 에러 정정 코드의 동작 방법
TW202334978A (zh) 儲存裝置及操作其的方法
KR20230151417A (ko) 3-레벨 펄스 진폭 변조 시그널링을 위한 송신기, 수신기 및 이를 포함하는 시스템

Legal Events

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