TWI420309B - 設定記憶體位址空間的方法 - Google Patents
設定記憶體位址空間的方法 Download PDFInfo
- Publication number
- TWI420309B TWI420309B TW099139037A TW99139037A TWI420309B TW I420309 B TWI420309 B TW I420309B TW 099139037 A TW099139037 A TW 099139037A TW 99139037 A TW99139037 A TW 99139037A TW I420309 B TWI420309 B TW I420309B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- application
- setting
- mapping
- area
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000013507 mapping Methods 0.000 claims description 53
- 238000010586 diagram Methods 0.000 description 18
- 230000007334 memory performance Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 2
- 238000004645 scanning capacitance microscopy Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- GKSPIZSKQWTXQG-UHFFFAOYSA-N (2,5-dioxopyrrolidin-1-yl) 4-[1-(pyridin-2-yldisulfanyl)ethyl]benzoate Chemical compound C=1C=C(C(=O)ON2C(CCC2=O)=O)C=CC=1C(C)SSC1=CC=CC=N1 GKSPIZSKQWTXQG-UHFFFAOYSA-N 0.000 description 1
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Description
本發明是有關於一種記憶體映射方法,且特別是有關於一種可動態設定記憶體位址空間的方法。
多處理器系統目前只能由基本輸入輸出系統(Basic Input Output System,BIOS)設定成一種非均勻記憶體存取(Non-Uniform Memory Access,NUMA)或一種均勻記憶體存取(Uniform Memory Access,UMA)之2種記憶體位址空間映射模式。其中,UMA模式為每一個處理器存取任一個記憶體模組的時間都一樣。而NUMA模式為每一個處理器存取靠近自己的記憶體會比存取其它記憶體快。
在記憶體架構上若採用UMA模式,處理器的擴充性會受到記憶體頻寬的限制。而倘若採用NUMA模式可改善處理器擴充性受到記憶體頻寬限制的問題,但其本地處理器需花較多時間存取外部記憶體,且必須維持快取資料一致性。NUMA模式是使用本機記憶體和外部記憶體,本機記憶體是與目前執行的執行緒的處理器位於相同節點上的記憶體,而不屬於目前執行的執行緒節點的記憶體,就是外部記憶體。因此,在NUMA模式中,某些部分的記憶體區域在存取上有時會比存取其他區域更久。據此,單由BIOS來選擇使用一種UMA模式或一種NUMA模式似乎無法使系統達到最佳的效能。
本發明提供一種設定記憶體位址空間的方法,可讓系統隨著不同的需求來更改映射方式。
本發明提供一種設定記憶體位址空間的方法。在作業系統執行之下,取得應用程式的記憶體存取頻率。並且,依據此記憶體存取頻率決定記憶體區域的映射。接著,利用中斷訊號來執行中斷處理程式。在中斷處理程式執行之下,設定記憶體區域的映射。於作業系統中,將應用程式載入至記憶體區域來執行。
在本發明之一實施例中,上述取得應用程式的記憶體存取頻率的步驟中,可讀取應用程式的標頭以判斷應用程式的執行是基於處理器運算及記憶體存取其中之一或其組合,藉以得知記憶體存取頻率。
在本發明之一實施例中,上述取得應用程式的記憶體存取頻率的步驟中,還可自應用程式的歷史資料來取得記憶體存取頻率。例如,記錄應用程式在每次執行過程中啟動記憶體周期(memory cycle)的執行次數與其執行時間。並且,依據執行次數與執行時間計算出記憶體存取頻率。而在應用程式執行完成後,將應用程式的記憶體存取頻率與其全域唯一識別碼(Global Unique Identifier,GUID)儲存至參數記憶體中之應用程式所對應的歷史資料。
在本發明之一實施例中,上述在中斷處理程式執行之下,依據記憶體映射模式來設定記憶體區域的映射的步驟中,取得記憶體區域及記憶體區域的相關設定值,並且將記憶體區域的相關設定值設定至晶片組暫存器。
在本發明之一實施例中,上述在中斷處理程式執行之下,依據記憶體映射模式來設定記憶體區域的映射之後,可產生記憶體映射資料。而在作業系統中,讀取此記憶體映射資料,以將應用程式載入至對應的記憶體區域。
在本發明之一實施例中,上述記憶體區域的映射例如為某種均勻記憶體存取(Uniform Memory Access,UMA)模式或某種非均勻記憶體存取(Non-Uniform Memory Access,NUMA)模式。
在本發明之一實施例中,上述在設定記憶體位址空間的方法更可於開機過程中,提供一系統記憶體實體拓撲。此記憶體實體拓撲包括記憶體子系統組態以及記憶體拓撲結構。其中,記憶體子系統組態記錄插槽(socket)數量、各個插槽對應的通道(channel)數量,以及各個通道對應的記憶體模組數量。而記憶體拓撲結構記錄插槽、中央處理器執行緒、通道、記憶體模處以及排數(rank)之間的關係。並且在作業系統執行之下更可讀取系統記憶體實體拓撲。
基於上述,本發明可讓系統隨著不同的需求來更改映射方式,讓作業系統能夠隨時動態改變記憶體位址空間的映射,藉以獲得更好的系統效能。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例所繪示的電子裝置的方塊圖。請參照圖1,電子裝置100包括中央處理單元(Central Processing Unit,CPU)110、晶片組120及基本輸入輸出系統(Basic Input Output System,BIOS)儲存單元130。其中,晶片組120例如為南橋晶片或北橋晶片亦或是南、北橋晶片組,其分別與中央處理單元110及BIOS儲存單元130耦接。BIOS儲存單元130用以儲存BIOS的程式碼。以下即搭配電子裝置100來詳細說明設定記憶體位址空間的方法各步驟。
圖2是依照本發明一實施例所繪示的設定記憶體位址空間的方法流程圖。在本實施例中,作業系統能夠整體考量目前系統最佳化的系統記憶體位址空間的映射(mapping),並且據此向基本輸入輸出系統(Basic Input Output System,BIOS)提出其對記憶體位址空間的映射需求,由BIOS完成設定之後,再回報給作業系統。之後,作業系統再將應用程式,例如為行程(process)或執行緒(thread),載入至到其所需要之記憶體位址空間的記憶體區域來執行。
請參照圖2,在步驟S205中,中央處理單元110執行作業系統,以在作業系統執行之下,取得應用程式的記憶體存取頻率。例如,作業系統可讀取應用程式的標頭(header)來判斷此應用程式的執行是基於處理器運算或是記憶體存取,或是同時基於處理器運算與記憶體存取,藉以得知記憶體存取頻率。也就是說,當應用程式是基於處理器運算,則其使用到記憶體模組的機率便較低,表示其具有較低的記憶體存取頻率。而當應用程式是基於記憶體存取,則其使用到記憶體模組的機率較高,表示其具有較高的記憶體存取頻率。
另外,亦可藉由記錄此應用程式的歷史資料,而由歷史資料來判斷其記憶體存取頻率。例如,在每次應用程式執行的過程中將其啟動記憶體周期的執行次數與其執行時間記錄下來。並且,依據執行次數與執行時間計算出記憶體存取頻率。而在應用程式執行完成後,將應用程式的記憶體存取頻率與其全域唯一識別碼(Global Unique Identifier,GUID)儲存至參數記憶體(例如為非揮發性隨機存取記憶體)中之此應用程式所對應的歷史資料。據此,在作業系統於下次執行此應用程式時,便可依據此應用程式的GUID至參數記憶體中取得對應的歷史資料。
舉例來說,圖3是依照本發明一實施例所繪示的應用程式的歷史資料的示意圖。圖3為作業系統用來記錄應用程式的歷史資料的表格,包括三個欄位,分別用來記錄應用程式的GUID、記憶體存取頻率、記憶體效能需求以及重映射的位址分配。其中,記憶體效能需求是對應至記憶體存取頻率,記憶體存取頻率越高則記憶體效能需求亦越高。記憶體效能需求欄位中,記憶體效能需求的範為為0~255,數字越高表示記憶體存取頻率越高,因此在映射時,此記憶體存取頻率越高的記憶體區域具有越大的交錯存取(interleaving)。而重映射欄位中,s代表插槽比例、c代表通道比例、d代表記憶體模組比例、r代表排數比例。插槽比例以s(s0,s1)表示,通道比例以c(s#,c0,c1,c2),記憶體模組比例以d(s#,c#,d0,d1)表示,排數比例以r(s#,c#,d#,r0,r1)表示。上述s#為插槽編號,c#為通道編號,d#為記憶體模組編號。
接著,在步驟S210,作業系統會依據記憶體存取頻率選擇記憶體區域(Memory Region)的映射。一般而言,當應用程式開始進入系統且要求記憶體位址空間時,作業系統會找出一段可用的空間來分配給此應用程式來使用。在本實施例中,作業系統可依據此記憶體存取頻率來選擇一個記憶體區域,並且會依據此應用程式的記憶體存取頻率而決定選擇記憶體區域的映射模式,例如為某種均勻記憶體存取(Uniform Memory Access,UMA)模式或是某種非均勻記憶體存取(Non-Uniform Memory Access,NUMA)模式。
詳細地說,於開機過程中,BIOS會提供一系統記憶體實體拓撲。例如,在BIOS執行開機自我測試(Power On Self Test,POST)中,準備此系統記憶體實體拓撲。而作業系統在欲開始執行應用程式之前,會去讀取出此系統記憶體實體拓撲。據此,作業系統便可依據應用程式的記憶體存取頻率而自系統記憶體實體拓撲來找出適合的記憶體區域以及對應的映射模式。
此記憶體實體拓撲包括記憶體子系統組態以及記憶體拓撲結構。為了讓作業系統能夠讀取到系統記憶體實體拓撲可設計一程序(method)來讓作業系統呼叫。例如以AML(ACPI Machine Language)程式設計method_SMPT,其具有一個輸入參數與一個輸出參數。並且,可設計當輸入參數為0時,可讀取出記憶體子系統組態;輸入參數為1時,可讀取出映射之前的記憶體拓撲結構;輸入參數為2時,可讀取出映射之後的記憶體拓撲結構。上述記憶體子系統組態記錄插槽(socket)數量、各個插槽對應的通道(channel)數量,以及各個通道對應的記憶體模組數量。而記憶體拓撲結構記錄插槽、中央處理器執行緒、通道、記憶體模處以及排數(rank)之間的關係。
底下即舉例來說明何謂系統記憶體實體拓撲。
圖4是依照本發明一實施例所繪示的系統記憶體架構的示意圖。在本實施例中,此架構為多處理器系統,插槽0與插槽1分別代表不同的處理器,插槽0與插槽1分別具有三個通道,而每一個通道上面設置有兩個記憶體模組。在此,記憶體模組為雙列記憶體模組(Dual Inline Memory Module,DIMM)。也就是說,插槽0包括通道0、通道1與通道2,而這三個通道分別具有DIMM 0與DIMM 1。另外,插槽1亦包括通道0、通道1與通道2,且這三個通道分別具有DIMM 0與DIMM 1。另外,插槽0與插槽1分別具有4個核心(core),且每一個核心包括兩個執行緒(thread)。
圖5是依照本發明一實施例所繪示的記憶體子系統組態的示意圖。本實施例是以圖4的系統記憶體架構為例。請參照圖5,記憶體子系統組態包括2個插槽,每一個插槽具有3個通道,而每一個通道具有2個記憶體模組。
圖6是依照本發明一實施例所繪示的映射前的記憶體拓撲結構的示意圖。在本實施例中,記憶體拓撲結構記錄了記憶體映射前的排數的大小。請參照圖6,在此以圖4的架構為例,假設插槽0上的執行緒編號(Local APIC ID)為0~7,插槽1上的執行緒編號為8~15。其中,每一個記憶體模組的排數為2。各通道的DIMM 0的排數編號分別為0與1,而DIMM 1的排數編號分別為2與3。以圖4的架構中的插槽0而言,插槽0的通道0的DIMM 0與DIMM 1分別為2GB與4GB,其中DIMM 0的排數編號0與1所分配的大小各為1GB,而DIMM 1的排數編號2與3所分配的大小各為2GB。其餘以此類推。
圖7是依照本發明一實施例所繪示的記憶體區域配置的示意圖。請參照圖7,假設將記憶體位址空間配置為10個記憶體區域,即區域0~區域9。其中,區域0的範圍為0~(1M-1),區域1的範圍為1M~(3G-8M-1),區域2的範圍為(3G-8M)~(3G-1),區域3的範圍為3G~(4G-1),區域4的範圍為4G~(10G-9M-1),區域5的範圍為(10G-9M)~(18G-9M-1),區域6的範圍為(18G-9M)~(22G-9M-1),區域7的範圍為(22G-9M)~(25G-9M-1),區域8的範圍為(25G-9M)~(26G-1M-1),區域9的範圍為(26G-1M)~(33G-1M-1)。
基於圖4的架構與圖7的區域配置,底下再舉一例來說明映射之後的記憶體的配置為何。圖8是依照本發明一實施例所繪示的映射後的記憶體拓撲結構的示意圖。圖9是依照本發明一實施例所繪示的記憶體映射資料的示意圖。
請參照圖8,其記錄映射後的記憶體拓撲結構,也就是圖7的區域0~區域9各自對應的位置。以區域0的所配置的位置“(0(1GB-1MB),1(1GB)/2(2GB),3(2GB)”而言,其中“0(1GB-1MB),1(1GB)”代表插槽0的通道0的DIMM 0底下的排數編號0與排數編號1,“2(2GB),3(2GB)”代表插槽0的通道0的DIMM 1底下的排數編號2與排數編號3。排數編號0的剩餘大小為(1GB-1MB),排數編號1的剩餘大小為1GB,排數編號2的剩餘大小為2G,排數編號3的剩餘大小為2G。據此可以知道,區域0是配置在插槽0底下的通道0中,且是與此通道0連接的DIMM 0底下的排數編號0中,其配置大小為1MB,故剩餘大小還有(1GB-1MB)。其餘表述以此類推不再贅述。而由圖8便可以獲得記憶體映射資料,如圖9所示。
請參照圖9,欄位901記錄各記憶體區域的區域編號,欄位903記錄各記憶體區域的記憶體位址空間範圍,欄位905記錄記憶體區域大小,欄位907記錄各記憶體區域是否可重映射,欄位909記錄各記憶體區域的記憶體效能需求,欄位911記錄各記憶體區域的記憶體映射模式。
在欄位907中,0代表此記憶體區域不可重映射,1代表此記憶體區域可進行重映射。而在欄位909中,記憶體效能需求的範圍例如為0~255,數字越高表示此記憶體區域被存取的頻率越高,因此在映射時,此記憶體效能需求越高的記憶體區域具有越大的交錯存取(interleaving)。
在欄位911中,記憶體映射模式包括插槽比例、通道比例、記憶體模組比例以及排數比例,也就是記憶體區域映射至不同插槽、通道、記憶體模組以及排數所佔的比例。其中,插槽比例以s(s0,s1)表示,通道比例以c(s#,c0,c1,c2),記憶體模組比例以d(s#,c#,d0,d1)表示,排數比例以r(s#,c#,d#,r0,r1)表示。上述s#為插槽編號,c#為通道編號,d#為記憶體模組編號。
其中,區域0的記憶體區域大小為1MB。區域0的記憶體映射模式中,s(1,0)表示其插槽0與插槽1的配置比例為1:0,也就是區域0皆配置於插槽0。而c(0,1,0,0)表示其插槽0底下的通道0、通道1及通道2的配置比例為1:0:0,也就是區域0皆配置於插槽0的通道0之下。另外,d(0,0,1,0)表示其插槽0底下之通道0的DIMM 0與DIMM 1的配置比例為1:0,也就是區域0皆配置於插槽0的通道0底下DIMM 0中。r(0,0,0,0,1,0)代表插槽0對應的通道0底下的DIMM 0的排數比例為1:0,也就是其配置於插槽0對應的通道0底下之DIMM 0的排數0中,在此以(S0,C0,D0,R0)表示。其餘相同表述以此類推,底下不再贅述。一般而言,記憶體位址空間開始處,即區域0,為BIOS與作業系統所使用,因此為不可重映設,故其欄位907記錄為0。
區域1的記憶體區域大小為(3GB-9MB),一般用於存放作業系統的程式碼(code),因此不可重映射。區域1均勻分配於(S1,C0/C1/C2,D0/D1,R0/R1)。區域2的記憶體區域大小為8MB,一般是作為BIOS的SMM記憶體,因此不可重映射。區域2均勻分配於(S0,C0,D0,R0)。區域3的記憶體區域大小為1GB,一般是給記憶體映射I/O(Memory-mapped I/O,MMIO)來使用,故不會對此區域進行映射。區域4的記憶體區域大小為(6GB-9MB),其平均分配於插槽0的通道0中。區域5的記憶體區域大小為8GB,其平均分配於插槽0的通道1中。區域6的記憶體區域大小為4GB,其平均分配於插槽0的通道2中。區域7的記憶體區域大小為(3GB+4MB),其平均分配於插槽1的通道0中。區域8的記憶體區域大小為(1GB+4MB),其平均分配於插槽1的通道1中。區域9的記憶體區域大小為(7GB+1MB),其平均分配於插槽1的通道2中。
據此,作業系統在讀取了系統記憶體實體拓撲之後,便依據應用程式的記憶體效能需求自映射資料中選擇其中一個記憶體區域。
之後,在步驟S215中,利用一中斷訊號來執行中斷處理程式。例如,作業系統會透過軟體系統管理中斷(software system management interrupt,SW SMI)來達成設定記憶體區域的映射。作業系統可透過晶片組120(例如:南橋晶片)觸發SMI至中央處理單元110。當SMI被觸發到中央處理單元時,便會進入系統管理模式。CPU可以在系統管理模式下自系統管理隨機存取記憶體(System Management Random Access Memory,SMRAM)中讀取系統管理中斷處理程式(SMI handler routine,以下簡SMI處理程式),以由SMI處理程式來服務此系統管理中斷。
然後,在步驟S220,在中斷處理程式執行之下,由中斷處理程式來設定記憶體區域的映射。例如,中斷處理程式會取得記憶體區域及記憶體區域的相關設定值。之後,將記憶體區域的相關設定值設定至晶片組暫存器中。在設定完成之後,產生記憶體映射資料。並且執行RSM指令以退出SMM模式。
圖10是依照本發明一實施例所繪示的晶片暫存器設定值的示意圖。請參照圖10,欄位1001記錄各記憶體區域的區域編號,欄位1003記錄記憶體區域的基底位址、欄位1005記錄憶體區域的尺寸(單位為位元組),欄位1007、欄位1009、欄位1011及欄位1013分別記錄插槽比例、通道比例、記憶體模組比例及排數比例。
其中,欄位1007中,插槽比例佔4n個位元(bit),即2×2×n=4n bits。而n為每個插槽比例所佔之位元數。例如,n=3表示每個插槽比例之值為0~7,故插槽比例佔1.5 bytes。欄位1009中,通道比例佔6n bits,即2×3×n(2 bytes加上2 bits),S0代表插槽0中的通道比例,S1代表插槽1中的通道比例。欄位1011中,記憶體模組比例佔12n bits(4.5 bytes),即2×3×2n,“S0/C0”代表插槽0的通道0的記憶體模組比例,“S0/C1”代表插槽0的通道1的記憶體模組比例,“S0/C2”代表插槽0的通道2的記憶體模組比例,“S1/C0”代表插槽1的通道0的記憶體模組比例,“S1/C1”代表插槽1的通道1的記憶體模組比例,“S1/C2”代表插槽1的通道2的記憶體模組比例。欄位1013中,排數比例佔24n bits(9 bytes),即2×3×2×2×n,以“S#/C#/D#”代比哪一個插槽底下的哪一個通道的哪一個記憶體模組中的排數比例。
在本實施例中,為了讓作業系統能夠讀取到記憶體映射資料,可設計一程序(method)來讓作業系統呼叫。當作業系統呼叫此程序時,觸發SMI來執行SMI處理程式。例如以AML程式設計method_SCAM去獲得記憶體映射資料。作業系統取得記憶體映射資料便能夠知道記憶體區域是如何映射,因此能夠將應用程式載入到適當的記憶體區域中,以得較好得系統效能。也就是說作業系統可使用method_SCAM去配置(allocate)或釋放(release)記憶體位址空間的映射。作業系統會將選定的記憶體區域的基底位址與大小、以及決定配置記憶體區域或釋放記憶體區域的參數(例如,0為釋放,1為配置)輸入至此程序中。當欲進行設定記憶體區域的映射時,便會依據此記憶體區域於系統中所分配到的插槽比例、通道比例、記憶體模組比例以及排數比例來進行映射。
而在步驟S225中,於作業系統中,將應用程式載入至所選擇的記憶體區域來執行。而在應用程式執行完成之後,作業系統還可藉由中斷訊號進入SMM模式來釋放此記憶體區域。
綜上所述,本發明可讓系統隨著應用程式的需求來更改映射方式,讓作業系統能夠隨時動態改變記憶體位址空間的映射,藉以獲得更好的系統效能。這是因為作業系統可知道到目前時刻最佳化的記憶體位址空間的映射為何,因此,作業系統能夠動態對記憶體位址空間的區域執行重映射,使得系統能夠無時無刻皆維持在將最佳狀態,讓所有插槽上的通道都盡可能維持在有流量(traffic)的狀態。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...電子裝置
110...中央處理單元
120...晶片組
130...基本輸入輸出系統儲存單元
901~911、1001~1013...欄位
S205~S225...本發明一實施例之設定記憶體位址空間的方法各步驟
圖1是依照本發明一實施例所繪示的電子裝置的方塊圖。
圖2是依照本發明一實施例所繪示的設定記憶體位址空間的方法流程圖。
圖3是依照本發明一實施例所繪示的應用程式的歷史資料的示意圖。
圖4是依照本發明一實施例所繪示的系統記憶體架構的示意圖。
圖5是依照本發明一實施例所繪示的記憶體子系統組態的示意圖。
圖6是依照本發明一實施例所繪示的映射前的記憶體拓撲結構的示意圖。
圖7是依照本發明一實施例所繪示的記憶體區域配置的示意圖。
圖8是依照本發明一實施例所繪示的映射後的記憶體拓撲結構的示意圖。
圖9是依照本發明一實施例所繪示的記憶體映射資料的示意圖。
圖10是依照本發明一實施例所繪示的晶片暫存器設定值的示意圖。
S205~S225...本發明一實施例之設定記憶體位址空間的方法各步驟
Claims (9)
- 一種設定記憶體位址空間的方法,包括:在一作業系統執行之下,取得一應用程式的一記憶體存取頻率;依據該記憶體存取頻率決定一記憶體區域的映射;利用一中斷訊號來執行一中斷處理程式;在該中斷處理程式執行之下,設定該記憶體區域的映射,更包括:取得該記憶體區域及該記憶體區域的相關設定值;以及將該記憶體區域的相關設定值設定至一晶片組暫存器;以及於該作業系統中,載入該應用程式至該記憶體區域來執行。
- 如申請專利範圍第1項所述之設定記憶體位址空間的方法,其中取得該應用程式的記憶體存取頻率的步驟包括:讀取該應用程式的標頭以判斷該應用程式的執行是基於一處理器運算及一記憶體存取其中之一或其組合,藉以得知該記憶體存取頻率。
- 如申請專利範圍第1項所述之設定記憶體位址空間的方法,其中取得該應用程式的記憶體存取頻率的步驟包括:自該應用程式的歷史資料取得該記憶體存取頻率。
- 如申請專利範圍第3項所述之設定記憶體位址空間的方法,更包括:記錄該應用程式在每次執行過程中啟動一記憶體周期的一執行次數與其一執行時間;依據該執行次數與該執行時間計算出該記憶體存取頻率;以及在該應用程式執行完成後,將該應用程式的該記憶體存取頻率與其一全域唯一識別碼儲存至一參數記憶體中之該應用程式所對應的該歷史資料。
- 如申請專利範圍第1項所述之設定記憶體位址空間的方法,其中在該中斷處理程式執行之下,依據該記憶體映射模式來設定該記憶體區域的映射的步驟之後,更包括:產生一記憶體映射資料。
- 如申請專利範圍第5項所述之設定記憶體位址空間的方法,其中在於該作業系統中,載入該應用程式至該記憶體區域來執行的步驟包括:讀取該記憶體映射資料,以將該應用程式載入至對應的記憶體區域。
- 如申請專利範圍第1項所述之設定記憶體位址空間的方法,其中該記憶體區域的映射為均勻記憶體存取(Uniform Memory Access,UMA)模式或非均勻記憶體存取(Non-Uniform Memory Access,NUMA)模式。
- 如申請專利範圍第1項所述之設定記憶體位址空 間的方法,更包括:於一開機過程中,提供一系統記憶體實體拓撲,該記憶體實體拓撲包括一記憶體子系統組態以及一記憶體映射資料;其中,該記憶體子系統組態記錄一插槽數量、每一該些插槽對應的通道數量,以及每一該些通道對應的一記憶體模組數量;該記憶體拓撲結構記錄一插槽、一中央處理器執行緒、一通道、一記憶體模處以及一排數(rank)之間的關係。
- 如申請專利範圍第8項所述之設定記憶體位址空間的方法,其中在該作業系統執行之下更包括:讀取該系統記憶體實體拓撲。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139037A TWI420309B (zh) | 2010-11-12 | 2010-11-12 | 設定記憶體位址空間的方法 |
US13/159,783 US20120124323A1 (en) | 2010-11-12 | 2011-06-14 | Method for setting memory address space |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139037A TWI420309B (zh) | 2010-11-12 | 2010-11-12 | 設定記憶體位址空間的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201220044A TW201220044A (en) | 2012-05-16 |
TWI420309B true TWI420309B (zh) | 2013-12-21 |
Family
ID=46048879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099139037A TWI420309B (zh) | 2010-11-12 | 2010-11-12 | 設定記憶體位址空間的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120124323A1 (zh) |
TW (1) | TWI420309B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015155103A1 (de) * | 2014-04-08 | 2015-10-15 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt |
US10387315B2 (en) * | 2016-01-25 | 2019-08-20 | Advanced Micro Devices, Inc. | Region migration cache |
TWI767266B (zh) * | 2020-06-30 | 2022-06-11 | 神雲科技股份有限公司 | 基於記憶體對映輸入輸出的記憶體空間自動分配方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200643711A (en) * | 2005-02-12 | 2006-12-16 | Broadcom Corp | Memory management for a mobile multimedia processor |
US7584465B1 (en) * | 2004-09-20 | 2009-09-01 | The Mathworks, Inc. | Memory mapping for single and multi-processing implementations of code generated from a block diagram model |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124272B1 (en) * | 2003-04-18 | 2006-10-17 | Symantec Corporation | File usage history log for improved placement of files in differential rate memory according to frequency of utilizations and volatility of allocation space |
US7260698B2 (en) * | 2003-10-30 | 2007-08-21 | International Business Machines Corporation | Method and system for page initialization using off-level worker thread |
US8375190B2 (en) * | 2007-12-11 | 2013-02-12 | Microsoft Corporation | Dynamtic storage hierarachy management |
US8606545B2 (en) * | 2009-03-24 | 2013-12-10 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for memory configuration analysis |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US8990538B2 (en) * | 2010-11-05 | 2015-03-24 | Microsoft Corporation | Managing memory with limited write cycles in heterogeneous memory systems |
-
2010
- 2010-11-12 TW TW099139037A patent/TWI420309B/zh not_active IP Right Cessation
-
2011
- 2011-06-14 US US13/159,783 patent/US20120124323A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584465B1 (en) * | 2004-09-20 | 2009-09-01 | The Mathworks, Inc. | Memory mapping for single and multi-processing implementations of code generated from a block diagram model |
TW200643711A (en) * | 2005-02-12 | 2006-12-16 | Broadcom Corp | Memory management for a mobile multimedia processor |
Also Published As
Publication number | Publication date |
---|---|
TW201220044A (en) | 2012-05-16 |
US20120124323A1 (en) | 2012-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9720797B2 (en) | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller | |
KR101392109B1 (ko) | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 | |
US9720744B2 (en) | Performance monitoring of shared processing resources | |
CN111324493B (zh) | 针对处理器板级调试的开发系统及方法 | |
US8996788B2 (en) | Configurable flash interface | |
TWI803596B (zh) | 電子設備、記憶體管理方法及非暫時性機器可讀媒體 | |
TWI420309B (zh) | 設定記憶體位址空間的方法 | |
US8296552B2 (en) | Dynamically migrating channels | |
JP2008529181A5 (zh) | ||
US20140297920A1 (en) | Multi-core processor and control method | |
JP5756554B2 (ja) | 半導体装置 | |
US9513693B2 (en) | L2 cache retention mode | |
US20110320729A1 (en) | Cache bank modeling with variable access and busy times | |
JP6145193B2 (ja) | メモリへの読取り又は書込み | |
CN102467453B (zh) | 设定内存地址空间的方法 | |
US8639879B2 (en) | Sorting movable memory hierarchies in a computer system | |
CN106648878B (zh) | 一种系统及其动态分配mmio资源的方法 | |
US10754743B2 (en) | Apparatus and method using debug status storage element | |
US20100058044A1 (en) | Multiprocessor communication device and methods thereof | |
TW202119215A (zh) | 共用代碼之系統與代碼共用方法 | |
CN102929819A (zh) | 用于处理计算机系统中的存储设备的中断请求的方法 | |
Goglin et al. | Using performance attributes for managing heterogeneous memory in HPC applications | |
Kikuchi et al. | Development of Soft-Core Processor with Efficient Array Data Transfer Mechanism | |
WO2021196160A1 (zh) | 一种数据存储管理装置及处理核 | |
CN117493011A (zh) | 多核处理器的回溯方法、系统、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |