KR102048399B1 - 메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업 - Google Patents

메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업 Download PDF

Info

Publication number
KR102048399B1
KR102048399B1 KR1020187028213A KR20187028213A KR102048399B1 KR 102048399 B1 KR102048399 B1 KR 102048399B1 KR 1020187028213 A KR1020187028213 A KR 1020187028213A KR 20187028213 A KR20187028213 A KR 20187028213A KR 102048399 B1 KR102048399 B1 KR 102048399B1
Authority
KR
South Korea
Prior art keywords
dvm
network
power
targets
domain
Prior art date
Application number
KR1020187028213A
Other languages
English (en)
Other versions
KR20180125978A (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 KR20180125978A publication Critical patent/KR20180125978A/ko
Application granted granted Critical
Publication of KR102048399B1 publication Critical patent/KR102048399B1/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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation
    • 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
    • Y02D10/126
    • Y02D10/14

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법들 및 시스템들이 개시된다. 양상은, DVM 개시자로부터 DVM 네트워크로 DVM 동작을 송신하는 것, DVM 네트워크가 복수의 DVM 타겟들에 DVM 동작을 브로드캐스트하는 것, 및 DVM 동작이 DVM 네트워크에 의해 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 하나 또는 그 초과의 하드웨어 최적화들을 수행하는 것을 포함하며, 이러한 하나 또는 그 초과의 하드웨어 최적화들을 수행하는 것은, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인을 턴 온하는 것, 클록 도메인의 주파수를 증가시키는 것, 전력 도메인이 턴 오프되는 것에 기반하여, DVM 타겟에 커플링된 전력 도메인을 턴 온하는 것, 또는 DVM 타겟이 턴 오프되는 것에 기반하여, DVM 타겟에 대한 DVM 동작을 종료하는 것을 포함한다.

Description

메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업
[0001] 본 개시내용의 양상들은 메모리 관리 유닛(MMU; memory management unit)들 및 분산 가상 메모리(DVM; distributed virtual memory) 네트워크들에 대한 하드웨어 관리 전력 붕괴(collapse) 및 클록 웨이크-업(wake-up)들, 그리고 관련된 개념들에 관한 것이다.
[0002] "DVM 네트워크"는, "DVM 개시자"로부터 DVM 네트워크의 모든 "DVM 타겟들"로 "DVM 동작들"을 브로드캐스트하도록 설계된, SoC(system-on-a-chip)의 하드웨어/소프트웨어 아키텍처 내의 브로드캐스트 네트워크이다. DVM 네트워크는, DVM 타겟들로부터의 응답들을 합병하여 단일 통합 응답을 다시 DVM 개시자에 제시하는 것을 책임진다. DVM 동작들은 DVM 타겟에 위치된 TLB(translation lookaside buffer)들에 대한 TLB 무효화 동작들, 이전 DVM 동작들의 완료를 보장하기 위한 동기화 동작들, DVM 타겟에 위치된 명령 캐시들에 대한 명령 캐시 무효화 동작들, 및 다른 관련된 동작들을 포함할 수 있다.
[0003] DVM 네트워크들은, ARM Ltd.로부터의 AMBA(Advanced Microcontroller Bus Architecture) 4 ACE(AXI(Advanced Extensible Interface) Coherency Extensions) 표준에 기반하는 프로토콜을 사용한다. AMBA 4는, SoC 설계들에서 기능 블록들의 연결 및 관리를 위한 오픈 표준의 온-칩(on-chip) 상호연결 규격이다. 표준 규격은 DVM 네트워크들에 대한 "프로토콜"만을 설명하며, DVM 네트워크의 특정 구현을 지시하지는 않는다.
[0004] 다음은 본원에서 개시된 하나 또는 그 초과의 양상들 및/또는 양상들에 관한 단순화된 요약을 제시한다. 따라서, 다음의 요약은 모든 고려된 양상들 및/또는 양상들에 관한 광범위한 개요로 간주되지도 않아야 하며, 다음의 요약은 모든 고려된 양상들 및/또는 양상들에 관한 핵심적인 또는 중요한 엘리먼트들을 식별하거나 또는 임의의 특정 양상 및/또는 양상과 연관된 범위를 제한하는 것으로 여겨지지도 않아야 한다. 그에 따라서, 다음의 요약은 본원에서 개시된 메커니즘들에 관한 하나 또는 그 초과의 양상들 및/또는 양상들에 관한 소정의 개념들을, 아래에서 제시된 상세한 설명에 선행하도록 단순화된 형태로 제시하는 유일한 목적을 갖는다.
[0005] DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리(full-hardware management)를 위한 방법은, DVM 개시자로부터 DVM 네트워크로 DVM 동작을 송신하는 단계, DVM 네트워크가 복수의 DVM 타겟들에 DVM 동작을 브로드캐스트하는 단계, 및 DVM 동작이 DVM 네트워크에 의해 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 하나 또는 그 초과의 하드웨어 기능들을 수행하는 단계를 포함하며, 하나 또는 그 초과의 하드웨어 기능들은, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인을 턴 온(turn on)하는 것, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인의 주파수를 증가시키는 것, 전력 도메인이 턴 오프(turn off)되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 커플링된 전력 도메인을 턴 온하는 것, DVM 타겟이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 대한 DVM 동작을 종료하는 것, 또는 이들의 임의의 결합을 포함한다.
[0006] DVM 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치는, DVM 개시자, 복수의 DVM 타겟들, DVM 개시자 및 복수의 DVM 타겟들에 커플링된 DVM 네트워크를 포함하며, DVM 네트워크는 DVM 개시자로부터 복수의 DVM 타겟들로 DVM 동작들을 브로드캐스트하도록 구성되며, DVM 네트워크에서 DVM 동작이 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인이 턴 온되거나, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인의 주파수가 증가되거나, 전력 도메인이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 커플링된 전력 도메인이 턴 온되거나, DVM 타겟이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 대한 DVM 동작이 종료되거나, 또는 이들의 임의의 결합이 이루어진다.
[0007] DVM 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치는, DVM 네트워크에 DVM 동작을 송신하기 위한 수단, 복수의 DVM 타겟들에 DVM 동작을 브로드캐스트하기 위한 수단, 및 DVM 동작이 DVM 네트워크에 의해 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 하나 또는 그 초과의 하드웨어 기능들을 수행하기 위한 수단을 포함하며, 하나 또는 그 초과의 하드웨어 기능들은, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인을 턴 온하는 것, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인의 주파수를 증가시키는 것, 전력 도메인이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 커플링된 전력 도메인을 턴 온하는 것, DVM 타겟이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 대한 DVM 동작을 종료하는 것, 또는 이들의 임의의 결합을 포함한다.
[0008] 본원에서 개시된 양상들 및 양상들과 연관된 다른 목적들 및 장점들은 첨부된 도면들 및 상세한 설명에 기반하여 당업자들에게 자명할 것이다.
[0009] 본 개시내용의 양상들 및 본 개시내용의 많은 수반되는 장점들의 더욱 완전한 평가는, 본 개시내용의 제한이 아니라 오직 예시를 위해서만 제시되는 첨부된 도면들과 관련하여 고려될 때 다음의 상세한 설명을 참조함으로써, 이들이 더욱 잘 이해됨에 따라 용이하게 획득될 것이며, 이 도면들에서:
[0010] 도 1은 본 개시내용의 적어도 하나의 양상에 따른, 복수의 SMMU(system memory management unit)들을 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록 다이어그램이다.
[0011] 도 2는 본 개시내용의 적어도 하나의 양상에 따른, DVM(distributed virtual memory) 개시자, DVM 네트워크, 및 DVM 타겟들을 포함하는 예시적인 시스템을 예시한다.
[0012] 도 3a는 본 개시내용의 적어도 하나의 양상에 따른, 도 2의 시스템에 의해 수행되는 예시적인 TLBIVA(TLB Invalidate by Virtual Address) 동작을 예시한다.
[0013] 도 3b는 본 개시내용의 적어도 하나의 양상에 따른, DVM 개시자들, DVM 네트워크, 및 DVM 타겟들 각각이 별개의 클록 및 전력 도메인들 상에 있는, 도 2의 시스템을 예시한다.
[0014] 도 4는 본 개시내용의 적어도 하나의 양상에 따른, DVM 네트워크 및 DVM 타겟들에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 예시적인 시스템을 예시한다.
[0015] 도 5는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템에서 DVM 타겟을 전력 붕괴시키기 위한 예시적인 흐름을 예시한다.
[0016] 도 6은 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템에서 DVM 타겟을 파워 온(power on)하기 위한 예시적인 흐름을 예시한다.
[0017] 도 7a는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템에서의 자동 클록 웨이크-업을 위한 예시적인 흐름을 예시한다.
[0018] 도 7b는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템에서 자동 클록 웨이크-업을 위한 예시적인 흐름을 예시한다.
[0019] 도 8은 본 개시내용의 적어도 하나의 양상에 따른, DVM 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 예시적인 흐름을 예시한다.
[0020] DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법들 및 시스템들이 개시된다. 양상은, DVM 개시자로부터 DVM 네트워크로 DVM 동작을 송신하는 것, DVM 네트워크가 복수의 DVM 타겟들에 DVM 동작을 브로드캐스트하는 것, 및 DVM 동작이 DVM 네트워크에 의해 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 하나 또는 그 초과의 하드웨어 기능들을 수행하는 것을 포함하며, 하나 또는 그 초과의 하드웨어 기능들은, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인을 턴 온하는 것, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟 또는 DVM 네트워크에 커플링된 클록 도메인의 주파수를 증가시키는 것, 전력 도메인이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 커플링된 전력 도메인을 턴 온하는 것, 또는 DVM 타겟이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 대한 DVM 동작을 종료하는 것을 포함한다.
[0021] 본 개시내용의 이러한 그리고 다른 양상들은, 본 개시내용의 특정 양상들에 관한 다음의 설명 및 관련된 도면들에서 개시된다. 본 개시내용의 범위를 벗어나지 않으면서, 대안적인 양상들이 창안될 수 있다. 부가적으로, 본 개시내용의 관련 있는 세부사항들을 모호하게 하지 않기 위하여, 본 개시내용의 잘 알려진 엘리먼트들은 상세히 설명되지 않거나 또는 생략될 것이다.
[0022] "예시적인" 및/또는 "예"란 단어들은 "예, 사례, 또는 예시로서의 역할을 하는" 것을 의미하기 위해 본원에서 사용된다. "예시적인" 것으로서 그리고/또는 "예"로서 본원에서 설명된 임의의 양상이 반드시 다른 양상들보다 바람직하거나 또는 유리한 것으로서 해석되어야 하는 것은 아니다. 마찬가지로, "본 개시내용의 양상들"이란 용어는, 본 개시내용의 모든 양상들이 논의된 특징, 장점 또는 동작 모드를 포함할 것을 요구하지 않는다.
[0023] 추가로, 다양한 양상들이 예컨대 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 액션들의 시퀀스들 측면에서 설명된다. 본원에서 설명된 다양한 액션들이 특정 회로들(예컨대, ASIC(application specific integrated circuit)들, SoC(systems-on-a-chip)들)에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 이 둘의 결합에 의해 수행될 수 있다는 것이 인식될 것이다. 부가적으로, 본원에서 설명된 액션들의 이러한 시퀀스는 컴퓨터 명령들의 대응하는 세트를 저장하고 있는 임의의 형태의 컴퓨터-판독가능 저장 매체 내에서 전적으로 구현되는 것으로 간주될 수 있으며, 이 컴퓨터 명령들은, 실행 시, 연관된 프로세서로 하여금, 본원에서 설명된 기능성을 수행하게 할 것이다. 따라서, 본 개시내용의 다양한 양상들은 다수의 상이한 형태들로 구현될 수 있으며, 이러한 형태들 전부는 청구되는 발명의 요지의 범위 내에 있는 것으로 고려되었다. 부가하여, 본원에서 설명된 양상들 각각에 대해, 임의의 그러한 양상들의 대응하는 형태는 예컨대, 설명된 액션을 수행"하도록 구성된 로직"으로서 본원에서 설명될 수 있다.
[0024] 일반적으로, 명시적으로 달리 진술되지 않는 한, 본 개시내용 전체에 걸쳐 사용된 "하도록 구성된 로직"이란 어구는, 하드웨어를 이용하여 적어도 부분적으로 구현되는 양상을 언급하는 것으로 의도되며, 하드웨어에 독립적인 소프트웨어-전용 구현들에 매핑되는 것으로 의도되지 않는다. 또한, 다양한 블록들에서, 구성된 로직 또는 "하도록 구성된 로직"이, 특정 로직 게이트들 또는 엘리먼트들로 제한되는 것이 아니라, 일반적으로 (하드웨어를 통해서든 또는 하드웨어와 소프트웨어의 결합을 통해서든) 본원에서 설명된 기능성을 수행하는 능력을 지칭한다는 것이 인식될 것이다. 따라서, 다양한 블록들에서 예시된, 구성된 로직들 또는 "하도록 구성된 로직"이, "로직"이란 단어를 공유함에도 불구하고, 반드시 로직 게이트들 또는 로직 엘리먼트들로서 구현되는 것은 아니다. 다양한 블록들에서의 로직 사이의 다른 상호작용들 또는 협력은, 더욱 상세히 아래에서 설명된 양상들의 검토로부터 당업자에게 자명해질 것이다.
[0025] 본원에서 개시된 양상들에 따라, DVM 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 제공하는 것은, 임의의 프로세서-기반 디바이스에 제공되거나 또는 통합될 수 있다. 예들은 셋 톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 서버, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, PDA(personal digital assistant), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, DVD(digital video disc) 플레이어, 휴대용 디지털 비디오 플레이어 등(이들로 제한되지 않음)을 포함한다.
[0026] 이 점과 관련하여, 도 1은 본 개시내용의 적어도 하나의 양상에 따른 프로세서-기반 시스템(100)의 예를 예시한다. 이 예에서, 프로세서-기반 시스템(100)은 하나 또는 그 초과의 프로세서들(104)을 각각 포함하는 하나 또는 그 초과의 CPU(central processing unit)들(102)을 포함한다. CPU(들)(102)는 일시적으로 저장된 데이터로의 신속한 액세스를 위해 프로세서(들)(104)에 커플링된 캐시 메모리(106)를 가질 수 있다. CPU(들)(102)는 CPU 메모리 액세스 요청들에 대한 어드레스 변환 서비스들을 제공하기 위한 CPU MMU(memory management unit)(108)를 더 포함한다. CPU(들)(102)는, 메모리 유닛들(114A-114N)을 제공하는 메모리 시스템(112)의 메모리 제어기(118)에 트랜잭션 요청들을 통신할 수 있다.
[0027] CPU(들)(102)는 시스템 버스(110)(DVM 네트워크(미도시)를 포함함)에 커플링되며, 이 시스템 버스(110)는 프로세서-기반 시스템(100)에 포함된 마스터 디바이스와 슬레이브 디바이스를 상호커플링할 수 있다. CPU(들)(102)는 시스템 버스(110)를 통해 어드레스, 제어, 및 데이터 정보를 교환함으로써 이들 다른 디바이스들과 통신한다. 도 1의 예에서, SMMU(116)는 시스템 버스(110)에 커플링된다. 다른 마스터 디바이스 및 슬레이브 디바이스가 SMMU(116)를 통해 시스템 버스(110)에 연결될 수 있다. 도 1에서 예시된 바와 같이, 이들 디바이스들은 예들로서 하나 또는 그 초과의 입력 디바이스들(120), 하나 또는 그 초과의 출력 디바이스들(122), 하나 또는 그 초과의 네트워크 인터페이스 디바이스들(124), 및 하나 또는 그 초과의 디스플레이 제어기들(126)을 포함할 수 있다. 입력 디바이스(들)(120)는 입력 키들, 스위치들, 음성 프로세서들 등(그러나, 이들에 제한되지 않음)을 포함하는 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(122)는 오디오, 비디오, 다른 시각적 표시자들 등(그러나, 이들에 제한되지 않음)을 포함하는 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(124)는, 네트워크(128)로의, 그리고 이 네트워크(128)로부터의 데이터의 교환을 허용하도록 구성된 임의의 디바이스들일 수 있다. 네트워크(128)는 유선 또는 무선 네트워크, 사설 또는 공중 네트워크, LAN(local area network), WLAN(wide local area network), 인터넷 등(그러나, 이들에 제한되지 않음)을 포함하는 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(124)는, 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다.
[0028] CPU(들)(102)는 또한, 하나 또는 그 초과의 디스플레이들(130)에 전송되는 정보를 제어하기 위해 시스템 버스(110)를 통해 디스플레이 제어기(들)(126)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(126)는 하나 또는 그 초과의 비디오 프로세서들(132)을 통해 디스플레이되도록 디스플레이(들)(130)에 정보를 전송하며, 이 하나 또는 그 초과의 비디오 프로세서들(132)은 디스플레이(들)(130)에 적절한 포맷으로 디스플레이되도록 정보를 프로세싱한다. 디스플레이(들)(130)는 CRT(cathode ray tube), LCD(liquid crystal display), 플라즈마 디스플레이 등(그러나, 이들에 제한되지 않음)을 포함하는 임의의 타입의 디스플레이를 포함할 수 있다.
[0029] 시스템 버스(110)는 DVM 네트워크를 포함하며, 이 DVM 네트워크는 DVM 개시자(예컨대, CPU(들)(102))를 하나 또는 그 초과의 DVM 타겟들(예컨대, SMMU(116))에 커플링한다. DVM 네트워크(시스템 버스(110)의 일부)는, "DVM 개시자", 이를테면 CPU(102)로부터 DVM 네트워크의 모든 "DVM 타겟들", 이를테면 SMMU(116)로 "DVM 동작들"을 브로드캐스트하기 위해 SoC의 하드웨어/소프트웨어 아키텍처 내에 포함된다.
[0030] 도 2는 본 개시내용의 적어도 하나의 양상에 따른, DVM 개시자(202), DVM 네트워크(204), 및 DVM 타겟들(206A 내지 206N)을 포함하는 예시적인 시스템(200)을 예시한다. DVM 네트워크(204)는, DVM 타겟들(206A 내지 206N)로부터의 응답들을 합병하여 단일 통합 응답을 다시 DVM 개시자(202)에 제시하는 것을 책임진다. 더욱 구체적으로, DVM 네트워크(204)는 DVM 타겟들(206A 내지 206N)로부터의 응답들 전부에 대해 대기하고, 그들을 단일 응답으로 결합(또는 "합병")하며, 이 단일 응답을 DVM 개시자(202)에 리턴한다. DVM 동작들은 DVM 타겟에 위치된 TLB(translation lookaside buffer)들에 대한 TLB 무효화 동작들, 이전 DVM 동작들의 완료를 보장하기 위한 동기화 동작들, DVM 타겟에 위치된 명령 캐시들에 대한 명령 캐시 무효화 동작들 등을 포함할 수 있다.
[0031] DVM 네트워크들, 이를테면 DVM 네트워크(204)는 ARM Ltd.로부터의 AMBA 4 ACE 표준에 기반하는 프로토콜을 사용할 수 있다. AMBA 4는, SoC 설계들에서 기능 블록들의 연결 및 관리를 위한 오픈 표준의 온-칩 상호연결 규격이다. 표준 규격은 DVM 네트워크들에 대한 "프로토콜"만을 설명하며, DVM 네트워크의 특정 구현을 지시하지는 않는다. 예컨대, 클로킹(clocking) 및 전력 붕괴 그리고 많은 다른 구현 세부사항들은 표준 규격의 범위를 넘어선다.
[0032] 일 양상에서, DVM 타겟들(206A 내지 206N)은 SMMU들일 수 있다. SMMU는 DVM 네트워크, 이를테면 DVM 네트워크(204)로부터 DVM 동작들을 수신하는, TLB를 포함하는 DVM 타겟이다. 예컨대, SMMU가 DVM 네트워크(204)를 통해 TLB 무효화 동작을 수신할 때, SMMU는, 1) TLB 무효화 확인응답을 DVM 네트워크(204)에 리턴하고, 2) TLB에 대한 TLB 무효화(및 임의의 캐싱된 변환들)를 수행한다. 예컨대, SMMU가 DVM 네트워크(204)를 통해 싱크(sync) 동작을 수신할 때, SMMU는, 1) 이전에 포스팅된 TLB 무효화들이 수행된다는 것을 보장하고, 2) 오래된/타겟된 TLB 엔트리들을 사용하고 있었던 클라이언트 요청들(예컨대, 판독/기록/등)이, "싱크 완료"를 리턴하기 전에 전역적으로(globally) 관찰되었다는 것을 보장한다.
[0033] 도 3a는 본 개시내용의 적어도 하나의 양상에 따른, 도 2의 시스템(200)에 의해 수행되는 예시적인 "TLBIVA(TLB Invalidate by Virtual Address)" 동작을 예시한다. DVM 개시자(202)는 DVM 네트워크(204)를 통해 TLBIVA 동작(블록(310)으로서 표현됨)을 발행한다. DVM 네트워크(204)는 TLBIVA 동작(블록(312)으로서 표현됨)을 모든 DVM 타겟들, 즉, DVM 타겟들(206A 내지 206N)에 브로드캐스트한다. 각각의 DVM 타겟(206A 내지 206N)은 TLBIVA 동작의 수신을 확인응답하고, 확인응답 응답(블록(314)으로서 표현됨)을 DVM 네트워크(204)에 제공한다. DVM 네트워크(204)는, DVM 타겟들로부터의 모든 확인응답 응답들을 합병하여 통합 수신 응답(블록(316)으로서 표현됨)을 다시 DVM 개시자(202)에 제시한다.
[0034] 전력 최적화 및/또는 성능 이유들로, 때때로, 별개의 클록 도메인 및 별개의 전력 도메인 상에 SMMU들/DVM 타겟들을 갖는 것이 바람직하다. 도 3b는 본 개시내용의 적어도 하나의 양상에 따른, DVM 개시자들(202), DVM 네트워크(204), 및 DVM 타겟들(206A 내지 206N) 각각이 별개의 클록 및 전력 도메인들 상에 있는, 도 2의 시스템(200)을 예시한다. 도 3b의 예에서, DVM 개시자(202)는 자신만의 클록 및 전력 도메인(322) 상에 있고, DVM 네트워크(204)는 자신만의 클록 및 전력 도메인(324) 상에 있고, DVM 타겟들(206A 및 206B)은 그들만의 클록 및 전력 도메인(326) 상에 있으며, 그리고 DVM 타겟(206N)은 자신만의 클록 및 전력 도메인(328) 상에 있다. DVM 타겟들(206A 내지 206N) 각각은 별개의 클록 및 전력 도메인 상에 있을 수 있거나, 또는 DVM 타겟들(206A 내지 206N) 전부가 동일한 클록 및 전력 도메인 상에 있을 수 있거나, 또는 DVM 타겟들(206A 내지 206N)의 상이한 그룹들이 상이한 클록 및 전력 도메인들 상에 있을 수 있다(도 3b에서 예시됨).
[0035] DVM 네트워크(204) 내의 다수의 클록 도메인들 및 다수의 전력 도메인들의 도입은, 클록 도메인들 및 전력 도메인들이 소프트웨어 관리/제어되면 소프트웨어에 부담을 줄 수 있다. 그러한 경우들에서, TLB 무효화가 CPU(이를테면, 도 1의 CPU(들)(102))로부터 발행될 때, 그리고/또는 DVM 타겟들(206A 내지 206N) 중의 DVM 타겟이 전력 붕괴(즉, 파워 오프(power off))될 때 DVM 개시자(202) 및 DVM 네트워크(204)는 소프트웨어 관리되어야 한다.
[0036] DVM 네트워크(204)와 DVM 타겟들(206A 내지 206N) 전부가 단일 클록 및 전력 도메인 상에 있게 하는 것은 문제를 단순화한다. 그러나, 이는, 예컨대, DVM 네트워크(204) 및 DVM 타겟들(206A 내지 206N)이 단일 고속/저속 클록 상에서 동작하도록 강제되면, 바람직하지 않은 레이턴시 성능 프로파일들로 이어질 수 있다. 또한, 그것은 예컨대, DVM 네트워크(204) 및 DVM 타겟들(206A 내지 206N)이 "항상 켜진" 상태이면, 바람직하지 않은 전력 성능 프로파일들로 이어질 수 있다.
[0037] 그에 따라서, 본 개시내용은 DVM 네트워크, 이를테면 DVM 네트워크(204), 그리고 DVM 타겟들, 이를테면 DVM 타겟들(206A 내지 206N)에 관한 전력 도메인 및 클록 도메인의 완전 하드웨어 관리를 위한 메커니즘을 제시한다. 일 양상에서, 개시된 하드웨어 메커니즘은 1) DVM 네트워크(204)에서의 DVM 동작들의 존재에 기반하여 관련 클록들을 턴 온하고(그리고 그런 다음, 동작이 수행될 때, 관련 클록들은 다시 턴 오프됨), 2) DVM 네트워크(204)에서의 DVM 동작의 존재에 기반하여 관련 클록들을 가속시키고(그리고 그런 다음, 동작이 수행될 때, 관련 클록들은 다시 감속됨), 그리고/또는 3) 적절하게, 전력 붕괴된 DVM 타겟들(206A 내지 206N)에 브로드캐스트되는 DVM 동작들을 자동적으로 종료할 수 있다. 선택적으로, 전력 붕괴되는 DVM 타겟(206A 내지 206N)은 DVM 네트워크(204)에서의 DVM 동작들의 존재에 기반하여 "파워-업(power-up)"될 수 있다.
[0038] 위의 포인트 1 및 포인트 2는 (고성능 DVM 네트워크 응답에 기인하여) 낮은 레이턴시를 보장한다. 본 개시내용의 영향은, DVM 타겟(206A 내지 206N)이 파워 오프되기 전에 DVM 네트워크(204)를 소프트웨어 관리해야 한다는 부담으로부터 소프트웨어를 릴리즈하는 것, 그리고 DVM 개시자(202)가 DVM 동작(예컨대, TLB 무효화)을 발행하기 전에 클록들을 소프트웨어 관리해야 한다는 부담으로부터 소프트웨어를 릴리즈하는 것을 포함한다.
[0039] 도 4는 본 개시내용의 적어도 하나의 양상에 따른, DVM 네트워크 및 DVM 타겟들에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 예시적인 시스템(400)을 예시한다. 시스템(400)은 CPU 서브시스템(402)을 포함하며, 이 CPU 서브시스템(402)은 DVM 개시자로서의 역할을 하는, 도 1의 CPU(102)에 대응할 수 있다. CPU 서브시스템/DVM 개시자(402)는, CPU 서브시스템/DVM 개시자(402)에 있는 DVM 마스터 포트(412)와 도 1에서 시스템 버스(110)의 일부일 수 있는 DVM 네트워크(404)에 있는 DVM 슬레이브 포트(414)를 통해, DVM 네트워크(404)에 커맨드들/DVM 동작들을 발행한다. DVM 네트워크(404)는 커맨드들/DVM 동작들을 DVM 타겟들, 이를테면 DVM 타겟(406)(예컨대, SMMU)에 브로드캐스트하며, 이 DVM 타겟(406)은 도 1의 SMMU(116)에 대응할 수 있다.
[0040] DVM 인터셉터(428)는, 모든 하류 타겟 DVM 클록들이 턴 온되지 않는 한, 어떤 DVM 동작들도 DVM 타겟들을 통과하지 않는다는 것을 보장한다. DVM 인터셉터(428)는, 관련 클록들이 턴 온될 때까지, 임의의 DVM 동작들을 정지시키기 위한 로직을 포함한다. DVM 인터셉터(428)는 클록 관리자(410)와 통신하며, 이 클록 관리자(410)는 턴 오프되는 DVM 동작들에 관련된 임의의 클록들을 턴 온하는 것을 책임진다.
[0041] DVM 타겟, 이를테면 DVM 타겟(406)이 전력 붕괴될 때, DVM 연결해제 모듈(426)은, DVM 타겟(406)의 적절한 셧다운을 보장하기 위해 전력 붕괴 관리자(420)와 통신한다. 전력 붕괴 관리자(420)는 DVM 타겟(406)의 적절한 셧다운/전력 붕괴를 보장하기 위해 DVM 타겟(406)과 통신한다. 전력 붕괴 관리자(420)는, DVM 연결해제 모듈(426)을 통해, DVM 네트워크(404)가 적절한 응답을 DVM 개시자, 즉, CPU 서브시스템/DVM 개시자(402)에 제공한다는 것을 보장하기 위해 DVM 네트워크(404)와 통신한다. 전력 붕괴 관리자(420)는 또한, 전력 붕괴 인터페이스(440)에 대한 레지스터들로부터 "전력 오프 요청들"을 판독하고 이 레지스터들에 "전력 오프 상태"를 기록한다.
[0042] 클록 브리지(424)는 2개의 별개의 클록 도메인들 사이의 통신(이 경우, DVM 통신)을 허용하는 상호연결 디바이스이다. 예컨대, 여기서, DVM 네트워크(404)가 하나의 클록 도메인 상에 있는 반면에, DVM 타겟(406)은 별개의 클록 도메인 상에 있으며, 그에 따라 2개의 클록 도메인들을 브리징하기 위한 "클록 브리지"가 요구된다.
[0043] CPU 서브시스템/DVM 개시자(402)는 클록 선택기들(432A 및 432B)에 동적 클록 분할(DCD; dynamic clock divide) 웨이크업 커맨드를 발행할 수 있다. 클록 선택기들(432A 및 432B)은, 클록 분할기들(434A 및 434B)이 우회되게 함으로써, DVM 활동이 있을 때 가장 빠른 클록을 선택한다. 더욱 구체적으로, DCD 웨이크업 커맨드가 "1"일 때, 클록 선택기들(432A 및 432B)은, 클록 분할기들(434A 및 434B)에 커플링된 멀티플렉서들로 하여금, 비분할 클록 신호를 선택하여 이 비분할 클록 신호를 클록 관리자(410)에 전송하게 한다. 이는 대응하는 클록 회로소자로 하여금 클록을 가속시키게 한다.
[0044] 클록 관리자(410)는 또한, 도 4에서 SoftwareClockONRequest(들)로서 표현된, 주어진 클록을 온(on)으로 유지하기 위한 득표(vote)들을 수신할 수 있다. 클록을 온(on)으로 유지하기 위한 적어도 하나의 득표가 있는 한, 그 클록은 계속 온(on)으로 있을 것이다.
[0045] 도 5는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템(400)에서 DVM 타겟, 이를테면 DVM 타겟(406)(예컨대, SMMU)을 전력 붕괴시키기(즉, 파워 오프하기) 위한 예시적인 흐름을 예시한다.
[0046] 502에서, 전력 붕괴 관리자(420)는 현재 실행되고 있는 소프트웨어로부터, DVM 타겟(406)을 전력 붕괴시키라는 요청을 수신한다. 소프트웨어는, 도 4의 전력 붕괴 인터페이스(440)에 대한 레지스터들에 "전력 붕괴 요청"을 기록함으로써, 이 요청을 어서트(assert)한다. 대안적으로, 소프트웨어가 DVM 타겟(406)의 파워-오프를 트리거링하는 대신에, 도 4의 CPU 서브시스템/DVM 개시자(402) 또는 DVM 네트워크(404)로부터의 신호가 파워-오프 시퀀스를 트리거링할 수 있다. 이 신호는, DVM 타겟(406)이 켜지게 하는 어떤 다른 활동도 없을 때, DVM 네트워크(404)의 어떤 계류중인 DVM 요청들도 전력-붕괴 이벤트를 트리거링하도록 허용되지 않는다는 것을 표시할 것이다. 전력 붕괴 관리자(420)는 이 신호를 수신하고, 언제 DVM 타겟(406)을 파워 다운할지를 결정하기 위한 수단으로서 이 신호를 사용할 것이다. 보유(retention) 회로들(또는 이차 저장 유닛)을 통해 주 전력이 "오프(off)"일 때에도, DVM 타겟(406)의 TLB 콘텐츠들은 "보유"될 것이다.
[0047] 504에서, 전력 붕괴 관리자(420)는, DVM 네트워크(404)로부터 DVM 타겟(406)을 안전하게 연결해제하기 위해 DVM 네트워크(404)에 DVMDisconnectRequest 메시지를 발행한다. 506에서, 일단 DVM 네트워크(404)가 DVMDisconnectRequest 메시지를 수신하면, DVM 네트워크(404)가 임의의 새로운 DVM 동작들을 안전하게 종료하여서, 새로운 DVM 동작들은 DVM 타겟(406)에 도달하지 않는다. DVM 동작들을 종료하는 것은, 임의의 새로운 DVM 동작이 확인응답/완료된다는 것, 그리고 DVM 개시자(예컨대, CPU 서브시스템(402))가, 종료된 트랜잭션이 "정상적으로"(즉, 오류 없이) 확인응답/완료되었다는 것을 표시하는 유효한 비-오류 응답을 수신하는 것을 보장한다.
[0048] 508에서, DVM 네트워크(404)는, 모든 이전의 계류중인 DVM 동작들이 DVM 타겟(406)에 의해 확인응답되거나 또는 완료된다는 것을 보장한다. 510에서, DVM 네트워크(404)는, 일단 모든 계류중인 DVM 동작들이 DVM 타겟(406)에 의해 확인응답되거나 또는 완료되면, DVMDisconnectReady 메시지를 리턴한다.
[0049] 512에서, 전력 붕괴 관리자(420)는 DVM 네트워크(404)로부터 DVMDisconnectReady 메시지를 수신한다. 514에서, 전력 붕괴 관리자(420)는 DVM 타겟(406)에 SMMUPowerCollapseRequest 메시지를 발행한다.
[0050] 516에서, 일단 DVM 타겟(406)이 전력 붕괴 요청을 수신하면, DVM 타겟(406)은 임의의 새로운 클라이언트 요청들(예컨대, CPU 서브시스템/DVM 개시자(402)로부터의 DVM 동작들)을 차단한다. 518에서, 임의의 계류중인 활동이 완료(예컨대, 모든 미해결(outstanding) 클라이언트 요청들이 완료되고, 모든 미해결 변환 테이블 워크(walk)들이 완료)될 때까지, DVM 타겟(406)은 대기한다. 520에서, 일단 DVM 타겟(406)에서의 모든 계류중인 활동이 완료되면, DVM 타겟(406)은 SMMUPowerCollapseReady 메시지를 리턴한다.
[0051] 522에서, 전력 붕괴 관리자(420)는 전력 제어기(408)에 PowerONControl=0 메시지를 발행한다. 일단 전력 제어기(408)가 PowerONControl=0 메시지를 수신하면, 이 전력 제어기(408)는 DVM 타겟(406)으로부터 전력을 제거하고(이로써, DVM 타겟(406)을 전력 붕괴시킴), 연관된 컴포넌트들로부터 전력을 제거한다.
[0052] 524에서, 전력 붕괴 관리자(420)는, DVM 타겟(406)으로부터 전력이 제거되었다는 것을 표시하는 전력 상태 신호를 리턴한다. 이 상태는 전력 붕괴 인터페이스(440)에 대한 레지스터들을 통해 소프트웨어에 의해 판독가능하다.
[0053] 도 6은 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템(400)에서 DVM 타겟, 이를테면 DVM 타겟(406)(예컨대, SMMU)을 파워 온하기 위한 예시적인 흐름을 예시한다.
[0054] 602에서, 전력 붕괴 관리자(420)는 현재 실행되고 있는 소프트웨어로부터, DVM 타겟(406)을 파워 온하라는 요청을 수신한다. 소프트웨어는, 전력 붕괴 인터페이스(440)에 대한 레지스터들에 "전력 붕괴 요청"을 디-어서트(de-assert)함으로써, 이 요청을 어서트한다. 대안적으로, 소프트웨어가 DVM 타겟(406)의 파워-온을 트리거링하는 대신에, DVM 네트워크(404)로부터의 핸드쉐이크가 파워-온 시퀀스를 트리거링할 수 있다. 이 핸드쉐이크는, DVM 동작이 DVM 타겟(406)을 타겟으로 하고 있으면, 수행될 것이다. 전력 붕괴 관리자(420)는 DVM 네트워크(404)로부터 이 파워-온 요청을 수신하고, DVM 타겟(406)이 파워 온될 때 핸드쉐이크를 완료할 것이다.
[0055] 604에서, 전력 붕괴 관리자(420)는 전력 제어기(408)에 PowerONControl=1 메시지를 발행한다. 606에서, DVM 타겟(406)이 완전히 파워 온될 때까지, 전력 붕괴 관리자(420)는 대기한다. 더욱 구체적으로, 전력 붕괴 관리자(420)는 전력 제어기(408)로부터의 파워-온 상태 표시자에 대해 대기한다. 일단 전력 제어기(408)가 PowerONControl=1 메시지를 수신하면, DVM 타겟(406)은 파워 온될 것이다. 일단 DVM 타겟(406)에 대한 전력이 복구되면, 전력 제어기(408)는 DVM 타겟(406)에 리셋 메시지를 발행하고, 또한, TLB가 "무효"이고 어떤 유효한 정보도 포함하지 않는다는 것을 보장하기 위해, DVM 타겟(406)에 TLB 리셋 메시지를 발행한다. TLB가 유효한 정보를 포함할 것이기 때문에, 602를 참조하여 위에서 설명된 대안에 대해, 이 동작이 수행되지 않을 수 있다는 것에 주목하라.
[0056] 608에서, 전력 붕괴 관리자(420)는, DVM 타겟(406)에 대한 SMMUPowerCollapseRequest 메시지를 디-어서트함으로써, DVM 타겟(406)에 대한 파워-온 요청을 어서트한다.
[0057] 610에서, 일단 DVM 타겟(406)이 파워-온 요청을 수신하면, DVM 타겟(406)은 임의의 클라이언트 요청들(예컨대, CPU 서브시스템/DVM 개시자(402)로부터의 DVM 동작들)을 차단해제한다. 612에서, DVM 타겟(406)은, 파워-온 요청에 확인응답하기 위해 그리고 자신이 후속 전력 붕괴에 대해 준비하고 있다는 것을 표시하기 위해, SMMUPowerCollapseReady=1 메시지를 리턴한다.
[0058] 614에서, 전력 붕괴 관리자(420)는, DVM 타겟(406)을 DVM 네트워크(404)에 재연결하기 위해, DVM 네트워크(404)에 대한 DVMDisconnectRequest 메시지를 디-어서트함으로써, DVM 네트워크(404)에 대한 파워-온 요청을 어서트한다.
[0059] 616에서, 일단 DVM 네트워크(404)가 전력 붕괴 관리자(420)로부터 재연결 요청(즉, DVMDisconnectRequest=0 메시지)을 수신하면, DVM 네트워크(404)는 임의의 새로운 DVM 동작들을 종료하는 것을 정지하고, 그들을 (정상적으로) DVM 타겟(406)에 포워딩한다. 618에서, DVM 네트워크(404)는 파워-온 요청의 확인응답을 전력 붕괴 관리자(420)에 리턴한다.
[0060] 620에서, 전력 붕괴 관리자(420)는 DVM 네트워크(404)로부터의 확인응답에 대해 대기한다. 622에서, 전력 붕괴 관리자(420)는, 전력이 DVM 타겟(406)에 인가되었다는 것을 표시하는 전력 상태 신호를 리턴한다. 이 상태는 전력 붕괴 인터페이스(440)에 대한 레지스터들을 통해 소프트웨어에 의해 판독가능하다.
[0061] 도 7a는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템(400)에서의 자동 클록 웨이크-업을 위한 예시적인 흐름을 예시한다. 702에서, DVM 개시자(402)는 DVM 네트워크(404) 상에서 DVM 동작을 브로드캐스트한다. 본 개시내용은, DVM 타겟, 이를테면 DVM 타겟(406)이 DVM 동작들을 수신하는 것을 배제하기 위한 소프트웨어 프로그램된 프로비전(provision)들을 포함한다. 그에 따라서, 모든 DVM 타겟들이 "브로드캐스트된" DVM 동작을 수신할 것은 아니다.
[0062] 704에서, DVM 개시자(402)는, 계류중인 DVM 동작이 있다는 "조기(early)" 표시로서 DCDWakeUpRequest 신호를 어서트한다. DVM 동작이 DVM 타겟(406)에 도달하기 훨씬 전에 DCDWakeUpRequest 신호가 어서트되기 때문에, 이 DCDWakeUpRequest 신호가 계류중인 DVM 요청의 "조기" 표시라는 것에 주목하라. 706에서, 클록 선택기들(432A 및/또는 432B)은 DCDWakeUpRequest 신호를 수신하며, 그리고 더 빠른 클록 주파수 소스로 스위칭하고 그리고/또는 클록 관리자(410)에 전송하기 위해 비-분할 클록 신호를 선택함으로써 응답한다. 클록 관리자(410)는 SMMU/DVM 타겟에 대한 클록 소스로서 이러한 더 빠른/비-분할 클록들을 사용한다. "더 빠른" 비-분할 클록을 사용함으로써, DVM 네트워크(404) 및 DVM 타겟들은, DVM 네트워크(404)를 통해 브로드캐스트되는 DVM 동작들에 더 빨리 응답할 수 있다.
[0063] 708에서, 클록 관리자(410), DVM 네트워크(404), 및 DVM 타겟들(406)은 더 빠른 클록들을 사용한다. 710에서, 클록 관리자(410), DVM 네트워크(404), 및 DVM 타겟들(406)은 702에서 브로드캐스트된 DVM 동작을 수신 및 수행한다.
[0064] 712에서, DVM 개시자(402)는 DVM 네트워크(404)로부터의 응답들에 대해 대기한다. 714에서, DVM 개시자(402)는 임의의 새로운 DVM 동작들이 있는지 여부를 결정한다. 임의의 새로운 DVM 동작들이 있으면, 흐름은 702로 리턴한다. 임의의 새로운 DVM 동작들이 없으면, 흐름은 716로 진행한다. 716에서, DVM 개시자(402)는 DCDWakeUpRequest을 디-어서트한다. DCDWakeUpRequest 신호가 디-어서트될 때, DVM-관련 클록들은 절전을 위해 다시 분할 클록들로 스위칭될 수 있다.
[0065] 도 7b는 본 개시내용의 적어도 하나의 양상에 따른, 도 4의 시스템(400)에서의 자동 클록 웨이크-업을 위한 예시적인 흐름을 예시한다. 도 7a의 702에서와 같이, 722에서, DVM 동작이 도 4의 DVM 네트워크(404) 상에서 브로드캐스트된다.
[0066] 도 7a의 704에서와 같이, 724에서, CPU 서브시스템/DVM 개시자(402)는, 계류중인 DVM 동작이 있다는 "조기" 표시로서 DCDWakeUpRequest 신호를 어서트한다. DVM 동작이 DVM 타겟(406)에 도달하기 훨씬 전에 DCDWakeUpRequest 신호가 어서트되기 때문에, 이 DCDWakeUpRequest 신호가 계류중인 DVM 요청의 "조기" 표시라는 것에 주목하라. 클록 선택기들(432A 및/또는 432B)은 DCDWakeUpRequest 신호를 수신하며, 그리고 클록 관리자(410)에 전송하기 위해 비-분할 클록 신호를 선택함으로써 응답한다. 클록 관리자(410)는 SMMU/DVM 타겟에 대한 클록 소스로서 이러한 비-분할 클록들을 사용한다. "더 빠른" 비-분할 클록을 사용함으로써, DVM 네트워크(404) 및 DVM 타겟들은, DVM 네트워크(404)를 통해 브로드캐스트되는 DVM 동작들에 더 빨리 응답할 수 있다.
[0067] 726에서, 다른 DVM 동작이 DVM 네트워크(404)를 통해 DVM 타겟들의 전부(또는 일부)에 브로드캐스트된다. 본 개시내용은, DVM 타겟, 이를테면 DVM 타겟(406)이 DVM 동작들을 수신하는 것을 배제하기 위한 소프트웨어 프로그램된 프로비전들을 포함한다. 그에 따라서, 모든 DVM 타겟들이 "브로드캐스트된" DVM 동작을 수신할 것은 아니다.
[0068] 728에서, DVM 인터셉터(428)는 DVM 네트워크(404)의 DVM 마스터 포트(412) 내부에서 DVM 동작을 "인터셉트"한다. 730에서, DVM 타겟들의 클록들이 온(ON)("토글링"으로 지칭됨)이 될 때까지, DVM 인터셉터(428)는 DVM 동작을 차단한다. 732에서, DVM 인터셉터(428)는 클록 관리자(410)에 DVMSMMUClockONRequest을 발행한다.
[0069] 734에서, 클록 관리자(410)는, 클록 게이팅 엘리먼트들이 디스에이블링되고, DVM 네트워크 컴포넌트들 및 DVM 타겟들에 관련된 클록들이 온(ON)이라는 것을 보장할 것이다. 736에서, 일단 DVM 네트워크 컴포넌트들 및 DVM 타겟들에 관련된 클록들이 온(ON)이면, 클록 관리자(410)는 DVMSMMUClockONReady 응답을 DVM 인터셉터(428)에 리턴한다.
[0070] 738에서, 클록 관리자(410)가 DVMSMMUClockONReady 응답을 리턴할 때까지, DVM 인터셉터(428)는 대기한다. 740에서, DVM 인터셉터(428)는 DVM 동작을 "차단해제"하고, (DVM 타겟(406)이 전력 붕괴되는 과정에 있지 않다는 것을 가정하여) DVM 동작이 DVM 타겟(406)으로 진행될 수 있게 한다. DVM 타겟(406)이 DVM 동작(또는 임의의 다른 동작)을 능동적으로 프로세싱하고 있는 한, DVM 타겟은 "SMMUIsActive" 신호를 어서트한다. DVM 응답들 전부가 리턴되었고, DCDWakeUpRequest 신호가 디-어서트될 때, DVM-관련 클록들은 절전을 위해 다시 분할 클록들로 스위칭될 수 있다.
[0071] 742에서, 모든 DVM 응답들이 리턴되었고, DVM 네트워크(404)를 빠져나갔을 때, DVM 인터셉터(428)는 궁극적으로, 요청 신호인 DVMClockONRequest를 디어서트함으로써, 클록들이 턴 온될 것을 요청하는 것을 정지한다. 이는, 예컨대, DVM 인터셉터(428)에서 계류중인 어떤 DVM 요청들도 없을 때, 그리고 마지막 DVM 요청이 DVM 인터셉터(428)에서 계류중이었던 때부터 일정 시간량(예컨대, 고정된 수의 클록 사이클들)이 흘렀을 때 수행될 수 있다. 이번에는, 744에서, 클록 관리자(410)는, 어떤 다른 에이전트도 클록들을 사용하지 않을 것이라면, 그러한 클록들을 셧-오프("토글링 없음"으로 지칭됨)하기로 결정할 수 있다.
[0072] 도 8은 본 개시내용의 적어도 하나의 양상에 따른, DVM 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 예시적인 흐름을 예시한다. 도 8에서 예시된 흐름은 도 4의 시스템(400)에 의해 수행될 수 있다.
[0073] 802에서, DVM 개시자, 이를테면 CPU 서브시스템/DVM 개시자(402)는 DVM 동작을 DVM 네트워크, 이를테면 DVM 네트워크(404)에 송신한다.
[0074] 804에서, DVM 네트워크, 이를테면 DVM 네트워크(404)는 DVM 동작을 복수의 DVM 타겟들, 이를테면 DVM 타겟(406)에 브로드캐스트한다.
[0075] 806에서, 계류중인 DVM 동작이 DVM 네트워크에 의해 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 하나 또는 그 초과의 하드웨어 기능들이 수행된다.
[0076] 예컨대, 812에서, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟(예컨대, 클록 도메인(들)(326/328)) 또는 DVM 네트워크(예컨대, 클록 도메인(324))에 커플링된 클록 도메인이 턴 온될 수 있다.
[0077] 대안적으로 또는 부가적으로, 814에서, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟(예컨대, 클록 도메인(들)(326/328)) 또는 DVM 네트워크(예컨대, 클록 도메인(324))에 커플링된 클록 도메인의 주파수가 증가될 수 있다.
[0078] 대안적으로 또는 부가적으로, 816에서, 전력 도메인이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 커플링된 전력 도메인이 턴 온된다.
[0079] 대안적으로 또는 부가적으로, 818에서, DVM 타겟이 턴 오프되는 것에 기반하여, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟에 대한 DVM 동작이 종료된다. 더욱 구체적으로, 복수의 DVM 타겟들 중 DVM 동작의 타겟인 DVM 타겟이 턴 오프되면, DVM 동작이 종료된다.
[0080] 본원에서 개시된 바와 같이, 하드웨어-관리 전력 붕괴의 다수의 이득들이 존재한다. 예컨대, 전력 관리 소프트웨어는, DVM 네트워크들을 사용하고 있을 수 있는 소프트웨어와 동기화/조정할 필요 없이, DVM 타겟들을 자유롭게 전력 붕괴시킬 수 있다. 전력이 없는 DVM 타겟을 타겟으로 할 때에도, 비행 중인 DVM 동작들은 계속해서 "성공적으로" 완료된다. 추가로, 일부 양상들에서, DVM 동작의 발행은 선택적으로, 소프트웨어로부터 전력을 관리하라는 명시적인 명령 없이, DVM 타겟들을 파워-온할 것이다.
[0081] 또한, 본원에서 개시된 바와 같이, 하드웨어-관리 클로킹의 다수의 이득들이 존재한다. 예컨대, TLB 무효화 명령의 발행은, 소프트웨어로부터 클록들을 관리하라는 명시적인 명령 없이, DVM 네트워크 및 DVM 타겟들 상의 연관된 클록들을 턴-온할 것이다. 추가로, (예컨대) TLB 무효화 명령의 발행은, 소프트웨어로부터 클록들을 관리하라는 명시적인 명령 없이, DVM 네트워크 및 DVM 타겟들 상의 연관된 클록들을 가속시킬 것이다. 결과는, 소프트웨어 관리에 의존하지 않는 더 빠른 DVM 네트워크이다.
[0082] 본 개시내용의 다른 양상들은, DVM 타겟이 DVM 네트워크에 참여하는 것을 선택적으로 그리고 프로그램에 따라 배제하는 프로비전들을 포함한다. 상기 제어들의 프로그램가능성은 "특권" 또는 "보안" 소프트웨어로부터 판독가능한/기록가능한 소프트웨어이다. 다른 양상들은, PLL(phase lock loop)들이 디스에이블링될 때 클록 소스를 "항상 현재의" 고속 클록으로 자동적으로 스위칭하는 프로비전/설비를 포함한다.
[0083] 당업자들은, 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중의 임의의 것을 사용하여 표현될 수 있다는 것을 인식할 것이다. 예컨대, 위의 상세한 설명 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 광학 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[0084] 추가로, 당업자들은, 본원에서 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그들의 기능성 측면에서 위에서 설명되었다. 그러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정 애플리케이션, 및 전체 시스템에 부과된 설계 제약들에 따라 좌우된다. 당업자들은 설명된 기능성을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 그러한 구현 결정들은 본 개시내용의 범위를 벗어나게 하는 것으로서 해석되지 않아야 한다.
[0085] 본원에서 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 결합, 예컨대, DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
[0086] 본원에서 개시된 양상들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 기술분야에서 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 일체형일 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말(예컨대, UE)에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트들로서 상주할 수 있다.
[0087] 하나 또는 그 초과의 예시적인 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현되면, 기능들은 컴퓨터-판독가능 매체 상의 하나 또는 그 초과의 명령 또는 코드로서 저장되거나 또는 이를 통해 송신될 수 있다. 컴퓨터-판독가능 매체는, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 둘 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 반송(carry)하거나 또는 저장하기 위해 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터-판독가능 매체로 적절히 불린다. 예컨대, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선(twisted pair), DSL(digital subscriber line), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 본 명세서에서 사용된 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(CD; compact disc), 레이저 디스크(disc), 광학 디스크(disc), 디지털 다기능 디스크(DVD; digital versatile disc), 플로피 디스크(disk) 및 블루-레이 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 대개 자기적으로 데이터를 재생하지만, 디스크(disc)들은 레이저를 이용하여 광학적으로 데이터를 재생한다. 상기한 것들의 결합들이 또한, 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
[0088] 전술한 개시내용이 본 개시내용의 예시적인 양상들을 나타내지만, 첨부된 청구항들에 의해 정의된 본 개시내용의 범위를 벗어나지 않으면서, 다양한 변화들 및 수정들이 본원에서 이루어질 수 있다는 것이 주목되어야 한다. 본원에서 설명된 본 개시내용의 양상들에 따른 방법 청구항들의 기능들, 단계들 및/또는 액션들은 임의의 특정 순서로 수행될 필요가 없다. 더욱이, 본 개시내용의 엘리먼트들이 단수로 설명되거나 또는 청구될 수 있지만, 단수로의 제한이 명시적으로 진술되지 않는 한, 복수형이 고려된다.

Claims (30)

  1. DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리(full-hardware management)를 위한 방법으로서,
    디바이스의 프로세서-기반 시스템의 DVM 개시자로부터 상기 DVM 네트워크로 DVM 동작을 송신하는 단계;
    상기 DVM 네트워크에 의해 상기 디바이스의 프로세서-기반 시스템에 물리적으로 커플링된 복수의 DVM 타겟들 각각에 동일한 상기 DVM 동작을 브로드캐스트하는 단계 ― 상기 복수의 DVM 타겟들은 복수의 메모리 관리 유닛들을 포함하고, 상기 DVM 네트워크는 상기 DVM 개시자 및 상기 복수의 DVM 타겟들 사이의 상기 디바이스의 프로세서-기반 시스템의 시스템 버스에 포함되며, 상기 DVM 네트워크는 상기 복수의 DVM 타겟들로부터 수신된 상기 DVM 동작에 대한 응답들을 상기 DVM 개시자에 대한 단일 응답으로 결합함 ―; 및
    상기 DVM 동작이 상기 DVM 네트워크에 의해 상기 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 상기 복수의 DVM 타겟들 및 상기 DVM 네트워크에 커플링된 상기 프로세서-기반 시스템의 전력 붕괴(collapse) 관리자에 의해, 전력 도메인이 턴 오프되는 것에 기반하여 상기 복수의 DVM 타겟들 중 상기 DVM 동작의 타겟인 DVM 타겟에 커플링된 상기 전력 도메인을 턴 온하는 단계를 포함하며,
    상기 전력 붕괴 관리자는 상기 DVM 네트워크를 통해 상기 복수의 DVM 타겟들로 파워 온 요청들을 송신하지 않는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  2. 제1 항에 있어서,
    상기 복수의 DVM 타겟들 중 상기 DVM 동작의 타겟인 상기 DVM 타겟에 커플링된 상기 전력 도메인을 턴 온하는 것은,
    상기 DVM 네트워크에 커플링된 상기 전력 붕괴(collapse) 관리자에 의해 상기 DVM 동작의 타겟인 상기 DVM 타겟에 커플링된 상기 전력 도메인에 파워 온 요청을 발행하는 것;
    상기 전력 붕괴 관리자에 의해 상기 DVM 동작의 타겟인 상기 DVM 타겟에 파워 온 요청을 발행하는 것;
    상기 DVM 동작의 타겟인 상기 DVM 타겟에 의해 상기 전력 붕괴 관리자로부터 수신된 상기 파워 온 요청에 기반하여, 상기 DVM 네트워크로부터의 DVM 동작들을 차단해제하는 것;
    상기 DVM 동작의 타겟인 상기 DVM 타겟에 의해 상기 DVM 네트워크에 재연결하는 것; 및
    상기 DVM 네트워크에 의해 상기 DVM 동작의 타겟인 상기 DVM 타겟에 상기 DVM 동작을 송신하는 것
    을 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  3. 제2 항에 있어서,
    상기 DVM 동작의 타겟인 상기 DVM 타겟에 상기 파워 온 요청을 발행하는 것은, 상기 전력 붕괴 관리자에 의해 상기 DVM 타겟에 커플링된 상기 전력 도메인으로부터, 상기 DVM 타겟에 커플링된 상기 전력 도메인이 턴 온된다는 것을 표시하는 응답을 수신하는 것에 기반하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  4. 제2 항에 있어서,
    상기 DVM 동작의 타겟인 상기 DVM 타겟을 파워 온하라는 요청을 수신하는 단계 ―상기 요청은, 상기 DVM 개시자에 의해 실행되는 소프트웨어로부터 수신됨―; 및
    상기 DVM 타겟에 커플링된 상기 전력 도메인이 턴 온된다는 것을 표시하는 전력 상태 신호를 상기 소프트웨어에 전송하는 단계
    를 더 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  5. 제1 항에 있어서,
    상기 DVM 개시자는 프로세서를 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  6. 제1 항에 있어서,
    상기 DVM 동작은 TLB(translation lookaside buffer) 무효화 동작, 동기화 동작, 또는 이들의 임의의 조합을 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  7. 제1 항에 있어서,
    상기 DVM 개시자는 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의 클록 도메인 및 별개의 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  8. 제1 항에 있어서,
    상기 복수의 DVM 타겟들은, 상기 DVM 개시자의 클록 도메인 및 전력 도메인 그리고 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의, 클록 도메인들 및 전력 도메인들에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  9. 제1 항에 있어서,
    상기 복수의 DVM 타겟들 각각은 상기 복수의 DVM 타겟들 중 나머지 DVM 타겟들과는 별개의 클록 도메인 및 별개의 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  10. 제1 항에 있어서,
    상기 복수의 DVM 타겟들은 단일 클록 도메인 및 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 방법.
  11. DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치로서,
    디바이스의 프로세서-기반 시스템의 DVM 개시자;
    상기 디바이스의 프로세서-기반 시스템에 물리적으로 커플링된 복수의 DVM 타겟들; 및
    상기 DVM 개시자 및 상기 복수의 DVM 타겟들에 물리적으로 커플링된 DVM 네트워크를 포함하며,
    상기 복수의 DVM 타겟들은 복수의 메모리 관리 유닛들을 포함하고, 상기 DVM 네트워크는 상기 DVM 개시자 및 상기 복수의 DVM 타겟들 사이의 상기 디바이스의 프로세서-기반 시스템의 시스템 버스에 포함되며, 상기 DVM 네트워크는 상기 DVM 개시자로부터 상기 복수의 DVM 타겟들 각각에 동일한 DVM 동작을 브로드캐스트하도록 구성되며, 상기 DVM 네트워크는 상기 복수의 DVM 타겟들로부터 수신된 상기 DVM 동작에 대한 응답들을 상기 DVM 개시자에 대한 단일 응답으로 결합하고,
    상기 DVM 네트워크의 상기 DVM 동작이 상기 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 상기 복수의 DVM 타겟들 및 상기 DVM 네트워크에 커플링된 상기 프로세서-기반 시스템의 전력 붕괴(collapse) 관리자는 전력 도메인이 턴 오프되는 것에 기반하여 상기 복수의 DVM 타겟들 중 상기 DVM 동작의 타겟인 DVM 타겟에 커플링된 상기 전력 도메인을 턴 온하도록 구성되며, 상기 전력 붕괴 관리자는 상기 DVM 네트워크를 통해 상기 복수의 DVM 타겟들로 파워 온 요청들을 송신하지 않는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  12. 제11 항에 있어서,
    하나 또는 그 초과의 메모리 관리 유닛들 각각은 TLB(translation lookaside buffer)를 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  13. 제11 항에 있어서,
    상기 DVM 개시자는 프로세서를 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  14. 제11 항에 있어서,
    상기 DVM 동작들은 TLB 무효화 동작들, 동기화 동작, 또는 이들의 임의의 조합을 포함하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  15. 제11 항에 있어서,
    상기 DVM 개시자는 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의 클록 도메인 및 별개의 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  16. 제11 항에 있어서,
    상기 복수의 DVM 타겟들은, 상기 DVM 개시자의 클록 도메인 및 전력 도메인 그리고 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의, 클록 도메인들 및 전력 도메인들에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  17. 제11 항에 있어서,
    상기 복수의 DVM 타겟들 각각은 상기 복수의 DVM 타겟들 중 나머지 DVM 타겟들과는 별개의 클록 도메인 및 별개의 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  18. 제11 항에 있어서,
    상기 복수의 DVM 타겟들은 단일 클록 도메인 및 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  19. 제11 항에 있어서,
    상기 DVM 네트워크는 상기 단일 응답을 상기 DVM 개시자에 리포팅하는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  20. DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치로서,
    디바이스의 프로세서-기반 시스템에 커플링된 복수의 DVM 타겟들에 통신적으로 커플링된 상기 디바이스의 프로세서-기반 시스템의 브로드캐스트를 위한 수단; 및
    상기 브로드캐스트를 위한 수단으로 DVM 동작을 송신하기 위한 상기 디바이스의 프로세서-기반 시스템의 송신하기 위한 수단을 포함하며,
    상기 복수의 DVM 타겟들은 복수의 메모리 관리 유닛들을 포함하고, 상기 브로드캐스트를 위한 수단은 상기 송신하기 위한 수단 및 상기 복수의 DVM 타겟들 사이의 상기 디바이스의 프로세서-기반 시스템의 시스템 버스에 포함되며, 상기 브로드캐스트를 위한 수단은 상기 복수의 DVM 타겟 각각으로 동일한 상기 DVM 동작을 브로드캐스트하도록 구성되며,
    상기 브로드캐스트를 위한 수단은 상기 복수의 DVM 타겟들로부터 수신된 상기 DVM 동작에 대한 응답들을 상기 송신하기 위한 수단에 대한 단일 응답으로 결합하며,
    상기 DVM 동작이 상기 브로드캐스트를 위한 수단에 의해 상기 복수의 DVM 타겟들에 브로드캐스트되는 것에 기반하여, 상기 복수의 DVM 타겟들 및 상기 브로드캐스트를 위한 수단에 커플링된 상기 프로세서-기반 시스템의 전력 붕괴(collapse) 관리자는 전력 도메인이 턴 오프되는 것에 기반하여 상기 복수의 DVM 타겟들 중 상기 DVM 동작의 타겟인 DVM 타겟에 커플링된 상기 전력 도메인을 턴 온하며,
    상기 전력 붕괴 관리자는 상기 DVM 네트워크를 통해 상기 복수의 DVM 타겟들로 파워 온 요청들을 송신하지 않는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  21. 제20 항에 있어서,
    상기 송신하기 위한 수단은 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의 클록 도메인 및 별개의 전력 도메인에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  22. 제20 항에 있어서,
    상기 복수의 DVM 타겟들은, 상기 송신하기 위한 수단의 클록 도메인 및 전력 도메인 그리고 상기 DVM 네트워크의 클록 도메인 및 전력 도메인과는 별개의, 클록 도메인들 및 전력 도메인들에 커플링되는,
    DVM(distributed virtual memory) 네트워크에 관련된 전력 도메인 및 클록 도메인의 완전-하드웨어 관리를 위한 장치.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020187028213A 2016-03-31 2017-03-13 메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업 KR102048399B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/086,054 2016-03-31
US15/086,054 US10386904B2 (en) 2016-03-31 2016-03-31 Hardware managed power collapse and clock wake-up for memory management units and distributed virtual memory networks
PCT/US2017/022158 WO2017172342A1 (en) 2016-03-31 2017-03-13 Hardware managed power collapse and clock wake-up for memory management units and distributed virtual memory networks

Publications (2)

Publication Number Publication Date
KR20180125978A KR20180125978A (ko) 2018-11-26
KR102048399B1 true KR102048399B1 (ko) 2020-01-09

Family

ID=58448615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187028213A KR102048399B1 (ko) 2016-03-31 2017-03-13 메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업

Country Status (9)

Country Link
US (2) US10386904B2 (ko)
EP (1) EP3436895B1 (ko)
JP (1) JP6640374B2 (ko)
KR (1) KR102048399B1 (ko)
CN (1) CN108780350B (ko)
BR (1) BR112018070131A2 (ko)
CA (1) CA3015929A1 (ko)
TW (1) TWI698746B (ko)
WO (1) WO2017172342A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910799B2 (en) * 2016-04-04 2018-03-06 Qualcomm Incorporated Interconnect distributed virtual memory (DVM) message preemptive responding
US10719452B2 (en) * 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
US10983851B1 (en) * 2019-12-04 2021-04-20 Cirrus Logic, Inc. Protecting against memory corruption and system freeze during power state transitions in a multi-power domain system
WO2022227093A1 (zh) * 2021-04-30 2022-11-03 华为技术有限公司 虚拟化系统以及虚拟化系统中内存一致性维护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016502206A (ja) 2012-12-18 2016-01-21 シノプシス タイワン カンパニーリミテッド 低電力設計のための階層的電源マップ

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3696901B2 (ja) * 1994-07-19 2005-09-21 キヤノン株式会社 負荷分散方法
US5884100A (en) 1996-06-06 1999-03-16 Sun Microsystems, Inc. Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
FR2808904A1 (fr) * 2000-05-12 2001-11-16 Ibm Systeme d'acces a des memoires redondantes
US6990594B2 (en) * 2001-05-02 2006-01-24 Portalplayer, Inc. Dynamic power management of devices in computer system by selecting clock generator output based on a current state and programmable policies
US7725742B2 (en) * 2006-08-15 2010-05-25 Mitac International Corp. Remote monitor module for power initialization of computer system
US7853928B2 (en) * 2007-04-19 2010-12-14 International Business Machines Corporation Creating a physical trace from a virtual trace
US8775839B2 (en) 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems
US8732700B2 (en) * 2008-12-18 2014-05-20 Vmware, Inc. Virtualization system with a remote proxy
US8244978B2 (en) 2010-02-17 2012-08-14 Advanced Micro Devices, Inc. IOMMU architected TLB support
EP2652623B1 (en) * 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US9177615B2 (en) * 2011-07-06 2015-11-03 Qualcomm Technologies, Inc. Power disconnect unit for use in data transport topology of network on chip design having asynchronous clock domain adapter sender and receiver each at a separate power domain
US9916257B2 (en) 2011-07-26 2018-03-13 Intel Corporation Method and apparatus for TLB shoot-down in a heterogeneous computing system supporting shared virtual memory
US9298621B2 (en) 2011-11-04 2016-03-29 Hewlett Packard Enterprise Development Lp Managing chip multi-processors through virtual domains
US9378150B2 (en) 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US9330026B2 (en) * 2013-03-05 2016-05-03 Qualcomm Incorporated Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW)
US9015400B2 (en) * 2013-03-05 2015-04-21 Qualcomm Incorporated Methods and systems for reducing the amount of time and computing resources that are required to perform a hardware table walk (HWTW)
US9411745B2 (en) * 2013-10-04 2016-08-09 Qualcomm Incorporated Multi-core heterogeneous system translation lookaside buffer coherency
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US9747239B2 (en) * 2014-08-25 2017-08-29 Apple Inc. Transaction filter for on-chip communications network
GB2549239A (en) * 2014-11-13 2017-10-18 Advanced Risc Mach Ltd Context sensitive barriers in data processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016502206A (ja) 2012-12-18 2016-01-21 シノプシス タイワン カンパニーリミテッド 低電力設計のための階層的電源マップ

Also Published As

Publication number Publication date
TW201737093A (zh) 2017-10-16
JP2019517052A (ja) 2019-06-20
US10386904B2 (en) 2019-08-20
US20190324512A1 (en) 2019-10-24
US20170285705A1 (en) 2017-10-05
BR112018070131A2 (pt) 2019-02-05
EP3436895C0 (en) 2023-08-02
EP3436895A1 (en) 2019-02-06
KR20180125978A (ko) 2018-11-26
JP6640374B2 (ja) 2020-02-05
WO2017172342A1 (en) 2017-10-05
CN108780350B (zh) 2021-08-06
CA3015929A1 (en) 2017-10-05
CN108780350A (zh) 2018-11-09
EP3436895B1 (en) 2023-08-02
TWI698746B (zh) 2020-07-11

Similar Documents

Publication Publication Date Title
KR102048399B1 (ko) 메모리 관리 유닛들 및 분산 가상 메모리 네트워크들에 대한 하드웨어 관리 전력 붕괴 및 클록 웨이크-업
US10025711B2 (en) Hybrid write-through/write-back cache policy managers, and related systems and methods
US10712809B2 (en) Link power savings with state retention
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
EP2805245B1 (en) Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods
US20110153924A1 (en) Core snoop handling during performance state and power state transitions in a distributed caching agent
JP5537533B2 (ja) ハードウェアのダイナミックなキャッシュパワー管理
JP2009505306A (ja) 電力削減のための動的メモリサイジング
WO2009014931A2 (en) Technique for preserving cached information during a low power mode
US7315953B2 (en) Apparatus and related method of coordinating north bridge and south bridge for processing bus master requests of peripheral devices for controlling a central processing unit to operate in a power-saving state
TW201243572A (en) Method and system for managing sleep states of interrupt controllers in a portable computing device
WO2017014914A1 (en) Address translation and data pre-fetch in a cache memory system
US20170010655A1 (en) Power Management of Cache Duplicate Tags
CN105765547A (zh) 用于执行总线锁定和转译后备缓冲器失效的方法和装置
US20040250035A1 (en) Method and apparatus for affecting computer system
JPH0962576A (ja) 情報処理装置及びその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant