[發(fā)明專利]用于檢測競爭條件的技術(shù)在審
| 申請?zhí)枺?/td> | 201380080889.2 | 申請日: | 2013-12-12 |
| 公開(公告)號: | CN105706063A | 公開(公告)日: | 2016-06-22 |
| 發(fā)明(設(shè)計)人: | 胡世亮;G.A.波卡姆;C.L.佩雷拉;J.E.戈特施利奇 | 申請(專利權(quán))人: | 英特爾公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F11/28 |
| 代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 徐予紅;張懿 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 檢測 競爭 條件 技術(shù) | ||
技術(shù)領(lǐng)域
本文描述的實(shí)施例一般涉及檢測由應(yīng)用例程的不同線程對數(shù)據(jù)的訪問中的可能的競爭條件。
背景技術(shù)
對于多線程執(zhí)行寫各種各樣的應(yīng)用例程已經(jīng)變得普遍了。這由將能夠支持多線程執(zhí)行的處理器組件合并到越來越多種類的計算裝置中引起。然而,雖然多線程執(zhí)行提供了眾多優(yōu)點(diǎn),但寫應(yīng)用例程各部分以協(xié)調(diào)的方式同時在不同線程上執(zhí)行的工作提出了挑戰(zhàn)。導(dǎo)致應(yīng)用例程的不同部分對相同數(shù)據(jù)的不協(xié)調(diào)訪問(例如讀和寫操作或者多對寫操作)的錯誤屢見不鮮,并且能招致可能難以追蹤在應(yīng)用例程中寫時所犯的錯誤的不期望行為。
特別關(guān)注的是讀數(shù)據(jù)的應(yīng)用例程的一部分的實(shí)例,其讀數(shù)據(jù)在時間上足夠接近于應(yīng)用例程的另一部分寫那個相同數(shù)據(jù)時,未可靠預(yù)測讀和寫操作中的哪個操作將在另一操作之前發(fā)生。從而,讀操作可檢索數(shù)據(jù),或者在它被寫操作修改之前或者之后。還特別關(guān)注的是如下實(shí)例:其中相同數(shù)據(jù)在一對不協(xié)調(diào)的寫操作中被寫兩次,使得那個數(shù)據(jù)的狀態(tài)在那兩個寫操作之后是不可預(yù)測的。換言之,在對相同數(shù)據(jù)的兩次訪問之間缺乏協(xié)調(diào)導(dǎo)致不夠協(xié)調(diào)的結(jié)果。
已經(jīng)設(shè)計了各種技術(shù)來一步一步地追蹤應(yīng)用例程的每個此類部分在它們的單獨(dú)線程上的執(zhí)行,包含沿著那些不同部分執(zhí)行調(diào)試?yán)桃员O(jiān)視插入在那些部分指令之間的各種斷點(diǎn)和/或監(jiān)視它們的數(shù)據(jù)訪問。然而,此類調(diào)試?yán)掏ǔK鼈冏约合南喈?dāng)大的處理和/或存儲資源。實(shí)際上,沿著應(yīng)用例程執(zhí)行此類調(diào)試?yán)痰氖聦?shí)可消耗足夠的資源以更改應(yīng)用例程的行為,使得設(shè)法追蹤以便簡單調(diào)試的不協(xié)調(diào)訪問絕不發(fā)生。另外,在由計算裝置提供的處理和/或存儲資源嚴(yán)密匹配應(yīng)用例程所需要的資源的情形下,可能沒有充分的資源可用于容納應(yīng)用例程和此類調(diào)試?yán)痰膱?zhí)行。
附圖說明
圖1圖示了競爭條件調(diào)試系統(tǒng)的實(shí)施例。
圖2圖示了競爭條件調(diào)試系統(tǒng)的替換實(shí)施例。
圖3-4各圖示了根據(jù)實(shí)施例的高速緩存事件的檢測。
圖5-6各圖示了競爭條件調(diào)試系統(tǒng)的實(shí)施例的一部分。
圖7-9各圖示了根據(jù)實(shí)施例的邏輯流程。
圖10圖示了根據(jù)實(shí)施例的處理架構(gòu)。
具體實(shí)施方式
各種實(shí)施例一般針對檢測由應(yīng)用例程的不同部分或相關(guān)應(yīng)用例程對數(shù)據(jù)的不協(xié)調(diào)訪問引起的競爭條件,這通過檢測傾向于與此類不協(xié)調(diào)訪問關(guān)聯(lián)的一個或多個規(guī)定高速緩存事件的發(fā)生來實(shí)現(xiàn)。處理器組件的監(jiān)視單元配置成捕獲與此類高速緩存事件關(guān)聯(lián)的處理器組件的狀態(tài)的指示。監(jiān)視單元將那些捕獲的指示提供給檢測驅(qū)動器以便對調(diào)試?yán)踢^濾和/或中繼,以實(shí)現(xiàn)調(diào)試應(yīng)用例程或相關(guān)應(yīng)用例程。
如本領(lǐng)域技術(shù)人員所熟知的,采用高速緩存一致性機(jī)制來確保高速緩存的內(nèi)容不會無法與其它存儲裝置(包含其它高速緩存)的內(nèi)容同步,以導(dǎo)致處理器組件讀和使用不正確數(shù)據(jù)的方式。此類高速緩存一致性機(jī)制經(jīng)常需要將數(shù)據(jù)存儲在高速緩存線中、從高速緩存線檢索數(shù)據(jù)、指令高速緩存將高速緩存線中的數(shù)據(jù)標(biāo)記為無效和/或使高速緩存線可用的操作,以及還有改變與存儲在高速緩存線中的數(shù)據(jù)關(guān)聯(lián)的狀態(tài)的其它操作。在一些實(shí)施例中,所采用的高速緩存一致性機(jī)制可基于廣泛已知和廣泛使用的修改-排他-共享-無效(MESI)算法。
不管所使用的特定高速緩存一致性機(jī)制如何,影響與存儲在高速緩存線中的數(shù)據(jù)關(guān)聯(lián)的狀態(tài)的操作中的一個或多個操作可以是能夠由合并到處理器組件中的監(jiān)視單元檢測的高速緩存事件。此類監(jiān)視單元是可編程的,以監(jiān)視一個或多個規(guī)定的高速緩存事件,和/或在檢測到一個或多個規(guī)定的高速緩存事件時捕獲處理器組件的核的狀態(tài)的一個或多個方面的指示。捕獲的指示可包含發(fā)生的高速緩存事件類型的指示符、觸發(fā)高速緩存事件的數(shù)據(jù)訪問(例如讀操作和寫操作)類型的指示符、引起數(shù)據(jù)訪問的執(zhí)行的過程和/或線程的標(biāo)識符、指令指針的地址指示、處理器組件的一個或多個寄存器的內(nèi)容等。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于英特爾公司,未經(jīng)英特爾公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201380080889.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 限制條件解決方法、限制條件解決裝置、以及限制條件解決系統(tǒng)
- 制造條件設(shè)定系統(tǒng)及制造條件設(shè)定方法
- 成形條件確定方法及成形條件確定系統(tǒng)
- 成形條件設(shè)定裝置、成形條件設(shè)定方法及成形條件設(shè)定畫面
- 攝影條件設(shè)定設(shè)備、攝影條件設(shè)定方法和攝影條件設(shè)定程序
- 生理條件監(jiān)視系統(tǒng)、生理條件傳感器和生理條件儀表
- 成形條件設(shè)定裝置、成形條件設(shè)定方法及成形條件設(shè)定畫面
- 條件訪問設(shè)備
- 用于條件切換的裝置、方法、介質(zhì)和系統(tǒng)
- 基于條件分布的條件生成對抗網(wǎng)絡(luò)





