KR101032550B1 - 단일 및 통합 커맨드를 모두 구비한 메모리 시스템 - Google Patents
단일 및 통합 커맨드를 모두 구비한 메모리 시스템 Download PDFInfo
- Publication number
- KR101032550B1 KR101032550B1 KR1020087015261A KR20087015261A KR101032550B1 KR 101032550 B1 KR101032550 B1 KR 101032550B1 KR 1020087015261 A KR1020087015261 A KR 1020087015261A KR 20087015261 A KR20087015261 A KR 20087015261A KR 101032550 B1 KR101032550 B1 KR 101032550B1
- Authority
- KR
- South Korea
- Prior art keywords
- mode
- command
- scheduling
- chip
- write
- Prior art date
Links
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/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/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Microcomputers (AREA)
Abstract
몇몇 실시예에서, 칩은 기록 요청을 포함하는 요청 대기열과, 기록 요청에 응답하여 커맨드를 포함하는 커맨드를 스케줄링하는 스케줄링 회로를 포함한다. 칩은 요청 대기열을 모니터링하고, 그 모니터링에 응답하여 스케줄링 회로에 대한 제 1 또는 제 2 모드를 선택하는 모드 선택 회로를 또한 포함하되, 제 1 모드에서, 스케줄링 회로는 특정의 커맨드를 개별적인 단일 커맨드로서 스케줄링하고, 제 2 모드에서, 스케줄링 회로는 하나 이상의 개별적인 단일 커맨드를 나타내는 통합 커맨드를 스케줄링한다. 다른 실시예가 개시된다.
Description
본 발명의 실시예는, 메모리 제어기가 특정 커맨드를 개별적인 단일 커맨드로서 제공하는 제 1 모드와, 메모리 제어기가 단일 커맨드를 나타내는 통합 커맨드를 제공하는 제 2 모드 사이에서 메모리 제어기가 동적으로 변하는 메모리 시스템에 관한 것이다.
메모리 시스템 내의 메모리 소자에 대한 다양한 배치가 제안되어 왔다. 예컨대, 전형적인 SDRAM(Synchronous Dynamic Random Access Memory) 시스템에서, 메모리 소자는 양방향 데이터 버스를 통해 데이터를 통신하고, 커맨드 및 어드레스 버스를 통해 커맨드 및 어드레스를 수신한다. 메모리 소자는 (3 이상의 포인트를 결합하는) 멀티 드랍 구성으로 버스에 접속하는 스터브(stub)를 구비하고 있다. 다른 설계는 (2개의 포인트를 결합하는) 포인트 투 포인트 시그널링을 포함한다. 포인트 투 포인트 시그널링은 단방향 또는 양방향일 수 있다. 이러한 시그널링은 싱글 엔드형 또는 차동형(differential)일 수 있다. 몇몇 시스템에서, 어드레스, 커맨드 및 기록 데이터는 동일 도체 상에 있을 수 있다.
메모리 제어기는 여러 커맨드를 메모리 소자에 제공한다. 이들 커맨드는 기동(activate) 커맨드(ACT), 프리차지 커맨드(PRE), 판독 커맨드(RD), 및 기록 커맨드(WR)를 포함한다. 판독 및 기록 커맨드는 종종 CAS 커맨드로 일컬어진다.
메모리 모듈은 다수의 메모리 소자가 배치되는 기판을 포함한다. 메모리 소자는 기판의 한쪽에만 또는 기판의 양쪽에 배치될 수 있다. 몇몇 시스템에서, 또한 버퍼는 기판상에 배치될 수 있다. 적어도 몇몇 신호에 대해서, 버퍼는 메모리 제어기(또는 다른 버퍼)와 그 모듈상의 메모리 소자 사이에서 인터페이싱한다. 이러한 버퍼형 시스템에서, 버퍼가 메모리 소자와의 시그널링을 이용하기보다, 메모리 제어기가 버퍼와의 상이한 시그널링을 이용할 수 있다. 듀얼 인 라인 메모리 모듈(DIMM)은 메모리 모듈의 일예이다. 다수의 모듈은 직렬 및/또는 병렬일 수 있다. 시스템은 하나 이상의 메모리 채널을 포함할 수 있다.
몇몇 컴퓨터 시스템은 마더보드 상의 몇몇 메모리 소자와 메모리 모듈 상의 다른 메모리 소자 또는 마더보드 상의 커넥터 내의 다른 카드를 포함한다.
몇몇 메모리 시스템에서, 메모리 소자는 신호를 수신하여 그 신호를 다른 메모리 소자로 재송하며(repeat), 또한 요청된 데이터 신호를 다음 메모리 소자에 제공한다. 판독 데이터 신호는 루프형인 직렬의 메모리 소자 내의 최종 메모리 소자로부터 또는 직렬인 최종 메모리 소자가 아닌 메모리 소자로부터 포인트 투 포인트 단방향 리턴 링크를 통해 메모리 제어기에 제공될 수 있다.
메모리 제어기는 칩셋 허브 및 프로세서 코어를 포함하는 칩에 사용되어 왔 다. 몇몇 컴퓨터 시스템은 무선 송신기 및 수신기 회로를 포함한다.
본 발명은 이하에 주어지는 상세한 설명 및 본 발명의 실시예에 대한 첨부 도면으로부터 충분히 이해할 수 있으며, 첨부 도면은 설명되는 특정 실시예로 본 발명을 제한하고자 하는 것이 아니라 단지 예시적이다.
도 1은 본 발명의 몇몇 실시예에 따른 메모리 제어기 및 메모리 소자를 포함하는 시스템의 블록도,
도 2는 본 발명의 몇몇 실시예에 따른 도 1의 메모리 제어기의 일부 상세 블록도,
도 3은 본 발명의 몇몇 실시예의 일부 측면을 설명하는 흐름도,
도 4는 본 발명의 몇몇 실시예에 따른 도 1의 메모리 제어기의 일부 상세 블록도,
도 5는 본 발명의 몇몇 실시예에 따른 도 1의 메모리 소자의 일부 상세 블록도,
도 6은 본 발명의 몇몇 실시예에 따른 도 5의 일부 상세 블록도,
도 7 및 도 8은 각각 본 발명의 몇몇 실시예의 일부 측면을 설명하는 타이밍도,
도 9 내지 도 13은 본 발명의 몇몇 실시예에 따른 시스템의 블록도.
도 1을 참조하면, 시스템(10)은 메모리 제어기(12)와 메모리 소자(14)를 포함한다. 도 1의 특정 실시예에서, 신호는 단방향 포인트 투 포인트 링크(18)를 통해 메모리 제어기(12)로부터 메모리 소자(14)로, 또한 단방향 포인트 투 포인트 링크(20)를 통해 메모리 소자(14)로부터 메모리 제어기(12)로 전달된다. 몇몇 실시예에서, 링크(18) 상의 신호는 커맨드, 어드레스 및 기록 데이터 신호를 포함하고, 링크(20) 상의 신호는 판독 데이터이다. 예컨대, 링크(18)는 6개의 도체 레인을 포함하고, 링크(20)는 8개의 도체 레인을 포함하며, 이들 도체 레인 각각은 하나의 도체 또는 차동 시그널링을 가진 2개의 도체를 구비할 수 있다. 편의상, 메모리 제어기(12)로부터 메모리 소자(14)로의 신호는 사우스 바운드(SB)라 하며, 메모리 소자(14)로부터 메모리 제어기(12)로의 신호는 노스 바운드(NB)라 하지만, 이는 필수적인 것은 아니다. 메모리 소자(12)는 DRAM 또는 다른 형태의 메모리 소자일 수 있다.
메모리 제어기(12)에 대한 몇몇 다른 실시예는 상이한 커맨드를 메모리 소자(14)에 제공한다. 이들 커맨드는 단일 커맨드(단일 기동 커맨드(ACT), 프리차지 커맨드(PRE), 단일 판독 커맨드(RD), 단일 기록 커맨드(WR))와, 통합 커맨드(통합 기동/판독 커맨드(ACT/RD) 및 통합 기동/기록 커맨드(ACT/WR))를 포함한다. 판독 및 기록 커맨드는 종종 CAS 커맨드라 한다. 따라서, ACT/RD 및 ACT/WR 커맨드는 일반적으로 ACT/CAS 커맨드라 한다. 추가의 커맨드가 있을 수 있다.
도 1의 예에서, 보다 많은 레인이 커맨드, 어드레스, 기록 데이터보다 판독 데이터에 전용으로 사용되는 이유는, 총 레인의 수를 특정 수 아래로 유지하기를 원하기 때문이고, 또한 대부분의 애플리케이션이 기록 집중적인 것보다 판독 집중적이기 때문이다. 그러나, 일부의 경우에, SB 링크(18)에 있어서의 이용가능한 대역폭(BW)은 심하게 제한될 수 있다. 링크(18)에 대한 용량을 해소하는 방법은 통합 커맨드를 제공하는 것이다.
단일 커맨드의 장점은 최적으로 스케줄링되기 쉽다는 것에 있다. (이러한 상황에서, "최적"은 수학적인 최적을 반드시 의미하는 것은 아니지만, 일반적으로 수학적인 최적에 최소한 근접하는 것으로 의미된다.) 몇몇 실시예에서, 적시(JIT:just in time) 스케줄링을 이용하여, 커맨드 순서는 추후 시간에 또는 심지어 최종 가능 시간에 판단될 수 있어, 결과적으로 최적의 스케줄로 된다. 더욱이, JIT 스케줄링을 이용하여, 메모리 소자 코어 타이밍 제약 부근의 스케줄링에 대해 더욱 유연성을 부여할 수 있다. 불행하게도, 이들 단일 커맨드를 가지는 잠재적인 단점은 링크(18) 상의 커맨트 트래픽이 증가되고, 이로 인해 이용가능한 기록 데이터의 BW를 감소시킬 수 있으며, 일부의 경우에, 기록 BW 제한 문제를 두드러지게 할 수 있다는 것이다.
이러한 문제점을 해결하기 위해, 스케줄링 회로(32)는 기록 데이터 트래픽이 특별히 높아지지 않을 때 단일 커맨드를 스케줄링할 수 있으며, 기록 데이터 트래픽이 특별히 높아질 때 통합 커맨드를 스케줄링할 수 있다.
도 2는 메모리 제어기(12)의 몇몇 실시예에 포함되는 일부 상세도이지만, 본 발명은 이들 상세도로 제한되지 않는다. 도 12는 판독 요청 대기열(26) 및 기록 요청 대기열(28)을 포함한다. 판독 요청 대기열(26)로부터의 판독 요청과 기록 요청 대기열(28)로부터의 기록 요청은 이들 요청에 응답하여 메모리 소자(14)에 맞게 판독 및 기록 커맨드를 스케줄링할 수 있는 스케줄링 회로(32)에 제공된다. 커맨드 상태 선택 회로(30)는 기록 요청 대기열(28)의 분석에 일부분 기초하여 스케줄링 회로(32)가 제 1 모드에 있는지 또는 제 2 모드에 있는지 여부를 판단한다. 제 1 모드에서, 스케줄링 회로(32)는 기동 및 판독 커맨드를 개별적인 단일 커맨드로서, 또한 기동 및 기록 커맨드를 개별적인 단일 커맨드로서 스케줄링한다. 제 2 모드에서, 스케줄링 회로(32)는 대응하는 통합 기동/판독 및 기동/기록 커맨드를 스케줄링한다. 스케줄링 회로(32)에 의해 스케줄링된 커맨드는 송신기(36)에 의해 링크(18)에 제공된다. 메모리 제어기(12)는 링크(20) 상의 신호를 수신하는 수신기(38)를 또한 포함한다. 메모리 제어기(12)는 도 2에 도시되지 않은 추가의 회로를 포함한다.
도 3은 몇몇 실시예인 메모리 제어기(12)의 일부 측면을 설명하는 흐름도이다. 다른 실시예에서, 메모리 제어기(12)는 어느 정도 다르게 동작할 수 있다. 도 3을 참조하면, 스케줄링 회로(32)는 스케줄링할 다음 커맨드를 고려한다(박스 40). 다음 커맨드가 프리차지 커맨드 또는 페이지 히트를 가진 CAS 커맨드(판독 또는 기록)이면, 스케줄링 회로(32)는 프리차지, 판독, 또는 기록 커맨드를 단일 커맨드로서 스케줄링한다.
고려할 다음 커맨드가 기동 커맨드이면, 판독 또는 기록 커맨드가 후속할 수 있다는 것을 의미한다. 그 경우에, 메모리 제어기(12)가 제 1 모드에 있다면, 스케줄링 회로(32)는 기동 커맨드를 단일 커맨드로서 스케줄링하고(박스 42), 메모리 제어기(12)가 제 2 모드에 있다면, 스케줄링 회로(32)는 기동 커맨드를 통합 커맨드(ACT/RD 또는 ACT/WR)의 일부로서 스케줄링한다(박스 46). 판단 박스(44)는 메모리 제어기(12)를 제 1 모드 또는 제 2 모드로 할지에 관한 판단을 나타낸다.
모드 선택 회로(30)는 스케줄링 회로(32)가 제 1 모드 또는 제 2 모드에 있는지 여부를 판단한다. 모드 선택 회로(30)는 이러한 판단을 행할 수 있는 방법에는 여러 가지가 있다. 한 가지 방법은 기록 요청 대기열의 충만에 관한 임계량을 설정하는 것이다. 임계값은 기록 요청 대기열(28)에서의 기록 요청의 수일 수 있다. 몇몇 실시예에서, 기록 요청 대기열(28)에서의 기록 요청의 수가 임계값에 대해 제 1 관계를 가지고 있다면, 모드 선택 회로(30)는 스케줄링 회로(32)를 제 1 모드로 한다. 대기열(28)에 있어서의 기록 요청의 회수가 임계값에 대해 제 2 관계를 가지고 있다면, 모드 선택 회로(30)는 메모리 제어기(12)를 제 2 모드로 한다. 몇몇 실시예에서, 제 1 관계는 보다 작고, 제 2 관계는 보다 크거나 같다. 다른 실시예에서, 제 1 관계는 보다 작거나 같고 제 2 관계는 보다 크다. 그러나, 본 발명은 기록 요청의 실제 수를 임계값와 비교하는 것으로 제한되지 않는다.
모드 선택 회로(30)는 메모리 제어기(12)가 어느 모드에 있는지를 판단할 때 다른 방법을 이용할 수 있다. 예컨대, 모드 선택 회로(30)는 차지하는 공간의 수보다 빈 기록 요청이 차지하지 않은 대기열 공간의 수를 모니터링한다. 이러한 경우에, 제 1 및 제 2 관계는 다를 수 있다. 또 다른 방법이 사용될 수 있다. 예컨대, 하나 보다 많은 유형의 기록 요청이 존재하면, 모드 선택 회로(30)는 상이한 인스트럭션에 서로 다른 대기를 부여할 수 있다. 예컨대, 몇몇 실시예에서, 모드 선택 회로(30)는 페이지 미스 또는 페이지 히트에 연관되어 있는지에 따라서 다르게 기록 요청을 가중할 수 있다. 다시, 가중 시스템을 이용한 1 또는 2의 임계값이 있을 수 있다. 몇몇 실시예에서, 모드 선택 회로(30)는 모드를 판단할 때 메모리 소자(14)의 가열 등과 같은 다른 요인을 고려한다. 몇몇 실시예에서, 스케줄링 회로(32)는 디폴트 조건으로서 제 1 모드에 있다.
기록 요청의 수는 임계값 위 아래로 신속히 향한다. 몇몇 실시예에서, 하나의 임계값이 있다. 예컨대, 제 1 모드에서 제 2 모드로 스위칭하는 하나의 임계값이 있고, 제 2 모드에서 제 1 모드로 스위칭하는 다른 임계값이 있다.
도 4는 판독/기록 필드(50)를 포함하는 결합된 판독 및 기록 요청 대기열(48)이 있다는 것을 제외하고 도 2와 유사하다. 이들 실시예에서, 모드 선택 회로(30)는 대기열(48) 내의 빈 엔트리에 대해 필드(50)의 내용을 기초로 하여 얼마나 많은 기록 요청이 대기열(48) 내에 있는지를 고려한다. 다른 접근 방법이 사용될 수 있다.
도 5는 몇몇 실시예에 따른 메모리 소자(14)의 상세를 도시하지만, 본 발명은 이들 상세로 제한되지 않는다. 도 5에서, 링크(18)로부터의 신호는 수신기(52)에 의해 수신되어 신호 분리 회로(54)에 제공된다. 기록 데이터는 기록 버퍼(62)에 제공되고, 커맨드는 커맨드 처리 회로(56)에 제공된다. 기록 버퍼(62)는 아래와 같이 사용된다. 몇몇 프로토콜에서, 기록 요청에 대해, 기록 데이터가 먼저 제공된다. 기록 커맨드 및 어드레스가 이후에 제공된다. 기록 데이터는, 관련 커맨드 및 어드레스에 의해 기록 데이터가 코어(64)에 기록될 수 있을 때까지(또는 다음 메모리 소자로 재송될 때까지(도 9 참조)), 기록 버퍼(62)에 유지된다. 코어(64)는 다수의 뱅크와 디코더 등의 여러 다른 회로를 포함할 수 있다. 디코더는 또한 코어(64) 앞에 포함되어 있을 수 있다. 몇몇 실시예는 이러한 방식으로 기록 데이터를 유지하는 기록 버퍼를 포함하지 않는다.
코어(64)는 내부 데이터 링크(70)로 판독 데이터를 반환한다. 송신기(72)는 링크(70)로부터 판독 데이터를 수신하여 외부 링크(20)에 제공한다.
도 6은 커맨드 처리 회로(56)인 몇몇 실시예의 추가 상세를 나타내지만, 다른 실시예에서, 이 회로는 상이하며 추가의 회로가 도 6의 실시예에 포함될 수 있다. 도 6에서, 커맨드 처리 회로(56)는 커맨드를 유지하는 커맨드 버퍼(86) 및 커맨드가 통합 커맨드인지를 판단하고, 그렇다면, 어느 단일 커맨드로 변환되는지를 판단하는 로직(88)을 포함한다.
도 5를 다시 참조하면, 특정의 수신된 커맨드가 단일 기동 커맨드, 단일 판독 커맨드, 또는 단일 기록 커맨드이면, 커맨드 처리 회로(56)는 특정의 커맨드를 단일 커맨드로서 코어(64)에 제공한다. 그러나, 판독 또는 기록 커맨드가 통합 커맨드이면, 커맨드 처리 회로(56)는 그 통합 커맨드를 코어(64)에 제공되는 2개의 단일 커맨드로 변환한다. 도 7 및 도 8은 이들의 예를 나타내지만, 본 발명은 도 7 및 도 8의 상세로 한정되지 않는다.
도 7은 2개의 단일 커맨드(ACT 및 RD)가 외부 링크(28) 상에 제공되는 경우를 도시한다. 시간(tPropSB) 후에, 이들 커맨드는 내부 커맨드 링크(60)에 제공된다. 이들 커맨드는 2개의 단일 커맨드이기 때문에, 커맨드 처리 회로(56)는 이들 커맨드를 패스한다. 시간(tRCD)은 기동 커맨드와 판독 커맨드 사이의 최소 시간이다. 시간(tCL)은 코어(64)가 판독 커맨드를 수신하는 시간과, 판독 데이터가 내부 데이터 링크(70) 상에 놓이는 시간 사이의 사이이다. 시간(tpropNB)은 판독 데이터가 내부 데이터 링크(70) 상에 놓을 때부터, 판독 데이터가 외부 데이터 링크(20)를 통해 메모리 제어기(12)에 의해 수신되는 시간까지의 시간이다. tRCD, tCL, tpropNB, 커맨드, 및 판독 데이터의 상대적인 길이는 편의상 도 7을 작성할 때 선택되었으며 정확한 값으로 하고자 한 것은 아니다는 것을 알아야 한다.
도 8은 통합 커맨드 ACT/RD가 외부 링크(18) 상에 제공되는 경우를 도시한다. 커맨드 처리 회로(56)는 통합 커맨드 ACT/RD를 2개의 단일 커맨드(ACT 및 RD)로 변환하여 내부 데이터 링크(60)에 제공한다. 그 다음, 판독 데이터는 도 7에서와 같이 코어(64)에 의해 내부 링크(70)에 제공된다.
몇몇 실시예에서, 도 7의 각각의 개별적인 커맨드는 하나의 커맨드 프레임을 차지한다. 몇몇 실시예에서, 커맨드가 차지하지 않는 임의의 커맨드 프레임은 커맨드에 의해 스케줄링되는 기록 데이터를 가지고 있다.
링크(18) 상에 보다 많은 이용가능 프레임을 제공하는 것에 더해서, 통합 커맨드를 적절히 사용함으로써, 메모리 소자의 전체적인 입력/출력 파워를 감소시킬 수 있다. 그러나, 상술한 바와 같이, 통합 커맨드를 이용하면 부분적인 최적 스케줄링으로 되고, 또한 스케줄링되는 커맨드가 더 많아질 수 있다. ACT와 CAS 커맨드가 링크(18) 상에 동시에 스케줄링될 때 문제가 발생한다. ACT 커맨드 일부는 여전히 JIT 스케줄링되지만, CAS 일부는 JIT 스케줄링을 이용하여 스케줄링되었을 때에 앞서 tRCD 스케줄링된다. 시간(tRCD)만큼 클록은 지나가고, CAS를 스케줄링하면 그 이상 최적으로 되지 않는다. 부분적 최적화 스케줄은 커맨드의 수를 감소시키는 것에 대항하여 커맨드의 수를 실제로 증가시킬 수 있다. 예컨대, 비 최적화 스케줄에 있어서, 보다 많은 페이지 미스가 발생하고, 이는 커맨드를 더 많게 한다. 또한, 이는 기록 대역폭을 보다 많게 제한할 수 있다. 더욱이, 몇몇 실시예에서, ACT 및 CAS는 적어도 tRCD를 개별적으로 수신해야 한다. 따라서, 이들 제한으로, ACT를 스케줄링하는 하나의 방법은 메모리 제어기가 한번에 ACT를 또한 적어도 tRCD 후에 CAS를 모두 스케줄링할 수 있게 하는 것이다. 한번에 2개의 커맨드를 스케줄링하는 것은 단 하나의 커맨드를 스케줄링하는 것보다 최적으로 될 가능성이 작다.
본 명세서에 기재된 디맨드 기반(demand-based)의 스케줄러는 단일 커맨드를 스케줄링하는 것과 통합 커맨드를 스케줄링하는 것 사이에서 스위칭할 수 있다. 몇몇 실시예에서, 디멘드는 현재 동작하는 작업부하가 필요로 하는 기록 BW의 양에 의해 다를 수 있으며, 이는 기록 요청 대기열의 순간적인 깊이에 의해 결정될 수 있다. 기록 BW가 특정 임계값을 넘을 때, 메모리 제어기는 통합 커맨드를 스케줄링하기 시작한다. 그렇지 않으면, 단일 커맨드만을 스케줄링할 것이다. 따라서, 판독 집중적인 애플리케이션에 있어서, 필요한 기록 BW는 매우 낮고 기록 요청 대기열의 깊이는 작아서, 스케줄러는 단일 커맨드를 스케줄링할 것이다. 그러나, 시스템이 일반적으로 단일 커맨드로 제한된 기록 BW인 기록 집중의 애플리케이션에 있어서, 기록 요청 대기열은 충만해질 것이고, 메모리 제어기는 통합 커맨드가 더 높은 기록 BW를 고려하려할 것이다.
적응적 통합 스케줄링 프로토콜은 테이블 상의 다수의 성능과 같이 두지 않고, 통합 커맨드에 의해 제공되는 파워 및 커맨드 BW 절약의 장점을 취할 수 있다. 통합 커맨드만이 스케줄링되면, 통합 커맨드는 최적으로 스케줄링 가능성이 낮기 때문에, 감소할 수 있다. 단일 커맨드만이 스케줄링되면, 성능은 성능은 잠재적으로 제한된 기록 BW로 인해 감소할 수 있다. 적응적 통합 알고리즘은 측정되거나 예측된 기록 BW에 근거한 통합에 의해서만 이들 단점 모두를 해결하고자 시도한다.
도 7 및 도 8의 커맨드에 대한 어드레스는 커맨드와 함께 패킷에 제공되거나, 개별적으로 제공될 수 있다. 기록 데이터는 필요하지 않지만, 커맨드와 함께 패킷에 제공될 수 있다. 기록 데이터는 커맨드와 함께 패킷에 제공되면, 커맨드는 반드시 그 기록 데이터용은 아니다.
단일 또는 통합 기록 커맨드를 이용한 메모리 소자(14)의 동작은, 판독 데이터가 기록 커맨드에 응답하여 코어(64)로부터 제공되지 않는 것과, 몇몇 실시예에 있어, 기록 데이터가 관련 기록 커맨드를 제공하기 전에 기록 버퍼(62)에 제공되는 것을 제외하고, 도 7 및 도 8과 유사하다.
메모리 제어기(12)와 메모리 소자(14)는 여러 시스템에 제공될 수 있다. 각각의 메모리 소자는 개별적인 칩이 되거나, 하나 이상의 메모리 소자는 하나의 칩에 포함될 수 있다. 도 9를 참조하면, 메모리 제어기(112)는 메모리 제어기(12)와 동일하거나 다를 수 있다. 메모리 소자(120-1 ... 120-N)는 메모리 소자(14)와 동일하거나 다를 수 있다. 몇몇 실시예에서, 메모리 소자(120-1 ... 120-N)는 메모리 모듈(122)의 기판(124) 상에 포함된 각각의 개별적인 칩이다. 이들 칩은 기판(124)의 한쪽 또는 각각의 쪽에 포함될 수 있다. 메모리 소자(130-1 ... 130-N)는 메모리 모듈(132)의 기판(134) 상에 있다. 도체(116-1 ... 116-N)는 메모리 제어기(112)와 메모리 소자(120-1 ... 120-N) 간의 여러 신호를 전달한다. 도체(126-1 ... 126-N)는 메모리 소자(120-1 ... 120-N)와 메모리 소자(130-1 ... 130-N) 간의 여러 신호를 전달한다. 몇몇 실시예에서, 도체(128-1 ... 128-N)는 메모리 소자(130-1 ... 130-N)로부터 메모리 제어기(12)로의 신호를 루프형으로 제공하지만 이는 필수적인 것은 아니다. 예시하지 않은 다른 도체가 있을 수 있다.
몇몇 실시예에서, 도체(116-1 ... 116-N)와 도체(126-1 ... 126-N)는 각각의 방향으로의 단방향 도체(도 1에서와 같이)를 포함하며, 다른 실시예에서, 메모리 제어기(112)로부터 멀어지는 방향으로의 신호를 가진 단방향 도체만을 포함한다. 다른 실시예에서, 이들은 몇몇 양방향 도체를 포함한다. 신호는 메모리 제어기(112)로부터 메모리 소자(120-1 ... 120-N)로 전송되고, 그 다음 메모리 소자(120-1 ... 120-N)에 의해 메모리 소자(130-1 ... 130-N)로 재송된다. 도체(116-1 ... 116-N), 도체(126-1 ... 126-N), 및 도체(128-1 ... 128-N) 각각은 하나 또는 2개의 도체일 수 있는 다수의 레인을 포함한다. 다른 몇몇 실시예에서, 메모리 소자(120-1 ... 120-N)가 메모리 모듈의 기판 상에 있는 대신에, 마더보드 상에 있다. 이러한 경우에, 기판(124)은 메모리 모듈의 기판보다는 마더보드를 나타낼 수 있다. 도 9 또는 다른 도면이 단일 메모리 소자를 도시하고 있는 경우에, 메모리 소자의 체인일 수 있다.
도 10은 메모리 소자(170-1 ... 170-N)가 메모리 모듈 기판(160) 상에 있고 메모리 소자(190-1 ... 190-N)가 메모리 모듈 기판(180) 상에 있는 시스템을 도시한다. 이들 메모리 소자 각각은 메모리 소자(14)와 동일하거나 다를 수 있다. 메모리 제어기(150)는 메모리 제어기(12)와 동일하거나 다를 수 있다. 몇몇 실시예에서, 메모리 제어기(150)와 메모리 소자(170-1 ... 170-N)는 버퍼(162, 182)를 통해 통신하고, 메모리 제어기(50)와 메모리 소자(190-1 ... 190-N)는 버퍼(162, 182)를 통해 통신한다. 이러한 버퍼형 시스템에서, 메모리 제어기는 버퍼와 함께, 버퍼가 메모리 소자와 함께 사용하는 것과는 다른 시그널링을 사용할 수 있다. 몇몇 실시예는 도 10에 도시되지 않은 다른 도체를 포함할 수 있다.
도 11은 메모리 제어기(12)와 동일 또는 다를 수 있는 메모리 제어기(202)에 겹합된 제 1 및 제 2 채널(206, 216)을 도시한다. 채널(206, 216)은 본 명세서에 기재된 바와 같은 메모리 소자를 포함하는 메모리 모듈(208, 218)에 각각 결합되어 있다.
도 12에서, (상술한 메모리 제어기 중 하나를 나타내는) 메모리 제어기(252)는 하나 이상의 프로세서 코어(254)를 또한 포함하는 칩(250)에 포함되어 있다. 입력/출력 제어기 칩(256)은 칩(250)에 결합되어 있으며, 또한 무선 송신기 회로와 무선 수신기 회로(258)에 결합되어 있다. 도 13에서, 메모리 제어기(252)는 허브 칩(274)에 포함되어 있다. 허브 칩(274)은 (하나 이상의 프로세서 코어(272)를 포함하는) 칩(270)과 입력/출력 제어기 칩(278) 사이에 결합되어 있다. 입력/출력 제어기 칩(278)은 무선 송신기 회로와 무선 수신기 회로(258)에 결합되어 있다.
추가 정보 및
실시예
본 발명은 도 1에 도시된 칩 간의 상호 접속으로 제한되지 않는다. 다른 시스템에서, 메모리 제어기(12)는 링크(18)를 통해 메모리 소자(14)에 결합되어 있지만, 링크(20)는 메모리 제어기(12) 대신에 다음 메모리 소자(예컨대, 도 9의 메모리 소자(130-1) 등)에 결합되어 있다. 판독 데이터는 다른 도체(도 9의 128-1 등)를 통해 메모리 제어기(12)에 제공된다. 또 다른 배치가 이용될 수 있다.
본 명세서에 개시된 커맨드에 더해서 단일 또는 통합 커맨드가 있을 수 있다. 몇몇 실시예에서, 제 1 모드 또는 제 2 모드에서 발생하는 몇몇 통합 커맨드(본 명세서에 특별히 개시되어 있지 않음)가 있을 수 있다. 3개의 단일 커맨드로 변환되는 몇몇 통합 커맨드(본 명세서에 특별히 개시되어 있지 않음)가 있을 수 있다.
본 발명은 특정의 시그널링 기술 또는 프로토콜로 제한되지 않는다. 예컨대, 시그널링은 싱글 엔드형 또는 차동형일 수 있다. 시그널링은 단 2개의 전압 레벨 또는 2 개 보다 많은 전압 레벨을 포함할 수 있다. 시그널링은 단일 데이터 레이트, 2배 데이터 레이트, 4배 데이터 레이트, 또는 8진수(octal) 데이터 레이트일 수 있다. 시그널링은 인코딩된 심볼 및/또는 패킷화 신호를 포함할 수 있다. 클록(또는 스트로브) 신호는 신호와 개별적으로 전송되거나 신호에 포함될 수 있 다. 다양한 코딩 기술이 사용될 수 있다. 본 발명은 특정 형태의 송신기 및 수신기로 제한되지 않는다. 여러 클로킹 기술이 송신기와 수신기 및 다른 회로에 사용될 수 있다. 도면에서의 수신기의 기호는 초기 수신 회로와 관련 래칭 및 클로킹 회로 모두를 포함할 수 있다. 칩 사이의 도체 각각은 포인트 투 포인트일 수 있거나, 각각은 멀티 드롭 배치로 있을 수 있거나, 몇몇 도체는 포인트 투 포인트인 반면에 나머지 도체는 멀티 드롭 배치일 수 있다.
하나 이상의 모듈을 도시하는 도면에서, 하나 이상의 추가 모듈이 그 도시된 모듈과 병렬 및/또는 직렬로 있을 수 있다.
도면 내의 시스템의 실제 구현에서, 도시하지 않은 추가의 회로, 제어 라인 및 혹시 상호 접속이 있을 수 있다. 도면이 도체를 통해 접속된 2개의 블록을 도시하는 경우, 도시하지 않은 중간 회로가 있을 수 있다. 블록의 형상 및 상대적인 크기는 실제 형상 및 상대적인 크기와 연관된 것으로 의도한 것은 아니다.
하나의 실시예는 본 발명의 구현 및 일례이다. 본 명세서에서의 "실시예", "일실시예", "몇몇 실시예", 또는 "다른 실시예"는, 실시예와 관련하여 설명된 특정의 형상부, 구조, 또는 특징이 반드시 본 발명의 모든 실시예가 아닌 적어도 몇몇 실시예에 포함되어 있다는 것을 의미한다. "실시예", "일실시예", 또는 "몇몇 실시예"의 여러 형태가 반드시 동일 실시예를 모두 언급하는 것은 아니다.
구성 요소 "A"가 구성 요소 "B"에 결합되어 있다고 하는 경우에, 구성 요소 A는 구성 요소 B에 직접 결합되어 있거나, 예컨대, 구성 요소 C를 통해 간접적으로 결합되어 있을 수 있다.
구성 요소, 특징, 구조, 처리, 또는 특성 A가 구성 요소, 특징, 구조, 처리 또는 특성 B를 유발한다고 명세서 또는 구성 요소에 기재되어 있는 경우에, "A"는 "B"의 최소한의 일부 요인임을 의미하지만, "B"를 유발하는 데 도움이 되는 적어도 하나의 다른 구성 요소, 특징, 구조, 처리, 또는 특성이 있을 수 있다.
명세서에 구성 요소, 특징, 구조, 처리, 또는 특성이 포함될 수 있다고 기재하고 있다면, 그 특정의 구성 요소, 특징, 구조, 처리, 또는 특성이 반드시 포함될 필요는 없다. 명세서 또는 청구범위에서 임의의 구성 요소를 언급하고 있다면, 그것은 단 하나의 구성 요소만이 있다는 것을 의미하는 것은 아니다.
본 발명은 본 명세서에 기재된 특정의 상세로 제한되지 않는다. 오히려, 상술한 설명 및 도면에 대해서 본 발명의 범위 내에서 다양한 변경이 행해질 수 있다. 따라서, 임의의 보정을 포함하는 다음의 청구범위는 본 발명의 범위를 규정하는 것이다.
Claims (20)
- 기록 요청을 포함하는 요청 대기열(queue)과,상기 기록 요청에 응답하는 커맨드를 포함하는 커맨드를 스케줄링하는 스케줄링 회로와,상기 요청 대기열을 모니터링하고, 그 모니터링에 응답하여 상기 스케줄링 회로에 대한 제 1 또는 제 2 모드를 선택하는 모드 선택 회로를 포함하되,상기 제 1 모드에서, 상기 스케줄링 회로는 특정의 커맨드를 개별적인 단일 커맨드로서 스케줄링하고,상기 제 2 모드에서, 상기 스케줄링 회로는 적어도 하나의 제 1 타입 커맨드 및 적어도 하나의 제 2 타입 커맨드를 포함하는 2개 이상의 개별적인 단일 커맨드를 나타내는 통합(consolidated) 커맨드를 스케줄링하는칩.
- 제 1 항에 있어서,상기 통합 커맨드는 개별적인 단일 기동(activate) 및 판독 커맨드를 나타내는 기동/판독 커맨드를 포함하고, 상기 통합 커맨드는 개별적인 단일 기동 및 기록 커맨드를 나타내는 기동/기록 커맨드를 포함하는 칩.
- 제 1 항에 있어서,상기 모니터링은, 상기 요청 대기열 내의 기록 요청의 수가 임계값과 제 1 관계에 있는지 제 2 관계에 있는지를 결정하고, 상기 기록 요청의 수가 임계값과 제 1 관계를 가지고 있다면, 상기 모드 선택 회로는 상기 제 1 모드를 선택하고, 상기 기록 요청의 수가 임계값과 제 2 관계를 가지고 있다면, 상기 모드 선택 회로는 상기 제 2 모드를 선택하는 것을 포함하는칩.
- 삭제
- 제 1 항에 있어서,상기 모드 선택 회로는 제 1 임계값이 교차되는 것에 응답하여 상기 제 1 모드에서 상기 제 2 모드로, 또는 제 2 임계값이 교차되는 것에 응답하여 상기 제 2 모드에서 상기 제 1 모드로 스위칭하는칩.
- 제 1 항에 있어서,상기 모니터링은, 기록 요청이 페이지 미스(a page miss) 또는 페이지 히트(a page hit)를 포함할 것인지 여부에 따라서, 상기 기록 요청에 다른 가중치를 부여하는 것을 포함하는칩.
- 제 1 항에 있어서,상기 스케줄링 회로가 상기 제 1 모드에 있고, 상기 모드 선택 회로가 상기 제 1 모드를 선택하면, 상기 스케줄링 회로는 변경되지 않은 상태로 있는칩.
- 제 1 항에 있어서,상기 스케줄링 회로가 상기 제 1 모드에 있고, 상기 모드 선택 회로가 상기 제 2 모드를 선택하면, 상기 스케줄링 회로는 상기 제 1 모드에서 상기 제 2 모드로 스위칭되는칩.
- 제 1 항에 있어서,상기 스케줄링 회로가 상기 제 2 모드에 있고, 상기 모드 선택 회로가 상기 제 1 모드를 선택하면, 상기 스케줄링 회로는 상기 제 2 모드에서 상기 제 1 모드로 스위칭되는칩.
- 제 1 항에 있어서,상기 제 1 모드에서, 상기 스케줄링 회로는 적시(JIT:just in time) 스케줄링을 수행하는칩.
- 제 1 항에 있어서,상기 스케줄링 회로는 디폴트로 상기 제 1 모드에 있고, 상기 모드 선택 회로는 상기 스케줄링 회로를 상기 제 2 모드로 변경하는 신호를 제공하는칩.
- 제 1 항에 있어서,상기 요청 대기열은 기록 요청 대기열이고, 상기 칩은 판독 요청 대기열을 더 포함하는칩.
- 삭제
- 삭제
- 삭제
- 시스템으로서,제 1 칩과,링크와,제 2 칩을 포함하며,상기 제 1 칩은,기록 요청을 포함하는 요청 대기열(queue)과,상기 기록 요청에 응답하는 커맨드를 포함하는 커맨드를 스케줄링하는 스케줄링 회로와,상기 요청 대기열을 모니터링하고, 그 모니터링에 응답하여 상기 스케줄링 회로에 대한 제 1 또는 제 2 모드를 선택하는 모드 선택 회로와,상기 스케줄링된 커맨드를 송신하는 송신기를 포함하되,상기 스케줄링 회로는,상기 제 1 모드에서, 특정의 커맨드를 개별적인 단일 커맨드로서 스케줄링하고,상기 제 2 모드에서, 적어도 하나의 제 1 타입 커맨드 및 적어도 하나의 제 2 타입 커맨드를 포함하는 2개 이상의 개별적인 단일 커맨드를 나타내는 통합(consolidated) 커맨드를 스케줄링하며,상기 링크는 상기 송신기에 결합되고,상기 제 2 칩은,상기 링크에 결합되어 상기 스케줄링된 커맨드를 포함하는 신호를 수신하는 수신기와,상기 통합 커맨드를 개별적인 단일 커맨드로 변환하는 커맨드 처리 회로와,상기 개별적인 단일 커맨드를 수신하는 메모리 코어를 포함하는시스템.
- 제 16 항에 있어서,상기 특정 커맨드는 하나의 기동/판독 커맨드로 통합되는 기동 및 판독 커맨드를 포함하고, 상기 특정 커맨드는 하나의 기동/기록 커맨드로 통합되는 기동 및 기록 커맨드를 포함하는시스템.
- 제 16 항에 있어서,상기 스케줄링 회로가 상기 제 1 모드에 있고, 상기 모드 선택 회로가 상기 제 1 모드를 선택하면, 상기 스케줄링 회로는 변경되지 않은 상태로 있는시스템.
- 제 16 항에 있어서,상기 제 1 칩은 적어도 하나의 프로세서 코어를 포함하는시스템.
- 제 16 항에 있어서,상기 제 1 칩은 무선 송신기 회로와 무선 수신기 회로에 결합되는시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/318,028 | 2005-12-23 | ||
US11/318,028 US7673111B2 (en) | 2005-12-23 | 2005-12-23 | Memory system with both single and consolidated commands |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080069272A KR20080069272A (ko) | 2008-07-25 |
KR101032550B1 true KR101032550B1 (ko) | 2011-05-06 |
Family
ID=37898834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087015261A KR101032550B1 (ko) | 2005-12-23 | 2006-12-07 | 단일 및 통합 커맨드를 모두 구비한 메모리 시스템 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7673111B2 (ko) |
EP (1) | EP1963978A1 (ko) |
KR (1) | KR101032550B1 (ko) |
CN (1) | CN101313288B (ko) |
TW (1) | TWI335516B (ko) |
WO (1) | WO2007075316A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
WO2008070172A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
US7761669B2 (en) * | 2007-07-10 | 2010-07-20 | International Business Machines Corporation | Memory controller granular read queue dynamic optimization of command selection |
US20090019238A1 (en) * | 2007-07-10 | 2009-01-15 | Brian David Allison | Memory Controller Read Queue Dynamic Optimization of Command Selection |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8239875B2 (en) * | 2007-12-21 | 2012-08-07 | Spansion Llc | Command queuing for next operations of memory devices |
US8914340B2 (en) * | 2008-02-06 | 2014-12-16 | International Business Machines Corporation | Apparatus, system, and method for relocating storage pool hot spots |
US8423739B2 (en) * | 2008-02-06 | 2013-04-16 | International Business Machines Corporation | Apparatus, system, and method for relocating logical array hot spots |
US8055835B2 (en) * | 2008-06-23 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for migrating wear spots |
US20120011331A1 (en) * | 2009-03-30 | 2012-01-12 | Rambus Inc. | Memory system, controller and device that supports a merged memory command protocol |
US8140767B2 (en) * | 2009-06-04 | 2012-03-20 | International Business Machines Corporation | Cache management through delayed writeback |
KR20120092220A (ko) * | 2011-02-11 | 2012-08-21 | 삼성전자주식회사 | 인터페이스 장치 및 이를 포함하는 시스템 |
KR101826121B1 (ko) | 2011-03-25 | 2018-02-06 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
EP2710481B1 (en) * | 2011-05-20 | 2021-02-17 | Intel Corporation | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
KR101804521B1 (ko) * | 2011-08-16 | 2017-12-07 | 에스케이하이닉스 주식회사 | 집적회로 칩, 이를 포함하는 시스템 및 동작방법, 메모리 및 메모리 시스템 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
KR102025088B1 (ko) * | 2012-09-03 | 2019-09-25 | 삼성전자 주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 |
US9754648B2 (en) * | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9740485B2 (en) | 2012-10-26 | 2017-08-22 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
KR102114453B1 (ko) * | 2013-07-19 | 2020-06-05 | 삼성전자주식회사 | 모바일 장치 및 그것의 제어 방법 |
US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
KR102157769B1 (ko) | 2013-10-28 | 2020-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US10365835B2 (en) | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US9530468B2 (en) * | 2014-09-26 | 2016-12-27 | Intel Corporation | Method, apparatus and system to manage implicit pre-charge command signaling |
CN107111440A (zh) * | 2015-01-15 | 2017-08-29 | 夏普株式会社 | 信息处理装置及其控制方法 |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000034875A1 (en) * | 1998-12-04 | 2000-06-15 | Advanced Micro Devices, Inc. | Queue based memory controller |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0164735A3 (en) * | 1984-06-11 | 1988-11-09 | Nec Corporation | A microprocessor having a dynamic memory refresh circuit |
US6023745A (en) * | 1996-08-08 | 2000-02-08 | Neomagic Corporation | Scoreboarding for DRAM access within a multi-array DRAM device using simultaneous activate and read/write accesses |
US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
US6098133A (en) * | 1997-11-28 | 2000-08-01 | Motorola, Inc. | Secure bus arbiter interconnect arrangement |
US5948081A (en) | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
US7024518B2 (en) * | 1998-02-13 | 2006-04-04 | Intel Corporation | Dual-port buffer-to-memory interface |
JP2000252795A (ja) * | 1999-02-26 | 2000-09-14 | Oki Micro Design Co Ltd | 移動平均フィルタ |
US6430683B1 (en) * | 1999-06-25 | 2002-08-06 | International Business Machines Corporation | Processor and method for just-in-time delivery of load data via time dependency field |
US6273759B1 (en) * | 2000-04-18 | 2001-08-14 | Rambus Inc | Multi-slot connector with integrated bus providing contact between adjacent modules |
US6470433B1 (en) * | 2000-04-29 | 2002-10-22 | Hewlett-Packard Company | Modified aggressive precharge DRAM controller |
US6831924B1 (en) * | 2000-07-20 | 2004-12-14 | Silicon Graphics, Inc. | Variable mode bi-directional and uni-directional computer communication system |
JP2002063791A (ja) * | 2000-08-21 | 2002-02-28 | Mitsubishi Electric Corp | 半導体記憶装置およびメモリシステム |
US6799254B2 (en) | 2001-03-14 | 2004-09-28 | Hewlett-Packard Development Company, L.P. | Memory manager for a common memory |
US6674648B2 (en) * | 2001-07-23 | 2004-01-06 | Intel Corporation | Termination cards and systems therefore |
US6877071B2 (en) * | 2001-08-20 | 2005-04-05 | Technology Ip Holdings, Inc. | Multi-ported memory |
US6769050B1 (en) * | 2001-09-10 | 2004-07-27 | Rambus Inc. | Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules |
US6615326B1 (en) | 2001-11-09 | 2003-09-02 | Lsi Logic Corporation | Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller |
US6766385B2 (en) * | 2002-01-07 | 2004-07-20 | Intel Corporation | Device and method for maximizing performance on a memory interface with a variable number of channels |
US20030217223A1 (en) * | 2002-05-14 | 2003-11-20 | Infineon Technologies North America Corp. | Combined command set |
US7043599B1 (en) * | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US6954822B2 (en) * | 2002-08-02 | 2005-10-11 | Intel Corporation | Techniques to map cache data to memory arrays |
US20040236921A1 (en) * | 2003-05-20 | 2004-11-25 | Bains Kuljit S. | Method to improve bandwidth on a cache data bus |
US6785190B1 (en) * | 2003-05-20 | 2004-08-31 | Intel Corporation | Method for opening pages of memory with a single command |
US7167946B2 (en) * | 2003-09-30 | 2007-01-23 | Intel Corporation | Method and apparatus for implicit DRAM precharge |
US7519762B2 (en) * | 2003-09-30 | 2009-04-14 | Intel Corporation | Method and apparatus for selective DRAM precharge |
US7127574B2 (en) * | 2003-10-22 | 2006-10-24 | Intel Corporatioon | Method and apparatus for out of order memory scheduling |
US7243205B2 (en) * | 2003-11-13 | 2007-07-10 | Intel Corporation | Buffered memory module with implicit to explicit memory command expansion |
US7281079B2 (en) * | 2003-12-31 | 2007-10-09 | Intel Corporation | Method and apparatus to counter mismatched burst lengths |
KR100689746B1 (ko) * | 2005-02-16 | 2007-03-08 | 주식회사 부강샘스 | 무선 하드 디스크 드라이브 |
-
2005
- 2005-12-23 US US11/318,028 patent/US7673111B2/en not_active Expired - Fee Related
-
2006
- 2006-07-21 US US11/491,312 patent/US7752411B2/en not_active Expired - Fee Related
- 2006-12-07 CN CN200680043933.2A patent/CN101313288B/zh not_active Expired - Fee Related
- 2006-12-07 WO PCT/US2006/047148 patent/WO2007075316A1/en active Application Filing
- 2006-12-07 KR KR1020087015261A patent/KR101032550B1/ko not_active IP Right Cessation
- 2006-12-07 EP EP06839286A patent/EP1963978A1/en not_active Withdrawn
- 2006-12-15 TW TW095147149A patent/TWI335516B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000034875A1 (en) * | 1998-12-04 | 2000-06-15 | Advanced Micro Devices, Inc. | Queue based memory controller |
Also Published As
Publication number | Publication date |
---|---|
US20070150687A1 (en) | 2007-06-28 |
US20070150688A1 (en) | 2007-06-28 |
KR20080069272A (ko) | 2008-07-25 |
TWI335516B (en) | 2011-01-01 |
WO2007075316A1 (en) | 2007-07-05 |
CN101313288B (zh) | 2014-12-10 |
CN101313288A (zh) | 2008-11-26 |
TW200732916A (en) | 2007-09-01 |
US7752411B2 (en) | 2010-07-06 |
EP1963978A1 (en) | 2008-09-03 |
US7673111B2 (en) | 2010-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101032550B1 (ko) | 단일 및 통합 커맨드를 모두 구비한 메모리 시스템 | |
US8700830B2 (en) | Memory buffering system that improves read/write performance and provides low latency for mobile systems | |
JP4800224B2 (ja) | 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て | |
US20050289317A1 (en) | Method and related apparatus for accessing memory | |
US11347665B2 (en) | Memory module threading with staggered data transfers | |
CN105260331B (zh) | 一种双总线内存控制器 | |
JP2007183816A (ja) | メモリ制御装置 | |
CN101427224A (zh) | 用于提供存储器定序提示的存储器集线器和方法 | |
US20210280226A1 (en) | Memory component with adjustable core-to-interface data rate ratio | |
US20170024344A1 (en) | Method and System for USB 2.0 Bandwidth Reservation | |
US20230119889A1 (en) | Computer system based on wafer-on-wafer architecture | |
US12093124B2 (en) | Multi-level signal reception | |
US20240220104A1 (en) | Memory control system and memory control method | |
US20080229007A1 (en) | Enhancements to an XDR Memory Controller to Allow for Conversion to DDR2 | |
JP2000010914A (ja) | アービトレーション制御装置、及びそのアービトレーション制御方法 | |
JP2003085040A (ja) | メモリアクセラレータ、アクセラレーション方法、および、これに関連したインターフェースカードおよびマザーボード | |
GB2341699A (en) | Inter-module data transfer |
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 | ||
FPAY | Annual fee payment | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180417 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |