1.一种基于非易失内存接口-远程处理消息传递NVMe-over-RPMsg的通信方法,用于在异构多核系统级芯片上虚拟化远程存储系统,其特征在于,所述NVMe-over- RPMsg 包括:来宾操作系统和远程操作系统,所述通信方法包括:使所述来宾操作系统识别所述远程操作系统为NVMe-over-RPMsg的目的端;在所述来宾操作系统上通过定制的非易失内存接口驱动器,将所述NVMe-over RPMsg目的端封装成非易失内存接口固态硬盘NVMe SSD,其中所述来宾操作系统包括所述NVMe-over-RPMsg的前端;将从所述来宾操作系统发送的非易失内存接口命令发送到所述NVMe-over-RPMsg的目的端的仿真NVMe SSD控制器;使所述NVMe-over-RPMsg的前端和所述NVMe-over-RPMsg的目的端通过远程处理消息传递RPMsg 通道相互通信,所述NVMe-over-RPMsg的前端包括:定制的非易失内存接口驱动器和本地RPMsg 驱动器,所述RPMsg通道通过如下步骤建立:在所述来宾操作系统启动后加载所述本地RPMsg驱动器;所述本地RPMsg驱动器创建抽象的 RPMsg设备并注册相应的所述RPMsg通道创建的回调函数;挂起所述本地RPMsg驱动器,直到从所述远程操作系统收到名称服务通知;所述来宾操作系统向所述远程操作系统发送名称服务确认消息,以建立所述RPMsg通道。
2.根据权利要求1所述的通信方法,其特征在于,所述本地RPMsg驱动器枚举半虚拟化总线RPMsg-Virtio-Bus上的所述NVMe-over-RPMsg目的端,并提供对所述定制的非易失内存接口驱动器的访问接口。
3.根据权利要求1所述的通信方法,其特征在于,所述定制的非易失内存接口驱动器解析输入/输出I/O请求并将所述I/O请求转换为所述非易失内存接口命令。
4.根据权利要求1所述的通信方法,其特征在于,将从所述来宾操作系统发送的非易失内存接口命令发送到所述NVMe-over-RPMsg的目的端的仿真NVMe SSD控制器包括:接收所述来宾操作系统发送的核间中断,调用所述回调函数;使所述仿真NVMe SSD控制器处理RPMsg数据包;利用非易失内存接口协议解析器处理从所述来宾操作系统接收到的非易失内存接口命令;使用户空间非易失内存接口驱动器通过导入所述非易失内存接口协议解析器提供的源地址、目的地址和数据大小,在固态硬盘上实现读/写操作。
5.根据权利要求4所述的通信方法,其特征在于,所述RPMsg数据包包括以下两种类型,并配置为:对于第一类型,根据所述RPMsg数据包的内容修改所述仿真NVMe SSD控制器的寄存器;和对于第二类型,缓存所述非易失内存接口命令并将所述非易失内存接口命令传递给所述非易失内存接口协议解析器。
6.一种基于非易失内存接口-远程处理消息传递NVMe-over-RPMsg的通信装置,用于在异构多核系统级芯片上虚拟化远程存储系统,其特征在于,所述通信装置包括:来宾操作系统和远程操作系统,所述远程操作系统被所述来宾操作系统识别为NVMe-over- RPMsg目的端;定制的非易失内存接口驱动器,用于在所述来宾操作系统上将所述NVMe-over-RPMsg目的端封装成NVMe SSD,其中所述来宾操作系统包括所述NVMe-over-RPMsg的前端;仿真NVMe SSD控制器,用于使所述NVMe-over-RPMsg的目的端处理从所述来宾操作系统收到的非易失内存接口命令,其中所述NVMe-over-RPMsg的目的端在所述远程操作系统上实现;RPMsg通道,用于使所述NVMe-over-RPMSg的前端和所述NVMe-over-RPMsg的目的端相互通信,所述NVMe-over-RPMsg的前端包括所述定制的非易失内存接口驱动器和本地 RPMsg驱动器,所述RPMsg通道通过如下步骤建立:在所述来宾操作系统启动后加载所述本地RPMsg驱动器;所述本地RPMsg驱动器创建抽象的 RPMsg设备并注册相应的所述RPMsg通道创建的回调函数;挂起所述本地RPMsg驱动器,直到从所述远程操作系统收到名称服务通知;所述来宾操作系统向所述远程操作系统发送名称服务确认消息,以建立所述RPMsg通道。
7.根据权利要求6所述的通信装置,其特征在于,所述NVMe-over-RPMsg的前端还包括:所述本地RPMsg驱动器枚举半虚拟化总线RPMsg-Virtio-Bus上的所述NVMe-over-RPMsg目的端,并提供对定制的非易失内存接口驱动器的访问接口;以及所述定制的非易失内存接口驱动器解析输入/输出I/O请求并将所述I/O请求转换为所述非易失内存接口命令。
8.根据权利要求6所述的通信装置,其特征在于,所述通信装置还包括:非易失内存接口协议解析器,用于处理从所述来宾操作系统模块接收到的 非易失内存接口 命令;用户空间非易失内存接口驱动,用于导入所述非易失内存接口协议解析器提供的源地址、目的地址和数据大小,在SSD上实现读/写操作。
9.根据权利要求6所述的通信装置,其特征在于,所述仿真NVMe SSD控制器被配置为:接收所述来宾操作系统发送的核间中断,调用回调函数;使所述仿真NVMe SSD控制器处理RPMsg数据包;利用所述非易失内存接口协议解析器处理从所述来宾操作系统接收到的非易失内存接口命令;使用户空间非易失内存接口驱动通过导入所述非易失内存接口协议解析器提供的源地址、目的地址和数据大小,在SSD上实现读/写操作,其中所述RPMsg数据包包括以下二者,并配置为:对于第一类型,根据所述RPMsg数据包的内容修改所述仿真NVMe SSD控制器的寄存器;和对于第二类型,缓存所述非易失内存接口命令并将其传递给所述非易失内存接口协议解析器。
10.一种设备,该设备包括处理器和存储器,其特征在于,所述处理器被配置为执行如权利要求1-5任一项所述的方法。
11.根据权利要求10所述的设备,其特征在于,所述设备为芯片。