亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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

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