TW201709084A - 嵌入式系統 - Google Patents

嵌入式系統 Download PDF

Info

Publication number
TW201709084A
TW201709084A TW104134476A TW104134476A TW201709084A TW 201709084 A TW201709084 A TW 201709084A TW 104134476 A TW104134476 A TW 104134476A TW 104134476 A TW104134476 A TW 104134476A TW 201709084 A TW201709084 A TW 201709084A
Authority
TW
Taiwan
Prior art keywords
memory
overlapping
logical
processor
bit
Prior art date
Application number
TW104134476A
Other languages
English (en)
Other versions
TWI569155B (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 旺宏電子股份有限公司
Application granted granted Critical
Publication of TWI569155B publication Critical patent/TWI569155B/zh
Publication of TW201709084A publication Critical patent/TW201709084A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

一種嵌入式系統,包含將被執行之一程式。程式被分割為多個重疊區段。嵌入式系統包括一處理器,用以請求多個重疊區段其中之一。請求的重疊區段包括即將被處理器執行的程式之一區段。嵌入式系統也包括一第一層級記憶體,耦接至處理器。第一層級記憶體儲存少於程式之多個重疊區段。嵌入式系統更包括一記憶體管理單元,耦接至處理器及第一層級記憶體。記憶體管理單元用以基於處理器所提供之一邏輯位址決定請求的重疊區段是否儲存於第一層級記憶體儲存中。記憶體管理單元更用以當請求的重疊區段儲存於第一層級記憶體儲存中時,轉換邏輯位址至一實體位址。實體位址指向請求的重疊區段。

Description

嵌入式系統
本發明是有關於一種管理記憶體資源的方法及裝置。
在電腦系統中,為了使處理器容易取得記憶體儲存裝置,通常都使用記憶體階層,記憶體階層包括多個層級的記憶體裝置,不同層級的記憶體裝置具有不同儲存大小及存取速度。為了減少存取時間,較快的記憶體裝置會放置在記憶體階層的較高層級中,而不是將較慢的記憶體裝置放置在記憶體階層的較高層級中。具有較快存取速度的記憶體裝置的每個位元都比較慢存取速度的記憶體裝置的每個位元還要昂貴。因此,放置在記憶體階層的較高層級之較快的記憶體裝置,其儲存容量的大小可能少於放置在記憶體階層的較低層級之較慢的記憶體裝置之儲存容量的大小。
舉例來說,在電腦系統中,記憶體階層的最高或第一層級中可包含靜態隨機存取記憶體(SRAM)。最高或第一層級的記憶體通常稱為快取。記憶體階層的第二層級中包含較慢的記憶體裝置,但其儲存容量大小大於靜態隨機存取記憶體的儲存容量大小,例如可為動態隨機存取記憶體(DRAM)。第二層級的記憶體通常稱為主記憶體。此外,記憶體階層的第三層級中包含更慢的記憶體裝置,在電腦系統中具有最大的儲存容量大小,例如可為磁碟或固態硬碟。第三層級的記憶體通常稱為次要的儲存裝置。
為了善用記憶體階層之不同層級中的速度及儲存容量大小,資訊(例如資料或程式)被分割成多個區段且儲存在階層結構中。舉例來說,整個可執行的程式碼被儲存在記憶體階層之較低層級中。然而,一般來說,可執行的程式碼之一些區段也被儲存在記憶體階層之較高層級中。舉例來說,最近獲最常被存取的這些區段被儲存在記憶體階層之較高層級中,在記憶體階層之較高層級中具有較高的存取速度,以減少存取時間。
為了執行程式的某些功能,舉例來說,處理器從記憶體階層之第一(或最高)層級第一次請求包括將要被執行的功能的區段。如果請求的區段存在於第一層級,則處理器執行包含於請求的區段中之功能。這種情況稱為“擊中(hit)”。如果請求的區段不存在於第一層級,則處理器從記憶體階層之較低層級中複製請求的區段至第一層級中以將被處理器執行。這種情況稱為“失誤(miss)”。
相似地,為了存取某些資料,舉例來說,處理器從記憶體階層之第一(或最高)層級第一次請求將要被存取的資料的區段。如果請求的區段存在於第一層級,則處理器存取請求的區段。這種情況稱為“擊中(hit)”。如果請求的區段不存在於第一層級,則處理器從記憶體階層之較低層級中複製請求的區段至第一層級中以將被處理器存取。這種情況稱為“失誤(miss)”。
上述之記憶體管理方案可被實施在快取記憶體與主記憶體之間,且這個方案被稱為快取。另一個類似的方案,可被實施在主記憶體與次要記憶體之間管理記憶體資源,被稱為虛擬記憶體。
根據本發明之一實施例,提出一種嵌入式系統,包含將被執行之一程式。程式被分割為多個重疊區段。嵌入式系統包括一處理器,用以請求多個重疊區段其中之一。請求的重疊區段包括即將被處理器執行的程式之一區段。嵌入式系統也包括一第一層級記憶體,耦接至處理器。第一層級記憶體儲存少於程式之多個重疊區段。嵌入式系統更包括一記憶體管理單元,耦接至處理器及第一層級記憶體。記憶體管理單元用以基於處理器所提供之一邏輯位址決定請求的重疊區段是否儲存於第一層級記憶體儲存中。記憶體管理單元更用以當請求的重疊區段儲存於第一層級記憶體儲存中時,轉換邏輯位址至一實體位址。實體位址指向請求的重疊區段。
根據本發明之另一實施例,提出一種嵌入式系統,包含將被執行之一程式。程式被分割為多個重疊區段。嵌入式系統包括一處理器,用以基於一請求的重疊區段之一邏輯位址請求多個重疊區段之其中之一。請求的重疊區段包括即將被處理器執行的程式之一區段。邏輯位址包含多個邏輯區域位元、多個邏輯區段位元及多個邏輯偏移位元。嵌入式系統也包括一第一層級記憶體,耦接至處理器。第一層級記憶體儲存少於程式之多個重疊區段。嵌入式系統更包括一翻譯電路,耦接至處理器。翻譯電路用以自處理器接收多個邏輯區段位元,以及當請求的重疊區段儲存於第一層級記憶體儲存中,則轉換多個邏輯區段位元至一實體位址之多個實體區段位元。實體位址指向儲存於第一層級記憶體之請求的重疊區段。嵌入式系統更包括一比較器,耦接至處理器,以接收邏輯位址之多個邏輯區段位元。比較器用以基於多個邏輯區段位元提供一選擇訊號。嵌入式系統更包括一多工器,以接收邏輯位址、實體位址及選擇訊號,多工器用以基於選擇訊號輸出邏輯位址與實體位址其中之一。
根據本發明之另一實施例,提出一種嵌入式系統,包含將被存取之資料。資料被分割為多個重疊區段。嵌入式系統包括一處理器,用以請求多個重疊區段其中之一。請求的重疊區段包括即將被處理器存取的資料之一區段。嵌入式系統也包括一第一層級記憶體,耦接至處理器。第一層級記憶體儲存少於資料之多個重疊區段。嵌入式系統更包括一記憶體管理單元,耦接至處理器及第一層級記憶體。記憶體管理單元用以基於處理器所提供之一邏輯位址決定請求的重疊區段是否儲存於第一層級記憶體儲存中,以及當請求的重疊區段儲存於第一層級記憶體儲存中時,轉換邏輯位址至一實體位址。實體位址指向請求的重疊區段。
根據本發明之另一實施例,提出一種嵌入式系統,包含將被存取之資料。資料被分割為多個重疊區段。嵌入式系統包括一處理器,用以基於一請求的重疊區段之一邏輯位址請求多個重疊區段之其中之一。請求的重疊區段包括即將被處理器存取的資料之一區段。邏輯位址包含多個邏輯區域位元、多個邏輯區段位元及多個邏輯偏移位元。嵌入式系統也包括一第一層級記憶體,耦接至處理器。第一層級記憶體儲存少於資料之多個重疊區段。嵌入式系統更包括一第二層級記憶體,耦接至處理器及第一層級記憶體。第二層級記憶體儲存資料之多個重疊區段。嵌入式系統更包括一翻譯電路,耦接至處理器。翻譯電路用以自處理器接收多個邏輯區段位元,以及當請求的重疊區段儲存於第一層級記憶體儲存中,則轉換多個邏輯區段位元至一實體位址之多個實體區段位元。實體位址指向儲存於第一層級記憶體之請求的重疊區段。嵌入式系統更包括一比較器,耦接至處理器,以接收邏輯位址之多個邏輯區段位元。比較器用以基於多個邏輯區段位元提供一選擇訊號。嵌入式系統更包括一多工器,以接收邏輯位址、實體位址及選擇訊號,多工器用以基於選擇訊號輸出邏輯位址與實體位址其中之一。
下文係配合所附圖式對本發明作詳細說明如下。
以下係提出本發明的多個實施例並搭配圖式進行詳細說明。
一種用於快取及虛擬記憶體之記憶體管理的替代方案稱為重疊(overlay)。重疊區段(overlays)為程式或資料的區段。當整個程式或資料的大小大於記憶體階層的第一層級時,則程式設計者將程式或資料分割成多個重疊區段(區段)。重疊區段的大小相同或不同於程式或資料的大小。當虛擬記憶體不能解決問題時,就會使用重疊區段的方案,例如當電腦系統中的系統資源被限制時(如記憶體裝置的儲存容量大小的限制、作業系統功能的限制、編譯程式功能的限制、或處理器速度的限制)。具有資源限制的電腦系統之其中一個例子為嵌入式系統。
嵌入式系統不像一般的電腦系統,嵌入式系統被設計為特定應用,例如控制交通號誌或MP3播放器。嵌入式系統包含有限的資源來支持特定的應用。基於這個原因之下,嵌入式系統可能使用相對較慢的處理器且只包括兩個層級的記憶體階層,這使得其可使用的儲存容量比一般電腦可使用的儲存容量還要少。在嵌入式系統中,記憶體階層的第一層級中可為揮發性記憶體(例如,隨機存取記憶體),且第二層級中可為非揮發性記憶體(例如,快閃記憶體(flash memory))。
藉由將最近或最常存取的重疊區段儲存於記憶體階層的第一層級中,使用兩個層級的記憶體階層將更有利於嵌入式系統。如此,重疊區段可在記憶體階層的第一層級中以較快的速度被存取。
為了執行程式的某些功能,舉例來說,嵌入式系統中的處理器從隨機存取記憶體請求一個包含將要被執行的功能之重疊區段。如果請求的重疊區段存在於隨機存取記憶體(擊中),則處理器執行包含在請求的重疊區段中的功能。如果請求的重疊區段不存在於隨機存取記憶體(失誤),則處理器從快閃記憶體中複製請求的重疊區段至隨機存取記憶體,並執行包含在請求的重疊區段中的功能。同樣的,為了存取資料的區段,舉例來說,嵌入式系統中的處理器從隨機存取記憶體請求一個包含將要被存取的資料區段之重疊區段。如果請求的重疊區段存在於隨機存取記憶體(擊中),則處理器存取包含在請求的重疊區段中的資料區段。如果請求的重疊區段不存在於隨機存取記憶體(失誤),則處理器從快閃記憶體中複製請求的重疊區段至隨機存取記憶體,並存取包含在請求的重疊區段中的資料區段。
一般來說,記憶體管理程序(MMR)決定“擊中”或“失誤”,以及“失誤”情況的後續步驟。然而,記憶體管理程序是基於軟體的程序,因此,記憶體管理程序的運作造成嵌入式系統中之已受限制之系統資源的負擔。故提供一種方法及裝置來管理記憶體以減少記憶體管理程序的使用。
請參照第1圖,嵌入式系統10包括處理器100、第一層級記憶體102、第二層級記憶體104、記憶體管理單元106、次要層級記憶體控制器108a、第一資料線110a及第二資料線110b。次要層級記憶體控制器108a包括直接記憶體存取(DMA)電路108b在第一層級記憶體102與第二層級記憶體104之間搬運重疊區段,其中重疊區段包含多個字組,搬運時係以重疊區段的整體來搬運,而不是以一次一個字組的方式搬運重疊區段。本案中所使用的“字組”指的是記憶體的單位,包含了特定數量的位元。處理器100為一般用途的處理器或特定應用的微控制器。第一層級記憶體102可為揮發性記憶體,例如隨機存取記憶體,且第二層級記憶體104可為非揮發性記憶體,例如快閃記憶體。
多個可執行程式可被儲存在第二層級記憶體104中。可執行程式其中之一被切割為多個重疊區段。被切割的可執行程式的全部重疊區段被儲存在第二層級記憶體104中。一些最近或最常被處理器存取的重疊區段被儲存在第一層級記憶體102中。當嵌入式系統10被描述到具有一個切割的可執行程式儲存在第二層級記憶體104中時,並不限於此且可包括多個切割的可執行程式儲存在第二層級記憶體104中。
相似地,資料可被儲存在第二層級記憶體104中,且被切割為多個重疊區段,其儲存的方式與可執行程式的重疊區段的儲存方式類似。被切割資料的全部的重疊區段被儲存在第二層級記憶體104中。一些最近或最常被處理器存取的資料的重疊區段被儲存在第一層級記憶體102中。此外,資料的重疊區段可被存取並寫入新資訊。當資料的重疊區段被存取並寫入新資訊時,程式設計者可利用同步協議來,例如“完全寫入(write-through)”協議或“寫回(write-back)”協議,來維持儲存在第一層級記憶體102與第二層級記憶體104中之重疊區段的一致性。“完全寫入”協議或“寫回”協議係由處理器來執行。
關於“完全寫入”協議,當儲存在第一層級記憶體102中的重疊區段被存取並將被寫入新資訊時,新資訊會同時被寫入到儲存在第一層級記憶體102中的重疊區段以及儲存在第二層級記憶體104中的對應的重疊區段。因此,在“完全寫入”協議中,每次寫入之後,儲存在第一層級記憶體102中的重疊區段以及儲存在第二層級記憶體104中的對應的重疊區段都會維持一致性。當儲存在第一層級記憶體102中的重疊區段與儲存在第二層級記憶體104中的重疊區段一致時,儲存在第一層級記憶體102中的重疊區段為“乾淨(clean)”。因此,在“完全寫入”協議中,每次寫入之後,儲存在第一層級記憶體102中的重疊區段為維持“乾淨”。
另一方面,在“寫回”協議中,當儲存在第一層級記憶體102中的重疊區段被存取並將被寫入新資訊時,新資訊會被寫入到儲存在第一層級記憶體102中的重疊區段,但新資訊不會立刻被寫入到儲存在第二層級記憶體104中的對應的重疊區段。當儲存在第一層級記憶體102中的重疊區段被取代時,儲存在第二層級記憶體104中的對應的重疊區段才會被寫入。儲存在第一層級記憶體102中的重疊區段被取代可如下進一步所述,例如“失誤”的情況。因此,在“寫回”協議中,儲存在第一層級記憶體102中的重疊區段與儲存在第二層級記憶體104中的對應的重疊區段都會不一致,直到儲存在第一層級記憶體102中的重疊區段被取代且儲存在第二層級記憶體104中的對應的重疊區段被寫入相同的新資訊(被寫入至儲存在第一層級記憶體102中的重疊區段的新資訊)。當儲存在第一層級記憶體102中的重疊區段與儲存在第二層級記憶體104中的對應的重疊區段不一致時,儲存在第一層級記憶體102中的重疊區段為“髒(dirty)”。因此,在“寫回”協議中,每次寫入之後,儲存在第一層級記憶體102中的重疊區段變為“髒”。可用一旗標來指示儲存在第一層級記憶體102中的重疊區段為“乾淨”或“髒”。
每個重疊區段可包含將被處理器100執行的功能。為了執行功能,處理器100請求包含功能的重疊區段。每個重疊區段附加地或選擇性的包括將被處理器100存取的資料的區段。為了存取資料的區段,處理器100請求包含資料的區段的重疊區段。處理器100透過先提供重疊區段的邏輯位址112至記憶體管理單元106來請求重疊區段。接著,記憶體管理單元106基於邏輯位址112決定請求的重疊區段是否存在於第一層級記憶體102中。若請求的重疊區段存在於第一層級記憶體102中(“擊中”),則記憶體管理單元106輸出重疊區段的第一實體位址114a。第一實體位址114a指向第一層級記憶體102中之請求的重疊區段。處理器100接著基於第一實體位址114a存取重疊區段,並執行包含在重疊區段內的功能,或存取包含在重疊區段內的資料的區段。在這個範例中,記憶體管理程序不需要基於處理器100的重疊區段請求,在“擊中”的情況中將邏輯位址112轉換成第一實體位址114a。因此,可減少記憶體管理程序的使用。
若請求的重疊區段不存在於第一層級記憶體102中(“失誤”),則記憶體管理單元106提供記憶體管理程序的觸發訊號至處理器100,以觸發記憶體管理程序,記憶體管理程序係由處理器100所執行。在記憶體管理程序被處發之後,處理器100發布直接記憶體存取(DMA)命令118至次要層級記憶體控制器108a之直接記憶體存取電路108b。回應於記憶體存取命令118,直接記憶體存取電路108b發布記憶體操作命令120(例如,讀取命令)及第二實體位址114b,以經由第二資料線110b及第一資料線110a將請求的重疊區段從第二層級記憶體104複製到第一層級記憶體102。此外,複製的重疊區段會取代儲存在第一層級記憶體102中的重疊區段。若儲存在第一層級記憶體102中之即將被取代的重疊區段為“髒”,則記憶體管理程序執行“寫回”協議,以使儲存在第二層級記憶體104中對應至“髒”重疊區段的重疊區段更新為新資訊,這個新資訊為已被寫入到第二層級記憶體104中之重疊區段且即將被取代的資訊。在一些實施例中,在複製的重疊區段取代儲存在第一層級記憶體102中的重疊區段之前,“寫回”協議就被執行。
此外,記憶體管理程序發布內容更新訊號122以將複製的重疊區段的相關資訊更新至記憶體管理單元106,其詳細內容如下進一步所述。處理器100接著執行包含在重疊區段內的功能或存取包含在重疊區段內的資料的區段來取代“髒”重疊區段。
第2A圖繪示第1圖所示之記憶體管理單元106接收邏輯位址112之一例。記憶體管理單元106包括內容定址記憶體202、比較器204、多工器206及“及(AND)”邏輯閘208。記憶體管理單元106使用內容定址記憶體202將邏輯位址112轉換成第一實體位址114a。
邏輯位址112被切割成3個子集合位元,包括邏輯區域位元200A、邏輯區段位元200B及邏輯偏移位元200C。相似地,第一實體位址114a也被切割成3個子集合位元,包括實體區域位元210A、實體區段位元210B及實體偏移位元210C。
第2B圖繪示內容定址記憶體202之一例。請參照第2A及2B圖,邏輯區段位元200B被提供至內容定址記憶體202,若是“擊中”的情況,則內容定址記憶體202將邏輯區段位元200B轉換成實體區段位元210B。當邏輯位址所指向之請求的重疊區段在第一層級記憶體102中,則發生“擊中”。請參照第2B圖,內容定址記憶體202包含存在於第一層級記憶體102中之重疊區段的邏輯位址的多個邏輯區段位元212-1至212-n。內容定址記憶體202也包含相同的重疊區段的實體位址所對應的多個實體區段位元214-1至214-n。
在內容定址記憶體202中,邏輯區段位元200B與內容定址記憶體202中所包含之邏輯區段位元212-1至212-n比較。若邏輯區段位元200B符合,舉例來說,邏輯區段位元212-1,則內容定址記憶體202將實體區段位元214-1輸出作為實體區段位元210B。這種符合的情形對應到“擊中”的情況。相似地,若邏輯區段位元200B符合,舉例來說,邏輯區段位元212-2,則內容定址記憶體202將實體區段位元214-2輸出作為實體區段位元210B。
請參照第2A圖,在“擊中”的情況中,內容定址記憶體202輸出實體區段位元210B之後,實體區段位元210B與邏輯區域位元200A及邏輯偏移位元200C結合。實體偏移位元210C與邏輯偏移位元200C完全相同,且皆指示重疊區段中之請求的功能或請求的資料區段的起始位元。邏輯區域位元200A表示設計給重疊區段之預定的邏輯記憶體區域。相似地,實體區域位元210A表示設計給重疊區段之對應到預定的邏輯記憶體區域之實體記憶體區域。
第一實體位址114a被提供作為多工器206的輸入206A,同時邏輯位址112被提供作為多工器206的另一輸入206B。多工器206基於被提供作為多工器206的輸入206C之選擇訊號204A,決定位址輸出206D。選擇訊號204A係由比較器204所提供,比較器204決定邏輯位址112之邏輯區域位元200A是否指向設計給重疊區段之預定的邏輯記憶體區域。若邏輯位址112之邏輯區域位元200A指向預定的邏輯記憶體區域,則選擇訊號204A用來選擇輸入206A,也就是第一實體位址114a被提供作為位址輸出206D。處理器100接著基於位址輸出206D所提供的第一實體位址114a來存取重疊區段,以及執行包含在重疊區段中的功能或存取包含在重疊區段中的資料區段。
若邏輯區域位元200A未指向設計給重疊區段之預定的邏輯記憶體區域,則選擇訊號204A用來選擇輸入206B,也就是邏輯位址112被提供作為位址輸出206D,以執行未被分割成重疊區段的程式或存取未被分割成重疊區段的資料。
請參照第2A及2B圖,若邏輯區段位元200B未符合邏輯區段位元212-1至212-n之任何其中之一(“失誤”的情況),則內容定址記憶體202輸出“失誤”訊號216至“及”邏輯閘208的其中一個輸入。比較器204輸出選擇訊號204A至“及”邏輯閘208的其他輸入。若邏輯區段位元200B未符合邏輯區段位元212-1至212-n之任何其中之一(“失誤”的情況)且邏輯區域位元200A指向設計給重疊區段之預定的邏輯記憶體區域,則“及”邏輯閘208輸出記憶體管理程序觸發訊號116以啟動記憶體管理程序。也就是,當“失誤”的情況,且當選擇訊號204A用來選擇輸入206A,則“及”邏輯閘208輸出記憶體管理程序觸發訊號116。請參照第1圖,記憶體管理程序接著經由第二資料線110b及第一資料線110a將請求的重疊區段從第二層級記憶體104複製到第一層級記憶體102。處理器100接著執行包含在重疊區段中的功能或存取包含在重疊區段中的資料區段。請參照第2A及2B圖,此外,記憶體管理程序發布內容更新訊號122將內容定址記憶體202內即將被取代之重疊區段的邏輯區段位元(212-1至212-n之一)及對應的實體區段位元(214-1至214-n之一),取代為請求的重疊區段(從第二層級記憶體104複製到第一層級記憶體102之重疊區段)的邏輯區段位元及對應的實體區段位元。記憶體管理程序之程式設計者可基於例如重疊區段是否最近或最常被請求,來決定哪個重疊區段(及其邏輯區段位元與實體區段位元)被取代。
在一些實施例中,內容定址記憶體202更包括一旗標,這個旗標包含一或多個位元,每個位元與每個項目212-1至212-n相關聯。每個旗標指示儲存在第一層級記憶體102之重疊區段是否為“髒”。當“髒” 重疊區段被取代,則記憶體管理程序執行“寫回”協議以使儲存在第二層級記憶體104中之對應的重疊區段被更新為新資訊,其中這個新資訊為被寫入到儲存在第一層級記憶體102之“髒”重疊區段之資訊。
請參照第3A及3B圖,在一些實施例中,記憶體管理單元106之內容定址記憶體202被取代為翻譯電路300。翻譯電路300包括單元電路302-1至302-n及“及”閘306。每個單元電路302-1至302-n包含存在於第一層級記憶體102之重疊區段的邏輯位址之邏輯區段位元212-1至212-n的一個項目。每個單元電路302-1至302-n也包含存在於第一層級記憶體102之同一個重疊區段的實體位址之對應的實體區段位元214-1至214-n的一個項目。
此外,在一些實施例中,每個單元電路302-1至302-n接收處理器100所提供的邏輯位址112的邏輯區段位元200B,以及接收記憶體管理程序所提供的內容更新訊號122。內容更新訊號122係在“失誤”的情況中,由記憶體管理程序所提供用來將邏輯區段位元(212-1至212-n之一)及對應的實體區段位元(214-1至214-n之一),取代為請求的重疊區段(從第二層級記憶體104複製到第一層級記憶體102之重疊區段)的邏輯區段位元及對應的實體區段位元。此外,單元電路302-1至302-n分別提供單元輸出304-1至304-n。
邏輯區段位元200B與每一個邏輯區段位元212-1至212-n比較。若邏輯區段位元200B符合,舉例來說,邏輯區段位元212-1,則單元電路302-1輸出實體區段位元214-1作為實體區段位元210B。此外,單元輸出304-1變為邏輯“0”,相當於“擊中”的情況。若邏輯區段位元212-1至212-n有任何一個為“擊中”的情況,則“及”閘306輸出邏輯“0”且“失誤”訊號不會被觸發。
另一方面,若邏輯區段位元200B未符合,舉例來說,邏輯區段位元212-1,則單元輸出304-1變為邏輯“1”。若邏輯區段位元200B與任何一個邏輯區段位元212-1至212-n皆不符合,則全部的單元輸出304-1至304-n皆變成邏輯“1s”。在這種情況中,“及”閘306接收所有的邏輯“1s”作為輸入以及輸出邏輯“1”,來觸發“失誤”訊號216至“及”閘208,如第2A圖所示。
請參照第3B圖,在一些實施例中,單元電路302-1包括邏輯位元閂鎖器308-1、實體位元閂鎖器310-1、“互斥或(XOR)”閘312-1至312-m、“或”閘314-1及反向器316-1。單元電路302-2至302-n包括之元件相同或類似於單元電路302-1前述之元件。邏輯位元閂鎖器308-1包含邏輯區段位元212-1,邏輯區段位元212-1包含1至m位元。1至m位元被分別提供至“互斥或”閘312-1至312-m作為輸入。
邏輯區段位元200B也包括1至m位元(邏輯區段位元1 200B-1至邏輯區段位元 m 200B-m),其也被分別提供至“互斥或”閘312-1至312-m作為輸入。每個邏輯區段位元212-1使用一個對應的“互斥或”閘312-1至312-m與每一個邏輯區段位元200B比較。當邏輯區段位元212-1的第1個位元與邏輯區段位元200B的第1個位元相同,則“互斥或”閘312-1輸出邏輯“0”。當這些位元不相同時,則“互斥或”閘312-1輸出邏輯“1”。 “互斥或”閘312-2至312-m的功能相同或相似於“互斥或”閘312-1。“互斥或”閘312-1至312-m的輸出被提供至“或”閘314-1的輸入。若“互斥或”閘312-1至312-m其中之一輸出邏輯“1”(其指示邏輯區段位元212-1的對應的位元與邏輯區段位元200B不同),則“或”閘314-1輸出邏輯“1”作為單元輸出304-1。
由於反向器316-1的作用,當單元輸出304-1為邏輯“1”,則實體位元閂鎖器310-1的輸出致能318-1接收邏輯“0”。如此,當單元輸出304-1為邏輯“1”,或邏輯區段位元212-1的第1個位元與邏輯區段位元200B的第1個位元不相同時,實體位元閂鎖器310-1不提供實體區段位元214-1。請參照第3A圖,若單元輸出304-1至304-n皆為邏輯“1s”(其指示邏輯區段位元200B不同於邏輯區段位元212-1至212-n),則“及”閘306提供觸發的“失誤”訊號216(例如邏輯“1”)至第2A圖之“及”閘208。此外,實體位元閂鎖器310-1至310-n不提供實體區段位元214-1至214-n。
請參照第3B圖,當邏輯區段位元212-1的第1個位元與邏輯區段位元200B的第1個位元相同時,“互斥或”閘312-1輸出邏輯“0”。因此,由於反向器316-1的作用,輸出致能318-1接收邏輯“1”。如此,當單元輸出304-1為邏輯“0”,或邏輯區段位元212-1的第1個位元與邏輯區段位元200B的第1個位元相同時,實體位元閂鎖器310-1提供實體區段位元214-1。請參照第3A圖,若單元輸出304-1至304-n之任何其中之一為邏輯“0”,則“及”閘306也提供邏輯“0”且“失誤”訊號216不會被觸發。
熟習本發明所屬領域之技藝者將想到,於此提出之本發明之多數修改及其他實施例,係具有上述說明及相關圖式中所提供之教導的益處。因此,應理解本發明並非受限於所揭露的具體實施例,且修改及其他實施例係包括於以下的申請專利範圍之範疇內。
10‧‧‧嵌入式系統
100‧‧‧處理器
102‧‧‧第一層級記憶體
104‧‧‧第二層級記憶體
106‧‧‧記憶體管理單元
108a‧‧‧次要層級記憶體控制器
108b‧‧‧直接記憶體存取電路
110a‧‧‧第一資料線
110b‧‧‧第二資料線
112‧‧‧邏輯位址
114a‧‧‧第一實體位址
114b‧‧‧第二實體位址
116‧‧‧記憶體管理程序觸發訊號
118‧‧‧直接記憶體存取命令
120‧‧‧記憶體操作命令
122‧‧‧內容更新訊號
200A‧‧‧邏輯區域位元
200B、1 200B-1、2 200B-2、m 200B-m、212-1、212-2、212-n‧‧‧邏輯區段位元
200C‧‧‧邏輯偏移位元
202‧‧‧內容定址記憶體
204‧‧‧比較器
204A‧‧‧選擇訊號
206‧‧‧多工器
206A、206B、206C‧‧‧輸入
206D‧‧‧位址輸出
208、306‧‧‧“及”閘
210A‧‧‧實體區域位元
210B、214-1、214-2、214-n‧‧‧實體區段位元
210C‧‧‧實體偏移位元
216‧‧‧“失誤”訊號
300‧‧‧翻譯電路
302-1、302-2、302-n‧‧‧單元電路
304-1、304-2、304-n‧‧‧單元輸出
308-1‧‧‧邏輯位元閂鎖器
310-1‧‧‧實體位元閂鎖器
312-1、312-2、312-m‧‧‧“互斥或”閘
314-1‧‧‧“或”閘
316-1‧‧‧反向器
318-1‧‧‧輸出致能
第1圖繪示包含記憶體階層之嵌入式系統之示意圖。 第2A圖繪示記憶體管理單元之示意圖。 第2B圖繪示內容定址記憶體之示意圖。 第3A圖繪示翻譯電路之示意圖。 第3B圖繪示單元電路之示意圖。
10‧‧‧嵌入式系統
100‧‧‧處理器
102‧‧‧第一層級記憶體
104‧‧‧第二層級記憶體
106‧‧‧記憶體管理單元
108a‧‧‧次要層級記憶體控制器
108b‧‧‧直接記憶體存取電路
110a‧‧‧第一資料線
110b‧‧‧第二資料線
112‧‧‧邏輯位址
114a‧‧‧第一實體位址
114b‧‧‧第二實體位址
116‧‧‧記憶體管理程序觸發訊號
118‧‧‧直接記憶體存取命令
120‧‧‧記憶體操作命令
122‧‧‧內容更新訊號

Claims (10)

  1. 一種嵌入式系統,包含將被執行之一程式,其中該程式被分割為複數個重疊區段,該嵌入式系統包括: 一處理器,用以請求該些重疊區段其中之一,該請求的重疊區段包括即將被該處理器執行的該程式之一區段; 一第一層級記憶體,耦接至該處理器,該第一層級記憶體儲存少於該程式之該些重疊區段;以及 一記憶體管理單元,耦接至該處理器及該第一層級記憶體,該記憶體管理單元用以 基於該處理器所提供之一邏輯位址決定該請求的重疊區 段是否儲存於該第一層級記憶體儲存中,以及 當該請求的重疊區段儲存於該第一層級記憶體儲存中,則轉換該邏輯位址至一實體位址,其中該實體位址指向該請求的重疊區段。
  2. 如申請專利範圍第1項所述之嵌入式系統,其中該實體位址為一第一實體位址,以及其中該處理器更用以當該請求的重疊區段未儲存於該第一層級記憶體儲存中時,提供一直接記憶體存取命令,該嵌入式系統更包括: 一第二層級記憶體,耦接至該處理器及該第一層級記憶體,該第二層級記憶體儲存該程式之該些重疊區段;以及 一次要層級記憶體控制器,耦接在該第二層級記憶體及該處理器之間,該次要層級記憶體控制器用以 自該處理器接收該直接記憶體存取命令, 基於該直接記憶體存取命令提供一第二實體位址及一記憶體操作命令至該第二層級記憶體,以及 自該第二層級記憶體複製該請求的重疊區段至該第一層級記憶體。
  3. 如申請專利範圍第2項所述之嵌入式系統,其中該記憶體操作命令為一讀取命令,該記憶體管理單元更用以: 在該處理器提供直接記憶體存取命令至該次要層級記憶體控制器之前,提供一觸發訊號至該處理器。
  4. 一種嵌入式系統,包含將被執行之一程式,其中該程式被分割為複數個重疊區段,該嵌入式系統包括: 一處理器,用以基於一請求的重疊區段之一邏輯位址請求該些重疊區段之其中之一,該請求的重疊區段包括即將被該處理器執行的該程式之一區段,其中該邏輯位址包含複數個邏輯區域位元、複數個邏輯區段位元及複數個邏輯偏移位元; 一第一層級記憶體,耦接至該處理器,該第一層級記憶體儲存少於該程式之該些重疊區段;以及 一翻譯電路,耦接至該處理器,該翻譯電路用以 自該處理器接收該些邏輯區段位元,以及 當該請求的重疊區段儲存於該第一層級記憶體儲存中,則轉換該些邏輯區段位元至一實體位址之複數個實體區段位元,其中該實體位址指向儲存於該第一層級記憶體之該請求的重疊區段; 一比較器,耦接至該處理器,接收該邏輯位址之該些邏輯區段位元,該比較器用以基於該些邏輯區段位元提供一選擇訊號;以及 一多工器,接收該邏輯位址、該實體位址及該選擇訊號,該多工器用以基於該選擇訊號輸出該邏輯位址與該實體位址其中之一。
  5. 如申請專利範圍第4項所述之嵌入式系統,該嵌入式系統更包括: 一第二層級記憶體,耦接至該處理器及該第一層級記憶體,該第二層級記憶體儲存該程式之該些重疊區段; 一及閘,用以 當該請求的重疊區段未儲存於該第一層級記憶體中時,自該翻譯電路接收一失誤訊號, 自該比較器接收該選擇訊號,以及 提供一觸發訊號,其中該處理器回應該處發訊號以提供一直接記憶體存取命令;以及 一次要層級記憶體控制器,耦接在該第二層級記憶體及該處理器之間,該次要層級記憶體控制器用以 基於該直接記憶體存取命令提供一第二實體位址及一記憶體操作命令至該第二層級記憶體,以及 自該第二層級記憶體複製該請求的重疊區段至該第一層級記憶體。
  6. 如申請專利範圍第4項所述之嵌入式系統,其中該翻譯電路為一內容定址記憶體,該內容定址記憶體用以: 儲存該邏輯位址之該些邏輯區段位元的複數個項目,該些邏輯區段位元的該些項目指向儲存於該第一層級記憶體之該些重疊區段,該些邏輯區段位元的該些項目係為複數個邏輯位元項目; 儲存該實體位址之該些實體區段位元的複數個項目,該些實體區段位元的該些項目指向儲存於該第一層級記憶體之相同的該些重疊區段,該些實體區段位元的該些項目係為複數個實體位元項目; 比較該請求的重疊區段之該些邏輯區段位元與該些邏輯位元項目之每一個; 當該請求的重疊區段之該些邏輯區段位元符合該些邏輯位元項目之其中之一,則輸出該些實體位元項目之一對應項目;以及 當該請求的重疊區段之該邏輯區段位元不符合該些邏輯位元項目,則輸出一失誤訊號。
  7. 如申請專利範圍第4項所述之嵌入式系統,其中該翻譯電路包括: 複數個單位電路,該些單位電路之每一個用以 儲存一邏輯位址之該邏輯區段位元的一項目,該邏輯區段位元的該項目指向儲存於該第一層級記憶體之該些重疊區段之其中一,該邏輯區段位元的該項目係為一邏輯位元項目, 儲存一實體位址之該實體區段位元的一項目,該實體區段位元的該項目指向儲存於該第一層級記憶體之該些重疊區段之其中一,該實體區段位元的該項目係為一實體位元項目, 決定該請求的重疊區段之該邏輯區段位元是否符合該邏輯位元項目, 提供一單元輸出訊號以指示該請求的重疊區段之該邏輯區段位元是否符合該邏輯位元項目,以及 當該單元輸出訊號指示符合,則輸出該實體位元項目;以及 一邏輯電路,用以 自該些單位電路之每一個接收該單元輸出訊號,以及 當自該些單位電路之每一個所接收之該單元輸出訊號皆未指示符合,則輸出一失誤訊號。
  8. 如申請專利範圍第7項所述之嵌入式系統,其中該邏輯電路包括一及閘,該邏輯電路係為一第一邏輯電路,以及其中該些單元電路之至少之一包括:      一邏輯位元閂鎖器,包含該邏輯位元項目;      複數個第二邏輯電路,該些第二邏輯電路之每一個用以:        接收該邏輯位元項目之一位元作為一第一輸入,        接收該請求的重疊區段之該邏輯區段位元之一位元作為第二輸入,以及        提供一第一邏輯輸出訊號以指示該第一輸入與該第二輸入是否相符合;      一第三邏輯電路用以        自該些第一邏輯電路之每一個接收該第一邏輯輸出訊號,以及        提供一第二邏輯輸出訊號至該第一邏輯電路,其中該第二邏輯輸出訊號係為該單元輸出訊號;以及      一實體位元閂鎖器,接收一反向的第二邏輯輸出訊號,該實體位元閂鎖器用以基於該反向的第二邏輯輸出訊號輸出該實體位元項目; 其中該些第二邏輯電路包括複數個互斥或閘,及該第三邏輯電路包括一或閘。
  9. 一種嵌入式系統,包含將被存取之資料,其中該資料被分割為複數個重疊區段,該嵌入式系統包括: 一處理器,用以請求該些重疊區段其中之一,該請求的重疊區段包括即將被該處理器存取的該資料之一區段; 一第一層級記憶體,耦接至該處理器,該第一層級記憶體儲存少於該資料之該些重疊區段;以及 一記憶體管理單元,耦接至該處理器及該第一層級記憶體,該記憶體管理單元用以 基於該處理器所提供之一邏輯位址決定該請求的重疊區段是否儲存於該第一層級記憶體儲存中,以及 當該請求的重疊區段儲存於該第一層級記憶體儲存中,則轉換該邏輯位址至一實體位址,其中該實體位址指向該請求的重疊區段。
  10. 如申請專利範圍第9項所述之嵌入式系統,其中該實體位址為一第一實體位址,以及其中該處理器更用以當該請求的重疊區段未儲存於該第一層級記憶體儲存中時,提供一直接記憶體存取命令,該嵌入式系統更包括: 一第二層級記憶體,耦接至該處理器及該第一層級記憶體,該第二層級記憶體儲存該程式之該些重疊區段;以及 一次要層級記憶體控制器,耦接在該第二層級記憶體及該處理器之間,該次要層級記憶體控制器用以 自該處理器接收該直接記憶體存取命令, 基於該直接記憶體存取命令提供一第二實體位址及一記憶體操作命令至該第二層級記憶體,以及 自該第二層級記憶體複製該請求的重疊區段至該第一層級記憶體。
TW104134476A 2015-08-28 2015-10-21 嵌入式系統 TWI569155B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/838,949 US10083135B2 (en) 2015-08-28 2015-08-28 Cooperative overlay

Publications (2)

Publication Number Publication Date
TWI569155B TWI569155B (zh) 2017-02-01
TW201709084A true TW201709084A (zh) 2017-03-01

Family

ID=58095610

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104134476A TWI569155B (zh) 2015-08-28 2015-10-21 嵌入式系統

Country Status (3)

Country Link
US (2) US10083135B2 (zh)
CN (1) CN106484525B (zh)
TW (1) TWI569155B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10558576B2 (en) * 2018-01-22 2020-02-11 Western Digital Technologies, Inc. Storage device with rapid overlay access
US11398268B1 (en) * 2021-02-02 2022-07-26 Macronix International Co., Ltd. Memory device and operation method for the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639927B2 (ja) * 1993-10-04 2005-04-20 株式会社ルネサステクノロジ データ処理装置
US5624316A (en) * 1994-06-06 1997-04-29 Catapult Entertainment Inc. Video game enhancer with intergral modem and smart card interface
KR100277902B1 (ko) * 1998-08-18 2001-01-15 김영환 마이크로 프로세서
US6625715B1 (en) * 1999-12-30 2003-09-23 Intel Corporation System and method for translation buffer accommodating multiple page sizes
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
TWI258079B (en) 2004-12-17 2006-07-11 Panasonic Taiwan Co Ltd Memory management method for embedded system and device thereof
US7886198B2 (en) * 2005-05-16 2011-02-08 Texas Instruments Incorporated Method and system of identifying overlays used by a program
US7962684B2 (en) 2008-02-14 2011-06-14 Sandisk Corporation Overlay management in a flash memory storage device
US8171206B2 (en) * 2008-07-22 2012-05-01 Sandisk Technologies Inc. Avoidance of self eviction caused by dynamic memory allocation in a flash memory storage device
US20110029735A1 (en) * 2009-07-28 2011-02-03 Ying-Chieh Chiang Method for managing an embedded system to enhance performance thereof, and associated embedded system
US8473921B2 (en) * 2009-12-15 2013-06-25 Microsoft Corporation Debugging mechanisms in a cache-based memory isolation system
US9317288B2 (en) * 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
JP5707265B2 (ja) * 2011-07-20 2015-04-22 ルネサスエレクトロニクス株式会社 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ
CN103871447B (zh) * 2012-12-14 2017-03-01 华邦电子股份有限公司 与非门快闪存储器阵列及芯片及其存取、读取及管理方法

Also Published As

Publication number Publication date
US20170060793A1 (en) 2017-03-02
CN106484525B (zh) 2019-09-24
TWI569155B (zh) 2017-02-01
US10635614B2 (en) 2020-04-28
US10083135B2 (en) 2018-09-25
US20180365183A1 (en) 2018-12-20
CN106484525A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
US10834224B2 (en) Transaction log acceleration
US11487787B2 (en) System and method for near-synchronous replication for object store
US10289551B2 (en) Preserving data upon a power shutdown
US10248322B2 (en) Memory system
US20200320036A1 (en) Data unit cloning in memory-based file systems
TWI448890B (zh) 記憶體系統、用於判定電子器件中之動態資料的方法及用於在非揮發性記憶體中執行記憶體垃圾收集之方法
JP6218869B2 (ja) Ssdへのコピーオンライト用システム及び方法
JP6882662B2 (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
US10073649B2 (en) Storing metadata
US9086991B2 (en) Solid state drive cache recovery in a clustered storage system
US10445236B2 (en) Method to consistently store large amounts of data at very high speed in persistent memory systems
KR20120135103A (ko) 비휘발성 메모리 시스템 내의 미사용 논리 어드레스들의 마운트 시간 맵핑 해제
US10452300B2 (en) Storage system, node apparatus, cache control method and program
JP2019521409A (ja) 仮想アドレスから物理アドレスへの変換を実行する入出力メモリ管理ユニットにおける複数のメモリ素子の使用
TWI569155B (zh) 嵌入式系統
JP2015179307A (ja) キャッシュメモリ、誤り訂正回路およびプロセッサシステム
CN109074308A (zh) 适应性的块转换表(btt)
TWI823504B (zh) 非暫態電腦可讀取媒體、儲存裝置、及儲存方法
US9678673B2 (en) Coordinating replication of data stored in a non-volatile memory-based system
US20180173431A1 (en) Method and device for managing storage system
US11755226B2 (en) Tracking changes of storage volumes during data transfers
US9442863B1 (en) Cache entry management using read direction detection
US20210089449A1 (en) Managing data dependencies in a transfer pipeline of a hybrid dimm
JP2013109404A (ja) 情報処理装置
TW201418984A (zh) 保護碟資料完整性的方法及實現其之電腦程式產品