KR20070084441A - 로컬 메모리 데이터의 가간섭성 캐싱 - Google Patents

로컬 메모리 데이터의 가간섭성 캐싱 Download PDF

Info

Publication number
KR20070084441A
KR20070084441A KR1020077011549A KR20077011549A KR20070084441A KR 20070084441 A KR20070084441 A KR 20070084441A KR 1020077011549 A KR1020077011549 A KR 1020077011549A KR 20077011549 A KR20077011549 A KR 20077011549A KR 20070084441 A KR20070084441 A KR 20070084441A
Authority
KR
South Korea
Prior art keywords
local memory
processors
processor
memory
data block
Prior art date
Application number
KR1020077011549A
Other languages
English (en)
Other versions
KR101168364B1 (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 KR20070084441A publication Critical patent/KR20070084441A/ko
Application granted granted Critical
Publication of KR101168364B1 publication Critical patent/KR101168364B1/ko

Links

Images

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/46Multiprogramming arrangements
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers

Landscapes

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

Abstract

멀티프로세서 시스템(1)은 복수의 프로세서(21 내지 25), 시스템 버스(30) 및 주요 시스템 메모리(40)를 포함한다. 각 프로세서(21 내지 25)는 순서대로 시스템 버스(30)에 연결되어 있는 각각의 캐시 메모리(41 내지 45)에 연결된다. 상기 캐시 메모리(41 내지 45)는 각각의 프로세서(21 내지 25)에 의해 종종 사용되는 날짜와 명령어의 복사본을 저장하며, 이에 의해 각각의 판독 또는 기록 동작 동안 주요 시스템 메모리(40)를 액세스를 하기 위해 프로세서(21 내지 25)에 대한 필요를 제거한다. 프로세서(25)는 복수의 데이터 블록(미 도시)을 갖는 로컬 메모리(50)에 연결된다. 본 발명에 따라, 상기 로컬 메모리(50)는 관련된 프로세서(25)로의 연결을 위해 제1 포트(51)를 갖는다. 게다가, 로컬 메모리(50)는 시스템 버스(30)로 연결된 제2 포트(52)를 갖고, 이에 의해 하나 이상의 그 외의 프로세서(21 내지 24)가 상기 로컬 메모리(50)를 액세스하도록 허용한다. 본 발명은, 비용이 덜 비싸고 속도가 더 빠른 로컬 메모리 디바이스를 사용하고 캐시 메모리보다 더 예측 가능한 타이밍을 가지므로, 로컬 메모리 데이터의 가간섭성 캐싱을 가능하게 한다.

Description

로컬 메모리 데이터의 가간섭성 캐싱{COHERENT CACHING OF LOCAL MEMORY DATA}
본 발명은 로컬 메모리를 갖는 프로세서 시스템에 관한 것이며, 특히 멀티프로세서 시스템에서 로컬 메모리 데이터의 가간섭성 캐싱에 관한 것이다.
프로세서 시스템의 속도와 더 많은 양의 데이터를 취급할 수 있는 상기 시스템의 능력을 증가시키려는 계속적인 요구가 존재한다. 병렬 계산 처리(parallelism)는, 속도를 증가시키려는 요구를 추구하여, 점점 더 많이 사용되며, 이에 따라 복잡한 프로그램은, 성능을 향상시키기 위해 동시에 복수의 덜 복잡한 루틴이 실행될 됨에 따라 정상적으로 실행된다. 속도를 증가시키기 위해 사용되는 또 다른 도구는 캐시 메모리를 제공하는 것이다.
캐시 메모리는, 자주 사용되는 데이터의 일 부분을 복사한 것과 가까이 연결된 적은 회전 지연 캐시 메모리에 있는 주요 시스템 메모리로부터의 명령을 저장함으로써 동작한다. 이는, 빈번한 간격으로 액세스되는 데이터 또는 명령이 상기 캐시 메모리로부터 얻을 수 있으며, 이에 의해 주요 시스템 메모리를 액세스하는 필요성을 피하게 된다는 것을 의미한다. 그러므로, 각각의 새로운 판독 및 기록 명령이 발행될 때, 상기 시스템은, 캐시 내에 정보가 저장되어 있는지에 대한 여부를 결정하기 위해 먼저 캐시 메모리 조사한다. 상기 정보가 캐시 메모리 내에서 이용 가능하다면, 주요 시스템 메모리에 대한 액세스는 필요하지 않고 상기 명령어는 처리될 수 있거나 데이터는 훨씬 더 쉽게 액세스된다.
하나 이상의 프로세서 캐시 및 주요 시스템 메모리 그 자체의 데이터 사본간의 가간섭성을 보장하려는 필요는 캐시 메모리 시스템 내에서 본질적이다. 가간섭성을 보장하려는 하나의 방법은, 모든 캐시 블록마다 상태 정보를 포함하는 "MESI" 프로토콜이다. 상기 상태 정보는 캐시 라인(cache line)이 수정되고(Modified), 공유되며(Shared) 독점적이고(Exclusive) 무효한(Invalid)(즉, MESI) 지에 대한 여부의 표시를 포함한다.
MESI 시스템에서, 공유되지 않는 캐시 라인이 액세스될 때, 독점적(Exclusive)이라고 표시(E)된다. 다음의 판독은 상태를 변화시키지 못하지만, 상기 캐시 라인에 대한 다음의 기록은 상기 상태를 수정됨(M)으로 변화시킨다. 멀티프로세서 시스템에서 또 다른 프로세서가 캐시 데이터를 그 자신의 캐시에 로딩한다면, 상기 캐시 라인은 공유됨(S)으로 표시된다. 프로세서가 데이터를 공유되는 캐시에 쓰려고 한다면, 무효한 명령어는 모든 다른 프로세서 또는 공유되는 데이터의 복사본을 갖는 적어도 모든 다른 프로세서에 전달되어야한다. 프로세서가 수정된 캐시 라인으로부터 데이터를 로딩할 수 있기 전, 상기 수정된 캐시 라인을 갖는 프로세서는 메모리에 데이터를 라이트백(write back)해서 공유됨(S)과 같이 데이터를 표시한다. 무효함(I)으로 표시된 캐시 라인에 대한 임의의 판독 또는 기록은 캐시 놓침(cache miss)을 초래한다.
상술한 MESI 프로토콜과 같은 프로토콜은, 캐시 메모리가 가간섭성으로 유지된다는 사실을 보장하며, 이는 멀티프로세서 시스템에서 상기 메모리가 소프트웨어에 대해 투명하도록 만든다. 캐시 메모리에 대해 추가적인 세부사항 및 캐시 메모리 가간섭성은 2003년, John L. Hennessy 및 David A. Patterson의 3판, Computer Architecture a Quantitative Approach 저서에서 발견될 수 있다.
캐시 메모리가 상술된 이점을 제공할지라도, 이는 설계하기에 복잡해지는 단점이 있으며, 다른 유형의 메모리 디바이스와 비교하면 상대적으로 비싼 경향이 있다. 예컨대, 캐시 메모리는 비교기가 제시된 주소에 대하여 태그를 확인하도록 하고, 선택기가 매칭되는 방법을 선택하도록 한다. 캐시 메모리는 또한 데이터의 대체를 관리하기 위해 LRU(Least Recently Used) 비트를 가지고, 수정된 데이터의 라이트백(writeback)을 처리하는 카피백 기능(copyback funtionality)을 요구한다. 비트가 캐시 메모리에서 액세스되는 방법으로 인해, 캐시 메모리는 또한 다른 유형의 메모리보다 더 많은 전력을 소비하는 경향이 있다. 더욱이, 데이터가 캐시에서 순간차단 또는 없어지는 방법은 대체 정책(전형적으로, LRU)에 의존하며, 이는 소프트웨어에 있어서 예상하기 어렵다.
예컨대, 디지털 신호 처리용으로 사용되는 프로세서와 같은 프로세서 시스템은 또한 처리 속도를 증가시키는 수단으로서 로컬 메모리를 사용한다. 로컬 메모리는, 판독 및/또는 기록 조작이 RAM과 같이, 분리된 주요 메모리를 사용하는 것보다 오히려 직접적으로 프로세서와 로컬 메모리 사이에서 행해지도록 허용한다. 로컬 메모리가 로컬 메모리로의 액세스를 갖는 특정 프로세서에 관해 처리 속도를 증가 시키도록 허용하는 반면, 멀티프로세서 시스템에 있어서 임의의 추가적인 이점을 제공하지 않는다.
본 발명의 목적은 로컬 메모리 데이터의 가간섭성 캐싱이 제공되는 멀티프로세서 시스템을 제공하는 것이다. 본 발명의 제1 측면에 따르면, 복수의 프로세서, 관련된 캐시 메모리를 갖는 하나 이상의 프로세서, 상기 복수의 프로세서를 연결하기 위한 시스템 버스 및 복수의 프로세서 중 하나와 연관된 로컬 메모리를 포함하는 멀티프로세서 시스템이 제공되며, 여기서 상기 로컬 메모리는 관련된 프로세서에 의해 액세스되도록 적응되고, 멀티프로세서 시스템에서 프로세서 중 또 다른 하나에 의해 액세스되도록 더 적응된다.
본 발명은 빠르고, 저 전력이며 고비용이 아닌 예측 가능한 타이밍 작동을 갖는 로컬 메모리를 제공하는 이점을 갖고, 동시에 멀티프로세서 시스템에서 다른 프로세서가 상기 로컬 메모리를 액세스하도록 가능케 하는 이점을 또한 갖는다.
본 발명의 또 다른 측면에 따르면, 시스템 버스에 연결된 복수의 프로세서(상기 프로세서들 중 적어도 하나의 프로세서는 캐시 메모리를 가짐)를 포함하는 멀티프로세서 시스템에서 데이터를 처리하는 방법이 제공되며, 상기 방법은, 관련된 프로세서에 연결된 로컬 메모리를 제공하는 단계 및, 관련 프로세서에 의해 직접적으로 액세스되고 시스템 버스를 통해 하나 이상의 다른 프로세서에 의해 액세스될 수 있도록 하기 위해 상기 로컬 메모리를 제공하는 단계 및 로컬 메모리를 구성하는 단계를 포함한다.
본 발명의 더 나은 이해와 어떻게 발효할지 더 분명히 나타내 보이기 위해, 오로지 예시의 방법으로서 다음의 도면에 대한 참고가 지금부터 이루어 질 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 시스템의 하이 레벨 뷰(high level view)를 도시한 도면.
도 2는 본 발명에 따른 판독(Read) 동작을 설명하는 흐름도.
도 3은 본 발명에 따른 기록(Write) 동작을 설명하는 흐름도.
도 1은 본 발명에 따른 멀티프로세서 시스템(1)을 도시한다. 멀티프로세서 시스템(1)은 복수의 프로세서(21 내지 25), 시스템 버스(30) 및 주요 시스템 메모리(40)를 포함한다. 각 프로세서(21 내지 25)는 순서대로 시스템 버스(30)에 연결되어 있는 각각의 캐시 메모리(41 내지 45)에 연결된다. 상술한 바와 같이, 상기 캐시 메모리(41 내지 45)는 각각의 프로세서(21 내지 25)에 의해 종종 사용되는 데이터와 명령어의 복사본을 저장하며, 이에 의해 각각의 판독 또는 기록 동작 동안 각 프로세서(21 내지 25)가 주요 시스템 메모리(40)를 액세스하는 필요를 제거한다.
프로세서(25)는 복수의 데이터 블록(미 도시)을 갖는 로컬 메모리(50)에 연결된다. 본 발명에 따라, 상기 로컬 메모리(50)는 관련된 프로세서(25)로의 연결을 위해 제1 포트(51)를 갖는다. 게다가, 로컬 메모리(50)는 시스템 버스(30)로 연결된 제2 포트(52)를 갖고, 이에 의해 하나 이상의 그 외의 프로세서(21 내지 24)가 상기 로컬 메모리(50)를 액세스하도록 허용한다.
비록 바람직한 실시예가 로컬 메모리(50) 뿐만 아니라 캐시 메모리(45)에 연결되어 있는 프로세서(25)를 도시하더라도, 캐시 메모리(45)는 선택적이며, 프로세서(25)는 단지 로컬 메모리(50)에 간단히 연결될 수 있다는 것이 주지된다. 더욱이, 바람직한 실시예의 멀티프로세서 시스템이 로컬 메모리(50)를 갖는 오직 하나의 프로세서(25)를 갖는 것으로 도시될지라도, 하나 이상의 그 외의 프로세서(21 내지 24)가 또한 각각의 로컬 메모리에 연결될 수 있다는 것이 또한 이해될 것이다.
그러므로, 상기 로컬 메모리(50)의 제2 포트(52)는 그 외의 프로세서(21 내지 24)가 로컬 메모리(50) 및 이와 관련된 프로세서(25)를 액세스하도록 허용한다(비록 프로세서(25)와 로컬 메모리(50) 간의 액세스만큼 빠르지 않더라도).
본 발명은 소프트웨어에 투명한 방법으로 그 외의 프로세서(21 내지 24)에 의해 로컬 메모리(50)에 있는 데이터의 캐싱을 허용한다. 이는 로컬 메모리 및 캐시 가간섭성을 갖는 시스템이 프로그램하기 더 쉽게 만든다.
로컬 메모리(50)의 가간섭성은 제 1 및 2 상태 비트를 로컬 메모리(50)에 있는 모든 블록에 연관시킴으로써 가능하게 이루어진다.
제1 상태 비트는 공유된 비트(Shared bit)로 명명되고, 시스템에 있는 또 다른 프로세서가 판독-공유된 명령어를 이용하여 블록을 판독할 때, 상기 비트는 설정된다.
제2 상태 비트는 무효한 비트(Invalid bit)로 명명되고, 시스템에 있는 또 다른 프로세서가 판독-독점적 명령어를 이용하여 데이터 블록을 판독하여 상기 데이터 블록 상에 향상된 명령어를 발행할 때, 상기 비트는 설정된다.
로컬 메모리(50)와 연관되는 프로세서(25) 즉, 로컬 메모리(50)를 소유하는 프로세서(25)는, 상기 프로세서(25)가 로컬 메모리(50)를 액세스할 때마다 공유된(Shared) 그리고 무효한(Invalid) 비트를 체크한다.
도 2는 로컬 메모리(50) 상에 프로세서(25)에 의해 실행되는 판독 동작을 설명하는 흐름도를 도시한다. 단계(201)에서, 상기 프로세서(25)는 로컬 메모리(50)에서 액세스되는 데이터 블록의 무효한 비트를 확인하다. 만일 상기 무효한 비트가 설정되어 있지 않다면, 프로세서(25)는 단지 판독 동작을 지속한다{단계(207)}. 그러나, 무효한 비트가 설정될 경우, 프로세서(25)는 시스템 버스(30) 상에 룩업-캐시 및 격하되는 명령어(lookup-cache-and-downgrade command)를 발행한다{단계(203)}. 상기 룩업-캐시 및 격하되는 명령어는 수정된 상태에서 데이터 블록을 보유하는 임의의 프로세서(21 내지 25)가 상기 수정된 데이터 블록을 로컬 메모리(50)로 돌려보내도록 요청한다. 수정된 데이터 블록이 수신된 이후{단계(204)}, 무효한 비트는 지워지고(cleared){단계(205)}, 공유된 비트는 설정된다{단계(206)}. 이후 판독 동작은 정상적으로 완료된다{단계(207)}. 공유된 비트가 설정되는데, 이는 데이터 블록을 제공했던 프로세서(21 내지 25)가 공유된 상태로 데이터 블록의 복사본을 각각의 캐시 메모리(41 내지 45)에 유지하기 때문이라는 점이 주지된다. 프로세서(25)가 또한 로컬 메모리에 저장된 데이터를 캐싱할 수 있다는 점은 위에서 주지되었다. 이것은 메모리 주소에 기초하지만 그러나 명령어의 연산 부호(op-code)에 기초하는 메모리와 로컬과 시스템 메모리 중에서 선택하지 않는 프로세서에서 일어날 수 있다.
도 3은 로컬 메모리(50)에 대한 기록 동작을 설명하는 흐름도를 도시한다. 단계(301)에서, 기록 동작을 실시하는 프로세서(25)는 데이터 블록의 무효한 비트 그리고 공유된 비트 둘 다 기록되는지를 확인한다. 단계(302)에서, 프로세서(25)는 상기 비트 중 하나의 비트가 설정되는지에 대한 여부를 결정한다. 비트 중 하나의 비트가 설정되었다면, 프로세서(25)는 시스템 버스 상에 룩업-캐시 및 무효한 명령어(lookup-cache-and-invalidate command)를 발행한다{단계(303)}. 상기 룩업-캐시 및 무효한 명령어는 각각의 캐시 메모리(41 내지 45)에 캐싱된 데이터 블록을 갖는 프로세서(21)가 상기 데이터 블록을 무효화하도록 요청한다.
프로세서(21 내지 25) 중 하나의 프로세서가 수정된 상태의 데이터 블록을 가진다면, 각각의 프로세서는 무효화 이전에, 수정된 데이터 블록을 로컬 메모리(50)에 라이트백한다. 수정된 데이터 블록이 로컬 메모리(50)에서 수신되어 돌려보내진 이후, 무효한 비트는 지워지고{단계(307)}, 기록 동작은 완료된다{단계(308)}.
단계(304 내지 306)는 수정된 상태의 데이터 블록을 갖는 각각의 프로세서에 의해 실행된다는 것을 이해할 것이다.
무효한 또는 공유된 비트 어느 것도 설정되지 않는다는 점이 단계(302)에서 결정된다면, 기록 동작은 정상적으로 지속된다{단계(308)}.
데이터의 카피백(copyback)(데이터가 희생되므로)은 로컬 메모리에 있는 데 이터 블록의 무효한 비트에 대한 재설정(reset)을 야기한다. 이는, 데이터의 새로운 블록이 데이터 캐시로 로딩될 때마다, 오래된 데이터는 새로운 데이터를 위한 공간을 만들기 위해 데이터 캐시로부터 제거되어야만 하기 때문이다. 상기 오래된 데이터가 새로운 데이터를 위해 희생되는 것이다. 오래된 데이터가 프로세서에 의해 수정되었다면, 상기 데이터는 그 데이터가 유래한 메모리에 라이트백(writeback)(즉, 카피백)되어야 한다. 제1 및 2의 상태 비트 즉, 공유된 비트 및 무효한 비트는 데이터가 최초로 저장되는 위치에 저장되고, 캐싱된 곳엔 저장되지 않는다. 달리 말하면, 제1 및 2 상태 비트는 로컬 메모리에 저장되고, 캐시 메모리에는 저장되지 않는다. 특히,
“판독-공유(Read-shared)”, “판독-독점(Read-exclusive)”, “룩업-캐시 및 격하(lookup-cache-and-downgrade)” 및 “룩업-캐시 및 무효(lookup-cache-and-invalidate)” 동작은 캐시 가간섭성을 지지하는 전형적인 버스 프로토콜에서 발견되는 모든 명령어이다.
- 판독-공유(Read-shared)는 데이터를 판독하려는 의도를 가지며, 데이터 판독용으로 사용된다.
- 판독-독점(Read-exclusive)은 데이터를 수정하려는 의도를 가지며, 데이터 판독용으로 사용된다.
- 룩업-캐시 및 격하(lookup-cache-and-downgrade)는 공유 상태로 데이터를 회복하기 위해 수정된 상태에서 데이터를 갖는 프로세서를 요청한다.
- 룩업-캐시 및 무효(lookup-cache-and-invalidate)는 캐시로부터 데이터를 제거하기를 캐시에서 데이터를 갖는 프로세서에게 요청한다.
상술한 본 발명은 로컬 메모리를 가진 프로세서가 캐시 가간섭성을 갖는 시스템에서 어떻게 병합되는지를 설명한다. 그 외의 프로세서는, 소프트웨어가 이러한 것을 인지하도록 요구하는 것 없이, 로컬 메모리에 있는 데이터를 캐싱할 수 있다.
더욱이, 본 발명은 로컬 메모리 데이터의 가간섭성 캐싱을 제공하는 이점을 가지며, 상기 로컬 메모리는, 전형적으로 캐시보다 설계하기가 더 용이하며, 예측 가능한 타이밍 동작을 갖고 속도가 더 빠르다. 게다가, 로컬 메모리는 더 적은 전력을 사용하며 비용이 덜 든다.
상술한 실시예가 본 발명을 제한하기보다는 오히려 설명하고, 당업자가 첨부된 청구범위의 범위를 벗어나지 않고 많은 대안적인 실시예를 설계할 수 있을 것이라는 점을 주의해야 한다. "포함하는" 이라는 상기 용어는 청구항에 기재된 것 이외에 구성 요소의 존재 또는 단계를 배제하지 않고, 단수 요소는 복수 요소를 배제하지 않으며 단수의 프로세서 및 다른 유닛은 청구 범위에 언급된 여러 유닛의 기능을 실행할 수 있다. 청구 범위에서 임의의 참고 기호는 이들의 범위를 제한하도록 해석되어서는 안 된다.
상술한 바와 같이, 본 발명은 로컬 메모리를 갖는 프로세서 시스템에 관한 것이며, 특히 멀티프로세서 시스템에서 로컬 메모리 데이터의 가간섭성 캐싱에 이용된다.

Claims (14)

  1. 멀티프로세서 시스템으로서,
    복수의 프로세서로서, 하나 이상의 프로세서가 관련 캐시 메모리를 갖는 복수의 프로세서와;
    복수의 프로세서를 연결하기 위한 시스템 버스와;
    복수의 프로세서 중 하나의 프로세서와 관련된 로컬 메모리를 포함하며,
    상기 로컬 메모리는 관련 프로세서에 의해 액세스되도록 적응되고, 멀티프로세서 시스템에서 프로세서 중 또 다른 프로세서에 의해 액세스되도록 더 적응되는, 멀티프로세서 시스템.
  2. 제 1항에 있어서,
    로컬 메모리는 관련 프로세서와 직접적으로 통신하기 위한 제1 포트와 시스템 버스를 통해 하나 이상의 그 외의 프로세서와 통신하기 위한 제2 포트를 포함하는, 멀티프로세서 시스템.
  3. 제 1항 또는 제 2항에 있어서,
    로컬 메모리는 가간섭성 캐시 메모리로서 동작하도록 구성되는, 멀티프로세서 시스템.
  4. 제 3항에 있어서,
    로컬 메모리는 데이터 블록에 정보를 저장하도록 적응되며, 각각의 데이터 블록은 제1 상태 비트와 제2 상태 비트로 할당되고, 이 제1 상태 비트와 제2 상태 비트는 로컬 메모리와 하나 이상의 캐시 메모리 사이의 가간섭성을 유지하도록 제공되는, 멀티프로세서 시스템.
  5. 제 4항에 있어서,
    제1 상태 비트는, 특정 데이터 블록이 공유되고 있는지에 대한 여부를 표시하도록 적응되며, 제2 상태 비트는 특정 데이터 블록이 무효한지에 대한 여부를 표시하도록 적응되는, 멀티프로세서 시스템.
  6. 제 4항 또는 제 5항에 있어서,
    시스템은, 데이터 블록이 원래 저장되는 로컬 메모리에 제1 및 제2 상태 비트를 저장하도록 적응되는, 멀티프로세서 시스템.
  7. 제 4항에 있어서,
    로컬 메모리는 시스템의 캐시 가간섭성 입도(granularity)에 대응하는 블록 크기로 데이터를 저장하도록 적응하는, 멀티프로세서 시스템.
  8. 시스템 버스에 연결된 복수의 프로세서를 포함하는 멀티프로세서 시스템에서 데이터를 처리하는 방법으로서,
    상기 프로세서 중 적어도 하나의 프로세서는 캐시 메모리를 가지고, 상기 방법은,
    관련 프로세서에 연결된 로컬 메모리를 제공하는 단계와;
    로컬 메모리가 관련 프로세서에 의해 직접적으로 액세스되고, 시스템 버스를 통해 하나 이상의 그 외의 프로세서에 의해 액세스될 수 있도록 로컬 메모리를 구성하는 단계를 포함하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  9. 제 8항에 있어서,
    제1 및 2 상태 비트를 로컬 메모리에 저장된 각각의 데이터 블록에 할당하는 단계를 포함하며, 상기 제1 및 2 상태 비트는 로컬 메모리와 하나 이상의 캐시 메모리 사이의 가간섭성을 유지하도록 동작하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  10. 제 9항에 있어서,
    제1 상태 비트는, 특정 데이터 블록이 공유되고 있는지에 대한 여부를 표시하고, 제2 상태 비트는, 특정 데이터 블록이 무효한지에 대한 여부를 표시하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  11. 제 10항에 있어서,
    데이터 블록이 본래 저장되는 로컬 메모리에 제1 및 2 상태 비트를 저장하는 단계를 더 포함하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  12. 제 10항 또는 제 11항에 있어서,
    프로세서와 이와 관련되는 로컬 메모리 사이의 판독 동작은 액세스되고 있는 데이터 블록의 상태를 결정하는 단계를 포함하고,
    만일 상기 데이터 블록이 무효한 것으로 결정된다면,
    관련 캐시 메모리에 저장된 수정된 데이터 블록을 갖는 하나 이상의 다른 프로세서 각각으로부터 수정된 데이터 블록을 시스템 버스를 통해 검색하는 단계와;
    무효한 상태 비트를 지우는 단계와;
    공유된 상태 비트를 설정하는 단계와;
    판독 동작을 종결하는 단계를 실시하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  13. 제 10항 및 제 11항에 있어서,
    프로세서와 이와 관련된 로컬 메모리 사이의 기록 동작은,
    기록되는 데이터 블록의 상태를 결정하는 단계를 포함하고,
    만일 상기 데이터 블록이 무효이거나 공유되는 것으로 결정된다면,
    임의의 다른 프로세서가 수정된 데이터 블록을 갖는지에 대한 여부를 결정하는 단계와; 만약 그 블록을 갖고 있다면,
    이러한 프로세서가 수정된 데이터 블록을 로컬 메모리에 라이트백(write back)하도록 요청하는 단계와;
    그 외의 프로세서 각각에 대한 각각의 메모리에서 데이터 블록을 무효화하는 단계와;
    무효한 상태 비트를 지우는 단계와,
    기록 동작을 종결하는 단계를 실시하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
  14. 제 8항에 있어서,
    로컬 메모리는 시스템의 캐시 가간섭성 입도(granularity)에 대응하는 블록 크기로 데이터를 저장하는, 멀티프로세서 시스템에서 데이터를 처리하는 방법.
KR1020077011549A 2004-11-24 2005-11-08 로컬 메모리 데이터의 가간섭성 캐싱 KR101168364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04106032 2004-11-24
EP04106032.8 2004-11-24
PCT/IB2005/053662 WO2006056900A1 (en) 2004-11-24 2005-11-08 Coherent caching of local memory data

Publications (2)

Publication Number Publication Date
KR20070084441A true KR20070084441A (ko) 2007-08-24
KR101168364B1 KR101168364B1 (ko) 2012-07-25

Family

ID=35744855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077011549A KR101168364B1 (ko) 2004-11-24 2005-11-08 로컬 메모리 데이터의 가간섭성 캐싱

Country Status (6)

Country Link
US (1) US7779205B2 (ko)
EP (1) EP1828907A1 (ko)
JP (1) JP5587539B2 (ko)
KR (1) KR101168364B1 (ko)
CN (1) CN101065735A (ko)
WO (1) WO2006056900A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291175B2 (en) * 2009-10-16 2012-10-16 Oracle America, Inc. Processor-bus attached flash main-memory module
JP5404433B2 (ja) 2010-01-08 2014-01-29 株式会社東芝 マルチコアシステム
TWI478055B (zh) * 2012-12-11 2015-03-21 Gemtek Technology Co Ltd 非對稱式處理之多核心系統與其網路設備
CN104407989B (zh) * 2014-11-25 2019-02-12 上海兆芯集成电路有限公司 具有统一标签和片化数据的高速缓冲存储器
CN105095145B (zh) * 2015-09-17 2018-04-03 浪潮(北京)电子信息产业有限公司 一种自适应嵌入式处理器
CN107688545B (zh) * 2016-12-23 2021-01-19 北京国睿中数科技股份有限公司 高速缓存的一致性状态预置方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6073766A (ja) * 1983-09-29 1985-04-25 Meidensha Electric Mfg Co Ltd Cpu間の情報交換装置
JPS61211759A (ja) * 1985-03-16 1986-09-19 Meidensha Electric Mfg Co Ltd マルチcpuシステムにおける2ポ−トメモリ制御回路
US5291442A (en) 1990-10-31 1994-03-01 International Business Machines Corporation Method and apparatus for dynamic cache line sectoring in multiprocessor systems
JPH05225147A (ja) * 1992-02-17 1993-09-03 Toshiba Corp マルチプロセッサ型データ処理システム
US5513335A (en) * 1992-11-02 1996-04-30 Sgs-Thomson Microelectronics, Inc. Cache tag memory having first and second single-port arrays and a dual-port array
US5590308A (en) * 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US5832534A (en) 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
EP0815513B1 (en) 1995-03-17 2006-08-16 Intel Corporation Multi-processing cache coherency protocol on a local bus
US5943500A (en) * 1996-07-19 1999-08-24 Compaq Computer Corporation Long latency interrupt handling and input/output write posting
DE69715203T2 (de) * 1997-10-10 2003-07-31 Bull Sa Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機
US6356983B1 (en) 2000-07-25 2002-03-12 Src Computers, Inc. System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture
US6862640B2 (en) 2001-04-10 2005-03-01 Texas Instruments Incorporated Arbitration in local system for access to memory in a distant subsystem
EP1483672A4 (en) * 2002-02-28 2008-03-26 Silicon Graphics Inc METHOD AND SYSTEM FOR CACHED MEMORY COHERENCE IN A MULTIPROCESSOR SYSTEM WITHOUT INCREASING THE SHARING VECTOR
US7133977B2 (en) * 2003-06-13 2006-11-07 Microsoft Corporation Scalable rundown protection for object lifetime management

Also Published As

Publication number Publication date
CN101065735A (zh) 2007-10-31
JP2008521114A (ja) 2008-06-19
EP1828907A1 (en) 2007-09-05
US7779205B2 (en) 2010-08-17
KR101168364B1 (ko) 2012-07-25
JP5587539B2 (ja) 2014-09-10
WO2006056900A1 (en) 2006-06-01
US20090150619A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
US8688951B2 (en) Operating system virtual memory management for hardware transactional memory
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
US9251095B2 (en) Providing metadata in a translation lookaside buffer (TLB)
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US7657710B2 (en) Cache coherence protocol with write-only permission
US20080005504A1 (en) Global overflow method for virtualized transactional memory
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US20100064107A1 (en) Microprocessor cache line evict array
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20070239940A1 (en) Adaptive prefetching
US8364904B2 (en) Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer
ZA200205198B (en) A cache line flush instruction and method, apparatus, and system for implementing the same.
JP2007011580A (ja) 情報処理装置
US6748496B1 (en) Method and apparatus for providing cacheable data to a peripheral device
US20200104259A1 (en) System, method, and apparatus for snapshot prefetching to improve performance of snapshot operations
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
KR101168364B1 (ko) 로컬 메모리 데이터의 가간섭성 캐싱
US8788761B2 (en) System and method for explicitly managing cache coherence
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP2020003959A (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
US20180121353A1 (en) System, method, and apparatus for reducing redundant writes to memory by early detection and roi-based throttling
US9639467B2 (en) Environment-aware cache flushing mechanism
JP2007207224A (ja) データ・ラインをキャッシュに書き込む方法
US20230099256A1 (en) Storing an indication of a specific data pattern in spare directory entries

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160707

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180705

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 8