用簽名實現的多核程序內存競爭記錄及重演方法,涉及用簽名實現的多核程序內存競爭記錄及重演方法。它為了解決現有基于硬件的多核程序確定性重演方法中只注重內存競爭記錄的性能而忽略內存競爭重演的性能,導致重演時效率低下的問題。簽名實現的多核程序內存競爭記錄及重演方法為:步驟一、在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄;步驟二、當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能。本發明專利技術應用在多核程序調試、入侵檢測、容錯等領域。
【技術實現步驟摘要】
本專利技術涉及多核程序內存競爭記錄的方法,具體涉及。
技術介紹
內存競爭的記錄和重演是實現多核程序確定性重演的關鍵。當前多核程序確定性重演方法中只注重內存競爭記錄的性能而忽略內存競爭重演的性能,導致重演時效率低下的問題。
技術實現思路
本專利技術解決了現有基于硬件的多核程序確定性重演方法中只注重內存競爭記錄的性能而忽略內存競爭重演的性能,導致重演時效率低下的問題。本專利技術所述的包括如下步驟步驟一、在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄;步驟二、當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能。在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄操作步驟如下A、請求方發出指令,若該指令是讀內存操作指令,則IC的值加1,所述的IC的值為指令計數值,將所讀的內存塊的地址添加到所有的讀簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B ;若該指令是寫內存操作指令,則將要寫的內存塊的地址添加到所有的寫簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B ;B、一致性機構收到共享內存請求消息后,將共享內存請求消息轉發給其他處理器核,即應答方,執行步驟C ;C、應答方根據接收到的共享內存請求消息的地址到讀簽名寄存器或寫簽名寄存器中查找,判斷是否有內存競爭發生,若發生內存競爭,則將一個記錄標志位和當前指令計數值連同內存塊的內容一起發送給請求方,清空對應請求方的寫簽名寄存器和讀簽名寄存器;并將偽依賴關系記錄到運行在該處理器核上的線程的內存競爭日志中,執行步驟D ;若沒有發生內存競爭,則只將內存塊的內容發送給請求方,執行步驟A ;D、請求方接收到應答消息后,檢測內存競爭記錄模塊記錄的標志位是否為真,若為真,則記錄內存競爭依賴關系到內存競爭日志;否則不記錄。當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能,每個處理器核操作步驟如下E、處理器核開始運行時,從運行在該處理器上的線程的內存競爭日志中讀取一個記錄,并存儲到該內存競爭記錄過程中使用的寄存器中,執行步驟F ;F、處理器核檢測該記錄依賴關系,若該記錄為偽依賴關系,則當執行完它所對應的指令后,創建喚醒消息、并通過一致性協議發送給對應的處理器,執行步驟G ;若該記錄為內存競爭依賴關系,則暫不執行該指令,當接收到喚醒消息時,執行步驟H ;所述的喚醒消息為內存競爭的先發生方所在的處理器核創建并發送的,G、處理器發送完喚醒消息后,該處理器核從內存競爭日志中讀取下一條記錄,再執行步驟F ;H、處理器接收到合適的喚醒消息后,處理器核從內存競爭日志中讀取下一條記錄,執行步驟F。本專利技術為基于目錄的高速緩存(Cache) —致性協議的多核處理器系統,用較少的硬件資源實現了多核程序運行時內存競爭的記錄以及重演時內存競爭的重放。該內存競爭記錄及重演方法為每個線程記錄一個內存競爭日志,在記錄階段,采用簽名實現內存競爭的檢測,硬件開銷??;在重演階段,能夠主動創建喚醒消息,提高了重演的效率。本專利技術既實現了內存競爭的記錄,又能實現高效的內存競爭重演的目的。本專利技術應用在多核程序調試、入侵檢測、容錯等領域。附圖說明圖1為本專利技術所述的流程圖;圖2為每個處理器核開始內存競爭記錄操作的流程圖;圖3為進入多核程序重演階段,開啟內存競爭重演功能每個處理器核操作的流程圖;圖4為內存競爭日志樣式圖;圖5為內存競爭記錄硬件實現結構圖。具體實施例方式具體實施方式一、結合圖1具體說明本實施方式,本實施方式所述的包括如下步驟步驟一、在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄;步驟二、當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能。具體實施方式二、結合圖2具體說明本實施方式,本實施方式與具體實施方式一所述的的區別在于步驟一所述的在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄操作步驟如下A、請求方發出指令,若該指令是讀內存操作指令,則IC的值加1,所述的IC的值為指令計數值,將所讀的內存塊的地址添加到所有的讀簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B;多核處理器都有一致性協議控制機構,用于保證所有處理器核私有LI數據Cache中保留的共享數據的副本一致,若該指令是寫內存操作指令,則將要寫的內存塊的地址添加到所有的寫簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B ;B、一致性機構收到共享內存請求消息后,將共享內存請求消息轉發給其他處理器核,即應答方,執行步驟C ;C、應答方根據接收到的共享內存請求消息的地址到讀簽名寄存器或寫簽名寄存器中查找,判斷是否有內存競爭發生,若發生內存競爭,則將一個記錄標志位和當前指令計數值連同內存塊的內容一起發送給請求方,清空對應請求方的寫簽名寄存器和讀簽名寄存器;并將偽依賴關系記錄到運行在該處理器核上的線程的內存競爭日志中,執行步驟D ;若沒有發生內存競爭,則只將內存塊的內容發送給請求方,執行步驟A ;D、請求方接收到應答消息后,檢測內存競爭記錄模塊記錄的標志位是否為真,若為真,則記錄內存競爭依賴關系到內存競爭日志;否則不記錄。具體實施方式三、結合圖3具體說明本實施方式本實施方式與具體實施方式一所述的的區別在于步驟二所述的當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能,每個處理器核操作步驟如下E、處理器核開始運行時,從運行在該處理器上的線程的內存競爭日志中讀取一個記錄,并存儲到該內存競爭記錄過程中使用的寄存器中,執行步驟F ;F、處理器核檢測該記錄依賴關系,若該記錄為偽依賴關系,則當執行完它所對應的指令后,創建喚醒消息、并通過一致性協議發送給對應的處理器,執行步驟G ;若該記錄為內存競爭依賴關系,則暫不執行該指令,當接收到喚醒消息時,執行步驟H ;所述的喚醒消息為內存競爭的先發生方所在的處理器核創建并發送的,G、處理器發送完喚醒消息后,該處理器核從內存競爭日志中讀取下一條記錄,再執行步驟F ;H、處理器接收到合適的喚醒消息后,處理器核從內存競爭日志中讀取下一條記錄,執行步驟F。相比先前的多核程序確定性重演方法,本專利技術有如下突出優點1、既支持內存競爭的記錄,又支持內存競爭的重演。2、記錄偽依賴關系,能在重演時主動創建喚醒消息并發送給請求方,重演效率高。3、使用簽名實現內存競爭的檢測,硬件資源消耗少。4、無需修改原有的Cache —致性協議。具體實施方式四、本實施方式與具體實施方式二所述的的區別在于,步驟C中所述的內存競爭日志由內存競爭依賴關系和偽依賴關系組成,內存競爭依賴關系是用來在重演時指出哪條指令需要等待來自哪里的喚醒消息;偽依賴關系是用來在重演時指出哪條指令需要發送喚醒,內存競爭依賴關系用依賴關系1: w — j : V來表不,偽依賴關系用依賴關系1:w — O來表示,此依賴關系的后發生為0,區別于內存競爭依賴關系,從而表示此依賴關系是一個偽依賴關系。其中,W、ν表示發生沖突1:x — j:y發生時,線程1、j本文檔來自技高網...
【技術保護點】
用簽名實現的多核程序內存競爭記錄及重演方法,其特征在于:它包括如下步驟:步驟一、在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄;步驟二、當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能。
【技術特征摘要】
1.用簽名實現的多核程序內存競爭記錄及重演方法,其特征在于它包括如下步驟步驟一、在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄;步驟二、當所有的處理器核的內存競爭記錄完成后,進入多核程序重演階段,開啟內存競爭重演功能。2.根據權利要求1所述的用簽名實現的多核程序內存競爭記錄及重演方法,其特征在于步驟一所述的在多核程序原始執行階段,開啟內存競爭記錄功能,每個處理器核開始內存競爭記錄操作步驟如下A、請求方發出指令,若該指令是讀內存操作指令,則IC的值加1,所述的IC的值為指令計數值,將所讀的內存塊的地址添加到所有的讀簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B ;若該指令是寫內存操作指令,則將要寫的內存塊的地址添加到所有的寫簽名寄存器中,同時請求方發出共享內存請求消息到每個處理器的一致性協議機構,執行步驟B ;B、一致性機構收到共享內存請求消息后,將共享內存請求消息轉發給其他處理器核, 即應答方,執行步驟C ;C、應答方根據接收到的共享內存請求消息的地址到讀簽名寄存器或寫簽名寄存器中查找,判斷是否有內存競爭發生,若發生內存競爭,則將一個記錄標志位和當前指令計數值連同內存塊的內容一起發送給請求方,清空對應請求方的寫簽名寄存器和讀簽名寄存器;并將偽依賴關系記錄到運行在該處理器核上的線程的內存競爭日志中,執行步驟D ;若沒有發生內存競爭,則只將內存塊的內容發送給請求方,執行步驟A ;D、請求方接收到應答消息后,檢測內存競爭記錄模塊記錄...
【專利技術屬性】
技術研發人員:朱素霞,季振洲,陳志剛,吳昊,王慶,王暉,李聰,
申請(專利權)人:哈爾濱工業大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。