当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于建立虚拟PCI设备和虚拟MMIO设备的泛型方法技术

技术编号:12227509 阅读:185 留言:0更新日期:2015-10-22 03:51
公开了一种用于实现将虚拟设备建立为虚拟外围控制器互连(PCI)设备或虚拟输入/输出(I/O)设备中的至少一个的方法的技术。本公开的方法包括接收针对PCI兼容设备的请求。所述方法还包括基于针对所述PCI兼容设备的请求来建立虚拟设备,其中所述虚拟设备被建立为虚拟PCI设备或虚拟I/O设备中的至少一个。

【技术实现步骤摘要】
【国外来华专利技术】
本文所描述的实施例通常涉及处理设备,并且更具体地涉及用于建立虚拟PCI设 备和虚拟丽10设备的泛型方法。
技术介绍
计算系统能够包括多个部件,例如,处理设备(如,微型控制器、微型处理器等)、 存储器块、定时源、外围设备、外部接口、模拟接口、电压调节器、功率管理电路等。存储器 块、外部接口或其它部件可以包括功能块,也被称为IP块或控制器,其提供处理设备和外 围设备之间的接口。 计算系统中的部件能够与计算系统可访问的软件以及与外围设备以不同方式进 行通信,例如,通过外围部件互连(PCI)总线。软件可以从一些外围设备(例如,闪速存储 器)启动,然后由计算系统中的处理设备执行。 然而,计算系统中的一些部件(例如,功能块)可能不是PCI兼容的,并且因此不 能与使用PCI总线用于通信的软件进行通信。此外,一些软件不能从某些外围设备(例如, PCI兼容外围设备)启动。 已经使用了多种方案来解决这些问题。解决功能块不能与使用PCI总线用于通信 的软件进行通信的当前方案包括硬件方案和软件方案。当前的硬件方案需要改变功能块 的硬件设计,以便使得功能块成为PCI兼容的。当前的软件方案需要创建用于功能块的软 件,例如,用于功能块的可以解决功能块的不兼容性的专用设备驱动程序。解决软件不能从 PCI兼容的外围设备启动的当前方案需要改变PCI兼容的外围设备的硬件构造(例如,改变 硅)。然而,这些方案可能消耗相当大量的时间和成本。【附图说明】 将从以下给出的详细描述以及根据本公开的各个实施例的附图来更全面地理解 本公开。然而,附图不应被理解为将本公开限制为具体实施例,而仅是用于解释和理解。 图1是实现用于将虚拟设备建立为虚拟PCI设备或虚拟I/O设备的泛型方法的处 理设备的一个实施例的框图; 图2是示出了根据本公开的实施例的用于实现将虚拟设备建立为虚拟PCI设备或 虚拟I/O设备的泛型方法的虚拟设备模块的框图; 图3是示出了根据本公开的实施例的用于将虚拟设备建立为虚拟PCI设备或虚拟 I/O设备的方法的流程图; 图4是示出了根据本公开的实施例的用于将虚拟设备建立为虚拟PCI设备的方法 的流程图; 图5是示出了根据本公开的实施例的用于将虚拟设备建立为虚拟I/O设备的方法 的流程图; 图6是示出了根据本公开的实施例的用于使用虚拟设备的方法的流程图; 图7是根据本公开的实施例的计算机系统的框图; 图8是根据本公开的另一实施例的计算系统的框图;以及 图9是根据本公开的又一实施例的计算系统的框图。【具体实施方式】 软件(例如,操作系统或运行在计算系统的操作系统上的应用)可以利用驱动程 序来访问计算系统中的硬件设备(例如,外围设备)。当驱动程序请求访问硬件设备时,驱 动程序可以经由与硬件设备相关联的功能块来发送访问请求。功能块然后能够访问硬件 设备,接收来自硬件设备的响应,并且将响应发送到驱动程序。因此,功能块用作驱动程序 (以及相对应的软件)和硬件设备之间的接口。功能块对于驱动程序和/或硬件设备而言 可以是透明的。驱动程序可以通过将用于硬件设备的命令(例如,诸如读取或写入之类的 访问命令)写入到计算系统中的外围部件互连(PCI)总线来请求访问硬件设备。然而,如 果与硬件设备相对应的功能块不是PCI兼容的,则功能块可能不知道驱动程序试图访问硬 件设备或可能不能与驱动程序进行通信。 此外,操作系统可能仅能从一些硬件设备(例如,输入/输出(I/O)设备)启动, 并且可能不能从其它硬件设备启动。例如,操作系统可能不能从操作系统视其为是可移除 设备的外围设备(例如,PCI兼容设备)启动。然而,计算系统不会将硬件设备视为可移除 的,并且可能希望操作系统从该硬件设备启动。 本公开的实施例提供了用于将虚拟设备建立为虚拟PCI设备或虚拟I/O设备的泛 型方法。在一个实施例中,本公开的方法包括接收针对PCI兼容设备的请求。该方法还包 括基于针对PCI兼容设备的请求来建立虚拟设备,其中虚拟设备被建立为虚拟PCI设备或 虚拟I/O设备中的至少一个。 虚拟设备可以被建立为用于不是PCI兼容的功能块的虚拟PCI设备,并且虚拟设 备可以被建立为用于与要从PCI兼容设备启动的操作系统相关联的PCI兼容设备的虚拟1/ 0设备。通过将虚拟设备建立为用于不是PCI兼容的功能块的虚拟PCI设备,针对与功能 块相关联的PCI兼容设备的由PCI总线上的软件发送的任意访问和/或请求可以由虚拟设 备识别,并且其可以被发送到功能块。因此,虚拟设备提供用于不是PCI兼容的功能块的接 口,以接收PCI兼容访问和/或请求。通过将虚拟设备建立为用于与要从PCI兼容设备启 动的操作系统相关联的PCI兼容设备的虚拟I/O设备,操作系统能够从虚拟设备启动,这是 因为操作系统将判定出操作系统从其启动的设备是I/O设备而不是PCI兼容设备。 图1是根据本公开的实施例的实现用于建立虚拟PCI设备和虚拟MMIO设备的泛 型方法的设备100的框图。设备100的一些示例可以包括但不限于:移动通信设备,例如, 蜂窝手持式装置或智能电话;移动计算设备,例如平板计算机、上网本、笔记本型计算机、膝 上型计算机、台式计算机、服务器计算机等等。 设备100可以包括例如主机105,以处理用于设备100的基线操作。主机105例如 可以包括处理模块110、功能块115、存储器模块120以及其它模块135。处理模块110可以 包括位于分离部件中的一个或多个处理器(也称为处理设备),或者可替换地,体现在例如 被布置在片上系统(SOC)配置中的单个集成电路(1C)中的一个或多个处理核心。 功能块115可以包括被配置为支持处理模块110的电路。功能块115可以包括接 口 /桥接电路。在一个实施例中,每一个功能块115是被配置为处理与设备100中的专用 总线(例如,PCI、串行AT附件(SATA)、通用串行总线(USB)等)或接口(例如,多媒体卡 (MMC)设备、嵌入式多媒体卡(eMMC)设备、安全数字(SD)设备等)相关联的通信的集成电 路(1C)。例如,如果设备100包括用于?(:1、541八、旧8、丽(:、6丽(:和50设备的总线和/或 接口,则设备100将包括作为PCI控制器的功能块115 (例如,控制器)、作为SATA控制器的 功能块115、作为USB控制器的功能块115,作为MMC控制器的功能块115、作为eMMC控制器 的功能块115、以及作为SD控制器的功能块115。功能块115可以通过将一种类型/速度 的通信转换成另一种来处理各个模块之间的信令。每一个功能块115还可以与多种不同的 设备兼容,以允许不同的系统实现、升级等。功能块115的功能中的一些还可以并入到处理 模块110、存储器模块120、或其它模块135中。 处理模块110可以执行指令。指令可以包括程序代码以使得处理模块110执行各 种动作,例如但不限于,读取数据、写入数据、处理数据、用公式表示数据、转换数据、变换数 据等。包括指令、数据等(未示出)的信息可以存储于存储器模块120中。 存储器模块120可以包括固定或可移除格式的随机存取存储器(RAM)或只读存储 器(ROM)。RAM可以包括在设备100的操作期间保持信息的存储器,例如,静本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104995613.html" title="用于建立虚拟PCI设备和虚拟MMIO设备的泛型方法原文来自X技术">用于建立虚拟PCI设备和虚拟MMIO设备的泛型方法</a>

【技术保护点】
一种用于建立虚拟设备的装置,包括:存储器;以及与存储器模块能够通信地耦合的处理设备,所述处理设备用于:接收针对外围控制器互连(PCI)兼容设备的PCI请求;基于所述PCI兼容设备来建立所述虚拟设备,其中,所述虚拟设备被建立为虚拟PCI设备或虚拟输入/输出(I/O)设备中的至少一个。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:W·杨C·徐L·梁
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1