TW201504949A - 用於選擇性的計時器聯合之系統及方法 - Google Patents

用於選擇性的計時器聯合之系統及方法 Download PDF

Info

Publication number
TW201504949A
TW201504949A TW103117038A TW103117038A TW201504949A TW 201504949 A TW201504949 A TW 201504949A TW 103117038 A TW103117038 A TW 103117038A TW 103117038 A TW103117038 A TW 103117038A TW 201504949 A TW201504949 A TW 201504949A
Authority
TW
Taiwan
Prior art keywords
timer
timers
execution
time
priority
Prior art date
Application number
TW103117038A
Other languages
English (en)
Other versions
TWI566181B (zh
Inventor
Kumar R Derek
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of TW201504949A publication Critical patent/TW201504949A/zh
Application granted granted Critical
Publication of TWI566181B publication Critical patent/TWI566181B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本發明描述一種用於一器件之方法及裝置,該器件藉由使用一排程窗排程若干計時器來聯合該等計時器之執行。該器件判定若干計時器中之每一者的一排程窗。該器件選擇在該等計時器之該排程窗內的一經聯合執行時間。該器件藉由排程該等計時器以在該經聯合執行時間執行來聯合該等計時器之該執行。該器件可進一步藉由多個計時器之機會性執行來聯合該等計時器。回應於對一機會性執行觸發事件之一偵測,該器件接收多個計時器。該器件基於該等計時器中之每一者的一初始執行時間及一延時選擇該等計時器之一子集以執行。該器件在該機會性執行觸發事件期間或之前排程計時器之該子集中之每一者以執行。

Description

用於選擇性的計時器聯合之系統及方法
本發明大體而言係關於作業系統且更特定言之,係關於用於計時器管理之器件。
作業系統為管理器件硬體資源之軟體的集合且為電腦程式提供常用服務。作業系統為器件中之系統軟體的極重要組件。應用程式通常需要作業系統起作用。
中斷係作業系統之部分,因為中斷供作業系統與其環境互動及對其環境作出反應。當接收到中斷時,器件暫時中止當前正執行之程式,保存每一程式之狀態,且執行與該中斷相關聯之電腦程式碼。在現代作業系統中,作業系統之核心處置中斷。中斷可來自器件之硬體或來自執行之程式。
處理器閒置狀態為含有至少一處理器之計算器件的低功率模式。當計算器件進入處理器閒置狀態時,處理器時鐘為非作用中的以使得處理器無法執行指令,且處理器之至少數個部分被斷電。此情形使得計算器件能夠以減小之功率位準操作。
作業系統使用時間驅動型中斷(稱為計時器)來觸發週期性活動。每一計時器產生由作業系統處置之中斷。由作業系統產生之中斷的數目大體隨器件執行更多應用程式且隨此等應用程式利用更多器件硬體資源而增加。因此,器件將被更頻繁地中斷且具有進入或保持處於睡 眠模式、處理器閒置狀態或另一低功率模式之較少機會。因此,需要用於允許器件保持處於低功率模式歷時較長時間週期以便減少功率消耗同時仍提供計時器的技術。
描述一種用於一器件之方法及裝置,該器件藉由使用一排程窗排程多個計時器來聯合該等計時器之執行。在一例示性實施例中,該器件接收多個計時器,其中該等計時器中之每一者包括一初始執行時間及一延時。該器件進一步基於該等計時器中之每一者的該初始執行時間及該延時判定彼計時器之一排程窗。該器件選擇在該等計時器中之一或多者之該排程窗內的一經聯合執行時間。該器件進一步藉由排程多個計時器中之每一者以在該經聯合執行時間執行來聯合該等計時器之該執行。
在另一實施例中,描述一種用於一器件之方法及裝置,該器件藉由多個計時器之機會性執行來聯合此等計時器。該器件偵測一機會性執行觸發事件。回應於對該機會性執行觸發事件之該偵測,該器件接收多個計時器,其中該等計時器中之每一者包括一初始執行時間及一延時。該器件進一步基於該等計時器中之每一者的該初始執行時間、該等計時器中之每一者的該延時及該機會性執行觸發事件選擇該等計時器之一子集以執行。該器件另外藉由回應於對該機會性執行觸發事件之一偵測而排程計時器之該子集中的每一者以執行而聯合計時器之該子集之該執行。
在一實施例中,該等所接收計時器中之每一者為一軟體計時器。在一實施例中,每一計時器進一步包括一計時器優先權。該器件進一步基於該等計時器中之一者的該計時器優先權判定彼計時器之該延時。在一實施例中,每一計時器與一任務相關聯且每一計時器之該計時器優先權係基於該相關聯任務之任務優先權。在一實施例中,一 計時器之該延時為彼計時器之該執行可被延遲的時間量。
在另一實施例中,描述一種用於一器件之方法及裝置,該器件對一計時器之執行進行速率限制。該器件接收一計時器,該計時器包括一初始執行計時器及一計時器優先權。若該計時器優先權為低,則該器件基於與該計時器優先權相關聯之一抑制週期對該計時器之該執行進行速率限制。在一實施例中,為了對該計時器之該執行進行速率限制,該器件基於該計時器優先權判定該抑制週期且排程該計時器以在該抑制週期結束時執行。在一實施例中,不同抑制週期與不同計時器優先權相關聯。另外,當該計時器優先權為高時,該器件排程該計時器以在該初始執行時間執行。
亦描述其他方法及裝置。
100‧‧‧器件
102‧‧‧作業系統
104A‧‧‧使用者應用程式任務
104B‧‧‧使用者應用程式任務
104C‧‧‧使用者應用程式任務
106A‧‧‧系統任務
106B‧‧‧系統任務
106C‧‧‧系統任務
108‧‧‧高優先權任務
110‧‧‧低優先權任務
118‧‧‧任務
120‧‧‧核心
122‧‧‧任務管理模組
125‧‧‧計時器管理模組
130‧‧‧計時器佇列
132A‧‧‧計時器
132B‧‧‧計時器
132C‧‧‧計時器
132D‧‧‧計時器
132E‧‧‧計時器
132F‧‧‧計時器
200‧‧‧時刻表
202A‧‧‧計時器
202B‧‧‧計時器
202C‧‧‧計時器
204A‧‧‧時間
204B‧‧‧時間
204C‧‧‧時間
206‧‧‧計時器屬性表
300‧‧‧時刻表
302A‧‧‧計時器
302B‧‧‧計時器
302C‧‧‧計時器
304A‧‧‧時間
304B‧‧‧時間
304C‧‧‧時間
304D‧‧‧時間
304E‧‧‧時間
304F‧‧‧時間
306‧‧‧計時器屬性表
308A‧‧‧排程窗
308B‧‧‧排程窗
308C‧‧‧排程窗
310‧‧‧經聯合執行時間
400‧‧‧用以基於多個計時器之排程窗而聯合該等計時器之執行的處理程序
500‧‧‧時刻表
502A‧‧‧計時器
502B‧‧‧計時器
502C‧‧‧計時器
504A‧‧‧初始執行時間
504B‧‧‧時間點
504C‧‧‧經排程之執行時間
504D‧‧‧時間點
504E‧‧‧時間點
504F‧‧‧時間點
504G‧‧‧時間點
506‧‧‧計時器屬性表
508A‧‧‧排程窗
508B‧‧‧排程窗
508C‧‧‧排程窗
510‧‧‧機會性執行觸發事件
600‧‧‧用以藉由回應於偵測到機會性執行觸發事件而進行計時器之機會性執行來聯合該等計時器的處理程序
702‧‧‧計時器管理模組排程計時器
704A‧‧‧時間
704B‧‧‧時間
704C‧‧‧時間
704D‧‧‧時間
704E‧‧‧時間
706‧‧‧抑制週期
800‧‧‧用以對計時器之執行進行速率限制的處理程序
900‧‧‧計時器管理模組
910‧‧‧排程聯合模組
912‧‧‧排程窗識別模組
914‧‧‧執行時間選擇模組
920‧‧‧機會性執行模組
922‧‧‧觸發事件偵測模組
924‧‧‧計時器選擇模組
930‧‧‧速率限制模組
932‧‧‧速率限制判定模組
934‧‧‧速率限制排程模組
1000‧‧‧資料處理系統
1003‧‧‧匯流排
1004‧‧‧快取記憶體
1005‧‧‧微處理器
1007‧‧‧唯讀記憶體(ROM)
1009‧‧‧揮發性RAM
1010‧‧‧I/O控制器
1011‧‧‧非揮發性記憶體
1013‧‧‧顯示控制器及顯示器件
1015‧‧‧輸入/輸出器件
1017‧‧‧輸入/輸出控制器
1100‧‧‧資料處理系統
1101‧‧‧記憶體
1103‧‧‧無線收發器
1105‧‧‧音訊輸入/輸出子系統
1109‧‧‧顯示控制器及顯示器件
1111‧‧‧處理系統
1113‧‧‧輸入器件
1115‧‧‧輸入/輸出器件
1117‧‧‧通信埠
在隨附圖式之諸圖中藉由實例且無限制地說明本發明,在諸圖中,相似參考標號指示類似元件。
圖1為一器件之一實施例之方塊圖,該器件聯合計時器之執行且對計時器之執行進行速率限制。
圖2(先前技術)說明一種用於執行計時器之方法。
圖3說明在一實施例中藉由使用排程窗排程計時器來聯合該等計時器。
圖4說明用以基於計時器之排程窗聯合該等計時器的一處理程序之一實施例的流程圖。
圖5說明在一實施例中藉由回應於機會性執行觸發事件而進行計時器之機會性執行來聯合計時器。
圖6說明用以藉由回應於偵測到機會性執行觸發事件而進行計時器之機會性執行來聯合該等計時器的一處理程序之一實施例的流程圖。
圖7A及圖7B說明在一實施例中對計時器之執行進行速率限制。
圖8說明用以對計時器之執行進行速率限制的一處理程序之一實施例的流程圖。
圖9為一實施例之計時器管理模組之方塊圖。
圖10說明可供本發明之一實施例使用的一資料處理系統之一實例。
圖11說明可供本發明之一實施例使用的另一資料處理系統之一實例。
描述一種用於一器件之方法及裝置,該器件聯合計時器之執行且對計時器之執行進行速率限制。在以下描述中,闡述眾多特定細節以提供對本發明之實施例之透徹解釋。然而,熟習此項技術者將顯而易見,可在無此等特定細節的情況下實踐本發明之實施例。在其他例子中,未詳細展示熟知之組件、結構及技術以免混淆對此描述之理解。
本說明書中對「一實施例(one embodiment或an embodiment)」之參考意謂結合該實施例所描述之特定特徵、結構或特性可包括於本發明之至少一實施例中。片語「在一實施例中」在本說明書中之各處的出現未必皆指相同實施例。
在以下描述及申請專利範圍中,可能使用術語「耦接」及「連接」以及其衍生詞。應理解,此等術語並不意欲作為彼此之同義詞。「耦接」用以指示兩個或兩個以上元件(其彼此可能或可能不直接實體或電接觸)彼此合作或互動。「連接」用以指示在彼此耦接的兩個或兩個以上元件之間建立通信。
以下諸圖中所描繪之處理程序係由包含硬體(例如,電路、專用邏輯等)、軟體(諸如,在通用器件或專用機器上執行)或兩者之組合的 處理邏輯來執行。儘管下文依據一些順序操作描述該等處理程序,但應瞭解,可以不同次序來執行所描述之操作中的一些操作。此外,可並行地而非順序地執行一些操作。
術語「伺服器」、「用戶端」及「器件」意欲大體指資料處理系統而非具體地指伺服器、用戶端及/或器件之特定外觀尺寸。
描述一種用於一器件之方法及裝置,該器件管理計時器之執行以便減少器件之功率消耗。在一實施例中,計時器執行可造成器件上之中斷。頻繁中斷可進一步阻止器件進入或保持處於低功率模式(例如,處理器閒置狀態),此情形可增加器件之功率消耗。另外,器件之操作耗用隨頻繁中斷及器件之高功率模式與低功率模式之間的切換而增加。在一實施例中,器件基於計時器之排程窗聯合計時器之執行以便減少由計時器調用之中斷的數目。在另一實施例中,用於一器件之方法及裝置回應於偵測到一機會性執行觸發事件而機會性地執行計時器以便減少由該等計時器調用之中斷的數目。在又一實施例中,用於一器件之方法及裝置對計時器之執行進行速率限制以使得較低優先權計時器執行得較不頻繁且調用器件上之較少中斷。
圖1為聯合計時器之執行且對計時器之執行進行速率限制的器件100之一實施例的方塊圖。在一實施例中,器件100可為桌上型電腦、伺服器、智慧型電話、膝上型電腦、個人數位助理、音樂播放器件、遊戲器件或可執行多個處理程序之任何其他器件。在圖1中,器件100包括作業系統102,該作業系統為用以管理器件硬體資源之軟體集合且為其他正執行之電腦程式(諸如,應用程式)提供常用服務。作業系統102包括核心120及計時器佇列130,且管理若干任務118。
在一實施例中,作業系統102藉由排程器件100之處理器以執行若干執行之任務118中之每一者來管理該等執行之任務。任務118包括兩個類別:高優先權任務108及低優先權任務110。如圖1中所說明, 高優先權任務108包括使用者應用程式任務104A與104B及系統任務106C。低優先權任務110包括系統任務106A與106B及使用者應用程式任務104C。
在一實施例中,任務為處理程序,其為正執行之電腦程式之執行個體。在此實施例中,任務可為由於使用者輸入而正執行之使用者應用程式。任務之另一實例係為使用者應用程式提供一或多個服務之系統處理程序、另一系統處理程序、其他處理程序等。舉例而言,在一實施例中,系統處理程序給出無線熱點服務之狀態、列出已安裝之應用程式、促進搜尋、監視及調整器件功率設定等。在另一實施例中,任務係執行緒,其為經程式化指令之最小序列,該等程式化指令可獨立地由作業系統排程器來管理。在一實施例中,執行緒包含於處理程序內部。多個執行緒可存在於相同處理程序內且共用諸如記憶體之資源,而不同處理程序不共用此等資源。
在一實施例中,一些任務可具有高於或低於其他任務之優先權。任務優先權係指示緊急性,當存在需要執行之許多任務時,關於緊急性來排程待執行(run或execute)之彼任務。此任務優先權由作業系統用以排程將執行一任務之時間及將執行該任務之速度。在一實施例中,具有高於其他任務之優先權的任務將消耗更大量之器件資源(例如,處理器資源等)。在一實施例中,作業系統將高任務優先權指派給具有高服務品質要求(例如,快速服務回應時間)之任務且將低任務優先權指派給具有低服務品質要求之任務。
在一實施例中,可基於自最低優先權至最高優先權之數字範圍來指派優先權。舉例而言且在一實施例中,優先權範圍之範圍可為一至十、0至127、低/高或另一值範圍。
在一實施例中,使用者應用程式任務104A及104B可在前景中執行,而系統任務106A及106B以低於使用者應用程式任務104A及104B 之優先權在背景中執行。在前景中執行之任務為與使用者互動之任務或執行即時操作之任務。在背景中執行之任務為既不與使用者互動亦不執行即時操作之任務。舉例而言且在一實施例中,在器件100上之前景中執行的使用者應用程式任務104A可為顯示於器件100之輸出器件上的使用者應用程式。在此實施例中,器件100可同時執行未顯示於器件上而是改為與其他任務通信之一或多個系統任務。此等系統任務將在背景中執行且非使用者直接可見的。在另一實施例中,背景任務可為部分地或完全地可檢視的,但並非器件使用者介面之焦點。
在一實施例中,可在任務之執行期間改變任務之優先權。舉例而言且在一實施例中,若在前景中執行之使用者應用程式任務104A需要系統任務106C之服務,則作業系統102促進系統任務106C變成高優先權任務以便防止使用者應用程式任務104A之執行速度減緩。舉例而言且在一實施例中,當在前景中執行之使用者應用程式需要存取器件之硬碟時,作業系統102將促進管理該硬碟之系統任務成為高優先權。在另一實例中且在另一實施例中,當使用者應用程式任務104C不再與使用者互動或其使用者介面(UI)被另一任務之UI遮蔽時,作業系統102將使用者應用程式任務104C降級為較低優先權任務。
在一實施例中,作業系統102管理計時器佇列130。計時器佇列130為計時器集合。在一實施例中,將計時器佇列130實施為經排序之雙向連結串列(doubly linkcd list)。熟習此項技術者將認識到,可將計時器佇列130實施於許多不同資料結構(諸如,堆疊、佇列、二元樹、雜湊表、堆等)中。
計時器向作業系統102提供時間驅動型中斷源以觸發週期性活動。在一實施例中,計時器經程式化以基於與計時器相關聯之中斷間隔而期滿。若計時器於系統時間0毫秒經程式化且具有10毫秒之中斷時間,則核心120將該計時器程式化以在等於10毫秒之系統時間期 滿。計時器可為數位計數器,其以固定頻率(其可為可組態的)遞增或遞減且在達到零時中斷處理器。
在另一實施例中,計時器經程式化以基於與計時器相關聯之中斷間隔而週期性地期滿。若計時器具有10毫秒之中斷間隔,則核心120將在設定計時器之後將計時器程式化以每隔10毫秒期滿。此情形意謂計時器每隔10毫秒中斷一次器件。
器件中斷為由硬體或軟體發射至器件100之信號,其指示需要立即注意之事件。器件100藉由暫時中止其當前活動、保存其狀態及執行被稱為中斷處理常式(或中斷服務常式ISR)之程式碼以處置事件來作出回應。若器件100處於處理器閒置狀態,則器件100將使其自身轉變至功率高於處理器閒置狀態之功率的模式以處置該事件。在一實施例中,器件100將自處理器閒置狀態轉變至正常操作模式以處置相關聯事件。非計時器器件中斷為並非由計時器之啟動造成的器件中斷(例如,硬體中斷)。
核心120包括任務管理模組122及計時器管理模組125。在圖1中且在一實施例中,核心120處置任務118及計時器佇列130。在另一實施例中,核心120使用任務管理模組122來處置任務118且使用計時器管理模組125來處置計時器佇列130。
在另一實施例中,計時器管理模組125管理計時器佇列130及儲存於計時器佇列130中之對應計時器。舉例而言且在一實施例中,計時器管理模組125將每一計時器排入佇列及移出佇列。另外,計時器管理模組125排程每一計時器之執行時間且在其對應執行時間執行該等計時器。計時器管理模組125聯合多個計時器之執行且對多個計時器之執行進行速率限制以便使器件保持處於低功率模式歷時較長時間週期,因此減少功率消耗。
圖2(先前技術)說明用於執行計時器202A至202C之時刻表200。 具體言之,圖2說明經排程以按固定排程表執行之三個計時器202A至202C。如計時器屬性表206中及時刻表200上所展示,存在經排程以分別於三個不同時間204A至204C執行之三個計時器202A至202C。每一計時器之執行時間係固定的,此係因為計時器202A至202C中之每一者具有一固定時間,在該固定時間中,此計時器期滿且作業系統執行用於對應於此計時器之中斷的中斷服務處理常式。在一實施例中,由於計時器之執行時間係固定的,因此計時器202A至202C之執行將造成對器件之三個單獨中斷。在此實施例中,若器件在每一計時器期滿之間進入低功率模式(例如,處理器閒置狀態),則器件將在器件處於低功率模式下時醒來三次以處置此等中斷請求。器件之不同操作模式之間的此等轉變迫使器件在低功率模式下花費較少時間且增加器件之功率消耗。此外,不同模式之間的頻繁切換增加了器件之操作耗用及功率消耗。
為了使器件保持處於低功率模式歷時較長時間週期以減少功率消耗,作業系統可管理計時器之執行以使由計時器造成之中斷的數目最小化。圖3說明時刻表300,其用於在一實施例中藉由使用此等計時器302A至302C中之每一者的排程窗308A至308C排程此等計時器302A至302C來聯合該等計時器302A至302C。在圖3中,可藉由基於與每一計時器302A至302C相關聯之延時界定該計時器之排程窗308A至308C來聯合此等計時器302A至302C。在一實施例中,排程窗界定一時間範圍,在該時間範圍中,作業系統可延遲計時器之執行。在此實施例中,每一計時器302A至302C之排程窗係經排程之執行時間與經排程之執行時間加上延時所得時間之間的時間範圍。圖3識別時刻表300上之若干不同時間點304A至304F。
如計時器屬性表306中所說明,存在三個計時器302A至302C。計時器302A至302C中之每一者具有一計時器優先權、一初始執行時 間、一延時及一經排程之執行時間。舉例而言且在一實施例中,計時器302A具有計時器優先權3、初始執行時間304A、1000毫秒之延時,且經排程之執行時間係在時間304C。在此實施例中,計時器302A具有橫跨時間304A至304F之排程窗308A,其為1000毫秒之時間範圍。因此,作業系統可在時間304A至304F之間執行計時器302A。
在一實施例中,計時器優先權為指派給計時器之優先權。在一實施例中,計時器優先權之指派係基於計時器與之相關聯的任務之優先權。舉例而言且在一實施例中,若計時器與高優先權任務相關聯,則將高計時器優先權指派給此計時器。若計時器與低優先權任務相關聯,則將低計時器優先權指派給此計時器。在另一實施例中,計時器優先權之指派並非基於計時器與之相關聯的任務之優先權,而是改為基於與彼計時器相關聯之操作。舉例而言,低優先權任務可開始需要相關聯計時器具有高計時器優先權之即時操作(例如,播放音訊信號)。在一實施例中,計時器所具有之優先權愈高,作業系統指派給彼計時器以作為計時器優先權的值愈小。舉例而言,計時器302C具有計時器優先權1,其小於計時器302A之計時器優先權。因此,計時器302C具有高於計時器302A之優先權。
初始執行時間為計時器管理模組最初排程計時器以執行時的時間。然而,不是每一計時器具有一固定執行時間,計時器管理模組允許將每一計時器之執行延遲高達一延時,該延時在初始執行時間開始執行。因此,計時器管理模組可在初始執行時間與初始執行時間加上延時所得時間之間的任何時間執行計時器。將初始執行時間與延時結束之間的時間範圍稱為計時器之排程窗。舉例而言,計時器302B具有304B處之初始執行時間及500毫秒之延時。計時器302B之延時始於304B處,持續500毫秒,且結束於304E處。因此,304B與304E之間的時間週期為計時器302B之排程窗308B。類似地,304A與304F之間的 時間週期為計時器302A之排程窗308A,304C與304D之間的時間週期為計時器302C之排程窗。
在一實施例中,作業系統基於計時器優先權判定延時之長度。計時器所具有之優先權愈高,指派給計時器之延時愈短。舉例而言,因為計時器302C具有高於計時器302A及302B之計時器優先權,所以作業系統向計時器302C指派100毫秒之延時,其比計時器302A及302B之延時短。類似地,作業系統向計時器302B指派500毫秒之延時,其比計時器302A之延時(1000毫秒)短,此係因為計時器302B具有高於計時器302A之優先權。
因為每一計時器具有排程窗而非固定執行時間,所以計時器管理模組能夠選擇在多個計時器之排程窗內的執行時間且排程彼等計時器以在相同的選定執行時間執行。舉例而言且在一實施例中,因為時間304C係在計時器302A至302C之排程窗308A至308C內,所以計時器管理模組可選擇時間304C作為經聯合執行時間310且排程計時器302A至302C以在經聯合執行時間310執行。藉由使用排程窗308A至308C來聯合計時器302A至302C之執行而非調用多個中斷,作業系統調用一個中斷來處理彼等多個計時器。因此,器件可保持處於低功率模式歷時較長時間週期且器件之功率消耗得以減少。
圖4說明用以基於多個計時器之排程窗聯合該等計時器之執行的處理程序400之一實施例的流程圖。在一實施例中,計時器管理模組執行處理程序400以基於計時器之排程窗聯合該等計時器。在一實施例中,處理程序400使用排程窗來判定多個計時器之經聯合執行時間。在圖4中,處理程序400以接收(在區塊405處)多個計時器開始,其中此等計時器中之每一者具有一初始執行時間及一延時。在一實施例中,計時器管理模組基於每一計時器之優先權將延時指派給該計時器,如上文在圖3中所描述。
在區塊410處,處理程序400基於所接收計時器中之每一者的初始執行時間及延時判定排程窗。不同計時器具有不同初始執行時間及不同延時。在一實施例中,一些計時器之排程窗在時間上彼此重疊。舉例而言且在一實施例中,在304C至304D(包括304C及304D)之間的時間內,圖3中之計時器302A至302C的排程窗彼此重疊。
在區塊415處,處理程序400選擇在該等計時器中之一些計時器或全部計時器之排程窗內的經聯合執行時間。在一實施例中,處理程序400選擇在該等所接收計時器中之一些計時器或全部計時器之重疊排程窗內的經聯合執行時間。舉例而言且在一實施例中,處理程序400選擇圖3之時間304C作為計時器302A至302C之經聯合執行時間310,此係因為時間304C係在計時器302A至302C之重疊排程窗內。處理程序400排程(在區塊420處)每一計時器以在經聯合執行時間執行。舉例而言且在一實施例中,處理程序400排程圖3之計時器302A至302C以在經聯合執行時間310執行。在區塊425處,處理程序在經聯合執行時間執行每一計時器。處理程序400接著結束。
在一實施例中,處理程序400可能不能夠找到所有該等所接收計時器之重疊排程窗。在此實施例中,處理程序400判定具有重疊排程窗之所接收計時器之一子集且選擇在計時器之該子集之重疊時間週期內的經聯合執行時間。處理程序400排程在此所判定之子集中的計時器以在經聯合執行時間執行。未在所判定之子集內的計時器被留下以供進一步排程。在一實施例中,處理程序400排程未經聯合之計時器以在初始執行時間執行。在另一實施例中,處理程序400可經歷另一反覆以找到未經聯合之計時器的經聯合執行時間。
一般熟習此項技術者將認識到,處理程序400為用以執行計時器聯合之操作的概念性表示。可能不以所展示及描述之確切次序來執行處理程序400之特定操作。可能不在一系列連續操作中執行特定操 作,且可在不同實施例中執行不同的特定操作。此外,可使用若干子處理程序來實施處理程序400,或可將處理程序400實施為較大巨集處理程序之部分。
機會性執行觸發事件為觸發計時器之機會性執行的事件(諸如,非計時器器件中斷或處理器閒置狀態進入)。舉例而言且在一實施例中,機會性執行觸發事件為非計時器器件中斷。如上文所描述,器件中斷為由硬體或軟體發射至器件之信號,其指示需要立即注意之事件。器件藉由暫時中止其當前活動、保存其狀態及執行被稱為中斷處理常式(例如,ISR)之小程式以處置該事件來作出回應。若器件處於處理器閒置狀態下,則器件將使其自身轉變至功率高於處理器閒置狀態之功率的模式以處置該事件。非計時器器件中斷為並非由計時器之啟動造成之器件中斷(例如,硬體中斷)。因此,在器件偵測到非計時器器件中斷的情況下,機會性地執行未決計時器將為有用的。
在另一實施例中,機會性執行觸發事件為處理器閒置狀態進入。在進入處理器閒置狀態之前使器件機會性地執行未決計時器以便使自處理器閒置狀態之退出最小化將為有用的。在一實施例中,計時器之機會性執行緊於進入處理器閒置狀態之前發生,此情形意謂計時器之機會性執行為進入處理器閒置狀態之前由處理器執行的最後的操作集合。在另一實施例中,在計時器之機會性執行與進入處理器閒置狀態之間存在一或多個介入操作。
圖5說明一實施例中之時刻表500,其用於藉由回應於偵測到機會性執行觸發事件而進行計時器之機會性執行來聯合計時器。圖5識別時刻表500上之若干不同時間點504A至504G。如計時器屬性表506中所說明,存在三個計時器502A至502C。此等計時器502A至502C中之每一者具有一計時器優先權、一初始執行時間、一延時及一經排程之執行時間。舉例而言,對於計時器502A而言,計時器優先權為3, 初始執行時間為504A,延時為1000毫秒,且經排程之執行時間為504C。
在一實施例中,計時器優先權為指派給計時器之優先權且可基於計時器與之相關聯的任務之優先權。在另一實施例中,計時器優先權並非基於計時器與之相關聯的任務之優先權。在一實施例中,計時器所具有之優先權愈高,作業系統指派給彼計時器以作為計時器優先權的值愈小。
初始執行時間為計時器最初經排程以執行時的時間。然而,不是每一計時器具有一固定執行時間,一實施例允許在每一計時器之排程窗內執行該計時器。因此,可在計時器排程窗中之任何時間執行計時器,該任何時間係藉由初始執行時間及初始執行時間加上延時來界定。如所展示,計時器502A之排程窗508A為504A與504G之間的時間週期,計時器502B之排程窗508B為504B與504F之間的時間週期,計時器502C之排程窗508C為504D與504E之間的時間週期。在一實施例中,基於計時器優先權判定延時之長度。計時器所具有之優先權愈高,指派給計時器之延時愈短。
因為每一計時器具有用以判定計時器執行之排程窗而非固定執行時間,所以當機會性執行觸發事件發生於多個計時器之排程窗內時,作業系統能夠執行此等計時器。舉例而言且在一實施例中,如圖5中所說明,若機會性執行觸發事件510發生於時間504C,則計時器管理模組可在時間504C執行計時器502A及502B,此係因為時間504C屬於排程窗508A及508B內。另外,計時器管理模組不會在時間504C執行計時器502C,此係因為時間504C並不屬於計時器502C之排程窗508C內。藉由回應於偵測到機會性執行觸發事件510而聯合計時器502A及502B之執行,將調用將使處理器自其閒置狀態退出的較少中斷。因此,器件可保持處於低功率模式歷時較長時間週期且功率消耗 得以減少。
圖6說明用以藉由回應於偵測到機會性執行觸發事件而進行計時器之機會性執行來聯合該等計時器的處理程序600之一實施例的流程圖。在一實施例中,計時器管理模組執行處理程序600以基於計時器之排程窗機會性地執行該等計時器。具體言之,圖6描述回應於偵測到機會性執行觸發事件而基於計時器之初始執行時間及延時選擇計時器之一子集以執行的處理程序600。在圖6中,處理程序600以偵測(在區塊605處)是否發生機會性執行觸發事件開始。在一實施例中,此機會性執行觸發事件為非計時器器件中斷。在一實施例中,非計時器器件中斷為硬體中斷。舉例而言且在一實施例中,處理程序600以偵測到鍵盤上之鍵被按下或滑鼠按鈕被點擊開始。在另一實施例中,機會性執行觸發事件為處理器閒置狀態進入。在一實施例中,計時器之機會性執行緊於進入處理器閒置狀態之前發生,此情形意謂計時器之機會性執行為進入處理器閒置狀態之前由處理器執行的最後的操作集合。在另一實施例中,在計時器之機會性執行與進入處理器閒置狀態之間存在一或多個介入操作。
在區塊610處,處理程序600接收一或多個計時器,其中每一計時器具有一初始執行時間及一延時。在一實施例中,計時器管理模組基於每一計時器之優先權將延時指派給該計時器。舉例而言,如上文圖5之計時器屬性表506中所說明,計時器502A之延時比計時器502B之延時長,此係因為計時器502A具有低於計時器502B之優先權。
在區塊615處,處理程序600基於每一所接收計時器之初始執行時間及延時判定排程窗。在一實施例中,將計時器之排程窗界定為初始經排程之執行時間至初始經排程之執行時間加上延時。在此實施例中,不同計時器可具有不同初始執行時間及不同延時。在一實施例中,該等計時器中之一些計時器或全部計時器的排程窗可在時間上彼 此重疊。舉例而言且在一實施例中,圖5中之計時器502A至502C的排程窗508A至508C在時間504D與504E之間彼此重疊且排程窗508A至508B在時間504B至504E之間重疊。
在區塊620處,處理程序600選擇所接收計時器中之計時器之一子集,其中所偵測到之機會性執行觸發事件發生於彼等計時器之排程窗內。在一實施例中,若機會性執行觸發事件發生於一計時器之排程窗內,則處理程序600選擇彼計時器。舉例而言,如圖5中所說明,處理程序600選擇計時器502A及502B,此係因為機會性執行觸發事件510分別發生於計時器502A及502B之排程窗508A及508B內。處理程序600回應於機會性執行觸發事件之偵測而排程(在區塊625處)該子集中之每一計時器以執行。舉例而言且在一實施例中,處理程序600回應於機會性執行觸發事件510之偵測而排程圖5之計時器502A及502B以執行。在一實施例中,處理程序600在機會性執行觸發事件期間排程(在區塊625處)該子集中之每一計時器以執行。在另一實施例中,處理程序600在機會性執行觸發事件之前排程(在區塊625處)該子集中之每一計時器以執行,此情形意謂計時器之子集之執行為發生機會性執行觸發事件之前由處理器執行的最後的指令集。在區塊630處,處理程序600在經排程之執行時間執行該子集中之每一計時器。
一般熟習此項技術者將認識到,處理程序600為用以執行計時器聯合之操作的概念性表示。可能不以所展示及描述之確切次序來執行處理程序600之特定操作。可能不在一系列連續操作中執行特定操作,且可在不同實施例中執行不同的特定操作。此外,可使用若干子處理程序來實施處理程序600,或可將處理程序600實施為較大巨集處理程序之部分。
應用程式使用計時器來為稍後發生之事件作準備。聯合計時器及計時器之機會性執行可減少器件在低功率模式期間被中斷的機會且 可進一步節省器件功率消耗。在一實施例中,計時器管理模組可對一或多個計時器進行速率限制以減少執行再次發生之計時器的頻率。在此實施例中,減小計時器執行之總頻率可節省功率消耗及系統資源,此係因為較不頻繁之計時器執行可造成器件之較不頻繁之中斷。
在一實施例中,計時器管理模組基於計時器之優先權對該計時器進行速率限制。在一實施例中,作業系統基於與每一計時器相關聯之任務的任務優先權判定該計時器之計時器優先權。當計時器與高優先權任務相關聯時,作業系統將高計時器優先權指派給該計時器,且當計時器與低優先權任務相關聯時,作業系統將低計時器優先權指派給該計時器。舉例而言,即時任務具有高優先權;因此計時器管理模組可能不對與即時任務相關聯之計時器進行速率限制。相反,計時器管理模組可對與低優先權任務(諸如,背景應用程式)相關聯之計時器進行速率限制。舉例而言,若計時器與週期性地更新應用程式窗之顯示(例如,窗之動畫)相關聯,則當該應用程式窗被另一窗遮蔽時,作業系統將給予該計時器低優先權且對該計時器之執行進行速率限制以便節省功率消耗及系統資源。
圖7A及圖7B說明在一實施例中對計時器之執行進行速率限制。具體言之,圖7A說明在不對計時器進行速率限制之情況下該計時器之執行。如圖7A中所說明,計時器管理模組排程計時器702以在時間704A執行且此後每隔250毫秒執行。因此,在不對計時器702進行速率限制之情況下,計時器管理模組排程計時器702以在時間704A至704E執行。存在與計時器702相關聯之抑制週期706(其長度為一秒),如圖7A中所說明。因此,抑制週期706在時間704A開始執行且在時間704E結束。在一實施例中,作業系統基於計時器702之優先權判定抑制週期706之長度。在此實施例中,作業系統將較長抑制週期指派給具有低優先權之計時器,以使得低優先權計時器受到速率限制歷時較 長時間週期。另外,作業系統將較短(或無)抑制週期指派給具有高優先權之計時器,以使得高優先權計時器受到速率限制歷時較短時間週期。因為計時器702之計時器優先權為3,所以作業系統將一秒之抑制週期706指派給計時器702,如圖7A及圖7B中所說明。
圖7B說明基於抑制週期對計時器之執行進行速率限制。在一實施例中,計時器管理模組對計時器702執行速率限制操作且計時器702並未如最初經排程般在時間704A至704D執行。實情為,當計時器702之抑制週期706達到結束時,計時器702在時間704E執行。由於計時器702之減小之執行速率,器件較不可能被自低功率模式打斷,因此消耗較少功率。
圖8說明用以對計時器之執行進行速率限制的處理程序800之一實施例的流程圖。具體言之,圖8描述基於與計時器相關聯之抑制週期對計時器之執行進行速率限制的處理程序800。在圖8中,處理程序800以接收(在區塊805處)計時器開始,該計時器具有初始執行時間及計時器優先權。舉例而言且在一實施例中,處理程序800以接收圖7A之計時器702開始,該計時器具有初始執行時間704A及計時器優先權3。
在區塊810處,處理程序800判定所接收計時器之計時器優先權是否足夠低以使得計時器管理模組對該計時器之執行進行速率限制。在一實施例中,當計時器優先權滿足預定臨限值時(例如,計時器優先權大於預定值),該計時器優先權為低。舉例而言且在一實施例中,當計時器優先權小於或等於3時,處理程序800判定該計時器優先權足夠低以對該計時器進行速率限制。因為圖7A中之計時器702的計時器優先權為3,所以處理程序800判定計時器管理模組應對計時器702之執行進行速率限制。若處理程序800判定計時器優先權並非足夠低至對計時器進行速率限制,則處理程序800排程(在區塊825處)該計 時器以在初始執行時間執行。處理程序800接著結束。
然而,若處理程序800判定計時器優先權足夠低至對計時器進行速率限制,則處理程序800基於計時器優先權判定(在區塊815處)抑制週期。在一實施例中,抑制週期為供計時器管理模組防止計時器被執行的時間週期。在一實施例中,作業系統將較長抑制週期指派給具有低優先權之計時器,以使得低優先權計時器受到速率限制歷時較長時間週期。作業系統將較短抑制週期指派給具有高優先權之計時器,以使得高優先權計時器受到速率限制歷時較短時間週期。舉例而言且在一實施例中,處理程序800判定計時器702之抑制週期706的長度應為一秒,如圖7B中所說明。在區塊820處,處理程序800排程計時器以在抑制週期結束時執行。舉例而言且在一實施例中,處理程序800排程圖7B之計時器702以在704E(其為抑制週期706結束時)執行。處理程序800接著終止。
一般熟習此項技術者將認識到,處理程序800為用以執行計時器聯合之操作的概念性表示。可能不以所展示及描述之確切次序來執行處理程序800之特定操作。可能不在一系列連續操作中執行特定操作,且可在不同實施例中執行不同的特定操作。此外,可使用若干子處理程序來實施處理程序800,或可將處理程序800實施為較大巨集處理程序之部分。
圖9說明一實施例之計時器管理模組900之詳細圖。具體言之,此圖說明用於管理計時器之聯合、機會性執行及速率限制的模組集合。在一實施例中,作業系統之核心使用計時器管理模組900以促進計時器之管理(諸如,圖1之核心120)。如圖9中所展示,計時器管理模組900包括排程聯合模組910、機會性執行模組920及速率限制模組930。
排程聯合模組910接收若干計時器,識別每一所接收計時器之排 程窗,且基於計時器之排程窗聯合該等計時器之執行,如上文圖4中所描述。排程聯合模組910包括排程窗識別模組912及執行時間選擇模組914。排程窗識別模組912基於每一所接收計時器之初始執行時間及延時識別該計時器之排程窗,如圖4(上文之區塊410)中所描述。執行時間選擇模組914基於所接收計時器之由排程窗識別模組912識別的排程窗選擇該等計時器之經聯合執行時間。在一實施例中,執行時間選擇模組914選擇所有排程窗之重疊時間週期內的時間作為經聯合執行時間,如圖4(上文之區塊415)中所描述。排程聯合模組910排程每一所接收計時器以在由執行時間選擇模組914選擇之經聯合執行時間執行,如圖4(上文之區塊420)中所描述。
機會性執行模組920回應於偵測到機會性執行觸發事件而選擇計時器之一子集以機會性地執行,如上文圖6中所描述。機會性執行模組920包括觸發事件偵測模組922及計時器選擇模組924。
觸發事件偵測模組922偵測機會性執行觸發事件之發生,如圖6(上文之區塊605)中所描述。一旦由觸發事件偵測模組922偵測到機會性執行觸發事件,計時器選擇模組924便基於所接收計時器之排程窗自該等計時器中選擇一子集。在一實施例中,計時器選擇模組924選擇具有含有所偵測到之機會性執行觸發事件之時間之排程窗的彼等計時器,如圖6(上文之區塊620)中所描述。機會性執行模組920回應於偵測到機會性執行觸發事件而排程計時器之選定子集以執行,如圖6(上文之區塊625)中所描述。
速率限制模組930接收計時器且在該計時器之優先權為低的情況下對該計時器之執行進行速率限制,如上文圖8中所描述。速率限制模組930包括速率限制判定模組932及速率限制排程模組934。速率限制判定模組932判定計時器之優先權是否足夠低以使得計時器管理模組對計時器執行速率限制操作,如圖8(上文之區塊810)中所描述。速 率限制排程模組934基於由速率限制判定模組932作出之判定排程計時器之執行。在一實施例中,若速率限制判定模組932判定計時器之優先權足夠低至進行速率限制,則速率限制排程模組934排程該計時器以在抑制週期結束時執行,如圖8(上文之區塊820)中所描述。在同一實施例中,若速率限制判定模組932判定計時器之優先權並非足夠低至進行速率限制,則速率限制排程模組934排程該計時器以在計時器之初始執行時間執行,如圖8(上文之區塊825)中所描述。
上文針對本發明之一實施例描述了計時器管理模組900。一般熟習此項技術者將認識到,在其他實施例中,可以不同方式來實施此模組。舉例而言,在上文所描述之一實施例中,將某些模組實施為軟體模組。然而,在另一實施例中,可由硬體來實施該等模組中之一些模組或全部模組,該硬體可為專用的特殊應用硬體(例如,ASIC晶片或組件)或通用晶片(例如,微處理器或FPGA)。
圖10展示可供本發明之一實施例使用的資料處理系統1000之一實例。舉例而言,可實施包括如圖1中所展示之器件100的系統1000。應注意,雖然圖10說明器件之各種組件,但其並不意欲表示將該等組件互連之任何特定架構或方式,此係因為此等細節並不與本發明有密切關係。亦應瞭解,網路電腦及其他資料處理系統或其他消費型電子器件(其具有較少組件或可能較多組件)亦可供本發明使用。
如圖10中所展示,器件1000(其為資料處理系統之形式)包括匯流排1003,該匯流排耦接至微處理器1005、唯讀記憶體(ROM)1007,及揮發性RAM 1009及非揮發性記憶體1011。微處理器1005可自記憶體1007、1009、1011擷取指令且執行該等指令以執行上文所描述之操作。匯流排1003將此等各種組件互連在一起且亦將此等組件1005、1007、1009及1011互連至顯示控制器及顯示器件1013以及周邊器件(諸如,輸入/輸出(I/O)器件,該等I/O器件可為滑鼠、鍵盤、數據機、 網路介面、印表機及此項技術中熟知之其他器件)。通常,輸入/輸出器件1015經由輸入/輸出控制器1017耦接至系統。揮發性RAM(隨機存取記憶體)1009通常實施為動態RAM(DRAM),其持續地需要電力以便再新或維持記憶體中之資料。
大容量儲存器1011通常為磁性硬碟機或磁性光碟機或光碟機或DVD RAM或快閃記憶體或其他類型之記憶體系統,其即使在將電力自系統移除之後仍維持資料(例如,大量資料)。通常,大容量儲存器1011亦將為隨機存取記憶體,但此情形並非為所需的。雖然圖10展示大容量儲存器1011為直接耦接至資料處理系統中之其餘組件的本端器件,但應瞭解,本發明可利用遠離系統之非揮發性記憶體(諸如,經由諸如數據機、乙太網路介面或無線網路之網路介面耦接至資料處理系統的網路儲存器件)。如此項技術中所熟知,匯流排1003可包括經由各種橋接器、控制器及/或配接器連接至彼此之一或多個匯流排。
圖11展示可供本發明之一實施例使用的另一資料處理系統1100之實例。舉例而言,可將系統1100實施為如圖1中所展示之器件100。圖11中所展示之資料處理系統1100包括處理系統1111,該處理系統可為一或多個微處理器或其可為晶片積體電路上之系統,且該系統亦包括用於儲存供處理系統執行之資料及程式的記憶體1101。系統1100亦包括音訊輸入/輸出子系統1105,該輸入/輸出子系統可包括麥克風及揚聲器(例如)以用於經由該揚聲器及該麥克風播放音樂或提供電話功能性。
顯示控制器及顯示器件1109為使用者提供視覺使用者介面;此數位介面可包括圖形使用者介面,該圖形使用者介面類似於在Macintosh電腦(當執行OS X作業系統軟體時)或Apple iPhone(當執行iOS作業系統時)等上展示之圖形使用者介面。系統1100亦包括一或多個無線收發器1103以與另一資料處理系統(諸如,圖11之系統1100)通 信。無線收發器可為WLAN收發器、紅外線收發器、藍芽收發器及/或無線蜂巢式電話收發器。應瞭解,在某些實施例中,額外組件(未圖示)亦可為系統1100之部分,且在某些實施例中,亦可在資料處理系統中使用少於圖11中所展示之組件的組件。系統1100進一步包括一或多個通信埠1117以與另一資料處理系統(諸如,圖10中之系統)通信。通信埠可為USB埠、Firewire埠、藍芽介面等。
資料處理系統1100亦包括一或多個輸入器件1113,提供該一或多個輸入器件以允許使用者將輸入提供至系統。此等輸入器件可為小鍵盤或鍵盤或觸控面板或多點觸控面板。資料處理系統1100亦包括選用之輸入/輸出器件1115,該輸入/輸出器件可為用於銜接件之連接器。應瞭解,一或多個匯流排(未圖示)可用以將各種組件互連,如此項技術中所熟知。圖11中所展示之資料處理系統可為手持型器件或個人數位助理(PDA),或具有類似於PDA之功能性的蜂巢式電話,或包括蜂巢式電話之手持型器件,或媒體播放器(諸如,iPod),或組合此等器件之態樣或功能的器件(諸如,一器件中與PDA及蜂巢式電話組合之媒體播放器,或嵌入式器件或其他消費型電子器件)。在其他實施例中,資料處理系統1100可為網路電腦或另一器件內之嵌入式處理器件或其他類型之資料處理系統,其具有少於圖11中所展示之組件的組件或可能多於圖11中所展示之組件的組件。
本發明之至少某些實施例可為數位媒體播放器(諸如,攜帶型音樂及/或視訊媒體播放器)之部分,其可包括用以呈現媒體之媒體處理系統、用以儲存媒體之儲存器件且可進一步包括與天線系統及媒體處理系統耦接之射頻(RF)收發器(例如,用於蜂巢式電話之RF收發器)。在某些實施例中,可經由RF收發器將儲存於遠端儲存器件上之媒體傳輸至媒體播放器。媒體可為(例如)音樂或其他音訊、靜態圖像或運動圖像中之一或多者。
攜帶型媒體播放器可包括媒體選擇器件(諸如,來自CA Cupertino之Apple,Inc.的iPod®或iPod Nano®媒體播放器上的點按式選盤輸入器件)、觸控螢幕輸入器件、按鈕器件、可移動式指標輸入器件或其他輸入器件。媒體選擇器件可用以選擇儲存於儲存器件及/或遠端儲存器件上之媒體。在至少某些實施例中,攜帶型媒體播放器可包括顯示器件,該顯示器件耦接至媒體處理系統以顯示媒體之標題或其他指示,該等媒體之標題或其他指示正經由輸入器件而被選擇且正經由揚聲器或耳機而呈現或呈現於顯示器件上或呈現於顯示器與揚聲器或耳機兩者上。攜帶型媒體播放器之實例描述於公開之美國專利第7,345,671號及美國專利第7,627,343號中,該兩個專利以引用之方式併入本文中。
可藉由邏輯電路(諸如,專用邏輯電路)或藉由微控制器或執行程式碼指令之其他形式之處理核心來實施上文所描述之內容的數個部分。因此,可藉由程式碼(諸如,機器可執行指令,其使得執行此等指令之機器執行某些功能)來執行藉由上文之論述教示之處理程序。在此上下文中,「機器」可為將中間形式(或「抽象」)指令轉換成處理器特定指令的機器(例如,抽象執行環境,諸如「虛擬機」(例如,Java虛擬機)、解譯器、通用語言執行平台(Common Language Runtime)、高階語言虛擬機等);及/或安置於半導體晶片(例如,藉由電晶體實施之「邏輯電路」)上的經設計以執行指令之電子電路(諸如,通用處理器及/或專用處理器)。亦可在不執行程式碼之情況下由(代替機器或與機器組合)經設計以執行處理程序(或其一部分)的電子電路來執行上文論述所教示之處理程序。
本發明亦關於一種用於執行本文中所描述之操作的裝置。此裝置可經特別地建構以達成所需之目的,或其可包含藉由儲存於器件中之電腦程式選擇性地啟動或重新組態之通用器件。此電腦程式可儲存 於諸如(但不限於)以下各者之電腦可讀儲存媒體中:任何類型之磁碟,包括磁碟片、光碟、CD-ROM及磁光碟、唯讀記憶體(ROM)、RAM、EPROM、EEPROM、磁卡或光卡,或適合於儲存電子指令之任何類型之媒體,且每一者耦接至器件匯流排。
機器可讀媒體包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式之資訊的任何機構。舉例而言,機器可讀媒體包括唯讀記憶體(「ROM」);隨機存取記憶體(「RAM」);磁碟儲存媒體;光學儲存媒體;快閃記憶體器件;等。
一種製造物品可用以儲存程式碼。可將儲存程式碼之製造物品體現為(但不限於)一或多個記憶體(例如,一或多個快閃記憶體、隨機存取記憶體(靜態、動態或其他形式))、光碟、CD-ROM、DVD ROM、EPROM、EEPROM、磁卡或光卡或適合於儲存電子指令的其他類型之機器可讀媒體。亦可借助於體現於傳播媒體中之資料信號將程式碼自遠端電腦(例如,伺服器)下載至請求電腦(例如,用戶端)(例如,經由通信鏈路(例如,網路連接))。
前述詳細描述係依據對器件記憶體內之資料位元之操作的演算法及符號表示來呈現。此等演算法描述及表示為由熟習資料處理技術者使用以向其他熟習此項技術者最有效地傳達其工作實質的工具。在此且大體而言設想演算法為導致所要結果之一序列自相一致操作。該等操作為需要物理量之實體操縱的操作。通常(但未必),此等量採用能夠儲存、傳送、組合、比較及以其他方式進行操縱的電信號或磁信號之形式。已證明將此等信號稱作位元、值、元素、符號、字元、項、數字或其類似者時常(主要為了普通用途)為便利的。
然而,應記住,所有此等及類似術語應與適當物理量相關聯且僅為應用於此等量之便利標記。除非另外特別陳述(如自上述論述顯而易見),否則,應瞭解,貫穿該描述,利用諸如「接收」、「判定」、 「選擇」、「聯合」、「執行」、「設定」、「識別」、「偵測」、「排程」、「速率限制」或其類似者之術語的論述係指器件或類似電子計算器件之動作及處理程序,該器件或類似電子計算器件操縱表示為器件之暫存器及記憶體內之物理(電子)量的資料並將資料變換成類似地表示為器件記憶體或暫存器或其他此資訊儲存、傳輸或顯示器件內之物理量的其他資料。
本文中所呈現之處理程序及顯示並非固有地與任何特定器件或其他裝置有關。根據本文中之教示,各種通用系統可與程式一起使用,或其可證明便於建構較專用裝置來執行所描述之操作。多種此等系統之所需結構將自以下描述顯而易見。另外,並未參考任何特定程式設計語言來描述本發明。應瞭解,多種程式設計語言可用以實施如本文中所描述的本發明之教示。
前述論述僅描述本發明之一些例示性實施例。熟習此項技術者將容易自此論述、隨附圖式及申請專利範圍認識到,可在不脫離本發明之精神及範疇的情況下進行各種修改。
300‧‧‧時刻表
302A‧‧‧計時器
302B‧‧‧計時器
302C‧‧‧計時器
304A‧‧‧時間
304B‧‧‧時間
304C‧‧‧時間
304D‧‧‧時間
304E‧‧‧時間
304F‧‧‧時間
306‧‧‧計時器屬性表
308A‧‧‧排程窗
308B‧‧‧排程窗
308C‧‧‧排程窗
310‧‧‧經聯合執行時間

Claims (20)

  1. 一種具有可執行指令之非暫時性機器可讀媒體,該等可執行指令用以使得一或多個處理單元執行用以聯合複數個計時器之一執行的一方法,該方法包含:接收該複數個計時器,其中該複數個計時器中之每一者包括一初始執行時間及一延時;基於該複數個計時器中之每一者的該初始執行時間及該延時判定一排程窗;選擇在該複數個計時器之每一排程窗內的一經聯合執行時間;及藉由排程該複數個計時器中之每一者以在該經聯合執行時間執行來聯合該複數個計時器之該執行。
  2. 如請求項1之非暫時性機器可讀媒體,其中該方法進一步包含:在該經聯合執行時間執行該複數個計時器中之每一者。
  3. 如請求項1之非暫時性機器可讀媒體,其中該複數個計時器中之每一者為一軟體計時器。
  4. 如請求項1之非暫時性機器可讀媒體,其中該複數個計時器中之每一者進一步包括一計時器優先權。
  5. 如請求項4之非暫時性機器可讀媒體,其中該方法進一步包含:基於該複數個計時器中之一者的該計時器優先權判定彼計時器之該延時。
  6. 如請求項4之非暫時性機器可讀媒體,其中該複數個計時器中之每一者與一任務相關聯且該複數個計時器中之每一者的該計時器優先權係基於該相關聯任務之一任務優先權。
  7. 如請求項1之非暫時性機器可讀媒體,其中該延時為彼計時器之 一執行可被延遲的時間量。
  8. 如請求項1之非暫時性機器可讀媒體,其中該選擇該經聯合執行時間包含:識別所有該複數個計時器之一重疊排程窗;及選擇該重疊排程窗內之該經聯合執行時間。
  9. 如請求項1之非暫時性機器可讀媒體,其中該選擇該經聯合執行時間包含:識別該複數個計時器之一集合之一重疊排程窗,其中該計時器集合包含多於具有重疊排程窗之任何其他計時器集合的計時器;及選擇該重疊排程窗內之該經聯合執行時間。
  10. 一種用以聯合複數個計時器之一執行的電腦實施方法,該方法包含:偵測一器件之一機會性執行觸發事件;及回應於對該機會性執行觸發事件之該偵測:接收該複數個計時器,其中該複數個計時器中之每一者包括一初始執行時間及一延時;基於該複數個計時器中之每一者的該初始執行時間及該延時選擇該複數個計時器之一子集以執行;及藉由基於該機會性執行觸發事件排程該複數個計時器之該子集中之每一者以執行來聯合計時器之該子集之該執行。
  11. 如請求項10之方法,其中該複數個計時器中之每一者進一步包括一計時器優先權。
  12. 如請求項11之方法,其中該方法進一步包含:基於該複數個計時器中之一者的該計時器優先權判定該計時器之該延時。
  13. 如請求項11之方法,其中該複數個計時器中之每一者與一任務相關聯,且該複數個計時器中之每一者的該計時器優先權係基於該相關聯任務之一任務優先權。
  14. 如請求項10之方法,其中該機會性執行觸發事件為一非計時器器件中斷。
  15. 如請求項10之方法,其中該機會性執行觸發事件為至一處理器閒置狀態之一未決進入。
  16. 如請求項10之方法,其中該延時為彼計時器之一執行可被延遲的時間量。
  17. 如請求項10之方法,其中該選擇該複數個計時器之該子集以執行包含:基於該複數個計時器中之每一者的該初始執行時間及該延時判定該計時器之一排程窗;及在該機會性執行觸發事件發生於屬於一計時器之該排程窗內的一時間時,選擇該計時器。
  18. 一種用以聯合複數個計時器之一執行的器件,該器件包含:一處理器;一記憶體,其經由一匯流排耦接至該處理器;及一處理程序,其由該處理器自該記憶體執行,該處理程序使得該處理器進行以下操作:偵測一機會性執行觸發事件;接收該複數個計時器,其中該複數個計時器中之每一者包括一初始執行時間及一延時;基於該複數個計時器中之每一者的該初始執行時間及該延時選擇該複數個計時器之一子集以執行;及藉由基於該機會性執行觸發事件排程該複數個計時器之該子集中之每一者以執行來聯合計時器之該子集之該執行。
  19. 如請求項18之器件,其中該機會性執行觸發事件為一非計時器 器件中斷。
  20. 如請求項18之器件,其中該機會性執行觸發事件為至一處理器閒置狀態之一未決進入。
TW103117038A 2013-05-15 2014-05-14 用以聯合複數個計時器之一執行的非暫時性機器可讀媒體、電腦實施方法及器件 TWI566181B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/895,262 US9542230B2 (en) 2013-05-15 2013-05-15 System and method for selective timer coalescing

Publications (2)

Publication Number Publication Date
TW201504949A true TW201504949A (zh) 2015-02-01
TWI566181B TWI566181B (zh) 2017-01-11

Family

ID=50884508

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103117038A TWI566181B (zh) 2013-05-15 2014-05-14 用以聯合複數個計時器之一執行的非暫時性機器可讀媒體、電腦實施方法及器件

Country Status (3)

Country Link
US (1) US9542230B2 (zh)
TW (1) TWI566181B (zh)
WO (1) WO2014186105A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9904575B2 (en) * 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting
US9542230B2 (en) 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
US9958933B2 (en) 2015-06-04 2018-05-01 Apple Inc. Opportunistic waking of an application processor
US10768984B2 (en) 2015-06-11 2020-09-08 Honeywell International Inc. Systems and methods for scheduling tasks using sliding time windows
US10055006B2 (en) * 2016-03-29 2018-08-21 Microsoft Technology Licensing, Llc Reducing system energy consumption through event trigger coalescing
CN112711474B (zh) * 2021-01-12 2023-12-08 百果园技术(新加坡)有限公司 定时器管理方法、装置及电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390281A (en) * 1992-05-27 1995-02-14 Apple Computer, Inc. Method and apparatus for deducing user intent and providing computer implemented services
US6810426B2 (en) * 2001-01-30 2004-10-26 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US7133941B2 (en) * 2003-12-03 2006-11-07 Oracle International Corporation Method and mechanism of accessing segments in data storage systems
US7467245B2 (en) * 2005-07-22 2008-12-16 Cisco Technology, Inc. PCI arbiter
US7885616B2 (en) * 2006-08-16 2011-02-08 Research In Motion Limited Method and system for coordinating necessary radio transmission events with unrelated opportunistic events to optimize battery life and network resources
US8020161B2 (en) * 2006-09-12 2011-09-13 Oracle America, Inc. Method and system for the dynamic scheduling of a stream of computing jobs based on priority and trigger threshold
TWI337495B (en) 2006-10-26 2011-02-11 Au Optronics Corp System and method for operation scheduling
US7788434B2 (en) * 2006-12-15 2010-08-31 Microchip Technology Incorporated Interrupt controller handling interrupts with and without coalescing
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US8259576B2 (en) * 2007-03-23 2012-09-04 Intel Corporation Method and apparatus for performing interrupt coalescing
US10521265B2 (en) * 2008-09-19 2019-12-31 Microsoft Technology Licensing, Llc Coalescing periodic timer expiration in guest operating systems in a virtualized environment
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
US8260996B2 (en) 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
US8244946B2 (en) 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
DE102009047024A1 (de) * 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Parallelisierte Programmsteuerung
CN102811127A (zh) 2012-08-23 2012-12-05 深圳乌托邦系统集成有限公司 云计算应用层的加速网卡
US8954632B2 (en) * 2012-12-31 2015-02-10 Silicon Laboratories Inc. System method for regulating an input/output interface by sampling during a time duration associated with I/O states
US9208113B2 (en) * 2013-01-15 2015-12-08 Apple Inc. Deferred inter-processor interrupts
US9542230B2 (en) 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US9904575B2 (en) 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting

Also Published As

Publication number Publication date
WO2014186105A1 (en) 2014-11-20
TWI566181B (zh) 2017-01-11
US20140344819A1 (en) 2014-11-20
US9542230B2 (en) 2017-01-10

Similar Documents

Publication Publication Date Title
TWI566181B (zh) 用以聯合複數個計時器之一執行的非暫時性機器可讀媒體、電腦實施方法及器件
US9904575B2 (en) System and method for selective timer rate limiting
US9336070B1 (en) Throttling of application access to resources
TWI592802B (zh) 熱調適服務品質等級
US9690685B2 (en) Performance management based on resource consumption
CN107800546B (zh) 一种广播消息的管理方法及装置
TWI553551B (zh) 使用選擇性任務調變之熱減輕
US8695008B2 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
EP2771765B1 (en) System and method for managing clock speed based on task urgency
CN109906437B (zh) 基于线程重要性的处理器核停止和频率选择
CN109906421B (zh) 基于线程重要性的处理器核划分
US9939869B2 (en) Methods and systems for coordination of operating states amongst multiple SOCs within a computing device
US9170841B2 (en) Multiprocessor system for comparing execution order of tasks to a failure pattern
US9195285B2 (en) Techniques for platform duty cycling
US20140052882A1 (en) Latency Sensitive Software Interrupt and Thread Scheduling
US10564708B2 (en) Opportunistic waking of an application processor
JP5662478B2 (ja) 中央処理装置内のデータをサンプリングするシステムおよび方法
TWI578152B (zh) 用於進入低功率狀態之設備、物品及控制器
TWI709031B (zh) 用於基於i/o操作特徵之soc閒置電源狀態控制之系統及方法
US9348732B2 (en) Microstackshots
CN115964180A (zh) 任务调度方法、装置和电子设备
TW200837633A (en) Quick operation system