TWI588742B - 應用程式的程式碼載入方法及應用其方法的電腦系統 - Google Patents
應用程式的程式碼載入方法及應用其方法的電腦系統 Download PDFInfo
- Publication number
- TWI588742B TWI588742B TW104124270A TW104124270A TWI588742B TW I588742 B TWI588742 B TW I588742B TW 104124270 A TW104124270 A TW 104124270A TW 104124270 A TW104124270 A TW 104124270A TW I588742 B TWI588742 B TW I588742B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- application
- loaded
- replay
- address space
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本發明是有關於一種電腦系統的程式碼載入方法,且特別是有關於一種電腦系統的應用程式的程式碼載入方法。
隨著科技的發展,電腦系統已廣泛的被使用,在電腦系統的開機程序(boot procedure)中,處理器通常會依序載入及執行開機程式(bootloader)、系統核心(kernel),並在開機程序之後載入及執行特定應用程式,特定應用程式例如為框架應用程式(framework application)。一般來說,應用程式的資料量通常較大,因此應用程式的程式碼會被分段載入及執行。在分段載入及執行的過程中,處理器必須執行完一段程式碼後,才會得知要載入應用程式的程式碼中的哪一段,因此,無法藉由預先載入要執行的程式碼來加快應用程式的開啟速度。
本發明係有關於一種應用程式的程式碼載入方法及應用其方法的電腦系統,其可在記錄模式下紀錄執行應用程式時程式碼的載入順序,在重播模式下根據之前紀錄的程式碼載入順序預先載入應用程式的程式碼,以加快應用程式的開啟速度。
根據本發明之一方面,提出一種電腦系統。電腦系統包括一快閃記憶體、一動態隨機存取記憶體及一處理器。快閃記憶體儲存一應用程式之程式碼。處理器在一紀錄模式下載入應用程式之程式碼,包含藉由執行應用程式之一第一段程式碼,產生應用程式之一第二段程式碼之一起始位置及一資料長度,根據應用程式之第二段程式碼之起始位址及資料長度,將應用程式之第二段程式碼自快閃記憶體載入至動態隨機存取記憶體,並產生一重播檔,重播檔包含第二段程式碼之起始位址及資料長度,將重播檔儲存至快閃記憶體。處理器在一重播模式下載入應用程式之程式碼,根據重播檔之第二段程式碼之起始位址及資料長度,將應用程式之第二段程式碼自快閃記憶體載入至動態隨機存取記憶體。
根據本發明之另一方面,提出一種應用程式的程式碼載入方法,適用於將一應用程式之程式碼儲存於一快閃記憶體之一電腦系統。首先,在一紀錄模式下載入應用程式之程式碼,包含藉由執行應用程式之一第一段程式碼,產生應用程式之一第二段程式碼之一起始位址及一資料長度。然後,根據應用程式之
第二段程式碼之起始位址及資料長度,將應用程式之第二段程式碼自快閃記憶體載入至一動態隨機存取記憶體。接著,產生一重播檔,重播檔包含第二段程式碼之起始位址及資料長度,並儲存重播檔至快閃記憶體。然後,在一重播模式下載入應用程式之程式碼,包含根據重播檔中之第二段程式碼之起始位址及資料長度,將應用程式之第二段程式碼自快閃記憶體載入至動態隨機存取記憶體。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
100‧‧‧電腦系統
110‧‧‧快閃記憶體
120‧‧‧動態隨機存取記憶體
121‧‧‧指定位址空間
122‧‧‧快取位址空間
130‧‧‧處理器
S220、S222、S224、S226、S230、S232、S310、S320、S330、S341、S342、S343、S344、S345、S346‧‧‧流程步驟
PCi‧‧‧起始程式碼
PC1~PC4‧‧‧程式碼
B0~BM、b0~bm‧‧‧區塊
第1圖繪示本發明之電腦系統之一範例之示意圖。
第2圖繪示本發明之應用程式的程式碼載入方法之一範例之流程圖。
第3圖繪示繪示本發明之應用程式的程式碼載入方法之另一範例的流程圖。
第4A-4C圖繪示應用程式程式碼在紀錄模式下載入動態隨機存取記憶體之一範例的示意圖。
第5A-5C圖繪示應用程式程式碼在重播模式下載入動態隨機存取記憶體之一範例的示意圖。
根據本發明之一範例,提供了一種能於開機程序中預先載入應用程式之程式碼以加快應用程式開啟速度的電腦系統。請參考第1圖,其繪示本發明之電腦系統之一範例之示意圖。電腦系統100包括快閃記憶體110、動態隨機存取記憶體120及處理器130。快閃記憶體110儲存開機程式、系統核心與應用程式之程式碼。當電腦系統100之電源被開啟時(powered on),處理器130會依序將開機程式與系統核心的程式碼自快閃記憶體110載入至動態隨機存取記憶體120,以執行開機程式與系統核心,接著,處理器130將應用程式的程式碼自快閃記憶體110載入至動態隨機存取記憶體120,以執行應用程式,其中應用程式可為框架應用程式,例如安卓框架應用程式。
請參考第2圖,其繪示本發明之應用程式的程式碼載入方法之一範例的流程圖。在此範例中,在電腦系統100的某次開機程序中,處理器130會在一記錄模式(Record mode)下載入應用程式的程式碼來執行(步驟S220),步驟S220更包括步驟S222-226;在電腦系統100的下一次開機程序中,處理器130會改為在一重播模式(Replay mode)下載入應用程式的程式碼來執行(步驟S230),步驟S230更包括步驟S232。
在記錄模式下,處理器130執行完開機程式與系統核心後,便自快閃記憶體110載入應用程式的一段起始程式碼PCi至動態隨機存取記憶體120來執行。由於在處理器130未執行完起始程式碼PCi前,無法得知下一段要執行的程式碼為何,因此
處理器130係在執行完起始程式碼PCi後,才能自快閃記憶體110載入接下來要執行的程式碼PC1至動態隨機存取記憶體120來執行;同理,處理器130係在執行完程式碼PC1後,才能自快閃記憶體110載入接下來要執行的一段程式碼PC2至動態隨機存取記憶體120來執行。舉例來說,在處理器130執行完起始程式碼PCi後,便會產生接下來要執行的一段程式碼PC1的起始位址AD1(例如:0x2000 0000)及資料長度DL1(例如:100MB)(步驟S222);接著,處理器130便會根據程式碼PC1的起始位址AD1及資料長度DL1自快閃記憶體110載入程式碼PC1至動態隨機存取記憶體120來執行(步驟S224)。相似地,在處理器130執行完程式碼PC1後,便會產生接下來要執行的一段程式碼PC2的起始位址AD2(例如:0x5000 0000)及資料長度DL2(例如:200MB);接著,處理器130便會根據程式碼PC2的起始位址AD2及資料長度DL2自快閃記憶體110載入程式碼PC2至動態隨機存取記憶體120來執行。依此類推,處理器130可執行應用程式的複數段程式碼PC1-PCn。在產生程式碼PC1的起始位址AD1及資料長度DL1後,處理器130便將程式碼PC1的起始位址AD1及資料長度DL1寫入一重播檔(Replay file)中(步驟S226)。同理,在產生程式碼PC2的起始位址AD2及資料長度DL2後,處理器130便將程式碼PC2的起始位址AD2及資料長度DL2寫入重播檔中。依此類推,在處理器130執行完應用程式的程式碼PC1-PCn後,重播檔內應包含了程式碼PC1-PCn的起始位址AD1-ADn以及資料長度
DL1-DLn。在一範例中,重播檔儲存的起始位址及資料長度的數量是固定的,也就是說,重播檔儲存的是應用程式的複數段程式碼中的N段程式碼(PC1-PCn)的起始位址PC1-PCn及資料長度DL1-DLn,而不是儲存應用程式的所有的程式碼區段之起始位址及資料長度。舉例來說,假設重播檔可儲存應用程式的20段程式碼,若程式碼區段的數量為30個,則重播檔僅儲存20段程式碼的起始位址及資料長度,而不儲存剩下的10段程式碼的起始位址及資料長度。在一範例中,處理器130係將重播檔儲存在快閃記憶體110中,由於快閃記憶體在斷電後仍可保留儲存於其中的資料,處理器130便可於下次開機時根據儲存於快閃記憶體110中之重播檔載入應用程式的程式碼。
在重播模式下,處理器130執行完開機程式與系統核心後,便自快閃記憶體110載入應用程式的一段起始程式碼PCi至動態隨機存取記憶體120來執行。與記錄模式不同的是,處理器130可根據儲存於快閃記憶體110中之重播檔,預先自快閃記憶體110依序載入應用程式的程式碼至動態隨機存取記憶體120(步驟S232),以供處理器130之後執行。舉例來說,處理器130可根據重播檔中程式碼PC1的起始位址AD1及資料長度DL1,預先將程式碼PC1自快閃記憶體110載入至動態隨機存取記憶體120;根據重播檔中程式碼PC2的起始位址AD2及資料長度DL2,預先將程式碼PC2自快閃記憶體110載入至動態隨機存取記憶體120;依此類推,處理器130可根據重播檔中程式碼
PC1-PCn的起始位址AD1-ADn及資料長度DL1-DLn,預先將程式碼PC1-PCn自快閃記憶體110載入至動態隨機存取記憶體120。
在一範例中,處理器130可為一單核心處理器,並以分時多工的方式平行處理載入與執行應用程式的程式碼。在另一範例中,處理器130可為一多核心處理器,分別以不同核心平行處理載入與執行程式碼的任務。舉例來說,當一顆核心正在執行起始程式碼PCi時,同時間另一顆核心根據重播檔中之程式碼PC1的起始位址AD1及資料長度DL1,預先將程式碼PC1自快閃記憶體110載入至動態隨機存取記憶體120。
如此一來,當處理器130要執行的程式碼已預先載入動態隨機存取記憶體120時,處理器130便可直接根據預先載入動態隨機存取記憶體120的程式碼來執行要執行的程式碼,進而加快應用程式的開啟速度。舉例來說,當處理器130執行完起始程式碼PCi而得知接下來要執行的程式碼為程式碼PC2,若程式碼PC2已被預先載入動態隨機存取記憶體120,處理器130便可直接執行預先載入動態隨機存取記憶體120中的程式碼PC2,進而加快應用程式的開啟速度。
請參考第3圖,其繪示本發明之應用程式的程式碼載入方法之另一範例的流程圖。在此範例中,在電腦系統100執行開機程序後,處理器130會根據快閃記憶體110是否具有重播檔,決定在紀錄模式下(步驟S320)或在重播模式下(步驟S330)載入應用程式之程式碼;在重播模式下更包括步驟S341至S346。
在電腦系統100執行開機程序後,處理器130檢查快閃記憶體110中是否具有重播檔(步驟S310)。舉例來說,重播檔會被儲存在快閃記憶體110中之一特定位置,當電腦系統100執行開機程序後,處理器130會檢查快閃記憶體110中之特定位置是否具有重播檔。若快閃記憶體110中具有重播檔,則進入步驟S330;若快閃記憶體110中不具有重播檔,則進入步驟S320。
步驟S320中,處理器130會在記錄模式下載入應用程式的程式碼來執行。步驟S320類似於步驟S220所述,在此不多贅述。
步驟S330中,處理器130會在重播模式下載入應用程式的程式碼來執行。步驟S330更包括步驟S341至S346。
當處理器130執行完程式碼(例如PC1)之後,便會得知接下來要執行的一段程式碼(例如PC2)。接著,處理器130便會確認接下來要執行的一段程式碼PC2是否已被載入動態隨機存取記憶體120(步驟S341)。
若處理器130確認程式碼PC2已被預先載入動態隨機存取記憶體120,處理器130便可直接執行預先載入動態隨機存取記憶體120中的程式碼PC2(步驟S346)。
若處理器130確認程式碼PC2還未被預先載入動態隨機存取記憶體120,處理器130便將接下來要執行的程式碼PC2自快閃記憶體110載入至動態隨機存取記憶體120,並更新一缺失率(Miss rate)(步驟S342)。舉例來說,缺失率用以紀錄在重播
模式下,處理器130無法在動態隨機存取記憶體120中找到接下來要執行的程式碼的次數。在一範例中,處理器130係透過一變數紀錄缺失率,當處理器130無法在動態隨機存取記憶體120中找到接下來要執行的程式碼時,處理器130更新缺失率,將缺失率的變數數值加1。
在處理器130更新缺失率之後,處理器130確認缺失率否大於一預設值(步驟S343)。若缺失率大於預設值,則進入步驟S344;若缺失率不大於預設值,則進入步驟S345。其中預設值可由設計者自行設定。
若處理器130確認缺失率大於預設值,則刪除儲存於快閃記憶體110中之重播檔(步驟S344)。舉例來說,缺失率大於預設值代表重播檔所記錄之資訊誤差過大。因此,處理器130刪除重播檔,並使電腦系統100改以一般流程載入應用程式之程式碼,也就是,處理器130執行完一段程式碼後,才自快閃記憶體110載入接下來要執行的一段程式碼至動態隨機存取記憶體120來執行,而不是在處理器130執行完一段程式碼後,確認接下來要執行的一段程式碼是否已被載入動態隨機存取記憶體120。
若處理器130確認缺失率不大於預設值,則不刪除儲存於快閃記憶體110中之重播檔(步驟S345)。舉例來說,缺失率不大於預設值代表重播檔所記錄之資訊誤差在可容忍的範圍內。因此,處理器130不刪除重播檔,並繼續根據重播檔自快閃
記憶體110載入應用程式的程式碼至動態隨機存取記憶體120。
請參考第4A至第4C圖,其繪示應用程式程式碼在紀錄模式下載入動態隨機存取記憶體120之一範例的示意圖。在一範例中,動態隨機存取記憶體120包括一快取位址空間(cache address space)122及應用程式之一指定位址空間(allocated address space)121。快取位址空間122劃分為多個區塊b0-bm。指定位址空間121劃分為多個區塊B0-BM。指定位址空間121為電腦系統100指定用來儲存要被處理器130執行之應用程式程式碼的位址空間。快取位址空間122則為電腦系統100指定用來儲存處理器130根據重播檔預先載入之應用程式程式碼的位址空間。當處理器130要執行根據重播檔被預先載入的應用程式程式碼時,處理器130會將要執行的程式碼自快取位址空間122複製至該應用程式的指定位址空間121來執行。
請參考第4A至第4C圖。在此範例中,在處理器130執行完開機程式與系統核心後,應用程式的起始程式碼PCi會自快閃記憶體110被載入至動態隨機存取記憶體120之指定位址空間121。舉例來說,如第4A圖所示,起始程式碼PCi被載入至區塊B0。接著,當處理器130執行完起始程式碼PCi之後,接下來要執行的應用程式程式碼PC1,會自快閃記憶體110被載入至動態隨機存取記憶體120之指定位址空間121。值得注意的是,每次當處理器130執行完起始程式碼PCi之後,接下要執行的應用程式程式碼PC1不一定為應用程式的同一段程式碼,也就是
說,當處理器130執行完起始程式碼PCi之後,接下要執行的應用程式程式碼可能為應用程式的第1段程式碼,也有可能是應用程式的第2段程式碼。因此,本範例中所指之程式碼PC1指的是執行完起始程式碼PCi之後要執行的程式碼區段。舉例來說,如第4B圖所示,假設處理器130執行完起始程式碼PCi之後,接下要執行的應用程式程式碼PC1為應用程式的第M段程式碼,則程式碼PC1被載入至區塊BM。依此類推,應用程式的程式碼PC1-PCn在紀錄模式下,均係由快閃記憶體110被載入至動態隨機存取記憶體120之指定位址空間121。舉例來說,如第4C圖所示(未全部繪示),假設處理器130執行完程式碼PC1之後,接下要執行的應用程式程式碼PC2為應用程式的第2段程式碼,則程式碼PC2被載入至區塊B2;假設處理器130執行完程式碼PCn-1之後,接下要執行的應用程式程式碼PCn為應用程式的第1段程式碼,程式碼PCn被載入至區塊B1。亦即,在本範例中,起始程式碼PCi會被載入至區塊B0,而程式碼PC1-PCn係依據應用程式的程式碼區段順序被載入至指定位址空間121對應的區塊。舉例來說,若程式碼PC1為應用程式的第2段程式碼,則程式碼PC1被載入至區塊B2;若程式碼PC2為應用程式的第1段程式碼,則程式碼PC2被載入至區塊B1,並不以第4A-4C圖所繪示之情況為限。
請參考第5A至第5C圖,其繪示應用程式程式碼在重播模式下載入動態隨機存取記憶體120之一範例的示意圖。在
此範例中,在處理器130執行完開機程式與系統核心後,應用程式的起始程式碼PCi會自快閃記憶體110被載入至動態隨機存取記憶體120之指定位址空間121來由處理器130執行,而對應於重播檔的程式碼PC1-PCn則依序自快閃記憶體110被載入至動態隨機存取記憶體120之快取位址空間122,如5A圖所示。舉例來說,起始程式碼PCi被載入至指定位址空間121之區塊B0,程式碼PC1被載入至快取位址空間122之區塊b0,程式碼PC2被載入至快取位址空間122之區塊b1,程式碼PC3被載入至快取位址空間122之區塊b2。在第5A圖中,程式碼PC1-PC3已被載入至動態隨機存取記憶體120之快取位址空間122,程式碼PC4-PCn尚未被載入至動態隨機存取記憶體120之快取位址空間122。
接著,處理器130執行完起始程式碼PCi而產生接下來要執行的程式碼後,處理器130便會確認接下來要執行的程式碼是否已被載入動態隨機存取記憶體120之快取位址空間122。若確認接下來要執行的程式碼已載入動態隨機存取記憶體120之快取位址空間122,處理器130便會自動態隨機存取記憶體120之快取位址空間122複製接下來要執行的程式碼至動態隨機存取記憶體120中應用程式之指定位址空間121來執行;若確認接下來要執行的程式碼尚未載入動態隨機存取記憶體120之快取位址空間122,處理器130便會自快閃記憶體110載入接下來要執行的程式碼至動態隨機存取記憶體120中應用程式之指定位址空間121來執行。
舉例來說,在當確認接下來要執行的程式碼是否已被載入動態隨機存取記憶體120之快取位址空間122時,應用程式之程式碼PC1-PC3已被載入動態隨機存取記憶體120之快取位址空間122,而應用程式之程式碼PC4-PCn尚未被載入動態隨機存取記憶體120之快取位址空間122的情況下,若接下來要執行的程式碼為PC2,處理器130便會自動態隨機存取記憶體120之快取位址空間122複製程式碼PC2至動態隨機存取記憶體120中應用程式之指定位址空間121來執行,如5B圖所示。在第5B圖中,以虛線箭頭表示程式碼PC2由快取位址空間122之區塊b1被複製至指定位址空間121之區塊B1。若接下來要執行的程式碼為PC4,處理器130便會自快閃記憶體110載入程式碼PC4至動態隨機存取記憶體120中應用程式之指定位址空間121來執行,如5C圖所示。在第5C圖中,以虛線箭頭表示程式碼PC4由快閃記憶體110被載入至指定位址空間121之區塊BM。
如此一來,根據本發明之上述實施例,提供在兩種模式下分別啟動應用程式,在記錄模式下,透過重播檔記錄應用程式的區段程式碼讀取時的起始位址及資料長度。在重播模式下,當處理器正在執行已讀取至動態隨機存取記憶體的應用程式的區段程式碼時,可透過重播檔所記錄的應用程式的區段程式碼的起始位址及資料長度,將還未讀取至動態隨機存取記憶體的應用程式的區段程式碼或是後續會用到的應用程式的區段程式碼,預先從快閃記憶體持續讀取並載入至動態隨機存取記憶體。
如此,快閃記憶體不用等到處理器知道下一個要用到的應用程式的區段程式碼後,才進行讀取,因此,可加快應用程式的開啟速度。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S220、S222、S224、S226、S230、S232‧‧‧流程步驟
Claims (14)
- 一種預先載入應用程式程式碼之電腦系統,包括:一快閃記憶體,儲存一應用程式之程式碼;一動態隨機存取記憶體;以及一處理器,用以執行下列方法:在一紀錄模式下載入該應用程式之程式碼,包含:藉由執行該應用程式之一第一段程式碼,產生該應用程式之一第二段程式碼之一起始位址(initial address)及一資料長度(data length);根據該應用程式之該第二段程式碼之該起始位址及該資料長度,將該應用程式之該第二段程式碼自一快閃記憶體載入至一動態隨機存取記憶體;以及記錄該第二段程式碼之該起始位址及該資料長度以產生一重播檔(replay file),並儲存該重播檔至該快閃記憶體;以及在一重播模式下載入該應用程式之程式碼,包含:根據該重播檔中之該第二段程式碼之該起始位址及該資料長度,將該應用程式之該第二段程式碼自該快閃記憶體載入至該動態隨機存取記憶體,而不載入該重播檔。
- 如申請專利範圍第1項所述之電腦系統,其中:該動態隨機存取記憶體更包括一快取位置空間(cache address space)及該應用程式之一指定位址空間(allocated address space),其中該快取位址空間不同於該指定位址空間; 在該紀錄模式下,該第二段程式碼係被載入至該應用程式之該指定位址空間;在該重播模式下,該第二段程式碼係根據該重播檔,被載入至該快取位址空間。
- 如申請專利範圍第2項所述之電腦系統,其中該處理器所執行的方法更包含:在該重播模式下載入該應用程式之程式碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;以及確認接下來要執行該應用程式的該段程式碼已被載入該動態隨機存取記憶體後,將接下來要執行該應用程式的該段程式碼,自該快取位址空間複製至該應用程式之該指定位址空間。
- 如申請專利範圍第2項所述之電腦系統,其中該處理器所執行的方法更包含:在該重播模式下載入該應用程式之程式碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;以及確認接下來要執行該應用程式的該段程式碼尚未被載入該動態隨機存取記憶體後,將接下來要執行該應用程式的該段程式碼自該快閃記憶體載入至該應用程式之該指定位址空間。
- 如申請專利範圍第1項所述之電腦系統,其中該處理器所執行的方法更包含: 在該重播模式下載入該應用程式之程式碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;確認接下來要執行該應用程式的該段程式碼尚未被載入該動態隨機存取記憶體後,更新一缺失率;確認該缺失率否大於一預設值;以及確認該缺失率大於該預設值後,刪除儲存於該快閃記憶體中之該重播檔。
- 如申請專利範圍第5項所述之電腦系統,其中該處理器所執行的方法更包含:於執行一開機程序(boot procedure)後,根據該快閃記憶體是否具有重播檔,決定在該紀錄模式下或在該重播模式下載入該應用程式之程式碼。
- 如申請專利範圍第6項所述之電腦系統,其中該應用程式係為一框架應用程式(framework application)。
- 一種預先載入應用程式程式碼的方法,適用於將一應用程式之程式碼儲存於一快閃記憶體之一電腦系統,該方法包括:在一紀錄模式下載入該應用程式之程式碼,包含:藉由執行該應用程式之一第一段程式碼,產生該應用程式之一第二段程式碼之一起始位址(initial address)及一資料長度(data length);根據該應用程式之該第二段程式碼之該起始位址及該資料 長度,將該應用程式之該第二段程式碼自一快閃記憶體載入至一動態隨機存取記憶體;以及記錄該第二段程式碼之該起始位址及該資料長度以產生一重播檔(replay file),並儲存該重播檔至該快閃記憶體;以及在一重播模式下載入該應用程式之程式碼,包含:根據該重播檔中之該第二段程式碼之該起始位址及該資料長度,將該應用程式之該第二段程式碼自該快閃記憶體載入至該動態隨機存取記憶體,而不載入該重播檔。
- 如申請專利範圍第8項所述之方法,其中:在該紀錄模式下,該第二段程式碼係被載入至該應用程式在該動態隨機存取記憶體之一指定位址空間(allocated address space);以及在該重播模式下,該第二段程式碼係被載入至該動態隨機存取記憶體之一快取位址空間(cache address space),其中該快取位址空間不同於該應用程式之該指定位址空間。
- 如申請專利範圍第9項所述之方法,其中在該重播模式下載入該應用程式之程數碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;確認接下來要執行該應用程式的該段程式碼已被載入該動態隨機存取記憶體後,將接下來要執行該應用程式的該段程式碼,自該快取位址空間複製至該應用程式的該指定位址空間。
- 如申請專利範圍第9項所述之方法,其中在該重播模式下載入該應用程式之程式碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;確認接下來要執行該應用程式的該段程式碼尚未被載入該動態隨機存取記憶體後,將接下來要執行該應用程式的該段程式碼,自該快閃記憶體載入至該應用程式之該指定位址空間。
- 如申請專利範圍第8項所述之方法,其中在該重播模式下載入該應用程式之程式碼更包含:確認接下來要執行該應用程式的一段程式碼是否已被載入該動態隨機存取記憶體;確認接下來要執行該應用程式的該段程式碼尚未被載入該動態隨機存取記憶體後,更新一缺失率;確認該缺失率否大於一預設值;確認該缺失率大於該預設值後,刪除儲存於該快閃記憶體中之該重播檔。
- 如申請專利範圍第12項所述之方法,更包含:於執行一開機程序(boot procedure)後,根據該快閃記憶體是否具有重播檔,決定在該紀錄模式下或在該重播模式下載入該應用程式之程式碼。
- 如申請專利範圍第13項所述之方法,其中該應用程式係為一框架應用程式(framework application)。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124270A TWI588742B (zh) | 2015-07-27 | 2015-07-27 | 應用程式的程式碼載入方法及應用其方法的電腦系統 |
US14/840,443 US9715398B2 (en) | 2015-07-27 | 2015-08-31 | Program code loading method of application and computing system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124270A TWI588742B (zh) | 2015-07-27 | 2015-07-27 | 應用程式的程式碼載入方法及應用其方法的電腦系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201704993A TW201704993A (zh) | 2017-02-01 |
TWI588742B true TWI588742B (zh) | 2017-06-21 |
Family
ID=57882530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104124270A TWI588742B (zh) | 2015-07-27 | 2015-07-27 | 應用程式的程式碼載入方法及應用其方法的電腦系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9715398B2 (zh) |
TW (1) | TWI588742B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426223B (zh) * | 2015-12-25 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 应用加载方法和装置 |
JP2019142095A (ja) * | 2018-02-20 | 2019-08-29 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
WO2019183829A1 (zh) * | 2018-03-28 | 2019-10-03 | 深圳市大疆创新科技有限公司 | 系统芯片内存储介质空间应用方法、装置及无人机 |
US11402227B2 (en) * | 2018-08-14 | 2022-08-02 | GM Global Technology Operations LLC | Dynamic route adjustment |
US20230129363A1 (en) * | 2020-08-07 | 2023-04-27 | Micron Technology, Inc. | Memory overlay using a host memory buffer |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1302016A (zh) * | 1999-12-02 | 2001-07-04 | 三星电子株式会社 | 快速启动装置和方法 |
TW200951820A (en) * | 2008-06-06 | 2009-12-16 | Asustek Comp Inc | Computer management system to speed up executing application program and method thereof |
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN101556547B (zh) * | 2009-05-25 | 2012-01-25 | 芯通科技(成都)有限公司 | 一种安全远程升级嵌入式Linux内核的方法及装置 |
TW201339838A (zh) * | 2012-03-16 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 虛擬機記憶體管理系統及方法 |
CN103473067A (zh) * | 2013-09-23 | 2013-12-25 | 福建三元达软件有限公司 | 嵌入式Linux分区与数据还原方法、系统及系统开发方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013192A1 (en) * | 2007-07-03 | 2009-01-08 | Ping-Sheng Chen | Integrity check method applied to electronic device, and related circuit |
TWI460657B (zh) * | 2008-09-05 | 2014-11-11 | Asustek Comp Inc | 更新與修復基本輸入輸出系統的方法 |
-
2015
- 2015-07-27 TW TW104124270A patent/TWI588742B/zh not_active IP Right Cessation
- 2015-08-31 US US14/840,443 patent/US9715398B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1302016A (zh) * | 1999-12-02 | 2001-07-04 | 三星电子株式会社 | 快速启动装置和方法 |
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
TW200951820A (en) * | 2008-06-06 | 2009-12-16 | Asustek Comp Inc | Computer management system to speed up executing application program and method thereof |
CN101556547B (zh) * | 2009-05-25 | 2012-01-25 | 芯通科技(成都)有限公司 | 一种安全远程升级嵌入式Linux内核的方法及装置 |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
TW201339838A (zh) * | 2012-03-16 | 2013-10-01 | Hon Hai Prec Ind Co Ltd | 虛擬機記憶體管理系統及方法 |
CN103473067A (zh) * | 2013-09-23 | 2013-12-25 | 福建三元达软件有限公司 | 嵌入式Linux分区与数据还原方法、系统及系统开发方法 |
Non-Patent Citations (2)
Title |
---|
2009年6月30日 * |
網路文獻作者名稱:"tzeng015",著作名稱:u-boot逐行分析 ,網址:"http://blog.xuite.net/tzeng015/twblog/113272073-u-boot%E9%80%90%E8%A1%8C%E5%88%86%E6%9E%90+(important)" * |
Also Published As
Publication number | Publication date |
---|---|
TW201704993A (zh) | 2017-02-01 |
US9715398B2 (en) | 2017-07-25 |
US20170031696A1 (en) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI588742B (zh) | 應用程式的程式碼載入方法及應用其方法的電腦系統 | |
US11137911B2 (en) | Fast restart of applications using shared memory | |
EP2979189B1 (en) | Storing data from cache lines to main memory based on memory addresses | |
US11818224B2 (en) | On demand resources | |
TWI388983B (zh) | 用於促進快閃記憶體系統之快速喚起的方法及系統 | |
US9880824B2 (en) | On demand resources | |
CN113064604B (zh) | 一种固件升级方法和装置 | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
US10318201B2 (en) | Flash interface for processing datasets | |
JPH0756818A (ja) | コンピュータのシステム記憶装置を試験する方法および装置 | |
CN111722800A (zh) | 一种分布式存储系统row快照实现方法及相关组件 | |
CN109189480B (zh) | 文件系统启动方法及装置 | |
TW201502782A (zh) | 非依電性記憶體中之作業系統啟動加載器之快取技術 | |
JP7355876B2 (ja) | プログラム起動方法及び機器、記憶媒体 | |
CN112115097B (zh) | 运行日志信息的访问方法及存储设备 | |
GB2518671A (en) | Multiple Processor System | |
KR102160527B1 (ko) | 스냅샷을 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스 | |
US20240345640A1 (en) | Method for resetting processor and computer device | |
JP6648567B2 (ja) | データ更新制御装置、データ更新制御方法、及び、データ更新制御プログラム | |
CN107025144B (zh) | 用于写入以及读取数据集的方法 | |
CN116661879A (zh) | 一种处理器、处理器启动方法及启动装置 | |
Cvetanović et al. | Restart Optimization for Transactional Memory with Lazy Conflict Detection | |
JP5668518B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN110647364A (zh) | 一种内存操作系统的数据库信息持久化的方法及装置 | |
JP2008191745A (ja) | 演算システム,演算装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |