用于多處理器系統的虛擬每處理器定時器的制造方法
【專利說明】
【背景技術】
[0001]在計算機系統中,處理器一般使用一個或多個定時器來管理由處理器執行的工作的前進進度。處理器設置定時器使得定時器在未來的期望時間點處生成中斷。
[0002]在包括具有多個核的處理設備的多處理器計算機系統中,一般存在兩種類型的定時器:每處理器定時器和平臺定時器。平臺定時器表示在處理器之中共享并且可以從任何處理器訪問的定時器實例。每處理器定時器是主要由其相應處理器操縱的定時器實例。
[0003]從電力管理的角度來看,也存在兩種類型的定時器:可以斷電的定時器和總是開啟的定時器。可以斷電的定時器一般在存在電力轉變時丟失上下文。總是開啟的定時器在電力轉變期間維持上下文。
[0004]當處理器斷電時,諸如在處理器進入上下文丟失的空閑狀態時,并非總是開啟的每處理器定時器將停止。為了使處理器繼續監視處于空閑狀態中的系統狀態,以便標識導致再次變得活躍的條件,平臺、總是開啟的定時器被該處理器使用以維持上下文。然而,平臺定時器一般僅可以一次被一個處理器控制。因此,在多處理器系統中,當所有的處理器都進入了上下文丟失的空閑狀態時,一個處理器對總是開啟的平臺定時器進行編程以標識導致一個或多個處理器再次變得活躍的任何條件。
【發明內容】
[0005]本
【發明內容】
以簡化的形式引入以下在【具體實施方式】中進一步描述的所選概念。本
【發明內容】
不意圖標識所要求保護的主題的關鍵或者本質特征,也不意圖限制所要求保護的主題的范圍。
[0006]—種系統通過虛擬化平臺定時器來提供虛擬每處理器定時器。為了虛擬化要被每個處理器獨立使用的平臺定時器,在存儲器中維護數據結構。數據結構具有用于使用平臺定時器的每個處理器的條目,其指定處理器和到期時間,其中條目通過到期時間來排序。在一個實現中,每個處理器具有數據結構中的單個條目。該條目可以被標記為有效或者無效,這取決于處理器的狀態以及處理器是否正在使用虛擬每處理器定時器。當處理器向虛擬化平臺定時器的數據結構添加條目時,在該實現中,任何之前的條目都被取消,并且基于到期時間將新條目按序放置在數據結構中。數據結構可以受保護以防被多個處理器并發訪問,諸如通過使用鎖。
[0007]平臺定時器可以是總是開啟的定時器,并且可以因此用來在電力轉變期間維持針對一個或多個處理器的上下文。使用任何其他每處理器定時器的處理器可以在電力轉變處切換到虛擬每處理器定時器(通過虛擬化平臺定時器而導出)。當處理器進行電力轉變時,對并非總是開啟的任何其他每處理器定時器斷電,并且處理器開始使用虛擬每處理器定時器,使得每個處理器能夠與其他處理器獨立地進行電力轉變。
[0008]在以下描述中,對形成其部分的附圖做出參考,并且其中作為圖示,示出本技術的具體示例實現。要理解的是,可以利用其他實現例,并且可以做出結構改變而不脫離本公開的范圍。
【附圖說明】
[0009]圖1是利用其可以實現具有虛擬每處理器定時器的系統的示例計算機的框圖。
[0010]圖2是使用虛擬每處理器定時器的系統的示例實現的框圖。
[0011]圖3圖示了在虛擬化平臺定時器中所使用的數據結構的示例實現。
[0012]圖4是在處理器丟失狀態并且當前使用并非總是開啟的每處理器定時器時轉變到虛擬每處理器定時器的示例實現的流程圖。
[0013]圖5是裝配(arm)定時器的示例實現的流程圖。
[0014]圖6是停止定時器的示例實現的流程圖。
[0015]圖7是確認來自定時器的中斷的示例實現的流程圖。
【具體實施方式】
[0016]以下章節提供其中可以實現虛擬每處理器定時器的示例操作環境。
[0017]參照圖1,以下描述意圖提供可以使用這樣的虛擬定時器的通用計算機的簡要、一般描述。計算機可以是各種各樣的通用或專用計算硬件配置中的任一種。可能合適的眾所周知的計算機示例包括但不限于個人計算機、服務器計算機、手持式或膝上型設備(例如,媒體播放器、筆記本計算機、蜂窩電話、個人數據助理、話音記錄器、平板電腦)、多處理器系統、基于微處理器的系統、機頂盒、游戲控制臺、可編程消費電子產品、網絡PC、小型計算機、大型計算機、包括以上系統或設備中的任一種的分布式計算環境等等。
[0018]圖1圖示了合適的計算機示例。這僅僅是合適的計算機的一個示例,而不意圖暗示關于這樣的計算機的使用范圍或功能性的任何限制。
[0019]參照圖1,示例計算機100在基本配置中包括至少一個處理單元102和存儲器104。計算機可以包括多個處理單元和/或附加的協處理單元,諸如圖形處理單元120。取決于計算機的確切配置和類型,存儲器104可以是易失性(諸如RAM)、非易失性(諸如R0M、閃速存儲器等等)或二者的某種組合。該配置在圖1中以虛線106圖示。
[0020]此外,計算機100還可以具有附加特征/功能性。例如,計算機100還可以包括附加的存儲裝置(可移除和/或不可移除),包括但不限于磁盤或光盤或磁帶。這樣的附加存儲裝置在圖1中由可移除存儲裝置108和不可移除存儲裝置110圖示。計算機存儲介質包括以用于存儲諸如計算機程序指令、數據結構、程序模塊、或其他數據之類的信息的任何方法或者技術實現的易失性和非易失性、可移除和不可移除介質。存儲器104、可移除存儲裝置108和不可移除存儲裝置110都是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、R0M、EEPR0M、閃速存儲器或其他存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光學存儲裝置、磁盒、磁帶、磁盤存儲裝置或其他磁存儲設備、或可以用來存儲所期望的信息并且可以由計算機100訪問的任何其他介質。任何這樣的計算機存儲介質可以是計算機100的一部分。
[0021]計算機100還可以包含(多個)通信連接112,其允許設備通過通信介質與其他設備通信。通信介質典型地承載計算機程序指令、數據結構、程序模塊、或在諸如載波之類的已調制數據信號或其他輸運機制中的其他數據,并且包括任何信息遞送介質。術語“已調制數據信號”意指使其特性中的一個或者多個以便于在信號中編碼信息的這樣的方式設置或改變從而改變信號的接收設備的配置或狀態的信號。作為示例而非限制,通信介質包括有線介質(諸如有線網絡或直接有線連接)以及無線介質(諸如聲學、RF、紅外和其他無線介質)。通信連接112是與通信介質對接以通過通信介質傳送數據和從通信介質接收數據的設備,諸如網絡接口。
[0022]計算機100可以具有(多個)各種輸入設備114,諸如鍵盤、鼠標、筆、相機、觸摸輸入設備等等。還可以包括諸如顯示器、揚聲器、打印機等等之類的(多個)輸出設備116。所有這些設備在本領域中都是眾所周知的,并且在此不需要詳細地討論。各種輸入和輸出設備可以實現自然用戶接口(NUI),其是使得用戶能夠以不受由諸如鼠標、鍵盤、遙控器等之類的輸入設備所強加的人為約束的“自然”方式與設備交互的任何接口技術。
[0023]NUI方法的示例包括依賴于語音識別、觸摸和觸筆識別、在屏幕上和靠近屏幕二者的手勢識別、空中手勢、頭部和眼睛追蹤、話音和語音、視覺、觸摸、手勢和機器智能的那些,并且可以包括以下各項的使用:觸敏顯示器