发明名称 一种用于多根共享系统的直接I/O虚拟化方法和装置
摘要 本发明公开一种用于多根I/O虚拟化共享系统的直接I/O虚拟化方法和装置,该方法包括:步骤1,通过对物理I/O设备功能的逻辑抽象,建立逻辑虚拟化功能镜像,替代I/O设备功能作为从属根节点的设备占位符,实现I/O设备中各功能被多个根节点独立发现和配置;步骤2,通过硬件重映射方式,实现设备功能在从属根节点PCIe域和主控制根节点之间的映射,为各根节点在访问操作共享的物理I/O设备时提供直通模式,同时为各根节点的共享提供隔离和保护;步骤3,通过虚拟PCIe设备热插拔控制操作,能够在不影响根节点其他工作的情况下,完成向根节点动态删除和增加I/O设备功能,实现I/O设备中各功能被多个根节点动态共享。
申请公布号 CN102819447B 申请公布日期 2015.06.03
申请号 CN201210171920.0 申请日期 2012.05.29
申请人 中国科学院计算技术研究所 发明人 曹政;刘小丽;张佩珩;安学军;孙凝晖;王展;苏勇;刘飞龙
分类号 G06F9/455(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 北京律诚同业知识产权代理有限公司 11006 代理人 祁建国;梁挥
主权项 一种用于多根I/O虚拟化共享系统的直接I/O虚拟化方法,其特征在于,包括:步骤1,通过对物理I/O设备功能的逻辑抽象,建立逻辑虚拟化功能镜像,替代I/O设备功能作为从属根节点的设备占位符,实现I/O设备中各功能被多个根节点独立发现和配置,其中所述逻辑抽象包括I/O设备功能的行为模拟,所述I/O设备功能的行为模拟包括步骤51,直接I/O虚拟化装置接收从属根节点发来的循环配置事务包,接收事务包后转向步骤52;步骤52,提取并记录配置事务包中指示的寄存器号,然后转向步骤53;步骤53,配置寄存器类型判定,如果步骤52中的寄存器号指示为基址类配置寄存器,转向步骤54;如果指示为非基址类只读配置寄存器,转向步骤55;否则,转向步骤56;步骤54,基址类配置寄存器访问本地处理,如果是配置读请求包,则提取目标设备ID号和寄存器号对应的数据,组成完成包返回给相应的从属根节点;否则,如果是配置写请求包,提取请求包中的数据写存储到目标设备ID号和寄存器号对应的寄存器,操作完成后转向步骤51;步骤55,非基址类配置寄存器访问本地处理,如果是配置读请求包,则提取寄存器号对应的数据,组成完成包返回给相应的从属根节点;否则,如果是配置写请求包,提取请求包中的数据写存储到寄存器号对应的寄存器;操作完成后转向步骤51;步骤56,将事务包透传给物理I/O设备,由物理I/O设备相关功能进行配置响应,如果是配置读请求包,则接收I/O设备发来的完成包返回给相应的从属根节点;否则,如果是配置写请求包,I/O设备不返回任何响应;然后转向步骤51;步骤2,通过硬件重映射方式,实现设备功能在从属根节点PCIe域和主控制根节点之间的映射,为各根节点在访问操作共享的物理I/O设备时提供直通模式,同时为各根节点的共享提供隔离和保护;步骤3,通过虚拟PCIe设备热插拔控制操作,能够在不影响根节点其他工作的情况下,完成向根节点动态删除和增加I/O设备功能,实现I/O设备中各功能被多个根节点动态共享。
地址 100080 北京市海淀区中关村科学院南路6号
您可能感兴趣的专利