CN110532212A - 用于有效外围组件管理的dvsec的系统、方法和装置 - Google Patents
用于有效外围组件管理的dvsec的系统、方法和装置 Download PDFInfo
- Publication number
- CN110532212A CN110532212A CN201910327892.9A CN201910327892A CN110532212A CN 110532212 A CN110532212 A CN 110532212A CN 201910327892 A CN201910327892 A CN 201910327892A CN 110532212 A CN110532212 A CN 110532212A
- Authority
- CN
- China
- Prior art keywords
- instruction
- port
- downstream
- downstream components
- extended capability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
实施例的各方面包括用于从下游组件接收扩展能力的指示的系统、方法、设备和计算机程序产品;根据该指示确定针对下游组件的一个或多个配置参数;应用一个或多个配置参数;并且至少部分地基于所应用的一个或多个配置参数,在与下游组件的兼容PCIe的链路上执行数据信号或控制信号传输。扩展能力可以通过从下游设备接收的DVSEC扩展能力定义来指示。下游组件的扩展能力可以指示总线的数量、端口的类型、可扩展性能力、D3Cold支持状态、主机路由器指示符和/或下游组件的安全弹出要求。
Description
背景技术
互连可用于提供系统内不同设备之间的通信,使用某种类型的互连机制。用于计算机系统中的设备之间的通信互连的一种典型通信协议是快速外围组件互连(PCIExpressTM(PCIeTM))通信协议。该通信协议是加载/存储输入/输出(I/O)互连系统的一个示例。通常根据该协议以非常高的速度串行地执行设备之间的通信。
附图说明
图1示出了包括多核处理器的计算系统的框图的实施例。
图2是根据本公开的实施例的示例快速外围组件互连(PCIe)链路架构的示意图。
图3是根据本公开的实施例的连接系统的示意性框图,该连接系统包括通过兼容PCIe的链路连接到主机的设备层级。
图4是根据本公开的实施例的包括一个或多个属性提示比特的DVSEC能力定义的示意图。
图5是根据本公开的实施例的用于基于DVSEC能力定义来实现下游组件的一个或多个属性的主机设备的过程流程图。
图6示出了包括互连架构的计算系统的实施例。
图7示出了包括分层堆栈的互连架构的实施例。
图8示出了要在互连架构内生成或接收的请求或分组的实施例。
图9示出了用于互连架构的发射器和接收器对的实施例。
图10示出了包括处理器的计算系统的框图的另一实施例。
图11示出了用于包括多个处理器插槽的计算系统的块的实施例。
图12示出了计算系统的框图的另一实施例。
具体实施方式
在以下描述中,阐述了许多具体细节,诸如特定类型的处理器和系统配置的示例、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的测量/高度、特定的处理器流水线级和操作等,以便提供对本发明的透彻理解。然而,对于本领域技术人员显而易见的是,这些具体细节不需要被用来实践本发明。在其他实例中,没有详细描述公知的组件或方法,诸如特定的和替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现方式、利用代码的算法的特定表达、特定的下电和门控技术/逻辑以及计算机系统的其他具体操作细节,以便避免不必要地模糊本发明。
尽管以下实施例可以参考诸如计算平台或微处理器之类的特定集成电路中的节能和能量效率来描述,但是其他实施例可应用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可以应用于也可以从更好的能量效率和节能受益的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或UltrabookTM。并且,也可用于其他设备,如手持设备、平板计算机、其他薄型笔记本计算机、片上系统(SOC)设备设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可执行以下教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可以涉及用于节能和效率的软件优化。如在下面的描述中将变得显而易见的,本文描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是其组合)对于与性能考虑平衡的“绿色技术”未来都是至关重要的。
随着计算系统的发展,其中的组件变得越来越复杂。结果,用于在组件之间耦合和通信的互连架构在复杂性方面也在增加,以确保带宽要求针对最佳组件操作满足。此外,不同的市场细分需要互连架构的不同方面来适应市场的需求。例如,服务器需要更高的性能,而移动生态系统有时能够牺牲整体性能以用于功率节省。然而,大多数结构的独特目的是提供尽可能最高的性能和最大的功率节省。下面讨论了许多互连,这些互连可以从本文描述的本发明的方面中受益。
参考图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器100至少包括两个核—核101和102,其可以包括不对称核或对称核(所示实施例)。然而,处理器100可以包括可以是对称或不对称的任何数量的处理元件。
在一个实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核、和/或任何其他元件,它们能够保持处理器的状态,例如执行状态或架构状态。换句话说,在一个实施例中,处理元件是指能够与代码(诸如软件线程、操作系统、应用或其它代码)独立关联的任何硬件。物理处理器(或处理器插槽)通常是指集成电路,其可能包括任何数量的其他处理元件,诸如核或硬件线程。
核通常是指位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维护的架构状态与至少一些专用执行资源相关联。与核不同,硬件线程通常是指位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维护的架构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他资源被专用于一架构状态时,硬件线程的命名与核之间的界限重叠。通常,操作系统将核和硬件线程视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
物理处理器100,如图1所示,包括两个核—核101和102。本文中,核101和102被认为是对称核,即具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括乱序处理器核,而核102包括有序处理器核。然而,核101和102可以从任何类型的核中单独选择,诸如本地核、软件管理的核、适于执行本地指令集架构(ISA)的核、适于执行翻译指令集架构(ISA)的核、公共设计的核、或其他已知的核。在异构核环境(即不对称核)中,可以使用某种形式的翻译(例如二进制翻译)来调度或执行一个或两个核上的代码。为了进一步讨论,在核101中示出的功能单元在下面进一步详细描述,因为核102中的单元以所描绘的实施例中的类似方式操作。
如图所示,核101包括两个硬件线程101a和101b,其也可以被称为硬件线程槽101a和101b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器100视为四个单独的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可与架构状态寄存器102a相关联,并且第四线程可与架构状态寄存器102b相关联。本文中,架构状态寄存器(101a、101b、102a和102b)中的每个可以被称为处理元件、线程槽或者线程单元,如上所述。如图所示,架构状态寄存器101a在架构状态寄存器101b中被复制,所以单独的架构状态/上下文能够被存储用于逻辑处理器101a和逻辑处理器101b。在核101中,还可以针对线程101a和101b复制其他较小资源,诸如分配器和重命名块130中的指令指针和重命名逻辑。诸如重排序/引退单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器和队列之类的一些资源可以通过分区来共享。诸如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据TLB 115、执行单元140以及乱序单元135的部分之类的其他资源潜在地完全共享。
处理器100通常包括可以完全共享、通过分区共享或者由/对于处理元件专用的其他资源。在图1中,示出了具有处理器的示出性逻辑单元/资源的纯粹示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,并且还包括未描绘的任何其他已知的功能单元、逻辑或固件。如图所示,核101包括简化的、表示性的乱序(OOO)处理器核。但是在不同的实施例中可以使用有序处理器。OOO核包括用于预测要执行/采取的分支的分支目标缓冲器120和用于存储用于指令的地址转换条目的指令-转换缓冲器(I-TLB)120。
核101进一步包括解码模块125,其耦合到取指单元120以对取得的元素进行解码。在一个实施例中,取指逻辑包括分别与线程槽101a、101b相关联的单独的定序器。通常,核101与第一ISA相关联,第一ISA定义/指定在处理器100上可执行的指令。作为第一ISA的一部分的机器代码指令通常包括指令的一部分(称为操作码),其参考/指定待执行的指令或操作。解码逻辑125包括从它们的操作码中识别这些指令并且将所解码的指令传送到流水线上以进行如第一ISA所定义的处理的电路。例如,如在下面更详细讨论的,在一个实施例中解码器125包括被设计或适用于识别诸如事务指令之类的特定指令的逻辑。作为由解码器125识别的结果,架构或核101采取特定的、预定义动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文描述的任务、块、操作和方法中的任何一个;其中一些可能是新的或旧的指令。注意的是,在一个实施例中,解码器126识别相同的ISA(或其子集)。可替代地,在异构核环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名块130包括分配器以预留资源,诸如用于存储指令处理结果的寄存器文件。然而,线程101a和101b潜在地能够乱序执行,其中分配器和重命名块130还预留其他资源,例如用于跟踪指令结果的重排序缓冲器。单元130还可以包括寄存器重命名器,其用于将程序/指令引用寄存器重命名为处理器100内部的其他寄存器。重排序/引退单元135包括诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持乱序执行以及随后按顺序引退乱序执行的指令。
在一个实施例中,调度器和执行单元块140包括调度器单元,其用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知执行单元。
低级数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存用于存储最近使用/操作的元素,诸如数据操作数,其可能保存在存储器一致性状态。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为具体的示例,处理器可以包括页面表结构,其用于将物理存储器分成多个虚拟页面。
本文中,核101和102共享对诸如与片上接口110相关联的二级高速缓存之类的较高级别或进一步靠外的高速缓存的存取。注意,较高级别或进一步靠外的高速缓存指的是高速缓存级别增加或从执行单位获得更多的路径。在一个实施例中,较高级高速缓存是最后一级数据高速缓存—处理器100上的存储器层级中的最后的高速缓存—诸如第二或第三级数据高速缓存。但是,更高级别的高速缓存并不受限于此,因为它可能与指令高速缓存相关联或包含指令高速缓存。踪迹高速缓存(一种类型的指令高速缓存)可以耦合在解码器125之后以存储最近解码的踪迹。本文中,指令可能是指可被解码成多个微指令(微操作)的宏指令(即,由解码器识别的一般指令)。
在所描绘的配置中,处理器100还包括片上接口模块110。从历史上看,以下更详细描述的存储器控制器已被包括在处理器100外部的计算系统中。在该场景中,片上接口11用于与处理器100外部的设备进行通信,所述设备诸如系统存储器175,芯片组(通常包括用于连接到存储器175的存储器控制器集线器和用于连接外围设备的I/O控制器集线器),存储器控制器集线器,北桥或其他集成电路。并且在该场景中,总线105可以包括任何已知的互连,例如多分支总线、点对点互连、串行互连、并行总线、一致(例如高速缓存一致)总线、分层协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或者与系统中的其他设备共享。存储器175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知的存储设备。注意,设备180可以包括耦合到存储器控制器集线器的图形加速器、处理器或卡,耦合到I/O控制器集线器的数据存储器、无线收发机、闪存设备、音频控制器、网络控制器或其它已知的设备。
然而,最近,随着越来越多的逻辑和器件被集成在诸如SOC之类的单个管芯上,这些器件中的每一个都可以被并入到处理器100中。例如,在一个实施例中,存储器控制器集线器位于与处理器100相同的封装和/或管芯上。本文中,核的一部分(核上部分)110包括用于与诸如存储器175或图形设备180之类的其他设备接口接合的一个或多个控制器。包括用于与这些设备接合的互连和控制器的配置通常被称为核上(或无核配置)。作为示例,片上接口110包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多设备(例如网络接口、协处理器、存储器175、图形处理器180以及任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上以提供小形状因数,具有高功能和低功耗。
在一个实施例中,处理器100能够执行编译器、优化和/或翻译器代码177以编译、翻译和/或优化应用代码176以支持本文描述的装置和方法或与其进行接合。编译器通常包括程序或一组程序来将源文本/代码翻译成目标文本/代码。通常,用编译器来编译程序/应用代码是分多个阶段以及多遍完成的,以将高级编程语言代码转换为低级机器语言或汇编语言代码。然而,单遍编译器仍然可以用于简单的编译。编译器可以利用任何已知的编译技术,并执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码转换和代码优化。
较大的编译器通常包括多个阶段,但是大多数情况下,这些阶段被包括在两个一般阶段内:(1)前端,即通常其中可以发生句法处理、语义处理和一些转换/优化,以及2)后端,即通常其中发生分析、转换、优化和代码生成。一些编译器引用中间的部分,它示出了编译器的前端和后端之间的界限的模糊。因此,对编译器的插入、关联、生成或其他操作的引用可以发生在上述阶段或遍中的任何,以及编译器的任何其他已知阶段或遍中。作为示出性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段中插入调用/操作,并且然后在转换阶段期间将调用/操作转换为较低级的代码。请注意,在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,并优化代码以在运行时期间执行。作为具体的示出性示例,二进制代码(已编译的代码)可以在运行时期间被动态优化。本文中,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,诸如二进制翻译器之类的翻译器静态地或动态地翻译代码以优化和/或翻译代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以指:(1)动态地或静态地执行编译器程序、优化代码优化器或翻译器来编译程序代码、维护软件结构、执行其他操作、优化代码、或翻译代码;(2)执行包括操作/调用的主程序代码,所述操作/调用例如已被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如库)以维护软件结构、执行其他软件相关的操作,或优化代码;或(4)其组合。
图2是根据本公开的实施例的示例快速外围组件互连(PCIe)链路架构200的示意图。PCIe链路架构200包括第一组件202,其可以是上游组件、根复合体或兼容PCIe协议的交换机。第一组件202可以包括下游端口210,其有助于通过链路222与上游组件通信,链路222例如兼容PCIe协议的链路。第一组件202可以耦合到第二组件208,第二组件208可以是兼容PCIe协议的下游组件、端点或交换机。在一些实施例中,第一组件可以链接到一个或多个中间组件,例如第一重定时器204和第二重定时器206。
在实施例中,第一组件202可以包括下游端口210,用于促进与第二组件208(如果直接连接)或与重定时器204的上游(伪)端口212的下游通信(例如,朝向第二组件208)。第二组件208可以包括上游端口220,用于促进与第一组件202(如果直接连接)或与重定时器204的下游(伪)端口212进行上游通信(例如,朝向第一组件202)。
在图2所示的示例中,第一组件202可以通过第一链路段224链接到第一重定时器204。同样,第一重定时器204可以通过链路段226链接到第二重定时器206。第二重定时器206可以由链路段228链接到第二重定时器208。链路段224、226和228可以构成链路222的全部或一部分。
链路222可以促进第一组件202和第二组件208之间的上游和下游通信。在实施例中,上游通信是指从第二组件208向第一组件202发送的数据和控制信息;并且下游通信是指从第一组件202向第二组件208发送的数据和控制信息。如上所述,一个或多个重定时器(例如,重定时器204和206)可用于扩展第一组件202和第二组件208之间的链路222的范围。
包含一个或多个重定时器(例如,重定时器204、206)的链路222可以以与采用类似协议但没有重定时器的链路实现的数据速率相当的数据速率形成两个或更多个单独的电子链路。例如,如果链路222包括单个重定时器,则链路222可以形成具有两个单独的子链路的链路,每个子链路以8.0GT/s或更高的速率运行。如图2所示,可以利用多个重定时器204、206来扩展链路222。可以通过两个重定时器204、206定义三个链路段222、224和226,其中第一子链路222将第一组件202连接到第一重定时器204。第二子链路224将第一重定时器204连接到第二重定时器206,而第三子链路226将第二重定时器206连接到第二重定时器206。
如图2所示,在一些实现中,重定时器可以包括两个端口(或伪端口),并且端口可以动态地确定它们各自的下游/上游方向。在实施例中,重定时器204可以包括上游端口212和下游端口214。同样,重定时器206可以包括上游端口216和下游端口218。每个重定时器204、206可以具有上游路径和下游路径。此外,重定时器204、206可以支持包括转发模式和执行模式的操作模式。在一些实例中,重定时器204、206可以解码在子链路上接收的数据,并且重新编码它将在其另一个子链路上向下游转发的数据。这样,重定时器可以在重新生成比特流并将比特流重新发送到另一个设备或甚至另一个重定时器(或转接驱动器或转发器)之前捕获所接收的比特流。在某些情况下,重定时器可以修改它接收的数据中的某些值,例如在处理和转发有序集合数据时。此外,重定时器可以潜在地支持任何宽度选项作为其最大宽度,例如由诸如PCIe的规范定义的一组宽度选项。
随着串行互连(例如,PCIe、UPI、USB等)的数据速率增加,重定时器越来越多地用于扩展通道范围。多个重定时器可以级联,以实现更长的通道覆盖范围。预计随着信号速度的增加,通道范围通常会降低。因此,随着互连技术的加速,重定时器的使用可能变得更加普遍。例如,PCIe Gen-4采用16GT/s,采用PCIe Gen-3(8GT/s),PCIe互连中重定时器的使用可能会增加,随着速度的增加,其他互连中情况可能就是如此。
在链路建立之前或当链路222不能正常工作时,系统软件可以访问下游端口210(例如,在第一组件202中,其可以是上游组件,例如根复合体或交换机)。在实施例中,可以设置诸如链路能力寄存器之类的寄存器以在下游端口210中执行时钟模式选择。系统固件/软件可以将下游端口210配置为预期模式,并且如果需要改变,则这将由系统固件/软件完成,而不是由硬件完成。
PCIe支持热插拔(也称为热交换)功能,但是可能缺乏向系统软件报告信息的某些关键比特的一致方式,使得PCIe子系统难以被最佳地管理,并且导致系统限制和不佳的用户体验。这些相同的限制会影响融合输入/输出(CIO)或“开放”Thunderbolt,因为这些I/O配置使用PCIe作为隧道式I/O架构。
热插拔是一个术语,指的是将组件添加到主机系统的能力,其将扩展主机系统而不会显著中断系统。热交换可以定义为替换或添加组件而不停止或关闭主机系统。在本公开中,上述术语同义地使用。
通过在主机系统上安装适当的热插拔功能软件,用户可以将能够热插拔的组件插入和拔出到能够热插拔的下游端口,而无需重新启动主机系统。这种热插拔功能的示例包括通用串行总线(USB)、PCIe和CIO协议,其中的每个都允许用户添加或移除外围组件,如监视器、存储设备、鼠标、键盘、打印机、便携式硬盘驱动器或其他外围设备。
PCIe定义了“指定的供应商特定扩展能力”(DVSEC),其是如下的扩展能力,供应商可以使用该扩展能力以定义可由硅供应商实现的配置寄存器结构,同时提供一致的硬件/软件接口。本公开可以在实施例中使用DVSEC来克服上述报告缺陷。PCIe DVSEC是一种扩展能力,其允许由任何PCIe功能实现。这允许PCIe组件供应商使用扩展的功能机制来公开各种供应商可能呈现于组件中的供应商特定的寄存器。
这里定义的DVSEC能力适用于任何PCIe子系统。本文档中的大多数示例和软件实现说明都是在CIO的上下文中提供的,但不仅限于CIO。CIO在此用作示例架构。
CIO是用于PCIe和显示端口的隧道。CIO链路可以具有单个通道或两个通道聚合,以10Gbps至40Gbps或更高速度运行。CIO可以通过USB Type-C连接器(作为备用模式)操作,并在系统盒外部启用PCIe设备。支持最多6个CIO设备的菊花链拓扑。
CIO外围设备特别成问题,因为CIO外围设备看起来像PCIe桥接器和端点到系统软件的大型集合。系统软件可能无法区分内部PCI设备(其具有不变资源需求)和外部连接设备(其可能具有不断变化的资源需求),这会阻止最佳资源分配。特别是,系统软件无法预测总线编号和资源级别,以便为CIO层级中能够热插拔的下游端口预留资源。系统软件也无法确定层级的其他属性,例如D3Cold支持或针对管理的设备移除的要求。缺少此信息可能导致设备枚举和管理效率低下,从而导致用户体验不佳或功能丧失。
本公开的各方面促进关于能够热插拔的设备所使用的资源和/或总线编号的更精确的信息,所述能够热插拔的设备例如根复合体内部的设备或下游设备(例如,连接到主机设备的下游端口的外部连接设备)。与猜测或估计所需的资源和/或总线数不同。结果,在预留不够大或太大导致浪费的情况下,可能会发生极端情况。实施例的各方面促进D3Cold支持,而无需使用热插拔设备不可用的附加BIOS功能。实施例的各方面还促进指示诸如端口的类型之类的一般属性,其可以是供应商特定的能力。
本公开描述了PCIe指定的供应商特定扩展能力(DVSEC)能力的定义和实现,其可以由CIO/PCIe外围设备或其他设备的主机根端口和下游端口指示和处理,所述其他设备将资源要求和属性信息提供到系统软件。
系统软件(例如管理用于连接设备的主机根端口和/或下游端口的系统软件)可以解析DVSEC以确定资源要求,其允许成功枚举热插拔设备并将资源浪费保持在最低限度(包括总线/设备/功能(BDF)和存储器映射的输入/输出(MMIO))。DVSEC中的其他信息表明符合针对鲁棒的D3Cold支持的要求、“安全弹出”提示,并且设备/主机路由器差异化允许有效的设备管理。
实施例的各方面可以促进系统软件通过将下游组件或下游组件的层级(例如,下游组件的菊花链层级)识别为CIO或热插拔设备来应用针对安全性、资源分配、功率管理等的差异策略。在实施例中,DVSEC能力定义中的端口的类型字段将允许系统软件识别CIO端口。
为了支持完整的菊花链功能,系统软件必须预先分配足够的总线号和资源(例如MMIO)。预分配必须是精确的,使得没有浪费(特别是对于BDF)并且恰好足以使得热插拔的设备成功枚举而没有故障或资源重新平衡(这两者都导致用户体验不良或功能丧失)。DVSEC可以提供DVSEC功能定义中的提示,以允许系统软件确定能够热插拔的端口是否可扩展,并指示需要预留的总线数量。
DVSEC能力定义中的附加提示可以允许系统软件有效地枚举和管理端口下方的层级。这些附加提示可以包括允许系统软件区分主机和设备路由器的提示。这种区别允许系统软件差别地应用策略(例如,针对安全性)。其他提示可以包括提示,该提示允许系统软件确定针对“管理”移除设备以允许更好的用户通知(例如,安全拔出通知)的需要;和/或允许系统软件使桥接器支持D3Cold的提示,其帮助系统软件确定当相对应的电源关闭时,相对应的端口能够转换/唤醒回D0。
图3是根据本公开的实施例的连接系统300的示意性框图,该连接系统300包括通过兼容PCIe的链路连接到主机的设备的层级。系统300可以包括主机350,主机350通过兼容PCIe的链路(例如CIO)连接到一个或多个连接的下游组件,例如设备1 360和设备3 390。系统300还可以包括一个或多个菊花链下游组件,例如设备2 370,其经由设备1 306连接到主机(例如,通过菊花链类型的连接)。可以包括其他菊花链连接的下游组件,其由设备(n)380表示。
系统300的每个设备可以包括多个端口,如上面参考图2所讨论的。例如,主机可以包括根端口302,其可以是包括多个交换机和交换机端口的根复合体的一部分。根端口302可以包括上游端口304,其连接到一个或多个下游端口306-312,以促进与下游组件(例如设备1-n)发送和接收数据和控制信号。例如,设备1 360可以通过连接到主机350的下游端口308的上游端口316连接到根端口302。同样,设备3 390可以通过连接到上游端口336的下游端口312连接到主机350。
一个或多个下游端口可以是能够热插拔的,以促进所连接设备的热插拔检测,并且在一些实施例中,促进下游组件的菊花链连接。例如,下游端口308可以是能够热插拔的下游端口,其还促进其他下游设备的菊花链连接。例如,设备2 370可以通过连接到与设备1360相关联的可扩展的能够热插拔的下游端口322的上游端口324连接到根端口302。另一个下游端口318可以是连接到设备320的不可扩展下游端口。设备2 370可以包括连接到下游端口322的上游端口324。设备2可以包括连接到设备328的下游端口326(例如,连接到端点设备的不可扩展的下游端口)。设备2还可以包括能够热插拔的下游端口330并且连接到设备(n)380的上游端口332。设备(n)380表示通过与设备2 370相关联的可扩展的能够热插拔的下游端口330连接到根端口302的其他菊花链下游组件。
类似地,下游端口312可以是能够热插拔的下游端口,其通过上游端口336连接到设备3 390。设备3可以包括下游端口338和能够热插拔的下游端口342。
图3中所示的下游设备包括跨PCIe兼容的链路连接到主机350的任何外围设备或其他类型的设备,例如那些使用CIO或Thunderbolt类型连接协议的设备。设备1、2、3或n中的一个或多个(分别为360、370、390或380)可以利用这里描述的DVSEC能力定义来向主机350通知某些扩展能力以允许主机350在检测到热插拔检测时配置针对各个设备的某些属性。
图4是根据本公开的实施例的包括一个或多个属性提示比特的DVSEC能力定义400的示意图。如上所述,DVSEC能力定义400可以包括作为寄存器比特表示的一个或多个指示符或提示,其可以在主机设备检测到下游设备的连接(例如,热插拔连接)时向主机设备通知如何配置或应用某些属性。DVSEC定义400可以被传送到主机设备,主机设备可以使用系统软件来配置由DVSEC定义指示的资源或其他属性。
在第一示例中,DVSEC定义400可以包括总线编号预留提示402。总线编号提示预留可以向主机设备的系统软件指示确定要针对根端口或中间交换机下游端口(例如,以菊花链式层级)下层级预留的总线的数量。总线编号预留提示402可以定义如下:
主机设备的系统软件可以基于DVSEC定义400中的总线编号预留提示402来为连接的设备设置多个总线。尽管指示为具有比特位置7:0或23:16,但是取决于实现选择,可以在DVSEC定义400中使用其他比特位置。
在第二示例中,DVSEC定义400可以包括端口类型指示符404。端口类型指示符404可以用于向系统软件标识所连接的设备的端口类型。系统软件可以基于指示的端口类型来使用此字段以差异地应用软件策略。端口类型指示符404可以定义如下:
主机设备的系统软件可以至少部分地基于DVSEC定义400中的端口类型指示符404指示的端口类型来针对连接的设备设置策略。尽管指示为具有比特位置9:6或者15:8,取决于植入选择,可以在DVSEC定义400中使用其他比特位置。
在另一示例中,DVSEC定义400可以包括D3Cold支持指示符406。D3Cold支持指示符406适用于根端口或交换下游端口。D3Cold支持指示符包括当指示当相对应的电源关闭时,端口和连接的设备能够转换/唤醒回D0(完全打开)状态而没有问题(包括热插拔情况)时设置的位。D3Cold状态是两个D3(低功率)子状态中的一个,另一个是D3Hot状态。
D3Cold支持指示符406可以定义如下:
主机设备的系统软件使用D3Cold支持指示符406来实现针对所连接设备的功率管理机制,并且在一些情况下针对连接设备的层级。虽然指示为具有比特位置4或5,但是取决于植入选择,可以在DVSEC定义400中使用其他比特位置。
在另一示例中,DVSEC定义400可以包括主机路由器指示408。主机路由器指示408适用于主机平台上的根端口或交换机下游端口。主机路由器指示408允许系统软件确定所连接设备的端口是否是主机路由器的一部分。这种区别允许系统软件差别地应用策略(例如,为了安全性)。尽管表示为使用比特位置3:2或4,但是可以使用DVSEC定义400中的其他比特位置,这取决于实现选择。主机路由器指示408可以定义如下:
在另一示例中,DVSEC定义400可以包括安全弹出提示410。安全弹出提示410适用于切换下游端口并向系统软件提供提示以允许系统软件确定连接到此端口的PCIe端点是否需要管理移除(例如,用户可以在从端口物理移除设备之前使用软弹出)。安全弹出提示410可以定义如下:
系统软件可以使用安全弹出提示410来通知用户在移除设备之前优选安全弹出,并用设备细节填充安全弹出菜单。尽管被指示为具有比特位置2或5,但是其他比特位置可以用于DVSEC定义400中的安全弹出提示410。
在另一示例中,DVSEC定义400可以包括端口可扩展性指示符412。端口可扩展性指示符412适用于根端口或交换机下游端口。端口可扩展性指示符412向系统软件提供指示该端口是否可扩展的指示。可扩展根端口的示例是主机上的CIO端口或CIO外围设备上具有菊花链功能的端口。不可扩展端口的示例是永久附接到特定PCIe设备的PCIe端口,或者可以在初始枚举时确定完整资源要求的端口,包括在预先分配固定资源要求的情况下分配,例如用于存储卡读卡器。该信息允许操作系统基于端口类型适当地预留诸如MMIO的资源。例如,可以为不可扩展端口分配足够的资源,仅用于枚举时发现的PCIe设备,而可扩展端口可以分配更大的集合资源,以适应未来的额外资源需求。
端口可扩展性指示符412可以定义如下:
端口可扩展性指示符412允许操作系统(或更一般地,系统软件)基于端口类型适当地预留诸如MMIO的资源。例如,可以向不可扩展端口分配针对枚举时发现的PCIe设备的足够资源,而可以向可扩展端口分配更大的集合资源以适应未来的额外资源需求。尽管被指示为具有比特位置1:0,但是取决于实现选择,可以在DVSEC定义400中使用其他比特位置。
图5是根据本公开的实施例的用于基于DVSEC能力定义来实现下游组件的一个或多个属性的主机设备的过程流程图500。首先,系统软件(在主机设备或交换机下游端口上)可以检测下游组件的连接,例如外围设备或其他类型的下游设备(502)。连接的检测可以包括连接到能够热插拔的下游端口的设备的热插拔检测。在检测到设备时,系统软件可以从连接的设备接收DVSEC能力定义信息(504)。系统软件可以从能力定义信息中读取一个或多个DVSEC能力指示符,该能力定义信息向系统软件通知针对所连接的下游设备的一个或多个配置参数或属性(506)。系统软件可以使用DVSEC能力指示符为下游组件配置一个或多个操作参数,例如总线数量、端口类型、可扩展性能力、D3COLD支持状态、主机路由器指示符和/或下游组件的安全弹出要求。然后,系统软件可以基于所应用的配置参数和属性来协调主机设备与所连接的下游设备之间的数据和控制信号通信(508)。
一种互连结构架构包括快速外围组件互连(PCI)(PCIe)架构。PCIe的主要目标是使来自不同供应商的组件和设备能够以开放的架构进行互操作,跨越多个细分市场;客户端(桌面型计算机和移动设备)、服务器(标准和企业)以及嵌入式和通信设备。快速PCI是针对各种未来计算和通信平台定义的高性能、通用I/O互连。一些PCI属性(如其使用模型、加载存储架构和软件接口)已通过其修订版本得到维护,而以前的并行总线实现方式已被高度可扩展的、完全串行接口所取代。快速PCI的最新版本利用点对点互连、基于交换机的技术和分组协议方面的优势以传送新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误处理是由快速PCI支持的高级功能中的一些。
参见图6,示出了由互连一组组件的点对点链路组成的结构的实施例。系统600包括耦合到控制器集线器615的处理器605和系统存储器610。处理器605包括任何处理元件,例如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器605通过前端总线(FSB)606耦合到控制器集线器615。在一个实施例中,FSB 606是如下所述的串行点对点互连。在另一实施例中,链路606包括遵循不同互连标准的串行、差分互连架构。在一些实现方式中,系统可以包括用于实现多个协议栈的逻辑以及用于协商备用协议以在公共物理层之上运行的其他逻辑,以及其他示例特征。
系统存储器610包括任何存储器设备,例如随机存取存储器(RAM)、非易失性(NV)存储器或系统600中的设备可存取的其他存储器。系统存储器610通过存储器接口616耦合到控制器集线器615。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器615是快速外围组件互连(PCIe或PCIE)互连层级中的根集线器、根复合体或根控制器。控制器集线器615的示例包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根端口控制器/集线器。通常,术语芯片组指的是两个物理上分离的控制器集线器,即耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。注意,当前系统通常包括与处理器605集成的MCH,而控制器615以与下面描述的类似方式与I/O设备通信。在一些实施例中,可选地通过根复合体615支持对等路由。
这里,控制器集线器615通过串行链路619耦合到交换机/桥接器620。输入/输出模块617和621(也可以称为接口/端口617和621)包括/实现分层协议栈以提供控制器集线器615和交换机620之间的通信。在一个实施例中,多个设备能够耦合到交换机620。
交换机/桥620将分组/消息从设备625向上游(即,朝向根复合体顺着层级向上)路由到控制器集线器615并且向下游(即从远离根端口控制器顺着层级向下)从处理器605或系统存储器610路由到设备625。在一个实施例中,交换机620被称为多个虚拟PCI到PCI桥设备的逻辑组件。设备625包括要耦合到电子系统的任何内部或外部设备或组件,例如I/O设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常在PCIe术语中,例如设备,被称为端点。尽管没有具体示出,但是设备625可以包括PCIe到PCI/PCI-X桥,以支持传统或其他版本的PCI设备。PCIe中的端点设备通常被分类为传统、PCIe或根复合体集成端点。
图形加速器630还通过串行链路632耦合到控制器集线器615。在一个实施例中,图形加速器630耦合到MCH,而MCH耦合到ICH。然后将交换机620和相应地I/O设备625耦合到ICH。I/O模块631和618还用于实现分层协议栈以在图形加速器630和控制器集线器615之间进行通信。类似于上面的MCH讨论,图形控制器或图形加速器630本身可以集成在处理器605中。
转到图7,图7示出了分层协议栈的实施例。分层协议栈700包括任何形式的分层通信栈,例如快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或其他分层栈。尽管下面参考图6-图9进行的讨论涉及PCIe栈,但是相同的概念可以应用于其他互连栈。在一个实施例中,协议栈200是PCIe协议栈,包括事务层705、链路层710和物理层720。接口,例如图1中的接口617、618、621、622、626和631,可以表示为通信协议栈700。作为通信协议栈的表示也可以称为实现/包括协议栈的模块或接口。
快速PCI使用分组来在组件之间传递信息。在事务层705和数据链路层710中形成分组以将信息从发送组件携带到接收组件。当发送的分组流经其他层时,它们会扩展为处理这些层的分组所需的附加信息。在接收侧,发生反向过程,并且分组从其物理层720表示变换为数据链路层710表示,并且最终(对于事务层分组)变换为可以由接收设备的事务层705处理的形式。
事务层
在一个实施例中,事务层705用于提供设备的处理核心和互连架构(例如,数据链路层710和物理层720)之间的接口。在这方面,事务层705的主要职责是分组的汇编和反汇编(即事务层分组或TLP)。转换层705通常管理针对TLP的基于信用的流控制。PCIe实现分离事务,即具有由时间分隔的请求和响应的事务,允许链接在目标设备收集针对响应的数据时携带其他业务。
此外,PCIe利用基于信用的流控制。在该方案中,设备在事务层705中针对每个接收缓冲器通告初始信用量。在链路的相对端处的外部设备,例如图1中的控制器集线器115,对由每个TLP消费的信用数进行计数。如果事务未超过信用额度,则可以发送事务。在接收到响应后,将恢复一定数量的信用。信用方案的一个优点是,如果没有遇到信用额度,信用返还的延迟不会影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括将数据传送到存储器映射位置或从存储器映射位置传送数据的读请求和写请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如短地址格式,例如32位地址,或长地址格式,例如64位地址。配置空间事务用于访问PCIe设备的配置空间。用于配置空间的事务包括读请求和写请求。定义消息空间事务(或者简单消息)以支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务层705组装分组报头/有效载荷706。当前分组报头/有效载荷的格式可以在PCIe规范网站的PCIe规范中找到。
快速参考图8,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符800是用于携带事务信息的机制。在这方面,事务描述符800支持系统中的事务的识别。其他潜在用途包括跟踪默认事务排序的修改以及事务与通道的关联。
事务描述符800包括全局标识符字段802、属性字段804和通道标识符字段806。在所示示例中,全局标识符字段802被描绘为包括本地事务标识符字段808和源标识符字段810。在一个实施例中,全局事务标识符802对于所有未完成的请求是唯一的。
根据一种实现方式,本地事务标识符字段808是由请求代理生成的字段,并且对于需要完成该请求代理的所有未完成请求它是唯一的。此外,在该示例中,源标识符810在PCIe层级内唯一地标识请求者代理。因此,与源ID 810一起,本地事务标识符808字段提供层级域内的事务的全局标识。
属性字段804指定事务的特征和关系。在这方面,属性字段804可能用于提供允许修改事务的默认处理的附加信息。在一个实施例中,属性字段804包括优先级字段812、预留字段814、排序字段816和非窥探字段818。这里,优先级子字段812可以由发起者修改以向事务分配优先级。预留属性字段814预留用于将来或供应商定义的用途。可以使用预留属性字段来实现使用优先级或安全性属性的可能使用模型。
在该示例中,排序属性字段816用于提供传达可以修改默认排序规则的排序类型的可选信息。根据一个示例实现方式,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示放宽排序,其中写入可以在相同方向上传递写入,并且读取完成可以在相同方向上传递写入。窥探属性字段818用于确定是否窥探了事务。如图所示,通道ID字段806标识与事务相关联的通道。
链路层
链路层710(也称为数据链路层710)充当事务层705和物理层720之间的中间级。在一个实施例中,数据链路层710的职责是提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层710的一侧接受由事务层705组装的TLP,应用分组序列标识符711,即标识号或分组号,计算并应用错误检测码,即CRC 712,并将修改的TLP提交给物理层720用于跨物理到外部设备的传输。
物理层
在一个实施例中,物理层720包括逻辑子块721和电子块722,以物理地将分组发送到外部设备。这里,逻辑子块721负责物理层721的“数字”功能。在这方面,逻辑子块包括用于准备用于由物理子块722发送的传出信息的发送部分,以及用于在将所接收的信息传递到链路层710之前识别和准备所接收的信息的接收部分。
物理块722包括发射器和接收器。发射器由逻辑子块721提供符号,发射器将符号串行化并发送到外部设备。接收器被提供有来自外部设备的串行符号,并将接收的信号转换为位流。位流被反序列化并提供给逻辑子块721。在一个实施例中,采用8b/10b传输码,其中发送/接收10位符号。这里,特殊符号用于利用帧723对分组进行成帧。此外,在一个示例中,接收器还提供从传入串行流中恢复的符号时钟。
如上所述,尽管参考PCIe协议栈的特定实施例讨论了事务层705、链路层710和物理层720,但是分层协议栈不限于此。实际上,可以包括/实现任何分层协议。作为示例,表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;用于对分组进行排序的第二层,即链路层;以及用于发送分组的第三层,即物理层。作为具体示例,使用公共标准接口(CSI)分层协议。
接下来参考图9,示出了PCIe串行点对点结构的实施例。尽管示出了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为它包括用于发送串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个低压差分驱动信号对:发送对906/911和接收对912/907。因此,设备905包括用于将数据发送到设备910的传输逻辑906以及用于从设备910接收数据的接收逻辑907。换句话说,在PCIe链接中包含两个发送路径,即路径916和917,以及两个接收路径,即路径918和919。
传输路径指的是用于发送数据的任何路径,例如传输线、铜线、光学线、无线通信通道、红外通信链路或其他通信路径。两个设备(例如设备905和设备910)之间的连接被称为链路,例如链路915。链路可以支持一个通道-每个通道代表一组差分信号对(一对用于传输,一对用于接收)。为了对带宽进行缩放,链路可以聚合由xN表示的多个通道,其中N是任何支持的链路宽度,例如1、2、4、8、12、16、32、64或更宽。
差分对指的是两个发送路径,例如线路916和917,以用于发送差分信号。作为示例,当线916从低电压电平切换到高电压电平,即上升沿时,线路917从高逻辑电平驱动到低逻辑电平,即下降沿。差分信号潜在地表现出更好的电特性,例如更好的信号完整性,即交叉耦合、电压过冲/下冲、振铃等。这允许更好的定时窗口,这实现更快的传输频率。
注意,上述装置、方法和系统可以在如上所述的任何电子设备或系统中实现。作为具体说明,下图提供了用于利用如本文所述的本发明的示例性系统。由于更详细地描述了以下系统,因此从上面的讨论中公开,描述和重新考虑了许多不同的互连。并且显而易见的是,上述进步可以应用于那些互连、结构或架构中的任何一种。
转到图10,示出了由包括用于执行指令的执行单元的处理器形成的示例性计算机系统的框图,其中互连中的一个或多个实现了根据本发明的一个实施例的一个或多个特征。系统1000包括组件(例如,处理器1002),其使用包括以下逻辑的执行单元,所述逻辑用于根据本发明诸如在本文描述的实施例中执行用于处理数据的算法。系统1000表示基于可从加利福尼亚州圣克拉拉的英特尔公司获得的PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,但是其他系统(包括具有其他微处理器、工程工作站、机顶盒等的PC)也可以使用。在一个实施例中,样本系统1000执行可从华盛顿州雷蒙德市的微软公司获得的WINDOWSTM操作系统的版本,但是也可以使用其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面。因此,本发明的实施例不限于硬件电路和软件的任何特定组合。
实施例不限于计算机系统。本发明的替代实施例可以用在诸如手持设备和嵌入式应用之类的其他设备中。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持式PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可执行根据至少一个实施例的一个或多个指令的任何其他系统。
本文所示出的实施例中,处理器1002包括用于实现执行至少一个指令的算法的一个或多个执行单元1008。一个实施例可以在单个处理器桌面型计算机或服务器系统的上下文中被描述,但是替代实施例可以被包括在多处理器系统中。系统1000是“集线器”系统架构的示例。计算机系统1000包括用于处理数据信号的处理器1002。作为一个示出性示例,处理器1002包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集组合的处理器、或者任何其他处理器设备,例如数字信号处理器。处理器1002耦合到处理器总线1010,处理器总线1010在处理器1002与系统1000中的其它组件之间发送数据信号。系统1000的元件(例如图形加速器1012、存储器控制器集线器1016、存储器1020、I/O控制器集线器1024、无线收发机1026、闪存BIOS1028、网络控制器1034、音频控制器1036、串行扩展端口1038、I/O控制器1040等)执行本领域技术人员公知的常规功能。
在一个实施例中,处理器1002包括一级(LI)内部高速缓冲存储器1004。取决于架构,处理器1002可具有单个内部高速缓存或多级内部高速缓存。其他实施例包括取决于具体实现和需要的内部和外部高速缓存的组合。寄存器文件1006用于在各种寄存器中存储不同类型的数据,所述各种寄存器包括整数寄存器、浮点寄存器、矢量寄存器、分组寄存器、影子寄存器、检查点寄存器、状态寄存器和指令指针寄存器。
包括用于执行整数和浮点操作的逻辑的执行单元1008也驻留在处理器1002中。在一个实施例中,处理器1002包括用于存储微代码的微代码(ucode)ROM,所述微代码在执行时将执行用于某些宏指令的算法或处理复杂的场景。本文中,微代码可能是可更新的,以处理针对处理器1002的逻辑错误/修复。对于一个实施例,执行单元1008包括用于处理封装指令集1009的逻辑。通过将封装的指令集1009包括在通用处理器1002的指令集以及用于执行指令的相关联的电路中,许多多媒体应用所使用的操作可以使用通用处理器1002中的封装数据来执行。因此,通过使用处理器的数据总线的全部宽度以用于对封装数据执行操作,许多多媒体应用被加速并且更高效地执行。这可能消除了在处理器的数据总线上传输更小的数据单元以执行一个或多个操作的需要,一次一个数据元素。
执行单元1008的替代实施例也可以用在微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。系统1000包括存储器1020。存储器1020包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储设备。存储器1020存储将由处理器1002执行的数据信号所表示的指令和/或数据。
注意,本发明的上述特征或方面中的任何一个可以用在图10中所示的一个或多个互连上。例如,未示出的用于耦合处理器1002的内部单元的管芯上互连(ODI)实现了上述本发明的一个或多个方面。或者,本发明与处理器总线1010(例如,英特尔快速路径互连(QPI)或其他已知的高性能计算互连)、到存储器1020的高带宽存储器路径1018、到图形加速器1012的点对点链路(例如,兼容快速外围组件互连(PCIe)的结构)、控制器集线器互连1022、I/O或用于耦合其他所示的组件的其他互连(例如,USB、PCI、PCIe)相关联。这些组件的一些示例包括音频控制器1036、固件集线器(闪速BIOS)1028、无线收发机1026、数据存储装置1024、包含用户输入和键盘接口1042的传统I/O控制器1010,诸如通用串行总线(USB)之类的串行扩展端口1038和网络控制器1034。数据存储设备1024可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
现在参照图11,示出了根据本发明实施例的第二系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并且包括经由点对点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180中的每一个可以是某一版本的处理器。在一个实施例中,1152和1154是诸如英特尔的快速路径互连(QPI)架构之类的串行、点对点一致互连结构的一部分。结果,本发明可以在QPI架构内实现。
尽管仅示出了两个处理器1170、1180,但是应该理解的是,本发明的范围不限于此。在其他实施例中,一个或多个额外的处理器可以存在于给定的处理器中。
示出处理器1170和1180分别包括集成存储器控制器单元1172和1182。处理器1170还包括作为其总线控制器单元的一部分的点对点(P-P)接口1176和1178;类似地,第二处理器1180包括P-P接口1186和1188。处理器1170、1180可以使用P-P接口电路1178、1188经由点对点(P-P)接口1150交换信息。如图11中所示,IMC 1172和1182将处理器耦合到各自的存储器,即存储器1132和存储器1134,存储器1132和存储器1134可以是本地附接到各自处理器的主存储器的部分。
处理器1170、1180的每个使用点对点接口电路1176、1194、1186、1198经由单独的PP接口1152、1154与芯片组1190交换信息。芯片组1190还沿着高性能图形互连1139经由接口电路1192与高性能图形电路1138交换信息。
共享高速缓存(未示出)可被包括在任一处理器中或在两个处理器之外;还经由P-P互连与处理器连接,使得如果处理器被置于低功率模式,则可以将任一个或两个处理器的本地高速缓存信息存储在共享高速缓存中。
芯片组1190可以经由接口1196耦合到第一总线1116。在一个实施例中,第一总线1116可以是外围组件互连(PCI)总线,或者诸如快速PCI总线的总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图11所示,各种I/O设备1114连同将第一总线1116耦合到第二总线1120的总线桥1118一起耦合到第一总线1116。在一个实施例中,第二总线1120包括低引脚数(LPC)总线。在一个实施例中,各种设备耦合到第二总线1120,所述各种设备包括例如键盘和/或鼠标1122、通信设备1127和存储单元1128(例如通常包括指令/代码和数据1130的磁盘驱动器或其他大容量存储设备)。此外,音频I/O 1124被示出为耦合到第二总线1120。注意,其他架构是可能的,其中所包括的组件和互连架构有所不同。例如,代替图11的点对点架构,系统可以实现多分支总线或其他这样的架构。
使用存在于平台中的各种惯性和环境传感器,可以实现许多不同的用例。这些用例可以实现高级计算操作,包括感知计算,还允许关于功率管理/电池寿命、安全性和系统响应的增强。
例如关于功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,确定平台的位置中的环境光条件,并相应地控制显示器的强度。因此,在某些光线条件下,显示器操作所消耗的功率会降低。
关于安全操作,基于从传感器获得的上下文信息(诸如位置信息),可以确定用户是否被允许访问某些安全文档。例如,用户可以被准许在工作地点或家庭地点访问这些文档。但是,当平台出现在公共场所时,防止用户访问这些文档。在一个实施例中,该确定基于位置信息,所述位置信息例如经由GPS传感器或地标的相机识别而确定。其他安全操作可以包括提供彼此近距离范围内的设备的配对,所述设备例如本文所述的便携式平台和用户的桌面型计算机、移动电话等等。在某些实现方式中,在这些设备被这样配对时,某些共享经由近场通信实现。但是,当设备超出一定范围时,可以禁用这样的共享。此外,当本文描述的平台与智能电话配对时,当设备在公共场所移动超过彼此的预定距离时,警报可以被配置为触发。相反,当这些配对的设备处于安全位置,例如工作场所或家庭位置时,设备可以超过该预定限制而不触发这样的警报。
响应也可以使用传感器信息来增强。例如,即使当平台处于低功率状态时,传感器仍然可以被启用以相对较低的频率运行。因此,例如由惯性传感器、GPS传感器等确定的平台位置的任何改变被确定。如果没有这样的改变被注册,则到诸如Wi-FiTM接入点或类似的无线使能器之类的先前的无线集线器的更快的连接发生,因为在这种情况下不需要扫描可用的无线网络资源。因此,实现从低功率状态唤醒时的更高级别的响应。
应当理解,可以使用经由如本文所述的平台内的集成传感器获得的传感器信息来启用许多其他用例,并且上述示例仅用于示出的目的。使用如本文所述的系统,感知计算系统可以允许添加包括姿势识别在内的替代输入模态,并且使系统能够感测用户操作和意图。
在一些实施例中,可以存在一个或多个红外或其他热感测元件或用于感测用户的存在或移动的任何其他元件。这样的感测元件可以包括多个不同的元件一起工作、按顺序工作或者两者兼有。例如,感测元件包括提供初始感测(诸如光或声音投射)的元件,接着通过例如超声波飞行时间相机或图案化的光相机感测姿势检测。
另外在一些实施例中,该系统包括用于产生照明线的光发生器。在一些实施例中,该线提供关于虚拟边界(即空间中的假想或虚拟位置)的视觉提示,其中通过或突破虚拟边界或平面的用户的动作被解释为与计算系统接合的意图。在一些实施例中,当计算系统转变为关于用户的不同状态时,照明线可以改变颜色。照明线可以被用来针对用户提供空间中的虚拟边界的视觉提示,并且照明线可以由系统使用来确定关于用户的计算机的状态中的转变,包括确定用户希望何时与计算系统接合。
在一些实施例中,计算机感测用户位置,并操作以将用户的手移动通过虚拟边界解释为指示用户使用计算机的意图的姿势。在一些实施例中,在用户穿过虚拟线或平面时,由光发生器生成的光可以改变,由此向用户提供视觉反馈,即用户已经进入提供姿势以向计算机提供输入的区域。
显示屏可以提供关于用户的计算系统的状态的转变的视觉指示。在一些实施例中,第一屏幕在第一状态中提供,在第一状态中用户的存在通过系统感测,诸如使用感测元件中的一个或多个。
在一些实现方式中,该系统用于例如通过面部识别来感测用户身份。本文中,到第二屏幕的转变可以在第二状态中提供,在第二状态中计算系统已经识别出用户身份,其中该第二屏幕向用户提供视觉反馈,即用户已经转变到新状态。向第三屏幕的转变可以在第三状态中发生,在第三状态中在用户已经确认对用户的识别。
在一些实施例中,计算系统可以使用转变机制来确定针对用户的虚拟边界的位置,其中虚拟边界的位置可以随着用户和上下文而变化。计算系统可以生成诸如照明线的光,以指示用于使用系统的虚拟边界。在一些实施例中,计算系统可以处于等待状态,并且可以以第一颜色来产生光。计算系统可以检测用户是否已经到达穿过虚拟边界,诸如通过使用感测元件来感测用户的存在和移动。
在一些实施例中,如果用户已经被检测为已经越过了虚拟边界(诸如用户的手比虚拟边界线更靠近计算系统),则计算系统可以转变为用于接收来自用户的姿势输入的状态,其中用于指示转变的机制可以包括指示虚拟边界改变为第二颜色的光。
在一些实施例中,计算系统然后可以确定是否检测到姿势移动。如果检测到姿势移动,则计算系统可以继续进行姿势识别过程,该姿势识别过程可以包括使用来自姿势数据库的数据,姿势数据库可以驻留在计算设备的存储器中或者可以由计算设备以其他方式访问。
如果用户的姿势被识别,则计算系统可以响应于输入来执行功能,并且如果用户在虚拟边界内,则返回以接收额外的姿势。在一些实施例中,如果姿势未被识别,则计算系统可转变成错误状态,其中用于指示错误状态的机制可包括指示虚拟边界改变为第三颜色的光,如果用户在使用计算系统的虚拟边界内则系统返回以接收附加姿势。
如上所述,在其他实施例中,该系统可以被配置为可以以至少两种不同模式(平板模式和笔记本模式)使用的可转换平板计算机系统。可转换系统可以具有两个面板,即显示面板和基板,使得在平板模式中,两个面板彼此叠置设置。在平板模式中,显示面板面向外并且可以提供如传统平板计算机中发现的触摸屏功能。在笔记本模式下,两个面板可以以打开的蛤壳配置布置。
在各种实施例中,加速度计可以是具有至少50Hz的数据速率的3轴加速度计。还可以包括陀螺仪,其可以是三轴陀螺仪。另外,可能存在电子罗盘/磁力计。而且,可以提供一个或多个接近传感器(例如,用于打开盖以感测人何时接近(或不接近)系统并调整功率/性能以延长电池寿命)。对于某些OS的传感器融合功能,包括加速度计、陀螺仪和罗盘可以提供增强的功能。另外,经由具有实时时钟(RTC)的传感器集线器,当系统的其余部分处于低功率状态时,可实现来自传感器机构的唤醒以接收传感器输入。
在一些实施例中,内盖/显示器打开开关或传感器以指示盖何时关闭/打开,并且可用于将系统置于连接待机状态或自动从连接待机状态唤醒。其他系统传感器可以包括用于内部处理器、存储器和皮肤温度监控的ACPI传感器,以基于感测的参数来实现对处理器和系统操作状态的改变。
在一个实施例中,OS可以是实现连接待机(本文也被称为Win8 CS)的8 OS。Windows 8连接待机或具有类似状态的另一个OS可以经由如本文所述的平台来提供非常低的超空闲功率,以使得应用能够以非常低的功耗保持连接,例如保持连接到基于云的位置。平台可以支持3种功率状态,即屏幕开(正常);连接待机状态(作为默认的“关闭状态”);关机(功耗为零瓦)。因此,在连接待机状态下,即使屏幕关闭,平台仍然在逻辑上打开(功率水平最低)。在该平台中,可以使功率管理对应用透明,并保持持续的连接,部分原因是由于卸载技术使最低功耗的组件能够执行操作。
现在参考图12,示出了根据本发明实施例的计算机系统中存在的组件的框图。如图12所示,系统1200包括组件的任何组合。这些组件可以被实现为适用于计算机系统的IC、其部分、分立的电子设备或其他模块、逻辑、硬件、软件、固件或其组合、或者实现为另外包含在计算机系统的机箱内的组件。还要注意的是,图12的框图旨在示出计算机系统的许多组件的高级视图。然而,应该理解,可以省略所示的组件中的一些,可以存在附加的组件,并且在其他实现中可以出现所示组件的不同布置。结果,上述的本发明可以在下面所示出或描述的互连的一个或多个的任何部分中实现。
如图12所示,在一个实施例中,处理器1210包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。在所示出的实现方式中,处理器1210充当用于与系统1200的各种组件中的许多进行通信的主处理单元和中央集线器。作为一个示例,处理器1200被实现为片上系统(SoC)。作为具体的示出性示例,处理器1210包括可从加利福尼亚州圣克拉拉的英特尔公司获得的基于Architecture CoreTM的处理器,例如i3、i5、i7或其他此类处理器。然而,要理解的是,其他低功率处理器,诸如可从加利福尼亚州桑尼维尔市的AMD公司(Advanced Micro Devices,Inc.)获得的其他低功率处理器、来自加利福尼亚州桑尼维尔的MIPS科技公司的基于MIPS的设计、来自ARM控股有限公司授权的基于ARM的设计、或其客户,或其许可证持有者或采用者可以替代地存在于其他实施例中,诸如Apple A5/A6处理器、Qualcomm Snapdragon处理器或TI OMAP处理器。请注意,这类处理器的客户版本中的许多都经过修改和变化,然而,它们可以支持或识别执行由处理器许可方规定的定义的算法的特定指令集。在本文中,微架构的实现可能会有所不同,但处理器的架构功能通常是一致的。在一个实现方式中关于处理器1210的架构和操作的某些细节将在下面进一步讨论以提供示出性示例。
在一个实施例中,处理器1210与系统存储器1215通信。作为示出性的示例,在一个实施例中其可以经由多个存储器设备来实现以提供给定量的系统存储器。作为示例,存储器可以符合基于联合电子设备工程委员会(JEDEC)的低功率双倍数据速率(LPDDR)设计,例如根据JEDEC JESD 209-2E(2009年4月公布)的当前的LPDDR2标准,或者被称为LPDDR3或LPDDR4的下一代LPDDR标准,它将提供对LPDDR2的扩展以增加带宽。在各种实现中,单独的存储器设备可以具有不同的封装类型,例如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(14P)。在一些实施例中,这些设备被直接焊接到主板上以提供较低轮廓的解决方案,而在其他实施例中,设备被配置为一个或多个存储器模块,所述一个或多个存储器模块继而通过给定的连接器耦合到主板。当然,其他存储器实现方式也是可能的,例如其他类型的存储器模块,例如不同种类的双列直插式存储器模块(DIMM),包括但不限于微型DIMM、微小型DIMM。在特定示出性实施例中,存储器的大小在2GB到16GB之间,并且可以被配置为经由球栅阵列(BGA)焊接到主板上的DDR3LM封装或LPDDR2或LPDDR3存储器。
为了提供对诸如数据、应用、一个或多个操作系统等之类的信息的持久存储,大容量存储装置1220还可以耦合到处理器1210。在各种实施例中,为了实现更薄和更轻的系统设计以及为了提高系统响应,可以经由SSD来实现这种大容量存储。然而在其他实施例中,大容量存储装置可主要使用具有较少量的SSD存储的硬盘驱动器(HDD)来充当SSD高速缓存来实现以在下电事件期间上下文状态和其他这样的信息的非易失性存储,使得在重新启动系统活动时可能发生快速上电。也在图12中示出,闪存设备1222可以例如经由串行外围接口(SPI)耦合到处理器1210。该闪存设备可以提供系统软件的非易失性存储,所述系统软件包括基本输入/输出软件(BIOS)以及系统的其他固件。
在各种实施例中,系统的大容量存储由SSD单独实现或实现为具有SSD高速缓存的盘、光学驱动器或其他驱动器。在一些实施例中,大容量存储装置与恢复(RST)高速缓存模块一起被实现为SSD或HDD。在各种实现方式中,HDD提供320GB-4太字节(TB)及以上之间的存储,而RST高速缓存由具有24GB-256GB容量的SSD实现。请注意,此类SSD高速缓存可以被配置为单级高速缓存(SLC)或多级高速缓存(MLC)选项,以提供适当的响应级别。在仅有固态硬盘的选项中,模块可以安装在各种位置,例如在mSATA或NGFF插槽中。作为示例,SSD容量的范围从120GB到1TB。
系统1200中可以存在各种输入/输出(IO)设备。图12的实施例所具体示出的是显示器1224,其可以是配置在机箱的盖部分内的高分辨率LCD或LED面板。该显示面板还可以提供触摸屏1225,例如在显示面板外部进行调整,使得经由与该触摸屏的用户交互,可以将用户输入提供给系统以实现期望的操作,例如关于显示信息、访问信息等等。在一个实施例中,显示器1224可以经由可以实现为高性能图形互连的显示互连耦合到处理器1210。触摸屏1225可以经由另一互连耦合到处理器1210,在一个实施例中,该另一互连可以是I2C互连。如图12中进一步所示,除了触摸屏1225之外,通过触摸的用户输入也可以经由触摸板1230发生,触摸板1230可以被配置在机箱内并且还可以被耦合到与触摸屏1225相同的I2C互连。
显示面板可以以多种模式操作。在第一模式中,可以将显示面板布置成透明状态,其中显示面板对可见光是透明的。在各种实施例中,除了围绕周边的边框之外,显示面板的大部分可以是显示器。当系统以笔记本模式操作并且显示面板以透明状态操作时,用户可以查看显示面板上呈现的信息,同时还能够查看显示器后面的对象。另外,显示面板上显示的信息可以由位于显示器后面的用户查看。或者,显示面板的操作状态可以是其中可见光不通过显示面板发送的不透明状态。
在平板模式中,系统被折叠关闭,使得当基板的底表面搁置在表面上时或由用户持有时,显示面板的后显示表面停留在使得其朝向使用者面向外的位置。在平板计算机操作模式中,后显示表面扮演显示器和用户界面的角色,因为该表面可以具有触摸屏功能并且可以执行诸如平板设备之类的常规触摸屏设备的其它已知功能。为此,显示面板可以包括设置在触摸屏层和前显示表面之间的透明度调节层。在一些实施例中,透明度调节层可以是电致变色层(EC)、LCD层或EC层和LCD的组合层。
在各种实施例中,显示器可以具有不同的尺寸,例如11.6”或13.3”的屏幕,并且可以具有16:9的纵横比,并且具有至少300尼特的亮度。此外,显示器可以具有全高清(HD)分辨率(至少1920×1080p),与兼容嵌入式显示器端口(eDP),并且是具有面板自刷新的低功率面板。
关于触摸屏能力,该系统可以提供多点触摸电容式并且具有至少5个手指能力的显示器多点触摸面板。并且在一些实施例中,显示器可以是具有10个手指能力的。在一个实施例中,触摸屏被容纳在用于低摩擦的耐损伤和刮擦玻璃和涂层(例如Gorilla GlassTM或Gorilla Glass 2TM)内,以减少“手指烧伤”并避免“手指跳动”。为了提供增强的触摸体验和响应性,在一些实现方式中,触摸面板具有多点触摸功能,诸如在夹捏缩放期间每个静态视图少于2帧(30Hz),以及每帧(30Hz)200ms内小于1cm的单点触摸功能(手指到指针的滞后)。在一些实现方式中,显示器支持边缘到边缘玻璃,其具有也与面板表面齐平的最小屏幕边框,并且在使用多点触摸时限制IO干扰。
为了感知计算和其它目的,各种传感器可以存在于系统内并且可以以不同的方式耦合到处理器1210。某些惯性和环境传感器可以通过传感器集线器1240(例如,经由I2C互连)耦合到处理器1210。在图12所示的实施例中,这些传感器可以包括加速度计1241,环境光传感器(ALS)1242,罗盘1243和陀螺仪。其他环境传感器可以包括一个或多个热传感器1246,其在一些实施例中所述一个或多个热传感器1246经由系统管理总线(SMBus)总线耦合到处理器1210。
使用存在于平台中的各种惯性和环境传感器,可以实现许多不同的用例。这些用例可以实现高级计算操作,包括感知计算,还允许关于功率管理/电池寿命、安全性和系统响应的增强。
例如关于功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,确定平台的位置中的环境光条件,并相应地控制显示器的强度。因此,在某些光线条件下,显示器操作所消耗的功率会降低。
关于安全操作,基于从传感器获得的上下文信息(诸如位置信息),可以确定用户是否被允许访问某些安全文档。例如,用户可以被准许在工作地点或家庭地点访问这些文档。但是,当平台出现在公共场所时,防止用户访问这些文档。在一个实施例中,该确定基于位置信息,所述位置信息例如经由GPS传感器或地标的相机识别而确定。其他安全操作可以包括提供彼此近距离范围内的设备的配对,所述设备例如本文所述的便携式平台和用户的桌面型计算机、移动电话等等。在某些实现方式中,在这些设备被这样配对时,某些共享经由近场通信实现。但是,当设备超出一定范围时,可以禁用这样的共享。此外,当本文描述的平台与智能电话配对时,当设备在公共场所移动超过彼此的预定距离时,警报可以被配置为触发。相反,当这些配对的设备处于安全位置,例如工作场所或家庭位置时,设备可以超过该预定限制而不触发这样的警报。
响应也可以使用传感器信息来增强。例如,即使当平台处于低功率状态时,传感器仍然可以被启用以相对较低的频率运行。因此,例如由惯性传感器、GPS传感器等确定的平台位置的任何改变被确定。如果没有这样的改变被注册,则到诸如Wi-FiTM接入点或类似的无线使能器之类的先前的无线集线器的更快的连接发生,因为在这种情况下不需要扫描可用的无线网络资源。因此,实现从低功率状态唤醒时的更高级别的响应。
应当理解,可以使用经由如本文所述的平台内的集成传感器获得的传感器信息来启用许多其他用例,并且上述示例仅用于示出的目的。使用如本文所述的系统,感知计算系统可以允许添加包括姿势识别在内的替代输入模态,并且使系统能够感测用户操作和意图。
在一些实施例中,可以存在一个或多个红外或其他热感测元件或用于感测用户的存在或移动的任何其他元件。这样的感测元件可以包括多个不同的元件一起工作、按顺序工作或者两者兼有。例如,感测元件包括提供初始感测(诸如光或声音投射)的元件,接着通过例如超声波飞行时间相机或图案化的光相机感测姿势检测。
另外在一些实施例中,该系统包括用于产生照明线的光发生器。在一些实施例中,该线提供关于虚拟边界(即空间中的假想或虚拟位置)的视觉提示,其中通过或突破虚拟边界或平面的用户的动作被解释为与计算系统接合的意图。在一些实施例中,当计算系统转变为关于用户的不同状态时,照明线可以改变颜色。照明线可以被用来针对用户提供空间中的虚拟边界的视觉提示,并且照明线可以由系统使用来确定关于用户的计算机的状态中的转变,包括确定用户希望何时与计算系统接合。
在一些实施例中,计算机感测用户位置,并操作以将用户的手移动通过虚拟边界解释为指示用户使用计算机的意图的姿势。在一些实施例中,在用户穿过虚拟线或平面时,由光发生器生成的光可以改变,由此向用户提供视觉反馈,即用户已经进入提供姿势以向计算机提供输入的区域。
显示屏可以提供关于用户的计算系统的状态的转变的视觉指示。在一些实施例中,第一屏幕在第一状态中提供,在第一状态中用户的存在通过系统感测,诸如使用感测元件中的一个或多个。
在一些实现方式中,该系统用于例如通过面部识别来感测用户身份。本文中,到第二屏幕的转变可以在第二状态中提供,在第二状态中计算系统已经识别出用户身份,其中该第二屏幕向用户提供视觉反馈,即用户已经转变到新状态。向第三屏幕的转变可以在第三状态中发生,在第三状态中在用户已经确认对用户的识别。
在一些实施例中,计算系统可以使用转变机制来确定针对用户的虚拟边界的位置,其中虚拟边界的位置可以随着用户和上下文而变化。计算系统可以生成诸如照明线的光,以指示用于使用系统的虚拟边界。在一些实施例中,计算系统可以处于等待状态,并且可以以第一颜色来产生光。计算系统可以检测用户是否已经到达穿过虚拟边界,诸如通过使用感测元件来感测用户的存在和移动。
在一些实施例中,如果用户已经被检测为已经越过了虚拟边界(诸如用户的手比虚拟边界线更靠近计算系统),则计算系统可以转变为用于接收来自用户的姿势输入的状态,其中用于指示转变的机制可以包括指示虚拟边界改变为第二颜色的光。
在一些实施例中,计算系统然后可以确定是否检测到姿势移动。如果检测到姿势移动,则计算系统可以继续进行姿势识别过程,该姿势识别过程可以包括使用来自姿势数据库的数据,姿势数据库可以驻留在计算设备的存储器中或者可以由计算设备以其他方式访问。
如果用户的姿势被识别,则计算系统可以响应于输入来执行功能,并且如果用户在虚拟边界内,则返回以接收额外的姿势。在一些实施例中,如果姿势未被识别,则计算系统可转变成错误状态,其中用于指示错误状态的机制可包括指示虚拟边界改变为第三颜色的光,如果用户在使用计算系统的虚拟边界内则系统返回以接收附加姿势。
如上所述,在其他实施例中,该系统可以被配置为可以以至少两种不同模式(平板模式和笔记本模式)使用的可转换平板计算机系统。可转换系统可以具有两个面板,即显示面板和基板,使得在平板模式中,两个面板彼此叠置设置。在平板模式中,显示面板面向外并且可以提供如传统平板计算机中发现的触摸屏功能。在笔记本模式下,两个面板可以以打开的蛤壳配置布置。
在各种实施例中,加速度计可以是具有至少50Hz的数据速率的3轴加速度计。还可以包括陀螺仪,其可以是三轴陀螺仪。另外,可能存在电子罗盘/磁力计。而且,可以提供一个或多个接近传感器(例如,用于打开盖以感测人何时接近(或不接近)系统并调整功率/性能以延长电池寿命)。对于某些OS的传感器融合功能,包括加速度计、陀螺仪和罗盘可以提供增强的功能。另外,经由具有实时时钟(RTC)的传感器集线器,当系统的其余部分处于低功率状态时,可实现来自传感器机构的唤醒以接收传感器输入。
在一些实施例中,内盖/显示器打开开关或传感器以指示盖何时关闭/打开,并且可用于将系统置于连接待机状态或自动从连接待机状态唤醒。其他系统传感器可以包括用于内部处理器、存储器和皮肤温度监控的ACPI传感器,以基于感测的参数来实现对处理器和系统操作状态的改变。
在一个实施例中,OS可以是实现连接待机(本文也被称为Win8 CS)的8 OS。Windows 8连接待机或具有类似状态的另一个OS可以经由如本文所述的平台来提供非常低的超空闲功率,以使得应用能够以非常低的功耗保持连接,例如保持连接到基于云的位置。平台可以支持3种功率状态,即屏幕开(正常);连接待机状态(作为默认的“关闭状态”);关机(功耗为零瓦)。因此,在连接待机状态下,即使屏幕关闭,平台仍然在逻辑上打开(功率水平最低)。在该平台中,可以使功率管理对应用透明,并保持持续的连接,部分原因是由于卸载技术使最低功耗的组件能够执行操作。
在图12中还可以看出,各种外围设备可以经由低引脚数(LPC)互连耦合到处理器1210。在所示的实施例中,各种组件可以通过嵌入式控制器1235耦合。这样的组件可以包括键盘1236(例如,经由PS2接口耦合)、风扇1237和热传感器1239。在一些实施例中,触摸板1230也可以经由PS2接口耦合到EC 1235。另外,诸如根据2003年10月2日的可信计算组(TCG)TPM规范版本1.2的可信平台模块(TPM)1238之类的安全处理器也可经由该LPC互连耦合到处理器1210。然而,理解的是,本发明的范围在这方面不受限制,并且安全信息的安全处理和存储可以位于另一受保护的位置,例如安全协处理器中的静态随机存取存储器(SRAM),或者仅在受安全飞地(SE)处理器模式保护时才被解密的加密的数据块。
在特定的实现方式中,外围端口可以包括高清晰度媒体接口(HDMI)连接器(其可以具有不同的形式因数,例如全尺寸、小型或微型);一个或多个USB端口,诸如根据通用串行总线修订3.0规范(2008年11月)的全尺寸外部端口,当系统处于连接待机状态并插入AC壁式电源时,至少一个端口被供电以用于对USB设备(例如智能电话)的充电。另外,还可以提供一个或多个ThunderboltTM端口。其他端口可以包括一个外部可访问的读卡器,如全尺寸的SD-XC读卡器和/或用于WWAN的SIM读卡器(例如,8引脚读卡器)。对于音频,具有立体声和麦克风能力(例如,组合功能)的3.5mm插孔可以存在,并且支持插孔检测(例如,仅使用盖上的麦克风支持的耳机,或者具有插入电缆中的麦克风的耳机)。在一些实施例中,该插孔可以在立体声耳机和立体声麦克风输入之间重新配置。而且,可以提供电源插孔以用于耦合到AC砖。
系统1200可以以各种方式(包括无线方式)与外部设备进行通信。在图12所示的实施例中,存在各种无线模块,其中每一个都可以对应于被配置用于特定无线通信协议配置的无线电。在近距离(例如近场)进行无线通信的一种方式可以是经由近场通信(NFC)单元1245的,在一个实施例中,近场通信(NFC)单元1245可以经由SMBus与处理器1210进行通信。注意,经由该NFC单元1245,相互靠近的设备可以进行通信。例如,用户可以使系统1200能够经由以密切的关系将两个设备适配在一起并且使得能够传送诸如标识信息、支付信息之类的信息、诸如图像数据等等之类的数据来与另一个(例如)便携式设备(例如,用户的智能电话)进行通信。无线功率传送也可以使用NFC系统来执行。
使用本文描述的NFC单元,用户可以通过利用在这样的装置的一个或多个的线圈之间的耦合来使设备并排地碰撞并且将设备并排放置以用于近场耦合功能(诸如近场通信和无线电力传送(WPT))。更具体地说,实施例提供具有策略性成形和放置的铁氧体材料的设备,以提供线圈的更好的耦合。每个线圈都有与其相关联的电感,电感可以结合系统的电阻、电容和其他特性进行选择,以实现针对系统的公共的谐振频率。
如在图12中进一步看到的,额外的无线单元可以包括其他短程无线引擎,包括WLAN单元1250和蓝牙单元1252。使用WLAN单元1250,可以实现根据给定的电气和电子工程师协会(IEEE)802.11标准的Wi-FiTM通信,而在经由蓝牙单元1252时,可以发生经由蓝牙协议的短程通信。这些单元可以经由例如USB链路或通用异步收发机(UART)链路与处理器1210通信。或者,这些单元可以经由根据快速外围组件互连TM(PCIeTM)协议(例如根据快速PCITM规范基础规范版本3.0(2007年1月17日公布)的)或者另一个这样的协议(例如,串行数据输入/输出(SDIO)标准)的互连耦合到处理器1210。当然,可配置在一个或多个附加卡上的这些外围设备之间的实际物理连接可以通过适配于主板的NGFF连接器来实现。
另外,无线广域通信(例如,根据蜂窝或其他无线广域协议)可以经由WWAN单元1256发生,WWAN单元1256继而可以耦合到订户身份模块(SEVI)1257。另外,为了能够接收和使用位置信息,GPS模块1255也可以存在。注意,在图12所示的实施例中,WWAN单元1256和诸如相机模块1254之类的集成捕捉设备可以经由给定USB协议(诸如USB 2.0或3.0链路)或者UART或I2C协议进行通信。再次,这些单元的实际物理连接可以经由将NGFF附加卡适配到配置在主板上的NGFF连接器来实现。
在特定实施例中,可以模块化地提供无线功能,例如,利用支持Windows 8 CS的WiFiTM 802.11ac解决方案(例如,向后兼容IEEE 802.1labgn的附加卡)。该卡可以配置在内部插槽中(例如,经由NGFF适配器)。另外的模块可以提供蓝牙功能(例如具有向后兼容性的蓝牙4.0)以及无线显示功能。此外,NFC支持可以经由单独的设备或多功能设备来提供,并且作为示例可以被定位在机箱的右前部分中以便于访问。另一个附加模块可以是可以提供对3G/4G/LTE和GPS的支持的WWAN设备。该模块可以在内部(例如,NGFF)插槽中实现。可以针对WiFiTM、蓝牙、WWAN、NFC和GPS提供集成的天线支持,从而实现根据线千兆位规范(2010年7月)从WiFiTM到WWAN无线电,无线千兆位(WiGig)的无缝过渡,反之亦然。
如上所述,集成相机可以合并在盖中。作为一个示例,该相机可以是高分辨率相机,例如具有至少200万像素(MP)的分辨率并扩展至6.0MP及以上的相机。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1260来实现音频处理器,数字信号处理器1260可以经由高清音频(HDA)链路耦合到处理器1210。类似地,DSP1260可以与集成的编码器/解码器(CODEC)和放大器1262通信,编码器/解码器(CODEC)和放大器1262继而可以耦合到可以在机箱内实现的输出扬声器1263。类似地,放大器和CODEC1262可以被耦合以接收来自麦克风1265的音频输入,在一个实施例中,麦克风1265可以经由双阵列麦克风(诸如数字麦克风阵列)来实现,以提供高质量的音频输入以实现系统内的各种操作的语音激活的控制。还要注意的是,音频输出可以从放大器/编解码器1262提供到耳机插孔1264。尽管在图12的实施例中用这些特定的组件示出,但是应理解的是本发明的范围在这方面不受限制。
在特定实施例中,数字音频编解码器和放大器能够驱动立体声耳机插孔、立体声麦克风插孔、内部麦克风阵列和立体声扬声器。在不同的实现方式中,编解码器可以被集成到音频DSP中或者经由HD音频路径耦合到外围控制器集线器(PCH)。在一些实现方式中,除了集成的立体声扬声器之外,可以提供一个或多个低音扬声器,并且扬声器解决方案可以支持DTS音频。
在一些实施例中,处理器1210可由被称为完全集成电压调节器(FIVR)的外部电压调节器(VR)和集成在处理器管芯内的多个内部电压调节器供电。在处理器中使用多个FIVR使得能够将组件分组成单独的电源平面,使得电力由FIVR调节并供应给仅组中的那些组件。在功率管理期间,当处理器被置于某低功率状态时,一个FIVR的给定电源平面可以被下电或关闭,而另一个FIVR的另一个电源平面保持活动或完全供电。
在一个实施例中,可以在某些深度睡眠状态期间使用维持电源平面来针对多个I/O信号对I/O引脚供电,诸如处理器与PCH之间的接口、与外部VR的接口和与EC 1235的接口。该维持电源平面还对管芯上电压调节器供电,该管芯上电压调节器支持在睡眠状态期间存储处理器上下文的板上SRAM或其他高速缓冲存储器。维持电源平面也用于对监视和处理各种唤醒源信号的处理器的唤醒逻辑上电。
在功率管理期间,当处理器进入某些深度睡眠状态时,其他电源平面被下电或关闭,维持电源平面保持通电以支持上述组件。然而,当这些组件不需要时,这可以导致不必要的功耗或耗散。为此,实施例可以提供连接的待机睡眠状态以使用专用电源平面来维护处理器上下文。在一个实施例中,所连接的待机睡眠状态使用本身可以利用处理器存在于封装中的PCH的资源来促进处理器唤醒。在一个实施例中,连接的待机睡眠状态有助于维持PCH中的处理器架构功能,直到处理器唤醒,这使得能够关闭在深度休眠状态期间先前保持上电的所有不必要的处理器组件,包括关闭所有时钟。在一个实施例中,PCH包含时间戳计数器(TSC)和连接的待机逻辑,以用于在连接待机状态期间控制系统。用于维持电源平面的集成电压调节器也可以驻留在PCH上。
在实施例中,在连接待机状态期间,集成电压调节器可以用作专用电源平面,该专用电源平面保持通电以支持存储处理器上下文的专用高速缓冲存储器,所述处理器上下文诸如当处理器进入深度睡眠状态和连接待机状态时的临界状态变量。该临界状态可以包括与架构、微架构、调试状态相关联的状态变量和/或与处理器相关联的类似状态变量。
来自EC 1235的唤醒源信号可以在连接待机状态期间被发送到PCH而不是处理器,使得PCH可以代替处理器来管理唤醒处理。另外,TSC被维护在PCH中以便维持处理器架构功能。尽管在图12的实施例中示出这些特定组件,应理解的是本发明的范围在这方面不受限制。
处理器中的功率控制可以导致增强的功率节省。例如,可以在核之间动态分配功率,单独的核可以改变频率/电压,并且可以提供多个深度低功率状态以实现非常低的功耗。此外,核或独立核部分的动态控制可以通过在不使用时使组件下电来提供降低的功耗。
一些实现方式可以提供特定的功率管理IC(PMIC)来控制平台电力。使用该解决方案,当处于给定待机状态时,例如当处于Win8连接待机状态时,系统可在延长的持续时间(例如,16小时)内看到非常低(例如,小于5%)的电池劣化。在Win8空闲状态下,可以实现超过例如9小时的电池寿命(例如,在150尼特下)。对于视频回放,可以实现较长的电池寿命,例如全高清视频回放可以发生至少6小时。在一个实现方式中的平台对于使用SSD的Win8CS可具有例如35瓦特小时(Whr)的能量容量,对于使用具有RST高速缓存配置的HDD的Win8CS可具有(例如)40-44Whr的能量容量。
一个特定的实现方式可以提供对15W额定CPU热设计功率(TDP)的支持,可配置CPUTDP高达约25W的TDP设计点。由于上述的热特征,平台可以包括最少的通风口。此外,该平台是枕头友好的(因为没有热空气吹向用户)。取决于机箱的材料,可以实现不同的最高温度点。在塑料机箱的一个实现方式中(至少具有塑料盖或底座部分),最高工作温度可以是52摄氏度(℃)。而对于金属机箱的实现方式,最高工作温度可以是46℃
在不同的实现方式中,诸如TPM之类的安全模块可以被集成到处理器中,或者可以是诸如TPM 2.0设备之类的分立设备。利用集成的安全模块(也称为平台信任技术(PTT)),可以启用BIOS/固件以显露用于某些特定安全功能的某些硬件功能,包括安全指令、安全引导、防盗技术、 识别保护技术、可信执行技术(TXT)和可管理性引擎技术以及安全的用户界面,如安全键盘和显示器。
尽管已经关于有限数量的实施例描述了本发明,但是本领域的技术人员将从其中意识到许多修改和变化。意图是所附权利要求覆盖落入本发明的真实精神和范围内的所有这样的修改和变化。
设计可以经历从创建到模拟到制造的各种阶段。表示设计的数据可以以多种方式表示设计。首先,如在模拟中有用的那样,可以使用硬件描述语言或另一种功能描述语言来表示硬件。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到了表示硬件模型中各种设备的物理布置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模的不同掩模层上的各种特征的存在或不存在的数据。在设计的任何表示中,数据可以以任何形式的机器可读介质存储。存储器或磁存储装置或光存储装置(诸如光盘)可以是机器可读介质,其用于存储经由光波或电波发送的信息,所述光波或电波被调制或以其他方式生成来发送这样的信息。当发送指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重传的范围内,得到新的副本。因此,通信提供商或网络提供商可以在有形的机器可读介质上至少暂时地存储体现本发明的实施例的技术的物品,诸如编码成载波的信息。
本文使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与用于存储适于由微控制器执行的代码的非暂时性介质相关联的硬件(诸如微控制器)。因此,在一个实施例中,对模块的引用是指硬件,其被具体配置为识别和/或执行将被保持在非暂时性介质上的代码。此外,在另一个实施例中,模块的使用是指包括代码的非暂时性介质,该代码特别适用于由微控制器执行以执行预定操作。并且如可以推断的,在又一个实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常是单独显示的模块边界通常会有所不同并可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时可能预留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器或其他硬件(诸如可编程逻辑器件)。
在一个实施例中,使用短语“至”或“配置为”是指将装置、硬件、逻辑或元件布置、放在一起、制造、提供以销售、导入和/或设计为执行指定或确定的任务。在这个示例中,如果设计、耦合和/或互连来执行所指定的任务,那么不操作的装置或其元件仍然‘配置为’执行指定的任务。作为纯粹的示出性示例,逻辑门可以在操作期间提供0或1。但是‘配置为’向时钟提供使能信号的逻辑门不包括可以提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的逻辑门,即在操作期间1或0输出用于启用时钟。再次注意,使用术语“配置为”不需要操作,而是集中于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件被设计成当装置、硬件和/或元件正在操作时执行特定的任务。
此外,在一个实施例中,使用短语“能够”和/或“可操作”是指以这样的方式设计的某些装置、逻辑、硬件和/或元件,使得能够以指定方式使用装置、逻辑、硬件和/或元件。注意,如上所述,在一个实施例中,使用、能够或可操作指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件不操作,而是以这样的方式被设计为能够以指定的方式使用装置。
本文中使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑的值或逻辑值的使用也被称为1和0,其仅仅表示二进制逻辑状态。例如,1指代高逻辑电平,而0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。但是,已使用计算机系统中的值的其他表示。例如,十进制数字10也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机系统中的信息的任何表示。
而且,状态可以由值或值的部分来表示。作为示例,诸如逻辑1之类的第一值可以表示默认或初始状态,而诸如逻辑0之类的第二值可以表示非默认状态。另外,在一个实施例中,术语重置和设置分别指默认值或状态和更新值或状态。例如,默认值可能包括高逻辑值,即重置,而更新值可能包括低逻辑值,即设置。请注意,可以使用值的任何组合来表示任何数量的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在可由处理元件执行的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。非暂时机器可访问/可读介质包括提供(即,存储和/或发送)以诸如计算机或电子系统之类的机器可读形式的信息的任何机构。例如,非暂时性机器可访问介质包括诸如静态RAM(SRAM)或动态RAM(DRAM)之类的随机存取存储器(RAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持从暂时(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储设备;上述内容与可以从中接收信息的非暂时性介质区分开来。
可以将用于对逻辑进行编程以执行本发明的实施例的指令存储在系统中的存储器(诸如DRAM、高速缓存、闪存或其他存储装置)内。此外,指令可以经由网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或发送信息的任何机制,但不限于,软盘、光盘、压缩盘、只读存储器(CD-ROM),以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或者经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息时使用的有形、机器可读存储装置。相应地,计算机可读介质包括任何类型的有形机器可读介质,其适合于以机器(例如,计算机)可读的形式存储或发送电子指令或信息。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书在各种地方出现的短语“在一个实施例中”或“在实施例中”并不一定都指的是相同的实施例。此外,特定特征、结构或特性可以以任何合适的方式在一个或多个实施例中组合。
在前面的说明书中,已经参照特定的示例性实施例给出了详细的描述。然而,显而易见的是,可以对其进行各种修改和改变,而不偏离如所附权利要求书中所阐述的本发明的更宽泛的精神和范围。因此,说明书和附图被认为是示出性的而不是限制性的。此外,实施例和其他示例性语言的上述使用不一定是指相同的实施例或相同的示例,而是可以指代不同的和有区别的实施例以及可能相同的实施例。
系统、方法和装置可包括以下示例中的一个或组合:
示例1是一种用于配置跨兼容快速外围组件互连(PCIe)的链路连接到主机组件的下游组件的方法,该方法包括从下游组件接收扩展能力的指示;根据该指示确定针对下游组件的一个或多个配置参数;应用一个或多个配置参数;并且至少部分地基于所应用的一个或多个配置参数,跨与下游组件的兼容PCIe的链路执行数据信号或控制信号传输。
示例2可以包括示例1的主题,其中接收扩展能力的指示包括接收指定的供应商特定扩展能力(DVSEC)定义。
示例3可以包括示例1-2中任一项的主题,其中扩展能力的指示包括下游组件将用于执行数据信号和控制信号传输的多个总线的指示。
示例4可以包括示例1-3中任一项的主题,并且还可以包括基于所接收的扩展能力的指示为下游组件分配多个总线。
示例5可以包括示例1-4中任一项的主题,其中扩展能力的指示包括连接到主机组件的下游连接设备上的端口的类型的指示。
示例6可以包括示例1-5中任一个的主题,还包括基于由扩展能力的指示所指示的端口的类型来应用一个或多个软件策略。
示例7可以包括示例1-6中任一项的主题,其中扩展能力的指示包括下游组件支持D3Cold功率管理子状态的指示。
示例8可以包括示例1-7中任一项的主题,还包括应用一个或多个运行时功率管理机制以允许下游组件进入和退出D3Cold功率管理子状态并在D3Cold功率管理子状态的退出时输入D0功率状态。
示例9可以包括示例1-8中任一项的主题,其中扩展能力的指示包括下游组件包括主机路由器的指示。
示例10可以包括示例1-9中任一项的主题,还包括基于下游组件是主机路由器的指示,应用针对下游组件的一个或多个安全策略。
示例11可以包括示例1-10中任一项的主题,其中下游端口是第一下游端口,下游组件是主机路由器的指示指示主机路由器是面向外部的端口,该方法进一步包括拒绝第一下游端口下游的第二下游端口是主机路由器的第二指示。
示例12可以包括示例1-11中任一项的主题,其中扩展能力的指示包括下游组件使用安全弹出特征的指示。
示例13可以包括示例1-12中任一项的主题,该方法还包括增强用户界面以提供安全弹出指示和下游组件的描述以允许用户在移除下游组件之前执行安全弹出过程。
示例14可以包括示例1-14中任一项的主题,其中扩展能力的指示包括下游组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于促进其他下游组件的菊花链连接。
示例15是一种有形地体现在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括指令,所述指令在被执行时使得在兼容快速外围组件互连(PCIe)协议的根端口控制器上体现的逻辑从下游组件接收扩展能力的指示;根据指示确定针对下游组件的一个或多个配置参数;应用一个或多个配置参数;并且至少部分地基于所应用的一个或多个配置参数,跨与下游组件的兼容PCIe的链路上执行数据信号或控制信号传输。
示例16可以包括示例15的主题,其中接收扩展能力的指示包括接收指定的供应商特定扩展能力(DVSEC)定义。
示例17可以包括示例15-16中任一项的主题,其中扩展能力的指示包括下游组件将用于执行数据信号和控制信号传输的多个总线的指示。
示例18可以包括示例15-17中任一项的主题,该指令基于所接收的扩展能力的指示来为下游组件分配多个总线。
示例19可以包括示例15-18中任一项的主题,其中扩展能力的指示包括连接到主机组件的下游连接设备上的端口的类型的指示。
示例20可以包括示例15-19中任一项的主题,该指令用于基于由扩展能力的指示所指示的端口的类型来应用一个或多个软件策略。
示例21可以包括示例15-20中任一项的主题,其中扩展能力的指示包括下游组件支持D3Cold功率管理子状态的指示。
示例22可以包括示例15-21中任一项的主题,该指令用于应用一个或多个运行时功率管理机制以允许下游组件进入和退出D3Cold功率管理子状态并在D3Cold功率管理子状态的退出时进入D0功率状态。
示例23可以包括示例15-22中任一项的主题,其中扩展能力的指示包括下游组件包括主机路由器的指示。
示例24可以包括示例15-23中任一项的主题,该指令用于基于下游组件是主机路由器的指示来应用针对下游组件的一个或多个安全策略。
示例25可以包括示例15-24中任一项的主题,其中下游端口是第一下游端口,下游组件是主机路由器的指示指示主机路由器是面向外部的端口,该方法还包括拒绝第一下游端口下游的第二下游端口是主机路由器的第二指示。
示例26可以包括示例15-25中任一项的主题,其中扩展能力的指示包括下游组件使用安全弹出特征的指示。
示例27可以包括示例15-26中任一项的主题,指令用于增强用户界面以提供安全弹出指示和下游组件的描述以允许用户在移除下游组件之前执行安全弹出过程。
示例28可以包括示例15-27中任一项的主题,其中扩展能力的指示包括下游组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于促进其他下游组件的菊花链连接。
示例29是一种系统,其包括兼容快速外围组件互连(PCIe)协议的根端口,根端口包括根端口控制器;以及跨兼容PCIe协议的链路连接到根端口的下游组件,根端口包括上游端口,以及至少一个能够热插拔的下游端口,所述至少一个能够热插拔的下游端口通过基于PCIe协议的链路耦合到组件,能够热插拔的下游端口包括至少部分地以硬件实现的逻辑,该逻辑用于从下游组件接收扩展能力的指示;根据指示确定针对下游组件的一个或多个配置参数;应用一个或多个配置参数;并且至少部分地基于所应用的一个或多个配置参数,跨与下游组件的兼容PCIe的链路执行数据信号或控制信号传输。
示例30可以包括示例29的主题,其中接收扩展能力的指示包括接收指定的供应商特定扩展能力(DVSEC)定义。
示例31可以包括示例29-30中任一示例的主题,其中扩展能力的指示包括下游组件将用于执行数据信号和控制信号传输的多个总线的指示。
示例32可以包括示例29-31中任一示例的主题,该逻辑用于基于所接收的扩展能力的指示来为下游组件分配多个总线。
示例33可以包括示例29-32中任一示例的主题,其中扩展能力的指示包括连接到主机组件的下游连接设备上的端口的类型的指示。
示例34可以包括示例29-33中任一项的主题,该逻辑用于基于由扩展能力的指示所指示的端口的类型来应用一个或多个软件策略。
示例35可以包括示例29-34中任一示例的主题,其中扩展能力的指示包括下游组件支持D3Cold功率管理子状态的指示。
示例36可以包括示例29-35中任一项的主题,该逻辑用于应用一个或多个运行时功率管理机制以允许下游组件进入和退出D3Cold功率管理子状态并在D3Cold功率管理子状态的退出时进入D0功率状态。
示例37可以包括示例29-36中任一示例的主题,其中扩展能力的指示包括下游组件包括主机路由器的指示。
示例38可以包括示例26-37中任一示例的主题,该逻辑用于基于下游组件是主机路由器的指示来应用针对下游组件的一个或多个安全策略。
示例39可以包括示例29-38中任一项的主题,其中下游端口是第一下游端口,下游组件是主机路由器的指示指示主机路由器是面向外部的端口,该方法进一步包括拒绝第一下游端口下游的第二下游端口是主机路由器的第二指示。
示例40可以包括示例29-39中任一示例的主题,其中扩展能力的指示包括下游组件使用安全弹出特征的指示。
示例41可以包括示例29-40中任一项的主题,逻辑用于增强用户界面以提供安全弹出指示和下游组件的描述以允许用户在移除下游组件之前执行安全弹出过程。
示例42可以包括示例29-40中任一项的主题,其中扩展能力的指示包括下游组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于促进其他下游组件的菊花链连接。
示例43是一种兼容快速外围组件互连(PCIe)协议的根装置,根端口包括根端口控制器,该根端口控制器包括用于从下游组件接收扩展能力的指示的单元;用于根据所述指示确定针对下游组件的一个或多个配置参数的单元;以及用于应用一个或多个配置参数的单元;以及用于至少部分地基于所应用的一个或多个配置参数,跨与下游组件的兼容PCIe的链路执行数据信号或控制信号传输的单元。
示例44可以包括示例43的主题,其中接收扩展能力的指示包括接收指定的供应商特定扩展能力(DVSEC)定义。
示例45可以包括示例43-44中任一示例的主题,其中扩展能力的指示包括下游组件将用于执行数据信号和控制信号传输的多个总线的指示。
示例46可以包括示例43-45中任一示例的主题,还包括用于基于所接收的扩展能力的指示为下游组件分配多个总线的单元。
示例47可以包括示例43-46中任一示例的主题,其中扩展能力的指示包括连接到主机组件的下游连接设备上的端口的类型的指示。
示例48可以包括示例43-47中任一示例的主题,还包括用于基于由扩展能力的指示所指示的端口的类型来应用一个或多个软件策略的单元。
示例49可以包括示例43-48中任一示例的主题,其中扩展能力的指示包括下游组件支持D3Cold功率管理子状态的指示。
示例50可以包括示例43-49中任一示例的主题,还包括用于应用一个或多个运行时功率管理机制以允许下游组件进入和退出D3Cold功率管理子状态并在D3Cold功率管理子状态的退出时进入D0功率状态。
示例51可以包括示例43-50中任一项的主题,其中扩展能力的指示包括下游组件包括主机路由器的指示。
示例52可以包括示例43-51中任一示例的主题,还包括用于基于下游组件是主机路由器的指示来应用针对下游组件的一个或多个安全策略的单元。
示例53可以包括示例43-52中任一项的主题,其中下游端口是第一下游端口,下游组件是主机路由器的指示指示主机路由器是面向外部的端口,该方法进一步包括拒绝第一下游端口下游的第二下游端口是主机路由器的第二指示。
示例54可以包括示例43-53中任一示例的主题,其中扩展能力的指示包括下游组件使用安全弹出特征的指示。
示例55可以包括示例43-54中任一项的主题,还包括用于增强用户界面以提供安全弹出指示和下游组件的描述以允许用户在移除下游组件之前执行安全弹出过程的单元。
示例56可以包括示例43-55中任一示例的主题,其中扩展能力的指示包括下游组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于促进其他下游组件的菊花链连接。
示例57是一种与基于PCIe的协议兼容的装置,该端口可以是PCIe根复合体的上游组件,例如根端口或上游交换机。该装置可以支持热插拔能力。该装置可包括耦合到上游端口的一个或多个下游端口。至少一个下游端口可以是能够热插拔的下游端口。能够热插拔的下游端口可以配置为经由热插拔连接耦合到下游组件。下游组件可以经由能够热插拔的下游端口向装置提供扩展能力信息。扩展能力信息可以由装置接收为供应商特定的扩展能力指示,其识别对应于并暴露下游组件可以使用的一个或多个扩展能力的一个或多个寄存器设置。该装置可以根据指示确定针对连接的下游组件的一个或多个配置参数。该装置可以使用所应用的配置参数来应用配置参数并使用跨与下游组件的PCIe链路执行数据信号和/或控制信号传输。
示例58可以包括示例57的主题,其中接收扩展能力的指示包括接收指定的供应商特定扩展能力(DVSEC)能力定义。
示例59可以包括示例57或58中任一项的主题,其中该组件是第一组件,并且扩展能力的指示包括连接第一组件的第二组件将用于执行数据信号和控制信号传输的多个总线的指示;进一步包括基于所接收的扩展能力的指示为第二组件分配多个总线。
示例60可以包括示例57-59中任一示例的主题,其中扩展能力的指示包括连接到下游端口的连接设备上的端口的类型的指示;进一步包括基于由扩展能力的指示指示的端口的类型应用一个或多个软件策略。
示例61可以包括示例57-60中任一项的主题,其中扩展能力的指示包括该组件支持D3Cold功率管理子状态的指示;进一步包括应用一个或多个运行时功率管理机制以允许下游组件进入和退出D3Cold功率管理子状态并在D3Cold功率管理子状态的退出时进入D0功率状态。
示例62可以包括示例57-61中任一示例的主题,其中扩展能力的指示包括该组件包括主机路由器的指示;进一步包括基于组件是主机路由器的指示,应用针对下游组件的一个或多个策略。
示例63可以包括示例57-62中任一项的主题,其中下游端口是第一下游端口,该组件是主机路由器的指示指示主机路由器是面向外部的端口,该方法进一步包括拒绝第一下游端口下游的第二下游端口是主机路由器的第二指示。
示例64可以包括示例57-63中任一示例的主题,其中扩展能力的指示包括该组件使用安全弹出特征的指示;进一步包括增强用户界面以提供安全弹出指示和组件的描述,以允许用户在移除组件之前执行安全弹出程序。
示例65可以包括示例57-64中任一项的主题,其中扩展能力包括指示该组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于促进其他组件的菊花链连接;该端口还包括为连接到组件设备的其他组件预留一个或多个系统资源。
Claims (18)
1.一种用于配置跨兼容快速外围组件互连(PCIe)的链路连接到主机组件的下游组件的方法,所述方法包括:
从所述下游组件接收扩展能力的指示;
根据所述指示确定针对所述下游组件的一个或多个配置参数;
应用所述一个或多个配置参数;以及
至少部分地基于应用的一个或多个配置参数,跨与所述下游组件的所述兼容PCIe的链路执行数据信号或控制信号传输。
2.如权利要求1所述的方法,其中,接收所述扩展能力的指示包括:接收指定的供应商特定扩展能力(DVSEC)定义。
3.如权利要求1所述的方法,其中,所述扩展能力的指示包括所述下游组件将用于执行数据信号和控制信号传输的总线数量的指示,所述方法还包括基于接收的所述扩展能力的指示来针对所述下游组件分配多个总线。
4.如权利要求1所述的方法,其中,所述扩展能力的指示包括连接到所述主机组件的下游连接设备上的端口的类型的指示,所述方法还包括基于由所述扩展能力的指示所指示的端口的类型来应用一个或多个软件策略。
5.如权利要求1所述的方法,其中,所述扩展能力的指示包括所述下游组件支持D3Cold功率管理子状态的指示,所述方法还包括应用一个或多个运行时功率管理机制以允许所述下游组件进入以及退出所述D3Cold功率管理子状态,并且在所述D3Cold功率管理子状态的退出时进入D0功率状态。
6.如权利要求1所述的方法,其中,所述扩展能力的指示包括所述下游组件包括主机路由器的指示,所述方法还包括基于所述下游组件是主机路由器的指示而应用针对所述下游组件的一个或多个安全策略。
7.如权利要求6所述的方法,其中,下游端口是第一下游端口,所述下游组件是主机路由器的所述指示指示所述主机路由器是面向外部的端口,所述方法还包括拒绝所述第一下游端口下游的第二下游端口是主机路由器的第二指示。
8.如权利要求1所述的方法,其中,所述扩展能力的指示包括所述下游组件使用安全弹出特征的指示,所述方法还包括基于所述下游组件是主机路由器的所述指示应用针对所述下游组件的一个或多个安全策略。
9.一种包括代码的非暂时性机器可读介质,所述代码当被执行时,用于使机器执行如权利要求1-8中任一项所述的方法。
10.一种系统,包括:
兼容快速外围组件互连(PCIe)协议的根端口,所述根端口包括根端口控制器;以及
跨兼容所述PCIe协议的链路连接到所述根端口的下游组件,所述根端口控制器包括至少部分地用硬件实现的逻辑,所述逻辑用于:
从所述下游组件接收扩展能力的指示;
根据所述指示确定针对所述下游组件的一个或多个配置参数;
应用所述一个或多个配置参数;以及
至少部分地基于应用的一个或多个配置参数,执行跨与所述下游组件的所述兼容PCIe的链路的数据信号或控制信号传输。
11.如权利要求10所述的系统,其中,接收所述扩展能力的指示包括接收指定供应商特定扩展能力(DVSEC)定义。
12.如权利要求10所述的系统,其中,所述扩展能力的指示包括所述下游组件将用于执行数据信号和控制信号传输的总线数量的指示,所述逻辑用于基于接收的扩展能力的指示来针对所述下游组件分配多个总线。
13.如权利要求10所述的系统,其中,所述扩展能力的指示包括连接到主机组件的下游连接设备上的端口的类型的指示,所述逻辑用于基于由所述扩展能力的指示所指示的端口的类型来应用一个或多个软件策略。
14.如权利要求10所述的系统,其中,所述扩展能力的指示包括所述下游组件支持D3Cold功率管理子状态的指示,所述逻辑用于应用一个或多个运行时功率管理机制以允许所述下游组件进入和退出所述D3Cold功率管理子状态,并且在所述D3Cold功率管理子状态的退出时进入D0功率状态。
15.如权利要求10所述的系统,其中,所述扩展能力的指示包括所述下游组件包括主机路由器的指示,所述逻辑用于基于所述下游组件是主机路由器的所述指示来应用针对所述下游组件的一个或多个安全策略。
16.如权利要求15所述的系统,其中,下游端口是第一下游端口,所述下游组件是主机路由器的所述指示指示所述主机路由器是面向外部的端口,所述方法还包括拒绝所述第一下游端口下游的第二下游端口是主机路由器的第二指示。
17.如权利要求10所述的系统,其中,所述扩展能力的指示包括所述下游组件使用安全弹出特征的指示,所述逻辑用于增强用户界面以提供安全弹出指示和所述下游组件的描述以允许用户在移除所述下游组件之前执行安全弹出程序。
18.如权利要求10所述的系统,其中,所述扩展能力的指示包括所述下游组件包括端口可扩展性特征的指示,所述端口可扩展性特征用于有助于其他下游组件的菊花链连接。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/987,863 US10545773B2 (en) | 2018-05-23 | 2018-05-23 | System, method, and apparatus for DVSEC for efficient peripheral management |
US15/987,863 | 2018-05-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110532212A true CN110532212A (zh) | 2019-12-03 |
Family
ID=65229508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910327892.9A Pending CN110532212A (zh) | 2018-05-23 | 2019-04-23 | 用于有效外围组件管理的dvsec的系统、方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10545773B2 (zh) |
CN (1) | CN110532212A (zh) |
DE (2) | DE102019009207B3 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116095023A (zh) * | 2023-04-07 | 2023-05-09 | 珠海星云智联科技有限公司 | 数据处理单元的快速外设组件互联总线资源的自适应方法 |
WO2023155363A1 (zh) * | 2022-02-17 | 2023-08-24 | 浪潮(山东)计算机科技有限公司 | 服务器动态热备份的方法、装置、设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997090B2 (en) * | 2016-06-28 | 2021-05-04 | Intel Corporation | Accessing input/output devices of detachable peripheral by a main computer |
JP7115128B2 (ja) * | 2018-08-07 | 2022-08-09 | 富士通株式会社 | 情報処理装置、ブート方法及びブートプログラム |
US10698784B2 (en) * | 2018-11-26 | 2020-06-30 | Red Hat, Inc. | Robust peripheral component interconnect surprise removal detection |
US11151075B2 (en) * | 2018-12-14 | 2021-10-19 | Ati Technologies Ulc | Data communications with enhanced speed mode |
US10691150B1 (en) * | 2019-04-26 | 2020-06-23 | Nxp B.V. | Fast response high-speed redriver channel power up in CIO mode |
US11010327B2 (en) * | 2019-07-23 | 2021-05-18 | Qualcomm Incorporated | I3C point to point |
US11995018B2 (en) | 2020-07-16 | 2024-05-28 | Intel Corporation | Determining a private connection between devices or functions of a serial bus |
CN114691574B (zh) * | 2021-04-15 | 2023-05-09 | 澜起电子科技(上海)有限公司 | 热插拔控制方法、装置、重定时器、扩展卡及电子设备 |
US11765849B2 (en) | 2022-02-16 | 2023-09-19 | International Business Machines Corporation | Daughter card plug detection |
US12057964B1 (en) * | 2023-02-02 | 2024-08-06 | Geotab Inc. | Methods and devices for detecting a controller area network connection on a universal serial bus port |
US11817968B1 (en) * | 2023-02-02 | 2023-11-14 | Geotab Inc. | Methods and devices for routing controller area network traffic over a universal serial bus connection |
CN116233283B (zh) * | 2023-05-05 | 2023-07-25 | 湖南盛鼎科技发展有限责任公司 | 一种设备通信协议的动态扩展和热插拔方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675303B1 (en) * | 1999-09-29 | 2004-01-06 | 2Micro International Limited | PC card controller with advanced power management reset capabilities |
US7689751B2 (en) * | 2008-02-15 | 2010-03-30 | Sun Microsystems, Inc. | PCI-express system |
US20090228823A1 (en) * | 2008-03-07 | 2009-09-10 | Microsoft Corporation | User interface for portable storage devices |
WO2009139489A1 (ja) * | 2008-05-16 | 2009-11-19 | 日本電気株式会社 | Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法 |
US20130173837A1 (en) * | 2011-12-30 | 2013-07-04 | Advanced Micro Devices, Inc. | Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex |
US20140281639A1 (en) * | 2013-03-15 | 2014-09-18 | Mahesh Wagh | Device power management state transition latency advertisement for faster boot time |
US9477276B2 (en) * | 2013-06-13 | 2016-10-25 | Dell Products L.P. | System and method for switch management |
WO2015045030A1 (ja) * | 2013-09-25 | 2015-04-02 | 株式会社日立製作所 | ドライブの増設可能な情報システムおよび該情報システムのバス番号割り当て方法 |
EP3095041A4 (en) * | 2014-01-16 | 2018-04-25 | Intel Corporation | An apparatus, method, and system for a fast configuration mechanism |
US10268815B2 (en) * | 2015-06-26 | 2019-04-23 | Intel Corporation | Authentication of a multiple protocol connection |
US9965417B1 (en) | 2016-01-13 | 2018-05-08 | Xilinx, Inc. | Use of interrupt memory for communication via PCIe communication fabric |
US10877915B2 (en) * | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
US9946325B2 (en) | 2016-06-30 | 2018-04-17 | Intel IP Corporation | Interprocessor power state transitions |
US20190095554A1 (en) * | 2017-09-28 | 2019-03-28 | Intel Corporation | Root complex integrated endpoint emulation of a discreet pcie endpoint |
US11522679B2 (en) * | 2017-10-05 | 2022-12-06 | Intel Corporation | Exposing cryptographic measurements of peripheral component interconnect express (PCIe) device controller firmware |
US20190042155A1 (en) * | 2018-05-14 | 2019-02-07 | Intel Corporation | Overloading memory address fields while maintaining address boundary constraint compliance |
-
2018
- 2018-05-23 US US15/987,863 patent/US10545773B2/en active Active
-
2019
- 2019-04-08 DE DE102019009207.4A patent/DE102019009207B3/de active Active
- 2019-04-08 DE DE102019109130.6A patent/DE102019109130A1/de active Pending
- 2019-04-23 CN CN201910327892.9A patent/CN110532212A/zh active Pending
-
2020
- 2020-01-27 US US16/773,500 patent/US11106474B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023155363A1 (zh) * | 2022-02-17 | 2023-08-24 | 浪潮(山东)计算机科技有限公司 | 服务器动态热备份的方法、装置、设备及存储介质 |
CN116095023A (zh) * | 2023-04-07 | 2023-05-09 | 珠海星云智联科技有限公司 | 数据处理单元的快速外设组件互联总线资源的自适应方法 |
CN116095023B (zh) * | 2023-04-07 | 2023-06-16 | 珠海星云智联科技有限公司 | 数据处理单元的快速外设组件互联总线资源的自适应方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200319898A1 (en) | 2020-10-08 |
US20190042281A1 (en) | 2019-02-07 |
US10545773B2 (en) | 2020-01-28 |
DE102019009207B3 (de) | 2023-08-17 |
US11106474B2 (en) | 2021-08-31 |
DE102019109130A1 (de) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532212A (zh) | 用于有效外围组件管理的dvsec的系统、方法和装置 | |
CN104063290B (zh) | 处理超时的系统、方法和装置 | |
CN104050114B (zh) | 同步端口进入低功率状态的系统、方法和设备 | |
CN104052621B (zh) | 用于跨快速外围组件互连(pcie)段的平台管理消息的方法和系统 | |
CN104981815B (zh) | 用于用安全属性限制cpu事务的方法、装置和系统 | |
CN107924380A (zh) | 使用业务类别分配高速缓存的方法、装置和系统 | |
TWI524184B (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
CN112506844B (zh) | 针对pcie进行sris模式选择的系统、方法和装置 | |
CN108701109A (zh) | 用于计算机扩展总线的插件机制的方法、装置和系统 | |
JP6286551B2 (ja) | 処理要素構成のための装置、デバイス構成のための装置および方法、高速デバイス構成のための装置、プログラム、並びに、非一時的コンピュータ可読ストレージ媒体 | |
TWI569146B (zh) | 用於高效能互連中之嵌入式串流路徑的方法、設備及系統 | |
CN105027444B (zh) | 集成时钟差分缓冲 | |
CN112579496B (zh) | 减少引脚计数接口 | |
CN108027785A (zh) | 用于对链路拆分进行去偏斜的方法、设备和系统 | |
CN110121703B (zh) | 用于向量通信的系统和方法 | |
CN109643299A (zh) | 在具有现有tlp定义的pcie上的持久存储器写入语义 | |
CN109936434A (zh) | 非对称全双工usb ss链路的机制 | |
TWI736559B (zh) | 用以針對實體層裝置的組件傳輸資料之控制器 | |
CN109643577A (zh) | 用于存储器训练的电参数的多维优化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |