專利名稱:用于優化存儲器中軟件功能的配置的方法和軟件的制作方法
技術領域:
本發明涉及用于優化計算裝置的存儲器中的軟件功能的配置(positioning) 的方法和相應的軟件程序。在許多其中執行禾聘或軟fM戈碼和/或處理任意鄉 數據的計算裝置中,數據、信息、軟件代碼等的主存儲介質與運行存儲裝置結 合4頓,軟^H戈碼和/或信息當所述運行存儲裝置正在運行時存儲在所虹作存io儲裝置中。主存儲裝置例如是5更盤或者類似物,而主工作裝置例如是RAM (隨 機訪問存儲器)。在硬盤中,即使當計算裝置關閉時,所存儲的軟f科戈碼和信息 也保持存儲狀態,然而RAM在在計算機關閉后被清空。在 處理和/或軟件 代碼執行期間,因為RAM允許在所述RAM的任何區域以相同的3Iit尋址所存 儲的軟^M戈碼和信息,所以通常4頓RAM執,f^種處理。15 背景技術在任何類型計算裝置中,會發生所需RAM空間比可用RAM空間更多的情 況。因為較大RAM比較小RAM昂貴很多,并且需要比可用空間更多的RAM 空間的情況并不是經常出現,所以引入了虛擬存儲器的捐J念。這種思想主要是 將來自RAM的軟^H戈碼或數據復制到次級存儲器以騰出空間用于從所述次級20存儲器加載回來的其它軟件代碼或數據。因此,所述次級存儲器可以是計算裝 置中諸如硬盤之類的主存儲介質或者計算機裝置中可用的任何其它適當的存儲 器或存儲裝置的。戯以存儲器的一般性推焓在圖1中展示。這里,邏輯(鵬 擬)存儲器1具有比物理存儲器2更大的存儲空間,所述物理存儲器2例如是 RAM。應用程序3a, 3b, 3c在邏輯存儲器1中具有地址數據,這些地址 轉25換(地址轉換4)至U物理存儲器2中的數據或軟fH戈碼的"實際"地址。這種地 址數據或軟件的轉換對于應用禾 是完,明的。如前面陳述的,虛擬或邏輯存儲器l比物理存儲器2更大,而次級存儲器 用作沒有放置在主工作存儲器中的數據或軟件代碼的備份,所述主工作存儲器 通常是所提到的RAM。30虛擬存儲器的概念也被用作一 實質上直接一從諸如NAND閃存和硬盤驅動器的原地非執行部分(XiP)設備執行軟fM戈碼,這意味著應用程序或軟^N戈石馬 不需要處理任何來自于次級存儲器的加載操作,因為這是由系統代碼自動處理。 通常,有兩種主要類型的虛擬存儲系統,即其中邏輯和物理存儲器分成相 等尺寸頁的分頁系統,和塊具有可變尺寸的分段系統。出于簡化理解的目的, 5在以下描述中將僅僅使用分頁系統的術語,但是應該明確的是本發明也適用于 分段系統。如果邏輯或虛擬存儲器空間比物理存儲器空間大,可能發生下述情況,訪 問包含所需數據或軟件代碼的所需頁,而此所需頁在物理存儲器中得不到。當 發生此種情況時,就發生了所謂的頁面失效。由系統處理此情況,并且這是通 10過在邏輯存儲器中查找空白頁開始的。如果沒有找到這樣的空白頁,它選擇一個需要卸載的犧牲 (victim data)或軟fH戈碼塊。如果犧牲頁(victimpage) 中的數據在之前因為一些處理已經改變了,它必須按次序寫回到次級存儲器以 保存這些變化,否則它將被簡單地覆蓋。下一步是將所需的數據或軟件代碼從 次級存儲器復制到主存儲器中,即RAM,并且更新地址轉換 。最后,系統15將轉換地址數據返回給應用程序,所述應用程序在略有皿后重新開始執行。 虛擬存儲概念的優點是無需提供更大的物理存儲裝置就能夠獲得更大的存 儲空間以及可能透明地執行來自non-XiP存儲器的應用程序。其缺點是前面描 述的頁失效所導致的延遲。頁失效發生的次數主要依賴于邏輯和物理存儲器的 大小、選擇犧牲頁的算法以及數據和代碼的設計。20 現有技術中已有一些通過重新排列次級存儲器中的軟fH戈碼以使得頁失效 較少發生來降低頁失效發生率的嘗試。例如,在ACM出版社于1990年出版的 關于編程語言設計禾口應用(Conference on Programming Language Design and Implementation)的ACMSIGPLAN1990會議的會議論文中,K. Pettis, R. Hansen 在論文"Profile Guided Code Positioning"中提出了一種形成此技術領域參考標25 準的算法。由Pettes和Hansen提出的此方法是基于"最近即最好(closest is best)" 的原則。換句話說,經常相互調用的軟m戈碼或軟件功能應該在代碼的最終版 本中被最終配置為彼此相鄰。這增加了它們被方爐在相同RAM頁(或段)中 的機會,從而減少了運行集的大小并相應減少了頁失效的次數。Pettis和Hansen據此提議基于代碼或軟件功能之間的調用次數來得到軟件30代碼或軟件功能的最街頓序。據此,在它們之間具有最高調用次數的軟fH鄰馬或軟件功能被首先合并或組合,并且其后把剩余的軟件代碼或軟件功能根據它 們各自的調用次數以遞減頓序和先前己經組合的部分進行組合。據此,如果合 并了兩個均具有將其與另一個軟fH戈碼或軟件功能相聯系的調用次數的軟件代 碼或軟件功能,貝跶些調用次數只是計算總數以為了更新在新組合的軟件功能 5或軟州戈碼和剩余軟fH戈碼或軟件功肖g之間的調用次數。最后,獲得連續順序的軟^H戈碼或軟件功能的列表,并接著將其存儲在次 級存儲器中。 發明內容本發明的目標是,提供一種相比于現有技術增加效率且減少頁失效次數的10用于優化計算裝置的存儲器中軟件功能配置的方法。M按照所附權利要求1的用于優化計算裝置的存儲器中軟件功能配置的 方法實現上述目標。依照本發明,所述用于優化計算裝置的存儲器中軟件功能 配置的方法包括步驟識別多個軟件功能中的每一個和在所識別的軟件功能之 間調用的各個次數,配置彼此共享相互最高調用次數的兩個軟件功能以形成一15組軟件功能并且更新在新形成的組和其它軟件功能之間的調用次數,以及在下 一^H十算循環中對于共享各自最高調用次數的軟件功能和/或軟件功能組重復所 述配置步驟和更新步驟等,直到依照連續順序配置了所有的軟件功能,其中所 述配置步驟和所述更新步驟是基于軟件功能的大小和軟件功能之間的調用次數 來執行的。20 應該注意的是,本申請和權禾腰求中使用的術語"軟件功能"旨在包括所有類型的軟件代碼、編程代碼、處理代碼、程序、子程序以及在計算裝置中用 于處理M、信息、指令和/或類似物的功能及其部分。此外,在其中方爐具有 依照本發明的優化配置的軟件功能的存儲器例如是次級存儲器,所述次級存儲 器作為計算裝置的主工作存儲器的后備存儲器,但也能夠是在本發明意識中的25軟件功能的優化配置是有益的任何其它類型的存儲器。此外,雖然應該注意的是本發明的有益應用是在存儲器空間通常有限或因 為費用方面的考慮而有益于使用小存儲空間的小尺寸計算裝置和電子設備,但 是依照本發明和豐又利要求術語"計算裝置"旨在包括能夠以任何能力來處理數 據、信息、指令等的任何類型的裝置。例如,本發明可應用在便攜式無線電通30信設備,其包括諸如移動電話、尋呼機、通信機的所有設備,艮P會^多并且適于6在無線通信系統中單向或雙向通信的電子機體、智能手機或類似物。有益地,在更新在新形成的軟件功能組和其它軟件功能之間或者新形成的 軟件功能組和軟件功能的其它組之間的調用次數的步驟中,在新形成組中的軟 件功肖胸與一個其它軟件功能或軟件功能組共享調用次數的情況下,基于新形 5成組中的軟件功能和所述一個其它軟件功能或軟件功能組的大小來執行更新步 驟。據此,有益地,在新形成組中的軟件功能均與一個其它軟件功能或軟件功 能組共享調用次數的所述情況中,更新步驟包括將反映所述存儲器段尺寸的窗 口尺寸和所述新形成組中的軟件功能和所述一個其它軟件功能或軟件功能組的 尺寸進行比較的步驟。據此,有益地,作為所述比較步驟的結果,使用所述新 10形成組中的軟件功能和/或所述一個其它軟件功能或軟件功能組的所選定相鄰軟 件功能,其具有一個附加尺寸,其中所述附加尺寸小于所述窗口的所述尺寸。 據此,有益地,基于在與所述新形成組中的軟件功能和所述一個其它軟件功能 或軟件功能組的所述選定相鄰軟件功能相鄰的軟件功能之間共享的調用來計算更新調用次數,所i^定相鄰軟件功能具有一個比所述窗口的所述尺寸小的附15加尺寸,而在選定軟件功能組中所共享的調用次數并不在所述計算步驟中使用。 進一步有益地,配置軟件功能組及軟件功能或者軟件功能組和另一個軟件 功能組相互鄰接以形成新的軟件功能組的步驟包括以下步驟將反映所述存儲 器段尺寸的窗口尺寸和在配置為相互鄰接的所述軟件功能組或所述軟件功能中 所述軟件功能的尺寸進行比較。據此,有益地,作為所述比較步驟的結果,在20所述配置步驟中僅僅使用新形成組中的所述軟件功能和/或所述一個其它軟件功 能或軟件功能組的選定相鄰軟件功能,其中所m定相鄰軟件功能具有比所述 窗口的所述尺寸小的附加尺寸。據此,有益地,基于在與所述軟件功能組的所 述選定相鄰軟件功能相鄰的軟件功能之間共享的調用,來確定配置為相互鄰接 的軟件功能,其中所述選定相鄰軟件功能具有比所述窗口所述尺寸小的附加尺25寸,在所述確定步驟中不〗柳在軟件功能組中共享的調用次數。本發明進一步針對用于優化計算裝置的存儲器中軟件功能配置的軟件程序 或計算機程序,所述軟件程序或計算機程序如果被加載到計算裝置的存儲器中 和運行在所述計算裝置上時適于執行依照本發明的方法。
30 在下面的描述中,依照附圖更加詳細地解釋本發明,其中圖i圖示出虛擬存儲器的概念,圖2圖示出具有中央處理單元和主存儲器以及次級存儲器的計算裝置,圖3圖示出相比于現有技術,傲照本發明所實現的次級存儲器中的軟m戈 碼設計的例子,5 圖4圖示出要以依照本發明的優化頓序放置的軟件功能的無向加權調用圖,圖5圖示出經過四次迭代之后的圖4的調用圖,圖6a到6e圖示出在本發明方法應用期間為了更新軟件功能之間調用的窗 口功肖g應用,禾口圖7圖示出圖4的調用圖的軟件功能的最終連綴1 。io具體實施方式
在圖2中,顯示了包括中央處理單元11和主存儲器12和次級存儲器13的 計算裝置10的框圖。如上面描述的,計算裝置12可以是任何類型的便攜式或 非便攜式計算裝置,其能夠并適于通過使用主存儲器12和次級存儲器13在中 央處理單元11中處理 、信息、指令等。主存儲器12例如是主工作存儲器15 (諸如RAM),而次級存儲器13例如是i更盤或任何其它類型的存儲器或儲存裝 置。典型地,為了將軟件功能存儲在如次級存儲器13的計算裝置的存儲器中, ilil如中央處理單元11的處理單元來應用用于優化本發明軟件功能的配置的方 法。例如,如果主存儲器12被完全占用,并且為了由處理單7^,亍處理而必須 存儲附加的的軟件功能,則這些附加的軟件功能就必須存儲在次級存儲器13中。20由于次級存儲器13通常不是能夠以相同速度訪問每個地址的RAM存儲器,所 以必須優化軟件功能的存儲順序。依照本發明的方法提供了這種優化。圖3顯示了現有技術的存儲布局相比于依照本發明的方法所實現的存儲布 局的比麟系。據此,圖3的左邊示出已經^M現有技術方法存儲的軟件功能 A、 B、 C、 D的第一頁14a和第二頁14b的布局l。由此應該注意到的是,頁中25的軟件功能的劃分和存儲對應于前面進一步描述的頁面系統,在所述頁面系統 中,邏輯和物理存儲器(例如RAM)被劃分成相同大小的頁。然而,所描述的 例子也適用于分段系統,在所述分段系統中,存儲部分或塊具有可變的尺寸。 在本發明所使用的權利要求語言中,使用的術語"段"包括在計算裝置的存儲 器中用于存儲數據代碼等的頁、段和固定及尺寸可變的部分。30 回到圖3的例子中,假定在處理結束之前,功能A在處理期間調用軟件功能D三次,著調用軟件功能B —次。軟件功能B在處理完成之前調用軟件功 能C兩次。軟件功能C和D在處理期間不調用任何其它軟件功能。因此,如果 執行以軟件功能A開始,諸如中央處理單元11的中央處理單元按照 ADADADABCBCBA柳頃序從軟件功能要求軟州戈碼。假定僅有一個非常小的 5主工作存儲器12可用,例如僅具有一個滿的RAM頁的非常小的RAM。如果 軟件功能A、 B、 C、 D放置在如圖3左邊所示的在次級存儲器的頁14a和14b 中,則在執行期間對軟件功能的訪問將導致11次頁失效和處理時間的相應增加。 在圖3的右邊,示出了依照本發明方法所實現的相同軟件功能A、 B、 C、 D的 布局。與按照字母順序存儲軟件功能的圖3的左邊形成對照,應用本發明的方1 o法將導致在第一頁15a中存儲軟件功能A及D而在第二頁15b中存儲軟件功能 B和C。在以軟件功能A開始的執行期間,fflil本發明所實現的配置僅僅導致 3次頁失效。這顯示,相比于現有技術,依照本發明的用于優化計算裝置的存儲 器中軟件功能配置的方法具有明顯的處理能力和處理時間的優勢。通常,相比 于現有技術的解決方案,本發明方法使得頁失效率減少了 20%到40%。由于減15少了頁失效率,所以提高了執行速度,增加了邏輯存儲空間的尺寸和/或減少了 主存儲器的尺寸。在依照本發明的用于優化計算裝置存儲器中軟件功能配置的方法的開始 處,粒如圖4所示的無向加權調用圖。據此,軟件功能的簡檔(profiling)數 據被用來建立調用圖,所述簡檔數據即關于每個軟件功能的尺寸的信息和關于20軟件功能之間調用次數的信息。在圖4所示的例子中,軟件功能A的尺寸是1 , 軟件功能B的尺寸是5,軟件功能C的尺寸是8,軟件功能D的尺寸是3,軟 件功能E的尺寸是2 ,軟件功能F的尺寸是4 ,軟件功能G的尺寸是7 ,且軟件 功能H的尺寸是9。軟件功能A和B之間的調用次數是7,軟件功能A和F之 間的調用次數是6,軟件功能A和C之間的調用次數是8,且軟件功能A和D25之間的調用次數是2。軟件功能E和B之間的調用次數是4和軟件功能E和F 之間的調用次數是8。軟件功能G和C之間的調用次數是3,且軟件功能G和 D之間的調用次數是6。軟件功能H和F之間的調用次數是9,且軟件功能H 和G之間的調用次數是2。軟件功能C和H之間的功能調用次數是5。在圖4 的調用圖中,^t軟件功能A、 B、 C、 D、 E、 F、 G和H由節點代表,其中節30點之間的邊對應于各個軟件功能之間的調用,而邊的權值對應于所連接的軟件功能之間的調用次數的和。在此,不計數從一個軟件功能到它自身的調用(遞歸)。為了提取簡檔信息,即軟件功能的尺寸和來自于運行系統的軟件功能之間 的調用次數,能夠采用任何適當的方式或方法。 一種可能是以匯編代碼級將代 5碼插入軟件功能的幵始和結束。此額外代碼被采用以將當前物理地址寫到特定 全局變量。此外,當前進程標識應該寫到另一個變量。然后,可以由邏輯分析器記錄寫入這些變量的操作。接著,i!31使用映射文件對所涉及的軟件功能映像所記錄的地址列表。映射文件主要是連接的軟件功能和每個軟件功能的開始 及結束地址的列表。接著,為每個進程生成一個調用樹。作為下一步驟,提取io關于每個軟件功能調用另一個特定軟件功能多少次的信息。這些M能夠用于構建如圖4所示的加權調用圖。為了驗證這些簡檔結果,也ffliK頓邏輯分析器從在沒有簡檔的情況下運行的系統中得到日志。所生成的日志是在存儲器和 中央處理單元之間傳輸的執行代碼的物理地址的列表。然后,仿真請求調頁環 境,而仿真器能夠檢查日志并輸出所遇到的頁失效的次數。為了仿真依照本發15明的軟件功能的重新排列,可以在原始日志和具有變化后的地址的相同日志上 執行該仿真。如前面所描述的,依照本發明的用于優化軟件功能配置的方法開始于圖4 所顯現的情況,其中可以得到關于每個軟件功能的尺寸和在次級存儲器中排序 和配置的不同軟件功能之間的調用次數。此隋況可通過圖4中的無向加權調用 2()圖顯示出來。第一步是接著加入共享最高調用次數的各個軟件功能。在圖4所 示的例子中,軟件將在第一步中加入功能F和H以形成一個新的軟件功能組FH。 在圖形表示中,形成新節點FH。同時,更新關于新形成的軟件功能組(在此例子中是F和H)和剩余軟件 功能交換的調用次數。在當前例子中,在合并軟件功能F和H之后,分別和軟 25件功能E、 A、 C和G交換的調用次數保持相同,原因在于軟件功能F和H并 不和一個(相同的)其它軟件功能交換調用。對于下一輪計算等而言,以共享最高調用次數的軟件功能(或軟件功能組)、 各自最高調用次數開始, 一步步地繼續軟件功能的合并或軟件功能相互鄰接的 配置,以及更新與剩余軟件功能(或軟件功能組)交換的調用,直到在連續順 30序列表的方式將軟件功能配置成相互鄰接,例如圖7所示。應該注意的是,如果例如在第一步中存在兩個或多個邊在軟件功能之間具有相同的最高調用次 數,則隨豐腿擇它們中的一個,并且在下一步中隨+腿擇下一個。例如,在圖4的例子的第二步中,在第一步中合并了軟件功能F和H之后,剩余的最高調用 次數仍然是8,并出現了兩次,即在軟件功能A及C之間和在軟件功能E和新 5形成組FH之間。然后,隨IK擇下一個合并。例如,如果在第二步中將軟件功 能E加入到組FH中,則在第三步中結合軟件功能A和C。在該示例的第二步 中(將E加入到組FH),與其它軟件功能(或軟件功能組)共享的調用的更新 操作是簡單的,這是因為軟件功能E和組FH并不和相同的軟件功能或軟件功 能組共享調用。當在第三步中把軟件功能A和Ci^在一起時,情況就有所改io變。這里,軟件功能F和軟件功能H交換5次調用,且軟件功能A和軟件功能 F交換6次調用。因此,在合并軟件功能A和C以成為新形成組AC之后,在 新形成組AC和所述(舊的)組EFH之間的調用次數必須更新和重新計算。將 結合第六步解釋確切算法,其中軟件功能B結合到新形成的組AC。通常,調 用的更新計算并不是僅僅合計所結合起來的兩個軟件功能(組)之間的調用,15而是依賴于組中各個軟件功能的位置 擇所要合計的調用。由此,依照本發 明的更新算法主要考慮定位在已經形成的軟件功能組的邊上的軟件功能之間的 調用次數。這些邊或這些邊的大小被定義為所謂的窗口,其中所述窗口具有用 于存儲軟件功能的存儲器的一頁(或一段)的最大尺寸。應該注意的是,所更 新的調用次數可能皿最初的最高調用次數。20 在第四步中,軟件功能A和B之間的最高調用次數確定軟件功能B結合到 新形成的組AC。由于軟件功能B和作為組EFH的一部分的軟件功能E共享4 次調用,并且軟件功能C (是組AC的一部分)和軟件功能H (是組EFH的一 部分)共享5次調用。因此,當合并組BAC和EFH時必須更新這兩組之間的 調用次數。25 圖5由此示出了更新計算的結果,即組BAC和EFH共享5次調用。圖6a到6e幫助理解如何計算此更新調用次數。如前面進一步提到的,在結合的軟件功能或軟件功能組并不和一個其它軟 件功能(或一個軟件功能組)共享調用的情況下,不需要計算更新的調用次數。 然而,在結合的軟件功能和/或軟件功能組與一個其它軟件功能或一個其它軟件30功能組共享調用的情況下,貝陏必要順序執行計算以獲得更新的調用次數。通常,在此情況下,基于軟件功能的尺寸和所涉及的軟件功能之間的調用次數來 執行更新計算。據此,主要是位于相關(要被結合)軟件功能組的邊緣而不是 中間某處的軟件功能被用作計算的基礎。在各個組中間的軟件功能之間的調用 幾乎從不使用。據此,使用所謂的窗口。窗口的大小等于或者小于用于存儲軟 5件功能的存儲器中的頁或段的大小。有益地,窗口的尺寸小于相應的頁或段的尺寸。在圖6a到6ej頓的例子中,假設頁的尺寸是8而窗口的尺寸比頁的尺 寸小2,即為6。組BAC和EFH可以以四種方式連接,即BAC-EFH, BAC-HFE, CAB-EFH或CAB-HFE。這意味著至少存在四種不同的放置窗口的方式。如在 CAB-EFH盼瞎況中經常存在多種方式,其中可能放置兩種不同的窗口。圖6aio示出了情況BAC-EFH,其中在軟件功能E和F上面放置了窗口 16 (大小為6), 具有附加尺寸6。在示出例子BAC-HFE的圖6b中,窗口 16 (大小為6)在兩 組的任何相鄰功能上面放置并由此被放置在中間。在示出例子CAB-EFH的圖 6c中,在軟件功能E和F上面也放置了窗口 16(大小為6),具有的附加尺寸6。 在示出第二種可能性CAB-EFH的圖6d中,在軟件功能A和B上面放置窗口15 16,具有附加尺寸6。在示出例子CAB-HFE的圖6e中,在軟件功能A和B上 面也放置窗口 16。因此,總是在所結合的組中的一個的一條iiJ:的兩個或多個 軟件功能上面放置窗口,其中軟件功能的合并尺寸小于或等于窗口的尺寸。而 且,可以同時在一個組的一個或多個軟件功能和另一個組的一個或多個軟件功 能上面放置窗口,由此軟件功能的合并尺寸小于或等于窗口的尺寸。如果這兩20種選擇是可4亍的,就在兩個組之間的中間內放置窗口,如圖6b顯示的。為了達到所更新的調用次數,對于要結合的兩個軟件功能組之間的每種可 能連接,計算窗口內和剛好在(直接相鄰于)窗口外的軟件功能組合的調用總 禾口。由此,不j頓一個組內的多個軟件功能之間的調用。因此,計算圖6a中軟 件功能CE、 CF和CH之間的調用,其給出(0+0+5)的總和5。在圖6b中,25僅僅計算軟件功能CH之間的調用次數,得到5次調用。在圖6c的例子中,計 算軟件功能BE、 BF和BH之間調用的總和,得到(4+0+0=) 4次調用。在圖 6d的例子中,計算軟件功能CE、 AE和BE之間的調用總和,得到數目為(0 +0+4=) 4次調用。在圖6e的例子中,計算軟件功能CH、 AH和BH之間的 調用次數的總和,得到(5+0+0=) 5次調用。然后,選擇最大結果作為軟件功30能組之間新的更新后的調用次數。在當前情況下,5次調用的結果獲得了 3次,因此結果為5次調用。應該注意的是,在要結合的組的中間中的軟件功育瀏于更新調用次數的計算是很少使用的。在當前例子中,不使用軟件功能A和F之 間的調用次數,其是6次,原因在于軟件功能A隱藏在C與B之間而軟件功能 F隱藏在軟件功能E和H之間。因此,無論如何,A和F都不會在存儲器的相 5同頁或段上結束。應該注意的是,以與確定更新的調用次數相同的方式,來確定關于一個軟 件功能以何種順序結合到一個軟件功能組中或者兩個軟件功能組如何連接到一 起的問題。回到圖6a到6e的例子,M31圖6a、 6b和6e的可能連接已經獲得了 軟件功能之間增加的調用次數的最高結果。在存在多個最高結果而不是單個最io高結果盼瞎況下,隨機選擇其中一個結果。在圖6b的例子中,可能性被隨m^ 擇,從而在第六步驟中組BAC和HFE被連接到一起形成新組BACHFE。之前, 在第五步驟中,共享第四最高調用次數(6次調用)的兩個軟件功能D和G被 連接到一起以形成新組DG。更應該注意的是,當計算更新調用次數時,從不使用歸屬于相同組的軟件15 功能的和,因此例如在圖6a中不考慮組合HF和HE。相^i也,在圖6d和6e 中不考慮組合CA和CB。換句話說,僅僅在歸屬于不同組或節點的軟件功能之 間調用的基礎上執行軟件功能之間的組合和調用總數。在第六步驟中,組DG被連接到組BACHFE。這個組合的結果在圖7中示 出。當DG被連接到組BACHFE時,應用關于圖6a到6e中戶Jfl早釋的相同算法。20以此,如果在軟件功能BA上面放置窗口,就必須比較結合DG和GD的可能 性。這里,組合DG獲得結果為3次調用。在組BACHFE的另一邊,在軟件功 能FE上面放置窗口,再次存在兩禾中可能性是DG和GD。這里,可能性DG得 到0次調用而可能性GD得到2次調用,最高結果3次調用導致組DG以此頓 序被加入到組BACHFE的決定,從而連續順序的軟件功能的最后組是如圖7所25示的DGBACHFE。這個最終的軟件功能組接著被存儲在次級存儲器中。IOT用于優化軟件功能的配置的方法,會灘實現M4、頁失效的次數20%到 40%。在RAM的大小方面,這意 在5MB的RAM中平滑運行的系統育, 等同于當使用本發明的方法時在4MB的RAM中平滑運行。應該注意的是,依 照本發明的方法可以方便地以軟件程序或計算機程序實現,如果其加載在計算30裝置的存儲器中,所述軟件禾聘或計算機程序適于執行上面所描述的方法步驟。
權利要求
1.一種用于優化計算裝置的存儲器中的軟件功能的配置的方法,包括步驟識別多個軟件功能中的每一個和所識別的軟件功能之間的各個調用次數;將共享最高調用次數的兩個軟件功能配置為相互鄰接以形成一個軟件功能組并且更新在所述新形成的組與其它軟件功能之間的調用次數,以及在下一輪計算中對于共享相應最高調用次數的軟件功能和/或軟件功能組重復所述配置步驟和更新步驟等,直到以連續順序配置了所有軟件功能,其中基于軟件功能的尺寸和軟件功能之間的調用次數來執行所述配置步驟和所述更新步驟。
2. 根據權利要求1的方法,其中在更新在新形成的軟件功能組與其它軟件功能之間或在新形成的軟件功能 組與其它軟件功能組之間的調用次數的步驟中,在新形成的組的軟件功能均和 一個其它軟件功能或軟件功能組共享多個調用的情況下,以所述新形成的組的 15軟件功能的尺寸和所述一個其它軟件功能或軟件功能組的尺寸為基礎來執行更新步驟。
3. 根據權利要求2的方法,其中在新形成的組的軟件功能均和一個其它軟件功能或軟件功能組共享多個調 用的所述情況下,所述更新步驟包括將反映所述存儲器的段尺寸的窗口尺寸與 20所述新形成的組的所述軟件功能的尺寸和所述一個其它軟件功能或軟件功能組 的所述軟件功能的尺寸進行比較。
4. 根據權利要求3的方法,其中作為所述比較步驟的結果,4頓所述新形成的組和/^J^述一個其它軟件功 能或軟件功能組的所述軟件功能的選定相鄰軟件功能,其中所i^定相鄰軟件 25功能具有小于所述窗口的所述尺寸的附加尺寸。
5. 根據權利要求4的方法,其中基于與所述新形成的組和所述一個其它軟件功能或軟件功能組的所述軟件 功能的所,定相鄰軟件功能相鄰的軟件功能之間共享的調用來計算更新的調 用次數,其中所述選定相鄰軟件功能具有小于所述窗口的尺寸的附加尺寸,由 30此在所述計算步驟中不{吏用在軟件功能組內共享的調用次數。
6. 根據權利要求1-5之一的方法,其中配置一個軟件功能組與一個軟件功能或者一個軟件功能組與另一個軟件功能組成為相互鄰接以形成一個新的軟件功能組的步驟包括將反映所述存儲器 的段尺寸的窗口尺寸和被配置為相互鄰接的所述軟件功能組或所述軟件功能中 5的所述軟件功能的尺寸進行比較的步驟。
7. 根據權利要求6的方法,其中作為所述比較步驟的結果,在所述配置步驟中僅僅使用所述新形成的組和所 述一個其它軟件功能或軟件功能組的所述軟件功能的選定相鄰軟件功能,其中 所 定相鄰軟件功能具有小于所述窗口的所述尺寸的附加尺寸。
8.根據權利要求7的方法,其中基于與所述軟件功能組的所述選定相鄰軟件功能相鄰的軟件功能之間共享 的調用,確定要被配置為相互鄰接的軟件功能,其中所述選定相鄰軟件功能具 有小于所述窗口的所述尺寸的附加尺寸,在所述確定步驟中不使用在軟件功能 組內共享的調用次數。
9. —種用于優化計算裝置的存儲器中的軟件功能的隨的軟件程序,當其被加載到計算裝置的存儲器中時,所述軟件,M^i行根據權利要求1到8之一所述的方法。
全文摘要
本發明涉及用于優化計算裝置的存儲器中的軟件功能的配置的方法和軟件程序。據此,本發明包括識別多個軟件功能中的每一個和所識別的軟件功能之間的各個調用次數;將共享最高調用次數的兩個軟件配置為相互鄰接以形成軟件功能組并且更新所述新形成的組和其它軟件功能之間的調用次數,并且在下一個計算步驟中對于共享各自最高調用次數的軟件功能和/或軟件功能組重復所述配置步驟和更新步驟等,直到依照連續順序配置了所有軟件功能,其中基于軟件功能的尺寸和軟件功能之間的調用次數執行所述配置步驟和更新步驟。
文檔編號G06F9/45GK101253479SQ200680031690
公開日2008年8月27日 申請日期2006年8月30日 優先權日2005年8月30日
發明者R·莫勒, T·里特佐 申請人:索尼愛立信移動通訊股份有限公司