KR19990022419A - 판독 부재 대기시간 감소 장치 및 방법 - Google Patents

판독 부재 대기시간 감소 장치 및 방법 Download PDF

Info

Publication number
KR19990022419A
KR19990022419A KR1019970708899A KR19970708899A KR19990022419A KR 19990022419 A KR19990022419 A KR 19990022419A KR 1019970708899 A KR1019970708899 A KR 1019970708899A KR 19970708899 A KR19970708899 A KR 19970708899A KR 19990022419 A KR19990022419 A KR 19990022419A
Authority
KR
South Korea
Prior art keywords
command
line
command line
instruction
buffer
Prior art date
Application number
KR1019970708899A
Other languages
English (en)
Other versions
KR100397026B1 (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 KR19990022419A publication Critical patent/KR19990022419A/ko
Application granted granted Critical
Publication of KR100397026B1 publication Critical patent/KR100397026B1/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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/3804Instruction prefetching for branches, e.g. hedging, branch folding

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

판독 부재 대기시간 감소 장치 및 방법
본 발명은 프로세서 코어(processor core)로 요구되는 명령을 공급하는 데 소요되는 시간을 줄이기 위한 장치 및 방법에 관한 것으로, 더 상세하게는, 명령이 프로세서 코어에 의하여 실제로 요청되기 이전에 프로세서 코어가 요구할 만한 명령을 캐시(cache)에 적재하는 장치 및 방법에 관한 것이다.
명령 및 데이터가 프로세서에 의해 요구되는 시간에 시스템의 프로세서에 의하여 요구되는 그러한 명령 및 데이터가 캐시 메모리에 저장되는 때에 캐시 메모리의 사용에 의하여 컴퓨터 시스템의 성능이 향상된다. 프로세서가 캐시 메모리에 저장되어 있지 않은 명령이나 데이터를 요청할 때마다, 요구되는 명령 또는 데이터를 프로세서와 캐시 메모리에 적재하기 위하여 외부 액세스 동작이 수행되어야 한다. 그러한 각각의 외부 액세스 때문에 컴퓨터 시스템의 효율이 감소된다.
이러한 관점에서, 정보가 요구되는 시각에 프로세서에 의하여 요구되는 정보가 캐시 메모리에 저장되어 있을 가능성을 높이기 위한 장치 및 방법을 제공하는 것이 바람직하다. 이에 부가하여, 현재의 명령 실행이 완료되었을 때 프로세서가 요구할 가능성이 가장 큰 명령을 캐시 메모리에 사전적재(preloading)하는 장치 및 방법을 제공하는 것이 바람직하다.
발명의요약
본 발명의 한 형태에 의하면, 프로세서 코어에 배열된 복수의 명령으로부터의 명령을 공급하는 데 소요되는 시간을 줄이기 위한 방법이 제공되어 있다. 프로세서 코어는 제 1 저장수단 및 제 2 저장수단을 구비하는 시스템내에 위치하고 있다. 제 1 저장수단은 버스(bus)에 의하여 제 2 저장수단에 효과적으로 연결되어 있다. 캐시 메모리와 같은 제 1 저장수단은 시스템 메모리와 같은 제 2 저장수단에 비해 작은 저장용량을 가진다. 전술한 방법은 프로세서 코어로 하여금 배열된 명령중에서 특정한 명령을 요청하게 하는 단계 및 그 특정한 명령이 제 1 저장수단에 있는 지의 여부를 결정하는 단계를 포함한다.
만약 특정 명령이 제 1 저장수단에 있지 않은 경우에는, 첫 번째 복수의 인접명령이 버스를 경유하여 제 2 저장수단으로부터 제 1 저장수단내로 이동된다. 첫 번째 복수의 인접명령이 특정 명령을 포함하고 있다. 그런 다음, 첫 번째 복수의 인접명령중 모든 명령이 순차적인지를 결정한다.
만약 첫 번째 복수의 인접명령이 모두 순차적인 경우에는, 두 번째 복수의 인접명령이 제 1 저장수단에 있는지 여부가 결정된다. 두 번째 복수의 인접명령이 첫 번째 복수의 인접명령과 연결되어 배열되는 명령을 포함한다. 만약 두 번째 복수의 인접명령이 제 1 저장수단에 저장되어 있지 않고, 첫 번째 복수의 인접명령 모두가 순차적인 경우에는, 두 번째 복수의 인접명령을 버스를 경유하여 제 2 저장수단으로부터 제 1 저장수단내로 복사하는 동작이 개시된다.
본 발명의 다른 형태에 의하면, 복수의 배열된 명령중 선택된 명령을 프로세서 코어로 공급하는데 소요되는 시간을 줄이는 장치가 제공된다. 상기 장치는 복수의 배열된 명령을 저장하기 위한 제 2 저장수단과, 제 2 저장수단과 효과적으로 연결된 버퍼(buffer)와 같은 임시저장수단과, 상기 임시저장수단과 효과적으로 연결되어 있는 명령 사전 디코딩 수단(instruction predecoding means)과, 명령 사전 디코딩수단 및 프로세서 코어와 효과적으로 연결되어 있는 제 1 저장수단 및 프로세서 코어와 제 1 저장수단과 효과적으로 연결되어 있는 제어수단을 포함한다. 제어수단은 선택된 명령중 첫 번째 명령을 위하여 프로세서 코어로부터 첫 번째 요청을 접수한다. 제어수단은 첫 번째 명령이 제 1 저장수단내에 있는지 여부를 결정한다.
첫 번째 명령이 제 1 저장수단에 있지 않은 경우에는, 제어수단이 명령 중 첫 번째 서브세트(subset)를 제 2 저장수단으로부터 임시 저장수단으로 이전시킨다. 첫 번째 서브세트는 첫 번째 명령을 포함하고 있다. 명령 사전 디코딩수단은 임시 저장수단으로부터 첫 번째 명령서브세트를 접수하고 첫 번째 명령 서브세트가 적어도 하나의 비순차 명령을 포함하는지 여부를 결정하여, 첫 번째 명령 서브세트를 제 1 저장수단으로 순방향시키고, 첫 번째 명령 서브세트가 적어도 하나의 비순차 명령을 포함하고 있는 지 여부를 나타내는 첫 번째 제어신호를 발생한다. 제어수단은 사전 디코딩수단으로부터 첫 번째 제어신호를 접수하고, 첫 번째 명령 서브세트가 적어도 하나의 비순차 명령을 포함하는 지를 나타내는 두 번째 제어신호를 발생한다.
제 1 저장수단은 명령 사전 디코딩수단으로부터 첫 번째 명령 서브세트를, 제어수단으로부터 제 2 제어신호를 접수하고, 첫 번째 명령 서브세트를 저장하며, 두 번째 제어신호에 반응하여 명령 서브세트가 적어도 하나의 비순차 명령을 포함하는 지 여부에 대한 표시부를 저장한다.
본 발명의 또 다른 형태에 의하면, 캐시 메모리와 제어기를 사용하여 실행 유니트의 프로세서에 명령을 공급하는 방법 및 장치를 제공한다. 제어기는 메모리로부터 프로세서에 의하여 요청된 첫 번째 명령을 포함하는 명령라인을 인출한다. 요청된 명령라인내의 모든 명령이 순차적이고, 그 다음 명령라인이 캐시메모리에 저장되어 있지 않은 경우에는, 제어기가 바로 다음 어드레스에서 시작하는 명령라인을 버퍼에 적재한다. 첫 번째 명령을 포함하는 명령라인이 인출되는 메모리는 장치 외부의 다른 메모리 중에서 캐시메모리일 수 있다. 명령이 캐시메모리에 저장되어 있는 지 여부를 결정하기 위하여, 택 배열(tag array)이 제공되며, 이러한 택 배열이 캐시에 저장된 명령라인의 어드레스 리스트를 저장한다. 캐시에 저장된 명령라인의 어드레스를 요청된 어드레스와 비교함으로써, 요청된 명령이 캐시내의 라인 중 하나에서 발견되는 지의 여부를 결정할 수 있다. 비교결과 요청된 명령이 캐시 메모리 내에 저장된 라인 내에 있다고 나타나는 경우인 캐시 히트(hit)의 경우에는, 제어기가 요청된 명령을 프로세서로 순방향시킨다. 요청된 명령이 있는 라인을 위한 단일 비트와 같은 저장된 표시부(indicia)가 라인내의 모든 명령이 순차적이라고 나타내고 다음 라인이 캐시에 저장되어 있지 않은 경우에는, 캐시 제어기가 한 라인의 보충을 요청하고 버퍼 내로 다음라인을 복사한다. 다음 명령을 액세스할 때, 요청된 명령이 버퍼내의 명령라인 내에서 발견되는 경우 버퍼내의 내용이 캐시로 복사되고, 명령이 실행 유니트로 순방향 된다. 이러한 경우, 캐시에 복사된 명령은 디코딩되고, 대응하는 엔트리(entry)가 택 배열로 추가된다. 또한, 표시부(indicator)가 라인내의 모든 명령이 순차적이라는 것을 나타내는 제 1 조건을 가지는 라인을 위하여 저장되고, 그러하지 않은 경우에는 제 2 조건을 가지는 라인을 위하여 저장된다. 요청된 다음 명령이 버퍼내에서 발견되지 않는 경우에는, 버퍼내의 내용이 폐기된다.
프로세서에 의하여 요청된 명령이 캐시에서 발견되지 않는 판독 부재의 경우에는, 캐시 제어기가 요청된 명령을 캐시 외부의 메모리로부터 버퍼내로 불러오고, 즉시 요청된 명령을 프로세서로 순방향시킨다. 동시에, 캐시 제어기가 바로 다음 명령라인의 어드레스를 택 배열내의 어드레스와 비교한다. 다음 라인이 캐시에 있지 아니하고 요청된 라인내의 모든 명령이 순차적인 경우에는, 캐시 제어기가 다음 라인을 버퍼내로 적재한다. 만약 다음 라인의 어드레스가 다음으로 요청된 명령내에서 발견되지 않는 경우에는, 버퍼의 내용이 폐기된다. 그렇지 않은 경우에는, 버퍼의 내용이 캐시내로 복사되고, 요청된 명령이 실행 유니트로 순방향된다. 명령이 캐시내에 저장되고 있는 때에는, 택 배열내에 새로운 엔트리가 만들어지고, 라인내의 모든 명령이 순차적이라면 표시부가 제 1 조건내에 저장되고, 그렇지 않은 경우에는 제 2 조건내에 저장된다.
본 발명에 의한 시스템은, 그의 추가적인 목적 및 장점과 함께, 첨부되는 도면과 관련된 아래의 설명을 참조하므로써, 가장 잘 이해될 수 있다.
도 1은 본 발명에 의한 컴퓨터 시스템을 도시한다.
도 2는 프로세서에 의하여 명령이 요청되고, 그 명령이 현재 캐시 메모리에 저장되지 않은 때 본 발명의 실시예를 따르는 컴퓨터 시스템 작동방법의 흐름조절도이다.
도 3은 프로세서에 의하여 명령이 요청되고, 그 명령이 현재 캐시 메모리에 저장되어 있는 때, 본 발명의 실시예를 따르는 컴퓨터 시스템 작동방법의 흐름조절도이다.
도 1에서는, 본 발명의 바람직한 실시예에 의한 컴퓨터 시스템이 도시되어 있다. 컴퓨터 시스템 10은 일반적으로 프로세서 코어 12, 캐시 장치 14, 버퍼 인터페이스 유니트 16 및 메모리 18을 포함한다.
프로세서 코어 12는 일반적으로 실행 유니트 또는 명령을 실행하는 프로세서 부분을 나타낸다. 프로세서 코어 12에 의하여 실행되는 명령은 메모리 18내의 복수의 기억장소(storage location) 20에 저장된다. 복수의 기억장소 20중 각 저장위치는 관련된 특정의 어드레스를 가진다. 복수의 저장위치 20은, 각각이 복수의 인접 저장위치를 포함하는 복수의 라인 21로 분할된다. 각 라인 21도 그와 관련된 어드레스를 가진다. 예를 들면, 주어진 라인 21을 위한 어드레스가 주어진 라인 21의 제 1 저장위치의 어드레스일 수 있다. 메모리 위치 20의 주어진 라인 21에 저장된 명령은 총괄하여 명령라인으로서 속하게 된다.
프로세서 코어 12가 어드레스와 제어 버스 24 및 명령 버스 26에 의하여 캐시 장치 14와 연결되어 있다. 캐시 장치 14는 버스 28에 의하여 메모리 18과 연결되고, 어드레스와 제어 버스 30에 의해서 인터페이스 유니트 16에 연결된다. 하지만, 인터페이스 유니트 16은 버스 28에 의하여 메모리 18과 연결된다.
캐시 장치 14는 일반적으로 캐시 제어기 32, 이중 포트 택 배열 24, 명령 캐시 36, 명령 사전 디코딩 유니트 38 및 캐시 라인 버퍼 40을 포함한다. 캐시 제어기 32는 어드레스와 제어 버스 24에 의하여 프로세서 코어 12과 연결되고, 어드레스와 제어버스 30에 의하여 인터페이스 유니트 16에 연결되며, 제어 라인 42에 의하여 명령 사전 디코딩 유니트 38에 연결된다.
단일 포트의 배열이 사용될 수도 있지만, 택 배열 34은 제 1 포트 45와 제 2 포트 47을 가지는 것이 바람직하다. 택 배열 34은 어드레스와 제어 버스 24에 의하여 제 2 포트 47를 통하여 프로세서 코어 12와 연결되고, 어드레스와 제어 버스 44에 의해 제 1 포트 45를 통하여 캐시 제어기 32로 연결되며, 신호 라인 46에 의하여 명령 캐시 36에 연결된다. 명령 캐시 36는 명령 버스 26에 의해 프로세서 코어 12에 연결되고, 버스 54에 의하여 명령 사전 디코딩 유니트 38에 연결된다. 캐시 라인 버퍼 40은 버스 48에 의하여 명령 사전 디코딩 유니트 38에 연결되고, 버스 28에 의하여 메모리 18에 연결된다. 캐시 라인 버퍼 40도 버스 50에 의하여 버스 인터페이스 유니트에 연결된다.
명령 캐시 36는 명령들을 보유하기 위한 복수의 기억장소 52를 포함한다. 그러나, 명령 캐시 36에는 메모리 18보다 더 적은 수의 기억장소가 있다. 결과적으로, 메모리 18에 포함된 명령중 비교적 작은 서브세트만이 어떠한 주어진 순간에 명령캐시 36에 저장될 수 있다. 택 배열 34은 현재 명령 캐시 36에 저장된 명령 라인에 관한 정보를 포함한다. 예를 들면, 택 상태 배열(tag status array)내에서, 택 배열 34은 현재 명령 캐시 36에 저장된 각 명령 라인의 어드레서를 저장한다. 각 명령 라인에 관해서 더 논의될 바와 같이, 택 배열 34은 대응하는 라인내의 모든 명령이 순차적인지 아닌지를 나타내는 대응 SEQ_LINE 비트도 저장한다.
프로세서 코어 12가 명령을 필요로 하는 경우, 프로세서 코어 12는 어드레스와 제어 버스 24를 경유하여 요청된 명령의 어드레스를 순방향시킴으로써, 명령(요청된 명령)을 요구하게 된다. 택 배열 34이 요청된 명령의 어드레스를 수신하고, 수신된 어드레스와 택 배열 34에 저장된 어드레스를 비교하므로써, 요청된 명령이 명령 캐시 36에 있는지 여부를 결정한다.
프로세서 코어 12에 요청된 명령을 공급하기 위하여 컴퓨터 시스템 10에 의하여 수행되는 다음 단계의 연속은, 요청된 명령이 현재 명령 캐시 36에 저장되어 있는 명령 라인에 포함되는지의 여부에 의하여 결정된다. 요청된 명령이 현재 명령 캐시 36에 저장되어 있는 명령 라인에서 발견되지 않는 경우 프로세서 코어 12에 요청된 명령을 공급하기 위한 단계의 순서가 도 2를 참고하여 이하에 설명된다. 요청된 명령이 현재 명령 캐시 36에 저장되어 있는 명령 라인에 있는 경우, 요청된 명령을 프로세서 코어 12에 공급하기 위한 단계의 순서가 도 3을 참고하여 이하에 설명된다.
이하의 논의에서, 요청된 명령을 포함하는 명령 라인은 라인 1이라 표시되고, 라인 1 바로 다음에 저장되는 명령 라인은 라인 2라고 나타내며, 요청된 명령 다음에 프로세서 코어 12에 의하여 요청되는 명령을 제 2 요청 명령이라 나타낸다.
도 2에서는, 프로세서 코어 12에 의하여 요청된 명령이 현재 명령 캐시 36에 존재하지 않는 경우의 컴퓨터 시스템10의 동작에 대한 흐름제어도가 도시되어 있다. 따라서, 단계 92에서 발생하는 캐시 탐색(cache lookup)이 단계 92에 도시된 바와 같이 판독 부재 상태를 야기한다. 블록 100에서, 제어기 32가 캐시 라인 버퍼 40에 라인 1을 채우는 동작을 개시한다. 요청된 명령을 포함하면서 라인 1에 포함된 명령이 이러한 동작동안 버스 28을 경유하여 라인 버퍼 40으로 보내진다. 특히, 캐시 제어기 32는 요청된 명령의 어드레스를 버스 인터페이스 유니트로 순방향시키고, 버스 인터페이스 유니트 16가 필요한 명령의 어드레스를 버스 28을 통하여 퍼뜨린다. 버스 28상의 어드레스에 반응하여, 메모리 18이 (요청된 명령을 포함하는) 라인 1로부터 버스 28을 경유하여 캐시 라인 버퍼 40으로 명령들을 순방향시키기 시작한다.
블록 102에서는, 라인 1에 포함된 명령이 캐시 라인 버퍼 40에 도달하고, 신호 라인 48을 경유하여 순방향 전송될 때, 명령 사전 디코딩 유니트 38가 그 라인 1에 포함된 명령을 처리하고, 요청된 명령을 버스 26을 경유하여 프로세서 코어 12와 같은 적당한 실행 유니트로 순방향시킨다. 단계 104에서는, 어떠한 명령이 비순차적인지의 여부에 대한 결정이 진행되는 동안, 명령 사전 디코딩 유니트 38가 각 명령을 검사하므로써 라인 1의 명령들을 처리한다. 명령의 실행결과 실행유니트가 주어진 명령 바로 다음 명령 이외의 명령을 요청한다면, 주어진 명령이 비순차적이다. 비순차적인 명령의 예로서는, 점프, 콜(call), 고-서브(gosub) 및 브랜치(branch)명령등이 있다. 명령 사전 디코딩 유니트 38는 예를 들면 명령의 조작부호(OP code)를 디코딩하는 것과 같이, 해당기술분야의 당업자에게 알려져 있는 방법에 의하여 명령이 순차적인 명령인지 비순차적인 명령인지를 결정한다.
블록 106에서는, 명령 사전 디코딩 유니트 38가 라인 1의 처리를 완료하고, 라인 42를 경유하여 라인 1의 어느 명령이 비순차적인지를 나타내는 신호를 순방향시킨다. 캐시 제어기 32는 라인 42으로 제어 신호를 수신하고, 라인 1이 어떠한 비순차적 명령을 포함하고 있는지에 대한 표시부를 택 배열 34에 저장하기 위하여, 어드레스와 제어 버스 44를 경유하여 신호를 보낸다. 각 명령 라인의 모든 순차적인 상태를 나타내기 위하여, 단계 108에 도시된 바와 같이 택 배열 34내의 비트(SEQ_LINE)가 사용되는 것이 바람직하다. 예를 들면, 주어진 명령 라인내의 모든 명령이 순차적인 경우에는, 주어진 명령 라인에 대응하는 택 배열 34내의 SEQ_LINE 비트가 논리 1 상태로 맞추어질 수 있다. 반대로, 주어진 명령 라인의 한 명령이라도 비순차적인 경우에는, 택 배열 34내의 대응하는 SEQ_LINE 비트가 논리 0으로 맞추어진다. 단계 107에서와 같이, 순차적인 비트가 논리 0로 맞추어지면, 단계 109에 도시된 바와 같이, 추가 동작이 발생하지 않고 시스템은 다은 액세스를 기다리게 된다.
블록 110, 112 및 114의 단계는 전술한 단계 100내지 109와 동시에 실행된다. 단계 110에서는, 캐시 제어기 32가 라인 1 바로 다음에 이어지는 명령 라인(즉, 라인 2)의 어드레스를 결정한다. 이는 예를 들면, 라인 1의 어드레스에 소정의 값을 더하므로써 달성될 수 있고, 그 소정 값은 라인 1의 길이(예를 들면, ADRline1+ 10hex)를 나타내고, 이러한 다음 라인을 제 2 택 상태 포트 47로 탐색(lookup)한다. 일단 라인 2의 어드레스가 결정되면, 캐시 제어기 32는 라인 2의 어드레스를 택 배열 34로 보낸다. 이는 단계 112에서, 라인 2가 명령 캐시 36내에 있는 지 여부를 결정하기 위한 택 배열 34 내에서의 탐색동작을 개시하게 된다. 라인 2가 명령 캐시 36내에 있으면, 블록 114에서와 같이 추가 작동이 필요하지 않다. 그와 반대로, 라인 2가 명령 캐시 36내에 있지 않은 경우에는, 명령 사전 디코딩 유니트 38에 의하여 라인 1이 완전하게 검사될 때까지 캐시 제어기 32는 대기한다(단계 116).
전술한 바와 같이, 명령 사전 디코딩 유니트 38에 의하여 라인 1의 한 명령이라도 비순차적이라고 결정되면, 단계 106, 107 및 109에서와 같이, 추가 작동은 필요하지 않게 된다. 그러나, 단계 106에서 라인 1내의 모든 명령이 순차적이라고 결정되고, 따라서 순차적 라인 비트가 단계 108로 설정되는 경우에는, 프로세서 코어 12에 의하여 요청되지 않더라도, 캐시 제어기 32가 다음 라인을 위한 라인 보충을 요청하는 블록 118로 처리가 속행된다. 유효한 순차적 라인 비트가 현재의 라인 보충이 완료되었다는 것을 나타내기 때문에, 이러한 작용은 즉시 수행된다. 그러므로, 단계 120에서는, 버스 28을 경유하여 라인 2로 캐시 라인 버퍼 40를 채우는 보충 작동을 개시하기 위하여, 캐시 제어기 32가 어드레스와 제어버스 30을 경유하여 라인 2의 어드레스를 버스 인터페이스 유니트 16로 보낸다. 라인 1이 이미 명령 캐시 36으로 순방향 전송되었기 때문에, 캐시 라인 버퍼 40는 즉시 채워진다. 그 다음으로, 캐시 제어기 32는 프로세서 코어 12로 부터의 두 번째 요청 명령의 요구를 기다리게 된다(다음 액세스).
단계 122에서, 캐시 제어기 32는 요청된 명령의 어드레스가 캐시 라인 버퍼 40의 라인 2내에 있는 지 여부를 결정한다. 두 번째 요청 명령이 라인 2내에 없는 경우에는, 방법은 블록 124로 속행된다. 블록 124에서는, 현재 캐시 라인 버퍼 40내에 있는 정보(라인 2)가 폐기된다. 캐시 제어기 32는 실제의 명령 어드레스로 캐시 라인을 채우는 동작을 수행하고, 명령을 적당한 실행 유니트 예를 들면, 프로세서 코어 12로 보낸다.
블록 122에서, 다음 요청 명령의 어드레스가 캐시 라인 버퍼 40의 내용(라인 2)을 히트(hit)한다고 캐시 제어기 32가 결정하게 되면, 단계 130에서에 도시된 바와 같이, 캐시 라인 버퍼내의 정보가 캐시 36내로 복사되고 즉시 프로세서 코어어 12와 같은 실행 유니트로 보내진다. 라인 2내의 모든 명령이 순차적인지를 결정하기 위하여 단계 104 내지 109에서와 유사한 처리가 제어기 32내에서 발생한다. 특히, 블록 132에서, 명령 사전 디코딩유니트 38가 진행중인 라인 2를 디코딩하고 라인 2가 어떤 비순차적인 명령을 포함하고 있는지의 여부를 나타내는 제어 신호를 라인 42을 경유하여 캐시 제어기 32로 보낸다. 블록 133에서는, 단계 134 및 135에 나타난 바와 같이, 라인 2가 어떠한 비순차적인 명령을 포함하는 지 여부를 근거로 하여 명령 캐시 36내의 라인 2에 대응하는 택 배열 34내에서 SEQ_LINE 비트를 설정하기 위하여, 캐시 제어기 32가 어드레스와 제어 버스 44를 통하여 제어 신호를 택 배열 34로 보낸다. 일단 라인 2가 명령 캐시 36에 저장되고, 라인 2에 대응하는 SEQ_LINE 비트가 택 배열 34내에서 적절하게 설정되면, 어떠한 추가 동작도 필요 없어지고 처리는 단계 90으로 복귀한다.
도 3에서는, 단계 90에서의 캐시 탐색(look-up)이, 요청된 명령을 포함하는 라인(라인 1)이 처음부터 명령 캐시 36내에 있게 되는 판독 히트 상태(read hit condition)로 귀착되는 경우에 있어서의 캐시 장치 14의 작동에 대한 흐름 제어도를 도시한다. 블록 150에서는, 라인 1에 대응하는 택 배열 34내의 SEQ_LINE 비트의 상태를 결정하기 위하여, 캐시 제어기 32가 제 1 포트 45를 통하여 택 배열 34을 액세스한다. 블록 152에서는, 캐시 제어기 32가 액세스된 SEQ_LINE 비트의 상태를 근거로 라인 1이 어떠한 비순차 명령을 포함하는 지를 결정한다. 라인 1이 적어도 하나의 비순차 명령을 포함하는 경우에는, 블록 154에 나타난 바와 같이, 추가적인 동작이 필요하지 않게 된다.
라인 1이 비순차적인 명령을 포함하지 않는 경우(즉, 모든 명령이 순차적인 경우)에는, 블록 158에서와 같이 ADRline1+ 1Ohex에서 다음 라인 즉, 라인 2가 현재 캐시 36내에 있는 지의 여부를 결정하기 위하여, 블록 156에서 캐시 제어기 32가 제 2 포트를 통하여 택 배열 34을 액세스한다. 다음 라인이 캐시 36내에 있는 경우, 블록 160에 도시된 바와 같이, 추가의 동작이 필요하지 않다.
다음 라인이 캐시 36내에 있지 않은 경우에는, 외부 메모리 18로부터 라인(라인 2)을 보충할 필요가 있다. 단계 162에서, 캐시 제어기 32가 라인 2의 어드레스를 버스 인터페이스 유니트 16으로 보내므로써, 다음 라인으로부터의 라인 보충을 즉시 요청한다. 버스 인터페이스 유니트 16는, 블록 164에 나타난바와 같이, 버스 28을 경유한 메모리 18로부터의 라인 2로 캐시 라인 버퍼(캐시 36이 아닌) 40을 적재하기 위한 동작을 개시한다. 프로세서 코어 12가 아직 라인 2로부터 어떠한 명령도 요청하지 않은 경우에도, 라인 2가 단계 162 및 164에서 보충된다.
라인 2가 즉시 캐시 라인 버퍼 40으로부터 명령 캐시 36로 복사되지는 않는다. 오히려, 단계 166에 도시된 바와 같이, 캐시 제어기 32는 프로세서 코어 12와 같은 실행 유니트가 다음 명령을 액세스하는 것을 기다린다. 단계 168에서의 다음 명령의 액세스에서, 캐시 제어기 32는 다음으로 요청된 명령 액세스의 어드레스가 캐시 라인 버퍼 40내에서 히트가 되는 지, 즉 다음 명령이 라인 2내에 있는 지의 여부를 결정한다.
라인 2가 다음 요청된 명령을 포함하고 있지 않으면, 방법은 캐시 라인 버퍼 40내의 정보가 폐기되는 단계 170로 속행된다. 처리는 그 다음으로 단계 90의 캐시 탐색으로 복귀한다.
단계 168에서, 다음으로 요청된 명령의 어드레스가 캐시 라인 버퍼 40내의 히트로 귀결된다고 결정되는 경우에는, 단계 170에서와 같이, 캐시 라인 버퍼 40내의 정부가 캐시 36로 복사되고, 실행 유니트로 보내어진다. 이 단계는 도 2와 관련하여 논의된 판독 부재 코어내의 단계 106-109 및 단계 132-135에 사용된 처리와 유사하게 순차 라인의 결정을 위한 단계에 선행된다. 단계 172에서, 라인내의 모든 명령이 순차적인지를 결정하기 위하여 명령이 진행중에 디코딩된다. 단계 174에서 모든 명령이 순차적인 것으로 밝혀지는 경우에는, 단계 176에서 라인 2를 위한 SEQ_LINE이 적당하게(즉, 논리 1상태) 설정된다. 단계 174에서 라인 2의 모든 명령이 순차적이지 않으면, 단계 178에서 라인 2를 위한 SEQ_LINE 비트가 적당하게(즉, 논리 0상태) 설정된다. 전술한 경우중 어느 한 경우에 있어서, 처리가 단계 90에서의 캐시 탐색으로 복귀된다.
반면에, 단계 168에서, 다음으로 요청된 명령의 어드레스가 캐시 라인 버퍼 40내의 히트로 귀결되지 않는다고 결정되는 경우에는, 단계 171에 도시되어 있는 바와 같이, 캐시 라인 버퍼 40내에 저장되어 있는 정보는 폐기되고, 처리가 종료된다.
전술한 설명을 간단하게 하기 위하여, 컴퓨터 시스템 10이 단일의 캐시 레벨을 가지고, 메모리 18이 직접 버스 28에 연결되어 있으며, 메모리 18가 버스 28를 경유하여 어드레스 방송(broadcast)에 반응하여 라인 보충 동작을 위한 명령을 공급한다고 가정한다. 그러나, 도 복잡한 컴퓨터 시스템에서는 캐시 라인 버퍼 40가 시스템 메모리 18에 직접 연결되지 않고, 명령이 시스템 메모리 18이외의 소스(source)에 의하여 공급될 것이다.
예를 들면, 다중 레벨 캐시 시스템에서는, 캐시 장치 14가 버스 28에 의해서 제 2 레벨(L2) 캐시 장치(미도시)로 연결될 것이다. 그러한 상황에서는, 제 2 레벨 캐시 장치가 버스 28상에 방송된 요청된 명령의 어드레스를 수신하고, 명령의 대응하는 라인을 버스 28를 경유하여 캐시 라인 버퍼 40으로 보낸다. 명령의 대응하는 라인이 현재 제 2 레벨 캐시에 저장되어 있지 않은 경우에는, 제 2레벨 캐시가 명령 라인이 있는 저장 구성요소로부터 명령 라인을 보충하게 된다.
또한, 컴퓨터 시스템 10내에서 버스 마스터(master)로 기능할 수 있는 다른 캐시 장착 프로세서가 있는 경우에는, 메모리 18는 요청된 명령 라인의 가장 최근에 변형된 버전(version)을 포함하지 않게 된다. 이러한 경우에는, 명령라인이 캐시 장착 저장 성분 또는 요청된 명령 라인의 가장 최근에 변형된 버전을 포함하는 장치에 의해서 버스 28를 경유하여 캐시 라인 버퍼 40로 공급된다.
위에서 상세하게 설명한 바와 같이, 프로세서 코어 12가 라인 2로부터의 명령을 곧 요청할 가능성이 클 때, 실행 유니트 내의 프로세서 코어 12에 의하여 라인 2로부터의 어떠한 명령도 요청되기 전에, 본 발명에 의한 캐시 장치 14는 라인 2를 캐시 버퍼 40내에 사전 적재(preloading)한다. 캐시 장치 14는 라인 1의 모든 명령이 순차적일 때 프로세서 코어 12가 라인 2로부터 곧 명령을 요청할 것이라고 결정한다. 결과적으로, 명령 캐시 36가 소정 명령이 프로세서 코어에 의해 요청된 시각에 명령캐시 36가 상기 소정 명령을 포함하고 있을 가능성이 현격하게 증가한다. 비순차적인 명령이 적을수록, 본 발명에 의한 성능 향상은 증가하게 된다. 또한, 들어오는 명령의 흐름이 비순차적인 명령을 포함할 때에도 성능에 있어서의 불리한 점은 없다.
다음에 요청된 명령이 라인 2에 존재하지 않아서 라인 2가 오직 폐기되기 위하여 캐시 라인 버퍼 40에 적재되는 때에는, 버스 28에 약간의 손해가 발생한다. 그러나, 다음에 요청된 명령이 라인 2에 존재하지 않는다고 결정됨과 동시에 라인 2를 캐시 라인 버퍼 40로 순방향 시키는 것을 중지하므로써, 이러한 작은 손해가 최소화될 수 있다. 컴퓨터 시스템 10은 다중 레벨의 캐시 시스템일 수 있다. 예를 들면, 제 2 레벨 2(L2) 캐시 메모리가 캐시 장치 14와 버스 28 사이에 배치된다. 이러한 상태에서는, 캐시장치 14, 프로세서 코어 12, 버스 인터페이스 유니트 16 및 레벨 2 캐시(미도시)를 위한 제어기 모두가 동일한 반도체칩상에 상주할 수 있다. 캐시 장치 14 및 레벨 2 캐시를 위한 캐시 제어기 사이의 버스상의 작은 폭 증가는 컴퓨터 시스템 10의 성능과 효율에 최소한의 영향만을 주게된다.
전형적인 프로세서의 파이프라인 내에서, 첫 번째 명령을 위한 명령 인출 동작은 첫 번째 명령이 실행되기 전에 적어도 두 개의 클록 사이클(clock cycle)에서 완료된다. 여기에서 설명된 본 발명에 의한 처리를 실행하는 장치는, 첫 번째 명령의 인출이 완료된 직후에 다음으로 요청된 명령을 포함하고 있을 만한 명령 라인을 인출하기 시작한다. 따라서, 인출된 라인이 다음 요청 명령을 포함하고 있을 때에는, 다음의 요청 명령을 위한 명령 인출이 첫 번째 명령의 실행과 동시에 수행된다. 다음 명령의 인출을 시작하기 위하여 첫 번째 명령의 실행 결과를 기다릴 필요가 없으므로, 시스템의 전반적인 캐시 라인 부재 대기시간(즉, 명령을 요청하고 그 명령이 공급될 때까지의 대기 시간)이 획기적으로 감소된다.
상세한 도면과 주어진 예시들은 본 발명의 바람직한 실시예를 설명하고 있고, 실례를 위하여 제공되었으며, 본 발명의 장치는 개시된 상세한 설명과 상태에 한정되지 않으며, 아래의 청구범위에 의하여 정의되는 본 발명의 범위에서 벗어남이 없이 다양한 변용이 가능할 것이다.

Claims (18)

  1. 실행 유니트의 프로세서에 명령을 공급하는 장치로서,
    캐시 메모리; 및
    상기 프로세서에 의하여 요청된 첫 번째 명령을 포함하는 명령 라인을 메모리로부터 인출하기 위한 제어기(controller)를 구비하는데,
    상기 명령 라인내의 모든 명령이 순차적인 경우, 바로 다음 명령 라인이 상기 캐시 메모리에 저장되어 있지 않은 경우에는 상기 제어기가 바로 다음 명령 라인의 어드레스에서 시작하는 명령 라인을 버퍼에 적재하는 명령 공급 장치.
  2. 제 1 항에 있어서, 상기 첫 번째 명령을 포함하는 상기 명령 라인이 인출되는 상기 메모리가 상기 캐시 메모리인 명령 공급 장치.
  3. 제 1 항에 있어서, 상기 첫 번째 명령을 포함하는 상기 명령 라인이 인출되는 상기 메모리가 상기 장치의 외부에 있는 명령 공급 장치.
  4. 제 1 항에 있어서, 상기 장치가 택 배열을 추가로 포함하고, 상기 택 배열은 상기 제어기에 의한 상기 첫 번째 명령 어드레스와의 비교를 위하여, 상기 캐시 메모리에 저장되어 있는 라인의 어드레스 리스트를 저장하는 명령 공급 장치.
  5. 제 4 항에 있어서, 상기 비교가 상기 첫 번째 명령이 상기 캐시 메모리에 저장된 명령 라인내에 있다고 표시하는 경우에는, 상기 제어기가 상기 캐시 메모리로부터 상기 첫 번째 명령을 탐색하여, 그 첫 번째 명령을 상기 프로세서로 순방향시키는 명령 공급 장치.
  6. 제 5 항에 있어서, 상기 장치가 상기 캐시 메모리내에 저장된 명령 라인 각각을 위한 저장된 표시부(indicia)를 추가로 포함하고, 상기 저장된 표시부 각각은 상기 대응하는 명령라인내의 모든 명령이 순차적인 경우인 제 1 상태와 그러하지 않은 경우인 제 2 상태를 가지는 명령 공급 장치.
  7. 제 6 항에 있어서, 상기 요청된 명령 라인을 위한 저장된 표시부가 상기 제 1 조건내에 있는 경우에만, 상기 제어기가 상기 버퍼를 적재하는 명령 공급 장치.
  8. 제 7 항에 있어서, 다음의 요청 명령이 상기 버퍼내의 상기 명령 라인내에서 발견되는 경우에는 상기 제어기가 상기 버퍼내의 상기 명령 라인을 상기 캐시 메모리에 복사하고, 다음 요청 명령을 상기 프로세서로 순방향시키며, 그러하지 않은 경우에는 상기 버퍼내의 상기 명령 라인을 폐기하는 명령 공급 장치.
  9. 제 8 항에 있어서, 상기 제어기가 상기 캐시 메모리에 복사된 명령 라인내의 모든 명령이 순차적인지를 결정하고, 그에 따라서 상기 제 1 및 제 2 상태중 하나에 대한 대응하는 저장 표시부를 설정하는 명령 공급 장치.
  10. 제 4 항에 있어서, 상기 제어기가 상기 장치 외부에 있는 메모리로부터 상기 첫 번째 명령을 포함하는 명령 라인을 상기 버퍼내로 검색하고, 즉시 상기 첫 번째 명령을 상기 프로세서로 순방향시키는 명령 공급 장치.
  11. 제 10 항에 있어서, 상기 제어기가 첫 번째 명령을 포함하는 상기 명령 라인을 상기 버퍼내로 감색함과 동시에, 상기 택 배열내의 어드레스와 상기 바로 다음 명령 라인의 어드레스를 비교하는 명령 공급 장치.
  12. 제 11 항에 있어서, 상기 첫 번째 명령을 포함하는 상기 바로 다음 명령 라인내의 모든 명령이 순차적이고, 상기 캐시 메모리가 상기 바로 다음 명령 라인을 아직 포함하고 있지 않은 경우에는, 상기 제어기가 상기 바로 다음 명령 라인을 상기 버퍼에 적재하는 명령 공급 장치.
  13. 제 12 항에 있어서, 다음의 요청 명령이 상기 버퍼내의 상기 바로 다음 명령 라인내에 포함되는 경우에는 상기 제어기가 상기 버퍼내의 상기 바로 다음 명령 라인을 상기 캐시 메모리로 복사하고, 다음 요청 명령을 상기 프로세서로 순방향시키며, 그러하지 않은 경우에는 상기 버퍼내의 상기 바로 다음 명령 라인을 폐기하는 명령 공급 장치.
  14. 제 13 항에 있어서, 상기 장치가 상기 캐시 메모리에 저장되어 있는 각 명령 라인에 대한 저장 표시부(stored indicia)를 추가로 포함하고, 상기 저장 표시부 각각은 상기 대응하는 명령 라인내의 모든 명령이 순차적인 경우에는 제 1 상태를 가지고, 그러하지 않은 경우에는 제 2 상태를 가지는 명령 공급 장치.
  15. 제 1 항에 있어서, 상기 제어기, 캐시 메모리 및 프로세서가 모두 단일 반도체칩 상에 상주하는 명령 공급 장치.
  16. 명령을 검색하도록 캐시 메모리 및 주메모리를 사용하는 실행 유니트의 프로세서로 명령을 공급하는 방법으로서,
    a) 상기 프로세서에 의하여 요청된 제 1 명령을 포함하는 명령 라인을 인출(fetch)하는 단계;
    b) 상기 명령 라인내의 모든 명령이 순차적인지를 결정하는 단계 및, 상기 명령 라인내의 모든 명령이 순차적인 경우에는,
    c) 바로 다음 명령 라인이 아직 상기 캐시 메모리에 저장되어 있지 않다면, 상기 바로 다음 명령 라인의 어드레스에서 시작하는 명령 라인을 버퍼에 적재하는 단계;로 이루어지는 명령 공급 방법.
  17. 제 16 항에 있어서, 상기 명령 라인이 상기 주메모리 및 캐시 메모리중 하나로부터 단계 a)에서 인출되는 명령 공급 방법.
  18. 제 16 항에 있어서, 상기 방법이,
    d) 상기 프로세서에 의한 두 번째 명령 요청을 수신하는 단계;
    e) 상기 두 번째 명령이 상기 캐시 메모리에 포함되어 있는지를 결정하는 단계; 및, 상기 두 번째 명령이 상기 캐시 메모리에 포함되어 있지 않은 경우에는,
    i) 상기 두 번째 명령이 버퍼에 포함되어 있다면, 상기 버퍼로부터 두 번째 명령을 가져오는 단계; 및
    ii) 상기 두 번째 명령이 버퍼에 포함되어 있지 않다면, 상기 버퍼의 모든 내용을 폐기하는 단계;로 이루어지는 명령 공급 방법.
KR1019970708899A 1995-06-05 1996-06-04 판독부재대기시간감소장치및방법 KR100397026B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/464351 1995-06-05
US08/464351 1995-06-05
US08/464,351 US5752263A (en) 1995-06-05 1995-06-05 Apparatus and method for reducing read miss latency by predicting sequential instruction read-aheads

Publications (2)

Publication Number Publication Date
KR19990022419A true KR19990022419A (ko) 1999-03-25
KR100397026B1 KR100397026B1 (ko) 2003-11-20

Family

ID=23843593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708899A KR100397026B1 (ko) 1995-06-05 1996-06-04 판독부재대기시간감소장치및방법

Country Status (6)

Country Link
US (1) US5752263A (ko)
EP (1) EP0834119B1 (ko)
JP (1) JP3763579B2 (ko)
KR (1) KR100397026B1 (ko)
DE (1) DE69610097T2 (ko)
WO (1) WO1996039657A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100673311B1 (ko) * 2005-05-23 2007-01-24 임재성 칠러 겸용 항온항습기
KR100775442B1 (ko) * 2006-08-11 2007-11-12 김종훈 전자부품 성능검사를 위한 항온 제어 장치

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6044439A (en) * 1997-10-27 2000-03-28 Acceleration Software International Corporation Heuristic method for preloading cache to enhance hit rate
US6308241B1 (en) * 1997-12-22 2001-10-23 U.S. Philips Corporation On-chip cache file register for minimizing CPU idle cycles during cache refills
US6032249A (en) * 1998-02-02 2000-02-29 International Business Machines Corporation Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
EP0936539B1 (de) 1998-02-12 2012-10-31 Infineon Technologies AG Vorrichtung und Verfahren zum Holen von Befehlen für eine programmgesteuerte Einheit
US20020188805A1 (en) * 2001-06-05 2002-12-12 Sailesh Kottapalli Mechanism for implementing cache line fills
WO2003034205A1 (en) * 2001-10-12 2003-04-24 Pts Corporation Early resolving instructions
GB2381602B (en) * 2001-10-12 2004-04-14 Siroyan Ltd Early resolving instructions
US7162588B2 (en) * 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
US7647477B2 (en) 2004-05-11 2010-01-12 Sun Microsystems, Inc. Branch target aware instruction prefetching technique
US7590830B2 (en) * 2004-05-28 2009-09-15 Sun Microsystems, Inc. Method and structure for concurrent branch prediction in a processor
US20140164738A1 (en) * 2012-12-07 2014-06-12 Nvidia Corporation Instruction categorization for runahead operation
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4821185A (en) * 1986-05-19 1989-04-11 American Telephone And Telegraph Company I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
US4860199A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Hashing indexer for branch cache
DE69128741T2 (de) * 1990-05-18 1998-07-16 Koninkl Philips Electronics Nv Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5553305A (en) * 1992-04-14 1996-09-03 International Business Machines Corporation System for synchronizing execution by a processing element of threads within a process using a state indicator
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
US5461718A (en) * 1992-04-24 1995-10-24 Digital Equipment Corporation System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory
EP0795820B1 (en) * 1993-01-21 2000-03-01 Advanced Micro Devices Inc. Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system.
US5586294A (en) * 1993-03-26 1996-12-17 Digital Equipment Corporation Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5524220A (en) * 1994-08-31 1996-06-04 Vlsi Technology, Inc. Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100673311B1 (ko) * 2005-05-23 2007-01-24 임재성 칠러 겸용 항온항습기
KR100775442B1 (ko) * 2006-08-11 2007-11-12 김종훈 전자부품 성능검사를 위한 항온 제어 장치

Also Published As

Publication number Publication date
EP0834119A1 (en) 1998-04-08
DE69610097T2 (de) 2001-05-10
KR100397026B1 (ko) 2003-11-20
DE69610097D1 (de) 2000-10-05
EP0834119B1 (en) 2000-08-30
US5752263A (en) 1998-05-12
WO1996039657A1 (en) 1996-12-12
JP3763579B2 (ja) 2006-04-05
JPH11506854A (ja) 1999-06-15

Similar Documents

Publication Publication Date Title
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6523093B1 (en) Prefetch buffer allocation and filtering system
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
KR100397026B1 (ko) 판독부재대기시간감소장치및방법
US6240488B1 (en) Prefetching hints
US6263404B1 (en) Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
US7461205B2 (en) Performing useful computations while waiting for a line in a system with a software implemented cache
US6321328B1 (en) Processor having data buffer for speculative loads
US5297281A (en) Multiple sequence processor system
JPH0321934B2 (ko)
EP0139407A2 (en) Data select match
JPH06242949A (ja) キュー管理式命令キャッシュ
WO1997035257A1 (en) A data cache configured to store stack data in a stack data storage
US20020174303A1 (en) Branch-prediction driven instruction prefetch
JPH08221324A (ja) キャッシュメモリへのアクセス
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
JPH0773104A (ja) キャッシュ・システム
KR100618057B1 (ko) 전자 회로 및 전자 회로를 사용하여 정보를 처리하는 방법
JPH1055276A (ja) 多重レベル分岐予測方法および装置
US5765190A (en) Cache memory in a data processing system
US6192449B1 (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
JPH11232171A (ja) 情報処理システム
US6374344B1 (en) Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts
JPH07200406A (ja) キャッシュシステム
KR20000003930A (ko) 명령어 캐시 미스 시 손실을 줄이기 위한 명령어 페치 장치

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee