KR20080014065A - 메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템 - Google Patents

메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템 Download PDF

Info

Publication number
KR20080014065A
KR20080014065A KR1020077030012A KR20077030012A KR20080014065A KR 20080014065 A KR20080014065 A KR 20080014065A KR 1020077030012 A KR1020077030012 A KR 1020077030012A KR 20077030012 A KR20077030012 A KR 20077030012A KR 20080014065 A KR20080014065 A KR 20080014065A
Authority
KR
South Korea
Prior art keywords
request
subchannel
memory
memory controller
shared address
Prior art date
Application number
KR1020077030012A
Other languages
English (en)
Other versions
KR100958263B1 (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 KR20080014065A publication Critical patent/KR20080014065A/ko
Application granted granted Critical
Publication of KR100958263B1 publication Critical patent/KR100958263B1/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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

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)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Image Input (AREA)

Abstract

일 실시예에 따르면, 메모리 제어기가 개시된다. 메모리 제어기는 할당 로직, 재정렬 테이블 및 트랜잭션 어셈블러를 포함한다. 할당 로직은 메모리 채널에 액세스하기 위한 요청을 수신하고, 채널 내의 2 이상의 독립적으로 어드레스가능한 서브채널 중 하나의 서브채널에 액세스하기 위한 요청을 할당한다. 재정렬 테이블은 2 이상의 테이블 엘리먼트를 포함한다. 각각의 테이블 엘리먼트는 2 이상의 독립적으로 어드레스가능한 서브채널 각각에 대응하는 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 포함한다. 트랜잭션 어셈블러는 재정렬 테이블 엘리먼트에서 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 결합하여, 단일의 메모리 트랜잭션을 제공한다.
마이크로-타일, 재정렬, 트랜잭션 어셈블러

Description

메모리 마이크로-타일링 요청 재정렬화 방법, 메모리 제어기 및 시스템{MEMORY MICRO-TILING REQUEST REORDERING}
본 발명은 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는, 본 발명은 메모리 제어부로의 액세스에 관한 것이다.
통합 메모리 아키텍처(UMA)를 구현하는 컴퓨터 시스템은 비디오 메모리에 대한 메인 메모리에 액세스하는 그래픽 제어기의 특징을 나타낸다. 하지만, UMA 그래픽 시스템의 메모리 효율은 CPU 캐시 라인 사이즈 요건으로 인해 제한될 수도 있다. 예를 들어, 그래픽 제어기가 한번에 하나 또는 수개의 픽셀 또는 텍셀 상에서 동작할 수 있기 때문에, 그래픽에 대한 이상적인 메모리 액세스 사이즈는 4 내지 16바이트일 수도 있다. 그럼에도 불구하고, 메모리 아키텍처는 CPU 메모리 효율을 최적화하기 위해 종종 64바이트 CPU 캐시 라인 사이즈용으로 최적화된다. 그 결과는, 평균적으로, 메모리로부터 판독된 데이터의 상당한 양이 그래픽 제어기에 의해 결코 사용될 수 없을 수도 있다는 것이다.
별개의 그래픽 제어기의 제조자는 더 협소한 메모리 채널을 사용함으로써 이 러한 오버페치를 최소화한다. 하지만, 이러한 솔루션은 UMA-기반 집적형 그래픽 제어기에는 이용가능하지 않다.
본 발명은 첨부도면의 도에 있어서 제한이 아닌 예로서 예시되며, 도면에서, 동일한 도면부호는 동일한 엘리먼트를 나타낸다.
도 1은 컴퓨터 시스템의 일 실시예의 블록도.
도 2는 메모리 제어기의 일 실시예를 도시한 도면.
도 3은 논리적 가상 어드레스의 일 실시예를 도시한 도면.
도 4는 메모리 제어기의 다른 실시예를 도시한 도면.
도 5는 메모리 제어기의 또 다른 실시예를 도시한 도면.
도 6은 재정렬 테이블의 일 실시예를 도시한 도면.
도 7은 링 버퍼 엔트리 및 로직의 일 실시예를 도시한 도면.
도 8은 재정렬 테이블의 다른 실시예를 도시한 도면.
도 9는 비교 및 선택 로직의 일 실시예를 나타낸다.
도 10a 및 10b는 성능 이점을 도시한 도면.
도 11은 컴퓨터 시스템의 다른 실시예의 블록도.
메모리 요청 재정렬화 아키텍처가 설명된다. 본 발명의 이하의 상세한 설명 에 있어서, 수개의 특정 상세가 본 발명의 철저한 이해를 제공하기 위해 설명된다. 하지만, 본 발명이 이들 특정 상세없이도 실시될 수도 있음은 당업자에게 자명할 것이다. 다른 경우, 널리 공지된 구조 및 디바이스는, 본 발명을 불명료하게 하는 것을 회피하기 위해, 상세하게 보다는 블록도 형태로 도시한다.
"하나의 실시예" 또는 "일 실시예"에 대한 명세서에 있어서의 참조는, 그 실시예와 관련하여 설명되는 특정 특성, 구조, 또는 특징이 본 발명의 하나 이상의 실시예에 포함됨을 의미한다. 명세서 내의 다양한 위치에 있어서의 "일 실시예에서"라는 어구의 출현은 동일한 실시예를 모두 참조할 필요는 없다.
도 1은 컴퓨터 시스템(100)의 일 실시예의 블록도이다. 컴퓨터 시스템(100)은 인터페이스(105)에 커플링된 중앙 프로세싱 유닛(CPU; 102)을 포함한다. 일 실시예에 있어서, CPU(102)는 캘리포니아주 산타 클라라 소재의 인텔 코포레이션으로부터 입수가능한 Pentium®Ⅳ 프로세서의 Pentium® 계열의 프로세서이다. 대안적으로, 다른 CPU가 사용될 수도 있다. 예를 들어, CPU(102)는 다중의 프로세싱 코어를 사용하여 구현될 수도 있다. 또 다른 실시예에 있어서, 컴퓨터 시스템(100)은 다중의 CPU(102)를 포함할 수도 있다.
추가의 실시예에 있어서, 칩셋(107)이 또한 인터페이스(105)에 커플링된다. 칩셋(107)은 메모리 제어 컴포넌트(110)를 포함한다. 메모리 제어 컴포넌트(110)는, 메인 시스템 메모리(115)에 커플링된 메모리 제어기(112)를 포함할 수도 있다. 메인 시스템 메모리(115)는, 시스템(100)에 포함된 CPU(102) 또는 임의의 다른 디바이스에 의해 실행되는 데이터 및 명령 시퀀스를 저장한다. 일 실시예에 있어서, 메인 시스템 메모리(115)는 동적 랜덤 액세스 메모리(DRAM)를 포함하지만, 메인 시스템 메모리(115)는 다른 메모리 타입을 사용하여 구현될 수도 있다. 다중의 CPU 및/또는 다중의 시스템 메모리와 같은 부가적인 디바이스가 또한 인터페이스(105)에 커플링될 수도 있다.
메모리 제어 컴포넌트(110)는 인터페이스를 통해 입력/출력(I/O) 제어 컴포넌트(140)에 커플링될 수도 있다. I/O 제어 컴포넌트(140)는 컴퓨터 시스템(100) 내의 I/O 디바이스에 대한 인터페이스를 제공한다. I/O 제어 컴포넌트(140)는 PCI(peripheral component interconnect), AGP(accelerated graphics port), USB(universal serial bus), LPC(low pin count) 버스 또는 임의의 다른 종류의 I/O 버스(도시 안함)와 같은 I/O 버스에 대한 표준 I/O 동작을 지원할 수도 있다.
일 실시예에 따르면, 그래픽 제어기(160)는 칩셋(107)에 커플링되고, 컴퓨터 시스템(100)에 커플링된 디스플레이 모니터(도시 안함)에 비디오 그래픽을 제공하도록 구현된다. 그래픽 제어기(160)는 비디오 메모리를 위한 메인 메모리(115)에 액세스한다. 상기 서술한 바와 같이, 그래픽 시스템 및 CPU 양자를 지원하는 메모리 디바이스의 메모리 효율은, 그래픽에 대한 메모리 액세스 사이즈가 종종 이상적으로는 4 내지 16바이트이지만 메모리 아키텍처가 CPU 메모리 효율을 최적화하기 위해 64바이트 CPU 라인 사이즈용으로 최적화되기 때문에 제한된다.
일 실시예에 따르면, 메모리 제어 컴포넌트(110) 특성은 그래픽 디바이스에 대한 메모리 요청 사이즈를 감소시키면서 64바이트 메모리 트랜잭션을 유지하는 것이다. DDR DRAM 기술에 기초하는 것과 같은 표준 메모리 채널은 m비트의 일부 물 리적 폭을 가진다. 메모리 트랜잭션은 M=m*T/8바이트의 총 논리적 폭에 대한 T개의 전달로 이루어질 수도 있다. 각각의 트랜잭션 내의 바이트는 연속적인 어드레스를 갖는 것으로 고려된다. 후속 설명에 있어서, 폭이라는 용어는 논리적 폭을 의미한다.
마이크로-타일링은 M바이트 폭 채널을, 각각이 N=M/S바이트 폭인 S개의 서브채널로 분할하며, 여기서, 데이터의 N바이트는 각각의 서브채널 상으로 전송된다. 어드레스가 각각의 서브채널에 제공될 수도 있으며, 여기서, 독립 어드레스 비트의 일부 수 I는 다른 서브채널에 제공된 어드레스에 있어서의 대응하는 비트와는 상이할 수도 있다. 각각의 서브채널 상으로 전송된 데이터는 인접한 어드레스 범위를 나타내도록 고려될 수도 있다. 하지만, 각각의 서브채널 상의 데이터 블록은 인접한 어드레스 범위로부터일 필요는 없다. 각각의 서브채널은 채널의 전체 메모리 위치의 서브세트를 포함한다.
도 2는 메모리 제어기(110)의 일 실시예를 나타낸다. 일 실시예에 있어서, 멀티-채널 메모리 서브시스템은 채널 당 마이크로-타일링 메모리 제어기를 가진다. 따라서, 도 2에 나타낸 바와 같이, 메모리 제어 컴포넌트(110)는 2개의 채널 각각에 대해 2개의 메모리 제어기(112; 메모리 제어기 1 및 2)를 포함한다. 각각의 채널은 S개의 서브채널을 포함하며, 각각의 서브채널은 N바이트 폭이다. 따라서, 각각의 채널은 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바이트 폭을 가진다.
어드레스 A에서 데이터의 N바이트의 블록을 판독하거나 기입하기 위한 요청이 입력되는, 도 2에 도시된 시스템의 동작 동안, 메모리 제어기(1 또는 2)는 서브채널에 할당될 수도 있고, 재정렬 버퍼(220)에 위치될 수도 있다. 일 실시예에 있어서, 아이덴터티 서브채널 할당 s는 다음의 프로세스 - 요청 어드레스 A는 P=log2(N) 비트만큼 우측으로 시프트되어 신규한 정수값
Figure 112007092156712-PCT00001
(예를 들어,
Figure 112007092156712-PCT00002
=A>>P)를 산출하고, 그리고, s는
Figure 112007092156712-PCT00003
의 최하위 유효 Q=log2(S) 비트임(예를 들어, s=
Figure 112007092156712-PCT00004
& ((1<<Q)-1)) - 에 의해 정의될 수도 있다.
메모리 제어기는 재정렬 버퍼(220)로부터 각각의 서브채널에 대해 하나인 S개의 판독 요청을 선택함으로써 메모리 판독 트랜잭션을 형성한다. 메모리 제어기는 재정렬 버퍼(220)로부터 각각의 서브채널에 대해 하나인 S개의 기입 요청을 선택함으로써 메모리 기입 트랜잭션을 형성한다. 공유 어드레스 라인에 의해 표시된 어드레스의 부분은 그 트랜잭션에 있어서의 모든 서브채널 요청에 대해 동일할 수도 있다.
도 3은 물리적 어드레스에 있어서의 어드레스 비트의 해석의 일 실시예를 나타낸다. 도 3에 도시된 공유 어드레스 비트와 독립 어드레스 비트, 및 서브채널 선택 비트의 선택은, P개의 서브채널 데이터 어드레스 비트 상위의 어드레스 비트의 공유 어드레스 비트와 독립 어드레스 비트 및 서브채널 선택 비트로의 분할이 임의적일 수도 있기 때문에 예시의 목적이다. 독립 어드레스 비트는 서브채널 전반에 걸쳐 상이하며, 인접할 필요는 없다. 서브채널로 전송된 어드레스 비트는 그 서브채널의 공유 어드레스 비트 및 독립 어드레스 비트이다.
도 4는 오직 단일 채널이 도시된 4개의 16바이트 요청으로부터 64바이트 트랜잭션을 어셈블링하는 메모리 제어 컴포넌트(110)의 일 실시예를 나타낸다. 도 4는 각각의 서브채널에 대한 재정렬 큐로서 구현된 재정렬 버퍼(220)를 도시한다. 하지만, 다른 실시예에 있어서, 재정렬 버퍼(220)는 다른 메커니즘을 통해 구현될 수도 있다.
이 실시예에 있어서, 트랜잭션 어셈블러(230)는 각각의 서브채널에 대해 하나인 16B 요청으로부터 64B 메모리 요청을 구성한다. 메모리 요청을 형성하는 모든 16B 요청은 동일한 공유 어드레스 비트를 가진다. 따라서, 어셈블러(230)는, 요청이 공통 공유 어드레스를 갖는지 여부에 기초하여 단일의 트랜잭션으로 어셈블링될 수 있는 요청에 대한 큐를 조사한다.
도 4에 도시된 실시예에 있어서, 어셈블러(230)는 서브채널(1c)에 대한 요청은 찾을 수 없음을 주목한다. 트랜잭션의 형성을 시도할 경우, 메모리 제어기는, 모두가 동일한 공유 어드레스 세그먼트를 갖도록(예를 들어, 각각의 공유 어드레스 비트의 값이 모든 요청 전반에 걸쳐 동일하도록) 각각의 서브채널에 대한 요청을 찾을 수는 없을 수도 있다.
만약 서브채널이 대응하는 큐에서 요청에 의해 충진될 수 없으면, 그 효과는 어떠한 전송도 그 서브채널로/로부터 수행될 수도 없다는 것이다. 일 실시예에 있어서, 만약 서브채널이 요청에 의해 충진될 수 없으면, 임의의 위치가 판독될 수도 있고 그 결과는 폐기된다. 대안적인 실시예에 있어서, 부가적인 제어 라인이 서브채널 마다 포함될 수도 있고, 이는 그 채널에 대한 대응하는 요청이 존재하지 않을 경우에 서브채널을 파워-다운시키도록 이용될 수도 있다.
상기 서술된 실시예에 있어서, 트랜잭션 어셈블러(230)는 재정렬 큐 각각으로부터 서브채널 요청을 선택함으로써 채널 요청을 어셈블링한다. 하지만, 대안적인 실시예에 있어서, 재정렬 테이블은 각각의 서브채널과 관련된 별개의 재정렬 큐 보다는 서브채널 요청을 저장하도록 구현될 수도 있다.
도 5는 재정렬 테이블(520)을 통한 요청 흐름을 갖는 메모리 제어 컴포넌트(110)의 일 실시예를 나타낸다. 이 실시예에 있어서, 요청은 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 포함하는 것으로서 표현될 수도 있다. 공유 어드레스 컴포넌트는 도 5에서 패터닝되어, 상이한 값 또는 동일한 값을 시사한다. 요청의 독립 어드레스 컴포넌트는 서브채널이 할당되기 전에 블랭크일 수도 있다. 일 실시예에 있어서, log2(N) 서브채널 데이터 어드레스 비트는 이 레벨에서 메모리 트랜잭션과 관련되지 않으며, 따라서, 표현되지 않는다. 유사하게, 전송되는 실제 데이터는 표현되지 않을 수도 있다.
재정렬 테이블(520)의 테이블 엘리먼트 각각은 공유 어드레스 컴포넌트 및, 각각이 서브채널 각각에 대응하는 S개의 독립 어드레스 컴포넌트를 가진다. 도 5에 도시된 바와 같이, 테이블 엘리먼트는, 공유 어드레스 값이 아직 할당되지 않았음을 나타내도록 블랭크이다. 각각의 독립 어드레스 컴포넌트는 또한 독립 어드레스 값이 할당될 때까지 블랭크일 수도 있다.
서브채널 할당 이후, 요청의 독립 어드레스 컴포넌트는 도 5에 명기되어, 할당된 서브채널을 나타낼 수도 있다(예를 들어, 서브채널 1a에 대해 1a, 서브채널 1b에 대해 1b 청색 등). 그 후, 공유 어드레스 값은 각각의 테이블 엔트리에 저장된 공유 어드레스 값과 비교될 수도 있다. 만약 매칭이 존재하여 테이블 엔트리에 있어서의 대응하는 서브채널 어드레스 컴포넌트가 이용가능하면, 독립 어드레스 값은 그 서브채널 어드레스 컴포넌트에 위치될 수도 있다. 만약 서브채널 어드레스 컴포넌트가 이미 어떠한 값을 포함하면, 매칭하는 공유 어드레스 값을 갖는 테이블 엔트리를 계속 탐색한다. 만약 탐색이 실패하면, 요청의 공유 어드레스 값 및 독립 어드레스 값은 빈 테이블 엔트리에 위치된다.
도 5는 S=4개의 서브채널이고 최대 테이블 깊이 D=8인 특정 예를 도시한다. S 및 D 양자는, 재정렬 테이블(520)에 대한 다수의 가능한 구성을 생성하는 임의의 값을 가정할 수 있다. 트랜잭션을 제공하기 위해, 테이블 엔트리는 선택되어, 트랜잭션 어셈블러(230)로 포워딩되고, 그 후, 추후 사용을 위해 재정렬 테이블(520)에 빈 테이블 엔트리로서 리턴될 수도 있다.
일 실시예에 따르면, 어셈블러(230)는 하나의 재정렬 테이블(520)의 행에 대한 16바이트 요청으로부터 64바이트 메모리 요청을 구성하며, 모든 서브스팬은 동일한 공유 어드레스 비트를 가진다. 또한, 만약 선택된 테이블 엔트리에 있어서 서브채널 컴포넌트가 비어 있으면, 트랜잭션 어셈블러(230)는 메모리 판독을 위해 서브스팬 요청을 이론적으로 삽입할 수 있다.
도 6은 그러한 메커니즘을 구현하는 재정렬 테이블(520)의 일 실시예를 나타낸다. 재정렬 테이블(520)은 링 버퍼 엔트리 및 로직(620)으로서 지칭되는 비교기 로직 유닛의 링을 포함한다. 도 7은 링 버퍼 엔트리 및 로직(620)의 일 실시예를 나타낸다.
도 6을 다시 참조하면, 테이블 엔트리는 각각의 서브채널에 대한 단일의 공유 어드레스 값 및 독립 어드레스 값을 저장할 수 있는 레지스터로서 표현될 수도 있다. 테이블 엔트리는, 현재 저장된 값이 유효한지를 나타내기 위한 유효 비트를 갖는 일련의 레지스터로서 구현될 수도 있다. 출력 요청은 테이블 엔트리를 선택하고 그 테이블 엔트리를 트랜잭션 어셈블러(230)에 제공함으로써 생성된다. 그 후, 대응하는 테이블 엔트리 컴포넌트는 무효한 것으로서 마킹된다.
일 실시예에 따르면, 각각의 테이블 엔트리는 로직 유닛(620)에 커플링될 수도 있다. 또한, 각각의 입력 요청은, 테이블 엔트리 선택 로직(630)에 의해 선택될 때, 트랜잭션 어셈블러(230)에 전달될 다음 테이블 엔트리와 관련된 로직 유닛(620)에서의 링에 삽입될 수도 있다. 공유 어드레스 값, 독립 어드레스 값 및 서브채널 할당을 포함하는 입력 요청은 다음과 같이 관련 테이블 엔트리와 비교될 수도 있다.
먼저, 만약 테이블 엔트리에 있어서의 공유 어드레스 값이 유효하지 않으면, 요청에 있어서의 공유 어드레스 값이 테이블 엔트리에 카피될 수도 있고, 요청에 있어서의 독립 어드레스 값은 테이블 엔트리에 있어서의 대응하는 서브채널 어드레스 컴포넌트에 카피될 수도 있다. 테이블 엔트리의 양 엘리먼트가 유효한 것으로서 마킹된다. 그 후, 그 요청은 폐기된다.
하지만, 만약 요청 및 테이블 엔트리에 있어서의 공유 어드레스 값이 동일하고 테이블 엔트리에 있어서의 할당된 서브채널의 독립 어드레스 값이 유효하지 않으면, 요청에 있어서의 독립 어드레스 값은 테이블 엔트리에 기입되고 유효하게 마킹될 수도 있다. 그 후, 그 요청이 폐기된다. 그렇지 않으면, 요청은 다음의 연속하는 링 버퍼 엘리먼트로 전달되고, 프로세스는 반복된다. 일 실시예에 따르면, 만약 비교가 모든 링 버퍼 엔트리에 대해 실패하면, 입력 요청은 출력 요청이 생성될 수도 있을 때까지 스톨되고, 따라서, 링 버퍼 엔트리를 자유롭게 할 수도 있다.
도 8은 그러한 메커니즘을 구현하는 재정렬 테이블(520)의 다른 실시예를 나타낸다. 재정렬 테이블(520)은 비교 및 선택 로직(820)으로서 지칭되는 비교기 로직 유닛의 링을 포함한다. 도 9는 비교 및 선택 로직(820)의 일 실시예를 나타낸다.
도 8을 다시 참조하면, 테이블 엔트리는 각각의 서브채널에 대해 단일의 공유 어드레스 값 및 독립 어드레스 값을 저장할 수 있는 레지스터로서 표현된다. 테이블 엔트리는, 현재 저장된 값이 유효한지를 나타내기 위한 유효 비트를 갖는 일련의 레지스터로서 구현될 수도 있다. 출력 요청은 최고 우선순위 테이블 엔트리를 선택하고 그 엔트리를 트랜잭션 어셈블러(230)에 제공함으로써 생성된다. 그 후, 대응하는 테이블 엔트리 컴포넌트는 무효한 것으로서 마킹된다.
일 실시예에 따르면, 각각의 테이블 엔트리는 로직 유닛(820)에 커플링된다. 또한, 각각의 입력 요청은 각각의 로직(820) 유닛에 의해 관측된다. 각각의 로직(820) 유닛은 공유 어드레스 값, 독립 어드레스 값 및 서브채널 할당을 포함하는 입력 요청을 다음과 같은 관련 테이블 엔트리와 비교한다("입력 요청 비교").
먼저, 만약 테이블 엔트리에 있어서의 공유 어드레스 값이 유효하지 않으면, 비교는 성공이다. 그렇지 않고, 만약 요청 및 테이블 엔트리에 있어서의 공유 어드레스 값이 동일하고 테이블 엔트리에 있어서의 할당된 서브채널의 독립 어드레스 값이 유효하지 않으면, 비교는 성공이다. 그렇지 않으면, 비교는 실패이다.
일 실시예에 있어서, 각각의 로직(820) 유닛은 고정되고 고유한 테이블 엔트리 Id를 가지며, 테이블 엔트리 선택 로직(630)에 의해 선택될 때, 트랜잭션 어셈블러(230)에 전달될 최고 우선순위 테이블 엔트리와 그 Id를 비교한다. 만약 최고 우선순위 엔트리에 의해 수행된 입력 요청 비교가 성공하였으면, 요청에 있어서의 공유 어드레스 값은 테이블 엔트리에 카피되고, 요청에 있어서의 독립 어드레스 값은 테이블 엔트리에 있어서의 대응하는 서브채널 어드레스 컴포넌트에 카피된다. 테이블 엔트리의 양 엘리먼트는 유효한 것으로서 마킹된다. 그 후, 그 요청은 폐기된다.
그렇지 않고, 만약 우선순위 링 상의 다음 테이블 엔트리에 의해 수행된 입력 요청 비교가 성공하였으면, 입력 요청은 그 테이블 엔트리에 카피된다. 그렇지 않으면, 이러한 프로세스는, 입력 요청 비교가 성공한 테이블 엔트리가 발견될 때까지 반복한다. 만약 입력 요청이 비교하는 테이블 엔트리가 발견되지 않으면, 입력 요청의 삽입은 출력 요청이 생성될 때까지 스톨하고, 따라서, 링 버퍼 엔트리는 자유롭게 된다.
마이크로-타일링 메모리 서브채널은 공유 어드레스 비트 및 I개의 독립 어드레스 비트에 의해 결정되는 일부 어드레스 범위 내의 불연속적인 메모리 어드레스에 액세스할 수 있다. I의 신중한 선택은, 각각의 서브채널에 대해 I개의 어드레스 신호를 복제하는 비용에 비해 밸런싱된 독립 서브채널의 증가된 동시발생 및 대역폭 효율을 제공할 수 있다.
도 10a 및 10b는 마이크로-타일링에 대한 성능 이점을 나타낸다. 각각의 도 면은 타일링된 어드레스 공간에 있어서의 삼각형의 래스터화를 나타내며, 각각의 작은 스퀘어는 4바이트 픽셀 또는 텍셀을 나타낸다. 도 10a는 요청이 각각 64바이트인 경우 표준 메모리 시스템에 있어서의 오버페치를 나타낸다. 픽셀의 각 4×4 블록은 64바이트 정렬 메모리 블록을 나타낸다. 삼각형은 57개의 픽셀을 포함한다. 표준 메모리 서브시스템에 있어서, 이들 57개의 픽셀은 11개(64바이트)의 메모리 블록 내에 존재한다. 따라서, 이들 57개의 픽셀에 액세스하기 위하여, 이용되지 않을 수도 있는 데이터의 추가적인 119개의 픽셀 값이 액세스된다(예를 들어, 32% 효율을 발생시킴).
도 10b는 요청이 각각 16바이트이고, 그러한 모든 요청이 마이크로-타일 어셈블러에 의해 활용되어 미사용 서브채널이 없는 64바이트 메모리 트랜잭션을 형성할 수 있는 경우의 오버페치를 나타낸다. 이 경우, 삼각형은 23개의 2×2 픽셀 어레이에 접하고, 데이터의 35개의 추가적인 픽셀 값이 액세스되게 한다(예를 들어, 62% 효율을 발생시킴). 마이크로-타일링의 유효성은 완전히 상주된 메모리 트랜잭션을 구성하기 위한 어셈블러의 능력에 의존한다.
또한, 상기 서술한 재정렬 테이블 메커니즘은 출력측에 대한 요청 형성을 시도하는 대신 입력 메모리 요청에 대한 비교를 수행한다. 이것은 비교를 수행하기 위한 더 많은 시간을 허용하여 경쟁 상태를 잠재적으로 회피하게 하고, 비교의 횟수를 감소시킨다(따라서, 재정렬 큐의 전체 게이트 카운트를 감소시킴). 클럭 당 S*D회의 비교를 갖는 대신, 클럭 당 오직 D회의 비교만이 존재한다.
도 11은 컴퓨터 시스템(100)의 다른 실시예를 나타낸다. 이 실시예에 있어 서, 칩셋(107)은 별개의 메모리 제어 컴포넌트 및 I/O 제어 컴포넌트에 대조적으로 단일의 제어 허브(1120)를 포함한다. 결과적으로, 메모리 제어기(112)는 CPU(102) 내에 포함되고, 메모리(115)는 CPU(102)에 커플링된다. 그러한 실시예에 있어서, 그래픽 제어기(160)는 제어 허브(1120)에 커플링되고, CPU(102)를 통해 메인 메모리(115)에 액세스한다.
전술한 설명을 읽은 후에, 본 발명의 다수의 변경 및 변형은 의심없이 당업자에게 자명하게 되지만, 예시에 의해 도시 및 설명된 임의의 특정 실시예는 제한하는 것으로서 간주되도록 의도되지 않음을 이해해야 한다. 따라서, 다양한 실시예의 상세에 대한 참조는 특허청구범위의 범위를 제한하도록 의도되지 않으며, 특허청구범위는 본질적으로 본 발명에 대한 필수구성요소로서 간주되는 특징만을 기재한다.

Claims (20)

  1. 메모리 채널에 액세스하기 위한 요청을 수신하고, 상기 채널 내의 2 이상의 독립적으로 어드레스가능한 서브채널 중 하나의 서브채널에 액세스하기 위한 요청을 할당하는 할당 로직과,
    2 이상의 테이블 엘리먼트 - 각각의 테이블 엘리먼트는 상기 2 이상의 독립적으로 어드레스가능한 서브채널 각각에 대응하는 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 가짐 - 를 갖는 재정렬 테이블과,
    재정렬 테이블 엘리먼트에서 상기 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 결합하여, 단일의 메모리 트랜잭션을 제공하는 트랜잭션 어셈블러를 포함하는
    메모리 제어기.
  2. 제 1 항에 있어서,
    상기 서브채널 요청 각각은 독립 어드레스 값 및 공유 어드레스 값을 포함하는
    메모리 제어기.
  3. 제 2 항에 있어서,
    서브채널 요청의 상기 공유 어드레스 값은 각각의 테이블 엘리먼트에 저장된 공유 어드레스 컴포넌트와 비교되는
    메모리 제어기.
  4. 제 3 항에 있어서,
    서브채널 요청에 대한 상기 독립 어드레스 값은, 상기 서브채널 요청의 상기 공유 어드레스 값과 상기 테이블 엔트리의 상기 공유 어드레스 컴포넌트 사이에 매칭이 존재하고 상기 테이블 엔트리의 대응하는 독립 어드레스 컴포넌트가 비어 있으면 상기 테이블 엔트리의 대응하는 독립 어드레스 컴포넌트에 삽입되는
    메모리 제어기.
  5. 제 3 항에 있어서,
    상기 공유 어드레스 값 및 상기 독립 어드레스 값은 빈 테이블 엘리먼트에 저장되는
    메모리 제어기.
  6. 제 1 항에 있어서,
    상기 서브채널 요청을 관련 서브채널에 포워딩하기 위해 상기 테이블 엘리먼트에 저장된 서브채널 요청을 어셈블링하는 트랜잭션 어셈블러를 더 포함하는
    메모리 제어기.
  7. 제 6 항에 있어서,
    상기 서브채널 요청이 관련 서브채널에 포워딩된 이후, 상기 테이블 엘리먼트는 빈 테이블로서 상기 재정렬 테이블에 리턴되는
    메모리 제어기.
  8. 제 1 항에 있어서,
    상기 재정렬 테이블 내의 각 테이블 엘리먼트는 상기 공유 어드레스 컴포넌트 및 상기 독립 어드레스 컴포넌트를 저장하는 레지스터를 포함하는
    메모리 제어기.
  9. 제 8 항에 있어서,
    각각의 상기 레지스터는, 저장된 값 중 하나 이상이 유효한지를 나타내는 유효 비트를 포함하는
    메모리 제어기.
  10. 제 9 항에 있어서,
    상기 재정렬 테이블은 상기 레지스터 각각에 커플링된 비교기 로직 유닛을 더 포함하는
    메모리 제어기.
  11. 메모리 제어기에서, 상기 메모리 제어기에 커플링된 메모리 채널에 액세스하기 위한 요청을 수신하는 단계와,
    상기 요청을 상기 메모리 채널 내의 관련된 독립적으로 어드레스가능한 서브채널에 할당하는 단계와,
    상기 요청을 재정렬 테이블 내의 각 테이블 엔트리와 비교하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 요청의 공유 어드레스 값이 테이블 엔트리의 공유 어드레스 컴포넌트와 매칭하는지를 판정하는 단계와,
    만약 매칭한다면, 상기 테이블 엔트리에 대한 독립 어드레스 컴포넌트가 비어 있는지를 판정하는 단계를 더 포함하는
    방법.
  13. 제 12 항에 있어서,
    상기 테이블 엔트리에 대한 상기 독립 어드레스 컴포넌트가 비어 있으면, 상기 요청을 상기 테이블 엔트리에 삽입하는 단계를 더 포함하는
    방법.
  14. 제 13 항에 있어서,
    상기 요청을 관련 서브채널에 포워딩하는 단계를 더 포함하는
    방법.
  15. 제 14 항에 있어서,
    상기 요청을 관련 서브채널에 포워딩한 이후, 비어있는 상기 테이블 엔트리를 상기 재정렬 테이블의 종단에 리턴하는 단계를 더 포함하는
    방법.
  16. 하나 이상의 채널을 갖는 메모리 디바이스와,
    상기 메모리 디바이스에 커플링되고, 메모리 제어기를 갖는 칩셋을 포함하며,
    상기 메모리 제어기는,
    메모리 채널에 액세스하기 위한 요청을 수신하고, 상기 채널 내의 2 이상의 독립적으로 어드레스가능한 서브채널 중 하나의 서브채널에 액세스하기 위한 요청을 할당하는 할당 로직과,
    하나 이상의 테이블 엘리먼트 - 각각의 테이블 엘리먼트는 상기 2 이상의 독립적으로 어드레스가능한 서브채널 각각에 대응하는 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 가짐 - 를 갖는 재정렬 테이블과,
    재정렬 테이블 엘리먼트에서 상기 공유 어드레스 컴포넌트 및 독립 어드레스 컴포넌트를 결합하여, 단일의 메모리 트랜잭션을 제공하는 트랜잭션 어셈블러를 포함하는
    시스템.
  17. 제 16 항에 있어서,
    상기 서브채널 요청 각각은 독립 어드레스 값 및 공유 어드레스 값을 포함하는
    시스템.
  18. 제 17 항에 있어서,
    서브채널 요청의 상기 공유 어드레스 값은 각각의 테이블 엘리먼트에 저장된 공유 어드레스 컴포넌트와 비교되는
    시스템.
  19. 제 18 항에 있어서,
    서브채널 요청에 대한 상기 독립 어드레스 값은, 상기 서브채널 요청의 상기 공유 어드레스 값과 테이블 엔트리의 상기 공유 어드레스 컴포넌트 사이에 매칭이 존재하면 상기 테이블 엔트리의 대응하는 독립 어드레스 컴포넌트에 삽입되는
    시스템.
  20. 제 16 항에 있어서,
    상기 서브채널 요청을 관련 서브채널에 포워딩하기 위해 상기 테이블 엘리먼트에 저장된 서브채널 요청을 어셈블링하는 트랜잭션 어셈블러를 더 포함하는
    시스템.
KR1020077030012A 2005-06-23 2006-06-23 메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템 KR100958263B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/159,741 US8332598B2 (en) 2005-06-23 2005-06-23 Memory micro-tiling request reordering
US11/159,741 2005-06-23

Publications (2)

Publication Number Publication Date
KR20080014065A true KR20080014065A (ko) 2008-02-13
KR100958263B1 KR100958263B1 (ko) 2010-05-19

Family

ID=37545727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030012A KR100958263B1 (ko) 2005-06-23 2006-06-23 메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템

Country Status (7)

Country Link
US (1) US8332598B2 (ko)
EP (1) EP1894111B1 (ko)
JP (1) JP4809890B2 (ko)
KR (1) KR100958263B1 (ko)
CN (2) CN101930412B (ko)
TW (1) TWI380176B (ko)
WO (1) WO2007002552A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765366B2 (en) * 2005-06-23 2010-07-27 Intel Corporation Memory micro-tiling
US7587521B2 (en) * 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data
US8332598B2 (en) 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering
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
US8756591B2 (en) * 2011-10-03 2014-06-17 International Business Machines Corporation Generating compiled code that indicates register liveness
US9208829B2 (en) * 2013-08-20 2015-12-08 Teradata Us, Inc. Designated memory sub-channels for computing systems and environments
US10756891B2 (en) * 2014-04-09 2020-08-25 The Boeing Company Secure data communication
US10171238B2 (en) * 2014-04-09 2019-01-01 The Boeing Company Secure data transmission using quantum communication
DE102014013468A1 (de) 2014-09-17 2016-03-17 Ulrich Rohs Kegelreibringgetriebe und Verfahren zum Betrieb eines Kegelreibringgetriebes
US11222258B2 (en) 2020-03-27 2022-01-11 Google Llc Load balancing for memory channel controllers
US11494120B2 (en) * 2020-10-02 2022-11-08 Qualcomm Incorporated Adaptive memory transaction scheduling

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US165390A (en) * 1875-07-06 Improvement in paper-bag machines
US159745A (en) * 1875-02-16 Improvement in wash-boilers
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
JPS59114589A (ja) * 1982-12-22 1984-07-02 株式会社東芝 パタ−ン書込み制御回路
JPH083805B2 (ja) 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
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
US5752045A (en) 1995-07-14 1998-05-12 United Microelectronics Corporation Power conservation in synchronous SRAM cache memory blocks of a computer system
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
US6405273B1 (en) 1998-11-13 2002-06-11 Infineon Technologies North America Corp. Data processing device with memory coupling 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
US6742097B2 (en) 2001-07-30 2004-05-25 Rambus Inc. Consolidation of allocated memory to reduce power consumption
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
US7103730B2 (en) 2002-04-09 2006-09-05 Intel Corporation Method, system, and apparatus for reducing power consumption of a memory
DE10216611A1 (de) 2002-04-15 2003-11-06 Infineon Technologies Ag Verfahren zum Ersetzen eines Inhalts einer Datenspeichereinheit
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
US7587521B2 (en) 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data

Also Published As

Publication number Publication date
CN101930412A (zh) 2010-12-29
CN101228514A (zh) 2008-07-23
US20060294328A1 (en) 2006-12-28
WO2007002552A2 (en) 2007-01-04
KR100958263B1 (ko) 2010-05-19
JP4809890B2 (ja) 2011-11-09
CN101228514B (zh) 2010-06-16
CN101930412B (zh) 2013-03-13
EP1894111A2 (en) 2008-03-05
JP2008544415A (ja) 2008-12-04
WO2007002552A3 (en) 2007-04-12
TWI380176B (en) 2012-12-21
EP1894111B1 (en) 2013-01-02
US8332598B2 (en) 2012-12-11
TW200710657A (en) 2007-03-16

Similar Documents

Publication Publication Date Title
KR100958263B1 (ko) 메모리 마이크로-타일링 요청 재정렬화 방법, 메모리제어기 및 시스템
JP4879981B2 (ja) メモリのマイクロタイリングによる投機的なリターン
KR100973604B1 (ko) 메모리 제어기, 데이터 반환 방법 및 시스템
US6185654B1 (en) Phantom resource memory address mapping system
US7246215B2 (en) Systolic memory arrays
EP1896961B1 (en) Automatic detection of micro-tile enabled memory
US20080229049A1 (en) Processor card for blade server and process.
JP2006099770A (ja) シングルポートメモリを使用した命令キャッシュ
JP2005346715A (ja) マルチポートランダムアクセスメモリ
CA2465492A1 (en) Bandwidth enhancement for uncached devices

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: 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