KR20040091069A - 메모리 액세스를 제어하기 위한 방법 및 장치 - Google Patents

메모리 액세스를 제어하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20040091069A
KR20040091069A KR10-2004-7013081A KR20047013081A KR20040091069A KR 20040091069 A KR20040091069 A KR 20040091069A KR 20047013081 A KR20047013081 A KR 20047013081A KR 20040091069 A KR20040091069 A KR 20040091069A
Authority
KR
South Korea
Prior art keywords
memory
access
mode
front side
side bus
Prior art date
Application number
KR10-2004-7013081A
Other languages
English (en)
Other versions
KR100668001B1 (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 KR20040091069A publication Critical patent/KR20040091069A/ko
Application granted granted Critical
Publication of KR100668001B1 publication Critical patent/KR100668001B1/ko

Links

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction

Abstract

하드웨어 프리페처로부터의 메모리 액세스를 모니터링하는 단계; 하드웨어 프리페처로부터의 메모리 액세스가 비순차적 코어(out-of-order core)에 의해 사용되는지 여부를 결정하는 단계; 및 만약 하드웨어 프리페처에 의해 생성된 메모리 액세스의 어떤 비율이 비순차적 코어에 의해 사용된다면, 메모리 액세스를 제1 모드로부터 제2 모드로 전환하는 단계를 포함하는 메모리에 액세스하기 위한 방법 및 장치가 개시된다.

Description

메모리 액세스를 제어하기 위한 방법 및 장치{METHOD AND APPARATUS TO CONTROL MEMORY ACCESS}
DRAM은 메모리 프리챠지(precharge), 활성화(activate), 판독 및 기록 동작을 가지고 있다. 특히, 메모리의 뱅크를 어드레스하는 메모리 제어기는 먼저 메모리 뱅크를 프리챠지하여야 하며, 그 후에, 그 뱅크내의 어드레스 페이지가, 그 페이지내의 어드레스된 칼럼이 액세스(판독 또는 기록)되기 전에, 활성화되어야 한다. "DRAM 페이지 오픈" 또는 "페이지 히트(page hit)"는 액세스되는 메모리가 이미 프리챠지되고 활성화되었으며, 따라서 각각의 메모리 액세스동안에 그 메모리를 프리챠지하거나 활성화시킬 필요없이 데이타가 판독되거나 기록될 수 있다는 것을 나타낸다. "페이지 부적중 발생(page miss occurs)"(즉, 데이터가 메모리내에서 오픈된 페이지가 아닌 다른 페이지로부터 액세스되는 경우)의 경우, 오픈된 페이지는 센스앰프로부터 DRAM 칩으로 다시 기록되어야 한다. 다음으로, 새로운 메모리 페이지는 액세스되기 전에 먼저 프리챠지되고 활성화되어야 한다. 옛날 페이지를 DRAM에 기록하고, 새로운 DRAM 페이지를 프리챠지하고 활성화하는 것은 시간이 걸리고 메모리 액세스를 느리게 하여, 메모리 버스를 비효율적으로 사용(대역폭 감소)하게 하며 DRAM을 채용한 장비(예를 들어서 컴퓨터)의 성능을 저하시킨다.
도 1은 종래기술의 구현예에 따라서 메모리 액세스를 스케쥴링하는 프론트 사이드 버스 제어기(front side bus controller: FSB controller)를 도시한다. 도 1에 도시된 바와 같이, FSB 제어기(105)는 FSB 액세스 큐(FSB access queue, 130)를 통하여 프로세서(110)로부터 DRAM(120)으로의 액세스(판독 및 기록)를 스케쥴링하는 FSB 스케쥴러(125)를 포함한다. FSB 제어기는 L2 실패 요구 버스(L2 miss request bus)를 통하여 프로세서(110)에 결합되고, 프론트 사이드 버스를 통하여 메모리 제어기(115)에 결합된다. 프로세서(110)는 비순차적 코어(out-of-order core, 135) 및 하드웨어 프리페처(hardware prefetcher: HWP, 140)를 포함한다. 비순차적 코어(135)는 프로세서의 전체 성능을 향상시키려는 노력으로 다중의 명령들이 실행중에 오버랩되는 파이프라인 기술(pipelining technique)을 사용한다. HWP는 비순차적 코어 내의 실행유닛들에 필요한 데이터를 DRAM으로부터 프리페치한다.
FSB 제어기(105), 특히 FSB 스케쥴러(125)는 액세스를 초래하는 명령들(즉, DRAM에서 데이터를 판독하거나 기록하기 위한 요구를 발생시키는 로드 또는 저장)의 상대적인 나이에 기초하여 프로세서(110)으로부터의(즉, 비순차적 코어 또는 HWP로부터) DRAM 액세스를 스케쥴링한다. 따라서, FSB 액세스 큐(130)내에서의 액세스는 프로그램 순서로 DRAM에 스케쥴링된다. 특히, 비순차적 코어로부터의 DRAM 액세스는 HWP로부터의 DRAM 액세스에 대하여 우선권을 갖으며, 비순차적 코어에 의하여 발생한 액세스는 프로그램 순서로 스케쥴링된다. 따라서, FSB 액세스 큐 내에서 가장 오래된 명령과 연관된 액세스를 먼저 스케쥴링함으로써, FSB 제어기는 DRAM 액세스 대기시간(latency)을 최소화한다. 그러나, 연속적인 DRAM 액세스들이 항상 오픈된 DRAM 페이지를 액세스하는 것이 아닐 수 있으므로, DRAM 액세스의 대기시간을 최소화하는 것에 기초하여 DRAM 액세스를 스케쥴링하는 것이 항상 최적의 해결책은 아니다. 닫혀있는 페이지로부터 액세스하는 것은 DRAM에 현재 오픈된 페이지를 기록하고, 새로운 디램 페이지를 프리챠지하고 활성화하는 것을 수반한다. 따라서, 닫혀있는 디램 페이지를 액세스하는 것은 시간이 걸리고, 메모리 액세스를 느리게 하며, 따라서 프로세스의 DRAM 버스를 비효율적이 되도록 한다.
본 발명은 전자공학 분야에 관한 것으로서, 특히, 메모리 액세스를 제어하기 위한 방법 및 장치에 관한 것이다.
도 1은 종래기술의 실시예에 따라서 메모리 액세스를 스케쥴링하는 프론트 사이드 버스(FSB) 제어기를 도시하는 도면.
도 2a는 본 발명의 일 실시예에 따라서 메모리 액세스를 스케쥴링하는 프론트 사이드 버스(FSB) 제어기를 도시하는 도면.
도 2b는 본 발명의 일 실시예에 따른 메모리 액세스와 연관된 파라미터를 도시하는 도면.
도 3은 본 발명의 일 실시예에 따른 메모리 액세스의 흐름도.
도 4는 본 발명이 동작하는 컴퓨터 시스템의 일 실시예를 도시하는 도면.
메모리 액세스를 제어하기 위한 방법 및 장치가 설명된다. 이하의 설명에서, 본 발명을 완벽하게 이해하도록 하기 위하여 많은 구체적인 상세한 사항들이 설명된다. 그러나, 당업자라면 이러한 구체적인 상세설명이 없어도 본 발명이 실시될 수 있다는 점이 명확할 것이다. 다른 경우에는, 잘 알려진 구조, 단계, 기술들은 쓸데없이 본 발명을 이해하기 어렵게 하는 것을 피하기 위하여 설명하지 않았다.
아래 설명의 일부분은 당업자들이 다른 당업자들에게 그들 연구과제의 내용을 전달하기 위하여 공통적으로 사용되는 용어들을 이용하여 소개된다. 또한, 아래 설명의 일부분은 프로그래밍 명령어들의 실행을 통하여 수행되는 동작의 측면에서 소개될 것이다. 당업자에게는 쉽게 이해되듯이, 이러한 동작들은 종종 예를 들어 전기 부품들을 통하여 저장되거나, 전송되거나, 결합되거나, 조작될 수 있는 전기, 자기, 또는 광 신호의 형태를 갖는다.
본 발명의 실시예들은 첨부한 도면들에 도시되어 있다. 그러나, 첨부한 도면들은 본 발명의 범위를 한정하는 것이 아니다. 도면들에서 유사한 부호들은 유사한 구성요소들을 나타낸다.
도 2a는 본 발명의 일 실시예에 따라 메모리 액세스를 스케쥴링하는 프론트 사이드 버스(front side bus; FSB) 제어기를 나타낸다. 도 2a의 실시예에서 도시된 바와 같이, FSB 제어기(205)는 FSB 액세스 큐(230)를 사용하여 프로세서(210)에서 DRAM(220)으로의 DRAM 액세스를 스케쥴링하는 FSB 스케쥴러(225)를 포함한다. FSB 제어기는 L2 부적중 요청 버스(L2 miss request bus)를 통해 프로세서(210)에결합되고, FSB를 통해 메모리 제어기(215)에 결합된다. 메모리 제어기(215)는 메모리 버스를 통해 DRAM(220)에 결합된다. 프로세서(210)는 비순차적 코어(235) 및 하드웨어 프리페처(HWP; 240)를 포함한다. 비순차적 코어(235)는 프로세서의 전체적인 성능을 향상시키기 위하여, 다수의 명령어들이 실행 시에 중첩되는 파이프라인 기술을 이용한다. HWP는, 결국 비순차적 코어 내의 실행 유닛이 필요할 것이라고 예측되는 DRAM 액세스를 프리페치한다.
FSB 제어기(205)는 FSB 스케쥴러(225) 및 DRAM 페이지 오픈 예측기(DRAM page open predictor; 250)를 포함한다. 일 실시예에서, FSB 스케쥴러(225)는 DRAM 페이지 오픈 예측기(250)에 결합되며, FSB 스케쥴러는 FSB 액세스 큐(230)에 결합된다. 대체 실시예는 FSB 액세스 큐(230)에 결합되는 FSB 스케쥴러 및 DRAM 페이지 오픈 예측기 모두를 포함할 수 있다. 일 실시예에서, FSB 스케쥴러(225)는 프로세서에 의해 처리되고 있는 애플리케이션 또는 그 애플리케이션의 일부에 기초하여 프로세서(210)로부터(즉, 비순차적 코어 및 HWP로부터) DRAM으로의 액세스를 스케쥴링한다. 예를 들어, 만약 처리되고 있는 애플리케이션이 지연을 허용한다면(latency tolerant), FSB 스케쥴러(225)는 메모리 버스 대역폭을 최대화하기 위하여 메모리 액세스를 스케쥴링한다. 대안적으로, 만약 처리되고 있는 애플리케이션이 지연을 허용하지 않는다면, FSB 스케쥴러(225)는 메모리 액세스 지연을 최소화도록 메모리 액세스를 스케쥴링한다. 다시 말해서, FSB 스케쥴러는 프로세서(210)에 의해 처리되고 있는 애플리케이션의 특성에 기초하여, 메모리 액세스를 FSB 액세스 큐(230)에 정렬한다. 예컨대, 분기 예측 부적중(branch misspredicton)을 해결하기 위하여 메모리 액세스가 필요한 경우에, 애플리케이션은 지연을 허용하지 않을 수 있으며, 그 결과, 분기가 잘못 예측된 경우에 코어에 의해 수행된 모험적인 작업은 메모리 액세스가 완료될 때가지 무용하게 되고, 프로세서는 프로그램 실행의 올바른 분기로부터 명령어를 가져온다. 애플리케이션이 "지연을 허용하는지" 또는 "지연을 허용하지 않는지" 여부를 결정하기 위해서, FSB 스케쥴러(225)는 HWP(240) 및 비순차적 코어(235)에 의해 생성된 메모리 액세스를 모니터링한다. FSB는 FSB 액세스 큐(230) 내의 엔트리를 모니터링함으로써, 이를 수행한다.
도 2b는 본 발명의 일 실시예에 따른, 메모리 액세스에 연관되는 파라미터를 나타낸다. 도 2b에 도시되는 바와 같이, FSB 액세스 큐(230) 내의 각각의 DRAM 액세스 (엔트리)는, 적어도 자신과 연관된 정보, 즉 a) 명령어의 개수, 예컨대 DRAM 액세스의 프로그램 명령어의 개수(260)(즉, DRAM 액세스가 생성된 이후에 경과된 시간); b) DRAM 액세스의 메모리 주소(262); c) FSB 큐에서의 DRAM 액세스의 위치를 나타내는 숫자(264)(큐 계층 구조에서, 보다 오래된 액세스는 최근의 명령어보다 상위에 배치됨); d) 액세스가 비순차적 코어에 의해 생성되었는지, 아니면 HWP에 의해 생성되었는지 여부를 나타내는 플래그(266); e) HWP에 의해 생성된 엔트리가 코어에 의해서도 생성/사용되었는지 여부를 나타내는 플래그(268); f) 액세스가 오픈 DRAM 페이지를 액세스하는 것으로 예측되는지 여부를 나타내는 플래그(270); 및 메모리 액세스가 메모리를 판독하기위한 것인지, 아니면 이에 기록하기 위한 것인지 여부를 나타내는 플래그(272)에 관한 정보를 갖는다.
본 발명의 일 실시예에서, 플래그(268)가 세팅되었는지 여부를 검사함으로써, 만약 FSB 스케쥴러에 의해 메모리 버스 상으로 스케쥴링된 메모리 액세스의 대부분이 HWP(240)에 의해 생성되었다고 결정된다면, 그리고 플래그(266)가 세팅되었는지 여부를 검사함으로써, 만약 이들 생성된 액세스의 대부분이 비순차적 코어(235)에 의해 이용된다고 결정된다면, 그 애플리케이션은 지연을 허용한다고 결정된다. 본 발명의 일 실시예에서, 지연을 허용하는 애플리케이션에 대해서는, FSB 스케쥴러(225)가 메모리 버스 대역폭을 최대화하기 위하여 FSB 큐(230) 내의 엔트리를 재순서화할 수 있다. 이는, FSB 스케쥴러가 동일한 DRAM 페이지로부터의 데이터를 액세스하는 것으로 예측되는 DRAM 액세스를 우선시킨다는 것을 의미한다. 도 2b의 실시예에 있어서, 최대 대역폭 모드에서는, FSB 스케쥴러가 다음의 큐 엔트리, 즉 1, 6, 7, 4, 0, 8, 9, 11, 2, 12, 5 및 3에 따라 메모리 액세스를 스케쥴링한다. 따라서, 오픈 DRAM 페이지의 액세스에 대하여, 비순차적 코어에 의한 액세스는 HWP에 의한 액세스에 앞서는 우선순위를 갖는다. 그러나, 최소 지연 모드에서는, FSB 스케쥴러가 다음의 큐 엔트리, 즉 5, 3, 1, 6, 7, 4, 0, 8, 9, 11, 2 및 12에 따라 메모리 액세스를 스케쥴링한다. 따라서, DRAM 페이지가 오픈되었는지 여부에 관계없이, 코어로부터의 보다 오래된 명령어는 HWP로부터의 보다 오래된 명령어에 의해 스케쥴링된다. 이에 대한 세부 사항은 이하의 도 3을 참조하여 제공된다.
오픈 DRAM 페이지로부터의 데이터를 액세스하는 것으로 예측되는 DRAM 액세스를 스케쥴링하기 위해서, FSB 스케쥴러(225)는 DRAM 페이지 오픈 예측기(250)를 이용한다. 일 실시예에서, DRAM 페이지 오픈 예측기는 액세스되는 DRAM 페이지들의 히스토리(history)를 추적하며, 액세스되는 DRAM 페이지들의 히스토리에 기초하여, DRAM 페이지 오픈 예측기(250)는 DRAM에서 오픈되는 것으로 예측되는 DRAM 페이지의 리스트를 생성한다. 예컨대, 만약 DRAM 페이지 12, 14, 16 및 18이 과거에 액세스되었고, 메모리 시스템이 4개의 DRAM 페이지가 동시에 오픈되는 것을 허용한다면, DRAM 페이지 오픈 예측기는, 페이지 12에의 새로운 액세스는 적중할 것이며, 페이지 13에의 새로운 액세스는 부적중할 것이라고 예측한다. 본 발명의 일 실시예에서, DRAM 페이지 오픈 예측기(250)는 적어도 매 메모리 버스 주기마다 DRAM에서 오픈될 것으로 예측되는 DRAM 페이지의 리스트를 생성하거나 갱신하며, 다른 실시예에서, DRAM 페이지 오픈 예측기는, 소수의(예컨대, 2 이상의) 메모리 버스 주기마다 DRAM에서 오픈될 것으로 예측되는 DRAM 페이지의 리스트를 생성하거나 갱신할 수 있다. 일 실시예에서, 메모리 제어기는 FSB를 통해 오픈 DRAM 페이지의 리스트를 DRAM 페이지 오픈 예측기로 전송할 수 있다. 다른 실시예에서, 메모리 제어기는 프로세서 코어 상에 있으며, 이에 따라, 메모리 제어기가 필요로 하는 오픈 DRAM 페이지의 리스트는 DRAM 페이지 오픈 예측기로서 이용될 수 있다. 다른 실시예에서, 메모리 제어기는 이전의 액세스 패턴에 기초하여, 어느 DRAM 페이지가 모험적으로 오픈될 수 있는지를 예측한다. 예를 들어, 메모리 제어기는, 오픈될 수 있는 장래의 DRAM 페이지를 예측하기 위하여, 이전에 오픈된 DRAM 페이지의 주소를 사용하는 알고리즘[예컨대, 곡선 적합(curve fit) 알고리즘]을 사용할 수 있다. DRAM 페이지 오픈 예측기는 (예컨대, 제조 시에 DRAM 페이지 오픈 예측기를 프로그래밍함으로써) 이러한 알고리즘을 인지하도록 생성될 수 있으며, 메모리 제어기로전송되는 액세스로부터, 메모리 제어기가 어느 페이지를 모험적으로 오픈할 것인지를 추측할 수 있다. 이로써, 메모리 제어기가 오픈될 것으로 예측되는 DRAM 페이지의 리스트를 DRAM 페이지 오픈 예측기로 전송할 필요성이 없어진다. 본 발명의 일 실시예에서, FSB 스케쥴러는 오픈될 것으로 예측되며, DRAM 페이지 히트 예측기에 의해 생성되는 DRAM 페이지의 리스트를 사용하여, 각각의 메모리 액세스에 대한 플래그(270)를 세팅한다.
도 3은 본 발명의 일 실시예에 따른 메모리 액세스의 흐름도를 도시한다. DRAM 페이지 오픈 예측기는 오픈 DRAM 페이지들을 액세스할 DRAM 액세스들 및 클로즈 DRAM 페이지들을 액세스할 액세스들을 예측할 수 있다. 이러한 정보(즉, DRAM 액세스가 오픈 페이지를 액세스할 것으로 예측되면)를 사용하여, FSB 스케쥴러는 FSB 액세스 큐 내의 엔트리들을 위하여 플래그(즉, 예측된 DRAM 페이지 오픈 플래그)(270)를 셋팅한다.
310에서, FSB 스케쥴러는 HWP가 비순차적 코어에 의해 이용되는 대부분의 DRAM 액세스들을 생성할 것인지 결정한다. 본 발명의 일 실시예에서, HWP가 비순차적 코어에 의해 이용되는 대부분의 DRAM 액세스를 생성할 것인지 결정하는 것은 플래그들(266 및 268)이 일정한 단위 시간 간격으로 세팅되는지를 결정하는 것을 의미한다. 본 발명의 다른 실시예에서, HWP가 비순차적 코어에 의해 이용되는 대부분의 DRAM 액세스들 생성할 것인지 결정하는 것은, 세팅된 플래그들(266 및 268) 모두를 갖는 액세스들의 비율이 일정한 임계값(threshold), 예컨대 프로그램 가능한 비율(programmable percentage)을 넘었는지를 판단하는 것을 의미한다. 본 발명의 일 실시예에서, 프로그램 가능한 비율은 FSB 제어기의 제조시에 프로그램된다. 대안적인 실시예에서, 프로그램 가능 비율은 실행되는 프로그램에 의해 자동적으로 또는 사용자에 의해 프로그램된다. 본 발명의 일 실시예에서, HWP가 DRAM 액세스를 생성하는 경우, 플래그(266)가 (예컨대, HWP에 의해) 세팅되어, HWP가 DRAM 액세스를 생성하였음을 나타낸다. 그 후에, 비순차적 코어 또한 동일한 DRAM 액세스를 생성하면, 플래그(268)가 (예컨대, 비순차적 코어에 의해) 세팅되어, 비순차적 코어가 HWP에 의해 생성된 액세스를 이용함을 나타낸다. 그러므로, FSB 큐 내의 DRAM 액세스를 위해 플래그들(266 및 268)을 모니터링함으로써, 대부분의 DRAM 액세스들에 대하여 모든 플래그들이 세팅되어 있다면 다음이 추론될 수 있다: 1) HWP가 요구되는 DRAM 액세스들을 생성하고 있고, 2) HWP는 사용되지 않는 DRAM 액세스들을 생성하지 않고 있다. 상기 조건 1) 및 2)에 기초하여, 메모리 버스가 포화되었음을 추론할 수 있다. 이러한 가정은, 비순차적 요청들이 동일한 DRAM 액세스를 생성할 정도로 FSB 큐에 진입하는 HWP 요청들이 길게 정체되었다는 사실에 기초한다.
상술한 조건이 만족되면, 애플리케이션은 지연을 허용하는 것(latency tolerant)으로 기술되고, 메모리 버스의 대역폭이 제한된 것으로 가정될 것이다. 처리중인 애플리케이션이 지연을 허용하고, 메모리 버스의 대역폭이 제한되었다고 FSB 스케쥴러가 판단하면, FSB 스케쥴러는 최대 버스 대역폭 모드(maximize bus bandwidth mode)로 전환된다. 그렇지 않으면, FSB 스케쥴러는 처리중인 애플리케이션이 지연에 내성이 없고 가정하여 최소 지연 모드(minimize latency mode)로 전환된다. 본 발명의 일 실시예에서, FSB 스케쥴러는 최대 버스 대역폭 모드에 존재하면, FSB 스케쥴러는 메모리 버스 대역폭을 최대화하기 위하여 FSB 액세스 큐 내의 엔트리들을 재정렬한다.
최소 지연 모드의 320에서, FSB 스케쥴러는 FSB 액세스를 스케쥴링하여, 비순차적 코어에서의 선행 명령어들(earlier instructions)에 의해 생성된 메모리 액세스가 후행 명령어들(later instructions)에 의해 생성된 액세스들에 앞서 DRAM을 액세스하도록 스케쥴링된다. 또한, FSB 스케쥴러는 비순차적 코어에 의해 생성된 DRAM 액세스들이 HWP에 의해 생성된 DRAM 액세스들에 앞서도록 스케쥴링한다. 최소 지연 모드에서, 시간적으로 선행인 엔트리들(즉, FSB 큐에서 가장 오래된 명령어들과 연관된 액세스들)을 스케쥴링하는 경우에, FSB 스케쥴러는, FSB 액세스 큐 내의 엔트리들이 동일한 DRAM 페이지 또는 상이한 DRAM 페이지들로부터 액세스되는지를 고려하지 않는다.
최대 대역폭 모드의 경우에, FSB 스케쥴러는 오픈 DRAM 페이지를 액세스하도록 예측된 가장 오래된 명령어(비순차적 코어로부터의 명령어들이 HWP로부터의 명령어들에 대하여 우선권을 가짐)와 연관된 엔트리를 위한 FSB 액세스 큐를 검색한다. 발명의 일 실시예에서, 이러한 검색을 실시하는 경우에 사용되는 2개의 파라미터가 존재한다. 제1 파라미터인 "서치 윈도우 크기(search window size)"는 오픈 DRAM 페이지를 액세스하는 엔트리에 대한 검색의 경우에 얼마나 많은 엔트리들이 검색될 것인지를 기술한다. (오래된 명령어 우선으로) 엔트리와 연관된 명령어의 순서에 의해 정렬된 엔트리들의 리스트로 시작하여, FSB 스케쥴러는 오픈 DRAM페이지를 액세스할 것으로 예측된 액세스를 위하여 이러한 리스트 상에서 "서치 윈도우 크기" 엔트리를 검색한다. "서치 윈도우 크기" 엔트리들 중의 어떠한 것도 오픈 DRAM 페이지를 액세스할 것으로 예측되지 않으면, 리스트 상의 제1 엔트리가 스케쥴링된다.
제2 파라미터인 "최대 바이패스 카운트(Max Bypass Count)"는, 첫번째 엔트리가 클로즈 DRAM 페이지를 액세스할 것으로 예측될지라도, 리스트 상의 첫번째 엔트리가 선택되기 전에 리스트 상의 첫번째 엔트리를 우회하도록 허용된 엔트리들의 수를 결정한다. 리스트 상의 첫번째 엔트리가 아닌 엔트리가 스케쥴링되면, "바이패스 카운터"가 증가된다. 리스트 상의 첫번째 엔트리가 선택되면, "바이패스 카운터"는 0으로 리셋된다. 바이패스 카운터의 값이 "최대 바이패스 카운트"의 값보다 크거나 같으면, 그것이 클로즈 DRAM 페이지를 액세스할 것으로 예측되더라도, 리스트 상의 첫번째 엔트리가 선택된다(바이패스 카운터는 0으로 리셋됨). 발명의 일 실시예에서, 최대 바이패스 카운트 및 서치 윈도우 크기는 예컨대, FSB 스케쥴러의 제조시에 프로그램될 수 있다.
최대 대역폭 모드 상태의 330에서, 바이패스 카운터가 바이패스 카운트보다 큰지 결정된다. 350에서, 바이패스 카운터가 바이패스 카운트보다 크면, FSB 내의 첫번째 엔트리가 DRAM 액세스를 위해 스케쥴링되고, 바이패스 카운터는 예컨대 0으로 리셋된다. 330에서, 바이패스 카운터의 값이 최대 바이패스 카운트보다 크지 않으면, 335에서, 서치 윈도우(서치 윈도우는 FSB 액세스 큐 내의 엔트리들이 서치 윈도우 크기와 동일한 것으로 정의됨)는 오픈 DRAM 페이지를 액세스할 것으로 예측될지 결정이 내려진다. 350에서, 서치 윈도우 내의 제1 엔트리가 오픈 DRAM 페이지를 액세스할 것으로 예측되면, FSB 스케쥴러는 DRAM 액세스를 위한 제1 엔트리를 스케쥴링하고, 바이패스 카운터는 리셋된다.
그러나, 340에서, 서치 윈도우 내의 첫번째 엔트리가 오픈 DRAM 페이지를 액세스할 것으로 예측되지 않으면, FSB 액세스 큐 내의 서치 윈도우의 엔트리 중의 임의의 것이 오픈 DRAM 페이지를 액세스할 것으로 예측되는지에 대한 결정이 내려진다. 350에서, 서치 윈도우 내의 엔트리들 중의 어떠한 것도 오픈 DRAM 페이지를 액세스할 것으로 예측되지 않으면, FSB 액세스 큐의 첫번째 엔트리가 스케쥴링된다. 그러나, 340에서, 서치 윈도우 내의 엔트리 중의 적어도 하나라도 오픈 DRAM 페이지를 액세스할 것으로 예측되면, 345에서, FSB 스케쥴러는 오픈 DRAM 페이지를 액세스할 것으로 예측된 서치 윈도우 내의 가장 오래된 엔트리를 스케쥴링하고, 바이패스 카운트를 증가시킨다.
발명의 일 실시예에서, FSB 스케쥴러가 최대 버스 대역폭 모드에서 DRAM 액세스를 스케쥴링하고, FSB 스케쥴러가 FSB 액세스 큐 상에 스케쥴링되고, HWP에 의해 생성되며, 비순차적 코어에 의해 요청된 액세스의 비율이 임계 비율보다 낮다면, FSB 스케쥴러는 DRAM 액세스를 스케쥴링하는 모드를 자동적으로 최대 버스 대역폭 모드에서 최소 지연 모드로 변경한다. 또한, FSB 스케쥴러가 최소 지연 모드에서 DRAM 액세스를 스케쥴링하고, FSB 액세스 큐 상에서 스케쥴링되고, HWP에 의해 생성되며, 비순차적 코어에 의해 요청된 액세스들의 비율이 임계 비율과 같거나 초과한다고 FSB 스케쥴러가 판단하면, FSB 스케쥴러는 DRAM 액세스들을 스케쥴링하는 모드를 자동적으로 최소 지연 모드로부터 최대 버스 대역폭 모드로 변경한다. 그러므로, 하나로부터 다른 것으로의 모드 변경은 애플리케이션 또는 처리중인 애플리케이션의 일부에 기초하여 동적으로[즉, 동작중에(on-the-fly)] 수행된다.
도 3의 실시예는 DRAM을 액세스하고 있지만, 대안적인 실시예들은 싱크로너스 DRAM 등과 같은 다른 타입의 메모리를 액세스할 수 있다. 기술된 실시예는 FSB 제어기를 개별 장치로서 설명하고 있지만, 다른 실시예들에서는, 프로세서 또는 심지어 메모리 제어기가 도 3과 관련하여 기술된 FSB 제어기의 기능을 통합할 수 있다.
도 4는 본 발명에서 동작되는 컴퓨터 시스템의 일 실시예를 나타낸다. 일반적으로, 도 4에 도시된 컴퓨터 시스템(400)은 버스(401)를 통하여 시스템 메모리(413)에 연결된 프로세싱 유닛(402; 예를 들어 마이크로 프로세서)을 포함한다. 시스템 메모리(413)는 ROM(404) 및 RAM(403)을 포함한다. ROM(404)은 BIOS(416)를 포함하고, RAM(403)은 운영체제(418), 어플리케이션 프로그램(420) 및 프로그램 데이터(424)를 포함한다. 프로세싱 유닛(402)은 FSB 제어기(422)를 통하여 시스템 메모리(413)와 통신하고, FSB 제어기(422)는 메모리 제어기(도시하지 않음)를 통하여 시스템 메모리(413)와 통신한다. FSB 제어기(422)는 도 3에서 도시된 흐름도에 따라 동작된다.
컴퓨터 시스템(400)은 버스(401)를 통하여 프로세싱 유닛(402)과 연결된 대용량 저장장치(407), 입력장치(406) 및 디스플레이 장치(405)를 포함한다. 대용량 저장장치(407)는 플로피 디스크, 자기, 광학, 자기-광학 등의 고정 디스크 또는 스트리밍 테이프 드라이브와 같은 영구적 데이터 저장장치를 나타낸다. 대용량 저장장치는 어플리케이션 프로그램(428) 및 운영체제(426)를 포함하는 프로그램 데이터를 저장한다. 프로세싱 유닛(402)은 범용 프로세서, 또는 인텔®사에 의하여 제조된 펜티엄® 계열 프로세서와 같은 마이크로 프로세서, 특수 목적 프로세서 또는 특별히 프로그래밍된 논리 장치 중 어느 것도 될 수 있다.
디스플레이 장치(405)는 컴퓨터 시스템(400)용 그래픽 출력을 제공한다. 키보드 또는 마우스와 같은 입력장치(406)는 프로세싱 유닛(402)과의 정보 및 명령 선택에 대한 통신을 위하여 버스(401)에 연결될 수 있다. 또한, 컴퓨터 시스템(400)에 연결된 전자장치(프린터, 다른 컴퓨터 등)로 데이터를 제어하고 전송하기 위하여 사용될 수 있는 하나 이상의 네트워크 장치(408)가 버스(401)를 통하여 프로세싱 유닛(402)에 연결된다. 네트워크 장치(408)는 또한 컴퓨터 시스템을 네트워크에 연결하고, 이더넷 장치, 폰 잭(phone jack) 및 위성 링크를 포함할 수도 있다.
따라서, 방법 및 장치가 개시되어, 메모리 액세스를 제어한다. 본 발명의 예시적 실시예에 대하여 어떻게 고려할 수 있는지에 대하여 설명하였지만, 당업자는 본 발명의 진정한 범위에서 벗어나지 않고 상기 실시예에 대하여 다양한 수정이 이루어질 수 있고, 그 등가물로 치환될 수 있다는 것을 이해할 것이다. 또한, 본 발명을 수정하여, 여기에 개시된 핵심적인 창의적 개념으로부터 벗어나지 않으면서 본 발명의 교훈을 특정 상황에 적용시킬 수도 있다. 따라서, 특정 실시예가 개시되었더라도 본 발명을 상기 실시예에 제한하려는 의도가 아니고, 본 발명은 첨부된청구항의 범위내에서 가능한 모든 실시예를 포함한다.

Claims (30)

  1. 메모리에 액세스하는 장치에 있어서,
    오픈 메모리 페이지(open memory page)를 예측하는 페이지 오픈 예측기(page open predictor);
    메모리 액세스 모드를 제1 모드로부터 제2 모드로 스위칭하고, 상기 페이지 오픈 예측기에 연결된 프론트 사이드 버스 버스 스케쥴러(front side bus scheduler); 및
    메모리 액세스를 포함하는, 프론트 사이드 버스 스케쥴러에 연결된 프론트 사이드 버스 액세스 큐(front side bus access queue)를 포함하는 메모리 액세스 장치.
  2. 제1항에 있어서, 비순차적 코어(out-of-order core) 및 하드웨어 프리페처(hardware prefetcher)를 포함하는, 프론트 사이드 버스 액세스 큐에 연결된 프로세서를 더 포함하는 메모리 액세스 장치.
  3. 제2항에 있어서, 프론트 사이드 버스 액세스 큐에 연결된 메모리 제어기를 더 포함하는 메모리 액세스 장치.
  4. 제1항에 있어서, 상기 페이지 오픈 예측기는 메모리의 페이지로부터 발생하도록 예측되는 메모리 액세스를 예측하는 메모리 액세스 장치.
  5. 제1항에 있어서, 어플리케이션이 프로세싱되는지 여부를 결정하는 상기 프론트 사이드 버스 스케쥴러는 지연 감내(latency tolerant) 또는 비 지연 감내(latency intolerant)인 메모리 액세스 장치.
  6. 제1항에 있어서, 상기 제1 모드는, 메모리 액세스 지연을 최소화하도록 메모리 액세스를 스케쥴링하는 프론트 사이드 버스 스케쥴러를 포함하고, 상기 제2 모드는 메모리 버스 대역폭을 최대화하도록 메모리 액세스를 스케쥴링하는 프론트 사이드 버스 스케쥴러를 포함하는 메모리 액세스 장치.
  7. 제6항에 있어서, 상기 메모리 액세스 지연 최소화 모드는 더 이전의 명령어와 관련된 메모리 액세스를 최초로 스케쥴링하는 프론트 사이드 버스 스케쥴러를 포함하는 메모리 액세스 장치.
  8. 제6항에 있어서, 상기 메모리 버스 대역폭 최대화 모드는 오픈 메모리 페이지로부터의 데이터를 액세스하도록 예측된 메모리 액세스를 스케쥴링하는 프론트 사이드 버스 스케쥴러를 포함하는 메모리 액세스 장치.
  9. 제1항에 있어서, 상기 프론트 사이드 버스 액세스 큐에서의 첫번째 엔트리스케쥴링에 선행하여, 오픈 메모리 페이지로부터의 데이터에 액세스 하도록 예측된 엔트리를 발견하기 위하여, 상기 프론트 사이드 버스 스케쥴러에서 상기 프론트 사이드 버스 액세스 큐에서의 소정 수의 엔트리를 탐색하는 메모리 액세스 장치.
  10. 제5항에 있어서, 상기 프론트 사이드 버스 스케쥴러는 자동적으로 제1 모드로부터 제2 모드 및 그 역으로 스위칭되는 메모리 액세스 장치.
  11. 제10항에 있어서, 만약 시간, 최종 n회의 액세스 및 시간과 최종 n회의 액세스의 가중치 조합(weighted combination)에 기초하여, 하드웨어 프리페처에 의하여 생성된 X 퍼센트 이상의 액세스에 대하여, 비순차적 코어가 하드웨어 프리페처에 의하여 생성된 Y 퍼센트 이상의 액세스도 요구하는 경우, 상기 프론트 사이드 버스 스케쥴러는 메모리 액세스 지연 최소화 모드로부터 메모리 버스 대역폭 최대화 모드로 스위칭되는 메모리 액세스 장치.
  12. 하드웨어 프리페처에 의해 생성된 메모리 액세스를 모니터링하는 단계;
    상기 하드웨어 프리페처로부터의 상기 메모리 액세스가 비순차적 코어에 의해 사용되는지 여부를 결정하는 단계; 및
    만약 상기 하드웨어 프리페처에 의해 생성된 상기 메모리 액세스의 어떤 비율이 상기 비순차적 코어에 의해 사용된다면, 메모리 액세스를 제1 모드로부터 제2 모드로 전환하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서, 상기 하드웨어 프리페처에 의해 생성되며, 상기 비순차적 코어에 의해 사용되는 상기 메모리 액세스의 상기 비율이 단위 시간내에 적어도 50 퍼센트인 방법.
  14. 제12항에 있어서, 상기 제1 모드는 메모리 액세스 지연(memory access latency)을 최소화하는 메모리 액세스를 포함하고, 상기 제2 모드는 메모리 버스 대역폭(memory bus bandwidth)을 최대화하는 메모리 액세스를 포함하는 방법.
  15. 제14항에 있어서, 메모리 액세스 지연을 최소화하는 상기 모드는, 프론트 사이드 버스 스케쥴러가 이전 명령에 의해 생성된 메모리 액세스를 먼저 스케쥴링하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상기 비순차적 코어로부터의 액세스는 상기 하드웨어 프리페처로부터의 액세스보다 먼저 스케쥴링되는 방법.
  17. 제14항에 있어서, 메모리 버스 대역폭을 최대화하는 상기 모드는, 프론트 사이드 버스 스케쥴러가 오픈 메모리 페이지로부터의 데이터를 액세스할 것으로 예측되는 메모리 액세스를 스케쥴링하는 단계를 포함하는 방법.
  18. 제17항에 있어서, 오픈 메모리 페이지로부터의 데이터를 액세스할 것으로 예측되는 엔트리를 찾기 위해, 상기 프론트 사이드 버스 액세스 큐에서 첫번째 엔트리를 스케쥴링 하기 전에, 상기 프론트 사이드 버스 스케쥴러가 상기 프론트 사이드 버스 액세스 큐에서 미리 지정된 수의 엔트리를 검색하는 단계를 더 포함하는 방법.
  19. 제12항에 있어서, 만약 단위 시간에 하드웨어 프리페처에 의해 생성되는 메모리 액세스의 상기 비율로부터, 단위 시간에 상기 하드웨어 프리페처에 의해 생성되는 상기 메모리 액세스의 50 퍼센트 이상이 상기 비순차적 코어에 의해 사용된다면, 메모리 액세스 지연을 최소화하는 모드로부터 메모리 버스 대역폭을 최대화하는 모드로 전환하는 단계를 더 포함하는 방법.
  20. 버스;
    상기 버스에 연결된 프로세서;
    상기 버스에 연결되고, 페이지 오픈 예측기, 및 프론트 사이드 버스 스케쥴러 - 상기 프론트 사이드 버스 스케쥴러는 메모리 액세스 모드를 제1 모드로부터 제2 모드로 전환하며, 상기 페이지 오픈 예측기에 연결됨- 를 포함하는 프론트 사이드 버스 제어기; 및
    상기 프론트 사이드 버스 스케쥴러에 연결되고, 메모리 액세스를 포함하는FSB 액세스 큐
    를 포함하는 컴퓨터 시스템.
  21. 제20항에 있어서, 상기 프로세서는 비순차적 코어 및 하드웨어 프리페처를 포함하는 컴퓨터 시스템.
  22. 제20항에 있어서, 상기 페이지 오픈 예측기는, 메모리에서 어떤 페이지로부터 발생할 수 있는 메모리 액세스를 예측하는 컴퓨터 시스템.
  23. 제20항에 있어서, 상기 프론트 사이드 버스 스케쥴러는 메모리 액세스 모드를 제1 모드로부터 제2 모드로 전환하는 컴퓨터 시스템.
  24. 제23항에 있어서, 상기 제1 모드는 메모리 액세스 지연을 최소화하는 메모리 액세스를 포함하고, 상기 제2 모드는 메모리 버스 대역폭을 최대화하는 메모리 액세스를 포함하는 컴퓨터 시스템.
  25. 제24항에 있어서, 메모리 액세스 지연을 최소화하는 상기 모드는, 상기 프론트 사이드 버스 스케쥴러가 이전 명령에 의해 생성된 메모리 액세스를 먼저 스케쥴링하는 것을 포함하는 컴퓨터 시스템.
  26. 제24항에 있어서, 메모리 버스 대역폭을 최대화하는 상기 모드는, 상기 프론트 사이드 버스 스케쥴러가 오픈 메모리 페이지로부터의 데이터를 액세스할 것으로 예측되는 메모리 액세스를 스케쥴링하는 것을 포함하는 컴퓨터 시스템.
  27. 제24항에 있어서, 오픈 메모리 페이지로부터의 데이터를 액세스할 것으로 예측되는 엔트리를 찾기 위해, 상기 프론트 사이드 버스 액세스 큐에서 첫번째 엔트리를 스케쥴링 하기 전에, 상기 프론트 사이드 버스 스케쥴러가 상기 프론트 사이드 버스 액세스 큐에서 미리 지정된 수의 엔트리를 검색하는 것을 더 포함하는 컴퓨터 시스템.
  28. 제22항에 있어서, 만약 단위 시간에 하드웨어 프리페처에 의해 생성되는 메모리 액세스의 상기 비율로부터, 단위 시간에 상기 하드웨어 프리페처에 의해 생성되는 상기 메모리 액세스의 50 퍼센트 이상이 상기 비순차적 코어에 의해 사용된다면, 상기 프론트 사이드 버스 스케쥴러가 메모리 액세스 지연을 최소화하는 모드로부터 메모리 버스 대역폭을 최대화하는 모드로 전환하는 컴퓨터 시스템.
  29. 제26항에 있어서, 상기 프론트 사이드 버스 스케쥴러가 메모리 액세스 지연을 최소화하는 모드로부터 메모리 버스 대역폭을 최대화하는 모드로 동적으로 전환하는 컴퓨터 시스템.
  30. 제22항에 있어서, 만약 단위 시간에 하드웨어 프리페처에 의해 생성되는 메모리 액세스의 상기 비율로부터, 단위 시간에 상기 하드웨어 프리페처에 의해 생성되는 상기 메모리 액세스의 50 퍼센트 이하가 상기 비순차적 코어에 의해 사용된다면, 상기 프론트 사이드 버스 스케쥴러가 메모리 버스 대역폭을 최대화하는 모드로부터 메모리 액세스 지연을 최소화하는 모드로 전환하는 컴퓨터 시스템.
KR1020047013081A 2002-02-21 2003-01-23 메모리 액세스를 제어하기 위한 방법 및 장치 KR100668001B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/079,967 US6799257B2 (en) 2002-02-21 2002-02-21 Method and apparatus to control memory accesses
US10/079,967 2002-02-21
PCT/US2003/002169 WO2003073300A1 (en) 2002-02-21 2003-01-23 Method and apparatus to control memory accesses

Publications (2)

Publication Number Publication Date
KR20040091069A true KR20040091069A (ko) 2004-10-27
KR100668001B1 KR100668001B1 (ko) 2007-01-15

Family

ID=27733116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047013081A KR100668001B1 (ko) 2002-02-21 2003-01-23 메모리 액세스를 제어하기 위한 방법 및 장치

Country Status (10)

Country Link
US (2) US6799257B2 (ko)
JP (1) JP4064924B2 (ko)
KR (1) KR100668001B1 (ko)
CN (1) CN1318990C (ko)
AU (1) AU2003209365A1 (ko)
DE (1) DE10392278T5 (ko)
GB (1) GB2402246B (ko)
HK (1) HK1068973A1 (ko)
TW (1) TWI289747B (ko)
WO (1) WO2003073300A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231055B1 (ko) * 2008-12-19 2013-02-07 한국전자통신연구원 프로세서의 메모리 제어신호를 이용한 디스크 시스템

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020762B2 (en) * 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
US7159084B1 (en) * 2003-12-30 2007-01-02 Altera Corporation Memory controller
US7457888B2 (en) * 2004-01-12 2008-11-25 Hewlett-Packard Development Company, L.P. Data delivery based on a select data delivery performance parameter in a data processing system
US7904906B2 (en) * 2004-11-23 2011-03-08 Stratus Technologies Bermuda Ltd. Tracking modified pages on a computer system
US20060112240A1 (en) * 2004-11-24 2006-05-25 Walker Robert M Priority scheme for executing commands in memories
US7426621B2 (en) 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
TW200739408A (en) * 2006-04-03 2007-10-16 Aopen Inc Computer system having analog and digital video output functions, computer mainframe, and video signal transmission device
KR100803005B1 (ko) 2006-10-26 2008-02-14 삼성전자주식회사 메모리 인터페이싱 방법과 장치
US20090019238A1 (en) * 2007-07-10 2009-01-15 Brian David Allison Memory Controller Read Queue Dynamic Optimization of Command Selection
US7761669B2 (en) * 2007-07-10 2010-07-20 International Business Machines Corporation Memory controller granular read queue dynamic optimization of command selection
JP5340658B2 (ja) * 2007-07-10 2013-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション コマンド選択のメモリ・コントローラ読み取りキュー動的最適化
US8131974B2 (en) * 2008-04-18 2012-03-06 International Business Machines Corporation Access speculation predictor implemented via idle command processing resources
US8122222B2 (en) * 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on a scope predictor
US8127106B2 (en) * 2008-04-18 2012-02-28 International Business Machines Corporation Access speculation predictor with predictions based on a domain indicator of a cache line
US8122223B2 (en) * 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on memory region prior requestor tag information
CN102073605B (zh) * 2010-12-27 2012-11-21 深圳市创新科信息技术有限公司 一种绕过Bio层访问磁盘驱动的存储接口的方法
US8930641B1 (en) 2011-06-14 2015-01-06 Altera Corporation Systems and methods for providing memory controllers with scheduler bypassing capabilities
JP5699854B2 (ja) 2011-08-15 2015-04-15 富士通株式会社 記憶制御システムおよび方法、置換方式および方法
US9535860B2 (en) 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
US9565139B2 (en) * 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
US9658793B2 (en) * 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US9563428B2 (en) * 2015-03-26 2017-02-07 International Business Machines Corporation Schedulers with load-store queue awareness
US9684461B1 (en) 2016-10-31 2017-06-20 International Business Machines Corporation Dynamically adjusting read data return sizes based on memory interface bus utilization
US9892066B1 (en) 2016-10-31 2018-02-13 International Business Machines Corporation Dynamically adjusting read data return sizes based on interconnect bus utilization
US11029879B2 (en) * 2018-01-29 2021-06-08 Samsung Electronics Co., Ltd Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel
US11042325B2 (en) * 2019-08-05 2021-06-22 International Business Machines Corporation Speculative bank activate dynamic random access memory (DRAM) scheduler

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5860106A (en) 1995-07-13 1999-01-12 Intel Corporation Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem
US6243768B1 (en) 1996-02-09 2001-06-05 Intel Corporation Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus
US5926828A (en) 1996-02-09 1999-07-20 Intel Corporation Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6212626B1 (en) 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
US6163838A (en) 1996-11-13 2000-12-19 Intel Corporation Computer processor with a replay system
US5966544A (en) 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture
US6148380A (en) 1997-01-02 2000-11-14 Intel Corporation Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus
US6088772A (en) 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
US6182177B1 (en) 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
US6484239B1 (en) * 1997-12-29 2002-11-19 Intel Corporation Prefetch queue
US6055650A (en) 1998-04-06 2000-04-25 Advanced Micro Devices, Inc. Processor configured to detect program phase changes and to adapt thereto
US6304953B1 (en) 1998-07-31 2001-10-16 Intel Corporation Computer processor with instruction-specific schedulers
US6094717A (en) 1998-07-31 2000-07-25 Intel Corp. Computer processor with a replay system having a plurality of checkers
US6212598B1 (en) 1998-11-30 2001-04-03 Micron Technology, Inc. Controlling a paging policy based on a requestor characteristic
JP2002063069A (ja) * 2000-08-21 2002-02-28 Hitachi Ltd メモリ制御装置、データ処理システム及び半導体装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231055B1 (ko) * 2008-12-19 2013-02-07 한국전자통신연구원 프로세서의 메모리 제어신호를 이용한 디스크 시스템

Also Published As

Publication number Publication date
HK1068973A1 (en) 2005-05-06
TW200307865A (en) 2003-12-16
GB0420866D0 (en) 2004-10-20
TWI289747B (en) 2007-11-11
US20040199731A1 (en) 2004-10-07
GB2402246A (en) 2004-12-01
AU2003209365A1 (en) 2003-09-09
CN1318990C (zh) 2007-05-30
KR100668001B1 (ko) 2007-01-15
CN1639699A (zh) 2005-07-13
JP2005518606A (ja) 2005-06-23
US20030159008A1 (en) 2003-08-21
JP4064924B2 (ja) 2008-03-19
US6799257B2 (en) 2004-09-28
WO2003073300A1 (en) 2003-09-04
DE10392278T5 (de) 2005-04-14
GB2402246B (en) 2005-10-19

Similar Documents

Publication Publication Date Title
KR100668001B1 (ko) 메모리 액세스를 제어하기 위한 방법 및 장치
US6272600B1 (en) Memory request reordering in a data processing system
EP3436930B1 (en) Providing load address predictions using address prediction tables based on load path history in processor-based systems
JP2986088B2 (ja) バッファ・メモリを動作させる方法及び関連する装置
US7856533B2 (en) Probabilistic method for performing memory prefetching
KR100610730B1 (ko) 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치
US6564313B1 (en) System and method for efficient instruction prefetching based on loop periods
US8291169B2 (en) Cache line use history based done bit modification to D-cache replacement scheme
CN109446112B (zh) 用于预取流量的改进控制的方法和系统
US7401002B2 (en) Method and apparatus for statistical compilation
KR20040054673A (ko) 적응성 우선순위 제어기를 가지는 데이터 처리 시스템
CN103034476A (zh) 用于在总线上发送存储器预取命令的方法和设备
JP5576030B2 (ja) データ応答を順序変更するためのシステム
US7761669B2 (en) Memory controller granular read queue dynamic optimization of command selection
JP4203022B2 (ja) ダイナミックランダムアクセスメモリページ管理実現を決定する方法及び装置
CN100407165C (zh) 数据处理系统中的预取控制
US7490210B2 (en) System and method for processor with predictive memory retrieval assist
JP5340658B2 (ja) コマンド選択のメモリ・コントローラ読み取りキュー動的最適化
US6968437B2 (en) Read priority caching system and method
JP2008015668A (ja) タスク管理装置
JPH08171491A (ja) ディスパッチされた制御転送命令状態に基づきより高速で命令を先取りするための方法及び装置

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 13