一种实现设备共享的方法和装置的制造方法

文档序号:8395843阅读:243来源:国知局
一种实现设备共享的方法和装置的制造方法
【技术领域】
[0001] 本发明涉及异构系统技术领域,尤其涉及一种实现设备共享的方法和装置。
【背景技术】
[0002] 随着云计算技术的发展,具有海量数据处理需求的大数据时代已到来,为了满足 应用的并行化和多样化趋势,以及相应工业界对降低能耗的迫切渴望,异构系统成为新的 研究热点。
[0003] 其中,异构系统是指,将包括不同处理器的两个系统通过各种方式互联而得到的 系统。例如,其中一个系统包括X86处理器,另一个系统包括ARM处理器。异构系统中的每 个系统除了包括处理器外,还包括各自独立的内存和外部设备。由于异构系统具有计算能 力强,硬件资源丰富且耦合紧密的特点,因此,当使用异构系统执行不同特征的应用时,能 够充分发挥其硬件的优势,从而能有效降低异构系统能耗,提高效能比。例如,有两个计算 任务,并且,两个计算任务之间交互比较多,其中一个计算任务较为复杂(必须放在X86处 理器上运行),另外一个计算任务较为简单(可以放在X86处理器上运行,也可以放在ARM处 理器上运行),如果没有异构系统,就需要两个X86处理器才能完成,如果有了异构系统,可 以使用X86+ARM处理器的异构系统,将复杂的计算任务放在X86处理器上运行,简单的任务 放在ARM处理器上运行。而由于ARM处理器的功耗要比X86处理器低很多,因此,使用异构 系统有效降低异构系统能耗,提高效能比。
[0004] 随着PCIExpress技术的不断发展,人们开始使用PCIe-switch中的非透明桥 (Non-TransparentBridge,NTB)互联异构系统中的两个系统。发明人在实现本发明创造 的过程中发现:在现有技术中,只能实现异构系统的内存共享,所谓"内存共享"就是指:异 构系统中的两个系统除了可以访问本端系统的内存之外,还可以访问对端系统的内存。但 是,目前的现有技术无法实现异构系统上的外部设备共享,即,异构系统中的两个系统只可 以访问本端系统的外部设备,而无法访问对端系统的外部设备。

【发明内容】

[0005] 有鉴于此,本发明提供了一种实现设备共享的方法和装置,用以解决现有技术中 异构系统中的两个子系统只可以访问本地子系统的外部设备,而无法访问对端子系统的外 部设备的问题,其技术方案如下:
[0006] 第一方面,一种实现设备共享的方法,应用于包括本端系统和对端系统的异构系 统中的所述本端系统,所述本端系统和所述对端系统具有各自独立的处理器和外部设备, 所述本端系统中的处理器和所述对端系统中的处理器使用不同的指令集,所述方法包括:
[0007] 所述本端系统获取所述对端系统的外部设备标识信息;
[0008] 所述本端系统根据所述获取的外部设备标识信息,按照本地可识别的消息格式生 成对所述对端系统所管理的外部设备的操作请求;
[0009] 所述本端系统从所述操作请求中解析出包括生成所述操作请求必要的参数的请 求消息,将解析出的请求消息通知给所述对端系统。
[0010] 在第一方面的第一种可能的实现方式中,所述实现设备共享的方法还包括:
[0011] 获取所述请求消息的反馈消息,所述反馈消息中包括生成所述操作请求执行结果 所必要的参数;
[0012] 根据所述反馈消息中的参数将所述反馈消息解析为所述本端系统本地可识别的 消息格式。
[0013] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述对端系统所管理的内存中,包括与所述本端系统所共享的第一内存,所述第一内存 中预先存储了包括所述对端系统管理的外部设备的设备信息的抽象设备表,以及,包括所 述对端系统所管理的外部设备的设备所在域信息的设备状态表;
[0014] 所述本端系统获取所述对端系统的外部设备标识信息,包括:
[0015] 所述本端系统预先读取所述第一内存中所述对端系统的抽象设备表和设备状态 表;
[0016] 将所述对端设备的抽象设备表与所述本端系统的抽象设备表进行合并,将所述对 端设备的设备状态表与所述本端系统的设备状态表进行合并;
[0017] 将合并后的抽象设备表和合并后的设备状态表存储于所述本端系统的内存中;
[0018] 依据所述合并后的设备状态表中的设备所在域信息从所述合并后的抽象设备表 中获取所述对端系统的外部设备标识信息。
[0019] 结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式 中,所述对端系统所管理的内存中,包括与所述本端系统共享的第一内存,所述第一内存中 预先存储了包括所述对端系统所管理的外部设备的设备信息的抽象设备表,所述外部设备 的设备信息至少包括外部设备的标识信息,所述外部设备的标识信息至少包括所述外部设 备的设备名称;
[0020] 所述本端系统获取所述对端系统的外部设备标识信息,包括:
[0021] 所述本端系统预先读取所述第一内存中所述对端系统的抽象设备表;
[0022] 将所述对端系统的抽象设备表与所述本端系统的抽象设备表比对,从所述对端系 统的抽象设备表中查找出设备名称与所述本端系统的抽象设备表中的设备名称不同的外 部设备的设备信息并作为所述对端系统独有的外部设备的设备信息;
[0023] 将所述对端系统的抽象设备表中除所述对端系统独有的外部设备的设备信息外 的其它外部设备的设备信息删除,得到包括对端系统所独有的外部设备的设备信息的抽象 设备表;
[0024] 将所述包括对端系统所独有的外部设备的设备信息的抽象设备表存储于所述本 端系统的内存中;
[0025] 从所述包括对端系统所独有的外部设备的设备信息的抽象设备表中获取所述对 端系统的外部设备标识信息。
[0026] 结合第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式,在 第一方面的第四种可能的实现方式中,所述获取所述请求消息的反馈消息,包括:
[0027] 从所述对端系统的所述第一内存中获取所述请求消息的反馈消息。
[0028] 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实 现方式、第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述 设备状态表中还包括设备使用状态信息,所述设备使用状态信息用于指示所述抽象设备表 中的外部设备是空闲状态,还是占用状态;
[0029] 所述本端系统根据所述获取的外部设备标识信息,按照本地可识别的消息格式生 成对所述对端系统所管理的外部设备的操作请求,之前还包括:
[0030] 所述本端系统查询所述设备状态表,查询所述对端系统所管理的外部设备的状态 是否为空闲;
[0031] 则所述本端系统根据所述获取的外部设备标识信息,按照本地可识别的消息格式 生成对所述对端系统所管理的外部设备的操作请求,具体为:
[0032]当查询所述对端系统所管理的外部设备的状态为空闲时,所述本端系统生成对所 述对端系统所管理的外部设备的操作请求。
[0033] 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实 现方式、第一方面的第三种可能的实现方式,在第一方面的第六种可能的实现方式中,所述 本端系统所管理的内存中,包括与对端系统共享的第二内存;
[0034]则所述将解析出的请求消息通知给对端系统,包括:
[0035]所述本端系统将解析出的请求消息存放于所述第二内存;
[0036] 向所述对端系统发送读取所述请求消息的请求,以使所述对端系统从所述第二内 存中读取所述请求消息。
[0037] 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实 现方式、第一方面的第三种可能的实现方式,在第一方面的第七种可能的实现方式中,所述 本端系统所管理的内存中,包括与对端系统共享的第二内存;
[0038] 所述将解析出的请求消息通知给对端系统,包括:
[0039]所述本端系统将解析出的请求消息存放于所述第二内存,以便所述对端系统以轮 询所述第二内存的方式发现所述请求消息,并在发现所述请求消息后从所述第二内存中读 取所述请求消息。
[0040] 结合第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式,在 第一方面的第八种可能的实现方式中,所述抽象设备表设置于所述对端系统的用户态。
[0041] 结合第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第 一方面的第三种可能的实现方式,在第一方面的第九种可能的实现方式中,所述生成所述 操作请求必要的参数至少包括:外部设备标识信息、目标数据和请求内容,所述目标数据为 与所述外部设备标识信
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1