KR100240914B1 - 데이터 프리페치 방법 및 프로세싱 시스템 - Google Patents

데이터 프리페치 방법 및 프로세싱 시스템 Download PDF

Info

Publication number
KR100240914B1
KR100240914B1 KR1019960033714A KR19960033714A KR100240914B1 KR 100240914 B1 KR100240914 B1 KR 100240914B1 KR 1019960033714 A KR1019960033714 A KR 1019960033714A KR 19960033714 A KR19960033714 A KR 19960033714A KR 100240914 B1 KR100240914 B1 KR 100240914B1
Authority
KR
South Korea
Prior art keywords
cache
line
data
main memory
memory
Prior art date
Application number
KR1019960033714A
Other languages
English (en)
Other versions
KR970016969A (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 KR970016969A publication Critical patent/KR970016969A/ko
Application granted granted Critical
Publication of KR100240914B1 publication Critical patent/KR100240914B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 라인 M의 실행 동안 L2 캐시 혹은 주 메모리부터 L1 인스트럭션내로 라인 M+1을 선택적으로 프리페치하기 위한 방법에 관한 것이다. 미결정 분기가 대기 중인 라인 M 내에 존재하면, 라인 M+1은 추론적이고 주 메모리로부터가 아니라, L2 캐시로부터만 L1 인스트럭션 캐시 내로 프리페치될 수 있다. 대기 중인 라인 M 내의 미결정 분기는 라인 M+1이 주 메모리로부터 프리페치되기에 앞서 결정된다. 분기가 결정된 경우, 라인 M은 완료되고("확정적 추론") 주 메모리로부터 프리페치된다. 이러한 방법으로, 잠재적으로 낭비적인 프리페치가 실행되지 않고 주 메모리 대역폭이 보전된다.

Description

데이터 프리페치 방법 및 프로세싱 시스템
본 발명은 전반적으로 데이터 프로세싱 시스템(data processing system)에 관한 것으로, 특히 캐시(a cache) 내로 데이터를 추론적(speculatively)으로 프리페칭하는 방법에 관한 것이다.
오늘날의 마이크로프로세서 시스템에서, 프로세서 사이클 시간(processor cycle time)은 지속적인 기술 개발에 따라서 계속적으로 감소되고 있다. 또한, 추론적인 실행, 심층 파이프라인, 보다 많은 실행 소자 등의 설계 기법에 의해 프로세싱 시스템의 성능은 지속적으로 개선된다. 개선된 성능은 메모리 인터페이스에 상당한 부담을 주는데, 그 이유는 프로세서가 메모리로부터 보다 신속히 데이터 및 인스트럭션을 요구하기 때문이다. 프로세싱 시스템의 성능을 증진시키기 위해, 캐시 메모리 시스템이 종종 사용된다.
캐시 메모리를 활용하는 프로세싱 시스템은 당해 기술 분야에 잘 알려져 있다. 캐시 메모리는 매우 고속의 메모리 디바이스로서 현재의 프로그램 및 데이터를 최소량의 대기 시간으로 프로세서("CPU")가 이용할 수 있도록 함으로써 데이터 프로세싱 시스템의 속도를 증가시킨다. 대형 온칩 캐시(L1 캐시)는 메모리 대기시간을 감소시키는데 도움을 주고, 이들은 대형 오프칩 캐시(L2 캐시)에 의해 종종 증대된다.
캐시 케모리 시스템의 주요 잇점은 고속 캐시 메모리 내에 가장 자주 액세스 되는 인스트럭션 및 데이터를 유지함으로써, 전반적인 프로세싱 시스템의 평균 메모리 액세스 시간은 캐시의 액세스 시간에 접근할 것이라는 점이다. 캐시 메모리가 주 메모리 크기의 극히 일부라 하더라도, 메모리 요구의 대부분은 프로그램의 "참조의 국부성(locality of reference)"특성으로 인해 고속 캐시 메모리 내에서 성공적으로 발견된다. 이러한 특성은 임의의 주어진 시간 간격동안 메모리 참조가 메모리의 일부 국부화된 영역에 한정되려는 경향을 유지한다.
캐시의 기본적인 동작은 다음과 같다. CPU가 메모리 액세스를 필요로 하는 경우, 캐시가 조사된다. 캐시 내에서 워드가 발견되면, 고속 메모리로부터 워드가 판독된다. CPU에 의해 어드레스된 워드가 캐시에서 발견되지 않으면, 워드 판독을 위해 주 메모리가 액세스된다. 그 다음, 방금 액세스된 워드를 포함하는 워드의 블럭이 주 메모리로부터 캐시 메모리로 전송된다. 이러한 방법으로, 몇몇 데이터는 메모리에 대해 이후의 참조시 고속 캐시 메모리 내에서 필요한 워드를 발견할 수 있도록 캐시로 전송된다.
컴퓨터 시스템의 평균 메모리 액세스 시간은 캐시를 사용함으로써 상당히 개선될 수 있다. 캐시 메모리의 성능은 "히트율(hit ratio)"로 불리우는 양(quant ity)에 의해 종종 측정된다. CPU가 메모리를 조회하여 캐시 내의 워드를 발견하는 경우, CPU는 "히트(hit)"시켰다고 말한다. 워드가 캐시 내에서 발견되지 않는 경우, 워드는 주 메모리 내에 존재하며 워드는 "미쓰(miss)"로서 간주된다. 히트율이 충분히 높아 CPU가 대부분의 시간에 주 메모리 대신에 캐시를 액세스할 수 있으면, 평균 액세스 시간은 고속 캐시 메모리의 액세스 시간에 근접한다. 예를 들면, 100ns의 캐시 액세스 시간, 1000ns의 주 메모리 액세스 시간, 및 0.9의 히트율을 갖는 컴퓨터는 200ns의 평균 액세스 시간을 발생한다. 이것은 캐시 메모리가 없는 유사한 컴퓨터, 즉 액세스 시간이 1000ns인 컴퓨터에 비해 상당히 개선된 것이다.
프리페칭 기법은 대기 시간을 감소시키기 위해 미리 L1 캐시로 메모리 데이터 공급을 시도하도록 구현된다. 이상적으로, 프로그램은 프로세서가 메모리 데이터를 필요로 하는 경우 이 메모리 데이터의 사본이 항상 L1 캐시 내에 존재하도록 사전에 데이터 및 인스트럭션을 충분히 프리페치할 것이다.
인스트럭션 및/또는 데이터의 프리페칭은 당해 기술 분야에 잘 알려져 있다. 그러나, 기존의 프리페칭 기법은 종종 인스트럭션 및/또는 데이터를 너무 이르게 프리페치한다. 프리페칭한 후 프리페치된 인스트럭션 및/또는 데이터를 사용하지 않음으로써 메모리 액세스에 대한 시간을 증가시키지만 잇점을 발생하지는 못함으로써, CPU의 효율을 떨어뜨린다.
이러한 흔한 예는 프로세싱 시스템이 인스트럭션을 추론적으로 디스패치하고 캐시 내에 미결정 분기 인스트럭션이 여전히 있는 경우 발생한다. 그후, 시스템은 프로그램 실행이 이루어지지 않을 분기 내에 속하는 인스트럭션을 프리페치할 수 있다. 그러면, 메모리로부터 이들 인스트럭션을 인출하는데 소비된 시간은 낭비되고 불필요한 메모리 버스 트래픽을 야기한다.
따라서 불필요한 인스트럭션의 프리페칭으로 인해 L1 인스트럭션 캐시에 대한 인스트럭션 액세스의 대기 시간을 더욱 감소시키는 시스템 및 방법이 종래 기술에 필요하다.
본 발명의 목적은, 데이터 프로세싱 시스템의 L1 I-캐시(인스트럭션 캐시) 제어기 내에서 L2 캐시로부터만 추론적인 인스트럭션 캐시 라인을 프리페치하기 위한 장치를 제공하는데 있다. 본 발명의 저변에 깔린 개념은 주 메모리 버스상의 인스트럭션 프리페칭이 "진정한" 캐시 미쓰를 위해 예약되어야 한다는 것이다. "진정한" 캐시 미쓰란, 프로세서가 미쓰 라인에 대한 요구를 취소하도록 하는 미결정 분기가 대기 중인 인스트럭션중에 없기 때문에 프로세서에 의해 반드시 요구될 미쓰 데이타 라인을 말한다.
본 발명의 다른 목적은 추론적인 인스트럭션 프로페칭이 프로세서 버스 활용도에 악영향을 끼치지 않도록 최적으로 인스트럭션을 프리페치하는 방법을 개시하는 것이다.
본 발명은 대기 중인 인스트럭션내 모든 미결정 분기의 결정(resolution)에 앞서, 인스트럭션이 주 메모리가 아닌 L2 캐시로부터만 L1 캐시 내로 프로페치되는 프리페치 방법을 제공함으로써 추론적인 프리페칭에 내재하는 문제점을 극복한다.
이하 설명되는 본 발명의 상세한 설명을 보다 쉽게 이해할 수 있도록 하기 위해 본 발명의 특징 및 기술적 장점을 다소 광범위하게 설명하였다. 본 발명의 추가적인 특징 및 장점은 이후 상세히 설명될 것이며, 이들 특징 및 장점들은 본 발명의 청구 범위에 있어서 요지를 형성한다. 발명적 개념 및 개시된 특정한 실시예는 본 발명의 동일한 목적을 수행하기 위해 다른 구조를 수정하거나 혹은 설계하기 위한 기초로서 쉽게 이용될 수도 있다는 것이 당업자에게 자명할 것이다. 이러한 등가 구성은 첨부된 청구 범위에서 설명된 바와 같이 본 발명의 사상 및 범주를 벗어남이 없이 당업자에 의해 실현될 수 있다.
본 발명을 보다 완전히 이해할 수 있도록 하고, 본 발명의 장점에 대히 첨부도면과 함께 상세한 설명이 이루어질 것이다.
제1도는 본 발명에 따른 프로세싱 시스템의 고수준 블럭도.
제2도는 본 발명에 따른 프리페칭 동작의 흐름도.
* 도면의 주요부분에 대한 부호의 설명
115 : 주 저장장치 140 : 입/출력 장치
125 : 프리페치 버퍼 120 : L2 캐시
132 : 데이터 캐시 130 : 인스트럭션 캐시
135 : 프로세서 캐시 콘트롤러(PCC)
본 발명의 원리 및 이들의 잇점은 동일 부분에 대해 동일 번호로 표시된 제1도 및 제2도에 도시된 예시적인 실시예를 참조함으로써 가장 잘 이해될 수 있다.
도 1에는 프로세서(110), 내장형 L1 캐시(131), 외부 L2 캐시(120)를 포함하는 프로세싱 시스템이 도시되어 있다. 본 발명의 바람직한 실시예에서, L1 캐시(131)는 데이터를 저장하기 위한 데이터 캐시(132) 및 인스트럭션을 저장하기 위한 별도의 인스트럭션 캐시(L1 I-캐시)(130)를 포함한다. 별도의 데이터를 및 인스트럭션 캐시는 당해 기술분야에 잘 알려져 있다. 프로세서(110)는 프리페치 버퍼(125)를 통해 주 저장 메모리(115)로부터 수신된 인스트럭션 및 데이터를 L1 I-캐시(130)와 L2 캐시(120)내에 캐시할 수 있다.
L1 I-캐시(130)는 당해 기술 분야에 잘 알려진 임의의 교체 정책을 사용하여 주 저장 장치(115)로부터 자주 사용되는 프로그램 인스트럭션의 사본을 보유한다. L2 캐시(120)는 L1 I-캐시(130)보다 크고 보다 많은 데이터를 보유하며, 통상적으로 시스템(100)에 대한 메모리 코히어런시 프로토콜을 제어한다. 본 발명의 바람직한 실시예에서, L1 I-캐시(130) 내의 인스트럭션은 L2 캐시(120) 내에 포함될 필요가 없다.
프로세서(110)) 둘레의 점선은 칩 경계(chip boundary) 및 기능적인 경계(functional boundary)를 나타내지만 본 발명의 범위를 제한하는 것을 의미하지는 않는다. 프로세서 캐시 제어기(PCC)(135)는 메모리 서브시스템 인출을 제어하여 메모리 서브시스템(L1 캐시(131), L2 캐시(120))에 저장한다. PCC(135)는 인출 및 저장의 제어 외에도 다른 기능을 또한 수행할 수 있다.
제2도는 본 발명의 일 실시예에 따른 상태 머신(state machine)에 대한 흐름도(200)를 도시한다. 본 발명에 따른 상태 머신은 PCC(135) 내에 존재하거나 혹은 프로세서(110) 내 어느 곳에든 존재할 수 있다. 인스트럭션 캐시 라인은 주 메모리 (115)로부터 L1 I-캐시(130) 내로, 그리고 본 발명에 의해 L2 캐시(120) 내로 추론적으로 인출될 수 있다. 인출되고 있는 라인에 선행하는 라인 내의 인스트럭션이 하나 이상의 미결정 분기를 포함하는 경우 인출은 추론적이다.
그러나, 프로그램의 순서는 유지되어야 하며, 모든 선행하는 인스트럭션이 완료되고 중간에 끼어드는(intervening) 인스트럭션이 결정될 때까지 추측된 타켓 인스트럭션은 추론적인 상태로 남아 있어야 한다. 추론적인 인스트럭션은 선행하는 미결정 분기가 없는 경우 "확정적 추론(inevitable-speculative)" 인스트럭션 혹은 "완료"인스트럭션이 된다. 따라서, 확정적 추론 인스트럭션은 외부 인투럽트(예를 들면, 입/출력 포트(140)로부터)와 같은 인터럽션이 없는 경우 실행된다.
흐름도(200)의 단계(205-241)가 직접적은 주목을 끈다. 본 발명은 인스트럭션 캐시 내로 라인을 프리페치하기 위한 방법을 기술한다. 본 발명은 상태 머신을 사용하여 L1 I-캐시(130)에 대한 L1 미쓰의 발생을 감시한다. "L1 미쓰"는 L1 I-캐시(130)에 대한 액세스로서, L1 I-캐시(130) 내에서 타깃 라인을 찾아내지 못한 액세스를 말한다. 프로세서(110)가 L1 캐시(130)로부터 캐시 라인 M을 요구하고, 캐시 라인 M이 L1 캐시(130) 내에 없는 경우(즉, L1 미쓰가 발생), 상태 머신은 L2캐시(120)에서 미쓰 라인(라인 M)을 탐색한다(205). 라인 M이 L2 캐시(120)내에 존재하면, 상태 머신은 L2 캐시(120)로부터 L1 I-캐시(130)로 라인 M을 인출한다(210). 라인 M이 L2 캐시(120)에도 존재하지 않으면, 본 발명의 상태 머신은 주 메모리(115)로부터 라인 M을 인출하기 전에 대기 중인 라인 M-1 내의 모든 미결정 분기가 결정될 때까지 기다린다(230 및 235). 이로 인해, 사용되지 않고 취소될 수 있는 불필요한 인스트럭션이 주 메모리로부터 프리페치되는 것이 방지된다. 본 명세서에서 사용된 바와 같이, "취소됨"이란 프로세서가 예상 라인 M이 아닌, 라인 X와 같은 몇몇 다른 라인을 요구한다는 것을 의미한다. 라인 M-1내의 모든 분기가 결정되고 라인 M이 이제 완료되면, 라인 M은 주 메모리(115)로부터 L1 I-캐시(130) 및 L2 캐시(120)로 인출된다(240).
라인 M이 L2 캐시(120) 내에 존재하는지의 여부에 관계 없이, 상태 머신은 다음의 고차 라인, 즉 라인 M+1의 존재에 대해 L1 I-캐시(130)를 테스트한다(215). 라인 M+1이 L1 I-캐시(130) 내에 있으면, 더 이상의 조치가 필요하지 않다(241). 라인 M+1이 L1 I-캐시(130) 내에 없으면, 상태 머신은 라인 M+1에 대해 L2 캐시(120)를 테스트하고, 라인 M+1이 발견되면, L2 캐시(120)로부터 L1 I-캐시(130) 내로 라인 M+1을 프리페치한다(220 및 225).
상태 머신은 라인 M+1이 메모리 내의 논리적인 경계(페이지 혹은 블럭)를 넘는지를 또한 확인한다(222). 라인 M은 통상적으로 실제 물리적 어드레스로 변환되지만, 라인 M+1은 그렇지 못하다. 따라서, 물리적인 메모리 내 라인 M+1의 위치는 미확정적이다. 라인 M+1이 별도의 논리적인 경계 내에 있으면, 상태 머신은 L2 캐시로부터 라인 M+1을 프리페치하지 않으며, L1과 L2 사이의 대역폭을 보전한다(241). 대신에, 프로세서(110)가 라인 M+1을 요구하는 경우, 흐름도(200)는 단계(205)에 재진입될 것이다.
라인 M+1이 L2 캐시(120) 내에 없으면, 본 발명은 라인 M 내의 모든 분기가 결정되고 라인 M+1이 완료될 때까지, 주 메모리(115)로부터 L1 I-캐시(130) 혹은 L2 캐시(120) 내로 라인 M+1을 프리페치하지 않는다(241). 본 발명은, 라인 M 내에 미결정 분기가 없고, 프로세서가 라인 M+1에 대한 프리페치로써 주 메모리 버스를 점유하기 전에 라인 M+1에 대한 요구를 L1 I-캐시(130)에 발령하는 것을 확인하기 위해 기다린다. 라인 M+1에 대한 L1 요구는 결과적으로 L1 캐시 미쓰를 가져오고, 흐름도(200)는 단계(205)에서 재진입될 것이다. 이것은 사용되지 않고 취소될 수도 있는 인스트럭션이 프리페칭되는 것을 방지한다.
아래의 표는 앞의 사항을 도표로서 나타낸 것이다.
본 발명은 L1 I-캐시(130) 미쓰에 대해서 뿐 아니라 L1 I-캐시(130) L2 캐시(120)로부터 추론적으로 프리페치하기 위해 사용될 수 있다는 것이 당업자에게 자명할 것이다.
본 발명 및 본 발명의 잇점이 상세히 기술되었지만, 첨부된 청구 범위에 정의된 바와 같이 본 발명의 사상 및 범주를 벗어남이 없이 본 명세서에서 각종 변화, 대체 및 변경이 이루어질 수 있다는 것이 이해될 것이다.
본 발명은 L2 캐시로부터만 추론적인 인스트럭션 캐시 라인을 프리페치하기 위해 데이터 프로세싱 시스템의 L1 I-캐시(인스트럭션 캐시) 제어기 내에 장치를 제공하며, 인스트럭션에 대한 최적의 프리페칭 방법을 개시하여 추론적인 인스트럭션 스트림의 프리페칭이 프로세서 버스 이용에 악영향을 끼치지 않도록 할 수 있다.

Claims (15)

  1. 프로세서, 제1캐시, 제2캐시, 주 메모리를 포함하는 프로세싱 시스템에서, 상기 제1캐시 내로 데이터를 프리페치하는 방법에 이어서, ① 상기 제1캐시 내에서, 라인 M에 대한 액세스 이벤트를 검출하는 단계와, ② 상기 캐시 액세스 이벤트에 응답하여, 상기 라인 M에 대해 상기 제2캐시를 탐색하는 단계와, ③ 상기 라인 M이 상기 제2캐시 내에서 발견되면, 상기 라인 M을 상기 제2캐시로부터 상기 제1캐시로 전송하는 단계와, ④ 상기 라인 M이 상기 제2캐시 내에서 발견되지 않으면, 상기 주 메모리로부터 상기 라인 M을 인출하기 전에, 라인 M-1 내의 미결정 분기 인스트럭션(unresolved branch instruction)이 결정(resolve)될 때까지 기다리는 단계를 포함하는 데이터 프리페치 방법.
  2. 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 미쓰(cache miss)인 데이터 프리페치 방법.
  3. 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 히트(cache hit)인 데이터 프리페치 방법.
  4. 제1항에 있어서, 상기 라인 M+1이 상기 제2캐시 내에서 발견되지 않으면, 상기 주 메모리로부터 라인 M+1을 인출하기 전에, 상기 라인 M 내의 미결정 분기 인스트럭션이 결정될 때까지 기다리는 단계를 더 포함하는 데이터 프리페치 방법.
  5. 제1항에 있어서, 상기 라인 M+1이 상기 제2캐시 내에서 발견되면, 상기 라인 M+1이 상기 라인 M과는 별도의 메모리 논리 블럭에 존재하는지 여부를 판단하는 단계를 더 포함하는 데이터 프리페치 방법.
  6. 제5항에 있어서, 상기 라인 M+1이 상기 별도의 논리 블럭이 존재하지 않으면, 상기 라인 M+1을 상기 제2캐시로부터 상기 제1캐시로 전달하는 단계를 더 포함하는 데이터 프리페치 방법.
  7. 제5항에 있어서, 상기 라인 M+1이 상기 별도의 논리 블럭에 존재하면, 상기 라인 M+1을 상기 제2캐시로부터 상기 제1캐시로 전달하기 전에, 상기 라인 M 내의 미결정 분기 인스트럭션이 결정될 때까지 기다리는 단계를 더 포함하는 데이터 프리페치 방법.
  8. 프로세서, 제1캐시, 제2캐시, 주 메모리를 포함하는 프로세싱 시스템에서, 상기 제1캐시로 데이터를 프리페치하는 방법에 있어서, ① 상기 제1캐시 내에서, 라인 M에 대한 캐시 액세스 이벤트를 검출하는 단계와, ② 상기 캐시 액세스 이벤트에 응답하여, 라인 M+1에 대하여 상기 제2캐시를 탐색하는 단계와, ③ 상기 라인 M+1이 상기 제2캐시 내에서 발견되지 않으면, 상기 주 메모리로부터 상기 라인 M+1를 인출하기 이전에, 상기 라인 M 내의 미결정 분기 인스트럭션이 결정될 때까지 기다리는 단계와, ④ 상기 라인 M+1이 상기 제2캐시 내에서 발견되면, 상기 라인 M+1이 상기 라인 M과는 별도의 메모리 블럭 내에 존재하는지 판단하는 단계와, ⑤ 상기 라인 M+1이 상기 별도의 논리 블럭 내에 존재하지 않으면, 상기 라인 M+1을 상기 제2캐시로부터 상기 제1캐시로 전달하는 단계를 포함하는 데이터 프리페치 방법.
  9. 제8항에 있어서, 상기 캐시 액세스 이벤트는 캐시 미쓰인 데이터 프리페치 방법.
  10. 제8항에 있어서, 상기 캐시 액세스 이벤트는 캐시 히트인 데이터 프리페치 방법.
  11. 제8항에 있어서, 상기 라인 M+1이 상기 별도의 논리 블럭 내에 존재하면, 상기 라인 M+1을 상기 제2캐시로부터 상기 제1캐시로 전달하기 전에, 상기 라인 M 내의 미결정 분기 인스트럭션이 결정될 때까지 기다리는 단계를 더 포함하는 데이터 프리페치 방법.
  12. 프로세싱 시스템에 있어서, ① 프로세서와, ② 제1캐시와, ③ 제2캐시와, ④ 주 메모리와, ⑤ 상기 제1캐시 내에서, 제1데이터에 대한 캐시 액세스 이벤트를 검출하는 수단과, ⑥ 상기 캐시 액세스 이벤트에 응답하여, 상기 제1데이터에 대해 순서상 다음에 오는 제2데이터가 상기 제2캐시 내에 존재하는지를 판단하는 수단과, ⑦ 상기 제2데이터가 상기 제2캐시 내에 존재하지 않는다는 판단에 응답하여, 상기 주 메모리로부터 상기 제2데이터를 인출하기 전에, 상기 제1데이터내의 모든 미결정 분기 인스트럭션이 결정될 때까지 기다리는 수단과, ⑧ 상기 제2데이터가 상기 제2캐시 내에 존재한다는 판단에 응답하여, 상기 제2데이터가 상기 제1데이터와는 별도의 메모리 논리 블럭에 존재하는지 여부를 판단하는 수단과, ⑨ 상기 제2데이터가 상기 별도의 논리 블럭에 존재하지 않는다는 판단에 응답하여, 상기 제2데이터를 상기 제2캐시로부터 상기 제1캐시로 전달하는 수단을 포함하는 프로세싱 시스템.
  13. 제12항에 있어서, 상기 캐시 액세스 이벤트는 캐시 미쓰인 프로세싱 시스템.
  14. 제12항에 있어서, 상기 캐시 액세스 이벤트는 캐시 히트인 프로세싱 시스템.
  15. 제12항에 있어서, 상기 제2데이터가 상기 별도의 논리 블럭에 존재한다는 판단에 응답하여, 상기 제2데이터를 상기 제2캐시로부터 상기 제1캐시로 전달하기 전에 상기 제1데이터 내의 미결정 분기 인스트럭션이 결정될 때까지 기다리는 수단을 포함하는 프로세싱 시스템.
KR1019960033714A 1995-09-18 1996-08-14 데이터 프리페치 방법 및 프로세싱 시스템 KR100240914B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/531,948 US5721864A (en) 1995-09-18 1995-09-18 Prefetching instructions between caches
US08/531,948 1995-09-18
US8/531,948 1995-09-18

Publications (2)

Publication Number Publication Date
KR970016969A KR970016969A (ko) 1997-04-28
KR100240914B1 true KR100240914B1 (ko) 2000-01-15

Family

ID=24119741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960033714A KR100240914B1 (ko) 1995-09-18 1996-08-14 데이터 프리페치 방법 및 프로세싱 시스템

Country Status (4)

Country Link
US (1) US5721864A (ko)
EP (1) EP0763793A2 (ko)
JP (2) JP3549079B2 (ko)
KR (1) KR100240914B1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887151A (en) * 1997-07-10 1999-03-23 Emc Corporation Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
JP3071752B2 (ja) 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US6349368B1 (en) * 1999-06-24 2002-02-19 International Business Machines Corporation High performance mechanism to support O state horizontal cache-to-cache transfers
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
US6356982B1 (en) * 1999-06-24 2002-03-12 International Business Machines Corporation Dynamic mechanism to upgrade o state memory-consistent cache lines
US6249843B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Store instruction having horizontal memory hierarchy control bits
US6230242B1 (en) * 1999-08-05 2001-05-08 International Business Machines Corporation Store instruction having vertical memory hierarchy control bits
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
US6249911B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Optimizing compiler for generating store instructions having memory hierarchy control bits
US6314431B1 (en) * 1999-09-02 2001-11-06 Hewlett-Packard Company Method, system, and apparatus to improve instruction pre-fetching on computer systems
US6557095B1 (en) * 1999-12-27 2003-04-29 Intel Corporation Scheduling operations using a dependency matrix
US6643766B1 (en) * 2000-05-04 2003-11-04 Hewlett-Packard Development Company, L.P. Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
US7162589B2 (en) * 2002-12-16 2007-01-09 Newisys, Inc. Methods and apparatus for canceling a memory data fetch
US20050097304A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Pipeline recirculation for data misprediction in a fast-load data cache
US7383418B2 (en) * 2004-09-01 2008-06-03 Intel Corporation Method and apparatus for prefetching data to a lower level cache memory
US7587580B2 (en) * 2005-02-03 2009-09-08 Qualcomm Corporated Power efficient instruction prefetch mechanism
US20080162819A1 (en) * 2006-02-03 2008-07-03 Luick David A Design structure for self prefetching l2 cache mechanism for data lines
US20070186050A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for data lines
US8756404B2 (en) * 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline
US9122612B2 (en) * 2012-06-25 2015-09-01 Advanced Micro Devices, Inc. Eliminating fetch cancel for inclusive caches
US9058269B2 (en) 2012-06-25 2015-06-16 Advanced Micro Devices, Inc. Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10599577B2 (en) 2016-05-09 2020-03-24 Cavium, Llc Admission control for memory access requests
US11379372B1 (en) 2019-07-19 2022-07-05 Marvell Asia Pte, Ltd. Managing prefetch lookahead distance based on memory access latency

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories

Also Published As

Publication number Publication date
EP0763793A2 (en) 1997-03-19
JPH0981456A (ja) 1997-03-28
US5721864A (en) 1998-02-24
JP2003186741A (ja) 2003-07-04
KR970016969A (ko) 1997-04-28
JP3549079B2 (ja) 2004-08-04
JP3640355B2 (ja) 2005-04-20

Similar Documents

Publication Publication Date Title
KR100240914B1 (ko) 데이터 프리페치 방법 및 프로세싱 시스템
US8433853B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
KR101623514B1 (ko) Iommu에 의해 아키텍트되는 tlb 지원
US8156287B2 (en) Adaptive data prefetch
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
EP0762288B1 (en) Prefetching data cache
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
US7383391B2 (en) Prefetch mechanism based on page table attributes
US5778422A (en) Data processing system memory controller that selectively caches data associated with write requests
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
US8806177B2 (en) Prefetch engine based translation prefetching
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US20090132750A1 (en) Cache memory system
JPH09128294A (ja) 先取り命令を生成する方法とシステム
KR100234647B1 (ko) 인스트럭션 프리페치 방법 및 데이터 처리 시스템
US20070180158A1 (en) Method for command list ordering after multiple cache misses
TWI531913B (zh) 無需資料之所有權請求之預取
US5860150A (en) Instruction pre-fetching of a cache line within a processor
EP0488566A2 (en) Method and apparatus for fast page mode selection
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
US6219758B1 (en) False exception for cancelled delayed requests
GB2454808A (en) Cache which prefetches data at a second address when an access matches a first address

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee