TWI677787B - 資料管理裝置、方法及其電腦程式產品 - Google Patents

資料管理裝置、方法及其電腦程式產品 Download PDF

Info

Publication number
TWI677787B
TWI677787B TW107143665A TW107143665A TWI677787B TW I677787 B TWI677787 B TW I677787B TW 107143665 A TW107143665 A TW 107143665A TW 107143665 A TW107143665 A TW 107143665A TW I677787 B TWI677787 B TW I677787B
Authority
TW
Taiwan
Prior art keywords
data
memory space
sub
dimensional memory
independent
Prior art date
Application number
TW107143665A
Other languages
English (en)
Other versions
TW202022617A (zh
Inventor
薛文蔚
Wenwey Hseush
黃怡誠
Yi Cheng Huang
Original Assignee
核桃運算股份有限公司
BigObject Inc.
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 核桃運算股份有限公司, BigObject Inc. filed Critical 核桃運算股份有限公司
Priority to TW107143665A priority Critical patent/TWI677787B/zh
Priority to CN201811519913.9A priority patent/CN111274165A/zh
Application granted granted Critical
Publication of TWI677787B publication Critical patent/TWI677787B/zh
Publication of TW202022617A publication Critical patent/TW202022617A/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Non-Volatile Memory (AREA)

Abstract

一種資料管理裝置、方法及其電腦程式產品。資料管理裝置讀取一遞迴結構資料且將之儲存於一維記憶體空間。遞迴結構資料於一維記憶體空間具有一位置無關結構,且為可擴充及可增長的。遞迴結構資料包含多個資料元素及多個子位置無關結構一對一地對應至該等資料元素,各資料元素具有一第一編號,各子位置無關結構具有一第二編號。資料管理裝置係依據第一編號遞減地將該等資料元素緊鄰地儲存於一維記憶體空間,依據第二編號遞增地將該等子位置無關結構緊鄰地儲存於一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。

Description

資料管理裝置、方法及其電腦程式產品
本發明係關於一種資料管理裝置、方法及其電腦程式產品。具體而言,本發明係關於一種遞迴結構資料(recursively structured data)之資料管理裝置、方法及其電腦程式產品。
由於電子計算裝置(例如:伺服器、個人電腦)之實體記憶體(physical memory)之空間有限,現今作業系統多採用虛擬記憶體(virtual memory)配合需求分頁(demand paging)技術來管理執行中之應用程式所需之記憶體空間。在一應用程式運行時,若其當下所需之程式碼或/及資料尚未被載入實體記憶體,便會發生分頁錯誤(page fault)。當發生分頁錯誤時,作業系統會判斷造成分頁錯誤之該次存取是否合法。若造成分頁錯誤之該次存取是合法的,則作業系統會嘗試將所需之分頁資料從硬碟上之虛擬記憶體載入實體記憶體。儘管在發生分頁錯誤時作業系統可透過前述方式讓應用程式仍可取得所需之程式碼或/及資料,但其過程涉及磁碟之輸入及輸出,因而相當耗時。
因此,如何降低一應用程式在運行時發生分頁錯誤之機率以提升該應用程式之運行效能,同時保持該應用程式之資料之可擴充性及可 增長性以適用於更多樣化的應用領域(例如:會不斷產生串流資料之物聯網),為本領域亟需克服的議題。
為解決前述問題,本發明提供了一種資料管理裝置、方法及其電腦程式產品,其係於一維記憶體空間雙向地且緊密地排列一遞迴結構資料,且該遞迴結構資料具可擴充性及可增長性。
本發明所提供之資料管理裝置包含一個一維記憶體空間及一處理器,且二者係電性連接。該處理器讀取一遞迴結構資料(recursively structured data)且將該遞迴結構資料儲存於該一維記憶體空間。該遞迴結構資料於該一維記憶體空間中具有一位置無關結構(Location Independent Structure;LIS)。該遞迴結構資料包含複數個資料元素(data elements)及複數個子位置無關結構(Sub-Location Independent Structure;Sub-LISs),該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號。該處理器係以下列方式將該遞迴結構資料儲存於該一維記憶體空間:依據該等第一編號遞減地將該等資料元素緊鄰地儲存於該一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。
於一實施方式中,該資料管理裝置還包含一介面,且該介面電性連接至該處理器。該介面接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構。該處理器還將該新資料元素緊鄰地儲存於該等資料元素之前,且將該新子位置無關結構緊鄰地儲存於 該等子位置無關結構之後。
於一實施方式中,該資料管理裝置還包含一介面,且該介面電性連接至該處理器。該介面接收一新資料元素,其中該新資料元素對應至該遞迴結構資料。該處理器還將該新資料元素緊鄰地儲存於該等資料元素之前。
於一實施方式中,各該子位置無關結構為一底層位置無關結構(Bottom Location Independent Structure;Bottom LIS),各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間。該資料管理裝置還包含一介面,且該介面電性連接至該處理器。該介面接收一新底層資料元素。該處理器還將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素之後。
本發明所提供之資料管理方法適用於一電子計算裝置。該資料管理方法包含下列步驟:(a)讀取一遞迴結構資料,以及(b)將該遞迴結構資料儲存於一個一維記憶體空間,其中該遞迴結構資料於該一維記憶體空間中具有一位置無關結構,該遞迴結構資料包含複數個資料元素及複數個子位置無關結構,該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號。具體而言,該步驟(b)係依據該等第一編號遞減地將該等資料元素緊鄰地儲存於一個一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等 資料元素之後。
於一實施方式中,資料管理方法還包含下列步驟:(c)接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構,以及(d)將該新資料元素緊鄰地儲存於該等資料元素之前,且將該新子位置無關結構緊鄰地儲存於該等子位置無關結構之後。
於一實施方式中,資料管理方法還包含下列步驟:(e)接收一新資料元素,其中該新資料元素對應至該遞迴結構資料,以及(f)將該新資料元素緊鄰地儲存於該等資料元素之前。
於一實施方式中,各該子位置無關結構為一底層位置無關結構,各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間。該資料管理方法還包含下列步驟:(g)接收一新底層資料元素,以及(h)將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素之後。
本發明所提供之電腦程式產品包含複數個程式指令。一電子計算裝置載入該電腦程式產品後,該電子計算裝置執行該電腦程式產品所包含之該等程式指令以實現前述各種資料管理方法。
本發明所提供之資料管理技術(包含裝置、方法及其電腦程式產品)係於一維記憶體空間緊密地排列一遞迴結構資料之複數個資料元素及複數個子位置無關結構。由於該遞迴結構資料本身所具有之遞迴結構,每一個子位置無關結構中之資料之相關性高。因此,本發明所提供之資料管 理技術將該等子位置無關結構緊密地排列於一維記憶體空間,能提高該遞迴結構資料於該一維記憶體空間之參考局部性(locality of reference),降低發生分頁錯誤之機率。再者,本發明所提供之資料管理技術係於該一維記憶體空間雙向地排列該等資料元素及該等子位置無關結構,因此若後續有該遞迴結構資料之雙親(parent)、其他兄弟或最後一個底層位置無關結構之新底層資料元素,亦能在該一維記憶體空間中將其緊鄰地排列於該遞迴結構資料旁,達到可擴充性及可增長性。
透過將一遞迴結構資料之複數個資料元素及複數個子位置無關結構緊密地且雙向地排列於一維記憶體空間,本發明所提供之資料管理技術能在降低一應用程式在運行時發生分頁錯誤之機率,提升該應用程式之運行效能,同時保持該應用程式之資料之可擴充性及可增長性,因而能適用於更多樣化的應用領域(例如:會不斷產生串流資料之物聯網)。
以下結合圖式闡述本發明之詳細技術及實施方式,俾使本發明所屬技術領域中具有通常知識者能理解所請求保護之發明之技術特徵。
1‧‧‧資料管理裝置
11‧‧‧一維記憶體空間
13‧‧‧處理器
15‧‧‧介面
10‧‧‧遞迴結構資料
e 0、……、e p-1‧‧‧資料元素
LIS 0、……、LIS p-1‧‧‧子位置無關結構
12‧‧‧遞迴結構資料
e p ‧‧‧新資料元素
LIS p ‧‧‧新子位置無關結構
e^‧‧‧新資料元素
20‧‧‧遞迴結構資料
LIS_0、……、LIS_ p-1‧‧‧子位置無關結構
22‧‧‧遞迴結構資料
e p-1,0、……、
Figure TWI677787B_D0001
‧‧‧底層資料元素
Figure TWI677787B_D0002
‧‧‧新底層資料元素
S301、S303‧‧‧步驟
第1A圖描繪第一實施方式之資料管理裝置1之架構示意圖;第1B圖描繪第一實施方式之遞迴結構資料10之示意圖;第1C圖描繪一維記憶體空間11所儲存之遞迴結構資料12之示意圖;第1D圖描繪一維記憶體空間11中擴充後之遞迴結構資料12之示意圖;第1E圖描繪一維記憶體空間11中增長後之遞迴結構資料12 之示意圖;第2A圖描繪第二實施方式之遞迴結構資料20之示意圖;第2B圖描繪一維記憶體空間11所儲存之遞迴結構資料22之示意圖;第2C圖描繪一維記憶體空間11中擴充後之遞迴結構資料22之示意圖;以及第3圖描繪第三實施方式之資料管理方法之流程圖。
以下將透過實施方式來解釋本發明所提供之資料管理裝置、方法及其電腦程式產品。然而,該等實施方式並非用以限制本發明需在如該等實施方式所述之任何環境、應用或方式方能實施。因此,關於以下實施方式之說明僅在於闡釋本發明之目的,而非用以限制本發明之範圍。應理解,在以下實施方式及圖式中,與本發明非直接相關之元件已省略而未繪示,且圖式中各元件之尺寸以及元件間之尺寸比例僅為便於繪示及說明,而非用以限制本發明之範圍。
本發明所提供之資料管理裝置、方法及其電腦程式產品係以一位置無關結構(Location Independent Structure;LIS)來存取、處理及管理一遞迴結構資料(recursively structured data)。位置無關結構為不具有根節點之樹資料結構。位置無關結構為一種具有高度局部性(strong locality)的機制,其係以階層(或樹)的方式於記憶體空間排列眾多的資料元素(data elements)。由於具有高度局部性,相關的資料元素被緊密地群聚在一起(亦即,這些資料元素之間不存在其他不相關之資料元素)以便於管理及提升效 能。在管理方面,能在不處理任何指標(pointer)的情況下,將一個位置無關結構或其子位置無關結構(Sub-Location Independent Structure;Sub-LIS)整塊地重新安置(re-locate)於其他的記憶體空間。這也是「位置無關結構」之命名由來。在效能方面,因具有高度局部性,大型的位置無關結構也能夠被有效率地存取及運作。
本發明之第一實施方式為一資料管理裝置1,其架構示意圖係描繪於第1A圖。資料管理裝置1包含一個一維記憶體空間11、一處理器13及一介面15,其中處理器13電性連接至一維記憶體空間11及介面15。一維記憶體空間11可為一靜態隨機存取記憶體(Static Random Access Memory;SRAM)、一動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)、一快閃記憶體或本發明所屬技術領域中具有通常知識者所知之其他記憶體空間。處理器13可為各種處理單元、中央處理單元(Central Processing Unit;CPU)、微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor;DSP)或本發明所屬技術領域中具有通常知識者所知之任何其他具有相同功能之計算裝置。介面15可為一有線介面或一無線介面,其係用於連接至一網路(例如:一網際網路、一區域網路,但不以此為限)且透過該網路收送訊號及接收資料。
資料管理裝置1之處理器13會讀取一應用程式(未繪示)運行時所需之遞迴結構資料(recursively structured data)10。於本實施方式中,介面15自資料管理裝置1之外部接收遞迴結構資料10,而處理器13係讀取介面15所接收之遞迴結構資料10。於某些實施方式中,資料管理裝置1還包含一儲存器(例如:硬碟)且該儲存器儲存遞迴結構資料10,而處理器13係讀 取該儲存器所儲存之遞迴結構資料10。
第1B圖係描繪遞迴結構資料10之示意圖,其中灰色格子代表資料元素,而白色格子代表子位置無關結構。遞迴結構資料10包含複數個資料元素e 0、……、e p-1及複數個子位置無關結構LIS 0、……、LIS p-1。資料元素e 0、……、e p-1一對一地對應至子位置無關結構LIS 0、……、LIS p-1;具體而言,子位置無關結構LIS 0為資料元素e 0之子孫(descendant),子位置無關結構LIS p-1為資料元素e p-1之子孫,依此類推。資料元素e 0、……、e p-1各自具有一第一編號(亦即,上標的1、……、p-1),且子位置無關結構LIS 0、……、LIS p-1各自具有一第二編號(亦即,上標的1、……、p-1)。需說明者,一資料元素之第一編號與其所對應之子位置無關結構之第二標號相同。如第1B圖所示,由於遞迴結構資料10本身具有遞迴結構,因此子位置無關結構LIS 0、……、LIS p-1各自還可包含複數個資料元素及與該等資料元素對應之複數個其他的子位置無關結構,依此類推。
處理器13將遞迴結構資料10儲存於一維記憶體空間11作為遞迴結構資料12,且遞迴結構資料12於一維記憶體空間11中具有一位置無關結構。具體而言,處理器13係以下列方式將遞迴結構資料10儲存於一維記憶體空間11,使一維記憶體空間11中之遞迴結構資料12具有位置無關結構:沿著一維記憶體空間11之記憶體位址所界定的一個方向(例如:記憶體位址遞增的方向),依據該等第一編號(亦即,1、……、p-1)遞減地將資料元素e 0、……、e p-1緊鄰地儲存於一維記憶體空間11,依據該等第二編號(亦即,1、……、p-1)遞增地將子位置無關結構LIS 0、……、LIS p-1緊鄰地儲存於一維記憶體空間11,且將子位置無關結構LIS 0、……、LIS p-1儲存於緊 接於資料元素e 0、……、e p-1之後,如第1C圖所示。具體而言,處理器13係依據以下公式(1)將遞迴結構資料10儲存於一維記憶體空間11作為遞迴結構資料12:LIS:=e p-1。。。e 0LIS 0。。。LIS p-1 (1)
上述公式(1)中,變數LIS代表一維記憶體空間11中之遞迴結構資料12,變數p為一正整數,變數e i 代表遞迴結構資料12之一資料元素,變數LIS i 代表遞迴結構資料12之一子位置無關結構且對應至資料元素e i ,變數i為介於0及p-1間之整數,且符號「。」表示在一維記憶體空間11中為緊鄰的(亦即,由符號「。」相連之二個變數所代表之資料在一維記憶體空間11中為緊鄰的,例如:變數e 0所對應之資料元素與變數LIS 0所對應之子位置無關結構在一維記憶體空間11中為緊鄰的)。
由公式(1)及第1C圖可知,處理器13係於一維記憶體空間11雙向地排列遞迴結構資料12;具體而言,子位置無關結構LIS 0、……、LIS p-1依據第二編號遞增地朝記憶體位址所界定的方向緊密地排列,而資料元素e 0、……、e p-1依據第一編號遞增地朝記憶體位址所界定的相反方向緊密地排列。在一維記憶體空間11中,資料元素e 0、……、e p-1間無其他資料,子位置無關結構LIS 0、……、LIS p-1間無其他資料,且資料元素e 0與子位置無關結構LIS 0間無其他資料,因此一維記憶體空間11中之遞迴結構資料12具有高度局部性。此外,由於遞迴結構資料12於一維記憶體空間11係雙向地排列,因此具有可擴充性及可增長性。
於某些實施方式中,儲存於一維記憶體空間11之遞迴結構資料12為可擴充的(extendible),亦即,可橫向地增加兄弟(sibling)。茲假設 在一維記憶體空間11被載入遞迴結構資料12後之某一時刻,介面15接收到資料元素e 0、……、e p-1之一兄弟及該兄弟之子孫。具體而言,介面15係接收到一新資料元素e p 及一新子位置無關結構LIS p ,其中新資料元素e p 對應至新子位置無關結構LIS p (亦即,新子位置無關結構LIS p 為新資料元素e p 之子孫)。
於這些實施方式中,處理器13於一維記憶體空間11中將新資料元素e p 緊鄰地儲存於資料元素e 0、……、e p-1之前(亦即,將新資料元素e p 緊鄰地儲存於資料元素e 0、……、e p-1所對應的記憶體位址之前),且於一維記憶體空間11中將新子位置無關結構LIS p 緊鄰地儲存於子位置無關結構LIS 0、……、LIS p-1之後(亦即,將新子位置無關結構LIS p 緊鄰地儲存於子位置無關結構LIS 0、……、LIS p-1所對應之記憶體位址之後),如第1D圖所示。具體而言,處理器13係依據以下公式(2)於一維記憶體空間11安排新資料元素e p 及新子位置無關結構LIS p 以更新一維記憶體空間11中之遞迴結構資料12;LIS':=e p LISLIS p :=e p e p-1.。。。e 0LIS 0。。。LIS p-1LIS p (2)
上述公式(2)中,相較於公式(1)所新增之變數LIS'代表一維記憶體空間11中更新後之遞迴結構資料12,變數e p 代表新資料元素,且LIS p 代表新子位置無關結構。由於處理器13係於一維記憶體空間11中將新資料元素e p 緊鄰地儲存於資料元素e 0、……、e p-1之前且將新子位置無關結構LIS p 緊鄰地儲存於子位置無關結構LIS 0、……、LIS p-1之後(亦即,雙向地延伸遞迴結構資料12),因此更新後之遞迴結構資料12仍具有高度局部性。
於某些實施方式中,儲存於一維記憶體空間11之遞迴結構資料12為可增長的(growable),亦即,可向上增加一雙親(parent)。茲假設在一維記憶體空間11被載入遞迴結構資料12後之某一時刻,介面15接收到遞迴結構資料12之一雙親。具體而言,介面15係接收到一新資料元素e^,且新資料元素e^係對應至一維記憶體空間11當時所儲存之遞迴結構資料12。
於這些實施方式中,處理器13於一維記憶體空間11中將新資料元素e^緊鄰地儲存於資料元素e 0、……、e p-1所對應之記憶體位址之前,如第1E圖所示。具體而言,處理器13係依據以下公式(3)於一維記憶體空間11安排新資料元素e^以更新一維記憶體空間11中之遞迴結構資料12:LIS^:=e^。LIS:=e^。e p-1。。。e 0LIS 0。。。LIS p-1 (3)
上述公式(3)中,相較於公式(1)所新增之變數LIS^代表一維記憶體空間11中更新後之遞迴結構資料12,變數e^代表新資料元素。處理器13於一維記憶體空間11中將新資料元素e^緊鄰地儲存於資料元素e 0、……、e p-1之前,因此更新後之遞迴結構資料12仍具有高度局部性。
關於本發明之第二實施方式,請參第1A圖、第2A圖、第2B圖及第2C圖。第二實施方式與第一實施方式之主要差異在於資料管理裝置1所處理之遞迴結構資料之內容。於本實施方式中,處理器13所讀取之遞迴結構資料20如第2A圖所示。具體而言,遞迴結構資料20包含複數個資料元素e 0、……、e p-1及複數個子位置無關結構LIS_0、……、LIS_ p-1,其中子位置無關結構LIS_0、……、LIS_ p-1各為一底層位置無關結構(Bottom Location Independent Structure;Bottom LIS)。各該底層位置無關結構(亦即,子位置無關結構LIS_0、……、LIS_ p-1中的每一個)包含複數個底層資料元 素,且不包含其他的子位置無關結構。
資料元素e 0、……、e p-1一對一地對應至子位置無關結構LIS_0、……、LIS_ p-1;具體而言,子位置無關結構LIS_0為資料元素e 0之子孫,子位置無關結構LIS_ p-1為資料元素e p-1之子孫,依此類推。資料元素e 0、……、e p-1各自具有一第一編號(亦即,上標的1、……、p-1),子位置無關結構LIS_0、……、LIS_ p-1各自具有一第二編號(亦即,上標的1、……、p-1),且各該底層位置無關結構(亦即,子位置無關結構LIS_0、……、LIS_ p-1中的每一個)之該等底層資料元素具有一第三編號。需說明者,一資料元素之第一編號與其所對應之子位置無關結構之第二標號相同。
處理器13將遞迴結構資料20儲存於一維記憶體空間11作為遞迴結構資料22,其中遞迴結構資料22於一維記憶體空間11中具有一位置無關結構。具體而言,處理器13係以下列方式將遞迴結構資料20儲存於一維記憶體空間11,俾一維記憶體空間11中之遞迴結構資料22具有位置無關結構:沿著一維記憶體空間11之記憶體位址所界定的一個方向(例如:記憶體位址遞增的方向),依據該等第一編號(亦即,1、……、p-1)遞減地將資料元素e 0、……、e p-1緊鄰地儲存於一維記憶體空間11,依據該等第二編號(亦即,1、……、p-1)遞增地將子位置無關結構LIS_0……、LIS_ p-1緊鄰地儲存於一維記憶體空間11,將子位置無關結構LIS_0、……、LIS_ p-1儲存於緊接於資料元素e 0、……、e p-1之後,且針對各該底層位置無關結構,依據該等第三編號遞增地將該等底層資料元素緊鄰地儲存於一維記憶體空間11。具體而言,處理器13係依據以下公式(4)及公式(5)將遞迴結構資料20儲存於一維記憶體空間11作為遞迴結構資料22: LIS:=e p-1。。。e 0LIS_0。。。LIS_ p-1 (4)
Figure TWI677787B_D0003
上述公式(4)及公式(5)中,變數LIS代表一維記憶體空間11中之遞迴結構資料22,變數p為一正整數,變數e i 代表遞迴結構資料22之一資料元素,變數LIS_ i 代表遞迴結構資料22之一子位置無關結構且對應至資料元素e i ,變數i為介於0及p-1間之整數,符號「。」表示在一維記憶體空間11中為緊鄰的,變數e i,j 代表子位置無關結構LIS_ i 中之第j個底層資料元素,且變數r i 代表子位置無關結構LIS_ i 中之底層資料元素之個數。
由公式(4)及第2B圖可知,處理器13係於一維記憶體空間11雙向地排列遞迴結構資料22。換言之,子位置無關結構LIS_0、……、LIS_ p-1依據第二編號遞增地朝記憶體位址所界定的方向緊密地排列,而資料元素e 0、……、e p-1依據第一編號遞增地朝記憶體位址所界定的相反方向緊密地排列。由公式(5)及第2B圖可知,針對各該底層位置無關結構,處理器13依據該等第三編號依序地將該等底層資料元素朝記憶體位址遞增的方向緊密地排列。以子位置無關結構LIS_ p-1為例,處理器13依據該等第三編號依序地將底層資料元素e p-1,0、……
Figure TWI677787B_D0004
朝記憶體位址遞增的方向緊密地排列。在一維記憶體空間11中,資料元素e 0、……、e p-1間無其他資料,子位置無關結構LIS_0、……、LIS_ p-1間無其他資料,且資料元素e 0與子位置無關結構LIS_0間無其他資料,因此一維記憶體空間11中之遞迴結構資料12具有高度局部性。
於本實施方式中,該等底層位置無關結構中的最後一個(亦即,子位置無關結構LIS_ p-1)之底層資料元素為可擴展的。茲假設在一維 記憶體空間11被載入遞迴結構資料22後之某一時刻,介面15接收子位置無關結構LIS_ p-1之一新底層資料元素
Figure TWI677787B_D0005
。處理器13會於一維記憶體空間11中將新底層資料元素
Figure TWI677787B_D0006
緊鄰地儲存於該最後一個底層位置無關結構(亦即,子位置無關結構LIS_ p-1)之該最後一個底層資料元素(亦即,底層資料元素
Figure TWI677787B_D0007
)所對應之記憶體位址之後,如第2C圖所示。具體而言,處理器13係依據以下公式(6)於一維記憶體空間11安排新底層資料元素
Figure TWI677787B_D0008
以更新一維記憶體空間11中之遞迴結構資料22中的最後一個底層位置無關結構(亦即,子位置無關結構LIS_ p-1):
Figure TWI677787B_D0009
於公式(6)中,變數LIS_ p-1 '代表更新後之最後一個底層位置無關結構,變數e p-1,0e p-1,1、……、
Figure TWI677787B_D0010
代表子位置無關結構LIS_ p-1原先所包含之底層資料元素,而變數
Figure TWI677787B_D0011
代表新底層資料元素,符號「。」表示在一維記憶體空間11中為緊鄰的。由公式(6)及第2C圖可知,處理器13於一維記憶體空間11中將新底層資料元素
Figure TWI677787B_D0012
緊鄰地儲存於底層資料元素
Figure TWI677787B_D0013
之後,因此更新後之遞迴結構資料12仍具有高度局部性。
本發明之第三實施方式為一資料管理方法,其係適用於一電子計算裝置(例如:第一及第二實施方式中之資料管理裝置1)。該資料管理方法包含步驟S301及步驟S303。
於步驟S301,由該電子計算裝置讀取一遞迴結構資料。於步驟S303,由該電子計算裝置將該遞迴結構資料儲存於一個一維記憶體空間,其中該遞迴結構資料於該一維記憶體空間中具有一位置無關結構。需說明 者,該遞迴結構資料包含複數個資料元素及複數個子位置無關結構,該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號。一資料元素之第一編號與其所對應之子位置無關結構之第二標號相同。
具體而言,步驟S303係沿著一維記憶體空間之記憶體位址所界定的一個方向(例如:記憶體位址遞增的方向),依據該等第一編號遞減地將該等資料元素緊鄰地儲存於一個一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。為便於理解,步驟S303係依據上述公式(1)將該遞迴結構資料儲存於該一維記憶體空間。
於某些實施方式中,資料管理方法還可擴展該一維記憶體空間中之該遞迴結構資料。具體而言,資料管理方法還包含一步驟,由該電子計算裝置以接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構。資料管理方法還包含另一步驟,由該電子計算裝置於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前(亦即,將該新資料元素緊鄰地儲存於該等資料元素所對應的記憶體位址之前),且於該一維記憶體空間中將該新子位置無關結構緊鄰地儲存於該等子位置無關結構之後(亦即,將該新子位置無關結構緊鄰地儲存於該等子位置無關結構所對應的記憶體位址之後);換言之,該另一步驟可依據上述公式(2)儲存該新資料元素及該新子位置無關結構。透過該等步驟,資料管理方法可擴展該一維記憶體空間中之該遞迴結構資料,且擴展後之遞迴結構資料仍具有高度局部性。
於某些實施方式中,資料管理方法還可增長該一維記憶體空間中之該遞迴結構資料。具體而言,資料管理方法還包含一步驟,由該電子計算裝置接收一新資料元素,其中該新資料元素對應至該遞迴結構資料。資料管理方法還包含另一步驟,由該電子計算裝置於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前(亦即,將該新資料元素緊鄰地儲存於該等資料元素所對應的記憶體位址之前);換言之,該另一步驟可依據上述公式(3)儲存該新資料元素。透過該等步驟,資料管理方法可增長該一維記憶體空間中之該遞迴結構資料,且增長後之遞迴結構資料仍具有高度局部性。
於某些實施方式中,各該子位置無關結構為一底層位置無關結構,各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間。於這些實施方式中,前述步驟S303係依據上述公式(4)及(5)將該遞迴結構資料儲存於該一維記憶體空間。
於這些實施方式中,資料管理方法還包含一步驟,由該電子計算裝置接收一新底層資料元素。資料管理方法還包含另一步驟,由該電子計算裝置於該一維記憶體空間中將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素所對應之記憶體位址之後;換言之,該另一步驟可依據上述公式(6)儲存該新底層資料元素。透過該等步驟,資料管理方法可擴展該一維記憶體空間中之該遞迴結構資料中的最後一個底層位置無關結構,且擴展後之遞迴結構資料仍具有高度局部 性。
除了上述步驟,第三實施方式能執行第一及第二實施方式所描述之資料管理裝置1之所有運作及步驟,具有同樣之功能,且達到同樣之技術效果。本發明所屬技術領域中具有通常知識者可直接瞭解第三實施方式如何基於上述第一及第二實施方式以執行此等運作及步驟,具有同樣之功能,並達到同樣之技術效果,故不贅述。
第三實施方式中所闡述之資料管理方法可由包含複數個程式指令之一電腦程式產品實現。該電腦程式產品所包含之該等程式指令被載入一電子計算裝置(例如:資料管理裝置1)後,該電腦程式執行如在第三實施方式中所述之資料管理方法。該電腦程式產品可為能被於網路上傳輸之檔案,亦可被儲存於一非暫態電腦可讀取儲存媒體中。該非暫態電腦可讀取儲存媒體可為一電子產品,例如:一唯讀記憶體(Read Only Memory;ROM)、一快閃記憶體、一軟碟、一硬碟、一光碟(Compact Disk;CD)、一數位多功能光碟(Digital Versatile Disc;DVD)、一隨身碟、一可由網路存取之資料庫或本發明所屬技術領域中具有通常知識者所知且具有相同功能之任何其他儲存媒體。
需說明者,於本發明專利說明書及申請專利範圍中,第一編號、第二編號及第三編號中之「第一」、「第二」或「第三」僅用來區隔該等編號為不同項目之編號。
綜上所述,本發明所提供之資料管理技術(包含裝置、方法及其電腦程式產品)係於一維記憶體空間緊密地排列一遞迴結構資料之複數個資料元素及複數個子位置無關結構。由於該遞迴結構資料本身所具有 之遞迴結構,每一個子位置無關結構中之資料之相關性高。因此,本發明所提供之資料管理技術將該等子位置無關結構緊密地排列於一維記憶體空間,能提高該遞迴結構資料於該一維記憶體空間之參考局部性,降低發生分頁錯誤之機率。再者,本發明所提供之資料管理技術係於該一維記憶體空間雙向地排列該等資料元素及該等子位置無關結構,因此若後續有該遞迴結構資料之雙親、其他兄弟或最後一個底層位置無關結構之新底層資料元素,亦能在該一維記憶體空間中將其緊鄰地排列於該遞迴結構資料旁,達到可擴充性及可增長性,因而能適用於更多樣化的應用領域(例如:會不斷產生串流資料之物聯網)。
上述實施方式僅例示性地說明本發明之部分實施態樣及闡釋本發明之技術特徵,而非用來限制本發明之保護範疇及範圍。任何本發明所屬技術領域中具有通常知識者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利保護範圍應以申請專利範圍為準。

Claims (12)

  1. 一種資料管理裝置,包含:一個一維記憶體空間;以及一處理器,電性連接至該一維記憶體空間,用以讀取一遞迴結構資料(recursively structured data)以及將該遞迴結構資料儲存於該一維記憶體空間,其中該遞迴結構資料於該一維記憶體空間中具有一位置無關結構(Location Independent Structure;LIS),該遞迴結構資料包含複數個資料元素及複數個子位置無關結構(Sub-Location Independent Structure;Sub-LIS),該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號,其中,該處理器係以下列方式將該遞迴結構資料儲存於該一維記憶體空間:依據該等第一編號遞減地將該等資料元素緊鄰地儲存於該一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。
  2. 如請求項1所述之資料管理裝置,還包含:一介面,電性連接至該處理器,且接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構,其中,該處理器還於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前,且於該一維記憶體空間中將該新子位置無關結構緊鄰地儲存於該等子位置無關結構之後。
  3. 如請求項1所述之資料管理裝置,還包含:一介面,電性連接至該處理器,且接收一新資料元素,其中該新資料元素對應至該遞迴結構資料,其中,該處理器還於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前。
  4. 如請求項1所述之資料管理裝置,其中各該子位置無關結構為一底層位置無關結構(Bottom Location Independent Structure;Bottom LIS),各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間,該資料管理裝置還包含:一介面,電性連接至該處理器,且接收一新底層資料元素,其中,該處理器還於該一維記憶體空間中將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素之後。
  5. 一種資料管理方法,適用於一電子計算裝置,該資料管理方法包含下列步驟:讀取一遞迴結構資料;以及將該遞迴結構資料儲存於一個一維記憶體空間,其中該遞迴結構資料於該一維記憶體空間中具有一位置無關結構,該遞迴結構資料包含複數個資料元素及複數個子位置無關結構,該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號;其中,該儲存步驟係依據該等第一編號遞減地將該等資料元素緊鄰地儲存於一個一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。
  6. 如請求項5所述之資料管理方法,還包含下列步驟:接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構;以及於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前,且於該一維記憶體空間中將該新子位置無關結構緊鄰地儲存於該等子位置無關結構之後。
  7. 如請求項5所述之資料管理方法,還包含下列步驟:接收一新資料元素,其中該新資料元素對應至該遞迴結構資料;以及於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前。
  8. 如請求項5所述之資料管理方法,其中各該子位置無關結構為一底層位置無關結構,各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間,該資料管理方法還包含下列步驟:接收一新底層資料元素;以及於該一維記憶體空間中將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素之後。
  9. 一種電腦程式產品,經由一電子計算裝置載入該電腦程式產品後,該電子計算裝置執行該電腦程式產品所包含之複數個程式指令,以執行一種資料管理方法,該資料管理方法包含下列步驟:讀取一遞迴結構資料;以及將該遞迴結構資料儲存於一個一維記憶體空間,其中該遞迴結構資料於該一維記憶體空間中具有一位置無關結構,該遞迴結構資料包含複數個資料元素及複數個子位置無關結構,該等資料元素一對一地對應至該等子位置無關結構,各該資料元素具有一第一編號,且各該子位置無關結構具有一第二編號;其中,該儲存步驟係依據該等第一編號遞減地將該等資料元素緊鄰地儲存於一個一維記憶體空間,依據該等第二編號遞增地將該等子位置無關結構緊鄰地儲存於該一維記憶體空間,且將該等子位置無關結構儲存於緊接於該等資料元素之後。
  10. 如請求項9所述之電腦程式產品,其中該資料管理方法還包含下列步驟:接收一新資料元素及一新子位置無關結構,其中該新資料元素對應至該新子位置無關結構;以及於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前,且於該一維記憶體空間中將該新子位置無關結構緊鄰地儲存於該等子位置無關結構之後。
  11. 如請求項9所述之電腦程式產品,其中該資料管理方法還包含下列步驟:接收一新資料元素,其中該新資料元素對應至該遞迴結構資料;以及於該一維記憶體空間中將該新資料元素緊鄰地儲存於該等資料元素之前。
  12. 如請求項9所述之電腦程式產品,其中各該子位置無關結構為一底層位置無關結構,各該底層位置無關結構包含複數個底層資料元素,各該底層位置無關結構之該等底層資料元素具有一第三編號,各該底層位置無關結構之該等底層資料元素係被該處理器依據該等第三編號遞增地緊鄰地儲存於該一維記憶體空間,該資料管理方法還包含下列步驟:接收一新底層資料元素;以及於該一維記憶體空間中將該新底層資料元素緊鄰地儲存於該最後一個底層位置無關結構之該最後一個底層資料元素之後。
TW107143665A 2018-12-05 2018-12-05 資料管理裝置、方法及其電腦程式產品 TWI677787B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107143665A TWI677787B (zh) 2018-12-05 2018-12-05 資料管理裝置、方法及其電腦程式產品
CN201811519913.9A CN111274165A (zh) 2018-12-05 2018-12-12 资料管理装置、方法及其电脑存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107143665A TWI677787B (zh) 2018-12-05 2018-12-05 資料管理裝置、方法及其電腦程式產品

Publications (2)

Publication Number Publication Date
TWI677787B true TWI677787B (zh) 2019-11-21
TW202022617A TW202022617A (zh) 2020-06-16

Family

ID=69188925

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107143665A TWI677787B (zh) 2018-12-05 2018-12-05 資料管理裝置、方法及其電腦程式產品

Country Status (2)

Country Link
CN (1) CN111274165A (zh)
TW (1) TWI677787B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761486B2 (en) * 2006-01-03 2010-07-20 Oracle America, Inc. Memory management system that supports both address-referenced objects and identifier-referenced objects
TW201636850A (zh) * 2014-12-17 2016-10-16 愛思開海力士有限公司 記憶體系統及其操作方法
TWI602184B (zh) * 2012-08-08 2017-10-11 三星電子股份有限公司 用於非揮發性記憶體的程式化方法、用於記憶體系統的資料管理方法、用於非揮發性記憶體的資料管理方法、記憶體系統以及用於記憶體系統的控制器
TWI622881B (zh) * 2017-04-25 2018-05-01 Chunghwa Telecom Co Ltd Cache replacement system and method thereof for memory computing cluster

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4016545A (en) * 1975-07-31 1977-04-05 Harris Corporation Plural memory controller apparatus
JPH0373037A (ja) * 1989-05-26 1991-03-28 Hitachi Ltd データベース障害回復方法
AU1560195A (en) * 1994-01-05 1995-08-01 Apple Computer, Inc. Update mechanism for computer storage container manager
US8364723B1 (en) * 2012-03-08 2013-01-29 eBizprise Inc. Apparatus and method for realizing big data into a big object and non-transitory tangible machine-readable medium thereof
CN104899156B (zh) * 2015-05-07 2017-11-14 中国科学院信息工程研究所 一种面向大规模社交网络的图数据存储及查询方法
CN105205205B (zh) * 2015-08-18 2018-08-28 北京大学 基于网表位置信息最优划分的fpga粗粒度并行布线方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761486B2 (en) * 2006-01-03 2010-07-20 Oracle America, Inc. Memory management system that supports both address-referenced objects and identifier-referenced objects
TWI602184B (zh) * 2012-08-08 2017-10-11 三星電子股份有限公司 用於非揮發性記憶體的程式化方法、用於記憶體系統的資料管理方法、用於非揮發性記憶體的資料管理方法、記憶體系統以及用於記憶體系統的控制器
TW201636850A (zh) * 2014-12-17 2016-10-16 愛思開海力士有限公司 記憶體系統及其操作方法
TWI622881B (zh) * 2017-04-25 2018-05-01 Chunghwa Telecom Co Ltd Cache replacement system and method thereof for memory computing cluster

Also Published As

Publication number Publication date
CN111274165A (zh) 2020-06-12
TW202022617A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
US10810179B2 (en) Distributed graph database
US10296498B2 (en) Coordinated hash table indexes to facilitate reducing database reconfiguration time
US10042746B2 (en) Callpath finder
US8832050B2 (en) Validation of distributed balanced trees
KR101419828B1 (ko) 그래프 데이터용 합성 용어 인덱스
US8027961B2 (en) System and method for composite record keys ordered in a flat key space for a distributed database
US20190205480A1 (en) Layered graph data structure
US9946724B1 (en) Scalable post-process deduplication
US20160314157A1 (en) Method, server, and system for accessing metadata
JP2013515308A (ja) スケーラブルなデータ構造を利用するための方法および装置
KR20090048624A (ko) 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체
JP7058132B2 (ja) 最大化された重複除去メモリのためのシステム及び方法
JP2019145925A (ja) ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード
US11500873B2 (en) Methods and systems for searching directory access groups
CN114969061A (zh) 一种工业时序数据分布式存储方法、装置
JP2019146137A (ja) ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード
CN113297432B (zh) 用于分区拆分与合并的方法、处理器可读介质和系统
TWI677787B (zh) 資料管理裝置、方法及其電腦程式產品
US20190236752A1 (en) Wide key hash table for a graphics processing unit
JP2019109782A (ja) クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
US11435926B2 (en) Method, device, and computer program product for managing storage system
CN113849482A (zh) 一种数据迁移方法、装置及电子设备
WO2015172718A1 (zh) 在存储器中进行多访问的方法、装置和存储系统
US7290085B2 (en) Method and system for flexible and efficient protocol table implementation
JP6333306B2 (ja) 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム