CN112887227B - 一种固态硬盘中的报文接收方法、系统及相关装置 - Google Patents
一种固态硬盘中的报文接收方法、系统及相关装置 Download PDFInfo
- Publication number
- CN112887227B CN112887227B CN202110057772.9A CN202110057772A CN112887227B CN 112887227 B CN112887227 B CN 112887227B CN 202110057772 A CN202110057772 A CN 202110057772A CN 112887227 B CN112887227 B CN 112887227B
- Authority
- CN
- China
- Prior art keywords
- message
- layer
- mctp
- data
- receiving
- 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 59
- 239000007787 solid Substances 0.000 title claims abstract description 31
- 101100076239 Drosophila melanogaster Mctp gene Proteins 0.000 claims abstract description 113
- CQIZBIFTOGBKDB-UHFFFAOYSA-N 4-cyclohexyl-1-methyl-3,6-dihydro-2h-pyridine Chemical compound C1N(C)CCC(C2CCCCC2)=C1 CQIZBIFTOGBKDB-UHFFFAOYSA-N 0.000 claims abstract description 112
- 239000000872 buffer Substances 0.000 claims abstract description 112
- 230000004044 response Effects 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 21
- 230000006854 communication Effects 0.000 claims abstract description 14
- 238000005538 encapsulation Methods 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 22
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种固态硬盘中的报文接收方法,包括:在I2C物理层接收包含报文数据的报文接收缓冲区描述符;在I2C传输层利用空闲链表接收报文接收缓冲区描述符,并对报文数据进行数据检查;若数据检查通过,将报文接收缓冲区描述符发送至MCTP层;在MCTP层中,对报文数据进行报文解析处理,并进行MCTP包封装,得到有效MCTP消息;在NVMe‑MI层中解析有效MCTP消息,并生成响应报文;其中I2C物理层、I2C传输层、MCTP层和NVMe‑MI层共用缓冲区。本申请采用带通信的缓存过程,降低对内存的占用率。本申请还提供一种固态硬盘中的报文接收系统、计算机可读存储介质和电子设备,具有上述有益效果。
Description
技术领域
本申请涉及存储设备领域,特别涉及一种固态硬盘中的报文接收方法、系统及相关装置。
背景技术
随着存储系统的不断发展,越来越多的服务器BMC的软件管理是通过管理系统总线SMBus介质进行实现SSD固态硬盘的管理,在通信协议上采用基于MCTP(ManagementComponet Transport Protocol)技术的NVMe-MI进行NVMe固态硬盘的带外管理,有效的使用远程管理应用程序来监测管理NVMe设备。NVMe-MI报文作为一种带外设备管理技术,其可扩展、高可用、可管控在SSD的广泛应用中具有较大的应用前景。
当前,数据报文在SSD中传输时,其通信过程和数据实现分离,在进行解析转发过程中,将消耗大量的内存资源,用于存储数据报文的数据内容,造成固态硬盘的存储性能下降。
发明内容
本申请的目的是提供一种固态硬盘中的报文接收方法、报文接收系统、计算机可读存储介质和电子设备,能够降低固态硬盘处理报文时对内存资源的消耗。
为解决上述技术问题,本申请提供一种固态硬盘中的报文接收方法,具体技术方案如下:
在I2C物理层接收包含报文数据的报文接收缓冲区描述符;
在I2C传输层利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;
若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
在所述MCTP层中,对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
在NVMe-MI层中解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
可选的,在I2C物理层接收包含报文数据的报文接收缓冲区描述符之后,还包括:
对所述报文接收缓冲区描述符进行初始化;所述初始化包括定义描述符大小、定义通信数据格式和分配所述报文接收缓冲区描述符对应的数据区。
可选的,还包括:
根据所述报文数据类型确定所述缓冲区大小,所述缓冲区用于执行所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层的跨层转发。
可选的,还包括:
在所述缓冲区中为所述I2C物理层、I2C传输层和所述MCTP层分别配置对应的空闲链表和使用链表;所述空闲链表用于管理所述报文接收缓冲区描述符,所述使用链表用于管理所述报文接收缓冲区描述符对应的报文发送缓冲区描述符。
可选的,若所述有效MCTP消息为数据查询请求,生成所述有效MCTP消息的响应报文时包括:
返回报文发送缓冲区描述符,所述报文发送缓冲区描述符中的报文数据为所述数据查询请求对应的查询结果。
可选的,生成所述有效MCTP消息的响应报文包括:
对所述响应报文进行拆包处理,得到若干拆解包;
对每个所述拆解包添加NVMe-MI报文头,得到响应数据包;
将所述拆解包的地址由MCTP层的响应空闲链表迁移至响应使用链表,并依次递交至所述MCTP层、所述I2C传输层、所述I2C物理层处理,生成响应报文。
可选的,还包括:
所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层均执行纠错校验;
若校验失败,对所述报文接收缓冲区描述符进行纠错。
本申请还提供一种固态硬盘中的报文接收系统,包括:
I2C物理层,用于接收包含报文数据的报文接收缓冲区描述符;
I2C传输层,用于利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
所述MCTP层,用于对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
NVMe-MI层,用于解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
本申请提供一种固态硬盘中的报文接收方法,包括:在I2C物理层接收包含报文数据的报文接收缓冲区描述符;在I2C传输层利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;在所述MCTP层中,对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;在NVMe-MI层中解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
本申请通过配置I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区,使得报文在固态硬盘中传输时,仅发生报文地址的迁移,而无需实质性转移报文数据,统一通信过程和数据内容,采用带通信的缓存过程,降低对内存的占用率。
本申请还提供一种固态硬盘中的报文接收系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种固态硬盘中的报文接收方法的流程图;
图2为本申请实施例所提供的一种固态硬盘中的报文接收和发送过程示意图;
图3为本申请实施例所提供的一种固态硬盘中的报文接收系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的目的是提供一种应用于固态硬盘的设备管理分层NVMe-MI报文解析的数据缓存的实现方法,采用不同协议层的分层解析,将通信和数据进行统一即带通信的缓存,而不是分开的方式,对统一缓存的使用上降低了不同模块间的调用和拷贝,降低了系统的内存资源消耗,高效完成服务器BMC管理单元对SSD设备信息的管理和数据的收集。
基于MCTP技术协议的NVMe-MI使用的是请求和响应处理模型即来自BMC管理系统的请求Request消息都会有对应的相应响应完成消息Response。本发明中SSD作为设备管理的客户端,用于处理来自BMC的请求报文解析及响应报文的组包发送。NVMe-MI报文的解析及响应框架充分利用接收数据缓冲区和发送数据缓冲区,实现框架内的“包级处理”、“消息跨层转发”和“消息内容处理”,完成整个NVMe-MI消息的请求报文解析及响应报文组包处理,其具体过程如下:
请参考图1,图1为本申请实施例所提供的一种固态硬盘中的报文接收方法的流程图,该方法包括:
S101:在I2C物理层接收包含报文数据的报文接收缓冲区描述符;
本步骤中,I2C物理层也指SMBus/I2C物理层,其主要用于实现报文数据物理层面的操作时序及总线定义,进行通信和数据的统一缓存分配,用于后续各层报文的解析或者组包使用,完成物理驱动层面对报文数据的接收和发送。此外,本步骤中,该报文接收缓冲区描述符中包含报文数据,该报文接收缓冲区描述符实际相当于缓冲区,其对应缓冲区地址。
此外,在本步骤的基础上,接收报文缓冲区描述符之后,还可以对所述报文接收缓冲区描述符进行初始化。例如根据报文数据类型确定缓冲区大小,缓冲区用于执行报文接收缓冲区描述符在I2C物理层、I2C传输层和MCTP层的跨层转发。该初始化过程可以包括定义描述符大小、定义通信数据格式和分配报文接收缓冲区描述符对应的数据区。本实施例中,缓冲区主要分为接收缓冲区和发送缓冲区。所谓包级处理指在每一层进行报文数据处理时需要清除上一层的标记,例如上一层的协议头等。后续报文数据在I2C传输层、I2C传输层、所述MCTP层和NVMe-MI层执行报文数据的接收过程时均利用接收缓冲区执行报文数据的地址迁移。NVMe-MI全称为NVMe Management Interface,指NVME管理层。
此外,本I2C物理层还可以定义接收缓冲区描述符,即具体采用多少数据包构成下一层的报文数据。通常可以每接收8个数据包组成报文数据。
S102:在I2C传输层利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;
I2C传输层又称为MCTP over SMBus/I2C传输层,在本层中需要预先定定义双链表结构,分别为空闲链表和使用链表。且后续I2C传输层、MCTP层和NVMe-MI层均包含自身对应的空闲链表和使用链表。双链表结构用于进行接收缓冲区和发送缓冲区的管理。即需要在缓冲区中为I2C物理层、I2C传输层和MCTP层分别配置对应的空闲链表和使用链表。而空闲链表主要用于管理报文接收缓冲区描述符,使用链表主要用于管理报文接收缓冲区描述符对应的报文发送缓冲区描述符,但实际上空闲链表和使用链表在报文数据的接收和发送方向上均有所应用。
此外,在I2C传输层中,还可以对报文数据添加I2C传输层的协议头,并对报文数据进行数据检查,即进行数据校验。在此对于具体校验方式不作限定,可以采用CRC(CyclicRedundancy Check,循环冗余校验)校验或者和校验等方式。
S103:若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
当数据校验通过后,即可将报文数据通过物理链路层发送至MCTP层。此时,删除MCTP层的空闲链表中的节点,并添加至MCTP的使用链表中,用于执行MCTP层对于报文数据的处理。
S104:在所述MCTP层中,对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
在MCTP层中,从使用链表获取节点,该节点实际源于缓冲区,即用于执行数据处理的部分内存,实质包含了报文数据在缓冲区的地址,使得MCTP层可以直接根据节点中的地址信息获取得到报文数据。在本层中,需要对报文数据进行解析处理,包括删除上一层即I2C传输层的协议头,添加MCTP层的协议头,以及对报文数据的数据检查。在解析处理执行完毕后,进行MCTP包封装,封装过程中可能会使用多个MCTP的使用链表节点,在每个使用节点完成后将删除对应的使用链表节点,添加到MCTP层的空闲链表中。当完成MCTP组装后合并为一个有效MCTP消息时,将从NVMe-MI层的空闲链表中进行删除节点,增加到NVMe-MI层的使用链表中,用于NVMe-MI层的请求报文数据处理。
S105:在NVMe-MI层中解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
最后在NVMe-MI层同样需要解析有效MCTP消息,并从NVMe-MI层的使用链表获取节点,即获取报文数据在缓冲区中地址,并进行NVMe-MI层的消息处理,由于需要进行报文数据的响应回复,从发送缓冲区中进行发送buffer的申请,若申请成功则进行正常处理,若申请发送缓冲区失败,需要将接收消息挂接到NVMe-MI层的使用链表中,进行后续的处理。
在此对于如何生成响应报文不作限定,优选的,其可以包括如下步骤:
S1051:对响应报文进行拆包处理,得到若干拆解包;
S1052:对每个拆解包添加NVMe-MI报文头,得到响应数据包;
S1053:将拆解包的地址由MCTP层的响应空闲链表迁移至响应使用链表,并依次递交至MCTP层、I2C传输层、I2C物理层处理,生成响应报文。
需要注意的是,只有响应数据包经过逐层转发最终抵达I2C物理层后,才算生成响应报文,作为最初接收的请求报文的响应回复。且在响应数据包在各层的传输过程中,同样也可以采用报文发送缓冲区描述符作为载体。
由上述报文数据的处理过程可以看出,I2C物理层、I2C传输层、MCTP层和NVMe-MI层共用缓冲区,从接收到报文数据开始,报文数据的地址存于各层共用的缓冲区中,此后每层需要对报文数据进行处理时,仅执行报文数据对应节点在各层的双链表结构之间的转移,而无需将报文数据内容进行逐层转发,大大降低了内容的占用率。
此外,报文接收缓冲区描述符在I2C物理层、I2C传输层和MCTP层均执行纠错校验,其实质为对报文数据的纠错校验。若校验失败,对报文接收缓冲区描述符进行纠错。
本申请实施例通过配置I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区,使得报文在固态硬盘中传输时,仅发生报文地址的迁移,而无需实质性转移报文数据,统一通信过程和数据内容,采用带通信的缓存过程,降低对内存的占用率。
基于上述实施例,作为优选的实施例,在报文数据抵达NVMe-MI层后,需要对报文接收缓冲区描述符中的报文数据进行响应回复,即返回报文发送缓冲区描述符,报文发送缓冲区描述符中的报文数据为数据查询请求对应的查询结果,其具体过程可以如下,下文为对报文发送缓冲区描述符在各层之间的数据传输过程:
在NVMe-MI层的处理,在发送方向,在完成响应报文的拆包处理,将每个拆解包增加NVMe-MI报文头及整个数据校验CRC的完成封装组包,将MCTP层的响应空闲链表中进行节点的申请,将其增加到响应使用链表中,完成NVMe-MI发送缓冲区的传递,递交给下层MCTP层处理。同时将NVMe-MI的接收请求使用链表中删除节点,增加到MI接收请求空闲链表中。
在MCTP层的处理,在发送方向上,在完成上层NVMe-MI层的报文响应处理后,从MCTP层的空闲链表中进行节点的申请,将其增加到使用链表中。需要注意的是,本过程中同样涉及MCTP层的空闲链表和使用链表,但为了区分接收方向和发送方向,在接收方向和发送方向可以分别采用各自的空闲链表和使用链表,即对应接收空闲链表和接收使用链表,以及发送空闲链表和发送使用链表。则此时在MCTP层从响应使用链表中进行节点的获取,将1个MCTP层响应报文拆解为一个或多个数据包—每个数据包进行MCTP报文头和整个数据校验的CRC计算封装组包递交给I2C传输层。当1个MCTP层响应报文拆解并递交到下一层后,将对应响应使用链表中节点删除,增加到响应空闲链表节点中。
在I2C传输层绑定层的处理,发送方向上,接收来自MCTP层的数据包,进行SMBus绑定层报文头及整个数据包校验码(每一层都有校验,CRC校验、和校验)的计算封装,通过底层SMBus驱动层完成报文的物理链路层发送,之后将MCTP层申请的响应请求buffer进行释放掉;
最后传至I2C物理层,可以直接将最终的报文发送缓冲区描述符中的响应报文发送至请求方,完成报文数据的接收和响应过程。
则结合上一实施例,报文数据在固态硬盘中的接收和发送过程可以参见图2,图2为本申请实施例所提供的一种固态硬盘中的报文接收和发送过程示意图,其具体过程可参见上文描述,在此不作重复说明。
下面对本申请实施例提供的一种固态硬盘中的报文接收系统进行介绍,下文描述的报文接收系统与上文描述的一种固态硬盘中的报文接收方法可相互对应参照。
参见图3,图3为本申请实施例所提供的一种固态硬盘中的报文接收系统结构示意图,本申请还提供一种固态硬盘中的报文接收系统,包括:
I2C物理层,用于接收包含报文数据的报文接收缓冲区描述符;
I2C传输层,用于利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
所述MCTP层,用于对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
NVMe-MI层,用于解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
基于上述实施例,作为优选的实施例,所述I2C物理层还用于对所述报文接收缓冲区描述符进行初始化;所述初始化包括定义描述符大小、定义通信数据格式和分配所述报文接收缓冲区描述符对应的数据区。
基于上述实施例,作为优选的实施例,所述I2C物理层还用于根据所述报文数据类型确定所述缓冲区大小,所述缓冲区用于执行所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层的跨层转发。
基于上述实施例,作为优选的实施例,所述I2C传输层还用于在所述缓冲区中为所述I2C物理层、I2C传输层和所述MCTP层分别配置对应的空闲链表和使用链表;所述空闲链表用于管理所述报文接收缓冲区描述符,所述使用链表用于管理所述报文接收缓冲区描述符对应的报文发送缓冲区描述符。
基于上述实施例,作为优选的实施例,若所述有效MCTP消息为数据查询请求,NVMe-MI层还用于返回报文发送缓冲区描述符,所述报文发送缓冲区描述符中的报文数据为所述数据查询请求对应的查询结果。
基于上述实施例,作为优选的实施例,NVMe-MI层包括:
响应报文处理模块,用于对所述响应报文进行拆包处理,得到若干拆解包;对每个所述拆解包添加NVMe-MI报文头,得到响应数据包;将所述拆解包的地址由MCTP层的响应空闲链表迁移至响应使用链表,并依次递交至所述MCTP层、所述I2C传输层、所述I2C物理层处理,生成响应报文。
基于上述实施例,作为优选的实施例,还包括:
校验模块,用于所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层均执行纠错校验;若校验失败,对所述报文接收缓冲区描述符进行纠错。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种固态硬盘中的报文接收方法,其特征在于,包括:
在I2C物理层接收包含报文数据的报文接收缓冲区描述符;
在I2C传输层利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;
若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
在所述MCTP层中,对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
在NVMe-MI层中解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
2.根据权利要求1所述的报文接收方法,其特征在于,在I2C物理层接收包含报文数据的报文接收缓冲区描述符之后,还包括:
对所述报文接收缓冲区描述符进行初始化;所述初始化包括定义描述符大小、定义通信数据格式和分配所述报文接收缓冲区描述符对应的数据区。
3.根据权利要求1所述的报文接收方法,其特征在于,还包括:
根据所述报文数据类型确定所述缓冲区大小,所述缓冲区用于执行所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层的跨层转发。
4.根据权利要求1所述的报文接收方法,其特征在于,还包括:
在所述缓冲区中为所述I2C物理层、I2C传输层和所述MCTP层分别配置对应的空闲链表和使用链表;所述空闲链表用于管理所述报文接收缓冲区描述符,所述使用链表用于管理所述报文接收缓冲区描述符对应的报文发送缓冲区描述符。
5.根据权利要求1所述的报文接收方法,其特征在于,若所述有效MCTP消息为数据查询请求,生成所述有效MCTP消息的响应报文时包括:
返回报文发送缓冲区描述符,所述报文发送缓冲区描述符中的报文数据为所述数据查询请求对应的查询结果。
6.根据权利要求1所述的报文接收方法,其特征在于,生成所述有效MCTP消息的响应报文包括:
对所述响应报文进行拆包处理,得到若干拆解包;
对每个所述拆解包添加NVMe-MI报文头,得到响应数据包;
将所述拆解包的地址由MCTP层的响应空闲链表迁移至响应使用链表,并依次递交至所述MCTP层、所述I2C传输层、所述I2C物理层处理,生成响应报文。
7.根据权利要求1-6任一项所述的报文接收方法,其特征在于,还包括:
所述报文接收缓冲区描述符在所述I2C物理层、I2C传输层和所述MCTP层均执行纠错校验;
若校验失败,对所述报文接收缓冲区描述符进行纠错。
8.一种固态硬盘中的报文接收系统,其特征在于,包括:
I2C物理层,用于接收包含报文数据的报文接收缓冲区描述符;
I2C传输层,用于利用双链表结构中的空闲链表接收所述报文接收缓冲区描述符,并对所述报文数据进行数据检查;若数据检查通过,将所述报文接收缓冲区描述符通过物理链路层发送至MCTP层;
所述MCTP层,用于对所述报文数据进行报文解析处理,并根据报文解析结果进行MCTP包封装,得到有效MCTP消息;
NVMe-MI层,用于解析所述有效MCTP消息,并生成所述有效MCTP消息的响应报文;
其中所述I2C物理层、I2C传输层、所述MCTP层和所述NVMe-MI层共用缓冲区。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的固态硬盘中的报文接收方法的步骤。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-7任一项所述的固态硬盘中的报文接收方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057772.9A CN112887227B (zh) | 2021-01-15 | 2021-01-15 | 一种固态硬盘中的报文接收方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057772.9A CN112887227B (zh) | 2021-01-15 | 2021-01-15 | 一种固态硬盘中的报文接收方法、系统及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112887227A CN112887227A (zh) | 2021-06-01 |
CN112887227B true CN112887227B (zh) | 2022-05-13 |
Family
ID=76048533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110057772.9A Active CN112887227B (zh) | 2021-01-15 | 2021-01-15 | 一种固态硬盘中的报文接收方法、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112887227B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118260237B (zh) * | 2024-05-29 | 2024-08-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种接口控制器、通信方法、系统、存储介质及程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766302A (zh) * | 2014-09-12 | 2019-05-17 | 华为技术有限公司 | 设备管理的方法和装置 |
CN111459863A (zh) * | 2020-03-08 | 2020-07-28 | 苏州浪潮智能科技有限公司 | 一种基于nvme-mi的机箱管理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014186940A1 (zh) * | 2013-05-20 | 2014-11-27 | 华为技术有限公司 | 一种硬盘和数据处理方法 |
-
2021
- 2021-01-15 CN CN202110057772.9A patent/CN112887227B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766302A (zh) * | 2014-09-12 | 2019-05-17 | 华为技术有限公司 | 设备管理的方法和装置 |
CN111459863A (zh) * | 2020-03-08 | 2020-07-28 | 苏州浪潮智能科技有限公司 | 一种基于nvme-mi的机箱管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112887227A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102681644B1 (ko) | 블록체인 메시지 처리 방법 및 장치, 컴퓨터 및 판독 가능한 저장 매체 | |
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
CN105337923B (zh) | 数据分发方法和系统及数据发送装置和数据接收装置 | |
CN109462631B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN111274252A (zh) | 一种区块链的数据上链方法、装置、存储介质和服务器 | |
CN103023857A (zh) | 一种信息资源远程部署的方法及系统 | |
CN109564502B (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
CN109117252A (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN112905615B (zh) | 一种基于顺序校验的分布式一致性协议提交方法及系统 | |
CN111510330A (zh) | 接口管理装置、方法及存储介质 | |
CN112887227B (zh) | 一种固态硬盘中的报文接收方法、系统及相关装置 | |
CN109561165A (zh) | 域名系统配置方法及相关装置 | |
EP3051426B1 (en) | Method, device, and system for accessing memory | |
CN110011984B (zh) | 一种基于rest和rpc的分布式集群系统及方法 | |
CN103282888A (zh) | 数据处理方法、图像处理器gpu及第一节点设备 | |
CN104205730B (zh) | 网元数据访问方法、虚拟网元、网络管理服务器及网络管理系统 | |
CN105573801B (zh) | 堆叠系统中实现软件升级的方法、装置及系统 | |
US8442939B2 (en) | File sharing method, computer system, and job scheduler | |
CN117369734A (zh) | 一种存储资源管理系统、方法及存储虚拟化系统 | |
CN109582242B (zh) | 级联存储阵列系统的地址确定方法、装置、电子设备 | |
JP2013543169A (ja) | ミドルウェアマシン環境を含むシステム | |
CN114584618A (zh) | 信息交互方法、装置、设备、存储介质和系统 | |
CN116383127A (zh) | 节点间通信方法、装置、电子设备及存储介质 | |
CN109005071A (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 |