KR20160110509A - 전력 소비를 감소시키기 위한 인터럽트 처리의 동기화 - Google Patents

전력 소비를 감소시키기 위한 인터럽트 처리의 동기화 Download PDF

Info

Publication number
KR20160110509A
KR20160110509A KR1020167023040A KR20167023040A KR20160110509A KR 20160110509 A KR20160110509 A KR 20160110509A KR 1020167023040 A KR1020167023040 A KR 1020167023040A KR 20167023040 A KR20167023040 A KR 20167023040A KR 20160110509 A KR20160110509 A KR 20160110509A
Authority
KR
South Korea
Prior art keywords
interrupt
delay
core
time
interrupts
Prior art date
Application number
KR1020167023040A
Other languages
English (en)
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 KR20160110509A publication Critical patent/KR20160110509A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2404Generation of an interrupt or a group of interrupts after a predetermined number of interrupts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2406Generation of an interrupt or a group of interrupts after a fixed or calculated time elapses
    • Y02B60/1228
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Bus Control (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

프로세서가 개시되고, 프로세서는 제1 코어를 포함하는 적어도 하나의 코어 및 인터럽트 딜레이 로직을 포함한다. 인터럽트 딜레이 로직은 제1 시간에 제1 인터럽트를 수신하고, 제2 인터럽트가 제1 코어에 의해 처리되는 제2 시간에 제1 인터럽트가 펜딩중이 아니면, 제1 인터럽트가 처리되는 것을 제1 시간에 시작하는 제1 시간 딜레이만큼 지연시킨다. 제1 인터럽트가 제2 시간에 펜딩중이면, 인터럽트 딜레이 로직은 제1 시간 딜레이의 완료 전에 제1 인터럽트를 처리하기 시작하도록 제1 코어에게 지시한다. 다른 실시예들이 개시되고 청구된다.

Description

전력 소비를 감소시키기 위한 인터럽트 처리의 동기화{SYNCRONIZATION OF INTERRUPT PROCESSING TO REDUCE POWER CONSUMPTION}
실시예들은 인터럽트 처리와 관련된다.
휴대용 디바이스들, 예를 들어, 스마트 폰들, 태블릿들, 기타 등등과 같은 디바이스들은 입력을 제공할 수 있는 주변 디바이스들의 다양성의 결과로서 발생하는 비동기 이벤트들의 높은 비율을 가질 수 있다. 예를 들어, 비동기 이벤트들은 모션 센서들, 광 센서들, 터치스크린, 기타 등등을 포함할 수 있다. 부가적으로, 이러한 휴대용 디바이스들은 셀룰러 네트워크 페이징, 주기적 타이머 이벤트들, 기타 등등에 관련된 주기적 인터럽트들과 같은 동기식 이벤트들을 수신할 수 있다.
프로세서에 입력된, 동기 및 비동기 이벤트들과 연관되는 인터럽트 메시지들("인터럽트들(interrupts)")은 프로세서가 스래싱(thrash)하도록, 예를 들어, 활성 상태와 비활성 상태 간에 과도하게 진동하도록 할 수 있으며, 결국 이것은 비활성으로부터 활성 상태로의 천이들의 결과로서의 "깨어나기" 전력 비용들로 인한 높은 전력 소비를 유발할 수 있고, 이것은 전원 예를 들어, 배터리의 재충전들 사이의 시간 기간의 감소를 초래할 수 있다.
도 1은 본 발명의 실시예에 따른 시스템의 블록도이다.
도 2은 본 발명의 실시예들에 따른 인터럽트 딜레이 제어기의 블록도이다.
도 3a는 본 발명의 실시예에 따른 프로세서 코어의 블록도이다.
도 3b는 본 발명의 실시예들에 따라 처리될 인터럽트들의 타이밍도이다.
도 4는 본 발명의 실시예에 따른, 프로세서에 의한 인터럽트 이벤트들의 처리 방법의 흐름도이다.
도 5는 본 발명의 실시예에 따른 시스템의 블록도이다.
도 6은 본 발명의 다른 실시예에 따른 시스템의 블록도이다.
도 7은 본 발명의 실시예에 따른 칩 상의 시스템의 블록도이다.
인터럽트 소스들은 소스의 특성들 및 소스로부터 수신된 인터럽트들을 처리하기 위한 요건들에 따라 분류될 수 있다. 예를 들어, 어떤 인터럽트들은 처리 전에 고의적인 딜레이 없이 서비스될 것이다(본 명세서에서 "하드 인터럽트들" 또는 "중대한 인터럽트들", 예를 들어, 셀룰러 전송 표준들과 연관된, 예를 들어, 주기적 인터럽트들). 다른 인터럽트들(본 명세서에서 "소프트 인터럽트들" 또는 "중대하지 않은 인터럽트들")은 시간 민감성이 더 적고, 인터럽트 소스 예를 들어, 주변 디바이스/애플리케이션의 성질에 따라 할당될 시간 딜레이에 의해, 고의적으로 지연될 수 있다.
실시예들에서, 프로그램가능 딜레이 값이 각각의 이벤트 또는 이벤트들의 그룹에 대해 설정될 수 있다. 프로세서가 비활성("슬립") 상태로부터 활성화("깨어나게")될 때, 프로세서가 복수의 인터럽트들을 핸들링할 수 있도록(예를 들어, "일괄 처리(batch process)") 인터럽트들이 그룹화될 수 있다. 인터럽트들의 일괄 처리는 소정의 시간 프레임에서 프로세서가 경험하는 활성/비활성 사이클들의 전체 카운트를 감소시킬 수 있고, 이것은 프로세서의 전체 전력 사용량을 감소시킬 수 있다.
실시예들에서, 예를 들어, 프로세서 및/또는 칩 상의 시스템(system on a chip, SoC)이 전력 절약(비활성) 상태, 예를 들어, 고급 컴퓨팅 및 전력 인터페이스(ACPI) 전력-감소 상태들 C1 내지 C6 중 하나에 있을 때, 운영 시스템이 인터럽트 처리를 지연시키도록(예를 들어, 인터럽트와 연관된 핸들러의 실행을 통해), 프로그래밍된 딜레이 타이머 값이 이용가능하다. 다양한 타입들의 인터럽트들에 대한 프로그래밍된 딜레이 값들은, 프로세서 또는 SoC의 각각의 비활성-활성 천이로 인해 대량 전력 소비를 유발할 수 있을 각각의 인터럽트의 개별 처리 대신에, 인터럽트 처리의 일괄 처리가 수행될 수 있게 한다. 실시예에서, 인터럽트 처리는 각각의 인터럽트에 할당된 대응하는 딜레이 시간에 기초하여 동적으로 이벤트들을 자동으로 그룹화한다.
도 1은 본 발명의 실시예에 따른 시스템(100)의 블록도이다. 시스템(100)은 하나 이상의 코어들(1020 - 102N), 인터럽트 제어기(104), 및 인터럽트 딜레이 제어기(106)를 포함하는 프로세서(110), 프로세서(110)에 결합된 복수의 주변 디바이스들(1200 - 120M), 및 프로세서(110)에 결합된 다이내믹 랜덤 액세스 메모리(DRAM)(130)를 포함한다.
작동 중에, 프로세서(110)는 주변 디바이스들(1200 - 120M) 중 하나 이상으로부터 인터럽트 메시지들(또는 본 명세서에서 "인터럽트들")을 수신할 수 있다. 인터럽트들 중 하나 이상은 대응하는 하드 실시간 인터럽트 이벤트와 연관될 수 있고, 이러한 이벤트에 대해서는 인터럽트가 수신될 때, 예를 들어, 고의적으로 지연되지 않고 처리될 것이다. 예를 들어, 하드 인터럽트는 셀룰러 표준에 관련된 주기적 이벤트와 연관될 수 있고, 하드 인터럽트는 수신시에, 예를 들어, 고의적인 시간 딜레이 없이, 프로세서(110)에 의해 처리될 것이다.
다른 인터럽트들은 주기적(예를 들어, 동기적) 또는 비주기적(예를 들어, 비동기적)일 수 있지만 하드 실시간 인터럽트 이벤트들과 연관되지 않을 수 있고, 따라서 그러한 인터럽트들("소프트 인터럽트들")의 처리는 지연, 예를 들어, 고의적으로 시간 지연될 수 있다. 예를 들어, 비동기적 인터럽트들은 비주기적으로 수신될 수 있는 센서 입력, 터치 스크린, 데이터와 같은 비동기적 이벤트들과 연관될 수 있다.
(예를 들어, 소프트 인터럽트들을 생성하는) 소프트 이벤트들을 발생시키는 각각의 주변 디바이스(1200 - 120M)에 대해, 각각의 소프트 인터럽트를 처리하는 것에 대응하는 시간 딜레이가 할당될 수 있다. 소스 주변 디바이스로부터 수신된 소프트 인터럽트들을 처리하는 것에 대한 시간 딜레이는 소스 주변 디바이스의 특성들에 기초하여 결정될 수 있고, 시스템(100)의 사용 전에 결정될 수 있다. 예를 들어, 소프트 인터럽트들에 대한 수용가능한 시간 딜레이의 결정에 고려되어야 할 하나의 팩터는 연관된 이벤트의 발생의 최악의 경우의 빈도수일 수 있다. 예를 들어, 최악의 경우의 추정에서, 이벤트가 100밀리초마다 발생한다면, 연관된 인터럽트를 처리하는 것에 대한 100㎲의 딜레이는 무시할만한 성능의 영향을 가질 것이다. 시간 딜레이는 하나 이상의 인터럽트들의 수신 전에 프로세서(110)에 의해 제공(예를 들어, 프로세서(110)에 저장)될 수 있다.
하나 이상의 주변 디바이스들(1200 - 120M)로부터 인터럽트 딜레이 제어기(106)에 의해 수신된 하드 인터럽트들은 고의적인 시간 딜레이 없이 처리되도록 인터럽트 제어기(104)에 전달될 수 있다. 소프트 인터럽트가 프로세서(110)에 의해 수신될 때, 인터럽트 딜레이 제어기(106)는 소프트 인터럽트를 제공했던 주변 디바이스(120)에 기초하여 (예를 들어, 인터럽트 딜레이 제어기(106)에 저장된) 대응하는 시간 딜레이를 선택할 수 있다. 수신된 각각의 소프트 인터럽트에 대해, 인터럽트 딜레이 제어기는 예를 들어, 대응하는 타이머를 통해, 대응하는 시간 딜레이의 카운트를 개시할 수 있고, 대응하는 타이머가 시간 딜레이의 끝에 도달했을 때, 소프트 인터럽트는 인터럽트 제어기(104)로 방출될 수 있고 코어들(1020 - 102N) 중 하나에 의해 처리되도록 인터럽트 제어기(104)에 의해 맡겨질 수 있다.
실시예에서, 하드 인터럽트가 즉각적인 처리를 위해 프로세서(110)에 의해 수신될 때, 인터럽트 딜레이 제어기(106)는 임의의 소프트 인터럽트들이 펜딩중인지, 예를 들어, 연관된 타이머가 소프트 인터럽트에 대한 시간 딜레이를 카운트하기 시작했고 그것의 카운트가 완료하지 않았는지 결정할 수 있다. 인터럽트 딜레이 제어기(106)는 하나 이상의 펜딩중인 소프트 인터럽트들을, 예를 들어, 연관된 타이머의 카운트의 완료 없이, 코어들(1020 - 102N) 중 하나에 의한 처리를 위해 인터럽트 제어기(104)로 방출할 수 있다. 코어에 의한 처리를 위해 방출되는 인터럽트들은, 코어가 활성인 동안 처리될 것이고, 예를 들어, 하드 인터럽트들이 수신된 때부터, 방출되는 모든 소프트 인터럽트들의 처리가 완료될 때까지 코어는 활성으로 유지된다.
다른 실시예에서, 제1 소프트 인터럽트는, 타이머의 만료로 인해, 예를 들어, 연관된 타이머가 각각의 시간 딜레이의 그것의 카운트를 완료한 것에 기인하여, 코어들(1020 - 102N) 중 제1 코어에 의해 처리될 것이다. 인터럽트 딜레이 제어기(106)는 하나 이상의 다른 펜딩중인 소프트 인터럽트들을 각각의 시간 딜레이의 각각의 완료 전에 제1 코어에 의한 처리를 위해 인터럽트 제어기(104)에 방출할 수 있다. 제1 코어에 의한 처리를 위해 방출되는 인터럽트들은 일괄 처리될 것이고, 예를 들어, 제1 코어가 제1 소프트 인터럽트의 처리의 결과로서 활성인 동안 처리될 것이다. 코어는 방출되었던 인터럽트들의 처리가 완료될 때까지 활성으로 유지될 것이다.
전술한 실시예들 각각에서, 인터럽트 제어기에 전송된 특정 인터럽트가 처리되어야 할 때, 인터럽트 딜레이 제어기(106)는 코어의 단일 활성 시간 기간 동안 처리될 하나 이상의 펜딩중인 인터럽트들을 방출할 수 있다. 따라서, 특정 코어는 처리될 각각의 인터럽트에 대해 비활성과 활성 상태 간에 진동하지 않는다. 인터럽트들의 일괄 처리는 스래싱을 감소시킬 수 있고, 그렇지 않으면 "깨어나기" 전력 비용들로 인해 연장될 프로세서의 전력 사용을 감소시킬 수 있다. 즉, 인터럽트들의 일괄 처리에 의해, 코어를 재-활성화하기 위해 연장되는 전력은 깨어나기의 다중 경우들로부터, 다중 인터럽트들이 처리될 단일 깨어나기 경우로 감소될 수 있다.
도 2는 본 발명의 실시예들에 따른 인터럽트 딜레이 제어기(200)의 블록도이다. 인터럽트 딜레이 제어기(200)는 시간 딜레이 카운터들(2101 - 210L), 시간 딜레이 레지스터들(2201 - 220L), 및 인터럽트 딜레이 로직(222)을 포함하고, 인터럽트 딜레이 로직은 인터럽트 검출 로직(224), 카운터 할당 로직(226), 및 펜딩 인터럽트 방출 로직(228)을 포함한다. 인터럽트 검출 로직(224), 카운터 할당 로직(226), 및 펜딩 인터럽트 방출 로직(228)을 포함하는 인터럽트 딜레이 로직(222)은 소프트웨어, 하드웨어, 펌웨어, 또는 그들의 조합으로 구현될 수 있다.
작동 중에, 복수의 주변 디바이스들은 인터럽트들(2021 - 220J)을 생성할 수 있다. 어떤 주변 디바이스들로부터 수신된 인터럽트들 중 일부는 예를 들어, 고의적인 딜레이 없이 처리될, 하드 인터럽트들일 수 있다. 다른 인터럽트들은 소프트 인터럽트들일 수 있고 처리 전에 지연될 수 있다.
인터럽트 검출 로직(224)은 수신되는 각각의 하드 인터럽트를 검출할 수 있고, 각각의 하드 인터럽트를, 처리를 위해 특정 코어에 출력되도록, 딜레이 없이 인터럽트 제어기(230)에 전송할 수 있다.
각각의 카운터(2101 - 210L)는 소프트 인터럽트들을 발행하는 특정 주변 디바이스에 대응하는 결정된 시간 딜레이를 저장하는 연관된 시간 딜레이 레지스터(2101 - 210L)를 갖는다. 소정의 주변 디바이스에 대한 시간 딜레이는 (예를 들어, 인터럽트 딜레이 제어기(200)의 동작 전에) 연관된 시간 딜레이 레지스터(2101 - 210L)에 저장될 수 있고, 전술한 바와 같이, 복수의 팩터들(예를 들어, 성능 영향)에 의존할 수 있다. 카운터 할당 로직(226)은 특정 주변 디바이스로부터 수신된 각각의 인터럽트를 대응하는 카운터(210i)에 할당할 수 있고, 그러한 카운터의 시간 딜레이 레지스터(220i)는 특정 주변 디바이스와 연관된다. 예를 들어, 제1 인터럽트가 제1 주변 디바이스로부터 수신될 때, 제1 인터럽트는 카운터 할당 로직(226)에 의해 제1 타이머(2101)에 할당될 수 있고, 제1 타이머는 제1 주변 디바이스와 연관된 그리고 레지스터(2201)에 저장된 제1 시간 딜레이 값까지 시간 카운트를 시작한다(예를 들어, 제1 시간 딜레이 값으로부터 카운트다운, 또는 제1 시간 딜레이 값까지 카운트업). 시간 카운트가 만료했을 때, 인터럽트는, 인터럽트 제어기(230)에 의해 결정된 코어들 중 선택된 코어에 의한 처리를 위해, 인터럽트 제어기(230)로 방출된다.
인터럽트 검출 로직(224)은 하드 인터럽트의 수신을 검출할 수 있고, 수신된 하드 인터럽트를 고의적인 딜레이 없이 인터럽트 제어기(230)에 맡길 수 있다. 하드 인터럽트를 처리하는 것은, 펜딩 인터럽트 방출 로직(228)이 펜딩중인, 예를 들어, 시간 딜레이 카운터(210)를 통해 고의적으로 지연중인, 하나 이상의 소프트 인터럽트들을, 할당된 시간 딜레이의 완료 전에, 인터럽트 제어기(230)에 방출하도록 트리거할 수 있다.
또한, 카운터(210)가 연관된 시간 딜레이의 그것의 카운트를 완료하는 각각의 경우에, 대응하는 인터럽트는, 프로세서의 특정 코어(인터럽트 제어기(230)에 의해 결정된 특정 코어)에 의해 처리되도록 인터럽트 제어기(230)에 방출된다. 인터럽트의 방출은, 펜딩 인터럽트 방출 로직(228)으로 하여금 하나 이상의 펜딩중인 인터럽트들을 특정 코어에 의해 처리되도록 인터럽트 제어기(230)에 방출하게 할 수 있다.
이제 도 3a를 참조하면, 본 발명의 일 실시예에 따른 프로세서 코어(300)의 블록도가 도시된다. 도 3a에 도시된 바와 같이, 프로세서 코어(300)는 다중-스테이지 파이프라인형 비순차 프로세서일 수 있다.
코어(300)는 본 발명의 실시예들에 따른 인터럽트 딜레이 유닛(302)을 포함할 수 있다. 인터럽트들은 다양한 주변 디바이스들로부터 수신될 수 있고, 인터럽트 검출 로직(304)은 수신된 인터럽트가 하드 인터럽트인지 아니면 소프트 인터럽트인지 검출할 수 있다. 수신된 인터럽트가 하드 인터럽트이면, 수신된 인터럽트는 프런트 엔드 유닛들(310)에 전송되고, 딜레이 없이(예를 들어, 의도적인 시간 딜레이의 도입 없이) 실행 유닛들(320)에 의해 처리될 것이다. 수신된 인터럽트가 소프트 인터럽트이면, 인터럽트 검출 로직(304)은 딜레이 카운터들(3071 - 307L) 중 하나를 수신된 인터럽트에 할당하도록 카운터 할당 로직(306)에 지시할 수 있다. 할당된 딜레이 카운터(307i)는 결정된 시간 딜레이 Ti를 카운트할 수 있고, 여기서 Ti는 대응하는 시간 딜레이 레지스터(3091 - 309L)에 저장되고, 인터럽트 딜레이 유닛(302)은 수신된 소프트 인터럽트가 처리되는 것을, 대응하는 딜레이 카운터(307i)가 각각의 시간 딜레이 Ti를 카운트하는 동안 지연시킬 수 있다.
다른 인터럽트가 처리중일 때(예를 들어, 하드 인터럽트, 또는 딜레이 카운터가 만료한 소프트 인터럽트), 수신된 (소프트) 인터럽트가 펜딩중이면(예를 들어, 각각의 딜레이 카운터(307i)가 만료할 때까지 인터럽트 딜레이 유닛(302)에 의해 저지됨), 본 발명의 실시예들에 따라, 펜딩 인터럽트 방출 로직(308)은 펜딩중인 소프트 인터럽트를, 그 각각의 딜레이 카운터(307i)의 만료 전에 그리고 실행 유닛들(320)이 활성인 동안, 실행을 위해 방출시킬 수 있다.
어떤 인터럽트들도 처리중이 아니고 어떤 명령어들도 처리중이 아니면, 전력 조절 로직(318)은 전력 사용을 완전한 활성 레벨로부터 전력 사용의 더 작은 레벨로 감소시키도록 실행 유닛들(320)에 지시할 수 있다. 인터럽트들 및/또는 명령어들이 처리되기 위해 큐잉될 때, 전력 조절 로직(318)은 파워-업 상태를 재개하도록 실행 유닛들(320)에 지시할 수 있다.
도 3a에 보여지는 바와 같이, 코어(300)는 실행될 명령어들을 페치하고 프로세서에서의 차후의 사용을 위해 준비하기 위해 사용될 수 있는 프론트 엔드 유닛들(310)을 포함한다. 예를 들어, 프론트 엔드 유닛들(310)은 페치 유닛(301), 명령어 캐시(303), 및 명령어 디코더(305)를 포함할 수 있다. 일부 구현들에서, 프론트 엔드 유닛들(310)은 마이크로-오퍼레이션 스토리지뿐만 아니라 마이크로코드 스토리지와 함께, 트레이스 캐시(trace cache)를 더 포함할 수 있다. 페치 유닛(301)은 예를 들어, 메모리 또는 명령어 캐시(303)로부터 매크로-명령어들을 페치할 수 있고, 그들을 프리미티브들, 즉, 프로세서에 의한 실행을 위한 마이크로-오퍼레이션들로 디코딩하기 위해 명령어 디코더(305)에 공급할 수 있다.
마이크로-명령어들을 수신하고, 그들을 실행을 위해 준비하기 위해 사용될 수 있는 비순차(out-of-order, OOO) 엔진(315)이 프론트 엔드 유닛들(310)과 실행 유닛들(320) 사이에 결합된다. 더 구체적으로, OOO 엔진(315)은 레지스터 파일(330) 및 확장된 레지스터 파일(335)과 같은 각종 레지스터 파일들 내의 스토리지 로케이션들에 논리 레지스터들의 재명명을 제공할 뿐만 아니라, 마이크로-명령 흐름을 재정렬하고 실행에 필요한 각종 리소스들을 할당하기 위해 각종 버퍼들을 포함할 수 있다. 레지스터 파일(330)은 정수 및 부동 소수점 연산들을 위한 별개의 레지스터 파일들을 포함할 수 있다. 확장된 레지스터 파일(335)은 벡터 크기 단위들, 예를 들어, 레지스터당 256 또는 512 비트들을 위한 스토리지를 제공할 수 있다.
각종 리소스들이, 다른 특수 하드웨어 중에서도, 예를 들어, 각종 정수, 부동 소수점, 및 단일 명령어 다중 데이터(single instruction multiple data, SIMD) 로직 유닛들을 포함하는, 실행 유닛들(320)에 존재할 수 있다. 예를 들어, 그러한 실행 유닛들은 다른 그러한 실행 유닛들 중에서도, 하나 이상의 산술 로직 유닛들(ALU들)(322)을 포함할 수 있다.
실행 유닛들로부터의 결과들은 퇴출 로직(retirement logic), 즉, 재정렬 버퍼(reorder buffer, ROB)(340)에 제공될 수 있다. 더 구체적으로, ROB(340)는 실행되는 명령어들과 연관된 정보를 수신하기 위한 각종 어레이들 및 로직을 포함할 수 있다. 그 후 이 정보는, 명령어들이 유효하게 퇴출될 수 있으며 결과 데이터가 프로세서의 구조적 상태(architectural state of the processor)로 커미트(commit)될 수 있는지, 또는 명령어들의 적절한 퇴출을 방지하는 하나 이상의 예외들이 발생했는지를 결정하기 위해 ROB(340)에 의해 검사된다. 물론, ROB(340)는 퇴출과 연관된 다른 오퍼레이션들을 핸들링할 수 있다.
도 3a에 도시된 바와 같이, ROB(340)는, 일 실시예에서, 로우 레벨 캐시(예를 들어, L1 캐시)일 수 있는 캐시(350)에 결합되지만, 본 발명의 범위는 이와 관련하여 제한되지 않는다. 또한, 실행 유닛들(320)은 직접적으로 캐시(350)에 결합될 수 있다. 캐시(350)로부터, 더 높은 레벨의 캐시들, 시스템 메모리 등과의 데이터 통신이 발생할 수 있다. 도 3a의 실시예에서는 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이와 관련하여 제한되지 않는다는 것을 이해한다. 예를 들어, 도 3a의 구현예가 소위 x86 명령어 세트 아키텍처(instruction set architecture, ISA)와 같은 비순차 머신에 관한 것이지만, 본 발명의 범위는 이와 관련하여 제한되지 않는다. 즉, 다른 실시예들이 순차 프로세서, ARM 기반 프로세서와 같은 RISC(reduced instruction set computing) 프로세서, 또는 에뮬레이션 엔진 및 연관된 로직 회로를 통해 상이한 ISA의 명령어들 및 오퍼레이션들을 에뮬레이트할 수 있는 ISA의 다른 타입의 프로세서에 구현될 수 있다.
도 3b는 본 발명의 실시예들에 따라 처리될 인터럽트들의 타이밍도이다.
인터럽트 1 메시지들(354-360)은 하드 인터럽트들이다. 인터럽트 2 메시지들(362, 366, 370, 374)은 주기적인 소프트 인터럽트들이다. 인터럽트 3 메시지들(378, 382)은 비주기적인 소프트 인터럽트들이다.
모든 인터럽트들은 동일 코어에 의해 처리될 것이다. 소프트 인터럽트들이 지연될 수 있고, 도 2와 관련하여 전술한 바와 같이, 각각의 소프트 인터럽트는 대응하는 시간 딜레이를 갖는다. 주기적인 소프트 인터럽트들(362, 366, 370, 374) 각각은, 지연된 인터럽트들(364, 368, 372, 및 376)로서 각각 처리되기 위해, 시간상 지연된다. 비동기적인 소프트 인터럽트들(378, 382) 각각은 인터럽트들(380, 384)로서 각각 처리되기 위해, 시간상 지연된다.
하드 인터럽트들(354-360) 각각은 고의적인 딜레이 없이 처리될 것이고, 각각의 인터럽트(354-360)는 인터럽트들을 처리하는 코어에서의 비활성-활성 천이(386, 390, 394, 396)와 연관된다. 인터럽트들(354, 356, 358, 360)은 각각 코어 시간들(386, 390, 394, 396)에 처리된다.
각각의 인터럽트(354, 356, 358, 360)가 처리중임에 따라, (예를 들어, 아직 처리되지 않았고 대응하는 시간 딜레이 기간의 만료를 기다리는) 하나 이상의 펜딩중인 인터럽트들이, 코어가 활성 상태인 동안 처리되기 위해 방출될 수 있다. 예를 들어, 인터럽트(370)는 처리를 위해 372로 지연되고(본 명세서에서 370 -> 372로 표기됨), 인터럽트(358)가 처리될 때 펜딩중이다. 본 명세서에서, 인터럽트(370 -> 372)는 시간(394)에 처리를 위해 방출될 것이고, 그 방출은 인터럽트(358)의 처리에 의해 트리거된다. 그러므로, 두 개의 인터럽트들(358, 370 -> 372)이 394에서 시작하는 코어의 동일 활성 기간에 처리될 것이다.
인터럽트(374)는 376으로 지연중이고, 예를 들어, 시간 396에 인터럽트(360)가 처리될 때에는 펜딩중이다. 그러므로, 인터럽트(374->376)는 396에서 시작하는 코어 활성의 기간 동안 처리를 위해 방출될 것이다. 또한, 인터럽트(382)는 384로 지연되고, 인터럽트(360)가 처리되기 시작할 때에는 펜딩중이다. 그러므로, 인터럽트(382->384)는 396에서 시작하는 코어 활성의 기간 동안 처리를 위해 방출될 것이다. 그러므로, 세 개의 인터럽트들(360, 374 -> 376, 및 382 -> 384)이 396에서 시작하는 코어의 동일 활성 기간 동안 처리될 것이다.
인터럽트(366)는 368에서 처리를 위해 지연된다. 366과 368 사이의 시간 기간에 다른 어떤 인터럽트도 처리되도록 스케줄링되지 않고, 지연된 인터럽트(366->368)는 시간 392에서 처리될 것이고, 처리는 시간 392에 코어가 비활성으로부터 활성으로 천이하게 한다. 코어는 지연된 인터럽트(366->368)가 처리된 후 비활성 상태로 돌아갈 것이다.
인터럽트(362)는 364로 지연된다(362->364). 비동기적 소프트 인터럽트(378)는 380으로 지연된다(378->380). 지연된 인터럽트(362->364)는, 임의의 다른 인터럽트가 처리될 예정인 동안, 펜딩중이지 않고, 따라서 그것의 시간 딜레이의 끝인 364에 대응하는 시간 388에 처리될 것이다. 지연된 인터럽트(378->380)는 시간 388에 펜딩중이고, 따라서 코어가 지연된 인터럽트(362->364)의 처리로 인해 활성 상태에 있는 동안 처리를 위해 방출될 것이다. 그러므로, 두 개의 인터럽트들(364, 378->380)이 388에서 시작하는 하나의 활성 기간에 처리된다.
코어의 비활성으로부터 활성 상태로의 총 6개의 천이들(386 - 396)이 10개의 수신된 인터럽트들의 처리로부터 초래된다. 그러므로, 소프트 인터럽트들의 처리 전에 시간 딜레이의 도입은 코어의 비활성-활성 천이들의 전체 카운트를 감소시킬 수 있다. 코어의 비활성-활성 천이들의 개수의 감소는 코어의 비활성-활성 천이들과 연관된 전력 비용들의 감소에 기인하여 전체 전력 소비를 감소시킬 수 있다.
도 4는 본 발명의 실시예에 따른, 프로세서에 의한 인터럽트 이벤트들의 처리 방법의 흐름도(400)이다. 블록 410에서, 프로세서는 주변 디바이스로부터 인터럽트를 수신한다. 결정 다이아몬드(420)로 계속되어, 제1 인터럽트가 예를 들어, 지연 시간 TN=0을 갖는 하드 실시간 이벤트와 연관된 하드 인터럽트이면, 블록(450)으로 진행하여, 인터럽트가 고의적인 시간 딜레이 없이 프로세서에 의해 처리된다. 결정 다이아몬드(460)로 진행하여, 다른 펜딩중인 인터럽트들이 있다면, 블록(450)으로 돌아가서, 펜딩중인 인터럽트들이 처리된다. 결정 다이아몬드(460)에서, 다른 펜딩중인 인터럽트들이 없다면, 방법은 470에서 종료한다.
결정 다이아몬드(420)에서, 제N 인터럽트가 하드 인터럽트가 아니면, 예를 들어, 제N 인터럽트가 하드 실시간 이벤트와 연관되지 않으면, 블록(430)으로 진행하여, 대응하는 딜레이 타이머가 제N 인터럽트의 대응하는 시간 딜레이 TN을 카운트하기 시작한다. 결정 다이아몬드(440)로 이동해서, 딜레이 타이머가 만료된 때, 블록(450)으로 진행하여, 제N 인터럽트가 처리된다. 결정 다이아몬드(460)로 진행하여, 제N 인터럽트가 처리될 때 다른 펜딩중인 인터럽트들이 있다면, 블록(450)으로 돌아가서, 펜딩중인 인터럽트들이, 예를 들어, 제N 인터럽트의 처리의 결과로서, 그들 각각의 딜레이 시간들의 만료 전에 처리된다. 결정 다이아몬드(460)에서, 다른 펜딩중인 인터럽트들이 없다면, 방법은 470에서 종료한다.
실시예들이 많은 상이한 시스템 타입들에서 구현될 수 있다. 이제 도 5를 참조하면, 본 발명의 실시예에 따른 시스템의 블록도가 도시된다. 도 5에 도시된 바와 같이, 멀티프로세서 시스템(500)은 포인트-투-포인트 상호접속 시스템이며, 포인트-투-포인트 상호접속(550)을 통해 결합된 제1 프로세서(570)와 제2 프로세서(580)를 포함한다. 도 5에 도시된 바와 같이, 프로세서들(570, 580) 각각은 제1 및 제2 프로세서 코어(즉, 코어들(574a, 574b), 코어들(584a, 584b))를 포함한 멀티코어 프로세서들일 수 있지만, 잠재적으로 프로세서들 내에 더 많은 코어들이 존재할 수 있다. 본 발명의 실시예들에 따르면, 프로세서(570)는 인터럽트 딜레이 제어기(502)와 인터럽트 제어기(504)를 포함하고, 프로세서(580)는 인터럽트 딜레이 제어기(506)와 인터럽트 제어기(508)를 포함한다. 각각의 인터럽트 딜레이 제어기(502, 506)는 인입하는 인터럽트들을 검출할 것이다. 인입하는 인터럽트가 하드 실시간 이벤트와 연관된다면, 인터럽트는 고의적인 딜레이 없이 처리되도록 각각의 인터럽트 제어기(504, 508)에 전송될 것이다.
소프트 인터럽트인 제1 인터럽트에 대해, 인터럽트 딜레이 제어기(502, 506)는, 제2 인터럽트가 처리중인 동안 제1 인터럽트가 펜딩중이 아니면, 제1 인터럽트를 코어에 처리되도록 맡기는 각각의 인터럽트 제어기(504, 508)에 제1 인터럽트를 전송하기 전에 특정 딜레이 시간만큼 인터럽트의 처리를 지연시킬 것이다. 본 발명의 실시예들에 따르면, 제2 인터럽트가 처리중인 동안 제1 인터럽트가 펜딩중이면, 인터럽트 딜레이 제어기(502, 506)는 제1 인터럽트를 각각의 인터럽트 제어기(504, 508)에 전송하여, 코어가 제2 인터럽트의 처리에 의해 트리거되는 활성 상태에 있는 동안, 처리를 위해 코어에 맡길 것이다.
여전히 도 5를 참조하면, 제1 프로세서(570)는 메모리 제어기 허브(MCH)(572)와 포인트-투-포인트(P-P) 인터페이스들(576, 578)을 더 포함한다. 유사하게, 제2 프로세서(580)는 MCH(582) 및 P-P 인터페이스들(586, 588)을 포함한다. 도 5에 도시된 바와 같이, MCH(572, 582)는 프로세서들을 각각의 메모리들, 즉, 메모리(532) 및 메모리(534)에 결합하는데, 이 메모리들은 각각의 프로세서들에 로컬하게 부착된 시스템 메모리(예를 들어, DRAM)의 일부일 수 있다. 제1 프로세서(570)와 제2 프로세서(580)는 P-P 상호접속들(562, 584)을 통해 각각 칩세트(590)에 결합될 수 있다. 도 5에 도시된 바와 같이, 칩세트(590)은 P-P 인터페이스들(594 및 598)을 포함한다.
또한, 칩세트(590)는 P-P 상호접속부(539)을 통해, 칩세트(590)를 고성능 그래픽 엔진(538)에 결합하는 인터페이스(592)를 포함한다. 그리고, 칩세트(590)는 인터페이스(596)를 통해 제1 버스(516)에 결합될 수 있다. 도 5에 도시된 바와 같이, 제1 버스(516)를 제2 버스(520)에 결합하는 버스 브릿지(518)와 함께, 다양한 입력/출력(I/O) 디바이스들(514)이 제1 버스(516)에 결합될 수 있다. 예를 들어, 키보드/마우스(522), 통신 디바이스들(526), 및 일 실시예에서 코드(530)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 디바이스와 같은 데이터 저장 유닛(528)을 포함한, 다양한 디바이스들이 제2 버스(520)에 결합될 수 있다. 또한, 오디오 입력/출력(I/O)(524)은 제2 버스(520)에 결합될 수 있다. 본 발명의 실시예들에 따르면, 디바이스들(514, 522, 524, 526) 중 하나 이상은 프로세서(570) 또는 프로세서(580)에 의해 처리되기 위한 인터럽트들을 제공할 수 있다. 실시예들은 스마트 셀룰러 전화, 태블릿 컴퓨터, 넷북, Ultrabook™ 등과 같은 모바일 디바이스들을 포함한 다른 타입들의 시스템들 내에 통합될 수 있다
실시예들은 셀룰러 전화와 같은 모바일 디바이스들을 포함한 다른 타입들의 시스템들 내에 통합될 수 있다. 이제 도 6를 참조하면, 본 발명의 다른 실시예에 따른 시스템의 블록도가 도시된다. 도 6에 도시된 바와 같이, 시스템(600)은 모바일 디바이스일 수 있고, 다양한 컴포넌트들을 포함할 수 있다. 도 6의 하이 레벨로 도시된 바와 같이, 디바이스의 중앙 처리 유닛일 수 있는 애플리케이션 프로세서(610)는 스토리지(615)를 포함한 다양한 컴포넌트들과 통신한다. 스토리지(615)는 다양한 실시예들에서, 프로그램과 데이터 스토리지 부분들 양쪽을 포함할 수 있다.
애플리케이션 프로세서(610)는, 다양한 실시예들에서, 디스플레이, 및 처리될 때 그 자체가 디스플레이 상에 나타날 수 있는 터치 키패드와 같은 하나 이상의 입력 디바이스들을 포함할 수 있는, 입력/출력 시스템(620)에 더 결합될 수 있다. 시스템(600)은 또한 하나 이상의 센서들(670)로부터 데이터를 수신할 수 있는 통합된 센서 허브(ISH)(660)를 포함할 수 있다. 어떤 실시예들에서, 통합된 센서 허브는 소프트 인터럽트들을 검출하고 대응하는 딜레이 시간(TN)만큼 소프트 인터럽트의 실행을 지연시키기 위한 인터럽트 딜레이 제어기(IDC)(662)를 포함한다. 본 발명의 실시예들에 따르면, 인터럽트가 펜딩중인 동안 다른 인터럽트가 처리될 것이라면, 인터럽트는 그것의 시간 딜레이를 완료하지 않고 처리된다.
본 발명의 실시예들에 따르면, 애플리케이션 프로세서(610)는 인터럽트 딜레이 제어기(IDC)(602)를 포함할 수 있다. IDC(602)는 하드 실시간 이벤트와 연관된 인입하는 하드 인터럽트(예를 들어, 송수신기(640) 및/또는 기저대역 프로세서(630)로부터의)를 검출할 수 있고, 고의적인 딜레이 없이, 하드 인터럽트를 인터럽트 제어기(도시되지 않음)에 전송할 수 있으며, 인터럽트 제어기는 인터럽트를 처리(예를 들어, 핸들링)되도록 애플리케이션 프로세서(610)의 코어에 전송한다.
(예를 들어, I/O(620) 및/또는 통합된 센서 허브(660)로부터 수신된) 소프트 인터럽트인 제1 인터럽트에 대해, 인터럽트 딜레이 제어기(602)는, 제2 인터럽트가 제1 코어에서 처리중일 때 제1 인터럽트가 펜딩중이 아니면, 제1 인터럽트를 인터럽트 제어기에 방출하기 전에 제1 인터럽트의 처리를 제1 딜레이 시간만큼 지연시킬 수 있다. 인터럽트 제어기는 제1 인터럽트를 처리되도록 애플리케이션 프로세서(610)의 제1 코어에 전송할 것이다. 본 발명의 실시예들에 따르면, 제2 인터럽트가 제1 코어에서 처리중일 때 제1 인터럽트가 펜딩중이면, 제2 인터럽트의 처리는, 인터럽트 딜레이 제어기(602)가 제1 인터럽트를 시간 딜레이의 완료 없이 인터럽트 제어기에 전송하도록 트리거하여, 코어가 제1 인터럽트의 처리에 의해 트리거되는 활성 상태에 있는 동안, 처리를 위해 제1 코어에 맡겨지도록 한다. 제2 인터럽트는 하드 인터럽트일 수 있거나, 또는 시간 딜레이가 완료된 (예를 들어, 시간 딜레이 카운터가 만료한) 소프트 인터럽트일 수 있다.
애플리케이션 프로세서(610)는 또한 출력용 음성 및 데이터 통신들과 같은 신호들을 조절할 수 있는 것은 물론, 착신 전화 및 다른 신호들을 조절하는 기저대역 프로세서(630)에 결합할 수 있다. 본 발명의 실시예들에 따르면, 기저대역 프로세서(630)는, 주변 디바이스들(634)로부터 인터럽트들을 수신하는, 그리고 다른 인터럽트가 처리되는 동안 소프트 인터럽트가 펜딩중이 아니면, 수신된 소프트 인터럽트의 실행을 지연시킬 수 있는 IDC(632)를 포함할 수 있다. 나타내어진 바와 같이, 기저대역 프로세서(630)는 수신 및 송신 능력들 둘 다를 가능하게 할 수 있는 송수신기(640)에 결합한다. 결국, 송수신기(640)는 안테나 650, 예를 들어, 무선 광역 네트워크(예를 들어, 3G 또는 4G 네트워크) 및/또는 BLUETOOTH™ 또는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers) 802.11 표준에 따른 소위 WI-FI™ 네트워크와 같은 무선 로컬 영역 네트워크 등의 하나 이상의 통신 프로토콜들을 통해 음성 및 데이터 신호들을 송신 및 수신할 수 있는 임의의 타입의 안테나와 통신할 수 있다,
나타내어진 바와 같이, 시스템(600)은 모바일 환경에서 작동을 가능하게 하기 위해 재충전가능 배터리를 갖는 재충전가능 전원(625)을 더 포함할 수 있다. 도 6의 실시예에서는 이러한 특정 구현으로 도시되지만, 본 발명의 범위는 이와 관련하여 제한되지 않는다.
도 7은 본 발명의 실시예들에 따른 칩 상의 시스템(SOC)의 블록도이다. SOC(700)는 멀티코어 서브시스템(710), 모뎀 서브시스템(720), 멀티미디어 서브시스템(730), 시스템 패브릭(740), 전원(750), 및 하나 이상의 외부 디바이스들과 인터페이스하기 위한 인터페이스들(760)을 포함한다. SOC(700)는 예를 들어, 모뎀 태스크들, 멀티미디어 태스크들, 및 다른 처리 태스크들 등의 다중 태스크들을 병렬로 수행할 수 있다,
멀티코어 서브시스템(710)은 멀티코어 프로세서들(712, 714), L1 캐시들(716, 718), 및 L2 캐시(742)를 포함한다. 멀티코어 프로세서들(712, 714) 각각은 대응하는 인터럽트 딜레이 제어기(IDC)(702, 704)를 포함할 수 있다. 각각의 인터럽트 딜레이 제어기(702, 704)는 하드 실시간 이벤트들과 연관된 인입하는 하드 인터럽트들을(예를 들어, 인터페이스들(760)로부터의) 검출할 것이고, 수신시에 각각의 하드 인터럽트를 각각의 인터럽트 제어기(도시되지 않음)에 전송할 것이고, 인터럽트 제어기는 인터럽트를 처리되도록 각각의 프로세서(712, 714)의 코어에 맡긴다.
(예를 들어, 인터페이스들(760)로부터 수신된) 소프트 인터럽트인 제1 인터럽트에 대해, 인터럽트 딜레이 제어기(702, 704)는, 제2 인터럽트가 코어에 의해 처리중인 동안 제1 인터럽트가 펜딩중이 아니면, 인터럽트를 처리되도록 코어에 맡길 각각의 인터럽트 제어기에 제1 인터럽트를 전송하는 것을 제1 시간 딜레이만큼 지연시킬 것이다. 본 발명의 실시예들에 따르면, 제2 인터럽트가 코어에 의해 처리중인 동안 제1 인터럽트가 펜딩중이면, 인터럽트 딜레이 제어기(702, 704)는 제1 인터럽트를 시간 딜레이의 완료 없이 인터럽트 제어기에 전송하여, 코어가 제2 인터럽트의 처리에 의해 트리거되는 활성 상태에 있는 동안, 처리를 위해 코어에 맡겨지도록 할 것이다.
모뎀 서브시스템(720)은 고속 데이터의 무선 통신을 위한 롱 텀 에볼루션(LTE) 모뎀(722)을 포함할 수 있다. 모뎀 서브시스템(720)은 또한 글로벌 위치결정 시스템(GPS)(724), 그리고 적어도 두 개의 디지털 신호 프로세서(DSP) 코어들(726, 728)을 포함할 수 있다. 본 발명의 실시예들에 따르면, LTE 모뎀(722)은, 모뎀 서브시스템(720)으로부터 (예를 들어, GPS(724)로부터) 입력되는 인터럽트들을 검출하고 소프트 인터럽트들을 지연시키는 IDC(721)를 포함할 수 있다.
멀티미디어 서브시스템(730)은 그래픽 처리 유닛(GPU)(732), 오디오/비디오 하드웨어 가속기들(734), 디지털 신호 처리 코어(736), 및 MMX 프로세서(738)를 포함할 수 있고, 그것은 예를 들어, 단일 명령어, 다중 데이터 (SIMD) 명령어들을 처리하는 것이 가능할 수 있다.
다른 실시예들이 아래에 기술된다.
제1 예에서, 프로세서는 제1 코어를 포함하는 적어도 하나의 코어를 포함한다. 상기 프로세서는 또한 인터럽트 딜레이 로직을 포함하고, 상기 인터럽트 딜레이 로직은 제1 시간에 제1 인터럽트를 수신하고; 제2 인터럽트의 처리가 상기 제1 코어에 의해 시작되는 제2 시간에 상기 제1 인터럽트가 펜딩중이 아니면, 제1 코어에 의해 상기 제1 인터럽트가 처리되는 것을 상기 제1 시간에 시작하는 제1 시간 딜레이만큼 지연시키고; 상기 제1 인터럽트가 상기 제2 시간에 펜딩중이면, 상기 제1 시간 딜레이의 완료 전에 상기 제1 인터럽트를 처리하기 시작하도록 상기 제1 코어에게 지시한다.
예 1의 상기 프로세서를 포함하는 제2 예에서, 인터럽트 딜레이 로직은 상기 제1 인터럽트를 포함한, 상기 제2 시간에 펜딩중인 복수의 인터럽트들을 수신하고, 상기 제1 코어는 상기 제2 시간에 시작하는 제1 활성 기간 동안 복수의 펜딩중인 인터럽트들을 처리하고, 상기 제1 코어는 상기 제1 활성 기간에 걸쳐 활성 상태로 유지된다.
예 2의 상기 프로세서를 포함하는 제3 예에서, 상기 제2 인터럽트 및 상기 복수의 펜딩중인 인터럽트들이 처리된 후 상기 제1 코어는 활성 상태로부터 비활성 상태로 천이한다.
예 1의 상기 프로세서를 포함하는 제4 예에서, 상기 제1 코어는, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리되는 동안 활성 상태로 유지되고, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리된 후에 비활성 상태로 천이한다.
예 1의 상기 프로세서를 포함하는 제5 예에서, 상기 제2 인터럽트는 주기적으로 수신되고, 수신되는 상기 제2 인터럽트의 각각의 발생에 대해, 상기 제2 인터럽트는 고의적인 딜레이 없이 상기 제1 코어에 의해 처리되고, 상기 인터럽트 딜레이 로직은, 추가의 펜딩중인 인터럽트들의 처리를, 대응하는 시간 딜레이의 완료 전에 그리고 상기 코어가 활성 상태로 유지되는 동안, 시작하도록 상기 제1 코어에 지시한다.
예 5의 상기 프로세서를 포함하는 제6 예에서, 상기 제2 인터럽트의 수신의 각각의 발생에 대해, 상기 제2 인터럽트 및 상기 추가의 펜딩중인 인터럽트들의 처리의 완료 시에, 상기 제1 코어는 비활성 상태로 천이한다.
예 1의 상기 프로세서를 포함하는 제7 예에서, 상기 인터럽트 딜레이 로직은 또한 제3 시간에 제3 인터럽트를 수신하고 상기 제3 인터럽트에 제2 시간 딜레이를 할당하고, 상기 인터럽트 딜레이 로직은: 상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리중인 동안 상기 제3 인터럽트가 펜딩중이 아니면, 상기 제3 인터럽트의 처리를 상기 제3 시간으로부터 상기 제2 시간 딜레이만큼 지연시키고; 상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리중인 동안 상기 제3 인터럽트가 펜딩중이면, 상기 제2 시간 딜레이의 완료 없이 상기 제3 인터럽트를 처리하도록 상기 제1 코어에 지시한다.
예 7의 상기 프로세서를 포함하는 제8 예에서, 상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리될 동안 상기 제3 인터럽트가 펜딩중이 아니면, 상기 인터럽트 딜레이 로직은 상기 제2 시간 딜레이의 완료 후에 상기 제3 인터럽트를 처리하도록 상기 코어에 지시한다.
예 1의 상기 프로세서를 포함하는 제9 예에서, 상기 인터럽트 딜레이 로직은 상기 제1 시간 딜레이를 카운트하는 카운터를 포함한다.
제10 예에서, 시스템은 다이내믹 랜덤 액세스 메모리(DRAM), 및 프로세서를 포함하고, 상기 프로세서는 하나 이상의 코어들; 하나 이상의 수신된 인터럽트들 각각을 상기 하나 이상의 코어들 중 제1 코어에 맡기는 인터럽트 제어기를 포함한다. 상기 프로세서는 또한 인터럽트 딜레이 제어기를 포함하고, 상기 인터럽트 딜레이 제어기는 대응하는 인터럽트를 처리하기 위한 각각의 시간 딜레이를 카운트하는 하나 이상의 딜레이 카운터들 - 각각의 딜레이 카운터는 상기 프로세서에 의해 상기 대응하는 중대하지 않은 인터럽트의 수신시에 각각의 카운트를 시작함 -; 및 다른 인터럽트의 실행에 응답하여, 각각의 펜딩중인 인터럽트를 상기 인터럽트 제어기에 전송하여 상기 제1 코어가 활성 상태인 동안 상기 제1 코어에 맡겨지도록 하는 펜딩 인터럽트 방출 로직을 포함한다.
예 10의 상기 시스템을 포함하는 제11 예에서, 제2 인터럽트와 연관된 각 시간 딜레이 동안 다른 어떤 인터럽트도 처리중이 아니면, 상기 인터럽트 딜레이 제어기는 상기 대응하는 딜레이 카운터의 카운트의 완료시에 인터럽트를 상기 인터럽트 제어기에 전송한다.
예 10의 상기 시스템을 포함하는 제12 예에서, 상기 제2 딜레이 카운터의 카운트가 완료할 때, 상기 펜딩 인터럽트 방출 로직은 상기 제1 코어가 활성 상태에 있는 동안, 처리될 각각의 펜딩중인 인터럽트를 상기 인터럽트 제어기에 전송한다.
예 10의 상기 시스템을 포함하는 제13 예에서, 펜딩중인 인터럽트들이 처리된 후에, 대응하는 코어가 비활성으로 된다.
예 10의 상기 시스템을 포함하는 제14 예에서, 상기 프로세서는, 하드 인터럽트의 수신시에, 고의적인 딜레이 없이 상기 하드 인터럽트를 상기 인터럽트 제어기에 전송하는 중대한 인터럽트 검출 로직을 더 포함한다.
예 10의 상기 시스템을 포함하는 제15 예에서, 상기 프로세서는, 수신된 각각의 중대하지 않은 인터럽트에 대응하는 딜레이 카운터를 할당하는 카운터 할당 로직을 더 포함한다.
제16 예에서, 방법은 프로세서의 코어에 의해 제1 인터럽트를 제1 시간에 시작하여 처리하는 단계; 상기 프로세서에 의해, 제2 시간에 수신된 제2 인터럽트에 시간 딜레이를 할당하는 단계; 상기 제2 인터럽트가 상기 제1 시간에 펜딩중이 아니면, 상기 제2 시간에 시작하는 상기 시간 딜레이의 만료 후에 상기 코어에 의해 상기 제2 인터럽트를 처리하는 단계; 및 상기 제2 인터럽트가 상기 제1 시간에 펜딩중이면, 상기 시간 딜레이의 만료 전에 상기 코어에 의해 상기 제2 인터럽트를 처리하는 단계를 포함한다.
예 16의 상기 방법을 포함하는 제17 예에서, 상기 제2 인터럽트가 상기 제1 시간에 펜딩중이면, 상기 제1 인터럽트의 처리에 응답하여 상기 코어가 활성 상태에 있는 동안 상기 제2 인터럽트를 처리하는 단계를 포함한다.
예 16의 상기 방법을 포함하는 제18 예에서, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리된 후에, 상기 코어를 비활성 상태로 천이시키는 단계를 포함한다.
예 16의 상기 방법을 포함하는 제19 예에서, 복수의 인터럽트들이 상기 제1 시간에 펜딩중이면, 상기 코어에 의해 처리될 상기 복수의 인터럽트들을, 각각의 상기 복수의 인터럽트들의 각각의 시간 딜레이의 완료 전에, 상기 코어에 전송하는 단계를 포함하고, 상기 코어는 상기 복수의 인터럽트들이 처리되는 동안 활성 상태로 유지된다.
예 19의 상기 방법을 포함하는 제20 예에서, 모든 펜딩중인 인터럽트들이 처리된 후에, 상기 코어를 비활성 상태로 천이시키는 단계를 포함한다.
예 16의 상기 방법을 포함하는 제21 예에서, 주변 디바이스로부터 상기 제2 인터럽트가 수신되고 상기 주변 디바이스의 하나 이상의 특성들에 기초하여 상기 시간 딜레이가 결정된다.
예 16의 상기 방법을 포함하는 제22 예에서, 복수의 인터럽트들 각각에 대응하는 시간 딜레이를 할당하는 단계를 더 포함하고, 상기 복수의 인터럽트들 각각은 처리되는 것이, 다른 인터럽트가 처리중이 아니면, 상기 각각의 수신된 시간으로부터 시작하는 대응하는 시간 딜레이만큼 지연된다.
예 22의 상기 방법을 포함하는 제23 예에서, 특정 인터럽트가 처리되기 시작할 때, 대응하는 시간 딜레이의 완료 없이 각각의 펜딩중인 인터럽트를 처리를 위해 상기 코어에 전송하는 단계를 포함한다.
제24 예에서, 장치는 예16 내지 예23 중 어느 하나의 방법을 수행하는 수단을 포함한다.
제25 예에서, 적어도 하나의 컴퓨터 판독가능 매체는 명령어들을 포함하고, 상기 명령어들은 실행될 때 시스템으로 하여금 예16 내지 예23 중 어느 하나의 방법을 수행할 수 있게 한다.
실시예들은 많은 상이한 타입들의 시스템들에서 사용될 수 있다. 예를 들어, 일 실시예에서 통신 디바이스는 본 명세서에 기술된 다양한 방법들과 기술들을 수행하도록 구성될 수 있다. 물론, 본 발명의 범위는 통신 디바이스로 제한되지 않고, 그 대신, 다른 실시예들은 명령어들을 처리하기 위한 다른 타입들의 장치에 관한 것일 수 있거나, 또는 컴퓨팅 디바이스 상에서 처리되는 것에 응답하여 디바이스로 하여금 본 명세서에 기술되는 방법들 및 기법들 중 하나 이상을 실행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체에 관한 것일 수 있다.
실시예들은 코드로 구현될 수 있으며, 명령어들을 수행하도록 시스템을 프로그래밍하기 위해 사용될 수 있는 명령어들이 저장되어 있는 비일시적 저장 매체에 저장될 수 있다. 저장 매체는 플로피 디스크들, 광 디스크들, 솔리드 스테이트 드라이브들(SSD들), 콤팩트 디스크 판독 전용 메모리들(CD-ROM들), 재기록가능 콤팩트 디스크들(CD-RW들), 및 광자기 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리들(ROM들), 동적 랜덤 액세스 메모리들(DRAM들) 및 정적 랜덤 액세스 메모리들(SRAM들)과 같은 랜덤 액세스 메모리들(RAM들), 소거가능한 프로그램가능 판독 전용 메모리들(EPROM들), 플래시 메모리들, 전기적으로 소거가능한 프로그램가능 판독 전용 메모리들(EEPROM들), 자기 또는 광 카드들 등의 반도체 디바이스들, 또는 전자 명령어들을 저장하기에 적합한 임의의 다른 타입의 매체를 포함할 수 있지만, 그것들로 제한되지 않는다.
본 발명은 제한된 개수의 실시예들과 관련하여 설명되었지만, 본 기술분야의 통상의 기술자들은 그것들로부터의 다양한 수정들 및 변형들을 이해할 것이다. 첨부된 청구항들은 본 발명의 진정한 사상과 범위 내에 속하는 모든 그러한 수정들과 변형들을 포함하도록 의도된다.

Claims (25)

  1. 프로세서로서,
    제1 코어를 포함하는 적어도 하나의 코어; 및
    인터럽트 딜레이 로직을 포함하고, 상기 인터럽트 딜레이 로직은,
    제1 시간에 제1 인터럽트를 수신하고;
    제2 인터럽트가 상기 제1 코어에 의해 처리되는 제2 시간에 상기 제1 인터럽트가 펜딩중이 아니면, 상기 제1 인터럽트가 처리되는 것을 상기 제1 시간에 시작하는 제1 시간 딜레이만큼 지연시키고;
    상기 제1 인터럽트가 상기 제2 시간에 펜딩중이면, 상기 제1 시간 딜레이의 완료 전에 상기 제1 인터럽트의 처리를 시작하도록 상기 제1 코어에게 지시하는, 프로세서.
  2. 제1항에 있어서, 복수의 수신된 인터럽트들이 상기 제2 시간에 펜딩중일 때, 상기 제1 코어는 상기 제2 시간에 시작하는 제1 활성 기간 동안 복수의 펜딩중인 인터럽트들을 처리하고, 상기 제1 코어는 상기 제1 활성 기간에 걸쳐 활성 상태로 유지되는, 프로세서.
  3. 제2항에 있어서, 상기 제2 인터럽트 및 상기 복수의 펜딩중인 인터럽트들이 처리된 후 상기 제1 코어는 상기 활성 상태로부터 비활성 상태로 천이하는, 프로세서.
  4. 제1항에 있어서, 상기 제1 코어는, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리되는 동안 활성 상태로 유지되고, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리된 후에 비활성 상태로 천이하는, 프로세서.
  5. 제1항에 있어서, 상기 제2 인터럽트는 주기적으로 수신되고, 수신되는 상기 제2 인터럽트의 각각의 발생에 대해, 상기 제2 인터럽트는 고의적인 딜레이 없이 상기 제1 코어에 의해 처리되고, 상기 인터럽트 딜레이 로직은, 대응하는 시간 딜레이의 완료 전에 그리고 상기 코어가 활성 상태로 유지되는 동안, 각각의 추가의 펜딩중인 인터럽트의 처리를 시작하도록 상기 제1 코어에 지시하는, 프로세서.
  6. 제5항에 있어서, 상기 제2 인터럽트의 수신의 각각의 발생에 대해, 상기 제2 인터럽트 및 상기 추가의 펜딩중인 인터럽트들의 처리의 완료 시에, 상기 제1 코어는 비활성 상태로 천이하는, 프로세서.
  7. 제1항에 있어서, 상기 인터럽트 딜레이 로직은 또한 제3 시간에 제3 인터럽트를 수신하고 상기 제3 인터럽트에 제2 시간 딜레이를 할당하고, 상기 인터럽트 딜레이 로직은,
    상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리중인 동안 상기 제3 인터럽트가 펜딩중이 아니면, 상기 제3 인터럽트의 처리를 상기 제3 시간으로부터 상기 제2 시간 딜레이만큼 지연시키고;
    상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리중인 동안 상기 제3 인터럽트가 펜딩중이면, 상기 제2 시간 딜레이의 완료 없이 상기 제3 인터럽트를 처리하도록 상기 제1 코어에 지시하는, 프로세서.
  8. 제7항에 있어서, 상기 제1 인터럽트 또는 상기 제2 인터럽트가 처리될 동안 상기 제3 인터럽트가 펜딩중이 아니면, 상기 인터럽트 딜레이 로직은 상기 제2 시간 딜레이의 완료 후에 상기 제3 인터럽트를 처리하도록 상기 코어에 지시하는, 프로세서.
  9. 제1항에 있어서, 상기 인터럽트 딜레이 로직은 상기 제1 시간 딜레이를 카운트하는 카운터를 포함하는, 프로세서.
  10. 시스템으로서,
    다이내믹 랜덤 액세스 메모리(DRAM); 및
    프로세서를 포함하고, 상기 프로세서는,
    하나 이상의 코어들;
    하나 이상의 수신된 인터럽트들 각각을 상기 하나 이상의 코어들 중 제1 코어에 유도하는 인터럽트 제어기; 및
    인터럽트 딜레이 제어기를 포함하고, 상기 인터럽트 딜레이 제어기는,
    대응하는 인터럽트를 처리하기 위한 각각의 시간 딜레이를 카운트하는 하나 이상의 딜레이 카운터들 - 각각의 딜레이 카운터는 상기 프로세서에 의한 상기 대응하는 인터럽트의 수신시에 각각의 카운트를 시작함 -; 및
    제1 인터럽트가 처리중인 것에 응답하여, 각각의 펜딩중인 인터럽트를 각각의 시간 딜레이의 만료 전에 상기 인터럽트 제어기에 전송하는 펜딩 인터럽트 방출 로직을 포함하는, 시스템.
  11. 제10항에 있어서, 제2 인터럽트와 연관된 각 시간 딜레이 동안 어떤 인터럽트도 처리중이 아니면, 상기 인터럽트 딜레이 제어기는 상기 대응하는 딜레이 카운터의 카운트의 완료시에 인터럽트를 상기 인터럽트 제어기에 전송하는, 시스템.
  12. 제10항에 있어서, 상기 제2 딜레이 카운터의 카운트가 완료할 때, 상기 펜딩 인터럽트 방출 로직은 상기 제1 코어가 활성 상태에 있는 동안, 처리될 각각의 펜딩중인 인터럽트를 상기 인터럽트 제어기에 전송하는, 시스템.
  13. 제10항에 있어서, 펜딩중인 인터럽트들이 처리된 후에, 대응하는 코어가 비활성으로 되는, 시스템.
  14. 제10항에 있어서, 상기 프로세서는, 하드 인터럽트의 수신시에, 고의적인 딜레이 없이 상기 하드 인터럽트를 상기 인터럽트 제어기에 전송하는 인터럽트 검출 로직을 더 포함하는, 시스템.
  15. 제10항에 있어서, 상기 프로세서는, 수신된 각각의 소프트 인터럽트에 대응하는 딜레이 카운터를 할당하는 카운터 할당 로직을 더 포함하는, 시스템.
  16. 방법으로서,
    프로세서의 코어에 의해 제1 시간에 시작하는 제1 인터럽트를 처리하는 단계;
    상기 프로세서에 의해, 제2 시간에 수신된 제2 인터럽트에 시간 딜레이를 할당하는 단계;
    상기 제2 인터럽트가 상기 제1 시간에 펜딩중이 아니면, 상기 제2 시간에 시작하는 상기 시간 딜레이의 만료 후에 상기 코어에 의해 상기 제2 인터럽트를 처리하는 단계; 및
    상기 제2 인터럽트가 상기 제1 시간에 펜딩중이면, 상기 시간 딜레이의 만료 전에 상기 코어에 의해 상기 제2 인터럽트를 처리하는 단계를 포함하는, 방법.
  17. 제16항에 있어서, 상기 제2 인터럽트가 상기 제1 시간에 펜딩중이면, 상기 제1 인터럽트의 처리에 응답하여 상기 코어가 활성 상태에 있는 동안 상기 제2 인터럽트를 처리하는 단계를 포함하는, 방법.
  18. 제16항에 있어서, 상기 제1 인터럽트 및 상기 제2 인터럽트가 처리된 후에, 상기 코어를 비활성 상태로 천이시키는 단계를 더 포함하는, 방법.
  19. 제16항에 있어서, 복수의 인터럽트들이 상기 제1 시간에 펜딩중이면, 상기 코어에 의해 처리될 상기 복수의 인터럽트들을, 각각의 상기 복수의 인터럽트들의 각각의 시간 딜레이의 완료 전에, 상기 코어에 전송하는 단계를 더 포함하고, 상기 코어는 상기 복수의 인터럽트들이 처리되는 동안 활성 상태로 유지되는, 방법.
  20. 제19항에 있어서, 모든 펜딩중인 인터럽트들이 처리된 후에, 상기 코어를 비활성 상태로 천이시키는 단계를 더 포함하는, 방법.
  21. 제16항에 있어서, 상기 제2 인터럽트가 수신되는 주변 디바이스의 하나 이상의 특성들에 기초하여 상기 시간 딜레이가 결정되는, 방법.
  22. 제16항에 있어서,
    복수의 인터럽트들 각각에 대응하는 시간 딜레이를 할당하는 단계를 더 포함하고, 상기 복수의 인터럽트들 각각은 처리되는 것이, 다른 인터럽트가 처리중이 아니면, 상기 각각의 수신된 시간으로부터 시작하는 대응하는 시간 딜레이만큼 지연되는, 방법.
  23. 제22항에 있어서, 특정 인터럽트가 처리되기 시작할 때, 대응하는 시간 딜레이의 완료 없이 각각의 펜딩중인 인터럽트를 처리를 위해 상기 코어에 전송하는 단계를 더 포함하는, 방법.
  24. 장치로서, 제16항 내지 제23항 중 어느 한 항의 방법을 수행하는 수단을 포함하는, 장치.
  25. 명령어들을 포함하는 적어도 하나의 컴퓨터 판독가능 매체로서, 상기 명령어들은 실행될 때 시스템으로 하여금 제16항 내지 제23항 중 어느 한 항의 방법을 수행할 수 있게 하는, 적어도 하나의 컴퓨터 판독가능 매체.
KR1020167023040A 2014-03-24 2014-03-24 전력 소비를 감소시키기 위한 인터럽트 처리의 동기화 KR20160110509A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/073926 WO2015143594A1 (en) 2014-03-24 2014-03-24 Syncronization of interrupt processing to reduce power consumption

Publications (1)

Publication Number Publication Date
KR20160110509A true KR20160110509A (ko) 2016-09-21

Family

ID=54193839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023040A KR20160110509A (ko) 2014-03-24 2014-03-24 전력 소비를 감소시키기 위한 인터럽트 처리의 동기화

Country Status (8)

Country Link
US (1) US10089263B2 (ko)
EP (2) EP4086776A1 (ko)
JP (1) JP2017509059A (ko)
KR (1) KR20160110509A (ko)
CN (1) CN106030559A (ko)
DE (1) DE112014006501T5 (ko)
RU (1) RU2651238C2 (ko)
WO (1) WO2015143594A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208113B2 (en) * 2013-01-15 2015-12-08 Apple Inc. Deferred inter-processor interrupts
JP6489751B2 (ja) * 2014-03-27 2019-03-27 キヤノン株式会社 データ処理装置とその制御方法、及びプログラム
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp
US10585826B2 (en) * 2016-01-25 2020-03-10 Advanced Micro Devices, Inc. Using processor types for processing interrupts in a computing device
US10747298B2 (en) * 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US11030133B2 (en) 2018-08-30 2021-06-08 Qualcomm Incorporated Aggregated in-band interrupt based on responses from slave devices on a serial data bus line
LU100947B1 (en) * 2018-09-27 2020-03-27 Nanopower As Device connection system and method of operation
CN111723032B (zh) * 2019-03-21 2021-09-24 杭州宏杉科技股份有限公司 一种中断管控方法及电子设备
FR3094697B1 (fr) 2019-04-02 2021-03-19 Safran Helicopter Engines Installation propulsive hybride pour un aéronef
JP7374622B2 (ja) * 2019-06-17 2023-11-07 キヤノン株式会社 情報処理装置
CN110489089B (zh) * 2019-08-15 2022-12-30 孟庆瑞 基于中断管理框架的嵌入式***低功耗控制方法及***

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0474229A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 情報処理装置
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
US5708817A (en) * 1995-05-31 1998-01-13 Apple Computer, Inc. Programmable delay of an interrupt
US5905913A (en) * 1997-04-24 1999-05-18 International Business Machines Corporation System for collecting a specified number of peripheral interrupts and transferring the interrupts as a group to the processor
US6065089A (en) * 1998-06-25 2000-05-16 Lsi Logic Corporation Method and apparatus for coalescing I/O interrupts that efficiently balances performance and latency
US6115779A (en) * 1999-01-21 2000-09-05 Advanced Micro Devices, Inc. Interrupt management system having batch mechanism for handling interrupt events
US6529986B1 (en) * 1999-01-26 2003-03-04 3Com Corporation Interrupt optimization using storage time for peripheral component events
US6477600B1 (en) * 1999-06-08 2002-11-05 Intel Corporation Apparatus and method for processing isochronous interrupts
US6629252B1 (en) * 1999-10-28 2003-09-30 International Business Machines Corporation Method for determining if a delay required before proceeding with the detected interrupt and exiting the interrupt without clearing the interrupt
US7478186B1 (en) * 2004-06-03 2009-01-13 Integrated Device Technology, Inc. Interrupt coalescer for DMA channel
JP2009098972A (ja) * 2007-10-17 2009-05-07 Toshiba Corp 割り込み制御方法、および割り込みシステム
US8199758B2 (en) * 2008-02-13 2012-06-12 Qualcomm Incorporated Variable abort timer
EP2166457B1 (en) 2008-09-12 2014-04-23 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Interrupt controller and methods of operation
US10521265B2 (en) * 2008-09-19 2019-12-31 Microsoft Technology Licensing, Llc Coalescing periodic timer expiration in guest operating systems in a virtualized environment
US8612998B2 (en) * 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8244946B2 (en) * 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
JP5318139B2 (ja) * 2011-03-24 2013-10-16 株式会社東芝 制御装置およびプログラム
US9311137B2 (en) * 2012-09-28 2016-04-12 International Business Machines Corporation Delaying interrupts for a transactional-execution facility

Also Published As

Publication number Publication date
EP3123343A4 (en) 2017-11-22
DE112014006501T5 (de) 2017-01-05
EP3123343A1 (en) 2017-02-01
WO2015143594A8 (en) 2016-08-04
JP2017509059A (ja) 2017-03-30
US20170161096A1 (en) 2017-06-08
RU2651238C2 (ru) 2018-04-18
US10089263B2 (en) 2018-10-02
EP4086776A1 (en) 2022-11-09
CN106030559A (zh) 2016-10-12
WO2015143594A1 (en) 2015-10-01
RU2016134601A3 (ko) 2018-03-01
RU2016134601A (ru) 2018-03-01

Similar Documents

Publication Publication Date Title
KR20160110509A (ko) 전력 소비를 감소시키기 위한 인터럽트 처리의 동기화
CN106383570B (zh) 在处理器的异质核之间动态切换工作载荷
EP2171576B1 (en) Scheduling threads in a processor
CN114489306B (zh) 遮蔽处理器的核的功率状态
CN107407956B (zh) 用于在计算设备内的多个soc之间协调操作状态的方法和***
CN103842933B (zh) 多核平台中的受约束引导技术
US20100318693A1 (en) Delegating A Poll Operation To Another Device
WO2014105203A1 (en) Techniques for platform duty cycling
TWI739345B (zh) 中斷處理系統與中斷處理方法
KR101826088B1 (ko) 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들
US20090006696A1 (en) Computer system, processor device, and method for controlling computer system
US9958928B2 (en) Method and apparatus for controlling an operating mode of a processing module
EP2137617B1 (en) Processor instruction set
US10127076B1 (en) Low latency thread context caching
US20230185623A1 (en) Method of task transition between heterogenous processors
WO2013159464A1 (zh) 一种多核处理器时钟控制装置及控制方法
EP1387258A2 (en) Processor-processor synchronization
US9696790B2 (en) Power management through power gating portions of an idle processor
EP2137613B1 (en) Processor register architecture
US11347544B1 (en) Scheduling work items based on declarative constraints
US20220206971A1 (en) Interrupt and exception clustering in a processor using membership groups
US20220206972A1 (en) Interrupt and exception clustering in a processor using external event groups

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application