KR20090119899A - 메모리 어레이 에러 정정 장치, 시스템 및 방법 - Google Patents

메모리 어레이 에러 정정 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20090119899A
KR20090119899A KR1020097018940A KR20097018940A KR20090119899A KR 20090119899 A KR20090119899 A KR 20090119899A KR 1020097018940 A KR1020097018940 A KR 1020097018940A KR 20097018940 A KR20097018940 A KR 20097018940A KR 20090119899 A KR20090119899 A KR 20090119899A
Authority
KR
South Korea
Prior art keywords
data
memory array
read
bits
memory
Prior art date
Application number
KR1020097018940A
Other languages
English (en)
Other versions
KR101089409B1 (ko
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 마이크론 테크놀로지, 인크.
Publication of KR20090119899A publication Critical patent/KR20090119899A/ko
Application granted granted Critical
Publication of KR101089409B1 publication Critical patent/KR101089409B1/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
    • 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

Landscapes

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

Abstract

다양한 실시예는 메모리 어레이에 기입될 데이터의 연속 스트림을 인터럽트하지 않고 메모리 어레이에 저장되거나 제공되는 데이터를 판독, 수정 및 기입하는 프로세스들을 확장하도록 동작하는 장치, 방법 및 시스템을 포함한다. 실시예들은 메모리 어레이, 및 메모리 어레이에 결합되는 에러 코드 모듈을 포함하는 장치를 포함할 수 있으며, 에러 코드 모듈은 대응하는 복수의 연속 클럭 사이클 상에서 메모리 어레이에 기입될 복수의 데이터 버스트를 수신할 수 있는 복수의 데이터 버스트 레지스터를 구비하는 데이터 버퍼를 구비한다. 에러 코드 모듈은 복수의 연속 클럭 사이클 중 2개의 연속 사이클의 기간보다 길지 않은 기간 내에 복수의 데이터 버스트 각각에 대해 판독/수정/기입 프로세스를 수행할 수 있다.
메모리 어레이, 에러 정정 코드, 클럭 사이클, 에러 코드 모듈, 판독/수정/기입 프로세스

Description

메모리 어레이 에러 정정 장치, 시스템 및 방법{MEMORY ARRAY ERROR CORRECTION APPARATUS, SYSTEMS, AND METHODS}
관련 출원(들)
본 특허 출원은 본 명세서에 참고 문헌으로 포함되는, 2007년 2월 12일자로 출원된 미국 특허 출원 번호 11/705,190으로부터 우선권의 이익을 주장한다.
기술 분야
본 명세서에서 설명되는 다양한 실시예는 일반적으로 동적 랜덤 액세스 메모리(DRAM)에 저장된 데이터와 연관된 에러 정정 코드(ECC)를 갖는 메모리 디바이스들을 포함하는 메모리 디바이스들에 관한 것이다.
반도체 메모리 디바이스들은 정보를 저장하고, 필요한 경우에 정보를 회수할 수 있는 집적 회로들이다. 각각의 메모리 디바이스는 복수의 메모리 셀로 구성되며, 각각의 메모리 셀은 적어도 하나의 이진 비트의 데이터를 저장하는 용량을 갖는다. 본질적으로, 셀들은 (예를 들어, 어레이의 행들 및 열들로서 시각화되는) 워드라인들과 비트라인들의 교점들에 위치한다. 셀들은 단일 비트의 데이터를 논리 "1" 또는 논리 "0"으로서 저장할 수 있으며, 때로는 개별적으로 액세스 또는 어드레스될 수 있다. 셀들은 때때로 2개의 멀티 비트 숫자를 이용하여 어드레스될 수 있다. 이러한 스킴이 이용될 때, 첫 번째 멀티 비트 숫자 또는 행 어드레스는 메모리 셀이 위치하는 메모리 어레이의 행을 식별할 수 있다. 두 번째 멀티 비트 숫자 또는 열 어드레스는 원하는 메모리 셀이 위치하는 메모리 어레이의 열을 식별할 수 있다. 각각의 행 어드레스/열 어드레스 조합은 단일 메모리 셀에 대응할 수 있다.
메모리 어레이들로부터의 데이터의 회수는 모든 사례에서 완전하게는 달성되지 못할 수도 있다. 따라서, 에러 검출 및 정정 스킴들을 이용하여 메모리 어레이의 데이터 저장 신뢰성을 향상시킬 수 있다. 그러나, 대다수의 에러 정정 스킴들은 아마도 회로 면적 및/또는 동작 속도 면에서 어레이의 전체 동작에 불이익을 준다. 따라서, 에러 검출/정정을 위한 향상된 메커니즘들이 필요하다.
도 1은 종래의 DRAM 메모리 셀을 나타내는 도면.
도 2는 종래의 간략화된 메모리 어레이 구조의 개략도.
도 3은 본 발명의 다양한 실시예에 따른 시스템의 기능 블록도.
도 4는 본 발명의 다양한 실시예에 따른 장치를 나타내는 도면.
도 5는 본 발명의 다양한 실시예에 따른 파형을 포함하는 타이밍도.
도 6은 본 발명의 다양한 실시예에 따른 여러 방법을 나타내는 흐름도.
본 명세서는 메모리 어레이 내에 수신 및 기입될 실질적으로 연속인 데이터 스트림을 인터럽트하지 않고 데이터를 메모리 어레이에서 판독, 수정 및 기입하는 프로세스들을 확장하는 데 사용될 수 있는 장치, 방법 및 시스템을 설명한다. 그러한 메모리 어레이들은 후술하는 바와 같이 많은 상이한 타입의 상용 메모리 디바이스의 일부를 형성할 수 있다.
아래에 더 상세히 개시되는 바와 같이, 다양한 실시예에서, 메모리 동작들과 연관된 열 사이클은 2개의 절반으로 분할된다. 열 사이클은 특정 어드레스와 연관된 기입 동작을 포함하지만 이에 한정되지 않는 동작을 지칭한다.
열은 특정 워드라인과 연관된 어드레스 및 워드라인에 결합된 개별 메모리 셀 또는 메모리 셀들의 그룹이 메모리 어레이의 열 선택 입력에 대한 어드레스의 인가에 의해 선택될 때 선택되는 워드라인에 결합된 메모리 셀들의 그룹을 지칭한다.
열 사이클은 메모리 어레이 내의 하나 또는 복수의 메모리 셀 위치에 대한 판독 및 기입을 포함할 수 있다. 셀들은 메모리 셀들을 포함하는 메모리 디바이스에 대한 어드레스의 인가에 의해 선택된다. 열 사이클은 판독을 포함하는 제1 절반 및 기입을 포함하는 제2 절반으로 분할될 수 있다. 다양한 실시예에서, 이러한 2개의 절반은 메모리 어레이 내의 다른 어드레스와 관련된 열 사이클의 다른 부분에 의해 분리된다. 이러한 열 사이클의 2개의 절반으로의 분할 및 상이한 어드레스로부터의 열 사이클의 개재 또는 인터리빙된 부분에 의한 2개의 절반의 분리는 메모리 어레이 내의 상이한 어드레스와 관련된 열 사이클이 발생하고 있는 동안에, 분할된 열 사이클에 대하여 에러 정정 및 검사 비트 재생성이 발생하는 것을 가능하게 한다.
실제로, 이러한 스킴을 이용하는 경우, 데이터 및 제1 메모리 어드레스와 연관된 데이터 및 검사 비트들과 관련된 판독, 수정 및 기입 동작은 3개의 열 사이클에 걸쳐 확장된다. 이러한 동작이 정상적인 열 액세스 작업을 지연시키지 않도록 하기 위해, 하나의 열 사이클은 비 ECC(non-ECC) 설계가 정상 기입 또는 판독을 수행할 때 사용하는 시간의 절반 이하에서 수행될 수 있다.
현대의 메모리 디바이스들은 DRAM, 정적 랜덤 액세스 메모리(SRAM), 비디오 랜덤 액세스 메모리(VRAM), 소거 가능, 프로그램 가능 판독 전용 메모리(EPROM), 전기적으로 소거 가능, 프로그램 가능 판독 전용 메모리(EEPROM), 동적 전기적 변경 가능, 프로그램 가능 판독 전용 메모리(DEAPROM), 플래시 메모리 및 기타 반도체 메모리 디바이스들과 같은 다양한 동작 타입에 따라 구성될 수 있다.
각 타입의 메모리 디바이스는 이러한 다양한 타입의 메모리 디바이스들이 어떻게 동작하는지를 지시하는 소정의 특성들을 갖는다. 예를 들어, 동적 랜덤 액세스 메모리는 휘발성 메모리 디바이스로 분류되는데, 이는 전원이 제거될 때 DRAM이 그의 저장 상태를 잃기 때문이다. 또한, DRAM은 DRAM 메모리 디바이스 내에 각각의 비트를 저장하기 위해 하나의 트랜지스터 및 하나의 커패시터만을 필요로 하므로 구조적으로 간단하다. 그러나, 커패시터는 이상적인 디바이스가 아니고, 누설이 발생하므로, DRAM 메모리는 커패시터 전하가 주기적으로 리프레시되는 것을 필요로 한다. 리프레시 동작들에 주어지는 오버헤드는 DRAM 메모리에 의해 제공되는 매우 높은 밀도로 인해 많은 사례들에서 수용 가능하다.
아래에 설명되는 본 발명의 실시예들은 DRAM 메모리 구조에 적용되는 것으로서 설명된다. 그러나, 이 분야의 기술자들은 본 발명의 다양한 실시예가 위에 언급된 것들(예를 들어, SRAM, VRAM 등)의 각각을 포함하는 다양한 메모리 타입들에서 실시될 수 있다는 것을 쉽게 인식한다. DRAM 메모리 설계의 설명을 위한 기초로서의 이용은 한정이 아니라, 단지 설명의 간략화를 위한 것이다.
DRAM 메모리 셀 내의 전하는 메모리 셀 내에 저장된 값, 따라서 데이터를 표현하는 데 사용된다. 소정 기간에 걸쳐, DRAM 메모리 셀 내의 전하는 누설되며, 메모리의 내용이 손실될 수 있다. 따라서, DRAM은 메모리 내에 저장된 데이터를 잃지 않도록 주기적으로 "리프레시"된다.
DRAM 메모리를 리프레시할 때, 메모리 셀들을 통해 순환하고, 각각의 메모리 셀을, 메모리 셀에 저장된 데이터 비트의 값을 나타내는 전하로 복원하는 프로세스가 이용된다. 이러한 리프레싱 프로세스를 위해, 메모리 어레이를 상이한 시간들에 각각 리프레시되는 블록들로 분할하는 것을 포함하는 다양한 스킴들이 이용될 수 있다. 다른 스킴들에서는, 전체 메모리 어레이가 동시에 리프레시될 수 있다. 메모리가 상이한 시간들에 리프레시되는 블록들로 분할되는 스킴들에서는, 어떠한 블록들이 리프레시되었는지, 그리고 블록이 리프레시된 후 얼마의 기간이 지났는지가 추적된다. 이것은 메모리 셀들 내에 유지되는 전하의 누설이 메모리 셀마다 다를 수 있는 소정의 레이트로 발생하기 때문이다. 소정 기간 후에, 메모리 셀들 중 하나 이상에서 발생한 누설량은 메모리 셀 내의 전하량이 이제 처음과 다른 상태를 나타내게 할 수 있다. 즉, 데이터 비트는 누설로 인해 변경된 상태를 가지며, 데이터는 손실되고, 메모리에 저장된 데이터의 적어도 그 부분이 손상된다.
일반적으로, 메모리 셀 내의 상이한 비트들은 상이한 레이트로 누설되므로, 최소량의 시간에 전하가 누설되고 상태가 변경되는 메모리 셀에 의해 표현되는 바와 같은 메모리 어레이 내의 최악의 비트보다 적은 시간에 모든 셀들이 리프레시된다. 리프레시 프로세스는 수행될 때마다 전력을 소비하므로, 리프레시 프로세스를 더 자주 수행할수록, 메모리 디바이스는 더 많은 전체 전력을 소비할 것이다. 따라서, 리프레시 동작이 메모리 셀 내의 최악의 비트보다 적은 시간 간격으로 수행되는 경우, 최악의 메모리 셀이 누설로 인해 상태가 변경되는 시간보다 큰 리프레시 시간 간격에 비해, 메모리 디바이스의 전체 전력 소비의 증가가 발생할 것이다.
또한, 리프레시가 수행되고 있는 동안에, 메모리(또는 적어도, 리프레시되고 있는 메모리의 특정 블록 또는 블록들)에 대한 판독 및 기입은 수행될 수 없다. 따라서, 메모리(또는 적어도 리프레시되고 있는 메모리의 부분)는 판독 또는 기입 동작에 이용될 수 없다. DRAM 메모리의 리프레싱은 DRAM 메모리에 대한 판독 및 기입을 위한 시간의 손실을 나타내며, 따라서 메모리 디바이스에 대한 전체 성능 페널티를 유발한다. 리프레시가 더 적게 수행될수록, 메모리 디바이스에 대한 리프레시 요구에 의한 성능 페널티가 더 적게 발생한다.
다양한 실시예에서, 에러 정정 코드들을 사용하여 누설로 인한 데이터의 손상을 검출할 수 있다. 데이터가 저장을 위해 메모리 어레이에 제공될 때, 저장될 데이터 내에 존재하는 값들에 기초하여 에러 정정 코드가 생성된다. 다양한 타입의 에러 정정 코드가 이 분야의 기술자들에게 공지되어 있다.
일 타입의 에러 정정 코드는 해밍(Hamming) 코드로서 알려져 있는데, 이는 복수의 데이터 비트에 대해 생성될 수 있으며, 이후 데이터 비트들 중 하나가 변경되었는지를 지시할 수 있다. 해밍 코드들은 복수의 데이터 비트 내의 데이터 비트들 중 어느 하나가 변경되었는지를 식별할 수 있는 추가적인 이익을 갖는다. 따라서, 해밍 코드들의 사용은 변경된 주어진 비트들의 그룹 내의 특정 비트의 정정을 가능하게 하여, 주어진 비트들의 그룹(단일 변경 비트를 가짐)의 손상 이전의 최초 데이터 상태로의 복원을 가능하게 한다.
특정 복수의 데이터 비트에 대한 해밍 코드를 형성하는 데 필요한 비트들의 수는 복수의 데이터 비트 내의 개별 비트들의 수에 의존한다. 해밍 코드들을 에러 정정 코드들로서 사용하는 경우, 메모리 디바이스는 많은 것들 중에서 아래의 데이터 구성들로 구성될 수 있다.
- 8 데이터 비트 및 4 검사 비트
- 16 데이터 비트 및 5 검사 비트
- 32 데이터 비트 및 6 검사 비트
일례로 16 데이터 비트 및 5 검사 비트를 사용하는 경우, 5 검사 비트를 포함하는 해밍 코드가 16개 이하의 데이터 비트를 포함하는 각각의 데이터 비트 그룹에 대해 생성될 수 있으며, 따라서 이들 복수의 데이터 비트 각각에 대한 에러 정정 코드를 제공할 수 있다. 에러 정정 코드는 16 데이터 비트와 더불어 총 21 비트로 메모리 어레이 내에 추가 비트들로서 저장될 수 있다. 일부 실시예들에서, 5개의 검사 비트는 메모리 어레이 내의 16 데이터 비트와 동일한 메모리 위치에 다음 5개 메모리 셀 내에 저장될 수 있다. 일부 실시예들에서, 5개 검사 비트는 다른 데이터에 대한 다른 에러 정정 코드들과 함께, 그 데이터가 저장된 메모리 어레이의 영역으로부터 떨어진 메모리 어레이의 부분에 저장될 수 있다. 다양한 실시예에서, 개별 어드레스가 에러 정정 코드에 대해 생성되며, 그 에러 정정 코드와 연관된 데이터가 저장된 어드레스와 연관된다.
데이터 및 관련 검사 비트들에 대한 이러한 구성들은 데이터 비트들 중 하나의 비트의 고장이 존재하는 사례들의 검출 및 정정을 가능하게 한다. 전술한 바와 같은 이러한 데이터 구성들 각각에 대한 어레이 오버헤드는 8 데이터 비트 플러스 4 검사 비트 구성에 대해 약 50%, 16 데이터 비트 플러스 5 검사 비트 구성에 대해 약 31%, 32 데이터 비트 플러스 6 검사 비트 구성에 대해 약 19%이다. 메모리 디바이스의 임의의 응용에서 어떤 데이터 구성을 사용할 수 있을지에 관한 결정은 (예를 들어, 정정을 수행하는 데 사용되는 논리를 통한 판독 또는 기입에 대한) 다이 면적 페널티, 전력 페널티 및 속도 페널티와 같은 다양한 팩터에 의존한다.
다양한 실시예에서, 리프레시 사이클은 64 밀리초 이하의 시간 간격 내에 수행된다. 이러한 실시예들에서, 메모리의 각각의 비트는 비트가 리프레시된 최종 시간으로부터 64 밀리초 이하 내에 리프레시되어야 한다. 일반적으로, 64 밀리초의 리프레시 사이클 간격에서, 리프레시 사이클 간격은 메모리 어레이 내의 최악 시간의 메모리 셀이 누설로 인해 변경되는 시간들 중 어느 하나보다도 적을 수 있다. 따라서, 대다수의 경우에, 손상된 데이터를 검출하고 변경하기 위한 에러 정정 코드들의 사용이 거의 없거나 전혀 없을 수 있다.
그러나, 메모리에 포함된 많은 수의 비트들, 예를 들어 1 기가바이트 메모리에 대해, 메모리 셀들의 적은 부분만이 주어진 64 밀리초의 리프레시 사이클 간격 내에 메모리 셀에 저장된 데이터의 상태 변경을 유발하게 하는 누설 레이트를 실제로 가질 것이다. 1 기가바이트 메모리 내의 메모리 셀들의 각각이 메모리 셀 내에 저장된 값의 상태가 변경되는 포인트까지 전하를 누설하는 실제 시간들의 분포는 꼬리(tail)를 포함하는 분포에 의해 표현될 수 있다. 분포의 꼬리는 64 밀리초 이상의 기간 근처에서 시작될 수 있다. 그러나, 64 밀리초 바로 위에서 128 밀리초의 기간까지의 기간에 분포 내에 포함된 전체 비트들의 부분은 메모리 어레이 내의 메모리 셀들의 전체 수의 적은 퍼센트일 수 있다. 다양한 실시예에서, 64 밀리초에서 128 밀리초까지 사이에 메모리 분포의 꼬리에 포함되는 메모리 셀들의 수는 메모리 어레이 내에 포함된 전체 메모리 셀들의 1 퍼센트보다 적을 수 있다.
또한, 함께 그룹화되고, 동일 에러 정정 코드와 연관된 데이터 비트들로서 저장될 수 있는 데이터 비트들의 수로서, 이러한 수의 데이터 비트들이 저장되는 데이터 그룹 내의 둘 이상의 메모리 셀(예를 들어, 둘 이상의 손상 셀)이 128 밀리초의 리프레시 시간 간격 미만에서 누설로 인한 상태 변경을 경험하는 그러한 데이터 비트들의 수는 전술한 단일 비트 에러 레이트에 대한 1 퍼센트 수치보다 하나 이상의 차수만큼 적다.
보다 작은 데이터 그룹들(예를 들어, 8 데이터 비트 플러스 4 검사 비트)에서, 그러한 특정 그룹 내에 2개의 불량 데이터 비트를 가질 확률은 보다 큰 데이터 그룹(예를 들어, 16 데이터 비트를 포함하는 그룹) 내에 2개의 불량 데이터 비트를 포함할 확률보다 작다. 마찬가지로, 단일 데이터 그룹 내에 2개의 불량 비트를 가질 확률은 훨씬 더 큰 데이터 그룹에서, 예를 들어 32 비트 데이터 그룹에서 존재하는 것보다 16 비트 데이터 그룹에서 더 작다. 다양한 실시예에서, 4개의 검사 비트를 갖는 8 데이터 비트 그룹에 대한 리프레시 시간은 700 밀리초 리프레시 사이클 시간 간격까지일 수 있으며, 6개의 검사 비트를 갖는 32 데이터 비트 그룹에 대해서는 600 밀리초의 리프레시 사이클 시간 간격이 이용될 수 있다.
다양한 실시예에서, 에러 정정 코드들을 저장하는 메모리 어레이 내의 위치들에 대한 리프레시 시간 간격들은 데이터 비트들을 저장하는 메모리 어레이 내의 위치들을 리프레시하는 데 사용되는 리프레시 시간 간격으로서 사용되는 것보다 작을 수 있다. 일부 실시예들에서, 에러 정정 코드들을 저장하는 메모리 어레이 내의 메모리 셀들은 64 밀리초의 시간 간격을 이용하여 리프레시될 수 있는 반면, 데이터 비트들을 저장하는 메모리 어레이 내의 메모리 셀들은 64 밀리초보다 긴 시간 간격으로 리프레시될 수 있다.
해밍 코드들 또는 메모리 어레이에 저장된 데이터와 연관된 다른 에러 정정 코드들을 이용함으로써, 리프레시 시간 간격이 증가될 수 있다. 이러한 실시예들에서, 추가된 검사 비트들에 의해 가해지는 면적 페널티는 리프레시 사이클 시간들의 연장에 의해 허가되는 전력 절약만큼 상쇄된다. 연장된 리프레시 시간 간격은 메모리 내에 데이터를 유지하기 위해 수행되는 리프레시 사이클들의 수를 줄이며, 따라서 메모리 디바이스의 전력 소비를 줄인다. 또한, 리프레시 사이클이 발생하는 시간은 메모리의 판독 및 기입 동작에 이용할 수 없는 시간이므로, 리프레시 동작을 수행할 더 적은 필요는 메모리에 대한 판독 및 기입 동작에 이용할 수 있는 더 많은 전체 시간을 남기며, 따라서 메모리 디바이스의 전체 성능을 향상시킨다.
메모리 디바이스의 전체 성능에 영향을 미치는 또 하나의 팩터는 메모리 디바이스가 동작하는 클럭 레이트이다. 많은 사례들에서, 더 빠른 클럭 레이트는 메모리에 대한 판독 및 기입 동작이 더 느린 클럭 레이트가 사용될 때보다 빠르게 수행될 수 있게 한다. 그러나, 메모리에 기입될 데이터에 대한 에러 정정 코드들의 생성을 수반하는 동작들, 및 메모리 어레이에 기입될 데이터의 마스킹을 수반하는 동작들을 포함하는 소정의 프로세스들은 전반적인 메모리 동작 속도를 느리게 할 수 있다. 하나의 대안은 클럭 레이트를 느리게 하여, 에러 정정 코드 생성을 포함하는 추가 동작들이 수행될 수 있게 하기에 충분할 만큼 열 사이클 시간을 느리게 하는 것일 수 있다. 그러나, 클럭 레이트를 낮추는 것은 메모리에 대한 판독 및 기입을 수행하는 데 필요한 전체 시간을 증가시킬 수 있으며, 따라서 메모리 디바이스의 전체 성능 및 속도를 저하시킬 수 있다.
여기에 설명되는 실시예들은 데이터 비트들의 그룹들에 대한 에러 정정 코드 생성 및 데이터 마스킹 또는 이들 양자를 포함하는 동작들이 이러한 추가 프로세스를 포함하지 않는 판독 및 기입 동작에 사용되는 것들만큼 빠른 클럭 레이트들로 수행되는 것을 가능하게 할 수 있는 시스템, 장치 및 방법을 제공한다.
실시예들은 데이터 전송을 제어하는 클럭 펄스의 상승 에지 및 하강 에지 양자에서 데이터를 수신하는 메모리 디바이스들인 더블 레이트 메모리 디바이스들을 포함할 수 있다. 더블 레이트 메모리 디바이스들을 포함하는 다양한 실시예에서, 클럭 펄스의 상승 에지에서 수신되는 데이터는 메모리 디바이스에 포함된 메모리 어레이의 한 부분에 기입되며, 클럭 펄스의 하강 에지에서 수신되는 데이터는 메모리 어레이의 상이한 부분에 기입된다. 다양한 실시예에서, 클럭 펄스의 상승 에지 및 하강 에지 양자에서 수신되는 데이터는 하나 이상의 버퍼에 저장된 후, 메모리 어레이에 동시 기입된다.
실시예들은 싱글 레이트 메모리 디바이스를 포함할 수 있다. 싱글 레이트 메모리 디바이스들은 클럭 펄스의 상승 에지 및 하강 에지 양자에서가 아니라, 그들 중 어느 하나에서 데이터를 수신한다.
다양한 실시예에서, 데이터는 데이터 비트들의 그룹당 5 나노초의 레이트로 메모리 어레이로의 기입을 위해 수신된다.
도 1은 일반적으로 20으로 개략적으로 도시되는 종래 기술의 DRAM 메모리 셀 또는 메모리 비트이다. 메모리 셀(20)은 액세스 트랜지스터(22) 및 커패시터(24)를 포함한다. 메모리 셀(20)은 커패시터(24) 상에 저장된 전하의 형태로 이진 정보를 보유할 수 있다. 트랜지스터(22)는 커패시터(24)와 디지트라인(26) 사이에 결합된 스위치로서 동작한다. 커패시터(24)는 약 Vcc/2로 또는 셀 플레이트 전압으로 바이어스되는 공통 노드를 포함한다. 트랜지스터(22)의 스위칭 동작을 제어하는 게이트는 워드라인(28)에 결합된다. 커패시터(24) 양단의 플러스 Vcc/2 전하를 이용하여 메모리 셀(20)에 논리 1 이진 값이 저장된다. 커패시터(24) 양단의 마이너스 Vcc/2 전하를 이용하여 메모리 셀(20)에 논리 0의 이진 값이 저장된다. 따라서, 트랜지스터(22)와 커패시터 간의 접속을 나타내는 노드(30)는 논리 1 값이 메모리 셀(20)에 저장될 때 Vcc와 대략 동일한 전위를 가지며, 논리 0 값이 메모리 셀(20)에 저장될 때 대략 0 또는 접지 레벨의 전위를 갖는다.
DRAM 내의 메모리 어레이는 다수의 메모리 셀(20)을 종래 기술의 도 2에 개략적으로 도시된 바와 같은 메모리 어레이 구조(32)로 타일화(tiling)함으로써 형성된다. 메모리 어레이 구조(32)에서, 주어진 디지트라인(D0, D1, D2 또는 D3)을 따르는 메모리 셀들은 공통 워드라인(WL0, WL1, WL2 또는 WL3)을 공유하지 않으며, 공통 워드라인을 따르는 메모리 셀들은 공통 디지트라인을 공유하지 않는다. 도 2의 메모리 어레이 구조(32)의 간단한 도면은 쉽게 스케일링되는 어레이 구조에서 1 트랜지스터/1 커패시터 메모리 셀들이 어떻게 이용될 수 있는지를 보여주기 위한 예시적인 목적만을 갖는다. DRAM 메모리 셀들 및 메모리 어레이들의 설계는 간단한 것으로 보일 수 있지만, 이들의 실제 설계 및 구현은 매우 복잡하다.
도 3은 본 발명의 다양한 실시예에 따른 시스템(300)의 기능 블록도이다. 일부 실시예들에서, 시스템(100)은 개인 휴대 단말기(330), 카메라(102) 또는 셀룰러 전화(134)를 포함한다. 다양한 실시예에서, 카메라(102)는 디지털 카메라일 수 있다.
시스템(300)은 DRAM(301)과 같은 메모리 디바이스의 주요 컴포넌트들을 포함한다. 시스템(300)은 DRAM(301)에 결합되는 프로세서(326)를 포함할 수 있다. 다양한 실시예에서, 시스템(300)은 일부 실시예들에서 프로세서(326)에 결합될 수 있는 디스플레이(350)를 포함한다. 도 3의 메모리 디바이스에 대한 설명은 본 발명을 포함하는 DRAM 메모리 디바이스를 설명하기 위한 목적으로 간략화되었으며, 메모리 디바이스의 모든 특징의 완전한 설명인 것을 의도하지 않는다. 전술한 바와 같이, 다른 메모리 디바이스 구조들도 DRAM(301)에 대해 쉽게 대체될 수 있다.
DRAM(301)에 대한 어드레스 정보는 어드레스 라인들(302) 상에 제공되고, 데이터 정보는 데이터 라인들(304) 상에 제공되며, 제어 입력은 제어 논리(306)로 지향되는 다양한 제어 라인들(305) 상에 제공된다. 일부 실시예들에서, 데이터 정보와 연관된 데이터 마스킹 정보가 데이터 마스크 입력들(328) 상에 제공된다.
DRAM(301)은 메모리 어레이(310)를 포함하고, 이 어레이는 어드레스 가능한 메모리 셀들의 행들 및 열들을 포함한다. 행 내의 각각의 메모리 셀은 라인들 WL1-WLn(315)으로 도시된 바와 같이 공통 워드라인에 결합된다. 또한, 열 내의 각각의 메모리 셀은 BL1-BLn(317)으로 도시된 바와 같이 공통 비트라인에 결합된다. 메모리 어레이(310) 내의 각각의 셀은 저장 커패시터 및 액세스 트랜지스터를 포함하며, 다수의 메모리 서브어레이를 포함할 수 있다.
DRAM(301)은 예를 들어 어드레스 라인들(302) 및 데이터 라인들(304) 및 데이터 마스크 입력들(328)을 통해 프로세서(326)에 결합될 수 있다. 대안으로, DRAM(301)은 DRAM 제어기, 마이크로 제어기, 칩셋 또는 기타 전자 시스템에 결합될 수 있다. 또한, 프로세서(326)는 행 및 열 어드레스 스트로브 신호들 RAS(바(bar)) 및 CAS(바), 기입 인에이블 신호 WE(바), 출력 인에이블 신호 OE(바), 클럭 신호(307) 및 기타 제어 신호들을 포함하지만 이에 한정되지 않는 다수의 제어 신호를 제어 라인들(305)을 통해 DRAM(301)에 제공한다. 다양한 실시예에서, 프로세서(326)는 클럭 신호(307)를 제공하는 클럭 회로(303)를 포함한다. 도 3에서, 이러한 신호들에 대한 라벨들 위의 "바(bar)" 지시 및 라인(예를 들어,
Figure 112009055780750-PCT00001
)은 로우 논리 레벨이 "온" 상태에 대응함을 지시한다. 실시예들은 온 상태를 지시하기 위한 "바" 신호들의 사용으로 한정되지 않으며, "바" 신호들의 역을 포함하지만 이에 한정되지 않는 임의 타입의 신호들이 도 3에 도시된 신호들 대신에 사용될 수 있다.
행 어드레스 버퍼(312) 및 행 디코더(314)가 예를 들어 프로세서(326)에 의해 어드레스 라인들(302) 상에 제공되는 행 어드레스 신호들로부터 행 어드레스들을 수신하고 디코딩한다. 각각의 행 어드레스는 메모리 어레이(310) 내의 셀들의 행에 대응한다. 행 디코더(314)는 워드라인 드라이버, 어드레스 디코더 트리, 및 행 어드레스 버퍼(312)로부터 수신되는 주어진 행 어드레스를 변환하고 워드라인 드라이버들을 통해 메모리 어레이(310)의 적절한 워드라인을 선택적으로 활성화하는 회로를 포함한다.
열 어드레스 버퍼(316) 및 열 디코더(318)가 프로세서(326)에 의해 어드레스 라인들(302) 상에 제공되는 열 어드레스 신호들을 수신하고 디코딩한다. 각각의 열 어드레스는 메모리 어레이(310) 내의 셀들의 열에 대응한다. 열 디코더(318)는 감지 증폭기들(320)에 결합된다. 다양한 실시예에서, 열 디코더(318)는 복수의 열 선택 라인(319)을 통해 감지 증폭기들(320)에 결합된다. 감지 증폭기들(320)은 메모리 어레이(310)의 비트라인들에 결합된다.
감지 증폭기들(320)은 에러 코드 모듈(340)에 결합된다. 다양한 실시예에서, 에러 코드 모듈(340)은 데이터를 접속(330)을 통해 감지 증폭기들(320)에 제공하며, 감지 증폭기들(320)로부터 접속(332)을 통해 데이터를 수신한다. 에러 코드 모듈(340)은 어드레스 라인들(302) 및 데이터 라인들(304)에 결합된다. 일부 실시예들에서, 에러 코드 모듈(340)은 데이터 마스크 입력들(328)에 결합된다. 기입 동작 동안, 데이터 라인들(304)은 에러 코드 모듈(340)에 데이터를 제공한다. 감지 증폭기(320)는 에러 코드 모듈(340)로부터 데이터를 수신하여, 이 데이터를 메모리 어레이(310) 내에 어드레스 라인들(302) 상에서 지정되는 어드레스에 있는 셀의 커패시터 상에 전하로서 저장한다.
DRAM 판독 동작 동안, DRAM(301)은 메모리 어레이(310)로부터 프로세서(326)로 데이터를 전송한다. 액세스된 셀에 대한 상보 비트라인들은 사전 충전 동작 동안에 평형화 회로 및 기준 전압원에 의해 제공되는 기준 전압에 평형화된다. 이어서, 액세스된 셀에 저장된 전하가 관련 비트라인들과 공유된다. 감지 증폭기들(320) 내에 포함된 감지 증폭기가 상보 비트라인들 사이의 전압차를 검출하고 증폭한다. 감지 증폭기는 증폭된 전압을 에러 코드 모듈(340)로 전송한다.
제어 논리(306)는 DRAM(301)의 많은 이용 가능한 기능들을 제어하는 데 사용될 수 있다. 또한, 이 분야의 기술자들에게 공지된 바와 같이, 여기에 설명되지 않는 다양한 제어 회로들 및 신호들이 개시되어 DRAM(301)의 동작을 동기화할 수 있다. 전술한 바와 같이, DRAM(301)에 대한 설명은 본 발명의 다양한 실시예를 설명하기 위한 목적으로 간략화되며, DRAM의 모든 특징에 대한 완전한 설명인 것을 의도하지 않는다. 마찬가지로, 본 명세서에서의 다른 메모리 구조들에 대한 임의의 언급은 DRAM(301)에 대한 대체물로서의 그들의 사용을 설명하기 위해 이용되며, 이 분야의 통상의 기술자들은 이러한 대체 구조들에 대한 표준 동작 특징들을 알 것이다.
비트라인들(BL1-BLn)은 메모리 어레이(310) 내의 메모리 셀들에 데이터를 기입하고, 메모리 셀들로부터 데이터를 판독하는 데 사용된다. 워드라인들(WL1-WLn)은 기입되거나 판독될 메모리 셀들의 행에 액세스하는 데 사용된다. 행 디코더(314) 및 열 디코더(318)는 기입 및 판독 동작 동안에 프로세서(326)로부터 어드레스 라인들(302) 상에 제공되는 어드레스 신호들에 응답하여 메모리 셀들에 선택적으로 액세스한다.
동작에 있어서, DRAM(301)은 에러 코드 모듈(340)에서 특정 메모리 셀의 어드레스를 수신한다. 예컨대, 프로세서(326)는 어드레스 버퍼들(312, 316)에 메모리 어레이(310) 내의 특정 셀에 대한 어드레스를 제공할 수 있다. 행 어드레스 버퍼(312)는 예를 들어 행 디코더(314)에 적절한 메모리 셀에 대한 워드라인(WL1)을 식별한다. 행 디코더(314)는 워드라인(WL1)을 선택적으로 활성화하여, 워드라인(WL1)에 접속된 각각의 메모리 셀의 액세스 트랜지스터를 활성화한다. 열 어드레스 버퍼(316)는 예를 들어 열 디코더(318)에 적절한 메모리 셀에 대한 비트라인(BL1)을 식별한다. 열 디코더(318)는 판독 및 기입을 위해 특정 감지 증폭기를 I/O(입출력) 비트라인들에 접속한다.
다양한 실시예에서, 복수의 셀, 예를 들어 특정 워드라인에 결합된 셀들, 및 복수의 비트라인, 예를 들어 비트라인들(BL1-BLn)은 어드레스 라인들(302) 상에서 수신되는 어드레스에 포함될 것이다. 복수의 비트 내의 비트들의 수는 임의의 특정 비트 수로 한정되지 않으며, 예를 들어 8 비트, 16 비트 또는 32 비트를 포함할 수 있다. 다양한 실시예에서, 데이터 라인들(304) 상에서 제공되고, 어드레스 라인들(302) 상에서 제공되는 어드레스와 연관되는 데이터는 데이터 비트들이 제공될 때 어드레스 라인들(302) 상에서 제공되는 어드레스에 의해 어드레스되는 메모리 셀들의 수와 동일한 수의 비트들을 포함할 수 있다.
다양한 실시예에서, 제공된 어드레스는 제공된 어드레스와 연관된 데이터 내에 제공된 데이터 비트들의 수보다 큰 수의 메모리 셀들을 선택할 것이다. 이러한 사례들에서, 추가 수의 선택된 메모리 셀들은, 하나 이상의 비트를 포함하고, 메모리 어레이(310) 내에 저장되었거나 저장될 데이터와 연관된 에러 정정 코드가 위치하는 메모리 어레이(310) 내의 메모리 셀들에 어드레스할 수 있다.
다양한 실시예에서, 한 세트의 데이터 마스크들이 데이터 마스크 입력들(328) 상에서 에러 코드 모듈(340)에 제공된다. 데이터 마스크들의 세트는 데이터 라인들(304) 상에서 제공되는 데이터와 연관될 수 있으며, 데이터 라인들(304) 상에서 제공되고 데이터 마스크들의 세트와 연관되는 데이터는 메모리 어레이(310)에 기입될 데이터이다.
도 4는 에러 코드 모듈(340)을 포함하는 장치(400)를 나타낸다. 다양한 실시예에서, 에러 코드 모듈(340)은 데이터 버퍼(402), 에러 코드 계산 유닛(430) 및 데이터 결합기(434)를 포함한다. 데이터 버퍼(402)는 접속(432)에 의해 에러 코드 계산 유닛(430)에 결합될 수 있다. 다양한 실시예에서, 데이터 버퍼(402)는 판독 데이터 레지스터(410), 수정 데이터 레지스터(412), 에러 정정 코드 레지스터(414), 판독 에러 정정 코드 레지스터(416), 입력 데이터 버퍼(418) 및 출력 데이터 버퍼(420)를 포함하지만 이에 한정되지 않는 복수의 데이터 버퍼 및 레지스터를 포함할 수 있다. 이러한 레지스터들 및 버퍼들은 임의의 특정 타입의 레지스터 또는 임의의 특정 타입의 버퍼 또는 임의의 특정 비트 길이 또는 수로 한정되지 않는다. 실시예들은 데이터 버퍼(402)에 포함된 임의의 레지스터 및 버퍼에 대해 특정 레지스터 또는 버퍼 크기를 갖는 것으로 한정되지 않으며, 상이한 크기를 갖는 레지스터들 및 버퍼들을 포함할 수 있다.
다양한 실시예에서, 에러 코드 모듈(340)은 클럭 생성 회로(403)를 포함한다. 일부 실시예들에서, 클럭 생성 회로(403)는 클럭 신호(307)와 같은 클럭 신호를 수신하고, 하나 이상의 추가 클럭 신호를 생성한다. 일부 실시예들에서, 클럭 생성 회로(403)는 수신된 클럭 신호(307)의 사이클 레이트의 약 2배인 클럭 신호를 생성한다. 다양한 실시예에서, 클럭 생성 회로(403)는 본 명세서에서 더 상세히 설명되는 바와 같이 열 사이클들을 조작하는 데 사용되는 클럭 신호를 제공한다. 다양한 실시예는 프로세서에 결합되고 복수의 연속 클럭 사이클을 생성하도록 동작 가능한 클럭 회로, 및 클럭 회로 및 에러 코드 모듈에 결합되고 클럭 회로의 레이트의 약 2배의 레이트로 복수의 연속 클럭 사이클을 생성하도록 동작 가능한 하프 사이클 클럭 생성 회로를 포함한다.
데이터 버퍼(402)는 접속(436)을 통해 데이터 결합기(434)에 결합될 수 있다. 다양한 실시예에서, 에러 코드 모듈(340)은 어드레스 라인들(302), 데이터 라인들(304) 및 데이터 마스크 입력들(328)에 결합된다.
데이터 버퍼(402) 내에서, 데이터 버퍼(402)에 포함된 임의의 레지스터 또는 버퍼에 저장된 내용은 데이터 버퍼(402)에 포함된 임의의 다른 레지스터 또는 버퍼와의 사이에서 데이터 버퍼(402) 내에서 내부적으로, 또는 데이터 버퍼(402) 외부에서 외부적으로 전송될 수 있다. 다양한 실시예에서, 입력 데이터 버퍼(418) 및 출력 데이터 버퍼(420)와 같은 버퍼들은, 데이터를 수신하고, 어드레스 라인들(302), 데이터 라인들(304), 데이터 마스크 입력들(328)을 포함하지만 이에 한정되지 않는, 데이터 버퍼(402)에 대한 하나 이상의 접속으로 데이터를 전송하는 능력을 제공하기 위한 입력 버퍼들 및 드라이버 회로를 포함한다.
다양한 실시예에서, 데이터 버퍼(402) 내의 레지스터들은, 레지스터들이 임의의 메모리 어레이, 예를 들어 데이터 버퍼(402)가 결합되는 메모리 어레이(440)로부터 데이터를 수신하고 그에 대해 데이터를 제공하는 것을 허가하기 위한 회로를 포함한다.
다양한 실시예에서, 에러 코드 모듈(340)은 글로벌 판독 I/O(452) 및 글로벌 기입 I/O(450)에 결합된다. 글로벌 판독 I/O(452) 및 글로벌 기입 I/O(450)는 임의의 특정 타입의 I/O로 한정되지 않으며, 에러 코드 모듈(340)에 접속하는 데 사용 가능한 임의의 I/O를 포함할 수 있다. 다양한 실시예에서, 글로벌 판독 I/O(452) 및 글로벌 기입 I/O(450)는 에러 코드 모듈(340)을 복수의 로컬 I/O(446(a-n))에 결합한다. 로컬 I/O(446(a-n))는 복수의 로컬 I/O를 나타낸다. 로컬 I/O(446(a-n))는 임의 수의 로컬 I/O를 포함할 수 있다. 로컬 I/O(446(a-n))의 각각은 복수의 개별 신호 라인을 포함할 수 있다. 로컬 I/O(446(a-n))는 동일 수의 개별 신호 라인을 갖는 로컬 I/O(446(a-n))에 포함된 각각의 로컬 I/O를 갖는 것으로 한정되지 않는다.
일부 실시예들에서, 로컬 I/O(446(a-n)) 중 하나 이상은 판독 인터페이스(447)를 포함한다. 판독 인터페이스(447)는 특정 로컬 I/O(446(a-n)) 내의 로컬 I/O 신호 라인들을 글로벌 판독 I/O(452) 라인들에 결합하기 위한 인터페이스를 포함한다. 판독 인터페이스(447)는 도 4에 447(a) 및 447(n)로서 도시되는데, 문자 지시는 특정 판독 인터페이스(447)가 포함되는 특정 로컬 I/O(446(a-n))의 문자 지시의 일치를 지시한다. 일부 실시예들에서, 로컬 I/O(446(a-n)) 중 하나 이상은 기입 인터페이스(448)를 포함한다. 기입 인터페이스(448)는 특정 로컬 I/O(446(a-n)) 내의 로컬 I/O 신호 라인들을 글로벌 판독 I/O(450) 라인들에 결합하기 위한 인터페이스를 포함한다. 기입 인터페이스(448)는 도 4에 448(a) 및 448(n)로서 도시되는데, 문자 지시는 특정 판독 인터페이스(448)가 포함되는 특정 로컬 I/O(446(a-n))의 문자 지시의 일치를 지시한다.
다양한 실시예에서, 감지 증폭기들(444)은 로컬 I/O(446(a-n))를 메모리 어레이(440)에 결합하는 복수의 감지 증폭기를 포함한다. 다양한 실시예에서, ECC 코드 섹터(442)가 메모리 어레이 내에 포함될 수 있으며, 감지 증폭기들(444)을 통해 로컬 I/O(446(a-n)) 중 하나 이상에 결합될 수 있다. 다양한 실시예에서, 메모리 어레이에 저장된 적어도 하나의 데이터와 연관된 에러 정정 코드가 ECC 코드 섹터(442) 내에 저장될 수 있다. 다양한 실시예에서, 메모리 어레이(440)에 저장된 데이터와 연관된 하나 이상의 에러 정정 코드는 메모리 어레이(440)에 저장된 데이터 각각과 함께 메모리 어레이(440) 내에 포함될 수 있다. 다양한 실시예에서, 이러한 하나 이상의 에러 정정 코드는 메모리 어레이(440)의 ECC 코드 섹터(442) 내에 저장된다.
다양한 실시예에서, 메모리 어레이(440)는 워드라인들 WL1-WLN(315)에 결합될 수 있다. 다양한 실시예에서, 감지 증폭기들(444)은 열 선택 라인들(319)에 결합될 수 있다. 일부 실시예들에서, 워드라인들 WL1-WLN(315) 및 열 선택 라인들(319)은 메모리 어레이(440)로부터의 데이터 판독 및 그에 대한 데이터 기입을 제어하는 데 사용될 수 있다. 다양한 실시예에서, 판독 및 기입은 하나 이상의 에러 정정 코드의 메모리 어레이로부터의 판독 및 메모리 어레이로의 기입을 포함한다. 다양한 실시예에서, 에러 코드 모듈(340)은 어드레스 라인들(302) 상에 어드레스들을 제공함으로써, 데이터 라인들(304) 상에 데이터를 제공함으로써, 또는 이들 양자에 의해 메모리 어레이(440)의 판독 및 기입 동작을 제어할 수 있다.
동작에 있어서, 에러 코드 모듈(340)은 데이터 라인들(304) 상에서 메모리 어레이(440)에 기입될 데이터를 수신할 수 있다. 수신된 데이터가 저장될 어드레스가 어드레스 라인들(302) 상에서 수신된다. 수신된 데이터와 연관된 하나 이상의 데이터 마스크 설정이 데이터 마스크 입력들(328) 상에서 수신될 수 있다. 데이터 마스크 설정들은 수신된 데이터의 복수의 부분 각각과 연관된 지시를 포함할 수 있으며, 데이터 마스크 설정들은 수신된 데이터의 복수의 부분 각각에 대하여 수신된 데이터의 특정 부분에 대한 마스크가 설정되어 있는지를 지시한다.
예를 들어, 데이터 라인들(304) 상에서 수신된 데이터는 32 비트의 데이터를 포함할 수 있고, 4개의 데이터 마스크 입력이 데이터 마스크 입력들(328) 상에서 수신될 수 있으며, 데이터 마스크 입력들 각각은 32 비트 중 하나의 특정 바이트(8 비트)에 대한 데이터 마스크 설정을 지시한다. 실시예들은 임의의 특정 수의 비트들로 한정되지 않으며, 입력 데이터에 포함된 임의의 주어진 수의 비트들에 대한 임의의 특정 수의 데이터 마스크 입력들로 한정되지 않는다. 마스크 비트들은 필요에 따라 데이터의 데이터 비트들, 바이트들, 워드들, 더블 워드들 및 기타 파티션들을 나타낼 수 있다.
도 4를 다시 참조하면, 다양한 실시예에서, 수신된 데이터는 입력 데이터 버터(418)에 저장될 수 있다. 다양한 실시예에서, 수신된 데이터가 메모리 어레이(440) 내에 기입될 어드레스도 입력 데이터 버퍼(418)에 저장될 수 있다. 에러 코드 모듈(340)은 수신된 어드레스에 기초하여 메모리 어레이로부터 수신된 어드레스에 현재 저장된 데이터를 판독 데이터 레지스터(410) 내로 판독할 수 있다. 저장된 데이터의 판독은 글로벌 판독 I/O(452) 라인들을 통해, 그리고 수신된 어드레스에 의해 선택된 감지 증폭기들 및 메모리 어레이(440)와 연관된 로컬 I/O(446) 라인들을 통해 이루어질 수 있다. 일부 실시예들에서, 판독 데이터와 함께 저장된 에러 정정 코드도 판독되어 판독 데이터 레지스터(410)에 저장될 것이다. ECC 코드 섹터(442)와 같은 개별 에러 코드 섹터를 포함하는 실시예들에서, 메모리 어레이(440)로부터 판독된 데이터와 연관된 에러 정정 코드가 에러 코드 섹터로부터 판독되어 판독 데이터 레지스터(410)에 저장될 수 있다.
다양한 실시예에서, 판독 데이터 레지스터(410)에서 저장된 데이터 및 에러 정정 코드를 수신한 후, 에러 코드 계산 유닛(430)은 판독 데이터를 판독 데이터와 연관된 판독 에러 정정 코드와 비교하여, 데이터 내에 에러가 발생하였는지를 결정할 것이다. 에러가 발생하였고 에러 정정 코드에 기초하여 정정될 수 있는 경우, 에러 코드 계산 유닛(430)은 정정된 판독 데이터를 나타내는 정정된 데이터 비트들의 세트를 판독 데이터 레지스터(410)에 제공할 것이다.
다양한 실시예에서, 어드레스 라인들(302) 상에서 수신되는 어드레스를 포함하는, 메모리 어레이(440)에 저장될 데이터 비트들의 제2 세트가 데이터 라인들(304) 상에서 수신될 수 있으며, 데이터 비트들의 제2 세트는 이 어드레스에 저장된다. 또한, 한 세트의 데이터 마스크 입력들이 데이터 마스크 입력들(328) 상에서 수신될 수 있으며, 데이터 마스크 입력들의 세트는 수신된 데이터 비트들의 제2 세트에 대한 데이터 마스크 설정들을 포함한다. 수신된 데이터 비트들의 제2 세트는 관련 어드레스 및 관련 데이터 마스크 입력들과 함께 입력 데이터 버퍼(418)에 저장될 수 있다. 수신된 데이터 비트들의 제2 세트를 관련 어드레스 및 관련 데이터 마스크 입력들과 함께 저장하는 것은 입력 데이터 버퍼(418)에 이미 저장된 어떠한 데이터도 제거하거나 그에 영향을 미치지 않고 입력 데이터 버퍼(418) 내에 저장될 수 있다.
다양한 실시예에서, 제2 데이터가 수신되는 동안, 그러나 제2 데이터가 메모리 어레이에 기입되기 전에, 수신된 데이터의 제1 세트에 대해 판독/수정/기입 프로세스가 수행될 수 있다. 다양한 실시예에서, 제2 수신 데이터와 연관된 어드레스에 메모리 어레이(440) 내에 현재 저장된 데이터의 판독 또한, 아래에 더 상세히 설명되는 바와 같이, 수신된 데이터 비트들의 제1 세트에 대해 판독/수정/기입 프로세스가 수행되고 있는 동안에 수행될 수 있다.
다양한 실시예에서, 판독/수정/기입 프로세스는 데이터 결합기(434)가 제1의 수신된 데이터 비트들을 기입하기 위해 수신된 어드레스와 연관된 판독 데이터 레지스터(410)에 저장된 데이터와, 수신된 데이터 비트들의 제1 세트와 연관된 입력 데이터 버퍼(418)에 저장된 데이터를 결합하는 것을 포함한다. 수신된 데이터 비트들의 제1 세트의 어드레스와 연관된 판독 데이터 레지스터(410)로부터의 저장된 데이터는 전술한 바와 같이 저장된 에러 정정 코드를 이용하여 정정된 저장 데이터를 이미 가졌을 수 있다. 데이터 결합기(434)는 수신된 데이터 비트들의 제1 세트와 연관된 데이터 마스크 설정들에 기초하여 판독 데이터 레지스터(410)로부터의 저장 데이터와, 입력 데이터 버퍼(418)로부터의 저장 데이터를 결합할 수 있다. 데이터 마스크 설정들은 수신되어 저장된 데이터 비트들의 제1 세트의 복수의 부분 각각에 대한 상태를 포함할 수 있으며, 이 상태는 메모리 어레이(440)에 실제로 기입된 데이터 비트들의 세트가 각각의 부분에 데이터 비트들의 제1 세트에서 수신된 데이터 비트들 또는 메모리 어레이(440)에 이미 저장된 데이터 비트들을 포함할 것인지를 지시한다.
예를 들어, 입력 데이터 버퍼(418)에 저장된 수신 데이터 비트들의 세트는 총 32 비트 중 8 비트를 나타내는 4개 부분을 포함하는 총 32 비트를 포함할 수 있다. 데이터 마스크 입력들은 4 비트를 포함할 수 있으며, 4 비트의 각각은 32 비트의 8 비트 부분들 중 특정 부분과 연관된다. 4 비트 데이터 마스크 입력들 각각은 특정 데이터 마스크와 연관된 총 32 비트 중 특정 8 비트 부분이 마스킹되어야 하는지의 여부에 관한 지시를 포함한다. 지시는 임의의 특정 타입의 지시로 한정되지 않는다. 다양한 실시예에서, 지시는 이진 값, 예컨대 이진수 1 또는 이진수 0이며, 지시의 값은 총 32 비트 중 특정 8 비트 부분이 마스킹되어야 하는지의 여부를 결정한다. 다양한 실시예에서, 데이터 마스크 입력 상의 1은 총 32 비트 중 특정 부분에 대해 마스크가 설정되어 있음을 지시하고, 데이터 마스크 입력 상의 0은 총 32 비트 중 특정 부분에 대해 마스크가 설정되어 있지 않음을 지시한다. 다른 조합들도 가능하다.
다양한 실시예에서, 복수의 데이터 비트 중 특정 부분에 대하여 마스크가 설정된다는 지시는, 메모리 어레이에 기입하기 위해 복수의 데이터 비트 내에서 수신된 데이터 비트들 중 일부를 이용하는 것이 아니라, 메모리 어레이에 이미 저장된 데이터 비트들 중 일부가 수신된 어드레스에 기입된 복수의 데이터 비트의 그 부분에 대해 메모리 어레이 내에 재기입된다는 것을 의미한다. 데이터 마스크 입력이 복수의 데이터 비트의 일부가 마스킹되지 않을 것을 지시하는 값을 포함하는 복수의 데이터 비트 중의 부분들에 대해, 복수의 데이터 비트 중 그 부분에 대해 메모리 어레이에 기입된 데이터 비트들은 수신된 데이터 비트들의 세트에서 수신된 데이터 비트들을 포함한다.
다양한 실시예에서, 총 32개의 데이터 비트 및 전체 데이터 비트들의 4개의 8 비트 부분에 대한 데이터 마스크 입력들을 포함하는 위의 예와 같이, 동작은 "바이트 기입"으로서 지칭되는데, 이는 메모리 어레이 내의 주어진 어드레스에 기입될 전체 데이터 비트들에 포함된 하나 이상의 바이트가 바이트 단위로 마스킹될 수 있기 때문이다. 메모리 어레이에 기입될 데이터의 마스킹은 전체 비트들 중 주어진 부분에 대해 특정 수의 비트들을 마스킹하는 것으로 한정되지 않는다는 것을 이해해야 한다. 오히려, 마스킹은 전체 비트들의 각각을 개별 비트 단위로 마스킹하는 것을 포함하지만 이에 한정되지 않는, 전체 비트들 중 임의 수의 비트들에 대한 마스킹을 포함할 수 있다.
도 4 및 판독/수정/기입 동작을 다시 참조하면, 데이터 결합기(434)는 데이터 비트들의 제1 세트와 연관된 데이터 마스크 입력들의 상태에 기초하여 데이터 비트들의 제1 세트의 수정을 완료한다. 수정된 데이터 비트들의 제1 세트는 수신된 데이터 비트들의 제1 세트를 포함하며, 이는 수신된 데이터 비트들의 제1 세트에 대한 수신된 데이터 마스크 입력들에 의해 지시되는 바와 같은 판독 데이터 레지스터(410)에 저장된 데이터 비트들의 제1 세트의 하나 이상의 부분과 결합될 수 있으며, 마스킹은 전술한 바와 같이 수행된다.
수정된 데이터 비트들의 제1 세트는 수정된 데이터 레지스터(412)에 저장될 수 있다. 수정된 데이터 비트들의 제1 세트가 생성된 후, 에러 코드 계산 유닛(430)은 수정된 데이터 비트들의 제1 세트에서 제공되는 바와 같은 데이터 비트들에 기초하여 수정된 데이터 비트들의 제1 세트와 연관된 에러 정정 코드를 생성할 수 있다. 일부 실시예에서, 수정된 데이터 비트들의 제1 세트와 연관된 생성된 에러 정정 코드는 에러 정정 코드 레지스터(414)에 저장될 수 있다. 일부 실시예에서, 수정된 데이터 비트들의 제1 세트와 연관된 생성된 에러 정정 코드는 수정된 데이터 비트들의 제1 세트에 포함된 데이터 비트들에 추가되어, 수정된 데이터 비트들의 제1 세트 및 수정된 데이터 비트들의 제1 세트에 대한 관련 에러 정정 코드를 포함하는 복수의 데이터 비트를 형성할 수 있다. 다양한 실시예에서, 수정된 데이터 비트들의 제1 세트 및 수정된 데이터 비트들의 제1 세트에 대한 관련 에러 정정 코드를 포함하는 복수의 데이터 비트는 수정된 데이터 레지스터(412)에 저장될 수 있다.
수정된 데이터 비트들의 제1 세트 및 수정된 데이터 비트들의 제1 세트에 대한 관련 에러 정정 코드가 생성된 경우, 수정된 데이터 비트들의 제1 세트 및 관련 에러 정정 코드는 메모리 어레이(440)에 기입될 수 있다. 다양한 실시예에서, 수정된 데이터 비트들의 제1 세트 및 관련 에러 정정 코드는, 제공되는 수정된 데이터 비트들의 제1 세트가 메모리 어레이(440) 내에 기입되는 관련 어드레스와 함께, 에러 코드 모듈(340)에 의해 글로벌 기입 I/O(450)에 제공된다. 관련 에러 정정 코드가 메모리 어레이의 상이한 부분, 예컨대 ECC 코드 섹터(442)에 기입되는 다양한 실시예에서, 관련 에러 정정 코드가 기입되는 어드레스도 에러 코드 모듈(340)에 의해 글로벌 기입 I/O(450)에 제공될 수 있다.
다양한 실시예에서, 글로벌 기입 I/O(450)는 메모리 어레이(440)에 기입될 데이터 비트들의 제1 세트 및 관련 에러 정정 코드를 하나 이상의 로컬 I/O(446(a-n))에 제공할 수 있다. 다양한 실시예에서, 글로벌 기입 I/O(450)는 데이터 비트들의 제1 세트의 메모리 어레이(440)에의 기입을 위해 데이터 비트들의 제1 세트를 하나 이상의 기입 인터페이스(448(a-n))에 제공할 수 있다. 다양한 실시예에서, 글로벌 기입 I/O(450)는 데이터 비트들의 제1 세트를 기입하는 데 사용된 것과 다른 기입 인터페이스들(448(a-n))의 세트에 관련 에러 정정 코드를 제공할 것이며, 다른 기입 인터페이스들(448(a-n))의 세트는 관련 에러 정정 코드를 메모리 어레이(440)에 기입하는 데 사용될 수 있다. 다양한 실시예에서, 기입 동작에 사용되는 로컬 I/O(446(a-n))는 기입 동작에서 에러 코드 모듈(340)에 의해 제공되는 어드레스에 의해 어드레스되는 메모리 어레이(440) 내의 위치들에 결합된 특정 로컬 I/O(446(a-n))에 의해 결정된다.
다양한 실시예는 글로벌 판독 I/O(452) 및 글로벌 기입 I/O(450)를 포함하지 않을 수 있으며, 이 경우에 로컬 I/O(446(a-n))는 에러 코드 모듈(340)에 직접 결합될 수 있다. 일부 실시예에서, 로컬 I/O(446(a-n))는 에러 코드 모듈(340)로부터 직접 데이터 비트들의 수정된 세트 및 관련 에러 정정 코드들을 수신할 수 있다. 다양한 실시예에서, 데이터 비트들의 수정된 세트와 연관된 어드레스는 데이터 비트들의 수정된 세트 및 관련 에러 정정 코드의 기입 동작을 수행할 때 로컬 I/O(446(a-n)) 중 어느 것을 사용할 수 있는지를 결정한다.
다양한 실시예에서, 수신된 데이터 비트들의 제2 세트에 대한 판독/수정/기입 프로세스의 판독 부분은 수정된 데이터 비트들의 제1 세트(및 수정된 데이터 비트들의 제1 세트에 대한 관련 에러 정정 코드)의 기입이 수행되기 전에 수행될 수 있다.
수신된 데이터 비트들의 제1 세트에 대한 판독/수정/기입 동작의 판독 부분을 수행한 후에, 수신된 데이터 비트들의 제1 세트에 대한 기입 동작을 수행하기 전에 수신된 데이터 비트들의 제2 세트에 대한 판독/수정/기입 동작의 판독 부분을 수행함으로써, 결과적인 수정된 비트들의 제1 세트를 메모리 어레이에 기입하기 전에, 수신된 데이터 비트들의 제1 세트에 대한 절차의 수정 부분을 수행할 추가 시간이 제공될 수 있다.
따라서, 데이터 비트들의 제1 세트와 연관된 판독/수정/기입 동작과 수신된 데이터 비트들의 제2 세트와 연관된 판독/수정/기입 동작을 인터리빙함으로써, 데이터 비트들이 수신될 수 있는 레이트가 증가하면서, 판독/수정/기입 프로세스를 통해 수신된 데이터 비트들의 각각을 처리하기 위한 적절한 기간도 제공할 수 있다. 다양한 실시예에서, 이러한 판독/수정/기입 프로세스는 관련 어드레스에 이미 저장된 데이터의 판독, 판독 데이터를 판독 데이터와 연관된 저장된 에러 정정 코드에 대해 검사하기, 및 필요한 경우에 판독 데이터와 연관된 저장된 에러 정정 코드에 기초하여 판독 데이터를 정정하기를 포함한다. 다양한 실시예에서, 판독/수정/기입 프로세스는 수신된 데이터 비트들과 연관된 데이터 마스크 입력들로서 수신된 하나 이상의 상태 값에 기초하여 판독 데이터 비트들을 수정하는 것을 포함한다. 다양한 실시예에서, 판독/수정/기입 프로세스는 데이터 마스킹의 결과로서 생성된 데이터 비트들의 수정된 세트에 기초한 에러 정정 코드의 생성을 포함한다.
다양한 실시예에서, 수신된 데이터 비트들의 제2 세트와 연관된 저장된 데이터를 메모리 어레이(440)로부터 판독한 후에, 도 5와 관련하여 더 설명되는 바와 같이, 수정된 데이터 비트들의 제1 세트를 메모리 어레이(440)에 기입하고, 수신된 데이터 비트들의 제3 세트와 연관된 저장된 데이터 비트들의 제3 세트를 메모리 어레이(440)로부터 판독한 후에, 수신된 데이터 비트들의 제2 세트와 연관된 수정된 데이터 비트들의 세트를 메모리 어레이(440)에 기입하는 동작이 이어질 수 있다. 다양한 실시예에서, 수정 및 에러 정정 코드 생성 프로세스는 수신된 데이터의 제2 세트와 연관된 저장 데이터의 판독을 수행한 후에 소정 시간에 수신된 데이터의 제2 세트에 대해 수행되면서, 수정된 데이터 비트들의 제1 세트의 기입 동작이 수행되고, 데이터의 제3 세트와 연관된 메모리 어레이 내에 저장된 데이터의 판독 동작도 수행된다. 이러한 수신된 데이터의 상이한 세트들과 관련된 동작들의 인터리빙은 임의 수의 수신된 데이터 세트들에 대해 반복될 수 있다.
판독/수정/기입 동작들을 인터리빙함으로써, 에러 코드 모듈(340)을 포함하는 장치(400)와 같은 장치는, 여기에 설명되는 바와 같이, 빠른 속도로 메모리 어레이에 기입될 데이터 세트들을 수신하면서, 판독된 데이터에 대해, 생성된 데이터에 대해, 또는 이들 양자에 대해 에러 정정을 수행하는 것은 물론, 데이터 마스킹 동작들도 수행할 수 있는 능력을 제공한다.
도 5는 본 발명의 실시예들에 따른 파형들(500)의 타이밍도이다. 파형들(500)은 도 3에 도시된 바와 같은 시스템에 포함될 수 있다. 파형들(500)은 도 4에 도시된 바와 같은 장치에 포함될 수 있다. 도 5에 도시된 바와 같은 파형들(500)은 클럭 신호(502), WE(바)(예를 들어,
Figure 112009055780750-PCT00002
) 신호(504), 데이터 신호(506), 어드레스 신호(508) 및 데이터 마스크 입력 신호(510)를 포함한다. 도 5에 도시된 바와 같은 파형들은 열 선택 신호(520), 로컬 I/O(LI/O) 신호(522), 글로벌 판독 I/O(GRI/O) 신호(524) 및 글로벌 기입(GWI/O) 신호(526)를 포함한다.
다양한 실시예에서, 클럭 신호(502)는 도 3에 도시된 바와 같은 클럭 신호(307)를 포함할 수 있다. 다양한 실시예에서, 클럭 신호(307)는 클럭 생성 회로(303)에 의해 제공될 수 있다. 다양한 실시예에서, WE(바) 신호(504)는 도 3에 도시된 바와 같은 WE(바) 신호와 유사 또는 동일할 수 있다. 다양한 실시예에서, 데이터 신호(506)는 도 3 및 도 4에 도시된 바와 같은 데이터 라인들(304)을 통해 에러 코드 모듈(340)에 제공될 수 있다. 다양한 실시예에서, 어드레스 신호(508)는 도 3 및 도 4에 도시된 바와 같은 어드레스 라인들(302)을 통해 에러 코드 모듈(340)에 제공될 수 있고, 데이터 마스크 입력 신호(510)는 도 3 및 도 4에 도시된 데이터 마스크 입력들(328)을 통해 제공될 수 있으며, 열 선택 신호(520)는 도 3 및 도 4에 도시된 바와 같은 열 선택 라인들(319)을 통해 제공될 수 있다. 다양한 실시예에서, LI/O 신호(522)는 도 4에 도시된 바와 같은 로컬 I/O(446(a-n)) 중 하나 이상의 로컬 I/O 상에 제공될 수 있고, GRI/O 신호(524)는 도 4에 도시된 바와 같은 글로벌 판독 I/O(452) 상에 제공될 수 있으며, GWI/O 신호(526)는 도 4에 도시된 바와 같은 글로벌 기입 I/O 상에 제공될 수 있다.
도 5를 다시 참조하면, 시기들 (a), (b), (c), (d), (e), (f), (g), (h), (i), (j), (k), (l), (m), (n), (o) 및 (p)가 도시되어 있다. 이러한 시기들 (a) 내지 (p)의 각각은 대략 클럭 신호(502)의 전이시에 발생한다. 클럭 신호(502)는 임의의 특정 사이클 시간으로 한정되지 않으며, 따라서 시기들 (a) 내지 (p) 사이의 시간은 임의의 특정 시간량으로 한정되지 않는다.
다양한 실시예에서, 수신되고 메모리 어레이에 기입될 데이터는 데이터 버스트로서 참조될 수 있다. 데이터 버스트는 특정 시간에 에러 코드 모듈에 도달하는 데이터, 한정이 아닌 예로서 D0를 지칭할 수 있다. 데이터 버스트는 데이터 및 데이터와 연관된 어드레스를 포함할 수 있다. 일부 실시예에서, 데이터 버스트와 연관된 어드레스는 데이터와 연관된 에러 정정 코드가 저장될 수 있는 위치와 연관된 어드레스를 포함할 수 있다. 일부 실시예에서, 데이터 버스트는 데이터 마스크 입력들을 포함할 수 있다.
대략 시기 (a)에, 클럭 신호(502)의 전이가 발생하면서 WE(바) 신호가 펄스화된다. 다양한 실시예에서, 이러한 신호들의 조합은 데이터가 메모리 어레이에 기입될 것임을 지시한다. 대략 시기 (a)에서, "D0"으로 표현되는 데이터가 데이터 신호(506) 상에서 제공되고, "D0"과 연관된 어드레스 "ADD0"이 어드레스 신호(508) 상에서 제공되며, "D0"와 연관된 데이터 마스크 입력들 "MASK0"이 데이터 마스크 입력 신호(510) 상에서 제공된다. ADD0는 데이터 D0가 저장될 어드레스를 포함한다는 점에서 DO와 연관된다. 일부 실시예에서, ADD0는 D0에 대한 에러 정정 코드가 저장될 어드레스를 포함할 수 있다. 다양한 실시예에서, ADD0는 ADD0에 포함된 ADD0의 데이터 부분에 의해 어드레스되는 메모리 어레이 내의 위치에 이미 저장된 데이터와 연관된 에러 정정 코드가 메모리 어레이 내에 위치하는 메모리 어레이의 일부를 선택하는 어드레스를 포함할 수 있다.
대략 시기 (b)에서, 클럭 신호(502)의 전이가 발생하면서, 데이터 신호(506)가 데이터 "D1"을 제공하고, 어드레스 신호(508)가 데이터 D1과 연관된 어드레스 "ADD1"을 제공하며, 데이터 마스크 입력 신호(510)가 데이터 D1과 연관된 데이터 마스크 입력들 "MASK1"을 제공한다. 필요에 따라, 이러한 신호들 중 임의 신호가 시기 (b)에 제공되거나 제공되지 않을 수 있다.
다양한 실시예에서, 데이터 D0 및 D1, 어드레스 A0 및 A1, 및 데이터 마스크 입력들 MASK0 및 MASK1은 도 4에 도시된 바와 같은 입력 데이터 버퍼들(418)을 포함하지만 이에 한정되지 않는 입력 데이터 버퍼들에 저장될 수 있다. 다양한 실시예에서, 파형들(500)은 전술한 바와 같은 더블 데이터 레이트 디바이스에서 사용할 수 있으며, 따라서 데이터 D0 및 D1은 클럭 신호(502)의 연속 전이시에 제공되고, 함께 처리된다. 실시예들은 더블 데이터 레이트 디바이스들로 한정되지 않으며, 일부 실시예에서는 데이터가 단일 데이터 단위로 제공되며, D0 및 D1 데이터에 대해 후술하는 바와 같은 개별 방식으로 처리된다.
대략 시기 (c)에, 클럭 신호(502)의 전이가 발생하면서, 데이터 신호(506)가 데이터 "D2"를 제공하고, 어드레스 신호(508)가 데이터 D2와 연관된 "ADD2"를 제공하며, 데이터 마스크 입력 신호(510)가 데이터 D2와 연관된 데이터 마스크 입력들 "MASK1"을 제공한다. 필요에 따라, 이러한 신호들 중 임의 신호가 이 시기 (c)에 제공되거나 제공되지 않을 수 있다.
또한, 대략 시기 (c)에, 열 선택 신호(520)가 ADD0 및 ADD1에 포함된 어드레스들의 데이터 부분들에 메모리 어레이 내에 현재 저장된 데이터의 메모리 어레이로부터의 판독을 개시하기 위한 신호를 제공한다. ADD0 및 ADD1이 ADD0 및 ADD1의 데이터 부분에 포함된 데이터 위치와 연관된 에러 정정 코드들이 저장되는 메모리 어레이 내의 위치들을 지시하는 추가 어드레스들을 포함하는 일부 실시예들에서, 이러한 에러 정정 코드들도 열 선택 신호(520)에 의해 제공되는 어드레스들에 의해 판독될 것이다.
다양한 실시예에서, 열 선택 신호(520) 상에서 제공되는 신호들은 메모리 어레이에 인가될 수 있으며, 따라서 ADD0 및 ADD1 어드레스들에 의해 지시되는 메모리 위치들로부터 데이터가 판독될 수 있다. 다양한 실시예에서, 이러한 판독 데이터는 대략 시기 (c)에 LI/O 신호(522)에 의해 제공될 수 있다. 이것은 대략 시기 (c)에 시작하는 LI/O 신호(522) 상의 "DR0,1"로서 표시된다. 글로벌 판독 I/O 라인들을 포함하는 실시예들에서, 판독 데이터는 대략 시기 (c)에 시작하는 GRI/O 신호(524) 상의 "DR0,1"로서 표시된 바와 같이 대략 시기 (c)에 LI/O 신호(522)에 의해 GRI/O 신호(524)에 제공될 수 있다. 다양한 실시예에서, 글로벌 판독 I/O 라인들은 로컬 I/O 라인들로 게이트되며, 따라서 LI/O 신호(522) 상에서 제공되는 임의 신호들은 이 분야의 통상의 기술자가 이해하듯이 게이팅 회로들에 존재하는 임의의 지연들을 제외하고 GRI/O 신호(524) 상에서 이용 가능하다.
다양한 실시예에서, 시기 (c)와 (d) 사이의 시간을 포함하는 대략 시기 (c)에 시작하는 어드레스된 ADD0 및 ADD1에 의해 지시되는 메모리 어레이 내에 저장된 데이터의 판독은 데이터 D0 및 D1에 대해 수행되는 판독/수정/기입 프로세스의 판독 부분을 나타낸다. 다양한 실시예에서, 데이터가 판독된 후에 시작하는 기간 동안, 그리고 대략 시기 (f)까지, 판독/수정/기입 프로세스의 수정 부분이 데이터 D0 및 D1에 대해 수행될 수 있다. 수정 부분은 메모리 어레이에 기입될 데이터를 제공하는 에러 코드 모듈과 관련하여 전술한, 메모리 어레이로부터 최초 판독된 데이터에 대한 에러 정정의 수행, 데이터 마스크 입력들을 이용한 수신 데이터와 판독 데이터의 결합, 및 수신 데이터에 대한 또는 수신 데이터와 판독 데이터의 결합에 대한 에러 정정 코드의 생성을 포함하지만 이에 한정되지 않는 프로세스들 중 임의 프로세스를 포함할 수 있다.
도 5에 도시된 바와 같이, 그리고 전술한 바와 같이, 대략 시기 (c)에, 데이터 D2, 관련 어드레스들 ADD2 및 관련 데이터 마스크 입력들 MASK2를 포함하는 추가 데이터, 어드레스 정보 및 데이터 마스크들이 각각 데이터 신호(506), 어드레스 신호(508) 및 데이터 마스크 입력 신호(510) 상에서 제공된다. 대략 시기 (d)에, 데이터 D3, 관련 어드레스들 ADD3 및 관련 데이터 마스크 입력들 MASK3을 포함하는 추가 데이터, 어드레스 정보 및 데이터 마스크들이 각각 데이터 신호(506), 어드레스 신호(508) 및 데이터 마스크 입력 신호(510) 상에서 제공된다. 다양한 실시예에서, 데이터 D2 및 D3의 처리는 데이터 D0 및 D1과 관련하여 전술한 것과 유사한 방식으로 함께 수행될 수 있다.
데이터 D2 및 D3와 관련된 추가 데이터, 어드레스 정보 및 데이터 마스크들은 데이터 D0 및 D1에 대해 설명된 판독 및 수정 프로세스들이 수행되고 있는 동안에 수신될 수 있다. 다양한 실시예에서, 데이터 D2 및 D3는 관련 어드레스들 ADD2 및 ADD3 및 관련 데이터 마스크 입력들 MASK2 및 MASK3와 함께 에러 코드 모듈(340)의 입력 데이터 버퍼(418)를 포함하지만 이에 한정되지 않는 입력 데이터 버퍼에 저장될 수 있다.
도 5에 도시된 바와 같이, 대략 시기 (e)에, 데이터 D2 및 D3 및 D2 및 D3에 대한 관련 어드레스들 및 데이터 마스크 입력들이 수신되었으며, 열 선택 신호(520)가 "판독 2,3" 신호를 제공한다. 판독 2,3 신호는 메모리 어레이로부터 ADD2 및 ADD3에 저장된 데이터를 판독한다. 데이터는 대략 시기 (e)에 시작하는 LI/O 신호(522)에 대해 표시된 바와 같이 LI/O 신호(522)를 통해 제공될 수 있다. ADD2 및 ADD3에서의 데이터 판독은 데이터 D0 및 D1과 관련된 수정 프로세스가 발생하는 동안, D0 및 D1과 관련된 결과적인 데이터가 메모리 어레이에 기입되기 전에 발생할 수 있다. 따라서, D0 및 D1 데이터와 관련된 데이터가 메모리 어레이에 기입되기 전에, 추가 데이터 D2 및 D3가 수신되고, 추가 데이터 D2 및 D3에 대해 판독/수정/기입 프로세스의 판독 부분을 포함하는 초기 처리가 수행된다.
다양한 실시예에서, 대략 시기 (e)에, 데이터 D4, 관련 어드레스들 ADD4 및 관련 데이터 마스크 입력들 MASK4를 포함하는 추가 데이터, 어드레스들 및 데이터 마스크들이 각각 데이터 신호(506), 어드레스 신호(508) 및 데이터 마스크 입력 신호(510) 상에서 제공된다. 데이터 D4, 어드레스(들) ADD4 및 데이터 마스크 입력들 MASK4는 에러 코드 모듈(340)의 입력 데이터 버퍼(418)를 포함하지만 이에 한정되지 않는 입력 데이터 버퍼에 저장될 수 있다.
도 5를 참조하면, 대략 시기 (f)에, 데이터 D0 및 D1과 관련된 판독/수정/기입 프로세스의 판독 및 수정 부분이 완료되며, 메모리 어레이에 어드레스들 ADD0 및 ADD1에 기입될 데이터가 열 선택 신호(520) 상의 "기입 0,1" 신호를 이용하여 메모리 어레이에 제공된다. 다양한 실시예에서, 메모리 어레이에 어드레스 ADD0 및 ADD1에 기입될 데이터는 대략 시기 (f)에 시작하는 LI/O 신호(522) 상의 "DW 0,1" 신호로서 제공된다. 다양한 실시예에서, DW 0,1 신호는 GWI/O 신호(526) 상에서 대략 시기 (f)에 시작하는 것으로 도시된 바와 같이 GWI/O 신호(526)에 의해 LI/O 신호(522)에 제공될 수 있다.
다양한 실시예에서, D0 및 D1과 연관된 데이터를 메모리 어레이에 기입하는 기입 동작 동안, D2 및 D3 데이터와 연관된 판독/수정/기입 프로세스의 수정 부분도 수행될 수 있다.
대략 시기 (f)에, 데이터 D5 및 관련 어드레스 ADD5 및 관련 데이터 마스크 입력들 MASK5가 제공된다.
대략 시기 (g)에, 열 선택 라인들이 "판독 4,5" 신호를 제공하여, 메모리 어레이의 ADD4 및 ADD5에 저장된 데이터가 판독되게 한다. 도 5에 도시된 바와 같이, 이러한 ADD4 및 ADD5와 연관된 판독은 데이터 D0 및 D1과 연관된 데이터의 메모리 어레이에의 기입에 이어지고 데이터 D2 및 D3와 연관된 판독에 이어지는 클럭 신호(502)의 사이클의 절반의 기간 동안에만 발생한다. 따라서, 대략 시기 (g)에, 데이터 D2 및 D3와 연관된 데이터의 판독이 발생하였고, D2 및 D3와 연관된 데이터의 수정이 발생할 수 있는 동안에, 그리고 데이터 D2 및 D3와 연관된 데이터의 기입이 발생하기 전에, D4 및 D5와 연관된 데이터의 판독이 시작된다.
대략 시기 (h)에, 데이터 D2 및 D3와 관련된 판독/수정/기입 프로세스의 판독 및 수정 부분이 완료되며, 메모리 어레이에 어드레스들 ADD2 및 ADD3에 기입될 데이터가 열 선택 신호(520) 상의 "기입 2,3" 신호를 이용하여 메모리 어레이에 제공된다. 다양한 실시예에서, 메모리 어레이에 어드레스들 ADD2 및 ADD3에 기입될 데이터는 대략 시기 (h)에 시작하는 LI/O 신호(522) 상의 "DW 2,3" 신호로서 제공된다. 다양한 실시예에서, DW 2,3 신호는 GWI/O 신호(526) 상에서 대략 시기 (h)에 시작하는 것으로 표시된 바와 같이 GWI/O 신호(526)에 의해 LI/O 신호(522)에 제공될 수 있다.
도 5에 도시된 바와 같이, ADD2 및 ADD3와 연관된 저장 데이터가 대략 시기 (e)에 시작하여 판독되는 시간과, ADD2 및 ADD3에 저장될 데이터가 대략 시기 (h)에 시작하여 메모리 어레이에 기입되는 시간 사이에, 대략 시기 (f)에 시작하는 기입 0,1 동작 및 대략 시기 (g)에 시작하는 판독 4,5 동작을 포함하는 2개의 다른 열 사이클 동작이 발생한다.
도 5에 도시된 바와 같이, 데이터 D6 및 D7과 같은 추가 데이터가, 추가적인 관련 어드레스들 및 관련 데이터 마스크 입력들과 함께, 데이터 D0 및 D1, 및 D2 및 D3, 및 D4 및 D5와 관련하여 전술한 바와 같은 인터리빙 방식으로 수신 및 처리될 수 있다.
도 5로부터 그리고 위에 제공된 설명으로부터 이해하듯이, 실질적으로 인터럽션 없이, 그리고 판독/수정/기입 프로세스가 클럭 신호의 단일 사이클(2번의 전이)의 기간을 초과하는 기간을 필요로 할 때에도, 수신 데이터의 각각에 대해 판독/수정/기입 프로세스를 수행하는 동안에, 클럭 신호, 예를 들어 클럭 신호(502)의 각각의 전이 시에 데이터가 수신될 수 있다. 수신 데이터 각각에 대한 판독/수정/기입 프로세스를 제1 판독 절반 및 제2 기입 절반으로 분할함으로써, 그리고 제1 판독 절반 및 제2 기입 절반을, 다른 수신 데이터로부터의 적어도 판독 절반 또는 다른 수신 데이터로부터의 적어도 기입 절반, 또는 하나 이상의 다른 데이터로부터의 판독 절반 및 기입 절반 양자와 인터리빙함으로써, 판독/수정/기입 프로세스는 데이터 수신 레이트의 인터럽트 없이 에러 정정 코드들을 포함하지 않는 간단한 판독 또는 기입 동작, 또는 데이터 마스킹 동작들 또는 이들 양자에 사용되는 클럭 레이트로 완료될 수 있다. 이것은 클럭 신호의 사이클 레이트의 적어도 2배의 레이트로 열 선택 신호를 조작함으로써 그리고 다른 수신 데이터에 대한 판독/수정/기입 절차와 인터리빙된 임의의 하나의 데이터에 대한 판독/수정/기입 동작을 수행함으로써 부분적으로 달성된다.
도 5에 도시된 바와 같이, 메모리 어레이로부터 판독되고 메모리 어레이에 기입되는 데이터에 대한 데이터 전송은 LI/O 신호(522)를 이용하여 수행될 수 있다. 일부 실시예에서, 메모리 어레이에 대해 판독된 데이터는 GRI/O 신호(524)를 이용하여 전송될 수 있다. 일부 실시예에서, 메모리 어레이에 기입된 데이터는 GWI/O 신호(526)를 이용하여 전송될 수 있다.
도 5에 도시된 바와 같이, 대략 시기 (i)에, 데이터 D6 및 D7과 연관된 데이터를 수반하는 메모리 어레이에 대한 최종 데이터 기입이 시작된다. 대략 시기 (m)에서의 절반 클럭 사이클 내에, 판독 요청이 수신되고, 메모리로부터 데이터가 판독되어 메모리 어레이로부터의 출력으로서 제공될 수 있다.
도 6은 본 발명의 다양한 실시예에 따른 여러 방법을 나타내는 흐름도이다.
방법(600)은 블록 610에서 대응하는 복수의 연속 클럭 사이클에 메모리 어레이에 기입될 복수의 데이터 버스트를 수신하는 단계를 포함할 수 있다.
일부 실시예에서, 복수의 데이터 버스트를 수신하는 단계는 복수의 연속 클럭 사이클 전이 중 제1 클럭 사이클 전이에 이어서 제1 복수의 데이터 비트를 수신하는 단계를 포함할 수 있으며, 데이터 비트들의 그룹 중 적어도 일부에 기입될 제1 복수의 데이터 비트는 메모리 어레이 내의 제1 어드레스에 저장된다.
일부 실시예에서, 복수의 데이터 버스트를 수신하는 단계는 복수의 연속 클럭 사이클 전이 중 제2 클럭 사이클 전이에 이어서 제2 복수의 데이터 비트를 수신하는 단계를 포함할 수 있으며, 데이터 비트들의 그룹 중 적어도 일부에 기입될 제2 복수의 데이터 비트는 메모리 어레이 내의 제2 어드레스에 저장된다.
일부 실시예에서, 제2 복수의 데이터 비트를 수신하는 단계는 제2 클럭 사이클 전이에 이어서, 그리고 복수의 연속 클럭 사이클 전이 중 제4 클럭 사이클 전이 전에, 저장된 데이터 비트들의 제2 그룹을 제2 어드레스에서 판독하여, 판독된 데이터 비트들의 제2 그룹을 생성하는 단계, 제2 복수의 데이터 비트와 판독된 데이터 비트들의 제2 그룹을 결합하여 기입 데이터 비트들의 제2 그룹을 생성하는 단계, 기입 데이터 비트들의 제2 그룹에 대한 제2 에러 정정 코드를 생성하는 단계, 및 기입 데이터 비트들의 제2 그룹을 제2 어드레스에 기입하는 단계를 포함한다.
방법(600)은 블록 620에서 복수의 데이터 버스트 각각에 대하여 판독/수정/기입 프로세스를 수행하는 단계를 포함할 수 있는데, 이 단계는 대응하는 복수의 연속 클럭 사이클의 2개 사이클의 기간보다 길지 않은 기간 내에 판독/수정/기입 프로세스를 수행하는 단계를 포함할 수 있다.
일부 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 처리되는 특정 데이터 버스트가 기입될 메모리 어레이 내의 어드레스를 결정하고 어드레스로부터 복수의 저장된 데이터 비트를 판독하는 단계를 포함한다.
일부 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 처리되는 특정 데이터 버스와 연관된 데이터 마스크를 수신하는 단계, 및 데이터 마스크가 설정된 복수의 저장된 데이터 비트로부터의 임의의 비트들 및 데이터 마스크가 설정되지 않은 처리되는 특정 데이터 버스트로부터의 임의 비트들을 수정된 복수의 데이터 비트 내에 포함시킴으로써 수정된 복수의 데이터 비트를 제공하는 단계를 포함한다.
일부 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 수정된 복수의 데이터 비트에 대한 에러 정정 코드를 생성하는 단계를 포함한다. 일부 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 수정된 복수의 데이터 비트를 메모리 어레이 내의 어드레스에 기입하고 에러 정정 코드를 메모리 어레이에 기입하는 단계를 포함한다. 일부 실시예에서, 에러 정정 코드를 메모리 어레이에 기입하는 단계는 에러 정정 코드를 메모리 어레이 내의 어드레스에 기입하는 단계를 포함한다. 일부 실시예에서, 에러 정정 코드를 메모리 어레이에 기입하는 단계는 에러 정정 코드를 메모리 어레이 내의 상이한 어드레스에 기입하는 단계를 포함한다.
일부 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 복수의 연속 클럭 사이클 전이 중 제1 클럭 사이클 전이에 이어서, 그리고 제3 클럭 사이클 전이 전에, 제1 어드레스에서 저장 데이터 비트들의 제1 그룹을 판독하여 판독 데이터 비트들의 제1 그룹을 생성하는 단계, 제1 복수의 데이터 비트와 판독 데이터 비트들의 제1 그룹을 결합하여 기입 데이터 비트들의 제1 그룹을 생성하는 단계, 기입 데이터 비트들의 제1 그룹에 대한 에러 정정 코드를 생성하는 단계, 및 기입 데이터 비트들의 제1 그룹을 제1 어드레스에 기입하는 단계를 포함한다.
다양한 실시예에서, 제1 어드레스에서 판독하는 단계는 메모리 어레이의 복수의 어드레스 라인들 상에서 제1 어드레스를 제공하고 복수의 로컬 입출력 라인 상에서 제공되는 제1 어드레스에 데이터를 저장하는 단계를 포함할 수 있다. 다양한 실시예에서, 데이터를 저장하는 단계는 제1 어드레스에 저장된 데이터를 로컬 입출력 라인들에서 복수의 글로벌 입출력 라인으로 게이팅하는 단계를 포함할 수 있다.
다양한 실시예에서, 기입 데이터 비트들의 제1 그룹을 생성하는 단계는 기입 데이터 비트들의 제1 그룹을 수신하는 단계, 기입 데이터 비트들의 제1 그룹이 동적 랜덤 액세스 메모리 어레이에 기입된 대략적인 시간에 기입 데이터 비트들의 제1 그룹의 상태를 나타내는 에러 코드를 수신하는 단계, 및 기입 데이터 비트들의 제1 그룹의 상태를 나타내는 에러 코드에 기초하여 기입 데이터 비트들의 제1 그룹에 포함된 비트들 중 어느 하나가 에러를 포함하는지를 결정하는 단계를 포함할 수 있다. 다양한 실시예는 기입 데이터 비트들의 제1 그룹에 포함된 복수의 데이터 비트 중 어느 하나 내의 에러를 정정하는 단계를 포함할 수 있다.
다양한 실시예에서, 기입 데이터 비트들의 제1 그룹을 생성하는 단계는 판독 데이터 비트들의 제1 그룹 중 선택된 부분과 각자 연관된 하나 이상의 마스킹 입력을 수신하는 단계, 및 하나 이상의 마스킹 입력이 마스킹 상태가 설정된 것으로 지시하는 판독 데이터 비트들의 제1 그룹의 선택된 부분의 각각을 기입 데이터 비트들의 제1 그룹에 포함시킴으로써 기입 데이터 비트들의 제1 그룹을 마스킹하는 단계를 포함할 수 있다. 다양한 실시예는 하나 이상의 마스킹 입력이 마스킹 상태가 설정되지 않은 것으로 지시하는 데이터 비트들의 제1 그룹의 선택된 부분의 각각을 기입 데이터 비트들의 제1 그룹 내에 갖는 단계를 포함할 수 있다.
다양한 실시예에서, 제1 에러 코드를 생성하는 단계는 기입 데이터 비트들의 제1 그룹에 기초하여 해밍 코드를 생성하는 단계를 포함할 수 있다. 다양한 실시예에서, 기입 데이터 비트들의 제1 그룹을 기입하는 단계는 기입 데이터 비트들의 제1 그룹에 대해 생성된 제1 에러 코드를 나타내는 복수의 에러 코드 비트를 제1 어드레스에 기입하는 단계를 포함할 수 있다. 다양한 실시예에서, 기입 데이터 비트들의 제1 그룹을 기입하는 단계는 제1 어드레스와 연관된 제1 에러 정정 코드 어드레스에 제1 에러 코드를 기입하는 단계를 포함할 수 있으며, 제1 에러 정정 코드 어드레스는 제1 어드레스와 다른 어드레스이다.
다양한 실시예에서, 판독/수정/기입 프로세스를 수행하는 단계는 제1 클럭 사이클 동안에 제1 데이터 버스트를 제공하고, 제2 연속 클럭 사이클 동안에 제2 데이터 버스트를 제공하는 단계, 및 제1 클럭 사이클 및 제2 클럭 사이클에 의해 정의되는 간격보다 길지 않은 시간 내에, 메모리 셀들의 어레이에 결합된 워드라인 및 제1 복수의 열 선택 라인과 연관된 제1 복수의 데이터 비트를 로컬 입출력에 제공하는 단계, 로컬 입출력에서 글로벌 판독 입출력으로 제1 복수의 데이터 비트를 게이팅하는 단계, 글로벌 판독 입출력으로 제1 복수의 데이터 비트를 게이팅한 후에 로컬 입출력에서 제1 복수의 데이터 비트를 소거하는 단계, 메모리 셀들의 어레이에 결합된 워드라인 및 제2 복수의 열 선택 라인과 연관된 제2 복수의 데이터 비트를 로컬 입출력에 제공하는 단계, 로컬 입출력에서 글로벌 판독 입출력으로 제2 복수의 데이터 비트를 게이팅하는 단계, 글로벌 판독 입출력으로 제2 복수의 데이터 비트를 게이팅한 후에 로컬 입출력에서 제2 복수의 데이터 비트를 소거하는 단계, 제1 복수의 기입 데이터 비트와 연관된 복수의 에러 정정 코드 비트를 포함하는 제1 복수의 기입 데이터 비트를 글로벌 기입 입출력에 제공하는 단계, 로컬 입출력에서 제2 복수의 데이터 비트를 소거한 후에 로컬 입출력을 통해 에러 코드 비트들을 포함하는 제1 복수의 기입 데이터 비트를 워드라인 및 제1 복수의 열 선택 라인과 연관된 메모리 셀들의 어레이에 기입하는 단계를 포함할 수 있다.
다양한 실시예는 제1 클럭 사이클 전이 및 제2 클럭 사이클 전이를 갖는 제1 클럭 사이클을 포함할 수 있다. 제1 복수의 데이터 비트의 제공, 제1 복수의 데이터 비트의 게이팅 및 제1 복수의 데이터 비트의 소거는 제1 클럭 사이클 전이와 제2 클럭 사이클 전이 사이의 기간 동안에 발생할 수 있다.
다양한 실시예는 제3 클럭 사이클 전이 및 제4 클럭 사이클 전이를 갖는 제2 클럭 사이클을 포함할 수 있다. 제2 복수의 데이터 비트의 제공, 제2 복수의 데이터 비트의 게이팅 및 제2 복수의 데이터 비트의 소거는 제3 클럭 사이클 전이와 제4 클럭 사이클 전이 사이의 기간 동안에 발생할 수 있다.
일부 실시예에서, 제1 복수의 기입 데이터 비트를 기입하는 단계는 제4 클럭 사이클 전이와 제2 클럭 사이클 전이의 종료 사이의 기간 동안에, 제1 복수의 기입 데이터 비트 및 에러 정정 코드 비트들을 글로벌 기입 입출력에서 로컬 입출력으로 게이팅하는 단계, 제1 복수의 데이터 비트 및 에러 정정 코드 비트들을 로컬 입출력으로부터 메모리 셀들의 어레이에 기입하는 단계, 및 로컬 입출력으로부터 제1 복수의 데이터 비트 및 에러 정정 코드 비트들을 소거하는 단계를 포함할 수 있다.
본 발명의 실시예들은 다양한 레지스터가 기입되는 임의의 특정 패턴 또는 순서로 한정되지 않는다. 예를 들어 제어기(204)에 포함된 명령어들에 의해 결정되고, 프로세서(102)와 같은, 그러나 이에 한정되지 않는 외부 신호 공급 디바이스들 내에 포함되는 바와 같은 레지스터들에 대한 기입의 다른 패턴들이 본 발명의 다양한 실시예에 포함되는 레지스터들에 대한 기입에 사용될 수 있다는 것을 이해해야 한다.
위의 설명은 한정이 아니라 예시적인 것을 의도한다. 예를 들어, 전술한 실시예들(및/또는 그 양태들)은 서로 조합하여 사용될 수 있다. 위의 설명을 검토할 때 많은 다른 실시예들이 이 분야의 기술자에게 명백할 것이다. 따라서, 본 발명의 범위는 첨부된 청구항들을, 그러한 청구항들이 권리를 갖는 균등물들의 전체 범위와 함께 고려하여 결정되어야 한다. 첨부된 청구항들에서, 용어들 "including" 및 "in which"는 각각의 용어들 "comprising" 및 "wherein"의 평이한 영어 등가어들로서 사용된다. 또한, 아래의 청구항들에서, 용어들 포함하는("including" 및 "comprising")은 개방어이며, 즉 청구항 내의 그러한 용어 뒤에 리스트되는 요소들에 추가적인 요소들을 포함하는 시스템, 디바이스, 물건 또는 프로세스도 그 청구항의 범위 내에 있는 것으로 간주된다. 더욱이, 아래의 청구항들에서, 용어들 "제1", "제2" 및 "제3" 등은 단지 라벨들로서 사용되며, 그들의 객체들에 대한 수치적인 요건을 부과하는 것을 의도하지 않는다.
요약서는 독자가 기술 명세서의 특징을 빠르게 확인할 수 있게 하는 요약서를 필요로 하는 37 C.F.R. §1.72(b)에 따라 제공된다. 이 요약서는 청구항들의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 또한, 위의 상세한 설명에서, 다양한 특징들은 개시를 능률화하기 위해 함께 그룹화될 수 있다. 이러한 개시 방법은 청구되는 실시예들이 각각의 청구항 내에 명시적으로 기재된 것보다 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 아래의 청구항들이 반영하듯이, 본 발명의 주제는 개시되는 단일 실시예의 모든 특징보다 적은 특징 내에 존재할 수 있다. 따라서, 아래의 청구항들은 상세한 설명에 포함되며, 각각의 청구항은 개별 실시예로서 그 자신에 의거한다.
결론
에러 정정 코드들 및/또는 마스킹 동작들을 포함하는 메모리 디바이스들과 관련하여 내부적인 판독/수정/기입 프로세스를 수행하기 위한 메커니즘으로서 본 명세서에서 다양한 실시예가 설명되었다. 프로세스는 메모리 어레이에 결합된 에러 정정 모듈을 이용하여 내부적으로 수행될 수 있다. 다양한 실시예에서, 메모리 디바이스는 DRAM을 포함하며, 에러 정정 코드들을 이용함으로써, 리프레시 시간 간격이 길어질 수 있으며, 따라서 메모리 디바이스의 전체 성능이 향상될 수 있다. 다양한 실시예에서, 기입 동작들은 데이터 마스킹을 포함할 수 있으며, 따라서 표준 판독/수정/기입 프로세스가 클럭 레이트의 단일 열 사이클 내에 수행되지 못할 수 있는 클럭 레이트로 판독/수정/기입 프로세스가 여전히 수행될 수 있다.

Claims (15)

  1. 메모리 어레이; 및
    상기 메모리 어레이에 결합되고, 대응하는 복수의 연속 클럭 사이클 상에서 상기 메모리 어레이에 기입될 복수의 데이터 버스트를 수신하도록 동작가능한 복수의 데이터 레지스터를 갖는 데이터 버퍼를 포함하는 에러 코드 모듈 - 상기 에러 코드 모듈은, 상기 복수의 연속 클럭 사이클 중 2개의 연속 사이클의 기간보다 길지 않은 기간 내에 상기 복수의 데이터 버스트 각각에 대해 판독/수정/기입 프로세스를 수행하도록 동작가능함 -
    을 포함하는 장치.
  2. 제1항에 있어서,
    상기 에러 코드 모듈은, 상기 데이터 버퍼에 결합되고 상기 복수의 데이터 버스트 각각에 대한 수정된 데이터 버스트를 생성하도록 동작가능한 데이터 결합기를 포함하는 장치.
  3. 제2항에 있어서,
    상기 에러 코드 모듈은, 상기 메모리 어레이 및 상기 데이터 결합기에 결합된 판독 데이터 레지스터를 포함하고, 상기 판독 데이터 레지스터는 상기 복수의 데이터 버스트 중 하나가 기입될 상기 메모리 어레이 내의 어드레스에 저장된 복수 의 데이터 비트를 수신하고, 상기 복수의 데이터 버스트 중 하나가 상기 데이터 결합기에 제공되는 것과 거의 동시에 상기 복수의 데이터 비트를 상기 데이터 결합기에 제공하도록 동작가능한 장치.
  4. 제2항에 있어서,
    상기 데이터 결합기에 결합되고, 상기 복수의 데이터 버스트 각각에 대한 데이터 마스크 설정을 상기 데이터 결합기에 제공하도록 동작가능한 적어도 하나의 데이터 마스크 입력을 포함하는 장치.
  5. 제2항에 있어서,
    상기 데이터 결합기에 결합되고, 상기 수정된 데이터 버스트를 저장하도록 동작가능한 수정된 데이터 레지스터를 포함하는 장치.
  6. 제1항에 있어서,
    판독 데이터 레지스터 및 판독 에러 코드 레지스터에 결합되는 에러 코드 계산 유닛을 포함하고, 상기 에러 코드 계산 유닛은 상기 메모리 어레이로부터 판독되고 상기 판독 에러 코드 레지스터에 저장되는 에러 정정 코드에 기초하여 상기 메모리 어레이로부터 판독되어 상기 판독 데이터 레지스터에 저장되는 복수의 비트 내의 비트가 정정되는 것이 필요한지를 결정하고, 상기 복수의 비트로부터 임의의 정정된 비트들을 포함하는 상기 복수의 비트를 정정 데이터 레지스터에 제공하도록 동작가능한 장치.
  7. 대응하는 복수의 연속 클럭 사이클 상에서 메모리 어레이에 기입될 복수의 데이터 버스트를 수신하는 단계; 및
    상기 대응하는 복수의 연속 클럭 사이클 중 2개의 사이클의 기간보다 길지 않은 기간 내에 상기 복수의 데이터 버스트 각각에 대해 판독/수정/기입 프로세스를 수행하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 복수의 데이터 버스트 각각에 대해 상기 판독/수정/기입 프로세스를 수행하는 단계는,
    처리되는 특정 데이터 버스트가 기입될 상기 메모리 어레이 내의 어드레스를 결정하는 단계; 및
    상기 어드레스로부터 복수의 저장된 데이터 비트를 판독하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 복수의 데이터 버스트 각각에 대해 상기 판독/수정/기입 프로세스를 수행하는 단계는,
    상기 처리되는 특정 데이터 버스트와 연관된 데이터 마스크를 수신하는 단계; 및
    상기 데이터 마스크가 설정된 상기 복수의 저장된 데이터 비트로부터의 임의 비트들 및 상기 데이터 마스크가 설정되지 않은 상기 처리되는 특정 데이터 버스트로부터의 임의 비트들을 수정된 복수의 데이터 비트에 포함시킴으로써 상기 수정된 복수의 데이터 비트를 제공하는 단계를 포함하는 방법.
  10. 제9항에 있어서,
    상기 복수의 데이터 버스트 각각에 대해 상기 판독/수정/기입 프로세스를 수행하는 단계는,
    상기 수정된 복수의 데이터 비트에 대한 에러 정정 코드를 생성하는 단계를 포함하는 방법.
  11. 제10항에 있어서,
    상기 복수의 데이터 버스트 각각에 대해 상기 판독/수정/기입 프로세스를 수행하는 단계는,
    상기 수정된 복수의 데이터 비트를 상기 메모리 어레이 내의 상기 어드레스에 기입하는 단계; 및
    상기 에러 정정 코드를 상기 메모리 어레이에 기입하는 단계를 포함하는 방법.
  12. 메모리 어레이에 결합된 프로세서 - 상기 프로세서는, 대응하는 복수의 연속 클럭 사이클 상에서 상기 메모리 어레이에 기입될 복수의 데이터 버스트, 및 상기 복수의 데이터 버스트 각각에 대한 데이터 마스크를 제공하도록 동작가능함 -; 및
    상기 프로세서 및 상기 메모리 어레이에 결합된 에러 코드 모듈 - 상기 에러 코드 모듈은 상기 복수의 데이터 버스트를 수신하고, 상기 복수의 연속 클럭 사이클 중 2개 사이클의 기간보다 길지 않은 기간 내에 상기 복수의 데이터 버스트 각각에 대해 판독/수정/기입 프로세스를 수행하도록 동작가능함 -
    을 포함하는 시스템.
  13. 제12항에 있어서,
    상기 에러 코드 모듈은,
    데이터 결합기에 결합된 복수의 데이터 마스크 입력 - 상기 복수의 데이터 마스크 입력은, 상기 복수의 데이터 버스트 각각에 대한 데이터 마스크를 수신하도록 동작가능하고, 상기 데이터 결합기는 상기 복수의 데이터 버스트의 각각의 데이터 버스트를 개별적으로 수신하고, 상기 복수의 데이터 버스트 각각에 대한 데이터 마스크에 기초하여 상기 복수의 데이터 버스트의 각각의 데이터 버스트를 수정하여 수정된 데이터 버스트를 생성하도록 동작가능함 - 을 포함하는 시스템.
  14. 제13항에 있어서,
    상기 에러 코드 모듈은,
    상기 데이터 결합기에 결합된 에러 코드 계산 유닛 - 상기 에러 코드 계산 유닛은, 상기 수정된 데이터 버스트를 수신하고, 상기 수정된 데이터 버스트에 기초하여 에러 정정 코드를 제공하도록 동작가능함 - 을 포함하는 시스템.
  15. 제12항에 있어서,
    상기 에러 코드 모듈은 데이터 버스트 레지스터 및 판독 데이터 레지스터에 결합된 데이터 결합기를 포함하고, 상기 데이터 버스트 레지스터는 상기 복수의 데이터 버스트를 수신하도록 동작가능하고, 상기 판독 데이터 레지스터는 상기 메모리 어레이에 결합되고, 상기 복수의 데이터 버스트 중 선택된 데이터 버스트가 기입될 상기 메모리 어레이 내의 어드레스에 저장된 데이터를 수신하도록 동작가능한 시스템.
KR1020097018940A 2007-02-12 2008-02-11 메모리 어레이 에러 정정 장치, 시스템 및 방법 KR101089409B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/705,190 US7945840B2 (en) 2007-02-12 2007-02-12 Memory array error correction apparatus, systems, and methods
US11/705,190 2007-02-12
PCT/US2008/001775 WO2008100462A2 (en) 2007-02-12 2008-02-11 Memory array error correction apparatus, systems, and methods

Publications (2)

Publication Number Publication Date
KR20090119899A true KR20090119899A (ko) 2009-11-20
KR101089409B1 KR101089409B1 (ko) 2011-12-07

Family

ID=39686893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018940A KR101089409B1 (ko) 2007-02-12 2008-02-11 메모리 어레이 에러 정정 장치, 시스템 및 방법

Country Status (5)

Country Link
US (3) US7945840B2 (ko)
KR (1) KR101089409B1 (ko)
CN (1) CN101647004B (ko)
TW (1) TWI384355B (ko)
WO (1) WO2008100462A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201725B2 (en) 2012-11-01 2015-12-01 Samsung Electronics Co., Ltd. Memory module, memory system having the same, and methods of reading therefrom and writing thereto
KR20170135691A (ko) * 2016-05-31 2017-12-08 에이알엠 리미티드 복수의 데이터 비트와 복수의 어드레스 비트로 이루어진 블록용 에러 코드 발생장치 및 방법
US10469256B2 (en) 2011-06-20 2019-11-05 Renesas Electronics Corporation Cryptographic communication system and cryptographic communication method

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8438328B2 (en) * 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US7386656B2 (en) * 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
KR101303518B1 (ko) 2005-09-02 2013-09-03 구글 인코포레이티드 Dram 적층 방법 및 장치
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7945840B2 (en) * 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
KR100855979B1 (ko) * 2007-02-13 2008-09-02 삼성전자주식회사 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
US9489326B1 (en) * 2009-03-09 2016-11-08 Cypress Semiconductor Corporation Multi-port integrated circuit devices and methods
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US8930779B2 (en) 2009-11-20 2015-01-06 Rambus Inc. Bit-replacement technique for DRAM error correction
US8311754B2 (en) * 2009-12-10 2012-11-13 Home Comfort Zones Power monitoring and analysis system for identifying and tracking individual electrical devices
US8397005B2 (en) * 2010-03-16 2013-03-12 St-Ericsson Sa Masked register write method and apparatus
KR101212759B1 (ko) * 2010-10-29 2012-12-14 에스케이하이닉스 주식회사 데이터 오류 검사 기능을 이용한 데이터 전송 방법, 데이터 오류 검사 기능을 이용한 반도체 메모리 및 메모리 시스템
US8644104B2 (en) 2011-01-14 2014-02-04 Rambus Inc. Memory system components that support error detection and correction
US8560925B2 (en) * 2011-04-05 2013-10-15 Denso International America, Inc. System and method for handling bad bit errors
KR101882681B1 (ko) * 2011-10-27 2018-07-31 삼성전자 주식회사 메모리 장치 및 그 구동 방법
US20130159812A1 (en) * 2011-12-16 2013-06-20 Advanced Micro Devices, Inc. Memory architecture for read-modify-write operations
CN103247347B (zh) * 2012-02-11 2017-07-25 三星电子株式会社 提供智能存储器架构的方法和系统
US9679664B2 (en) 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US9037949B1 (en) 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device
US9411678B1 (en) 2012-08-01 2016-08-09 Rambus Inc. DRAM retention monitoring method for dynamic error correction
KR101944793B1 (ko) * 2012-09-04 2019-02-08 삼성전자주식회사 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
WO2014074390A1 (en) 2012-11-06 2014-05-15 Rambus Inc. Memory repair using external tags
US9311181B2 (en) 2012-11-15 2016-04-12 Samsung Electronics Co., Ltd. Memory controller changing partial data in memory device and method for changing partial data thereof
US9196347B2 (en) 2013-03-14 2015-11-24 International Business Machines Corporation DRAM controller for variable refresh operation timing
US9588840B2 (en) * 2013-04-18 2017-03-07 Samsung Electronics Co., Ltd. Memory devices that perform masked write operations and methods of operating the same
TWI502601B (zh) * 2013-04-24 2015-10-01 Ind Tech Res Inst 混合式錯誤修復方法及其記憶體裝置
US9280418B2 (en) * 2013-08-01 2016-03-08 Integrated Silicon Solution, Inc. Memory device implementing reduced ECC overhead
KR102122932B1 (ko) * 2013-08-08 2020-06-15 삼성전기주식회사 적층 세라믹 커패시터 및 적층 세라믹 커패시터 실장 기판
CN105431905B (zh) 2013-09-24 2019-05-07 拉姆伯斯公司 具有内部读取-修改-写入操作的存储部件
CN103500107B (zh) * 2013-09-29 2017-05-17 中国船舶重工集团公司第七0九研究所 一种cpu的硬件优化方法
US9583219B2 (en) * 2014-09-27 2017-02-28 Qualcomm Incorporated Method and apparatus for in-system repair of memory in burst refresh
CN107003857B (zh) 2014-12-19 2019-06-18 美光科技公司 用于流水线处理具有纠错译码的存储器操作的方法
US10061645B2 (en) 2015-06-30 2018-08-28 Qualcomm Incorporated Memory array and link error correction in a low power memory sub-system
US20170126249A1 (en) * 2015-10-30 2017-05-04 Intel Corporation Temperature dependent multiple mode error correction
US10140175B2 (en) * 2015-11-20 2018-11-27 Qualcomm Incorporated Protecting an ECC location when transmitting correction data across a memory link
US9952925B2 (en) * 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US11481126B2 (en) * 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
KR102638790B1 (ko) 2016-09-13 2024-02-21 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10120749B2 (en) * 2016-09-30 2018-11-06 Intel Corporation Extended application of error checking and correction code in memory
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
US10068636B2 (en) * 2016-12-30 2018-09-04 Intel Corporation Apparatuses and methods for accessing and scheduling between a plurality of row buffers
US10572344B2 (en) 2017-04-27 2020-02-25 Texas Instruments Incorporated Accessing error statistics from DRAM memories having integrated error correction
KR102388803B1 (ko) * 2017-11-02 2022-04-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102456582B1 (ko) * 2017-12-19 2022-10-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
EP3803872A4 (en) * 2018-05-29 2022-03-09 Micron Technology, Inc. APPARATUS AND METHODS FOR ADJUSTING A DUTY CYCLE ADJUSTER TO IMPROVE CLOCK DUTY CYCLE
US10769013B1 (en) * 2018-06-11 2020-09-08 Cadence Design Systems, Inc. Caching error checking data for memory having inline storage configurations
US10642684B1 (en) 2018-06-28 2020-05-05 Cadence Design Systems, Inc. Memory command interleaving
US10963329B2 (en) * 2018-10-17 2021-03-30 Omnivision Technologies, Inc. Universal register read back
US10715127B2 (en) 2018-11-21 2020-07-14 Micron Technology, Inc. Apparatuses and methods for using look-ahead duty cycle correction to determine duty cycle adjustment values while a semiconductor device remains in operation
US11869972B2 (en) 2018-11-26 2024-01-09 Etron Technology, Inc. Reduced-form-factor transistor with self-aligned terminals and adjustable on/off-currents and manufacture method thereof
CN111554680B (zh) 2018-12-10 2023-09-05 钰创科技股份有限公司 统一集成电路系统
US11616128B2 (en) 2019-04-19 2023-03-28 Etron Technology, Inc. Transistor structure with reduced leakage current and adjustable on/off current
US11269720B2 (en) 2019-08-11 2022-03-08 Winbond Electronics Corp. Memory storage apparatus and data access method
KR20210023317A (ko) 2019-08-22 2021-03-04 에스케이하이닉스 주식회사 반도체장치
KR20210122455A (ko) * 2020-04-01 2021-10-12 삼성전자주식회사 반도체 메모리 장치
US11379306B1 (en) * 2021-07-29 2022-07-05 Bae Systems Information And Electronic System Integration Inc. Method for radiation hardening synchronous DRAM
CN113645007B (zh) * 2021-10-15 2022-04-29 苏州纳芯微电子股份有限公司 单通道通信编码方法、解码方法、编码电路及解码电路
CN116844618A (zh) * 2022-03-23 2023-10-03 长鑫存储技术有限公司 存储器测试方法及装置、介质及设备
US11798617B2 (en) 2022-03-23 2023-10-24 Changxin Memory Technologies, Inc. Method and apparatus for determining sense boundary of sense amplifier, medium, and device
US11978504B2 (en) 2022-03-23 2024-05-07 Changxin Memory Technologies, Inc. Method and apparatus for determining sense boundary of sense amplifier, medium, and device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5590304A (en) * 1994-06-13 1996-12-31 Covex Computer Corporation Circuits, systems and methods for preventing queue overflow in data processing systems
US5859858A (en) * 1996-10-25 1999-01-12 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using error locating codes
US5974514A (en) * 1996-11-12 1999-10-26 Hewlett-Packard Controlling SDRAM memory by using truncated burst read-modify-write memory operations
US5974320A (en) * 1997-05-21 1999-10-26 Telefonaktiebolaget Lm Ericsson (Publ) Providing a neighborhood zone within a mobile telecommunications network
US5878059A (en) 1997-09-24 1999-03-02 Emc Corporation Method and apparatus for pipelining an error detection algorithm on an n-bit word stored in memory
KR100266748B1 (ko) * 1997-12-31 2000-10-02 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법
JP4417629B2 (ja) * 2001-04-24 2010-02-17 エヌエックスピー ビー ヴィ ビット変更を可能にする、フラッシュメモリにおける使用のための、改良されたエラー修正方式
US7308621B2 (en) * 2002-04-30 2007-12-11 International Business Machines Corporation Testing of ECC memories
US7143332B1 (en) * 2003-12-16 2006-11-28 Xilinx, Inc. Methods and structures for providing programmable width and error correction in memory arrays in programmable logic devices
JP4703220B2 (ja) * 2005-03-04 2011-06-15 株式会社東芝 半導体記憶装置
JP2007242162A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体記憶装置
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7945840B2 (en) 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469256B2 (en) 2011-06-20 2019-11-05 Renesas Electronics Corporation Cryptographic communication system and cryptographic communication method
US9201725B2 (en) 2012-11-01 2015-12-01 Samsung Electronics Co., Ltd. Memory module, memory system having the same, and methods of reading therefrom and writing thereto
US9483348B2 (en) 2012-11-01 2016-11-01 Samsung Electronics Co., Ltd. Memory module, memory system having the same, and methods of reading therefrom and writing thereto
KR20170135691A (ko) * 2016-05-31 2017-12-08 에이알엠 리미티드 복수의 데이터 비트와 복수의 어드레스 비트로 이루어진 블록용 에러 코드 발생장치 및 방법

Also Published As

Publication number Publication date
KR101089409B1 (ko) 2011-12-07
US7945840B2 (en) 2011-05-17
WO2008100462A3 (en) 2008-11-27
TWI384355B (zh) 2013-02-01
US20110191655A1 (en) 2011-08-04
CN101647004A (zh) 2010-02-10
WO2008100462A2 (en) 2008-08-21
CN101647004B (zh) 2013-07-24
TW200849000A (en) 2008-12-16
US20080195894A1 (en) 2008-08-14
US20120221916A1 (en) 2012-08-30
US8181086B2 (en) 2012-05-15
US8397129B2 (en) 2013-03-12

Similar Documents

Publication Publication Date Title
KR101089409B1 (ko) 메모리 어레이 에러 정정 장치, 시스템 및 방법
US9653141B2 (en) Method of operating a volatile memory device and a memory controller
US5490114A (en) High performance extended data out
US7275200B2 (en) Transparent error correcting memory that supports partial-word write
US7755968B2 (en) Integrated circuit memory device having dynamic memory bank count and page size
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
US5172379A (en) High performance memory system
US8060705B2 (en) Method and apparatus for using a variable page length in a memory
US7187608B2 (en) System and method for controlling the access and refresh of a memory
US11646092B2 (en) Shared error check and correct logic for multiple data banks
US20070097760A1 (en) Compact column redundancy CAM architecture for concurrent read and write operations in multi-segment memory arrays
KR960015578A (ko) 버스트 동작중에 리프레시 동작이 가능한 반도체 기억장치
JPS6237423B2 (ko)
CN114121075B (zh) 用于存储器刷新的系统及方法
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
US5802586A (en) Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
US20060133168A1 (en) Semiconductor memory device for reducing chip area
CN114944186A (zh) 用于多泵错误校正的设备、系统和方法
CN113314177A (zh) 用于锁存器复位逻辑的设备、系统及方法
US20230071572A1 (en) Address latch, address control circuit and semiconductor apparatus including the address control circuit
CN116959538A (zh) 用于每行错误擦除信息的设备、系统和方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 8