KR20140089309A - 메모리 내고장성을 위한 방법 및 장치 - Google Patents

메모리 내고장성을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20140089309A
KR20140089309A KR1020137033488A KR20137033488A KR20140089309A KR 20140089309 A KR20140089309 A KR 20140089309A KR 1020137033488 A KR1020137033488 A KR 1020137033488A KR 20137033488 A KR20137033488 A KR 20137033488A KR 20140089309 A KR20140089309 A KR 20140089309A
Authority
KR
South Korea
Prior art keywords
memory
array
data
memory cells
lines
Prior art date
Application number
KR1020137033488A
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 맥스리니어 인코포레이티드
Publication of KR20140089309A publication Critical patent/KR20140089309A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Abstract

복수의 데이터 라인 및 복수의 비트 라인은 메모리 셀들의 어레이에 기입하고 및/또는 메모리 셀들의 어레이로부터 판독하는데 사용될 수 있다. 스위칭 소자는 복수의 데이터 라인과 복수의 비트 라인 사이의 상이한 맵핑들 중에서 선택할 수 있다. 예를 들어, 어레이는 N개의 메모리 셀들로 구성될 수 있고, 복수의 비트 라인은 N개의 비트 라인들로 구성될 수 있고, 복수의 데이터 라인은 N개의 데이터 라인들로 구성될 수 있고, 여기에서 N은 1보다 큰 정수이다. 데이터 블록이 어레이에 기입되어야 하는 기입 동작에서, 스위칭 소자의 구성은 데이터 블록이 메모리 셀들의 어레이 중에서 고장난 메모리 셀에 얼마나 민감한지에, 적어도 부분적으로, 기초하여 제어될 수 있다.

Description

메모리 내고장성을 위한 방법 및 장치{METHOD AND APPARATUS FOR MEMORY FAULT TOLERANCE}
우선권 주장
본 발명은 2011년 10월 7일 출원된 미국 특허 출원 일련번호 13/269,416의 일부 계속 출원이다. 본 출원은 또한 2011년 5월 17일 출원된 미국 가출원 일련번호 61/487,250 및 2011년 10월 31일 출원된 미국 특허 출원 번호 13/285,864를 참조하고 이들에 대한 우선권 및 이들로부터의 이득을 주장한다.
각각의 상기 참조된 출원들은 이하 그 내용 전체가 참조로써 본문에 포함된다.
발명의 분야
본 발명의 특정 실시예들은 메모리 회로들에 관한 것이다. 더 구체적으로는, 본 발명의 특정 실시예들은 메모리 내고장성을 위한 방법 및 장치에 관한 것이다.
고장 메모리 셀들은 상당량의 메모리를 포함하는 소정의 실질적인 집적회로에서 불가피하다. 고장 셀들은 현대의 집적회로에 부과되는 설계 제약들을 계속 증가시킨 결과이다. 고장 메모리 셀들을 다루는 종래의 방법들은 매우 비용이 많이 들고/들거나 다수의 애플리케이션에 실용적이지 않다.
종래의 전통적인 접근법들의 다른 한계들 및 불이익들은, 도면들을 참조하여 이하 본 출원에 제시된 바와 같이 본 발명의 일부 양태들과 이러한 시스템들을 비교함으로써 당업자에게 자명할 것이다.
청구 범위에서 더 완전히 제시되는 바와 같이, 도면들 중 적어도 하나에 의해 도시되고/도시되거나 이들 중 적어도 하나에 연계되어 기술되는 바와 같이, 메모리 내고장성을 위한 장치 및/또는 방법이 실질적으로 제시된다.
본 발명의 여러 장점들, 양태들 및 신규한 특징들뿐만 아니라, 이들의 도시된 일 실시예의 세부사항들은 다음의 설명 및 도면들로부터 더 완전히 이해될 것이다.
도 1a는 고장 메모리 셀들의 영향을 완화시키도록 동작하는 예시적인 디바이스를 도시한다.
도 1b는 본 발명의 사용을 통해, 고장 메모리 셀들의 정정가능한 수보다 더 많은 수의 메모리 셀들을 갖는 메모리 셀들의 어레이를 이용할 때에도 만족스런 성능을 달성할 수 있는 예시적인 수신기의 부분을 도시한다.
도 2는 예시적인 내고장성 메모리의 제1 도면을 도시한다.
도 3a는 예시적인 내고장성 메모리의 제2 도면을 도시한다.
도 3b는 다른 예시적인 내고장성 메모리의 제2 도면을 도시한다.
도 3c는 예시적인 메모리 인스턴스를 도시한다.
도 3d 고장 레지스터와 고장 레지스터를 통해 관리되는 메모리 셀들 사이의 예시적인 맵핑을 도시한다.
도 3e는 고장 완화 컨트롤러의 예시적 부분을 도시한다.
도 4a 내지 도 4e는 메모리의 일 어레이가 그 어레이에서 하나 이상의 고장 셀들의 영향을 완화시키기 위해 2개의 존들(zone)로 구획되는(zoned) 예시적인 시스템을 도시한다.
도 5a 내지 도 5k는 메모리의 일 어레이가 그 어레이에서 하나 이상의 고장 셀들의 영향을 완화시키기 위해 4개의 존들로 구획되는 예시적인 시스템을 도시한다.
도 6a는 예시적인 고장 완화 맵핑 모듈을 도시한다.
도 6b는 다른 예시적인 고장 완화 맵핑 모듈을 도시한다.
도 6c는 구성가능한 고장 완화 맵핑 모듈을 도시한다.
도 7은 메모리에 기입 또는 그로부터 판독되고 있는 데이터의 타입에 기초하여 메모리 고장 완화 모듈을 인에이블 및 디스에이블하도록 동작하는 시스템을 도시한다.
도 8은 메모리의 특성, 및 메모리에 기입 또는 그로부터 판독되고 있는 데이터의 민감도에 기초하여 메모리를 할당하도록 동작하는 시스템을 도시한다.
도 9 및 도 10은 본 발명의 양태들을 이용하는 수신기의 예시적인 구현의 시뮬레이션 결과들을 도시한다.
이하 사용되는, "회로들" 및 "회로"라는 용어는 물리적 전자 부품(즉, 하드웨어), 및 하드웨어를 구성하고, 하드웨어에 의해 실행되며/되거나 그렇지않으면 하드웨어와 관련될 수 있는 임의의 소프트웨어 및/또는 펌웨어("코드")를 지칭한다. 이하 사용되는, "및/또는"은 "및/또는"에 의해 결합된 리스트에서의 아이템들 중 하나 이상을 의미한다. 예를 들면, "x 및/또는 y"는 3 요소 집합 {(x), (y), (x, y)} 중 임의의 요소를 의미한다. 유사하게, "x, y 및/또는 z"는 7 요소 집합 {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)} 중 임의의 요소를 의미한다. 이하 사용되는, "모듈"이라는 용어는 하드웨어, 소프트웨어, 펌웨어 또는 이들 중 하나 이상의 임의의 조합으로 구현될 수 있는 기능들을 지칭한다. 이하 사용되는, "예시적인"이라는 용어는 비제한적인 예, 경우, 또는 예시를 의미한다.
도 1a는 고장 메모리 셀들의 영향을 완화시키도록 동작하는 예시적인 디바이스를 도시한다. 도 1a를 참조하면, AFE(analog front-end) 모듈(102), CPU(central processing unit)(104), 메모리 모듈(106), DSP(digital signal processing) 모듈(108), 사용자 인터페이스 모듈(112) 및 시그널 버스(110)를 포함하는 예시적 전자 디바이스(100)의 회로가 도시되어 있다.
AFE(102)는 임의의 적절한 통신 프로토콜(들)을 이용하여 정보를 송신 및/또는 수신하도록 동작할 수 있다. 본 발명의 예시적인 실시예에서, AFE(102)는 직교 주파수 다중 분할된(orthogonal frequency division multiplexed; OFDM) 신호들의 송신 및/또는 수신을 가능하게 하는 아날로그 도메인 프로세싱 동작들을 수행하도록 동작할 수 있다.
CPU(104)는 디바이스(100)의 동작들을 제어하는 명령어들(예를 들어, 운영 체계)을 실행하도록 동작할 수 있다. 예를 들면, CPU(104)는 디바이스(100)를 설정하고, AFE(102), 메모리(106) 및 DSP(108)의 동작을 제어하기 위한 제어 신호들을 생성할 수 있다.
메모리(106)는 하나 이상의 행들 및 하나 이상의 열들로 배열될 수 있는 복수의 메모리 셀을 포함할 수 있다. 메모리는 SRAM, DRAM, ROM, EEPROM, MRAM, FeRAM 및 플래시와 같은 임의의 적절한 유형의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(106)의 예시적인 구조가 도 2-3b를 참조하여 이하 기술된다.
DSP(108)는 하나 이상의 통신 표준에 따라 디지털 신호 처리 알고리즘 및 기능들을 수행하도록 동작가능할 수 있다. 예컨대, DSP(108)는 디지털 필터링, 컨스털레이션 맵핑(constellation mapping), 컨스털레이션 디맵핑, 인터리빙(interleaving), 디인터리빙, 및 에러 정정을 수행하도록 동작가능할 수 있다. 본 발명의 예시적인 실시예에서, DSP(108)는 OFDM 신호들의 송신 및/또는 수신을 가능하게 하는 디지털-도메인 처리 기능들을 수행하도록 동작가능할 수 있다.
버스(110)는 데이터 라인들, 어드레스 라인들, 및/또는 제어 라인들을 포함할 수 있다. 예컨대, 신호 버스(110)는 하나 이상의 N-비트 데이터 버스들, 및 메모리(106)로 전달되는 판독 인에이블 및 기입 인에이블 신호들과 같은 복수의 제어 라인들을 포함할 수 있다.
사용자 인터페이스(112)는 디바이스(100)의 사용자로부터 입력을 수신할 수 있고, 디바이스(100)의 사용자로 출력을 제공할 수 있다. 예컨대, 사용자 인터페이스(112)는 터치스크린, 키보드, 및/또는 다른 입력 디바이스를 포함할 수 있고, 또한, LCD, 스피커, 및/또는 다른 출력 디바이스를 포함할 수 있다.
예시적인 수신 동작에서, AFE(102)는 RF 신호를 수신할 수 있고, 수신된 신호를 아날로그 도메인에서 프로세싱하여 기저대역 신호를 생성하고, 기저대역 신호를 디지타이징(digitize)하고, 기저대역 신호를 신호 버스(110)를 통해 DSP(108)로 출력할 수 있다. DSP(108)는 기저대역 신호를 프로세싱하여 기저대역 신호에 포함된 정보를 복원할 수 있다. 기저대역 신호의 프로세싱 동안, DSP(108)는 메모리(106)에 대해 판독 및 기입을 할 수 있다. 복원된 정보는 다음에 디바이스의 사용자로의 출력을 위해 사용자 인터페이스(112)로 전달될 수 있다.
예시적인 전송 동작에서, 전송되는 데이터가 메모리(106)로부터 판독되어, DSP(108)로 전달될 수 있다. DSP(108)는 데이터를 프로세싱하여, 하나 이상의 통신 표준에 따라 기저대역 신호를 생성할 수 있다. 기저대역 신호를 생성할 때, DSP(108)는 메모리(106)로부터 판독하거나 메모리(106)로 기입할 수 있다. 생성된 기저대역 신호는 AFE(102)로 전달될 수 있고, 여기서 아날로그 표현으로 변환되고, 더 프로세싱될 수 있으며, 물리적 매체상으로 전달될 수 있다.
도 1b는 예시적인 수신기의 일부를 도시하며, 이 수신기는 본 발명을 이용하여, 정정가능한 수의 고장 메모리 셀들 보다 더 많은 수의 셀을 갖는 메모리 셀들의 어레이를 이용하는 경우라도 만족할만한 성능을 얻을 수 있다.
여기서 이용되는 바와 같은, 메모리 셀들의 "어레이"는 특정 어드레스(어드레스 버스(208)상의 특정 값)에 대응하는 메모리 셀들의 그룹을 지칭할 수 있다. 따라서, 메모리(200)는 "어레이-어드레서블(array-addressable)"로 지칭될 수 있다. 예컨대, 메모리(200)가 8 비트 어레이들을 이용하면, 바이트-어드레서블로 지칭될 수 있다. 유사하게, 메모리(200)가, 각각의 어레이가 메모리의 X 비트 워드에 대응하는, X 비트 어레이들(X는 정수)을 이용하면, 메모리(200)는 워드-어드레서블로 지칭될 수 있다.
수신기(150)의 도시된 부분은 메모리 모듈(152), 이퀄라이저 모듈(154), 디맵퍼 모듈들(156 및 160), 디인터리버 모듈(158), 디펑처러 모듈(depuncturer module)(162), 비터비 디코더 모듈(164), 바이트 디인터리버 모듈(166), 리드-솔로몬(Reed-Solomon) 디코더 모듈(168)을 포함할 수 있다. 수신기(150)의 도시된 부분은, 예컨대, 도 1a의 DSP(108)과 같은 DSP에 의해 구현될 수 있다.
메모리 모듈(152)이 디인터리버 모듈(158)에 의해서만 이용되는 것으로 도시되었지만, 수신기(150)의 다른 모듈들도 메모리 모듈(152)로부터 판독 및/또는 메모리 모듈(152)로의 기입을 할 수 있으며, 이렇게 함으로써, 성능을 향상시키고, 및/또는 비용 및/또는 전력 소모를 절감할 수 있는 본 발명의 양태를 이용할 수 있다. 또한, 수신기(150)의 다른 모듈들은 그들 자신의 메모리를 가질 수 있고, 이들 메모리는 버스(110)와 인터페이스할 수 있거나, 하지 않을 수 있고, 또한 본 발명의 양태를 포함 및/또는 이용할 수 있다.
동작시에, 수신된 디지털 기저대역 신호(151)는 AFE(102)로부터 수신될 수 있다. 이퀄라이저(154)는 신호(151)를 프로세싱하고, 신호(151)의 다양한 주파수 성분들의 레벨을 조정하여, 신호(155)를 생성할 수 있다. 디맵퍼(156)는 신호(155)의 심볼들을 신호(157)의 하나 이상의 비트들의 그룹으로 트랜스레이트(translate)할 수 있다. 디인터리버(158)는 신호(157)의 비트들의 그룹을 디인터리브하여, 신호(159)를 생성할 수 있다. 메모리(152)는 인터리빙동안 신호들(157 및/또는 159)의 비트들을 버퍼링하는데 이용될 수 있다. 디맵퍼(160)는 신호(159)의 비트들의 그룹을 신호(161)의 비트들의 그룹으로 트랜스레이트할 수 있다. 디펑처러(162)는 비트들을 신호(161)에 삽입하여 신호(163)를 생성할 수 있다. 비터비 디코더(164)는 비터비 알고리즘을 이용하여 신호(163)를 디코딩하여 신호(165)를 생성할 수 있다. 바이트 디인터리버(166)는 바이트-바이-바이트(byte-by-byte) 기반으로 신호(165)를 재배열하여 신호(167)를 생성할 수 있다. 모듈(168)은 신호(167)에 대해 리드-솔로몬 디코딩을 수행하여 신호(169)를 생성할 수 있다. 신호(169)는 (예컨대, 사용자 인터페이스에 의한) 추가적인 프로세싱을 위해 출력될 수 있다.
본 발명의 예시적인 실시예에서, 수신기(150)는 초당 헤르쯔당 적어도 6비트의 스펙트럼 효율을 요구하는 시스템에서 동작할 수 있다. 이러한 실시예에서, 본 발명의 양태들은 수신기가, 0.025dB 이상 캐리어-대-잡음 민감도 임계치를 저하시키지 않고, 메모리(152)의 임의의 주어진 열에 대해 적어도 0.0004의 셀 고장율을 허용할 수 있도록 한다. 이것은, 메모리(152)가 주조-표준(foundry-standard) 셀에 기초하는 종래의 메모리들보다 그 면적이 더 작은 경우라도 달성될 수 있다. 메모리(152)는 예컨대, 메모리 셀들의 중복되는 열들 및/또는 중복되는 행들의 수를 감소시키거나, 완전히 제거하여 더 작게 제조될 수 있다.
도 2는 예시적인 내고장성 메모리의 제1 도면을 나타내고 있다. 도 2를 참조하면, 메모리(200)는 선택기(205), 및 복수의 메모리 타일(2021-2028)을 포함한다. 다른 예시적인 메모리들은 상이한 개수의 메모리 타일들을 포함할 수 있다. 또한, 어드레스 버스(208), 기입 데이터 버스(210), 판독 데이터 버스(216) 및 타일 선택 라인들(2121-2128)이 도시되어 있다. 도 2에 도시된 예시적인 메모리에서, 기입 데이터 버스(210) 및 판독 데이터 버스(216) 각각은 40 비트 데이터를 나르는 40개의 라인들을 포함하고, 어드레스 버스(208)는 20 비트 어드레스를 나르는 20개의 라인들을 포함한다. 20 비트 어드레스 및 40 비트 데이터가 도시되어 있지만, 본 발명은 임의의 특정한 개수의 어드레스 또는 데이터 비트들에 국한되지는 않는다.
메모리 타일들(2021-2028)은 연관된 주변 컴포넌트들 및 메모리 셀들의 하나 이상의 어레이를 포함할 수 있다. 각각의 어레이는 메모리 타일들(2021-2028) 중 하나에 전부 상주하거나 또는 메모리 타일들(2021-2028) 중 복수의 타일들에 걸칠 수 있다. 예시적인 메모리 타일(202X)(여기서, X는 1과 8 사이의 정수임)가 도 3a에 도시되어 있다. 선택기(205)는 (어드레스의 3개의 최상위 비트들(MSBs)에 대응하는) 어드레스 버스(208)의 3개의 최상위 라인들 상의 값을 디코딩하여 타일 선택 신호들(2121-2128) 중 하나를 어써트(assert)할 수 있다.
예시적인 기입 동작에서, 데이터가 기입될 메모리 위치의 어드레스는 어드레스 버스(208) 상에 위치할 수 있으며, 메모리 위치에 기입될 데이터는 기입 데이터 버스(210) 상에 위치할 수 있다. 어드레스 버스(208)의 3개의 최상위 라인들은 타일 선택 라인들(2121-2128) 중 어느 하나가 선택될지를 결정할 수 있다. 선택된 타일 선택 라인(212X)이 선택되는 타일(202X)이 될 수 있다. (어드레스의 17개의 최하위 비트들(LSBs)에 대응하는) 어드레스 버스(208)의 17개의 최하위 라인들은 선택된 타일(202X)에서의 어떤 메모리 위치에 기입 데이터 버스(210) 상의 데이터가 기입될지를 결정할 수 있다.
예시적인 판독 동작에서, 데이터가 판독될 메모리 위치의 어드레스는 어드레스 버스(208) 상에 위치할 수 있다. 어드레스의 3개의 MSB들은 타일 선택 라인들(2121-2128) 중 어떤 라인이 선택될지를 결정할 수 있다. 선택된 타일 선택 라인(212X)은 선택되는 타일(202X)이 될 수 있다. 어드레스 버스(208)의 17개의 최하위 라인들은 선택된 타일(202X)에서의 어떤 메모리 위치가 판독 데이터 버스(216) 상에 판독될지를 결정할 수 있다.
도 3a는 예시적인 내고장성 메모리의 제2 도면을 나타내고 있다. 도 2에서의 메모리 타일들(2021-2028) 중 하나에 대응할 수 있는 예시적인 메모리 타일(202X)이 도 3a에 도시되어 있다. 메모리 타일(202X)은 고장 레지스터(304), 고장 완화 맵핑 모듈들(3061-3065), 고장 완화 제어 모듈(322), 메모리 인스턴스들(3141-3144) 및 멀티플렉서 모듈들(318 및 320)을 포함한다. 또한, 기입 데이터 버스(210), 판독 데이터 버스(216), 버스(302), 버스들(3161-3164), 기입 맵 제어 신호(308) 및 판독 맵 제어 신호(310)가 도시되어 있다.
고장 레지스터(304)는 메모리 인스턴스들(3141-3144)의 하나 이상의 고장 스캔의 결과들을 저장할 수 있다. 이러한 스캔들은 예를 들어 메모리(200)가 상주하는 시스템(예컨대, 수신기(150))의 시동 동안에 및/또는 생산 중에 메모리 및/또는 시스템을 테스트하는 일부로서 발생할 수 있다. 이러한 스캔(들) 동안에, 메모리 인스턴스들(3141-3144)은 고장 메모리 셀들을 검출하기 위해 스캐닝될 수 있다. 하나 이상의 검출된 고장 메모리 셀들 각각에 대해, 고장 레지스터(304)의 하나 이상의 셀이 구성될 수 있다. 이런 식으로, 고장 레지스터(304)는 메모리 인스턴스들(3141-3144)에서의 고장 메모리 셀들의 개수 및/또는 위치의 결정을 가능하게 할 수 있다. 고장 레지스터(304)는 SRAM, DRAM, ROM, EEPROM, 플래시, eFuse와 같은 휘발성 및/또는 비휘발성 메모리, 및/또는 메모리 인스턴스들(3141-3144)의 내부 및/또는 외부의 하나 이상의 플립 플롭들로 이루어진 레지스터의 임의의 적합한 타입을 포함할 수 있다. 예컨대, 고장 레지스터(304)는 생산 중에 수행되는 스캔에 기반하여 프로그램되는 하나 이상의 1회 프로그램 가능 셀들 및 각각의 시동시 프로그램되는 하나 이상의 SRAM 셀들을 포함할 수 있다. 다른 예에서, 시동 스캔들의 결과들은 다수의 시동들에 걸쳐 (예를 들면, 플래시)에 누적될 수 있다. 고장 레지스터의 메모리 셀들은 메모리 인스턴스들(3141-3144)의 메모리 셀들로부터 물리적으로 분리될 수 있다. 대안으로(또는 추가적으로), 메모리 인스턴스들(3141-3144) 중 하나 이상의 메모리 인스턴스들의 메모리 셀들이 할당되어 고장 레지스터로서 기능할 수 있다.
고장 완화 제어 모듈(322)은 기입 맵 제어 신호(308) 및 판독 맵 제어 신호(310)를 생성할 수 있다. 기입 동작 동안에, 제어 모듈(322)은 기입될 메모리 셀들의 어레이 및 그 메모리 셀들의 어레이에 대응하는 고장 레지스터의 콘텐츠들에 기반하여 기입 맵 제어 신호(308)의 상태를 제어할 수 있다. 판독 동작 동안에, 제어 모듈(322)은 판독될 메모리 셀들의 어레이 및 그 메모리 셀들의 어레이에 대응하는 고장 레지스터의 콘텐츠들에 기반하여 판독 맵 제어 신호(310)의 상태를 제어할 수 있다.
판독 동작 동안에, 버스(302)의 신호 라인들은 메모리 인스턴스들(3141-3144) 각각의 비트 라인들에 제각기 접속될 수 있다. 기입 동작 동안에, 버스(3161)의 신호 라인들은 메모리 인스턴스(3141)의 비트 라인들에 접속될 수 있고, 버스(3162)의 신호 라인들은 메모리 인스턴스(3142)의 비트 라인들에 접속될 수 있고, 버스(3163)의 신호 라인들은 메모리 인스턴스(3143)의 비트 라인들에 접속될 수 있으며, 버스(3164)의 신호 라인들은 메모리 인스턴스(3144)의 비트 라인들에 접속될 수 있다. 이것이 도 3c에 도해되어 있는데, 이에 대해서는 후술한다.
고장 완화 맵퍼(3065)는 기입 데이터 버스(210)의 어떤 라인들이 버스(302)의 어떤 라인들에 접속될지를 결정한다. 기입 맵 제어 신호(308)의 상이한 값들은 기입 데이터 버스(210)의 라인들과 버스(302)의 라인들 간의 상이한 맵핑들에 대응한다.
고장 완화 맵퍼(3061)는 버스(3161)의 어느 라인들이 버스(3171)의 어느 라인들에 연결되는지를 판정한다. 궁극적으로, 만약 신호(3161)가 멀티플렉서(318)에 의해 선택된다면, 고장 완화 맵퍼(3061)는 버스(3161)의 어느 라인들이 판독 데이터 버스(216)의 어느 라인들에 연결되는지를 판정한다. 판독 맵 제어 신호(310)의 상이한 값들은 버스(3161)와 버스(3171) 사이의 상이한 맵핑들(따라서 버스(3161)와 판독 데이터 버스(216) 사이의 상이한 맵핑들)에 대응한다.
고장 완화 맵퍼(3062)는 버스(3162)의 어느 라인들이 버스(3172)의 어느 라인들에 연결되는지를 판정한다. 궁극적으로, 만약 신호(3162)가 멀티플렉서(318)에 의해 선택된다면, 고장 완화 맵퍼(3062)는 버스(3162)의 어느 라인들이 판독 데이터 버스(216)의 어느 라인들에 연결되는지를 판정한다. 판독 맵 제어 신호(310)의 상이한 값들은 버스(3162)와 버스(3172) 사이의 상이한 맵핑들(따라서 버스(3162)와 판독 데이터 버스(216) 사이의 상이한 맵핑들)에 대응한다.
고장 완화 맵퍼(3063)는 버스(3163)의 어느 라인들이 버스(3173)의 어느 라인들에 연결되는지를 판정한다. 궁극적으로, 만약 신호(3163)가 멀티플렉서(318)에 의해 선택된다면, 고장 완화 맵퍼(3063)는 버스(3163)의 어느 라인들이 판독 데이터 버스(216)의 어느 라인들에 연결되는지를 판정한다. 판독 맵 제어 신호(310)의 상이한 값들은 버스(3163)와 버스(3173) 사이의 상이한 맵핑들(따라서 버스(3163)와 판독 데이터 버스(216) 사이의 상이한 맵핑들)에 대응한다.
고장 완화 맵퍼(3064)는 버스(3164)의 어느 라인들이 버스(3174)의 어느 라인들에 연결되는지를 판정한다. 궁극적으로, 만약 신호(3164)가 멀티플렉서(318)에 의해 선택된다면, 고장 완화 맵퍼(3064)는 버스(3164)의 어느 라인들이 판독 데이터 버스(216)의 어느 라인들에 연결되는지를 판정한다. 판독 맵 제어 신호(310)의 상이한 값들은 버스(3164)와 버스(3174) 사이의 상이한 맵핑들(따라서 버스(3164)와 판독 데이터 버스(216) 사이의 상이한 맵핑들)에 대응한다.
메모리 인스턴스들(3141-3144)은 하나 이상의 메모리 어레이들을 포함할 수 있다. 각각의 어레이는 전체가 메모리 인스턴스들(3141-3144) 중 하나 내에 위치할 수 있거나, 메모리 인스턴스들(3141-3144) 중 복수 개에 걸쳐 있을 수 있다(span). 본 발명의 예시적인 실시예에서, 메모리 인스턴스들(3141-3144) 각각은 M개의 행들과 N개의 열들 내에 배열되는 M*N개의 메모리 셀들을 포함할 수 있으며, 여기서 M과 N 각각은 정수이고, M과 N 중 하나 또는 모두는 1보다 크다.
멀티플렉서(318)는 버스들(3171-3174) 중 어느 것이 버스(319)로 라우팅되도록 할지를 선택할 수 있다. 멀티플렉서(318)는 어드레스 버스의 하나 이상의 라인들(도 3a에 도시된 예시적 실시예에서, 어드레스 비트들 15 및 16에 대응하는 라인들 16 및 15)에 의해 제어될 수 있다.
멀티플렉서(320)는 버스(319)의 어느 비트들이 판독 데이터 버스(216)로 라우팅되도록 할지를 선택할 수 있다. 멀티플렉서(319)는 어드레스 버스의 하나 이상의 라인들(도 3a에 도시된 예시적 실시예에서, 어드레스 비트 0에 대응하는 라인 0)에 의해 제어될 수 있다.
동작에 있어서, 시작(start-up)시 및/또는 제조/생산 테스팅 동안, 메모리 인스턴스들(3141-3144)의 스캔이 수행될 수 있으며, 고장이 있는 메모리 셀들의 위치가 고장 레지스터(304)에 저장될 수 있다. 스캔이 완료된 후, 메모리(202X)는, 데이터가 메모리(202X)로부터 판독되고 그에 기입되는 정규의 동작을 시작할 수 있으며, 여기서, X는 1과 8 사이(1 및 8을 포함함)의 정수이다.
기입 동작에서, 메모리 위치에 기입될 데이터는 버스(210)의 라인들 상에 배치될 수 있으며, 기입될 위치의 어드레스("ADRS_W")는 어드레스 버스(208) 상에 배치될 수 있다. 고장 완화 제어 모듈(322)은 고장 레지스터(304) 내에서 ADRS_W를 검색하여 메모리 인스턴스들(3141-3144) 내의 그 위치에 임의의 고장 메모리 셀들이 있는지를 판정한다. 고장 완화 제어 모듈(322)은, 검색 결과에 대응하는 맵핑을 실행하도록 맵퍼(3065)를 구성하도록 기입 맵 제어 신호(308)를 설정할 수 있다. 그런 다음, 버스(210)의 데이터는 버스(302)에 맵핑된다. 다음으로, 메모리 인스턴스(314W)(ADRS_W에 대응하는 메모리 인스턴스)에 대응하는 기입 인에이블 신호(312)의 비트가 어써트되어(asserted), 버스(302)의 라인들이 메모리 인스턴스(314W)의 비트 라인들에 연결되도록 하고, 기입 동작을 달성하게 된다.
판독 동작에서, 판독될 어드레스("ADRS_R")는 어드레스 버스(208) 상에 배치될 수 있다. 고장 완화 제어 모듈(322)은 고장 레지스터(304) 내에서 ADRS_R을 검색하여 메모리 인스턴스들(3141-3144) 내의 그 위치에 임의의 고장 메모리 셀들이 있는지를 판정한다. 고장 완화 제어 모듈(322)은, 검색 결과에 대응하는 맵핑을 실행하도록 맵퍼들(3061-3064)을 구성하도록 기입 맵 제어 신호(310)를 설정할 수 있다. 메모리 인스턴스들(3141-3144) 각각의 ADRS_R에 대응하는 메모리 셀들은 버스들(3161-3164)에서 각각 판독될 수 있다. 버스(3161)의 라인들은 맵퍼(3061)에 의해 버스(3171)의 라인들에 맵핑될 수 있고, 버스(3162)의 라인들은 맵퍼(3062)에 의해 버스(3172)의 라인들에 맵핑될 수 있고, 버스(3163)의 라인들은 맵퍼(3063)에 의해 버스(3173)의 라인들에 맵핑될 수 있고, 버스(3164)의 라인들은 맵퍼(3064)에 의해 버스(3174)의 라인들에 맵핑될 수 있다. ADRS_R의 비트들 16 및 15에 기초하여, 멀티플렉서(318)는 버스들(3171-3174) 중 하나를 버스(319)에 연결시킨다. ADRS_R의 비트 0에 기초하여, 버스(319)의 라인들의 제1 부분과 제2 부분 중 어느 하나는 판독 데이터 버스(216)의 라인들에 연결된다.
도 3b는 다른 예시적인 내고장서 메모리(fault-tolerant memory)의 제2 도면을 도시한다. 도 3b의 메모리는 도 3a의 메모리와 유사할 수 있지만, (예를 들어 도면의 맵퍼들(3061 내지 3064) 중 어느 하나에 대응할 수 있는) 맵퍼(3066)에 의해 버스(323)로 맵핑되기 전에, 메모리 인스턴스들(3141 내지 3144)의 출력들이 버스(321)로 다중화되는 점에서 다를 수 있다. 도 3a의 메모리 또는 도 3b의 메모리 (또는 도시되지 않은 다른 메모리)가 본 발명의 측면들과 함께 이용되는지 여부는 다양한 설계 제한들 및 고려 사항들에 의해 결정될 수 있다.
도 3c는 예시적인 메모리 인스턴스를 도시한다. 도 3a에서 도시된 메모리 인스턴스들(3141 내지 3144) 중 어느 하나에 대응할 수 있는 예시적인 메모리 인스턴스(314Y)가 도 3c에서 도시된다. 메모리 인스턴스(314Y)는 행 디코더(330), 워드/행 라인들(332)[1:M], 비트 라인들(336)[1:N], 메모리 셀들(3341,1 내지 334M,N), 및 열(column) 입력/출력 모듈(338)을 포함한다. 셀들(3341,1 내지 334M,N)은 메모리 타일(memory tile)들(2021 내지 2028) 중 하나 이상의 메모리 인스턴스들(3141 내지 3144) 중 하나 이상에 있을 수 있다. 비록 싱글 엔드형(single-ended)의 실시예가 도시되지만, 각각의 워드 라인(332)[m] 및/또는 각각의 비트 라인(336)[n]은 차등 시그널링(differential signaling)을 위한 2개의 라인들을 포함할 수 있다. 여기에서 사용되는 것처럼, 용어 "비트 라인"은 싱글 엔드형 비트 라인 및 차등 쌍(differential pair) 비트 라인 양쪽 모두를 지칭하기 위해 사용된다.
행 디코더(330)는, 어드레스(208)에 대응하는 행 라인이 어써트(assert)되는(즉, "선택되는") 반면에 나머지 워드 라인들(332)은 디어써트되도록(즉, "선택되지 않도록"), 버스(208)에서 2진 인코딩된 어드레스의 일부를 디코딩할 수 있다.
메모리 셀들(3341,1 내지 334M,N)의 각각은 일 비트의 데이터를 저장하도록 동작할 수 있다. 각각의 메모리 셀은, 예를 들어, 교차 결합형(cross-coupled) 인버터들 및 하나 이상의 접속 트랜지스터들을 포함할 수 있다.
열 입력/출력 모듈(338)은 버스(302)(도 3a 참조) 또는 버스(316)(도 3a 참조)가 비트 라인들(336)[1:N]에 연결되는지 여부를 선택할 수 있다. we[Y]인 경우, 메모리 인스턴스(314Y)에 대응하는 기입 인에이블 신호(write enable signal)(312)의 비트가 어써트되고, 메모리 인스턴스(314Y)에 대응하는 버스(316)는 비트 라인들(336)[1:N]에 연결될 수 있고, we[Y]가 디어써트되는 경우 버스(302)는 비트 라인들(336)[1:N]에 연결될 수 있다.
도 3d는 고장 레지스터(fault register)와 그 고장 레지스터를 통해 관리되는 메모리 셀들 사이의 예시적인 맵핑을 도시한다. 도 3d를 참조하면, 메모리(351)의 M행×N열 블록이 도시되고, 여기서 M 및 N은 정수이고, 그들 중 하나 또는 양쪽 모두는 1보다 크다. 본 발명의 예시적인 실시예에서, 메모리(351)의 각각의 행은 특정 메모리 어드레스에 대응할 수 있다 (그리고, 따라서 각각의 행은, 여기에서 사용된 용어와 같이, "어레이"일 수 있다). 다른 실시예에서, 각각의 행은 복수의 메모리 어드레스들에 대응하는 복수의 어레이들을 포함할 수 있다. 또 다른 실시예에서, 메모리 블록(351)의 어레이들은 다수의 행들을 포괄할 수 있고, 따라서, 하나의 메모리 어드레스가 다수의 행들에 대응할 수 있다. 또한, 메모리 셀들(3501 내지 350K)가 도시되고, 여기서 K=ceiling(M/i)이고, "ceiling()"는 가장 가까운 정수로의 올림을 가리키고, i는 1과 M을 포함하는 그 사이의 정수이다. 메모리 블록(351)의 각각의 제1 부분(352)은 메모리 블록(351)의 i행의 메모리 셀들에 대응할 수 있고, 고장 레지스터 메모리 셀들(3501 내지 350K) 중 하나와 연관될 수 있다. 따라서, i의 더 큰 값들이 더 작은 고장 레지스터들에 대응할 수 있는 반면에, i의 더 작은 값들은 메모리 블록(351)의 고장 셀들의 더 양호한 완화를 제공할 수 있다. 예를 들어, i의 값은 메모리의 수명에 대해 고정될 수 있다. 예를 들어, i의 값은 최소 배선폭(feature size) 및/또는 메모리 블록(351)이 제조되는 기술 프로세스의 다른 특성에 기초하여 결정될 수 있다. 또한 또는 대안적으로, i의 값은, 메모리 블록(351)이 (예를 들어, 내장된 자기 진단에 기초하여) 시작할 때마다 결정될 수 있다. 일 고장 레지스터 셀(350k)가 메모리(351)의 블록의 각각의 i 행들에 대응하는 도 3d의 예시적인 실시예는 어레이들이 2개의 민감도 존들(민감도 존들은 아래에서 더 상세하게 설명됨)로 구획되는 실시예에 대응할 수 있다. 그러나, 본 발명은 이에 제한되지 않으며, 둘 이상의 고장 레지스터 비트가 메모리(351)의 블록의 각각의 i 행들에 대응할 수 있다. 본 발명의 예시적인 실시예에서, 각각의 i 행들에 대응하는 고장 레지스터 셀들의 수는 ceiling(log2R)일 수 있고, 여기서 R은 민감도 존들의 수를 나타내는 1보다 큰 정수이다. 예를 들어, R=4(예를 들어, 높은, 중간.높음, 중간.낮음, 및 낮음)인 민감도 존들에 대해, 메모리의 각각의 i 행들에 대한 2개의 고장 레지스터 셀들이 있을 수 있다.
도 3e는 예시적인 고장 완화 컨트롤러의 일부분을 도시한다. 도 3e를 참조하면, 고장 완화 컨트롤러(322)의 도시된 부분은 고장 축적기(356), 및 논리 모듈들(358, 360, 362, 및 364)을 포함한다.
동작 중 메모리(200)의 시작시 메모리(200)의 스캔은 초기화될 수 있다. 스캔은 메모리에 테스트 데이터를 기입하는 단계; 메모리로부터 테스트 데이터를 판독하는 단계, 및 그후 기입된 데이터와 판독된 데이터를 비교하여 고장 메모리 셀을 검출하는 단계를 포함할 수 있다. 고장 축적기(356)의 각각의 셀 또는 셀들의 그룹은 스캔 중인 메모리의 블록에서 메모리의 특정 열에 대응할 수 있다. 따라서, 테스트 중인 i행들(rows)에 대해, 고장 셀이 특정 열에서 검출될 때마다, 그 열에 대응하는 고장 축적기(356)의 하나 이상의 비트들이 증분된다.
예시적으로, 메모리(351)의 일 블록의 첫번째 i행들에 대응하는 셀들의 부분(3521)(도 3d)을 고려한다. 테스트 데이터는 부분(3521)의 셀들에 기입되고 나서 이로부터 판독되어, 부분(3521)에서 임의의 고장 셀들을 검출한다. 각각의 1열에서 N열에 대해, 그 열에 대응하는 고장 축적기(356)의 하나 이상의 비트들은, 고장 메모리 셀이 부분(3521)의 그 열에서 검출될 때마다, 증분될 수 있다. 부분(3521)에서 모든 셀들이 테스트 되었다면, 하나 이상의 로직 및/또는 산술 동작들이 고장 축적기(356)의 컨텐츠에 적용되어 고장 레지스터의 셀(3501)이 어써트(assert)되는지 디어써트(deassert)되는지를 판정한다. 어써트 중인 셀(3501)은 부분(3521)에서 어레이(array)에 기입하고 이로부터 판독할 경우 제1 맵핑(mapping)이 활용되고 있음을 가리킬 수 있다. 이와 반대로, 디어써트 중인 셀(3501)은 부분(3521)에서 어레이에 기입하고 이로부터 판독할 경우 제2 맵핑이 활용되고 있음을 가리킬 수 있다.
고장 레지스터(356)의 컨텐츠 상에서 수행된 로직 및/또는 산술 동작들은 고민감도(high-sensitivity) 존들에 대응하는 부분(3521)의 열과 저 민감도(low-sensitivity) 존들에 대응하는 부분(3521)의 열에 의존할 수 있다. 예시적인 설명부분에서는, 고 민감도 부분들(3681 및 3683) 및 저 민감도 부분들(3682 및 3684)이 있으며, 각 부분들은 메모리 블록(351)의 하나 이상의 열들에 대응하는 하나 이상의 비트들을 포함한다. 부분들(3681 및 3683)의 비트(들)은 모듈(358)에 의해 로직 OR되어 신호(359)를 발생시킨다. 부분들(3682 및 3684)의 비트(들)은 모듈(360)에 의해 로직 OR되어 신호(361)를 발생시킨다. 신호(361)는 인버터(362)에 의해 반전되어 신호(363)를 발생시킨다. 신호들(361 및 363)은 AND되어 신호(366)을 발생시킨다. 신호(366)가 어써트되면, 1이 메모리 셀(3501)에 기입될 수 있고, 신호(366)이 디어써트되면, 0이 메모리 셀(3501)에 기입될 수 있다.
각각의 부분들(3522~352K)은 부분(3521)에 대한 상술한 것과 유사한 방식으로 고장을 스캔할 수 있다. 각각의 고장 레지스터 셀들(3502~350K)은 셀(3501)에 대한 상술한 것과 유사한 방식으로 팝퓰레이터(populate)될 수 있다.
도 4a 내지 4e는 메모리의 어레이가 그 어레이에서 하나 이상의 고장 셀들의 영향을 완화시키기 위한 두 민감도 존들로 구획되어진 예시적 시스템을 도시한다. 도 4a 내지 4e에는 하나의 메모리 셀들의 어레이(400), 어레이(400)와 연관된 고장 레지스터(402), 및 어레이(400)에 기입될 8비트 데이터 블록이 도시된다. 도 4a 내지 4e에 도시된 예시적인 실시예에서는, 어레이(400)가 8비트들이고 데이터 블록이 8비트들이지만, 본 발명은 이에 한정되는 것이 아니다.
어레이(400)에 저장될 데이터에 기초하여, 어레이(400)의 셀들은 고 민감도 존과 저 민감도 존으로 구획될 수 있다. 예시적으로, 4a 내지 4c에 도시된 예시적인 실시예에서, 데이터 블록(404)은 MSB가 비트[7]이고 LSB가 비트[0]인 8비트 수이다. 본 실시예에서, 데이터 블록(404)의 하나의 비트[7:4]에서의 에러가 데이터 블록(404)의 하나의 비트[3:0]에서의 에러보다는 교정 값(correct value)으로부터 시스템 성능에서 큰 편차를 초래할 것이다. 예를 들어, 디지털 통신 또는 비디오 시스템에서, 비트 에러 레이트(BER), 패킷 에러 레이트(PER), 또는 프레임 에러 레이트(FER)는 비트들[3:0]의 에러보다 비트들[7:4]의 에러에서 더 낮아질 수 있다. 따라서, 상부 4개의 셀들(셀들 [7:4])은 더 높은 민감도 셀들로 구획되고, 하부 4개의 셀들(셀들 [3:0])은 더 낮은 민감도 셀들로 구획된다. 본 발명의 일 실시예에서, 셀 및/또는 열이 어느 민감도 존에 할당되는지는 작동 중인 셀 및/또는 열과 오류 중인 셀 및/또는 열의 비교에 기인하여 시스템 성능 메트릭(예컨대, 비트 에러 레이트(BER))에서 정규화된(normalize)된 차이에 기초하여 결정될 수 있다.
동작 중 어레이(400)의 셀들[7:0] 및 데이터 블록(404)의 비트들[7:0] 사이의 맵핑은 고장 레지스터(402)가 가리키는 맵핑에 기초하여 결정될 수 있다.
도 4a에서, 어레이(400)에는 고장 셀들이 존재하지 않는다. 따라서, 고장 레지스터(402)는 제1 맵핑이 사용될 것이라는 것을 나타낸다. 도 4a 내지 도 4e에 도시된 예시적인 실시예에서, 제1 맵핑은 데이터 블록(404)의 비트들[0:N]이 어레이(400)의 셀들[0:N]에 순차적으로 기입되도록 한다. 즉, 도 4a에서 사용된 맵핑은 이하의 표 1에 도시된 바와 같다.
Figure pct00001
도 4b에서, 고장 메모리 셀(셀 [1])이 더 낮은 민감도 존에는 존재하나, 더 높은 민감도 존에는 존재하지 않는다. 따라서, 고장 레지스터(402)는 제1 맵핑이 사용될 것이라는 것을 나타낸다.
도 4c에서, 고장 메모리 셀(셀 [5])이 더 높은 민감도 존에는 존재하나, 더 낮은 민감도 존에는 존재하지 않는다. 따라서, 고장 레지스터(402)는 제2 맵핑이 사용될 것이라는 것을 나타낸다. 도 4a 내지 도 4e에 도시된 예시적인 실시예에서, 제2 맵핑은 데이터 블록(404)의 비트들 [0:N]이 어레이(400)의 셀들[0:N]에 역순으로 (reverse-sequentially) 기입되도록 한다. 즉, 도 4c에서 사용된 맵핑은 이하의 표 2에 도시된 바와 같다.
Figure pct00002
도 4d에서, 고장 메모리 셀(셀 [4])이 더 높은 민감도 존에 존재하고, 고장 메모리 셀(셀 [1])이 더 낮은 민감도 존에 존재한다. 본 발명의 양태들은 어떤 맵핑을 사용할 것인지 결정하기 위해 각각의 이용가능한 맵핑에 대한 데이터 블록(404)의 값 내의 잠재적인 오류를 비교할 수 있도록 한다. 이것을 설명하기 위해, 도 4d에서 제1 맵핑은 비트 4와 비트 1에 잠재적인 오류들을 생성하고, 제2 맵핑은 비트 6과 비트 3에 잠재적인 오류들을 생성한다. 따라서, 도 4d에서 제1 맵핑이 사용될 수 있다. 유사하게, 도 4e에서 제1 맵핑은 비트 7과 비트 2에 잠재적인 오류들을 생성하고, 제2 맵핑은 비트 5와 비트 0에 잠재적인 오류들을 생성한다. 따라서, 도 4e에서는 제2 맵핑이 사용된다.
도 5a 내지 도 5k에는 메모리의 어레이가 그 어레이에서의 하나 이상의 고장 셀들의 영향을 완화시키기 위해 4개의 존들로 구획되는 예시적인 시스템이 도시되어 있다. 도 5a 내지 도 5k에는 메모리 셀들의 어레이(500), 어레이(500)와 연관된 고장 레지스터(502), 및 어레이(500)에 기입될 8-비트 데이터 블록이 도시되어 있다. 도 5a 내지 도 5k에 도시된 예시적인 실시예에서, 어레이(500)는 8비트이고 데이터 블록은 8비트이지만, 본 발명은 이러한 실시예에 제한되지 않는다.
어레이(500)에 저장되는 데이터에 기초하여, 어레이(500)의 셀들은 상대적 에러 민감도에 의해 4개의 존들로 구획될 수 있다. 설명을 위해, 도 5a 내지 5i에 도시된 예시적인 실시예에서, 데이터 블록(504)은 비트 [7]이 MSB이고 비트 [0]가 LSB인 8비트 수이다. 이 실시예에서, 셀들 [7:6]은 상대적 고 민감도로서 구획되고, 셀들 [5:4]은 상대적 중-고 민감도로서 구획되고, 셀들 [3:2]은 상대적 중-저 민감도로 구획되고, 셀들 [1:0]은 상대적 저 민감도로 구획된다.
동작시에, 어레이(400)의 셀들 [7:0]과 데이터 블록(404)의 비트들 [7:0] 사이의 맵핑은 2비트 고장 레지스터(502)에 의해 지시되는 맵핑에 기초하여 결정될 수 있다.
도 5a에서, 어레이(500)에 고장 셀들은 없다. 따라서, 고장 레지스터(502)는 제1 맵핑이 사용되어야 함을 가리킨다. 도 5a 내지 5k에 도시된 예시적인 실시예에서, 제1 맵핑은 데이터 블록(504)의 비트들 [0:N]이 연속적으로 어레이(500)의 셀들 [0:N]로 기입되게 한다. 즉, 도 5a에서 사용되는 맵핑은 하기의 표 3과 같다.
Figure pct00003
도 5b에서, 상대적 저 민감도 존에 고장 메모리 셀(셀 [0])이 있다. 따라서, 고장 레지스터(502)는 제1 맵핑이 사용되어야 함을 가리킨다.
도 5c에서, 상대적 저 민감도 존에 고장 메모리 셀(셀 [1])이 있다. 따라서, 고장 레지스터(502)는 제1 맵핑이 사용되어야 함을 가리킨다.
도 5d에서, 중-저 민감도 존에 고장 메모리 셀(셀 [2])이 있다. 따라서, 고장 레지스터(502)는 제2 맵핑이 사용되어야 함을 가리킨다. 도 5a 내지 5i에 도시된 예시적인 실시예에서, 제2 맵핑은 어레이(500)의 셀들 [3:2]이 어레이(500)의 셀들 [1:0]과 교체되게 한다. 즉, 도 5d에서 사용되는 맵핑은 하기의 표 4와 같다.
Figure pct00004
도 5e에서, 중-저 민감도 존에 고장 메모리 셀(셀 [3])이 있다. 따라서, 고장 레지스터(502)는 제2 맵핑이 사용되어야 함을 가리킨다.
도 5f에서, 중-고 민감도 존에 고장 메모리 셀(셀 [4])이 있다. 따라서, 고장 레지스터(502)는 제3 맵핑이 사용되어야 함을 가리킨다. 도 5a 내지 5i에 도시된 예시적인 실시예에서, 제3 맵핑은 어레이(500)의 셀들[5:4]이 어레이(500)의 셀들[1:0]과 교체되게 한다. 즉, 도 5f에서 이용되는 맵핑은 하기의 표 5와 같다.
Figure pct00005
도 5g에서, 중-고 민감도 존에 고장 메모리 셀(셀 [5])이 있다. 따라서, 고장 레지스터(502)는 제3 맵핑이 사용되어야 함을 가리킨다.
도 5h에서, 상대적 고 민감도 존에 고장 메모리 셀(셀 [6])이 있다. 따라서, 고장 레지스터(502)는 제4 맵핑이 사용되어야 함을 가리킨다. 도 5a 내지 5i에 도시된 예시적인 실시예에서, 제4 맵핑은 어레이(500)의 셀들 [7:6]이 어레이(500)의 셀들 [1:0]과 교체되게 한다. 즉, 도 5h에서 이용되는 맵핑은 하기의 표 6과 같다.
어레이(500)의 셀 데이터 블록(504)의 비트
[7] [0]
[6] [1]
[2] [2]
[3] [3]
[4] [4]
[5] [5]
[0] [6]
[1] [7]
도 5i에서, 상대적 고 민감도 존에 고장 메모리 셀(셀 [7])이 있다. 따라서, 고장 레지스터(502)는 제4 맵핑이 사용되어야 함을 가리킨다.
도 5j에서, 중-고 민감도 존에 고장 메모리 셀(셀 [5])이, 중-저 민감도 존에 고장 메모리 셀(셀 [2])이 있다. 제2 맵핑은 비트 5와 0에서 잠재적인 에러를 가질 수 있다. 제3 맵핑은 비트 2와 1에서 잠재적인 에러를 가질 수 있다. 따라서, 고장 레지스터(502)는 제3 맵핑이 사용되어야 함을 가리킨다.
도 5k에서, 상대적 고 민감도 존에 고장 메모리 셀(셀 [6])이, 중-고 민감도 존에 고장 메모리 셀(셀 [5])이 있다. 제3 맵핑은 비트 6과 1에서 잠재적인 에러를 가질 수 있다. 제4 맵핑은 비트 5와 0에서 잠재적인 에러를 가질 수 있다. 따라서, 고장 레지스터(502)는 제4 맵핑이 사용되어야 함을 가리킨다.
도 4a 내지 4d가 2개의 민감도 존을 도시하는 반면, 도 5a 내지 5k는 4개의 민감도 존을 도시하고, 구체적으로, 사용되는 민감도 존들의 개수는 1보다 큰 임의의 정수일 수 있다.
도 6a는 예시적인 고장 완화 맵핑 모듈을 도시한다. 도 6a를 참고하면, 고장 완화 맵핑 모듈(602)은 입력 라인들(604) [7:0], 출력 라인들(610) [7:0], 멀티플렉서(608), 및 제어 신호(612)를 포함한다. 제어 신호(612)가 로직 0일때, 라인들(604) [7:0]은 하기의 표 7에 도시된 바와 같이 라인들(610) [7:0]로 맵핑될 수 있다. 제어 신호(612)가 로직 1일때, 라인들(604) [7:0]은 하기의 표 8에 도시된 바와 같이 라인들(610) [7:0]로 맵핑될 수 있다.
Figure pct00006
Figure pct00007
도 6b는 또하나의 예시적인 고장 완화 맵핑 모듈을 도시한다. 도 6b를 참조하면, 고장 완화 맵핑 모듈(622)은 입력 라인들(624)[7:0], 출력 라인들(630)[7:0], 멀티플렉서(628), 및 제어 신호(632)를 포함한다. 아래의 표 9에 보여지는 바와 같이, 제어 신호(612)가 로직 00인 경우, 라인들(624)[7:0]은 라인들(630)[7:0]에 맵핑될 수 있다. 아래의 표 10에 보여지는 바와 같이, 제어 신호(632)가 로직 01인 경우, 라인들(624)[7:0]은 라인들(630)[7:0]에 맵핑될 수 있다. 아래의 표 11에 보여지는 바와 같이, 제어 신호(632)가 로직 10인 경우, 라인들(624)[7:0]은 라인들(630)[7:0]에 맵핑될 수 있다. 아래의 표 12에 보여지는 바와 같이, 제어 신호(632)가 로직 11인 경우, 라인들(624)[7:0]은 라인들(630)[7:0]에 맵핑될 수 있다.
Figure pct00008
Figure pct00009
Figure pct00010
Figure pct00011
도 6c는 구성 가능한 고장 완화 맵핑 모듈을 포함하는 시스템을 도시한다. 도 6c를 참조하면, 구성 가능한 고장 완화 맵핑 모듈(640)은 입력 라인들(644)[7:0], 출력 라인들(650)[7:0], 멀티플렉서(648), 제어 신호(652), 및 64개의 구성 요소들(6461,1-6468,8)을 포함한다. 예시를 위해 64개의 구성 요소들이 사용되었으나, 본 발명은 그에 한정되지 않는다.
구성 요소들(6461,1-6468,8) 각각은, 예를 들어, NMOS 트랜지스터, PMOS 트랜지서, CMOS 송신 게이트, 퓨즈, 안티-퓨즈, 또는 신호 트레이스들 간을 접속시키고/접속시키거나 접속해제시키기 위한 임의의 다른 디바이스를 포함할 수 있다. 구성 요소들(6461,1-6468,8)은, 모듈(642)이 그 내부에 있는 디바이스(예를 들어, 리시버(150))의 동작 동안 (예를 들어, CPU(104)와 같은 프로세서로부터의 제어 신호들에 의해) 일회 구성 가능하거나, 프로그래밍 스테이션을 통해 전자적으로 구성 가능하거나, 그리고/또는 동적으로 구성 가능할 수 있다.
동작에서, 모듈(642)은 신호(652)가 로직 0인 경우 제1 맵핑을 수행할 수 있고, 신호(652)가 로직 1인 경우 제2 맵핑을 수행할 수 있다.
모듈(642)이 일회 프로그램 가능한 예시적인 실시예에서, 제2 맵핑은 모듈(642)과 함께 사용될 특정 메모리를 특징화함과 동시에 결정될 수 있다. 예를 들어, 모듈은, 메모리(152)의 각각의 행의 셀[6]이 고장나도록, 고장난 비트 라인[6]을 갖는 메모리(152)와 페어링될 수 있다. 모듈(642)은 메모리(152)의 비트 라인[6]이 라인들(644)[7:0] 중 모듈(642)을 통해 메모리(152)에 기입되는 데이터 블록들의 최하위 비트에 대응하는 라인에 맵핑되도록 프로그래밍될 수 있다.(예를 들어, 데이터 블록(404)의 비트[0])
예시적인 실시예에서, 모듈(642)은 메모리 당, 메모리 인스턴스 당, 메모리 어드레스 당, 및/또는 메모리 어레이 당 기준으로 구성될 수 있다. 예를 들어, 구성 요소들(642)은 메모리(152)의 제1 어드레스로부터 메모리에 기입하거나 판독하는 경우 제1 구성 내에 배치될 수 있고, 메모리(152)의 제2 메모리 어드레스로부터 기입하거나 판독하는 경우 제2 구성 내에 배치될 수 있다.
도 6a 내지 6c에 도시된 고장 완화 맵핑 모듈들은 신호 라인들의 재배열을 통해 상이한 맵핑들을 달성한다. 이러한 방식으로, 멀티플렉서들(608, 628 또는 648)에 의해 도입된 지연이 고장 완화 맵핑 모듈들(602, 622 및 642) 각각에 의해 도입된 유일한 중요한 추가적인 지연일 수 있다. 그러나, 다른 실시예들에서, 맵핑은 하나 이상의 로직 게이트들에 의해 달성될 수 있다. 이러한 다른 실시예들은, 예를 들어, 추가적인 지연이 허용되는 경우에 사용될 수 있다. 본 발명의 실시예에서, 맵핑은 예를 들어 베네스 치환 네트워크(Benes permutation network)와 같은 치환 네트워크에 의해 달성될 수 있다.
도 7은 메모리에 기입되거나 판독되는 데이터의 타입에 기초하여 메모리 고장 완화 모듈을 인에이블 및 디스에이블하도록 동작 가능한 시스템을 도시한다. 도 7을 참조하면, 멀티플렉서(702), 메모리 고장 완화 모듈(704), 및 메모리(706)가 도시된다.
멀티플렉서(702)는 데이터 타입/모드 신호(708)가 제1 상태에 있는 경우 데이터 버스(710)를 버스(712)로 라우팅할 수 있고, 신호(708)가 제2 상태에 있는 경우 데이터 버스(710)를 버스(714)로 라우팅할 수 있다. 신호(708)는 전자 디바이스가 동작하는 대응하는 모드 및/또는 버스(710) 상의 데이터의 타입을 나타낼 수 있다.
메모리 고장 완화 모듈(704)은 고장 완화 맵핑 모듈들(602, 622 또는 642) 중 하나 이상의 고장 완화 맵핑 모듈과 실질적으로 유사하거나 또는 동일할 수 있다. 메모리(706)는 도 2에 관하여 기술된 메모리(200)와 실질적으로 유사하거나 또는 동일할 수 있다.
예시적인 기입 동작시에, 메모리(706)에 기입될 데이터 블록은 데이터 버스(710) 상에 배치될 수 있고, 데이터 타입 신호(708)의 값은 데이트 블록의 데이터 타입을 나타내도록 설정될 수 있다. 데이터 블록이 제1 타입인 경우, 멀티플렉서(702)는 메모리 고장 완화 블록(704)으로 데이터를 출력할 수 있고, 여기에서 데이터는 데이터 버스(714)로 맵핑될 것이고, 데이터 버스(714)는 메모리(706)의 비트 라인들에 접속한다. 데이터 블록이 제2 타입인 경우, 멀티플렉서(702)는 데이터 버스(714)로 데이터를 출력할 수 있고, 데이터 버스(714)는 메모리(706)의 비트 라인들에 접속한다. 오류 완화 모듈(704)이 바이패스되는 경우, 그것은 전력을 절약하도록 디스에이블될 수 있다.
도 8은, 메모리의 특성화 및 메모리에 기입되거나 또는 메모리로부터 판독되는 데이터의 민감도에 기초하여 메모리를 할당하도록 동작 가능한 시스템을 도시한다. 도 8을 참조하면, 데이트 버스들(808 및 810)을 메모리들(802 및 804)에 접속하는 스위치(806)가 도시된다. 버스(808)는 제1 데이터 타입을 전달할 수 있고, 버스(810)는 제2 데이터 타입을 전달할 수 있다.
동작 시에, 메모리들(802 및 804)은 메모리들(802 및 804) 각각에 얼마나 많은 고장 메모리 셀들이 존재하는지 및/또는 고장 메모리 셀들이 메모리(802) 및 메모리(804) 내의 어디에 존재하는지를 판정하도록 스캔될 수 있다. 스캔 결과 및 데이터 타입들(1 및 2)의 오류 허용 정도(error tolerance)에 기초하여, 스위치(806)는 신호(812)를 통해 구성될 수 있다. 예를 들어, 데이터 타입 1이 데이터 타입 2보다 오류 민감도가 큰 경우, 메모리(802)는 메모리(804)보다 오류가 적고, 버스(808)는 메모리(802)에 결합될 수 있다. 다른 예시로서, 데이터 타입 2가 데이터 타입 1보다 오류 민감도가 큰 경우, 메모리(802)는 메모리(804)보다 오류가 적고, 버스(810)는 메모리(802)에 결합될 수 있다.
도 9 및 도 10은 수신기(150)의 예시적인 구현의 시뮬레이션 결과들을 도시한다. 도 9는 BER(Bit Error Rate)에 의해 측정되는 FEC(Forward Error Correction)를 갖는 수신기(150)의 예시적인 구현의 디코딩 성능에 대하여 FTDI(Frequency Time De-Interleaver) 메모리(152)에서의 NSAF=400 고착 고장들(stuck-at-faults; SAF)의 영향을 도시한다. 도 9에 도시된 시뮬레이션에서, 디인터리버 메모리(152)는 소프트 심볼 데이터를 저장한다. NSAF=400 고착 고장들은 다음과 같이 메모리 워드 내의 각각의 비트에 균등하게 분포되고 맵핑된다: NSAF 고장들은 먼저 심볼 데이터의 MSB에 도입되고 고장들로 인한 BER이 기록된다; 다음으로, NSAF 고장들은 나머지 심볼 데이터에 도입되고, 각각의 경우들에서 고정된 SNR=18.5dB 및 0 FEC 디코딩 이터레이션(iteration)을 갖는 AWGN(Additive White Gaussian Noise) 채널에 대하여 고장 비트로 인한 BER이 기록된다. 시뮬레이션은 디인터리버 메모리 워드 내의 각각의 셀에 대하여 반복된다.
고착 고장들(SAF)은 통상적으로 메모리 어레이 고장들 중 50%를 초과하는 메모리 어레이 고장들의 원인이 되므로, SAF는 고장 메모리 어레이에 대한 1차 근사로서 사용될 수 있다. 시뮬레이션에서, NSAF=400 고착 고장들의 기대값보다 큰 값은, 시뮬레이션시에 모델링되지 않은 고장들의 다른 타입들에 대하여 설명하고 높은 고장 조건들 하에서 시스템을 테스트하기 위해 선택된다. 시뮬레이션에서, 민감도 임계값을 1.6×10-4 BER 또는 7%를 초과하는 고장 없음 계수(fault-free reference)로 설정함으로써, 고 민감도(MSB) 영역은 1.6×10-4 임계값보다 큰 BER을 갖는 모든 고장 비트들을 포함한다. 마찬가지로, 시뮬레이션에서, 동일한 크기의 LSB 영역(즉, 저 민감도 영역)은 1.6×10-4 임계값보다 작은 BER을 갖는 모든 고장 비트들을 포함한다. 시뮬레이션시에, MSB 영역에서 메모리 고장이 발견되고 LSB 영역에서 고장들이 발견되지 않는 경우, MSB 및 LSB 영역들의 치환은 리페어(repair) 없이 메모리에 대하여 ㅿSNR 이득 향상을 야기한다.
수신기(150)는 순방향 오류 정정 기술(즉, 비터비(Viterbi) 및 리드-솔로몬(Reed-Solomon) 인코딩)을 조합하여 본 발명의 양태들을 사용하지만, 본 발명의 양태들은 추가의 오류 정정을 사용하지 않아도 시스템 성능을 향상시킬 수 있다.
도 10은 고착 고장들로 인한 예시적인 FTDI(Frequency Time De-Interleaver) 메모리(152)의 고장 민감도 계수를 도시한다. 도 10은 도 9의 BER 플롯에 기초하여 FTDI(Frequency Time De-Interleaver) 메모리의 섹션에 대한 고장 민감도 계수 ξ를 도시한다. 시뮬레이션시에, FTDI 메모리 열들은 메모리 행들에 저장된 데이터 심볼들을 저장한다. 고장 민감도 계수 ξ는 도 9에서 실선과 점선 사이의 차를 취합한 다음 그 차를 1로 정규화함으로써 결정된다. 계수 ξ는, 예를 들어, 메모리(152)의 제조 중에 계산될 수 있고 및/또는 디바이스(150)가 동작중인 동안(예를 들어, 비디오 처리) 실시간으로 계산될 수 있다. 즉, 특정한 메모리 셀의 고장 민감도 계수는 기능 중인 메모리 셀과 비교하여 고장난 메모리 셀로 인한 시스템 성능 메트릭(metric)(예를 들어, BER)의 차에 대응할 수 있다. 시뮬레이션 결과들은 MSB에 가장 근접한 데이터 비트들이 LSB에 가장 근접한 비트들과 비교하여 높은 고장 민감도 계수를 갖는 것을 나타낸다. MSB 및 LSB 영역들의 치환의 결과로서, 본 발명의 양태들을 사용하는 것은, MSB 영역이 고장들을 갖고 LSB 영역들이 고장이 없는 경우일 때는 언제나, MSB 영역 데이터에 대한 LSB 영역에 의해 나타내지는 고장 민감도를 달성한다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로들은, 멀티플렉서(예를 들어, 멀티플렉서(608)), 복수의 데이터 라인(예를 들어, 302[1:N] 및/또는 316[1:N])을 포함하는 데이터 버스(예를 들어, 버스(302) 및/또는 버스(316)), 및 복수의 비트 라인(예를 들어, 비트 라인 336[1:N])에 결합된 메모리 셀들(예를 들어, 메모리 셀(334))의 어레이(예를 들어, 어레이(400))를 포함할 수 있다. 복수의 데이터 라인 및 복수의 비트 라인은 메모리 셀들의 어레이에 기입(예를 들어, 라인 302[1:N])하고 및/또는 메모리 셀들의 어레이로부터 판독(예를 들어, 라인 316[1:N])하는데 사용될 수 있다. 멀티플렉서는 복수의 데이터 라인과 복수의 비트 라인 사이의 상이한 맵핑들 중에서 선택할 수 있다. 메모리 셀들의 어레이는 N개의 메모리 셀들로 구성될 수 있고, 복수의 비트 라인은 N개의 비트 라인들로 구성될 수 있고, 복수의 데이터 라인들은 N개의 데이터 라인들로 구성될 수 있고, 여기에서 N은 1보다 큰 정수이다. 멀티플렉서의 구성은, 만약 있다면, 복수의 메모리 셀들 중 어떤 것이 고장이라는 것에, 적어도 부분적으로, 기초하여 제어될 수 있다. 데이터 블록(예를 들면, 데이터 블록(404))이 어레이에 기입되게 되는 기입 동작의 경우에, 멀티플렉서의 구성은, 데이터 블록이 메모리 셀들의 어레이 중에서 고장난 메모리 셀에 얼마나 민감한지에, 적어도 부분적으로, 기초하여 제어될 수 있다. 하나 이상의 회로는 수신기(예를 들면, 수신기(150)) 내에 존재하고, 예를 들면, 수신된 데이터의 시간 및/또는 주파수 디인터리빙(deinterleaving)과 같은 수신된 데이터에 대한 동작들을 수행할 수 있다.
예시적인 실시예에서, 메모리 셀들의 어레이는 메모리 셀들의 복수의 어레이(예를 들면, 도 3c 참조) 중 하나일 수 있다. 복수의 데이터 라인과 복수의 비트 라인 사이의 제1 맵핑은 복수의 어레이 중의 제1 하나 이상의 어레이에 대해 이용될 수 있다. 복수의 데이터 라인과 복수의 비트 라인의 제2 맵핑은 복수의 어레이의 제2 부분에 대해 이용될 수 있다. 예를 들면, 제1 맵핑은, 각각, 데이터 라인들(302)[1:N]을 비트 라인들(336)[1:N]에 맵핑할 수 있고, 제2 맵핑은 데이터 라인들(332)[1:N]을 비트 라인들(336)[N:1]에 맵핑할 수 있다.
본 발명의 예시적인 실시예에서, 복수의 어레이는 다수의 유형의 데이터 블록들을 저장하기 위해 이용될 수 있다. 복수의 어레이 중 제1 하나 이상의 어레이는 임계수보다 적은 고장난 셀들을 가질 수 있다. 복수의 어레이 중 제2 하나 이상의 어레이는 임계수보다 많은 고장난 셀들을 가질 수 있다. 복수의 셀 중 제1 하나 이상의 셀은 제1 유형(예를 들면, 운영 체제 파라미터들)의 데이터 블록들을 저장하기 위해 이용될 수 있다. 복수의 셀들 중 제2 하나 이상의 셀은 제2 유형(예를 들면, 미디어 데이터)의 데이터 블록들을 저장하기 위해 이용될 수 있다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로는 메모리 셀들의 어레이(예를 들면, 둘 이상의 셀들(3341,1-334M,N))을 포함할 수 있다. 하나 이상의 회로는 메모리 셀들의 어레이 내의 고장난 메모리 셀의 위치를 발견하도록 동작가능할 수 있고, 그 위치는, 예를 들면, 어레이의 가장 좌측 셀로 인덱스된다. 하나 이상의 회로는, 데이터 블록(예를 들면, 데이터 블록(404))의 비트들이 고장난 메모리 셀의 어레이 내의 발견된 위치에, 적어도 부분적으로, 기초하여 어레이에 저장되는 순서를 배열하도록 동작가능할 수 있다. 메모리 셀들의 어레이는 N개의 메모리 셀들로 구성될 수 있고, 데이터 블록은 N개의 데이터 비트들로 구성될 수 있고, 여기에서 N은 1보다 큰 정수이다. 하나 이상의 회로는, 복수의 메모리 셀에 저장될 데이터 블록에 대해, 데이터 블록이 고장난 메모리 셀의 어레이 내의 위치에 대응하는 데이터 블록의 비트 위치에서의 에러에 얼마나 민감한지를 발견하도록 동작가능할 수 있다. 예를 들면, 어레이가 단일 행의 메모리 셀들이고, 고장난 셀이 어레이의 왼쪽으로부터 n번째 비트인 경우, 하나 이상의 회로는 데이터 블록이 데이터 블록의 왼쪽으로부터 n번째 비트에서의 에러에 얼마나 민감한지를 발견할 수 있다. 하나 이상의 회로는, 데이터 블록의 비트들이 발견된 민감도에, 적어도 부분적으로, 기초하여 어레이에 저장되는 순서를 배열하도록 동작가능할 수 있다. 하나 이상의 회로는 데이터 스트림을 처리(예를 들면, 디인터리브)하도록 동작가능할 수 있다. 하나 이상의 회로는 고장난 메모리 셀의 발견된 위치의 표시를 저장하는 고장 레지스터(예를 들면, 고장 레지스터(304))를 포함할 수 있다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로는 메모리 셀들의 어레이(예를 들면, 어레이(400)) 및 메모리 고장 완화 모듈(예를 들면, 모듈(3065))을 포함할 수 있고, 하나 이상의 회로는 어레이에 데이터 블록(예를 들면, 데이터 블록(404))을 기입하도록 동작가능할 수 있다. 기입 동작은, 데이터 블록의 제2 부분과의 데이터 블록의 제1 부분의 스왑(swap)을 포함할 수 있다. 스왑은 어레이의 하나 이상의 메모리 셀이 고장이라는 검출에 응답할 수 있다. 기입 동작은, 스왑에 후속하여, 메모리 셀들의 어레이에 데이터 블록을 저장하는 것을 포함할 수 있다. 데이터 블록(404)의 제1 부분은 데이터 블록의 상위(more-significant) 하나 이상의 비트일 수 있고, 데이터 블록의 제2 부분은 데이터 블록의 하위(less-significant) 하나 이상의 비트일 수 있다. 기입 동작은 데이터 스트림을 처리(예를 들면, 주파수 및/또는 시간 디인터리빙)하는 것의 일부로서 수행될 수 있다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로는 메모리 셀들의 어레이(예를 들면, 어레이(400)) 및 메모리 고장 완화 모듈(예를 들면, 모듈(3062))을 포함할 수 있고, 하나 이상의 회로는 메모리 셀들의 어레이로부터 데이터 블록을 판독하도록 동작가능할 수 있다. 판독 동작은 어레이에 저장된 비트들의 검색, 및 검색된 비트들의 제2 부분과의 검색된 비트들의 제1 부분의 스왑을 포함할 수 있다. 스왑은 어레이의 하나 이상의 메모리 셀이 고장이라는 검출에 응답할 수 있다. 검색된 비트들의 제1 부분은 데이터 블록의 상위 하나 이상의 비트일 수 있고, 검색된 비트들의 제2 부분은 데이터 블록의 하위 하나 이상의 비트일 수 있다. 판독 동작은 디인터리빙 처리의 일부로서 수행될 수 있다.
본 발명의 예시적인 실시예에서, 메모리 셀들의 어레이를 포함하는 하나 이상의 회로는, 메모리 셀들의 어레이 중 하나 이상의 셀에 할당된 민감도 계수에 기초하여 메모리 셀들의 어레이에 기입될 데이터의 비트들을 배열하고, 메모리 셀들의 어레이에 그 배열된 데이터의 비트들을 기입하도록 동작가능할 수 있다. 메모리 셀들의 어레이의 셀의 민감도 계수는 고장난 셀에 대해 측정된 성능 메트릭의 값에 기능하고 있는 셀에 대한 측정된 성능 메트릭의 값(예를 들면, BER)을 비교함으로써 결정될 수 있다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로는 고장 레지스터 및 메모리 셀들의 M행 x N열 블록을 포함할 수 있고, M 및 N의 각각은 1보다 큰 임의의 정수로 구성될 수 있다. 메모리 셀들의 블록은 R 민감도 존들로 구획될 수 있고, R은 1보다 큰 임의의 정수로 구성될 수 있다. 고장 레지스터의 각각의 ceiling(log2R) 셀은 메모리 셀들의 블록의 대응하는 i행들에서 에러들의 존재 및/또는 위치를 나타낼 수 있고, I는 1와 M을 포함하여 그 사이의 임의의 정수로 구성될 수 있다. 고장 레지스터의 크기는 구성가능하고 ceiling(log2R) x ceiling(M/i)와 같다.
본 발명의 다른 실시예들은 머신 코드 및/또는 머신 및/또는 컴퓨터에 의해 실행가능하고, 그에 의해 머신 및/또는 컴퓨터가 메모리 내고장성을 위해 본 명세서에서 설명된 단계들을 수행하게 하는 적어도 하나의 코드 섹션을 갖는 컴퓨터 프로그램을 저장한 비일시적인 머신 판독가능한(예를 들어, 컴퓨터 판독가능한) 매체 및/또는 저장 매체를 제공할 수 있다.
따라서, 본 발명은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 실현될 수 있다. 본 발명은 적어도 하나의 컴퓨터 시스템에서 집중형 방식으로, 또는 몇 개의 상호접속된 컴퓨터 시스템에 걸쳐 다수의 엘리먼트들이 분산된 분산 방식으로 실현될 수 있다. 본 명세서에서 설명된 방법들을 수행하도록 구성된 임의의 종류의 컴퓨터 시스템 또는 다른 장치가 적합하다. 하드웨어 및 소프트웨어의 통상적인 조합은 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템일 수 있고, 컴퓨터 프로그램은 로딩되어 실행될 때, 컴퓨터 시스템이 본 명세서에서 설명된 방법들을 수행하도록 컴퓨터 시스템을 제어한다.
본 발명은 또한 컴퓨터 프로그램 제품으로서 구현될 수 있고, 컴퓨터 프로그램 제품은 본 명세서에서 설명된 방법들의 구현을 가능하게 하는 모든 피쳐들을 포함하고, 컴퓨터 시스템에 로딩될 때 이러한 방법들을 수행할 수 있다. 본 맥락에서 컴퓨터 프로그램은 정보 처리 능력을 갖는 시스템이 특정한 기능을 직접 또는 a) 다른 언어, 코드 또는 표기법으로의 변환, b) 상이한 재료 형태로의 재생성 중 하나 또는 모두의 후에 수행하게 하도록 의도된 임의의 표현, 임의의 언어, 코드 또는 표기법을 의미한다.
본 발명은 특정 실시예들에 관련하여 설명되었지만, 통상의 기술자라면 다양한 변경이 이루어질 수 있고, 본 발명의 범주에서 벗어나지 않고 균등물들이 대체될 수 있다는 것을 이해할 것이다. 또한, 본 발명의 범주로부터 벗어나지 않고 본 발명의 교시들에 대한 특정 상황 또는 내용에 맞추기 위해 많은 수정이 이루어질 수 있다. 따라서, 본 발명은 개시된 특정한 실시예로 한정되도록 의도되지 않고, 본 발명은 첨부된 특허청구범위의 범주 내에 속하는 모든 실시예들을 포함할 것이 의도된다.

Claims (24)

  1. 멀티플렉서, 복수의 데이터 라인을 포함하는 데이터 버스, 및 특정 메모리 어드레스에 대응하고 복수의 비트 라인에 연결된 메모리 셀들의 어레이를 포함하는 하나 이상의 회로
    를 포함하고,
    상기 복수의 데이터 라인 및 상기 복수의 비트 라인은 상기 메모리 셀들의 어레이로의 기입 및/또는 상기 메모리 셀들의 어레이로부터의 판독을 위해 사용되며,
    상기 멀티플렉서는 상기 복수의 데이터 라인과 상기 복수의 비트 라인 사이의 상이한 맵핑들 중에서 선택하는 시스템.
  2. 제1항에 있어서,
    상기 메모리 셀들의 어레이는 N개의 메모리 셀로 구성되고,
    상기 복수의 비트 라인은 N개의 비트 라인으로 구성되고,
    상기 복수의 데이터 라인은 N개의 데이터 라인으로 구성되고,
    N은 1보다 큰 정수인 시스템.
  3. 제1항에 있어서,
    상기 멀티플렉서의 구성은, 만약 있다면 복수의 상기 메모리 셀 중 어느 것이 고장인지에 적어도 부분적으로 기초하여 제어되는 시스템.
  4. 제1항에 있어서,
    상기 메모리 셀들의 어레이에 데이터 블록이 기입되는 기입 동작에 대하여, 상기 멀티플렉서의 구성은, 상기 데이터 블록이 상기 메모리 셀들의 어레이 중에서 고장 메모리 셀에 얼마나 민감한지에 적어도 부분적으로 기초하여 제어되는 시스템.
  5. 제1항에 있어서,
    상기 메모리 셀들의 어레이는 메모리 셀들의 복수의 어레이 중 하나인 시스템.
  6. 제5항에 있어서,
    상기 복수의 데이터 라인과 상기 복수의 비트 라인 사이의 제1 맵핑은 상기 복수의 어레이 중 제1의 하나 이상의 어레이에 사용되며,
    상기 복수의 데이터 라인과 상기 복수의 비트 라인의 제2 맵핑은 상기 복수의 어레이의 제2 부분에 사용되는 시스템.
  7. 제6항에 있어서,
    상기 제1 맵핑은 데이터 라인 1 내지 N을 비트 라인 1 내지 N에 각각 맵핑하고,
    상기 제2 맵핑은 데이터 라인 1 내지 N을 비트 라인 1 내지 N에 각각 맵핑하는 시스템.
  8. 제5항에 있어서,
    상기 복수의 어레이는 다수의 타입의 데이터 블록들을 저장하는데 사용되고,
    상기 복수의 어레이 중 제1의 하나 이상의 어레이는 임계 개수보다 더 적은 개수의 고장 셀을 갖고,
    상기 복수의 어레이 중 제2의 하나 이상의 어레이는 상기 임계 개수보다 더 많은 개수의 고장 셀을 갖고,
    상기 복수의 어레이 중 상기 제1의 하나 이상의 어레이는 제1 타입의 데이터 블록들을 저장하는데 사용되고,
    상기 복수의 어레이 중 상기 제2의 하나 이상의 어레이는 제2 타입의 데이터 블록들을 저장하는데 사용되는 시스템.
  9. 제8항에 있어서,
    상기 하나 이상의 회로는 수신기에 존재하고, 수신된 데이터의 시간 및/또는 주파수 디인터리빙(deinterleaving)을 수행하는 시스템.
  10. 특정 메모리 어드레스에 대응하는 메모리 셀들의 어레이를 포함하는 하나 이상의 회로
    를 포함하고,
    상기 하나 이상의 회로는,
    상기 메모리 셀들의 어레이 내의 고장 메모리 셀의 위치를 발견하고,
    상기 고장 메모리 셀의 상기 발견된 위치에 적어도 부분적으로 기초하여 상기 메모리 셀들의 어레이에 데이터 블록의 비트들이 저장되는 순서를 배열하도록
    동작가능한 시스템.
  11. 제10항에 있어서,
    상기 메모리 셀들의 어레이는 N개의 메모리 셀로 구성되고,
    상기 데이터 블록은 N개의 데이터 비트로 구성되고,
    N은 1보다 큰 정수인 시스템.
  12. 제10항에 있어서,
    상기 하나 이상의 회로는,
    상기 메모리 셀들의 어레이에 저장될 상기 데이터 블록에 대하여, 상기 어레이 내의 상기 고장 메모리 셀의 상기 위치에 대응하는 상기 데이터 블록의 비트 위치에서의 에러에 대해 상기 데이터 블록이 얼마나 민감한지를 발견하고,
    상기 발견된 민감도에 적어도 부분적으로 기초하여 상기 메모리 셀들의 어레이에 상기 데이터 블록의 상기 비트들이 저장되는 순서를 배열하도록
    동작가능한 시스템.
  13. 제10항에 있어서,
    상기 하나 이상의 회로는 데이터스트림을 처리하도록 동작가능한 시스템.
  14. 제13항에 있어서,
    상기 데이터스트림의 상기 처리는 상기 데이터스트림을 디인터리빙하는 것을 포함하는 시스템.
  15. 제10항에 있어서,
    상기 하나 이상의 회로는 상기 고장 메모리 셀의 상기 발견된 위치의 표시를 저장하는 고장 레지스터를 포함하는 시스템.
  16. 특정 메모리 어드레스에 대응하는 메모리 셀들의 어레이, 및 메모리 고장 완화 모듈(memory fault mitigation module)을 포함하는 하나 이상의 회로
    를 포함하고,
    상기 하나 이상의 회로는 상기 메모리 셀들의 어레이에 데이터 블록을 기입하도록 동작가능하고,
    상기 기입 동작은,
    상기 어레이의 하나 이상의 메모리 셀이 고장인 것을 검출하는 것에 응답하여, 상기 데이터 블록의 제1 부분을 상기 데이터 블록의 제2 부분과 스왑(swap)하는 것; 및
    상기 스왑에 후속하여, 상기 데이터 블록을 상기 메모리 셀들의 어레이에 저장하는 것
    을 포함하는 시스템.
  17. 제16항에 있어서,
    상기 데이터 블록의 상기 제1 부분은 상기 데이터 블록의 상위의(more-significant) 하나 이상의 비트이고,
    상기 데이터 블록의 상기 제2 부분은 상기 데이터 블록의 하위의(less-significant) 하나 이상의 비트인 시스템.
  18. 제16항에 있어서,
    상기 기입 동작은 데이터스트림을 처리하는 것의 일부분으로서 수행되는 시스템.
  19. 제18항에 있어서,
    상기 데이터스트림의 상기 처리는 상기 데이터스트림을 디인터리빙하는 것을 포함하는 시스템.
  20. 특정 메모리 어드레스에 대응하는 메모리 셀들의 어레이, 및 메모리 고장 완화 모듈을 포함하는 하나 이상의 회로
    를 포함하고,
    상기 하나 이상의 회로는 상기 메모리 셀들의 어레이로부터 데이터 블록을 판독하도록 동작가능하고,
    상기 판독 동작은,
    상기 메모리 셀들의 어레이에 저장된 비트들을 검색하는 것; 및
    상기 어레이의 하나 이상의 메모리 셀이 고장인 것을 검출하는 것에 응답하여, 상기 검색된 비트들의 제1 부분과 상기 검색된 비트들의 제2 부분을 스왑하는 것
    을 포함하는 시스템.
  21. 제19항에 있어서,
    상기 검색된 비트들의 상기 제1 부분은 상기 데이터 블록의 상위의 하나 이상의 비트이고,
    상기 검색된 비트들의 상기 제2 부분은 상기 데이터 블록의 하위의 하나 이상의 비트인 시스템.
  22. 메모리 셀들의 어레이를 포함하는 하나 이상의 회로
    를 포함하고,
    상기 하나 이상의 회로는,
    상기 메모리 셀들의 어레이의 하나 이상의 셀에 할당된 민감도 계수(sensitivity coefficient)에 기초하여 상기 메모리 셀들의 어레이에 기입될 데이터의 비트들을 배열하고,
    상기 메모리 셀들의 어레이에 상기 배열된 데이터의 비트들을 기입하도록
    동작가능한 시스템.
  23. 제20항에 있어서,
    상기 메모리 셀들의 어레이의 셀의 민감도 계수는, 상기 셀이 기능하고 있는 경우에 계측된 성능 메트릭의 값과, 상기 셀이 고장인 경우에 계측된 상기 성능 메트릭의 값을 비교함으로써 결정되는 시스템.
  24. 고장 레지스터, 및 M행 x N열의 메모리 셀들의 블록을 포함하는 하나 이상의 회로
    를 포함하고,
    상기 메모리 셀들의 블록은 R개의 민감도 존들(sensitivity zones)로 구획되고,
    상기 고장 레지스터의 각각의 ceiling(log2R) 셀들은 상기 메모리 셀들의 블록의 대응하는 i 행들에서의 에러들의 존재 및/또는 위치를 나타내고,
    상기 고장 레지스터의 크기는 구성가능하고, ceiling(log2R)×ceiling(M/i)와 동일하고,
    M은 1보다 큰 임의의 정수이도록 구성가능하고,
    N은 1보다 큰 임의의 정수이도록 구성가능하고,
    R은 1보다 큰 임의의 정수이도록 구성가능하고,
    i는 1 이상 M 이하의 임의의 정수이도록 구성가능한 시스템.
KR1020137033488A 2011-05-17 2012-02-06 메모리 내고장성을 위한 방법 및 장치 KR20140089309A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161487250P 2011-05-17 2011-05-17
US61/487,250 2011-05-17
US201113269416A 2011-10-07 2011-10-07
US13/269,416 2011-10-07
US13/285,864 2011-10-31
US13/285,864 US9165677B2 (en) 2011-05-17 2011-10-31 Method and apparatus for memory fault tolerance
PCT/US2012/023975 WO2012158222A1 (en) 2011-05-17 2012-02-06 Method and apparatus for memory fault tolerance

Publications (1)

Publication Number Publication Date
KR20140089309A true KR20140089309A (ko) 2014-07-14

Family

ID=47174826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033488A KR20140089309A (ko) 2011-05-17 2012-02-06 메모리 내고장성을 위한 방법 및 장치

Country Status (8)

Country Link
US (3) US9165677B2 (ko)
EP (1) EP2710597A4 (ko)
JP (1) JP2014517977A (ko)
KR (1) KR20140089309A (ko)
CN (1) CN103620686A (ko)
SG (1) SG195023A1 (ko)
TW (1) TW201312583A (ko)
WO (1) WO2012158222A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190118030A (ko) * 2018-04-09 2019-10-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5932236B2 (ja) * 2011-04-13 2016-06-08 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置及びシステム
US8996348B1 (en) * 2012-11-21 2015-03-31 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of digitally-calibrated-circuit designs
US9348694B1 (en) * 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) * 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9576644B2 (en) * 2015-04-27 2017-02-21 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit chip having two types of memory cells
DE102015208409A1 (de) * 2015-05-06 2016-11-10 Dr. Johannes Heidenhain Gmbh Vorrichtung und Verfahren zur Verarbeitung von seriellen Datenrahmen
JP6497258B2 (ja) * 2015-07-30 2019-04-10 株式会社ソシオネクスト 半導体記憶装置および半導体記憶装置のアクセス制御方法
EP3376725B1 (en) * 2015-11-30 2020-06-10 Huawei Technologies Co., Ltd. Data scrambling method and scrambling apparatus
FR3088767B1 (fr) * 2018-11-16 2022-03-04 Commissariat Energie Atomique Circuit memoire adapte a mettre en oeuvre des operations de calcul
US20230037044A1 (en) * 2021-07-30 2023-02-02 Taiwan Semiconductor Manufacturing Company, Ltd. Multi-level cell data encoding

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506364A (en) 1982-09-30 1985-03-19 International Business Machines Corporation Memory address permutation apparatus
JPS6337899A (ja) * 1986-07-30 1988-02-18 Mitsubishi Electric Corp 半導体記憶装置
US5233614A (en) 1991-01-07 1993-08-03 International Business Machines Corporation Fault mapping apparatus for memory
SG43256A1 (en) * 1995-03-29 1997-10-17 Toshiba Kk Apparatus and method for reading and writing data
US5892775A (en) 1995-12-27 1999-04-06 Lucent Technologies Inc. Method and apparatus for providing error-tolerant storage of information
JPH10209998A (ja) * 1997-01-20 1998-08-07 Sony Corp 復調装置
JPH117761A (ja) * 1997-06-13 1999-01-12 Toshiba Corp 画像用メモリ
US5909404A (en) * 1998-03-27 1999-06-01 Lsi Logic Corporation Refresh sampling built-in self test and repair circuit
US6748480B2 (en) 1999-12-27 2004-06-08 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
US6667917B1 (en) * 2001-06-15 2003-12-23 Artisan Components, Inc. System and method for identification of faulty or weak memory cells under simulated extreme operating conditions
CA2447204C (en) 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
US7320100B2 (en) 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
JP4270994B2 (ja) * 2003-09-29 2009-06-03 株式会社東芝 不揮発性半導体記憶装置
US7023719B1 (en) * 2003-10-23 2006-04-04 Lsi Logic Corporation Memory module having mirrored placement of DRAM integrated circuits upon a four-layer printed circuit board
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100823170B1 (ko) * 2007-01-31 2008-04-21 삼성전자주식회사 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
US7778070B2 (en) * 2007-06-29 2010-08-17 Qimonda Ag Memory with dynamic redundancy configuration
US8379466B2 (en) * 2009-03-31 2013-02-19 Freescale Semiconductor, Inc. Integrated circuit having an embedded memory and method for testing the memory
EP2256634A1 (en) 2009-05-27 2010-12-01 Robert Bosch Gmbh A data processing device and a method for error detection and error correction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190118030A (ko) * 2018-04-09 2019-10-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110362270A (zh) * 2018-04-09 2019-10-22 爱思开海力士有限公司 存储器系统及其操作方法
CN110362270B (zh) * 2018-04-09 2024-03-08 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
CN103620686A (zh) 2014-03-05
US20130141996A1 (en) 2013-06-06
US9165677B2 (en) 2015-10-20
SG195023A1 (en) 2013-12-30
US8705298B2 (en) 2014-04-22
EP2710597A1 (en) 2014-03-26
US20120294094A1 (en) 2012-11-22
JP2014517977A (ja) 2014-07-24
US8897086B2 (en) 2014-11-25
WO2012158222A1 (en) 2012-11-22
US20130141995A1 (en) 2013-06-06
EP2710597A4 (en) 2015-04-22
TW201312583A (zh) 2013-03-16

Similar Documents

Publication Publication Date Title
US8705298B2 (en) Method and apparatus for memory fault tolerance
US10176850B2 (en) Method and apparatus for memory power and/or area reduction
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US10198314B2 (en) Memory device with in-system repair capability
US11921576B2 (en) Memory device and repair method with column-based error code tracking
US20130339820A1 (en) Three dimensional (3d) memory device sparing
US8615690B2 (en) Controller of memory device and method for operating the same
US9401226B1 (en) MRAM initialization devices and methods
US20150317225A1 (en) Repair control logic for safe memories having redundant elements

Legal Events

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