CN118260237B - 一种接口控制器、通信方法、系统、存储介质及程序产品 - Google Patents
一种接口控制器、通信方法、系统、存储介质及程序产品 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
本申请在计算机技术领域公开了一种接口控制器、通信方法、系统、存储介质及程序产品,该接口控制器,包括:接口组件、转换组件和链路组件,接口组件与本地主机中的应用相连接,链路组件与外界的物理传输介质相连接,转换组件连接接口组件和链路组件;接口控制器可以实现发送数据和接收数据。技术效果:该接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据处理,处理完毕后交由上层或者下层处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种接口控制器、通信方法、系统、存储介质及程序产品。
背景技术
NVMe MI(NVMe Management Interface)是一种专门为NVMe(Non-VolatileMemory Express,非易失性内存)设备设计的管理接口,它旨在提供对NVMe存储设备的监控和管理功能。
随着NVMe存储设备在数据中心的广泛应用,对这些设备的有效管理变得至关重要。例如,数据中心需要对SSD(Solid State Disk,固态硬盘)的健康状况、性能、温度等进行实时监控,以确保系统的可靠性和效率。为了满足这些需求,NVMe MI被开发出来,它提供了一套标准化的管理命令,使得数据中心管理员可以监控和管理NVMe存储设备。
尽管现有的NVMe MI系统在与特定硬件接口的兼容性方面做得不错,但NVMe MI管理接口仍然存在不足,严重影响了其在高性能存储管理领域的实用性和前景。
综上所述,如何有效地改进管理接口等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种接口控制器、通信方法、系统、存储介质及程序产品,该接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据处理,处理完毕后交由上层或者下层处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
为解决上述技术问题,本申请提供如下技术方案:
一种接口控制器,包括:接口组件、转换组件和链路组件,所述接口组件与本地主机中的应用相连接,所述链路组件与外界的物理传输介质相连接,所述转换组件连接所述接口组件和所述链路组件;
所述接口控制器发送数据过程:
所述接口组件,用于响应于所述本地主机的数据发送需求,生成第一命令,并将所述第一命令提供给所述转换组件;
所述转换组件,用于将所述第一命令封装为第一数据报文,并触发所述链路组件的数据发送中断;
所述链路组件,用于在数据发送中断被触发后,将所述第一数据报文发送到所述物理传输介质中,以实现数据发送;
所述接口控制器接收数据过程:
所述链路组件,用于在接收到通过所述物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将所述第二数据报文传递给所述转换组件;
所述转换组件,用于解析所述第二数据报文,得到第二命令,并将所述第二命令提供给所述接口组件;
所述接口组件,用于对所述第二命令进行解析,得到解析结果,并将所述解析结果反馈给所述本地主机中的应用。
其中,所述接口组件,包括:至少两个缓冲模块;
所述缓冲模块包括存储器、计算机程序控制单元和状态寄存器;
所述状态寄存器,用于存储控制状态;
所述计算机程序控制单元,用于基于所述控制状态对所述存储器进行控制;在接收数据过程中,解析所述第二命令,得到所述解析结果,在发送数据过程,生成所述第一命令;
所述存储器,用于存储数据所述第一命令和/或所述解析结果。
其中,所述转换组件,包括:接收管理模块,所述接收管理模块包括接收缓冲模块、解析模块和向上发送模块;
所述接收缓冲模块,用于存放所述第二数据报文;
所述解析模块,用于解析所述第二数据报文,得到所述第二命令;
所述向上发送模块,用于将所述第二命令提供给所述接口组件。
其中,所述转换组件,包括:发送管理模块,所述发送管理模块包括:读取模块、向下发送模块、封装模块和发送缓冲模块;
所述读取模块,用于从所述接口组件中获取所述第一命令,并在所述第一命令超过最大传输单位后,分割所述第一命令;
所述封装模块,用于将第一命令或将分割后的命令封装为所述第一数据报文;若命令被分割,则封装后得到若干个连续的第一数据报文;
所述发送缓冲模块,用于存储所述第一数据报文;
所述向下发送模块,用于将所述发送缓存模块中的第一数据报文发送到所述链路组件。
其中,所述链路组件,包括:缓冲模块、中断模块和数据校验模块;
所述数据校验模块,用于采用校验算法,对所述第二数据报文进行校验,对所述第一数据报文增加尾部校验;
所述中断模块,用于在底层有数据到来时,触发数据接收中断并将所述第二数据报文写入到所述转换组件;在所述转换组件将所述第一数据报文写入到所述缓冲模块时,触发数据发送中断并进行数据发送;
所述缓冲模块,用于支持所述转换组件写入所述第一数据报文。
一种通信方法,应用于如上述的接口控制器,包括:
利用所述接口组件,响应于所述本地主机的数据发送需求,生成第一命令,并将所述第一命令提供给所述转换组件;
利用所述转换组件,将所述第一命令封装为第一数据报文,并触发所述链路组件的数据发送中断;
利用所述链路组件,在数据发送中断被触发后,将所述第一数据报文发送到所述物理传输介质中,以实现数据发送。
其中,利用所述转换组件,将所述第一命令封装为第一数据报文,包括:
判断所述第一命令是否超出最大传输单位;
如果否,则将所述第一命令进行独立封装,得到所述第一数据报文;
如果是,则分割所述第一命令,并对分割所得的各部分分别进行封装,得到若干个连续报文;
为若干个连续报文添加序列号,并对首个报文中添加信息开始标记,末个报文添加信息结束标记,若干个连续报文均添加有序列号;
标记和序列号添加完成后,将若干个连续报文依次确定为所述第一数据报文。
其中,还包括:
利用所述链路组件,在接收到通过所述物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将所述第二数据报文传递给所述转换组件;
利用所述转换组件,解析所述第二数据报文,得到第二命令,并将所述第二命令提供给所述接口组件;
利用所述接口组件,对所述第二命令进行解析,得到解析结果,并将所述解析结果反馈给所述本地主机中的应用。
其中,利用所述转换组件,解析所述第二数据报文,得到第二命令,包括:
利用所述转换组件,识别所述第二数据报文对应的所述第二命令;
根据所述第二命令与缓冲管理模块的对应关系,将所述第二数据报文与对应的缓冲管理模块建立对应关系;
判断所述第二命令是否为新命令;
若所述第二命令非新命令,则对所述第二数据报文执行非新命令的接收操作;
若所述第二命令为新命令,则对所述第二数据报文执行新命令的接收操作;
在确定接收到所述第二命令的全部数据报文后,对与所述第二命令具有对应关系的缓冲管理模块中的报文进行组装,得到所述第二命令。
其中,对所述第二数据报文执行非新命令的接收操作,包括:
读取所述第二数据报文的序列号,并基于序列号确定是否按序接收;
若为按序接收,则将所述第二数据报文添加至与所述第二命令具有对应关系的缓存管理模块中,并读取所述第二数据报文的信息结束标记,若所述信息结束标记对应命令的末报文,则标记所述第二命令对应的全部报文已接收;
若非按序接收,则停止接收所述目标命令对应的数据报文。
其中,对所述第二数据报文执行新命令的接收操作,包括:
读取所述第二数据报文的信息开始标记;
若所述信息开始标记未对应命令的首个报文,则丢弃所述第二数据报文;
若所述信息开始标记对应命令的首个报文,则读取所述第二数据报文的序列号,利用所述序列号确定是否按序接收;
若为按序接收,则将所述第二数据报文添加至与所述第二命令具有对应关系的缓存管理模块中;
若非按序接收,则丢弃所述第二数据报文,并停止接收所述第二命令对应的数据报文。
一种通信系统,包括:
服务器和若干个固态硬盘;
所述服务器主机端使用主板管理控制器控制若干个固态硬盘,
所述主板管理控制器和所述固态硬盘之间基于如上述接口控制器进行通信。
其中,所述服务器中包括所述接口控制器;所述固态硬盘中包括所述接口控制器;
所述服务器中的接口控制器与所述固态硬盘中的接口控制器,通过总线连接。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述通信方法的步骤。
一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时,实现上述通信方法的步骤。
应用本申请实施例所提供的接口控制器,包括:接口组件、转换组件和链路组件,接口组件与本地主机中的应用相连接,链路组件与外界的物理传输介质相连接,转换组件连接接口组件和链路组件;接口控制器发送数据过程:接口组件,用于响应于本地主机的数据发送需求,生成第一命令,并将第一命令提供给转换组件;转换组件,用于将第一命令封装为第一数据报文,并触发链路组件的数据发送中断;链路组件,用于在数据发送中断被触发后,将第一数据报文发送到物理传输介质中,以实现数据发送;接口控制器接收数据过程:链路组件,用于在接收到通过物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将第二数据报文传递给转换组件;转换组件,用于解析第二数据报文,得到第二命令,并将第二命令提供给接口组件;接口组件,用于对第二命令进行解析,得到解析结果,并将解析结果反馈给本地主机中的应用。
接口控制器采用独立模块化设计,接口组件实现命令的解析和命令生成、转换组件在接口组件与链路组件之间进行数据转换,链路组件与外界的物理传输介质进行连接,可以从该物理传输介质中接收数据,和通过该物理传输介质向外界发送数据。在数据发送和数据接收过程中,各个组件独立完成相应事项处理,并反馈给下层组件或上层组件,各个组件之间相互独立,互不干扰。
技术效果:该接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据处理,处理完毕后交由上层或者下层处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
相应地,本申请实施例还提供了与上述接口控制器相对应的通信方法、通信系统、可读存储介质及计算机程序产品,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种接口管理模块的结构示意图;
图2为本申请实施例中一种接口组件中缓冲模块的具体结构示意图;
图3为本申请实施例中一种转换组件的具体结构示意图;
图4为本申请实施例中一种链路组件的具体结构示意图;
图5为本申请实施例中一种通信方法中的数据发送流程图;
图6为本申请实施例中一种转换组件中发送模块的发送处理流程示意图;
图7为本申请实施例中一种通信方法中的数据接收流程图;
图8为本申请实施例中一种转换组件中接收模块的接收处理流程示意图;
图9为本申请实施例中一种通信系统的结构示意图;
图10为本申请实施例中一种通信系统中的并行通信示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种接口管理模块的结构示意图,该接口管理模块,包括:
接口组件101、转换组件102和链路组件103,接口组件与本地主机中的应用相连接,链路组件与外界的物理传输介质104相连接,转换组件连接接口组件和链路组件;
接口控制器发送数据过程:
接口组件,用于响应于本地主机的数据发送需求,生成第一命令,并将第一命令提供给转换组件;
转换组件,用于将第一命令封装为第一数据报文,并触发链路组件的数据发送中断;
链路组件,用于在数据发送中断被触发后,将第一数据报文发送到物理传输介质中,以实现数据发送;
接口控制器接收数据过程:
链路组件,用于在接收到通过物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将第二数据报文传递给转换组件;
转换组件,用于解析第二数据报文,得到第二命令,并将第二命令提供给接口组件;
接口组件,用于对第二命令进行解析,得到解析结果,并将解析结果反馈给本地主机中的应用。
该接口管理器可以具体为NVMe MI,其中,接口组件可具体为MI管理控制器,转换组件可具体为MCTP管理控制器,链路组件可具体为链路管理控制器。需要注意的是,该接口管理器中的各个组件可以是纯硬件实体,也可以是软硬结合状态。
接口组件通过转换组件与链路组件相连接,接口组件对接本地主机中的应用,链路组件与外界的物理传输介质相连接。
各个组件,在面对数据接收和数据发送时,对应的作用各不相同。
需要注意的是,在本申请中的第一命令、第二命令、第一数据报文和第二数据报文中的第一和第二,仅用于表示不同数据传输方向对应的命令和数据报文,具体的,第一命令和第一数据报文是对应数据发送过程中的命令和报文,第二命令和第二数据报文是对应数据接收过程中的命令和报文,而无其他限定含义。
其中,物理传输介质,可以具体为如PCIe(peripheral component interconnectexpress,一种高速串行计算机扩展总线标准)总线、SMBus(System Management Bus,系统管理总线)总线等传输总线。
下面对各个组件的功能作用进行简要说明。
对于接口组件,当接口管理器在发送数据时,可以响应于本地主机的数据发送需求,生成第一命令,并将第一命令提供给转换组件;当接口管理器在接收数据时,对第二命令进行解析,得到解析结果,并将解析结果反馈给本地主机中的应用。
在本申请中的一种实施例中,接口组件,包括:至少两个缓冲模块;
缓冲模块包括存储器、计算机程序控制单元和状态寄存器;
状态寄存器,用于存储控制状态;
计算机程序控制单元,用于基于控制状态对存储器进行控制;在接收数据过程中,解析第二命令,得到解析结果,在发送数据过程,生成第一命令;
存储器,用于存储数据第一命令和/或解析结果。
请参考图2,在该图2中示出了接口组件中的缓冲模块的具体结构,即,该接口组件,即MI管理控制器负责处理NVMe MI的命令和响应。它解析来自上层应用的命令,执行相应的操作,并生成响应。该MI管理控制器还负责将命令和响应数据转换为适合MCTP协议传输的格式。
其中,Buffer即缓冲器。在该接口组件中,包括至少两个buffer缓冲管理模块,每个缓冲管理模块中包括数据存储器和计算机程序控制单元,能够独立并行的处理命令。缓冲管理模块还包括状态寄存器,用于存储计算机程序控制器控制存储器的状态。转换组件将准备好的数据,全部放入到buffer管理模块中时,设置状态寄存器通知计算机程序控制单元执行,控制单元也通过改变状态寄存器对存储器进行管理。需要响应的数据也存放在存储器中,准备好后,MCTP控制器搬运数据发送链路管理器中。两个或两个以上的buffer缓冲管理模块,互不干扰,并发的处理数据,增加了数据的处理的下效率。
对于转换组件,当接口管理器在发送数据时,将第一命令封装为第一数据报文,并触发链路组件的数据发送中断;当接口管理器在接收数据时,解析第二数据报文,得到第二命令,并将第二命令提供给接口组件。也就是说,在转换组件中可设置中断逻辑,在不同的中断被触发之后,按照对应的数据流向,实现自接口组件向链路组件的数据转换,或实现自链路组件向接口组件的数据转换。
MCTP管理控制器负责在MI管理控制器和链路管理控制器之间转换数据。它将MI管理控制器的数据包装成MCTP协议格式。解析MCTP协议的报文,将数据发送给MI管理控制器。该MCTP管理控制器负责管理数据的发送和接收,确保数据在不同组件之间正确传输。
在实际应用中,该转换组件可以设置接收管理模块和发送管理模块,由接收管理模块来进行自链路组件向接口组件的数据转换,由发送管理模块来进行自接口组件向链路组件的数据转换。
在本申请中的一种实施例中,转换组件,包括:接收管理模块,接收管理模块包括接收缓冲模块、解析模块和向上发送模块;
接收缓冲模块,用于存放第二数据报文;
解析模块,用于解析第二数据报文,得到第二命令;
向上发送模块,用于将第二命令提供给接口组件。
请参考图3,在图3中给出了转换组件中的接收管理模块的具体结构。对于接收管理模块,对应设置有接收buffer(接收缓冲模块),解析模块和向上发送模块。在从链路管理模块接收数据时,使用接收buffer存放数据,使用接收子模块对报文解析,将解析后的数据,使用upstream发送模块(向上发送模块),发送给接口组件,根据报文的信息,将单个的报文在组成一个完整的命令,交由MI管理控制器处理。
在本申请中的一种实施例中,转换组件,包括:发送管理模块,发送管理模块包括:读取模块、向下发送模块、封装模块和发送缓冲模块;
读取模块,用于从接口组件中获取第一命令,并在第一命令超过最大传输单位后,分割第一命令;
封装模块,用于将第一命令或将分割后的命令封装为第一数据报文;若命令被分割,则封装后得到若干个连续的第一数据报文;
发送缓冲模块,用于存储第一数据报文;
向下发送模块,用于将发送缓存模块中的第一数据报文发送到链路组件。
请参考图3,在图3中给出了转换组件中的发送管理模块的具体结构。对于发送管理模块,设置有发送buffer。MI管理控制器需要发送response命令时,将response命令交由MCTP管理控制器处理,由它来分割命令,封装为MCTP格式的报文,由downstream发送模块(向下发送模块),传输到链路模块。在解析和封装的过程中需要判断报文的唯一标识符序列号,每个报文由两位bit表示序列号。
对于链路组件,当接口管理器在发送数据时,在数据发送中断被触发后,将第一数据报文发送到物理传输介质中,以实现数据发送;当接口管理器在接收数据时,在接收到通过物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将第二数据报文传递给转换组件。
在本申请中的一种实施例中,链路组件,包括:缓冲模块、中断模块和数据校验模块;
数据校验模块,用于采用校验算法,对第二数据报文进行校验,对第一数据报文增加尾部校验;
中断模块,用于在底层有数据到来时,触发数据接收中断并将第二数据报文写入到转换组件;在转换组件将第一数据报文写入到缓冲模块时,触发数据发送中断并进行数据发送;
缓冲模块,用于支持转换组件写入第一数据报文。
请参考图4,图4示出了链路组件的具体结构。
链路管理控制器(链路组件)包括buffer缓冲(缓冲模块),中断逻辑(中断模块)和数据校验模块。其中,数据校验模块可以采用多种校验算法,负责接收数据的校验和发送数据时的增加尾部校验,当底层有数据到来时触发中断逻辑,写入到MCTP管理控制器,当MCTP管理控制器写入到buffer中时,触发中断逻辑发送数据,对数据添加数据校验信息。该控制器作为连接物理介质和控制器内部的桥梁,确保了数据在硬件和软件之间的高效传输。它的模块化设计允许系统适应不同的物理传输标准和环境。
这三个组件共同构成了一个完整的接口控制器,每个组件在其专业领域内执行特定的任务,同时与其他控制器紧密协作,确保整个接口的高效和可靠运行。通过这种模块化的设计,系统能够灵活地适应不同的应用场景和需求,同时简化了管理和维护工作。
即,可以根据特定的需求,可以调整某一层的控制器,而不必调整其他的控制器。例如,更换物理层的传输协议,质询要修改链路管理控制器;对更改报文的组装和分割机制,更改最大传输大小,只需要更改MCTP管理控制器;更改可以支持的buffer管理模块数量,更改MI管理控制器即可。
应用本申请实施例所提供的接口控制器,包括:接口组件、转换组件和链路组件,接口组件与本地主机中的应用相连接,链路组件与外界的物理传输介质相连接,转换组件连接接口组件和链路组件;接口控制器发送数据过程:接口组件,用于响应于本地主机的数据发送需求,生成第一命令,并将第一命令提供给转换组件;转换组件,用于将第一命令封装为第一数据报文,并触发链路组件的数据发送中断;链路组件,用于在数据发送中断被触发后,将第一数据报文发送到物理传输介质中,以实现数据发送;接口控制器接收数据过程:链路组件,用于在接收到通过物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将第二数据报文传递给转换组件;转换组件,用于解析第二数据报文,得到第二命令,并将第二命令提供给接口组件;接口组件,用于对第二命令进行解析,得到解析结果,并将解析结果反馈给本地主机中的应用。
接口控制器采用独立模块化设计,接口组件实现命令的解析和命令生成、转换组件在接口组件与链路组件之间进行数据转换,链路组件与外界的物理传输介质进行连接,可以从该物理传输介质中接收数据,和通过该物理传输介质向外界发送数据。在数据发送和数据接收过程中,各个组件独立完成相应事项处理,并反馈给下层组件或上层组件,各个组件之间相互独立,互不干扰。
技术效果:该接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据处理,处理完毕后交由上层或者下层处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
在本申请中的一种实施例中,接口管理器同时处理数据接收过程和数据发送过程,且在数据接收处理过程中,对不同命令进行并行或流水并行接收;和/或,在数据发送处理过程中,对不同命令进行并行或流水并行发送。
例如,当需要发送命令1、命令2和命令3时,在一个处理时刻,接口组件可以刚生成命令3,转换组件对命令2进行封装,链路组件向物理传输介质发送命令3对应的报文。也就是说,在发送命令时,无需等待上一个命令发送完成,各个组件在处理完当前命令发送的每一环节之后,便可对下一命令进行处理,从而使得接口控制器中的不同组件同时处理命令1、命令2和命令3这3个命令发送的各个不同环节,从而加速命令发送效率,也可以并行处理高优先级的命令发送。
相应地,当接收命令1、命令2和命令3时,在一个处理时刻,接口组件可以向本地主机中的应用反馈命令3对应的解析数据,转换组件对命令2对应的报文进行解析,得到命令2,链路组件从物理传输介质接收命令3对应的报文。也就是说,在接收命令时,无需等待上一个命令接收完成,各个组件在处理完当前命令接收的每一环节之后,便可对下一命令进行处理,从而使得接口控制器中的不同组件同时处理命令1、命令2和命令3这3个命令接收的各个不同环节,从而加速命令发送效率,也可以并行处理高优先级的命令发送。
此外,由于各个组件中都可设置缓冲器,且还可根据实际需求设置不同数量的缓冲器,因此,在进行数据发送或数据接收过程中,在同一个组件中均可同时并行处理两个或两个以上的命令接收,两个或两个以上的目录发送。可以大大提升数据通信效率。
为便于理解本申请实施例所提供的接口控制器在通信的数据接收和数据发送过程中,各个组件的具体作用,下面对数据接收过程和数据发送过程,进行举例说明:
基于接口控制器,接收数据的过程:
在链路模块中使用smbus/PCIe接收报文,报文接收到同时,触发中断模块,对接收到MI数据报文进行处理,首先对数据报文进行校验,校验通过后的报文,然后提交到MCTP管理模块中的接收buffer处理。
在MCTP管理模块的接收管理模块中,对报文进行组装,如果一个命令在Host发送时,被拆分成了多个报文,那么接收子模块对根据报文的唯一标识符和序列号组装,每一条命令对应一个buffer缓冲模块,将需要组装的报文,提交到buffer缓冲模块中。其中,接收管理模块的判断逻辑,根据MI报文的起始标志位与终止标志位,区分命令的起止,根据报文的序列号按序接收报文,收到完整的报文,并经过校验模块的校验之后,通知MI管理模块执行。
MI管理模块根据命令的类型,在对应的命令处理模块中处理buffer缓冲模块的数据,将处理完的数据交由上层应用使用。
基于接口控制器,发送数据的过程:
MI消息需要对HOST(主机)的requeset(重设)命令,发送对应的response(应答)命令,由MI管理模块中的发送管理模块产生response命令,存放在buffer缓冲模块中。通知MCTP管理模块处理。
MI管理模块根据链路管理模块中传输单元的大小,对MI管理模块中的buffer缓冲管理模块的命令进行判断,如果需要切分,从buffer缓冲模块中读取链路最大可以传输的数据量,存入MCTP管理模块中的发送缓冲中。
在MCTP管理模块的发送子模块中,根据命令的长度,判断buffer缓冲模块是否需要将命令分割为多个小报文。添加校验位,填充好命令的格式。将报文发送到链路模块的buffer缓冲中。
链路管理模块接收到报文后,触发中断模块,读取buffer缓冲中报文,在报文中添加校验字段,将数据发送到传输介质当中。
可见,可将NVMe MI控制器功能分解为三个专门的模块,即MI管理控制器、MCTP管理控制器和链路管理控制器,以实现更高效和专业化的管理。每个模块均有自己的缓冲,独立的对数据处理,处理完毕后交由上层或者下层处理。对相应的控制模块独立的升级维护和扩展。减少了不同层次之间的耦合,易于对系统的升级和维护。
若接口控制器用于一个数据密集型的应用,例如实时视频处理或高频交易系统。在这种应用中,控制器不断接收来自多个源的数据流。双Buffer缓冲模块各自独立处理入站数据流,提高了数据吞吐量和减少了延迟。多核处理机制允许同时处理多个高优先级命令,如实时分析或紧急决策。通过双Buffer缓冲模块,系统可以保证在高负载下仍然保持高效的响应能力。
每个控制器专注于特定的管理任务,例如,MI管理控制器负责一般的管理操作,MCTP管理控制器处理组件间的通信,而链路管理控制器专注于物理链路的状态和控制。这种专业化提高了管理效率和效果。由于各控制器的职责明确划分,可以对它们进行针对性的优化,从而提高整体系统性能。
此外,还可以根据不同服务器和存储环境的需求,可以灵活地选择和配置不同的管理控制器,或者在未来轻松地添加新的控制器以适应新技术。独立的控制器使得可以单独更新或升级特定模块,而不影响其他部分,这大大简化了维护和升级过程。如果某个控制器出现问题,其影响可以局限在该模块内,不会波及整个系统。由于故障隔离,整体系统的稳定性和可靠性得到提升。由于职责分明,维护人员可以更快地定位问题所在的控制器,提高维护效率。可以对每个控制器进行更为精细的监控,实时了解系统的运行状况。
相对分离的各个组件可以实现更严格的安全控制和访问管理,有助于防止安全漏洞。不同组件可以分别符合不同的行业标准和合规要求。
通过将NVMe MI控制器分为MI管理控制器、MCTP管理控制器和链路管理控制器,可以实现更高效、灵活和可靠的存储管理,有助于提高大规模服务器环境中的存储性能和维护效率。
请参考图5,图5为本申请实施例中一种通信方法中的数据发送流程图,该方法可以应用于如上述的接口控制器中,该方法包括以下步骤:
S101、利用接口组件,响应于本地主机的数据发送需求,生成第一命令,并将第一命令提供给转换组件。
当接口控制器与服务器相连接时,或内置于服务器内部的情况下,该本地主机即服务器中的主机;当接口控制器与固态硬盘相连接时,或内置于固态硬盘内部的情况下,该本地主机即固态硬盘的控制器。
在本地主机有数据发送需求的情况下,接口组件可以生成第一命令,然后将第一命令提供给转换组件。
对于接口组件如何生成第一命令,可以具体根据MI命令的相关协议来进行生成,在此不再一一赘述。
S102、利用转换组件,将第一命令封装为第一数据报文,并触发链路组件的数据发送中断。
在转换组件中,可以将第一命令封装为第一数据报文,然后出发链路组件的发送数据中断。
在本申请中的一种实施例中,利用转换组件,将第一命令封装为第一数据报文,包括:
判断第一命令是否超出最大传输单位;
如果否,则将第一命令进行独立封装,得到第一数据报文;
如果是,则分割第一命令,并对分割所得的各部分分别进行封装,得到若干个连续报文;
为若干个连续报文添加序列号,并对首个报文中添加信息开始标记,末个报文添加信息结束标记,若干个连续报文均添加有序列号;
标记和序列号添加完成后,将若干个连续报文依次确定为第一数据报文。
为便于描述,下面将上述步骤结合起来进行说明。
请参考图6,图6示出了转换组件中的发送模块的具体发送处理流程。
在MCTP(Management Component Transport Protocol)管理模块处理较大的命令或响应时,需要将这些数据分割成多个小报文进行传输。这个分割过程中涉及到SOM(Startof Message,信息开始标记)、EOM(End of Message,信息结束标记)标识的添加和序列号的分配。
具体的,MCTP管理模块会评估要发送的命令或响应的总大小。如果数据大小超过了单个报文的最大传输单位(MTU),则需要将其分割为多个小报文。对于未超过单个报文的最大传输单位,则无需进行分割,而直接将其封装为一个独立报文,从而得到第一数据报文。
对于需要分割的命令,被分割成多个部分,每个部分的大小不超过MTU。每个分割后的部分将构成一个独立的MCTP报文,但这些报文之间需要保持特定顺序和标志,以便接收方通过组合多个连续报文,解析出第一命令。
具体的,对于第一个分割出的报文,MCTP管理模块会在其头部添加SOM标识,表示这是一系列报文的开始。对于最后一个报文,模块会在其尾部添加EOM标识,表示这是该系列报文的结束。中间的报文可以不包含SOM或EOM标识。另外,每个分割所得部分所封装的报文都会被分配一个唯一的序列号。这些序列号用于保证报文在接收方可以被正确地重组,并且按照发送时的顺序进行处理。
分割并标记完毕的连续报文即第一数据报文。这些连续报文会依序被发送到目标地址。接收方的MCTP管理模块会根据SOM、EOM标识和序列号来重组原始的命令或响应数据。
在接收端的接口管理器中MCTP管理模块会收集并根据序列号顺序排列这些报文。当所有的部分都被接收,并且EOM标识被检测到时,模块就会开始重组完整的命令或响应。重组过程中,模块会验证所有部分是否都已接收并且顺序正确。
通过这个过程,MCTP管理模块能够有效地处理大型数据传输,确保即使在传输大量数据时也能保持数据的完整性和顺序性。这对于维持网络通信的可靠性和效率是非常重要的。
在本实施例中,当转换组件封装好了第一命令,得到第一数据报文之后,将触发链路组件的中断。
S103、利用链路组件,在数据发送中断被触发后,将第一数据报文发送到物理传输介质中,以实现数据发送。
在链路组件中的数据发送中断被触发之后,便可将第一数据报文发送到物理传输介质中,从而实现向接收端发送第一数据报文。
需要注意的是,当第一命令对应多个连续报文,即第一数据报文对应多个连续报文的情况下,需要依次按序进行数据报文的发送,从而保障数据报文的发送顺序,以便接收端能够按序接收和报文重组,并解析出第一命令。
接口控制器应用本申请实施例所提供的通信方法,利用所述接口组件,响应于所述本地主机的数据发送需求,生成第一命令,并将所述第一命令提供给所述转换组件;利用所述转换组件,将所述第一命令封装为第一数据报文,并触发所述链路组件的数据发送中断;利用所述链路组件,在数据发送中断被触发后,将所述第一数据报文发送到所述物理传输介质中,以实现数据发送。
由于接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据发送进行处理,处理完毕后交由下层处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
请参考图7,图7为本申请实施例中一种通信方法中的数据接收流程图,该方法可以应用于如上述的接口控制器中,该方法包括以下步骤:
S201、利用链路组件,在接收到通过物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将第二数据报文传递给转换组件。
接口控制器通过链路组件从物理传输介质中接收第二数据报文,在链路组件从物理传输介质中接收到第二报文的情况下,触发数据接收中断,从而将第二数据报文传递给转换组件。
S202、利用转换组件,解析第二数据报文,得到第二命令,并将第二命令提供给接口组件。
该转换组件中具有接收管理模块,当收到链路组件传递的第二数据报文的情况下,可以对第二数据报文进行解析,从而得到第二命令。
然后,再将该第二命令提供给接口组件。
在本申请中的一种实施例中,利用转换组件,解析第二数据报文,得到第二命令,包括:
利用转换组件,识别第二数据报文对应的第二命令;
根据第二命令与缓冲管理模块的对应关系,将第二数据报文与对应的缓冲管理模块建立对应关系;
判断第二命令是否为新命令;
若第二命令非新命令,则对第二数据报文执行非新命令的接收操作;
若第二命令为新命令,则对第二数据报文执行新命令的接收操作;
在确定接收到第二命令的全部数据报文后,对与第二命令具有对应关系的缓冲管理模块中的报文进行组装,得到第二命令。
其中,对第二数据报文执行非新命令的接收操作,包括:
读取第二数据报文的序列号,并基于序列号确定是否按序接收;
若为按序接收,则将第二数据报文添加至与第二命令具有对应关系的缓存管理模块中,并读取第二数据报文的信息结束标记,若信息结束标记对应命令的末报文,则标记第二命令对应的全部报文已接收;
若非按序接收,则停止接收目标命令对应的数据报文。
其中,对第二数据报文执行新命令的接收操作,包括:
读取第二数据报文的信息开始标记;
若信息开始标记未对应命令的首个报文,则丢弃第二数据报文;
若信息开始标记对应命令的首个报文,则读取第二数据报文的序列号,利用序列号确定是否按序接收;
若为按序接收,则将第二数据报文添加至与第二命令具有对应关系的缓存管理模块中;
若非按序接收,则丢弃第二数据报文,并停止接收第二命令对应的数据报文。
请参考图8,当MCTP管理模块接收到来自链路管理层的数据时,首先要判断是否为一个新的命令,每一个命令都对应着一个buffer缓冲管理模块。识别命令之后与对应的buffer缓冲管理模块建立联系。
其中,可以根据命令的唯一标识符确定第一命令是否为新命令。如果是新命令,那么这个报文的SOM位应该为1,否则出错,丢弃该报文。即SOM位标位1表明是连续报文中的首个报文。
对SOM的判断通过后,接下来将检查波报文的序列号是否为0。举例说明:若序列号设置为2个bit,所以序列号的排序为0、1、2、3、0、1……,如果SOM为1的报文的序列号不为0,那么这个报文出错,如果为0,说明报文的序列号无误。
在SOM和序列号都校验正确,下一步校验EOM位,如果该位为1,说明命令都接受完毕,那么表示该命令只有一个报文,将数据由upstream发送模块(向上发送模块)发送到buffer缓冲管理模块中,供给其执行命令。即EOM位为1表明是命令的最后一个报文,当命令仅有一个报文时,该报文的末尾也标记有EOM且EOM为1。
如果接收的第二数据报文属于一个已接收的命令,MCTP管理模块将校验的好的数据存储在buffer缓冲模块中。这个缓冲区会不断累积数据,直到检测到一个EOM标记,表明当前报文的结束。在接收到EOM标记之前,所有接收到的数据都被视为同一个报文的一部分。一旦检测到EOM,MCTP管理模块就会停止当前报文的缓冲。此时,整个报文被认为是完整的,可以进行解析,并通知MI管理控制器可以进行下一步的处理。
在整个接收过程中,为了确保报文的顺序和完整性。MCTP管理模块会检查每个接收到的报文的序列号,以确保报文是按正确的顺序接收的。如果序列号与预期的序列号不匹配,可能表明有报文丢失或顺序错误,此时可能需要重新传输或进行错误处理。
一旦报文被确认为完整且顺序正确,它就会解析数据,并通知MI管理控制器,MCTP管理控制器已经完成命令的传输,以便MI管理控制器将第二命令传递到更高层的应用进行进一步处理,通过这个过程,MCTP管理模块确保了数据的准确接收和有效处理,同时也保护了数据传输过程中的完整性和顺序性。
S203、利用接口组件,对第二命令进行解析,得到解析结果,并将解析结果反馈给本地主机中的应用。
接口组件接收到第二命令之后,可以对第二命令进行解析,从而得到解析结果,然后将解析结果反馈给本地主机中的应用进行处理。
接口控制器应用本申请实施例所提供的通信方法,利用所述链路组件,在接收到通过所述物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将所述第二数据报文传递给所述转换组件;利用所述转换组件,解析所述第二数据报文,得到第二命令,并将所述第二命令提供给所述接口组件;利用所述接口组件,对所述第二命令进行解析,得到解析结果,并将所述解析结果反馈给所述本地主机中的应用。
由于接口控制器采用模块化设计,每个模块负责不同的功能,每个模块独立地对数据接收进行处理,处理完毕后交由上层应用处理,减少了不同层次之间的耦合,易于对系统的升级和维护,即可以对相应模块独立的升级维护和扩展,以确保使用该接口控制器进行通信的系统的高效、可靠运行。
相应于上面的方法实施例,本申请实施例还提供了一种通信系统,下文描述的通信系统与上文描述的接口控制器、通信方法可相互对应参照。
参见图9所示,该系统包括:
服务器和若干个固态硬盘;
服务器主机端使用主板管理控制器控制若干个固态硬盘,
主板管理控制器和固态硬盘之间基于如上述实施例所提供的接口控制器进行通信。
其中,服务器中包括接口控制器;固态硬盘中包括接口控制器;
服务器中的接口控制器与固态硬盘中的接口控制器,通过总线连接。
在本申请中的一种实施例中,请参考图10,一个主板管理控制器(BMC,BaseboardManagement Controller)与一个SSD控制器进行MI报文交互的系统,SSD端的MI控制器包括四个buffer缓冲模块,每个模块对应着一条命令,能够独立的处理消息的接收,消息的回复,和消息处理。
其中,主板管理控制器为一种嵌入在计算机主板上的硬件设备,负责监控、管理和控制系统的各个方面,包括硬件健康状态、远程管理功能等。
具体的,BMC可以同时向该SSD控制发送了四条命令A、B、C和D,每个命令被分割为了五个报文,每条命令被独立的发送,通过链路管理控制器的中断和校验模块中后,存放在了MCTP管理控制器的接收管理模块中。此时,A和B两个命令的报文在接收管理模块中组成了一个先进先出的队列,在MI管理控制器中,A命令被接收了两个报文,B命令被接收了一个报文,D命令的报文全部被接收,正在处理中,C命令已经处理完毕,返回处理结果,C1报文已经到达BMC,C2、C3、C4和C5报文在传输路径上。
由此可见,通过模块化的设计,使得各个模块解耦合,实现了服务器与SSD之间,可以实现多条命令的流水作业,提高了数据在各个控制器之间的传输的效率。
相应于上面的方法实施例,本申请实施例还提供了一种计算机程序产品,下文描述的一种计算机程序产品与上文描述的一种通信方法可相互对应参照。
一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时,实现上述通信方法的步骤。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种通信方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的通信方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种接口控制器,其特征在于,包括:接口组件、转换组件和链路组件,所述接口组件与本地主机中的应用相连接,所述链路组件与外界的物理传输介质相连接,所述转换组件连接所述接口组件和所述链路组件;
所述接口控制器发送数据过程:
所述接口组件,用于响应于所述本地主机的数据发送需求,生成第一命令,并将所述第一命令提供给所述转换组件;
所述转换组件,用于将所述第一命令封装为第一数据报文,并触发所述链路组件的数据发送中断;
所述链路组件,用于在数据发送中断被触发后,将所述第一数据报文发送到所述物理传输介质中,以实现数据发送;
所述接口控制器接收数据过程:
所述链路组件,用于在接收到通过所述物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将所述第二数据报文传递给所述转换组件;
所述转换组件,用于解析所述第二数据报文,得到第二命令,并将所述第二命令提供给所述接口组件;其中,解析所述第二数据报文,得到第二命令,包括:利用所述转换组件,识别所述第二数据报文对应的所述第二命令;根据所述第二命令与缓冲管理模块的对应关系,将所述第二数据报文与对应的缓冲管理模块建立对应关系;判断所述第二命令是否为新命令;若所述第二命令非新命令,则对所述第二数据报文执行非新命令的接收操作;若所述第二命令为新命令,则对所述第二数据报文执行新命令的接收操作;在确定接收到所述第二命令的全部数据报文后,对与所述第二命令具有对应关系的缓冲管理模块中的报文进行组装,得到所述第二命令;
所述接口组件,用于对所述第二命令进行解析,得到解析结果,并将所述解析结果反馈给所述本地主机中的应用。
2.根据权利要求1所述的接口控制器,其特征在于,所述接口组件,包括:至少两个缓冲模块;
所述缓冲模块包括存储器、计算机程序控制单元和状态寄存器;
所述状态寄存器,用于存储控制状态;
所述计算机程序控制单元,用于基于所述控制状态对所述存储器进行控制;在接收数据过程中,解析所述第二命令,得到所述解析结果,在发送数据过程,生成所述第一命令;
所述存储器,用于存储数据所述第一命令和/或所述解析结果。
3.根据权利要求1所述的接口控制器,其特征在于,所述转换组件,包括:接收管理模块,所述接收管理模块包括接收缓冲模块、解析模块和向上发送模块;
所述接收缓冲模块,用于存放所述第二数据报文;
所述解析模块,用于解析所述第二数据报文,得到所述第二命令;
所述向上发送模块,用于将所述第二命令提供给所述接口组件。
4.根据权利要求3所述的接口控制器,其特征在于,所述转换组件,包括:发送管理模块,所述发送管理模块包括:读取模块、向下发送模块、封装模块和发送缓冲模块;
所述读取模块,用于从所述接口组件中获取所述第一命令,并在所述第一命令超过最大传输单位后,分割所述第一命令;
所述封装模块,用于将第一命令或将分割后的命令封装为所述第一数据报文;若命令被分割,则封装后得到若干个连续的第一数据报文;
所述发送缓冲模块,用于存储所述第一数据报文;
所述向下发送模块,用于将所述发送缓存模块中的第一数据报文发送到所述链路组件。
5.根据权利要求1所述的接口控制器,其特征在于,所述链路组件,包括:缓冲模块、中断模块和数据校验模块;
所述数据校验模块,用于采用校验算法,对所述第二数据报文进行校验,对所述第一数据报文增加尾部校验;
所述中断模块,用于在底层有数据到来时,触发数据接收中断并将所述第二数据报文写入到所述转换组件;在所述转换组件将所述第一数据报文写入到所述缓冲模块时,触发数据发送中断并进行数据发送;
所述缓冲模块,用于支持所述转换组件写入所述第一数据报文。
6.一种通信方法,其特征在于,应用于如权利要求1至5任一项所述的接口控制器,包括:
利用所述接口组件,响应于所述本地主机的数据发送需求,生成第一命令,并将所述第一命令提供给所述转换组件;
利用所述转换组件,将所述第一命令封装为第一数据报文,并触发所述链路组件的数据发送中断;
利用所述链路组件,在数据发送中断被触发后,将所述第一数据报文发送到所述物理传输介质中,以实现数据发送。
7.根据权利要求6所述的方法,其特征在于,利用所述转换组件,将所述第一命令封装为第一数据报文,包括:
判断所述第一命令是否超出最大传输单位;
如果否,则将所述第一命令进行独立封装,得到所述第一数据报文;
如果是,则分割所述第一命令,并对分割所得的各部分分别进行封装,得到若干个连续报文;
为若干个连续报文添加序列号,并对首个报文中添加信息开始标记,末个报文添加信息结束标记,若干个连续报文均添加有序列号;
标记和序列号添加完成后,将若干个连续报文依次确定为所述第一数据报文。
8.根据权利要求6或7所述的方法,其特征在于,还包括:
利用所述链路组件,在接收到通过所述物理传输介质传输的第二数据报文的情况下,触发数据接收中断,并将所述第二数据报文传递给所述转换组件;
利用所述转换组件,解析所述第二数据报文,得到第二命令,并将所述第二命令提供给所述接口组件;
利用所述接口组件,对所述第二命令进行解析,得到解析结果,并将所述解析结果反馈给所述本地主机中的应用。
9.根据权利要求8所述的方法,其特征在于,利用所述转换组件,解析所述第二数据报文,得到第二命令,包括:
利用所述转换组件,识别所述第二数据报文对应的所述第二命令;
根据所述第二命令与缓冲管理模块的对应关系,将所述第二数据报文与对应的缓冲管理模块建立对应关系;
判断所述第二命令是否为新命令;
若所述第二命令非新命令,则对所述第二数据报文执行非新命令的接收操作;
若所述第二命令为新命令,则对所述第二数据报文执行新命令的接收操作;
在确定接收到所述第二命令的全部数据报文后,对与所述第二命令具有对应关系的缓冲管理模块中的报文进行组装,得到所述第二命令。
10.根据权利要求9所述的方法,其特征在于,对所述第二数据报文执行非新命令的接收操作,包括:
读取所述第二数据报文的序列号,并基于序列号确定是否按序接收;
若为按序接收,则将所述第二数据报文添加至与所述第二命令具有对应关系的缓存管理模块中,并读取所述第二数据报文的信息结束标记,若所述信息结束标记对应命令的末报文,则标记所述第二命令对应的全部报文已接收;
若非按序接收,则停止接收所述第二命令对应的数据报文。
11.根据权利要求9所述的方法,其特征在于,对所述第二数据报文执行新命令的接收操作,包括:
读取所述第二数据报文的信息开始标记;
若所述信息开始标记未对应命令的首个报文,则丢弃所述第二数据报文;
若所述信息开始标记对应命令的首个报文,则读取所述第二数据报文的序列号,利用所述序列号确定是否按序接收;
若为按序接收,则将所述第二数据报文添加至与所述第二命令具有对应关系的缓存管理模块中;
若非按序接收,则丢弃所述第二数据报文,并停止接收所述第二命令对应的数据报文。
12.一种通信系统,其特征在于,包括:
服务器和若干个固态硬盘;
所述服务器主机端使用主板管理控制器控制若干个固态硬盘,
所述主板管理控制器和所述固态硬盘之间基于如权利要求1至5任一项所述接口控制器进行通信。
13.根据权利要求12所述的通信系统,其特征在于,所述服务器中包括所述接口控制器;所述固态硬盘中包括所述接口控制器;
所述服务器中的接口控制器与所述固态硬盘中的接口控制器,通过总线连接。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6至11任一项所述通信方法的步骤。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时,实现权利要求6至11任一项所述通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410676354.1A CN118260237B (zh) | 2024-05-29 | 2024-05-29 | 一种接口控制器、通信方法、系统、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410676354.1A CN118260237B (zh) | 2024-05-29 | 2024-05-29 | 一种接口控制器、通信方法、系统、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118260237A CN118260237A (zh) | 2024-06-28 |
CN118260237B true CN118260237B (zh) | 2024-08-16 |
Family
ID=91607174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410676354.1A Active CN118260237B (zh) | 2024-05-29 | 2024-05-29 | 一种接口控制器、通信方法、系统、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118260237B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118534828B (zh) * | 2024-07-25 | 2024-11-26 | 智维精准(北京)医疗科技有限公司 | 一种用于直线加速器的同步控制系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052113A (zh) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种通信链路层报文单粒子效应容错方法及装置 |
CN112887227A (zh) * | 2021-01-15 | 2021-06-01 | 苏州浪潮智能科技有限公司 | 一种固态硬盘中的报文接收方法、系统及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294225A (zh) * | 2015-06-29 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法、对端设备及控制器 |
CN114143853A (zh) * | 2020-09-03 | 2022-03-04 | 华为技术有限公司 | 通信链路选择方法、装置及存储介质 |
US11836100B1 (en) * | 2022-06-16 | 2023-12-05 | Dell Products L.P. | Redundant baseboard management controller (BMC) system and method |
CN116821039A (zh) * | 2023-05-25 | 2023-09-29 | 联合汽车电子有限公司 | 用于多核soc的应用通信系统、方法、设备及可读存储介质 |
CN117278890B (zh) * | 2023-11-15 | 2024-02-13 | 苏州元脑智能科技有限公司 | 光模块访问方法、装置、系统、电子设备及可读存储介质 |
-
2024
- 2024-05-29 CN CN202410676354.1A patent/CN118260237B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052113A (zh) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种通信链路层报文单粒子效应容错方法及装置 |
CN112887227A (zh) * | 2021-01-15 | 2021-06-01 | 苏州浪潮智能科技有限公司 | 一种固态硬盘中的报文接收方法、系统及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN118260237A (zh) | 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 (zh) | 一种数据转发装置和方法 | |
CN104714905A (zh) | 用于执行从第一适配器到第二适配器的失效转移操作的方法和系统 | |
CN118260237B (zh) | 一种接口控制器、通信方法、系统、存储介质及程序产品 | |
US7680944B1 (en) | Rapid transport service in a network to peripheral device servers | |
CN118200253A (zh) | 面向rdma ud传输的可靠通信方法、电子设备及可读介质 | |
KR20050083861A (ko) | 데이터 처리 시스템 | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN1317841C (zh) | 利用置换电报识别错误和避免错误的方法和节点 | |
CN116760510B (zh) | 一种消息发送方法、消息接收方法、装置和设备 | |
CN100493018C (zh) | 一种通过网络中的总线接口进行通信的方法和系统 | |
CN110928828A (zh) | 处理器间业务处理系统 | |
CN114978426B (zh) | 数据传输方法及系统 | |
US8054857B2 (en) | Task queuing methods and systems for transmitting frame information over an I/O interface | |
CN118295954B (zh) | 基于PCIe协议的处理卡的数据传输方法和通信系统 | |
CN109120628A (zh) | 打印系统千兆网通信方法、终端及系统 | |
CN112835823B (zh) | 存储控制器应答发送方法 | |
WO2024120344A1 (zh) | 一种有线串行总线数据传输方法、系统及相关装置 | |
CN117692362A (zh) | 一种网络传输数据异常节点检测方法及装置 | |
CN115460085A (zh) | 一种以太网协议加速电路及方法 | |
AU2003300885B2 (en) | Using direct memory access for performing database operations between two or more machines | |
CN117997856A (zh) | 一种用于网络消息排序的方法、系统及可编程交换机 | |
CN119652986A (zh) | 数据处理方法、网卡及主机 |
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 |