欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在混合模式程序中檢測源代碼差錯的位置的設(shè)備和方法

文檔序號:6510866閱讀:219來源:國知局
在混合模式程序中檢測源代碼差錯的位置的設(shè)備和方法
【專利摘要】一種在混合模式程序中檢測源代碼差錯的位置的設(shè)備和方法。公開了一種在混合模式程序中檢測源代碼差錯位置的設(shè)備。所述設(shè)備可包括編譯器、映射表產(chǎn)生器、仿真器、比較數(shù)據(jù)產(chǎn)生器和差錯位置檢測器。所述設(shè)備在仿真驗證程序并且仿真參考程序的同時提取低級數(shù)據(jù)。低級數(shù)據(jù)被映射到驗證程序和參考程序的映射表,并且通過比較驗證程序和參考程序的映射表,確定在混合模式程序中是否存在差錯,并且如果差錯存在,則確定差錯在哪里。
【專利說明】在混合模式程序中檢測源代碼差錯的位置的設(shè)備和方法
[0001]本申請要求于2012年9月7日提交到韓國知識產(chǎn)權(quán)局的第10-2012-0099609號韓國專利申請的權(quán)益,該申請的整個公開出于所有目的合并于此。
【技術(shù)領(lǐng)域】
[0002]以下描述涉及一種多模式處理技術(shù)。例如,以下描述涉及一種由多??芍貥?gòu)處理器在混合模式程序中驗證映射的代碼的技術(shù)以及幫助找出源代碼差錯的調(diào)試技術(shù)。
【背景技術(shù)】
[0003]可重構(gòu)架構(gòu)是這樣一種架構(gòu):基于將由計算裝置執(zhí)行的任務(wù)來改變計算裝置的硬件配置,從而在對于每個任務(wù)的硬件級別實現(xiàn)最優(yōu)化。由于一塊硬件能夠通過改變一塊硬件的設(shè)置(而非需要多塊硬件(每塊硬件針對一個任務(wù)被優(yōu)化)或者使用不可修改的單塊硬件),來很簡單地執(zhí)行多個任務(wù),并因而次優(yōu)地執(zhí)行至少一些任務(wù),因此這種能力是有價值的。
[0004]當(dāng)僅使用硬件來處理任務(wù)時,由于大多硬件被配置為以固定的方式運行,因此甚至執(zhí)行任務(wù)的方式輕微改變,也難于有效地處理。另一方面,當(dāng)僅使用軟件來處理任務(wù)時,根據(jù)任務(wù)的類型來改變軟件并且使用改變的軟件來執(zhí)行任務(wù)是可行的。然而,處理任務(wù)比使用固定硬件處理任務(wù)更慢,原因在于:對于固定硬件上的最佳性能,針對各種任務(wù)改變軟件可能被不理想地改變。
[0005]可重構(gòu)硬件架構(gòu)提供硬件和軟件兩者的優(yōu)點。更具體地講,可重構(gòu)硬件架構(gòu)在提供定制軟件的多功能性的同時,確保定制硬件的最佳性能。由于這些原因,可重構(gòu)架構(gòu)的使用已經(jīng)增加,特別在相同的任務(wù)經(jīng)常被重復(fù)執(zhí)行并且優(yōu)化那些任務(wù)對于總體性能具有深遠(yuǎn)影響的數(shù)字信號處理的領(lǐng)域。
[0006]存在許多種類的可重構(gòu)架構(gòu)。一個比較恰當(dāng)?shù)睦邮谴志ш嚵?CGA),CGA由彼此連接的多個處理元件(PE)構(gòu)成。通過改變PE彼此連接的方式,CGA可被優(yōu)化以執(zhí)行特定操作或任務(wù)。
[0007]近來,新的可重構(gòu)架構(gòu)已經(jīng)被開發(fā),其利用粗晶陣列的特定PE作為超長指令字(VLIW)機(jī)。在這種可重構(gòu)架構(gòu)中,存在兩種執(zhí)行模式,CGA模式和VLIW模式。在CGA模式中,一般地,一個或更多個迭代循環(huán)操作被處理,而在VLIW模式中,一般地,一般操作而非循環(huán)操作被處理。由于CGA模式可能對于處理循環(huán)更有效,因此采用此方法。
[0008]基于CGA的可重構(gòu)處理器具有非常復(fù)雜的結(jié)構(gòu)。這種處理器包括多個功能單元(FU)、全局寄存器文件和本地寄存器文件。
[0009]如果在CGA中存在數(shù)據(jù)相關(guān)性,則編譯器難于分析并處理數(shù)據(jù)。數(shù)據(jù)相關(guān)性對于識別是重要的,這是因為如果非法或損壞數(shù)據(jù)產(chǎn)生(這不滿足數(shù)據(jù)相關(guān)性),則不同的差錯可能發(fā)生。例如,如果編譯器無法克服數(shù)據(jù)相關(guān)性,則用戶或程序員甚至不能檢測在CGA中映射的二進(jìn)制數(shù)據(jù)的差錯。其結(jié)果是,在程序的執(zhí)行期間可實現(xiàn)不期望的結(jié)果。為了使得可重構(gòu)硬件架構(gòu)能夠處理數(shù)據(jù),其必須能夠避免這種運行時間差錯。
【發(fā)明內(nèi)容】

[0010]在一個總體方面,提供了一種在混合模式程序中檢測源代碼差錯位置的設(shè)備,包括:仿真器,被配置為仿真第一程序和仿真第二程序;低級數(shù)據(jù)提取器,被配置為從第一程序的仿真提取第一低級數(shù)據(jù)以及從第二程序的仿真提取第二低級數(shù)據(jù);比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表以產(chǎn)生驗證映射表,以及將第二低級數(shù)據(jù)映射到從第二程序產(chǎn)生的第二映射表以產(chǎn)生參考映射表;差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以檢測驗證映射表與參考映射表之間的數(shù)據(jù)的不一致記錄,并且獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
[0011]所述設(shè)備可還包括:編譯器,被配置為通過在第一模式下編譯源代碼來產(chǎn)生第一程序,通過在第二模式下編譯源代碼來產(chǎn)生第二程序。
[0012]所述設(shè)備可還包括:映射表產(chǎn)生器,被配置為產(chǎn)生第一程序的第一映射表以及第二程序的第二映射表。
[0013]所述設(shè)備可提供:第一映射表和第二映射表的每個包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
[0014]低級數(shù)據(jù)提取器可被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
[0015]低級數(shù)據(jù)可包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器(PC)和迭代計數(shù)器中的至少一個。
[0016]差錯位置檢測器可基于程序計數(shù)器來檢測引起差錯的源代碼的位置。
[0017]在另一方面,提供了一種在混合模式程序中檢測源代碼差錯的位置的方法,包括:仿真驗證程序;仿真參考程序;從驗證程序的仿真提取低級數(shù)據(jù);從參考程序的仿真提取低級數(shù)據(jù);將從驗證程序提取的低級數(shù)據(jù)映射到指示源代碼和驗證程序之間的關(guān)系的驗證映射表,以產(chǎn)生驗證映射表;將從參考程序提取的低級數(shù)據(jù)映射到指示源代碼和參考程序之間的關(guān)系的參考映射表,以產(chǎn)生參考映射表;將驗證映射表與參考映射表進(jìn)行比較,以檢測數(shù)據(jù)的不一致記錄并且獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
[0018]所述方法可還包括:通過在第一模式下編譯源代碼來產(chǎn)生驗證程序;通過在第二模式下編譯源代碼來產(chǎn)生參考程序。
[0019]所述方法可還包括:產(chǎn)生指示源代碼和驗證程序之間的關(guān)系的第一映射表,并且產(chǎn)生指示源代碼和參考程序之間的關(guān)系的第二映射表。
[0020]在另一方面,提供了一種在混合模式程序中檢測源代碼差錯的位置的方法,包括:產(chǎn)生驗證數(shù)據(jù)表;產(chǎn)生參考數(shù)據(jù)表;將驗證數(shù)據(jù)表與參考數(shù)據(jù)表進(jìn)行比較,以便確定是否存在數(shù)據(jù)的不一致記錄。
[0021]所述方法可還包括:如果存在數(shù)據(jù)的不一致記錄,則基于程序計數(shù)器(PC)和功能單元(FU)索引,在源代碼中檢測與數(shù)據(jù)的不一致記錄相應(yīng)的位置。
[0022]所述方法可提供:通過將在第一模式下編譯的驗證程序的低級數(shù)據(jù)映射到驗證程序的映射表,來執(zhí)行產(chǎn)生驗證數(shù)據(jù)表的步驟。
[0023]所述方法可提供:通過將在與第一模式不同的第二模式下編譯的參考程序的低級數(shù)據(jù)存儲到參考程序的映射表,來執(zhí)行產(chǎn)生參考數(shù)據(jù)表的步驟。[0024]所述方法可還包括:在仿真期間從驗證程序提取驗證程序的低級數(shù)據(jù)。
[0025]所述方法可還包括:在仿真期間從參考程序提取參考程序的低級數(shù)據(jù)。
[0026]在另一方面,提供了一種在混合模式程序中驗證源代碼的設(shè)備,包括:仿真器,被配置為仿真第一程序和第二程序;低級數(shù)據(jù)提取器,被配置為從第一程序的仿真提取第一低級數(shù)據(jù),并且從第二程序的仿真提取第二低級數(shù)據(jù);比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表,以產(chǎn)生驗證映射表,并且將第二低級數(shù)據(jù)映射到從第二程序產(chǎn)生的第二映射表,以產(chǎn)生參考映射表;差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以提供源代碼是否有效的指示。
[0027]在所述設(shè)備中,第一映射表和第二映射表的每個可包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
[0028]低級數(shù)據(jù)提取器可被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
[0029]低級數(shù)據(jù)可包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器(PC)和迭代計數(shù)器中的至少一個。
[0030]在一個總體方面,提供了一種在混合模式程序中檢測源代碼差錯位置的設(shè)備,包括:仿真器,被配置為仿真第一程序,其中,通過在第一模式下編譯源代碼來產(chǎn)生第一程序,并且仿真第二程序,其中,通過在第二模式下編譯第二源代碼來產(chǎn)生第二程序;低級數(shù)據(jù)提取器,被配置為在仿真期間從第一程序提取第一低級數(shù)據(jù),并且在仿真期間從第二程序提取第二低級數(shù)據(jù);比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表,從而產(chǎn)生驗證映射表,并且將第二低級數(shù)據(jù)映射到從第二程序產(chǎn)生的第二映射表,從而產(chǎn)生參考映射表;差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以確定在驗證映射表與參考映射表之間是否存在數(shù)據(jù)的不一致記錄,并且響應(yīng)于確定存在數(shù)據(jù)的不一致記錄,獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
[0031]所述設(shè)備可提供:第一映射表和第二映射表的每個包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
[0032]低級數(shù)據(jù)提取器可被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
[0033]低級數(shù)據(jù)可包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器(PC)和迭代計數(shù)器中的至少一個。
[0034]差錯位置檢測器可基于程序計數(shù)器來檢測引起差錯的源代碼的位置。
[0035]在另一方面,提供了一種在混合模式程序中檢測源代碼差錯的位置的方法,包括:從驗證程序提取低級數(shù)據(jù),其中,通過在第一模式下編譯源代碼來產(chǎn)生驗證程序,同時仿真驗證程序,從參考程序提取低級數(shù)據(jù),其中,通過在第二模式下編譯源代碼來產(chǎn)生參考程序,同時仿真參考程序;將從驗證程序提取的低級數(shù)據(jù)映射到指示源代碼和驗證程序之間的關(guān)系的驗證映射表,從而產(chǎn)生驗證映射表,將從參考程序提取的低級數(shù)據(jù)映射到指示源代碼和參考程序之間的關(guān)系的參考映射表,從而產(chǎn)生參考映射表;將驗證映射表與參考映射表進(jìn)行比較以確定是否存在數(shù)據(jù)的不一致記錄,響應(yīng)于確定存在數(shù)據(jù)的不一致記錄,獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
[0036]在另一方面,提供了一種在混合模式程序中檢測源代碼差錯的位置的方法,包括:產(chǎn)生驗證數(shù)據(jù)表;產(chǎn)生參考數(shù)據(jù)表;將驗證數(shù)據(jù)表與參考數(shù)據(jù)表進(jìn)行比較以便確定是否存在數(shù)據(jù)的不一致記錄。
[0037]所述方法可還包括:如果存在數(shù)據(jù)的不一致記錄,則基于程序計數(shù)器(PC)和功能單元(FU)索引在源代碼中檢測與數(shù)據(jù)的不一致記錄相應(yīng)的位置。
[0038]所述方法可還包括:通過將在第一模式下編譯的驗證程序的低級數(shù)據(jù)映射到驗證程序的映射表來執(zhí)行產(chǎn)生驗證數(shù)據(jù)表的步驟。
[0039]所述方法可還包括:通過將在與第一模式不同的第二模式下編譯的參考程序的低級數(shù)據(jù)存儲在參考程序的映射表中來執(zhí)行產(chǎn)生參考數(shù)據(jù)表的步驟。
[0040]所述方法可還包括:在仿真期間從驗證程序提取驗證程序的低級數(shù)據(jù)。
[0041]所述方法可還包括:在仿真期間從參考程序提取參考程序的低級數(shù)據(jù)。
[0042]在另一方面,提供了一種在混合模式程序中驗證源代碼的設(shè)備,包括:仿真器,被配置為仿真第一程序,其中,通過在第一模式下編譯源代碼來產(chǎn)生第一程序,仿真第二程序,其中,通過在第二模式下編譯源代碼來產(chǎn)生第二程序;低級數(shù)據(jù)提取器,被配置為在仿真期間從第一程序提取第一低級數(shù)據(jù),在仿真期間從第二程序提取第二低級數(shù)據(jù);比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表,從而產(chǎn)生驗證映射表,并將第二低級數(shù)據(jù)映射到從第二映射表產(chǎn)生的第二映射表,從而產(chǎn)生參考映射表;差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以確定在驗證映射表和參考映射表之間是否存在數(shù)據(jù)的不一致記錄,響應(yīng)于確定存在數(shù)據(jù)的不一致記錄,則提供源代碼有效的指示。
[0043]所述設(shè)備可提供:第一映射表和第二映射表的每個包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
[0044]低級數(shù)據(jù)提取器可被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
[0045]低級數(shù)據(jù)可包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器(PC)和迭代計數(shù)器中的至少一個。
[0046]從以下詳細(xì)描述、附圖和權(quán)利要求,其他特征和方面可是清楚的。
【專利附圖】

【附圖說明】
[0047]圖1是示出可重構(gòu)處理器的示例的示圖。
[0048]圖2是示出產(chǎn)生混合模式程序的多模式處理器的示例的框圖。
[0049]圖3是示出在圖2中顯示的多模式處理器中編譯的兩模式程序的示圖。
[0050]圖4是示出根據(jù)實施例的在混合模式程序中檢測源代碼差錯的位置的方法的示例的流程圖。
[0051]圖5是示出根據(jù)實施例的在混合模式程序中檢測源代碼差錯的位置的設(shè)備的示例的框圖。
[0052]圖6是示出由在混合模式程序中檢測源代碼差錯的位置的設(shè)備執(zhí)行的差錯位置檢測處理的示例的示圖。
[0053]圖7是示出映射表的示例的示圖;
[0054]圖8是示出提取的低級數(shù)據(jù)的示例的示圖;[0055]圖9是示出根據(jù)另一實施例的在混合模式程序中檢測源代碼差錯的位置的方法的示例的流程圖。
【具體實施方式】
[0056]提供以下詳細(xì)描述以幫助讀者獲得對本文中描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,本文中描述的系統(tǒng)、設(shè)備和/或方法的各種修改、改變和等同形式對于本領(lǐng)域的普通技術(shù)人員將是清楚的。另外,為了更加清楚和簡明,可省略對本領(lǐng)域的普通技術(shù)人員公知的功能和構(gòu)造的描述。
[0057]貫穿附圖和詳細(xì)描述,相同的標(biāo)號指示相同的元件。附圖不可被測量,而為了清楚、示出和方便,可放大附圖中的元件的相對尺寸、比例和描繪。
[0058]在本文中描述的特征可以以不同的形式來實施,并且不被解釋為受限于在本文中描述的示例。當(dāng)然,在本文中描述的示例已經(jīng)提供,從而此公開將是徹底和完整的,并將本公開的全部范圍傳達(dá)給本領(lǐng)域的普通技術(shù)人員。
[0059]將注意,本文中使用的術(shù)語“源代碼”是指源代碼的一個或更多個文件,一個或更多個文件可隨意地包括庫,所述庫按照至少一個計算機(jī)編程語言包括指令,使得指令由計算機(jī)執(zhí)行一系列步驟。在實施例中,這種源代碼被編譯,從而這種源代碼可運行在硬件上。
[0060]圖1是示出可重構(gòu)處理器的示例的示圖。
[0061]參照圖1,可重構(gòu)處理器100包括可重構(gòu)陣列110和存儲器120。
[0062]本文中,術(shù)語“迭代”指示循環(huán)操作的每次執(zhí)行。例如,當(dāng)循環(huán)執(zhí)行三次時,全部循環(huán)操作的第一、第二和第三執(zhí)行被稱為循環(huán)操作的第一、第二和第三迭代。包括在相同迭代中的指令可被映射到不同的處理元件(PE),如果PE同時操作,則映射到不同的PE的指令可被并行處理,使得可重構(gòu)處理器100的操作速度更快。存在各種用于將指令映射到多個處理元件以允許同時執(zhí)行多個任務(wù)的技術(shù),諸如多任務(wù)和多線程。由于如果多個PE可用并且處理被劃分,則并行處理提供在其他任務(wù)完成之前開始一些任務(wù)以減小完成計算任務(wù)的總時間消耗的方式,因此并行處理是希望的。
[0063]在一些實施例中,可重構(gòu)處理器100能夠被設(shè)置為在粗晶陣列(CGA)模式或超長指令字(VLIW)模式下被驅(qū)動。例如,可重構(gòu)處理器100在CGA模式下處理循環(huán)操作,而能夠在VLIW模式下處理一般操作和循環(huán)操作兩者。盡管可重構(gòu)處理器100能夠在CGA模式或VLIW模式下處理循環(huán)操作,但是在VLIW模式下處理循環(huán)操作的效率可能低于在CGA模式下處理循環(huán)操作的效率。為了最大化在這種情況下的效率,實施例被配置為在CGA模式下處理循環(huán)操作(這是執(zhí)行循環(huán)操作更有效的方式),隨后在VLIW模式下處理其他操作,由于CGA模式不能處理那些其他操作。其結(jié)果是,可重構(gòu)處理器100可在特定程序的執(zhí)行期間在CGA模式和VLIW模式下選擇地被驅(qū)動,以實現(xiàn)對于程序的執(zhí)行最好的可能的結(jié)果。
[0064]可重構(gòu)陣列110包括寄存器文件111和多個處理元件(PE) 112。在實施例中,可重構(gòu)陣列110改變硬件配置以最佳地執(zhí)行操作。例如,可重構(gòu)陣列Iio可根據(jù)操作的類型改變PE112彼此連接并且彼此交互的方式。如果PE被改變?yōu)橐圆煌姆绞奖舜诉B接,則改變可重構(gòu)陣列110處理數(shù)據(jù)的方式,潛在地更適應(yīng)給定種類的操作。
[0065]寄存器文件111用于PE112之間的數(shù)據(jù)傳送。寄存器文件111用作工作存儲器,使用該工作存儲器,PE112可讀和寫在處理任務(wù)時使用的數(shù)據(jù)。此外,寄存器文件111還可存儲執(zhí)行指令所需的數(shù)據(jù)。例如,每個PE112能夠訪問寄存器文件111,以便讀或?qū)憟?zhí)行指令所需的數(shù)據(jù)。然而,并非每個PE112需要連接到所有其他PE112或者直接連接到寄存器文件111,從而特定PE112可經(jīng)由另一 PE112訪問寄存器文件111。
[0066]每個PE112可執(zhí)行分配的指令。PE112彼此連接的方式以及PE112的操作順序可根據(jù)將被處理的任務(wù)而改變。如上討論,通過改變給定的架構(gòu)中的PE的連接和順序,允許PE被重構(gòu)為使得PE適合于特定處理任務(wù)。
[0067]存儲器120可存儲關(guān)于PE112彼此連接的方式的信息、諸如執(zhí)行處理所需的指令的信息以及處理結(jié)果。指令可以是將提供給可重構(gòu)陣列110的指令,諸如指定將采用作為數(shù)據(jù)處理方法的一部分的動作的操作。例如,存儲器120可存儲在由可重構(gòu)陣列110處理之前的將被處理的數(shù)據(jù)、或者由可重構(gòu)陣列110產(chǎn)生的數(shù)據(jù)處理結(jié)果。在另一示例中,存儲器120可存儲用于驅(qū)動可重構(gòu)處理器110所需的信息、關(guān)于包括在可重構(gòu)陣列110中的PE112彼此連接的方式的信息、關(guān)于包括在可重構(gòu)陣列Iio中的多個PE112對數(shù)據(jù)操作的信息以及PE112產(chǎn)生的結(jié)果。
[0068]圖2是示出產(chǎn)生混合模式程序的多模式處理器的示例的框圖。
[0069]被配置為具有兩種或更多種模式以及被設(shè)計為在兩種或更多種模式下操作的硬件的多模式處理器20在每種模式下不同地操作。也就是,多模式處理器20具有第一模式塊220和第二模式塊210 (例如,CGA模式和VLIW模式),并且硬件可在不同的模式下不同地操作。多模式處理器可在特定時間或者當(dāng)特定事件發(fā)生時在第一模式塊220和第二模式塊210之間轉(zhuǎn)換。在 示例中,PE112被分離,每個PE被分配為屬于特定模式。在另一示例中,不同的編譯模式可共享PEl 12的至少一部分或全部,并且特定PEl 12有時被一個模式使用而有時被另一模式使用。
[0070]然而,由于硬件配置和操作方法在每種模式下是不同的,因此調(diào)度處理和映射處理的結(jié)果在每種模式下在編譯器之間是不同的。因此,為了使不同的模式針對編譯的代碼針對彼此被適當(dāng)?shù)剡\行,必需針對編譯的代碼協(xié)調(diào)調(diào)度和映射以確保多種模式以各模式考慮彼此對資源的使用的方式來共享資源。
[0071]圖2中描述的多模式程序是“連續(xù)(sequential) ”程序。連續(xù)程序是產(chǎn)生相同結(jié)果的程序,而不管編譯方法或執(zhí)行的條件。
[0072]針對“連續(xù)”的程序,需要程序的編譯能夠產(chǎn)生兩種或更多種混合模式程序(產(chǎn)生相同結(jié)果)。因此,需要將限制施加到程序的運行在不同模式下的部分,從而程序的不同部分不對彼此的操作進(jìn)行干涉,將使得它們丟失“連續(xù)”程序的特性。
[0073]圖3是示出在圖2中顯示的多模式處理器中編譯的兩模式程序的示圖。
[0074]在第一模式下從t=0時刻到t=!^時刻、在第二模式下從t=!^時刻到t=t2時刻、隨后在第一模式下從t=t2時刻到t=t3時刻,通過編譯源代碼來產(chǎn)生混合模式程序30。在不同時間段期間通過編譯源代碼產(chǎn)生的程序的部分通過標(biāo)號300、310和320來區(qū)分。
[0075]同時,在第一模式下通過編譯整個源代碼來產(chǎn)生混合模式程序31。在此示例中,假設(shè)混合模式程序31在第一模式和第二模式之間具有1:1的執(zhí)行比率。
[0076]假設(shè)第一模 式是VLIW模式,第二模式是CGA模式。如果在CGA模式下存在數(shù)據(jù)相關(guān)性,則編譯器難于分析并處理數(shù)據(jù)相關(guān)性。更加詳細(xì)地,如果編譯器無法克服和執(zhí)行數(shù)據(jù)相關(guān)性,則用戶或程序員甚至不能檢測到在CGA模式下映射的二進(jìn)制數(shù)據(jù)中的差錯。因此,有時候不期望的結(jié)果在程序的執(zhí)行期間發(fā)生。這種運行時間差錯對于程序的正確操作是有害的并且需要被消除,因為它們阻礙了程序的正確順序操作。
[0077]然而,當(dāng)在CGA模式下映射混合模式程序30時可產(chǎn)生錯誤的二進(jìn)制數(shù)據(jù)。為了確定錯誤的二進(jìn)制數(shù)據(jù)是否被產(chǎn)生,實施例產(chǎn)生允許實施例確保二進(jìn)制數(shù)據(jù)正確的參考數(shù)據(jù)。例如,實施例使用以下方法。為了使二進(jìn)制數(shù)據(jù)有效,實施例通過在傾向最少差錯模式(例如VLIW模式)下編譯混合模式程序30的源代碼來產(chǎn)生混合模式程序31,隨后將混合模式程序31的二進(jìn)制數(shù)據(jù)與在CGA模式下映射的混合模式程序30的二進(jìn)制數(shù)據(jù)進(jìn)行比較。由于混合模式程序31是傾向較少差錯的,因此如果混合模式程序30的低級數(shù)據(jù)(作為驗證的對象)與混合模式程序31的低級數(shù)據(jù)(作為參考)一致,則能夠確定在混合模式程序30中不存在差錯??蛇x擇地,如果存在差錯,比較還可確定差錯的源。
[0078]圖4是示出根據(jù)實施例的在混合模式程序中檢測源代碼差錯的位置的方法的示例的流程圖。
[0079]參照圖4,在混合模式程序中檢測源代碼差錯的位置的方法包括:編譯1100、執(zhí)行仿真和提取低級數(shù)據(jù)1110、產(chǎn)生比較數(shù)據(jù)1120和檢測差錯位置1130。
[0080]在操作1100,源代碼(也就是,高級數(shù)據(jù))在第一模式下被編譯,從而產(chǎn)生驗證程序,而相同的源代碼在第二模式下被編譯,從而產(chǎn)生參考程序。在一些實施例中,產(chǎn)生指示高級數(shù)據(jù)和低級數(shù)據(jù)之間的關(guān)系的映射表的操作1105(未顯示)被進(jìn)一步執(zhí)行以幫助后續(xù)處理。
[0081]在操作1110,在仿真期間,從驗證程序和參考程序的每個提取基本低級數(shù)據(jù)。此時,一些實施例從預(yù)定時間段(而非整個仿真時間段)的每個程序提取低級數(shù)據(jù)。由于僅一個時間段可能是在驗證程序中使用的模式是需要驗證并且該時間段外的代碼有效性可能沒問題的時間段,因此可從預(yù)定時間段提取低級數(shù)據(jù)。
[0082]在操作1120,在仿真操作1120期間從驗證程序和參考程序中的每個提取的低級數(shù)據(jù)被轉(zhuǎn)換為適合于比較的形式。一些實施例需要此操作,這是因為在不同模式下提取而沒有數(shù)據(jù)轉(zhuǎn)換的低級數(shù)據(jù)不適合在那些實施例中的比較。在低級數(shù)據(jù)被映射到在操作1110中產(chǎn)生的映射表時執(zhí)行數(shù)據(jù)轉(zhuǎn)換。
[0083]在操作1130,映射表,即,“驗證映射表”(從驗證程序提取的低級數(shù)據(jù)映射到該驗證映射表)與映射表,即“參考映射表”(從參考程序提取的低級數(shù)據(jù)映射到該參考映射表)進(jìn)行比較,從而確定在兩個映射表之間是否存在相應(yīng)數(shù)據(jù)的不一致性。如果在這兩個映射表之間發(fā)現(xiàn)相應(yīng)數(shù)據(jù)的不一致性,則涉及數(shù)據(jù)的不一致記錄的程序位置信息被獲得。使用映射表(低級數(shù)據(jù)映射到該映射表),能夠搜索與特定低級數(shù)據(jù)相應(yīng)的高級數(shù)據(jù)。也就是,能夠搜索源代碼位置。為了進(jìn)行此操作,例如如上討論的映射技術(shù)被使用,從而確定源代碼的哪部分導(dǎo)致與異常相關(guān)的低級數(shù)據(jù)的創(chuàng)建?;谧R別源代碼的該部分,變得能夠隨后向用戶通知問題區(qū)域處于源代碼中的哪里以用于調(diào)試目的。
[0084]圖5是示出根據(jù)實施例的在混合模式程序中檢測源代碼差錯的位置的設(shè)備的示例的框圖。
[0085]參照圖5,用于在混合模式程序中檢測源代碼差錯的位置的設(shè)備50包括編譯器500、映射表產(chǎn)生器510、仿真器520、低級數(shù)據(jù)提取器530、比較數(shù)據(jù)產(chǎn)生器540和差錯位置檢測器550。[0086]編譯器500通過編譯源代碼(也就是,高級數(shù)據(jù))來產(chǎn)生連續(xù)混合模式程序。
[0087]當(dāng)編譯器500產(chǎn)生混合模式程序時,映射表產(chǎn)生器510產(chǎn)生與對于混合模式程序指定的模式有關(guān)的映射表。
[0088]映射表指示編譯器500如何轉(zhuǎn)換高級數(shù)據(jù)。如果難于產(chǎn)生映射表,則編譯器500可減小優(yōu)化級別。用于優(yōu)化的操作包括刪除、值改變和順序改變。
[0089]此外,映射表包括指令映射信息、寄存器映射信息和存儲器映射信息。此外,在一些實施例中,映射表包括關(guān)于時隙的信息以及有效映射信息。通過將此信息記錄在映射表中,能夠跟蹤源代碼和低級數(shù)據(jù)之間的數(shù)據(jù)相關(guān)性,在某種程度上幫助確定是否存在關(guān)于數(shù)據(jù)相關(guān)性的潛在問題。
[0090]仿真器520仿真驗證程序和參考程序。通過仿真驗證程序和參考程序,可通過捕獲隨著程序運行而產(chǎn)生的低級數(shù)據(jù)來確定程序的效果怎樣。
[0091]低級數(shù)據(jù)提取器530在仿真器520進(jìn)行的仿真期間從驗證程序和參考程序的每個提取低級數(shù)據(jù)。
[0092]低級數(shù)據(jù)提取器530能夠在仿真期間提取與仿真的部分時間段而非整個時間段對應(yīng)的低級數(shù)據(jù)。如以上針對操作1110所討論的,在一些實施例中,僅被仿真的一部分時間段對于分析處理是必需的。
[0093]提取的低級數(shù)據(jù)可包括關(guān)于各種存儲和操作的信息,該信息體現(xiàn)了當(dāng)驗證程序和參考程序被仿真時硬件的操作的特征。作為仿真處理的部分,驗證程序和參考程序處理數(shù)據(jù),作為數(shù)據(jù)處理的部分,信息被傳送到寄存器文件111和存儲器120,以及從寄存器文件111和存儲器120傳送信息。提取的低級數(shù)據(jù)捕獲此信息流。例如,提取的低級數(shù)據(jù)可包括寄存器數(shù)據(jù)和存儲器數(shù)據(jù)。此外,提取的低級數(shù)據(jù)可包括存儲器訪問歷史(諸如存儲器的地址和數(shù)據(jù))。此外,提取的低級數(shù)據(jù)可包括指示特定數(shù)據(jù)在程序中的位置的信息,諸如程序計數(shù)器(PC)和迭代計數(shù)器。通過跟蹤此數(shù)據(jù),實施例能夠估計什么信息實現(xiàn)由作為仿真的部分執(zhí)行驗證程序和參考程序得到的結(jié)果。
[0094]比較數(shù)據(jù)產(chǎn)生器540將在仿真期間從驗證程序和參考程序的每個提取的低級數(shù)據(jù)轉(zhuǎn)換為適合于比較的形式。例如,驗證程序和參考程序的映射表的實施例。為了執(zhí)行比較,比較數(shù)據(jù)產(chǎn)生器將低級數(shù)據(jù)編譯為映射表,從而映射表可被使用在比較處理中。
[0095]通過將由低級數(shù)據(jù)提取器530提取的低級數(shù)據(jù)映射到在映射表產(chǎn)生器510中產(chǎn)生的映射表來執(zhí)行低級數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換。
[0096]差錯位置提取器550將驗證映射表與參考映射表進(jìn)行比較,從而確定兩個映射表之間是否存在數(shù)據(jù)的不一致記錄。這種數(shù)據(jù)的不一致記錄指示可存在需要被調(diào)試的問題,例如數(shù)據(jù)相關(guān)性問題。
[0097]如果在兩個映射表之間發(fā)現(xiàn)數(shù)據(jù)的不一致記錄,則涉及數(shù)據(jù)的不一致記錄的程序位置信息被獲得。
[0098]這樣,使用低級數(shù)據(jù)所映射到的映射表,能夠搜索與低級數(shù)據(jù)對應(yīng)的高級數(shù)據(jù)。也就是,能夠在低級代碼中搜索引起問題的源代碼的位置。例如,在提取的低級數(shù)據(jù)的PC值被映射到參考映射表的情況下,如果在驗證映射表中的PC值與參考映射表中的PC之間發(fā)現(xiàn)不一致,則能夠找出訪問存儲的特定部分的代碼的位置(在該位置發(fā)現(xiàn)不一致)。
[0099]圖6是示出由在混合模式程序中檢測源代碼差錯的位置的設(shè)備檢測差錯位置的過程的示例的示圖。
[0100]在圖6的實施例中,多模式處理器被配置為具有VLIW模式和CGA模式兩者。
[0101]此外,驗證程序是在VLIW模式和CGA模式下編譯的程序,而參考程序是僅在VLIW模式下編譯的程序。
[0102]在實施例中,用于檢測源代碼差錯的位置的設(shè)備60和61被構(gòu)造為物理上相同的設(shè)備。然而,其他實施例可將附加或不同的結(jié)構(gòu)元件包括在設(shè)備60和61中。然而,假設(shè)設(shè)備60指示VLIW加CGA混合模式下的設(shè)備,而設(shè)備61指示VLIW模式下的設(shè)備。此外,在VLIff和CGA混合模式下編譯的程序是驗證程序,而僅在VUM模式下編譯的程序是參考程序。編譯處理假設(shè)在VUM模式下產(chǎn)生的參考程序?qū)⑹谴_保VLIW和CGA混合模式驗證程序是連續(xù)程序的正確標(biāo)準(zhǔn)。
[0103]編譯器600和601的每個編譯源代碼,從而產(chǎn)生程序。
[0104]如果編譯的源代碼具有循環(huán)部分,則循環(huán)部分針對預(yù)先優(yōu)化被預(yù)處理,隨后被映射在CGA結(jié)構(gòu)上。由于預(yù)先優(yōu)化,CGA映射代碼的輸出可與包括在源代碼中的循環(huán)的輸出不同。因此,不能通過執(zhí)行主機(jī)編譯和仿真來獲得CGA映射代碼的參考輸出。然而,在圖6的實施例中,通過在VLIW模式下映射相等源代碼(在CGA模式下被映射)來獲得參考值。因此,通過將在VLIW和CGA混合模式仿真期間提取的數(shù)據(jù)與在VLIW模式仿真期間提取的數(shù)據(jù)進(jìn)行比較,由于如果VLIW和CGA混合模式仿真與VLIW模式仿真的結(jié)果匹配,則指示VLIW和CGA混合模式映射還沒有破壞任何數(shù)據(jù)相關(guān)性,因此數(shù)據(jù)驗證可能是可行的。
[0105]在VLIW加CGA混合模式編譯器600中,在CGA模式下被映射的源代碼的輸出數(shù)據(jù)在VLIW模式下被映射。映射表產(chǎn)生器610和611產(chǎn)生結(jié)果輸出數(shù)據(jù)的寄存器分配映射表。
[0106]與當(dāng)在CGA模式下映射源代碼時不同,當(dāng)在VLIW模式下映射源代碼時,由于虛擬寄存器溢出導(dǎo)致寫存儲器訪問可能發(fā)生。在這種情況下,任何提取的數(shù)據(jù)不應(yīng)用于比較。因此,僅VLIW模式的映射表可進(jìn)一步包括程序計數(shù)器以及功能單元索引中的信息,指示將特別執(zhí)行的指令是由于寄存器溢出還是用于訪問存儲器中的變量。
[0107]當(dāng)寄存器晶體管邏輯(RTL)仿真器620和621正在執(zhí)行仿真時,低級數(shù)據(jù)提取器630和631中的每個對于每個寫存儲器訪問提取地址和值。在僅VLIW模式下,低級數(shù)據(jù)提取器631進(jìn)一步在每次存儲器訪問提取PC值和FU索引。當(dāng)結(jié)束仿真時,低級數(shù)據(jù)提取器630和631分別提取從編譯器600和601接收的物理寄存器的最終值。
[0108]在對于相同地址的寫存儲器訪問的幾個數(shù)據(jù)的情況下,比較數(shù)據(jù)產(chǎn)生器640和641僅記錄最終寫存儲器訪問的數(shù)據(jù)。在VLIW模式下,比較數(shù)據(jù)產(chǎn)生器641提取PC值和FU索引,但是由于虛擬存儲器溢出而不提取寫存儲器訪問的值。
[0109]同時,關(guān)于相同地址,讀訪問和寫訪問的順序不改變。因此,如果在每個地址中的值的順序彼此比較,則能夠找出存儲器相關(guān)性破壞。
[0110]同時,在VLIW模式下,添加指示對映射表的寫存儲器訪問是否由于寄存器溢出而發(fā)生的信息。此外,如果存儲器相關(guān)性破壞的位置被發(fā)現(xiàn),則與PC值或FU索引對應(yīng)的源代碼的位置(諸如,源代碼的文件名和行數(shù))可被提供。以這種方式,用戶可發(fā)現(xiàn)差錯發(fā)生的源代碼的行數(shù)。一旦此信息對于用戶可用,則用戶隨后可使用它來幫助調(diào)試處理以解決可能已經(jīng)創(chuàng)建這些問題的代碼中的潛在差錯或者缺陷。此外,可進(jìn)一步提供循環(huán)索引映射到的寄存器信息或存儲器位置信息。[0111]寄存器晶體管邏輯(RTL)仿真器620和621提取涉及對存儲器的讀/寫訪問的地址。在VLIW模式下,PC值、將被執(zhí)行的FU的索引信息、循環(huán)索引被映射到的寄存器的值或者存儲器位置值被存儲在一起。
[0112]圖7示出映射表的示例。
[0113]參照圖7,映射表存儲涉及高級數(shù)據(jù)與低級數(shù)據(jù)的信息。在示例中,高級數(shù)據(jù)包括源代碼的文件名、行號和變量名稱。高級數(shù)據(jù)涉及在特定時間(時間=n,n+l,n+2)的特定PC以及低級數(shù)據(jù)(諸如寄存器地址和存儲器地址)。
[0114]圖8示出提取的低級數(shù)據(jù)的示例。
[0115]如圖8所示,對于每個循環(huán)(時間=n,n+1, n+2,…),值和PC被映射到每個寄存器地址(或者存儲器地址)。
[0116]圖9是示出根據(jù)另一實施例的在混合模式程序中檢測源代碼差錯位置的方法的示例的流程圖。
[0117]參照圖9,在混合模式程序中檢測源代碼差錯的位置的方法包括:在操作2200產(chǎn)生驗證數(shù)據(jù)表;在操作2210產(chǎn)生參考數(shù)據(jù)表;在操作2220將驗證數(shù)據(jù)表與參考數(shù)據(jù)表進(jìn)行比較;在操作2230檢測差錯位置。
[0118]在操作2200,通過將在第一模式下編譯的驗證程序的低級數(shù)據(jù)映射到與驗證程序有關(guān)的映射表來產(chǎn)生驗證 數(shù)據(jù)表。示例映射表已經(jīng)顯示在圖7至圖8中。當(dāng)驗證正被編譯時產(chǎn)生映射表,并且在仿真期間可從驗證程序提取低級數(shù)據(jù)。低級信息包括例如寄存器和/或存儲器地址信息以及寄存器或存儲器在給定時間關(guān)聯(lián)的值。實施例能夠確定源代碼中的哪個高級指令導(dǎo)致這些低級改變。
[0119]在操作2210,通過將在第二模式下編譯的參考程序的低級數(shù)據(jù)映射到與參考程序有關(guān)的映射表來產(chǎn)生參考數(shù)據(jù)表。以與在操作2200產(chǎn)生驗證數(shù)據(jù)表的方式類似的方式產(chǎn)生參考數(shù)據(jù)表。
[0120]在操作2220,實施例通過將驗證數(shù)據(jù)表與參考數(shù)據(jù)表進(jìn)行比較來確定在驗證數(shù)據(jù)表和參考數(shù)據(jù)表之間是否存在數(shù)據(jù)的不一致記錄。如果不存在不一致,則實施例確定已經(jīng)針對參考驗證了將被驗證的代碼。
[0121]在發(fā)現(xiàn)不一致記錄的情況下,在操作2230,使用PC值和FU索引來獲得涉及不一致記錄的程序位置信息。
[0122]因此,如果差錯發(fā)生,用戶可被提供指示觸發(fā)差錯的源代碼的行號的信息。這種信息允許用戶檢查代碼或者使用調(diào)試工具來糾錯。
[0123]執(zhí)行在本文中描述的方法的程序指令或其一個或更多操作可被記錄、存儲或固定在一個或更多個計算機(jī)可讀存儲介質(zhì)中。可由計算機(jī)來執(zhí)行程序指令。例如,計算機(jī)可使得處理器執(zhí)行程序指令。介質(zhì)可單獨地或與程序指令組合地包括數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。計算機(jī)可讀存儲介質(zhì)的示例包括磁介質(zhì)(諸如硬盤、軟盤和磁帶);光學(xué)介質(zhì)(諸如CD ROM盤和DVD);磁光介質(zhì)(諸如光盤);專門配置來存儲和執(zhí)行程序指令的硬件裝置(諸如只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、閃存等)。程序指令的示例包括機(jī)器代碼(諸如由編譯器產(chǎn)生)以及包括高級代碼的文件,可由計算機(jī)使用解釋器來執(zhí)行高級代碼。程序指令(也就是軟件)可分布在聯(lián)網(wǎng)的計算機(jī)系統(tǒng)上,從而軟件以分布式方式被存儲和執(zhí)行。例如,可由一個或更多個計算機(jī)可讀存儲介質(zhì)來存儲軟件和數(shù)據(jù)。另外,用于實現(xiàn)在本文中公開的示例實施例的功能程序、代碼和代碼段可由實施例所屬領(lǐng)域的程序員基于或使用附圖中的流程圖和框圖以及其在本文中提供的它們的相應(yīng)描述而被容易地解釋。另外,執(zhí)行操作或方法的所述單元可以是硬件、軟件或硬件和軟件的一些組合。例如,單元可以是運行在計算機(jī)上的軟件包或者運行軟件的計算機(jī)。
[0124]僅作為非詳盡示出,在本文中描述的終端/裝置/單元可指示移動裝置(諸如,蜂窩電話、個人數(shù)字助理(PDA)、數(shù)字相機(jī)、便攜式游戲平臺和MP3播放器)、便攜式/個人多媒體播放器(PM)、手持電子書、便攜式膝上型PC、全球定位系統(tǒng)(GPS)導(dǎo)航、寫字板、傳感器和能夠與本文中公開一致的無線通信或網(wǎng)絡(luò)通信的裝置(諸如,桌上型PC、高清晰電視(HDTV)、光盤播放器、機(jī)頂盒、家用電器等)。
[0125]計算系統(tǒng)或計算機(jī)可包括與總線、用戶接口和存儲器控制器電連接的微處理器。還可包括閃存裝置。閃存裝置可經(jīng)由存儲器控制存儲N比特數(shù)據(jù)。N比特數(shù)據(jù)被微處理器處理或?qū)⒂晌⑻幚砥魈幚恚琋可以是I或者大于I的整數(shù)。在計算系統(tǒng)或計算機(jī)是移動設(shè)備的情況下,電池可被附加地提供以供應(yīng)計算系統(tǒng)或計算機(jī)的操作電壓。對本領(lǐng)域的普通技術(shù)人員將是清楚的,計算系統(tǒng)或計算機(jī)可進(jìn)一步包括應(yīng)用芯片組、相機(jī)圖像處理器(CIS)、移動動態(tài)隨機(jī)存取存儲器(DRAM)等。存儲器控制器和閃存裝置可構(gòu)成使用非易失性存儲器來存儲數(shù)據(jù)的固態(tài)驅(qū)動器/盤(SSD)。
[0126]以上已經(jīng)描述了多個示例。然而,將理解,可做出各種修改。例如,如果描述的技術(shù)以不同順序執(zhí)行和/或如果在描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件以不同方式組合和/或由其他組件或它們的等同物代替或補充,則可實現(xiàn)合適的結(jié)果。因此,其他實施在權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種在混合模式程序中檢測源代碼差錯位置的設(shè)備,包括: 仿真器,被配置為仿真第一程序和仿真第二程序; 低級數(shù)據(jù)提取器,被配置為從第一程序的仿真提取第一低級數(shù)據(jù)以及從第二程序的仿真提取第二低級數(shù)據(jù); 比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表以產(chǎn)生驗證映射表,以及將第二低級數(shù)據(jù)映射到從第二程序產(chǎn)生的第二映射表以產(chǎn)生參考映射表; 差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以檢測驗證映射表與參考映射表之間的數(shù)據(jù)的不一致記錄,并且獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
2.如權(quán)利要求1所述的設(shè)備,還包括:編譯器,被配置為通過在第一模式下編譯源代碼來產(chǎn)生第一程序,通過在第二模式下編譯源代碼來產(chǎn)生第二程序。
3.如權(quán)利要求1所述的設(shè)備,還包括:映射表產(chǎn)生器,被配置為產(chǎn)生第一程序的第一映射表以及第二程序的第二映射表。
4.如權(quán)利要求1所述的設(shè)備,其中,第一映射表和第二映射表的每個包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
5.如權(quán)利要求1所述的設(shè)備,其中,低級數(shù)據(jù)提取器被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
6.如權(quán)利要求1所述的設(shè)備,其中,低級數(shù)據(jù)包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器PC和迭代計數(shù)器中的至少一個。
7.如權(quán)利要求6所述的設(shè)備,其中,差錯位置檢測器基于程序計數(shù)器來檢測引起差錯的源代碼的位置。
8.—種在混合模式程序中檢測源代碼差錯的位置的方法,包括: 仿真驗證程序; 仿真參考程序; 從驗證程序的仿真提取低級數(shù)據(jù); 從參考程序的仿真提取低級數(shù)據(jù); 將從驗證程序提取的低級數(shù)據(jù)映射到指示源代碼和驗證程序之間的關(guān)系的驗證映射表,以產(chǎn)生驗證映射表; 將從參考程序提取的低級數(shù)據(jù)映射到指示源代碼和參考程序之間的關(guān)系的參考映射表,以產(chǎn)生參考映射表; 將驗證映射表與參考映射表進(jìn)行比較,以檢測數(shù)據(jù)的不一致記錄并且獲得涉及數(shù)據(jù)的不一致記錄的程序位置信息。
9.如權(quán)利要求8所述的方法,還包括: 通過在第一模式下編譯源代碼來產(chǎn)生驗證程序; 通過在第二模式下編譯源代碼來產(chǎn)生參考程序。
10.如權(quán)利要求8所述的方法,還包括: 產(chǎn)生指示源代碼和驗證程序之間的關(guān)系的第一映射表,并且產(chǎn)生指示源代碼和參考程序之間的關(guān)系的第二映射表。
11.一種在混合模式程序中檢測源代碼差錯的位置的方法,包括:產(chǎn)生驗證數(shù)據(jù)表; 產(chǎn)生參考數(shù)據(jù)表; 將驗證數(shù)據(jù)表與參考數(shù)據(jù)表進(jìn)行比較,以便確定是否存在數(shù)據(jù)的不一致記錄。
12.如權(quán)利要求11所述的方法,還包括: 如果存在數(shù)據(jù)的不一致記錄,則基于程序計數(shù)器PC和功能單元FU索引,在源代碼中檢測與數(shù)據(jù)的不一致記錄相應(yīng)的位置。
13.如權(quán)利要求11所述的方法,其中,通過將在第一模式下編譯的驗證程序的低級數(shù)據(jù)映射到驗證程序的映射表,來執(zhí)行產(chǎn)生驗證數(shù)據(jù)表的步驟。
14.如權(quán)利要求11所述的方法,其中,通過將在與第一模式不同的第二模式下編譯的參考程序的低級數(shù)據(jù)存儲到參考程序的映射表,來執(zhí)行產(chǎn)生參考數(shù)據(jù)表的步驟。
15.如權(quán)利要求13所述的方法,還包括: 在仿真期間從驗證程序提取驗證程序的低級數(shù)據(jù)。
16.如權(quán)利要求14所述的方法,還包括: 在仿真期間從參考程序提取參考程序的低級數(shù)據(jù)。
17.—種在混合模式程序中驗證源代碼的設(shè)備,包括: 仿真器,被配置為仿真第一程序和第二程序; 低級數(shù)據(jù)提取器,被配置為從第一程序的仿真提取第一低級數(shù)據(jù),并且從第二程序的仿真提取第二低級數(shù)據(jù);` 比較數(shù)據(jù)產(chǎn)生器,被配置為將第一低級數(shù)據(jù)映射到從第一程序產(chǎn)生的第一映射表,以產(chǎn)生驗證映射表,并且將第二低級數(shù)據(jù)映射到從第二程序產(chǎn)生的第二映射表,以產(chǎn)生參考映射表; 差錯位置檢測器,被配置為將驗證映射表與參考映射表進(jìn)行比較以提供源代碼是否有效的指示。
18.如權(quán)利要求17所述的設(shè)備,其中,第一映射表和第二映射表的每個包括指令映射信息、寄存器映射信息和存儲器映射信息中的至少一個。
19.如權(quán)利要求17所述的設(shè)備,其中,低級數(shù)據(jù)提取器被配置為在仿真期間從預(yù)定時間段的第一程序和第二程序中的每個提取低級數(shù)據(jù)。
20.如權(quán)利要求17所述的設(shè)備,其中,低級數(shù)據(jù)包括寄存器數(shù)據(jù)、存儲器數(shù)據(jù)、程序計數(shù)器PC和迭代計數(shù)器中的至少一個。
【文檔編號】G06F11/36GK103678115SQ201310407591
【公開日】2014年3月26日 申請日期:2013年9月9日 優(yōu)先權(quán)日:2012年9月7日
【發(fā)明者】沈熙峻, 安珉旭, 丁鎮(zhèn)世, 韓淵照 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
环江| 城市| 库尔勒市| 海林市| 江源县| 随州市| 石棉县| 天水市| 岢岚县| 沧州市| 仪征市| 玉林市| 定陶县| 肇源县| 怀远县| 中西区| 颍上县| 壤塘县| 财经| 渝北区| 康保县| 鹤峰县| 昌黎县| 正镶白旗| 鸡泽县| 青铜峡市| 永嘉县| 鄂尔多斯市| 永胜县| 南江县| 来安县| 江达县| 阳朔县| 潍坊市| 临湘市| 杭锦旗| 庆城县| 墨江| 宣威市| 阜康市| 嘉义市|