本發(fā)明是有關(guān)于一種電腦系統(tǒng)的程序代碼載入方法,且特別是有關(guān)于一種電腦系統(tǒng)的應(yīng)用程序的程序代碼載入方法。
背景技術(shù):
隨著科技的發(fā)展,電腦系統(tǒng)已廣泛的被使用,在電腦系統(tǒng)的開機(jī)程序(boot procedure)中,處理器通常會依序載入及執(zhí)行開機(jī)程序(bootloader)、系統(tǒng)核心(kernel),并在開機(jī)程序之后載入及執(zhí)行特定應(yīng)用程序,特定應(yīng)用程序例如為框架應(yīng)用程序(framework application)。一般來說,應(yīng)用程序的數(shù)據(jù)量通常較大,因此應(yīng)用程序的程序代碼會被分段載入及執(zhí)行。在分段載入及執(zhí)行的過程中,處理器必須執(zhí)行完一段程序代碼后,才會得知要載入應(yīng)用程序的程序代碼中的哪一段,因此,無法借由預(yù)先載入要執(zhí)行的程序代碼來加快應(yīng)用程序的開啟速度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出一種應(yīng)用程序的程序代碼載入方法及應(yīng)用其方法的電腦系統(tǒng),其可在記錄模式下紀(jì)錄執(zhí)行應(yīng)用程序時(shí)程序代碼的載入順序,在重播模式下根據(jù)之前紀(jì)錄的程序代碼載入順序預(yù)先載入應(yīng)用程序的程序代碼,以加快應(yīng)用程序的開啟速度。
根據(jù)本發(fā)明的一方面,提出一種電腦系統(tǒng)。電腦系統(tǒng)包括一閃存、一動態(tài)隨機(jī)存取存儲器及一處理器。閃存儲存一應(yīng)用程序的程序代碼。處理器在一紀(jì)錄模式下載入應(yīng)用程序的程序代碼,包含借由執(zhí)行應(yīng)用程序的一第一段程序代碼,產(chǎn)生應(yīng)用程序的一第二段程序代碼的一起始位置及一數(shù)據(jù)長度,根據(jù)應(yīng)用程序的第二段程序代碼的起始地址及數(shù)據(jù)長度,將應(yīng)用程序的第二段程序代碼自閃存載入至動態(tài)隨機(jī)存取存儲器,并產(chǎn)生一重播檔,重播檔包含第二段程序 代碼的起始地址及數(shù)據(jù)長度,將重播檔儲存至閃存。處理器在一重播模式下載入應(yīng)用程序的程序代碼,根據(jù)重播檔的第二段程序代碼的起始地址及數(shù)據(jù)長度,將應(yīng)用程序的第二段程序代碼自閃存載入至動態(tài)隨機(jī)存取存儲器。
根據(jù)本發(fā)明的另一方面,提出一種應(yīng)用程序的程序代碼載入方法,適用于將一應(yīng)用程序的程序代碼儲存于一閃存的一電腦系統(tǒng)。首先,在一紀(jì)錄模式下載入應(yīng)用程序的程序代碼,包含借由執(zhí)行應(yīng)用程序的一第一段程序代碼,產(chǎn)生應(yīng)用程序的一第二段程序代碼的一起始地址及一數(shù)據(jù)長度。然后,根據(jù)應(yīng)用程序的第二段程序代碼的起始地址及數(shù)據(jù)長度,將應(yīng)用程序的第二段程序代碼自閃存載入至一動態(tài)隨機(jī)存取存儲器。接著,產(chǎn)生一重播檔,重播檔包含第二段程序代碼的起始地址及數(shù)據(jù)長度,并儲存重播檔至閃存。然后,在一重播模式下載入應(yīng)用程序的程序代碼,包含根據(jù)重播檔中的第二段程序代碼的起始地址及數(shù)據(jù)長度,將應(yīng)用程序的第二段程序代碼自閃存載入至動態(tài)隨機(jī)存取存儲器。
附圖說明
為讓本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,以下結(jié)合附圖對本發(fā)明的具體實(shí)施方式作詳細(xì)說明,其中:
圖1繪示本發(fā)明的電腦系統(tǒng)的一范例的示意圖。
圖2繪示本發(fā)明的應(yīng)用程序的程序代碼載入方法的一范例的流程圖。
圖3繪示繪示本發(fā)明的應(yīng)用程序的程序代碼載入方法的另一范例的流程圖。
圖4A-4C繪示應(yīng)用程序程序代碼在紀(jì)錄模式下載入動態(tài)隨機(jī)存取存儲器的一范例的示意圖。
圖5A-5C繪示應(yīng)用程序程序代碼在重播模式下載入動態(tài)隨機(jī)存取存儲器的一范例的示意圖。
圖中元件標(biāo)號說明如下:
100:電腦系統(tǒng)
110:閃存
120:動態(tài)隨機(jī)存取存儲器
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:區(qū)塊
具體實(shí)施方式
根據(jù)本發(fā)明的一范例,提供了一種能于開機(jī)程序中預(yù)先載入應(yīng)用程序的程序代碼以加快應(yīng)用程序開啟速度的電腦系統(tǒng)。請參考圖1,其繪示本發(fā)明的電腦系統(tǒng)的一范例的示意圖。電腦系統(tǒng)100包括閃存110、動態(tài)隨機(jī)存取存儲器120及處理器130。閃存110儲存開機(jī)程序、系統(tǒng)核心與應(yīng)用程序的程序代碼。當(dāng)電腦系統(tǒng)100的電源被開啟時(shí)(powered on),處理器130會依序?qū)㈤_機(jī)程序與系統(tǒng)核心的程序代碼自閃存110載入至動態(tài)隨機(jī)存取存儲器120,以執(zhí)行開機(jī)程序與系統(tǒng)核心,接著,處理器130將應(yīng)用程序的程序代碼自閃存110載入至動態(tài)隨機(jī)存取存儲器120,以執(zhí)行應(yīng)用程序,其中應(yīng)用程序可為框架應(yīng)用程序,例如安卓框架應(yīng)用程序。
請參考圖2,其繪示本發(fā)明的應(yīng)用程序的程序代碼載入方法的一范例的流程圖。在此范例中,在電腦系統(tǒng)100的某次開機(jī)程序中,處理器130會在一記錄模式(Record mode)下載入應(yīng)用程序的程序代碼來執(zhí)行(步驟S220),步驟S220更包括步驟S222-226;在電腦系統(tǒng)100的下一次開機(jī)程序中,處理器130會改為在一重播模式(Replay mode)下載入應(yīng)用程序的程序代碼來執(zhí)行(步驟S230),步驟S230更包括步驟S232。
在記錄模式下,處理器130執(zhí)行完開機(jī)程序與系統(tǒng)核心后,便自閃存110載入應(yīng)用程序的一段起始程序代碼PCi至動態(tài)隨機(jī)存取存儲器120來執(zhí)行。由于在處理器130未執(zhí)行完起始程序代碼PCi前,無法得知下一段要執(zhí)行的程序代碼為何,因此處理器130是在執(zhí)行完起始程序代碼PCi后,才能自閃存110 載入接下來要執(zhí)行的程序代碼PC1至動態(tài)隨機(jī)存取存儲器120來執(zhí)行;同理,處理器130是在執(zhí)行完程序代碼PC1后,才能自閃存110載入接下來要執(zhí)行的一段程序代碼PC2至動態(tài)隨機(jī)存取存儲器120來執(zhí)行。舉例來說,在處理器130執(zhí)行完起始程序代碼PCi后,便會產(chǎn)生接下來要執(zhí)行的一段程序代碼PC1的起始地址AD1(例如:0x20000000)及數(shù)據(jù)長度DL1(例如:100MB)(步驟S222);接著,處理器130便會根據(jù)程序代碼PC1的起始地址AD1及數(shù)據(jù)長度DL1自閃存110載入程序代碼PC1至動態(tài)隨機(jī)存取存儲器120來執(zhí)行(步驟S224)。相似地,在處理器130執(zhí)行完程序代碼PC1后,便會產(chǎn)生接下來要執(zhí)行的一段程序代碼PC2的起始地址AD2(例如:0x50000000)及數(shù)據(jù)長度DL2(例如:200MB);接著,處理器130便會根據(jù)程序代碼PC2的起始地址AD2及數(shù)據(jù)長度DL2自閃存110載入程序代碼PC2至動態(tài)隨機(jī)存取存儲器120來執(zhí)行。依此類推,處理器130可執(zhí)行應(yīng)用程序的多段程序代碼PC1-PCn。在產(chǎn)生程序代碼PC1的起始地址AD1及數(shù)據(jù)長度DL1后,處理器130便將程序代碼PC1的起始地址AD1及數(shù)據(jù)長度DL1寫入一重播檔(Replay file)中(步驟S226)。同理,在產(chǎn)生程序代碼PC2的起始地址AD2及數(shù)據(jù)長度DL2后,處理器130便將程序代碼PC2的起始地址AD2及數(shù)據(jù)長度DL2寫入重播檔中。依此類推,在處理器130執(zhí)行完應(yīng)用程序的程序代碼PC1-PCn后,重播檔內(nèi)應(yīng)包含了程序代碼PC1-PCn的起始地址AD1-ADn以及數(shù)據(jù)長度DL1-DLn。在一范例中,重播檔儲存的起始地址及數(shù)據(jù)長度的數(shù)量是固定的,也就是說,重播檔儲存的是應(yīng)用程序的多段程序代碼中的N段程序代碼(PC1-PCn)的起始地址PC1-PCn及數(shù)據(jù)長度DL1-DLn,而不是儲存應(yīng)用程序的所有的程序代碼區(qū)段的起始地址及數(shù)據(jù)長度。舉例來說,假設(shè)重播檔可儲存應(yīng)用程序的20段程序代碼,若程序代碼區(qū)段的數(shù)量為30個,則重播檔僅儲存20段程序代碼的起始地址及數(shù)據(jù)長度,而不儲存剩下的10段程序代碼的起始地址及數(shù)據(jù)長度。在一范例中,處理器130是將重播檔儲存在閃存110中,由于閃存在斷電后仍可保留儲存于其中的數(shù)據(jù),處理器130便可于下次開機(jī)時(shí)根據(jù)儲存于閃存110中的重播檔載入應(yīng)用程序的程序代碼。
在重播模式下,處理器130執(zhí)行完開機(jī)程序與系統(tǒng)核心后,便自閃存110載入應(yīng)用程序的一段起始程序代碼PCi至動態(tài)隨機(jī)存取存儲器120來執(zhí)行。與 記錄模式不同的是,處理器130可根據(jù)儲存于閃存110中的重播檔,預(yù)先自閃存110依序載入應(yīng)用程序的程序代碼至動態(tài)隨機(jī)存取存儲器120(步驟S232),以供處理器130之后執(zhí)行。舉例來說,處理器130可根據(jù)重播檔中程序代碼PC1的起始地址AD1及數(shù)據(jù)長度DL1,預(yù)先將程序代碼PC1自閃存110載入至動態(tài)隨機(jī)存取存儲器120;根據(jù)重播檔中程序代碼PC2的起始地址AD2及數(shù)據(jù)長度DL2,預(yù)先將程序代碼PC2自閃存110載入至動態(tài)隨機(jī)存取存儲器120;依此類推,處理器130可根據(jù)重播檔中程序代碼PC1-PCn的起始地址AD1-ADn及數(shù)據(jù)長度DL1-DLn,預(yù)先將程序代碼PC1-PCn自閃存110載入至動態(tài)隨機(jī)存取存儲器120。
在一范例中,處理器130可為一單核心處理器,并以分時(shí)多工的方式平行處理載入與執(zhí)行應(yīng)用程序的程序代碼。在另一范例中,處理器130可為一多核心處理器,分別以不同核心平行處理載入與執(zhí)行程序代碼的任務(wù)。舉例來說,當(dāng)一顆核心正在執(zhí)行起始程序代碼PCi時(shí),同時(shí)間另一顆核心根據(jù)重播檔中的程序代碼PC1的起始地址AD1及數(shù)據(jù)長度DL1,預(yù)先將程序代碼PC1自閃存110載入至動態(tài)隨機(jī)存取存儲器120。
如此一來,當(dāng)處理器130要執(zhí)行的程序代碼已預(yù)先載入動態(tài)隨機(jī)存取存儲器120時(shí),處理器130便可直接根據(jù)預(yù)先載入動態(tài)隨機(jī)存取存儲器120的程序代碼來執(zhí)行要執(zhí)行的程序代碼,進(jìn)而加快應(yīng)用程序的開啟速度。舉例來說,當(dāng)處理器130執(zhí)行完起始程序代碼PCi而得知接下來要執(zhí)行的程序代碼為程序代碼PC2,若程序代碼PC2已被預(yù)先載入動態(tài)隨機(jī)存取存儲器120,處理器130便可直接執(zhí)行預(yù)先載入動態(tài)隨機(jī)存取存儲器120中的程序代碼PC2,進(jìn)而加快應(yīng)用程序的開啟速度。
請參考圖3,其繪示本發(fā)明的應(yīng)用程序的程序代碼載入方法的另一范例的流程圖。在此范例中,在電腦系統(tǒng)100執(zhí)行開機(jī)程序后,處理器130會根據(jù)閃存110是否具有重播檔,決定在紀(jì)錄模式下(步驟S320)或在重播模式下(步驟S330)載入應(yīng)用程序的程序代碼;在重播模式下更包括步驟S341至S346。
在電腦系統(tǒng)100執(zhí)行開機(jī)程序后,處理器130檢查閃存110中是否具有重播檔(步驟S310)。舉例來說,重播檔會被儲存在閃存110中的一特定位置,當(dāng)電腦系統(tǒng)100執(zhí)行開機(jī)程序后,處理器130會檢查閃存110中的特定位置是否 具有重播檔。若閃存110中具有重播檔,則進(jìn)入步驟S330;若閃存110中不具有重播檔,則進(jìn)入步驟S320。
步驟S320中,處理器130會在記錄模式下載入應(yīng)用程序的程序代碼來執(zhí)行。步驟S320類似于步驟S220所述,在此不多贅述。
步驟S330中,處理器130會在重播模式下載入應(yīng)用程序的程序代碼來執(zhí)行。步驟S330更包括步驟S341至S346。
當(dāng)處理器130執(zhí)行完程序代碼(例如PC1)之后,便會得知接下來要執(zhí)行的一段程序代碼(例如PC2)。接著,處理器130便會確認(rèn)接下來要執(zhí)行的一段程序代碼PC2是否已被載入動態(tài)隨機(jī)存取存儲器120(步驟S341)。
若處理器130確認(rèn)程序代碼PC2已被預(yù)先載入動態(tài)隨機(jī)存取存儲器120,處理器130便可直接執(zhí)行預(yù)先載入動態(tài)隨機(jī)存取存儲器120中的程序代碼PC2(步驟S346)。
若處理器130確認(rèn)程序代碼PC2還未被預(yù)先載入動態(tài)隨機(jī)存取存儲器120,處理器130便將接下來要執(zhí)行的程序代碼PC2自閃存110載入至動態(tài)隨機(jī)存取存儲器120,并更新一缺失率(Miss rate)(步驟S342)。舉例來說,缺失率用以紀(jì)錄在重播模式下,處理器130無法在動態(tài)隨機(jī)存取存儲器120中找到接下來要執(zhí)行的程序代碼的次數(shù)。在一范例中,處理器130是通過一變數(shù)紀(jì)錄缺失率,當(dāng)處理器130無法在動態(tài)隨機(jī)存取存儲器120中找到接下來要執(zhí)行的程序代碼時(shí),處理器130更新缺失率,將缺失率的變數(shù)數(shù)值加1。
在處理器130更新缺失率之后,處理器130確認(rèn)缺失率否大于一預(yù)設(shè)值(步驟S343)。若缺失率大于預(yù)設(shè)值,則進(jìn)入步驟S344;若缺失率不大于預(yù)設(shè)值,則進(jìn)入步驟S345。其中預(yù)設(shè)值可由設(shè)計(jì)者自行設(shè)定。
若處理器130確認(rèn)缺失率大于預(yù)設(shè)值,則刪除儲存于閃存110中的重播檔(步驟S344)。舉例來說,缺失率大于預(yù)設(shè)值代表重播檔所記錄的信息誤差過大。因此,處理器130刪除重播檔,并使電腦系統(tǒng)100改以一般流程載入應(yīng)用程序的程序代碼,也就是,處理器130執(zhí)行完一段程序代碼后,才自閃存110載入接下來要執(zhí)行的一段程序代碼至動態(tài)隨機(jī)存取存儲器120來執(zhí)行,而不是在處理器130執(zhí)行完一段程序代碼后,確認(rèn)接下來要執(zhí)行的一段程序代碼是否已被載入動態(tài)隨機(jī)存取存儲器120。
若處理器130確認(rèn)缺失率不大于預(yù)設(shè)值,則不刪除儲存于閃存110中的重播檔(步驟S345)。舉例來說,缺失率不大于預(yù)設(shè)值代表重播檔所記錄的信息誤差在可容忍的范圍內(nèi)。因此,處理器130不刪除重播檔,并繼續(xù)根據(jù)重播檔自閃存110載入應(yīng)用程序的程序代碼至動態(tài)隨機(jī)存取存儲器120。
請參考圖4A至圖4C,其繪示應(yīng)用程序程序代碼在紀(jì)錄模式下載入動態(tài)隨機(jī)存取存儲器120的一范例的示意圖。在一范例中,動態(tài)隨機(jī)存取存儲器120包括一高速緩存地址空間(cache address space)122及應(yīng)用程序的一指定地址空間(allocated address space)121。高速緩存地址空間122劃分為多個區(qū)塊b0-bm。指定地址空間121劃分為多個區(qū)塊B0-BM。指定地址空間121為電腦系統(tǒng)100指定用來儲存要被處理器130執(zhí)行的應(yīng)用程序程序代碼的地址空間。高速緩存地址空間122則為電腦系統(tǒng)100指定用來儲存處理器130根據(jù)重播檔預(yù)先載入的應(yīng)用程序程序代碼的地址空間。當(dāng)處理器130要執(zhí)行根據(jù)重播檔被預(yù)先載入的應(yīng)用程序程序代碼時(shí),處理器130會將要執(zhí)行的程序代碼自高速緩存地址空間122復(fù)制至該應(yīng)用程序的指定地址空間121來執(zhí)行。
請參考圖4A至圖4C。在此范例中,在處理器130執(zhí)行完開機(jī)程序與系統(tǒng)核心后,應(yīng)用程序的起始程序代碼PCi會自閃存110被載入至動態(tài)隨機(jī)存取存儲器120的指定地址空間121。舉例來說,如圖4A所示,起始程序代碼PCi被載入至區(qū)塊B0。接著,當(dāng)處理器130執(zhí)行完起始程序代碼PCi之后,接下來要執(zhí)行的應(yīng)用程序程序代碼PC1,會自閃存110被載入至動態(tài)隨機(jī)存取存儲器120的指定地址空間121。值得注意的是,每次當(dāng)處理器130執(zhí)行完起始程序代碼PCi之后,接下要執(zhí)行的應(yīng)用程序程序代碼PC1不一定為應(yīng)用程序的同一段程序代碼,也就是說,當(dāng)處理器130執(zhí)行完起始程序代碼PCi之后,接下要執(zhí)行的應(yīng)用程序程序代碼可能為應(yīng)用程序的第1段程序代碼,也有可能是應(yīng)用程序的第2段程序代碼。因此,本范例中所指的程序代碼PC1指的是執(zhí)行完起始程序代碼PCi之后要執(zhí)行的程序代碼區(qū)段。舉例來說,如圖4B所示,假設(shè)處理器130執(zhí)行完起始程序代碼PCi之后,接下要執(zhí)行的應(yīng)用程序程序代碼PC1為應(yīng)用程序的第M段程序代碼,則程序代碼PC1被載入至區(qū)塊BM。依此類推,應(yīng)用程序的程序代碼PC1-PCn在紀(jì)錄模式下,均是由閃存110被載入至動態(tài)隨機(jī)存取存儲器120的指定地址空間121。舉例來說,如圖4C所示(未全部繪示), 假設(shè)處理器130執(zhí)行完程序代碼PC1之后,接下要執(zhí)行的應(yīng)用程序程序代碼PC2為應(yīng)用程序的第2段程序代碼,則程序代碼PC2被載入至區(qū)塊B2;假設(shè)處理器130執(zhí)行完程序代碼PCn-1之后,接下要執(zhí)行的應(yīng)用程序程序代碼PCn為應(yīng)用程序的第1段程序代碼,程序代碼PCn被載入至區(qū)塊B1。亦即,在本范例中,起始程序代碼PCi會被載入至區(qū)塊B0,而程序代碼PC1-PCn是依據(jù)應(yīng)用程序的程序代碼區(qū)段順序被載入至指定地址空間121對應(yīng)的區(qū)塊。舉例來說,若程序代碼PC1為應(yīng)用程序的第2段程序代碼,則程序代碼PC1被載入至區(qū)塊B2;若程序代碼PC2為應(yīng)用程序的第1段程序代碼,則程序代碼PC2被載入至區(qū)塊B1,并不以圖4A-4C所繪示的情況為限。
請參考圖5A至圖5C,其繪示應(yīng)用程序程序代碼在重播模式下載入動態(tài)隨機(jī)存取存儲器120的一范例的示意圖。在此范例中,在處理器130執(zhí)行完開機(jī)程序與系統(tǒng)核心后,應(yīng)用程序的起始程序代碼PCi會自閃存110被載入至動態(tài)隨機(jī)存取存儲器120的指定地址空間121來由處理器130執(zhí)行,而對應(yīng)于重播檔的程序代碼PC1-PCn則依序自閃存110被載入至動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122,如5A圖所示。舉例來說,起始程序代碼PCi被載入至指定地址空間121的區(qū)塊B0,程序代碼PC1被載入至高速緩存地址空間122的區(qū)塊b0,程序代碼PC2被載入至高速緩存地址空間122的區(qū)塊b1,程序代碼PC3被載入至高速緩存地址空間122的區(qū)塊b2。在圖5A中,程序代碼PC1-PC3已被載入至動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122,程序代碼PC4-PCn尚未被載入至動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122。
接著,處理器130執(zhí)行完起始程序代碼PCi而產(chǎn)生接下來要執(zhí)行的程序代碼后,處理器130便會確認(rèn)接下來要執(zhí)行的程序代碼是否已被載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122。若確認(rèn)接下來要執(zhí)行的程序代碼已載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122,處理器130便會自動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122復(fù)制接下來要執(zhí)行的程序代碼至動態(tài)隨機(jī)存取存儲器120中應(yīng)用程序的指定地址空間121來執(zhí)行;若確認(rèn)接下來要執(zhí)行的程序代碼尚未載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122,處理器130便會自閃存110載入接下來要執(zhí)行的程序代碼至動態(tài)隨機(jī)存取存儲器120中應(yīng)用程序的指定地址空間121來執(zhí)行。
舉例來說,在當(dāng)確認(rèn)接下來要執(zhí)行的程序代碼是否已被載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122時(shí),應(yīng)用程序的程序代碼PC1-PC3已被載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122,而應(yīng)用程序的程序代碼PC4-PCn尚未被載入動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122的情況下,若接下來要執(zhí)行的程序代碼為PC2,處理器130便會自動態(tài)隨機(jī)存取存儲器120的高速緩存地址空間122復(fù)制程序代碼PC2至動態(tài)隨機(jī)存取存儲器120中應(yīng)用程序的指定地址空間121來執(zhí)行,如5B圖所示。在圖5B中,以虛線箭頭表示程序代碼PC2由高速緩存地址空間122的區(qū)塊b1被復(fù)制至指定地址空間121的區(qū)塊B1。若接下來要執(zhí)行的程序代碼為PC4,處理器130便會自閃存110載入程序代碼PC4至動態(tài)隨機(jī)存取存儲器120中應(yīng)用程序的指定地址空間121來執(zhí)行,如5C圖所示。在圖5C中,以虛線箭頭表示程序代碼PC4由閃存110被載入至指定地址空間121的區(qū)塊BM。
如此一來,根據(jù)本發(fā)明的上述實(shí)施例,提供在兩種模式下分別啟動應(yīng)用程序,在記錄模式下,通過重播檔記錄應(yīng)用程序的區(qū)段程序代碼讀取時(shí)的起始地址及數(shù)據(jù)長度。在重播模式下,當(dāng)處理器正在執(zhí)行已讀取至動態(tài)隨機(jī)存取存儲器的應(yīng)用程序的區(qū)段程序代碼時(shí),可通過重播檔所記錄的應(yīng)用程序的區(qū)段程序代碼的起始地址及數(shù)據(jù)長度,將還未讀取至動態(tài)隨機(jī)存取存儲器的應(yīng)用程序的區(qū)段程序代碼或是后續(xù)會用到的應(yīng)用程序的區(qū)段程序代碼,預(yù)先從閃存持續(xù)讀取并載入至動態(tài)隨機(jī)存取存儲器。如此,閃存不用等到處理器知道下一個要用到的應(yīng)用程序的區(qū)段程序代碼后,才進(jìn)行讀取,因此,可加快應(yīng)用程序的開啟速度。
雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。