KR20140096995A - 메모리 전력 및/또는 면적 감소를 위한 방법 및 장치 - Google Patents

메모리 전력 및/또는 면적 감소를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20140096995A
KR20140096995A KR1020137033586A KR20137033586A KR20140096995A KR 20140096995 A KR20140096995 A KR 20140096995A KR 1020137033586 A KR1020137033586 A KR 1020137033586A KR 20137033586 A KR20137033586 A KR 20137033586A KR 20140096995 A KR20140096995 A KR 20140096995A
Authority
KR
South Korea
Prior art keywords
memory cells
array
memory
supply voltage
faulty
Prior art date
Application number
KR1020137033586A
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 KR20140096995A publication Critical patent/KR20140096995A/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • G11C5/144Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
    • 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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Static Random-Access Memory (AREA)

Abstract

메모리 전력 및/또는 면적 감소를 위한 방법 및 장치. 메모리 셀들의 어레이(array)는, 만약 있다면, 어레이 내의 고장(faulty) 메모리 셀들을 검출하기 위해 스캔될(scanned) 수 있다. 메모리 셀들의 어레이에 적용된 공급 전압 Vmem은 하나 이상의 메모리 셀들의 어레이의 스캔의 결과 및 민감도 계수(sensitivity coefficient)에 따라 제어될 수 있다. 민감도 계수는 하나 이상의 고장 메모리 셀들의 어레이가 메모리 어레이에 데이터를 기입 및 그로부터 판독하는 디바이스(device)의 성능에 주는 영향을 나타낸다. 추가적으로 또는 대안적으로, 메모리 셀들의 물리적인 치수들은 민감도 계수(들) 및/또는 메모리 셀들의 어레이에서 허용될 수 있는 고장 메모리 셀들의 개수에 기반하여 결정될 수 있다.

Description

메모리 전력 및/또는 면적 감소를 위한 방법 및 장치{METHOD AND APPARATUS FOR MEMORY POWER AND/OR AREA REDUCTION}
우선권 주장
본 출원은 2011년 5월 17일 출원된 미국 가출원 일련번호 61/487,250 및 2011년 10월 31일 출원된 미국 일련번호 13/285,945를 참조하고 이들에 대한 우선권 및 이들로부터의 이득을 주장한다.
위 출원들은 그 전체가 본원에 참조로서 포함된다.
참조로 포함
본원은 또한, 2011년 10월 7일에 출원된 미국 특허 출원 일련번호 13/269,416; 및
본원과 동일한 날짜에 출원된 미국 특허 출원 일련번호 13/285,864(대리인 사건 번호 24349US03)를 참조한다.
각각의 상기 참조된 출원들은 이하 그 내용 전체가 참조로써 본문에 포함된다.
발명의 분야
본 발명의 특정 실시예들은 메모리 회로들에 관한 것이다. 더 구체적으로는, 본 발명의 특정 실시예들은 메모리 전력 및/또는 면적 감소를 위한 방법 및 장치에 관한 것이다.
종래의 메모리 회로들은 큰 면적을 차지하고 상당한 전력량을 소비한다. 종래의 전통적인 접근법들의 다른 한계들 및 불이익들은, 도면들을 참조하여 이하 본 출원에 제시된 바와 같이 본 발명의 일부 양태들과 이러한 시스템들을 비교함으로써 당업자에게 자명할 것이다.
청구 범위에서 더 완전히 제시되는 바와 같이, 도면들 중 적어도 하나에 의해 도시되고/도시되거나 이들 중 적어도 하나에 연계되어 기술되는 바와 같이, 메모리 전력 및/또는 면적 감소를 위한 장치 및/또는 방법이 실질적으로 제시된다.
본 발명의 여러 장점들, 양태들 및 신규한 특징들뿐만 아니라, 이들의 도시된 일 실시예의 세부사항들은 다음의 설명 및 도면들로부터 더 완전히 이해될 것이다.
도 1a는 고장 메모리 셀들의 영향을 완화시키도록 동작하는 예시적인 디바이스를 도시한다.
도 1b는 본 발명의 사용을 통해, 고장 메모리 셀들의 정정가능한 수보다 더 많은 수의 메모리 셀들을 갖는 메모리 셀들의 어레이를 이용할 때에도 만족스런 성능을 달성할 수 있는 예시적인 수신기의 부분을 도시한다.
도 2는 예시적인 내고장성 메모리의 제1 도면을 도시한다.
도 3a는 예시적인 내고장성 메모리의 제2 도면을 도시한다.
도 3b는 예시적인 메모리 인스턴스를 도시한다.
도 3c는 고장 레지스터와 고장 레지스터를 통해 관리되는 메모리 셀들 사이의 예시적인 맵핑을 도시한다.
도 3d는 고장 완화 컨트롤러의 예시적 부분을 도시한다.
도 4a 내지 도 4e는 메모리의 일 어레이가 그 어레이에서 하나 이상의 고장 셀들의 영향을 완화시키기 위해 2개의 영역들로 구획되는 예시적인 시스템을 도시한다.
도 4f는 메모리 셀 각각의 크기가 고장인 해당 셀에 대한 시스템의 민감도에 관련되는 예시적인 메모리 어레이를 도시한다.
도 4g는 메모리 셀 각각의 공급 전압이 고장인 해당 셀에 대한 시스템의 민감도에 관련되는 예시적인 메모리 어레이를 도시한다.
도 5a는 예시적인 고장 완화 맵핑 모듈을 도시한다.
도 5b는 구성가능한 고장 완화 맵핑 모듈을 포함하는 시스템을 도시한다.
도 6 및 도 7은 본 발명의 양태들을 이용하는 수신기의 예시적인 구현의 시뮬레이션 결과들을 도시한다.
도 8은 메모리 고장 완화 모듈의 데이터스트림-의존 제어를 도시하는 블록도이다.
도 9는 내고장성 메모리의 공급 전압을 결정하기 위한 예시적인 스텝들을 도시하는 플로우차트이다.
도 10은 내고장성 메모리의 메모리 셀들의 크기를 조절하기 위한 예시적인 스텝들을 도시하는 플로우차트이다.
도 11은 내고장성 메모리의 공급 전압을 결정하기 위한 예시적인 스텝들을 도시하는 플로우차트이다.
이하 사용되는, "회로들" 및 "회로"라는 용어는 물리적 전자 부품(즉, 하드웨어), 및 하드웨어를 구성하고, 하드웨어에 의해 실행되며/되거나 그렇지않으면 하드웨어와 관련될 수 있는 임의의 소프트웨어 및/또는 펌웨어("코드")를 지칭한다. 이하 사용되는, "및/또는"은 "및/또는"에 의해 결합된 리스트에서의 아이템들 중 하나 이상을 의미한다. 예를 들면, "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), 전력 공급 모듈(114), 및 전력 레일(116)을 포함하는 예시적 전자 디바이스(100)의 회로가 도시되어 있다. 디바이스(100)의 몇몇 예들은 케이블 또는 위성 셋톱박스나 게이트웨이, 텔레비전, 광학 디스크 플레이어, 디지털 비디오 레코더, 및 휴대폰을 포함한다.
AFE(102)는 임의의 적절한 통신 프로토콜(들)을 이용하여 정보를 송신 및/또는 수신하도록 동작할 수 있다. 본 발명의 예시적인 실시예에서, AFE(102)는 직교 주파수 다중 분할된(orthogonal frequency division multiplexed; OFDM) 신호들의 송신 및/또는 수신을 가능하게 하는 아날로그 도메인 프로세싱 동작들을 수행하도록 동작할 수 있다.
CPU(104)는 디바이스(100)의 동작들을 제어하는 명령어들(예를 들어, 운영 체계)을 실행하도록 동작할 수 있다. 예를 들면, CPU(104)는 디바이스(100)를 설정하고, AFE(102), 메모리(106) 및 DSP(108)의 동작을 제어하기 위한 제어 신호들을 생성할 수 있다.
전력 공급장치(114)는 하나 이상의 공급 전압을 생성하고, 그것을 하나 이상의 라인("전력 레일들")을 통해 디바이스(100)의 다른 컴포넌트에 출력하기 위해 동작할 수 있다. 전력 공급장치(114)는 전력 레일(116)로 출력될 수 있는 전압 Vmem을 생성할 수 있다. 전압 스칼라(116)가 (예를 들면 CPU(104)로부터의 제어 신호를 통해) 제어될 수 있어서, 복수의 전압 중에서 Vmem이 구성될 수 있다. 전압 공급장치(114)는 또한 다른 공급 전압들을 생성할 수 있다(개시된 예시적인 실시예에서, 전력 공급장치(114)는 AFE(102)의 아날로그 회로에 대한 VA 및 디지털 회로에 대한 Vdd를 생성한다). Vmem의 값은 전력 공급장치(114)에 의해 생성되는 다른 전압에 관계없이 제어될 수 있다. 본 발명의 다른 실시예에서, 전력 공급장치(114)는 다수의 메모리 공급 전압(예를 들면, Vmem1 및 Vmem2)을 생성할 수 있다. 각각의 메모리 공급 전압의 값은 별개로 구성될 수 있고/있거나 다수의 메모리 공급 전압의 값들이 일치하여 구성될 수 있다.
메모리(106)는 하나 이상의 행들 및 하나 이상의 열들로 구성될 수 있는 복수의 메모리 셀을 포함할 수 있다. 메모리는 SRAM, DRAM, ROM, EEPROM, MRAM, FeRAM 및 플래시와 같은 임의의 적절한 유형의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(106)의 메모리 셀들은 레일(116)을 통해 수신된 전압 Vmem에 의해 전력공급될 수 있다. 본 발명의 예시적인 실시예에서, 메모리 셀들 이외의 메모리(108)의 회로는 그 자체가 다른 전력 레일(도시생략)을 통해 전력공급될 수 있다. 메모리(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는 예시적인 수신기의 일부를 도시하며, 이 수신기는 본 발명을 이용하여, 정정가능한 수의 고장 메모리 셀들 보다 더 많은 수의 셀을 갖는 메모리 셀들의 어레이를 이용하는 경우라도 만족할만한 성능을 얻을 수 있다.
여기서 이용되는 바와 같은, 메모리 셀들의 "어레이"는 특정 어드레스(예를 들면, 도 2의 어드레스 버스(208)상의 특정 값)에 대응하는 메모리 셀들의 그룹을 지칭할 수 있다. 따라서, 예를 들어, 도 2의 메모리(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)는 예컨대, 메모리 셀들의 중복되는 열들 및/또는 중복되는 행들의 수를 감소시키거나, 완전히 제거하여 더 작게 제조될 수 있다.
본 발명의 예시적인 실시예에서, 메모리(152)에 공급되는 Vmem의 값은, 메모리(152)의 전력 소비와 메모리(152) 내 고장 메모리 셀들의 개수 사이에서 바람직한 균형을 달성하기 위해 구성될 수 있다. 이에 관하여, Vmem이 감소되면, 메모리(152)의 전력 소비가 감소하는 반면 고장메모리 셀들의 개수가 증가할 수 있다. 따라서, 메모리(106)의 교정 중에, Vmem은 최고 값에서부터, 주어진 응용에 대해 메모리(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 사이(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)의 비트 라인들에 접속될 수 있다. 이것이 도 3b에 도해되어 있는데, 이에 대해서는 후술한다.
고장 완화 맵퍼(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는 예시적인 메모리 인스턴스를 도시한다. 도 3a에 도시된 메모리 인스턴스들(3141 내지 3144) 중 어느 하나에 대응할 수 있는 예시적인 메모리 인스턴스(314Y)가 도 3b에서 도시된다. 메모리 인스턴스(314Y)는 로우 디코더(330), 워드/로우 라인들(332)[1:M], 비트 라인들(336)[1:N], 메모리 셀들(3341,1 내지 334M,N), 열(column) 입력/출력 모듈(338) 및 프리차지 트래지스터들(347)[1:N]을 포함한다. 셀들(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) 인버터들 및 하나 이상의 접속 트랜지스터들을 포함할 수 있다. 비록 6 트랜지스터(6T) SRAM 메모리 셀이 도시되지만, 본 발명은 다른 공지된 메모리 셀 설계에 동일하게 적용된다.
열 입력/출력 모듈(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]에 연결될 수 있다.
프리차지 트랜지스터들(precharge transistors)(347)[1:N]은 기입 동작(write operation) 동안 Vmem을 비트 라인들(bit lines)(336)[1:N]에 적용할 수 있다. 본 발명의 또 다른 실시예에서는, 메모리 인스턴스(memory instance)(314Y)는 또한, 인에이블될 때에, Vmem을 비트 라인들(336)[1:N]에 판독 동작(read operation) 직전까지 적용할 수 있는 복수의 프리차지 트랜지스터들로 구성될 수 있다.
또한 도 3b는 메모리 셀들(memory cells)(3341,1-334M,N) 중 예시적인 하나의 확대된 그림을 도시한다. 확대된 그림은 디퍼렌셜(differential) 비트 라인들(336[N]+ 및 366[N]-)의 한 부분, 워드 라인(word line)(332[2])의 한 부분, 한 쌍의 교차 결합형(cross-coupled) 인버터들(inverters)(339 및 340), 및 셀 액세스 트랜지스터들(cell access transistors)(345 및 346)을 도시한다. 여섯 트랜지스터(6T) SRAM 메모리 셀이 도시되었지만, 본 발명은 다른 잘 알려진 메모리 셀 디자인들에도 같이 잘 적용된다.
동작에 있어서, Vmem의 값은 고장(faulty) 메모리 셀들의 개수를 결정할 수 있다. 이러한 Vmem에 대한 의존은, 예를 들어, 메모리 셀들(3341,1-334M,N) 중 트랜지스터 임계 전압들(threshold voltages)의 변화들(variations) 및 하나의 셀 내의 노드들(nodes)을 주어진 임계 전압으로 충전하는데 요구되는 시간의 양의 변화들에 의한 것일 수 있다. 따라서, 메모리(200)의 교정(calibration)(예를 들어, 스타트업(start-up) 중 자체 테스트(self-test))동안, Vmem의 값은 주어진 응용에 대하여, 성능(예를 들어, 고장 셀들의 개수 및/또는 메모리로부터 데이터가 기입 및/또는 판독될 수 있는 속도에 대하여 측정된) 및 전력 소모 사이의 바람직한 균형을 달성하도록 조절될 수 있다.
비슷하게, 메모리 셀들(3341,1-334M,N)의 여러 파라미터들(parameters)은 주어진 프로세스, 전압, 및 온도 조건들에서 얼마나 많은 메모리 셀들(3341,1-334M,N)이 고장인지(faulty)에 영향을 줄 수 있다. 이러한 파라미터들은 메모리 셀들(3341,1-334M,N)의 다수의 물리적인 치수들(dimensions)을 포함할 수 있다. 예를 들어, 파라미터들은 하나 또는 복수의 트랜지스터들(예를 들어, 프리 차지 트랜지스터들(347[1:N]), 셀 액세스 트랜지스터들(345 및 346), 및/또는 트랜지스터들(341-344))의 하나 또는 복수의 치수들(예를 들어, 게이트(gate) 폭 및/또는 길이), 트레이스들(traces)(즉, "배선들(wires)")의 폭, 트레이스들 사이의 간격(spacing), 콘택들(contacts)의 크기, 콘택들의 간격, 디퓨전 웰(diffusion well)의 크기, 및/또는 디퓨전 웰들 사이의 간격을 포함할 수 있다. 따라서, 특정 응용에 대한 메모리를 디자인할 때, 하나 또는 복수의 이러한 파라미터들은 성능(예를 들어, 고장 셀들의 개수 및/또는 데이터가 메모리로부터 기입 및/또는 판독되는 속도에 대해서 측정된) 및 메모리 면적(area) 사이의 바람직한 균형을 달성하기 위해 조절될 수 있다.
도 3c는 고장 레지스터(fault register)와 그 고장 레지스터를 통해 관리되는 메모리 셀들 사이의 예시적인 맵핑을 도시한다. 도 3c를 참조하면, 메모리(351)의 M행×N열 블록이 도시되고, 여기서 M 및 N은 정수이고, 그들 중 하나 또는 양쪽 모두는 1보다 크다. 예를 들어, 메모리(351)의 블록은 메모리(200)의 메모리 셀들(3341,1-334M,N)에 대응할 수 있다. 본 발명의 예시적인 실시예에서, 메모리(351)의 각각의 행은 특정 메모리 어드레스에 대응할 수 있다 (그리고, 따라서 각각의 행은, 여기에서 사용된 용어와 같이, "어레이"일 수 있다). 다른 실시예에서, 각각의 행은 복수의 메모리 어드레스들에 대응하는 복수의 어레이들을 포함할 수 있다. 또 다른 실시예에서, 메모리 블록(351)의 어레이들은 다수의 행들을 포괄할 수 있고, 따라서, 하나의 메모리 어드레스가 다수의 행들에 대응할 수 있다.
또한, 고장 레지스터(304)의 메모리 셀들(3501 내지 350K)이 도시되고, 여기서 K=ceiling(M/i)이고, "ceiling()"는 가장 가까운 정수로의 올림을 가리키고, i는 1과 M을 포함하는 그 사이의 정수이다. 메모리 블록(351)의 각각의 제1 부분(352)은 메모리 블록(351)의 i행의 메모리 셀들에 대응할 수 있고, 고장 레지스터 메모리 셀들(3501 내지 350K) 중 하나와 연관될 수 있다. 따라서, i의 더 큰 값들이 더 작은 고장 레지스터들에 대응할 수 있는 반면에, i의 더 작은 값들은 메모리 블록(351)의 고장 셀들의 더 양호한 완화를 제공할 수 있다. 따라서, 본 발명의 양태들은 Vmem의 값에 기초하여 i를 조절하는 것이 가능할 것이다. 예를 들어, i의 더 작은 값은 Vmem의 더 작은 값과 함께 활용될 수 있고 그 반대도 가능하다. i와 Vmem의 상이한 조합이 메모리(351)의 블록의 상이한 응용에 최적일 수 있다. 예를 들면, i와 Vmem 값의 제1 조합은, 메모리(351)의 블록에 제1 데이터 타입을 저장할 경우에 최적일 수 있고, i와 Vmem 값의 제2 조합은, 메모리(351)의 블록에 제2 데이터 타입을 저장할 경우에 최적일 수 있다. 예를 들어 상이한 데이터 타입들은 상이한 포맷들 및/또는 기준들에 대응할 수 있다.
유사하게, 본 발명의 양태들은 메모리 블록(351)의 트랜지스터들을 크기 조절하는 것에 기초하여 i를 조절하는 것이 가능할 것이다. 예를 들어, 더 작은 트랜지스터 크기들은(따라서 메모리 셀들의 크기도 더 작아짐) 더 작은 i의 값과 함께 활용될 수 있다. 이 방식으로, 고장 레지스터의 크기와 메모리(351)의 블록의 크기는 최적의 설계 균형(trade-off)을 달성하도록 조정될 수 있다. 본 발명의 예시적인 실시예에서, 모든 파라미터들(Vmem, i, 및 개개의 트랜지스터들의 크기)은 주어진 응용에서 최적의 전력, 면적, 및 퍼포먼스 균형을 달성하도록 조정될 수 있다. i의 이러한 조정/최적화는 메모리(351)의 블록을 제작하는 중에 및/또는 예를 들면, 메모리(351)의 블록의 스타트업에서 구동될 수 있는 교정 루틴 중에 일어날 수 있다.
하나의 고장 레지스터 셀(350K)이 메모리(351)의 블록의 각각의 i 행들에 대응하는 도 3c의 예시적인 실시예는 어레이들이 2개의 민감도 영역들(민감도 영역들은 아래에서 더 상세하게 설명됨)로 정해지는 실시예에 대응할 수 있다. 그러나, 본 발명은 이에 제한되지 않으며, 둘 이상의 고장 레지스터 비트가 메모리(351)의 블록의 각각의 i 행들에 대응할 수 있다. 본 발명의 예시적인 실시예에서, 각각의 i 행들에 대응하는 고장 레지스터 셀들의 수는 ceiling(log2R)일 수 있고, 여기서 R은 민감도 영역들의 수를 나타내는 1보다 큰 정수이다. 예를 들어, R=4(예를 들어, 높은, 중간.높음, 중간.낮음, 및 낮음)인 민감도 영역들에 대해, 메모리의 각각의 i 행들에 대한 2개의 고장 레지스터 셀들이 있을 수 있다. 본 발명의 실시예들에서, R의 값은 메모리의 특정 응용에 최적화될 수 있다. R의 값은 i, Vmem, 및/또는 개개의 트랜지스터들의 크기에 대한 조정에 따라 조정될 수 있다.
도 3d는 예시적인 고장 완화 컨트롤러의 일부분을 도시한다. 도 3d를 참조하면, 고장 완화 컨트롤러(322)의 도시된 부분은 고장 축적기(356), 및 논리 모듈들(358, 360, 362, 및 364)을 포함한다.
동작에 있어서, 메모리(200)의 스타트업 시에, 메모리(200)의 스캔은 초기화될 수 있다. 스캔은 메모리에 테스트 데이터를 기입하는 단계; 메모리로부터 테스트 데이터를 판독하는 단계, 및 그후 기입된 데이터와 판독된 데이터를 비교하여 고장 메모리 셀을 검출하는 단계를 포함할 수 있다. 고장 축적기(356)의 각각의 셀 또는 셀들의 그룹은 스캔 중인 메모리의 블록에서 메모리의 특정 열에 대응할 수 있다. 따라서, 테스트 중인 i행들(rows)에 대해, 고장 셀이 특정 열에서 검출될 때마다, 그 열에 대응하는 고장 축적기(356)의 하나 이상의 비트들이 증분된다.
예시적으로, 메모리(351)의 일 블록의 첫번째 i행들에 대응하는 셀들의 부분(3521)(도 3c)을 고려한다. 테스트 데이터는 부분(3521)의 셀들에 기입되고 나서 이로부터 판독되어, 부분(3521)에서 임의의 고장 셀들을 검출한다. 각각의 1열에서 N열에 대해, 그 열에 대응하는 고장 축적기(356)의 하나 이상의 비트들은, 고장 메모리 셀이 부분(3521)의 그 열에서 검출될 때마다, 증분될 수 있다. 부분(3521)에서 모든 셀들이 테스트 되었다면, 하나 이상의 로직 및/또는 산술 동작들이 고장 축적기(356)의 콘텐츠에 적용되어 고장 레지스터의 셀(3501)이 어써트(assert)되는지 디어써트(deassert)되는지를 판정한다. 어써트 중인 셀(3501)은 부분(3521)에서 어레이(array)에 기입하고 이로부터 판독할 경우, 하나 이상의 고장 완화 맵퍼(예를 들면, 도 3a의 고장-완화 멥퍼들(3061-3065))가 제1 데이터-라인 대 비트-라인 맵핑(mapping)을 활용함을 가리킬 수 있다. 이와 반대로, 디어써트 중인 셀(3501)은 부분(3521)에서 어레이에 기입하고 이로부터 판독할 경우, 하나 이상의 고장 완화 맵퍼(예를 들면, 도 3a의 고장-완화 멥퍼들(3061-3065))가 제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 맵핑이 사용된다.
도 4a-4e는 두 개의 민감도 영역들(sensitivity zones)을 도시하나, 실제로는 이용되는(utilized) 민감도 영역들의 개수는 1보다 큰 임의의 정수도 될 수 있다.
도 4f는 각 메모리 셀들의 크기가 고장인 셀에 대한(예를 들어, 비트 에러율(bit error rate)로 측정된) 민감도에 연관된 예시적인 메모리 어레이(array)를 도시한다. 도 4f는 데이터 블록(404)(즉, 위쪽 4비트는 고민감도(higher-sensitivity)이고 아래쪽 4비트는 저민감도(lower-sensitivity)인 8비트 데이터 블록들)과 같은 데이터 블록들을 저장하기 위해 크기 조절한(sized) 메모리 인스턴스(314Y)의 예시적인 실시를 보여준다. 그것은, 각 열(row) m에 대해서, 메모리 셀들(334m,1-334m,4)(고민감도 영역 내의 셀들)은 메모리 셀들(334m,5-334m,8)(저민감도 영역 내의 셀들)보다 크다. 이러한 크기 조절(sizing)로 고민감도 영역에서의 고장 셀들이 저민감도 영역에서보다 더 적게 나타날 수 있다. 도 4f는 두 개의 민감도 영역들에 대한 두 개의 셀 크기들을 도시하고 있으나, 민감도에 기반한 크기 조절은 임의의 개수의 민감도 영역들에도 적용될 수 있다. 비슷하게, 도 4f에서 민감도 영역들의 개수와 셀 크기들의 개수 사이는 일대일 대응(one-to-one correspondence)을 가지지만, 민감도 영역들의 개수와 셀 크기들의 개수 사이에는 다른 관계들(relationships)도 이용될 수 있다. 예를 들어, 네 개의 민감도 영역들 - 첫 번째의, 더 큰 셀들을 가진 고민감도 영역 및 중-고(medium-high) 민감도 영역들, 및 두 번째의, 더 작은 셀들을 가진 중-저(medium-low) 민감도 영역 및 저민감도 영역으로 된 - 에 대해 두 개의 셀 크기들이 있을 수 있다.
도 4g는 각 메모리 셀들의 공급 전압(supply voltage)은 셀이 잘못되는(예를 들어, 비트 에러율로 측정된) 민감도와 연관되는 예시적인 메모리 어레이를 도시한다. 도 4g는 데이터 블록(404)과 같은 데이터 블록들을 저장하기 위해 구성된 공급 전압들을 가진 메모리 인스턴스(314Y)의 예시적인 실시를 도시한다. 그것은, 각 열 m에 대해 메모리 셀들(334m,1-334m,4)(고민감도 영역 내의 셀들)은 Vmem1을 공급받고, 메모리 셀들(334m,5-334m,8)(저민감도 영역 내의 셀들)은 Vmem2를 공급받으며, 여기에서 Vmem1 > Vmem2이다. 이러한 공급 전압들의 구성으로 고민감도 영역에서의 고장 셀들이 저민감도 영역에서보다 더 적게 나타날 수 있다. 도 4g는 두 개의 민감도 영역들에 대한 두 개의 공급 전압들을 도시하지만, 민감도에 기반한 공급 전압 구성은 임의의 개수의 민감도 영역들에 적용될 수 있다. 비슷하게, 도 4g에서 민감도 영역들의 개수와 공급 전압들의 개수 사이는 일대일 대응(one-to-one correspondence)을 가지지만, 민감도 영역들의 개수와 공급 전압들의 개수 사이에는 다른 관계들(relationships)도 이용될 수 있다. 예를 들어, 네 개의 민감도 영역들 - 첫 번째의, 더 높은 공급 전압을 공급받는 고민감도 영역 및 중-고 민감도 영역들, 및 두 번째의, 더 낮은 공급 전압을 공급받는 중-저(medium-low) 민감도 영역 및 저민감도 영역으로 된 - 에 대해 두 개의 공급 전압들이 있을 수 있다.
도 5a는 예시적인 고장 완화 맵핑 모듈(fault mitigation mapping module)을 도시한다. 도 5a에 따르면, 고장 완화 맵핑 모듈(502)는 입력 라인들(input lines)(504)[7:0], 출력 라인들(output lines)(510)[7:0], 멀티플렉서(508), 및 컨트롤 신호(512)로 구성된다. 컨트롤 신호(512)가 로직(logic) 0이면, 라인들(504)[7:0]은 아래 표 7에 보이듯이 라인들(510)[7:0]에 맵핑(mapped)될 수 있다. 컨트롤 신호(512)가 로직 1이면, 라인들(504)[7:0]는 아래 표 8에 보이듯이 라인들(510)[7:0]에 맵핑될 수 있다.
Figure pct00003
Figure pct00004
도 5a에 도시된 고장 완화 맵핑 모듈은 신호 라인들의 재배열(re-ordering)을 통해 다른 맵핑들을 달성한다. 이와 같은 이유로, 멀티플렉서(508)에 의해 도입된 지연(delay)은 오직 하나의 고장 완화 맵핑 모듈(502)에 의해 도입된 중요한 추가 지연일 것이다. 그러나 다른 실시예에서는, 맵핑은 하나 또는 복수의 로직 게이트들(logic gates)을 동해 달성될 수 있다. 이러한 다른 실시예들은, 예를 들어, 추가 지연을 감수할 수 있을 때에 이용될 수 있다. 본 발명의 실시예에서, 맵핑은 예를 들어 베네스 순열 네트워크(Benes permutation network)와 같은 순열 네트워크에 의해 달성될 수 있다.
도 5b는 구성 가능한 고장 완화 맵핑 모듈을 포함하는 시스템을 도시한다. 도 5b를 참조하면, 구성 가능한 고장 완화 맵핑 모듈(540)은 입력 라인들(544)[7:0], 출력 라인들(550)[7:0], 멀티플렉서(548), 제어 신호(552), 및 64개의 구성 요소들(5461,1-5468,8)을 포함한다. 예시를 위해 64개의 구성 요소들이 사용되었으나, 본 발명은 그에 한정되지 않는다.
구성 요소들(5461,1-5468,8) 각각은, 예를 들어, NMOS 트랜지스터, PMOS 트랜지서, CMOS 송신 게이트, 퓨즈, 안티-퓨즈, 또는 신호 트레이스들 간을 접속시키고/접속시키거나 접속해제시키기 위한 임의의 다른 디바이스를 포함할 수 있다. 구성 요소들(5461,1-5468,8)은, 모듈(542)이 그 내부에 있는 디바이스(예를 들어, 수신기(150))의 동작 동안 (예를 들어, CPU(104)와 같은 프로세서로부터의 제어 신호들에 의해) 일회 구성 가능하거나, 프로그래밍 스테이션을 통해 전자적으로 구성 가능하고/하거나 동적으로 구성 가능할 수 있다.
동작에서, 모듈(542)은 신호(552)가 로직 0인 경우 제1 맵핑을 수행할 수 있고, 신호(552)가 로직 1인 경우 제2 맵핑을 수행할 수 있다.
모듈(542)이 일회 프로그램 가능한 예시적인 실시예에서, 제2 맵핑은 모듈(542)과 함께 사용될 특정 메모리를 특징화함과 동시에 결정될 수 있다. 예를 들어, 모듈은, 메모리(152)의 각각의 행의 셀[6]이 고장나도록, 고장난 비트 라인[6]을 갖는 메모리(152)와 페어링될 수 있다. 모듈(542)은 메모리(152)의 비트 라인[6]이 라인들(544)[7:0] 중 모듈(542)을 통해 메모리(152)에 기입되는 데이터 블록들의 최하위 비트에 대응하는 라인에 맵핑되도록 프로그래밍될 수 있다.(예를 들어, 데이터 블록(404)의 비트[0])
예시적인 실시예에서, 모듈(542)은 메모리 당, 메모리 인스턴스 당, 메모리 어드레스 당, 및/또는 메모리 어레이 당 기준으로 구성될 수 있다. 예를 들어, 구성 요소들(542)은 메모리(152)의 제1 어드레스로부터 메모리에 기입하거나 판독하는 경우 제1 구성 내에 배치될 수 있고, 메모리(152)의 제2 메모리 어드레스로부터 기입하거나 판독하는 경우 제2 구성 내에 배치될 수 있다.
도 6 및 7은 수신기(150)의 예시적인 구현의 시뮬레이션 결과를 도시한다. 도 6 및 7에 개시된 시뮬레이션 결과는 공칭 공급 전압 Vmem을 갖는 균일한 크기의 메모리 셀들을 사용하여 얻어진다.
도 6은 BER(Bit Error Rate)에 의해 측정되는 FEC(Forward Error Correction)를 갖는 수신기(150)의 예시적인 구현의 디코딩 성능에 대하여 FTDI(Frequency Time De-Interleaver) 메모리(152)에서의 NSAF=400 고착 고장들(stuck-at-faults; SAF)의 영향을 도시한다. 도 6에 도시된 시뮬레이션에서, 디인터리버 메모리(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) 인코딩)을 조합하여 본 발명의 양태들을 사용하지만, 본 발명의 양태들은 추가의 에러 정정을 사용하지 않아도 시스템 성능을 향상시킬 수 있다.
도 7은 고착 고장들로 인한 예시적인 FTDI(Frequency Time De-Interleaver) 메모리(152)의 고장 민감도 계수를 도시한다. 도 7은 도 6의 BER 플롯에 기초하여 FTDI(Frequency Time De-Interleaver) 메모리의 섹션에 대한 고장 민감도 계수 ξ를 도시한다. 시뮬레이션시에, FTDI 메모리 열들은 메모리 행들에 저장된 데이터 심볼들을 저장한다. 고장 민감도 계수 ξ는 도 6에서 실선과 점선 사이의 차를 취합한 다음 그 차를 1로 정규화함으로써 결정된다. 즉, 특정한 메모리 셀의 고장 민감도 계수는 기능 중인 메모리 셀과 비교하여 고장난 메모리 셀로 인한 시스템 성능 메트릭(metric)(예를 들어, BER)의 차에 대응할 수 있다. 시뮬레이션 결과들은 MSB에 가장 근접한 데이터 비트들이 LSB에 가장 근접한 비트들과 비교하여 높은 고장 민감도 계수를 갖는 것을 나타낸다. MSB 및 LSB 영역들의 치환의 결과로서, 본 발명의 양태들을 사용하는 것은, MSB 영역이 고장들을 갖고 LSB 영역들이 고장이 없는 경우일 때는 언제나, MSB 영역 데이터에 대한 LSB 영역에 의해 나타내지는 고장 민감도를 달성한다.
도 8은 메모리 고장 완화 모듈의 데이터스트림-종속 제어를 나타내는 블록도이다. 도 8에는, 데이터 검사 모듈(802), 고장 완화 모듈(804) 및 메모리 셀들(806)의 블록을 포함하는 디바이스(800)가 도시되어 있다.
검사 모듈(802)은 메모리(806)로 기록되는 데이터스트림(801)의 검사에 기초하여 고장 완화 모듈(804)을 제어하도록 동작가능할 수 있다. 데이터 검사 모듈(802)은 이 모듈(802)에 의해 출력되는 데이터의 타입에 기초하여 신호(803)의 상태를 제어할 수 있다. 예를 들어, 신호(803)는 모듈(802)에 의해 출력되는 데이터에 동기화될 수 있고, 예를 들어 출력되는 데이터의 타입 및/또는 출력되는 데이터의 민감도 계수(들)를 나타낼 수 있다.
고장 완화 모듈(804)은 데이터스트림(801)의 대응하는 데이터에 어떤 맵핑을 이용할지를 결정하기 위해서 제어 신호(803)의 상태를 이용할 수 있다. 고장 완화 모듈(804)은 메모리(806)의 고장 레지스터와 함께 제어 신호(803)의 상태를 이용할 수 있다.
본 발명의 예시적인 실시예에 있어서, 패킷화된 데이터스트림(801)을 메모리(806)로 기록할 때, 데이터 검사 모듈(802)은, 제어 신호(803)를, 페이로드 비트들을 출력하는 경우에는 제1 상태로 할 수 있고, 헤더 비트들을 출력하는 경우에는 제2 상태로 할 수 있다. 이러한 실시예에 있어서, 고장 완화 모듈(804)은, 기록되는 메모리 어드레스에 대응하는 어레이에 고장 셀들이 존재하지 않고/않거나 페이로드 비트들이 기록되고 있는 경우에는 제1 맵핑을 이용할 수 있고, 기록되는 메모리 어드레스에 대응하는 어레이에 하나 이상의 고장 셀이 존재하며 헤더 비트들이 기록되고 있는 경우에는 제2 맵핑을 이용할 수 있다. 제2 맵핑이 이용되는 경우, 고장 완화 모듈은, 메모리로부터 데이터를 올바르게 판독하는 것을 가능하게 하기 위해서 어떤 어드레스들이 제2 맵핑을 이용하였는지를 계속 추적할(keep track of) 수 있다. 예를 들어, 제2 맵핑이 이용되는 경우에 고장 레지스터에 비트가 설정될 수 있고/있거나, 제2 맵핑이 적용된 메모리 어드레스에 비트가 정의될 수 있다.
본 발명의 예시적인 실시예에서, 데이터스트림(801)의 데이터 타입들과 제어 신호(803)의 상태들 사이에 일대일 대응이 존재할 수 있다. 예를 들어, 제어 신호(803)는 기록되는 데이터의 타입에 기초하여 스위칭 요소들(546; 도 5b 참조)을 제어할 수 있다.
도 9는 내고장성 메모리(fault-tolerant memory)의 공급 전압을 결정하기 위한 예시적인 단계들을 도시하는 플로우차트이다. 예시적인 단계들은, 메모리로 공급되는 Vmem을 교정하기 위한 루틴인 단계(902)에서 시작될 수 있다. 이 교정 루틴은, 예를 들어 메모리의 생산 테스트 중에 및/또는 메모리의 파워-온이나 리셋에서 수행되는 자기 테스트 중에 일어날 수 있다. 교정 루틴의 시작 시에, 변수 j는 0으로 초기화될 수 있는데, 여기서 j는 Vmem의 가능한 값들의 리스트의 인덱스이다. 예를 들어, (예를 들어 룩업 테이블에 저장되는) Vmem의 J개의 가능한 값들이 존재할 수 있는데, 여기서 V1은 Vmem의 최고값이며, VJ는 Vmem의 가능한 최저값이다.
단계(904)에서, j는 1만큼 증분될 수 있다. 단계(906)에서, j가 J+1과 동일한 경우(즉, Vmem의 가능한 최저값이 예시적인 단계들(902-918)의 이전의 반복 중에 테스트된 경우), 예시적인 단계들은 단계(918)로 진행할 수 있다. 단계(906)로 복귀하여, j가 J+1 이상인 경우에는, 예시적인 단계들은 단계(908)로 진행할 수 있다. 단계(908)에서, Vmem은 Vj로 설정될 수 있다.
단계(910)에서, 테스트 데이터가 메모리로 기록될 수 있다. 단계(912)에서, 테스트 데이터가 메모리로부터 판독되고, 에러에 대해 검사될 수 있다. 몇몇 경우에, 교정 루틴의 제어 조건들 하에서, 메모리로부터 판독된 데이터에서의 에러들 각각은 고장 메모리 셀의 결과라고 가정될 수 있다.
단계(914)에서, 메모리 내의 고장 메모리 셀들의 수 및/또는 위치가 허용 가능한지의 여부가 결정될 수 있다. 허용될 수 있는 고장 메모리 셀들의 수 및/또는 위치는, 예컨대 메모리에 저장될 데이터의 종류, 및/또는 고장 레지스터의 크기(즉, 가용 맵핑들의 수 및/또는 고장 레지스터의 각각의 셀(350)과 연관된 어레이들의 수)에 의존할 수 있다. 본 발명의 예시적인 실시예에서, 데이터는, 고장 메모리 셀들의 총 수가 임계치를 넘는지의 여부를 결정하기 위해 검사될 수 있다. 본 발명의 다른 실시예에서, 데이터는, 임계 개수보다 많은 고장 메모리 셀들을 갖는 메모리 내의 어레이들의 수가 임계치를 넘는지의 여부를 결정하기 위해 검사될 수 있다. 본 발명의 다른 실시예에서, 데이터는, 복수의 민감도 영역들(sensitivity zones)에서 에러들을 갖는 메모리 내의 어레이들의 수가 임계치를 넘는지의 여부를 결정하기 위해 검사될 수 있다. 검출된 고장 메모리 셀들이 허용 가능한 경우, 예시적인 단계들은 단계(904)로 돌아올 수 있다. 검출된 에러들이 허용 가능하지 않은 경우, 예시적인 단계들은 단계(916)로 나아갈 수 있다.
단계(916)에서, Vmen는 Vj -1로 설정될 수 있고, 메모리의 고장 레지스터는 단계(912)에서 수행된 검사의 결과들에 기초하여 프로그래밍될 수 있다. 즉, 고장 레지스터의 콘텐츠들은 Vj -1로 설정된 Vmen을 갖는 고장 메모리 셀들의 존재 및/또는 위치를 나타내도록 구성될 수 있다. 단계(918)에서, Vmen의 교정은 완료되고, 시스템은 실제 데이터를 메모리로부터/메모리에 판독하고 기입하는 것을 시작할 수 있다.
본 발명의 예시적인 실시예에서, Vmen의 복수의 교정들은, 복수의 데이터 종류들에 대응하여 수행될 수 있다(복수의 데이터 타입들은 민감도 계수들의 복수의 세트들에 대응할 수 있음에 유의하라). 상이한 데이터 종류들에 대해 적합한 Vmen의 값은 (예컨대 룩업 테이블에) 저장될 수 있고, 그 후 Vmen은 데이터의 종류에 기초하여, 주어진 민감도 영역에 대하여 전압 스케일링 장치(예컨대 도 1a의 스케일러(116))를 통해 메모리에 저장되도록 동적으로 구성될 수 있다.
도 10은 고장-허용 메모리의 메모리 셀들의 크기를 조절하기 위한 예시적인 단계들을 도시하는 흐름도이다. 예시적인 단계들은 크기 조절 루틴이 시작되는 단계(1002)와 함께 시작할 수 있다. 예컨대, 메모리의 디자인 단계 동안 크기 조절 루틴이 발생할 수 있다. 크기 조절 루틴을 시작하면, 변수 s는 0으로 초기화될 수 있고, 여기서 s는 크기 인덱스로서 사용된다. 예컨대, 셀 크기는 "sizes"로 나타낼 수 있고, size1는 가장 작은 가능한 셀 크기이며, s가 증가함에 따라 셀 크기가 증가한다.
단계(1004)에서, j는 1만큼 증가될 수 있다. 단계(1006)에서, 셀 크기는 sizes로 설정될 수 있고, sizes의 셀 크기를 갖는 메모리 내의 고장 셀들의 수 및/또는 위치는 촉진되고/촉진되거나 아니면 계산될 수 있다. 단계(1010)에서, 단계(1008)에서 결정된 고장 메모리 셀들의 수 및/또는 위치가 허용 가능한지의 여부가 결정될 수 있다. 허용될 수 있는 고장 메모리 셀들의 수 및/또는 위치는, 예컨대 메모리에 저장될 데이터의 종류, 및/또는 고장 레지스터의 크기(즉, 가용 맵핑들의 수 및/또는 고장 레지스터의 각각의 셀(350)과 연관된 어레이들의 수)에 의존할 수 있다. 고장 메모리 셀들의 수가 허용 가능하지 않은 경우, 예시적인 단계들은 단계(1004)로 돌아갈 수 있다. 고장 메모리의 수가 허용 가능한 경우, 예시적인 단계들은 단계(1012)로 나아갈 수 있다. 단계(1012)에서, sizes는 메모리를 구축하기 위한 셀 크기로서 선택될 수 있다. 단계(1014)에서, 크기 조절 루틴은 완료된다.
도 11은 수신기 내의 내고장성 메모리(fault-tolerant memory)의 공급 전압을 결정하기 위한 예시적인 단계들을 도시하는 플로우 차트이다. 예시적인 단계들은 메모리에 공급된 전압 Vmem의 교정이 시작될 수 있을 때, 단계 1102부터 시작할 수 있다. 예를 들어, 메모리 테스트의 재생동안 및/또는 메모리의 전원-온 또는 리셋에서 수행된 자가-테스트동안 교정 루틴이 발생할 수 있다. 교정 루틴이 시작하는 경우에, 변수 j는 0으로 초기화될 수 있으며, 여기서 j는 Vmem의 가능한 값들의 리스트의 메트릭이다. 예를 들어, (예를 들어, 룩업 테이블에 저장된) Vmem의 J개의 가능한 값들이 있을 수 있으며, 여기서, V1은 Vmem의 최대값이고, VJ는 Vmem의 최소 가능 값이다.
단계 1104에서, j는 1씩 증가할 수 있다. 단계 1106에서 j가 J+1과 같다면 (즉, Vmem의 최소 가능 값이 예시적인 단계들 1102 내지 1126의 이전의 반복 중에 테스트 됨), 그 후에 예시적인 단계들은 1124로 진행할 수 있다. 단계 1106으로 다시 돌아가면, j가 J+1보다 크거나 같을 경우, 그 후에 예시적은 단계들은 단계 1108로 진행할 수 있다. 단계 1108에서, Vmem Vj로 설정될 수 있다.
단계 1110에서, 테스트 신호는 수신기에 입력될 수 있다. 예를 들어, 테스트 신호는 테스트 스테이션에 의해 발생될 수 있으며 및/또는 수신기와 함께 연결되어(collocated) 수신기로 다시 되돌려지는(looped-back) 송신기에 의해 발생될 수 있다. 예를 들어, 테스트 신호는 코너의 경우 또는 최악의 경우의 시나리오를 제시할 수 있어서, 테스트 신호에 포함된 데이터의 성공적인 복원은, 수신기가 수신이 요구되는 신호들(예를 들어, 하나 이상의 표준들에서 제시된 사양들을 만족하는 신호들)을 성공적으로 수신할 수 있을 것이라는 신뢰할 수 있는 표시자일 수 있게 된다.
단계 1112에서, 테스트 신호는 디지털화될 수 있고, 그렇지 않으면 아날로그 전단부에 의해 프로세싱될 수 있다(예를 들어, AFE 102). 단계 1114에서, 디지털화된 신호에 포함된 데이터는, 예를 들어 디지털화된 신호를 복조하고 디코딩함으로써 복원될 수 있다. 단계 1116에서, 복원된 데이터는 메모리에 기입될 수 있다. 단계 1118에서, 데이터는 메모리로부터 판독될 수 있다. 단계 1120에서, 하나 이상의 에러 정정 알고리즘들(예를 들어, Viterbi 및 Reed-Solomon)은 판독된 데이터에 적용될 수 있다. 예시적인 단계들이 메모리에 대한 단수의 판독 및 기입을 나타내고 있지만, 신호의 복조, 디코딩, 에러 정정 및/또는 다른 프로세싱은 실제로 메모리에 대한 복수의 판독들 및 기입들을 요구할 수 있다.
단계 1122에서, 성능 메트릭(예를 들어, 비트-에러율)은 에러 정정된 데이터에 대해 측정되고, 임계치와 비교될 수 있다. 만약, 성능 메트릭이 임계치 미만일 경우, 예시적인 단계들은 단계 1104로 되돌아갈 수 있다. 만약, 성능 메트릭이 임계치 초과일 경우, 예시적인 단계들은 단계 1124로 진행할 수 있다.
단계 1124에서, Vmem은 Vj -1로 설정될 수 있다. 단계 1126에서, Vmem의 교정은 완료할 수 있고, 시스템은 실제 데이터를 메모리로부터/메모리로 판독과 기입을 시작할 수 있다.
본 발명의 예시적인 실시예에서, 메모리 셀들의 어레이(3341,1-334M,N)는 어레이 내의 고장 메모리 셀들을, 만약 있다면, 검출하기 위해 스캐닝될 수 있다. 메모리 셀들의 어레이에 인가된 공급 전압 Vmem은 스캔 결과 및 하나 이상의 메모리 셀들의 민감도 계수에 기초하여 제어될 수 있다. 민감도 계수는, 고장이 있는 하나 이상의 셀들이 메모리 어레이에 데이터를 판독하고 기입하는 디바이스(예를 들어, 수신기(150))의 성능에 가하는 영향을 표시한다. 민감도 계수는, 고장이 있는 하나 이상의 메모리 셀들을 갖지 않는 전자 디바이스의 성능 메트릭과, 고장이 있는 하나 이상의 메모리 셀들을 갖는 전자 디바이스의 성능 메트릭을 비교함으로써 결정될 수 있다. 스캔의 결과가 좀 더 많은 고장 메모리 셀들이 메모리 셀들의 어레이 내에서 허용될 수 있다는 것을 표시했을 때에는 공급 전압을 제어하는 것은 공급 전압 Vmem을 감소시키는 것을 포함할 수 있다. 스캔의 결과가 메모리 셀들의 어레이 내의 다수의 고장 메모리 셀들이 허용될 수 있는 것보다 많다고 표시했을 때에는 공급 전압을 제어하는 것은 공급 전압을 증가시키는 것을 포함할 수 있다.
본 발명의 예시적인 실시예에서, 메모리 셀들의 어레이(3341,1-334M,N)가 스캔되어 이 어레이에 고장 메모리 셀들이 (있는 경우) 검출될 수 있다. 고장 레지스터(예를 들어, 고장 레지스터(304))의 콘텐츠들은 이 스캐닝의 결과에 기초하여 구성될 수 있다. 테스트 데이터는 메모리 셀들의 어레이에 대한 것일 수 있다. 테스트 데이터의 비트들이 메모리 셀들의 어레이에 기입되는 순서는 고장 레지스터의 콘텐츠들에 의해 결정될 수 있다. 그 다음 메모리 셀들의 어레이로부터 테스트 데이터가 판독될 수 있다. 테스트 데이터의 비트들이 메모리 셀들의 어레이로부터 판독되는 순서는 고장 레지스터의 콘텐츠들에 의해 판정될 수 있다. 메모리 셀들의 어레이에 인가되는 공급 전압 Vmem은 메모리로부터 판독된 테스트 데이터의 측정된 성능 메트릭(metric)에 기초하여 제어될 수 있다. 공급 전압의 제어는 스캐닝의 결과가 그 메모리 셀들의 어레이에서 더 많은 고장 메모리 셀들이 허용될 수 있음을 나타내면 공급 전압을 줄이는 것을 포함할 수 있다. 공급 전압의 제어는 스캐닝의 결과가 메모리 셀들의 어레이에서의 고장 메모리 셀들의 개수가 허용될 수 있는 것보다 더 많음을 나타내면 공급 전압을 늘리는 것을 포함할 수 있다. 성능 메트릭은, 예를 들어, 비트 에러율(bit-error rate) 및/또는 패킷 에러율일 수 있다. 이 스캐닝은 메모리 셀들의 어레이의 스타트업 또는 리셋 시에 수행될 수 있다.
본 발명의 예시적인 실시예에서, 하나 이상의 회로는 메모리 셀들의 어레이 (3341,1-334M,N)를 포함할 수 있다. 메모리 셀들의 하나 이상의 트랜지스터(예를 들어, 하나 이상의 트랜지스터 341-346)의 크기가 이 메모리 셀들의 어레이의 하나 이상의 민감도 계수와 상호관련될 수 있다(즉, 이 민감도 계수에 의존하고/거나 이 민감도 계수와의 관계를 가질 수 있다). 추가적으로 또는 대안으로, 메모리 셀들의 하나 이상의 트랜지스터의 크기는 이 메모리 셀들의 어레이에서 허용될 수 있는 고장 메모리 셀들의 개수와 상호관련될 수 있다(즉, 이 개수에 의존하고/거나 이 개수와의 관계를 가질 수 있다). 하나 이상의 회로가 고장 레지스터를 포함할 수 있다. 고장 레지스터의 크기는 하나 이상의 트랜지스터의 크기와 상호관련될 수 있다(즉, 이 트랜지스터의 크기에 의존하고/거나 이 트랜지스터의 크기와의 관계를 가질 수 있다). 추가적으로 또는 대안으로, 하나 이상의 트랜지스터의 크기는 고장 레지스터의 크기와 상호관련될 수 있다(즉, 이 고장 레지스터의 크기에 의존하고/거나 이 고장 레지스터의 크기와의 관계를 가질 수 있다). 하나 이상의 회로는 멀티플렉서, 및 복수의 데이터 라인을 포함하는 데이터 버스를 포함한다. 메모리 셀들의 어레이는 특정 메모리 어드레스에 대응할 수 있고 복수의 비트 라인에 연결될 수 있다. 복수의 데이터 라인 및 복수의 비트 라인은 메모리 셀들의 어레이에 기입을 하고/거나 그로부터 판독을 하는 데에 이용될 수 있다. 멀티플렉서는 복수의 데이터 라인과 복수의 비트 라인 사이의 상이한 맵핑들 중에서 선택을 할 수 있다. 멀티플렉서의 구성은 메모리 셀들 중 무엇이 고장인지(있는 경우)에 적어도 일부 기초하여 제어될 수 있다.
본 발명의 다른 예시적인 실시예들은, 머신 및/또는 컴퓨터에 의해 실행가능한 적어도 하나의 코드 섹션을 가지는 컴퓨터 프로그램 및/또는 머신 코드가 저장되어, 이 머신 및/또는 컴퓨터로 하여금 메모리 전력 및/또는 면적(area) 절감을 위해 본원에 설명된 단계들을 수행하게 하는 비일시적 머신 판독가능(예를 들어, 컴퓨터 판독가능) 매체 및/또는 저장 매체를 제공할 수 있다.
따라서, 본 발명은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 실현될 수 있다. 본 발명은 적어도 하나의 컴퓨팅 시스템에 집중되는 방식으로, 또는 서로 다른 요소들이 몇몇의 상호접속된 컴퓨팅 시스템들에 걸쳐 분포되는 분산 방식으로 실현될 수 있다. 본원에 설명된 방법들을 수행하도록 되어 있는 종류의 컴퓨팅 시스템이나 기타 장치라면 어떤 것이라도 적합하다. 통상적인 하드웨어와 소프트웨어의 조합은 로딩되거나 실행될 때 본원에 설명된 방법들을 수행하도록 컴퓨팅 시스템을 제어하는 프로그램 또는 다른 코드를 가지는 범용 컴퓨팅 시스템일 수 있다. 다른 통상의 구현물은 ASIC(Application Specific Integrated Circuit) 또는 SoC(System-on-Chip)를 포함할 수 있다.
본 발명은 또한 컴퓨터 프로그램 제품으로서 구현될 수 있고, 컴퓨터 프로그램 제품은 본 명세서에서 설명된 방법들의 구현을 가능하게 하는 모든 피쳐들을 포함하고, 컴퓨터 시스템에 로딩될 때 이러한 방법들을 수행할 수 있다. 본 맥락에서 컴퓨터 프로그램은 정보 처리 능력을 갖는 시스템이 특정한 기능을 직접 또는 a) 다른 언어, 코드 또는 표기법으로의 변환, b) 상이한 재료 형태로의 재생성 중 하나 또는 모두의 후에 수행하게 하도록 의도된 임의의 표현, 임의의 언어, 코드 또는 표기법을 의미한다.
본 발명은 특정 실시예들에 관련하여 설명되었지만, 통상의 기술자라면 다양한 변경이 이루어질 수 있고, 본 발명의 범주에서 벗어나지 않고 균등물들이 대체될 수 있다는 것을 이해할 것이다. 또한, 본 발명의 범주로부터 벗어나지 않고 본 발명의 교시들에 대한 특정 상황 또는 내용에 맞추기 위해 많은 수정이 이루어질 수 있다. 따라서, 본 발명은 개시된 특정한 실시예로 한정되도록 의도되지 않고, 본 발명은 첨부된 특허청구범위의 범주 내에 속하는 모든 실시예들을 포함할 것이 의도된다.

Claims (20)

  1. 방법으로서,
    메모리 셀들의 어레이를 포함하는 전자 디바이스에서,
    상기 메모리 셀들의 어레이에서, 고장인(faulty) 메모리 셀들이 존재하는 경우, 고장인 메모리 셀들을 검출하기 위해 상기 메모리 셀들의 어레이를 스캐닝하는 단계; 및
    하나 이상의 상기 메모리 셀들의 어레이의 상기 스캐닝의 결과 및 민감도 계수(sensitivity coefficient)에 기반하여 상기 메모리 셀들의 어레이에 적용된 공급 전압을 제어하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 민감도 계수는 상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들이 상기 전자 디바이스의 성능에 주는 영향을 나타내는 방법.
  3. 제1항에 있어서, 상기 민감도 계수는, 적어도 부분적으로,
    상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들을 제외한 상기 전자 디바이스의 성능 메트릭(metric)과
    상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들을 포함한 상기 전자 디바이스의 상기 성능 메트릭
    을 비교함으로써 결정되는 방법.
  4. 제1항에 있어서, 상기 공급 전압을 제어하는 단계는, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 더 많은 고장인 메모리 셀들이 허용될 수 있다고 표시할 때 상기 공급 전압을 감소시키는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 공급 전압을 제어하는 단계는, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 고장인 메모리 셀들의 개수가 허용될 수 있는 정도보다 많음을 표시할 때 상기 공급 전압을 증가시키는 단계를 포함하는 방법.
  6. 시스템으로서,
    전자 디바이스에서의 이용을 위한 하나 이상의 회로들
    을 포함하며,
    상기 하나 이상의 회로들은 메모리 셀들의 어레이를 포함하고, 적어도,
    상기 메모레 셀들의 어레이에서, 고장인 메모리 셀들이 존재한다면, 고장인 메모리 셀들을 검출하기 위해 상기 메모리 셀들의 어레이를 스캔하고;
    하나 이상의 상기 메모리 셀들의 어레이의 상기 스캐닝의 결과 및 민감도 계수에 기반하여 상기 메모리 셀들의 어레이에 적용되는 공급 전압을 제어하도록
    동작가능한 시스템
  7. 제6항에 있어서, 상기 민감도 계수는 상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들이 상기 전자 디바이스의 성능에 주는 영향을 나타내는 시스템.
  8. 제6항에 있어서, 상기 민감도 계수는, 적어도 부분적으로,
    상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들을 제외한 상기 전자 디바이스의 성능 메트릭과
    상기 하나 이상의 메모리 셀들의 어레이 중 고장인 메모리 셀들을 포함한 상기 전자 디바이스의 상기 성능 메트릭
    을 비교함으로써 결정되는 시스템.
  9. 제6항에 있어서, 상기 하나 이상의 회로들은, 적어도 부분적으로, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 더 많은 고장인 메모리 셀들이 허용될 수 있다고 표시할 때 상기 공급 전압을 감소시키도록 동작함에 의하여, 상기 공급 전압을 제어하도록 동작가능한 시스템.
  10. 제6항에 있어서, 상기 하나 이상의 회로들은, 적어도 부분적으로, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 고장인 메모리 셀들의 개수가 허용될 수 있는 정도보다 많음을 표시할 때 상기 공급 전압을 증가시키도록 동작함에 의하여, 상기 공급 전압을 제어하도록 동작가능한 시스템.
  11. 방법으로서,
    메모리 셀들의 어레이에서, 고장인 메모리 셀들이 존재한다면, 고장인 메모리 셀들을 검출하기 위해 상기 메모리 셀들의 어레이를 스캐닝하는 단계;
    상기 스캐닝의 결과에 기반하여 고장 레지스터(fault register)의 콘텐츠(contents)를 구성하는 단계;
    상기 메모리 셀들의 상기 어레이에 테스트 데이터(test data)를 기입하는 단계 - 상기 테스트 데이터의 비트들(bits)이 상기 메모리 셀들의 어레이에 기입되는 순서(order)는 상기 고장 레지스터의 상기 콘텐츠에 의해 결정됨 -;
    상기 메모리 셀들의 어레이로부터 상기 테스트 데이터를 판독하는 단계 - 상기 테스트 데이터의 비트들(bits)이 상기 메모리 셀들의 어레이로부터 판독되는 순서는 상기 고장 레지스터의 상기 콘텐츠에 의해 결정됨 -; 및
    상기 메모리 셀들의 어레이로부터 판독되는 상기 테스트 데이터의 측정된 성능 메트릭에 기반하여, 상기 메모리 셀들의 어레이에 적용된 공급 전압을 제어하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 공급 전압을 제어하는 단계는, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 더 많은 고장인 메모리 셀들이 허용될 수 있다고 표시할 때 상기 공급 전압을 감소시키는 단계를 포함하는 방법.
  13. 제11항에 있어서, 상기 공급 전압을 제어하는 단계는, 상기 스캐닝의 상기 결과가 상기 메모리 셀들의 어레이에서 고장인 메모리 셀들의 개수가 허용될 수 있는 정도보다 많음을 표시할 때 상기 공급 전압을 증가시키는 단계를 포함하는 방법.
  14. 제11항에 있어서, 상기 성능 메트릭은 비트 에러율(bit-error rate) 및/또는 패킷 에러율(packet-error rate) 중 하나 또는 모두인 방법.
  15. 제11항에 있어서, 상기 스캐닝은 상기 메모리 셀들의 어레이의 스타트업(start-up) 및/또는 리셋(reset) 중 하나 또는 모두에 대해 수행되는 방법.
  16. 시스템으로서,
    메모리 셀들의 어레이를 포함하는 하나 이상의 회로들
    을 포함하고,
    상기 메모리 셀들의 하나 이상의 물리적인 치수들은, 상기 메모리 셀들의 어레이의 하나 이상의 민감도 계수들과 상호 연관되어(correlated) 있으며, 상기 메모리 셀들의 어레이에서 허용될 수 있는 고장인 메모리 셀들의 개수에 기반하는 시스템.
  17. 제16항에 있어서, 상기 하나 이상의 회로들은 고장 레지스터를 포함하고, 상기 고장 레지스터의 크기는 상기 메모리 셀들의 상기 하나 이상의 물리적인 치수들과 상호 연관되는 시스템.
  18. 제16항에 있어서, 상기 하나 이상의 회로들은 고장 레지스터를 포함하고, 상기 메모리 셀들의 상기 하나 이상의 물리적인 치수들은 상기 고장 레지스터의 크기에 기반하는 시스템.
  19. 제16항에 있어서,
    상기 하나 이상의 회로들은 멀티플렉서, 및 복수의 데이터 라인들을 포함하는 데이터 버스를 포함하고;
    상기 메모리 셀들의 어레이는 특정 메모리 어드레스와 대응하고 복수의 비트 라인들과 결합되며;
    상기 복수의 데이터 라인들과 상기 복수의 비트 라인들은 상기 메모리 셀들의 어레이에 기입 및/또는 상기 메모리 셀들의 어레이로부터 판독하도록 이용되며; 및
    상기 멀티플렉서는 상기 복수의 데이터 라인들과 상기 복수의 비트 라인들 사이의 상이한 맵핑들 중에서 선택하는
    시스템.
  20. 제19항에 있어서, 상기 멀티플렉서의 구성(configuration)은, 상기 메모리 셀들 중 고장인 것이 존재한다면, 상기 메모리 셀들 중 어느 것이 고장인 것인지에 적어도 부분적으로 기반하여 제어되는 시스템.
KR1020137033586A 2011-05-17 2012-02-06 메모리 전력 및/또는 면적 감소를 위한 방법 및 장치 KR20140096995A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161487250P 2011-05-17 2011-05-17
US61/487,250 2011-05-17
US13/285,945 2011-10-31
US13/285,945 US8797813B2 (en) 2011-05-17 2011-10-31 Method and apparatus for memory power and/or area reduction
PCT/US2012/023977 WO2012158223A1 (en) 2011-05-17 2012-02-06 Method and apparatus for memory power and/or area reduction

Publications (1)

Publication Number Publication Date
KR20140096995A true KR20140096995A (ko) 2014-08-06

Family

ID=47174829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033586A KR20140096995A (ko) 2011-05-17 2012-02-06 메모리 전력 및/또는 면적 감소를 위한 방법 및 장치

Country Status (8)

Country Link
US (5) US8797813B2 (ko)
EP (1) EP2712445A4 (ko)
JP (1) JP2014517439A (ko)
KR (1) KR20140096995A (ko)
CN (1) CN103733179A (ko)
SG (1) SG195026A1 (ko)
TW (1) TW201312574A (ko)
WO (1) WO2012158223A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8797813B2 (en) * 2011-05-17 2014-08-05 Maxlinear, Inc. Method and apparatus for memory power and/or area reduction
TWI550633B (zh) * 2013-01-03 2016-09-21 國立清華大學 用於通訊或儲存系統之非均等位元可靠度軟式資訊儲存方法
US9224449B2 (en) * 2013-03-11 2015-12-29 Nvidia Corporation Variable dynamic memory refresh
US9786388B1 (en) * 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) * 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9343116B2 (en) 2014-05-28 2016-05-17 Micron Technology, Inc. Providing power availability information to memory
US9576644B2 (en) 2015-04-27 2017-02-21 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit chip having two types of memory cells
US10503241B2 (en) 2017-05-16 2019-12-10 Micron Technology, Inc. Providing energy information to memory
US11301143B2 (en) * 2019-06-05 2022-04-12 Micron Technology, Inc. Selective accelerated sampling of failure-sensitive memory pages
US11508735B2 (en) 2019-08-28 2022-11-22 Taiwan Semiconductor Manufacturing Company, Ltd. Cell manufacturing
US11296080B2 (en) 2020-06-15 2022-04-05 Taiwan Semiconductor Manufacturing Co., Ltd. Source/drain regions of semiconductor devices and methods of forming the same
US11990511B2 (en) 2021-08-27 2024-05-21 Taiwan Semiconductor Manufacturing Co., Ltd. Source/drain device and method of forming thereof
US11817784B2 (en) 2022-01-11 2023-11-14 Semiconductor Components Industries, Llc Switching slew rate control for gate drivers

Family Cites Families (29)

* 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 復調装置
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
US6590818B1 (en) * 2002-06-17 2003-07-08 Motorola, Inc. Method and apparatus for soft defect detection in a memory
EP1408516B1 (en) * 2002-10-07 2006-06-21 Infineon Technologies AG A fuse blowing interface for a memory chip
CA2447204C (en) 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
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
DE102004009693A1 (de) * 2004-02-27 2005-10-13 Advanced Micro Devices, Inc., Sunnyvale Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
JP2005301476A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd 給電制御システム、及び記憶装置
US20060280019A1 (en) * 2005-06-13 2006-12-14 Burton Edward A Error based supply regulation
JP4108695B2 (ja) * 2005-07-15 2008-06-25 三菱電機株式会社 車載電子制御装置
JP4771828B2 (ja) * 2006-02-24 2011-09-14 富士通セミコンダクター株式会社 電源装置の制御回路、電源装置及びその制御方法
US7634713B1 (en) 2006-05-16 2009-12-15 Altera Corporation Error detection and location circuitry for configuration random-access memory
US7793172B2 (en) * 2006-09-28 2010-09-07 Freescale Semiconductor, Inc. Controlled reliability in an integrated circuit
US8006164B2 (en) * 2006-09-29 2011-08-23 Intel Corporation Memory cell supply voltage control based on error detection
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 삼성전자주식회사 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
US7616509B2 (en) * 2007-07-13 2009-11-10 Freescale Semiconductor, Inc. Dynamic voltage adjustment for memory
US7903483B2 (en) * 2008-11-21 2011-03-08 Freescale Semiconductor, Inc. Integrated circuit having memory with configurable read/write operations and method therefor
US8526261B2 (en) * 2009-03-02 2013-09-03 The Regents Of The University Of Michigan Integrated circuit memory power supply
US8379466B2 (en) 2009-03-31 2013-02-19 Freescale Semiconductor, Inc. Integrated circuit having an embedded memory and method for testing the memory
US8315117B2 (en) * 2009-03-31 2012-11-20 Freescale Semiconductor, Inc. Integrated circuit memory having assisted access and method therefor
EP2256634A1 (en) * 2009-05-27 2010-12-01 Robert Bosch Gmbh A data processing device and a method for error detection and error correction
US8797813B2 (en) * 2011-05-17 2014-08-05 Maxlinear, Inc. Method and apparatus for memory power and/or area reduction

Also Published As

Publication number Publication date
EP2712445A1 (en) 2014-04-02
CN103733179A (zh) 2014-04-16
TW201312574A (zh) 2013-03-16
US20120294100A1 (en) 2012-11-22
US9576614B2 (en) 2017-02-21
US20170162233A1 (en) 2017-06-08
US8797813B2 (en) 2014-08-05
JP2014517439A (ja) 2014-07-17
SG195026A1 (en) 2013-12-30
US9881653B2 (en) 2018-01-30
US20150023122A1 (en) 2015-01-22
US10176850B2 (en) 2019-01-08
US20190139584A1 (en) 2019-05-09
WO2012158223A1 (en) 2012-11-22
EP2712445A4 (en) 2015-04-22
US20180151202A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
US10176850B2 (en) Method and apparatus for memory power and/or area reduction
US8705298B2 (en) Method and apparatus for memory fault tolerance
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US7328377B1 (en) Error correction for programmable logic integrated circuits
US20200257589A1 (en) Memory device and repair method with column-based error code tracking
US20140351673A1 (en) Dram method, components, and system configurations for error management
US7656322B2 (en) Semiconductor memory device having error correction function
US10223197B2 (en) Integrated circuit device and method for applying error correction to SRAM memory
US8615690B2 (en) Controller of memory device and method for operating the same
JP2008108390A (ja) 半導体記憶装置及びそのテスト方法
US9153310B2 (en) Dynamic random access memory for communications systems
US9239755B2 (en) Semiconductor device and semiconductor system including the same
ITRM960562A1 (it) Sistema per produrre moduli di memoria simm utilizzando chip di memoria aram e per il loro collaudo

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