CN118260237B - Interface controller, communication method, system, storage medium and program product - Google Patents
Interface controller, communication method, system, storage medium and program product Download PDFInfo
- Publication number
- CN118260237B CN118260237B CN202410676354.1A CN202410676354A CN118260237B CN 118260237 B CN118260237 B CN 118260237B CN 202410676354 A CN202410676354 A CN 202410676354A CN 118260237 B CN118260237 B CN 118260237B
- Authority
- CN
- China
- Prior art keywords
- command
- data
- data message
- component
- module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000004891 communication Methods 0.000 title claims abstract description 44
- 230000005540 biological transmission Effects 0.000 claims abstract description 119
- 238000006243 chemical reaction Methods 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims abstract description 52
- 238000007726 management method Methods 0.000 claims description 146
- 239000000872 buffer Substances 0.000 claims description 80
- 238000004458 analytical method Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 21
- 238000004806 packaging method and process Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 19
- 239000007787 solid Substances 0.000 claims description 19
- 230000001960 triggered effect Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 10
- 238000013524 data verification Methods 0.000 claims description 9
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 12
- 230000006870 function Effects 0.000 abstract description 9
- 238000012423 maintenance Methods 0.000 abstract description 8
- 230000008878 coupling Effects 0.000 abstract description 7
- 238000010168 coupling process Methods 0.000 abstract description 7
- 238000005859 coupling reaction Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
The application discloses an interface controller, a communication method, a system, a storage medium and a program product in the technical field of computers, wherein the interface controller comprises: the system comprises an interface component, a conversion component and a link component, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium, and the conversion component is connected with the interface component and the link component; the interface controller may implement transmitting data and receiving data. The technical effects are as follows: the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data, and the data is processed by an upper layer or a lower layer after the data is processed, so that the coupling between different layers is reduced, the upgrading and the maintenance of the system are easy, and the corresponding modules can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
Description
Technical Field
The present application relates to the field of computer technology, and in particular, to an interface controller, a communication method, a system, a storage medium, and a program product.
Background
NVMe MI (NVME MANAGEMENT INTERFACE) is a management interface specifically designed for NVMe (Non-Volatile Memory Express, nonvolatile memory) devices, which is intended to provide monitoring and management functions for NVMe storage devices.
With the widespread use of NVMe storage devices in data centers, effective management of these devices has become critical. For example, the data center needs to monitor the health status, performance, temperature, etc. of the SSD (Solid STATE DISK) in real time to ensure the reliability and efficiency of the system. To meet these needs, NVMe MI was developed that provides a standardized set of management commands that allow data center administrators to monitor and manage NVMe storage devices.
Although the existing NVMe MI system performs well in terms of compatibility with specific hardware interfaces, the NVMe MI management interfaces still have shortcomings, which seriously affect the practicability and prospect of the NVMe MI management interfaces in the field of high-performance storage management.
In summary, how to effectively improve the management interface and the like is a technical problem that needs to be solved by those skilled in the art.
Disclosure of Invention
The application aims to provide an interface controller, a communication method, a system, a storage medium and a program product, wherein the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data and then is processed by an upper layer or a lower layer, the coupling between different layers is reduced, the system is easy to upgrade and maintain, namely, the corresponding module can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
In order to solve the technical problems, the application provides the following technical scheme:
An interface controller, comprising: the system comprises an interface component, a conversion component and a link component, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium, and the conversion component is connected with the interface component and the link component;
the interface controller transmits data:
The interface component is used for responding to the data transmission requirement of the local host, generating a first command and providing the first command to the conversion component;
The conversion component is used for packaging the first command into a first data message and triggering the data transmission interruption of the link component;
The link component is used for sending the first data message to the physical transmission medium after the data sending interrupt is triggered so as to realize data sending;
The interface controller receives the data process:
The link component is used for triggering data receiving interruption and transmitting the second data message to the conversion component under the condition that the second data message transmitted through the physical transmission medium is received;
The conversion component is used for analyzing the second data message to obtain a second command and providing the second command to the interface component;
The interface component is used for analyzing the second command to obtain an analysis result and feeding back the analysis result to the application in the local host.
Wherein the interface assembly comprises: at least two buffer modules;
The buffer module comprises a memory, a computer program control unit and a status register;
the state register is used for storing a control state;
The computer program control unit is used for controlling the memory based on the control state; analyzing the second command in the process of receiving data to obtain the analysis result, and generating the first command in the process of sending data;
the memory is used for storing the first command and/or the analysis result of the data.
Wherein, the conversion subassembly includes: the receiving management module comprises a receiving buffer module, an analyzing module and an upward sending module;
the receiving buffer module is used for storing the second data message;
The analysis module is used for analyzing the second data message to obtain the second command;
the upward sending module is configured to provide the second command to the interface component.
Wherein, the conversion subassembly includes: a transmission management module, the transmission management module comprising: the device comprises a reading module, a downward sending module, a packaging module and a sending buffer module;
the reading module is used for acquiring the first command from the interface component and dividing the first command after the first command exceeds a maximum transmission unit;
The packaging module is used for packaging a first command or a divided command into the first data message; if the command is divided, a plurality of continuous first data messages are obtained after encapsulation;
The sending buffer module is used for storing the first data message;
The downward sending module is configured to send the first data packet in the sending buffer module to the link component.
Wherein the link assembly comprises: the device comprises a buffer module, an interrupt module and a data verification module;
The data verification module is used for verifying the second data message by adopting a verification algorithm, and adding tail verification to the first data message;
The interrupt module is used for triggering data receiving interrupt and writing the second data message into the conversion component when the data comes from the bottom layer; triggering a data transmission interrupt and performing data transmission when the conversion component writes the first data message into the buffer module;
the buffer module is configured to support the conversion component to write the first data packet.
A communication method applied to the interface controller, comprising:
generating a first command in response to a data transmission requirement of the local host by using the interface component, and providing the first command to the conversion component;
Encapsulating the first command into a first data message by using the conversion component, and triggering the data transmission interruption of the link component;
and sending the first data message to the physical transmission medium after the data sending interruption is triggered by utilizing the link component so as to realize data sending.
The method for encapsulating the first command into the first data message by using the conversion component comprises the following steps:
Judging whether the first command exceeds a maximum transmission unit or not;
If not, independently packaging the first command to obtain the first data message;
if yes, dividing the first command, and respectively packaging all the obtained parts to obtain a plurality of continuous messages;
Adding sequence numbers for a plurality of continuous messages, adding an information start mark to a first message, adding an information end mark to a last message, and adding sequence numbers to a plurality of continuous messages;
and after the addition of the mark and the serial number is completed, sequentially determining a plurality of continuous messages as the first data message.
Wherein, still include:
triggering data receiving interruption by utilizing the link assembly under the condition of receiving a second data message transmitted through the physical transmission medium, and transmitting the second data message to the conversion assembly;
Analyzing the second data message by using the conversion component to obtain a second command, and providing the second command to the interface component;
And analyzing the second command by using the interface component to obtain an analysis result, and feeding back the analysis result to the application in the local host.
The parsing, by using the conversion component, the second data packet to obtain a second command includes:
identifying the second command corresponding to the second data message by utilizing the conversion component;
establishing a corresponding relation between the second data message and the corresponding buffer management module according to the corresponding relation between the second command and the buffer management module;
Judging whether the second command is a new command or not;
If the second command is not a new command, executing the receiving operation of the non-new command on the second data message;
If the second command is a new command, executing the receiving operation of the new command on the second data message;
And after determining that all the data messages of the second command are received, assembling the messages in the buffer management module with the corresponding relation with the second command to obtain the second command.
Wherein, the receiving operation of the non-new command is executed on the second data message, including:
reading the sequence number of the second data message, and determining whether to receive the second data message in sequence or not based on the sequence number;
If the order is received, the second data message is added into a cache management module with a corresponding relation with the second command, an information end mark of the second data message is read, and if the information end mark corresponds to a last message of the command, all messages corresponding to the second command are marked to be received;
And stopping receiving the data message corresponding to the target command if the data message is not received in sequence.
Wherein, the receiving operation of the new command is executed on the second data message, including:
reading an information start mark of the second data message;
Discarding the second data message if the information start mark does not correspond to the first message of the command;
If the information starts to mark the first message of the corresponding command, reading the sequence number of the second data message, and determining whether to receive the second data message in sequence by using the sequence number;
If the second data message is received in sequence, the second data message is added into a cache management module with a corresponding relation with the second command;
and if the second data message is not received in sequence, discarding the second data message, and stopping receiving the data message corresponding to the second command.
A communication system, comprising:
the system comprises a server and a plurality of solid state disks;
the server host uses a mainboard management controller to control a plurality of solid state disks,
And the mainboard management controller and the solid state disk are communicated based on the interface controller.
Wherein the server comprises the interface controller; the solid state disk comprises the interface controller;
And the interface controller in the server is connected with the interface controller in the solid state disk through a bus.
A readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of a communication method as described above.
A computer program product comprising computer programs/instructions which, when executed by a processor, implement the steps of the communication method described above.
The interface controller provided by the embodiment of the application comprises: the system comprises an interface component, a conversion component and a link component, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium, and the conversion component is connected with the interface component and the link component; the interface controller transmits data: an interface component for generating a first command in response to a data transmission requirement of the local host and providing the first command to the conversion component; the conversion component is used for packaging the first command into a first data message and triggering the data transmission interruption of the link component; the link component is used for sending the first data message to the physical transmission medium after the data sending interruption is triggered so as to realize data sending; the interface controller receives the data process: the link component is used for triggering data receiving interruption and transmitting the second data message to the conversion component under the condition of receiving the second data message transmitted through the physical transmission medium; the conversion component is used for analyzing the second data message to obtain a second command and providing the second command to the interface component; and the interface component is used for analyzing the second command to obtain an analysis result and feeding the analysis result back to the application in the local host.
The interface controller adopts independent modularized design, the interface component realizes the analysis of the command and the generation of the command, the conversion component carries out data conversion between the interface component and the link component, the link component is connected with an external physical transmission medium, and can receive data from the physical transmission medium and send data to the external through the physical transmission medium. In the data transmission and data receiving processes, each component independently completes corresponding item processing and feeds back to the lower layer component or the upper layer component, and each component is independent and does not interfere with each other.
The technical effects are as follows: the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data, and the data is processed by an upper layer or a lower layer after the data is processed, so that the coupling between different layers is reduced, the upgrading and the maintenance of the system are easy, and the corresponding modules can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
Correspondingly, the embodiment of the application also provides a communication method, a communication system, a readable storage medium and a computer program product corresponding to the interface controller, which have the technical effects described above and are not repeated herein.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the related art, the drawings that are required to be used in the embodiments or the related technical descriptions will be briefly described, and it is apparent that the drawings in the following description are only some embodiments of the present application, and other drawings may be obtained according to the drawings without inventive effort for those skilled in the art.
Fig. 1 is a schematic structural diagram of an interface management module according to an embodiment of the present application;
FIG. 2 is a schematic diagram of a buffer module in an interface module according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a converting assembly according to an embodiment of the present application;
FIG. 4 is a schematic diagram of a link assembly according to an embodiment of the present application;
Fig. 5 is a flow chart of data transmission in a communication method according to an embodiment of the present application;
fig. 6 is a schematic diagram of a transmission processing flow of a transmission module in a conversion assembly according to an embodiment of the present application;
fig. 7 is a flow chart of data reception in a communication method according to an embodiment of the present application;
Fig. 8 is a schematic diagram of a receiving process flow of a receiving module in a conversion assembly according to an embodiment of the present application;
Fig. 9 is a schematic structural diagram of a communication system according to an embodiment of the present application;
fig. 10 is a schematic diagram of parallel communication in a communication system according to an embodiment of the present application.
Detailed Description
In order to better understand the aspects of the present application, the present application will be described in further detail with reference to the accompanying drawings and detailed description. It will be apparent that the described embodiments are only some, but not all, embodiments of the application. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
Referring to fig. 1, fig. 1 is a schematic structural diagram of an interface management module according to an embodiment of the present application, where the interface management module includes:
An interface component 101, a conversion component 102 and a link component 103, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium 104, and the conversion component is connected with the interface component and the link component;
The interface controller transmits data:
An interface component for generating a first command in response to a data transmission requirement of the local host and providing the first command to the conversion component;
the conversion component is used for packaging the first command into a first data message and triggering the data transmission interruption of the link component;
The link component is used for sending the first data message to the physical transmission medium after the data sending interruption is triggered so as to realize data sending;
The interface controller receives the data process:
The link component is used for triggering data receiving interruption and transmitting the second data message to the conversion component under the condition of receiving the second data message transmitted through the physical transmission medium;
The conversion component is used for analyzing the second data message to obtain a second command and providing the second command to the interface component;
And the interface component is used for analyzing the second command to obtain an analysis result and feeding the analysis result back to the application in the local host.
The interface manager may be embodied as an NVMe MI, wherein the interface component may be embodied as an MI management controller, the conversion component may be embodied as an MCTP management controller, and the link component may be embodied as a link management controller. It should be noted that each component in the interface manager may be a pure hardware entity or a soft-hard combination state.
The interface component is connected with the link component through the conversion component, the interface component is used for interfacing applications in the local host, and the link component is connected with an external physical transmission medium.
The respective components, when facing data reception and data transmission, are different in the corresponding roles.
It should be noted that, in the present application, the first command, the second command, the first data packet, and the first and second data packets are only used to represent commands and data packets corresponding to different data transmission directions, specifically, the first command and the first data packet are commands and packets corresponding to a data transmission process, and the second command and the second data packet are commands and packets corresponding to a data reception process, without any other limitation.
The physical transmission medium may be a transmission Bus such as PCIe (PERIPHERAL COMPONENT INTERCONNECT EXPRESS, a high-speed serial computer expansion Bus standard) Bus, SMBus (SYSTEM MANAGEMENT Bus ) Bus, or the like.
The functional roles of the respective components are briefly described below.
For the interface component, when the interface manager is transmitting data, a first command can be generated in response to the data transmission requirement of the local host and provided to the conversion component; when the interface manager receives the data, the second command is analyzed to obtain an analysis result, and the analysis result is fed back to the application in the local host.
In one embodiment of the present application, an interface assembly includes: at least two buffer modules;
The buffer module comprises a memory, a computer program control unit and a status register;
a status register for storing a control status;
a computer program control unit for controlling the memory based on the control state; analyzing the second command in the process of receiving the data to obtain an analysis result, and generating a first command in the process of sending the data;
and the memory is used for storing the data first command and/or the analysis result.
Referring to fig. 2, a specific structure of the buffer module in the interface component, that is, the MI management controller is responsible for processing the command and response of the NVMe MI is shown in fig. 2. It parses the command from the upper layer application, performs the corresponding operation, and generates a response. The MI management controller is also responsible for converting command and response data into a format suitable for MCTP protocol transport.
Wherein Buffer is a Buffer. The interface component comprises at least two buffer management modules, wherein each buffer management module comprises a data memory and a computer program control unit, and can independently and parallelly process commands. The buffer management module further comprises a status register for storing the status of the computer program controller control memory. When the conversion component puts the prepared data into the buffer management module, the state register is set to inform the computer program control unit to execute, and the control unit also manages the memory by changing the state register. The data to be responded is also stored in the memory, and after the data is prepared, the MCTP controller carries the data to the data transmission link manager. And two or more buffer management modules do not interfere with each other and process data concurrently, so that the lower efficiency of data processing is improved.
For the conversion component, when the interface manager sends data, the first command is encapsulated into a first data message, and the data sending interruption of the link component is triggered; when the interface manager receives the data, the second data message is parsed to obtain a second command, and the second command is provided to the interface component. That is, interrupt logic may be provided in the conversion component to effect data conversion from the interface component to the link component or from the link component to the interface component in accordance with the corresponding data flow after a different interrupt is triggered.
The MCTP management controller is responsible for transferring data between the MI management controller and the link management controller. It wraps the data of the MI management controller into MCTP protocol format. And analyzing the MCTP protocol message and sending the data to the MI management controller. The MCTP management controller is responsible for managing the sending and receiving of data, ensuring that the data is properly transferred between the different components.
In practical application, the conversion component may be provided with a receiving management module and a sending management module, the receiving management module performs data conversion from the link component to the interface component, and the sending management module performs data conversion from the interface component to the link component.
In one embodiment of the present application, a conversion assembly includes: the receiving management module comprises a receiving buffer module, an analysis module and an upward sending module;
The receiving buffer module is used for storing the second data message;
the analysis module is used for analyzing the second data message to obtain a second command;
and the upward sending module is used for providing the second command to the interface component.
Referring to fig. 3, a specific structure of the reception management module in the conversion module is shown in fig. 3. And the receiving management module is correspondingly provided with a receiving buffer module, an analyzing module and an upward sending module. When receiving data from the link management module, using a receiving buffer to store the data, using a receiving sub-module to analyze the message, using an upstream sending module (upward sending module) to send the analyzed data to the interface component, and according to the information of the message, forming a complete command by the single message and processing the complete command by the MI management controller.
In one embodiment of the present application, a conversion assembly includes: the transmission management module, the transmission management module includes: the device comprises a reading module, a downward sending module, a packaging module and a sending buffer module;
the reading module is used for acquiring the first command from the interface component and dividing the first command after the first command exceeds the maximum transmission unit;
The packaging module is used for packaging the first command or the divided command into a first data message; if the command is divided, a plurality of continuous first data messages are obtained after encapsulation;
The sending buffer module is used for storing the first data message;
And the downward sending module is used for sending the first data message in the sending buffer module to the link assembly.
Referring to fig. 3, a specific structure of the transmission management module in the conversion module is given in fig. 3. For the transmission management module, a transmission buffer is set. When the MI management controller needs to send a response command, the response command is processed by the MCTP management controller, the MCTP management controller divides the command into messages in MCTP format, and the messages are transmitted to the link module by the downlink stream sending module (downward sending module). In the process of analysis and encapsulation, the unique identifier serial number of the message needs to be judged, and each message is represented by two bits.
For a link component, when the interface manager is transmitting data, after the data transmission interrupt is triggered, a first data message is transmitted to a physical transmission medium so as to realize data transmission; when the interface manager receives data, the interface manager triggers data receiving interruption under the condition of receiving a second data message transmitted through the physical transmission medium, and transmits the second data message to the conversion component.
In one embodiment of the present application, a link assembly includes: the device comprises a buffer module, an interrupt module and a data verification module;
The data verification module is used for verifying the second data message by adopting a verification algorithm, and adding tail verification to the first data message;
The interruption module is used for triggering data receiving interruption and writing a second data message into the conversion component when the data comes from the bottom layer; triggering data transmission interruption and performing data transmission when the conversion component writes the first data message into the buffer module;
And the buffer module is used for supporting the conversion component to write the first data message.
Referring to fig. 4, fig. 4 shows a specific structure of a link assembly.
The link management controller (link component) includes buffer buffering (buffering module), interrupt logic (interrupt module) and data verification module. The data verification module can adopt various verification algorithms, is responsible for increasing tail verification when receiving data and sending data, triggers interrupt logic when the data arrives at the bottom layer, writes the interrupt logic into the MCTP management controller, and triggers the interrupt logic to send data and adds data verification information to the data when the MCTP management controller writes the data into a buffer. The controller serves as a bridge connecting the physical medium and the inside of the controller, and ensures efficient transmission of data between hardware and software. Its modular design allows the system to accommodate different physical transmission standards and environments.
The three components together form a complete interface controller, and each component performs specific tasks in the professional field and simultaneously cooperates with other controllers tightly to ensure the efficient and reliable operation of the whole interface. Through the modularized design, the system can flexibly adapt to different application scenes and requirements, and meanwhile, management and maintenance work is simplified.
That is, the controller of one layer may be adjusted according to specific needs without having to adjust other controllers. For example, changing the transport protocol of the physical layer, challenging to modify the link management controller; for the assembly and segmentation mechanism of the change message, the maximum transmission size is changed, and only the MCTP management controller is required to be changed; and changing the number of the buffer management modules which can be supported, and changing the MI management controller.
The interface controller provided by the embodiment of the application comprises: the system comprises an interface component, a conversion component and a link component, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium, and the conversion component is connected with the interface component and the link component; the interface controller transmits data: an interface component for generating a first command in response to a data transmission requirement of the local host and providing the first command to the conversion component; the conversion component is used for packaging the first command into a first data message and triggering the data transmission interruption of the link component; the link component is used for sending the first data message to the physical transmission medium after the data sending interruption is triggered so as to realize data sending; the interface controller receives the data process: the link component is used for triggering data receiving interruption and transmitting the second data message to the conversion component under the condition of receiving the second data message transmitted through the physical transmission medium; the conversion component is used for analyzing the second data message to obtain a second command and providing the second command to the interface component; and the interface component is used for analyzing the second command to obtain an analysis result and feeding the analysis result back to the application in the local host.
The interface controller adopts independent modularized design, the interface component realizes the analysis of the command and the generation of the command, the conversion component carries out data conversion between the interface component and the link component, the link component is connected with an external physical transmission medium, and can receive data from the physical transmission medium and send data to the external through the physical transmission medium. In the data transmission and data receiving processes, each component independently completes corresponding item processing and feeds back to the lower layer component or the upper layer component, and each component is independent and does not interfere with each other.
The technical effects are as follows: the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data, and the data is processed by an upper layer or a lower layer after the data is processed, so that the coupling between different layers is reduced, the upgrading and the maintenance of the system are easy, and the corresponding modules can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
In one embodiment of the application, the interface manager processes the data receiving process and the data transmitting process simultaneously, and receives different commands in parallel or in parallel in a running mode in the data receiving process; and/or, in the data transmission processing process, different commands are transmitted in parallel or in parallel in a running way.
For example, when it is required to send command 1, command 2 and command 3, at a processing moment, the interface component may just generate command 3, the conversion component encapsulates command 2, and the link component sends a message corresponding to command 3 to the physical transmission medium. That is, when the command is sent, each component can process the next command after each link of the current command sending is processed without waiting for the completion of the last command sending, so that different components in the interface controller process different links of 3 command sending of command 1, command 2 and command 3 simultaneously, thereby accelerating the command sending efficiency and also being capable of processing the command sending with high priority in parallel.
Correspondingly, when receiving the command 1, the command 2 and the command 3, at a processing moment, the interface component can feed back the analysis data corresponding to the command 3 to the application in the local host, and the conversion component analyzes the message corresponding to the command 2 to obtain the command 2, and the link component receives the message corresponding to the command 3 from the physical transmission medium. That is, when receiving a command, each component can process the next command after processing each link of the current command reception without waiting for the completion of the last command reception, so that different components in the interface controller process each different link of 3 command receptions of command 1, command 2 and command 3 simultaneously, thereby accelerating the command transmission efficiency and also being capable of processing high-priority command transmission in parallel.
In addition, as the buffers can be arranged in each component and different numbers of buffers can be arranged according to actual demands, two or more command receptions and two or more directory transmissions can be processed simultaneously in the same component in the process of data transmission or data reception. The data communication efficiency can be greatly improved.
In order to facilitate understanding of specific roles of each component in the data receiving and data transmitting processes of communication, the interface controller provided in the embodiment of the present application is illustrated in the following data receiving process and data transmitting process:
Based on the interface controller, the process of receiving data:
And receiving the message by using smbus/PCIe in the link module, triggering the interrupt module when the message is received, processing the received MI data message, firstly checking the data message, checking the passed message, and then submitting the checked message to a receiving buffer in the MCTP management module for processing.
In the receiving management module of the MCTP management module, the message is assembled, if a command is split into a plurality of messages when being sent in a Host, the receiving sub-module assembles the messages according to the unique identifier and the serial number of the message, each command corresponds to a buffer module, and the messages to be assembled are submitted to the buffer module. And the judging logic of the receiving management module distinguishes the start and stop of the command according to the start zone bit and the stop zone bit of the MI message, sequentially receives the message according to the sequence number of the message, receives the complete message, and notifies the MI management module to execute after the verification of the verification module.
And the MI management module processes the data of the buffer module in the corresponding command processing module according to the type of the command, and transmits the processed data to the upper layer application for use.
Based on the interface controller, the process of sending data:
the MI message needs to send a response command corresponding to requeset (reset) commands of HOST (HOST), and the response command is generated by a sending management module in the MI management module and stored in a buffer module. And notifying the MCTP management module to process.
The MI management module judges the command of the buffer management module in the MI management module according to the size of the transmission unit in the link management module, and if the command needs to be segmented, the maximum data quantity which can be transmitted by the link is read from the buffer module and is stored in the sending buffer in the MCTP management module.
In the sending sub-module of the MCTP management module, whether the buffer module needs to divide the command into a plurality of small messages is judged according to the length of the command. And adding check bits to fill the format of the command. And sending the message to buffer of the link module.
After receiving the message, the link management module triggers the interrupt module, reads the message in the buffer, adds a check field in the message, and sends the data to the transmission medium.
It can be seen that the NVMe MI controller functions can be broken down into three specialized modules, i.e., MI management controller, MCTP management controller, and link management controller, to achieve more efficient and specialized management. Each module has own buffer, independent data processing, and after the processing is finished, the data are processed by an upper layer or a lower layer. And (5) independently upgrading, maintaining and expanding the corresponding control modules. The coupling between different layers is reduced, and the system is easy to upgrade and maintain.
If the interface controller is used in a data intensive application, such as a real-time video processing or high frequency transaction system. In such applications, the controller continually receives data streams from multiple sources. The dual Buffer modules each independently process the inbound data stream, improving data throughput and reducing latency. The multi-core processing mechanism allows multiple high priority commands to be processed simultaneously, such as real-time analysis or emergency decision making. By means of the double Buffer modules, the system can ensure that high-efficiency response capability can be maintained under high load.
Each controller is dedicated to a specific management task, e.g., MI management controller is responsible for general management operations, MCTP management controller handles inter-component communication, and link management controller is dedicated to the status and control of physical links. This specialization improves management efficiency and efficiency. Since the responsibilities of the controllers are clearly divided, they can be optimized specifically, thereby improving the overall system performance.
In addition, different management controllers can be flexibly selected and configured according to the requirements of different servers and storage environments, or new controllers can be easily added in the future to adapt to new technologies. The independent controllers allow for individual updating or upgrading of particular modules without affecting other parts, which greatly simplifies the maintenance and upgrade process. If a problem arises with a certain controller, its effect may be localized within the module and not affect the entire system. Due to fault isolation, the stability and reliability of the overall system is improved. Because the responsibility is clear, maintenance personnel can more quickly locate the controller where the problem is located, and the maintenance efficiency is improved. Each controller can be monitored more finely, and the running state of the system can be known in real time.
The relatively separate components may enable tighter security control and access management, helping to prevent security vulnerabilities. Different components can respectively meet different industry standards and compliance requirements.
By dividing the NVMe MI controller into the MI management controller, the MCTP management controller and the link management controller, more efficient, flexible and reliable storage management can be realized, which is helpful for improving storage performance and maintenance efficiency in a large-scale server environment.
Referring to fig. 5, fig. 5 is a data transmission flow chart in a communication method according to an embodiment of the application, the method can be applied to the interface controller, and the method includes the following steps:
S101, generating a first command by utilizing the interface component in response to the data transmission requirement of the local host, and providing the first command to the conversion component.
When the interface controller is connected with the server or is built in the server, the local host is the host in the server; when the interface controller is connected with the solid state disk or is arranged in the solid state disk, the local host is the controller of the solid state disk.
In the case where the local host has a data transmission requirement, the interface component may generate a first command and then provide the first command to the conversion component.
How the interface component generates the first command may be specifically performed according to the related protocol of the MI command, which is not described herein in detail.
S102, packaging the first command into a first data message by using the conversion component, and triggering the data transmission interruption of the link component.
In the conversion component, the first command may be encapsulated into a first data message, and then the transmission data of the outgoing link component is interrupted.
In one embodiment of the present application, encapsulating a first command into a first data message using a conversion component includes:
Judging whether the first command exceeds a maximum transmission unit;
if not, independently packaging the first command to obtain a first data message;
If yes, dividing the first command, and respectively packaging all the obtained parts to obtain a plurality of continuous messages;
Adding sequence numbers for a plurality of continuous messages, adding an information start mark to a first message, adding an information end mark to a last message, and adding sequence numbers to a plurality of continuous messages;
after the addition of the mark and the serial number is completed, sequentially determining a plurality of continuous messages as first data messages.
For convenience of description, the above steps are described in combination.
Referring to fig. 6, fig. 6 shows a specific transmission processing flow of the transmission module in the conversion component.
At MCTP (Management Component Transport Protocol) the management module processes larger commands or responses, the data needs to be split into multiple small messages for transmission. The segmentation process involves the addition of SOM (Start of Message) and EOM (End of Message) identifiers and the allocation of sequence numbers.
Specifically, the MCTP management module may evaluate the total size of the command or response to be sent. If the data size exceeds the Maximum Transmission Unit (MTU) of a single message, it needs to be split into multiple small messages. And for the maximum transmission unit of the single message, the single message is directly packaged into an independent message without being split, so that the first data message is obtained.
For commands that need to be split, the size of each of the parts is not more than the MTU. Each split portion will constitute an independent MCTP message, but specific order and flags need to be maintained between these messages in order for the receiver to parse out the first command by combining multiple consecutive messages.
Specifically, for the first segmented message, the MCTP management module adds an SOM identifier to its header, indicating that this is the beginning of a series of messages. For the last message, the module will add an EOM flag at its tail, indicating that this is the end of the series of messages. The intermediate message may not contain a SOM or EOM identification. In addition, each packet encapsulated by the segmented portion is assigned a unique sequence number. These sequence numbers are used to ensure that the message can be properly reassembled at the receiver and processed in the order at the time of transmission.
The segmented and marked continuous message is the first data message. These successive messages are sent to the destination address in sequence. The MCTP management module of the receiving party reassembles the original command or response data according to the SOM, EOM identification and serial number.
The MCTP management module in the interface manager of the receiving end collects and arranges the messages according to the sequence number. When all parts are received and the EOM identification is detected, the module will begin to reassemble the complete command or response. During the reorganization process, the module verifies that all parts have been received and that the order is correct.
Through this process, the MCTP management module is able to efficiently handle large data transfers, ensuring that the integrity and ordering of the data is maintained even when large amounts of data are transferred. This is important to maintain the reliability and efficiency of network communications.
In this embodiment, after the conversion component encapsulates the first command to obtain the first data packet, the interrupt of the link component is triggered.
S103, after the data transmission interruption is triggered, the link component is utilized to transmit the first data message to the physical transmission medium so as to realize data transmission.
After the data transmission interrupt in the link assembly is triggered, the first data message can be transmitted to the physical transmission medium, so that the first data message is transmitted to the receiving end.
It should be noted that, when the first command corresponds to a plurality of continuous messages, that is, the first data message corresponds to a plurality of continuous messages, the data messages need to be sent sequentially, so that the sending sequence of the data messages is ensured, so that the receiving end can receive and reorganize the messages sequentially, and parse the first command.
The interface controller applies the communication method provided by the embodiment of the application, and responds to the data transmission requirement of the local host by utilizing the interface component, generates a first command and provides the first command to the conversion component; encapsulating the first command into a first data message by using the conversion component, and triggering the data transmission interruption of the link component; and sending the first data message to the physical transmission medium after the data sending interruption is triggered by utilizing the link component so as to realize data sending.
Because the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data transmission, and is processed by a lower layer after the data transmission is finished, the coupling between different layers is reduced, the system is easy to upgrade and maintain, and the corresponding modules can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
Referring to fig. 7, fig. 7 is a flow chart of data receiving in a communication method according to an embodiment of the application, the method can be applied to the interface controller, and the method includes the following steps:
S201, triggering data receiving interruption by utilizing a link component under the condition of receiving a second data message transmitted through a physical transmission medium, and transmitting the second data message to a conversion component.
The interface controller receives the second data message from the physical transmission medium through the link component, and triggers the data receiving interrupt when the link component receives the second message from the physical transmission medium, so as to transmit the second data message to the conversion component.
S202, analyzing the second data message by using the conversion component to obtain a second command, and providing the second command to the interface component.
The conversion component is provided with a receiving management module, and when a second data message transmitted by the link component is received, the second data message can be analyzed, so that a second command is obtained.
The second command is then provided to the interface component.
In one embodiment of the present application, parsing the second data packet to obtain the second command using the conversion component includes:
Identifying a second command corresponding to the second data message by using the conversion component;
Establishing a corresponding relation between the second data message and the corresponding buffer management module according to the corresponding relation between the second command and the buffer management module;
judging whether the second command is a new command or not;
if the second command is not a new command, executing the receiving operation of the non-new command on the second data message;
if the second command is a new command, executing the receiving operation of the new command on the second data message;
And after all the data messages of the second command are received, assembling the messages in the buffer management module with the corresponding relation with the second command to obtain the second command.
Wherein the receiving operation of the non-new command is performed on the second data message, including:
reading the sequence number of the second data message, and determining whether to receive the second data message in sequence based on the sequence number;
If the order is received, adding the second data message into a cache management module with a corresponding relation with the second command, reading an information end mark of the second data message, and if the information end mark corresponds to the last message of the command, marking that all messages corresponding to the second command are received;
If the data message is not received in sequence, stopping receiving the data message corresponding to the target command.
Wherein, the receiving operation of the new command is executed on the second data message, including:
Reading an information start mark of the second data message;
If the information start marks the first message which does not correspond to the command, discarding the second data message;
If the information starts to mark the first message of the corresponding command, the sequence number of the second data message is read, and whether the second data message is received in sequence is determined by utilizing the sequence number;
If the data message is received in sequence, adding the second data message into a cache management module with a corresponding relation with the second command;
if the second data message is not received in sequence, discarding the second data message, and stopping receiving the data message corresponding to the second command.
Referring to fig. 8, when the MCTP management module receives data from the link management layer, it first determines whether a new command is received, and each command corresponds to a buffer management module. After the command is identified, a connection is established with the corresponding buffer management module.
Wherein it may be determined whether the first command is a new command based on the unique identifier of the command. If it is a new command, the SOM bit of this message should be 1, otherwise the message is discarded in error. I.e., SOM bit 1 indicates the first message in the succession of messages.
After the SOM is judged, whether the serial number of the wave message is 0 is checked. Illustrating: if the sequence number is set to 2 bits, the sequence numbers are ordered to be 0, 1, 2,3, 0 and 1 … …, if the sequence number of the message with SOM of 1 is not 0, the message is in error, and if the message is 0, the sequence number of the message is indicated to be correct.
And checking the EOM bit in the next step when the SOM and the serial number are correct, and if the EOM bit is 1, indicating that the command is completely accepted, indicating that only one message exists in the command, and sending the data to a buffer management module by an upstream sending module (upward sending module) to provide the buffer management module with the command for executing. I.e., EOM bit 1 indicates the last message of the command, the end of which is also marked with EOM and EOM is 1 when there is only one message for the command.
If the received second data message belongs to a received command, the MCTP management module stores the verified good data in the buffer module. This buffer will continue to accumulate data until an EOM flag is detected, indicating the end of the current message. Before receiving the EOM marker, all received data is considered part of the same message. Upon detection of an EOM, the MCTP management module stops buffering of the current message. At this point, the entire message is considered complete, can be parsed, and notifies the MI management controller that it can be processed further.
In order to ensure the sequence and integrity of the messages throughout the reception process. The MCTP management module checks the sequence number of each received message to ensure that the messages are received in the correct order. If the sequence number does not match the expected sequence number, a message loss or a sequence error may be indicated, at which point retransmission or error handling may be required.
Once the message is confirmed to be complete and in correct sequence, it parses the data and informs the MI management controller that the MCTP management controller has completed the transmission of the command so that the MI management controller passes the second command to higher-level applications for further processing, through which the MCTP management module ensures accurate receipt and efficient processing of the data while also protecting the integrity and sequence during data transmission.
S203, analyzing the second command by using the interface component to obtain an analysis result, and feeding back the analysis result to the application in the local host.
After the interface component receives the second command, the second command can be parsed, so that a parsing result is obtained, and then the parsing result is fed back to an application in the local host for processing.
The interface controller applies the communication method provided by the embodiment of the application, and by utilizing the link component, under the condition of receiving the second data message transmitted through the physical transmission medium, the interface controller triggers the interruption of data reception and transmits the second data message to the conversion component; analyzing the second data message by using the conversion component to obtain a second command, and providing the second command to the interface component; and analyzing the second command by using the interface component to obtain an analysis result, and feeding back the analysis result to the application in the local host.
Because the interface controller adopts a modularized design, each module is responsible for different functions, each module independently processes data reception, and is processed by an upper layer application after the processing is finished, the coupling between different layers is reduced, the system is easy to upgrade and maintain, and the corresponding modules can be independently upgraded, maintained and expanded, so that the efficient and reliable operation of the system using the interface controller for communication is ensured.
Corresponding to the above method embodiments, the embodiments of the present application further provide a communication system, where the communication system described below and the interface controller and the communication method described above may be referred to correspondingly.
Referring to fig. 9, the system includes:
the system comprises a server and a plurality of solid state disks;
the server host uses the main board management controller to control a plurality of solid state disks,
The communication between the motherboard management controller and the solid state disk is based on the interface controller provided by the above embodiment.
Wherein, the server comprises an interface controller; the solid state disk comprises an interface controller;
the interface controller in the server is connected with the interface controller in the solid state disk through a bus.
In one embodiment of the present application, please refer to fig. 10, which shows a system in which a motherboard management controller (BMC, baseboard Management Controller) interacts with an SSD controller in MI messages, the SSD controller includes four buffer modules, each module corresponds to a command, and can independently process the receiving of a message, the reply of a message, and the processing of a message.
The main board management controller is a hardware device embedded on a computer main board and is responsible for monitoring, managing and controlling various aspects of the system, including hardware health status, remote management function and the like.
Specifically, the BMC may send four commands A, B, C and D to the SSD control at the same time, each of the commands is divided into five messages, each of the commands is independently sent, and after passing through the interrupt and check module of the link management controller, the commands are stored in the receiving management module of the MCTP management controller. At this time, the messages of the two commands A and B form a first-in first-out queue in the receiving management module, in the MI management controller, the command A is received with the two messages, the command B is received with one message, the messages of the command D are all received, in the process, the command C is processed, the processing result is returned, the message C1 reaches the BMC, and the messages C2, C3, C4 and C5 are on the transmission path.
Therefore, through the modularized design, each module is decoupled, so that the flow operation of a plurality of commands between the server and the SSD is realized, and the efficiency of data transmission between each controller is improved.
Corresponding to the above method embodiments, the present application also provides a computer program product, a computer program product described below and a communication method described above being mutually correspondingly referred to.
A computer program product comprising computer programs/instructions which, when executed by a processor, implement the steps of the communication method described above.
Corresponding to the above method embodiments, the embodiments of the present application further provide a readable storage medium, where a readable storage medium described below and a communication method described above may be referred to correspondingly to each other.
A readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of the communication method of the above-described method embodiments.
The readable storage medium may be a usb disk, a removable hard disk, a Read-Only Memory (ROM), a random access Memory (Random Access Memory, RAM), a magnetic disk, or an optical disk, which may store various program codes.
In this specification, each embodiment is described in a progressive manner, and each embodiment is mainly described in a different point from other embodiments, so that the same or similar parts between the embodiments are referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant points refer to the description of the method section.
Those of skill would further appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the various illustrative elements and steps are described above generally in terms of functionality in order to clearly illustrate the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Those skilled in the art may implement the described functionality using different approaches for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software modules may be disposed in Random Access Memory (RAM), memory, read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
Finally, it is further noted that, in this document, relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, the terms include, comprise, or any other variation is intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
The principles and embodiments of the present application have been described herein with reference to specific examples, the description of which is intended only to assist in understanding the methods of the present application and the core ideas thereof; meanwhile, as those skilled in the art will vary in the specific embodiments and application scope according to the idea of the present application, the present disclosure should not be construed as limiting the present application in summary.
Claims (15)
1. An interface controller, comprising: the system comprises an interface component, a conversion component and a link component, wherein the interface component is connected with an application in a local host, the link component is connected with an external physical transmission medium, and the conversion component is connected with the interface component and the link component;
the interface controller transmits data:
The interface component is used for responding to the data transmission requirement of the local host, generating a first command and providing the first command to the conversion component;
The conversion component is used for packaging the first command into a first data message and triggering the data transmission interruption of the link component;
The link component is used for sending the first data message to the physical transmission medium after the data sending interrupt is triggered so as to realize data sending;
The interface controller receives the data process:
The link component is used for triggering data receiving interruption and transmitting the second data message to the conversion component under the condition that the second data message transmitted through the physical transmission medium is received;
The conversion component is used for analyzing the second data message to obtain a second command and providing the second command to the interface component; the parsing the second data message to obtain a second command includes: identifying the second command corresponding to the second data message by utilizing the conversion component; establishing a corresponding relation between the second data message and the corresponding buffer management module according to the corresponding relation between the second command and the buffer management module; judging whether the second command is a new command or not; if the second command is not a new command, executing the receiving operation of the non-new command on the second data message; if the second command is a new command, executing the receiving operation of the new command on the second data message; after all data messages of the second command are received, assembling the messages in a buffer management module with a corresponding relation with the second command to obtain the second command;
The interface component is used for analyzing the second command to obtain an analysis result and feeding back the analysis result to the application in the local host.
2. The interface controller of claim 1, wherein the interface assembly comprises: at least two buffer modules;
The buffer module comprises a memory, a computer program control unit and a status register;
the state register is used for storing a control state;
The computer program control unit is used for controlling the memory based on the control state; analyzing the second command in the process of receiving data to obtain the analysis result, and generating the first command in the process of sending data;
the memory is used for storing the first command and/or the analysis result of the data.
3. The interface controller of claim 1, wherein the conversion assembly comprises: the receiving management module comprises a receiving buffer module, an analyzing module and an upward sending module;
the receiving buffer module is used for storing the second data message;
The analysis module is used for analyzing the second data message to obtain the second command;
the upward sending module is configured to provide the second command to the interface component.
4. The interface controller of claim 3, wherein the conversion component comprises: a transmission management module, the transmission management module comprising: the device comprises a reading module, a downward sending module, a packaging module and a sending buffer module;
the reading module is used for acquiring the first command from the interface component and dividing the first command after the first command exceeds a maximum transmission unit;
The packaging module is used for packaging a first command or a divided command into the first data message; if the command is divided, a plurality of continuous first data messages are obtained after encapsulation;
The sending buffer module is used for storing the first data message;
The downward sending module is configured to send the first data packet in the sending buffer module to the link component.
5. The interface controller of claim 1, wherein the link component comprises: the device comprises a buffer module, an interrupt module and a data verification module;
The data verification module is used for verifying the second data message by adopting a verification algorithm, and adding tail verification to the first data message;
The interrupt module is used for triggering data receiving interrupt and writing the second data message into the conversion component when the data comes from the bottom layer; triggering a data transmission interrupt and performing data transmission when the conversion component writes the first data message into the buffer module;
the buffer module is configured to support the conversion component to write the first data packet.
6. A communication method, applied to the interface controller according to any one of claims 1 to 5, comprising:
generating a first command in response to a data transmission requirement of the local host by using the interface component, and providing the first command to the conversion component;
Encapsulating the first command into a first data message by using the conversion component, and triggering the data transmission interruption of the link component;
and sending the first data message to the physical transmission medium after the data sending interruption is triggered by utilizing the link component so as to realize data sending.
7. The method of claim 6, wherein encapsulating the first command as a first data message with the translation component comprises:
Judging whether the first command exceeds a maximum transmission unit or not;
If not, independently packaging the first command to obtain the first data message;
if yes, dividing the first command, and respectively packaging all the obtained parts to obtain a plurality of continuous messages;
Adding sequence numbers for a plurality of continuous messages, adding an information start mark to a first message, adding an information end mark to a last message, and adding sequence numbers to a plurality of continuous messages;
and after the addition of the mark and the serial number is completed, sequentially determining a plurality of continuous messages as the first data message.
8. The method according to claim 6 or 7, further comprising:
triggering data receiving interruption by utilizing the link assembly under the condition of receiving a second data message transmitted through the physical transmission medium, and transmitting the second data message to the conversion assembly;
Analyzing the second data message by using the conversion component to obtain a second command, and providing the second command to the interface component;
And analyzing the second command by using the interface component to obtain an analysis result, and feeding back the analysis result to the application in the local host.
9. The method of claim 8, wherein parsing the second data message with the translation component to obtain a second command comprises:
identifying the second command corresponding to the second data message by utilizing the conversion component;
establishing a corresponding relation between the second data message and the corresponding buffer management module according to the corresponding relation between the second command and the buffer management module;
Judging whether the second command is a new command or not;
If the second command is not a new command, executing the receiving operation of the non-new command on the second data message;
If the second command is a new command, executing the receiving operation of the new command on the second data message;
And after determining that all the data messages of the second command are received, assembling the messages in the buffer management module with the corresponding relation with the second command to obtain the second command.
10. The method of claim 9, wherein performing a non-new command receiving operation on the second data message comprises:
reading the sequence number of the second data message, and determining whether to receive the second data message in sequence or not based on the sequence number;
If the order is received, the second data message is added into a cache management module with a corresponding relation with the second command, an information end mark of the second data message is read, and if the information end mark corresponds to a last message of the command, all messages corresponding to the second command are marked to be received;
And stopping receiving the data message corresponding to the second command if the data message is not received in sequence.
11. The method of claim 9, wherein performing a new command receiving operation on the second data message comprises:
reading an information start mark of the second data message;
Discarding the second data message if the information start mark does not correspond to the first message of the command;
If the information starts to mark the first message of the corresponding command, reading the sequence number of the second data message, and determining whether to receive the second data message in sequence by using the sequence number;
If the second data message is received in sequence, the second data message is added into a cache management module with a corresponding relation with the second command;
and if the second data message is not received in sequence, discarding the second data message, and stopping receiving the data message corresponding to the second command.
12. A communication system, comprising:
the system comprises a server and a plurality of solid state disks;
the server host uses a mainboard management controller to control a plurality of solid state disks,
Communication between the motherboard management controller and the solid state disk is based on the interface controller according to any one of claims 1 to 5.
13. The communication system of claim 12, wherein the server includes the interface controller therein; the solid state disk comprises the interface controller;
And the interface controller in the server is connected with the interface controller in the solid state disk through a bus.
14. A readable storage medium, characterized in that it has stored thereon a computer program which, when executed by a processor, implements the steps of the communication method according to any of claims 6 to 11.
15. A computer program product comprising computer programs/instructions which, when executed by a processor, implement the steps of the communication method of any of claims 6 to 11.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410676354.1A CN118260237B (en) | 2024-05-29 | 2024-05-29 | Interface controller, communication method, system, storage medium and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410676354.1A CN118260237B (en) | 2024-05-29 | 2024-05-29 | Interface controller, communication method, system, storage medium and program product |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118260237A CN118260237A (en) | 2024-06-28 |
CN118260237B true CN118260237B (en) | 2024-08-16 |
Family
ID=91607174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410676354.1A Active CN118260237B (en) | 2024-05-29 | 2024-05-29 | Interface controller, communication method, system, storage medium and program product |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118260237B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118534828B (en) * | 2024-07-25 | 2024-11-26 | 智维精准(北京)医疗科技有限公司 | A synchronous control system and method for linear accelerator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052113A (en) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | Communication link layer message single event effect fault tolerance method and device |
CN112887227A (en) * | 2021-01-15 | 2021-06-01 | 苏州浪潮智能科技有限公司 | Method, system and related device for receiving messages in solid state disk |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294225A (en) * | 2015-06-29 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | A kind of method for reading data, opposite equip. and controller |
CN114143853A (en) * | 2020-09-03 | 2022-03-04 | 华为技术有限公司 | Communication link selection method, device and storage medium |
US11836100B1 (en) * | 2022-06-16 | 2023-12-05 | Dell Products L.P. | Redundant baseboard management controller (BMC) system and method |
CN116821039A (en) * | 2023-05-25 | 2023-09-29 | 联合汽车电子有限公司 | Application communication system, method, device and readable storage medium for multi-core SOC |
CN117278890B (en) * | 2023-11-15 | 2024-02-13 | 苏州元脑智能科技有限公司 | Optical module access method, device and system, electronic equipment and readable storage medium |
-
2024
- 2024-05-29 CN CN202410676354.1A patent/CN118260237B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052113A (en) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | Communication link layer message single event effect fault tolerance method and device |
CN112887227A (en) * | 2021-01-15 | 2021-06-01 | 苏州浪潮智能科技有限公司 | Method, system and related device for receiving messages in solid state disk |
Also Published As
Publication number | Publication date |
---|---|
CN118260237A (en) | 2024-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204070B2 (en) | Method, device, system and storage medium for implementing packet transmission in PCIE switching network | |
EP1841162B1 (en) | Method and system for an os virtualization-aware network interface card | |
EP1581875B1 (en) | Using direct memory access for performing database operations between two or more machines | |
CN104579695B (en) | A kind of data forwarding device and method | |
CN104714905A (en) | Method and system for performing a failover operation from the first adapter to the second adapter | |
CN118260237B (en) | Interface controller, communication method, system, storage medium and program product | |
US7680944B1 (en) | Rapid transport service in a network to peripheral device servers | |
CN118200253A (en) | RDMA UD transmission-oriented reliable communication method, electronic equipment and readable medium | |
KR20050083861A (en) | Data processing systems | |
CN111404842A (en) | Data transmission method, device and computer storage medium | |
CN1317841C (en) | Replacement messages for identifying and preventing errors during the transmission of real time-critical data | |
CN116760510B (en) | A message sending method, message receiving method, device and equipment | |
CN100493018C (en) | Communication method via bus interface of network and and system thereof | |
CN110928828A (en) | Inter-processor service processing system | |
CN114978426B (en) | Data transmission method and system | |
US8054857B2 (en) | Task queuing methods and systems for transmitting frame information over an I/O interface | |
CN118295954B (en) | Data transmission method and communication system of processing card based on PCIe protocol | |
CN109120628A (en) | Print system kilomega network communication means, terminal and system | |
CN112835823B (en) | Storage controller response sending method | |
WO2024120344A1 (en) | Wired serial bus data transmission method and system, and related apparatus | |
CN117692362A (en) | Method and device for detecting abnormal nodes of network transmission data | |
CN115460085A (en) | Ethernet protocol acceleration circuit and method | |
AU2003300885B2 (en) | Using direct memory access for performing database operations between two or more machines | |
CN117997856A (en) | Method, system and programmable switch for ordering network messages | |
CN119652986A (en) | Data processing method, network card and host |
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 |