TW201140281A - Controlling time stamp counter (TSC) offsets for multiple cores and threads - Google Patents
Controlling time stamp counter (TSC) offsets for multiple cores and threads Download PDFInfo
- Publication number
- TW201140281A TW201140281A TW099139024A TW99139024A TW201140281A TW 201140281 A TW201140281 A TW 201140281A TW 099139024 A TW099139024 A TW 099139024A TW 99139024 A TW99139024 A TW 99139024A TW 201140281 A TW201140281 A TW 201140281A
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- tsc
- thread
- counter
- offset
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Time-Division Multiplex Systems (AREA)
- Picture Signal Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Description
201140281 六、發明說明: 【發明所屬之技術領域】 本發明係有關控制用於多核心及執行緒的時間戳記計 數器(TSC )偏移。 【先前技術】 許多處理器包含時間戳記計數(T S C )計數器,其係 典型地實施爲以固定速率而增量的計數器。若干已知的 T s c計數器係以匯流排時脈速率而計時,且在每—個匯流 排時脈循環添加乘數値。也就是說,若匯流排時脈係在 100百萬赫(MHz)且處理器係戳記於2000MHz的操作時, 則在每個匯流排時脈將20的値添加至TSC計數。通常,對 於多核心處理器,具有單一硬體TSC計數器以供存在於處 理器中的若干個核心之用。用於所給定之核心的TSC之解 析値係此TSC計數値加上核心偏移。 保持用於每一個核心的TSC値在多插座,多核心,及 多執行緒的系統中同步以供軟體之用可係重要的。一些軟 體使用TSC値做爲要記錄例如,在資料庫交易中之事件次 序:的戳記。在二處理器之間的時間落後可導致不利的結果 ’且甚至對於某些操作可係致命的。此外,可存在有在使 TSC値能同步於多核心之間所涉及之大的複雜度。 當軟體要更新用於給定之核心的TSC値時,處理器會 讀取TSC計數器且計算新値。也就是說,硬體TSC計數器 不再被寫入。因爲此操作係有效地寫入至移動目標,所以 -5- 201140281 軟體不保證其可接受該値。也就是說,要更新用於給定之 核心的TSC値之各式各樣的軟體操作可被無限地延遲。若 延遲發生於新値的軟體計算與此値的寫入之間時,則計算 係無效,且流程將必須重實施。該等操作在單一處理器系 統中可係常見的。 在跨越多處理器以更新TSC値包含更大的複雜度,特 別地,在當其中該等値必須被同步化以供正確軟體操作時 。爲fl施TSC値之此寫入以供多處理系統的核心之用,需 要例如,成對同步之包含障礙及同步的更複雜流程,而產 生複雜度且可係耗時的。 【發明內容及實施方式】 在各式各樣的實施例中,用於所給定之核心(及/或 在該核心上所執行之一或更多個執行緒)的時間戳記計數 (TSC )値可與其他核心無關聯地被計算。該等核心TSC 値可部分地根據獨立的核心TSC計數器,而伴隨例如將描 述於下文之各式各樣的偏移。爲此目的,可實施對於核心 偏移之直接讀取及寫入,而旁通用於多核心處理器之多核 心間的同步化之需。因爲在插座內的所有核心/執行緒共 享單一硬體計數器,所以對於核心的偏移之直接寫入可有 效地允許軟體在其空閑時更新核心之偏移。注意的是,此 直接寫入亦可針對執行緒偏移,以供一或更多個核心上所 執行之多執行緒的每一者之用,如下文將更詳細描述地。 在各式各樣的情況中,可將核心T S C値使用做爲例如,要 -6- ⑤ 201140281 排序交易或要決定目前之延遲時間的輕便戳記機制。 現請參閱第1圖,顯示依據本發明一實施例之處理器 的一部分之方塊圖。如第1圖中所示地,處理器100可包含 非核邏輯110及核心邏輯150。大致地,非核邏輯110可包 含各式各樣的電路、邏輯、及其類似物,以實施有關電力 管理、與其他組件之界面、計時、及其類似者之全部的處 理器操作。依序地,核心邏輯1 50可包含要執行各式各樣 指令之處理器的主要執行單元。在許多實施例中,處理器 1〇〇可爲多核心處理器,其中,雖然僅存在有單一非核邏 輯,但可設置複數個核心邏輯150。 請參閱第1圖,主要顯示使用於有關時間戳記計數的 時脈操作之目的的組件,且爲描繪方便起見,並未顯示用 於處理器之大部分的其他電路及邏輯。關於非核邏輯110 ’可設置非核TSC計數器120。大致地,非核TSC計數器 120可藉由增量器125而增量,例如以匯流排時脈之速率, 亦即’以耦接至處理器的匯流排的匯流排時脈率而增量。 在一實施例中,此匯流排可爲前端匯流排(FSB ),雖然 本發明之範疇並未受限於此方面。也就是說,匯流排之用 語係一般性地使用以表示任何類型之互連,包含諸如點對 點互連之串聯互連。例如,處理器可經由點對點互連而被 耦接’以及非核T S C計數器依據一般時脈速率(針對此處 之目的,可視爲匯流排時脈速率)而計算。由非核T s C計 數器120所輸出的値可使用於非核中之各式各樣的操作。 此外’如下文將進一步討論地,來自非核T S C計數器1 2 0之 201140281 値可由個別的核心所使用’以准許不同的核心及/或在該 等核心上所執行的執行緒之間的同步化。 仍請參閱第1圖,額外的電路可存在於非核邏輯110之 中。特定地,快照控制器1 3 0可存在且可使用以獲得用於 一或更多個核心的快照。如下文所述地,此快照可爲非核 TSC計數器在對應的核心TSC計數器之重設時的値。如所 示地,可存在複數個快照儲存器HOg至140n,各與處理器 之給定的核心相關聯。當由快照控制器1 30所致能時,該 等快照儲存器可在快照控制器1 30的控制下,儲存非核TSC 計數器1 20的目前値。所儲存用於給定的核心之此値可對 應於對應的核心邏輯本身之TSC計數器被重設的時間。也 就是說,快照控制器130可產生要與到快照儲存器140的信 號同時地重設核心中之TSC計數器的重設信號,以獲得非 核TSC計數器値。因此,儲存於給定的快照儲存器140中之 値可對應於給定之核心TSC計數器180的重設時之非核TSC 計數器値。也就是說,非核TSC計數器係參考,以及快照 係取得於核心TSC計數器被重設爲零的相同時間。該等快 照値可提供自非核TSC計數器獲得TSC値的正確點。然後 ’可在不定的時間存取用於給定之核心的快照値,且添加 至核心T S C値,而作用成爲要使非核τ S C値與核心T S C値匹 配之時間的參考値。 不考慮該等核心的狀態,非核TSC計數器120持續以其 決定的比例及頻率而計數。當不同的核心進入及離開不同 的低電力狀態(例如,進階組態及電力介面(A C P I )規格 -8 - ⑤ 201140281 修正第4版(2009年6月16日)之所謂C狀態 頻率狀態時,可使用快照控制機制來實施核 在一實施例中,可使用處理器微碼來寫 致使快照發生,且然後,讀取快照値,而輪 成快照。如第1圖中所示地,在一實施例中 係存在於非核邏輯Π 0中之複數個核心暫存I 者。因而,藉由處理器微碼所實施之此寫入 新非核邏輯中之用於核心的對應暫存器中之 此更新可觸發快照控制器1 30以完成用於對 的更新。因而,對快照控制器1 3 0之此控制 核TSC計數器120的目前TSC値被寫入至對應 存器1 4〇之內。在稍後時間(潛在地),所 部地寫入至核心之內。此値可自快照儲存器 之對應的儲存器。因而,此快照値係靜態値 一步敘述地,用於核心之有效TSC値係核心 偏移(亦即,此核心快照値)、及用於目前 之執行緒偏移的總和。 仍請參閱第1圖,接著將敘述核心邏輯1 核心邏輯1 5 0可包含要執行指令而存在的所 各式各樣的儲存器、排序邏輯、執行單元、 其類似物。在第1圖之高層次視圖中,通常 顯示成爲核心管道190。大致地,用於亂序 道可包含要提取及解碼指令之前置單元,及 以供管道之一或更多個執行單元中的執行之 )或其他交變 心頻率更新。 入暫存器,而 詢以確保已完 ,此暫存器可 g 135的其中一 .TSC指令可更 値。依序地, 應之核心快照 信號可致使非 的核心快照儲 讀取的値係局 寫入至核心內 。如下文將進 TSC値、核心 運作的執行緒 5 0。槪括地, 有組件,包括 引退邏輯、及 可將該等組件 機器之核心管 要重排序指令 用的亂序引擎 -9- 201140281 。然後,可將結果提供至後置單元以重排序及引退該等指 令。請參閱所贲施的時序操作,管道190係顯示爲包含算 術邏輯單元(ALU) 192。然而,應瞭解的是’更多的該等執 行單元及邏輯可存在於核心管道190之內。此外’存在於 核心邏輯中之一種此儲存器可爲草稿儲存器195 ’其可使 用以提供暫存器爲基礎的儲存器以供微碼之使用。例如’ 請參閱上文之藉由處理器微碼對核心暫存器135之寫入而 觸發藉由快照控制器1 3 0的快照之討論,可瞭解到的是, 所寫入至對應的核心快照儲存器1 40之値可回寫至核心邏 輯150,且更特定地,可儲存於草稿儲存器195中。 此外,核心邏輯150可包含核心TSC計數器180。此計 數器可被控制以呈現爲以用於處理器之戳記的頻率而運作 。此計數器可藉由可控制的加法器160來予以更新。通常 ,核心TSC計數器1 80可以以給定速率之核心時脈頻率而計 時。此外,在預定的間隔,儲存於調整儲存器165及170中 之大的及/或小的調整値之其中一者可被添加至計數値, 而藉以增量核心TSC計數器1 80,以便提供調整於當核心係 寶際地執行於與該戳記的頻率不同的頻率時。 也就是說,處理器係以例如,2GHz (十億赫)或 3 GHz之特殊的頻率而被戳記,該頻率係核心TSC計數器呈 現運作的速率。然而,因爲諸如渦輪模式及低電力狀態的 15施考慮,核心可運作於例如,1 GHz、4GHz、或其他値 之不同的頻率。爲各式各樣軟體之目的,應維持該核心正 運作於戳記的頻率之假象。因爲核心可運作之比例相對於 -10- ⑤ 201140281 對應至戳記的頻率之比例並不會彼此互相爲倍數,所以可 將該等小的及大的調整添加至核心TSC値。在一實施例中 ,小的調整可每X個核心時脈地添加,以及大的調整可在 當X核心時脈與匯流排時脈對齊時之最小公倍數時添加。 因此,核心TSC輸出通常被視爲階梯圖案。在一實施例中 ,該大的及小的調整可爲預定的,且當頻率改變時,可例 如藉由處理器微碼而可編程式計算。在一實施例中,此計 算可依據方程式1 :
StampedRatio
LeastCommonMultiple{CurrentRatio^) 4
LeostCommonMultiple(CurrentRatio94) [方程式1 ]
CurrentRatio 其中StampedRatio係戳記的處理器頻率,以及CurrentRatio 係核心正在操作時之頻率。 使用方程式1,所產生之整數商數係小的調整値,且 整數餘數係大的調整値。爲討論便利起見,該等値可依據 方程式2而以稍爲更簡單的方式來加以計算。 4*Stamped Ratio = (Small*Current Ratio) + (Large-Small)、方程式 2 飞 在該二方程式中,4係核心TSC計數器的人造物,而在 每第四時脈時添加。此速率僅藉由避免以比可讀取之速率 更高的速率來計算時該核心TSC計數器,以節省電力。校 正週期係4 (因爲計數發生於每第四個Mclk )與藉由目前 -11 - 201140281 比例所相除之目前比例的最小公倍數,且係4與藉由目前 比例所相乘之目前比例的最小公約數(GCD )。注意的是 ,在此K施例中係使用數目4,但可根據讀取TSC計數器 之解析度而使用其他値,以與將藉由更低速率計時所節省 的電力取得平衡。下文的第1表顯示依據本發明實施例之 爲計算大的及小的調整値之實例虛擬碼。 第1表 > correctionPeriod :: (Int) -> (Int) > correctionPeriod (currentratio) = div (leastCommonMultiple(currentratio, 4)) currentratio 該correctioncount係4與乘以4之currentratio的GCD。 此在各個校正週期中係4xMclk之數目。 > correctionCount :; (Int) -> (Int) > correctionCount (currentratio) = div (leastCommonMultiple(currentratio, 4)) 4 該correctioncount係依偏離校正週期時之maxratio的校正値。 > correctionCountAtCorrection :: (Int, Int) -> (Int) > correctionCountAtCorrection (currentratio, maxratio) = (correctionPeriod (currentratio)) * maxratio 該等TSC値係在校正點及在該校正中之4時脈週期 的數目時之校正計數器的模除法和餘數。 > tscValues :: (Int, Int) -> (Int, Int) > TSCValues (currentratio, maxratio) = (x, y) > wherein x = div (correctCountAtCorrection(currentratio, maxratio)) (correctionCount(currentratio)) > y = mod (correctCountAtCorrection(currentratio, maxratio)) (correctionCount(currentratio)) 注意的是,在若干實施例中,小的及大的調整可由快 照控制器1 3 0所調整,而回應於重設信號。 在一個實施例中,可控制的加法器1 60每第4核心時脈 地添加儲存於儲存器1 70中之小的增量値,且在每第4個與 -12- ⑤ 201140281 匯流排時脈對齊的核心時脈地添加儲存於儲存器16 5中之 大的調整値。現請參閱第2圖,顯示核心TSC計數器對即時 之比較。如所示地,當核心正運作於奇數倍數之戳記的頻 率時,則使用小的增量於所有時脈,直至該等時脈與匯流 排時脈匹配爲止,而大的調整會發生於此時。 在各式各樣的實施例中,儲存於儲存器165及170中之 二調整値可暴露至軟體,以允許0S能使時間邊際地加速, 而不致具有由於時間的中斷。也就是說,OS或其他監督者 軟體可編程小的或大的調整量,而允許軟體增量地調整核 心TSC計數器以即時地趕上。 仍請參閱第1圖,複數個執行緒偏移儲存器18 5〇及185! 可存在於核心邏輯1 5 0中,其可各自地儲存執行緒偏移値 。該等執行緒偏移値可對應至核心TSC計數器値與對應的 核心偏移間之用於給定的執行緒之偏移,而自對應的核心 快照儲存器1 4 0獲得。大致地,可使用核心T S C計數器1 8 0 以指示(藉由添加核心偏移)距離已維持電力之重設的時 間長度至核心。該執行緒偏移可受軟體控制,以考慮在睡 眠狀態中所消耗的時間而供應不同配置的時間至核心上所 運作的應用程式,或針對天之時間的値而調整。注意的是 ’雖然以此特殊之實施例來顯示於第1圖中,但本發明之 範疇並未受限於此點。例如,如下文所討論之同步化操作 可無需核心快照儲存器而實施於實施例之中。 在一實施例中’當執行讀取TSC指令時,微碼操作以 讀取核心τ S C値’且合計該核心T s C値、執行緒偏移 '及 -13- 201140281 核心快照’而獲得用於該執行緒的有效τ s C値。在若干實 施例中’可爲特權指令之寫入TSC指令可致使微碼合計核 心快照加上核心TSC計數器’且計算需成爲執行緒所欲之 任何値’亦即,使用者界定之値的執行緒偏移,以便寫入 。因此’該執行緒偏移値可爲正或負數。例如,若核心快 照係1 〇 〇 ’核心T S C係2 0 0 0,且程式指示5 0 0 0的寫入値時, 則執行緒偏移値將變成2000。注意的是,此寫入TSC操作 扮演對執行緒偏移値的直接寫入。在各式各樣的實施例中 ’取代無論何時軟體能做到之執行所欲的核心TSC値之寫 入及接著產生執行緒偏移値,對執行緒偏移値之直接存取 可發生’以致使所欲的値直接寫入至執行緒偏移値儲存器 。在一苡施例中’可將執行緒偏移値儲存於模型特定暫存 器(M S R )中。因此,在該等實施例中,可將執行緒偏移 儲存器185ff施成爲MSR。因而,對此MSR的寫入可使用 寫入至MS R指令而實施。在某些實施例中,可使用例如, OS、VMM、或其他特權軟體之監督者軟體來實施此寫入 至 MSR。 因此,在各式各樣的實施例中,可將此執行緒偏移値 直接寫入,以避免要K施複雜且耗時的同步化操作於多重 執行緒之間的需要。現請參閱第3圖,顯示依據本發明— »施例之用以更新執行緒偏移値之方法的流程圖。注意的 是,在各式各樣的實施例中,可實施第3圖之方法以致能 跨越執行緒及核心的一致性,而無需任何障礙或同步化操 作。雖然本發明之範疇並未受限於此點,但方法200可使 -14- ⑧ 201140281 用例如諸如os或VMM之監督者軟體而予以實施。在一特 殊的實施例中,例如,更新TSC指令之單一指令可致使第3 圖中所描繪之各式各樣操作的執行。 如所示地,方法200可藉由記錄TSC値而開始(方塊 210)。在某些實施例中,可使第3圖之方法開始,以回應 於使用者對於低電力狀態的請求。例如,使用者可選擇休 眠操作(例如,經由膝上型個人電腦鍵盤上之F4功能鍵) ,以致使系統進入待命或休眠狀態。回應於此選擇,該0 S 或其他監督者軟體可根據給定的低電力狀態而記錄目前非 核TSC値至系統記憶體或至主儲存器(例如,碟片)。然 後,可懸置該系統(方塊2 2 0 )。例如,0 S可開始要設置 系統成爲諸如ACPI S3或S4狀態之懸置狀態的所謂S狀態, 其中包含核心及非核邏輯二者之各式各樣的處理器實體可 被設置於其中可完全關閉對處理器之電力的睡眠狀態。 在若干時間量逝去之後(方塊23 0 ),該系統自懸置 重新繼續(方塊240 )。此時間可結束於當使用者重開始 操作時,或可回應於平台時計的期滿。此時,可藉重設而 使各式各樣的時間戳記計數器,非核及核心二者初始化爲 零。在各式各樣的實施例中,可使所有的TSC計數器初始 化(例如,所有均被同時地重設)。仍進一步地,在多插 座系統中,所有的插座均可被重設於相同的時間。 因爲在懸置之前正運作的軟體已讀取TSC計數器且已 預期該値要隨著時間而增加,所以0S可恢復TSC計數器爲 懸置之前的値或爲目前的壁鐘時間。例如,此決定可透過 -15- 201140281 控制値而藉由os來作成。在一實施例中,該壁鐘時間可自 系統的即時時鐘獲得。因而,可請取記錄的TSC値(方塊 250 )。然後,可將此記錄的TSC値(先前儲存之値或所獲 得之即時時鐘値)直接寫入至執行緒偏移値(方塊260 ) 。在一货施例中,此執行緒偏移値可在重設時被直接寫入 至用於所有主動核心中未決之所有主動執行緒的每個執行 緒偏移儲存器。注意的是,此寫入操作可無需多重執行緒 及/或核心之間的同步化而實施。 以此方式,可有效率地贸現執行緒同步化(方塊270 ),而無需障礙或其他同步化。透過此記錄的執行緒偏移 値,給定的執行緒可接著使用該執行緒偏移値以映射例如 由該執行緒相對於核心TSC計數器(及非核TSC計數器) 所看到的時間,而在核心上執行。因而,在此時,正常的 計數操作會透過從零開始計數的非核TSC計數器及主動核 心TSC計數器二者而繼續。在一實施例中,核心快照儲存 器140亦可在此同時,被重設爲零。因而,例如由各式各 樣之執行緒所看到的時間可藉由接收同步化値,以及上述 有關核心TSC計數器値及執行緒偏移値(及當針對給定的 核心而更新頻率時之任何更新的快照値)之各式各樣的計 算而維持。針對其他的執行緒偏移値或針對並未與系統同 時被供電的核心’當該等執行緒/核心開始執行時,記錄 的TSC値可被稍後寫入。因而’此記錄的TSC値扮演同步 化値’而致能更新在不同時間發生但接收相同的同步化値 之不同執行緒/核心中的偏移。仍進一步地,此同步値可 -16- ⑧ 201140281 在不同的時間被提供,而無需同步化/障礙操作。雖然以 此特殊之實施而顯示於第3圖的實施例之中,但本發明之 範疇並未受限於此點。 現請參閱第4圖,顯示依據本發明一實施例之處理器 核心的方塊圖。如第4圖中所示地,處理器核心3 00可爲多 級管道式亂序處理器。處理器核心3 00係以相對簡之視圖 來顯示於第4圖中,而描繪依據本發明實施例之與處理器 等待狀態相關連所使用之各式各樣的特性。 如第4圖中所示地,核心300包含前置單元310,其可 使用以提取將被執行的指令且預備它們以供稍後在處理器 中使用之用。例如,前置單元310可包含提取單元301,指 令快取3 03,及指令解碼器3 05。在某些實施例中,前置單 元310可進一步包含蹤跡快取,伴隨有微碼儲存器以及微 操作儲存器。提取單元301可自例如記億體或指令快取3 03 提取巨指令,且供給它們至指令解碼器305,以將它們解 碼成爲基元,亦即,藉由處理器之執行的微操作。將被操 縱於前置單元310中的一種指令可爲依據本發明實施例之 TSC更新指令。此指令可使前置單元能存取各式各樣的微 操作,以致能諸如與直接更新執行緒偏移値而無需同步化 /障礙操作相關聯之上述操作的執行。 在前置單元3 10與執行單元3 20之間所耦接的係亂序( 000 )引擎315,其可使用以接收微指令且預備它們以供 執行之用。更特定地,該〇〇〇引擎315可包含各式各樣的 緩衝器,以重排序微指令流及配置用於執行之所需的各式 -17- 201140281 各樣之资源,以及提供邏輯暫存器之再命令至諸如暫存器 檔案330及擴充的暫存器檔案335之各式各案暫存器檔案內 的儲存位置上。暫存器檔案3 30可包含用於整數及浮點運 算之個別的暫存器檔案。擴充的暫存器檔案335可提供用 於例如每暫存器256或5 12位元的向量尺寸之單元的儲存之 用。 各式各樣的資源可存在於執行單元320中,包含例如 ,在其他特殊化硬體中之各式各樣的整數、浮點、及單一 指令多重資料(SIMD )邏輯單元。例如,該等執行單元 可包含一或更多個算術邏輯單元(ALU ) 3 22。此外,可 存在依據本發明贲施例之時序邏輯3 24。該時序邏輯可使 用以執行涉及實施TSC更新之包含控制一或更多個ALU 3 22的若干操作,以及實施要直接更新執行緒偏移値之各 式各樣的操作。如下文將進一步討論地,用以操縱該等更 新的額外邏輯可存在於諸如非核之處理器的另外部分之中 。在第4圖中亦顯示時計326之組合。在此,用於分析之相 關的時計包含核心TSC時計及要對時計値提供調整之各式 各樣的儲存器。結果可被提供至引退邏輯,亦即,重排序 緩衝器(ROB) 340。更特定地,ROB 340可包含要接收與 所執行之指令相關聯的資訊之各式各樣的陣列和邏輯。然 後,此資訊係由ROB 3 40所檢驗,以決定該等指令是否可 有效地引退,且結果資料是否表明處理器的架構狀態,或 一或更多個例外是否發生而阻礙該等指令之適當引退。當 然,ROB 3 40可操縱與引退相關聯的其他操作。 -18- ⑤ 201140281 如第4圖中所不地,ROB 34〇係稱接至快取350,在一 實施例中’該快取3 50可爲低階快取(例如,L1快取), 雖然本發明並未受限於此點。而且,執行單元3 2〇可直接 親接至快取350。來自快取350的資料傳達可與高階快取, 系統記憶體’及其類似物一起發生。雖然在第4圖的實施 例中係以此高階而顯示’但應瞭解的是,本發明之範疇並 未受限於此點。 現請參閱第5圖,顯示依據本發明實施例之處理器的 方塊圖。如第5圖中所示地,處理器400可係包含複數個核 心4 1 0a至4 1 0n之多核心處理器。在—實施例中,每個核心 可組構成爲上述關於第4圖之核心。各式各樣的核心可經 由互連4 1 5而耦接至包含各式各樣組件的非核420。如圖所 示地’非核420可包含共享快取430,其可爲最後層次快取 。此外,非核可包含積集的記憶體控制器440,各式各樣 的介面450,及時序控制單元45 5。與更新核心TSC相關聯 的至少一些功能性可實施於時序控制單元4 5 5中。例如, 時序控制單元455可包含諸如在上文第1圖中所討論之非核 TSC計數器,快照控制器,及快照儲存器。如圖所示地, 例如,處理器400可經由記憶體匯流排而與系統記憶體460 通訊。此外,藉由介面450,可作成對諸如週邊裝置、主 儲存器、及其類似物之各式各樣離晶組件的連接。雖然在 第5圖的實施例中係以此特殊的實施例而顯示,但本發明 的範疇並未受限於此點。 在其他實施例中,處理器架構可包含仿真特性,使得 -19- 201140281 處理器可執行第一IS A (稱爲來源ISA)的指令,其中該架 構係根據第二ISA (稱爲目標ISA )。槪括地,包含OS及 應用程式二者的軟體係編譯至來源ISA,以及硬體實施目 標ISA ’而該目標ISA係以特殊性能及/或能量效率特性被 特定地設計用於給定的硬體實施例。 現請參閱第6圖,顯示依據本發明另一實施例之處理 器的方塊圖。如第6圖中所示地,系統500包含處理器510 及記憶體5 2 0。記憶體5 2 0包含:習知記憶體5 2 2,其保持 系統及應用軟體二者;以及隠藏記憶體524,其保持用於 目標I S A所利用的軟體。如圖所示地,處理器5 1 0包含仿真 引擎530’其轉換來源碼成爲目標碼。仿真可以以解譯或 二進制轉譯而完成。當最初遭遇時,常使用解譯於碼。當 頻繁執行的碼區(例如,熱點)係透過動態描繪輪廓而發 現時’則將它們轉譯爲目標ISA且儲存於隱藏記憶體524中 的碼快取之中。最佳化可實行爲轉譯過程的一部分,且被 很密切地使用的碼可稍後進一步地予以最佳化。所轉譯之 碼區塊係保持於碼快取524中,以致使其可被重複使用。 仍請參閱第6圖’可爲多核心處理器之一核心的處理 器5 1 〇包含程式計數器540 ’其提供指令指標位址至指令快 取(I快取)550。如圖所示地,一旦失去給定的指令位址 時,I快取5 5 0可自隱藏記憶體5 2 4進一步直接接收目標IS A 指令。因而’ I快取5 50可儲存目標IS A指令,該目標IS A指 令可被提供至解碼器5 60,而該解碼器5 60可爲目標IS A的 解碼器,以便接收可爲巨指令層次的輸入指令且轉換該等 -20- ⑤ 201140281 指令成爲微指令’以供處理器管道570內的執行之用。雖 然本發明之範疇並未受限於此點,但管道5 70可爲要實施 及撤退指令之包含各式各樣階段的亂序管道。諸如上述之 各式各樣的執行單元、時計、計數器、及儲存器可存在於 管道570內’以實施TSC更新操作。 實施例可以以許多不同的系統類型而實施。現請參閱 第7圖,顯示依據本發明實施例之系統的方塊圖。如第7圖 中所示,微處理器系統7 00係點對點互連系統,且包含經 由點對點互連750而耦接的第一處理器770及第二處理器 780。如第7圖中所示地’各處理器770及780可爲多核心處 理器,包含第一及第二處理器核心(亦即,處理器核心 774a及77 4b以及處理器核心784a及78 4b),雖然更多的核 心可潛在地存在於該等處理器之中。該等處理器核心各可 包含核心T S C計數器,該等核心T S C計數器可無需同步化/ 障礙操作而被更新用於給定執行的執行緒。 仍請參閱第7圖’第一處理器770進一步包含記憶體控 制器集線器(MCH) 772及點對點(P-P)介面776及77 8。 同樣地’第二處理器780包含MCH 782以及P-P介面786及 788。如第7圖中所示,MCH 772及782耦接該等處理器至 個別的記憶體’亦即’記億體732及記億體734,其可爲局 部附著至個別處理器之主記憶體(例如,動態隨機存取記 憶體(DRAM))的一部分。第一處理器770及第二處理器 7 80可經由P-P互連7 5 2及7 54而分別耦接至晶片組790。如 第7圖中所示,晶片組790包含P-P介面794及798。 -21 - 201140281 再者,晶片組790包含介面792,要藉由P-P介面739以 耦接晶片組790與高性能繪圖引擎7 3 8。依序地,晶片組 790可經由介面796而耦接至第一匯流排716。如第7圖中所 示,各式各樣的輸入/輸出(I/O)裝置714可伴隨匯流排橋 接器718而耦接至第一匯流排716,該匯流排橋接器718可 耦接第一匯流排716至第二匯流排72〇。在一實施例中,可 各式各樣的裝置耦接至第二匯流排720,包含例如,鍵盤/ 滑鼠722、通訊裝置726、及諸如碟片驅動器或可包含碼 73 0之其他主儲存裝置的資料儲存單元728。進一步地,可 將聲頻I/O ?24耦接至第二匯流排720。 雖然已相對於有限數目之實施例而敘述本發明,但熟 習於本項技藝之該等人士將理解來自該等實施例之許許多 多的修正例和變化例。所打算的是,附錄之申請專利範圍 將涵蓋所有該等修正例和變化例,有如落在本發明之真正 精神及範疇之內似地》 【圖式簡單說明】 第1圖係依據本發明一實施例之處理器的一部分之方 塊圖; 第2圖係時序圖,描繪核心時間戳記計數(TSC )計數 器對即時的比較; 第3圖係依據本發明一實施例之方法的流程圖; 第4圖係依據本發明一實施例之處理器核心的方塊圖 ⑤ 201140281 第5圖係依據本發明實施例之處理器的方塊圖; 第6圖係依據本發明另一實施例之處理器的方塊圖; 以及 第7圖係依據本發明實施例之系統的方塊圖。 【主要元件符號說明】 100、 400 ' 510:處理器 11 〇 :非核邏輯 1 5 0 :核心邏輯 120 :非核TSC計數器 125 :增量器 1 3 0 :快照控制器 140〇〜140n、140 :快照儲存器 180 :核心TSC計數器 1 3 5 :核心暫存器 190 :核心管道 192 ' 3 22 :算術邏輯單元(ALU ) 1 9 5 :草稿儲存器 160 :可控制的加法器 165、170 :調整儲存器 185〇、185!:執行緒偏移儲存器 200 :方法 2 1 0〜270 :方塊 3 0 0、4 0 0 a 〜4 1 0 n ··核心 -23- 201140281 3 1 0 :前置單元 301 :提取單元 3 03 :指令快取 3 05 :指令解碼器 3 2 0 :執行單元 315 :亂序(000)引擎 3 3 0 :暫存器檔案 335:擴充的暫存器檔案 324 :時序邏輯 3 2 6 :時計 3 40 :重排序緩衝器(ROB) 3 5 0 :快取 420 :非核 41 5 :互連 4 3 0 :共享的快取 440 :積集的記憶體控制器 450 :介面 45 5 :時序控制單元 460 :系統記憶體 5 0 0 :系統 5 2 0、73 2、734 :記憶體 522 :習知記憶體 5 24 :隱藏記憶體 5 3 0 :仿真引擎 -24 ⑤ 201140281 540 :程式計數器 5 50 :指令快取(I快取) 560 :解碼器 5 70 :處理器管道 700 :微處理器系統 770 :第一處理器 7 8 0 :第二處理器 750、 752、 798、 739、 754、 794 :點對點互連 774a ' 774b、 784a、 784b:處理器核心 772、7 82 :記憶體控制器集線器(MCH) 776、778、786、7 8 8 :點對點(P-P)介面 7 9 0 :晶片組 73 8 :高性能繪圖引擎 792 、 796 :介面 7 1 6 :第一匯流排 7 2 0 :第二匯流排 714:輸入/輸出(I/O)裝置 7 1 8 :匯流排橋接器 722 :鍵盤/滑鼠 7 26 :通訊裝置 72 8 :資料儲存單元 73 0 :碼 7 2 4 ·•聲頻 I / Ο -25-
Claims (1)
- 201140281 七、申請專利範圍: 1· 一種設備,包含: 第一邏輯,包括第一時間戳記計數(TSC )計數器、 第一核心快照儲存器、及快照控制器,該第一時間戳記計 數(TSC )計數器要依據匯流排時脈頻率而計數,且該快 照控制器係耦接至該第一核心快照儲存器;以及 第一核心,包括第二TSC計數器及第一執行緒偏移儲 存,該第二TSC計數器要依據核心時脈頻率而計數,且該 第一執行緒偏移儲存要儲存用於將被執行於該第一核心中 之第一執行緒的第一執行緒偏移値,其中,該第一執行緒 偏移値係即將以對應於系統懸置發生前所記錄之該第一 TSC計數器的値之同步値來予以直接更新。 2. 如申請專利範圍第1項之設備,其中,該第一核心 進一步包含第二執行緒偏移,該第二執行緒偏移儲存要儲 存用於即將被執行於該第一核心中之第二執行緒的第二執 行緒偏移値,其中,該第二執行緒偏移値係要以該同步値 來予以直接更新。 3. 如申請專利範圍第2項之設備,其中,該第二執行 緒偏移値係要以相同的同步値,且在與該第一執行緒偏移 値不同的時間,來予以更新。 4. 如申請專利範圍第3項之設備,其中,對該第一及 第二執行緒偏移値的該更新係要在無需該第一與第二執行 緒間之同步操作下發生。 5. 如申請專利範圍第1項之設備,其中,該第一核心 -26- 201140281 進一步包括要儲存第一調整値的第一調整儲存器及要儲存 第二調整値的第二調整儲存器,該第一及第二調整儲存器 係耦接至加法器’而該加法器係耦接至該第二TSC計數器 ’其中,該加法器係要施加該第一調整値或該第二調整値 至該第二TSC計數器。 6· 一種方法,包含: 在系統懸置之前,將處理器之非核時間戳記計數( TSC)計數器的TSC値儲存於記憶體中; 在該系統懸置之後,自該記憶體存取所儲存的該T S C 値;以及 以該儲存的TSC値來直接更新與對該處理器之第一核 心所執行的第一執行緒相關聯之執行緒偏移値,而無需實 施該處理器的複數個核心之間的同步化。 7 .如申請專利範圍第6項之方法,進一步包含儲存回 應於使用者請求進入系統的低電力狀態之TSC値,該系統 包含該處理器。 8-如申請專利範圍第6項之方法,進一步包含在離開 該系統懸置之後,重設該非核TSC計數器及複數個核心 TSC計數器,且以該儲存的TSC値來直接更新第二執行緒 偏移値,而該第二執行緒偏移値係與對該第一核心執行之 第二執行緒相關聯,其中,該第二執行緒偏移値之該直接 更新係在與該第一執行緒偏移値之該直接更新不同的時間 〇 9.如申請專利範圍第6項之方法,進一步包含以該儲 -27- 201140281 存的TSC値來直接更新第二執行緒偏移値,該第二執行緒 偏移値係與對該處理器之第二核心執行的第二執行緒相關 聯,而無需施該第一與第二核心之間的同步化。 10·如申請專利範圍第6項之方法,進一步包含當離 開自該系統懸置時,即重設該非核TSC計數器及複數個核 心TSC計數器,且與該重設同時地記錄用於各個核心之核 心偏移値於該處理器的非核之對應的核心偏移儲存器內。 Π.如申請專利範圍第1 0項之方法,進一步包含使該 複數個核心TSC計數器同步化,而無需實施該複數個核心 之間的同步化操作。 1 2 ·如申請專利範圍第1 0項之方法,其中,在該重設 時,該記錄的核心偏移値的每一者即爲零。 1 3 .如申請專利範圍第1 2項之方法,進一步包含回應 對該第一核心的頻率更新而更新該等核心偏移値的第一者 ,且提供該更新的核心偏移値至該第一核心。 14. 如申請專利範圍第13項之方法,進一步包含使用 該更新的核心偏移値來更新與該第一執行緒相關聯的該執 行緒偏移値。 15, —種處理器,包含: 第一時間戳記計數(TSC )計數器,用以依據匯流排 時脈頻率而計數;以及 第一核心,包括第二TSC計數器及第一執行緒偏移儲 存器,該第二TSC計數器依據核心時脈頻率而計數,且該 第一執行緒偏移儲存用以儲存用於要被對該第一核心執行 -28- 201140281 之第一執行緒的執行緒偏移値,其中’該執行緒偏移値係 要以在包含該處理器之系統的懸置前所記錄之該第一 TSC 計數器的値來予以直接更新。 1 6 .如申請專利範圍第1 5項之處理器,進一步包含快 照控制器,該快照控制器係耦接至該第—TSC計數器且至 與該第一核心相關聯的快照儲存器,其中,該快照控制器 係要致使該第一TSC計數器的値在重設該第二TSC計數器 時被儲存於該快照儲存器中。 17. 如申請專利範圍第16項之處理器,其中,該第一 核心包括第一邏輯,該第一邏輯用以計算對應於該第二 TSC計數器的値、該執行緒偏移値、及在該快照儲存器中 所儲存的値之總和的TSC値,以回應讀取TSC指令。 18. 如申請專利範圍第17項之處理器,其中,該第一 核心包括第二邏輯,該第二邏輯用以根據在該快照儲存器 中所儲存的該値、該第二TSC計數器的該値,及使用者界 定的寫入値來更新該執行緒偏移値,以回應寫入TSC指令 〇 1 9.如申請專利範圍第1 5項之處理器,其中,在離開 該系統懸置之後,該處理器係要重設該第一TSC計數器及 該第二TSC計數器,且以該記錄的第一TSC計數器値來直 接更新第二執行緒偏移値,該第二執行緒偏移値係與對該 第一核心所執行的第二執行緒相關聯,其中,該第二執行 緒偏移値之該直接更新係要在與該執行緒偏移値之該直接 更新不同的時間發生。 -29- 201140281 20.—種系統,包含: 處理器,具有要依據匯流排時脈頻率而計數的第一時 間戳記計數(TSC )計數器;第一核心,包括要儲存用於 第一執行緒之第一執行緒偏移値的第一執行緒偏移儲存器 ,及要依據核心時脈頻率而計數的第二TSC計數器;以及 第二核心’包括要儲存用於第二執行緒之第二執行緒偏移 値的第二執行緒偏移儲存器,及要依據該核心時脈頻率而 計數的第三TSC計數器,其中,該第一及第二執行緒偏移 値係即將以在該系統的懸置發生前所記錄之該第一 TSC計 數器的値來予以直接更新,其中,該第一及第二執行緒偏 移値之該直接更新可在不同的時間發生;以及 動態隨機存取記憶體(DRAM ),係耦接至該處理器 〇 2 1 ·如申請專利範圍第2 0項之系統,其中,該處理器 進一步包括快照儲存器及耦接至該快照儲存器的快照控制 器。 2 2.如申請專利範圍第2 1項之系統,其中,該快照控 制器係要致使該第一TSC計數器的値在當重設該第二TSC 計數器時,被儲存於該快照儲存器中。 23 ·如申請專利範圍第2 1項之系統,其中,該第一核 心進一步包括要儲存第一調整値的第一調整儲存器及要儲 存第二調整値的第二調整儲存器,該第一及第二調整儲存 器係耦接至加法器,即該加法器係耦接至該第二TSC計數 器,其中,該加法器係要施加該第一調整値或該第二調整 -30- ⑤ 201140281 値至該第二TSC計數器。 24.如申請專利範圍 第二執行緒偏移値之每一 與第二核心間之同步化的 第20項之系統,其中,該第一及 者的該直接更新係在無需該第一 實施下發生。 -31 -
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644,989 US8700943B2 (en) | 2009-12-22 | 2009-12-22 | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201140281A true TW201140281A (en) | 2011-11-16 |
TWI481993B TWI481993B (zh) | 2015-04-21 |
Family
ID=44152847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099139024A TWI481993B (zh) | 2009-12-22 | 2010-11-12 | 用於多核心及執行緒的時間戳記計數器偏移的控制設備、方法及系統與處理器 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8700943B2 (zh) |
JP (1) | JP5438215B2 (zh) |
KR (1) | KR101404824B1 (zh) |
CN (1) | CN102103525B (zh) |
BR (1) | BR112012018326A2 (zh) |
DE (1) | DE112010004965T5 (zh) |
GB (1) | GB2482457B (zh) |
TW (1) | TWI481993B (zh) |
WO (1) | WO2011087558A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI469056B (zh) * | 2011-12-28 | 2015-01-11 | Fujitsu Ltd | 資訊處理裝置及控制資訊處理裝置之方法 |
US9571215B2 (en) | 2012-07-18 | 2017-02-14 | Intel Corporation | Measuring time offsets between devices with independent silicon clocks |
Families Citing this family (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799687B2 (en) | 2005-12-30 | 2014-08-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8775153B2 (en) * | 2009-12-23 | 2014-07-08 | Intel Corporation | Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment |
FR2960314B1 (fr) * | 2010-05-19 | 2012-07-27 | Bull Sas | Procede d'optimisation de gestion de veille d'un microprocesseur permettant la mise en oeuvre de plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US9069555B2 (en) | 2011-03-21 | 2015-06-30 | Intel Corporation | Managing power consumption in a multi-core processor |
US8793515B2 (en) | 2011-06-27 | 2014-07-29 | Intel Corporation | Increasing power efficiency of turbo mode operation in a processor |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US8688883B2 (en) | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
US8914650B2 (en) | 2011-09-28 | 2014-12-16 | Intel Corporation | Dynamically adjusting power of non-core processor circuitry including buffer circuitry |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
US8954770B2 (en) | 2011-09-28 | 2015-02-10 | Intel Corporation | Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
US8972763B2 (en) | 2011-12-05 | 2015-03-03 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state |
US9239611B2 (en) | 2011-12-05 | 2016-01-19 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme |
US9052901B2 (en) | 2011-12-14 | 2015-06-09 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current |
US9372524B2 (en) | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9098261B2 (en) | 2011-12-15 | 2015-08-04 | Intel Corporation | User level control of power management policies |
WO2013137859A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Providing energy efficient turbo operation of a processor |
WO2013137860A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically computing an electrical design point (edp) for a multicore processor |
US9323316B2 (en) | 2012-03-13 | 2016-04-26 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
CN104204825B (zh) | 2012-03-30 | 2017-06-27 | 英特尔公司 | 动态测量处理器中的功耗 |
US10185566B2 (en) | 2012-04-27 | 2019-01-22 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
US9063727B2 (en) | 2012-08-31 | 2015-06-23 | Intel Corporation | Performing cross-domain thermal control in a processor |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US9342122B2 (en) | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9582276B2 (en) | 2012-09-27 | 2017-02-28 | Apple Inc. | Processor and method for implementing barrier operation using speculative and architectural color values |
US9423858B2 (en) | 2012-09-27 | 2016-08-23 | Intel Corporation | Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain |
US10554505B2 (en) | 2012-09-28 | 2020-02-04 | Intel Corporation | Managing data center resources to achieve a quality of service |
US9483325B2 (en) * | 2012-09-28 | 2016-11-01 | Hewlett Packard Enterprise Development Lp | Synchronizing timestamp counters |
DE102013110899B4 (de) * | 2012-10-04 | 2019-07-04 | Cognex Corporation | Symbologie-Lesegerät mit Multicore-Prozessor und Systeme und Verfahren zum Betrieb desselben |
US9575543B2 (en) | 2012-11-27 | 2017-02-21 | Intel Corporation | Providing an inter-arrival access timer in a processor |
US9183144B2 (en) | 2012-12-14 | 2015-11-10 | Intel Corporation | Power gating a portion of a cache memory |
US9292468B2 (en) | 2012-12-17 | 2016-03-22 | Intel Corporation | Performing frequency coordination in a multiprocessor system based on response timing optimization |
US9405351B2 (en) | 2012-12-17 | 2016-08-02 | Intel Corporation | Performing frequency coordination in a multiprocessor system |
US9235252B2 (en) | 2012-12-21 | 2016-01-12 | Intel Corporation | Dynamic balancing of power across a plurality of processor domains according to power policy control bias |
US9075556B2 (en) | 2012-12-21 | 2015-07-07 | Intel Corporation | Controlling configurable peak performance limits of a processor |
US9164565B2 (en) | 2012-12-28 | 2015-10-20 | Intel Corporation | Apparatus and method to manage energy usage of a processor |
US9081577B2 (en) | 2012-12-28 | 2015-07-14 | Intel Corporation | Independent control of processor core retention states |
US9335803B2 (en) | 2013-02-15 | 2016-05-10 | Intel Corporation | Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores |
US9367114B2 (en) | 2013-03-11 | 2016-06-14 | Intel Corporation | Controlling operating voltage of a processor |
US9405551B2 (en) | 2013-03-12 | 2016-08-02 | Intel Corporation | Creating an isolated execution environment in a co-designed processor |
US9395784B2 (en) | 2013-04-25 | 2016-07-19 | Intel Corporation | Independently controlling frequency of plurality of power domains in a processor system |
US9377841B2 (en) | 2013-05-08 | 2016-06-28 | Intel Corporation | Adaptively limiting a maximum operating frequency in a multicore processor |
US9823719B2 (en) | 2013-05-31 | 2017-11-21 | Intel Corporation | Controlling power delivery to a processor via a bypass |
US9348401B2 (en) | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
US9471088B2 (en) | 2013-06-25 | 2016-10-18 | Intel Corporation | Restricting clock signal delivery in a processor |
US9348407B2 (en) | 2013-06-27 | 2016-05-24 | Intel Corporation | Method and apparatus for atomic frequency and voltage changes |
US9377836B2 (en) | 2013-07-26 | 2016-06-28 | Intel Corporation | Restricting clock signal delivery based on activity in a processor |
US9495001B2 (en) | 2013-08-21 | 2016-11-15 | Intel Corporation | Forcing core low power states in a processor |
US10386900B2 (en) | 2013-09-24 | 2019-08-20 | Intel Corporation | Thread aware power management |
US9594560B2 (en) | 2013-09-27 | 2017-03-14 | Intel Corporation | Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
US9405345B2 (en) | 2013-09-27 | 2016-08-02 | Intel Corporation | Constraining processor operation based on power envelope information |
US9697005B2 (en) | 2013-12-04 | 2017-07-04 | Analog Devices, Inc. | Thread offset counter |
US9494998B2 (en) | 2013-12-17 | 2016-11-15 | Intel Corporation | Rescheduling workloads to enforce and maintain a duty cycle |
US9459689B2 (en) | 2013-12-23 | 2016-10-04 | Intel Corporation | Dyanamically adapting a voltage of a clock generation circuit |
US10142088B2 (en) | 2014-01-31 | 2018-11-27 | University Of North Dakota | Network clock skew estimation and calibration |
US9323525B2 (en) | 2014-02-26 | 2016-04-26 | Intel Corporation | Monitoring vector lane duty cycle for dynamic optimization |
US9665153B2 (en) | 2014-03-21 | 2017-05-30 | Intel Corporation | Selecting a low power state based on cache flush latency determination |
US10108454B2 (en) | 2014-03-21 | 2018-10-23 | Intel Corporation | Managing dynamic capacitance using code scheduling |
US9395788B2 (en) | 2014-03-28 | 2016-07-19 | Intel Corporation | Power state transition analysis |
US10417149B2 (en) | 2014-06-06 | 2019-09-17 | Intel Corporation | Self-aligning a processor duty cycle with interrupts |
US9760158B2 (en) | 2014-06-06 | 2017-09-12 | Intel Corporation | Forcing a processor into a low power state |
US9513689B2 (en) | 2014-06-30 | 2016-12-06 | Intel Corporation | Controlling processor performance scaling based on context |
US9606602B2 (en) | 2014-06-30 | 2017-03-28 | Intel Corporation | Method and apparatus to prevent voltage droop in a computer |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US9760136B2 (en) | 2014-08-15 | 2017-09-12 | Intel Corporation | Controlling temperature of a system memory |
US9671853B2 (en) | 2014-09-12 | 2017-06-06 | Intel Corporation | Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency |
US9541949B2 (en) * | 2014-09-22 | 2017-01-10 | Intel Corporation | Synchronization of domain counters |
US10339023B2 (en) | 2014-09-25 | 2019-07-02 | Intel Corporation | Cache-aware adaptive thread scheduling and migration |
US9977477B2 (en) | 2014-09-26 | 2018-05-22 | Intel Corporation | Adapting operating parameters of an input/output (IO) interface circuit of a processor |
US9684360B2 (en) | 2014-10-30 | 2017-06-20 | Intel Corporation | Dynamically controlling power management of an on-die memory of a processor |
US9703358B2 (en) | 2014-11-24 | 2017-07-11 | Intel Corporation | Controlling turbo mode frequency operation in a processor |
US10048744B2 (en) | 2014-11-26 | 2018-08-14 | Intel Corporation | Apparatus and method for thermal management in a multi-chip package |
US20160147280A1 (en) | 2014-11-26 | 2016-05-26 | Tessil Thomas | Controlling average power limits of a processor |
US9710043B2 (en) | 2014-11-26 | 2017-07-18 | Intel Corporation | Controlling a guaranteed frequency of a processor |
US10877530B2 (en) | 2014-12-23 | 2020-12-29 | Intel Corporation | Apparatus and method to provide a thermal parameter report for a multi-chip package |
US20160224098A1 (en) | 2015-01-30 | 2016-08-04 | Alexander Gendler | Communicating via a mailbox interface of a processor |
US9639134B2 (en) | 2015-02-05 | 2017-05-02 | Intel Corporation | Method and apparatus to provide telemetry data to a power controller of a processor |
US9910481B2 (en) | 2015-02-13 | 2018-03-06 | Intel Corporation | Performing power management in a multicore processor |
US10234930B2 (en) | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
US9874922B2 (en) | 2015-02-17 | 2018-01-23 | Intel Corporation | Performing dynamic power control of platform devices |
US9842082B2 (en) | 2015-02-27 | 2017-12-12 | Intel Corporation | Dynamically updating logical identifiers of cores of a processor |
US9710054B2 (en) | 2015-02-28 | 2017-07-18 | Intel Corporation | Programmable power management agent |
US9760160B2 (en) | 2015-05-27 | 2017-09-12 | Intel Corporation | Controlling performance states of processing engines of a processor |
US9710041B2 (en) | 2015-07-29 | 2017-07-18 | Intel Corporation | Masking a power state of a core of a processor |
US10001822B2 (en) | 2015-09-22 | 2018-06-19 | Intel Corporation | Integrating a power arbiter in a processor |
US9983644B2 (en) | 2015-11-10 | 2018-05-29 | Intel Corporation | Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance |
US9910470B2 (en) * | 2015-12-16 | 2018-03-06 | Intel Corporation | Controlling telemetry data communication in a processor |
US9898351B2 (en) * | 2015-12-24 | 2018-02-20 | Intel Corporation | Method and apparatus for user-level thread synchronization with a monitor and MWAIT architecture |
US10146286B2 (en) | 2016-01-14 | 2018-12-04 | Intel Corporation | Dynamically updating a power management policy of a processor |
US10289188B2 (en) | 2016-06-21 | 2019-05-14 | Intel Corporation | Processor having concurrent core and fabric exit from a low power state |
US10324519B2 (en) | 2016-06-23 | 2019-06-18 | Intel Corporation | Controlling forced idle state operation in a processor |
US10281975B2 (en) | 2016-06-23 | 2019-05-07 | Intel Corporation | Processor having accelerated user responsiveness in constrained environment |
US10379596B2 (en) | 2016-08-03 | 2019-08-13 | Intel Corporation | Providing an interface for demotion control information in a processor |
US10234920B2 (en) | 2016-08-31 | 2019-03-19 | Intel Corporation | Controlling current consumption of a processor based at least in part on platform capacitance |
US10423206B2 (en) | 2016-08-31 | 2019-09-24 | Intel Corporation | Processor to pre-empt voltage ramps for exit latency reductions |
US10379904B2 (en) | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
FR3055984B1 (fr) * | 2016-09-15 | 2018-10-05 | Alstom Transp Tech | Procede de synchronisation d'un systeme par determination d'un intervalle de temps local commun |
US10168758B2 (en) | 2016-09-29 | 2019-01-01 | Intel Corporation | Techniques to enable communication between a processor and voltage regulator |
US9720441B1 (en) * | 2016-09-30 | 2017-08-01 | International Business Machines Corporation | Generating time-of-day values without causing execution stalls |
JP6504190B2 (ja) * | 2017-03-14 | 2019-04-24 | オムロン株式会社 | 制御装置および情報処理方法 |
US11550820B2 (en) * | 2017-04-28 | 2023-01-10 | Oracle International Corporation | System and method for partition-scoped snapshot creation in a distributed data computing environment |
TWI632461B (zh) * | 2017-05-25 | 2018-08-11 | 緯穎科技服務股份有限公司 | 獲取時間戳記的方法以及使用該方法的電腦裝置 |
US10429919B2 (en) | 2017-06-28 | 2019-10-01 | Intel Corporation | System, apparatus and method for loose lock-step redundancy power management |
US10592383B2 (en) * | 2017-06-29 | 2020-03-17 | Intel Corporation | Technologies for monitoring health of a process on a compute device |
US10122484B1 (en) * | 2017-06-30 | 2018-11-06 | Intel Corporation | Technologies for internal time syncrhonization |
WO2019040054A1 (en) | 2017-08-23 | 2019-02-28 | Intel Corporation | SYSTEM, APPARATUS, AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A USER-PROGRAMMED (FPGA) PREDIFFUSED NETWORK |
CN107590016B (zh) * | 2017-09-14 | 2023-08-15 | 成都西加云杉科技有限公司 | 掉电重启识别方法及装置 |
US10620266B2 (en) | 2017-11-29 | 2020-04-14 | Intel Corporation | System, apparatus and method for in-field self testing in a diagnostic sleep state |
US10620682B2 (en) | 2017-12-21 | 2020-04-14 | Intel Corporation | System, apparatus and method for processor-external override of hardware performance state control of a processor |
US10620969B2 (en) | 2018-03-27 | 2020-04-14 | Intel Corporation | System, apparatus and method for providing hardware feedback information in a processor |
US10739844B2 (en) | 2018-05-02 | 2020-08-11 | Intel Corporation | System, apparatus and method for optimized throttling of a processor |
US10955899B2 (en) | 2018-06-20 | 2021-03-23 | Intel Corporation | System, apparatus and method for responsive autonomous hardware performance state control of a processor |
US10976801B2 (en) | 2018-09-20 | 2021-04-13 | Intel Corporation | System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor |
US10860083B2 (en) | 2018-09-26 | 2020-12-08 | Intel Corporation | System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail |
CN111158867B (zh) * | 2018-11-07 | 2023-05-16 | 阿里巴巴集团控股有限公司 | 时间同步处理方法、线程调度方法、装置及电子设备 |
US11656676B2 (en) | 2018-12-12 | 2023-05-23 | Intel Corporation | System, apparatus and method for dynamic thermal distribution of a system on chip |
US11256657B2 (en) | 2019-03-26 | 2022-02-22 | Intel Corporation | System, apparatus and method for adaptive interconnect routing |
US11442529B2 (en) | 2019-05-15 | 2022-09-13 | Intel Corporation | System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor |
US11698812B2 (en) | 2019-08-29 | 2023-07-11 | Intel Corporation | System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor |
US11366506B2 (en) | 2019-11-22 | 2022-06-21 | Intel Corporation | System, apparatus and method for globally aware reactive local power control in a processor |
US11579650B2 (en) * | 2019-12-19 | 2023-02-14 | Advanced Micro Devices, Inc. | Method and apparatus for synchronizing the time stamp counter |
US11132201B2 (en) | 2019-12-23 | 2021-09-28 | Intel Corporation | System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit |
US11526415B2 (en) * | 2020-04-22 | 2022-12-13 | StreamSets, Inc. | Progressive error handling |
US11880231B2 (en) | 2020-12-14 | 2024-01-23 | Microsoft Technology Licensing, Llc | Accurate timestamp or derived counter value generation on a complex CPU |
KR102497256B1 (ko) * | 2020-12-15 | 2023-02-06 | 현대오토에버 주식회사 | 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법 |
EP4092532A1 (en) * | 2021-05-17 | 2022-11-23 | Bayerische Motoren Werke Aktiengesellschaft | Generating a timestamp at a control unit |
US11921564B2 (en) | 2022-02-28 | 2024-03-05 | Intel Corporation | Saving and restoring configuration and status information with reduced latency |
CN115309234B (zh) * | 2022-10-10 | 2023-01-31 | 北京奥星贝斯科技有限公司 | 确定tsc频率的方法及装置、计算机可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6823516B1 (en) | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
US6941482B2 (en) | 2002-09-10 | 2005-09-06 | Finisar Corporation | Systems and methods for synchronizing time stamps |
US7043654B2 (en) | 2002-12-31 | 2006-05-09 | Intel Corporation | Selecting a first clock signal based on a comparison between a selected first clock signal and a second clock signal |
US8146078B2 (en) * | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8074059B2 (en) * | 2005-09-02 | 2011-12-06 | Binl ATE, LLC | System and method for performing deterministic processing |
US20070260907A1 (en) | 2006-05-02 | 2007-11-08 | Dixon Martin G | Technique to modify a timer |
US8139069B1 (en) * | 2006-11-03 | 2012-03-20 | Nvidia Corporation | Method and system for improving data coherency in a parallel rendering system |
US8230203B2 (en) * | 2007-03-30 | 2012-07-24 | Intel Corporation | Detecting spin loops in a virtual machine environment |
CN100476694C (zh) | 2007-09-28 | 2009-04-08 | 中国科学院计算技术研究所 | 一种多核处理器及其变频装置和核间通信方法 |
US7941684B2 (en) | 2008-02-28 | 2011-05-10 | Advanced Micro Devices, Inc. | Synchronization of processor time stamp counters to master counter |
US8020020B2 (en) | 2008-02-28 | 2011-09-13 | Globalfoundries Inc. | Fast, automatically scaled processor time stamp counter |
US7921317B2 (en) * | 2008-09-02 | 2011-04-05 | Unisys Corporation | Method and apparatus for synchronizing central processing units in a multiprocessor apparatus |
US8122278B2 (en) * | 2009-04-28 | 2012-02-21 | Oracle America, Inc. | Clock skew measurement for multiprocessor systems |
-
2009
- 2009-12-22 US US12/644,989 patent/US8700943B2/en active Active
-
2010
- 2010-11-10 JP JP2012517934A patent/JP5438215B2/ja not_active Expired - Fee Related
- 2010-11-10 GB GB1119725.8A patent/GB2482457B/en not_active Expired - Fee Related
- 2010-11-10 KR KR1020127019271A patent/KR101404824B1/ko active IP Right Grant
- 2010-11-10 DE DE112010004965T patent/DE112010004965T5/de not_active Withdrawn
- 2010-11-10 WO PCT/US2010/056165 patent/WO2011087558A2/en active Application Filing
- 2010-11-10 BR BR112012018326A patent/BR112012018326A2/pt not_active Application Discontinuation
- 2010-11-12 TW TW099139024A patent/TWI481993B/zh not_active IP Right Cessation
- 2010-12-21 CN CN2010106200323A patent/CN102103525B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI469056B (zh) * | 2011-12-28 | 2015-01-11 | Fujitsu Ltd | 資訊處理裝置及控制資訊處理裝置之方法 |
US9571215B2 (en) | 2012-07-18 | 2017-02-14 | Intel Corporation | Measuring time offsets between devices with independent silicon clocks |
TWI608326B (zh) * | 2012-07-18 | 2017-12-11 | 英特爾股份有限公司 | 用以測量介於具有獨立矽時脈的裝置之間的時間偏置之設備、方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
CN102103525B (zh) | 2013-09-25 |
GB201119725D0 (en) | 2011-12-28 |
KR101404824B1 (ko) | 2014-06-09 |
GB2482457B (en) | 2017-06-21 |
DE112010004965T5 (de) | 2012-11-29 |
BR112012018326A2 (pt) | 2016-04-19 |
WO2011087558A3 (en) | 2011-09-22 |
KR20120112626A (ko) | 2012-10-11 |
US8700943B2 (en) | 2014-04-15 |
GB2482457A (en) | 2012-02-01 |
JP5438215B2 (ja) | 2014-03-12 |
TWI481993B (zh) | 2015-04-21 |
US20110154090A1 (en) | 2011-06-23 |
JP2012531001A (ja) | 2012-12-06 |
CN102103525A (zh) | 2011-06-22 |
WO2011087558A2 (en) | 2011-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI481993B (zh) | 用於多核心及執行緒的時間戳記計數器偏移的控制設備、方法及系統與處理器 | |
Hammarlund et al. | Haswell: The fourth-generation intel core processor | |
US9830156B2 (en) | Temporal SIMT execution optimization through elimination of redundant operations | |
TWI613588B (zh) | 在核心間同步運作的方法、微處理器及電腦程式產品 | |
Gwennap | Sandy Bridge spans generations | |
TW201508635A (zh) | 多核心微處理器動態重新配置 | |
TW201802668A (zh) | 可中斷及可重啟矩陣乘法指令、處理器、方法和系統 | |
JP6450705B2 (ja) | 永続コミットプロセッサ、方法、システムおよび命令 | |
BR102014006021A2 (pt) | processadores, métodos e sistemas para relaxamento de sincronização de acesso á memória compartilhada | |
Long et al. | Minimal multi-threading: Finding and removing redundant instructions in multi-threaded processors | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
Celio | A highly productive implementation of an out-of-order processor generator | |
Loi et al. | Exploring multi-banked shared-L1 program cache on ultra-low power, tightly coupled processor clusters | |
US20140189305A1 (en) | Redundant execution for reliability in a super fma alu | |
Giorgi et al. | Implementing fine/medium grained tlp support in a many-core architecture | |
JP2022526224A (ja) | 適応的な相互接続ルーティングのためのシステム、装置及び方法 | |
US11880231B2 (en) | Accurate timestamp or derived counter value generation on a complex CPU | |
Wickramasinghe et al. | Effective hardware-level thread synchronization for high performance and power efficiency in application specific multi-threaded embedded processors | |
CN108228484A (zh) | 针对处理器中的高速缓存利用的无效读取 | |
McKeown | Characterizing and Enhancing Energy Efficiency in Manycore Processors for Data Center Applications | |
Yan et al. | Design of Processors | |
Li et al. | A Multi-Core Verification Method of Vector Instructions Based on Spike | |
Zou et al. | Porting and FPGA Implementation of LXDE Desktop Environment Based on RISC-V | |
Brisk | Architecture and design automation for application-specific processors | |
Jeong et al. | The design and implementation of CalmlRISC32 floating point unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |