Description and claims of this specification and term " first ", " second ", " third " and " in above-mentioned attached drawing
Four " etc. are not use to describe a particular order for distinguishing different objects.In addition, term " includes " and " having " and it
Any deformation, it is intended that cover and non-exclusive include.Such as it contains the process, method of a series of steps or units, be
System, product or equipment are not limited to listed step or unit, but optionally further comprising the step of not listing or list
Member, or optionally further comprising other step or units intrinsic for these process, methods, product or equipment.
The embodiment of the present invention utilizes PRP in NVMe agreement Submission Queue Entry (submitting queue entries)
The number that (Physical Region Page, page physical region) or SGL (Scatter Gather List gathers scattered table) are directed toward
The data packet that key assignments storage is transmitted according to section, contain in this data packet key assignments storage action type (such as operation code),
Sequence of store instructions memory address (memory address of sequence of store instructions include address as Value or Value are stored,
The information such as address of Key or Key storage), storage class mark (such as SLBA in setting Submission Queue Entry
Field and NLB field are invalid value, indicate that operation defined in current Submission Queue Entry is key assignments storage behaviour
Make).When SLBA the and NLB field in storage control analysis Submission Queue Entry is invalid value, key value is deposited
Store up flow processing.
It is worth noting that key assignments storage can extend in a variety of storage agreements, including but not limited to NVMe, SCSI etc.
Other storage agreements, the present embodiment are then illustrated with NVMe agreement.
Fig. 1 (a) and Fig. 1 (b) is the server of the embodiment of the present invention and the structural schematic diagram of storage control.Server and
The connection type of controller includes but is not limited to PCIe (PCI-Express, newest bus and interface standard), SAS
(Statistical Analysis System, statistical analysis software), SATA (Serial Advanced Technology
Attachment, Serial Advanced Technology Attachment), other internetwork connection modes such as ether.Instruction and data between host and controller
Transmission mode include but is not limited to DMA (Direct Memory Access, immediate data access), RDMA (Remote
Direct Memory Access, remote direct data access) etc. other transmission modes.
Server includes bottom plate, and the chips such as processor, memory, bridge piece are equipped on bottom plate, for other expansion equipments
It is controlled, realizes the function of server.Specifically, server is for obtaining storage operation requests, according to storage operation requests
Sequence of store instructions is generated, and determines the action type of storage operation requests, storage class mark and sequence of store instructions
Memory address, further according to storage operation requests action type, storage class mark and sequence of store instructions memory address
Memory request queue is generated, finally by memory request queue to storage control.
As shown in Fig. 1 (a), the connection type of server and storage control is PCIe, and Fig. 2 of the embodiment of the present invention extremely schemes
The connection type of 7 servers and storage control shown in (a) referring to Fig.1 is implemented.Server includes memory, processing
Device, communication bus, bridge piece and communication interface.Memory stores program code, and processor calls the program stored in memory
Code, for executing Fig. 2 to storage method shown in Fig. 7, communication interface is for realizing between server and storage control
Communication, communication bus is for realizing the connection communication between memory and processor.
Processor includes NVMe driving layer, application module, middleware, traditional application module, file system and block layer.
Application module either stores client software for server application.
Traditional application module is the server application of traditional file systems or block device interface.
Middleware is key assignments Storage Middleware Applying, provides key assignments memory interface to server application, and storage request is transmitted
Layer is driven to NVMe.Middleware can once be transmitted to device drive layer by device drives layer interface by multiple bondings simultaneously.
File system, such as EXT3 (Third Extended Filesystem, the third generation extend file system), EXT4
(Fourth Extended Filesystem, forth generation extend file system), FAT32 (Windows system disk zoned format
One kind) etc.;
Block layer: operating system stores the level of abstraction of equipment to block, and generic-document system is all implemented on this layer;
NVMe drives layer: server operating system is carried out data transmission and is ordered by drive software and NVMe storage equipment
Interaction.It includes NVMe command conversion module that NVMe, which drives layer,.
NVMe command conversion module: the memory address for storing the data of key assignments storage is inserted into Submission Queue
SLBA (Starting LBA, logical blocks initial address) and NLB (Number of is arranged in the PRP or SGL of Entry
Logical Blocks, the quantity of logical block) field is invalid value, and Submission Queue Entry is submitted to NVMe
Driving layer is handed down to storage control.
Storage control (operation such as being written and read to the storage equipment connected under controller) is also a chip, such as FPGA
(Field-Programmable Gate Array, i.e. field programmable gate array), ASIC (Application Specific
Integrated Circuit, integrated circuit) etc., the read-write for completing to receive server by being programmed this chip is asked
It asks, and various access and control is carried out to the storage equipment under storage control in connection.Support the storage control of this mode
Or storage system can provide block storage simultaneously and key assignments stores two ways.Storage control is the storage for supporting NVMe agreement
Controller, controller are connected by PCIe bus with server.Specifically, storage control is used to obtain depositing for server transmission
Request queue is stored up, the memory address of sequence of store instructions is obtained according to memory request queue, stores the action type of operation requests
And storage class mark, identification storage class mark, and according to the memory address of sequence of store instructions, storage operation requests
Action type and storage class mark execute corresponding storage operation.
As shown in Fig. 1 (a), storage control includes NVMe command process unit, key assignments storage processing unit, NVMe operation
Processing unit and storage control unit.
NVMe command process unit, for analyzing the storage class mark in the memory request queue that storage control receives
Know, judges the validity of SLBA and NLB field, memory request queue is distributed to key assignments storage processing unit when invalid, effectively
When be distributed to NVMe operation processing unit.
Key assignments storage processing unit handles whole key assignments storage operations, and state submits to storage control by treated
Unit processed.
NVMe operation processing unit handles standard NVMe agreement operation requests, i.e. block storage operation, and will treated shape
State submits to storage control unit.
The state that foregoing units are submitted is converted to the operation to back-end storage device by storage control unit, and will operation
As a result foregoing units are fed back to.
Storage medium include DRAM (Dynamic Random Access Memory, dynamic random access memory),
NVRAM (Non-Volatile Random Access Memory, nonvolatile random access memory), nand flash memory or
Other memory devices.
Optionally, as shown in Fig. 1 (b), the connection type of server and storage control can be also SAS, server and deposit
The interaction and respective embodiment of storing up controller can refer to the embodiment of server and storage control shown in Fig. 1 (a),
It then repeats no more in embodiments of the present invention.
The application module of server shown in Fig. 1 (b), traditional application module, middleware, file system and block layer function
It is identical with the function of the respective modules of server in Fig. 1 (a).In addition to this, server further includes the upper layer SCSI, the middle layer SCSI.
SCSI layers, handle the software layer of SCSI affairs, including the upper layer SCSI, the middle layer SCSI and SCSI lower layer.
Scsi device driving, is located at SCSI lower layer, is responsible for SCSI request submitting to storage control, after the completion storage control
Control and data interactive operation between device processed.
The command conversion module 10110 of server shown in Fig. 1 (b) is located at scsi device driving layer, for depositing key assignments
The operation code of storage request expands on SCSI protocol, and is posed to scsi device driving and is sent to storage control.
Storage in the key assignments storage processing unit and storage control unit and Fig. 1 (a) of storage control shown in Fig. 1 (b)
The function of controller corresponding unit is identical.
For the command process unit of storage control shown in Fig. 1 (b), the instruction code in SCSI request, judgement are analyzed
It is that will instruct to submit to key assignments processing unit or SCSI processing unit.
The SCSI processing unit of storage control shown in Fig. 1 (b) handles the other standards in addition to key assignments store command
Scsi command.
It is to be operated in SCSI protocol provided in an embodiment of the present invention to block device referring to Fig. 1 (c) and Fig. 1 (d), Fig. 1 (c)
Instruction code defines schematic diagram, and Fig. 1 (d) is SCSI READ (12) instruction definition schematic diagram provided in an embodiment of the present invention.Wherein,
Fig. 1 (c) is divided into Fig. 1 (c-1) and Fig. 1 (c-2).
By taking SCSI READ (12) instruction as an example:
When executing key assignments storage operation by LOCGICAL BLOCK ADDRESS field and TRANSFER LENGTH field
Filling out indicates current operation not instead of block storage operation, key assignments storage behaviour for prepending non-significant value (prepending non-significant value is, for example, full F)
Make.Key assignments storage operation code and operating process can detailed in Example Fig. 2 to Fig. 6 storage method.
Fig. 2 (a) is please referred to, Fig. 2 (a) is a kind of process signal of an embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 2 (a).
As shown in Fig. 2 (a), an a kind of embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S100, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.
As a kind of enforceable mode, the format of sequence of store instructions can be shown in Fig. 2 (b), and Fig. 2 (b) is the present invention one
A kind of sequence of store instructions form schematic diagram that embodiment provides.
Wherein, each field meaning of sequence of store instructions is as follows:
S101, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, storage operation requests action type be used to indicate storing data, read data, delete data with
And any action type in discarding data, it can specifically be indicated with operation code, to indicate the action type of storage operation.Such as
Shown in lower:
| Operation code |
Instruction description |
| 01h |
Mono-recordable data: Write |
| 02h |
Single reads data: Read |
| 03h |
Single obtains the length that Key corresponds to Value: Get Length |
| 04h |
Single deletes data: Delete |
| 05h |
Single discarding data: TRIM |
| 06h |
Data are write in polymerization: Write |
| 07h |
Data: Read are read in polymerization |
| 08h |
Polymerization obtains the length that Key corresponds to Value: Get Length |
| 09h |
Data: Delete are deleted in polymerization |
| 0Ah |
It polymerize discarding data: TRIM |
In the specific implementation, storage class mark be used to indicate it is described storage operation requests storage class be key assignments storage or
The storage of person's block.
In the specific implementation, the memory address of sequence of store instructions is used to indicate storage control according to sequence of store instructions
Memory address obtains sequence of store instructions, to obtain the relevant information of data packet.
S102, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, can the DWORD0 field of memory request queue fill out storage operation requests action type, depositing
SLBA the and NLB field of storage request queue fills out storage class mark, can fill out in the Data Pointer field of memory request queue
The address of sequence of store instructions storage.The storage class that storage class mark is used to indicate the storage operation requests is deposited for key assignments
Chu Shi is identified as prepending non-significant value in the storage class that the SLBA and NLB field of memory request queue is filled out.Alternatively, storage class
The number of position and the storage that mark needs to store according to the storing data identified in memory request queue in the storage
According to length and whether be greater than the storage control capacity determine that storage class identifies whether as prepending non-significant value.Example
Such as, when the storage total capacity of storage medium is X, filling out logical blocks initial address in the SLBA field of memory request queue is Y,
The quantity that NLB field fills out logical block is Z, and as Y+Z > X, i.e., expression Y and Z filling is invalid value, that is, the data operated
When capacity beyond rear end storage medium, that is, it is considered invalid value.
As a kind of enforceable mode, NVMe agreement Submission Queue Entry occupies one section of continuous 64 word
Memory is saved, the relevant instruction code of I/O operation in NVMe agreement, as shown in Fig. 2 (c), Fig. 2 (c) is that one embodiment of the invention provides
The relevant instruction code schematic diagram of I/O operation in NVMe agreement.
In the specific implementation, Fig. 2 (d) is that one embodiment of the invention provides shown in the memory request queue such as Fig. 2 (d) generated
Memory request queue's schematic diagram.
S103, server send the memory request queue to storage control.
In the specific implementation, memory request queue is sent to storage control by server, the memory request queue is used for
Indicate that the storage control executes corresponding storage operation according to the memory request queue.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 3 (a) is please referred to, Fig. 3 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 3 (a).Fig. 3 (a) embodiment is for storage behaviour
Making the action type requested is that storing data (i.e. write operation) is specifically described.The storage class for storing operation requests is key assignments
Storage.
As shown in figure 3, a kind of another embodiment of storage method of the embodiment of the present invention may comprise steps of.
S200, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer calls middleware to write interface: its code is Put (String
Key, String Value), the address for submitting the storage operation requests of write operation, Key and Value data to store by middleware to
NVMe drives layer, and NVMe drives layer to generate sequence of store instructions according to the storage operation requests of write operation.
As a kind of enforceable mode, the process (not shown) of sequence of store instructions is generated specifically:
S2001, NVMe drive 64 byte of memory address of layer application to store sequence of store instructions;
S2002, KV Command field fill out KV Write Opcode 01h, which is used to indicate the operation of storage operation requests
Type is the action type of storing data;
S2003, Key Pointer field fill out the memory address of Key storage;
S2004, Key Length field fill out Key data length;
The crc value of S2005, Key data CRC value field storage key data;
S2006, Value Pointer field fill out the memory address of Value storage;
S2007, Value Length field fill out Value data length;
The crc value of S2008, Value data CRC value field storage Value data;
S2009, Command data CRC value field store the crc value of 64 byte instruction sequences.
S201, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is storing data (i.e. write operation), determine the storage class of storage operation requests
Type is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storage
Operation requests are the operation requests of key assignments storage.
S202, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, server generates memory request queue, by NVMe command conversion module in memory request queue
DWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queue
SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue
Fill out the memory address of sequence of store instructions storage.Specifically, what is generated is used to that the storage of storing data (i.e. write operation) to be requested to be asked
Ask shown in queue such as Fig. 3 (b), Fig. 3 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S203, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control is operated according to the storage that the memory request queue executes storing data.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation of storing data based on the received.
S204, storage control obtain memory request queue.
S205, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S206, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.The analysis of NVMe command process unit is sent in memory request queue
Write command, Key and Value address information, submit the storage operation requests of write operation to key assignments storage processing unit.
S207, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
In the specific implementation, key assignments storage processing unit handles Key and Value information, the storage operation for converting write operation is asked
It asks to correspond to the write operation requests of storage equipment, and submits the storage operation requests of write operation to storage control unit.
S208, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments of row storage data stores operation.
In the specific implementation, storage control unit writes data to storage medium (such as back-end storage device).
S209, the storage control export operational status information.
In the specific implementation, operational status information is returned to server after storage control writes data to back-end storage device,
To indicate that storage control executes the state writing the storage of data and operating.Specifically, storage control unit writes data to rear end and deposits
After storing up equipment, operational status information is returned to key assignments storage processing unit, then sent by key assignments storage unit and foregoing units
To server.
S210, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the storing data.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 4 (a) is please referred to, Fig. 4 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 4 (a).Fig. 4 (a) embodiment is for storage behaviour
Make the action type requested and is specifically described to read data (i.e. read operation).The storage class for storing operation requests is key assignments
Storage.Reading data may include obtaining Key to correspond to Value length, or obtain Value information, and the present embodiment is for acquisition Key
Corresponding Value length, or obtain Value information and illustrated one by one.
As shown in Fig. 4 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S300, server obtain storage operation requests, key assignments length are obtained according to the storage operation requests, according to described
Key assignments length generates sequence of store instructions.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer calls middleware read operation interface: its code is Get (String
Key).Wherein, storage operation requests can correspond to the request of Value length to obtain Key or obtain the request of Value information.
As a kind of enforceable mode, the request of Value length is corresponded to for obtaining Key, due to the data packet of reading
Length be not fixed, it is therefore desirable to submit obtaining Key and correspond to the request of Value length to NVMe driving layer, NVMe by middleware
Driving layer then generates sequence of store instructions according to the request that acquisition Key corresponds to Value length.It generates acquisition Key and corresponds to Value long
The process (not shown) of the sequence of store instructions of degree specifically:
S3001,64 byte of memory of application do sequence of store instructions;
S3002, KV Command field, which are filled out, obtains the length Read Opcode 03h that Key corresponds to Value, and the field is for referring to
The action type for showing storage operation requests is to obtain the action type for the length that Key corresponds to Value;
S3003, Key Pointer field fill out the memory pointer of Key storage;
S3004, Key Length field fill out the length of Key data;
S3005, Key Data CRC Value field fill out the crc value of Key data;
S3006, Value Pointer field fill out 0, indicate no data transmission;
S3007, Value Length field fill out 0, indicate no data transmission;
S3008, Value Data CRC Value field fill out 0, indicate no data transmission;
S3009, Command Data CRC Value field fill out the crc value of instruction sequence data.
The storage for obtaining Value information is generated for obtaining the request of Value information as a kind of enforceable mode
The process (not shown) of instruction sequence specifically:
S30010,64 byte of memory of application do KV instruction sequence;
S30011, KV Command field, which are filled out, obtains the operation code 02h that Key corresponds to Value, which is used to indicate storage
The action type of operation requests is to obtain the action type of Value information;
S30012, Key Pointer field fill out the memory pointer of Key storage;
S30013, Key Length field fill out the length of Key data;
S30014, Key Data CRC Value field fill out the crc value of Key data;
S30015, Value Pointer field fill out the memory address that the Value of reading is stored in host by controller;
S30016, Value Length field fill out the length that controller reads Value data;
S30017, Value Data CRC Value field fill out 0;
S30018, Command Data CRC Value field fill out the crc value of instruction sequence data.
S301, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is to read data (i.e. read operation), determine the storage class of storage operation requests
Type is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storage
Operation requests are the operation requests of key assignments storage.
S302, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, server generates memory request queue, by NVMe command conversion module in memory request queue
DWORD0 field fills out the action type (i.e. NVMe read command operation code 02h) of storage operation requests, in memory request queue
SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue
Fill out the memory address of sequence of store instructions storage.
As a kind of enforceable mode, generation is used for requests data reading (length of Value is corresponded to as obtained Key)
Memory request queue such as Fig. 4 (b) shown in, Fig. 4 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, the storage for requests data reading (as obtained Value information) of generation is asked
Ask shown in queue such as Fig. 4 (c), Fig. 4 (c) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S303, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for reading data according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for reading data based on the received.
S304, storage control obtain memory request queue.
S305, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S306, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S307, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S308, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments that row reads data stores operation.
In the specific implementation, corresponding to the request of Value length for obtaining Key, the analysis storage of NVMe command process unit is asked
The reading in queue is asked to instruct, Key information, the storage operation requests for submitting reading Key to correspond to Value size operation are stored to key assignments
Processing unit.Key assignments storage processing unit obtains corresponding Value from storage medium (such as back-end storage device) according to Key information
Length submits length information to NVMe command process unit.
In the specific implementation, NVMe command process unit is analyzed in memory request queue for the request for obtaining Value information
Reading instruction, Value memory address information, submit read Value information operation storage operation requests to key assignments storage processing
Unit.Key assignments storage processing unit submits the storage operation requests for reading the operation of Value information to storage control unit, is controlled by storage
Unit processed executes data reading operation.Storage control unit reads Value information and distributes to the memory that Value is stored to server
Location.
S309, the storage control export operational status information.
In the specific implementation, operational status information is returned to server, after storage control reads data to indicate to store
Controller executes the state for reading the storage operation of data.
In the specific implementation, corresponding to the request of Value length, the NVMe command process list of storage control for obtaining Key
Member returns to Value length to server.
In the specific implementation, after storage control unit reads Value information, being submitted for the request for obtaining Value information
The operational status information of Value information is read to key assignments storage processing unit, key assignments storage processing unit, which is submitted, reads Value information
For operational status information to NVMe command process unit, NVMe command process unit can will read the operational status information of Value information
It fills out in the completion queue interacted with server, and be sent to server for queue is completed.
S310, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation for reading data.
In the specific implementation, the request of Value length is corresponded to for obtaining Key, the NVMe command conversion module in server
Transmitting carries the operational status information of Value length to middleware.Finally, middleware is according to Value length allocation Value data
In the memory headroom of host side storage.
In the specific implementation, the NVMe driving layer of server finishes receiving queue for the request for obtaining Value information.Most
NVMe drives layer to submit the operational status information of reading Value information to middleware afterwards.Middleware reads Value information for received
Operational status information is sent to application module.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 5 (a) is please referred to, Fig. 5 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 5 (a).Fig. 5 (a) embodiment is for storage behaviour
Make the action type requested and is specifically described to delete data or discarding data.The storage class for storing operation requests is key assignments
Storage.
As shown in Fig. 5 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S400, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer call middleware deletion or discarded interface: its code is
Perhaps TRIM (String Key) is mentioned with carrying out deletion or discarding data operation by middleware Delete (String Key)
Hand over the storage operation requests (i.e. the operation code of deletion or abandonment operations) of deletion or abandonment operations, the address letter of Key data storage
It ceases to NVMe and drives layer.NVMe drives layer to generate sequence of store instructions according to the storage operation requests of deletion or abandonment operations.
As a kind of enforceable mode, the process (not shown) of sequence of store instructions is generated specifically:
S4001, NVMe drive 64 byte of memory address of layer application to store sequence of store instructions;
S4002, KV Command field fill out deletion data operation code 04h or discarding data operation code 05h, which uses
In the action type that the action type of instruction storage operation requests is deletion or discarding data;
S4003, Key Pointer field fill out the memory pointer of Key storage;
S4004, Key Length field fill out the length of Key data;
S4005, Key Data CRC Value field fill out the crc value of Key data;
S4006, Value Pointer field fill out 0, indicate no data transmission;
S4007, Value Length field fill out 0, indicate no data transmission;
S4008, Value Data CRC Value field fill out 0, indicate no data transmission;
S4009, Command Data CRC Value field fill out the crc value of instruction sequence data.
S401, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is deletion or discarding data, determine that the storage class of storage operation requests is
Key assignments storage generates corresponding storage class according to the storage class of storage operation requests and identifies, and is used to indicate storage operation
Request is the operation requests of key assignments storage.
S402, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue.
In the specific implementation, server generates memory request queue, by NVMe command conversion module in memory request queue
DWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queue
SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue
Fill out the memory address of sequence of store instructions storage.Specifically, the memory request queue such as Fig. 5 for being used to request to delete data generated
(b) shown in, Fig. 5 (b) be another embodiment of the present invention provides memory request queue's schematic diagram.
Specifically, Fig. 5 (c) is this hair shown in the memory request queue such as Fig. 5 (c) for requesting discarding data generated
Memory request queue's schematic diagram that bright another embodiment provides.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S403, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for deleting data or discarding data according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for deleting data or discarding data based on the received.
S404, storage control obtain memory request queue.
S405, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S406, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S407, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
In the specific implementation, the analysis of NVMe command process unit sends deletion or discard instruction, Key in memory request queue
Address information, submit delete or abandonment operations storage operation requests to key assignments storage processing unit.
S408, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
Row delete data or discarding data key assignments store operation.
In the specific implementation, key assignments storage processing unit handle Key information, conversion delete or abandonment operations storage operation
Request for corresponding storage equipment deletion or abandonment operations, and submit delete or abandonment operations storage operation requests to depositing
Store up control unit, finally by storage control unit execute storage medium (such as back-end storage device) deletion or abandonment operations.
S409, the storage control export operational status information.
In the specific implementation, storage control to storage medium (such as back-end storage device) execute delete or abandonment operations
Afterwards, return to operational status information to server, with indicate storage control execute delete or the state of discarded storage operation.
Specifically, storage control unit storage medium is executed delete or after abandonment operations, return and grasp to key assignments storage processing unit
Make status information, then server is sent to by key assignments storage unit and foregoing units.
S410, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the deletion data or discarding data.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 6 (a) is please referred to, Fig. 6 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 6 (a).The storage of at least two key assignments operates
Alternatively referred to as converging operation.So-called converging operation refers to that the request of primary polymerization storage operation can be completed at the same time multiple singles and deposit
The request of operation is stored up, the process that process and single request operate is almost the same.Unlike, multiple keys (Key) or value
(Value) it needs to pass to storage control by NVMe transmit queue by SGL (poly- scattered table).For the storage of converging operation
The corresponding operation code of the action type of operation requests can be as follows:
| Operation code |
Instruction description |
| 06h |
Data are write in polymerization: Write |
| 07h |
Polymerization obtains data: Read |
| 08h |
Polymerization obtains the length that Key corresponds to Value: GetLength |
| 09h |
Data: Delete are deleted in polymerization |
| 0Ah |
It polymerize discarding data: TRIM |
For polymerizeing removal request, deleting data command (09h) using polymerization, once 4 keys (Key) of deletion are corresponding
It is worth (Value) data.Fig. 6 (a) embodiment is for the deletion that the action type of storage operation requests is at least two key assignments
Data are specifically described.The storage class of operation requests is stored as key assignments storage.
When key assignments is stored as converging operation, the address information of multiple Key or Value, SGL table are recorded using SGL table
It is one section of continuous memory address;It is and then deposited after can thering are multiple entry, previous entry to deposit in one SGL table latter
A entry;Each entry indicates the address information of a Key or Value, each entry is by SGL Key
Tri- Pointer, SGL Key length and SGL Key data CRC value element compositions, SGL table definition format such as Fig. 6
(b) shown in, Fig. 6 (b) be another embodiment of the present invention provides SGL table definition format schematic diagram.
Its field definition is as follows:
Generate the process (not shown) of the sequence of store instructions of converging operation specifically:
S1, host computer side distribute the memory headroom of key assignments sequence of store instructions storage.
S2 stores the number of Key or Value that operation requests need to operate according to key assignments, calculates entry in SGL
Number;In the size for calculating SGL table according to the number of entry;In the memory headroom of host computer side distribution SGL table storage.
S3, the needs of operation requests are stored according to key assignments, and KV Command field fills out the operation code of polymerization instruction.
S4, the needs of operation requests are stored according to key assignments, and Key Pointer field fills out the SGL table storage that Key data use
Memory pointer.
S5, the needs of operation requests are stored according to key assignments, and Key Length field fills out the length for the SGL table that Key data use
Degree.
S6, the needs of operation requests are stored according to key assignments, and Key Data CRC Value field fills out what Key data used
The crc value of SGL table data.
S7, the needs of operation requests are stored according to key assignments, and Value Pointer field fills out the SGL table that Value data use
The memory pointer of storage.
S8, the needs of operation requests are stored according to key assignments, and Value Length field fills out the SGL table that Value data use
Length.
S9, the needs of operation requests are stored according to key assignments, and Value Data CRC Value field fills out the use of Value data
SGL table data crc value.
S10 fills SGL contents in table.
S11, first SGL Pointer fill out the memory pointer of first key or Value storage.
S12, first SGL Length field fill out the length of first key or Value.
The crc value of first key or Value of S13, first SGL Data CRC Value.
S14 is successively inserted whole key Value information in SGL table by preceding step.
S15, Command Data CRC Value field fill out the crc value of instruction sequence data.
As shown in fig. 6, a kind of another embodiment of storage method of the embodiment of the present invention may comprise steps of.
S500, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests, generate
Sequence of store instructions include at least two key assignments sub- sequence of store instructions.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the application module of application layer calls the deletion interface of middleware: its code is Delete_
Group (String Key group) submits depositing for delete operation by middleware to carry out deleting the operation of at least two key assignments
Storage operation requests (deleting the operation code of at least two key assignments operation), the address information of Key data storage to NVMe drive layer.
NVMe drives layer to generate sequence of store instructions according to the storage operation requests for deleting the operation of at least two key assignments.
As a kind of enforceable mode, the process for the sequence of store instructions for deleting the operation of at least two key assignments is generated (not
Diagram) specifically:
S5001,64 byte of memory of application do KV instruction sequence;
S5002, every key are recorded in SGL and account for 24 bytes, distribute SGL table memory according to Key number;
S5003, KV Command field fill out polymerization delete operation code 09h, which is used to indicate storage operation requests
Action type is to delete the action type of at least two key assignments;
S5004, Key Pointer field fill out the memory pointer of SGL table storage;
S5005, Key Length field fill out the length of SGL table;
S5006, Key Data CRC Value field fill out the crc value of SGL table data;
S5007, first SGL Pointer fill out the memory pointer of first key storage;
S5008, first SGL Length field fill out the length of first Key;
The crc value of first Key of S5009, first SGL Data CRC Value;
S5010 is successively inserted whole Key information in SGL table by preceding step;
S5011, Value Pointer field fill out 0, indicate no data transmission;
S5012, Value Length field fill out 0, indicate no data transmission;
S5013, Value Data CRC Value field fill out 0, indicate no data transmission;
S5014, Command Data CRC Value field fill out the crc value of instruction sequence data.
S501, server determines the action type of the storage operation requests, storage class mark, for described at least two
The sub- sequence of store instructions of a key assignments determines corresponding memory address.
In the specific implementation, NVMe drives layer that the memory address that sequence of store instructions is stored is passed to NVMe order modulus of conversion
Block, and determine that the action type of storage operation requests is to delete at least two key assignments, determine the storage class of storage operation requests
For key assignments storage, corresponding storage class is generated according to the storage class of storage operation requests and is identified, is used to indicate storage behaviour
Make the operation requests that request is key assignments storage.
S502, server according to it is described storage operation requests action type, the storage class mark and it is described extremely
The memory address of the sub- sequence of store instructions of few two key assignments generates memory request queue.
In the specific implementation, server generates memory request queue, by NVMe command conversion module in memory request queue
DWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queue
SLBA field and NLB field fill out storage class mark (i.e. the full F of invalid value), in the Data Pointer field of memory request queue
Fill out the memory address of sequence of store instructions storage.Specifically, the storage request for being used to request to delete at least two key assignments generated
Shown in queue such as Fig. 6 (c), Fig. 6 (c) be another embodiment of the present invention provides memory request queue's schematic diagram.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether as prepending non-significant value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z > X, i.e. expression Y
With Z filling be invalid value, that is, the data operated exceed rear end storage medium capacity when, that is, be considered invalid value.
S503, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control executes the storage operation for deleting at least two key assignments according to the memory request queue.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation for deleting at least two key assignments based on the received.
S504, storage control obtain memory request queue.
S505, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S506, the storage control determine the storage class of the storage operation requests according to storage class mark
For key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is invalid value with NLB field, then is determined as key assignments storage operation.
S507, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S508, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The key assignments that row deletes at least two key assignments stores operation.
In the specific implementation, the analysis of NVMe command process unit sends at least two key assignments of deletion in memory request queue
It instructs, the address information of SGL, submits the storage operation requests of at least two key assignments of deletion to key assignments storage processing unit.Key assignments
Storage processing unit handles the Key that SGL is stored again one by one, converts converging operation as in the corresponding storage equipment of each Key
The storage operation requests of at least two key assignments of deletion of data submit request to arrive storage control unit, finally single by storage control
Member deletes at least two key assignments in storage medium (such as back-end storage device).
S509, the storage control export operational status information.
In the specific implementation, storage control unit carries out at least two key assignments in storage medium (such as back-end storage device)
After deletion, operational status information is returned to server, to indicate that storage control executes the storage behaviour of at least two key assignments of deletion
The state of work.Specifically, after storage control unit executes at least two key assignments of deletion to storage medium, it is single that processing is stored to key assignments
Member returns to operational status information, then is sent to server by key assignments storage unit and foregoing units.
S510, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation for deleting at least two key assignments.
In the specific implementation, the NVMe command conversion module in server transmits operational status information to middleware.In finally,
Between part return operational status information to application layer, processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Fig. 7 (a) is please referred to, Fig. 7 (a) is a kind of process signal of another embodiment of storage method of the embodiment of the present invention
Figure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 7 (a).Fig. 7 (a) embodiment is for storage behaviour
Making the action type requested is that storing data (i.e. write operation) is specifically described.The storage class of storage operation requests is deposited for block
Storage.
As shown in Fig. 7 (a), a kind of another embodiment of storage method of the embodiment of the present invention be may comprise steps of.
S600, server obtain storage operation requests, generate sequence of store instructions according to the storage operation requests.
In the specific implementation, the storage operation requests of server read data packet, raw for the storage operation requests of data packet
At sequence of store instructions.Specifically, the traditional application module of application layer calls file system to write interface, is submitted by file system
The storage operation requests of write operation drive layer to NVMe, and NVMe drives layer to generate standard according to the storage operation requests of write operation
NVMe sequence of store instructions.
As a kind of enforceable mode, shown in the NVMe sequence of store instructions such as Fig. 7 (b) for generating standard, Fig. 7 (b) is
Another embodiment of the present invention provides NVMe sequence of store instructions schematic diagram.
S601, server determine that the action type, storage class mark and the storage of the storage operation requests refer to
Enable the memory address of sequence.
In the specific implementation, server generates the NVMe memory request queue of standard, the operation class of storage operation requests is determined
Type is write operation, determines storage class mark instruction block storage, and determine the memory address of the sequence of store instructions.
As a kind of enforceable mode, when storage class is identified as block storage, storage class is identified as default virtual value.
As a kind of enforceable mode, storage class mark is according to the storing data identified in memory request queue in institute
State the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacity
Determine that storage class identifies whether to preset virtual value.For example, requesting team in storage when the storage total capacity of storage medium is X
It is Y that the SLBA field of column, which fills out logical blocks initial address, and the quantity that NLB field fills out logical block is Z, as Y+Z < X, i.e. expression Y
With Z filling be virtual value, that is, the data operated be less than rear end storage medium capacity when, that is, be considered virtual value.
S602, server is according to the action type of the storage operation requests, storage class mark and described deposits
The memory address for storing up instruction sequence generates memory request queue, and the storage class of the storage operation requests is block storage.
In the specific implementation, NVMe drives layer to be identified according to action type, the storage class of the storage operation requests
And the memory address of the sequence of store instructions generates memory request queue, wherein the storage class for storing operation requests is
Block storage.
S603, server send the memory request queue to storage control, and the memory request queue is used to indicate
The storage control is operated according to the storage that the memory request queue executes storing data.
In the specific implementation, NVMe driving layer sends the memory request queue to storage control, so that storage control
Memory request queue executes the storage operation of storing data based on the received.
S604, storage control obtain memory request queue.
S605, the storage control obtain the memory of the sequence of store instructions according to the memory request queue
Location, the action type for storing operation requests and storage class mark.
S606, the storage control determine the storage class of the storage operation requests according to storage class mark
For block storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queue
It is default virtual value with NLB field, then is determined as block storage operation.
S607, the storage control obtain the store instruction sequence according to the memory address of the sequence of store instructions
Column.
S608, the storage control hold the sequence of store instructions according to the action type of the storage operation requests
The block of row storage data stores operation.
In the specific implementation, the analysis of NVMe command process unit sends write command, Key and Value in memory request queue
Address information, submit the storage operation requests of write operation to NVMe operation processing unit.NVMe operation processing cell translation is write
The storage operation requests of operation are the write operation requests of corresponding storage equipment, and submit the storage operation requests of write operation to storage
Control unit finally carries out block storage to storage medium (such as back-end storage device) by storage control unit.
S609, the storage control export operational status information.
In the specific implementation, operational status information is returned to server after storage control writes data to back-end storage device,
To indicate that storage control executes the state writing the storage of data and operating.Specifically, storage control unit carries out storage medium
After block storage, operational status information is returned to NVMe operation processing unit, then operation shape is submitted by NVMe operation processing unit
State information completes queue by NVMe command process unit write operation status information to NVMe to NVMe command process unit.Finally
NVMe completion queue is sent to the NVMe command conversion module in server by NVMe command process unit.
S610, server receive the operational status information that the storage control returns, and the operational status information is used for
Indicate that the storage control executes the state of the storage operation of the storing data.
In the specific implementation, NVMe command conversion module is completed to obtain in queue from NVMe submits operational status information, will obtain
The submission operational status information got is sent to block layer.Block layer submits operational status information to file system, file system submission
Operational status information is to traditional application layer module, and processing terminate.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Referring to Fig. 8, Fig. 8 is the structural schematic diagram of another embodiment of the server of the embodiment of the present invention.It is shown in Fig. 8
Server can be realized by server shown in Fig. 1 (a) and Fig. 1 (b), can also by specific integrated circuit (English:
Application-specific integrated circuit, abbreviation: ASIC) realize or programmable logic device (English:
Programmable logic device, abbreviation: PLD) it realizes.Above-mentioned PLD can be Complex Programmable Logic Devices (English:
Complex programmable logic device, abbreviation: CPLD), FPGA, Universal Array Logic (English: generic
Array logic, abbreviation: GAL) or any combination thereof.Server is for realizing Fig. 2 to storage method shown in Fig. 7.By soft
When part realizes storage method as shown in Figures 2 to 7, server may be software module.
Server may include obtaining module 800, determining module 801, generation module 802, sending module 803 and receiving mould
Block 804.When obtaining the work of module 800, step S200, Fig. 4 (a) shown in step S100, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S500 and Fig. 7 (a) shown in step S400, Fig. 6 (a) shown in shown step S300, Fig. 5 (a)
S600.When determining module 801 works, step S201, Fig. 4 (a) institute shown in step S101, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S501 and Fig. 7 (a) shown in step S401, Fig. 6 (a) shown in step S301, Fig. 5 (a) shown
S601.When generation module 802 works, step S202, Fig. 4 (a) institute shown in step S102, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S502 and Fig. 7 (a) shown in step S402, Fig. 6 (a) shown in step S302, Fig. 5 (a) shown
S602.When sending module 803 works, step S203, Fig. 4 (a) institute shown in step S103, Fig. 3 (a) shown in Fig. 2 (a) is executed
Step shown in step S503 and Fig. 7 (a) shown in step S403, Fig. 6 (a) shown in step S303, Fig. 5 (a) shown
S603.When receiving module 804 works, step S310, Fig. 5 (a) institute shown in step S210, Fig. 4 (a) shown in Fig. 3 (a) is executed
Step S610 shown in step S510 and Fig. 7 (a) shown in step S410, Fig. 6 (a) shown.
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
Referring to Fig. 9, Fig. 9 is the structural schematic diagram of another embodiment of the storage control of the embodiment of the present invention.Fig. 8 institute
The storage control shown can also pass through specific integrated circuit by Implementing Memory Controllers shown in Fig. 1 (a) and Fig. 1 (b)
(English: application-specific integrated circuit, abbreviation: ASIC) is realized or programmable logic device
(English: programmable logic device, abbreviation: PLD) is realized.Above-mentioned PLD can be Complex Programmable Logic Devices
(English: complex programmable logic device, abbreviation: CPLD), FPGA, Universal Array Logic (English:
Generic array logic, abbreviation: GAL) or any combination thereof.Storage control is deposited for realizing Fig. 2 to shown in Fig. 7
Method for storing.When by software realization storage method as shown in Figures 2 to 7, storage control may be software module.
Storage control may include obtaining module 900, execution module 901 and output module 902, obtain 900 work of module
When making, step shown in step S304-S305, Fig. 5 (a) shown in step S204-S205, Fig. 4 (a) shown in Fig. 3 (a) is executed
Step S604-S605 shown in step S504-S505 and Fig. 7 (a) shown in S404-S405, Fig. 6 (a).Execution module 901
When work, executes and walked shown in step S306-S308, Fig. 5 (a) shown in step S206-S208, Fig. 4 (a) shown in Fig. 3 (a)
Step S606-S608 shown in step S506-S508 and Fig. 7 (a) shown in rapid S406-S408, Fig. 6 (a).Output module
When 902 work, step S409 shown in step S309, Fig. 5 (a) shown in step S209, Fig. 4 (a) shown in execution Fig. 3 (a),
Step S609 shown in step S509 and Fig. 7 (a) shown in Fig. 6 (a).
Using the embodiment of the present invention, the memory request queue of key assignments storage is transmitted using the data segment that agreement is directed toward, is deposited
The storage action type of operation requests, the memory address of sequence of store instructions, storage class mark are contained in storage request queue,
The storage class that storage class mark is used to indicate storage operation requests is key assignments storage or block storage, so that storage control
Execute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path and
Time delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are same
When with key assignments storage and block storage characteristic.
The apparatus embodiments described above are merely exemplary, wherein described, unit can as illustrated by the separation member
It is physically separated with being or may not be, component shown as a unit may or may not be physics list
Member, it can it is in one place, or may be distributed over multiple network units.It can be selected according to the actual needs
In some or all of the modules achieve the purpose of the solution of this embodiment.Those of ordinary skill in the art are not paying creativeness
Labour in the case where, it can understand and implement.
The steps in the embodiment of the present invention can be sequentially adjusted, merged and deleted according to actual needs.
Module or unit in the device of that embodiment of the invention can be combined, divided and deleted according to actual needs.
The module or module of the embodiment of the present invention, can be with universal integrated circuit (such as central processor CPU), or with dedicated
Integrated circuit (ASIC) Lai Shixian.
Through the above description of the embodiments, those skilled in the art can be understood that each embodiment can
It realizes by means of software and necessary general hardware platform, naturally it is also possible to pass through hardware.Based on this understanding, on
Stating technical solution, substantially the part that contributes to existing technology can be embodied in the form of software products in other words, should
Computer software product may be stored in a computer readable storage medium, such as ROM/RAM, magnetic disk, CD, including several fingers
It enables and using so that a computer equipment (can be personal computer, server or the network equipment etc.) executes each implementation
Method described in certain parts of example or embodiment.
Embodiments described above does not constitute the restriction to the technical solution protection scope.It is any in above-mentioned implementation
Made modifications, equivalent substitutions and improvements etc., should be included in the protection model of the technical solution within the spirit and principle of mode
Within enclosing.