KR102680596B1 - 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 - Google Patents

캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102680596B1
KR102680596B1 KR1020237011379A KR20237011379A KR102680596B1 KR 102680596 B1 KR102680596 B1 KR 102680596B1 KR 1020237011379 A KR1020237011379 A KR 1020237011379A KR 20237011379 A KR20237011379 A KR 20237011379A KR 102680596 B1 KR102680596 B1 KR 102680596B1
Authority
KR
South Korea
Prior art keywords
cache
data
location
storing
location information
Prior art date
Application number
KR1020237011379A
Other languages
English (en)
Other versions
KR20230050477A (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
Priority claimed from US15/210,846 external-priority patent/US10956339B2/en
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20230050477A publication Critical patent/KR20230050477A/ko
Application granted granted Critical
Publication of KR102680596B1 publication Critical patent/KR102680596B1/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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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

Abstract

캐시[120]는, 상위 레벨 캐시[140]에서 하위 레벨 캐시로 전송되는 데이터[170]와 함께, 상기 데이터가 전송되어 온 상위 레벨 캐시 위치를 가리키는 정보[171]를 저장한다. 상위 레벨 캐시 내 위치에 저장된 데이터에 대한 요청을 수신하면, 캐시 제어기[130]가 데이터의 상태 태그에 상위 레벨 캐시 위치 정보를 저장한다. 그 후 캐시 제어기는 데이터를, 상위 레벨 캐시 위치를 가리키는 상태 태그와 함께 하위 레벨 캐시로 전송한다. 데이터가 차후 업데이트되거나 하위 레벨 캐시로부터 방출될 때, 캐시 제어기가 상태 태그 위치 정보를 읽고 데이터를 상기 데이터가 본래 전송되어 온 상위 레벨 캐시 내 위치로 다시 전송한다.

Description

캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR STORING CACHE LOCATION INFORMATION FOR CACHE ENTRY TRANSFER}
관련 기술의 설명
본 발명은 캐시 위치 정보를 저장하기 위한 시스템 및 방법에 관한 것이다.
프로세서에서 명령의 실행을 지원하기 위해, 프로세싱 시스템이 일반적으로 실행 명령에 의해 액세스될 데이터를 저장하기 위한 메모리 모듈을 포함하는 메모리 서브시스템을 포함한다. 프로세싱 효율을 촉진시키기 위해, 메모리 서브시스템은 실행 명령에 의해 액세스될 수 있는 모든 데이터를 저장하기 위해 계층구조의 최상부에 메인 메모리를 가지며, 메인 메모리에 저장된 데이터의 서브세트를 저장하기 위해 메모리 계층구조의 하위 레벨에 하나 이상의 캐시를 갖는 메모리 계층구조로 조직될 수 있다. 예를 들어, 프로세싱 시스템은 적어도 두 개의 캐시, 즉, (메모리 계층구조에서 메인 메모리에 가까운) 상위 레벨 캐시와 (프로세싱 시스템의 프로세서 코어에 가까운) 하위 레벨 캐시를 갖는 메모리 계층구조를 포함할 수 있으며, 여기서 하위 레벨 캐시는 상위 레벨 캐시의 서브세트를 저장한다. 상위 레벨 캐시에서 하위 레벨 캐시로 전송되는 데이터가 차후, 예를 들어, 프로세싱 시스템에 의해 데이터가 업데이트되거나 유입 데이터를 위한 공간을 만들기 위해 하위 레벨 캐시로부터 데이터가 방출될 때, 상위 레벨 캐시로 다시 전송될 수 있다(transfer back). 데이터가 상위 레벨 캐시로 다시 전송될 때, 프로세싱 시스템은 상위 레벨 캐시 내 데이터를 배치할 위치를 결정해야 하며, 따라서 전력 및 메모리 액세스 자원을 소비한다.
본 발명은 첨부된 도면을 참조함으로써 해당 분야의 통상의 기술자에게 더 잘 이해될 수 있으며 많은 특징 및 이점이 자명해질 수 있다. 상이한 도면에서의 동일한 도면 부호의 사용이 유사하거나 동일한 아이템을 가리킨다.
도 1은 일부 실시예에 따르는 캐시 관리 시스템을 채용하는 프로세싱 시스템의 블록도이다.
도 2는 일부 실시예에 따라, 상위 레벨 캐시 내 한 위치에서 하위 레벨 캐시로 데이터 및 위치 태그를 전송하고, 그 후 업데이트된 데이터 및 위치 태그를 상기 하위 레벨 캐시로부터 상위 레벨 캐시 내 상기 위치로 전송하는 도 1의 프로세싱 시스템의 일례의 블록도이다.
도 3은 일부 실시예에 따라, 상위 레벨 캐시로부터 하위 레벨 캐시로 데이터를 전송하고 위치 태그를 위치 태그 버퍼에 저장하며, 그 후 하위 레벨 캐시로부터 업데이트된 데이터를 상위 레벨 캐시 내 위치로 전송할 때 위치 태그 버퍼로부터 위치 태그를 액세스하는 도 1의 프로세싱 시스템의 일례의 블록도이다.
도 4는 일부 실시예에 따라, 위치 태그 버퍼 내에 저장되는 위치 태그의 일례의 블록도이다.
도 5는 일부 실시예에 따라, 데이터가 상이한 캐시로 다시 전송될 때 위치 정보가 액세스될 수 있도록 상이한 캐시에 대한 캐시 위치 정보를 캐시에 저장하는 방법의 흐름도이다.
도 1-5는 상위 레벨 캐시에서 하위 레벨 캐시로 전송되는 데이터와 함께, 데이터가 어느 상위-레벨 캐시 위치로부터 전송되었는지를 가리키는 정보를 저장함으로써, 메모리 관리 효율을 개선하기 위한 기법을 도시한다. 예를 들어, 상위 레벨 캐시 내 위치에 저장되는 데이터에 대한 요청을 수신하면, 캐시 제어기가 데이터의 상태 태그에 상위 레벨 캐시 위치 정보를 저장한다. 그 후 캐시 제어기는 상위 레벨 캐시 위치를 가리키는 상태 태그와 함께 데이터를 하위 레벨 캐시로 전송한다. 데이터가 차후 업데이트되거나 하위 레벨 캐시로부터 방출될 때, 캐시 제어기는 상태 태그 위치 정보를 판독하고 데이터를 본래 전송되어 온 상위 레벨 캐시 내 위치로 다시 전송한다. 데이터가 본래 전송되어 온 상위 레벨 캐시 내 위치를 가리키는 정보를 저장함으로써, 프로세싱 시스템은 데이터를 상위 레벨 캐시 내 상기 위치로 효율적으로 다시 전송한다. 구체적으로, 위치 정보 데이터를 저장함으로써 데이터를 저장하기 위한 상위-레벨 캐시 내 위치를 식별할 필요가 없어짐으로써, 전력 및 메모리 액세스 자원이 보존된다.
도 1은 데이터가 전송되어 온 캐시 내 세트 및 웨이를 가리키는 위치 태그와 함께 데이터를 전송하고 저장하도록 구성되는 프로세싱 시스템(100)의 예시를 도시한다. 따라서, 프로세싱 시스템(100)은 임의의 여러 디바이스, 가령, 개인 컴퓨터, 워크스테이션, 모바일 디바이스, 가령, 스마트폰, 비디오 게임 콘솔, 스마트 TV 등에서 채용될 수 있다. 본 명세서에 더 기재될 바와 같이, 프로세싱 시스템(100)은 프로세서(110), L1 캐시(120), L1 캐시 제어기(130), L2 캐시(140), L2 캐시 제어기(150), 및 메인 메모리(160)를 포함한다.
프로세서(110)는 명령을 실행하기 위해, 컴퓨터 프로그램 형태로 구성됨으로써, 전자 디바이스를 대리하여 작업을 수행하는 하나 이상의 명령 파이프라인을 포함한다. 프로세서(110)가 어느 정도의 일체형 메모리를, 가령, 레지스터의 형태로 가질 수 있지만, 이러한 메모리는 일반적으로 저장 요량의 한계를 가진다. 따라서 명령을 실행하기 위해, 프로세서(110)는 프로세싱 시스템(100)의 메모리 계층구조, 가령, 캐시 메모리의 하나 이상의 레벨, 가령, L1 캐시(120) 및 L2 캐시(140), 및 메인 메모리(160)로부터 데이터를 저장하고 불러온다. 특히, 명령을 실행하는 과정에서, 프로세서(110)는 메모리 계층구조로부터 데이터를 저장하거나(저장 작업) 로딩하기 위한 작업(읽기 작업), 가령, 메모리 액세스 요청이라 지칭되는 작업을 발생시킨다. 캐시 메모리(120 및 140)의 하나 이상의 레벨 및 메인 메모리(160)가 함께 동작하여 메모리 액세스 요청을 만족시킬 수 있으며, 이는 이하에서 더 기재된다. 설명 목적으로 캐시 메모리의 두 개의 레벨이 도 1에 도시되지만, 프로세싱 시스템(100)은 캐시 메모리의 셋 이상의 레벨을 포함할 수 있다.
L1 캐시(120)는 프로세서(110)에 의해 액세스되기 위한 데이터를 저장하도록 구성된 메모리 모듈이다. 적어도 하나의 실시예에서, L1 캐시(120)는 엔트리의 세트를 포함하며, 각각의 엔트리가 캐시 라인이라고 지칭되는 연관된 데이터 유닛을 저장한다. 각각의 캐시 라인은 데이터에 대한 식별자로서 역할 하는 메인 메모리 내 주소를 가진다. 일부 실시예에서, L1 캐시(120)는 세트 연관 캐시이고, 캐시가 복수의 세트로 분할된다. 각각의 세트가 복수의 엔트리 또는 웨이를 포함하며, 이때 각각의 웨이가 캐시 라인을 저장하는 캐시 엔트리에 대응한다. 각각의 세트가 메인 메모리 주소의 서브세트와 연관된 캐시 라인만 저장하며, 인덱스라고 지칭되는 메인 메모리 주소의 일부분을 기초로 하나의 세트와 연관된 서브세트가 대응하는 캐시 제어기에 의해 식별된다.
L1 캐시 제어기(130)는 프로세서(110)로부터 데이터에 대한 메모리 액세스 요청을 수신하고 L1 캐시(120)에서 검색하여 캐시 엔트리 중 하나가 메모리 액세스 요청에 의해 타깃팅되는 메모리 주소와 연관된 캐시 라인을 저장하는지 여부를 결정하도록 구성된 모듈이다. 요청된 캐시 라인이 L1 캐시(120)에서 발견되는 경우, 캐시 적중이 발생했다. 캐시 적중의 경우, 읽기 작업의 경우, L1 캐시(120)로부터 프로세서(110)로 요청된 캐시 라인을 제공하거나, 쓰기 작업의 경우, 캐시 엔트리로의 쓰기 데이터를 저장함으로써, L1 캐시 제어기(130)는 메모리 액세스 요청을 만족시킨다.
L1 캐시(120)와 유사하게, L2 캐시(140)는 엔트리의 세트를 포함하는 메모리이며, 엔트리 각각은 연관된 캐시 라인을 저장한다. 요청된 캐시 라인이 L1 캐시(120)에서 발견되지 않은 경우, 캐시 실패가 발생했다. L1 캐시(120)에서의 캐시 실패의 경우, L1 캐시 제어기(130)는 L2 캐시 제어기(150)로 메모리 액세스 요청을 제공한다. L2 캐시 제어기(150)는 L1 캐시(120)에서의 캐시 실패에 응답하여 L1 캐시 제어기(130)로부터 메모리 액세스 요청을 수신하도록 구성된 모듈이다. 메모리 액세스 요청을 수신하는 것에 응답하여, L2 캐시 제어기(150)가 L2 캐시(140)의 캐시 엔트리 중 하나가 메모리 액세스 요청에 의해 타깃팅되는 메모리 주소와 연관된 데이터를 저장하는지 여부를 식별한다. 그럴 경우, L2 캐시 제어기(150)는 캐시 적중을 식별하고 L2 캐시(140)로부터 요청된 데이터를 L1 캐시(120)로 제공한다. 요청된 데이터가 L2 캐시(140)에서 발견되지 않은 경우, L2 캐시 제어기(150)가 캐시 실패를 식별하고 메모리 액세스 요청을 메인 메모리(160)로 제공한다. 메모리 액세스 요청에 응답하여, 메인 메모리(160)가 요청에 의해 타깃팅되는 메인 메모리 주소에서의 캐시 라인을 불러오고 캐시 라인을 L2 캐시(140)로 제공한다.
(L2 캐시 제어기(150)에 의한 본래의 검색 후 또는 메모리 액세스 요청에 응답하여 메인 메모리(160)로부터의 수신 후) 요청된 캐시 라인이 L2 캐시(140)에서 발견되는 경우, L2 캐시 제어기(150)는 L2 캐시 위치(145)의 세트 및 웨이를 가리키는 L2 위치 태그(171)를 생성한다. 그 후 L2 캐시 제어기(150)가 데이터(170) 및 L2 위치 태그(171)를 발견됐던 L2 캐시 위치(145)로부터 L1 캐시(120)로 전송한다. 일부 실시예에서, L2 캐시(140)가 L1 캐시(120)에 저장된 캐시 라인 각각을 저장하도록, L2 캐시(140)는 L1 캐시(120)를 포함하도록 구성된다.
데이터의 더 효율적인 전송을 촉진시키기 위해, L1 캐시 제어기(130)가 데이터(170)를 L2 캐시(140)로 다시 전송할 때 L2 위치 태그(171)를 읽는다. L1 캐시(120) 내 캐시 라인이 프로세서(110)로부터의 쓰기 작업에 의해 업데이트되는 경우, 업데이트된 캐시 라인이 L2 캐시(140)로 전송되어, L2 캐시(140)가 L1 캐시(120)를 포함하는 상태를 유지할 것이다. 업데이트된 캐시 라인을 L2 캐시(140)로 전송할 때, L1 캐시 제어기(130)가 L2 위치 태그(171)를 읽어, 캐시 라인이 전송될 L2 캐시 위치(145)의 세트 및 웨이를 결정할 수 있다. 데이터(170)와 함께 L2 위치 태그(171)를 저장하여, L2 캐시 제어기(150)가 전송된 데이터에 대한 위치를 식별할 필요없이, 데이터(170)가 동일한 L2 캐시 위치(145)로 다시 전송될 수 있음으로써, 프로세싱 효율이 개선된다. 이와 달리, 종래의 캐시 관리 시스템은 전송되는 데이터에 대한 캐시 엔트리를 식별하는 것, 가령, 데이터를 저장하기 위한 엔트리에 대한 L2 캐시 세트 및 웨이 정보를 조사하는 것을 필요로 함으로써, 추가 전력을 소비하고 L2 캐시(140)로의 액세스가 느려진다.
일부 실시예에서, 주어진 시점에서 메모리 계층구조로부터 전송되어 와서 프로세서(110)에 의해 써진 모든 데이터를 저장할 수 없도록 L1 캐시(120)의 크기가 정해진다. L1 캐시(120)에 써지거나 전송되는 캐시 라인을 수용하기 위한 이용 가능한 캐시 엔트리가 L1 캐시(120) 내에 존재하지 않는 경우, L1 캐시 제어기(130)는 L1 캐시(120)로부터 L2 캐시(140)로 방출될 캐시 라인을 선택할 것이다. 방출된 캐시 라인을 L2 캐시(140)로 전송할 때, 캐시 라인이 복사될 L2 캐시 위치(145)의 세트 및 웨이를 결정하기 위해 L1 캐시 제어기(130)는 L2 위치 태그(171)를 읽는다.
예를 들어, 작업 중에, 프로세서(110)는 메모리 액세스 작업을 실행한다. 프로세서(110)는 L1 캐시 제어기(130)로부터 데이터(170)를 요청하고, 상기 제어기는 L1 캐시(120)에서 요청된 데이터(170)를 검색한다. 요청된 캐시 라인이 L1 캐시(120)에서 발견되는 경우, 요청된 데이터(170)가 프로세서(110)로 제공된다. 요청된 데이터(170)가 L1 캐시(120)에서 발견되지 않는 경우, L1 캐시 제어기(130)는 메모리 액세스 요청을 L2 캐시 제어기(150)로 제공하며, 상기 제어기는 L2 캐시(140)에서 상기 요청된 데이터(170)를 검색한다. 요청된 데이터(170)가 L2 캐시(140)에서 발견되지 않는 경우, L2 캐시 제어기(150)는 메모리 액세스 요청을 메인 메모리(160)로 제공하며, 상기 메인 메모리는 요청된 데이터(170)를 L2 캐시(140)로 전송한다.
요청된 데이터(170)가 L2 캐시(140)에서 발견되는 경우, L2 캐시 제어기(150)는 L2 캐시(140) 내에서 요청된 데이터(170)가 발견된 L2 캐시 위치(145)의 세트 및 웨이를 가리키기는 L2 위치 태그(171)를 생성한다. L2 캐시 제어기(150)는 요청된 데이터(170)를 L2 위치 태그(171)와 함께, 메모리 액세스 요청이 만족되는 L1 캐시(120)로 전송한다.
그 후 데이터(170)가 L1 캐시(120)로부터 L2 캐시(140)로 다시 전송된다. 일부 실시예에서, 전송은 데이터(170)가 L1 캐시에서 업데이트되는 결과이거나, 유입 데이터에 대한 공간을 만들기 위해 데이터(170)가 L1 캐시(140)로부터 방출되는 결과이다. 데이터(170)가 L2 캐시(140)로 다시 전송될 때, L1 캐시 제어기가 데이터(170) 및 이와 연관된 L2 위치 태그(171)를 L2 위치 태그(171)에 의해 지시되는 L2 캐시 위치(145)의 세트 및 웨이로 전송한다. 데이터(170)를 L2 위치(145)의 세트 및 웨이로 다시 전송함으로써, L2 캐시 제어기(150)에 의한 조사(lookup)가 필요하지 않게 되는데, 이는 L1 캐시(120) 내 데이터(170)와 함께 저장된 L2 위치 태그(171)가 L2 캐시 위치(145)에 대한 L2 캐시(140) 세트 및 웨이 정보를 포함함으로써, 더 효율적인 캐시 관리를 촉진시키기 때문이다. 일부 실시예에서, 프로세싱 시스템(100)은 개별 버퍼(도 1에 도시되지 않음)에, 데이터를 상위 레벨 캐시로 다시 전송할 때 액세스될, 데이터가 전송되어 온 상위 레벨 캐시 내 세트 및 웨이를 가리키는 캐시 위치 태그를 저장하도록 구성된다.
도 2는 L2 캐시 제어기(250)가 L2 캐시(240) 내 요청된 데이터(270)가 저장되는 L2 캐시 위치(245)의 세트 및 웨이를 가리키는 L2 위치 태그(271)를 생성하고 상기 요청된 데이터(270)를 연관된 L2 위치 태그(271)와 함께 시점(T1)에서 L1 캐시(220)로 전송하는 일례를 도시한다. 시점(T1)에 앞서, L1 캐시 제어기(230)는 프로세서(도시되지 않음)로부터 데이터(270)에 대한 요청을 수신하고, L1 캐시(220)에서 검색하여 L1 캐시 엔트리 중 하나가 메모리 액세스 요청에 의해 타깃팅된 메모리 주소와 연관된 캐시 라인 지정 데이터(270)를 저장하는지 여부를 결정한다. 도 2의 예시에서, 요청된 데이터(270)는 L1 캐시(220) 내에 존재하지 않고, 따라서 L1 캐시 제어기(230)가 메모리 액세스 요청을 L2 캐시 제어기(250)로 제공한다. 메모리 액세스 요청에 응답하여, L2 캐시 제어기(250)는 L2 캐시(240)에서 요청된 데이터(270)를 검색하며 L2 캐시 위치(245)의 세트 및 웨이에서 요청된 데이터(270)를 찾는다. L2 캐시 제어기(250)는 요청된 데이터(270)가 발견된 L2 캐시 위치(245)의 세트 및 웨이를 가리키는 L2 위치 태그(271)를 생성한다. 일부 실시예에서, L2 위치 태그(271)가 데이터에 대한 메모리 일관성 상태(memory coherence status)를 가리키는 요청된 데이터(270)의 상태 비트에 포함된다. 예를 들어, 8-웨이 연관 캐시의 경우, L2 위치 태그(271)에 의해 특정되는 L2 캐시 웨이가 여전히 3개의 비트를 필요로 할 것이다. 일부 실시예에서, 3개의 비트는 엔트리에 저장된 데이터가 수정되었는지, 특정 프로세서 코어에 독점적인지, 프로세서 코어들 간에 공유되는지 등을 가리키도록 사용되는 일관성 상태 비트로부터 전용된다. L2 캐시 제어기(250)가 메모리 액세스 요청에 응답하여 L2 위치 태그(271)를 생성하면, L2 캐시 제어기(250)가 요청된 데이터(270) 및 L2 위치 태그(271)를 L1 캐시(220)로 전송하며, 여기서 이들은 저장되고 프로세서(도시되지 않음)에 의해 사용되기 가능해진다.
차후 시점(T2)에서, L1 캐시(220)로 전송되고 저장된 데이터(270)가 프로세서(도시되지 않음)에 의해 업데이트된다. 프로세서(도시되지 않음)로부터 업데이트된 데이터(272)를 수신하면, L1 캐시 제어기(230)는 L2 위치 태그(271)를 판독하고 업데이트된 데이터(272)를 L2 위치 태그(271)에 의해 지시되는 L2 캐시 위치(245)의 세트 및 웨이로 전송한다. 이러한 방식으로, 프로세싱 시스템은 업데이트된 데이터(272)를 배치할 L2 캐시(240) 내 세트 및 웨이를 결정하기 위한 조사를 수행할 필요 없이, 업데이트된 데이터(272)의 복사본을 L2 캐시(240)에 유지한다. 또는 차후 시점(T2)에서, L1 캐시(220)에 전송되고 저장된 데이터(270)가, 예를 들어, 유입 캐시 라인을 위한 공간을 만들기 위해 데이터(270)가 L1 캐시(220)로부터 방출되는 경우 업데이트되지 않고, L2 캐시(240)로 다시 전송될 수 있음이 자명할 것이다. 이 경우, L1 캐시 제어기(230)는 L2 위치 태그(271)를 읽고 데이터(270)를 L2 위치 태그(271)에 의해 지시되는 L2 캐시 위치(245)의 세트 및 웨이로 전송한다.
도 3은 L2 캐시 제어기(350)가 L2 캐시(340) 내 요청된 데이터(370)가 저장된 L2 캐시 위치(345)의 세트 및 웨이를 가리키는 L2 위치 태그(371)를 생성하고 상기 요청된 데이터(370)를 연관된 L2 위치 태그(371)와 함께 시점(T1)에서 L1 캐시(320)로 전송하는 예시를 도시한다. 시점(T1) 전에, L1 캐시 제어기(330)는 프로세서(도시되지 않음)로부터 데이터(370)에 대한 요청을 수신하고, L1 캐시(320)를 검색하여, L1 캐시 엔트리 중 하나가 메모리 액세스 요청에 의해 타깃팅되는 메모리 주소와 연관된 캐시 라인 지정 데이터(370)를 저장하는지 여부를 결정한다. 도 3의 예시에서, 요청된 데이터(370)는 L1 캐시(320) 내에 존재하지 않고, 따라서 L1 캐시 제어기(330)는 메모리 액세스 요청을 L2 캐시 제어기(350)로 제공한다. 메모리 액세스 요청에 응답하여, L2 캐시 제어기(350)는 L2 캐시(340)에서 상기 요청된 데이터(370)를 검색하고 L2 캐시 위치(345)의 세트 및 웨이에서 상기 요청된 데이터(370)를 찾는다. L2 캐시 제어기(350)는 요청된 데이터(370)가 발견된 L2 캐시 위치(345)의 세트 및 웨이를 가리키는 L2 위치 태그(371)를 생성하고, 요청된 데이터(370) 및 L2 위치 태그(371)를 L1 캐시(320)로 전송한다. 도 3의 예시에서, L1 캐시 제어기(330)가 L2 위치 태그(371)를 위치 태그 버퍼(335)에 저장한다.
도 3의 예시에서, 차후 시점(T2)에서, L1 캐시(320)로 전송되고 저장된 데이터(370)가 프로세서(도시되지 않음)에 의해 업데이트된다. 프로세서(도시되지 않음)로부터 업데이트된 데이터(372)를 수신하면, L1 캐시 제어기(330)가 위치 태그 버퍼(335)를 액세스하고 위치 태그 버퍼(335)에 저장된 L2 위치 태그(371)를 읽는다. 그 후 L1 캐시 제어기(330)는 업데이트된 데이터(372)를 L2 위치 태그(371)에 의해 지시되는 L2 캐시 위치(345)의 세트 및 웨이로 전송한다. 이러한 방식으로, 프로세싱 시스템은, 업데이트된 데이터(372)를 배치하는 L2 캐시(340) 내 세트 및 웨이를 결정하기 위한 조사를 수행할 필요 없이 L2 캐시(340)에 업데이트된 데이터(372)의 복사본을 유지한다. 또는, 차후 시점(T2)에서, L1 캐시(320)로 전송되고 저장되는 데이터(370)가, 예를 들어, 유입 캐시 라인을 위한 공간을 만들기 위해 데이터(370)가 L1 캐시(320)로부터 방출되는 경우 업데이트되지 않고, L2 캐시(340)로 다시 전송될 수 있음이 자명할 것이다. 이 경우, L1 캐시 제어기(330)는 위치 태그 버퍼(335)를 액세스하며, 이로부터 L2 위치 태그(371)를 읽고 데이터(370)를 L2 위치 태그(371)에 의해 지시되는 L2 캐시 위치(345)의 세트 및 웨이로 전송한다.
도 4는 위치 태그 버퍼(435)에 저장된 위치 태그(472)의 예시를 도시한다. 위치 태그(472)는 데이터(도시되지 않음)와 연관된 데이터 인덱스(476) 및 L2 캐시 웨이 식별자(477)를 포함한다. L2 캐시(도시되지 않음)의 세트 연관성(set associativity)은 L2 캐시의 어느 세트가 데이터 인덱스(476)를 갖는 데이터를 저장하도록 구성되는지를 결정한다. L2 캐시 웨이 식별자(477)는 L2 캐시(도시되지 않음)로부터 데이터(도시되지 않음)가 이전에 전송되어 온 데이터 인덱스(476)와 연관된 세트 내 캐시 웨이를 가리킨다. 따라서 데이터 인덱스(476)와 위치 태그(472)의 L2 캐시 웨이 식별자(477)의 조합이 L1 캐시(도시되지 않음)로 전송되기 전의 데이터(도시되지 않음)를 저장한 L2 캐시(도시되지 않음) 내 세트 및 웨이를 식별한다. 도 4의 예시에서, 위치 태그(472)가 위치 태그 버퍼(435)에 저장된다.
도 5는 일부 실시예에 따라, 도 1의 프로세싱 시스템(100)이 L1 캐시로 전송되는 데이터와 함께 L2 세트 및 웨이 위치 정보를 저장하여, 데이터가 L2 캐시 위치로 되 복사 또는 방출될 때 위치 정보가 액세스되게 하는 방법(500)을 도시한다. 단계(502)에서, L2 캐시 제어기(150)는 L2 캐시 위치(145)에 저장되는 데이터(170)에 대한 요청을 수신한다. 단계(504)에서, L2 캐시 제어기(150)는 요청된 데이터(170)의 L2 위치 태그(171)에 L2 위치 정보(145)를 저장한다. 단계(506)에서, L2 캐시 제어기(150)는 요청된 데이터(170) 및 L2 위치 태그(171)를 L1 캐시(120)로 전송하며, 여기서 이는 저장된다. 단계(508)에서, 데이터(170)가 업데이트되거나 L1 캐시(120)로부터 방출된다. 단계(510)에서, L1 캐시 제어기(130)는 업데이트 또는 방출된 데이터(170)를 L2 위치 태그(171)에 저장된 L2 캐시 위치(145)로 전송한다.
컴퓨터 판독형 저장 매체가 명령 및/또는 데이터를 제공하기 위한 사용 동안 컴퓨터 시스템에 의해 액세스 가능한 임의의 저장 매체, 또는 저장 매체의 조합을 포함할 수 있다. 이러한 저장 매체의 비제한적 예를 들면, 광학 매체(가령, 컴팩트 디스크(CD), 디지털 다목적 디스크(DVD), 블루-레이 디스크), 자기 매체(가령, 플로피 디스크, 자기 테이프, 또는 자기 하드 드라이브), 휘발성 메모리(가령, 랜덤 액세스 메모리(RAM) 또는 캐시), 비휘발성 메모리(가령, 리드-온리 메모리(ROM) 도는 플래시 메모리), 또는 마이크로전자기계 시스템(MEMS)-기반 저장 매체가 있을 수 있다. 컴퓨터 판독형 저장 매체는 컴퓨팅 시스템에 임베딩되거나(가령, 시스템 RAM 또는 ROM), 컴퓨팅 시스템에 고정 부착되거나(가령, 자기 하드 드라이브), 컴퓨팅 시스템에 탈착 가능하게 부착되거나(가령, 광학 디스크 또는 USB(전역 직렬 버스)-기반 플래시 메모리), 유선 또는 무선 네트워크(가령, 네트워크 액세스 가능 스토리지(NAS))를 통해 컴퓨터 시스템에 연결될 수 있다.
앞서 일반적인 설명에서 기재된 모든 활동 또는 요소가 필수인 것은 아니며, 특정 활동 또는 디바이스의 일부분이 필수인 것이 아니고, 기재된 것에 추가로 하나 이상의 추가 활동이 수행될 수 있거나 요소가 포함될 수 있다. 또한 활동들이 나열된 순서가 반드시 이들이 수행되는 순서인 것은 아니다. 또한 개념이 특정 실시예를 참조하여 기재되었다. 그러나, 해당 분야의 통상의 기술자라면 다양한 수정 및 변경이 이하의 청구항에서 제공되는 본 발명의 범위 내에서 이뤄질 수 있음을 알 것이다. 따라서 명세서와 도면은 한정이 아니라 예시로서 간주될 것이며, 이러한 모든 변경이 본 발명의 범위 내에 포함되는 것으로 의도된다.
혜택, 그 밖의 다른 이점, 및 과제 해결수단이 앞서 특정 실시예와 관련하여 기재되었다. 그러나 혜택, 이점, 과제 해결수단, 및 임의의 혜택, 이점, 또는 해결수단이 발생하게 하거나 더 현저하게 할 수 있는 임의의 특징이 임의의 또는 전체 청구항의 핵심적이거나, 필수적이거나, 본질적인 특징으로 해석되지 않을 것이다. 덧붙여, 개시된 주제 사항이 본 명세서의 설명의 이점을 갖는 해당 분야의 통상의 기술자에게 자명한 상이하지만 균등하게 수정되고 실시될 수 있을 때 앞서 기재된 특정 실시예는 단지 예시에 불과하다. 이하의 청구항에서 기재된 것이 아닌 다른 본 명세서의 구성 또는 설계의 세부사항에 의한 어떠한 제한도 의도되지 않는다. 따라서 앞서 개시된 특정 실시예가 변경 또는 수정될 수 있고, 이러한 모든 변형이 개시된 주제 사항의 범위 내에 있는 것으로 간주됨이 자명하다. 따라서 본 명세서에서 추구되는 보호 범위는 이하의 청구항에서 제공된다.

Claims (15)

  1. 캐시 위치 정보를 저장하는 방법으로서,
    제 1 캐시로부터 데이터가 방출될 것이라 결정함에 응답하여, 상기 데이터를 제 1 캐시로부터, 상기 데이터와 함께 저장되는 위치 정보에 의해 표시되는 제 2 캐시의 웨이(way)로 전송하는 단계를 포함하며,
    상기 위치 정보는 제 1 캐시로부터 상기 데이터가 방출될 것이라고 결정하기 전에 저장되며 그리고 상기 데이터가 이전에 전송되었던 상위 레벨 캐시로서 상기 제 2 캐시를 식별하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 데이터는, 상기 데이터가 제 1 캐시에 저장되기 이전에 상기 위치 정보에 의해 표시되는 제 2 캐시의 웨이에 저장되는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 데이터가 제 1 캐시로부터 방출될 것이라고 결정하기 전에, 상기 데이터를 제 2 캐시의 웨이로부터 제 1 캐시로 전송하는 단계; 및
    상기 제 2 캐시의 웨이를 나타내는 상기 위치 정보를 제 1 캐시의 상기 데이터의 일부 비트에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 위치 정보를 저장하는 단계는, 상기 제 2 캐시의 웨이를 나타내는 위치 정보를 포함하는 위치 태그를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 위치 태그를 생성하는 단계는, 상기 위치 태그를 포함하도록 상기 데이터의 상태 비트들을 수정하는 단계를 포함하고, 상기 상태 비트들은 상기 데이터의 메모리 일관성 상태(memory coherence status)를 나타내는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 위치 정보를 저장하는 단계는,
    상기 위치 태그를 위치 태그 버퍼에 저장하는 단계; 및
    상기 데이터와 함께 위치 태그를 제 1 캐시에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 제 2 캐시는 제 1 캐시를 포함하는(inclusive of) 것을 특징으로 하는 방법.
  8. 캐시 위치 정보를 저장하는 방법으로서,
    제 1 캐시로부터 데이터가 방출될 것이라 결정함에 응답하여, 위치 태그에 의해 표시되는 제 2 캐시의 엔트리로 상기 데이터를 전송하는 단계를 포함하며,
    상기 위치 태그는 제 1 캐시에 저장되고 그리고 상기 데이터가 이전에 전송되었던 상위 레벨 캐시로서 상기 제 2 캐시를 식별하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 데이터가 제 1 캐시로부터 방출될 것이라고 결정하기 전에, 상기 데이터를 제 1 캐시로 전송하는 단계; 및
    상기 데이터와 함께 위치 태그를 제 1 캐시에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 제 2 캐시로부터 상기 제 1 캐시로 데이터를 전송하기 전에, 상기 제 2 캐시에 위치한 데이터에 대한 메모리 액세스 요청에 응답하여, 상기 데이터를 저장하는 제 2 캐시의 엔트리를 나타내는 위치 태그를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 위치 태그를 생성하는 단계는,
    상기 위치 태그를 상기 데이터의 일부 비트에 저장하는 단계를 더 포함하며, 상기 위치 태그는 상기 제 2 캐시의 엔트리의 세트 및 웨이를 나타내는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 위치 태그를 생성하는 단계는,
    상기 위치 태그를 포함하도록 상기 데이터의 메모리 일관성 상태를 나타내는 상태 태그를 수정하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 캐시 위치 정보를 저장하기 위한 디바이스로서,
    제 1 캐시;
    제 2 캐시; 및
    상기 제 2 캐시와 관련된 캐시 제어기를 포함하고,
    상기 캐시 제어기는,
    제 1 캐시로부터 데이터가 방출될 것이라 결정함에 응답하여, 상기 데이터를 제 1 캐시로부터 위치 정보에 의해 표시되는 제 2 캐시의 엔트리로 전송하도록 구성되며, 상기 위치 정보는 제 1 캐시에 저장되고 그리고 상기 데이터가 이전에 전송되었던 상위 레벨 캐시로서 상기 제 2 캐시를 식별하는 것을 특징으로 하는 디바이스.
  14. 제13항에 있어서,
    상기 캐시 제어기는 또한,
    상기 데이터가 제 1 캐시로부터 방출될 것이라고 결정하기 전에, 상기 데이터를 제 2 캐시의 엔트리로부터 제 1 캐시로 전송하도록 구성되는 것을 특징으로 하는 디바이스.
  15. 제14항에 있어서,
    상기 캐시 제어기는 또한,
    상기 데이터가 제 1 캐시로부터 방출될 것이라고 결정하기 전에, 제 2 캐시의 엔트리를 나타내는 위치 정보를 제 1 캐시에 저장하도록 구성되는 것을 특징으로 하는 디바이스.
KR1020237011379A 2016-07-14 2017-07-13 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 KR102680596B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/210,846 US10956339B2 (en) 2016-07-14 2016-07-14 System and method for storing cache location information for cache entry transfer
US15/210,846 2016-07-14
KR1020197002814A KR20190018730A (ko) 2016-07-14 2017-07-13 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법
PCT/US2017/041956 WO2018013824A1 (en) 2016-07-14 2017-07-13 System and method for storing cache location information for cache entry transfer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197002814A Division KR20190018730A (ko) 2016-07-14 2017-07-13 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20230050477A KR20230050477A (ko) 2023-04-14
KR102680596B1 true KR102680596B1 (ko) 2024-07-03

Family

ID=

Similar Documents

Publication Publication Date Title
US12026099B2 (en) System and method for storing cache location information for cache entry transfer
US10599578B2 (en) Dynamic cache bypassing
JP6630449B2 (ja) 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8583873B2 (en) Multiport data cache apparatus and method of controlling the same
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
KR102465851B1 (ko) 캐시 엔트리에서 메모리 액세스 요청의 펜던시를 식별하기 위한 시스템 및 방법
CN103885890A (zh) 高速缓冲存储器cache中cache块的替换处理方法和装置
US9164904B2 (en) Accessing remote memory on a memory blade
US11561906B2 (en) Rinsing cache lines from a common memory page to memory
KR102680596B1 (ko) 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법
KR101303079B1 (ko) 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
US10503640B2 (en) Selective data retrieval based on access latency
US20170357585A1 (en) Setting cache entry age based on hints from another cache level
US9684602B2 (en) Memory access control device, cache memory and semiconductor device