KR102039796B1 - 주변기기 서브시스템에 대한 개별화된 전력 제어를 제공하기 위한 방법 및 장치 - Google Patents

주변기기 서브시스템에 대한 개별화된 전력 제어를 제공하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102039796B1
KR102039796B1 KR1020170148054A KR20170148054A KR102039796B1 KR 102039796 B1 KR102039796 B1 KR 102039796B1 KR 1020170148054 A KR1020170148054 A KR 1020170148054A KR 20170148054 A KR20170148054 A KR 20170148054A KR 102039796 B1 KR102039796 B1 KR 102039796B1
Authority
KR
South Korea
Prior art keywords
subsystems
plurality
subsystem
host
sleep
Prior art date
Application number
KR1020170148054A
Other languages
English (en)
Other versions
KR20180052539A (ko
Inventor
사우라브 가르그
카란 상히
블라디슬라브 페트코브
리차드 솔로트케
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201662420143P priority Critical
Priority to US62/420,143 priority
Priority to US15/647,063 priority
Priority to US15/647,063 priority patent/US20180129269A1/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20180052539A publication Critical patent/KR20180052539A/ko
Application granted granted Critical
Publication of KR102039796B1 publication Critical patent/KR102039796B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 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; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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 power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/14Interconnection, or transfer of information or other signals between, memories, peripherals or central processing units
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/15Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals
    • Y02D10/151Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals the peripheral being a bus
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/15Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals
    • Y02D10/152Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals the peripheral being a memory control unit [MCU]
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/17Power management
    • Y02D10/171Selective power distribution
    • 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 THIR OWN ENERGY USE
    • Y02D50/00Techniques for reducing energy consumption in wire-line communication networks
    • Y02D50/20Techniques for reducing energy consumption in wire-line communication networks using subset functionality
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • Y02D70/10Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT]
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • Y02D70/10Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT]
    • Y02D70/14Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in Institute of Electrical and Electronics Engineers [IEEE] networks
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • Y02D70/10Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT]
    • Y02D70/14Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in Institute of Electrical and Electronics Engineers [IEEE] networks
    • Y02D70/142Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in Institute of Electrical and Electronics Engineers [IEEE] networks in Wireless Local Area Networks [WLAN]
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • Y02D70/10Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT]
    • Y02D70/14Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in Institute of Electrical and Electronics Engineers [IEEE] networks
    • Y02D70/144Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in Institute of Electrical and Electronics Engineers [IEEE] networks in Bluetooth and Wireless Personal Area Networks [WPAN]
    • 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 THIR OWN ENERGY USE
    • Y02D70/00Techniques for reducing energy consumption in wireless communication networks
    • Y02D70/10Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT]
    • Y02D70/16Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in other wireless communication networks
    • Y02D70/164Techniques for reducing energy consumption in wireless communication networks according to the Radio Access Technology [RAT] in other wireless communication networks in Satellite Navigation receivers

Abstract

독립적인 도메인들 내의 서브시스템 리소스들(예컨대, 클록들, 전력, 및 리셋)의 격리를 위한 방법들 및 장치가 제공된다. 일 실시예에서, 시스템의 각각의 서브시스템은 다른 서브시스템 동작에 독립적으로 동작하는 하나 이상의 전용 전력 및 클록 도메인들을 갖는다. 예를 들어, 셀룰러, WLAN 및 PAN 접속성을 갖는 예시적인 모바일 디바이스에서, 각각의 그러한 서브시스템은 공통 메모리 맵핑된 버스 기능부에 접속되지만, 독립적으로 동작할 수 있다. 개시된 아키텍처는 유리하게도 모바일 디바이스들의 전력 소비 제한들을 만족시키고, 동시에 그러한 모바일 디바이스들 상의 고대역폭 응용들에 대한 메모리 맵핑된 접속성의 이익들을 제공한다.

Description

주변기기 서브시스템에 대한 개별화된 전력 제어를 제공하기 위한 방법 및 장치{METHODS AND APPARATUS FOR PROVIDING INDIVIDUALIZED POWER CONTROL FOR PERIPHERAL SUB-SYSTEMS}

우선권

본 출원은, 공동 소유되며 동시 계류중인, 2017년 7월 11일자로 출원되고 발명의 명칭이 "Apparatus and Methods for Independent Power and Clock Domains of a Memory mapped Architecture"인 미국 특허 출원 제15/647,063호에 대한 우선권의 이익을 주장하는데, 이는 이어서, 공동 소유되며 동시 계류중인, 2016년 11월 10일자로 출원되고 동일한 발명의 명칭인 미국 가특허 출원 제62/420,143호에 대한 우선권의 이익을 주장하고, 전술한 출원 각각은 전체적으로 본 명세서에 참고로 포함된다.

관련 출원

본 출원은, 공동 소유되며 동시 계류중인, 2017년 7월 11일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Providing Access to Peripheral Sub-System Registers"인 미국 특허 출원 제15/647,088호; 및 공동 소유되며 동시 계류중인, 2017년 7월 11일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Providing Peripheral Sub-System Stability"인 미국 특허 출원 제15/647,103호에 관련되고, 전술한 출원 각각은 전체적으로 본 명세서에 참고로 포함된다.

본 출원은 또한, 공동 소유되며 동시 계류중인, 2015년 10월 8일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Running and Booting an Inter-Processor Communication Link Between Independently Operable Processors"인 미국 특허 출원 제14/879,024호; 2015년 10월 8일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Managing Power with an Inter-Processor Communication Link Between Independently Operable Processors"인 미국 특허 출원 제14/879,027호; 및 2015년 10월 8일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Recovering Errors with an Inter-Processor Communication Link Between Independently Operable Processors"인 미국 특허 출원 제14/879,030호에 관련되고, 전술한 출원 각각은 전체적으로 본 명세서에 참고로 포함된다.

저작권

본 특허 문헌의 개시 내용의 일부는 저작권 보호의 대상이 되는 자료를 포함한다. 저작권 소유자는 특허청 특허 파일들 또는 기록들에 나타나는 것과 같은, 누군가에 의한 특허 문헌 또는 특허 개시 내용의 팩시밀리 복제에 이의가 없지만, 그 이외에는 그게 무엇이든 모든 저작권 권한들을 보유한다.

기술분야

본 발명은 대체로 전자기기 디바이스뿐만 아니라 그의 버스 아키텍처의 분야에 관한 것이다. 보다 구체적으로, 하나의 예시적인 태양에서, 본 발명은 메모리 맵핑된 아키텍처에 대한 전력, 클록, 및/또는 다른 리소스 도메인들의 독립적인 동작을 위한 방법 및 장치에 관한 것이다.

PCIe(Peripheral Component Interconnect Express)는 컴퓨터 및 소비자 전자기기 제조사들에 의한 매우 높은 채택률들을 갖는 고속 직렬 컴퓨터 확장 버스 기술이다. 이러한 성과에 대한 하나의 이유는, PCIe가 디바이스들과 기능부들 사이의 입력/출력(I/O)에 대한 공유된 메모리 맵에의 직접 액세스를 가능하게 한다는 것이다. 메모리 맵핑된 액세스는, 예컨대 버스 중재, 및 중앙집중식 메모리 관리를 감소시킴으로써 트랜잭션 오버헤드를 크게 감소시킨다. 실제로, PCIe는 컴퓨터 시스템 베이스 칩세트들에 의해 제공되는 능력들 이외에 추가적인 입력/출력(I/O) 능력을 추가하기 위한 사실상의 표준이 되었다. PCIe에 의해 기본적으로 지원되는 직접 메모리 맵핑된 버스 능력들에 더하여, 하드웨어 및/또는 소프트웨어 구동기들의 광범위한 에코시스템 및 지속적인 개발은 오랜 시간 동안 검증된 강건한 상품 구성요소들을 레버리징하는 중요한 기회들을 제공한다.

간략히 말하면, PCIe는 1993년에 개발된 구형 PCI 확장 버스 기술에 기초하였다. 그때, PCI의 목표는 컴퓨터 버스에 하드웨어 유닛들을 추가하는 표준 방법을 제공하는 것이었다. 각각의 하드웨어 유닛은, 각각의 하드웨어 유닛을 공유된 병렬 버스의 고유 디바이스로서 식별하기 위한 메커니즘을 사용하여, 공유된 병렬 버스에 접속되었다. 각각의 디바이스는 추가로 최대 8개의 기능부들로 논리적으로 세분되었다. 따라서, 원래 PCI 버스는, 여러 기능부들을 각각 갖는 여러 디바이스들을 지원할 수 있었다. PCIe의 출현으로, 물리적으로 공유된 병렬 버스는 피어투피어(peer-to-peer) 고속 직렬 버스로 대체되었다. 공유된 병렬 버스를 제거함으로써, PCIe는 임의의 2개의 엔드포인트(endpoint)들 사이의 전이중(full-duplex) 통신에 대한 지원을 가능하게 하였고, 이때 다수의 엔드포인트들에 걸친 동시 액세스에 대한 고유한 제한은 없다.

PCIe는 개인 컴퓨팅 응용들에 잘 적응되지만, 그것은 모바일 공간 고려사항들, 예컨대 전력 소비, 트랜잭션 효율, 및/또는 다른 이동성 고려사항들에 대해 설계되지 않았다. 예를 들어, 개인용 컴퓨터들은 전형적으로 "벽면 전원(wall power)"에 플러그가 꽂혀 있으므로 전력 소비 또는 보존이 전형적으로 문제가 되지 않는다. 대조적으로, 모바일 디바이스들은 배터리 전원으로 동작하고, 과도한 전력 소비를 줄여 배터리 수명을 최대화해야 한다.

유사하게, 개인용 컴퓨터들은 일반적으로 필요에 따라 외부 네트워크들(예컨대, 보다 광역의 인터넷)에 드물게 액세스할 수 있는 단일 프로세서 토폴로지를 지원한다. 대조적으로, 모바일 디바이스들은 사용자 태스크들을 서비스하기 위한 애플리케이션 프로세서를 가질 수 있지만, 또한 무선 LAN들 또는 셀룰러 네트워크들의 것들과 같은 네트워크 관리 엔티티들에 대해 자율적으로 검색하고/하거나, 그에 등록하고/하거나, 그와 데이터를 트랜잭션하는 다수의 추가적인 모뎀 프로세서들을 가질 수 있다.

PCIe의 한계로 모바일 공간에 대한 그의 적용가능성이 이력적으로 제한되었지만, 무선 기술의 계속 증가하는 대역폭 능력 및 보다 큰 모바일 디바이스에 대한 소비자 취향의 변화로 제조사들은 PCIe를 실현가능한 버스 솔루션으로 다시 고려하게 되었다. 특히, PCIe 메모리 맵핑된 버스 능력들이 점점 더 인기를 얻고 있다. 이러한 목적을 위해, 모바일 응용들에 대한 고속 직접 메모리 맵핑된 버스 능력들을 추가로 최적화하기 위해 개선된 방법들 및 장치가 필요하다.

본 발명은, 특히 메모리 맵핑된 버스 아키텍처 내의 전력, 클록, 및/또는 다른 리소스 도메인들의 독립적인 동작을 위한 시스템들, 방법들, 및 장치를 제공함으로써 전술한 필요성들을 만족시킨다.

제1 태양에서, 호스트 프로세서 장치를 포함하는 전자 디바이스 내의 복수의 서브시스템들에 대한 개별화된 전력 제어를 제공하기 위한 방법이 개시된다. 일 실시예에서, 본 방법은 복수의 서브시스템들에 대한 메모리 맵핑된 인터페이스를 확립하는 단계 - 복수의 서브시스템들 각각은 대응하는 전력 관리 상태 기계에 의해 특성화됨 -; 및 복수의 서브시스템들 중 하나의 서브시스템에 대해, 대응하는 전력 관리 상태 기계로 하여금 복수의 서브시스템들 중 다른 서브시스템들로부터 독립적으로 슬립 상태로부터 활성 상태로 전이하게 하는 단계를 포함한다.

일 변형예에서, 복수의 서브시스템들 중 하나의 서브시스템의 슬립 상태로부터 활성 상태로의 전이는 복수의 서브시스템들 중 다른 서브시스템들을 슬립 상태로부터 활성 상태로 전이시키지 않고서 발생할 수 있다.

다른 변형예에서, 본 방법은 복수의 서브시스템들 중 하나의 서브시스템을 복수의 서브시스템들 중 다른 서브시스템들에 독립적으로 다양한 전력-보존 모드들로 전이시키는 단계를 추가로 포함한다.

또 다른 변형예에서, 본 방법은 호스트 프로세서 장치를 통해 복수의 서브시스템들에 대한 독립적인 전력 제어를 발휘하는 단계를 추가로 포함한다.

또 다른 변형예에서, 복수의 서브시스템들에 대한 독립적인 전력 제어를 발휘하는 단계는 복수의 서브시스템들 중 제1 서브시스템을 활성 상태로 유지하는 단계를 추가로 포함한다.

또 다른 변형예에서, 복수의 서브시스템들에 대한 독립적인 전력 제어를 발휘하는 단계는, 복수의 서브시스템들 중 제1 서브시스템을 활성 상태로 유지하는 동안, 복수의 서브시스템들 중 제2 서브시스템을 슬립 상태로 전이시키는 단계를 추가로 포함한다.

또 다른 변형예에서, 본 방법은 복수의 서브시스템들 중 다른 서브시스템들로부터 독립적으로 복수의 서브시스템들 중 하나의 서브시스템에 대한 전력 시퀀스를 개시하는 단계를 추가로 포함한다.

제2 태양에서, 복수의 서브시스템들과 연관된 엔드포인트 장치 내의 복수의 서브시스템들에 대응하는 복수의 서브시스템 레지스터들에 대한 액세스를 제공하기 위한 방법이 개시된다. 일 실시예에서, 본 방법은, 엔드포인트 장치에 대한 메모리 맵핑된 인터페이스를 확립하는 단계; 및 대응하는 적어도 하나의 서브시스템을 웨이크하지 않고서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하는 단계를 포함한다.

일 변형예에서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하는 단계는, 복수의 서브시스템 레지스터들 중 하나의 서브시스템 레지스터와 연관된 레지스터를 판독하는 단계를 추가로 포함한다.

다른 변형예에서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하는 단계는, 복수의 서브시스템 레지스터들 중 하나의 서브시스템 레지스터와 연관된 레지스터에 기입하는 단계를 추가로 포함한다.

또 다른 변형예에서, 액세스하는 단계는, PCIe 기능부 내의 메모리 위치에 액세스하는 명령어를 실행시키는 단계; PCIe 통신 링크를 웨이크하는 단계; 및 메모리 맵핑된 인터페이스 내의 메모리 공간에 액세스하는 단계를 추가로 포함하고, 메모리 공간은 PCIe 통신 링크와 연관된다.

또 다른 변형예에서, 본 방법은 메모리 공간에 액세스하는 단계에 후속하여 대응하는 적어도 하나의 서브시스템을 웨이크하는 단계를 추가로 포함한다.

또 다른 변형예에서, 대응하는 적어도 하나의 서브시스템은 셀룰러 서브시스템을 포함하고, 본 방법은 셀룰러 서브시스템을 웨이크하지 않고서 엔드포인트 장치 내의 셀룰러 기능부에 대해 질의하는 단계를 추가로 포함한다.

또 다른 변형예에서, 본 방법은, 복수의 서브시스템들을 웨이크하지 않고서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 각각에 액세스하는 단계를 추가로 포함한다.

제3 태양에서, 컴퓨터화된 장치의 복수의 서브시스템들의 개별화된 부팅을 제공하기 위한 방법이 개시된다. 일 실시예에서, 본 방법은, 장치와 연관된 엔드포인트에 대한 메모리 맵핑된 인터페이스를 확립하는 단계 - 엔드포인트는 복수의 서브시스템들 각각에 동작가능하게 결합되어 있음 -; 복수의 서브시스템들을 열거하는 단계; 및 열거된 복수의 서브시스템들 중 적어도 2개의 서브시스템들을 순차적으로 부팅하는 단계를 포함한다.

일 변형예에서, 본 방법은 부팅 프로세스로부터 열거된 복수의 서브시스템들 중 하나의 서브시스템을 프루닝(pruning)하는 단계를 추가로 포함한다.

다른 변형예에서, 열거된 복수의 서브시스템들 중 프루닝된 하나의 서브시스템은 개인 지역 네트워크(PAN) 서브시스템을 포함하고, 본 방법은 프루닝 이전에 PAN 서브시스템 능력을 디스에이블하는 단계를 추가로 포함한다.

또 다른 변형예에서, 본 방법은 복수의 서브시스템들 중 임의의 서브시스템에 대한 동작 상태에 상관없이 엔드포인트에 급전하는 단계를 추가로 포함하는데, 엔드포인트에 급전하는 단계는 열거하는 단계를 가능하게 한다.

또 다른 변형예에서, 본 방법은 복수의 서브시스템들 중 하나의 서브시스템에 대한 구성 공간을 초기화하는 단계를 추가로 포함한다.

또 다른 변형예에서, 본 방법은 복수의 서브시스템들 중 하나의 서브시스템에 대한 구성 공간에 액세스하는 단계를 추가로 포함하는데, 액세스하는 단계는 복수의 서브시스템들 중 하나의 서브시스템의 전력 상태에 상관없이 발생한다.

또 다른 변형예에서, 본 방법은 열거된 복수의 서브시스템들 중 적어도 2개의 서브시스템들에 대한 중요도 순서를 결정하는 단계를 추가로 포함하고, 열거된 복수의 서브시스템들 중 적어도 2개의 서브시스템들을 순차적으로 부팅하는 단계는 결정된 중요도 순서에 따라 발생한다.

제4 태양에서, 서브시스템의 개별화된 리셋 및 복구를 제공하기 위한 방법이 개시된다. 일 실시예에서, 본 방법은 엔드포인트에 대한 메모리 맵핑된 인터페이스를 확립하는 단계 - 메모리 맵핑된 인터페이스는 복수의 서브시스템들에 대응하는 복수의 메모리 영역들을 포함함 -; 복수의 서브시스템들 중 제1 서브시스템 내의 에러를 검출하는 것에 응답하여, 대응하는 제1 메모리 영역 내의 리셋 주소에 기입하는 단계; 기입하는 단계에 응답하여 제1 서브시스템을 부팅하는 단계; 및 검출된 에러에 대응하는 진단 정보를 복구하는 단계를 포함한다.

일 변형예에서, 본 방법은 제1 서브시스템 내의 에러를 검출하는 것에 응답하여 루핑(looping) 명령어를 실행시키는 단계를 추가로 포함하는데, 루핑 명령어는 진단 정보를 복구하는 단계를 가능하게 한다.

다른 변형예에서, 본 방법은 에러를 검출하는 것에 응답하여 복수의 메모리 영역들 중 일 메모리 영역의 스냅샷을 수집하는 단계를 추가로 포함한다.

또 다른 변형예에서, 엔드포인트는 복수의 기능부들을 포함하는데, 기능부들 각각은 복수의 서브시스템들 중 주어진 하나의 서브시스템에 대응하고, 본 방법은 복수의 기능부들 중 일 기능부에 기능부 레벨 리셋을 발행하는 단계를 추가로 포함한다.

또 다른 변형예에서, 복수의 기능부들 중 일 기능부에 기능부 레벨 리셋을 발행하는 단계는, 복수의 기능부들 중 일 기능부와 연관된 대응하는 서브시스템을 리셋하는 단계를 추가로 포함한다.

또 다른 변형예에서, 제1 서브시스템을 부팅하는 단계는, 복수의 서브시스템들 중 다른 서브시스템들을 부팅할 필요없이 발생한다.

제5 태양에서, 컴퓨터화된 장치가 개시된다. 일 실시예에서, 컴퓨터화된 장치는 루트 컴플렉스(root complex)를 포함하는 호스트 프로세싱 장치; 엔드포인트 장치를 포함하는 주변기기 장치 - 엔드포인트 장치는 복수의 기능부들을 포함하고, 복수의 기능부들 각각은 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있음 -; 및 루트 컴플렉스와 엔드포인트 장치 사이의 통신 링크를 포함한다.

일 변형예에서, 복수의 서브시스템들 각각은 복수의 서브시스템들 중 다른 서브시스템들과는 별도의 전력 관리를 포함한다.

다른 변형예에서, 호스트 프로세싱 장치는 복수의 서브시스템들과는 별도의 호스트 전력 관리를 포함하고, 통신 링크는 호스트 프로세싱 장치 및 복수의 서브시스템들과는 별도의 링크 전력 관리를 포함한다.

또 다른 변형예에서, 복수의 서브시스템들 중 하나의 서브시스템은 무선 로컬 영역 네트워크(WLAN) 서브시스템을 포함하고, WLAN 서브시스템은 복수의 서브시스템들 중 다른 서브시스템들의 웨이크업(wake-up)을 필요로 하지 않고서 인근 비콘(beacon)들에 대해 스캔할 수 있다.

또 다른 변형예에서, WLAN 서브시스템은 통신 링크 또는 호스트 프로세싱 장치의 웨이크업을 필요로 하지 않고서 인근 비콘들에 대해 스캔할 수 있다.

또 다른 변형예에서, 복수의 서브시스템들 중 하나의 서브시스템은 셀룰러 서브시스템을 포함하고, 셀룰러 서브시스템은 서브시스템들 중 다른 서브시스템들, 호스트 프로세싱 장치, 및 통신 링크 중 하나 이상의 전원을 켜지 않고서 모바일 관리 업데이트 동안 셀룰러 네트워크와 접속하도록 구성된다.

제2 실시예에서, 컴퓨터화된 장치는 루트 컴플렉스를 포함하는 호스트 프로세싱 장치; 엔드포인트 장치를 포함하는 주변기기 장치 - 엔드포인트 장치는 메모리 맵핑된 인터페이스 내에 배치된 복수의 기능부들을 포함하고, 복수의 기능부들 각각은 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있음 -; 및 루트 컴플렉스와 엔드포인트 장치 사이의 통신 링크를 포함한다. 호스트 프로세싱 장치는 추가로, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템들 중 하나의 서브시스템과 연관된 서브시스템 레지스터에 액세스하도록 - 액세스를 서비스하기 위해 하나의 서브시스템이 동작 상태로 급전될 필요없이 - 구성된다.

일 변형예에서, 복수의 서브시스템들 각각은 메모리 맵핑된 인터페이스 내의 대응하는 액세스 공간을 포함하는데, 여기서 복수의 서브시스템들 각각은 메모리 맵핑된 인터페이스 내의 대응하는 액세스 공간에만 액세스할 수 있다.

다른 변형예에서, 루트 컴플렉스는 복수의 제어 레지스터들을 추가로 포함하고, 호스트 프로세싱 장치는 추가로, 통신 링크가 보다 저전력 상태에 있는 동안 복수의 제어 레지스터들의 적어도 일부분을 판독하거나 그에 기입하도록 구성된다.

또 다른 변형예에서, 호스트 프로세싱 장치는 추가로, 통신 링크가 보다 저전력 상태에 있을 때: 통신 링크 기능부 내의 메모리 위치에 액세스하는 명령어를 실행시키도록; 통신 링크를 보다 저전력 상태로부터 웨이크하도록; 그리고 메모리 맵핑된 인터페이스 내의 메모리 공간에 액세스하도록 구성되고, 메모리 공간은 통신 링크와 연관된다.

또 다른 변형예에서, 호스트 프로세싱 장치는 추가로, 서브시스템 레지스터의 액세스에 후속하여 하나의 서브시스템을 웨이크하도록 구성된다.

또 다른 변형예에서, 하나의 서브시스템은 셀룰러 서브시스템을 포함하고, 호스트 프로세싱 장치는 추가로, 셀룰러 서브시스템을 웨이크하지 않고서 엔드포인트 장치 내의 셀룰러 기능부에 대해 질의하도록 구성된다.

제3 실시예에서, 컴퓨터화된 장치는 루트 컴플렉스를 포함하는 호스트 프로세싱 장치; 엔드포인트 장치를 포함하는 주변기기 장치 - 엔드포인트 장치는 복수의 기능부들을 포함하고, 복수의 기능부들 각각은 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있음 -; 및 루트 컴플렉스와 엔드포인트 장치 사이의 통신 링크를 포함한다. 호스트 프로세싱 장치는 복수의 서브시스템들 각각을 순차적으로 부팅하도록 구성된다.

일 변형예에서, 호스트 프로세싱 장치는 추가로, 부팅 프로세스로부터 복수의 서브시스템들 중 하나의 서브시스템을 프루닝하도록 구성된다.

다른 변형예에서, 부팅 프로세스로부터 복수의 서브시스템들 중 하나의 서브시스템을 프루닝하는 것은, 복수의 서브시스템들 각각의 부트와 비교하여 컴퓨터화된 장치에 대한 전력 소비를 감소시키도록 구성된다.

또 다른 변형예에서, 엔드포인트 장치는 복수의 서브시스템들 중 임의의 서브시스템에 대한 동작 상태에 상관없이 급전되도록 구성된다.

또 다른 변형예에서, 호스트 프로세싱 장치는 복수의 서브시스템들에 대한 부트 시퀀스에 대한 중요도 순서를 결정하고, 컴퓨터화된 장치는 추가로, 결정된 중요도 순서에 따라 복수의 서브시스템들 각각을 순차적으로 부팅하도록 구성된다.

또 다른 변형예에서, 호스트 프로세싱 장치는 추가로, 복수의 기능부들 중 일 기능부에 기능부 레벨 리셋을 발행하도록 구성된다.

또 다른 변형예에서, 복수의 기능부들 중 일 기능부에 기능부 레벨 리셋을 발행하는 것은 추가로, 기능부와 연관된 대응하는 서브시스템을 리셋하도록 구성된다.

제6 태양에서, 전자 디바이스에서 사용하기 위한 주변기기 프로세싱 장치가 개시된다. 일 실시예에서, 주변기기 프로세싱 장치는 엔드포인트 장치를 포함하고, 엔드포인트 장치는 복수의 기능부들을 포함하고, 복수의 기능부들 각각은 주변기기 프로세싱 장치에 대한 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있다. 복수의 서브시스템들 각각은 복수의 서브시스템들 중 다른 서브시스템들에 대해 독립적인 전력 관리 상태 기계를 포함한다.

일 변형예에서, 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로, 활성 상태에 있는 동안 슬립 모드 요청을 호스트 프로세싱 장치로 전송하도록; 슬립 모드 요청을 전송하는 것에 후속하여 슬립 대기 상태에 진입하도록; 주변기기 슬립 제어 레지스터에 대한 업데이트를 검출하도록 - 업데이트는 호스트 프로세싱 장치에 의해 개시됨 -; 그리고 주변기기 슬립 제어 레지스터에 대한 검출된 업데이트에 응답하여 슬립 대기 상태로부터 슬립 상태에 진입하도록 구성된다.

다른 변형예에서, 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로, 호스트 프로세싱 장치가 임의의 보류중인 데이터 트랜잭션(pending data transaction)들을 갖는지 여부를 확인하도록; 보류중인 데이터 트랜잭션들이 있는 경우, 제1 독립적인 전력 관리 상태 기계를 슬립 상태로부터 활성 상태로 전이시키기 위해 웨이크업 프로세스를 개시하도록; 활성 대기 상태에 진입하도록; 그리고 호스트 프로세싱 장치에 의한 주변기기 슬립 제어 레지스터에 대한 업데이트의 검출 시에 활성 대기 상태로부터 활성 상태에 진입하도록 구성된다.

또 다른 변형예에서, 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로, 호스트 프로세싱 장치로부터 호스트 진입 슬립 메시지(host enter sleep message)를 수신하도록; 수신된 호스트 진입 슬립 메시지에 응답하여 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계를 중지하도록; 그리고 제1 독립적인 전력 관리 상태 기계의 중지에 후속하여 보류중인 전송 서술자들 모두를 프로세싱하도록 구성된다.

또 다른 변형예에서, 복수의 서브시스템들 중 다른 서브시스템들은 추가로 호스트 프로세싱 장치로부터 호스트 진입 슬립 메시지를 수신하도록 구성된다.

또 다른 변형예에서, 제1 독립적인 전력 관리 상태 기계는 추가로, 보류중인 전송 서술자들 모두를 프로세싱하는 것에 후속하여 활성 상태로부터 슬립 상태로 전이하도록 구성된다.

또 다른 변형예에서, 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로, 호스트 프로세싱 장치에 대한 웨이크업 요청의 발행을 통해 호스트 프로세싱 장치와의 통신을 재확립하도록 구성된다.

제7 태양에서, 전자 디바이스에서 사용하기 위한 호스트 프로세싱 장치가 개시된다. 일 실시예에서, 호스트 프로세싱 장치는, 엔드포인트 장치에 대한 메모리 맵핑된 인터페이스를 확립하도록 구성된 로직; 및 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하도록 - 대응하는 적어도 하나의 서브시스템의 동작 상태에 독립적임 - 구성된 로직을 추가로 포함한다.

일 변형예에서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하도록 구성된 로직은, 복수의 서브시스템 레지스터들 중 하나의 서브시스템 레지스터와 연관된 레지스터를 판독하도록 구성된 로직을 추가로 포함한다.

다른 변형예에서, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 중 적어도 하나의 서브시스템 레지스터에 액세스하도록 구성된 로직은, 복수의 서브시스템 레지스터들 중 하나의 서브시스템 레지스터와 연관된 레지스터에 기입하도록 구성된 로직을 추가로 포함한다.

또 다른 변형예에서, 액세스하도록 구성된 로직은, PCIe 기능부 내의 메모리 위치에 액세스하는 명령어를 실행시키도록; PCIe 통신 링크를 웨이크하도록; 그리고 메모리 맵핑된 인터페이스 내의 메모리 공간에 액세스하도록 구성된 로직을 추가로 포함하고, 메모리 공간은 PCIe 통신 링크와 연관된다.

또 다른 변형예에서, 호스트 프로세싱 장치는 메모리 공간의 액세스에 후속하여 대응하는 적어도 하나의 서브시스템을 웨이크하도록 구성된 로직을 추가로 포함한다.

또 다른 변형예에서, 대응하는 적어도 하나의 서브시스템은 셀룰러 서브시스템을 포함하고, 호스트 프로세싱 장치는 셀룰러 서브시스템을 웨이크하지 않고서 엔드포인트 장치 내의 셀룰러 기능부에 대해 질의하도록 구성된 로직을 추가로 포함한다.

또 다른 변형예에서, 호스트 프로세싱 장치는, 복수의 서브시스템들에 대한 동작 상태에 독립적으로, 메모리 맵핑된 인터페이스를 통해, 복수의 서브시스템 레지스터들 각각에 액세스하도록 구성된 로직을 추가로 포함한다.

제8 태양에서, 비일시적 컴퓨터 판독가능 장치가 또한 개시된다. 일 실시예에서, 비일시적 컴퓨터 판독가능 장치는 명령어들을 포함하는데, 명령어들은, 프로세서 장치에 의해 실행될 때, 장치로 하여금 다양한 전술된 방법들을 수행하게 한다.

일 변형예에서, 명령어들은, 프로세서에 의해 실행될 때, 장치로 하여금 별개의 전력 및/또는 클록 도메인들을 독립적으로 관리하게 하도록 구성된다. 예를 들어, 일 구현예에서, 명령어들은, 실행될 때, 장치로 하여금

다양한 개시된 서브시스템들을 선택적으로 부팅, 리셋, 및/또는 그에 대한 에러들을 트랩하게 한다.

제9 태양에서, 컴퓨터화된 로직이 개시된다. 일 실시예에서, 컴퓨터화된 로직은 다양한 전술된 방법들을 수행하도록 구성된다.

일 변형예에서, 로직은 하드웨어(예컨대, 게이트 로직), 펌웨어, 및/또는 장치 상에 상주하는 소프트웨어 중 적어도 하나를 포함한다.

제10 태양에서, 다기능 장치에 대한 메모리 맵핑된 버스 아키텍처가 개시된다. 일 실시예에서, 메모리 맵핑된 버스 아키텍처는 PCIe 기술에 기초하고, 메모리 맵핑된 버스 아키텍처는 호스트 프로세서, 셀룰러 모뎀, 무선 로컬 영역 네트워크 모뎀, 및 개인 지역 네트워크 모뎀으로서의 역할을 한다.

본 발명의 다른 특징들 및 이점들은 이하에 제공된 바와 같은 예시적인 실시예들의 상세한 설명 및 첨부된 도면들을 참조하여 당업자에 의해 즉각 인식될 것이다.

도 1은 메모리 맵핑된 버스 아키텍처에 대한 하나의 종래 기술의 시스템의 논리 블록도이다.
도 2는 본 명세서에 기술된 원리들에 따른, 독립적인 전력 및 클록 도메인들을 갖는 메모리 맵핑된 버스 아키텍처에 대한 하나의 예시적인 시스템의 논리 블록도이다.
도 3은 본 명세서에 기술된 원리들에 따른, 예시적인 PCIe 메모리 맵핑된 버스의 전력 관리에 유용한 하나의 예시적인 LTSSM(Link Training and Status State Machine)의 로직 다이어그램이다.
도 4는 본 명세서에 기술된 원리들에 따른, 예시적인 서브시스템 도메인의 전력 관리에 유용한 2개의 예시적인 전력 관리 상태 기계들을 도시하는 로직 다이어그램이다.
도 4a는 본 명세서에 기술된 원리들에 따른, 예시적인 서브시스템에 대한 슬립 상태에 진입하기 위한 하나의 예시적인 방법의 논리 블록도이다.
도 4b는 본 명세서에 기술된 원리들에 따른, 예시적인 서브시스템에 대한 활성 상태에 진입하기 위한 하나의 예시적인 방법의 논리 블록도이다.
도 5는 본 명세서에 기술된 다양한 원리들에 부합하는, 서브시스템 내의 레지스터들에 액세스하기 위한 하나의 예시적인 방법의 논리 블록도이다.
도 6은 본 명세서에 기술된 다양한 원리들에 부합하는, 호스트 프로세서를 슬립 모드로 전이시키기 위한 하나의 예시적인 방법의 논리 블록도이다.
도 7은 본 명세서에 기술된 다양한 원리들에 부합하는, 기능부 레벨 리셋 동작을 위한 하나의 예시적인 방법의 논리 블록도이다.
도 8은 본 명세서에 기술된 다양한 원리들에 부합하는, 주변기기 리셋 동작을 위한 하나의 예시적인 방법의 논리 블록도이다.
모든 도면들의 저작권

Figure 112017110834740-pat00001
2016 ― 2017은 애플 인크.(Apple Inc.)에 있으며, 모든 도면들에 대한 복제를 불허한다.

이제 유사한 도면 부호들이 전체적으로 유사한 부분들을 나타내는 도면들을 참조한다.

예시적인 실시예의 상세한 설명

이제 본 발명의 예시적인 실시예들이 상세히 기술된다. 이러한 실시예들은 고속 모바일 응용들에 대한 버스 아키텍처와 관련하여 주로 논의되지만, 본 발명은 그렇게 제한되지 않는다는 것이 당업자에 의해 인식될 것이다. 실제로, 본 명세서에 기술된 원리들은 다수의 독립적인 서브시스템들을 지원하는 임의의 버스 아키텍처, 컴포넌트, 디바이스, 및/또는 디바이스들의 네트워크에 유용하다.

또한, 하기 실시예들은 예를 들어, 전용 주소 공간들, 급전 시퀀스들, 클록킹 구현들, 부트 시퀀스들, 슬립 시퀀스들, 에러 트랩핑, 및/또는 리셋 처리의 특정 구현예들을 기술하지만, 당업자는, 하기 설명들이 순전히 본 명세서에 기술된 보다 광범위한 원리들을 예시하는 것임을 용이하게 이해할 것이다. 다른 구현예들은 본 명세서에서 제공되는 설명들에 부합하는 더 많거나 또는 더 적은 개수의 기능부들, 기능부들의 상이한 조합들, 및/또는 기능적 차이들을 가질 수 있다.

본 명세서에서 사용되는 바와 같이, 용어 "시스템"은 일반적으로 그리고 제한 없이, 대체하는 논리적 및/또는 물리적 프로세싱 엔티티들을 포함하거나 포함하지 않을 수 있는 임의의 독립적인 논리적 및/또는 물리적 엔티티를 지칭한다. 시스템의 일반적인 예들은, 예컨대 스마트폰들, 컴퓨터들, 랩톱들, 태블릿들, "스마트" 텔레비전들 및 다른 미디어 분배 및 렌더링 디바이스들, 차량 인포테인먼트(infotainment) 또는 텔레매틱스(telematics) 시스템들, 및/또는 다른 소비자 전자 디바이스들을 포함한다.

본 명세서에서 사용되는 바와 같이, 용어 "서브시스템"은 일반적으로 그리고 제한 없이, 태스크들의 미리정해진 세트를 수행하기 위해 시스템 엔티티의 지시 하에 동작하는 임의의 프로세싱 엔티티를 지칭한다. 서브시스템들의 일반적인 예들은 셀룰러 모뎀들, 무선 로컬 영역 네트워크(WLAN) 모뎀들, 개인 지역 네트워크(PAN) 모뎀들, 그래픽 프로세서들, 미디어 프로세서들, 글로벌 포지셔닝 시스템들(GPS), 및/또는 임의의 다른 범용 또는 특수 목적 프로세싱 엔티티를 포함한다.

본 명세서에서 사용되는 바와 같이, 용어 "기능부"는 일반적으로 그리고 제한 없이, 서브시스템에 대한 메모리 맵핑된 접속과 연관된 프로세싱 및/또는 메모리 리소스들을 지칭한다. 예시적인 PCIe 기능부는, 예컨대 서브시스템 특정 레지스터들, 메모리 맵핑된 입력/출력(MMIO), 구성 공간, 내부 버스 구조들 및/또는 다른 전문화된 레지스터들 또는 메모리들을 포함할 수 있다. 일부 경우에, 구성 공간은 일반화/표준화되거나, 독자적 또는 달리 주문맞춤되거나(예컨대, 공급업체-특정, 애플리케이션-특정, 디바이스-특정, 또는 다른 특정 방식에 따라 구성되거나), 또는 전술한 것의 조합일 수 있다.

개요 -

본 발명의 다양한 태양들은 전자 디바이스들 내에 존재하는 독립적인 도메인들 내의 서브시스템 리소스들(예컨대, 클록, 전력, 및 리셋)의 격리에 관한 것이다. 예를 들어, 하나의 예시적인 실시예에서, 시스템의 각각의 서브시스템은 전용 클록 도메인을 갖는다. 특히, 주변기기 칩세트 하드웨어는, 각각이 독립적인 클록 도메인에서 동작하는 다수의 서브시스템들로 구성될 수 있다.

또한, 각각의 서브시스템은 독립적인 전력 도메인에 기초하여 급전될 수 있다. 각각의 전력 도메인은 독립적으로 전원이 켜지고/꺼질 수 있거나, 또는 다양한 전력-보존 모드들에 배치될 수 있고, 전력 관리를 위한 별개의 상태 기계를 가질 수 있다. 독립적인 전력 도메인들은 다른 전력 도메인들의 상태 기계에 상관없이 급전될 수 있다.

다른 태양에서, 각각의 서브시스템은 공통 메모리 맵핑된 버스 기능부에 접속될 수 있다. 하나의 예시적인 실시예에서, 공통 메모리 맵핑된 버스 기능부 및 서브시스템들은 독립적인 도메인들 내에서 동작하고; 따라서, 기능부들 및 대응하는 서브시스템들은, 메모리 맵핑된 버스의 전체 전력 상태, 다른 서브시스템 전력 상태, 및/또는 호스트 시스템 전력 상태에 상관없이 임의의 전력 상태에 진입할 수 있다.

본 명세서에 기술된 일부 변형예들에서, 서브시스템들 또는 메모리 맵핑된 버스는 동작 고려사항들에 기초하여 서브시스템 리소스들을 관리할 수 있고; 예를 들어, 호스트 애플리케이션이 낮은 레이턴시 응답을 요구하는 경우, 대응하는 서브시스템은 메모리 맵핑된 버스가 저전력 모드에 진입하는 것을 방지할 것이다. 다른 그러한 예에서, 배터리 소비는 동시에 급전될 수 있는 서브시스템들의 개수를 제한할 수 있고; 따라서, 우선순위화 방식이 충돌을 해결하고/하거나 리소스들을 할당하는 데 사용될 수 있다.

본 발명의 예시적인 구현예들은 시스템의 전체 전력 소비를 관리하는 호스트를 포함하고, 따라서 호스트 프로세서는 서브시스템을 웨이크 상태로 유지하거나 서브시스템을 슬립으로 강제하는 것과 같이, 다양한 서브시스템들에 대한 제어를 발휘할 수 있다. 그러나, 본 명세서에 개시된 일부 변형예들은 그러한 능력을 주변기기에 또한 제공한다(또는 대안예에서, 주변기기는, 예를 들어 시스템의 전체 전력 소비를 전적으로 관리할 수 있다). 예를 들어, 일부 경우에, 주변기기는 또한, 호스트가 슬립 상태로 되는 것을 방지하는 것과 같이, 호스트(또는 그 일부분들)에 대해 다양한 정도의 제어를 발휘하도록 구성될 수 있다.

본 명세서에 기술된 하나의 예시적인 실시예에서, 각각의 서브시스템에 대한 슬립 시퀀스는 다른 서브시스템들로부터 격리되지만; 다른 실시예들은 부분적으로 또는 완전히 조정된 서브시스템 전력 관리를 제공한다.

PCIe-기반 시스템 ―

소비자 취향은 이력적으로 모바일 디바이스들에 대한 공격적인 폼 팩터 제약들을 주도하였다. 전통적인 설계는 포트-맵핑된 훨씬 작은 핀 인터페이스(예컨대, 범용 직렬 버스(USB))에 의존하였다. 이러한 기술들은 콤팩트하지만, 또한 사용할 때 보다 느린 전송 속도, 패킷 프로세싱 오버헤드, 및/또는 과도한 전력 소비를 겪을 수 있다.

간략히 말하면, 소위 "포트-맵핑된 액세스" 호스트 프로세서들은 그 자신의 메모리들 및 레지스터들에 액세스하기 위한 명령어들의 고유 세트 및 "포트"를 통해 외부 서브시스템과 통신하기 위한 명령어들의 제2 세트를 사용한다. 트랜잭션된 데이터는 중개 통신 포맷을 통한 송신을 위해 포맷화(예컨대, 패킷화, 직렬화)된다. 중개 통신 포맷은 서브시스템 메모리를 호스트 메모리로부터 격리시키는데; 즉, 각각의 주변기기 서브시스템은 호스트의 주소 공간으로부터 격리된 별도의 주소 공간을 갖는다. 예를 들어, 패킷 프로토콜(예컨대, USB)은 트랜잭션 오버헤드(예컨대, USB 파이프들, 엔드포인트 식별 등)를 부가한다.

대조적으로, 소위 "메모리-맵핑된 액세스"는 호스트 및 주변기기 서브시스템들 양쪽 모두를 주소지정하기 위해 동일한 주소 버스를 사용하는데; 다시 말하면, 주변기기 서브시스템들의 메모리 및 레지스터들은 호스트에 의해 직접 액세스되고, 그 반대로도 가능하다. 예를 들어, 주소가 호스트에 의해 액세스될 때, 동일한 주소 포맷이 호스트의 메모리 또는 주변기기의 메모리 및/또는 레지스터들에 액세스하는 데 사용될 수 있다. 각각의 주변기기 서브시스템은 주소 버스를 모니터링하고, 그 서브시스템에 할당된 주소의 임의의 호스트 액세스에 응답한다.

PCIe는 메모리-맵핑된 버스 기술의 하나의 구현예이고; 유감스럽게도, PCIe는 큰 버스 인터페이스(거의 40개의 핀들을 가짐)를 요구하고, 특히 다른 버스 기술들과 비교할 때 인쇄 회로 기판(PCB) "실면적(real estate)"에 불균형적으로 큰 "풋프린트(footprint)"를 갖고 있다. 따라서, PCIe의 크기로 인해 그것은 이력적으로 모바일 응용들에 적합하지 않았다(후자는 특징적으로 비교적 작은 폼 팩터들을 가짐).

그러나, 무선 기술의 최근 발전은 무선 애플리케이션들에 대한 "데이터 파이프"의 무선 대역폭을 증가시켰다. 일부 경우에, 무선 네트워크 속도들은 호스트 디바이스의 보다 느린 버스 기술들(예컨대, USB)을 능가할 수 있다. 유사하게, 소비자 취향은 (보다 큰 화면 크기들의 인기로 인해 적지 않은 부분에서) 보다 큰 모바일 디바이스들에 적응되었다. 이러한 이유로, PCIe에서의 관심이 모바일 응용들에 활력을 불어넣었다. 초기 설계들(예컨대, 본 양수인에 의해 제조된 것들)은 메모리 맵핑된 버스 인터페이스들에 기초하여 애플리케이션 프로세서와 주변기기 칩세트들 사이의 보다 빠른 통신을 요구한다.

이제 도 1을 참조하면, 전형적인 종래 기술의 시스템(100)이 상세히 기술되고 도시된다. 예시된 시스템은, PCIe 링크(106A)를 통해 셀룰러 서브시스템(104A)과; 그리고 PCIe 링크(106B)를 통해 WLAN 서브시스템(104B)과 통신 상태에 있는 호스트(102)를 도시한다. 또한, 호스트는 범용 비동기 수신기/송신기(UART) 링크(108)를 통해 PAN 서브시스템(104C)(예컨대, 블루투스(Bluetooth)® 서브시스템)을 제어한다. PCIe 링크들 각각은 각각의 PCIe 루트 컴플렉스(RC)(110A, 110B), 및 대응하는 각각의 엔드포인트(EP)(112A, 112B)에 의해 관리된다.

정상 동작 동안, 디바이스의 사용자는 전화 통화를 하거나, 인터넷에 액세스하거나, 또는 달리, 예를 들어 셀룰러 네트워크에 대한 데이터 접속을 위한 사용자 개시된 요청을 수행할 수 있다. 이에 응답하여, 셀룰러 서브시스템(104A)은 접속된 모드로 진입하고, 사용자 음성 및 데이터를 전송/수신하고; 그렇지 않으면, 셀룰러 서브시스템(104A)은 전력을 절감하기 위해 그의 전원이 차단된 대부분의 시간을 유휴 모드에서 보낼 수 있다. 또한, 셀룰러 서브시스템(104A)은 이동성 관리를 위해 셀룰러 네트워크에 빈번하게 재접속하여, 착신 통화를 확인하고/하거나 다른 자율적인 네트워크 관리 태스크들을 수행할 수 있다. 이러한 자율적인 (비-사용자 개시된) 액션(action)들은 일반적으로 백그라운드에서 발생하고, 사용자가 눈치채지 못한다.

유사하게, WLAN 서브시스템(104B)은, 예를 들어 최상의 가능한 데이터 접속을 식별하고/하거나, 사용자 데이터를 송신 및 수신하기 위해 그의 인근 네트워크들을 계속해서 스캔하고; 사용되지 않을 때, WLAN 서브시스템(104B)은 저전력 모드로 전이할 수 있다.

PCIe는 향상된 성능을 위해 그리고/또는 다수의 프로세서들 사이의 동작을 최적화하기 위해 메모리 맵핑된 아키텍처를 능률화하지만; 공간 고려사항들이 우선 순위로 남는다. 따라서, 애플리케이션 프로세서 상에서 실행중인 소프트웨어 스택들의 독립성을 보존하면서, 다수의 서브시스템들이 감소된 수의 칩세트들(예컨대, 단일 칩세트(가능한 경우))로 병합되고 단일 메모리 맵핑된 버스 인터페이스를 통해 통신할 때 이점이 존재할 수 있다. 유감스럽게도, 기존의 PCIe 사양들은 엔드포인트 설계 요건들을 특정하지 않는다. 따라서, 상이한 제조사들은 많은 상이한 PCIe 서브시스템 구현예들을 채택하였고, 그 중 다수는 일관성이 없고/없거나 바람직하지 않다. 예를 들어, 단일 엔드포인트는 그의 서브시스템들 전부를 슬립으로 두고/두거나, 모든 서브시스템들을 함께 웨이크할 수 있다. 다수의 독립적인 서브시스템들을 지원하는 시스템들 내의, 예컨대 "웨이크" 및/또는 "슬립" 기능에 대한 일관된 프레임워크를 구현하는 개선된 솔루션들이 필요하다.

이러한 목적을 위해, 본 발명은, 특히 PCIe 인터페이스로부터 전력 관리 및 클록 기능을 분리하는 것에 관한 것이다. 본 명세서에 기술된 다양한 솔루션들은 동일한 PCIe 인터페이스를 사용하는 다수의 서브시스템들(각각이 독립적인 전력 및 클록을 가짐)을 지원하여, 이에 의해 설계 풋프린트를 최소화할 수 있다. 다시 말하면, 기술된 솔루션들은 일관된 프레임워크에 따라 전력 및 클록 관리 기능으로부터 메모리 맵핑된 버스 기능을 분할함으로써 공격적인 폼 팩터 설계들에서 PCIe-유사 동작(및 향상된 프로세싱 속도 및 효율의 그의 수반된 이익)을 가능하게 할 수 있다. 일부 개시된 구성들에서, 각각의 PCIe 엔드포인트는 다수의 전용 주소 공간들, 급전 시퀀스, 클록킹 구현들, 부트 시퀀스들, 슬립 시퀀스들, 에러 트랩핑 메커니즘, 및/또는 리셋 핸들러들을 지원할 수 있다.

보다 일반적으로, 메모리 맵핑된 아키텍처의 맥락 내에서 전력, 클록, 및/또는 다른 리소스 도메인들의 독립적인 동작을 위한 방법들 및 장치가 제공된다.

예시적인 장치 -

위에서 언급된 바와 같이, 종래 기술의 PCIe 동작의 결점을 해소하기 위해, 본 발명의 예시적인 실시예들은 PCIe 기술을 사용하여 서브시스템들에 대한 상이한 전력 및 클록 도메인들을 지원하기 위한 일관된 프레임워크를 유리하게 특정한다.

이제 도 2를 참조하면, 하나의 예시적인 시스템(200)이 상세히 기술되고 도시된다. 예시된 시스템(200)은 PCIe 링크(206)를 통해 주변기기(204)와 통신 상태에 있는 호스트(202)를 도시한다. PCIe 링크(206)는 호스트(202)(예컨대, 호스트 프로세서 장치)의 루트 컴플렉스(RC)(210)를 주변기기(204)(예컨대, 주변기기 프로세서 장치)의 엔드포인트(EP)(212)에 접속시킨다. 단일 RC(210)가 도 2에 예시되어 있지만, 본 발명의 내용들이 주어진다면, 다수의 RC들이 일부 구현예들에서 이용될 수 있다는 것이 당업자에게 용이하게 명백할 것이다. EP(212)는 대응하는 서브시스템들에 결합되는 다수의 기능부들로 추가로 세분된다. 도시된 바와 같이, 셀룰러 서브시스템(214A)은 제1 기능부(208A)를 통해 결합되고; WLAN 서브시스템(214B)은 제2 기능부(208B)를 통해 결합되고; PAN 서브시스템(214C)은 제3 기능부(208C)를 통해 결합된다. 특정 토폴로지가 도 2에 예시되어 있지만, 본 발명의 내용들이 주어진다면, 시스템(200) 내에 더 많은(또는 심지어 더 적은) 서브시스템들이 존재할 수 있다는 것이 당업자에 의해 이해될 것이다.

본 발명이 호스트 및 주변기기를 참조하여 예시되어 있지만, 아래에서 명백해질 이유 때문에, 호스트 또는 주변기기에 대한 지정은 하기 설명들을 단순화 및/또는 명확하게 하기 위해 사용되고, 기존의 호스트 또는 주변기기 기능을 암시하지 않거나, 또는 그러한 역할들이 반전될 수 없다(예컨대, 전통적인 "호스트"가 적어도 일부 능력들에서 주변기기로서 기능할 수 있고, 그 반대로도 가능하다)는 것에 유의해야 한다. 더욱이, 본 명세서에 기술된 원리들은 명시적으로 기술된 것들 이외에 추가적인 프로세싱 칩세트들(예컨대, 추가적인 호스트들 및/또는 추가적인 주변기기들)을 지원하도록 확장될 수 있다.

도 2의 시스템(200)의 호스트(202)는 예시된 실시예에서 중앙 프로세싱 유닛(CPU)(216) 및 메모리 관리 유닛(MMU)(218)을 포함하고, 외부 메모리(예컨대, 동적 랜덤 액세스 메모리(DRAM)(220) 및/또는 플래시 또는 디스크 저장 시스템들)에 접속된다. 예시된 서브시스템들은, 제한 없이, 셀룰러 모뎀(214A) 및 대응하는 CPU(222A); WLAN 모뎀(214B) 및 대응하는 CPU(222B); 및 PAN 모뎀(214C) 및 대응하는 CPU(222C)를 포함할 수 있다. 또한, 서브시스템들은 각각 하나 이상의 외부 메모리들(224) 및/또는 내부 밀착 결합된 메모리들(tightly coupled memory, TCM)(226)에 액세스할 수 있다.

예시적인 시스템(200)은, 호스트 프로세서(216), PCIe 링크(206)(RC(210) 및 EP(212)를 포함함), 및/또는 서브시스템들(214A, 214B, 214C) 각각에 대한 전력 및 클록 도메인들을 격리시켰다. 본 맥락에서 사용되는 바와 같이, 용어 "도메인"은, 독립적으로 자립형(self-sufficient)이고 그 자신의 동작을 위한 다른 서브시스템들을 요구하지 않는 서브시스템 내의 로직을 지칭한다. 도메인들의 일반적인 예들은, 제한 없이, 예컨대 전력 도메인들, 클록 도메인들, 리셋 도메인들, 보안 도메인들, 프로세싱 도메인들을 포함한다. 각각의 도메인이 자립형이지만, 당업자는 본 발명의 내용들이 주어진다면, 정상 동작 동안 다수의 도메인들이 동시에 사용되고/되거나 서로 상호작용할 수 있고; 실제 일부 사용의 경우에는, 다수의 도메인들이 동시에 인에이블되는 것을 요구할 수 있다는 것을 용이하게 이해할 것이다.

정상 동작 동안, 전술한 도메인들 각각은 다른 도메인들 중 하나 이상의 도메인에 독립적으로 동작할 수 있다. 예를 들어, 이동성 관리 업데이트 동안, 셀룰러 서브시스템(214A)은, 예를 들어 호스트(202), PCIe 링크(206), RC(210), EP(212), 또는 다른 서브시스템들(214B, 214C)의 전원을 켜지 않고서 셀룰러 네트워크에 접속될 수 있다. 유사하게, WLAN 서브시스템(214B)은 다른 도메인들 중 임의의 것을 웨이크업하지 않고서 인근 비콘들에 대해 스캔할 수 있다.

간략히 말하면, PCIe 링크 전력 관리는 LTSSM에 기초한다. 하나의 그러한 LTSSM(300)이 도 3 내에 예시되어 있고; 도시된 바와 같이, 상태 기계(300)는, 특히 상태들 L0(302), L0s(304), L1(306), 및 L2(308)를 포함한다.

L0(302)는 데이터 및 제어 패킷들이 송신 및 수신될 수 있는 물리적 버스 인터페이스의 동작 상태이다.

L0s(304)는 물리적 버스 인터페이스가 전력 보존 상태에 신속하게 진입할 수 있게 하고 복구 상태를 거치지 않고서 그로부터 복구될 수 있게 하는 제1 전력 절감 상태이다.

L1(306)은 (복구 상태로 인한) 추가적인 재개 레이턴시를 희생하여 L0s(304)에 비해 추가적인 전력 절감을 허용하는 제2 전력 절감 상태이다. 하나의 예시적인 실시예에서, L1(306)은, 예컨대 서브상태들(L1.1, L1.2)로 추가로 세분될 수 있다. 그의 일 구현예에서, L1.1은, 송수신 회로부 및 연관된 위상 고정 루프(phase locked loop, PLL)들의 전원을 끈 동안, 포트 회로부의 공통 모드 전압들이 유지될 수 있게 한다. L1.2는 송수신 회로부 및 PLL들에 더하여 공통 모드 전압들의 전원을 끈다.

마지막으로, L2(308)는 대부분의 기능을 꺼서 공격적으로 전력을 보존하는 제3 전력 절감 상태이다.

PCIe는 접속된 서브시스템들에 대한 특정 전력 관리 상태 기계를 요구하지 않지만; 도 4는 하나의 그러한 구현예를 나타낸다. 도시된 바와 같이, 도 4의 상태 기계는, 전력을 공동으로 관리하는 호스트 프로세서 및 주변기기 프로세서 내의 한 쌍의 독립적인 상태 기계들을 예시한다. 하기 논의는 한 쌍의 상태 기계들에 관해 제시되지만; 단일 호스트 및 다수의 서브시스템들을 갖는 시스템이 각각의 서브시스템에 대해 호스트 상태 기계의 하나의 인스턴스(instance) 및 서브시스템 상태 기계의 하나의 인스턴스를 가질 수 있음이 이해된다. 각각의 서브시스템의 상태 기계는 대응하는 호스트 상태 기계와 격리 상태로 상호작용한다. 하기 논의는 단일 호스트 상태 기계와 단일 서브시스템 상태 기계 사이의 상호작용들을 기술하지만, 하기 원리들이 다수의 독립적인 서브시스템 상태 기계들(예컨대, 도 2 참조)(또는 다수의 호스트 상태 기계들)이 존재하는 구현예들에 적용될 것임이 이해될 것이고, 이때 하기 논의는 단지 간략화를 위한 보다 폭넓은 원리들을 예시하고 있다.

또한, 당업자는, 본 발명을 고려할 때, 예컨대 서브시스템-서브시스템 전력 시퀀스, 또는 서브시스템-호스트 전력 시퀀스에 적합하도록 본 명세서에 기술된 원리들을 적용할 수 있다.

정상 동작 동안, 주변기기 프로세서(예컨대, 주어진 각각의 서브시스템(214A, 214B, 214C)에 대한 기능부(208A, 208B, 208C))는 활성 상태(402)에서 메모리 맵핑된 주소(예컨대, 주변기기 슬립 통지(Peripheral Sleep Notification) 레지스터) 또는 다른 메시징 메커니즘(예컨대, GPIO, 대역외(out-of-band) 시그널링, 도어벨 등)을 통해 슬립 모드 요청을 전송할 수 있다. 또한, 도 4a의 동작(422)을 참조하라. 예를 들어, 주변기기 프로세서는 다수의 서브시스템들을 포함할 수 있고, 다수의 서브시스템들 중 하나의 서브시스템에 대한 슬립 모드 요청을 전송할 수 있다. 그 후에, 주변기기 프로세서(예컨대, 주어진 각각의 서브시스템(214A, 214B, 214C)에 대한 기능부(208A, 208B, 208C))는 (예컨대, 다수의 서브시스템들 중 하나의 서브시스템에 대한) 슬립_대기 상태(404)에 진입한다. 또한, 도 4a의 동작(424)을 참조하라. 슬립_대기 상태(404)에 있을 때, 주변기기 프로세서(예컨대, 주어진 각각의 서브시스템(214A, 214B, 214C)에 대한 기능부(208A, 208B, 208C))는 정지하고, 임의의 데이터 전송들 또는 메시지들을 개시하거나 완료하지 않는다. 주변기기 프로세서(예컨대, 주어진 각각의 서브시스템(214A, 214B, 214C)에 대한 기능부(208A, 208B, 208C))는 호스트 액션에 대한 메모리 맵핑된 주소(예컨대, 주변기기 슬립 제어 레지스터)를 모니터링한다. 또한, 도 4a의 동작(426)을 참조하라. 일부 실시예들에서, 웨이크업 절차들은 (웨이크를 트리거하는) 대역외 GPIO를 사용함으로써 개시될 수 있고; 웨이크업 절차들은 전용 대역내 MMIO 도어벨을 통해 트리거될 수 있다.

호스트가 (예컨대, 활성 모드(412)에 있는 동안) 슬립 모드 요청을 검출할 때, 호스트 프로세서는, 예를 들어 다수의 서브시스템들 중 하나의 서브시스템에 대해 "슬립 모드"로 주변기기 슬립 제어 레지스터를 업데이트할 수 있다. 또한, 도 4a의 동작들(428, 430)을 참조하라. 호스트 프로세서는 또한 슬립 상태(416)에 진입할 수 있다. 주변기기 프로세서(예컨대, 주어진 각각의 서브시스템(214A, 214B, 214C)에 대한 기능부(208A, 208B, 208C))는, 예를 들어 다수의 서브시스템들 중 하나의 서브시스템에 대한 주변기기 슬립 제어 레지스터에서의 업데이트를 검출하고, 슬립 상태(406)에 진입한다. 또한, 도 4a의 동작들(432, 434)을 참조하라.

서브시스템들 중 하나 이상의 서브시스템들이 슬립 상태(406)에 있는 동안, 주변기기 프로세서는, 호스트 프로세서가 하나 이상의 서브시스템들에 대한 진행 중인 임의의 보류중인 전송들 또는 메시지들을 갖는지 여부를 확인한다. 또한, 도 4b의 동작(442)을 참조하라. 만약 그렇다면, 주변기기 프로세서는 활성 상태(402)로 전이시키기 위한 "웨이크업" 프로세스를 개시한다. 유사하게, 주변기기 프로세서가 통신 링크에 액세스할 필요가 있는 경우, 그것은 웨이크업할 것이다.

웨이크업하기 위해, 주변기기 프로세서는, 예컨대 주변기기 슬립 통지 레지스터를 통해 활성 모드 요청을 전송하고, 활성_대기 상태(408)에 진입한다. 또한, 도 4b의 동작들(444, 446)을 참조하라. 주변기기 프로세서는 이후에 데이터 전송 및 메시지들을 위해 통신 링크에 즉시 액세스할 수 있지만, (상태 기계 경쟁 상태(race condition)를 방지하기 위하여) 주변기기 프로세서는 슬립에 진입하거나 슬립 모드 요청을 전송할 수 없다. 또한, 도 4b의 동작(448)을 참조하라.

활성 모드 요청에 응답하여, 호스트는, 예컨대 주변기기 슬립 제어 레지스터를 "활성 모드"로 업데이트하고 활성 상태(412)에 진입한다. 또한, 도 4b의 동작(450)을 참조하라. 주변기기 프로세서는 그가 주변기기 슬립 제어 레지스터에서의 호스트의 업데이트를 알 때 활성 상태(402)에 진입한다. 또한, 도 4b의 동작(452)을 참조하라.

호스트 개시된 슬립 프로세스는 유사하다(즉, 호스트의 전력 관리 상태 기계는 주변기기 서브시스템 전력 관리 상태 기계와 대칭인 것으로 고려될 수 있다). 호스트가 슬립에 진입할 준비가 될 때, 그것은 호스트 진입 슬립 메시지를 통해 주변기기 프로세서에 알린다(그리고 슬립_대기 상태(414)로 전이한다). 호스트 진입 슬립 메시지를 볼 때, 주변기기 프로세서는 그 자신의 슬립 상태 기계를 중지하고, 보류중인 전송 서술자(TD)들 모두를 프로세싱한다. 이후에 더욱 상세히 논의되는 바와 같이, 호스트는 슬립 상태(416)로 전이할 수 있기 전에 다수의 서브시스템들에 알릴 필요가 있을 수 있다.

슬립 메시지 완료에 응답하여, 호스트는 (슬립_대기 상태(414)로부터) 슬립 모드로 전이할 수 있고; 그 후에, 주변기기 프로세서는 또한 독립적으로 슬립 모드에 진입할 수 있다. 주변기기 프로세서가 호스트와의 통신을 재확립할 필요가 있는 경우, 그것은, 예컨대 웨이크 시퀀스를 트리거하는 대역외 범용 입력 출력(GPIO)을 통해 호스트가 웨이크업할 것을 요청할 수 있다. 호스트는, 동작을 다시 초기화하고 등등을 하기 위해 활성_대기 상태 (418)로 전이한다. 일단 호스트가 성공적으로 활성_대기 상태(418)를 종료하고 (활성 상태(412)에서) 웨이크하였다면, 호스트는 호스트 종료 슬립 메시지(Host Exit Sleep Message)를 통해 주변기기를 업데이트한다.

주변기기 프로세서를 다시 참조하면, 일단 주변기기 프로세서 전송 서술자 링(transfer descriptor ring, TDR) 프로세싱이 완료되면, 주변기기 프로세서는 슬립 메시지에 대한 완료/확인 응답을 전송한다. 그 후에, 주변기기 프로세서는 그가 호스트 프로세서로부터 호스트 종료 슬립 메시지를 수신할 때까지(메시지 링(MR)을 통해 수신됨) 더 이상의 TDR을 수용하지 않을 것이다. 주변기기는 데이터 전송들을 재개하기 전에 호스트 종료 슬립 메시지를 확인응답/완료할 것이다.

전술한 설명은 순전히 하나의 예시적인 상태 기계를 예시하는 것이다. 다른 변형예들은, 앞서 전체적으로 본 명세서에 참고로 포함된, 2015년 10월 8일자로 출원되고 발명의 명칭이 "Methods and Apparatus for Managing Power with an Inter-Processor Communication Link Between Independently Operable Processors"인, 공동 소유되며 동시 계류중인 미국 특허 출원 제14/879,027호에 기술되어 있다.

앞서 언급된 바와 같이, 예시된 실시예의 각각의 서브시스템은 그의 대응하는 서브시스템 전력 관리 상태 기계의 그 자신의 독립적인 인스턴스를 갖는다. 도 2를 다시 참조하면, 셀룰러 서브시스템(214A)은 전력 관리 상태 기계의 제1 인스턴스를 갖고; WLAN 서브시스템(214B)은 전력 관리 상태 기계의 제2 인스턴스를 갖고; PAN 서브시스템(214C)은 전력 관리 상태 기계의 제3 인스턴스를 갖는다. 전술한 서브시스템 전력 관리 상태 기계들은 순전히 예시적인 것이고; 다양한 다른 설계 고려사항들을 수용하기 위해 다른 상태 기계들이 숙련자(artisan)에 의해 대체될 수 있음(또는 전술한 것과 조합하여 사용될 수 있음)이 이해될 것이다. 예를 들어, 상이한 애플리케이션들 및 상이한 컴포넌트들은 그들의 기능, 상대 전력 소비, 또는 또 다른 요인에 따라 상이한 전력 관리 상태 기계들을 가질 수 있다.

하나의 예시적인 실시예에서, 도메인들은 제한없이 다른 도메인들과 동시에 동작할 수 있다(예컨대, 하나 이상의 도메인들이 동시에 급전될 수 있다). 다른 실시예들에서, 도메인들의 독립적인 동작은 전력 소비, 열 소산 및/또는 간섭 제약들보다 우선시될 수 있다. 예를 들어, 소정의 공격적으로 설계된 제품들은 모든 도메인에 동시에 충분히 급전할 수 없거나, 또는 모든 도메인들이 급전될 때 전체 배터리 수명 제약들을 충족시키지 못할 수 있다. 또 다른 제품들은 열 소산 및/또는 (클록들에서의 차이들로 인한) 바람직하지 않은 전자기 잡음 플로어 증가들이 문제가 될 수 있도록 하는 공격적인 크기로 될 수 있다. 따라서, 본 명세서에서 고려되는 지능형 전력 관리 변형예들은 (예컨대, 도메인들의 우선순위화된 가중치, 하나 이상의 사용자 선호도들, 이력적 사용량, 및/또는 다른 선택 정보에 기초하여) 그러한 디바이스 제한들을 수용하도록 우선적으로 도메인들을 인에이블 또는 디스에이블할 수 있다.

하나의 예시적인 실시예에서, 개시된 PCIe 인터페이스는 또한 제한없이 독립적으로 동작가능한데; 예컨대, PCIe 인터페이스는 호스트 프로세서(216) 및 주변기기 서브시스템들(214A, 214B, 214C) 양쪽 모두와는 별개인 그 자신의 전력 및 클록 도메인을 갖는다. 다른 서브시스템들에서와 같이, 이 실시예에서의 PCIe 서브시스템은 다른 서브시스템들에 독립적으로 전력 절감 모드들에 진입하고/하거나 그를 종료할 수 있다. 그러한 시스템들은 호스트, 주변기기, 또는 서브시스템 동작을 요구하지 않고서 "하우스키핑(housekeeping)" 유형 동작들, 예컨대 상태 업데이트들, 타이머 설정/리셋, 및/또는 다른 자율적인 액세스들을 가능하게 할 수 있다.

동작 동안, 예시적인 실시예의 전력 관리 상태 기계들 각각은 독립적으로 동작한다. 예를 들어, 셀룰러 서브시스템(214A)은 셀룰러 네트워크 이동성 관리 엔티티(MME)와 통신할 수 있는 반면, 다른 서브시스템은 슬립 상태들로 유지될 수 있다. 셀룰러 서브시스템이 호스트 프로세서를 업데이트할 필요가 있을 때, 셀룰러 서브시스템은 PCIe 링크를 웨이크하는 인터럽트(interrupt)를 호스트 프로세서(216)에 발생시킨다. 이에 응답하여, PCIe LTSSM은 그의 L0 상태(302)로 전이하여 호스트 프로세서(216)(이는 또한, 아직 활성이 아닌 경우, 이에 응답하여 그의 활성 상태로 전이해야 함)에 대한 통신들을 브리징한다. 일단 트랜잭션이 끝나면, 셀룰러 서브시스템은 그의 각각의 슬립 상태로 다시 되돌아갈 수 있다.

또한, PCIe 서브시스템이 서브시스템들 각각에 대한 기능 정보를 저장하고 있기 때문에, 호스트에 의한 PCIe 레지스터 액세스들은, 서브시스템들(214A, 214B, 214C)이 전원공급되고/되거나 소위 "백플레인(backplane) 액세스들"을 개시할 필요없이 EP(212) 또는 기능부들(208A, 208B, 208C)에 의해 완료되어야 한다. 소위 백플레인 액세스들은 일반적으로, 예컨대 주변기기 내부 상호접속부, 버스, 및/또는 공유 및/또는 비공유 리소스와 같은 내부 액세스 메커니즘을 요구하는 액세스들을 지칭한다. 보다 직접적으로, 호스트는, 메모리 액세스를 서비스하기 위해 서브시스템이 동작 상태로 급전될 필요없이 서브시스템들 각각에 대한 PCIe 제어 공간 및 MMIO 레지스터들에 액세스할 수 있다. 예를 들어, 호스트는 대응하는 서브시스템을 웨이크하지 않고서 기능부들 중 다양한 기능부들을 판독/그에 기입할 수 있는데; 예컨대, RC(210)는 셀룰러 서브시스템(214A)을 웨이크하지 않고서 셀룰러 기능부(208A)에 대한 EP(212)에 질의할 수 있다. 유사하게, PCIe 링크는 서브시스템들의 전원을 차단하지 않고서 (예컨대, L0s, L1.1, 및 / 또는 L1.2와 같은) 보다 저전력 모드로 전이할 수 있다.

예시적인 다기능 EP(212)는 접속된 서브시스템들(214A, 214B 및 214C)로 그리고/또는 그로부터의 액세스를 지능적으로 관리하도록 추가적으로 요구될 수 있다. 예를 들어, 하나의 예시적인 실시예에서, 각각의 서브시스템은 그 자신의 동작 도메인들(예컨대, 전력 및 클록 도메인들) 내에서 별도로 주소지정 가능하다. 다시 말하면, PCIe 베이스 주소 레지스터(base address register, BAR)를 통해 노출되는 각각의 메모리 맵핑된 입력 출력(MMIO) 영역은 단일 서브시스템에 직접적으로 대응하고, 그에 대해 전적으로 사용된다. 각각의 BAR(이는 서브시스템에 대응함)은 백킹 메모리 주소들의 고유 세트를 참조하거나 그를 "가리킨다". 또한, 각각의 서브시스템은, 지정된 공간 또는 영역에만; 예컨대, 그 자신의 MMIO 영역 내의 MMIO 및 구성 공간에만 액세스할 수 있도록 "샌드박스(sandbox)"될 수 있다. 일부 변형예들에서, 이것은 하드웨어 보호(예컨대, 논리 주소 디코더들, 멀티플렉서들) 및/또는 소프트웨어 보호(예컨대, 주소 트랩들, 윈도잉(windowing))로 시행될 수 있다.

일부 실시예들에서, PCIe 도메인은 RC(210), PCIe 물리적 링크(206), 및 EP(212)에 대해 추가로 세분된다. 그러한 세분은, RC(210) 및/또는 EP(212)의 전원을 또한 차단하지 않고서 PCIe 링크(206)의 전원이 차단될 수 있게 한다. 예를 들어, 일부 변형예들은, 링크(206)가 딥 슬립(deep sleep) 상태에 있는 동안 EP(212)가 서브시스템들(214A, 214B, 214C)에 대응하는 각각의 기능부(208A, 208B, 208C)에 대한 제어 레지스터 공간들을 계속해서 업데이트하도록 할 수 있다. 다시 말하면, PCIe EP(212)에 상주하는 PCIe 구성 레지스터들 및 MMIO 레지스터들은, 임의의 백플레인 액세스 또는 서브시스템이 클록킹(clocking)되거나 전원이 켜질 것을 요구하지 않는다. 유사하게, 호스트 프로세서(216)는 링크(206) 또는 EP(212)를 인에이블하지 않고서 RC(210) 제어 레지스터들을 판독/그에 기입할 수 있다. 그러한 기능은, 일부 조건들 하에서, 전체 주변기기(204)가 상당한 전력 절감을 위해 비급전형 모드(예컨대, VDD 및 글로벌 클록들의 전원을 차단함)로 떨어지지만 호스트 프로세서가 RC(210) 제어 레지스터들에 대한 액세스를 요구하는 경우에 특히 유용하다. 통신 링크(206)의 활성화 시에, 호스트(및 주변기기)는 각각의 레지스터들에 대한 업데이트들을 모니터링하고 그에 응답할 수 있을 것이다.

소정 환경 하에서, 호스트는 (RC를 통해) EP 내의 대응하는 MMIO 영역에 기입함으로써 서브시스템을 웨이크할 수 있다. 예를 들어, 호스트가 슬리핑 서브시스템에 대응하는 특정 MMIO 영역 및/또는 연관된 구성 레지스터들에 액세스하는 경우, EP는 그 서브시스템을 "웨이크업"하고 그에 대한 인터럽트를 트리거할 것이다. 유사하게, 각각의 서브시스템은, 예컨대 기준 클록을 요구하지 않고/않거나 PCIe 링크 전력 상태를 교란시키지 않고서(예컨대, L0(302), L0s(304), L1(306), 및 L2(308)를 종료할 필요없음), PCIe 링크 상태에 상관없이 대응하는 MMIO 및 구성 영역들에서 그 자신의 샌드박스된 레지스터들의 콘텐츠를 판독 및 기입할 수 있다.

예시적인 동작 -

종래 기술의 PCIe 하드웨어 버스 구현예들에 대한 물리적 차이들에 더하여, 본 발명의 예시적인 실시예들은 독립적인 서브시스템 도메인 동작에 적합하도록 PCIe 버스 프로토콜들에 대한 동작 프레임워크를 특정한다.

루트 컴플렉스 및 엔드포인트 동작에 대한 예시적인 수정 -

본 명세서에 기술된 일부 개시된 실시예들은 RC, PCIe 링크, EP 및 임의의 부속 서브시스템들 사이에서와 같이 그들의 전력 및 클록 도메인들을 결합해제하였다. 동작을 개별 동작에 대한 상이한 도메인들로 분리시키는 것에 더하여, 그러한 경우의 엔티티들 각각은 다른 엔티티들의 현재 전력 상태를 교란시키지 않고서 다양한 공유된 데이터 구조들에 추가적으로 액세스할 수 있다. 예를 들어, RC는 서브시스템들 중 임의의 서브시스템을 웨이크할 필요없이 EP 내의 기능 레지스터들 및 메모리의 일부분들에 액세스할 수 있고; 유사하게, 각각의 서브시스템은 호스트 프로세서를 웨이크하지 않고서 RC 레지스터들에 액세스할 수 있다. 추가적으로, 각각의 서브시스템은 또한 PCIe 링크를 웨이크하지 않고서 그의 대응하는 엔드포인트, 기능부 및/또는 MMIO 레지스터들에 액세스할 수 있다. 본 명세서에 기술된 다양한 개선들이 독립적인 액세스를 허용한다는 것이 이해되지만, 당업자는, 기존의 기법들이 보존될 수 있고; 예를 들어, 연관된 서브시스템을 웨이크하는 액세스들이 또한, 예컨대 레거시(legacy) 기능 및/또는 기존의 사용 경우들을 지원하도록 허용될 수 있다는 것을 용이하게 이해할 것이다.

도 5는 본 발명에 따른 서브시스템 내의 레지스터들에 액세스하기 위한 하나의 예시적인 방법을 예시한다.

방법(500)의 단계(502)에서, 호스트 프로세서는 PCIe 기능부(예컨대, 도 2 내의 기능부들(208A, 208B, 208C)) 내의 메모리 위치에 액세스하는 명령어를 실행시킨다. 앞서 언급된 바와 같이, 메모리 맵핑된 액세스들은 기본적으로 메모리 위치로 (즉, 중간 포트-맵핑된 통신 포맷에 필요한 오버헤드를 요구하지 않고서) 옮겨진다. 액세스들의 일반적인 예들은 제한없이, 판독, 버스트 판독, 기입, 버스트 기입, 포스트된 기입(posted write), 및/또는 설정/클리어(clear)를 포함한다. 메모리 위치들은 임의의 대역내 주소지정 가능한 메모리 위치를 포함할 수 있는데, 이는 제한없이, 레지스터들, 메모리들, 및/또는 다른 데이터 구조들을 포함할 수 있다.

방법(500)의 단계(504)에서, 호스트 프로세서 액세스는 RC에 맵핑되는데, 이는 일부 구현예들에서, PCIe 링크를 트리거하여 L0 상태(302)로 웨이크한다. 일부 구현예들에서, PCIe 링크는 이미 L0 상태(302)에 존재할 수 있다. 기존의 종래 기술의 PCIe 동작에서, 루트 컴플렉스(RC) 및 엔드포인트(EP)는 3개의 신호들: 즉, PERST#(PCIe 리셋), WAKE#(웨이크 기능은 이후에 더욱 상세히 기술됨), 및 CLKREQ#(클록 요청)을 통해 링크 동작을 조정한다. PERST#은 RC에 의해 구동되고, (디어써트(de-assert)될 때) 전력이 안정적이고 링크가 인에이블될 수 있음을 나타내고; CLKREQ#은 때때로 EP에 의해 구동되고, (어써트될 때) 링크 클록에 대한 요청 및/또는 L1 서브상태들을 종료하라는 요청을 나타낸다. CLKREQ#은 또한 때때로 RC에 의해 구동되고, (어써트될 때) L1 상태 또는 서브상태들(예컨대, L1.1, L1.2)을 종료하라는 요청을 나타낸다. 일단 호스트가 (PERST#을 디어써트함으로써) 링크가 이용가능함을 나타내면, EP는 CLKREQ#을 어써트함으로써 호스트 및 RC를 웨이크할 수 있고; 그 후에, 트랜잭션들이 시작될 수 있다.

방법(500)의 단계(506)에서, 아직 활성이 아닌 경우, PCIe EP는 이에 응답하여 그의 저전력 상태를 종료한다. 내부적으로, 메모리 맵핑된 액세스들은 메모리 제어기, 버스 중재기, 또는 다른 액세스 제어 메커니즘을 통해 EP 내의 적절한 메모리 위치로 라우팅된다. 이전에 언급된 바와 같이, 서브시스템 액세스들은 EP 내의 특정 메모리 영역 및 배타적 메모리 영역을 할당받은 기능부들에 대응한다. 예를 들어, 메모리 액세스는, 예컨대 기능부 내의 레지스터의 액세스에 대응할 수 있다.

방법(500)의 단계(508)에서, PCIe EP 메모리 공간에 대한 액세스는 그 기능부에서 완료된다(필요에 따라 확인응답을 포함함). 일단 완료되면, PCIe 링크 및/또는 RC는 다음 트랜잭션으로 진행할 수 있다(즉, 현재 트랜잭션이 PCIe 링크를 멈추게 하지 않는다). 일부 변형예들에서, EP는 도 5에 기술된 레지스터 액세스와는 별도의 프로세스로서 서브시스템을 추가적으로 웨이크업할 수 있다. 예를 들어, PCIe EP는 대응하는 서브시스템을 웨이크하여, 예컨대 레지스터 액세스를 전파하거나 또는 레지스터 액세스에 기초하여 다른 태스크를 수행할 수 있다.

하나의 그러한 변형예에서, CLKREQ#에 대한 시그널링 프로토콜은 PCIe 링크를 그의 저전력 상태로부터 웨이크하고, 다른 서브시스템 도메인들을 저전력 상태들로부터 웨이크하지 않는다. 이후에 더욱 상세히 논의되는 바와 같이, 초기 버스 트랜잭션들은 EP를 부팅하기 위한 부트 이미지를 제공하고; 일단 EP가 성공적으로 부팅되면, 호스트 및 RC는 링크 안정성을 나타내기 위해 PERST#을 디어써트하여, 이에 의해 EP가 링크 훈련을 시작하는 것을 가능하게 할 수 있다. 서브시스템들이 별도의 도메인들 상에서 실행중이기 때문에, PERST#은 주변기기 내부의 임의의 서브시스템들의 상태에 영향을 미치지 않고서 반복적으로 리셋될 수 있다. 일단 링크가 초기화를 완료하면 서브시스템들에 대한 부트 이미지들이 전달된다.

또한, PERST#이 서브시스템 및/또는 호스트 동작으로부터 결합해제되기 때문에, PERST#은 호스트 및 다른 서브시스템들을 고려하지 않고서 임의의 전력 절감 상태로부터 PCIe 블록을 웨이크할 수 있다. 보다 직접적으로, PERST# 로직은 그가 PCIe 링크 외부의 기능에 영향을 미치지 않으므로 크게 단순화될 수 있다. 일부 예시적인 변형예들에서, PERST# 및/또는 CLKREQ# 로직은 소프트웨어 트랜잭션 오버헤드를 줄이고 강건성을 개선하기 위해 하드웨어 및/또는 단순화된 로직 내에서 완전히 구현될 수 있다.

본 명세서에 기술된 원리들에 부합하며 매우 다양한 상이한 다기능 버스 동작들에 적합한, PCIe 시그널링에 대한 다른 수정들 및/또는 추가들이 당업자에 의해 이루어질 수 있다. 예를 들어, 더 정교한 구현예들은 (예컨대, 범용 입력 출력(GPIO)들에 기초하여) 시그널링 로직을 추가하거나 제거할 수 있다. 또 다른 구현예들은 개별 PERST# 및/또는 CLKREQ# 라인들을 EP의 각각의 지원된 서브시스템에 대해 전용할 수 있다(예컨대, PERST# 및 CLKREQ#의 번들형 어레이를 생성함).

예시적인 서브시스템 전력 제어 -

일단 서브시스템들이 적절히 초기화되면, 서브시스템들은 그들의 각각의 도메인들에 대한 개별화된 전력 상태들을 구현한다. 주변기기 내에서 완전히 독립적인 전력 및 클록 도메인 동작을 지원하기 위해, 예시적인 서브시스템들 및 EP는, 예컨대 서브시스템의 전원을 켜거나 끄는 것, 또는 임의의 개수의 다른 중간 저전력 모드들(및/또는 그의 구배들)을 비롯한 도메인 동작을 제어하기 위한 구성 레지스터들을 포함하도록 수정된다.

앞서 언급된 바와 같이, 슬립 모드는 일반적으로 점진적으로 점점 더 많은 서브시스템 컴포넌트들의 전원을 차단하는 것에 의해 특성화된다. 예를 들어, 라이트 슬립(light sleep)은 단지 높은 재생률의 메모리들의 전원을 차단할 수 있고; 중간 정도의 슬립(moderate sleep)은 단기간 휘발성 메모리를 비휘발성 저장소에 저장하고, 휘발성 메모리들의 전원을 차단할 수 있다. 딥 슬립은 추가적으로 위상 고정 루프(PLL), 디지털 고정 루프(DLL), 및/또는 다른 클록킹 하드웨어의 전원을 차단할 수 있다. 웨이크업은 역순으로 전원이 꺼진 컴포넌트들의 전원을 켬으로써 수행된다(예컨대, 비휘발성 메모리들 이전에 클록들, 휘발성 메모리 이전에 비휘발성 메모리). 따라서, 저전력 모드들이 점차적으로 더 깊어질수록 더 긴 웨이크 레이턴시들을 생성할 수 있다. 본 발명의 내용들이 주어진다면, 또 다른 전력 시퀀싱 기법들이 당업자에 의해 용이하게 이해될 것이다.

하나의 그러한 구현예에서, 주변기기가 초기에 전원이 켜질 때 각각의 서브시스템의 구성 레지스터들은 디폴트 상태로 초기화되는 반면, 레지스터의 콘텐츠는 리셋 동안(예컨대, 주변기기 리셋들 및/또는 기능부 레벨 리셋들에 걸쳐) "고정형(sticky)"(또는 비휘발성)이다 다른 변형예들에서, 구성 레지스터들은 전원공급 시에 초기화되지 않을 수 있지만, 리셋 시퀀스 동안 초기화될 수 있다. 또 다른 구현예들은 리셋 시퀀스들의 하이브리드를 포함할 수 있다(예컨대, 주변기기 리셋이 구성 레지스터들을 초기화하지만 기능부 레벨 리셋은 초기화하지 않는다).

전술한 개시 내용은 주로 전력 및 클럭 도메인 동작을 위한 구성 레지스터들에 관한 것이지만, 발명의 내용들이 주어진다면, 구성 레지스터들이, 인터럽트들, 트랩된 에러들, 동작 모드들, 버전 정보, 파일 구조 정보, 및/또는 사실상 임의의 다른 동작 파라미터들을 전달하거나 구성하는 데 사용될 수 있다는 것이 당업자에 의해 용이하게 이해된다.

PCIe 링크 전력 제어

일부 경우에, 예시적인 호스트 및 RC는 (도 2에 예시되어 있는 것과 같이) 주변기기로부터 분리되어 있다. 내부 호스트 도메인 전력 제어는 전술된 주변기기 도메인 동작과 실질적으로 유사할 수 있고; 실제로, 호스트는 심지어 다수의 서브시스템들을 가질 수 있다. 그러나, PCIe 링크가 인에이블 및/또는 디스에이블되는 시기를 호스트가 제어하기 때문에, 주변기기가 이용불가능할 때 호스트가 주변기기에 신호를 보내려고 시도하지 않고, 그 반대로도 가능한(예컨대, 호스트가 이용불가능할 때 주변기기가 호스트에 신호를 보내려고 시도하지 않음) 것을 보장하기 위해 추가적인 링크 시퀀싱이 요구된다.

하나의 예시적인 실시예에서, 호스트가 비-응답 저전력 모드(예컨대, 호스트 프로세서가 슬립 상태에 상주하는 것과 같이 명령어들에 응답할 수 없는 경우에)로 전이하기 전에, 호스트는 각각의 서브시스템에 대해 프로토콜 핸드쉐이크(handshake)를 수행할 것이다. 각각의 서브시스템은 이어서 그들 내부의 고려사항들(예컨대, 현재 실행 및 메모리를 비휘발성 또는 고정형 메모리에 저장함)에 따라 그들의 대응하는 저전력 상태(앞에서 기술된 그러한 디바이스 전력 상태들)로 적절하게 전이할 준비를 할 수 있다. 그 후에, 서브시스템은 저전력 모드에 진입할 수 있다. 일단 호스트가 모든 서브시스템들에 대한 프로토콜 핸드쉐이크들을 완료하면, 호스트는 이어서 링크가 더 이상 이용가능하지 않음을 나타내는 PERST#을 어써트할 수 있다. 앞서 언급된 바와 같이, 본 발명의 예시적인 서브시스템들은 후속하는 PERST# 전이들 동안 웨이크업할 필요가 없다. 대안적인 구현예들은 서브시스템이 PCIe 인터럽트들을 수신하기 위해 "옵트인 (opt-in)"하도록 할 수 있다. 예를 들어, 서브시스템은 저전력 상태로 되기 전에 PERST#이 어써트될 때까지 대기할 수 있고; 그러한 기능은 PCIe 트랜잭션을 디버깅하거나 또는 달리 모니터링하는 데에 유용할 수 있다.

일단 호스트가 저전력 모드로 성공적으로 전이하면, 서브시스템들 중 임의의 서브시스템은 호스트에 WAKE# 신호를 어써트함으로써 PCIe 인터페이스를 통해 호스트를 웨이크할 수 있다. 하나의 그러한 구현예에서, WAKE# 신호는 모든 서브시스템들 사이에서 공유되고, 호스트 구동기는 전력 관리 이벤트(PME)를 통해 발신(originating) 서브시스템을 결정할 수 있다. 다른 구현예들은 WAKE# 이벤트를 트리거한 서브시스템을 나타내는 구성 레지스터 또는 MMIO 레지스터를 제공할 수 있다. 다른 구현예에서, 각각의 서브시스템은 전용 WAKE# GPIO(범용 입력 출력(GPIO))를 갖고, 호스트 구동기는 어써트된 WAKE# GPIO를 통해 발신 서브시스템을 결정할 수 있다.

WAKE# 시그널링을 수신하는 것에 응답하여, 호스트는 그의 슬립 상태를 종료하고 PERST#을 디어써트하여 그가 성공적으로 웨이크업하였음을 나타낸다. 호스트는 (전술된 LTSSM을 통해) PCIe 링크를 인에이블하고, 적절한 PCIe 기능부들을 열거한다. 일단 호스트가 링크를 성공적으로 열거하면, 활성 서브시스템(들)이 호스트와 데이터를 트랜잭션할 수 있다. 성공적인 링크 재확립은 호스트와 서브시스템 사이의 핸드쉐이크로 끝난다.

이제 도 6을 참조하면, 호스트 프로세서를 슬립 모드로 전이시키기 위한 하나의 예시적인 방법이 개시된다.

방법(600)의 단계(602)에서, 호스트 프로세서는 호스트가 딥 슬립 모드에 진입하고 있음을 서브시스템들 각각에게 통지한다. 각각의 서브시스템은 이어서 그가 또한 슬립으로 되어야 하는지 여부를 독립적으로 평가할 수 있다. 예를 들어, 서브시스템은 전력을 보존하기 위해 슬립 모드로 전이할 수 있는데, 이는 호스트가 슬립 상태인 동안 서브시스템들 중 임의의 서브시스템에 액세스하지 못할 것이기 때문이다. 그러나, 다른 경우에, 서브시스템은 호스트가 슬립 상태인 동안에도 다른 외부 네트워크 엔티티들과 통신할 필요가 있을 수 있고; 그러한 경우에, 서브시스템은 동작 모드로 유지될 수 있다. 일부 변형예들에서, 호스트만은 서브시스템이 슬립 상태로 되는 것을 방지하는 일방적인 힘을 갖고 있다. 대안적인 변형예들에서, 서브시스템들은 또한 호스트가 슬립 상태로 되는 것을 방지하는 힘을 가질 수 있다(예컨대, 전력 관리가 쌍방향이거나, 또는 소정 제한들의 적용을 받는 쌍방향인 경우). 일반적으로, 각각의 서브시스템에 대한 슬립 시퀀스는 다른 서브시스템들로부터 격리되지만; 당업자는 본 발명의 내용들이 주어진다면, 상호관련된 서브시스템 전력 관리를 동일하게 성공적으로 대체할 수 있다는 것이 이해된다.

방법(600)의 단계(604)에서, 호스트 프로세서는 PCIe 링크를 슬립으로 둘 수 있다. 이때, PCIe 링크는 L2 상태(308)로 전이하고, RC는 링크가 비활성임을 나타내는 PERST#을 어써트한다. 전형적으로, EP도 또한 슬립 상태일 것이지만; 호스트가 슬립 상태인 동안 동작가능하게 유지되는 서브시스템에 의해 EP가 웨이크 상태로 유지되거나 또는 독립적으로 웨이크 상태로 될 수 있다는 것이 용이하게 이해된다. 보다 직접적으로, PCIe 서브시스템이 리셋 상태로 유지되고 있더라도, 개별 서브시스템들 각각은, 예컨대 다양한 네트워크 관리 태스크들을 수행하기 위해 웨이크 상태로 유지되거나 또는 자율적으로 웨이크업할 수 있다. 예를 들어, 셀룰러 서브시스템은, 페이징 메시지들을 확인하고/하거나 네트워크 이동성 관리 엔티티들을 업데이트하기 위해 웨이크업할 수 있다. 유사하게, WLAN 서브시스템은 이용가능한 핫스팟(hot-spot) 액세스 및/또는 인근의 개방 네트워크들에 대해 주기적으로 확인할 수 있다.

단계(606)에서, 호스트는 그의 슬립 모드에 진입한다. 일부 경우에, 호스트는 휘발성 메모리를 비휘발성 메모리에 저장하고, 코어들 및/또는 다른 관련된 컴포넌트들(예컨대, 클록들, 전력 공급원, 메모리들, 및/또는 부속 컴포넌트들)에 대한 전력을 감소시킬 수 있다. 일부 경우에, 호스트는 계속해서, 예컨대 웨이크 상태가 발생하는 시기를 모니터링하거나 또는 감소된 전력 모드(예컨대, 보다 느린 클록들, 감소된 메모리들 또는 코어들을 가짐)에서 보다 낮은 우선순위 태스크들을 수행할 수 있다. 예를 들어, 프로세서는 대기 상태에 대해 RC를 확인하고/하거나 웨이크 타이머를 추적하기에 충분한 코어에만 급전할 수 있다. 다른 상황에서, 호스트는 완전히 정지하고, 다른 로직에 의존하여 웨이크를 트리거하는데; 예를 들어, PCIe 링크 RC는 별도의 도메인 상에 있을 수 있고, 호스트 웨이크를 트리거할 수 있다.

후속하여, 그 후에, 호스트는, 예컨대 타이머 만료, 인터럽트 서비스, (WAKE#을 통한) 주변기기 서브시스템 액세스, 사용자 액션, 및/또는 임의의 개수의 다른 호스트 서비스들로 인해 슬립 모드를 종료할 수 있다(단계(608)). 호스트는 PCIe LTSSM에 따라 PCIe 링크(아직 활성이 아닌 경우)를 웨이크한다(상기 도 3의 논의 참조).

단계(610)에서, 호스트는 다기능 주변기기의 적어도 하나의 기능부를 열거한다. 일부 경우에, 호스트는 모든 기능부들을 열거할 수 있다. 다른 경우에, 호스트는 활성 기능부들만을 열거할 수 있다. 또 다른 경우에, 호스트는 웨이크 상태를 트리거한 기능부(들)만을 열거할 수 있다.

일부 경우에, 호스트는 선택적으로 단계(612)에서 기능부들에 대응하는 열거된 서브시스템들을 동작 상태로 전이시킨다.

예시적인 부트 시퀀스 ―

기존의 PCIe 구현예들은 호스트가 초기에 그의 부속 주변기기들을 부팅하는 단순한 부트 시퀀스를 갖고 있다. 본 발명의 다양한 실시예들은 주변기기 EP를 부팅하고, 이어서 서브시스템들 각각을 개별적으로 부팅할 것이다. 하나의 예시적인 실시예에서, 일단 호스트가 주변기기 EP를 성공적으로 부팅하면, 호스트는 서브시스템들을 발견하고 순차적으로 부팅한다(예컨대, 먼저 셀룰러 서브시스템, 이어서 WLAN 서브시스템, 그리고 마지막으로 PAN 서브시스템). 일부 경우에, 소정 서브시스템들은, 그들이, 예를 들어 애플리케이션 소프트웨어에 대해 필요하지 않은 경우에 부트 프로세스로부터 프루닝될 수 있다. 예를 들어, 사용자가 PAN 능력을 디스에이블한 경우, PAN 서브시스템은 부트 시퀀스로부터 프루닝된다.

보다 복잡한 실시예들에서, 개별 도메인 제어의 입도(granularity)는, 예컨대 전력 소비를 감소시키고/시키거나 전체 부트 시간을 단축시키기 위해 실행 시간 고려사항들에 지능적으로 기초하여 호스트가 주변기기의 서브시스템들에 급전하고/하거나 그들을 부팅할 수 있게 한다. 예를 들어, 현재 사용자 애플리케이션들에 대한 네트워크 액세스를 요구하지 않는 모바일 디바이스는 WLAN 서브시스템의 전원이 차단된 상태를 유지하면서 호스트 프로세서 및 셀룰러 서브시스템만을 부팅할 수 있다. 이러한 방식으로, 셀룰러 서브시스템은 사용자에 대한 최소한의 간섭으로 백그라운드에서 그의 이동성 관리 시퀀스들(예컨대, 등록, 인증 등)을 수행할 수 있고, WLAN 서브시스템이 사용될 필요가 있을 때까지 부팅되지 않기 때문에 전체 부트 시간이 단축된다.

부트 시퀀스의 하나의 예시적인 구현예에서, 주변기기가 초기에 급전될 때, PCIe EP만이 급전된다. 다른 서브시스템들은 명시적으로 전원이 켜질 때까지 전원이 꺼진 상태로 유지될 수 있다. 초기 부트 시퀀스 동안, EP는 PCIe 서브시스템 및 PCIe 기능부들 중 각각 하나를 열거할 수 있다. 예를 들어, 초기 부트 시퀀스 동안, EP는 각각의 서브시스템의 PCIe BAR 및 대응하는 구성 공간 및 MMIO 영역을 초기화할 수 있다. 앞서 언급된 바와 같이, 일부 변형예들에서, 서브시스템의 BAR, 구성 레지스터들 및 MMIO는 대응하는 서브시스템의 전력 상태에 상관없이 호스트에 의해 액세스될 수 있다.

이어서, PCIe 열거가 다양한 서브시스템들에 대해 선택적으로 진행될 수 있다. 주어진 서브시스템의 구성 공간의 PCIe 열거 동안, 호스트는 서브시스템에 대한 전력을 인에이블하도록 구성 레지스터들에 기입한다. 서브시스템들의 성공적인 초기화 이후에, 호스트는 버스 마스터 인에이블(BME) 비트를 설정하여, PCIe 버스를 통해 호스트 메모리에 액세스하도록 대응하는 기능부를 인에이블할 수 있다. 일단 호스트가 PCIe 링크를 제어하면, 호스트는 부트 이미지의 로딩 및/또는 실행을 포함할 수 있는 특정 서브시스템에 대한 부트 프로세스를 개시할 수 있다. 각각의 서브시스템은 개별적으로 부팅될 수 있고, 각각의 서브시스템의 부트 프로세스들은 임의의 다른 서브시스템의 부트 프로세스로부터 독립적일 수 있고, 그를 차단하거나 그에 영향을 미치지 않는다.

부록 A는 호스트에 의해 개시된 슬립, 급전 및 리셋 이벤트들에 응답하여 서브시스템의 예시적인 거동을 기술하는 표들을 제공한다. 거기에 기술된 바와 같이, 특정 이벤트 동안 주변기기의 부트 스테이지는 지정된 거동을 야기한다.

다기능 주변기기들을 부트 시퀀싱하기 위한 또 다른 방식들은, 본 발명의 내용들이 주어진다면, 당업자에 의해 용이하게 이해될 것이다.

예시적인 리셋 시퀀스 ―

각각의 도메인은 예시적인 실시예에서 개별적으로 리셋 가능하다. 멀티-리셋 방식은 일부 변형예들에서 구성 파라미터들을 다시 초기화할 수 있는 반면, 다른 변형예들에서는 리셋이 구성 파라미터들을 다시 초기화할 수 없다. 또 다른 하이브리드 시스템들은, 리셋 가능한 구성 파라미터 및 고정형 구성 파라미터 양쪽 모두를 가질 수 있다. 또 다른 경우에, 리셋들은, 예컨대 계층(hierarchical tier)(즉, 상위 계층 리셋이 그의 하위 계층들을 리셋할 수 있음), 기능적 그룹화, 구성 가능한 그룹화, 및/또는 다른 그룹화 방법론에 기초하여 결합될 수 있다.

하나의 예시적인 실시예에서, 개별 도메인에 대응하는 각각의 PCIe 기능 블록(서브시스템이 아닌, 엔드포인트 내에 위치됨)은 또한 개별적으로 리셋 가능할 수 있다. 하나의 그러한 경우에, 기능부 레벨 리셋은 기능 블록뿐만 아니라 결합된 서브시스템을 리셋할 것이다. 대안적으로, 기능부 레벨 리셋은 결합된 서브시스템을 리셋하지 않을 것이다. 또 다른 구현예들에서, 기능 블록 자체도 또한 그의 대응하는 서브시스템이 리셋될 때 자동으로 리셋된다.

일 실시예에서, 기능 블록을 리셋함으로써 서브시스템을 그의 초기 부트 스테이지로 강제할 수 있다. 일부 변형예들에서, 서브시스템은 미리결정된 시간 내에 리셋될 수 있다. 일부 경우에, 리셋은 "하드(hard)"이고(즉, 현재 실행 상태 및/또는 전력 상태에 상관없이 리셋이 강제됨); 다른 경우에, 리셋은 "소프트(soft)"이다(즉, 예를 들어 현재 실행 컨텍스트가 복구되도록 할 수 있는 특정 시퀀스에 따라 리셋이 수행된다).

기능부 레벨 리셋이 트리거될 때, 기능 블록은 서브시스템의 구성 공간 및 MMIO의 콘텐츠를 자동으로 리셋할 수 있다. 일부 경우에, 소정 비트들 또는 데이터 구조들은 "고정형"이고, 그들의 콘텐츠는 리셋 이후에 지속될 수 있다. 그러한 고정형 데이터 구조들의 일반적인 예들은, 제한없이, 서브시스템에 대한 전력을 제어하는 데 사용되는 구성 레지스터들을 포함할 수 있다. 다른 방식들은 비-고정형 데이터 구조들, 또는 고정형 비트와 비-고정형 비트의 혼합을 사용할 수 있다.

앞서 언급된 바와 같이, 호스트는 동작 동안 임의의 다른 기능부 및/또는 서브시스템의 동작 상태에 영향을 미치지 않고서 각각의 기능부 및/또는 서브시스템의 리셋을 개시할 수 있다. 또한, 본 발명의 다양한 실시예들은 추가적으로 전체 주변기기 칩세트를 리셋하는 주변기기 전체의(peripheral-wide) 리셋을 지원한다. 예를 들어, 일단 호스트가 주변기기 리셋을 트리거하면, 주변기기 리셋 시에 전원이 켜져 있는 임의의 서브시스템이 리셋되고, 주변기기 리셋 시에 전원이 꺼져 있는 임의의 서브시스템이 전원이 꺼진 상태로 유지된다. 주변기기 리셋 이후에, 호스트는 PCIe 기능부들을 열거하고, 앞에서 기술된 바와 같이 서브시스템들을 부팅할 수 있다(예시적인 부트 시퀀스 참조).

도 7은 기능부 레벨 리셋(FLR) 동작을 위한 하나의 예시적인 방법을 도시한다. 하나의 예시적인 실시예에서, 각각의 FLR은 대역내 리셋(예컨대, 전용 레지스터, MMIO 주소, 또는 다른 주소지정 가능한 메모리 위치에 상주함)이다. 보다 일반적으로, FLR 기능은 호스트에 의해 발행될 수 있고, EP 내에 위치된 특정 기능부에 의해 관리될 수 있다.

방법(700)의 단계(702)에서, 호스트는 주변기기의 서브시스템에 기능부 레벨 리셋을 발행한다.

이에 응답하여, 주변기기의 서브시스템은 리셋된다(단계(704)). 예시적인 실시예에서, 기능부 레벨 리셋들은 기능부 및/또는 서브시스템의 전력 상태에 상관없이 처리될 수 있다. 당업자는, 본 발명의 내용들이 주어진다면, 다른 실시예들이 (예컨대, 휘발성 메모리 콘텐츠를 적절하게 저장하고/하거나 프로세스들을 종료하기 위해) 리셋 동안 현재 전력 상태를 고려할 수 있다는 것을 용이하게 이해할 것이다.

일부 경우에, 서브시스템은 도 7의 리셋 시퀀스에 추가하여 또는 그 대신에 전원이 차단될 수 있다. 예를 들어, 호스트 프로세서는 기능부 레벨 전원 끄기 명령어를 발행할 수 있고, 이에 응답하여 대응하는 서브시스템은 전원이 차단될 수 있다.

하나의 그러한 구현예에서, 주변기기 리셋은 모든 기능부 레벨 리셋들을 추진하여 주변기기 리셋을 달성한다. 따라서, 주변기기 리셋 동안에도 기능부 레벨 고정형 비트들이 보존된다. 다른 구현예들에서, 주변기기 리셋은 기능부 레벨 리셋들과는 별개인 전용 리셋 메커니즘일 수 있다. 전용 주변기기 리셋 메카니즘은, 예를 들어 기능부 레벨 리셋을 위한 고정형 비트들이 클리어되어야 하는 경우에 유용할 수 있다. 예를 들어, 도 8은 주변기기 레벨 리셋 동작을 위한 하나의 예시적인 방법을 도시한다. 하나의 예시적인 실시예에서, 주변기기 리셋은 하드웨어 리셋이고; 예를 들어, 주변기기 레벨 리셋은 범용 입력/출력(GPIO) 또는 다른 전용 하드웨어 시그널링으로 구현될 수 있다.

간략히 말하면, 기존의 주변기기 리셋 방식들은 리셋 후 서브시스템 상태를 보존하지 않는다. 예를 들어, 하나의 그러한 종래 기술의 리셋 방식은 PCIe 링크를 끄고, 주변기기를 리셋하고, PCIe 링크를 다시 켜고, 접속된 서브시스템들 각각을 다시 초기화할 수 있다. 대조적으로, 본 발명의 다양한 실시예들은 서브시스템 상태를 유지하는데; 예컨대, 리셋 이전에 슬립 또는 오프였던 서브시스템들은 슬립 또는 오프로 유지되고, 리셋 이전에 활성이었던 서브시스템들은 활성으로 유지된다.

방법(800)의 단계(802)에서, 주변기기 PCIe 링크는 전원이 차단될 수 있고/있거나 PERST#이 어써트될 수 있다.

도 8에 도시된 바와 같이, 호스트는 방법(800)의 단계(804)에서 주변기기로 주변기기 레벨 리셋을 발행할 수 있다. 주변기기 EP, 기능부들 및 대응하는 서브시스템들을 포함하는 전체 주변기기가 리셋된다.

리셋 이후에, 서브시스템들 각각은 그들의 판독 전용 메모리(ROM)의 콘텐츠를 실행하고 그에 따라 초기화할 수 있다(단계(806)). 일부 실시예들에서, ROM 콘텐츠는, 예컨대 유휴 스핀 루프(idle spin loop)들로 제한될 수 있다. ROM이 없는 환경들에서, 서브시스템의 프로세서는 유효 명령어들을 갖고 있지 않을 수 있는 휘발성 메모리에서 실행할 수 있고; 그러한 조건들 하에서, 프로세서는 호스트에 의해 그렇게 하도록 트리거될 때까지 실행을 시작하지 않는다.

그 후에, 호스트는 PCIe 포트에 급전할 수 있고, PCIe 링크는 그의 LTSSM의 동작 링크 상태(예컨대, L0 상태)로 전이할 수 있다.

단계(808)에서, 호스트는 주변기기의 모든 기능부들을 열거하고, 각각의 서브시스템을 동작 상태로 전이할 수 있다. 앞서 언급된 바와 같이, 호스트는 서브시스템 상태를 유지하는데; 다시 말하면, 리셋 이전에 슬립 또는 오프였던 서브시스템들은 슬립 또는 오프로 유지되고, 리셋 이전에 활성이었던 서브시스템들은 활성으로 유지된다. 그 후에, 부트 절차들이 전술된 프로세스들에 따라 진행될 수 있다.

다기능 주변기기들을 리셋하기 위한 또 다른 방식들은, 본 발명의 내용들이 주어진다면, 당업자에 의해 용이하게 이해될 것이다.

당업자는 많은 소프트웨어 디버깅 기법들이 성공적인 에러 트랩핑에 의존한다는 것을 용이하게 이해할 것이다. 일부 실시예들에서, 일단 예상치 못한 소프트웨어 에러가 검출되면, 프로세서는 추가 동작을 중단하고 루핑 명령어("스핀")를 실행하는데; 이러한 방식으로, 호스트는 디버깅을 위해 메모리 콘텐츠를 인출할 수 있다. 다른 실시예에서, 일단 예상치 못한 소프트웨어 에러가 검출되면, 서브시스템이 재부팅될 수 있다. 메모리의 콘텐츠는 리셋 조건들에 걸쳐 보존되므로 액세스 가능하다. 또 다른 실시예들에서, 별도의 하드웨어 워치독(watchdog) 타이머가 각각의 서브시스템에 대해 사용될 수 있다. 간략히 말하면, 하드웨어 워치독은 소프트웨어가 올바르게 실행 중인 한 소프트웨어에 의해 주기적으로 리셋되고; 워치독 타이머가 만료되면, 그것은, 예컨대 잘못된 소프트웨어 액세스 또는 다른 버스 오작동에 의해 소프트웨어가 손상되었다는 가정 하에서 리셋을 강제한다. 각각의 하드웨어 워치독은 대응하는 서브시스템만을 리셋하고, 다른 서브시스템들에는 영향을 미치지 않는다.

부록 B는 에러 트랩핑 및/또는 바람직한 처리 메커니즘들을 수행할 때 서브시스템의 예시적인 거동을 기술하는 표들을 제공한다.

서브시스템이 리셋되면 사용될 수 있는 일반적인 디버깅 명령어들의 다른 예들은, 레지스터 스냅샷들(예컨대, 서브시스템이 모든 서브시스템 레지스터들의 스냅샷을 수집하도록 강제될 수 있음), 및 코어 덤프들(예컨대, 서브시스템 메모리의 스냅샷을 수집하기 위해 서브시스템이 어보트 핸들러(abort handler) 내로 강제될 수 있음)을 포함한다.

본 발명의 소정의 실시예들이 방법의 단계들의 구체적인 순서와 관련하여 기술되어 있지만, 이들 설명은 본 명세서에 기술된 광의의 방법들을 예시한 것에 불과하고 특정의 응용에서 요구되는 바에 따라 수정될 수 있다는 것이 인식될 것이다. 소정 단계들이 소정의 상황들 하에서 불필요하거나 선택적인 것으로 처리될 수 있다. 또한, 소정 단계들 또는 기능이 개시된 실시예들에 부가되거나, 또는 둘 이상의 단계들의 수행의 순서가 바뀔 수 있다. 모든 이러한 변형들은 본 개시 내용 내에 포함되고 본 출원에 의해 청구되는 것으로 고려된다.

상기한 상세한 설명이 다양한 실시예들에 적용되는 신규의 특징들을 도시하고, 기술하고, 지적하고 있지만, 예시된 디바이스 또는 프로세스의 형태 및 상세에서의 다양한 생략들, 치환들 및 변경들이 본 명세서에 기술되어 있는 원리들을 벗어나지 않고 당업자에 의해 행해질 수 있다는 것을 잘 알 것이다. 전술한 설명은 현재 고려된 최상의 모드의 것이다. 이러한 설명은 결코 제한적인 것으로 의도되지 않으며, 오히려 본 명세서에서 기재된 일반적인 원리들을 예시하는 것으로서 취해져야 한다. 본 발명의 범주는 청구범위를 참조하여 결정되어야 한다.

부록 A

Figure 112017110834740-pat00002

부록 B

Figure 112017110834740-pat00003

Claims (25)

  1. 호스트 프로세서 장치 및 주변기기 프로세서 장치를 포함하는 전자 디바이스 내의 복수의 서브시스템들에 대한 개별화된 전력 제어를 제공하기 위한 방법으로서,
    상기 주변기기 프로세서 장치는 상기 복수의 서브시스템들을 포함하고,
    상기 방법은:
    상기 복수의 서브시스템들과 상기 호스트 프로세서 장치 사이에 메모리 맵핑된 인터페이스를 확립하는 단계 - 상기 복수의 서브시스템들 각각은 대응하는 전력 관리 상태 기계에 의해 특성화됨 -; 및
    상기 복수의 서브시스템들 중 하나의 서브시스템에 대해, 상기 대응하는 전력 관리 상태 기계로 하여금 상기 복수의 서브시스템들 중 다른 서브시스템들로부터 독립적으로 슬립 상태로부터 활성 상태로 전이하게 하는 단계를 포함하고,
    상기 슬립 상태로부터 상기 활성 상태로의 상기 전이는 상기 복수의 서브시스템들 중 상기 하나의 서브시스템에 의한 활성 모드 요청의 발행을 통해 개시되는, 방법.
  2. 제1항에 있어서, 상기 복수의 서브시스템들 중 상기 하나의 서브시스템의 상기 슬립 상태로부터 상기 활성 상태로의 전이는 상기 복수의 서브시스템들 중 다른 서브시스템들을 슬립 상태로부터 활성 상태로 전이시키지 않고서 발생할 수 있는, 방법.
  3. 제1항에 있어서, 상기 복수의 서브시스템들 중 하나의 서브시스템을 상기 복수의 서브시스템들 중 다른 서브시스템들에 독립적으로 다양한 전력-보존 모드들로 전이시키는 단계를 추가로 포함하는, 방법.
  4. 제3항에 있어서, 상기 호스트 프로세서 장치를 통해 상기 복수의 서브시스템들에 대한 독립적인 전력 제어를 발휘하는 단계를 추가로 포함하는, 방법.
  5. 제4항에 있어서, 상기 복수의 서브시스템들에 대한 상기 독립적인 전력 제어를 발휘하는 단계는 상기 복수의 서브시스템들 중 제1 서브시스템을 활성 상태로 유지하는 단계를 추가로 포함하는, 방법.
  6. 제5항에 있어서, 상기 복수의 서브시스템들에 대한 상기 독립적인 전력 제어를 발휘하는 단계는, 상기 복수의 서브시스템들 중 상기 제1 서브시스템을 상기 활성 상태로 유지하는 동안, 상기 복수의 서브시스템들 중 제2 서브시스템을 슬립 상태로 전이시키는 단계를 추가로 포함하는, 방법.
  7. 제1항에 있어서, 상기 복수의 서브시스템들 중 다른 서브시스템들로부터 독립적으로 상기 복수의 서브시스템들 중 상기 하나의 서브시스템에 대한 전력 시퀀스를 개시하는 단계를 추가로 포함하는, 방법.
  8. 컴퓨터화된 장치로서,
    루트 컴플렉스(root complex)를 포함하는 호스트 프로세싱 장치;
    엔드포인트(endpoint) 장치를 포함하는 주변기기 장치 - 상기 엔드포인트 장치는 복수의 기능부들을 포함하고, 상기 복수의 기능부들 각각은 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있고, 상기 복수의 서브시스템들 각각은 대응하는 전력 관리 상태 기계의 사용을 통한 상기 복수의 서브시스템들 중 다른 서브시스템들과는 별도의 전력 관리를 포함함 -; 및
    상기 루트 컴플렉스와 상기 엔드포인트 장치 사이의 통신 링크를 포함하고,
    상기 복수의 서브시스템들 중 주어진 서브시스템에 대해, 상기 대응하는 전력 관리 상태 기계는 상기 복수의 서브시스템들 중 다른 서브시스템들과 독립적으로 슬립 상태로부터 활성 상태로 전이하도록 구성되고, 상기 슬립 상태로부터 상기 활성 상태로의 상기 전이는 상기 복수의 서브시스템들 중 상기 주어진 서브시스템에 의한 활성 모드 요청의 발행을 통해 개시되는, 컴퓨터화된 장치.
  9. 삭제
  10. 제8항에 있어서, 상기 호스트 프로세싱 장치는 상기 복수의 서브시스템들과는 별도의 호스트 전력 관리를 포함하고,
    상기 통신 링크는 상기 호스트 프로세싱 장치 및 상기 복수의 서브시스템들과는 별도의 링크 전력 관리를 포함하는, 컴퓨터화된 장치.
  11. 제8항에 있어서, 상기 복수의 서브시스템들 중 하나의 서브시스템은 무선 로컬 영역 네트워크(WLAN) 서브시스템을 포함하고, 상기 WLAN 서브시스템은 상기 복수의 서브시스템들 중 다른 서브시스템들의 웨이크업(wake-up)을 필요로 하지 않고서 인근 비콘(beacon)들에 대해 스캔할 수 있는, 컴퓨터화된 장치.
  12. 제11항에 있어서, 상기 WLAN 서브시스템은 상기 통신 링크 또는 상기 호스트 프로세싱 장치의 웨이크업을 필요로 하지 않고서 상기 인근 비콘들에 대해 스캔할 수 있는, 컴퓨터화된 장치.
  13. 제8항에 있어서, 상기 복수의 서브시스템들 중 하나의 서브시스템은 셀룰러 서브시스템을 포함하고, 상기 셀룰러 서브시스템은 상기 서브시스템들 중 다른 서브시스템들, 상기 호스트 프로세싱 장치, 및 상기 통신 링크 중 하나 이상의 전원을 켜지 않고서 모바일 관리 업데이트 동안 셀룰러 네트워크와 접속하도록 구성되는, 컴퓨터화된 장치.
  14. 제8항에 있어서, 상기 복수의 서브시스템들 중 하나의 서브시스템의 상기 대응하는 독립적인 전력 관리 상태 기계는 추가로,
    활성 상태에 있는 동안 슬립 모드 요청을 상기 호스트 프로세싱 장치로 전송하도록;
    상기 슬립 모드 요청을 전송하는 것에 후속하여 슬립 대기 상태에 진입하도록;
    주변기기 슬립 제어 레지스터에 대한 업데이트를 검출하도록 - 상기 업데이트는 상기 호스트 프로세싱 장치에 의해 개시됨 -; 그리고
    상기 주변기기 슬립 제어 레지스터에 대한 상기 검출된 업데이트에 응답하여 상기 슬립 대기 상태로부터 슬립 상태에 진입하도록 구성되는, 컴퓨터화된 장치.
  15. 제14항에 있어서, 상기 복수의 서브시스템들 중 상기 하나의 서브시스템의 상기 대응하는 독립적인 전력 관리 상태 기계는 추가로,
    상기 호스트 프로세싱 장치가 임의의 보류중인 데이터 트랜잭션(pending data transaction)들을 갖는지 여부를 확인하도록;
    보류중인 데이터 트랜잭션들이 있는 경우, 상기 대응하는 독립적인 전력 관리 상태 기계를 상기 슬립 상태로부터 상기 활성 상태로 전이시키기 위해 웨이크업 프로세스를 개시하도록;
    활성 대기 상태에 진입하도록; 그리고
    상기 호스트 프로세싱 장치에 의한 상기 주변기기 슬립 제어 레지스터에 대한 업데이트의 검출 시에 상기 활성 대기 상태로부터 상기 활성 상태에 진입하도록 구성되는, 컴퓨터화된 장치.
  16. 제8항에 있어서, 상기 복수의 서브시스템들 중 하나의 서브시스템의 상기 대응하는 독립적인 전력 관리 상태 기계는 추가로,
    상기 호스트 프로세싱 장치로부터 호스트 진입 슬립 메시지(host enter sleep message)를 수신하도록;
    상기 수신된 호스트 진입 슬립 메시지에 응답하여 상기 복수의 서브시스템들 중 상기 하나의 서브시스템의 상기 대응하는 독립적인 전력 관리 상태 기계를 중지하도록; 그리고
    상기 대응하는 독립적인 전력 관리 상태 기계의 중지에 후속하여 보류중인 전송 서술자들 모두를 프로세싱하도록 구성되는, 컴퓨터화된 장치.
  17. 제16항에 있어서, 상기 대응하는 독립적인 전력 관리 상태 기계는 추가로, 상기 보류중인 전송 서술자들 모두를 프로세싱하는 것에 후속하여 활성 상태로부터 슬립 상태로 전이하도록 구성되는, 컴퓨터화된 장치.
  18. 제16항에 있어서, 상기 복수의 서브시스템들 중 상기 하나의 서브시스템의 상기 대응하는 독립적인 전력 관리 상태 기계는 추가로, 상기 호스트 프로세싱 장치에 대한 웨이크업 요청의 발행을 통해 상기 호스트 프로세싱 장치와의 통신을 재확립하도록 구성되는, 컴퓨터화된 장치.
  19. 전자 디바이스에서 사용하기 위한 주변기기 프로세싱 장치로서,
    엔드포인트 장치를 포함하고, 상기 엔드포인트 장치는 복수의 기능부들을 포함하고, 상기 복수의 기능부들 각각은 상기 주변기기 프로세싱 장치에 대한 복수의 서브시스템들의 각각의 서브시스템과 결합되어 있고,
    상기 복수의 서브시스템들 각각은 상기 복수의 서브시스템들 중 다른 서브시스템들에 대해 독립적인 전력 관리 상태 기계를 포함하고, 상기 독립적인 전력 관리 상태 기계들 중 하나에서의 상태들 사이의 전이는 상기 복수의 서브시스템들의 각각의 서브시스템에 의해 개시되는, 주변기기 프로세싱 장치.
  20. 제19항에 있어서, 상기 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로,
    활성 상태에 있는 동안 슬립 모드 요청을 호스트 프로세싱 장치로 전송하도록;
    상기 슬립 모드 요청을 전송하는 것에 후속하여 슬립 대기 상태에 진입하도록;
    주변기기 슬립 제어 레지스터에 대한 업데이트를 검출하도록 - 상기 업데이트는 상기 호스트 프로세싱 장치에 의해 개시됨 -; 그리고
    상기 주변기기 슬립 제어 레지스터에 대한 상기 검출된 업데이트에 응답하여 상기 슬립 대기 상태로부터 슬립 상태에 진입하도록 구성되는, 주변기기 프로세싱 장치.
  21. 제20항에 있어서, 상기 복수의 서브시스템들 중 상기 제1 서브시스템의 상기 제1 독립적인 전력 관리 상태 기계는 추가로,
    상기 호스트 프로세싱 장치가 임의의 보류중인 데이터 트랜잭션들을 갖는지 여부를 확인하도록;
    보류중인 데이터 트랜잭션들이 있는 경우, 상기 제1 독립적인 전력 관리 상태 기계를 상기 슬립 상태로부터 상기 활성 상태로 전이시키기 위해 웨이크업 프로세스를 개시하도록;
    활성 대기 상태에 진입하도록; 그리고
    상기 호스트 프로세싱 장치에 의한 상기 주변기기 슬립 제어 레지스터에 대한 업데이트의 검출 시에 상기 활성 대기 상태로부터 상기 활성 상태에 진입하도록 구성되는, 주변기기 프로세싱 장치.
  22. 제19항에 있어서, 상기 복수의 서브시스템들 중 제1 서브시스템의 제1 독립적인 전력 관리 상태 기계는 추가로,
    호스트 프로세싱 장치로부터 호스트 진입 슬립 메시지를 수신하도록;
    상기 수신된 호스트 진입 슬립 메시지에 응답하여 상기 복수의 서브시스템들 중 상기 제1 서브시스템의 상기 제1 독립적인 전력 관리 상태 기계를 중지하도록; 그리고
    상기 제1 독립적인 전력 관리 상태 기계의 중지에 후속하여 보류중인 전송 서술자들 모두를 프로세싱하도록 구성되는, 주변기기 프로세싱 장치.
  23. 제22항에 있어서, 상기 복수의 서브시스템들 중 다른 서브시스템들은 추가로 상기 호스트 프로세싱 장치로부터 상기 호스트 진입 슬립 메시지를 수신하도록 구성되는, 주변기기 프로세싱 장치.
  24. 제22항에 있어서, 상기 제1 독립적인 전력 관리 상태 기계는 추가로, 상기 보류중인 전송 서술자들 모두를 프로세싱하는 것에 후속하여 활성 상태로부터 슬립 상태로 전이하도록 구성되는, 주변기기 프로세싱 장치.
  25. 제22항에 있어서, 상기 복수의 서브시스템들 중 상기 제1 서브시스템의 상기 제1 독립적인 전력 관리 상태 기계는 추가로, 상기 호스트 프로세싱 장치에 대한 웨이크업 요청의 발행을 통해 상기 호스트 프로세싱 장치와의 통신을 재확립하도록 구성되는, 주변기기 프로세싱 장치.
KR1020170148054A 2016-11-10 2017-11-08 주변기기 서브시스템에 대한 개별화된 전력 제어를 제공하기 위한 방법 및 장치 KR102039796B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US201662420143P true 2016-11-10 2016-11-10
US62/420,143 2016-11-10
US15/647,063 2017-07-11
US15/647,063 US20180129269A1 (en) 2016-11-10 2017-07-11 Methods and apparatus for providing individualized power control for peripheral sub-systems

Publications (2)

Publication Number Publication Date
KR20180052539A KR20180052539A (ko) 2018-05-18
KR102039796B1 true KR102039796B1 (ko) 2019-11-01

Family

ID=60327086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170148054A KR102039796B1 (ko) 2016-11-10 2017-11-08 주변기기 서브시스템에 대한 개별화된 전력 제어를 제공하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US20180129269A1 (ko)
EP (1) EP3321815A1 (ko)
JP (1) JP6487988B2 (ko)
KR (1) KR102039796B1 (ko)
CN (1) CN108073421A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892084B2 (en) 2013-12-10 2018-02-13 Apple Inc. Methods and apparatus for virtual channel allocation via a high speed bus interface
US10459674B2 (en) 2013-12-10 2019-10-29 Apple Inc. Apparatus and methods for packing and transporting raw data
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9798377B2 (en) 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10523867B2 (en) 2016-06-10 2019-12-31 Apple Inc. Methods and apparatus for multi-lane mapping, link training and lower power modes for a high speed bus interface
US10591976B2 (en) 2016-11-10 2020-03-17 Apple Inc. Methods and apparatus for providing peripheral sub-system stability
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10558257B2 (en) * 2018-01-31 2020-02-11 Dell Products L.P. Systems and methods for exiting low-power states
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077816A1 (en) 2006-09-27 2008-03-27 Intel Corporation Subsystem Power Management
US20120084483A1 (en) 2010-09-30 2012-04-05 Agarwala Sanjive Die expansion bus
JP2012108677A (ja) * 2010-11-16 2012-06-07 Canon Inc データ転送装置及びその制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914649B2 (en) * 2009-02-09 2014-12-16 Hewlett-Packard Development Company, L.P. Bios controlled peripheral device port power
GB2472050B (en) * 2009-07-22 2013-06-19 Wolfson Microelectronics Plc Power management apparatus and methods
KR101603287B1 (ko) * 2010-05-17 2016-03-14 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
US9471121B2 (en) * 2011-11-14 2016-10-18 Texas Instruments Incorporated Microprocessor based power management system architecture
US9141162B2 (en) * 2012-10-05 2015-09-22 Intel Corporation Apparatus, system and method for gated power delivery to an I/O interface
US9026820B2 (en) * 2012-12-29 2015-05-05 Intel Corporation Communication link and network connectivity management in low power mode
JP6194651B2 (ja) * 2013-06-17 2017-09-13 富士ゼロックス株式会社 情報処理装置
JP2015153075A (ja) * 2014-02-13 2015-08-24 富士通株式会社 伝送装置および制御ユニット
US9919958B2 (en) * 2014-07-17 2018-03-20 Corning Incorporated Glass sheet and system and method for making glass sheet
US10101797B2 (en) * 2014-09-27 2018-10-16 Intel Corporation Efficient power management of UART interface
US9798377B2 (en) * 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors
US9753526B2 (en) * 2014-12-23 2017-09-05 Intel Corporation Systems and methods for synergistic software-hardware power budget management
US9842036B2 (en) * 2015-02-04 2017-12-12 Apple Inc. Methods and apparatus for controlled recovery of error information between independently operable processors
US9568970B1 (en) * 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US9785732B2 (en) * 2015-06-12 2017-10-10 Netspeed Systems, Inc. Verification low power collateral generation
US10452124B2 (en) * 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
GB2566446B (en) * 2017-09-06 2019-09-25 Advanced Risc Mach Ltd Message handling unit to control passing of messages between power domains in an integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077816A1 (en) 2006-09-27 2008-03-27 Intel Corporation Subsystem Power Management
US20120084483A1 (en) 2010-09-30 2012-04-05 Agarwala Sanjive Die expansion bus
JP2012108677A (ja) * 2010-11-16 2012-06-07 Canon Inc データ転送装置及びその制御方法

Also Published As

Publication number Publication date
EP3321815A1 (en) 2018-05-16
JP6487988B2 (ja) 2019-03-20
US20180129269A1 (en) 2018-05-10
JP2018081688A (ja) 2018-05-24
CN108073421A (zh) 2018-05-25
KR20180052539A (ko) 2018-05-18

Similar Documents

Publication Publication Date Title
US9213393B2 (en) Power management of low power link states
KR101695340B1 (ko) 고성능 인터커넥트 물리 계층
US10139889B2 (en) Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints
US9405358B2 (en) Reducing power consumption of uncore circuitry of a processor
US9390046B2 (en) Controlling a physical link of a first protocol using an extended capability structure of a second protocol
US9874925B2 (en) Method and apparatus for a zero voltage processor sleep state
US8510580B2 (en) Power management for a system on a chip (SoC)
US20170115712A1 (en) Server on a Chip and Node Cards Comprising One or More of Same
US9842036B2 (en) Methods and apparatus for controlled recovery of error information between independently operable processors
KR102074018B1 (ko) 저전력 상태로의 포트 진입을 동기화하기 위한 시스템, 방법 및 장치
US10185385B2 (en) Method and apparatus to reduce idle link power in a platform
US10372199B2 (en) Apparatus for managing power and running and booting an inter-processor communication link between independently operable processors
CN106209695B (zh) 给加载/存储通信协议提供低功率物理单元
US10423552B2 (en) Integrated component interconnect
US10084698B2 (en) Selectively enabling first and second communication paths using a repeater
US20150052343A1 (en) Method and system for providing hybrid-shutdown and fast startup processes
TWI610167B (zh) 改善平台管理的計算裝置建置方法、保持電腦可執行指令之非暫存媒體及配置為提供強化管理資訊之計算裝置
US8443126B2 (en) Hot plug process in a distributed interconnect bus
TWI506559B (zh) 可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法
US7373498B2 (en) Method and apparatus for updating a system configuration through an active or passive update
US7146510B1 (en) Use of a signal line to adjust width and/or frequency of a communication link during system operation
EP1356366B9 (en) Computer peripheral device that remains operable when central processor operations are suspended
US7480808B2 (en) Method and apparatus for managing power consumption relating to a differential serial communication link
CA2636648C (en) A method for booting a host device from an mmc/sd device, a host device bootable from an mmc/sd device and an mmc/sd device method a host device may be booted from
KR101565357B1 (ko) 타임아웃을 처리하기 위한 시스템, 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant