KR100529987B1 - 두싸이클의캐쉬액세스동안메모리행잉여분을리-맵핑하는회로,시스템및방법 - Google Patents

두싸이클의캐쉬액세스동안메모리행잉여분을리-맵핑하는회로,시스템및방법 Download PDF

Info

Publication number
KR100529987B1
KR100529987B1 KR1019980015333A KR19980015333A KR100529987B1 KR 100529987 B1 KR100529987 B1 KR 100529987B1 KR 1019980015333 A KR1019980015333 A KR 1019980015333A KR 19980015333 A KR19980015333 A KR 19980015333A KR 100529987 B1 KR100529987 B1 KR 100529987B1
Authority
KR
South Korea
Prior art keywords
address
memory
row
defective
information memory
Prior art date
Application number
KR1019980015333A
Other languages
English (en)
Other versions
KR19980081831A (ko
Inventor
페트릭 더블유. 보스하트
Original Assignee
텍사스 인스트루먼츠 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텍사스 인스트루먼츠 인코포레이티드 filed Critical 텍사스 인스트루먼츠 인코포레이티드
Publication of KR19980081831A publication Critical patent/KR19980081831A/ko
Application granted granted Critical
Publication of KR100529987B1 publication Critical patent/KR100529987B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/84Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
    • G11C29/848Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by adjacent switching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 마이크로프로세서의 작동 방법에 관한 것이다. 이 방법은 제1 어드레스를 태그 메모리(18)에 보낸다(52). 이 제1 어드레스는 태그 메모리에 대응하는 정보 메모리 내에 있는 하나의 행을 어드레스하는 상태로 지정된다. 이 방법은 또한, 제1 어드레스에 의해 어드레스된 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단한다(58). 제1 어드레스에 의해 어드레스되는 정보 메모리 내의 상기 행에 결함이 있는 것으로 판단되는 것에 응답하여, 이 방법은 두개의 단계들을 수행한다. 첫째, 제1 어드레스를 제1 어드레스와 다른 제2 어드레스로 변환하다(60). 둘째, 태그 메모리 내에서 히트가 검출되는 것에 응답하여 상기 제2 메모리를 사용하여 정보 메모리를 어드레스한다(66). 택일적으로, 만일 이 방법이 제1 어드레스에 의해 어드레스되는 정보 메모리 내의 행에 결함이 없다고 판단하면, 태그 메모리에서 히트(hit)가 검출되는 것에 응답하여 제1 어드레스를 대신 사용하여 상기 정보 메모리를 어드레스한다. 끝으로, 태그 메모리에서 미스(miss)가 검출되면, 이 방법은 제1 어드레스에 응답하여 다른 정보 메모리를 어드레스하는데, 상기 다른 정보 메모리는 상기 메모리 장치의 메모리 계층 구조상 상기 정보 메모리보다 더 상위이다.

Description

두 싸이클의 캐쉬 액세스 동안 메모리 행 잉여분을 리-맵핑하는 회로, 시스템 및 방법{CIRCUITS, SYSTEMS, AND METHODS FOR RE-MAPPING MEMORY ROW REDUNDANCY DURING TWO CYCLE CACHE ACCESS}
본 발명은 메모리 장치에 관한 것이다. 본 발명의 몇 실시예들은 마이크로프로세서에 관한 것이며, 보다 구체적으로는, 2 싸이클의 캐쉬 액세스 동안에 원시 어드레스를 여분 행 어드레스로 변환함으로써 메모리 행 잉여분(redundancy, 리던던시)을 리-맵핑하기 위한 회로, 시스템, 및 방법을 갖는 마이크로프로세서에 관한 것이다. 다른 몇 실시예들은 메모리 열(column) 잉여분을 리-맵핑하기 위한 회로, 시스템, 및 방법에 관한 것이다.
디지털 메모리 기술에서, 메모리가 제조된 후에 하나 이상의 메모리 행에 결함이 있을 통계적 가능성이 있다는 것이 알려져 있다. 즉, 비록 행(row)이 어떤 선정된 비트수의 정보를 저장하도록 만들어졌어도, 제조된 후에 테스트를 통해, 어떤 이유로 행이 동작하지 않는지, 그래서 원래 의도된 바와 같이 정보를 저장할 수 없는지를 알아낸다. 이러한 가능성 하에서, 종종 메모리는 하나 이상의 소위 잉여분 또는 여분 행을 포함하며, 초기에 결함있는 행으로부터 판독되었거나 그들에 저장되었을 수 있는 정보가 여분의 행들 중 하나에 저장되거나 이들로부터 판독된다.
상술한 바와 같은 여분행의 잉여분이 있는 때에, 종래 기술에서는, 메모리 내의 이들 각각의 행들은 대응하는 행의 통전(energizing) 여부를 결정하는 행 인에이블링 퓨즈(row enabling fuse)를 포함할 수 있다. 게다가, 각각의 여분행은 어드레스를 통전된 대응하는 행으로 디코드하기 위한 일단의 디코드 퓨즈를 포함한다. 따라서, 만일, 행이 결함이 있다고 판정되면, 결함있는 행이 통전되지 못하도록 행 인에이블링 퓨즈가 구성된다(예를 들어, 디스에이블(disable)된다). 또한, 여분행들 중 하나에 대한 디코더 퓨즈들은, 결함있는 행을 목적지로 한 입력되는 어드레스가 여분행을 향하도록 구성된다. 이러한 방법이 주로 사용되지만, 여기에는 많은 결점이 있다. 예를 들어, 퓨즈 구성은 제조 과정을 복잡하게 할 수 있다. 또 다른 예로서, 퓨즈로 인해 집적 회로 상에 추가적인 영역의 사용이 필요해진다. 이러한 점들을 고려하여, 상기와 같은 종래 기술에서 요구되는 퓨즈들의 갯수에 주목해본다. 구체적으로, 필요한 퓨즈의 총 갯수는 행의 갯수+여분행의 갯수 * (메모리 어드레스를 디코드하기 위한 비트수의 합 + 각각의 여분행에 대한 하나의 인에이블 비트)와 같다. 예를 들어, 2개의 독립된 여분행을 갖는 256 라인의 메모리에 대해서는, 총 274개의 퓨즈가 필요하다[256개의 행 인에이블링 퓨즈 + 2*(8개의 디코드 퓨즈 + 1개의 인에이블 퓨즈)]. 게다가, 대다수의 이들 퓨즈들은 한 곳에 위치해 있지 않고 각각의 행을 따라 배치된다는 것을 주목해야 한다. 당업자는 이들 및 다른 결점들을 알 수 있을 것이다.
디지털 메모리 기술에서 행 구현에 대한 상기와 같은 고찰이 주어진다고 할 때, 메모리가 제조된 후 하나 이상의 메모리 열에 결함이 있을 통계적 가능성이 있다는 것도 역시 잘 알려져 있다. 따라서, 비록 열이 정보 비트를 입력, 출력, 또는 입출력할 수 있도록 제조되었더라도, 제조 후 테스트를 통해, 어떠한 이유로든 열이 동작하지 않으며, 이에 따라 원래 의도한 바와 같이 정보를 통신할 수 없는지가 판별된다. 이러한 가능성 하에, 종종 메모리는 하나 이상의 소위 잉여분 또는 여분의 열들을 포함하며, 초기에 결함있는 열부터 판독되었거나 그들에 저장되었을 수 있는 정보는 대신 여분의 열들 중 하나에 저장되거나 이들로부터 판독된다.
상술한 바와 같은 여분의 열 잉여분이 있다는 가정하에, 이후에 상세히 설명될 종래의 한 기술에서는, 이들 열들 각각은 하나 이상의 멀티플렉서를 통해 외부 열로 향해지며, 이들 멀티플렉서들은 멀티플렉서들에 대한 연속된 제어 입력들 사이에 고정된 퓨즈들에 의해 제어된다. 따라서, 만일 열에 결함이 있다고 판별되면, 결함있는 열이 통신하는데 사용할 수 있는 멀티플렉서를 제어하는 퓨즈는, 입력의 경우에는 결함있는 행이 수신을 못하도록, 출력의 경우에는 정보를 출력하지 못하도록 구성된다(예를 들어, 디스에이블된다). 비록 이러한 방법이 사용될 수 있지만, 많은 결점을 가지고 있다. 예를 들어, 어떤 구성에서는, 하나 이상의 열이 결함을 가지고 있다고 식별되면, 이러한 종래 기술은 한 열만을 메모리 장치의 외부 접속에 도달하는 것으로부터 방지할 수 있기 때문에, 이러한 종래 기술 자체만으로는 불충분한다. 또 다른 예로서, 종래 기술에 필요한 퓨즈의 갯수는 출력 열의 갯수보다 하나 더 많기 때문에, 큰 메모리의 경우, 필요한 퓨즈의 갯수는 이에 대응해서 많아진다. 또 다른 예로서, 퓨즈들은 전형적으로 메모리 장치의 출력 열들 사이에 물리적으로 배향되기 때문에, 메모리 장치의 열들에 비해 상당한 공간을 필요로 한다.
상기와 같은 관점에서, 종래 기술의 여러가지 단점들을 해결하기 위해 메모리 장치에 행 여분 또는 열 여분을 구현하는데 필요한 퓨즈들의 갯수 및 퓨즈들이 차지하는 공간을 줄일 수 있는 향상된 회로, 시스템, 및 방법을 제공하는데 그 목적이 있다. 그리고 이후에 설명되는 본 발명의 실시예들에 의해 종래 기술에 대한 개선이 달성될 수 있다.
방법 실시예에서, 메모리 장치를 동작시키는 방법이 있는데, 이 방법에서는 태그 메모리에 제1 어드레스를 보낸다. 이 제1 어드레스는 태그 메모리에 대응하는 정보 메모리 내의 행을 어드레싱하는 상태로 세트된다. 이 방법에서는 또한, 제1 어드레스에 의해 어드레싱될 정보 메모리 내의 행이 결함이 있는지의 여부가 판별된다. 제1 어드레스에 의해 어드레싱될 정보 메모리 내의 행이 결함이 있다는 판별에 응답하여, 우선, 제1 어드레스를 제1 어드레스와는 다른 제2 어드레스로 변환하고, 그 다음, 태그 메모리 내의 히트(hit) 검출에 응답하여 제2 어드레스로 정보 메모리를 어드레싱한다. 대안적으로, 제1 어드레스에 의해 어드레싱될 정보 메모리 내의 행이 결함이 없다면, 테그 메모리 내의 히트 검출에 응답하여 제1 어드레스로 정보 메모리를 어드레싱한다. 마직막으로, 태그 메모리 내의 미스(miss) 검출시에는, 제1 어드레스에 응답하여 다른 정보 메모리를 어드레싱한다. 여기서, 다른 정보 메모리는 메모리 장치의 계층 구조에서 상기 정보 메모리보다 상위 계층에 있다. 다른 회로, 시스템, 및 방법들이 역시 공개되며 클레임된다.
상기와 같은 배경 하에, 다음의 상세한 설명에는 다양한 실시예들이 제공된다. 그러나, 이들 실시예는 이해를 돕기 위한 것이지, 이들 실시예의 발명적 범위 및 특징을 제한하는 의미는 아니다. 다음과 같은 부주제들 하에 상세한 설명이 이루어질 것이다.
섹션 1 : 메모리 행 잉여분
섹션 2 : 메모리 열 잉여분
섹션 3 : 메모리 행 잉여분과 메모리 열 잉여분의 결합
섹션 4 : 마이크로프로세서 구성
섹션 5 : 결론
1. 메모리 행 잉여분
도 1은 본 발명의 실시예에 따른 마이크로프로세서 메모리 시스템(10)의 블럭도이다. 시스템(10)은 다양한 유형의 마이크로프로세서 구조에 포함될 수 있으며, 이와 같은 구조의 한 예가 도 21과 연계하여 아래에 상세히 기술될 것이다. 그러나 이 시점에서는, 도 1의 메모리 구성 요소가 아닌 마이크로프로세서에 관련된 상세한 사항은 논의를 간단히 하기 위해 도시되지 않으며 또한 설명되지 않는다. 대신에, 이와 같은 논의는 도 21의 상세한 설명때까지 미루어질 것이다.
도 1의 블럭들을 다시 보면, 시스템(10)은 본 분야에 공지된 방식의 메모리 계층, 즉, 최하위층 저장 시스템으로부터 최상위층 저장 시스템으로의 순서로 정보를 판독 및 기록하는 계층 구조를 가진다. 이와 같은 시스템의 최하위 수준에는 L1 캐쉬 회로(12)와 같은 도 1에 도시된 레벨 1 캐쉬 회로가 있다. "L1"은 본 분야에 공지된 바와 같이 메모리 계층 구조에 관한 것임을 가리킨다. 특히, 가장 낮은 숫자를 갖는 캐쉬 회로는 이후에 논의되는 L2 캐쉬 회로와 같은 높은 숫자를 갖는 캐쉬에 비교해 일반적으로 (도시되지 않은) 마이크로프로세서의 실행 장치에 더 가깝다. 게다가, 캐쉬 회로의 숫자 지정은, 특정의 캐쉬로의 기록이나 판독이 이루어질 때 인스트럭션 파이프라인 단계들에 의해 액세싱되는 오름차순의 순서를 제공한다. 따라서, 이와 같은 액세스는 우선 L1 캐쉬 회로에 발생하고, 만일, 이 캐쉬에 캐쉬 미스가 발생하면, L2 캐쉬에 대한 액세스가 발생한다. 이런 식으로, 캐쉬나 다른 메모리 구조 내에 히트가 발생할 때까지 메모리 계층 전체를 통해 액세스가 발생한다. 게다가, 도 1의 시스템(10)은 그 최하위 레벨에 L1 캐쉬 회로(12)를 포함하고 있지만, 도 21에 도시된 바와 같은 어떤 마이크로프로세서들은 L0로 지정되는 더 낮은 수준의 캐쉬를 더 포함할 수도 있다. 그러나, 본 실시예에서 있어서, 도 1의 캐쉬 회로들은 이하에 설명되는 다양한 발명적 특징을 제시하기 위한 근간을 확립하는 것으로서 충분하다.
시스템(10)은 버스(16)를 통해 L1 캐쉬 회로(12)에 접속된 L2 캐쉬 회로(14)를 더 포함한다. 다시 한번, "L2"는 메모리 계층 내에서 이 캐쉬가 L1 캐쉬 회로(12)보다 더 상위임을 나타낸다. 양호한 실시예에서, L2 데이터 캐쉬 회로(14)는 L1 캐쉬 회로(12)보다 바람직하게 더 크다. 예를 들어, 두 캐쉬들의 예시적인 상대적 크기는 L1 캐쉬 회로(12)가 8K바이트의 정보를 저장할 수 있도록 동작가능한 반면, L2 캐쉬 회로(14)는 64K 바이트의 정보를 저장할 수 있도록 동작가능하게 설치될 수 있다. 게다가, L2 캐쉬 회로(14)의 출력 용량은 L1 캐쉬 회로(12)의 용량보다 양호하게는 더 크다. 예를 들어, L2 캐쉬 회로(14)는 한 번에 256 비트(32비트)를 출력하는 반면, L1 캐쉬 회로(12)는 한 번에 128 비트(16바이트)를 출력하도록 동작할 수 있다. L2 캐쉬 회로(14)는 분리된 태그 메모리(18)와 데이터 메모리(20)를 포함한다. 본 분야에서 공지된 바와 같이, 태그 메모리(18)는 캐쉬 어드레스 태그들을 저장하도록 동작할 수 있으며, 이들 태그와 입력되는 어드레스를 비교한다. 본 분야에서 공지된 바와 같이, 만일, 입력되는 태그가 태그 메모리(18) 내의 정합(match, 매치)한다면, 캐쉬 히트가 발생하고, 입력되는 어드레스에 대응하는 정보가 데이터 메모리(20) 내에서 액세싱된다. 데이터 메모리(20)은 "데이터" 메모리라 언급됨에 주목한다. 그러나, 본 명세서 전체를 통해 데이터 메모리는 실제로 정보 메모리임을 이해해야 한다. 즉, 데이터 메모리는 데이터, 인스트럭션, 및/또는 어드레스 변환 테이블과 같은 서로 다른 유형의 정보를 저장할 수도 있다. 그러나, 본 분야에서 통용되는 용어와 더욱 일치시키기 위해, 이후부터 이 메모리는 데이터 메모리라 불릴 것이다. 그러나, 이와 같은 명칭은 이 메모리가 다른 유형의 정보를 저장하는 데에 제한을 주지않는 것으로 이해되어야 한다. 어쨌든, 데이터 메모리(20)을 액세싱하는 과정이 이후에 더욱 상세히 설명될 것이다. 그러나, 이와 같은 논의를 하기 이전에, 양호한 실시예에서, L2 캐쉬 회로(14)는 어드레스 변환 회로(22)를 더 포함하는 것에도 역시 주목해야 한다. 요약하면, 어드레스 변환 회로(22)는 입력되는 어드레스를 수신하여, 대응하는 어드레스를 데이터 메모리(20)에 제공한다. 이후에 광범위하게 논의되는 바와 같이, 어드레스 변환 회로(22)는, 입력되는 어드레스가 결함있는 것으로 알려진 데이터 메모리(20) 내의 저장 행으로 향하는지의 여부에 기초하여, 동일한 유효 입력 어드레스를 데이터 메모리(20)에 출력하거나 이를 다른 어드레스로 변환한다.
도 1의 설명을 끝내면서, L1 캐쉬 회로(14)는, 버스(24)를 통해 버스(B)에 접속된 버스 인터페이스 장치("BIU", 26)에 접속된다. 버스(B)는 시스템(10)을 포함하는 마이크로프로세서로부터 외부로 연장되며, L2 캐쉬 회로(14)보다 메모리 계층 구조에서 상위인(물론, L1 캐쉬 회로(12)보다 상위인) 외부 메모리를 포함하는 마이크로프로세서의 외부의 다른 구성 요소와 시스템(10) 사이의 통신을 제어하고 수행할 수도 있다. 이 시점에서, 마이크로프로세서 외부의 어떠한 추가 요소도 간결한 설명을 위해 상세히 논하지는 않을 것이다. 이와 같은 요소의 예는 도 21의 논의때까지 미룰 것이다.
도 1의 회로의 동작은 도 3 및 도 4에 도시된 추가적인 특징들을 상세히 논의한 후에 더 잘 이해할 수 있을 것이다. 그러나, 이러한 특징들 외에도, 본 발명의 양호한 실시예들은 연속적인 마이크로프로세서 클록 싸이클에 관한 양호한 타이밍에 따라 양호하게 동작하며, 이 양호한 동작은 또한 종래 기술에 대한 추가적인 몇가지 관찰을 통해 보다 잘 이해될 수 있을 것이다. 따라서, 도 1의 어드레스 변환 회로(22)의 양호한 타이밍을 이해하기 위한 배경으로서, 도 2는 도 1과 연계하여 대략적으로 도시된 구조[즉, 어드레스 변환 회로(22)가 없는 구조]에 필적하는 다중-레벨 캐쉬 구조에 대한 종래 기술의 캐쉬 액세싱 방법을 도시한다. 구체적으로, 도 2는 클록 싸이클 t1 내지 t3 동안의 연속적인 이벤트를 도시한다. 여기서, 하위 레벨 캐쉬 미스로 인해 L2 캐쉬 회로(14)로의 액세스가 발생한다. 도 2의 특정 클록 싸이클을 보면, t1 동안, L1 캐쉬 회로(12)에서의 미스를 유발하는 액세스가 도시되어 있다. 이는, L1 캐쉬 회로(12)가 어드레스를 제공받고, 이 어드레스에서 찾고자 하는 정보가 캐쉬 내에 있지 않다는 것을 의미한다. 이에 응답하여, 어떤 타입의 (도시되지 않은) 중재 회로의 제어에 따라, 미스(miss)가 검출되고 t2에서 다음 단계를 유발한다. 특히, t2 동안에, L2 캐쉬 회로(14)로의 액세스가 이루어진다. 그러나, 상기로부터, L2 캐쉬 회로(14)는 L1 캐쉬 회로(12)보다 양호하게는 상당히 크다는 것에 주목한다. 그 결과, 하나의 알려진 방법은, 제1 클록 싸이클에서 L2 캐쉬 회로(14)의 태그 메모리(18)을 액세스하여, 만일 캐쉬 히트가 발생하면, 다음번의 연속된 클록 싸이클 동안에, L2 캐쉬(14)의 데이터 메모리(20)을 액세스하는 것이다. 이러한 동작이 t2와 t3에 도시되어 있다. 여기서, 태그 메모리(18) 내의 히트는 t2 동안에 발생하고, L2 캐쉬(14) 회로의 데이터 메모리(20)로부터의 정보는 t3 동안에 판독된다. 마지막으로, 이 2 싸이클의 프로세스는, 종종 전력을 절약하기 위해, 즉, 캐쉬 미스시에는 L2 캐쉬(14)의 데이터 메모리(20) 전부가 액세싱되는 것을 방지하거나, 캐쉬 히트시에는 L2 캐쉬(14)의 데이터 메모리(20)의 일부만이 액세싱되도록 하기 위해 사용된다는 것을 주목한다.
도 2의 상기와 같은 논의하에, 본 발명자는 2개 클록 싸이클에 걸쳐 캐쉬를 액세싱하는 동작이 메모리 행 잉여분에 있어서 어떻게 이용될 수 있는지를 알아냈다. 이 점에서, 본 발명자는 본 발명의 영역의 특징을 설명하는 다양한 실시예들을 설명한다. 이들은 양호하게 메모리 잉여분에 관련된 추가 동작을 위해 도 2에 도시된 2개 클록 싸이클 중 첫번째 것을 이용한다. 구체적으로, 소개하자면, 2개 클록 싸이클 중 첫번째 싸이클 동안의 이 추가 동작은 도 1의 어드레스 변환 회로에서 수행된다. 일단 이것이 발생하면, 데이터 메모리 액세스가 선행하는 클록 싸이클 동안에 발생한 추가 동작을 이용할 수 있도록, 이 추가 동작의 결과는, 도 2에 도시된 2개 클록 싸이클 중 2번째 싸이클 동안에 사용될 수 있다.
도 3은 도 1의 정보 메모리(20)의 블럭도를 보다 상세히 도시하고 있다. 데이터 메모리(20)는 28에 대략적으로 나타낸 복수개의 저장 행들을 포함한다. 행(28)들의 각각은 선정된 갯수의 비트를 저장하도록 동작하며, 그 갯수는 실제 구현에 따라 광범위하게 변한다(예를 들어, 8비트에서 256비트 이상까지). 이하에서 설명되는 이유로인해, 행(28)들은 1차 행 그룹(30)과 여분 행 그룹(32)으로 구성된 2그룹의 행으로 분할된다.
1차 행 그룹(30)은 각각의 행이 앞서 논의된 정보 비트를 저장할 수 있도록 제조된 행들을 포함한다. 그러나, 이 행들 중 하나가 제조 후에 결함이 있을 수 있다는 것을 이해해야 한다. 양호한 실시예에서, 1차 행 그룹(30)은 2R개의 행들을 포함하며, R은 실제 구현에 따라 선택적인 것이다. 예로서, R=8이고, 1차 행 그룹(30)은 256개의 행을 포함할 수 있다.(즉, 28 = 256) 게다가, 256개 행을 사용한 어떤 행에 대한 행 어드레스가 아래의 더 분명한 이유 때문에 도 3에 도시되어 있다.
여분 행 그룹(32)은 1차 행 그룹(30) 내의 하나 이상의 행이 결함이 있는 경우에 여분으로서 동작하도록 제조된 하나 이상의 행을 포함한다. 현재의 논의를 위해, 여분 행 그룹(32)은 단지 1개의 행을 포함한다고 가정한다. 이후에는 하나 이상의 행의 여분 그룹을 갖는 다른 실시예가 설명된다. 1차 행 그룹(30)에 여분 행 그룹(32)이 추가되어 있다고 한다. 여분 행 어드레스는 양호하게 1차 행 그룹(30) 내의 가장 큰 어드레스보다 1 더 크다. 따라서, 현재의 예에서, 그룹(30) 내의 가장 큰 어드레스는 28 - 1이기 때문에, 이 예에서의 여분 그룹(32)의 행 어드레스는 2R 즉, 28이다. 이러한 양호한 어드레싱 포맷으로부터의 잇점이 이하에서 이해될 것이다.
일반적으로 데이터 메모리(20)은 34로 지정된 복수의 디코더를 더 포함한다. 여기서, 각각의 디코더는 행(28)들 중 하나에 각각 대응한다. 게다가, 이하에 설명되는 바와 같은 다양한 차이점들을 가리키기 위해, 디코더(34)는 2개의 그룹으로 분할되는데, 1차 디코더 그룹(36)은 1차 행 그룹(30)에 대응하고, 여분 디코더 그룹(38)은 여분 행 그룹(32)에 대응한다. 행과 디코더간의 1-대-1 대응으로 인해, 1차 행 그룹(30) 내에 256개의 행들이 있다면, 1차 디코더 그룹(36)은 256개의 디코더들을 포함한다. 마찬가지로, 여분 행 그룹(32) 내에 1개의 행이 있다면, 여분 디코더 그룹(38)은 1개의 디코더를 포함한다. 그룹들(36 및 38) 내의 각각의 디코더는 서로 다른 어드레스에 응답하도록 만들어진다. 즉, 데이터 메모리(20)에 대한 주어진 어드레스는 디코더들 중 하나에만 대응하기 때문에, 단지 대응하는 행만이 이 어드레스에 응답하여 통전된다. 따라서, 종래 기술과는 달리, 여분 행에 대응하는 디코더는 1차 행들 중 하나 내의 디코더와 동일한 어드레스로 디코딩하지 않는다. 또한, 양호한 실시예에서, 각각의 행 디코더는 개별적인 인에이블링 퓨즈를 포함하지는 않는다는 것을 주목한다. 게다가, 1차 디코더 그룹(36)은, 아래에 제시되는 몇 가지 이유 때문에 필요하지 않은 추가 디스에이블링 퓨즈등을 제거하면서, 종래 기술의 원리에 따라 제조될 수 있다는 것을 주목해야 한다. 마지막으로, 1차 그룹(36) 내의 각각의 디코더는 총 2R개의 서로 다른 행들을 구별해야 한다. 결과적으로 각각의 디코더는 R+1 비트의 어드레스를 디코드하도록 구성된다. 예를 들어, R=8인 경우에 대해, 데이터 메모리(28)은 총 257개의 행들(256개의 1차 행 + 1개의 여분의 행)을 포함한다. 따라서, 1차 디코더 그룹(36) 내의 각각의 디코더에는 총 9비트가 필요하다. 여분 디코더 그룹(38) 내의 디코더 제조는 이후에 상세히 설명될 것이다.
도 4는 도 1의 어드레스 변환 회로(22)의 블럭도이다. 어드레스변환 회로(22)는 도 1에 도시된 입력되는 어드레스를 수신하기 위한 입력(40)을 가진다. 입력(40)은 양호하게는 래치등과 같은 저장 장치(42)에 접속된다. 데이터 메모리(20)의 1차 행 그룹(30) 내의 2R개의 행들의 레퍼런스를 사용하여, 입력되는 어드레스는 R 비트를 가질 것이다. 따라서, 이들 비트들 중 첫번째 비트가 0번째 비트이면, 저장 장치(42) 내에 저장된 어드레스는 도시된 바와 같이 비트 0 부터 비트 R-1 까지로 구성될 것이다. 저장 장치(42)의 출력은 비교기(44)의 제1 입력에 접속되며, 어드레스 출력 저장 장치(46)의 하위부(46a)에도 역시 접속된다. 어드레스 변환 회로(22)는, 결함 행 식별 회로(48)를 포함하는데, 아래에 설명되는 바와 같이, 회로(48)는 1차 행 그룹(30) 내의 행들 중 하나에 결함이 있다면 이 결함있는 행의 식별자를 저장한다. 양호한 실시예에서, 식별기 회로(48) 내의 결함있는 행의 엔코딩은 종래 기술에서 어드레스 디코딩 및 행 인에이블링에 사용되는 퓨즈 기술에 대한 것과 유사한 방식으로 퓨즈를 사용하여 이루어진다. 예를 들어, R 비트 어드레스에 대해, 식별 회로(48)는 1차 행 그룹(30) 내의 결함있는 행의 어드레스를 나타내도록 구성된다(예를 들어, 레이저에 의해 녹여진다). 행 식별 회로(48)를 형성하기 위해 다른 구성이 사용될 수 있다는 것에 주목한다. 예를 들어, 다중 비트 레지스터나 단일 비트 레지스터의 조합이 이하에 설명되는 엔코딩 기능을 제공하기 위해 사용될 수 있다. 또 다른 예로서, 랜덤 액세스 메모리나 전기적으로 소거가능한 프로그램가능한 읽기 전용 메모리와 같은 다른 저장 또는 메모리 타입들이 사용될 수도 있다. 역시 또 다른 예로서, 재프로그래밍가능한 저장 구조와 영구 저장 구조의 조합이 행 식별 회로(48)를 위해 사용될 수 있다. 이 점에서, 엔코딩될 적절한 값을 결정하기 위해 테스팅 동안에 재프로그래밍가능한 장치가 사용되고, 일단 이 값이 알려지면, 이 값을 엔코딩하기 위해 영구 저장 구조가 사용되며, 그 후에, 행 식별기 회로(48)의 기능을 수행한다. 어쨌든, 결함행 식별 회로(48)의 출력은 비교기(44)의 제2 입력으로서 접속된다. 게다가, 비교기(44)는 인에이블링 회로(49)로부터 제어 입력을 수신한다. 양호한 실시예에서, 인에이블링 회로(49)는 1차 행 그룹(30) 내에서 결함있는 행이 발견되었는지의 여부를 가리키는 단일 퓨즈를 역시 포함한다. 즉, 1차 그룹(30)이 제조된 후, 그 행들 중 하나에 결함이 있는지의 여부를 판별하기 위해, 공지된 기술을 사용하여 테스팅된다. 만일, 결함이 있다면, 이후에 설명되는 몇가지 이유 때문에, 비교기(44)를 활성화하여 비교기(44)의 동작을 유발하는 것이 바람직하다. 따라서, 이 경우에, 인에이블링 회로(49)의 단일 퓨즈는, 결함있는 행이 확인되었음을 가리키고, 비교기(44)의 기능을 인에이블링하는 한 상태로 구성된다(예를 들어, 역시, 레이저에 의해 녹여진다). 이 기능의 인에이블링은 다양한 기술로써 달성될 수 있다는 것에 주목한다. 예를 들어, 비교 결과는 비교가 인에이블링될 때 세트되는 신호와 논리적으로 AND될 수 있다. 결과적으로, 비교가 인에이블되지 않을 때, 출력은 논리 AND로의 로우(low) 입력에 의해 마스킹(masking)될 것이다. 어떤 경우든, 어떠한 결함있는 행도 발견되지 않는다면, 인에이블링 회로(49)의 퓨즈는 어떠한 결함있는 행도 발견되지 않았음을 가리키는 반대 상태로 구성된다. 따라서, 이 경우에, 비교기(44)의 기능은 인에이블링되지 않는다. 어떤 경우든, 비교기(44)의 출력은 MATCH 신호로서 어드레스 출력 저장 장치(46)의 상위부(46b)에 접속된다. 이에 따라, 도 4의 실시예에서, 상위부(46b)는 하위부(46a)에 결합된 단일 비트로 구성되고, 도 4에 비트 R로서 도시된다. 마지막으로, 출력 저장 장치(46)에 전체적으로 저장된 이 어드레스[즉, 상위부 및 하위부 어드레스 모두(46a 및 46b)]는 어드레스 변환 회로(22)에 의해 출력되어, 도 1에 도시된 데이터 메모리(20)에 접속된다. 게다가, 도 3으로부터 알 수 있는 바와 같이, 비트0 부터 비트R 까지는 데이터 메모리(20)의 디코더들(34)에 접속된다.
도 5는 도 1의 회로에 대한 동작(50) 방법의 플로우챠트로 더 상세한 설명을 준다. 요약하면, 방법(50)의 단계들을 설명하기 이전에, 이 방법(50)은 L1 캐쉬 회로(12)와는 반대로 L2 캐쉬 회로(14)를 액세싱할 때만 해당된다. 따라서, L1 캐쉬(12)로 액세싱한 후 결과적으로 미스가 발생한 경우의 논의는 방법(50)에 나타나 있지 않다. 그러나, 동일한 정보가 L1 캐쉬 회로(12) 내에서 발견될 수 있다면[즉, L1 캐쉬(12)에서 히트가 발생하면], 정보가 궁극적으로 L2 캐쉬 회로(14)로부터 판독될 필요는 없다는 것을 이해해야 한다. 상기와 같은 머릿말은 그만하고, L1 캐쉬 회로(12) 내에 미스가 발생했다는 가정하에, 방법(50)의 단계들이 이하에 상세히 설명되며, 그 다음, 본 발명의 실시예에 따른 이들 단계들의 적용을 설명하는 예가 뒤따를 것이다.
방법(50)은 단계(52)에서 시작하는데, 여기서, 메모리 시스템(10)을 포함하는 마이크로프로세서는 메인 메모리, 또는 캐쉬 메모리 레벨들 중 하나에 저장되어 있을 수 있는 정보에 대한 어드레스를 출력한다. 이 어드레스를 구별하기 위한 목적으로, 이후부터 이 어드레스는 원시 어드레스라고 언급될 것이다. 따라서, 앞서 제시한 바와 같이, 이 원시 어드레스는 L1 캐쉬 회로(12) 내에 히트를 유발하지 않는다고 가정하며, 따라서, 이후부터는 L2 캐쉬 회로(14)의 액세스에 관한 논의가 이루어질 것이다. 방법(50)은 단계(54)로 진행하고, 여기서, 2개의 동시발생적 동작들이 발생한다. 그 한 동작은, 단계(54)가 원시 어드레스를 L2 캐쉬 회로(14)의 태그 메모리(18)에 인가하는 것이고, 이것은 본 분야에서 공지된 원리에 따라 발생할 수 있다. 그러나, 별개의 동작으로서, 단계(54)는 또한 원시 어드레스를 어드레스 변환 회로(22)에도 역시 인가하는데, 이 원시 어드레스는 저장 회로(42)에 저장된다(도 4를 참조한다). 저장 회로(42) 내에 원시 어드레스를 위치시킴으로써, 원시 어드레스는 출력 저장 장치(46)의 하위부(46a)에 복사된다는 것을 주목한다.
단계(56)에서, 어드레스 변환 회로(22)는 비교기(44)의 인에이블링 여부를 판별한다. 즉, 1차 행 그룹 내의 결함있는 행이 식별되었다면 추가적인 동작을 수행하기 위해 어드레스 변환 회로(22)는 비교기(44)를 인에이블링하는 퓨즈와 같은 어떤 메카니즘을 포함하는 인에이블링 회로(49)를 포함한다는 것을 상기한다. 따라서, 단계(56)로부터, 만일, 비교기(44)가 인에이블링되면, 방법(50)은 단계(58)을 계속한다. 반면, 비교기(44)가 인에이블링되지 않으면[즉, 1차 행 그룹(30) 내에 결함있는 행이 없다면], 방법(50)은 아래에 기술되는 단계(62)로 진행한다.
상기로부터, 유효한 결함 행 식별자가 회로(48)에 저장되는 경우에만 단계(58)로 진행한다는 것에 주목한다. 이 경우에, 단계(58)에서, 비교기(44)는 저장 회로(42) 내의 원시 어드레스가 회로(48) 내에 저장된 결함 행 식별자와 정합하는지가 판별한다. 정합된다면, 방법(50)은 단계(60)으로 진행한다. 그렇지 않고, 정합되지 않는다면, 방법(50)은 이하에 논의되는 단계(62)로 진행한다.
결함 행 식별자에 대응하는 원시 어드레스의 정합으로 인해 단계(60)으로 진행한다. 여기서는, 상위부(46b)의 비트를 하이 상태로 셋팅하는 MATCH 신호가 나온다(assert). 단계(54)로부터 하위부(46a)는 원시 어드레스의 복사본으로서 이미 만들어짐을 상기한다. 따라서, 이 시점에서, MATCH 신호를 사용하여 상위부(46b) 내의 비트를 셋팅함으로써, 그리고, 이 셋팅된 비트는 하위부(46a)와 연결되는 최상위 비트로서 결합되기 때문에, 이 단계는 원시 어드레스를 출력 저장 장치(46) 내에서 하위부(46a)와 최상위부(46b)의 결합으로 표시되는 새로운 어드레스로 효과적으로 변환한다. 대안적으로, 만일, 단계(60)이 단계(58)에 의해 바이패싱된다면(즉, 원시 어드레스와 결함 행 식별자 사이에 정합이 발생하지 않는다면), MATCH 신호는 발생하지 않고, 최상위부(46b)의 비트는 로우 상태에 있게 된다. 따라서, 원시 어드레스와 결함 행 식별자 사이에 정합이 발생하지 않는다면 어떠한 어드레스 변환도 발생하지 않으며, 원시 어드레스가 출력 저장 장치(46) 내에 있게 될 뿐이다.
단계(62)는 원시 어드레스에 응답하여 태그 메모리(18) 내에서의 히트 발생 여부를 판별한다. 만일, 히트가 발생하지 않았다면(즉, 미스가 태그 메모리(18) 내에 발생했다면), 방법(50)은 단계(64)로 진행한다. 그렇지 않고, 만일 히트가 발생했다면, 방법(50)은 단계(66)으로 진행한다.
단계들(64 및 66)의 대안적인 동작을 논의하기 이전에, 연속적인 마이크로프로세서 클록 싸이클에 관한 방법(50)의 단계들의 타이밍에 주목한다. 특히, 앞서 설명된 도 2로부터, 연속된 마이크로프로세서 클록 싸이클의 개념과, 이들 주어진 싸이클 동안에 오름차순의 캐쉬 구조를 액세싱하는 개념을 상기한다. 도면으로부터, 본 발명자는 어떤 캐쉬 구조에 대해[예를 들어, L2 캐쉬 회로(14)], 이와 같은 캐쉬로부터 정보가 판독될 때, 2개의 연속된 클록 싸이클, 즉, 일반적으로 태그 메모리에 액세싱하기 위한 제1 클록, 및 일반적으로 데이터 메모리에 액세싱하기 위한 연속된 제2 클록이 필요하다는 것을 인식했다. 도 2에 이들 2개의 클록 싸이클들이 t2 및 t3으로 도시되어 있다. 이러한 상황 하에, 도 5의 단계들(52, 54, 및 62)은 도 2에 있는 t2의 태그 메모리 액세스에 해당되는 것에 주목한다. 따라서, 도 5에서, 단계(62) 이후에 점선이 도시되어 있는데, 이것은 라인 위의 단계들은 양호하게 제1 클록 싸이클 동안에 발생함을 가리킨다. 그러나, 단계들(56, 58, 및 60)도 바로 이 싸이클 동안에 발생함에 주목한다. 즉, 이하에 제시되는 예들로부터 더 잘 알 수 있는 바와 같이, 바로 이 싸이클 동안에 L2 캐쉬 회로(14)의 태그 메모리(18)에 히트가 발생했는지가 검사된다는 것에 주목한다. 만일, 그렇다면, 단계들(56, 58, 및 60)에서 어드레스 변환이 역시 발생할 것이다. 따라서, 점선 아래에서는, 다음번의 연속된 클록이 발생하고, 이 연속된 클록 싸이클 동안에 이후의 단계들이 양호하게 발생한다.
L2 캐쉬 회로(14)의 태그 메모리(18) 내에 어떠한 히트도 없는 때에는 단계(64)에 이른다. 따라서, 종래 기술의 방식에 따라, 단계(64)는 원시 어드레스를 사용하여 마이크로프로세서의 메모리 구조 내에 있는 저장 장치의 다음번 상위 레벨을 어드레싱한다. 예를 들어, 다음번 상위 저장 장치는 추가적인 캐쉬 회로일 수 있다. 대안적으로, 이 다음번 상위 저장 장치는 도 1에 도시된 버스(B)에 결합된 외부 메모리와 같은 메인 메모리일 수 있다. 따라서, 어떤 경우에든, 궁극적으로 원시 어드레스에 있는 정보는 이 정보를 찾는 회로에 의해 사용될 수 있도록 적절한 버스 상에 위치할 것이다.
단계(64)에 대한 대안적인 단계로서, L2 캐쉬 회로(14)의 태그 메모리(18) 내에 히트가 있을 때는 단계(66)에 도달한다는 것에 주목한다. 이 경우에, 단계(66)은 L2 캐쉬 회로(14)의 데이터 메모리(20)을 어드레싱하여 어드레싱된 정보를 출력한다. 게다가, 단계(66)은 데이터 메모리(20)를 어드레싱하기 위해 출력 저장 장치(46)로부터의 어드레스를 사용한다는 것을 주목한다. 데이터 메모리가 출력 저장 장치(46)으로부터의 어드레스로써 어드레싱될 때, 단계(66)에 선행하는 단계들의 대안적인 동작이 주어지는 상기 프로세스에 대한 몇 가지 고찰들에 주목한다. 예를 들어, 어떠한 어드레스 변환도 이루어지지 않았다면(즉, 비교기(44)가 활성화되지 않거나 또는 MATCH 신호가 나오지 않았기 때문에 비트(46b)가 로우 상태로 있게 되면), 출력 저장 장치(46) 내의 어드레스는 어드레싱 목적에 대해 원시 어드레스와 결코 다르지 않다. 즉, 이런 경우에, 출력 저장 장치(46) 내의 어드레스는 이제 (상위부(46b)로부터) 새로운 리딩 제로(leading 0)를 가지며, 리딩 제로가 없는 경우에 어드레싱하는 위치와 동일한 위치를 어드레싱한다. 따라서, 효과적으로 원시 어드레스가 데이터 메모리(20)에 접속되며, 데이터 메모리(20)은 원시 어드레스에 의해 어드레싱되는 1차 행 그룹(30) 내의 행으로부터 정보를 출력한다. 그러나, 이와는 대조적으로, 어드레스 변환이 이루어지는 경우의 효과를 주목한다. 특히, 비교기(44)가 원시 어드레스와 결함 행 식별자 사이에 정합이 있음을 알고 상위부(46b)를 하이로 셋팅함으로써, 이와 같은 변환이 발생된다. 즉, 원시 어드레스는, 변화가 없었다면, 데이터 메모리(20)의 1차 행 그룹(30) 내의 결함있는 행을 어드레싱했을 것이다. 그러나, 셋팅된 최상위 비트로 인해, 데이터 메모리(20) 내의 1차 행 그룹(30) 내의 결함있는 행을 어드레싱하지 않고, 대신, 여분 행 그룹(32) 내의 행을 어드레싱하도록 리-맵핑되는 새로운 어드레스가 출력 저장 장치(46)에서 생성된다.
이와 같은 상황 하에서, 결함있는 행으로 향하는 원시 어드레스가 일단 변환되고 나면, (비트 R의 위치에 있어서) 최상위 비트로서 논리 1을 가질 것임을 당업자는 알 수 있을 것이다. 이러한 효과를 인식하면서, 도 3으로 되돌아가, 특히 여분 디코더(38)에 주목한다. 여분 디코더(38)은 2R의 어드레스를 갖는 행에 대응한다는 것을 상기한다. 따라서, 종래의 설계하에, 여분 디코더(38)은 행 어드레스 2R-1보다 1 더 큰 어드레스를 디코딩하도록 셋팅될 것이다. 예를 들어, 앞서 제시한 바와 같이 R=8을 사용하여, 여분 디코더(38)은 어드레스 100000000를 디코딩하도록 세팅될 것이다. 더우기, 상기 동일한 약속 하에, 여분 디코더(38)은 어드레스 R+1 비트를 디코딩하도록 구성될 것이다. 그러나, 상기 논의로부터, 2R의 어드레스를 갖는 행은 최상위 비트("MSB")가 1인 어떠한 경우에도 여분으로서 사용되도록 어드레싱될 수 있다는 것을 이 분야의 통상의 지식을 가진 자는 알 것이다. 즉, MSB가 아닌 다른 모든 비트들은 여분행을 어드레싱할 목적과는 관련없다. 이는 만일, MSB가 세트되면, 여분 행(32)가 어드레싱됨이 알려지기 때문이다. 결과적으로 여분 디코더(38)은 비트0 내지 비트R-1을 무시하도록 구성되며, MSB(즉, 비트 R)이 1일 때만 응답하도록 구성될 것이다. 이 경우에, 일단 어드레스 변환 회로는 비트 R을 1로 세트할 것이고, 변환된 어드레스는 비트 R이 1이기 때문에 원시 어드레스와는 다른 것으로 검출될 것이다. 따라서, 변환된 어드레스는 원시 어드레스가 어드레싱하는 결함있는 행말고 여분 행을 어드레싱하도록 리-맵핑된다.
상기와 같은 규칙을 더 설명하기 위해, 원시 어드레스가 결함있는 행을 어드레싱하기 때문에 원시 어드레스가 변환되어지는 예가 제공될 것이다. 따라서, 데이터 메모리(20)을 제조한 후에, 1차 그룹(30) 내에 어드레스 00001111을 갖는 행이 결함을 가지고 있는 것으로 판별되었다고 가정한다. 이에 따라, 인에이블 회로(49)는 어드레스 비교를 인에이블하도록 세팅되고, 결함있는 행의 어드레스(즉, 00001111)는 결함행 식별 회로(48) 내에 저장된다. 다음으로, 마이크로프로세서는 원시 어드레스로서 어드레스 00001111을 출력하고, 이 어드레스가 L1 캐쉬 회로(12) 내에서 미스를 유발한다고 가정한다. 이에 따라, 이 원시 어드레스는 L2 캐쉬 회로(14)로 출력되어 방법(50)의 단계들을 개시한다. 제1 클록 싸이클 동안에, 단계(54)는 어드레스 00001111을 태그 메모리(18)에 인가한다. 동일한 클록 싸이클 동안에, 인에이블링 회로(49)로 인해 어드레스 비교가 인에이블링되기 때문에, 원시 어드레스 00001111은 비교기(44)에 의해 결함 행 식별 회로(48) 내의 식별자와 비교된다. 현재의 예에서, 원시 어드레스와 결함있는 행 어드레스 사이에 정합이 있다면, 비교기(44)는 MATCH 신호를 만들고 새로 세트된 MSB를 원시 어드레스에 결합하여, 0000111로부터 100001111로 효과적으로 변환한다. 원시 어드레스가 태그 메모리(18) 내에서 히트를 유발한다고 가정하면, 다음번 싸이클에서, 변환된 어드레스가 디코더(34)에 인가된다. 어드레스가 변환되었기 때문에, 결함있는 행 어드레스 00001111에 대응하는 디코더는 대응하는 행을 통전하지 않을 것이다. 이는, 변환된 어드레스가 더 이상 결함있는 행 어드레스와 정합하지 않기 때문이다. 대신에, 변환된 어드레스 내의 세트된 MSB로 인해, 여분행(32)에 대응하는 디코더가 대신에 통전되어, 어드레싱된 정보를 출력하기 위해 여분행을 액세스하게 된다.
상기의 원리를 더 설명하기 위해, 앞에서의 예시적 어드레스 00001111이 이제 다시 한번 방법(50)을 통해 처리된다. 그러나, 결함있는 행을 어드레싱하지 않기 때문에 원시 어드레스가 변환되지 않는 예가 설명된다. 따라서, 데이터 메모리(20)을 제조한 후에, 결함있는 행이 확인되고, 그것이 어드레스 00000011을 가진다고 가정한다. 이에 따라, 다시 한번, 인에이블 회로(49)는 어드레스 비교를 인에이블하도록 세팅되고, 결함있는 행의 어드레스(즉, 00000011)은 결함행 식별 회로(48) 내에 저장된다. 다음으로, 마이크로프로세서는 원시 어드레스로서 어드레스 00001111을 출력하고, L1 캐쉬 회로(12) 내에 미스가 있다고 가정한다. 이에 따라, 제1 클록 싸이클에서, 단계(54)는 비교기(44) 뿐만 아니라 태그 메모리(18)에 어드레스 00001111을 제공한다. 이에 응답하여, 원시 어드레스 00001111은 결함행 식별 회로(48)에 저장된 결함행 식별 어드레스 00000011과 비교된다. 따라서, 원시 어드레스와 결함행 어드레스 사이에 정합이 있지 않다면, 비교기(44)는 MATCH 신호를 출력하지 않는다. 따라서, 원시 어드레스 00001111은 변하지 않고 단지 0인 새로운 MSB와 결합되어, 결과적으로 어드레싱 신호를 이제 000001111로 둔다. 원시 어드레스가 또한 태그 메모리(18) 내에서 히트를 발생시킨다고 가정하면, 다음번 클록 싸이클에서, 효과적으로 변경되지 않은 어드레스가 디코더(34)에 제공된다. 어드레스가 변환되지 않았기 때문에, 행 어드레스 000001111에 대응하는 디코더는 1차 그룹(30) 내의 적절한 행을 통전시켜, 어드레싱된 정보를 출력하기 위해 상기 1차 행을 액세싱한다.
상술한 바와 같이, 당업자는 본 발명의 실시예로부터 종래 기술을 능가하는 많은 잇점들을 이해할 수 있을 것이다.
예를 들면, 결함 행 어드레스를 엔코드하는데 요구되는 휴즈(또는 다른 유사한 디바이스)의 갯수는 입력되는 어드레스를 여분 행에 디코드하기 위해 1차 행마다 하나의 휴즈 및 부가적인 휴즈들을 필요로 하는 종래의 기술 구성에서 요구되는 갯수보다 훨씬 적다. 또 다른 예로서, 휴즈들(또는, 다른 유사한 디바이스들)의 위치는 각각의 행을 따라 배치되는 것보다는 공통된 위치에 배치되어, 구성 및 설계 사항들을 개선할 수 있다. 다른 다양한 신축성있는 방법 및 본 발명의 범위의 대체물을 포함하여, 또 다른 잇점들이 이 기술 분야의 숙련자에 의해 이해될 것이며, 그 일부가 이하의 부가적인 실시예들에서 제시된다.
도 6은 하나 이상의 여분 행이 상술된 개념의 어드레스 변환 및 행 어드레싱과 관련하여 사용될 수 있는 대안적인 실시예를 도시한다. 더 상세하게는, 도 6은 도 4 및 도 3에서와 같은 어드레스 변환 회로(22) 및 데이터 메모리(20)를 각각 도시하지만, 다중 여분 행들을 수용하기 위해 회로들의 다양한 특징들을 더 변경한다. 따라서, 상술한 도면들로부터의 유사한 소자들이 사용되는 경우에는 공통된 참조 번호들이 사용된다. 그러나, 다른 특징들의 경우에는, 이하에 설명되는 바와 같이, 다른 참조 범호가 도 6에 도입된다.
도 6에서의 데이터 메모리(20)를 참조하면, 데이터 메모리는 일반적으로 68에 명시된 다수의 저장 행들을 역시 포함한다는 것을 알아야 한다. 이들 행들은 1차 행 그룹(30) 및 여분 행 그룹(70)을 포함한다. 여분 행 그룹(70)은 상술한 실시예에서는 단지 한개의 행을 포함하는데 반해 이 실시예에서는 두개의 행들을 포함한다. 따라서, 이하에 설명으로부터 알 수 있듯이, 두개의 결함 행까지는 1차 행 그룹(30)에서 식별될 수 있으며, 이들 중 각 하나는 그룹(70)의 두개 여분 행들 중 한 행에 리-맵핑될 수 있다. 데이터 메모리(20)는 여분의 저장 행들(68) 각각에 대한 단일 디코더를 구비한, 72에서 대략적으로 표시된 복수의 디코더들을 포함한다. 더우기, 디코더는 1차 행 그룹(30)에 대응하는 1차 디코더 그룹(36) 및 여분 행 그룹(70)에 대응하는 여분 디코더 그룹(74)의 두 그룹으로 역시 분할된다. 그룹(36)의 구조는 상술한 바와 같다. 그룹(72) 내의 디코더들의 구조는 나중에 설명된다.
도 6의 어드레스 변환 회로(22)를 참조하면, 어드레스 변환 회로는 원시 어드레스를 저장 회로(42)에 접속하기 위한 입력단(40)을 또 포함한다. 도 6에서, 저장 회로(42)의 출력단은 어드레스 출력 저장 디바이스(76)의 제1 부분(76a)에 접속된다. 부수적으로, 저장 회로(42)의 출력단은 두개의 분리된 비교기들(44a 및 44b)의 입력단에 접속된다. 비교기(44a)는 결함 행 식별 회로(48a)로부터의 제1 결함 행 식별자를 제2 입력단으로부터 수신하기 위해 접속되는 반면에 비교기(44b)는 결함 행 식별 회로(48b)로부터의 제2 결함 행 식별자를 제2 입력단으로부터 수신하기 위해 접속된다. 더우기, 비교기들(44a 및 44b) 각각은 대응하는 인에이블 회로들(49a 및 49b) 각각에 응답하여, 그 비교 기능을 인에이블시키기 위해 접속된다. 비교기(44a 및 44b)의 출력단은 OR 게이트(78)의 입력단에 연결된다. OR 게이트(78)의 출력단은 어드레스 출력 저장 다바이스(76)의 제2 부분(76b)에 MATCH 신호를 제공하기 위해 접속된다. 더우기, 비교기(44a)의 출력단은 또한 어드레스 출력 저장 디바이스(76)의 제3 부분(76c)의 입력단에 접속된다. 마지막으로, 본 실시예에서, 이하의 보다 명백한 이유 때문에 어드레스 출력 기억 디바이스(76)의 제1 및 제2 부분(76a 및 76b) 만이 바람직하게 디코더 그룹(36)에 각각 연결되고, 제2 및 제3 부분(76b 및 76c) 만이 여분 디코더 그룹(74)에 각각 연결된다.
도 6의 동작은 이하에 언급되는 약간의 추가 설명과 함께 도 5의 방법(50)을 다시 참조하여 이해될 수 있다. 따라서, 도 3 및 도 4와 비교할 때 도 6의 부가적 또는 대체적 특징에 대한 다음의 쟁점을 따라가면서 독자는 상기 논의에 대해 잘 아는 것으로 가정한다. 동작시, 도 6의 회로는 일반적으로 방법(50)을 따르지만, 원시 어드레스를 갖는 옵션이 두개의 여분 행들 중 한 행에 리-맵핑되도록 해준다. 또한, 원시 어드레스는 레지스터(42)에 로드되고, 여기서 상기는 저장 디바이스(76)의 제1 부분(76a)에 복사된다. 다음에, 각각의 비교기(44a 및 44b)가 대응하는 인에이블 회로(49a 및 49b)에 의해 인에이블된다고 가정할 때, 원시 어드레스는 비교기(44a 및 44b) 둘 중 하나 또는 둘다에 의해 식별 회로들(48a 및 48b)의 대응하는 결함 행 식별자와 비교될 수 있다. 상기에 의하면, 이 기술 분야의 숙련자는 도 6의 데이터 메모리(20)가 제조된 후, 제1 결함 행이 식별될 수 있고(공지된 기술을 사용하여), 그 어드레스가 회로(48a)에 저장되고, 비교가 인에이블 회로(49a)에 의해 인에이블될 수 있다는 것을 알 것이다. 부수적으로, 제2 결함 행이 식별되고(공지된 기술을 사용하여), 그 어드레스가 회로(48b)에 저장되고, 비교가 인에이블 회로(49b)에 의해 인에이블될 수 있다. 비교기(44a 또는 44b)가 MATCH 신호를 내보내면, OR 게이트(78)의 출력이 나오고, 이로 인해 어드레스 출력 저장 디바이스(76)의 제2 부분(76b)이 정해진다. 제1 및 제2 부분(76a 및 76b)은 데이터 메모리(20)에 접속된다는 것을 상기로부터 기억해야 한다. 그 결과(태그 정합을 가정한다면), 변경되지 않은 원시 어드레스가 1차 행 그룹(30)의 행들 중 한 행을 액세스하기 위해 접속되거나, 또는 그 원시 어드레스가 리-맵핑되었다면, 결함 행을 어드레스하지 않기 위해 접속된다. 이와 같이 여분 행을 어드레싱하는 부가적인 특징들이 이하에 설명된다.
상기로부터, 제2 부분(76b)(즉, 비트 R)은 대응하는 행이 현재 어드레스에 의해 액세스되어야 한다는 것을 1차 디코더 그룹(36) 또는 여분 디코더 그룹(74)에 지시하는 표시로서 효과적으로 동작한다는 것을 알아야 한다. 구체적으로, 상기 예에서, 제2 부분(76b)이 세트되지 않는다면, 1차 디코더 그룹(36) 내의 디코더는 그에 대응하는 행을 활성화시키는데, 제2 부분(76b)이 세팅된다면, 여분 디코더 그룹(74) 내의 디코더가 그에 대응하는 행을 활성화시킨다. 도 4의 실시예에서, 또한 이 유일한 추가 비트는 유일한 여분 행을 어드레스하는 토대로 제공된다. 그러나, 도 6의 실시예에서, 두개의 여분 행들이 있기 때문에, 일단 원시 어드레스가 결함 행을 가리킨다고 판단되면 그 여분 행들 중 어느 것이 어드레스되어야 한다고 지시하는데에 적어도 하나의 부가적인 표시자가 필요하게 된다. 이에 따라, 바람직한 실시예에서, 저장 다바이스(76)의 제3 부분(76c)은 이 부가적인 표시를 제공하여, 여분 행들 중 한 행을 어드레스하기 위해 "어드레스"의 일부 신호로서 여겨질 수 있다. 더 구체적으로는, 제2 부분(76b) 및 제3 부분(76c) 모두가 여분 디코더 그룹(74)에 접속된다는 것을 상기로 부터 기억해야 한다. 따라서, 이 두 비트들의 조합에 기초하여, 여분 행 그룹(74)의 두개의 행들 중 한 행이 대응하는 디코더에 의해 어드레스될 수 있다. 예를 들어, 한가지 방법이 다음의 표 1과 같이 도시된다.
여분 행 어드레스 제2 부분(76b) 제3 부분(76c)
2R 1 1
2R+1 1 0
따라서, 표 1에 의하면, 여분 디코더 그룹(74)은 그 그룹의 각 디코더가 두 비트들(즉 제2 및 제3 부분(76b 및 76c)) 만을 수신하고, 그리고 도시된 바와 같이 적당한 여분 행을 어드레스하기 위해 그 비트들을 디코드하도록 구성될 수 있다. 상기 예에서, 제2 부분(76b)이 세트되고 MATCH 신호가 나왔다면, 이에 따라 두개의 여분 행들 중 한 행이 어드레스되어야 한다. 더우기, 제2 부분(76b)이 세트되면, 제3 부분의 값은 어드레스 2R을 갖는 행이나 또는 어드레스 2R+1을 갖는 행 중 하나를 활성화시킬 것이다. 이에 따라, 상기 어느 경우에도, 원시 어드레스는 두개의 여분 행 어드레스들 중 한 행에 리-맵핑된다.
도 6의 상기 대안적 실시예는 임의의 정수들과 함께 S 여분 행들로서 표현되는데 토탈 둘 이상의 임의의 정수개의 여분 행들을 포함하도록 이 기술 분야의 숙련자에 의해 더 변경될 수 있다. 더 구체적으로는, 각각의 여분 행에 대해, 식별 회로(48), 비교기(44), 인에이블 회로(49), 및 디코더가 추가될 수 있다. 따라서, 이러한 택일적 실시예는 S 식별 회로(48), S 비교기(44), S 인에이블 회로(49), 및 여분 디코더 그룹(74) 내의 S 디코더를 포함한다. 더우기, S 비교기(44) 각각의 출력단은 논리 OR 게이트(78)의 입력단에 연결된다. 이에 따라, 이에 대해, 임의의 S 비교기(44)가 정합을 검출한다면, 제2 부분(76b)이 세팅되고 그것에 의해 본래 어드레스되려던 1차 행 그룹 내의 행을 어드레스하지 않고 원시 어드레스를 리-맵핑하도록 MATCH 신호가 나오게 된다. 이에 따라, 여분 행의 수를 둘 이상인 S만큼의 S행들로 확장시킴으로써, 일단 원시 어드레스가 리-맵핑되면 적절한 여분 행을 선택하는데 추가 기술이 필요하다. 이에 따라, 한가지 방법에서는, S 비교기(44)의 각 출력단이 S개의 대응하는 여분 디코더들 중 하나에 접속될 수 있다. 따라서, 비트 R이 세팅되는 경우에, 그에 대응하는 비교기(44)로부터 나온 출력을 또한 수신하는 여분 디코더는 이 때 그에 대응하는 여분 행을 할성화시킨다. 대안적인 것으로서, S 비교기들 각각의 출력들은 모든 여분 디코더들에 의해 디코드되는 방식의 신호로서 엔코드될 수 있어, 그 결과 적절하고 대응하는 여분 행 만이 상기 디코드된 신호에 응답하여 활성화된다. 이에 따라, 이 경우, 본 기술 분야의 숙련자는 어떻게 상기 실시예가 주어진 메모리 구조에 대해, 하나, 둘 또는 둘 이상의 여분 행들을 갖도록 구현될 수 있는지를 이해할 것이다.
도 7은 또 다른 실시예의 블럭도를 도시한 것으로서, 행 블럭 내의 결함있는 행은 여분 행 블럭 내의 여분 행에 리-맵핑될 수 있다. 더 구체적으로는, 상기 대안적인 실시예들에서와 같이, 상술한 도면에서의 유사한 소자에는 도 7에서도 공통된 참조 번호가 사용된다. 그러나, 다른 특징들에 대해서는, 이하에 설명되는 바와 같이 다른 참조 번호가 도입된다.
도 7의 데이터 메모리(20)를 참조하면, 데이터 메모리는 2R 행들을 갖는 1차 행 그룹(80), 및 여분 행 그룹(82)을 포함한다는 것을 역시 알아야 한다. 그러나, 도 7의 실시예에 있어서, 1차 행 그룹(80)은 840 내지 84B로 표시된 복수의 행 블럭들로서 그룹지어진다. 예를 들어, R이 8(즉, 256개 1차 행들)이고, 각각의 블럭(84)이 4개의 행을 갖는다고 가정한다. 이에 따라, 1차 행 그룹(80)은 64개의 블럭들을 포함하는데, 각각의 블럭이 4개의 1차 행들을 갖는다. 더우기, 여분 행 그룹(82)은 또한 1차 행 그룹(80)의 블럭들에서와 동일한 갯수의 행들을 갖는 블럭으로 구성된다는 것을 더 알아야 한다. 또한 본 예의 경우, 여분 행 그룹(82)이 단일 블럭(즉, 4개의 여분 행들) 만을 포함한다고 가정하지만, 다른 대안적인 실시예에서는 이 기술 분야의 숙련자에 의해 알 수 있듯이 하나 이상의 블럭들을 또한 포함할 수 있다. 마지막으로, 1차 행 그룹(80)과 여분 행 그룹(82) 각각은 또한 대응하는 디코더 그룹을 갖기 때문에, 1차 디코더 그룹(86)과 여분 디코더 그룹(88)을 각각 제공한다는 것을 알아야 한다. 이하에 설명되는 이유로 인해, 각각의 디코더 그룹 내에서는, 바람직하게 그 그룹 내의 각 행에 대한 단일 디코더가 있다.
도 7의 어드레스 변환 회로(22)를 참조하면, 두가지 면에서 도 4의 어드레스 변환 회로(22)와 차이가 있다는 것을 주목한다. 우선, 도 7에서, 어드레스 변환 회로(22)는 상술한 바와 같은 단일 행 식별자말고 비교기(44)의 제2 입력으로 접속된 결함 블럭 식별 회로(90)를 포함한다. 둘째로, 저장 디바이스(42)로부터 두개의 최하위 비트들 이외에 모든 비트들은 제1 입력으로서 비교기에 접속되는데, 도 4에서는 저장 디바이스(42)로부터의 모든 비트들이 비교기(44)에 접속된다. 이하에 언급되는 동작 설명으로부터 이 차이의 목적과 잇점을 알 수 있다.
도 7에 있는 구성 요소들의 동작은 상술한 다양한 특징들 및 많은 면에서 비교가능하고, 독자는 상술한 설명을 잘 아는 것으로 가정한다. 하지만 일반적으로 상술한 바와 같은 단일 행을 기본으로 하는 것과는 반대로 도 7의 실시예는 블럭을 기본으로 결함 행을 리-맵핑할 수 있다. 다시 말해서, 데이터 메모리(20)가 제조된 후, 블럭(840 내지 84B)의 행들 중에 결함이 있는지의 여부가 판단된다. 이 경우에, 블럭 식별자는 결함 블럭 식별자 회로(90)에 저장된다. 도 4의 식별 회로(48)의 경우에서와 같이 휴즈에 의한 식별이 가능해질 수 있다. 그러나, 여기서 단일 행보다는 행 블럭에 대해 논의 중이기 때문에, 블럭 어드레스는 행 어드레스보다 적은 수의 비트를 필요로 한다. 본 예의 4개의 행을 갖는 블럭의 경우에, 블럭 식별자는 바람직하게 그 두개의 최하위 비트들을 제외한 결함 행 어드레스이다. 예를 들면, 1차 행 그룹(80) 내의 어드레스 00001111을 갖는 행이 결함인 것으로 판단되면, 000011의 블럭 어드레스는 결함 블럭 식별 회로(90)에 저장된다. 더우기, 상기 실시예에 따라, 인에이블 회로(49)는 어드레스 비교를 인에이블시키기 위해 설정된다. 그 다음에, 입력되는 어드레스가 저장 디바이스(42)에 수신될 때, 이 블럭 어드레스(즉, 비트[R-1:2])는 회로(90) 내의 블럭 식별자와 비교된다. 또, 정합이 발견되면, MATCH 신호가 나오게되어, 출력 저장 디바이스(46) 내의 비트 R을 세팅한다. 이에 따라, 출력 저장 디바이스(46)로부터의 총 어드레스가 데이터 메모리(20)에 접속될 때, 결함 행을 어드레스하지 않도록 리-맵핑될 것인데, 그렇지 않았더라면 결함행이 어드레스되었을 것이다.
도 7의 상기 설명이 주어졌으므로, 약간의 부가적인 설명이 여기에 도시된 데이터 메모리(20)와 관련된 어드레스의 디코딩에 대해서 되게 한다. 1차 디코더 그룹(86)에 대해서, 상기 실시예들에서와 같이, 그 그룹의 각 디코더는 공지된 기술을 사용하여 R+1 비트 어드레스를 1차 행 그룹(86) 내의 2R개 행들 중 한 행에 디코드하도록 구성될 수 있다. 그러나, 여분 디코더 그룹(88)에 대해서, 행의 블럭 내의 개별 행을 어드레스할 필요가 있기 때문에 도 3과 관련하여 설명된 것 이외에 디코딩이 요구된다는 것을 알아야 한다. 더 상세하게는, 도 4에서처럼, 도 7의 실시예에서 각각의 여분 디코더는 출력 저장 디바이스(46)로부터 비트 R을 수신한다. 그러나, 또한, 각각의 여분 디코더는 여분 행 그룹(82) 내의 여분 행들 중 적절한 하나의 행을 활성화시키기 위해 충분한 정보를 수신해야 한다. 한 실시예에서, 이 정보는 출력 저장 디바이스(46)로부터의 정수 L개의 최하위 비트들에 의한 것인데, 여기서 L은 log2(블럭 내의 행의 수)이다. 따라서, 현재의 예에서, L이 log2(4)이므로 2인, 출력 저장 디바이스(46)로부터의 비트들 [1:0]은 또한 각각의 여분 디코더에 접속된다. 따라서, 출력 저장 디바이스(46)로부터의 비트 R은 각각의 여분 디코더에 의해 디코드되어, 입력되는 어드레스가 행의 여분 블럭에 리-맵핑된다는 것을 나타내고, L개의 최하위 비트들은 여분 블럭 그룹(82) 내의 행들 중 한 행을 선택하기 위해 디코드된다. 이 기능에 의하면, 공지된 디코딩 구조들이 적절한 제어를 수행하도록 구성될 수 있다. 대안적인 실시예로서, L 비트들 각각이 단일 디코더에 접속될 수 있는데, 이 디코더는 L개 입력 비트들의 가능한 조합에 기초하여 신호를 여분 행들 중 한 행에 출력하여 그 행을 활성화시킨다.
도 7의 상기 설명에 의하면, 이 기술 분야의 숙련자는 본 발명의 범위가 결함 행을 여분 행에 블럭-지향 리-맵핑하는 것을 또한 포함한다는 것을 알 것이다. 이 대안적인 것은 임의의 부가적인 잇점 뿐만 아니라, 상기로부터 다양한 잇점을 제공한다는 것을 알아야 한다. 예를 들면, 도 7의 실시예는, 모두 4개의 결함있는 행들이 동일한 행 그룹 내에 있는 경우, 단지 단일 행에 대해서가 아니라 4개까지의 결함 행들에 대해 여분 행에의 리-맵핑을 허용한다. 다른 예로서, 도 7의 실시예는 4개의 행이 아닌 블럭 크기로 확장될 수 있다. 또한, 도 6은 어떻게 도 4의 회로가 다중 행들을 구현하도록 변경될 수 있는 지를 도시한다는 것을 기억해야 한다. 유사하게, 이런 사항을 도 7의 것과 조합함으로써, 이 기술 분야의 숙련자는 하나 이상의 여분 블럭으로의 리-맵핑을 허용하기 위해 도 7을 또한 변경할 수 있다. 여전히 부가적인 잇점들과 예들은 이 기술 분야의 숙련자에 의해 명백해질 것이다.
도 8a는 본 발명의 범위 내에 있는 또 다른 실시예를 도시한 것으로, 상술한 다양한 실시예들과 함께 다양한 원리들을 공유한다. 그러나, 그 복잡성과 약간의 차이로 인해, 새로운 참조 범호가 도 8a의 전체에 걸쳐 사용되지만, 이 기술 분야의 숙련자는 다음의 용어 뿐만 아니라 그 접속으로부터 그 아이템들이 상기 다양한 실시예와 함께 공통된 특징들을 공유한다는 것을 알 것이다. 도 8a를 참조하면, 상기 도면은 L2 캐쉬 회로(14)에 관해서 도 1에 도시된 것과 같은 방식으로, 캐쉬 회로에 포함될 수 있고 어드레스 변환 회로(94)로부터 어드레스를 수신하기 위한 데이터 메모리(92)를 도시한다. 그러나, 더 복잡하지만 유용한 구현으로서, 데이터 메모리(92)는 BANK0 내지 BANK3으로 표시된, 메모리의 4개의 다른 뱅크들을 포함한다. 또한, 각각의 뱅크 내에는, 저장 행들이 이 기술 분야에 공지되어 있듯이 다른 "웨이들(ways)"로 분할된다. 본 예에서는, 이러한 각 BANK가 이러한 4개의 웨이들로 분할된다고 가정하여, 데이터 메모리(92)는 4-웨이 세트 연관(4-way set associative)이라 한다.
데이터 메모리(92)의 각 BANK는 일반적으로 각각의 BANK가 각각 어드레스될 수 있도록 다른 디코더를 갖는 유사한 방법으로 구성되어, 전체적으로 BANK들은 단일 BANK에 저장되는 정보량의 총 4배를 저장한다. BANK들의 유사한 소자들을 더 잘 이해하기 위하여, 참조된 아이템이 속하는 뱅크를 표시한 아랫첨자를 사용하여 유사한 참조 번호가 각각의 BANK에 사용된다는 것을 주목한다. 따라서, 각각의 뱅크가 구성되는 방법의 예로서 BANK0을 참조하면, 이것은 이 기술 분야에 공지된 바와 같이 감지 증폭기 라인 960에 의해 분리되는 최상부 반쪽과 최하부 반쪽을 포함한다. 감지 증폭기 라인 960는 BANK0의 최상부 또는 최하부 반쪽 중 하나로 주어진 웨이로부터 정보를 판독하여, 데이터 메모리(92)로부터 그 정보를 출력하도록 활성화될 수 있다. 그러나, 이 공지된 구성 이외에, 상기 실시예들과 양립하는 회로가 있다. 상세하게는, BANK0의 최상부 반쪽은 1차 행 그룹과 여분 행 그룹을 포함한다. 따라서, BANK0의 최상부 반쪽은 1차 행 그룹 98T0을 포함하는 반면에 BANK0의 최하부 반쪽은 1차 행 그룹 98B0을 또한 포함한다. 바람직한 실시예에서, 각각의 1차 행 그룹은 128행들을 포함하는데, 각각의 행은 512비트(즉, 64바이트)의 정보를 저장할 수 있다. 유사하게, BANK0의 최상부 반쪽은 여분 행 그룹 100T0을 포함하는 반면에 BANK0의 최하부 반쪽은 여분 행 그룹 100B0을 또한 포함한다. 바람직한 실시예에서, 각각의 여분 행 그룹은 단일 행을 포함하지만, 상술한 바와 같이 기술 분야의 숙련자에 의해 그 갯수는 증가될 수 있다. 마지막으로, BANK0은 도시되어 있지는 않지만 각각의 행에 대한 개별 디코더를 포함하는 행 디코더 1030의 열을 포함하여, 1차 행 및 여분 행 각각에 대한 개별 디코더를 포함한다. 상술한 바와 같이, 데이터 메모리(92)의 나머지 뱅크는 BANK0과 동일한 방식으로 구성되어, 이 기술 분야의 숙련자는 유사한 번호들(다른 아랫첨자로)로부터 그들 뱅크들의 다양한 구성 요소의 관계를 용이하게 이해할 수 있다.
어드레스 변환 회로(94)는, 일반적으로 원시 어드레스가 결함 행을 가리켰다면 데이터 메모리(92)에 의도된 어드레스를 원시 어드레스에서 리-맵핑된 어드레스로 변환시킬 수 있다는 점에서 상기 실시예 중 일부와 공통된 특징을 공유한다. 그러나, 어드레스 변환 회로(94)의 차별성과 복잡성 뿐만 아니라, 이 공통된 특징을 더 이해하기 위하여, 어드레스 변환 회로는 먼저 데이터 메모리(92)의 메모리 뱅크의 구성이 제공된 어드레스 변환 회로에 의해 수신되는 바람직한 포맷의 어드레스를 평가하는데 유리하다. 이 점에 관해서, 도 8b는 이러한 어드레스의 포맷을 도시한다. 다음에 도 8b를 참조하면, 도시된 어드레스가 32비트 신호이고 5개의 부분들을 포함한다는 것을 알아야 하며, 그 각각의 부분은 다음과 같다. 어드레스의 제1 부분은 바이트 오프셋이며, 이것은 데이터 메모리 BANK의 행 내의 바이트들 중 하나를 어드레스할 수 있다. 각각의 행은 64바이트를 저장한다는 것을 기억해야 한다. 따라서, 상기 제1 부분은 6비트폭(즉, 26=64바이트)이다. 어드레스의 제2 부분은 뱅크 식별자("i.d.")이다. 데이터 메모리(92)가 총 4개의 뱅크들을 포함한다는 것을 상기한다. 따라서, 어드레스의 제2 부분은 2비트폭(즉, 22=4뱅크)이다. 어드레스의 제3 부분은, 상기 뱅크인 경우 어드레스가 뱅크의 최상부 반쪽 또는 최하부 반쪽에 대응하는지의 여부를 지시한다. 따라서, 그 지시가 두가지 가능성중 단지 하나이기 때문에, 제3 부분은 1비트폭(즉, 21=2 가능한 반쪽)이다. 어드레스의 제4 부분은 라인 어드레스이다. 데이터 메모리(92)의 각 BANK의 각 반쪽이 총 128개의 1차 행을 포함하고, 그들 행들이 다른 4개의 웨이로 분할된다는 것을 기억해야 한다. 따라서, 이 제4 부분은 5비트폭(즉, 25=32행*4웨이=128행)이다. 어드레스의 제5 부분은 태그 어드레스인데, 나머지 17비트의 어드레스를 포함한다. 이 태그 어드레스는 데이터 메모리(92)에 대응하는 태그 메모리(도시되어 있지 않음)를 어드레스하는데 사용되는 것으로서, 상술한 바람직한 타이밍에 따라, 이하에 설명되는 바와 같이, 어드레스 변환 회로(94)의 동작과 동일한 클록 싸이클 동안 실현될 수 있다. 더우기, 캐쉬 기술에 공지된 바와 같이, 태그 비교에 응답하여 히트(hit)가 발생하면, 어느 "웨이"가 히트되었는지를 나타내는 표시가 태그 메모리에 의해 출력될 것이다. 본 예가 4개의 가능한 웨이들을 포함하기 때문에, 이 표시는 2비트폭(즉, 22=4웨이)이 될 것이다. 다음의 설명에 대해서, 이 표시는 WAY[1:0]으로서 간략화되는데, 현재 논의 중인 특정한 웨이를 가리키는 2비트 신호를 나타낸다. 마지막으로, 다음의 설명에 대해, 어드레스 비트들은 ADDR[x:y]에 의해 표시되는데, 도 8b의 어드레스로부터의 비트 그룹을 의미하는 것으로, 여기서 x는 이들 비트들 중 최상위 비트이고 y는 이들 비트들중 최하위 비트이라는 것을 알아야 한다. 예를 들어, ADDR[7:6]의 표시는 비트 7 및 비트 6(즉, 뱅크 i.d.)의 어드레스 비트들에 대응한다.
어드레스 변환 회로(94)는 비트들 WAY[1:0]뿐만 아니라 비트들 ADDR[13:6]을 수신하는 어드레스 입력 저장 디바이스(102)를 포함한다. 어드레스 입력 저장 디바이스(102)의 출력단은 어드레스 출력 저장 디바이스(104)의 하위부(104a)에 접속되고, 그 출력단으로부터의 비트 ADDR[13:9] 및 WAY[1:0]는 또한 비교기(106)의 제1 입력단에 접속된다. 비교기(106)의 제2 입력단은 결함 행 식별자 블럭(108)으로부터의 출력을 수신하기 위해 접속된다. 결함 행 식별자 블럭(108)은 8개까지의 결함 행 식별자(108R1 내지 108R8)를 포함하고, 이들 식별자들 각각은 대응하는 인에이블 비트(108EB1 내지 108EB8)를 갖는다. 각각의 행 식별자(108R1 내지 108R8)는 바람직하게 휴즈 등에 의해 표현된 7비트를 포함하여, 데이터 메모리(92)에 있는 결함 행의 어드레스를 식별한다. 더 상세하게는, 어드레스 가능한 최상부 및 최하부 반쪽을 각각 갖는 4개의 뱅크들의 구성이 8개의 다른 세트의 1차 행 그룹들을 발생시킨다는 것을 상기한다. 이에 따라, 이들 뱅크 반쪽들 각각에 대해 하나의 결함 행까지는 8개의 결함 행 식별자들(108R1 내지 108R8)에 표현될 수 있다. 부수적으로, 일단 결함 행이 식별되고 행 식별자들(108R1 내지 108R8) 중 하나로 엔코드되면(예를 들면, 휴즈가 끊어짐으로써), 대응하는 인에이블링 비트(108EB1 내지 108EB8)는 대응하는 행 식별자가 결함 행을 표시한다는 것을 나타내도록 구성된다. 마지막으로, 비교기(106)의 출력단은 어드레스 출력 저장 디바이스(104)의 최상위부(104b)에 MATCH 신호를 제공하기 위해 접속된다.
독자가 상기 예 및 실시예로 알고 있다는 가정에 따라, 도 8a의 회로 동작이 이하에 제공되는데, 도 5의 방법(50)의 단계들과 비교가능한 단계들이 도 8a에 적용된다는 것을 쉽게 이해할 수 있을 것이다. 따라서, 도 8a의 회로는 일반적으로 방법(50)을 따르지만, 원시 어드레스가 결함있는 1차 행을 가리킨다고 판단되면, 상기 뱅크 반쪽 내의 1차 행을 가리키는 원시 어드레스를 동일한 뱅크의 하나의 여분 행에 리-맵핑하는 옵션을 허용한다. 이에 따라, 동작시, 제1 클록 싸이클 동안, 태그 메모리가 어드레스되고, 동일한 클록 싸이클 동안 도시된 어드레스 및 웨이 부분들이 레지스터(102)에 로드된다. 더우기, 이 어드레스와 웨이 부분들은 기억 디바이스(104)의 하위부(104a)에 복사된다. 동일한 클록 싸이클 동안, 비트들 ADDR[8:6]은 결함 행 식별자 블럭(108)에 접속된다. 도 8b에서, 이 비트들은 뱅크 식별자(i.d.) 및 논의중인 행 어드레스가 식별된 뱅크의 최상부로부터인지 또는 최하부로부터인지의 여부를 나타낸다는 것을 알아야 한다. 이에 응답하여, 결함 행있는 행이 뱅크의 그 반쪽에서 이미 식별되었다고 가정하면, 결함행 식별자 블럭(108)은 어드레스되는 뱅크의 반쪽 내에 있는 결함 행 어드레스와 함께 인에이블링 신호를 비교기(44)에 출력한다. 다음에, 저장 디바이스(102)로부터의 원시 어드레스 부분은 비교기(106)에 의해 식별된 결함 행과 비교된다. 또한, 비교기(106)가 비교 신호들 간에 정합을 발견하면, 비교기는 MATCH 신호를 내보내고, 어드레스 출력 저장 디바이스(104)의 최상위부(104b)를 세팅한다. 반대로, 비교기(106)가 정합을 발견하지 못하면(또는 논의중인 뱅크의 반쪽에 대해 식별되는 결함 행이 없었기 때문에 인에이블되지 않으면), MATCH 신호는 나오지 않고 출력 저장 디바이스(104)의 어드레스는 실제로 변화되지 않은 채로 남는다. 상기로부터, 하위 및 상위부(104a 및 104b)가 데이터 메모리(92)에 접속된다는 것을 기억해야 한다. 그 결과(태그 정합을 가정하면), 연속적인 클록 싸이클에서, 원시 어드레스가 결함 행을 어드레스하는 것이 아니라 대신에 어드레스된 식별된 뱅크의 반쪽에 대한 여분 행을 어드레스하도록 리-맵핑되거나, 또는 변경되지 않은 원시 어드레스가 1차 행 그룹들 중 한 그룹에 있는 행들 중 하나를 액세스하기 위해 접속된다.
따라서, 도 8a 및 도 8b의 상기 설명으로부터 이 기술 분야의 숙련자는 본 실시예가 세트 연관 메모리들 및 그 메모리의 뱅킹을 또한 포함할 수 있다는 것을 더 이해할 것이다. 또한, 결함 행을 식별하기 위한 퓨즈나 또는 다른 디바이스의 갯수는 여분 행을 활성화시키기 위해 어드레스를 디코드하는 추가적인 퓨즈들 뿐만 아니라 각각의 1차 행에 대한 휴즈를 포함하는 종래 기술의 필요량보다 훨씬 적을 수일 것이다. 더우기, 메모리 구조가 더 효과적인 방법으로 구성되도록 퓨즈들의 위치가 집중될 수 있다. 또한, 도 8a의 실시예는, 입력되는 원시 어드레스가 적당히 동작하는 행을 가리키는 경우, 원시 어드레스는 변경시키지 않거나, 또는 결함이씨는 것으로서 식별되었던 행을 가리키는 경우에는, 여분 행에 리-맵핑될 수 있도록 택일적 어드레싱 포맷이 수정될 수 있다는 것을 더 나타낸다.
도 8a의 실시예는 상술된 바와 같은 다른 부가적인 기능과 잇점을 제공하는 반면, 이하에 설명되는 타이밍 문제를 제기한다는 것을 주목한다. 이것은 본 발명의 추가적인 실시예에서 더 설명된다. 특히, 어드레스 변환 회로(94)가 그 입력의 일부로서 비트들 WAY[1:0](즉, 웨이 비트들)를 수신한다는 것을 기억해야 한다. 또한, 회로(94)의 어드레스 비교 및 변환 기능은 바람직하게 그 웨이 비트들이 생성되는 동일한 클록 싸이클 동안에, 즉 대응하는 태그 메모리(예를 들어, 도 1의 태그 메모리(18))에 대한 어드레스 비교와 동일한 클록 싸이클 동안에 수행된다. 따라서, 태그 메모리 비교가 웨이 비트들을 생성하는 것이기 때문에, 어드레스 변환 회로(94)의 비교 동작은 이 비트들을 대기해야 한다. 이 타이밍 문제에 대한 한가지 방법은, 태그 비교가 발생하는 클록 주기를, 제1 동작으로서 웨이 비트들을 생성한 다음, 제2 동작으로서 어드레스 비교를 시작하고 어드레스 변환 회로(94)가 주어진 어드레스에 대해 필요하다면 변환이 행해지도록 할 만큼, 충분히 길게 만드는 것이다. 그러나, 제2 동작(즉, 어드레스 변환을 위한 비교를 시작하기 위한 웨이 비트의 사용)이 제1 동작(즉, 태그 비교)이 완료된 후 반드시 후속할 필요없이 이러한 사항을 고려한 또 다른 방법이 이하에 제공된다.
어드레스 변환 회로(94)의 어드레스 비교에 대한 웨이 비트들의 상기 타이밍에 대한 제1 방법으로서, 도 8a의 실시예가 상기 도 7의 것과 부분적으로 유사하도록 변경될 수 있다는 것을 주목한다. 특히, 도 7의 실시예는 행 블럭이 결함 블럭 식별 회로(90)에 의해 식별되게 하고, 입력되는 어드레스가 식별된 블럭 내의 임의의 행을 가리킨다면, 이 어드레스는 여분 행의 블럭에 리-맵핑된다는 것을 상기한다. 이에 따라, 비교 가능한 방법으로서, 도 8a의 실시예는 BANK의 최상부 또는 최하부 반쪽의 결함 행의 각 표시가 대신 BANK의 최상부 또는 최하부 반쪽 내에 있는 4행의 결함 블럭을 식별하도록 변경될 수 있으며, 이들 4개의 행들은 4개의 웨이들 각각에 대응한다. 이 경우에, 입력되는 어드레스가 수신될 때(즉 ADDR[13:6]), 이 어드레스가 4개의 웨이들의 블럭 내에 있는 4개의 행들 중 하나의 행에 해당하는지의 여부를 판정하는데만 필요하다. 따라서, 웨이 비트들은 결함 블럭 식별자와 다시 비교될 필요는 없다. 다시 말해서, 도 7에서의 어드레스 변환 회로(22)의 저장 디바이스(42)와 같이, 도 8a의 어드레스 변환 회로(94) 내의 저장 디바이스(42)로부터의 값에 기초하여 비교하는데 두 비트들이 덜 필요하게 되며, 도 8a에 대한 이 변형의 예에 있어서, 비교로부터 제거된 이 두 비트들은 비트들 WAY[1:0]일 것이다. 따라서, 이 대체적 실시예에서, 비교시 웨이 비트들이 필요하지 않으므로, 변형된 어드레스 변환 회로(94)는 ADDR[13:6] 비트가 수신되자마자 그리고 웨이 비트들을 대기할 필요없이 그 비교를 시작할 수 있다. 결국, 상기 제기된 타이밍 문제는 제거된다.
어드레스 변환 회로(94)의 어드레스 비교에 관한 웨이 비트들의 타이밍 문제에 대한 제2 방법으로서, 비트들 ADDR[13:6]은 결함 블럭의 대응하는 비트들과 예비 비교를 하는데 사용될 수 있고, 그 후에 일단 웨이 비트들이 사용 가능하게 되면 웨이 비트들은 비트들 ADDR[13:6]로부터의 예비 비교의 결과를 제공하는데 사용될 수 있다. 이 에 대해, 도 9는 도 8a의 데이터 메모리(92)와 상호작용을 위해 이 기능을 구현한 대안적인 어드레스 변환 회로(94a)의 개략도를 도시한다. 도 9와 도 8a의 공통성을 기술하기 위해, 유사한 참조 번호들이 유사한 아이템들에 사용되고, 문자 "a"는 공통성이 있지만, 도 8a에서의 회로(94)의 대응물과는 차이가 있는 회로(94a) 내의 회로 소자들에 대한 참조 번호들에 부가된다는 것을 주목한다. 회로(94a)를 참조하면, 또 어드레스 비트들 ADDR[13:6]은 입력이지만, 여기서는 도 8a의 저장 디바이스(102)가 하는 것처럼 비트들 WAY[13:9]을 수신하지 않는 입력 저장 디바이스(102a)에 접속된다. 저장 디바이스(102a)는 비트들 ADDR[13:9]을 비교기(106a)에 출력하고, 비트들 ADDR[13:6]을 출력 저장 디바이스(110)의 제2 부분(110b)에 출력한다. 어드레스 비트들[8:6]은 또한 어드레스 변환 회로(94a)에 입력되고, 도 8a에서와 같은 방식으로 결함 행 식별자 블럭(108)에 접속된다. 또, 결함 행 식별자 블럭(108)은 8개의 행을 가지는데, 각각의 행은 결함 행의 7비트 어드레스 및 대응하는 인에이블 비트를 저장하는 동작이 가능하고, 여기서 결함있는 행들 각각은 도 8a의 데이터 메모리(92)에 있는 BANK들 중 다른 뱅크의 최상부 또는 최하부 반쪽에 있다.
결함 행 식별자 블럭(108)의 출력단의 접속에 관해서, 이 접속은 도 8a의 것과는 상이하다는 것을 알아야 한다. 특히, 도 9에서, 각각의 결함 어드레스(DA[6:2]로서 도시됨)의 5개의 최상위 비트들은 비교기(106a)에 접속된다. 그러나, 각각의 결함 어드레스(DA[1:0]로서 도시됨)의 두개의 최하위 비트는 2-대-4 디코더(112)에 접속된다. 이하에서 더 잘 이해될 수 있듯이, 이 두개의 최하위 비트들 DA[1:0]은 결함 행 식별자 블럭(108)에 의해 식별된 결함 행이 배치된 4개의 웨이들 중 하나를 식별한다. 2-대-4 디코더(112)는 디코딩 분야에서 공지되어 있듯이, 즉 각각의 다른 2비트 입력에 대한 독특한 4비트 출력을 생성하기 위해 동작한다. 더우기, 2비트 입력이 4개의 웨이들 중 하나를 식별하기 때문에, 이하에 도시되는 바와 같이 각각의 독특한 4비트 출력은 이들 웨이들 중 하나에 대응한다는 것을 더 알아야 한다. 나머지 설명을 용이하게 하는 규정을 수립하기 위해, 이하의 표 2는 2 대 4 디코더에 대한 각각의 2비트 입력에 대응하는 4비트 출력을 나타낸다.
입력(DA[1:0]) 출력
00(웨이 0) 1
01(웨이 1) 10
10(웨이 2) 100
11(웨이 3) 1000
2-대-4 디코더(112)의 4개의 출력은 AND 게이트들(1140, 1141, 1142, 및 1143)의 제1 입력단에 각각 연결된다. 일관성을 위해, 이들 AND 게이트 각각의 아랫첨자는 표 2로부터 비트 DA[1:0]에 의해 식별된 4 웨이들 중 하나에 대한 AND 게이트에 관련한 것이라는 것을 알아야 한다. 예를 들면, 비트 DA[1:0]가 00이면, 이 때 상기는 웨이 0을 식별하고 AND 게이트(1140)가 하이 입력을 수신한다. 다른 예로서, 비트 DA[1:0]가 11이면, 이 때 상기는 웨이 3을 식별하고 AND 게이트(1143)가 하이 입력을 수신한다. AND 게이트들(1140, 1141, 1142, 및 1143) 각각의 제2 입력단은 비교기(106a)에 의해 출력되는 MATCH 신호에 접속된다. 표 2에 의하면, 이 기술 분야의 숙련자는, MATCH 신호가 나오면, AND 게이트들(1140, 1141, 1142, 및 1143) 중 하나의 게이트가 하이 신호인 반면에 나머지 AND 게이트들은 로우 신호를 출력한다는 것을 알 것이다. 물론, MATCH가 나오지 않으면, 모든 4개의 AND 게이트들(1140, 1141, 1142, 및 1143)의 출력은 로우로 남게 된다. 이들 결과로 나타나는 신호들의 목적이 이하에서 더 잘 이해될 것이다.
어드레스 변환 회로(94a)는 대응하는 태그 메모리로부터 초래된 4웨이들 각각에 대한 HIT 신호를 입력들로서 수신한다. 따라서, 도 9에서, 이 신호는 웨이 0에 대한 W0 내지 웨이 3에 대한 W3으로서 라벨을 붙인다. 더 상세하게는, 태그 메모리가 입력되는 어드레스와 그 저장된 태그 어드레스들 중 하나 사이에 정합을 검출하는 경우에, 태그 메모리는 4개의 신호 W0 내지 W3들 중 하나에 대해 HIT를 내보낸다. 이들 신호들은 각기 AND 게이트들(1160, 1161, 1162, 및 1163)의 제1 입력단에 각각 연결되고, 다시 일관성을 위해, 이들 AND 게이트들 각각의 아랫첨자는 관련된 웨이에 대한 AND 게이트에 관련된 것이다. 예를 들면, AND 게이트(1160)는 W0 입력단으로부터 HIT 신호를 수신하고, AND 게이트(1161)는 W1 입력단으로부터 HIT 신호를 수신하는 등등을 할 수 있다. AND 게이트들(1160, 1161, 1162, 및 1163) 각각의 제2 입력단은 AND 게이트들(1140, 1141, 1142, 및 1143)의 출력단에 각각 연결된다.
AND 게이트(1160, 1161, 1162, 및 1163)에 연결되는 것 이외에, 웨이 HIT 신호를 제공하기 위한 4개의 입력단은 또한 4-대-2 엔코더(118)의 입력들로서 접속된다는 것을 역시 알아야 한다. 엔코더(118)는 상술된 2-대-4 디코더(112)와는 반대 방식으로 동작하는, 즉, 상기가 4웨이들 중 하나에 히트를 지시하는 4비트 신호를 수신하면, 이에 응답하여 웨이들 중에 어떤 것이 히트인가를 엔코딩한 독특한 2비트 신호를 출력한다. 또, 후술을 위한 편의를 도모하기 위해, 이하의 표 3은 4비트 입력들 각각과 그 결과로서 4-대-2비트 엔코더(118)의 2비트 출력을 나타낸다.
입력W0W1W2W3 출력
1 0 0 0 0
0 1 0 0 1
0 0 1 0 10
0 0 0 1 11
엔코더(118)의 2비트 출력은 출력 저장 디바이스(110)의 제1 부분(110a)에 접속된다.
AND 게이트들(1160, 1161, 1162, 및 1163)의 출력은 4개의 입력 OR 게이트(120)의 입력에 접속된다. OR 게이트(120)의 출력단은 출력 저장 디바이스(110)의 제3 부분(110c)에 접속된다. 따라서, 이 기술 분야의 숙련자는, AND 게이트들(1160, 1161, 1162, 및 1163)중 어느 것이 그 출력을 내보내면, OR 게이트(120)가 또한 그 출력을 내보내어, 이로 인해 비트 R을 출력 저장 디바이스(110)에 세팅한다는 것을 알 것이다. 도 8a의 실시예에서와 같이, 이러한 비트 R의 세팅은 입력되는 어드레스가 데이터 메모리(92) 내의 여분 행에 리-맵핑되게 한다.
동작시에, 어드레스 변환 회로(94a)는 도 8a의 데이터 메모리(92)에 대한 어드레스를 제공하며, 도 8a의 어드레스 변환 회로(94)와 같이, 입력되는 어드레스가 결함 행으로서 식별된 행에 관련된 것이면 입력되는 어드레스를 여분 행에 리-맵핑하거나, 또는 입력되는 어드레스가 결함 행에 관련된 것이 아니라면 입력되는 어드레스를 실제로 변경시키지 않고, 어드레스 변환 회로가 데이터 메모리(92) 내의 1차 행을 어드레스하게 한다. 그러나, 처음부터 도 9의 실시예가 어드레스 비교 동작과 데이터 메모리(92)에 대응하는 태그 메모리의 4웨이들 중 하나에서의 히트 결정 사이에 타이밍에 대한 교려 사항을 감소시킨다는 것을 기억해야 한다. 이러한 도입에 의하여, 어드레스 변환 회로(94a)의 동작은 비트 ADDR[13:6]가 입력 저장 디바이스(102a)에 접속되고 비트 ADDR[8:6]가 결함 행 식별자 블럭(108)에 접속되게 제공되고, 입력되는 어드레스의 수신에서부터 다시 시작한다. ADDR[13:6]에 응답하여, 비트 ADDR[13:9]는 비교기(106a)의 한 입력단에 접속되고, 비트 ADDR[13:6]는 출력 저장 디바이스(110)의 제2 부분(110b)에 연결된다. ADDR[8:6]에 응답하여, 결함 행 식별자 블럭들(108) 중 한 행이 어드레스된다. 입력되는 어드레스가 입력되는 어드레스에 의해 어드레스되는 BANK 반쪽에 있는 결함 행을 갖는 메모리 BANK에 대응하면, 결함 행 식별자 블럭(108)은 다음의 비교 단계를 인에이블시키는 인에이블 비트와 함께 DA[6:2]를 비교기(106a)의 제2 입력단에 출력하고, 또한 DA[1:0]를 2-대-4 디코더(112)에 출력한다. 다른 한편으로, 입력되는 어드레스가 입력되는 어드레스에 의해 어드레스된 뱅크 반쪽에 있는 결함 행을 갖는 메모리 BANK에 대응하지 않으면, 어떠한 결함 어드레스도 결함 행 식별자 블럭(108)에 의해 출력되지 않고 비교는 인에이블되지 않는다(예를 들어 로우의 인에이블 비트를 출력함으로써). 따라서, 결국 입력되는 어드레스는 변경되지 않고 데이터 메모리(92)에 출력될 것이다. 그러나, 회로(94a)의 나머지 동작을 상세하게 설명하기 위하여, 입력되는 어드레스가 비교 인에이블 비트의 출력과 이하에 설명되는 부가적인 동작을 발생시키는 저장된 결함 행 어드레스를 유발했다고 가정한다.
식별자 블럭(108)에 의해 출력되는 결함 행 어드레스에 응답하여 두개의 다른 동작들이 발생한다. 그 하나의 동작으로서, DA[1:0]에 응답하여, 2-대-4 디코더(112)는 상기 표 2에 따라 4비트를 출력한다. 현재의 예에 대해, DA[1:0]는 웨이 1에 대응한다고 가정하면, 2-대-4 디코더(112)는 비트 시퀀스 0010을 AND 게이트들(1143 내지 1140)에 각각 출력한다. 다른 하나의 동작으로서, DA[6:2]에 응답하여, 비교기(106a)는 이들 비트들과 입력되는 어드레스로부터의 비트들 ADDR[13:9]을 비교한다. 웨이 비트가 아직 비교되지 않기 때문에, 이에 따라 비교기(106a)에 의한 비교는 입력되는 어드레스로부터의 현재 비교된 비트가 4행(즉 4웨이)들 중 하나가 결함인 4행의 블럭을 향하는지에 대한 여부를 결정한다는 것을 알아야 한다. 어떠한 대응도 밝혀지지 않으면, 로우 신호가 비교기(106a)로부터 AND 게이트들(1143 내지 1140) 각각에 접속되어, 이에 따라 AND 게이트들 각각은 로우 신호를 출력한다. 이러한 경우에, AND 게이트들(1163 내지 1160) 각각은 OR 게이트(120)에 역시 로우 신호를 당연히 출력하는데 OR 게이트(120)는 이에 응답하여 출력 저장 디바이스(110)의 제3 부분(110c)에 R 비트를 세팅하지 않는다. 이에 따라, 상술한 실시예들에서와 같이, 최상위 비트(즉, 비트 R)가 세팅되지 않으면, 결국 입력되는 어드레스는 실제로 변경되지 않고 데이터 메모리(92)에 출력되고 입력되는 어드레스에 의해 어드레스되는 데이터 메모리(92)의 1차 행은 변경되지 않은 어드레스를 사용하여 액세스될 수 있다. 반면에, DA[6:2]와 ADDR[13:9]이 일치되면, 이하에 설명된 효과를 갖는 MATCH 신호가 나오게 된다.
이렇게 나온 MATCH 신호는 AND 게이트들(1143 내지 1140) 각각의 제1 입력단에 논리 하이를 접속한다. 또한, 2-대-4 디코더(112)가 그 출력들 중 하나에서 논리 하이를 출력하여, 이 하이는 AND 게이트들(1143 내지 1140)의 제2 입력단들 중 하나에 접속되는 반면 이들 AND 게이트들 중 다른 세개 각각은 제2 입력단에서 논리 로우를 수신한다는 것을 기억해야 한다. 현재의 예에서, 디코더(112)로부터의 논리 하이는 웨이 1에 대응하여, AND 게이트(1141)는 그 입력단 모두에서 논리 하이를 수신하는 반면에 다른 세개의 AND 게이트(1140, 1142, 및 1143) 각각은 하나의 입력단에서 논리 하이(즉, 확정된 MATCH)를 그리고 다른 입력단에서는 논리 로우를 수신한다는 것을 기억해야 한다. 이 입력 신호에 근거하여, AND 게이트(1141)는 하이 신호를 출력하는 반면에 AND 게이트들(1140, 1142, 및 1143) 각각은 로우 신호를 출력한다. AND 게이트들(1140 내지 1143)로부터의 출력 신호 각각은 이하에 더 설명되는 바와 같이 AND 게이트들(1160 내지 1163) 중 대응하는 하나의 제1 입력단에 연결된다.
상기에 의하면, 입력되는 어드레스가 행들 중 하나가 블럭(108)에 의해 결함있는 것으로 식별된 4행의 그룹(각각이 다른 웨이에 대응하는)에 관련된 것이라면, AND 게이트들(1160 내지 1163) 중 한 게이트로의 제1 입력은 논리 하이이다. 현재의 예에서, 비트들 DA[1:0]에 의해 식별되고 디코더(112)에 의해 디코드된 바와 같이, 결함있는 행을 갖는 웨이는 웨이 1이기 때문에, 이 제1 입력단은 AND 게이트(1161)에의 입력이다. 이 때, 웨이 HIT 신호들 각각은 AND 게이트들(1160 내지 1163) 중 대응하는 하나의 제2 입력단에 연결되므로, 현재 설명된 동작 단계에서만 HIT 신호의 값은 사용 가능할 필요가 있다. 다시 말해서, AND 게이트들(1161 내지 1163)의 동작에 선행하는 단계들은 태그 메모리가 4개의 웨이들 중 하나에 대응하는 HIT 신호들 중 하나를 발생시킴과 동시에 수행될 수 있다. 결국, 상기 도 8a의 설명 후에 설명된 타이밍 문제는 웨이 비트가 어드레스 비교 회로(94a)의 동작을 시작하는데 요구되지 않는다는 점에서 크게 완화된다. 일단 이 웨이 비트들이 사용 가능하다면, 그들은 AND 게이트들(1160 내지 1163)에 의해 논리 AND 게이트들(1140 내지 1143)로부터의 결과들과 논리곱되고, 이들중 하나는, 만일 입력되는 어드레스가 4 행들 중 하나에 결함이 있는 것으로 식별된 상기 4행의 그룹에 관련된 것이면, 하이이다.
논리 AND 게이트들(1160 내지 1163) 각각의 동작 결과는 입력되는 어드레스가 블럭(108)에 의해 식별된 결함 행에 관련된 것인지의 여부에 대한 판정을 완료한다. 상세하게는, 논리 AND 게이트들(1140 내지 1143) 중 많아야 하나의 출력 만이 하이라는 것을 기억해야 한다. 이에 따라, 논리 AND 게이트들(1160 내지 1163) 중 어떤 것의 출력이 하이인 경우, 그것은 논리 AND 게이트들(1140 내지 1143) 중 하나로부터 출력된 하나의 하이를 수신하고, 웨이 W0 내지 W3들 중 대응하는 하나로부터 나온 HIT 신호를 역시 수신해야 한다. 계속해서 본 예에 따르면, 논리 AND 게이트들(1140, 1142, 및 1143) 각각의 출력은 로우이므로, 대응하는 논리 AND 게이트들(1160, 1162, 및 1163)의 출력도 역시 로우이다. 그러나, 논리 AND 게이트(1161)는, 상기는 AND 게이트(1141)로부터 논리 하이를 수신하며, 이는 W1 HIT 입력과 논리곱된다. 따라서, W1 HIT가 나오면, 입력되는 어드레스가 웨이 1을 어드레스하며, 이 때 논리 AND 게이트(1161)의 출력도 역시 하이라는 것을 의미한다. 반면에, 입력되는 어드레스가 웨이 1을 어드레스하지 않으면, W1에서 HIT 신호가 나오지 않으므로, 논리 AND 게이트(1161)의 출력은 로우이다.
상기로부터, 이 기술 분야의 숙련자는 모든 논리 AND 게이트들(1160 내지 1163)로부터의 출력이 로우이거나 또는 이들 출력들 중 겨우 하나의 출력 만이 하이라는 것을 이러한 동작의 관점에서 알 것이다. 이 후자의 경우는, 예비 판정들 각각이 긍정적으로 테스트된 후에, 즉 일단 입력되는 어드레스가 블럭(108)에 의해 식별된 결함 행에 관련된 것이라고 판정되면 발생한다. 또한, 앞에서의 긍정적인 결정이 주어졌을 때, 논리 AND 게이트들 1160 내지 1163 중 하나로부터 하나의 논리 하이 출력이 존재하며 논리 OR 게이트(120)의 출력을 하이로 되게 함으로써 출력 저장 디바이스(110)의 제3 부분(110c)에 비트 R를 세팅한다. 반대 방식으로, W1 이외의 웨이가 본 예에서 입력되는 어드레스에 의해 어드레스되는 경우의 효과를 주목한다. 이 경우에, AND 게이트 1161가 그것의 입력들 중 하나에서 AND 게이트(1141)로부터 하이를 수신하더라도, 다른 입력은 논리 로우를 수신하게 된다. 그러므로, AND 게이트(1161)의 출력이 로우로 되어, OR 게이트(120)의 출력을 로우로 되게 하므로, 출력 저장 디바이스(110)에 비트 R를 설정하지 않는다.
W0 내지 W3 HIT 신호들에 기초한 논리 AND 게이트들1160 내지 1163의 동작 이외에, 이들 신호들은 예로서 표 3을 따라 4-대-2 엔코더(118)에 의해 엔코드되는 것을 주목한다. 따라서, 웨이 1이 어드레스되는 본 예에서, 엔코더(118)은 01 값을 출력한다. 2 비트 엔코딩이 완료되면, 이 출력 값은 출력 저장 디바이스(110)의 제1 부분(110a)에 접속된다. 그러므로, 엔코더(118)의 출력은 입력되는 어드레스의 2개의 최하위 비트에 대응한다.
상기 단계들 각각이 수행되면, 다시 출력 저장 디바이스(110)의 전체 어드레스가 데이터 메모리(92)에 접속된다. 그러므로, 도 8a의 방식에서와 같이, 비트 R이 설정되면, 어드레스는 적당한 메모리 BANK의 적당한 절반에 대한 여분의 행 어드레스에 리-맵핑된다. 또한, 도 8a의 방식에서와 같이, 비트 R이 설정되지 않으면, 어드레스는 적당한 메모리 BANK의 적당한 절반에 비여분의 행을 어드레스한다.
도 9의 실시예에 의해 제공되는 개선 사항을 이해하면, 도 10a 및 10b는 개략적으로 구현되는 도 9의 다양한 개념을 제공하며 그외에 부가적 잇점을 제공한다. 도 10a 및 10b의 구조를 상세히 설명하기 전에, 몇몇 예비적 설명이 유익하다. 데이터 메모리 내의 행을 어드레스하는 경우에, N 비트 어드레스를 수신하고 이것을 2N 행들 중 하나로 디코드하기 위한 다양한 디코딩 기술이 야기된다. 예를 들어, 256개의 행이 주어지면, 한가지 방식은 각각의 행에 접속될 8개의 어드레스 비트 각각을 필요로 하는 트랜지스터 네트워크를 포함하고, 이 네트워크는 각각의 행에서 직렬로 8개의 트랜지스터를 필요로 한다. 보다 효과적인 다른 방식으로서, 다수의 행들(예를 들어, 256행)을 갖는 행 어래이의 경우 각 행에서 광범위한 레벨의 디코딩에 대한 필요성을 없애기 위해 다중 디코더가 소정의 레벨에서 사용될 수 있다는 것이 본 기술 분야에 공지되어 있다. 그러므로, 256개의 행들의 예를 계속 들면, 제1 레벨은 세개의 디코더들, 즉, 2-대-4 디코더인 제1 디코더 및 3-대-8 디코더인 제2 및 제3 디코더를 포함한다. 따라서, 3개의 디코더를 통함으로써, 어드레스가 마침내 256개의 위치중 하나에 도달될 수도 있다. 이러한 다중 디코더 기술이 제공되면, 도 10a 및 10b의 개략도는 도 9로부터의 다양한 개념이 어떻게 그러한 하나의 디코더 내에 포함될 수 있는지를 설명함으로써, 대응하는 데이터 메모리(예를 들어, 도 1 의 메모리(20)) 뿐만 아니라 어드레스 변환 회로(94a)에 대한 타이밍 문제를 개선한다.
도 10a 및 10b를 참조하면, 122에 일반적으로 표시된 3-대-8 디코더를 제공한다. 디코더(122)의 최상부를 가로질러 PD0 내지 PD7로 표시되고 1차 행에 대응하는 8개의 출력들이 존재한다. 즉, 3개의 비트 신호를 8개의 가능한 것들 중 하나로 디코딩할 때, 1차 행이 어드레스되는 동작에서 이들 8개의 출력 중 하나가 나타난다. 그러나, 디코더(122) 또한 PDSP1 및 PDSP2로 표시된 2개의 여분 행 표시기들을 포함한다. 후술되는 바와 같이, 여분의 행이 어드레스되면, 1차 행 출력들 중 하나가 나타나지 않고 오히려 여분의 행 출력들 중 하나나 다른 하나가 나타난다. 더우기, 디코더(122)가 3-대-8 디코더이기 때문에, 다른 디코더들과 결합되어 총 256개의 행들(또는 8의 배수)을 어드레스할 수도 있다.
디코더(122)를 보다 상세히 살펴보면, 3가지 레벨들의 입력 조건들은 A0 및 그것의 보수, W0 내지 W3 및 S0 내지 S3을 포함한다. 보다 상세한 아래의 이유로 인해, W0 내지 W3은 도 9로부터 동일하게 명명되는 신호, 즉 태그 메모리로부터 입력되는 웨이 HIT 신호들에 대응한다. 아래에서 논의되는 이유로 인해, S0 내지 S3은 도 9의 AND 게이트들 1140 내지 1143의 출력에 대응하므로, 현재 입력되는 어드레스가 결함 있는 행을 포함하는 행 블럭을 어드레싱하는 경우 저장된 결함 있는 행 식별자에 의해 식별된 웨이의 표시를 나타낸다. 결국, A0 및 그 보수는 발송된 어떤 제3 어드레스 비트를 나타낸다는 것을 주목한다. 본 예의 경우, A0는 ADDR[8]에 대응하므로 입력되는 어드레스가 도 8a의 데이터 메모리(92) 내의 BANK 메모리 중 소정의 하나의 상부 절반을 지시하는지 또는 하부 절반을 지시하는지를 나타낸다. 따라서, 출력 PD0 내지 PD3은 BANK 메모리 중 하나의 상부 절반을 어드레스하도록 통전되며, PD4 내지 PD7은 BANK 메모리 중 하나의 하부 절반을 어드레스하도록 통전될 수 있다. 그러므로, 이 경우 PDSP1도 마찬가지로 BANK 메모리들 중 하나의 상부 절반에 대한 여분의 행을 어드레스하도록 통전되고, PDSP2도 마찬가지로 BANK 메모리들 중 하나의 하부 절반에 대한 여분의 행을 어드레스하도록 통전될 수 있다.
디코더(122)는 다이나믹 로직 회로로 구성되므로, 제1 페이즈 동안 프리챠지되며 제1 페이즈에 이은 제2 페이즈 동안 평가된다(즉, 조건적으로 방전된다). 이 경우, 각각의 출력은 대응하는 클록된 프리 챠지 트랜지스터 PT를 통해 VDD로 충전되며 대응하는 인버터 INV의 입력에 접속된 대응하는 프리 챠지 노드 PN을 가진다. 예시를 간략화하기 위해, 그러한 노드, 프리 챠지 트랜지스터 및 인버터 각각은 대응하는 출력과 동일한 아래 첨자를 사용한다. 각각의 PN은 3개의 트랜지스터에 접속되는데, 모두가 도통이라면 PN을 방전 트랜지스터 DT에 접속한다. 따라서, DT가 하이 클록 신호로 인해 도통되면, PN을 DT에 접속하는 3개의 트랜지스터들 각각이 도통된 경우 PN이 접지에 접속된다.
PN을 DT에 접속하는 3개의 트랜지스터들 중 상위 2개를 고유하게 식별하기 위해, 2개의 트랜지스터들 각각은 트랜지스터의 입력 신호에 대응하는 아래 첨자와 문자 "T"를 결합하고 트랜지스터가 그것의 직렬 접속을 통해 접속된 출력에 대응하는 아래 첨자를 포함함으로써 표시된다. 또 다른 구별로서, 몇몇 트랜지스터 이름은 트랜지스터의 식별자 상부에 수평바로 표시되는데, 여기서 이 트랜지스터에 입력된 신호는 그것의 식별자 상부에 수평바를 포함하지 않은 다른 트랜지스터에 대해 보수이다. 이러한 약속을 설명하기 위해, 출력 PD0로부터 DT까지를 트래이스하는 다음의 예를 고려한다. 따라서, PD0는 유사한 아래 첨자를 가진 인버터, INV0를 통해 접속된다. INV0의 입력은 3개의 트랜지스터들을 통해 DT에 접속될 수도 있다. 이들 트랜지스터들 중 제1 트랜지스터는(S 입력을 가지며, 이 입력의 보수는 트랜지스터 TS0에 사용된다)이다. 이들 트랜지스터들 중 제2 트랜지스터는 TW0(W 입력을 가짐)이다. 마지막으로, 이러한 제2 트랜지스터는 트랜지스터 에 접속되며, "T"를 그것의 입력 신호의 식별자와 결합하고 그 입력의 보수가 트랜지스터 TA0에 사용되기 때문에 동일한 이름 상부에 수평바를 포함함으로써 표현된다.
도 10a 및 10b에 사용된 식별자 약속을 소개했으므로, 어떤 1차 행 출력은 그것의 대응하는 "W" 및 "A" 입력들이 하이인 경우에 하이로 되지만, 대응하는 "S" 입력은 그것이 1차 행 입력의 경우 각각의 방전 경로에서 트랜지스터의 게이트에 접속된 "S" 신호의 보수이기 때문에 로우라는 것을 주목한다. 예를 들어, 프리챠지 노드 PN3을 보면, 트랜지스터, 트랜지스터 TW3 및 트랜지스터를 통해 트랜지스터 DT까지 도통될 수도 있다. 반대로, 2개의 여분의 행 출력들 중 임의의 하나가 하이가 되는 경우, 대응하는 "S" 입력이 로우이어야 하기 때문에 그것의 대응 "W" 및 "A" 입력이 하이가 되어야 한다. 예를 들어, 프리챠지 노드 PNSP1에 대해, 그것이 대응하는 하이의 S 및 W 입력을 갖는 임의의 트랜지스터 쌍을 통해 트랜지스터 DT까지 도통될 수도 있다. 따라서, DT가 또한 도통되어 있으면, PNSP1이 접지로 방전된다.
디코더(122)의 동작은 다음과 같으며, 아래의 논의는 이전 실시예를 이해한다고 가정한다. 프리 챠지 페이즈 동안, 도 10a 및 10b에 도시된 CLOCK 신호가 로우로 되고, 10개의 PNS로 도시된 출력들 각각은 논리 하이 신호(즉, VDD)로 프리 챠지한다. 결과적으로, 도 10a 및 10b의 상부를 가로지르는 10개의 출력들 각각은 논리 로우이다. 평가 페이즈 동안, CLOCK 신호는 하이로 전이되어, DT를 도통시키면서 VDD로부터 각각의 PN을 분리한다. 이 때, 하나의 PN만이 디코더(122)에 주어진 입력 신호를 방전한다. 이러한 동작을 보다 잘 설명하기 위해, 결함 있는 행을 포함하는 행 블럭 내에 없는 행을 어드레싱하는 것과 여분의 행을 어드레싱하는 2가지 예를 가정하며, 이 예들이 각각 후술될 것이다.
디코더(122)의 제1 동작 예를 들면, 1차 행(결함 있는 행에 반대됨)이 어드레스된다. 그러므로, 프리 챠지 페이즈 동안의 다음의 입력 특성을 주목한다. 첫째, A0 또는 그것의 보수는 4개 웨이 비트들 W0 내지 W3 중 하나로서 나오게 된다. 둘째, 어드레스되는 행이 결함 있는 행을 포함하는 행 블럭 내에 없기 때문에, 도 9에서 MATCH가 나오지 않는다. 결과적으로, S0 내지 S3(즉, AND 게이트 1140 내지 1143의 각각의 출력)의 각각의 값은 로우이다. 이에 따라, 도 10a 및 10b에서, 트랜지스터들 내지 각각이 도통된다. 이 경우, A0가 하이이고 웨이 1이 입력되는 어드레스에 의해 어드레스된다고 한 예로서 가정한다(즉, W1은 하이이지만 W0, W2 및 W3은 로우임). 결과적으로, 평가 페이즈 동안, 다음의 4개의 트랜지스터들이 도통된다: (1) DT; (2) TA0; (3) TW5 및 (4) . 이것에 응답하여, PN5는 방전되고 출력 PD5는 로우로부터 하이로 전이되지만, 디코더(122)의 나머지 출력들은 로우로 남는다. 따라서, 이에 따라, 이 출력은 직접적으로 또는 다른 디코더의 동작과 조합하여 사용되어, 데이터 메모리(92) 내의 적당한 1차 행을 통전시킨다.
디코더(122)의 제2 동작을 예로 들면, 결함 있는 행이 어드레스된다. 그러므로, 프리챠지 페이즈 동안의 다음의 입력 특성을 주목한다. 첫째, A0 또는 그것의 보수는 4개 웨이 비트들 W0 내지 W3 중 하나로서 된다. 둘째, 어드레스되는 행이 결함 있는 행을 포함하는 행 블럭 내에 있기 때문에, 도 9에서 MATCH가 나오게 된다. 결과적으로, S0 내지 S3 중 하나는 하이이고 나머지 세개는 로우이다. 도 10a 및 10b에서, 8개의 트랜지스터들 TS0 내지 TS7 중 두개가 도통된다. 이 경우, 가 하이이고 웨이 2가 입력되는 어드레스에 의해 어드레스된다는 것과 저장된 결함 있는 행 어드레스는 결함있는 행이 웨이 2에 존재한다는 것을 나타낸다는 예를 가정한다(즉, S2는 하이임). 결과적으로, 평가 페이즈 동안, 다음의 4개의 트랜지스터들이 도통된다: (1) DT; (2) ; (3) TW2 및 (4) TS2. 이것에 응답하여, PNSP1이 방전되고 출력 PDSP1는 로우로부터 하이로 전이되지만, 디코더(122)의 나머지 출력들은 로우로 남는다. 이에 따라, 이 출력은 직접적으로 또는 다른 디코더의 동작과 조합하여 사용되어, 데이터 메모리(92) 내의 적당한 여분 행을 통전시킨다. 바로 앞의 예에서는 웨이 HIT(즉, W2)가 저장된 결함 있는 웨이와 매치된다고 가정한다는 것을 주목한다. 그러나, 동작을 더 설명하기 위해, 바로 앞에서와 동일한 신호를 가정하지만 입력되는 어드레스는 웨이 3에 대한 웨이 HIT을 야기시키며 결함 있는 것으로 식별된 행은 다시 웨이 2에 있다고 가정한다. 이 경우, 여분의 행이 아니라 오히려 1차 행이 어드레스된다. 이러한 목적을 위해, 이러한 입력 신호가 주어졌을 때, 발생되는 S2가 여분의 행을 어드레스하도록 접속되어 있는 TS2(및 TS6)를 도통하게 한다는 것을 주목한다. 그러나, W2가 확정되지 않으면(대신에, W3이 확정됨), TW2가 도통되지 않으므로 PNSP1과 접지 사이에 방전 경로가 전혀 발생되지 않는다. 그러므로, PDSP1에서의 출력은 로우로 남게 된다. 대신에, 다시 S2 및 W3이 확정되면, 다음의 트랜지스터들, 즉 (1) DT; (2) ; (3) TW3 (4) 가 도통되기 때문에 출력 PD3로부터 접지로 방전 경로가 생성된다. 이 경우, PD3 출력이 데이터 메모리(92) 내의 적당한 1차 행을 통전시키기 위해 직접적으로 또는 다른 디코더의 동작과 조합하여 사용될 수 있다.
디코더(122)의 장점에 대한 마지막 설명으로서, 도 11은 종래 기술의 3-대-8 디코더(124)를 대조적으로 도시한다. 본 기술 분야의 숙련자가 이해할 수 있는 바와 같이, 디코더(124)의 3개의 입력들은 신호 A, B 및 C이다. 이들 입력 신호들의 조합에 기초하여, 8개의 출력 PD0 내지 PD7 중 하나가 확정되면 DT가 인에이블된다. 즉, 방전시 프리 챠지된 노드들 PN0 내지 PN7 중 하나가 방전되며 방전된 노드는 대응하는 인버터 INV1 내지 INV7에 의해 반전됨으로써 대응하는 출력을 로우에서 하이로 전이시킨다. 이러한 동작이 주어지면, 임의의 유효 출력의 방전 경로는 4개의 트랜지스터들을 거치게 됨을, 즉, 4개의 트랜지스터들을 포함하는 일련의 도통 접속에 응답하여서만 방전이 발생됨을 주목한다.
도 11의 종래의 디코더(124)를 도시하였지만, 도 10a 및 10b의 본 발명에 따른 디코더(122)의 방전 경로도 또한 4개의 트랜지스터들을 포함하는 일련의 접속을 필요로 하므로, 본 발명의 실시예의 디코더(122)는 종래 기술의 디코더(124)와 대략적으로 동일한 지연을 가지고 동작한다는 것을 주목한다. 이러한 대등한 속도는 디코더(122)가 여분의 행을 잠재적으로 활성화하는 부가적 기능을 제공하는 동안 달성된다는 것을 주목한다. 즉, 어드레스를 디코드하고 적절한 워드라인을 활성화하기 위한 양호한 실시예의 디코더(122)의 지연은 앞에서 논의된 행 리던던시 특징을 달성함으로서 두드러지게 증가되지 않는다. 마지막으로, 여분의 행 노드를 방전하기 위한 디코더(122) 동작의 타이밍에 대해, 여분의 행 노드들 각각은 4개의 n-채널 트랜지스터에 접속되지만 디코더(124)의 프리 챠지 노드 각각은 단일 n-채널 트랜지스터에 접속된다는 것을 주목한다. 따라서, 전자는 이들 여분 다이오드 용량으로 인해 약간 더 긴 지연을 갖을 것이다. 그러나, 앞에서 논의한 바와 같이, 여분 행 디코더는 비여분 행 디코더에 비해 좀더 적은 수의 총 비트를 평가할 필요가 있기 때문에, 후속되는 여분 행 디코더의 보다 신속한 응답으로 인해 이러한 지연은 오프셋될 수 있다.
앞에서 상기 실시예가 메모리 행 리던던시를 개선시키는 다양한 대안책을 제공하고 있음을 알 수 있다. 여러 잇점들이 앞으로 제공되거나 상기로부터 분명하다. 또한, 상기 예들은 메모리 행으로부터 정보를 판독하기 위한 메모리 행의 어드레싱과 결부하여 설명되지만, 행에 정보를 기록하기 위한 용도로 메모리 행을 어드레싱하기 위해 많은 동일한 실시예 및 원리가 대등하게 적용되거나 본 기술 분야의 숙련자가 알 수 있는 바와 같이 약간의 변형도 가능함을 주목한다. 따라서, 이들 대안은 본 발명의 범위에 확실히 포함된다. 그러므로, 본 실시예는 상세히 설명되었고, 다양한 대안, 변형 또는 변경이 제안되었으나, 본 발명의 범위를 벗어나지 않고 상술한 설명에 대한 또 다른 변경이 만들어질 수 있다.
2. 메모리 열 잉여분
배경 부분에서 언급한 바와 같이, 메모리 내의 열 리던던시를 구현하기 위해 종래 기술에서는 퓨즈가 사용된다. 이에 대해, 본 발명의 다음의 실시예에 대한 또 다른 소개로서, 도 12는 일반적으로 300으로 표시한 종래 기술의 메모리 구조를 도시한다. 장치(300)는 메모리 행 그룹을 포함하기 위해, 본 기술 분야에 공지된 다양한 기술에 따라 구성될 수 있는 행 어래이(302)를 포함한다. 따라서, 동작시에, 메모리 행들 중 하나가 행을 액세스하도록 통전되며 통전된 행으로부터 정보가 일련의 메모리 컬럼을 따라 출력된다. 메모리 컬럼은 단지 메모리 내에 포함된 센스 증폭기로부터 출력된 컬럼 비트 출력을 나타낸다는 것을 주목한다. 실질적으로, 메모리는 주로 컬럼 출력 비트수의 어떤 배수인 복수의 물리적 열들을 포함한다. 에를 들어, 256개의 물리적 컬럼을 갖는 메모리는 256개의 물리적 열들 상의 비트 중 64 비트만이 한번에 센스 증폭기로부터 출력되도록 멀티플렉서를 통해 물리적 열들에 접속될 수도 있다. 물론, 다른 예들이 또한 본 기술 분야에 공지되어 있다. 어떠한 경우에도, 이 명세서의 용도로는, 메모리 열이라는 용어는 메모리의 실제 물리적 열에 상응한다는 의미로 메모리로부터 출력된 복수의 비트들을 나타내며, 여기서 이들 물리적 열들은 상기 비트들을 출력하기 위해 센스 증폭기에 통상적으로 접속된다. 이것을 배경으로, 도 12의 예에는 총 5개의 C0 내지 C4로 표시된 메모리 열들이 있다. 실제로, 메모리 컬럼의 갯수는 5보다 상당히 더 클 수도 있으나(예를 들어, .., 257, 513 또는 그 이상), 예시 및 논의를 간략화하기 위해 본 예에서는 5개만이 포함된다. 아래에서 더 잘 이해할 수 있는 바와 같이, 동작시 이들 메모리 컬럼들 중 하나를 제외한 모든 메모리 컬럼으로부터의 디지탈 신호가 장치(300)로부터 출력되는데 하나의 메모리 열은 결함 있는 열(또는 여러 다른 이유로 출력으로부터 제외된 열)이라서 통상적으로 정보가 출력되지 않는다.
장치(300)로부터 출력된 디지탈 정보는 메모리 열의 수보다 하나 작은 번호의 일련의 출력 열들을 따라 제공되며, OC0 내지 OC3로 표시된다. 각각의 출력 컬럼은 대응하는 2-입력 멀티플렉서 M1 내지 M4 의 출력에 접속된다. 멀티플렉서들 M1 내지 M4 각각의 2개의 입력들은 연속된 메모리 열들 한 쌍에 접속되는데 제1 쌍의 연속적 메모리 컬럼 C0 및 C1이 멀티플랙서 M1의 입력에 접속되는 것을 시작으로, 각각의 오름 차순 번호의 멀티플렉서가 연속된 메모리 열들의 다음 쌍에 접속되는데, 여기서 상기 다음 쌍의 연속된 메모리 열들은 메모리 열의 이전 쌍의 고위 차수 출력 컬럼을 공유한다. 예를 들어, 멀티플렉서 M1 다음은 멀티플렉서 M2 이며, 멀티플렉서 M2의 입력들은 메모리 컬럼들 C1 및 C2(C1은 이전 컬럼 쌍 C1 및 C0의 고위 차수임)에 접속된다. 본 기술 분야의 숙련자는 이러한 접속 패턴이 멀티플렉서 M4의 입력이 메모리 컬럼 C3 및 C4에 접속되는 멀티플렉서 M4를 통해 연속된다는 것을 알 것이다. 마지막으로, 멀티플렉서 M1 내지 M4 각각의 동작에 대한 아래의 논의를 용이하게 하기 위해, "0" 및 "1"은 모두 도시된 각각의 멀티플렉서에 도시되며, 이것은 멀티플렉서의 제어 입력에서의 논리 하이(즉, 논리 1)가 도면 상의 "1"에 인접한 입력을 선택하도록 하는 반면, 멀티플렉서의 제어 입력에서의 논리 로우(즉, 논리 0)는 도면 상의 "0"에 인접한 입력을 선택하도록 한다는 것을 나타내기 위함이라는 것을 주목한다. 에를 들어, 멀티플렉서 M1의 제어 입력에서 논리 0은 메모리 컬럼 C0로부터의 입력을 선택하게 하고, 이에 따라 그 입력으로부터의 신호를 출력 컬럼 OC0로 출력하게 한다.
장치(300)는 컬럼 리던던시를 구현하기 위해 퓨즈들과 접속된 부가 접속을 포함한다. 이 퓨즈들은 양호하게는, 어래이(302) 및 그것의 출력 열들이 후술되는 바와 같이 결함 있는 컬럼을 분리하기 위해 검사된 후 구성될 수 있는 레이저 구성가능 퓨즈 등과 같은 타입이다. 이제, 퓨즈를 보면, 장치(300)는 멀티플렉서 M1의 제어 입력과 접지 사이에 접속된 제1 퓨즈 F1을 포함한다. 퓨즈 F1 다음에, 각각의 연속된 멀티플렉서의 제어 입력단과의 사이에 추가의 퓨즈가 접속된다. 예를 들어, 퓨즈 F2가 멀티플렉서 M1의 제어 입력과 멀티플렉서 M2의 제어 입력 사이에 접속된다. 이러한 패턴은 멀티플렉서 M3의 제어 입력과 멀티플렉서 M4의 제어 입력 사이에 접속된 퓨즈 F4까지 연속된다. 부가적으로, 하나의 추가 퓨즈 F5가 멀티플렉서 M4의 제어 입력과 어떤 전압원(도 12에서 VDD로 도시됨)에 접속된 저항 R 사이에 접속된다. 마지막으로, 도 12에는 하나의 저항 R이 도시되어 있지만, 퓨즈 F1 내지 F5 중 하나가 파손되기 전에 또는 퓨즈 F1 내지 F5 중 어느 것도 파손될 필요가 없다고 판단되는 경우, 정전력 소모를 방지하기 위해 통상적으로 더 복잡한 회로가 구현된다. 어느 경우에도, 이 저항 함수는 다음의 설명과 특별히 관련이 있지 않기 때문에 도 12에서 단일 저항으로 단순화된다는 것을 주목한다.
열 리던던시와 관련하여 장치(300)의 동작은 다음과 같다. 첫째, 장치(300)가 만들어진 후, 메모리 열들 중의 임의의 것이 원래 의도했던 대로 정보를 전송할 수 없는지를 판단하기 위해, 출력 열들 OC0 내지 OC3으로부터 액세스할 수 있는 각 메모리 행이, 공지된 기술을 사용하여, 테스트된다. 이하에서는 더 명확하게 하기 위해서, 메모리 열 C4는 여분의 열로서 이것에 의해 메모리 열 C0 내지 C3이 상기에 관해 테스트되도록 해준다. 둘째, 만일 테스트된 메모리 행들 가운데 하나가 결함이 있는 것으로 판단되면, 그 메모리 행들 중의 하나가 그의 정보, 또는 그 결핍된 정보를 해당 출력 행들(OC0 내지 OC3) 중의 하나에 접속시키는 것을 배제하기 위해 퓨즈들 중의 하나가 절단된다(또는 구성된다). 이 단계를 더 잘 이해하기 위해, 우선 메모리 행들(C0 내지 C3) 중의 하나가 결함이 있다고 판단된 경우를 생각한다. 이에 응답하여, 결함있는 메모리 행에 접속된 입력단을 갖는 각 멀티플렉서가 그 출력단을 결함 없는 메모리 행에 접속된 입력단으로 접속하기 위해, 한개의 퓨즈가 절단된다. 예를 들어, 메모리 행 C1이 테스팅 후 결함이 있는 것으로 발견되었다고 가정한다. 따라서, C1으로부터 장치(300)의 외부 접속단으로의 일체의 통신을 배제하기 위해, 퓨즈 F2가 비활성화된다. 이에 응답하여, 멀티플렉서 M2가 퓨즈들 F3, F4, 및 F5를 경유해서 저항 R을 통해 VDD에 접속된 그의 제어 입력단에서 논리 하이 신호를 수신한다는 것을 주목한다. 그 결과로서, 멀티플렉서 M2는 메모리 행 C2를 선택하여 출력 행 OC1에 접속한다. 유사하게, 멀티플렉서 M1이 퓨즈 F1을 통해 접지로 접속된 그의 제어 입력단에서 논리 로우 신호를 수신한다. 그 결과로, 멀티 플렉서 M1은 메모리 행 C0를 선택하여 출력 행 OC0에 접속한다. 결과적으로, 메모리 행 C1이 두개의 멀티플렉서들 M1 및 M2를 너머 그의 신호를 통신하는 것이 배제되고, 어떤 경우에도, 장치(300)에 연결된 외부 접속단들에 도달되지 않는다.
상기와 같이 주어지면, 이 분야의 통상의 기술자들은 퓨즈들 F1 내지 F5 가운데 하나를 절단함에 의한 메모리 열의 배제를 확인하기 위해 도 12를 통해 다른 예들을 조사할 것이다. 이러한 각 퓨즈의 절단을 상기와 같이 상세하게 설명하는 대신, 아래 표 4가 퓨즈 절단의 각 예와 그러한 조치의 결과로서 배제되는 해당 메모리 열을 나타낸다. 끝으로, 표 4는, 또한, 마지막 열에서, 아무 퓨즈도 절단되지 않은 경우의 결과를 나타낸다.
절단된 퓨즈 배제된메모리 열
1 C0
2 C1
3 C2
4 C3
5 C4
none C4
표 4의 마지막 행은, 아무 퓨즈도 절단되지 않은 경우, 멀티플렉서들 M1 내지 M4 각각의 제어 입력단이 논리 로우 신호를 수신하기 때문에, 메모리 열 C4가 배제된다. 그에 따라 불량의 열을 조사하기 전에는, 아무 퓨즈도 절단되지 않고, 메모리 열들 C0 내지 C3 각각이 OC0 내지 OC3 가운데 하나에 따로따로 접속된다는 것에 주목한다. 이에 따라, 메모리 열 C4는 상술한 초기 테스트 이후에 비-여분의 메모리 열들 중의 하나가 결함이 있는 것으로 발견되는 경우에 사용될 수 있는 여분의 열이다.
상기 구성은 또한 테스팅 단계에서 하나 또는 더 적은 불량 열이 발견되는 경우에만 실행 가능함에 주목한다. 구체적으로, 만일 하나 이상의 열이 결함있는 것으로 확인되면, 장치(300)는 단지 한개의 열만을 장치(300)의 외부 접속단들에 연결되는 것을 배제할 수 있기 때문에 그것 자체로는 불충분하다. 또한, 테스팅에서 메모리 열들 C1 내지 C5 가운데 아무것도 결함이 없는 것으로 판단되는 경우에, 장치(300)가 다섯개의 열들 가운데 여전히 4개 열들만의 정보를 출력함에 주목한다. 이러한 예에서 C4가 배제되는 경우, 아무 퓨즈도 절단되지 않을 것이다. 그렇지 않으면, 다른 고찰들이, 메모리 열들 중의 임의의 것이, 딴 방법으로는 작동 가능함에도 불구하고, 배제될 메모리 열로서 선택되게 유발할 수 있다. 이 경우에도, 표 4는 선택된 메모리 열을 배제하도록 배열될 적당한 퓨즈를 나타낸다.
상기와 같이 주어지면, 도 12의 종래 기술의 장치(300)는 최소한 한개의 결함있는 열이 잘못된 정보를 그 장치를 포함한 시스템에 출력하는 것을 배제한다는 점에서 다양한 잇점들을 제공한다. 그러나, 본 발명자는 그것의 여러 단점들도 알아냈다. 예를 들어, 장치(300)에 필요한 퓨즈들의 갯수가 출력 c행들의 갯수보다 큼을 주목한다. 이 갯수가 도 12의 예에서는 단지 5이지만, 수백개의 출력 열들이 있는 예에서는, 퓨즈들도 수백개 있게 될 것이다. 또 다른 예로서, 퓨즈들이 전형적으로 도 12에 도시된 개략적인 형태와 같이 물리적으로 배열되어, 장치(300)의 열들이나 또는 다른 구조들에 비해 상당한 공간을 필요로 하게 됨을 주목한다. 이 분야의 통상의 기술자들에 의해 확인될 수 있는 이러한 손해들에 대해, 본 발명자는 이러한 단점들을 개선하고 부가적인 잇점들도 제공하는 다양한 신규한 실시예들을 아래에 제공한다.
도 13은 참조 번호 304에 대략적으로 나타낸 본 발명의 제1 실시예에 따른 메모리 장치에 대한 전기 회로 도면이다. 어떤 관점에서는 장치(304)가 상기 도 12에 도시된 것과 같기 때문에, 도 12와 공통되는 소자들에 사용된 참조 번호들이 계속 사용될 것이다. 간단하게 이 공통의 소자들에 대해 언급한다면, 장치(304)는 전압이 가해지면, C0 내지 C4로 나타낸 일련의 메모리 열들을 따라 정보를 통신하는 임의의 갯수의 행들을 갖는 행 어래이(302)를 포함한다는 것에 주목한다. 또한, 행들 그리고/또는 열들의 갯수는 특정한 실시예에 따라 변할 수 있지만, 열들에 대해서는, 상기 논의된 종래 기술과 대비하고 그 설명을 가단히 하기 위해 본 예에서는 5개만 포함된다. 또한, 이 메모리 열들의 작동에 있어서, 일반적으로 정보가 출력되지 않는 배제된 결함있는 메모리 열을 가진 채, 즉, 한개의 배제된 메모리 열을 제외한 모든 메모리 열들로부터의 디지탈 정보가 궁극적으로 장치(304)로부터 출력된다. 도 12에서와 같이, 도 13의 장치(304)는 역시 메모리 열들의 갯수보다 하나 적고, OC0 내지 OC3으로 나타낸, 일련의 출력 열들을 따라 한개의 열 출력을 제외한 모든 열 출력들을 출력한다. 도 12에서와 같은 방식으로, 도 13의 각 출력 열은 대응하는 2-입력 멀티플렉서(M1 내지 M4)의 출력단에 접속되는데, 멀티플렉서들(M1 내지 M4) 각각의 두개의 입력단들은 한 쌍의 연속된 메모리 열들에 접속된다. 즉, 연속된 메모리 열의 첫번째 쌍인 C0과 C1이 멀티플렉서 M1의 입력단에 접속되는 것을 시작으로, 다음의 연속된 메모리 열들의 한 쌍이 다음 순번의 멀티플렉서에 접속되는데, 상기 다음의 한 쌍의 열들은 이전의 한 쌍의 열들 중 높은쪽 순번의 출력 열을 공유한다.
장치(304)에 대한 종래 기술과의 공통성들을 주목했으므로, 이제 종래 기술과 대비되는 도 13의 본 발명의 실시예에 따른 특징들을 주목한다. 구체적으로, 도 13의 멀티플렉서들 M1 내지 M4 각각의 제어 입력단은 상기와 같이 해당 퓨즈들의 쌍 사이에 접속되지 않는다는 것을 주목한다. 이와는 대조적으로, 멀티플렉서들 M1 내지 M4 각각의 제어 입력단은 그 대신 온도계형 디코더 회로(thermometer decoder circuit, 306)의 출력단에 접속된다. 온도계형 디코더 회로(306)는 하기의 더 명확한 이유 때문에 그렇게 명명된다. 온도계형 디코더 회로(306)의 입력단은 결함 열 ID 엔코더(308)의 출력단에 접속되는데, 아래에 더 상세히 설명될, 결함 열 ID 엔코더(308)는 만일 열들 C0 내지 C4 중의 하나가 결함이 있는 경우, 그 열들 가운데 결함이 있는 열의 ID(identification)를 저장한다. 택일적으로, 결함 열 ID 엔코더(308)는 아래에 역시 설명될 특정한 코드를 출력함으로써 메모리 열들 가운데 아무것도 결함있는 것이 없다는 표시를 제공할 수 있다. 바람직한 실시예에 있어서, ID 엔코더(308)에서 결함 열의 엔코딩은 일련의 이진 상태들(binary states)을 출력하기 위해, 퓨즈들을 공지된 기술을 사용하여 다시 구성함으로써, 이루어질 수 있다. 그러나, 아래의 더 명확한 이유들 때문에, 결함 열 ID 엔코더(308)는 상기 도 12의 종래 기술에서 필요로 했던 퓨즈들의 갯수와 비교할 때 결함있는 열을 배제하기 위해 훨씬 적은 갯수의 퓨즈들을 필요로 한다. 마지막으로, 온도계형 디코더 회로(306)는 나중에 그 기능에 대한 논의가 주어지면 이 분야의 통상의 기술자에 의해 만들어질 수 있다.
장치(304)의 동작은 다음과 같다. 행 어래이(302)가 저장된 데이터를 판독하기 위해 액세스되는 경우, 그 행들 중의 하나가 활성화되어(energized), 각각의 열들 C0 내지 C4와 정보를 통신하기 위해 접속된다. 다음, 멀티플렉서들 M1 내지 M4 각각이, 어떤 경우라도, 열들 C0 내지 C4 중의 하나가 배제되도록 온도계형 디코더 회로(306)에 의해 제어된다. 즉, 이들 5개 열들 중에서 4개만이 열들 OC0 내지 OC3을 통해 데이터를 출력하도록 통신한다. 더 구체적으로는, 이러한 제어를 하기 위해, 온도계형 디코더 회로(306)가 아래에 상세히 설명될 엔코더(308) 내의 결함 열 ID를 근거로 멀티플렉서들(M1 내지 M4) 각각에 제어 비트를 제공한다. 이 논의에 들어가기 전에, 결함 열 ID 엔코더(308)는 다수개의 비트들을 온도계형 디코더 회로(306)에 출력하는데, 그 비트들은, 메모리 열들(C0 내지 C4) 중의 어떤 것이 결함이 있는지를, 만일 있다면, 나타낸다는 것을 주목한다. 이하의 더 명확한 이유들 때문에, 엔코더(308)에서 결함 열 ID는 다음의 방정식에 의해 정의된 다수의 출력 비트들을 제공할 필요만 있다.
여기서, N은 열 어래이(302)로부터의 출력 열들의 갯수이고, 따라서 N+1 은 메모리 열들의 갯수임; 그리고,
fCEILING은 만일 log2(N + 1)이 정수라면 그 값을 취하거나, 또는 만일 log2(N + 1)이 정수가 아니라면 그 다음 가장 큰 정수로 올림하여 어림한다.
이에 따라, 본 실시예에서는, 결함 열 ID 엔코더(308)가 3 bits를 출력한다 (즉, fCEILING{INT(log2(4 + 1) )} = fCEILING{2.23} = 3).
결함 열 ID 엔코더(308)의 출력 비트들이 주어짐에 따라, 각 멀티플렉서들을 제어하기 위한 온도계형 디코더 회로(306)에 의해 제공되는 출력이 다음의 표 5에 표시된다.
확인된 결함 열 및 엔코딩 온도계형 디코더로부터의 M4 제어 비트 온도계형 디코더로부터의M3 제어 비트 온도계형 디코더로부터의M2 제어 비트 온도계형 디코더로부터의M1 제어 비트
C0(000) 1 1 1 1
C1(001) 1 1 1 0
C2(010) 1 1 0 0
C3(011) 1 0 0 0
C4(100) 0 0 0 0
표 5에 있어서, 표 5의 제1 열에 있는 3개의 엔코딩 비트들은 토탈 8개의 다른 가능한 시퀀스들(즉, 23 = 8)을 제공하는 것에 또한 주목한다. 그러나, 이 8개의 다른 가능한 시퀀스들 가운데 5개만이 필요하므로, 이에 따라 다른 세개의 시퀀스들은 상관하지 않는다.
표 5에 나타낸 멀티플렉서 제어 신호를 액세스했으므로, 이 분야의 통상의 기술자는, 어떻게 이 제어들이 결함 열 ID 엔코더(308)에 의해 확인된 결함있는 열을 출력 열들 OC0 내지 OC3과 통신하는 것으로부터 배제시키는지를 알 것이다. 예를 들어, 열 어래이(302)가 만들어진 후, 어떤 타입의 공지된 테스팅에 의해 판단된 결과, 메모리 열 C1이 결함이 있는 경우를 생각해 본다. 이에 따라, 표 5의 최상부로부터의 제2 행은, 이러한 경우에 메모리 장치(304)의 셋업(set up) 및 동작을 나타낸다. 이 셋업 및 동작을 상세히 살펴보면, 우선 결함 열 ID 엔코더(308)가 메모리 열 C1을 나타내는 고유한 시퀀스(예를 들면, 001)를 출력함으로써 메모리 열 C1이 결함이 있다는 것을 나타낸다는 것을 주목한다. 이에 응답하여, 온도계형 디코더 회로(306)는 표 5의 제2 행을 따라 나타낸 일련의 비트들을 해당 멀티플렉서들 M4 내지 M1에 출력한다. 도 13으로 돌아가서, 멀티플렉서들 M4, M3 그리고 M2 각각이 그 제어 입력단에서 논리 1을 수신하는 경우에, 그 각각은 도 13에 도시된 멀티플렉서의 좌측의 입력단을 선택하여, 그것에 의해, 본 예에서는, 메모리 열들 C4 내지 C2가 각각 출력 열들 OC3 내지 OC1과 통신하도록 된다. 그러나, 멀티플렉서 M1은 그의 제어 입력단에서 논리 0을 수신하고, 이에 따라, 그것은 도 13에 도시된 멀티플랙서의 오른쪽 입력단을 선택하여, M1이 메모리 열 C0가 출력 열 OC0와 통신하도록 만든다. 4개의 멀티플렉서들의 동작이 주어짐에 따라, 이것에 의해 메모리 열 C1이 메모리 장치(304)로부터의 출력에서 배제된다. 마지막으로, 상기 예들은 예시적인 것이고, 이 분야의 통상의 기술자에 의해 이해되는 바와 같이, 이와 같은 기능은 보충적인 신호들을 사용하여, 그리고 멀티플랙서들 M1 내지 M4에 대한 보완된 제어들을 사용하여 달성될 수 있음을 또한 주시해야 한다.
바로 직전의 예와 상기 논의에 주어진 바와 같이, 이 분야의 통상의 기술자는, 어떻게 각각의 메모리 열들 C0 내지 C4가 온도계형 디코더 회로(306)로의 3 bits 신호에 의해 유일하게 확인될 수 있고, 그런 다음 어떻게 온도계형 디코더 회로(306)가 출력 열들 OC0 내지 OC3으로부터의 출력에서 지정된 결함있는 열을 배제하기 위해 표 5에 도시된 값들을 출력할 수 있는지를 이해할 것이다. 또한, "온도계형 디코더"라는 이름의 선택이 이제 표 5로부터 이해가 될 것이다. 구체적으로, 표 5의 최상부로부터 최하부까지 연속된 각 행에 대해, 논리 0의 갯수가 각 행 마다 증가하며, 한 행에서 페이지의 오른쪽에서부터 왼쪽으로 나타난다.
즉, 표 5의 최상부 행에는 논리 0이 하나도 없는 것에서 시작하여, 다음의 아래쪽 행에는 맨 오른쪽에 하나의 논리 0을 갖고, 그 다음 아랫쪽 행에는 맨 오른쪽 두자리에서 두개의 논리 0을 갖는다. 다른 방법으로 설명하면, 논리 0의 갯수는 각 행의 오른쪽으로부터 시작하여 결함 열의 엔코딩에 의해 표시된 이진수 값과 같다(예를 들어, 011에 대해서는, 그것이 이진수 3이므로, 표 5의 관련된 행의 맨 오른쪽으로부터 시작하여 3개의 논리 0이 있다). 그러므로, 어떤 경우에도, 온도계와 공통점이 있는 방법으로, 널 값(논리 1이 하나도 없는)으로부터 최대 드레숄드값(모두 논리 1인)을 향해 그 스케일의 한쪽 끝단으로부터 다른쪽 끝단으로 증가하는 방식으로 조절하는 스케일이 있게 된다. 제시된 디지털 실시예에서, 이 스케일은 비트들의 시퀀스에 의해 표시된다. 즉, 한쪽 극단에서 이 스케일은 모두 0이고, 다른쪽 극단에서는 모두 1이다. 이들 두개의 극 값들 사이에 있는, 스케일은 시퀀스의 한쪽 끝에서부터 어떤 중간 비트까지 논리 1을 갖고, 다른쪽 끝단에서부터 상기 중간 비트 다음의 비트까지 논리 0을 갖는다. 또한, 이러한 온도계형 패턴 때문에, 배제될 수 있는 N+1개의 메모리 열들 각각에 대해 다른 시퀀스가 생성되는 것을 주목한다. 이런 까닭에, 이 가능한 시퀀스들 각각에서 선택하기 위해, 결함 열 ID 엔코더(308)의 이진 출력은 N+1개 조합들을 출력할 수 있어야 하고, 그것에 의해 필요한 퓨즈들(또는 이진 신호를 나타내거나 또는 가능한 다른 디바이스들)의 토탈 갯수는 상기 방정식 1에 의해 지정된 바와 같다.
상기 논의 및 예는 일반적으로 테스팅 후 메모리 열들 C0 내지 C3 중의 하나에 결함이 있는 것으로 발견된 것을 가정한다. 그러나, 아무 열들에 결함이 없는 경우에도, 이 메모리 열들 중의 하나가 출력으로서 여전히 배제되는 것이 필요하다. 이에 따라, 한가지 방법으로서, 5개 메모리 열들 중의 하나가 임의로 선택될 수 있고, 그 코드(즉, 표 5의 제1 열에 나타낸)가 결함 열 ID 회로(304)에서, 엔코드될 수 있다. 그 대안으로서, 아무 퓨즈도 절단되지 않는다면, 엔코딩 신호가 000이고, 이에 따라, 이것은 메모리 열 C0이 출력에서 배제되도록 한다. 여전히 다른 대안 방법들이 이 분야의 통상의 기술자들에 의해 확인될 수 있을 것이다.
메모리 장치(304)의 구조와 동작에 대한 상세한 논의가 주어졌으므로, 이제 종래 기술을 능가하는 잇점들에 대해 알아본다. 우선, 온도계형 디코더는 퓨즈들을 포함하지 않고, 퓨즈들이 종래 기술에서와 같이 멀티플렉서 제어단들 사이에서 필요치 않다. 그리하여, 이러한 퓨즈들에 관련된 복잡성들(예를 들면, 디자인, 사용 영역에 대한)이 제거된다. 더 나아가서, 도 13의 실시예를 구현하는데 필요한 퓨즈들(또는 다른 엔코딩 디바이스들)의 갯수가 도 12의 종래 기술의 것보다 훨씬 적다. 주어진 예에서는, 결함 열 ID 엔코더(308)가 필요한 모든 다른 숫자의 ID들(예를 들어, 각 메모리 열들 C0 내지 C4에 대한 5개의 ID들)을 나타내기 위해 3개의 퓨즈들만을 필요로 하는 반면, 도 12의 방법은 5개의 퓨즈를 필요로 했다. 또한 도 12와 도 13은 5개의 메모리 열들만을 갖는 메모리의 단순화된 예를 나타낸다. 현재의 기술에서, 보다 더 통상적인 예에서는 257개 정도의 메모리 열들을 포함할 수 있다. 대조적으로, 도 13의 실시예를 257개 메모리 열들을 수용하도록 확장하기 위해서, 결함 열 ID 엔코더(308)는 단지 9개의 퓨즈들만(즉, fCEILING{INT(log2(257 + 1) )} = fCEILING{8.01} = 9)을 필요로 할 것이다. 또한, 퓨즈들의 배치가 종래의 기술에서보다 더 집중될 수 있다.
도 14는 참조 번호 310에 본 발명의 대안적인 실시예의 메모리 장치를 대략적으로 나타낸다. 메모리 장치(310)는 이전 섹션에서 논의된 도 8a에서와 같은 방법으로, BANK0 내지 BANK3으로 나타낸 4개 다른 뱅크들을 포함한다. 메모리 장치(310)의 각 뱅크들은, 유사한 방법으로, 각 뱅크가 독립적으로 어드레스될 수 있도록, 일반적으로 구성된다. 이에 따라, 전체적으로, 뱅크들은 단일 뱅크에 저장된 정보량의 4배를 저장한다. 이와 같은 뱅크들 각각의 소자들을 더 잘 이해하기 위해, 참조된 아이템들이 속하는 뱅크들을 나타내는 첨자들과 함께, 각 뱅크들과 비슷한 참조 번호들이 사용된 것에 주목한다. 이에 따라 어떻게 각 뱅크가 구성되는지의 예로서 BANK0를 보면, 이것은 최상부 반쪽(312T0)과 최하부 반쪽(312B0)을 포함하는데, 각 반쪽 뱅크는 도 13 방식의 열 어래이(302)와 같은 메모리 열 어래이를 나타낸다. 또한 뱅크들의 반쪽들은 이 기술 분야에서 공지된 바와 같이, 센스 앰플리파이어 라인(3140)에 의해 분리된다. 센스 앰플리파이어 라인(3140)은 BANK0의 최상부 또는 최하부 반쪽 중 하나로부터 정보를 독출하기 위해 활성화되고 그것에 의해 궁극적으로 어드레스된 정보가 장치(310)로부터 출력될 수 있다. 더 상세하게, 센스 앰플리파이어 라인(3140)은 최상부 반쪽(312T0) 또는 최하부 반쪽(312B0)이 디코더 그룹(3160) 가운데 하나에 의해 활성화된 후 그 행으로부터 각 열의 데이터를 감지한다. 본 실시예 및 예시적인 방법만을 위해서는, 궁극적으로 256개의 각 출력 열들을 따라 토탈 256 bits의 데이터를 출력하는 것이 바람직하다. 이에 따라, 열 여분을 얻기 위해, 뱅크 반쪽들 각각은 토탈 257개 메모리 열들을 제공하기 위해 한개의 부가적인 열을 포함하는데, 여기서 그 열들 가운데 한개까지가 결함이 있는 것으로 검출될 수 있고, 그 후 이하 설명된 방법에 의해 출력에서 배제될 수 있다. 이 논의에 앞서, 뱅크 반쪽 내에 단일 행의 활성화에 응답하여, 257개 열들 각각을 따라 모두 257개 신호들이 센스 앰플리파이어 라인(3140)에 의해 감지되고, 삼상 버퍼(3180)에 출력되는데, 이 버퍼(3180)는 액티브 상태에서 257개 데이터 비트들을 버스 B에 접속한다. 끝으로, 임의의 뱅크들 내의 행들 가운데 임의의 하나는 도 8b와 연결해서 위에서 상세히 설명한 바와 같은 어드레스에 의해 어드레스될 수 있음을 주목하고, 포괄적인 상세한 설명을 위해 독자는 이 도면을 참조한다. 본 실시예의 목적을 위해, 4개 뱅크들 중의 하나로의 어드레스는 적어도 2개 비트들을 포함하는데, 그 비트들은 4개 뱅크들 가운데 하나를 지정하고, 한개의 부가적인 비트는 선택된 뱅크의 최상부 또는 최하부 반쪽 중의 하나를 지정한다. 도 8b에 있어서, 이 비트들은 ADDR[8:6]이고, 이에 따라, 제한적이지는 않지만 일관성을 위해, 이 비트들이 본 발명의 실시예에 사용된다.
장치(310)은 상기 도 13 방식의 여러 사항들에 대해, 이하 상세히 설명되는 바와 같이 동작하는 멀티플랙서 어래이 회로(320)를 포함한다. 더 구체적으로, 각 삼상 버퍼들(3180 내지 3183)로부터 출력된 257개 비트들은, 버스 B를 경유하여, 멀티플랙서 어래이 회로(320)의 입력단에 접속된다. 멀티플랙서 어래이 회로(320)는 각 각의 BANK0 내지 BANK3에 있는 메모리 행들의 갯수보다 하나 적은 갯수의 멀티플랙서들을 포함하고, 이에 따라, 본 예에서는 M1 내지 M256으로서 도시된 256개 멀티플랙서들을 포함한다. 또한, 버스 B로부터의 열 데이터 비트들은 도 13에서 열 데이터들이 멀티플랙서들 M1 내지 M4에 접속되는 것과 같은 방식으로 멀티플랙서들 M1 내지 M256 각각에 따로따로 접속된다. 이에 따라, 멀티 플랙서들 M1 내지 M256 각각의 두개의 입력단들이 연속된 메모리 열들의 쌍에 접속되는데, 연속된 메모리 열들 C0 및 C1이 멀티플랙서 M1의 입력단에 접속되는 것을 시작으로, 각 오름 순번의 멀티플랙서는 다음의 연속된 메모리 열들의 쌍과 접속되며, 여기서 상기 다음의 쌍은 이전 쌍의 더 높은 순번의 출력 열을 공유한다. 그러므로, 이 패턴은 멀티플랙서 어래이 회로(320)에서 메모리 열들 C255 및 C256이 입력으로서 멀티플랙서 M256에 접속될 때까지 계속된다. 마지막으로, 각 멀티플랙서들 M1 내지 M256 각각의 출력들은 출력 열들 OC0 내지 OC255에 대응하여 제공되고, 그것에 의해 장치(310)로부터 데이터가 출력돌 수 있다.
멀티플랙서 어래이 회로(320)의 256개 멀티플랙서들은 온도계형 디코더 회로(322)로부터의 각 제어 신호들에 의해 제어된다. 더 구체적으로는, 온도계형 디코더 회로(322)가 도 13의 온도계형 디코더 회로(322)와 같은 방식으로 구성된다. 그러나 도 13의 온도계형 디코더 회로(322)는 4개의 멀티플랙서들을 제어했던 것에 반해, 도 14의 온도계형 디코더 회로(322)는 멀티플랙서 어래이 회로(320) 내의 256개 멀티플랙서들을 제어한다. 그 결과, 온도계형 디코더 회로(322)는 256개 제어 신호들을 각각 멀티플랙서 어래이 회로(320) 내의 각 멀티플랙서들로 따로따로 출력한다. 또한, 상기 표 5로부터, 이 분야의 통상의 기술자는, 제공된 제어 신호들이 상술한 257개 까지 가능한 다른 온도계형 패턴의 조합 가운데 하나를 나타내고, 이것은 연속체를 따라 어디선가 모두 논리 1에서 모두 논리 0으로 되는, 즉, 중간의 임의이 패턴에 있어서, 패턴 내의 어느 지점까지는 논리 1을 나타내고 그 나머지는 논리 0으로 조합된 것임을 알 것이다.
온도계형 디코더 회로(322)는 결함 열 ID 엔코더(324)로부터 입력(본 예에서는 9bits)을 수신한다. 결함 열 ID 엔코더(324)에 대해서는 그것이 8개 까지의 다른 결함 열들의 ID들을 저장하고, 여기서 이 열들 각각은 장치(310)의 4개 뱅크들 중 다른 하나의 다른 최상부 또는 최하부 반쪽에 있다. 이 특징에 대해 더 상세히 설명하기 위해, 결함 열 ID 엔코더(324) 내에는 4개 메모리 뱅크들 내의 최하부로부터 최상부 행들의 반쪽씩에 대응하는 8개의 행들이 도시된다. 예를 들어, 결함 열 ID 엔코더(324)의 최하부 행은 BANK0의 최하부 반쪽(312B0)에 있는(만일 있다면) 결함있는 열의 ID에 대응한다. 또 하나의 예로서, 결함 열 ID 엔코더(324)의 최상부 행은 BANK3의 최상부 반쪽(312T3)에 있는(만일 있다면) 결함있는 열의 ID에 대응한다. ADDR[8:6] 비트들은 이하 상세한 동작 설명에서와 같이, 결함 열 ID 엔코더(324)의 입력으로서 접속되어 그 안의 8개 행들 가운데 하나를 선택한다. 끝으로, 결함 열 ID 엔코더(324)의 8개 엔트리들 각각은 도 13의 결함 열 ID 엔코더(308)와 유사한 방법으로 ID를 제공하는데, 여기서 결함 열 ID 엔코더(308)는 다섯개의 가능한 결함있는 메모리 열들 중의 하나를 엔코드했던 반면, 결함 열 ID 엔코더(324)의 8개 엔트리들 각각은 257개의 가능한 결함 메모리 열들 중의 하나를 엔코드함에 주목한다. 이에 따라, 상기 방정식 1을 적용하면, 결함 열 ID 엔코더(324) 내의 8개 엔트리들 각각은 그 길이가 9bits이다(즉, fCEILING{log257} = 9).
장치(310)의 동작은 다음과 같다. 처음에, BANK0 내지 BANK3 중 하나 내의 행들 중 하나를 어드레스하기 위해 입력되는 어드레스가 수신된다. 입력되는 이 어드레스는 공지된 다양한 기술에 따라, 또는 본 명세서의 앞 부분에 설명된 실시예에 따라 디코드될 수 있다. 어떤 경우에도, 디코더들 3160 내지 3163 중 적어도 하나는 입력되는 어드레스에 의해 지정된 행을 활성화할 것이다. 이 논의를 용이하게 하기 위해, 예로서, 입력되는 어드레스가 BANK3의 최하부 반쪽(312B3)에 있는 행을 어드레스한다고 가정한다. 그 다음, 이 어드레스된 BANK3에 대응하는 센스 엠플리파이어 라인(3143)이 활성화된 행의 257개 메모리 열들 각각으로부터 데이터를 감지하고, 이 데이터는 삼상 버퍼(3183)를 경유하여 버스 B로 출력된다. 이와 동시에, ADDR[8:6] 비트들도 결함 열 ID 엔코더(324)에 접속되는 것에 주목한다. 본 예에서는, 이에 따라, 이 비트들이 현재 어드레스된 행이 BANK3의 최하부 반쪽(312B3)에 있음을 나타낸다. 이에 응답하여, 결함 열 ID 엔코더(324)는 BANK3의 최하부 반쪽(312B3) 내의 결함있는 열의 9 비트 ID를 출력하고, 이 출력은 온도계형 디코더 회로(322)에 접속된다. 9 비트 ID는 온도계형 디코더 회로(322)가 256 비트의 온도계형 패턴 시퀀스를 멀티플랙서 어래이 회로(320)에 출력하게 유발하여, 그것에 의해 멀티플랙서 어래이 회로(320)가 BANK3의 최하부 반쪽(312B3)의 메모리 열들 C0 내지 C256 가운데 하나를 출력 열들 OC0 내지 OC255에 의해 제공되는 출력에서 배제한다. 예를 들어, BANK3의 최하부 반쪽(312B3)에 있는 메모리 열 C40에 결함이 있다고 가정한다. 이에 따라 온도계형 디코더 회로(322)는 256 비트 패턴을 멀티플랙서 어래이 회로(320)에 제공하고, 그것에 의해 멀티플랙서들 M256 내지 M41 각각은 그들의 제어 입력단에서 논리 1을 수신하는 반면, 멀티플랙서들 M40 내지 M1 각각은 그들의 제어 입력단에서 논리 0을 수신한다. 결과적으로, 상기 논의가 주어졌으므로, 이 분야의 통상의 기술자는 BANK3의 최하부 반쪽(312B3)의 메모리 열 C40으로부터의 데이터가 배제되고, 나머지 열들의 데이터는 출력 열들 OC0 내지 OC255에 전달된다.
메모리 장치(310)의 구성 및 동작에 대한 상세한 논의에서 제시된 바와 같이, 이것은 도 13의 잇점 및 부가적인 잇점들도 역시 제공한다. 예를 들어, 다중 메모리 뱅크들을 사용함으로써, 그것에 의해 더 많은 수의 열들에 결함이 있게 될 경우를 허용하는 한편, 여전히 그 결함있는 열들을 배제할 수 있는 기능을 유지한다. 또한, 각 뱅크를 뱅크 반쪽 당(또는 다른 분리 형태로) 어드레싱함으로써, 리던던시의 양이 여전히 더 많이 증가될 수 있다. 또 다른 예로서, 도 14의 실시예는 본 발명의 범위의 다양한 특징들이 다른 크기의 메모리들에 응용될 수 있음을 나타낸다. 또 하나의 예로서, 이전의 섹션과 연관된 타이밍에 대한 여러가지 고려가 본 실시예에는 적용될 필요가 없고, 이에 따라, 본 실시예들은 캐쉬 구조를 포함한 다양한 메모리에 적용될 수 있지만, 거기에 한정되지는 않는다. 끝으로, 상기 예들은 메모리로부터 정보를 독출하는 것과 연관해서 설명되었지만, 메모리 내의 한 행에 정보를 기록하기 위해서도 비슷한 방법으로 열이 배제될 수 있음을 주목한다.
도 15는 참조 번호 326에 대략적으로 나타낸 본 발명의 또 다른 실시예에 따른 메모리 장치를 나타낸다. 메모리 장치(326)는, 본 실시예에 따르면 논리적으로 또는 물리적으로 4개 메모리 섹션들 3280 내지 3283로서 분할된 메모리 어래이(328)를 포함한다. 이 분할 기술에 상관없이, 본 실시예에서는 한번에 전체 메모리 어래이(328)를 따라 한개의 행이 액세스된다. 예를 들어, 메모리 섹션(3283)의 최하부 행이 액세스된다면, 메모리 섹션들 3282, 3281 및 3280의 최하부 행들도 동시에 액세스된다. 각 메모리 섹션은 3300 내지 3303으로 도시된 제1차 열 그룹을 각각 포함한다. 이 그룹들은 상기 행들과 함께 사용된 용어와 같은 의미에서 "제1차"로서 일컬어졌는데, 이것은, 여기서는 행이 아니라 열인, 데이터 전송 소자가 정상적으로 동작할 것으로 기대되나 결함이 있는 것으로 발견되고 그런 경우 여분 소자(spare element)가 대신 데이터를 전송하는데 사용된다. 예로써, 제1차 열 그룹이 64개 열들을 포함한다고 가정한다. 또한, 각각의 메모리 섹션은 3320 내지 3323으로서 도시된, 한개의 스페어 열을 더 포함한다.
상기와 같이 주어짐에 따라서, 각각의 메모리 섹션 3280 내지 3283은 토탈 65개 메모리 열들을 포함한다. 이 메모리 열들 각각은 3340 내지 3343으로 나타낸 대응하는 멀티플랙서 어래이 회로에 접속되어 도시된다. 도 15를 단순화하기 위해 상세히 나타내지는 않았지만, 각각의 멀티플랙서 어래이 회로(3340 내지 3343)는 토탈 64개 멀티플랙서들에 접속된 토탈 65개의 메모리 열 입력단들을 포함학, 64개 멀티플랙서들 각각은 하나의 출력 열을 제공한다. 예를 들어, 멀티플랙서 어래이 회로(3340)에 있어서, 그것의 64개 멀티플렉서들은 출력 열들 OC0 내지 OC63을 제공한다. 나머지 세개의 멀티플랙서들 각각도 유사하게 그리고 이 분야의 통상의 기술자에 의해 이해되는 바와 같이, 도 15에 나타낸 64개 출력 열들을 제공한다.
또한, 메모리 장치(326)는 결함 열 ID 엔코더(336)를 포함한다. 본 실시예에 있어서, 결함 열 ID 엔코더(336)는 각 메모리 그룹(3280 내지 3283)에 대응하는 결함 열에 대한 코드를 저장한다. 이에 따라, 결함 열 ID 엔코더(336)는 3360 내지 3363으로 나타낸 토탈 4개의 코드들을 포함하는데, 이들 각각은 본 실시예에서 도 14의 결함 열 ID 엔코더(324) 방식과 같이, 또는 도 13의 결함 열 ID 엔코더(308)와 같이 퓨즈들에 의해 나타낼 수 있다. 또한, 각 메모리 그룹이 모두 65개 열들을 포함하기 때문에, 저장된 해당 코드 각각의 길이는 상기 방정식 1에 따라 7비트이다(즉, fCEILING{INT(log2(64 + 1) )} = fCEILING{6.02} = 7). 끝으로, 이하의 논의를 용이하게 하기 위해, 결함 열 ID 엔코더(336)에서 각 결함 열 코드는 해당 메모리 그룹의 첨자에 맞춘다. 예를 들어, 결함 코드 3360은 메모리 그룹 3280에 대응하고, 결함 열 코드 3361은 메모리 그룹 3281에 대응하고, 다른 두개의 결함 코드들과 메모리 그룹들도 그런식으로 매칭된다.
메모리 장치(326)는 또한 결함 열 ID 엔코더(336)로부터 4개의 결함 열 코드들 각각을 수신하기 위해 접속된 온도계형 디코더 회로(338)를 포함한다. 여기서는 비록 상세히 도시되지 않았지만, 온도계형 디코더 회로(328)는 멀티플랙서 어래이 회로들(3340 내지 3343) 각각에 있는 멀티플랙서들 각각에 제어 신호를 제공하기 위해 접속된다. 이에 따라, 온도계형 디코더 회로(328)는 각각의 멀티플랙서 어래이 회로들(3340 내지 3343)에 각각 64개 온도계형 제어 신호들로 된 4개의 개별적인 세트들을 제공한다. 앞서 발명의 실시예를 이해했기 때문에 메모리 장치(326)의 동작이 제시되는데, 이에 따라 독자는 이전의 논의에 대해 잘 알고 있다고 가정한다. 처음에, 행 어드레스가 메모리 어래이(328)를 어드레스하는데 사용되고, 이에 따라, 이 어드레스에 응답하여, 각각의 그룹들(3280 내지 3283)을 따라 같은 행이 활성화된다. 이에 응답하여, 65개의 메모리 열들을 제공하는 각각의 메모리 그룹들(3280 내지 3283)을 사용하여, 도시되지 않은 센스 앰플리파이어가 260개 메모리 열들을 따라 데이터를 출력한다. 그 다음, 메모리 그룹들(3280 내지 3283) 각각에 대해, 해당하는 결함 열 코드가, 멀티플랙서 어래이 회로들(3340 내지 3343) 각각의 멀티플랙서들을 제어하기 위해, 온도계형 엔코더(338)에 의해 엔코드된다. 더 구체적으로는, 결함 열 코드에 응답하여, 온도계형 엔코더(338)은 상기 표 5와 같은 패턴을 제공하지만, 여기서 그 출력은 64개의 논리 0, 64개의 논리 1, 또는 이 두 극대값들 사이에 있는 어떤 온도계형 패턴, 즉 이 패턴의 한쪽 부분은 연속적으로 논리 0인 반면 이 패턴의 다른 쪽 부분은 연속적으로 1인 패턴 중 하나이다. 4개 64-비트 패턴들 각각에 응답하여, 각 해당 멀티플랙서 어래이 회로는 그의 출력 열들로부터 그의 65개 입력 메모리 열들 중의 하나를 배제한다. 그리하여, 액세스가 완료시에, 토탈 256개의 데이터 비트들이 메모리 장치(326)로부터 출력된다.
메모리 장치(326)의 구조 및 동작에 대한 논의가 주어졌으므로, 이것이 앞선 실시예들로부터의 여러 잇점들을 제공하고 부가적인 잇점들도 제공함을 주목한다. 예를 들어, 메모리를 논리적인 또는 물리적인 그룹들로 분할하되, 각 그룹은 그 그룹에 대응하는 스페어 열을 가짐으로써, 그것에 의해 많은 갯수의 열들이 결함이 있는 경우도 수용하는 한편 여전히 그 결함있는 열들을 배제하는 기능을 유지한다. 또 하나의 예로서, 도 15의 실시예는 본 발명의 범위의 여러 특징들이 다른 크기의 메모리들에 응용될 수 있고 다양한 메모리 구조들에도 응용될 수 있음을 나타낸다.
도 16은 참조 번호 340에 대략적으로 도시한 본 발명의 또 다른 실시예에 따른 메모리 장치의 전기 회로 도면을 나타낸다. 메모리 장치(340)에 대한 상세한 설명 이전에, 우선, 상기 논의는 메모리 장치의 열들로부터 데이터를 독출하는 것에 연관되었음을 주목한다. 그러나, 본 발명의 매우 많은 원리들은 메모리 장치에 데이터를 기록하는 데에도 응용되고, 이에 따라, 도 16의 실시예가 이러한 원리들 가운데 특정한 것들의 응용을 나타내며, 본 발명의 범위 내에서 메모리 장치에 기록하는 특징들을 더 나타내는 부가적인 실시예들이 이어진다. 이러한 전제에 따라, 메모리 장치(340)는 도 13의 메모리 장치(304)의 소자들과 같은 소자들을 몇가지 공유하고, 이에 따라, 이러한 소자들에는 같은 참조 번호들 그리고/또는 문자들이 사용된다. 비슷한 소자들을 보면, 메모리 장치(340)는 임의의 갯수의 행들을 갖고 일련의 메모리 열들 C0 및 C4를 따라 정보를 통신한다.
도 13의 메모리 장치(304)와 대조적으로, 도 16의 메모리 장치(340)는 데이터가 행 어래이(302) 내의 행들에 도달하도록 그의 메모리 열들에 정보를 기록하도록 되어 있다. 이를 위해, 메모리 장치(340)는 IC0 내지 IC3으로 나타낸 다수개의 입력 열들을 포함한다. 앞선 실시예들에서의 출력 열들의 경우에서와 같이, 입력 열들의 갯수는 메모리 열들의 갯수보다 하나 더 적어서, 본 예에서는 5개 메모리 열들 가운데 4개에 데이터를 기록하기 위해 4개의 입력 열들이 있다. 메모리 장치(340)는 또한 입력 열들로부터의 데이터를 선택된 메모리 열들 가운데 어떤 것들에 기록할 지를 제어하기 위해 복수개의 멀티플랙서들을 포함한다. 이런 관계에서, 멀티플랙서들의 갯수는 입력 열들의 갯수보다 하나 적다. 이에 따라, 메모리 장치(340)에는, MI1, MI2 및 MI3에 의해 나타낸 3개의 멀티플랙서들이 도시되어 있다. 이 멀티플랙서들의 접속에 대해, 그들이 최외각 입력 열들(즉 IC0 및 IC3) 가운데 하나에 접속되는지, 또는 이 최외각 열들 사이의 열들의 쌍에만 접속되는지에 따라 특징지어진다는 것을 주목한다. 우선, 최외각 입력 열들을 보면, 각각은 최외각 메모리 열들에 따로따로 직접 접속된다. 예를 들어, IC0는 C0에 직접 접속된다. 또 최외각 입력 열들 각각은 멀티플랙서의 한 입력단에 접속된다. 예를 들어, IC0는 멀티플랙서의 한 입력단 MI1에도 접속된다. 이제 최외각 열들 사이에 놓인 입력 열들을 보면, 각각이 제1 입력 멀티플랙서 및 제2 입력 멀티플랙서에 접속되는데, 여기서 제1 멀티플랙서는 그 입력 열과 같은 첨자를 갖는 메모리 열에 접속된 출력단을 갖고, 여기서 제2 멀티플랙서는 그 입력 열보다 하나 더 큰 첨자를 갖는 메모리 열에 접속된다. 예를 들어, IC1은 최외각 입력 열들 사이에 있는 입력 열이다. 이에 따라, IC1은 C1에 접속된 출력단을 갖는 MI1에 접속되고, IC1은 또한 C2에 접속된 출력단을 갖는 MI2와도 접속된다. 이 예에 도시된 바와 같이, 최외각 입력 열들 사이에 놓인 또 다른 입력 열 IC2도 유사하게 MI2 및 MI3에 접속된다. 또한, 도 16의 실시예는 최외각 입력 열들 사이에 놓인 두개의 입력 열들만을 포함하지만, 이 분야의 통상의 기술자는 최외각 입력 열들 사이에 놓인 임의의 갯수의 입력 열들을 갖는 구조에 대해 이 패턴이 반복될 수 있다는 것을 이해할 것이다. 마지막으로, 종래 기술에서와 같이, "0"과 "1"의 표시가 제어 신호 "0" 또는 "1"을 근거로 상기 "0" 이나 "1" 중 하나에 인접한 데이터를 선택하는 것을 나타내기 위해 각 멀티플랙서에 도시되어 있다.
도 16의 메모리 장치(340)는 또한 도 13에서와 같은 결함 열 ID 엔코더(308) 뿐만 아니라 그와 연관된 온도계형 디코더 회로(306)를 포함한다. 그러나, 온도계형 디코더 회로(306)에 대해서는, 그것이 도 13의 실시예에서 4개의 제어 비트들을 출력한다는 것을 상기한다(즉, 멀티플랙서들 M1 내지 M4 각각에 하나씩). 그러나 도 16의 실시예에서는, 세개의 멀티플랙서들 MI1 내지 MI3만 있다. 그럼에도 불구하고, 아래에 주어진 바와 같이, 데이터 독출용(즉, 도 13)으로 결함있는 열을 배제하기 위해 멀티플랙서들 M1 내지 M4를 제어하는 온도계형 디코더 회로(306)로부터의 일련의 출력들의 부분 집합(subset)가 데이터 기록용으로 결함있는 열들을 배제하기 위해 도 16에서 사용될 수 있다. 나중에 설명되는 바와 같이, 이 부분 집합은 온도계형 디코더 회로(306)로부터의 모든 제어 비트들 중 첫번째 또는 마지막 멀티플랙서에 대응하지 않는 것들을 포함한다. 다시 말해서, M1 내지 M3에 대한 제어 비트들이 사용될 수 있거나(그것에 의해 마지막 멀티플랙서 M4에 대응하는 것들이 사용되지 않음) 또는 M2 내지 M4에 대한 제어 비트들이 사용될 수 있다(그것에 의해 맨 처음 멀티플랙서 M1에 대응하는 것들이 사용되지 않음). 이에 따라, 도 16에 도시된 예에서는, M1 내지 M3에 대한 제어 비트들이 M1 내지 M3을 제어하기 위해 사용된다.
멀티플랙서들 MI1 내지 MI3에 접속되는 결함 열 ID 엔코더(308)의 출력 비트들이 주어짐에 따라, 각각의 멀티플랙서들을 제어하기 위한 온도계형 디코더 회로(306)에 의해 제공되는 출력들이 다음의 표 6에 도시된다.
확인된 결함 열 및 엔코딩 온도계형 디코더로부터의 MI3 제어 비트 온도계형 디코더로부터의MI2 제어 비트 온도계형 디코더로부터의MI1 제어 비트
C0(000) 1 1 1
C1(001) 1 1 x
C2(010) 1 x 0
C3(011) x 0 0
C4(100) 0 0 0
표 6의 "x"는 제어 비트가 무시됨을 나타내는데, 그것은, 어떤 이진 상태가 제공된다고 하더라도 문제가 않된다는 것이다. 또, 표 6의 신호들을 트래이스(trace)하는 몇개의 예들이 도 16의 실시예를 이해하는데 도움이 될 것이기 때문에, 아래에 그러한 예들이 제공된다.
표 6에 주어진 장치(340)의 동작의 제1 예로서, C0가 결함있는 것으로 판단되었다고 가정하면, 이에 따라 IC0 내지 IC3로부터 C1 내지 C4로 각각 데이터를 기록하는 것이 바람직하다. 그래서, C0이 온도계형 디코더 회로(306)의 출력으로서 표 6의 최상부 행을 주는 결함 열 ID 엔코더(308)에서 엔코드된다. 구체적으로, 이 예에 대한 제어 출력은 111이다. 도 16에 있는 멀티플랙서들의 동작을 살펴보면, 이 제어 출력은 각각의 멀티플랙서들 MI1 내지 MI3이 도 16의 방향에서 멀티플랙서의 오른쪽에 있는 입력 열을 그의 출력단에 접속하게 하는 것을 주목한다. 이에 따라, MI1은 IC0를 C1에, MI2는 IC1을 C2에, 그리고 MI3는 IC2를 C3에 접속한다. 또한, 이미 IC3은 C4에 직접 접속된다. 이에 따라, 이 장치의 기록 싸이클에서, 데이터가 각 입력 열로부터 결함없는 메모리 열에 기록될 수 있다. 끝으로, 비록 C0가 결함이 있더라도, 여전히 IC0로부터 데이터를 수신한다. 그러나, IC0로부터의 데이터가 또한 결함이 없는 열, C1에 또한 제공되었기 때문에 데이터 무결성 문제는 없다.
표 6에 주어진 장치(340)의 동작의 제2 예로서, C2가 결함있는 것으로 판단되었다고 가정하면, 이에 따라 IC0로부터 C0에, IC1으로부터 C1에, IC2으로부터 C3에, IC3으로부터 C4에 데이터를 기록하는 것이 바람직하다. 이에 따라, 결함 열 ID 엔코더(308)에서 C2의 엔코딩이 주어지면, 온도계형 디코더 회로(306)가 표 6의 세번째 행에 있는 온도계형 패턴을 출력하는데, 그값은 1x0이다. 이 신호는 그 중간에 무슨 값이든 상관없는 비트를 포함하기 때문에, 적합한 출력값이 110 또는 100 중 하나이고, 이것은 x 대신에 1 또는 0 중 하나로 대체한 것이다. 이제 표 6에 제시된 것과 같이 어느쪽도 수용할 수 있는 것을 나타내기 위해 상기 양자 택일적인 것의 가능성이 검사된다. 우선 제어 패턴 110을 보면, 결함이 없는 메모리 열들에 접속된 출력단들을 갖는 멀티플랙서들에 해당하는 콘트롤 패턴의 콘트롤 비트들을 먼저 살펴봄으로써 그 효과를 이해하는 것이 아마 가장 쉬울 것이라는 것에 주목한다. 이에 따라, 본 예에서는, MI1과 MI3이 결함없는 메모리 열들에 접속된 출력단들을 갖는다(반면 MI2는 결함있는 열 C2에 접속된 출력단을 갖는다). MI1에 대해서 보면, 그의 제어 입력단의 0은 MI1이 데이터를 IC0로부터 C0로 접속하게 만들고, 이것에 의해 IC0로부터의 데이터가 C0에 접속되게 해준다. 또한, MI3에 대해서 보면, 그 제어 입력단에서 1은 MI3이 데이터를 IC2로부터 C3에 접속하게 하여, 이것에 의해 IC3으로부터의 데이터가 C4에 접속되게 해준다. 이러한 적당한 접속들이 주어지면, MI2의 제어는 이 경우 아무 문제가 되지 않는다는 것을 주목한다. 만일 MI2로의 제어 입력이 온도계형 패턴 110에서와 같이 1이라면, MI2는 IC1으로부터 데이터를 선택하고 그것을 C2에 접속한다. 그러나, 이 조치는 IC1으로부터의 데이터가 이미 MI1을 경유하여, C1에도 접속되어 있기 때문에 상관이 없다. 또한, C2가 결함이 있기 때문에, 데이터 기록 동안 그것을 IC1에 접속하는 것에 아무 하자가 없다.
이런 결과들이 주어지면, 이 분야의 통상의 기술자는 이 예에서 온도계형 패턴이 100인 경우와 같이 MI2로의 제어 입력이 0이라면, MI2는 IC2로부터 데이터를 선택하여 그것을 C2에 접속한다는 것을 알 것이다. 그러나 역시, 이것은 IC2로부터의 데이터가 이미 MI3를 경유하여 C3에 접속되어 있기 때문에 아무 상관이 없다. 이에 따라, 패턴 110 또는 100 중 어느것도 본 예에 적당하고, 그래서 가운데 비트가 무엇이든 상관없으므로 표 6의 가운데 행에 나타난 것과 같이 1x0이 된다.
표 6으로부터 제어 비트들의 인가에 대한 상기 예가 주어졌으므로, 이 분야의 통상의 기술자는 표 6의 나머지 행들을 확인하기 위해 메모리 장치(340)의 동작을 검사할 수 있기 때문에, 그런 예들 각각에 대한 상세한 설명은 제시되지 않는다. 그렇지만, 이제 메모리 열들에 데이터를 기록할 목적으로 표 6의 제어 비트들의 타당성에 대해 설명했으므로, 열 데이터의 독출에 관한 상기 표 5와의 공통성을 주목한다. 구체적으로는, 표 6에서 상관없는 비트들이 주어졌기 때문에, 표 5의 처음 세개 또는 마지막 세개 열들 가운데 어느 쪽도 표 6에 도시된 것에 해당하는 적합한 데이터를 제공한다는 것을 주목한다. 그 결과, 표 5의 제어 비트들 중 가장 오른쪽 또는 가장 왼쪽 열 중 하나를 제거한 나머지 비트들이 표 6의 제어 비트들을 제공하는데 사용될 수 있다. 이에 따라, 도 16에 도시된 데이터 기록용 멀티플랙서들에 대해서, 제어 비트 패턴의 최상위 비트 또는 최하위 비트 중 하나가 메모리 열들로 데이터를 기록하는 것과 관련해서 멀티플랙서들과의 접속에 사용되지 않는다는 것을 제외하고, 그들은 도 13에 도시된 데이터 독출용으로 사용된 멀티플랙서들과 같이 온도계형 디코더 회로(306)의 같은 출력단들에 접속될 수 있다.
상기로부터 이 분야의 통상의 기술자는 다양한 본 발명의 실시예들이 메모리 열들의 그룹으로부터 다수의 출력 열들로 데이터를 독출하거나 또는 다수의 입력 열들로부터 메모리 열들의 그룹으로 데이터를 기록하는 것 중 하나를 의도함을 이해할 것이다. 실시예가 독출용인지 기록용인지에 상관없이, 상기 실시예들은 메모리 열들 중의 하나가 결함이 있는 경우에 이러한 동작을 허용한다. 도 17은 도 13에 데이터 독출용으로 그리고 도 16에 데이터 기록용으로 도시된 4개 메모리 열들의 예를 다시 사용하여, 독출 및 기록 모두에 대한 공통적인 기여를 도식적으로 나타낸다. 이에 따라, 같은 메모리 열들 C0 내지 C4가 도 17의 최상부를 가로질러 도시된다. 이 열들 중에 선택된 어떤 것들로부터 데이터를 독출하거나, 또는 이 메모리 열들 중에 선택된 어떤 것들로 데이터를 기록하는 것에 대해, 도 13 및 도 16의 입력 및 출력 열들이 입력/출력 열들(축약해서 I/O)을 형성하기 위해 연결되고, 이에 따라, 열들 I/O0 내지 I/O3을 제공한다. I/O 열들과 메모리 열들 사이에는 I/O 열과 I/O 열마다 가능한 두개 메모리 열들 중 하나 사이에 가능한 전기적 통신 경로를 나타내는 양-방향 화살표들이 도시되어 있다. 끝으로, 각각의 I/O 열에 대해, 그 두개의 양-방향 화살표들은 대응하는 I/O 열의 첨자와 함께 결합된 "T"에 의해 나타내어진 온도계형 코드로부터의 제어 비트와 함께 도시된다. T 신호와 그것의 컴플리먼트(complement)는, 만일 T의 값이 제1 상태라면, 컴플리먼트 표시가 없는 화살표(즉, 도 17의 I/O0의 왼쪽에 있는 화살표)가 I/O 열과 메모리 열 사이의 접속을 나타내고, 반면, 만일 T의 값이 제1 상태와 상보되는 제2 상태(즉, )라면, 컴플리먼트 표시에 대응하는 화살표(즉, 도 17의 I/O0의 오른쪽에 있는 화살표)가 I/O 열과 메모리 열 사이의 접속을 나타낸다. 이 표시는 아래에 제공되는 예들에서 사용된다.
도 17의 장치가 주어졌으므로, 이제 데이터의 독출이나 기록에 대해 상기 실시예들이 다양한 개념들을 공유함을 주목한다. 첫째, 메모리 열들 가운데 결함이 있는 것은 엔코딩 회로에 의해 식별(identify)된다. 둘째, 온도계형 패턴이 상기 엔코드된 ID를 근거로 발생된다. 셋째, 온도계형 패턴에 응답하여, 결함 있는 메모리 열 이외의 메모리 열들 각각이 적어도 I/O 열들 중 하나에 따로따로 접속되어 데이터가 메모리 열들과 I/O 열들 사이에서 통신된다. 앞의 문장에서 메모리 열들 각각이 "적어도" 이렇게 접속된다고 한데에 주목한다. 이 조건은 이하의 데이터 독출 및 기록 모두에 대한 설명으로부터 더 잘 이해된다.
데이터 독출의 경우에 있어서, 결함있는 열은 I/O 열들 중의 임의의 것과 결합되는 것이 배제된다. 그리하여, 결함있는 열의 신호는, 만일 있다면, 독출되지 않는다. 예를 들어, C3이 결함이 있다고 가정한다. 이에 따라, 독출에 대해 그것을 배제하기 위해, T3 내지 T0에 대한 온도계형 코드는 1000과 같다. 이에 따라, I/O3는 C4와, I/O2는 C2와, I/O1는 C1과, I/O0는 C0와 통신한다. 그 결과, 데이터를 독출하는 경우, 결함있는 메모리 열 이외의 메모리 열들만 각각의 I/O 열들에 따로따로 접속된다. 그리하여, 상술한 바와 같이, 결함있는 메모리 열을 제외한 메모리 열들 각각이 적어도 I/O 열들 중 하나에 따로따로 접속된다는 것이 사실이다. 하지만 다른 메모리 열(즉, 결함있는 메모리 열)은 I/O 열에 접속되지 않는다는 것 또한 사실이다.
데이터 기록의 경우에 있어서, 상기 제공된 멀티플랙서 실시예들은 결함있는 메모리 열을 제외한 메모리 열들 각각이 I/O 열들 중 하나에 따로 따로 접속되는 것을 역시 보장한다. 하지만, 그에 부가하여, 그들은 실재로 결함있는 열이 I/O 열들 중 하나로부터 데이터를 수신하는 것을 허용한다. 그럼에도 불구하고, 이 결과는 비록 도시된 멀티플랙서들의 사용이 있었지만 결함있는 메모리 열에 접속된 데이터와 같은 데이터가 결함이 없는 메모리 열에도 또한 접속되게 보장하기 때문에, 데이터 무결성에 대한 문제가 없다. 멀티플랙서 실시예의 이러한 결과가 주어졌으므로, 기록에 대한 본 발명의 실시예에 따른 더 폭 넓은 설명에 있어서, 도 17의 화살표들은 상술한 온도계형 패턴에 의해 다시 제어되는 양-방향 전송 게이트들을 나타내는데, 이것은 결함이 없는 메모리 열들로만 통신하도록 만든다는 것을 주목한다. 더 구체적으로는, 결함있는 열을 제외한 메모리 열들에 기록하기 위해, 결함있는 메모리 열로의 화살표 또는 화살표들은 결함있는 메모리 열들이 임의의 I/O 열과 통신하지 않도록 절단될 수 있다(즉, 전송 게이트가 비활성화 됨). 이에 응답하여, 결함 있는 메모리 열을 제외한 메모리 열들만이 I/O 열들 중의 하나에 따로따로 접속된다. 예를 들어, C2에 결함이 있고 기록이 요구된다고 한다. 이에 따라, 기록시, C2를 배제하기 위해, T3 내지 T0에 대한 온도계형 코드는 1100으로 된다. 이에 따라, I/O3는 C4와, I/O2는 C3와, I/O1는 C1과, I/O0는 C0와 통신한다. 그리하여 C2가 I/O 열들 중 어떠 것에도 접속되지 않음을 주목한다. 그 결과, 도 17의 표시는, 데이터 기록의 경우, 결함있는 메모리 열 이외의 메모리 열들만 각각의 I/O 열들에 접속되게 해준다.
도 17에 연관해서 마지막으로 보면, 이것은 앞선 실시예들에서와 같이, 본 발명의 원리가 독출용으로, 또는 기록용으로, 또는 기록 및 독출의 조합용으로 시스템에 응용할 수 있음을 더 나타낸다. 이에 따라, 발명의 범위를 제시할 목적으로, I/O 열들은 단순히 실재 메모리 열들에 대해 외부의 데이터를 통신하는 데이터 열의 어떤 타입을 나타냄을, 즉 통신이 독출이나 기록이나 둘 다일 수 있음을 의미함에 주목한다.
이제 도 16으로 돌아가면, 이것은 모든 입력 열들로부터 이에 대응하는 결함없는 메모리 열들로 기록하는 기능을 갖는 실시예를 제공한다. 이런 점에서, 역시 본 실시예에 의해 설명되는 또 하나의 문제가 바이트 기록 기능과 연관해서 생긴다. 구체적으로, 이 분야의 대부분의 메모리들은 한 바이트(즉, 8 열들)보다 훨씬 더 큰 토탈 갯수의 입력 열들을 포함한다. 그러나, 이 메모리들 가운데 어떤 것은 토탈 갯수의 입력 열들 가운데 한 바이트만이 한 번에 기록될 수 있는 소위 바이트 기록 기능을 갖는다. 사실, 이 가능은 한 바이트로만 항상 한정되지는 않고, 임의의 크기의 비트들도 될 수 있다. 예를 들어, 128 열 메모리에 있어서, 한번에 32비트를 메모리에 기록하는 것이 가능할 수 있다. 이에 따라, 이 경우에, 기록 그룹 사이즈는 32비트이다. 그래서 본 명세서에서, 이 그룹은 기록 단위로서 참조되는데, 상기 예를 위해 단지 제공된 8 또는 32 중 어느 한 비트 수를 포함할 수 있다는 것을 이해한다. 기록 단위에 대한 소개가 주어졌으므로, 본 실시예들은 이하 설명될 기록 단위들의 기록을 허용하는 기능을 포함하도록 더 변경될 수 있다는 것을 주목한다.
기록 단위 기능을 제공하는 방법에 대한 첫번째 방법으로서, 행 어래이(302)와 그와 연관된 도 16의 회로가 복수번 반복될 수 있고, 각 반복되는 구조는 그리하여 4 비트 길이의 기록 단위를 제공하는 것을 주목한다.
다시 말해서, 반복되는 행 어래이(302) 장치 각각은 4개 입력 열들 및 5개 메모리 열들을 제공하고, 각각의 반복되는 장치는 독립적으로 기록될 수 있고, 그것에 의해 4 비트 기록 단위를 제공하고, 더 나아가 상기 논의된 열 여분 특징들을 더 제공한다. 또한, 상술한 바와 같이, 행 어래이(302)는 4개 입력 열들로 제한될 필요가 없다. 이에 따라, 반복되는 행 어래이(302)의 실시예에 있어서, 각 반복되는 구조는 4개의 입력 열들로 제한될 필요가 없다. 예를 들어, 각 구조는 8개 입력 열들을 포함할 수 있고, 그것에 의해 각 반복되는 구조에 대해 8 비트의 기록 단위를 제공할 수 있다. 그러나, 어떤 메모리들에 대해서는 그러한 방법이 바람직하지 않을 수 있다. 예를 들어, 만일 8 비트 구조가 256 비트 데이터 라인을 형성하기 위해 반복된다면, 이 데이터 라인은 토탈 32개 구조들(즉, 8 비트 × 32 구조 = 256 비트 데이터 라인)을 포함할 것이다. 그러나, 이에 따라 그러한 방법은 32개의 여분의 열들을 포함할 것이고, 이것은 바람직한 것보다 더 많은 여분이 될 수 있다. 이에 따라 아래에 또 다른 방법이 제공된다.
기록 단위 기능을 제공하는 두번째 방법으로서, 도 18에는 도 16의 메모리 장치(340)가 다시 도시되었지만 기록 단위 기능을 얻기 위한 부가적인 회로를 포함한다. 도 18의 예를 위해, 기록 단위 길이가 2 비트이고, 이에 따라, 기록 동작 동안, 입력 열들 쌍 가운데 하나 또는 두개 모두가 대응하는 메모리 열들의 한 쌍 또는 두 쌍들에 기록될 수 있다. 물론, 만일 원한다면, 모든 기록 단위들이 같은 시간에 기록되게 각 기록 단위가 동시에 기록될 수 있다. 이에 따라, 도 18의 예에서, 4개 입력 열들로부터의 데이터가 4개 메모리 열들로 접속될 것이다. 이제 도 18을 자세히 보면, 상기 도 16에서 수반된 기능들은 여기서 다시 상세히 설명하지는 않지만, 그 대신, 독자는 그러한 구조와 그 동작에 대한 앞선 논의를 참조한다. 도 18의 첨가된 회로를 보면, 메모리 장치(340)은 두개 기록 단위들 각각에 대한 기록 인에이블 신호 WE0 및 WE1을 포함한다. 신호 WE0는 제어 신호로서 기록 인에이블 회로(3420)에 접속된다. 기록 인에이블 회로(3420)는 이 분야에서 공지된 기능을 제공하는데, 그럼으로써, 기록 인에이블 회로에 입력된 데이터에 의해 열들이 기록될 수 있도록 그 제어 신호가 그것이 접속된 열들을 활성화하여 한다. 이런 기능은 예를 들어, n-채널 트랜지스터의 소오스 및 드레인을 그 열과 직렬로 접속함으로써, 그리고 제어 신호 수신용으로 게이트를 사용함으로써 구현될 수 있다. 이러한 구현, 또는 이 분야의 통상의 기술자에 따라 선택된 구현들에 있어서, WE0가 확정되는 경우, 인에이블 회로(3420)에 입력된 데이터가 메모리 열들 C0 및 C1으로 각각 지나간다. 이 동작에 기인하여, 제어 신호들이 확정되는 경우 인에이블 회로(3420)에 입력된 데이터 신호들이 이 회로를 통해 통과하는 것을 개략적으로 나타내기 위해 점선 라인들이 인에이블 회로를 통해 도시된다. 신호 WE1은 WE0와 같은 방식으로 접속되지만, 그것에 연관된 기록 인에이블 회로(3421)에 접속된다. 기록 인에이블 회로(3421)는 기록 인에이블 회로(3420)와 같은 방식으로 동작하지만, 여기서는 메모리 열들 C3 및 C4에 대해 동작한다. 그리하여, WE1이 확정되면, 기록 인에이블 회로(3421)에 입력된 데이터가 메모리 열들 C3 및 C4로 지나간다.
도 18의 메모리 장치(340)는 또한 3420-1에 나타낸 세번째 기록 인에이블 회로를 포함한다. 여기서 이 첨자는 이 기록 인에이블 회로가 기록 인에이블 회로(3420)와 기록 인에이블 회로(3421)에 대응하는 메모리 열들 사이에 배치된 메모리 열(즉 C2)으로의 기록을 활성화함을 나타내는데 사용된다는 것을 주목한다. 3420-1에 나타낸 기록 인에이블 회로에의 제어 신호는 WE0 및 WE1에 접속된 두개의 데이터 입력단들 및 이하 설명된 이유 때문에 MI2를 제어하는 신호와 동일한 신호에 접속된 제어 입력단을 갖는 멀티플랙서 M0-1로부터 출력된다.
도 18의 메모리 장치의 동작은 다음과 같다. 소개에서와 같이, 이 동작은 WE0 및 WE1의 값들을 근거로 하나 또는 2-비트 기록 단위들을 기록할 수 있게 하는 것을 주목한다. 이에 따라, 만일 이들 두 값들 중 하나만이 확정되면, 4개 입력 열들 중 두개로부터의 데이터만이 메모리에 기록되는 반면, 만일 두 값들이 모두 확정된다면, 모든 4개의 입력 열들에서 데이터가 기록된다. 그러나 어느 경우에서도, 본 실시예가 메모리 열들 중 하나가 결함이 있을 수 있다고 고찰함을 더 상기한다. 이에 따라, 기록 활성화 기능도 역시 이런 가능성을 염두해야만 하고, 아래 나타낸 바와 같이, 도 18의 실시예는 알맞게 이 목적을 달성한다. 일반적으로, 기록 인에이블 회로(3420 및 3421)는 WE0을 C0 및 C1과 관련시키고, WE1을 C3 및 C4와 관련시킨다. 달리 말하면, 만일 WE0가 확정되면, C0 및 C1이 기록되고, 만일 WE1이 확정되면, C3 및 C4가 기록된다. 그러나, 만일 열들 C0, C1, C3, 또는 C4 가운데 하나에 결함이 있다면, 본 실시예는 또한 기록 단위의 일부가 C2에 접속되게 한다. 이러한 견지에서, C2를 지나는 데이터는 M0-1으로의 제어 입력에 의해 결정된 W0 또는 W1 중 하나에 의해 제어될 수 있음을 주목한다. 이 택일적인 제어는 어느 메모리 열이 결함이 있는가를 근거로 한다. 예를 들어, C0 및 C1이 결함이 없고, IC0 및 IC1의 2 비트 기록 단위로부터 데이터를 기록하고 싶다고 가정한다. 이에 따라, WE0가 확정되고, C0 및 C1이 IC0 및 IC1으로부터 데이터를 각각 수신한다(상기 온도계형 패턴을 사용하여). 그러나, 이제 C1이 결함이 있다고 가정한다. 이에 따라, 정상적으로 데이터를 C1으로 통과시킬 의도였던 기록 인에이블 신호(즉 WE0)가 대신 온도계 패턴에 따라 IC1으로부터 데이터를 수신하게 될 결함없는 열(즉 C2)으로 상기 데이터를 통과시키는데 사용되어야만 한다. 아래에 상세히 설명된 바와 같이, 멀티플랙서 M0-1는 이 결과를 얻기 위해 동작한다. 즉, 본 실시예를 위해, 멀티플랙서 M0-1는 WE0를 기록 인에이블 회로(3420-1)에 접속하고, 그렇게 함으로써, IC0 및 IC1으로부터의 2-비트 데이터가 C0 및 C2에 각각 기록되게 한다.
상기 예가 주어졌으므로, 주어진 기록 동안에, 기록 인에이블 신호(즉, WE0 또는 WE1 중 하나)에 응답하여 각각의 기록된 메모리 열이 기록된다. 그러나, 상술한 바와 같이, 결함있는 열의 존재는, 이와 같은 방식으로, 어느 메모리 열이 어느 기록 인에이블 신호와 연관되는지에 영향을 준다. 이에 따라, 아래 표 7은 메모리 열들 중 하나가 결함이 있는 것으로 주어진 경우, 각 메모리 열에 대해, 그 메모리 열에 기록하는 것을 허용하는데 사용된 대응하는 기록 인에이블 신호를 표시한다.
C4 C3 C2 C1 C0
C0가 결함인경우 WE WE1 WE1 WE0 WE0 무엇이든상관없음
C1이 결함인 경우 WE WE1 WE1 WE0 무엇이든상관없음 WE0
C2가 결함인경우 WE WE1 WE1 무엇이든상관없음 WE0 WE0
C3이 결함인경우 WE WE1 무엇이든상관없음 WE1 WE0 WE0
C4가 결함인경우 WE 무엇이든상관없음 WE1 WE1 WE0 WE0
표 7을 더 잘 이해하기 위해, 바로 아래 설명과 같이, 그 행들 중 몇개를 검사하는 것이 도움이 된다.
표 7의 표시들 중 첫번째 예로서, C4가 결함이 있다고 가정하면, 표 7의 최하부 행이 기록 인에이블 신호들의 바람직한 사용이다. 표 7의 행을 상세히 설명하기 앞서, 상기 도 16의 논의로부터 C4가 결함있는 경우에 온도계형 패턴이 IC0로부터의 데이터를 C0으로, IC1으로부터의 데이터를 C1로, IC2로부터의 데이터를 C2로, 그리고 IC3으로부터의 데이터를 C3으로 연결한 것을 상기한다. 이에 따라, 전체 4 비트들에서, 이것은 각 기록 단위가 2 비트인 두개의 기록 단위들의 기록을 나타낸다. 낮은 순번의 기록 단위(즉, IC0 및 IC1)를 보면, 회로를 통해 그것의 경로는 WE0에 의해 제어되어야 한다. 구체적으로, 이 기록 단위 내의 2 비트들 각각의 경로를 주목한다. 첫째로, IC0로부터의 데이터가 기록 인에이블 회로(3420)에 직접 접속하고, WE0가 확정되는 것에 응답하여, C0를 통과한다. 둘째, IC1으로부터의 데이터가 MI1을 통해 기록 인에이블 회로(3420)에 접속하고, WE0가 확정되는 것에 응답하여, C1으로 통과한다. 이제 높은 순번의 기록 단위(즉, IC2 및 IC3)를 고려하면, 그것의 회로를 통한 경로는 WE1에 의해 제어되어야 하기 때문에, 이 기록 단위 내의 두개 비트들 각각을 고려한다. IC2에 있는 데이터를 보면, C4가 결함이 있는 경우에, 이 데이터가 MI2에 의해 C2로 연결되는 것을 상기한다. 이에 따라, 본 예에서는, 표 7의 최하부 행의 가운데 엔트리에서 도시되듯이 C2가 WE1에 의해 활성화되어야 한다. 이에 대해, 상기 표 6으로부터, C4가 결함있는 본 예에 대하여 M0-1의 제어단에도 접속된 MI2로의 제어 신호가 0과 같음을 상기한다. 이에 따라, 도 18의 장치를 근거로, 제어 신호 0은 M0-1이 그의 입력들 중 하나인 WE1을 선택하게 하고, 그것을 기록 인에이블 회로(3420-1)에 출력한다. 이에 따라 WE1이 표 7에 표시된 바와 같이, C2의 기록을 제어하는데 사용된다. 끝으로, IC3에서의 데이터를 보면, 결함있는 C4에 대해 이 데이터가 MI3에 의해 C3으로 연결된다는 것을 상기한다. C3이 기록 인에이블 회로(3421)에 접속되어 있기 때문에, 그것은 도 18에 도시된 바와 같이, WE1에 의해 제어되고, 그것에 의해 표 7의 표시에 따른다.
표 7 표시들 중 두번째 예로서, C0이 결함이 있다고 가정하면, 이에 따라, 표 7에 있는 최상부의 WE 표시들이 기록 인에이블 신호로 사용되는 것이 바람직하다. 첫째로, 상기 도 16이 논의로부터, C0가 결함있는 경우의 온도계형 패턴이 IC0로부터의 데이터를 C1으로, IC1으로부터의 데이터를 C2로, IC2로부터의 데이터를 C3로, 그리고 IC3로부터의 데이터를 C4로 연결시킴을 상기한다. 낮은 순번의 기록 단위(즉, IC0 및 IC1)를 보면, 회로를 통한 그것의 경로는 WE0에 의해 제어되어야 한다. 이에 대해, IC0로부터의 데이터는 MI1을 통해 기록 인에이블 회로(3420)로 접속하고, WE0가 확정되는 것에 응답하여, C1으로 통과한다. 둘째, 하지만, IC1으로부터의 데이터는 MI2를 통해 기록 인에이블 회로(3420-1)에 접속한다. 표 7을 근거로 하면, 이 경우에, 기록 인에이블 회로(3420-1)는 WE0에 의해 제어되어야 한다. 에에 대해, 상기 표 6으로부터, C0가 결함이 있는 본 예에 대해, M0-1의 제어단에도 연결된 MI2로의 제어 신호는 1과 같다는 것을 상기한다. 이에 따라, 제어 신호 1은 M0-1이 그의 입력단들 중 하나로부터 WE0를 선택하여 그것을 기록 인에이블 회로(3420-1)에 출력하게 한다. 결과적으로 WE0가 표 7의 표시들에서와 같이, C2의 기록을 제어하는데 사용된다. 이제 높은 순번의 기록 단위(즉, IC2 및 IC3)를 고려하면, 회로를 통한 그의 경로는 WE1에 의해 제어되어야 하고, 이에 따라, 이 기록 단위에 있는 두개 비트들 각각을 살펴본다. IC2에 있는 데이터를 보면, 결함있는 C0에 대해, 이 데이터가 MI3에 의해 C3으로 연결됨을 상기한다. 이에 따라, 본 예에서는, C3이 WE1에 의해 활성화되어야 하는데, 이것은 WE1의 기록 인에이블 회로(3421)로의 접속에 기인하여 발생한다. 마지막으로, IC3에 있는 데이터를 보면, 그것은 기록 인에이블 회로(3421)에 직접 연결되고, 이에 따라 도 18에 도시된 바와 같이 WE1에 의해 제어되고, 그것에 의해 표 7의 표시들을 따름을 상기한다.
상기 두개의 예들을 제시했으므로, 이 분야의 통상의 기술자는 도 18에 도시된 메모리 장치(340)의 기록 단위 기능의 적절한 동작을 확인하기 위해 표 7에 표시된 나머지 예들을 검사할 것이다. 또한, 상기 두개의 예들은 어떻게 MI2를 제어하는 비트와 같은 비트가 MI0-1도 제어할 수 있는지를 나타낸다는 것을 주목한다. 이 결론은 또한 표 6 및 7에 있는 제어 정보의 중앙 열을 비교함으로써 나온다. 구체적으로, 표 6의 최상부 2개 행들로부터, 제어값 1은, C0가 결함이 있거나 또는 C1이 결함이 있는 경우 중 하나에 대해, MI2로 출력되고, 표 7의 최상부 2개 행들로부터 그러한 값은 WE0이 그러한 경우에 C2를 기록 활성화시키는 것이 명백하다. 유사하게, 제어값 0은 C3이 결함이 있거나 또는 C4가 결함이 있는 경우 중 하나에 대해 MI2로 출력된다는 것이 표 6의 최하부 2개 행들로부터 명백하고, 그러한 값은 WE1이 이러한 경우에 C2를 기록 활성화시킨다는 것이 표 7의 최하부 2개 행들로부터 명백하다. 이에 따라, 각 경우에 대해, 입력 열로부터의 데이터는 메모리 열로 적당하게 발송되고, 기록 단위 활성화가 허용된다.
도 19는 참조 번호 342에 대략적으로 나타낸 메모리 장치를 도시한다. 장치(342)는 도 18의 기록 활성화 원리의 또 다른 예를 나타내지만, 이 분야의 통상의 기술자에게 본 발명의 여러 개념들이 도 18에 제공된 예와 다른 크기의 구조에 응용할 수 있다는 것을 나타내기 위해 다른 크기의 구조로 되어 있다. 하지만, 도 19를 단순화하기 위해, 비록 몇개의 멀티플랙서들이 전체 시스템과 연계하여 도시되기는 했어도, 어느 메모리 열이 결함있는지에 따라 데이터를 발송하기 위하여 각각의 입력 열에 접속된 각각의 멀티플랙서를 포함하고 있지는 않다. 다음으로, 장치(342)를 보면, 이것은 IC0 내지 IC255로 나타낸 256개 입력 열들을 포함하는데, 도면을 간단히 하기 위해 이 입력 열들 중의 몇개만이 도시되어 있다. 이제 더 잘 이해되는 바와 같이, 이 256개 입력 열들은 4개 기록 단위들로 분할되고, 각각의 기록 단위는 64 비트로 되어 있다. 이에 따라, 상기 설명에서와 일관되게, 4개 기록 단위들 중 하나 또는 그 이상이 동시에 기록될 수 있다. 장치(342)의 래이아웃은 아마도 기록 단위들과 연계해서, 최외각 열들로부터 가장 내부의 열들을 살펴보는 것이 가장 간편하다. 이에 따라, 그 각각이 아래에 설명된다.
장치(342)의 최외각 입력 열들을 보면, 그들은 제1 기록 단위를 형성하는 입력 열들 IC0 내지 IC3 및 제4 기록 단위를 형성하는 입력 열들 IC192 내지 IC255를 포함한다. 이 두 기록 단위들의 접속은 이러한 각각의 기록 단위에 대한 다음의 논의에 의해 이해되는 바와 같이, 일반적으로 장치(342) 내에서 대칭적이다. 도 18에서와 같이, 제1 기록 단위 IC0 내지 IC63을 보면, IC0는 메모리 열 C0로 직접 데이터를 전달하도록, 또는 멀티플랙서 MI1을 통해 메모리 열 C0로 전달하도록 하면서, 제1 기록 단위에 대한 나머지 입력 열들(즉, IC1 내지 IC63)은 MI1 내지 MI63 멀티플랙서들 내의 두개의 연속된 멀티플랙서들의 데이터 입력단들에 접속된다. MI1내지 MI63 각각의 출력단들은 하나의 기록 인에이블 유닛(3440)에 접속된다. 기록 인에이블 유닛(3440)은 확정된 제어 신호 WE0에 응답하여 그의 입력단에 있는 데이터를 메모리 열들 C0 내지 C63에 접속된 출력단들로 접속한다. 제4 기록 단위 IC192 내지 IC255를 보면, IC255는 데이터를 직접 , 또는 MI255를 통해 메모리 열 C256으로 전달할 수 있도록 접속되고, 제4 기록 단위에 대한 나머지 입력 열들(즉, IC192 내지 IC254)은 MI193 내지 MI255의 그룹 내에 있는 두개의 연속된 멀티플랙서들의 데이터 입력단들에 접속된다. MI193 내지 MI255 각각의 출력단들은 하나의 기록 인에이블 유닛(3443)에 접속된다. 기록 인에이블 유닛(3443)은 확정된 제어 신호 WE3에 응답하여 그의 입력단에 있는 데이터를 메모리 열들 C193 내지 C256에 접속된 그의 출력단들로 접속한다.
장치(342)의 가장 내부에 있는 열들을 보면, 그들은 제2 기록 단위를 형성하는 입력 열들(IC64 내지 IC127) 및 제3 기록 단위를 형성하는 입력 열들(IC128 내지 IC191)을 포함하고 있음을 주목한다. 이들 두 기록 단위들의 접속들은 또한, 이러한 기록 단위 각각에 대한 다음의 논의에 의해 이해되는 바와 같이, 장치(342) 내에서 일반적으로 대칭적이다. 제2 기록 단위(IC64 내지 IC127)를 보면, IC64는 두개의 연속된 멀티플랙서들의 데이터 입력단들에 접속된다. 하지만, 이 멀티플랙서들 중 하나에 대해, 즉, MI64에 대해, 그것의 다른 입력단은 인접한 기록 유닛으로부터의 입력 열들에 접속되어 있음을 주목한다. 다시 말하면, MI64는 인접한 제1 기록 단위의 일부인 IC63에 접속된 제2 입력단을 갖는다. 그리하여, MI64(즉, C64)의 출력은 인접한 두개의 기록 단위들 사이의 경계 열을 형성한다. 도 18의 실시예에 대한 상술한 동작과 도 19의 공통성이 주어지면, 이 분야의 통상의 기술자는 C64가 2개의 인접한 기록 단위들 중 하나로부터 데이터를 제공할 수 있고, 그것은, 메모리 열 C0 내지 C256 가운데 결함있는 열의 위치에 따라, 제1 기록 단위의 IC63으로부터 또는 제2 기록 단위의 IC64로부터의 데이터를 제공할 수 있다는 것을 알 것이다. 제3 기록 단위(IC128 내지 IC191)를 보면, IC128은 두개 연속된 멀티플랙서들의 데이터 입력단들에 접속되는데, 여기서, 이 멀티플랙서들 중 하나, 즉 MI128은 인접한 기록 단위로부터의 입력 열에 접속된다. 여기서, MI128은 제3 기록 단위의 일부인 IC128에 접속된 데이터 입력단을 갖지만, 제2 기록 단위의 일부인 IC127에 접속된 또 하나의 데이터 입력단도 갖는다. 이에 따라, MI128의 출력(즉, C128)은 인접한 제2 와 제3 기록 단위들 사이의 경계 열을 형성한다. 그래서, C128은 메모리 열들 C0 내지 C256 가운데 결함있는 열의 위치에 따라, 제2 또는 제3 기록 단위들 중 하나로부터 데이터를 제공할 수 있다. 끝으로, 제3 기록 단위의 IC191이 또한 경계 열에 접속되는 것에 주목한다. 구체적으로, IC191은 MI192의 데이터 입력단에 접속되는데, 여기서 MI192는 제4 기록 단위의 일부인 IC192에 접속된 또 하나의 데이터 입력단을 갖는다. 이에 따라, MI192의 출력(즉, C192)은 인접한 제3과 제4 기록 단위들 사이의 경계 열을 형성한다. 그래서, C192는 메모리 열들(C0 내지 C256) 가운데 결함있는 열의 위치에 따라, 제3 또는 제4 기록 단위들 중 하나로부터 데이터를 제공한다.
상기 접속들 및 경계 열들이 주어지면, 장치(342)는 결함있는 열에 주어진 데이터를 적당하게 발송하는데 필요한 접속 및 기록 단위 기능을 포함한다는 것에 주목한다. 구체적으로, 각각의 경계 열들(C64, C128, C192)은 기록 단위 제어를 위해, 기록 인에이블 회로들(3440-1, 3441-2, 3442-3)에 접속된다. 도 18에서와 같이, 이 기록 인에이블 회로들 가운데 하이픈된 첨자는 각 회로가 2개의 기록 인에이블 신호들에 의해 활성화될 수 있음을 나타낸다. 예를 들면, 경계 열(C192)에 대응하는, 기록 인에이블 회로(3442-3)는 WE2 또는 WE3 중 하나에 의해 활성화될 수 있다. 이들 2개의 기록 인에이블 신호들 중 하나가 제어를 제공하게 허용하기 위해, 경계 열에 연관된 각 기록 인에이블 회로에의 제어 입력단은 이러한 관계를 나타내기 위해 같은 첨자를 공유하는 대응하는 멀티플랙서의 출력단에 접속된다. 예를 들어, 경계 열 C192를 보면, 그것의 기록 인에이블 회로(3442-3)는 데이터 입력단들로서 WE2 및 WE3을 갖는 멀티플랙서 M2-3의 출력단에 접속된다. 끝으로, 멀티플랙서 M2-3의 제어 입력단은 대응하는 경계 열에 대해 데이터를 출력하는 이 멀티플랙서를 제어하는 동일한 신호에 접속된다. 본 예에서, MI128은 데이터를 경계 열(C192)에 출력하고, 이에 따라, 그것의 온도계형 패턴으로부터의 제어 비트는(도 19에서 축약 형태의 "TP") M2-3을 제어하기 위해서도 접속된다. 바로 직전의 기록 인에이블 회로(3442-3)에 대한 논의가 다른 기록 인에이블 회로 3440-1, 3441-2 및 그들의 경계 열 C64 및 C128에도 응용됨에 주목한다. 이에 따라, 기록 인에이블 회로(3440-1)는 WE0 또는 WE1 중 하나에 의해 제어되도록 접속되고, 이 두개의 기록 인에이블 신호들은 경계 열 C64에 대해 데이터를 제공하는 멀티플랙서 MI64에 대응하는 온도계형 패턴에 의해 제어되는 멀티플랙서 M0-1에 의해 제공된다. 유사하게, 기록 인에이블 회로(3441-2)는 WE1 또는 WE2 중 하나에 의해 제어되도록 접속되고, 이들 두개의 기록 인에이블 신호들은 경계 열 C128에 대해 데이터를 제공하는 멀티플랙서 MI128에 대응하는 온도계형 패턴에 의해 제어되는 멀티플랙서 M1-2에 의해 제어된다.
장치(342)의 동작은 일반적으로 도 18의 장치(340)에 대한 것과 같고, 이에 따라, 독자는 상술한 바를 참조한다. 달리 말하면, 도 19에서는 256개 까지의 입력 열들이 기록될 수 있는데 반해, 도 18에서는 4개 까지의 입력 열들이 기록될 수 있다. 또한, 도 19에서는 4개 기록 단위들까지가 기록될 수 있는 반면에, 도 18에서는 2개 기록 단위들까지가 기록될 수 있다. 하지만, 공통점이 있으므로, 이 분야의 통상의 기술자는 나머지 동작을 이해할 수 있을 것이다. 그럼에도 불구하고, 여러 원리들을 나타내기 위한 일 예로서, 메모리 열 C10에 결함이 있고, IC0 내지 IC63으로부터의 데이터를 갖는 한개의 기록 단위를 기록하기를 원한다고 가정한다. 이 경우에, 적당한 온도계형 패턴이 표 6으로부터 외삽될 수 있다. 예를 들어, 온도계형 패턴에 대해, 각 행의 오른쪽으로부터 시작하는 논리 0의 갯수가 결함있는 열의 엔코딩에 의해 나타낸 이진수와 같다는 것과, 그 패턴의 최하위 비트와 최상위 비트 이외의 모든 비트들은 입력 멀티플랙서들을 제어하는데 사용될 수 있다는 것을 상기한다. 이에 따라, 그 패턴의 최상위 비트를 무시하면, C10에 결함이 있는 경우 입력 멀티플랙서들에 대한 패턴은 MI1 내지 MI10을 제어하기 위해 맨 오른쪽으로부터 시작하는 10개의 논리 0들 및 MI11 내지 MI255를 제어하기 위한 그 다음의 논리 1들을 가질 것이다. 이에 따라, 경계 열 C64에 대응하는 멀티플랙서 MI64는 그의 제어단에서, 기록 인에이블 회로(3440-1)를 제어하기 위해 WE0와 WE1 중에서 선택하는 멀티플랙서 M0-1가 받게 될, 논리 1(즉, 245개 논리 1 중에 하나)을 수신할 것이다. 이에 따라, 이에 대응하여, M0-1은 WE0를 선택하고 기록 인에이블 회로(3440-1)을 제어하기 위해 접속시킴으로써 IC63으로부터의 데이터가 적절히 C64로 통과하게 해준다.
상기로부터, 상기 실시예들이 메모리 열의 여분을 개선하기 위해 여러가지 선택 방안들을 제공한다고 이해될 수 있다. 많은 잇점들이 설명되었고, 상기로부터 명백하다. 예를 들어, 다양한 상기 특징들은 열들 중 하나가 결함이 있는 열 그룹으로부터 독출하거나, 또는 열들 중 하나가 결함이 있는 열 그룹에 기록하거나, 또는 둘 다의 경우에 응용된다. 또 하나의 예로서, 실시예들이 하나 이상의 여분의 열을 제공하도록 변경될 수 있다. 더우기, 도 21의 마이크로프로세서가 상기 기술로부터 이롭게 될 수 있고, 다양한 다른 마이크로프로세서들도 이롭게 될 수 있다. 역시 또 하나의 예로서, 기록 단위 기능이 본 발명의 실시예들에서 구현될 수 있다. 또한, 도 21의 마이크로프로세서가 상기 기술로부터 이롭게 돌 수 있고, 다양한 다른 마이크로프로세서도 역시 이롭게 될 수 있다. 이에 따라, 본 실시예들이 상세히 설명되었고, 다양한 대안, 변경, 또는 변화도 역시 제안되었으나, 여전히 다양한 변경들이 본 발명의 범위를 벗어나지 않고 상술한 내용으로 만들어질 수 있다.
3. 결합형 메모리 행 및 메모리 열 잉여분
상기 섹션들이 메모리 행 및 메모리 열 리던던시 구조에 대해 상세히 설명한데 반해, 도 20은 상술한 타입의 여분 패턴들 모두에 대한 여러 개념들을 결합한 메모리 장치(346)을 도시한다. 이에 대해, 앞선 도면들에서 사용된 공통된 소자들의 경우, 공통된 참조 번호들이 도 20에도 수반된다. 또한, 독자는 앞선 논의에 대해 잘 알고 있다고 생각하고, 이에 따라 다음의 설명은 단순히 장치(346)에 의해 구현된 기술들의 결합을 요약한다.
메모리 장치(346)는 4개의 메모리 BANK들을 포함하는 데이터 메모리(92)로부터 데이터를 독출하거나, 또는 데이터 메모리(92)에 기록하기 위해 ADDRESS를 수신한다. 도 20을 간략히 하기 위해, 이 BANK들은 일반적으로 레이블(label)되나, 도 8a에 도시된 부가적인 상세한 것들은 도 20에는 도시되지 않는다. 이제 설명되는 바와 같이, 독출 또는 기록 동작은 행 및 열 리던던시와 연계해서 일어난다. 구체적으로, ADDRESS는 입력 저장 디바이스(102a)에 의해 수신되는데, 특별히, 본 실시예에서는 어드레스 비트들 ADDR[13:6]이 수신된다. 수신된 어드레스에 의해 결함있는 행 또는 결함있는 열 중 하나 또는 둘다가 지정되는지를 판단하기 위해, ADDR[13:6] 비트들은 결함 행 ID 블럭(108) 및 결함 열 ID 블럭(324)에 모두 접속된다. 이에 따라, 다시 ADDR[8:6] 비트들은 현재 입력된 ADDRESS에 대해 4개 BANK들 중 하나를 나타내고, 또 그 뱅크의 최상부 또는 최하부 반쪽 중 어느것이 지정되는지를 나타낸다. ADDR[8:6] 비트들에 대응하여, 그리고 지정된 BANK가 결함있는 행을 포함한다고 가정하면, 결함 행 ID 블럭(108)은 결함있는 행의 어드레스 "DA"를 출력하는데, 더 구체적으로, DA[6:2] 비트들은 비교기(106a)에 출력되는 반면, DA[1:0] 비트들은 2-대-4 디코더(112)에 출력된다. 또한, ADDR[8:6] 비트들에 응답하여, 그리고 지정된 BANK 반쪽이 결함있는 열을 포함한다고 가정하면, 결함 열 ID 엔코더(324)는 결함있는 열(만일 있다면)의 9 비트 ID를 온도계형 디코더 회로(322)에 출력한다. 부가적인 동작들은 이하 메모리 행 여분에 대한 동작의 첫번째 예에 의해, 그리고 더 나아가 메모리 열 여분에 대한 동작을 검사함으로써 이해된다.
행 여분에 대해, 비교기(106a)는 현재 ADDRESS가 결함있는 행을 포함하는 행들의 블럭(즉, 4개 다른 방법들을 포함함)으로 향하는지를 판단하기 위해 ADDR[13:9] 비트들을 DA[6:2] 비트들과 비교한다. 만일 그렇다면, MATCH 신호가 확정되고, 만일 그렇지 않다면, MATCH 신호가 확정되지 않는다. 또한, DA[1:0] 비트들은 2-대-4 디코더에 의해 상기 표 3에 도시된 네개 비트 시퀀스들 가운데 하나로 디코드되고, 이 시퀀스는 AND 게이트들(1140 내지 1143)에 출력된다. 이제 AND 게이트들(1140 내지 1143)의 출력이 각각 S0 내지 S3으로서 도시되는 것을 주목한다. 달리 말하면, 이 신호들은 도 10a 및 10b에 도시된 바와 같이 메모리 디코더에 전달되는 어드레스의 일부로서 직접 접속될 수 있다. 실재로, ADDR[13:6] 비트들이 이 어드레스의 부분들을 형성할 뿐 아니라, 그 비트들이 도 10a 및 도 10b에 도시된 바와 같이 하나 또는 그 이상의 메모리 디코더들로 통과된다는 것을 주목한다. 끝으로, HIT 신호(W0 내지 W3) 방식 또한 어드레스의 일부를 형성하고, 이에 따라, 그들도 도 20에 도시된다는 것을 상기한다. 실재로, 데이터 메모리(92)의 어드레싱을 일반적으로 나타내기 위해, 도 20은 단순히 ADDR[13:6] 비트들, S0 내지 S3, 그리고 W0 내지 W3을 데이터 메모리(92)에 전달될 전체 어드레스로서 결합한다. 이에 따라, 행 여분 동작의 결과, 만일 저장 회로(102a)에 의해 수신된 ADDRESS가 결함이 없는 행을 향한다면, ADDR[13:6] 및 W0 내지 W3 비트들이 각각이 모두 0인 S0 내지 S3과 함께 데이터 메모리(92)에 전달되어, 이에 따라 결함 없는 행이 지정되게 야기한다. 이와 대조적으로, 만일 저장 회로(102a)에 의해 수신된 ADDRESS가 결함 있는 행을 향한다면, ADDR[13:6] 및 W0 내지 W3 비트들이 다시 데이터 메모리(92)에 전달되지만, 여기서는 S0 내지 S3 중 하나에 대한 1 값과 결합되고(다른 세개는 0값을 갖음), 이것에 의해 다른 어드레스를 발생하고, 어드레스된 결함있는 행 이외의 여분 행을 지정하게 야기한다. 어느 경우에도, BANK0 내지 BANK3 중 하나에 있는 행들 중 하나가 어드레스되고, 그것의 257개 열 데이터가 4개의 양-방향 버퍼들(3480 내지 3483) 중 대응하는 하나를 경유하여 버스(350)로 접속된다. 이에 따라, 이제부터 열 여분 동작들이 이하 설명된 바와 같이 발생할 수 있다.
버스(350) 상의 257개 데이터 열들은 스위치 회로(352)의 대응하는 열들(C0 내지 C257)에 접속되는데, 이것은 도 17의 형식과 같은 형식을 사용하여 대략적으로 도시되고, 이에 따라, 이것은 상술한 여러 멀티플랙서 장치들 뿐만 아니라 이 분야의 통상의 기술자에 의해 알게 될 수 있는 다른 대체 장치들을 사용하여 구성될 수 있다. 어느 경우에도, 도 17에 관한 앞선 논의가 주어지면, 도 20의 목적에 대해, 온도계형 패턴이 온도계형 디코더 회로(322)로부터 스위치 회로(352)에 접속되고, 그 패턴에 응답하여, 데이터가 257개 메모리 열들과 256개 입력/출력 열들 중에서 선택적으로 결합될 수 있고, 이것에 의해 만일 결함있는 열이 현재 주어진 수신된 ADDRESS에서 문제가 되는 경우에, 잘못되는 결과를 방지한다. 또한, 데이터 메모리(92)로부터의 독출을 위해, 결함있는 메모리 열이 입력/출력 열에 데이터를 제공하는 것으로부터 단순히 배제되는 한편, 데이터 메모리(92)에 데이터를 기록하기 위해서는, 결함있는 메모리 열이 데이터를 수신하지만 그 동일한 데이터가 결함 없는 또 다른 열에도 기록되어서, 나중에 정확하게 검색될 수 있다.
상기와 같이 주어지면, 이 분야의 통상의 기술자는 본 기술과 일관되는 또 다른 실시예들을 형성하는데에 있어서, 본 명세서에서 설명된 메모리 행 및 열 개념들이 결합될 수 있다는 것을 이해할 것이다. 따라서, 결함 행 ID 블럭(108) 및 결함 열 ID 블럭(324) 모두에 퓨즈들이 사용되면, 결함있는 행들 및 열들을 모두 식별하기 위해 이 퓨즈들이 전체적으로 저장 타입 구조를 형성한 하나의 영역이 장치내에 형성될 수 있다. 또한, 도 20이 앞서 논의된 두개의 특별한 실시예들만의 결합을 나타내지만, 이 분야의 통상의 기술자는 분명히 상기 제공된 다른 대체 장치들을 결합할 수 있을 것이다. 어느 경우에도, 개선된 행 및 열 리던던시 시스템이 제공된다.
4. 마이크로프로세서 장치
상기 실시예들이 설명되었으므로, 도 21에서는 상기 실시예들이 결합될 수 있는 마이크로프로세서 실시예의 블럭도를 나타낸다. 도 21은 이하 설명되는 바와 같이, 내부에 바람직한 실시예들이 구현되어 있는 파이프라인으로 연결된 마이크로프로세서(410)를 포함하여, 전형적인 데이터 프로세싱 시스템(402)을 도시한다. 본 실시예들이 여러가지 구조의 마이크로프로세서에 활용될 수 있다고 고찰되기 때문에, 본 명세서에서 설명된 시스템(402) 및 마이크로프로세서(410)의 구조는 단지 예시적인 것임을 이해해야 한다. 이에 따라 본 명세서를 참조하는 이 분야의 통상의 기술자는 그렇게 다른 마이크로프로세서 구조들에 본 실시예들을 쉽게 구현할 수 있을 것으로 고찰된다. 또한, 더 나아가 본 발명은 단일-칩 마이크로프로세서 및 마이크로컴퓨터 내에 구현될 수 있거나, 또는 실리콘 기판, 절연체 상의 실리콘, 갈륨 비화물(gallium arsenide)에 의해 얻어진 그러한 집적 회로들의 제조 및 다른 제조 기술들에 의해서, 그리고 MOS, CMOS, 바이폴라, BiCMOS, 또는 다른 디바이스의 장치를 사용하여 구현될 수 있다고 고찰된다.
도 21에 도시된 바와 같이, 마이크로프로세서(410)는 버스 B에 의해 다른 시스템 디바이스들에 접속된다. 이 예에서는, 버스 B가 단일 버스로 도시되지만, 당연히 버스 B는 PCI 로컬 버스 구조를 활용하는 종래 컴퓨터들에서 공지된 바와 같은, 다양한 속도 및 프로토콜들을 갖는 다중 버스들을 나타낼 수 있다고 고찰된다; 여기서 단일 버스 B는 단지 예시적인 것에 의해 또는 간단히 하기 위해 도시된다. 시스템(402)은 이러한 종래의 통신 포트들(403, 모뎀 포트들 및 모뎀들, 네트워크 인터패이스, 그리고 그와 같은 것들을 포함함), 그래픽 디스플래이 시스템(404, 비디오 메모리, 비디오 프로세서, 그래픽 모니터를 포함함), DRAM에 의해 전형적으로 구현된 메인 메모리 시스템(405)을 포함하고, 스택(407), 입력 디바이스들(406, 키보드, 포인팅 디바이스, 그리고 그에 관한 인터패이스 회로), 디스크 시스템(408, 하드 디스크 드라이브, 플로피 디스크 드라이브, 및 CD-ROM 드라이브)과 같은 세부 시스템들을 포함한다. 이에 따라, 도 21의 시스템(402)은 이제 이 분야에서 통상적인 종래의 데스크 톱 컴퓨터 또는 워크스테이션에 대응한다고 고찰된다. 물론, 마이크로프로세서의 다른 시스템 구현들도, 이 분야의 통상의 기술자들에 의해 알 수 있듯이, 본 발명의 실시예들로부터 이익을 얻을 수 있다.
마이크로프로세서(410)는 버스 B에 접속되고 마이크로프로세서(410)와 시스템(402) 내의 다른 소자들 사이의 통신을 제어하고 영향을 미치는 버스 인터패이스 유닛("BIU")을 포함한다. BIU(402)는 이 기능을 실행하기 위해 동작 속도를 증대하기 위한 기록 버퍼들, 그리고 내부 마이크로프로세서 동작 결과들을 버스 B 타이밍 제약에 동기화하기 위한 타이밍 회로를 포함하는 알맞은 제어 및 클록 회로를 포함한다. 마이크로프로세서(410)는, 또한, 클록 발생 및 제어 회로(420)을 포함하는데, 이것은, 본 예의 마이크로프로세서(410)에서는, 버스(B)로부터의 버스 클록을 근거로 내부 클록 패이즈들을 발생한다; 이 예에서, 내부 클록 패이즈들의 주파수는 버스 클록 주파수의 배수로서 선택적으로 프로그램될 수 있다.
도 21에서 명백하듯이, 마이크로프로세서(410)는 3개 레벨들의 내부 캐쉬 메모리를 갖는데, 이들 중 가장 높은 것은 레벨 2 캐쉬(414)로서, BIU(412)에 접속되어 있다. 이 에에서, 레벨 2 캐쉬(414)는 통합된 캐쉬이고 마이크로프로세서(410)에 의해 제공된 버스 트래픽의 상당량이 레벨 2 캐쉬(414)를 경유하여 이루어지도록, BIU(412)를 경유하여 버스 B로부터 캐쉬가능한 데이터 및 캐쉬가능한 명령어(instruction)등을 모두 수신할 수 있게 구성된다. 물론, 마이크로프로세서(410)는 특정한 버스 독출 및 기록을 "캐쉬불가능"이라고 처리함으로써, 레벨 2 캐쉬(414) 주위의 버스 트래픽에도 영향을 미칠 수 있다. 도 21에 도시된 바와 같이, 레벨 2 캐쉬(414)는 두개의 레벨 1 캐쉬들(416)에 접속된다. 레벨 1 데이터 캐쉬(416d)는 데이터 전용인 반면, 레벨 1 명령어 캐쉬(416i)는 명령어들 전용이다. 마이크로프로세서(410)에 의한 전력 소모는 레벨 1 캐쉬들(416)중 하나에서 캐쉬 미스가 발생하는 경우에만 레벨 2 캐쉬(414)를 액세스함으로써 최소화된다. 또한, 데이터 측면에서는, 마이크로캐쉬(418)가 레벨 0 캐쉬로서 제공되는데, 이것은 본 예에서 전부 이중-포트형 캐쉬이다.
도 21에서 도시된 바와 같이, 그리고 상기에서 알아본 바와 같이, 마이크로프로세서(410)는 수퍼스칼라 타입(superscalar type)이다. 이 예에서 다중 실행 유닛들은 마이크로프로세서(410) 내에 제공되는데, 하나의 명령어 포인터 엔트리에 대해 동시에 4개 까지의 명령어들이 실행될 수 있게 허용한다. 이 실행 유닛들은 조건 분기, 정수 및 논리 연산을 실행하는 두개의 ALU(4420, 4422), 플로팅 포인트 유닛(FPU, 430), 두개의 로드-저장 유닛(4400, 4401), 그리고 마이크로시퀀서(448)를 포함한다. 두개의 로드-저장 유닛(440)은 마이크로캐쉬(418)로의 2개의 포트들을 사용하는데, 이것들은 마이크로캐쉬(418)로의 진정한 병렬 액세스를 위한 것이고, 레지스터 파일(439)에 있는 레지스터들 뿐만 아니라 레벨 1 캐쉬들(116d 및 116i)로의 로드 및 저장 동작을 또한 실행한다. 데이터 마이크로트랜슬레이션 룩어사이드 버퍼(μTLB, 438)는, 종래 기술을 사용하여, 논리 데이터 어드레스들을 물리적인 어드레스들로 바꾼다.
이들 다중 실행 유닛들은 각각 7개 단계들 및 라이트 백(write back) 단계를 구비한 다중 파이프라인들에 의해 제어된다. 이 파이프라인 단계들은 다음과 같다:
F 페치(Fetch) : 이 단계는 명령어 어드레스를 발생하고 명령어 캐쉬나 메모리로부터 명령어를 독출함.
PD0 프리디코드 단계 0 : 이 단계는 세개까지의 페치된 x86-타입 명령어들의 길이 및 시작 위치를 결정함.
PD1 프리디코드 단계 1 : 이 단계는 x86 명령어 바이트들을 추출하고 그들을 디코드하기 위해 고정된 길이의 포맷으로 저장함.
DC 디코드 : 이 단계는 x86 명령어들을 최소 단위의 동작들(atomic operations, AOps)로 변환함.
SC 스케쥴 : 이 단계는 4개까지의 AOps를 적당한 실행 유닛들에 지정함.
OP 오퍼랜드 : 이 단계는 AOps에 의해 지적된 레지스터 오퍼랜드 그리고/또는 메모리 오퍼랜드를 검색함.
EX 실행 : 이 단계는 AOps 및 검색된 오퍼랜드들에 따라 실행 유닛들을 실행함.
WB 라이트 백(Write back) : 이 단계는 실행 결과를 레지스터들이나 메모리에 저장함.
도 21을 다시 참조하면, 상술한 파이프라인 단계들은 마이크로프로세서(410) 내의 여러 기능 블럭들에 의해 수행된다. 페치 유닛(426)은 레벨 1 명령어 캐쉬(116i)에 인가하기 위해, 종래 방법에 따라 논리 명령어 어드레스들을 물리적 어드레스들로 변환하는 명령어 마이크로트랜슬래이션 룩어사이드 버퍼(μTLB, 422)에 의해, 명령어 포인터로부터 명령어 어드레스들을 발생한다. 명령어 캐쉬(116i)는 페치 유닛으로의 명령어 데이터 스트림을 발생하는데, 그 다음 이 페치 유닛은 이 명령어 코드를 프리디코드 단계들에서 원하는 순서에 따라 제공한다. 논리적인 실행은 주로 페치 유닛(426)에 의해 제어된다.
명령어들의 프리디코딩은 마이크로프로세서(410) 내에서 두 부분, 즉 프리디코드 0 단계(428) 및 프리디코드 1 단계(432)로 나뉜다. 이 두 단계들은 도립된 파이프라인 단계들로서 동작하고, 세개까지의 x86 인스트럭션들을 지정하고 그것들을 디코더(434)에 인가하기 위해 함께 동작한다. 이와 같이, 마이크로프로세서(410)에서 파이프라인의 프리디코드 단계는 세개의 명령어들 길이로 된다. 상술한 바와 같이, 프리디코드 0 유닛(428)은 3개 만큼의 x86 명령어들의 크기 및 위치를 결정하고(이것은 물론, 가변적인 길이임), 3개의 명령어 인식기들로 구성된다. 프리디코드 1 유닛(432)은 디코딩을 용이하게 하기 위해, 다중-바이트 명령어들을 고정된-길이의 포맷으로 변환한다.
디코드 유닛(434)은, 이 예에서, 4개 인스트럭션 디코더들을 포함하는데, 이들 각각은 프리 디코더 1 유닛(432)으로부터 명령어를 수신하고, 1개부터 3개까지의 최소 단위 동작들(AOps)을 발생한다. AOps는 실질적으로 RISC 명령어들과 동등하다. 4개 디코더들 가운데 세개는 병렬로 동작하며, 스케쥴링을 기다리기 위해 디코드 유닛(434)의 출력시 디코드 큐(queue)에 9개까지의 AOps를 배치한다. 네번째 디코더는 특별한 경우들을 위해 예약되어 있다. 스케쥴러(436)는 디코드 유닛(434)의 출력시 디코드 큐로부터 4개까지의 AOps를 독출하고, 이 AOps를 적당한 실행 유닛들에 할당한다. 또한, 오퍼랜드 유닛(444)은 실행을 위해, 오퍼랜드를 수신하고 준비한다. 도 21에 되시된 바와 같이, 오퍼랜드 유닛(444)은 스캐쥴러(436)로부터 그리고 또 마이크로코드 ROM(446)으로부터의 입력을 멀티플랙서(445)를 경유하여 수신하고, 명령어들의 실행에 사용하기 위해 레지스터 오퍼랜드 그리고/또는 메모리 오퍼랜드들을 로드/저장 유닛(4400 그리고/또는 4401)을 경유하여 페치한다. 또한, 이 예에 따라, 오퍼랜드 유닛(444)은 저장될 준비가 된 레지스터들에 결과를 보내기 위해 오퍼랜드 포워딩(operand forwarding)을 수행하고, 또 로드 및 저장 타입의 AOps에 대한 어드레스 발생을 수행한다.
마이크로시퀀서(448)는, 마이크로코드 ROM(446)과 함께, 일반적으로 최후의 AOps가 한 싸이클 내에 실행되는, 마이크로코드 엔트리 AOps의 실행에 있어서, ALU들(442) 및 로드/저장 유닛들(440)을 제어한다. 이 예에서, 마이크로시퀀서(448)는 마이크로코드화된 마이크로명령어들에 대해 이러한 제어를 실행하기 위해 마이크로코드 ROM(446)에 저장된 마이크로명령어들의 순번을 매긴다. 마이크로프로세서(410)에 대해, 마이크로코드화된 마이크로명령어들의 예들에는, 복잡하거나 드물게 사용되는 x86 명령어들, 예외적인 것들 및 인터럽트들을 처리하는, 세그먼트를 변경하거나 또는 레지스터들을 제어하는 x86 명령어들, 그리고 다중-싸이클 명령어들(REP 명령어들과 같은, 그리고 모든 레지스터들을 PUSH하고 POP하는 명령어들)을 포함한다.
마이크로프로세서(410)는 또한 JTAG 스캔 테스팅 및 특정한 내장형 셀프-테스트 기능들의 동작을 제어하고, 제조 완료시, 그리고 리셋시 및 다른 경우에 마이크로프로세서(410) 동작의 유효성을 보장하기 위한 회로(424)를 포함한다.
상술한 여러 레벨들의 캐쉬가 주어짐에 따라, 마이크로프로세서(410)가 본 명세서의 앞선 섹션에서 설명한 행 리던던시과 열 리던던시 중 하나나 둘다를 하나 또는 그 이상의 캐쉬 메모리들에 포함할 수 있다는 것을 주목한다. 이에 따라, 도 1 내지 도 20에 대한 상기 설명으로부터, 이 분야의 통상의 기술자는 도 21과 연계하여 이 구성 장치들의 동작을 이해할 수 있을 것이다. 더 나아가, 여러가지 관련된 기능이 도 21 내의 적당한 회로에 의해 더 수행될 수 있다.
상술한 바와 같이, 상기 실시예들은 종래 기술을 능가하는 많은 잇점들을 제공한다. 예를 들어, 여러 타입의 메모리 장치들이 행 리던던시, 열 리던던시, 또는 행 및 열 리던던시 둘다를 제공하기 위해 형성될 수 있다. 더우기, 리던던시를 구현하기 위해 많은 갯수의 퓨즈들이 요구되는, 그리고 이 퓨즈들이 비-집중 방식으로 장치 구조를 가로질러 배치되는 종래 기술의 단점에 대한 큰 염려가 없다. 더 나아가, 이전 섹션의 마이크로프로세서는 앞서 설명된 리던던트 메모리 장치들이 구현될 수 있는 구조의 일예를 나타낸 것일 뿐, 또 다른 구조들도 잇점을 얻을 수 있다. 따라서, 본 실시예들이 상세히 설명되었지만, 다양한 대체, 변경 또는 변화가 이하 제시된 청구항들에 의해 정해진 발명의 범위를 벗어나지 않고, 상술한 설명대로 만들어 질 수 있을 것이다.
도 1은 L1, 및 결함있는 행으로 향하는 원시 어드레스를 여분의 행으로 리-맵핑하기 위한 어드레스 변환 회로를 포함하는 L2 캐쉬 회로를 포함하는 메모리 계층 구조의 한 발명적 실시예의 블럭도.
도 2는 L1 캐쉬 회로에서의 미스 이후의 2개의 연속된 싸이클만에 L2 캐쉬를 액세싱하기 위한 종래 기술의 시스템의 타이밍도.
도 3은 도 1의 L2 캐쉬 회로의 데이터 메모리의 상세 블럭도.
도 4는 도 1의 L2 캐쉬 회로의 어드레스 변환 회로의 흐름도.
도 5는 도 1, 3, 및 4의 회로 동작 방법의 흐름도.
도 6은 데이터 메모리 내의 2개까지의 결함있는 행이 2개의 여분 행들 중 하니로 리-맵핑될 수 있는 대안적인 본 발명의 실시예의 블럭도.
도 7은 데이터 메모리 내의 4개까지의 결함있는 행이 2개의 여분 행들 중 하니로 리-맵핑될 수 있는 대안적인 본 발명의 실시예의 블럭도.
도 8a는 데이터가 메모리가 몇 개의 뱅크를 포함하고, 각각의 뱅크는 상위 및 하위 절반을 포함하며, 각각의 절반은 뱅크 내의 결함있는 행이 리-맵핑될 수 있는 하나의 여분 행의 가지는 대안적인 본 발명의 실시예의 블럭도.
도 8b는 도 8a의 실시예의 어드레스 포맷을 나타낸 도면.
도 9는 제1 단계에서 입력되는 어드레스의 일부를 블럭 어드레스와 비교하고, 제2 단계에서 입력되는 어드레스에 대응하는 웨이 어드레스를 결함있는 행 어드레스의 웨이 어드레스와 비교하는, 몇 개의 뱅크를 갖는 데이터 메모리를 액세스하기 위한 대안적인 본 발명의 실시예의 블럭도.
도 10a 및 10b는 도 9의 블럭도의 다양한 특징을 구현하기 위한 동적 논리 디코딩 회로.
도 11은 도 10a 및 10b의 동적 논리 디코딩 회로의 추가적인 잇점을 부각시키기 위한 종래 기술의 3-대-8 디코딩 회로.
도 12는 하나의 잉여분 열을 포함하는 일련의 열을 따라 데이터 신호를 출력하며, 메모리 열들 중 결함있는 것이 출력되지 못하도록 하는 각각의 멀티플렉서에 대응하는 퓨즈들에 의해 제어되는 멀티플렉서 구성을 포함하는 행 어래이를 갖는 종래 기술의 메모리 장치의 전기적 도면.
도 13은 하나의 잉여분 열을 포함하는 일련의 열을 따라 데이터 신호를 출력하며, 메모리 열들 중 결함있는 것이 출력되지 못하도록 하는 온도계형 디코더(thermometer decoder)에 의해 제어되는 멀티플렉서 구성을 더 포함하는 행 어래이를 갖는 종래 기술의 메모리 장치의 전기적 도면.
도 14는 메모리를 각각이 독립적으로 어드레싱가능한 절반을 갖는 복수의 뱅크 메모리로 분할하여, 각각의 절반이 뱅크 메모리당 추가적인 잉여분 열을 제공하도록 함으로써 열 잉여분이 증가되는 본 발명의 대안적인 실시예의 전기적 도면.
도 15는 메모리를 복수의 메모리 그룹으로 분할하고, 각각의 그룹 내의 동일한 행은 한 번에 어드레싱되도록 하며, 각각의 그룹은 추가적인 잉여분 열을 제공하도록 함으로써 열 잉여분이 증가되도록 한 본 발명의 대안적인 실시예의 전기적 도면.
도 16은 메모리 장치에 데이터를 기록하기 위한 목적으로 열 잉여분이 구현되어 있고, 메모리 장치로부터 데이터를 판독하기 위한 목적으로 사용되는 여러 동일한 요소들이 구현될 수 있는 대안적인 본 발명의 실시예의 전기적 도면.
도 17은 본 발명의 실시예에 따른 입력 또는 출력 열과 통신하기 위한 메모리 열 결합도.
도 18은 기록 장치 기능을 수행하기 위한 추가 회로를 갖는 도 16의 전기적 도면.
도 19는 4개의 64비트 기록 장치에 대해 기록 장치 기능을 제공하기 위한 대안적 메모리 장치의 전기적 도면.
도 20은 메모리 행 및 메모리 열 잉여분 모두에 관해 다양한 상기 특징을 결합하는 전기적 도면.
도 21은 상기의 실시예들이 구현될 수 있는 예시적 마이크로프로세서.
〈도면의 주요 부분에 대한 부호의 설명〉
10 : 메모리 시스템
12 : L1 캐쉬 회로
14 : L2 캐쉬 회로
18 : 태그 메모리
22 : 어드레스 변환 회로
20 : 데이터 메모리 회로
42, 46 : 저장 장치
44 : 비교기
48 : 결함행 식별 회로
49 : 인에이블링 회로
106 : 비교기
108 : 결함 행 ID 블럭
306 : 온도계형 디코더 회로
308 : 결함 행 ID 엔코더
410 : 마이크로프로세서

Claims (47)

  1. 메모리 장치를 작동시키는 방법에 있어서,
    태그 메모리에 제1 어드레스를 발송(issue)하는 단계 - 상기 제1 어드레스는 상기 태그 메모리에 대응하는 정보 메모리 내의 행을 어드레싱하는 상태로 지정되어 있음 -와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 단계와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있다고 판단한 상기 단계에 응답하여:
    상기 제1 어드레스를 상기 제1 어드레스와 다른 제2 어드레스로 변환하는 단계; 및
    상기 태그 메모리에서 히트(hit)가 검출되는 것에 응답하여 상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 없다고 판단한 상기 단계에 응답하여:
    상기 태그 메모리에서 히트가 검출되는 것에 응답하여 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 단계; 및
    상기 태그 메모리에서 미스(miss)가 검출되는 것에 응답하여, 상기 제1 어드레스에 대응하는 다른 정보 메모리를 어드레싱하는 단계를 포함하되, 상기 다른 정보 메모리는 상기 메모리 장치의 메모리 계층 구조에 있어서 상기 정보 메모리보다 더 상위인 것을 특징으로 하는 메모리 장치의 작동 방법.
  2. 제1항에 있어서,
    연속적인 클록 싸이클들에 걸쳐 상기 메모리 장치를 작동시키는 단계를 더 포함하되,
    상기 발송 및 변환 단계들은 상기 연속적인 클록 싸이클들 중 제1 싸이클 동안 발생하고;
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 단계 또는 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 단계 중 임의의 한 단계는 상기 연속적인 클록 싸이클들 중 제1 싸이클 바로 다음의 제2 싸이클 동안 발생하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  3. 제1항에 있어서,
    상기 발송 및 판단 단계들 이전에, 결함 행을 식별하기 위해 상기 정보 메모리를 테스팅하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  4. 제3항에 있어서,
    상기 테스팅 단계 후 상기 발송 및 판단 단계들 이전에, 상기 테스팅 단계에 의해 식별된 결함 행에 대응하는 결함 행 어드레스를 상기 메모리 장치 내에 엔코딩해 놓는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  5. 제4항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 단계는 상기 제1 어드레스와 상기 결함 행 어드레스를 비교하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  6. 제4항에 있어서,
    상기 엔코딩 단계는 상기 결함 행 어드레스를 표시하기 위해 상기 메모리 장치 내의 퓨즈들을 배열하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  7. 제3항에 있어서,
    상기 테스팅 단계 후 상기 발송 및 판단 단계들 이전에,
    상기 테스팅 단계에 의해 식별된 결함 행에 대응하는 결함 행 어드레스를 상기 메모리 장치 내에 엔코딩해 놓는 단계; 및
    상기 결함 행이 식별된 것을 표시하는 인에이블 표시자를 상기 메모리 장치 내에 세팅하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  8. 제7항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 단계는:
    상기 인에이블 표시자가 상기 결함 행이 식별된 것을 표시하게 세팅되어 있는지를 검출하는 단계; 및
    상기 인에이블 표시자가 상기 결함 행이 식별된 것을 표시하게 세팅되어 있는 것을 검출한 상기 단계에 응답하여, 상기 제1 어드레스와 상기 결함 행 어드레스를 비교하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  9. 제1항에 있어서,
    상기 발송 및 판단 단계들 이전에, 복수개의 결함 행들을 식별하기 위해 상기 정보 메모리를 테스팅하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  10. 제9항에 있어서,
    상기 테스팅 단계 후 상기 발송 및 판단 단계들 이전에,
    복수개의 결함 행 어드레스들을 상기 메모리 장치 내에 엔코딩해 놓는 단계를 더 포함하되, 상기 복수개의 결함 행 어드레스들 각각은 상기 테스팅 단계에 의해 식별된 복수개의 결함 행들 중 하나에 대응하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  11. 제10항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지를 판단하는 상기 단계는 상기 제1 어드레스와 상기 복수개의 결함 행 어드레스들을 비교하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  12. 제1항에 있어서,
    상기 발송 및 판단 단계들 이전에, 행들의 블럭을 식별하기 위해 상기 정보 메모리를 테스팅하는 단계를 더 포함하되, 상기 행들의 블럭은 적어도 한개의 결함 행을 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  13. 제12항에 있어서,
    상기 테스팅 단계 후 상기 발송 및 판단 단계들 이전에,
    상기 테스팅 단계에 의해 식별된 행들의 결함 블럭에 대응하는 결함 블럭 어드레스를 상기 메모리 장치 내에 엔코딩해 놓는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  14. 제13항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 단계는, 상기 제1 어드레스를 포함하는 블럭 어드레스와 상기 결함 블럭 어드레스를 비교하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  15. 제1항에 있어서,
    상기 정보 메모리는 복수개의 뱅크들(banks)을 포함하고;
    상기 복수개의 뱅크들 각각은 개별적으로 어드레싱이 가능한 상부 반쪽 및 하부 반쪽을 포함하고;
    상기 개별적으로 어드레싱이 가능한 상부 반쪽 및 하부 반쪽 각각은 복수개의 메모리 웨이들(ways)을 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  16. 제15항에 있어서,
    상기 제1 어드레스는 상기 복수개의 뱅크들 중 한 뱅크 내의 행을 식별하는 뱅크 식별자 부분을 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  17. 제16항에 있어서,
    상기 제1 어드레스는 상기 복수개의 뱅크들 중 한 뱅크의 상부 반쪽 또는 하부 반쪽 중 한쪽에서 행을 식별하는 뱅크-반쪽 식별자 부분을 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  18. 제17항에 있어서,
    상기 발송 및 판단 단계들 이전에, 복수개의 결함 행들을 식별하기 위해 상기 정보 메모리를 테스팅하는 단계를 더 포함하되,
    상기 복수개의 결함 행들 각각은 복수개의 뱅크들 중 서로 다른 한 뱅크의 상부 반쪽과 하부 반쪽 중 다른 한쪽에 위치된 것을 특징으로 하는 메모리 장치의 작동 방법.
  19. 제18항에 있어서,
    상기 테스팅 단계 후 상기 발송 및 판단 단계들 이전에,
    상기 테스팅 단계에 의해 식별된 상기 복수개의 결함 행들 각각에 대응하는 결함 행 어드레스를 상기 메모리 장치 내에 엔코딩해 놓는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  20. 제19항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 단계는 상기 제1 어드레스 및 웨이 어드레스를, 상기 웨이 어드레스와 같은 웨이 어드레스를 갖고 상기 제1 어드레스와 같은 뱅크 식별자 부분을 갖고 상기 제1 어드레스와 같은 뱅크-반쪽 식별자 부분을 갖는 행에 대한 결함 행 어드레스와 비교하는 단계를 포함하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  21. 제1항에 있어서,
    상기 제1 어드레스는 정수 R개의 비트들로 구성되고, 상기 제1 어드레스를 제2 어드레스로 변환하는 상기 단계는 상기 정수 R개의 비트들에 추가 비트를 연결하는 단계를 포함하되, 상기 추가 비트의 상태는 상기 제1 어드레스에 의해 어드레싱되는 상기 행이 결함 행에 해당함을 표시하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  22. 제1항에 있어서,
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 또는 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 중 어느 한 단계는 상기 정보 메모리 내의 데이터를 어드레싱하는 단계를 포함하는 것을 특징으로 메모리 장치의 작동 방법.
  23. 제1항에 있어서,
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 또는 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 중 어느 한 단계는 상기 정보 메모리 내의 명령어들을 어드레싱하는 단계를 포함하는 것을 특징으로 메모리 장치의 작동 방법.
  24. 제1항에 있어서,
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 또는 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 단계 중 어느 한 단계는 상기 정보 메모리 내의 어드레스 변환 테이블을 어드레싱하는 단계를 포함하는 것을 특징으로 메모리 장치의 작동 방법.
  25. 제1항에 있어서,
    상기 정보 메모리는 복수개의 메모리 웨이들을 포함하되, 상기 복수개의 메모리 웨이들 각각은 대응하는 웨이 어드레스를 갖고;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지를 판단하는 상기 단계는:
    첫째, 상기 제1 어드레스와 결함 블럭 어드레스를 비교하는 단계 - 상기 결함 블럭 어드레스는 복수개의 메모리 웨이들 중 하나의 웨이에 대응하는 각 행들의 블럭에 대응하고, 상기 행들의 블럭 내의 행들 중 하나의 행은 결함이 있고 결함 웨이 어드레스를 갖음 -; 및
    둘째, 상기 제1 어드레스에 대응하는 웨이 히트 어드레스와 상기 결함 웨이 어드레스를 비교하는 단계
    를 포함하고;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있다고 판단한 상기 단계는 상기 제1 어드레스가 상기 결함 블럭 어드레스에 매칭(matching)하고 상기 웨이 히트 어드레스가 상기 결함 웨이 어드레스에 매칭하는 것에 응답하여 발생하는 것을 특징으로 하는 메모리 장치의 작동 방법.
  26. 제1항에 있어서,
    상기 제1 어드레스는 상기 제1 어드레스에 대응하는 상기 정보 메모리 내의 상기 행을 어드레싱하기 위해 다이내믹 로직 트랜지스터 네트워크의 제1 방전 경로를 따라 방전을 유발하는 복수개의 비트들을 포함하는 것을 특징으로 하는 반도체 장치의 작동 방법.
  27. 제26항에 있어서,
    상기 제1 어드레스를 제2 어드레스로 변환하는 상기 단계는 상기 다이내믹 로직 트랜지스터 네트워크의 제2 방전 경로를 따라 방전을 유발하는 복수개의 비트들 중 적어도 하나의 비트를 변화하는 단계를 포함하는 것을 특징으로 하는 반도체 장치의 작동 방법.
  28. 마이크로프로세서에 있어서,
    태그 메모리와;
    상기 태그 메모리에 대응하는 정보 메모리와;
    제1 어드레스를 상기 태그 메모리에 발송하는 회로 - 상기 제1 어드레스는 상기 태그 메모리에 대응하는 상기 정보 메모리 내의 행을 어드레싱하는 상태로 세팅됨 - 와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 회로와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있다고 판단한 상기 회로에 응답하여,
    상기 제1 어드레스를 상기 제1 어드레스와 다른 제2 어드레스로 변환하는 단계; 및
    상기 태그 메모리 내에서의 히트에 응답하여 상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계
    를 수행하는 회로; 및
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 없다고 판단한 상기 회로에 응답하여, 상기 태그 메모리 내에서의 히트에 응답하여 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 회로
    를 포함하는 것을 특징으로 하는 마이크로프로세서.
  29. 제28항에 있어서,
    상기 정보 메모리 내의 행에 결함이 있는지의 여부를 표시하는 표시자를 더 포함하는 것을 특징으로 하는 마이크로프로세서.
  30. 제29항에 있어서,
    상기 정보 메모리 내의 결함 행을 식별하는 식별자를 더 포함하고,
    상기 표시자가 미리 지정된 상태에 있는 것에 응답하여 상기 판단 회로는 상기 제1 어드레스와 상기 식별자를 비교하는 회로를 포함하는 것을 특징으로 하는 마이크로프로세서.
  31. 제30항에 있어서,
    상기 식별자는 복수개의 퓨즈들을 포함하는 것을 특징으로 하는 마이크로프로세서.
  32. 제30항에 있어서,
    상기 식별자는 복수개의 레지스터 저장 비트들을 포함하는 것을 특징으로 하는 마이크로프로세서.
  33. 제28항에 있어서,
    연속적인 클록 싸이클들에 걸쳐 상기 마이크로프로세서를 작동하는 회로를 더 포함하고;
    상기 발송 회로는 상기 제1 어드레스를 발송하고, 상기 변환 단계를 수행하는 상기 회로는 상기 연속적인 클록 싸이클들 중 제1 싸이클 동안 상기 제1 어드레스를 변환하고;
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 회로와 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 회로 중 하나의 회로는 상기 연속적인 클록 싸이클들 중 상기 제1 싸이클 바로 다음의 제2 싸이클 동안에 작동하는 것을 특징으로 하는 마이크로프로세서.
  34. 제28항에 있어서,
    복수개의 표시자들 - 상기 표시자들 각각은 상기 정보 메모리 내의 대응하는 행에 결함이 있는지의 여부를 표시함 -; 및
    상기 복수개의 표시자들에 대응하는 복수개의 식별자들 - 상기 식별자들 각각은 상기 정보 메모리 내의 대응하는 결함 행을 식별함 -
    을 더 포함하되,
    상기 판단 회로는 상기 제1 어드레스를 상기 미리 지정된 상태의 대응하는 표시자를 갖는 상기 복수개의 식별자들 각각과 비교하는 회로를 포함하는 것을 특징으로 하는 마이크로프로세서.
  35. 제28항에 있어서,
    적어도 한개의 결함 행을 포함하는 상기 정보 메모리 내의 행들의 블럭에 대응하는 결함 블럭 어드레스를 식별하는 회로를 더 포함하는 것을 특징으로 하는 마이크로프로세서.
  36. 제35항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 회로는 상기 제1 어드레스를 포함하는 블럭 어드레스와 상기 결함 블럭 어드레스를 비교하는 회로를 포함하는 것을 특징으로 하는 마이크로프로세서.
  37. 제28항에 있어서,
    상기 정보 메모리는 복수개의 뱅크들을 포함하고,
    상기 복수개의 뱅크들 각각은 개별적으로 어드레싱이 가능한 상부 반쪽 및 하부 반쪽을 포함하고,
    상기 개별적으로 어드레싱이 가능한 상부 반쪽 및 하부 반쪽 각각은 복수개의 메모리 웨이들을 포함하는 것을 특징으로 하는 마이크로프로세서.
  38. 제37항에 있어서,
    상기 제1 어드레스는 상기 복수개의 뱅크들 중 하나의 뱅크 내의 행을 식별하는 뱅크 식별자 부분를 포함하는 것을 특징으로 하는 마이크로프로세서.
  39. 제38항에 있어서,
    상기 제1 어드레스는 상기 복수개의 뱅크들 중 하나의 뱅크의 상부 반쪽 또는 하부 반쪽 중 한쪽에서 행을 식별하는 뱅크-반쪽 식별자 부분을 포함하는 것을 특징으로 하는 마이크로프로세서.
  40. 제39항에 있어서,
    복수개의 결함 행들 각각에 대응하는 복수개의 결함 행 어드레스들을 식별하는 회로를 더 포함하되, 상기 복수개의 결함 행들 각각은 상기 복수개의 뱅크들 중 다른 한 뱅크의 상기 상부 반쪽과 상기 하부 반쪽 중 다른 한쪽에 위치된 것을 특징으로 하는 마이크로프로세서.
  41. 제40항에 있어서,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 상기 회로는 상기 제1 어드레스 및 웨이 어드레스를, 상기 웨이 어드레스와 같은 웨이 어드레스를 갖고 상기 제1 어드레스와 같은 뱅크 식별자 부분을 갖고 상기 제1 어드레스와 같은 뱅크-반쪽 식별자 부분을 갖는 행에 대한 결함 행 어드레스와 비교하는 회로를 포함하는 것을 특징으로 하는 마이크로프로세서.
  42. 제28항에 있어서,
    상기 제1 어드레스는 정수 R개의 비트들로 구성되고, 상기 제1 어드레스를 제2 어드레스로 변환하는 단계를 수행하는 상기 회로는 상기 정수 R개 비트들로 구성되고, 상기 제1 어드레스를 제2 어드레스로 변환하는 상기 단계를 수행하는 상기 회로는 상기 정수 R개의 비트들에 추가 비트를 연결시키는 회로를 포함하고, 상기 추가 비트의 상기 상태는 상기 제1 어드레스에 의해 어드레싱되는 상기 행이 결함 행에 대응함을 표시하는 것을 특징으로 하는 마이크로프로세서.
  43. 제28항에 있어서,
    상기 정보 메모리는 복수개의 메모리 웨이들을 포함하되, 상기 복수개의 메모리 웨이들 각각은 대응하는 웨이 어드레스를 갖고,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 회로는:
    첫째, 상기 제1 어드레스를 결함 블럭 어드레스와 비교하는 회로 - 상기 결함 블럭 어드레스는 상기 복수개의 메모리 웨이들 중 하나에 대응하는 각 행들의 블럭에 대응하고 상기 행들의 블럭 내의 상기 행들 중 하나의 행은 결함이 있고 결함 웨이 어드레스를 갖음 -; 및
    둘째로, 상기 제1 어드레스에 대응하는 웨이 히트 어드레스를 상기 결함 웨이 어드레스와 비교하는 회로
    를 포함하고,
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지를 판단하는 상기 회로는 상기 제1 어드레스가 상기 결함 블럭 어드레스에 매칭(matching)하고 상기 웨이 히트 어드레스가 상기 결함 웨이 어드레스에 매칭하는 것에 응답하여 동작하는 것을 특징으로 하는 마이크로프로세서.
  44. 제28항에 있어서,
    상기 제1 어드레스는 복수개의 비트들을 포함하고,
    상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 회로는 정수 N의 복수개의 비트들을 수신하도록 작동할 수 있는 다이내믹 로직 트랜지스터 네트워크를 포함하고,
    상기 정보 메모리는 직렬 연결된 정수 N개의 트랜지스터들을 인에이블링함에 따른 제1 방전 경로의 형성에 응답하여 어드레싱되고, 상기 제1 방전 경로는 방전 트랜지스터를 통해 방전하도록 더 접속되어 있는 것을 특징으로 하는 마이크로프로세서.
  45. 제44항에 있어서,
    상기 제1 어드레스를 제2 어드레스로 변환하는 단계를 수행하는 상기 회로는 상기 다이내믹 로직 트랜지스터 네트워크의 제2 방전 경로를 따라 방전을 유발하는 복수개의 비트들 중 적어도 하나의 비트를 변화하는 회로를 포함하고,
    상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 상기 회로는 정수 N의 상기 복수개의 비트들을 수신하도록 작동할 수 있는 다이내믹 로직 트랜지스터 네트워크를 포함하고,
    상기 정보 메모리는 직렬로 접속된 상기 정수 N개의 트랜지스터들을 인에이블링함에 따른 제2 방전 경로의 형성에 응답하여 어드레싱되고, 상기 제2 방전 경로는 상기 방전 트랜지스터를 통해 방전하도록 더 접속되어 있는 것을 특징으로 하는 마이크로프로세서.
  46. 메모리 장치에 있어서,
    태그 메모리와;
    상기 태그 메모리에 대응하는 정보 메모리와;
    상기 태그 메모리에 제공되는 제1 어드레스를 수신하는 회로 - 상기 제1 어드레스는 상기 태그 메모리에 대응하는 상기 정보 메모리 내의 행을 어드레싱하는 상태로 세팅됨 - 와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 회로와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있다고 판단한 상기 회로에 응답하여
    상기 제1 어드레스를 상기 제1 어드레스와 다른 제2 어드레스로 변환하는 단계; 및
    상기 태그 메모리 내에서의 히트에 응답하여 상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계
    를 수행하는 회로; 및
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 행에 결함이 없다고 판단한 상기 회로에 응답하여, 상기 태그 메모리 내의 히트에 응답하여 상기 제1 어드레스로써 상기 정보 메모리를 어드레싱하는 회로
    를 포함하는 것을 특징으로 하는 메모리 장치.
  47. 메모리 장치에 있어서,
    태그 메모리와;
    상기 태그 메모리에 대응하고 복수개의 행들을 포함하는 정보 메모리와;
    상기 태그 메모리에 제1 어드레스를 발송하는 회로 - 상기 제1 어드레스는 상기 태그 메모리에 대응하는 상기 정보 메모리 내의 행을 어드레싱하는 상태로 세팅되어 있음 - 와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있는지 없는지를 판단하는 회로와;
    상기 제1 어드레스에 의해 어드레싱되는 상기 정보 메모리 내의 상기 행에 결함이 있다고 판단한 상기 회로에 응답하여,
    상기 제1 어드레스를 상기 제1 어드레스와 다른 제2 어드레스로 변환하는 단계; 및
    상기 태그 메모리 내의 히트에 응답하여 상기 제2 어드레스로써 상기 정보 메모리를 어드레싱하는 단계
    를 수행하는 회로와;
    복수개의 메모리 열들 - 상기 복수개의 행들 각각은 상기 복수개의 메모리 열들을 따라 복수개의 신호들을 통신하게 구성되고, 상기 복수개의 메모리 열들 각각은 메모리 열 출력을 제공함 - 과;
    복수개의 데이터 열들 - 상기 복수개의 데이터 열들 각각은 상기 메모리 장치에 대하여 외부와 데이터 신호를 통신하도록 작동될 수 있음 - 과;
    상기 복수개의 메모리 열들 중 식별된 하나의 열을 식별하는 엔코더 회로와;
    상기 엔코더 회로에 의해 식별되는 상기 복수개의 메모리 열들 중 상기 식별된 하나의 열에 응답하여, 상기 복수개의 메모리 열들 중 선택된 메모리 열들을 상기 데이터 열들 중에 대응하도록 연결하는 디코더 회로
    를 포함하고,
    상기 상기 데이터 열들 중 대응하는 데이터 열들은 상기 복수개의 메모리 열들 중 식별된 하나의 메모리 열과 다른 상기 복수개의 메모리 열들 중 적어도 각각을 포함하는 것을 특징으로 하는 메모리 장치.
KR1019980015333A 1997-04-29 1998-04-29 두싸이클의캐쉬액세스동안메모리행잉여분을리-맵핑하는회로,시스템및방법 KR100529987B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US4441497P 1997-04-29 1997-04-29
US60/044,414 1997-04-29

Publications (2)

Publication Number Publication Date
KR19980081831A KR19980081831A (ko) 1998-11-25
KR100529987B1 true KR100529987B1 (ko) 2006-01-27

Family

ID=21932264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980015333A KR100529987B1 (ko) 1997-04-29 1998-04-29 두싸이클의캐쉬액세스동안메모리행잉여분을리-맵핑하는회로,시스템및방법

Country Status (3)

Country Link
US (1) US6223248B1 (ko)
JP (1) JPH10333982A (ko)
KR (1) KR100529987B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
KR100418524B1 (ko) * 2001-10-06 2004-02-11 삼성전자주식회사 디지털 제어 내부클럭 발생회로 및 그에 따른 내부클럭발생방법
US6807114B2 (en) 2003-01-17 2004-10-19 Micron Technology, Inc. Method and system for selecting redundant rows and columns of memory cells
KR100464936B1 (ko) * 2003-04-30 2005-01-06 주식회사 하이닉스반도체 리페어회로의 동작 마진을 향상시킬 수 있는 반도체메모리 장치
KR100543932B1 (ko) * 2003-04-30 2006-01-23 주식회사 하이닉스반도체 초기화 동작시간이 감소된 태그블럭을 구비하는 반도체 메모리 장치 및 그의 구동방법
KR100522431B1 (ko) * 2003-04-30 2005-10-20 주식회사 하이닉스반도체 리프레쉬 동작이 향상된 고속 데이터 억세스를 위한반도체 메모리 장치
JP4595029B2 (ja) 2007-06-20 2010-12-08 富士通株式会社 キャッシュメモリ装置、演算処理装置及びその制御方法
US8598990B2 (en) * 2008-06-30 2013-12-03 Symbol Technologies, Inc. Delimited read command for efficient data access from radio frequency identification (RFID) tags
KR101635395B1 (ko) * 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
KR101603004B1 (ko) * 2011-03-16 2016-03-11 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 미세 단위 메모리 스페어링을 위한 방법 및 시스템
US9442675B2 (en) * 2013-05-08 2016-09-13 Qualcomm Incorporated Redirecting data from a defective data entry in memory to a redundant data entry prior to data access, and related systems and methods
US9715424B1 (en) 2013-08-23 2017-07-25 Rambus Inc. Memory device and repair method with column-based error code tracking
US10229047B2 (en) * 2016-08-06 2019-03-12 Wolley Inc. Apparatus and method of wear leveling for storage class memory using cache filtering
US11989106B2 (en) * 2019-12-11 2024-05-21 Intel Corporation Inline buffer for in-memory post package repair (PPR)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740971A (en) * 1986-02-28 1988-04-26 Advanced Micro Devices, Inc. Tag buffer with testing capability
JPH0689598A (ja) * 1992-05-28 1994-03-29 Sun Microsyst Inc 集積回路チップ上のメモリバンクを初期化する方法及び装置
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
KR960025802A (ko) * 1994-12-28 1996-07-20 데이비드 이 샌더스 Asic 메모리 설계에 내장된 자기-수선 장치 및 방법
KR960030021A (ko) * 1995-01-09 1996-08-17 정강환 디펙트(defect)가 있어 수리 불가능한 반도체를 사용하기 위한 구조와 방법
KR960035642A (ko) * 1995-03-02 1996-10-24 알베르트 발도르프. 롤프 옴케 어드레싱가능한 개별 유니트로 통합된 메모리셀을 가진 반도체 메모리 및 그 동작방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0675436B1 (en) * 1994-03-31 1999-10-27 STMicroelectronics, Inc. Recoverable set associative cache
US5933852A (en) * 1996-11-07 1999-08-03 Micron Electronics, Inc. System and method for accelerated remapping of defective memory locations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740971A (en) * 1986-02-28 1988-04-26 Advanced Micro Devices, Inc. Tag buffer with testing capability
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
JPH0689598A (ja) * 1992-05-28 1994-03-29 Sun Microsyst Inc 集積回路チップ上のメモリバンクを初期化する方法及び装置
KR960025802A (ko) * 1994-12-28 1996-07-20 데이비드 이 샌더스 Asic 메모리 설계에 내장된 자기-수선 장치 및 방법
KR960030021A (ko) * 1995-01-09 1996-08-17 정강환 디펙트(defect)가 있어 수리 불가능한 반도체를 사용하기 위한 구조와 방법
KR960035642A (ko) * 1995-03-02 1996-10-24 알베르트 발도르프. 롤프 옴케 어드레싱가능한 개별 유니트로 통합된 메모리셀을 가진 반도체 메모리 및 그 동작방법

Also Published As

Publication number Publication date
US6223248B1 (en) 2001-04-24
KR19980081831A (ko) 1998-11-25
JPH10333982A (ja) 1998-12-18

Similar Documents

Publication Publication Date Title
US6055204A (en) Circuits, systems, and methods for re-mapping memory column redundancy
KR100529987B1 (ko) 두싸이클의캐쉬액세스동안메모리행잉여분을리-맵핑하는회로,시스템및방법
US6922798B2 (en) Apparatus and methods for providing enhanced redundancy for an on-die cache
US5153880A (en) Field-programmable redundancy apparatus for memory arrays
Shirvani et al. PADded cache: a new fault-tolerance technique for cache memories
US7539896B2 (en) Repairable block redundancy scheme
US5161157A (en) Field-programmable redundancy apparatus for memory arrays
US5950012A (en) Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5752260A (en) High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US7120068B2 (en) Column/row redundancy architecture using latches programmed from a look up table
US4559618A (en) Content-addressable memory module with associative clear
US5053951A (en) Segment descriptor unit for performing static and dynamic address translation operations
JPH06502263A (ja) 障害許容データ記憶システム
US6041422A (en) Fault tolerant memory system
GB2176918A (en) Memory management for microprocessor system
US5956752A (en) Method and apparatus for accessing a cache using index prediction
JP3645294B2 (ja) 半導体メモリ装置の多重ビットテスト回路
US6366978B1 (en) Cache memory
US5283876A (en) Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry
US6065113A (en) Circuits, systems, and methods for uniquely identifying a microprocessor at the instruction set level employing one-time programmable register
US6310805B1 (en) Architecture for a dual-bank page mode memory with redundancy
US6442667B1 (en) Selectively powering X Y organized memory banks
US6591331B1 (en) Method and apparatus for determining the address of the highest priority matching entry in a segmented content addressable memory device
KR0158881B1 (ko) 대규모 반도체 집적회로 장치와 그 결함구제 방법
US20040105289A1 (en) Method and apparatus for replacing defective rows in a semiconductor memory array

Legal Events

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

Payment date: 20121030

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 13

EXPY Expiration of term