KR20190029657A - 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법 - Google Patents

메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법 Download PDF

Info

Publication number
KR20190029657A
KR20190029657A KR1020197004210A KR20197004210A KR20190029657A KR 20190029657 A KR20190029657 A KR 20190029657A KR 1020197004210 A KR1020197004210 A KR 1020197004210A KR 20197004210 A KR20197004210 A KR 20197004210A KR 20190029657 A KR20190029657 A KR 20190029657A
Authority
KR
South Korea
Prior art keywords
memory
voltage
memory request
cache memory
information
Prior art date
Application number
KR1020197004210A
Other languages
English (en)
Other versions
KR102351200B1 (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 KR20190029657A publication Critical patent/KR20190029657A/ko
Application granted granted Critical
Publication of KR102351200B1 publication Critical patent/KR102351200B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)

Abstract

메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법이 제공된다. 메모리 요청을 수신하는 것에 응답하여, 캐시 메모리와 전기적으로 통신하는 하드웨어를 이용하여, 메모리 요청과 관련된 정보가 식별된다. 정보에 기반하여, 캐시 메모리와 전기적으로 통신하는 하드웨어를 이용하여, 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압이 설정된다.

Description

메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법
상호 참조
이 출원은 "APPRATUS AND METHOD FOR SETTING A CLOCK SPEED/VOLTAGE OF CACHE MEMORY BASED ON MEMORY REQUEST INFORMATION"이라는 표제로 2016년 7월 22일에 출원된 미국 비 임시 특허 출원 제15/217,911호에 대한 우선권을 주장하는데, 이는 그 전체로서 복제된 것처럼 참조에 의해 본 문서에 포함된다.
발명 분야
본 발명은 캐시 메모리(cache memory)에 관한 것으로, 더욱 구체적으로는 캐시 메모리를 위한 클럭 속도(clock speed) 및/또는 전압을 설정하는 것에 관한 것이다.
현대의 프로세서는 전형적으로 데이터에 대한 더 빠른 액세스를 가능케 하는 방식으로 그러한 데이터를 저장하기 위해 캐시 메모리를 사용하는바, 이로써 전반적인 성능을 개선한다. 그러한 캐시 메모리는 전형적으로, 절전 목적으로, 캐시 메모리가 동작하는 전압 및/또는 클럭 주파수를 변경하기 위한 동적 전압/주파수 스케일링(Dynamic Voltage/Frequency Scaling: DVFS) 능력을 갖추고 있다. 현재까지, 그러한 DVFS 능력은 유휴 모드(idle mode)(가령, 메모리 요청이 서비스되고(serviced) 있지 않은 경우 등)에서 전압/주파수를 스케일링하거나, 단순히 전압/주파수를 오로지 서비스되고 있는 프로세서, 에이전트(agent) 등의 클럭에 기반하여 스케일링하는 시스템에 흔히 한정된다.
메모리 요청 정보(memory request information)에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 방법이 제공된다. 메모리 요청을 수신하는 것에 응답하여, 위 메모리 요청과 관련된 정보가, 캐시 메모리와의 전기적 통신을 하는 하드웨어를 이용하여 식별된다. 위 정보에 기반하여, 위 캐시 메모리의 적어도 일부분의 클럭 속도 및/또는 전압이, 위 캐시 메모리와의 전기적 통신을 하는 위 하드웨어를 이용하여 설정된다.
메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 장치 및 시스템이 또한 제공된다. 메모리 요청에 관련된 정보를, 위 메모리 요청을 수신하는 것에 응답하여 식별하도록 구성된 회로가 포함된다. 위 정보에 기반하여, 위 캐시 메모리의 적어도 일부분의 클럭 속도 및/또는 전압을 설정하도록 추가적인 회로가 구성된다.
제1 실시예에서, 위 정보는 위 메모리 요청을 야기한 적어도 하나의 프로세서의 적어도 일부분에 관련될 수 있다. 예를 들어, 위 정보는 위 메모리 요청을 야기한 위 프로세서의 위 일부분의 클럭 속도 및/또는 전압에 관련될 수 있다.
제2 실시예(이는 제1 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 정보는 위 메모리 요청의 유형(type)(가령, 읽기(read) 유형, 코히어런스(coherence) 유형, 쓰기(write) 유형, 프리페치(prefetch) 유형, 또는 플러시(flush) 유형 등)에 관련될 수 있다.
제3 실시예(이는 제1 및/또는 제2 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 정보는 위 메모리 요청의 대상(subject)인 데이터의 상태(가령, 히트 상태(hit status), 미스 상태(miss status), 또는 사전 미스에 따른 히트 상태(hit-on-prior-miss status) 등)에 관련될 수 있다.
제4 실시예(이는 제1, 제2 및/또는 제3 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 정보는 위 메모리 요청에 의해 야기되는 위 캐시 메모리의 액션(action)(가령, 읽기 액션, 쓰기 액션, 외부 메모리에 대한 요청, 플러시 액션, 또는 널(null) 액션 등)에 관련될 수 있다.
제5 실시예(이는 제1, 제2, 제3 및/또는 제4 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 정보는 위 메모리 요청의 필드(field)(가령, 요청자 식별 필드(requestor identification field), 유형 필드 등)로부터 식별될 수 있다.
제6 실시예(이는 제1, 제2, 제3, 제4 및/또는 제5 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 클럭 속도 또는 위 전압 중 위 적어도 하나는 최대 클럭 속도 또는 전압을 나타내는 적어도 하나의 프로세서의 적어도 일부분의 클럭 속도 또는 전압 중 하나로 설정될 수 있다.
제7 실시예(이는 제1, 제2, 제3, 제4, 제5 및/또는 제6 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 클럭 속도 또는 위 전압 중 적어도 하나는 위 캐시 메모리의 서브세트(suubset)를 위해 설정될 수 있다.
제8 실시예(이는 제1, 제2, 제3, 제4, 제5, 제6 및/또는 제7 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 클럭 속도 또는 위 전압 중 적어도 하나는 위 캐시 메모리의 전체를 위해 설정될 수 있다.
제9 실시예(이는 제1, 제2, 제3, 제4, 제5, 제6, 제7 및/또는 제8 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 클럭 속도 와 위 전압 양자 모두는 위 정보에 기반하여 설정될 수 있다.
제10 실시예(이는 제1, 제2, 제3, 제4, 제5, 제6, 제7, 제8 및/또는 제9 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 하드웨어는 위 캐시 메모리와 집적될(integrated) 수 있다.
제11 실시예(이는 제1, 제2, 제3, 제4, 제5, 제6, 제7, 제8, 제9 및/또는 제10 실시예와 조합될 수 있거나 그렇지 않을 수 있음)에서, 위 정보는 요청자 식별 필드 및/또는 유형 필드의 형태로 된 위 메모리 요청의 필드로부터 식별될 수 있다.
이를 위해, 몇몇 선택적 실시예에서, 앞서 언급된 장치, 시스템 및/또는 방법의 전술된 특징 중 하나 이상은 캐시 메모리가 활성(active)인 동안 클럭 속도 및/또는 전압 제어를 가능하게 할 수 있는데, 그러한 제어는 활성 메모리 요청에 관련되어 식별된 특정한 정보의 결과로서 더 높은 정밀도로 관리될 수 있다. 이것은, 결국, 그렇지 않다면 그러한 세밀한(fine-grained) 클럭 속도 및/또는 전압 제어가 부족한 시스템에서는 단념되었을 더 큰 전력 절감을 초래할 수 있다. 다른 실시예에서, 역시, 성능이 또한 향상될 수 있다. 앞서 언급된 잠재적 이점은 단지 예시적인 목적을 위해 제시된 것이며, 어떠한 방식으로도 한정적인 것으로 해석되어서는 안된다는 점에 유의하여야 한다.
도 1은 하나의 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 방법을 예시한다.
도 2는 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 시스템을 예시한다.
도 3은 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 공유 캐시 제어기(shared cache controller)를 예시한다.
도 4는 또 다른 실시예에 따라, 캐시 메모리의 클럭 속도/전압을 설정하기 위해 사용될 수 있는 정보를 구비한 샘플 메모리 요청을 예시한다.
도 5는 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 방법을 예시한다.
도 6은 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 추가적인 변형을 예시한다.
도 7a는 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 예시적인 타이밍도(timing diagram)를 보여준다.
도 7b는 하나의 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 시스템을 예시한다.
도 8은 하나의 가능한 실시예에 따라, 네트워크 아키텍쳐(network architecture)를 예시한다.
도 9는 하나의 실시예에 따라, 예시적인 시스템을 보여준다.
도 1은 하나의 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 방법(100)을 예시한다. 도시된 바와 같이, 단계(102)에서 메모리 요청이 수신된다. 본 설명의 맥락(context)에서, 그러한 메모리 요청은 캐시 메모리 내에 액션(action)을 야기하도록 의도된 임의의 요청을 포함할 수 있다.
단계(104)에서 나타내어진 바와 같이, 메모리 요청을 수신하는 것에 응답하여, 메모리 요청과 관련하여 정보가 식별된다. 본 설명에서, 그러한 정보는 메모리 요청에 포함된 임의의 정보 또는 메모리 요청의 내용에 의해 생성되도록 되고/되거나 그로부터 도출된 임의의 정보를 포함할 수 있다. 도 1에 도시된 바와 같이, 단계(104)는 캐시 메모리와 전기적으로 통신을 하는 하드웨어를 이용하여 수행된다. 그러한 하드웨어는 정보를 식별하고 이를 사용할 수 있는 임의의 하드웨어(가령, 집적된, 이산 컴포넌트 등)를 포함할 수 있다. 또한, 본 설명의 맥락에서, 용어 "전기적 통신"은 관련된 전기적 컴포넌트 간의 임의의 직접적인 그리고/또는 간접적인 전기적 커플링(coupling)을 지칭할 수 있다. 예를 들어, 그러한 전기적 컴포넌트는 그것들 사이에 중간 컴포넌트가 있거나 없는 전기적 통신을 할 수 있다.
또한 본 설명의 맥락에서, 캐시 메모리는 시스템 내의 다른 랜덤 액세스 메모리(random access memory: RAM)보다 더 신속히 액세스되는 것이 가능한 임의의 RAM을 포함할 수 있다. 예를 들어, 하나의 가능한 실시예에서, 캐시 메모리는 정적 랜덤 액세스 메모리(Static Random Access Memory: SRAM) 또는 임의의 다른 유형의 RAM을 포함할 수 있다. 캐시 메모리가 하이브리드(hybrid) 메모리 유형/클래스 시스템을 포함하는 실시예가 또한 고려된다.
하나의 실시예에서, 캐시 메모리는 로컬 캐시 메모리와는 별개인 공유 캐시 메모리(shared cache memory)를 포함할 수 있다. 그러한 실시예에서, 로컬 캐시 메모리(local cache memory)의 개별 인스턴스는 복수의 개별 컴퓨터 또는 프로세서 컴포넌트(가령, 클러스터(cluster), 코어(core), 스누핑 에이전트(snooping agent) 등) 중 오직 하나에 의해 액세스될 수 있는 반면, 공유 캐시 메모리는 개별 컴퓨터 또는 프로세서 컴포넌트 중 다수 사이에서 공유될 수 있다. 앞서 언급된 프로세서(들)는 범용 프로세서(general purpose processor), 중앙 처리 유닛(central processing unit), 그래픽 프로세서(graphics processor) 및/또는 임의의 다른 유형의 원하는 프로세서를 포함할 수 있음에 유의하여야 한다.
하나의 실시예에서, 정보는 메모리 요청을 야기한 적어도 하나의 프로세서의 적어도 일부분에 관련될 수 있다. 예를 들어, 정보는 메모리 요청을 야기한 적어도 하나의 프로세서의 적어도 일부분의 클럭 속도 및/또는 전압과 관련될 수 있다. 다른 실시예에서, 정보는 메모리 요청의 유형(가령, 읽기(read) 유형, 쓰기(write) 유형, 코히어런스(coherence) 유형, 프리페치(prefetch) 유형, 또는 플러시(flush) 유형)에 관련될 수 있다. 본 설명의 맥락에서, 읽기 유형 메모리 요청은 메모리로부터 데이터를 읽기 위한 요청을 수반할 수 있고, 쓰기 유형 메모리 요청은 메모리에 데이터를 쓰기 위한 요청을 수반할 수 있으며, 코히어런스 유형 메모리 요청은 시스템 내의 여러 저장 장소 사이에서 데이터가 일관됨(consistent)을 보장하는 요청을 수반할 수 있고, 프리페치 유형 메모리 요청은 미스(miss)를 피하기 위해 데이터를 가용하게 하려고 시도하는 요청을 수반할 수 있으며, 플러시 유형 메모리 요청은 캐시 메모리의 적어도 일부분을 비우는 요청을 수반할 수 있다.
또 다른 실시예에서, 정보는 메모리 요청의 대상(subject)인 데이터의 상태(가령, 히트 상태(hit status), 미스 상태(miss status), 또는 사전 미스에 따른 히트 상태(hit-on-prior-miss status) 등등)와 관련될 수 있다. 본 설명의 맥락에서, 히트 상태는 데이터에 대한 메모리 요청이 데이터가 캐시 메모리 내에서 액세스를 위해 가용한 것을 초래하는 상황을 지칭할 수 있고, 미스 상태는 데이터에 대한 메모리 요청이 데이터가 캐시 메모리 내에서 액세스를 위해 가용한 것을 초래하지 않는 상황을 지칭할 수 있으며, 사전 미스에 따른 히트 상태는 데이터에 대한 이전의 메모리 요청이 데이터가 캐시 메모리 내에서 액세스를 위해 가용한 것을 초래하지 않은 후에 동일한 데이터에 대한 메모리 요청이 캐시 메모리 내에서 액세스를 위해 가용한 것을 초래하는 상황을 지칭할 수 있다.
또 다른 실시예에서, 정보는 메모리 요청에 의해 야기되는 캐시 메모리의 액션(가령, 읽기 액션, 쓰기 액션, 외부 메모리에 대한 요청, 플러시 액션 또는 널(null) 액션 등)과 관련될 수 있다. 본 설명의 맥락에서, 읽기 액션은 데이터가 캐시 메모리로부터 읽히는 것을 초래하는 임의의 액션을 지칭할 수 있고, 쓰기 액션은 데이터가 캐시 메모리에 쓰이는 것을 초래하는 임의의 액션을 지칭할 수 있으며, 외부 메모리에 대한 요청은 캐시 메모리가 아닌 메모리로부터 데이터가 요청되는 임의의 액션을 지칭할 수 있고, 플러시 액션은 캐시 메모리로부터 적어도 일부 데이터가 비워지는 것을 초래하는 임의의 액션을 지칭할 수 있으며, 널 액션은 메모리 요청에 응답하여 어떤 액션도 취해지지 않는 임의의 상황을 지칭할 수 있다.
전술된 정보는 임의의 원하는 방식으로 식별될 수 있지만, 하나의 실시예에서, 정보는 메모리 요청의 필드(field)(가령 요청자 식별 필드, 유형 필드 등)로부터 식별될 수 있다. 전술된 정보에 관한 더 많은 세부사항이 이하에서 후속 실시예의 설명 중에 더욱 상세히 개진될 것이다.
단계(104)에서 식별된 정보에 기반하여, 캐시 메모리의 적어도 일부분의 클럭 속도 및/또는 전압은 캐시 메모리와 전기적으로 통신하는 하드웨어를 이용하여, 동작(106)에서 설정된다. 단계(104)와 단계(106)에 관련되어 이용되는 하드웨어의 하나 이상의 부분은 동일할 수 있거나 동일하지 않을 수 있다. 또한, 하드웨어는 캐시 메모리(또는 프로세서, 메모리 제어기 등을 포함하나 이에 한정되지 않는 임의의 다른 컴포넌트)와 집적될 수 있거나 집적되지 않을 수 있다.
하나의 실시예에서, 클럭 속도와 전압 양자 모두가 설정될 수 있는 반면, 다른 실시예에서는, 클럭 속도만 또는 전압만 설정될 수 있다. 예를 들어, 하나의 실시예에서, 클럭 속도와 전압은 캐시 메모리의 동작점(OPerating Point: OPP)을 포함할 수 있다. 또한, 클럭 속도 및/또는 전압은 캐시 메모리의 서브세트 또는 캐시 메모리 전체에 대해 설정될 수 있다. 전자의 경우, 캐시 메모리의 서브세트는, 그 점에 있어서, 캐시 메모리의 적어도 하나의 뱅크(bank), 또는 이의 임의의 서브세트를 포함할 수 있다.
사용자의 요망에 따라서, 전술된 방법이 구현될 수 있거나 구현되지 않을 수 있는 다양한 선택적인 아키텍처 및 용도에 관해 더 많은 예시적인 정보가 이제 개진될 것이다. 다음의 정보는 예시적인 목적을 위해 개진되며, 어떠한 방식으로든 한정적인 것으로서 해석되어서는 안 된다는 점에 유의하여야 한다. 다음의 특징 중 어떠한 것이든, 기술된 다른 특징을 배제하거나 배제하지 않고서 선택적으로 포함될 수 있다.
예를 들어, 몇몇 선택적인 실시예에서, 방법(100)은 캐시 메모리가 활성(active)인 동안 클럭 속도 및/또는 전압 제어를 가능하게 할 수 있다. 그러한 제어는 활성 메모리 요청에 관련되어 식별된 정보의 결과로서 더 높은 정밀도로 관리될 수 있다. 이것은, 결국, 그렇지 않다면 그러한 세밀한(fine-grained) 클럭 속도 및/또는 전압 제어가 부족한 시스템에서는 단념되었을 더 큰 전력 절감을 초래할 수 있다. 다른 실시예에서, 역시, 성능이 또한 향상될 수 있다. 단지 예로서, 하나의 가능한 실시예에서, (캐시 코히어런스 등등을 달성하기 위해) 높은 스누핑 레이트(rate of snooping)의 대상인 캐시 메모리는, 스누핑 디바이스에 상응하도록 설정되는 클럭 속도 및/또는 전압 제어에 의해서 스톨(stall)을 피할 수 있다. 물론, 전술된 잠재적인 이점은 순전히 선택적이다.
도 2는 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 시스템(200)을 예시한다. 선택사항으로서, 시스템(200)은 임의의 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 구현될 수 있다. 그러나 시스템(200)은 임의의 원하는 환경의 맥락에서 구현될 수 있음이 인식되어야 한다.
도시된 바와 같이, 시스템(200)은 복수의 코어(204)를 각각 포함하는 복수의 클러스터(202)를 포함한다. 사용 중에, 코어(204) 각각은 독립적으로 그리고/또는 집합적으로 컴퓨팅 작업(이는, 결국, 다양한 컴퓨팅 및 저장 요구를 가질 수 있음)을 할당받을 수 있다. 그러한 저장 요구의 적어도 일부분은 복수의 코어(204)와 집적된 로컬 캐시 메모리(206)에 의해 서비스될 수 있다. 또한, 도시된 방식으로, 코어(204)는 클러스터 클럭(208)(가령, 위상 고정 루프(Phase Locked Loop: PLL) 회로 등)에 의해 구동될 수 있다.
캐시 코히어런트 상호연결(cache coherent interconnect)(212)을 통해 클러스터(202)의 코어(204)와 전기적으로 통신하는 공유 캐시 메모리(210)가 또한 제공된다. 이 설계에 의해, 공유 캐시 메모리(210)는 로컬 캐시 메모리(206)가 이용가능한 것과 유사한 방식으로 코어(204)가 이용할 수 있다. 또한, 캐시 코히어런트 상호연결(212)은, 공통 데이터가 로컬 캐시 메모리(206)와 공유 캐시 메모리(210) 양자 모두에 저장되는 한, 그러한 공통 데이터가 일관된 채로 있음을 보장하기 위해 또한 이용될 수 있다.
도 2를 계속 참조하면, 공유 캐시 메모리(210)와 전기적으로 통신하는 공유 캐시 제어기(215)가 제공된다. 또한 도시된 바와 같이, 공유 캐시 제어기(215)는, 클러스터(202)의 코어(204)(그리고/또는 다른 소스)에 의해 촉발되며(prompted) 임의의 원하는 라우트(route)를 통해(가령, 메모리 제어기(도시되지 않음)를 통해, 코어(204)로부터 직접, 다른 구성부분을 통해 등등) 수신될 수 있는 메모리 요청(216)을 입력으로서 수신한다. 추가 입력으로, 공유 캐시 제어기(215)는 공유 캐시 제어기(215)에 의해 서비스되는 코어(204) 및/또는 임의의 다른 시스템 컴포넌트와 관련된 하나 이상의 클럭 신호(218)를 또한 수신한다.
동작 중에, 공유 캐시 제어기(215)는 공유 캐시 메모리(210)가 동작하는 클럭 및/또는 전압을 설정하기 위한 목적으로 적어도 하나의 클럭 및/또는 전압 신호(220)를 공유 캐시 메모리(210)에 출력하기 위해 메모리 요청(216) 및/또는 하나 이상의 클럭 신호(218)(그리고/또는 그로부터 수집된 임의의 정보)를 이용한다. 이를 위해, 공유 캐시 메모리(210)는 클럭 및/또는 전압을 메모리 요청(216), 그리고 가능하게는 클럭 신호(218)의 함수로서 설정함으로써 향상된 전력 절감으로 동작될 수 있다. 다양한 실시예에서, 그러한 향상된 전력 절감의 수준은 공유 캐시 메모리(210)의 클럭 및/또는 전압을 설정하기 위해 어떤 정보가 수집되고 어떻게 이용되는지에 달려 있을 수 있다. 공유 캐시 제어기(215)를 위한 하나의 가능한 아키텍처에 관해 더 많은 정보가 이제 개진될 것이다.
도 3은 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 공유 캐시 제어기(300)를 예시한다. 선택사항으로서, 공유 캐시 제어기(300)는 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 구현될 수 있다. 예를 들어, 하나의 실시예에서, 공유 캐시 제어기(300)는 도 2의 공유 캐시 제어기(215)를 포함할 수 있다. 그러나, 공유 캐시 제어기(300)가 임의의 원하는 환경의 맥락에서 구현될 수 있음이 인식되어야 한다.
예시된 바와 같이, 공유 캐시 제어기(300)는 캐시로서 동작하는 SRAM(304)과의 전기적 통신이 되는 채로 있는 캐시 제어 유닛(302)을 포함한다. 사용 중에, 캐시 제어 유닛(302)은 다양한 유형(가령, 읽기 유형, 쓰기 유형, 코히어런스 유형, 프리페치 유형 또는 플러시 유형 등등) 중 임의의 하나 이상을 취할 수 있는 복수의 메모리 요청을 수신한다. 이하에서 차후의 실시예의 설명 중에 명백하게 될 바와 같이, 메모리 요청(306)은 동작이 행해질 데이터를 갖는 데이터 필드, 메모리 요청 유형을 식별하는 유형 필드 등을 포함하는 다양한 필드를 포함할 수 있다. 메모리 요청(306)에 응답하여, 캐시 제어 유닛(302)은 SRAM(304)과 관련된 하나 이상의 액션(가령, 읽기 액션, 쓰기 액션, 외부 메모리에 대한 요청, 플러시 액션 또는 널 액션 등)을 야기한다.
추가로 도시된 바와 같이, 메모리 요청(306)은 또한 공유 캐시 제어기(300)가 하나 이상의 버스(307)를 통해 외부 메모리(305)와 상호작용(가령, 이로부터 판독, 이에 기록 등등)하도록 촉발할 수 있다. 또한 게다가, 캐시 제어 유닛(302)은 각각의 메모리 요청(306)으로부터 초래된 데이터 상태 신호(308)(가령, 히트, 미스 또는 사전 미스에 따른 히트 등)를 또한 보고 할 수 있다. 하나의 실시예에서, 그러한 데이터 상태 신호(308)가 반드시 요청되지는 않고서 푸시될(pushed) 수 있는 반면에, 다른 실시예에서는, 데이터 상태 신호(308)가 공유 캐시 제어기(300)의 다른 컴포넌트에 의해 요청될 수 있다.
공유 캐시 제어기(300)는, 입력으로서, 메모리 요청(306), 데이터 상태 신호(308) 및 복수의 클럭 신호를 수신하는 캐시 전력 관리 유닛(309)을 더 포함한다. 그러한 클럭 신호(310)는 SRAM(304)에 의해 서비스될 복수의 컴포넌트(가령, 컴퓨터, 프로세서, 코어, 스누프 에이전트(snoop agent), 이들의 일부분 등) 각각을 위한 클럭 신호를 포함할 수 있다(가령, REQUESTOR_CLK1, REQUESTOR_CLK2 ... REQUESTOR_CLKN 등). 또한, 레퍼런스 클럭(reference clock)(REF_CLK) 역시 제공될 수 있다.
동작 중에, 공유 캐시 제어기(300)는 SRAM(304)(그리고/또는 이의 임의의 일부분)을 위한 동작 전압을 설정하기 위한 전압 설정(312)을, 또 SRAM(304)(그리고/또는 이의 임의의 일부분)을 위한한 동작 클럭 주파수를 설정하기 위한 내부 클럭 설정(314A, 314B)도, 출력하는 역할을 한다. 또한, 그러한 전압 설정(312)과 내부 클럭 설정(314A, 314B)은, 메모리 요청(306), 데이터 상태 신호(308), 그리고/또는 메모리 요청(306)에 관련되어 수집 및/또는 처리되는 임의의 다른 정보의 필드를 포함하나 이에 한정되지 않는 메모리 요청(306)의 내용으로부터 수집, 도출 및/또는 (인과(causation)를 통해서) 유발되는 정보의 함수로서 구체적으로 설정된다.
도시된 바와 같이, SRAM(304)의 클럭을 설정하기 위해, 내부 클럭 설정(314A, 314B)은 클럭 선택 신호(clock select signal)(314A)를 포함하는데 이는 캐시 전력 관리 유닛(309)에 의해 제공되는 분할기 비율 신호(divider ratio signal)(314B)의 함수로서 클럭 신호(310)를 나누는 클럭 분할기(316)에 클럭 신호(310) 중 하나를 공급하는 멀티플렉서(multiplexer)(315)로 공급된다. 이를 위해, SRAM(304)의 클럭을 설정하기 위해 외부 클럭 설정(318)이 출력된다. 이 설계에 의해, SRAM(304)을 클럭킹하기(clocking) 위해 (서비스되는 컴포넌트 등을 클럭킹하는 것인) 클럭 신호(310) 중 적절하게 선택된 것은 감소될(stepped down) 수 있다.
이 설계에 의해, 제1 모듈(가령, 캐시 제어 유닛(302), 다른 회로 등)은, 메모리 요청을 수신하는 것에 응답하여, 메모리 요청과 관련된 정보를 식별하기 위해 제공된다. 또한, 제2 모듈(가령, 캐시 전력 관리 유닛(309), 다른 회로 등)은, 그 정보에 기반하여, 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나를 설정하기 위해 제공된다. 앞서 언급된 바와 같이, 그러한 전압/클럭 제어는 활성 메모리 요청과 관련되어 식별되는 정보의 결과로서 더 높은 정밀도로 관리될 수 있다. 이것은, 결국, 그렇지 않다면 그러한 지능적인, 세밀한 클럭 속도 및/또는 전압 제어가 부족한 시스템에서는 단념되었을 더 큰 전력 절감을 초래할 수 있다.
도 4는 또 다른 실시예에 따라, 캐시 메모리의 클럭 속도/전압을 설정하기 위해 사용될 수 있는 정보를 갖는 샘플 메모리 요청(400)을 예시한다. 선택사항으로서, 샘플 메모리 요청(400)은 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 사용될 수 있다. 예를 들어, 하나의 실시예에서, 샘플 메모리 요청(400)은 도 2의 공유 캐시 제어기(215), 도 3의 공유 캐시 제어기(300) 등에 의해 수신될 수 있다.
도시된 바와 같이, 메모리 요청(400)은 유형 필드(402), 요청자 식별자 필드(404), 주소 필드(406), 데이터 필드(408), 더티 비트(dirty bit) 필드(410), 캐시 힌트 필드(412), 그리고 잡종 속성(들)(miscellaneous attribute(s)) 필드(414)를 포함하는 복수의 필드를 포함한다. 사용 중에, 유형 필드(402)는 메모리 요청의 유형(가령, 읽기 유형, 쓰기 유형, 코히어런스 유형, 프리페치 유형, 또는 플러시 유형 등)을 식별할 수 있는 반면, 요청자 식별자 필드(404)는 메모리 요청(400)을 야기한 컴포넌트(가령, 클러스터, 코어, 스누핑 에이전트 등)를 식별할 수 있다. 이것은 임의의 원하는 식별자(가령, 고유한 이진수 등)를 사용하여 달성될 수 있다. 이러한 설계에 의해, 유형 필드(402), 요청자 식별자 필드(404) 및/또는 임의의 다른 필드의 내용은, 그 점에 있어서, 캐시 메모리의 클럭 속도/전압을 설정하기 위해 사용될 수 있다. 메모리 요청(400)이 캐시 메모리의 클럭 속도/전압을 설정하는 데 사용될 수 있는 하나의 가능한 방법에 관해서 더 많은 정보가 이제 개진될 것이다.
도 5는 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 방법(500)을 예시한다. 선택사항으로서, 방법(500)은 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 구현될 수 있다. 예를 들어, 하나의 실시예에서, 방법(500)은 도 2의 공유 캐시 제어기(215), 도 3의 공유 캐시 제어기(300) 등에 의해 수행될 수 있다. 또한, 방법(500)은 프리페처 엔진(prefetcher engine), 다수의 쓰기 버퍼, 그리고 채움(fill)/퇴거(evict) 대기열(queue)뿐만 아니라, 나중 쓰기(write-back)/쓰기 할당(write-allocate) 능력이 있는, 비-블록킹 다중 뱅크 캐시(non-blocking multi-banked cache)를 포함하는 환경에서 동작할 수 있다. 그러나, 방법(500)은 임의의 원하는 환경의 맥락에서 구현될 수 있음이 인식되어야 한다.
도시된 바와 같이, 단계(502)에서, 메모리 요청이 수신된다. 다양한 실시예에서, 메모리 요청은, 그 점에 있어서, 본 문서에 개시된 임의의 컴포넌트(가령, 도 2의 공유 캐시 제어기(215), 도 3의 공유 캐시 제어기(300) 등) 또는 임의의 다른 컴포넌트에 의해 수신될 수 있다. 단계(504)에서, (가령, 도 4의 유형 필드(402), 요청자 식별자 필드(404) 등인) 메모리 요청의 요청자 식별자 필드와, 유형 필드의 내용이 저장된다.
이후, 단계(502)에서 수신된 메모리 요청이 히트(hit)(즉, 요청된 데이터가 액세스를 위해 이용가능함 등)를 초래하는지가 판단(506)에서 판정된다. 그렇지 않은 경우, 이후 데이터는 외부 메모리로부터 데이터를 페치하기(fetching) 위해 버퍼 내에 요청을 배치함으로써 (캐시 메모리와는 별개인) 외부 메모리로부터 요청된다. 단계(508)를 보시오. 방법(500)은 이후, 판단(510)에 따라, 요청된 데이터(가령, 자료(datum) 등)가 이용가능할 때까지 폴링한다(poll). 판단(512)에 따라 데이터가 캐시 메모리로 복사되는지가 이후에 판정된다. 몇몇 실시예에서, 요청된 데이터가 요청하는 컴포넌트로 직접 발신되(고 따라서 캐시 메모리로 복사되지 않는다)는 점에 유의하여야 한다.
그러므로, 판단(506)에서 메모리 요청이 히트를 초래한다고 판정되거나, 판단(512)에서 데이터가 캐시 메모리로 복사된다고 판정되는 경우; 방법(500)은 단계(514)에 따라, 캐시 메모리의 타겟 섹션(들)(가령, 뱅크(들) 등)을 액세스하기 위해 대기열 내의 메모리 요청을 스케줄링하는 것으로 계속된다. 방법(500)은 이후 판단(516)에 따라 요청이 스케줄링될 때까지 폴링하는데, 그 후에 단계(518)에서 메모리 요청을 위해 액세스 지시자(access indicator)가 설정된다. 다양한 실시예에서, 그러한 액세스 지시자는, 메모리 요청(과 이에 포함된/이로부터 도출된 임의의 정보)이 활성임을 나타내는 목적으로, 메모리 요청과 함께 저장되거나 메모리 요청과는 별개인 임의의 하나 이상의 비트(bit)일 수 있고 따라서 메모리 요청을 야기한 관련 컴포넌트(들)(또는 이의 섹션(들))에 의해 액세스되는 동안 캐시 메모리의 전압/클럭을 설정하는 경우에 고려되어야 한다.
다음으로, 방법(500)은 판단(520)에서 앞서 언급된 대기열 내에 임의의 계류 중인 메모리 요청이 있는지를 판정한다. 그렇지 않은 경우, 방법(500)은 유휴인 채로 (있고 다른 전력 절감 기법이 채용될 수 있거나 그렇지 않을 수) 있다. 반면에, 앞서 언급된 대기열 내에 임의의 계류 중인 메모리 요청이 있는(가령, 방법(500)이 활성인) 경우, 메모리 캐시의 대응하는 타겟 섹션(들)에 대해 최적의 전압 및/또는 클럭(가령, OPP 등)이 판정된다. 단계(522)를 보시오.
다양한 실시예에서, 그러한 OPP는 캐시 메모리가 활성인 동안 전력 절감을 향상시키기 위해 메모리 요청(및/또는 그것의 내용 또는 그로부터 도출된/기인하는 정보)을 이용하는 임의의 원하는 방식으로 판정될 수 있다. 하나의 실시예에서, 최적의 OPP는, 대기열 내의 계류 중인 메모리 요청의 액세스 지시자에 의해 나타내어지는 바와 같이, 캐시 메모리를 현재 액세스하고 있는 요청자의 최고(즉, 다른 것에 비해 제일 빠른) 클럭인 것으로서 캐시 전력 관리 유닛(가령, 도 3의 캐시 전력 관리 유닛(309) 등)에 의해 판정될 수 있다.
다른 실시예에서, OPP가 변경되는 빈도를 제한하기 위해, OPP를 변경하기 전에 최소의 시간 양자(time quantum)가 사용될 수 있다. 그러므로, 메모리 요청은 OPP를 변경하기 위해 매 사이클마다 버퍼링될 수 있으나, 그 변경은 오직 N 사이클 걸러서 행해질 수 있는데, 여기서 N = 1, 2, 3,... X(임의의 정수)이다. 이를 위해, 캐시 메모리 클럭을 스케일링한다는 판단은, 캐시 메모리가 액세스되고 있는 맥락에 기반하여 연기될 수 있는데, 그러한 맥락은 메모리 요청 정보에 의해 정의될 수 있다.
다른 가능한 실시예에서, 그러한 양자(quantum)는 메모리 요청의 레이트(rate)에 기반하여 OPP를 변경하는 데에서의 지연을 보상하도록 규정될 수 있다. 또 다른 실시예에서, 클럭을 선택 및 변경하는 경우 락 지연(lock delay)을 최소화하는 무부조(glitch-free) 멀티플렉서 설계가 사용될 수 있다. 또 게다가, 캐시 메모리의 선택된 캐시/뱅크 전압은 클럭 생성기에 필요한 전압과 상이하거나 동일할 수 있다.
어떤 경우든, 캐시 메모리의 타겟 섹션(들)은 최적의 OPP에 맞춰지고(adjusted) 이후 요청자에게 데이터를 회신할 수 있다. 단계(524)를 보시오. 방법(500)은 액세스가 완료될 때까지 판단(526)에 따라서 폴링하는데, 그 후 앞서 언급된 액세스 지시자는 액세스를 야기한 메모리 요청에 대해 클리어되는바(cleared), 그러한 메모리 요청이 그러한 시점에서는 이미 서비스되었고, 더 이상은 최적의 OPP의 어떠한 차후의 계산에도 관련이 없기 때문이다.
도 6은 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하기 위한 추가적인 변형(600)을 예시한다. 선택사항으로서, 추가적인 변형(600)은 임의의 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 구현될 수 있다. 그러나, 추가적인 변형(600)은 임의의 원하는 환경의 맥락에서 구현될 수 있음이 인식되어야 한다.
도시된 바와 같이, 다양한 캐시 클럭 판단(602)은 액세스 유형(604), 데이터 상태(606) 및 캐시 액션(608)의 상이한 조합의 함수로서 제공될 수 있다. 예를 들어, 데이터 상태는 히트를 나타내고 캐시 액션은 읽기인 읽기 또는 스누프 액세스 유형의 경우에, 클럭은 모든 현재의 요청자(들)에 대해서 스케일링될 수 있다. 또한, 데이터 상태는 미스를 나타내고 캐시 액션은 널(null)이지만, 역시 읽기 또는 스누프 액세스 유형인 경우에, 클럭은 요청된 데이터가 메모리로부터 페치될 때까지 요청자(들)에 대해서 스케일링될 수 있다. 또 게다가, 데이터 상태는 히트를 나타내고 캐시 액션은 쓰기인 쓰기 액세스 유형의 경우에, 클럭은 모든 현재의 요청자(들)에 대해서 스케일링될 수 있다. 또 역시, 클럭/전압을 최적화하기 위해 어떠한 액션도 수행되지 않는 다른 예가 예시된다.
도 7a는 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 예시적인 타이밍도(700)를 보여준다. 선택사항으로서, 예시적인 타이밍도(700)는 임의의 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 동작을 반영할 수 있다.
도시된 바와 같이, 제1 도메인(702)(가령, 적어도 하나의 요청 컴포넌트 등을 포함함)은 제1 클럭(702A)과, 캐시 요청(702B)(이는 데이터 상태(702C)를 초래함)을 포함한다. 또한, 제2 도메인(704)(가령, 적어도 하나의 다른 요청 컴포넌트 등을 포함함)은 제2 클럭(704A)과, 캐시 요청(704B)(이는 데이터 상태(704C)를 초래함)을 포함한다. 또 게다가, 캐시 메모리(706)는 제3 클럭(706A)을 포함하는 것으로 도시된다. 두 개의 도메인(702, 704)이 본 실시예의 맥락에서 기술되나, 더 많은 또는 더 적은 그러한 도메인으로써 다른 실시예가 고려될 수 있다는 점에 유의하여야 한다.
제1 도메인(702)의 데이터 상태(702C)가 기간(706C) 동안 미스를 나타낸다는 사실에 기반하여, 도시된 바와 같이, 제2 클럭(704A)이 캐시 메모리의 제3 클럭(706A)을 구동하는 데에 이용되는데 그러한 기간 동안 이를 제2 도메인(704)의 제2 클럭(704A)으로 설정함에 의해서이다. 그러나, 일단 데이터 상태(702C)가 기간(706B) 동안 히트를 나타내면, 제1 클럭(702A)이 캐시 메모리(706)의 제3 클럭(706A)을 구동하는 데에 이용되는데 그러한 기간 동안 이를 제1 도메인(702)의 제1 클럭(702A)으로 설정함에 의해서이다. 캐시 메모리(706)의 제3 클럭(706A)은 두 개의 상이한 클럭 레이트 사이에서 스위칭하는 것으로 도시되나, 그러한 전이 사이에 약간의 지연이 포함될 수 있음에 유의하여야 한다.
그러므로, 캐시 메모리 클럭을 스케일링한다는 판단은, 캐시 메모리가 액세스되고 있는 맥락에 기반하여, 나중으로 연기될 수 있다. 임의의 전압/클럭 스케일링을 연기함으로써, 전력 절감이 될 수 있다.
도 7b는 또 다른 실시예에 따라, 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 시스템(750)을 예시한다. 선택사항으로서, 시스템(750)은 임의의 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 맥락에서 구현될 수 있다. 그러나, 시스템(750)은 임의의 원하는 환경의 맥락에서 구현될 수 있음이 인식되어야 한다.
도시된 바와 같이, 시스템(750)은, 메모리 요청을 수신하는 것에 응답하여, 메모리 요청과 관련된 정보를 식별하도록 구성된 제1 모듈(752)(가령, 제1 회로, 도 1의 동작(104)을 수행하는 모듈, 도 3에서의 캐시 제어 유닛(302)과 같은 도 2에서의 제어기(215)의 제1 부분 등)의 형태로 된 제1 수단을 포함한다. 또한 제1 모듈(752)과 통신하는 제2 모듈(754)(가령, 제2 회로, 도 1의 동작(106)을 수행하는 모듈, 도 3에서의 캐시 전력 관리 유닛(309)과 클럭 분할기(316)와 같은 도 2에서의 제어기(215)의 제2 부분 등)의 형태로 된 제2 수단이 포함되는데, 제2 모듈(754)은, 그 정보에 기반하여, 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나를 설정하도록 구성된다. 하나의 실시예에서, 시스템(750)은 도 1의 방법(100)에 따라 동작하도록 구성될 수 있다. 예를 들어, 시스템(750)은, 그러한 실시예에서, 도 1의 동작(102)에 따라 메모리 요청을 수신하기 위한 수신 모듈(또는 수단)을 포함할 수 있다.
도 8은 하나의 실시예에 따라, 네트워크 구성(800)를 예시한다. 하나의 실시예에서, 임의의 이전 및/또는 후속 도면(들) 및/또는 그에 대한 설명에서 개진된 실시예 중의 임의의 하나 이상의 실시예의 앞서 언급된 캐시 메모리 전압/클럭 제어는, 도 8에 도시된 컴포넌트 중 임의의 것에 포함될 수 있다.
도시된 바와 같이, 적어도 하나의 네트워크(802)가 제공된다. 본 네트워크 아키텍처(800)의 맥락에서, 네트워크(802)는 전기통신 네트워크, 로컬 영역 네트워크(Local Area Network: LAN), 무선 네트워크, 인터넷과 같은 광역 네트워크(Wide Area Network: WAN), 피어-투-피어(peer-to-peer) 네트워크, 케이블 네트워크 등을 포함하나 이에 한정되지 않는 임의의 형태를 취할 수 있다. 단지 하나의 네트워크가 도시되나, 2개 이상의 유사하거나 상이한 네트워크(802)가 제공될 수 있다는 점이 이해되어야 한다.
복수의 디바이스가 네트워크(802)에 커플링된다. 예를 들어, 서버 컴퓨터(812)와 최종 사용자 컴퓨터(808)는 통신 목적으로 네트워크(802)에 커플링될 수 있다. 그러한 최종 사용자 컴퓨터(808)는 데스크톱 컴퓨터, 랩톱 컴퓨터 및/또는 임의의 다른 유형의 로직을 포함할 수 있다. 또 게다가, 개인용 디지털 보조기기(Personal Digital Assistant: PDA) 디바이스(810), 모바일 전화 디바이스(806), 텔레비전(804) 등을 포함하여 네트워크(802)에 다양한 다른 디바이스가 커플링될 수 있다.
도 9는 하나의 실시예에 따라, 예시적인 시스템(900)을 보여준다. 선택사항으로서, 시스템(900)은 도 8의 네트워크 아키텍처(800)의 디바이스 중 임의의 것의 맥락에서 구현될 수 있다. 그러나, 시스템(900)은 임의의 원하는 환경에서 구현될 수 있음이 인식되어야 한다.
도시된 바와 같이, 버스(912)에 연결된 적어도 하나의 중앙 프로세서(902)를 포함하는 시스템(900)이 제공된다. 시스템(900)은 또한 메인 메모리(main memory)(904)(가령, 하드 디스크 드라이브(hard disk drive), 솔리드 스테이트 드라이브(solid state drive), 랜덤 액세스 메모리(Random Access Memory: RAM) 등)를 포함한다. 시스템(900)은 또한 그래픽 프로세서(908)와 디스플레이(910)를 포함한다.
시스템(900)은 또한 부차적 스토리지(secondary storage)(906)를 포함할 수 있다. 부차적 스토리지(906)는, 예컨대, 하드 디스크 드라이브, 그리고/또는, 플로피 디스크 드라이브(floppy disk drive), 자기 테이프 드라이브(magnetic tape drive), 컴팩트 디스크 드라이브(compact disk drive) 등을 나타내는 탈거가능 저장 드라이브(removable stroage drive)를 포함한다. 탈거가능 저장 드라이브는 잘 알려진 방식으로 탈거가능 저장 유닛으로부터 읽기 및/또는 탈거가능 저장 유닛에 쓰기를 한다.
컴퓨터 프로그램, 또는 컴퓨터 제어 로직 알고리즘은, 그 점에 있어서, 메인 메모리(906), 부차적 스토리지(906) 및/또는 임의의 다른 메모리에 저장될 수 있다. 그러한 컴퓨터 프로그램은, 실행되는 경우에, 시스템(900)으로 하여금 (예컨대, 위에서 개진된 바와 같은) 다양한 기능을 수행할 수 있게 한다. 메모리(904), 부차적 스토리지(906) 및/또는 임의의 다른 스토리지는 비일시적(non-transitory) 컴퓨터 판독가능 매체의 가능한 예이다.
본 문서에 기술된 기법은, 한 양상에서, 명령어 실행(instruction execution) 기계, 장치 또는 디바이스, 예를 들면 컴퓨터 기반(computer-based) 또는 프로세서 포함(processor-containing) 기계, 장치 또는 디바이스에 관련된 또는 이에 의한 사용을 위한 컴퓨터 판독가능 매체 내에 저장된 실행가능 명령어로 구체화된다. 몇몇 실시예에 있어서, 자기 카세트(magnetic cassette), 플래시 메모리 카드(flash memory card), 디지털 비디오 디스크(digital video disk), 베르누이 카트리지(Bernoulli cartridge), 랜덤 액세스 메모리(Random Access Memory: RAM), 판독 전용 메모리(Read Only Memory: ROM) 등등과 같은, 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 포함됨은 당업자에 의해 인식될 것이다.
여기서 사용되는 바와 같이, "컴퓨터 판독가능 매체"는 명령어 실행 기계, 시스템, 장치 또는 디바이스가 컴퓨터 판독가능 매체로부터 명령어를 판독(또는 페치)하고 기술된 방법을 수행하기 위한 명령어를 실행할 수 있도록 컴퓨터 프로그램의 실행가능 명령어를 저장하기 위한 임의의 적합한 매체 중 하나 이상을 포함한다. 적합한 저장 포맷은 전자, 자기, 광학 및 전자기 포맷 중 하나 이상을 포함한다. 종래의 예시적인 컴퓨터 판독가능 매체의 비전면적(non-exhaustive) 리스트는 다음을 포함한다: 휴대가능 컴퓨터 디스켓; RAM; ROM; 소거가능 프로그램가능 판독 전용 메모리(erasable programmable read only memory)(EPROM 또는 플래시 메모리(flash memory)); 휴대가능 컴팩트 디스크(Compact Disc: CD), 휴대가능 디지털 비디오 디스크(Digital Video Disc: DVD), 고해상도 DVD(High Definition DVD: HD-DVD™), 블루레이 디스크(BLU-RAY disc)를 포함하는 광학 저장 디바이스; 및 유사한 것.
기술된 도면에서 예시되는 컴포넌트의 배열은 예시적이라는 점 및 다른 배열이 가능하다는 점이 이해되어야 한다. 청구항에 의해 정의되고, 아래에서 기술되며, 다양한 블록도에서 예시되는 다양한 시스템 컴포넌트(및 수단)는 본 문서에 개시된 주제(subject matter)에 따라 구성된 몇몇 시스템에서의 논리적 컴포넌트를 나타낸다는 점이 또한 이해되어야 한다.
예를 들어, 이들 시스템 컴포넌트(및 수단) 중 하나 이상은 기술된 도면에서 예시된 배열에 예시된 컴포넌트 중 적어도 일부에 의해, 전체적으로 또는 부분적으로, 실현될 수 있다. 추가로, 이들 컴포넌트 중 적어도 하나는 전자 하드웨어 컴포넌트로서 적어도 부분적으로 구현되고, 따라서 기계를 구성하는 반면, 다른 컴포넌트는, 실행 환경에 포함되는 경우에 기계, 하드웨어, 또는 소프트웨어와 하드웨어의 조합을 구성하는 소프트웨어로 구현될 수 있다.
특히나, 청구항에 의해 정의된 적어도 하나의 컴포넌트는 적어도 부분적으로는, 명령어 실행 기계(가령, 프로세서 기반의 또는 프로세서 포함의 기계) 및/또는 전문화된(specialized) 회로 또는 회로망(가령, 전문화된 기능을 수행하기 위해 상호연결된 이산 로직 게이트)과 같은 전자 하드웨어 컴포넌트로서 구현된다. 다른 컴포넌트는 소프트웨어, 하드웨어 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다. 더욱이, 이러한 다른 컴포넌트 중 일부 또는 전부는 조합될 수 있고, 몇몇은 전적으로 제외될 수 있으며, 추가적인 컴포넌트가 본 문서에 기술된 기능을 여전히 달성하면서 추가될 수 있다. 그러므로, 본 문서에 기술된 주제는 많은 상이한 변형으로 구체화될 수 있고, 모든 그러한 변형은 청구된 것의 범위 내에 있는 것으로 여겨진다.
앞의 설명에서, 주제는, 달리 지시되지 않는 한, 하나 이상의 디바이스에 의해 수행되는 행위(act)와, 동작(operation)의 상징적 표현을 참조하여 기술된다. 이와 같이, 때때로 컴퓨터로 실행되는(computer-executed) 것으로 언급되는 그러한 행위 및 동작은 프로세서에 의해 데이터를 구조화된 형태로 조작하는 것을 포함함이 이해될 것이다. 이러한 조작은 데이터를 변환하거나 또는 그것을 컴퓨터의 메모리 시스템 내의 위치에 유지하는데, 이는 당업자에 의해 잘 이해되는 방식으로 디바이스의 동작을 재구성하거나 또는 그렇지 않으면 변경한다. 데이터는 데이터의 포맷에 의해 정의된 특정한 속성을 갖는 데이터 구조로서 메모리의 물리적 위치에 유지된다. 다만, 전술된 맥락에서 주제가 기술되고 있으나, 당업자는 이하에서 기술된 행위 및 동작 갖가지가 또한 하드웨어로 구현될 수 있음을 인식할 것이니 그것은 한정적인 것으로 의도된 것이 아니다.
본 문서에서 기술된 주제에 대한 이해를 용이하게 하기 위해서, 많은 양상이 액션의 시퀀스의 측면에서 기술된다. 청구항에 의해 정의된 이들 양상 중 적어도 하나는 전자 하드웨어 컴포넌트에 의해 수행된다. 예를 들어, 전문화된 회로 또는 회로망에 의해, 하나 이상의 프로세서에 의해 실행되는 프로그램 명령어에 의해, 또는 양자 모두의 조합에 의해 다양한 액션이 수행될 수 있음이 인지될 것이다. 액션의 임의의 시퀀스에 대한 본 문서에서의 설명은 그 시퀀스를 수행하기 위해 기술된 특정 순서를 따라야 한다는 것을 시사하도록 의도되지 않는다. 본 문서에 기술된 모든 방법은 본 문서에서 달리 지시되거나 맥락에 의해 달리 명백히 부정되지 않는다면 임의의 적합한 순서로 수행될 수 있다.
주제를 기술하는 맥락에서(특히 다음의 청구항의 맥락에서) 용어 "한" 및 "일" 및 "그" 및 유사한 지시물의 사용은, 본 문서에서 달리 지시되거나 맥락에 의해 명백히 부정되지 않는다면, 단수 및 복수 양자 모두를 포섭하는 것으로 해석되어야 한다. 본 문서에서의 값의 범위의 기재는, 본 문서에서 달리 지시되지 않는 한, 범위 내에 속하는 각각의 별개의 값을 개별적으로 참조하는 약식 방법으로서의 역할을 하도록 의도될 뿐이고, 각각의 별개의 값은 본 문서에서 개별적으로 기재된 것처럼 명세서에 통합된다. 나아가, 추구되는 보호의 범위는 이하에서 개진된 바와 같은 청구항, 더불어 그것의 임의의 균등물로 주어지는 바에 의해 정의되니, 전술된 설명은 단지 예시의 목적을 위한 것이고, 한정의 목적을 위한 것이 아니다. 본 문서에서 제공되는 임의의 그리고 모든 예, 또는 예시적인 언어(가령, "~와 같은")의 사용은 단지 주제를 보다 잘 예시하기 위한 것이고, 달리 청구되지 않는 한 주제의 범위에 대한 한정을 두지 않는다. 청구항 및 서면 설명 양자 모두에서, 결과를 유발하기 위한 조건을 나타내는 용어 "~에 기반하여" 및 다른 유사한 문구의 사용은 그 결과를 유발하는 임의의 다른 조건을 배제하도록 의도되지 않는다. 명세서에서의 어떠한 언어도 청구된 바와 같은 발명의 실시에 필수적인 것으로서 임의의 청구되지 않은 요소를 나타내는 것으로 해석되어서는 안 된다.
본 문서에 기술된 실시예는 청구된 주제를 수행하지 위해 발명자에게 알려진 하나 이상의 모드(mode)를 포함한다. 이들 실시예의 변형은 전술된 설명을 읽을 시에 당업자에게 명백하게 될 것임이 인식되어야 한다. 발명자는 숙련된 기술자가 그러한 변형을 적절하게 채용할 것으로 예상하고, 발명자는 청구된 주제가 본 문서에서 구체적으로 기술된 바와는 다르게 실시되도록 의도한다. 따라서, 이 청구된 주제는 적용가능한 법률에 의해 허용되는 바와 같이 여기에 부기된 청구항에 기재된 주제의 모든 수정 및 균등물을 포함한다. 더욱이, 그것의 모든 가능한 변형에서의 앞서 기술된 요소의 어떠한 조합이든 본 문서에서 달리 지시되거나 문맥에 의해 달리 명백히 부정되지 않는 한 망라된다.

Claims (20)

  1. 메모리 요청을 수신하는 단계와,
    상기 메모리 요청을 수신하는 것에 응답하여, 캐시 메모리(cache memory)와 전기적으로 통신하는 하드웨어를 이용하여, 상기 메모리 요청과 관련된 정보를 식별하는 단계와,
    상기 정보에 기반하여, 상기 캐시 메모리와 전기적으로 통신하는 상기 하드웨어를 이용하여, 상기 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나를 설정하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 정보는 상기 메모리 요청을 야기한 적어도 하나의 프로세서의 적어도 일부분에 관련되는,
    방법.
  3. 제1항에 있어서,
    상기 정보는 상기 메모리 요청을 야기한 적어도 하나의 프로세서의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나에 관련되는,
    방법.
  4. 제1항에 있어서,
    상기 정보는 상기 메모리 요청의 유형(type)에 관련되는,
    방법.
  5. 제4항에 있어서,
    상기 메모리 요청의 상기 유형은 읽기(read) 유형, 코히어런스(coherence) 유형, 쓰기(write) 유형, 프리페치(prefetch) 유형, 또는 플러시(flush) 유형 중 적어도 하나를 포함하는,
    방법.
  6. 제1항에 있어서,
    상기 정보는 상기 메모리 요청의 대상(subject)인 데이터의 상태에 관련되는,
    방법.
  7. 제6항에 있어서,
    상기 데이터의 상기 상태는 히트 상태(hit status), 미스 상태(miss status), 또는 사전 미스에 따른 히트 상태(hit-on-prior-miss status) 중 적어도 하나를 포함하는,
    방법.
  8. 제1항에 있어서,
    상기 정보는 상기 메모리 요청에 의해 야기되는 상기 캐시 메모리의 액션(action)에 관련되는,
    방법.
  9. 제8항에 있어서,
    상기 메모리 요청에 의해 야기되는 상기 캐시 메모리의 상기 액션은 읽기 액션, 쓰기 액션, 외부 메모리에 대한 요청, 플러시 액션 또는 널(null) 액션 중 적어도 하나를 포함하는,
    방법.
  10. 제1항에 있어서,
    상기 정보는 상기 메모리 요청의 필드(field)로부터 식별되는,
    방법.
  11. 제10항에 있어서,
    상기 메모리 요청의 상기 필드는 요청자 식별 필드(requestor identification field)를 포함하는,
    방법.
  12. 제10항에 있어서,
    상기 메모리 요청의 상기 필드는 유형 필드를 포함하는,
    방법.
  13. 제1항에 있어서,
    상기 클럭 속도 또는 상기 전압 중 상기 적어도 하나는 최고 클럭 속도 또는 전압을 나타내는 적어도 하나의 프로세서의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나로 설정되는,
    방법.
  14. 제1항에 있어서,
    상기 클럭 속도 또는 상기 전압 중 적어도 하나는 상기 캐시 메모리의 서브세트를 위해 설정되는,
    방법.
  15. 제14항에 있어서,
    상기 캐시 메모리의 상기 서브세트는 상기 캐시 메모리의 적어도 하나의 뱅크(bank)를 포함하는,
    방법.
  16. 제1항에 있어서,
    상기 클럭 속도 또는 상기 전압 중 적어도 하나는 상기 캐시 메모리의 전체를 위해 설정되는,
    방법.
  17. 제1항에 있어서,
    상기 클럭 속도 및 상기 전압 양자 모두는 상기 정보에 기반하여 설정되는,
    방법.
  18. 제1항에 있어서,
    상기 하드웨어는 상기 캐시 메모리와 집적되는,
    방법.
  19. 메모리 요청을 수신하는 것에 응답하여, 상기 메모리 요청과 관련된 정보를 식별하도록 구성된 회로와,
    상기 정보에 기반하여, 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나를 설정하도록 구성된 회로를 포함하는
    장치.
  20. 데이터를 저장하는 캐시 메모리와,
    상기 캐시 메모리와 전기적으로 통신하는 하드웨어를 포함하되, 상기 하드웨어는,
    메모리 요청을 수신하는 것에 응답하여, 상기 메모리 요청과 관련된 정보를 식별하고,
    상기 정보에 기반하여, 상기 캐시 메모리의 적어도 일부분의 클럭 속도 또는 전압 중 적어도 하나를 설정하도록 구성된,
    시스템.
KR1020197004210A 2016-07-22 2017-07-13 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법 KR102351200B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/217,911 US20180024610A1 (en) 2016-07-22 2016-07-22 Apparatus and method for setting a clock speed/voltage of cache memory based on memory request information
US15/217,911 2016-07-22
PCT/CN2017/092860 WO2018014784A1 (en) 2016-07-22 2017-07-13 Apparatus and method for setting clock speed/voltage of cache memory based on memory request information

Publications (2)

Publication Number Publication Date
KR20190029657A true KR20190029657A (ko) 2019-03-20
KR102351200B1 KR102351200B1 (ko) 2022-01-13

Family

ID=60988455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197004210A KR102351200B1 (ko) 2016-07-22 2017-07-13 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법

Country Status (8)

Country Link
US (1) US20180024610A1 (ko)
EP (1) EP3472709B1 (ko)
JP (1) JP6739617B2 (ko)
KR (1) KR102351200B1 (ko)
CN (1) CN109791469B (ko)
AU (1) AU2017299655B2 (ko)
RU (1) RU2717969C1 (ko)
WO (1) WO2018014784A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11837321B2 (en) 2020-12-17 2023-12-05 Samsung Electronics Co., Ltd. Apparatus, memory controller, memory device, memory system, and method for clock switching and low power consumption
US11899584B2 (en) 2021-07-14 2024-02-13 SK Hynix Inc. System setting operating frequency of random access memory based on cache hit ratio and operating method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4293478A4 (en) * 2021-05-31 2024-04-17 Huawei Technologies Co., Ltd. MEMORY MANAGEMENT APPARATUS AND METHOD, AND ELECTRONIC DEVICE

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005607A1 (en) * 2006-06-28 2008-01-03 Matsushita Electric Industrial Co., Ltd. Method of controlling information processing device, information processing device, program, and program converting method
US20080276236A1 (en) * 2007-05-02 2008-11-06 Advanced Micro Devices, Inc. Data processing device with low-power cache access mode
US20140095777A1 (en) * 2012-09-28 2014-04-03 Apple Inc. System cache with fine grain power management
US20150067214A1 (en) * 2013-08-28 2015-03-05 Via Technologies, Inc. Single-core wakeup multi-core synchronization mechanism
IN2015CH01503A (ko) * 2015-03-24 2015-04-10 Wipro Ltd
US20160154455A1 (en) * 2013-08-08 2016-06-02 Fujitsu Limited Selecting method, computer product, selecting apparatus, and recording medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2287107B (en) * 1994-02-23 1998-03-11 Advanced Risc Mach Ltd Clock switching
JP3880310B2 (ja) * 2000-12-01 2007-02-14 シャープ株式会社 半導体集積回路
JP4860104B2 (ja) * 2003-10-09 2012-01-25 日本電気株式会社 情報処理装置
JP2005196430A (ja) * 2004-01-07 2005-07-21 Hiroshi Nakamura 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
US7565560B2 (en) * 2006-10-31 2009-07-21 International Business Machines Corporation Supplying combinations of clock frequency, voltage, and current to processors
JP4939234B2 (ja) * 2007-01-11 2012-05-23 株式会社日立製作所 フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
JP5388864B2 (ja) * 2007-12-13 2014-01-15 パナソニック株式会社 クロック制御装置、クロック制御方法、クロック制御プログラム及び集積回路
KR100961632B1 (ko) * 2008-10-27 2010-06-09 고려대학교 산학협력단 패치 엔진
US8611151B1 (en) * 2008-11-06 2013-12-17 Marvell International Ltd. Flash memory read performance
US20100138684A1 (en) * 2008-12-02 2010-06-03 International Business Machines Corporation Memory system with dynamic supply voltage scaling
CN101853066A (zh) * 2009-02-11 2010-10-06 上海芯豪微电子有限公司 一种自动实时调整系统时钟频率的方法和装置
CN102109877B (zh) * 2009-12-28 2012-11-21 华硕电脑股份有限公司 具有超/降频控制功能的计算机系统及其相关控制方法
US8438410B2 (en) * 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
US8799698B2 (en) * 2011-05-31 2014-08-05 Ericsson Modems Sa Control of digital voltage and frequency scaling operating points
US8675424B2 (en) * 2012-03-09 2014-03-18 Oracle International Corporation Separate read/write column select control
GB2503743B (en) * 2012-07-06 2015-08-19 Samsung Electronics Co Ltd Processing unit power management
EP2759907B1 (en) * 2013-01-29 2024-05-22 Malikie Innovations Limited Methods for monitoring and adjusting performance of a mobile computing device
US20150194196A1 (en) * 2014-01-09 2015-07-09 Sunplus Technology Co., Ltd. Memory system with high performance and high power efficiency and control method of the same
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US9874910B2 (en) * 2014-08-28 2018-01-23 Intel Corporation Methods and apparatus to effect hot reset for an on die non-root port integrated device
CN104460449A (zh) * 2014-11-24 2015-03-25 成都中远信电子科技有限公司 一种便携式数据记录器的记录方法
US9746898B2 (en) * 2015-08-26 2017-08-29 Dell Products Lp Systems and methods for controlling processing device power consumption
US9851774B2 (en) * 2016-01-04 2017-12-26 Qualcomm Incorporated Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
CN105677527B (zh) * 2016-02-18 2019-02-26 苏州无离信息技术有限公司 一种自动测量嵌入式存储器最大工作频率的系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005607A1 (en) * 2006-06-28 2008-01-03 Matsushita Electric Industrial Co., Ltd. Method of controlling information processing device, information processing device, program, and program converting method
US20080276236A1 (en) * 2007-05-02 2008-11-06 Advanced Micro Devices, Inc. Data processing device with low-power cache access mode
US20140095777A1 (en) * 2012-09-28 2014-04-03 Apple Inc. System cache with fine grain power management
US20160154455A1 (en) * 2013-08-08 2016-06-02 Fujitsu Limited Selecting method, computer product, selecting apparatus, and recording medium
US20150067214A1 (en) * 2013-08-28 2015-03-05 Via Technologies, Inc. Single-core wakeup multi-core synchronization mechanism
IN2015CH01503A (ko) * 2015-03-24 2015-04-10 Wipro Ltd

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11837321B2 (en) 2020-12-17 2023-12-05 Samsung Electronics Co., Ltd. Apparatus, memory controller, memory device, memory system, and method for clock switching and low power consumption
US12100475B2 (en) 2020-12-17 2024-09-24 Samsung Electronics Co., Ltd. Apparatus, memory controller, memory device, memory system, and method for clock switching and low power consumption
US11899584B2 (en) 2021-07-14 2024-02-13 SK Hynix Inc. System setting operating frequency of random access memory based on cache hit ratio and operating method thereof

Also Published As

Publication number Publication date
US20180024610A1 (en) 2018-01-25
CN109791469B (zh) 2021-08-13
WO2018014784A1 (en) 2018-01-25
EP3472709A4 (en) 2019-07-17
JP2019527890A (ja) 2019-10-03
AU2017299655A1 (en) 2019-02-07
RU2717969C1 (ru) 2020-03-27
EP3472709A1 (en) 2019-04-24
AU2017299655B2 (en) 2020-01-02
CN109791469A (zh) 2019-05-21
JP6739617B2 (ja) 2020-08-12
EP3472709B1 (en) 2023-04-26
KR102351200B1 (ko) 2022-01-13

Similar Documents

Publication Publication Date Title
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
KR101324885B1 (ko) 복수의 회로들에서의 성능 파라미터들 조정
US9471130B2 (en) Configuring idle states for entities in a computing device based on predictions of durations of idle periods
JP2016506576A (ja) 集積回路のアイドルフェーズ予測
JP2008009647A (ja) 情報処理装置
KR102547292B1 (ko) 동적 신뢰성 품질 모니터링
KR102351200B1 (ko) 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법
US11922172B2 (en) Configurable reduced memory startup
US20160048447A1 (en) Magnetoresistive random-access memory cache write management
US9645635B2 (en) Selective power gating to extend the lifetime of sleep FETs
US7305521B2 (en) Methods, circuits, and systems for utilizing idle time in dynamic frequency scaling cache memories
US10503471B2 (en) Electronic devices and operation methods of the same
US9021280B1 (en) Power saving for FIFO buffer without performance degradation
US10552323B1 (en) Cache flush method and apparatus
CN114691541A (zh) 一种基于动态访问的dram-nvm混合内存预测器

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant