国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對先行載入值檢查的增強的制作方法

      文檔序號:6569192閱讀:229來源:國知局
      專利名稱:對先行載入值檢查的增強的制作方法
      技術(shù)領域
      本發(fā)明所揭示實施例大體來說涉及計算,且更特定來說涉及在處理器中實施先行 預取操作。
      背景技術(shù)
      計算機程序是在執(zhí)行時可導致計算機以預定的方式運轉(zhuǎn)的指令列表。 一般來說, 程序可含有變量列表及告知所述計算機如何處理所述變量的語句列表。程序設計員可 以用人類容易理解的"高級"編程語言來編寫計算機程序。這種形式的程序稱作"源 代碼"。然而,為了在計算機上執(zhí)行程序,必須將源代碼轉(zhuǎn)變?yōu)闄C器語言,所述機器 語言是可由所述計算機使用的"低級"語言。這個轉(zhuǎn)換過程的第一步通常由稱作編譯程序的實用程序來實施,所述編譯程序?qū)?源代碼解釋為更接近機器語言的形式。編譯程序可具有除這種解釋功能之外的額外功 能。例如,編譯程序可查看源代碼且對其中的某些指令重新排序以及實施其它優(yōu)化。 所述編譯程序?qū)⒃创a轉(zhuǎn)變?yōu)榉Q作"目標代碼"的形式。有時所述目標代碼和機器語 言相同,有時在準備由計算機執(zhí)行之前其需要進行進一步處理。編譯程序可實施的一種優(yōu)化是,對計算機程序中的指令進行重新排序來比簡單轉(zhuǎn) 化已產(chǎn)生的程序設計員的源代碼版本更有效地操作。例如,程序可處理變量。變量通常位于存儲器中且必須在其可供使用之前存取。 在處理器中,存儲器的這種存取占用有限量的時間。如果在程序準備使用變量時還沒 有從存儲器中獲得所述變量,則將變量傳送到存儲器中時可能會遇到延遲。計算機指令的兩個常見類型為載入指令("載入")和存儲指令("存儲")。 "載入"可存取存儲器以提取由程序需要的數(shù)據(jù)。"存儲"通常認為是次要的,因為 其只將最終數(shù)據(jù)存儲到存儲器,例如隨后程序不需要的最終計算結(jié)果。因此,可通過 將"載入"提前到"存儲"之前來改善程序效率。遺憾的是,這個技術(shù)會導致稱作"載入/存儲混疊"的重大問題。當"存儲"將數(shù) 據(jù)寫入到與"載入"從其中讀取的存儲器地址相同的存儲器地址時,將會發(fā)生"載入"/"存儲"混疊。圖1圖解說明這種情況的實例。處理器寄存器ioo可含有來自正在執(zhí)行的計算機程序的一連串指令。程序設計員可能在緊接"使用"指令("使用")104 之前已經(jīng)將"載入"102A包含在源代碼中。所述"使用"104可以是利用由"載入" 102A所檢索的數(shù)據(jù)來進行的計算。如上文解釋,編譯程序可通過將"載入"102A提升得高于"使用"104上方程序設計員最初在源代碼中放置其的地方(由箭頭106所 指示)在運行時間改善整體程序效率。 一個原因是,存取計算機存儲器的過程有時是 緩慢的,且如果"載入"102A和"使用"104彼此太接近,則當所述計算機遇到"使 用"104時,其可能需要等待"載入"102A檢索實施"使用"104所需的數(shù)據(jù)。如果 編譯程序可將"載入"102A更早地放置在(例如)位置102B處,則計算機將更有可 能在遇到"使用"104時就已經(jīng)得到了檢索到的數(shù)據(jù)。因此,通過將"載入"提升到"使用"指令上方,編譯程序可減少等待時間并提高程序效率。然而,如果將"載入"102提升到"使用"104上方過遠,則其可能會被提升到 中間"存儲"110上方,如箭頭108所指示。如果中間"存儲"110恰巧將新數(shù)據(jù)寫入 到由"載入"102存取的相同存儲器地址,則發(fā)生"載入"/ "存儲"混疊。在操作中,"載入"102C將從指定的存儲器地址中讀取數(shù)據(jù)(例如值"0"),然后中間"存儲" 110將把新數(shù)據(jù)(例如值"l")保存到那個相同存儲器地址。當遇到"使用"104時, 其將接收到"0"而不是"1",因為"0"是由"載入"102C讀取的值。然而,程序 設計員可能原打算讓"使用"104接收值"1",這也是他為什么在編寫源代碼時就已 將中間"存儲"110 (其存儲值"1")放置在"載入"102A和"使用"104之前的原 因。因而,通過將"載入"102A移動到高于中間"存儲"IIO的任何位置,編譯程序 可導致"使用"104接收不正確的數(shù)據(jù)。因此,雖然將"載入"提升到"存儲"上方 通??梢允怯幸娴?,但是多數(shù)編譯程序受限于中間"存儲"。這會帶來高性能微處理 器及并行編譯程序中的重大性能問題。一種用于處理這個問題的方法稱作"數(shù)據(jù)推測"。數(shù)據(jù)推測采用稱作"先行載入"("LD.A")和"檢査先行載入"("CHK.A")的專用指令。先行載入是一種如下 的"載入"當從存儲器地址中檢索數(shù)據(jù)時,將那個存儲器地址插入稱作"先行載入 地址表"("ALAT")的表格中。然后由其它程序指令推測性地使用已載入的數(shù)據(jù)。 同時,所有的"存儲"在將數(shù)據(jù)存儲到存儲器地址時均將所述地址與先行載入地址表 中所登記的地址進行比較。從先行載入地址表中驅(qū)逐任何匹配條目(別名)。當隨后 的檢查先行載入檢測到已經(jīng)從先行載入地址表中驅(qū)逐值時,其可產(chǎn)生異常。異常是指導致程序或微處理器分支到不同的例程的狀態(tài),且通常指示錯誤狀態(tài)。 在這種情況下,當檢測到先行載入地址表驅(qū)逐時所產(chǎn)生的異常觸發(fā)對先前由先行載入 所檢索的數(shù)據(jù)的推測性使用的恢復。那個數(shù)據(jù)證明是不正確的數(shù)據(jù)(由混疊導致), 所以在所述由異常觸發(fā)的恢復過程中必須調(diào)整其使用。這種恢復需要大量的工作和處 理時間,且大大地妨礙了性能。因此,異常的產(chǎn)生是不合需要的,且過量的異常首先 會顯著地抵銷編譯程序在對指令重新排序時所實現(xiàn)的任何增益。發(fā)明內(nèi)容在本發(fā)明的一個方面中,執(zhí)行已重新排序的程序指令的方法包含從第一存儲器地址中載入第一值;將所述第一存儲器地址記錄在經(jīng)配置以記錄存儲器地址與值之間 的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中以使所述第一值與所述第一存儲器 地址相關(guān)聯(lián);將第二值存儲到第二存儲器地址;及確定所述第一和第二存儲器地址是 相同的。在本發(fā)明的另一方面中, 一種計算機可讀媒體具體化可由計算機執(zhí)行以實施用于 執(zhí)行已重新排序程序指令的方法的指令程序,所述方法包含從第一存儲器地址載入 第一值;將所述第一存儲器地址記錄在經(jīng)配置以記錄存儲器地址與值之間的關(guān)聯(lián)的表 格中;將所述第一值記錄在所述表格中,以使所述第一值與所述第一存儲器地址相關(guān) 聯(lián);將第二值存儲到第二存儲器地址;及確定所述第一和第二存儲器地址是相同的。在本發(fā)明的另一方面中,計算機系統(tǒng)包含存儲器,其經(jīng)配置以將數(shù)據(jù)存儲在由 不同地址表示的多個位置中;及處理器,其耦合到所述存儲器且經(jīng)配置以從所述存儲 器地址的第一個地址中載入第一值,將所述第一存儲器地址記錄在經(jīng)配置以記錄存儲 器地址與值之間的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中以使所述第一值與 所述第一存儲器地址相關(guān)聯(lián),將第二值存儲到所述存儲器地址的第二個地址,及確定 所述第一和第二存儲器地址是相同的。在本發(fā)明的再一個方面中, 一種計算機系統(tǒng)包含用于存儲數(shù)據(jù)的裝置;及用于 以下的裝置從第一存儲器地址中載入第一值;將所述第一存儲器地址記錄在經(jīng)配置 以記錄存儲器地址與值之間的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中以使所述第一值與所述第一存儲器地址相關(guān)聯(lián);將第二值存儲到第二存儲器地址;及確定所述第一和第二存儲器地址是相同的。


      圖1圖解說明"載入"/ "存儲"混疊的實例;圖2圖解說明無線通信系統(tǒng);圖3是圖解說明電話系統(tǒng)的各組件的方塊圖;圖4圖解說明包含對已存儲值進行檢查的過程的實例;圖5是圖解說明用于確定在中間"存儲"之后是否應該產(chǎn)生異常的邏輯順序的流程圖;圖6圖解說明包含對已存儲值進行檢查的替代過程的實例;且 圖7是圖解說明用于確定在中間"存儲"之后是否應該產(chǎn)生異常的替代邏輯順序 的流程圖。
      具體實施方式
      圖2圖解說明其中可采用本文中描述的各種實施例的無線通信系統(tǒng)。所屬技術(shù)領 域的技術(shù)人員應認識到,各種實施例并不限于通信系統(tǒng)中的使用,其還可替代地具有許多其它的實際應用,且所述無線通信系統(tǒng)僅用作說明性實例。無線通信系統(tǒng)200可 包含訂戶臺202,訂戶臺202通過在反向鏈路上將數(shù)據(jù)傳輸?shù)交?06來與地面數(shù)據(jù) 網(wǎng)絡204通信?;?06可接收數(shù)據(jù)并將其通過基站控制器("BSC" ) 208路由到 地面網(wǎng)絡204。相反,可將到訂戶臺202的通信從地面網(wǎng)絡204經(jīng)由BSC 208路由到 基站206并在正向鏈路上將所述通信從基站206傳輸?shù)接啈魡卧?02。所屬技術(shù)領域 的技術(shù)人員應了解,可在基站206與一個或多個訂戶臺202 (其它訂戶臺未圖示)之 間發(fā)生正向鏈路傳輸。類似地,可在一個訂戶臺202與一個或多個基站206 (其它的 基站未圖示)之間發(fā)生反向鏈路傳輸。圖3是圖解說明其中可使用本發(fā)明教示的電話系統(tǒng)的一部分的各種組件的方塊 圖。計算機系統(tǒng)300可包括處理器302、存儲器304及其它電路306。計算機系統(tǒng)300 可以是包含(例如)服務器、客戶機、個人計算機、基站或訂戶臺的任何類型的計算 機系統(tǒng)。所屬技術(shù)領域的技術(shù)人員應了解,本文中的教示適用于包含耦合到存儲器的 處理器的許多其它類型的計算機系統(tǒng)。處理器302可包括(例如)EPIC微處理器。所 述微處理器可以是(例如)INTEL ITANIUM微處理器。所屬技術(shù)領域的技術(shù)人員應 了解,本文中的教示同樣可適用于其它處理器,所述處理器能夠與編譯程序結(jié)合來對 指令重新排序并將"載入"提前到中間"存儲"以上。處理器302可包括用于提前計 算機程序中的指令的寄存器或與所述寄存器通信。處理器302可與存儲器304通信以 按照計算機程序指令的引導檢索和存儲數(shù)據(jù)。處理器302可經(jīng)配置以允許編譯程序根 據(jù)本文中的教示重新排序計算機程序中的計算指令。如上所述,數(shù)據(jù)推測是利用專用先行載入和檢查先行載入指令來減輕與"載入" / "存儲"混疊相關(guān)聯(lián)的問題的方法。因為每當"存儲"存取已經(jīng)記錄在先行載入地址 表中的存儲器地址時數(shù)據(jù)推測都驅(qū)逐先行載入地址表中的條目,所以檢查先行載入指 令將引起大量的異常。除了在出現(xiàn)異常之后恢復推測性數(shù)據(jù)使用的效率損失外,這個 方法的不可預測性也是由于在產(chǎn)生異常時所需要的例程分支和隨后的同步化。因此, 根據(jù)本文中的教示,并不是在每一次"存儲"存取己經(jīng)記錄在先行載入地址表中的存 儲器地址時都將先行載入地址表條目刪除。當執(zhí)行計算機程序時,往往將某些值一貫地或至少經(jīng)常地存儲到特定地址。換句 話說,即使單獨地且獨立地執(zhí)行"存儲",也可由所述"存儲"的不同實例將某個值 經(jīng)常地存儲到相同的特定地址。當?shù)谝?"存儲"將第一值寫入到某個地址,且然后第 二 "存儲"將第二值寫入到那個相同的地址時,如果所述第一和第二值是相等的,則 不必產(chǎn)生異常來恢復所述第一值的推測性使用。如果中間"存儲"用相同的數(shù)據(jù)來改 寫數(shù)據(jù),則任何先前使用原始數(shù)據(jù)的指令都不需要校正,因為甚至在所述中間"存儲" 之前所述數(shù)據(jù)的值是正確的。根據(jù)這些教示,先行載入地址表可經(jīng)配置以存儲存儲器地址和已存儲值兩者。同 樣,除了將"存儲"地址與先行載入地址表中所記錄的地址進行比較之外,還可修改 檢查先行載入例程來將已存儲值與先行載入地址表中所記錄的值進行比較。處理器可經(jīng)配置以只在滿足以下兩個條件時驅(qū)逐先行載入地址表中的條目"存儲"地址與先 行載入地址表中所記錄的地址相匹配,且已存儲值與先行載入地址表中所記錄的與已 記錄地址相關(guān)聯(lián)的值不相等。通過針對這種情況進行檢査,本文中所揭示的處理器配 置可消除不必要的異常并改善整體程序效率。如果"存儲"地址與先行載入地址表中 所記錄的地址相匹配,而已存儲值與先行載入地址表中所記錄的與己記錄地址相關(guān)聯(lián) 的值相同,則先行載入地址表條目可保留在先行載入地址表中以使后來不會由搜索并 發(fā)現(xiàn)未驅(qū)逐的先行載入地址表條目的檢查先行載入產(chǎn)生異常。圖4圖解說明包含對已存儲值進行檢查的過程的實例。當執(zhí)行計算機處理器的寄 存器400中的程序時,根據(jù)本文中描述的過程來實施所述寄存器中的程序指令。當實 施某些指令時,可存取"先行載入地址及值表格"("ALAVT" ) 402??蓪?先行 載入地址及值表格"402存儲在(例如)可由所述處理器存取的存儲器中,或可維持 在所述處理器本身中。隨著程序操作的繼續(xù)進行,可遇到先行載入(LD.A)指令404。 如圖4中所圖解說明,這可表示為LD.A[B], Y,其指示處理器將實施從存儲器地址"B" 中載入值"Y"的指令。與載入這個值結(jié)合或在所述載入發(fā)生之前或之后,處理器還 可存取"先行載入地址及值表格"402并將與值"Y"相關(guān)聯(lián)的地址"B"記錄在條目 楊處。接下來,處理器可遇到額外指令,其中包含ST[B],X指令408。根據(jù)這個指令, 處理器可將值"X"存儲到存儲器地址"B"。處理器還可存取"先行載入地址及值表 格"402以確定是否先前已從剛剛寫入到的地址"B"中載入。在檢查"先行載入地址 及值表格"402時,處理器將遇到先前將地址"B"記錄在其中的條目406。然后處理 器可詢問新存儲的值"X"是否等于先前所載入的值"Y"。如果相等,則處理器可繼 續(xù)進行正常的程序執(zhí)行。然而,如果己確定"X"和"Y"不相等,則處理器可如驅(qū)逐 410所指示來驅(qū)逐條目406。通過從"先行載入地址及值表格"402中驅(qū)逐這個條目, 處理器正在提供以下指示由于中間"存儲"408,可能已經(jīng)不正確地使用了先前從地 址"B"中載入的值"Y"。因此,當處理器遇到CHK.A[B]指令414時,其將針對具 有地址"B"的條目來檢査"先行載入地址及值表格"402。然而,由于那個條目已被 驅(qū)逐,因此所述處理器將不會遇到這種條目,如416處所指示。檢測不到地址"B" 可導致處理器產(chǎn)生異常,從而觸發(fā)恢復由"載入"404載入的值"Y"的先前使用,由 于中間"存儲"408,所述值"Y"可能會是不正確的。圖5圖解說明包含對已存儲值進行檢査的替代過程的實例。在方塊500處,可在 計算機處理器的寄存器中將"先行載入"提前。指令LD.A[A,X]命令處理器從存儲器 地址"A"中載入值"X"。當值"X"已經(jīng)載入時,則處理器可向"先行載入地址及 值表格"存取與巳載入值"X"相關(guān)聯(lián)的地址"A"的記錄,如方塊502處所指示。隨 后處理器可在方塊504處遇到"存儲"。指令ST [B,Y]指令處理器將值"Y"存儲到 存儲器地址"B"。在決策方塊506處,處理器可與所述"存儲"結(jié)合來詢果不相同,則處理器可繼續(xù)進行正常的程序執(zhí)行,如方塊508處所指示。然而,如果 所述地址匹配,則處理器可在決策方塊510處檢査先前從戶萬述地址載入的值(方塊500 處的值"X")是否與剛剛存儲的值(方塊504處的值"Y")相等。如果所述值相等, 則處理器可繼續(xù)進行正常的程序操作,如方塊512處所指示。然而,如果所述值不相 等,則處理器可遵循不同的例程。如果在決策方塊510處檢査的值不相等,則在方塊514處,處理器可驅(qū)逐"先行 載入地址及值表格"中使存儲器地址"A"與值"X"相關(guān)聯(lián)的記錄。隨后,當處理器 在方塊516遇到"先行載入"指令時,處理器可存取"先行載入地址及值表格"并搜 索具有已記錄存儲器地址"A"的條目。因為這個條目在方塊514處被驅(qū)逐,所以處 理器不會在"先行載入地址及值表格"中定位到"A"條目,這將會導致在方塊518 處產(chǎn)生異常。所述異??捎|發(fā)處理器分支到不同的例程或指令集以恢復在將值"X" 從存儲定位"A"中載入之后可能已由不同的指令使用的那個值"X"的任何先前使用,。 這在方塊520處有所指示。在所述恢復之后,處理器可再一次回到正常的程序操作。圖6是圖解說明用于確定中間"存儲"之后是否應該產(chǎn)生異常的邏輯順序的流程 圖。可與存取存儲器中的"先行載入地址及值表格"602結(jié)合來實施處理器的寄存器 600中的指令。最初,"先行載入"指令604—LD.A[B], Y可命令處理器從存儲器地 址"B"中載入值"Y"。處理器可通過創(chuàng)建使地址"B"和當前值"Y"相關(guān)聯(lián)的條 目606來將這個"載入"記錄在"先行載入地址及值表格"602中。隨后,"存儲" 608—ST[B], X可命令處理器將值"X"存儲到存儲器地址"B"。處理器可通過用新 存儲的當前值"X"代替"Y"及將"Y"移動到先前值位置來將這個動作記錄在"先 行載入地址及值表格"602中。這在條目610處有所指示。然后,另一 "存儲"612 可命令處理器將值"Y"存儲到存儲器地址"B"。這將導致"Y"成為當前值且"X" 成為先前值,如條目614處所指示。需要來自存儲器位置"B"的數(shù)據(jù)的隨后"使用"指令616將使用由"載入"指 令604所載入的先前已載入值"Y"。雖然存在中間"存儲"608和612,但是因為存 儲在地址"B"處的數(shù)據(jù)的當前值是已經(jīng)載入的相同值"Y",所以處理器可拒絕產(chǎn)生 異常。這可由先行檢査指令618—"CHK.A[B]來確定,CHK.A[B]命令處理器將地址"B" 定位在"先行載入地址及值表格"602中??蓪⑺龅刂愤B同其相關(guān)聯(lián)當前值"Y" — 起定位在條目620處。處理器可將當前值"Y"與先前由"載入"604所載入的同樣為 "Y"的值進行比較,并確定它們是相等的。所屬技術(shù)領域的技術(shù)人員應了解,如果 所比較的值不相等,則處理器可產(chǎn)生異常以觸發(fā)恢復由中間指令(例如"使用"指令 616)對值"Y"的推測性使用。圖7是圖解說明用于確定在中間"存儲"之后是否應該產(chǎn)生異常的替代邏輯順序 的流程圖。將新存儲的值添加到"先行載入地址及值表格"條目,而不是將其值不與 中間"存儲"匹配的"先行載入地址及值表格"條目清空。確定值是否匹配可最終和 "先行載入"指令一起發(fā)生。這個程序適用于每個地址包含一個以上值條目的"先行載入地址及值表格"。雖然這個實例涉及其中每個地址具有兩個值條目的"先行載入地址及值表格"(例如圖6中的"先行載入地址及值表格"602),但本文中的教示可 適用于每個地址具有任何數(shù)量值條目的"先行載入地址及值表格"。在方塊700處,"先行載入"LD.A [A,X]可命令計算機處理器從存儲器地址"A" 中載入值"X"。在方塊702可通過將與地址"A"相關(guān)聯(lián)的值"X"記錄在"先行載 入地址及值表格"中來將記錄所述"載入"。然后可在方塊704實施"存儲"。指令 ST [B,Y]可導致處理器將值"Y"存儲到存儲器地址"B"。在決策方塊706處,處理 器可檢査存儲器地址"A"是否和存儲器地址"B"相同。如果不相同,則在方塊707 處,處理器可繼續(xù)進行程序操作。然而,如果所述地址相同,則在方塊708處,所述 處理器可添加先前的"先行載入地址及值表格"條目。處理器可將先前載入的值"X" 移動到"先行載入地址及值表格"條目的"先前值"位置中,并將新存儲的值"Y" 記錄到"先行載入地址及值表格"條目的"當前值"位置,這兩個值均與"先行載入 地址及值表格"條目中的存儲器地址"A"相關(guān)聯(lián)。在方塊710處,"先行載入"指令CHK.A[A]可命令處理器針對記錄存儲器地址 "A"的條目來檢查"先行載入地址及值表格"。在本實例中,將由處理器在方塊712 處定位條目"A,Y,X,",其中"X"是先前值且"Y"是當前值。在決策方塊714處,處 理器可檢驗當前值"Y"是否與在方塊700處所載入的先前值"X"相等。如果相等, 則在方塊716處,處理器可繼續(xù)進行程序操作,因為先前值"X"的任何中間使用都 會不受新載入的且相等的值"Y"影響。然而,如果確定所述值不同,則在方塊718 處,處理器可產(chǎn)生異常。在方塊720處,所述異??捎|發(fā)處理器恢復對值"X"的先 前使用中,值"X"隨后變?yōu)?Y",從而導致先前使用不正確。因此,揭示一種用于對計算指令進行重新排序的新穎的且經(jīng)改善的方法和設備。 所屬技術(shù)領域中的技術(shù)人員應了解,在整個上述說明中可能提到的數(shù)據(jù)、指令、命令、 信息、信號、位、符號及碼片可有利地表示為電壓、電流、電磁波、磁場或磁粒子、 光場或光粒子或其任何組合。所屬技術(shù)領域中的技術(shù)人員應進一步了解,結(jié)合本文所 揭示實施例描述的各種說明性邏輯塊、模塊、電路及算法步驟可實施為電子硬件、計 算機軟件或二者的組合。已經(jīng)根據(jù)其功能大體地描述了各種說明性組件、塊、模塊、 電路及步驟。所述功能實施為硬件還是軟件取決于特定的應用及施加在整個系統(tǒng)上的 設計限制。所屬技術(shù)領域的技術(shù)人員應認識到,在這些情況下硬件和軟件的可交換性, 及如何針對每一特定應用最好地實施所述功能。作為實例,可借助數(shù)字信號處理器 ("DSP")、專用集成電路("ASIC")、現(xiàn)場可編程門陣列("FPGA")或其 它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件(例如,寄存器及FIFO)、 執(zhí)行一組固件指令的處理器、任何常規(guī)的可編程軟件模塊及處理器或經(jīng)設計以實施本 文所述功能的其任何組合來實施或執(zhí)行結(jié)合本文所揭示實施例來描述的各種說明性邏 輯塊、模塊、電路及算法步驟。所述處理器可有利地為微處理器,但是另一選擇為, 所述處理器可以是任何常規(guī)的處理器、控制器、微控制器、可編程邏輯裝置、邏輯元件陣列或狀態(tài)機。所述軟件模塊可駐留在RAM存儲器、閃速存儲器、ROM存儲器、 EPROM存儲器、EEPROM存儲器、寄存器、硬磁盤、可裝卸磁盤、CD-ROM、或此 項技術(shù)中已知的任何其它形式的存儲媒體中。實例性處理器有利地耦合到所述存儲媒 體,以從所述存儲媒體中讀取信息并將信息寫入到所述存儲媒體中。另一選擇為,所 述存儲媒體可以是處理器的組成部分。處理器和存儲媒體可駐留在ASIC中。所述ASIC可駐留在電話或其它用戶終端中。另一選擇為,處理器及存儲媒體可駐留在電話或其 它用戶終端中。處理器可實施為DSP與微處理器的組合,或?qū)嵤榕cDSP核心結(jié)合 的兩個微處理器。因此已顯示并描述了本發(fā)明的說明性實施例。然而,所屬技術(shù)領域中的技術(shù)人員 應明了,可在不脫離本發(fā)明精神或范疇的情況下對本文中所揭示的實施例做出大量改 變。因此,僅根據(jù)隨附權(quán)利要求書來限制本發(fā)明。
      權(quán)利要求
      1、一種執(zhí)行已重新排序程序指令的方法,所述方法包括從第一存儲器地址載入第一值;將所述第一存儲器地址記錄在經(jīng)配置以記錄存儲器地址與值之間的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中,以使所述第一值與所述第一存儲器地址相關(guān)聯(lián);將第二值存儲到第二存儲器地址;及確定所述第一和第二存儲器地址是相同的。
      2、 如權(quán)利要求1所述的方法,其進一步包括將所述第二值記錄在所述表格中, 以使所述第二值與所述第一值及所述第一存儲器地址相關(guān)聯(lián)。
      3、 如權(quán)利要求1所述的方法,其中確定所述第一和第二存儲器地址是相同的包 括將所述第二存儲器地址與所述表中所存儲的存儲器地址進行比較。
      4、 如權(quán)利要求l所述的方法,其進一步包括確定所述第一和第二值是相等的; 及在不產(chǎn)生異常的情況下繼續(xù)進行隨后的程序指令。
      5、 如權(quán)利要求l所述的方法,其進一步包括確定所述第一和第二值是不同的; 及從所述表格中去除所述已記錄的第一存儲器地址及第一值。
      6、 如權(quán)利要求5所述的方法,其進一步包括確定所述表格不包含所述第一地 址;及產(chǎn)生異常。
      7、 如權(quán)利要求6所述的方法,其進一步包括在存儲所述第二值之前執(zhí)行利用所 述已載入的第一值的指令。
      8、 如權(quán)利要求7所述的方法,其中所述異常觸發(fā)所述已執(zhí)行指令的恢復。
      9、 一種計算機可讀媒體,其具體化可由計算機執(zhí)行以實施用于執(zhí)行已重新排序程序指令的方法的指令程序,所述方法包括 從第一存儲器地址載入第一值;將所述第一存儲器地址記錄在經(jīng)配置以記錄存儲器地址與值之間的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中,以使所述第一值與所述第一存儲器地址相關(guān)聯(lián);將第二值存儲到第二存儲器地址;及 確定所述第一和第二存儲器地址是相同的。
      10、 如權(quán)利要求9所述的計算機可讀媒體,其進一步包括將所述第二值記錄在所 述表中,以使所述第二值與所述第一值和所述第一存儲器地址相關(guān)聯(lián)。
      11、 如權(quán)利要求9所述的計算機可讀媒體,其中所述確定所述第一和第二存儲器地址是相同的包括將所述第二存儲器地址與所述表格中所存儲的存儲器地址進行比 較。
      12、 如權(quán)利要求9所述的計算機可讀媒體,其進一步包括確定所述第一和第二值是相等的;及在不產(chǎn)生異常的情況下繼續(xù)進行隨后的程序指令。
      13、 如權(quán)利要求9所述的計算機可讀媒體,其進一步包括確定所述第一和第二 值是不同的;及從所述表格中去除所述已記錄的第一存儲器地址及第一值。
      14、 如權(quán)利要求13所述的計算機可讀媒體,其進一步包括確定所述表格不包 含所述第一地址;及產(chǎn)生異常。
      15、 如權(quán)利要求14所述的計算機可讀媒體,其進一步包括在存儲所述第二值之 前執(zhí)行利用所述已載入的第一值的指令。
      16、 如權(quán)利要求15所述的計算機可讀媒體,其中所述異常觸發(fā)所述已執(zhí)行指令 的恢復。
      17、 一種計算機系統(tǒng),其包括存儲器,其經(jīng)配置以將數(shù)據(jù)存儲在由不同地址表示的多個位置中;及處理器,其耦合到所述存儲器且經(jīng)配置以從所述存儲器地址的第一者載入第一值;將所述第一存儲器地址記錄在經(jīng)配置以記錄所述存儲器地址與值之間的關(guān)聯(lián)的表 格中;將所述第一值記錄在所述表中以使所述第一值與所述第一存儲器地址相關(guān)聯(lián); 將第二值存儲到所述存儲器地址的第二者;及確定所述第一和第二存儲器地址是相同 的。
      18、 如權(quán)利要求17所述的計算機系統(tǒng),其中所述計算機系統(tǒng)包括基站。
      19、 一種計算機系統(tǒng),其包括 用于存儲數(shù)據(jù)的裝置;及用于以下的裝置從第一存儲器地址載入第一值;將所述第一存儲器地址記錄在 經(jīng)配置以記錄存儲器地址與值之間的關(guān)聯(lián)的表格中;將所述第一值記錄在所述表格中 以使所述第一值與所述第一存儲器地址相關(guān)聯(lián);將第二值存儲到第二存儲器地址;及 確定所述第一和第二存儲器地址是相同的。
      20、 如權(quán)利要求19所述的計算機系統(tǒng),其中所述計算機系統(tǒng)包括基站。
      全文摘要
      本發(fā)明揭示用于實施已重新排序計算機指令的系統(tǒng)和方法。計算機處理器從第一存儲器地址中載入第一值,并將所述第一值和所述第二值兩者記錄在表格或隊列中。所述處理器將第二值存儲到相同的存儲器地址,并驅(qū)逐先前的表格條目或?qū)⑺龅诙堤砑拥较惹暗谋砀駰l目。在隨后檢測已驅(qū)逐的表格條目或不一致的第二值時,所述處理器產(chǎn)生異常,所述異常觸發(fā)恢復對所述第一值的推測性使用。
      文檔編號G06F9/38GK101283331SQ200680037497
      公開日2008年10月8日 申請日期2006年8月9日 優(yōu)先權(quán)日2005年8月12日
      發(fā)明者博胡斯拉夫·雷赫利克 申請人:高通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1