TWI518585B - 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 - Google Patents
具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 Download PDFInfo
- Publication number
- TWI518585B TWI518585B TW104115743A TW104115743A TWI518585B TW I518585 B TWI518585 B TW I518585B TW 104115743 A TW104115743 A TW 104115743A TW 104115743 A TW104115743 A TW 104115743A TW I518585 B TWI518585 B TW I518585B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- threshold
- processor
- draft
- physical address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
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)
Description
本發明是有關於一種記憶體的管理方法,且特別是有關於一種草稿式記憶體的管理方法與具有草稿式記憶體的電子裝置。
一些研究發現,在一個系統上晶片的功率消耗中,記憶體子系統所消耗的功率可能佔了50%至70%。習知的快取記憶體具有資料記憶體與標籤記憶體,但標籤記憶體會消耗很多功率。圖1繪示了習知的草稿式記憶體。請參照圖1,草稿式記憶體200包括了列解碼器210、資料記憶體220、行多工器222、感測放大器224與輸出驅動器226,但草稿式記憶體200中並沒有標籤記憶體。草稿式記憶體與快取記憶體有幾個不同。第一,因為草稿式記憶體沒有標籤記憶體與比較器,因此有較小的功耗。第二,草稿式記憶體有自己的位址空間但快取記憶體沒有。第三,草稿式記憶體只是單純的記憶體,必須透過軟體來決定哪些資料要搬移至其
中。圖2是繪示了一種混和式的記憶體架構。請參照圖2,晶片310中包括了處理器311、重定向器312、草稿式記憶體313與快取記憶體314,而晶片310外則設置了動態隨機存取記憶體320。當處理器311傳送一個記憶體位址給重定向器312時,重定向器312會判斷此記憶體位址是否屬於草稿式記憶體313的位址空間。若此記憶體位址屬於草稿式記憶體313的位址空間,則重定向器312會將記憶體位址傳送至草稿式記憶體313,否則傳送至快取記憶體314。然而,處理器311必須決定哪些資料要搬移至草稿式記憶體313。一種作法是將處理器311常常存取的資料搬移至草稿式記憶體313藉此降低存取快取記憶體314的次數,進而降低整體的功率消耗。然而,此領域技術人員仍在研究是否有更好的管理方法。
本發明提出一種具有草稿式記憶體的電子裝置,包括處理器、轉譯後備緩衝器、重定向器、草稿式記憶體、快取記憶體與記錄電路。轉譯後備緩衝器是耦接至處理器並具有多個條目。轉譯後備緩衝器接收來自處理器的虛擬位址,此虛擬位址是配對至條目中的第一條目。轉譯後備緩衝器根據虛擬位址與第一條目中記錄的實體頁面號碼而輸出實體位址。重定向器是耦接至轉譯後備緩衝器,用以接收實體位址。草稿式記憶體是耦接至重定向器。快取記憶體是耦接至重定向器。記錄電路是耦接至轉譯後備緩衝器、快取
記憶體與處理器。記錄電路紀錄多個計數值,這些計數值分別是對應至上述的條目。重定向器將實體位址傳送至草稿式記憶體或快取記憶體。若快取記憶體存取實體位址時發生快取未中,記錄電路更新對應至第一條目的第一計數值,並且判斷第一計數值是否符合一臨界條件。若第一計數值符合臨界條件,記錄電路傳送中斷訊號至處理器,處理器將實體位址所對應的資料搬移至草稿式記憶體。若第一計數值不符合臨界條件,處理器將實體位址所對應的資料搬移至快取記憶體中。
本發明的實施例提出一種草稿式記憶體的管理方法,適用於一電子裝置。此電子裝置包括處理器、轉譯後備緩衝器、重定向器、草稿式記憶體與快取記憶體。此轉譯後備緩衝器具有多個條目,並且來自處理器的一虛擬位址是配對至第一條目。轉譯後備緩衝器根據虛擬位址與第一條目中記錄的實體頁面號碼而輸出實體位址。重定向器將實體位址傳送至草稿式記憶體或快取記憶體。此管理方法包括:紀錄多個計數值,這些計數值分別是對應至條目;若快取記憶體存取實體位址時發生快取未中,更新對應至第一條目的第一計數值,並且判斷第一計數值是否符合一臨界條件;若第一計數值符合臨界條件,將實體位址所對應的資料搬移至草稿式記憶體;以及若第一計數值不符合臨界條件,將實體位址所對應的資料搬移至快取記憶體中。
在本發明實施例提出的電子裝置與管理方法中,是根據快取未中來決定搬移那些資料置草稿式記憶體,
因此可以降低對於外部記憶體的存取次數。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
200‧‧‧草稿式記憶體
210‧‧‧列解碼器
220‧‧‧資料記憶體
222‧‧‧行多工器
224‧‧‧感測放大器
226‧‧‧輸出驅動器
310‧‧‧晶片
311‧‧‧處理器
312‧‧‧重定向器
313‧‧‧草稿式記憶體
314‧‧‧快取記憶體
320‧‧‧動態隨機存取記憶體
500‧‧‧電子裝置
501‧‧‧晶片
502‧‧‧軟體
503‧‧‧資料搬移中斷處理程序
504‧‧‧臨界值調整程序
510‧‧‧處理器
511‧‧‧虛擬位址
520‧‧‧轉譯後備緩衝器
521‧‧‧配對訊號
522‧‧‧實體位址
530‧‧‧重定向器
540‧‧‧草稿式記憶體
550‧‧‧快取記憶體
551‧‧‧快取未中訊號
560‧‧‧記錄電路
561‧‧‧中斷訊號
570‧‧‧外部記憶體
601~603‧‧‧及閘
611~613‧‧‧計數器
621~623‧‧‧比較器
630‧‧‧或閘
640‧‧‧條目
701~710、1001~1006‧‧‧步驟
[圖1]繪示了習知的草稿式記憶體。
[圖2]是繪示了一種混和式的記憶體架構。
[圖3]是根據一實施例繪示電子裝置的電路示意圖。
[圖4]是根據一實施例繪示轉譯後備緩衝器520與記錄電路560的示意圖。
[圖5]是根據一實施例繪示資料流的流程圖。
[圖6]是根據一實施例繪示實作臨界值調整程序的虛擬碼。
[圖7]是根據一實施例繪示草稿式記憶體的管理方法的流程圖。
在本文中使用「第一」、「第二」與「第三」等等之詞彙,是用來辨別具有相同名詞的物件或資料,並不具有特定的順序。另外,關於本文中所使用之「耦接」,可指二個元件直接地或間接地作電性連接。也就是說,當以下描述「第一物件耦接至第二物件」時,第一物件與第二物件之間還可設置其他的物件。
請參照圖2,在圖2的記憶體架構中是將常常存取的資料搬移至草稿式記憶體313,然而此作法並沒有辦法減少存取動態隨機存取記憶體320的次數,這可能因為以下幾個理由。首先,在把資料搬移至草稿式記憶體313之前,資料是儲存在快取記憶體314中且快取記憶體314的命中率(hit rate)可能很高。因此,把資料搬移至草稿式記憶體313並無法大幅減少對於動態隨機存取記憶體320的存取。第二,由於草稿式記憶體313的大小有限,因此造成快取未中(cache miss)的資料可能因為它們的存取次數不高而不會被搬移至草稿式記憶體313。
一般來說,快取未中可分為三類,分別是強迫(compulsory)、抵觸(conflict)與容量(capacity)未中。強迫未中的產生是由於第一次的資料存取,而另外兩類則是因為對於快取線(cache lines)的競爭。由於快取未中是存取動態隨機存取記憶體320的主要原因,為了減少對於動態隨機存取記憶體320的存取,本實施例是根據快取未中來決定那些資料要搬移至草稿式記憶體。
圖3是根據一實施例繪示電子裝置的電路示意圖。請參照圖3,電子裝置500可以被實作為手機、平板電腦、筆記型電腦或是任意形式的嵌入式系統。或者,電子裝置500也可以實作為電路板、晶片等。本發明並不限制電子裝置500是否為企業-消費者(business-to-customer)產品或是企業-企業(business-to-business)產品。在此實施例中,電子裝置500包括在晶片501內的處理器510、轉譯後
備緩衝器(Translation Lookaside Buffer,TLB)520、重定向器530、草稿式記憶體540、快取記憶體550與記錄電路560。在一些實施例中,電子裝置500也包括在晶片501外的外部記憶體570。然而,在其他的實施例中,外部記憶體570也可以設置在晶片501中,本發明並不在此限。在此實施例中,外部記憶體570例如為動態隨機存取記憶體。
在一些實施例中,電子裝置500也具有軟體502。軟體502至少包括了資料搬移中斷處理程序(interrupt handler)503與臨界值調整程序504。軟體502可被載入至外部記憶體570中,並由處理器510來執行。後續會再詳細描述資料搬移中斷處理程序503與臨界值調整程序504。
在此實施例中,處理器501為中央處理器,但在其他實施例中也可以是圖形處理單元、微處理器、或其他能夠執行指令的電路。當處理器501要執行會存取記憶體的指令(例如為“儲存”(Store)”或是“載入”(Load)的指令)時,會發出虛擬位址511給轉譯後備緩衝器520。然而,上述儲存、載入的指令僅是範例,本發明並不限制處理器501使用的指令集。
圖4是根據一實施例繪示轉譯後備緩衝器520與記錄電路560的示意圖。請一併參照圖3與圖4,轉譯後備緩衝器520是耦接至處理器510並具有多個條目(entry)。每個條目至少包括有效(valid)欄位、標籤欄位與實體頁面欄位。有效欄位紀錄了對應的條目是否有效,標籤欄位紀錄了
標籤,而實體頁面欄位了則記錄了實體頁面號碼(physical page number,PPN)。當接收到虛擬位址511以後,轉譯後備緩衝器520例如會把虛擬位址511中若干個位元當作虛擬頁面號碼,並根據此虛擬頁面號碼來找到其中一個條目(在此稱為第一條目,例如為條目640)。虛擬位址511中其他的一些位元會被當作標籤以比較是否與第一條目640中的標籤相同。若虛擬位址511中的標籤與第一條目640中的標籤相同,則稱虛擬位址511配對至第一條目640。接下來,轉譯後備緩衝器520會根據虛擬位址511與第一條目640中記錄的實體頁面號碼產生一個實體位址522,此實體位址522會傳送至重定向器530。然而,本領域具有通常知識者當可理解上述配對的操作與產生實體位址的操作,並且在不同的架構中上述操作可能有一些不同,本發明並不在此限。特別的是,轉譯後備緩衝器520會傳送多個配對訊號521給記錄電路560,這些配對訊號521是用以指出哪一個條目被配對到了。例如,第一條目640所對應的配對訊號521是邏輯“1”,其他則是邏輯“0”。
請參照回圖3,重定向器530是耦接至轉譯後備緩衝器520並會接收實體位址522。重定向器530會判斷此實體位址522使否屬於草稿式記憶體540的位址空間。若此實體位址522屬於草稿式記憶體540的位址空間,則重定向器530會傳送實體位址522至草稿式記憶體540以存取其中的資料,否則會傳送至快取記憶體550。
草稿式記憶體540是耦接至重定向器530,其結
構是相同於或類似於圖1所繪示的草稿式記憶體200。快取記憶體550也是耦接至重定向器530,其結構可以是N路組相聯,其中N可為1、2、4、8或其他合適的正整數。然而,本發明並不限制草稿式記憶體540與快取記憶體550的大小。在此實施例中,草稿式記憶體540與快取記憶體550例如為靜態隨機存取記憶體,但本發明並不在此限。
當快取記憶體550發生快取未中時,則表示實體位址522所對應的資料並不在快取記憶體550中,必須從外部記憶體570取得資料,並將此資料搬移至快取記憶體550或是草稿式記憶體540中。值得注意的是,在圖3中快取記憶體550與外部記憶體570之間的階層關係僅是範例,在其他實施例中電子裝置500也可以有更多層級的快取記憶體,或者外部記憶體570還可以耦接至其他的記憶體(例如耦接快閃記憶體或硬碟),而發生快取未中時實體位址522所對應的資料可從此快閃記憶體或硬碟搬移至外部記憶體570,再搬移至快取記憶體550或是草稿式記憶體540。
記錄電路560是耦接至轉譯後備緩衝器520、快取記憶體550與處理器510。此記錄電路560紀錄了多個計數值,這些計數值分別是對應至轉譯後備緩衝器520中的條目。以下將說明如何利用這些計數值來決定將那些資料搬移至草稿式記憶體540。
若快取記憶體550存取實體位址522時發生快取未中,則快取記憶體550會傳送一個快取未中訊號551給記錄電路560。接收到此快取未中訊號551以後,記錄電路
560會根據配對訊號521找到上述第一條目所對應的計數值(亦稱第一計數值)。記錄電路560會更新此第一計數值,並且判斷此第一計數值是否符合一個臨界條件。舉例來說,每次記錄電路560更新第一計數值時會增加此第一計數值(例如加上1),並判斷第一計數值是否大於一個臨界值,若第一計數值大於此臨界值則表示第一計數值符合臨界條件。然而,在其他實施例中,每次記錄電路560更新第一計數值時也可以將第一計數值減去1,並且判斷此第一計數值是否小於另一臨界值以判斷是否符合臨界條件。或者,記錄電路560也可以判斷第一計數值是否在某一個特定數值區間內以判斷是否符合臨界條件。本發明並不限制如何更新計數值也不限制臨界條件的內容。
若第一計數值符合臨界條件,則表示第一條目所對應的實體頁面已發生了許多快取未中,此時記錄電路560會傳送中斷訊號561至處理器510。處理器510會執行資料搬移中斷處理程序503以將實體位址522所對應的資料搬移至草稿式記憶體540中。另一方面,若第一計數值不符合臨界條件,則處理器510會將實體位址522所對應的資料搬移至快取記憶體550中。換言之,透過這些計數值,最常發生快取未中的資料會被搬移至草稿式記憶體540中。
在此實施例中,上述實體位址522所對應的資料的大小是相同於一個頁面的大小。詳細來說,實體位址522是屬於某一實體頁面,而處理器510是將此實體頁面所有的資料都搬移至草稿式記憶體540。然而,在其他實施例
中,上述實體位址522所對應的資料的大小也可以是一或多條快取線的大小。舉例來說,處理器510可以在實體位址522所屬的實體頁面中,把實體位址522附近的資料搬移至草稿式記憶體540,而且這些資料的大小是相同於一或多個快取線的大小。
在此實施例中每個計數值是對應至轉譯後備緩衝器520的條目,而每個條目是對應至一個頁面,並且發生快取未中時會更新其中一個計數值,因此這些計數值所代表的意義是對應的頁面發生快取未中的次數。值得注意的是,在此實施例中這些計數值是對應至轉譯後備緩衝器520的條目而不是頁面,這有幾個理由。首先,若沒有額外的分析(profiling),是無法得知一個程式中頁面的個數,因此也無法得知需要幾個計數值。另一方面,即使可以取得程式中頁面的個數,此個數可能很大,且不同的程式可能有不同的頁面個數。因此,對於每個頁面都記錄對應的計數值會有很大的複雜度。相反的,轉譯後備緩衝器520中條目的數目是已知且相對地較小,因此可以減少記錄電路560的複雜度。
由於轉譯後備緩衝器520中的條目是對應至某一個程式或是某一個虛擬頁面,當轉譯後備緩衝器520中一個條目發生未中時,對應的計數值則會失去意義。因此,在一些實施例,則記錄電路560會重置發生未中的條目所對應的計數值。並且,當處理器510發生上下文交換(context switch)時,記錄電路560會重置所有的計數值。
在圖4的實施例中,記錄電路560包括了多個及
閘601~603、多個計數器611~613、多個比較器621~623與或閘630。每一個及閘601~603的第一輸入端都耦接至轉譯後備緩衝器520中的一個條目以接收對應的配對訊號521,每一個及閘601~603的第二輸入端則接收來自快取記憶體550的快取未中訊號551。在此實施例中,當虛擬位址配對至第一條目640時,第一條目640對應的配對訊號521會是邏輯“1”,其他的配對訊號521則是邏輯“0”;當快取記憶體550發生快取未中時,快取未中訊號551也會是邏輯“1”。配對訊號521與快取未中訊號551會被做“及”(AND)的運算。計數器611~613分別是耦接至及閘601~603的輸出端,這些計數器611~613分別記錄了上述的計數值。當其中一個及閘601~603的輸出為邏輯“1”時,會驅動對應的計數器更新計數值。比較器621~623的第一輸入端會接收一個臨界值,第二輸入端會分別耦接至計數器611~613以接收計數值。比較器621~623會判斷這些計數值是否大於臨界值,若是則會輸出邏輯“1”。或閘630的多個輸入端是分別耦接至比較器621~623,當有一個比較器621~623的輸出為邏輯“1”時,或閘630的輸出端會輸出中斷訊號561。值得注意的是,圖4中的記錄電路560僅是一範例,本領域具有通常知識者當可根據上述記錄電路560的功能而實作出不同的電路。
圖5是根據一實施例繪示資料流的流程圖。請參照圖5,在步驟701,處理器510執行一指令。在步驟702中,判斷此指令是否會存取記憶體(例如為載入或儲存指令)。若
步驟702的結果為是,則進行步驟703,判斷所要存取的資料是否在草稿式記憶體540中。若資料是在草稿式記憶體540中,執行步驟704,存取草稿式記憶體540中的資料。若步驟703的結果為否,則執行步驟705,判斷資料是否在快取記憶體550中。若步驟705的結果為是,存取快取記憶體550中的資料,否則執行步驟706,記錄電路560會更新計數值。在步驟707中,判斷計數值是否符合臨界條件。若步驟707的結果為否,則將資料從外部記憶體570中搬移至快取記憶體550中,並且存取快取記憶體550中的資料。若步驟707的結果為是,執行上述的資料搬移中斷處理程序503以將對應的頁面搬移至草稿式記憶體540中並且更新頁面表(page table)。在步驟710中,存取草稿式記憶體550中的資料。
在此說明資料搬移中斷處理程序503。首先,在接收到中斷訊號561以後,處理器510會先判斷草稿式記憶體540是否有閒置空間。若草稿式記憶體540中有閒置空間,則會將發生快取未中的頁面的資料搬移至草稿式記憶體540中。若草稿式記憶體540中沒有閒置空間,則處理器510會從草稿式記憶體540中選擇一頁面,並將其資料搬移至外部記憶體,接下來再將頁面的資料搬移至草稿式記憶體540中。在此實施例中,處理器510所使用的是循環(round-robin)的策略來選擇草稿式記憶體540中的頁面。然而,在其他實施例中,處理器510也可以使用最近最少(least recently used)策略、先進先出(first in first out)
策略或是其他合適的策略,本發明並不在此限。最後,不論草稿式記憶體540是否有閒置空間都會更新頁面表。具體來說,由於草稿式記憶體540具有自己的記憶體空間,因此草稿式記憶體540上的實體位址並不會與外部記憶體570的實體位址重疊。若有頁面P被搬移至草稿式記憶體540,並且頁面Q被搬移至外部記憶體570,則必須更新頁面表以反應頁面P與頁面Q實體位址的改變。
在上述比較計數值與臨界值的實施例中,臨界值的大小會影響資料的搬移。然而,對於不同的程式,可能會需要不同的臨界值來反應程式的行為。在一些實施例中,處理器510會定期地執行臨界值調整程序504來調整此臨界值。具體來說,處理器510會判斷從一第一時間點至一第二時間點是否有資料被搬移至草稿式記憶體540,且草稿式記憶體540是否具有閒置空間。上述第二時間點是目前執行臨界值調整程序504的時間點,而第一時間點是在第二時間點之前,例如是上一次執行臨界值調整程序504的時間點。若從第一時間點至第二時間點沒有資料被搬移至草稿式記憶體540且草稿式記憶體540具有閒置空間,則表示臨界值設定的太大,使得上述的資料搬移中斷處理程序503不常被觸發,因此在此情況下處理器510會減少臨界值。
另一方面,處理器510也會取得一目前外部存取次數,此目前外部存取次數表示從第一時間點到第二時間點之間存取外部記憶體570的次數(例如以區塊為單位)。處理器510還會取得一先前外部存取次數,此先前外部存取次
數表示從一第三時間點到第一時間點之間存取外部記憶體570的次數。此第三時間點是早於第一時間點。處理器510會判斷目前外部存取次數是否小於先前外部存取次數。若目前外部存取次數不小於先前外部存取次數,這表示先前使用的臨界值比目前的臨界值好,因此在此情況下會維持臨界值不變。相反地,若目前外部存取次數小於先前外部存取次數,則表示目前使用的臨界值比先前使用的臨界值好,在此情況下應該繼續調整臨界值。舉例來說,處理器510可判斷目前的臨界值是否大於一先前臨界值(即,在上一次資料搬移中斷處理程序503中所使用的臨界值),若目前的臨界值大於先前臨界值,則增加目前的臨界值。若目前的臨界值不大於先前臨界值,則處理器510會減少目前的臨界值。接下來,在臨界值調整程序504的最後會重置所有的計數值。值得注意的是,在上述增加或減少臨界值的步驟中,可對臨界值做任意的運算,但本發明並不在此限。
圖6是根據一實施例繪示實作臨界值調整程序的虛擬碼。請參照圖6,MApre表示前一個時間區間內(從第三時間點到第一時間點)存取外部記憶體570的次數。MAcur表示目前的時間區間內(從第一時間點到第二時間點)存取外部記憶體570的次數(以區塊為單位)。Thpre表示在前一個時間區間的臨界值(即先前臨界值)。Thcur表示目前時間區間的臨界值。Pcur表示在目前時間區間內搬移至草稿式記憶體540的頁面數。Thnext表示在下一個時間區間的臨界值。
在圖6的第1行中,會先初始化MApre、MAcur、
Thcur、Thnext。然而,這些初始化的數值僅是範例,本發明並不在此限。在第2行,每隔一預設時間處理器都會被一個計時器觸發以執行後續第3~14行的程式碼。在第5~6行,若Pcur小於等於0且草稿式記憶體(在圖6中表示為SPM)有閒置的空間,則會減少臨界值(例如除以2)。在第7行,判斷MAcur是否小於MApre。在第8~9行,若目前的臨界值Thcur大於先前臨界值Thpre,則增加臨界值(例如乘以2),否則在第11行會減少臨界值(例如除以2)。若MAcur不小於MApre,在第13行會維持臨界值不變。在第14行,重置所有的計數器(即重置計數值)。
在上述的實施例中,處理器510是每隔一段預設時間便執行臨界值調整程序504一次。然而,在其他實施例中,處理器510也可以不定期地執行臨界值調整程序504。舉例來說,處理器510可以判斷快取記憶體550的未中比率(miss rate)是否大於一個未中臨界值,若是則會執行臨界值調整程序504。
圖7是根據一實施例繪示草稿式記憶體的管理方法的流程圖。請參照圖7,在步驟1001中,紀錄多個計數值。在步驟1002中,判斷是否發生快取未中。若步驟1002的結果為是(假設此時第一條目被配對),在步驟1003中,更新對應至第一條目的第一計數值。在步驟1004中,判斷第一計數值是否符合臨界條件。若步驟1004的結果為是,在步驟1005中,將實體位址所對應的資料搬移至草稿式記憶體。若步驟1004的結果為否,在步驟1006中,將實體位
址所對應的資料搬移至快取記憶體中。然而,圖7中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖7中各步驟可以實作為多個程式碼、電路或其結合,本發明並不在此限。此外,圖7的方法可以搭配以上實施例使用,也可以單獨使用。換言之,圖7的各步驟之間也可以加入其他的步驟。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
500‧‧‧電子裝置
501‧‧‧晶片
502‧‧‧軟體
503‧‧‧資料搬移中斷處理程序
504‧‧‧臨界值調整程序
510‧‧‧處理器
511‧‧‧虛擬位址
520‧‧‧轉譯後備緩衝器
521‧‧‧配對訊號
522‧‧‧實體位址
530‧‧‧重定向器
540‧‧‧草稿式記憶體
550‧‧‧快取記憶體
551‧‧‧快取未中訊號
560‧‧‧記錄電路
561‧‧‧中斷訊號
570‧‧‧外部記憶體
Claims (10)
- 一種具有草稿式記憶體的電子裝置,包括:一處理器;一轉譯後備緩衝器(Translation Lookaside Buffer),耦接至該處理器並具有多個條目,其中該轉譯後備緩衝器接收來自該處理器的一虛擬位址,該虛擬位址是配對至該些條目中的一第一條目,該轉譯後備緩衝器根據該虛擬位址與該第一條目中記錄的一實體頁面號碼而輸出一實體位址;一重定向器,耦接至該轉譯後備緩衝器,接收該實體位址;一草稿式記憶體,耦接至該重定向器;一快取記憶體,耦接至該重定向器;以及一記錄電路,耦接至該轉譯後備緩衝器、該快取記憶體與該處理器,其中該記錄電路紀錄多個計數值,該些計數值分別是對應至該些條目,其中該重定向器將該實體位址傳送至該草稿式記憶體或該快取記憶體,其中若該快取記憶體存取該實體位址時發生快取未中,該記錄電路更新該些計數值中對應至該第一條目的一第一計數值,並且判斷該第一計數值是否符合一臨界條件,若該第一計數值符合該臨界條件,該記錄電路傳送一中斷訊號至該處理器,該處理器將該實體位址所對應的資 料搬移至該草稿式記憶體,若該第一計數值不符合該臨界條件,該處理器將該實體位址所對應的該資料搬移至該快取記憶體中。
- 如申請專利範圍第1項所述之電子裝置,其中該記錄電路包括:多個及閘,每一該些及閘的第一輸入端耦接至該些條目的其中之一,每一該些及閘的第二輸入端接收來自該快取記憶體的一快取未中訊號,多個計數器,分別耦接至該些及閘的輸出端,該些計數器分別記錄該些計數值;多個比較器,每一該些比較器的第一輸入端接收一臨界值,每一該些比較器的第二輸入端耦接至該些計數器的其中之一;一或閘,其多個輸入端分別耦接至該些比較器的輸出端,該或閘的輸出端輸出該中斷訊號。
- 如申請專利範圍第1項所述之電子裝置,其中該記錄電路判斷該第一計數值是否符合該臨界條件的操作包括:該記錄電路判斷該第一計數值是否大於一臨界值;若該第一計數值大於該臨界值,該記錄電路判斷該第一計數值符合該臨界條件。
- 如申請專利範圍第3項所述之電子裝置,該處理器還用以執行一臨界值調整程序,該臨界值調整程序包括:判斷從一第一時間點至一第二時間點是否有資料被搬移至該草稿式記憶體,且該草稿式記憶體是否具有閒置空間;以及若從該第一時間點至該第二時間點沒有資料被搬移至該草稿式記憶體且該草稿式記憶體具有閒置空間,減少該臨界值。
- 如申請專利範圍第4項所述之電子裝置,更包括一外部記憶體,其中當該快取記憶體存取該實體位址且發生快取未中時,該處理器是從該外部記憶體取得該實體位址所對應的該資料,該臨界值調整程序還包括:取得一目前外部存取次數,該目前外部存取次數表示從該第一時間點到該第二時間點之間存取該外部記憶體的次數;取得一先前外部存取次數,該先前外部存取次數表示從一第三時間點到該第一時間點之間存取該外部記憶體的次數,其中該第三時間點是早於該第一時間點;判斷該目前外部存取次數是否小於該先前外部存取次數;若該目前外部存取次數不小於該先前外部存取次 數,維持該臨界值不變;以及重置該些計數值。
- 如申請專利範圍第5項所述之電子裝置,其中該臨界值調整程序更包括:若該目前外部存取次數小於該先前外部存取次數,判斷該臨界值是否大於一先前臨界值;若該臨界值大於該先前臨界值,增加該臨界值;以及若該臨界值不大於該先前臨界值,減少該臨界值。
- 如申請專利範圍第4項所述之電子裝置,其中該處理器是每隔一預設時間便執行該臨界值調整程序一次。
- 如申請專利範圍第1項所述之電子裝置,其中當該處理器中發生一上下文交換時,該記錄電路重置該些計數值。
- 如申請專利範圍第1項所述之電子裝置,該實體位址所對應的該資料的大小是相同於一頁面的大小。
- 一種草稿式記憶體的管理方法,適用於一電子裝置,該電子裝置包括一處理器、一轉譯後備緩衝 器、一重定向器、一草稿式記憶體與一快取記憶體,其中該轉譯後備緩衝器具有多個條目,來自該處理器的一虛擬位址是配對至該些條目中的一第一條目,該轉譯後備緩衝器根據該虛擬位址與該第一條目中記錄的一實體頁面號碼而輸出一實體位址,該重定向器將該實體位址傳送至該草稿式記憶體或該快取記憶體,其中該管理方法包括:紀錄多個計數值,其中該些計數值分別是對應至該些條目;若該快取記憶體存取該實體位址時發生快取未中,更新該些計數值中對應至該第一條目的一第一計數值,並且判斷該第一計數值是否符合一臨界條件;若該第一計數值符合該臨界條件,將該實體位址所對應的資料搬移至該草稿式記憶體;以及若該第一計數值不符合該臨界條件,將該實體位址所對應的該資料搬移至該快取記憶體中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104115743A TWI518585B (zh) | 2015-05-18 | 2015-05-18 | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 |
US14/940,486 US9875191B2 (en) | 2015-05-18 | 2015-11-13 | Electronic device having scratchpad memory and management method for scratchpad memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104115743A TWI518585B (zh) | 2015-05-18 | 2015-05-18 | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI518585B true TWI518585B (zh) | 2016-01-21 |
TW201642123A TW201642123A (zh) | 2016-12-01 |
Family
ID=55640444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104115743A TWI518585B (zh) | 2015-05-18 | 2015-05-18 | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9875191B2 (zh) |
TW (1) | TWI518585B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
US10296465B2 (en) * | 2016-11-29 | 2019-05-21 | Board Of Regents, The University Of Texas System | Processor using a level 3 translation lookaside buffer implemented in off-chip or die-stacked dynamic random-access memory |
US10866900B2 (en) | 2017-10-17 | 2020-12-15 | Samsung Electronics Co., Ltd. | ISA extension for high-bandwidth memory |
KR102144011B1 (ko) * | 2019-02-15 | 2020-08-12 | 성균관대학교산학협력단 | 가상화 서비스에서 페이지 캐시 관리 방법 및 장치 |
US11429524B2 (en) * | 2020-02-10 | 2022-08-30 | International Business Machines Corporation | Optimized hierarchical scratchpads for enhanced artificial intelligence accelerator core utilization |
CN114019843B (zh) * | 2021-10-12 | 2023-11-28 | 浙江中控技术股份有限公司 | 一种基于fpga实现hart通信的用户空间i/o框架 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0689141A3 (en) * | 1994-06-20 | 1997-10-15 | At & T Corp | Disruption-based hardware support for system performance profiling |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5950205A (en) * | 1997-09-25 | 1999-09-07 | Cisco Technology, Inc. | Data transmission over the internet using a cache memory file system |
US5893159A (en) | 1997-10-22 | 1999-04-06 | International Business Machines Corporation | Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system |
US6434608B1 (en) * | 1999-02-26 | 2002-08-13 | Cisco Technology, Inc. | Methods and apparatus for caching network traffic |
EP1489490A3 (en) | 2003-06-19 | 2005-09-14 | Texas Instruments Incorporated | Method for converting a cache to a scratch-pad memory |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7466724B2 (en) * | 2004-10-14 | 2008-12-16 | Tektronix, Inc. | Apparatus and method of analyzing packetized data spanning over multiple clock cycles |
US7461210B1 (en) * | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
JP4864840B2 (ja) | 2007-08-31 | 2012-02-01 | 株式会社東芝 | マイクロプロセッサ |
KR101615659B1 (ko) | 2009-07-16 | 2016-05-12 | 삼성전자주식회사 | 스크래치 패드 메모리 관리 장치 및 방법 |
TWI439857B (zh) | 2010-11-29 | 2014-06-01 | Univ Nat Changhua Education | 記憶體位址重新映射裝置與修復方法 |
TWI450194B (zh) | 2011-11-10 | 2014-08-21 | Inst Information Industry | 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體 |
US9767032B2 (en) * | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US9021172B2 (en) * | 2012-07-06 | 2015-04-28 | Arm Limited | Data processing apparatus and method and method for generating performance monitoring interrupt signal based on first event counter and second event counter |
US9158702B2 (en) | 2012-12-28 | 2015-10-13 | Intel Corporation | Apparatus and method for implementing a scratchpad memory using priority hint |
-
2015
- 2015-05-18 TW TW104115743A patent/TWI518585B/zh not_active IP Right Cessation
- 2015-11-13 US US14/940,486 patent/US9875191B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160342526A1 (en) | 2016-11-24 |
TW201642123A (zh) | 2016-12-01 |
US9875191B2 (en) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI518585B (zh) | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 | |
US9292447B2 (en) | Data cache prefetch controller | |
US9886385B1 (en) | Content-directed prefetch circuit with quality filtering | |
US9280474B2 (en) | Adaptive data prefetching | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US8352683B2 (en) | Method and system to reduce the power consumption of a memory device | |
US9218040B2 (en) | System cache with coarse grain power management | |
JP6478843B2 (ja) | 半導体装置及びキャッシュメモリ制御方法 | |
JP2018504694A (ja) | 仮想アドレスを使用してアクセスされるキャッシュ | |
CN109219804B (zh) | 非易失内存访问方法、装置和*** | |
US10613984B2 (en) | Prefetch tag for eviction promotion | |
CN108351818B (zh) | 用于在存储器中实现纠错码的***和方法 | |
CA2787560C (en) | System and method for locking data in a cache memory | |
US9128856B2 (en) | Selective cache fills in response to write misses | |
Kim et al. | HAD-TWL: Hot address detection-based wear leveling for phase-change memory systems with low latency | |
JP2013097638A (ja) | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム | |
JP2018536230A (ja) | キャッシュへのアクセス | |
US20140156941A1 (en) | Tracking Non-Native Content in Caches | |
US9720834B2 (en) | Power saving for reverse directory | |
JP6477352B2 (ja) | 演算処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム | |
CN116361206A (zh) | 一种可配置容量的地址转换缓冲标记控制器及其应用方法 | |
JP2013097637A (ja) | キャッシュ装置、メモリシステム及びデータ転送方法 | |
JP2000235519A (ja) | キャッシュシステムおよびキャッシュ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |