TWI509422B - 對多處理器同步化電力最佳化的方法 - Google Patents

對多處理器同步化電力最佳化的方法 Download PDF

Info

Publication number
TWI509422B
TWI509422B TW101131837A TW101131837A TWI509422B TW I509422 B TWI509422 B TW I509422B TW 101131837 A TW101131837 A TW 101131837A TW 101131837 A TW101131837 A TW 101131837A TW I509422 B TWI509422 B TW I509422B
Authority
TW
Taiwan
Prior art keywords
processor
lock
spin lock
flag
spin
Prior art date
Application number
TW101131837A
Other languages
English (en)
Other versions
TW201324184A (zh
Inventor
Mark A Overby
Andrew Currid
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201324184A publication Critical patent/TW201324184A/zh
Application granted granted Critical
Publication of TWI509422B publication Critical patent/TWI509422B/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/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 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Description

對多處理器同步化電力最佳化的方法
本發明概略關於多處理器運算系統,尤指一種對多處理器同步化電力最佳化的方法。
以往多處理器系統包括實作在一或多個積體電路上的兩個或多個處理器。該等兩個或多個處理器基本上設置成獨立地執行程式化指令。某些應用需要該等兩個或多個處理器在執行當中某些特定時刻同步化作業,例如共用系統資源。
用於在該等兩個或多個處理器之間同步化作業的一種技術牽涉到一種程式化結構,稱之為自旋鎖(spinlock)。該自旋鎖為一種阻隔機制,使得一處理器在一個時間內擁有一個鎖,並專屬地存取到對應於該鎖的系統資源。該自旋鎖機制較佳地是提供了比其它種類的鎖定機制要明顯較低的潛時。但是,該自旋鎖機制相對於電力消耗而言非常沒有效率。
一自旋鎖實作一獲取功能、一釋放功能及設置成儲存該鎖之狀態的一鎖變數。該獲取功能監視常駐在可由該等兩個或多個處理器存取的一共用記憶體空間中的該鎖變數。該獲取功能檢查該鎖變數的擁有權,並可重複地重新檢查擁有權,直到該鎖變數為一未鎖定狀態為止。如果該鎖變數狀態為鎖定,則該鎖即由一不同的處理器擁有,且該獲取功能必須在一迴圈中等待(旋轉),直到該不同的處理器藉由設定該鎖變數成一未鎖定狀態而釋放該鎖。
在以往該獲取功能的執行期間,該作業系統提高該處理器的處理優先性到一個位準,使得僅有來自I/O裝置的外部硬體中斷能夠中斷等待該鎖成為可使用的該程序。計時器中斷基本上亦在當該作業系統於這些作業期間除能執行緒排程時被除能。該獲取功能需要一關聯的處理器來連續地執行,並具有高 優先性。該獲取功能會非常沒有效率,因為其造成該處理器在一迴圈中重複地執行相同的程式碼,其造成該等兩個或多個處理器之間的快取同步化。在一多插槽處理器系統中,該自旋鎖獲取功能將造成一外部信號在該處理器間匯流排上被設定,以設定一記憶體鎖定信號。這些作業中每一者在電力上皆沒有效率,而造成過度的電力消耗。此外,執行該獲取功能的該處理器亦需要對於在測試此變數中的該等兩個或多個處理器之每一處理器之間維持快取同步化,其方式為該獲取功能消耗了額外的快取線空間,以及需要在相關的快取線上的處理器內或處理器間之同步化。在一處理器上執行的該獲取功能不僅增加該處理器之電力消耗,亦增加一或多個額外處理器之電力消耗,造成更大的淨電力消耗。關聯於該自旋鎖獲取功能的顯著處理負擔將造成多處理器系統中整體電力效率不佳。
如前所述,本技術中需要一種用於實作多處理器同步化之更佳電力效率的技術。
本發明一具體實施例提出一種用於管理一自旋鎖來指示專屬存取至一系統資源的技術,其包含設置關聯於一第一處理器的一監視電路來監視關聯於自旋鎖狀態資料的一記憶體位址、測試關聯於該自旋鎖狀態資料的一鎖定旗標且決定該自旋鎖係在一鎖定狀態、等待一低電力狀態直到該記憶體位址由一第二處理器存取、測試關聯於該自旋鎖狀態資料的該鎖定旗標且決定該自旋鎖不再是該鎖定狀態,並指明該系統資源可由該第一處理器專屬地存取。
本發明之其它具體實施例包括但不限於一電腦可讀取儲存媒體,其中包括有指令在其由一處理單元執行時使得該處理單元執行此處所述之該等技術,以及一運算裝置,其中包括一設置來執行此處所述之該等技術的一處理單元。
該揭示技術的一項好處為兩個或多個處理器核心可以使用一低潛時自旋鎖結構來有效率地進行同步化作業,同時可有效率地利用電力與系統資源。
在以下的說明中,許多特定細節係被提出來提供對於本發明之更為完整的瞭解。然而,本技術專業人士將可瞭解到本發明可不利用一或多個這些特定細節來實施。在其它實例中,並未說明熟知的特徵,以避免混淆本發明。
系統概述
第一圖例示設置成實作本發明一或多種態樣之一電腦系統100的方塊圖。電腦系統100包括一中央處理單元(CPU)102與一系統記憶體104,其經由包括一記憶體橋接器105的互連路徑進行通訊。記憶體橋接器105可為例如一北橋晶片,其經由一匯流排或其它通訊路徑106(例如超輸送(HyperTransport)聯結)連接到一輸入/輸出(I/O,Input/Output)橋接器107連接。I/O橋接器107可為例如一南橋晶片,其接收來自一或多個使用者輸入裝置108(例如鍵盤、滑鼠)的使用者輸入,並經由路徑106及記憶體橋接器105轉送該輸入到CPU 102。一平行處理子系統112經由一匯流排或其它通訊路徑113(例如快速周邊組件互連(PCI Express,Peripheral Component Interconnect Express)、加速繪圖埠或超輸送(HyperTransport)聯結)耦合至記憶體橋接器105;在一具體實施例中,平行處理子系統112為一繪圖子系統,其傳遞像素到一顯示器110(例如一習用陰極射線管(CRT,Cathode Ray Tube)或液晶顯示器(LCD,Liquid Crystal Display)式的監視器)。一系統碟114亦連接至I/O橋接器107。一開關116提供I/O橋接器107與像是網路轉接器118與多種嵌入卡120、121之其它組件之間的連接。其它組件(未明確顯示),包括有USB或其它埠連接、CD驅動器、DVD驅 動器、薄膜記錄裝置及類似者,其亦可連接至I/O橋接器107。互連第一圖中該等多種組件的通訊路徑可使用任何適當的協定來實作,例如周邊組件互連(PCI,Peripheral Component Interconnect)、快速周邊組件互連(PCI Express,PCI-E)、加速圖形通訊埠(AGP,Accelerated Graphics Port)、超輸送(HyperTransport),或任何其它匯流排或點對點通訊協定及不同裝置之間的連接,皆可使用如本技術中所知的不同協定。
將可瞭解到此處所示的系統僅為例示性,其可能有多種變化及修正。該連接拓樸,包括橋接器的數目與配置,CPU 102的數目及平行處理子系統112的數目皆可視需要修改。例如,在一些具體實施例中,系統記憶體104直接連接至CPU 102而非透過一橋接器耦接,而其它裝置透過記憶體橋接器105及CPU 102與系統記憶體104進行通訊。在其它可替代的拓樸中,平行處理子系統112連接至I/O橋接器107或直接連接至CPU 102,而非連接至記憶體橋接器105。在又其它具體實施例中,I/O橋接器107及記憶體橋接器105可被整合到一單一晶片當中。大型具體實施例可包括兩個或多個CPU 102,及兩個或多個平行處理子系統112。此處所示的該等特定組件皆為選擇性的;例如其可支援任何數目的嵌入卡或周邊裝置。在一些具體實施例中,開關116被省略,且網路轉接器118及嵌入卡120、121直接連接至I/O橋接器107。
在一些具體實施例中,平行處理子系統112包含處理元件組織成形成顯像管線,其可設置成執行關於由CPU 102供應的圖形資料產生像素資料的多種工作,及/或系統記憶體104,經由記憶體橋接器105與通訊路徑113儲存與更新像素資料至顯示裝置110。在一些具體實施例中,該等處理元件設置成執行一般性目的之運算。該等處理元件可為相同或不同,且每個處理元件可以具有其本身專屬的平行處理記憶體裝置或無專屬的平行處理記憶體裝置。平行處理子系統112與電腦系統 100的其它部份之連接亦可改變。在一些具體實施例中,平行處理子系統112係實作成一嵌入卡,其可被插入到電腦系統100的一擴充槽中。在其它具體實施例中,平行處理子系統112可利用一匯流排橋接器整合在一單一晶片上,例如記憶體橋接器105或I/O橋接器107。在又其它的具體實施例中,平行處理子系統112之部份或所有元件可與CPU 102整合在一單一晶片上。
在一具體實施例中,CPU 102包括兩個或多個處理器核心130。處理器核心130設置成獨立地執行指令,其可被儲存在系統記憶體104中、快取在CPU 120內或儲存在任何技術上可行的位置中。於正常執行狀況期間,處理器核心130會需要同步化作業,例如需要共用電腦系統100內共通系統資源的控制。其包含使用在一共用記憶體位置內一或多個資料值的一鎖來同步化處理器核心130兩者或多者之間的作業。其可使用系統記憶體104內共用記憶體103之一節段來實作一鎖。每一處理器核心130可嘗試經由共用記憶體103上一鎖獲取作業獲取該鎖,並經由共用記憶體103上一鎖釋放作業的一經獲取的鎖。儲存在該鎖之內的一數值可用於指明那一個處理器核心130擁有該鎖。一鎖擁有者可被指定為對於一對應共用資源具有專屬的存取。本技術中已知的一種鎖定技術為一自旋鎖。一處理器核心130可實作一自旋鎖成為在處理器核心130上以高優先性執行的一迴圈,直到獲取一指定的鎖。兩個或多個處理器核心130可以個別地藉由獨立地執行一自旋鎖而嘗試獲取相同的鎖,如以下更為詳細的說明。
第二圖係根據本發明一具體實施例設置成包括兩個處理核心130之第一圖的中央處理單元102之更為詳細的圖示。每一處理器核心130耦合至一記憶體介面224,其可提供存取至常駐在系統記憶體104中的資料。記憶體介面224可直接或經由記憶體橋接器105耦合至系統記憶體104。
每一處理器核心130設置成執行一「監視」(”MONITOR”)指令,其中包括一位址運算子。該MONITOR指令設置一關聯的存取監視器222來回應如果到該指定的位址運算之一存取被執行至系統記憶體104。在處理器核心130執行該MONITOR指令來設置該存取監視器之後,處理器核心130可執行一「記憶體等待」(”MWAIT”)指令,其可使得處理器核心130中止,直到執行存取位在該指定位址處的系統記憶體104。在一具體實施例中,於一給定處理器核心130執行一MWAIT指令之後,處理器核心130進入一低電力模式,直到該指定的位址於系統記憶體104內被存取。本技術專業人士將可瞭解到該等MONITOR與MWAIT指令可在intelTM x86指令集架構內使用。在一具體實施例中,存取監視器222常駐在CPU 102內。在一替代具體實施例中,一或多個存取監視器222常駐在記憶體橋接器105內。每一存取監視器222設置成偵測存取至該指定的位址,並喚醒一關聯的處理器核心130。
在一具體實施例中,共用記憶體103包括一鎖變數210與一等待變數212。鎖變數210指明一鎖定或未鎖定狀態。一鎖定狀態另可指明那一個處理器核心130目前擁有該鎖定。等待變數212指明是否另一處理器核心130目前正在等待該鎖。在一具體實施例中,鎖變數210包含處理器核心130的一原子資料大小。例如,如果處理器核心130處理32位元的字元,則該鎖變數包含一32位元的字元。同樣地,等待變數212可包含處理器核心130的一原子資料大小。在一具體實施例中,鎖變數210包含一鎖定旗標,其設置成指明一對應自旋鎖狀態是否為鎖定(由一不同的處理器獲取)或自由。此外,等待變數212包含一等待旗標,其設置成指明一處理器是否正在等待來獲取一對應自旋鎖。一鎖定自旋鎖狀態可指明專屬地存取至一對應系統資源,而一未鎖定自旋鎖狀態可指明該系統資源可用於被專屬存取來獲取。
存取監視器222中一或多者可設置成監視參照共用記憶體103的一指定位址。在一具體實施例中,共用記憶體103內的等待變數212被監視來喚醒一處理器核心130,其藉由清除鎖變數210而處理器核心130釋放該自旋鎖之後正在等待來獲取一自旋鎖。藉由監視等待變數212而非鎖變數210,處理器核心130僅在當自旋鎖狀態有改變時喚醒,而非在每一次一處理器讀取鎖變數210時。在一替代具體實施例中,存取監視器222中一或多者被設置成監視鎖變數210,且不需要等待變數212。在此具體實施例中,處理器核心130會比所需要地更為經常地喚醒,因為讀取鎖變數210並未改變該自旋鎖狀態,但會觸發處理器核心130來喚醒,除非當他們共同嘗試要經由鎖變數210獲取自旋鎖。在一不同的替代具體實施例中,存取監視器222設置成對該指定位址區分一讀取存取與一寫入存取。在這種具體實施例中,鎖變數210針對寫入做監視,而非讀取,且等待變數212並不需要。其中,處理器核心130僅在當有對於鎖變數210之一寫入存取時喚醒,代表自旋鎖狀態中有改變。
本技術專業人士將可瞭解到在第一及二圖中所述之架構並非限制本發明之範疇,而此處所教示的技術可以實作在任何適當設置的處理單元上,其包括但不限於一或多個CPU、一CPU內的一或多個核心、平行處理子系統112內的一或多個處理元件或類似者,其皆不背離本發明之範疇。另外,此處所述之自旋鎖機制可設置成於關聯於一或多個CPU的處理器核心之間及關聯於一或多個平行處理子系統的處理元件之間操作。
自旋鎖同步化
第三圖係根據本發明一具體實施例用於執行一自旋鎖獲取功能的方法步驟之流程圖。雖然該等方法步驟係配合第一圖到第二圖之該等系統做說明,本技術專業人士將可瞭解到設置 成以任何順序執行該等方法步驟的任何系統皆在本發明之範疇內。此方法可由處理器核心130或任何技術上可行的處理器核心或處理元件來執行。
該方法開始於步驟310,其中執行一自旋鎖獲取功能的處理器核心提高該處理器核心的一優先性位準。在一具體實施例中,該優先性位準被提高至針對該處理器核心之最高可使用的優先性位準。在步驟312,該處理器核心執行一交換鎖定旗標作業。該交換鎖定旗標作業可使用任何技術上可行之技術來實作,例如一原子比較與交換作業。例如,該交換鎖定旗標作業可被實作成原子地比較與交換設置成儲存一鎖定旗標之鎖變數210的數值。在這種實作中,鎖變數210的內容相較於一「未鎖定」狀態之一預先定義的數值(例如零的數值),且如果鎖變數210的內容等於該「未鎖定」狀態,則一新數值被交換到鎖變數210中。在一具體實施例中,儲存在鎖變數210中該新的「鎖定」值指明那一個處理器目前擁有對應於鎖變數210的該鎖。
在步驟314,鎖變數210被測試來判定該交換鎖定旗標作業是否成功。如果在步驟320鎖變數210由一不同處理器核心鎖定時,則該方法進行到步驟322。在步驟322,該處理器核心設置一記憶體監視電路,例如存取監視器222,以監視關聯於自旋鎖狀態的一位址。例如,存取監視器222可設置成監視關聯於等待變數212的一位址。另外,該監視器可設置成監視鎖變數210。在步驟324,該處理器核心測試該鎖定旗標。在一具體實施例中,該處理器核心亦執行一交換等待旗標作業,以決定一不同的處理器是否正在等待來獲取該鎖。
如果在步驟330,鎖變數210由一不同的處理器核心鎖定,則該方法進行到步驟332,其中該處理器核心執行一記憶體等待(MWAIT)指令。在步驟334,該處理器核心由於執行該記憶體等待指令而進入一低電力狀態。在一具體實施例中,該 低電力狀態包括關閉該處理器核心之至少一鎖定信號。該處理器核心回應於一對應的存取監視器偵測到存取至該設置的位址而退出該低電力狀態。在步驟336,該處理器核心執行一交換鎖定旗標作業來嘗試獲取該鎖。然後,該方法進行回到步驟324。
回到步驟330,如果鎖變數210未被一不同的處理器核心鎖定,則該自旋鎖獲取功能已經成功,且該方法進行到步驟390,其已獲取該鎖。成功取得該鎖被傳遞至一相關功能,指明一對應系統資源可由該處理器核心專屬地存取。該方法終止於步驟390。
回到步驟320,如果鎖變數210未由一不同的處理器核心鎖定,則該方法進行到步驟390。
第四圖係根據本發明一具體實施例用於執行一自旋鎖釋放功能的方法步驟之流程圖。雖然該等方法步驟係配合第一圖到第二圖之該等系統做說明,本技術專業人士將可瞭解到設置成以任何順序執行該等方法步驟的任何系統皆在本發明之範疇內。此方法可由處理器核心130或任何技術上可行的處理器核心或處理元件來執行。
該方法開始於步驟410,其中該處理器核心清除該鎖定旗標,例如藉由寫入一個零至鎖變數210。此時,該鎖被釋放,並可由一不同的處理器核心獲取。在步驟412,該處理器核心測試一等待旗標,例如等待變數212來決定是否一不同的處理器正在等待來獲取該鎖。如果在步驟420,該等待旗標被設定,則該方法進行到步驟422。被設定的該等待旗標指明一不同的處理器目前正在等待來獲取該鎖。在一具體實施例中,於步驟422該處理器核心清除該等待旗標。在步驟424,該處理器核心降低該處理器核心的該執行優先性位準。該方法終止於步驟490。
回到步驟420,如果該等待旗標未被設定,則該方法進行 到步驟424。
在一具體實施例中,一單一鎖定旗標與一單一等待旗標指明自旋鎖狀態。在一實作中,該鎖定旗標可代表兩種狀態之一種,包括一未鎖定狀態與一鎖定狀態。在一種替代實作中,該鎖定旗標可指明一未鎖定狀態及複數種鎖定狀態之一,其每一者對應於擁有該鎖的一特定處理器核心。
在一替代具體實施例中,一等待佇列實作等待來獲取自旋鎖的一順序的處理器核心清單。在這種具體實施例中,第三圖的步驟324包含加入一處理器識別(PID,Processor Identification)號碼至該等待佇列,而步驟422包含自該等待佇列移除該PID。其可使用任何技術上可行的技術來實作與代表該等待佇列。
總而言之,本發明揭示一種在兩個或多個處理器之間同步化作業之技術。該等同步化作業包括一自旋鎖獲取功能與一自旋鎖釋放功能。該自旋鎖獲取功能利用在該產業標準x86指令集內可共同使用的一對指令。該自旋鎖獲取功能執行一MONITOR與一MWAIT指令來進入一低電力處理器狀態,同時等待來獲取自旋鎖。一硬體監視電路監視該自旋鎖狀態,並當該狀態改變時喚醒該處理器,以指明必須要做出嘗試來獲取自旋鎖。可使用一鎖變數與一等待變數來指明鎖狀態,且是否一或多個處理器核心正在等待來獲取目前由一給定處理器核心擁有的一自旋鎖。該自旋鎖釋放功能清除該鎖變數,且如果該等待變數被設定時清除該等待變數。
該揭示技術的一項好處為多個處理器核心可以使用一低潛時自旋鎖結構來有效率地同步化作業,同時可有效率地利用電力與系統資源。
本發明一具體實施例可以實作成由一電腦系統使用的一程式產品。該程式產品的程式定義該等具體實施例的功能(包括此處所述的方法),並可包含在多種電腦可讀取儲存媒體 上。例示性的電腦可讀取儲存媒體包括但不限於:(i)不可寫入儲存媒體(例如在一電腦內唯讀記憶體裝置,例如可由CD-ROM讀取的CD-ROM碟片、快閃記憶體、唯讀記憶體(ROM,Read-Only Memory)晶片,或任何其它種類的固態非揮發性半導體記憶體),其上可永久儲存資訊;及(ii)可寫入儲存媒體(例如在一磁碟機內的軟碟片或硬碟機,或任何種類的固態隨機存取半導體記憶體),其上可儲存可改變的資訊。
本發明已經參照特定具體實施例於以上進行說明。然而,本技術專業人士將可瞭解到在不背離所附申請專利範圍所提出之本發明的廣義精神與範籌之下,可對其進行多種修正與改變。因此前述的說明及圖示係為例示性,而非限制性的角度來看待。
100‧‧‧電腦系統
102‧‧‧中央處理單元
103‧‧‧共用記憶體
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
106‧‧‧通訊路徑
107‧‧‧輸入/輸出橋接器
108‧‧‧使用者輸入裝置
110‧‧‧顯示裝置
112‧‧‧平行處理子系統
113‧‧‧通訊路徑
114‧‧‧系統碟
116‧‧‧開關
118‧‧‧網路轉接器
120‧‧‧嵌入卡
121‧‧‧嵌入卡
130‧‧‧處理器核心
210‧‧‧鎖變數
212‧‧‧等待變數
222‧‧‧存取監視器
224‧‧‧記憶體介面
所以,可以詳細瞭解本發明上述特徵之方式當中,本發明之一更為特定的說明簡述如上,其可藉由參照具體實施例來進行,其中一些例示於所附圖式中。但是應要注意到,該等所附圖式僅例示本發明的典型具體實施例,因此其並非要做為本發明之範疇的限制,其可允許其它同等有效的具體實施例。
第一圖例示設置成實作本發明一或多種態樣之電腦系統的方塊圖;第二圖係根據本發明一具體實施例設置成包括兩個處理核心的一中央處理單元之更為詳細的圖示;第三圖係根據本發明一具體實施例用於執行一自旋鎖獲取功能的的方法步驟之流程圖;以及第四圖係根據本發明一具體實施例用於執行一自旋鎖釋放功能的的方法步驟之流程圖。
300‧‧‧方法
310,312,314,320,322, 324,330,332,334,336,390‧‧‧步驟

Claims (8)

  1. 一種用於管理一自旋鎖以指明專屬存取至一系統資源的方法,該方法包含:一判斷一第一處理器嘗試要獲取該自旋鎖,就將關聯於該第一處理器的一執行優先性位準自一初始優先性位準提高至一高優先性位準;設置關聯於該第一處理器的一監視電路以監視關聯於自旋鎖狀態資料的一記憶體位址;測試關聯於該自旋鎖狀態資料的一鎖定旗標,且決定該自旋鎖係在一鎖定狀態中;在一低電力狀態下等待直到該記憶體位址由一第二處理器存取,藉由執行一記憶體等待作業,其使得該第一處理器進入該低電力狀態,且後續當該記憶體位址由該第二處理器存取時退出該低電力狀態;測試關聯於該自旋鎖狀態資料的該鎖定旗標,且決定該自旋鎖已不在該鎖定狀態中;指明該系統資源可由該第一處理器專屬地存取;清除該鎖定旗標以指明該自旋鎖已經由該第一處理器釋放;以及一判斷該自旋鎖已經從該第一處理器被釋放,就設定該第一處理器的該優先性位準回到該初始優先性位準。
  2. 如申請專利範圍第1項之方法,其中該自旋鎖狀態資料常駐在可同時由該第一處理器與該第二處理器存取的一共用記憶體中,且其中該記憶體位址對於該自旋鎖狀態資料之至少一部份在該共用記憶體中定義一位置。
  3. 如申請專利範圍第1項之方法,其中該第一處理器僅在當該第二處理器對該記憶體位址執行一寫入存取作業時退出該低電力狀態。
  4. 如申請專利範圍第1項之方法,其中該自旋鎖狀態資料包含一順序佇列,其被設置成指明是否有任何處理器正在等 待來獲取該自旋鎖。
  5. 如申請專利範圍第1項之方法,其中該自旋鎖狀態資料包含該鎖定旗標與一等待旗標,該鎖定旗標指明該自旋鎖是否在該鎖定狀態,而該等待旗標指明該第二處理器是否正在等待來獲取該自旋鎖。
  6. 如申請專利範圍第5項之方法,其中該記憶體位址在該等待旗標的一共用記憶體內定義一位置。
  7. 如申請專利範圍第6項之方法,進一步包含:在該自旋鎖狀態資料上執行一原子比較與交換作業以嘗試來獲取該自旋鎖的擁有權;測試該等待旗標並決定該第二處理器正在等待來獲取該自旋鎖;以及清除該等待旗標以指明目前無處理器正在等待來獲取該自旋鎖。
  8. 一種運算裝置,其包含:一記憶體系統;一第一監視電路,其耦合至該記憶體系統;以及一第一處理器,其耦合至該記憶體系統與該第一監視電路,且設置成:一判斷一第一處理器嘗試要獲取該自旋鎖,就將關聯於該第一處理器的一執行優先性位準自一初始優先性位準提高至一高優先性位準;設置關聯於該第一處理器的一監視電路以監視關聯於自旋鎖狀態資料的一記憶體位址;測試關聯於該自旋鎖狀態資料的一鎖定旗標,且決定該自旋鎖係在一鎖定狀態中;在一低電力狀態下等待直到該記憶體位址由一第二處理器存取,藉由執行一記憶體等待作業,其使得該第一處理器進入該低電力狀態,且後續當該記憶體位址由該第二處理器存取時退出該低電力狀態; 測試關聯於該自旋鎖狀態資料的該鎖定旗標,且決定該自旋鎖已不在該鎖定狀態中;指明該系統資源可由該第一處理器專屬地存取;清除該鎖定旗標以指明該自旋鎖已經由該第一處理器釋放;以及一判斷該自旋鎖已經從該第一處理器被釋放,就設定該第一處理器的該優先性位準回到該初始優先性位準。
TW101131837A 2011-09-02 2012-08-31 對多處理器同步化電力最佳化的方法 TWI509422B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/225,249 US8713262B2 (en) 2011-09-02 2011-09-02 Managing a spinlock indicative of exclusive access to a system resource

Publications (2)

Publication Number Publication Date
TW201324184A TW201324184A (zh) 2013-06-16
TWI509422B true TWI509422B (zh) 2015-11-21

Family

ID=47074999

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101131837A TWI509422B (zh) 2011-09-02 2012-08-31 對多處理器同步化電力最佳化的方法

Country Status (5)

Country Link
US (1) US8713262B2 (zh)
CN (1) CN103176943B (zh)
DE (1) DE102012215439A1 (zh)
GB (1) GB2495183B (zh)
TW (1) TWI509422B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605921A (zh) * 2013-10-28 2014-02-26 清华大学 内核扩展安全访问方法及装置
US9632569B2 (en) 2014-08-05 2017-04-25 Qualcomm Incorporated Directed event signaling for multiprocessor systems
US10185564B2 (en) * 2016-04-28 2019-01-22 Oracle International Corporation Method for managing software threads dependent on condition variables
US11061730B2 (en) * 2016-11-18 2021-07-13 Red Hat Israel, Ltd. Efficient scheduling for hyper-threaded CPUs using memory monitoring
US20180314289A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Modifying an operating frequency in a processor
US20190073243A1 (en) * 2017-09-07 2019-03-07 Alibaba Group Holding Limited User-space spinlock efficiency using c-state and turbo boost
US10691487B2 (en) 2018-04-25 2020-06-23 International Business Machines Corporation Abstraction of spin-locks to support high performance computing
US20220342721A1 (en) * 2021-04-22 2022-10-27 EMC IP Holding Company, LLC System and Method for Efficient Snapshots Barrier Mechanism for System With Presorted Container-Based Log
CN114546905B (zh) * 2022-01-20 2024-05-14 广州广电五舟科技股份有限公司 一种多路cpu的通道同步控制方法及装置
US12007936B2 (en) * 2022-01-21 2024-06-11 VMware LLC Power efficient memory value updates for arm architectures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200517865A (en) * 2003-09-25 2005-06-01 Ibm Method and system for autonomically adaptive mutexes
US20090094430A1 (en) * 2007-10-05 2009-04-09 International Business Machines Corporation Providing a process exclusive access to a page including a memory address to which a lock is granted to the process
US7788668B2 (en) * 2005-06-09 2010-08-31 Lockheed Martin Corporation System and method for implementing distributed priority inheritance
US20110161599A1 (en) * 2009-12-24 2011-06-30 Simon John Craske Handling of a wait for event operation within a data processing apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648252A (en) * 1969-11-03 1972-03-07 Honeywell Inc Multiprogrammable, multiprocessor computer system
US6792497B1 (en) 2000-12-12 2004-09-14 Unisys Corporation System and method for hardware assisted spinlock
WO2002069174A1 (fr) * 2001-02-28 2002-09-06 Fujitsu Limited Procede d'execution en parallele de processus et ordinateur a processeurs multiples
US7912930B1 (en) * 2002-02-21 2011-03-22 Oracle International Corporation System and method for resource provisioning
US7213093B2 (en) 2003-06-27 2007-05-01 Intel Corporation Queued locks using monitor-memory wait
GB2441903B (en) 2003-06-27 2008-04-30 Intel Corp Queued locks using monitor-memory wait
US7100009B2 (en) * 2003-09-18 2006-08-29 International Business Machines Corporation Method and system for selective memory coalescing across memory heap boundaries
US8151269B1 (en) * 2003-12-08 2012-04-03 Teradata Us, Inc. Database system having a service level goal responsive regulator
JP4376692B2 (ja) 2004-04-30 2009-12-02 富士通株式会社 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ
US7257679B2 (en) 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Sharing monitored cache lines across multiple cores
US7721291B2 (en) * 2004-10-15 2010-05-18 International Business Machines Corporation Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput
JP2007109057A (ja) * 2005-10-14 2007-04-26 Hitachi Ltd プロセッサ
JP2007287085A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US7882379B2 (en) 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
EP2040192A4 (en) * 2006-12-22 2011-03-30 Panasonic Corp INFORMATION PROCESSING DEVICE, INTEGRATED CIRCUIT, METHOD, AND PROGRAM
TW201009713A (en) * 2008-08-21 2010-03-01 Ind Tech Res Inst Multitasking processor and task switch method thereof
US8392925B2 (en) 2009-03-26 2013-03-05 Apple Inc. Synchronization mechanisms based on counters
CN102103523A (zh) 2009-12-22 2011-06-22 国际商业机器公司 锁分配控制的方法和装置
JP2011150422A (ja) * 2010-01-19 2011-08-04 Renesas Electronics Corp データ処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200517865A (en) * 2003-09-25 2005-06-01 Ibm Method and system for autonomically adaptive mutexes
US7788668B2 (en) * 2005-06-09 2010-08-31 Lockheed Martin Corporation System and method for implementing distributed priority inheritance
US20090094430A1 (en) * 2007-10-05 2009-04-09 International Business Machines Corporation Providing a process exclusive access to a page including a memory address to which a lock is granted to the process
US20110161599A1 (en) * 2009-12-24 2011-06-30 Simon John Craske Handling of a wait for event operation within a data processing apparatus

Also Published As

Publication number Publication date
GB2495183A (en) 2013-04-03
US8713262B2 (en) 2014-04-29
GB2495183B (en) 2013-09-11
GB201215472D0 (en) 2012-10-17
US20130061005A1 (en) 2013-03-07
DE102012215439A1 (de) 2013-03-07
TW201324184A (zh) 2013-06-16
CN103176943A (zh) 2013-06-26
CN103176943B (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
TWI509422B (zh) 對多處理器同步化電力最佳化的方法
TWI808506B (zh) 用於使用者等級執行緒暫止的方法、處理器及系統
TWI512448B (zh) 用以啟用處理器等待狀態之指令
JP5801372B2 (ja) システム管理モードのためのプロセッサにおける状態記憶の提供
US8301849B2 (en) Transactional memory in out-of-order processors with XABORT having immediate argument
TWI620128B (zh) 在中央處理單元與圖形處理單元間分享資源之裝置與系統
JP5035277B2 (ja) 共有メモリに対するアトミックな更新を可能にするロックメカニズム
CN104216680B (zh) 微处理器及其执行方法
US20130198760A1 (en) Automatic dependent task launch
TW201337747A (zh) 來源運算元收集器快取的方法和裝置
TW201435734A (zh) 條件阻擋以及急性阻擋的硬體排程之系統及方法
EP3109728A1 (en) Hardware apparatuses and methods to perform transactional power management
CN108701101B (zh) 处理器系统管理中断事件的基于仲裁器的串行化
TWI428755B (zh) 用於配置直接記憶體存取(dma)頻道識別符之方法、電腦可讀取儲存媒體、及資料處理系統
JP2015515687A (ja) 高速キャッシュシャットダウンのための装置および方法
EP3140730B1 (en) Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme
CN108984464A (zh) 微处理器及在微处理器的处理核间同步的方法
CN104216679B (zh) 微处理器及其执行方法
CN104238997B (zh) 微处理器及其执行方法
US11243800B2 (en) Efficient virtual machine memory monitoring with hyper-threading
US9886396B2 (en) Scalable event handling in multi-threaded processor cores
US7552269B2 (en) Synchronizing a plurality of processors
JP6281442B2 (ja) 割り当て制御プログラム、割り当て制御方法及び割り当て制御装置
CN104360727B (zh) 微处理器及使用其省电的方法
CN104331387B (zh) 微处理器及其配置方法