KR101925266B1 - 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들 - Google Patents

하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들 Download PDF

Info

Publication number
KR101925266B1
KR101925266B1 KR1020187021869A KR20187021869A KR101925266B1 KR 101925266 B1 KR101925266 B1 KR 101925266B1 KR 1020187021869 A KR1020187021869 A KR 1020187021869A KR 20187021869 A KR20187021869 A KR 20187021869A KR 101925266 B1 KR101925266 B1 KR 101925266B1
Authority
KR
South Korea
Prior art keywords
memory
data handling
data
handling device
requests
Prior art date
Application number
KR1020187021869A
Other languages
English (en)
Other versions
KR20180088526A (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 KR20180088526A publication Critical patent/KR20180088526A/ko
Application granted granted Critical
Publication of KR101925266B1 publication Critical patent/KR101925266B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/1673Details of memory controller using buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C21/00Digital stores in which the information circulates continuously
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Abstract

시스템 온 칩(SoC; System on a Chip)은 로컬 메모리 패킷들 및 시스템 상호 접속 패킷들을 전달하기 위한 두 개의 패킷화된 메모리 버스를 포함한다. 데이터 프로세싱 시스템의 인 사이투(in situ) 구성에서, 두 개 이상의 SoC는 하나 이상의 하이브리드 메모리 큐브(HMC; hybrid memory cube)와 결합된다. 메모리 패킷들은 소정의 SoC의 메모리 도메인에서의 로컬 HMC들과의 통신을 가능하게 한다. 시스템 상호 접속 패킷들은 SoC들 간 통신 및 메모리 도메인들 간 통신을 가능하게 한다. 전용 라우팅 구성에서, 시스템에서의 각 SoC는 로컬 HMC들을 어드레싱하기 위한 이 자체의 메모리 도메인 및 HMC 허브들, HMC 메모리 디바이스들, 또는 시스템 상호 접속 도메인에 연결되는 다른 SoC 디바이스들을 어드레싱하기 위한 개별 시스템 상호 접속 도메인을 갖는다.

Description

하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들{INTERCONNECT SYSTEMS AND METHODS USING HYBRID MEMORY CUBE LINKS}
우선권 주장
본 출원은 "하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들"에 대해, 2014년 5월 9일에 출원된, 미국 특허 출원 번호 14/273,867호의 출원일에 대한 혜택을 주장한다.
기술분야
본 발명은 일반적으로 디바이스들의 상호 접속 및 관련 방법들, 이를테면 반도체 메모리 디바이스들, 프로세싱 디바이스들, 메모리 시스템들, 및 프로세싱 시스템들에 관한 것이다. 보다 상세하게는, 본 발명은 하이브리드 메모리 큐브 링크들을 이용하는 그러한 디바이스들 및 시스템들의 상호 접속에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 디바이스들 내의 반도체 집적 회로들 및/또는 외부 착탈가능한 디바이스들로서 많은 데이터 프로세싱 시스템들에 제공된다. 그 중에서도, 많은 상이한 유형의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SRDAM), 플래시 메모리, 및 저항 가변 메모리의 을 포함하여 메모리가 있다.
종래 메모리 시스템들은 통상적으로 하나 이상의 메모리 디바이스, 이를테면 듀얼 인라인 메모리 모듈(DIMM; Dual In-line Memory Module)라는 이름의 인쇄 회로 기판(PCB) 상에 장착되는, DRAM으로 구성된다. 메모리 시스템은 메모리 제어 서브시스템 또는 중앙 처리 장치(CPU) 또는 마이크로프로세서와 통신한다. 몇몇 구성에서, 메모리 제어기는 프로세서와 동일한 물리적 칩으로 물리적으로 포함된다. 다른 구성들에서, 메모리 제어기는 메모리 제어기 허브를 포함하는 많은 논리적 구성요소 중 단지 하나일 수 있다. 메모리 제어기 허브는 통상적으로, 보통 상이한 유형들의 반도체 메모리 또는 상이한 용도들을 이용하는, 완전히 개별 및 별개의 메모리 어드레스 공간들을 지원한다. 예를 들어, 메모리 제어기는 그래픽 애플리케이션들을 위한 비디오 DRAM, 디스크 드라이브 가속을 위한 플래시 메모리, 및 프로세서의 주 외부 메모리로서의 상품 DRAM의 이용을 지원할 수 있다.
메모리 프로토콜들, 전통적인 메모리 서브시스템 아키텍처들, 표준들, 프로세서 특정 메모리 액세스 모델들, 최종 사용자 구성 가능 요건들, 전력 제약들, 또는 이들 제한들의 조합들에 의해 부과되는 제한들은 성능을 감소시키는 것과 같은 방식으로 상호 작용하는 경향이 있고 그 결과 비-최적의 메모리 서브시스템들을 야기한다. 최근, 메모리 제어 허브들(MCH들; Memory Control Hubs)이 프로세서들 및 메모리 서브시스템들 간의 메모리 성능을 향상시키기 위해 제안되었다. 그러나, MCH들은 주로 단일 프로세서를 위한 메모리 서브시스템으로 정의된다. 많은 범용 시스템 아키텍처는 각각이 이들 자체의 메모리 도메인을 가질 수 있는, 다수의 프로세서를 포함한다. 보통 이들 다수의 프로세서는 자기들끼리 통신해야 한다. 그 결과, 사설 프로세서 통신 버스들이 시스템 상호 접속을 향상시키기 위해 제안되었다.
그러나, 현 세대의 범용 시스템 상호 접속 사양들은 주 메모리가 이를테면 HMC 사양을 갖게 제안되는 고 대역폭 디바이스들에 기초하는 시스템들에서 적절한 균형을 유지하기에 충분한 기능성, 유연성 및 성능을 제공하지 않는다. 시스템 상호 접속을 위해 초당 수백 기가바이트의 로컬 메모리 대역폭에 대한 액세스를 유지하는 시스템 아키텍처들을 찾으나, 이 대역폭 중 적은 부분(대략 1/10)을 제공한다는 것이 사실이다. 이 결과는 매우 불균형한 시스템이다.
이 현상은 특히 다수의 프로세싱 소켓/디바이스에 분배되는 다수의 실행 스레드(예를 들어, 태스크)를 갖는 애플리케이션들에 분명히 나타난다. 코어 프로세서가 기능적 데이터 캐싱을 지원하는 경우, 프로세서 소켓들 간에 존재해야 하는 캐시 일관성 메커니즘은 시스템 상호 접속 상의 대역폭보다 자릿수가 더 클 수 있는 로컬 메모리 대역폭을 지원해야 한다. 그 결과는 매우 불균형한 시스템이다.
보다 균형적인 시스템 대역폭을 제공하고 그러한 상호 접속 시스템들을 설계하는데 요구되는 복잡도를 감소시킬 수 있는 상호 접속 시스템들 및 방법들에 대한 요구가 존재한다.
도 1은 추상화된 메모리 프로토콜을 이용하는 메모리 버스 상에서 동작하기 위한 디바이스의 예로서 하이브리드 메모리 큐브를 포함하는 데이터 프로세싱 시스템의 도해이다.
도 2는 하이브리드 메모리 큐브 내 DRAM들의 가능한 분할을 예시한다.
도 3은 하이브리드 메모리 큐브 내 DRAM들의 논리적 분할을 예시한다.
도 4는 링크 인터페이스들을 위한 그리고 하이브리드 메모리 큐브 내 DRAM들을 제어하는 로직 베이스를 예시한다.
도 5는 본 발명의 몇몇 실시예에 따른 데이터 취급 디바이스에 존재할 수 있는 몇몇 요소를 예시한다.
도 6은 다양한 데이터 취급 디바이스 및 메모리 디바이스 사이에 인 사이투(in-situ) 라우팅을 이용하고 메모리 디바이스들 사이에 스파스(sparse) 라우팅을 제시하는 시스템의 도해를 예시한다.
도 7은 다양한 데이터 취급 디바이스 및 메모리 디바이스 사이에 인 사이투 라우팅을 이용하고 메모리 디바이스들 사이에 댄스(dense) 라우팅을 제시하는 시스템의 도해를 예시한다.
도 8은 다양한 데이터 취급 디바이스 및 메모리 디바이스 사이에 전용 라우팅을 이용하는 시스템의 도해를 예시한다.
도 9는 도 8의 전용 라우팅과 함께 시스템들에서 이용될 수 있는 다양한 예시적인 토폴로지를 예시한다.
이하의 상세한 설명에서, 여기의 일부를 형성하고, 본 발명이 실시될 수 있는 특정한 예시적인 실시예들이 예로서 도시된, 첨부 도면들이 참조된다. 이들 실시예는 당해 기술분야의 통상의 기술자가 본 발명을 실시할 수 있게 하기 위해 충분히 상세하게 설명된다. 그러나, 다른 실시예들이 이용될 수 있고, 구조, 물질, 및 프로세스 변경들이 본 개시의 범위를 벗어나지 않고 이루어질 수 있다. 여기에 제공된 예시들은 임의의 특정한 방법, 시스템, 디바이스, 또는 구조의 실제 뷰들로 의도되지 않고, 본 발명의 실시예들을 설명하기 위해 채용되는 단지 이상화된 표현들이다. 여기에 제공된 도면들은 반드시 일정한 축척으로 그려진 것은 아니다. 다양한 도면들에서의 유사한 구조들 또는 구성요소들은 독자의 편의를 위해 동일한 또는 유사한 넘버링을 보유할 수 있으나; 넘버링의 유사성은 구조들 또는 구성요소들이 크기, 구도, 구성, 또는 임의의 다른 속성이 반드시 동일하다는 것을 의미하지는 않는다.
요소들, 회로들, 모듈들, 및 기능들은 본 개시를 필요 이상으로 상세하여 모호하게 하지 않기 위해 블록도 형태로 도시될 수 있다. 게다가, 도시되고 설명된 특정한 구현예들은 단지 대표적이고 여기에 다르게 명시되지 않는 한 본 발명을 구현하기 위한 단지 하나의 방법으로 간주되지 않아야 한다. 추가로, 블록 정의들 및 다양한 블록들 간 로직의 분할은 특정한 구현예의 대표적인 것이다. 당해 기술분야의 통상의 기술자에게 본 개시가 많은 다른 분할 솔루션에 의해 실시될 수 있다는 것이 분명할 것이다. 대부분, 타이밍 고려사항들 및 기타에 관한 세부사항들은 그러한 세부사항들이 본 개시의 완전한 이해를 얻는데 필요하지 않고 관련 기술분야에서의 통상의 기술자들의 능력들 내에 있는 경우 생략되었다.
통상의 기술자들은 여기에 개시된 실시예들과 관련되어 설명된 다양한 예시적인 논리적 블록, 모듈, 회로, 및 알고리즘 동작이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수 있다는 것을 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 호환성을 분명히 예시하기 위해, 다양한 예시적인 구성요소, 블록, 모듈, 회로, 및 동작은 이들의 기능면에서 일반적으로 설명된다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정한 애플리케이션 및 전체 시스템 상에 부과되는 설계 제약들에 의존적이다. 통상의 기술자들은 각 특정한 애플리케이션에 따라 달라지는 방식으로 설명된 기능을 구현할 수 있으나, 그러한 구현 결정들은 여기에 설명된 실시예들의 범위에서 벗어남을 야기하는 것으로서 해석되지 않아야 한다.
하드웨어로 구현될 때, 여기에 개시된 실시예들은 여기에 설명된 기능들을 수행하도록 설계된 범용 프로세서, 전용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 다른 프로그램 가능 로직 디바이스, 별개의 게이트 또는 트랜지스터 로직, 별개의 하드웨어 구성요소들, 또는 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있으나, 대안예에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계일 수 있다. 여기에 설명된 실시예들을 위한 프로세스들을 수행하기 위한 소프트웨어를 실행할 때, 범용 프로세서는 그러한 프로세스들을 수행하기 위해 구성된 전용 프로세서인 것으로 고려되어야 한다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 관련된 하나 이상의 마이크로프로세서, 또는 임의의 다른 그러한 구성으로 구현될 수 있다.
덧붙여, 실시예들은 플로우차트, 플로우 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로서 도시되는 프로세스의 면에서 설명될 수 있다는 것이 주의된다. 플로우차트가 순차적 프로세스들로서의 동작들을 설명할 수 있지만, 이들 동작의 많은 동작은 다른 순서로, 병렬적으로, 또는 실질적으로 동시에 수행될 수 있다. 덧붙여, 동작들의 순서는 재배열될 수 있다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수 있다. 뿐만 아니라, 여기에 개시된 방법들은 하드웨어, 소프트웨어, 또는 양자로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독 가능한 매체 상에 하나 이상의 지시 또는 코드로 저장되거나 전송될 수 있다. 컴퓨터 판독 가능한 매체는 하나의 장소에서 다른 장소로 컴퓨터 프로그램의 이동을 가능하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체 및 통신 매체 양자를 포함한다.
당해 기술분야에서의 통상의 기술자들은 정보 및 신호들이 다양한 상이한 기술 중 임의의 기술을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 본 설명 전체에 걸쳐 언급될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기 장들 또는 입자들, 광학 필드들 또는 입자들, 또는 이들의 임의의 조합에 의해 표현될 수 있다. 몇몇 도면은 신호들을 제시 및 설명의 명확성을 위해 단일 신호로서 예시할 수 있다. 당해 기술분야에서의 통상의 기술자에 의해 신호는 신호들을 전달하기 위한 버스를 나타낼 수 있되, 버스는 다양한 비트 폭을 가질 수 있음이 이해될 것이다.
여기에서 이를테면 "제1," "제2," 및 기타를 사용하는 요소에 대한 임의의 언급은 그러한 제한이 명시적으로 언급되지 않는 한, 이들 요소의 수량 또는 순서를 제한하지 않는 것으로 이해되어야 한다. 오히려, 이들 지정은 여기에서 두 개 이상의 요소 또는 요소의 인스턴스들을 구별하는 편리한 방법으로 사용될 수 있다. 따라서, 제1 및 제2 요소들에 대한 언급은 단지 두 개의 요소가 거기서 채용될 수 있다거나 제1 요소는 반드시 몇몇 방식으로 제2 요소에 선행해야 한다는 것을 의미하지 않는다. 덧붙여, 다르게 서술되지 않는 한, 요소들의 세트는 하나 이상의 요소를 포함할 수 있다.
여기에 설명되는 요소들은 동일한 요소의 다수의 인스턴스를 포함할 수 있다. 이들 요소는 총칭적으로 수치 지정자(예를 들어, 110)에 의해 표시되며, 구체적으로 알파벳 지정자가 뒤따르는 수치 지정자(예를 들어, 110A) 또는 "대쉬"를 앞세우는 수치 지정자(예를 들어, 110-1)에 의해 표시될 수 있다. 이하의 설명의 용이함을 위해, 대부분 요소 번호 지정자들은 요소들이 도입되거나 가장 잘 논의되는 도면의 번호로 시작된다. 따라서, 예를 들어, 도 1 상에서의 요소 식별자들은 주로 수치 형식 1xx일 것이며, 도 4 상에서의 요소들은 주로 수치 형식 4xx일 것이다.
여기에 사용될 때, 주어진 파라미터, 속성, 또는 조건과 관련하여 용어 "실질적으로"는 당해 기술분야에서의 통상의 기술자가 이를테면 허용 가능한 제조 공차들 내, 작은 정도의 변형이 충족되는 것으로 이해하는 정도를 의미하고 포함한다. 예로서, 실질적으로 충족되는 특정한 파라미터, 속성, 또는 조건에 따라, 파라미터, 속성, 또는 조건은 적어도 90% 충족, 적어도 95% 충족, 또는 심지어 적어도 99% 충족될 수 있다.
여기에 사용될 때, 임의의 관계적 용어, 이를테면 "~ 위," "~아래," "~상," "~밑," "상측," "하측" 등은 본 개시 및 첨부 도면들을 이해하는데 있어서 명확성 및 편의성을 위해 사용되고 문맥이 분명히 다르게 표시하는 경우를 제외하고는, 임의의 특정한 우선, 배향, 또는 순서를 암시하거나 이에 의존적이지 않다.
요소가 다른 요소 "상에 있는," "에 연결되는," 또는 "에 결합되는" 것으로 언급될 때, 그것은 직접적으로 다른 요소 또는 개재되는 요소들 상에 있거나, 연결되거나, 또는 결합될 수 있는 것으로 이해될 것이다. 그에 반해, 요소가 다른 요소 "상에 직접적으로," "에 직접적으로 연결되는," 또는 "에 직접적으로 결합되는" 것으로 언급될 때에는, 어떠한 개재하는 요소들 또는 층들도 존재하지 않는 것이다. 여기에 사용될 때, 용어 "및/또는"은 다수의 나열된 관련 항목의 임의의 그리고 모든 조합을 포함한다.
본 개시는 보다 균형적인 시스템 대역폭을 제공하고 그러한 상호 접속 시스템들의 설계 및 사용의 복잡도 감소를 가능하게 함으로써 메모리 서브시스템들을 개선하기 위한 방법들 및 장치럴 설명한다.
도 1은 데이터 취급 디바이스(500)와 통신하기 위해 추상화된 메모리 프로토콜(130)을 이용하는 메모리 버스 상에서 동작하기 위한 디바이스의 예로서 하이브리드 메모리 큐브 디바이스(200)를 포함하는 데이터 프로세싱 시스템(100)의 도해이다. 설명의 용이함을 위해, 본 개시는 HMC 프로토콜 버스들에 초점을 맞춘다. 그러나, 본 개시의 혜택을 갖는 당해 기술분야에서의 통상의 기술자들은 본 개시의 실시예들이 데이터 버스 상의 프로토콜 및 데이터를 유지하는 디바이스들 간 추상화를 포함하는 다른 고속 데이터 버스들로 실시될 수 있다는 것을 인식할 것이다.
용어 "데이터 취급 디바이스"(500)는 여기에서 DRAM 메모리와 같은, 데이터를 저장하기 위한 디바이스들보다는, 주로 데이터의 소비자들 및 생성자들로서 구성되는 메모리 버스 상의 디바이스들을 식별하기 위해 사용된다. 비 제한적 예들로서, 데이터 취급 디바이스(500)는 프로세서들(또한 여기에서 프로세싱 디바이스들로서 언급되는), 이를테면, 예를 들어, 범용 프로세서들, 전용 프로세서들, 그래픽스 프로세서들, 및 디지털 신호 프로세서들인 것으로 고려될 수 있다. 다른 비 제한적 예들로서, 데이터 취급 디바이스(500)는 통신 디바이스들인 것으로 고려될 수 있다. 예를 들어, 통신 유형 데이터 취급 디바이스(500)는 메모리 버스 및 몇몇 다른 유형의 통신 버스, 이를테면, 예를 들어, 입력/출력(IO) 버스 또는 네트워크 버스 사이에서 데이터를 전달하도록 구성될 수 있다. 물론, 데이터 취급 디바이스들(500)은 또한 프로세서 요소들 및 통신 요소들 양자를 포함할 수도 있다. 이와 같이, 여기에서의 설명은 또한 데이터 취급 디바이스(500)를 시스템 온 칩(SoC)(500)으로 설명할 수도 있다. 명확히 다르게 서술되지 않는 한, 여기에서 언급되는 바와 같은 SoC(500)는 데이터 취급 디바이스(500)와 균등한 것으로 고려되어야 한다. 마지막으로, 데이터 취급 디바이스들(500)은 데이터를 프로세싱하고 이동시키는 것에 초점이 맞춰져 고려될 수 있지만, 그것들은 또한 SoC(500) 상에서 레지스터들, 버퍼들, 캐시들, 및 다른 유형들의 로컬 메모리의 형태로 상당한 양의 메모리를 포함할 수도 있다. SoC(500)의 추가 세부사항들은 도 5와 함께 아래에서 논의된다.
하이브리드 메모리 큐브 디바이스(200)(HMC(200))는 로직 베이스(400)를 포함하며, 이는 SoC(500) 및 HMC(200) 사이에 메모리 링크들(120)을 생성하기 위해 추상화된 메모리 프로토콜(130)을 정의한다. 병렬적 버스들(410)의 그룹은 HMC(200) 상의 로직 베이스(400) 및 DRAM들(250)의 그룹 사이를 인터페이싱한다. HMC(200)의 추가 세부사항들은 도 2 내지 도 4와 관련하여 아래에서 설명된다.
메모리 링크들(120)은 SoC(500) 쪽으로 향하는 업스트림 링크들 및 SoC(500)에서 떠나 향하는 다운스트림 링크들로 분할된다. 추상화된 메모리 프로토콜(130)의 부분으로서, 메모리 링크들(120)이 아래에서 보다 완전히 설명되는 바와 같이 패킷화된다. 그 결과, 메모리 링크들(120)은 또한 여기에서 하이브리드 메모리 큐브 링크들(120) 뿐만 아니라 패킷화된 메모리 링크들(120)로서도 언급된다. 게다가, 메모리 링크들(120) 상에 전달되는 패킷들은 패킷 요청들 및 패킷화된 요청들로서 언급된다.
도 2는 HMC(200) 내 DRAM들(250)의 가능한 분할을 예시한다. HMC(200)는 로직 베이스(400)에 결합되는 DRAM 다이(250)의 3-차원 스택으로 고려될 수 있다. 로직 베이스(400)는 별개의 다이로서 구성되고 DRAM 다이(250)와 인터페이싱하도록 구성될 수 있다. 적층될 때, 다양한 다이 간 상호 접속은 실리콘 관통 비아들을 통해 실현될 수 있다. 이들 디바이스는 물리적으로 3-차원 스택으로서 구성될 수 있지만, 그것들은 그렇게 구성될 필요는 없으나, 여전히 상호 접속 관점에서 3-차원인 것으로 생각될 수 있다.
도 3은 HMC(200) 내 DRAM들(250)의 논리적 분할을 예시한다. 도 2 및 도 3을 참조하면, 다수의 다이 계층의 상호 접속은 메모리 디바이스가 메모리 저장 계층들 및 하나 이상의 로직 계층의 조합을 갖게 한다. 이러한 방식으로, 디바이스는 HMC(200)로서 구성되는 단일 다이 패키지에서의 물리적 메모리 저장 및 논리적 메모리 트랜잭션 프로세싱을 제공한다. 최종 결과는 디바이스당 320GB/s까지의 이용 가능한 대역폭 용량을 갖는 매우 소형의, 전력 효율적인 패키지이다.
HMC(200)는 설계에 대한 계층적 및 병렬적 접근법을 통해 그러한 대역폭이 가능하다. 예를 들어, 디바이스 계층이 로직 계층들에 걸쳐 수직적으로 존재할 수 있고 하드웨어 병렬이 소정의 다이 계층에 걸쳐 존재할 수 있다. 로직 베이스(400)는 내부 라우팅 및 트랜잭션 로직 뿐만 아니라 HMC(200)에 대한 외부 링크 액세스 양자를 제공하는 다수의 구성요소를 포함한다.
HMC(200)는 보통 "보울트들(vaults)(220)"로서 언급되는 수직 조각들(220)로 세그먼트화될 수 있다. 각 보울트(220)는 보울트(220)와 연관된 DRAM들(250)의 세그먼트들을 제어하기 위한 로직 베이스(400)로 통합되는 보울트 로직(450)을 포함할 수 있다. 보울트 로직(450)은 이의 보울트(220) 내 메모리 분할들에 대한 메모리 참조 동작들을 관리한다. 각 보울트 제어기(450)는 이 자체의 타이밍 요건 및 복원 동작들을 결정할 수 있으며, 이는 각 보울트(220)에 대해 상이한 타이밍을 허용하고 또한 호스트 메모리 제어기에서의 이들 기능에 대한 필요를 제거한다. 덧붙여, 큐가 해당 보울트의 메모리에 대한 참조들을 버퍼링하기 위해 각 보울트 제어기(450)에 포함될 수 있다. 보울트 제어기들(450)은 도착순보다는 요구에 기초하여 이들의 큐 내 참조들을 실행할 수 있다. 따라서, 보울트 동작들로부터 다시 외부 메모리 링크들(120)(도 1)로의 응답들은 몇몇 경우 순서가 뒤바뀔 수 있다.
메모리 링크들(120)은 4 또는 8 메모리 링크를 제공하도록 구성될 수 있다. 각 링크는 16 또는 8 직렬 및 양방향 I/O 링크의 그룹으로서 구성될 수 있다. 4개의 링크로 구성된 디바이스들은 10, 12.5 및 15Gbps로 동작할 수 있는 능력을 갖는다. 8개의 링크로 구성된 디바이스들은 10Gbps로 동작할 수 있는 능력을 갖는다.
물리적 메모리 저장의 계층적 특성을 고려하면, HMC 사양은 전통적인 뱅크드 DRAM 디바이스들과 상이한 물리적 어드레싱 및 인터리브 모델을 정의한다. HMC 디바이스들(200)에 대한 물리적 어드레스들은 보울트, 뱅크, 및 어드레스 비트들을 포함하는 34-비트 필드로 인코딩된다. 단일 어드레싱 구조에 의존적이기보다는, 사양은 구현자 및 사용자가 타겟 메모리 액세스 특성들에 대해 가장 최적화되는 어드레스 매핑 기법을 정의하도록 허용한다. 그것은 또한 물리적 보울트 및 뱅크 구조를 원하는 최대 블록 요청 크기로 연결하는 일련의 디폴트 어드레스 맵 모드를 제공한다. 디폴트 맵 기법들은 바로 뒤에 뱅크 어드레스 비트들이 따르는, 보다 덜 중요한 어드레스 비트들을 보울트 어드레스에 매핑함으로써 저 인터리브 모델을 구현한다. 이 방법은 뱅크 충돌들을 회피하기 위해 순차적 어드레스들이 먼저 보울트들에 걸쳐 그 다음 보울트 내 뱅크들에 걸쳐 인터리빙하게 한다.
호스트 디바이스들(예를 들어, SoC들(500)) 및 HMC 디바이스들(200) 간 모든 대역내 통신은 패킷화된 포맷을 통해 수행된다. 이러한 포맷은 세 개의 주요 패킷 분류들: 요청 패킷들, 응답 패킷들, 및 흐름 제어 패킷들을 포함한다. 패킷들은 단일 16-바이트 흐름 단위(flow unit)(또한 FLIT로서도 언급되는)의 배수들로서 구성될 수 있다. 패킷 크기들은 9 FLIT(즉, 144 바이트)만큼 클 수 있다. 가장 작은 패킷은 패킷 헤더 및 패킷 테일을 포함하여 단지 하나의 16-바이트 FLIT을 포함할 수 있다.
모든 메모리 페이로드 크기에 대한 메모리 판독 요청 패킷들은 단지 패킷 헤더, 패킷 테일, 및 각각의 물리적 메모리 어드레스를 필요로 한다. 이와 같이, 판독 요청들은 단일 FLIT을 이용하여 구성될 수 있다. 메모리 판독 응답들은 대응하는 메모리 판독 패킷에 요청되는 어드레스로부터의 데이터를 포함하는 별개의 패킷들이다. 그러나, 기록 요청 및 원자 요청 패킷들은 또한 각각, 기록 및 판독-수정-기록 동작들을 위한 관련 입력 데이터도 포함해야 한다. 이와 같이, 이들 요청 유형은 2 FLIT 내지 9 FLIT의 패킷 폭들을 가질 수 있다. HMC 사양은 패킷들 간 약한-순서화 모델을 정의한다. 이와 같이, 타겟 구현 내에 존재하는 지점들을 재 순서화하는 다수의 패킷이 존재할 수 있다. 보조 디바이스들 행의 도착 패킷들은 로컬 보울트 액세스를 기다려 그것들을 전달할 수 있다. 로컬 보울트들은 또한 각각의 보울트 뱅크들로 그리고 이들로부터 대역폭을 가장 효율적으로 사용하기 위해 대기 패킷들을 재순서화할 수도 있다. 그러나, 소정의 HMC 구현에 존재하는 재순서화 지점들은 특정한 링크로부터 보울트 내 특정한 뱅크로의 패킷들의 스트림의 순서를 유지하도록 정의될 수 있다. 이러한 순서화는 뒤에 메모리 판독 요청들이 따르는 메모리 기록 요청들이 정확한 및 결정론적 거동을 전달함을 보장한다.
HMC(200)에서의 링크 구조는 링크 구조 및 패킷화된 트랜잭션 프로토콜들을 유지하면서 단일 HMC(200) 디바이스보다 큰 용량들을 필요로 하는 메모리 서브시스템들의 구성을 가능하게 하기 위해 다수의 HMC(200)의 연쇄를 가능하게 한다. 연쇄에 관한 추가 세부사항들이 도 6 내지 도 9를 참조하여 아래에서 논의된다.
도 4는 링크 인터페이스들(120)을 위한 그리고 HMC(200) 내 DRAM들(250)(도 1 내지 도 3)을 제어하는 로직 베이스(400)를 예시한다. 업스트림 링크들 및 다운스트림 링크들을 포함하는, 메모리 링크들(120)은 각 메모리 링크(120)를 위한 링크 인터페이스 제어기(420)에 의해 제어될 수 있다. 링크 인터페이스 제어기들(420)을 통해 전달된 패킷들은 크로스바 스위치(430)를 통해 전달될 수 있다. 패킷이 HMC(200) 상의 보울트 행인 경우, 크로스바 스위치(430)는 패킷을 메모리 제어 로직(440)으로 전달할 수 있다. 패킷이 다른 HMC(200) 행인 경우, 크로스바 스위치(430)는 패킷을 적절한 HMC(200)로 다시 송신될 적절한 링크 인터페이스 제어기(420)로 전달할 수 있다. 메모리 제어 로직(440) 및 다양한 보울트를 위한 보울트 로직(450)은 적절한 보울트 및 선택된 보울트에 대해 적절한 타이밍을 선택하기 위해 결합될 수 있다.
도 5는 본 발명의 몇몇 실시예에 따른 데이터 취급 디바이스(500)에 존재할 수 있는 몇몇 요소를 예시한다. 본 발명의 실시예들에 따르면, 시스템들 및 방법들은 다수의 SoC(500) 간보다 전역적인 시스템 상호 접속을 위한 기초로 HMC(200) 디바이스들 및 HMC(200)를 위해 정의되는 메모리 상호 접속 프로토콜들을 이용할 수 있다. 그에 따라, HMC(200) 디바이스 및 링크 사양을 이용하는 기본적인 시스템 상호 접속 능력들은 호스트 시스템(예를 들어, SoC(500))으로부터 떠나는 링크들의 수, 밀도, 및 이질성을 통합한다.
본 개시를 이용하여 구성된 디바이스들 및 시스템들은 종래의 멀티프로세서 시스템 아키텍처들에 비한 개선점들인 시스템 특성들을 정의할 수 있다. 이들 특성 중 몇몇은 고 대역폭 메모리 및 시스템 상호 접속 링크들, 로컬로 연결된 메모리들 및 다른 시스템-레벨 메모리들 간 균형적인 대역폭 및 지연 특성들, 로컬 메모리 요청들 및 시스템-레벨 요청들 간 프로토콜 변환들을 감소 및/또는 제거하는 것에 의한 지연 최소화, 및 로컬 메모리 요청들 및 시스템-레벨 요청들 양자를 위해 효율적인 HMC(200) 패킷 프로토콜을 이용하는 것에 의한 지연 최소화를 포함한다. 특성들은 또한 동일한 프로토콜을 이용하는 HMC(200) 상호 접속 시스템에 대한 로컬 메모리들 및 시스템-레벨 메모리들 간 원자성을 유지하는 것, 광범위한 시스템-레벨 메모리 모델들(예를 들어, 약한 대 강한 순서화)에 대한 지원, 및 캐시 일관성에 대한 지원도 포함할 수 있다.
시스템 구성들은 일반적으로 도 6 및 도 7에 도시된 바와 같은 인 사이투 라우팅 및 도 8 및 도 9에 도시된 바와 같은 전용 라우팅을 포함하는 것으로 고려될 수 있다. 두 개의 가능한 구현은 두 개의 상이한 확장 모델을 나타낸다. 사이투 라우팅 모델은 멀티-소켓 워크스테이션들, 데이터-센터 서버들, 및 다른 기본적인 인프라스트럭처 디바이스들에 효율적인 시스템-레벨 확장성을 제공한다. 전용 라우팅 모델은 적은 수의 포켓 이상의 효율적인 확장성을 제공한다. 이러한 확장성은 대기업 서버 또는 메인프레임 플랫폼들을 구축하는 것과 유사하다. 양 방법론은 사실상 SoC-중심인 시스템 아키텍처들 및 불균일 메모리 액세스(NUMA; Non-Uniform Memory Access)인 지지 아키텍처들을 구성할 수 있는 능력을 제공한다.
양 모델에서, SoC(500)는 HMC 인프라스트럭처에 HMC "소스(source)" 링크를 제공한다. 소스 링크는 또한 여기에서 제2 패킷화된 메모리 링크로서 연급될 수 있다. 이러한 제2 연결로, SoC(500)는 시스템 링크 트래픽을 송수신할 수 있는 능력을 이어받는다. 이러한 추가 링크는 SoC 간 직접 메시징 지원을 가능하게 한다. 그러한 기능의 일례는 캐시 일관성 트래픽이다. 예를 들어, 시스템 벤더는 캐시 일관성 요청들(예를 들어, 일관성 색인들 또는 실효들)을 HMC 원자 요청 패킷들로 인코딩할 수 있다. 이는 또한 SoC(500) 대 SoC(500) 메시징 패킷들을 판독, 기록, 포스티드 판독 및 포스티드 기록 요청들에 대해 HMC 베이스 사양으로 인코딩할 수도 있다. 시스템 벤더들이 HMC 패킷 사양의 프로토콜들을 인코딩할 수 있는 이러한 능력은 이들이 이들 각각의 지적 재산을 유지하고 고 대역폭, 저 지연 시스템 상호 접속 지원을 제공할 수 있게 한다.
도 5로 돌아가, HMC 인터페이스를 위해 구성된 종래의 SoC(500)는 하나 이상의 프로세서(들)(540) 및 제1 하이브리드 메모리 큐브 인터페이스(122)를 통해 패킷화된 메모리 링크(120)(예를 들어, HMC 링크(120))에 결합되는 데이터 요청자 종점(510)만큼 단순할 수 있다. 데이터 요청자 종점(510)은 또한 여기에서 호스트 요청자 종점(510)으로 언급될 수도 있다. 종래에 호스트는 단지 기능들 이를테면, 예를 들어, 메모리 판독들, 메모리 기록들, 및 구성 정의 패킷들을 수행하기 위한 패킷 요청들을 HMC(200) 상에 생성하기만 하면 된다.
그러나, 본 개시의 실시예들은 제2 하이브리드 메모리 큐브 인터페이스(622)를 통해 제2 패킷화된 메모리 링크(620)에 결합되는 데이터 취급 종점(520)을 포함한다. 물리적으로, 그리고 논리적으로 제2 패킷화된 메모리 링크(620)는 HMC(200) 디바이스 상의 메모리 링크와 유사하다. 다시 말해서, 데이터 취급 종점(520)은 메모리 종점과 유사하게 거동한다. 따라서, 데이터 취급 종점(520)은 메모리 판독들, 메모리 기록들, 또는 다른 구성 유형 패킷들처럼 보이는 패킷 요청들을 해석하고, 메모리 기록들에 대한 데이터를 소비하며, 메모리 판독들을 위한 데이터의 응답 패킷들을 생성한다. 데이터 취급 종점(520)과 함께, 제2 패킷화된 메모리 링크(620)가 다른 SoC들(500)에 대한 시스템 상호 접속 및 다른 SoC들(500)과 연관된 메모리 도메인들로서 이용될 수 있는 시스템들이 생성될 수 있다. 따라서, 제2 패킷화된 메모리 링크(620)가 아키텍처 관점에서, 물리적으로 그리고 논리적으로 하이브리드 메모리 큐브 링크(120)와 동일하지만, 그것은 유연하고 효율적인 시스템 상호 접속들을 생성하는 패킷화된 시스템 요청들을 전달하기 위한 링크로서 취급될 수 있다.
게다가, 데이터 요청자 종점(510) 및 데이터 취급 종점(520)이 유사하기 때문에, 두 개의 종점을 위한 많은 로직 설계는 종래의 멀티-프로세서 시스템들에서와 같이 별개의 프로토콜들로 두 개의 별개의 버스를 생성하기 보다는 재이용될 수 있다.
이전에 서술된 바와 같이, SoC(500)는 프로세서들(540)이 범용 프로세서, DSP, 전용 프로세서, 그래픽스 프로세서, 또는 이들의 조합으로서 구현될 수 있는 프로세싱 디바이스인 것으로 고려될 수 있다. 그러나, SoC(500)는 또한 주로 통신 디바이스로서도 구현될 수 있다. 그러한 구현에서, 하나 이상의 통신 요소(550)가 패킷들을 데이터 취급 종점(520)으로부터 다른 버스(560)로 이동시키기 위해 포함될 수 있다. 이 다른 버스(560)는 예를 들어, I/O 버스로의 버스, 다른 통신 디바이스, 저장 디바이스들, 네트워크, 또는 이들의 조합들일 수 있다. 물론, SoC(500)는 프로세서들(540) 및 통신 요소들(550) 양자를 포함할 수 있다. 따라서, 프로세서들(540) 및 통신 요소들(550)은 총칭적으로 데이터 취급 요소들(540, 550)로서 언급될 수 있다.
데이터 취급 종점(520)이 메모리 종점과 유사하게 거동하기 때문에, 데이터 취급 종점(520)에 의해 취급되는 패킷들은 이들과 연관된 어드레스들을 갖고 데이터는 큰 버스트들로 전달될 수 있다. 몇몇 실시예에서, 프로세서들(540) 및/또는 통신 요소들(550)은, 데이터가 데이터 취급 종점(520) 및 적절한 데이터 취급 요소들(540, 550) 사이에서 직접 전달될 수 있도록, 이들 자체의 어드레스를 갖는 이들과 연관된 메모리를 가질 수 있다.
다른 실시예들은 데이터 취급 디바이스(500)로의 링크 요청들을 위한 어드레스 공간을 정의하기 위한 데이터 버퍼(530)를 포함할 수 있다. 데이터 버퍼(530)와 함께, 별개의 전용 어드레스 공간이 정의될 수 있고 데이터 버퍼(530)는 데이터를 적절한 데이터 취급 요소들(540, 550) 상에 전달하기 전에 그것을 수집할 수 있다. 데이터 버퍼(530)는 SoC들(500)이 트래픽을 서로 비동기로 송신하도록 허용하는 (선입선출) FIFO 버퍼 또는 직접 메모리 액세스(DMA) 버퍼로서 구성될 수 있다. 데이터 버퍼(530)의 각각의 크기는 관련 HMC 링크(620)의 수 및 주파수에 의해 결정될 수 있다.
덧붙여, SoC(500)는 데이터 요청자 종점(510)이 데이터 취급 종점(520)과 유사한 방식으로 해당 종점으로의 요청들을 취급할 수 있도록 구성될 수 있다. 유사하게, 데이터 취급 종점(520)은 데이터 요청자 종점(510)과 유사한 방식으로 데이터 취급 요소들(540, 550)로부터 요청들을 발생시키도록 구성될 수 있다.
따라서, 데이터 취급 디바이스에서, 데이터 요청자 종점은 제1 패킷화된 메모리 링크 상에 제1 패킷 요청들을 발생시키기 위해 구성된다. 데이터 취급 종점은 제2 패킷화된 메모리 링크 상에 상기 데이터 취급 종점으로의 제2 패킷 요청들을 해석하고, 제2 패킷 요청들에 응답하여 데이터를 제2 패킷화된 메모리 링크에 걸쳐 양방향으로 전달하기 위해 구성된다. 덧붙여, 제1 패킷화된 메모리 링크 및 제2 패킷화된 메모리 링크는 별개이나 동일한 유형의 링크 프로토콜 및 동일한 유형의 물리적 인터페이스를 포함한다.
데이터 취급 디바이스의 다른 실시예에서, 제1 하이브리드 메모리 큐브 링크는 데이터 취급 디바이스 상의 호스트 요청자 종점에 동작 가능하게 결합되고, 호스트 요청자 종점은 하나 이상의 하이브리드 메모리 큐브 디바이스를 포함하는 로컬 메모리 도메인에 패킷화된 메모리 요청들을 발생시키기 위한 것이다. 제2 하이브리드 메모리 큐브 링크는 데이터 취급 디바이스 상의 데이터 취급 종점에 동작 가능하게 결합되고, 데이터 취급 종점은 하나 이상의 하이브리드 메모리 큐브 디바이스 중 적어도 하나에 동작 가능하게 결합되는 추가 데이터 취급 디바이스로부터의 패킷화된 시스템 요청들을 해석하기 위한 것이다.
다른 실시예에서, 데이터 취급 디바이스로 데이터를 전달하는 방법은 데이터 취급 디바이스를 이용하여 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 하이브리드 메모리 큐브 디바이스로의 제1 하이브리드 메모리 큐브 링크 상에 패킷화된 메모리 요청들을 발생시키는 단계를 포함한다. 방법은 또한 데이터 취급 디바이스를 이용하여 제2 하이브리드 메모리 큐브 링크 상에 제2 데이터 취급 디바이스(도 5에 미도시)로부터 발생되는 패킷화된 시스템 요청들을 수신하는 단계를 포함한다. 방법은 또한 패킷화된 시스템 요청들에 응답하는 단계를 포함한다.
도 6은 다양한 데이터 취급 디바이스(500) 및 메모리 디바이스(200) 사이에 인 사이투 라우팅을 이용하고 메모리 디바이스들(130) 사이에 스파스 라우팅을 제시하는 시스템(600)의 도해를 예시한다. 앞서 서술된 바와 같이, 다수의 HMC 디바이스(200)는 SoC(500)가 이용 가능한 총 메모리 용량을 증가시키기 위해 함께 연쇄될 수 있다. 종래의 단일 프로세서/HMC 시스템에서, 각 HMC(200)는 요청 패킷 헤더의 3-비트 칩 ID의 값을 통해 식별된다. 3-비트 칩 ID 필드는 또한 여기에서 CUB 필드 또는 디바이스 ID로서 언급될 수 있다. 따라서, 8개까지의 HMC 디바이스(200)의 네트워크가 프로세서를 위해 지원될 수 있다.
HMC들(200)의 상호 접속 및 상이한 HMC들(200)에 대한 라우팅을 위한 다양한 토폴로지는 복잡하고 다수의 경로를 포함할 수 있다. 따라서, 호스트 프로세서는 일반적으로 해당 HMC(200)를 위한 것이 아닌 패킷들이 어떻게 HMC(200) 상의 다른 링크들로 라우팅되어야 하는지를 결정하기 위해 각 HMC(200)로 구성 정보를 라우팅하는 로드들 및 라우팅 토폴로지들을 제어한다. 이러한 라우팅 정보는 각 HMC(200)가 적절한 목적지로의 요청 패킷들을 라우팅하기 위해 CUB 필드를 이용할 수 있게 한다. 그 결과, HMC(200)가 그 자체 행이 아닌 패킷을 프로세싱할 때, HMC(200)는 다른 HMC(200)에 송신될 HMC(200) 상의 다른 링크로 패킷을 연쇄하고 통과시킨다.
사이투 라우팅 구성은 적은 수의 시스템 디바이스를 위한 시스템 상호 접속 라우팅 능력들을 제공한다. 보다 구체적으로, 시스템 디바이스들의 총 수는 시스템 아키텍처에 존재하는 HMC 디바이스들(200)의 총 수에 의해 게이팅된다. 이러한 제한은 CUB 필드가 8개의 총 HMC 종점에 매핑하는, 3 비트의 어드레스 필드 공간으로 제한된다는 베이스 HMC 사양들의 개념을 따른다. 사이투 라우팅의 경우, CUB 필드는 하나 이상의 SoC 종점을 나타내는 데 이용된다. 따라서, 각 SoC(500) 및 모든 HMC 디바이스(200)는 SoC(500) 및 HMC(200), HMC(200) 및 HMC(200) 또는 SoC(500) 및 SoC(500) 간 라우팅 요청 트래픽을 위해 고유의 CUB 식별자를 수신한다.
도 6에서, HMC 디바이스들(200-0 내지 200-5)의 각각은 대응하는 디바이스 ID 0 내지 ID 5로 정의된다. 덧붙여, 소켓 0 에서의 제1 SoC(500-0)는 디바이스 ID 6으로 정의되고, 소켓 1 에서의 제2 SoC(500-1)은 디바이스 ID 7로 정의된다.
인 사이투 라우팅 구성은 세 개의 상이한 유형의 링크를 갖는 것으로 생각될 수 있다. 제1 링크 유형은 SoC 소스 링크들(620-0 및 620-1)로서 식별될 수 있다. 이들 SoC 소스 링크(620-0, 620-1)는 또한 도 5를 참조하여 위에서 설명된 바와 같이, 제2 패킷화된 메모리 링크들(620) 및 제2 하이브리드 메모리 큐브 링크들(620)로서도 언급될 수 있다.
이들 SoC 소스 링크(620-0, 620-1)는 이의 데이터 취급 종점(520)의 SoC(500-0, 500-1) 상에서 요청 트래픽을 수신하도록 쓰인다. SoC 소스 링크들(620-0, 620-1)은 SoC들(500-0, 500-1)이 주 메모리 공간에서 중간의 이중 버퍼링 없이 직접적으로 통신하도록 허용한다. 이러한 방식으로, SoC들(500-0, 500-1)은 데이터 취급 종점(520)을 통하는 HMC 소스 및 데이터 요청자 종점(510)을 통하는 HMC 요청자 양자로서 나타날 것이다.
제2 및 제3 링크 유형들은 전통적인 HMC 구성들과 연관된다. 제2 링크 유형(즉, 도메인 간 메모리 링크(650-0))은 HMC 링크들에 걸친 트래픽을 인접한 메모리 도메인들 이를테면 제1 메모리 도메인(630) 및 제2 메모리 도메인(640)으로 라우팅할 수 있는 능력을 제공한다. 다시 말해서, 도메인 간 메모리 링크(650-0)는 메모리 도메인들 간 브리지로서의 역할을 한다. 타겟 시스템 비용 모델에 따라, 시스템 설계자들은 각각의 NUMA 도메인들 간 갭을 이들 시스템 링크를 이용하여 브리지를 형성하는 링크들의 수를 선택할 수 있다. 도 6은 스파스 라우팅을 예시하는데 이는 단지 하나의 도메인 간 메모리 링크(650-0)만 존재하기 때문이다.
도 7은 다양한 데이터 취급 디바이스(500) 및 메모리 디바이스(200) 사이에 인 사이투 라우팅을 이용하고 메모리 디바이스들 사이에 댄스 라우팅을 제시하는 시스템(700)의 도해를 예시한다. 도 7에서, 시스템이 조밀하게 라우팅되는데 이는 세 개의 도메인 간 메모리 링크들(650-0, 650-1, 및 650-2)이 존재하기 때문이다. 조밀하게 연결된 시스템 아키텍처는 링크 핫 스폿팅(hot spotting)을 감소시키기 위해 다수의 라우팅 경로를 생성하기 위한 메모리 도메인 토폴로지로 메모리를 구성할 수 있는 능력을 제공한다. 도메인 간 메모리 링크들(650-0, 650-1, 및 650-2) 외에, 도 7은 도 6과 유사하고 요소들은 다시 설명될 필요가 없다.
제3 링크 유형은 각각, 로컬 메모리 도메인들의 각각에 대해 메모리 트래픽을 라우팅하는 로컬 요청 링크들(120)이다. 이들 링크는 120-0 내지 120-5로서 나타난다. 이들 링크는 메모리 도메인 내에 전통적인 HMC(200) 메모리 트래픽을 제공한다.
도 6 및 도 7은 각각, 전 실장 시스템들(600, 700)을 예시한다. 다시 말해서, HMC 사양의 현재 버전에 대한 모든 디바이스 ID가 이용된다. 디바이스 ID에 대해 부연되는 다른 시스템들이 이용될 수 있다. 예를 들어, 단일 비트의 디바이스 ID로의 추가는 디바이스들의 수를 8에서 16으로 확장할 수 있고, SoC들(500) 및 HMC들(200)의 임의의 조합을 포함할 수 있다.
덧붙여, 산발적으로 실장되는 시스템들이 정의될 수 있다. 예를 들어, 예시되지 않지만, 시스템은 소켓 0 SoC(500-0), 소켓 1 SoC(500-1) 및 단일 HMC(200)(예를 들어, HMC(200-0))를 포함할 수 있다. 그러한 시스템에서, SoC(500-1) 상의 SoC 소스 링크(620-1)는 HMC(200-0) 상의 링크에 직접적으로 연결될 수 있고, SoC(500-1) 상의 로컬 메모리 링크(120-1)는 HMC(200-0) 상의 다른 링크에 직접적으로 연결될 수 있다. 그 결과, 패킷들은 여전히 SoC(500-1) 및 SoC(500-1) 사이에서 전달될 수 있고, 두 개의 SoC(500-0 및 500-1)는 HMC(200-0)에서의 메모리에 대한 액세스를 공유할 수 있다.
따라서, 데이터 프로세싱 시스템은 두 개 이상의 데이터 취급 디바이스 및 하이브리드 메모리 큐브 디바이스를 포함한다. 각 데이터 취급 디바이스들은 제1 패킷화된 메모리 링크들 상에 제1 패킷 요청들을 발생시키기 위해 구성된 호스트 요청자 종점을 포함한다. 각 데이터 취급 디바이스들은 또한 제2 패킷화된 메모리 링크들 상의 데이터 취급 종점으로의 제2 패킷 요청들을 수신하고 이들에 응답하기 위해 구성된 데이터 취급 종점을 포함한다. 하이브리드 메모리 큐브 디바이스는 두 개 이상의 데이터 취급 디바이스 중 하나에 대응하는 제1 메모리 도메인과 연관된다. 하이브리드 메모리 큐브 디바이스는 두 개 이상의 데이터 취급 디바이스의 둘 사이에 제2 패킷 요청들을 연쇄하고 전달하도록 구성된다.
다른 실시예에서, 시스템에서 데이터를 전달하는 방법은 제1 데이터 취급 디바이스 상의 호스트 요청자 종점으로부터 메모리 요청들을 발생시키는 단계를 포함한다. 방법은 또한 제1 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로 제1 데이터 취급 디바이스에 결합되는 제1 패킷화된 메모리 링크 상의 메모리 요청들을 송신하는 단계를 포함한다. 방법은 또한 제1 하이브리드 메모리 큐브에서 제2 데이터 취급 디바이스로부터의 시스템 요청들을 수신하는 단계를 포함한다. 방법은 또한 시스템 요청들을 제1 하이브리드 메모리 큐브로부터 제1 데이터 취급 디바이스에 결합되는 제2 패킷화된 메모리 링크들을 통해 제1 데이터 취급 디바이스 상의 데이터 취급 종점으로 전달하는 단계를 포함한다. 제2 하이브리드 메모리 큐브를 갖는 몇몇 실시예에서, 방법은 제2 데이터 취급 디바이스 상의 호스트 요청자 종점으로부터 시스템 요청들을 발생시키는 단계 및 제1 하이브리드 메모리 큐브에서 시스템 요청을 수신하기 전에, 제2 하이브리드 메모리 큐브에서 시스템 요청들을 수신하는 단계 및 시스템 요청들을 제2 하이브리드 메모리 큐브로부터 제1 하이브리드 메모리 큐브로 전달하는 단계를 더 포함할 수 있다.
도 8은 다양한 데이터 취급 디바이스(500) 및 메모리 디바이스(200) 사이에 전용 라우팅을 이용하는 시스템(800)의 도해를 예시한다. 전용 라우팅 구성은 보다 큰, 보다 확장 가능한 시스템 아키텍처들이 구성되도록 허용한다. 사이투 라우팅 구성과 같이, 전용 라우팅은 데이터 요청자 종점(510)을 통하는 HMC 요청자로서의 역할을 하고, 데이터 취급 종점(520)을 통하는 타겟 종점으로서 나타날 수 있는 SoC들(500)을 포함한다. 그러나, 전용 라우팅 구성에서, HMC 요청 트래픽은 임의의 주어진 SoC(500)의 관점에서 두 개의 도메인으로 분할된다. 각 SoC(500)는 로컬 도메인 및 시스템 도메인 양자를 포함한다. 각 도메인은 (앞서 언급한 CUB 필드 제한들에 기초하여) 8개까지의 종점을 지원할 수 있는 능력을 갖는다. 이러한 방식으로, 각 SoC(500)는 이의 로컬 도메인에 로컬로 연결되는 8개까지의 HMC 디바이스를 지원할 수 있는 능력을 갖는다. 로컬 도메인에서의 종점들은 일반적으로 HMC 메모리 디바이스들(200)이다. 도 8은 로컬 도메인 링크들을 120-0 내지 120-3으로 예시한다. 따라서, 도 8에는, 각 SoC(500-0 내지 500-3)와 연관된 단지 하나의 HMC(200-0 내지 200-3)가 존재한다. 그러나, 전용 라우팅 시스템들은 각 SoC(500-0 내지 500-3)의 로컬 도메인에서의 8개까지의 HMC 디바이스(200)로 구성될 수 있다.
시스템 도메인은 시스템 레벨 트래픽 라우팅을 위한 기능을 제공한다. 각 SoC(500-0 내지 500-3)는 시스템 도메인에 걸쳐 시스템 요청 트래픽을 라우팅할 수 있는 능력을 제공한다. 시스템 도메인에서의 종점들은 SoC들(500), 허브들로서 이용되는 HMC 디바이스들(200) 및 메모리 저장소로서 이용되는 HMC 디바이스들(200)일 수 있다. 시스템의 확장 가능성은 HMC 라우터 디바이스들 대 SoC 종점들의 비에 의해 결정된다.
일례로, 도 8은 두 개의 HMC 허브(810-0 및 810-1)를 갖는 전용 라우팅 시스템을 예시한다. HMC 허브들(810-0 및 810-1)은 각 SoC(500-0 내지 500-3)의 제2 패킷화된 메모리 링크들(620-0 내지 620-3)에 결합되는 링크들을 포함한다. 덧붙여, 도 8은 HMC 허브들(810-0 및 810-1)을 함께 그리고 인접한 허브 디바이스들에 결합하기 위한 허브 간 링크들(820-0 내지 820-2)을 예시한다.
도 8은 시스템 도메인에 전 실장되지 않은 시스템을 예시한다. HMC 허브들(810-0 및 810-1)은 각각 ID 0 및 ID 1을 이용하고 SoC들(500-0 내지 500-3)은 각각 ID 2 내지 ID 5를 이용한다. 따라서, 일례로, 다른 SoC(500)는 허브 간 링크(820-0)에 결합되고 소정의 디바이스 ID 6일 수 있고, 다른 SoC(500)는 허브 간 링크(820-1)에 결합되고 소정의 디바이스 ID 7일 수 있다. 다른 예로서, 다른 HMC 허브(810)는 허브 간 링크(820-1)에 결합되고 소정의 디바이스 ID 6일 수 있고, 다른 SoC(500)는 상기 다른 HMC 허브(810)에 결합되고 소정의 디바이스 ID 7일 수 있다.
전용 라우팅 아키텍처에서의 시스템 상호 접속은 다른 방법들로 확장될 수 있다. 예를 들어, 인 사이투 라우팅과 같이, 추가 비트들이 디바이스 ID 필드에 부가될 수 있다. 예를 들어, 단일 비트의 디바이스 ID로의 추가는 디바이스들의 수를 8에서 16으로 확장할 수 있고, SoC들(500) 및 HMC 허브들(810)의 임의의 조합을 포함할 수 있다. 다른 예로서, 제1 패킷화된 링크(120) 및 제2 패킷화된 링크(620)와 유사한 추가 패킷화된 링크 버스들이 다른 완전히 새로운 도메인을 이용 가능하게 하기 위해 부가될 수 있다.
또한, 단지 HMC(200) 메모리 디바이스들을 포함하는 각 SoC(500)에 대한 로컬 메모리 도메인들이 보다 복잡해질 수 있다. 로컬 도메인은 도 5 내지 도 7을 참조하여 위에서 설명된 바와 같이 사이투 라우팅 아키텍처로 구성될 수 있다.
따라서, 전용 라우팅 구성에서, 데이터 프로세싱 시스템은 두 개 이상의 데이터 취급 디바이스를 포함한다. 각 데이터 취급 디바이스는 제1 패킷화된 메모리 링크들 상에 로컬 메모리 패킷 요청들을 발생시키기 위해 구성된 호스트 요청자 종점 및 제2 패킷화된 메모리 링크들 상의 데이터 취급 종점으로의 제2 패킷 요청들을 수신하고 이들에 응답하기 위해 구성된 데이터 취급 종점을 포함한다. 데이터 프로세싱 시스템은 또한 하나 이상의 하이브리드 메모리 큐브 허브를 포함한다. 하이브리드 메모리 큐브 허브들의 각각은 두 개 이상의 데이터 취급 디바이스 중 하나의 데이터 취급 종점에 동작 가능하게 결합되는 제1 패킷화된 메모리 링크 및 두 개 이상의 데이터 취급 디바이스 중 다른 하나의 데이터 취급 종점에 동작 가능하게 결합되는 제2 패킷화된 메모리 링크를 포함한다.
전용 라우팅 구성의 다른 실시예에서, 시스템에서 데이터를 전달하는 방법은 제1 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로 제1 데이터 취급 디바이스에 결합되는 제1 패킷화된 메모리 링크들 상의 메모리 요청들을 송신하는 단계를 포함한다. 방법은 또한 시스템 요청들을 제1 데이터 취급 디바이스 상의 데이터 취급 종점으로부터 발생시키는 단계 및 제1 데이터 취급 디바이스에 결합되는 제2 패킷화된 메모리 링크들 상의 시스템 요청들을 하이브리드 메모리 큐브 허브로 송신하는 단계를 포함한다. 방법은 또한 시스템 요청들 중 몇몇을 하이브리드 메모리 큐브 허브(810-0)로부터 제2 데이터 취급 디바이스로 전달하는 단계를 포함한다.
도 9는 도 8의 전용 라우팅과 함께 시스템들에서 이용될 수 있는 다양한 예시적인 토폴로지를 예시한다. 전용 라우팅 방법론은 또한 상이한 토폴로지의 이점들을 갖고 훨씬 더 복잡한 시스템 아키텍처들을 구성할 수 있는 능력을 제공한다. 비 제한적 예들로서, 시스템 도메인들의 토폴로지들은 링들(910), 변형된 링들(920), 메쉬들(930) 및 크로스바들(미도시)을 이용하여 구성될 수 있다. 최종적인 토폴로지의 결정은 타겟 시스템 비용과 비교하여 가중되는 필요 대역폭 및 지연 특성들에 기초하여 이루어질 수 있다.
본 발명의 실시예들은 제한 없이, 아래에 제시된 바와 같이, 더 특징지어질 수 있다.
실시예 1. 데이터 취급 디바이스로서,
제1 패킷화된 메모리 링크 상에 제1 패킷 요청들을 발생시키기 위해 구성된 데이터 요청자 종점; 및
데이터 취급 종점으로서:
제2 패킷화된 메모리 링크 상의 데이터 취급 종점으로의 제2 패킷 요청들을 해석하며; 그리고
제2 패킷 요청들에 응답하여 제2 패킷화된 메모리 링크에 걸쳐 양방향으로 데이터를 전달하기 위해 구성된, 데이터 취급 종점을 포함하되,
제1 패킷화된 메모리 링크 및 제2 패킷화된 메모리 링크는 별개이나 동일한 유형의 링크 프로토콜 및 동일한 유형의 물리적 인터페이스를 포함하는, 데이터 취급 디바이스.
실시예 2. 실시예 1에 있어서, 데이터 요청자 종점 및 데이터 취급 종점 중 하나 이상에 동작 가능하게 결합되는 하나 이상의 데이터 취급 요소로서, 하나 이상의 데이터 취급 요소의 각각이 하나 이상의 프로세서 및 하나 이상의 통신 요소를 포함하는, 하나 이상의 데이터 취급 요소를 더 포함하는, 데이터 취급 디바이스.
실시예 3. 실시예 2에 있어서, 데이터 요청자 종점 및 하나 이상의 데이터 취급 요소 사이에 동작 가능하게 결합되는 데이터 버퍼로서, 데이터 취급 종점을 위한 어드레스 공간을 정의하기 위한, 데이터 버퍼를 더 포함하는, 데이터 취급 디바이스.
실시예 4. 실시예 1 내지 3 중 어느 하나에 있어서, 제1 패킷화된 메모리 링크 및 제2 패킷화된 메모리 링크는 모두 하이브리드 메모리 큐브 링크들인, 데이터 취급 디바이스.
실시예 5. 실시예 1 내지 3 중 어느 하나에 있어서, 데이터 취급 종점은 제2 패킷화된 메모리 링크 상에 제3 패킷 요청들을 발생시키기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 6. 실시예 1 내지 3 중 어느 하나에 있어서, 데이터 요청자 종점은:
제1 패킷화된 메모리 링크 상의 데이터 요청자 종점으로의 제3 패킷 요청들을 해석하며; 그리고
제3 패킷 요청들에 응답하여 제1 패킷화된 메모리 링크에 걸쳐 양방향으로 데이터를 전달하기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 7. 데이터 취급 디바이스로서,
데이터 취급 디바이스 상의 호스트 요청자 종점에 동작 가능하게 결합되는 제1 하이브리드 메모리 큐브 인터페이스로서, 호스트 요청자 종점은 하나 이상의 하이브리드 메모리 큐브 디바이스를 포함하는 로컬 메모리 도메인에 제1 패킷 요청들을 발생시키기 위한 것인, 제1 하이브리드 메모리 큐브 인터페이스; 및
데이터 취급 디바이스 상의 데이터 취급 종점에 동작 가능하게 결합되는 제2 하이브리드 메모리 큐브 인터페이스로서, 데이터 취급 종점은 하나 이상의 하이브리드 메모리 큐브 디바이스 중 적어도 하나에 동작 가능하게 결합되는 추가 데이터 취급 디바이스로부터의 패킷화된 시스템 요청들을 해석하기 위한 것인, 데이터 취급 디바이스.
실시예 8. 실시예 7에 있어서, 데이터 취급 종점은 추가 데이터 취급 디바이스로부터의 패킷화된 시스템 요청들에 응답하여 데이터를 전달하기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 9. 실시예 7에 있어서, 호스트 요청자 종점 및 데이터 취급 종점 중 적어도 하나는 추가 데이터 취급 디바이스에 추가 패킷화된 시스템 요청들을 발생시키기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 10. 실시예 7에 있어서, 호스트 요청자 종점 및 데이터 취급 종점 중 적어도 하나는 추가 데이터 취급 디바이스와 상호 연관된 원격 메모리 도메인에서의 하나 이상의 추가 하이브리드 메모리 큐브 디바이스에 추가 패킷화된 메모리 요청들을 발생시키기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 11. 실시예 7에 있어서, 호스트 요청자는:
제1 하이브리드 메모리 큐브 인터페이스 상의 호스트 요청자 종점으로의 제3 패킷 요청들을 해석하며; 그리고
제3 패킷 요청들에 응답하여 제1 하이브리드 메모리 큐브 인터페이스에 걸쳐 양방향으로 데이터를 전달하기 위해 더 구성되는, 데이터 취급 디바이스.
실시예 12. 실시예 7에 있어서, 호스트 요청자 종점 및 데이터 취급 종점 중 하나 이상에 동작 가능하게 결합되는 데이터 버퍼로서, 데이터 취급 디바이스로의 링크 요청들을 위한 어드레스 공간을 정의하기 위한, 데이터 버퍼를 더 포함하는, 데이터 취급 디바이스.
실시예 13. 데이터 프로세싱 시스템으로서,
두 개 이상의 데이터 취급 디바이스로서, 각 데이터 취급 디바이스는:
제1 패킷화된 메모리 링크 상에 제1 패킷 요청들을 발생시키기 위해 구성된 호스트 요청자 종점; 및
제2 패킷화된 메모리 링크 상의 데이터 취급 종점으로의 제2 패킷 요청들을 수신하고 이들에 응답하기 위해 구성된 데이터 취급 종점을 포함하는, 두 개 이상의 데이터 취급 디바이스; 및
두 개 이상의 데이터 취급 디바이스 중 대응하는 데이터 취급 디바이스의 제1 메모리 도메인과 연관된 제1 하이브리드 메모리 큐브 디바이스로서, 두 개 이상의 데이터 취급 디바이스의 둘 사이에 제2 패킷 요청들을 연쇄하고 전달하도록 구성되는, 제1 하이브리드 메모리 큐브 디바이스를 포함하는, 데이터 프로세싱 시스템.
실시예 14. 실시예 13에 있어서, 두 개 이상의 데이터 취급 디바이스 중 대응하는 데이터 취급 디바이스의 제2 메모리 도메인과 연관된 제2 하이브리드 메모리 큐브 디바이스로서, 제2 메모리 도메인 및 제1 하이브리드 메모리 큐브 디바이스 사이에 제2 패킷 요청들을 연쇄하고 전달하도록 구성되는, 제2 하이브리드 메모리 큐브 디바이스를 더 포함하는, 데이터 프로세싱 시스템.
실시예 15. 실시예 14에 있어서, 두 개 이상의 데이터 취급 디바이스 중 하나의 호스트 요청자 종점으로부터 발생된 제1 패킷 요청들은 두 개 이상의 데이터 취급 디바이스 중 다른 하나의 데이터 취급 종점으로 연쇄되고 전달되는, 데이터 프로세싱 시스템.
실시예 16. 실시예 14 및 15 중 어느 하나에 있어서, 제1 메모리 도메인 및 제2 메모리 도메인의 각각은 적어도 하나의 추가 하이브리드 메모리 큐브 디바이스를 포함하는, 데이터 프로세싱 시스템.
*실시예 17. 실시예 16에 있어서, 제1 메모리 도메인에서의 추가 하이브리드 메모리 큐브 및 제2 메모리 도메인에서의 추가 하이브리드 메모리 큐브 사이에 적어도 하나의 도메인 간 링크를 더 포함하는, 데이터 프로세싱 시스템.
실시예 18. 실시예 14 내지 17 중 어느 하나에 있어서, 두 개 이상의 데이터 취급 디바이스의 각각은 호스트 요청자 종점 및 데이터 취급 종점 중 하나 이상에 동작 가능하게 결합되는 데이터 버퍼로서, 데이터 취급 디바이스로의 링크 요청들을 위한 어드레스 공간을 정의하기 위한, 데이터 버퍼를 더 포함하는, 데이터 프로세싱 시스템.
실시예 19. 데이터 프로세싱 시스템으로서,
두 개 이상의 데이터 취급 디바이스로서, 각 데이터 취급 디바이스는:
제1 패킷화된 메모리 링크 상에 로컬 메모리 패킷 요청들을 발생시키기 위해 구성된 호스트 요청자 종점; 및
제2 패킷화된 메모리 링크 상의 데이터 취급 종점으로의 제2 패킷 요청들을 수신하고 이들에 응답하기 위해 구성된 데이터 취급 종점을 포함하는, 두 개 이상의 데이터 취급 디바이스; 및
하나 이상의 하이브리드 메모리 큐브 허브로서:
두 개 이상의 데이터 취급 디바이스 중 하나의 데이터 취급 종점에 동작 가능하게 결합되는 제1 패킷화된 메모리 링크; 및
두 개 이상의 데이터 취급 디바이스 중 다른 하나의 데이터 취급 종점에 동작 가능하게 결합되는 제2 패킷화된 메모리 링크를 포함하는, 하나 이상의 하이브리드 메모리 큐브 허브를 포함하는, 데이터 프로세싱 시스템.
실시예 20. 실시예 19에 있어서, 두 개 이상의 데이터 취급 디바이스의 각각에 대한 데이터 취급 종점은 두 개 이상의 데이터 취급 디바이스 중 다른 하나로의 제1 패킷화된 메모리 링크 상에 제2 패킷 요청들을 발생시키기 위해 더 구성되는, 데이터 프로세싱 시스템.
실시예 21. 실시예 19에 있어서, 각 하이브리드 메모리 큐브 디바이스가 두 개 이상의 데이터 취급 디바이스 중 대응하는 데이터 취급 디바이스의 호스트 요청자 종점에 동작 가능하게 결합되는, 두 개 이상의 하이브리드 메모리 큐브 디바이스를 더 포함하는, 데이터 프로세싱 시스템.
실시예 22. 실시예 19에 있어서, 하나 이상의 하이브리드 메모리 큐브 허브 중 적어도 하나는 하나 이상의 하이브리드 메모리 큐브 허브 중 다른 하나에 동작 가능하게 결합되는 적어도 하나의 추가 패킷화된 메모리 링크를 포함하는, 데이터 프로세싱 시스템.
실시예 23. 실시예 19에 있어서, 두 개 이상의 데이터 취급 디바이스의 각각은 호스트 요청자 종점 및 데이터 취급 종점 중 하나 이상에 동작 가능하게 결합되는 데이터 버퍼로서, 데이터 취급 디바이스로의 링크 요청들을 위한 어드레스 공간을 정의하기 위한, 데이터 버퍼를 더 포함하는, 데이터 프로세싱 시스템.
실시예 24. 실시예 19에 있어서, 하나 이상의 하이브리드 메모리 큐브 허브는 링 토폴로지로 배열되는 적어도 두 개의 하이브리드 메모리 큐브 허브를 포함하는, 데이터 프로세싱 시스템.
실시예 25. 실시예 19에 있어서, 하나 이상의 하이브리드 메모리 큐브 허브는 하이브리드 링 토폴로지로 배열되는 적어도 두 개의 하이브리드 메모리 큐브 허브를 포함하는, 데이터 프로세싱 시스템.
실시예 26. 실시예 19 내지 25 중 어느 하나에 있어서, 하나 이상의 하이브리드 메모리 큐브 허브는 메쉬 토폴로지로 배열되는 적어도 두 개의 하이브리드 메모리 큐브 허브를 포함하는, 데이터 프로세싱 시스템.
실시예 27. 데이터 취급 디바이스로 데이터를 전달하는 방법으로서,
제1 데이터 취급 디바이스 상에서:
제1 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 하이브리드 메모리 큐브 디바이스로의 제1 하이브리드 메모리 큐브 링크 상에 패킷화된 메모리 요청들을 발생시키는 단계;
제2 하이브리드 메모리 큐브 링크 상에서 패킷화된 시스템 요청들을 수신하는 단계로서, 패킷화된 시스템 요청들은 제2 데이터 취급 디바이스로부터 발생되는, 패킷화된 시스템 요청들을 수신하는 단계; 및
패킷화된 시스템 요청들에 응답하는 단계를 포함하는, 방법.
실시예 28. 실시예 27에 있어서, 제1 데이터 취급 디바이스로의 패킷화된 시스템 요청들을 위한 어드레스 공간을 정의하기 위해 제1 데이터 취급 디바이스 상에서 패킷화된 시스템 요청들과 수신된 데이터를 버퍼링하는 단계를 더 포함하는, 방법.
실시예 29. 실시예 27 및 28 중 어느 하나에 있어서, 제1 데이터 취급 디바이스 상에 어드레스 공간을 정의하기 위해 패킷화된 시스템 요청들에 응답할 때 송신될 판독 데이터를 버퍼링하는 단계를 더 포함하는, 방법.
실시예 30. 실시예 27 내지 29 중 어느 하나에 있어서, 제2 데이터 취급 디바이스로 제1 데이터 취급 디바이스의 제1 하이브리드 메모리 큐브 링크 상에 패킷화된 시스템 요청들을 발생시키는 단계를 더 포함하는, 방법.
실시예 31. 실시예 27 내지 29 중 어느 하나에 있어서, 제2 데이터 취급 디바이스로 제1 데이터 취급 디바이스의 제2 하이브리드 메모리 큐브 링크 상에 패킷화된 시스템 요청들을 발생시키는 단계를 더 포함하는, 방법.
실시예 32. 실시예 27 내지 29 중 어느 하나에 있어서, 제2 데이터 취급 디바이스와 연관된 제2 메모리 도메인에서의 하이브리드 메모리 큐브 디바이스로 제1 데이터 취급 디바이스의 제1 하이브리드 메모리 큐브 링크 상에 패킷화된 메모리 요청들을 발생시키는 단계를 더 포함하는, 방법.
실시예 33. 실시예 27 내지 29 중 어느 하나에 있어서, 제2 데이터 취급 디바이스와 연관된 제2 메모리 도메인에서의 하이브리드 메모리 큐브 디바이스로의 제1 데이터 취급 디바이스의 제1 하이브리드 메모리 큐브 링크 상에 패킷화된 메모리 요청들을 발생시키는 단계를 더 포함하는, 방법.
실시예 34. 시스템에서 데이터를 전달하는 방법으로서,
제1 데이터 취급 디바이스 상의 호스트 요청자 종점으로부터 메모리 요청들을 발생시키는 단계;
제1 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로 제1 데이터 취급 디바이스에 결합되는 제1 패킷화된 메모리 링크 상의 메모리 요청들을 송신하는 단계;
제1 하이브리드 메모리 큐브에서 제2 데이터 취급 디바이스로부터의 시스템 요청들을 수신하는 단계;
시스템 요청들을 제1 하이브리드 메모리 큐브로부터 제1 데이터 취급 디바이스에 결합되는 제2 패킷화된 메모리 링크를 통해 제1 데이터 취급 디바이스 상의 데이터 취급 종점으로 전달하는 단계를 포함하는, 방법.
실시예 35. 실시예 34에 있어서,
제2 데이터 취급 디바이스 상의 호스트 요청자 종점으로부터 시스템 요청들을 발생시키는 단계;
제1 하이브리드 메모리 큐브에서 시스템 요청을 수신하기 전에:
제2 하이브리드 메모리 큐브에서 시스템 요청들을 수신하는 단계; 및
시스템 요청들을 제2 하이브리드 메모리 큐브로부터 제1 하이브리드 메모리 큐브로 전달하는 단계를 더 포함하는, 방법.
실시예 36. 실시예 34 및 35 중 어느 하나에 있어서, 메모리 요청들 중 몇몇을 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로부터 제2 데이터 취급 디바이스로 전달하는 단계를 더 포함하는, 방법.
실시예 37. 실시예 34 내지 36 중 어느 하나에 있어서, 메모리 요청들 중 몇몇을 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로부터 제1 메모리 도메인에서의 다른 하이브리드 메모리 큐브로 전달하는 단계를 더 포함하는, 방법.
실시예 38. 실시예 34 내지 37 중 어느 하나에 있어서, 메모리 요청들 중 몇몇을 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로부터 제2 데이터 취급 디바이스와 연관된 제2 메모리 도메인에서의 제2 하이브리드 메모리 큐브로 전달하는 단계를 더 포함하는, 방법.
실시예 39. 실시예 38에 있어서, 메모리 요청들 중 몇몇을 제2 하이브리드 메모리 큐브로부터 제2 데이터 취급 디바이스로 전달하는 단계를 더 포함하는, 방법.
실시예 40. 실시예 38에 있어서, 메모리 요청들 중 몇몇을 제2 하이브리드 메모리 큐브로부터 제2 메모리 도메인에서의 제3 하이브리드 메모리 큐브로 전달하는 단계를 더 포함하는, 방법.
실시예 41. 시스템에서 데이터를 전달하는 방법으로서,
제1 데이터 취급 디바이스 상의 호스트 요청자 종점으로부터 메모리 요청들을 발생키시는 단계;
제1 데이터 취급 디바이스와 연관된 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로의 제1 데이터 취급 디바이스에 결합되는 제1 패킷화된 메모리 링크 상에 메모리 요청들을 송신하는 단계;
제1 데이터 취급 디바이스 상의 데이터 취급 종점으로부터 시스템 요청들을 발생키시는 단계;
하이브리드 메모리 큐브 허브로 제1 데이터 취급 디바이스에 결합되는 제2 패킷화된 메모리 링크 상의 시스템 요청들을 송신하는 단계; 및
시스템 요청들 중 몇몇을 하이브리드 메모리 큐브로부터 제2 데이터 취급 디바이스로 전달하는 단계를 더 포함하는, 방법.
실시예 42. 실시예 41에 있어서,
제2 시스템 요청들을 제2 데이터 취급 디바이스로부터 하이브리드 메모리 큐브로 전달하는 단계; 및
제1 데이터 취급 디바이스 상의 데이터 취급 종점에서 제2 시스템 요청들을 수신하는 단계를 더 포함하는, 방법.
실시예 43. 실시예 41 및 42 중 어느 하나에 있어서, 시스템 요청들 중 몇몇을 하이브리드 메모리 큐브 허브로부터 하나 이상의 추가 메모리 큐브 허브로 전달하는 단계를 더 포함하는, 방법.
실시예 44. 실시예 43에 있어서, 시스템 요청들 중 몇몇을 하나 이상의 추가 메모리 큐브 허브로부터 하나 이상의 추가 데이터 취급 디바이스로 전달하는 단계를 더 포함하는, 방법.
실시예 45. 실시예 43에 있어서, 하이브리드 메모리 큐브 허브 및 하나 이상의 추가 메모리 큐브 허브 사이에 시스템 요청들 중 몇몇을 전달하는 단계는 링 토폴로지, 변형된 링 토폴로지, 및 메쉬 토폴로지로 이루어진 그룹으로부터 선택되는 상호 접속 토폴로지로 시스템 요청들을 전달하는 단계를 포함하는, 방법.
실시예 46. 실시예 43에 있어서, 메모리 요청들 중 몇몇을 제1 메모리 도메인에서의 제1 하이브리드 메모리 큐브로부터 제1 메모리 도메인에서의 다른 하이브리드 메모리 큐브로 전달하는 단계를 더 포함하는, 방법.
위에서 설명되고 첨두 도면들에 예시된 본 개시의 실시예들은 이들 실시예이 본 개시의 실시예들의 단지 예들이기 때문에, 본 발명의 범위를 제한하지 않는다. 본 발명은 첨부된 청구항들 및 이들의 법적 등가물들에 의해 정의된다. 임의의 등가 실시예들은 본 발명의 범위 내에 있다. 확실히, 여기에 제시되고 설명된 것들에 추가하여, 본 개시의 다양한 변형예, 이를테면 설명된 요소들의 대안적인 유용한 조합들은 설명으로부터 당해 기술 분야에서의 통상의 기술자들에 명백하게 될 것이다. 그러한 변형예들 및 실시예들은 또한 첨부된 청구항들 및 이들의 법적 등가물들의 범위 내에 있다.

Claims (23)

  1. 데이터 프로세싱 시스템으로서,
    제1 메모리 도메인의 제1 메모리 디바이스에 동작 가능하게 결합된 제1 데이터 취급 디바이스; 및
    제2 메모리 도메인의 제2 메모리 디바이스에 동작 가능하게 결합된 제2 데이터 취급 디바이스를 포함하고,
    상기 제1 데이터 취급 디바이스와 상기 제2 데이터 취급 디바이스는 이들 각각의 데이터 취급 종점들의 시스템 소스 링크들을 통해 서로 시스템 데이터를 통신하도록 구성되고,
    상기 제1 데이터 취급 디바이스와 상기 제1 메모리 디바이스는 상기 제1 데이터 취급 디바이스의 제1 데이터 요청자 종점을 통해 제1 로컬 요청 링크에 걸쳐 상기 제1 메모리 도메인을 위한 메모리 트래픽을 통신하도록 구성되고,
    상기 제2 데이터 취급 디바이스와 상기 제2 메모리 디바이스는 상기 제2 데이터 취급 디바이스의 제2 데이터 요청자 종점을 통해 제2 로컬 요청 링크에 걸쳐 상기 제2 메모리 도메인을 위한 메모리 트래픽을 통신하도록 구성되는,
    데이터 프로세싱 시스템.
  2. 청구항 1에 있어서,
    상기 제1 메모리 디바이스와 상기 제2 메모리 디바이스는 도메인 간 링크를 통해 상기 제1 메모리 도메인과 상기 제2 메모리 도메인 사이의 메모리 트래픽을 통신하도록 구성되는, 데이터 프로세싱 시스템.
  3. 청구항 1에 있어서,
    상기 제1 메모리 디바이스와 상기 제2 메모리 디바이스는 상기 제1 메모리 디바이스와 상기 제2 메모리 디바이스를 결합하는 도메인 간 링크를 통해 상기 제1 데이터 취급 디바이스와 상기 제2 데이터 취급 디바이스 사이의 상기 시스템 데이터의 인 사이투(in situ) 라우팅을 수행하도록 구성되는, 데이터 프로세싱 시스템.
  4. 청구항 1에 있어서,
    상기 제1 데이터 취급 디바이스 및 상기 제2 데이터 취급 디바이스와 동작 가능하게 결합되고, 상기 제1 메모리 디바이스와 상기 제2 메모리 디바이스를 통해 전송되지 않는 상기 제1 데이터 취급 디바이스와 상기 제2 데이터 취급 디바이스 사이의 상기 시스템 데이터의 전용 라우팅을 수행하도록 구성되는 제 1 메모리 허브를 더 포함하는, 데이터 프로세싱 시스템.
  5. 청구항 1에 있어서,
    상기 제1 메모리 디바이스 및 상기 제2 메모리 디바이스는 하이브리드 메모리 큐브인, 데이터 프로세싱 시스템.
  6. 청구항 1에 있어서,
    상기 시스템 데이터는 시스템 링크 트래픽을 포함하는, 데이터 프로세싱 시스템.
  7. 청구항 6에 있어서,
    상기 메모리 트래픽은 메모리 판독들과 메모리 기록들을 포함하는, 데이터 프로세싱 시스템.
  8. 청구항 6에 있어서,
    상기 시스템 링크 트래픽은 인코딩된 시스템 메시징 패킷들을 포함하는, 데이터 프로세싱 시스템.
  9. 청구항 6에 있어서,
    상기 시스템 링크 트래픽은 캐시 일관성 트래픽을 포함하는, 데이터 프로세싱 시스템.
  10. 청구항 1에 있어서,
    상기 제1 데이터 취급 디바이스와 상기 제2 데이터 취급 디바이스는 시스템 온 칩으로 구성되는, 데이터 프로세싱 시스템.
  11. 시스템에서 데이터를 전달하는 방법으로서, 상기 방법은,
    제1 데이터 취급 디바이스의 호스트 요청자 종점으로부터 메모리 요청들을 발생시키는 단계;
    상기 제1 데이터 취급 디바이스에 연관된 제1 메모리 도메인 내의 제1 하이브리드 메모리 큐브로 상기 제1 데이터 취급 디바이스에 결합된 제1 패킷화된 메모리 링크의 상기 메모리 요청들을 전송하는 단계;
    상기 제1 하이브리드 메모리 큐브에서 시스템 요청들을 수신하는 단계 - 상기 시스템 요청들은 제2 데이터 취급 디바이스로부터 옴 -; 및
    상기 제1 데이터 취급 디바이스에 결합된 제2 패킷화된 메모리 링크를 통해 상기 제1 하이브리드 메모리 큐브로부터 상기 제1 데이터 취급 디바이스의 데이터 취급 종점으로 상기 시스템 요청들을 전달하는 단계를 포함하는,
    시스템에서 데이터를 전달하는 방법.
  12. 청구항 11에 있어서,
    상기 제2 데이터 취급 디바이스의 호스트 요청자 종점으로부터 상기 시스템 요청들을 발생시키는 단계; 및
    상기 제1 하이브리드 메모리 큐브에서 시스템 요청을 수신하기 전에,
    제2 하이브리드 메모리 큐브에서 상기 시스템 요청들을 수신하는 단계; 및
    상기 제2 하이브리드 메모리 큐브로부터 상기 제1 하이브리드 메모리 큐브로 상기 시스템 요청들을 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  13. 청구항 11에 있어서,
    상기 제1 메모리 도메인 내의 상기 제1 하이브리드 메모리 큐브로부터 상기 제2 데이터 취급 디바이스로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  14. 청구항 11에 있어서,
    상기 제1 메모리 도메인 내의 상기 제1 하이브리드 메모리 큐브로부터 상기 제1 메모리 도메인 내의 다른 하이브리드 메모리 큐브로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  15. 청구항 11에 있어서,
    상기 제1 메모리 도메인 내의 상기 제1 하이브리드 메모리 큐브로부터 상기 제2 데이터 취급 디바이스와 연관된 제2 메모리 도메인 내의 제2 하이브리드 메모리 큐브로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  16. 청구항 15에 있어서,
    상기 제2 하이브리드 메모리 큐브로부터 상기 제2 데이터 취급 디바이스로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  17. 청구항 15에 있어서,
    상기 제2 하이브리드 메모리 큐브로부터 상기 제2 메모리 도메인 내의 제3 하이브리드 메모리 큐브로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  18. 시스템에서 데이터를 전달하는 방법으로서, 상기 방법은,
    제1 데이터 취급 디바이스의 호스트 요청자 종점으로부터 메모리 요청들을 발생시키는 단계;
    상기 제1 데이터 취급 디바이스에 연관된 제1 메모리 도메인 내의 제1 하이브리드 메모리 큐브로 상기 제1 데이터 취급 디바이스에 결합된 제1 패킷화된 메모리 링크의 상기 메모리 요청들을 전송하는 단계;
    상기 제1 데이터 취급 디바이스의 데이터 취급 종점으로부터 시스템 요청들을 발생시키는 단계;
    하이브리드 메모리 큐브 허브로 상기 제1 데이터 취급 디바이스에 결합된 제2 패킷화된 메모리 링크의 상기 시스템 요청들을 전송하는 단계; 및
    상기 하이브리드 메모리 큐브 허브로부터 제2 데이터 취급 디바이스로 상기 시스템 요청들 중 일부를 전달하는 단계를 포함하는,
    시스템에서 데이터를 전달하는 방법.
  19. 청구항 18에 있어서,
    상기 제2 데이터 취급 디바이스로부터 상기 하이브리드 메모리 큐브 허브로 제2 시스템 요청들을 전달하는 단계; 및
    상기 제1 데이터 취급 디바이스의 상기 데이터 취급 종점에서 상기 제2 시스템 요청들을 수신하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  20. 청구항 18에 있어서,
    상기 하이브리드 메모리 큐브 허브로부터 하나 이상의 추가 메모리 큐브 허브들로 상기 시스템 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  21. 청구항 20에 있어서,
    상기 하나 이상의 추가 메모리 큐브 허브들로부터 하나 이상의 추가 데이터 취급 디바이스들로 상기 시스템 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
  22. 청구항 20에 있어서,
    상기 하이브리드 메모리 큐브 허브와 상기 하나 이상의 추가 메모리 큐브 허브들 사이에 상기 시스템 요청들 중 일부를 전달하는 단계는 링 토폴로지, 변형된 링 토폴로지, 및 메쉬 토폴로지로 이루어진 그룹으로부터 선택되는 상호 접속 토폴로지로 시스템 요청들을 전달하는 단계를 포함하는,
    시스템에서 데이터를 전달하는 방법.
  23. 청구항 20에 있어서,
    상기 제1 메모리 도메인 내의 상기 제1 하이브리드 메모리 큐브로부터 상기 제1 메모리 도메인 내의 다른 하이브리드 메모리 큐브로 상기 메모리 요청들 중 일부를 전달하는 단계를 더 포함하는,
    시스템에서 데이터를 전달하는 방법.
KR1020187021869A 2014-05-09 2015-05-01 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들 KR101925266B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/273,867 US9558143B2 (en) 2014-05-09 2014-05-09 Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US14/273,867 2014-05-09
PCT/US2015/028873 WO2015171461A1 (en) 2014-05-09 2015-05-01 Interconnect systems and methods using hybrid memory cube links

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167034480A Division KR101885452B1 (ko) 2014-05-09 2015-05-01 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들

Publications (2)

Publication Number Publication Date
KR20180088526A KR20180088526A (ko) 2018-08-03
KR101925266B1 true KR101925266B1 (ko) 2018-12-04

Family

ID=54367966

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167034480A KR101885452B1 (ko) 2014-05-09 2015-05-01 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들
KR1020187021869A KR101925266B1 (ko) 2014-05-09 2015-05-01 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167034480A KR101885452B1 (ko) 2014-05-09 2015-05-01 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들

Country Status (7)

Country Link
US (4) US9558143B2 (ko)
EP (2) EP3140748B1 (ko)
JP (1) JP6522663B2 (ko)
KR (2) KR101885452B1 (ko)
CN (2) CN111190553B (ko)
TW (1) TWI584116B (ko)
WO (1) WO2015171461A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768689B2 (en) * 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
KR102338266B1 (ko) * 2015-09-15 2021-12-16 에스케이하이닉스 주식회사 메모리 네트워크 및 이를 포함하는 시스템
US10866854B2 (en) 2015-12-29 2020-12-15 Arteris, Inc. System and method for reducing ECC overhead and memory access bandwidth
US10528421B2 (en) * 2015-12-29 2020-01-07 Arteris, Inc. Protection scheme conversion
CN106445849B (zh) * 2016-10-21 2019-05-28 郑州云海信息技术有限公司 一种多控制器中处理有序命令的方法
US11397687B2 (en) 2017-01-25 2022-07-26 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
WO2019009585A1 (ko) * 2017-07-03 2019-01-10 한양대학교 산학협력단 저전력 모드를 위한 cpu측과 hmc측의 hmc 컨트롤 장치 및 방법과 hmc 컨트롤 장치의 전력 관리 방법
US10877839B2 (en) 2017-09-22 2020-12-29 Arteris, Inc. Recovery of a coherent system in the presence of an uncorrectable error
JP6991446B2 (ja) * 2018-05-18 2022-01-12 日本電信電話株式会社 パケット処理装置及びそのメモリアクセス制御方法
US20190042511A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Non volatile memory module for rack implementations
US10846250B2 (en) * 2018-11-12 2020-11-24 Arm Limited Apparatus and method for handling address decoding in a system-on-chip
US11030144B2 (en) * 2018-12-14 2021-06-08 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
KR20210063496A (ko) 2019-11-22 2021-06-02 삼성전자주식회사 프로세싱 회로를 포함하는 메모리 장치, 그리고 시스템 온 칩과 메모리 장치를 포함하는 전자 장치
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology
TWI802275B (zh) * 2022-02-16 2023-05-11 昱文 李 晶片系統架構
TWI817834B (zh) * 2022-11-18 2023-10-01 鯨鏈科技股份有限公司 記憶體架構及其資料處理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219197A1 (en) * 2007-04-12 2011-09-08 Rambus Inc. Memory Controllers, Systems, and Methods Supporting Multiple Request Modes
JP2012518843A (ja) 2009-02-19 2012-08-16 マイクロン テクノロジー, インク. メモリーネットワークの方法、装置、およびシステム

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
JP2931490B2 (ja) * 1992-12-18 1999-08-09 富士通株式会社 並列処理方式
JPH06314264A (ja) * 1993-05-06 1994-11-08 Nec Corp セルフ・ルーティング・クロスバー・スイッチ
US5561622A (en) 1993-09-13 1996-10-01 International Business Machines Corporation Integrated memory cube structure
US5541914A (en) 1994-01-19 1996-07-30 Krishnamoorthy; Ashok V. Packet-switched self-routing multistage interconnection network having contention-free fanout, low-loss routing, and fanin buffering to efficiently realize arbitrarily low packet loss
JP2790034B2 (ja) * 1994-03-28 1998-08-27 日本電気株式会社 非運用系メモリ更新方式
US5448511A (en) 1994-06-01 1995-09-05 Storage Technology Corporation Memory stack with an integrated interconnect and mounting structure
US5692155A (en) * 1995-04-19 1997-11-25 International Business Machines Corporation Method and apparatus for suspending multiple duplex pairs during back up processing to insure storage devices remain synchronized in a sequence consistent order
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US7012895B1 (en) * 2000-11-17 2006-03-14 University Of Kentucky Research Foundation Packet-switching network with symmetrical topology and method of routing packets
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
JP2003076670A (ja) * 2002-05-27 2003-03-14 Mitsumasa Koyanagi ネットワーク装置およびプロセッシングシステム
US6807600B2 (en) * 2002-07-24 2004-10-19 Intel Corporation Method, system, and program for memory based data transfer
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
DE112004000821B4 (de) * 2003-05-13 2016-12-01 Advanced Micro Devices, Inc. System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
US7471623B2 (en) * 2004-11-23 2008-12-30 Hewlett-Packard Development Company, L.P. Systems and methods for a unified computer system fabric
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7584335B2 (en) 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US8656082B2 (en) * 2008-08-05 2014-02-18 Micron Technology, Inc. Flexible and expandable memory architectures
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
US7929368B2 (en) * 2008-12-30 2011-04-19 Micron Technology, Inc. Variable memory refresh devices and methods
US8018752B2 (en) 2009-03-23 2011-09-13 Micron Technology, Inc. Configurable bandwidth memory devices and methods
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
WO2011036727A1 (ja) * 2009-09-25 2011-03-31 富士通株式会社 メモリシステム及びメモリシステムの制御方法
US20140013129A1 (en) 2012-07-09 2014-01-09 L. Pierre de Rochemont Hybrid computing module
WO2012061633A2 (en) 2010-11-03 2012-05-10 Netlist, Inc. Method and apparatus for optimizing driver load in a memory package
US9055076B1 (en) * 2011-06-23 2015-06-09 Amazon Technologies, Inc. System and method for distributed load balancing with load balancer clients for hosts
US8930714B2 (en) 2011-07-19 2015-01-06 Elwha Llc Encrypted memory
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US9092305B1 (en) * 2012-04-16 2015-07-28 Xilinx, Inc. Memory interface circuit
EP2856467A1 (en) * 2012-05-29 2015-04-08 MOSAID Technologies Incorporated Ring topology status indication
US20140015679A1 (en) 2012-07-15 2014-01-16 Green Badge LLC Specialty Plant Moisture Sensing
US9524248B2 (en) * 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US8885510B2 (en) * 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US9047417B2 (en) * 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US9065722B2 (en) * 2012-12-23 2015-06-23 Advanced Micro Devices, Inc. Die-stacked device with partitioned multi-hop network
US9331958B2 (en) * 2012-12-31 2016-05-03 Advanced Micro Devices, Inc. Distributed packet switching in a source routed cluster server
US9405688B2 (en) * 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
EP3028163A4 (en) * 2013-07-31 2017-07-12 Intel Corporation A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US9501222B2 (en) * 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110219197A1 (en) * 2007-04-12 2011-09-08 Rambus Inc. Memory Controllers, Systems, and Methods Supporting Multiple Request Modes
JP2012518843A (ja) 2009-02-19 2012-08-16 マイクロン テクノロジー, インク. メモリーネットワークの方法、装置、およびシステム

Also Published As

Publication number Publication date
US20150324319A1 (en) 2015-11-12
CN106462524B (zh) 2020-02-07
TWI584116B (zh) 2017-05-21
CN111190553B (zh) 2023-05-30
CN106462524A (zh) 2017-02-22
WO2015171461A1 (en) 2015-11-12
US20170131915A1 (en) 2017-05-11
US9558143B2 (en) 2017-01-31
KR101885452B1 (ko) 2018-08-03
KR20180088526A (ko) 2018-08-03
EP3140748A1 (en) 2017-03-15
US11132127B2 (en) 2021-09-28
EP4016317A1 (en) 2022-06-22
US10126947B2 (en) 2018-11-13
US20190012089A1 (en) 2019-01-10
EP3140748B1 (en) 2022-03-16
CN111190553A (zh) 2020-05-22
US20220011940A1 (en) 2022-01-13
KR20170002604A (ko) 2017-01-06
EP3140748A4 (en) 2018-01-03
JP6522663B2 (ja) 2019-05-29
JP2017517807A (ja) 2017-06-29
TW201606502A (zh) 2016-02-16
US11947798B2 (en) 2024-04-02

Similar Documents

Publication Publication Date Title
KR101925266B1 (ko) 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들
US20180024957A1 (en) Techniques to enable disaggregation of physical memory resources in a compute system
US11036658B2 (en) Light-weight memory expansion in a coherent memory system
US10922258B2 (en) Centralized-distributed mixed organization of shared memory for neural network processing
CN102866980B (zh) 用于多核微处理器片上互连网络的网络通信胞元
US11797311B2 (en) Asynchronous pipeline merging using long vector arbitration
US10601723B2 (en) Bandwidth matched scheduler
US20200192842A1 (en) Memory request chaining on bus
US11409539B2 (en) On-demand programmable atomic kernel loading
Akgun Interconnect Architecture Design for Emerging Integration Technologies
JP2023507330A (ja) 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用
Conway et al. The AMD Opteron™ CMP NorthBridge architecture: Now and in the future

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant