提供对设备功能的访问的装置、系统和方法

文档序号:6540624阅读:169来源:国知局
提供对设备功能的访问的装置、系统和方法
【专利摘要】描述了提供对设备功能的访问的装置、系统和方法。描述了用于通过输入/输出(I/O)设备提供对功能的访问的技术和机制。在一个实施方式中,包括I/O设备的计算机系统的主存储器存储把功能与用于访问该功能的上下文关联起来的功能上下文数据结构。I/O设备存储用于提供功能的I/O设备的配置。在另一实施方式中,软件进程与功能上下文数据结构交换信息以便得到对功能的访问。I/O设备执行功能上下文数据结构和配置数据结构相对于彼此的同步,其中,功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把I/O设备和软件进程相互进行接口。
【专利说明】提供对设备功能的访问的装置、系统和方法

【技术领域】
[0001]在此讨论的实施方式涉及计算机系统的领域。尤其,某些实施方式属于高速度点对点互连和通信体系结构的领域。

【背景技术】
[0002]计算机系统包括多种组件和元素。各组件往往经由总线或互连耦合。外围组件互连(PCI)是在1992年开发的第二代并行总线体系结构,用于替代工业标准体系结构(ISA)总线。在PCI中,所有设备共享相同的双向32位(或64位)并行信号路径。PCI总线带来超过ISA总线的许多优点,包括即插即用操作。PCI Express(PCIe)是被设计为代替PCI总线的第三代通用串行输入/输出(1)互连。除了是总线之外,PCIe是围绕被称为巷道的点对点串行链路而构造的。
[0003]在PCI/PCIe体系结构中,软件维护紧密地使得系统硬件的物理结构并行的总线/设备/功能(BDF)数据结构。PCI和PCIE的即插即用机制支持运行时插入或移除硬件组件(以及因而插入或移除它们的功能性)。然而,这样的机制在在平台的运行时操作期间不太可能添加或移除的I/O硬件的操作方面往往是次优的。随着制造技术继续趋向于集成,硬件功能性永久地被附加到或甚至被集成到中央处理单元(CPU)或其他关键的平台逻辑的半导体管芯,这种类型的I/O硬件日益普遍。
[0004]设备发现和配置的PCI/PCIe的常规设备/功能模型具有在提供把硬件资源映射到软件活动的灵活性方面的限制。PCI设备/功能模型的附加问题是设备发现和配置技术和机制是低效的,使得从睡眠状态或其他这样的低功率状态恢复的时间变慢。

【专利附图】

【附图说明】
[0005]在附图的各图中作为示例而非限制阐释本发明的各种实施方式,附图中:
[0006]图1是阐释根据一种实施方式提供对输入/输出功能的访问的系统的元素的框图。
[0007]图2是阐释根据一种实施方式提供功能以供由软件进程访问的设备的元素的框图。
[0008]图3是阐释根据一种实施方式管理对输入/输出功能的访问的逻辑的元素的框图。
[0009]图4A是阐释根据一种实施方式的输入/输出设备的配置数据的元素的框图。
[0010]图4B是阐释根据一种实施方式用于把输入/输出功能与一个或多个上下文关联起来的数据结构的元素的框图。
[0011]图5是阐释根据一种实施方式用于提供对输入/输出功能的访问的方法的元素的流程图。
[0012]图6是阐释根据一种实施方式用于管理对输入/输出功能的访问的方法的元素的流程图。
[0013]图7是阐释根据一种实施方式用于提供对输入/输出功能的访问的分层数据结构的元素的框图。
[0014]图8是阐释根据一种实施方式执行输入/输出操作的计算机平台的元素的框图。

【具体实施方式】
[0015]在此讨论的实施方式不同地提供用于把功能与一个或多个上下文关联起来的机制或技术,这些上下文允许、限定或以另外方式表征软件进程对功能的访问。功能与一个或多个上下文的这样的关联在此不同地称为“功能-上下文”或“FuncText”。
[0016]在一个实施方式中,相互关联的功能和上下文的实例(在此被称为“功能-上下文实例”)可以包括被创建、通信或以另外方式确定以便界定该功能与该上下文相互关联的信息的实例。例如,功能-上下文实例可以是或可以包括用于标识该功能和该上下文相互关联的注册或主存储器中其他数据存储。基于所定义的关联,一个或多个机制可以操作为允许根据所关联的上下文利用功能(和/或限定该功能的使用)。功能可以不同地可由独立于FuncText (FT)实例但与其并行的一些替代机制访问。
[0017]在一个实施方式中,FuncText数据结构——例如由主机保存在DRAM或其他主存储器中的FuncText数据结构——存储描述实际的设备状态和/或所期望的设备状态以便得到功能的执行的数据。可以由实现设备状态的设备和/或由要访问该设备提供的功能的软件进程不同地把这样的设备状态信息可以传递到FuncText数据结构和/或从其传递。这样的交换可以提供在主存储器中作为寄存器级接口操作的FuncText数据结构,以供把设备和软件进程相互连接起来。在一个实施方式中,该接口独立于主机OS的一些或全部其他软件进程(例如包括任何虚拟机监视器、客户OS和/或类似物)。
[0018]图1阐释根据一种实施方式包括FuncText特征用于提供功能访问的计算机系统100的元素。计算机系统100可以包括用于在处理器102—例如包括CPU或其他主机处理器一和芯片组104之间传输信息的处理器系统总线(前端总线(FSB)) 103。处理器102可以包括单核处理器或多核芯片多处理器(CMP),以便作为系统100主机处理器而操作。在一种实施方式中,芯片组104中的一些或全部可以被集成在处理器102内以提供片上系统。
[0019]芯片组104可以包括在系统100的处理器102和一个或多个I/O设备之间交换通信的电路逻辑——例如其中这样的电路逻辑根据PCI和/或PCIe规范操作为根联合体(root complex)的系统。例如,芯片组104可以包括不同地经由各自的互连直接地或间接地耦合到这样的一个或多个I/O设备的一个或多个集线器设备(未示出)——例如包括存储器控制器集线器、I/O控制器集线器和/或类似物。
[0020]作为阐释而非限制,芯片组104可以经由点对点互连107耦合到主存储器140且经由点对点互连112耦合到I/O设备120。在一种实施方式中,主存储器140可以包括但不限于随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SDRAM)、同步DRAM(DRAM)、双倍数据率(DDR) SDRAM (DDR-SDRAM)、Rambus DRAM (RDRAM)或能够支持数据的高速缓冲的任何设备。I/O设备120可以包括用于交换数据的各种设备中的任任意个,包括但不限于音频控制器、视频控制器、网络接口卡、存储控制器和/或类似物。计算机系统100还可以包括非易失性(例如,闪速)存储器116以便操作为“固件集线器”或FWH,它可以包括执行计算机系统100的初始化的基本输入/输出系统(B1S) 109。爾?016提供在此描述的一个或多个实施方实施方式不限于支持?016的点对点链路,
〕设备通常限于在功能和03驱动器实左种一对一关系的泛化,例如其中友于一个特定的硬件资源、对应于多个1/0勺硬件资源子集。
处理器102可以执行要访问功能的软件进能的一些1/0硬件交换通信。软件进程130方式不限于此。在一个实施方式中,软件进130的状态——例如维护为软件状态142。44,数据结构144与一个或多个丨这样的功能访问。例如,数据结兰的1/0设备120的实际状态和/或所期望廷括配置数据124以便存储1/0设备120执?台的芯片组耦合起来的接口 210。1/0设:0等的通信标准兼容的通信205。
或多个功能的硬件(未示出)——例如供经
I信的软件进程使用。作为阐释而非限制,:、设备、功能发现约定标识的各种功能中的起来的具体的1/0功能类型方面,某些实施括机制-例如包括数据、控制一个这样的功能的访问(和/或限定对至[),1/0设备200可以包括初始化逻辑230,客个操作。在一个实施方式中,初始化逻辑如非易失性存储器的一个或多个寄存器),睹预先编程的、用于标识1/0设备200的能辑230可以在通信205中发送信息以便标执行的功能和/或1/0设备200的用于提250所表示的一个或多个数据结构中存储供I/O设备200提供对功能的访问。配置数据250可以包括例如经由平台芯片组提供的数据(例如来自OS)、由I/O设备200从主存储器检索的数据和/或从仓库235复制的数据。替代地或另外,配置数据250可以包括在平台启动期间提供的信息和/或在平台的运行时操作期间提供的信息。
[0036]在一个实施方式中,配置数据250包括常规PCIe设备的配置空间中的一些或全部类型的信息。例如,这样的信息可以包括PCIeO型头部信息,且在一个实施方式中,还可以包括PCI和/或PCIe支持的一种或多种类型的能力信息。作为阐释而非限制,配置数据250的数据结构可以包括PCI电源管理能力寄存器、消息告知中断(Message SignaledInterrupt, MSI)能力寄存器和/或用于存储能力数据或其他功能上下文信息的各种附加的或替代的寄存器中的任意个。
[0037]I/O设备200还可以包括,相干性引擎240包括硬件、固件和/或正在执行的软件的各种组合的任何,以便维护配置数据250中的一些或全部信息,以促进软件进程的功能访问。例如,根据不同的实施方式,相干性引擎240可以包括专用集成电路(ASIC)、状态机、微控制器、微处理器、处理器和/或各种其他电路逻辑中的任何。维护配置数据250可以包括与主存储器中的FuncText数据结构交换通信的相干性(coherency)引擎240。例如,相干性引擎240可以执行同步进程以便用软件进程已经写到FuncText数据结构的数据来更新配置数据250。替代地或另外,同步进程可以用来自配置数据250的数据——例如包括随后由软件进程从FuncText数据结构读取的数据-来更新FuncText数据结构。这样的同步可以提供在主存储器中的FuncText数据结构和配置数据250之间的相干性——例如在某个时刻它们存储各自的等效、一致或以另外方式相干的信息的场合。
[0038]图3阐释根据一种实施方式用于管理向软件进程提供I/O功能访问的FuncText管理器300的元素。在一个实施方式中,FT管理器300促进在软件进程和实现由软件进程访问的功能的设备——例如包括I/O设备200的一些或全部特征——之间的通信。例如,FT管理器300可以包括FT管理器150的一些或全部特征。
[0039]FT管理器300可以包括由说明性接口 310表示的一个或多个接口,用于把FT管理器300均经由一个或多个各自的点对点互连与计算机平台的主存储器和/或与一个或多个I/O设备耦合起来。替代地,FT管理器300可以被合并到包括这样的一个或多个接口的装置中。在一个实施方式中,FT管理器300经由与通信标准诸如PCI或PCIE等的接口 310交换通信305。
[0040]通信305可以不同地提供如何访问I/O功能的管理。例如,FT管理器300的分配管理逻辑320可以包括发起用于不同地创建或以另外方式配置主存储器和/或要执行功能的I/O设备中的一个或多个数据结构的命令的电路。替代地或另外,分配管理逻辑320可以发起通信以便把FuncText实例与执行该FuncText实例的功能的I/O设备硬件关联起来。作为阐释而非限制,分配管理逻辑320可以在用于具体的FuncText实例的FuncText数据结构中存储对执行功能的I/O设备的引用。
[0041]在一个实施方式中,分配管理逻辑320可以给I/O设备和/或软件进程提供对FuncText数据结构的引用——例如以供随后用于同步或以另外方式访问FuncText数据结构。分配管理逻辑320也可以显式地向I/O设备指出要访问功能的软件进程,但某些实施方式不限于此。分配管理逻辑320还可以建立向I/O设备通知对FT数据结构的改变的一个或多个机制,其中与I/o设备配置数据的同步可以基于这样的通知。例如,分配管理逻辑320可以直接地或间接地配置一个或多个门铃(doorbell)寄存器、轻量级通知(LN)信道——例如根据PC1-SGI的LN协议的LN信道——和/或用于向I/O设备通知对FT数据结构的更新的各种其他装置中的任何。在一个实施方式中,在计算机平台的运行时操作期间,分配管理逻辑320可以不同地更新、删除和/或修改一个或多个FuncText数据结构、FuncText数据结构、I/O设备引用、通知机制和/或类似物。
[0042]在一个实施方式中,FT管理器300进一步包括标识由FuncText实例把哪一具体功能和哪一(哪些)具体上下文相互关联起来的逻辑。例如,FT管理器300的上下文管理逻辑330可以检测计算机平台的一个或多个I/O设备中的功能的可用性——例如基于PCI和/或PCIE的常规设备/功能发现机制。上下文管理逻辑330还可以检测到这样的一个或多个I/O设备中的一些或全部支持用于提供对功能的访问的基于FT的机制。
[0043]在一个实施方式中,上下文管理逻辑330可以接收——例如从要提供功能的具体I/o设备一标识至少在该具体I/O设备的情况下要求的一个或多个上下文的信息。替代地或另外,上下文管理逻辑330可以从主机OS或其他源接收标识至少相对于要访问功能的软件进程需要的一个或多个上下文的信息。在一个实施方式中,提供给上下文管理逻辑330的信息可以标识基于计算机平台施加的其他约束的一个或多个上下文。作为阐释而非限制,这样的约束可以包括各种服务品质要求中的任何和/或通信带宽、处理周期、存储容量的资源分配约束和/或平台上的各种其他受限资源中的任何。在某些实施方式中,把与功能相关联的一些或全部上下文作为先验信息提供给上下文管理逻辑330—例如从主机
OS、专用的资源管理和/或QoS强制硬件机制等等。在计算机平台的运行时操作期间,上下文管理逻辑330可以改变FuncText数据结构和/或I/O设备数据结构中的信息,以便不同地更新、删除和/或修改功能与关联上下文的关联。
[0044]用于实现基于FT的功能访问的数据结构和电路逻辑可以包括用于管理在多个FuncText实例之间分层关系的机制。例如,如在此讨论的,第一 FuncText数据结构可以存储指示一些其他FuncText数据结构相对于该第一 FuncText数据结构是子FuncText数据结构还是父FuncText数据结构的信息。在这样的实施方式中,FT管理器300还可以包括分层管理逻辑340,以便执行用于创建、删除、修改或以另外方式管理这样的分层关系的运行时操作。在特定的其他实施方式中,FT管理器300不提供对分层FuncText关系的这样的支持。也可以作为来自其他代理的OS的先验信息向分层管理逻辑340指出一个或多个分层关系。在一个实施方式中,在计算机平台的运行时操作期间,分层管理逻辑340可以改变一个或多个FuncText数据结构中的信息,以便不同地更新、删除和/或修改在FuncText数据结构之间的分层关系。
[0045]图4A阐释根据一种实施方式被存储在I/O设备的数据仓库中的配置数据400的元素。配置数据400可以被存储在例如具有I/O设备120的一个或多个FuncText能力的I/O设备。在一个实施方式中,配置数据400把一些或全部信息存储在配置数据250中。
[0046]配置数据400可以包括与PC1型配置空间头部兼容的数据结构——且在一个实施方式中,可以作为PC1型配置空间头部而提供该数据结构。例如,配置数据400可以包括存储设备型号的标识符的设备标识符(ID)寄存器402、存储被指派给设备厂商的标识符的厂商ID寄存器404、存储某些错误是否已经发生的指示的状态寄存器406和存储表示不以便存储信息标识或以另外方式指示供与上下文。作为阐释而非限制,主体460可以400的一些或全部特征。在一个实施方式办能的1/0设备的?类型0头部。向软件又便把类型0头部462以及其本地[体460可以包括用于存储能力数据464的于此。例如,主体460还可以包括?电源器、6能力寄存器和/或存储能力数据的定多个。这样的能力信息的一个版本还可以与数据结构440同步的配置数据400。和/或使用V数据结构440来提供对1/〕中的信息可以促进把?I数据结构440用勺寄存器级接口。头部450可以包括字用以便存储可以使用由数据结构440表I示。在一个实施方式中,这样的软件进程
[0052]方法500可以包括,在510处,在I/O设备的配置数据结构中存储功能的配置。在510处所存储的配置可以包括或以另外方式指示I/O设备据此提供对功能的访问的上下文。该配置可以包括,例如,PCI类型O头部中出现的一种类型的配置空间信息。替代地或另外,根据不同的实施方式,配置信息可以包括电源管理能力寄存器信息、SMD寄存器信息和/或各种其他类型的配置中的任何。
[0053]在一个实施方式中,方法500进一步包括,在520,向软件进程提供对功能的访问。软件进程可以是I/o设备的驱动器,但某些实施方式不限于此。可以借助于处理器和被耦合到I/o设备的主存储器执行该软件进程,该主存储器存储功能上下文数据结构。在520,提供对功能的访问可以包括相对于彼此同步功能上下文数据结构和配置数据结构。例如,I/O设备可以在计算机平台的运行时执行期间接收对FuncText数据结构的引用(例如指针、基地址、句柄等等),其中同步基于所接收的对FuncText数据结构的引用。响应于轻量级通知通信或者替代地响应于访问对应于FuncText数据结构的门铃寄存器,I/O设备可以访问FuncText数据结构。在一个实施方式中,主存储器存储FuncText数据结构的分层结构,其包括FuncText数据结构和第二 FuncText数据结构,其中软件进程基于第二 FuncText数据结构中的信息访问FuncText数据结构。
[0054]在一个实施方式中,软件进程与功能上下文数据结构交换信息以便得到对功能的访问,其中功能上下文数据结构操作为寄存器级接口,该寄存器级接口把I/o设备和软件进程彼此进行接口。例如,对软件进程的功能访问可以包括在软件进程和FuncText数据结构之间的交换,这独立于可以借助于主机OS执行的任何其他软件进程而执行。
[0055]图6阐释根据一种实施方式设备管理对功能的访问的方法600的元素。例如,方法600可以由包括FT管理器300的一些或全部特征的设备执行。
[0056]方法600可以包括,在610,访问被耦合到设备的主存储器的功能上下文数据结构,包括借助于功能上下文数据结构定义功能与上下文的关联。设备执行方法600还可以耦合到I/O设备。软件进程可以借助于被耦合到设备的主存储器和主机处理器执行。
[0057]在一个实施方式中,方法600进一步包括,在620,给I/O设备或软件进程提供对功能上下文数据结构的引用,其中,基于该引用,I/o设备向软件进程提供对功能的访问,该访问是根据上下文进行的。软件进程可以与功能上下文数据结构交换信息以便得到对功能的访问,其中功能上下文数据结构操作为寄存器级接口,该寄存器级接口把I/o设备和软件进程相互连接起来。
[0058]在计算机平台的运行时操作期间,设备执行方法600还可以把对I/O设备的引用写入到FuncText数据结构。这样的写入可以把FuncText实例从与用于提供对功能的访问的第一 I/O设备相关联改变成与用于提供对功能的访问的第二 I/O设备相关联。替代地或另外,在计算机平台的运行时操作期间,设备执行方法600可以访问FuncText数据结构以便把FuncText数据结构从定义第一上下文与功能的关联改变成定义第二上下文与功能的关联。在一个实施方式中,设备可以访问FuncText数据结构以便定义主存储器中的FuncText数据结构的分层结构,FuncText数据结构的分层结构包括FuncText数据结构。
[0059]图7阐释根据一种实施方式用于提供对I/O功能的访问的主存储器中的FuncText数据结构的分层结构700的元素。分层结构700可以被存储在主存储器140中,例如,以便提供各自供软件进程访问相应I/O功能的一个或多个寄存器级接口。电路逻辑可以访问分层结构700以便动态自动应用以便从一些远程源(例如因特网)1/0资源以便解码和呈现流化数据。
力器/子系统可以在主存储器中建立?丁数数据结构710仅可以凭借分层结构700关联。例如,?I头部712可以包括存储空复示分层结构700的其他数据结构中所附属主存储器中建立数据结以标识相应数量的子数据结构地或另外,头部712可以包括指向其各施方式中,头部722、732可以不同地包供对用于被集成到计算机平台的扬声器的据结构730可以给软件提供对[050的访低引脚数总线。各种设备中的任何鼠标822、通信设备827和诸如盘驱动器或实施方式中,存储单元828常常包括指令/耦合到第二总线820。应注意,在所包括的结构是可能的。例如,代替图8的点对点体系结构。
二集成电路的硬件接口的设备。作为阐释而:880、芯片组890的封装(未示出〉、存储器戶中的任何。
生的技术和体系结构。在上面的描述中,出对某些实施方式的透彻理解。然而,本领域实践某些实施方式。在其他实例中,为了避卜实施方式”的引用意指结合该实施方式描:明的一种实施方式中。在说明书中的各种定全都是指相同的实施方式。偏离其范围的前提下对所公开的实施方式作限制性的意义来解释本文的阐释和示例。勺范围。
【权利要求】
1.一种输入/输出(1)设备,包括: 存储器,用于存储包括功能的配置的配置数据结构;以及 相干性引擎,其包括用于向软件进程提供对所述功能的访问的电路,包括所述相干性引擎执行所述功能上下文数据结构和所述配置数据结构相对于彼此的同步,其中所述功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把所述I/o设备和所述软件进程相互进行接口。
2.如权利要求1所述的I/O设备,其特征在于,所述相干性引擎还在所述计算机平台的运行时执行期间接收对所述功能上下文数据结构的引用,其中所述相干性引擎基于所述功能上下文数据结构执行所述同步。
3.如权利要求1所述的I/O设备,其特征在于,所述软件进程是所述I/O设备的驱动器。
4.如权利要求1所述的I/O设备,其特征在于,独立于通过所述主机OS执行的任何其他软件进程来执行所述软件进程和所述功能上下文数据结构之间的交换,所述软件进程和所述功能上下文数据结构之间的所述交换供所述软件进程访问所述功能。
5.如权利要求1所述的I/O设备,其特征在于,响应于轻量级通知通信,所述I/O设备访问所述功能上下文数据结构。
6.如权利要求1 所述的I/O设备,其特征在于,响应于访问对应于所述功能上下文数据结构的门铃寄存器,所述I/o设备访问所述功能上下文数据结构。
7.如权利要求1所述的I/O设备,其特征在于,功能上下文数据结构的分层结构包括所述功能上下文数据结构和第二功能上下文数据结构,其中所述软件进程基于所述功能上下文第二数据结构中的信息访问所述功能上下文数据结构。
8.一种输入/输出(1)设备处的方法,所述方法包括: 在所述I/O设备的配置数据结构中存储功能的配置;以及 向软件进程提供对所述功能的访问,所述软件进程通过耦合到所述I/o设备的处理器和主存储器执行,所述主存储器存储功能上下文数据结构,所述提供对所述功能的访问包括相对于彼此同步所述功能上下文数据结构和所述配置数据结构,其中所述软件进程与所述功能上下文数据结构交换信息以便获得对所述功能的访问,其中所述功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把所述I/o设备和所述软件进程相互进行接□。
9.如权利要求8所述的方法,其特征在于,进一步包括在所述计算机平台的运行时执行期间接收对所述功能上下文数据结构的引用,其中所述同步基于所接收的对所述功能上下文数据结构的引用。
10.如权利要求8所述的方法,其特征在于,所述软件进程是所述I/O设备的驱动器。
11.如权利要求8所述的方法,其特征在于,独立于通过所述主机OS执行的任何其他软件进程来执行所述软件进程和所述功能上下文数据结构之间的交换,所述软件进程和所述功能上下文数据结构之间的所述交换供所述软件进程访问所述功能。
12.如权利要求8所述的方法,其特征在于,响应于轻量级通知通信,所述I/O设备访问所述功能上下文数据结构。
13.如权利要求8所述的方法,其特征在于,响应于访问对应于所述功能上下文数据结构的门铃寄存器,所述I/o设备访问所述功能上下文数据结构。
14.如权利要求8所述的方法,其特征在于,所述主存储器存储功能上下文数据结构的分层结构包括所述功能上下文数据结构和第二功能上下文数据结构,其中,所述软件进程基于所述功能上下文第二数据结构中的信息访问所述功能上下文数据结构。
15.一种设备,包括: 一个或多个接口,用于把所述功能上下文管理器耦合到主机处理器、主存储器和I/O设备,所述主机处理器和所述主存储器用于软件进程的执行; 上下文管理逻辑,其包括经由所述一个或多个接口访问所述主存储器的功能上下文数据结构的电路,其中所述上下文管理逻辑通过所述功能上下文数据结构定义功能与上下文的关联;以及 分配管理逻辑,其包括用于向所述I/O设备或所述软件进程提供对所述功能上下文数据结构的引用的电路,其中基于所述引用,所述I/o设备向所述软件进程提供对所述功能的访问,所述访问根据所述上下文,其中所述软件进程与所述功能上下文数据结构交换信息以便得到对所述功能的访问,其中所述功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把所述I/o设备和所述软件进程相互进行接口。
16.如权利要求15所述的设备,其特征在于,在所述计算机平台的运行时操作期间,所述分配管理逻辑还向所述功能上下文数据结构写入对I/o设备的引用,其中所述分配管理逻辑把所述功能上下文实例从与用于提供对所述功能的访问的第一 I/o设备相关联改变为与用于提供对所述功能的访问的第二 I/o设备相关联。
17.如权利要求15所述的设备,其特征在于,在所述计算机平台的运行时操作期间,所述分配管理逻辑访问所述功能上下文数据结构以便把所述功能上下文数据结构从定义第一上下文与所述功能的关联改变为定义第二上下文与所述功能的关联。
18.如权利要求15所述的设备,其特征在于,独立于通过所述主机OS执行的任何其他软件进程来执行所述软件进程和所述功能上下文数据结构之间的交换,所述软件进程和所述功能上下文数据结构之间的所述交换供所述软件进程访问所述功能。
19.如权利要求15所述的设备,其特征在于,所述I/O设备执行所述I/O设备的所述功能上下文数据结构和配置数据结构相对于彼此的同步。
20.如权利要求15所述的设备,其特征在于,进一步包括分层管理逻辑,用于访问所述功能上下文数据结构以便定义所述主存储器中的功能上下文数据结构的分层结构,功能上下文数据结构的所述分层结构包括所述功能上下文数据结构。
21.一种设备处的方法,所述方法包括: 访问被耦合到所述设备的主存储器的功能上下文数据结构,包括通过所述功能上下文数据结构定义功能与上下文的关联,其中软件进程通过被耦合到所述设备的所述主存储器和主机处理器执行,其中所述设备还被耦合到I/O设备; 向所述I/O设备或所述软件进程提供对所述功能上下文数据结构的引用,其中基于所述引用,所述I/O设备向所述软件进程提供对所述功能的访问,所述访问根据所述上下文,其中所述软件进程与所述功能上下文数据结构交换信息以便得到对所述功能的访问,其中所述功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把所述I/O设备和所述软件进程相互进行接口。
22.如权利要求21所述的方法,其特征在于,进一步包括: 在所述计算机平台的运行时操作期间,向所述功能上下文数据结构写入对I/O设备的引用,包括把所述功能上下文实例从与用于提供对所述功能的访问的第一 I/O设备相关联改变为与用于提供对所述功能的访问的第二 I/O设备相关联。
23.如权利要求21所述的方法,其特征在于,进一步包括: 在所述计算机平台的运行时操作期间,访问所述功能上下文数据结构以便把所述功能上下文数据结构从定义第一上下文与所述功能的关联改变为定义第二上下文与所述功能的关联。
24.如权利要求21所述的方法,其特征在于,独立于通过所述主机OS执行的任何其他软件进程来执行所述软件进程和所述功能上下文数据结构之间的交换,所述软件进程和所述功能上下文数据结构之间的所述交换供所述软件进程访问所述功能。
25.如权利要求21所述的方法,其特征在于,所述I/O设备执行所述I/O设备的所述功能上下文数据结构和配置数据结构相对于彼此的同步。
26.如权利要求21所述的方法,访问所述功能上下文数据结构以便定义所述主存储器中的功能上下文数据结构的分层结构,所述功能上下文数据结构的所述分层结构包括所述功能上下文数据结构。
27.一种其上存储有指令的计算机可读存储介质,所述指令在由一个或多个处理单元执行时,引起I/O设 备执行一种方法,包括: 在所述I/o设备的配置数据结构中存储功能的配置;以及 向软件进程提供对所述功能的访问,所述软件进程通过被耦合到所述I/o设备的处理器和主存储器来执行,所述主存储器存储功能上下文数据结构,所述提供对所述功能的访问包括相对于彼此同步所述功能上下文数据结构和所述配置数据结构,其中所述功能上下文数据结构操作为寄存器级接口,所述寄存器级接口把所述I/O设备和所述软件进程相互进行接口。
【文档编号】G06F13/20GK104050118SQ201410095775
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】D·J·哈利曼, A·冯戈, D·达斯莎玛 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1