KR20060009345A - 직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 - Google Patents
직렬 메모리 상호접속부를 통해 복수의 메모리 모듈에결합된 호스트를 포함하는 시스템 Download PDFInfo
- Publication number
- KR20060009345A KR20060009345A KR1020057021598A KR20057021598A KR20060009345A KR 20060009345 A KR20060009345 A KR 20060009345A KR 1020057021598 A KR1020057021598 A KR 1020057021598A KR 20057021598 A KR20057021598 A KR 20057021598A KR 20060009345 A KR20060009345 A KR 20060009345A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- transaction
- host
- link
- packets
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 297
- 238000000034 method Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 18
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000011144 upstream manufacturing Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000011084 recovery Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000002347 injection Methods 0.000 description 11
- 239000007924 injection Substances 0.000 description 11
- 230000001427 coherent effect Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 235000006040 Prunus persica var persica Nutrition 0.000 description 1
- 240000006413 Prunus persica var. persica Species 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
- G06F13/4256—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using 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)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
메모리 모듈들(150A-B)의 직렬 연결 체인에 연결된 호스트(100)를 포함하는 시스템(50). 일 실시예에서, 메모리 모듈들 각각은 메모리 모듈 상의 복수의 메모리 칩들(261)로의 액세스를 제어하는 메모리 제어 허브(160)를 포함한다. 메모리 모듈들은 직렬 체인으로 복수의 메모리 링크들(110)을 통해 호스트로 연결된다. 각 메모리 링크는 호스트로 향하는 트랜잭션들을 운반하는 업링크(211)와 호스트에서 시작하여 체인 내의 다음 메모리 모듈로의 트랜잭션들을 운반하는 다운링크(212)를 포함한다. 업링크 및 다운링크는 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하는 패킷들을 사용하는 트랜잭션들을 운반한다. 메모리 제어 허브는 트랜잭션의 디코딩에 독립적으로 제 1 메모리 링크의 제 1 다운링크 및 제 2 메모리 링크의 제 2 다운링크 상에서 수신된 트랜잭션을 운반한다.
Description
본 발명은 컴퓨터 시스템 메모리에 관한 것이고, 더욱 상세하게는 메모리 모듈 구성과 메모리 서브시스템 토폴로지(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)에 할당된 어드레스 범위 내의 어드레스를 포함하지 않는다면, 메모리 제어 허브(160)는 메모리 모듈(150)이 체인 내의 최종 메모리 모듈이라면 상기 패킷을 드롭(drop)하거나 버린다.
일 실시예에서, 메모리 제어 허브(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)에 연결된다.
도시된 실시예에서, 위상 정렬 유닛(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)로 보내진다. 따라서, 일 실시예에서, 주입된 장패킷에 대해 비지 펄스 주입 유닛(35)은 장패킷 각각에 대해 두 개의 펄스를 포함할 수 있다.
또한, 비지 펄스 주입 유닛(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 제어, 어드레스 및 데이터(CAD) 신호와, 비지 신호와, 그리고 제어(CTL) 신호를 포함한다. 주어진 업링크는 16 제어, 어드레스 및 데이터(CAD) 신호를 포함한다. 그러나, 대안적인 실시예에서, 업링크(211A)와 같은 업링크는 또한 CTL 신호를 포함할 수 있다.
고속 링크들에 더해, 다른 신호들이 각 메모리 모듈(150)에 제공될 수 있다. 예를 들면, 일 실시예에서, 호스트(100)로부터 리셋 신호, 파워 OK 신호, 및 기준 클럭이 각 메모리 모듈(150)에 제공된다. 또한, 다른 신호들이 각 메모리 모듈 사이에 제공된다. 예를 들면, 전술한 바와 같이, 다음 메모리 모듈 프레즌트 신호가 메모리 모듈들 사이에 제공된다.
일반적으로, 메모리 링크들(110) 상에 운반되는 트랜잭션들 유형은 구성 및 제어 트랜잭션들과 메모리 트랜잭션들로 분류될 수 있다. 일 실시예에서, 구성 및 제어 트랜잭션들은 메모리 제어 허브(160)를 구성하는데 사용될 수 있다. 예를 들면, 구성 및 제어 트랜잭션들은 구성 레지스터들에 액세스하고, 메모리 어드레스 범위를 메모리 모듈에 할당하거나 허브 어드레스를 메모리 제어 허브에 할당하는데 사용된다. 메모리 트랜잭션들은 메모리 칩들(261A-261N) 내의 메모리 위치들에 액세스하는데 사용될 수 있다.
따라서, 일 실시예에서, 지원되는 두 개 유형의 어드레싱: 허브 어드레싱 및 메모리 어드레싱이 있다. 허브 어드레싱을 사용하여, 8 허브 비트들은 액세스되는 특정 메모리 제어 허브를 정의한다. 일 실시예에서, FFh의 허브 어드레스는 모든 메모리 제어 허브로의 브로드캐스트를 나타낸다. 메모리 어드레싱을 사용하여, 각 허브는 어드레스 비트들의 상위 부분을 디코딩하여 어떤 허브가 요청을 받아들여야 하는지 결정하고, 하위 부분을 디코딩하여 액세스되는 메모리 위치를 결정한다. 일 실시예에서, 40 어드레스 비트들이 있지만, 다른 실시예들에서는 필요에 따라 다른 수의 어드레스 비트들이 사용될 수 있다.
일 실시예에서, 각 메모리 링크들은 하나 이상의 패킷들을 사용하여 트랜잭 션들을 운반하도록 구성된다. 패킷들은 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하며, 이들 각각은 패킷이 운반하는 명령 유형에 따른 데이터 페이로드를 포함한다. 이와 같이, 메모리 링크들(110)을 구성하는 와이어 세트들은 제어, 어드레스 및 데이터를 운반하는데 사용된다.
일반적으로, 패킷들은 각 패킷이 단일 정보 비트를 운반하는 수많은 비트 포지션을 포함하는 것이 특징이다. 각 패킷은 수개의 비트 시간들로 분할되고 주어진 비트 시간 동안에 패킷의 모든 비트 포지션들이 샘플링된다. 이와 같이, 제어 정보 및 데이터는 주어진 링크의 동일한 와이어들을 공유한다. 더욱 상세하게 후술하는 바와 같이, 일 실시예에서, 패킷들은 비트 쌍들의 집합이고 매 패킷의 제 1 비트 시간은 짝수 비트 시간에 샘플링된다. 패킷들은 하나 또는 두개 비트 쌍 길이인 제어 헤더로 시작한다. 일 실시예에서, 제어 헤더의 처음 다섯개 비트들은 명령 코드이다. 아래 테이블 1은 다양한 유형의 패킷들과 이들의 관련 명령 코드들을 설명한다. 그러나, 주목할 사항으로, 제 1칸에 도시된 실제 코드들은 단지 설명적인 목적일 뿐이며 다른 코드들이 각 주어진 명령에 대해 사용될 수 있다.
[테이블 1]
또한, 일 실시예에서, 패킷들(NOP 패키들 제외)은 오류 검출 코드(EDC)와 함께 전송된다. 주목할 사항으로, 일 실시예에서 EDC는 32 비트 주기적 덧붙임 코드(cyclic redundancy code)(CRC)이지만, 다른 실시예들은 필요에 따라 다른 EDC를 채택할 수 있다. 또한, 어드레스들은 메모리 제어 허브(160) 내에서 빠른 디코딩을 위해 중요한 비트 시간이 제일 먼저 전송되는 반면, 데이터는 가장 중요하지 않은 바이트가 제일 먼저 전송된다. 그러나, 주목할 사항은, 다른 실시예에서는 어드레스가 가장 중요하지 않은 비트-시간이 제일 먼저 전송되고 데이터가 가장 중요한 바이트가 제일 먼저 전송될 수 있다. 패킷들은 바이트 인에이블 페이로드 및/또는 데이터를 운반한다. 페이로드 없는 패킷들은 헤더온리 패킷(header-only packet)들로 불린다. 일 실시예에서, 단(short) 읽기 데이터의 크기는 프로그램 캐시 라인 크기의 절반까지 일 것이다. 게다가, 장(long) 읽기 및 블록 쓰기를 위한 데이터의 크기는 프로그램 캐시 라인 크기까지 일 것이다. 또한, 바이트 쓰기의 크기는 캐시 라인 크기 설정에 관계없이 최대 64 바이트이다.
패킷 내에 포함된 제어 헤더와 명령 코드 정보에 더하여, CTL 신호가 각 패킷에 관한 정보를 운반하는데 사용된다. 테이블 2에 기재된 바와 같이, 일부 예시적인 CTL 인코딩들이 도시된다.
[테이블 2]
패킷의 페이로드 부분과 헤더에 대한 CTL의 서로 다른 값들은 헤더온리 패킷들이 다른 패킷의 페이로드 내에 삽입되도록 하기에 충분한 정보를 제공한다. 이는 읽기 명령의 지연을 감소시키는바, 이는 쓰기 패킷이 링크 상에서 여전히 전송되는 동안에 읽기 명령이 발행되도록 함으로써 이루어진다. 테이블 3의 패킷은 또한 4-7 비트 시간 동안에 헤더온리 패킷이 페이로드에 삽입되는 것을 도시한다.
[테이블 3]
도 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 노드는 주변 버스들(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)
- 호스트(100)와; 그리고상기 호스트에 직렬 체인으로 연결된 복수의 메모리 모듈들(150A 및 150B)을 포함하는 것을 특징으로 하는 시스템(50).
- 제 1항에 있어서,상기 복수의 메모리 모듈들 각각은 복수의 메모리 칩들(261A-N)로의 액세스를 제어하도록 연결된 메모리 제어 허브(160A 및 160B)를 포함하는 것을 특징으로 하는 시스템.
- 제 2항에 있어서,상기 복수의 메모리 모듈들은 복수의 메모리 링크(110A, B 및 C)를 통해 상기 호스트에 직렬 체인으로 연결되며,상기 메모리 링크 각각은 상기 호스트로 향하는 트랜잭션들을 운반하는 업링크(211A)와 상기 호스트에서 시작하여 상기 체인 내의 다음 메모리 모듈로 향하는 트랜잭션들을 운반하는 다운링크(212A)를 포함하는 것을 특징으로 하는 시스템.
- 제 3항에 있어서,상기 업링크 및 상기 다운링크는 각각 제어 및 구성 패킷들과 메모리 액세스 패킷들을 포함하는 패킷들을 사용하여 트랜잭션들을 운반하는 복수의 신호를 포함하는 단방향 링크이며,상기 패킷들의 적어도 일부분은 제어, 어드레스 및 데이터 정보를 포함하며,상기 제어, 어드레스 및 데이터 정보는 상기 주어진 링크의 동일한 와이어를 공유하는 것을 특징으로 하는 시스템.
- 제 3항에 있어서,상기 메모리 제어 허브는 제 1 메모리 링크의 제 1 다운링크(212A) 상에서 트랜잭션을 수신하고 상기 트랜잭션의 디코딩에 독립하여 제 2 메모리 링크의 제 2 다운링크(212B) 상에 상기 트랜잭션을 전달하는 것을 특징으로 하는 시스템.
- 제 5항에 있어서,상기 메모리 제어 허브는 DRAM 제어기(250)를 포함하며,상기 DRAM 제어기는 상기 트랜잭션을 상기 메모리 제어 허브에 관련된 메모리 어드레스에 매칭하는 메모리 어드레스를 포함하는 메모리 명령으로 디코딩한 것에 응답하여, 상기 복수의 메모리 칩들에 액세스하는 것을 특징으로 하는 시스템.
- 제 3항에 있어서,상기 메모리 제어 허브는 제 1 메모리 링크의 제 1 업링크 상에서 트랜잭션을 수신하고 제 2 메모리 링크의 제 2 업링크 상에 상기 트랜잭션을 전달하며, 그 리고상기 메모리 제어 허브는 로컬 트랜잭션을 상기 제 2 업링크 상에 운반되는 트랜잭션들 시퀀스에 선택적으로 주입하는 제어 유닛을 포함하는 것을 특징으로 하는 시스템.
- 제 1항에 있어서,상기 호스트는 상기 메모리 모듈들 각각에 관련된 메모리 크기나 상기 임의의 메모리 모듈들에 관련된 어드레스 범위의 인식 없이, 메모리 요청 트랜잭션들을 발생하는 것을 특징으로 하는 시스템.
- 제 8항에 있어서,상기 메모리 제어기는 또한 이전의 메모리 읽기 요청 트랜잭션에 대한 응답을 수신하기 전에 메모리 읽기 요청 트랜잭션을 발생하는 것을 특징으로 하는 시스템.
- 제 1 메모리 링크(110A)를 통해 호스트(100)를 제 1 메모리 모듈(150A)에 결합하는 단계와; 그리고제 2 메모리 링크(110B)를 통해 상기 제 1 메모리 모듈을 제 2 메모리 모듈(150B)에 결합하는 단계를 포함하고,상기 제 1 메모리 모듈 및 상기 제 2 메모리 모듈은 상기 제 1 메모리 링크 와 제 2 메모리 링크를 통해 상기 호스트에 직렬로 결합되며,상기 제 1 메모리 모듈은 상기 제 1 메모리 링크 상에서 트랜잭션을 수신하고 상기 트랜잭션의 디코딩에 독립하여 상기 제 2 메모리 링크 상에 상기 트랜잭션을 전달하는 것을 특징으로 하는 방법.
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 true KR20060009345A (ko) | 2006-01-31 |
KR101095025B1 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) | US7421525B2 (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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100801709B1 (ko) * | 2006-05-16 | 2008-02-11 | 삼성전자주식회사 | 메모리 모듈 및 이를 구비한 메모리 시스템 |
KR100840140B1 (ko) * | 2004-03-18 | 2008-06-23 | 마이크론 테크놀로지 인코포레이티드 | 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법 |
KR100843491B1 (ko) * | 2004-07-30 | 2008-07-04 | 인터내셔널 비지네스 머신즈 코포레이션 | 메모리 서브시스템, 버스 속도 멀티플라이어의 제공 방법 및 저장매체 |
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 |
Families Citing this family (217)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6471635B1 (en) | 2000-02-10 | 2002-10-29 | Obtech Medical Ag | Anal incontinence disease treatment with controlled wireless energy supply |
US6464628B1 (en) | 1999-08-12 | 2002-10-15 | Obtech Medical Ag | Mechanical anal incontinence |
ES2241780T3 (es) | 2000-02-10 | 2005-11-01 | Potencia Medical Ag | Aparato mecanico para el tratamiento de la impotencia. |
CN101803965B (zh) | 2000-02-10 | 2014-02-26 | 厄罗洛吉卡股份公司 | 控制小便失禁的治疗 |
DE60131726T2 (de) | 2000-02-11 | 2008-11-06 | Potencia Medical Ag | Kontrollierte impotenzbehandlung |
EP1255513B1 (en) | 2000-02-14 | 2005-05-25 | 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 |
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 |
US7836252B2 (en) | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
US7102907B2 (en) * | 2002-09-09 | 2006-09-05 | Micron Technology, Inc. | Wavelength division multiplexed memory module, memory system and method |
US7083420B2 (en) * | 2003-02-10 | 2006-08-01 | Leapfrog Enterprises, Inc. | Interactive handheld 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 |
US7340537B2 (en) | 2003-06-04 | 2008-03-04 | Intel Corporation | Memory channel with redundant presence detect |
US8171331B2 (en) * | 2003-06-04 | 2012-05-01 | Intel Corporation | Memory channel having deskew separate from redrive |
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 |
US7107415B2 (en) * | 2003-06-20 | 2006-09-12 | Micron Technology, Inc. | Posted write buffers and methods of posting write requests in memory modules |
US7428644B2 (en) * | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7260685B2 (en) * | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
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 |
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 |
US7136958B2 (en) | 2003-08-28 | 2006-11-14 | Micron Technology, Inc. | Multiple processor system and method including multiple memory hub 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 |
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 |
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 |
US7181584B2 (en) * | 2004-02-05 | 2007-02-20 | Micron Technology, Inc. | Dynamic command and/or address mirroring system and method for memory modules |
US7366864B2 (en) | 2004-03-08 | 2008-04-29 | Micron Technology, Inc. | Memory hub architecture having programmable lane widths |
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 |
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 |
US7310748B2 (en) * | 2004-06-04 | 2007-12-18 | Micron Technology, Inc. | Memory hub tester interface and method for use thereof |
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 |
US7224595B2 (en) * | 2004-07-30 | 2007-05-29 | International Business Machines Corporation | 276-Pin buffered memory module with enhanced fault tolerance |
US7389375B2 (en) * | 2004-07-30 | 2008-06-17 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
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 |
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 |
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 |
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 |
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 |
US7305574B2 (en) * | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7356737B2 (en) * | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | System, method and storage medium for testing a memory module |
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 |
US7299313B2 (en) * | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
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 |
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 |
KR101271245B1 (ko) | 2005-04-21 | 2013-06-07 | 바이올린 메모리 인코포레이티드 | 상호접속 시스템 |
US8452929B2 (en) | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | 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 |
US9286198B2 (en) | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
US20060288132A1 (en) * | 2005-05-31 | 2006-12-21 | Mccall James A | Memory single-to-multi load repeater architecture |
TWI285839B (en) * | 2005-06-22 | 2007-08-21 | Via Tech Inc | Selectively prefetch method and bridge module |
US20070016698A1 (en) * | 2005-06-22 | 2007-01-18 | Vogt Pete D | Memory channel response scheduling |
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 |
US11948629B2 (en) | 2005-09-30 | 2024-04-02 | Mosaid Technologies Incorporated | Non-volatile memory device with concurrent bank operations |
KR101260632B1 (ko) * | 2005-09-30 | 2013-05-03 | 모사이드 테크놀로지스 인코퍼레이티드 | 출력 제어 메모리 |
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 |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
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 | 신잔토개발 주식회사 | 건설폐기물의 처리용 세골재 세척 분리 장치 |
ATE488009T1 (de) * | 2006-03-31 | 2010-11-15 | Mosaid Technologies Inc | Flash-speichersystem-steuerverfahren |
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 |
US8028186B2 (en) | 2006-10-23 | 2011-09-27 | Violin Memory, Inc. | Skew management in an interconnection system |
US7870459B2 (en) * | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7694031B2 (en) | 2006-10-31 | 2010-04-06 | Globalfoundries Inc. | Memory controller including a dual-mode memory interconnect |
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 |
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 |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
US7603526B2 (en) * | 2007-01-29 | 2009-10-13 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
US7783918B2 (en) * | 2007-02-15 | 2010-08-24 | Inventec Corporation | Data protection method of storage device |
US8122202B2 (en) | 2007-02-16 | 2012-02-21 | Peter Gillingham | Reduced pin count interface |
JP5385156B2 (ja) * | 2007-02-16 | 2014-01-08 | モサイド・テクノロジーズ・インコーポレーテッド | 半導体デバイスおよび複数の相互接続デバイスを有するシステムの電力消費を低減するための方法 |
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 |
US8086785B2 (en) | 2007-02-22 | 2011-12-27 | Mosaid Technologies Incorporated | System and method of page buffer operation for memory devices |
US7796462B2 (en) | 2007-02-22 | 2010-09-14 | Mosaid Technologies Incorporated | Data flow control in multiple independent port |
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 |
CN101836193B (zh) * | 2007-10-05 | 2012-10-03 | 提琴存储器公司 | 一种同步数据总线装置及数据传输方法 |
WO2010042045A1 (en) | 2008-10-10 | 2010-04-15 | Milux Holding S.A. | A system, an apparatus, and a method for treating a sexual dysfunctional female patient |
US8594110B2 (en) | 2008-01-11 | 2013-11-26 | Mosaid Technologies Incorporated | Ring-of-clusters network topologies |
WO2009096855A1 (en) | 2008-01-28 | 2009-08-06 | Milux Holding Sa | Blood clot removal device, system, and method |
CA2749778C (en) | 2008-01-29 | 2021-06-15 | Milux Holding S.A. | A device, system and method 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 |
HUE056076T2 (hu) | 2008-10-10 | 2022-01-28 | Medicaltree Patent Ltd | Szívsegítõ készülék és rendszer |
US8600510B2 (en) | 2008-10-10 | 2013-12-03 | Milux Holding Sa | Apparatus, system and operation method for the treatment of female sexual dysfunction |
EP3851076A1 (en) | 2008-10-10 | 2021-07-21 | MedicalTree Patent Ltd. | An improved artificial valve |
CA2776467A1 (en) | 2008-10-10 | 2010-04-15 | Peter Forsell | Fastening means for implantable medical control assembly |
US20110196484A1 (en) | 2008-10-10 | 2011-08-11 | Milux Holding Sa | Heart help method |
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 |
US9949812B2 (en) | 2009-07-17 | 2018-04-24 | Peter Forsell | Vaginal operation method for the treatment of anal incontinence in women |
US10952836B2 (en) | 2009-07-17 | 2021-03-23 | Peter Forsell | Vaginal operation method for the treatment of urinary incontinence in women |
US8230276B2 (en) * | 2009-09-28 | 2012-07-24 | International Business Machines Corporation | Writing to memory using adaptive write techniques |
US8386739B2 (en) * | 2009-09-28 | 2013-02-26 | International Business Machines Corporation | Writing to memory using shared address buses |
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 |
US9098209B2 (en) | 2011-08-24 | 2015-08-04 | Rambus Inc. | Communication via a memory interface |
WO2013028859A1 (en) | 2011-08-24 | 2013-02-28 | Rambus Inc. | Methods and systems for mapping a peripheral function onto a legacy memory interface |
US11048410B2 (en) | 2011-08-24 | 2021-06-29 | Rambus Inc. | Distributed procedure execution and file systems on 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 |
KR101518111B1 (ko) | 2012-03-21 | 2015-05-07 | 삼성에스디에스 주식회사 | 안티-멀웨어 시스템 및 상기 시스템에서의 데이터 처리 방법 |
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 |
US9710271B2 (en) | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during 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 |
US9600286B2 (en) | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for 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 |
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 |
US10528284B2 (en) * | 2016-03-29 | 2020-01-07 | 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 | 飛捷科技股份有限公司 | 可控制周邊裝置電源與訊號的通信介面轉接器、動態分配通信介面轉接器識別碼的方法及自動化診斷周邊裝置並修復問題的方法 |
Family Cites Families (40)
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 |
US6430648B1 (en) * | 2000-01-05 | 2002-08-06 | International Business Machines Corporation | Arranging address space to access multiple memory banks |
US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
KR100335501B1 (ko) * | 2000-06-09 | 2002-05-08 | 윤종용 | 향상된 데이터 버스 성능을 갖는 메모리 모듈 |
US6625687B1 (en) * | 2000-09-18 | 2003-09-23 | Intel Corporation | Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing |
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 |
-
2004
- 2004-05-10 US US10/842,296 patent/US7421525B2/en active Active
- 2004-05-10 WO PCT/US2004/014441 patent/WO2004102403A2/en active Application Filing
- 2004-05-10 US US10/842,339 patent/US20050071542A1/en not_active Abandoned
- 2004-05-10 US US10/842,297 patent/US7016213B2/en not_active Expired - Fee Related
- 2004-05-10 CN CNB2004800131820A patent/CN100444141C/zh not_active Expired - Lifetime
- 2004-05-10 KR KR1020057021598A patent/KR101095025B1/ko active IP Right Grant
- 2004-05-10 US US10/842,298 patent/US20050166006A1/en not_active Abandoned
- 2004-05-10 GB GB0521694A patent/GB2416056B/en not_active Expired - Lifetime
- 2004-05-10 DE DE112004000821.2T patent/DE112004000821B4/de not_active Expired - Lifetime
- 2004-05-10 JP JP2006532883A patent/JP4836794B2/ja not_active Expired - Lifetime
- 2004-05-12 TW TW093113296A patent/TWI351613B/zh not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100840140B1 (ko) * | 2004-03-18 | 2008-06-23 | 마이크론 테크놀로지 인코포레이티드 | 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법 |
KR100843491B1 (ko) * | 2004-07-30 | 2008-07-04 | 인터내셔널 비지네스 머신즈 코포레이션 | 메모리 서브시스템, 버스 속도 멀티플라이어의 제공 방법 및 저장매체 |
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 |
Also Published As
Publication number | Publication date |
---|---|
US20050162882A1 (en) | 2005-07-28 |
GB2416056A (en) | 2006-01-11 |
US20050071542A1 (en) | 2005-03-31 |
CN1788260A (zh) | 2006-06-14 |
US20040230718A1 (en) | 2004-11-18 |
KR101095025B1 (ko) | 2011-12-20 |
CN100444141C (zh) | 2008-12-17 |
JP4836794B2 (ja) | 2011-12-14 |
US7421525B2 (en) | 2008-09-02 |
US7016213B2 (en) | 2006-03-21 |
TW200508875A (en) | 2005-03-01 |
DE112004000821B4 (de) | 2016-12-01 |
US20050166006A1 (en) | 2005-07-28 |
WO2004102403A3 (en) | 2005-08-25 |
GB0521694D0 (en) | 2005-11-30 |
WO2004102403A2 (en) | 2004-11-25 |
JP2006528394A (ja) | 2006-12-14 |
DE112004000821T5 (de) | 2006-05-11 |
GB2416056B (en) | 2006-08-23 |
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 | |
US7219294B2 (en) | Early CRC delivery for partial frame | |
US7395485B2 (en) | Check codes mapped across multiple frames | |
JP5300732B2 (ja) | 高速シリアルバッファを有するメモリシステム | |
US20050108458A1 (en) | Lane testing with variable mapping | |
US20070286199A1 (en) | Method and system for providing identification tags in a memory system having indeterminate data response times | |
US20080031077A1 (en) | Daisy chainable memory chip | |
US7212423B2 (en) | Memory agent core clock aligned to lane | |
US20080025129A1 (en) | Daisy chained memory system | |
US7861140B2 (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 | |
US7577811B2 (en) | Memory controller for daisy chained self timed memory chips | |
US20080028160A1 (en) | Carrier having daisy chain of self timed memory chips | |
US20080028161A1 (en) | Daisy chainable self timed memory chip | |
US7617350B2 (en) | Carrier having daisy chained memory chips | |
US5339312A (en) | Station interface unit |
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 |