Description and claims of this specification and term " first ", " second ", " third " and " in above-mentioned attached drawingFour " etc. are not use to describe a particular order for distinguishing different objects.In addition, term " includes " and " having " and itAny deformation, it is intended that cover and non-exclusive include.Such as it contains the process, method of a series of steps or units, beSystem, product or equipment are not limited to listed step or unit, but optionally further comprising the step of not listing or listMember, 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 towardThe 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 EntryField and NLB field are invalid value, indicate that operation defined in current Submission Queue Entry is key assignments storage behaviourMake).When SLBA the and NLB field in storage control analysis Submission Queue Entry is invalid value, key value is depositedStore 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 andThe 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 TechnologyAttachment, Serial Advanced Technology Attachment), other internetwork connection modes such as ether.Instruction and data between host and controllerTransmission mode include but is not limited to DMA (Direct Memory Access, immediate data access), RDMA (RemoteDirect 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 equipmentsIt is controlled, realizes the function of server.Specifically, server is for obtaining storage operation requests, according to storage operation requestsSequence of store instructions is generated, and determines the action type of storage operation requests, storage class mark and sequence of store instructionsMemory address, further according to storage operation requests action type, storage class mark and sequence of store instructions memory addressMemory 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 schemesThe connection type of 7 servers and storage control shown in (a) referring to Fig.1 is implemented.Server includes memory, processingDevice, communication bus, bridge piece and communication interface.Memory stores program code, and processor calls the program stored in memoryCode, for executing Fig. 2 to storage method shown in Fig. 7, communication interface is for realizing between server and storage controlCommunication, 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 transmittedLayer 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 formatOne 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 equipmentInteraction.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 QueueSLBA (Starting LBA, logical blocks initial address) and NLB (Number of is arranged in the PRP or SGL of EntryLogical Blocks, the quantity of logical block) field is invalid value, and Submission Queue Entry is submitted to NVMeDriving 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 SpecificIntegrated Circuit, integrated circuit) etc., the read-write for completing to receive server by being programmed this chip is askedIt asks, and various access and control is carried out to the storage equipment under storage control in connection.Support the storage control of this modeOr storage system can provide block storage simultaneously and key assignments stores two ways.Storage control is the storage for supporting NVMe agreementController, controller are connected by PCIe bus with server.Specifically, storage control is used to obtain depositing for server transmissionRequest 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 requestsAnd storage class mark, identification storage class mark, and according to the memory address of sequence of store instructions, storage operation requestsAction 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 operationProcessing unit and storage control unit.
NVMe command process unit, for analyzing the storage class mark in the memory request queue that storage control receivesKnow, judges the validity of SLBA and NLB field, memory request queue is distributed to key assignments storage processing unit when invalid, effectivelyWhen 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 treatedUnit processed.
NVMe operation processing unit handles standard NVMe agreement operation requests, i.e. block storage operation, and will treated shapeState 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 operationAs 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 orOther memory devices.
Optionally, as shown in Fig. 1 (b), the connection type of server and storage control can be also SAS, server and depositThe 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 functionIt 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 controlControl 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 assignmentsThe 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 analyzedIt 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 commandScsi 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 fieldFilling 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 inventionFigure.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 packetAt 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 oneA 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 toEnable the memory address of sequence.
In the specific implementation, storage operation requests action type be used to indicate storing data, read data, delete data withAnd any action type in discarding data, it can specifically be indicated with operation code, to indicate the action type of storage operation.Such asShown 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 orThe 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 instructionsMemory 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 depositsThe 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, depositingSLBA the and NLB field of storage request queue fills out storage class mark, can fill out in the Data Pointer field of memory request queueThe 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 assignmentsChu 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 classThe number of position and the storage that mark needs to store according to the storing data identified in memory request queue in the storageAccording to length and whether be greater than the storage control capacity determine that storage class identifies whether as prepending non-significant value.ExampleSuch 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 operatedWhen 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 wordMemory 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 providesThe 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) generatedMemory 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 3 (a).Fig. 3 (a) embodiment is for storage behaviourMaking the action type requested is that storing data (i.e. write operation) is specifically described.The storage class for storing operation requests is key assignmentsStorage.
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 packetAt sequence of store instructions.Specifically, the application module of application layer calls middleware to write interface: its code is Put (StringKey, String Value), the address for submitting the storage operation requests of write operation, Key and Value data to store by middleware toNVMe 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 requestsType 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 toEnable 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 conversionBlock, and determine that the action type of storage operation requests is storing data (i.e. write operation), determine the storage class of storage operation requestsType is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storageOperation 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 askedAsk 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 queueWrite 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 instructionsColumn.
In the specific implementation, key assignments storage processing unit handles Key and Value information, the storage operation for converting write operation is askedIt 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 requestsThe 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 depositsAfter storing up equipment, operational status information is returned to key assignments storage processing unit, then sent by key assignments storage unit and foregoing unitsTo server.
S210, server receive the operational status information that the storage control returns, and the operational status information is used forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 4 (a).Fig. 4 (a) embodiment is for storage behaviourMake the action type requested and is specifically described to read data (i.e. read operation).The storage class for storing operation requests is key assignmentsStorage.Reading data may include obtaining Key to correspond to Value length, or obtain Value information, and the present embodiment is for acquisition KeyCorresponding 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 describedKey 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 packetAt sequence of store instructions.Specifically, the application module of application layer calls middleware read operation interface: its code is Get (StringKey).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 readingLength 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 middlewareDriving 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 longThe 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 toThe 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 modeThe 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 storageThe 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 toEnable 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 conversionBlock, 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 requestsType is key assignments storage, generates corresponding storage class according to the storage class of storage operation requests and identifies, is used to indicate the storageOperation 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe read command operation code 02h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 askedAsk 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S308, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 askedThe 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 assignmentsProcessing unit.Key assignments storage processing unit obtains corresponding Value from storage medium (such as back-end storage device) according to Key informationLength 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 informationReading instruction, Value memory address information, submit read Value information operation storage operation requests to key assignments storage processingUnit.Key assignments storage processing unit submits the storage operation requests for reading the operation of Value information to storage control unit, is controlled by storageUnit processed executes data reading operation.Storage control unit reads Value information and distributes to the memory that Value is stored to serverLocation.
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 storeController 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 KeyMember 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 informationThe operational status information of Value information is read to key assignments storage processing unit, key assignments storage processing unit, which is submitted, reads Value informationFor operational status information to NVMe command process unit, NVMe command process unit can will read the operational status information of Value informationIt 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 forIndicate 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 serverTransmitting carries the operational status information of Value length to middleware.Finally, middleware is according to Value length allocation Value dataIn 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.MostNVMe drives layer to submit the operational status information of reading Value information to middleware afterwards.Middleware reads Value information for receivedOperational 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 5 (a).Fig. 5 (a) embodiment is for storage behaviourMake the action type requested and is specifically described to delete data or discarding data.The storage class for storing operation requests is key assignmentsStorage.
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 packetAt sequence of store instructions.Specifically, the application module of application layer call middleware deletion or discarded interface: its code isPerhaps 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 storageIt 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 usesIn 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 toEnable 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 conversionBlock, and determine that the action type of storage operation requests is deletion or discarding data, determine that the storage class of storage operation requests isKey assignments storage generates corresponding storage class according to the storage class of storage operation requests and identifies, and is used to indicate storage operationRequest 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 depositsThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 generatedMemory 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
In the specific implementation, the analysis of NVMe command process unit sends deletion or discard instruction, Key in memory request queueAddress 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 requestsRow 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 operationRequest for corresponding storage equipment deletion or abandonment operations, and submit delete or abandonment operations storage operation requests to depositingStore 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 operationsAfterwards, 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 unitMake 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 6 (a).The storage of at least two key assignments operatesAlternatively 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 depositThe 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 operationThe 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 correspondingIt 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 assignmentsData 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 tableIt 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 latterA entry;Each entry indicates the address information of a Key or Value, each entry is by SGL KeyTri- 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 SGLNumber;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 useMemory 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 useDegree.
S6, the needs of operation requests are stored according to key assignments, and Key Data CRC Value field fills out what Key data usedThe 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 useThe 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 useLength.
S9, the needs of operation requests are stored according to key assignments, and Value Data CRC Value field fills out the use of Value dataSGL 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, generateSequence 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 packetAt 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 assignmentsStorage 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 (notDiagram) 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 requestsAction 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 twoThe 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 conversionBlock, 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 requestsFor 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 behaviourMake 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 extremelyThe 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 queueDWORD0 field fills out the action type (i.e. NVMe write order operation code 01h) of storage operation requests, in memory request queueSLBA 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 queueFill 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 generatedShown 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine 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 XIt 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 YWith 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 indicateThe 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 controlMemory 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 queueLocation, 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 markFor key assignments storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S508, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 queueIt 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 assignmentsStorage processing unit handles the Key that SGL is stored again one by one, converts converging operation as in the corresponding storage equipment of each KeyThe storage operation requests of at least two key assignments of deletion of data submit request to arrive storage control unit, finally single by storage controlMember 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 deletionThe 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 assignmentsMember 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 forIndicate 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 inventionFigure.Server and storage control shown in FIG. 1 execute storage method shown in Fig. 7 (a).Fig. 7 (a) embodiment is for storage behaviourMaking 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 blockStorage.
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 packetAt sequence of store instructions.Specifically, the traditional application module of application layer calls file system to write interface, is submitted by file systemThe 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 operationNVMe 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) isAnother 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 toEnable 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 determinedType 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 instituteState the length of the data of the position that needs to store and the storage in storage and whether greater than the storage control capacityDetermine that storage class identifies whether to preset virtual value.For example, requesting team in storage when the storage total capacity of storage medium is XIt 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 YWith 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 depositsThe 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 requestsAnd the memory address of the sequence of store instructions generates memory request queue, wherein the storage class for storing operation requests isBlock storage.
S603, server send the memory request queue to storage control, and the memory request queue is used to indicateThe 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 controlMemory 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 queueLocation, 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 markFor block storage.
In the specific implementation, the NVMe command process unit in storage control analyzes the SLBA field in memory request queueIt 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 instructionsColumn.
S608, the storage control hold the sequence of store instructions according to the action type of the storage operation requestsThe 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 queueAddress information, submit the storage operation requests of write operation to NVMe operation processing unit.NVMe operation processing cell translation is writeThe storage operation requests of operation are the write operation requests of corresponding storage equipment, and submit the storage operation requests of write operation to storageControl 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 mediumAfter block storage, operational status information is returned to NVMe operation processing unit, then operation shape is submitted by NVMe operation processing unitState information completes queue by NVMe command process unit write operation status information to NVMe to NVMe command process unit.FinallyNVMe 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 forIndicate 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 obtainThe submission operational status information got is sent to block layer.Block layer submits operational status information to file system, file system submissionOperational 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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. 8Server 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: genericArray logic, abbreviation: GAL) or any combination thereof.Server is for realizing Fig. 2 to storage method shown in Fig. 7.By softWhen 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 mouldBlock 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 executedStep 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 executedStep shown in step S501 and Fig. 7 (a) shown in step S401, Fig. 6 (a) shown in step S301, Fig. 5 (a) shownS601.When generation module 802 works, step S202, Fig. 4 (a) institute shown in step S102, Fig. 3 (a) shown in Fig. 2 (a) is executedStep shown in step S502 and Fig. 7 (a) shown in step S402, Fig. 6 (a) shown in step S302, Fig. 5 (a) shownS602.When sending module 803 works, step S203, Fig. 4 (a) institute shown in step S103, Fig. 3 (a) shown in Fig. 2 (a) is executedStep shown in step S503 and Fig. 7 (a) shown in step S403, Fig. 6 (a) shown in step S303, Fig. 5 (a) shownS603.When receiving module 804 works, step S310, Fig. 5 (a) institute shown in step S210, Fig. 4 (a) shown in Fig. 3 (a) is executedStep 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 instituteThe 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. 7Method 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 moduleWhen making, step shown in step S304-S305, Fig. 5 (a) shown in step S204-S205, Fig. 4 (a) shown in Fig. 3 (a) is executedStep S604-S605 shown in step S504-S505 and Fig. 7 (a) shown in S404-S405, Fig. 6 (a).Execution module 901When 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 moduleWhen 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 depositedThe 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 controlExecute corresponding storage operation according to memory request queue, reduce the conversion between multilayered memory protocol stack, shorten I/O path andTime delay improves key assignments storage efficiency.In addition, by standard storage agreement, so that storage control system or storage control are sameWhen 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 memberIt is physically separated with being or may not be, component shown as a unit may or may not be physics listMember, it can it is in one place, or may be distributed over multiple network units.It can be selected according to the actual needsIn 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 creativenessLabour 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 dedicatedIntegrated circuit (ASIC) Lai Shixian.
Through the above description of the embodiments, those skilled in the art can be understood that each embodiment canIt realizes by means of software and necessary general hardware platform, naturally it is also possible to pass through hardware.Based on this understanding, onStating technical solution, substantially the part that contributes to existing technology can be embodied in the form of software products in other words, shouldComputer software product may be stored in a computer readable storage medium, such as ROM/RAM, magnetic disk, CD, including several fingersIt enables and using so that a computer equipment (can be personal computer, server or the network equipment etc.) executes each implementationMethod 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 implementationMade modifications, equivalent substitutions and improvements etc., should be included in the protection model of the technical solution within the spirit and principle of modeWithin enclosing.