TW201426318A - 非一致性儲存結構實現方法及系統 - Google Patents
非一致性儲存結構實現方法及系統 Download PDFInfo
- Publication number
- TW201426318A TW201426318A TW101146486A TW101146486A TW201426318A TW 201426318 A TW201426318 A TW 201426318A TW 101146486 A TW101146486 A TW 101146486A TW 101146486 A TW101146486 A TW 101146486A TW 201426318 A TW201426318 A TW 201426318A
- Authority
- TW
- Taiwan
- Prior art keywords
- cpu
- local
- data
- memory
- access time
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種非一致性儲存結構實現方法及系統,該方法包括:控制伺服器中的每個中央處理器CPU訪問該伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體;獲取CPU訪問各記憶體所得的資料;當所得資料為全局資料時,將全局靜態資料放置於該CPU的其他遠端記憶體中,將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中;當所得資料為局部資料時,將該局部資料放置於該CPU的本地記憶體中。
Description
本發明涉及一種作業系統管理方法及系統,尤其涉及一種作業系統中的非一致性儲存結構實現方法及系統。
傳統的多核運算使用對稱多處理(Symmetrical Multi-Processing,SMP)模式,每個中央處理器(Central Processing Unit,CPU)均透過相同的記憶體控制器件訪問共同記憶體。現在的多核運算使用非一致性儲存結構(Non-Uniform Memory Access Architecture,NUMA)模式,每個CPU可以同時訪問不同的記憶體位址,可大幅度提高電腦的並行性。
現有的伺服器硬體從2006年開始支援NUMA模式,而市面上現有的作業系統則從2011年開始支援NUMA模式,從而導致採購於2006年至2011年之間的伺服器硬體雖可支援NUMA模式,但作業系統仍是SMP模式。如需伺服器工作在NUMA模式,則應花錢更新作業系統,否則作業系統只有按照SMP的方法,就是以最慢的方式,去訪問所有的資源,而導致伺服器的資源得不到充分的利用。因此需尋求一種針對伺服器硬體支援但是作業系統不支援NUMA模式時的方法,以自適應作業系統,以實現不需更新作業系統就可以達到支援NUMA模式的效果。
鑒於以上內容,有必要提供一種非一致性儲存結構實現方法及系統,以讓伺服器達到支援非一致性儲存結構模式的效果。
所述非一致性儲存結構實現方法,該方法包括以下步驟:控制伺服器中的每個中央處理器CPU訪問該伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體;獲取CPU訪問各記憶體所得的資料,該資料包括全局資料、局部讀寫資料和局部唯讀資料,其中,該全局資料包括全局靜態資料和全局動態資料;當CPU訪問所得資料為全局資料時,將全局靜態資料放置於該CPU的其他遠端記憶體中,將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中;當CPU訪問所得資料為局部讀寫資料時,將該局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體的容量不足時將所述局部讀寫資料放置於該CPU的本地遠端記憶體中;及當CPU訪問所得資料為局部唯讀資料時,將該局部唯讀資料放置於該CPU的本地記憶體中。
所述非一致性儲存結構實現系統,該系統包括:確定模組,用於控制伺服器中的每個中央處理器CPU訪問該伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體;獲取模組,用於獲取CPU訪問各記憶體所得的資料,該資料包括全局資料、局部讀寫資料和局部唯讀資料,其中,該全局資料包括全局靜態資料和全局動態資料;全局資料放置模組,用於當CPU訪問所得資料為全局資料時,將全局靜態資料放置於該CPU的其他遠端記憶體中,將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中;及局部資料放置模組,用於當CPU訪問的資料為局部讀寫資料時,將局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體的容量不足時將所述局部讀寫資料放置於該CPU的本地遠端記憶體中;及當CPU訪問的資料為局部唯讀資料時,將該局部唯讀資料放置於該CPU的本地記憶體中。
相較於習知技術,本發明所述之非一致性儲存結構實現方法及系統,在伺服器硬體支援但是作業系統不支援非一致性儲存結構(Non-Uniform Memory Access Architecture,NUMA)模式時,所述伺服器不需更新作業系統,即可達到支援NUMA模式的效果,節省了作業系統的更新費用,且提高了伺服器的運行效率。
如圖1所示,係為本發明非一致性儲存結構實現系統較佳實施例之運行環境圖。
非一致性儲存結構實現系統10運行於伺服器1中,該伺服器1可為雲端伺服器或者其他類型的伺服器。所述非一致性儲存結構實現系統10用於在伺服器硬體支援但是作業系統不支援非一致性儲存結構(Non-Uniform Memory Access Architecture,NUMA)模式時,使伺服器1達到支援NUMA模式的效果。
所述伺服器1中包括一個或多個計算單元2(圖1中僅畫出一個)及儲存系統3。所述計算單元2是簡化的系統主板,是一台沒有電源及散熱系統的“伺服器”。所述儲存系統3用於儲存伺服器1中的資料及所述非一致性儲存結構實現系統10的電腦程式化代碼。
所述計算單元2中包括一個或多個中央處理器20(Central Processing Unit,CPU)(以下簡稱CPU20),及一個或多個記憶體21。每個CPU20與一個或多個記憶體21連接,該與CPU20連接的記憶體21為該CPU20的本地記憶體。每個CPU20可訪問伺服器1中的所有記憶體21。需要說明的是,CPU20訪問本地記憶體的速度最快。
如圖2所示,係為本發明非一致性儲存結構實現系統較佳實施例之功能模組圖。所述非一致性儲存結構實現系統10包括獲取模組100、確定模組101、全局資料放置模組102及局部資料放置模組103。伺服器1的儲存系統3儲存模組100至103的電腦程式化代碼,計算單元2執行該電腦程式化代碼,提供模組100至103的下述功能。以下結合圖3說明模組100至103的功能。
如圖3所示,係為本發明非一致性儲存結構實現方法較佳實施例之流程圖。
步驟S10,所述獲取模組100獲取伺服器1中所有記憶體21的數量。如圖4所舉實例,伺服器1包括第一計算單元2a和第二計算單元2b,該第一計算單元2a與第二計算單元2b透過系統匯流排4連接。所述第一計算單元2a包括第一CPU、與第一CPU連接的第一記憶體、與第一CPU連接的第二CPU及與第二CPU連接的第二記憶體,所述第二計算單元2b包括第三CPU、與第三CPU連接的第三記憶體、與第三CPU連接的第四CPU及與第四CPU直接連接的第四記憶體。所述第一CPU與第三CPU透過系統匯流排4連接。獲取模組100獲取的記憶體21為第一記憶體、第二記憶體、第三記憶體及第四記憶體。
步驟S12,所述確定模組101控制每個CPU20訪問伺服器1中的所有記憶體21,並根據訪問時間確定每個CPU20的本地記憶體、本地遠端記憶體及其他遠端記憶體。所述本地記憶體是指與CPU20直接連接的記憶體21,所述本地遠端記憶體是指與CPU20位於同一個計算單元2中而未直接連接的記憶體,所述其他遠端記憶體是指與CPU20位於同一伺服器1而不在同一個計算單元2中的記憶體。
需要說明的是,根據各CPU20訪問各記憶體21的訪問時間,可確定每個CPU20的本地記憶體、本地遠端記憶體及其他遠端記憶體。所述CPU20訪問時間最短的記憶體21為該CPU20的本地記憶體。所述CPU20訪問時間最長的記憶體21為該CPU20的其他遠端記憶體,該最長訪問時間遠大於最短訪問時間,如該最長訪問時間為最短訪問時間的500倍至2000倍。所述CPU20訪問時間大於最短訪問時間且遠小於最長訪問時間的記憶體21為該CPU20的本地遠端記憶體,如該訪問時間為最短訪問時間的2倍至10倍。
如圖5所示,記錄了第一CPU、第二CPU、第三CPU及第四CPU訪問各記憶體的訪問時間,並由此得到一張訪問時間表。以圖4中的第一CPU為例進行介紹,該第一CPU可直接訪問第一記憶體,訪問時間為1納秒(ns);該第一CPU透過第二CPU來訪問第二記憶體,訪問時間為2ns;該第一CPU透過系統匯流排4及第三CPU來訪問第三記憶體,訪問時間為1000ns;因為第一計算單元2a的第一CPU透過系統匯流排4連接至第二計算單元2b的第三CPU,所以該第一CPU需透過系統匯流排4、第三CPU及第四CPU來訪問第四記憶體,訪問時間為1000ns。根據訪問時間可知:第一記憶體為第一CPU的本地記憶體,第二記憶體為第一CPU的本地遠端記憶體,第三記憶體及第四記憶體為第一CPU的其他遠端記憶體。
步驟S14,所述獲取模組100獲取CPU20訪問各記憶體21所得的資料,該資料包括全局資料、局部讀寫資料和局部唯讀資料,其中,該全局資料包括全局靜態資料和全局動態資料。所述全局靜態資料為僅需讀取而無需修改的資料,所述全局動態資料為需要同步的資料,所述局部讀寫資料及局部唯讀資料為需要頻繁存取的資料。
步驟S16,所述全局資料放置模組102判斷CPU20訪問所得資料是否為全局資料。當CPU20訪問所得資料為全局資料時,執行步驟S18並結束流程,否則,執行步驟S20。
步驟S18,所述全局資料放置模組102將全局靜態資料放置於該CPU20的其他遠端記憶體中,並將全局動態資料放置於該CPU20的本地記憶體或本地遠端記憶體中。
步驟S20,所述局部資料放置模組103判斷CPU20訪問所得資料是否為局部讀寫資料。當CPU20訪問所得資料為局部讀寫資料時,執行步驟S22並結束流程,否則,執行步驟S24。
步驟S22,所述局部資料放置模組103將局部讀寫資料優先放置於該CPU20的本地記憶體中,並在該CPU20的本地記憶體的容量不足時將局部讀寫資料放置於該CPU20的本地遠端記憶體中。
步驟S22,所述局部資料放置模組103將局部唯讀資料放置於該CPU20的本地記憶體中。
由於本發明中不同類型的資料所儲存的位置被預先設定,且透過非一致性儲存結構實現系統10及如圖4所示的內部連接,能在多個CPU20協同工作時,讓CPU20儘量訪問本身的記憶體,以此來提高CPU20訪問記憶體的速度,進而使得伺服器1的作業系統達到支援NUMA模式的效果。
綜上所述,本發明符合發明專利要件,爰依法提出專利申請。惟,以上所述者僅爲本發明之較佳實施例,本發明之範圍並不以上述實施例爲限,舉凡熟悉本案技藝之人士爰依本發明之精神所作之等效修飾或變化,皆應涵蓋於以下申請專利範圍內。
1...伺服器
10...非一致性儲存結構實現系統
2...計算單元
2a...第一計算單元
2b...第二計算單元
20...CPU
21...記憶體
3...儲存系統
4...系統匯流排
100...獲取模組
101...確定模組
102...全局資料放置模組
103...局部資料放置模組
S10...獲取伺服器中所有記憶體的數量
S12...控制每個CPU訪問伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體
S14...獲取CPU訪問各記憶體所得的資料
S16...訪問所得資料是否為全局資料
S18...將全局靜態資料放置於該CPU的其他遠端記憶體中,並將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中
S20...訪問所得資料是否為局部讀寫資料
S22...將局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體容量不足時放置於該CPU的本地遠端記憶體中
S24...將局部唯讀資料放置於該CPU的本地記憶體中
圖1係為本發明非一致性儲存結構實現系統較佳實施例之運行環境圖。
圖2係為本發明非一致性儲存結構實現系統較佳實施例之功能模組圖。
圖3係為本發明非一致性儲存結構實現方法較佳實施例之流程圖。
圖4係為舉例說明本發明中計算單元的內部連接示例圖。
圖5係為本發明非一致性儲存結構實現方法較佳實施例的訪問時間表之示例圖。
S10...獲取伺服器中所有記憶體的數量
S12...控制每個CPU訪問伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體
S14...獲取CPU訪問各記憶體所得的資料
S16...訪問所得資料是否為全局資料
S18...將全局靜態資料放置於該CPU的其他遠端記憶體中,並將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中
S20...訪問所得資料是否為局部讀寫資料
S22...將局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體容量不足時放置於該CPU的本地遠端記憶體中
S24...將局部唯讀資料放置於該CPU的本地記憶體中
Claims (10)
- 一種非一致性儲存結構實現方法,其中,該方法包括:
控制伺服器中的每個中央處理器CPU訪問該伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體;
獲取CPU訪問各記憶體所得的資料,該資料包括全局資料、局部讀寫資料和局部唯讀資料,該全局資料包括全局靜態資料和全局動態資料;
當CPU訪問所得資料為全局資料時,將全局靜態資料放置於該CPU的其他遠端記憶體中,將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中;
當CPU訪問所得資料為局部讀寫資料時,將該局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體的容量不足時將所述局部讀寫資料放置於該CPU的本地遠端記憶體中;及
當CPU訪問所得資料為局部唯讀資料時,將該局部唯讀資料放置於該CPU的本地記憶體中。 - 如申請專利範圍第1項所述之非一致性儲存結構實現方法,其中,所述伺服器包括一個或多個計算單元,每個計算單元包括一個或多個CPU及一個或多個記憶體,每個CPU均連接一個或多個記憶體。
- 如申請專利範圍第2項所述之非一致性儲存結構實現方法,其中,所述根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體的步驟包括:
確定所述CPU訪問時間最短的記憶體為該CPU的本地記憶體;
確定所述CPU訪問時間最長的記憶體為該CPU的其他遠端記憶體;
確定所述CPU訪問時間大於最短訪問時間且小於最長訪問時間的記憶體為該CPU的本地遠端記憶體。 - 如申請專利範圍第3項所述之非一致性儲存結構實現方法,其中,所述最長訪問時間為最短訪問時間的500倍至2000倍。
- 如申請專利範圍第3項所述之非一致性儲存結構實現方法,其中,所述本地遠端記憶體的訪問時間為最短訪問時間的2倍至10倍。
- 一種非一致性儲存結構實現系統,其中,該系統包括:
確定模組,用於控制伺服器中的每個中央處理器CPU訪問該伺服器中的所有記憶體,並根據訪問時間確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體;
獲取模組,用於獲取CPU訪問各記憶體所得的資料,該資料包括全局資料、局部讀寫資料和局部唯讀資料,該全局資料包括全局靜態資料和全局動態資料;
全局資料放置模組,用於當CPU訪問所得資料為全局資料時,將全局靜態資料放置於該CPU的其他遠端記憶體中,將全局動態資料放置於該CPU的本地記憶體或本地遠端記憶體中;及
局部資料放置模組,用於當CPU訪問的資料為局部讀寫資料時,將局部讀寫資料放置於該CPU的本地記憶體中,並在該CPU的本地記憶體的容量不足時將所述局部讀寫資料放置於該CPU的本地遠端記憶體中;及當CPU訪問的資料為局部唯讀資料時,將該局部唯讀資料放置於該CPU的本地記憶體中。 - 如申請專利範圍第6項所述之非一致性儲存結構實現系統,其中,所述伺服器包括一個或多個計算單元,每個計算單元包括一個或多個CPU及一個或多個記憶體,每個CPU均連接一個或多個記憶體。
- 如申請專利範圍第7項所述之非一致性儲存結構實現系統,其中,透過以下步驟確定每個CPU的本地記憶體、本地遠端記憶體及其他遠端記憶體:
確定所述CPU訪問時間最短的記憶體為該CPU的本地記憶體;
確定所述CPU訪問時間最長的記憶體為該CPU的其他遠端記憶體;
確定所述CPU訪問時間大於最短訪問時間且小於最長訪問時間的記憶體為該CPU的本地遠端記憶體。 - 如申請專利範圍第8項所述之非一致性儲存結構實現系統,其中,所述最長訪問時間為最短訪問時間的500倍至2000倍。
- 如申請專利範圍第8項所述之非一致性儲存結構實現系統,其中,所述本地遠端記憶體的訪問時間為最短訪問時間的2倍至10倍。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210518321.1A CN103853674A (zh) | 2012-12-06 | 2012-12-06 | 非一致性存储结构实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201426318A true TW201426318A (zh) | 2014-07-01 |
Family
ID=50861350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101146486A TW201426318A (zh) | 2012-12-06 | 2012-12-11 | 非一致性儲存結構實現方法及系統 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103853674A (zh) |
TW (1) | TW201426318A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461941B (zh) * | 2014-12-26 | 2018-09-04 | 浪潮电子信息产业股份有限公司 | 一种内存系统架构及管理方法 |
CN105224246B (zh) * | 2015-09-25 | 2018-11-09 | 联想(北京)有限公司 | 一种信息以及内存配置方法和装置 |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及系统 |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
-
2012
- 2012-12-06 CN CN201210518321.1A patent/CN103853674A/zh active Pending
- 2012-12-11 TW TW101146486A patent/TW201426318A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN103853674A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
JP6417344B2 (ja) | 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法 | |
JP6112594B2 (ja) | ハイブリッドメモリデバイス、メモリデバイスを含む電子デバイス、および、メモリデバイス用のコントローラ | |
US9298389B2 (en) | Operating a memory management controller | |
CN102331974B (zh) | 用于处理器主存储器的持久存储器 | |
US9965222B1 (en) | Software mode register access for platform margining and debug | |
US11392488B2 (en) | Optimizing storage of application data in memory | |
US20160055095A1 (en) | Storing data from cache lines to main memory based on memory addresses | |
US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
US10761986B2 (en) | Redirecting data to improve page locality in a scalable data fabric | |
TW201528136A (zh) | 準確預測記憶體存取之以區域爲基礎的技術 | |
TW201426318A (zh) | 非一致性儲存結構實現方法及系統 | |
JP6231194B2 (ja) | 電子デバイス、メモリコントローラ、装置 | |
JP2020087470A (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
ATE415664T1 (de) | System und verfahren für einen speicher mit kombiniertem leitungs- und wortzugang | |
CN104575595A (zh) | 非易失性随机存取的存储装置 | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
TW201923591A (zh) | 電腦記憶體內容移動 | |
CN107632779B (zh) | 数据处理方法和装置、服务器 | |
Chen et al. | Unified non-volatile memory and NAND flash memory architecture in smartphones | |
TW201447750A (zh) | 合併記憶體存取請求之技術 | |
JP2018136922A (ja) | メモリープールを有するコンピューティングシステムのためのメモリー分割 | |
JP2016167215A (ja) | メモリ装置 | |
US20210224213A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
Kim et al. | HMB in DRAM-less NVMe SSDs: Their usage and effects on performance |