KR20070049677A - 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법 - Google Patents

가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법 Download PDF

Info

Publication number
KR20070049677A
KR20070049677A KR1020077006994A KR20077006994A KR20070049677A KR 20070049677 A KR20070049677 A KR 20070049677A KR 1020077006994 A KR1020077006994 A KR 1020077006994A KR 20077006994 A KR20077006994 A KR 20077006994A KR 20070049677 A KR20070049677 A KR 20070049677A
Authority
KR
South Korea
Prior art keywords
data
stored
virtual address
task identifier
cache
Prior art date
Application number
KR1020077006994A
Other languages
English (en)
Other versions
KR101102260B1 (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 KR20070049677A publication Critical patent/KR20070049677A/ko
Application granted granted Critical
Publication of KR101102260B1 publication Critical patent/KR101102260B1/ko

Links

Images

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
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

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

데이터 공유를 위한 가상 어드레스 캐시 및 방법. 가상 어드레스 캐시는 다음을 포함한다: 가상 어드레스들을 저장하도록 구성된, 메모리, 태스크 식별자 및 가상 어드레스들 및 태스크 식별자와 관련된 데이터; 및 메모리에 접속된 비교기. 상기 비교기는 수신된 가상 어드레스의 적어도 일부가 특정의 저장된 가상 어드레스의 적어도 한 관련 부분과 같고, 다음의 기준들; (i) 수신된 태스크 식별자가 저장된 태스크 식별자와 같고, (ii) 특정의 저장된 가상 어드레스와 관련된 저장된 태스크 식별자는 데이터가 다중 태스크들 간에 공유되는 것을 나타내는; 기준들 중 적어도 하나가 충족된다면, 수신된 가상 어드레스 및 수신된 태스크 식별자와 관련된 데이터가 메모리에 저장되는 것을 결정하도록 구성된다. 방법은: 데이터를 어드레스 하기 위해 가상 어드레스 및 태스크 식별자를 수신하는 단계; 메모리에 저장된 데이터에 관련하여 어드레스의 적어도 일부를 가진 수신된 가상 어드레스의 적어도 일부의 비교에 기초하고, 다음의 기준들; (i) 수신된 태스크 식별자가 저장된 태스크 식별자와 같고, (ii) 특정의 저장된 가상 어드레스와 관련된 저장된 태스크 식별자는 데이터가 다중 태스크들 간에 공유되는 것을 나타내는; 기준들 중 적어도 하나의 충족에 기초하는, 데이터가 메모리에 저장되는지에 관련하여 결정을 하는 단계를 포함한다.
가상 어드레스 캐시, 태스크 식별자, 고유 태스크 논리, 데이터 캐시, 캐시 논리

Description

가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는 데이터를 공유하기 위한 방법{A VIRTUAL ADDRESS CACHE AND METHOD FOR SHARING DATA USING A UNIQUE TASK IDENTIFIER}
본 발명은 가상 어드레스 캐시(virtual address cache) 및 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법에 관련하여 것이다.
디지털 데이터 처리 시스템들은 예를 들면 데이터 처리 시스템, 소비자 가전, 컴퓨터, 자동차, 등을 포함하는 다수의 어플리케이션들에서 이용된다. 예를 들면, 개인용 컴퓨터(PCs)은 유저의 광범위한 어플리케이션을 위한 플랫폼을 제공하기 위해 복잡한 디지털 처리 기능을 이용한다.
디지털 데이터 처리 시스템들은 전형적으로 입력/출력 기능, 명령 및 데이터 메모리, 및 마이크로제어기, 마이크로프로세서 또는 디지털 신호 처리기와 같은 한 개의 또는 그 이상의 데이터 처리기들을 포함한다.
처리 시스템의 실행에 있어서 중요한 파라미터는 메모리 실행(memory performance)이다. 최적의 실행을 위해, 메모리가 크고, 빠르고, 및 가급적 저렴한 것이 요구된다. 불행히도 이러한 특성들은 요구들과 상충되는 경향이 있고, 해당 절충이 디지털 시스템을 디자인할 때 요구된다.
처리 시스템들의 메모리 실행을 개선하기 위해, 메모리의 여러 가지 타입들의 개개의 이점들을 개발하게 하는 복잡한 메모리 구조들이 개발되어왔다. 특히, 더 크고, 더 느리고, 및 더 저렴한 메인 메모리(main memory)에 연관하여 빠른 캐시 메모리(cache memory)를 이용하는 것이 일반화되었다.
예를 들면, PC에 있어서, 메모리는 통상적으로 상이한 사이즈 및 속도의 메모리를 포함하는 메모리 계층(memory hierarchy)으로 구성된다. 따라서 PC는 전형적으로 크고, 저렴하지만 저속인 메인 메모리를 포함하고, 부가하여, 상대적으로 작고 고가이지만 고속인 메모리를 포함하는 한 개의 또는 그 이상의 캐시 메모리 레벨들을 가질 것이다. 동작 중에 메인 메모리로부터의 데이터는 캐시 메모리에 동적으로 카피되어, 빠른 판독 사이클들을 가능하게 한다. 유사하게, 데이터는, 메인 메모리보다는 캐시 메모리에 기록될 수 있으며, 그에 따라 빠른 기록 사이클들을 가능하게 한다.
따라서, 캐시 메모리는 메인 메모리의 상이한 메모리 위치들에 동적으로 결합되고, 메인 메모리와 캐시 메모리 간의 인터페이스(interface) 및 상호작용(interaction)은 만족스러운 성능을 위해 중대하다는 것은 명백하다. 따라서 캐시 동작에 대한 중요한 연구가 실행되어 왔고, 데이터가 캐시 메모리와 메인 메모리 간에 전송될 때뿐만 아니라, 데이터가 메인 메모리보다는 캐시 메모리로 기록되거나 캐시 메모리로부터 판독될 때의 제어를 위한 다양한 방법들 및 알고리즘들이 개발되어 왔다.
통상적으로, 처리기가 판독 동작을 수행할 때마다, 우선 캐시 메모리 시스템은 대응하는 메인 메모리 어드레스가 현재 캐시와 관련되어 있는지 여부를 검사한다. 캐시 메모리가 메인 메모리 어드레스에 대한 유효 데이터 값을 포함한다면, 이 데이터 값은 캐시에 의해 시스템의 데이터 버스 상에 놓이고, 판독 사이클은 대기 사이클들(wait cycles) 없이 실행된다. 그러나 캐시 메모리가 메인 메모리 어드레스에 대한 유효 데이터 값을 포함하지 않는다면, 메인 메모리 판독 사이클이 실행되고 데이터는 메인 메모리로부터 검색된다. 통상적으로 메인 메모리 판독 사이클은 한 개의 또는 그 이상의 대기 상태들을 포함하기 때문에 처리가 느리다.
처리기가 캐시 메모리로부터 데이터를 수신할 수 있는 메모리 동작은 통상적으로 캐시 히트(cache hit)라 하고, 처리기가 캐시 메모리로부터 데이터를 수신할 수 없는 메모리 동작은 통상적으로 캐시 미스(cache miss)라고 한다. 통상적으로, 캐시 미스는 처리기가 메인 메모리로부터 데이터를 검색하는 결과를 가져올 뿐만 아니라 메인 메모리 및 캐시 간의 다수의 데이터 전송들이라는 결과를 가져온다. 예를 들면, 캐시 미스를 가져오는 주어진 어드레스가 액세스되면, 수반하는 메모리 위치들이 캐시 메모리로 전송될 수 있다. 처리기들이 연속적인 메모리 위치들 자주 액세스함에 따라, 캐시 메모리가 희망하는 데이터를 포함하는 확률은 통상적으로 증가한다.
캐시의 히트 레이트(hit rate)를 개선하기 위해, 명령들 및/또는 데이터가 N 개의 저장 블록들(N storage blocks)(즉, '웨이들')의 하나에 저장되는 N-웨이 캐 시들(N-way caches)이 이용된다.
캐시 메모리 시스템들은 통상적으로 캐시 라인들로 나뉘고, 이는 캐시 메모리의 레졸루션(resolution)에 대응한다. 세트-어소시어티브 캐시 시스템들(set-associative cache systems)로 알려진 캐시 시스템들에서, 다수의 캐시 라인들은 서로 다른 세트들로 그룹핑되고, 여기서 각각의 세트는 메인 메모리 어드레스들의 더 낮은 데이터 비트들로 고정 매핑에 대응한다. 세트를 형성하는 각각의 캐시 라인의 극단적인 경우는 직접 매핑식의 캐시(direct mapped cache)로 알려져 있고, 각각의 메인 메모리 어드레스가 한 개의 특정 캐시 라인에 매핑된다. 모든 캐시 라인들이 단일 세트(single set)에 속하는 다른 극단적인 경우는 완전한 어소시어티브 캐시(fully associative cache)로 알려져 있고, 이는 각각의 캐시 라인이 어떤 메인 메모리 위치에 매핑되도록 한다.
(만약 어떤) 각각의 캐시 라인이, 어느 메인 메모리 어드레스와 연관되는지를 추적하기 위해, 캐시 메모리 시스템은 통상적으로, 각각의 캐시 라인에 대해 라인 및 메인 메모리 간의 현재 매핑을 나타내는 데이터를 유지하는 데이터 어레이(data array)를 포함한다. 특히, 통상적으로 데이터 어레이는 연관된 메인 메모리 어드레스의 더 높은 데이터 비트들을 포함한다. 이러한 정보는 통상적으로 태그로 알려져 있고, 데이터 어레이는 태그-어레이로 알려져 있다. 덧붙여, 더 큰 캐시 메모리들에 대해 어드레스의 서브세트(즉, 인덱스)은, 어드레스의 최상위 비트들(즉, 태그)이 데이터와 함께 저장되는 캐시 내의 라인 위치를 지정하는 데에 이용된다. 인덱싱이 이용되는 캐시에서, 특정한 어드레스와 함께 아이템이 해당 인덱스 에 의해 지정된 라인들의 세트 내에만 위치될 수 있다.
처리기로 하여금 데이터를 판독하고 메모리에 기록하게 하기 위해, 통상적으로 처리기가 가상 어드레스를 생성할 것이다. 물리적 어드레스(physical address)는 처리기에 의해 생성되는 가상어드레스와 관련된 메인(즉, 더 높은 레벨의) 메모리의 어드레스이다. 멀티-태스크 환경(multi-task environment)은 상이한 태스크들을 상이한 시간에 처리기가 처리할 수 있는 환경이다. 멀티-태스크 환경 내에서, 상이한 태스크들에 의해 생성되는 동일한 가상 어드레스들은 반드시 동일한 물리적 어드레스와 관련되는 것은 아니다. 상이한 태스크들 간에 공유되는 데이터가 이 데이터를 공유하는 모든 태스크들에 대해 동일한 물리적인 위치에 저장되고, 반면 상이한 태스크들 간에 공유되지 않는 데이터(즉, 사용(私用) 데이터(private data))는 그 태스크에 고유한 물리적인 위치에 저장될 것이다.
이것은 도 1에서 더욱 명확하게 설명된다, 여기서 y-축은 가상 어드레스 공간을 정의하고, x-축은 시간을 정의한다. 도 1은 네 개의 태스크들(51 - 54)을 설명한다. 각각의 태스크의 실행은 코드 및 데이터를 페치(fetch)하는 것을 필요로 한다. 제 1 태스크(51)의 실행은 사용 코드(private code)(11), 공유 코드(shared code)(12), 공유 데이터(shared data)(13) 및 사용 데이터(private data)(14)를 페치하는 것을 포함한다. 제 2 태스크(52)의 실행은 사용 코드(21), 및 공유 데이터(22)를 페치하는 것을 포함한다. 제 3 태스크(53)의 실행은 사용 코드(31), 공유 코드(32), 공유 데이터(34) 및 사용 데이터(33)를 페치하는 것을 포함한다. 제 4 태스크(54)의 실행은 사용 코드(41), 공유 데이터(43) 및 사용 데이터(42)를 페치 하는 것을 포함한다. 공유 코드(12 및 32)는 동일한 가상 어드레스들 및 동일한 물리적 어드레스들을 갖도록 구성된다. 공유 데이터(13, 22, 34 및 43)는 동일한 가상 어드레스들을 갖도록 구성되지만, 외부 메모리에 저장된 관련 데이터는 상이한 물리적 어드레스들에 저장될 것이다. 도 1에서 각각의 박스는 다중 어드레스들을 표시하는 것이 주의된다.
결과적으로, 가상 어드레스 캐시는 처리기에 의해 생성되는 가상 어드레스와 관련하여 데이터를 저장할 것이고, 반면에 외부 메모리에 저장될 데이터는 물리적 어드레스 공간(physical address space)에 저장된다.
또한, 멀티-태스킹 환경에서 동작하는 가상 어드레스 캐시는, 저장된 데이터에 연관된 어드레스/태그를 저장하기 위한 어드레스 또는 태그 필드(address or tag field)와, 어드레스/태그 및 데이터가 어느 태스크에 관한 것인지를 식별하기 위한 태스크 식별자 필드(task identifier field)를 가질 것이다.
결과적으로, 멀티-태스킹 환경 내에 '히트(hit)'는, 캐시에 저장된 데이터에 대한 어드레스/태그가 처리기에 의해 요구되는 가상 어드레스와 매치하고 캐시에 저장된 데이터와 관련된 태스크 식별자 필드가 처리기에 의해 실행되는 현재 활성 태스크(current active task)와 매치하는 것을 요구한다.
처리기가 한 개의 태스크에서 다른 태스크로 스위치 될 때, 제 1 태스크에 관련된 가상 어드레스 데이터 캐시의 컨텐트들이 통상적으로 더 높은 레벨 메모리에 플러시(flush)되고, 새로운 태스크와 관련된 새로운 데이터가 가상 어드레스 캐시에 로딩된다. 이는 새로운 태스크로 하여금 두 개의 태스크들 간에 공유되는 업 데이트된 데이터를 이용할 수 있게 한다. 그러나 태스크들 간의 스위칭 시의 메모리 컨텐트들을 교환할 필요는 캐시 및 더 높은-레벨 메모리 간에 버스 트래픽을 증가시키고, 처리 간의 통신(inter-process communication)을 다루는 데에 있어서 오퍼레이팅 시스템의 복잡성을 증가시킨다. 또한, 이는 플러시 후에 공유 데이터에 대해 중복된 시간을 낭비하는 '미스(miss)' 액세스들을 생성한다. 공유 코드의 경우, 태스크 스위치 후에 플러시가 필요하지 않으나, 이는 캐시 메모리에 공유 코드를 복사할 필요에 의해 공유 코드의 풋프린트(footprint)를 증가시킨다.
한 개의 해법은 물리적 어드레스 캐시를 이용하는 데에 있다. 여기서 번역기(translator)가 처리기에 의해 생성되는 가상 어드레스를 물리적 어드레스 캐시에 데이터를 저장하는 데에 이용되는 개개의 물리적 어드레스로 번역하고, 따라서 태스크들 간에 공유 데이터가 그것의 물리적 어드레스에 의해 쉽게 식별되는 것을 보장한다.
그러나, 가상 어드레스의 그것의 대응하는 물리적 어드레스로의 번역은 엄격한 시간 제한들을 갖는 고속 처리기들에서 구현하는 것이 어려울 수 있다.
이러한 상황을 개선하는 것이 바람직하다.
발명의 요약
본 발명은, 동반하는 청구항들에 기술된 바에 따라, 가상 어드레스 캐시 및 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법을 제공한다.
공유 데이터 또는 공유된 명령에 관련된 태스크 식별자에 제한되지 않는다는 같은 표시는 그들이 태스크들 간에 공유되는 것을 나타낸다.
본 발명은 동반하는 도면들을 참조하는 예들로 기술될 것이다.:
도 1은 가상 어드레스 공간 대 시간 차트를 도시하는 도면;
도 2는 본 발명의 실시예에 따른, 장치를 도시하는 도면;
도 3은 본 발명의 실시예에 따른, 캐시 논리의 개략도;
도 4는 본 발명의 실시예에 따른, 비교기의 다양한 구성요소들 및 그것의 환경들을 도시하는 도면; 및
도 5는 데이터 공유를 위한 데이터 공유를 위한 방법의 플로우차트.
다음의 기술은 다중 데이터 검색 동작들 및 데이터를 저장하는 가상 어드레스 캐시에 관련하여 것이다. 당업자들은 발표된 시스템들 및 방법들이 명령 검색, 명령들을 저장하는 가상 어드레스 캐시, 및 심지어는 데이터 및 명령 검색의 조합과 명령들 및 데이터를 모두 저장하는 캐시 모듈들에 대해서도 필요한 변경을 가해서 적용될 수 있다는 것을 이해할 것이다.
도 2는 본 발명의 실시예에 따른, 장치(100)를 설명한다. 장치(100)는 처리기(processor)(110), 데이터 채널(data channel)(130), 메모리 관리 장치(Memory Management Unit:MMU)(300)와 같은 메모리 제어기, 명령 채널(instruction channel)(340), 레벨 1 RAM 메모리(level-one RAM memory)(370) 및 인터페이스 장치(interface unit)(380)를 포함한다. 장치(100)는 시스템 버스(60)를 통해 하이-레벨 메모리 모듈(high-level memory module)(50)과 같은 추가적인 메모리 모듈에 접속된다.
처리기(110) 및 명령 채널(340)은 단일 프로그램 버스(single program bus)(120)에 접속된다. 처리기(110)는 제 1 데이터 포트(116) 및 제 2 데이터 포트(118)를 갖는다. 제 1 데이터 포트(116)는 제 1 데이터 버스(122)를 통해 데이터 채널(130)의 제 1 포트(132), MMU(300) 및 레벨 1 RAM 메모리(370)에 접속된다. 제 2 데이터 포트(118)는 제 2 데이터 버스(XB)(124)를 통해 데이터 채널(130)의 제 2 포트(134), MMU(300) 및 레벨 1 RAM 메모리(370)에 접속된다.
데이터 채널(130)은, 데이터 페치 버스(data fetch bus)(126)를 통해, 교대로 하이-레벨 메모리 모듈(50)에 접속되는 인터페이스(380)로 접속된다. 추가적인 메모리는 다중-레벨 캐시 아키텍처(multi-level cache architecture)의 일부일 수 있다는 것이 주의된다. 반면, 데이터 캐시 모듈(200)와 같은 가상 어드레스 캐시는 레벨 1 캐시 모듈이고, 추가적인 메모리는 레벨 2 캐시 메모리이다. 또한 추가적인 메모리는 메인 메모리라 불리는 외부 메모리의 일부일 수 있다. 데이터 채널(130)은 데이터 캐시 모듈(200)을 포함하고, 버퍼들 및 유사한 것과 같은 추가적인 디바이스들(도시되지 않음)을 선택적으로 포함할 수 있다. 캐시 미스(cache miss)가 일어날 때, 데이터 채널은 인터페이스 장치(380)를 통해 데이터를 검색한다.
MMU(300)은 프로그램 및 데이터 하드웨어 보호를 제공하고, 고속 가상 어드레스를 물리적 어드레스로 번역에 수행하도록 구성된다. 또한, MMU(300)는 다양한 캐시 및 버스 제어 신호들을 제공할 수 있다. 가상 어드레스는, 처리기(100)에 의해 생성되고, 처리기(110)에 의해 실행되는 코드에 의해 고려되는 어드레스다. 물리적 어드레스는 레벨 1 RAM 메모리(370)와 같은 다양한 더 높은-레벨 메모리 뱅크들에 액세스하는데에 이용된다. 일단 처리기(110)가 데이터 캐시(data cache)(200)로부터 데이터를 요구하면, MMU(300)는 데이터 요청(또는 더 일반적으로는 처리기(100)에 의해 실행중인 태스크)에 관련된 태스크 식별자(task identifier)를 데이터 캐시(200)로 보낸다. 통상적으로, 처리기(100)는 업데이트된 태스크 식별자를 MMU(300)로 보내는 오퍼레이팅 시스템을 실행한다.
MMU(300)는 어느 데이터가 공유되고, 어느 명령이 공유되는지를 규정하도록(또는 대안적으로는 다른 디바이스로부터 그러한 정의를 수신하도록) 구성된다. MMU(300)는 공유 데이터 표시를 데이터 캐시(200)로 송신할 수 있고, 데이터 캐시(200)에 저장된 태스크 식별자를 변경할 수 있다. 상기 변경은 데이터 캐시(200)로 제어 신호를 송신함으로써 또는 고유 태스크 식별자(unique task identifier)를 데이터 캐시(200)로 송신함으로써 시작될 수 있다.
처리기(110)는 버스들 XA(122) 및 XB(124)을 통해, 동시에, 두 개의 데이터 요청들을 발행할 수 있다. 데이터 채널(130)은 한 개의 또는 그 이상의 캐시 히트가 일어났는지 여부를 결정하기 위해 요청들을 처리한다. 기본적으로, 데이터 채널(130)은, 두 개의 데이터 요구들이 캐시 히트로 귀결되거나, 두 요청이 캐시 미 스로 귀결되거나, 또는 하나의 요청이 캐시 히트로 귀결되는 반면 다른 하나는 캐시 미스로 귀결되는 것을 결정할 수 있다.
도 3은 본 발명의 실시예에 따른, 캐시 논리의 일부(212)를 설명하는 개략도이다. 캐시 논리(cache logic)(210)는 두 개의 데이터 요구들을 동시에 처리할 수 있고 두 개의 동등한 부분들(212 및 214)을 포함한다, 각각은 단일 캐시 히트 또는 캐시 미스가 일어났는지 여부를 결정할 수 있다. 설명의 단순화를 위하여, 캐시 논리(210)의 제 1 부분(212)만이 상세하게 설명된다.
캐시 논리 부분(cache logic portion)(212)은 WAYO - WAY7 (220(0) - 220(7))로 표현되는 8 개의 웨이들(ways)을 포함한다. 각각의 웨이는 16 라인들에 관련된 어드레스 및 상태 정보를 저장한다. 어드레스 정보(address information)는 태그 어드레스(tag address)를 포함하고, 상태 정보(status information)는 BDU 유효 및 업데이트 정보(BDU validity and update information)를 포함한다. 정보의 단순화를 위해서 WAYO (220(0))만이 상세하게 설명되고, 반면 다른 웨이들은 (220(1)) - (220(7))의 상자로 표현된다. 이 캐시 논리 부분은 8 이상의 웨이들 또는 1 ~ 7 웨이들을 포함할 수 있다는 것이 주의된다.
캐시 논리 부분(212)은 그러한 태스크 식별자와 관련된 데이터가 다중 태스크들 간에 공유되는 것을 나타내는 태스크 식별자 값들을 저장할 수 있는 고유 태스크 논리(unique task logic)(409)를 포함한다.
도 1이 모든 태스크들 간에 공유되는 데이터를 설명하더라도, 이는 반드시 그러할 필요는 없고, 데이터가 특정 태스크들 간에 공유되는 반면에 다른 태스크들 에 의해 공유되지 않을 수 있다. 따라서, 고유 태스크 식별자 값이 데이터를 공유하는 태스크들의 각 서브-그룹에 할당된다.
고유 태스크 논리(409)는, 데이터가 공유되는지 여부를 결정하기 위해, 저장된 태스크 식별자를 고유 태스크 식별자 값들과 비교할 수 있는 비교기들(comparators)(410(0) - 410(9)) 같은 비교기들로, 이러한 값들을 보낸다.
본 발명의 다른 실시예에 따르면, 고유 태스크 논리(409)는 저장된 태스크 식별자가 공유 데이터를 나타내는지 여부도 결정할 수 있다. 고유 태스크 논리(409)는 저장된 태스크 식별자들이 자신들과 관련된 데이터가 공유되는 것을 나타내는지 여부를 결정하기 위해 저장된 태스크 식별자의 일부만을 비교하기 위한 매스킹 논리(masking logic)를 포함할 수 있다.
다음의 예들이 고유 태스크 논리(409)의 동작을 더 잘 설명한다. 태스크 식별자는 8비트 길이라고 가정한다. 데이터가 모든 태스크들 간에 공유된다면, 0(zero)의 고유 태스크 식별 값은 공유 데이터 결정을 단순화할 수 있다. 8 개의 입력들을 갖는 NOR 게이트는 저장된 태스크 식별자를 수신하고, 저장된 태스크 식별자에 관련된 데이터가 공유되는 것을 나타내는지 여부의 표시를 제공할 수 있다. "11111111"의 고유 태스크 식별 값이 선택된다면, 8개의 입력들을 갖는 AND 게이트가 결정을 제공할 수 있다. 어떠한 경우에도, 8-비트 비교기는 비교를 수행할 수 있다.
데이터가 단지 태스크들의 서브-그룹 간에 공유되고, 캐시 논리가 캐시 히트가 일어나는지 여부를 결정해야할 때(저장된 태스크 식별자가 값들의 특정 범위의 값들에 속한다면) 이는 저장된 태스크 식별자의 일부를 매스킹하고(masking), 일부만을 고유 태스크 식별자 값들에 비교함으로써, 구현될 수 있다.
고속 비교 방법들(high-speed comparison methods)이 기술분야에서 알려져 있고 캐시 논리에 의해 적용될 수 있다는 것이 주의된다.
캐시 논리 부분(212)으로 돌아가 참조하면, 각각의 캐시 라인(cache line)이 확장된 태그 값 및 상기 라인 내에서 각각의 BDU의 유효를 나타내는 16 BDU(basic data unit) 유효 비트들(sixteen BDU validity flags bits)과 관련된다. WAYO(220(0))는 16 개의 BDU 유효 플래그들의 세트(220(0,0) - 220(15,15))의 16세트들뿐만 아니라 16 개의 확장된 태그 어드레스들(221(0) - 221(15))을 저장한다.
확장된 태그 어드레스(또한, 저장된 확장 태그 어드레스들로 참조되는)는 저장된 태스크 식별자뿐만 아니라 저장된 가상 어드레스의 일부(보통, 최상위 부분)을 포함한다. 예를 들면, 확장된 태그 어드레스(221(0))는 가상 어드레스의 일부를 포함하고, 또한 저장된 태그 어드레스(223(0)) 및 저장된 태스크 식별자(222(0))로 참조된다. BDU는 데이터 검색을 위한 기본 구성요소이다.
또한, 각각의 BDU는 더 높은-레벨 메모리에서 업데이트되지 않고 변경되었는지 여부를 나타내는 더티 비트들(dirty bits)과 관련될 수 있다.
데이터 캐시(200)로부터의 데이터 검색은 (MMU(300)로부터) 8-비트 태스크 식별자 및 (데이터 버스들 XA 및 XB중 하나를 통해 처리기(110)로부터) 어드레스(400)를 캐시 논리(210)에 제공함으로써 시작된다. 캐시 논리(210)의 제 1 부분(212)은, 요청된 데이터가 캐시 모듈에 저장되는지(캐시 히트) 아닌지(캐시 미 스)를 결정하기 위해, 이러한 어드레스 및 태스크 식별자를 처리한다. 캐시 히트가 일어난다면, 요청된 데이터는 XA(122) 또는 XB(124)중 적당한 데이터 버스를 통해 처리기(110)로 송신된다.
어드레스(400)는 태그 어드레스(402), 라인 인덱스(404), BDU 오프셋(405) 및 바이트 오프셋(byte offset)(408)으로 분할된다. 바이트 오프셋(408)은 캐시 메모리 뱅크(250)로부터의 데이터 검색을 위해 이용된다. 확장된 태그 어드레스는 상기 태그 어드레스(402) 및 태스크 식별자(401)를 포함한다.
비교기들(410(0) - 410(7))은 병렬로 동작한다. 설명의 편의를 위해, 비교기(410(0))를 참조할 것이다. 비교기(410(0))는 다음의 것들: (a) 가상 어드레스(400), 또는 통상적으로, 어드레스(400)의 일부인 태그 어드레스(402), (b) 저장된 가상 어드레스, 또는 통상적으로 저장된 태그 어드레스(223(0)), (c) 고유 태스크 논리(409)로부터의 고유 태스크 식별자 값(또는 데이터가 공유된다는 표시 중 하나), (d)(222(0))와 같은 저장된 태스크 식별자, 및 (e) 처리기(110)에 의해 어느 태스크가 실행되고 있는지를 나타내는, 태스크 식별자(401) 같은, 현재의 태스크 식별자(current task identifier)를 수신한다.
비교기(410(0))는, 태그 어드레스(402)가 저장된 태그 어드레스(223(0))와 같고 다음의 조건; (i) 수신된 태스크 식별자(401)가 저장된 태스크 식별자(222(0))와 같다, (ii) 저장된 태스크 식별자(220(0))가 데이터가 다중 태스크들 간에 공유되는 것을 나타낸다; 라는 조건 중 하나 또는 둘이 만족된다면, 요청된 데이터가 데이터 캐시(200) 내에 저장되는 것을 결정할 것이다.
본 발명의 실시예에 따르면, 처리기(110)가 데이터 캐시(200) 내에 저장되지 않은 특정 데이터를 검색할 것을 요구하는 처음, 이 데이터가 외부 메모리로부터 검색된다. 이 데이터는 보통 초기에 캐시 미스를 유발하는 태스크 식별자와 함께 데이터 캐시(200)에 저장된다. 그럼에도, MMU(300)가 데이터가 공유되는 것을 결정한다면, 그것은 캐시 논리 부분(212)이 저장된 태스크 식별자를 고유 태스크 식별자로 변경하게 한다.
덧붙여, BDU 오프셋(BDU offset)(405) 및 라인 인덱스(line index)(404)는 요청된 BDU에 대응하는 유효 플래그(validity flag)를 검색하는 데에 이용된다. 4-비트 라인 인덱스(404)는 WAYO(220(0))의 16 개의 세트들에서 BDU 유효 플래그들의 세트를 선택하는 데에 이용되고, 반면 4-비트 BDU 오프셋(405)은 BDU 유효 플래그들의 선택된 세트에서 유효 플래그를 선택하는 데에 이용된다.
비록 지금 실시예가 태스크 식별자가 메모리 제어기(memory controller)(104)에 의해 제공됨을 보여줄지라도, 가상 어드레스 데이터 캐시(100)는 컴퓨팅 시스템 내의 다른 구성요소, 예를 들면 처리기(101)로부터 태스크 식별자를 수신할 수 있다.
도 4는 본 발명의 실시예에 따른 비교기의 다양한 구성요소들(410(0)) 및 그것의 환경들을 설명한다.
비교기(410(0))는 제 1 비교기 구성요소(401(0)), 제 2 비교기 구성요소(402(0)), OR 게이트(403(0)), AND 게이트(404(0)) 및 제 3 비교기(405(0))를 포함한다.
제 1 비교기 구성요소(401(0))는, 제 1 비교 신호(comparison signal)(C_1(0))를 제공하기 위해, 수신된 태그 어드레스(402)를 저장된 태그 어드레스(223(0))와 비교한다. 제 2 비교기 구성요소(402(1))는, 제 2 비교 신호(C_2(0))를 제공하기 위해, 저장된 태스크 식별자(222(0))를 (MMU(300)에 의해 제공되는) 태스크 ID(401)와 비교한다. 저장된 태스크 식별자(222(0))는, 제 3 비교 신호 (C_3(0))를 제공하기 위해, 고유 태스크 논리(409)에 의해 제공되는 고유 태스크 식별자 값과 비교된다. 앞서 언급된 대로, 고유 태스크 논리(409)는 저장된 태스크 식별자(220(0))가 관련된 데이터가 다른 수단들에 의해 공유되는 것을 나타내는지 여부를 결정할 수 있다. OR 게이트(403(0))는 C_2(0) 및 C_3(0)를 수신하고, 제 4 비교 신호(C_4(0))를 제공한다. 여기서, C_4(0) = C_2(0) OR C_3(0). AND 게이트(404(0))는 C_1(0) 및 C_4(0)을 수신하고, 캐시 히트/미스 신호(H/M(0))를 제공한다. 여기서, H/M(0) = C_4(0) OR C_1(0).
모든 웨이들이 병렬로 동작하거나, 또는 더 특별히 모든 웨이들에서 동일한 인덱스가 병렬로 동작한다. 따라서, 하나의 캐시 히트/미스 신호가 캐시 히트가 일어난 것을 표시한다면, 또한 대응하는 데이터가 유효하다면, 캐시 히트가 일어난다.
캐시 논리(210) 및 MMU(300)의 동작이 다음의 표로써 설명된다. R_TAG는 태그 어드레스(402)와 같은 수신된 태그 어드레스이다; R_T_ID는 태스크 식별자(401)와 같은 수신된 태스크 식별자; 및 S_T_ID는 저장된 태스크 식별자(221(0))와 같은 저장된 태스크 식별자이다. C_l - C_4는 비교기(410(0))의 비교 신호들과 같은 비 교 신호들이고, H/M는 캐시 히트/미스 신호(H/M(0))와 같은 캐시 히트/미스 신호이다.
Figure 112007024166853-PCT00001
도 5는 본 발명의 실시예에 따른, 데이터 공유를 위한 방법(500)의 플로우차트이다.
방법(500)은 데이터를 어드레스하기 위한 가상 어드레스 및 태스크 식별자를 수신하는 단계(510)로 시작한다. 도 2 - 4에서 설명된 예를 참조하면, 캐시 논리(210)의 제 1 부분(212)은 어드레스(400) 및 태스크 식별자(401)를 수신한다.
단계(510) 다음에, 메모리에 저장된 데이터에 관련된 어드레스의 적어도 일부와 수신된 가상 어드레스의 적어도 일부의 비교에 기초하고, 다음의 기준들; (i) 수신된 태스크 식별자는 저장된 태스크 식별자와 같고, (ii) 특정의 저장된 가상 어드레스에 관련된 저장된 태스크 식별자는 데이터가 다중 태스크들 간에 공유되는 것을 나타내는; 기준들 중 적어도 하나의 충족에 기초하여, 메모리에 상기 데이터가 저장되는지에 관한 결정을 하는 단계(520)가 뒤따른다. 도 2 - 4에서 설명된 예를 참조하면, 비교기들 각각(410(0) - 410(7))은 수신된 태스크 식별자(401) 및 어드레스(400)의 일부들을 저장된 태스크 식별자(221(0)- 221(7)) 및 저장된 태그 어드레스들(222(0) - 222(7))과 비교한다.
단계(520) 다음에, 캐시 히트가 일어나면, 캐시로부터 데이터를 제공하는, 단계(530)가 뒤따른다. 캐시 모듈로부터 데이터를 수신하기 위한 다른 요청이 수신될 때, 단계(530) 다음에 단계(510)가 뒤따른다.
단계(520) 다음에, 캐시 미스가 일어나면, 다른 메모리 모듈로부터 데이터를 페치하는(fetching) 단계(540)가 뒤따른다. 또한, 단계(540)는 데이터와 관련된 태그 어드레스 및 태스크 식별자를 저장하는 것을 포함한다. 단계(540) 다음에, 관련된 데이터가 태스크들 간에 공유되는 것을 나타내도록 태스크 식별자를 변경하는지 여부를 결정하고 이 결정에 응답하여 선택적으로 변경하는 단계(550)가 뒤따른다. 단계(550) 다음에 단계(510)가 뒤따른다.
편리하게는, 단계(520)가 판독 사이클의 일부 내에서 종료된다.
본 발명의 다른 실시예에 따르면, 태스크 식별자와 다른 특정 필드, 속성 또는 비트가, 데이터가 다중 태스크들 간에 공유되는 것을 나타낸다. 편리하게는, MMU(300)는 가상 어드레스 캐시에 상기 표시를 제공하고, 후에 태스크 식별자를 제공하지 않는다.
여기에 기술된 사항의 변화들, 변경들, 및 다른 구현들이 청구항에 따른 본 발명의 정신 및 범위에서 벗어나지 않고 당업자에게 가능할 것이다. 따라서, 본 발명은 앞에서 예시한 상세한 설명에 의해서뿐만 아니라 뒤따르는 청구 범위의 따른 정신 및 범위에 의해 서로 정의되어야한다.
본 발명은 다중 데이터 검색 동작들 및 데이터를 저장하는 가상 어드레스 캐시에 관련하여 것이다. 본 발명은 발표된 시스템들 및 방법들이 명령 검색, 명령들을 저장하는 가상 어드레스 캐시, 및 심지어는 데이터 및 명령 검색의 조합 및 명령들 및 데이터를 모두 저장하는 캐시 모듈들의 분야에서도 해당 변경을 가해 적용될 수 있다.

Claims (13)

  1. 가상 어드레스 캐시(virtual address cache)에 있어서:
    가상 어드레스들(virtual addresses), 태스크 식별자들(task identifiers), 및 상기 가상 어드레스들 및 상기 태스크 식별자와 관련된 데이터를 저장하도록 구성된 메모리; 및
    상기 메모리와 접속된 비교기로서, 수신된 가상 어드레스의 적어도 일부가 특정의 저장된 가상 어드레스의 적어도 대응 부분과 같고, 다음 기준들 : (i) 상기 수신된 태스크 식별자는 저장된 태스크 식별자와 같고, (ii) 상기 특정의 저장된 가상 어드레스에 관련된 저장된 태스크 식별자가 상기 데이터가 다중 태스크들 간에 공유되는 것을 나타낸다는 기준 중, 적어도 하나가 충족된다면, 수신된 가상 어드레스 및 수신된 태스크 식별자에 관련된 데이터가 상기 메모리에 저장되는 것을 결정하도록 구성된, 상기 비교기를 포함하는, 가상 어드레스 캐시.
  2. 제 1 항에 있어서, 상기 비교기는 단일 판독 사이클(single read cycle)의 일부 내에 상기 결정을 제공하도록 구성된, 가상 어드레스 캐시.
  3. 제 1 항에 있어서, 메모리 제어기로부터 제어 신호를 수신하고, 그에 응답하 여 저장된 태스크 식별자를, 상기 가상 어드레스에 관련되는 데이터가 다중 태스크들 간에 공유되는 것을 나타내는 고유 태스크 식별자(unique task identifier)로 변경하도록 구성된, 가상 어드레스 캐시 메모리.
  4. 제 1 항에 있어서, 상기 저장된 태스크 식별자는 상기 저장된 태스크 식별자의 일부가 미리 규정된 값을 갖는다면, 데이터가 다중 태스크들 간에 공유된다는 것을 나타내는, 가상 어드레스 캐시.
  5. 제 1 항에 있어서, 태스크들의 그룹으로부터 적어도 하나의 태스크에 관련된 데이터를 저장하도록 구성된, 가상 어드레스 캐시.
  6. 제 5 항에 있어서, 상기 다중 태스크들은 상기 모든 태스크들의 그룹을 포함하는, 가상 어드레스 캐시.
  7. 제 5 항에 있어서, 상기 태스크들의 그룹은 다중 태스크 서브-그룹들(multiple task sub-groups)을 포함하고, 적어도 하나의 태스크 식별자는 적어도 하나의 대응하는 서브-그룹과 관련된, 가상 어드레스 캐시.
  8. 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법에 있어서:
    데이터를 어드레스하기 위해 가상 어드레스 및 태스크 식별자를 수신하는 단계;
    상기 데이터가, 상기 수신된 가상 어드레스의 적어도 일부과 메모리에 저장된 데이터에 관련하여 어드레스의 적어도 일부의 비교에 기초하고, 다음 기준들 : (i) 상기 수신된 태스크 식별자는 저장된 태스크 식별자와 같고, (ii) 상기 특정의 저장된 가상 어드레스에 관련된 저장된 태스크 식별자가 상기 데이터가 다중 태스크들 간에 공유되는 것을 나타낸다는 기준 중, 적어도 하나의 충족에 기초한 메모리에 저장되는지의 여부를 결정하는 단계를 포함하는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
  9. 제 8 항에 있어서, 상기 결정 단계는 판독 사이클의 일부 내에 완성되는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
  10. 제 8 항에 있어서, 제어 신호를 메모리 제어기로부터 수신하는 단계 및 그에 응답하여 저장된 태스크 식별자를, 가상 어드레스에 관련된 데이터가 다중 태스크들 간에 공유되는 것을 나타내는 고유 태스크 식별자로 변경하는 단계를 포함하는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
  11. 제 8 항에 있어서, 상기 저장된 태스크 식별자는, 상기 저장된 태스크 식별자의 일부가 미리 규정된 값을 갖는다면, 데이터가 다중 태스크들 간에 공유된다는 것을 나타내는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
  12. 제 8 항에 있어서, 상기 적어도 하나의 태스크 식별자는 데이터가 태스크들의 그룹 간에 공유되는 것을 나타내는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
  13. 제 12 항에 있어서, 상기 태스크들의 그룹은 다중 태스크 서브-그룹들을 포함하고, 상기 적어도 하나의 태스크 식별자는 적어도 하나의 대응하는 서브-그룹과 관련되는, 가상 어드레스 캐시에 저장된 데이터를 공유하기 위한 방법.
KR1020077006994A 2004-08-31 2004-08-31 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법 KR101102260B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/011075 WO2006024323A1 (en) 2004-08-31 2004-08-31 A virtual address cache and method for sharing data using a unique task identifier

Publications (2)

Publication Number Publication Date
KR20070049677A true KR20070049677A (ko) 2007-05-11
KR101102260B1 KR101102260B1 (ko) 2012-01-03

Family

ID=34959391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077006994A KR101102260B1 (ko) 2004-08-31 2004-08-31 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법

Country Status (6)

Country Link
US (1) US7865691B2 (ko)
EP (1) EP1789883B1 (ko)
JP (1) JP2008511882A (ko)
KR (1) KR101102260B1 (ko)
AT (1) ATE536587T1 (ko)
WO (1) WO2006024323A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP2010079765A (ja) * 2008-09-29 2010-04-08 Renesas Technology Corp 情報処理装置
WO2014016650A1 (en) * 2012-07-27 2014-01-30 Freescale Semiconductor, Inc. Circuitry for a computing system and computing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
DE69126898T2 (de) * 1990-02-13 1998-03-05 Sanyo Electric Co Vorrichtung und Verfahren zum Steuern eines Cache-Speichers
JPH03235143A (ja) * 1990-02-13 1991-10-21 Sanyo Electric Co Ltd キャッシュメモリ制御装置
US6671792B1 (en) * 2000-04-28 2003-12-30 Hewlett-Packard Development Company, L.P. Share masks and alias for directory coherency
EP1182568A3 (en) * 2000-08-21 2004-07-21 Texas Instruments Incorporated TLB operation based on task-id
ATE548695T1 (de) 2000-08-21 2012-03-15 Texas Instruments France Softwaregesteuerte cache-speicherkonfiguration
EP1215583A1 (en) 2000-12-15 2002-06-19 Texas Instruments Incorporated Cache with tag entries having additional qualifier fields
EP1215582A1 (en) * 2000-12-15 2002-06-19 Texas Instruments Incorporated Cache memory access system and method
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory

Also Published As

Publication number Publication date
WO2006024323A1 (en) 2006-03-09
US7865691B2 (en) 2011-01-04
EP1789883A1 (en) 2007-05-30
KR101102260B1 (ko) 2012-01-03
EP1789883B1 (en) 2011-12-07
ATE536587T1 (de) 2011-12-15
US20070294504A1 (en) 2007-12-20
JP2008511882A (ja) 2008-04-17

Similar Documents

Publication Publication Date Title
US8417915B2 (en) Alias management within a virtually indexed and physically tagged cache memory
US5581722A (en) Memory management unit for managing address operations corresponding to domains using environmental control
US5390310A (en) Memory management unit having cross-domain control
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US6920531B2 (en) Method and apparatus for updating and invalidating store data
US10592424B2 (en) Range-based memory system
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US6874077B2 (en) Parallel distributed function translation lookaside buffer
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
WO2024066195A1 (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
JPH10293720A (ja) コンピュータシステムにおけるキャッシュ・コヒーレンシー機構および主メモリに保持されている項目に関してキャッシュの内容のコヒーレンシー状態を変更する方法
KR100851738B1 (ko) 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리
CN118020064A (zh) 具有伪lru补充年龄信息的重新引用区间预测(rrip)
KR101102260B1 (ko) 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
US8266379B2 (en) Multithreaded processor with multiple caches
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
US10565111B2 (en) Processor
CN115098410A (zh) 处理器、用于处理器的数据处理方法及电子设备
CN117099087A (zh) 用于处理储存请求的装置和方法
JP2685455B2 (ja) データ処理装置
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
JPH05120139A (ja) キヤツシユメモリ装置
JP2542284B2 (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: 20141210

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151208

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 7