一种消息传输方法及设备与流程

文档序号:16247497发布日期:2018-12-11 23:42阅读:181来源:国知局
一种消息传输方法及设备与流程
本申请涉及通信
技术领域
,尤其涉及一种消息传输方法及设备。
背景技术
目前,为了实现资源的合理利用,资源整合技术是通信技术发展的一个研究方向。例如,在云计算、分布式计算、虚拟机等方面,均会采用资源整合技术。采用资源整合技术的通信系统可以将至少一个资源设备中的硬件资源作为一个逻辑上的硬件资源池,然后并将该硬件资源池中的硬件资源按照不同应用设备的需求,分配给不同的应用设备。其中,硬件资源可以但不限于包括以下至少一项:存储资源、网络资源、视频处理资源等。另外,该应用设备和资源设备可以部署在同一台物理主机上,也可以部署在不同的物理主机上。由于在该通信系统中,硬件资源池中的硬件资源可以动态的灵活地分配给应用设备使用,因此,采用资源整合技术可以提高该通信系统中硬件资源的利用率。在应用设备和资源设备部署在不同物理主机的场景中,该应用设备需要跨物理主机实现对硬件资源的访问。这种访问方式可以称为应用设备对硬件资源的远端访问。目前,应用设备通过远端访问的方式访问资源设备中的硬件资源的流程如下:1、应用设备中的中央处理器(centralprocessingunit,cpu)a生成访问请求,并发送给所述应用设备的网卡a;2、网卡a通过交换机将访问请求发送给资源设备中的网卡b;3、网卡b将访问请求发送给资源设备中的cpub;4、cpub根据访问请求,访问本地的硬件资源;5、硬件资源将访问结果返回给cpub;6、cpub将访问结果发送给网卡b;7、网卡b通过交换机将访问结果发送应用设备中的网卡a;8、网卡a将访问结果发送给cpua。通过以上流程可以看出,应用设备对远端的硬件资源的访问需要远端的资源设备中的cpub参与,这不仅消耗了cpub的处理能力,也增加了应用设备对硬件资源的访问延迟。技术实现要素:本申请提供一种消息传输方法及设备,用于在一个通信设备访问位于另一个通信设备内的硬件设备时,节省该硬件设备所在通信设备中处理器的计算资源,降低通信设备对位于其他通信设备中的硬件设备的访问延迟。第一方面,本申请提供了一种消息传输方法,该方法适用于图1a所示的包含多个通信设备的通信系统,其中每个通信设备中包含处理器、访问组件和至少一个硬件设备。本方法中涉及的第一通信设备为通信系统的任一通信设备。第一通信设备的虚拟硬件设备由至少一个硬件设备组成。所述方法包括以下步骤:第一通信设备的第一访问组件获取所述第一通信设备的处理器传输的消息后,判断该消息的传输对象;在第一访问组件确定传输对象为第二通信设备中的目标硬件设备时,将消息中包含的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址,以及将消息中包含的虚拟硬件设备的存储地址转换为该目标硬件设备的存储地址;然后,第一访问组件向第二通信设备中的第二访问组件发送该消息。通过该方法,当第二访问组件收到该消息后,就可以不通过第二通信设备内的处理器进行操作,即可直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该方法可以节省第二通信设备中的处理器的计算资源,也可以降低第一通信设备对位于其他通信设备的硬件设备的访问延迟。在一种可能的实现方式中,第一访问组件和第二访问组件通过网络通信;在该情况下,第一访问组件可以通过网络报文的形式向第二访问组件发送该消息,即第一访问组件将该消息封装在第一报文中发送给第二访问组件。通过该方式,第一访问组件可以成功地通过网络将消息发送给第二访问组件。在另一种可能的实现方式中,第一访问组件和第二访问组件的表现形式相同,均可以为fpga、cpld、asic、soc中任一种表现形式或多种表现形式的结合。这样,通过该方式可以提高通信设备中访问组件的表现形式的灵活性。在又一种可能的实现方式中,第一访问组件可以通过以下方式,确定消息的传输对象为该目标硬件设备:第一访问组件获取存储的资源配置信息,该资源配置信息中包含组成虚拟硬件设备的每个硬件设备对应的存储地址范围;所述第一访问组件判断该消息中包含的虚拟硬件设备的存储地址所在的存储地址范围,然后在资源配置信息中确定该存储地址范围对应的硬件设备即为目标硬件设备。通过该方式,第一访问组件可以准确地确定消息的传输对象。在又一种可能的实现方式中,第一访问组件可以生成记录处理器的内存的存储地址与指示该目标硬件设备的存储地址的第一映射表,然后通过该第一映射表将消息中包含的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址。该方式可以提高第一访问组件处理器的内存的存储地址的转换效率。另外,后续第一访问组件在收到包含的该目标硬件设备的存储地址的消息后,也可以继续利用该第一映射表,将指示该目标硬件设备的存储地址转换为处理器的内存的存储地址,从而也可以提高第一访问组件对指示该目标硬件设备的存储地址的转换效率。在又一个可能的实现方式中,第一访问组件可以通过以下步骤,生成第一映射表:第一访问组件确定该目标硬件设备的指示信息。例如,在该资源配置信息中包含每个硬件设备的描述信息与对应的存储地址范围的情况下,第一访问组件在确定消息的传输对象时即可确定该目标硬件设备的描述信息,然后第一访问组件根据该目标硬件设备的描述信息,确定该目标硬件设备的指示信息。然后,第一访问组件将目标硬件设备的指示信息添加至处理器的内存的存储地址中,得到指示该目标硬件设备的存储地址;最终,生成该第一映射表。通过该方式,第一访问组件可以准确地得到指示该目标硬件设备的存储地址,以及并生成第一映射表。在又一个可能的实现方式中,目标硬件设备的指示信息包括:目标硬件设备的标识,和/或,第二通信设备中该目标硬件设备所连接的单板的标识。通过该设计,可以使第二访问组件在收到该消息时,可以根据目标硬件设备的指示信息,准确地确定该消息的传输对象。在又一个可能的实现方式中,消息中处理器的内存的存储地址所在地址字段中存在空闲位域时,目标硬件设备的指示信息可以占用全部或部分空闲位域。该方式可以避免增加消息的传输开销,提高地址字段的比特资源利用率。在又一个可能的实现方式中,第一通信设备中的处理器的功能虚拟化为多个功能时,第一访问组件可以在生成指示该目标硬件设备的存储地址时,将处理器传输该消息时使用的功能的标识添加到处理器的内存的存储地址中。通过该方式,第一访问组件还可以将处理器使用的功能的标识添加到消息中。在又一个可能的实现方式中,当虚拟硬件设备只由目标硬件设备一个组成的情况下,若该目标硬件设备为第一通信设备提供全部硬件资源时,目标硬件设备的存储地址与虚拟硬件设备的存储地址相同;若该该目标硬件设备为第一通信设备提供部分硬件资源时,目标硬件设备的存储地址=虚拟硬件设备的存储地址+目标硬件设备对应的偏移位置。其中,目标硬件设备对应的偏移位置为:目标硬件设备为第一通信设备提供的硬件资源起始存储位置,该目标硬件设备对应的偏移位置可以从资源配置信息中获取。通过该方式,第一访问组件可以根据虚拟硬件设备中硬件资源的实际配置情况,准确地确定目标硬件设备的存储地址。在又一个可能的实现方式中,当虚拟硬件设备由多个硬件设备组成时,所述第一访问组件可以根据第二映射表,将虚拟硬件设备的存储地址转换为目标硬件设备的存储地址,其中,第二映射表用于描述:虚拟硬件设备的存储地址与目标硬件设备的存储地址之间的映射关系。其中,第二映射表是根据该资源配置信息中规定的每个硬件设备为第一通信设备提供的硬件资源大小,以及每个硬件设备为第一通信设备提供硬件资源的先后顺序生成的。当目标硬件设备为第一通信设备提供全部硬件资源时,第二映射表可以指示以下映射关系:目标硬件设备的存储地址=虚拟硬件设备的存储地址-在目标硬件设备前为第一通信设备提供硬件资源的硬件设备提供的硬件资源大小之和。当目标硬件设备为第一通信设备提供部分硬件资源时,第二映射表可以指示以下映射关系:目标硬件设备的存储地址=虚拟硬件设备的存储地址-在目标硬件设备前为第一通信设备提供硬件资源的硬件设备提供的硬件资源大小之和+目标硬件设备对应的偏移位置。通过该方式,第一访问组件可以根据虚拟硬件设备中硬件资源的实际配置情况,准确地确定目标硬件设备的存储地址。在又一个实现方式中,消息为写请求消息,该情况下,在第一访问组件向第二访问组件发送该消息之后还包括以下步骤:第一访问组件接收第二访问组件发送的第二报文;然后,根据第一映射表,将第二报文中的指示目标硬件设备的存储地址转换为处理器的内存的存储地址,并读取处理器的内存的存储地址指示的存储位置中的目标数据;最后向第二访问组件发送第三报文,该第三报文中包含目标数据、指示目标硬件设备的存储地址和目标硬件设备的存储地址。通过该方式,第一访问组件可以将待写入的目标数据发送给第二访问组件,从而写入目标硬件设备,实现写操作。在又一个实现方式中,消息为读请求消息,该情况下,在第一访问组件向第二访问组件发送该消息之后还包括以下步骤:第一访问组件接收第二访问组件发送的第四报文;然后,根据第一映射表,将第三报文中指示目标硬件设备的存储地址转换为处理器的内存的存储地址;最后将第四报文中的携带的目标数据存储在处理器的内存的存储地址指示的存储位置中。通过该方式,第一访问组件可以将从目标硬件设备读取的目标数据写入到处理器的内存中,实现读操作。第二方面,本申请提供了一种消息传输方法,该方法适用于包含多个通信设备的通信系统,其中每个通信设备中包含处理器、访问组件和至少一个硬件设备。本方法中涉及的第二通信设备为通信系统的任一通信设备。所述方法包括以下步骤:第二通信设备的第二访问组件接收第一通信设备中的第一访问组件发送的消息后,根据该消息中指示目标硬件设备的存储地址,确定该目标硬件设备;然后,第二访问组件向该目标硬件设备传输包含指示目标硬件设备的存储地址和目标硬件设备的存储地址的第一消息,以使目标硬件设备可以根据第一消息中的两个存储地址读取或写入所述目标数据。通过该方法,第二访问组件收到该消息,不通过第二通信设备内的处理器进行操作,即可直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该方法可以节省第二通信设备中的处理器的计算资源,也可以降低第一通信设备对位于其他通信设备的硬件设备的访问延迟。在一种可能的实现方式中,第二访问组件和第一访问组件通过网络通信;在该情况下,第一访问组件可以通过网络报文的形式向第二访问组件发送该消息,即第一访问组件将该消息封装在第一报文中发送给第二访问组件,第二访问组件通过解封装获取第一报文中的该消息。通过该方式,第一访问组件可以成功地通过网络将消息发送给第二访问组件。在另一种可能的实现方式中,第一访问组件和第二访问组件的表现形式相同,均可以为fpga、cpld、asic、soc中任一种表现形式或多种表现形式的结合。这样,通过该方式可以提高通信设备中访问组件的表现形式的灵活性。在又一种可能的实现方式中,第一消息为写请求消息;第二访问组件向目标硬件设备发送第一消息之后还包括以下步骤:第二访问组件接收目标硬件设备发送的第二消息,然后将该第二消息封装为第二报文发送给第一访问组件;其中,该第二消息用于请求读取存储在第一通信设备的处理器内存中的目标数据,包含指示目标硬件设备的存储地址和目标硬件设备的存储地址;然后,第二访问组件接收第一访问组件发送的第三报文,该第三报文中包含该目标数据,以及指示目标硬件设备的存储地址和目标硬件设备的存储地址;所述第二访问组件根据第三报文中指示目标硬件设备的存储地址,确定该目标硬件设备,并将目标数据存储到目标硬件设备的存储地址指示的存储位置。通过该方式,第二访问组件可以将待写入的目标数据存储到目标硬件设备,实现写操作。在又一种可能的实现方式中,第一消息为读请求消息;第二访问组件向目标硬件设备发送第一消息之后还包括以下步骤:第二访问组件接收目标硬件设备发送的第三消息,然后将该第三消息封装为第四报文发送给第一访问组件;其中,该第三消息用于请求将目标数据存储到处理器内存中,第三消息中包含目标数据,以及指示目标硬件设备的存储地址,该目标数据是目标硬件设备从目标硬件设备的存储地址指示的存储位置读取的;这样,第一访问组件在收到该第四报文后,可以将指示目标硬件设备的存储地址转换为处理器的内存的存储地址,进而将该目标数据存储到处理器的内存中,实现读操作。第三方面,本申请还提供了一种第一访问组件,该第一访问组件应用于第一通信设备,第一通信设备为通信系统中任意一个通信设备,通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备。第一访问组件包括执行第一方面或第一方面任一种可能实现方式中的消息传输方法的各个模块。第四方面,本申请还提供了一种第二访问组件,该第二访问组件应用于第二通信设备,第二通信设备为通信系统中任意一个通信设备,通信系统中包括多个通信设备,每个通信设备包括处理器、访问组件和硬件设备。第二访问组件包括用于执行第二方面或第二方面任一种可能实现方式中的消息传输方法的各个模块。第五方面,本申请还提供了一种通信设备,该通信设备包括处理器、访问组件和硬件设备,其中,访问组件用于实现各方面提供的方法。第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。附图说明图1a为本申请实施例提供的一种通信系统的架构图;图1b为本申请实施例提供的一种空间访问示意图;图2为本申请实施例提供的一种消息传输方法的流程图;图3为本申请实施例提供的另一种消息传输方法的流程图;图4为本申请实施例提供的一种访问组件的结构示意图;图5为本申请实施例提供的一种通信设备的结构示意图。具体实施方式为便于本领域技术人员理解本申请实施例,首先,对本申请中的部分用语进行解释说明:1)、通信系统,由多个通信设备组成。通信系统中的通信设备,又可以称为主机(host),是具有独立计算能力,且能够与其他设备互相访问的计算机,包含处理器、访问组件和硬件设备等部件。其中,硬件设备用于提供硬件资源。本申请实施例涉及的通信系统采用了资源整合方式,在通信系统中的资源管理设备(可以为通信设备)可以将多个通信设备中的硬件设备整合为硬件资源池。然后,资源管理设备再按照每个通信设备的硬件资源需求,动态地将硬件资源池中的硬件设备提供的硬件资源分配给相应的通信设备。因此,在该通信系统中,为目标通信设备提供硬件资源的至少一个硬件设备可能位于同一通信设备,也可能位于不同的通信设备。为了便于区分和描述,在本申请实施例中,通信系统中使用硬件资源池中硬件设备的通信设备可以称为应用设备,提供硬件资源池中硬件设备的通信设备可以称为资源设备。同一个通信设备既可以为应用设备,也可以为资源设备。2)、处理器,作为通信设备内的控制中心,是通信设备中的核心配件。处理器可以利用各种接口和线路连接通信设备中的其他部件,通过运行操作系统对通信设备内的其他部件进行控制管理,以完成该通信设备的各种功能。3)、访问组件,为通信设备内的专用硬件部件,用于实现通信设备内和通信设备之间的硬件资源访问。由于访问组件可以实现通信设备之间的硬件资源访问,因此,访问组件具有网络通信的功能。可选地,访问组件可以为:现场可编程门阵列(field-programmablegatearray,fpga)、复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、专用集成电路(applicationspecificintergratedcircuits,asic),或片上系统(systemonachip,soc)等一些可编程的芯片。访问组件可以通过多种外设接口分别与通信设备内的访问组件、硬件设备连接。可选地,外设接口可以为扩展外围组件互连(peripheralcomponentinterconnect,pci)接口,或者扩展外围组件互连高速(peripheralcomponentinterconnectexpress,pcie)接口等,本申请对此不作限定。该访问组件通过外设接口可以实现处理器和硬件设备之间消息的透传。消息的透传,即消息在传输过程中访问组件只对消息中包含的存储地址进行转换,而不对消息的其他内容(例如消息中包含的其他数据、消息的类型等)进行改变;换句话说,处理器生成消息与硬件设备最终接收的消息之间的差别,以及硬件设备生成的消息与处理器最终接收的消息之间的差别,仅在于包含的存储地址不同。4)、硬件设备,用于提供硬件资源。具体的,根据硬件设备能够提供的硬件资源的种类的不同,该硬件设备的设备类型也不同。例如,当硬件设备提供的硬件资源为存储资源时,该硬件设备可以为硬盘,例如固态硬盘(solidstatedriver,ssd)、机械硬盘,混合硬盘等。又例如,当硬件设备提供的硬件资源为网络传输资源时,该硬件设备可以为网卡(networkinterfacecard,nic)。再例如,当硬件设备提供的硬件资源为视频处理资源时,该硬件设备可以为图形处理器(graphicsprocessingunit,gpu)。再例如,当硬件设备提供的硬件资源为声音处理资源时,该硬件设备可以为声卡、音频电路等。5)、虚拟硬件设备,是指将图1a所示系统中至少一个同种类型的可用硬件设备组成硬件资源池,该硬件资源池中包括一个或多个虚拟硬件设备,每个虚拟硬件设备由至少一个硬件设备组成。例如,通信系统中的资源管理设备将通信设备1的ssd1和通信设备2的ssd1组成一个虚拟ssd盘,并将该虚拟ssd盘分配给通信设备1使用,其中,该虚拟ssd盘的容量为两个ssd盘容量之和。值得说明的是,多个硬件设备如何组成硬件资源池,以及虚拟化硬件设备分配方式的具体实现方案本申请不作限制。除了将图1a所示系统中至少一个可用的同类型的硬件设备组成一个虚拟逻辑设备,将该虚拟逻辑设备分配给一个通信设备外,也可以将所有可用的同类型的硬件设备组成一个或多个逻辑硬件设备,然后,在按照预置规则将每个逻辑硬件设备切分为多个子逻辑硬件设备,每个子逻辑硬件设备可以称为一个虚拟硬件设备。例如,当前系统中可用ssd设备为通信设备1的ssd1、通信设备2的ssd1和通信设备3的ssd1,将上述三个ssd组成一个逻辑ssd,然后,按照预置规则将该逻辑ssd切分为2个子逻辑ssd,每个子逻辑ssd称为一个虚拟ssd,可以分配给一个通信设备使用。6)、消息,在处理器和组成虚拟硬件设备的某个硬件设备之间传输,用于实现处理器期望虚拟硬件设备执行的读写操作。具体的,消息可以包括执行操作前的请求消息、执行操作过程中的数据执行消息、操作执行完成后的响应消息等,本申请对此不作限定。其中,当处理器需要对虚拟硬件设备执行读操作时,请求消息为:读请求消息;数据执行消息为:该硬件设备发送的携带目标数据的数据存储请求,和该处理器存储目标数据到内存后返回的数据存储响应;响应消息为:该硬件设备接收到数据存储响应确认处理器读取到目标数据后发送的读响应消息。当处理器需要对虚拟硬件设备执行写操作时,请求消息为:写请求消息;数据执行消息为:该硬件设备发送的数据读取请求,和该处理器返回的携带目标数据的数据读取响应;响应消息为:该硬件设备成功存储该目标数据后发送的写响应消息。通过以上对访问组件的描述可知,处理器和硬件设备之间未直接相连,而是通过访问组件连接的。因此,消息的传输包括两个过程:过程一、处理器和该处理器所在的通信设备中的访问组件之间的消息传输;过程二:该处理器所在的通信设备中的访问组件与该硬件设备之间的消息传输。可选地,在过程一中传输的消息中可以包含:指示目标数据在虚拟硬件设备中的存储位置的第一地址,和用于指示目标数据在该处理器的内存中的存储位置的第二地址。例如,当该消息为写请求消息时,该目标数据为该处理器待写入的数据。该第一地址为该目标数据写入该虚拟硬件设备的起始地址;该第二地址为该目标数据存储在该存储器的内存中的起始地址。又例如,当该消息为读请求消息时,该目标数据为该处理器待读取的数据。该第一地址为该目标数据存储在该虚拟硬件设备中的起始地址;该第二地址为该目标数据写入该处理器的内存中的起始地址。另外,由于分配给通信设备的虚拟硬件设备为为该通信设备提供硬件资源的总和(至少一个硬件设备中每个硬件设备分别提供给该通信设备的硬件资源的总和),因此,第一地址(即该虚拟硬件设备的存储地址)的取值范围为:0—(该至少一个硬件设备中每个硬件设备分别提供的给该通信设备的硬件资源的总和-1)。例如,通信系统中的资源管理设备为通信设备1分配硬件资源时,将硬件资源池中位于通信设备2中的硬件设备a中的2tb硬件资源,以及位于通信设备3中的硬件设备b中的6tb硬件资源分配给该通信设备1。通信设备1发送的请求消息中包含的虚拟硬件设备的存储地址的取值范围应该为0tb—(8tb-1)。可选地,在过程二中传输的消息中可以包含:用于指示该硬件设备的的第三地址,和用于指示目标数据在该硬件设备中的存储位置的第四地址。该第三地址可以使该处理器所在的通信设备中的访问组件可以准确的将消息发送给该硬件设备。可选地,该第三地址中包含该硬件设备的指示信息。该第四地址可以使该硬件设备接收到该消息后,完成相应的操作。例如,当该消息为写请求消息时,该第四地址为目标数据写入该硬件设备的起始地址。又例如,当该消息为读请求消息时,该第四地址为目标数据存储在该硬件设备中的起始地址。需要说明的是,该第四地址(即该硬件设备的存储地址)的取值范围为:0—(该硬件设备的提供的硬件资源-1)。7)、资源配置信息,为通信系统中的资源管理设备在为通信设备分配硬件资源时生成,并发送给该通信设备的访问组件。通信设备的资源配置信息用于表示该通信设备(的虚拟硬件设备)的硬件资源的配置情况。由于分配给该通信设备的硬件资源是由分配给其的至少一个硬件设备提供的,因此,该资源配置信息包含:该至少一个硬件设备中每个硬件设备在该虚拟硬件设备内的存储地址范围。可选的,通信系统中的资源管理设备可以保存所有通信设备的资源配置信息。可选的,当所述至少一个硬件设备中任一个硬件设备为该通信设备提供的硬件资源是该硬件设备中的部分硬件资源,该资源配置信息中还包含:该硬件设备对应的偏移位置(该硬件设备为该通信设备提供的硬件资源起始存储位置)。例如,当通信系统中的资源管理设备将硬件设备1和硬件设备2中的所有硬件资源分配给某通信设备,每个硬件设备有4tb的硬件资源,那么该通信设备的虚拟硬件设备提供的硬件资源为8tb。该资源配置信息中包含:硬件设备1在该虚拟硬件设备内的存储地址范围0tb—(4tb-1),硬件设备2在该虚拟硬件设备内的存储地址范围4tb—(8tb-1)。又例如,当通信系统中的资源管理设备将硬件设备1中的2t的硬件资源(1tb—(3tb-1)),和硬件设备2中的所有硬件资源分配给某通信设备,其中,每个硬件设备有4tb的硬件资源,那么该通信设备的虚拟硬件设备提供的硬件资源为6tb。该资源配置信息中包含:硬件设备1在该虚拟硬件设备内的存储地址范围0tb—(2tb-1),硬件设备2在该虚拟硬件设备内的存储地址范围2tb—(6tb-1),以及硬件设备1对应的偏移位置1tb。可选地,资源配置信息中还可以包括硬件设备2对应的偏移位置0tb。需要说明的是,本申请中所涉及的多个,是指两个或两个以上。下面结合附图对本申请实施例做进行具体说明。图1a示出了本申请实施例提供的消息传输方法适用的一种可能的通信系统的架构,参阅图1a所示,在通信系统中,包括多个通信设备(如图中所示的通信设备a、通信设备b和通信设备c),和资源管理设备。其中,每个通信设备中均包含处理器、访问组件以及至少一个硬件设备。硬件设备可以包括ssd、中央处理器(centralprocessunit,cpu)、gpu、nic中至少一种。由于该通信系统采用了资源整合方式,因此,该通信系统中的资源管理设备可以将该通信系统中的各个通信设备中的具有同一设备类型的硬件设备(即硬件资源)进行资源整合,生成硬件资源池。例如,资源管理设备可以将所有通信设备中的ssd资源整合为一个ssd资源池,或者将所有通信设备中的nic资源整合为一个nic资源池。当某个通信设备请求分配硬件资源时,资源管理设备在该硬件资源池中拆分出满足该通信设备的硬件资源需求的硬件资源,并将拆分出的硬件资源作为一个虚拟硬件设备分配给该通信设备。资源管理设备在将该虚拟硬件设备分配给该通信设备后,还将该通信设备的资源配置信息发送给该通信设备。其中,资源管理设备可以为多个通信设备中的任一个,也可以为该通信系统中具有控制管理功能的、独立于通信设备的其他设备。资源管理设备为一目标通信设备分配的硬件资源,可以由至少一个硬件设备中的部分或全部硬件资源组成。其中,该至少一个硬件设备可以位于同一个通信设备,也可以位于不同的通信设备,本申请对此不作限定。另外,该至少一个硬件设备中可以包含位于该目标通信设备内的硬件设备,也可以不包含位于该目标通信设备内的硬件设备,本申请对此也不作限定。本申请实施例的以下描述中,以通信设备a为应用主机,通信设备a、通信设备b、通信设备c为资源主机,以硬件设备为ssd为例进行进一步详细描述。例如,资源管理设备为通信设备a分配硬件资源时,将通信设备a中的ssda_1、通信设备b中的ssdb_1,以及通信设备c中的ssdc_1中的全部硬件资源作为虚拟ssd分配给通信设备a。资源管理设备在为通信设备a分配硬件资源后,生成通信设备a的资源配置信息,并将通信设备a的资源配置信息发送给该通信设备a,该通信设备a中的访问组件a保存该资源配置信息。该访问组件a可以根据该资源配置信息向处理器a发送通知,使处理器a确定资源管理设备已经为通信设备a分配的虚拟硬件设备的设备类型(ssd)、提供的硬件资源大小等信息。处理器a会接收到运行的业务应用发送的请求消息,该请求消息可以为读请求消息,也可以为写请求消息。处理器a将该请求消息传输给访问组件a,该访问组件a可以根据该资源配置信息,判断该请求消息的传输对象具体属于组成该虚拟ssd中哪个ssd。具体包括以下几个场景:场景一:当访问组件a接收的请求消息的传输对象与处理器a位于同一通信设备(例如,请求消息的传输对象为ssda_1)时,该访问组件a可以直接将该请求消息发送给该ssda_1,以使该ssda_1执行该操作。场景二:当访问组件a接收的请求消息的传输对象与处理器a位于不同通信设备(例如,请求消息的传输对象为通信设备b中的ssdb_1)时,该访问组件a将该请求消息发送给该通信设备b中的访问组件b。该通信设备b中的访问组件b在收到该请求消息后,再将该请求消息发送给该ssdb_1,以使该ssdb_1执行该操作。需要说明的是,在每个通信设备的内部的访问组件与处理器之间,以及访问组件与每个ssd之间均通过外设接口连接,以进行部件之间的通信。可选地,该外设接口可以为pcie接口,那么在每个通信设备内部的访问组件中均包含pcie端点(endpoint)和pcie根端口(rootport),如图所示。其中,pcie端点,用于连接处理器,在处理器和访问组件之间建立传输通道。pcie根端口,用于连接通信设备内的每个ssd,在访问组件和每个ssd之间建立传输通道。另外,在应用设备和资源设备为不同的通信设备时(如场景二中的描述),为了实现应用设备中的访问组件可以与位于资源设备中的硬件设备之间进行消息传输,通信系统中的应用设备和资源设备之间存在通信连接,即应用设备和资源设备中的访问组件之间存在通信连接。例如,如图1a中所示,通信设备a中的访问组件a与通信设备b中的访问组件b、以及与通信设备c中的访问组件c之间通过通信接口连接。由于每个通信设备均可以作为资源设备为其他应用设备提供硬件设备,也可以作为应用设备由其他通信设备为其提供硬件设备,因此,可选地,通信系统中任意两个通信设备中的访问组件之间可以通过通信接口连接。例如,如图1a中所示,通信设备b中的访问组件b与通信设备c中的访问组件c之间通过通信接口连接。可以理解的是,两个访问组件之间可以通过直连通信,也可以通过网络通信,本申请对此不作限定。当访问组件之间通过网络通信时,网络中可以包含各种网络转发设备(例如,交换机、路由器等)。根据访问组件之间的连接方式的不同,二者之间在通信时采用的通信协议也不同。因此,访问组件在发送消息时,还需要按照约定的通信协议,将消息封装为报文。访问组件接收到报文后,也需要按照约定的通信协议,将报文解封装为消息。例如,当访问组件之间通过网络通信时,二者之间可以采用以太网协议、传输控制协议/网络协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)等通信协议。图1b示出了在通信设备内部的处理器和访问组件之间,以及访问组件与硬件设备之间通过pcie接口实现连接的情况下,通信设备中的空间访问示意图。在pcie结构中,访问组件和硬件设备均称为pcie设备。其中,每个pcie设备中均配置两类空间:配置空间和基址寄存器(baseaddressregister,bar)空间。pcie设备的配置空间就是一系列寄存器的集合,这些寄存器中保存了该pcie的设备类型、该pcie设备其他基本信息(设备标识、厂家信息,版本号等),以及bar空间的基址。pcie设备的bar空间也是寄存器空间,寄存器包含了该pcie设备能够管理的队列的基址,以及该队列的指针等信息。如图1b所示,访问组件是处理器的一个endpoint,处理器可以通过pcie结构中的根复合体(rootcomplex,rc),访问访问组件的配置空间。处理器可以通过访问组件的配置空间,配置访问组件的bar空间的基址,并实现对访问组件的bar空间的配置和访问。访问组件可以自主访问硬件设备的配置空间,并将其映射到访问组件的bar空间内,这样,访问组件可以通过对自身的bar空间的访问,间接实现对硬件设备的配置空间的访问。在访问组件间接访问硬件设备的配置空间,可以配置硬件设备的bar空间的基址,从而实现对硬件设备的bar空间的配置和访问。当通信系统中的资源管理设备为该一个通信设备(继续以通信设备a为例)分配虚拟硬件设备后,访问组件a生成一个配置空间,该配置空间中包含该虚拟硬件设备的设备类型,以及其他基本信息。这样,处理器a可以通过rc访问访问组件a的配置空间,识别虚拟硬件设备的设备类型以及其他基本信息,从而根据这些信息生成用于实现某些操作的请求消息。可选地,所述rc可以集成在处理器a内部,也可以是独立于处理器a的硬件,本申请对此不作限定。此外,在处理器a与访问组件a进行消息传输的过程中,也均需要该rc实现。例如,当处理器a需要向访问组件a传输消息时,需要将消息存储到处理器a的内存中,然后通过rc将消息写入到访问组件a中;当访问组件a需要从访问组件a读取消息时,也需要通过rc将消息读取到处理器a的内存中,然后处理器a再从内存中读取消息。访问组件a与通信设备a中的任一个硬件设备(以硬件设备a_1为例),进行消息传输的过程中,也需要访问组件a具有rc的功能,以及需要访问组件a的内存参与实现,具体过程与处理器a与访问组件a进行消息传输的过程类似,此处不再赘述。另外,在消息传输中,若处理器a和访问组件a之间通过队列存储的方式传输消息(例如,请求消息、响应消息等)(即将消息保存到处理器a的内存的队列中),则需要处理器a频繁访问访问组件a的bar空间,以使访问组件a确定处理器a的内存中的队列的基址,进而使访问组件a可以从该队列中读取消息,或者将消息写入该队列。类似的,若访问组件a和硬件设备a_1之间通过队列存储的方式传输消息(例如,请求消息、响应消息等)(即将消息保存到处理器a的内存的队列中),则需要访问组件a频繁访问硬件设备a_1的bar空间,以使硬件设备a确定访问组件a的内存中队列的基址,进而使硬件设备a_1可以从该队列中读取消息,或者将消息写入该队列。本申请实施例提供了一种消息传输方法,该方法适用于如图1a所示的通信系统中。本申请实施例的以下描述中,继续以通信设备a为应用主机,通信设备a、通信设备b、通信设备c为资源主机,以硬件设备为ssd为例进行进一步详细描述。通过以上描述可知,通信系统中的资源管理设备将所有通信设备中的ssd整合为ssd资源池,然后将ssd资源池中通信设备a中的ssda_1、通信设备b中的ssdb_1,以及通信设备c中的ssdc_1中的全部硬件资源作为虚拟ssd分配给通信设备a,并将通信设备a的资源配置信息发送给通信设备a中的访问组件a。处理器a通过rc访问访问组件a的配置空间,识别该虚拟ssd的设备类型,提供的硬件资源大小等信息。下面参阅图2,对该方法的流程进行介绍。如图2中所示,该方法的流程包括:s201:通信设备a中的处理器a在需要虚拟ssd执行一操作(读操作或写操作)时,向访问组件a传输该操作对应的请求消息;访问组件a获取处理器a传输的请求消息。该请求消息中包含第一地址和第二地址。其中,第一地址用于指示目标数据在虚拟ssd中的存储位置,换句话说,第一地址为虚拟ssd的存储地址。第二地址用于指示目标数据在处理器a的内存中的存储位置,换句话说,第二地址为处理器a的内存的存储地址。在执行s201时,处理器a可以通过与访问组件a之间的外设接口,并按照该外设接口对应的传输方式,向访问组件a传输请求消息。请求消息的传输方式可以但不限于以下两种方式:方式一:处理器a向访问组件a发送请求消息。方式二:在处理器a和访问组件a之间采用pcie接口的情况下,通过以下步骤传输请求消息:处理器a将请求消息存储在处理器a的内存中,具体可以利用队列存储请求消息(为了便于区分,该队列后续可以称为第一命令队列);然后处理器a通知访问组件a读取请求消息;访问组件a从处理器a获取读取请求消息的通知后,从第一命令队列中读取请求消息。其中,通信设备a中的pcie接口结合非易失性存储规范(non-volatilememoryexpress,nvme)时,第一命令队列可以为存储在处理器a的内存中的提交队列(submissionqueue,sq)。可选地,在上述方式二中,处理器a可以通过以下步骤通知访问组件a读取请求消息:处理器a在将请求消息存储在第一命令队列后,更新第一命令队列的写指针位置,并将更新后的第一命令队列的写指针位置发送给访问组件a。这样,访问组件a从处理器a接收更新后的第一命令队列的写指针位置后,可以根据更新后的第一命令队列的写指针位置,从第一命令队列中读取请求消息。需要说明的是,在命令队列是按照消息的先后顺序存储的,且存储有消息的相邻两个位置之间不存在空闲位置。命令队列的写指针位置为该命令队列中首个空闲位置,因此,访问组件a可以通过该命令队列的写指针位置是否变化,确定该命令队列中是否存入新的消息,且还可以根据更新后的该命令队列的写指针位置,确定新存入的消息的在该命令队列中的位置,从而准确地读取到新存入该命令队列的消息。s202:访问组件a确定第一地址指示的存储位置属于其他通信设备的目标ssd(例如,通信设备b中的ssdb_1),即当前满足场景二。可选地,访问组件a可以通过以下方法,确定目标ssd:访问组件a根据存储的资源配置信息和第一地址,确定请求消息的传输对象为通信设备b中的ssdb_1,资源配置信息包含至少一个ssd中每个ssd对应的存储地址范围。在本实施例中,该资源配置信息包含:组成该虚拟ssd的3个ssd中每个ssd对应的存储地址范围。访问组件a在执行s202时,首先确定第一地址所在的存储地址范围,然后确定该存储地址范围所对应的ssd即为请求消息的传输对象。例如,虚拟ssd的总存储地址范围为0tb—12tb-1,且3个ssd按照ssda_1、ssdb_1、ssdc_1的先后顺序,为通信设备a提供硬件资源。资源配置信息如下表1所示:表1ssd的描述信息存储地址范围ssda_10tb—4tb-1ssdb_14tb—8tb-1ssdc_18tb—12tb-1当第一地址为5tb时,访问组件a可以确定第一地址所在的存储地址范围为4tb—8tb-1,然后访问组件a可以将存储地址范围4tb—8tb-1所对应的ssdb_1作为请求消息的传输对象。可选地,资源配置信息中还包含组成该虚拟ssd的3个ssd中每个ssd的描述信息,例如ssd的标识、ssd所在的设备的标识、ssd的编号、ssd连接的单板的标识等。访问组件a可以通过ssdb_1的描述信息,确定ssdb_1位于通信设备b中,这样访问组件a后续就可以将请求消息准确地发送给通信设备b中的访问组件b。另外,访问组件a还可以根据通过ssdb_1的描述信息,生成ssdb_1的指示信息,以便后续可以添加到请求消息中。这样在通信设备b中存在多个ssd的情况下,通信设备b可以根据收到的请求消息中的ssdb_1的指示信息,将请求消息准确地传输给ssdb_1。通过以上描述可知,ssdb_1的指示信息,用于通信设备b能够准确地确定ssdb_1。因此,ssdb_1的指示信息可以但不限于包括以下至少一项:ssdb_1的标识、ssdb_1连接的单板的标识。s203:访问组件a根据第一映射表,将请求消息中的第二地址转换为第三地址,第三地址用于指示ssdb_1,第一映射表用于记录第二地址与第三地址之间的映射关系。其中,第一映射表可以是访问组件a中预先存储的,或者是访问组件a在执行s203之前生成的。具体的,访问组件a可以通过以下步骤,生成第一映射表:访问组件a确定ssdb_1的指示信息;访问组件a将ssdb_1的指示信息添加至第二地址中,得到第三地址;访问组件a根据第二地址和第三地址生成第一映射表。目前,各种消息中为存储地址预留的地址字段为第一比特(bit),而一般情况下,存储地址实际所需的第二比特小于第一比特。为了避免在请求消息中添加ssdb_1的指示信息,会导致增加请求消息占用的比特长度,从而增加了传输请求消息的传输开销,且为了提高地址字段的比特资源利用率,本申请实施例提供了上述方式生成第三地址:访问组件a将ssdb_1的指示信息,添加到第二地址所在的地址字段中的空闲的位域中,从而得到第三地址。例如,请求消息中为存储地址预留的地址字段为64bit,而第二地址实际只占用48bit,那么地址字段中还有16bit的位域空闲。访问组件a可以占用该16bit中的全部或部分位域,放置ssdb_1的指示信息。此外,在功能虚拟化场景中,处理器a的功能通过虚拟化可以划分多个功能包括:至少一个物理功能(physicalfunction,pf)和至少一个虚拟功能(virtualfunction,vf)。请求消息可以为处理器a在使用某个功能时发送的。为了标识该处理器a发送该请求消息时使用的功能,请求消息中还可以包含该功能(虚拟功能或物理功能)的标识。同样的,为了避免增加请求消息占用的比特长度,也为了提高存储地址的地址字段的比特资源利用率,在本申请实施例中,访问组件a在得到第三地址时,还可以将功能的标识添加到第二地址所在的地址字段中的空闲的位域中,从而得到既包含ssdb_1的指示信息、又包含功能的标识的第三地址。可选地,继续以地址字段中还有16bit的位域空闲为例进行说明,在访问组件a占用该16bit中的部分位域放置ssdb_1的指示信息的情况下,访问组件a也可以占用该16bit中剩下的部分或全部位域,放置功能的标识。在一个示例中,访问组件a在请求消息中添加ssdb_1的指示信息和处理器a使用的功能的标识。在该情况下,在64bit的地址字段中各项信息所占的位域如表2所示,地址字段中所有信息构成第三地址。表2[63:60][59:56][55:48][47:0]ssdb_1连接的单板的标识ssdb_1的标识(物理或虚拟)功能的标识第二地址s204:访问组件a根据第一地址,确定第四地址。其中,第四地址用于指示目标数据在ssdb_1中的存储位置。第四地址又可以称为ssdb_1的存储地址。若虚拟ssd由1个ssd(ssdb_1)组成时,虚拟ssd提供的硬件资源大小与该ssdb_1的提供的硬件资源大小相同,因此,第四地址与该第一地址相同。但是由于在本申请实施例中,虚拟ssd由3个ssd组成,那么虚拟ssd提供的硬件资源大小与每个ssd提供的硬件资源大小不同。因此,ssdb_1有可能无法识别请求消息中的虚拟硬件资源的存储地址。例如,ssdb_1能够提供4tb的硬件资源,那么该ssd可以识别取值为0tb—4tb-1的存储地址,通过表1可知,当访问组件a确定请求消息的操作对象为ssdb_1时,请求消息中虚拟ssd的存储地址范围为4tb—8tb-1。显然,ssdb_1在获取到请求消息,可能会因为无法识别请求消息中的虚拟ssd的存储地址,导致ssdb_1无法成功执行请求消息对应的操作。为了使ssdb_1能够成功执行请求消息对应的操作,访问组件a还需要根据请求消息中的第一地址,确定第四地址:访问组件a根据第二映射表,将第一地址转换为第四地址,第二映射表用于描述:指示虚拟ssd的存储位置的地址与指示ssdb_1的存储位置的地址之间的映射关系。其中,第二映射表可以是预先存储的,也可以是访问组件a在生成第四地址时生成的。需要说明的是,第二映射表是根据该资源配置信息中规定的每个ssd为通信设备a提供的硬件资源大小,以及每个ssd为通信设备a提供硬件资源的先后顺序生成的。第二映射表可以指示以下映射关系:第四地址=第一地址-在目标ssd前为通信设备a提供硬件资源的ssd提供的硬件资源大小之和。还需要说明的是,若目标ssd为首个ssd提供硬件资源的ssd时,通过上述映射关系可知,第四地址与第一地址相同。例如,继续以表1为例,当第一地址为5tb时,访问组件a可以以下第二映射表:第四地址=第一地址-4tb(ssda_1提供的硬件资源大小),从而得到第四地址为1tb。应当理解的是,当目标ssd提供为通信设备a提供的自身的部分硬件资源时,该资源配置信息中还包含该目标ssd对应的偏移位置,那么第二映射表指示的映射关系为:第四地址=第一地址-在目标ssd前为通信设备a提供硬件资源的ssd提供的硬件资源大小之和+目标ssd对应的偏移位置。s205:访问组件a向通信设备b的访问组件b发送第一报文,第一报文中包含第三地址和第四地址,以使访问组件b根据第三地址和第四地址执行操作指令对应的操作(读取或写入目标数据)。访问组件b接收访问组件a发送的第一报文。在通信系统中,由于不同通信设备的访问组件之间采用约定的通信协议进行通信,因此,访问组件a向访问组件b发送包含第三地址和第四地址的请求消息时,需要按照通信协议,将请求消息进行封装为第一报文。当访问组件b接收到第一报文后,也需要按照通信协议,对第一报文进行解封装,从而得到请求消息。在一个实现方式中,当访问组件a和访问组件b之间通过以太网协议进行通信时,访问组件a在发送请求消息之前,需要对请求消息添加以太网帧头,将请求消息封装为以太网报文,其中,以太网帧头的格式如表3所示:表3目的mac地址源mac地址帧类型预留字段其中,目的mac地址为通信设备b的mac地址,源mac地址为通信设备a的mac地址。s206:访问组件b确定第三地址指示的ssdb_1。由于第三地址中包含ssdb_1的指示信息,因此,访问组件b可以根据第三地址中的ssdb_1的指示信息,确定ssdb_1。还需要说明的是,访问组件b确定ssdb_1后,可以生成包含通信设备a的标识、ssdb_1的标识,和第三地址的对应关系。这样,当访问组件在获取到ssdb_1传输的数据执行消息或响应消息后,可以ssdb_1的标识,和数据执行消息或响应消息中的第三地址,确定这些消息的传输对象为通信设备a。其中,通信设备a的标识可以为通信设备a的mac地址等唯一标识该通信设备a的信息。s207:访问组件b向ssdb_1传输请求消息,以使ssdb_1根据第三地址和第四地址读取或写入目标数据。ssdb_1获取访问组件b传输的请求消息。由于通信系统中的每个通信设备内的访问组件和ssd之间通过外设接口连接。因此访问组件在执行s207时,可以通过该外设接口,并按照该外设接口对应的传输方式,向ssdb_1传输请求消息。其中,请求消息的传输方式可以但不限于以下方式:方式一:访问组件b向ssdb_1发送请求消息。方式二:在访问组件b和ssdb_1之间采用pcie接口的情况下,通过以下步骤传输请求消息:访问组件b将请求消息存储在访问组件b的内存中,具体可以利用队列存储请求消息(为了便于区分,该队列后续可以称为第二命令队列)中,并通知ssdb_1读取操作指令;ssdb_1从访问组件b获取读取请求消息的通知后,从第二命令队列中读取操作指令。其中,通信设备b中的pcie接口结合nvme时,第二命令队列可以为存储在访问组件b的内存中的sq。在上述方式二中,访问组件b可以通过以下步骤通知ssdb_1读取操作指令:访问组件b从在将请求消息存储在第二命令队列后,更新第二命令队列的写指针位置,并将更新后的第二命令队列的写指针位置发送给ssdb_1。ssdb_1从访问组件b接收更新后的第二命令队列的写指针位置后,可以根据更新后的第二命令队列的写指针位置,从第二命令队列中读取操作指令。在s207之后,ssdb_1获取到请求消息,然后ssdb_1执行请求消息对应的操作。由于请求消息可以为读请求消息或者写请求消息,根据请求消息的种类,ssdb_1执行的操作也不同。当请求消息为写请求消息时,通信设备a和通信设备b通过s208a-s215a实现写操作;当请求消息为写请求消息时,通过设备a和通信设备b通过s208b-s215b实现读操作。其中,s208a-s215a中的数据读取请求、数据读取响应为实现写操作中产生的数据执行消息;s208b-s215b中的数据存储请求、数据存储响应为实现读操作中产生的数据执行消息。s208a:ssdb_1向访问组件b发送数据读取请求,用于请求读取存储在处理器内存中的目标数据。其中,数据读取请求中包含第三地址和第四地址。s209a:访问组件b根据通信设备a的标识、ssdb_1的标识,和第三地址的对应关系,确定数据读取请求的传输对象为通信设备a;访问组件b向访问组件a发送第二报文。其中,第二报文是访问组件b按照通信协议对数据读取请求封装得到的,第二报文中也包含第三地址和第四地址。访问组件a接收访问组件b发送的第二报文后,将第二报文进行解封装,得到数据读取请求。s210a:访问组件a对数据读取请求进行地址转换:根据第一映射表,将数据读取请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。然后,访问组件a通过步骤s211a和s212a,读取存储在第二地址指示的存储位置中的目标数据。s211a:访问组件a将数据存储请求发送给处理器a。这样,处理器a可以根据第二地址,读取目标数据。s212a:处理器a向访问组件a发送数据读取响应,其中,数据读取响应中包含目标数据、第一地址和第二地址。s213a:访问组件a对数据读取响应进行地址转换:根据第一映射表,将数据读取请求中的第二地址转换为第三地址,以及根据第一地址确定第四地址。具体描述可以参见s203-s204中的描述,此处不再赘述。s214a:访问组件a向访问组件b发送第三报文。第三报文是访问组件a按照通信协议对数据读取响应封装得到的,第三报文中包含目标数据、第三地址和第四地址。访问组件b接收第三报文后,确定第三地址指示的ssdb_1,并通过s215a,将目标数据存储到ssdb_1中的第四地址指示的存储位置。s215a:访问组件b向ssdb_1发送数据读取响应。ssdb_1在收到数据读取响应后,将数据读取响应中的目标数据存储到第四地址指示的存储位置中。通过上述s208a-s215a,ssdb_1可以将待写入的目标数据,准确地写入ssdb_1中。s208b:ssdb_1向访问组件b发送数据存储请求,用于请求将目标数据存储到处理器内存中。其中,数据存储请求中包含目标数据、第三地址和第四地址。ssdb_1在收到读请求消息后,从第四地址指示的存储位置中读取目标数据。s209b:访问组件b根据通信设备a的标识、ssdb_1的标识,和第三地址的对应关系,确定数据存储请求的传输对象为通信设备a;访问组件b向访问组件a发送第四报文。其中,第四报文是访问组件b按照通信协议对数据读取请求封装得到的,第四报文中也包含目标数据、第三地址和第四地址。访问组件a接收访问组件b发送的第四报文后,将第四报文进行解封装,得到数据存储请求。s210b:访问组件a对数据存储请求进行地址转换:根据第一映射表,将数据存储请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。然后,访问组件a通过步骤s211b,将目标数据存储到第二地址指示的存储位置中。s211b:访问组件a将数据存储请求发送给处理器a。这样,处理器a可以将目标数据存储到第二地址指示的存储位置。s212b:处理器a向访问组件a发送数据存储响应,其中,数据存储响应用于通知目标数据成功存储到处理器a的内存中。数据存储响应中包含第一地址和第二地址。s213b:访问组件a对数据存储响应进行地址转换:根据第一映射表,将数据读取请求中的第二地址转换为第三地址,以及根据第一地址确定第四地址。具体描述可以参见s203-s204中的描述,此处不再赘述。s214b:访问组件a向访问组件b发送第五报文。第五报文是访问组件a按照通信协议对数据存储响应封装得到的,第五报文中包含第三地址和第四地址。访问组件b接收第五报文后,确定第三地址指示的ssdb_1。s215b:访问组件b向ssdb_1发送数据存储响应。ssdb_1在收到数据存储响应后,可以确定目标数据成功存储到处理器a的内存中。通过上述s208a-s215a,ssdb_1可以将待读取的目标数据,准确地存储到处理器a的内存中。需要说明的是,在s208b-s215b和s208a-s215a中,在处理器a与访问组件a之间,和在访问组件b与ssd之间传输数据执行消息时,可以采用直接发送的方式,而不需要通过队列存储的方式传输。当ssdb_1通过上述步骤执行写操作或读操作之后,还可以通过以下步骤s216-s219向通信设备a中的处理器a发送响应消息,通知处理器a读操作或写操作完成。s216:ssdb_1向访问组件b传输响应消息,用于通知处理器a成功读取或写入目标数据。其中,响应消息中包含第三地址和第四地址。其中,当请求消息为写请求消息时,响应消息为写响应消息;当请求消息为读请求消息时,响应消息为读响应消息。需要注意的是,ssdb_1也需要按照外设接口对应的传输方式,向访问组件b传输响应消息。响应消息的传输方式可以但不限于以下两种方式:方式一:ssdb_1向访问组件b发送响应消息。方式二:在ssdb_1和访问组件b之间采用pcie接口的情况下,ssdb_1可以通过以下步骤传输响应消息:ssdb_1将响应消息存储在访问组件b的内存中,具体可以利用队列存储(为了便于区分,后续可以称为第一响应队列)中,并通知访问组件b读取响应消息。其中,当通信设备b中的pcie接口结合nvme时,第一响应队列可以为存储在访问组件b的内存中的完成队列(completionqueue,cq)。可选地,在上述方式二中,ssdb_1可以通过以下步骤通知访问组件b读取响应消息:ssdb_1在将响应消息存储在第一响应队列中后,向访问组件b发起中断(例如msi-x中断)。访问组件b可以根据该中断,从第一响应队列中读取响应消息。s217:访问组件b根据通信设备a的标识、ssdb_1的标识,和第三地址的对应关系,确定响应消息的传输对象为通信设备a;访问组件b向访问组件a发送第六报文。其中,第六报文是访问组件b按照通信协议对响应消息封装得到的,第六报文中也包含第三地址和第四地址。访问组件a接收访问组件b发送的第六报文后,将第六报文进行解封装,得到响应消息。s218:访问组件a对响应消息进行地址转换:根据第一映射表,将数据存储请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。转换后,响应消息中包含第一地址和第二地址。s219:访问组件a将响应消息传输给处理器a。这样,处理器a可以根据响应消息,确定成功读取或写入目标数据,ssdb_1成功完成请求消息对应的操作。与s216类似的,访问组件a也需要按照外设接口对应的传输方式,向处理器a传输响应消息。响应消息的传输方式可以但不限于以下两种方式:方式一:访问组件a向处理器a发送响应消息。方式二:在访问组件a和处理器a之间采用pcie接口的情况下,访问组件a可以通过以下步骤传输响应消息:访问组件a将响应消息存储在处理器a的内存中,具体可以利用队列存储(为了便于区分,后续可以称为第二响应队列)中,并通知处理器a读取响应消息。其中,当通信设备a中的pcie接口结合nvme时,第二响应队列可以为存储在处理器a的内存中的cq。可选地,在上述方式二中,访问组件a可以通过以下步骤通知处理器a读取响应消息:访问组件a在将响应消息存储在第二响应队列中后,向处理器a发起中断(例如msi-x中断)。处理器a可以根据该中断,从第二响应队列中读取响应消息。采用本申请实施例提供的消息传输方法,通信系统中的通信设备a中的访问组件a在确定需要向通信设备b中的ssdb_1传输消息时,可以将消息中的虚拟ssd的存储地址转换为该ssdb_1的存储地址,并将消息中的处理器的内存的存储地址转换为指示该ssdb_1的存储地址。这样,当通信设备b中的访问组件b在收到该消息后,就可以根据指示的该ssdb_1的存储地址,确定该消息的向该ssdb_1传输,从而使该ssdb_1根据该ssdb_1是存储地址、指示该ssdb_1的存储地址,完成读取或写入目标数据的操作。由于访问组件b可以不通过通信设备b中的处理器b,即可完成处理器a对ssdb_1的访问,因此,该方案可以节省通信设备b中处理器b的计算资源,也可以降低通信设备a对位于其他通信设备的ssd的访问延迟。还需要说明的是,若所述访问组件a确定请求消息的传输对象为通信设备a本地的ssd(例如ssda_1),即当前满足上述场景一,则所述通信设备a可以按照图3所示的消息传输方法的流程,进行消息传输。相对于图2所示的消息传输方法的流程而言,不同的是:在该流程中无需在访问组件a和访问组件b之间传输各个报文的步骤;原由访问组件b执行的步骤现由访问组件a执行;目标ssd由ssdb_1改为ssda_1。因此,该流程中的各步骤的描述可以参见图2所示的实施例中相应步骤的描述,此处不再赘述。上文中结合图1a至图3,详细描述了本申请实施例所提供的消息传输方法,下面将结合图4,描述本申请实施例所提供的访问组件。图4为本申请实施例提供的一种访问组件400的结构示意图。其中,访问组件400应用于通信设备中,用于实现图2或图3所示的消息传输方法,具有通信设备a中的访问组件a的功能,或通信设备b中的访问组件b的功能。如图所示,访问组件400包括:通信单元401和处理单元402。在一个实现方式中,在访问组件400具有通信设备a中的访问组件a的功能的情况下:通信单元401,用于获取通信设备a的处理器a传输的消息;其中,消息中包含第一地址和第二地址,第一地址用于指示目标数据在虚拟硬件设备中的存储位置,第二地址用于指示目标数据在处理器的内存中的存储位置,虚拟硬件设备由至少一个硬件设备组成;处理单元402,用于当确定第一地址指示的存储位置属于通信设备b的目标硬件设备时,根据第一映射表,将消息中的第二地址转换为第三地址,第三地址用于指示目标硬件设备,第一映射表用于记录第二地址与目标硬件设备的指示信息之间的映射关系;和根据第一地址,确定第四地址,第四地址用于指示目标数据在目标硬件设备中的存储位置;通信单元401,还用于:向通信设备b的访问组件b发送第一报文,第一报文中包含第三地址和第四地址,以使第二访问组件根据第三地址和第四地址读取或写入目标数据。在一个实现方式中,在访问组件400具有通信设备b中的访问组件b的功能的情况下:通信单元401,用于接收通信设备a中的访问组件a发送的第一报文;其中,第一报文中包含第三地址和第四地址,第三地址用于指示属于第二通信设备的目标硬件设备,第四地址用于指示目标数据在目标硬件设备的中的存储位置;处理单元402,用于确定第三地址指示的目标硬件设备;通信单元402,还用于向目标硬件设备传输包含第三地址和第四地址的第一消息,以使目标硬件设备根据第三地址和第四地址读取或写入目标数据。可选地,访问组件400既具有上述访问组件a的功能,又具有上述访问组件b的功能。可选地,通信单元401可以包含通信端口和通信接口。其中,通信端口用于实现访问组件400与访问组件400所在的通信设备内部其他部件的通信。通信接口用于实现访问组件400与其他通信设备的访问组件之间的通信。应理解的是,本申请实施例访问组件400所在的通信设备可以对应图1a所示的通信系统中的任一通信设备。本申请实施例的访问组件400可以通过专用集成电路(application-specificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal),或片上系统(systemonachip,soc)或其任意组合。另外,访问组件400也可以通过软件实现图2或图3所示的方法,此时,访问组件400及其各个单元也可以为软件模块。根据本申请实施例的访问组件400可对应于执行本申请实施例中描述的方法,并且该访问组件400中的各个单元的上述和其它操作和/或功能分别为了实现图2或图3中的各个方法的相应流程,为了简洁,在此不再赘述。本申请实施例提供了一种访问组件,在该访问组件所在的通信设备为应用设备时,该访问组件在确定需要向在向其他资源设备中的目标硬件设备传输消息时,可以将消息中的虚拟硬件设备的存储地址转换为该目标硬件设备的存储地址,并将消息中的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址。这样,当在资源设备中的访问组件收到该消息后,就可以不通过该资源设备内的处理器进行操作,而是直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该访问组件可以节省资源设备中的处理器的计算资源,也可以降低应用设备对位于其他通信设备的硬件设备的访问延迟。在该访问组件所在的通信设备为资源设备时,该访问组件在接收到其他访问组件传输的消息后,直接根据指示目标硬件设备的存储地址,确定该消息的向该目标硬件设备传输,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该访问组件可以节省资源设备中的处理器的计算资源,也可以降低应用设备对位于其他通信设备的硬件设备的访问延迟。本申请还提供了一种通信设备,该通信设备可以对应图1a所示的通信系统中的任一通信设备,参阅图5所示,该通信设备500中包含:处理器501、访问组件502、至少一个硬件设备503,以及总线504。其中,处理器501、访问组件502,以及至少一个硬件设备503通过总线504连接。访问组件502用于实现图2或图3所示的消息传输方法,具有通信设备a中的访问组件a的功能,和/或,通信设备b中的访问组件b的功能。所述访问组件502中包含通信接口,用于实现与其他通信设备的通信。上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solidstatedrive,ssd)。本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行图2或图3所示的消息传输方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1