WO2018099106A1 - 一种数据的存取方法、装置及计算机可读存储介质 - Google Patents

一种数据的存取方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
WO2018099106A1
WO2018099106A1 PCT/CN2017/094244 CN2017094244W WO2018099106A1 WO 2018099106 A1 WO2018099106 A1 WO 2018099106A1 CN 2017094244 W CN2017094244 W CN 2017094244W WO 2018099106 A1 WO2018099106 A1 WO 2018099106A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
storage address
access mode
location identifier
Prior art date
Application number
PCT/CN2017/094244
Other languages
English (en)
French (fr)
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 深圳市中兴微电子技术有限公司
Publication of WO2018099106A1 publication Critical patent/WO2018099106A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Definitions

  • the present invention relates to data processing technologies, and in particular, to a data access method, apparatus, and computer readable storage medium.
  • data communication devices typically include both on-chip and off-chip memories.
  • the hash method is generally used to store and search data
  • the on-chip memory is used as an alternate storage space for off-chip memory.
  • FIG. 1 is a schematic diagram of a hash storage process in the prior art, in which data A and data D are stored in off-chip memory, and when data B and data A collide, data B is stored in on-chip memory; The storage space can be divided into multiple areas to further reduce conflicts. As shown in FIG. 1, when data C and data B collide in the first area of the on-chip memory, data C is stored to the second area of the on-chip memory.
  • the storage space of the off-chip memory is larger than the storage space of the on-chip memory, the search for data in the off-chip memory is slow. Therefore, when storing one data, it is generally only allowed to access the off-chip memory once, and the storage space of the off-chip memory cannot be divided into a plurality of areas. For data deletion, it is also in off-chip memory Look in the on-chip memory and delete the data after finding the data.
  • the method of accessing data by hash method is simple, but it has the following disadvantages:
  • the sparse sorting of the data leads to different data. Mapping to the same address creates a conflict and cannot store new data.
  • embodiments of the present invention are directed to providing a data access method, apparatus, and computer readable storage medium.
  • An embodiment of the present invention provides a data access method, including:
  • the access method Determining, according to the parameter of the first node, whether the first node meets a requirement for performing the access mode, and if yes, performing the access mode on the first data at the first node; If yes, the second node that corresponds to the first location identifier and meets the requirement for performing the access mode is continuously searched in the lower node, and the second node performs the first data on the second node.
  • the performing the access mode on the first data by the first node includes:
  • the access mode is a search, acquiring a first storage address corresponding to the first data stored in the first node, and reading the first data according to the first storage address;
  • If the access mode is storage, storing a first storage address corresponding to the first data to the first node;
  • the method further includes:
  • the method further includes: updating parameters of the first node and the third node; and the parameter includes information and quantity of data mapped to the node.
  • the access mode when the access mode is deleted, the first storage address corresponding to the first data stored in the first node is acquired, and the first data is deleted according to the first storage address.
  • the method further includes:
  • the embodiment of the present invention further provides a data access device, including: a first processing unit and a second processing unit; wherein
  • the first processing unit is configured to acquire an access mode of the first data and a first location identifier
  • the second processing unit is configured to: search, according to the first location identifier, a first node corresponding to the first location identifier in a current layer node; and determine the first node according to parameters of the first node Whether the requirement for executing the access mode is met, and if yes, performing the access mode on the first data at the first node; if not, continuing to search and the first in the lower node And identifying, by the location identifier, a second node that meets the requirement for performing the access mode, and performing the access mode on the first data at the second node.
  • the second processing unit is configured to:
  • the access mode is a search, acquiring a first storage address corresponding to the first data stored in the first node, and reading the first data according to the first storage address;
  • If the access mode is storage, storing a first storage address corresponding to the first data to the first node;
  • the second processing unit is further configured to: when the access mode is stored, and determine that the first node does not meet the requirement for performing the access mode, determine that only the second data is currently available. And mapping, when the first data is mapped to the first node, searching, in a lower node, a third node corresponding to the second location identifier of the second data and satisfying a requirement for performing storage, and The second storage address corresponding to the second data is stored to the third node.
  • the second processing unit is further configured to update parameters of the first node and the third node; the parameter includes information and quantity of data mapped to the node.
  • the second processing unit is further configured to:
  • the first storage address corresponding to the first data stored in the first node is acquired, and the first data is deleted according to the first storage address, according to the Determining, by the first location identifier, a fourth node corresponding to the first location identifier in an upper node; determining, according to parameters of the fourth node, that only third data and the first data are mapped to the fourth node And searching, in the current layer node and/or the lower layer node, a fifth node corresponding to the third location identifier of the third data and satisfying the requirement for performing deletion, acquiring the storage in the fifth node a third storage address corresponding to the third data, and storing the third storage address to the fourth node.
  • the embodiment of the invention further provides a data access device, comprising: a processor and a memory configured to store a computer program capable of running on the processor,
  • processor is configured to perform the steps of any of the above methods when the computer program is run.
  • the embodiment of the present invention further provides a computer readable storage medium having stored thereon a computer program, the computer program being executed by the processor to implement the steps of any of the above methods.
  • the method and device for accessing data and the computer readable storage medium acquire an access mode and a first location identifier of the first data, and find and describe the current layer node according to the first location identifier. Determining, by the first node, a first node; determining, according to a parameter of the first node, whether the first node meets a requirement for performing the access mode, and if yes, at the first node Performing the access mode by a data; if not, continuing to search for a second node corresponding to the first location identifier and meeting a requirement for performing the access mode in the lower node, and in the The second node performs the access mode on the first data.
  • the storage space of the on-chip memory is small, the speed is fast, the storage space of the off-chip memory is large, the speed is slow, and the like, the data is stored in the off-chip memory, and the storage address of the data in the off-chip memory is stored. Recorded in on-chip memory so that data is stored in off-chip memory without having to apply for contiguous storage space, enabling large amounts of data to be stored and increased address space utilization.
  • each layer node is searched at the same time. After the node corresponding to the target data is found, the target data can be accessed according to the storage address recorded by the node, which can improve or ensure the data search efficiency;
  • the data storage process when two data are simultaneously mapped to the same node, both data are sent to the next layer to continue to find the appropriate node to solve the data conflict problem;
  • the data deletion process when the target and the target are After the target data is deleted, the storage address recorded in the node corresponding to the data further deletes the information related to the target data in the upper node, thereby improving the utilization rate of the node.
  • FIG. 1 is a schematic diagram of a hash storage process in the related art
  • FIG. 2 is a schematic diagram of a distribution state of data in an embodiment of the present invention.
  • FIG. 3 is a schematic flowchart of implementing an access method of data according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram showing a state of data storage of a "forest" type according to Embodiment 1 of the present invention.
  • Figure 5 is a schematic diagram showing the state of the erroneous data storage mode
  • FIG. 6 is a schematic diagram of a state of data storage according to Embodiment 2 of the present invention.
  • FIG. 7 is a schematic diagram of a state of data deletion according to Embodiment 3 of the present invention.
  • FIG. 8 is a schematic structural diagram of a structure of an access device for data according to an embodiment of the present invention.
  • a data structure similar to "forest” is established in the on-chip memory of the data communication device;
  • the "forest” includes N layers, N ⁇ 2, each layer corresponding to an address space in the on-chip memory, and each One layer contains at least 2 nodes;
  • data is stored in off-chip memory, and nodes in "forest” store the storage address of data in off-chip memory; and, establish data, location identifier, mapping relationship between nodes, ie Establishing a correspondence between the data and the location identifier, a correspondence between the location identifier and the node, so as to obtain a node corresponding to the location identifier at each layer according to the location identifier of the data; the location identifier and the node may be used.
  • Symbols such as numbers, letters, and characters are represented; in practical applications, a hash method can be used to establish a correspondence between the data and the location identifier.
  • Each node contains parameters such as collision, valid, count, index, conflict, etc.
  • Collision which can occupy 1 bit (bit), is used to indicate whether a node has a collision, that is, whether two or more data are mapped to the node; a collision of 1 indicates that the node has a conflict, and a collision of 0 indicates that the node does not occur. conflict;
  • Valid which can occupy 1 bit, is used to indicate whether the node is occupied by data, that is, whether data is mapped to the node; for example, a value of 1 indicates that the node is occupied by data, and a value of 0 indicates that the node is not occupied by data;
  • Count can occupy 1 byte (Byte), used to indicate the number of data conflicting at the node, the value of count is greater than or equal to 1;
  • Conflict used to record information mapped to each data of the node when two or more data are mapped to the node, that is, the value of the collision is 1, to find data in the next layer; the information includes data A location identifier that is used to represent a node at which data corresponds to each layer.
  • the values of the parameters (collision, valid, count) corresponding to each node can indicate the usage of the node, as follows:
  • (0,0,0) indicates that the node is empty and no data is mapped to the node
  • (0, 1, 1) means that 1 data is mapped to the node and no conflict occurs
  • (1,1,n) indicates that n data is mapped to the node, and a collision occurs, and n is greater than or equal to 2.
  • the "forest” is not a rigorous forest, because each tree in the forest requires at most one parent node per node, and in the "forest", each node may have more than one parent node; in addition, In each layer of "forest", the sum of the number of all parent nodes is equal to the sum of the number of all child nodes; the value of the parent node is the parameter (collision, valid, count) is (1, 1, n) The node is a node whose value of the parameter (collision, valid, count) is (0, 1, 1).
  • FIG. 2 is a schematic diagram showing the distribution of data in the embodiment of the present invention.
  • the node in the "forest” stores the storage address of the data in the off-chip memory, in the on-chip memory. After the node corresponding to the data is found in the forest, the data can be accessed in the off-chip memory according to the address indicated by the node.
  • FIG. 3 is a schematic diagram of an implementation process of a data access method according to an embodiment of the present invention. As shown in FIG. 3, the method includes:
  • Step 101 Acquire an access mode of the first data and a first location identifier.
  • the access mode is used to indicate an operation to be performed on the first data, including operations such as storing, searching, and deleting; in an actual application, the user may select a required access mode according to actual needs;
  • the first location identifier is used to acquire a node corresponding to each layer of the first data in the "forest".
  • Step 102 Search for a first node corresponding to the first location identifier in a current layer node according to the first location identifier.
  • the first node searching, according to the first location identifier, a first node corresponding to the first location identifier in a current layer node in the “forest” to obtain the first data mapped in the current layer node.
  • the current layer may be the first layer in the "forest” or may not be the first layer in the “forest”; in fact, the layers in the "forest” of the on-chip memory are simultaneously searched.
  • the data is preferentially mapped to the upper node, and when the upper node has a conflict, it is mapped to the lower layer; therefore, in order to facilitate understanding and explanation, it can be considered that the "forest" is searched layer by layer, that is, from The first layer starts looking down.
  • Step 103 Determine, according to parameters of the first node, whether the first node meets a requirement for performing the access mode, and if yes, perform the access mode on the first data by the first node. If not satisfied, continuing to find a second node corresponding to the first location identifier and satisfying the requirement for performing the access mode in the lower node, and pairing the first node with the second node The data performs the access method.
  • the access mode is storage
  • the access mode When the access mode is deleted, if it is determined that the first node meets the requirement for performing deletion according to the parameter of the first node, acquiring, corresponding to the first data, stored in the first node a first storage address, and deleting the first data according to the first storage address; if it is determined according to the parameter of the first node that the first node does not meet the requirement for performing deletion, continuing to search in the lower node And acquiring, by the second node corresponding to the first location identifier, the first storage address corresponding to the first data stored in the second node, according to the first The storage address deletes the first data.
  • the parameter records current state information of the node, including data mapped to the node.
  • Information and quantity for example, when at least two data are mapped to a node, information such as a location identifier of each data is recorded, whether a node is occupied, whether a storage address of the data is stored, or the like is recorded.
  • the method may further include: determining that only the second data and the current When the first data is mapped to the first node, searching, in the lower node, a third node corresponding to the second location identifier of the second data and satisfying the requirement for performing storage, and The second storage address corresponding to the data is stored to the third node.
  • step 103 when it is determined in step 103 that the first node does not satisfy the requirement for performing storage on the first data, if it is determined according to the parameter of the first node, only the second data and the first Mapping the data to the first node, searching, in the lower node, a third node corresponding to the second location identifier of the second data and satisfying the requirement for performing storage, and corresponding to the second data.
  • the second storage address is stored to the third node, and the second storage address stored in the first node is deleted.
  • the second location identifier of the second data is recorded in the first node; the second data is preferentially compared with the first data in the lower node to search for the second location identifier.
  • the third node that meets the storage requirements.
  • the method may further include: updating parameters of the first node and the third node.
  • the access mode is storage
  • after the storing the first storage address corresponding to the first data to the first node updating parameters of the first node to indicate the The first data has been mapped to the first node and the first node does not satisfy the requirement to perform storage
  • after the storing the first storage address corresponding to the first data to the second node updating a parameter of the second node to indicate that the first data has been mapped to the second node and the second node does not satisfy a requirement to perform storage
  • After storing the second storage address to the third node updating parameters of the third node to indicate that the second data has been mapped to the third node and the third node does not satisfy the requirement to perform storage;
  • the access mode When the access mode is deleted, acquiring the first storage address corresponding to the first data stored in the first node, and deleting the first number according to the first storage address Thereafter, the parameters of the first node are updated to indicate that no data has been mapped to the first node and the first node is not satisfied with the requirement to perform the deletion.
  • the parameters include information and quantity of data mapped to the node; the information of the data includes location identification of the data, and the like.
  • the method can also include:
  • the access mode is deletion
  • obtaining a parameter of the fourth node corresponding to the first location identifier in the upper node determining, according to the parameter of the fourth node, that only the third data and the first data are mapped to the fourth
  • the fourth node does not exist, that is, the above operation is not performed; if it is determined according to the parameters of the fourth node, currently only the third data and the first data are mapped to The fourth node does not need to perform the above operation.
  • the method may further include: updating parameters of the fourth node and the fifth node.
  • the storing the third storage address to the fourth node, and deleting the location After the third storage address stored in the fifth node, updating parameters of the fourth node to indicate that the third data has been mapped to the fourth node and the fourth node is satisfied to perform deletion Requirement; updating the parameters of the fifth node to indicate that there is currently no data mapped to the fifth node and the fifth node does not satisfy the requirement to perform deletion.
  • the data search is performed in the on-chip memory, and the data is stored in the off-chip memory, so that the data in the off-chip memory can be stored in any discontinuous space, and the on-chip memory search speed is extremely utilized.
  • the large storage capacity of the external memory can store a large amount of data without increasing the efficiency, and the space utilization is improved.
  • the scenario based on this embodiment is: data searching, that is, acquiring a storage address corresponding to the data stored in the node, and reading the data according to the storage address.
  • the corresponding processing is performed according to the parameters of the node, namely:
  • the storage address corresponding to the data stored in the node is obtained, and is obtained from the off-chip memory according to the storage address. Reading the data;
  • the lower layer search is continued until a parameter corresponding to the location identifier of the data is found at a certain layer, and the parameter The value of (collision, valid, count) is (0, 1, 1), that is, the search is successful;
  • FIG. 4 is a schematic diagram showing the state of "forest” type data storage in the first embodiment of the present invention, and FIG. 4 (aa) and FIG. 4 (bb) respectively show two types of "forest” type data storage before and after abstraction. Schematic diagram of different states; the following is an example of finding data B in Figure 4 (bb).
  • the conflict information recorded in the conflict of a it can be known that A and B have conflicted at node a, then continue to search for B at layer 2; when node B is found at layer 2 according to the location identifier of B, the parameter of node d is (0, 1, 1), indicating that the node d satisfies the data search request, extracting the storage address corresponding to the data B stored in the node d, and reading the data B from the off-chip memory according to the storage address, To complete the data lookup.
  • the scenario based on this embodiment is: data storage, that is, storing the storage address of the data in the off-chip memory into a node corresponding to the location identifier of the data and satisfying the requirement of performing storage.
  • the storage address of the data should be stored in the node whose value of the parameter (collision, valid, count) is (0, 0, 0).
  • the specific storage process is as follows:
  • the corresponding processing is performed according to the parameters of the node, namely:
  • the storage address and the location identifier of the data are directly stored to the node, and the parameter value of the node is modified (0). ,1,1);
  • the value of the parameter (collision, valid, count) of the node is (0, 1, 1), it means that there is already a data mapped to the node, and since the data is also mapped to the node, the node will collide. , at the node, record the information of the two data that conflicts, and make the two data go to the next layer to continue to find the appropriate node;
  • the node If the value of the parameter (collision, valid, count) of the node is (1, 1, n), indicating that n data has been mapped to the node, that is, the node has n data conflicts, then the node is in the node. Record the information of the data, modify the parameter value of the node (1, 1, n+1), and make the data to the next layer to continue to find the appropriate node.
  • the node After finding a node whose value of the parameter (collision, valid, count) is (0, 0, 0) at a certain layer, store the storage address and location identifier of the data to the node, and modify the node.
  • the parameter value is (0, 1, 1);
  • the data previously mapped to the node has priority over the data currently mapped to the node (referred to as newly inserted data for short).
  • the first layer finds the appropriate node; if the original data or the newly inserted data has conflicts in the next layer, the conflict information is recorded, and the node is searched until the next layer is found until the node that does not conflict is found to implement data storage, or If the last layer is still found to have conflicts, the data storage fails; when the data storage fails, the information of the data recorded in the previous layers needs to be deleted, that is, the data recorded in the previous layers is deleted.
  • the reason for both to go to the next layer to find the node is: when searching for data, the values of collision and valid are determined, only the collision is 0 and the validity is 1
  • searching for data the values of collision and valid are determined, only the collision is 0 and the validity is 1
  • the data is read, if the original data continues to remain in the current layer without going to the next layer to find the new node, then when searching for data, it is not possible to directly judge whether it is needed according to the values of collision and valid.
  • the data is read according to the address given by the interface, which may need to be read multiple times to find the required data, which will affect the efficiency.
  • Figure 5 is a schematic diagram of the state of the erroneous data storage mode. As shown in Figure 5, A and B collide at node a of the first layer, but A is still stored at node a of the first layer, collison of node a and The value of valid is 1 and B is stored at node c of the second layer. The values of collison and valid of node c are 0 and 1 respectively.
  • searching for data B the data B cannot be confirmed directly by judging the values of collision and valid. At which level, you will find that both the first layer and the second layer have B information, so you need to read the data B at node a and node c, respectively, and then compare which one is correct.
  • Example 2 is a schematic diagram of the state of the data storage.
  • FIG. 4(bb) and FIG. 6 respectively show two different states of the state before the data D is stored and after the data D is stored; when a new one needs to be stored on the basis of FIG. 4(bb)
  • D can only be stored to a node with a parameter of (0,0,0), which is an empty node.
  • the node f corresponding to the location identifier of B is found and the current parameter of the node f is (0, 0, 0)
  • the node g corresponding to the location identifier of C is found and the node g is currently
  • the parameter is (0,0,0)
  • the storage address of B in the off-chip memory is stored in node f, and the parameter of node f is updated to (0, 1, 1), and C is off-chip.
  • the memory address in the memory is stored in node g, and the parameter of node g is updated to (0, 1, 1) to complete the storage of data D.
  • the storage address of the original data stored in the node may be deleted; for example, After the storage address of the B stored in the off-node memory is stored in the off-node memory, the storage address of the B stored in the off-chip memory in the node d may be deleted to save space utilization.
  • the scenario based on this embodiment is: data deletion, that is, acquiring a storage address corresponding to the data stored in the node, and deleting the data according to the storage address.
  • the corresponding processing is performed according to the parameters of the node, namely:
  • the storage address corresponding to the data stored in the node is obtained, and is obtained from the off-chip memory according to the storage address. Delete the data;
  • the lower layer search is continued until a parameter corresponding to the location identifier of the data is found at a certain layer, and the parameter (collision, valid, count) has a value of (0, 1, 1) and performs a data deletion operation;
  • the node corresponding to the location identifier of the data is not at the first layer, it is also necessary to delete the conflict information of the data in the upper node, so that the "forest” can fall back to the structure before storing the data.
  • the premise is that the "forest” does not continue to store data after storing the data.
  • FIG. 7 is a third embodiment of the present invention. According to the deleted state diagram, FIG. 7 (aa) and FIG. 7 (bb) respectively represent two different state diagrams after data deletion, and the specific deletion process is as follows:
  • the node b is found at the first layer according to the location identifier of D, and the parameter of the node b is (1, 1, 2), indicating that a collision occurs in the node b; and, according to the conflict of the node b,
  • the recorded conflict information shows that C and D have collided at node b, then continue to search for D at layer 2; find node e at layer 2 according to the location identifier of D, and the parameter of node e is (0, 1, 1) satisfying the requirement of performing deletion, acquiring a storage address corresponding to the data D stored in the node e, and deleting the data D from the off-chip memory according to the storage address, to obtain the state shown in FIG. 7 (aa) schematic diagram;
  • the D recorded in the conflict of the node b is deleted. Since the node b no longer generates a conflict, the location identifier of the C is obtained according to the information of the C recorded in the conflict of the node b;
  • the second layer finds the node d, and the parameter of the node d is (1, 1, 2), indicating that the node d has generated a conflict; and, according to the conflict information recorded in the conflict of the node d, it can be known that the B and the C are at the node d.
  • the C recorded in the conflict of the node d is deleted. Since the node d no longer generates a conflict, the location identifier of the B is obtained according to the information of the B recorded in the conflict of the node d;
  • the third layer finds the node f, and the parameter of the node f is (0, 1, 1), indicating that the node where B is currently located is found; the storage address corresponding to the data B stored in the node f is extracted, and the The storage address corresponding to the data B is stored to the node d, and the parameter of the update node d is (0, 1, 1) to complete the deletion of the data D to obtain a state diagram shown in FIG. 4(bb).
  • FIG. 8 is a schematic structural diagram of a data access device according to an embodiment of the present invention.
  • the device includes: a first processing unit 11 and a second process. Unit 12; wherein
  • the first processing unit 11 is configured to acquire an access mode of the first data and a first location identifier knowledge
  • the second processing unit 12 is configured to: search, according to the first location identifier, a first node corresponding to the first location identifier in a current layer node; and determine the first according to a parameter of the first node Whether the node satisfies the requirement of performing the access mode, and if yes, performing the access mode on the first data at the first node; if not, continuing to search and the first node in the lower node A location identifies a second node corresponding to the requirement to perform the access mode, and performs the access mode on the first data at the second node.
  • the access mode is used to indicate an operation to be performed on the first data, including operations such as storing, searching, and deleting; in an actual application, the user may select a required access mode according to actual needs;
  • the first location identifier is used to acquire a node corresponding to each layer of the first data in the "forest".
  • the second processing unit 12 is configured to: search, according to the first location identifier, a first node corresponding to the first location identifier in a current layer node in the “forest” to obtain the first The first node to which the data is mapped in the current layer node.
  • the current layer may be the first layer in the "forest” or may not be the first layer in the “forest”; in fact, the layers in the "forest” of the on-chip memory are simultaneously searched, only Usually, the data is preferentially mapped to the upper node, and when the upper node generates a conflict, it is mapped to the lower layer; therefore, in order to facilitate understanding and explanation, it can be considered that the "forest" is searched layer by layer, that is, from the first The first layer starts looking down.
  • the second processing unit 12 is specifically configured to:
  • the access mode is the storage, the first storage address corresponding to the first data to the first a node; if it is determined according to the parameter of the first node that the first node does not meet the requirement for performing storage, continuing to search for a requirement corresponding to the first location identifier in the lower node and satisfying the requirement for performing storage a second node, and storing a first storage address corresponding to the first data to the second node;
  • the access mode When the access mode is deleted, if it is determined that the first node meets the requirement for performing deletion according to the parameter of the first node, acquiring, corresponding to the first data, stored in the first node a first storage address, and deleting the first data according to the first storage address; if it is determined according to the parameter of the first node that the first node does not meet the requirement for performing deletion, continuing to search in the lower node And acquiring, by the second node corresponding to the first location identifier, the first storage address corresponding to the first data stored in the second node, according to the first The storage address deletes the first data.
  • the parameter records current state information of the node, including information and quantity of data mapped to the node; for example, when two or more data are mapped to the node, information such as a location identifier of each data is recorded, Determine whether the node is occupied and whether or not the storage address of the data is stored.
  • the second processing unit 12 is further configured to: when the access mode is stored, and determine that the first node does not meet the requirement for performing the access mode, determine that only When the second data and the first data are mapped to the first node, searching, in a lower node, a third node corresponding to the second location identifier of the second data and satisfying a requirement for performing storage, and And storing a second storage address corresponding to the second data to the third node.
  • the second processing unit 12 determines that the first node does not satisfy the requirement for performing storage on the first data, if it is determined according to the parameter of the first node, only the second data and the current Mapping the first data to the first node, searching, in the lower node, a third node corresponding to the second location identifier of the second data and satisfying the requirement for performing storage, and The second storage address corresponding to the second data is stored to the third node, and the second storage address stored in the first node is deleted.
  • the second location identifier of the second data is recorded in the first node; the second data is preferentially compared with the first data in the lower node to search for the second location identifier.
  • the third node that meets the storage requirements.
  • the second processing unit 12 is further configured to update parameters of the first node and the third node.
  • the second processing unit 12 updates the first node after the storing the first storage address corresponding to the first data to the first node. a parameter to indicate that the first data has been mapped to the first node and the first node does not satisfy a requirement to perform storage; the second processing unit 12 corresponds to the first data in the storage After the first storage address to the second node, updating parameters of the second node to indicate that the first data has been mapped to the second node and the second node does not satisfy the requirement to perform storage After the second processing unit 12 stores the second storage address corresponding to the second data to the third node, updating parameters of the third node to indicate that the second data has been Mapping to the third node and causing the third node not to satisfy the requirement to perform storage;
  • the second processing unit 12 acquires the first storage address corresponding to the first data stored in the first node, and according to the first storage address After deleting the first data, the parameters of the first node are updated to indicate that no data is currently mapped to the first node and the first node does not satisfy the requirement to perform deletion.
  • the parameters include information and quantity of data mapped to the node; the information of the data includes location identification of the data.
  • the second processing unit 12 is further configured to:
  • the second processing unit 12 acquires the first storage address corresponding to the first data stored in the first node, and according to the first After deleting the first data by a storage address, acquiring parameters of a fourth node corresponding to the first location identifier in an upper node; and the second processing unit 12 according to the parameter of the fourth node
  • the third layer location identifier corresponding to the third data is found in the current layer node and/or the lower layer node.
  • a fifth node that performs the deletion request acquiring a third storage address corresponding to the third data stored in the fifth node, and storing the third storage address to the fourth node, And deleting the third storage address stored in the fifth node.
  • the fourth node does not exist, that is, the second processing unit 12 does not need to perform the above operation; if it is determined according to the parameters of the fourth node, there is currently only more than the third data and The first data is mapped to the fourth node, and the second processing unit 12 does not need to perform the above operation.
  • the second processing unit 12 is further configured to update parameters of the fourth node and the fifth node.
  • the second processing unit 12 updates the first after storing the third storage address to the fourth node and deleting the third storage address stored in the fifth node.
  • a four-node parameter to indicate that the third data has been mapped to the fourth node and that the fourth node meets a requirement to perform deletion; updating parameters of the fifth node to indicate that no data is currently mapped to The fifth node causes the fifth node to not satisfy the requirement to perform deletion.
  • the data search is performed in the on-chip memory, and the data is stored in the off-chip memory, so that the data in the off-chip memory can be stored in any discontinuous space, and the on-chip memory search speed is extremely utilized.
  • the large storage capacity of the external memory can store a large amount of data without increasing the efficiency, and the space utilization is improved.
  • the first processing unit 11 and the second processing unit 12 may each be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), or Processor implementation such as field programmable gate array (FPGA).
  • CPU central processing unit
  • MPU microprocessor
  • DSP digital signal processor
  • FPGA field programmable gate array
  • an embodiment of the present invention further provides a data access device, where the device includes: a processor and a memory for storing a computer program capable of running on the processor,
  • processor is configured to execute the computer program, executing:
  • the access method Determining, according to the parameter of the first node, whether the first node meets a requirement for performing the access mode, and if yes, performing the access mode on the first data at the first node; If yes, the second node that corresponds to the first location identifier and meets the requirement for performing the access mode is continuously searched in the lower node, and the second node performs the first data on the second node.
  • the processor is configured to execute the computer program, executing:
  • the access mode is a search, acquiring a first storage address corresponding to the first data stored in the first node, and reading the first data according to the first storage address;
  • If the access mode is storage, storing a first storage address corresponding to the first data to the first node;
  • the processor is further configured to: when the computer program is executed, execute:
  • the access mode After the access mode is stored, and it is determined that the first node does not meet the requirement for performing the access mode, determining that only the second data and the first data are currently mapped to the first node, Searching, in a lower node, a third node corresponding to the second location identifier of the second data and satisfying a requirement for performing storage, and storing a second storage address corresponding to the second data to the Three nodes.
  • the processor is further configured to: when the computer program is executed, execute:
  • Updating parameters of the first node and the third node include information and quantity of data mapped to the node.
  • the processor is further configured to: when the computer program is executed, execute:
  • the access mode When the access mode is deleted, the first storage address corresponding to the first data stored in the first node is obtained, and the first data is deleted according to the first storage address, and the upper node is acquired. a parameter of the fourth node corresponding to the first location identifier;
  • an embodiment of the present invention further provides a computer readable storage medium, such as a memory including a computer program, which may be executed by a processor of a data access device to perform the steps of the foregoing method.
  • the computer readable storage medium may be a Ferromagnetic Random Access Memory (FRAM), a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), and an erasable memory. Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Flash Memory, Magnetic Surface Memory, Optical Disc, Or a memory such as a CD-ROM (Compact Disc Read-Only Memory).
  • an embodiment of the present invention provides a computer readable storage medium having stored thereon a computer program, when executed by a processor, executing:
  • the access method Determining, according to the parameter of the first node, whether the first node meets a requirement for performing the access mode, and if yes, performing the access mode on the first data at the first node; If yes, the second node that corresponds to the first location identifier and meets the requirement for performing the access mode is continuously searched in the lower node, and the second node performs the first data on the second node.
  • the access mode is a search, acquiring a first storage address corresponding to the first data stored in the first node, and reading the first data according to the first storage address;
  • the access mode is storage, storing a first storage address corresponding to the first data To the first node;
  • the access mode After the access mode is stored, and it is determined that the first node does not meet the requirement for performing the access mode, determining that only the second data and the first data are currently mapped to the first node, Searching, in a lower node, a third node corresponding to the second location identifier of the second data and satisfying a requirement for performing storage, and storing a second storage address corresponding to the second data to the Three nodes.
  • Updating parameters of the first node and the third node include information and quantity of data mapped to the node.
  • the access mode When the access mode is deleted, the first storage address corresponding to the first data stored in the first node is obtained, and the first data is deleted according to the first storage address, and the upper node is acquired. a parameter of the fourth node corresponding to the first location identifier;
  • the solution provided by the embodiment of the present invention acquires an access mode of the first data and a first location identifier, and searches for, according to the first location identifier, a current layer node corresponding to the first location identifier. a first node, determining, according to parameters of the first node, whether the first node meets a requirement for performing the access mode, and if yes, performing the access on the first data at the first node And if not satisfied, continuing to search for a second node corresponding to the first location identifier and satisfying the requirement for performing the access mode in the lower node, and in the second node pair A data is executed by the access method.
  • the storage space of the on-chip memory is small, the speed is fast, the storage space of the off-chip memory is large, the speed is slow, and the like, the data is stored in the off-chip memory, and the storage address of the data in the off-chip memory is stored. Recorded in on-chip memory so that data is stored in off-chip memory without having to apply for contiguous storage space, enabling large amounts of data to be stored and increased address space utilization.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据的存取方法和存取装置,方法包括:获取第一数据的存取方式和第一位置标识(101);根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点(102);根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式(103)。

Description

一种数据的存取方法、装置及计算机可读存储介质
相关申请的交叉引用
本申请基于申请号为201611086330.2、申请日为2016年11月30日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本发明涉及数据处理技术,尤其涉及一种数据的存取方法、装置及计算机可读存储介质。
背景技术
通常,数据通信设备包含有片内和片外两个存储器。对于较大量的数据,如果要求在数据通信设备内实现数据的快速存储和查找,现有技术中一般是采用哈希法来存储和查找数据,并将片内存储器作为片外存储器的备用存储空间。
例如,对于数据存储,由于片外存储器的存储空间大,数据的首选存储器便是片外存储器;但是,在哈希存储过程中可能会产生冲突,即两个数据映射到同一个位置。而在产生冲突之后,新数据将会被存储到片内存储器。图1为现有技术中哈希存储过程示意图,数据A和数据D已存储在片外存储器中,当数据B和数据A产生冲突时,将数据B存储到片内存储器;此外,片内存储器的存储空间可以划分为多个区域,用于进一步减少冲突。如图1所示,当数据C和数据B在片内存储器的第一区域产生冲突时,将数据C存储到片内存储器的第二区域。片外存储器的存储空间虽然比片内存储器的存储空间大,但是在片外存储器中查找数据的速度慢。所以,在存储一个数据时,一般只允许访问一次片外存储器,且不能将片外存储器的存储空间划分为多个区域。对于数据删除,则同时在片外存储器 和片内存储器中进行查找,找到数据后即可删除该数据。
然而,采用哈希法对数据进行存取的方法虽然简单,但是存在以下缺点:一是地址空间利用率低,由于在哈希算法中,数据在地址空间中的排序比较稀疏,通常数据只会占用全部地址空间的三分之一,也就是说需要三倍数据大小的地址空间来存储该数据;二是不适用于存储大量数据,当数据量过大时,数据的稀疏排序导致不同数据可能会映射至相同的地址即产生冲突,从而无法存储新的数据。
发明内容
有鉴于此,本发明实施例期望提供一种数据的存取方法、装置及计算机可读存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据的存取方法,包括:
获取第一数据的存取方式和第一位置标识;
根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;
根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
上述方案中,所述在所述第一节点对所述第一数据执行所述存取方式,包括:
若所述存取方式为查找,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
若所述存取方式为存储,则存储与所述第一数据对应的第一存储地址至所述第一节点;
若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数 据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
上述方案中,当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,所述方法还包括:
确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
上述方案中,所述方法还包括:更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
上述方案中,当所述存取方式为删除,获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,所述方法还包括:
获取上层节点中与所述第一位置标识相对应的第四节点的参数;
根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
本发明实施例还提供了一种数据的存取装置,包括:第一处理单元、第二处理单元;其中,
所述第一处理单元,配置为获取第一数据的存取方式和第一位置标识;
所述第二处理单元,配置为根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
上述方案中,所述第二处理单元,配置为:
若所述存取方式为查找,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
若所述存取方式为存储,则存储与所述第一数据对应的第一存储地址至所述第一节点;
若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
上述方案中,所述第二处理单元,还配置为:当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将所述第二数据对应的第二存储地址存储至所述第三节点。
上述方案中,所述第二处理单元,还配置为更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
上述方案中,所述第二处理单元,还配置为:
当所述存取方式为删除,获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,根据所述第一位置标识在上层节点中查找与所述第一位置标识相对应的第四节点;根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
本发明实施例又提供了一种数据的存取装置,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行上述任一方法的步骤。
本发明实施例还提供了还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
本发明实施例提供的数据的存取方法、装置及计算机可读存储介质,获取第一数据的存取方式和第一位置标识;根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。可见,本发明实施例基于片内存储器的存储空间小、速度快以及片外存储器的存储空间大、速度慢等特点,将数据存储在片外存储器,并将数据在片外存储器中的存储地址记录在片内存储器中,以使数据在片外存储器中进行存储时不必申请连续的存储空间,从而能够存储大量数据并提高地址空间利用率。
此外,在数据查找过程中,同时对每层节点进行查找,当查找到与目标数据对应的节点后,根据该节点记录的存储地址便可访问所述目标数据,可以提高或保证数据查找效率;在数据存储过程中,当有两个数据同时映射至相同节点时,使这两个数据都去下一层继续查找合适的节点,以解决数据冲突问题;在数据删除过程中,当根据与目标数据对应的节点中记录的存储地址将所述目标数据删除后,进一步删除上层节点中与所述目标数据相关的信息,提高节点的利用率。
附图说明
图1为相关技术中哈希存储过程示意图;
图2为本发明实施例中数据的分布状态示意图;
图3为本发明实施例数据的存取方法的实现流程示意图;
图4为本发明实施例一中“森林”式的数据存储的状态示意图;
图5为错误的数据存储方式的状态示意图;
图6为本发明实施例二数据存储的状态示意图;
图7为本发明实施例三数据删除的状态示意图;
图8为本发明实施例数据的存取装置的组成结构示意图。
具体实施方式
首先,在数据通信设备的片内存储器中建立一种类似“森林”的数据结构;该“森林”包含有N层,N≥2,每一层对应片内存储器中的一块地址空间、且每一层包含有至少2个节点;数据存储在片外存储器,而“森林”中的节点存储数据在片外存储器中的存储地址;并且,建立数据、位置标识、节点之间的映射关系,即建立数据与位置标识之间的对应关系、位置标识与节点之间的对应关系,以实现根据数据的位置标识可获取该位置标识在每一层所对应的节点;所述位置标识、节点可采用数字、字母、文字等符号表示;在实际应用中,可采用哈希法建立所述数据与位置标识之间的对应关系。
每个节点包含有collision、valid、count、index、conflict等参数;其中,
collision,可以占1比特(bit),用于表示节点是否发生了冲突,即是否有两个或两个以上数据映射至该节点;collision为1表示节点发生了冲突,collision为0表示节点没有发生冲突;
valid,可以占1bit,用于表示节点是否被数据占用,即是否有数据映射至该节点;例如,valid为1表示节点被数据占用,valid为0表示节点没有被数据占用;
count,可以占1字节(Byte),用于表示在节点发生冲突的数据的数量,count的值大于或等于1;
index,可以占2Byte,用于表示数据在片外存储器中的存储地址;
conflict,用于当有两个或两个以上数据映射至节点,即collision的值为1时,记录映射至该节点的每个数据的信息,以便在下一层查找数据;所述信息包括数据的位置标识,所述位置标识用于表示数据在每一层对应的节点。
因此,各节点对应的参数(collision,valid,count)的值可表示节点的使用情况,如下:
(0,0,0)表示节点为空,没有数据映射至节点;
(0,1,1)表示有1个数据映射至节点、且没有发生冲突;
(1,1,n)表示有n个数据映射至节点、且发生了冲突,n大于或等于2。
这里,该“森林”并不是严谨的森林,因为森林中的每棵树要求每个节点最多只有一个父节点,而在该“森林”中,每个节点可能不止一个父节点;此外,在该“森林”的每一层中,所有父节点的个数之和等于所有子节点的个数之和;所述父节点为参数(collision,valid,count)的值为(1,1,n)的节点;所述子节点为参数(collision,valid,count)的值为(0,1,1)的节点。
图2为本发明实施例中数据的分布示意图,由图2可知,由于数据存储在片外存储器,而“森林”中的节点存储数据在片外存储器中的存储地址,在片内存储器的“森林”中查找到数据对应的节点后,则根据节点指示的地址可到片外存储器中访问该数据。
图3为本发明实施例数据的存取方法的实现流程示意图。如图3所示,该方法包括:
步骤101:获取第一数据的存取方式和第一位置标识;
这里,所述存取方式用于表示对所述第一数据将要执行的操作,包括存储、查找、删除等操作;在实际应用中,用户可根据实际需要选择所需要的存取方式;所述第一位置标识用于获取所述第一数据在“森林”中每一层对应的节点。
步骤102:根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;
具体地,根据所述第一位置标识在“森林”中的当前层节点中查找与所述第一位置标识相对应的第一节点,以获取所述第一数据在当前层节点中所映射的第一节点。
这里,所述当前层可以是“森林”中的第一层,也可以不是“森林”中的第一层;实际上,对片内存储器的“森林”中各层是同时进行查找的, 只是通常数据会优先映射至上层节点,而在上层节点产生冲突时,才映射至下层;因此,为了便于理解和阐述,可以认为在“森林”中是一层一层依次进行查找的,即从第一层开始往下查找。
步骤103:根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
具体地,当所述存取方式为存储时,若根据所述第一节点的参数判断出所述第一节点满足执行存储的要求,则存储与所述第一数据对应的第一存储地址至所述第一节点;若根据所述第一节点的参数判断出所述第一节点不满足执行存储的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行存储的要求的第二节点,并存储与所述第一数据对应的第一存储地址至所述第二节点;
当所述存取方式为查找时,若根据所述第一节点的参数判断出所述第一节点满足执行查找的要求,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;若根据所述第一节点的参数判断出所述第一节点不满足执行查找的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行查找的要求的第二节点,获取所述第二节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
当所述存取方式为删除时,若根据所述第一节点的参数判断出所述第一节点满足执行删除的要求,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据;若根据所述第一节点的参数判断出所述第一节点不满足执行删除的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行删除的要求的第二节点,获取所述第二节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
这里,所述参数记录有节点当前的状态信息,包括映射至节点的数据 的信息与数量;例如,当有至少两个数据映射至节点时,记录每个数据的位置标识等信息、确定节点是否被占用以及是否存储有数据的存储地址等。
在一实施例中,当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求之后,该方法还可以包括:确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
具体地,当在步骤103中判断出所述第一节点不满足对所述第一数据执行存储的要求时,如果根据所述第一节点的参数判断出当前只有第二数据和所述第一数据映射至所述第一节点,则在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点,以及删除所述第一节点中存储的所述第二存储地址。
这里,所述第一节点中记录有所述第二数据的第二位置标识;所述第二数据与所述第一数据相比,优先在下层节点中查找与所述第二位置标识相对应的、且满足执行存储要求的第三节点。
在一实施例中,该方法还可以包括:更新所述第一节点、第三节点的参数。
具体地,当所述存取方式为存储时,在所述存储与所述第一数据对应的第一存储地址至所述第一节点之后,更新所述第一节点的参数,以表明所述第一数据已映射至所述第一节点并使所述第一节点不满足执行存储的要求;在所述存储与所述第一数据对应的第一存储地址至所述第二节点之后,更新所述第二节点的参数,以表明所述第一数据已映射至所述第二节点并使所述第二节点不满足执行存储的要求;在所述将与所述第二数据对应的第二存储地址存储至所述第三节点之后,更新所述第三节点的参数,以表明所述第二数据已映射至所述第三节点并使所述第三节点不满足执行存储的要求;
当所述存取方式为删除时,在所述获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数 据之后,更新所述第一节点的参数,以表明当前已没有数据映射至所述第一节点并使所述第一节点不满足执行删除的要求。
这里,所述参数包括映射至节点的数据的信息与数量;所述数据的信息包括数据的位置标识等。
在一实施例中,若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据之后,该方法还可以包括:
获取上层节点中与所述第一位置标识相对应的第四节点的参数;
根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
具体地,当所述存取方式为删除时,在所述获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据之后,获取上层节点中与所述第一位置标识相对应的第四节点的参数;根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找出与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点,以及删除所述第五节点中存储的所述第三存储地址。
这里,如果当前层是第一层,则不存在所述第四节点,即不用执行上述操作;如果根据所述第四节点的参数确定当前不仅仅只有第三数据和所述第一数据映射至所述第四节点,则也不用执行上述操作。
在一实施例中,该方法还可以包括:更新所述第四节点、第五节点的参数。
具体地,所述将所述第三存储地址存储至所述第四节点,以及删除所 述第五节点中存储的所述第三存储地址之后,更新所述第四节点的参数,以表明所述第三数据已映射至所述第四节点并使所述第四节点满足执行删除的要求;更新所述第五节点的参数,以表明当前已没有数据映射至所述第五节点并使所述第五节点不满足执行删除的要求。
在本实施例中,数据查找在片内存储器进行,数据存储在片外存储器,使得片外存储器中的数据可以存储在任意不连续的空间,并充分利用了片内存储器查找速度极高、片外存储器的存储空间大的特点,在不影响效率的情况下,可存储大量数据,且提高了空间利用率。
下面结合附图和具体实施例详细说明本发明实施例数据的存取方法的具体实现流程。
实施例一
本实施例基于的场景为:数据查找,即获取节点中存储的与数据对应的存储地址,并根据所述存储地址读取所述数据。
对于数据查找,由于数据的存储地址均存储在参数(collision,valid,count)的值为(0,1,1)的节点,则具体查找过程如下:
从第1层开始查找,找到与所述数据的位置标识相对应的节点后,根据该节点的参数执行相应的处理,即:
如果该节点的参数(collision,valid,count)的值为(0,1,1),则获取该节点中存储的与所述数据对应的存储地址,并根据所述存储地址从片外存储器中读取所述数据;
如果该节点的参数(collision,valid,count)的值为(1,1,n),则继续向下层查找,直到在某一层查找到一个与所述数据的位置标识相对应的、且参数(collision,valid,count)的值为(0,1,1)的节点,即查找成功;
如果该节点的参数(collision,valid,count)的值为(0,0,0),则说明该“森林”中未记录所述数据,查找失败。
图4为本发明实施例一中“森林”式的数据存储的状态示意图,图4(aa)和图4(bb)分别表示“森林”式的数据存储进行抽象化前和抽象化后两种不同状态的示意图;下面以在图4(bb)中查找数据B为例进行说 明,首先从第1层开始查找,根据B的位置标识在第1层查找到节点a,而节点a的参数为(1,1,2),说明在节点a产生过冲突;并且,根据节点a的conflict中记录的冲突信息,可知A和B在节点a产生过冲突,则到第2层继续查找B;当根据B的位置标识在第2层查找到节点d,而节点d的参数为(0,1,1),说明节点d满足数据查找要求,则提取该节点d中存储的与数据B对应的存储地址,并根据所述存储地址从片外存储器中读取所述数据B,以完成数据查找。
实施例二
本实施例基于的场景为:数据存储,即将数据在片外存储器中的存储地址存储至与所述数据的位置标识相对应的、且满足执行存储的要求的节点中。
对于数据存储,数据的存储地址应存储到参数(collision,valid,count)的值为(0,0,0)的节点,具体存储过程如下:
从第1层开始查找,找到与所述数据的位置标识相对应的节点后,根据该节点的参数执行相应的处理,即:
如果该节点的参数(collision,valid,count)的值为(0,0,0),则直接将所述数据的存储地址和位置标识存储至该节点,并修改该节点的参数值为(0,1,1);
如果该节点的参数(collision,valid,count)的值为(0,1,1),说明已经有一个数据映射至该节点,而由于所述数据也映射至该节点,即该节点将发生冲突,则在该节点记录产生冲突的两个数据的信息,并使这两个数据都去下一层继续查找合适的节点;
如果该节点的参数(collision,valid,count)的值为(1,1,n),说明已经有n个数据映射至该节点,即该节点已经有n个数据发生了冲突,则在该节点记录该数据的信息,修改该节点的参数值为(1,1,n+1),并使该数据到下一层继续查找合适的节点。
接着,在某一层找到了参数(collision,valid,count)的值为(0,0,0)的节点后,将数据的存储地址和位置标识存储至该节点,并修改该节点 的参数值为(0,1,1);
如果直到最后一层也发生了冲突,说明片内存储空间已满,数据无法存储,则需要清除该数据在各层的冲突信息。
这里,当所述两个数据都去下一层继续寻找合适的节点时,前面映射至节点的数据(简称为原有数据)比当前映射至节点的数据(简称为新插入的数据)优先在下一层查找合适的节点;如果原有数据或新插入的数据在下一层又产生了冲突,则记录冲突信息,继续往下一层查找节点,直至找到不冲突的节点,以实现数据存储,或者一直找到最后一层还是有冲突,则数据存储失败;当数据存储失败时,还需要将前面各层中所记录的所述数据的信息删除,即删除前面各层中所记录的由所述数据产生的冲突信息,以使“森林”回退到存储所述数据之前的状态。
这里,新插入的数据与原有数据产生冲突后,两者都要去下一层查找节点的原因是:在查找数据的时候,会判断collision和valid的值,只有collision为0且valid为1时才读取数据;如果产生冲突的时候,原有数据继续保留在当前层,而不去下一层查找新节点,那么,查找数据的时候,就不能按照collision和valid的值直接判断是否需要根据接口给出的地址去读取数据,这样可能需要读取多次才能找到需要的数据,会影响效率。
如图4(bb)所示,数据A和B在第1层发生冲突,该节点的值为(1,1,2),表示(发生冲突,该节点被使用,数据个数为2);因为在该节点发生冲突,数据A和B需要在第2层查找新的节点,以使数据A和B所在的节点的值都为(0,1,1),表示(没有冲突,该节点被使用,数据个数为1);而C在第1层的节点没有发生冲突,为(0,1,1)。
图5为错误的数据存储方式的状态示意图,如图5所示,A和B在第一层的节点a处发生冲突,但A仍然保存在第一层的节点a处,节点a的collison和valid的值都为1,B保存在第二层的节点c处,节点c的collison和valid的值分别为0、1;查找数据B的时候,无法直接通过判断collision和valid的值确认数据B在哪一层,而会发现第一层和第二层都有B的信息,因此需要在节点a和节点c分别读取数据B,然后比较哪一个是正确的。
下面以在图4(bb)中存储数据D为例进行说明,图6为本发明实施 例二数据存储的状态示意图,图4(bb)和图6可分别表示数据D存储前和数据D存储后的两种不同状态示意图;当需要在图4(bb)的基础上存储一个新的数据D时,D只能存储至参数为(0,0,0)的节点,即空节点。
首先,若在第1层查找到与D的位置标识相对应的节点b,而节点b当前的参数为(0,1,1)即数据C已映射至节点b,则D和C在节点b发生了冲突,将节点b的参数更新为(1,1,2),记录C和D的信息至节点b的conflict中;然后,提取节点b中存储的C在片外存储器中的存储地址,使C和D一起到第2层查找合适的节点,并优先安排原有数据C;
在第2层,若查找到与C的位置标识相对应的节点d,而节点d当前的参数为(0,1,1)即B已映射至节点d,则C和B在节点d发生了冲突,将节点d的参数更新为(1,1,2),记录C和B的信息至节点d的conflict中;然后,提取节点d中存储的B在片外存储器中的存储地址,使B和C一起到第3层查找合适的节点,并优先安排原有数据B;此时,若D查找到与D的位置标识相对应的节点e,而节点e当前的参数为(0,0,0)即当前没有数据映射至节点e,则将D在片外存储器中的存储地址存储在节点e中,并将节点e的参数更新为(0,1,1);
在第3层,若查找到与B的位置标识相对应的节点f且节点f当前的参数为(0,0,0)、以及查找到与C的位置标识相对应的节点g且节点g当前的参数为(0,0,0),则将B在片外存储器中的存储地址存储在节点f中,并将节点f的参数更新为(0,1,1),以及将C在片外存储器中的存储地址存储在节点g中,并将节点g的参数更新为(0,1,1),以完成数据D的存储。
这里,当新插入的数据与原有数据在节点产生冲突且将该节点中存储的原有数据的存储地址提取出来以后,可删除该节点中存储的所述原有数据的存储地址;例如,当所述提取节点d中存储的B在片外存储器中的存储地址后,可删除所述节点d中存储的B在片外存储器中的存储地址,以节省空间利用率。
这里,假如“森林”总共有8层,当查找到第8层时,若与D的位置标识相对应的节点当前的参数为(0,1,1)或(0,1,n),即D和一个或 n个数据在该节点发生了冲突,此时说明存储空间已满,数据D无法存储了;但是,由于第1层至第7层都已经记录了D的冲突信息,则删除第1层至第7层中每一层中所记录的D的冲突信息,以使“森林”要回退到添加数据D之前的状态;例如,对于图6所示的第一层中的节点b而言,删除节点b中记录的数据D的信息后,节点b不再发生冲突,则需要将数据C在片外存储器中的存储地址重新存储至节点b,并删除数据C在第二层中的节点d处产生的冲突信息。
实施例三
本实施例基于的场景为:数据删除,即获取节点中存储的与数据对应的存储地址,并根据所述存储地址删除所述数据。
对于数据删除,由于数据的存储地址均存储在参数(collision,valid,count)的值为(0,1,1)的节点,则具体删除过程如下:
从第1层开始查找,找到与所述数据的位置标识相对应的节点后,根据该节点的参数执行相应的处理,即:
如果该节点的参数(collision,valid,count)的值为(0,1,1),则获取该节点中存储的与所述数据对应的存储地址,并根据所述存储地址从片外存储器中删除所述数据;
如果该节点的参数(collision,valid,count)的值为(1,1,n),则继续向下层查找,直到在某一层查找到一个与所述数据的位置标识相对应的、且参数(collision,valid,count)的值为(0,1,1)的节点,并执行数据删除操作;
如果该节点的参数(collision,valid,count)的值为(0,0,0),则说明该“森林”中未记录所述数据,删除失败。
这里,若与所述数据的位置标识相对应的节点不在第1层,则还需要删除所述数据在上层节点中的冲突信息,以使“森林”能够回退到存储所述数据之前的结构,当然前提条件是该“森林”在存储所述数据之后未继续存储数据。
下面以删除图6中的数据D为例进行说明,图7为本发明实施例三数 据删除的状态示意图,图7(aa)和图7(bb)分别表示数据删除后的两种不同状态示意图,具体删除过程如下:
根据图6,首先,根据D的位置标识在第1层查找到节点b,而节点b的参数为(1,1,2),说明在节点b产生过冲突;并且,根据节点b的conflict中记录的冲突信息,可知C和D在节点b产生过冲突,则到第2层继续查找D;根据D的位置标识在第2层查找到节点e,而节点e的参数为(0,1,1),满足执行删除的要求,则获取节点e中存储的与数据D对应的存储地址,并根据所述存储地址从片外存储器中删除数据D,以得到图7(aa)所示的状态示意图;
根据图7(aa),删除节点b的conflict中记录的D,由于节点b不再产生冲突,则根据节点b的conflict中记录的C的信息,获取C的位置标识;根据C的位置标识在第2层查找到节点d,而节点d的参数为(1,1,2),说明在节点d产生过冲突;并且,根据节点d的conflict中记录的冲突信息,可知B和C在节点d产生过冲突,则到第3层继续查找C;根据C的位置标识在第3层查找到节点g,而节点g的参数为(0,1,1),表示查找到C当前所在的节点;提取节点g中存储的与数据C对应的存储地址,并将所述与数据C对应的存储地址存储至节点b,更新节点b的参数为(0,1,1),以得到图7(bb)所示的状态示意图;
根据图7(bb),删除节点d的conflict中记录的C,由于节点d不再产生冲突,则根据节点d的conflict中记录的B的信息,获取B的位置标识;根据B的位置标识在第3层查找到节点f,而节点f的参数为(0,1,1),表示查找到B当前所在的节点;提取节点f中存储的与数据B对应的存储地址,并将所述与数据B对应的存储地址存储至节点d,更新节点d的参数为(0,1,1),以完成数据D的删除,以得到图4(bb)所示的状态示意图。
为实现上述方法,本发明实施例还提供了一种数据的存取装置,图8为本发明实施例数据的存取装置的组成结构示意图,该装置包括:第一处理单元11、第二处理单元12;其中,
所述第一处理单元11,配置为获取第一数据的存取方式和第一位置标 识;
所述第二处理单元12,配置为根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
这里,所述存取方式用于表示对所述第一数据将要执行的操作,包括存储、查找、删除等操作;在实际应用中,用户可根据实际需要选择所需要的存取方式;所述第一位置标识用于获取所述第一数据在“森林”中每一层对应的节点。
所述第二处理单元12,具体配置为:根据所述第一位置标识在“森林”中的当前层节点中查找与所述第一位置标识相对应的第一节点,以获取所述第一数据在当前层节点中所映射的第一节点。
这里,所述当前层可以是“森林”中的第一层,也可以不是“森林”中的第一层;实际上,对片内存储器的“森林”中各层是同时进行查找的,只是通常数据会优先映射至上层节点,而在上层节点产生冲突时,才映射至下层;因此,为了便于理解和阐述,可以认为在“森林”中是一层一层依次进行查找的,即从第一层开始往下查找。
所述第二处理单元12,具体配置为:
当所述存取方式为存储时,若根据所述第一节点的参数判断出所述第一节点满足执行存储的要求,则存储与所述第一数据对应的第一存储地址至所述第一节点;若根据所述第一节点的参数判断出所述第一节点不满足执行存储的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行存储的要求的第二节点,并存储与所述第一数据对应的第一存储地址至所述第二节点;
当所述存取方式为查找时,若根据所述第一节点的参数判断出所述第一节点满足执行查找的要求,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;若 根据所述第一节点的参数判断出所述第一节点不满足执行查找的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行查找的要求的第二节点,获取所述第二节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
当所述存取方式为删除时,若根据所述第一节点的参数判断出所述第一节点满足执行删除的要求,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据;若根据所述第一节点的参数判断出所述第一节点不满足执行删除的要求,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行删除的要求的第二节点,获取所述第二节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
这里,所述参数记录有节点当前的状态信息,包括映射至节点的数据的信息与数量;例如,当有两个或两个以上数据映射至节点时,记录每个数据的位置标识等信息、确定节点是否被占用以及是否存储有数据的存储地址等。
在一实施例中,所述第二处理单元12,还配置为:当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求之后,确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
具体地,当所述第二处理单元12判断出所述第一节点不满足对所述第一数据执行存储的要求时,如果根据所述第一节点的参数判断出当前只有第二数据和所述第一数据映射至所述第一节点,则在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点,以及删除所述第一节点中存储的所述第二存储地址。
这里,所述第一节点中记录有所述第二数据的第二位置标识;所述第二数据与所述第一数据相比,优先在下层节点中查找与所述第二位置标识相对应的、且满足执行存储要求的第三节点。
在一实施例中,所述第二处理单元12,还配置为更新所述第一节点、第三节点的参数。
具体地,当所述存取方式为存储时,所述第二处理单元12在所述存储与所述第一数据对应的第一存储地址至所述第一节点之后,更新所述第一节点的参数,以表明所述第一数据已映射至所述第一节点并使所述第一节点不满足执行存储的要求;所述第二处理单元12在所述存储与所述第一数据对应的第一存储地址至所述第二节点之后,更新所述第二节点的参数,以表明所述第一数据已映射至所述第二节点并使所述第二节点不满足执行存储的要求;所述第二处理单元12在所述将与所述第二数据对应的第二存储地址存储至所述第三节点之后,更新所述第三节点的参数,以表明所述第二数据已映射至所述第三节点并使所述第三节点不满足执行存储的要求;
当所述存取方式为删除时,所述第二处理单元12在所述获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据之后,更新所述第一节点的参数,以表明当前已没有数据映射至所述第一节点并使所述第一节点不满足执行删除的要求。
这里,所述参数包括映射至节点的数据的信息与数量;所述数据的信息包括数据的位置标识。
在一实施例中,所述第二处理单元12,还配置为:
获取上层节点中与所述第一位置标识相对应的第四节点的参数;
根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
具体地,当所述存取方式为删除时,所述第二处理单元12在所述获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据之后,获取上层节点中与所述第一位置标识相对应的第四节点的参数;所述第二处理单元12根据所述第四节点的参 数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找出与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点,以及删除所述第五节点中存储的所述第三存储地址。
这里,如果当前层是第一层,则不存在所述第四节点,即所述第二处理单元12不用执行上述操作;如果根据所述第四节点的参数确定当前不仅仅只有第三数据和所述第一数据映射至所述第四节点,则所述第二处理单元12也不用执行上述操作。
在一实施例中,所述第二处理单元12,还配置为更新所述第四节点、第五节点的参数。
具体地,所述第二处理单元12在所述将所述第三存储地址存储至所述第四节点,以及删除所述第五节点中存储的所述第三存储地址之后,更新所述第四节点的参数,以表明所述第三数据已映射至所述第四节点并使所述第四节点满足执行删除的要求;更新所述第五节点的参数,以表明当前已没有数据映射至所述第五节点并使所述第五节点不满足执行删除的要求。
在本实施例中,数据查找在片内存储器进行,数据存储在片外存储器,使得片外存储器中的数据可以存储在任意不连续的空间,并充分利用了片内存储器查找速度极高、片外存储器的存储空间大的特点,在不影响效率的情况下,可存储大量数据,且提高了空间利用率。
在实际应用中,所述第一处理单元11、第二处理单元12均可由位于数据的存储装置中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等处理器实现。
基于此,本发明实施例还提供了一种数据的存取装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行:
获取第一数据的存取方式和第一位置标识;
根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;
根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
在一实施例中,所述处理器配置为运行所述计算机程序时,执行:
若所述存取方式为查找,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
若所述存取方式为存储,则存储与所述第一数据对应的第一存储地址至所述第一节点;
若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
在一实施例中,所述处理器还配置为运行所述计算机程序时,执行:
当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
在一实施例中,所述处理器还配置为运行所述计算机程序时,执行:
更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
在一实施例中,所述处理器还配置为运行所述计算机程序时,执行:
当所述存取方式为删除,获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,获取上层节点中与所述第一位置标识相对应的第四节点的参数;
根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射 至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由数据的存取装置的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是磁性随机存取存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器。
具体地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:
获取第一数据的存取方式和第一位置标识;
根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;
根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
在一实施例中,所述计算机程序被处理器运行时,执行:
若所述存取方式为查找,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
若所述存取方式为存储,则存储与所述第一数据对应的第一存储地址 至所述第一节点;
若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
在一实施例中,所述计算机程序被处理器运行时,还执行:
当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
在一实施例中,所述计算机程序被处理器运行时,还执行:
更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
在一实施例中,所述计算机程序被处理器运行时,还执行:
当所述存取方式为删除,获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,获取上层节点中与所述第一位置标识相对应的第四节点的参数;
根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
工业实用性
本发明实施例提供的方案,获取第一数据的存取方式和第一位置标识;根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的 第一节点;根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。可见,本发明实施例基于片内存储器的存储空间小、速度快以及片外存储器的存储空间大、速度慢等特点,将数据存储在片外存储器,并将数据在片外存储器中的存储地址记录在片内存储器中,以使数据在片外存储器中进行存储时不必申请连续的存储空间,从而能够存储大量数据并提高地址空间利用率。

Claims (12)

  1. 一种数据的存取方法,所述方法包括:
    获取第一数据的存取方式和第一位置标识;
    根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;
    根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
  2. 根据权利要求1所述的方法,其中,所述在所述第一节点对所述第一数据执行所述存取方式,包括:
    若所述存取方式为查找,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
    若所述存取方式为存储,则存储与所述第一数据对应的第一存储地址至所述第一节点;
    若所述存取方式为删除,则获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
  3. 根据权利要求1所述的方法,其中,当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,所述方法还包括:
    确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的第二位置标识相对应的、且满足执行存储的要求的第三节点,并将与所述第二数据对应的第二存储地址存储至所述第三节点。
  4. 根据权利要求3所述的方法,其中,所述方法还包括:更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
  5. 根据权利要求2所述的方法,其中,当所述存取方式为删除,获取 所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,所述方法还包括:
    获取上层节点中与所述第一位置标识相对应的第四节点的参数;
    根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的与所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
  6. 一种数据的存取装置,所述装置包括:第一处理单元、第二处理单元;其中,
    所述第一处理单元,配置为获取第一数据的存取方式和第一位置标识;
    所述第二处理单元,配置为根据所述第一位置标识在当前层节点中查找与所述第一位置标识相对应的第一节点;根据所述第一节点的参数判断所述第一节点是否满足执行所述存取方式的要求,若满足,则在所述第一节点对所述第一数据执行所述存取方式;若不满足,则在下层节点中继续查找与所述第一位置标识相对应的、且满足执行所述存取方式的要求的第二节点,并在所述第二节点对所述第一数据执行所述存取方式。
  7. 根据权利要求6所述的装置,其中,所述第二处理单元,配置为:
    若所述存取方式为查找,则获取所述第一节点中存储的所述第一数据对应的第一存储地址,并根据所述第一存储地址读取所述第一数据;
    若所述存取方式为存储,则存储所述第一数据对应的第一存储地址至所述第一节点;
    若所述存取方式为删除,则获取所述第一节点中存储的所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据。
  8. 根据权利要求6所述的装置,其中,
    所述第二处理单元,还配置为当所述存取方式为存储,且判断出所述第一节点不满足执行所述存取方式的要求后,确定当前只有第二数据和所述第一数据映射至所述第一节点时,在下层节点中查找与所述第二数据的 第二位置标识相对应的、且满足执行存储的要求的第三节点,并将所述第二数据对应的第二存储地址存储至所述第三节点。
  9. 根据权利要求8所述的装置,其中,
    所述第二处理单元,还配置为更新所述第一节点、第三节点的参数;所述参数包括映射至节点的数据的信息与数量。
  10. 根据权利要求7所述的装置,其中,
    所述第二处理单元,还配置为当所述存取方式为删除,获取所述第一节点中存储的与所述第一数据对应的第一存储地址,并根据所述第一存储地址删除所述第一数据后,根据所述第一位置标识在上层节点中查找与所述第一位置标识相对应的第四节点;根据所述第四节点的参数确定当前只有第三数据和所述第一数据映射至所述第四节点时,在所述当前层节点和/或下层节点中查找与所述第三数据的第三位置标识相对应的、且满足执行删除的要求的第五节点,获取所述第五节点中存储的所述第三数据对应的第三存储地址,并将所述第三存储地址存储至所述第四节点。
  11. 一种数据的存取装置,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
    其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至5任一项所述方法的步骤。
  12. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
PCT/CN2017/094244 2016-11-30 2017-07-25 一种数据的存取方法、装置及计算机可读存储介质 WO2018099106A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611086330.2 2016-11-30
CN201611086330.2A CN108121500A (zh) 2016-11-30 2016-11-30 一种数据的存取方法及装置

Publications (1)

Publication Number Publication Date
WO2018099106A1 true WO2018099106A1 (zh) 2018-06-07

Family

ID=62227349

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/094244 WO2018099106A1 (zh) 2016-11-30 2017-07-25 一种数据的存取方法、装置及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN108121500A (zh)
WO (1) WO2018099106A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0622710A2 (en) * 1993-04-28 1994-11-02 Allen-Bradley Company Digital communication network with a moderator station election process
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
CN102938784A (zh) * 2012-11-06 2013-02-20 无锡江南计算技术研究所 应用于分布式存储系统中的数据存储方法和系统
CN104601471A (zh) * 2015-02-02 2015-05-06 华为技术有限公司 一种转发信息表的读写方法及网络处理器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2002799C2 (en) * 2009-04-24 2010-10-26 Univ Delft Tech Data structure, method and system for address lookup.
CN103631532B (zh) * 2012-08-29 2016-06-15 国际商业机器公司 用于在数据存储系统中访问数据的方法和设备
CN104376025B (zh) * 2013-08-16 2017-10-10 华为技术有限公司 分布式数据库的数据存储方法和装置
CN104657385A (zh) * 2013-11-22 2015-05-27 乐视网信息技术(北京)股份有限公司 一种节点的查找方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0622710A2 (en) * 1993-04-28 1994-11-02 Allen-Bradley Company Digital communication network with a moderator station election process
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
CN102938784A (zh) * 2012-11-06 2013-02-20 无锡江南计算技术研究所 应用于分布式存储系统中的数据存储方法和系统
CN104601471A (zh) * 2015-02-02 2015-05-06 华为技术有限公司 一种转发信息表的读写方法及网络处理器

Also Published As

Publication number Publication date
CN108121500A (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
KR102226257B1 (ko) 서비스 데이터를 블록체인 시스템에 기입하기 위한 방법 및 디바이스
KR102266756B1 (ko) Kvs 트리
TWI702506B (zh) 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法
TWI702503B (zh) 實施用於維護操作之合併樹修改之系統、方法及電腦可讀媒體
US10642515B2 (en) Data storage method, electronic device, and computer non-volatile storage medium
WO2018099107A1 (zh) 一种哈希表管理的方法和装置、计算机存储介质
US8208408B2 (en) Tree-based node insertion method and memory device
KR20200053512A (ko) Kvs 트리 데이터베이스
CN110383261A (zh) 用于多流存储装置的流选择
WO2016050112A1 (zh) 一种数据存储方法、存储装置及存储系统
US20130297570A1 (en) Method and apparatus for deleting duplicate data
US10146818B2 (en) Computing system
WO2020211236A1 (zh) 基于b+树的读写冲突解决方法、装置及存储介质
CN106682215B (zh) 一种数据处理方法和管理节点
CN103345469B (zh) 号码集合的存储、查询方法及其装置
TWI652586B (zh) 基於社交網路的群組查找方法和裝置
CN110413711A (zh) 一种差异数据获取方法及其存储介质
US9836491B1 (en) Method and apparatus for hardware-implemented AVL tree updates
WO2021129354A1 (zh) 存储系统中管理数据索引的方法和装置
WO2016101915A1 (zh) 修改Lucene索引文件
WO2018099106A1 (zh) 一种数据的存取方法、装置及计算机可读存储介质
TW202004521A (zh) 一種lsm樹的優化方法、裝置及電腦設備
CN107643959B (zh) 镜像文件处理方法和装置
CN104537023A (zh) 一种反向索引记录的存储方法及装置
JP7105718B2 (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17875089

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17875089

Country of ref document: EP

Kind code of ref document: A1