KR100985926B1 - 메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법 - Google Patents

메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법 Download PDF

Info

Publication number
KR100985926B1
KR100985926B1 KR1020087023388A KR20087023388A KR100985926B1 KR 100985926 B1 KR100985926 B1 KR 100985926B1 KR 1020087023388 A KR1020087023388 A KR 1020087023388A KR 20087023388 A KR20087023388 A KR 20087023388A KR 100985926 B1 KR100985926 B1 KR 100985926B1
Authority
KR
South Korea
Prior art keywords
memory
bit lane
bit
terminals
lane terminals
Prior art date
Application number
KR1020087023388A
Other languages
English (en)
Other versions
KR20080097486A (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 KR20080097486A publication Critical patent/KR20080097486A/ko
Application granted granted Critical
Publication of KR100985926B1 publication Critical patent/KR100985926B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

컴퓨터 시스템에서 사용되는 복수의 메모리 모듈은 복수의 메모리 장치에 접속된 메모리 허브를 각각 포함한다. 메모리 모듈들은 서로 직렬로 접속되어 사이에 있는(intervening) 임의의 메모리 모듈을 통하여 메모리 모듈들과 메모리 허브 컨트롤러 사이에서 신호들이 연결된다. 신호들은 고속 비트 레인들을 통하여 메모리 모듈들에 대해 연결된다. 메모리 허브들 중 임의의 허브에 접속된 비트 레인이 동작 가능하지 않을 경우, 메모리 허브는 동작 가능하지 않은 비트 레인을 통하여 인접 비트선에 연결될 신호들을 리라우팅한다. 그 비트 레인이 더 이상 동작 불능이 아닌 메모리 허브에 신호가 도착할 때, 메모리 허브는 그 신호를 원래의 비트 레인으로 다시 라우팅한다. 이러한 방식으로, 다수의 비트 레인 장애들이 단일의 여분 비트 레인(extra bit-lane)을 사용하여 수용될 수 있다.
Figure R1020087023388
비트 레인 장애, 메모리 모듈, 리라우팅, 버스, 메모리 허브

Description

메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는 시스템 및 방법{SYSTEM AND METHOD FOR RE-ROUTING SIGNALS BETWEEN MEMORY SYSTEM COMPONENTS}
본 발명은 메모리 시스템에 관련되고, 더욱 구체적으로는, 각각이 메모리 허브 아키텍처를 가질 수 있는 몇몇 메모리 모듈에 연결된 메모리 컨트롤러 또는 그와 같은 것을 갖는 메모리 시스템에 관한 것이다.
컴퓨터 시스템들은 프로세서에 의해 액세스되는 명령어들 및 데이터를 저장하기 위해 SDRAM(dynamic random access memory) 장치들과 같은 메모리 장치들을 사용한다. 전형적인 컴퓨터 시스템에서, 프로세서는 프로세서 버스 및 메모리 컨트롤러를 통하여 시스템 메모리와 통신한다. 프로세서는 판독 커맨드와 같은 커맨드 및, 데이터 또는 명령어들이 판독될 위치를 나타내는 어드레스를 발행한다. 메모리 컨트롤러는 커맨드 및 어드레스를 이용하여, 시스템 메모리에 적용되는 열 및 행 어드레스들 뿐만 아니라 적절한 커맨드 신호들을 생성한다. 커맨드들 및 어드레스들에 응답하여, 데이터는 시스템 메모리와 프로세서 사이에서 전송된다. 메모리 컨트롤러는 종종 시스템 컨트롤러의 일부분이고, 그것은 또한 프로세서 버스를 PCI 버스와 같은 확장 버스에 연결시키기 위한 버스 브리지 회로를 포함한다.
메모리 장치들의 동작 속도가 계속해서 증가하였지만, 동작 속도에 있어서의 이러한 증가는 프로세서들의 동작 속도에 있어서의 증가를 따라가지 못해왔다. 프로세서들을 메모리 장치들에 연결하는 메모리 컨트롤러들의 동작 속도에 있어서의 증가는 훨씬 더 느렸었다. 메모리 컨트롤러들 및 메모리 장치들의 상대적으로 낮은 속도는 프로세서와 메모리 장치들 사이의 통신 대역폭을 제한한다.
메모리 대역폭을 증가시키기 위한 하나의 접근은 메모리 컨트롤러 또는 그와 같은 것을 통하여 프로세서에 연결된 다수의 메모리 모듈을 사용하는 것이다. 메모리 모듈들 각각은 메모리 허브가 DRAM 장치들과 같은 몇몇 메모리 장치에 연결되는 메모리 허브 아키텍처를 가질 수 있다. 메모리 모듈들 각각의 메모리 허브는 복수의 고속 비트 레인(bit-lane)을 통하여 메모리 컨트롤러에 연결될 수 있다. 이러한 아키텍처를 채용하는 컴퓨터 시스템들은 하나의 메모리 장치가 이전의 메모리 액세스에 응답하고 있는 동안 프로세서가 또다른 메모리 장치에 액세스할 수 있기 때문에 고 대역폭을 가질 수 있다. 예를 들면, 프로세서는 시스템의 메모리 장치들 중 하나가 프로세서에 판독 데이터를 제공할 준비를 하고 있는 동안 시스템의 또다른 메모리 장치에 기입 데이터를 출력할 수 있다.
메모리 허브 아키텍처를 갖는 종래의 컴퓨터 시스템(100)이 도 1에 도시된다. 컴퓨터 시스템(100)은 특정한 계산들 또는 작업들을 수행하기 위해 특정한 소프트웨어를 실행하는 것과 같은 다양한 컴퓨팅 기능들을 수행하기 위하여 프로세서(104)를 포함한다. 프로세서(104)는 어드레스 버스, 컨트롤 버스 및 데이터 버스를 포함하는 프로세서 버스(106)를 보통 포함한다. 프로세서 버스(106)는 전형적으로 캐시 메모리(108)에 연결되고, 전술한 바와 같이, 캐시 메모리는 보통 SRAM(static random access memory)이다. 마지막으로, 프로세서 버스(106)는 때때로 "노스 브리지(North Bridge)"라고도 불리는 시스템 컨트롤러(110)에 연결된다.
시스템 컨트롤러(110)는 가지각색의 다른 컴포넌트에 대하여 프로세서(104)로의 통신 경로 역할을 한다. 더욱 구체적으로, 시스템 컨트롤러(110)는 전형적으로 그래픽 컨트롤러(112)에 연결되는 그래픽 포트를 포함하고, 그래픽 컨트롤러(112)는, 차례로, 비디오 단자(114)에 연결된다. 시스템 컨트롤러(110)는 키보드 또는 마우스와 같은 하나 이상의 입력 장치(118)에 또한 연결되어, 오퍼레이터(operator)가 컴퓨터 시스템(100)과 인터페이스하는 것을 가능하게 한다. 전형적으로, 컴퓨터 시스템(100)은, 시스템 컨트롤러(110)를 통하여 프로세서(104)에 연결되는, 프린터와 같은 하나 이상의 출력 장치(120)를 또한 포함한다. 하나 이상의 데이터 저장 장치(124)가 시스템 컨트롤러(110)를 통하여 프로세서(104)에 전형적으로 연결되어 프로세서(104)가 내부 저장 매체 또는 외부 저장 매체(도시 안됨)에 대하여 데이터를 저장하거나 검색하는 것을 가능하게 한다. 전형적인 저장 장치들(124)의 예들은 하드 및 플로피 디스크들, 테이프 카세트들 및 CD-ROM(compact disk read-only memory)들을 포함한다.
시스템 컨트롤러(110)는 몇몇 시스템 메모리 모듈(130a-n)로의 액세스를 제어하기 위해 메모리 허브 컨트롤러(128)를 또한 포함한다. 메모리 모듈들(130a-d) 각각은 메모리 허브(140) 및 복수의 메모리 장치(148)가 탑재된 기판(134)을 포함한다. 메모리 장치들(148)은 SDRAM 장치들 또는 소정의 다른 유형의 메모리 장치들일 수 있다. 메모리 장치들(148)은 커맨드 버스, 어드레스 버스 및 데이터 버스 를 보통 포함하는 버스 시스템(150)을 통하여 메모리 허브(140)에 연결된다. 메모리 허브 컨트롤러(128)는 몇몇 고속 다운스트림(downstream) 비트 레인들(162) 및 몇몇 고속 업스트림(upstream) 비트 레인들(164)을 통하여 개별적인 메모리 모듈(130a-d)의 메모리 허브들(140)에 연결된다. 다운스트림 비트 레인들(162) 각각은 메모리 허브 컨트롤러(128)로부터 메모리 모듈들(130a-n)의 메모리 허브들(140)로 신호들을 연결하기 위한 신호선을 포함한다. 유사하게, 업스트림 비트 레인들(164) 각각은 메모리 모듈들(130a-n)의 메모리 허브들(140)로부터 메모리 허브 컨트롤러(128)로 신호들을 연결하기 위한 신호선을 포함한다. 도 1의 컴퓨터 시스템(100)의 예에서, 비트 레인들(162, 164)을 통하여 연결된 신호들은 패킷들의 형태이다. 다운스트림 비트 레인들(162)을 통하여 연결된 패킷들은 메모리 커맨드들, 어드레스들 및 기입 데이터를 일반적으로 포함한다. 업스트림 비트 레인들(164)을 통하여 연결된 패킷들은 판독 데이터 및 수신 확인 신호(acknowledgement signal)들을 일반적으로 포함한다. 그러나 다른 메모리 모듈들(130a-n)로부터 데이터를 판독하거나 다른 메모리 모듈들(130a-n)로 데이터를 기입할 수 있는 능력을 메모리 허브들(140)이 포함한다면, 비트 레인들(162, 164) 중 한쪽을 통하여 연결된 패킷들은 메모리 커맨드들, 어드레스들, 기입 데이터, 판독 데이터 및 수신 확인 신호들을 포함할 수 있다. 그러나 메모리 허브 컨트롤러(128)와 메모리 모듈들(130a-n) 사이에서 신호들을 연결하는 다른 수단은, 전용 커맨드, 어드레스, 기입 데이터선들 및 판독 데이터선들을 포함한다. 도 1에 도시된 컴퓨터 시스템(100)에는, 10개의 다운스트림 비트 레인(162a-j) 및 14개의 업스 트림 비트 레인(164a-n)이 있다. 그러나 상이한 개수의 비트 레인(162, 164)이 사용될 수 있다. 그러나 아래에 기술된 예들 중 몇몇 예에서는, 명확성과 단순성을 위해 단지 4개의 비트 레인(162a-d)만이 도시되고 기술된다.
비트 레인들(162, 164)은 개별적인 메모리 모듈(130a-n) 사이의 구획들로 분할된다. 더욱 구체적으로, 비트 레인들(162, 164)의 제1 구획(170)을 통하여, 그리고 기판(134) 상의 커넥터(190)를 통하여 메모리 허브 컨트롤러(128)는 제1 메모리 모듈(130a)의 메모리 허브(140)에 연결된다. 제2 메모리 모듈(130b)의 메모리 허브(140)는 제1 메모리 모듈(130a)의 메모리 허브(140)의 제2 세트의 비트 레인 단자를 통하여 메모리 허브 컨트롤러(128)에 접속되며, 제2 세트의 비트 레인 단자는 기판(134) 상의 제2 커넥터(192)에 접속된다. 그리하여 비트 레인들(190, 192)의 제2 구획(172) 뿐만 아니라, 비트 레인들(190, 192)의 제1 구획(170)을 이용하여 제2 메모리 모듈(130b)의 메모리 허브(140) 사이에서 신호들이 연결된다. 유사하게, 남아있는 N-2 개의 메모리 모듈(130)의 메모리 허브들(140)이 같은 방식으로 제1 및 제2 메모리 모듈들 (130a, b), 제1 및 제2 비트선 구획들(170, 172) 각각, 및 사이에 있는 임의의 메모리 모듈(130)과 비트선 구획을 통하여서 메모리 허브 컨트롤러(128)에 접속된다.
동작시, 메모리 모듈들(130a-c) 각각의 메모리 허브(140)는 두 가지 방식 중 하나의 방식으로 비트 레인들(160-166)을 통하여 연결된 신호들을 프로세싱할 수 있다. 첫째로, 메모리 모듈(130)로부터 "다운스트림(downstream)"으로 방사하는 신호들이 메모리 허브 컨트롤러(128)에 연결되어 있거나 또는 메모리 허브 컨트롤 러(128)로부터의 신호들이 다운스트림 메모리 모듈(130)에 연결되어 있다면, 메모리 모듈의 메모리 허브(140)는 신호들을 하나의 구획의 비트 레인들(162, 164) 각각으로부터 다른 구획의 대응하는 비트 레인들(162, 164)로 단순히 전달한다. 그러나, 만약 비트 레인들(162, 164)을 통하여 연결된 신호들이 메모리 모듈(130) 상의 하나 이상의 메모리 장치(148)에 액세스하기 위한 것이라면, 신호들은 그 메모리 모듈(130)의 메모리 허브(140)에 관하여 연결된다. 그 후 메모리 허브(140)는 메모리 허브 컨트롤러(128)로부터 수신된 신호들을 사용하여 메모리 장치들(148)에 액세스하기 위한 신호들을 생성한다.
컴퓨터 시스템(100)에서 사용된 메모리 허브 아키텍처는 프로세서(104)가 메모리 장치들(148) 각각으로부터 더욱 효과적으로 데이터를 기입하고 데이터를 판독하는 것을 가능하게 한다. 예를 들어, 프로세서(104)는 메모리 모듈(130a)의 메모리 장치(148)의 어드레스에 판독 커맨드를 발행할 수 있다. 메모리 모듈(130a)의 메모리 허브(140)가 메모리 모듈(130a)의 어드레싱된 메모리 장치(148)에 대응하는 판독 커맨드를 발행하고 메모리 장치(148)가 그 판독 커맨드에 응답하는 시간 동안, 프로세서(104)는 다른 메모리 모듈(130)에 메모리 커맨드를 발행하거나, 메모리 장치에 액세스하는 것 이외의 기능을 수행할 수 있다. 판독 데이터가 메모리 모듈(130a)로부터 전송될 준비가 되면, 프로세서는 그 메모리 모듈의 메모리 허브(140)와 다시 통신할 수 있다.
메모리 허브 아키텍처를 이용하는 프로세서 기반 시스템(processor-based system)들은 도 1에 도시된 구성 이외의 구성들을 가질 수 있다. 예를 들어, 프로 세서(104) 이외의 장치들은 메모리 허브 컨트롤러(128)를 통하여 메모리 모듈들(130)에 액세스할 수 있다. 또한, 메모리 허브 컨트롤러(128)는 시스템 컨트롤러(110) 이외의 전자 시스템의 컴포넌트들의 일부로서 물리적으로 포함되거나 독립형 유닛일 수 있다. 다른 수정들 및 변형들이 본 기술 분야의 통상의 기술자에게 명백할 것이다.
각각의 다운스트림 비트 레인(162) 또는 각각의 업스트림 비트 레인(164)은 패킷의 특정한 비트들과 같은 특정한 신호들을 전달하도록 각각 할당될 수 있다. 그러나, 비트 레인들(162, 164)은 때때로 융통성 있는 기준에 따라 할당될 수도 있어서, 만약 전부 또는 일부의 비트 레인에 결점이 생기면, 또다른 비트 레인이 결점이 있는 비트 레인을 대신할 수 있다. 사실, 소정의 시스템에서, 특히 이러한 목적을 위해 여분의 비트 레인이 제공될 수 있다. 비트 레인들의 융통성 있는 할당의 일례는 도 2에 도시된 컴퓨터 시스템(100)의 부분에서 개략적으로 도시된다. 도 2에 도시된 바와 같이, 다양한 이유 중 하나의 이유로 제1 구획(170)의 비트 레인(162c)에 결점이 생긴다. 비트 레인(162c)의 도체가 개방 회로 또는 단락 회로로 되거나, 메모리 허브 컨트롤러(128)에서 또는 메모리 모듈(130a)의 메모리 허브(140)에서 비트 레인(162c)에 접속된 전기적 컴포넌트에 결함이 생길 수 있다. 그러한 경우에, 메모리 허브 컨트롤러(128)는 보통 비트 레인(162c)을 통과할 신호들을 여분의 비트 레인(162d)으로 리라우팅(re-route)한다. 그리하여 컴퓨터 시스템(100)은 제1 비트선 구획(170)에서 동작 가능하지 않은 비트 레인(162c)에도 불구하고 기능을 계속할 수 있다.
하나의 비트 레인만이 동작 가능하지 않다면 결함이 있는 비트 레인(162c)에 대한 여분의 비트 레인(162d)의 대체(substitution)는 잘 작용한다. 그러나, 만약 둘 이상의 비트 레인이 동작 가능하지 않게 되었다면, 이러한 대체 절차는 두 개의 여분의 비트 레인이 제공되어 있지 않다면 충분하지 않을 것이다. 예를 들어, 도 3에 도시된 바와 같이, 비트 레인(162c)이 제1 비트선 구획(170)에서 동작 가능하지 않게 되고, 비트 레인(162b)이 제2 비트선 구획(172)에서 동작 가능하지 않게 된다. 그러한 경우에, 3개의 비트 레인이 메모리 모듈(130a)로부터 신호들을 전달하도록 동작 가능하게 남아 있음에도 불구하고, 두 개의 비트 레인(162a, 162d)만이 메모리 모듈들(130b-c)로부터 신호들을 전달하도록 동작 가능하게 남아있을 것이다. 그러나, 도 3에 도시된 시스템은 임의의 구획(170-176)에서 둘 이상의 비트 레인(162)이 동작 가능하지 않게 될 경우에 일반적으로 동작 가능하지 않게 된다.
그리하여 다수의 비트 레인에서의 장애들에도 불구하고 비트 레인 대체에 의해 메모리 시스템이 복구되는 것을 가능하게 하는 메모리 시스템 아키텍처에 대한 필요가 있다.
<개요>
메모리 모듈의 복수의 메모리 장치에 연결된 메모리 허브가 사용될 수 있다. 메모리 허브는 메모리 허브 컨트롤러 또는 또다른 메모리 모듈의 메모리 허브 중 한 쪽에 연결하기 위한 제1 복수의 비트 레인 단자를 포함한다. 메모리 허브는 또다른 메모리 모듈의 메모리 허브의 제1 복수의 비트 레인 단자들에 연결될 수 있는 제2 복수의 비트 레인 단자를 또한 포함한다. 메모리 허브는 제1 및 제2 복수의 비트 레인 단자들 및 적어도 하나의 메모리 장치 인터페이스에 연결되는 스위치를 포함한다. 메모리 허브 컨트롤러 또는 또다른 메모리 허브에 대한 비트 레인 접속이 동작 가능할 경우, 제1 복수의 비트 레인 단자 중 적어도 일부의 단자를 제2 복수의 비트 레인 단자 중 개별적인 단자에 연결하도록 동작 가능한 스위칭 회로가 스위치에 포함된다. 만약 메모리 허브 컨트롤러 또는 또다른 메모리 허브에 대한 비트 레인 접속이 동작 가능하지 않다면 스위칭 회로는 대응하는 제1 복수의 비트 레인 단자를 적어도 하나의 다른 제2 복수의 비트 레인 단자에 연결시키도록 동작 가능하다.
도 1은 본 발명의 하나의 예에 따른 메모리 시스템을 사용할 수 있는 종래의 컴퓨터 시스템의 블록도이다.
도 2는 컴퓨터 시스템이 메모리 모듈들 사이에서 신호들을 종래와 같이 연결하는 방식을 도시하는 도 1의 컴퓨터 시스템의 일부의 블록도이다.
도 3은 종래 방식으로 동작하는 컴퓨터 시스템이 다수의 비트 라인이 장애인 경우에 메모리 모듈들 사이에서 신호들을 연결할 수 없는 방식을 도시하는 도 1의 컴퓨터 시스템의 일부의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 메모리 모듈들 사이에서 컴퓨터 시스템이 신호들을 연결하는 방식을 도시하는 도 1의 컴퓨터 시스템의 일부의 블록도이다.
도 5는 다수의 비트 레인이 장애인 경우에 메모리 모듈들 사이에서 본 발명 의 일례에 따라 동작하는 컴퓨터 시스템이 신호들을 연결할 수 있는 방법을 도시하는 도 1의 컴퓨터 시스템의 일부의 블록도이다.
도 6은 다수의 비트 레인이 장애인 경우에 본 발명의 또다른 예에 따라 동작하는 컴퓨터 시스템이 메모리 모듈들 사이에서 신호들을 연결할 수 있는 방식을 도시하는 도 1의 컴퓨터 시스템의 일부의 블록도이다.
도 7은 도 1의 컴퓨터 시스템에서 사용될 수 있는 본 발명의 일례에 따른 메모리 허브를 도시하는 블록도이다.
도 8은 도 7의 메모리 허브의 다운스트림 비트 레인들을 스위칭하는 데 사용될 수 있는 스위칭 회로의 일례를 도시하는 논리 도표(logic diagram)이다.
도 9는 도 7의 메모리 허브의 업스트림 비트 레인들을 스위칭하는 데 사용될 수 있는 스위칭 회로의 일례를 도시하는 논리 도표이다.
다수의 비트 레인에 결함이 생기는 경우에 계속 동작할 수 있는 메모리 허브 아키텍처를 갖는 컴퓨터 시스템(200)의 일부의 일례가 도 4에 도시되어 있다. 컴퓨터 시스템(200)은 다수의 다운스트림 비트 레인(162) 및 다수의 업스트림 비트 레인(164)을 가질 수 있지만, 명확성과 단순성을 위해 단지 4개의 다운스트림 비트 레인(162a-d)만이 도 4에 도시되어 있다. 도 4에 도시되어 있는 바와 같이, 제1 비트선 구획(170)의 비트 레인(162c)은 결함을 갖게 된다. 이것은 도 2에 도시된 컴퓨터 시스템(100)에서와 동일한 결함이다. 도 2에 도시된 컴퓨터 시스템에서와 같이, 메모리 허브 컨트롤러(128)는 제1 비트선 구획(170)의 비트 레인(162c)에 대하여 신호들을 리라우팅하여, 그들은 이제 비트 레인(162d)을 통과한다. 그러나 제1 메모리 모듈(130a)의 메모리 허브(140)는 단순히 비트 레인(162d)의 제1 구획(170)을 비트 레인(162d)의 제2 구획(172)에 연결하는 것이 아니다. 대신, 제1 메모리 모듈(130a)의 메모리 허브(140)는 비트 레인(162d)의 제1 구획(170)을 비트 레인(162c)의 제2 구획(172)에 연결한다. 그 후에, 나머지 비트선 구획들(172, 174)의 비트 레인(162c)을 통하여 신호들이 라우팅된다.
비트 레인의 장애가 있는 구획을 나머지 비트선 구획들에서 원래의 비트 레인으로 다시 라우팅하는 것의 강점이 도 5에 도시된 예로부터 명백할 것이다. 본 명세서에서 도시된 바와 같이, 비트 레인(162c)의 제1 구획(170)은 동작 가능하지 않고, 비트 레인(162b)의 제2 구획(172)은 동작 가능하지 않다. 그 후 비트 레인 장애들의 이러한 패턴은 도 3에 도시된 상황과 동일하다. 그러나 단지 메모리 허브 컨트롤러(128)가 신호들을 리라우팅하는 도 3에 도시된 컴퓨터 시스템과는 달리, 도 5에 도시된 컴퓨터 시스템의 메모리 허브들(140)은 비트 레인들(162a-d)를 통하여 연결된 신호들을 또한 리라우팅한다. 더욱 구체적으로, 메모리 허브 컨트롤러(128)는 비트 레인(162c)의 제1 구획(170)을 통하여 연결될 신호들을 비트 레인(162d)를 통하여 라우팅한다. 메모리 모듈(130a)의 메모리 허브(140)는 비트 레인(162d)의 제1 구획(170)을 비트 레인(162d)의 제2 구획(172)에 연결한다. 제1 메모리 모듈(130a)의 메모리 허브(140)는 비트 레인(162b)의 제1 구획(170)을 비트 레인(162c)의 제2 구획(172)에 또한 연결한다. 결국 비트 레인(162b)의 제1 구획(170)을 통하여 연결된 신호들은 비트 레인(162b)의 결함이 있는 제2 구획(172)을 통하여 연결되지 않는다.
도 5를 더욱 참조하면, 결함이 있는 비트 레인들(162b, 162c)로부터 메모리 모듈들(130b,c)의 다운 스트림에서 메모리 허브들(140)은 비트 레인들(162c, 162d)의 제2 구획들(172)을 비트 레인들(162b, 162c)의 제3 구획들(174)에 각각 연결한다. 그리하여 메모리 모듈(130c)의 메모리 허브(140)에 관하여 신호들이 그들의 적절한 순서로 연결된다.
본 발명의 다양한 예들을 이용하는 다수의 비트 레인 장애들을 복구하기 위하여 신호들이 리라우팅될 수 있는 융통성이 도 6에 도시된 예에 더 예시된다. 도 6에 도시된 바와 같이, 비트 레인들(162a-d) 중의 모든 하나의 비트 레인은 적어도 하나의 동작 가능하지 않은 구획을 갖고, 비트 레인들 중 두 개의 비트 레인(162a, 162c)은 두 개의 구획에서 동작 가능하지 않다. 구체적으로, 비트 레인(162a)은 구획들(176 및 178)에서 동작 가능하지 않고, 비트 레인(162b)는 구획(174)에서 동작 가능하지 않으며, 비트 레인(162c)는 구획들(172 및 180)에서 동작 가능하지 않고, 비트 레인(162d)는 구획(170)에서 동작 가능하지 않다. 그러나, 메모리 모듈들(130a-f)의 메모리 허브들(140)이 신호들을 인접한 비트 레인들에 리라우팅할 수 있기 때문에, 도 6에 도시된 시스템은 동작 가능하게 남아있는다.
도 4-도 6에 도시된 컴퓨터 시스템 중 하나에서 메모리 허브(140)로서 사용될 수 있는 메모리 허브(204)의 예가 도 7에 도시된다. 메모리 허브(204)는 메모리 장치들의 4개의 상이한 뱅크(240a-d)에 연결되는 것으로서 도 7에 도시되고, 메모리 장치들은, 본 예에서 종래의 SDRAM 장치들이다. 메모리 허브(204)를 하나의 구획의 개별적인 비트 레인(162a-d)에 연결하기 위한 링크 인터페이스들(210a-d)이 메모리 허브(204)에 더 포함된다. 링크 인터페이스들(212a-d)의 제2 세트는 메모리 허브(204)를 또다른 비트선 구획의 개별적인 비트 레인(162a-d)에 연결한다. 링크 인터페이스들(210a-d, 212a-d)은 본 기술 분야에서 알려진 종래의 송신기 및 수신기 로직을 포함할 수 있다. 본 기술 분야의 통상의 기술자들이 링크 인터페이스들(210a-d, 212a-d)이 특정 유형들의 통신 경로들과 함께 사용되도록 수정하기에 충분한 지식을 가지고 있다는 것이 이해되고, 본 발명의 범위로부터 벗어나지 않고 링크 인터페이스들(210a-d, 212a-d)에 대한 그러한 수정들이 이루어질 수 있다는 것이 이해될 것이다.
링크 인터페이스들(210a-d, 212a-d)이 개별적인 신호선들(214)을 통하여 스위치(260)에 연결된다. 도 4-도 6에 도시된 바와 같이, 링크 인터페이스들(210a-d, 212a-d)은 메모리 허브(204)가 포인트-투-포인트(point-to-point) 구성으로 시스템 메모리에 접속되는 것을 가능하게 한다. 그러나, 링크 인터페이스들(210a-d, 212a-d)은 다양한 다른 구성으로 메모리 허브들(204)로의 연결을 가능하게 하는 데 사용될 수도 있다. 스위치(260)는 4개의 메모리 인터페이스(270a-d)에 더 연결되고, 4개의 메모리 인터페이스(270a-d)는, 차례로 시스템 메모리 장치의 뱅크들(240a-d)에 각각 연결된다. 시스템 메모리 장치들의 각 뱅크(240a-d)에 분리된 그리고 독립적인 메모리 인터페이스(270a-d)를 각각 제공함으로써, 메모리 허브(204)는 전형적으로 단일 채널 메모리 아키텍처들에서 일어나는 버스 또는 메모리 뱅크 콘플릭트(conflict)들을 피한다. 스위치(260)는 각 메모리 인터페이스에 버스들(274)로서 표현된, 복수의 버스 및 신호선을 통하여 연결된다. 버스들(274)은 기입 데이터 버스, 판독 데이터 버스 및 리퀘스트 라인(request line)을 포함할 수 있다. 그러나, 단일 양방향 데이터 버스가 분리된 기입 데이터 버스 및 판독 데이터 버스 대신 대안적으로 사용될 수 있다는 것이 이해될 것이다. 더욱이, 버스들(274)은 이전에 기술된 것보다 더 많은 또는 더 적은 수의 신호선들을 포함할 수 있다.
링크 인터페이스들(210a-d, 212a-d) 및 메모리 인터페이스들(270a-d)를 연결하는 스위치(260)는 다양한 종래의 또는 이후에 개발되는 스위치들 중 임의의 것일 수 있다. 스위치(260)는 링크 인터페이스들(210a-d, 212a-d)과 메모리 인터페이스들(270a-d)을 다양한 구성으로 서로 동시에 연결시킬 수 있는 크로스바 스위치(cross-bar switch)일 수 있다. 스위치(260)는 크로스바 스위치와 같은 동일한 레벨의 접속성을 제공하지 않는 다중화기들의 세트일 수도 있지만, 그럼에도 불구하고 링크 인터페이스들(210a-d)을 링크 인터페이스들(212a-d) 중 임의의 링크 인터페이스에 연결할 수 있으며, 링크 인터페이스들(210a-d, 212a-d)을 각각의 메모리 인터페이스들(270a-d)에 연결할 수 있다. 스위치(260)는 어느 메모리 액세스들이 다른 메모리 액세스들보다 앞서는 우선순위를 받아야 하느냐를 결정하기 위한 중재 로직(arbitration logic, 도시 안됨)을 포함할 수도 있다. 이러한 기능을 수행하는 버스 중재는 본 기술 분야의 통상의 기술자에게 잘 알려져 있다.
도 7을 더 참조하면, 메모리 인터페이스들(270a-d) 각각은 개별적인 메모리 컨트롤러(280), 개별적인 기입 버퍼(282) 및 개별적인 캐시 메모리 유닛(284)을 포함한다. 제어, 어드레스 및 데이터 신호들을 메모리 컨트롤러가 연결된 시스템 메모리 장치(240a-d)에 제공하고, 데이터 신호들을 메모리 컨트롤러(280)가 연결된 시스템 메모리 장치(240a-d)로부터 수신함으로써, 메모리 컨트롤러(280)는 종래의 메모리 컨트롤러와 동일한 기능을 수행한다. 기입 버퍼(282) 및 캐시 메모리 유닛(284)은 버퍼 및 캐시 메모리의 보통의 컴포넌트들을 포함하고, 보통의 컴포넌트들은 본 기술 분야에서 잘 알려진 바와 같이 태그 메모리, 데이터 메모리, 비교기 등을 포함한다. 기입 버퍼(282) 및 캐시 메모리 유닛(284)에서 사용된 메모리 장치들은 DRAM 장치들, SRAM 장치들, 다른 유형의 메모리 장치들, 또는 3개 모두의 조합 중 하나일 수 있다. 게다가, 이들 메모리 장치 중 임의의 것 또는 모두는 캐시 메모리 유닛(284)에 사용된 다른 컴포넌트들과 마찬가지로 임베디드 장치 또는 독립형 장치들 중 하나일 수 있다.
각 메모리 인터페이스(270a-d)의 기입 버퍼(282)는 판독 요청이 서비스되는 동안 기입 요청들을 저장하는 데 이용된다. 그러한 시스템에서, 프로세서(104)는 기입 요청이 향해지는 메모리 장치가 이전의 기입 또는 판독 요청을 서비스하느라 바쁘다고 해도, 시스템 메모리 장치(240a-d)에 기입 요청을 발행할 수 있다. 이러한 접근법을 사용하여, 후속 판독 요청이 서비스되는 동안 그보다 먼저인 기입 요청이 기입 버퍼(282)에 저장될 수 있기 때문에, 메모리 요청들은 순차적이지 않게(out of order) 서비스될 수 있다. 그들의 연대기적 순서(chronological order)에 관계없이 판독 요청들이 제1 우선순위가 될 수 있기 때문에 기입 요청들을 버퍼링하여 판독 요청이 서비스되도록 할 수 있는 능력은 메모리 판독 대기 시간을 크게 감소시킬 수 있다. 예를 들면, 판독 요청들로써 변화된(interspersed) 일련의 기입 요청은 기입 버퍼(282)에 저장되어 판독 요청들이 파이프라인 방식으로 (in a pipelined manner) 서비스된 후에 저장된 기입 요청들이 파이프라인 방식으로 서비스되는 것이 가능하다. 결국, 메모리 장치들(270a-d)로의 기입 요청을 연결하는 것과 후속하여 판독 요청을 메모리 장치들(270a-d)에 연결하는 것 사이의, 기입 요청과 판독 요청을 교대하기 위한 긴 설정 시간들은 피해질 수 있다.
각 메모리 인터페이스(270a-d)에서 캐시 메모리 유닛(284)의 사용은 데이터가 최근에 메모리 장치(240a-d)로부터 판독되었거나 메모리 장치(240a-d)에 기입되었을 경우 그러한 데이터를 메모리 장치(240a-d)가 제공하기를 기다리지 않고 개별적인 시스템 메모리 장치(240a-d)에 향해진 판독 명령의 응답인 데이터를 프로세서(104)가 수신할 수 있게 한다. 그리하여 캐시 메모리 유닛(284)은 시스템 메모리 장치들(240a-d)의 판독 레이턴시를 감소시켜 컴퓨터 시스템의 메모리 대역폭을 최대화한다. 유사하게, 프로세서(104)는 캐시 메모리 유닛(284)에 기입 데이터를 저장할 수 있고 그 후 동일한 메모리 인터페이스(270a-d)의 메모리 컨트롤러(280)가 캐시 메모리 유닛(284)으로부터 메모리 컨트롤러(280)가 연결된 시스템 메모리 장치(240a-d)로 기입 데이터를 전송할 동안 다른 기능들을 수행할 수 있다.
버스(288)를 통하여 스위치(260)에 연결된 DMA 엔진(286)이 메모리 허브(200)에 더 포함된다. DMA 엔진(286)은 프로세서(104)로부터의 개입 없이 시스템 메모리의 하나의 위치로부터 시스템 메모리의 또다른 위치로 데이터 블럭들을 메모리 허브(200)가 이동시킬 수 있게 한다(도 1). 시스템 메모리에서 데이터 전송들을 처리하기 위한, 어드레스, 컨트롤, 데이터 버스들 등과 같은 복수의 종래의 버스선들 및 신호선들을 버스(288)는 포함한다. 본 기술 분야의 통상의 기술자들에게 잘 알려진 종래의 DMA 동작들이 DMA 엔진(286)에 의해 구현될 수 있다. DMA 엔진(286)은 시스템 메모리의 링크 목록을 판독하여 프로세서 개입 없이 DMA 메모리 동작들을 실행할 수 있고, 그리하여 프로세서(104)와 대역폭 제한된 시스템 버스가 메모리 동작들을 실행하지 않게 할 수 있다. DMA 엔진(286)은 DMA 동작들을 수용하기(accommodate) 위한 회로를 다수의 채널 상에, 예를 들면 뱅크들(240a-d)의 시스템 메모리 장치들 각각에 대하여 포함할 수도 있다. 그러한 다수의 채널 DMA 엔진은 본 기술 분야에서 잘 알려지고 종래의 기술들을 사용하여 구현될 수 있다.
하나의 구획의 다운스트림 비트 레인들(162a-d) 중 임의의 것을 또다른 비트선 구획의 인접한 다운스트림 비트 레인(162a'-d')에 연결하기 위해 스위치(260, 도 7)에서 사용될 수 있는 다중화기(multiplexer)(300)의 일례가 도 8에서 도시된다. 다중화기 시스템(300)은 하나의 구획(305)의 개별적인 다운스트림 비트 레인(162a-d)에 연결된 입력들을 갖는 수신기들(310, 312, 314, 316)을 포함한다. 수신기들(310, 312, 314, 316)의 출력들은 개별적인 다중화기(320, 322, 324, 326)의 하나의 입력에 연결된다. 마지막 3개의 수신기들(312, 314, 316)의 출력들은 처음 3개의 다중화기(320, 322, 324) 중 개별적인 다중화기의 하나의 입력에 또한 연결된다. 그리하여, 예를 들면, 수신기(312)의 출력은 다중화기(322) 및 다중화기(320) 둘 다에 연결된다. 다중화기들(320, 322, 324, 326)의 출력들은 제어 로직(328)에 연결되고, 제어 로직(328)은, 차례로, 동일한 메모리 모듈(130) 상의 메모리 장치들(148, 도 1)에 연결된다. 제어 로직(128)은 로컬 메모리 요청들, 즉 커맨드들, 어드레스들 및 때때로 기입 데이터를 동일한 모듈의 메모리 장치들(148)로 라우팅하기 위해 사용된다. 다중화기들(320, 322, 324, 326)의 출력들은 다운스트림 메모리 모듈(130)에 메모리 요청들을 연결할 때 사용하기 위해 개별적인 다중화기(330, 332, 334, 336)의 제2 세트 중 하나의 입력에 또한 연결된다. 처음 3개의 다중화기(320, 322, 324)의 출력들이 마지막 3개의 다중화기(332, 334, 336)의 하나의 입력에 또한 연결된다. 다중화기들(330, 332, 334, 336)의 출력들은 개별적인 송신기(340, 342, 344, 346)의 입력들에 연결되고, 개별적인 송신기(340, 342, 344, 346)의 출력들은 또다른 구획(315)의 개별적인 비트 레인(162a', 162b', 162c', 162d')에 접속된다.
동작시, 다중화기들(320, 322, 324, 326) 각각은 적당한 제어 회로(도시 안됨)에 의해 그것의 개별적인 비트 레인 또는 인접하는 더 높은 비트 레인(higher bit-lane)을 전달하도록 제어된다. 유사하게, 다중화기들(330, 332, 334, 336)은 적당한 제어 회로(도시 안됨)에 의해 그것의 개별적인 비트 레인 또는 인접하는 더 낮은 비트 레인(lower bit-lane)을 전달하도록 제어된다. 그리하여 다중화기 시스템은 구획(305)의 비트 레인들(162a-d) 중 임의의 것을 구획(315)의 인접 비트 레인들(162a'-d') 중 어느 하나의 비트 레인에 연결할 수 있다.
도 9를 더욱 참조하면, 유사한 다중화기 시스템(350)이 업스트림 비트선들(164)의 하나의 구획(315)을 업스트림 비트선들(164)의 또다른 구획(305)에 연결하는 데 사용된다. 다중화기 시스템은 하나의 구획(315)의 개별적인 비트 레인(164a'-d')에 연결된 입력들을 갖는 수신기들(360, 362, 364, 366)을 포함한다. 수신기들(360, 362, 364, 366)의 출력들은 개별적인 다중화기(370, 372, 374, 376)의 하나의 입력에 연결된다. 마지막 3개의 수신기(362, 364, 366)의 출력들은 처음 3개의 다중화기(370, 372, 374) 중 개별적인 다중화기의 하나의 입력에 또한 연결된다. 다중화기들(370, 372, 374, 376)의 출력들은 다중화기들(380, 382, 384, 386)의 제2 세트에 연결된다. 이러한 다중화기들(380, 382, 384, 386) 각각의 제2 입력은 제어 로직(388)에 접속되고, 제어 로직(388)은, 차례로, 동일한 메모리 모듈(130) 상의 메모리 장치들(148, 도 1)에 연결된다. 제어 로직(128)은 로컬 메모리 응답들, 즉, 판독 데이터를 동일한 모듈의 메모리 장치들(148)로부터 라우팅하기 위해 사용된다. 메모리 허브 컨트롤러(128, 도 1) 또는 업스트림 메모리 모듈(130)에 메모리 응답들을 연결할 때 사용하기 위하여, 다중화기들(380, 382, 384, 386)의 출력들은 개별적인 다중화기(390, 392, 394, 396)의 제2 세트 중 하나의 입력에 연결된다. 처음 3개의 다중화기(390, 392, 394)의 출력들은 마지막 3개의 다중화기(392, 394, 396) 중 하나의 입력에 또한 연결된다. 다중화기들(390, 392, 394, 396)의 출력들은 개별적인 송신기(400, 402, 404, 406)의 입력에 연결되고, 송신기들(400, 402, 404, 406)의 출력들은 또다른 구획(305)의 개별적인 비트 레인(164a, 164b, 164c, 164d)에 접속된다.
동작시, 다중화기 시스템(350)은 도 8의 다중화기 시스템(300)과 본질적으로 동일한 방식으로 동작하여 구획(315)의 비트 레인(164a'-d') 중 임의의 것을 구획(305)의 인접 비트 레인들(164a-d) 중 하나에 연결한다.
이상으로부터, 본 발명의 특정한 실시예들이 본 명세서에서 예시의 목적들을 위해 기술되었지만, 본 기술 분야의 통상의 기술자는 본 발명의 사상 및 범주에서 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것을 이해할 것이라는 것이 이해될 것이다. 따라서, 본 발명은 첨부된 청구범위에 의해서만 제한된다.

Claims (32)

  1. 제1 복수의 비트 레인(bit-lane) 단자;
    제2 복수의 비트 레인 단자;
    적어도 하나의 메모리 장치 인터페이스; 및
    상기 제1 및 제2 복수의 비트 레인 단자 및 적어도 하나의 메모리 장치 인터페이스에 연결된 스위치
    를 포함하고,
    상기 스위치는 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 제2 복수의 비트 레인 단자 중 개별적인 비트 레인 단자 또는 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자에 연결하도록 동작 가능한 스위칭 회로를 포함하고, 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자들 중 적어도 일부를 상기 적어도 하나의 메모리 장치 인터페이스에 연결시키도록 더 동작 가능한 메모리 허브.
  2. 제1항에 있어서,
    상기 스위칭 회로는 상기 제2 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능한 메모리 허브.
  3. 제1항에 있어서,
    상기 스위치가 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 연결하도록 동작 가능한 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자는 개별적인 제2 복수의 비트 레인 단자를 포함하며, 상기 개별적인 제2 복수의 비트 레인 단자는 개별적인 제1 복수의 비트 레인 단자에 대응하는 제1의 제2 복수의 비트 레인 단자에 인접하는 메모리 허브.
  4. 제1항에 있어서,
    상기 제1 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 허브.
  5. 제4항에 있어서,
    상기 제2 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 허브.
  6. 제1항에 있어서,
    상기 제1 복수의 비트 레인 단자는 4개의 비트 레인 단자를 포함하는 메모리 허브.
  7. 메모리 모듈로서,
    제1 커넥터 및 제2 커넥터를 가지는 기판;
    상기 기판 상에 탑재된 복수의 메모리 장치; 및
    상기 기판 상에 탑재되고 상기 복수의 메모리 장치에 연결된 메모리 허브
    를 포함하고,
    상기 메모리 허브는,
    상기 제1 커넥터에 접속된 제1 복수의 비트 레인 단자;
    상기 제2 커넥터에 접속된 제2 복수의 비트 레인 단자;
    적어도 하나의 메모리 장치 인터페이스; 및
    상기 제1 및 상기 제2 복수의 비트 레인 단자에, 그리고 적어도 하나의 메모리 장치 인터페이스에 연결된 스위치를 포함하고, 상기 스위치는, 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 제2 복수의 비트 레인 단자 중 개별적인 비트 레인 단자 또는 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자에 연결하도록 동작 가능한 스위칭 회로를 포함하고, 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능한 메모리 모듈.
  8. 제7항에 있어서,
    상기 스위칭 회로는 상기 제2 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가 능한 메모리 모듈.
  9. 제7항에 있어서,
    상기 스위치가 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 연결하도록 동작 가능한 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자는 개별적인 제2 복수의 비트 레인 단자를 포함하며, 상기 개별적인 제2 복수의 비트 레인 단자는 개별적인 제1 복수의 비트 레인 단자에 대응하는 제1의 제2 복수의 비트 레인 단자에 인접하는 메모리 모듈.
  10. 제7항에 있어서,
    상기 제1 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 모듈.
  11. 제10항에 있어서,
    상기 제2 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 모듈.
  12. 제7항에 있어서,
    상기 제1 복수의 비트 레인 단자는 4개의 비트 레인 단자를 포함하는 메모리 모듈.
  13. 제7항에 있어서,
    상기 메모리 장치들은 동적 랜덤 액세스 메모리 장치(dynamic random access memory device)들을 포함하는 메모리 모듈.
  14. 메모리 시스템으로서,
    복수의 메모리 모듈을 포함하고,
    상기 복수의 메모리 모듈 각각은,
    제1 커넥터 및 제2 커넥터를 갖는 기판;
    상기 기판 상에 탑재된 복수의 메모리 장치;
    상기 기판 상에 탑재되고 상기 복수의 메모리 장치에 연결된 메모리 허브;
    복수의 비트 레인 단자를 갖는 메모리 허브 컨트롤러; 및
    복수의 비트 레인
    을 포함하며,
    상기 메모리 허브는,
    제1 복수의 비트 레인 단자;
    제2 복수의 비트 레인 단자;
    적어도 하나의 메모리 장치 인터페이스; 및
    상기 제1 및 제2 복수의 비트 레인 단자 및 상기 적어도 하나의 메모리 장치 인터페이스에 연결된 스위치
    를 포함하고,
    상기 스위치는, 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 제2 복수의 비트 레인 단자 중 개별적인 비트 레인 단자 또는 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자에 연결시키도록 동작 가능한 스위칭 회로를 포함하고, 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능하며,
    상기 복수의 비트 레인은, 상기 메모리 모듈들 중 하나의 메모리 모듈의 메모리 허브의 제1 복수의 비트 레인의 비트 레인들에 상기 메모리 허브 컨트롤러의 비트 레인 단자들을 접속하고,
    다른 메모리 모듈들의 메모리 허브들의 상기 제1 복수의 비트 레인 단자는, 상기 메모리 모듈들 중 또다른 메모리 모듈의 메모리 허브의 상기 제2 복수의 비트 레인 단자의 개별적인 비트 레인 단자에 개별적인 비트 레인에 의하여 접속되는 메모리 시스템.
  15. 제14항에 있어서,
    상기 스위칭 회로는 상기 제2 복수의 비트 레인 단자들 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능한 메모리 시스템.
  16. 제14항에 있어서,
    상기 스위치가 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 연결하도록 동작 가능한 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자는 개별적인 제2 복수의 비트 레인 단자를 포함하며, 상기 개별적인 제2 복수의 비트 레인 단자는 개별적인 제1 복수의 비트 레인 단자에 대응하는 제1의 제2 복수의 비트 레인 단자에 인접하는 메모리 시스템.
  17. 제14항에 있어서,
    상기 제1 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 시스템.
  18. 제17항에 있어서,
    상기 제2 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 메모리 시스템.
  19. 제14항에 있어서,
    상기 제1 복수의 비트 레인 단자는 4개의 비트 레인 단자를 포함하는 메모리 시스템.
  20. 제14항에 있어서,
    상기 메모리 장치들은 동적 랜덤 액세스 메모리 장치들을 포함하는 메모리 시스템.
  21. 제14항에 있어서,
    상기 메모리 모듈들 각각의 메모리 허브의 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자를 개별적인 상기 제2 복수의 비트 레인 단자에 연결하도록 동작 가능하며, 상기 개별적인 제2 복수의 비트 레인 단자를 또다른 메모리 모듈의 메모리 허브의 개별적인 제1 복수의 비트 레인 단자에 접속하는 비트 레인들이 동작 가능한 한, 상기 개별적인 제1 복수의 비트 레인 단자가 연결되는 상기 메모리 허브 컨트롤러의 개별적인 제1 복수의 비트 레인 단자에 상기 개별적인 제2 복수의 비트 레인 단자가 대응하는 메모리 시스템.
  22. 컴퓨팅 기능들을 수행하도록 동작 가능한 프로세싱 유닛;
    상기 프로세싱 유닛에 연결된 시스템 컨트롤러;
    상기 시스템 컨트롤러를 통하여 상기 프로세싱 유닛에 연결된 적어도 하나의 입력 장치;
    상기 시스템 컨트롤러를 통하여 상기 프로세싱 유닛에 연결된 적어도 하나의 출력 장치;
    상기 시스템 컨트롤러를 통하여 상기 프로세싱 유닛에 연결된 적어도 하나의 데이터 저장 장치;
    복수의 메모리 모듈;
    복수의 비트 레인 단자를 갖는 메모리 허브 컨트롤러; 및
    복수의 비트 레인
    을 포함하는 프로세서 기반 시스템으로서,
    각각의 상기 메모리 모듈은,
    제1 커넥터 및 제2 커넥터를 가지는 기판;
    상기 기판 상에 탑재된 복수의 메모리 장치; 및
    상기 기판 상에 탑재되고 상기 복수의 메모리 장치에 연결된 메모리 허브
    를 포함하고,
    상기 메모리 허브는,
    제1 복수의 비트 레인 단자;
    제2 복수의 비트 레인 단자;
    적어도 하나의 메모리 장치 인터페이스; 및
    상기 제1 및 제2 복수의 비트 레인 단자에, 그리고 적어도 하나의 메모리 장치 인터페이스에 연결된 스위치
    를 포함하고,
    상기 스위치는, 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 제2 복수의 비트 레인 단자 중 개별적인 비트 레인 단자 또는 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자에 연결하도록 동작 가능한 스위칭 회로를 포함하고, 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능하며,
    상기 메모리 허브 컨트롤러는 상기 시스템 컨트롤러를 통하여 상기 프로세싱 유닛에 연결되고,
    상기 복수의 비트 레인은, 상기 메모리 모듈들 중 하나의 메모리 모듈의 메모리 허브의 제1 복수의 비트 레인의 비트 레인들에 상기 메모리 허브 컨트롤러의 비트 레인 단자들을 접속하고,
    다른 메모리 모듈들의 메모리 허브들의 상기 제1 복수의 비트 레인 단자는 상기 메모리 모듈들 중 또다른 메모리 모듈의 메모리 허브의 상기 제2 복수의 비트 레인 단자의 개별적인 비트 레인 단자에 개별적인 비트 레인에 의하여 접속되는 프로세서 기반 시스템.
  23. 제22항에 있어서,
    상기 스위칭 회로는 상기 제2 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 상기 적어도 하나의 메모리 장치 인터페이스에 연결하도록 더 동작 가능한 프로세서 기반 시스템.
  24. 제22항에 있어서,
    상기 스위치가 상기 제1 복수의 비트 레인 단자 중 적어도 일부의 비트 레인 단자를 연결하도록 동작 가능한 상기 제2 복수의 비트 레인 단자 중 적어도 하나의 다른 비트 레인 단자는 개별적인 제2 복수의 비트 레인 단자를 포함하며, 상기 개별적인 제2 복수의 비트 레인 단자는 개별적인 제1 복수의 비트 레인 단자에 대응하는 제1의 제2 복수의 비트 레인 단자에 인접하는 프로세서 기반 시스템.
  25. 제22항에 있어서,
    상기 제1 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 프로세서 기반 시스템.
  26. 제25항에 있어서,
    상기 제2 복수의 비트 레인 단자는 개별적인 양방향 비트 레인 단자를 포함하는 프로세서 기반 시스템.
  27. 제22항에 있어서,
    상기 제1 복수의 비트 레인 단자는 4개의 비트 레인 단자를 포함하는 프로세서 기반 시스템.
  28. 제22항에 있어서,
    상기 메모리 장치들은 동적 랜덤 액세스 메모리 장치들을 포함하는 프로세서 기반 시스템.
  29. 제22항에 있어서,
    상기 메모리 모듈들 각각의 메모리 허브의 상기 스위칭 회로는 상기 제1 복수의 비트 레인 단자를 개별적인 상기 제2 복수의 비트 레인 단자에 연결하도록 동작 가능하며, 개별적인 상기 제2 복수의 비트 레인 단자를 또다른 메모리 모듈의 메모리 허브의 개별적인 상기 제1 복수의 비트 레인 단자에 접속하는 비트 레인들이 동작 가능한 한, 상기 개별적인 제1 복수의 비트 레인 단자가 연결되는 상기 메모리 허브 컨트롤러의 개별적인 제1 복수의 비트 레인 단자에 상기 개별적인 제2 복수의 비트 레인 단자가 대응하는 프로세서 기반 시스템.
  30. 제22항에 있어서,
    상기 메모리 허브 컨트롤러는 상기 시스템 컨트롤러 내에 통합되는 프로세서 기반 시스템.
  31. 각각이 메모리 허브 및 복수의 메모리 장치를 포함하는 복수의 메모리 모듈을 갖고, 제1 복수의 비트 레인을 통하여 상기 메모리 모듈들 중 하나의 메모리 모듈의 메모리 허브에 접속된 컨트롤러를 더 갖고, 다른 메모리 모듈들 각각의 메모리 허브는 상기 메모리 모듈들 중 또다른 메모리 모듈의 메모리 허브들 중 하나의 메모리 허브에 연결되는 메모리 시스템에서,
    상기 컨트롤러와 상기 메모리 모듈들 사이에서 신호들을 연결하는 방법으로서,
    상기 메모리 모듈들 중 하나의 메모리 모듈의 메모리 허브와, 상기 메모리 모듈들 중 또다른 메모리 모듈의 메모리 허브와의 사이에 접속된 각각의 비트 레인이 동작 가능하면, 개별적인 신호가 상기 하나의 메모리 모듈에 의해 수신되는 동일한 비트 레인들을 이용하여 상기 하나의 메모리 모듈로부터 다른 메모리 모듈로 개별적인 비트 레인을 통하여 상기 신호들을 연결하고, 개별적인 신호가 상기 하나의 메모리 모듈에 의해 송신되는 동일한 비트 레인을 이용하여 상기 다른 메모리 모듈로부터 상기 하나의 메모리 모듈로 상기 개별적인 비트 레인을 통하여 상기 신호들을 연결하는 단계; 및
    상기 메모리 모듈들 중 하나의 메모리 모듈의 메모리 허브와, 상기 메모리 모듈들 중 또다른 메모리 모듈의 메모리 허브 사이에 접속된 상기 비트 레인들 중 임의의 비트 레인이 동작 가능하지 않으면, 개별적인 신호가 상기 하나의 메모리 모듈에 의해 수신되는 비트 레인들과는 상이한 비트 레인을 이용하여 상기 하나의 메모리 모듈로부터 다른 메모리 모듈로 개별적인 비트 레인을 통하여 상기 신호들을 연결하고, 개별적인 신호가 상기 하나의 메모리 모듈에 의해 송신되는 비트 레인들과는 상이한 비트 레인을 이용하여 상기 다른 메모리 모듈로부터 상기 하나의 메모리 모듈로 개별적인 비트 레인을 통하여 상기 신호들을 연결하는 단계
    를 포함하는 신호 연결 방법.
  32. 제31항에 있어서,
    상기 메모리 허브 컨트롤러와 상기 하나의 메모리 모듈의 메모리 허브 사이 에 접속된 비트 레인 중 임의의 비트 레인이 동작 가능하지 않으면, 상기 동작 가능하지 않은 비트 레인과 상이한 비트 레인을 이용하여 상기 메모리 허브 컨트롤러로부터 상기 하나의 메모리 모듈로 상기 개별적인 비트 레인을 통하여 신호들을 연결하는 단계, 및 상기 동작 가능하지 않은 비트 레인과 상이한 비트 레인을 이용하여 상기 하나의 메모리 모듈로부터 상기 메모리 허브 컨트롤러로 상기 개별적인 비트 레인을 통하여 신호들을 연결하는 단계를 포함하는 신호 연결 방법.
KR1020087023388A 2006-03-24 2007-02-22 메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법 KR100985926B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/388,296 US7353316B2 (en) 2006-03-24 2006-03-24 System and method for re-routing signals between memory system components
US11/388,296 2006-03-24

Publications (2)

Publication Number Publication Date
KR20080097486A KR20080097486A (ko) 2008-11-05
KR100985926B1 true KR100985926B1 (ko) 2010-10-06

Family

ID=38533194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023388A KR100985926B1 (ko) 2006-03-24 2007-02-22 메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법

Country Status (4)

Country Link
US (1) US7353316B2 (ko)
KR (1) KR100985926B1 (ko)
CN (1) CN101405702A (ko)
WO (1) WO2007112166A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
DE102005046250B4 (de) * 2005-09-27 2020-10-08 Evonik Operations Gmbh Anlage zur Abtrennung von organischen Übergangsmetallkomplexkatalysatoren
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7669086B2 (en) * 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8131903B2 (en) * 2007-04-30 2012-03-06 Hewlett-Packard Development Company, L.P. Multi-channel memory connection system and method
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US8234540B2 (en) 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
US8503211B2 (en) * 2009-05-22 2013-08-06 Mosaid Technologies Incorporated Configurable module and memory subsystem
US8898511B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8549378B2 (en) 2010-06-24 2013-10-01 International Business Machines Corporation RAIM system using decoding of virtual ECC
US8484529B2 (en) 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
CN102129400B (zh) 2010-12-29 2013-12-04 华为数字技术(成都)有限公司 存储系统连接配置方法、设备及其存储系统
US8522122B2 (en) 2011-01-29 2013-08-27 International Business Machines Corporation Correcting memory device and memory channel failures in the presence of known memory device failures
WO2016122480A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Bidirectional lane routing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250181A1 (en) 2003-06-05 2004-12-09 Intel Corporation Memory channel with bit lane fail-over
US20050257005A1 (en) 2004-05-14 2005-11-17 Jeddeloh Joseph M Memory hub and method for memory sequencing

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01171194A (ja) 1987-12-25 1989-07-06 Nec Ic Microcomput Syst Ltd 半導体記憶装置
US5276834A (en) 1990-12-04 1994-01-04 Micron Technology, Inc. Spare memory arrangement
US5530814A (en) 1991-10-30 1996-06-25 I-Cube, Inc. Bi-directional crossbar switch with control memory for selectively routing signals between pairs of signal ports
JPH0729373A (ja) 1993-07-08 1995-01-31 Mitsubishi Electric Corp 半導体記憶装置
KR100254568B1 (ko) 1997-06-25 2000-05-01 윤종용 반도체 독출 전용 메모리 장치
US6314500B1 (en) 1999-01-11 2001-11-06 International Business Machines Corporation Selective routing of data in a multi-level memory architecture based on source identification information
US7245663B2 (en) * 1999-07-06 2007-07-17 Koninklijke Philips Electronis N.V. Method and apparatus for improved efficiency in transmission of fine granular scalable selective enhanced images
US7069394B2 (en) 2002-12-05 2006-06-27 International Business Machines Corporation Dynamic data routing mechanism for a high speed memory cloner
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7127629B2 (en) 2003-06-03 2006-10-24 Intel Corporation Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US7088134B1 (en) 2003-11-06 2006-08-08 Lattice Semiconductor Corporation Programmable logic device with flexible memory allocation and routing
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US7219294B2 (en) * 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7212423B2 (en) * 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US20050268061A1 (en) * 2004-05-31 2005-12-01 Vogt Pete D Memory channel with frame misalignment
US20060004953A1 (en) * 2004-06-30 2006-01-05 Vogt Pete D Method and apparatus for increased memory bandwidth
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US7412642B2 (en) 2005-03-09 2008-08-12 Sun Microsystems, Inc. System and method for tolerating communication lane failures
US7516349B2 (en) * 2005-12-29 2009-04-07 Intel Corporation Synchronized memory channels with unidirectional links

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250181A1 (en) 2003-06-05 2004-12-09 Intel Corporation Memory channel with bit lane fail-over
US20050257005A1 (en) 2004-05-14 2005-11-17 Jeddeloh Joseph M Memory hub and method for memory sequencing

Also Published As

Publication number Publication date
WO2007112166A2 (en) 2007-10-04
KR20080097486A (ko) 2008-11-05
WO2007112166A3 (en) 2008-04-24
US7353316B2 (en) 2008-04-01
US20070223263A1 (en) 2007-09-27
CN101405702A (zh) 2009-04-08

Similar Documents

Publication Publication Date Title
KR100985926B1 (ko) 메모리 시스템 컴포넌트들 사이에서 신호들을 리라우팅하는시스템 및 방법
JP4392877B2 (ja) ディスクアレイ制御装置
US7120743B2 (en) Arbitration system and method for memory responses in a hub-based memory system
JP4413184B2 (ja) データストレージシステム及びデータストレージ制御装置
US7389364B2 (en) Apparatus and method for direct memory access in a hub-based memory system
JP4677630B2 (ja) 内部キャッシュおよび/またはメモリアクセス予測を持つメモリハブ
KR100928852B1 (ko) 다중 메모리 허브 모듈들을 포함하는 다중 프로세서 시스템및 방법
KR100800989B1 (ko) 중재 패킷 프로토콜을 구비한 메모리 중재 시스템 및 방법
CN101390060B (zh) 存储集线器和存储排序的方法
JP2007535737A (ja) メモリを順序付けるヒントを提供するメモリ・ハブおよび方法
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
JP2007520800A (ja) メモリシステムのパフォーマンスモニタリングのためのメモリハブおよび方法
US20070091104A1 (en) Computer system and method
KR20080016438A (ko) 데이터 처리 장치, 모드 관리 장치 및 모드 관리 방법
JP4526509B2 (ja) ディスクアレイ制御装置
JP4662565B2 (ja) ディスクアレイ制御装置及びディスクアレイシステム
JP4452697B2 (ja) ディスクアレイ制御装置
JP2008010005A (ja) ディスクアレイ制御装置
JP2005276136A (ja) バス装置
JPH04338858A (ja) 計算機システム

Legal Events

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

Payment date: 20130903

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170830

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190918

Year of fee payment: 10