[發明專利]對先行載入值檢查的增強有效
| 申請號: | 201310141701.2 | 申請日: | 2006-08-09 |
| 公開(公告)號: | CN103336682A | 公開(公告)日: | 2013-10-02 |
| 發明(設計)人: | 博胡斯拉夫·雷赫利克 | 申請(專利權)人: | 高通股份有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京律盟知識產權代理有限責任公司 11287 | 代理人: | 劉國偉 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 先行 載入 檢查 增強 | ||
分案申請的相關信息
本申請為發明名稱為“對先行載入值檢查的增強”的原中國發明專利申請的分案申請。原申請的申請號為200680037497.8;原申請的申請日為2006年8月9日。
技術領域
本發明所揭示實施例大體來說涉及計算,且更特定來說涉及在處理器中實施先行預取操作。
背景技術
計算機程序是在執行時可導致計算機以預定的方式運轉的指令列表。一般來說,程序可含有變量列表及告知所述計算機如何處理所述變量的語句列表。程序設計員可以用人類容易理解的“高級”編程語言來編寫計算機程序。這種形式的程序稱作“源代碼”。然而,為了在計算機上執行程序,必須將源代碼轉變為機器語言,所述機器語言是可由所述計算機使用的“低級”語言。
這個轉換過程的第一步通常由稱作編譯程序的實用程序來實施,所述編譯程序將源代碼解釋為更接近機器語言的形式。編譯程序可具有除這種解釋功能之外的額外功能。例如,編譯程序可查看源代碼且對其中的某些指令重新排序以及實施其它優化。所述編譯程序將源代碼轉變為稱作“目標代碼”的形式。有時所述目標代碼和機器語言相同,有時在準備由計算機執行之前其需要進行進一步處理。
編譯程序可實施的一種優化是,對計算機程序中的指令進行重新排序來比簡單轉化已產生的程序設計員的源代碼版本更有效地操作。
例如,程序可處理變量。變量通常位于存儲器中且必須在其可供使用之前存取。在處理器中,存儲器的這種存取占用有限量的時間。如果在程序準備使用變量時還沒有從存儲器中獲得所述變量,則將變量傳送到存儲器中時可能會遇到延遲。
計算機指令的兩個常見類型為載入指令(“載入”)和存儲指令(“存儲”)。“載入”可存取存儲器以提取由程序需要的數據。“存儲”通常認為是次要的,因為其只將最終數據存儲到存儲器,例如隨后程序不需要的最終計算結果。因此,可通過將“載入”提前到“存儲”之前來改善程序效率。
遺憾的是,這個技術會導致稱作“載入/存儲混疊”的重大問題。當“存儲”將數據寫入到與“載入”從其中讀取的存儲器地址相同的存儲器地址時,將會發生“載入”/“存儲”混疊。圖1圖解說明這種情況的實例。處理器寄存器100可含有來自正在執行的計算機程序的一連串指令。程序設計員可能在緊接“使用”指令(“使用”)104之前已經將“載入”102A包含在源代碼中。所述“使用”104可以是利用由“載入”102A所檢索的數據來進行的計算。如上文解釋,編譯程序可通過將“載入”102A提升得高于“使用”104上方程序設計員最初在源代碼中放置其的地方(由箭頭106所指示)在運行時間改善整體程序效率。一個原因是,存取計算機存儲器的過程有時是緩慢的,且如果“載入”102A和“使用”104彼此太接近,則當所述計算機遇到“使用”104時,其可能需要等待“載入”102A檢索實施“使用”104所需的數據。如果編譯程序可將“載入”102A更早地放置在(例如)位置102B處,則計算機將更有可能在遇到“使用”104時就已經得到了檢索到的數據。因此,通過將“載入”提升到“使用”指令上方,編譯程序可減少等待時間并提高程序效率。
然而,如果將“載入”102提升到“使用”104上方過遠,則其可能會被提升到中間“存儲”110上方,如箭頭108所指示。如果中間“存儲”110恰巧將新數據寫入到由“載入”102存取的相同存儲器地址,則發生“載入”/“存儲”混疊。在操作中,“載入”102C將從指定的存儲器地址中讀取數據(例如值“0”),然后中間“存儲”110將把新數據(例如值“1”)保存到那個相同存儲器地址。當遇到“使用”104時,其將接收到“0”而不是“1”,因為“0”是由“載入”102C讀取的值。然而,程序設計員可能原打算讓“使用”104接收值“1”,這也是他為什么在編寫源代碼時就已將中間“存儲”110(其存儲值“1”)放置在“載入”102A和“使用”104之前的原因。因而,通過將“載入”102A移動到高于中間“存儲”110的任何位置,編譯程序可導致“使用”104接收不正確的數據。因此,雖然將“載入”提升到“存儲”上方通常可以是有益的,但是多數編譯程序受限于中間“存儲”。這會帶來高性能微處理器及并行編譯程序中的重大性能問題。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高通股份有限公司,未經高通股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310141701.2/2.html,轉載請聲明來源鉆瓜專利網。





