明的充分揭露及可實(shí)施性的前提下,以下方法發(fā)明的說(shuō)明將著重于步驟內(nèi)容而非硬件。
[0019]請(qǐng)參閱圖1,其系本發(fā)明的嵌入式裝置的一實(shí)施例的示意圖。嵌入式裝置100包含處理單元110、系統(tǒng)存儲(chǔ)器120、存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130、功能模塊140、模塊存儲(chǔ)器145、功能模塊150以及模塊存儲(chǔ)器155。處理單元110負(fù)責(zé)執(zhí)行嵌入式裝置100的操作系統(tǒng),與操作系統(tǒng)相關(guān)的程序代碼與數(shù)據(jù)儲(chǔ)存在系統(tǒng)存儲(chǔ)器120中。處理單元110藉由存儲(chǔ)器管理單元(memory management unit,MMU)(未繪示)將系統(tǒng)存儲(chǔ)器120的物理地址(physicaladdress)轉(zhuǎn)換為邏輯地址(logical memory)后,再利用邏輯地址來(lái)存取系統(tǒng)存儲(chǔ)器120。存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130耦接處理單元110及系統(tǒng)存儲(chǔ)器120,用來(lái)管理及驅(qū)動(dòng)嵌入式裝置100的存儲(chǔ)器硬盤(pán)。處理單元110能夠透過(guò)操作系統(tǒng)操作存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130的驅(qū)動(dòng)程序來(lái)存取存儲(chǔ)器硬盤(pán)。功能模塊140及150負(fù)責(zé)完成嵌入式系統(tǒng)100的特定功能,例如嵌入式系統(tǒng)是一個(gè)智能型電視,具有收看電視與瀏覽網(wǎng)絡(luò)的功能,則功能模塊140可能是負(fù)責(zé)將電視訊號(hào)解調(diào)變的模塊,而功能模塊150可能是負(fù)責(zé)網(wǎng)絡(luò)功能的模塊。功能模塊140及150有各自的模塊存儲(chǔ)器145及155,模塊存儲(chǔ)器145儲(chǔ)存功能模塊140在工作時(shí)所需的程序代碼與數(shù)據(jù),模塊存儲(chǔ)器155儲(chǔ)存功能模塊150在工作時(shí)所需的程序代碼與數(shù)據(jù)。模塊存儲(chǔ)器145及155由多個(gè)物理地址連續(xù)的存儲(chǔ)器單元組成,而且系統(tǒng)存儲(chǔ)器120與模塊存儲(chǔ)器145及155可以對(duì)應(yīng)同一硬件存儲(chǔ)器模塊的不同區(qū)段,或是各自對(duì)應(yīng)獨(dú)立的硬件存儲(chǔ)器模塊。模塊存儲(chǔ)器145及155為功能模塊140及150專(zhuān)屬的存儲(chǔ)器,功能模塊140及150存取其各自的模塊存儲(chǔ)器145及155時(shí)不需透過(guò)處理單元110,而是以直接存儲(chǔ)器存取(direct memory access,DMA)的方式基于模塊存儲(chǔ)器145及155的物理地址來(lái)對(duì)其存取。模塊存儲(chǔ)器145及155無(wú)法被嵌入式系統(tǒng)100的處理單元110直接使用,也就是說(shuō)處理單元110在執(zhí)行嵌入式裝置100的操作系統(tǒng)時(shí),即使系統(tǒng)存儲(chǔ)器120已被進(jìn)程與數(shù)據(jù)占滿(mǎn),處理單元110仍不會(huì)使用模塊存儲(chǔ)器145及155來(lái)直接儲(chǔ)存與進(jìn)程有關(guān)的程序代碼與數(shù)據(jù)。
[0020]在本發(fā)明的一個(gè)較佳的實(shí)施例中,當(dāng)功能模塊140及150不在工作狀態(tài)時(shí)(即在閑置狀態(tài)時(shí)),模塊存儲(chǔ)器145及155也處于閑置狀態(tài),處理單元110依據(jù)功能模塊140及150的工作狀態(tài)或閑置狀態(tài),通知存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130更新或管理其分頁(yè)表,以適時(shí)地將模塊存儲(chǔ)器145及/或模塊存儲(chǔ)器155仿真成存儲(chǔ)器硬盤(pán)。當(dāng)功能模塊140及150皆為閑置狀態(tài)時(shí),存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130以同一個(gè)驅(qū)動(dòng)程序并依據(jù)同一個(gè)分頁(yè)表來(lái)驅(qū)動(dòng)模塊存儲(chǔ)器145及155,將兩者仿真成嵌入式裝置100的存儲(chǔ)器硬盤(pán),因此處理單元110透過(guò)操作系統(tǒng)來(lái)操作存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130的驅(qū)動(dòng)程序,來(lái)對(duì)模塊存儲(chǔ)器145及155所仿真成的存儲(chǔ)器硬盤(pán)進(jìn)行存取時(shí),只會(huì)見(jiàn)到單一且連續(xù)的存儲(chǔ)器硬盤(pán),也就是說(shuō)對(duì)嵌入式裝置100的操作系統(tǒng)而言,模塊存儲(chǔ)器145及155所仿真成的存儲(chǔ)器硬盤(pán)為單一的硬件設(shè)備,操作系統(tǒng)只要對(duì)其所對(duì)應(yīng)的設(shè)備檔進(jìn)行操作,便可存取該存儲(chǔ)器硬盤(pán)。請(qǐng)參閱圖2,其系本發(fā)明的一實(shí)施例的分頁(yè)表與模塊存儲(chǔ)器的對(duì)應(yīng)圖。分頁(yè)表210包含多個(gè)分頁(yè)211,用來(lái)提供存儲(chǔ)器硬盤(pán)的邏輯地址與物理地址的對(duì)應(yīng)關(guān)系,因此處理單元110對(duì)存儲(chǔ)器硬盤(pán)做存取時(shí),實(shí)際上是透過(guò)存儲(chǔ)器管理單元基于邏輯地址進(jìn)行操作。假設(shè)模塊存儲(chǔ)器145的儲(chǔ)存空間為20MB (約2x107個(gè)字節(jié)),且以4kB (約4x103個(gè)字節(jié))為一個(gè)分頁(yè),則模塊存儲(chǔ)器145將對(duì)應(yīng)到5000個(gè)分頁(yè)211,而處理單元110的存儲(chǔ)器管理單元便依據(jù)分頁(yè)211來(lái)存取儲(chǔ)存于模塊存儲(chǔ)器145中的數(shù)據(jù)。因?yàn)榇鎯?chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130以同一個(gè)驅(qū)動(dòng)程序及同一個(gè)分頁(yè)表210來(lái)存取模塊存儲(chǔ)器145及155,因此對(duì)嵌入式裝置100的操作系統(tǒng)而言,模塊存儲(chǔ)器145及155所貢獻(xiàn)的存儲(chǔ)器硬盤(pán)為連續(xù)且單一的儲(chǔ)存單元,在使用上便不會(huì)有破碎的儲(chǔ)存空間,而不會(huì)造成儲(chǔ)存空間的浪費(fèi)。
[0021]當(dāng)嵌入式裝置100接收到外部的控制訊號(hào)而改變其操作模式時(shí),例如智能型電視由原本利用高分辨率多媒體接口(High Definit1n Multimedia Interface, HDMI)從外接的DVD播放器接收影音訊號(hào),切換為網(wǎng)絡(luò)瀏覽模式,則原本閑置中的網(wǎng)絡(luò)功能模塊的模塊存儲(chǔ)器155必須進(jìn)入工作狀態(tài),此時(shí)存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130將模塊存儲(chǔ)器155中的數(shù)據(jù)搬移至模塊存儲(chǔ)器145,并且改變分頁(yè)表210的內(nèi)容,將原本指向模塊存儲(chǔ)器155的分頁(yè)改為指向模塊存儲(chǔ)器145,更新后的分頁(yè)表如圖3所示。如此一來(lái),對(duì)操作系統(tǒng)而言,只是存儲(chǔ)器硬盤(pán)的儲(chǔ)存空間發(fā)生變化(由原本的模塊存儲(chǔ)器145及155所組成,改為單獨(dú)由模塊存儲(chǔ)器145所組成),并不影響其對(duì)存儲(chǔ)器硬盤(pán)的存取。同理,當(dāng)嵌入式系統(tǒng)100有其它的模塊存儲(chǔ)器由工作狀態(tài)變?yōu)殚e置狀態(tài)時(shí),也可以立即藉由更新分頁(yè)表210或310的方式使新的閑置中的模塊存儲(chǔ)器加入存儲(chǔ)器硬盤(pán),使由模塊存儲(chǔ)器仿真而成的存儲(chǔ)器硬盤(pán)空間變大。也就是說(shuō),當(dāng)模塊存儲(chǔ)器加入/離開(kāi)存儲(chǔ)器硬盤(pán)時(shí),存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130毋需對(duì)操作系統(tǒng)掛載/卸載存儲(chǔ)器硬盤(pán),而只需修改分頁(yè)表,大大地增加嵌入式系統(tǒng)100的操作彈性。
[0022]上述的存儲(chǔ)器硬盤(pán)可以作為操作系統(tǒng)執(zhí)行調(diào)換程序時(shí)的輔助儲(chǔ)存空間,也就是當(dāng)系統(tǒng)存儲(chǔ)器120已滿(mǎn)時(shí),操作系統(tǒng)可以將閑置中的進(jìn)程搬移至存儲(chǔ)器硬盤(pán)中,以空出更多的空間給正在執(zhí)行中的進(jìn)程。當(dāng)操作系統(tǒng)需要更多的系統(tǒng)存儲(chǔ)器120時(shí),在調(diào)換程序中處理單元110會(huì)先將準(zhǔn)備存入存儲(chǔ)器硬盤(pán)的數(shù)據(jù)先予以壓縮,從而可以將更多的數(shù)據(jù)自系統(tǒng)存儲(chǔ)器120調(diào)換至存儲(chǔ)器硬盤(pán)。在本實(shí)施例中,當(dāng)模塊存儲(chǔ)器155儲(chǔ)存壓縮的數(shù)據(jù),而且功能模塊150由閑置狀態(tài)進(jìn)入工作狀態(tài)時(shí),因?yàn)椴恍枰獙⒋鎯?chǔ)器硬盤(pán)卸載,所以存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130不需處理將模塊存儲(chǔ)器155中的壓縮數(shù)據(jù)解壓縮、存入系統(tǒng)存儲(chǔ)器120、再將數(shù)據(jù)重新壓縮后存回模塊存儲(chǔ)器145等復(fù)雜的程序,上述的過(guò)程將導(dǎo)致系統(tǒng)存儲(chǔ)器120受到大量數(shù)據(jù)的沖擊;相對(duì)的,存儲(chǔ)器硬盤(pán)驅(qū)動(dòng)模塊130只要將模塊存儲(chǔ)器155中的壓縮數(shù)據(jù)直接搬移至模塊存儲(chǔ)器145中,再更新分頁(yè)表,使原本指向模塊存儲(chǔ)器155的分頁(yè)改為指向模塊存儲(chǔ)器145即可,如圖3的分頁(yè)表310與模塊存儲(chǔ)器145的對(duì)應(yīng)關(guān)系所示。此時(shí)模塊存儲(chǔ)器155已轉(zhuǎn)為工作狀態(tài),而存儲(chǔ)器硬盤(pán)僅包含模塊存儲(chǔ)器145。
[0023]在另一個(gè)較佳的實(shí)施例中,存儲(chǔ)器硬盤(pán)可以由系統(tǒng)存儲(chǔ)器與模塊存儲(chǔ)器共同組成。請(qǐng)參閱圖4,其系本發(fā)明另一實(shí)施例的分頁(yè)表與存儲(chǔ)器的對(duì)應(yīng)圖。分頁(yè)表410有多個(gè)分頁(yè)411,一部分對(duì)應(yīng)系統(tǒng)存儲(chǔ)器120,一部分對(duì)應(yīng)模塊存儲(chǔ)器145。更詳細(xì)地說(shuō),系統(tǒng)存儲(chǔ)器120可以區(qū)分為儲(chǔ)存操作系