[發明專利]用于將處理器置于逐漸緩慢的操作模式的系統和方法有效
| 申請號: | 200710096782.3 | 申請日: | 2007-04-12 |
| 公開(公告)號: | CN101055531A | 公開(公告)日: | 2007-10-17 |
| 發明(設計)人: | 羅納德·霍爾;克里斯托弗·M·阿伯納西;庫爾特·A·費斯特;小阿爾伯特·J·范諾斯特蘭 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京市柳沈律師事務所 | 代理人: | 黃小臨;王志森 |
| 地址: | 美國紐*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 處理器 置于 逐漸 緩慢 操作 模式 系統 方法 | ||
技術領域
本發明總體涉及一種改進的數據處理系統和方法。具體地,本發明涉及一種用于將處理器置于逐漸緩慢的操作模式(gradual?slow?mode?of?operation)的系統和方法。處理器的緩慢操作模式被用于擺脫處理器核內的活鎖狀態(livelock?condition)。
背景技術
在現代處理器設計中,尤其在同步多線程(SMT)處理器設計中,活鎖狀態是在設計階段最難以發現和解決的問題之一,常常是直到后來在該設計實施在硬件中時才被發現。活鎖狀態可被描述為處理器重復地執行相同指令集而不做任何實際前進。進入活鎖狀態的根本原因之一是由于在一個處理器單元和另一個之間的“諧和(harmonic)”固定周期交互(interaction)。活鎖狀態的其它原因是指令的重復刷新和重新讀取、來自發行隊列的重復的重新發行以及由于在不能夠騰出的資源滿或者忙狀態時發生重復刷新(flush)狀態而從來沒有完成指令。
“諧和”固定周期交互是下述事實的產物:在處理器流水線中,固定數目的周期被用于處理和完成指令的執行。來自個多線程的指令將以諧和方式通過該處理器流水線而被處理,使得每個線程中的每個指令以基本上相同的時間完成處理。如果在執行的線程之間具有從屬性(dependency),使得一個線程需要另一個執行的線程中的指令的結果,則活鎖狀態可能發生,因為兩個指令同時通過該處理器流水線被處理以及存在資源和從屬性的沖突。由于另一個線程中的指令的結果尚未獲得,因此從屬指令將不能夠完成。如果另一個線程中的指令遇到資源沖突,則來自兩個線程的指令將被重復地刷新并重新發行到該流水線。
圖6A和6B示出了導致活鎖狀態的代碼的例子和雙指令發行處理器設計。圖6A表示SMT和雙指令發行處理器流水線設計,其中,每隔一個周期就從每個線程發行兩個指令。圖6B表示示例性的用戶代碼,當其在圖6A所示的處理器流水線上被執行時,導致兩個線程試圖訪問處理器的專用寄存器(SPR)。線程0用不相等分支(Branch-Not-Equal)(bneq)指令編碼以等待線程1代碼完成其SPR訪問。線程0代碼將堅持分支返回(branching)并堅持檢查線程1的“存儲”指令是否完成。
圖6A所示的處理器流水線設計中的SPR隊列每次僅僅能夠支持兩個SPR指令。因此,線程1中的第三個SPR指令以及在第三個SPR指令后面的所有指令將一直被刷新和重新發行。如果線程0和線程1兩者的指令以下面表1中所示的順序進行編譯,則在“mt?sprC?R1”前面的所有線程1的指令將完成。線程1的“mt?sprC?R1”將最初被刷新,因為該SPR隊列忙于“mt?sprAR3”和“mt?sprB?R2”。只要線程1的“存儲R4?0x100”不被執行,在“bneqCheckThread1SPR”后面的所有的線程0的指令都將被發行和刷新。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710096782.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:包含乙酰乙酰基官能聚合物的水性涂料組合物、涂層及方法
- 下一篇:車輛用燈具





