KR101095025B1 - 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 - Google Patents

직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 Download PDF

Info

Publication number
KR101095025B1
KR101095025B1 KR1020057021598A KR20057021598A KR101095025B1 KR 101095025 B1 KR101095025 B1 KR 101095025B1 KR 1020057021598 A KR1020057021598 A KR 1020057021598A KR 20057021598 A KR20057021598 A KR 20057021598A KR 101095025 B1 KR101095025 B1 KR 101095025B1
Authority
KR
South Korea
Prior art keywords
memory
unidirectional
uplink
host
packets
Prior art date
Application number
KR1020057021598A
Other languages
English (en)
Other versions
KR20060009345A (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 KR20060009345A publication Critical patent/KR20060009345A/ko
Application granted granted Critical
Publication of KR101095025B1 publication Critical patent/KR101095025B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 모듈들(150A-B)의 직렬 연결 체인에 연결된 호스트(100)를 포함하는 시스템(50). 일 실시예에서, 메모리 모듈들 각각은 메모리 모듈 상의 복수의 메모리 칩들(261)로의 액세스를 제어하는 메모리 제어 허브(160)를 포함한다. 메모리 모듈들은 직렬 체인으로 복수의 메모리 링크들(110)을 통해 호스트로 연결된다. 각 메모리 링크는 호스트로 향하는 트랜잭션들을 운반하는 업링크(211)와 호스트에서 시작하여 체인 내의 다음 메모리 모듈로의 트랜잭션들을 운반하는 다운링크(212)를 포함한다. 업링크 및 다운링크는 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하는 패킷들을 사용하는 트랜잭션들을 운반한다. 메모리 제어 허브는 트랜잭션의 디코딩에 독립적으로 제 1 메모리 링크의 제 1 다운링크 및 제 2 메모리 링크의 제 2 다운링크 상에서 수신된 트랜잭션을 운반한다.

Description

직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에 결합된 호스트를 포함하는 시스템{A SYSTEM INCLUDING A HOST CONNECTED TO A PLURALITY OF MEMORY MODULES VIA A SERIAL MEMORY INTERCONNECT}
본 발명은 컴퓨터 시스템 메모리에 관한 것이고, 더욱 상세하게는 메모리 모듈 구성과 메모리 서브시스템 토폴로지(topology)에 관한 것이다.
수많은 컴퓨터 시스템은 최종 사용자의 요구에 따라 구성되는 주 시스템 메모리를 채택한다. 이러한 시스템에서, 마더보드나 시스템 보드는 수많은 메모리 확장 소켓을 포함한다. 메모리 모듈로 불리는 하나 이상의 소형 회로 보드들이 컴퓨터 시스템의 메모리 용량을 증가시키기 위해 필요한 때 소켓에 삽입된다. 메모리 모듈 각각은 통상적으로 소정의 메모리 용량을 제공하는 복수의 메모리 장치들을 포함한다. 메모리 장치는 일반적으로 일부 유형의 DRAM을 사용하여 구현된다. DRAM 유형의 일부 예는 동기식 DRAM(SDRAM) 뿐만 아니라 DDR SDRAM (double date rate SDRAM)도 포함한다.
종래의 컴퓨터 시스템에서, 메모리 모듈들은 어드레스, 제어 및 데이터 신호(address, control and data signal)를 포함하는 메모리 버스를 통해 메모리/DRAM 제어기에 연결된다. 일부 컴퓨터 시스템에서, 어드레스, 제어 및 데이터 신호는 다 중 송신되고 따라서 동일 와이어(wire) 세트를 공유한다. 다른 컴퓨터 시스템에서, 어드레스, 제어 및 데이터 신호는 개별적인 와이어를 사용한다. 상기 양 경우에서, 메모리 모듈들이 삽입시에 메모리/DRAM 제어기에 병렬로 결합된 것과 같이, 어드레스 및 제어 신호 각각은 확장 소켓 각각에 라우팅된다. 일부 시스템에서, 메모리/DRAM 제어기는 시스템 프로세서와 같이 동일한 집적 회로(IC) 칩에 상주하는 반면, 다른 시스템에서 메모리/DRAM 제어기는 칩셋(chipset)의 하나의 IC(예컨대, 노스브리지(northbridge))에 상주한다.
컴퓨터 시스템 프로세서의 동작 속도는 계속 증가하고 있지만, 주 시스템 메모리의 상대적인 성능은 동일한 비율로 개선되지 않는다. 이는 적어도 부분적으로, 전술한 메모리 버스 아키텍처의 대역폭에 있어서 증분적 개선 때문이다.
복수의 메모리 모듈을 포함하는 시스템의 다양한 실시예가 개시된다. 일 실시예에서, 호스트는 직렬 결합된 메모리 모듈 체인에 연결된다.
일 특정 실시에서, 메모리 모듈 각각은 메모리 모듈 상의 복수의 메모리 칩들로의 액세스를 제어하는 메모리 제어 허브(hub)를 포함한다. 게다가, 메모리 모듈들은 복수의 메모리 링크를 통해 호스트에 직렬 체인으로 연결된다. 각각의 메모리 링크는 호스트로 향하는 트랜잭션들을 운반하는 업링크와 호스트에서 시작하여 체인 내의 다음 메모리 모듈로 향하는 트랜잭션들을 운반하는 다운링크를 포함한다. 업링크와 다운링크 각각은 제어 및 구성 패킷(control and configuration packet)과 메모리 액세스 패킷(memory access packet)을 포함하는 패킷들을 사용하여 트랜잭션들을 운반하는 복수의 신호를 포함하는 단방향 링크이다.
다른 특정 실시에서, 메모리 제어 허브는 제 1 메모리 링크의 제 1 다운링크 상에서 수신된 트랜잭션을 디코드한다. 또한, 메모리 제어 허브는 트랜잭션의 디코딩에 독립하여 제 2 메모리 링크의 제 2 다운링크 상에 트랜잭션을 전달한다.
또 다른 특정 실시에서, 메모리 제어 허브는, 트랜잭션을 메모리 제어 허브에 관련된 메모리 어드레스와 매칭하는 메모리 어드레스를 갖는 메모리 명령으로 디코딩하는 것에 응답하여 메모리 칩들에 액세스하는 DRAM 제어기를 포함한다.
도 1은 직렬 결합된 메모리 모듈 체인을 포함하는 시스템의 일 실시예의 블록 다이어그램이다.
도 2는 도 1에 도시된 메모리 모듈과 같은 메모리 모듈의 일 실시예의 블록 다이어그램이다.
도 3은 도 2에 도시된 다운링크 제어 유닛과 같은 다운링크 제어 유닛의 일 실시예의 블록 다이어그램이다.
도 4는 도 2에 도시된 업링크 제어 유닛과 같은 업링크 제어 유닛의 일 실시예의 블록 다이어그램이다.
도 5A는 구성 읽기 패킷의 일 실시예의 다이어그램이다.
도 5B는 구성 쓰기 패킷의 일 실시예의 다이어그램이다.
도 5C는 메모리 읽기 패킷의 일 실시예의 다이어그램이다.
도 5D는 메모리 쓰기 패킷의 일 실시예의 다이어그램이다.
도 6은 컴퓨터 시스템의 일 실시예의 블록 다이어그램이다.
본 발명은 다양한 변형들과 대체 형상들이 가능하나, 이들의 특정 실시예들이 도면에 예로서 도시되며 본 명세서에서 상세하게 설명될 것이다. 그러나, 특정 실시예들에 대한 도면과 상세한 설명은 본 발명을 개시된 특정 형태로 한정하는 것이 아니라, 이와 반대로, 첨부된 청구항들에 의해 정의된 발명의 사상과 범위 내에 있는 모든 변형물, 균등물과 대체물을 포괄하도록 의도된다는 것을 이해해야 한다. 주목할 사항으로, 제목은 단지 구성적인 목적일 뿐이며 설명 또는 구성을 한정하거나 해석하는데 사용되도록 의도되지 않는다. 게다가, 본 출원에서 단어 "것이다"는 허용적인 의미(즉, ~할 가능성이 있는, ~할 수 있는)로 사용된다. 용어 "포함한다" 및 이의 파생어는 "포함하지만, 이에 제한되지 않는"을 의미한다. 용어 "결합된"은 "직접적으로 또는 간접적으로 결합된"을 의미하고, 용어 "연결된"은 "직접적으로 또는 간접적으로 연결된"을 의미한다.
도 1에서, 직렬로 결합된 메모리 모듈 체인을 포함하는 시스템의 일 실시예의 블록 다이어그램이 도시된다. 시스템(50)은 메모리 링크(110A)를 통해 시스템 메모리(125)에 연결된 호스트(100)를 포함한다. 시스템(50)은 예를 들면 컴퓨터 시스템이나 서버 시스템과 같은 연산 장치의 일부로서 동작하도록 구성된다. 시스템 메모리(125)는 메모리 링크(110B)를 통해 메모리 모듈(150B)에 연결된 메모리 모듈(150A)을 포함한다. 메모리 모듈(150B)은 메모리 링크(110C)에 연결되며, 이 메모리 링크(110C)는 호스트(100)에 직렬로 결합된 메모리 모듈 체인을 형성하기 위해 필요하다면 추가 메모리 모듈(도시되지 않음)에 연결될 것이다. 주목할 사항으로, 체인 내에 두 개의 메모리 모듈이 도시되고 있지만, 이러한 방식으로 하나 이상의 메모리 모듈이 결합될 수 있다. 또한, 참조 번호 다음에 참조 문자를 포함하는 요소들은 일반적으로 참조 번호만으로 지칭될 수 있다. 예를 들면, 일반적으로 모든 메모리 모듈을 지칭할 때, 메모리 모듈(150)로 표시될 수 있다.
도시된 실시예에서, 메모리 모듈(150A)은 메모리 칩(171A 내지 171N)으로 표시된 복수의 메모리 장치에 연결된 메모리 제어 허브(160A)를 포함하고, 여기서 N은 필요에 따라 어떤 숫자도 가능하다. 일 실시예에서, 메모리 제어 허브(160A)는 임의의 유형의 메모리 상호접속부(interconnect)를 통해 메모리 칩들에 연결될 수 있다. 예를 들면, 일 실시예에서, 메모리 상호접속부는 일반적인 어드레스, 제어 및 데이터 버스 구성이다.
유사하게, 메모리 모듈(150B)은 메모리 칩(181A 내지 181N)으로 표시된 복수의 메모리 장치에 연결된 메모리 제어 허브(160B)를 포함하고, 여기서 N은 필요에 따라 어떤 숫자도 가능하다. 일 실시예에서, 메모리 제어 허브(160A)는 전술한 바와 같이 임의의 유형의 메모리 상호접속부를 통해 메모리 칩들에 연결될 수 있다. 주목할 사항으로, 메모리 칩(171A 내지 171N 및 181A 내지 181N) 각각은 예를 들면 DRAM 군 메모리 장치 내의 메모리 장치와 같은 모든 유형의 메모리 장치일 수 있다.
도시된 실시예에서, 메모리 링크(110A-110C)는 메모리 상호접속부를 형성한다. 일 실시예에서, 메모리 링크(110A-110C) 각각은 두 개의 단방향 라인들 세트로 구현되는 점대점 메모리 상호접속부(point to point memory interconnect)를 형성한다. 하나의 단방향 라인들 세트는 다운링크로 불리고 호스트(100)로부터 멀리 다운스트림 방향으로 트랜잭션들을 운반하도록 구성된다. 다른 단방향 라인들 세트는 업링크로 불리고 호스트(100)를 향해 업스트림 방향으로 트랜잭션들을 운반하도록 구성된다. 추가로, 일 실시예에서, 각 단방향 라인들 세트는 복수의 서로 다른 신호 쌍을 사용하여 구현된다. 일 실시예에서, 각 메모리 링크(110)는 18-비트 다운링크와 16-비트 업링크를 포함하는바, 여기서 각 비트는 서로 다른 신호 쌍이다. 도 5A 내지 도 5B에 관해서 더욱 상세하게 설명하는 바와 같이, 메모리 링크(110)에 의해 형성된 메모리 상호접속부는 패킷들을 운반하도록 구성된다.
일반적으로, 호스트(100)로부터의 모든 트랜잭션들은 다운링크 상에서 모든 메모리 모듈(150)을 통해 다운스트림 방향으로 흐르고, 모든 응답 트랜잭션들은 응답 메모리 모듈(150)로부터 업링크 상에서 각 업스트림 메모리 모듈(150)을 통해 업스트림 방향으로 흐른다. 더욱 상세하게, 일 실시예에서, 호스트(100)는 시스템 메모리(125) 내의 데이터를 검색하거나 저장할 것을 요청한다. 호스트(100)의 요청에 응답하여, 메모리 제어기(105)는 예를 들면 메모리 읽기 트랜잭션이나 메모리 쓰기 트랜잭션과 같은 대응하는 트랜잭션을 초기화한다. 메모리 제어기(105)는 메모리 링크(110A)를 통해 상기 트랜잭션을 시스템 메모리(125)로 전송한다. 도시된 실시예에서, 상기 트랜잭션은 메모리 모듈(150A)의 메모리 제어 허브(160A)에 의해 수신된다.
트랜잭션의 수신에 응답하여, 메모리 제어 허브(160A)는 트랜잭션을 디코딩함이 없이 메모리 링크(110B)를 통해 상기 수신된 트랜잭션을 메모리 모듈(150B)로 전송하도록 구성된다. 이는 트랜잭션 다운스트림 전송으로 불린다. 따라서, 주어진 메모리 모듈(150)의 메모리 제어 허브(160)에 의해 다운링크 상에서 수신된 각 트랜잭션은, 트랜잭션을 디코딩함이 없이 다운링크에 연결된 체인의 다음 메모리 모듈(150)에 전송된다. 일 실시예에서, 트랜잭션의 디코딩은 트랜잭션의 전송과 병행하여 일어날 수 있다. 다른 실시예에서, 트랜잭션의 디코딩은 트랜잭션이 전송된 후에 일어난다. 다운스트림 전송 기능의 더욱 상세한 설명은 도 3의 기재로부터 알 수 있다.
유사하게, 메모리 제어기(105)가 예를 들면 읽기 요청 트랜잭션을 개시하면, 요청 내의 어드레스에 대응하는 메모리 위치를 갖는 메모리 모듈(150)이 요청된 데이터로 응답할 것이다. 상기 응답은 호스트(100)로 향하는 메모리 모듈의 업링크 상으로 전송된다. 만약, 전송 메모리 모듈과 호스트(100) 사이에 개입하는 메모리 모듈이 있다면, 상기 개입 메모리 모듈은 호스트(100)나 체인 내의 다음 메모리 모듈에 상기 응답 트랜잭션을 그 업링크 상에 업스트림 방향으로 전송할 것이다. 게다가, 응답 메모리 모듈이 응답을 전송할 준비가 되면, 상기 응답 메모리 모듈은 상기 응답을 업링크 상에 전송되는 업스트림인 트랜잭션 시퀀스로 주입한다. 업스트림 전송 기능의 더욱 상세한 설명은 도 5의 기재로부터 알 수 있다.
일 실시예에서, 메모리 제어기(105)는 특정 어드레스가 어느 메모리 모듈(150A 및 150B)에 관한 것인지에 대한 인식 없이 시스템 메모리(125)에 요청을 하도록 구성된다. 예를 들면, 메모리 모듈(150) 각각은 시스템 구성 시퀀스 동안에 메모리 어드레스 범위를 할당받는다. 각 메모리 제어 허브(160)는 들어오는 요청의 어드레스를 디코딩하는 로직(도 1에 도시되지 않음)을 포함한다. 따라서, 주어진 메모리 모듈(150)의 메모리 제어 허브(160)는, 주어진 메모리 모듈(150)에 할당된 어드레스 범위에 있는 어드레스를 갖는 메모리 요청을 디코딩한 것에 응답하여, 주어진 메모리 모듈(150) 상의 메모리 칩들에 메모리 읽기 사이클이나 메모리 쓰기 사이클을 초기화한다. 도 2에 관해서 더욱 상세하게 설명하는 바와 같이, 일 실시예에서, 각 메모리 제어 허브(160)는 이에 결합된 메모리 칩들에 메모리 사이클을 초기화하는 DRAM 제어기(도 1에 도시되지 않음)를 포함한다.
또한, 일 실시예에서, 메모리 제어기(105)는 이전 메모리 액세스 요청에 대한 응답을 수신하기 전에 후속 메모리 액세스 요청을 개시할 수도 있다. 이러한 실시예에서, 메모리 제어기(105)는 미해결 요청들을 트래킹(track)하므로, 전송된 순서와 다른 순서로 응답을 프로세싱할 수 있다.
주목할 사항으로, 대안적인 실시예에서, 메모리 링크들(110) 각각은 하나의 양방향 라인들 세트로 구현되는 점대점 메모리 상호접속부를 형성한다. 이와 같이, 트랜잭션들은 양방향 와이어 세트 상에서 업스트림 및 다운스트림 양자 모두로 흐른다. 이러한 실시예에서, 양방향 라인들은 복수의 서로 다른 신호 쌍들을 사용하여 실시된다.
도 2에서, 도 1에 도시된 메모리 모듈과 같은 메모리 모듈의 일 실시예의 블록 다이어그램이 도시된다. 도 1에 도시된 소자들에 대응하는 소자들은 명확성과 간결함을 위해 동일한 숫자로 표시된다. 메모리 모듈(150)은 메모리 버스(265)를 통해 메모리 칩들(261A 내지 261N)에 연결된 메모리 제어 허브(160)를 포함한다. 메모리 제어 허브(160)는 DRAM 제어기(250)에 연결된 제어 유닛(240)을 포함한다. DRAM 제어기(250)는 메모리 칩들(261A-261N)에 연결된다. 제어 유닛(240)은 업링크 제어 유닛(241)과 다운링크 제어 유닛(242)을 포함한다. 전술한 바와 같이, 메모리 버스(265)는 모든 유형의 메모리 상호접속부일 수 있다. 도시된 실시예에서, 메모리 제어 허브(160)는 업스트림 방향에서 메모리 링크(110A)에 연결되고 다운스트림 방향에서 메모리 링크(110B)에 연결된다. 또한 주목할 사항으로, 메모리 버스(265)의 동작 주파수는 메모리 링크(110)의 동작 주파수에 독립적이다.
도시된 실시예에서, 업링크 제어 유닛(241)은 다른 메모리 모듈 다운스트림으로부터 패킷들을 수신하고 수신된 패킷들을 전송하도록 구성된다. 업스트림 패킷들의 수신 및 전송은 업스트림 트랜잭션 시퀀스를 생성한다. 또한, 업링크 제어 유닛(241)은 메모리 모듈(150) 내에서 시작된 패킷들을 트랜잭션 스트림으로 주입하도록 구성된다.
도시된 실시예에서, 다운링크 제어 유닛(242)은 호스트에서 시작된 패킷들을 수신하고, 그리고 만약 메모리 모듈이 다운스트림에 결합되었다면, 상기 패킷들을 다운스트림 메모리 모듈로 전송하도록 구성된다. 추가로, 다운링크 제어 유닛(242)은 패킷들을 카피(copy)하여 디코딩하도록 구성된다. 일 실시예에서, 만약 패킷이 메모리 모듈(150)에 할당된 어드레스 범위 내에 있는 어드레스를 포함하고 상기 패킷이 메모리 액세스 요청이라면, 다운링크 제어 유닛(242)은 상기 패킷에 관련된 명령을 DRAM 제어기(250)로 전달한다. 일 실시예에서, DRAM 제어기(250)는 메모리 제어 허브(160)로부터의 메모리 명령에 응답하여 메모리 칩들(261A-261N)로 메모리 사이클들을 초기화하도록 구성된다. 그러나, 만약, 패킷이 메모리 요청이 아니고 대신에 구성 패킷이라면, 다운링크 제어 유닛(242)은 프로세싱을 위해 상기 패킷에 관련된 구성 명령을 제어 유닛(240)의 코어 로직(도시되지 않음)으로 전달한다. 주목할 사항으로, 일 실시예에서, 만약 패킷이 메모리 모듈(150)에 할당된 어드레스 범위 내의 어드레스를 포함하지 않는 경우, 메모리 모듈(150)이 체인 내의 최종 메모리 모듈이라면 상기 메모리 제어 허브(160)는 상기 패킷을 드롭(drop)하거나 버린다(discard).
일 실시예에서, 메모리 제어 허브(160)는 다운 스트림 메모리 모듈에 의해 활성화 된때, 다운스트림 메모리 모듈이 프레즌트(present) 함을 업스트림 메모리 모듈에 표시하는 모듈 프레즌트 신호(module present signal)(도시되지 않음)를 수신하도록 구성된다. 이러한 실시예에서, 만약 메모리 제어 허브(160)가 트랜잭션을 수신하고 어떠한 다운스트림 메모리 모듈도 프레즌트인 것으로 결정되지 않으면, 메모리 제어 허브(160)는 그 트랜잭션을 드롭한다. 일 특정 실시에서, 주어진 메모리 모듈(150)이 소켓에 삽입되면, 삽입된 메모리 모듈은 모듈 프레즌트 신호에 신호 접지(signal ground)를 적용한다. 따라서, 액티브 모듈 프레즌트 신호는 액티브 로우 신호(active low signal)이다.
주목할 사항으로, 전술한 실시예에서는 신호 접지가 적용되는 경우에 모듈 프레즌트 신호가 액티브이지만, 다른 실시예에서는 메모리 모듈이 프레즌트함을 표시하는 모듈 프레즌트 신호로 다른 전압 레벨이 사용될 수도 있다.
도 3에서, 다운링크 제어 유닛의 일 실시예의 블록 다이어그램이 도시된다. 도 3에 도시된 실시예에서, 다운링크 제어 유닛(342)은 도 2에 도시된 다운링크 제 어 유닛(242)을 나타낸다. 다운링크 제어 유닛(342)은 다운링크(312A) 상에서 다운스트림 트랜잭션들을 수신하고, 다운링크(312B) 상에서 상기 다운스트림 트랜잭션들을 전송하도록 연결된다. 일 실시예에서, 다운링크(312A 및 312B)는 도 2의 다운링크(212A 및 212B)를 각각 나타낸다. 주목할 사항으로, 전술한 바와 같이 다운링크(312A 및 312B)는 다수의 비트들을 포함한다. 예를 들면, 일 실시에서, 다운링크(312A 및 312B)는 각각 18-비트 다운링크들이다. 또한, 다운링크 제어 유닛(342)은 업스트림 메모리 모듈이나 호스트(100)로부터 비지 신호(busy signal)(371)를 수신하고 그리고 다운스트림 메모리 모듈로 비지 신호(372)를 전송하도록 구성된다.
도시된 실시예에서, 다운링크 제어 유닛(342)은 들어오는 트랜잭션들을 수신하는 위상 정렬 유닛(phase alignment unit)(310)을 포함한다. 위상 정렬 유닛(310)은 전송 유닛(315)과 데이터 복구 유닛(320)에 연결된다. 데이터 복구 유닛(320)은 어드레스 디코딩 로직(330)에 연결된 동기식 선입선출 버퍼(synchronization first in first out buffer)(FIFO)(325)에 연결된다. 일 실시예에서, 동기식 FIFO(325)는 도 2의 DRAM 제어기(250)와 같은 DRAM 제어기와 제어 유닛(240) 내의 코어 로직에 연결된다. 주목할 사항으로, 도 3에 도시된 실시예에서, 위상 정렬 유닛(310), 전송 유닛(315) 및 데이터 복구 유닛(320)은 비트 와이즈 (bit-wise) 방식으로 다운링크의 각각의 비트들에 독립적으로 동작한다. 다른 실시예에서, 위상 정렬 유닛(310), 전송 유닛(315) 및 데이터 복구 유닛(320)은 실질적으로 동일한 시간에 다운링크의 모든 비트들에 대해 동작한다.
필요한 메모리 대역폭을 제공하기 위해, 메모리 제어 허브(160)가 수신된 트 랜잭션들을 다운스트림 메모리 모듈로 효율적으로 전송하는 것이 중요하다. 따라서, 다운링크 제어 유닛(342)에 의해 수신된 트랜잭션들은 다운스트림으로 맹목적으로 전송된다. 일 실시예에서, 수신된 각 비트는 디코딩 없이, 다운링크(312B) 상으로의 전송을 위해 위상 정렬 유닛(310)에 의해 위상 정렬되고 전송 유닛(315)에 의해 전송된다. 또한, 수신된 각 비트는 프로세싱을 위해 데이터 복구 회로(320)에 보내진다.
일 실시예에서, 위상 정렬 유닛(310)은 각 비트에 대해 로컬 샘플링 클록(local sampling clock)의 위상을 동적으로 조정하여, 다운링크 제어 유닛(342)이 수신된 데이터 아이(eye)의 중앙에서 샘플링하도록 구성된다. 예를 들면, 일 실시예에서, 기준 클럭이 호스트로부터 각 메모리 제어 허브(160) 내의 위상 고정 루프(phase locked loop)(PLL)(미도시)에 제공된다. PLL은 다운링크 제어 유닛(342) 내에서 전송 클록뿐만 아니라 로컬 샘플링 클록도 발생시킨다. 위상 정렬 유닛(310)은 들어오는 데이터 스트림의 평균 위상을 트래킹하도록 구성된다. 위상 정렬 유닛(310)은 프로세싱 변동에 의해 야기된 정적 스큐(static skew)를 보상하고, 전압 및 온도 변동에 의해 야기된 데이터 위상의 저주파수 변동을 트래킹하고, 그리고 기준 클럭 상에 존재하고 허브의 PLL에 의해 트래킹되지 않는 모든 저 주파수 위상 지터(jitter)를 보상하도록 구성된다. 위상 정렬 유닛(310)은 전송기에 의해 발생될 수 있는 고주파수 위상 노이즈 및 부호간 간섭(inter-symbol interference), 크로스토크(crosstalk) 또는 반사 노이즈에 의해 야기된 고주파수 지터를 필터링한다.
로컬 샘플링 클록의 위상 정렬을 용이하게 하기 위해, 다운링크(312A)의 각 비트에 대한 충분한 수의 트랜지션(또는 전송 밀도)을 제공하는 것이 필요하다. 일 실시예에서, 트랜지션 밀도는 각 비트 상에 전송된 데이터를 스크램블링(scramble)하고, 그 다음 상기 데이터를 수신하자마자 상기 수신된 데이터를 디스클램블링함으로써 제공된다. 일 실시예에서, 상기 데이터는 의사 랜덤 이진수열(pseudo random binary sequence)(PRBS)로 상기 데이터를 XOR 함으로써 스크램블링된다. 선형 피드백 시프트 레지스터(LFSR)는 시드(seed) 다항식을 사용하여 PRBS를 발생시킨다. 다른 실시예에서, 트랜지션 밀도는 소정의 데이터 페이로드를 갖는 동기식 패킷을 전송함으로써 제공된다. 이러한 실시예에서, 소정의 데이터 페이로드는 충분한 수의 트랜지션을 갖는 난수 또는 의사 난수 패턴을 포함한다.
트랜지션 밀도가 얻어지는 방법에 관계없이, 데이터 복구 유닛(320)은 데이터 비트들을 복구하도록 구성된다. 스크램블링을 사용하는 실시예에서, 데이터 복구 유닛(320)은 데이터를 스크램블링하는데 사용되었던 동일한 PRBS를 사용하여 수신된 데이터를 디스크램블링하도록 구성된다. 반대로, 트랜지션 밀도를 얻는데 동기식 패킷을 사용하는 실시예에서, 데이터 복구 유닛(320)은 위상 정렬 유닛(310)이 로컬 샘플링 클록을 정렬하는 것을 종료하면 상기 동기식 패킷 데이터를 단순히 드롭하거나 버린다.
도시된 실시예에서, 동기식 FIFO(325)는 제어 유닛(240)의 코어 로직에 의한 사용을 위해 들어오는 데이터 비트들을 저장하도록 구성된다. 예를 들면, 트랜잭션들이 패킷 방식으로 전송되기 때문에, 수신된 비트들은 동기식 FIFO(325)에 저장되고 디코딩을 위해 다시 포맷된다. 그 다음, 수신된 패킷들은 어드레스 디코딩 로직 (330)에 의해 디코딩된다. 전술한 바와 같이, 각 메모리 모듈(150)은 메모리 어드레스 범위를 할당받는다. 게다가, 각 메모리 제어 허브(160)는 구성 트랜잭션들에서 사용하기 위한 허브 어드레스를 할당받는다. 만약, 트랜잭션 어드레스가 디코딩되고 매칭이 표시되면, 명령 정보가 추출되어 프로세싱된다. 일 실시예에서, 만약, 트랜잭션이 메모리 제어 허브(160)에 관련된 메모리 어드레스에 매칭하는 어드레스를 갖는 메모리 액세스 요청이라면, 디코딩된 명령은 DRAM 제어기(250)에 전송된다. 만약, 트랜잭션이 구성 트랜잭션이라면, 디코딩된 명령은 제어 유닛(240)의 코어 로직에 보내진다. 또한, 만약, 어드레스 디코딩 로직(330)이 매칭을 검출하지 못하면, 패킷은 버려지거나 드롭된다.
도시된 실시예에서, 위상 정렬 유닛(335)은 들어오는 비지 신호(371)를 수신하도록 연결된다. 위상 정렬 유닛(335)은 또한 비지 펄스 주입 유닛(355)에 연결된 데이터 복구 유닛(350)에 연결된다. 비지 펄스 주입 유닛(355)은 전송 유닛(360)에 연결된다.
도시된 실시예에서, 위상 정렬 유닛(335) 및 데이터 복구 유닛(350)은 위상 정렬 유닛(310) 및 데이터 복구 유닛(320)과 각각 유사하게 동작한다. 그러나, 일 실시예에서, 비지 신호(371)는 단일 비트 차동 신호이고 멀티 비트 신호가 아니다. 비지 신호(371) 및 비지 신호(372)는 메모리 모듈의 직렬 체인의 거의 마지막인 허브가, 직렬 체인의 거의 처음 허브가 패킷들을 주입하는데 충분한 유휴 시간(idle time)을 남길 것을 보증한다. 일 실시예에서, 비지 신호(371)는 업스트림에 있는 모든 메모리 모듈들에 의해 업스트림 트랜잭션 시퀀스로 주입될 패킷들의 개수에 대한 표시를 포함한다. 따라서, 비지 신호(372)는 업스트림에 있는 모든 메모리 모듈들에 의해 업스트림 트랜잭션 시퀀스로 주입되게 될 총 패킷 수와 메모리 제어 허브(160)에 의해 국부적으로 주입될 패킷들의 개수에 대한 표시를 포함한다.
일 실시예에서, 비지 펄스 주입 유닛(355)은 업스트림인 모든 메모리 모듈들에 의해 업스트림 트랜잭션 시퀀스로 주입될 패킷들 수에 대응하는 데이터를 수신하도록 구성된다. 또한, 비지 펄스 주입 유닛(355)은 메모리 제어 허브(160)에 의해 국부적으로 업스트림 트랜잭션 시퀀스로 주입될 패킷들 수에 대응하는 제어 유닛(240)의 코어로직으로부터의 표시를 수신하도록 구성된다. 따라서, 비지 펄스 주입 유닛(355)은 비지 신호(372)를 생성하도록 구성된다. 일 실시예에서, 비지 신호들(371 및 372)은 주입된 패킷들 각각에 대한 펄스를 포함한다. 따라서, 예를 들면 5 패킷들을 표시하는 비지 신호(372)와 같은 신호는 5개의 펄스들을 포함한다. 그러나, 다른 실시예에서, 주입된 각 패킷에 대해 어떠한 수의 펄스들도 사용될 수 있다. 후술하는 바와 같이, 패킷들은 단패킷들(short packets)로나 장패킷들(long packets)로 보내진다. 따라서, 일 실시예에서, 주입된 장패킷에 대해 비지 펄스 주입 유닛(355)은 장패킷 각각에 대해 두 개의 펄스를 포함할 수 있다.
또한, 비지 펄스 주입 유닛(355)은 업스트림으로부터 수신된 비지 펄스들의 수에 대응하는 표시를 도 2의 업링크 제어 유닛(241)에 제공하도록 구성된다. 일 실시예에서, 만약 메모리 모듈이 직렬 결합된 체인에서 마지막 모듈이라면, 업링크 제어 유닛(241)은 비지 신호(371) 상에서 수신된 비지 펄스들의 수에 따라 업스트림 트랜잭션 시퀀스로 주입될 하나 이상의 NOP 패킷들을 야기한다. 예를 들면, 일 실시예에서, 수신된 매 두 개의 펄스들에 대해서, 업링크 제어 유닛(241)은 업스트 림 트랜잭션 시퀀스로 주입될 하나의 NOP 패킷을 야기한다. 그러나, 다른 실시예들은 수신된 비지 펄스들에 대해 다른 비율의 NOP 패킷들이 사용될 수 있다.
도시된 실시예에서, 전송 유닛(360)은 비지 펄스 주입 유닛(355)으로부터 비지 신호를 수신하도록 구성된다. 일 실시예에서, 전송 유닛(360)은 또한 전술한 바와 같이 비지 신호(372)를 전송하기 전에 LFSR을 사용하여 데이터를 스크램블링하도록 구성된다. 대안적으로, 전송 유닛(360)은 전술한 바와 같이 동기식 패킷을 주입할 것이다.
도 4에서, 업링크 제어 유닛의 일 실시예의 블록 다이어그램이 도시된다. 도 4에 도시된 실시예에서, 업링크 제어 유닛(441)은 도 2에 도시된 업링크 제어 유닛(241)을 나타낸다. 업링크 제어 유닛(441)은 업링크(411B) 상에서 업스트림 트랜잭션들을 수신하고 업링크(411A) 상에 업스트림 트랜잭션들을 전송하도록 구성된다. 게다가, 업링크 제어 유닛(241)은 업링크(411B) 상에서 수신된 업스트림 트랜잭션 시퀀스로 패킷들을 주입하도록 구성된다. 일 실시예에서, 업링크들(411A 및 411B)은 각각 도 2의 업링크들(211A 및 211B)을 나타낸다. 주목할 사항으로, 전술한 바와 같이 업링크들(411A 및 411B)은 복수 비트들을 포함한다. 예를 들면, 일 실시에서, 업링크들(411A 및 411B)은 각각 16-비트 업링크일 수 있다.
도시된 실시예에서, 업링크 제어 유닛(441)은 들어오는 업스트림 트랜잭션들을 수신하는 위상 정렬 유닛(410)을 포함한다. 위상 정렬 유닛(410)은 데이터 복구 유닛(415)에 연결된다.
필요한 메모리 대역폭을 제공하기 위해, 메모리 제어 허브(160)가 수신된 업 스트림 트랜잭션들을 업스트림 메모리 모듈로나 호스트로 효율적으로 전송하는 것이 중요하다. 다운스트림 제어 유닛(342)과 유사하게, 업링크 제어 유닛(441)에 의해 수신된 트랜잭션들이 업스트림으로 전송된다. 그러나, 다운스트림 제어 유닛(342)에 대조적으로, 업링크 제어 유닛(441)은 국부적으로 발생된 패킷들을 업스트림 트랜잭션 시퀀스로 주입한다.
도시된 실시예에서, 위상 정렬 유닛(410)은 위상 정렬 유닛(310)과 유사하게 동작한다. 따라서, 위상 정렬 유닛(410)은 업링크 제어 유닛(441)이 전술한 바와 같이 수신된 데이터 아이의 중앙에서 샘플링하도록, 각 비트에 대해 로컬 샘플링 클록의 위상을 동적으로 조정하도록 구성된다. 유사하게, 데이터 복구 유닛(415)은 데이터 복구 유닛(320)의 기재와 관련하여 전술한 바와 같이 데이터 비트들을 복구하도록 구성된다.
도시된 실시예에서, 데이터 복구 유닛(415)은 전송 유닛(435)에 연결된 다중화기(430)에 연결된다. 만약, 업링크 제어 유닛(441)이 업스트림 트랜잭션 시퀀스로 주입할 어떠한 패킷도 갖지 않는다면, 업링크 제어 유닛(441)은 업링크(411A) 상에 수신된 트랜잭션들을 전송하도록 구성된다. 일 실시예에서, 패킷 바운더리 트래킹 유닛(packet boundary track unit)(450)은 제어신호를 다중화기(430)에 제공하는바, 상기 다중화기(430)는 수신된 트랜잭션들이 전송 유닛(435)에 의해 스크램블링되어 전송되도록 한다. 일 실시예에서, 전송 유닛(435)은 데이터를 스크램블링하여 전술한 바와 같이 LFSR을 사용하여 전송되도록 하는 반면, 다른 실시예에서, 전송 유닛(435)은 전술한 바와 같이 동기식 패킷을 주입한다.
그러나, 일 실시예에서, 주입될 패킷들이 허브 코어 로직으로부터 수신되어 주입 FIFO(425) 내에 저장되기 때문에, 데이터 복구 유닛(415)으로부터 수신된 데이터는 후속 전송을 위해 홀딩 FIFO(holding FIFO)(425) 내에 저장된다. 현재 전송 패킷의 전송이 완료되면, 주입 FIFO(425) 내에 저장된 데이터는 다중화기(430)의 입력에 제공된다. 또한, 패킷 바운더리 트래킹 유닛(450)은 업링크(411B)로부터 수신된 패킷들의 패킷 바운더리를 트래킹한다. 패킷 바운더리 트래킹 유닛(450)은 정확한 시간에 다중화기(430)에 제어 신호를 제공함으로써 주입된 패킷들이 전송된 패킷들과 충돌하지 않도록 보장하며; 이에 따라서 주입될 대기 패킷(waiting packet)이 전송 유닛(435)에 의해 스크램블링되어 전송되도록 한다. 주입 FIFO(425)에 저장된 주입될 패킷들과 홀딩 FIFO(420)에 저장된 전송될 패킷들이 존재한다면, 패킷 바운더리 트래킹 유닛(450)은 다중화기(430)를 선택적으로 제어하여 공평성 알고리즘에 따라 어느 한 유형의 패킷들을 전송 유닛(435)으로 통과시킨다. 공평성 알고리즘은 임의의 메모리 모듈에 대해 주입 패킷이나 전송 패킷들의 결핍(starvation)을 방지하도록 구성된 임의의 알고리즘이다. 주목할 사항으로, 업링크(411B) 상에서 수신된 NOP 패킷들은 홀딩 FIFO(420) 내에 저장되거나 전송되는 대신에 버려진다.
주목할 사항으로, 대안적인 실시예에서, 전송 트랜잭션 트래픽에 대한 지연을 개선하기 위해, 위상 정렬 유닛(410)은 점선으로 표시된 바와 같이 홀딩 FIFO(420) 및 다중화기(430)에 연결된다. 이러한 실시예는 주입된 트래픽이 존재하지 않을 때 향상된 지연을 제공한다.
또한 주목할 사항으로, 일 실시예에서, 각 메모리 모듈(150)의 각 메모리 제어 허브(160)와 호스트(100) 사이의 통신 전에, 초기화 시퀀스가 수행되어 호스(100)와 각 메모리 제어 허브(160) 내에 존재하는 모든 스크램블/디스크램블 로직, 동기식 FIFO, 및 위상 정렬 로직을 동기화한다. 예를 들면, 일 실시예에서, 리셋 동안에, 초기화 시퀀스는 호스트(100)가 하나 이상의 동기식 패턴들을 다운스트림으로 전송하는 것을 포함한다. 동기식 패턴들은 각 메모리 제어 허브(160)에 의해 호스트(100)로의 업스트림에 다시 전송된다. 동기식 패턴들은 스크램블/디스크램블 로직을 포함하는 수신기들이 동기를 로크(lock)하도록 한다.
메모리 상호접속부
도 1 및 도 2를 총괄하여 보면, 메모리 상호접속부는 메모리 링크들(110A-110C)과 같은 하나 이상의 고속 점대점 메모리 링크들을 포함하고, 상기 메모리 링크들(110A-110C)은 예를 들면 업링크(211A)와 같은 업링크와 다운링크(212A)와 같은 다운링크를 포함한다. 전술한 바와 같이, 일 실시예에서 다운링크들은 18비트 링크들이고 업링크들은 16비트 링크들이다. 이와 같이, 18비트 다운링크는 16개의 제어, 어드레스 및 데이터(Control, Address, Data : CAD) 신호와, 비지 신호와, 그리고 제어(CTL) 신호를 포함한다. 주어진 업링크는 16개의 제어, 어드레스 및 데이터(CAD) 신호를 포함한다. 그러나, 대안적인 실시예에서, 업링크(211A)와 같은 업링크는 또한 CTL 신호를 포함할 수 있다.
고속 링크들에 더해, 다른 신호들이 각 메모리 모듈(150)에 제공될 수 있다. 예를 들면, 일 실시예에서, 호스트(100)로부터 리셋 신호, 파워 OK 신호, 및 기준 클럭이 각 메모리 모듈(150)에 제공된다. 또한, 다른 신호들이 각 메모리 모듈 사이에 제공된다. 예를 들면, 전술한 바와 같이, 다음 메모리 모듈 프레즌트 신호가 메모리 모듈들 사이에 제공된다.
일반적으로, 메모리 링크들(110) 상에 운반되는 트랜잭션들 유형은 구성 및 제어 트랜잭션들과 메모리 트랜잭션들로 분류될 수 있다. 일 실시예에서, 구성 및 제어 트랜잭션들은 메모리 제어 허브(160)를 구성하는데 사용될 수 있다. 예를 들면, 구성 및 제어 트랜잭션들은 구성 레지스터들에 액세스하고, 메모리 어드레스 범위를 메모리 모듈에 할당하거나 허브 어드레스를 메모리 제어 허브에 할당하는데 사용된다. 메모리 트랜잭션들은 메모리 칩들(261A-261N) 내의 메모리 위치들에 액세스하는데 사용될 수 있다.
따라서, 일 실시예에서, 지원되는 두 개 유형의 어드레싱, 즉, 허브 어드레싱 및 메모리 어드레싱이 있다. 허브 어드레싱을 사용하여, 8 허브 비트들은 액세스되는 특정 메모리 제어 허브를 식별한다. 일 실시예에서, FFh의 허브 어드레스는 모든 메모리 제어 허브로의 브로드캐스트를 나타낸다. 메모리 어드레싱을 사용하여, 각 허브는 어드레스 비트들의 상위 부분을 디코딩하여 어떤 허브가 요청을 받아들여야 하는지 결정하고, 하위 부분을 디코딩하여 액세스되는 메모리 위치를 결정한다. 일 실시예에서, 40 어드레스 비트들이 있지만, 다른 실시예들에서는 필요에 따라 다른 수의 어드레스 비트들이 사용될 수 있다.
일 실시예에서, 각 메모리 링크들은 하나 이상의 패킷들을 사용하여 트랜잭 션들을 운반하도록 구성된다. 패킷들은 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하며, 이들 각각은 패킷이 운반하는 명령 유형에 따른 데이터 페이로드를 포함한다. 이와 같이, 메모리 링크들(110)을 구성하는 와이어 세트들은 제어, 어드레스 및 데이터를 운반하는데 사용된다.
일반적으로, 패킷들은 각 패킷이 단일 정보 비트를 운반하는 수많은 비트 포지션을 포함하는 것이 특징이다. 각 패킷은 수개의 비트 시간들로 분할되고 주어진 비트 시간 동안에 패킷의 모든 비트 포지션들이 샘플링된다. 이와 같이, 제어 정보 및 데이터는 주어진 링크의 동일한 와이어들(예를 들어, CAD 와이어들)을 공유한다. 더욱 상세하게 후술하는 바와 같이, 일 실시예에서, 패킷들은 비트 쌍들의 집합이고 매 패킷의 제 1 비트 시간은 짝수 비트 시간에 샘플링된다. 패킷들은 하나 또는 두개 비트 쌍 길이인 제어 헤더로 시작한다. 일 실시예에서, 제어 헤더의 처음 다섯개 비트들은 명령 코드이다. 아래 테이블 1은 다양한 유형의 패킷들과 이들의 관련 명령 코드들을 설명한다. 그러나, 주목할 사항으로, 제 1칸에 도시된 실제 코드들은 단지 설명적인 목적일 뿐이며 다른 코드들이 각 주어진 명령에 대해 사용될 수 있다.
[테이블 1]
Figure 112005065157788-pct00001
또한, 일 실시예에서, 패킷들(NOP 패키들 제외)은 오류 검출 코드(EDC)와 함께 전송된다. 주목할 사항으로, 일 실시예에서 EDC는 32 비트 주기적 덧붙임 코드(cyclic redundancy code)(CRC)이지만, 다른 실시예들은 필요에 따라 다른 EDC를 채택할 수 있다. 또한, 어드레스들은 메모리 제어 허브(160) 내에서 빠른 디코딩을 위해 최상위 비트 시간에서 먼저 전송되는 반면, 데이터는 최하위 바이트에서 먼저 전송된다. 그러나, 주목할 사항은, 다른 실시예에서는 어드레스가 최하위 비트-시간에 먼저 전송되고 데이터가 최상위 바이트에서 먼저 전송될 수 있다. 패킷들은 바이트 인에이블 페이로드 및/또는 데이터를 운반한다. 페이로드 없는 패킷들은 헤더온리 패킷(header-only packet)들로 불린다. 일 실시예에서, 단(short) 읽기 데이터의 크기는 프로그램 캐시 라인 크기의 절반까지 일 것이다. 게다가, 장(long) 읽기 및 블록 쓰기를 위한 데이터의 크기는 프로그램 캐시 라인 크기까지 일 것이다. 또한, 바이트 쓰기를 위한 데이터의 크기는 캐시 라인 크기 설정에 관계없이 최대 64 바이트이다.
패킷 내에 포함된 제어 헤더와 명령 코드 정보에 더하여, CTL 신호가 각 패킷에 관한 정보를 운반하는데 사용된다. 테이블 2에 기재된 바와 같이, 일부 예시적인 CTL 인코딩들이 도시된다.
[테이블 2]
Figure 112005065157788-pct00002
패킷의 페이로드 부분과 헤더에 대한 CTL의 서로 다른 값들은 헤더온리 패킷들이 다른 패킷의 페이로드 내에 삽입되도록 하기에 충분한 정보를 제공한다. 이는 읽기 명령의 지연을 감소시키는바, 이는 쓰기 패킷이 링크 상에서 여전히 전송되는 동안에 읽기 명령이 발행되도록 함으로써 이루어진다. 테이블 3의 패킷은 또한 4-7 비트 시간 동안에 헤더온리 패킷이 페이로드에 삽입되는 것을 도시한다.
[테이블 3]
Figure 112005065157788-pct00003
도 5A 내지 도 5D는 도 1의 메모리 링크들(110A 내지 110C) 상에 운반되는 예시적인 패킷들을 도시한다. 도 5A에서, 구성 읽기 패킷의 일 실시예의 다이어그램이 도시된다. 도시된 실시예에서, 구성 읽기 패킷(510)은 16비트 범위이고 4개 비트 타임이나 2개 비트 쌍을 포함한다.
0 비트 시간 동안에, 5개 비트 명령 코드(예컨대, 0Ah)가 0-4 비트 포지션에서 운반된다. 비트 포지션 5-7은 예약(reserve)된다. 8개 비트 태그가 8-15 비트 포지션에서 운반된다. 일 실시예에서, 태그 값은 예를 들면 업스크림 응답 패킷을 미해결 다운스트림 요청에 매칭하기 위해 호스트(100)에 의해 사용된다. 1 비트 시간 동안에, 8개 비트 허브 어드레스가 0-7 비트 포지션들에서 운반된다. 또한, 8개 비트 구성 레지스터 번호가 8-15 비트 포지션에서 운반된다. 2 및 3 비트 시간 동안에, CRC의 0-15 및 16-31 비트들이 각각 0-15 비트 포지션들에서 운반된다.
도 5B에서, 구성 쓰기 패킷의 일 실시예의 다이어그램이 도시된다. 도시된 실시예에서, 구성 쓰기 패킷(515)은 16비트 범위이고 6개 비트 시간이나 3개 비트 쌍을 포함한다.
0 비트 시간 동안에, 5개 비트 명령 코드(예컨대, 0Ch)가 0-4 비트 포지션들에서 운반된다. 5-7 비트 포지션들이 예약된다. 8개 비트 태그가 8-15 비트 포지션에서 운반된다. 1 비트 시간 동안에, 8개 비트 허브 어드레스가 0-7 비트 포지션들에서 운반된다. 또한, 8개 비트 구성 레지스터 번호가 8-15 비트 포지션에서 운반된다. 2 및 3 비트 시간 동안에, 데이터 페이로드의 0-15 및 16-31 비트들이 0-15 비트 포지션들에서 운반된다. 4 및 5 비트 시간 동안에, CRC의 0-15 및 16-31 비트들이 각각 0-15 비트 포지션들에서 운반된다.
도 5C에서, 메모리 읽기 패킷의 일 실시예의 다이어그램이 도시된다. 도시된 실시예에서, 메모리 읽기 패킷(520)은 16 비트 범위이고 6개 비트 시간 또는 3개 비트 쌍들을 포함한다. 0 비트 시간 동안에, 5 개 비트 명령 코드(예컨대, 10h 또는 11h)가 0-4 비트 포지션들에서 운반된다. 5-7 비트 포지션들은 예약된다. 8개 비트 태그는 8-15 비트 포지션들에서 운반된다.
1비트 시간 동안에, 복귀되어야 하는 데이터의 길이가 0-5 비트 포지션에서 운반된다. 일 실시예에서, 00h의 값은 어떠한 데이터도 표시하지 않고, 01h의 값은 데이터의 2개 비트 쌍을 표시하고, 02h는 데이터의 4개 비트 쌍을 나타내는 식이 다. 0 길이 읽기는 인식 패킷(ACK)이 요청자에게 복귀되도록 한다. 일 실시예에서, 캐시 라인 절반 이하의 읽기는 단 RdResp를 유발하고, 캐시 라인 절반 초과의 읽기는 단일의 장 RdResp나 두 개의 단 RdResp를 유발한다. 캐시 라인 크기는 소프트웨어에 의해 각 메모리 제어 허브(160)와 호스트(100)의 구성 레지스터들로 프램그램된다. 6-7 비트들은 예약된다. DRAM 내의 요청 위치의 39-32 어드레스 비트들은 8-15 비트 포지션들에서 운반된다.
2 비트 시간 동안에, DRAM 내의 요청 위치의 31-16 어드레스 비트들이 0-15 비트 포지션에서 운반되고, 3 비트 시간 동안에 DRAM 내의 요청 위치의 3-15 어드레스 비트들이 3-15 비트 포지션에서 운반된다. 또한, 3 비트 시간 동안에, 패킷 우선권이 0-1 비트 포지션들에서 운반된다. 일 실시예에서, 우선권은 다른 요청들에 상대적인 패킷들의 우선권을 나타낸다. 예를 들면, 하나의 우선권은 더 낮은 우선권을 갖는 모든 요청들이 이미 진행 중에 있더라도 상기 요청들을 지연시키고 이들에 앞서 본 요청을 실행한다. 비트 포지션 2는 예약된다. 4 및 5 비트 시간 동안에, CRC의 0-15 및 16-31 비트들이 각각 0-15 비트 포지션들에 운반된다.
도 5D에서, 블록 메모리 쓰기 패킷의 일 실시예의 다이어그램이 도시된다. 도시된 실시예에서, 블록 메모리 쓰기 패킷(525)은 16 비트 범위이며 8 비트 시간이나 4 개의 비트 쌍들을 포함한다. 0 비트 시간 동안에, 5개 명령 코드(예컨대 12h)가 0-4 비트 포지션들에서 운반된다. 5-7 비트 포지션들은 예약된다. 8개 비트 태그는 8-15 비트 포지션들에서 운반된다.
1 비트 시간 동안에, 데이터 페이로드에서 운반되는 데이터의 길이는 0-5 비 트 포지션들에서 운반된다. 일 실시예에서, 00h의 값은 어떠한 데이터도 나타내지 않고, 01h의 값은 데이터의 2개 비트 쌍을 나타내고, 02h의 값은 데이터의 4개 비트 쌍을 나타내는 식이다. 6-7 비트들은 예약된다. 쓰기되는 DRAM 내의 위치의 39-32 어드레스 비트들은 8-15 비트 포지션들에서 운반된다.
2 비트 시간 동안에, 쓰기되는 DRAM 내의 위치의 31-16 어드레스 비트들은 0-15 비트 포지션들에서 운반되고, 3 비트 시간 동안에 쓰기되는 DRAM 내의 위치의 3-15 어드레스 비트들은 3-15 비트 포지션들에서 운반된다. 또한, 3 비트 시간 동안에, 패킷 우선권이 0-1 비트 포지션들에서 운반된다. 2 비트 포지션은 예약된다.
4 및 5 비트 시간 동안에, 데이터 페이로드의 첫 번째 비트 쌍의 0-15 비트 및 16-31 비트들은 0-15 비트 포지션들에서 운반된다. 더 많은 데이터가 쓰기 된다면, 후속 비트 쌍들은 후속 데이터 페이로드의 0-15 및 16-31 비트들을 운반할 것이다. 4+2N 및 5+2N 비트 시간 동안에, CRC의 0-15 비트 및 16-31 비트는 0-15 비트 포지션들에서 운반된다.
주목할 사항으로, 단지 네 개 유형의 패킷들만이 도시되었지만, 테이블 3에 기입된 명령 코드들에 대응하는 다른 유형의 패킷들이 사용될 수 있다. 또한, 주목할 사항으로, 예시적인 패킷들의 다양한 필드들이 특정 갯수의 비트들을 구비한 것으로 도시될지라도, 다른 실시예들에서 피치(peach) 패킷의 다양한 필드들은 필요에 따라 다른 수의 비트들을 포함할 수 있다.
도 6은 컴퓨터 시스템의 일 실시예의 블록 다이어그램이다. 컴퓨터 시스템(600)은 코히런트 패킷 인터페이스 링크들(615A-D)에 의해 각각 상호 접속된 프로세스 노드들(612A-612D)을 포함한다. 코히런트 패킷 인터페이스(615)의 각 링크는 고속 점대점 링크을 형성할 수 있다. 프로세스 노드들(612A-D)은 각각 하나 이상의 프로세서들을 포함할 수 있다. 컴퓨터 시스템(600)은 넌코히런트 패킷 인터페이스(650A)를 통해 프로세스 노드(612A)에 연결된 I/O 노드(620)를 또한 포함한다. I/O 노드(620)는 예를 들면 넌코히런트 패킷 인터페이스(650B)에 의해 체인 토폴로지 내의 다른 I/O 노드(도시되지 않음)에 결합된다. 프로세스 노드(612A)는 호스트 노드로서 도시되고, NC 패킷 인터페이스(650A)를 통해 I/O 노드(620)와 통신하기 위한 호스트 브리지들을 또한 포함할 수 있다. 프로세스 노드(612B-D)는 다른 I/O 노드들(도시되지 않음)과 통신하기 위한 호스트 브리지들을 포함할 수 있다. NC 패킷 인터페이스(650A-B)에 의해 형성된 넌코히런트 패킷 인터페이스 링크들은 또한 점대점 링크들로 불린다. I/O 노드(620)는 주변 버스들(625A-B) 쌍에 결합된다.
도 6은 프로세스 노드들(612A 및 612B)에 각각 연결된 시스템 메모리들(예컨대, 617A 및 617B)을 또한 도시한다. 도시된 실시예에서, 프로세스 노드(612A 및 612B)는 도 1에 도시된 바와 같은 호스트를 각각 나타내며, 각 시스템 메모리(617)는 상기 도 1 및 도 2에 관해서 도시된 구성에서 구현될 수 있다. 또한, 프로세스 노드들(612A 및 612B) 각각과 이들 각각의 시스템 메모리들(617) 사이의 상호접속부들은 도 1 및 도 2에서 전술한 메모리 링크(110C)를 포함하는 메모리 상호접속부를 나타낸다. 주목할 사항으로 다른 실시예에서, 다른 수의 프로세스 노드들이 사용될 수 있다. 또한, 프로세스 노드들(612C 및 612D) 각각은 유사하게 예를 들면 시스템 메모리(617)와 같은 각각의 시스템 메모리에 결합된다.
도시된 실시예에서, 코히런트 패킷 인터페이스(615)의 각 링크는 단방향 라인들(예컨대, 라인들(615A)은 패킷들을 프로세스 노드(612A)로부터 프로세스 노드(612B)로 전송하는데 사용되고, 라인들(615B)은 패킷들을 프로세스 노드(612B)로부터 프로세스 노드(612C)로 전송하는데 사용된다) 세트로서 구현된다. 다른 라인들(615C-D) 세트들은 도 1에 도시된 바와 같이 다른 프로세스 노드들 사이에 패킷들을 전송하는데 사용된다. 코히런트 패킷 인터페이스(615)는 프로세스 노드들 사이의 통신을 위해 캐시 코히런트 방식으로 동작한다("코히런트 링크"). 또한, 넌코히런트 패킷 인터페이스(650)는 I/O 노드들 사이 및 I/O 노드들과 프로세스 노드(612A)의 호스트 브리지와 같은 호스트 브리지 사이의 통신을 위해 넌코히런트 방식으로 동작한다("넌코히런트 링크"). 코히런트 링크들을 통한 두 개 이상의 노드들의 상호접속부들은 "코히런트 조직(coherent fabric)"으로 불린다. 유사하게, 넌코히런트 링크들을 통한 두 개 이상의 노드들의 상호접속부들은 "넌코히런트 조직"으로 불린다. 주목할 사항으로, 하나의 프로세스 노드로부터 다른 프로세스 노드로 전송된 패킷은 하나 이상의 매개 노드들을 통과한다. 예를 들면, 도 6에 도시된 바와 같이 프로세스 노드(612A)로부터 프로세스 노드(612C)로 전송되는 패킷은 프로세스 노드(612B)나 프로세스 노드(612D)를 통과할 것이다. 임의의 적당한 라우팅 알고리즘이 사용될 수 있다. 컴퓨터 시스템(600)의 다른 실시예들은 도 6에 도시된 실시예보다 많거나 적은 프로세스 노드들을 포함할 수 있다.
넌코히런트 패킷 인터페이스(650)와 같은 패킷 인터페이스의 일 예는 HyperTransportTM 기술과 호환 가능하다. 주변 버스들(625A 및 625B)은 PCI 버스와 같은 공통 주변 버스의 예이다. 그러나, 다른 유형의 버스들이 사용될 수 있다.
또한, 주목할 사항으로, 다른 컴퓨터 시스템 구성이 가능하고 예기된다. 예를 들면, 도 1 내지 도 5에서 전술한 시스템 메모리 구성은 노스브리지(northbridge)를 포함하는 프로세서 칩셋을 채택하는 컴퓨터 시스템과 함께 사용될 수 있다. 이러한 실시예에서, 노스브리지 내의 메모리 제어기는 호스트로서 기능한다.
상기 실시예들이 상당히 자세하게 설명되었지만, 일단 본 명세서를 숙지한 당업자에게는 다양한 변경 및 수정이 명백할 것이다. 다음 청구항들은 이와 같은 모든 변경 및 수정들을 포괄하도록 해석되어야 한다.
본 발명은 일반적으로 컴퓨터 시스템 메모리에 응용가능하다.

Claims (10)

  1. 컴퓨터 시스템(50)으로서,
    호스트(100)와;
    복수의 메모리 링크들(110A, B, C)과; 그리고
    상기 복수의 메모리 링크들(110A, B, C)을 통해 상기 호스트에 체인으로 직렬 연결되는 복수의 메모리 모듈들(150A 및 150B)
    을 포함하며,
    상기 복수의 메모리 링크들(110A, B, C) 각각은 상기 호스트(100)를 향해 트랜잭션들을 운반하는 단방향 업링크(211)와, 상기 단방향 업링크(211)와는 별개이며 상기 호스트(100)에서 발원(originating)하는 트랜잭션들을 운반하는 단방향 다운링크(212)를 포함하며,
    상기 복수의 메모리 모듈들(150A 및 150B) 각각은,
    복수의 메모리 칩들(261A-N)과; 그리고
    상기 복수의 메모리 칩들(261A-N)로의 액세스를 제어하도록 연결된 메모리 제어 허브(160A, 160B)
    를 포함하며,
    상기 메모리 제어 허브(160) 각각은,
    상기 복수의 메모리 칩들(261A-N)에 연결되는 메모리 제어기(250)와;
    제 1 메모리 링크(110A)의 제 1 단방향 업링크(211A)와 제 2 메모리 링크(110B)의 제 2 단방향 업링크(211B)에 연결되는 업링크 제어 유닛(241)과; 그리고
    제 1 메모리 링크(110A)의 제 1 단방향 다운링크(212A)와 제 2 메모리 링크(110B)의 제 2 단방향 다운링크(212B)에 연결되는 다운링크 제어 유닛(242)
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 메모리 제어 허브(160) 각각은 마운트된 상기 복수의 메모리 칩들(261A-N)로의 액세스를 제어하도록 연결되며 그리고 상기 단방향 업링크(211) 및 단방향 다운링크(212) 둘다를 통해 상기 호스트(100)에 연결되며,
    상기 복수의 메모리 모듈들(150A, 150B)은,
    상기 체인 내의 제 1 메모리 모듈(150A)과; 그리고
    상기 체인 내의 마지막 메모리 모듈을 적어도 포함하며, 그리고
    상기 복수의 메모리 링크들(110A, B, C) 중 제 1 메모리 링크(110A)를 통해 상기 제 1 메모리 모듈(150A)이 상기 호스트(100)에 연결되도록, 상기 복수의 메모리 모듈들은 체인으로 직렬 연결되며, 그리고
    상기 복수의 메모리 모듈들 중 상기 마지막 메모리 모듈을 제외한 모든 메모리 모듈들은 상기 복수의 메모리 링크들(110A, B, C) 중 2개의 메모리 링크에 연결되며, 상기 마지막 메모리 모듈은 상기 복수의 메모리 링크들(110A, B, C) 중 오직 1개의 메모리 링크에 연결되는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제2항에 있어서,
    상기 마지막 메모리 모듈의 메모리 제어 허브(160)는, 상기 마지막 메모리 모듈에 할당된 어드레스 범위 내의 어드레스를 포함하지 않는 임의의 수신 패킷을 버리는 것(discard)을 특징으로 하는 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 단방향 업링크(211) 및 상기 단방향 다운링크(212) 각각은, 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하는 패킷들을 사용하여 트랜잭션들을 운반하는 복수의 신호들을 포함하는 별도의 단방향 링크이며,
    상기 패킷들의 적어도 일부분은 제어, 어드레스 및 데이터 정보를 포함하고,
    상기 제어, 어드레스 및 데이터 정보는 상기 단방향 업링크와 상기 단방향 다운링크 중 어느 한 링크의 동일 와이어들을 공유하며,
    상기 단방향 다운링크(212)의 상기 복수의 신호들은 비지 신호(busy signal)를 더 포함하며,
    상기 비지 신호는, 상기 메모리 제어 허브(160A, 160B) 및 상기 메모리 제어 허브(160A, 160B)와 상기 호스트(100) 사이에 연결된 상기 복수의 메모리 모듈들(150A, 150B) 각각의 메모리 제어 허브들에 의해 주입되는 국부 트랜잭션들의 개수를 각각의 메모리 제어 허브에게 나타내며,
    상기 메모리 제어 허브(160A, 160B)는 상기 비지 신호에 응답하여 상기 단방향 업링크(211) 안으로 패킷들을 주입하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 메모리 제어 허브는,
    상기 제 1 메모리 링크(110A)의 상기 제 1 단방향 다운링크(212A)를 통해 트랜잭션을 수신하고, 그리고 상기 트랜잭션의 디코딩에 독립하여 상기 제 2 메모리 링크(110B)의 상기 제 2 단방향 다운링크(212B)를 통해 상기 트랜잭션을 전달하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제5항에 있어서,
    상기 메모리 제어기(250)는, 상기 트랜잭션을 상기 메모리 제어 허브에 관련된 메모리 어드레스에 매칭하는 메모리 어드레스를 갖는 메모리 명령으로 디코딩한 것에 응답하여, 상기 복수의 메모리 칩들(261A-N)에 액세스하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제3항에 있어서,
    상기 메모리 제어 허브(160A, 160B)는 상기 제 1 메모리 링크(110A)의 상기 제 1 단방향 업링크(211A)를 통해 트랜잭션을 수신하고, 상기 제 2 메모리 링크(110B)의 상기 제 2 단방향 업링크(211B)를 통해 상기 트랜잭션을 전달하며, 그리고
    상기 업링크 제어 유닛(241)은, 상기 제 2 단방향 업링크(211B)를 통해 운반되는 트랜잭션들의 시퀀스에 로컬 트랜잭션을 선택적으로 주입하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제1항에 있어서,
    상기 호스트는 메모리 제어기(105)를 포함하며, 상기 메모리 제어기(105)는 상기 메모리 모듈들(150A, 150B) 각각에 관련된 메모리 크기, 또는 상기 메모리 모듈들(150A, 150B) 중 어느 하나에 관련된 어드레스 범위에 관한 정보 없이, 메모리 요청 트랜잭션들을 발행(issue)하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제8항에 있어서,
    상기 메모리 제어기(105)는 또한 이전의 메모리 읽기 요청 트랜잭션에 대한 응답을 수신하기 전에 메모리 읽기 요청 트랜잭션을 발행하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 삭제
KR1020057021598A 2003-05-13 2004-05-10 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 KR101095025B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US47007803P 2003-05-13 2003-05-13
US60/470,078 2003-05-13
PCT/US2004/014441 WO2004102403A2 (en) 2003-05-13 2004-05-10 A system including a host connected to a plurality of memory modules via a serial memory interconnect

Publications (2)

Publication Number Publication Date
KR20060009345A KR20060009345A (ko) 2006-01-31
KR101095025B1 true KR101095025B1 (ko) 2011-12-20

Family

ID=33452363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057021598A KR101095025B1 (ko) 2003-05-13 2004-05-10 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템

Country Status (8)

Country Link
US (4) US20050071542A1 (ko)
JP (1) JP4836794B2 (ko)
KR (1) KR101095025B1 (ko)
CN (1) CN100444141C (ko)
DE (1) DE112004000821B4 (ko)
GB (1) GB2416056B (ko)
TW (1) TWI351613B (ko)
WO (1) WO2004102403A2 (ko)

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6464628B1 (en) 1999-08-12 2002-10-15 Obtech Medical Ag Mechanical anal incontinence
US6471635B1 (en) 2000-02-10 2002-10-29 Obtech Medical Ag Anal incontinence disease treatment with controlled wireless energy supply
DE60128971T2 (de) 2000-02-10 2008-02-07 Potencia Medical Ag Mechanische Vorrichtung zur Impotenzbehandlung
CA2635435C (en) 2000-02-10 2010-05-25 Potencia Medical Ag Controlled urinary incontinence treatment
WO2001050832A2 (en) 2000-02-11 2001-07-19 Potencia Medical Ag Controlled impotence treatment
WO2001047441A2 (en) 2000-02-14 2001-07-05 Potencia Medical Ag Penile prosthesis
ATE324087T1 (de) 2000-02-14 2006-05-15 Potencia Medical Ag Männliche impotentzprothesevorrichtung mit drahtloser energieversorgung
US7565326B2 (en) * 2000-05-25 2009-07-21 Randle William M Dialect independent multi-dimensional integrator using a normalized language platform and secure controlled access
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
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
US7102907B2 (en) * 2002-09-09 2006-09-05 Micron Technology, Inc. Wavelength division multiplexed memory module, memory system and method
US7529519B2 (en) * 2003-02-10 2009-05-05 Leapfrog Enterprises, Inc. Interactive handheld educational apparatus with stylus
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US20040264256A1 (en) * 2003-06-26 2004-12-30 Mauritz Karl H Electrical solution to enable high-speed interfaces
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
DE10335978B4 (de) * 2003-08-06 2006-02-16 Infineon Technologies Ag Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen
US7210059B2 (en) * 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
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
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7721060B2 (en) * 2003-11-13 2010-05-18 Intel Corporation Method and apparatus for maintaining data density for derived clocking
US7533218B2 (en) 2003-11-17 2009-05-12 Sun Microsystems, Inc. Memory system topology
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of 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
US20050210185A1 (en) * 2004-03-18 2005-09-22 Kirsten Renick System and method for organizing data transfers with memory hub memory modules
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7228442B2 (en) * 2004-03-30 2007-06-05 The Boeing Company Method and systems for a radiation tolerant bus interface circuit
US8050176B2 (en) * 2004-03-30 2011-11-01 The Boeing Company Methods and systems for a data processing system having radiation tolerant bus
US7337273B2 (en) 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7212423B2 (en) 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
US20060015450A1 (en) * 2004-07-13 2006-01-19 Wells Fargo Bank, N.A. Financial services network and associated processes
US7254663B2 (en) * 2004-07-22 2007-08-07 International Business Machines Corporation Multi-node architecture with daisy chain communication link configurable to operate in unidirectional and bidirectional modes
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
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
US7742438B1 (en) * 2004-10-21 2010-06-22 Owlink Technology, Inc. HDCP data transmission over a single communication channel
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US20070005902A1 (en) * 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US7809991B2 (en) * 2005-01-11 2010-10-05 Hewlett-Packard Development Company, L.P. System and method to qualify data capture
US7752016B2 (en) * 2005-01-11 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for data analysis
US7228472B2 (en) * 2005-01-11 2007-06-05 Hewlett-Packard Development Company, L.P. System and method to control data capture
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US20060195631A1 (en) 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US7620783B2 (en) * 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
US7640392B2 (en) 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
JP2006259906A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 通信制御装置、通信制御システム、省電力制御方法、省電力制御プログラム、および該プログラムを記録した記録媒体
JP4274140B2 (ja) 2005-03-24 2009-06-03 日本電気株式会社 ホットスワップ機能付きメモリシステム及びその障害メモリモジュールの交換方法
US7827462B2 (en) 2005-03-31 2010-11-02 Intel Corporation Combined command and data code
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
CN101872333A (zh) 2005-04-21 2010-10-27 提琴存储器公司 一种互连系统
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US20060288132A1 (en) * 2005-05-31 2006-12-21 Mccall James A Memory single-to-multi load repeater architecture
US20070016698A1 (en) * 2005-06-22 2007-01-18 Vogt Pete D Memory channel response scheduling
TWI285839B (en) * 2005-06-22 2007-08-21 Via Tech Inc Selectively prefetch method and bridge module
US7966446B2 (en) * 2005-09-12 2011-06-21 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US7930492B2 (en) * 2005-09-12 2011-04-19 Samsung Electronics Co., Ltd. Memory system having low power consumption
KR101293365B1 (ko) * 2005-09-30 2013-08-05 모사이드 테크놀로지스 인코퍼레이티드 출력 제어 메모리
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US20070076502A1 (en) 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
US7496777B2 (en) 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7478259B2 (en) * 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
KR100818298B1 (ko) 2005-12-08 2008-03-31 한국전자통신연구원 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US7516349B2 (en) 2005-12-29 2009-04-07 Intel Corporation Synchronized memory channels with unidirectional links
KR100656814B1 (ko) * 2006-01-17 2006-12-14 신잔토개발 주식회사 건설폐기물의 처리용 세골재 세척 분리 장치
WO2007112555A1 (en) * 2006-03-31 2007-10-11 Mosaid Technologies Incorporated Flash memory system control scheme
KR100801709B1 (ko) * 2006-05-16 2008-02-11 삼성전자주식회사 메모리 모듈 및 이를 구비한 메모리 시스템
US8185711B2 (en) 2006-05-16 2012-05-22 Samsung Electronics Co., Ltd. Memory module, a memory system including a memory controller and a memory module and methods thereof
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) * 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7430139B2 (en) * 2006-06-12 2008-09-30 Via Technologies, Inc. Shared memory synchronization systems and methods
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US7757064B2 (en) * 2006-09-07 2010-07-13 Infineon Technologies Ag Method and apparatus for sending data from a memory
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US20080104352A1 (en) * 2006-10-31 2008-05-01 Advanced Micro Devices, Inc. Memory system including a high-speed serial buffer
US7861140B2 (en) * 2006-10-31 2010-12-28 Globalfoundries Inc. Memory system including asymmetric high-speed differential memory interconnect
US7694031B2 (en) 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US7881303B2 (en) * 2006-12-13 2011-02-01 GlobalFoundries, Inc. Command packet packing to mitigate CRC overhead
US8032711B2 (en) * 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7783918B2 (en) * 2007-02-15 2010-08-24 Inventec Corporation Data protection method of storage device
US20080201588A1 (en) * 2007-02-16 2008-08-21 Mosaid Technologies Incorporated Semiconductor device and method for reducing power consumption in a system having interconnected devices
US8122202B2 (en) * 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
US7796462B2 (en) * 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
WO2008101316A1 (en) 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
JP5669338B2 (ja) 2007-04-26 2015-02-12 株式会社日立製作所 半導体装置
TW200901042A (en) * 2007-06-23 2009-01-01 Jmicron Technology Corp Storage device and circuit element switching method thereof
US7890788B2 (en) * 2007-07-09 2011-02-15 John Yin Clock data recovery and synchronization in interconnected devices
WO2009027802A1 (en) * 2007-08-28 2009-03-05 Nokia Corporation Method for bus testing and addressing in mass memory components
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
KR100934227B1 (ko) 2007-09-21 2009-12-29 한국전자통신연구원 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US8503678B2 (en) 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
KR101132321B1 (ko) * 2007-10-05 2012-04-05 바이올린 메모리 인코포레이티드 중간동기식 데이터 버스 장치 및 데이터 전송 방법
US8594110B2 (en) 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
EP2244760B8 (en) 2008-01-28 2022-07-20 Implantica Patent Ltd. An implantable drainage device
WO2009096859A1 (en) 2008-01-29 2009-08-06 Milux Holding Sa A device for treating obesity
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US8516185B2 (en) * 2009-07-16 2013-08-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US20100005206A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Automatic read data flow control in a cascade interconnect memory system
US8139390B2 (en) * 2008-07-08 2012-03-20 Mosaid Technologies Incorporated Mixed data rates in memory devices and systems
US8122421B2 (en) * 2008-08-14 2012-02-21 Omnivision Technologies, Inc. System, and method, and computer readable medium for designing a scalable clustered storage integrated circuit for multi-media processing
US8560735B2 (en) * 2008-08-15 2013-10-15 Micron Technology, Inc. Chained bus method and device
EP3909559A1 (en) 2008-10-10 2021-11-17 Medical Tree Patent Ltd Heart help device and system
WO2010042058A1 (en) 2008-10-10 2010-04-15 Milux Holding S.A. An improved artificial valve
EP2349170B1 (en) 2008-10-10 2023-09-27 Implantica Patent Ltd. Apparatus for the treatment of female sexual dysfunction
US20110196484A1 (en) 2008-10-10 2011-08-11 Milux Holding Sa Heart help method
EP2349025B1 (en) 2008-10-10 2015-09-16 Kirk Promotion LTD. A system, an apparatus, and a method for treating a sexual dysfunctional female patient
CA2776467A1 (en) 2008-10-10 2010-04-15 Peter Forsell Fastening means for implantable medical control assembly
DE102009004565B4 (de) * 2009-01-14 2015-04-02 Texas Instruments Deutschland Gmbh Vorrichtung und Verfahren zum Zwischenspeichern von Daten zwischen Speichercontroller und DRAM
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
CN101872308A (zh) * 2009-04-25 2010-10-27 鸿富锦精密工业(深圳)有限公司 内存条控制系统及其控制方法
US8046628B2 (en) * 2009-06-05 2011-10-25 Micron Technology, Inc. Failure recovery memory devices and methods
US8521980B2 (en) * 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US10952836B2 (en) 2009-07-17 2021-03-23 Peter Forsell Vaginal operation method for the treatment of urinary incontinence in women
US9949812B2 (en) 2009-07-17 2018-04-24 Peter Forsell Vaginal operation method for the treatment of anal incontinence in women
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8923405B1 (en) * 2010-01-25 2014-12-30 Ambarella, Inc. Memory access ordering for a transformation
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US20120079313A1 (en) * 2010-09-24 2012-03-29 Honeywell International Inc. Distributed memory array supporting random access and file storage operations
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2013028849A1 (en) * 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US8495440B2 (en) 2011-08-30 2013-07-23 Advanced Micro Devices, Inc. Fully programmable parallel PRBS generator
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
WO2013141545A1 (ko) 2012-03-21 2013-09-26 삼성에스디에스 주식회사 안티-멀웨어 시스템 및 상기 시스템에서의 데이터 처리 방법
CN102693337B (zh) * 2012-05-11 2014-04-30 江苏中科梦兰电子科技有限公司 8位位宽和16位位宽内存芯片兼容的内存设备设计方法
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
US9348753B2 (en) 2012-10-10 2016-05-24 Advanced Micro Devices, Inc. Controlling prefetch aggressiveness based on thrash events
WO2014056178A1 (zh) * 2012-10-12 2014-04-17 华为技术有限公司 内存系统、内存模块、内存模块的访问方法以及计算机系统
JP5985403B2 (ja) 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
JP6005533B2 (ja) 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
KR20150010150A (ko) * 2013-07-18 2015-01-28 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
JP5931816B2 (ja) 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
CN104461727A (zh) * 2013-09-16 2015-03-25 华为技术有限公司 内存模组访问方法及装置
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
JP2015152949A (ja) 2014-02-10 2015-08-24 株式会社東芝 ストレージシステム
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
US9396065B2 (en) * 2014-06-25 2016-07-19 Intel Corporation Extensible memory hub
US9600286B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US9448939B2 (en) 2014-06-30 2016-09-20 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9710271B2 (en) 2014-06-30 2017-07-18 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US9348643B2 (en) 2014-06-30 2016-05-24 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
US10528284B2 (en) * 2016-03-29 2020-01-07 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10496543B2 (en) 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US10678704B2 (en) 2016-03-29 2020-06-09 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10573354B2 (en) * 2016-09-22 2020-02-25 Smart Modular Technologies, Inc. High density memory module system
US10095421B2 (en) 2016-10-21 2018-10-09 Advanced Micro Devices, Inc. Hybrid memory module bridge network and buffers
US11373691B2 (en) 2019-12-20 2022-06-28 Micron Technology Inc. Clock locking for packet based communications of memory devices
US11513976B2 (en) * 2020-03-31 2022-11-29 Western Digital Technologies, Inc. Advanced CE encoding for bus multiplexer grid for SSD
TWI756810B (zh) * 2020-09-02 2022-03-01 瑞昱半導體股份有限公司 晶片與相關的晶片系統
TWI802065B (zh) * 2021-10-29 2023-05-11 飛捷科技股份有限公司 可控制周邊裝置電源與訊號的通信介面轉接器、動態分配通信介面轉接器識別碼的方法及自動化診斷周邊裝置並修復問題的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023353A2 (en) * 2000-09-18 2002-03-21 Intel Corporation Apparatus for implementing a buffered daisy-chain ring connection between a memory controller and memory modules

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604689A (en) * 1983-04-15 1986-08-05 Convergent Technologies, Inc. Bus repeater
JPH0740225B2 (ja) * 1985-12-25 1995-05-01 日本電気株式会社 プログラムスキツプ動作制御方式
US5434861A (en) * 1989-02-02 1995-07-18 Pritty; David Deterministic timed bus access method
GB2234372A (en) * 1989-07-18 1991-01-30 Anamartic Ltd Mass memory device
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
JP3548616B2 (ja) * 1995-01-20 2004-07-28 株式会社日立製作所 情報処理装置
US6226723B1 (en) * 1996-09-20 2001-05-01 Advanced Memory International, Inc. Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
JP3189727B2 (ja) * 1997-04-15 2001-07-16 日本電気株式会社 コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
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
US6154821A (en) * 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6643745B1 (en) * 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6249840B1 (en) * 1998-10-23 2001-06-19 Enhanced Memory Systems, Inc. Multi-bank ESDRAM with cross-coupled SRAM cache registers
US6272601B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Critical word forwarding in a multiprocessor system
US6567023B1 (en) * 1999-09-17 2003-05-20 Kabushiki Kaisha Toshiba Analog to digital to analog converter for multi-valued current data using internal binary voltage
JP3892655B2 (ja) * 1999-09-17 2007-03-14 株式会社東芝 半導体集積回路装置
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6430648B1 (en) * 2000-01-05 2002-08-06 International Business Machines Corporation Arranging address space to access multiple memory banks
KR100335501B1 (ko) * 2000-06-09 2002-05-08 윤종용 향상된 데이터 버스 성능을 갖는 메모리 모듈
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US6877079B2 (en) * 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
JP2002278825A (ja) * 2001-03-19 2002-09-27 Ricoh Co Ltd メモリ制御装置
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US6760817B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
US7184408B2 (en) * 2001-07-31 2007-02-27 Denton I Claude Method and apparatus for programmable generation of traffic streams
DE10146491B4 (de) * 2001-09-21 2006-04-13 Infineon Technologies Ag Elektronische Schaltung mit einer Treiberschaltung
US6781911B2 (en) * 2002-04-09 2004-08-24 Intel Corporation Early power-down digital memory device and method
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
TW569096B (en) * 2002-09-17 2004-01-01 Integrated Technology Express The cache/prefetch frame of serial data system and its method of operation
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023353A2 (en) * 2000-09-18 2002-03-21 Intel Corporation Apparatus for implementing a buffered daisy-chain ring connection between a memory controller and memory modules

Also Published As

Publication number Publication date
KR20060009345A (ko) 2006-01-31
DE112004000821T5 (de) 2006-05-11
GB0521694D0 (en) 2005-11-30
JP4836794B2 (ja) 2011-12-14
US20050166006A1 (en) 2005-07-28
WO2004102403A3 (en) 2005-08-25
GB2416056A (en) 2006-01-11
TW200508875A (en) 2005-03-01
US20050162882A1 (en) 2005-07-28
US7421525B2 (en) 2008-09-02
CN1788260A (zh) 2006-06-14
JP2006528394A (ja) 2006-12-14
CN100444141C (zh) 2008-12-17
US20050071542A1 (en) 2005-03-31
US20040230718A1 (en) 2004-11-18
DE112004000821B4 (de) 2016-12-01
GB2416056B (en) 2006-08-23
WO2004102403A2 (en) 2004-11-25
US7016213B2 (en) 2006-03-21
TWI351613B (en) 2011-11-01

Similar Documents

Publication Publication Date Title
KR101095025B1 (ko) 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템
US8019907B2 (en) Memory controller including a dual-mode memory interconnect
US7590882B2 (en) System, method and storage medium for bus calibration in a memory subsystem
JP5300732B2 (ja) 高速シリアルバッファを有するメモリシステム
US8086915B2 (en) Memory controller with loopback test interface
US7342816B2 (en) Daisy chainable memory chip
US20050283546A1 (en) Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers
US20080025129A1 (en) Daisy chained memory system
US20080104456A1 (en) Memory system including asymmetric high-speed differential memory interconnect
US20080025130A1 (en) Computer system having daisy chained self timed memory chips
US7627711B2 (en) Memory controller for daisy chained memory chips
US20050076152A1 (en) Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers
US7577811B2 (en) Memory controller for daisy chained self timed memory chips
US10222992B2 (en) Synchronization method and apparatus for an interconnection network using parallel-headerless TDMA routing
US7660942B2 (en) Daisy chainable self timed memory chip
US7617350B2 (en) Carrier having daisy chained memory chips

Legal Events

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

Payment date: 20141126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8