TWI533202B - 嵌入式裝置及其記憶體管理方法 - Google Patents

嵌入式裝置及其記憶體管理方法 Download PDF

Info

Publication number
TWI533202B
TWI533202B TW103143000A TW103143000A TWI533202B TW I533202 B TWI533202 B TW I533202B TW 103143000 A TW103143000 A TW 103143000A TW 103143000 A TW103143000 A TW 103143000A TW I533202 B TWI533202 B TW I533202B
Authority
TW
Taiwan
Prior art keywords
memory
hardware
address
indirect
embedded device
Prior art date
Application number
TW103143000A
Other languages
English (en)
Other versions
TW201621632A (zh
Inventor
黃建興
Original Assignee
晨星半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 晨星半導體股份有限公司 filed Critical 晨星半導體股份有限公司
Priority to TW103143000A priority Critical patent/TWI533202B/zh
Priority to US14/963,426 priority patent/US9892055B2/en
Application granted granted Critical
Publication of TWI533202B publication Critical patent/TWI533202B/zh
Publication of TW201621632A publication Critical patent/TW201621632A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

嵌入式裝置及其記憶體管理方法
本發明是關於嵌入式裝置及其記憶體管理方法,尤其是關於利用第二級記憶體管理單元(memory management unit,以下簡稱MMU)使嵌入式裝置不需要重新啟動即能夠動態擴充記憶體之嵌入式裝置及其記憶體管理方法。
請參閱圖1,其係習知嵌入式裝置之功能方塊圖。嵌入式裝置100包含處理單元110、MMU 115、功能模組120、系統記憶體130及硬體記憶體140。嵌入式裝置100為具有有限的硬體資源,並且提供特定功能之硬體裝置,例如電視、手機、多媒體播放器等裝置。較高階的嵌入式裝置100通常載有作業系統,以處理更複雜的程序。處理單元110配合系統記憶體130以運行該作業系統,一般而言,處理單元110透過其內建的MMU 115來存取系統記憶體130。MMU 115的主要功能為將作業系統所使用的虛擬記憶體位址(或稱為邏輯位址)映射至系統記憶體130的實體記憶體位址,具有使處理單元110能更有效率地使用系統記憶體130以及提高作業系統的安全性等好處。MMU 115的動作原理為本技術領域具有通常知識者所 熟知,故不贅述。嵌入式裝置100的功能模組120主要為嵌入式裝置100提供特定的功能,舉例來說,假設嵌入式裝置100為電視,則功能模組120可能是影像解碼電路,又例如嵌入式裝置100為手機,則功能模組120可能是射頻收發電路。一般而言,功能模組120在運作時需要一塊連續的實體記憶體,而系統記憶體130在作業系統運行一段時間後,其記憶體空間有很大的機率變得破碎,也就是無法再取得一塊連續的實體記憶體位址供功能模組120使用。因此,功能模組120通常有自己專屬的硬體記憶體140,硬體記憶體140與系統記憶體130相互獨立,當功能模組120運作時,便可藉由存取硬體記憶體140來達成其功能。然而在習知的嵌入式裝置100中,當功能模組120結束其工作而進入閒置狀態時,硬體記憶體140也同樣進入閒置狀態,造成硬體資源的浪費。對硬體資源相當寶貴的嵌入式裝置100而言,如果能於硬體記憶體140閒置時做更妥善的運用,且不影響後續功能模組120由閒置狀態回到工作狀態時對硬體記憶體140的存取,則可進一步提高嵌入式裝置100的效能。
鑑於先前技術之不足,本發明之一目的在於提供一種嵌入式裝置及其記憶體管理方法,以更有效率地使用記憶體。
本發明揭露了一種嵌入式裝置之記憶體管理方法,該嵌入式裝置包含一系統記憶體及一硬體記憶體,並且嵌入式裝置之作業系統基於一虛擬記憶體位址運作,該方法包含:利用一第一記憶體管理單元將該虛擬記憶體位址映射至一間接記憶體位址;以及利用一第二記憶體管理 單元將該間接記憶體位址映射至該硬體記憶體之實體位址及選擇性地映射至該系統記憶體之實體位址。
本發明另揭露了一種嵌入式裝置,其作業系統基於一虛擬記憶體位址運作,該嵌入式裝置包含:一系統記憶體;一硬體記憶體;一第一記憶體管理單元,用來將該虛擬記憶體位址映射至一間接記憶體位址;以及一第二記憶體管理單元,耦接該系統記憶體及該硬體記憶體,用來將該間接記憶體位址映射至該硬體記憶體之實體位址及選擇性地映射至該系統記憶體之實體位址,使嵌入式裝置之作業系統得以存取該硬體記憶體。
本發明之嵌入式裝置及其記憶體管理方法能夠將閒置中的硬體記憶體交給作業系統使用,以暫時擴充嵌入式裝置的系統記憶體。相較於習知技術,本發明的嵌入式裝置及其記憶體管理方法依據硬體記憶體的使用情形動態地將其交由作業系統使用,並且當硬體記憶體所屬的功能模組由閒置狀態回到工作狀態時,快速地將硬體記憶體歸還給功能模組,不影響功能模組的後續操作。並且上述的借用及歸還硬體記憶體的過程,嵌入式裝置不需要重新啟動。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
100、200‧‧‧嵌入式裝置
110、210‧‧‧處理單元
115、215、250‧‧‧MMU
120、220‧‧‧功能模組
130、230‧‧‧系統記憶體
140、240、610‧‧‧硬體記憶體
310‧‧‧虛擬記憶體位址
320‧‧‧間接記憶體位址
330‧‧‧系統記憶體的實體位址
340‧‧‧硬體記憶體的實體位址
S1005~S1090‧‧‧步驟
〔圖1〕為習知嵌入式裝置之功能方塊圖; 〔圖2〕為本發明嵌入式裝置之一實施例的功能方塊圖;〔圖3〕為本發明之第一級MMU、第二級MMU與記憶體位址之映射關係的示意圖;〔圖4〕為本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體位址之映射關係之一實施例的示意圖;〔圖5a〕及〔圖5b〕為本發明之第一級MMU的分頁表與第二級MMU的分頁表之一實施例的示意圖;〔圖6〕為本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體位址之映射關係之另一實施例的示意圖;〔圖7a〕及〔圖7b〕為本發明之第一級MMU的分頁表與第二級MMU的分頁表之另一實施例的示意圖;〔圖8〕為本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體位址之映射關係之另一實施例的示意圖;〔圖9a〕及〔圖9b〕為本發明之第一級MMU的分頁表與第二級MMU的分頁表之另一實施例的示意圖;以及〔圖10〕為本發明之嵌入式裝置之記憶體管理方法之一實施例的流程圖。
以下說明內容之技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本發明之揭露內容包含嵌入式裝置及其記憶體管理方法,能夠有效率地運用嵌入式裝置中閒置的硬體記憶體。該裝置與方法可應用於具有第二級MMU的嵌入式裝置,在實施為可能的前提下,本技術領域具有通常知識者能夠依本說明書之揭露內容來選擇等效之元件或步驟來實現本發明,亦即本發明之實施並不限於後敘之實施例。
請參閱圖2,其係本發明嵌入式裝置之一實施例的功能方塊圖。嵌入式裝置200包含處理單元210、MMU 215、功能模組220、系統記憶體230、硬體記憶體240及MMU 250。處理單元210、功能模組220、系統記憶體230及硬體記憶體240的功能與圖1中具有相同名稱之元件具有相同或相似的功能,故不再贅述。相較於習知的嵌入式裝置100,本發明的嵌入式裝置200更包含MMU 250,其介於處理單元210與硬體記憶體240及系統記憶體230之間,更詳細地說,其介於MMU 215與硬體記憶體240及系統記憶體230之間,透過匯流排耦接處理單元210、系統記憶體230及硬體記憶體240,用來提供作業系統的虛擬記憶體位址與系統記憶體230及/或硬體記憶體240的實體位址之間另一層的映射機制。請注意,在其他的實施例中,處理單元本身可能包含兩個MMU,此種高階的處理單元的目的是為了在一個虛擬機器(virtual machine,VM)中同時支援兩個以上的作業系統,其中一個MMU(第一級MMU)負責將某一作業系統的虛擬記憶體位址與間接記憶體位址(indirect physical address)映射,另一個MMU(第二級MMU)負責將間接記憶體位址映射至虛擬機器所管理的記憶體的實體位址。
請參閱圖3,其係本發明之兩級MMU與記憶體位址之映射關係的示意圖。MMU 215(第一級MMU)除了負責直接將系統記憶體130的實體位址330映射至嵌入式裝置200的作業系統所使用的虛擬記憶體位址310,也負責在虛擬記憶體位址310與間接記憶體位址320之間做映射,MMU 250(第二級MMU)負責在間接記憶體位址320與系統記憶體的實體位址330及硬體記憶體的實體位址340之間做映射。如果嵌入式裝置200所使用的作業系統為Linux的架構,其作業系統程式及應用程式中會散佈許多頁框號碼(page frame number,pfn),頁框號碼是用來協助作業系統程式及應用程式取得當前系統記憶體的實體位址。在習知的嵌入式裝置100中,因為虛擬記憶體位址透過MMU 115直接映射至系統記憶體的實體位址,當MMU 115改變分頁表(page table)使虛擬記憶體位址與系統記憶體的實體位址的映射狀況改變時,所有相關聯的頁框號碼必須全部隨之改變,這對系統是重大的負擔。因此本發明使用MMU 250在虛擬記憶體位址310與系統記憶體的實體位址330及硬體記憶體的實體位址340之間做另一層映射,使硬體記憶體的實體位址340及/或系統記憶體的實體位址330的部分先映射至間接記憶體位址320,再映射至虛擬記憶體位址310,所以當本發明藉由改變MMU 250的分頁表來將間接記憶體位址320映射至不同的硬體記憶體的實體位址340及/或系統記憶體的實體位址330時,虛擬記憶體位址310與間接記憶體位址320的映射關係將不受影響,嵌入式裝置200的作業系統可以省去修改頁框號碼之不便。
請參閱圖4,其係本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體(包含系統記憶體及硬體記憶體)位址之映射關係之一實 施例的示意圖。以下的實施例假設嵌入式裝置200的作業系統的虛擬記憶體位址310直接或間接映射至實體記憶體位址的0~129(此處的數字以十進位表示,僅用於示意記憶體的相對大小,不代表其絕對位址,並且實作上電腦程式中的記憶體位址可能以其他形式表示,大小可能亦不相同),表示最佳的情況下作業系統可使用130單位的記憶體資源。由圖4可以明瞭,系統記憶體230及硬體記憶體240可以是同一塊記憶體,僅是在系統開機時分別被分配作為系統記憶體230與硬體記憶體240,其具有不同的記憶體位址。圖4的虛擬記憶體位址310可以分為兩部分,第一部分(位址的0~99)固定映射至系統記憶體230,第二部分(位址的100~129)映射至間接記憶體位址320,並且間接記憶體位址320視硬體記憶體240的工作或閒置狀況,動態改變映射至系統記憶體230及/或硬體記憶體240的位址。請注意,上述第一部分及第二部分的位址僅用於示意,並非限制本發明,第一部分及第二部分可能有其他的配置方式,例如第二部分為虛擬記憶體位址50~79,其餘的位址則為第一部分。在圖4的實施例中,硬體記憶體240的實體記憶體位址為100~129,大小為30單位,當其對應之功能模組220處於閒置狀態時,可以暫時給作業系統使用。MMU 250將間接記憶體位址320全部映射至硬體記憶體240,也就是說在圖4的實施例中,嵌入式裝置200之額外的記憶體資源全部由單一的硬體記憶體240提供。請參閱圖5a及圖5b,其係本發明之第一級MMU215的分頁表與第二級MMU250的分頁表之一實施例的示意圖。圖5a中,虛擬記憶體位址310的第一部分映射至實體記憶體位址0~99(即系統記憶體230),第二部分則映射至間接記憶體位址0~29(即整個間接 記憶體320);圖5b中,間接記憶體位址0~29全部映射至實體記憶體位址100~129的部分(即整個硬體記憶體240)。
請參閱圖6,其係本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體位址之映射關係之另一實施例的示意圖。在本實施例中,嵌入式裝置200更包含硬體記憶體610,而硬體記憶體240的大小為10單位,硬體記憶體610的大小為20單位。當硬體記憶體240所屬的功能模組(即功能模組220)及硬體記憶體610所屬的功能模組(未繪示)同時處於閒置狀態時,MMU 250將間接記憶體位址320映射至硬體記憶體240及硬體記憶體610,也就是說在圖6的實施例中,嵌入式裝置200之額外的記憶體資源由硬體記憶體240及硬體記憶體610提供。請參閱圖7a及圖7b,其係本發明之第一級MMU215的分頁表與第二級MMU250的分頁表之另一實施例的示意圖。圖7a中,虛擬記憶體位址310的第一部分映射至實體記憶體位址0~99的部分(即系統記憶體230),第二部分則映射至間接記憶體位址320;圖7b中,間接記憶體位址320的位址0~9映射至實體記憶體位址100~109的部分(即整個硬體記憶體240),位址10~29映射至實體記憶體位址110~129的部分(即整個硬體記憶體610)。
請參閱圖8,其係本發明之虛擬記憶體位址、間接記憶體位址與實體記憶體位址之映射關係之另一實施例的示意圖。承上一實施例,在本實施例中,當硬體記憶體240所屬的功能模組(即功能模組220)由閒置狀態轉為工作狀態時,硬體記憶體240必須歸還給功能模組220使用,因此間接記憶體位址320中,原本映射至硬體記憶體240的部分必須改由系統記憶體230提供,而原本映射至硬體記憶體610的部分則不變。實作 上,當上述的狀況發生時,嵌入式裝置200的作業系統先透過系統呼叫(例如在Linux系統中透過函數malloc或其等效之指令)在系統記憶體230上取得大小為10單位的未使用記憶體(例如圖8中所示系統記憶體位址75~84的部分),並且MMU 250將此段記憶體位址映射至間接記憶體位址320中原本對應硬體記憶體240的部分,之後處理單元210將原本儲存於硬體記憶體240中的資料移動至此新取得的10單位的未使用記憶體中,硬體記憶體240便可歸還功能模組220使用。也就是說,在此實施例中,嵌入式裝置200之系統的額外記憶體係由硬體記憶體240及系統記憶體230提供,因此實際上嵌入式裝置200可用的系統記憶體的大小為100+30-10=120單位。請注意,在這個實施例中,記憶體位址75~84的部分係為一連續記憶體,然而實作上,也可以是自不連續的記憶體取得總共10單位的未使用記憶體。請參閱圖9a及圖9b,其係本發明之第一級MMU215的分頁表與第二級MMU250的分頁表之另一實施例的示意圖。圖9a中,虛擬記憶體位址310的第一部分映射至實體記憶體位址0~99的部分(即系統記憶體230),第二部分則映射至間接記憶體位址320;圖9b中,間接記憶體位址320的位址0~9映射至實體記憶體位址75~84(即部分之系統記憶體230)以及間接記憶體位址320的位址10~29映射至實體記憶體位址110~129(即整個硬體記憶體610),而因為系統記憶體230中的10單位用來暫時存放原本硬體記憶體240中的資料,此時處理單元210可以從虛擬記憶體位址310得知實體記憶體位址75~84的部分已被使用,因此實際上總共可使用的系統記憶體的大小為120單位。之後當功能模組220由工作狀態回到閒置狀態,處理單元210先將暫存於系統記憶體230中的資料搬移至硬體記憶體240,然後由MMU 250修改分頁表,使其 回到圖7b所示的狀態,最後作業系統釋放該暫存區塊,作業系統便可再度使用完整的100單位的系統記憶體及額外的30單位的硬體記憶體。請注意,上述的歸還硬體記憶體240以及再次將硬體記憶體240納入作業系統可加以利用的額外記憶體資源的過程中,只需修改第二級MMU 250的分頁表,嵌入式裝置200不需重新啟動,因此提高了操作的便利性。
請參閱圖10,其係本發明之嵌入式裝置之記憶體管理方法之一實施例的流程圖。除前述之嵌入式裝置外,本發明亦相對應地揭露了一種嵌入式裝置之記憶體管理方法,能夠動態擴充嵌入式裝置之系統記憶體。本方法由前揭嵌入式裝置200或其等效裝置來執行。如圖10所示,本發明嵌入式裝置之記憶體管理方法之一實施例包含下列步驟:步驟S1005:嵌入式裝置開機,作業系統啟動;步驟S1010:將嵌入式裝置的系統記憶體及硬體記憶體加載於作業系統。在預設的情況下,此步驟係透過第一級MMU將第一部份的虛擬記憶體位址映射至系統記憶體的實體位址,以及將第二部分的虛擬記憶體位址映射至間接記憶體位址,前述嵌入式裝置的作業系統透過其述虛擬記憶體位址存取記憶體。並且,一開始第二級MMU係將間接記憶體位址映射至閒置的硬體記憶體,使作業系統能夠將各閒置中的功能模組的硬體記憶體作為額外的系統記憶體使用。間接記憶體位址與硬體記憶體之映射可視功能模組的狀態動態調整;此外,間接記憶體位址可能映射至單一的硬體記憶體(如圖4的實施例所示),亦可能映射至2個以上的硬體記憶體(如圖6的實施例所示); 步驟S1020:開機作業完成,作業系統穩定工作中。剛開機完成時,作業系統可以使用全部的系統記憶體及額外加載的硬體記憶體,就圖4或圖6所示的實施例來說,此時作業系統共有130單位的記憶體資源可以使用;步驟S1030:判斷功能模組是否需使用硬體記憶體。如果功能模組處於閒置狀態,代表作業系統可以繼續使用該功能模組的硬體記憶體(回到步驟S1020);如果功能模組必須使用該硬體記憶體(例如影像解碼單元開始解碼影像),代表硬體記憶體必須歸還給功能模組,亦即作業系統能夠使用的額外記憶體資源將減少;步驟S1040:從系統記憶體取得大小相當於待歸還給功能模組的硬體記憶體的儲存空間。硬體記憶體歸還給功能模組之前,作業系統必須從系統記憶體中取得與待歸還的硬體記憶體同樣大小的儲存空間,以便將硬體記憶體中的資料搬移至系統記憶體;在圖4的實施例中,若欲歸還硬體記憶體240,則必須向系統記憶體取得30單位的儲存空間;在圖6的實施例中,若欲歸還硬體記憶體240,則必須向系統記憶體取得10單位的儲存空間;步驟S1050:將硬體記憶體中的資料搬移至系統記憶體,並令第二級MMU改變分頁表。取得儲存空間後,硬體記憶體中的資料被搬移至系統記憶體,此時作業系統不再使用硬體記憶體,因此第二級的MMU必須修改其分頁表,使原本指向硬體記憶體的位址,改為指向該些資料移動後的位址。參考圖7b及圖9b,當硬體記憶體240歸還後,間接記憶體位址中原本指向實體記憶體位址 100的位址,改為指向實體記憶體位址75的位址,而虛擬記憶體位址對應實體記憶體位址75~84的部分將變為已使用,所以此時作業系統可以使用的記憶體資源共100+30-10=120單位的儲存空間;步驟S1060:將硬體記憶體歸還功能模組。當第二級MMU修改分頁表之後,硬體記憶體即可歸還給功能模組使用;步驟S1070:等待功能模組完成工作以空出硬體記憶體。當功能模組完成其工作(例如影像解碼單元完成影像解碼),硬體記憶體便不再被功能模組佔用,因此可供作業系統使用;步驟S1080:將資料從系統記憶體搬移至硬體記憶體,並令第二級MMU改變分頁表。硬體記憶體回復到閒置狀態後,先將步驟S1050中搬移至系統記憶體的資料搬回硬體記憶體,第二級MMU再修改分頁表,使間接記憶體位址指向系統記憶體的部分改為指向硬體記憶體,因此作業系統有額外的系統記憶體可用(例如圖8的硬體記憶體240由工作狀態回到閒置狀態,MMU 250將分頁表由圖9b改為圖7b);以及步驟S1090:釋放系統記憶體。完成步驟S1080的資料搬移後,步驟S1040中所取得的系統記憶體必須被釋放,此時作業系統可使用完整的系統記憶體及額外加載的硬體記憶體(回到步驟S1020)。
本技術領域具有通常知識者可藉由圖2至圖9之裝置發明的揭露內容來瞭解圖10之方法發明的實施細節與變化,因此雖然本發明之 實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
S1005~S1090‧‧‧步驟

Claims (18)

  1. 一種記憶體管理方法,應用於一嵌入式裝置,該嵌入式裝置包含一系統記憶體及一硬體記憶體,且該嵌入式裝置之作業系統基於一虛擬記憶體位址運作,該方法包含:將該虛擬記憶體之一部分位址映射至一間接記憶體位址;以及將該間接記憶體位址選擇性映射至該硬體記憶體或該系統記憶體的實體位址;該硬體記憶體對應於該嵌入式裝置之一功能模組,其中,該將該間接記憶體位址選擇性映射至該硬體記憶體或該系統記憶體的該實體位址之步驟包含:當該功能模組處於一閒置狀態,將該間接記憶體位址之一部分映射至該硬體記憶體。
  2. 如申請專利範圍第1項所述之記憶體管理方法,其中該嵌入式裝置之作業系統包含指向該間接記憶體位址之一頁框號碼(page frame number,pfn),該將該間接記憶體位址選擇性映射至該硬體記憶體或該系統記憶體的實體位址之步驟包含:變更該間接記憶體位址映射至該硬體記憶體及該系統記憶體之該至少一者的實體位址,其中該頁框號碼維持不變。
  3. 如申請專利範圍第1項所述之記憶體管理方法,更包含:當該功能模組由該閒置狀態進入一工作狀態,將該間接記憶體位址中映射至該硬體記憶體之該部分映射至該系統記憶體。
  4. 如申請專利範圍第3項所述之記憶體管理方法,更包含:將該硬體記憶體儲存之一資料搬移至該系統記憶體。
  5. 如申請專利範圍第3項所述之記憶體管理方法,更包含:當該功能模組由該工作狀態進入該閒置狀態,將該間接記憶體位址中映射至該系統記憶體之該部分映射至該硬體記憶體。
  6. 如申請專利範圍第5項所述之記憶體管理方法,更包含:將該系統記憶體儲存之一資料搬移至該硬體記憶體。
  7. 如申請專利範圍第1項所述之記憶體管理方法,該嵌入式裝置更包含一另一硬體記憶體,該硬體記憶體與該另一硬體記憶體分別對應於該嵌入式裝置之一功能模組與一另一功能模組,其中,該將該間接記憶體位址選擇性映射至該硬體記憶體或該系統記憶體的實體位址之步驟包含:當該功能模組與該另一功能模組皆處於該閒置狀態,將該間接記憶體位址之一部分映射至該硬體記憶體,以及將該間接記憶體位址之一另一部份映射至該另一硬體記憶體。
  8. 如申請專利範圍第7項所述之記憶體管理方法,更包含:當該另一功能模組由該閒置狀態進入一工作狀態,將該間接記憶體位址中映射至該另一硬體記憶體之該另一部分映射至該系統記憶體。
  9. 一種嵌入式裝置,其作業系統基於一虛擬記憶體位址運作,該嵌入式裝置包含:一系統記憶體;一硬體記憶體; 一第一記憶體管理單元,用來將該虛擬記憶體之一部分位址映射至一間接記憶體位址;一第二記憶體管理單元,耦接該系統記憶體及該硬體記憶體,用來將該間接記憶體位址選擇性映射至該硬體記憶體或該系統記憶體的實體位址;以及一功能模組,其中該硬體記憶體對應於該功能模組,當該功能模組處於一閒置狀態,該第二記憶體管理單元將該間接記憶體位址之一部分映射至該硬體記憶體。
  10. 如申請專利範圍第9項所述之嵌入式裝置,其中該嵌入式裝置之作業系統包含指向該間接記憶體位址之一頁框號碼,當該第二記憶體管理單元變更該間接記憶體位址映射至該硬體記憶體及該系統記憶體之該至少一者的實體位址時,該頁框號碼維持不變。
  11. 如申請專利範圍第9項所述之嵌入式裝置,其中當該功能模組由該閒置狀態進入一工作狀態,該第二記憶體管理單元將該間接記憶體位址中映射至該硬體記憶體之該部分,映射至該系統記憶體。
  12. 如申請專利範圍第11項所述之嵌入式裝置,其中當該第二記憶體管理單元將該間接記憶體位址中映射至該硬體記憶體之該部分映射至該系統記憶體時,該系統記憶體用以儲存搬移自該硬體記憶體之一資料。
  13. 如申請專利範圍第11項所述之嵌入式裝置,其中當該功能模組由於該工作狀態進入該閒置狀態,該第二記憶體管理單元將該間接記憶體位址中映射至該系統記憶體之該部分,映射至該硬體記憶體。
  14. 如申請專利範圍第13項所述之嵌入式裝置,其中當該第二記憶體管理單元將該間接記憶體位址中映射至該系統記憶體之該部分映射至該硬體記憶體時,該硬體記憶體用以儲存搬移自該系統記憶體之一資料。
  15. 如申請專利範圍第9項所述之嵌入式裝置,該嵌入式裝置更包含:一另一硬體記憶體;以及一另一功能模組,對應於該另一硬體記憶體;其中,當該功能模組與該另一功能模組皆處於該閒置狀態,該第二記憶體管理單元將該間接記憶體位址之一部分映射至該硬體記憶體,以及將該間接記憶體位址之一另一部分映射至該另一硬體記憶體。
  16. 如申請專利範圍第15項所述之嵌入式裝置,其中,當該另一功能模組由該閒置狀態進入一工作狀態,該第二記憶體管理單元將該間接記憶體位址中映射至該另一硬體記憶體之該另一部分映射至該系統記憶體。
  17. 如申請專利範圍第9項所述之嵌入式裝置,更包含:一處理單元;其中該第一記憶體管理單元及該第二記憶體管理單元包含於該處理單元之中。
  18. 如申請專利範圍第9項所述之嵌入式裝置,更包含;一處理單元;其中該第一記憶體管理單元包含於該處理單元之中,該第二記憶體管理單元位於該處理單元、該系統記憶體及該硬體記憶體之間,並透過匯流排耦接至該處理單元、該系統記憶體及該硬體記憶體。
TW103143000A 2014-12-10 2014-12-10 嵌入式裝置及其記憶體管理方法 TWI533202B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103143000A TWI533202B (zh) 2014-12-10 2014-12-10 嵌入式裝置及其記憶體管理方法
US14/963,426 US9892055B2 (en) 2014-12-10 2015-12-09 Embedded device and memory management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103143000A TWI533202B (zh) 2014-12-10 2014-12-10 嵌入式裝置及其記憶體管理方法

Publications (2)

Publication Number Publication Date
TWI533202B true TWI533202B (zh) 2016-05-11
TW201621632A TW201621632A (zh) 2016-06-16

Family

ID=56111297

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103143000A TWI533202B (zh) 2014-12-10 2014-12-10 嵌入式裝置及其記憶體管理方法

Country Status (2)

Country Link
US (1) US9892055B2 (zh)
TW (1) TWI533202B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019288B2 (en) 2016-09-12 2018-07-10 Mediatek, Inc. Fast and stable mechanism for allocating contiguous memory
US10817206B2 (en) * 2019-01-30 2020-10-27 EMC IP Holding Company, LLC System and method for managing metadata redirections

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380030B2 (en) * 2012-12-05 2019-08-13 Arm Limited Caching of virtual to physical address translations

Also Published As

Publication number Publication date
US9892055B2 (en) 2018-02-13
TW201621632A (zh) 2016-06-16
US20160170899A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
US10042778B2 (en) Collapsed address translation with multiple page sizes
JP5038907B2 (ja) 仮想マシン環境のアドレス変換をサポートするための方法と装置
US9336035B2 (en) Method and system for VM-granular I/O caching
US9218302B2 (en) Page table management
JP5214670B2 (ja) マルチプロセッサ仮想マシン環境においてアドレス変換をサポートする方法及び装置
US8402248B2 (en) Explicitly regioned memory organization in a network element
US20150089150A1 (en) Translation Bypass In Multi-Stage Address Translation
US20150089116A1 (en) Merged TLB Structure For Multiple Sequential Address Translations
US20110138102A1 (en) Data storage management using a distributed cache scheme
US8135898B2 (en) Memory management in a nested virtualization environment
US8521919B2 (en) Direct memory access in a computing environment
US20150089147A1 (en) Maintenance Of Cache And Tags In A Translation Lookaside Buffer
US9146879B1 (en) Virtual memory management for real-time embedded devices
EP3163451B1 (en) Memory management method and device, and memory controller
US8458434B2 (en) Unified virtual contiguous memory manager
CN115080462A (zh) 使用第一页表和第二页表的计算机系统和方法
WO2017014914A1 (en) Address translation and data pre-fetch in a cache memory system
TWI533202B (zh) 嵌入式裝置及其記憶體管理方法
KR20180041037A (ko) 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
US11494092B2 (en) Address space access control
US20200192818A1 (en) Translation lookaside buffer cache marker scheme for emulating single-cycle page table entry invalidation
US20190163645A1 (en) Optimizing headless virtual machine memory management with global translation lookaside buffer shootdown
US20090031100A1 (en) Memory reallocation in a computing environment
CN105808453B (zh) 嵌入式装置及其存储器管理方法
US10127158B2 (en) Memory management using virtual address masking

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees