201003517 六、發明說明: 【發明所屬之技術領域】 本揭示案一般而言係關於依序處理之碼評估 【先前技術】 技術之進步已產生較小且較強大之個人計算器件。舉例 2言’當前存在各種攜帶型個人計算器件,包括無線計算 件’諸如攜帶型無線電話、個人數位助理(pda)及傳呼
器件,其體積小、重量輕且易於由使用者攜帶。更具體而 …如蜂巢式電話及網際網路協定⑽電話之搞帶型無 線電話可經由無線網路傳達語音及資料封包。另外,許多 此等無線電話包括併入於其中之其他類型之器件。舉例而 無線電話亦可包括靜態數位相機、數位視訊相機、數 Γ錄器及音訊檔案播放器。又,此等無線電話可處理可 =丁指令,包括軟體應用程式’諸如可用以存取網際網路 之網頁瀏覽器應用程式。 勺括:待在此寺摘▼型個人計算器件處處理之電腦程式可 I ‘,,,入碼,組譯該碼,測試該碼及校正錯誤。詳言之, 對於不包括用以I貞測並解務产宝f 4上 特殊场…… 解析危害(诸如’貧料相依危害)之 将琛硬體之依序處理器, 開發及料㈣計此4“之彳貞職㈣在軟體之 圏及I 間執订。然而’當軟體碼包括條件分支、迴 圈及其他非順序碼時負 【發明内容】 _—正危告變得愈加困難。 在一特定實施例中,捃-^ Μ . 揭不一種评估用於使用依序執行
執仃處理器的程式碼的方法。該方法包括識別具J I39566.doc 201003517 :固:仃源路徑之一第一指令。該方法亦包括:產生基於— Γ條件識別多個指令之—執行順序的-第-執行路徑模 a ^方法進—步包括產生基於—第二條件識別一第二指 執行順序的—第二執行路徑模型。第—執行路徑模 二第二執行路徑模型各自包括第一指令。該方法進一步 二蝴寺執行路徑模型中之至少一者以識別一危害條 在另一特定實施例中,兮 程式碼。該方法亦包括識職=收用於該處理器之 之M , 53別基於一第一條件識別多個指令 之-執行順序的一第一執行仔列 識別-第二指令之一執行順序 ::弟-條件 Μ i-τ γ- λ, « 弟—執仃佇列。該第一 進一二:該第广執行仵列包括至少-共同指令。該方法 υ I括孑估该第一執行件 並報告-危害條件。亥苐一執行仔列以識別 ^另肖疋實施例中,揭示-種包括用以儲存用於化序 處理器之程式指令之記憶體的系:存用於依序 件,其用於基於至少_侔件八系、、先包括模型化構 至少兩個並行執行路徑模型。該系統包Si::指Π 於識別並報告該等並行執行路徑模型構2其用 危害條件。 主夕一者中之一 在另-特定實施例中’揭示一種處理器 括可由一處理器執行之操作指令。該等摔作;=,其包 識別-經寫入待由一依序處理器執行之電腦:二括用以 件分支的指令。該等操作指令亦 ^中之一條 M基於垓條件分支 139566.doc 201003517 之一第一條件評估一第一執行路徑且用以基於該條件分支 之一第二條件評估一第二執行路徑的指令。該等操作指令 進一步包括用以報告―與該第—執行路#或該第二執行路 徑中之任一者相關聯之危害條件的指令。 由所揭示實施例提供之特定優勢包括軟體開發之改良速 度、碼危害之減少發生及待由依序處理器執行之程式之較 短設計循環。 優點及 圖式簡
在番閱70整申凊案之後,本揭示案之其他態樣 特徵將變得顯而易I’完整申請案包括以下部分 單δ兒明、貫施方式及申請專利範圍。 【實施方式】 參看圖1’描1會—碼評估系統之特定說明性實施例且將 其一般地指定為100。系統100接收包括條件分支指令刚 之程式碼102。第—執行佇列110基於第-條件1〇6識別第 -指令集-之執行順序,指定為一。第二 谓於第:條件⑽識別第:指令㈣之執行順序,指 疋為’’Ζη程式執打根據遵循第-指令集112之第一扣 令順序m或根據遵循第二指令集122之 曰 有條件地繼續進行。 貝斤124 =寺::施例中’程式碼1〇2包括在系統!。。處接收之 処里益處之執仃之耵評估的指令 列110及第二指令佇列〗7Λ叮宜从v 乐扣?分 基於條件分支指令104之可能 結果來識別。舉例而 例而^條件分支指令104可包括一停件 跳躍指令至—特定目標指令。當不執行跳躍時,第一執 ^ 139566.doc 201003517 仔mio可以待由處理器執行之指令112填充。當執行跳躍 時,第二執行佇列12〇可以待由處理器執行之指令122填 充。在此說明性實例中,帛—執行仔mio及第二執行传 列120皆包括跳躍目標指令。該系統可評估第一執行佇歹: 110及第二執行佇列120兩者以識別並報告與執行佇列110 及120中之任一者相關聯之危害條件。 藉由評估多個條件執行仔列11〇及120,系統1〇〇允許沿 處理器處之多個執行流程侧程式危害。舉例而言,指^ 歸因於跳躍、迴圈及其他程式分支邏輯之條件執行以:: 件或有條件執行之個別指令在於運行時間解析此等條件 % ’可遮蔽所執行指令之間的資料相依。 ;° =系 '充1 〇〇處偵測到之危害條件包括資料相依危害, 二 w使用由先岫指令產生之結果的稍後指令在先前指令 ' 果寫入至一目標位址或暫存器之前執行時。亦可 、、H S線貝源危害’諸如當在—管線式處理器處執行之 指:需要同時存取相同硬體資源時。亦可偵測到程式 °諸如不歸因於資料相依之指令之間的最小執行 距離。 在特疋實施例中,系統100可作為處理器處之電路實 施以在處理1 D处之執行之別評估並偵測潛在危害。然而, 貝知例中,系統! 〇〇為諸如結合組譯器或編譯 器使用之評估1 B 、 工具之部分。使用評估工具,可改良軟體開 發循環時間,日 可減 >、新軟aa投向市場之開發成本及時 間。 139566.doc 201003517 參看圖2,描检—m 用以評估碼之系統之特定說明性告# 例且將其-般地指定為200。系統包括—代二 -,代表檔案加包括待提供至組譯器22〇之程式石^ 組譯器細之輸出(諸如,目標碼222)提供至依序執行處: 器230。在-較實施例中,依序執行處理器η㈣有a 露管線’意謂處理器23〇不對指令重排序且不 _ 或氣泡(bubble)插入$R 1 ; — 彡拖入至官線中以防止指令之間的相依危 害。 檔案2〇1包括產生—結果之第一指令a 2〇2。當—條件評 估為真k ’條件跳躍指令2()4使程式執行跳躍至目標指令B 208 ’且當該條件評估為假時,繼續執行順序指令「η及 E 206。目標指令3 2G8使用由指令A 2()2產生之 在指令B 208之執行之後,處理繼續指令F。 ^ 應將樓案2G1之指令2G2至2Q8理解為軟體程式之說明性 部分’軟體程式可包括自始至終具有多個條件及分支指令 之任-數目之行之碼。另外’如關於圖7將更詳細地解 釋’ 案2 01可進一步# ;j^么日 取次_ / ^ ^邑括組泽态貢訊(諸如,程式標註 (pragma)資訊)以使組譯器22〇能夠評估含於多個原始樓案 中之程式碼。 參看圖3’描繪程式碼執行模型之特定說明性實施例且 將其-般地指定為300。第-執行路徑模型包括由鍵路31〇 及312指示之第一邏輯區塊302、第二邏輯區塊3〇4及第三 邏輯區塊306。第二執行路徑模型包括由鏈路32〇指示之第 一邏輯區塊302及第三邏輯區塊3〇6。在一說明性實施例 139566.doc 201003517 中,執行模型可由圖2中描繪之對檔案2〇1之指令進行操作 的組譯器220產生。 第一邏輯區塊302包括產生一結果之指令A ,其後接著為 說明為條件跳躍之條件分支指令3〇8。第二邏輯區塊3〇4包 括待基於與分支指令308相關聯之第一條件執行之多個指 令。第三邏輯區塊306包括分支指令之目標B,其使用指令 A之結果。 在一特疋貫施例中,產生邏輯區塊3〇2、3〇4及3〇6以在 識別多個資料執行模㈣識恥持分群之碼段。多個資料 執仃核型可基於與一指令之多個執行源路徑相關聯之條件 產生。舉例而言,指令八及條件分支指令3〇8,以及條件分 士指令之目標B包括於第一執行路徑模型及第二執行路徑 杈型中。第二邏輯區塊3〇4中之指令c、〇及£基於條件分 支指令3G8有條件地執行。可評估執行路徑模型中之每— 者以識別一危害條件。 之特定說明性實施例且 條件分支指令(諸如,— 參看圖4,描繪程式碼執行佇列 將其一般地指定為4〇〇。回應於— 迴圈指令或—條件跳躍指令)識別第-執行仔列41〇及第二 執行仵列420。在-說明性實施例中,諸如藉由圖2之組譯 器謂於圖3中說明之執行路經模型建構第一執行仵列 41 0及第二執行符列42〇。 第一執行仔列4Π)包括產生—結果之第—指令AW。指 令A M2之後接著為條件跳躍指令414(注意指令順序為自 仔列之底部至頂部)’#中將該條件評估為真,使得採用 139566.doc 201003517 至目標指令B 418之跳躍。目標指令B 418使用由a们產 生之結果。另外’兩個「無操作」(N〇p)指令416已包括於 條件跳躍指令414與目標指令B川之㈤,以反映—跳躍指 令需要三個執行循環在處理器處完成的條件。 八第二執行件列420包括產生一結果之第-指令A 422。指 7 A 422之後接著為條件指令424,其中與條件指令々I 4相 反’將該條件評估為假,使得不採用執行分支。指令c、 D及E 426在條件指令424之後包括於第二執行仔列中, 其後接著為條件指令424之目標指令B 428。 如所說明,第一執行佇列41〇包括圖3中描繪之第一、第 二及第三邏輯區塊302至306,且第二執行佇列42〇包括圖3 中描繪之第一邏輯區塊3〇2及第三邏輯區塊3〇6,但無 邏輯區塊304。 2看圖5,描繪一用以評估程式碼之滑動窗之特定說明 性實施例且將其一般地指定為5〇〇。經由至少—滑動窗WO 評估第一執行佇列5丨〇及第二執行佇列52〇。當滑動窗53〇 在由箭頭532指示之方向上遍曆執行佇列51〇、52〇時,滑 動窗530將危害規則54〇應用至執行佇列51〇、52〇中在滑動 窗530内之指+。在—說明性實施例中,執行彳宁列训及 520可為圖4中描繪之執行佇列41〇及42〇。 如所說明’第-執行㈣51G包括#採用條件跳躍指令 時待執行之指令,包括反映與執行跳躍操作相關聯之延遲 的無操作(NOP)指令。第二執行仔列52〇包括當不採用條件 跳躍指令時待執行之指令。兩個執行佇列51〇及52〇包括跳 139566.doc •9- 201003517 躍目標指令B,其使用由先前指令A產生之結果。 在一特定實施例中,滑動窗53〇將包括資料危害規則 之危害規則540應用至執行佇列5 j 〇及52〇中之每一者。資 料危害規則544可指示在產生一結果之第一指令與使用該 結果之第二指令之間允許的最小距離或指令循環數目。在 所說明之實例中,四個指令之最小距離體現在滑動窗53〇 之高度上。 舉例而言,可在執行佇列510及52〇之一或多者中評估指 令A。滑動窗530可經定位以指示指令A之最小距離内之指 令,其中此等指令將不能夠使用由指令A產生之結果。如 所說明,使用先前指令A之結果之跳躍目標指令B在第一 執行佇列510中(亦即,當採用跳躍時)位於滑動窗53〇内, 但在第二執行佇列520中(亦即’當不採用跳躍時)不位於滑 動窗530内。因此,當採用跳躍時與指令A&B相關聯之資 料危害被情測且可被報告或校正。若兩個條件執行流程未 經5平估且若替代地滑動窗在寫入時未應用至碼,則資料危 害可保持未經偵測。 在一特定實施例中,滑動窗530亦可應用資源危害規則 5 46以判定請求硬體資源之不同指令之間的潛在或實際衝 突。舉例而言,滑動窗530可存取一管線資源表,諸如圖6 中描繪之管線資源利用表610。在—特定實施例中,滑動 窗530應用程式流程危害規則548以判定除了資料相依之外 個別指令位於彼此之一或多個預定最小距離内的潛在或實 際發生。 139566.doc •10· 201003517 在一特定實施你丨φ 害、程式流程危害或〜㈣評估資料危害、資源危 σ S '、任一組合。舉例而言,滑動窗530 Ί 组態以經由多次經過該等執 估程式流程,或可烊祛u么 』甲之次夕者而坪 危害類型。儘管將rt類型而未必評估所有各種 51〇及52〇,以^^53()描緣為並行地評估執行件列 列之並行評估且了T例中滑動窗530可不執行執行件 —或多個執行㈣ 地順序地心任—其他順序評估 52= , ⑽物料_列训及 /、爲施例中,例如藉由將一或多個執行 54。二:饋入,經組態以在接收指令時應用危害規則 及520了^夕固狀錢或其他電路(未圖示),執行仔列510 及520可應用至「固定 為具有對應n料盡管將滑動窗530輯 、 。距離之回度,但滑動窗530可呈 有:與資料危害距離相關聯之「高度」或評估範圍。舉例 而5 ’作為說明性非限制實例,當評估在六個時脈循環中 元成每-指令之管線處理器之危害時,滑動窗53〇可呈有 跨越六個指令之評估範圍,且可應用一或多個「子窗」、, =如:指令窗用於資源危害,四指令窗用於資料危害及兩 曰令囪用於某些程式流程危害。 參看圖6,描繪一管線資源危害評估之特定說明性實施 例亡將其一般地指定為_。將管線資源利用表㈣應用至 =打仔列620以產生-資源危害判定結構63()。在一說明性 實施例中,管線資源利用表61〇對於圖5中描纷之滑動窗 139566.doc 201003517 530為可存取的以評估資源危害。 在一特定實施例中,管線資源利用表6 1 0包括與一或多 個特定指令相關聯之靜態預定義資源資訊。舉例而言,與 一或多個指令相關聯之資源資訊可不動態地改變。在一特 定實施例中,管線資源利用表61〇包括與一或多個指令相 關聯之動態資源資訊。舉例而言,一特定指令所需要之資 源可基於執行一或多個其他指令而改變。為了說明,載入 包括由一隨後指令使用之資料之快取行的一先前指令將阻 止在隨後指令中载人相同快取行,且因此釋放進行此所需 要之貪源。此動態資源資訊可在管線資源利用表㈣處更 新。 如所說明’管線資源利用表61〇包括具有與指令相關聯 之列及與時脈循環相關聯之行的表。每一表項指示在開始 指令執行之後在相關聯數目之時脈循環處由相關聯指令使 ::一或多個資源。舉例而言,指令蚊執行需要自開始 私々Α之執行之後,在3個時晰 ni , f脈循裱處使用資源X,在4個 叫脈循環處使用資源γ,且在 s ^ . 在5個扦脈循環處使用資源X。 作為另-實例,㈣k執行不需要資源。 例包括快取、變換後備緩 、’貝原之貫 ㈣叫、資料或位址匯流排 ranSatl〇n 1〇〇^ίά6 或其任一組合。 暫存器槽案、其他硬體資源 / —特定實施例巾’當評姑執行仵列62。時,資、 判定結構630可動態地產生。卷^ ^貝源危告 令時,資源危害判定結構63〇 a估執仃仔列620之每一指 虽前時脈循環遞增,且添 139566.doc 201003517 表ό 1 0之指令相關聯之資料。當一 疋結構6;30之單一行中複製時,可 加與來自管線資源利用 共同ΐ源在資源危害判 偵測到危害。 舉例而言,如所說日月,指令Α在時脈循 艰i处開始,且在 時脈循環3、4及5處分別使用資源x、Y及X。「if」指令在 時脈猶環2處開如,B yu … 7 ° 在T脈循環4、5及6處使用資源z。 才曰々C在時脈循環3處開弘 ^ 開始且在時脈循環5、7及8處分別 使用資源X、W及X。因屮托人Λ m ^ 一 ,曰々及c在時脈循環5處均使 用貝源X,從而指示一管線資源危害。 參看圖7,描繪—用以绰 d %式碼之系統之特定 貫施例且將其—般地指定為7 〇 (^季# 7 η # 糸統70〇包括用以儲存用 於依序處理器(未圖示) 于用 )之釦式扣令的記憶體702。記 702搞接至模型化邏輯雷 〜 κ±3 、輯电路704及評估邏輯電路7〇6。坪估 邏軻電路706耦接至經組態以 J估 7〇8。 座生報告720之報告邏輯電路 十 '尘化邏輯電路7〇4、評估 路706、報告邏輯電路7〇8或其任 电 憶體702之處理器可讀„ 自諸如記 器7Π)的部分。舉例而言 7的處理 丨粗7〇2可由處理器7】 且可具有可由處理器71〇執行 咳取 知作私令。該等操作护a 可包括用以識別經寫入待 卞作“ 中之條件分支的沪八田 处里-處執仃之電腦程式 第-執行路徑且用以基於條件八:件:支之弟-條件評估 行路徑的指令,及用以報主^之弟—條件評估第二執 D〃弟—執行路徑及第二執行路 139566.doc •13- 201003517 2中之任-者相關聯之危害條件的指令。在—特定實施例 中,換型化邏輯電路704及評估邏輯電路7〇6中之至少一者 經組態以產生或評估至少兩個並行執行路徑模型。 在一特定實施例中’模型化邏輯電路7〇4經組態以基於 至少-條件分支指令判定程式指令之至少兩個並行執行路 徑模型。在—特定實施财,模型化邏輯電路704經组能 則妾收儲存於記憶體7()2處之第—稽案712處之程式指令^ 第-部分。模型化邏輯電路7〇4亦可經組態以接收儲存於 第一檔案712處且與儲存於記憶體7〇2處之第二檔案了^處 之私式指令的第二部分相關聯的組譯器輔助資訊Μ〗。模 型化邏輯電路704可經組態以產生包括諸如圖3中描繪之至 少兩個並行執行路徑模型的執行模型資訊716。 在一特定實施例中,處理器71〇執行組譯器程式指令 以、’、。5產生執行模型資訊716而產生用於作為模組寫入第 一檔案712、第二檔案714及可選地一或多個其他檔案(未 圖不)處之程式指令的目標碼。在組譯器程式可約束於評 估第一檔案712之範疇中的情況下,組譯器輔助資訊a]可 使組譯器能夠檢查第一檔案712與第二檔案714之間的指令 間相依及危害。在一特定實施例中,組譯器輔助資訊Μ] 包括經定義以將一程式流程指令之目標處之指令資料提供 至另私案的組澤器程式標註或指引。舉例而言,當一程 式流程指令由組譯器在第一檔案712處遭遇時,組譯器可 言試在第一檔案712内解析該程式流程。若組譯器在第一 檔案712内不能解析該程式流程,則組譯器可自動地搜尋 139566.doc -14- 201003517 組譯器輔助資訊722,諸如M& ^ ώ 错由在第二檔案714中定位用於 程式流程目標之-Μ個料餘定義。 用於 在特疋只施例中,評估邏輯電路706經組雄以气 行模型資訊716之並行執行路徑模型中之至少」者:二 危害條件。在一特定實施例 J ^矸估邈輯電路706包括處 m、以填充對應於並行執行路徑模型中 -者之第-指令執彳収對絲並行執㈣徑
第二者之第二指令執行件列(諸如,圖4中描繪之執 410及420)的一部分。 J 丁 J 在一特定實施例t,評估邏輯電路7〇6包括處理哭7i〇之 經組態以評估多個執行仔列以偵測資料相依危害、㈣危 害及程式流程危害中之至少一者的_部分。在一說明性實 把例中’評估邏輯電路706 έ» έθ #、,,〇· '二、,且,占以使用如圖5中描鳍_之滑 動窗530及相關聯危害規則54Q,使用如圖㈠描繪之管線 貧源危害表61G或其任—組合產生並評估多個執行仔列。 在一特定實施财,報告邏輯電路服㈣態以報告危 。條件舉例而吕’報告邏輯電路7〇8可包括處理器^之 ㈣態以執行用以產生報告72〇以包括行數且指示錯誤及 吳原因的#曰令的一部分。在評估跨越多個棺案Ν2及4 之-或多個條件分支之情況下,報告72〇可進一步識別與 位於第1案712 '第二棺案714、其他播案(未圖示)或其 ^ 、’且口處之至少一指令相關聯的錯誤。在一特定實施例 中,報告720指示在自執行第一檔案712處之指令跳躍至開 始執订第—檔案714處之第一指令之前插入用以延遲電腦 139566.doc •15· 201003517 程式之執行的指令。 參看圖8,描繪用以評估程式碼之 — w / 弟一貫施例ήΑ 流程圖。在-特定實施例中,評估用於使用依序執行二 線執行處理器的程式碼。在一說明性實施例中,該方法吕 由圖7中描繪之系統700根據圖!至圖6中描緣之實施Ζ 或多者執行。 該方法包括在802處,接收用於處理器之程式碼 =4’識別包括一分支指令的第—邏輯指令區塊。繼續 6 ’基於第—條件識別包括多個指令的第二邏輯扑八 :塊。繼續進行至_ ’識別包括至少一共同指令的第曰: 邈輯指令區塊’該至少一共同指令包括該分支指令之…: 支目標。移動至810,在一特定實施例中,將第一邏輯: 塊連結至第三邏輯區塊。 繼續進行至812, Ρ執行㈣基於第__條件識別多個 指令之執行順序。前進至814’第二執行仔列基於第二條 件識別第二指令之執行順序。舉例而言,可回應於一迴圈 指令或條件跳躍指令識別第—執行仔列及第二執行仔列。 為了說明’-迴圈指令可指示至一先前指令的條件或非條 件返回。在一特定實施例中,笛 Λ J T第一執行佇列及第二執行佇 列包括至少一共同指令。 在一特定實施例中,第-執行仔列包括與第一邏輯指令 區塊、第二邏輯指令區塊及第三邏輯指令區塊相關聯之指 令。第二執行仔列可包括與第—邏輯指令區塊及第三邏輯 指令區塊相關聯之指令。舉例而言’第一執行作列可對應 139566.doc 16 - 201003517 於未經採用之條件 仔列可對應於細採用(堵如,執行作列420),且第二執行 作列410)。 用之條件跳躍(諸如,圖4中描繪之執行 繼續至816,坪 -危害條件。移動至8:執行仔=二執行件列以識別 動窗將危害規則應用至说二知疋只施例中’使用-滑 列。危害規則可包括令來評估第二執行仵 使用滑動窗坪估第危告㈣及管線資源規則。藉由 對應於經採用之^行㈣,可(諸如)在第二執行仔列 休用之條件跳躍時偵 保持未經偵測。亦 边寺危害否則可 源規則來評估第一執滑動窗應用危害規則及管線資 測之危害條件執订作列。繼續進行至⑵,報告所谓 /看圖9 &繪用以評估程式碼之方法之第 4圖。該方法可評估用於使用依序執行之管 器的程式碼。在—今❹者 视饤之吕線執仃處理 海 生Λ細例中,該方法可由圖7 _浐 、·會之系統700根據圖!至 田 執行。 會之貝把例中之-或多者 在902處’識別具有多個執行源路徑之 至904,產生基於第— 彳夕動 件識別夕個指令之執行順序的第 一執行路徑模型。繼續至9〇6,產 的弟 -沪入少IS ^ 生基於第一條件識別第 之執订順序的第二執行路經模型。第一執行路徑模 罜及第二執行路徑模型可各自包括第一指令。 、 在一特定實施例中,第一勃杆牧/ 描, 執仃路徑模型及第二執行路护 含於不同擋案中。該等檔案中之至少—者可包括料 139566.doc -】7· 201003517 等檔案中之另—者相關聯之_ 〜* 助^可由一組譯器使用以評估執行路徑模型:亥、·且#裔輔 則進至908 ’評估執行路徑模 危害條件。繼續進行至91〇 之至乂 一者以識別一 線資源利用表以識別盘第—執^特定實施例中,存取管 關聯之資源。在-特^於執订路徑模型内之特定指令相 牡符疋貫施例中, 該特定指令相關聯之靜態預定資源資訊:在、1二括與 中,管線資源利用表亦包括與該特特疋實施例 源資訊。 、曰7相關聯之動態資 移動至912 ’偵測—产堂a & 件。卢一 —、巴13 U牛且報告所偵測之危害條 河产金^ !^例中’危害條件可為資料相依危害、資 源危害或私式流程危害中之—或多者。 、 熟習此項技術者將瞭解’可將 :所描述的各種說明性邏輯區塊、組態:=: ,法步驟貫施為電子硬體、電腦軟體或兩者之紐人。為了 =地說明硬體與軟體之此可互換性,各種說明:組件、 ㈣、偷、電路及步驟6在上文大體按其功能性 :以描述。此功能性係實施為硬體還是軟體視特定岸用及 t於整個系統上之設計約束而定。熟習此項技術者可針 十母-特疋應用以不同方式實施所描述之功能性 等實施決策不應被解釋為會導致脫離本揭示宰之範:。 亩Γ合本文中揭示之實施例描述之方法或演算法之;驟可 直接體現於硬體中、藉由處理器執行之軟體模組中或兩者 之組合中。軟體模組可駐留於隨機存取記憶體(咖)、快 139566.doc •18- 201003517 閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體 (PROM)、可抹除唯讀記憶體(EPR0M)、電可抹除唯讀記 憶體(EEPROM)、暫存器、硬碟、抽取式碟、緊密光碟唯 讀記憶體(CD-ROM)或此項技術中已知之任一其他形式之 儲存媒體中。一例示性儲存媒體耦接至處理器,使得處理 器可自儲存媒體讀取資訊及將資訊寫入至儲存媒體。在替 代例中,儲存媒體可整合至處理器。處理器及儲存媒體可 ( 駐留在特殊應用積體電路(ASIC)中。ASIC可駐留在計算器 V 件或使用者終端機中。在替代例中,處理器及儲存媒體可 作為離散組件而駐留於計算器件或使用者終端機中。 制提供所揭示實施例之先前描述以使熟習此項技術者能夠 製造或使用所揭示實施例。熟習此項技術者將易於瞭解此 等實施例之各種修改,且本文中所定義之一般原理可在不 脫離本揭示案之範壽的情況下應用於其他實施例。因而, 本揭示案及圖式將被視為說明性而非限制性的。因此,不 〇 2欲=本揭*案限制於本文中所展示之實;^,而是將符 可此與如由以下申請專利範圍所界定之原理及新穎特徵 - 一致之最廣泛範疇。 【圖式簡單說明】 圖1為一碼評估系統之實施例的總圖; θ /用以°平估碼之系統之實施例的方jt鬼圖; 圖3為耘式碼執行模型之實施例的總圖; 圖4為^式碼執行佇列之實施例的總圖; 圖5為用以啤从i D卞估程式碼之滑動窗之實施例的總圖; 139566.doc ,19- 201003517 圖6為s線貪源危害評估之實施例的總圖; 圖7為用u評估程式碼之系統之實施例的方塊圖; 圖8為用以評估碼之方法之第一實施例的流程圖;及 圖9為用以評估碼之方法之第二實施例的流程圖。 【主要元件符號說明】 100 碼β平估系統之特定說明性實施例/系統 102 程式碼 104 條件分支指令 106 第一條件 108 第二條件 110 第一執行彳宁列 112 第一指令集/指令 114 第一指令順序 120 第二執行仔列 122 第二指令集/指令 124 苐一指令順序 200 201 、、估馬之系統之特定說明性實施例/系統 檔案 202 第—指令A 204 條件跳躍指令 206 順序指令C、;〇及£ 208 目標指令B 220 組譯器 222 目標媽 139566.doc •20- 201003517 230 依序執行處理器 300 程式碼執行模型之特定說明性實施例 302 第一邏輯區塊 304 第二邏輯區塊 306 第三邏輯區塊 308 條件分支指令 310 鏈路 312 鍵路 320 鍵路 400 程式碼執行佇列之特定說明性實施例 410 第一執行佇列 412 第一指令A 414 條件跳躍指令 416 「無操作」(NOP)指令 418 目標指令B 420 第二執行佇列 422 第一指令A 424 條件指令 426 指令C、D及E 428 目標指令B 500 用以評估程式碼之滑動窗之特定說明性實施例 510 第一執行佇列 520 第二執行佇列 530 滑動窗 532 箭頭 139566.doc -21 - 201003517 540 544 546 548 600 610 620 630 700 702 704 706 708 710 712 714 716 718 720 722 W X Y z 139566.doc 危害規則 資料危害規則 資源危害規則 程式流程危害規則 管線資源危害評估之特定說明性實施例 管線資源利用表 執行彳宁列 資源危害判定結構 用以評估程式碼之糸統之特定說明性貫施例/ 系統 記憶體 模型化邏輯電路 評估邏輯電路 報告邏輯電路 處理器 第一檔案 第二檔案 執行模型資訊 組譯器程式指令 報告 組譯器輔助資訊 資源 資源 資源 資源 -22-