KR20060015324A - 트리 기반 메모리 구조 - Google Patents

트리 기반 메모리 구조 Download PDF

Info

Publication number
KR20060015324A
KR20060015324A KR1020057022895A KR20057022895A KR20060015324A KR 20060015324 A KR20060015324 A KR 20060015324A KR 1020057022895 A KR1020057022895 A KR 1020057022895A KR 20057022895 A KR20057022895 A KR 20057022895A KR 20060015324 A KR20060015324 A KR 20060015324A
Authority
KR
South Korea
Prior art keywords
memory
hub
hub device
message
data
Prior art date
Application number
KR1020057022895A
Other languages
English (en)
Inventor
데이비드 프레임
칼 모리츠
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20060015324A publication Critical patent/KR20060015324A/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • 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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Abstract

트리 기반 토폴로지를 갖는 메모리 아키텍처가 개시되어 있다. 메모리 장치들은 메모리 액세스 요청을 서비스하고 메모리 장치의 네트워크 내의 데이터를 관리하는 인텔리전트 메모리 허브를 가지고 짝지어 진다. 메모리 허브들은 동적으로 네트워크 토폴로지를 인식할 수 있어 불량 디바이스 또는 추가 또는 삭제 디바이스들을 보상한다. 메모리 아키텍처는 또한 입출력 디바이스를 지원하고 다수의 시스템 사이에서 공유된다.
트리 기반 토폴로지, 허브 디바이스, 메모리 액세스 요청, 메모리 장치

Description

트리 기반 메모리 구조{TREE BASED MEMORY STRUCTURE}
본 발명의 실시예들은 메모리 아키텍처의 분야에 관한 것이다. 구체적으로, 본 발명의 실시예들은 트리 기반 네트워크된 메모리 아키텍처에 관한 것이다.
종래의 컴퓨터 시스템은 저장 용량의 점에서 스케일할 수 있는 능력이 제한된 메모리 아키텍처를 이용한다. 종래의 메모리 아키텍처는 64GByte 이상의 메모리를 지원할 수 없다. 여러 요인들이 종래의 메모리 아키텍처의 능력을 이 한계 이하의 스케일로 제한한다. 메모리 아키텍처의 확장성(scalability)을 제한하는 중요한 요인은 신호 무결성(signal integrity)의 유지이다. 종래의 메모리 아키텍처는, 원거리에 걸쳐 전선관(conduit)을 통한 신호의 자연스러운 왜곡 및 약화로 인해 메모리 장치를 어드레싱하거나 제어하는데 관여된 신호가 송신될 수 있는 물리적 거리를 확장하기 위해서 리피터(repeater) 구조를 사용한다.
그러나, 리피터 구조는 신호의 대기 시간(latency)을 증가시키고 또한 전체 거리에 대한 상한을 가지며, 그 결과 지원될 수 있는 메모리 아키텍처의 전체 용량을 갖는다. 리피터 구조는 단일 선형 경로 내의 신호의 세기를 올린다. 리피터 구조는 하나의 통신 채널 이상의 팬 아웃(fan out)을 허용하지 않는다. 이것은 단일 레벨에 대한 메모리 구조의 깊이를 제한한다(즉, 칩셋-리피터 구조 - 메모리 장 치). 종래의 메모리 아키텍처에서 리피터 구조를 통해 메모리 장치에 송신된 요청은 전체 리피터 채널이 단일 전선관의 역할을 함에 따라 하나씩 송신되어야만 한다. 그러므로, 요청을 송신할 때에는 요청이 완료될 때까지 임의의 다른 사용을 방지하면서 전선관의 전체 길이가 사용된다.
본 발명의 실시예들은 예로서 도시되고 첨부한 도면에 제한되지 않으며, 첨부한 도면 내의 동일한 참조 번호는 유사한 요소를 나타낸다. 본 명세서 내에서 "하나의(an)" 또는 "일(one)" 실시예에 대한 참조는 동일한 실시예에 대한 것일 필요는 없고, 그러한 참조는 적어도 하나를 의미한다.
도 1은 네트워크된 메모리 아키텍처를 갖는 시스템도이다.
도 2a는 아웃바운드 초기화 프로세스의 흐름도이다.
도 2b는 인바운드 초기화 프로세스의 흐름도이다.
도 3은 네트워크된 메모리 아키텍처에서 허브에 대한 메시징 프로세스의 흐름도이다.
도 1은 네트워크된 메모리 아키텍처를 사용하는 전형적인 시스템(100)의 블럭도이다. 시스템(100)은 컴퓨터 시스템(102)을 포함한다. 컴퓨터 시스템(102)은 개인용 컴퓨터, 서버, 워크스테이션, 메인프레임 또는 유사한 컴퓨터일 수 있다. 컴퓨터 시스템(102)은 컴퓨터 판독가능 명령들의 세트 내에 일체화된 프로그램을 실행하는 CPU(101)를 포함한다. 컴퓨터 시스템(102)은 멀티 프로세싱을 위해 추가 CPU(103)를 포함할 수 있다. CPU(101)는 통신 허브(hub) 또는 통신 칩셋(105)과 접속된다. 통신 허브(105)는 CPU들(101, 103)과, 메모리 서브시스템(130), 주변 장치들(109), 저장 장치들(111), 네트워크 통신(107) 및 유사한 서브시스템 사이의 통신을 관리한다. 일 실시예에서, 통신 허브(105)는 이들 사이의 통신 작업량(communication work)을 분리하는 노스 브리지(north bridge) 및 사우스 브리지(south bridge)와 같은 여러 구성 요소들로 분리될 수 있다.
일 실시예에서, 통신 허브(105)는 메모리 허브(115)와의 독립 링크에 의해 메모리 서브시스템(130)에 접속된다. 또 다른 실시예에서, 통신 허브(105)는 메모리 허브들을 분리하기 위한 여러 독립 링크들을 가질 수 있다. 일 실시예에서, 통신 허브(105)는 메모리 서브시스템(130) 내에서 메모리 허브들의 구성을 관리한다. 또 다른 실시예에서, 메모리 서브시스템(130)의 관리는 메모리 허브들 자체 사이에서 주로 분산된다. 통신 허브(105)는 포워딩 테이블을 유지하고 메모리 서브시스템(130)의 토폴로지(topology)를 추적할 수 있다.
일 실시예에서, 메모리 서브시스템(130)은 트리 기반(tree based) 네트워크이다. 통신 허브(105)는 메모리 서브시스템(130)의 루트(root)의 기능을 한다. 메모리 서브시스템(130)을 통한 통신은 주로 통신 허브(105)와 함께 시작하거나 종료한다. 통신 허브(105)는, 메모리 액세스(예를 들면, 판독 및 기입 명령), 자원 액세스(예를 들면, 메모리 허브에 접속된 디바이스들에의 액세스)에 대한 메시지의 송신 및 메모리 허브에 의해 실행될 동작들에 대한 명령의 송신을 포함하여, CPU들(101, 103)에 서비스하기 위해 메모리 서브시스템(130)에 자원 요청을 생성한다.
메모리 허브(115)는 메모리 장치들(117)의 세트에 접속된다. 메모리 장치들(117)은 DIMM(dual in line memory module), SIMM(single in line memory module), SRAM(static random access memory), SDRAM(synchronous dynamic random access memory), DDR RAM(double data rate random access memory devices) 및 유사한 메모리 장치들을 포함하는 임의의 타입 또는 구성일 수 있다. 허브(115)에 결합된 디바이스들에 대한 기술의 물리적 제한에 이르기까지 소정의 수의 메모리 장치들(117)이 허브(115)에 접속될 수 있다.
메모리 허브(115)는 또한 입출력 포트(131)를 포함할 수 있다. 입출력 포트(131)는 주변 장치들(119)을 메모리 서브시스템(130)에 결합시키는데 사용될 수 있다. 메모리 허브(115)에 접속된 입출력 장치들(119)은 메모리 맵핑된 장치들일 수 있으며, 이들에 할당된 주소 공간을 가지거나 시스템(100) 및 메모리 서브시스템(130)과 유사하게 인터페이스될 수 있다. 메모리 허브(115)에 링크된 각 디바이스는 다른 메모리 허브들(133), 입출력 장치들(119) 및 통신 허브(105)를 포함하는 독립 링크를 갖는다. 독립 링크는, 두 개의 단부 포인트들 사이에서 메시지를 송신하거나 수신하지 않을 때 이용가능한 포인트-투-포인트(point to point) 링크이다. 그러므로, 메모리 허브(115)는 다른 링크들(131, 135) 상에서 관련없는 메시지들을 동시에 송신하거나 수신할 수 있다.
일 실시예에서, 메모리 허브(115)는 ASIC(application specific integrated circuit)일 수 있다. 메모리 허브(115)는 메시지 내의 명령들을 수신할 수 있으며 그 명령을 실행할 수 있다. 메모리 허브(115)에 의해 수행될 수 있는 기능들은 ASIC의 복잡도 및 처리 능력에 따라 특정되거나 일반적일 수 있다. 예를 들면, 메모리 허브(115)는 메모리 장치들(117)의 콘텐츠를 재정비(reorder)하거나 메모리 장치(117) 내에 저장된 데이터의 계산 또는 조작(manipulation)을 수행하는 명령들의 세트를 실행시킬 수 있다. 일 실시예에서, 메모리 허브(115)는 할당된 동작을 수행하기 위한 '스크래치 메모리(scratch memory)'로서 로컬 메모리 장치들(117)의 일부를 사용한다. 일 실시예에서, 메모리 허브(115)로 송신된 명령들은 다상성(multiphasic) 인코딩 방법론을 사용한다. 메모리 허브(115)는, 메모리 내의 데이터에 대한 매트릭스 연산과 같은 복잡한(complex) 연산을 수행하는 작업으로부터 단지 최소한의 메모리 및 자원 액세스 작업까지 일련의 작업들을 수행하도록 설계될 수 있다.
일 실시예에서, 메모리 허브(115)는 임의의 수의 추가 메모리 허브들에 접속될 수 있다. 추가 메모리 허브들은 메모리 허브(115)와 동일한 ASIC 구성 요소일 수 있다. 추가 메모리 허브들은 입출력 장치(119) 및 다른 메모리 허브들(115)과 같은 각각의 접속 장치들과 독립 링크를 갖는다. 다른 메모리 허브들에 대한 링크는 또한 리던던트(redundant) 링크(121)를 포함할 수 있다. 리던던트 링크(121)는 손상되거나 오동작하는 허브, 링크 또는 메모리 장치들을 극복(overcome)하기 위해서 메모리 서브 시스템(130)의 재프로그래밍을 가능하게 한다. 이러한 재프로그래밍은 영향받은 구성 요소들 주변의 메시지를 재송신하고(reroute), 메모리 서브시스템(130)의 토포그래피(topography)로부터 구성 요소들을 제거한다. 일 실시예에서, 재송신(rerouting)은 각 메모리 허브 및 통신 허브(105)에 의해 유지된 포워딩 테이블을 변경함으로써 완성된다. 메모리 허브들간의 링크는 광학 매체, 플렉스 케이블(flex cable), 인쇄 회로 기판 및 유사한 기술을 포함하는 포인트-투-포인트 통신을 지원하는 임의의 물리적 아키텍처를 사용하여 구현될 수 있다.
일 실시예에서, 메모리 허브들은 트리 유사 토폴로지에서 서로 접속된다. 트리의 루트는 메모리 허브(115) 또는 통신 허브(105)일 수 있다. 일 실시예에서, 통신 허브(105)는 트리 네트워크의 루트로서 기능하고, 메모리 허브의 구성을 통제(direct)함으로써 메모리 서브시스템(130)을 적극적으로(actively) 관리할 수 있다. 또 다른 실시예에서, 메모리 서브시스템(130)의 기능은 통신 허브(105)에게 명백(transparent)하다. 통신 허브(105)는 메모리 및 자원 요청을 프라이머리(primary) 메모리 허브(115)에게만 송신할 수 있으며, 프라이머리 메모리 허브는 메모리 서브시스템(130)을 관리하거나 분산 관리 스킴의 일부로서 동작한다. 통신 허브(105)는 하나 이상의 메모리 허브(115)와 직접 연결될 수 있다.
트리 토폴로지는 브랜치 노드(branch node)에 대한 임의의 레벨의 팬아웃(fanout)을 가지고 브랜치 확장하는 루트 노드와, 루트로부터 멀어지는 임의의 수의 레벨일 수 있는 리프 노드(leaf node)를 갖는 토폴로지이다. 또다른 실시예에서, 네트워크의 토폴로지는 메시(mesh), 하이브리드(hybrid) 또는 유사한 토폴로지이다. 네트워크의 토폴로지는 순환적(cyclic)이거나 비순환적(acyclic)일 수 있다. 비순환적 물리적 메모리 서브시스템 토폴로지는 순환하는(circular) 경로 내에서 메시지를 송신하는 것을 금지하도록 메모리 허브 내에 순환 체크 또는 지정(directed) 논리 토폴로지를 포함할 것이다.
상술한 바와 같이, 토폴로지가 일반적인 트리 구조일 때, 리던던트 링크는 메모리 허브간의 신뢰성을 향상시키고 통신 대기 시간을 단축시키기 위해서 사용될 수 있다. 일 실시예에서, 토폴로지는 트리 구조 내에 다중 레벨을 포함한다. 각 레벨은 통신 허브(105) 또는 루트에 대한 경로의 길이에 의해 결정된다. 예를 들면, 메모리 허브(115)는 토폴로지의 제1 레벨이고, 메모리 허브(133)는 토폴로지의 제2 레벨이다. 트리 구조의 더 낮은 레벨에 있는 메모리 허브 및 메모리 장치들(즉, 루트에 가장 가까운 구성 요소들)은 가장 짧은 대기 시간을 가지며, 가장 높은 레벨에 있는 허브들 및 메모리 장치들은 가장 긴 대기 시간을 갖는다.
따라서, 메모리 시스템(130)은 데이터의 사용 및 메모리 허브의 레벨의 중요도 또는 빈도에 기초하여 메모리 사용을 우선하도록 구성될 수 있다. 가장 빈번히 액세스되는 데이터는 더 낮은 레벨에 놓여질 수 있는 반면, 덜 빈번히 액세스되는 데이터는 토폴로지의 더 높은 레벨에 놓여진다. 그러므로, 빈번히 사용된 데이터는 보다 적은 지연 시간을 가지고 검색될 수 있으며, 덜 빈번히 사용된 데이터는 빈번히 사용된 데이터보다 더 많은 대기 시간을 가지고 검색될 수 있다. 토폴로지는 64GByte보다 큰 메모리 사이즈를 지원할 것이다. 더 높은 레벨의 데이터의 대기 시간이라도, 하드 디스크, 컴팩트 디스크, 또는 유사한 매체와 같은 고정식 또는 탈착식 저장 장치들 내에 저장된 데이터에 대한 검색 시간보다 적다. 그러므로, 전체 시스템(100) 검색 시간은 단일 계층의 메모리만을 갖고 64GByte 용량보다 작은 용량을 갖는 종래의 시스템에 비하여 향상되는데, 이는 메모리 서브시스템 내에 더 많은 데이터가 저장될 수 있어 메모리 액세스보다 수백 수천배 더 큰 액세스 시간을 갖는 고정식 또는 탈착식 매체에 대한 액세스를 줄여주기 때문이고, 또한 메모리 저장은 사용 빈도를 토대로 순서화될 수 있어 캐시(cache)와 유사하게 액세스 시간을 향상시키기 때문이다.
일 실시예에서, 메모리 허브간의 링크는 둘 이상의 기본 트리 구조 메모리 서브시스템을 브리지하는 링크들(123)을 포함할 수 있다. 브리지 링크(123)는 추가 CPU(125) 및 컴퓨터 시스템(141)을 컴퓨터 시스템(102)에 네트워크하는데 사용될 수 있다. 브리지는 다수의 시스템들 간에 메모리 공간, 주소 공간, 및 시스템 자원들의 공유를 허용한다. 브리지(123) 없이 시스템(100)에서 사용된 기본 트리 기반 메시징 시스템 및 포워딩 스킴은 브리지 시스템(100) 상에서 동작하도록 스케일된다. 일 실시예에서, 각 통신 허브는 루트의 역할을 할 수 있으며 각각 리던던트 토폴로지 데이터를 유지한다. 또다른 실시예에서, 단일 통신 허브는 마스터 통신 허브가 되고, 다른 통신 허브는 메모리 서브시스템(130)을 유지하는데 있어서 할당된 기능을 수행하는 슬레이브 디바이스들이다. 또 다른 실시예에서, 관리는 모든 메모리 허브들 및 통신 허브들 중에서 분산된다.
일 실시예에서, 메모리 허브들은 임의의 메시징 프로토콜 또는 명령들의 세트를 사용하여 이들 사이에서 통신할 수 있다. 메모리 허브 내의 ASIC은 메시지 포맷을 해석하고 이들 내에 포함된 임의의 명령들을 실행하도록 설계된다. 일 실시예에서, 메시지는 포맷된 패킷 또는 유사한 메시지들일 수 있다. 또 다른 실시예에서, 메시지들은 인터럽트(interrupt)와 같은 단순 신호들일 수 있다. 일 실시예에서, 메모리 허브들 및 통신 허브(105) 간의 통신은 다상성 인코딩, 언어 단어(language word) 기반 통신 프로토콜 또는 유사한 통신 프로토콜을 사용한다.
도 2a는 메모리 허브들에 의해 시스템(100) 내의 초기화(initialization) 메시지들의 처리에 대한 흐름도이다. 초기화 단계는 시스템 시동(start up), 재시동 또는 유사한 이벤트 시에 발생한다. 초기화 단계는 컴퓨터 시스템(102) 내의 통신 허브(105)에 의해 시작될 수 있다. 오류가 발생하거나 메모리 서브시스템(130)의 구성이 변화한다면, 재초기화(reinitialization)가 시작될 수 있다. 구성의 변화가 검출된 후, 컴퓨터 시스템(102)은 결과로서 새로운 구성을 결정하기 위해서 재초기화 단계를 시작한다. 예를 들면, 메모리 서브시스템(130)은 구성 요소들의 '핫 플러깅(hot plugging)' 또는 구성 요소들의 제거를 지원한다. '핫 플러깅' 및 동적 재구성을 지원하기 위해서, 데이터가 메모리 서브시스템(130) 내의 메모리 장치들(117)의 다중 세트 내에 여분으로(redundantly) 저장될 수 있다. 메모리 서브시스템(130)은 단일 논리 주소에 대한 다중 물리적 메모리 위치를 지원한다. 또 다른 실시예에서, 초기화 단계는 메모리 허브에 의해 초기화될 수 있다.
통신 허브(105) 또는 메모리 허브(115)는 시스템(100) 시동 시에 초기화 메시지를 생성한다. 이 메시지는 메모리 서브시스템(130)의 제1 레벨 내의 허브에 송신된다(블럭 201). 메시지는 임의의 포맷을 가질 수 있다. 메시지는 메시지의 발신자(originator)에게 송신될 응답 메시지를 생성하기 위해서 각 수신 메모리 허브를 프롬프트한다(블럭 203). 응답 메시지는 응답 메시지를 발생하는 허브에 대한 기본 구성 정보를 포함한다. 메시지 내에 포함된 정보는 허브에 접속된 메모리 장치들에 할당된 주소 공간과, 메모리 장치의 타입 및 특성, 메모리 허브에 대한 포트 정보, 인접 허브 정보, 토폴로지 정보 및 유사한 정보를 포함할 수 있다. 일 실시예에서, 각 메모리 허브는 초기화 단계 동안, 그 자신에게 주소 공간을 독립적으로 할당한다. 통신 허브는 충돌하는 할당을 중재할 수 있으며, 또는, 허브는 충돌을 해결하기 위한 분산 중재 스킴을 수행한다. 또 다른 실시예에서, 통신 허브는 주소 공간을 각 허브 또는 메모리 장치에 통일된 방법(centralized manner)으로 할당한다. 시스템(100)이 파워 다운될 경우에도 구성 데이터를 유지하기 위해서, 메모리 허브들은 EEPROM, 또는 유사한 저장 장치들을 포함할 수 있다.
일 실시예에서, 응답 메시지는 초기화 요청을 시작한 장치에 송신된다(블럭 205). 응답 메시지는 초기화 메시지를 운반한 장치를 통해 송신된다. 일 실시예에서, 응답 메시지가 송신된 후, 허브는 초기화 메시지를 허브에 송신한 이웃을 제외하고, 초기화 메시지를 그 인접한 허브들 각각에 포워드한다(블럭 207). 또 다른 실시예에서, 허브는 응답 메시지의 생성과 동시에 또는 그 이전에 초기화 메시지를 포워드한다. 메모리 허브는, 메시지를 수신하는 다음 메모리 허브가 그것이 수신하는 모든 응답 메시지를 발신측 장치에 다시 송신하는 경로를 알도록 메시지를 포워드한 각 메모리 허브를 포함하는 초기화 메시지 내의 저장된 경로를 구축하기 위해서 포워드된 메시지 내에 그 자신을 식별하는 데이터를 포함할 수 있다. 또 다른 실시예에서, 각 허브는 리턴 응답을 기다리도록 인접 허브들에게 송신된 초기화 메시지를 추적(track)한다. 각각 보내는 메시지에 대해 추적된 정보는 요청의 발신 포트, 메시지에 대한 식별 태그, 및 유사한 정보와 같은 메시지에 대한 포워딩 정보를 포함한다.
각각의 인접 허브는 포워드된 초기화 메시지를 수신한다. 그 후, 인접 허브는 인접 허브에 대한 구성 데이터 및 유사한 데이터와, 그 첨부된 메모리 장치들을 포함하는 응답 메시지를 생성한다(블럭 209). 응답 메시지는 또한 허브에 접속된 메모리 장치에 할당된 주소 공간 범위, 메모리 장치 타입 및 특성, 메모리 허브에 대한 포트 정보, 인접 허브 정보, 토폴로지 정보 및 유사한 정보를 포함할 수 있다.
각각의 이웃은 초기화 메시지를 시작한 장치로의 궁극적인 운반을 위해서 그 응답 메시지를 초기화 메시지를 포워드한 허브에 송신한다(블럭 211). 각 인접 허브는 이것이 리프 허브인지를 결정한다(즉, 허브는 초기화 메시지를 송신한 허브 외에 어떤 이웃들도 가지지 않음)(블럭 213). 인접 허브가 리프 허브라면, 프로세스가 종료한다(블럭 217). 그러나, 인접 허브가 그 자신의 인접하는 허브를 갖는다면, 그 인접하는 허브들 각각에 초기화 메시지를 포워드한다(블럭 215). 이 프로세스는 모든 허브가 초기화 메시지를 수신하고 응답 메시지를 송신할 때까지 반복된다.
도 2b는 초기화 프로세스 동안 인바운드(inbound) 메시지 처리에 관한 흐름도이다. 메시지는 인접하는 메모리 허브로부터 독립 링크를 통해 수신된다(블럭 251). 임의의 메모리 허브가 인바운드 메시지(즉, 발신 장치가 지정된 다른 메모리 허브로부터의 응답 메시지)를 수신할 때, 메모리 허브는 이웃들에 대한 그 자신의 로컬 정보 및 메모리 서브시스템(130)의 토폴로지를 추가하기 위해서 메시지를 분석한다.
이 허브는, 응답 메시지를 생성한 메모리 허브에 대한 구성 데이터 및 다른 허브 또는 메모리 시스템(130)의 토폴로지에 대해 그 안에 기록된 임의의 데이터를 기록하기 위해서 들어오는 메시지를 조사(examine)한다(블럭 253). 일 실시예에서, 응답 메시지를 처리하는 각 메모리 허브는, 메시지가 트리 구조 메모리 서브 시스템의 루트와 응답을 생성한 메모리 허브 사이에 놓인 메모리 허브들을 식별하는 완전한 경로 정보를 포함하도록 메시지가 취한 경로에 관한 데이터를 메시지에 추가한다. 이 데이터는, 각 허브가 유지하는 네트워크의 토폴로지를 식별하도록 메시지를 처리하는 각 메모리 허브에 의해 사용되어질 수 있다.
메시지 내에 데이터를 기록하고, 임의의 추가 데이터를 포함하도록 메시지를 변경한 후, 메모리 허브는 초기화 메시지를 발신하는 수신 장치(destination device)를 향해 메시지를 포워드한다(블럭 255). 메모리 허브는 그 이웃들 중 누구에게 메시지를 송신하는지를 결정하도록 초기화 메시지를 수신할 때 저장된 추적 정보를 사용한다. 아웃바운드(outbound) 메시징 프로세스와 연결된 이 프로세서는 각 메모리 허브에 충분한 토폴로지 데이터를 공급하여 트리 구조의 '브랜치' 내에서 초기화 후의 메시지를 처리한다. 일 실시예에서, 통신 허브(105)는 모든 응답 데이터를 모으고 메모리 서브시스템(130)의 전체 토폴로지를 표시(map out)할 수 있다. 통신 허브(105)는 또한 완전한 토폴로지 정보를 각각의 메모리 허브들에 송신하거나 허브의 토폴로지 또는 세팅을 재구성하는 구성 메시지의 세트를 생성할 수 있다.
메모리 서브시스템(130) 조직은, 메모리 사용, 데이터의 타입, 데이터와 관련된 애플리케이션의 타입 및 유사한 그룹화(grouping)에 기초한 계층의 세트 또는 유사한 구성을 통해 정의된 경로에 따라 데이터를 그룹화함으로써 최적화될 수 있다. 일 실시예에서, 데이터는 관련된 데이터가 다수의 메모리 허브들 간에 저장될 수 있도록 메모리 서브시스템(130) 내에서 조직될 수 있다. 이 데이터의 일부가 액세스된다면, 메모리 허브들은 이 액세스가 또한 이들 허브와 관련된 메모리 장치들 내에 저장된 데이터를 포함할 경우 이 액세스를 나타내는 메시지를 다른 메모리 허브들에게 송신할 수 있다. 일 실시예에서, 데이터는 허브의 대기 시간에 따라서 허브를 가로질러 조직될 수 있다. 빈번하게 액세스되는 데이터는 더 낮은 대기 시간으로 허브 내에 저장될 수 있다(더 낮은 계층 허브). 다수의 허브들 간에 데이터는 액세스되는 데이터의 캐싱(caching)을 포함하는 액세스 요청에 의해 리턴될 수 있다. 또 다른 실시예에서, 메모리 서브 시스템(130) 조직은 허브와 관련된 메모리 장치 타입에 따른 데이터를 그룹화함으로써 최적화될 수 있다(예를 들면, DDR RAM, SDRAM 또는 유사한 디바이스들).
도 3은 정상 동작 중에 메모리 허브에 의해 메시지를 처리하는 프로세스에 대한 흐름도이다. 통상적인 동작은 판독 및 기입 동작과, 입출력 장치(119)에 대한 입출력 동작을 포함한다. 대부분의 메시지들은 통신 허브(105)와 메모리 서브시스템의 더 낮은 레벨에 있는 메모리 허브 사이에서 송신된다. 대부분의 메시지들은 자원 요청으로서 통신 허브(105)로부터 발신되고 메모리 허브로부터 응답 메시지를 생성한다.
각 메모리 허브는 독립 링크 또는 채널을 통해 다른 메모리 허브 또는 통신 허브(105)로부터 메시지를 수신할 수 있다(블럭 301). 메모리 허브는 메시지의 수신 주소 또는 요청된 자원이 메모리 장치(117)를 통해 메모리 허브가 관리하는 주소 공간 범위와 일치하는지를 결정하도록 메시지를 조사한다(블럭 303). 메시지가 메모리 허브에 대해 의도된다면, 메모리 허브는 수행될 동작의 타입을 식별한다. 이후에 메모리 허브는 요청을 처리한다(블럭 305). 메모리 허브가 이에 연결된 메모리 장치들을 액세스하는 경우에, 요청은 메모리 액세스 요청을 포함할 수 있다. 이 메시지는 또한 메모리 허브에 의해 실행될 명령의 세트를 포함할 수 있다. 요청 메시지들은 또한 메모리 허브의 포트로부터 데이터를 요청할 수 있다. 일 실시예에서, 메모리 액세스 또는 포트 데이터 요청은 메모리 허브에 의해 지연될 수 있다. 메모리 서브시스템(130), 통신 허브(105), 또는 다른 컴퓨터 시스템 내의 임의의 포인트로부터 발신한 메모리 또는 데이터 액세스 요청은 개방형(open) 통신 링크를 유지하기 위해서 지연될 수 있다. 이는, 메모리 허브가 요청된 데이터를 검색하거나 상기 수신된 요청에 대한 동작을 수행하는 동안 사용을 위해 개방되어 있는 메모리 허브들간의 통신 링크를 허용한다.
메모리 허브가 요청에 대한 그 처리를 완료할 때, 응답 메시지를 생성할 수 있다(블럭 309). 응답 메시지가 생성되는지 여부는 메모리 허브에 의해 수행된 동작의 타입에 따른다. 예를 들어, 기입 동작은 메모리 허브로부터 임의의 응답 메시지를 요구하지 않을 수 있다. 그러나, 판독 동작은 요청된 데이터를 포함하는 응답 메시지의 생성을 필요로 할 수 있다.
응답 메시지가 생성되거나 또는 또다른 메모리 허브에 대해서 요청 메시지가 수신된다면, 메모리 허브는 메시지의 수신 주소를 확인하여 메시지를 포워드하는 방법을 결정한다(블럭 307). 초기화 단계 후에, 각각의 허브는 트리 구조의 브랜치 또는 ASIC 또는 메모리 장치(117) 내의 저장 장치 내에 저장된 전체 메모리 서브시스템(130)에 대한 토폴로지 정보를 갖는다. 토폴로지 데이터로부터, 메모리 허브는 포워딩 테이블 또는 각각의 출력 포트와 관련된 주소를 맵핑하는 유사한 구조를 생성할 수 있다. 메모리 허브를 수신지로 하지 않는 메시지가 도착한 경우에, 포워딩 테이블은 메시지를 포워딩하는 출력 포트를 결정하기 위해서 수신 주소 또는 자원 식별자를 비교하는데 사용된다. 이 후에, 이 메시지는 그 포트 상에서 포워드된다(블럭 311). 이 프로세스는 메시지가 그 수신지에 도달할 때까지 각 메모리 허브에서 발생한다. 이 프로세스는 인바운드(즉, 루트 허브(115) 또는 통신 허브(105)로부터 의도된 메시지) 및 아웃바운드(통신 허브(105)로부터 메모리 허브로의 메시지) 메시지에 모두 적용된다. 일 실시예에서, 응답 메시지는 작업(예를 들면, 기입 요청 또는 명령의 세트의 실행 또는 유사한 요청)이 완료됨을 나타내는 인터럽트 또는 유사한 신호일 수 있다. 마찬가지로, 인터럽트 또는 유사한 신호는, 메모리 주소가 보안 애플리케이션 및 디버깅 애플리케이션을 용이하게 하도록 액세스되었음을 나타내도록 메모리 허브 또는 메모리 서브시스템(130)에 의해 사용될 수 있다. 메모리 서브시스템(130)에 의해 생성된 인터럽트는 통신 허브(105) 또는 컴퓨터 시스템(141), 다른 메모리 허브 또는 유사한 시스템에 의해 처리될 수 있다.
일 실시예에서, 메모리 서브시스템(130)은 오동작 메모리 허브 또는 메모리 장치들의 검출 및 손상(disabling)을 동적으로 지원한다. 이는 시스템(100)의 신뢰성 및 가동 시간(up time)을 향상시킨다. 오동작 허브 및 메모리 유닛 또는 비반응(non-responsive) 유닛의 이웃은 구성 요소의 오류 또는 비반응을 검출할 때 오류 메시지를 생성한다. 일 실시예에서, 오류 메시지는 통신 허브(105)에 송신될 수 있다. 이후에 통신 허브(105)는 오류 동작 유닛이 원위치(replace)될 때까지 메시지의 네트워크 라우팅을 인식하도록 인식 메시지를 잔류 메모리 허브에 송신할 수 있다. 통신 허브(105)는 또한 인식에 영향을 미치는 시스템(100)을 재초기화할 수 있다.
일 실시예에서, 통신 허브(105) 또는 메모리 허브는 방송(broadcasting) 메시지를 지원할 수 있다. 방송은 통신 허브(105) 또는 메모리 허브에 메시지를 송신한 이웃을 제외하고 각 이웃에게 메시지를 송신한다. 메모리 시스템(130)의 초기화 또는 재초기화 동안 방송이 사용된다. 방송은 또한, 구성의 변화를 모든 허브들에게 통지하기 위해서 분산 재구성(distributed reconfiguration) 동안에도 사용될 수 있다. 또 다른 실시예에서, 방송은 각각의 메모리 허브에 의해 실행된 명령들을 포함하거나 또는 유사한 환경에 있는 메시지를 송신하는데 사용될 수 있다. 예를 들어, 방송 메시지는 모든 메모리 장치 또는 데이터 아이템 또는 파라미터를 위한 메모리 장치의 세트를 검색하기 위해서 사용되어 질 수 있다. 메모리 허브가 요청된 아이템을 관련된 메모리 장치 내에 위치시킬 때, 방송 메시지의 발신자에게 응답 메시지를 생성할 수 있다. 이것은 메모리 서브시스템(130) 내의 메모리 장치의 패러렐 검색을 가능하게 한다.
시스템(100)은 신호 무결성 및 대기 시간 관리를 유지하는 동안 메모리의 문한한 확장을 허용하는 분산 시스템이다. 신호 무결성은, 메모리 서브시스템(130) 내의 동작이 허브간의 포인트-투-포인트 메시징에 의해 독립 통신 링크 상에서 동작하기 때문에 유지된다. 메시지의 포인트-투-포인트 통신은 리피터 구조에 의해 긴 전선관 경로를 통해 신호를 부스팅하는 대신에 포인트들 사이에 공지된 메시지의 오류 체킹과 재송신을 허용한다. 시스템(100)은 또한 다중 프로세서 시스템에 의해 대규모 메모리 공간의 공유를 허용한다. 시스템(100)은 또한 데스크톱 컴퓨터와 같은 독립형 머신(stand alone machine)이 적당하다. 시스템(100)은 데이터의 리던던트 경로 및 리던던트 저장을 가능하게 함으로써 신뢰성과 정확성을 향상시킨다. 시스템(100)은, 시스템(100)을 공유하는 컴퓨터들, 애플리케이션들 또는 운영 시스템들 사이에서, 메모리의 분할(partitioning)을 지원함으로써 보안 기능을 용이하게 한다. 분할은 단일 컴퓨터, 사용자, 또는 애플리케이션의 사용 또는 그 그룹에 대해 지정될 수 있다. 메모리의 분할 또는 일부는 또한 이를 보호하기 위해서 권한 없는 사용으로부터 암호화될 수 있다. 마찬가지로, 시스템(100)은 메모리 허브들 사이에서 루트 허브와의 암호화된 통신을 지원한다. 일 실시예에서, 시스템(100)은 디버깅 및 보안 애플리케이션에 의한 사용을 용이하게 하기 위해서 메시지 추적을 지원한다. 일 실시예에서, 메모리 허브와 관련된 각 허브 및 주소 공간은 메모리 허브에 의해 강행된 보안 액세스 제한을 가질 수 있다. 보안 제한은 특정 요청 사용자, 애플리케이션 또는 시스템에게만 액세스를 허용할 수 있다. 또 다른 실시예에서, 메모리 허브는 보안 키, 코드 또는 유사한 메카니즘에 기초하여 액세스를 제한할 수 있다. 권한없는 액세스는 추적될 수 있으며, 임의의 보안 위반 또는 보안 위반의 시도에 대해 시스템 또는 통신 허브(105)에게 경보를 발하도록 인터럽트가 생성될 수 있다.
전술한 명세서에서, 본 발명은 특정 실시예를 참조하여 기술되었다. 그러나, 첨부한 특허청구범위에서 설명한 바와 같이, 본 발명의 실시예의 보다 넓은 정신 및 범주에서 벗어나지 않고 다양한 변형 및 변경이 이뤄질 수 있다. 따라서, 명세서 및 도면은, 제한적 의미보다는 예시적 의미로 간주될 것이다.

Claims (27)

  1. 데이터를 저장하기 위한 제1 메모리 장치;
    상기 적어도 하나의 메모리 장치에 연결된 제1 허브 디바이스 - 상기 허브 디바이스는 상기 제1 메모리 장치에 대한 메모리 액세스 요청들을 처리함 - ;
    포인트-투-포인트(point to point) 링크에 의해서 상기 제1 허브 디바이스에 연결되고 제2 메모리 장치에 대한 메모리 액세스 요청들을 처리하기 위해서 상기 제2 메모리 장치에 연결되는 제2 허브 디바이스;
    상기 제2 허브 디바이스에 연결된 데이터를 저장하기 위한 상기 제2 메모리 장치
    를 포함하는 장치.
  2. 제1항에 있어서,
    제3 메모리 장치 및 제1 허브 디바이스에 연결된 제3 허브 디바이스 - 상기 허브 디바이스는 상기 제3 메모리 장치에 대한 메모리 액세스 요청을 처리함 - ; 및
    상기 제3 허브 디바이스에 연결된 데이터를 저장하기 위한 상기 제3 메모리 장치
    를 더 포함하는 장치.
  3. 제1항에 있어서, 상기 제1 허브 디바이스는 메모리 액세스 요청을 분석하고 출력 포트를 결정하며, 상기 메모리 액세스 요청을 출력 포트에 포워드하는 장치.
  4. 제1항에 있어서, 상기 제1 허브 디바이스는 메시지 내에 수신된 명령들의 세트를 처리하는 장치.
  5. 트리 토폴로지(tree topology)로 구성된 허브 디바이스들의 세트; 및
    메모리 장치들의 세트 - 각각의 메모리 장치는 단일 허브 디바이스에 연결됨 -
    를 포함하는 시스템.
  6. 제5항에 있어서, 각각의 허브 디바이스에는 주소 공간이 할당되는 시스템.
  7. 제6항에 있어서, 각각의 허브 디바이스는 메모리 액세스 요청을 분석하여, 상기 허브 디바이스의 상기 할당된 주소 공간에 적용되는지를 결정하는 시스템.
  8. 제1 CPU;
    제2 CPU;
    상기 제1 CPU, 상기 제2 CPU 및 제1 메모리 서브시스템 간의 통신을 관리하는 제1 통신 허브;
    상기 제1 통신 허브와 연결된 상기 제1 메모리 서브시스템 - 상기 제1 메모리 서브시스템은 트리 토폴로지로 배열된 서브 디바이스들의 제1 세트를 포함함 -; 및
    메모리 장치들의 세트 - 각각의 메모리 장치는 허브 디바이스에 연결됨 -
    를 포함하는 시스템.
  9. 제8항에 있어서,
    제2 CPU;
    상기 제2 CPU 및 제2 메모리 서브시스템 간의 통신을 관리하는 제2 통신 허브;
    상기 제2 통신 허브에 연결된 상기 제2 메모리 서브 시스템 - 상기 제2 메모리 서브시스템은 허브 디바이스들의 제2 세트를 포함함 -; 및
    상기 제2 메모리 서브시스템을 상기 제1 메모리 서브시스템에 접속하기 위한 링크
    를 더 포함하는 시스템.
  10. 제8항에 있어서, 상기 메모리 장치들의 세트는 64GByte보다 큰 저장 공간을 포함하고,
    상기 메모리 장치들의 세트는 랜덤 액세스 메모리 모듈들의 세트인 시스템.
  11. 제8항에 있어서, 상기 제1 메모리 서브시스템은 허브 디바이스들 간의 리던던트(redundant) 링크를 포함하는 시스템.
  12. 제8항에 있어서, 상기 허브 디바이스는 입출력 장치에 연결된 입출력 포트를 포함하는 시스템.
  13. 초기화(initialization) 메시지를 제1 메모리 허브 디바이스에 송신하는 단계;
    응답 메시지를 송신하는 단계 - 상기 응답 메시지는 상기 제1 메모리 허브 디바이스에 대한 구성 데이터를 포함함 - ; 및
    상기 초기화 메시지를 제2 메모리 허브 디바이스에 포워딩하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 제1 메모리 허브 디바이스에 의해 상기 제2 메모리 허브 디바이스로부터의 응답 메시지를 분석하는 단계
    를 더 포함하는 방법.
  15. 제13항에 있어서, 상기 응답 메시지는 상기 제2 메모리 허브 디바이스에 연결된 메모리 장치에 대한 데이터를 포함하는 방법.
  16. 제14항에 있어서,
    제2 허브 디바이스에 관한 데이터를 응답 메시지 내에 수신된 제1 메모리 허브 디바이스 내에 저장하는 단계를 더 포함하는 방법.
  17. 제13항에 있어서,
    제2 허브 디바이스로부터의 상기 응답 메시지를 초기화 메시지 발신 디바이스로 포워딩하는 단계를 더 포함하는 방법.
  18. 제1 메모리 허브 디바이스에 의해 자원 요청 메시지를 분석하는 단계;
    상기 제1 메모리 허브 디바이스가 상기 자원 요청을 서비스할 수 있는지를 결정하는 단계; 및
    상기 제1 메모리 허브 디바이스가 상기 요청을 서비스할 수 없다면, 상기 자원 요청 메시지를 제2 메모리 허브 디바이스에 포워딩하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 제1 메모리 허브 디바이스에 의해 상기 자원 요청 메시지를 서비스하는 단계를 더 포함하는 방법.
  20. 제18항에 있어서,
    상기 자원 요청 메시지의 발신자(originator)에게 응답 메시지를 송신하는 단계를 더 포함하는 방법.
  21. 제20항에 있어서, 상기 응답 메시지는 요청된 데이터를 포함하는 방법.
  22. 데이터 저장 네트워크 내에 데이터를 저장(save)하는 수단;
    상기 데이터 저장 네트워크 내의 데이터를 검색(retrieve)하는 수단; 및
    상기 데이터 저장 네트워크 내의 데이터의 위치를 결정하는 수단
    을 포함하는 장치.
  23. 제22항에 있어서, 상기 데이터 저장 네트워크는 트리 토폴로지를 갖는 장치.
  24. 제22항에 있어서,
    상기 데이터 저장 네트워크를 구성하는 수단을 더 포함하는 장치.
  25. 머신(machine) 판독 가능 매체로서, 실행될 때,
    제1 메모리 허브 디바이스에 의해 자원 요청 메시지를 분석하는 단계;
    상기 제1 메모리 허브 디바이스가 상기 자원 요청을 서비스할 수 있는지를 결정하는 단계; 및
    상기 제1 메모리 허브 디바이스가 상기 요청을 서비스할 수 없다면, 상기 자원 요청 메시지를 제2 메모리 허브 디바이스에 포워딩하는 단계
    를 포함하는 동작의 세트를 머신으로 하여금 수행하게 하는 명령들을 저장하고 있는 머신 판독 가능 매체.
  26. 제25항에 있어서, 실행될 때, 상기 머신으로 하여금,
    상기 제1 메모리 허브 디바이스에 의해 명령들의 세트를 실행하는 단계를 더 포함하는 동작의 세트를 수행하게 하는 명령들을 더 포함하는 머신 판독 가능 매체.
  27. 제25항에 있어서, 실행될 때, 상기 머신으로 하여금,
    상기 제1 메모리 허브 디바이스에 연결된 제1 메모리 장치 내에 저장된 데이터를 제2 메모리 허브 디바이스에 연결된 제2 메모리 장치로 이동시키는 단계를 더 포함하는 동작의 세트를 수행하게 하는 명령들을 더 포함하는 머신 판독 가능 매체.
KR1020057022895A 2003-05-30 2004-05-20 트리 기반 메모리 구조 KR20060015324A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/449,216 US20040243769A1 (en) 2003-05-30 2003-05-30 Tree based memory structure
US10/449,216 2003-05-30

Publications (1)

Publication Number Publication Date
KR20060015324A true KR20060015324A (ko) 2006-02-16

Family

ID=33451712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022895A KR20060015324A (ko) 2003-05-30 2004-05-20 트리 기반 메모리 구조

Country Status (7)

Country Link
US (1) US20040243769A1 (ko)
EP (1) EP1629390A2 (ko)
JP (1) JP4290730B2 (ko)
KR (1) KR20060015324A (ko)
CN (1) CN1799034B (ko)
TW (1) TWI237171B (ko)
WO (1) WO2004109500A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010002411A1 (en) * 2008-07-03 2010-01-07 Hewlett-Packard Development Company, L.P. Memory server

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7350048B1 (en) * 2004-10-28 2008-03-25 Sun Microsystems, Inc. Memory system topology
KR101375763B1 (ko) * 2005-04-21 2014-03-19 바이올린 메모리 인코포레이티드 상호접속 시스템
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
DE102006045113B3 (de) * 2006-09-25 2008-04-03 Qimonda Ag Speichermodul-System, Speichermodul, Buffer-Bauelement, Speichermodul-Platine, und Verfahren zum Betreiben eines Speichermoduls
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7809913B2 (en) * 2007-06-27 2010-10-05 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting multiple speed bus
US7822936B2 (en) * 2007-06-27 2010-10-26 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting replication of command data
US7921264B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Dual-mode memory chip for high capacity memory subsystem
US8037272B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting multiple speed bus
US7921271B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Hub for supporting high capacity memory subsystem
US8019949B2 (en) * 2007-06-27 2011-09-13 International Business Machines Corporation High capacity memory subsystem architecture storing interleaved data for reduced bus speed
US20090006774A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus
US7818512B2 (en) * 2007-06-27 2010-10-19 International Business Machines Corporation High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules
US8037258B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for dual-mode memory chip for high capacity memory subsystem
US8037270B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data
US7996641B2 (en) * 2007-06-27 2011-08-09 International Business Machines Corporation Structure for hub for supporting high capacity memory subsystem
US8381220B2 (en) * 2007-10-31 2013-02-19 International Business Machines Corporation Job scheduling and distribution on a partitioned compute tree based on job priority and network utilization
US8874810B2 (en) * 2007-11-26 2014-10-28 Spansion Llc System and method for read data buffering wherein analyzing policy determines whether to decrement or increment the count of internal or external buffers
US20100241783A1 (en) * 2009-03-23 2010-09-23 Honeywell International Inc. Memory node for use within a data storage system having a plurality of interconnected memory nodes
WO2014193592A2 (en) * 2013-05-29 2014-12-04 Sandisk Technologies Inc. High performance system topology for nand memory systems
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9239768B2 (en) * 2013-08-21 2016-01-19 Advantest Corporation Distributed pin map memory
US9703702B2 (en) 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
EP3298501B1 (en) * 2015-07-31 2019-11-13 Hewlett-Packard Enterprise Development LP Methods to create logical trees of memory systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0596651A1 (en) * 1992-11-02 1994-05-11 National Semiconductor Corporation Network for data communication with isochronous capability
US5392285A (en) * 1993-03-31 1995-02-21 Intel Corporation Cascading twisted pair ethernet hubs by designating one hub as a master and designating all other hubs as slaves
US5675735A (en) * 1994-06-29 1997-10-07 Digital Equipment Corporation Method and apparatus for interconnecting network devices in a networking hub
US5812792A (en) * 1994-07-22 1998-09-22 Network Peripherals, Inc. Use of video DRAM for memory storage in a local area network port of a switching hub
US6175571B1 (en) * 1994-07-22 2001-01-16 Network Peripherals, Inc. Distributed memory switching hub
US6172983B1 (en) * 1997-03-13 2001-01-09 Siemens Information And Communication Networks, Inc. Hub dominated method and system for managing network collisions
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6385695B1 (en) * 1999-11-09 2002-05-07 International Business Machines Corporation Method and system for maintaining allocation information on data castout from an upper level cache
US6785785B2 (en) * 2000-01-25 2004-08-31 Hewlett-Packard Development Company, L.P. Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency
US6751684B2 (en) * 2000-12-21 2004-06-15 Jonathan M. Owen System and method of allocating bandwidth to a plurality of devices interconnected by a plurality of point-to-point communication links
US20020161453A1 (en) * 2001-04-25 2002-10-31 Peltier Michael G. Collective memory network for parallel processing and method therefor
US6934300B2 (en) * 2001-05-04 2005-08-23 M&S Systems, L.P. Initialization method for an entertainment and communications network
US6615322B2 (en) * 2001-06-21 2003-09-02 International Business Machines Corporation Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6754117B2 (en) * 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7146480B2 (en) * 2003-01-23 2006-12-05 Hewlett-Packard Development Company, L.P. Configurable memory system
US20040225725A1 (en) * 2003-02-19 2004-11-11 Nec Corporation Network system, learning bridge node, learning method and its program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010002411A1 (en) * 2008-07-03 2010-01-07 Hewlett-Packard Development Company, L.P. Memory server
US9575889B2 (en) 2008-07-03 2017-02-21 Hewlett Packard Enterprise Development Lp Memory server

Also Published As

Publication number Publication date
TW200502731A (en) 2005-01-16
JP2006526226A (ja) 2006-11-16
WO2004109500A2 (en) 2004-12-16
CN1799034A (zh) 2006-07-05
WO2004109500A3 (en) 2005-07-14
JP4290730B2 (ja) 2009-07-08
TWI237171B (en) 2005-08-01
EP1629390A2 (en) 2006-03-01
US20040243769A1 (en) 2004-12-02
CN1799034B (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
KR20060015324A (ko) 트리 기반 메모리 구조
US10805406B2 (en) Zone redundant computing services using multiple local services in distributed computing systems
US5117350A (en) Memory address mechanism in a distributed memory architecture
US8996611B2 (en) Parallel serialization of request processing
USRE47289E1 (en) Server system and operation method thereof
JP6607783B2 (ja) 分散キャッシュクラスタ管理
US8572206B2 (en) Transaction processing using multiple protocol engines
US20220394084A1 (en) Method and apparatus for computing network edge, device, and medium
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US7251698B2 (en) Address space management in systems having multiple multi-processor clusters
US20020083270A1 (en) Data storage systems and methods which utilize an on-board cache
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
CN104603739A (zh) 对并行存储的块级访问
CN1264080A (zh) 具有共享干预支持的非均匀存贮器存取(numa)数据处理系统
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
US20050251599A1 (en) Globally unique transaction identifiers
CN107329704A (zh) 一种缓存镜像方法及控制器
US8930640B2 (en) Multiprocessor computer system with reduced directory requirement
JP2003186742A (ja) ディレクトリ・キャッシュの更新
US6351798B1 (en) Address resolution unit and address resolution method for a multiprocessor system
US20070150699A1 (en) Firm partitioning in a system with a point-to-point interconnect
CN102833295A (zh) 分布式缓存系统中的数据操作方法和装置
CN106790521B (zh) 采用基于ftp的节点设备进行分布式组网的系统及方法
JP2005309648A (ja) ファイル配置システム
JPH10240695A (ja) Sciシステムにおける複数の未処理要求の局所記憶装置を用いた操作

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J501 Disposition of invalidation of trial
J121 Written withdrawal of request for trial
WITB Written withdrawal of application