KR20090115130A - 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩 - Google Patents

커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩 Download PDF

Info

Publication number
KR20090115130A
KR20090115130A KR1020097016070A KR20097016070A KR20090115130A KR 20090115130 A KR20090115130 A KR 20090115130A KR 1020097016070 A KR1020097016070 A KR 1020097016070A KR 20097016070 A KR20097016070 A KR 20097016070A KR 20090115130 A KR20090115130 A KR 20090115130A
Authority
KR
South Korea
Prior art keywords
data
memory module
memory
chip
command
Prior art date
Application number
KR1020097016070A
Other languages
English (en)
Other versions
KR101107349B1 (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 KR20090115130A publication Critical patent/KR20090115130A/ko
Application granted granted Critical
Publication of KR101107349B1 publication Critical patent/KR101107349B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 모듈은 데이터 액세스 커맨드를 수신하는 제 1 인터페이스 및 데이터 액세스 커맨드를 다른 메모리 모듈에 재송신하는 제 2 인터페이스를 포함하며, 제 2 인터페이스는 수신된 데이터 액세스 커맨드의 복수 사본을 복수의 다른 메모리 모듈에 전달한다. 메모리 모듈은 데이터 액세스가 인터리빙되는 트리 구성에서 체계화된 고용량 메모리 서브시스템에서 사용되는 것이 바람직하다. 바람직하기로, 메모리 모듈은 복수 모드의 동작, 즉 복수의 커맨드 복제를 지원하는 하나와 종래의 데이지 체인을 지원하는 다른 하나를 갖는다.
Figure P1020097016070
메모리 모듈, 데이터 액세스 커맨드, 인터페이스, 메모리 컨트롤러, 데이지 체인, 버스 주파수, 커맨드/어드레스, 클러스터 인터페이스, 포인트-투-포인트 통신 링크, 동작 모드, I/O 포트, 주 메모리, 인바운드 데이터, 아웃바운드 데이터

Description

커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩{MEMORY CHIP FOR HIGH CAPACITY MEMORY SUBSYSTEM SUPPORTING REPLICATION OF COMMAND DATA}
본 발명은 디지털 데이터 처리 하드웨어에 관한 것으로, 특히 디지털 데이터 처리 시스템에서의 메모리 시스템 및 메모리 상호 접속의 설계 및 동작에 관한 것이다.
20세기 후반에, 정보 혁명으로 알려진 현상이 시작되었다. 정보 혁명이 어느 한 사건이나 기계보다도 범위가 더 넓은 역사적인 발전이지만, 어떠한 단일의 장치도 디지털 전자 컴퓨터 이상의 정보 혁명을 나타내게 된 것은 없다. 컴퓨터 시스템의 개발은 확실히 혁명적이었다. 매년, 컴퓨터 시스템은 더 빨리 성장하고 더 많은 데이터를 저장하며, 더 많은 애플리케이션을 그 사용자들에게 제공한다.
현대의 컴퓨터 시스템은 전형적으로 통신용 버스 및 메모리와 같이 정보를 저장, 검색 및 전달하는데 필수적인 하나 이상의 중앙 처리 장치(CPU) 및 지원 하드웨어를 포함한다. 이것은 또한 입력/출력 컨트롤러 또는 저장 장치 컨트롤러와 같이 외부 세계와 통신하는데 필수적인 하드웨어, 및 키보드, 모니터, 테이프 드라이브, 디스크 드라이브, 네트워크에 연결된 통신 라인 등과 같이 이에 부착된 장치 를 포함한다. CPU는 시스템의 심장부이다. 이것은, 컴퓨터 프로그램을 포함하는 명령을 실행시키며 다른 시스템 구성요소들의 동작을 지시한다.
컴퓨터 하드웨어의 관점에서, 대부분의 시스템은 기본적으로 동일한 방식으로 동작한다. 프로세서는 수리적, 논리적 비교 및 한 위치로부터 또 다른 위치로의 데이터의 이동과 같은 제한된 세트의 매우 간단한 동작들을 수행할 수 있다. 그렇지만 각각의 동작은 매우 신속하게 수행된다. 컴퓨터가 상당수의 이들 간단한 동작을 수행하도록 지시하는 프로그램은 컴퓨터가 고도한 어떤 작업을 행한다는 환상을 제공한다. 컴퓨터 시스템의 새로운 또는 향상된 능력으로서 사용자에 의해 인지되는 것은 동일한 세트의 매우 간단한 동작들을 필수적으로 수행하지만 이를 더 신속하게 행함으로써 가능해진다. 따라서, 컴퓨터 시스템에 대한 계속적인 향상은 이들 시스템이 더욱더 신속해지는 것을 필요로 한다.
컴퓨터의 CPU는 컴퓨터의 어드레싱 가능한(addressable) 주 메모리에 저장된 데이터에 영향을 미친다. 메모리는 프로세서에서 실행되는 명령, 및 이 명령에 의해 조작되는 데이터를 저장한다. 동작 중에, 프로세서는 메모리 내의 명령 및 다른 데이터에 끊임없이 액세스하는데, 이들 없이는 프로세서는 유용한 작업을 수행할 수 없다. 메모리 서브시스템의 설계 및 이의 동작 속도는 임의 컴퓨터 시스템의 전반적인 성능에서 중대한 문제이다.
메모리는 전형적으로 한 세트의 집적 회로 모듈에서 구현된다. 메모리에 액세스하는데 요구되는 시간은 메모리 모듈 자체의 동작 속도의 기능뿐만 아니라, 프로세서와 메모리 간 경로의 속도의 기능이다. 컴퓨터가 보다 복잡해짐에 따라, 이 경로는 더 큰 할당의 액세스 시간을 소비해 왔다. 초기의 컴퓨터는 단일 프로세서 및 비교적 적은 메모리만을 가짐으로써, 프로세서와 메모리 간의 경로를 비교적 직선 연결하게 하였다. 현대의 대형 시스템들은 전형적으로 다중 프로세서, 다중 레벨의 캐시, 복합 어드레싱(complex addressing) 메커니즘, 및 매우 큰 주 메모리를 포함하여 시스템의 데이터 요건을 지원한다. 이들 시스템에서, 직선 경로가 모든 프로세서와 모든 메모리 모듈에 걸쳐 존재하는 결코 가능한 것은 아니다. 복합 버스 구조는 다양한 시스템 구성요소 간의 데이터의 이동을 지원한다. 종종, 데이터는 프로세서와 실제의 메모리 모듈 간의 몇 개의 구조를 이동해야 한다. 프로세서의 개수와 메모리의 사이즈가 점차 증대됨에 따라, 이들 문제는 더욱 중요해진다.
규모의 생산 경제(production economies of scale)를 얻고 컴퓨팅의 비용을 감소시키기 위해서, 집적 회로 메모리 모듈은 표준화된 외부 인터페이스, 메모리 능력, 및 기타 다른 파라미터를 갖는 품목이 되어 왔다. 메모리 컨트롤러, 버스, 중계기(repeater) 등에 액세스하는 다른 컴퓨터 시스템 구성요소는 이들 표준화된 메모리 칩과 함께 작용하도록 설계된다. 표준화는, 내부 설계에 대한 개선이 존재할 수 있지만 어떤 형태의 외부 인터페이스 설계가 일정 시간 기간 동안 정해질 필요가 있다. 설계가 정해져 있는 동안, 컴퓨터 산업에서의 제품 수요뿐만 아니라 기술 능력은 계속 진화된다. 어떤 관점에서, 이 능력의 진화 및 기대감으로 현재 수준의 기술 및 산업의 요건에 보다 적합한 표준에 맞게 새로운 세대의 메모리 칩이 설계되도록 한다.
표준화된 메모리 모듈의 설계는 임의의 다양한 컴퓨터 구조 및 용도에 대하 여 최적화될 수 있다. 단일 사용자의 데스크톱과 랩톱과 같은 고용량의 소형 범용 컴퓨터 시스템, 및 게임 시스템, 비디오 시스템과 같은 전용 장치 - 일반적으로 로-엔드(low-end) 시스템으로 칭함 - 등에 의해 장래 요구가 주로 추진되는 것이 기대된다. 소위 "메인프레임" 컴퓨터 시스템 및 기타 다른 대형 시스템들이 계속 제조되고 있지만, 이들은 전체 메모리 칩 요구 중 비교적 작은 부분을 차지한다. 따라서, 장래의 메모리 모듈 표준이 로-엔드, 고용량 시장의 필요성에 의해 추진되고, 그 시장에 전형적인 장치에 사용하는데 최적화된다고 가정하는 것이 합당하다.
장래의 표준화 메모리 모듈의 설계가 로-엔드 시스템에 최적화되면, 이들 모듈은 서로 다른 설계 파라미터를 갖는 대형 시스템에 사용되는 경우에 비효율적일 수 있다. 대형 시스템에 사용되는 개별 세트의 메모리 모듈을 설계하는 것이 가능하지만, 이것은 고용량의 표준화 메모리 모듈 사용시 이용 가능한 규모의 경제를 상실하고, 실질적으로 대형 시스템의 비용을 증가시킨다.
광범위한 시스템에서 표준화 메모리 모듈을 사용하는 동시에 과도한 효율의 손실 없이 다른 유형의 시스템의 동작 요건을 충족시킬 수 있는 메모리 서브시스템 설계 기술의 향상에 대한 필요성이 존재한다.
메모리 모듈은 데이터 액세스 커맨드를 수신하는 제 1 인터페이스 및 이 데이터 액세스 커맨드를 다른 메모리 모듈에 재전송하는 제 2 인터페이스를 포함하며, 이 제 2 인터페이스는 복수 사본의 수신된 데이터 액세스 커맨드를 복수의 다른 메모리 모듈에 전달한다.
바람직한 실시예에서, 메모리 모듈은 고용량의 메모리 서브시스템에 사용되는 것으로 의도되며, 전(full) 주파수 및 버스 폭에서 동작하는 적어도 하나의 메모리 칩 버스를 갖는 메모리 컨트롤러를 포함하고, 이는 데이지 체인식(daisy chained) 구성에서 복수의 허브 재구동 칩(hub re-drive chip)에 연결되며, 각 허브 재구동은 전 주파수 및 버스 폭에서 체인 내의 다음 허브 리-드라이브와 소통한다. 각각의 허브 재구동은 인터리브된(interleaved) 데이터를 저장하는 버퍼링된 메모리 칩의 적어도 하나의 각 클러스터를 지원하며, 이 클러스터는 적어도 하나의 트리에 배열된다. 커맨드 및 기록 데이터는 트리의 아래로 전달되며, 칩의 개수는 이어지는 레벨의 트리마다 증가된다. 메모리 칩은 바람직한 실시예의 인터리브된 트리 구성에 사용하기 위한, 전(full) 버스 폭, 전 버스 주파수 모드(로-엔드 시스템의 전형임)의 데이지 체인식 구성에서의 동작뿐만 아니라 감소된 버스 폭 및/또는 감소된 버스 주파수를 갖는 적어도 하나의 개별 모드에서의 동작을 위해 설계되는 것이 바람직하다.
바람직하기로, 메모리 모듈은 다양한 구조적 특징을 가지며 본원에서 설명되고 위에서 상호 참조되는 다양한 관련 출원에서 주장되는 고용량의 인터리브된 트리 구성에 사용된다. 그렇지만, 본 발명이 관련 출원에서 주장되는 특징을 이용하는 구현예에 반드시 제한되는 것은 아니며, 또한 관련 출원에서 주장되는 일부 또는 임의의 특징들을 이용하지 않는 본 발명과 일치하는 메모리 모듈을 구성할 수 있다는 것을 이해해야 한다.
바람직한 실시예에 따른 인터리브된 트리 구성에서 데이지 체인에 이용될 수 있는 메모리 칩을 구성함으로써, 보다 큰 용량의 메모리가 맞춤형 메모리 칩을 사용하지 않고서 메모리 컨트롤러에 의해 지원되는 제한된 수의 버스로 구성될 수 있다. 또한, 인터리브된 구성은 많은(반드시 전부만은 아님) 버스의 버스 동작의 주파수를 감소시키고, 또한 실제로 사용되는 I/O 포트의 개수를 감소시킴으로써 상당한 전력 절감을 달성할 가능성이 있다.
본 발명에 대한 구조 및 동작에 관한 상세는 동일한 부분에 동일한 참조 부호를 붙인 첨부된 도면을 참조하면 최상으로 이해할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 버퍼링된 메모리 칩을 갖는 메모리 서브시스템을 이용하는 컴퓨터 시스템의 주요 하드웨어 구성요소의 하이 레벨 블록도.
도 2는 메모리 서브시스템이 버퍼링된 메모리 칩의 데이지 체인(daisy-chain) 구성을 사용하여 구성되는 컴퓨터 시스템의 전형적인 메모리 서브시스템의 주요 하드웨어 구성요소의 블록도.
도 3은 본 발명의 바람직한 실시예에 따른 버퍼링된 메모리 칩의 일정한 주요 내부 구성요소의 다이어그램.
도 4는 본 발명의 바람직한 실시예에 따른 허브 및 클러스터를 사용하여 구성된 메모리 서브시스템의 하이 레벨 블록도.
도 5는 본 발명의 바람직한 실시예에 따른 허브와 연관된 메모리 칩의 클러스터 간의 링크를 보다 상세하게 나타내는 블록도.
도 6 내지 도 8은 본 발명의 제 1, 제 2 및 제 3 변형예 각각에 따른 서브-클러스터의 메모리 칩 및 연관된 허브 간의 데이터 경로의 다양한 구성을 보다 상세하게 나타내는 도면.
도 9는 본 발명의 바람직한 실시예에 따른 메모리 칩의 하나 이상의 클러스터를 지원하는 허브의 일정한 주요 내부 구성요소를 나타내는 블록도.
장래의 메모리 칩의 고찰
로-엔드 시스템은 전형적으로 큰 메모리 대역폭, 즉 주어진 시간에 대량의 메모리를 판독 및 기록할 수 있는 능력을 필요로 하지만, 반드시 큰 메모리 용량을 필요로 하는 것은 아니다. 이들 요건을 만족시키기 위해서, 본 발명자들은 버퍼링된 메모리 칩 및 메모리 칩의 체인을 지원하는 메모리 칩 아키텍처를 구상하고 있다. 이와 같은 아키텍처는 다음과 같은 동일 출원인에 의한 계류중인 특허 출원에서 설명되며, 이들 각각은 본원에 참고로 반영되어 있다: "Daisy Chained Memory System" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,956호; "Memory System Having Self Timed Daisy Chained Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,957호; "Carrier Having Daisy Chained Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,969호; "Carrier Having Daisy Chain of Self Timed Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,983호; "Daisy Chainable Memory Chip" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,994호; "Daisy Chainable Self Timed Memory Chip" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,997호; "Computer System Having Daisy Chained Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,974호; "Computer System Having Daisy Chained Self Timed Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,968호; "Memory Controller for Daisy Chained Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,966호; "Memory Controller for Daisy Chained Self Timed Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,961호; "Memory Chip Having an Apportionable Data Bus" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,943호; "Self Timed Memory Chip Having an Apportionable Data Bus" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,947호; "Computer System Having an Apportionable Data Bus" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,955호; 및 "Memory System Having an Apportionable Data Bus and Daisy Chained Memory Chips" 명칭의 2006년 7월 26일자 출원된 미국특허출원 제11/459,959호.
본원에서 설명되는 바와 같이, 버퍼링된 메모리 칩은 데이지 체인식 구성에 사용하도록 설계된다. 메모리 칩은 2중 세트의 고주파수 통신 인터페이스를 갖는다. 이들은 각각의 포인트-투-포인트 통신 링크(버스)를 통하여 다른 메모리 칩 또는 메모리 컨트롤러에 접속되도록 의도되어 있다. 하나의 포인트-투-포인트 링크는 칩을 데이지 체인 상의 다음의 업스트림 장치와 접속시키는데, 이 장치는 또 다른 칩일 수 있거나 또는 메모리 컨트롤러일 수 있다. 다른 포인트-투-포인트 링 크는 칩을 다음의 다운스트림 메모리 칩 - 하나가 존재하면 - 과 접속시킨다. 포인트-투-포인트 링크의 데이지 체인은 메모리 컨트롤러와 메모리 칩 간의 종래의 버퍼 칩에 대한 필요성을 해소시키고, 모든 링크가 포인트-투-포인트인 것을 보장하며, 따라서 더 높은 주파수에서 버스 동작을 용이하게 한다.
각각의 링크가 복수의 데이터 라인을 갖지만, 이들 링크는 복수의 버스 사이클이 단일 커맨드 또는 데이터 워드를 전송하는데 필요로 한다는 의미에서 직렬 방식으로 동작한다. 각각의 칩 내의 버퍼는 데이터 워드 및 커맨드가 버스를 통하여 전송되는 동안 이들의 일부를 일시적으로 저장한다.
데이지 체인 설계는 메모리 칩 내에 데이터를 저장하는데 사용되는 내부 메모리 기술에 대한 제약이 없다. 스태틱 RAM이 또한 가능하지만, 다이내믹 랜덤 액세스 메모리(DRAM)가 가장 일반적으로 사용되는 것으로 예상된다. 또한, 메모리 저장 기술, 또는 전적으로 신기술에 대한 어떠한 장래 개량품들이 일반적으로 본원에서 설명하는 버퍼링된 메모리 칩 구성의 기본 프레임워크 내에 수용될 수 있다.
상세한 설명
여러 도면 전체를 통하여 동일한 번호가 동일한 부분을 나타내는 본 도면을 참조하면, 도 1은 바람직한 실시예에 따른 버퍼링된 메모리 칩을 이용하는 메모리 서브시스템을 갖는 컴퓨터 시스템(100)의 주요 하드웨어 구성요소의 하이 레벨 표시도이다. 컴퓨터 시스템(100)의 주요 구성요소는 하나 이상의 중앙 처리 장치(CPU)(101A-101D), 주 메모리 서브시스템(102), 캐시 메모리(106), 단말 인터페이스(111), 저장 인터페이스(112), I/O 장치 인터페이스(113), 및 통신/네트워크 인터페이스(114)를 포함하며, 이들 모두는 버스(103, 104) 및 버스 인터페이스(105)를 통하여 내부 구성요소 통신에 연결되어 있다.
시스템(100)은 하나 이상의 범용 프로그램 가능한 중앙 처리 장치(CPU)(101A-101D) - 여기서는 일반적으로 특징(101)으로 칭함 - 를 포함한다. 바람직한 실시예에서, 시스템(100)은 비교적 큰 시스템을 표상하는 복수의 프로세서를 포함한다; 그렇지만, 시스템(100)은 변형적으로 단일 CPU 시스템일 수 있다. 각 프로세서(101)는 메모리(102)에 저장된 명령을 실행한다. 명령 및 다른 데이터는 처리하기 위한 주 메모리(102)로부터 캐시 메모리(106) 내에 로딩된다. 주 메모리(102)는 프로그램을 포함한 데이터를 저장하는 랜덤 액세스 반도체 메모리이다. 주 메모리(102) 및 캐시(106)가 단일 형태로서 도 1에 개념적으로 도시되어 있지만, 사실상 이들은 보다 복잡하고, 또한 당해 기술 분야에서 알려져 있는 바와 같이 캐시가 복수의 다른 레벨에서 존재할 수 있다는 것을 이해할 것이다. 특히, 주 메모리 서브시스템(102)은 본원에서 보다 완전하게 설명하는 바와 같이 복수의 모듈 및 통신 구성요소를 포함한다.
버스(103-105)는 다양한 시스템 구성요소 간에 통신 경로를 제공한다. 프로세서/메모리 버스(103)(여기서는 전면(front-side) 버스로 칭함)는 CPU(101)와 캐시(106), 주 메모리(102)와 I/O 버스 인터페이스 장치(105) 간에 데이터를 전송하는 데이터 통신 경로를 제공한다. I/O 버스 인터페이스(105)는 다양한 I/O 장치에 대하여 데이터를 전송하는 시스템 I/O 버스(104)에 더 연결된다. I/O 버스 인터페이스(105)는 복수의 I/O 인터페이스 장치(111-114)와 통신하는데, 이는 또한 시스 템I/O 버스(104)를 통한 I/O 프로세서(IOP) 또는 I/O 어댑터(IPA)로 알려져 있다. 시스템 I/O 버스는, 예를 들면, 산업 표준 PCI 버스, 또는 임의의 다른 적절한 버스 기술일 수 있다.
I/O 인터페이스 장치(111-114)는 다양한 저장 장치 및 I/O 장치와의 통신을 지원한다. 예를 들면, 단말 인터페이스 장치(111)는 하나 이상의 사용자 단말(121-124)의 부착을 지원한다. 저장 인터페이스 장치(112)는 하나 이상의 다이렉트 액세스 저장 장치(direct access storage device; DASD)(125-127)의 부착을 지원한다(이는 전형적으로 회전식 자기 디스크 드라이브 저장 장치들이지만, 이들은 변형적으로 단일의 대형 저장 장치로서 호스트에 보여지도록 구성된 디스크 드라이브의 어레이를 포함한 다른 장치들일 수 있다). I/O 및 기타 다른 장치 인터페이스(113)는 임의의 다양한 다른 입력/출력 장치 또는 다른 유형의 장치에 인터페이스를 제공한다. 이와 같은 2개의 장치, 즉 프린터(128)와 팩스기(129)는 도 1의 예시적인 실시예에서 도시되어 있으며, 다른 유형일 수 있는 이와 같이 많은 다른 장치가 존재할 수 있다는 것을 이해할 것이다. 네트워크 인터페이스(114)는 시스템(100)으로부터 다른 디지털 장치 및 컴퓨터 시스템으로의 하나 이상의 통신 경로를 제공한다; 이와 같은 경로는, 예를 들면, 인터넷과 같은 하나 이상의 네트워크(130), 지역 네트워크, 또는 다른 네트워크를 포함할 수 있거나, 또는 원격 통신 라인, 무선 접속 등을 포함할 수 있다.
도 1이 하이 레벨 상태에서의 시스템(100)의 대표적인 주요 구성요소를 나타내도록 의도되고, 개개의 구성요소들이 도 1에 도시된 것보다 복잡성이 더 클 수 있으며, 도 1에 도시된 것들 이외에 또는 이에 부가된 구성요소들이 존재할 수 있으며, 이러한 구성요소들의 유형 및 구성이 변화될 수 있다는 것을 이해해야 한다. 도 1에 도시된 구성요소가 모두 특정 컴퓨터 시스템에 존재하지 않을 수도 있다는 것을 더 이해할 것이다. 이러한 부가적인 복잡성 또는 부가적인 변형에 대한 몇 가지 특정 예들이 본원에 개시되어 있으며, 이들은 단지 예에 지나지 않으며 반드시 이러한 변형만이 아니라는 것을 이해할 것이다.
전면 버스(103)가 캐시(106), 주 메모리(102) 및 I/O 버스 인터페이스(105) 간에 직통 경로를 제공하는 비교적 간단한 단일 버스 구조로서 도 1에 도시되어 있지만, 사실상 전면 버스(103)는 복수의 다른 버스 또는 통신 경로를 포함할 수 있는데, 이는 계층적 스타 또는 웹 구성 내의 포인트-투-포인트 링크, 복수의 계층적 버스, 병렬 및 잉여 경로 등과 같이 임의의 다양한 형태로 배치될 수 있다. 또한, I/O 버스 인터페이스(105) 및 I/O 버스(104)가 단일의 각 장치로서 도시되어 있지만, 시스템(100)은 사실상 복수의 I/O 버스 인터페이스(105) 및/또는 복수의 I/O 버스(104)를 포함할 수 있다. 시스템 I/O 버스(104)를 다양한 I/O 장치로 이어지는 다양한 통신 경로로부터 분리하는 복수의 I/O 인터페이스 장치가 도시되어 있지만, 변형적으로 일부 또는 모든 I/O 장치를 하나 이상의 시스템 I/O 버스에 직접 접속시키는 것이 가능하다.
주 메모리(102)는 단일의 모놀리스 형태로서 도 1에 도시되어 있지만, 주 메모리가 보다 복잡한 구조를 가질 수 있다는 것을 이해할 것이다. 예를 들면, 주 메모리는, 임의의 다양한 소위 비정형 메모리 액세스(non-uniform memory access; NUMA) 컴퓨터 아키텍처에서 알려져 있는 바와 같이, 분배되어 CPU 또는 CPU의 세트와 연관될 수 있거나, 또는 전면 버스(103)를 일괄적으로 포함하는 개별 버스에 의해 액세스용 개별 서브세트로 구분될 수 있거나, 또는 일부 다른 아키텍처를 형성할 수 있다. 마찬가지로, 캐시가 단일 형태로서 도시되어 있지만, 복수의 계층적 레벨의 캐시가 존재할 수 있는데, 이 일부는 모든 또는 일부의 CPU(101A-101D)에 의해 공유될 수 있으며, 이 일부는 단일의 각 CPU의 사용에 전용될 수 있다. 또한, 캐시는 기능에 의해 구분될 수 있으므로, 하나의 캐시는 또 다른 캐시가 프로세서 또는 프로세서들에 의해 사용되는 비-명령 데이터를 유지하는 동안 명령을 유지한다. 본원에서 사용되는 바와 같이, "메모리 서브시스템"은 캐시 또는 그 어떤 일부이다. 메모리 서브시스템은 주 메모리(102)의 전부, 또는 주 메모리(102)의 일부, 또는 캐시 메모리(106)의 전부나 일부를 포함할 수 있다. 캐시가 일반적으로 더 빠른 액세스를 필요로 하기 때문에, 메모리 서브시스템이 주 메모리(102)의 전부 또는 일부인 것이 특히 바람직하지만, 본 발명은 주 메모리의 사용에 제한되지 않으며 일부의 캐시 메모리에도 적합할 수 있다.
도 1에 도시된 컴퓨터 시스템(100)은 복수 사용자의 "메인프레임" 컴퓨터 시스템을 표상할 수 있는 바와 같은 복수의 부착 단말(121-124)을 갖는다. 전형적으로, 이와 같은 경우에 부착 장치의 실제 개수는 도 1에 도시된 것보다 더 많다. 본원에서 설명하는 메모리 서브시스템 구성이 비교적 큰 복수 사용자 시스템에 사용하기에 가장 적합하다고 예상되지만, 본 발명은 임의의 특정 사이즈의 시스템에 제한되지 않는다. 컴퓨터 시스템(100)은 변형적으로 단일 사용자 시스템 - 전형적 으로 단일 사용자 디스플레이 및 키보드 입력만을 포함함 - 일 수 있거나, 또는 서버이거나 유사한 장치 - 다이렉트 사용자 인터페이스를 거의 또는 전혀 갖지 않지만, 다른 컴퓨터 시스템(클라이언트)으로부터 요구를 수신함 - 일 수 있다.
다양한 시스템 구성요소가 설명 및 하이 레벨 상태로 도시되었지만, 전형적인 컴퓨터 시스템이 도시되지 않은 다른 많은 구성요소 - 본 발명의 이해에는 필수적인 것이 아님 - 를 포함한다.
도 2는 메모리 서브시스템이 데이지 체인식 구성 내의 버퍼링된 메모리 칩을 사용하여 구성되는 컴퓨터 시스템의 전형적인 메모리 서브시스템(102)의 주요 하드웨어 구성요소에 대한 블록도이다. 앞서 설명한 바와 같이, 바람직한 실시예에서, 데이지 체인식 구성을 위해 설계된 버퍼링된 메모리 칩이 사용된다. 도 2는 메모리 칩이 의도하는 전형적인 데이지 체인식 구성을 설명하기 위한 배경으로서 제공되어 있지만, 이 구성은 실제로 바람직한 실시예에서는 사용되지 않는다.
도 2를 참조하면, 메모리 컨트롤러(201)는 하나 이상의 프로세서와 통신하기 위한 시스템 전면 버스(103)에 연결된다. 메모리 컨트롤러는 각각의 데이지 체인식 세트의 버퍼링된 메모리 칩(202A-L)(본원에서는 일반적으로 특징(202)로 칭함)으로서 구성된 하나 또는 (전형적으로는) 복수의 메모리 칩 버스를 지원한다. 단일의 메모리 컨트롤러 및 부착 메모리 칩이 도 2에 도시되어 있지만, 주 메모리는 각 세트의 부착 메모리 칩을 각각이 지원하는 복수의 메모리 컨트롤러를 포함할 수 있다.
메모리 칩(202)의 각 데이지 체인식 세트(203)는, 체인의 끝에 도달할 때까 지, 메모리 컨트롤러로부터 체인 내의 제 1 버퍼링된 메모리 칩으로 이어지는 포인트-투-포인트 링크(204A), 및 체인 내의 각 버퍼링된 메모리 칩으로부터 체인 내의 다음의 버퍼링된 메모리 칩으로 이어지는 포인트-투-포인트 링크(204B-D)를 포함한다(포인트-투-포인트 링크는 본원에서 일반적으로 특징(204)으로 칭함). 메모리 컨트롤러(201)는 전형적으로 복수의 포인트-투-포인트 메모리 칩 링크(204)를 지원하는데, 이들 각각은 버퍼링된 메모리 칩의 각각의 데이지 체인식 세트를 지원할 수 있다. 3개의 데이지 체인식 세트가 도 2에 도시되어 있지만, 그 개수는 변경될 수 있으며, 적게는 한 개일 수 있지만, 전형적으로는 더 많다.
각각의 포인트-투-포인트 링크(204)는 아웃바운드(outbound) 데이터부(205) 및 인바운드(inbound) 데이터부(206)를 포함한다. 아웃바인드부(205)는 아웃바인드 방향으로, 즉 메모리 컨트롤러(201)에서 멀어지는 방향으로 데이터를 전송하는데 사용된다. 바람직한 실시예에서, 아웃바인드부는 한 세트의 커맨드/어드레스 라인 및 개별 세트의 기입 데이터 라인을 포함한다. 커맨트/어드레이스 라인은 아웃바운드 방향으로 어드레스 및 커맨드 데이터를 칩에 전송한다. 기입 데이터 라인은 아웃바운드 방향으로 기입 데이터, 즉 커맨드/어드레스 라인 상에서 특정된 메모리 어드레스에 기입되는 메모리 컨트롤러(201)(전면 버스(103)를 통하여 입수함)로부터 수신되는 데이터를 송신한다. 바람직한 실시예에서 개별 세트의 전용 라인이 커맨드/어드레스 데이터 및 기입 데이터에 사용되지만, 변형적으로 시간-멀티플렉싱 방식으로 커맨드/어드레스 및 기입 데이터 모두를 송신하는 단일의 공유 세트의 라인을 사용하는 것이 가능하다. 인바운드 데이터부(206)는 인바운드 방향 으로 판독 데이터, 즉 아웃바운드부(205)의 커맨드/어드레스 라인 상에서 미리 보내진 판독 커맨드에 대응하는 메모리 어드레스로부터 판독된 데이터를 송신한다.
동작시, 메모리 컨트롤러(201)는 전면 버스(103)를 통하여 커맨드를 수신하고, 커맨드가 적용되는 데이지 체인식 세트(203), 즉 적용 가능한 어드레스가 위치하는 세트를 결정한다. 여기서의 설명에서, 일부 아키텍처가 다른 유형의 커맨드를 지원할 수 있지만, 단순화하기 위해서 커맨드가 특정 어드레스에 대한 판독 커맨드 또는 기입 커맨드 중 어느 하나인 것으로 가정한다. 그리고 나서 컨트롤러(201)는 적용 가능한 데이지 체인식 세트 내의 제 1 링크(204)의 아웃바운드부(205)의 커맨드/어드레스 라인 상에서 각각의 커맨드 및 어드레스를 송신한다(그리고, 기입 커맨드에 대하여, 아웃바운드부(205)의 기입 데이터 라인 상에서 적용 가능한 기입 데이터를 송신한다). 이 데이터는 메모리 모듈(202)에 의해 수신되며, 필요에 따라 후속하는 버스 사이클로 데이지 체인 세트 내의 다음 모듈에 재송신된다. 재송신은 커맨드/어드레스 데이터(및 선택 기입 데이터)가 이것이 적용될 수 있는 모듈(202)에 도달할 때까지 계속된다. 그 시점에서, 모듈은 특정한 어드레스에 데이터를 기입하거나, 또는 특정한 어드레스에서 데이터를 판독한다. 판독의 경우에, 모듈은 인바운드 데이터부(206) 상의 메모리 컨트롤러 쪽으로 판독 데이터를 송신한다. 이 판독 데이터는, 이것이 메모리 컨트롤러(201)에 도달할 때까지, 전면 버스(103)를 통하여 송신되는 것으로부터 요구하는 엔티티로 후속하는 버스 사이클로 데이터 체인식 세트 내의 모든 중간 모듈에 의해 재송신된다.
바람직한 실시예에서, 각각의 포인트-투-포인트 링크(204)는 고속 와이드 직 렬 링크인데, 즉 이것은 복수의 신호 라인을 병렬로 포함하지만, 라인의 개수는 단일 버스 사이클로 완전 커맨드/어드레스 또는 액세스 가능한 데이터 단위(즉, 단일 데이터 액세스에서 전송되는 데이터량)을 송신하는데 충분하지 않다. 복수의 버스 사이클은 아웃바운드부(205) 상의 단일 커맨드/어드레스(및 선택적 액세스 가능한 기입 데이터 단위), 또는 인바운드부(206) 상의 액세스 가능한 판독 데이터 단위를 송신하는데 요구된다. 바람직한 실시예에서, 액세스 가능한 데이터 단위는 8 바이트이다. 아웃바운드 버스부(205)는 5개의 커맨드/어드레스 데이터 신호 라인, 및 13개의 기입 데이터 신호 라인을 포함한다. 인바운드 버스부(206)는 판독 데이터용의 13개의 신호 라인을 포함한다. 6 기가사이클/sec(6GT/s)의 6개의 버스 사이클은 단일 커맨드/어드레스(최대 30 비트), 기입 데이터(어드레싱 가능한 데이터의 8 바이트 및 14 보조 비트까지를 포함하는 최대 78 비트), 판독 데이터(어드레싱 가능한 데이터의 8 바이트 및 14 보조 비트까지를 포함하는 최대 78 비트)를 송신하는데 요구됨으로써, 버스는 1 기가-커맨드/sec로 커맨드를 송신할 수 있다. 보조 비트 위치는 에러 보정 코드(error-correcting code; ECC) 또는 다른 데이터에 사용될 수 있다. 데이터가 인터리브되는 바람직한 실시예에서, 본원에서 보다 상세하게 설명하는 바와 같이, 보조 비트 위치의 하나 이상의 쌍은 기능 장애 메모리 칩을 대체하는데 사용될 수 있는 대응하는 여분 메모리 칩을 지원하는데 사용될 수 있다. 예시의 목적으로, 이들 파라미터는 본원에서의 설명 전체를 통하여 사용된다. 그렇지만, 이들 파라미터가 단지 하나의 가능한 표시 세트의 설계 파라미터일 뿐이며, 각각의 커맨드 또는 데이터에 요구되는 라인 수, 직렬 버스 사이클의 수, 버스 주파수 등이 변경될 수 있다는 것을 이해할 것이다. 위에서 인용된 관련 특허 출원에서 설명되는 바와 같이, 메모리 칩(202)이 서로 다른 버스부의 폭이 가변적으로 구성될 수 있는 배분 가능한 버스 폭 능력을 가질 수 있다는 것을 더욱더 이해해야 한다.
데이터가 데이지 체인식 세트(23) 상에서 외부 또는 내부로 이동하는 동안, 이것은 각각의 연속하는 모듈(202)에서 수신되고, 그 모듈에서 버퍼링되며, 후속하는 버스 사이클로 모듈로부터 재송신된다. 따라서, 메모리 액세스 동작의 대기 시간은 데이지 체인식 세트 내의 해당하는 메모리 모듈(202)의 물리적 위치에 좌우되며, 체인의 끝에 위치한 모듈은 액세스하는데 더 많은 버스 사이클이 걸린다. 이 사실은 데이지 체인식 세트에 대한 실질적인 제약이 된다.
도 3은 바람직한 실시예에 따른 버퍼링된 메모리 칩(202)의 일정한 주요 내부 구성요소의 다이어그램이다. 버퍼링된 메모리 칩은 복수의 메모리 어드레스에서 데이터를 저장하는 랜덤 액세스 데이터 저장 어레이(301), 수신된 커맨드 정보를 디코딩하고 칩(202)의 동작을 제어하는 제어 로직, 버스 타이밍 신호를 생성하는 위상 동기 루프(phase locked loop; PLL) 클록 회로(303), 및 칩(202)에 대한 동작 모드를 저장하는 모드 제어 레지스터(304)를 포함한다. 칩(202)은 내부 소스에 연결된 각각의 I/O 라인(311, 312)을 통하여 데이터를 수신하는 다양한 수신 버퍼(306, 308), 및 외부 소스에 연결된 각각의 I/O 라인(310, 313)을 통하여 데이터를 구동(송신)하는 드라이버(305, 309)를 더 포함한다.
본 발명의 바람직한 실시예에 따라, 칩(202)은 임의의 복수의 다른 모드에서 동작할 수 있으며, 동작 모드에 좌우하여 다른 방식으로 동일한 입력에 대응하여 다르게 행동한다. 모드 제어 레지스터(304)는 칩(202)의 동작 모드를 식별하는 하나 이상의 비트를 저장한다. 전형적으로, 동작 모드는 일단 칩(202)이 복수의 메모리 칩을 유지하는 인쇄 회로 카드와 같은 컴퓨터 시스템 구성요소에서 구성되면 변경된다고 예상되지 않는다. 모드 제어 레지스터(304)는 모드 값이 제조 후 재기입될지의 여부에 대하여 그 모드 값을 저장하도록 구성될 수 있는 임의의 엔티티를 나타낸다. 사실상, 많은 기술에 대하여 동작 모드의 값은 칩이 회로 카드 내에 조립되는 시기에 칩 내에 영구적으로 기록될 수 있다. 모드 제어 레지스터의 목적은 공통적인 칩 설계가 복수의 개별 칩 설계를 요하지 않고서 복수의 다른 모드(및 따라서 복수의 다른 메모리 구성)에 사용되는 것을 허용하는 것이다.
바람직한 실시예에 따라, 일부 수신기 또는 드라이버 라인의 기능은 모드 제어 레지스터(304)에 의해 결정되는 바와 같이 메모리 칩(202)의 동작 모드에 좌우하여 변화될 수 있다. 도 2의 전형적인 데이지 체인 구성에 이용되는 기본적인 동작 모드에서, 인바운드 데이터 드라이버(305)는 인바운드 데이터 버스부(206) 상에서 메모리 컨트롤러(201) 쪽으로 인바운드하는 데이터를 구동하는데 사용되고; 아웃바운드 데이터 드라이버(309)는 아웃바운드 데이터 버스부(205) 상에서 데이지 체인(203) 내의 다음 칩(202)으로 아웃바운드하는 커맨드/어드레스(및 선택적 기입 데이터)를 구동하는데 사용된다. 마찬가지로, 기본적인 동작 모드에서, 인바운드 데이터 수신기 버퍼(308)는 인바운드 데이터 버스부(206) 상에서 데이지 체인 내의 다음 칩으로부터 인바운드 데이터를 수신하고; 아웃바운드 데이터 수신기 버 퍼(306)는 아웃바운드 데이터 버스부(205) 상에서 앞선 칩 또는 메모리 컨트롤러로부터 아웃바운드 커맨드/어드레스 데이터(및 선택적 기입 데이터)를 수신한다. 따라서, 기본 모드에서 I/O 라인(310, 312)은 아웃바운드 데이터 버스부(205)에 대응하고, I/O 라인(311, 313)은 각 데이지 체인 링크(204)의 인바운드 데이터 버스부(206)에 대응한다. 어는 변형적인 동작 모드에서, 어느 수신기에 의해 수신 및/또는 어느 드라이버에 의해 구동되는 데이터는 기본적인 동작 모드의 것과 다른 것일 수 있으며, I/O 라인(310-313)은 본원에서 보다 상세하게 설명하는 바와 같이 다른 기능을 갖는다.
PLL 회로(303)는 외부 소스로부터 버스 클록 신호를 수신하고 그 신호를 또 다른 외부 소스에 재구동하는데, 예를 들면, 이 회로는 데이지 체인 내의 앞선 칩(또는 메모리 컨트롤러)으로부터 버스 클록을 수신하고 이를 체인 내의 다음 칩에 재구동한다. 이 신호는 데이터 및 커맨드/어드레스 버스부 상에서의 전송용 타이밍을 제공하는데 사용된다. 바람직한 실시예에서, 칩(202)은 동작 모드에 좌우하여 다른 버스 주파수를 지원하며, 본원에서의 바람직한 실시예의 일부 변형예에서 칩(202)은 복수의 버스 주파수를 동시에 지원하는데, 즉 버스의 다른 부분은 다른 주파수로 동작한다. PLL은 가장 높은 요구되는 주파수의 버스 클록 신호를 제어 로직(302)에 제공하는데 요구되는 수신 주파수를 증대시키며, 이는 더 높은 주파수에서 사이클을 카운트하여 임의의 요구되는 더 낮은 주파수 버스 클록 신호를 발생시킨다.
일반적으로, 제어 로직(302)은 수신된 커맨드/어드레스 데이터를 해석하고, 데이터가 칩(202)이나 또 다른 칩에 제공되는 것인지를 결정하며, 칩(202)에 제공되는 커맨드에 응답하여 데이터 저장 어레이(301)에 액세스하며, 판독 데이터를 메모리 컨트롤러에 반환하고, 또 다른 칩 또는 칩들에 요구되는 데이터를 재구동한다. 제어 로직(302)은 모드 레지스터(304)의 설정에 좌우하여 복수의 모드로 동작한다. 수신 데이터의 해석은 동작 모드에 좌우된다. 위에서 설명한 바와 같이, 기본 모드에서 커맨드 및 어드레스 데이터는 아웃바운드 데이터 수신 버퍼(306)의 5개의 전용 I/O 포트에서 수신된다; 그렇지만, 어느 변형적인 동작 모드에서, 적어도 일부의 커맨드/어드레스 데이터는 다른 포트 또는 버퍼에서 수신된다.
메모리 칩(202)은 전형적인 로-엔드 시스템, 즉 단일 사용자 컴퓨터, 휴대용 디지털 장치, 게임 컨트롤러, 소위 "셋톱 박스" 비디오 컨트롤러 등에 대한 도 2의 구성에 사용하도록 설계된다. 동일한 칩이 대형 컴퓨터 시스템의 사용에 적합하면, 도 2의 구성은 분명한 단점이 있다. 대형 컴퓨터 시스템은 전형적으로 로-엔드 시스템보다 휠씬 더 큰 주 메모리 용량을 필요로 한다. 복수의 메모리 컨트롤러(201)를 사용함으로써 메모리 용량을 어느 정도 증가시키는 것이 가능할 수 있지만, 각각의 부가적인 메모리 컨트롤러는 전면 버스(103)의 설계에 실질적인 부담을 준다. 데이지 체인의 길이를 증가시킴으로써 메모리 용량을 거의 무한정 증가시키는 것이 더욱 가능하다. 그렇지만, 그 길이를 증가시키면 액세스의 대기 시간이 증가된다. 대용량 메모리 서브시스템에 대하여, 대기 시간은 비현실적으로 커진다. 또한, 긴 데이지 체인은 비교적 비효율적인 전력 사용자들이다. 각각의 모듈은 체인의 아래쪽으로 더욱 모듈에 대하여 송신을 버퍼링 및 재송신함으로써, 상당 한 전력이 칩의 외부로 데이터를 전달하는데 소비된다.
본 발명의 바람직한 실시에에 따라, 이들 단점은 데이지 체인식 허브에 의해 지원되는 칩 클러스터 내의 버퍼링된 메모리 칩(202)을 배치함으로써 경감된다. 도 4는 본 발명의 바람직한 실시에에 따른 허브 및 클러스터를 사용하여 구성된 메모리 서브시스템의 하이 레벨 블록도이다.
도 4를 참조하면, 메모리 컨트롤러(401)는 하나 이상의 프로세서와 통신하기 위한 전면 버스(103)에 연결된다. 메모리 컨트롤러(401)는 각각의 데이지 체인식 허브(402A-D)(본원에서는 일반적으로 특징(402)으로 칭함)로 구성되는 하나 또는 (전형적으로는) 복수의 메모리 칩 버스를 지원하는데, 각각의 허브는 적어도 하나(바람직하기로는 복수)의 클러스터의 메모리 칩(403A-O)(본원에서는 일반적으로 특징(403)으로 칭함)을 지원한다. 주 메모리(102)는 복수의 메모리 컨트롤러(401)를 포함할 수 있으며, 이들 각각은 각 세트의 부착 허브 및 칩 클러스터를 지원한다.
도 2의 데이지 체인식 칩의 경우에 있어서, 바람직한 실시예의 허브(402)는 메모리 컨트롤러(401)로부터 제 1 허브로, 그리고 이후 체인의 끝에 도달할 때까지 각 허브로부터 계승 허브로 이어지는 포인트-투-포인트 링크(405A-D)(본원에서는 일반적으로 특징(405)으로 칭함)에 의해 체인(404)에서 접속된다. 메모리 컨트롤러(401)는 전형적으로 복수의 포인트-투-포인트 허브 링크(405)를 지원하며, 이들 각각은 허브 및 클러스터의 각 데이지 체인식 세트(404)를 지원할 수 있다. 2개의 데이지 체인식 허브 세트가 도 4에 도시되어 있지만, 그 개수는 변경될 수 있으며, 전형적으로는 더 많다.
각각의 포인트-투-포인트 링크(405)는 아웃바운드 데이터부(407) 및 인바운드 데이터부(408)를 포함한다. 바람직하기로, 포인트-투-포인트 링크(405)는 도 2의 구성에서 데이지 체인식 버퍼링된 메모리 칩(202) 사이에서 이어지는 포인트-투-포인트 링크(204)와 본질적으로 동일한 방식으로 동작한다. 구체적으로, 바람직한 실시예에서 버스 링크(405)의 버스 주파수는 버스 링크(204)의 것과 동일하며, 각각의 데이터 액세스 트랜잭션(판독 또는 기입)은 송신하는데 복수(예컨대, 6)의 사이클을 필요로 한다. 인바운드 데이터부(408)는 인바운드 데이터부(206)(예컨대, 각각 13 라인)와 동일한 버스 폭(동일한 라인 수)인 것이 바람직하다. 아웃바운드 데이터부(407)는 또한 커맨드/어드레스 데이터의 송신을 위한 일부 라인 수에 더하여 아웃바운드 기입 데이터의 송신을 위한 13 라인을 사용한다. 아웃바운드 데이터부(407)는 메모리 칩의 데이지 체인(203) 내의 링크(204)의 아웃바운드 데이터부(205)의 것과 유사한 어드레스 및 커맨드 프로토콜을 지원하는 것이 바람직하지만, 보다 큰 가능한 어드레스 공간을 수용하는데 하나 이상의 부가적인 어드레스 라인을 필요로 할 수 있는데, 바람직한 실시예의 배열의 한가지 목적이 메모리 컨트롤러에 의해 지원되는 각 메모리 칩 버스 포트 상의 더 많은 칩(더 많은 메모리 어드레스 범위)을 지원하는 것이기 때문이다.
동작시, 메모리 컨트롤러(401)는 전면 버스(103)를 통하여 커맨드를 수신하고, 커맨드가 적용되는 데이지 체인식 허브/클러스터 세트(404), 즉 적용 가능한 어드레스가 위치하는 세트를 결정한다. 그리고 나서 컨트롤러(401)는 아웃바운드 데이터부(407) 상의 각 커맨드 및 어드레스(커맨드가 기입 커맨드이면, 기입 데이 터와 함께)를 적용 가능한 데이지 체인식 허브/클러스터 세트 내의 제 1 허브에 송신하는데, 이는 적용 가능한 데이터 어드레스를 저장하는 클러스터(403)에 서비스하는 허브가 도착될 때까지 어드레스를 수신하여 후속하는 버스 사이클에서 필요에 따라 이를 다음 허브에 재송신한다. 그리고 나서 허브는 본원에서 보다 상세하게 설명하는 바와 같이 커맨드/어드레스(및 적용 가능하면, 기입 데이터)를 적용 가능한 클러스터(403)의 메모리 모듈에 재송신한다. 커맨드/어드레스가 클러스터에 재송신되는 경우, 허브 및 클러스터를 특정하는데 필요한 여분의 어드레스 비트는 요구되는 어드레스의 폭을 감소시키도록 제거되는 것이 바람직하다. 데이터는 본원에서 보다 완전하게 설명하는 바와 같이 복수의 클러스터 모듈 사이에서 인터리브되는 것이 바람직하다. 클러스터의 모듈은 임의의 기입 데이터를 특정 어드레스에 기입하거나, 또는 판독 커맨드에 의해 특정된 데이터를 판독하여, 그 판독된 데이터를 허브에 반환한다. 그리고 나서 허브는 인바운드 데이터부(408) 상의 메모리 컨트롤러를 향하여 체인의 위로 데이터를 송신하며, 체인 내의 각각의 중간 허브는 데이터가 메모리 컨트롤러(401)에 도달할 때까지 각각의 후속하는 버스 사이클에서 데이터를 전면 버스(103)를 통하여 송신되는 곳으로부터 요구 엔티티에 재송신한다.
본 발명의 바람직한 실시예에 따라, 메모리 칩의 "클러스터"(403)는 데이터를 저장하는 한 세트의 복수의 메모리 칩이며, 모든 클러스터의 칩이 클러스터에 대한 각각의 트랜잭션에서 액세스되도록 구성된다. 달리 말하면, 클러스터 내의 데이터는 모든 클러스터의 칩 사이에서 인터리빙된다. 인터리빙은 비트-와이 즈(bit-wise), 복수의 비트, 바이트나 워드, 또는 일부 다른 방식에 기초할 수 있다. 데이터의 인터리빙 이외에, 바람직한 실시예에서 칩에 이어지는 통신 링크의 적어도 일부는 허브 체인(404)의 링크(405) 보다도 더 낮은 버스 주파수로 동작한다. 더 낮은 주파수에도 불구하고, 인터리빙의 사용은 칩이 허브 체인(404)의 데이터 속도에 상당하는 속도로 데이터를 송신 또는 수신하는 것을 허용한다. 따라서 허브 및 클러스터의 사용은 메모리 컨트롤러에 부착된 각각의 버스 체인(404)(도 2에 도시된 칩의 마주하는 데이지 체인) 상에서 지원되는 칩의 개수를 증가시키고, 동시에 버스 주파수를 낮춤으로써 각각의 칩에 의해 소비되는 평균 전력을 감소시킨다. 메모리 칩의 클러스터(403)는 임의의 다양한 구성에서 구현될 수 있다. 몇 가지 대표적인 이러한 구성이 아래에서 설명되며, 본원에서 설명하는 예시적인 구성들이 포괄적인 것이 아니라 것을 이해할 것이다.
도 5는 바람직한 실시예 어떤 변형예에 따른 허브와 메모리 칩의 연관된 클러스터 간의 링크를 도 4의 표시도보다 더 상세하게 나타내는 블록도이다. 도 5에 도시된 바와 같이, 클러스터(403)는 3개의 서브 클러스터(501A-C)(본원에서는 일반적으로 특징(501)으로 칭함) 내에 배치된 39개의 칩(202)을 포함한다. 허브(402)는 서브 클러스터(501)마다 개별 서브 클러스터 통신 링크(502A-C)(본원에서는 일반적으로 특징(502)으로 칭함)에 연결된다. 각각의 서브 클러스터 통신 링크는 커맨드/어드레스 데이터(및 기입 커맨드의 경우에는 선택적 기입 데이터)를 서브 클러스터의 칩에 송신하는 각각의 커맨드/어드레스 기입 데이터부(504), 및 메모리 컨트롤러에 재송신되는 클러스터의 칩으로부터 판독된 데이터를 수신하는 각각의 판독 데이터부(505)를 포함한다. 바람직하기로, 커맨드/어드레스/기입 데이터부는 커맨드/어드레스 데이터용 및 기입 데이터용 개별 세트의 라인을 포함하며, 요구되는 라인의 수는 몇 가지 예가 아래에서 설명되는 구성에 좌우된다; 그렇지만, 커맨드/어드레스 데이터는 변형적으로 단일 세트의 라인을 공유하도록 기입 데이터와 타임-멀티플렉싱될 수 있다. 명료히 하기 위해 하나의 클러스터만이 도 5의 허브에 부착된 것으로 도시되어 있지만, 허브는 전형적으로 복수의 클러스터를 서비스할 수 있다는 것을 이해할 것이다.
허브(402)는 본질적으로 다른 주파수를 동작시키는 버스 간의 데이터를 축적/시퀀싱할 수 있는 능력을 갖는 복합 스위치이다. 도 9는 바람직한 실시예에 따른 허브의 일정한 주요 내부 구성요소를 나타내는 블록도이다. 허브(402)는 수신된 어드레스를 디코딩하고 허브의 동작을 제어하는 디코더/컨트롤러(901); 버스 타이밍 신호를 발생시키는 위상 동기 루프(PLL) 클록 회로(902); 인바운드 데이터를 버퍼링하는 인바운드 데이터 버퍼(903); 허브(402)가 속해 있는 허브 체인의 링크(405) 상에서 데이터를 수신 및 구동(송신)하는 수신 버퍼(905, 906) 및 드라이버(904, 907), 및 메모리 칩의 클러스터(403)와 인터페이스 통신하는 적어도 하나의 클러스터 인터페이스(910)를 포함한다.
허브(402)는 동작 모드를 식별하는 디코더/컨트롤러(901)에 연결된 모드 레지스터(908)를 선택적으로 포함한다. 허브(402)는 몇 가지 예가 하기 및 도 6 내지 도 8에 개시되어 있는 복수의 다른 클러스터 구성을 지원하도록 선택적으로 설계될 수 있거나, 또는 다른 선택적 변형예를 지원하도록 설계될 수 있다. 예를 들 면, 다른 구성들은 다음 중 임의의 것을 필요로 할 수 있다: 다른 개수의 커맨드/어드레스 라인 및 적어도 일부 라인의 다른 버스 주파수; 클러스터 내의 다른 개수의 서브 클러스터; 데이터 인터리브의 다른 입도(granularity) 등.
클러스터 인터페이스(910)는 기입 어큐멀레이터(911), 판독 시퀀서(912), 커맨드/어드레스 라인 출력 드라이버(913), 기입 데이터 출력 드라이버(914), 및 인바운드 판독 데이터 수신 버퍼(915)를 포함한다. 예시를 명료히 하게 위해서 하나의 인터페이스(910)만이 도 9에 도시되어 있지만, 개별 인터페이스가 허브(402)에 의해 지원되는 각각의 클러스터(403)마다 존재한다는 것을 이해할 것이다.
기입 어큐멀레이터(911)는 더 낮은 주파수에서 클러스터에 송신되는 데이터를 메모리 컨트롤러로부터 버스(405)를 통하여 수신된 곳으로부터 축적한다. 즉, 버스(405)를 통하여 복수의 버스 사이클에서 수신된 데이터는 이것이 더 낮은 속도, 더 넓은 폭의 아웃바운드 링크(들)(504)에서 클러스터에 송신하기 위한 충분한 폭일 때까지 더 넓은 레지스터에 축적된다. 바람직하기로, 적어도 일부의 데이터는 더 낮은 버스 속도로 송신된다. 구체적으로, 본원에서 개시된 모든 예시적인 구성에서, 칩에 기입하기 위한 기입 데이터는 감소된 버스 속도로 링크(들)(504) 상에서 송신된다. 한가지 예시적인 구성에서, 어드레스/커맨드 데이터는 또한 더 낮은 버스 속도로 송신된다. 필요에 따라 폭을 조정하도록 기입 어큐멀레이터를 통과한 후, 클러스터 인터페이스(910)에 의해 지원되는 클러스터에 제공하도록 의도된 수신 데이터는 커맨드/어드레스 라인 출력 드라이버(913)(커맨드/어드레스 데이터용) 및 기입 데이터 출력 드라이버(914)(기입 데이터용) 상의 클러스터로 송신 된다.
판독 시퀀서(912)는 링크(405)의 더 협소한 폭의 인바운드부(408) 상에서 복수의 사이클로 메모리 컨트롤러에 송신하기 위해서 링크(들)(505)를 통하여 판독 버퍼(915) 내로 수신된 더 넓은 폭의 인바운드 판독 데이터를 시퀀싱한다. 시퀀싱된 데이터는 인바운드 드라이버(904) 상에서 메모리 컨트롤러 쪽으로 재송신하기 위해서 인바운드 버퍼(903)에 배치된다.
동작시, 디코더/컨트롤러(901)는 수신된 커맨드/어드레스의 어드레스를 디코딩하여 커맨드가 허브(402)에 의해 지원되는 클러스터에 제공되는 것인지를 결정한다. 그렇다면 수신 데이터는 해당하는 클러스터 인터페이스(910)에 라우팅된다. 그렇지 않으면, 수신 데이터는 아웃바운드 드라이버(907)에 라우팅되어, 허브(402)를 통하여 데이지 체인 내의 다음 허브로 통과된다(일부 아키텍처는 클러스터 인터페이스에 라우팅되고 데이지 체인 아래로 통과되는 브로드캐스트 커맨드를 지원할 수 있다).
PLL 회로(902)는 외부 소스로부터 버스 클록 신호를 수신하고 또 다른 외부 소스에 신호를 재구동하는데, 예를 들면, 이 회로는 데이지 체인 내의 앞선 허브(또는 메모리 컨트롤러)로부터 버스 클록을 수신하고 이를 체인 내의 다음 허브에 재구동한다. 선택적으로, 각각의 클러스터 인터페이스는 하나 이상의 클러스터의 칩에 버스 클록 신호를 재구동하는 클록 리드라이버(916)를 더 포함하지만, 이들 칩의 클록은 개별 수단에 의해 생성될 수 있다. PLL(902)로부터 유도된 클록 신호는 또한 허브(402)의 내부 동작을 제어하는 디코더/컨트롤러(901)에 제공된다.
초기에 설명한 바와 같이, 예시적인 실시예에서, 메모리 액세스 동작은 78 비트의 데이터(보조 비트 포함)를 저장 또는 판독한다. 클러스터(403) 내의 데이터는 클러스터의 39개의 칩 사이에서 인터리빙됨으로써, 클러스터의 칩에 어드레싱하는 임의의 메모리 액세스 동작이 39개의 모든 칩 사이에서 분배되는데, 즉 각각의 칩은 클러스터에 액세스하는 모든 메모리 액세스 동작의 2 비트를 정확하게 저장 또는 판독한다. 클러스터 내의 각각의 칩이 각각의 메모리 액세스 동작에서 2 비트의 기입 데이터만을 수신하거나 또는 2 비트의 판독 데이터만을 송신하는데 필요로 하기 때문에, 이 데이터를 전달하는 라인은 허브 체인(404)을 구성하는 통신 링크(405)의 라인보다 더 낮은 주파수로 동작할 수 있다. 예를 들면, 예시적인 실시예에서, 링크(405)는 메모리 액세스 동작을 완료하는데 6 버스 사이클을 필요로 하는 6 GT/s의 버스 주파수로 동작한다. 클러스터 내의 각각의 칩이 2 버스 사이클에서 단일 라인 상의 2 비트의 데이터를 수신 또는 송신할 수 있기 때문에, 칩은 2 버스 사이클에서 메모리 액세스 데이터의 각 부분을 수신 또는 송신할 수 있고, 따라서 2 GT/s의 버스 주파수(링크(502) 상에서)로 충분한 데이터 속도를 달성할 수 있다.
각각의 칩(202)이 31개의 I/O 라인 상에서 데이터를 송신하기 위해서 31개의 I/O 라인 및 31개의 드라이버를 수신하는 전체 31개의 수신기를 포함한다. 기본적인 동작 모드에서, 이들은 수신기 I/O 및 드라이버 I/O마다 13개의 아웃바운드 데이터, 13개의 인바운드 데이터, 및 5개의 커맨드/어드레스로서 동작한다. 지원되는 물리적 수신기 및 드라이버 I/O 라인의 개수는 상당히 제한적이다. 각각의 I/O 라인이 상당히 비용 부담이 되기 때문에, 일반 칩이 최소한 필요로 하는 것보다 더 많은 I/O로 설계될 가능성은 없다. 따라서, 메모리 서브시스템의 임의의 변형적인 구성이 도 2의 기본적(즉, 데이지 체인식) 구성에 요구되는 개수보다 많지 않은 I/O 라인을 사용하는 것이 바람직하다. 그렇지만, 동작 모드에 따라서, 다른 I/O 라인을 달리 사용하는 제어 로직(302)에서 부가적인 기능을 제공하는 것이 비교적 비용이 적고, 따라서 일부 I/O 라인에 다른 역할을 부여하는 변형적인 구성에서 메모리 서브시스템을 구성하는 것이 인정될 수 있다.
도 6 내지 도 8은 바람직한 실시예의 어떤 변형예에 따른 서브 클러스터 및 연관된 허브의 메모리 칩 간의 데이터 경로의 다양한 변형적 구성을 보다 상세하게 나타내고 있다. 도 6 내지 도 8의 변형예에서, 각각의 클러스터(403)는 3개의 서브 클러스터(501)를 포함하며, 각각의 서브 클러스터는 도 5에 나타내고 위에서 설명한 바와 같이 13개의 메모리 칩을 포함한다. 단일 클러스터(403)의 3개의 모든 서브 클러스터(501)는 동일한 허브(402)에 의해 서비스되지만, 예시를 명료히 하기 위해서 다른 서브 클러스터는 도 6 내지 도 8에서 생략되어 있다.
서브 클러스터 구성(501)의 제 1 변형예를 나타내는 도 6을 참조하면, 아웃바운드 링크(601)는 허브(402)로부터 메모리 칩(202A)으로 이어져 있으며, 아웃바운드 링크(601)는 기입 데이터 및 커맨드/어드레스 데이터 각각을 메모리 칩(202A)에 전송하기 위한 13개의 데이터 라인 및 5개의 커맨드 라인을 포함한다. 13개의 데이터 라인은 2 GT/s의 버스 주파수, 즉 허브 체인의 통신 링크(405)의 버스 주파수의 1/3로 동작한다. 5개의 커맨드/어드레스 라인은 6 GT/s로 동작한다.
메모리 칩(202A)은 메모리 칩(202B, 202C, 202D) 각각에 3개의 개별 아웃바운드 링크(602, 603, 604)를 구동한다. 메모리 칩(202A)으로부터의 각각의 아웃바운드 링크(602, 603, 604)는 2 GT/s의 버스 주파수로 동작하는 4개의 데이터 라인, 및 6 GT/s의 버스 주파수로 동작하는 5개의 커맨드/어드레스 라인을 포함한다.
각각의 메모리 칩(202B, 202C, 202D)은 3개의 부가적인 메모리 칩의 각 그룹에 3개의 개별 아웃바운드 링크를 구동한다. 예를 들면, 메모리 칩(202B)은 메모리 칩(202E, 202F, 202G) 각각에 3개의 개별 아웃바운드 링크(605, 606, 607)를 구동한다. 각각의 아웃바운드 링크(605, 606, 607)는 2 GT/s의 버스 주파수로 동작하는 1개의 데이터 라인, 및 6 GT/s의 버스 주파수로 동작하는 5개의 커맨드 어드레스 라인을 포함한다.
각각의 메모리 칩(202A-202M)은 2 GT/s로 동작하는 단일 인바운드 데이터 라인을 허브(402)에 구동한다. 예를 들면, 메모리 칩(202E)은 인바운드 데이터 라인(608)을 구동한다.
따라서, 루트에서 칩(202A)을 갖는 메모리 칩의 트리로서 구성되며, 여기서 커맨드/어드레스 데이터 및 기입 데이터는 트리의 아래로 전달된다. 그렇지만, 각각의 칩으로부터 허브에 판독 데이터를 송신하기 위한 직접 접속이 존재하는데, 즉 트리 위로 판독 데이터를 전달하는 것은 불필요하다.
비록 데이터가 6 GT/s에서 허브 버스 링크(405) 상에 전송되더라도, 도 6에 도시된 바와 같이 구성된 클러스터는 3개의 서브 클러스터 중에 데이터가 인터리빙되기 때문에 전송 속도를 맞추어 유지할 수 있다. 즉, 어드레스로 불러낼 수 있는 데이터의 78 비트와 보조 비트를 전송하는 각 버스 동작을 위해서, 3개의 서브 클러스터의 각각에 26 비트가 저장되고, 각 메모리 칩은 2 비트를 정확하게 저장한다. 각 칩은 두 비트를 (단일 인바운드 비트 라인(608) 상에서) 전송하기 위해 2개의 버스 비이트(beat)만 요구하고, 허브는 데이터의 78비트를 허브 체인(404)까지 메모리 컨트롤러(401)로 전송하기 위해 6 버스 비이트(beat)를 요구한다. 따라서, 클러스터의 개별 칩이 데이터를 허브에 2 GT/s에서 전송함으로써 허브의 데이터 속도로 맞추어 유지할 수 있다. 허브로부터 칩으로의 아웃바운드 기입 데이터에 대하여도 마찬가지이다.
그러나, 아웃바운드 커맨드/어드레스 데이터의 경우에, 클러스터의 모든 칩에 대하여 커맨드/어드레스 데이터를 교체할 필요가 있고, 따라서, 인터리빙에 의해서는 각 칩에 대한 커맨드/어드레스 데이터의 양이 줄지 않게 된다. 도 6의 예시적인 구성에서, 이 문제는, 허브 체인 링크(405)와 동일한 버스 주파수인 6 GT/s에서, 아웃바운드 링크의 커맨드/데이터부를 동작시킴으로써 해결된다. 본 실시예에서, 버스의 일부 라인은 다른 라인보다 높은 주파수에서 동작한다. 도 2에 도시된 바와 같이, 데이지 체인식 구성에 비해 칩당 전력이 절감되는 것은 일부 라인이 보다 낮은 주파수에서 동작한다는 사실(반면에 데이지 체인식 구성에서는 모든 라인이 6 GT/s에서 동작함)과 일부 칩이 모든 라인을 사용하는 것이 아니라 일부 라인을 사용한다는 사실에 의해서 성취된다.
동작시, 허브(402)는 연속 버스 사이클에서 체인(404)으로부터 커맨드/어드레스 데이터(및 선택적으로 기입 데이터)의 연속하는 부분을 수신한다. 바람직하 게는, 클러스터를 식별하는 어드레스 데이터는, 제 1 버스 사이클 또는 대기 시간(latency)을 줄이기 위한 사이클들에 포함된다. 목적 클러스터를 결정하기에 충분한 정보가 수신되면, 허브(402)는 허브에 부착된 각 클러스터에 관련하여 커맨드가 클러스터에 어드레싱되었는지의 여부를 판정한다. 어드레싱되지 않았다면, 커맨드는 허브에 의해서 무시되지만, 체인(404)으로 다운 전송된다. 어드레싱되었다면, 각 클러스터에 대하여 링크(601)의 5개의 커맨드/어드레스 라인 상에 커맨드가 어드레싱된 클러스터의 각 서브 클러스터에서 트리(tree)에 근거하여 3개의 메모리 칩(202A)의 각각에 커맨드가 재전송된다. 커맨드가 기입 커맨드인 경우, 허브는 또한 메모리 컨트롤러로부터 13개의 아웃바운드 데이터 입력 라인 상에서 기입 데이터를 수신한다. 이 기입 데이터는 인터리브 형태로 3개의 서브 클러스터에 재전송되고, 각 서브 클러스터의 루트 메모리칩(202A)은 링크(601)의 13-라인 데이터 부분 상에서 2 GT/s로 기입 데이터를 수신한다.
그 다음, 메모리 칩(202A)은 링크(602, 603 및 604)의 3개의 별개의 5-라인 6 GT/s부분 상에서 커맨드/어드레스의 3개의 별개의 복사본을 각각 칩(202B, 202c 및 202D)에 재전송한다. 그러나, 커맨드가 기입 커맨드인 경우, 칩(202A)이 모든 기입 데이터를 재전송할 필요는 없다. 링크(601)의 13-비트 부분은 메모리 칩(202A - 202M)의 각각에 대하여 하나의 비트를 운반한다. 따라서, 링크(602)(2 GT/s로) 상에서 4개의 데이터 비트를 메모리 칩(202B)으로, 링크(603)(2 GT/s로) 상에서 4개의 비트를 메모리 칩(202C)으로, 그리고 링크(604)(2 GT/s로) 상에서 4개의 비트를 메모리 칩(202D)으로 재전송하기만 하면 된다. 13번째 비트는 메모리 칩(202A) 자신을 위한 것이며 재전송되지 않는다.
그 다음, 메모리 칩(202A, 202B 및 202C)의 각각은 5-비트 커맨드/어드레스 데이터의 3개의 복사본을 더, 세개의 칩의 각 그룹에 재전송한다. 즉, 도 6에 도시된 바와 같이, 칩(202B)은 데이터를 칩(202E - 202G) 등에 재전송된다. 이러한 재전송에서는, (커맨드/어드레스 데이터의 5비트에 부가하여) 각 칩에 기입 데이터의 단일 비트를 2 GT/s로 전송하기만 하면 된다.
커맨드가 판독 커맨드인 경우, 각 칩은 대응하는 판독 데이터를 각 1-비트 라인(608) 상에서 2 GT/s로 칩으로부터 허브(402)로 직접 전송한다. 각 칩은 버스 동작 당 판독 데이터 78 비트 중 2 비트만 저장하고, 이에 의해서, 2 GT/s에서 동작시킴으로써, 각 칩은 요구되는 데이터를 버스 동작을 완료하기 위한 시간 내에 전송할 수 있게 된다. 커맨드/어드레스 데이터는 3개의 구성으로 칩에 전달되기 때문에, 칩이 동시에 모두를 수신하지 못한다. 바람직하게는, 허브(402)는 이러한 지연을 고려하여 각종 칩으로부터 들어오는 데이터를 버퍼링하도록 설계된다. 변형적으로, 허브(402)가 동시에 모든 데이터를 수신하도록 하기 위해, 허브(402)에 판독 데이터를 전송하기 이전에 먼저 커맨드를 수신하는 칩들에서, 하나 또는 두개의 지연이 유도될 수 있다.
메모리 칩(202)을, 저가 시스템의 요구에 맞춰 설계하고, 이들의 기본 동작 모드로서 도 2의 데이지 체인식 구성으로 구성하도록 설계하는 것이 상정된다(비록 이것은 본 발명의 요구가 아니다 하더라도). 저가의 데이지 체인식 구성에 사용하는 것을 의도로 하는 동일한 일반적인 칩(202)을 사용할 수 있도록 하기 위해서는, 본원에서 나타낸 임의의 변형적인 구성은 가능한 한 부가적인 칩 회로 소자들이 적은 것이 매우 바람직하고, 특히, 임의의 변형적인 구성의 칩은 표준 데이지 체인식 구성에서 사용되는 것 이하의 I/O핀이 요구되는 것이 더욱 바람직하다. 각 부가적인 I/O 핀은 칩의 설계 및 제조에 상당한 비용을 증가시키기 때문에, 설치 환경의 작은 부분에만 사용되는 변형적인 구성을 지원하기 위해 칩 설계자가 부가적인 핀을 추가하는 것은 바람직하지 않다. 상술한 바와 같이, 예시적인 실시예의 칩(202)은, 컨트롤러로부터의 아웃바운드 데이터(13개의 데이터 및 5개의 커맨드/어드레스)를 수신하는 18개의 핀, 데이지 체인에서 다음 칩에 대한 아웃바운드 데이터(13개의 데이터 및 5개의 어드레스/커맨드)를 재구동하는 18개의 핀, 데이지 체인에서 다음 칩으로부터의 인바운드 데이터를 수신하는 13개의 핀, 및 컨트롤러를 향하는 인바운드 데이터를 재구동하는 13개의 핀을 포함하는 62개의 I/O핀을 갖는다. 62개의 I/O핀 중, 31개는 외부 라인 상에 전송하는 드라이버이고, 31개는 외부 라인으로부터 수신하는 수신기이다. 이들은 예시적인 설계 파라미터로서 제공된 것으로, 본 발명에 따른 용도의 메모리 칩은 다른 수의 I/O 핀을 가질 수 있는 것으로 이해되어 져야 한다.
본원에서 개시된 모든 구성에서, 구성의 각 칩에 사용되는 전송 및 수신 핀의 수는, 비록 핀의 기능(즉, 핀에서 구동 또는 수신되는 데이터의 타입)이 데이지 체인식 구성과 반드시 동일하지 않다고 하더라도, 각각 31개 및 31개이다. 따라서, 동작 모드를 기록하는 모드 레지스터(304)와, 모드 레지스터에 유지된 동작 모드에 응답하는 소량의 부가적인 내부 칩 로직(302)은, 입력 라인을 디코딩하고 출 력 라인에 전송하는데 필요하다. 이 내부 칩 로직은 부가적인 I/O 핀보다 매우 저렴하기 때문에, 설치 칩의 비교적 작은 부분에 실제로 사용하는 경우에도, 일반적인 칩 설계로 지원하는 것이 가능하다.
각종 핀에 대한 기능을 적절히 할당함으로써 변형적인 구성을 지원하는데 필요한 내부 로직을 최소화할 수 있다. 아래 표는 기본 동작 모드(도 2의 데이지 체인식 구성에서 사용하기 위해 의도됨), 및 도 6의 변형적인 구성 모드에서, 데이터를 수신하는 31개의 수신기 핀(R1 내지 R31) 및 데이터를 전송하는 31개의 드라이버 핀(T1 내지 T31)에 대한 핀 기능의 예시적인 할당을 나타낸다. 변형적인 모드에서, 파독 데이터 1과 기입 데이터 1은 칩에 저장된 비트를 말하고, 기입 데이터 2:13은 동일한 서브 클러스터의 다른 칩 상에 인터리빙 형태로 저장되는 데이터이다(이는 이후 다른 칩에 전달되어야 함). 관찰한 바와 같이, 대부분의 핀은 모두 변형적인 모드에서 동일한 기능을 가지며 변형적인 모드에서 사용되지 않는다(따라서 특별히 요구되는 로직이 없다). 변형적인 모드에서, 내부 로직은 칩에 대한 데이터 비트 1(판독 또는 기입)만 사용하고, 데이터 비트 2:13은 다른 칩을 위한 패스-스루 데이터로서 취급된다. 핀(T20:T29)만이 다른 기능을 가지며, 변형적인 모드에서 커맨드 데이터의 부가적인 복사본을 구동시키는데 이용된다. 부가적으로, 동작 모드에 응답하는 제어 논리(302)는 다른 클록 속도로 변형적인 모드에서 데이터 핀을 동작시키는데, 다시 말해, 핀(R6:R18 및 T7:T19)은 1/3 버스 클록 속도(예를 들면, 6 GT/s에 대향하는 것으로서 2 GT/s)로 동작 된다. 클록 속도가 낮아진 결과로 전력이 절약될 뿐만 아니라 일부 핀은 변형적인 모드에서 사용되지 않는다.
표 1: 기본 및 변경 모드(도 6)에 대한 핀 배분
Figure 112009046847866-PCT00001
Figure 112009046847866-PCT00002
상기 표로부터의 단일 세트의 변형적인 모드 핀 배분은, 비록 실질적으로 칩(202A)만이 리스트된 핀 배분을 모두 사용한다고 하더라도, 도 6의 변형적인 구성의 모든 칩에 사용될 수 있다. 다른 칩들은 더 적은 일부 핀을 사용할 수 있다. 예를 들면, 칩(202B)은 기입 데이터의 4비트만 수신하며, 따라서 아웃바운드 기입 데이터를 수신하는 R6:R9만이 필요하고 핀(R10: R18)은 사용하지 않는다. 마찬가지로, 기입 데이터의 3 비트만 송신하며, 따라서 아웃바운드 기입 데이터를 송신하는 T7:T9만 필요하고, T10:T18은 사용하지 않는다.
상기 표의 핀 배분은 단지 하나의 가능한 배분 설정이고 다른 배분이 이용될 수 있는 것으로 이해되어 져야 한다. 수신 및 전송 핀의 총 수가 입수 가능한 것을 초과하지 않는 한, 본원에서 기술된 각종 다른 구성에 대하여 동일한 배분이 이루어질 수 있다.
도 7은 서브 클러스터 구성(501)의 제 2 변경을 나타낸다. 도 7의 구성은, 메모리 칩(202A-202H 및 202J-202M)으로부터의 판독 데이터가 허브(402)에 직접 전송되지 않고 칩(202I)에 전송되는 것을 제외하고는, 도 6의 구성과 동일하고, 동일한 방식으로 동작한다. 다음으로 칩(202I)은 이 판독 데이터를 자신의 판독 데이터와 함께 허브(402)에 전송한다.
도 7을 참조하면, 아웃바운드 링크(701)는 허브(402)로부터 메모리 칩(202A)으로 진행하고, 아웃바운드 링크(701)는 기입 데이터 및 커맨드/어드레스 데이터를 각각 메모리 칩(202A)에 전송하는 13개의 데이터 라인 및 5개의 커맨드 라인을 포함한다. 13개의 데이터 라인은 2 GT/s의 버스 주파수에서 동작하고, 5개의 커맨드/어드레스 라인은 6 GT/s의 버스 주파수에서 동작한다.
다음으로, 메모리 칩(202A)은 메모리 칩(202B, 202C 및 202D)에 대한 3개의 별도의 아웃바운드 링크(702, 703 및 704)를 각각 구동한다. 메모리 칩(202A)으로 부터의 각 아웃바운드 링크(702, 703, 및 704)는 2 GT/s의 버스 주파수에서 동작하는 4개의 데이터 라인, 및 6 GT/s의 버스 주파수에서 동작하는 5개의 커맨드/어드레스 라인을 포함한다. 다음으로, 메모리 칩(202B, 202C, 및 202D)의 각각은 3개의 부가적인 메모리 칩의 각 그룹에 대한 3개의 별도 아웃바운드 링크를 구동하고, 각각 이러한 링크는 도 6의 구성에서와 같이, 2 GT/s에서 1개의 데이터 라인 및 6 GT/s에서 5개의 커맨드/어드레스 라인을 포함한다.
각 메모리 칩(202A-H 및 202J-202M)은 2 GT/s에서 동작하는 단일 인바운드 데이터 라인을 구동한다. 예를 들면, 메모리 칩(202E)은 인바운드 데이터 라인(708)을 구동한다. 메모리 칩(202I)은 이 데이터를 수신하고, 이를 그 자신의 데이터와 함께 인바운드 링크(707) 상에서 허브(402)로 전송한다. 인바운드 링크(707)는 2 GT/s에서 동작하는 13-라인 링크이고, 각 칩(202A-202M)으로부터의 데이터를 포함한다.
도 6에 비해서, 도 7의 구성은 데이터를 판독하기 위해 대기 시간의 여분 사이클을 반드시 요구하지만, 이는 임의의 잠재적인 이점을 갖는다. 허브(402)로 들어가는 모든 판독 라인은 단일 칩, 즉 시간 또는 물리적인 레이아웃 이슈를 단순화할 수 있는 칩(202I)으로부터 온다. 도 7의 구성의 다른 이점은 각 메모리 칩(202A-202H 및 202J-202M)으로부터 잉여 인바운드 라인을 제공하기 위해 충분한 포트가 존재한다는 것에 있다. 이들 잉여 인바운드 라인은 도 7에 점선(709, 711)으로 도시되어 있다. 처음 인바운드 포트 또는 라인의 임의의 실패의 이벤트에서, 잉여 라인은 본래 라인의 기능을 가정할 수 있다. 따라서, 메모리 칩(202I)은, 처 음 인바운드 라인(708)에 할당된 12개의 수신기 핀 및 잉여 인바운드 라인(709 및 711)에 할당된 12개의 수신기 핀을 갖는다. 칩(202I)은 링크(706) 상에서 칩(202C)으로부터 커맨드/어드레스 데이터의 5개의 비트와 기입 데이터의 1개의 비트를 수신하는 6개의 부가적인 수신기 핀만 필요하기 때문에, 총 요구되는 핀은 30핀(하나는 사용하지 않음)이다. 본원에서 잉여가 요구되고, 바람직하게, 링크(707)는 칩(202I)으로부터 허브(402)로 13개의 인바운드 판독 라인 중 임의의 라인에 대하여 백업으로서 할당될 수 있는 단일의 부가적인 잉여 라인을 포함한다. 잉여는 마찬가지로 도 6의 구성에 제공될 수 있지만, 허브에서 13개의 여분 수신 포트가 요구되고 비용이 크게 증가한다.
필요에 따라, 잉여는 아웃바운드 링크에 제공될 수도 있다. 즉, 하나의 예외로, 아웃바운드 링크(701-704, 706)의 각각에 대하여 여분의 잉여 라인을 제공하기 위해 사용되지 않은 포트가 충분히 존재한다는 것이다. 이 한가지 예외는 9개의 라인을 각각 갖는 3개의 아웃바운드 링크(702, 703, 704)를 갖는 칩(202A)이다. 10번째 잉여 라인이 링크(702, 703, 704)의 각각에 추가되면, 사용되지 않는 라인이 없게 되고 칩(202I)에 대한 데이터 라인(710)에 잉여가 없게 된다. 이 문제를 해결하기 위한 해결책은 링크(703)에 대한 잉여 라인을 공유하는 것이다. 즉, 라인(710)이 실패인 경우, 판독 데이터는 링크(703)의 잉여 라인 상에서 칩(202C)에 전송되고, 그때부터 칩(202I)의 데이터를 위한 잉여 라인(711) 상에서 전송된다. 잉여는 내부 로직에 복잡성을 추가할 수 있지만, 추가적인 I/O 포트가 요구되지 않는다.
상술한 바와 같이 잉여를 채용한 도 7의 구성에 대한 예시적인 핀 배분은 아래 표 2에 나타낸다. 기본 동작 모드를 위한 핀 배분은 위의 표 1의 핀 배분과 동일한 것으로 가정한다. 라인(R6:18, R20:31 및 T7:19)은 1/3 클록 속도로 동작하고; 일부 다른 라인은 마찬가지로 구성 또는 용도에 따라서 1/3 클록 속도로 동작할 수 있다. 즉, 사용시 잉여 라인은 라인의 클록 속도로 동작하며, 이는 교체될 수 있다.
표 2: 제 2 변경 모드(도 7)에 대한 핀 배분
Figure 112009046847866-PCT00003
Figure 112009046847866-PCT00004
도 8은 서브 클러스터 구성(501)의 제 3 변경을 나타낸다. 도 8의 구성에서, 모든 라인(즉, 저장된 데이터뿐만 아니라 커맨드/어드레스)은 동일한 클록 주파수, 구체적으로 2 GT/s의 1/3 동작 주파수에서 동작한다. 저주파수 라인을 이용하여 모든 커맨드/어드레스 데이터를 송신하기 위해서, 도 8의 구성은 각 링크에 대하여 다수의 커맨드/어드레스 라인을 사용한다. 다수의 라인은 모든 버스 링크가 포인트-투-포인트인 디폴트 제한을 완화함으로써, 즉 멀티 드롭 라인(multi-drop line)을 사용함으로써 지원될 수 있다. 이 경우에, 송신 커맨드/어드레스 데이터는 멀티 드롭 링크 상에서 2개의 메모리 칩에 동시에 전송된다. 바람직하게, 개별 메모리 칩은 서로 그리고 허브(402)와 물리적으로 근접하여 배치되어 있다. 이 사실은, 메모리 칩(202)이 포인트-투-포인트 통신 링크로 사용하기로 의도되어 있음에도 불구 하고, 낮은 버스 클록 주파수의 사용과 함께, 통상적으로 칩 I/O 드라이버/수신기 하드웨어의 수정 없이 멀티 드롭 구성을 신뢰성 있게 지원하는 것을 가능하게 한다.
도 8을 참조하면, 아웃바운드 링크(801)는 허브(402)로부터 메모리 칩(202A 및 202B)으로 진행한다. 아웃바운드 링크(801)는, 메모리 칩(202A)으로 6개 진행하고, 메모리 칩(202B)으로 7개 진행하는 기입 데이터를 전송하는 13개의 포인트-투-포인트 데이터 라인을 포함한다. 아웃바운드 링크(801)는, 멀티 드롭이면서 양쪽 칩(202A 및 202B)으로 진행하는 커맨드/어드레스 데이터를 전송하는 15개의 커맨드/어드레스 라인을 더 포함한다. 다른 예에서, 아웃바운드 링크(801)가 너무 길거나 또는 멀티 드롭을 지원할 수 없는 다른 이유 때문에, 15개의 커맨드/어드레스 라인이 복사되는 경우에, 한 세트가 메모리 칩(202A)으로 진행하고, 다른 세트가 메모리 칩(202B)으로 진행함으로써, 두개의 별도의 포인트-투-포인트 링크가 허브(402)로부터 칩(202A 및 202B)으로 진행한다. 링크(801)의 모든 라인이 2 GT/s의 버스 주파수, 즉 1/3 버스 주파수에서 동작한다. 커맨드 어드레스 데이터가 15개의 라인 상에 전송되기 때문에, 동일 량의 데이터가 저주파수로 전송될 수 있다.
다음으로, 메모리 칩(202A 및 202B)은 메모리 칩(202C 및 202D)(링크(802)용) 및 메모리 칩(202E 및 202F)(링크(803)용)에 대하여 각 아웃바운드 멀티 드롭 링크(802, 803)를 구동한다. 메모리 칩(202A)으로부터 아웃바운드 링크(802)는 5개의 데이터 라인 및 15개의 커맨드/어드레스 라인을 포함한다. 메모리 칩(202B)로부터의 아웃바운드 링크(802)는 6개의 데이터 라인 및 15개의 커맨드/어드레스 라인을 포함한다. 링크(802, 803) 상의 모든 라인은 2 GT/s의 버스 주파수에서 동작한다.
다음으로, 각 메모리 칩(202C, 202D, 202E 및 202F)은 메모리 칩(또는 칩(202D)의 경우에, 단일 메모리 칩(202I)에 대하여)의 각 쌍에 대하여 각 아웃바운드 링크를 구동한다. 예를 들면, 메모리 칩(202C)은 칩(202G, 202H)에 대하여 아웃바운드 링크(804)를 구동하고, 링크(804)는 칩(202G 및 202H)의 각각에 대하여 15개의 멀티 드롭 커맨드/어드레스 라인(양 칩으로 진행)과 2개의 기입 데이터 라인을 포함한다. 이들 라인 모두는 2 GT/s의 버스 주파수에서 동작한다.
메모리 칩(202A-202M)의 각각은 허브(402)에 대하여 직접적으로 또한 2 GT/s의 버스 주파수에서 단일의 각 인바운드 판독 데이터를 구동한다.
동작시, 허브(402)는 커맨드가 목적 클러스터에 어드레싱되어 있는지의 여부를 판정하기 위해, 충분한 정보를 바람직하게 포함하고 있는 커맨드/어드레스의 첫 번째 3개의 버스 사이클(커맨드/어드레스 데이터의 총 15 비트)을 축적한다. 어드레싱되어 있다고 판정된 경우, 커맨드는, 커맨드가 서브 클러스터에 대한 링크(801)의 15개의 커맨드/어드레스 라인 상에서 2 GT/s로 어드레싱되는 클러스터의 3개의 서브 클러스터의 각각에 동시에 재전송된다. 이들 15개의 커맨드/어드레스 라인이 멀티 드롭이기 때문에, 커맨드/어드레스 데이터는 칩(202A) 및 칩(202B) 둘 다에서 수신된다. 커맨드가 기입 커맨드인 경우, 허브는 또한 메모리 컨트롤러로부터 13개의 아웃바운드 데이터 이력 라인 상에서 기입 데이터를 수신한다. 이 기입 데이터는 인터리빙 형태로 3개의 서브 클러스터로 재전송되고, 각 서브 클러스터는 링크(801)의 13-라인 데이터 부분 상에서 2 GT/s로 기입 데이터를 수신한다.
그 다음, 메모리 칩(202A 및 202B)은 링크(802 및 803)의 15-라인 커맨드/어 드레스 부분 상에서 커맨드/어드레스 데이터를 칩(202C, 202D, 202E 및 202F)으로 각각 재전송한다. 커맨드가 기입 커맨드인 경우, 칩(202A)은 마찬가지로 링크(802) 상에서 메모리 칩(202C, 202D, 202G, 202H 및 202I)에 대한 기입 데이터의 5개의 비트를 재전송하고, 마찬가지로 칩(202B)은 링크(803) 상에서 메모리 칩(202E, 202F 및 202J-202M)에 대한 기입 데이터의 6개의 비트를 재전송한다. 그 다음, 메모리 칩(202C, 202D, 202E 및 202F)의 각각은 커맨드/어드레스 및 적용 가능한 기입 데이터를 칩의 대응하는 쌍(또는 단일 칩)에 재전송한다. 즉, 칩(202C)은 도 8에 도시된 바와 같이 칩(202G 및 202H)에 데이터를 재전송한다.
커맨드가 판독 커맨드인 경우, 각 칩은 각 1-비트 라인 상에서 칩으로부터 허브(402)로 2 GT/s로 직접 대응하는 판독 데이터를 전송한다. 이 데이터는 도 6 및 도 7의 구성에서와 같이, 인터리빙 형태로 저장된다. 판독 데이터는 허브(402)에 의해서 필요에 따라서 버퍼링되고, 이 후에 체인(404) 상에서 메모리 컨트롤러에 재전송된다.
표 3은 기본(데이지 체인) 모드의 구성과 비교하여, 도 8의 구성을 위한 핀 배분의 대표적인 설정을 나타낸다. 모든 칩(202A-202M)은, 비록 칩의 일부가 도 8에 리스트된 핀을 모두 사용하지 않더라도, 핀 배분의 동일한 모드 구성을 사용할 수 있다. 예를 들면, 칩(202G)은 커맨드/어드레스 데이터 또는 다른 칩에 대한 각 기입 데이터를 재전송하지 않으며, 따라서 핀(R7:18, T1:5 및 T20:29)이 사용되지 않는다. 도 8의 구성에서 핀 배분은 데이지 체인 모드의 기본 핀 배분과 실질적으로 일치하고, cmd 6:15는, 사용되지 않는 인바운드 판독 라인(2:11) 상에서 수신 및 전송된다. 물론, 커맨드 및 어드레스를 디코딩하기 위해서는, (인바운드 판독 데이터보다) 커맨드/어드레스 데이터로서 라인(R20:29) 상에서 스위칭 신호를 인식하는 내부 칩 로직이 요구된다.
표 3: 기본 및 제 3 변경 모드(도 8)에 대한 핀 배분
Figure 112009046847866-PCT00005
상술한 바와 같이, 바람직한 실시예의 변형적인 구성의 각각에서, 각 메모리 액세스에서 어드레스 가능한 데이터의 78비트와 보조 비트까지가 3개의 서브 클러 스터 사이에서 인터리빙되고, 서브 클러스터 각각은 13개의 칩을 포함하고, 각 칩은 각 메모리 액세스의 2개의 비트를 포함한다. 표준 데이지 체인식 구성에서, 메모리 액세스의 데이터(8바이트(byte) + 임의 보조 비트) 모두가 단일 칩에 있다. 동일한 사이즈 칩에 대하여, 5비트 더 많은 어드레스를 취하여 (기본 동작 모드로서) 8바이트를 기술하기 보다 (바람직한 실시예에서와 같이) 2비트를 기술하도록 한다. 이는 추가적인 어드레스 라인을 필요로 하게 된다. 그러나, 기본 동작 모드는 데이지 체인에서의 어느 칩이 어드레싱되는 지를 기술하기 위해서 일부 어드레스 비트를 사용한다. 이들 칩은 바람직한 실시예에 따른 클러스터에서 칩을 액세스하는데 필요하지 않은 어드레스 비트를 선택하는데, 그 이유는 허브가 메모리 컨트롤러로부터 수시된 모든 어드레스를 디코드하되, 커맨드가 그 클러스터에 대하여 지정된 경우에만 특정 클러스터에 커맨드를 전송하기 때문이다. 여기에서, 클러스터 구성에서 칩을 기술할 필요가 없는 칩 선택 어드레스 비트는, 칩 내에서 인터리빙된 데이터의 2비트(대조적으로 칩 내에서는 8 바이트)를 기술하는데 필요한 추가적인 어드레스 데이터를 제공하는데 충분한 것으로 가정한다.
비록, 바람직한 실시예의 구성이 14 보조 비트까지 지원하더라도, 보조 비트를 모두 또는 임의 일부분을 사용할 필요는 없다. 추가적인 칩의 비용 절감을 원한다면, 변형적으로 대응하는 칩과 관련이 없는 보조 비트 위치의 일부 또는 모두를 남기는 것이 가능하다.
바람직한 실시예로서 본원에서 기술된 14 보조 비트에 대하여 다양한 사용이 이루어질 수 있고, 하나의 특정 애플리케이션은 당해 분야에서 숙련된 자에게 잘 알려진 잉여 메모리 칩의 지원에 관한 것이다. 잉여는 잉여 예비 칩으로서 각 클러스터에 39개 이상의 칩을 지정함으로써 지원된다. 클러스터의 임의의 칩에 칩 오동작이 검출된 경우, 오동작 칩에 배분된 데이터가 예비 칩에 배분될 수 있다. 필요에 따라, 사전에 오동작 칩에 기입된 데이터는 ECC를 사용하여 복구되거나 예비 칩에 재기입될 수 있다. 이러한 칩 저장 능력의 리맵핑(remapping)은 메모리 컨트롤러(401)에서 또는 허브(402)에서 수행될 수 있다.
본원에서 기술된 바와 같은 계층적 인터리빙 설계에 의해서 지원할 수 있는 하나의 가능한 메모리 아키텍처 변경으로서는, 메모리 컨트롤러 허브 버스 링크(405) 상에서 그리고 허브 칩 버스 링크(502) 상에서 각 커맨드에 의해서 전송되는 대용량 데이터를 들 수 있다. 상술한 각종 실시예에서, 각 판독 또는 기입 커맨드는 8 바이트의 판독 또는 기입 데이터를 전송하고, 보조 비트(총 78비트까지)를 부가하고 메모리 컨트롤러 허브 버스 링크(405) 상에서 6 버스 사이클을 필요로 한다. 각 데이터 액세스에 대한 사이클 수는 종종 버스트 레이트(burst rate)라고도 하고, 종래 데이지 체인식 구성에 대하여 4 또는 8 버스트 레이트가 일반적이다. 데이지 체인식 구성에서 버스트 레이트는 일반적으로 ECC(error-correcting code)에 의해서 제한되고, 바람직하게는 칩 킬(chip kill) 및 다른 팩터를 지원한다. 그러나, 본원에서 기술된 계층적 인터리빙 설계는 버스트 레이트가 높은 잉여를 포함하고 있다. 실제로, 단일 데이터 액세스에서 전송되는 데이터 량은 각 라인 사이즈만큼, 예를 들면 64 또는 128 바이트만큼 커질 수 있다.
각 데이터 액세스에서 대용량의 데이터를 전송함으로써 커맨드를 계속해서 반복할 필요가 없게 되고, 따라서 전송된 커맨드/어드레스 데이터의 량이 감소하게 된다. 이 감소에 의해서 커맨드/어드레스 데이터용 라인 수가 감소 되거나 및/또는 이들 라인의 주파수가 감소될 수 있다. 이 경우에, 상술한 바와 같이, 전용선보다는 오히려 커맨드/어드레스 및 기입 데이터를 위해 공유된 라인을 사용하는 것이 바람직할 수 있다.
예를 들면, 64 바이트의 판독 또는 기입 데이터가 각 데이터 액세스에 의해 전송되면, 상술한 바와 같이 버스 링크(405) 상의 13개의 데이터 라인은 데이터를 전송하기 위해 48 사이클이 필요해진다. 그러나, 커맨드/어드레스의 30비트만 전송에 필요하기 때문에, 30비트를 전송하기 위해서 48 사이클을 갖는 단일 커맨드/어드레스 라인이면 충분하다. (사실, 비트 수는, 64 바이트 경계에 배분되는 것을 가정하면, 각 라인당 64 바이트를 기술하는데 3개 미만의 어드레스 라인이 필요하기 때문에 감소될 수 있다.). 그러나, 이 경우에, 액세스 데이터의 어드레스를 알기 전에 대다수의 사이클을 수신 장치가 기다려야 하기 때문에, 커맨드/어드레스에 대한 단일 전용선을 사용하는 것은 바람직하지 않다. (가능하다면) 기입 데이터 다음에, 모든 라인을 사용하여 커맨드/어드레스 데이터가 먼저 전송하도록 모든 라인을 공유하는 것이 바람직하다. 액세스되는 동일량의 데이터에 대하여 전송에 필요한 버스 데이터의 총 량이 감소되기 때문에 요구되는 총 선의 수가 감소된다.
허브 칩 버스 링크(502)에 적용되는 것을 예로 들 수 있다. 예를 들면, 도 6의 구성이 액세스 당 64 바이트 데이터를 전송하는 메모리 아키텍처에 사용되면, 링크(601)는 바람직하게 커맨드/어드레스 및 데이터에 대하여 공유되는 멀티 라인 을 포함하고, 이 모두는 2 GT/s, 즉 메모리 버스 허브 링크(405)의 1/3 클록 주파수에서 동작할 수 있다. 먼저 커맨드/어드레스가 전송되고 다음에 데이터가 전송된다. 메모리 버스 허브 링크(405) 상에서 48 사이클은 각 데이터 액세스 동작에 필요하고, 1/3 주파수에서 동작하는 링크(601)는 16 사이클을 완료하고, 대략 30 비트의 커맨드/어드레스와 208 비트의 데이터 및 보조 비트를 전송해야 한다. 링크(601) 상에는 단지 15 라인만 필요하다.
마찬가지로, 각 링크(602, 603 및 604)는 동일하게 대략 30비트의 커맨드/어드레스 및 64비트의 데이터와 보조 비트를 전송해야 한다. 16 사이클이 가능하기 때문에, 각 링크(602, 603 및 604)에 최소 6라인이 필요하다. 그러나, 6 라인을 사용함으로써 대기 시간을 증가시키는 커맨드/어드레스를 모두 전송하는데 5 사이클이 걸리기 때문에, 더 큰 수(예를 들면, 9 또는 10 라인)를 사용하는 것이 바람직하다. 라인 수는 각 칩 상에서 출력 포트를 이용할 수 있는 총 수 31 내에서 머무르도록 10으로 제안되어야 한다. 마찬가지 분석은 링크(605, 606. 및 607)에 적용된다.
물론, 이러한 구성에서, 칩의 내부 로직은 다른 라인 용도를 지원하고, 커맨드/어드레스 정보를 버퍼링하기 위해서 필요에 따라서 더욱 복잡해질 수 있다. 본원에서 상술한 각종 구성과 비교하면, 커맨드/어드레스 데이터를 전송하기 위해 더 많은 사이클(또는 더 느린 사이클)이 요구되어, 상술한 바와 같이 메모리 액세스 커맨드 당 더 큰 데이터량의 공급이 대기 시간을 증가시킬 수 있지만, 요구되는 라인 수를 주일 수 있기 때문에, 메모리 컨트롤러 및/또는 허브가 더욱 용이하게 더 큰 메모리 구성을 지원할 수 있고, 또한, 일부 라인의 버스 주파수를 낮춤으로써 소비 전력을 낮출 수 있다.
도 6 내지 도 8을 참조하여 기술한 각종 변형에서, 아웃바운드 커맨드/어드레스 및 기입 데이터는 메모리 칩의 트리의 다중 레벨로 다운 전달된다. 예를 들면, 도 6의 구성에서, 아웃바운드 커맨드/어드레스 및 기입 데이터가 먼저 허브로부터 칩(202A)으로 먼저 전송되고(제 1 레벨에서), 그 다음, 칩(202B, 202C, 및202D)에 전송되고(제 2 레벨에서), 그 다음 제 3 레벨에서 잔여 칩으로 전송된다. 각 연속적인 레벨은 메모리 액세스 커맨드를 전달시에 부가적인 대기 시간을 나타낸다. 다른 수의 레벨에서 클러스터의 칩을 구성하는 것이 가능해진다. 예를 들면, 클러스터를 3개의 서브 클러스터로 분할하고 3개의 서브 클러스터 모두에 동시에 별도의 커맨드/어드레스 데이터를 구동시키는 대신에, 모든 데이터를 단일 칩에 제공하고 이를 단일 클러스터의 연속 레벨로 재전송하는 것이 가능하다. 이 접근 방법은 허브에서 필요한 라인의 수를 감소시킬 수 있지만 대기 시간 및 소비 전력의 증가로 비용이 상승한다.
도 6 내지 도 8을 참조하여 기술한 각종 구성에서, 커맨드/어드레스 데이터와 동일한 방식으로 트리 아래로 기입 데이터가 연속적으로 전달되는 것으로 가정한다. 그러나, 기입 데이터의 각 비트가 단일 목적지만을 가지기 때문에, 변형적으로 메모리 모듈과 기입 데이터용 허브 사이에 직접 링크를 제공하고 트리 아래로 커맨드/어드레스만 전달시키는 것이 가능하다. 이러한 변경은 허브 또는 메모리 칩 중 어느 하나 또는 둘 다에서 버퍼링 및 내부 로직의 복잡도를 증가시킬 수 있 다. 허브에서 출력 라인의 수를 반드시 줄일 필요는 없지만, 트리 아래로 기입 데이터를 재전송하기 위해 칩에서 필요한 I/O 라인의 수를 감소시킬 필요가 있고, 이에 의해서 전력 소비가 절감되고, 부가적인 구성에 가요성을 제공하는 것이 가능하다. 그러나, 이러한 변경은 기입 데이터 및 커맨드/어드레스 데이터가 동일한 공유 라인 상에서 전송되어서 비현실적일 수도 있음을 알 수 있다.
비록, 도 6-8은 본 발명의 일반적인 원리를 채용한 특정 구성을 나타내고 있지만, 메모리 칩의 다수의 변형적인 구성이 본 발명에 따라서 사용될 수 있음이 명백하다. 본원에서 기술된 각종 변경에 부가하여, 임의의 후속 파라미터가 본 발명의 범주 내에서 변경될 수 있다: 즉, 클러스터가 서브 클러스터를 포함할 수도 있고 하지 않을 수도 있으며, 서브 클러스터의 수가 변경될 수 있고, 클러스터 또는 서브 클러스터 내의 칩의 수가 변경될 수 있고, 커맨드/어드레스 또는 데이터 라인의 수가 변경될 수 있고, 메모리 액세스 당 버스 주파수 및/또는 버스 사이클 수가 변경될 수 있고, 메모리 액세스 당 데이터 비트 및/또는 커맨드/어드레스 비트의 수가 변경될 수 있고, 신호를 클러스터에 전달하는 칩의 트리에서 레벨의 수가 변경될 수 있고, 데이터 인터리브의 입도가 변경될 수 있고, 메모리 칩에서 포트의 수 및 기능이 변경될 수 있는 등 변경이 이루어질 수 있다.
본원에서 기술된 바람직한 실시예에서, 데이지 체인에 접속된 다중 허브 재구동 칩이 메모리 칩의 다중 클러스터를 액세스하는데 사용될 수 있다. 이 구성은 각 메모리 컨트롤러 버스 포트에서 다수의 메모리 칩을 지원하는데 채용된다. 그러나, 이는 변형적으로 허브 재구동 칩을 사용하지 않고, 메모리 칩 클러스터 또는 서브 클러스터를 메모리 컨트롤러에 직접 접속하는 것을 가능하게 한다. 이러한 변형적인 방법은 일반적으로 바람직한 실시예의 구성보다 작은 수의 메모리 칩을 지원한다.
본원에서 기술한 바람직한 실시예에서, 다중 모드 메모리 칩이 이용되며, 적어도 하나의 동작 모드에서, 칩은 종래 데이지 체인식 구성에서의 기능을 행할 수 있고, 적어도 하나의 다른 동작 모드에서, 칩은 본원에서 기술한 바와 같은 계층적 메모리 구성에서의 기능을 행할 수 있다. 그러나, 변형적으로, 계층적 구성을 위해 특별히 설계된 단일 모드 메모리 칩을 사용하거나, 또는 상술한 바와 같은 데이지 체인식 구성을 지원하지 않는 메모리 칩을 사용하는 것도 가능하다.
발명의 특정 실시예를 임의의 변형예와 함께 개시하였지만, 당해 기술 분야에서 숙련된 자에 의해서 형태 및 상세의 추가적인 변경이 이하 청구범위의 범주 내에서 이루어질 수 있는 것으로 인식되어야 한다.

Claims (10)

  1. 제 1 메모리 모듈로서,
    데이터를 저장하는 복수의 어드레스 가능한 저장 위치와,
    상기 어드레스 가능한 저장 위치에 저장되는 데이터에 액세스하도록 데이터 액세스 커맨드를 수신하는 제 1 인터페이스와,
    적어도 하나의 동작 모드에서 지원하는 제어 로직으로서, 상기 제 1 메모리 모듈은 상기 제 1 인터페이스에서 수신되는 적어도 일부의 상기 데이터 액세스 커맨드의 복수의 사본을 재송신하고, 각각의 사본은 복수의 제 2 인터페이스의 각 인터페이스를 사용하여 송신되며, 각각의 사본은 상기 제 1 메모리 모듈 이외의 다른 하나 이상의 메모리 모듈 각각에 송신되는 제어 로직
    을 포함하는 제 1 메모리 모듈.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 동작 모드에서 상기 제 1 메모리 모듈은 상기 제 1 인터페이스에서 수신되는 상기 데이터 액세스 커맨드 각각의 복수의 사본을 재송신하고, 각각의 사본은 복수의 상기 제 2 인터페이스의 각 인터페이스를 사용하여 송신되며, 각각의 사본은 상기 제 1 메모리 모듈 이외의 다른 하나 이상의 메모리 모듈 각각에 송신되는 것인, 제 1 메모리 모듈.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 동작 모드에서, 상기 제 1 인터페이스에 의해 수신되는 상기 데이터 액세스 커맨트 각각은 한 세트의 메모리 모듈 내의 데이터 위치에 액세스하고, 상기 세트는 복수의 메모리 모듈을 포함하며, 상기 세트는 상기 제 1 메모리 모듈, 및 상기 데이터 액세스 커맨드의 사본이 상기 제 2 인터페이스로부터 재송신되는 각각의 메모리 모듈을 포함하는 것인, 제 1 메모리 모듈.
  4. 제 1 항에 있어서,
    상기 제어 로직은 제 1 모드 및 제 2 모드를 포함하는 복수의 동작 모드를 지원하며, 상기 제 1 모드에서 상기 제 1 메모리 모듈은 상기 제 1 인터페이스에서 수신되는 적어도 일부의 상기 데이터 액세스 커맨드의 복수의 사본을 재송신하고, 상기 제 2 모드에서 상기 제 1 메모리 모듈은 임의의 상기 데이터 액세스 커맨드의 복수의 사본을 재송신하지 않는 것인, 제 1 메모리 모듈.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 동작 모드에서, 상기 제 1 인터페이스는 상기 제 1 메모리 모듈을 상기 데이터 액세스 커맨드가 수신되는 장치와 접속하는 포인트-투-포인트(point-to-point) 통신 링크에 연결하기 위한 것이며,
    상기 적어도 하나의 동작 모드에서, 상기 제 2 인터페이스 각각은 상기 제 1 메모리 모듈을 각각의 또 다른 메모리 모듈과 접속하는 포인트-투-포인트 통신 링 크에 연결하기 위한 것인, 제 1 메모리 모듈.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 동작 모드에서, 상기 제 1 인터페이스는 N개의 연속하는 버스 사이클 ―N은 1보다 큼― 각각에서 데이터 액세스 커맨드의 각 부분을 수신하고,
    상기 적어도 하나의 동작 모드에서, 상기 제 2 인터페이스 각각은 M개의 버스 사이클의 지연 후 N개의 연속하는 버스 사이클 - 1 ≤ M < N - 각각에서 상기 데이터 액세스 커맨드의 각 부분을 송신하는 것인, 제 1 메모리 모듈.
  7. 제 1 메모리 모듈로서,
    데이터를 저장하는 복수의 어드레스 가능한 저장 위치와,
    상기 어드레스 가능한 저장 위치에 저장되는 데이터에 액세스하도록 데이터 액세스 커맨드를 수신하는 제 1 인터페이스와,
    제 1 모드 및 제 2 모드를 포함하는 복수의 동작 모드를 지원하는 제어 로직
    을 포함하고,
    상기 제 1 동작 모드에서, 상기 제 1 메모리 모듈은 상기 제 1 인터페이스에서 수신되는 적어도 일부의 상기 데이터 액세스 커맨드의 복수의 사본을 재송신하고, 각각의 사본은 복수의 제 2 인터페이스의 각 인터페이스를 사용하여 상기 제 1 메모리 모듈 이외의 다른 하나 이상의 메모리 모듈 각각에 송신되며,
    상기 제 2 동작 모드에서, 상기 제어 로직은 상기 제 1 인터페이스에 의해 수신되는 상기 데이터 액세스 커맨드 각각이 상기 제 1 메모리 모듈 내의 데이터 저장 위치를 어드레싱하는지의 여부를 판단하여, (a) 상기 데이터 액세스 커맨드가 상기 제 1 메모리 모듈 내의 데이터 저장 위치를 어드레싱하면 상기 제 1 메모리 모듈 내의 대응하는 데이터 저장 위치에 액세스하고, (b) 상기 데이터 액세스 커맨드가 상기 제 1 메모리 모듈 내의 데이터 저장 위치를 어드레싱하지 않으면 또 다른 메모리 모듈에 상기 데이터 액세스 커맨드의 단일 사본을 재송신하는 것인, 제 1 메모리 모듈.
  8. 제 7 항에 있어서,
    상기 제 1 동작 모드에서, 상기 제 1 메모리 모듈은 상기 제 1 인터페이스에서 수신되는 상기 데이터 액세스 커맨드 각각의 복수의 사본을 재송신하고, 각각의 사본은 복수의 상기 제 2 인터페이스의 각 제 2 인터페이스를 사용하여 상기 제 1 메모리 모듈 이외의 다른 하나 이상의 메모리 모듈 각각에 송신되는 것인, 제 1 메모리 모듈.
  9. 제 7 항에 있어서,
    상기 제 2 동작 모드에서, 상기 제 1 메모리 모듈은 메모리 모듈의 데이지 체인식(daisy-chained) 구성에 사용되고, 제 1 세트의 I/O 포트는 메모리 모듈의 데이지 체인에의 액세스를 제어하는 액세스 제어 모듈 중 하나로부터 아웃바운 드(outbound) 데이터를 수신하기 위한 것이며, 상기 데이지 체인은 상기 제 1 메모리 모듈, 및 상기 메모리 모듈의 데이지 체인 내의 이전 메모리 모듈을 포함하고, 상기 제 2 세트의 I/O 포트는 상기 제 1 세트의 I/O 포트에서 수신되는 아웃바운드 데이터를 상기 메모리 모듈의 데이지 체인 내의 다음 메모리 모듈에 재송신하기 위한 것이며, 제 3 세트의 I/O 포트는 상기 메모리 모듈의 데이지 체인 내의 상기 다음 메모리 모듈로부터 인바운드(inbound) 데이터를 수신하기 위한 것이며, 제 4 세트의 I/O 포트는 상기 제 1 세트의 I/O 포트에서 수신되는 인바운드 데이터를 재송신하고 상기 제 1 메모리 모듈에서 발신되는 인바운드 데이터를 상기 액세스 제어 모듈 및 상기 메모리 모듈의 데이지 체인 내의 상기 이전 메모리 모듈 중 하나에 송신하기 위한 것이며, 상기 제 1 세트는 상기 제 2 세트와 동일한 개수의 포트를 갖고, 상기 제 3 세트는 상기 제 4 세트와 동일한 개수의 포트를 갖는 것인, 제 1 메모리 모듈.
  10. 제 7 항에 있어서,
    상기 제 1 동작 모드에서, 상기 제 1 인터페이스에 의해 수신되는 상기 데이터 액세스 커맨드 각각은 한 세트의 메모리 모듈 내의 데이터 위치에 액세스하고, 상기 세트는 복수의 메모리 모듈을 포함하며, 상기 세트는 상기 제 1 메모리 모듈, 및 상기 데이터 액세스 커맨드의 사본이 상기 제 2 인터페이스로부터 재송신되는 각각의 메모리 모듈을 포함하는 것인, 제 1 메모리 모듈.
KR1020097016070A 2007-06-27 2008-06-25 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩 KR101107349B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/769,001 2007-06-27
US11/769,001 US7822936B2 (en) 2007-06-27 2007-06-27 Memory chip for high capacity memory subsystem supporting replication of command data
PCT/EP2008/058082 WO2009000857A1 (en) 2007-06-27 2008-06-25 Memory chip for high capacity memory subsystem supporting replication of command data

Publications (2)

Publication Number Publication Date
KR20090115130A true KR20090115130A (ko) 2009-11-04
KR101107349B1 KR101107349B1 (ko) 2012-01-19

Family

ID=39791330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016070A KR101107349B1 (ko) 2007-06-27 2008-06-25 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩

Country Status (8)

Country Link
US (1) US7822936B2 (ko)
EP (1) EP2160687B1 (ko)
JP (1) JP4824126B2 (ko)
KR (1) KR101107349B1 (ko)
CN (1) CN101681322B (ko)
AT (1) ATE479947T1 (ko)
DE (1) DE602008002436D1 (ko)
WO (1) WO2009000857A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US9117496B2 (en) 2012-01-30 2015-08-25 Rambus Inc. Memory device comprising programmable command-and-address and/or data interfaces
US8788748B2 (en) 2012-03-22 2014-07-22 International Business Machines Corporation Implementing memory interface with configurable bandwidth
CN103150006A (zh) * 2013-03-25 2013-06-12 西安华芯半导体有限公司 Dram存储器的省电方法
US9324389B2 (en) * 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
CN105122227B (zh) * 2013-05-29 2018-10-23 桑迪士克科技有限责任公司 用于nand存储器系统的高性能系统拓补
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9703702B2 (en) * 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
CN104268121B (zh) * 2014-09-23 2017-08-11 浪潮(北京)电子信息产业有限公司 超大规模芯片中访问寄存器的方法及系统
TWI588658B (zh) * 2015-10-20 2017-06-21 旺宏電子股份有限公司 I/o匯流排共用記憶體系統
US9841922B2 (en) * 2016-02-03 2017-12-12 SK Hynix Inc. Memory system includes a memory controller

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893927A (en) * 1996-09-13 1999-04-13 International Business Machines Corporation Memory device having programmable device width, method of programming, and method of setting device width for memory device
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
JP2002063791A (ja) * 2000-08-21 2002-02-28 Mitsubishi Electric Corp 半導体記憶装置およびメモリシステム
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
DE10318603B4 (de) * 2003-04-24 2005-03-10 Infineon Technologies Ag Eingangsempfängerschaltung
US20040243769A1 (en) * 2003-05-30 2004-12-02 Frame David W. Tree based memory structure
US7120727B2 (en) * 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
JP4741226B2 (ja) * 2003-12-25 2011-08-03 株式会社日立製作所 半導体メモリモジュール、およびメモリシステム
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US20060036826A1 (en) 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
KR101271245B1 (ko) * 2005-04-21 2013-06-07 바이올린 메모리 인코포레이티드 상호접속 시스템
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US20060245226A1 (en) * 2005-05-02 2006-11-02 Inphi Corporation Fully buffered DIMM architecture and protocol
US7397684B2 (en) * 2005-09-15 2008-07-08 Infineon Technologies, Ag Semiconductor memory array with serial control/address bus
US7411843B2 (en) * 2005-09-15 2008-08-12 Infineon Technologies Ag Semiconductor memory arrangement with branched control and address bus
US20070079057A1 (en) * 2005-09-30 2007-04-05 Hermann Ruckerbauer Semiconductor memory system and memory module
US7378868B2 (en) * 2006-01-19 2008-05-27 Altera Corporation Modular I/O bank architecture
DE102006045113B3 (de) * 2006-09-25 2008-04-03 Qimonda Ag Speichermodul-System, Speichermodul, Buffer-Bauelement, Speichermodul-Platine, und Verfahren zum Betreiben eines Speichermoduls

Also Published As

Publication number Publication date
JP4824126B2 (ja) 2011-11-30
DE602008002436D1 (de) 2010-10-14
WO2009000857A1 (en) 2008-12-31
JP2010531501A (ja) 2010-09-24
US20090006772A1 (en) 2009-01-01
US7822936B2 (en) 2010-10-26
CN101681322B (zh) 2012-09-05
EP2160687A1 (en) 2010-03-10
CN101681322A (zh) 2010-03-24
ATE479947T1 (de) 2010-09-15
KR101107349B1 (ko) 2012-01-19
EP2160687B1 (en) 2010-09-01

Similar Documents

Publication Publication Date Title
KR101107349B1 (ko) 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩
US7921264B2 (en) Dual-mode memory chip for high capacity memory subsystem
CN101236540B (zh) 选择预取模式的方法、集线器器件、存储器系统及子系统
US7765368B2 (en) System, method and storage medium for providing a serialized memory interface with a bus repeater
US7392337B2 (en) System, method and storage medium for a memory subsystem command interface
JP5078994B2 (ja) 自動計算機のためのメモリ・システム
US8108647B2 (en) Digital data architecture employing redundant links in a daisy chain of component modules
US7925825B2 (en) System to support a full asynchronous interface within a memory hub device
US20090190429A1 (en) System to Provide Memory System Power Reduction Without Reducing Overall Memory System Performance
US20090193201A1 (en) System to Increase the Overall Bandwidth of a Memory Channel By Allowing the Memory Channel to Operate at a Frequency Independent from a Memory Device Frequency
US8037258B2 (en) Structure for dual-mode memory chip for high capacity memory subsystem
US7818512B2 (en) High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules
US8037270B2 (en) Structure for memory chip for high capacity memory subsystem supporting replication of command data
CN101836194A (zh) 控制数据信道的优化解决方案
US7809913B2 (en) Memory chip for high capacity memory subsystem supporting multiple speed bus
US8037272B2 (en) Structure for memory chip for high capacity memory subsystem supporting multiple speed bus
US8019949B2 (en) High capacity memory subsystem architecture storing interleaved data for reduced bus speed
US20090006774A1 (en) High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus
US7996641B2 (en) Structure for hub for supporting high capacity memory subsystem
US7921271B2 (en) Hub for supporting high capacity memory subsystem

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: 20141230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190104

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 9