KR100234647B1 - 인스트럭션 프리페치 방법 및 데이터 처리 시스템 - Google Patents

인스트럭션 프리페치 방법 및 데이터 처리 시스템 Download PDF

Info

Publication number
KR100234647B1
KR100234647B1 KR1019960038617A KR19960038617A KR100234647B1 KR 100234647 B1 KR100234647 B1 KR 100234647B1 KR 1019960038617 A KR1019960038617 A KR 1019960038617A KR 19960038617 A KR19960038617 A KR 19960038617A KR 100234647 B1 KR100234647 B1 KR 100234647B1
Authority
KR
South Korea
Prior art keywords
cache
instruction
address
processor
cache line
Prior art date
Application number
KR1019960038617A
Other languages
English (en)
Other versions
KR970029141A (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 KR970029141A publication Critical patent/KR970029141A/ko
Application granted granted Critical
Publication of KR100234647B1 publication Critical patent/KR100234647B1/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
    • 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
    • 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
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

본 발명의 방법은 주 메모리로부터 프로세서내의 주 인스트럭션 캐시내로 캐시라인을 선택적으로 프리페치하여 요구된 캐시 라인이 프로세서와 연관된 주 캐시나 보조 캐시내에 존재하지 않으며 캐시 라인내의 요구된 인스트럭션과 연관된 미결정 분기가 있는 경우 추가적인 캐시 라인의 콜드 캐시 인스트럭션 프리페칭을 가능하게 한다.

Description

인스트럭션 프리페치 방법 및 데이터 처리 시스템
본 발명은 일반적으로 데이터 처리 시스템(data processing system)에 관한 것으로, 특히, 인스트럭션 캐시(a instruction cache)내로 인스터럭션을 프리페칭하는 시스템 및 방법에 관한 것이다.
오늘날의 마이크로프로세서 시스템에서, 프로세서 사이클 시간(processor cycle time)은 지속적인 기술 개발에 따라서 계속적으로 감소된다. 또한, 추론적인 실행(speculative execution), 심층 파이프라인, 보다 많은 실행 구성요소 등의 설계 기법은 처리 시스템의 성능을 지속적으로 개선시킨다. 개선된 성능은 메모리 인터페이스에 상당한 부담을 주는데, 그 이유는 프로세서가 메모리로부터 보다 신속히 데이터 및 인스트럭션을 요구하기 때문이다. 처리 시스템의 성능을 증진시기키 위해, 캐시 메모리 시스템이 종종 사용된다.
캐시 메모리를 활용하는 처리 시스템은 당해 기술분야에 잘 알려져 있다. 캐시 메모리는 매우 고속의 메모리 디바이스로서 현재의 프로그램 및 데이터를 최소량의 대기시간으로 프로세서("CPU")에 이용할 수 있도록 함으로써 데이터 처리 시스템의 속도를 증가시킨다. 대형 온-칩 캐시(L1 캐시)는 메모리 대기시간을 감소시키는데 도움을 주고, 이들은 대형 오프-칩 캐시(L2 캐시)에 의해 종종 증대된다.
캐시 메모리 시스템의 주요 잇점은 고속 캐시 메모리내에 가장 자주 액세스되는 인스트럭션 및 데이터를 유지함으로써, 전반적인 처리 시스템의 평균 메모리 액세스 시간은 캐시의 액세스 시간에 접근할 것이라는 점이다. 캐시 메모리가 주 메모리 크기의 극히 일부라 하더라도, 메모리 요구의 대부분은 프로그램의 "참조의 국부성(locality of reference)" 특성으로 인해 고속 캐시 메모리내에서 성공적으로 발견된다. 이 특성은 임의의 주어진 시간 간격동안의 메모리 참조는 메모리의 일부 국부화된 영역에 한정되려는 경향을 갖는다는 것을 나타낸다. 예를 들면, 연속적인 프로그램 인스트럭션은 전형적으로 연속적인 메모리 영역에 저장된다.
캐시의 기본적인 동작은 잘 알려져 있다. CPU가 메모리 액세스를 필요로 하는 경우, 캐시가 조사된다. 캐시내에서 워드가 발견되면, 고속 메모리로부터 워드가 판독된다. CPU에 의해 어드레스된 워드가 캐시에서 발견되지 않으면, 워드 판독을 위해 주 메모리가 액세스된다. 그 다음, 방금 액세스된 워드를 포함하는 워드의 블럭이 주 메모리로부터 캐시 메모리로 전송된다. 이러한 방법으로, 몇몇 데이터는 메모리에 대해 이후의 참조가 있을시 고속 캐시 메모리내에서 필요한 워드를 발견할 수 있도록 캐시로 전송된다.
컴퓨터 시스템의 평균 메모리 액세스 시간은 캐시를 사용함으로써 상당히 개선 될 수 있다. 캐시 메모리의 성능은 "적중률(hit ratio)"로 불리우는 양(quantity)에 의해 종종 측정된다. CPU가 메모리를 조회하여 캐시내의 워드를 발견하는 경우, CPU는 "적중(hit)"시켰다고 말한다. 워드가 캐시내에 있지 않고 주 메모리에 있는 경우, "적중실패(cache miss)"가 발생했다고 말한다. 적중률이 충분히 높아 CPU가 대부분의 시간에 주 메모리 대신에 캐시를 액세스할 수 있으면, 평균 액세스 시간은 고속 캐시 메모리의 액세스 시간에 근접한다. 프리페치 기법은 지연 시간을 감소시키기 위해 자주 메모리 데이터를 온칩 L1 캐시에 미리 공급하도록 구현된다. 이상적으로, 데이터 및 인스트럭션은 프로세서가 이를 요구할 경우 인스트럭션 및 데이터의 복사본이 항상 L1(주(primary)) 캐시내에 있도록 충분히 사전에 프리페치된다.
기존의 프리페칭 기법은 종종 인스트럭션 및/또는 데이터를 너무 이르게 프리 페치한다. 프리페칭한 후 프리페치된 인스트럭션 및/또는 데이터를 사용하지 않음으로써 메모리 액세스에 대한 시간을 증가시키며 아무런 잇점도 발생시키지 못함으로써, CPU의 효율을 떨어뜨린다.
이러한 보편적인 예는 캐시내에 미결정(unresolved) 분기 인스트럭션이 계속해서 있는 경우 처리 시스템이 인스트럭션을 추론적으로 프리페치할 때마다 발생한다. 그러면, 시스템은 프로그램 실행이 되지 않을 분기내에 속하는 인스트럭션을 프리페치할 수 있다. 그후, 메모리로부터 이들 인스트럭션은 인출하는데 소비된 시간은 낭비되고 불필요한 메모리 버스 트래픽을 야기한다.
새로운 프로그램 혹은 태스크가 디스패치되거나 호출되는 경우, 이들의 인스트럭션은 일반적으로 프로세서 캐시내에 위치되지 않는데, 그 이유는 캐시는 단지 최근에 실행된 인스트럭션만을 유지하기 때문이다(프로그램의 거대한 세그먼트가 캐시 시스템내로 호출되는 상황은 "콜드 캐시(cold cache)"로 불리운다). 따라서, "콜드 캐시"가 개시되는 경우, 인스트럭션의 프리페칭과 관련한 상기 논의된 기준을 고려하여 성능 개선을 위해 "콜드 캐시"를 초기화하는데 대한 페널티를 감소시키기 위한 시스템 및 방법이 필요하다.
본 발명은 콜드 인스트럭션 캐시의 대기시간을 감소시키기 위해, 캐시 시스템내에서 실행될 인스트럭션으로서 캐시 시스템내에 존재하지 않는 프로그램 인스트럭션의 존재를 검출하기 위한 장치를 제공하며, 본 발명에 의해 전술한 필요성이 충족된다. 이것은 메모리로 프리페칭하는 인스트럭션을 개시하기 위해 주 캐시와 보조 캐시 양자에 대해 연속적인 적중실패를 검출함으로써 성취된다. 본 발명의 실시예에서, 이러한 프리페칭은 "완료형(committed)" 인스트럭션에 의해 수행되며 "추론적인(speculative)" 분기 예측으로 인해 실행되는 인스트럭션에 의해서는 수행되지 않는다.
주 캐시 및 보조 캐시상에 요구된 캐시 라인과 관련하여 적중실패가 있으면 인스트럭션의 스트림화(streaming)가 개시되고, 캐시 적중실패를 야기하는 인스트럭션은 비추론적(완료형)이다. 요건이 충족되면, (이전 캐시 라인에 의해 주 캐시에 대한 사전 적중실패가 있으면)스트림 필터(a stream filter)는 적중실패 캐시 라인의 어드레스가 필터 엔트리내에서 예측되었는지를 알아보기 위해 체크된다. 스트림필터와 일치하면, 스트림이 할당되고, 1만큼 증가된 현재 라인과 2만큼 증가된 현재 라인의 어드레스가 프리페치 어드레스 레지스터내에 보관된다. 그 다음, 이들 두 어드레스에 대한 라인은 시스템 메모리로부터 프리페치 라인 버퍼로 인출된다. 프리페치될 라인이 프로세서의 보조 캐시내에 있으면, 스트림이 할당해제된다.
이하 설명되는 본 발명의 상세한 설명을 보다 쉽게 이해할 수 있도록 하기 위해 본 발명의 특징 및 기술적 장점을 다소 광범위하게 설명하였다. 본 발명의 추가적인 특징 및 장점은 이후 상세히 설명될 것이며, 이들 특징 및 장점들은 본 발명의 청구범위에 있어서 요지를 형성한다.
본 발명을 보다 완전히 이해할 수 있도록, 본 발명의 장점에 대해 첨부 도면과 함께 상세한 설명이 이루어질 것이다.
제1도는 본 발명에 따라 구성된 데이터 처리 시스템을 예시하는 도면.
제2도는 본 발명에 따른 프리페칭 동작의 흐름도를 예시하는 도면.
제3도는 제1도에 예시된 데이터 처리 시스템에서 이용되는 스트림 필터 및 스트림 버퍼를 예시하는 도면.
제4도는 제1도에 예시된 프로세서 칩의 내부 로직을 예시하는 도면.
제5도는 본 발명에 따른 인스트럭션 프리페칭 방안을 예시하는 흐름도.
〈도면의 주요부분에 대한 부호의 설명〉
102 : L2 캐시 103 : 주 저장장치
104 : 프로세서 106 : 데이터 캐시
107 : 인스트럭션 캐시
이하 설명에서, 본 발명을 완전히 이해할 수 있도록 특정 워드 혹은 바이트 길이 등과 같은 다수의 특정한 세부사항이 제시된다. 그러나, 본 발명이 이와 같은 특정한 세부사항없이 실행될 수도 있다는 것은 당업자에게 자명할 것이다. 다른 예에 있어서, 본 발명이 불필요한 세부사항으로 인해 불명확해지지 않도록 하기 위해 잘 알려진 회로가 블럭도 형태로 도시되어 있다. 대부분, 타이밍 고려사항 등과 관련한 세부사항은 이와 같은 상세가 본 발명을 완전히 이해하는데 필요없으며, 관련 기술분야에 속하는 통상의 지식을 가진 자가 지닌 통상적인 기술적 범위내에 속하기 때문에 생략되었다.
도시된 구성요소는 반드시 동일 축적으로 도시한 것은 아니며, 동일하거나 혹은 유사한 구성요소는 여러 도면에 걸쳐 동일한 참조부호로 표시된다.
도 1을 참조하면, 데이터 처리 시스템(100)이 예시되어 있으며, 이 시스템(100)은 시스템 메모리, 혹은 주 저장장치(103)에 결합되고, 프로세서 칩(101)에 결합된 보조(L2) 캐시(102)를 갖는 상기 프로세서 칩(101)을 포함한다. 프로세서 칩(101)은 데이터 프로세서(104), 프로세서 케시 제어기(PCC)(105), 도 4와 관련하여 보다 더 기술될 회로(108), 및 데이터 캐시(106)와 인스트럭션 캐시(107)를 포함할 수 있는 주(L1) 캐시(110)을 포함한다.
개개의 데이터 및 인스트럭션 캐시는 당해 기술분야에 잘 알려져 있다. 프로세서(104)는 주 저장 메모리(103)로부터 수신된 인스트럭션 및 데이터를 데이터 캐시(106)와 인스트러견 캐시(107) 양자내에 저장(chche)할 수 있다. 이후 본 명세서에서, 인스트럭션 캐시(107)는 I-캐시(107)로서 또한 지칭될 수 있다.
L1 I-캐시(107)는 당해 기술분야에 알려진 임의의 교체 정책(replacement policy)을 사용하여 주 저장장치(103)로부터 주로 사용되는 프로그램 인스트럭션의 사본을 유지한다. L2 캐시(102)는 보다 크며 L1 I-캐시(107) 보다 많은 데이터를 유지하고 통상적으로 시스템(100)에 대한 메모리 코히어런스 프로토콜(memorycoherency protocol)을 제어한다. 본 발명의 실시예에서, L1 I-캐시(107)내의 인스트럭션은 L2 캐시(102)내에 포함될 필요가 없다.
칩(101) 둘레에 도시된 라인은 칩 경계 및 기능적인 경계를 나타내지만, 본 발명의 범주를 제한하는 것을 의미하지는 않는다. PCC(105)는 메모리 서브시스템 (L1캐시(110), L2 캐시(102))으로의 인출 및 저장을 제어한다. PCC(105)는 인출 및 저장을 제어하는 것 이외에 그 밖의 다른 기능을 또한 수행할 수도 있다.
이어 도 3을 참조하면, 본 발명에서 이용되는 스트림 필터 및 스트림 버퍼가 예시되어 있다(도 4를 참조). 스트림 필터는 사용되지 않는 데이터에 대한 프리페칭의 발생을 감소시키기 위한 것이다. 이들 필터는 어드레스 및 방향 정보를 포함하는 히스토리 버퍼(history buffers)이다. 필터는 L1 캐시내에서 적중실패한 라인에 대해 다음 순차적 상위 캐시 라인의 어드레스를 포함한다. 다음 사위 캐시 라인에 대한 액세스가 이루어지면, 스트림 조건이 검출되고 스트림 버퍼가 할당된다. "X"에 대한 액세스가 있으면, 라인 어드레스 "X+1"로 필터가 기록될 것이다. "X+1"이 스트림 필터내에 계속해서 존재하는 동안 어드레스 "X+1"에 대한 후속적인 액세스가 있으면, "X+1"이 스트림으로서 할당된다.
스트림 버퍼는 잠재적인 캐시 데이터를 유지하는 프리페치 버퍼이다. 프로세서(104)내에서 실행되는 프로그램이 순차적인 데이터/인스트럭션의 스트림을 실행하면, 스트림 버퍼내로 추가적인 라인을 프리페칭하는 것이 바람직하다고 생각 할 수 있다. 따라서, 후속적인 캐시 적중실패가 있는 경우 스트림 버퍼내에서 데이터를 발견할 수 있다. 스트림 버퍼에 대해서도 적중실패한 L1 캐시 적중실패가 있으면 스트림 필터와 스트림 버퍼는 상호협조하고, 적중실패 어드레스는 스트림 필터내에 저장된 어드레스와 비교된다. 스트림 필터내에 적중이 있으면(데이터의 순차적인 라인에 대한 순차적인 액세스가 있었다는 것을 의미함), 다음 라인도 장차 필요하게 될 확률이 높다.
이어 도 4 및 도 5를 참조하면, 본 발명의 실시예가 예시되어 있다. 도 4에는 회로(108)가 더 예시되어 있으며, 도 1에 예시된 바와 같은 I-캐시(107)가 예시되어 있다. 도 2 및 도 5에 예시된 흐름도는 PCC(105) 혹은 칩(101)내의 다른 곳에 존재하는 상태 머신으로서 구현될 수도 있다.
프로세서는 프로세서(104)로부터 도착한 요구 인스트럭션(requested instruction)에 대한 어드레스로부터 시작되고, 비교기(402)에 의해 캐시 디렉토리(401)내의 캐시 엔트리와 비교된다. 요구되는 인스트럭션이 I-캐시(107)내에 존재 한다는 것을 의미하는 캐시 적중이 있으면, 캐시 적중 신호가 비교기(402)로부터 PCC(105)로 반송될 것이며, 인스트럭션의 요구 캐시 라인은 I-캐시(107)로부터 프로세서(104)로 전송될 것이다.
그러나, 요구 인스트럭션과 연관된 요구 캐시 라인이 I-캐시(107)내에 존재하지 않으면, 캐시 적중실패 신호(단계 201)가 비교기(402)로부터 PCC(105)로 전송될 것이다. 프로세서(104)가 I-캐시(107)로부터 캐시 라인을 요구하고 캐시 라인이 I-캐시(107)내에 없으면(즉, L1 적중실패가 발생), 상태 머신은 L2 캐시(102)내의 적중실패 캐시 라인을 탐색한다(단계 205). 캐시 라인이 L2 캐시(102)내에 존재하면, 상태 머신은 L2 캐시(102)로부터 L1 I-캐시(107)로 캐시 라인을 인출한다(단계 210). 캐시 라인이 L2 캐시(102)내에 없으면, 프로세스는 단계(501)로 이동하고, 이 단계에서 요구된 캐시 라인이 유효 스트림 어드레스(valid stream address)와 관련있는지 여부가 판단된다. 유효 스트림 어드레스는 스트림이 이미 이러한 캐시라인에 할당되었다는 것을 표시한다. 이러한 비교는 비교기(406)내로 수신된 어드레스와 필터 어드레스 버퍼(404)내에 저장된 캐시 라인 어드레스간에 이루어진다. 이들 어드레스가 일치하고 스트림이 유효한 경우, 그 결과로써 PCC(105)에 대한 스트림 적중 신호가 발생된다.
캐시 라인이 유효 스트림 어드레스와 관련이 없으면, 주 메모리(103)로부터 캐시 라인을 인출하기에 앞서 본 발명은 캐시 라인의 인출에 영향을 끼치는 모든 분기의 결정을 기다린다(단계 230 및 235), 따라서 주 메모리로부터 사용되지 않고 취소될 수도 있는 인스트럭션의 불필요한 프리페칭이 방지된다. 본 명세서에서 사용된 바와 같이, "취소"는 프로세서(104)가 예상 라인 M보다는 몇몇의 다른 라인, 예를 들면, 라인 X를 요구하는 것을 의미한다. 캐시 라인이 올바른 분기 경로내에 있을 것으로 판단되면, 캐시 라인은 주 메모리(103)로부터 L1 I-캐시(107) 및/혹은 L2 캐시(102)로 인출된다(단계 240).
캐시 라인이 L2 캐시(102)인지 여부에 관계없이, 상태 머신은 다음 상위 라인이 존재하는지 L1 I-캐시(107)를 테스트한다(예를 들면, 캐시 라인이 라인 M이면, 라인 M+1)(단계 215). 라인 M+1이 L1 I-ZOTL(107)내에 있으면, 더 이상의 조치가 필요없다(단계 241). 라인 M+1이 L1 I-캐시(107)내에 없으면, 상태 머신은 라인 M+1에 대해 L2 캐시(102)를 테스트하고, 라인 M+1이 발견되면, L2 캐시(102)로부터 L1 I-캐시(107)로 라인 M+1을 추론적으로 프리페치한다(단계 220 및 225).
상태 머신은 라인 M+1이 메모리(103)내 논리적인 경계(페이지 혹은 블럭)에 걸치는지 또한 확인한다. 라인 M은 통상적으로 실제 물리적인 어드레스로 변환되지만, 라인 M+1은 그렇지 않다. 따라서, 물리적인 메모리내 라인 M+1의 위치는 불명확하다. 라인 M+1이 개개의 논리적인 경계내에 있으면, 상태 머신은 L2 캐시(102)로부터 라인 M+1을 프리페치하지 않음으로써, L1과 L2간의 대역폭을 보존할 것이다(단계 241). 대신에, 프로세서(104)가 라인 M+1을 요구하는 경우, 프로세스는 단계(205)에서 재진입될 것이다.
라인 M+1이 L2 캐시(102)내에 없으면, 라인 M내 모든 분기가 결정되고 라인 M+1이 완료될 때까지 본 발명은 주 메모리(103)로부터 L1 I-캐시(107) 혹은 L2 캐시(102)로 라인 M+1을 프리페치하지 않을 것이다(단계 241).
본 발명은 L1 I-캐시(107) 적중실패뿐 아니라 L1 I-캐시(107) 적중시 L2 캐시(102)로부터 추론적으로 프리페치하기 위해 사용될 수도 있다는 것이 당업자에게 자명할 것이다.
단계(240)에서, 요구 캐시 라인은 주 메모리(103)로부터 I-캐시(107) 및/혹은 L2 캐시(102)로 전송된다. 이것은 선택기 회로(414)의 라인 데이터(Line Data)입력으로써 도 4에 표시되고, 이 입력은 I-캐시(107)내에 저장될 캐시 라인을 선택한다. 더우기, 이러한 캐시 라인에 대응하는 어드레스(Address)는 디렉토리(401)에 입력된다. 단계(503)에서, 이러한 캐시 라인과 스트립 필터 어드레스 버퍼(4040)내의 어드레스가 일치하는지 여부가 판단된다. 일치하면, 단계(506)에서 일치된 필터 어드레스가 이러한 어드레스에 대하여 할당된 유효 스트림을 표시하는지 여부가 판단된다. 유효 스트림을 표시한다면, 프로세스는 단계(504)로 복귀한다.
단계(504)에서, 캐시 라인 어드레스는 증가 회로(403)를 사용하여 1만큼 증가되고 필터 어드레스 버퍼(404)네에 저장된다. 그 다음, 프로세스는 단계(505)에서 종료하고 프로세서(104)로부터의 다음 요구를 기다릴 것이다.
단계(506)에서, 필터 어드레스 버퍼(404)와의 일치가 유효 스트림이 아니라는 것을 표시하면, 프로세스는 단계(507)로 진행하여 스트림을 할당한다. 이것은 캐시라인 어드레스를 회로(407)에 의해 1만큼 증가시키고, 증가된 어드레스를 프리페치 어드레스 버퍼 1(PADR1)(409)로 입력하며, 회로(408)에 의해 캐시 라인 어드레스를 2만큼 증가시키고, 증가된 어드레스를 프리페치 어드레스 버퍼 2(PADR2)(410)로 입력함으로써 성취된다.
그후, 단계(508)에서, 1만큼 증가된 캐시 라인과 2만큼 증가된 캐시 라인이 L2 캐시(102)내에 위치되는지 여부가 판단된다. L2 캐시(102)내에 위치되면, 스트림은 단계(509)에서 할당해제되고 프로세스는 단계(505)에 의해 끝난다. 그러나, 이들 2개의 캐시 라인 L2 캐시 라인(102)내에 위치되지 않으면, 단계(510)에서, 이들 라인은 주 저장장치(103)로부터 프리페치 버퍼 1(PBFR1)(411) 및 프리페치 버퍼 2(PBFR2)(412)로 각각 전송될 것이다. PBFR1(411) 및 PBFR2(412)는 시스템(100)내 어느 곳에도 위치될 수 있으며 스트림 버퍼로서 계속 이용될 수도 있다. 본질적으로, 이들 두 어드레스는 멀티플렉서(413)에 의해 요구된 캐시 라인의 어드레스를 따라 다중화(multiplexed)된 다음 주 저장장치(103)로 전송된다. 주 저장장치(103)는 단계(502)에서 표시된 바와 같이 요구 캐시 라인을 복귀시키고 또한 1만큼 증가된 캐시 라인을 복귀시킬 것이며, 복귀된 캐시 라인을 프리페치 버퍼 1(PBFR1)(411)내에 저장하고, 2만큼 증가된 캐시 라인을 프리페치 2(PBFR2)(412)내에 저장할 것이다.
단계(501)에서, 캐시 라인이 유효 스트림내에 표시되면 프로세스는 단계(511)로 진행할 것이며, 이 단계에서 이러한 캐시 라인은 PBFR1(411)로부터 I-캐시(107)및/혹은 L2 캐시(102)내로 전송된다. 이어, 단계(512)에서, PBFR2(412)의 엔트리는 PBFR1(411)로 전송될 것이다. 마찬가지로, PADR1(409)내에 유지된 어드레스는 1만큼 증가될 것이고, PADR2(410)내의 어드레스 역시 1만큼 증가될 것이다.
어어, 단계(513)에서, 2만큼 증가된 캐시 라인이 L2 캐시(102)내에 존재하는지 여부가 판단된다. L2 캐시(102)내에 존재하면, 단계(514)에서, 할당된 스트림을 무효화하기 위해 판단이 이루어진다. 그러나, 이러한 캐시 라인이 L2 캐시(102)내에 위치되지 않으면, 프로세스는 단계(515)로 진행하여 주 저장장치(103)로부터 PBFR2(412)내로 2만큼 증가된 캐시 라인을 로드할 것이다. 또한, 필터 어드레스 버퍼(404)내의 캐시 라인 어드레스는 1만큼 증가될 것이다. 그 다음, 프로세스는 단계(241)에서 종료할 것이다. 이후, 도 1-5에 대하여 전술한 프로세스의 동작의 예에 대한 논의가 제공될 것이다.
프로세서(104)는 캐시 라인 a내에 상주하는 인스트럭션에 의해 개시되는 새로운 코드 시퀸스의 실행을 시작한다. 이러한 예에 대해, 이러한 새로운 코드 시퀸스를 포함하는 어떠한 코드 라인도 L1 I-캐시(107) 혹은 L2 캐시(102) 내에 존재하지 않는다. 프로세서(104)가 라인 α를 요구하는 경우, 본 발명은 필터 적중이 없다는 것을 검출할 것익고, 따라서 α+1을 스트림 필터 어드레스 버퍼(404)내로 로드할 것이다. 이러한 라인은 I-캐시(107) 혹은 L2 캐시(102)내에 존재하지 않기 때문에 캐시 라인 α는 메모리(103)로부터 I-캐시(107)로 검색(retrieve)될 것이고, 인스트럭션이 완료된다.
그 다음, 프로세서(104)가 α+1을 요구하는 경우, 이러한 라인이 I-캐시(107) 혹은 L2 캐시(102)내에 또한 없기 때문에 또다른 적중실패가 야기된다. 결과적으로, α+2는 스트림 필터 어드레스 버퍼(404)내에 배치될 것이다. 그리고, 캐시 라인 α+2는 PBFR1(411)내로 검색될 것이고, α+3은 PBFR2(412)내로 검색될 것이다.
그후, 요구된 캐시 라인 α+2에 대해 I-캐시(107) 및 L2 캐시(102)에 관한 적중실패가 있는 경우, α+2는 PBFR1(411)로부터 I-캐시(107)내로 검색되고, α+3은 PBFR2(412)로부터 PBFR1(411)로 이동되며, α+4는 주 저장장치(103)로부터 PBFR2(412)내로 검색될 것이다. 또한, α+3은 필터 어드레스 버퍼(404)내로 입력될 것이다.
후속적으로로, 프로세서(104)에 의해 캐시 라인 β가 요구되고, 캐시 라인 β는 앞서 프리페치된 인스트럭션과 관련없는 새로운 인스트럭션의 세트를 참조하며, 프로세스는 단계(501)에서 시작된다.
본 발명은 새로운 코드 시퀀스로 인스트럭션을 프리페칭하는 독특한 기법을 제공한다(콜드 캐시 프리페치). 주목해야 할 것은 단일 라인 버퍼 PVFR1(411)에 대해 1만큼 증가된 증가 어드레스이 프리페칭만이 구현될 수 있다는 것이다. 또한, 대안적인 실시예가 한번에 하나를 초과하는 인스트럭션 스트림을 구현할 수 있다. 대안적으로, 인스트럭션 스트림 데이터 프리페칭이 인스트럭션 캐시(107)에 대하여 L2캐시(102)에 대해 이루어질 수도 있다. 혹은, 인스트럭션 스트림 데이터의 프리페칭이 L2 캐시(102)에 대해서만 이루어질 수도 있다.
또한, 대안적인 실시예는 프리페치된 인스트럭션 스트림 데이터를 I-캐시(107)내로 추론적으로 로드할 수 있다. 더우기, 대안적인 실시예는 인스트럭션 스트림로직과 데이터 스트림 로직을 공유할 수도 있다.
본 발명 및 본 발명의 잇점이 상세히 기술되었지만, 이것은 첨부된 청구범위에 의해 정의된 바와 같이 본 발명의 사상 및 범주를 벗어남이 없이 본 명세서에 각종 변화, 대체 및 변경이 이루어질 수 있는 것이 이해될 것이다.
본 발명의 인스트럭션 프리페치 방법 및 데이터 처리 시스템을 이용하여 주 메모리로부터 프로세서내의 주 인스트럭션 캐시내로 캐시 라인을 선택적으로 프리페치하여 요구된 캐시 라인이 프로세서와 연관된 주 캐시나 보조 캐시내에 존재하지 않으며 캐시 라인내의 요구된 인스트럭션과 연관된 미결정 분기가 있는 경우 추가적인 캐시 라인의 콜드 캐시 인스트럭션 프리페칭을 할 수 있다.

Claims (14)

  1. 메모리(a memory)로부터 데이터 처리 시스템(a data processing system)내의 프로세서(a processor)에 결합된 인스트럭션 캐시(an instruction cache)로 인스트럭션을 프리페치하기 위한 방법에 있어서, ① 상기 프로세서로부터 상기 인스트럭션 캐시로 인스트럭션에 대한 요구를 수신하는 단계와, ② 상기 인스트럭션이 상기 인스트럭션 캐시내에 없으면, 상기 인스트럭션이 완료된(commited) 경우 상기 메모리로부터 상기 인스트럭션 캐시로 상기 인스트럭션과 연관된 데이터 부분을 검색(retrieve)하는 단계와, ③ 증가된 데이터 부분을 참조하기 위해 상기 데이터 부분의 어드레스를 증가시키는 단계와, ④ 상기 증가된 데이터 부분이 상기 인스트럭션 캐시내에 있는지를 판단하는 단계와, ⑤ 상기 증가된 데이터 부분이 상기 인스트럭션 캐시내에 없으면, 상기 증가된 데이터 부분의 어드레스가 상기 프로세서에 결합된 스트림 필터내에 있는지를 판단하는 단계와, ⑥ 상기 증가된 데이터 부분의 상기 어드레스가 상기 스트림 필터내에 있으면, 상기 메모리로부터 프리페치될 데이터 부분의 스트림을 할당하는 단계를 포함하는 인스트럭션 프리페치 방법.
  2. 제1항에 있어서, 상기 할당 단계는, 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 1 버퍼내로 상기 증가된 데이터 부분을 검색하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  3. 제2항에 있어서, 상기 데이터 부분 및 상기 증가된 데이터 부분은 캐시 라인이고, 상기 증가된 데이터 부분의 상기 어드레슨 상기 데이터 부분의 상기 어드레스로부터 한 캐시라인만큼 증가되고, 상기 할당 단계는, ① 상기 데이터 부분의 상기 어드레스를 2 캐시 라인만큼 증가시키는 단계와, ② 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 2 버퍼내로 2 캐시 라인만큼 증가된 상기 어드레스를 갖는 데이터 부분을 검색하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  4. 제1항에 있어서, 상기 증가된 데이타 부분이 상기 인스트럭션 캐시내에 있는지를 판단하는 상기 단계는 상기 증가된 데이터 부분이 상기 프로세서에 결합된 보조 캐시내에 있는지를 판단하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  5. 제4항에 있어서, 상기 증가된 데이터 부분이 상기 프로세서에 결합된 상기 보조 캐시내에 있으면 상기 스트림을 할당해제(de-allocating)하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  6. 제3항에 있어서, ① 상기 스트림 필터내 상기 어드레스를 증가시키는 단계와,② 상기 스트림 필터내의 증가된 상기 어드레스에 대응하는 어드레스를 갖는 제 2 인스트럭션에 대해 상기 프로세서로부터 제 2 요구를 수신하는 단계와, ③ 상기 제 1 버퍼로부터 상기 인스트럭션 캐시로 상기 증가된 데이터 부분을 검색하는 단계와, ④ 상기 제 2 버퍼로부터 상기 제 1버퍼로 2 캐시 라인만큼 증가된 상기 어드레스를 갖는 상기 데이터 부분을 검색하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  7. 프로세서와, 상기 프로세서에 결합된 인스트럭션 캐시와, 상기 인스트럭션 캐시에 결합된 프리페치 버퍼를 포함하고, 상기 메모리 디바이스로부터 상기 인스트럭션 캐시로 인스트럭션을 프리페치할수 있는 제어 로직을 더 포함하여 메모리 디바이스와 결합될 수 있는 데이터 처리 시스템에 있어서, 상기 제어 로직은, ① 상기 프로세서로부터 상기 인스트럭션 캐시로 캐시 라인에 대한 요구를 수신할 수 있는 회로와, ② 상기 캐시 라인이 상기 인스트럭션 캐시내에 있는지를 판단할 수 있는 비교 회로와, ③ 상기 캐시 라인과 연관된 인스트럭션이 완료되면 상기 메모리로부터 상기 인스트럭션 캐시로 상기 캐시 라인을 검색할 수 잇는 회로와, ④ 증가된 캐시 라인을 참조하기 위해 상기 캐시 라인의 어드레스를 1만큼 증가시킬 수 있는 회로와, ⑤ 상기 증가된 캐시 라인이 상기 인스트럭션 캐시내에 있는지를 판달할 수 있는 비교 회로와, ⑥ 상기 증가된 캐시 라인이 상기 인스트럭션 캐시내에 없으면 상기 증가된 캐시 라인의 어드레스가 상기 프로세서에 결합된 스트림 필터내에 표시되는지를 판단할 수 있는 비교 회로와, ⑦ 상기 증가된 캐시 라인의 상기 어드레스가 상기 스트림 필터내에 있으면 상기 메모리로부터 프리페치될 캐시 라인의 스트림을 할당할 수 있는 회로를 더 포함하는 데이터 처리 시스템.
  8. 제7항에 있어서, 상기 할당 회로는 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 1 버퍼내로 상기 증가된 캐시 라인을 검색할 수 있는 회로를 더 포함하는 데이터 처리 시스템.
  9. 제8항에 있어서, 상기 할당 회로는, ① 상기 캐시 라인의 상기 어드레스를 2만큼 증가시킬 수 있는 회로와, ② 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 2 버퍼내로 2만큼 증가된 상기 어드레스를 갖는 캐시 라인을 검색할 수 있는 회로를 더 포함하는 데이터 처리 시스템.
  10. 제7항에 있어서, 상기 증가된 캐시 라인이 상기 인스트럭션 캐시내에 있는지를 판단할 수 있는 상기 비교 회로는 상기 증가된 캐시 라인이 상기 프로세서에 결합된 보조 캐시내에 있는지를 판단할 수 있는 회로를 더 포함하는 데이터 처리 시스템.
  11. 제10항에 있어서, 상기 증가된 캐시 라인이 상기 프로세서에 결합된 상기 보조 캐시내에 있으면 상기 스트림을 할당해제할 수 있는 회로를 더 포함하는 데이터 처리 시스템.
  12. 제7항에 있어서, 상기 프로세서가 상기 캐시 라인과 연관된 상기 인스트럭션에 무관한 인스트럭션을 요구하는 경우 상기 스트림을 무효화시킬 수 있는 회로를 더 포함하는 데이터처리 시스템.
  13. 프로세서, 상기 프로세서에 결합된 인스트럭션 캐시, 상기 인스트럭션 캐시에 결합된 프리페치 버퍼, 상기 프로세서에 결합된 메모리 디바이스, 상기 프로세서에 결합된 스트림 필터를 포함하는 데이터 처리 시스템에서, 상기 메모리 디바이스로부터 상기 인스트럭션 캐시로 인스트럭션을 프리페치하기 위한 방법으로서, ① 상기 프로세서로부터 상기 인스트럭션 캐시로 캐시 라인에 대한 요구를 수신하는 단계와, ② 상기 캐시 라인이 상기 인스트럭션 캐시내에 있는지를 판단하는 단계와, ③ 상기 캐시 라인과 연관된 인스트럭션이 완료되면 상기 메모리로부터 상기 인스트럭션 캐시로 상기 캐시 라인을 검색하는 단계와, ④ 증가된 캐시 라인을 참조하기 위해 상기 캐시 라인의 어드레스를 1만큼 증가시키는 단계와, ⑤ 상기 증가된 캐시 라인이 상기 인스트럭션 캐시내에 있는지를 판단하는 단계와, ⑥ 상기 증가된 캐시 라인이 상기 프로세서에 결합된 보조 캐시내에 있는지를 판단하는 단계와, ⑦ 상기 증가된 캐시 라인이 상기 인스트럭션 캐시 및 상기 보조 캐시내에 없으면 상기 증가된 캐시 라인의 어드레스가 상기 프로세서에 결합된 상기 스트림 필터내에 표시되는지를 판단하는 단계와, ⑧ 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 1 버퍼로 상기 증가된 캐시 라인을 검색하는 단계와, ⑨ 상기 캐시 라인의 상기 어드레스를 2 만큼 증가시키는 단계와, ⑩ 상기 메모리로부터 상기 인스트럭션 캐시에 결합된 제 2 버퍼로 2만큼 증가된 상기 어드레스를 갖는 캐시 라인을 검색하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
  14. 제13항에 있어서, 상기 메모리로부터 상기 인스트럭션 캐시로 상기 캐시 라인을 검색하는 상기 단계는 상기 메모리로부터 상기 보조 캐시로 상기 캐시 라인을 검색하는 단계를 더 포함하는 인스트럭션 프리페치 방법.
KR1019960038617A 1995-11-06 1996-09-06 인스트럭션 프리페치 방법 및 데이터 처리 시스템 KR100234647B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/554,202 1995-11-06
US08/554,202 US5809529A (en) 1995-08-23 1995-11-06 Prefetching of committed instructions from a memory to an instruction cache
US8/554,202 1995-11-06

Publications (2)

Publication Number Publication Date
KR970029141A KR970029141A (ko) 1997-06-26
KR100234647B1 true KR100234647B1 (ko) 1999-12-15

Family

ID=24212440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960038617A KR100234647B1 (ko) 1995-11-06 1996-09-06 인스트럭션 프리페치 방법 및 데이터 처리 시스템

Country Status (4)

Country Link
US (1) US5809529A (ko)
EP (1) EP0772123A3 (ko)
JP (1) JPH09160827A (ko)
KR (1) KR100234647B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110127193A (ko) * 2009-02-13 2011-11-24 마이크론 테크놀로지, 인크. 메모리 프리페치 시스템들 및 방법들

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195735B1 (en) * 1996-12-31 2001-02-27 Texas Instruments Incorporated Prefetch circuity for prefetching variable size data
US6138213A (en) * 1997-06-27 2000-10-24 Advanced Micro Devices, Inc. Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
JP3071752B2 (ja) 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
JP3439350B2 (ja) * 1998-10-02 2003-08-25 Necエレクトロニクス株式会社 キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置
US6393527B1 (en) 1998-12-18 2002-05-21 Ati International Srl Prefetch buffer with continue detect
US6449697B1 (en) 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
US6260115B1 (en) * 1999-05-13 2001-07-10 Storage Technology Corporation Sequential detection and prestaging methods for a disk storage subsystem
US6651162B1 (en) 1999-11-04 2003-11-18 International Business Machines Corporation Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache
US6446167B1 (en) * 1999-11-08 2002-09-03 International Business Machines Corporation Cache prefetching of L2 and L3
US6571318B1 (en) 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US7159108B2 (en) * 2002-10-04 2007-01-02 International Business Machines Corporation Anonymous peer-to-peer networking
US6976147B1 (en) 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US20060200631A1 (en) * 2005-03-02 2006-09-07 Mitsubishi Denki Kabushiki Kaisha Control circuit and control method
US8060701B2 (en) * 2006-12-08 2011-11-15 Qualcomm Incorporated Apparatus and methods for low-complexity instruction prefetch system
KR101051504B1 (ko) 2009-06-16 2011-07-22 인하대학교 산학협력단 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템
JP5444889B2 (ja) * 2009-06-30 2014-03-19 富士通株式会社 演算処理装置および演算処理装置の制御方法
FR3098622A1 (fr) * 2019-07-12 2021-01-15 Stmicroelectronics (Grenoble 2) Sas Procede de gestion d’instructions d’un programme contenues dans une memoire programme et circuit integre correspondant

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
DE69030648T2 (de) * 1990-01-02 1997-11-13 Motorola Inc Verfahren zum sequentiellen Vorabruf von 1-Wort-, 2-Wort oder 3-Wort-Befehlen
US5170476A (en) * 1990-01-22 1992-12-08 Motorola, Inc. Data processor having a deferred cache load
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
EP0457403B1 (en) * 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
SE469402B (sv) * 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
US5371870A (en) * 1992-04-24 1994-12-06 Digital Equipment Corporation Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5490113A (en) * 1994-06-15 1996-02-06 Digital Equipment Corporation Memory stream buffer
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110127193A (ko) * 2009-02-13 2011-11-24 마이크론 테크놀로지, 인크. 메모리 프리페치 시스템들 및 방법들
KR101865331B1 (ko) * 2009-02-13 2018-06-08 마이크론 테크놀로지, 인크. 메모리 프리페치 시스템들 및 방법들

Also Published As

Publication number Publication date
EP0772123A2 (en) 1997-05-07
US5809529A (en) 1998-09-15
EP0772123A3 (en) 1999-05-12
JPH09160827A (ja) 1997-06-20
KR970029141A (ko) 1997-06-26

Similar Documents

Publication Publication Date Title
KR100234647B1 (ko) 인스트럭션 프리페치 방법 및 데이터 처리 시스템
US5721864A (en) Prefetching instructions between caches
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6085291A (en) System and method for selectively controlling fetching and prefetching of data to a processor
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
EP0763795B1 (en) Stream prefetching buffer with stream filter
US8140768B2 (en) Jump starting prefetch streams across page boundaries
US7383391B2 (en) Prefetch mechanism based on page table attributes
US6105111A (en) Method and apparatus for providing a cache management technique
US5758119A (en) System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache
US8458408B2 (en) Cache directed sequential prefetch
US5740399A (en) Modified L1/L2 cache inclusion for aggressive prefetch
US5170476A (en) Data processor having a deferred cache load
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US8341382B2 (en) Memory accelerator buffer replacement method and system
US20100180081A1 (en) Adaptive Data Prefetch System and Method
US5367657A (en) Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
US20050198439A1 (en) Cache memory prefetcher
US5860150A (en) Instruction pre-fetching of a cache line within a processor
CN116521578A (zh) 一种提高指令缓存预取执行效率的芯片系统及方法
JPH0477344B2 (ko)
JP2001344152A (ja) キャッシュメモリ装置

Legal Events

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

Payment date: 20020715

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee