KR20080014063A - 메모리 제어기, 데이터 반환 방법 및 시스템 - Google Patents

메모리 제어기, 데이터 반환 방법 및 시스템 Download PDF

Info

Publication number
KR20080014063A
KR20080014063A KR1020077030000A KR20077030000A KR20080014063A KR 20080014063 A KR20080014063 A KR 20080014063A KR 1020077030000 A KR1020077030000 A KR 1020077030000A KR 20077030000 A KR20077030000 A KR 20077030000A KR 20080014063 A KR20080014063 A KR 20080014063A
Authority
KR
South Korea
Prior art keywords
request
subchannel
memory
memory controller
access
Prior art date
Application number
KR1020077030000A
Other languages
English (en)
Other versions
KR100958264B1 (ko
Inventor
제임스 아키야마
윌리엄 클리포드
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20080014063A publication Critical patent/KR20080014063A/ko
Application granted granted Critical
Publication of KR100958264B1 publication Critical patent/KR100958264B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Pens And Brushes (AREA)

Abstract

일 실시예에 따르면, 메모리 제어기가 개시된다. 메모리 제어기는 할당 로직 및 트랜잭션 어셈블러를 포함한다. 할당 로직은 메모리 채널에 액세스하라는 요청을 수신하고 채널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널 중 하나에 액세스하도록 그 요청을 할당한다. 트랜잭션 어셈블러는 그 요청과 채널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널에 액세스하라는 하나 이상의 다른 요청을 조합하고 서브채널 요청을 이용할 수 없는 서브채널로부터의 추론적 데이터 반환을 용이하게 한다.

Description

메모리 제어기, 데이터 반환 방법 및 시스템{MEMORY MICRO-TILING SPECULATIVE RETURNS}
본 발명은 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는, 액세싱 메모리 제어에 관한 것이다.
통합 메모리 구조(UMA:Unified Memory Architecture)를 구현하는 컴퓨터 시스템은 비디오 메모리용 주메모리에 액세스하는 그래픽 제어기를 특징으로 한다. 그러나, UMA 그래픽 시스템의 메모리 효율은 CPU 캐시 라인 크기 요구조건 때문에 제한될 수 있다. 예컨대, 그래픽용으로 이상적인 메모리 액세스 크기는, 그래픽 제어기들이 하나 또는 약간의 픽셀 또는 텍셀에서 동시에 동작할 수 있으므로, 4 내지 16 바이트일 수 있다. 그럼에도 불구하고, 메모리 구조는 흔히 64 바이트 CPU 캐시 라인 크기로 최적화되어 CPU 메모리 효율을 최적화한다. 그 결과는 대개 메모리로부터 판독된 상당량의 데이터가 결코 그래픽 제어기에 의해 사용될 수 없다는 것이다. 이산 그래픽 제어기의 제조는 더 좁은 메모리 채널을 사용함으로써 이러한 과인출을 최소화한다. 그러나, 이 해결책은 UMA 기반 집적형 그래픽 제어 기에는 이용가능하지 않다.
본 발명은 예로써 설명되며, 동일한 참조번호는 동일한 구성요소를 나타내는 첨부 도면의 형태로 제한되지 않는다.
도 1은 컴퓨터 시스템의 일 실시예의 블록도이다.
도 2는 메모리 제어기의 일 실시예를 도시한다.
도 3은 로직 가상 어드레스의 일 실시예를 도시한다.
도 4는 메모리 제어기의 다른 실시예를 도시한다.
도 5a 및 도 5b는 성능 이점을 도시한다.
도 6은 컴퓨터 시스템의 다른 실시예의 블록도이다.
메모리 트랜잭션에 대한 추론적 반환(speculative return)이 설명된다. 후속하는 본 발명의 상세한 설명에서 본 발명을 완전히 이해하기 위해 다수의 특정 세부사항을 설명한다. 그러나, 당업자는 본 발명이 이들 특정 세부사항 없이도 실시될 수 있음을 알 것이다. 다른 경우에, 본 발명을 불명료하게 하지 않기 위해 잘 알려져 있는 구조 및 장치는 상세하게 보다는 블록도 형태로 도시된다.
명세서에서 "일 실시예" 또는 "실시예"는 실시예에 관하여 설명된 특정 형상부, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미한다. 명세서 곳곳에서 보이는 "일 실시예에서"가 반드시 동일한 실시예 전부를 지칭하는 것은 아니다.
도 1은 컴퓨터 시스템(100)의 일 실시예의 블록도이다. 컴퓨터 시스템(100)은 인터페이스(105)에 결합된 중앙 처리 장치(CPU)(102)를 포함한다. 일 실시예에서, CPU(102)는 캘리포니아주 산타 클라라에 소재한 인텔사로부터 이용가능한 펜티엄® IV 프로세서의 펜티엄® 계열의 프로세서이다. 이와 달리, 다른 CPU도 이용될 수 있다. 예컨대, CPU(102)는 다수의 프로세싱 코어를 사용하여 구현될 수 있다. 또 다른 실시예에서, 컴퓨터 시스템(100)은 다수의 CPU(102)를 포함할 수 있다.
다른 실시예에서, 칩셋(107)도 인터페이스(105)에 결합된다. 칩셋(107)은 메모리 제어 부품(110)을 포함한다. 메모리 제어 부품(110)은 주 시스템 메모리(115)에 결합되는 메모리 제어기(112)를 포함할 수 있다. 주 시스템 메모리(115)는 데이터 및 CPU(102) 또는 시스템(100)에 포함된 기타 장치에 의해 실행되는 인스트럭션의 결과를 저장한다. 일 실시예에서, 주 시스템 메모리(115)는 DRAM을 포함하지만, 주 시스템 메모리(115)는 다른 메모리 유형을 사용하여 구현될 수 있다. 다수의 CPU 및/또는 다수의 시스템 메모리와 같은 다른 장치도 인터페이스(105)에 결합될 수 있다.
메모리 제어 부품(110)은 인터페이스를 통해 입/출력(I/O) 제어 부품(140)에 결합될 수 있다. I/O 제어 부품(140)은 컴퓨터 시스템(100) 내의 I/O 장치에 인터페이스를 제공한다. I/O 제어 부품(140)은 PCI(peripheral component interconnect) Express, AGP(accelerated graphics port), USB(universal serial bus), LPC(low pin count) 버스 또는 기타 종류의 I/O 버스(도시 생략)와 같은 I/O 버스 상의 표준 I/O 동작을 지원할 수 있다.
일 실시예에 따르면, 그래픽 제어기(160)는 칩셋(107)과 통신하고, 컴퓨터 시스템(100)에 결합된 디스플레이 모니터(도시 생략)에 비디오 그래픽을 제공하도록 구현된다. 그래픽 제어기(160)는 비디오 메모리용 주 메모리(115)에 액세스한다. 상술한 바와 같이, 그래픽 시스템과 CPU 양자 모두를 지원하는 메모리 장치의 메모리 효율은, 메모리 구조가 64 바이트 CPU 라인 크기로 최적화되어 CPU 메모리 효율을 최적화하지만, 그래픽에 대한 메모리 액세스 크기는 흔히 4 내지 16 바이트가 이상적이므로 제한된다.
일 실시예에 따르면, 메모리 제어 부품(110)은 64 바이트 메모리 트랜잭션을 유지하면서, 그래픽 장치용으로 필요한 메모리 크기를 감소시킨다. DDR DRAM 기술에 기초하는 표준 메모리 채널은 m 개의 비트의 몇몇 물리적 폭을 갖는다. 메모리 트랜잭션은 M=m*T/8 바이트의 총 로직 폭 동안 T 개의 전송으로 구성된다. 각 트랜잭션 내의 바이트는 연속적인 어드레스를 가지는 것으로 고려된다. 후속하는 논의에서, 용어 폭은 로직 폭을 의미한다.
마이크로-타일링(Micro-Tiling)은 M 바이트의 광범위한 채널을 각각 폭이 N=M/S 바이트인 S 개의 서브채널로 나누는데, 여기서 각 서브채널 상에 N 바이트의 데이터가 전송된다. 어드레스가 각 서브채널에 주어지고, 독립형 어드레스 비트 수 I는 다른 서브채널에 주어진 어드레스의 대응 비트와 다를 수 있다. 각 서브채널에 전송되는 데이터는 연속적인 어드레스 범위를 나타내는 것으로 간주한다. 그러나, 각 서브채널 상의 데이터 블록이 반드시 연속적인 어드레스 범위로부터 나올 필요는 없다. 각 서브채널은 채널의 총 메모리 위치의 서브셋을 포함한다.
도 2는 마이크로-타일링을 지원하는 메모리 제어 부품(110)의 일 실시예를 도시한다. 일 실시예에서, 다채널 메모리 서브시스템은 채널마다 마이크로-타일링 메모리 제어기를 갖는다. 따라서, 도 2에 도시된 바와 같이, 메모리 제어 부품(110)은 2 개의 채널 각각마다 하나씩인 2 개의 메모리 제어기(112)(메모리 제어기 1 및 2)를 포함한다. 각 채널은 각각 폭이 N 바이트인 S 개의 서브채널을 포함한다. 따라서, 각 채널의 폭은 M=N*S 바이트이다.
이 도면에서, 메모리 판독 또는 기록에 대한 요청은 가능하게 2×2 어레이의 픽셀 또는 텍셀을 나타내는 2×2 어레이의 정사각형으로 도시되어 있다. 요청은 서브채널에 할당되기 전에 도시된다. 서브채널 할당 이후에, 요청은 0 내지 S-1로 번호가 매겨져 서브채널 할당을 지원한다. 판독 트랜잭션의 경우에 메모리 제어 부품(110)에 결합된 요청자(205)로의 N 바이트 반환이 발생한다.
메모리 제어 부품(110)은 메모리 제어기(112)에 결합된 채널 할당 로직(210)을 포함한다. 채널 할당 로직(210)은 요청자(205)로부터 수신된 각 요청을 메모리 제어기(112)를 통해 메모리 채널(240)에 할당한다. 또한, 각 메모리 제어기(112)는 서브채널 할당 로직(215), 재정렬 버퍼(220) 및 트랜잭션 어셈블러(230)를 포함 한다. 따라서, 요청은 도 2에 도시된 메모리 제어기 1 또는 메모리 제어기 2에 할당된다.
서브채널 할당 로직(215)은 각 요청을 메모리 채널(240) 내의 서브채널에 할당한다. 재정렬 버퍼(220)는 요청을 모아서, 트랜잭션 어셈블러(230)가 각 메모리(240) 서브채널마다 메모리 액세스를 어셈블링할 수 있게 한다. 일 실시예에 따르면, 각 서브채널은 동일한 N 바이트 폭을 갖는다.
도 2에 도시된 시스템의 동작 동안, 메모리 제어기 (1 또는 2)에 진입하는 어드레스 A에서의 N 바이트의 데이터 블록을 판독 또는 기록하기 위한 요청이 서브채널에 할당되고 재정렬 버퍼(220)에 배치된다. 일 실시예에서, 식별 서브채널 할당(Identity Subchannel Assignment) s은 다음 프로세스에 의해 정의된다. 요청 어드레스 A는 우측으로 P = log2(N) 비트만큼 시프트되어, 새로운 정수
Figure 112007092139892-PCT00001
(예컨대,
Figure 112007092139892-PCT00002
= A>>P)를 산출하고, s는
Figure 112007092139892-PCT00003
의 최하위 Q = log2(S) 비트이다(예컨대, s =
Figure 112007092139892-PCT00004
& ((1<<Q)-1)).
메모리 제어기는 재정렬 버퍼(220)로부터 각각의 서브채널마다 하나씩 S 개의 판독 요청을 선택함으로써 메모리 판독 트랜잭션을 구성한다. 메모리 제어기는 재정렬 버퍼(220)로부터 각각의 서브채널마다 하나씩 S 개의 기록 요청을 선택함으로써 메모리 기록 트랜잭션을 구성한다. 공유형 어드레스 라인에 의해 나타난 어드레스의 일부는 트랜잭션 내의 모든 서브채널 요청마다 동일하다.
도 3은 물리적 어드레스의 어드레스 비트의 해석에 대한 일 실시예를 도시한 다. P 개의 서브채널 데이터 어드레스 비트보다 많은 어드레스 비트를 공유형 및 독립형 어드레스 비트 및 서브채널 선택 비트로 분할하는 것이 임의적이므로, 도 3에 도시된 공유형 및 독립형 어드레스 비트 및 서브채널 선택 비트의 선택은 예시용이다. 독립형 어드레스 비트들은 서브채널에 걸쳐 서로 다르며, 반드시 연속적인 것은 아니다. 서브채널에 전달된 어드레스 비트는 그 서브채널의 공유형 어드레스 비트 및 독립형 어드레스 비트이다.
도 4는 도시된 단일 채널만을 사용하여 4 개의 16 바이트 요청으로부터 하나의 64 바이트 트랜잭션을 어셈블링하는 메모리 제어 부품(110)의 실시예를 도시한다. 도 4는 각각의 서브채널에 대한 재정렬 큐로서 구현된 재정렬 버퍼(220)를 도시한다. 그러나, 다른 실시예에서, 재정렬 버퍼(220)는 다른 메커니즘을 통해 구현될 수 있다.
이 실시예에서, 트랜잭션 어셈블러(230)는 각각의 서브채널마다 하나씩 16B 요청으로부터 64B 메모리 요청을 구성한다. 메모리 요청을 형성하는 모든 16B 요청은 동일한 공유형 어드레스 비트를 갖는다. 따라서 어셈블러(230)는 요청이 공통 공유형 어드레스를 가지는지 여부에 기초하여 단일 트랜잭션으로 어셈블링될 수 있는 요청에 대한 큐를 조사한다.
도 4에 도시된 실시예에서, 어셈블러(230)는 서브채널 1c에 대한 요청을 찾을 수 없음을 알아야 한다. 트랜잭션을 구성하려 할 때, 메모리 제어기는 각각의 서브채널에 대한 요청을 찾지 못할 수도 있으므로, 모두 동일한 공유형 어드레스 세그먼트를 갖는다(예컨대, 각각의 공유형 어드레스 비트의 값이 모든 요청에 걸쳐 동일하다). 이러한 사건이 발생하는 서브채널은 "공(empty)" 서브채널로 지칭될 수 있다.
일 실시예에 따르면, 서브채널이 대응하는 큐 내의 요청에 의해 채워질 수 없으면, 그 서브채널로/로부터 어떠한 전송도 수행되지 않는다. 이러한 실시예에서, 서브채널이 요청에 의해 채워질 수 없으면, 임의의 위치가 판독되고 그 결과는 폐기된다. 다른 실시예에서, 그 채널에 대한 대응 요청이 존재하지 않는 경우에 서브채널마다 서브채널의 전력 하강에 사용되는 추가 제어 라인이 포함된다.
또 다른 실시예에서, 검색된 데이터가 폐기되는 것이 아니라, 추론적 판독이 수행되고 요청자에게 반환된다. 추론적 반환은 미사용 서브채널에서 N 바이트의 데이터 블록을 판독하고, 기타 판독 요청에 관하여 그 데이터를 몇몇 요청자에게 반환하는 것을 포함한다. 따라서, 메모리 제어기는 동일한 메모리 트랜잭션 내의 다른 서브채널에서 액세스되는 데이터와 동일한 공유형 어드레스 비트를 갖는 임의의 할당된 N 바이트의 데이터 블록을 "공" 서브채널에서 판독하기 위해 선택할 수 있으며, 몇몇 요청자가 이 데이터를 사용할 수 있게 한다.
일 실시예에 따르면, 추론적 반환은 "공" 서브채널과 관련된 독립형 어드레스 라인에 이웃하는 서브채널의 독립형 어드레스 비트를 할당함으로써 트랜잭션 어셈블러(230)에서 구현되어, 동일한 공유형 및 독립형 어드레스 비트를 갖는 2 개의 N 바이트 데이터 블록이 반환되게 한다. 독립형 어드레스 라인을 복제하는 것으로 상술되었지만, 다른 실시예는 추론적으로 반환되는 데이터 블록을 선택하는 다른 메커니즘을 구현할 수 있다.
도 4를 예로써 참조하면, 서브채널 1c에 대한 요청을 찾을 수 없다. 따라서, 서브채널 1c은 "공" 서브채널이다. 개시된 실시예에서, 트랜잭션 어셈블러(230)는 서브채널 1c에 서브채널 1d의 독립형 어드레스 비트를 할당하고 서브채널 1d와 관련된 요청자에게 데이터 서브채널 1c를 반환한다. 따라서, 추론적 반환은 추론적 서브채널 판독을 수행하고 그 결과를 요청자에게 반환함으로써 효율적인 메모리 이용을 개선한다. 나중에 요청자가 이 데이터를 필요로 하는 경우에, 이 데이터는 예컨대, 캐시 내에 이미/여전히 보관되어 있을 수 있다.
마이크로-타일링 메모리 서브채널은 공유형 어드레스 비트 및 I 개의 독립형 어드레스 비트에 의해 결정된 몇몇 어드레스 범위 내에서 불연속적인 메모리 어드레스에 액세스할 수 있다. 따라서 I를 적절히 선택함으로써 각 서브채널에 I 개의 어드레스 신호를 복제하는 비용과 비교하여 증가한 독립형 서브채널의 병행처리 및 대역폭 효율을 제공할 수 있다.
도 5a 및 도 5b는 마이크로-타일링의 성능 이점을 도시한다. 각 도면은 4 바이트 픽셀 또는 텍셀을 나타내는 각각의 작은 정사각형을 사용하는 타일링된 어드레스 공간 내에 삼각형의 래스터화(rasterization)를 도시한다. 도 5a는 요청이 각각 64 바이트인 경우에 표준 메모리 시스템 내의 과인출(overfetch)을 도시한다. 각 4×4 블록의 픽셀은 64 바이트의 정렬된 메모리 블록을 나타낸다. 삼각형은 57 개의 픽셀을 포함한다. 표준 메모리 서브시스템을 사용하여, 이들 57 개의 픽셀은 11(64 바이트) 개의 메모리 블록 내에 존재한다. 따라서, 이들 57 개의 픽셀에 액세스하기 위해, 사용되지 않을 수도 있는 추가적인 119 개의 픽셀 상당의 데이터가 액세스된다(예컨대, 32 %의 효율을 초래함).
도 5b는 요청이 각각 16 바이트인 경우 및 이러한 모든 요청이 마이크로-타일 어셈블러에 의해 이용되어 미사용 서브채널이 없는 64 바이트 메모리 트랜잭션을 구성할 수 있는 경우의 과인출을 도시한다. 이 경우에, 삼각형은 23 개의 2×2 픽셀 어레이를 터치하여, 35 개의 추가적인 픽셀 상당의 데이터가 액세스되게 된다(예컨대, 62 %의 효율을 초래함). 마이크로-타일링의 효율은 완전히 밀집된 메모리 트랜잭션을 구성하는 어셈블러의 능력에 좌우된다.
도 6은 컴퓨터 시스템(100)의 다른 실시예를 도시한다. 이 실시예에서, 칩셋(107)은 개별 메모리 제어 부품 및 I/O 제어 부품과 대립하는 것으로서 단일 제어 허브(620)를 포함한다. 따라서, 메모리 제어기(112)는 CPU(102) 내에 포함되며, 그 CPU(102)에 메모리(115)가 결합된다. 이러한 실시예에서, 그래픽 제어기(160)는 제어 허브(620)에 결합되고 CPU(102)를 통해 주 메모리(115)에 액세스한다.
이상의 설명으로부터 당업자에게 본 발명의 다수의 변경 및 수정은 물론 자명해질 것이지만, 예로써 도시되고 설명된 임의의 특정 실시예를 결코 제한의 의미로 간주해서는 안 됨을 알아야 한다. 따라서, 다양한 실시예에 대한 세부사항은 본 발명에 필수적인 것으로 간주하는 이들 특징만을 설명하는 특허청구범위의 범주를 제한하지 않는다.

Claims (20)

  1. 메모리 채널에 액세스하라는 요청을 수신하고 상기 채널 내의 2 개 이상의 서브채널 중 하나에 액세스하도록 상기 요청을 할당하는 할당 로직(assignment logic)과,
    상기 채널 내의 2 개 이상의 서브채널에 액세스하라는 하나 이상의 추가적인 요청과 상기 요청을 조합하고 서브채널 요청을 이용할 수 없는 서브채널로부터의 추론적 데이터 반환(a speculative return of data)을 용이하게 하는 트랜잭션 어셈블러(a transaction assembler)를 포함하는
    메모리 제어기.
  2. 제 1 항에 있어서,
    상기 서브채널 요청 각각은 독립형 어드레스 성분 및 공유형 어드레스 성분을 포함하는
    메모리 제어기.
  3. 제 2 항에 있어서,
    상기 서브채널 요청의 독립형 어드레스 성분은 서브채널에 관련되는
    메모리 제어기.
  4. 제 3 항에 있어서,
    상기 트랜잭션 어셈블러는, 요청을 이용할 수 없는 서브채널에 관련되는 상기 독립형 어드레스 성분을 선택함으로써, 요청을 이용할 수 없는 서브채널로부터의 상기 추론적 데이터 반환을 용이하게 하는
    메모리 제어기.
  5. 제 4 항에 있어서,
    요청을 이용할 수 없는 상기 서브채널로부터 추론적으로 판독된 상기 데이터는 요청자에게 반환되는
    메모리 제어기.
  6. 제 1 항에 있어서,
    상기 요청을 저장하는 재정렬 버퍼(a reorder buffer)를 더 포함하는
    메모리 제어기.
  7. 제 6 항에 있어서,
    상기 재정렬 버퍼는 상기 2 개 이상의 서브채널 각각에 관련된 큐(a queue)를 포함하는
    메모리 제어기.
  8. 제 7 항에 있어서,
    각 큐는 관련된 서브채널에 전송되는 요청을 저장하는
    메모리 제어기.
  9. 메모리 제어기에 결합된 메모리 채널에 액세스하라는 요청을 상기 메모리 제어기에서 수신하는 단계와,
    상기 메모리 채널 내의 관련된 독립적으로 어드레스 가능한 서브채널에 상기 요청 각각을 할당하는 단계와,
    상기 채널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널에 액세스하라는 하나 이상의 추가적인 요청과 상기 요청을 조합하는 단계와,
    요청을 이용할 수 없는 서브채널로부터 데이터를 추론적으로 반환하는 단계를 포함하는
    방법.
  10. 제 9 항에 있어서,
    상기 요청을 이용할 수 없는 서브채널로부터 데이터를 추론적으로 반환하는 단계는 요청을 이용할 수 없는 상기 서브채널에 관련되는 독립형 어드레스 성분을 선택하는 단계를 포함하는
    방법.
  11. 제 9 항에 있어서,
    서브채널에 상기 요청 각각을 할당한 후 재정렬 버퍼에 상기 요청을 저장하는 단계를 더 포함하는
    방법.
  12. 제 9 항에 있어서,
    상기 요청을 어셈블링한 후 상기 관련된 서브채널에 상기 요청을 전달하는 단계를 더 포함하는
    방법.
  13. 제 10 항에 있어서,
    서브채널 요청을 이용할 수 없는 상기 서브채널로부터 추론적으로 반환된 데이터를 요청자에게 반환하는 단계를 더 포함하는
    방법.
  14. 하나 이상의 채널을 가진 메모리 장치와,
    상기 메모리 장치에 결합되며 메모리 제어기를 가진 칩셋을 포함하되,
    상기 메모리 제어기는,
    하나 이상의 메모리 채널 중 하나에 액세스하라는 요청을 수신하고, 상기 채 널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널 중 하나에 액세스하도록 상기 요청을 할당하며, 상기 채널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널에 액세스하라는 하나 이상의 추가적인 요청과 상기 요청을 조합하고, 요청을 이용할 수 없는 서브채널로부터의 추론적 데이터 반환을 용이하게 하는
    시스템.
  15. 제 14 항에 있어서,
    상기 서브채널에 액세스하라는 요청을 할당하는 할당 로직과,
    상기 요청을 조합하고 상기 추론적 데이터 반환을 용이하게 하는 트랜잭션 어셈블러를 포함하는
    시스템.
  16. 제 15 항에 있어서,
    상기 메모리 제어기는 상기 서브채널 요청을 저장하는 재정렬 버퍼를 더 포함하는
    시스템.
  17. 제 16 항에 있어서,
    상기 재정렬 버퍼는 상기 2 개 이상의 서브채널 각각에 관련된 큐를 포함하는
    시스템.
  18. 제 16 항에 있어서,
    상기 트랜잭션 어셈블러는 요청을 이용할 수 없는 서브채널에 관련되는 독립형 어드레스 성분을 선택함으로써, 요청을 이용할 수 없는 서브채널로부터의 추론적 데이터 반환을 용이하게 하는
    시스템.
  19. 제 14 항에 있어서,
    상기 메모리 장치 및 상기 메모리 제어기에 결합된 요청자를 더 포함하되,
    요청을 이용할 수 없는 상기 서브채널로부터 추론적으로 판독된 데이터는 상기 요청자에게 반환되는
    시스템.
  20. 제 14 항에 있어서,
    상기 칩셋은 하나 이상의 메모리 채널 중 하나에 액세스하라는 요청을 수신하고 상기 채널 내의 2 개 이상의 독립적으로 어드레스 가능한 서브채널 중 하나에 액세스하도록 상기 요청을 할당하는 제 2 메모리 제어기를 포함하는
    시스템.
KR1020077030000A 2005-06-23 2006-06-23 메모리 제어기, 데이터 반환 방법 및 시스템 KR100958264B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/165,390 2005-06-23
US11/165,390 US7587521B2 (en) 2005-06-23 2005-06-23 Mechanism for assembling memory access requests while speculatively returning data

Publications (2)

Publication Number Publication Date
KR20080014063A true KR20080014063A (ko) 2008-02-13
KR100958264B1 KR100958264B1 (ko) 2010-05-19

Family

ID=37545366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030000A KR100958264B1 (ko) 2005-06-23 2006-06-23 메모리 제어기, 데이터 반환 방법 및 시스템

Country Status (9)

Country Link
US (1) US7587521B2 (ko)
EP (1) EP1894112B1 (ko)
JP (1) JP4879981B2 (ko)
KR (1) KR100958264B1 (ko)
CN (1) CN101208672B (ko)
AT (1) ATE464605T1 (ko)
DE (1) DE602006013627D1 (ko)
TW (1) TWI328169B (ko)
WO (1) WO2007002445A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332598B2 (en) * 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering
US7765366B2 (en) * 2005-06-23 2010-07-27 Intel Corporation Memory micro-tiling
US7558941B2 (en) * 2005-06-30 2009-07-07 Intel Corporation Automatic detection of micro-tile enabled memory
US8253751B2 (en) 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US8878860B2 (en) * 2006-12-28 2014-11-04 Intel Corporation Accessing memory using multi-tiling
SE531148C2 (sv) 2007-05-16 2009-01-07 Dinair Dev Ab Användning av ett material såsom filtergrundmaterial förfarande för tillverkning av filtergrundmaterial, filtergrundmaterial och filter
US8006032B2 (en) * 2007-08-22 2011-08-23 Globalfoundries Inc. Optimal solution to control data channels
JP2010027032A (ja) * 2008-06-17 2010-02-04 Nec Electronics Corp Fifo装置及びfifoバッファへのデータ格納方法
US20100058016A1 (en) * 2008-08-26 2010-03-04 Jari Nikara Method, apparatus and software product for multi-channel memory sandbox
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
US10324768B2 (en) * 2014-12-17 2019-06-18 Intel Corporation Lightweight restricted transactional memory for speculative compiler optimization
GB2551351B (en) * 2016-06-14 2019-05-08 Imagination Tech Ltd Executing memory requests out of order
EP3270295A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
US10037150B2 (en) * 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US179598A (en) * 1876-07-04 Improvement in cutter-heads
US193293A (en) * 1877-07-17 Improvement in safe and vault
US3323109A (en) * 1963-12-30 1967-05-30 North American Aviation Inc Multiple computer-multiple memory system
JPS51127626A (en) * 1975-04-30 1976-11-06 Hitachi Ltd Information processor
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
NL7510904A (nl) * 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.
US4124891A (en) * 1976-11-18 1978-11-07 Honeywell Information Systems Inc. Memory access system
US4495570A (en) * 1981-01-14 1985-01-22 Hitachi, Ltd. Processing request allocator for assignment of loads in a distributed processing system
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
JPH0267622A (ja) 1988-09-01 1990-03-07 Kansai Nippon Denki Software Kk ディスク入出力方式
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
US5526507A (en) * 1992-01-06 1996-06-11 Hill; Andrew J. W. Computer memory array control for accessing different memory banks simullaneously
US5459842A (en) 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
JPH0695959A (ja) * 1992-09-09 1994-04-08 Hitachi Ltd 情報処理装置
JP3240709B2 (ja) * 1992-10-30 2001-12-25 株式会社アドバンテスト メモリ試験装置
US6804760B2 (en) * 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
WO1996041274A1 (en) * 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
US5799209A (en) * 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US6061773A (en) * 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5761708A (en) * 1996-05-31 1998-06-02 Sun Microsystems, Inc. Apparatus and method to speculatively initiate primary memory accesses
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US5748554A (en) * 1996-12-20 1998-05-05 Rambus, Inc. Memory and method for sensing sub-groups of memory elements
US6308248B1 (en) 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US5790118A (en) * 1997-03-07 1998-08-04 International Business Machines Corporation Mobile client programmed to hide empty table elements
US5913231A (en) 1997-03-31 1999-06-15 International Business Machines Corporation Method and system for high speed memory address forwarding mechanism
US6145065A (en) 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
EP1047993A1 (en) 1997-12-24 2000-11-02 Creative Technology Ltd. Optimal multi-channel memory controller system
US6438675B1 (en) * 1998-03-23 2002-08-20 Ati Technologies, Inc. Variable format memory access device
US6249851B1 (en) * 1998-08-25 2001-06-19 Stmicroelectronics, Inc. Computer system having non-blocking cache and pipelined bus interface unit
US6453380B1 (en) * 1999-01-23 2002-09-17 International Business Machines Corporation Address mapping for configurable memory system
US6389488B1 (en) 1999-01-28 2002-05-14 Advanced Micro Devices, Inc. Read ahead buffer for read accesses to system memory by input/output devices with buffer valid indication
US6708248B1 (en) * 1999-07-23 2004-03-16 Rambus Inc. Memory system with channel multiplexing of multiple memory devices
JP2001060169A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
JP2001176282A (ja) * 1999-12-20 2001-06-29 Fujitsu Ltd 半導体記憶装置およびその制御方法
US6678810B1 (en) * 1999-12-30 2004-01-13 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
US6430672B1 (en) * 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
EP1182564A3 (en) * 2000-08-21 2004-07-28 Texas Instruments France Local memory with indicator bits to support concurrent DMA and CPU access
US7006505B1 (en) * 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
US6745272B2 (en) * 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
US7200759B2 (en) * 2001-06-08 2007-04-03 Safenet B.V. Method and device for making information contents of a volatile semiconductor memory irretrievable
US20030056058A1 (en) * 2001-09-17 2003-03-20 Alistair Veitch Logical volume data migration
US6812928B2 (en) * 2002-01-30 2004-11-02 Sun Microsystems, Inc. Performance texture mapping by combining requests for image data
US20030179598A1 (en) * 2002-03-20 2003-09-25 Yu-Guang Chen Device for selectively providing read-only data
US6842828B2 (en) * 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
US7028200B2 (en) * 2002-05-15 2006-04-11 Broadcom Corporation Method and apparatus for adaptive power management of memory subsystem
US6934804B2 (en) * 2002-05-28 2005-08-23 Sun Microsystems, Inc. Method and system for striping spares in a data storage system including an array of disk drives
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
US6851030B2 (en) * 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US6836434B2 (en) * 2002-11-21 2004-12-28 Micron Technology, Inc. Mode selection in a flash memory device
US7255895B2 (en) * 2003-01-21 2007-08-14 Bioarray Solutions, Ltd. Method for controlling solute loading of polymer microparticles
US7243172B2 (en) * 2003-10-14 2007-07-10 Broadcom Corporation Fragment storage for data alignment and merger
JP4601305B2 (ja) * 2004-02-27 2010-12-22 富士通セミコンダクター株式会社 半導体装置
US8332598B2 (en) * 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering

Also Published As

Publication number Publication date
JP2008544411A (ja) 2008-12-04
DE602006013627D1 (de) 2010-05-27
US7587521B2 (en) 2009-09-08
CN101208672A (zh) 2008-06-25
EP1894112B1 (en) 2010-04-14
TW200712886A (en) 2007-04-01
US20060294264A1 (en) 2006-12-28
CN101208672B (zh) 2010-05-19
KR100958264B1 (ko) 2010-05-19
WO2007002445A2 (en) 2007-01-04
EP1894112A2 (en) 2008-03-05
WO2007002445A3 (en) 2007-06-28
JP4879981B2 (ja) 2012-02-22
ATE464605T1 (de) 2010-04-15
TWI328169B (en) 2010-08-01

Similar Documents

Publication Publication Date Title
KR100958264B1 (ko) 메모리 제어기, 데이터 반환 방법 및 시스템
KR100973604B1 (ko) 메모리 제어기, 데이터 반환 방법 및 시스템
KR100958263B1 (ko) 메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템
JP4838844B2 (ja) 方法、記憶媒体、システムおよびプログラム
US7287101B2 (en) Direct memory access using memory descriptor list
JP4795434B2 (ja) マイクロタイルメモリインターフェース
EP1754229B1 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
US6643746B1 (en) Optimal multi-channel memory controller system
US20080229049A1 (en) Processor card for blade server and process.
JP2005346715A (ja) マルチポートランダムアクセスメモリ
US11960723B2 (en) Method and system for managing memory associated with a peripheral component interconnect express (PCIE) solid-state drive (SSD)
US20080229030A1 (en) Efficient Use of Memory Ports in Microcomputer Systems

Legal Events

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

Payment date: 20130503

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee