KR20160143682A - 무효화를 이용한 리드를 사용하여 캐시에서의 대역폭 및 전력을 낮추기 위한 방법 및 장치 - Google Patents
무효화를 이용한 리드를 사용하여 캐시에서의 대역폭 및 전력을 낮추기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20160143682A KR20160143682A KR1020167028125A KR20167028125A KR20160143682A KR 20160143682 A KR20160143682 A KR 20160143682A KR 1020167028125 A KR1020167028125 A KR 1020167028125A KR 20167028125 A KR20167028125 A KR 20167028125A KR 20160143682 A KR20160143682 A KR 20160143682A
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- cache line
- memory
- written
- retirement
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G06F2212/69—
-
- Y02B60/1225—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
캐시에 저장된 일시적 데이터는 필요로 될 때 리드되지만, 전력 및 대역폭을 절약하기 위하여 시스템 메모리에는 라이트되지 않는다. 실시예에서, 리드-노-라이트백 명령에 대한 응답으로, 일시적 데이터와 연관된 노-라이트백 비트가 셋팅된다. 그것의 노-라이트백 비트가 셋팅된, 캐시 라인의 데이터는 시스템 메모리에 라이트백되지 않는다. 이에 따라, 캐시 라인들을 퇴거시킬 때, 캐시 라인이 노-라이트백 비트가 셋팅되었다면, 그 캐시 라인의 데이터는 시스템 메모리에 라이트백되지 않고 폐기된다.
Description
[0001]
실시예들은 전자 시스템의 캐시 메모리에 관한 것이다.
[0002]
많은 종류들의 컨슈머 전자 디바이스들, 이를테면, 예컨대, 셀 폰들 및 태블릿들의 경우, 시스템 메모리에 저장될 필요가 없는 몇몇 타입들의 데이터가 캐시에 존재한다. 이러한 데이터는 일시적 데이터(ephemeral data)로 불릴 수 있다. 예컨대, 모바일폰 또는 태블릿의 디스플레이에서 렌더링되는 이미지를 보는 누군가는 이미지를 회전하기를 원할 수 있다. 많은 상황들에서 이미지 회전에 관련된, 내부적으로 생성된 데이터는 시스템 메모리에 저장될 필요가 없다. 그러나, 캐시 라인 교체 정책을 수행할 때, 많은 디바이스들은 이러한 일시적 데이터를 시스템 메모리에 라이트(write)할 수 있다. 일시적 데이터의 라이트 동작들은 전력 및 메모리 대역폭을 불필요하게 소모한다.
[0003]
본 발명의 실시예들은, 무효화(invalidate)를 이용한 리드(read)를 사용하여 캐시에서의 대역폭 및 전력을 낮추기 위한 시스템들 및 방법들에 관한 것이다.
[0004]
실시예에서, 방법은, 어드레스(address)를 표시하는 리드-노-라이트백(read-no-writeback) 명령을 캐시에서 수신하는 단계; 및 어드레스와 연관된 캐시 라인을, 캐시로부터의 캐시 라인의 퇴거시 메모리에 라이트되지 않아야 하는 것으로서 표시하기 위해 노-라이트백(no-writeback) 비트를 캐시에서 셋팅하는 단계를 포함한다.
[0005]
다른 실시예에서, 캐시는 캐시 라인들과 연관된 데이터를 저장하기 위한 스토리지 ―각각의 캐시 라인은 대응하는 노-라이트백 비트를 가짐―; 및 스토리지에 커플링된 제어기를 포함하고, 제어기는, 캐시 라인을 표시하는 리드-노-라이트백 명령을 수신하는 것에 대한 응답으로, 캐시 라인을, 캐시로부터의 캐시 라인의 퇴거시 메모리에 라이트되지 않아야 하는 것으로서 표시하기 위해 캐시 라인에 대응하는 노-라이트백 비트를 셋팅한다.
[0006]
다른 실시예에서, 시스템은 메모리; 디바이스; 및 디바이스에 커플링된 캐시를 포함하고, 캐시는, 캐시에 저장된 캐시 라인의 어드레스를 표시하는 리드-노-라이트백 명령을 디바이스로부터 수신하는 경우 ―캐시 라인은 대응하는 노-라이트백 비트를 가짐―, 캐시 라인이 캐시로부터의 캐시 라인의 퇴거시 메모리에 라이트되지 않아야 함을 표시하기 위해 노-라이트백 비트를 셋팅한다.
[0007]
첨부된 도면들은 본 발명의 실시예들의 설명을 돕기 위해 제시되고, 오로지 실시예들의 예시를 위해 제공되며, 이들의 제한이 아니다.
[0008] 도 1은 실시예가 애플리케이션을 발견하는 시스템을 예시한다.
[0009] 도 2는 실시예에 따른 방법을 예시한다.
[0010] 도 3은 실시예에 따른 다른 방법을 예시한다.
[0011] 도 4는 실시예에 따른 다른 방법을 예시한다.
[0012] 도 5는 실시예에 따른 다른 방법을 예시한다.
[0013] 도 6은 실시예가 애플리케이션을 발견할 수 있는 통신 네트워크를 예시한다.
[0008] 도 1은 실시예가 애플리케이션을 발견하는 시스템을 예시한다.
[0009] 도 2는 실시예에 따른 방법을 예시한다.
[0010] 도 3은 실시예에 따른 다른 방법을 예시한다.
[0011] 도 4는 실시예에 따른 다른 방법을 예시한다.
[0012] 도 5는 실시예에 따른 다른 방법을 예시한다.
[0013] 도 6은 실시예가 애플리케이션을 발견할 수 있는 통신 네트워크를 예시한다.
[0014]
본 발명의 양상들이 본 발명의 특정 실시예들에 관한 하기의 설명 및 관련 도면들에서 개시된다. 대안적 실시예들이 발명의 범위로부터 벗어나지 않고 창안될 수 있다. 부가적으로, 본 발명의 관련 상세들을 모호하게 하지 않기 위하여, 본 발명의 잘 알려진 엘리먼트들은 상세히 설명되지 않거나 또는 생략될 것이다.
[0015]
"본 발명의 실시예들"이란 용어는 본 발명의 모든 실시예들이 논의된 특징, 장점 또는 동작 모드를 포함하는 것을 요구하지 않는다.
[0016]
본원에 사용된 용어는 특정 실시예들만을 설명하는 목적을 위한 것이며, 본 발명의 실시예들을 제한하는 것으로 의도되지 않는다. 본원에 사용된 바와 같이, 맥락이 명확하게 달리 표시하지 않는 한, 단수 형태들은 복수 형태들도 또한 포함하는 것으로 의도된다. 추가로, "포함하다", "포함하는", "갖다" 및/또는 "갖는"이란 용어들은, 본원에서 사용될 때, 진술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지는 않음이 이해될 것이다.
[0017]
추가로, 많은 실시예들이 예컨대 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 액션들의 시퀀스들 면에서 설명된다. 특정 회로들(예컨대, 주문형 집적 회로(ASIC:application specific integrated circuit)들), 프로그램 명령들을 실행하는 하나 또는 그 초과의 프로세서들, 또는 이 둘의 결합이 본원이 설명된 다양한 액션들을 수행할 수 있음이 인식될 것이다. 부가적으로, 본원에 설명된 액션들의 시퀀스들은 컴퓨터 명령들의 대응하는 세트를 저장하고 있는 임의의 형태의 컴퓨터 판독가능 저장 매체 내에 전적으로 구현되는 것으로 간주될 수 있고, 이 컴퓨터 명령들은 실행시 연관된 프로세서로 하여금 본원에 설명된 기능성을 수행하게 할 것이다. 따라서, 본 발명의 다양한 양상들은 다수의 상이한 형태들로 구현될 수 있고, 이들 전부는 청구되는 발명의 요지의 범위 내에 있는 것으로 고려되었다. 부가하여, 본원에 설명된 실시예들 각각에 대해, 임의의 이러한 실시예들의 대응하는 형태가 예컨대 설명된 액션을 수행"하도록 구성된 로직"으로서 본원에 설명될 수 있다.
[0018]
캐시에 저장된 일시적 데이터에 대한 리드 동작을 수행할 때, 일부 실시예들이 일시적 데이터를 노-라이트백 데이터로서 태깅(tagging)하는 능력을 포함하여, 태깅된 일시적 데이터는 시스템 메모리에 라이트되지 않을 것이다. 노-라이트백 태그(no-writeback tag)는, 대응하는 데이터가 유효한지 또는 아닌지의 여부를 표시하기 위한 통상적인 유효 태그(valid tag) 이외의 것이다. 노-라이트백 태깅은 예컨대, 캐시가 버스 마스터에 의해 수행되는 리드 동작과 연관된 버스 시그널링을 검사하게 하는 여러 방식들로 달성될 수 있다. 예컨대, 버스 시그널링은 리드 명령의 전문화된 버전을 포함할 수 있으며, 리드 명령의 연산 부호(opcode)는 데이터의 캐시 라인을 리딩하는 경우 데이터가 노-라이트백으로서 태깅되어야 함을 표시한다. 다른 방법은, 캐시가 리딩 디바이스(예컨대, 디스플레이)와 연관된 마스터ID(마스터 식별)를 검사하고, 마스터ID에 따라 데이터를 노-라이트백으로서 태깅하는 것이다. 다른 방법은, 플래그를 포함하도록 리딩 디바이스와 캐시 사이의 트랜잭션의 트랜잭션 속성을 수정하는 것이며, 이 플래그는, 캐시로 하여금, 리드 동작을 수행하는 경우, 캐시 라인을 노-라이트백 데이터로서 태깅하게 하기 위해 리딩 디바이스에 의해 셋팅될 수 있다.
[0019]
도 1은 실시예가 애플리케이션을 발견할 수 있는 시스템(100)을 예시한다. 시스템(100)은 디스플레이(104) 상에 디스플레이되는 이미지들을 프로세싱 및 조작하기 위해 사용될 수 있는 프로세서(102)를 포함한다. 또한, 시스템(100)에는 버스 아비터(bus arbiter)(106), 시스템 메모리(108), 캐시(110), 및 시스템 버스(112)가 포함된다. 시스템(100)은 예컨대 더 큰 시스템의 일부, 예컨대 셀룰러 폰 또는 태블릿을 표현할 수 있다.
[0020]
예시의 단순성을 위해, 시스템의 모든 컴포넌트들이 도 1에 예시되는 것은 아니다. 시스템(100)에 예시된 컴포넌트들 중 일부는 하나 또는 그 초과의 반도체 칩들 상에 집적될 수 있다. 예컨대, 캐시(110)는 프로세서(102)와 통합될 수 있지만, 단순성을 위해, 이 캐시(110)는 시스템 버스(112)에 커플링된 별개의 컴포넌트로서 도시된다. 다른 예로서, 프로세서(102)는 버스 아비터(106)의 기능을 수행할 수 있다. 또한, 시스템 메모리(108)는 메모리 계층의 일부일 수 있고, 캐시의 여러 레벨들이 있을 수 있다. 단순성을 위해, 단 한 개의 레벨의 캐시(110)만이 도시된다.
[0021]
프로세서(102)는 디스플레이(104)에 전용될 수 있고, 이미지 프로세싱에 최적화될 수 있다. 그러나, 실시예들은 그렇게 제한되지 않으며, 프로세서(102)는 예컨대 셀룰러 폰 또는 태블릿에 대한 일반적인 애플리케이션 프로세서를 표현할 수 있다. 일부 실시예들의 경우, 도 1에 예시된 컴포넌트들 중 대부분 또는 전부가 디스플레이(104)에 전용되거나 또는 이미지 프로세싱에 최적화될 수 있다. 예컨대, 캐시(110)는 프로세서(102)와 통합되고 디스플레이(104)에 전용될 수 있으며, 시스템 메모리(108)는 도시되지 않은 다른 컴포넌트들과 공유된다.
[0022]
캐시(110)는 캐시 어드레스를 보유하기 위한 레지스터(112)를 포함한다. 도 1의 특정한 예에서, 레지스터(112)에 저장된 캐시 어드레스는 두 개의 필드들, 즉, 태그 필드(114) 및 인덱스 필드(116)를 포함하며, 태그 필드(114)의 값은 캐시 어드레스의 비트들 중 상위 세트이고, 인덱스 필드(116)의 값은 캐시 어드레스의 비트들 중 하위 세트이다. 도 1의 특정한 예에서, 캐시(110)는 RAM (Random Access Memory)(118)에 저장된 태그들 및 RAM(120)에 저장된 데이터의 대응하는 캐시 라인들을 갖는 직접-매핑식 캐시(direct-mapped cache)로서 조직된다. 다른 실시예들의 경우, 캐시는 다른 방식들로, 이를테면, 예컨대, 세트-연상형 캐시(set-associative cache)로서 조직될 수 있다. RAM(118) 및 RAM(120)이 별개의 RAM들로서 구현되는지 또는 하나의 RAM으로서 구현되는지의 여부는 본 논의에서 중요하지 않다. 캐시 라인들 및 연관된 비트들을 저장하기 위한 다른 타입들의 스토리지가 사용될 수 있다. 도 1의 특정한 예의 경우, 각각의 캐시 라인, 예컨대, 캐시 라인(122)은 데이터의 네 개의 바이트들을 포함한다.
[0023]
인덱스 필드(116)의 비트들 중 상위 세트가 디코더(124)에 제공되고, 이 인덱스 필드(116)의 비트들 중 상위 세트는, 캐시 라인(122)과 연관된 태그(126)를 획득하도록 RAM(118)에 인덱싱하기 위해 사용된다. 인덱스 필드(116)의 비트들 중 하위 세트는, 캐시 라인(122)에 저장된 특정한 바이트를 선택하기 위해 멀티플렉서(128)에 대해 사용된다. 태그(126)는, 매치가 있는지를 표시하기 위해, 태그 필드(114)에 저장된 값과 비교기(130)에 의해 비교된다. 태그(126) 이외에, 인덱스 필드(116)에 저장된 비트들 중 상위 세트는, 캐시 라인(122)과 연관된 유효 비트(132)를 제공하도록 RAM(118)에 인덱싱하기 위해 사용되며, 유효 비트(132)는 캐시 라인(122)에 저장된 데이터가 유효한지의 여부를 표시한다. 태그(126)가 태그 필드(114)의 값에 매치되면, 그리고 유효 비트(132)가 캐시 라인(122)이 유효함을 표시하면, 캐시 라인(122)에 저장된 데이터가 정확한 어드레스를 갖고 그리고 유효함을 표시하는 유효 히트(valid hit)가 있다.
[0024]
유효 비트(132)를 제공하는 것 이외에, 인덱스 필드(116)에 저장된 비트들 중 상위 세트는, 캐시 라인(122)과 연관된 노-라이트백 비트(133)를 제공하도록 RAM(118)에 인덱싱된다. 노-라이트백 비트(133)는, 캐시(110)로부터의 캐시 라인(122)의 퇴거시 캐시 라인(122)에 저장된 데이터가 시스템 메모리(108)에 라이트백되어야 하는지의 여부를 표시한다. 노-라이트백 비트(133)가 셋팅되었다면, 가동중인 캐시 정책에 관계없이, 캐시 라인(122)은 시스템 메모리(108)에 라이트백되지 않는다.
[0025]
일부 실시예들의 경우, 프로세서(102)에 대한 명령 세트는 리드-노-라이트백 명령을 포함한다. 리드-노-라이트백 명령은, 그것의 파라미터들 중 하나가 어드레스이며, 그것이 캐시(110)에 의해 수신될 때, 통상적인 리드 동작에서와 같이 그 어드레스와 연관된 데이터가 적절한 캐시 라인으로부터 리드되게 하는 명령이다. 적절한 캐시 라인이 발견된다면, 캐시 라인과 연관된 노-라이트백 비트는, 캐시로부터 퇴거될 때 캐시 라인이 시스템 메모리(108)에 라이트백되지 않아야 함을 표시하도록 셋팅된다. 이러한 방식으로 셋팅된 노-라이트백 비트에 대해, 캐시 라인의 데이터는 시스템 메모리(또는 더 높은 레벨의 캐시)에 라이트되지 않을 것이다. 리드-노-라이트백 명령을 수신한 이후, 캐시 코히어런스(coherence) 정책이 라이트-백(write-back) 명령을 캐시(110)에 전송하면, 노-라이트백으로서 마킹된 캐시 라인들은 메모리(예컨대, 시스템 메모리(108))에 라이트되지 않을 것이다. 여기서, 캐시(110)가 명령을 수신하는 것에 대한 참조는, 명령을 표시하는 다양한 버스 신호들이 캐시(110)에 제공됨을 의미할 수 있다.
[0026]
일부 실시예들의 경우, 노-라이트백 비트는 다음에 교체될 캐시 라인(next-to-be replaced cache line)을 선택하기 위한 수단으로서 사용될 수 있다. 이러한 실시예에서, 교체 정책은, 셋팅된 노-라이트백 비트를 갖는 그러한 캐시 라인들을 검색하고, 자신들의 노-라이트백 비트가 셋팅되지 않은 유효한 캐시 라인들을 퇴거시키기 이전에, 그러한 캐시 라인들을 퇴거시키는 것이다. 이는, 일시적 데이터가 자신의 마지막 사용으로 보였고 교체될 수 있다는 전제에 기초한다.
[0027]
도 2 및 도 3은 위에서 설명된 실시예들 중 일부를 예시한다. 프로세스가 프로세서 상에서 실행되는 경우(단계 202), 일시적 데이터가 생성되면(단계 204), 캐싱된 일시적 데이터가 시스템 메모리에 라이트백되지 않도록, 이 캐싱된 일시적 데이터에 대한 캐시 라인의 노-라이트백 비트가 셋팅된다. 캐시 코히어런스 정책을 구현할 때, 캐시 라인에 대한 라이트-백 명령이 캐시에 의해 수신되는 경우(단계 208), 캐시 라인과 연관된 노-라이트백 비트가 셋팅되면(단계 210), 가동중인 특정한 캐시 라인 교체 정책에 관계없이, 캐시 라인은 시스템 메모리에 라이트되지 않을 것이다(단계 212). 그러나, 노-라이트백 비트가 셋팅되지 않으면(단계 210), 캐시 라인은 이 캐시 라인이 유효하다면 시스템 메모리에 라이트될 수 있다(단계 214).
[0028]
도 3을 참조하면, 명령 페치시(단계 302), 리드-노-라이트백 명령이 디코딩되면(단계 304), 리드-노-라이트백 명령이 캐시에 전송된다(단계 306). 캐시가 리드-노-라이트백 명령을 실행하는 것은, 리드-노-라이트백 명령의 어드레스 파라미터에 의해 표시된 캐시 라인과 연관된 데이터의 리드를 유발하고, 그리고 캐시 라인이 시스템 메모리에 라이트백되지 않도록, 대응하는 노-라이트백 비트를 셋팅한다(단계 308).
[0029]
도 2 및 도 3에 표시된 프로세스들 중 일부는 프로세서(102)에 의해 수행될 수 있고, 다른 프로세스들은 캐시(110)에서, 예컨대, RAM(118)에 노-라이트백 비트를 셋팅하기 위한 제어기(134)에 의해 수행될 수 있다.
[0030]
일부 실시예들의 경우, 캐시 라인과 연관된 노-라이트백 비트는 캐시를 리딩하는 디바이스(예컨대, 셀룰러 폰의 디스플레이)와 연관된, 수정된 트랜잭션 속성에 따라 셋팅될 수 있다. 트랜잭션 속성은 플래그를 포함하며, 이 플래그는, 리드 동작이 수행될 때, 캐시에 저장된 대응하는 캐시 라인에 노-라이트백 비트가 셋팅되어야 함을 표시하기 위해 디바이스에 의해 셋팅될 수 있다. 이는 도 4에서 예시되며, 단계(402)에서, 캐시 라인의 데이터를 읽을 디바이스는 트랜잭션 속성의 플래그를 셋팅하고, 단계(404)에서, 캐시 제어기(134)는 그것이 일시적 데이터임을 표시하기 위해 캐시 라인의 노-라이트백 비트를 셋팅한다.
[0031]
도 5는 다른 방법을 예시한다. 단계(502)에서, 캐시(110)는 리딩 디바이스, 이를테면, 예컨대, 디스플레이와 연관된 마스터ID를 검사하고, 그리고 특정한 마스터ID에 따라, 캐시 제어기(134)는 캐시 라인의 데이터가 일시적 데이터임을 표시하기 위해 캐시 라인과 연관된 노-라이트백 비트를 셋팅한다(단계 504).
[0032]
도 6은 실시예들이 애플리케이션을 발견할 수 있는 무선 통신 시스템을 예시한다. 도 6은 기지국들(604A, 604B, 및 604C)을 포함하는 무선 통신 네트워크(602)를 예시한다. 도 6은 606으로 라벨링된 통신 디바이스를 도시하고, 이 통신 디바이스는 모바일 통신 디바이스, 예컨대, 셀룰러 폰, 태블릿, 또는 셀룰러 폰 네트워크에 적절한 어떤 다른 종류의 통신 디바이스, 예컨대, 컴퓨터 또는 컴퓨터 시스템일 수 있다. 통신 디바이스(606)는 모바일일 필요는 없다. 도 6의 특정한 예에서, 통신 디바이스(606)는 기지국(604C)과 연관된 셀 내에 위치된다. 화살표들(608 및 610)은, 통신 디바이스(606)가 기지국(604C)과 통신하게 하는 업링크 채널 및 다운링크 채널을 각각 그림으로 표현한다.
[0033]
실시예들은 예컨대 통신 디바이스(606) 또는 기지국(604C) 또는 둘 다와 연관된 데이터 프로세싱 시스템들에서 사용될 수 있다. 도 6은 본원에 설명된 실시예들이 사용될 수 있는 많은 애플리케이션들 중에서 단 한 개의 애플리케이션만을 예시한다.
[0034]
기술분야의 당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있음을 인식할 것이다. 예컨대, 위의 설명 전체에 걸쳐 지칭될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 입자들, 광학 필드들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[0035]
추가로, 기술분야의 당업자들은 본원에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있음을 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그들의 기능성 면에서 위에서 설명되었다. 그러한 기능성이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지의 여부는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 따라 좌우된다. 당업자들은 설명된 기능성을 각각의 특정한 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들은 본 발명의 범위로부터의 벗어남을 유발하는 것으로서 해석되어서는 안된다.
[0036]
본원에 개시된 실시예들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 탈착가능 디스크, CD-ROM, 또는 기술분야에 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적 저장 매체가 프로세서에 커플링되어, 이 프로세서는 저장 매체로부터 정보를 리드하고 정보를 저장 매체에 라이트할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.
[0037]
이에 따라, 본 발명의 실시예는, 무효화를 이용한 리드를 사용하여 캐시에서 대역폭 및 전력을 낮추기 위한 방법을 구현하는 비-일시적 컴퓨터 판독가능 미디어를 포함할 수 있다. 이에 따라, 본 발명은 예시된 예들로 제한되지 않으며, 본원에 설명된 기능성을 수행하기 위한 임의의 수단이 본 발명의 실시예들에 포함된다.
[0038]
앞선 개시 내용이 본 발명의 예시적인 실시예들을 나타내지만, 첨부된 청구항들에 의해 정의되는 본 발명의 범위로부터 벗어나지 않고, 다양한 변경들 및 수정들이 본원에서 이루어질 수 있음이 주목되어야 한다. 본원에 설명된 본 발명의 실시예들에 따른 방법 청구항들의 기능들, 단계들 및/또는 액션들은 임의의 특정한 순서로 수행될 필요가 없다. 또한, 본 발명의 엘리먼트들이 단수 형태로 설명되거나 또는 청구될 수 있지만, 단수 형태로의 제한이 명시적으로 진술되지 않는 한, 복수 형태가 고려된다.
Claims (12)
- 방법으로서,
디바이스로부터의 리드(read) 명령 및 상기 디바이스에 대응하는 수신 정보를 캐시에서 수신하는 단계 ―상기 리드 명령은 어드레스(address)를 표시함―;
상기 디바이스에 대응하는 상기 수신 정보로부터, 상기 어드레스와 연관된 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 메모리에 라이트(write)되지 않아야 하는지의 여부를 결정하는 단계; 및
상기 디바이스에 대응하는 상기 수신 정보로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 결정하는 경우, 상기 캐시 라인을, 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는 것으로서 표시하기 위해 상기 캐시에 노-라이트백 비트(no-writeback bit)를 셋팅하는 단계
를 포함하는,
방법. - 제 1 항에 있어서,
교체 정책에 대한 응답으로, 상기 캐시로부터 노-라이트백 비트들이 셋팅되지 않은 다른 캐시 라인들을 퇴거시키기 이전에, 상기 캐시 라인을 퇴거시키는 단계
를 더 포함하는,
방법. - 제 1 항에 있어서,
상기 디바이스에 대응하는 상기 수신 정보는 상기 디바이스에 대응하는 수신 마스터 식별이며,
상기 디바이스에 대응하는 상기 수신 마스터 식별로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는지의 여부를 결정하는 단계가, 상기 캐시에서 상기 디바이스에 대응하는 상기 수신 마스터 식별을 검사하는 것에 기초하는 단계를 더 포함하는,
방법. - 캐시로서,
캐시 라인들과 연관된 데이터를 저장하기 위한 스토리지 ―각각의 캐시 라인은 대응하는 노-라이트백 비트를 가짐―; 및
상기 스토리지에 커플링된 제어기
를 포함하고,
상기 제어기는,
디바이스로부터의 리드 명령 및 상기 디바이스에 대응하는 수신 정보를 수신하고 ―상기 리드 명령은 어드레스를 표시함―, 그리고 응답으로,
상기 디바이스에 대응하는 상기 수신 정보로부터, 캐시 라인 ―상기 캐시 라인은 상기 어드레스와 연관되어 있음― 이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 메모리에 라이트되지 않아야 하는지의 여부를 결정하고; 그리고
상기 디바이스에 대응하는 상기 수신 정보로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 결정하는 경우, 상기 캐시 라인을, 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는 것으로서 표시하기 위해 상기 캐시 라인에 대응하는 노-라이트백 비트를 셋팅하도록
구성되는,
캐시. - 제 4 항에 있어서,
상기 제어기는 추가로, 교체 정책에 대한 응답으로, 노-라이트백 비트들이 셋팅되지 않은 다른 캐시 라인들을 퇴거시키기 이전에 상기 캐시 라인을 퇴거시키도록 구성되는,
캐시. - 제 5 항에 있어서,
상기 디바이스에 대응하는 상기 수신 정보는 상기 디바이스에 대응하는 수신 마스터 식별이며, 상기 제어기는 추가로,
상기 디바이스에 대응하는 상기 수신 마스터 식별로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는지의 여부를 검사 및 결정하고; 그리고
상기 수신 마스터 식별로부터, 상기 캐시 라인이 퇴거시 상기 메모리에 라이트되지 않아야 함을 결정하는 경우, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 표시하기 위해 상기 캐시 라인과 연관된 노-라이트백 비트를 셋팅하도록
구성되는,
캐시. - 제 4 항에 있어서,
상기 디바이스에 대응하는 상기 수신 정보는 상기 디바이스에 대응하는 수신 마스터 식별이며, 상기 제어기는 추가로,
상기 디바이스에 대응하는 상기 수신 마스터 식별로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는지의 여부를 검사 및 결정하고; 그리고
상기 수신 정보로부터, 상기 캐시 라인이 퇴거시 상기 메모리에 라이트되지 않아야 함을 결정하는 경우, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 표시하기 위해 상기 캐시 라인과 연관된 노-라이트백 비트를 셋팅하도록
구성되는,
캐시. - 제 4 항에 있어서,
상기 캐시는 셀룰러 폰, 태블릿, 및 컴퓨터 시스템으로 구성된 그룹으로부터 선택된 장치의 일부인,
캐시. - 시스템으로서,
메모리;
디바이스; 및
상기 디바이스에 커플링된 캐시
를 포함하고,
상기 캐시는,
캐시 라인을 저장하고, 상기 디바이스로부터의 리드 명령 및 상기 디바이스에 대응하는 수신 정보를 수신하고 ―상기 리드 명령은 상기 캐시 라인의 어드레스를 표시함―,
상기 캐시 라인에 대해 대응하는 노-라이트백 비트를 저장하도록
구성되고, 그리고 추가로,
상기 디바이스에 대응하는 상기 수신 정보로부터, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 하는지의 여부를 결정하고; 그리고
상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 결정하는 것에 대한 응답으로, 상기 캐시 라인이 상기 캐시로부터의 상기 캐시 라인의 퇴거시 상기 메모리에 라이트되지 않아야 함을 표시하기 위해 상기 노-라이트백 비트를 셋팅하도록
구성되는,
시스템. - 제 9 항에 있어서,
상기 캐시는 추가로, 교체 정책에 대한 응답으로, 노-라이트백 비트들이 셋팅되지 않은 다른 캐시 라인들을 퇴거시키기 이전에 상기 캐시 라인을 퇴거시키도록 구성되는,
시스템. - 제 9 항에 있어서,
상기 디바이스는 마스터 식별을 갖고, 그리고
상기 디바이스에 대응하는 상기 수신 정보는 수신 마스터 식별인,
시스템. - 제 9 항에 있어서,
상기 디바이스는 디스플레이인,
시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/251,628 | 2014-04-13 | ||
US14/251,628 US20150293847A1 (en) | 2014-04-13 | 2014-04-13 | Method and apparatus for lowering bandwidth and power in a cache using read with invalidate |
PCT/US2015/023686 WO2015160503A1 (en) | 2014-04-13 | 2015-03-31 | Method and apparatus for lowering bandwidth and power in a cache using read with invalidate |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160143682A true KR20160143682A (ko) | 2016-12-14 |
Family
ID=53039586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167028125A KR20160143682A (ko) | 2014-04-13 | 2015-03-31 | 무효화를 이용한 리드를 사용하여 캐시에서의 대역폭 및 전력을 낮추기 위한 방법 및 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20150293847A1 (ko) |
EP (1) | EP3132354A1 (ko) |
JP (1) | JP2017510902A (ko) |
KR (1) | KR20160143682A (ko) |
CN (1) | CN106170776A (ko) |
BR (1) | BR112016023745A2 (ko) |
TW (1) | TW201604681A (ko) |
WO (1) | WO2015160503A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10176096B2 (en) * | 2016-02-22 | 2019-01-08 | Qualcomm Incorporated | Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches |
US10552153B2 (en) * | 2017-03-31 | 2020-02-04 | Intel Corporation | Efficient range-based memory writeback to improve host to device communication for optimal power and performance |
US11023162B2 (en) | 2019-08-22 | 2021-06-01 | Apple Inc. | Cache memory with transient storage for cache lines |
TWI771707B (zh) * | 2020-07-08 | 2022-07-21 | 慧榮科技股份有限公司 | 組態可靠命令的方法及裝置以及電腦程式產品 |
CN113918081B (zh) | 2020-07-08 | 2024-03-26 | 慧荣科技股份有限公司 | 计算机可读取存储介质、配置可靠命令的方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0354649A (ja) * | 1989-07-24 | 1991-03-08 | Oki Electric Ind Co Ltd | バッファ記憶制御方式 |
JPH0448358A (ja) * | 1990-06-18 | 1992-02-18 | Nec Corp | キャッシュ・メモリ制御方式 |
JPH08137748A (ja) * | 1994-11-08 | 1996-05-31 | Toshiba Corp | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 |
DE69622079T2 (de) * | 1995-03-31 | 2002-10-31 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur schnellen Einleitung von Speicherzugriffen in einem cachekohärenten Multiprozessorsystem |
JP4434534B2 (ja) * | 2001-09-27 | 2010-03-17 | 株式会社東芝 | プロセッサ・システム |
JP2003177963A (ja) * | 2001-12-12 | 2003-06-27 | Hitachi Ltd | ストレージ装置 |
US6968429B2 (en) * | 2003-02-20 | 2005-11-22 | Sun Microsystems, Inc. | Method and apparatus for controlling line eviction in a cache |
US8214601B2 (en) * | 2004-07-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Purging without write-back of cache lines containing spent data |
JP2006119796A (ja) * | 2004-10-20 | 2006-05-11 | Matsushita Electric Ind Co Ltd | キャッシュメモリシステムおよび動画処理装置 |
US7461209B2 (en) * | 2005-12-06 | 2008-12-02 | International Business Machines Corporation | Transient cache storage with discard function for disposable data |
US20090006668A1 (en) * | 2007-06-28 | 2009-01-01 | Anil Vasudevan | Performing direct data transactions with a cache memory |
US20090037661A1 (en) * | 2007-08-04 | 2009-02-05 | Applied Micro Circuits Corporation | Cache mechanism for managing transient data |
US20120047330A1 (en) * | 2010-08-18 | 2012-02-23 | Nec Laboratories America, Inc. | I/o efficiency of persistent caches in a storage system |
US20120297147A1 (en) * | 2011-05-20 | 2012-11-22 | Nokia Corporation | Caching Operations for a Non-Volatile Memory Array |
JP2014178804A (ja) * | 2013-03-14 | 2014-09-25 | Sony Corp | キャッシュ制御装置、プロセッサ、情報処理システム、および、その制御方法 |
-
2014
- 2014-04-13 US US14/251,628 patent/US20150293847A1/en not_active Abandoned
-
2015
- 2015-03-31 BR BR112016023745A patent/BR112016023745A2/pt not_active IP Right Cessation
- 2015-03-31 CN CN201580019273.3A patent/CN106170776A/zh active Pending
- 2015-03-31 JP JP2016561316A patent/JP2017510902A/ja not_active Ceased
- 2015-03-31 EP EP15719898.7A patent/EP3132354A1/en not_active Withdrawn
- 2015-03-31 WO PCT/US2015/023686 patent/WO2015160503A1/en active Application Filing
- 2015-03-31 KR KR1020167028125A patent/KR20160143682A/ko unknown
- 2015-04-10 TW TW104111685A patent/TW201604681A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP2017510902A (ja) | 2017-04-13 |
BR112016023745A2 (pt) | 2017-08-15 |
CN106170776A (zh) | 2016-11-30 |
TW201604681A (zh) | 2016-02-01 |
WO2015160503A1 (en) | 2015-10-22 |
US20150293847A1 (en) | 2015-10-15 |
EP3132354A1 (en) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169240B2 (en) | Reducing memory access bandwidth based on prediction of memory request size | |
KR20160143682A (ko) | 무효화를 이용한 리드를 사용하여 캐시에서의 대역폭 및 전력을 낮추기 위한 방법 및 장치 | |
US9558120B2 (en) | Method, apparatus and system to cache sets of tags of an off-die cache memory | |
US20180074893A1 (en) | Providing memory bandwidth compression in chipkill-correct memory architectures | |
US20130019065A1 (en) | Mobile Memory Cache Read Optimization | |
US20150143045A1 (en) | Cache control apparatus and method | |
US20160188490A1 (en) | Cost-aware page swap and replacement in a memory | |
JP2018503924A (ja) | 中央処理ユニット(cpu)ベースのシステム内の圧縮メモリコントローラ(cmc)による連続読取り動作を使用するメモリ帯域幅圧縮の提供 | |
CN108351818B (zh) | 用于在存储器中实现纠错码的系统和方法 | |
US9792228B2 (en) | Enhancing lifetime of non-volatile cache by injecting random replacement policy | |
KR20100069240A (ko) | 캐시 컨트롤을 위한 장치 및 방법 | |
CN105095104B (zh) | 数据缓存处理方法及装置 | |
US20160239420A1 (en) | System and method for managing a cache pool | |
US20140317455A1 (en) | Lpc bus detecting system and method | |
US20150186284A1 (en) | Cache element processing for energy use reduction | |
KR20150020551A (ko) | 명령 캐시에서 추가 데이터 허가들을 트래킹하기 위한 방법 및 장치 | |
EP3230875B1 (en) | Adaptive memory access to local and non-local memories | |
US9286237B2 (en) | Memory imbalance prediction based cache management | |
TW201917585A (zh) | 用於動態隨機存取記憶體之選擇性更新機制 | |
US9794580B2 (en) | Cache management device, and motion picture system and method using the same | |
US9251096B2 (en) | Data compression in processor caches | |
US9767043B2 (en) | Enhancing lifetime of non-volatile cache by reducing intra-block write variation | |
JP6038955B2 (ja) | 高時間的参照局所性のデータフィルバッファの排除防止 | |
US11175926B2 (en) | Providing exception stack management using stack panic fault exceptions in processor-based devices | |
CN116348856A (zh) | 用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统 |