CN114691049A - I/O control method of storage device - Google Patents

I/O control method of storage device Download PDF

Info

Publication number
CN114691049A
CN114691049A CN202210468267.8A CN202210468267A CN114691049A CN 114691049 A CN114691049 A CN 114691049A CN 202210468267 A CN202210468267 A CN 202210468267A CN 114691049 A CN114691049 A CN 114691049A
Authority
CN
China
Prior art keywords
command
host
cache
response
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210468267.8A
Other languages
Chinese (zh)
Other versions
CN114691049B (en
Inventor
张辅云
刁永翔
李兵
赵业
宫晓渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Zhongxing Microsystem Technology Co ltd
Original Assignee
Wuxi Zhongxing Microsystem Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Zhongxing Microsystem Technology Co ltd filed Critical Wuxi Zhongxing Microsystem Technology Co ltd
Priority to CN202210468267.8A priority Critical patent/CN114691049B/en
Publication of CN114691049A publication Critical patent/CN114691049A/en
Application granted granted Critical
Publication of CN114691049B publication Critical patent/CN114691049B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention provides an I/O control method of a storage device, which comprises the following steps: packaging an I/O command request from a host by using a host driver of the host, and transmitting the packaged I/O command request to an I/O controller, wherein the I/O command request is used for performing I/O access on a target storage device; converting the I/O command request into an access command which can be identified by the target storage equipment in the I/O controller according to the type of the target storage equipment, and dispatching the converted access command to a command cache corresponding to the target storage equipment; receiving a device response generated by the target storage device executing the command, and sending the device response to a response cache of the I/O controller; and generating a host response according to the device response, and responding the host response back to the host through a response cache, wherein the host response corresponds to the type of the target storage device. The scheme of the invention transfers the processing capacity requirement on the host to the I/O controller, improves the interaction efficiency of the host and the storage equipment and reduces the interaction delay.

Description

I/O control method of storage device
Technical Field
The invention belongs to the technical field of I/O controllers, and particularly relates to an I/O control method of a storage device.
Background
In a storage system, an I/O controller serves as I/O management and expansion between a host and a storage device for providing interactive support between the host and the storage device. The I/O controller can effectively reduce the access delay of the host computer and improve the access bandwidth, and meanwhile, the access efficiency of the host computer to the storage device is improved. The I/O controller can also carry out large-scale expansion of different numbers and different types of storage devices, even support multi-level expansion, so that the number and the types of the storage devices can be expanded to a considerable scale, and the I/O controller has very important significance in the field of modern storage.
The traditional I/O controller receives and responds to the control, management or read-write requirements of the host on the storage device through a set host interface, converts the requirements into the requirements which can be identified and received by the corresponding device, transmits the requirements to the storage device through an interface between the I/O controller and the storage device, and finally transmits the execution result of the storage device back to the host through the host interface. Taking the I/O controller connection structure shown in fig. 1 as an example, the I/O controller C3 receives a host access request to a device through an interface C2 with the host C0, routes the host access request to a specified storage device C5.0, C5.1, … …, C5.n through an interface C4.0, C4.1, … …, C4.n with the storage device, and finally returns an access result to the host. The types of storage devices to which the I/O controllers are coupled may vary or may be identical.
However, when the storage device is expanded in multiple stages, the operation modes of the storage devices themselves are different, and thus the mixed support of the I/O controller for the devices is very difficult. If the device difference is shielded in the host drive layer, the host drive layer also becomes inefficient, and the I/O controller loses meaning; however, if the device differences are resolved within the I/O controller, a unified solution cannot be formed, and the I/O controller can only ultimately support one type of storage device expansion due to implementation complexity. On the other hand, the interaction between the host and the I/O controller is inefficient due to the adaptation of the host driver of the I/O controller to the host and the processing of host commands.
Disclosure of Invention
The invention aims to provide an I/O control method of a storage device, aiming at realizing the aim of reducing the host overhead through an I/O controller.
The I/O control method of the storage device provided by the invention comprises the following steps:
packaging an I/O command request from a host by using a host driver of the host, and transmitting the packaged I/O command request to an I/O controller, wherein the I/O command request is used for performing I/O access on a target storage device;
converting the I/O command request into an access command which can be identified by the target storage equipment in the I/O controller according to the type of the target storage equipment, and dispatching the converted access command to a command cache corresponding to the target storage equipment;
receiving a device response generated by the target storage device executing the access command, and sending the device response to a response cache of the I/O controller;
and generating a host response according to the equipment response, and responding the host response back to the host through the response cache, wherein the host response corresponds to the type of the target storage equipment.
Preferably, before the packaging the I/O command request from the host by using the host driver of the host, the method further includes:
the host is preset with a data cache and a command cache, the host driver receives an I/O command request from the host by using the command cache, and the data cache is used for caching I/O access data of the host corresponding to the I/O command request.
Preferably, the data cache and command cache are allocated by a virtual file system of the host.
Preferably, the replying the host reply back to the host through the reply cache further comprises:
and transmitting the generated host response from the response cache of the I/O controller to a host response cache in the host, so that the host driver acquires the command completion state of the I/O command request from the response result in the host response cache.
Preferably, after the transmitting the packed I/O command request to the I/O controller, the method further includes:
judging whether the I/O command request is a RAID related command in the I/O controller, if so, then:
generating a corresponding RAID command under a RAID related command, and sending the RAID command to a RAID command cache of the I/O controller;
and finishing the RAID related calculation by executing the specified RAID command in the RAID command cache.
Preferably, the I/O controller includes a RAID accelerator, the RAID command cache is disposed in the RAID accelerator, and the RAID accelerator further includes a DMA configured to implement data migration in RAID-related computation.
Preferably, the converting the I/O command request into an access command recognizable by the target storage device in the I/O controller further comprises:
and acquiring the device information of the target storage device and related command conversion inquiry information by inquiring a device information table, and converting the I/O command request of the host into an access command which can be recognized by the target storage device by utilizing a command processor.
Preferably, after the dispatching the converted access command to the command cache corresponding to the target storage device, the method further comprises:
and moving the access command which can be recognized by the converted storage equipment to a corresponding equipment command cache by using DMA (direct memory access), and dispatching the command in the equipment command cache to the target storage equipment through a storage equipment interface by using a storage equipment drive of the I/O controller.
Preferably, after replying the host reply back to the host through the reply cache, the method further comprises:
and releasing the corresponding command cache and the data cache by using the host.
Preferably, the type of the target storage device comprises NVMe, SAS, or SATA.
Compared with the prior art, the I/O control method of the storage device, provided by the invention, has the advantages that the host drive is utilized to provide the interactive mode of the host and the storage device, the I/O controller provides the commands adapting to different devices after conversion aiming at different devices, the response results after the devices are completed are automatically analyzed and returned, and the processing capacity requirement on the host is transferred to the I/O controller to the maximum extent, so that the interactive efficiency of the host and the storage device is improved, the interactive delay is reduced, the storage device can be directly executed according to the distributed commands, and the execution efficiency and the response speed are improved.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 shows a schematic diagram of the connection structure of an I/O controller with a host and a storage device according to the prior art.
FIG. 2 is a schematic diagram of the internal structure of a host and an I/O controller according to the present invention.
FIG. 3 is a complete flow diagram of an I/O control method implemented by a host, an I/O controller, and a storage device in accordance with the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The invention provides an I/O control method of storage equipment for reducing host computer overhead to the utmost extent, packing host computer I/O command request by host computer driver at host computer end, transmitting the packed request information to I/O controller through appointed interface, the I/O controller actively obtaining command information from host computer through request information, converting the command information into access command which can be identified by corresponding down-link storage equipment according to the unified format defined by host computer driver, and dispatching the access command to the command buffer memory of corresponding storage equipment, the corresponding down-link storage equipment obtaining and executing the I/O command matched with itself, converging in the response buffer memory in I/O controller, after converging and converting, answering back to host computer according to the unified format defined by host computer driver, thereby completing the interaction process between the host and the device. Therefore, the host cost can be actively reduced by using the I/O controller, the host drive can be used for directly obtaining the I/O command through the virtual file system, and the process of converting the virtual file system command of the host into the device command of other I/O controllers is omitted, so that the host software cost is reduced, the performance is improved, and the access delay is reduced.
The method comprises the steps of utilizing a host driver positioned at a host end to provide an interactive mode of the host and the storage equipment, improving the access efficiency of the host to the storage equipment, simultaneously providing converted I/O commands adaptive to different equipment by an I/O controller in a set working mode aiming at different storage equipment so as to improve the interactive efficiency of the equipment and the speed of command processing, automatically analyzing response results of the equipment, and then returning the response results to the host in a specified mode.
Specifically, the implementation structure of the host and the I/O controller is shown in fig. 2. The I/O controller 8 is connected to the host through an upper connection port 7, which essentially only provides a physical path and does not provide an operation mode and an interaction mode between the host and the I/O controller, the lower connection storage device 0, the storage device 1, …, and the storage device n (15.0, 15.1, …, 15.n) are respectively connected to the I/O controller 8 through corresponding physical interfaces 14.0, 14.1, …, 14.n, and the operation mode and the interaction mode between the lower connection storage device and the I/O controller 8 are determined by storage device types, which may include NVMe, SAS, SATA, or the like types.
The host shown in fig. 2 includes APP 1, Virtual File System (VFS)2, data cache 3, command cache 4, host driver 5, and response cache 6.
The APP 1 is an application program running on the host, and the application program is generally a request for issuing an access request of a storage device, for example, an access request of a certain storage device is issued according to a user action.
The virtual file system 2 is a virtual file system provided by a host operating system, and the virtual file system provides an application program medium-independent access mode.
The data cache 3 is used for caching I/O access data of a host side, the access of the host to the storage device occurs at the host side in a cache manner, and the data cache can be dynamically updated to the storage device side or the data needs to be dynamically acquired from the storage device side and stored in the data cache according to a management strategy provided by the virtual file system.
The command cache 4 provides instructions on how the data cache is operated and controlled or how the device is operated and controlled, and is also essentially a data cache, but in which the data is command data of particular significance.
The host driver 5 is a driving layer of the host end to the I/O controller, is used for cooperating with the I/O controller to work, and has the main functions of packaging host I/O commands according to a uniform format defined by the host driver, transmitting command information to a request cache of the I/O controller, and processing response information sent back to a host response cache by the I/O controller. In an actual implementation, the host driver may package the host I/O command in a custom manner, or may package the host I/O command in an existing device command manner, so as to support the I/O controller to be used as different types of devices, for example, an SCSI device, an NVMe device, and the like.
The response buffer 6 is a buffer provided in the I/O controller 8 for receiving a response to be responded to the host, and the host driver may obtain a corresponding command completion status according to a response result in the response buffer.
The upper connection port 7 between the host and the I/O controller 8 may be any conventional type of interface, including PCIe.
The I/O controller 8 comprises a request cache 9, a command dispatcher 10, a device command cache 11.0, 11.1, …, 11.n, a lower storage device driver 12.0, 12.1, …, 12.n, a lower storage device interface adaptation layer 13.0, 13.1, …, 13.n, a lower storage device physical interface 14.0, 14.1, …, 14.n, a lower storage device 15.0, 15.1, …, 15.n, a response cache 16, a response accelerator 17, a data cache 18 and a RAID accelerator 19. In a preferred embodiment, the I/O controller may be implemented in the form of an HBA card, a RAID card, an I/O control card, or the like.
The request cache 9 is configured to cache requests issued by the host driver to the I/O controller, where each request in the request cache describes and defines a position, a length, a characteristic, and the like of a corresponding host I/O command in a command cache of the host.
The command dispatcher 10 is configured to, after obtaining the I/O command of the host side through the request cache 9, process the host command into a corresponding storage device access command according to device information corresponding to the command, and issue the storage device access command to a corresponding device command cache 11.0, 11.1, …, 11.n, where the command dispatcher 10 further includes the following components:
the DMA 10.0 is used for moving the commands in the command cache 4 of the host, when a new request is put into the request cache 9, the DMA 10.0 starts to move the corresponding commands in the command cache 4 of the host to the corresponding device command caches 11.0, 11.1, … and 11.n, and the host commands need to be converted into device commands which can be identified by the storage devices 15.0, 15.1, … and 15.n according to the corresponding device information in the moving process;
the device information table 10.1 is used for providing device information of a corresponding downlink port and possible command conversion query information;
a command handler 10.2 for providing conversion of host commands into device recognizable access commands.
The device command caches 11.0, 11.1, …, 11.n are used for distributing device commands to corresponding devices 15.0, 15.1, …, 15.n after device dispatching and device type conversion in the host command moving process.
The response cache 16 is used for receiving the response returned by the storage devices 15.0, 15.1, …, 15. n. The format of the response may be different and the return of the response may be different due to different device types. The response cache 16 supports both the type of response actively returned by the device and the type of response actively acquired by the I/O controller for the device completion.
The response accelerator 17 is configured to automatically process response results returned by the storage devices 15.0, 15.1, …, 15.n, start processing as soon as the response cache has a new response return, and reply the access processing results back to the host according to a predefined specified format with the host driver, and the response accelerator 17 further includes the following components:
the response processor 17.0 is used for converting the response returned by the equipment into a specified response format predefined between the host drivers after the response is processed according to different equipment types;
a device information table 17.1, similar to the device information table 10.1, for providing device information of the corresponding downstream port and possibly command conversion query information;
and DMA 17.2 for automatically pushing the response result back to the response cache 6 designated by the host.
The data cache 18 corresponds to the data cache 3 at the host end and mainly includes two purposes. First, the I/O controller 8 may further choose to actively move host data into the I/O controller and cache it in the data cache 18, which facilitates the devices 15.0, 15.1, …, 15.n to get directly from the I/O controller 8; second, if another accelerator, such as the RAID accelerator 19 described below, is added to the I/O controller 8, the results of the accelerator's processing may be cached in the data cache 18 to facilitate interaction with the devices 15.0, 15.1, …, 15. n.
The RAID accelerator 19 is an optional component for further providing RAID acceleration support for the I/O controller 8, the RAID accelerator 19 further comprising:
a RAID command cache 19.0, configured to provide a command cache required by the RAID accelerator for work, when the I/O controller 8 further includes a RAID function, the command dispatcher 10 further needs to generate a corresponding RAID command in the command issuing process, and caches the generated command in the RAID command cache 19.0;
DMA 19.1, is used for providing the data migration function while RAID accelerator works;
and a calculation engine 19.2 for providing RAID calculation support.
It should be noted that the RAID accelerator in the present invention is only one implementation example and is not limited to RAID acceleration itself. In particular embodiments, other types of acceleration support may also be provided. For example, the I/O controller 8 may include a cryptographic accelerator or other implementation.
The host may access and extend multiple downstream storage devices 15.0, 15.1, …, 15.n through the I/O controller and may support multiple types of downstream storage devices. The I/O controllers and the downstream storage devices are connected through the physical interfaces 14.0, 14.1, …, 14.n of the downstream storage devices, and the interfaces between each device and the I/O controllers can be the same or different.
Based on the internal structures of the host and the I/O controller, the invention utilizes the host drive submitted by the I/O controller, and unloads the interaction overhead and the data transfer cost of the host and the storage equipment to the maximum extent through the host drive, and simultaneously, the I/O controller actively transfers the host command into the I/O controller through a given interface, analyzes and converts the host command into the command types which can be supported by different downlink storage equipment, thereby achieving the purpose of controlling the downlink storage equipment. The host machine completes access control and data access to the downlink storage equipment by means of the I/O controller, so that access support of a plurality of devices and different types of devices is achieved, and after the downlink storage equipment executes corresponding commands, the response is pushed to the host machine according to a host machine drive self-defined uniform format by processing response results completed by the devices. And after receiving the response, the host releases the corresponding command cache, response cache and data cache. With the same mechanism and implementation, the I/O controller may be further extended to implement support for other functions, such as RAID acceleration functions.
Referring to the flowchart of the I/O control method of fig. 3, which includes the overall flow of three-party cooperative operations of the host, the I/O controller and the storage device, and the respective work flows under independent view, the following detailed steps of the I/O control method of the present invention are described as follows:
step S1: the host end starts working;
step S2: the host side specifies the data cache and command cache space that needs to interact with the downstream storage device. In a preferred embodiment, the data cache and command cache are allocated by a virtual file system of the host;
step S3: the host checks whether there is a new I/O command, and when there is a new command, for example, when the host application layer APP initiates a new device access request, step S4 is executed, otherwise, step S19 is executed to check whether there is a new response from the I/O controller;
step S4: a host driver at a host end packs the current command and then sends a corresponding I/O command request to an I/O controller; executing the step S5, and triggering the I/O controller to execute the step S6;
step S5: the host judges whether the next I/O command to be processed exists, if so, the host returns to execute the step S3, otherwise, the host executes the step S19 to check whether a new response from the I/O controller exists;
step S6: the I/O controller starts working;
step S7: the I/O controller determines whether a new host I/O request is received, and if there is a new host request, i.e., there is a command packed to be sent to the I/O controller in step S4, performs step S8, otherwise, performs step S14 to check whether there is a new device response;
step S8: the I/O controller acquires a corresponding host I/O command from a command cache of the host based on the request information;
step S9: the I/O controller judges whether the acquired host I/O command is a RAID related command, and if the acquired host I/O command is the RAID related command, the step S9.1 is executed; otherwise, go to step S10;
step S9.1: generating a corresponding RAID command under the related RAID command, and sending the corresponding RAID command to an RAID command cache;
step S9.2: completing RAID-related calculation by executing the specified RAID command in the RAID command cache, and then executing step S10;
step S10: the I/O controller converts the host I/O command into an access command which can be identified by the storage equipment according to the type of the equipment and sends the access command to an equipment command cache corresponding to the equipment;
step S11: the device driver of the I/O controller issues the I/O command in the device command cache to the storage device through the device interface; executing the step S12, and triggering the storage device to execute the step S13;
step S12: the I/O controller determines whether there is a next I/O request, and if so, returns to perform step S7, otherwise, performs step S14 to check whether there is a new response;
step S13: the storage device side executes the device I/O command issued in the step S11, and replies the read-write access result to a response cache in the I/O controller; and triggers the I/O controller to perform step S14;
step S14: the I/O controller checks whether there is a new response from the storage device, and if there is a new response, performs step S15, otherwise returns to perform step S7;
step S15: the I/O controller analyzes the response result of the storage equipment according to the type of the storage equipment and generates a new host response according to a host drive self-defined uniform format;
step S16: the I/O controller replies the generated host response to the host according to the position appointed by the host response cache; executing step S17, and triggering the host end to execute step S19;
step S17: the I/O controller checks whether there is a next response, and if so, returns to perform step S14, otherwise, performs step S18;
step S18: if the I/O controller finishes processing all the responses, the working process of the I/O controller is finished;
step S19: the host driver at the host side checks whether there is a new response, and if so, for example, the I/O controller transmits the new host response to the host response cache in step S16, then step S20 is performed; otherwise, returning to execute the step S3;
step S20: after the host driver processes the response, reporting the response to a host application layer;
step S21: for the processed response, the host releases the corresponding command cache and response cache, and determines whether to release the corresponding data cache according to the situation;
step S22: the host checks whether the next response exists, if so, returns to execute the step S19, otherwise, executes the step S23;
step S23: if all responses are processed, the host terminates the interaction with the storage device; the method is completed.
It can be seen from the above embodiments that, in the I/O control method for the storage device according to the present invention, the I/O controller and the host perform communication and interaction based on a request and response mechanism, so that software and performance overhead when the host participates in device interaction is reduced to the maximum extent, and the processing capability requirement on the host is transferred to the I/O controller to the maximum extent, thereby improving the interaction efficiency of the host and the device and reducing interaction delay; after the I/O controller acquires the command of the host through the request of the host, the command is converted and recombined again according to the type of the equipment or an acceleration function (such as RAID) provided by the I/O controller, so that the equipment or an acceleration module can be executed efficiently and quickly according to the distributed command, and the execution efficiency and the response speed are improved; after the command is issued to the equipment and executed by the equipment, the equipment response is analyzed and processed, and then returned according to the response mode defined by the host driver. The whole process realizes the running and concurrent processing, can greatly improve the interaction efficiency and the bandwidth of the host and the equipment, and reduces the transmission delay to the maximum extent. The method can be extended to any system with a master-slave architecture, comprises I/O management between a host and a downlink device in a remote or short-range interaction mode, can adapt and extend various interfaces and device types, and has universal applicability.
For convenience of description, the host command and device response processing in the above flow of the present invention is represented by polling, single thread, and the commands and responses are in one-to-one correspondence, but those skilled in the art will understand that in practical scenarios, the command and response processing mechanism may be based on an interrupt or multi-thread mode, or may be performed in a scheduler manner; in addition to the single pairing process, a batch pairing process, or a real-time response process may be possible.
The flowcharts and the structure diagrams shown in the drawings are only for illustrating the technical aspects of the present invention and are not limited thereto. It will be appreciated by those skilled in the art that various conceivable modifications may be made to the structure of the I/O controller, to the details of the method flow, etc., as may be desired in the practice of the invention, and that the invention is not limited to the specific steps, structures, or parameters illustrated above.
Although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (10)

1. An I/O control method of a storage device, comprising:
packaging an I/O command request from a host by using a host driver of the host, and transmitting the packaged I/O command request to an I/O controller, wherein the I/O command request is used for performing I/O access on a target storage device;
converting the I/O command request into an access command which can be identified by the target storage equipment in the I/O controller according to the type of the target storage equipment, and dispatching the converted access command to a command cache corresponding to the target storage equipment;
receiving a device response generated by the target storage device executing the access command, and sending the device response to a response cache of the I/O controller;
and generating a host response according to the equipment response, and responding the host response back to the host through the response cache, wherein the host response corresponds to the type of the target storage equipment.
2. The I/O control method of a storage device according to claim 1, further comprising, before the packaging the I/O command request from the host using the host driver of the host:
the host is preset with a data cache and a command cache, the host driver receives an I/O command request from the host by using the command cache, and the data cache is used for caching I/O access data of the host corresponding to the I/O command request.
3. The I/O control method of a storage device according to claim 2, wherein the data cache and the command cache are allocated by a virtual file system of the host.
4. The I/O control method of a storage device according to claim 1, wherein the replying the host reply back to the host through the reply cache further comprises:
and transmitting the generated host response from the response cache of the I/O controller to a host response cache in the host, so that the host driver acquires the command completion state of the I/O command request from the response result in the host response cache.
5. The I/O control method of a storage device according to claim 1, wherein after the passing the packed I/O command request to an I/O controller, further comprising:
judging whether the I/O command request is a RAID related command in the I/O controller, if so, then:
generating a corresponding RAID command under the RAID related command, and sending the RAID command to a RAID command cache of the I/O controller;
and finishing RAID related calculation by executing the specified RAID command in the RAID command cache.
6. The I/O control method of a storage device according to claim 5, wherein the I/O controller comprises a RAID accelerator, the RAID command cache is disposed in the RAID accelerator, and the RAID accelerator further comprises a DMA for implementing data migration in RAID-related calculations.
7. The I/O control method of a storage device according to claim 1, wherein said converting the I/O command request to an access command recognizable by the target storage device in the I/O controller further comprises:
and acquiring the device information of the target storage device and related command conversion inquiry information by inquiring a device information table, and converting the I/O command request of the host into an access command which can be recognized by the target storage device by utilizing a command processor.
8. The I/O control method of a storage device according to claim 7, further comprising, after said dispatching the converted access command into a command cache corresponding to the target storage device:
and moving the access command which can be recognized by the converted storage equipment to a corresponding equipment command cache by using DMA (direct memory access), and dispatching the command in the equipment command cache to the target storage equipment through a storage equipment interface by using a storage equipment drive of the I/O controller.
9. The I/O control method of a storage device according to claim 1, further comprising, after replying the host reply back to the host through the reply cache:
and releasing the corresponding command cache and the data cache by using the host.
10. The I/O control method of a storage device according to claim 1, wherein the type of the target storage device comprises NVMe, SAS, or SATA.
CN202210468267.8A 2022-04-29 2022-04-29 I/O control method of storage device Active CN114691049B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210468267.8A CN114691049B (en) 2022-04-29 2022-04-29 I/O control method of storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210468267.8A CN114691049B (en) 2022-04-29 2022-04-29 I/O control method of storage device

Publications (2)

Publication Number Publication Date
CN114691049A true CN114691049A (en) 2022-07-01
CN114691049B CN114691049B (en) 2023-03-17

Family

ID=82143993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210468267.8A Active CN114691049B (en) 2022-04-29 2022-04-29 I/O control method of storage device

Country Status (1)

Country Link
CN (1) CN114691049B (en)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397267B1 (en) * 1999-03-04 2002-05-28 Sun Microsystems, Inc. Redirected I/O for scalable performance storage architecture
US20080270701A1 (en) * 2003-04-25 2008-10-30 Kazuhisa Fujimoto Cluster-type storage system and managing method of the cluster-type storage system
US20080282030A1 (en) * 2007-05-10 2008-11-13 Dot Hill Systems Corporation Dynamic input/output optimization within a storage controller
CN104160407A (en) * 2012-02-29 2014-11-19 苹果公司 Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US20150286438A1 (en) * 2014-04-03 2015-10-08 Lsi Corporation System, Method and Computer-Readable Medium for Dynamically Configuring an Operational Mode in a Storage Controller
US20160034185A1 (en) * 2014-07-30 2016-02-04 Lsi Corporation Host-based device driver splitting of input/out for redundant array of independent disks systems
US20160299703A1 (en) * 2015-04-07 2016-10-13 Avago Technologies General Ip (Singapore) Pte. Ltd. I/o performance in raid storage systems that have inconsistent data
US20180095911A1 (en) * 2016-10-03 2018-04-05 Samsung Electronics Co., Ltd. Non-volatile storage system and data storage access protocol for non-volatile storage devices
US20180341429A1 (en) * 2017-05-25 2018-11-29 Western Digital Technologies, Inc. Non-Volatile Memory Over Fabric Controller with Memory Bypass
US20190294373A1 (en) * 2018-03-26 2019-09-26 Samsung Electronics Co., Ltd. Storage device mounted on network fabric and queue management method thereof
US20200065269A1 (en) * 2018-08-24 2020-02-27 Samsung Electronics Co., Ltd. NVMeoF Messages Between a Host and a Target
US20210279179A1 (en) * 2020-03-03 2021-09-09 International Business Machines Corporation I/o request type specific cache directories

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397267B1 (en) * 1999-03-04 2002-05-28 Sun Microsystems, Inc. Redirected I/O for scalable performance storage architecture
US20080270701A1 (en) * 2003-04-25 2008-10-30 Kazuhisa Fujimoto Cluster-type storage system and managing method of the cluster-type storage system
US20080282030A1 (en) * 2007-05-10 2008-11-13 Dot Hill Systems Corporation Dynamic input/output optimization within a storage controller
CN104160407A (en) * 2012-02-29 2014-11-19 苹果公司 Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US20150286438A1 (en) * 2014-04-03 2015-10-08 Lsi Corporation System, Method and Computer-Readable Medium for Dynamically Configuring an Operational Mode in a Storage Controller
US20160034185A1 (en) * 2014-07-30 2016-02-04 Lsi Corporation Host-based device driver splitting of input/out for redundant array of independent disks systems
US20160299703A1 (en) * 2015-04-07 2016-10-13 Avago Technologies General Ip (Singapore) Pte. Ltd. I/o performance in raid storage systems that have inconsistent data
US20180095911A1 (en) * 2016-10-03 2018-04-05 Samsung Electronics Co., Ltd. Non-volatile storage system and data storage access protocol for non-volatile storage devices
US20180341429A1 (en) * 2017-05-25 2018-11-29 Western Digital Technologies, Inc. Non-Volatile Memory Over Fabric Controller with Memory Bypass
US20190294373A1 (en) * 2018-03-26 2019-09-26 Samsung Electronics Co., Ltd. Storage device mounted on network fabric and queue management method thereof
US20200065269A1 (en) * 2018-08-24 2020-02-27 Samsung Electronics Co., Ltd. NVMeoF Messages Between a Host and a Target
US20210279179A1 (en) * 2020-03-03 2021-09-09 International Business Machines Corporation I/o request type specific cache directories

Also Published As

Publication number Publication date
CN114691049B (en) 2023-03-17

Similar Documents

Publication Publication Date Title
US10628209B2 (en) Virtual machine monitor to I/O stack conduit in virtual real memory
WO2010039167A1 (en) Multi-core system with central transaction control
CN112711550B (en) DMA automatic configuration module and system-on-chip SOC
CN108141471A (en) The method, apparatus and equipment of compressed data
CN114691049B (en) I/O control method of storage device
KR20230048542A (en) Control method of focused ultrasound treatment device based on ARM architecture
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
CN106909523B (en) Large-scale data transmission method and system
CN113806250B (en) Method for coordinating general processor core and vector component, interface and processor
JPS62172840A (en) Transferring system for data
CN109408453B (en) High-performance multi-node interconnection parallel transmission control method
CN112867998B (en) Operation accelerator, switch, task scheduling method and processing system
CN117076409B (en) File sharing method, device, system, electronic equipment and storage medium
CN115687200B (en) PCIe data transmission method and system applied to EPA based on FPGA
JPH07104837B2 (en) Processor control method
JP2002007173A (en) Function evaluating method for computer system
CN115996370A (en) Data transmission method, device, apparatus, storage medium, and program
JP2644857B2 (en) Data transfer method
CN115686667A (en) DSP virtualization system and method based on dynamic loading and redirection technology
CN118012576A (en) Application file parallel read-write adaptation method and device based on asynchronous I/O process
JP2001005794A (en) Distributed system
KR20210006128A (en) Symmetrical interface-based interrupt signal processing device and method
CN112631975A (en) Linux-based SPI transmission method
CN117203614A (en) Processing device, processing method and related equipment
CN117472847A (en) Memory core particle, data processing method and computer system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant