KR20040033029A - 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 - Google Patents

캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 Download PDF

Info

Publication number
KR20040033029A
KR20040033029A KR10-2004-7003430A KR20047003430A KR20040033029A KR 20040033029 A KR20040033029 A KR 20040033029A KR 20047003430 A KR20047003430 A KR 20047003430A KR 20040033029 A KR20040033029 A KR 20040033029A
Authority
KR
South Korea
Prior art keywords
cache
access
memory
tag
data
Prior art date
Application number
KR10-2004-7003430A
Other languages
English (en)
Other versions
KR100617663B1 (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 KR20040033029A publication Critical patent/KR20040033029A/ko
Application granted granted Critical
Publication of KR100617663B1 publication Critical patent/KR100617663B1/ko

Links

Classifications

    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline

Landscapes

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

Abstract

본 발명의 한 실시예는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 시스템을 제공한다. 이 시스템은 캐시 메모리에서 메모리 요청을 수신함으로서 동작하며, 이때, 메모리 요청은 메모리 위치를 식별하는 어드레스를 포함한다. 그후 시스템은, 캐시 메모리 내의 태그 어레이로부터 한 개 이상의 태그를 룩업(lookup)함으로서, 그리고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하는 지를 결정하기 위해 상기 어드레스의 태그 부분과 상기 한 개 이상의 태그를 비교함으로서, 태그 액세스를 실행한다. 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 캐시 라인을 지닌 데이터 어레이가 사용 중(busy)일 경우, 시스템은 나중에 데이터 어레이가 비게 될 때 해당 데이터 액세스를 실행한다. 더욱이, 메모리 요청이 로드 동작에 대한 요청일 경우, 해당 데이터 액세스는 선행 로드 동작의 완료를 기다릴 필요없이 발생한다.

Description

캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리 방법 및 장치{METHOD AND APPARATUS FOR DECOUPLING TAG AND DATA ACCESSES IN A CACHE MEMORY}
프로세서 클럭 속도가 기하급수적으로 증가하고 있기 때문에, 컴퓨터 시스템 설계자들은 더 빠른 클럭 속도로 연산을 실행해야한다는 압력을 받고 있다. 이는 연산 실행을 "파이프라인화"함으로서 실현될 수 있다. 이 파이프라인화 연산 실행은 각각의 연산을 단일 클럭 사이클 내에서 실행될 수 있는 다수의 작은 연산들로 분할하는 과정을 포함한다. 파이프라인화로 인해, 더 작은 연산을 실행하는 파이프라인 스테이지 세트를 통해 락스텝(lockstep)으로 공급함으로서 다수의 연산 실행을 동시에 처리할 수 있다.
파이프라인 컴퓨터 시스템을 설계할 때의 한가지 문제점은 캐시 메모리에 대한 가변적인 액세스 시간을 효율적으로 취급하는 것이다. 전형적인 컴퓨터 시스템에서는 한 개 이상의 파이프라인 스테이지가 캐시 메모리 액세스에 전용으로 공급되어 불러오기(데이터 로딩)나 저장 동작을 실행하게 한다. 불행하게도, 캐시 액세스 시간은 캐시 액세스가 캐시 히트(cache hit)를 발생시키는 지 캐시 미스(cache miss)를 발생시키는 지에 따라 크게 변할 수 있다.
캐시 히트 중에도, 다수의 환경이 캐시 액세스를 지연시킬 수 있다. 예를 들어, 캐시 라인이 캐시 미스 동작 중 되돌아올 때, 캐시 필 동작(cache fill operation)이 실행되어 캐시 라인을 캐시의 데이터 어레이 부분으로 로딩시킬 수 있다. 불행하게도, 이 캐시 필 동작은 파이프라인으로부터의 현 캐시 액세스와 충돌을 일으켜서 현 캐시 액세스를 지연시킬 수 있다. 또다른 예에서, 파이프라인으로부터의 로드 동작이 현 저장 동작을 가진 캐시 라인에 보내어지기 때문에 RAW(Read-After-Write) 위험이 발생할 수 있다. 이 경우에, 로드 동작이 캐시 라인으로부터 가장 현재의 값을 되돌려보내는 것을 보장함을, 진행중인 저장 동작이 완료할 때까지 로딩 동작이 대기하여야만 한다.
상술한 문제점을 경감시키기 위해, 일부 캐시들은 캐시 메모리의 태그 어레이에 대한 액세스가 캐시 메모리의 데이터 어레이에 대한 액세스로부터 분리되도록 설계되고 있다. 전형적인 캐시 메모리는 태그 어레이로부터의 한 개 이상의 태그들을 어드레스의 태그 부분과 비교하기 위해 태그 어레이 내로의 태그 룩업(tag lookup)을 실행한다. 이로 인해, 요망 캐시 라인이 캐시에 위치하는 지를 해당 캐시가 결정할 수 있다.
태그 어레이 액세스가 데이터 어레이 액세스로부터 분리될 경우, 요망 캐시 라인이 캐시에 위치하는 지를 결정하기 위해 태그 룩업과 비교를 먼저 실행할 수 있다. 만약 그러하다면, 태그 룩업은 캐시 메모리의 데이터 어레이 내 요망 캐시라인의 세트 및 웨이 위치(set and way location)를 되돌려보낸다.
해당 데이터 어레이 액세스가 회선 쟁탈로 인해 지연될 경우, 해당 데이터 어레이 액세스가 나중에 데이터 어레이가 비워질 때, 실행될 수 있다. 이 데이터 어레이 액세스는 태그 룩업 중에 미리 결정된 세트 및 웨이 위치를 이용한다. 이 방식으로, 태그 어레이 액세스는 차후 데이터 어레이 액세스에 대해 반복될 필요가 없다. 더욱이, 태그 어레이 액세스는 고정된 시간에 일어나며, 이는 파이프라인 설계를 크게 단순화시키고 따라서 파이프라인 성능을 크게 개선시킬 수 있다.
불행하게도, 태그 및 데이터 액세스를 분리시키는 기존 캐시들은 로드 동작 중 캐시 미스로부터의 오류 데이터 리턴을 지원하지 않는다. 캐시 미스 중 되돌아오는 캐시 라인이 캐시 미스를 유발한 캐시 액세스와, 동일한 캐시 라인에 대한 모든 다른 차후 액세스와 어떤 측면에서 반드시 매치되어야 하기 때문에, 그리고 이 매치가 효율적인 방식으로 발생하여야 하기 때문에, 오류 리턴을 지원하는 것은 매우 복잡한 일이다.
따라서, 캐시 미스 동작 중 캐시 라인의 오류 리턴을 효율적으로 지원하는 방식으로 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법 및 장치가 요구된다.
본 발명은 컴퓨터 시스템 내 캐시 메모리 설계에 관한 것으로서, 특히, 태그 액세스를 캐시 메모리 내 해당 데이터 액세스로부터 분리하기 위한 방법 및 장치에 관한 것이다.
도 1은 본 발명의 한 실시예에 따른 컴퓨터 시스템의 도면.
도 2는 본 발명의 한 실시예에 따른 데이터 어레이와 태그 어레이에 대한 분리된 액세스를 지원하는 캐시 메모리의 도면.
도 3은 본 발명의 한 실시예에 따른 아비터 회로의 도면.
도 4는 본 발명의 한 실시예에 따라 도 2에 도시된 캐시 메모리 내에서 로드 동작과 저장 동작이 실행되는 방식을 보여주는 도면.
본 발명의 한가지 실시예는 캐시 메모리 내의 해당 데이터 액세스로부터 태그 액세스를 분리하는 시스템을 제공한다. 이 시스템은 캐시 메모리에서 메모리 요청을 수신함으로서 동작하며, 이때, 메모리 요청은 메모리 위치를 식별하는 어드레스를 포함한다. 그후, 시스템은 캐시 메모리 내의 태그 어레이로부터 한 개 이상의 태그를 룩업(lookup)함으로서, 그리고 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하는 지를 결정하기 위해 상기 한 개 이상의 태그를 어드레스의 태그 부분과 비교함으로서, 태그 액세스를 실행한다. 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 캐시 라인을 지닌 데이터 어레이가 사용중일 경우(busy), 시스템은 나중에 데이터 어레이가 비게될 때, 해당 데이터 액세스를 실행한다. 더욱이, 메모리 요청이 로드 동작에 대한 것일 경우, 해당 데이터 액세스는 선행 로드 동작의 완료를 기다리지 않고 발생한다.
발명의 한 실시예에 따르면, 메모리 요청이 로드 동작에 대한 요청일 경우, 시스템은 로드 동작에 대한 엔트리를 로드 버퍼에 저장함으로서 나중에 해당 데이터 액세스를 실행하며, 이때, 상기 엔트리를 태그 액세스 중 결정된 데이터 어레이내 해당 캐시 라인 위치를 명시한다. 데이터 어레이가 나중에 비게될 경우, 시스템은 이 엔트리를 이용하여 데이터 어레이로부터 로드 동작을 실행하고, 이때, 데이터 어레이 내 캐시 라인 위치 결정을 위해 태그 액세스를 다시 실행할 필요가 없다.
발명의 한 실시예에서, 메모리 요청이 저장 동작에 대한 요청일 경우, 시스템은 저장 동작에 대한 엔트리를 저장 버퍼에 저장함으로서, 나중에 해당 데이터 액세스를 실행하며, 이때, 상기 엔트리는 태그 액세스 중 결정된 데이터 어레이 내 해당 캐시 라인 위치를 명시한다. 데이터 어레이가 나중에 비게되면, 시스템은 상기 엔트리를 이용하여, 데이터 어레이 내 캐시 라인 위치를 결정하기 위해 태그 액세스를 다시 실행할 필요없이, 데이터 어레이에 대한 저장 동작을 실행한다.
발명의 한 실시예에 따르면, 메모리 요청이 캐시 미스를 발생시키는 로드 동작에 대한 요청이라면, 시스템은 메모리 수직구조의 로우 레벨로부터 캐시 라인을 요청하고 이전 미스 버퍼(prior miss buffer)에 로드 동작에 대한 엔트리를 저장한다. 시스템은 캐시 라인에 의해 채워질 타겟 캐시 위치를 또한 선택하며, 태그 어레이 내 해당 타겟 엔트리를 어드레스의 태그 부분으로 업데이트한다. 타겟 엔트리 업데이트는 타겟 캐시 위치가 두드러진 캐시 미스 동작에 연계되어 있음을 표시하도록 타겟 엔트리 내 이전 미스 비트를 설정하는 과정을 포함한다.
본 발명의 한 실시예에 따르면, 메모리 요청이 캐시 미스를 발생시킬 경우, 시스템은 이전 미스 버퍼 내에 캐시 미스에 대한 엔트리를 생성한다. 본 실시예에 대한 한가지 변형에서는 태그 액세스 실행이 태그에 관련된 이전 미스 비트들을 룩업(lookup)하는 과정을 추가적으로 포함한다. 본 변형에서, 메모리 요청이 로드 동작에 대한 것이고 어드레스의 태그 부분이 태그 어레이 내 태그와 매치될 경우, 또한, 관련 캐시 라인이 두드러진 캐시 미스 동작에 종속됨을 표시하도록 해당 이전 미스 비트가 설정될 경우, 시스템은 이전 미스 버퍼 내에 메모리 요청에 대한 엔트리를 저장한다.
발명의 한 실시예에 따르면, 두드러진 캐시 미스 동작에 의해 되돌아온 캐시 라인을 수신하면, 시스템은 되돌아온 캐시 라인을 데이터 어레이에 삽입시키도록 캐시 필 동작을 실행한다. 그후, 시스템은 캐시 필 동작을 기다리는 이전 미스 버퍼 내의 메모리 요청을 완료시킨다.
발명의 한 실시예에서, 시스템은 아래의 다섯가지 사이의 데이터 어레이에 대한 액세스를 조정한다. 즉,
1) 두드러진 캐시 미스가 되돌아오길 기다리고 있는 메모리 요청을 포함한 이전 미스 버퍼,
2) 캐시 미스 동작에 의해 되돌아오는 캐시 라인들을 포함한 필 버퍼,
3) 메모리 요청을 발생시키는 컴퓨터 시스템 파이프라인,
4) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 로드 요청을 포함하는 로드 버퍼, 그리고
5) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 저장 요청을 포함한 저장 버퍼.
발명의 한 실시예에 따르면, 시스템은 두드러진 캐시 미스 동작과 충돌하는 캐시 필 동작을 차단한다.
실시예 단락에서 설명되는 데이터 구조 및 코드는 통상적으로 컴퓨터 판독형 저장 매체에 저장되며, 이 저장 매체는 컴퓨터 시스템에 의해 이용가능한 코드 및 데이터를 저장할 수 있는 어떤 장치/매체이다. 이는 자기 및 광학 장치를 포함하며, 그 예로는 디스크 드라이브, 자기 테이프, CD, DVD, 전송 매체에 내장된 컴퓨터 명령 신호 등이 있다. 예를 들어, 전송 매체는 인터넷같은 통신 네트워크를 포함할 수 있다.
컴퓨터 시스템
도 1은 발명의 한 실시예에 따른 컴퓨터 시스템(100)의 도면이다. 상당수 컴퓨터 시스템(100)이 단일 반도체 칩(100) 내에 위치한다. 구체적으로, 반도체 칩(101)은 다수의 프로세서(110, 120, 130, 140)을 포함하며, 레벨 1(L1) 캐시(112, 122, 132, 142)를 각각 포함한다. L1 캐시(112, 122, 1132, 142)는 명령 및 데이터 분리형 캐시일 수도 있고, 명령 및 데이터 통합 캐시일 수도 있다. L1 캐시(112, 122, 132, 142)는 레벨 2(L2) 캐시(106)에 연결된다. L2 캐시(106)는 메모리 컨트롤러(104)를 통해 오프-칩 메모리(102)에 연결된다.
발명의 한 실시예에 따르면, L1 캐시(112, 122, 132, 142)는 기록전달(write-through) 캐시이다. 이는 L1 캐시(112, 122, 132, 142)에 대한 모든 업데이트가 자동적으로 L2 캐시(106)에 전달된다는 것을 의미한다. 이는 코히어런스 프로토콜을 단순화시킨다. 왜냐하면, 프로세서(110)가 L1 캐시(112) 내에 존재하는 데이터 아이템을 필요로할 경우 프로세서(112)가 L1 캐시(112)의 데이터 소싱을 기다릴 필요없이 L2 캐시(106)로부터 데이터를 수신할 수 있기 때문이다.
본 발명이 단일 칩 상의 멀티프로세서 시스템에 관하여 설명되지만, 본 발명이 멀티프로세서 시스템이나 단일 칩 프로세서에 제한되는 것을 의미하는 것은 아니다. 일반적으로, 본 발명은 유니프로세서 컴퓨터 시스템이나 멀티프로세서 컴퓨터 시스템처럼 어떤 종류의 컴퓨터 시스템에도 적용될 수 있다. 더욱이, 본 발명은 집합 연관식 캐시(set-associative cache), 지향성 매핑 캐시(directed-mapped cache), 명령 캐시, 데이터 캐시, 명령 및 데이터 통합 캐시, L1 캐시, 또는 L2 캐시를 포함하는 거의 모든 종류의 캐시 메모리에 적용될 수 있다.
캐시 메모리
도 2는 발명의 한 실시예에 따라 태그 어레이와 데이터 어레이에 대한 분리된 액세스를 지원하는 L1 캐시(110)의 구조를 도시한다.
L1 캐시(110)는 다수의 기존 캐시 메모리 구조를 포함한다. 가령, 태그 어레이(202), 데이터 어레이(204), 라이트백(writeback) 버퍼(210), 그리고 필(fill) 버퍼(212)를 포함한다. 태그 어레이(202)는 L1 캐시(110) 내에 저장된 라인들에 대한 어드레스의 태그 부분을 포함한다. L1 캐시(110)가 타겟 어드레스에 대한 메모리 액세스를 실행하려는 요청을 수신하면, L1 캐시(110)는 타겟 어드레스의 세트 번호를 이용하여, 태그 어레이(202)로부터 한 개 이상의 태그를 룩업할 수 있다. 이 태그들은 타겟 어드레스의 태그 부분과 비교되어, 타겟 어드레스를 지닌 캐시 라인이 L1 캐시(110) 내에 있는 지를 결정할 수 있다.
태그 비교를 위한 비교 회로가 도 2에는 도시되지 않았다. 집합 연관식 캐시에 대한 태그 룩업 중 불러들여지는 다중 태그가 또한 도시되지 않았다. 더욱이,태그 어레이(202) 내 각각의 엔트리가 이전 미스 비트(prior miss bits)(203)를 포함하는 점에 주목해야 한다. 이는 태그가 두드러진 캐시 미스와 연관되어 있음을 표시한다.
데이터 어레이(204)는 태그 어레이(202) 내에 저장된 태그에 해당하는 캐시 라인들을 저장한다. 기존 캐시 메모리에서의 로드 동작 중, 데이터 어레이(204)는 태그 어레이(202) 액세스와 동시에 액세스된다. 로드 동작이 히트임을 태그 룩업이 표시하면, 데이터 어레이(204)로부터 불러들여지는 데이터 값이 리턴되어 로드 동작을 완료시킬 수 있다.
데이터 어레이(204)는 라이트백(writeback) 버퍼(210) 및 필(fill) 버퍼(212)를 통해 L2 캐시(106)와 통신한다. 라이트백 버퍼(210)는 L2 캐시(106)에 다시 쓰여질 것을 기다리고 있는, 데이터 어레이(204)로부터 불러들여지는 캐시 라인들을 포함한다. 이때, 필 버퍼(212)는 데이터 어레이(204)에 저장되기를 기다라고 있는, L2 캐시(106)로부터 불러들여지는 캐시 라인들을 포함한다.
태그 어레이(202)와 데이터 어레이(204)가 각각 별도의 디코더(206, 208)를 포함하는 점에 주목해야 한다. 이로 인해, 여러 다른 세트 번호 룩업들이 태그 어레이(202)와 데이터 어레이(204)에서 동시에 발생할 수 있게 함으로서, 태그 어레이(202)와 데이터 어레이(204)에 대한 분리된 액세스가 용이해진다.
L2 캐시(110)는 로드 버퍼(214), 저장 버퍼(216), 그리고 이전 미스 버퍼(218)를 포함하는, 기존의 캐시 메모리에 존재하지 않는 다수의 새로운 구조를 포함한다. 로드 버퍼(214)와 저장 버퍼(216)는 데이터 어레이(204)가 비게되기를기다리고 있는 데이터 어레이(204)에 대한 계류중인 액세스를 가진다. 구체적으로, 로드 버퍼(214)는 데이터 어레이(204)에 대한 회선쟁탈로 인해 지연된 로드 요청을 가지며, 저장 버퍼(216)는 데이터 어레이(204)에 대한 회선쟁탈로 인해 지연된 저장 요청을 지닌다. 이 구조들은 태그 액세스와 데이터 액세스가 분리된 사실의 결과로 존재한다. 이는 로드 동작이나 저장 동작에 대한 태그 액세스가 데이터 어레이(204)에 대한 해당 로드나 저장 동작이 일어나기 전에 발생할 수 있다는 것을 의미한다. 이 "계류중인" 로드 및 저장 동작은 일시적으로 로드 버퍼(214)와 저장 버퍼(216)에 저장된다.
이전 미스 버퍼(218)는 두드러진 캐시 미스가 되돌아오기를 기다리고 있는 메모리 요청을 지닌다. 이는 캐시 라인 리턴 이전에 발생하는 동일한 캐시 라인에 대한 캐시 미스와 차후 로드 및 저장 동작을 유발하는 메모리 요청을 포함한다.
로드 버퍼(214)의 주어진 엔트리(221)는 데이터 어레이(204) 내 로드 동작의 세트(set) 및 웨이(way) 위치(224)와 행선 레지스터 식별자(destination register identifier)(222)를 지닌다. 엔트리(221)는 부호 확장 옵션을 표시하는 필드나 메모리 액세스 크기를 표시하는 필드처럼 도시되지 않은 다른 필드들을 또한 지닌다. 저장 버퍼(216)의 엔트리(225)는 저장 동작 중 데이터 어레이(204)에 기록될 데이터(226)를 지니며, 데이터 어레이(204) 내 저장 동작에 대한 타겟 캐시 라인의 세트 및 웨이 위치를 지닌다. 엔트리(225)는 도시되지 않은 다른 필드도 포함한다. 한 실시예에서는, 이전 미스 버퍼(218)의 엔트리가 로드 버퍼(214)의 엔트리와 유사하다.
다수의 구조가 로드 버퍼(214), 저장 버퍼(216), 이전 미스 버퍼(216), 필 버퍼(212), 그리고 프로세서 파이프라인(도시되지 않음)을 포함하는, 데이터 어레이(204)에 대한 액세스를 필요로 한다. 이 액세스들은 아비터(arbiter) 회로(220)에 의해 제어되며, 도 3을 참고하여 보다 상세하게 설명된다.
조정 회로(Arbitration Circuit)
도 3은 발명의 한 실시예에 따른 도 2로부터의 아비터 회로(220)의 구조를 도시하는 도면이다. 아비터 회로(220)는 데이터 어레이(204)의 디코더(208)에 대한 액세스를 제어하는 다수의 스위치(302-305)를 가진다. 디코더(208)에 가장 가까운 이전 미스 버퍼(18)에 최우선 순위가 부여된다. 따라서 스위치(305)를 이용하여 데이터 어레이(204)에 액세스하고자 하는 상향 경쟁자들을 밀어낼 수 있다. 이전 미스 버퍼(218)는 캐시 미스를 기다려온 액세스들을 포함하기 때문에 최우선순위를 가진다. 이 액세스들은 프로세서를 차단시키기 쉽다. 다음 높은 우선순위는 필 버퍼(212)에 부여된다. 필 버퍼(212)는 캐시 미스 동작에 대한 캐시 라인을 되돌려보내려 시도한다. 그 다음의 우선순위는 명령 파이프라인이고 그 다음은 로드 버퍼(214)이다. 마지막으로 저장 버퍼(216)에 최저우선순위가 부여된다. 왜냐하면, 저장 동작은 가장 여유로운 속도로 발생할 수 있기 때문이다.
로드 및 저장 동작
도 4는 본 발명의 한 실시예에 따라 도 2에 도시되는 캐시 메모리(110) 내에서 로드 동작과 저장 동작이 어떻게 실행되는 지를 도시한다. 도 4는 여러 다양한 파이프라인 스테이지 내에서 무엇이 구현되는 지를 도시하도록 그려진다. 명령 페치 및 디코드 파이프라인 스테이지 이후, 다수의 추가적인 스테이지가 존재한다. 가령, E1, C1, C2, E4, E5, T, 그리고 WB가 존재한다. 구체적으로, E1은 실행 스테이지, C1과 C2는 캐시 액세스 스테이지, E4와 E5는 추가 실행 스테이지, T는 트랩 스테이지, 그리고 WB는 라이트백(writeback) 스테이지이다. 본 발명이 어떤 종류의 파이프라인 컴퓨터 시스템에서도 구현될 수 있고, 도 4에 도시되는 특정 스테이지 세트에 제한되지 않음에 주목하여야 한다.
도 4의 상단은 로드 동작 중 발생하는 액션들을 도시한다. C1 스테이지 중, 시스템은 다수의 동작을 실행한다. 이 동작들에는 어드레스에 연관된 태그를 읽어들이기 위해 태그 어레이(202)에 대한 룩업을 실행하는 단계를 포함한다. 시스템은 메모리 관리 유닛을 통한 시각적->물리적 어드레스 변환을 또한 실행한다. 시스템은 데이터 어레이(204)로부터 해당 캐시 라인을 읽어들이려 또한 시도한다. 시스템은, 필 웨이(fill way)와 이전 미스 웨이(prior miss way)를 읽어들임으로서, 로드 동작이 데이터 어레이(204)에 대한 조정 기능을 상실하였는 지를 추가적으로 결정한다. 필 웨이나 이전 미스 웨이가 동일한 웨이에 대한 것일 경우, 시스템은 실행 파이프라인이 조정 기능을 상실하였음을 알게된다. 왜냐하면, 도 3에 도시되는 아비터(220)가 필 버퍼(212)와 이전 미스 버퍼(218)에 우선순위를 부여하기 때문이다. 시스템은 필요시 캐시 미스 중 대체할 캐시의 한 라인을 식별하기 위해 상기 미스 웨이(miss way)를 또한 연산한다.
스테이지 C2 동안, 시스템은 추가적인 동작들을 실행한다. 이 동작에는 로드가 캐시 히트를 일으키는 지를 결정하기 위해 태그 어레이(202)로부터 불러들여지는 태그를 현 태그와 비교하는 단계가 포함된다. 로드가 히트를 일으키면, 시스템은 데이터 어레이(204)로부터 데이터를 로딩한다. 로드 동작과 선행 저장 동작 사이에 RAW(Read-After-Write) 위험이 존재하는 지를 결정하기 위해 저장 버퍼(216) 상에서 콘텐트-어드레서블 검색(content-addressable search)을 또한 실행한다. 시스템은 로드 동작을 위해 한 엔트리를 로드 버퍼(214)에 임시로 삽입한다. 시스템은 캐시 미스가 발생할 경우를 대비하여 이전 미스 버퍼(218)의 빈 슬롯을 식별한다. 시스템은 로드가 이전 미스 버퍼(218)에 들어가야 하는 경우를 대비하여 이전 미스 버퍼(218) 내 큐(queues)의 세트 및 웨이를 읽어들인다. 캐시 미스의 경우, 시스템은 기존 태그를 새 태그로 새 태그가 되도록 업데이트하고, 캐시 미스가 캐시 라인에 대해 두드러짐을 차후 액세스들이 알 수 있도록 이전 미스 비트를 설정한다.
스테이지 E3 동안, 시스템은 추가적인 동작들을 포함한다. 이 동작에는, 로드가 히트를 발생시켜서 데이터 엔트리(240)에 액세스할 수 있었거나, 로드가 미스나, 이전 미스, 또는 RAW 위험을 발생시킨 경우, 로드 버퍼(214)로부터 임시로 삽입된 엔트리를 제거하는 단계가 포함된다(태그 어레이 엔트리의 이전 미스 비트를 검사함으로서 이전 미스가 존재하는 지를 시스템이 결정할 수 있음에 주목하여야 한다). 로드가 캐시 미스나 이전 미스를 발생시킨 경우, 시스템은 로드 동작을 이전 미스 버퍼(218)로 보낸다. 이전 미스 버퍼가 각각의 두드러진 캐시 미스 동작에 대한 큐 세트로 조직됨에 주목하여야 한다. 이로 인해, 시스템은 완전히 연관된 검색을 실행하는 대신, 각각의 큐의 헤드만을 검사할 수 있다. 이는 룩업 시간을 감소시킨다. 로드 동작이 캐시 미스를 발생시키면, 시스템은 로드 동작을 로드 요청 큐로 보내 L2 캐시(106)로부터 해당 캐시 라인을 끌어당긴다.
마지막으로, 스테이지 E4에서, 시스템은 L2 캐시(106)에, 필요시, 미스를 발급한다.
도 4의 하단은 저장 동작 중 발생하는 액션들을 도시한다. C1 스테이지에서, 시스템은 다수의 동작을 실행한다. 이 동작에는 어드레스에 연관된 태그들을 읽어들이기 위해 태그 어레이(202)에 대한 룩업을 실행하는 단계가 포함된다. 시스템은 메모리 관리 유닛을 통해 시각적->물리적 어드레스 변환을 또한 실행한다.
스테이지 C2 중, 시스템은 추가적인 동작들을 실행한다. 이 동작에는 캐시 히트가 있는 지를 결정하기 위해 태그 어레이(202)로부터 불러들여지는 태그를 현 태그와 비교하는 단계가 포함된다. 히트가 존재할 경우 시스템은 데이터 어레이(204)에 데이터를 저장한다. 시스템은 저장 동작이 이전 미스 버퍼(218)에 들어가야 하는 경우를 대비하여 이전 미스 버퍼(218) 내의 큐에 대한 세트 및 웨이 정보를 또한 읽어들인다.
스테이지 E3 중, 시스템은 추가적인 동작들을 실행한다. 이 동작에는 저장 동작이 캐시 히트였으나 데이터 어레이(204)에 대한 액세스를 얻을 수 없었을 경우 저장 동작을 저장 버퍼(216)에 들어가게 하는 단계가 포함된다.
스테이지 E4 중, 시스템은, 저장 동작이 이전 미스를 발생시킬 경우, 저장 동작을 저장 요청 큐(218)에 보낸다.

Claims (23)

  1. 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법으로서, 이 방법은,
    - 캐시 메모리에서 메모리 요청을 수신하고, 이때, 상기 메모리 요청은 메모리 요청에 연관된 메모리 위치를 식별하는 어드레스를 포함하며, 그리고
    - 캐시 메모리 내 태그 어레이로부터 한 개 이상의 태그를 룩업함으로서, 그리고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리에 위치하는 지를 결정하기 위해 상기 어드레스의 태그 부분을 상기 한 개 이상의 태그와 비교함으로서, 태그 액세스를 실행하는
    단계를 포함하며, 이때, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 캐시 라인을 지닌 데이터 어레이가 사용 중일 경우, 상기 방법은,
    - 데이터 어레이에 대한 해당 데이터 액세스를 나중에 데이터 어레이가 빌 때, 실행하는
    단계를 추가로 포함하며, 메모리 요청이 로드 동작에 대한 것이라면, 해당 데이터 액세스가 선행 로드 동작의 완료를 기다릴 필요없이 발생하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  2. 제 1 항에 있어서, 상기 메모리 요청이 로드 동작에 대한 요청일 경우, 나중에 해당 데이터 액세스를 실행하는 상기 단계는,
    - 로드 동작에 대한 엔트리를 로드 버퍼에 저장하고, 이때, 상기 엔트리는 태그 액세스 중 결정된 데이터 어레이 내 해당 캐시 라인 위치를 명시하고, 그리고
    - 나중에 데이터 어레이가 빌 때, 데이터 어레이 내 캐시 라인 위치를 결정하기 위해 태그 액세스를 다시 실행할 필요없이 상기 엔트리를 이용하여 데이터 어레이로부터 로드 동작을 실행하는
    단계를 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  3. 제 1 항에 있어서, 상기 메모리 요청이 저장 동작에 대한 요청일 경우, 나중에 해당 데이터 액세스를 실행하는 상기 단계는,
    - 저장 동작에 대한 엔트리를 로드 버퍼에 저장하고, 이때, 상기 엔트리는 태그 액세스 중 결정된 데이터 어레이 내 해당 캐시 라인 위치를 명시하고, 그리고
    - 나중에 데이터 어레이가 빌 때, 데이터 어레이 내 캐시 라인 위치를 결정하기 위해 태그 액세스를 다시 실행할 필요없이 상기 엔트리를 이용하여 데이터 어레이에 저장 동작을 실행하는
    단계를 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  4. 제 1 항에 있어서, 메모리 요청이 캐시 미스를 발생시키는 로드 동작에 대한요청일 경우, 이 방법은,
    - 메모리 수직구조의 로우 레벨로부터 캐시 라인을 요청하고,
    - 로드 동작에 대한 엔트리를 이전 미스 버퍼에 저장하며,
    - 캐시 라인에 의해 채워질 타겟 캐시 위치를 선택하고, 그리고
    - 태그 어레이 내 해당 타겟 엔트리를 상기 어드레스의 태그 부분으로 업데이트하는
    단계를 추가로 포함하며, 이때, 타겟 엔트리를 업데이트하는 상기 단계는, 타겟 캐시 위치가 두드러진 캐시 미스 동작에 연관되어 있음을 표시하도록 타겟 엔트리 내 이전 미스 비트를 설정하는 단계를 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  5. 제 1 항에 있어서, 상기 메모리 요청이 캐시 미스를 발생시킬 경우, 이 방법은,
    - 캐시 미스에 대한 엔트리를 이전 미스 버퍼 내에 생성하는
    단계를 추가로 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  6. 제 5 항에 있어서,
    태그 액세스를 실행하는 상기 단계는 한 개 이상의 태그에 연관된 이전 미스 비트를 룩업(lookup)하는 단계를 포함하고, 그리고
    메모리 요청이 로드 동작에 대한 요청이고 상기 어드레스의 태그 부분이 태그 어레이 내 태그와 매치되며 관련 캐시 라인이 두드러진 캐시 미스 동작에 종속됨을 표시하도록 해당 이전 미스 비트가 설정될 경우, 이 방법은,
    - 메모리 요청에 대한 엔트리를 이전 미스 버퍼에 저장하는
    단계를 추가로 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  7. 제 5 항에 있어서, 상기 방법은,
    - 두드러진 캐시 미스 동작을 댓가로 하여 되돌아온 캐시 라인을 수신하고,
    - 되돌아온 캐시 라인을 데이터 어레이에 삽입하도록 캐시 필 동작을 실행하며, 그리고
    - 캐시 필 동작을 기다리고 있었던 이전 미스 버퍼 내 메모리 요청을 완료시키는
    단계를 추가로 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  8. 제 1 항에 있어서,
    a) 두드러진 캐시 미스의 리턴을 기다리고 있는 메모리 요청을 지닌 이전 미스 버퍼,
    b) 캐시 미스 동작에 의해 되돌아오는 캐시 라인들을 지닌 필 버퍼,
    c) 메모리 요청을 발생시키는 컴퓨터 시스템 파이프라인,
    d) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 로드 요청을 지닌 로드 버퍼, 그리고
    e) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 저장 요청을 지닌 저장 버퍼
    - 로 구성되는 상기 a) 내지 상기 e) 간의 데이터 어레이에 대한 액세스들을 조정하는 단계
    를 추가로 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  9. 제 1 항에 있어서,
    - 두드러진 캐시 미스 동작에 연관되어 있는 캐시 위치에 대한 캐시 필 동작을 차단하는
    단계를 추가로 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리하는 방법.
  10. 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치로서,
    이 장치는 캐시 메모리, 캐시 메모리 내의 태그 어레이, 캐시 메모리 내의 데이터 어레이, 태그 액세스 메커니즘, 그리고 데이터 어레이 액세스 메커니즘을포함하고,
    상기 캐시 메모리는 메모리 요청을 수신하도록 구성되고, 상기 메모리 요청은 메모리 요청에 연관된 메모리 위치를 식별하는 어드레스를 포함하며,
    상기 태그 액세스 메커니즘은 상기 태그 어레이로부터 한 개 이상의 태그를 룩업(lookup)하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하는 지를 결정하기 위해 상기 어드레스의 태그 부분을 상기 한 개 이상의 태그와 비교하며,
    상기 데이터 어레이 액세스 메커니즘은 캐시 메모리 내에 위치하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 데이터 어레이가 사용중일 경우, 데이터 어레이 액세스 메커니즘은 나중에 데이터 어레이가 빌 때 데이터 어레이에 대한 해당 데이터 액세스를 실행하며, 그리고
    상기 메모리 요청이 로드 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은 선행 로드 동작의 완료를 기다릴 필요없이 해당 데이터 액세스를 실행하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  11. 제 10 항에 있어서,
    상기 장치는 데이터 어레이가 비게 되기를 기다리고 있는 로드 동작들을 지닌 로드 버퍼를 추가로 포함하고,
    메모리 요청이 로드 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은,
    - 로드 동작에 대한 엔트리를 로드 버퍼에 저장하고, 이때, 상기 엔트리는 태그 액세스 중 결정된 데이터 어레이 내 해당 캐시 라인 위치를 명시하고, 그리고
    - 데이터 어레이가 나중에 비게 될 경우, 데이터 어레이 내 캐시 라인 위치를 결정하기 위해 태그 액세스를 다시 실행할 필요없이 상기 엔트리를 이용하여 데이터 어레이로부터 로드 동작을 실행하는
    단계들에 의해 나중에 해당 데이터 액세스를 실행하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  12. 제 11 항에 있어서, 상기 로드 버퍼가 큐(queue)로 조직되는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  13. 제 10 항에 있어서,
    상기 장치는 데이터 어레이가 비게 되기를 기다리고 있는 저장 동작들을 지닌 저장 버퍼를 추가로 포함하고,
    메모리 요청이 저장 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은,
    - 저장 동작에 대한 엔트리를 저장 버퍼에 저장하고, 이때, 상기 엔트리는 태그 액세스 중 결정된 데이터 어레이 내 해당 캐시 라인 위치를 명시하고, 그리고
    - 데이터 어레이가 나중에 비게 될 경우, 데이터 어레이 내 캐시 라인 위치를 결정하기 위해 태그 액세스를 다시 실행할 필요없이 상기 엔트리를 이용하여 데이터 어레이에 저장 동작을 실행하는
    단계들에 의해 나중에 해당 데이터 액세스를 실행하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  14. 제 13 항에 있어서, 상기 저장 버퍼가 큐(queue)로 조직되는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  15. 제 10 항에 있어서, 메모리 요청이 캐시 미스를 발생시키는 로드 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은,
    - 메모리 수직구조의 로우 레벨로부터 캐시 라인을 요청하고,
    - 로드 동작에 대한 엔트리를 이전 미스 버퍼에 저장하며,
    - 캐시 라인에 의해 채워질 타겟 캐시 위치를 선택하고, 그리고
    - 태그 어레이 내 해당 타겟 엔트리를 상기 어드레스의 태그 부분으로 업데이트하도록
    구성되며, 이때, 타겟 엔트리를 업데이트하는 것은, 타겟 캐시 위치가 두드러진 캐시 미스 동작에 연관되어 있음을 표시하도록 타겟 엔트리 내 이전 미스 비트를 설정하는 과정을 포함하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  16. 제 10 항에 있어서, 메모리 요청이 캐시 미스를 발생시키는 경우, 데이터 어레이 액세스 메커니즘은 이전 미스 버퍼 내에 캐시 미스에 대한 엔트리를 생성하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  17. 제 16 항에 있어서,
    상기 태그 액세스 메커니즘은 한 개 이상의 태그에 연관되어 있는 이전 미스 비트를 룩업하고, 그리고
    메모리 요청이 로드 동작에 대한 요청이고 상기 어드레스의 태그 부분이 태그 어레이 내 태그와 매치되며 연관된 캐시 라인이 두드러진 캐시 미스 동작에 종속됨을 표시하도록 해당 이전 미스 비트가 설정될 경우, 데이터 어레이 액세스 메커니즘은 이전 미스 버퍼 내에 메모리 요청에 대한 엔트리를 생성하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  18. 제 16 항에 있어서,
    상기 장치는 캐시 필 메커니즘(cache fill mechanism)을 추가로 포함하고,
    상기 캐시 필 메커니즘은,
    - 두드러진 캐시 미스 동작을 댓가로 하여 되돌아온 캐시 라인을 수신하고,
    - 되돌아온 캐시 라인을 데이터 어레이에 삽입하도록 캐시 필 동작을 실행하며, 그리고
    - 캐시 필 동작을 기다리고 있었던 이전 미스 버퍼 내 메모리 요청들을 완료시키도록
    구성되는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  19. 제 16 항에 있어서, 이전 미스 버퍼가 큐로 조직되는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  20. 제 10 항에 있어서, 상기 장치는 조정 메커니즘을 추가로 포함하고, 상기 조정 메커니즘은,
    a) 두드러진 캐시 미스의 리턴을 기다리고 있는 메모리 요청을 지닌 이전 미스 버퍼,
    b) 캐시 미스 동작에 의해 되돌아오는 캐시 라인들을 지닌 필 버퍼,
    c) 메모리 요청을 발생시키는 컴퓨터 시스템 파이프라인,
    d) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 로드 요청을 지닌 로드 버퍼, 그리고
    e) 데이터 어레이에 대한 회선쟁탈로 인해 지연된 저장 요청을 지닌 저장 버퍼
    로 구성되는 상기 a) 내지 상기 e) 간의 데이터 어레이에 대한 액세스들을 조정하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  21. 제 10 항에 있어서, 상기 장치는 두드러진 캐시 미스 동작에 연관되어 있는 캐시 위치에 대한 캐시 필 동작을 차단하는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  22. 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치로서,
    이 장치는 캐시 메모리, 캐시 메모리 내 요청 입력, 캐시 메모리 내의 태그 어레이, 캐시 메모리 내의 데이터 어레이, 태그 액세스 메커니즘, 데이터 어레이 액세스 메커니즘, 이전 미스 버퍼, 필 버퍼, 로드 버퍼, 그리고 저장 버퍼를 포함하고,
    상기 요청 입력은 메모리 요청을 수신하도록 구성되는 캐시 메모리 내에 위치하고, 이때, 상기 메모리 요청은 메모리 요청에 연관된 메모리 위치를 식별하는 어드레스를 포함하며,
    상기 태그 액세스 메커니즘은 상기 태그 어레이로부터 한 개 이상의 태그를 룩업(lookup)하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하는지를 결정하기 위해 상기 어드레스의 태그 부분을 상기 한 개 이상의 태그와 비교하며,
    상기 데이터 어레이 액세스 메커니즘은 캐시 메모리 내에 위치하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 데이터 어레이가 사용중일 경우, 데이터 어레이 액세스 메커니즘은 나중에 데이터 어레이가 비게 될 때 데이터 어레이에 대한 해당 데이터 액세스를 실행하며, 그리고
    상기 메모리 요청이 로드 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은 선행 로드 동작의 완료를 기다릴 필요없이 해당 데이터 액세스를 실행하고,
    상기 이전 미스 버퍼는 두드러진 캐시 미스의 리턴을 기다리고 있는 요청들을 지니며,
    상기 필 버퍼는 캐시 미스 동작들에 의해 되돌아오는 캐시 라인을 지니며,
    상기 로드 버퍼는 데이터 어레이에 대한 액세스의 회선 쟁탈로 인해 지연된 로드 요청들을 지니며, 그리고
    상기 저장 버퍼는 데이터 어레이에 대한 액세스의 회선쟁탈로 지연된 저장 요청들을 지니는 것을 특징으로 하는 캐시 메모리 내에서 태그 액세스를 해당 데이터 액세스로부터 분리시키는 장치.
  23. 태그 액세스를 해당 데이터 액세스로부터 분리하는 캐시 메모리를 포함하는 컴퓨터 시스템으로서,
    이 시스템은 프로세서, 메모리, 캐시 메모리, 캐시 메모리 내 요청 입력, 캐시 메모리 내의 태그 어레이, 캐시 메모리 내의 데이터 어레이, 태그 액세스 메커니즘, 그리고 데이터 어레이 액세스 메커니즘을 포함하고,
    상기 캐시 메모리는 프로세서와 메모리 사이에 연결되며,
    상기 요청 입력은 메모리 요청을 수신하도록 구성되는 캐시 메모리 내에 위치하고, 이때, 상기 메모리 요청은 메모리 요청에 연관된 메모리 위치를 식별하는 어드레스를 포함하며,
    상기 태그 액세스 메커니즘은 상기 태그 어레이로부터 한 개 이상의 태그를 룩업(lookup)하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하는 지를 결정하기 위해 상기 어드레스의 태그 부분을 상기 한 개 이상의 태그와 비교하며,
    상기 데이터 어레이 액세스 메커니즘은 캐시 메모리 내에 위치하고, 상기 어드레스를 지닌 캐시 라인이 캐시 메모리 내에 위치하지만 데이터 어레이가 사용중일 경우, 데이터 어레이 액세스 메커니즘은 나중에 데이터 어레이가 비게 될 때 데이터 어레이에 대한 해당 데이터 액세스를 실행하며, 그리고
    상기 메모리 요청이 로드 동작에 대한 요청일 경우, 데이터 어레이 액세스 메커니즘은 선행 로드 동작의 완료를 기다릴 필요없이 해당 데이터 액세스를 실행하는 것을 특징으로 하는 태그 액세스를 해당 데이터 액세스로부터 분리하는 캐시 메모리를 포함하는 컴퓨터 시스템.
KR1020047003430A 2001-09-14 2002-09-13 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 KR100617663B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32398901P 2001-09-14 2001-09-14
US60/323,989 2001-09-14
PCT/US2002/029259 WO2003025757A2 (en) 2001-09-14 2002-09-13 Method and apparatus for decoupling tag and data accesses in a cache memory

Publications (2)

Publication Number Publication Date
KR20040033029A true KR20040033029A (ko) 2004-04-17
KR100617663B1 KR100617663B1 (ko) 2006-08-28

Family

ID=23261595

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047003430A KR100617663B1 (ko) 2001-09-14 2002-09-13 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치

Country Status (6)

Country Link
US (1) US6944724B2 (ko)
EP (1) EP1425670A2 (ko)
JP (1) JP4417715B2 (ko)
KR (1) KR100617663B1 (ko)
AU (1) AU2002330027A1 (ko)
WO (1) WO2003025757A2 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137519A1 (en) * 2002-01-22 2003-07-24 Nazanda Rima M. Method and apparatus to handle multiple requests to different memory agents
US20050010595A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation System and method for automating an identification mechanism and type information configuration process for a real-time data feed to a database
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US8239638B2 (en) * 2007-06-05 2012-08-07 Apple Inc. Store handling in a processor
US7836262B2 (en) 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill
US20090006777A1 (en) * 2007-06-28 2009-01-01 Donley Greggory D Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
GB2456405B (en) * 2008-01-15 2012-05-02 Ibm Store aborting
US8103831B2 (en) * 2008-03-31 2012-01-24 Intel Corporation Efficient method and apparatus for employing a micro-op cache in a processor
US8332590B1 (en) * 2008-06-25 2012-12-11 Marvell Israel (M.I.S.L.) Ltd. Multi-stage command processing pipeline and method for shared cache access
JP2010033480A (ja) * 2008-07-31 2010-02-12 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US8868838B1 (en) 2008-11-21 2014-10-21 Nvidia Corporation Multi-class data cache policies
KR100985517B1 (ko) 2008-12-04 2010-10-05 주식회사 에이디칩스 캐시메모리 제어방법
JP2010146084A (ja) * 2008-12-16 2010-07-01 Toshiba Corp キャッシュメモリ制御部を備えるデータ処理装置
US20100169578A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Cache tag memory
US8352683B2 (en) * 2010-06-24 2013-01-08 Intel Corporation Method and system to reduce the power consumption of a memory device
US20130145097A1 (en) * 2011-12-05 2013-06-06 Qualcomm Incorporated Selective Access of a Store Buffer Based on Cache State
JP2014006807A (ja) * 2012-06-26 2014-01-16 Fujitsu Ltd 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法
US9110811B2 (en) * 2012-09-18 2015-08-18 Oracle International Corporation Prefetching method and apparatus
US9529720B2 (en) * 2013-06-07 2016-12-27 Advanced Micro Devices, Inc. Variable distance bypass between tag array and data array pipelines in a cache
US9632947B2 (en) * 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9779025B2 (en) 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
US10922230B2 (en) * 2016-07-15 2021-02-16 Advanced Micro Devices, Inc. System and method for identifying pendency of a memory access request at a cache entry
US10565109B2 (en) 2017-09-05 2020-02-18 International Business Machines Corporation Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface
US10579535B2 (en) 2017-12-15 2020-03-03 Intel Corporation Defragmented and efficient micro-operation cache

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
EP0568231B1 (en) * 1992-04-29 1999-03-10 Sun Microsystems, Inc. Methods and apparatus for providing multiple outstanding operations in a cache consistent multiple processor computer system
US5745729A (en) * 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
US6915396B2 (en) * 2001-05-10 2005-07-05 Hewlett-Packard Development Company, L.P. Fast priority determination circuit with rotating priority

Also Published As

Publication number Publication date
JP4417715B2 (ja) 2010-02-17
AU2002330027A1 (en) 2003-04-01
EP1425670A2 (en) 2004-06-09
US6944724B2 (en) 2005-09-13
WO2003025757A2 (en) 2003-03-27
US20030056066A1 (en) 2003-03-20
JP2005533295A (ja) 2005-11-04
WO2003025757A3 (en) 2003-10-16
KR100617663B1 (ko) 2006-08-28

Similar Documents

Publication Publication Date Title
KR100617663B1 (ko) 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
JP2005533295A5 (ko)
US6185660B1 (en) Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
US6473836B1 (en) Computing system and cache memory control apparatus controlling prefetch in hierarchical cache memories
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
US7594100B2 (en) Efficient store queue architecture
US6493791B1 (en) Prioritized content addressable memory
US4914582A (en) Cache tag lookaside
US7260674B2 (en) Programmable parallel lookup memory
US7058049B2 (en) Load store queue applied to processor
US5893146A (en) Cache structure having a reduced tag comparison to enable data transfer from said cache
EP0543487B1 (en) Method and cache memory controller for fetching data for a CPU that further reduces CPU idle time
JP2000285023A (ja) ファイル制御装置
US7461211B2 (en) System, apparatus and method for generating nonsequential predictions to access a memory
US20100106910A1 (en) Cache memory and method of controlling the same
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
US8356141B2 (en) Identifying replacement memory pages from three page record lists
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US7900023B2 (en) Technique to enable store forwarding during long latency instruction execution
US20230418749A1 (en) Processor and method for designating a demotion target to be demoted from an in-core cache structure to an out-of-core cache structure
JPH07182166A (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: 20120802

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150717

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 14