CN105830053A - 用于快速配置机制的装置、方法和*** - Google Patents
用于快速配置机制的装置、方法和*** Download PDFInfo
- Publication number
- CN105830053A CN105830053A CN201480068881.9A CN201480068881A CN105830053A CN 105830053 A CN105830053 A CN 105830053A CN 201480068881 A CN201480068881 A CN 201480068881A CN 105830053 A CN105830053 A CN 105830053A
- Authority
- CN
- China
- Prior art keywords
- configuration
- equipment
- processor
- write
- logic
- 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/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
- Power Sources (AREA)
Abstract
本文中描述了用于快速设备配置的装置、方法和***。可在无需主机干预的情况下配置快速配置设备。例如,在进入低功率模式之前,设备可以将其配置上下文转储至存储设备并进入睡眠。随后,当恢复到活动状态后,在无序主机处理设备必须重写整个配置空间的情况下,控制器可重新加载此上下文,这潜在地减少了当设备进入低功率模式时的等待时间决策。此外,快速配置机制可以通过提供加速的完成来加速来自主机的配置访问,同时仍确保用于旧式设备的旧式配置。
Description
技术领域
本公开涉及计算***,并且尤其(但不排他地)涉及用于互连架构的设备的配置。
附图说明
图1阐释包括多核处理器的计算***的框图的实施例。
图2阐释包括***组件互连快速(PCIe)兼容架构的计算***的实施例。
图3阐释包括分层式栈的PCIe兼容的互连架构的实施例。
图4阐释将在互连架构内生成或接收的PCIe兼容的请求或分组(packet)的实施例。
图5阐释用于PCIe兼容的互连架构的发射机和接收机对的实施例。
图6阐释存储器映射的配置空间的逻辑视图的实施例。
图7阐释用于配置互连架构的元件的控制器的实施例。
图8阐释使用来自主机设备的存储器访问来配置元件的协议图的实施例。
图9阐释用于快速设备配置的配置逻辑的实施例。
图10阐释用于元件的快速配置的协议图的实施例。
图11阐释设备指示快速配置能力的协议图的实施例。
图12阐释用于互连架构中的元件的配置空间的实施例。
图13阐释配置设备的方法的流程图的实施例。
图14阐释低功率计算平台的实施例。
图15阐释包括管芯上互连的处理器的实施例。
图16阐释片上计算***的实施例。
图17阐释计算***的框图的实施例。
具体实施方式
在下列描述中,陈述了众多特定的细节(诸如,特定类型的处理器和***配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的***组件、特定的配置参数等的示例),以便提供对本发明的透彻理解。然而,对本领域技术人员将显而易见的是,不必采用这些特定的细节来实践本发明。在其他实例中,没有详细地描述众所周知的组件或方法(诸如,特定的和替代的处理器架构、用于所描述的算法的特定的逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、算法的特定代码表达、特定的断电和门控技术/逻辑和计算机***的其他特定的操作细节),以免不必要地使本发明含糊。
尽管可以参考诸如计算平台或微处理器中的专用集成电路中的节能和能效来描述下列实施例,但是其他实施例适用于其他类型的集成电路和逻辑器件。本文中描述的实施例的类似技术和教导可以应用于也可以受益于更好的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于服务器、台式机、计算机***或轻量级计算设备,诸如,超极本TM。并且也可以用于其他设备,诸如,手持式设备、平板、其他薄型笔记本、片上***(SoC)设备和嵌入式应用。手持式设备的一些示例包括蜂窝式电话、网际协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上***、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下文中教导的功能和操作的任何其他***。此外,本文中描述的装置、方法和***不限于物理计算设备,而是也可以涉及用于节能和效率的软件优化。如在以下描述中将显而易见的那样,本文中描述(无论参考硬件、固件、软件还是它们的组合)的方法、装置和***的实施例对于与性能考虑一起平衡的“绿色技术”未来是至关重要的。
随着计算***正在进展,其中的组件正变得更复杂。作为结果,用于在组件之间耦合和通信的互连架构在复杂性方面也正在增加,以便确保满足最优的组件操作的带宽要求。此外,不同的细分市场要求互连架构的不同方面来适应市场的需求。例如,服务器要求更高的性能,而移动生态***有时能够牺牲整体性能以实现功率节省。然而,以最大的功率节省提供最高的可能性能是大多数结构的唯一目的。下文讨论将潜在地受益于本文中描述的本发明的多个方面的多种互连。
参见图1,描绘了包括多核处理器的计算***的框图的实施例。处理器100包括任何处理器或处理设备,诸如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上***(SoC)或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核——核101和102,它们可以包括非对称核或对称核(所阐释的实施例)。然而,处理器100可以包括可以是对称或非对称的任何数量的处理元件。
在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够为处理器保存诸如执行状态或架构状态之类的状态的任何其他元件。换句话说,在一个实施例中,处理元件是指能够独立地与诸如软件线程、操作***、应用或其他代码之类的代码相关联的任何硬件。物理处理器(或处理器插槽)通常是指集成电路,其潜在地包括任何数量的其他处理元件,诸如,核或硬件线程。
核常常是指位于集成电路上的、能够维持独立架构状态的逻辑,其中,每一个被独立地维持的架构状态与至少一些专用执行资源相关联。与核相比,硬件线程通常是指位于集成电路上的、能够维持独立架构状态的任何逻辑,其中,被独立地维持的架构状态共享对执行资源的访问。正如可见的那样,当某些资源被共享且其他专用于架构状态时,硬件线程与核的命名法之间的界线重叠。然而,核和硬件线程往往***作***看作是多个单独的逻辑处理器,其中操作***可以个别地调度每一个逻辑处理器上的操作。
如图1中所阐释,物理处理器100包括两个核——核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)中的每一个都可以被称为处理元件、线程槽或线程单元。如图所阐释,在架构状态寄存器101b中复制架构状态寄存器101a,因此能够为逻辑处理器101a和逻辑处理器101b存储各个架构状态/上下文。在核101中,也可以为线程101a和101b复制诸如分配器和重命名器块130中的指令指针和重命名逻辑之类的其他较小的资源。可以通过分区操作(partitioning)来共享一些资源,诸如,重排序/引退单元135中的重排序缓冲器、ILTB120、加载/存储缓冲器和队列。可能完全共享其他资源,诸如,通用内部寄存器、(多个)页表基址寄存器、低层级数据高速缓存和数据TLB115、(多个)执行单元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、RAM、非易失性存储器(NV存储器)和其他已知存储设备。注意,设备180可以包括图形加速器、耦合到存储器控制器中枢的处理器或卡、耦合到I/O控制器中枢的数据存储设备、无线收发机、闪存设备、音频控制器、网络控制器或其他已知的设备。
然而,近来,随着更多逻辑和设备正在被集成在单个管芯上(诸如,SOC),这些设备中的每一个都可以合并在处理器100上。例如,在一个实施例中,存储器控制器中枢处于与处理器100相同的封装和/或管芯上。在此,核的部分(核上部分)110包括一个或多个控制器,用于其他设备(诸如,存储器175或图形设备180)对接。包括用于与此类设备对接的互连和控制器的配置常常被称为核上(或非核配置)。作为示例,片上接口110包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多的设备(诸如,网络接口、协处理器、存储器175、图形处理器180和任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上,以便提供具有高功能性和低功耗的小形状因子。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177,以便编译、转换和/或优化应用代码176,从而支持本文中描述的装置和方法或与本文中所述的装置和方法对接。编译器常常包括用于将源文本/代码转换成目标文本/代码的程序或程序组。通常,在多个阶段和轮次中完成利用编译器进行的对程序/应用代码的编译,以便将高级编程语言代码变换成低级机器或汇编语言代码。然而,单次编译器仍然可以用于简单编译。编译器可以利用任何已知的编译技术并执行任何已知的编译器操作,诸如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器常常包括多个阶段,但最常见的是这些阶段被包括在两个总体阶段内:(1)前端,即,通常句法处理、语义处理和一些变换/优化可能发生之处,以及(2)后端,即,通常分析、变换、优化和代码生成发生之处。一些编译器是指中间的情况,这阐释编译器的前端与后端之间的模糊划分。作为结果,对编译器的***、关联、生成或其他操作的引用可发生在前述多个阶段或多轮次中的任何一者中,并发生在编译器的任何其他已知的阶段或轮次中。作为说明性示例,编译器潜在地在一个或多个编译阶段中***操作、调用、函数等,诸如,在编译的前端阶段中***调用/操作,随后在变换阶段期间将这些调用/操作变换成较低层级的代码。注意,在动态编译期间,编译器代码或动态优化代码可以***此类操作/调用,并且在运行时期间优化此代码以供执行。作为特定的说明性示例,可在运行时期间动态地优化二进制代码(已编译代码)。在此,程序代码可以包括动态优化代码、二进制代码或它们的组合。
与编译器类似,转换器(诸如,二进制转换器)静态地或动态地转换代码以优化和/或转换代码。因此,对于代码、应用代码、程序代码或其他软件环境的执行的引用可以是指:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或转换器以编译程序代码,维护软件结构,执行其他操作,优化代码或转换代码;(2)执行主程序代码,所述主程序代码包括操作/调用,诸如,经优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如,库)以维护软件结构,执行其他软件相关的操作或优化代码;或(4)上述各项的组合。
已经为对接***组件而开发的一种互连结构架构包括***组件互连(PCI)快速(PCIe)架构。PCIe的目标在于,使来自不同的供应商的组件能够跨越多个细分市场:客户机(台式机和移动计算机)、服务器(标准型和企业型)以及嵌入式计算机和通信设备而在开放的架构中互操作。PCIExpress常常称为针对各种的未来计算和通信平台而定义的加载-存储、I/O或加载-存储I/O互连架构。已经通过其修订版维护了一些PCI属性,诸如,它的使用模型、加载-存储架构和软件接口,而先前的并行总线实现已经由高度可扩缩的、完全串行的接口替代。PCIExpress的最近版本利用了点对点互连、基于交换的技术和分组化协协议中的进展来提供新的性能和特征等级。由PCIExpress(PCIe)支持的高级特征中的一些为功率管理、服务质量(QoS)、热拔插/热切换支持、数据完整性和错误处置。然而,PCIe规范中所定义的协议可以用于任何物理接口或拓扑——点对点、环形、网格、群集,等等。
参见图2,阐释了由互连一组组件的点对点链路组成的结构的实施例。***200包括耦合到控制器中枢215的处理器205和***存储器210。处理器205包括任何处理元件,诸如,微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器205通过前侧总线(FSB)206耦合到控制器中枢215。在一个实施例中,FSB206是如下文所述的串行点对点互连。在另一实施例中,链路206包括与不同的互连标准兼容的串行差分互连架构。
随着更多设备正在集成在与处理器205相同的管芯上,重要的是应注意,在一些实现中,控制器中枢215与处理器205集成。在此,处理器205的核与集成在管芯上存储器控制器中枢215对接。此外,可以直接从处理器205、从集成在处理器205上的控制器中枢215或这两者提供PCIe接口。
***存储器210包括任何存储器设备,诸如,随机存取存储器(RAM)、非易失性(NV)存储器或可由***200中的设备访问的其他存储器。***存储器210通过存储器接口216耦合到控制器中枢215。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中枢715是***组件互连快速(PCIe或PCIE)互连层次结构中的根中枢、根复合体或根控制器。控制器中枢215的示例包括芯片组、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥和根控制器/中枢。术语芯片组通常是指两个物理上分开的控制器中枢,即,耦合到互连控制器中枢(ICH)的存储器控制器中枢(MCH)。如上所述,许多当前的***常常包括与处理器205集成的MCH,而可以在处理器205内部或外部分开地提供控制器215,以便以与下文所述类似的方式来与I/O设备通信。在一些实施例中,通过根复合体215任选地支持对等路由。在一个实施例中,根复合体215包括根端口的逻辑聚合、根复合体寄存器块或根复合体集成端点。
在此,控制器中枢215通过串行链路219而耦合到交换机/桥220。也可以被称为接口/端口217和221的输入/输出模块217和221包括/实现分层式协议栈,以便在控制器中枢215与交换机220之间提供通信。在一个实施例中,多个设备能够被耦合到交换机220。
交换机/桥220将分组/消息从设备225向上游(即,沿层次结构向上去往根复合体)路由到控制器中枢215,以及从处理器205或***存储器210向下游(即,沿层次结构向下而远离根控制器)而到设备225。如此示例中所使用,上游包括更接近根复合体的元件的相对位置或朝向复合体的信息流的方向,而下游相反地是指进一步离开根复合体的元件或离开根复合体的信息流的方向。在一个实施例中,交换机220被称为多个虚拟PCI-PCI桥接设备的逻辑组件。在此,交换机220被阐释为用于连接两个或更多个端口以允许将各分组从一个端口路由到另一端口的***元件,并且在一些实现中,交换机220可展现为PCI-PCI桥的集合。桥(即,独立式桥)通常是指虚拟地或实际地将PCI/PCI-X段或PCIe端口与内部组件互连连接或与另一PCI/PCI-X总线段或PCIe端口连接的功能。
设备225包括耦合到电子***的任何内部或外部设备或组件,诸如,I/O设备、网络接口控制器(NIC)、***卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。在PCIe习语中,诸如设备常常被称为端点。尽管没有特别示出,但设备225可以包括PCIe-PCI/PCI-X桥以支持旧式(legacy)或其他版本的PCI设备。PCIe中的端点设备常常被分类为旧式、PCIe或集成根复合体的端点。在一个实施例中,设备225包括用于执行某类型I/O、链路的任一端上的组件或对功能的引用(或多功能设备中的功能集)的物理或逻辑实体。在PCIe中,PCIe链路上的元件或实体的更普遍的使用往往被称为功能。在此,功能通常是指在与功能号相关联的配置空间中的可寻址实体。在一些实施例中,功能是指单个功能设备,而在其他实施例中,它是指多功能设备。
图形加速器230也通过串行链路232而耦合到控制器中枢215。在一个实施例中,图形加速器230耦合到MCH,此MCH耦合到ICH。随后,交换机220以及相应地I/O设备225耦合到ICH。I/O模块231和218也用于实现用于在图形加速器230与控制器中枢215之间通信的分层式协议栈。与上文的MCH讨论类似,图形控制器或图形加速器230本身可以被集成在处理器205中。
转到图3,阐释分层式协议栈的实施例。分层式协议栈300包括任何形式的分层式通信栈,诸如,快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈、低功耗接口栈、移动行业处理器接口(MIPI)或其他分层式栈。尽管下文紧接的参考图2-图5的讨论涉及PCIe栈,但是相同的概念可以应用到其他互连栈。在一个实施例中,协议栈300是包括事务层305、链路层310和物理层320的PCIe协议栈。诸如图1中的接口217、218、221、222、226和231之类的接口可以被表示为通信协议栈300。表示为通信协议栈也可以被称为实现/包括协议栈的模块或接口。
PCIExpress使用分组以在组件之间传递信息。在事务层305和数据链路层310中形成分组,以便将信息从发射组件携带到接收组件。当所发射的分组流过其他层时,用在那些层处来处置分组所必需的附加信息来扩展它们。在接收侧,相反的过程发生,并且分组从它们的物理层320表示被变换成数据链路层310表示且最终(对于事务层分组而言)变换成可以由接收设备的事务层305处理的形式。
事务层
在一种实施例中,事务层305用于提供在设备的处理核与互连架构之间的接口,诸如,数据链路层310和物理层320。在这方面,事务层305的主要责任是对分组(即,事务层分组或TLP)的组装和拆解。转换层305通常管理对TLP的基于信用的流控制。PCIe实现拆分的事务(即,具有由时间分开的请求和响应的事务),从而允许链路在目标设备收集用于响应的数据时链路携带其他通信量。
另外,PCIe利用基于信用的流控制。在这种方案中,设备通告事务层305中的接收缓冲器中的每一个的初始信用量。在链路的相对端处的外部设备(诸如,图1中的控制器中枢115)对由每一个TLP消耗的信用的数量计数。如果事务不超过信用限额,则可以发射事务。当接收到响应之后,就恢复信用量。信用方案的优点再与,假设不遭遇信用限额,则信用返回的等待时间(latency)不影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括读取请求和写入请求中的一种或多种,以便往/返于存储器映射的位置传递数据。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,诸如32位地址之类的短地址格式,或诸如64位地址之类的长地址格式。配置空间事务被用于访问PCIe设备的配置空间。去往配置空间的事务包括读取请求和写入请求。消息空间事务(或者简单地称为消息)定义为支持在PCIe代理之间的带内通信。
因此,在一个实施例中,事务层305组装分组头部/有效载荷306。当前的分组头部/有效载荷的格式可在PCIe规范网站处的PCIe规范中找到。
快速参见图4,阐释了PCIe事务描述符的实施例。在一个实施例中,事务描述符400是用于携带事务信息的机制。在这方面,事务描述符400支持对***中的事务的标识。其他潜在的用途包括跟踪对默认事务排序的修改以及事务与信道的关联。
事务描述符400包括全局标识符字段402、属性字段404和信道标识符字段406。在所阐释的示例中,全局标识符字段402描绘为包括局部事务标识符字段408和源标识符字段410。在一个实施例中,全局事务标识符402对所有未解决的(outstanding)请求是唯一的。
根据一种实现方式,局部事务标识符字段408是由请求代理生成的字段,并且它对要求那个请求代理的完成的所有未解决请求是唯一的。此外,在此示例中,源标识符410在PCIe层次结构内唯一地标识此请求方代理。因此,与源ID410一起,局部事务标识符字段408提供对事物在层次结构域内的全局标识。
属性字段404指定事务的特性和关系。在这方面,属性字段404潜在地用于提供允许修改对事务的默认处置的附加信息。在一个实施例中,属性字段404包括优先级字段412、预留字段414、排序字段416和无监听字段418。在此,优先级子字段412可以由启动程序(initiator)修改以将优先级指派给事务。留下已预留的预留属性字段414,以便用于将来的或卖方定义的用途。可以使用预留属性字段来实现使用优先级或安全属性的可能的使用模型。
在此示例中,排序属性字段416用于提供传达可以修改默认的排序规则的排序类型的任选信息。根据一个示例实现方式,排序属性“0”表示将应用默认排序规则,其中,排序属性“1”表示宽松的排序,其中,写入可以放行相同方向上的写入,并且读取完成可以放行相同方向上的写入。监听属性字段418用于判断事务是否被监听。如图所示,信道ID字段406标识事务与之相关联的信道。
链路层
链路层310(也被称为数据链路层310)充当事务层305与物理层320之间的中介级。在一个实施例中,数据链路层310的责任在于,提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层310的一侧接受由事务层305组装的TLP,应用分组序列标识符311(即,标识号或分组号),计算并应用错误检测代码(即,CRC312),并且将经修改的TLP提交给物理层320,以便跨越物理层而传输至外部设备。
物理层
在一个实施例中,物理层320包括在物理上将分组发射至外部设备的逻辑子块321和电气子块322。在此,逻辑子块321负责物理层321的“数字”功能。在这方面,逻辑子块20包括用于准备传出信息以供由物理子块322发射的发射部分以用于在将接收到的信息传递到链路层310之前标识并准备此接收到的信息的接收机部分。
物理块322包括发射机和接收机。发射机由逻辑子块321以码元(symbol)来供应,所述发射机使这些码元串行化并将这些码元发射到外部设备上。以来自外部设备的串行化的码元来供应此接收机,并且此接收机将接收到信号变换成位流。位流经解串行化,并且被供应至逻辑子块321。在一个实施例中,采用了8b/10b传输码,其中发射/接收十位的码元。在此,使用特殊码元以便利用帧323来使分组成帧。另外,在一个示例中,接收机也提供从传入串行流恢复的码元时钟。
如上文所陈述,尽管参考PCIe协议栈的特定实施例讨论了事务层305、链路层310和物理层320,但是分层式协议栈不限于此。事实上,可以包括/实现任何分层式协议。作为示例,被表示成分层式协议的端口/接口包括:(1)用于组装分组的第一层,即,事务层;用于对化分组定序的第二层,即,链路层;以及用于发射分组的第三层,即,物理层。作为特定的示例,利用了公共标准接口(CSI)分层式协议。
接下来参见图5,阐释了PCIe串行点对点结构的实施例。尽管阐释了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为它包括用于传输串行数据的任何传输路径。在所示出的实施例中,基本的PCIe链路包括两个低电压差分驱动信号对:发射对506/511和接收对512/507。相应地,设备505包括用于向设备510发射数据的发射逻辑506以及用于从设备510接收数据的接收逻辑507。换句话说,两个发射路径(即,路径516和517)以及两个接收路径(即,路径518和519)被包括在PCIe链路中。
发射路径是指用于传输数据的任何路径,诸如,传输线、铜线、光学线、无线通信信道、红外通信链路或其他通信路径。在诸如设备505和设备510之类的两个设备之间的连接被称为链路,诸如,链路415。链路可以支持一个通道(lane)——每一个通道表示一组差分信号对(一对用于发射,一对用于接收)。为了按比例缩放带宽,链路可以聚合由xN表示的多个通道,其中N是任何所支持的链路宽度,诸如,1、2、4、8、12、16、32、64或更宽。
差分对是指用于发射差分信号的两个发射路径,诸如,线路416和417。作为示例,当线路416从低电压电平切换到高电压电平(即,上升沿)时,线路417从高逻辑电平驱动到低逻辑水平(即,下降沿)。差分信号潜在地表现出更好的电特性,诸如,更好的信号完整性(即,交叉耦合)、电压过冲/反冲、振铃(ringing)等等。这允许更好的定时窗口,这允许更快的发射频率。
转到图6,描绘了存储器映射配置空间的逻辑视图的实施例。紧接着下文参考图6讨论存储器映射配置空间的这些示例中的一些。在此,PCI架构定义并提供存储器625中的配置地址空间626,此配置地址空间626通常与I/O和存储器地址空间626正交。
在一个实施例中,提供了一种使用位于固定地址(诸如,处理器605的I/O空间615中的CFC/CF8)处的I/O映射地址数据窗616配置读取和写入生成的机制。在此,处理器将读取或写入发布至地址空间616,此地址空间616表示配置地址空间626。随后,在端点622处执行那个读取或写入,此端点622可以是在PCIe网络内的设备或功能。
在另一实施例中,提供增强型配置访问机制(ECAM)以增强PCIe设备或功能配置。在此,根复合体610与根复合存储器空间中的存储器映射窗621相关联,以便表示配置访问空间626并生成配置读/写总线语义请求。紧接着下文讨论ECAM实现的示例性实施例以提供对ECAM内部工作方式的更详尽的阐释。然而,ECAM实现不限于此。此外,如下文所讨论,FCAM可以利用与ECAM类似的属性,使得以下示例可以帮助理解FCAM块架;然而,FCAM也不限于详细的说明性示例。
在一个ECAM实现方式中,经常为了维护与PCI软件配置机制的兼容性,PCIExpress元件(诸如,设备622)与PCI兼容配置空间626相关联。现在描述一些示例。PCIExpress链路起源于逻辑PCI-PCI桥,并且被映射到配置空间626,作为此桥的次级总线。根复合体610的根端口是从PCIExpress根复合体610起源PCIExpress链路的PCI-PCI桥结构。由将PCIExpress链路连接到内部逻辑PCI总线的多个PCI-PCI桥结构表示PCIExpress交换机。交换机上游端口包括PCI-PCI桥;此桥的次级总线表示交换机的内部路由逻辑。交换机下游端口是将PCI-PCI桥从内部总线桥接到表示来自PCIExpress交换机的下游PCIExpress链路的总线。表示交换机下游端口的PCI-PCI桥可以出现在内部总线上。在一些实现方式中,不准许由0型配置空间头部表示的端点622出现在内部总线上。
PCIExpress端点622可以作为设备中的单个功能而被映射到配置空间626中,所述设备可以包含多个功能或仅包括所述功能。PCIExpress端点和旧式端点常常出现在由根复合体610产生的层次结构域中的一者内。作为示例,设备622出现在树中的配置空间626中,所述树具有作为其头的根端口。根复合体集成端点和根复合体事件收集器可以不出现在由根复合体610产生的层次结构域中的一者内。相反,在一些实现方式中,这些作为根端口的对等方出现在配置空间626中。
在一个实施例中,PCIExpress将配置空间626扩展到较大尺寸,诸如,相比PCI局部总线规范所允许的246字节的每功能4096字节。在一个实施例中,PCIExpress配置空间626被分割成PCI3.0兼容区域和PCIExpress扩展配置空间,所述PCI3.0兼容区域由第一数量的(诸如,前256字节的)功能622的配置空间组成,而所述PCIExpress扩展配置空间由其余的配置空间626组成。如稍后所描述,可以使用PCI局部总线规范中定义的机制或PCIExpress增强型配置访问机制(ECAM)或快速配置访问机制(FCAM)来访问配置空间626的PCI3.0兼容部分。
可以通过使用ECAM或FCAM来访问PCIExpress扩展配置空间。PCI3.0或后续版本(例如4.0、5.0以及待开发的其他版本)兼容的PCIExpress配置机制支持PCI局部总线规范中定义的PCI配置空间编程模型。通过遵循此模型,合并PCIExpress接口的***保持与常规的PCI总线枚举和配置软件兼容。按照与PCI3.0设备功能相同的方式,PCIExpress设备功能为软件驱动的初始化和配置提供配置空间。PCIExpress配置空间626的头部通常被组织成与PCI局部总线规范中定义的格式和行为对应。PCI3.0兼容的配置访问机制可以使用与ECAM或FCAM相同的请求格式。对于PCI兼容的配置请求,可以将扩展寄存器地址字段置位成全0
在一个实施例中,对于实现允许访问配置空间626的处理器架构专用的固件接口标准的***,操作***使用标准固件接口,并且ECAM或FCAM访问是任选的。例如,对于与《用于基于64位英特尔架构的服务器(DIG64)的开发者接口引论2.1.93版》(“Developer’sInterfaceGuidefor64-bitIntelArchitecture-basedServers(DIG64),Version2.1.93”)兼容的***,操作***使用SAL固件服务来访问配置空间。
在一个实施例中,ECAM利用平坦存储器映射地址空间来访问设备622的配置寄存器。在这种情况下,存储器地址确定所访问的配置寄存器,并且存储器数据更新(对于写入)或返回经寻址的寄存器的内容(对于读取)。表1中定义了从存储器地址空间到PCIExpress配置空间地址的一种示例性映射。
表1:增强型配置地址映射的实施例
通过主机桥和固件的设计来确定映射到配置空间的存储器地址的范围的尺寸和基址。可由固件以实现专用的方式将它们报告给操作***。由主机桥映射到配置地址中的总线号字段的位的数量来确定范围的尺寸。在表1中,此位的数量被表示成n,其中1≤n≤8。将n个存储器地址位映射到总线号字段的主机桥支持0到2n–1(含)的总线号,并且此范围的基址对准2(n+20)字节存储器地址边界。总线号字段中不是从存储器地址位映射的任何位可以清除。
例如,如果***将三个存储器地址位映射到总线号字段,下列为真:n=3;地址位A[63:23]用于基址,此基址对准2^23字节(8-MB)边界;地址位A[22:20]被映射到总线号字段中的位[2:0];总线号字段的位[7:3]被设置为清除;并且***能够对0与7之间(含)的总线号寻址。
最少一个存储器地址位(n=1)可以被映射到总线号字段。然而,在其他实现方式中,***根据需要将附加的存储器地址位映射到总线号字段以支持更多数量的总线。例如,支持多于4GB存储器地址的***将至少八位的存储器地址(n=8)映射到总线号字段。注意,在包括多个主机桥且不同范围的总线号被指派给每一个主机桥的***中,***的最高总线号潜在地受到由向其指定此最高总线号的主机桥映射的位的数量限制。在此类***中,在大多数情况下,指派给特定的主机桥的最高总线号5将大于指派给此主机桥指定的总线的数量。换句话说,对于每一个主机桥,映射到总线号字段的位的数量n应当足够大,使得指派给每一个特定的桥的最高总线号小于比或等于那个桥的2n–1。在一些处理器架构中,例如由于跨越DW对准边界,或因为使用了锁定的访问而生成不是在单个配置请求中表达的存储器访问是可能的。可以不使用根复合体实现来支持转换到对此类访问的配置请求。
此外,请求可以针对ARI设备中的扩展功能,A[19:12]表示(8位)功能号,其取代(5位)设备号和(3位)功能号字段。
在一个实施例中,***硬件提供一种方法以供***软件确保在***软件执行继续之前由完成者完成使用ECAM的写入事务。
在一种实现方式中,ECAM将来自主机CPU的存储器事务转换成PCIExpress结构上的配置请求。这种转换可能对软件产生排序问题,因为对存储器地址的写入通常是经通报(posted)事务,但对配置空间的写入可能不在PCIExpress结构上被通报。
一般而言,软件不知晓何时由完成者完成经通报的事务。在软件希望知晓由完成者完成了经通报的事务的那些情况下,由软件通常使用的一种技术是读取刚被写入的位置。对于始终遵循PCI排序规则的***,直到经通报的写入完成才完成读取事务。然而,由于PCI排序规则允许非通报的写入和读取事务相对于彼此重新排序,因此CPU605应当等待非通报的写入在PCIExpress结构上完成,以便保证由完成者完成此事务。作为示例,软件可能希望通过使用ECAM写入到设备622来配置设备功能622的基地址寄存器,随后,读取存储器映射范围中由此基地址寄存器描述的位置。如果软件在完成ECAM写入之前将发布存储器映射读取,则此存储器映射读取被重新排序且在配置写入请求之前到达设备将是可能的,由此导致不可预料的结果。为了避免此问题,在一个实施例中,处理器605和主机桥610的实现方式确保了存在供软件确定完成者何时完成使用ECAM的写入的方法。
这种方法可以简单地为:处理器605本身将专用于映射ECAM访问的存储器范围识别为是唯一的,并且以与它对待在PCIExpress结构上生成非通报写入的其他访问相同的方式对待对此范围的访问,即,从处理器的角度来看,没有公布此事务。替代机制为:主机桥610(而不是处理器605)识别存储器映射配置空间626的访问,并且直到在PCIExpress结构上已经完成非通报配置事务才向处理器605指示已接受此写入。第三替代机制将是:处理器605和主机桥610通报对ECAM的存储器映射写入,并且主机桥610提供分开的寄存器,软件可以读取此分开的寄存器以确定配置写入请求何时已在PCIExpress结构上完成。其他替代也是可能的。例如,处理器可以提供围栏(fence)指令,当执行此围栏指令时,此围栏指令确保先前的(较早发布的)存储器访问操作已完成。
由于不需要根复合体实现来支持从跨越DW边界或使用锁定语义的访问生成配置请求,因此除非已知正在使用的根复合体610实现将支持转换,否则软件应当在使用存储器映射ECAM时留意不要导致此类访问的生成。对于实现ECAM的那些***,PCIExpress主机桥610用于将来自主机处理器的存储器映射PCIExpress配置空间访问转换成PCIExpress配置事务。可为向后兼容性预留主机桥PCI类代码的用途;能以兼容或不兼容PCI主机桥0型配置空间的实现专用的方式来实现主机桥配置空间。可以不需要PCIExpress主机桥以通过根复合体事件收集器用信号通知错误。这种支持对于PCIExpress主机桥是任选的。设备622可以支持附加的4个位,用于解码配置寄存器访问,即,解码配置请求头部的扩展寄存器地址[3:0]字段。
可将具有合法理由而被放置在配置空间中的设备专用寄存器(例如,它们在存储器空间被之前将是可访问的)放置在(PCI兼容配置空间中的)卖方专用能力结构或(PCIExpress扩展型配置空间中的)卖方专用扩展能力结构。在运行时环境中由驱动器访问的设备专用寄存器可以被放置在由一个或多个基址寄存器分配的存储器空间中。即使PCI兼容的或PCIExpress扩展型配置空间可能具有用于运行时设备专用寄存器的足够空间,但是通常不鼓励将它们放置在那里。
根端口或根复合体集成端点可以与存储器映射寄存器中被称为根复合体寄存器块(RCRB)的任选块(诸如,4096字节的块)相关联。在一个实施例中,以与配置空间626类似的方式使用这些寄存器,并且这些寄存器可以包括PCIExpress扩展能力和应用到根复合体的其他实现专用寄存器。
可以准许多个根端口或内部设备与相同的RCRB相关联。在一种实现方式中,RCRB存储器映射寄存器不驻留在与存储器映射配置空间或存储器空间相同的地址空间。在另一实施例中,它们驻留在相同的地址空间,但具有不同的地址。
如图可见,ECAM潜在地允许CPU生成的配置请求的更快完成,从而减少CPU停机时间,并且对***软件隐藏的配置高速缓存操作允许更快的功率状态进入和退出。然而,在一些实施例中,此类益处不扩展到集成设备。
因此,在一个实施例中,提供快速配置访问机制(FCAM)。作为示例,FCAM实现包括对主机软件透明地呈现为ECAM,因为根复合体610将新FCAM策略应用于服务配置请求中。此外,在一些实施例中,根复合体610使用存储器读/写命令并且潜在地为此类命令提供模板,以便也模板生成新总线语义。
在一个实施例中,根复合体610包括映射到存储器映射I/O窗的高速缓存,例如,FCAM高速缓存。此类高速缓存使用潜在地允许以下各项中的一项或多项:(1)主机发起的配置写入,此配置写入在高速缓存中缓冲,并且从主机处理器205的角度开更快地完成;(2)可组合成对设备622的单个总线事务的多个主机发起的配置写入,从而改善效率并减少配置时间;(3)来自从高速缓存提供服务的静态和半静态设备配置寄存器的主机发起的读取,从而减少等待时间,减少了总线通信量,并且降低功率;以及(4)设备622可以关机,并且通过将上下文保持在高速缓存中来快速地重建配置上下文,随后,在设备62恢复加电时迅速地将上下文转储到设备622(如果正在对多个设备加电,则这可以并行地进行)并且可以不要求直接的主机干预,从而减少了功率和等待时间。
在一个实施例中,FCAM高速缓存与处理器605的高速缓存不是缓存一致(cachecoherent)的。作为推论,提供非一致高速缓存的能力可以允许在非一致I/O链路后方(诸如,在桥中)启用高速缓存机制的实现方式以支持旧式PCI/PCIe硬件。然而,在另一实施例中,FCAM高速缓存实现为与处理器605的高速缓存一致。
在一个实施例中,FCAM高速缓存实现直写(write-through)策略以确保配置更新被继续发送到目标功能。然而,直写策略可以采取任何各种形式。例如,一种实现方式潜在地利用懒惰(slothful)直写策略,其中以合理及时的方式(即,由于拥塞等引起的延时的方式)直写各写入。然而,在这种场景中,写入可以确定性地完成。
在一个实施例中,在重新建立了配置上下文之后(诸如,将配置上下文从FCAM高速缓存重新加载到端点设备的配置空间中之后),准许主机将大块写入(largeblockwrite)发布至目标功能/设备。在此,可使用块写入而非更小的写入(诸如,DW(或更小的)写入)来从高速缓存或处理器写入配置空间本身。
下文中(诸如,参考图7和图9)更详细地讨论FCAM高速缓存以及从其中恢复配置上下文。
在一个实施例中,定义了至少两种类型的配置块:旧式的和清洁的(clean)。在说明性示例中,跟踪字节写入掩码并连同旧式块配置区域中的写入数据一起发送,并且有区别地发布连续的写入。另外,在此示例中,在旧式块内实现旧式兼容配置寄存器。另一方面,清洁块可以不利用字节写入掩码。在此,潜在地准许/允许写入组合、合并、崩溃(collapsing)或它们的某种组合。此外,实现者可以包括一些旧式兼容的配置寄存器,以便如果清洁和旧式块两者遵循清洁块区域要求,就可由它们访问这些旧式兼容的配置寄存器。下文中(诸如,参考图12)更详细地讨论旧式和清洁块。
在一个实施例中,具备FCAM能力的设备在偏移地址处实现主机FCAM高速缓存的镜像。在此,FCAM镜像高速缓存也可以实现将本地更新往回反射至主机的懒惰直写策略。
在一个实施例中,FCAM配置通信量使用存储器写入语义。作为结果,在一些实现方式中,此类存储器写入语义的转换被用于旧式PCI/PCIe功能。作为转换的特定说明性示例,写入如上所述来运作,但旧式设备622的配置空间被看作是旧式块,并且存储器写入语义被转换成配置写入(诸如,旧式配置写入);并且不从FCAM高速缓存对读取提供服务,且读取被直传(passthrough)到旧式设备622。在一个场景中,具备FCAM能力的设备通过使用唯一的消息(诸如,类似设备就绪状态(DRS)的机制或功能就绪状态(FRS)消息机制或类似配置基址寄存器(CBAR)的消息机制)来自我标识。
如上所述,可以为传统的非集成功能/设备以及集成功能/设备(诸如,片上***(SoC))执行快速配置机制。针对分立的实现方式(即,不集成功能的情况),现在描述一种示例性协议机制。在此,FCAM机制使用对特殊地址的存储器写入来操作,所述特殊地址例如,通过配置基址寄存器(CBAR)与功能相关联的范围以及主机/根根复合体610上的、可以位于存储器中的任何地方的另一范围。在一个实施例中,使用消息来设置CBAR地址范围,所述消息响应于由将自身标识为具备FCAM能力的设备发送的消息而从主机610被发送。继续示例性写入协议,有序地提交CBAR范围,且此CBAR范围不停留达延长的时段。另外,从设备到主机区域的更新导致主机软件的通知,例如,中断、从等待状态(MWAIT)返回的触发或某种其他已知机制。此外,在一些实现方式中,在CBAR更新之后,提供通知机制以触发动作。
参见图7,阐释用于配置互连架构的元件的控制器的实施例。在一个实施例中,控制器705包括根控制器。类似地,控制器705可以被称为根复合体、主机、主机桥或用于常常操作为PCIe架构的根方面的聚合点的高层级层次元件的其他名称。作为特定的说明性示例,根控制器705包括可以或可以不集成在处理器或SoC中的存储器控制器。控制器705也可以是耦合到I/O设备的I/O控制器。或者,控制器705可以是SoC上用于与集成端点设备735对接的逻辑块。
接口逻辑715、716和717包括用于与元件(诸如,PCIe设备、桥、功能和端点)对接的逻辑。按其最基本的形式,接口逻辑715包括用于物理上耦合到所枚举的设备的物理层接口。然而,如上文所陈述,控制器705可以包括用于与设备通信的分层式栈。然而,重要的是应注意,每一层可以基于相同的或不同的规范。例如,协议层、链路层和物理层可以基于一个或多个PCIe规范。或者替代地,PHY层的至少部分可以基于MIPIPHY规范,(诸如,MPHY规范),而其余的层基于PCIe。作为结果,互连架构可以是PCIe协议兼容的,即,基本上兼容一个或多个PCIe协议定义,同时在不同的物理定义的接口上实现那些协议。物理接口的一些示例包括:低功耗PHY规范、移动行业***接口(MIPI)PHY规范、***组件互连快速(PCIe)PHY规范和更高性能和功率的PHY规范。然而,由于为彼此抽象它们的内部工作方式是层的目标,因此可以利用任何已知的PHY接口。此外,如下文中更详细地所述,可以在不是PCIe的另一协议或链路层改版内利用FCAM。
图7也阐释多个元件,这些元件可以包括设备、功能、交换机、桥、能够识别多个PCIe规范定义的协议通信的***组件互连快速(PCIe)设备、不能够识别多个PCIe规范定义的协议通信的非PCIe设备或其他已知的I/O设备。作为示例,如本文中所述,图7阐释具有旧式转换器的交换机725。作为结果,假定设备735是旧式功能,则交换机725执行存储器写入语义至配置写入以及存储器读取语义至配置读取的旧式转换,以便确保向后兼容能力。在这种场景中,设备726和727包括FCAM支持。
控制器705包括FCAM块710。在一个实施例中,FCAM块710包括用于支持高效地配置设备725、726、727和735的快速配置机制的硬件。应注意,在一些实施例中,FCAM块710可以包括并置(collocated)代码,所述并置代码在本地执行以执行也支持快速配置的某些操作。
在所描绘的实施例中,FCAM块710包括配置控制逻辑711和配置存储设备712。尽管被示出为一个逻辑块,但是配置存储设备712不限于此。事实上,它可以是不被并置的多个分开的存储元件。作为特定的说明性示例,配置存储设备712可以包括:寄存器,用于存储配置空间的基址;高速缓存,用于对写入进行高速缓存且用于结合控制逻辑711来实现用于配置的存储器写入语义;以及存储/高速缓存,用于配置上下文信息本身。注意,这些项中的一个或这些相的组合可以作为配置存储设备712而被包括在控制器705中。然而,为了简化讨论,下文中分开讨论前述配置存储设备的示例中的每一个。
作为第一示例,配置存储设备712包括服务于主机处理器配置请求的高速缓存。在此,与主机处理器发布配置写入或其他写入并等待直到完全完成(端点设备中的更新和完成通知)不同,处理器可以发布存储器写入,并且依赖于FCAM块710以立即提供完成,因此主机处理器可以继续执行,同时FCAM块710服务于作为对设备配置寄存器/空间的写入的存储器写入。换句话说,高速缓存缓冲主机发起的配置写入,因此从主机的视角看,完成能够更快地发生。在此实施例中,设备726的配置寄存器用于被映射到存储器中的配置空间,并且对设备726内的特定配置寄存器的写入用于寻址存储器中的配置空间内的存储器地址,以便与特定的配置寄存器相关联。并且当执行对存储器地址的写入时,高速缓存缓冲此写入,将完成提供给主机,并且将此写入提供给被映射到此写入的存储器地址的特定的配置寄存器。另外,高速缓存可以提供其他增强,诸如,写入组合、合并和崩溃。
作为另一示例,配置存储设备712用于保存对配置上下文的引用。在一个示例中,对配置上下文的引用是指对配置空间所在的位置的引用。在此示例中,引用可以包括存储器地址、指针或对配置空间的位置的其他已知引用。在此,地址寄存器(诸如,基址寄存器)可以保存对与元件相关联的存储器映射配置空间的地址引用,诸如,来自图6的地址空间626。在另一实施例中,对配置上下文的引用是指对在其中保存配置上下文的经高速缓存的副本的位置,诸如,存储器位置或其他位置。或者,在另一实施例中,对配置上下文的引用包括将配置上下文与同此配置上下文相关联的设备关联起来的引用。例如,假定配置存储设备712保存设备726的高速缓存配置上下文,同时设备726处于低功率状态,则在此实施例中,对配置上下文的引用包括存储设备712中的配置上下文本身以及在配置存储设备712中将此上下文与设备726相关联的引用(诸如,设备ID、索引、头部,等等)。
作为又一示例,配置存储设备用于保存配置上下文。如本文中所描述,配置空间潜在地遵循所定义的信息模板。并且当设备(诸如,设备726)进入到较低的功耗状态时,可能丢失那个配置空间信息。作为结果,在一个实施例中,对那个配置空间信息进行高速缓存,以便当设备726再次进入活动状态后恢复。在此,经高速缓存的上下文信息可以存储在任何地方。因此,在一个实施例中,配置存储设备712保存对在存储配置空间的经高速缓存的副本的位置的引用。作为不同的示例,假定设备726具备FCAM能力,并且交换机725包括FCAM高速缓存。交换机725中的FCAM高速缓存可以保存设备726的配置空间的经高速缓存的副本。并且应再次进入活动功率状态的请求,控制器705可以提供那个经高速缓存的副本以重建设备726的配置空间。
在另一实施例中,配置存储设备712保存设备(诸如,功能726)的配置上下文。作为此场景中的结果,在设备726将进入低功率状态时,配置空间(或至少其部分)被存储到配置存储设备712中。换句话说,设备726(无论是集成的还是分立的)的配置数据被写入到配置存储设备712,并且随后设备726进入低功率状态。并且当重新进入活动状态后,提供设备726的配置上下文而无需处理器使用旧式配置写入来重新写入配置信息。因此,使用FCAM块710,设备726的失电和上电可非常快地发生,而无需来自主机处理设备(诸如,来自图6的处理器605)的直接干预或直接访问。
如上文所陈述,在一个实施例中,配置上下文包括元件(诸如,设备726)的多个配置空间参数的状态。作为结果,上下文可以保存寄存器的值和设备726的参数;本文中诸如参考具有旧式和清洁块的配置空间模板描述了其中的一些。在一个实施例中,配置数据包括来自设备726内的配置寄存器的数据。
同样如上文所暗指,在一个实施例中,响应于功率事件而进行存储上下文或恢复(例如,从经高速缓存的副本往回提供/写入上下文)。功率事件可以包括电压或功率的实际改变。然而,在其他实施例中,功率事件是指状态的改变、所请求的状态改变或在状态之间过渡时段,诸如,链路状态的改变(例如,链路的状态机的一种状态到另一种状态的过度,或进入/离开所定义的功率状态)。在存储或备份上下文的情况下,功率事件可以包括进入(或进入的指示,诸如,对进入的请求)低功率状态,诸如,睡眠状态(RTD3)。对于从诸如在高速缓存712中的高速缓存副本恢复或提供上下文,高速缓存控制逻辑711可以响应于进入(或进入的指示,诸如,对进入的请求)活动功率状态而发起或提供上下文。功率事件的其他示例包括元件将进入活动功率状态的指示、元件将完成链路训练的指示、元件将完成链路初始化或操作的另一阶段的指示或链路将在多个链路状态之间过渡的指示。在一个实施例中,参考配置上下文的活动功率状态是被定义为具有活动配置空间的一种状态,而睡眠或低功耗模式是由于数据或功率的潜在丢失而将配置空间信息存储在其他地方的一种模式。
尽管将图7的多个块阐释成在逻辑上分开且不同,但是实际的实现方式可能不是如此有区别,相反,块的边界可以重叠或者可集成在相同的设备上。作为说明性示例,所有块(控制器705和设备725、726、727和735都集成在单个管芯上上作为SoC。在此,SoC可以被包括在***(诸如,具有标准化语音通信能力的移动终端)中,或被包括在可以具有或不具有语音通信能力的非移动终端中。作为不同的示例,控制器705和设备726、727一起位于集成电路上,而交换机725和设备735分开地耦合到集成电路。此外,所有设备可以是分立地分开的。此外,诸如711和712之类的逻辑块可以与彼此以及其他块交织,其他块诸如,接口逻辑715、716和717。在那个示例中,用于执行FCAM操作的高速缓存或逻辑可以被包括在互连架构的分层式栈逻辑内。
作为结果,FCAM块710潜在地允许:将快速配置应用到集成和分立的互连设备两者,通过减少宿主干预和架构限制来减少睡眠恢复延迟时间,非阻塞配置活动的同时和独立的线程,I/O设备的完全虚拟化包括对功能扩展的完全支持,以及用于现有软件和硬件的旧式兼容机制。
图8阐释用于使用来自主机设备的存储器访问来配置元件的协议图的实施例。在此,主机805(诸如,处理元件)用于配置设备815。主机805执行以设备815为目标的写入821。作为第一示例,写入821包括配置写入。替代地,写入821包括具有存储器写入语义的存储器写入。在后一种情况下,使用存储器写入中用于引用与设备815相关联(诸如,映射至设备815的配置空间以及潜在地映射至设备815内的特定配置寄存器)的存储器地址的存储器地址来以设备815为目标。
控制器810接收写入821。此接收可以在任何链路上。在一种实现方式中,控制器810是集成在处理器805上的控制器中枢。作为结果,对消息812的接收来自管芯上互连。然而,控制器810也可以在主机805外部,这导致在位于主机805外部的互连上发射并接收消息821。
在一个实施例中,控制器810将消息消息822发起并传送至设备815。继续上文的示例,其中写入具有设备815内的配置寄存器的计划目标。写入822可以采取旧式配置写入的形式或对配置空间或设备寄存器的类似ECAM的写入的形式,以便以来自写入821的配置值来更新寄存器。
在一个场景中,完成823和824分别被往回发送到控制器810和主机805。如此处可见,从主机805发射消息821到在主机805处接收到完成824存在着潜在的延时(在下文中称为主机配置完成延时)。
转到图9,阐释用于快速设备配置的配置逻辑的实施例。在一个实施例中,FCAM块910包括用于加速配置(诸如,潜在地减少上述主机配置完成延时)的块,从而减少功能配置的等待时间,等等。
与上文的讨论类似,配置存储设备可以采取多种形式,诸如,用于保存对功能的配置空间的引用的存储设备、用于保存对配置上下文的引用的存储设备、用于保存配置写入的存储设备或上述各项的组合。图9中也说明性地提供至少两种类型的配置存储设备。例如,FCAM块910包括用于保存供配置空间与功能相关联的基址的基地址寄存器911。
作为第二示例,提供高速缓存913。高速缓存913可以保存对配置上下文(配置空间、用于配置上下文的存储位置或配置上下文本身)的引用,或者它可以充当用于支持设备配置的存储器读取/写入语义的高速缓存或缓冲器。
作为特定的示例,高速缓存存储设备913用于保存对设备的配置上下文的引用。从上文的讨论应注意,这可以包括对配置空间的位置的引用、配置空间的配置上下文的位置、对经高速缓存的配置上下文与其相关联的设备/功能的引用、配置上下文本身或上述各项的组合。
另外,在一个实施例中,高速缓存913用于支持用于设备/功能的配置的存储器访问语义。在此,由主机设备进行访问,并且此访问被缓冲(或被高速缓存)在高速缓存913中。此外,控制逻辑912用于为访问提供服务,例如,以适当形式提供对适当位置的访问,以及潜在将完成提供给主机而无需来自目标设备的完成。借助于对图10的快速参考进一步阐释此示例,在图10中阐释了用于元件的快速配置的协议图的实施例。
在此,对将以设备1015中的配置寄存器未目标的存储器地址的存储器访问1021(诸如,写入)被传送到控制器1010。控制器1010将可接受的格式写入(例如,可由设备1015识别的写入)提供给设备1015,以便以来自访问1021的新值更新相关联的配置寄存器。在这种场景中,高速缓存913可以用于缓冲此写入。另外,控制器1010并行地将完成往回提供给1005(即,无需来自设备1015的、引用写入1022的设备1015的完成,或至少部分地处于与消息1022相同的过渡/处理时段)。
如与图8相比可见,从主机1005的角度看,加速了图10中借助于设备1015的寄存器的配置,因为它快速地(且潜在地立即)从控制器1010接收完成而无需等待图8中响应于写入822的完成的延迟的完成824。
返回到图9,也可以加速对配置空间的读取。例如,可以由主机设备进行读取访问。并且如果当前的副本被保存在高速缓存913中,则可以由控制器为读取提供服务而无需去往存储器或设备来获取当前的数据值。作为结果,在一个实施例中,高速缓存存储设备913用于与一个或多个处理器高速缓存一致。然而,在另一实施例中,高速缓存存储设备913不与一个或多个处理器高速缓存一致。然而,在一些实现方式中,高速缓存913与相关联设备的配置状态相协调。作为示例,在一些实现方式中,在桥后面实现高速缓存913,其中此高速缓存913与设备的配置状态相协调但不与处理器高速缓存一致。
任何已知的其他缓存策略或算法都可以用于控制912和高速缓存913。作为示例,控制911和高速缓存913可以实现直写、回写或其他已知的高速缓存算法。
在其中使用高速缓存来保存配置值(作为用于配置访问的缓冲器或保存配置上下文)的一个示例中,控制器和FCAM块910能够:将存储器地址与配置寄存器相关联起来,从而接收对存储器地址的访问;在高速缓存913中保存/存储寄存器的配置值;并且以第一配置模式(诸如,增强型配置访问机制模式)将从主机处理设备到存储器地址的存储器访问转换成对配置寄存器的配置请求。并且控制器或下游组件(诸如,交换机或桥)进一步能够将保存在高速缓存913中的配置值提供给配置寄存器而无需处于第二配置模式(诸如,以快速配置访问模式(FCAM))的来自主机处理设备的存储器访问。应注意,在FCAM模式中,主机处理设备可以执行控制器进行高速缓存并提供给设备的存储器访问,同时提供加速的完成(如上所述)。然而,在FCAM模式中,由主机处理设备进行的那个相同的存储器访问不需要还原存储在高速缓存913或另一组件中的配置上下文。
转到图11,描绘供设备指示快速配置能力的协议图的实施例。作为示例,设备可以自我标识为具备FCAM能力。如图所阐释,链路可以执行某种训练120(诸如,链路训练)或其他阶段/状态过渡。随后,设备1115发送消息1125以指示它具备FCAM能力。作为一个示例,消息1125包括类似DRS或DRS0的消息。作为另一示例,消息1125包括用于指示配置的就绪的配置基址寄存器(CBAR)消息,此CBAR消息可以附加于或取代用于指示CBAR位置的DRS消息。当接收到消息1125之后,控制器1110随后能够使用FCAM或CBAR机制来配置设备1115,有时无需直接的主机干预。在一些实例中,为了支持旧式兼容性,可以在诸如重置之类的功率事件之后阻止根复合体110(或交换机)发布配置请求达某时间量(例如,包括1ms至500ms的示例性时间的范围,并且可以是特定值,诸如,100ms)。然而,如果在此时间段期间接收到指示具备FCAM能力的DRS或CBAR消息,则配置1130可以立即开始而无需任何进一步的等待。
接下来参见图12,阐释用于互连架构中的元件的配置空间的实施例。如图所示,配置区域1205(诸如,配置基址区域)或因此数据结构包括旧式块1210和清洁块1215。在此,对旧式块1210的写入潜在地包括与如用于块1210的示例性格式中所示的数据交织的读取/写入字节选择。如图所描绘,块1210格式包括头部1211、掩码122和数据1213a-g,作为示例,数据1213a-g包括双字(doubleword)。此外,在一个实施例中,按递增的地址顺序提交对旧式块1210的写入,并且保证可以适当地处理副作用。
在一个实施例中,清洁块1215不包括读取/写入字节选择,但在替代实施方式中,它可以包括读取/写入字节选择。可以按副作用在块的级别上为安全的方式来定义用于清洁块1215的位定义。然而在此,按照递增的地址顺序提交写入可能仍是优选的。在一个实施例中,设备中的控制器和逻辑的配置逻辑能够支持对清洁块区域1215的写入组合与合并。
图13阐释一种配置设备的方法的流程图的实施例。从上文的内容应注意,由本文中描述的逻辑执行的协议流或操作中的任一者可以表示为方法。作为示例,即使图10的讨论参考主机、控制器和设备来传送协议消息,消息传送(即,消息1021以及响应于消息1021的完成1023)也可表示为方法。反过来,本文中描述的任何方法可以类似地在装置中实现。
在图13所阐释的方法中,在流1305中,接收到来自设备的、指示快速配置兼容性的特定消息。如上所述,此消息可以包括类似DRS的消息或CBAR消息。在此,CBAR消息可以引用位置(即,基址),此位置用于更新控制器中的CBAR。随后,在流1310中,响应于接收到此消息来配置设备。在一个实施例中,对设备的此类配置是恢复配置上下文。在此,接收到具备FCAM能力的消息。当设备将睡眠时,它将配置上下文保存到类似高速缓存的结构中。随后,当将进入活动功率模式时,控制器可以基于经高速缓存的配置上下文和设备的FCAM能力来直接配置设备。或者,在复位或上电之后,控制器可以响应于接收到具备FCAM能力的消息立即配置设备。根据任一方式,可以更新或配置具备FCAM能力的设备的一个或多个配置寄存器。
在一个实施例中,在流1310中配置设备包括:发起对配置地址空间的第一存储器写入;以及发起对与配置地址空间正交的根复合体存储器空间的第二存储器写入。
参见图14,描绘低功率计算平台的实施例。在一个实施例中,低功率计算平台1400包括用户装备(UE)或移动终端。在一些实施例中,UE是指可以用于通信的设备,诸如,具有语音通信能力的设备。UE的示例包括电话和智能电话的示例。然而,低功率计算平台也可以是指用于获取较低功率的操作点的任何其他平台,诸如,平板、低功率笔记本、超便携笔记本或超薄笔记本、微服务器、低功率台式机、发射设备、接收设备或不是移动终端的任何其他已知的或可用的计算平台。所阐释的平台描绘用于耦合多个不同的设备的许多不同的互连。下文中提供对这些互连的示例性讨论以提供关于实现和包含本文中公开的装置和方法的选项。例如,所阐释和讨论的互连协议中的任一者都可以实现与上文中参考PCIe架构的讨论类似的快速配置机制,而无需潜在地实现PCIe架构本身。然而,不要求低功率平台1400来包括或实现所描绘的互连或设备。此外,可以包括未专门示出的其他设备和互连结构。
从此图的中心开始,平台1400包括应用处理器1405。这常包括低功率处理器,此低功耗处理器可以是本文中描述或本行业中已知的处理器配置的一个版本。作为一个示例,处理器1400实现为片上***(SoC)。作为特定的说明性的示例,处理器1400包括可从加利福尼亚州圣克拉拉市的英特尔公司商购的基于架构酷睿TM的处理器(诸如,i3、i5、i7或另一此类处理器。然而,应理解,其他低功耗处理器(诸如,可从加利福尼亚州桑尼维尔市的超微设备有限公司(AMD)商购的处理器、来自加利福尼亚州桑尼维尔市MIPS技术公司的基于的MIPS设计、来自ARM控股有限公司或其的消费者或它们的经许可方或采用者的经授权的基于ARM的设计相反可以存在于其他实施例(诸如,苹果A5/A6处理器,高通骁龙(Snapdragon)处理器或TIOMAP处理器)中。应注意,随着来自这些公司的处理器和SoC技术的进展,更多被阐释为与主机处理器1400分开的组件可以被集成在SoC上。作为结果,可以“在管芯上”使用类似的互连(以及其中的发明)。
在一个实施例中,应用处理器1405运行操作***、用户借口和应用。在此,应用处理器1405常识别指令集架构(ISA)或与此ISA相关联,操作***、用户借口和应用利用所述ISA以指示处理器1405的操作/执行。它也通常对接到传感器、相机、显示器、话筒和大容量存储设备。一些实现方式将时间要求关键的电信相关的处理卸载到其他组件。
如图所描绘,主机处理器1405耦合到无线接口1430(诸如,WLAN、WiGig、无线HD(WirelessHD)或其他无线接口)。在此,利用LLI、SSIC或UniPort兼容的互连来耦合主机处理器1405和无线接口1430。
LLI代表低等待时间接口。LLI通常允许在两个设备之间的存储器共享。双向接口在两个设备之间传输存储器事务,并且允许设备访问另一设备的本地存储器;通常无需软件干预来完成此,好像它是单个设备一样。在一个实施例中,LLI允许在链路上携带信号三个类别的通信量,从而减少GPIO计数。作为示例,LLI定义用于通信的分层式协议栈或物理层(PHY),诸如,下文中更详细地描述的MPHY。
SSIC是指超高速互连芯片(SuperSpeedInter-Chip)。SSIC可以允许使用低功率物理层来设计高速USB设备。作为示例,利用了MPHY层,同时在MPHY上利用了USB3.0兼容协议和软件,以便得到更好的功率性能。
UniPro描述具有物理层抽象的分层式协议栈,从而提供用于互连广泛范围的设备和组件的通用错误处置高速解决方案:应用处理器、协处理器、调制解调器和***设备,并且支持不同类型的数据通信量(包括控制消息、批量数据传输和分组化的流传播)。UniPro可以支持使用MPHY或DPHY。
其他接口也可以直接通过可以利用本文中描述的装置和方法的其他接口而直接将诸如调试1490、网络1485、显示器1470、相机1475和存储设备1480耦合到主机处理器1405。
调试接口1490和网络1485通过调试接口1491(例如,PTI)或网络连接(例如,在功能网络连接1485上操作的调试接口)来与应用处理器1405通信。
显示器1470包括一个或多个显示器。在一个实施例中,显示器1470包括具有能够接收/感测触摸输入的一个或多个触摸传感器的显示器。在此,显示器1470通过显示接口(DSI)1471而耦合到应用处理器1405。DSI1471定义主机处理器与***设备之间的协议,主机处理器和***设备可以利用D-PHY物理接口。它通常采用像素格式以及用于视频格式和信令的所定义的命令集(诸如,显示像素接口2(DPI-2)),并且控制显示模块参数(诸如,通过显示命令集(DCS))。作为示例,DSI1471以每个通道约1.5Gb/s或高达6Gb/s来操作。
在一个实施例中,相机1475包括用于静态图片、视频捕捉或两者的图像传感器。前侧和后侧相机在移动设备上是常见的。可以使用双相机来提供立体感支持。如图所描绘,照相机1475通过***互连(诸如,CSI1476)耦合到应用处理器1405。CSI1476定义***设备(例如,相机、图像信号处理器)与主机处理器(例如,1405、基带、应用引擎)之间的接口。在一个实施例中,在DPHY上执行图像数据传输,所述DPHY是具有数据和时钟信号的单向差分串行接口。在一个实施例中,对***设备的控制发生在分开的后信道上,诸如,相机控制。作为说明性的示例,CSI的速度的范围可以是50Mbps–2Gbps,或其中的任何范围/值。
在一个示例中,存储设备1480包括由应用处理器1405用于存储大量信息的非易失性存储器。它可以基于闪存技术或磁类型的存储设备,诸如,硬盘。在此,1480通过通用闪存(UFS)互连1481而耦合到处理器1405。在一个实施例中,UFS1481包括为低功率计算平台(诸如,移动***)定制的互连。作为示例,它提供在200与500MB/s之间的传输率(例如,300MB/s),从而利用排队特征来增加随机读取/写入速度。在一种实现方式中,UFS1481使用MPHY物理层和协议层,诸如,UniPro。
调制解调器1410常常代表调制器/解调器。调制解调器1410通常提供到蜂窝式网络的接口。取决于使用哪个通信标准,它能够与不同的网络类型和不同的频率通信。在一个实施例中,支持语音和数据连接两者。调制解调器1410利用任何已知的互连(诸如,LLI、SSIC、UniPro、移动快速(MobileExpress)等中的一种或多种)而耦合到主机1405。
在一个实施例中,利用控制总线来耦合控制或数据接口,诸如,无线1435、扬声器1440、话筒1445。此类总线的示例是SLIM总线(SLIMbus);SLIM总线是能够支持广泛范围的音频和控制解决方案的灵活的低功率多点式接口。其他示例包括PCM、I2S、I2C、SPI和UART。无线1435包括接口,诸如,在两个设备(例如,蓝牙或NFC)之间的短距离通信标准、能够对为止和/或时间进行三角测量的导航***(例如GPS)、用于模拟或无线电广播(例如,FM无线电)的接收机或其他已知的无线接口或标准。(多个)扬声器1440包括用于生成声音的任何设备,正如,用于生成铃声或音乐的机电设备。多个扬声器可以用于获得立体声或多通道声音。话筒1445常常用于语音输入,诸如,在呼叫期间交谈。
射频集成电路(RFIC)1415用于执行模拟处理,诸如,对无线电信号的处理,例如,放大、混频、滤波和数字变换。如图所描绘,RFIC1415通过接口1412耦合到调制解调器1410。在一个实施例中,接口1412包括支持诸如LTE、3GPP、EGPRS、UMTS、HSPA+和TD-SCDMA之类的通信标准的双向高速接口(例如,DigRF)。作为特定的示例,DigRF利用基于M-PHY物理层的面向帧的协议。DigRF通常被称为是RF友好的、低等待时间的、低功耗的,并且具有优化的引脚数,当前在每通道1.5或3Gbps之间操作,并且利用多个通道(诸如,4个通道)是可配置的。
接口1461(例如,RF控制接口)包括用于支持从简单到复杂设备的灵活的总线。作为特定的示例,接口1461包括灵活的双线串行总线,被设计为用于对RF前端组件的控制。一个总线主(busmaster)可以对多个设备写入和读取,所述设备诸如,用于放大RF信号的功率放大器1450、用于接收传感器输入的传感器、用于取决于网络模式而在RF信号路径之间切换的(多个)开关模块1460以及用于补偿损坏天线条件或增强带宽的天线调谐器1465。在一个实施例中,接口1461具有用于时间关键的事件和低EMI的组触发功能。
功率管理1420用于将功率管理电压提供给移动设备1400中的所有不同组件,诸如,降低电压或增加电压以改善移动设备中组件的效率。在一个实施例中,它也控制并监视电池的电量和剩余能量。可以在电源管理1420与电池之间利用电池接口。作为说明性示例,电池接口包括在移动终端与智能/低成本电池之间的单线通信。
现在参见图15,所示出的是多核处理器的实施例的框图。如图15的实施例中所示,处理器1500包括多个域。具体而言,核域1530包括多个核1530A–1530N,图形域1560包括具有媒体引擎1565的一个或多个图形引擎,以及***代理域1510。在此,如此处所公开的快速配置机制可以实现为配置集成设备/功能,诸如,图形设备1565或其他代理。在此应注意,在一些实现方式中,***代理1510可以充当根控制器或复合体,而核1530包括主机处理设备。
在各种实施例中,***代理域1510处置电源控制事件和电源管理,使得域1530和1560的各个单元(例如,核和/或图形引擎)是独立地可控的,以便根据给定单元中发生的活动(或不活动)而在动态地在适当的功率模式/等级(例如,活动的、加速(turbo)、睡眠、休眠、深度睡眠或其他高级配置功率接口类状态)下操作。域1530和1560中的每一个都可以在不同的电压和/或功率下操作,此外在多个域内的各个单元各自都潜在地在独立的频率和电压下操作。应注意,尽管仅以三个域示出,但是应理解,本发明的范围不限于这方面,在其他实施例中可以存在附加的域。
如图所示,除了各种执行单元和附加的处理元件之外,每一个核1530进一步包括低层级高速缓存。在此,各种核耦合到彼此,并且耦合到末级高速缓存(LLC)1540A-1540N的多个单元或片形成的共享高速缓存存储器;这些LLC常包括存储和高速缓存控制器功能,并且在多个核之间被共享,并且潜在地也在图形引擎中被共享。
如图可见,环形互连1550将核耦合在一起,并且经由多个环站1552A-1552N、在核域1530、图形域1560与***代理电路1510之间提供互连,每一个环站处于在核与LLC片之间的耦合装置处。如15图中可见,互连1550被用于携带各种信息,所述信息包括地址信息、数据信息、确收信息和监听/无效信息。尽管阐释了环形互连,但是可以利用任何已知的管芯上互连或结构。作为说明性的示例,能以类似的方式利用上文所讨论的结构(例如,另一管芯上的互连、英特尔片上***结构(IOSF)、高级微控制器总线架构(AMBA)互连、多维网格结构或其他已知的互连架构)中的一些。
如进一步所描绘,***代理域1510包括显示引擎1512,此显示引擎1512用于提供对相关联的显示器的控制和接口。***代理域1510可以包括其他单元,诸如:集成存储器控制器1520,提供到***存储器(例如,借助于多个DIMM实现的DRAM)的接口;一致性逻辑1522,用于执行存储器一致性操作。可以存在多个接口以允许处理器与其他电路之间的互连。例如,在一个实施例中,提供至少一个直接媒体接口(DMI)1516接口以及一个或多个PCIe接口1514。显示引擎和这些接口通常经由PCIe桥1518而耦合到存储器。更进一步而言,为了提供在其他代理(诸如,附加的处理器或其他电路)之间的通信,可以提供一个或多个其他接口(例如,快速路径互连(QPI)结构)。
接下来转到图16,描绘了根据本发明的片上***(SOC)设计的实施例。作为特定的说明性示例,SOC1600被包括在用户装备(UE)或移动终端中。在一个实施例中,UE是指由将由最终用户用于通信的任何设备,诸如,手持式电话。UE常常连接到基站或节点,所述基站或节点本质上潜在地对应于GSM网络中的移动站(MS)。然而,所描绘的SoC可以用于其他非移动终端,诸如,平板、超薄笔记本、具有宽带适配器的笔记本或任何其他类似的通信设备。在SoC1600内,可如本文中所述利用快速配置机制来配置集成设备,所述集成设备诸如,GPU1615、视频1620、视频1625、闪存控制器1645、SDRAm控制器1640、引导ROM1635、SIM1630、功率控件1655、PC1650或其他逻辑块。在此,块1610中的控制器或其他逻辑可以操作为根复合体。此外,可以利用快速配置机制来配置耦合到所阐释的MIPI、HDMI或其他未阐释的端口的设备。
在此,SOC1600包括2个核——1606和1607。与上文的讨论类似,核1606和1607可以遵循指令集架构,诸如,基于架构酷睿TM的处理器、超威设备公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其消费者,以及它们的经授权方或采用者。核1606和1607耦合到高速缓存控件1608,以便与***1600的其他部分通信,所述高速缓存控件1608与总线接口单元1609和L2高速缓存1610相关联。互连1610包括片上互连,诸如,IOSF、AMBA或上文所讨论的其他互连,它们潜在地实现所描述的本发明的一个或多个方面。
接口1610提供到其他组件的通信信道,诸如,用于与订户身份模块(SIM)卡对接的SIM1630、用于保存引导代码以供由核1606和1607执行以初始化和引导SOC1600的引导ROM1635、用于与外部存储器(例如,DRAM1660)对接的SDRAM控制器1640、用于与非易失性存储器(例如闪存1665)对接的闪存控制器1645、用于与***设备连接的***控件1650(例如,串行***接口)、用于显示和接收输入(例如,启用触摸的输入)的视频编解码器1616和视频接口1625、用于执行图形相关计算的GPU1615,等等。这些接口中的任一者都可以合并本文中描述的本发明的多个方面。
另外,此***阐释用于通信的***设备,诸如,蓝牙模块1670、3G调制解调器1675、GPS1680和WiFi1685。注意,如上文所陈述,UE包括用于通信的无线电装置。作为结果,这些***通信模块并不都是必需的。然而,在UE中,将包括用于外部通信的某种形式的无线电装置。
注意,可以在前述的任何电子设备或***中实现上文所述的装置、方法和***。作为特定的阐释,以下附图提供示例性***来利用本文中描述的本发明。随着下文中更详细地描述这些***,从上文的讨论中公开、描述并回顾了许多不同的互连。并且如显而易见的那样,上文所述的进展可以应用到那些互连、结构或架构中的任一者。
现在参见图17,阐释了根据本发明的实施例的存在于计算机***中的组件的框图。与上文的讨论类似,可以在处理器1710上利用快速配置机制或者可以将此快速配置机制耦合到处理器1710,以便配置图17中所示/所述的块中的任一者。如图所描绘,***1700包括组件的任何组合。这些组件可以实现为适配在计算机***中的IC、所述IC的多个部分、分立电子器件或其他模块、逻辑、硬件、软件、固件或上述各项的组合,或可以实现为以其他方式合并在计算机***的机壳内的组件。还应注意,图17的框图旨在示出计算机***的许多组件的高层级视图。然而,应理解,在其他实现方式中,可以省略所示出的组件中的一些,附加的组件可以存在,并且所示组件的不同布置可以发生。作为结果,可以在下文阐释或描述的互连中的一个或多个的任何部分中实现上文所描述的本发明。
如图17中可见,在一个实施例中,处理器1710包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。在所阐释的实现方式中,处理器1710充当主处理单元以及用于与***1700的各种组件中的许多组件通信的中枢。作为一个示例,处理器1700实现为片上***(SoC)。作为特定的说明性示例,处理器1710包括可从加利福尼亚州圣克拉拉市的英特尔公司商购的基于架构酷睿TM的处理器(诸如,i3、i5、i7)或另一此类处理器。然而,应理解,其他低功率处理器(诸如,可从加利福尼亚州桑尼维尔市的超威设备公司(AMD)商购的处理器、来自加利福尼亚州桑尼维尔市MIPS技术公司的基于的MIPS设计、来自ARM控股有限公司或其消费者或它们的经许可方或采用者的经授权的基于ARM的设计)可以替代地存在于其他实施例(诸如,苹果A5/A6处理器,高通骁龙(Snapdragon)处理器或TIOMAP处理器)。应注意,此类处理器的消费者版本中的许多经过修改或变更;然而,它们可以支持或识别执行由处理器许可方陈述的经定义算法的特定指令集。在此,微架构实现方式可以改变,但是处理器的架构功能通常一致。下文中将进一步讨论关于在一种实现中方式中的处理器1710的架构和操作的某些细节以提供说明性示例。
在一个实施例中,处理器1710与***存储器1715通信。作为说明性示例,在实施例中,可以经由多个存储器设备来实现***存储器1715以提供给定数量的***存储器。作为示例,存储器可以根据基于电子设备联合工程委员会(JEDEC)的低功率双倍数据速率(LPDDR)的设计,诸如,根据JEDECJESD209-2E(2009年4月公布)的当前的LPDDR2标准,或将提供对LPDDR2的扩展以增加带宽的被称为LPDDR3或LPDDR4的下一代LPDDR标准。在各种实现方式中,各个存储器设备可以是不同的封装类型,诸如,单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(QDP)。在一些实施例中,这些设备被直接被焊接到主板上以提供较低剖面的解决方案,而在其他实施例中,设备被配置成一个或多个存储器模块,这些存储器模块又通过给定的连接器耦合到主板。当然,其他存储器实现方式是可能的,诸如,其他类型的存储器模块,例如,不同种类的双列直插存储器模块(DIMM),包括但不限于微DIMM(microDIMM)、迷你DIMM(MiniDIMM)。在特定的说明性实施例中,存储器尺寸确定为在2GB与16GB之间,并且可以被配置成DDR3LM封装,或者经由球栅阵列(BGA)而被焊接到主板上的LPDDR2或LPDDR3存储器。
为了提供对信息(诸如,数据、应用、一个或多个操作***等)的持久存储,大容量存储设备1720也可以耦合到处理器1710。在各种实施例中,为了允许更薄和更轻的***设计且为了改善改善***响应性,此大容量存储设备可以经由SSD来实现。然而,在其他实施例中,可以主要使用硬盘驱动器(HDD)来实现大容量存储设备,并且较少量的SSD存储充当SSD高速缓存以允许在失电事件期间对上下文状态和其他此类信息的非易失性存储,使得快速的上电可应***活动的重新发起而发生。图17中也示出,闪存设备1722可以例如经由串行***接口(SPI)而耦合到处理器1710。此闪存设备可以提供对***软件(包括基本输入/输出软件(BIOS)以及***的其他固件)的非易失性存储。
在各种实施例中,由SSD单独地实现***的大容量存储设备,或者***的大容量存储设备实现为具有SSD高速缓存的盘、光盘或其他驱动器。在一些实施例中,大容量存储设备实现为SSD或具有还原(RST)高速缓存模块的HDD。在各种实现方式中,HDD提供在320GB-4兆兆字节(TB)以及之间以及更高的存储设备,同时借助于具有24GB-256GB的容量的SSD来实现RST高速缓存。注意,此类SSD高速缓存可以配置成单级高速缓存(SLC)或多级高速缓存(MLC)选项,以提供适当的响应性等级。在仅有SSD的选项中,模块可以容置在各种位置处,诸如,在mSATA或NGFF插槽中。作为示例,SSD具有从120GB到1TB范围内的容量。
各种输入/输出(IO)设备可以存在于***1700内。图17的实施例中特别示出的是显示器1724,此显示器1724可以是被配置在机壳的盖部内的高清晰度LCD或LED面板。此显示器面板也可以提供触摸屏1725,例如,在显示器面板上方外部地适配,使得经由用户与此触摸屏的交互,可将用户输入提供给***以启用所期望的操作(例如,与信息的显示、信息的访问等有关的操作)。在一个实施例中,显示器1724可以经由显示互连而耦合到处理器1710,所述显示互连可以实现为高性能图形互连。触摸屏1725可以经由另一互连而耦合到处理器1710,在一个实施例中,所述另一互连可以是I2C互连。如图17中进一步所示,除了触摸屏1725之外,通过触摸的用户输入也可以经由触控板1730发生,触控板1730可以配置在机壳内,并且也可以耦合到与触摸屏1725相同的I2C互连。
显示器面板能以多种模式操作。在第一模式中,显示器面板可以布置为处于透明状态,在此透明状态中,显示器面板对可见光是透明的。在各种实施例中,除了围绕周边的边框之外,在显示器面板的绝大部分可以是显示器。当***以笔记本模式操作且以透明状态操作显示器面板时,用户可以查看呈现在显示器面板上的信息,同时也能够查看在显示器后面的物体。另外,可由定位在显示器后面的用户查看在显示器面板上显示的信息。或者,显示器面板的操作状态可以是可见光不能穿过显示器面板的不透明状态。
在平板模式中,***被折叠闭合,使得当基座面板的底表面搁置在表面上或由用户握持时,显示器面板的背显示表面变成停留在使它向外面向用户的位置。在操作的平板模式中,背显示器表面执行显示器和用户接口的角色,因为此表面可以具有触摸屏功能,并且可以执行常规触摸屏设备(诸如,平板设备)的其他已知功能。为此目的,显示器面板可以包括设置在触摸屏层与前显示表面之间的透明度调整层。在一些实施例中,透明度调整层可以是电致变色层(EC)、LCD层、或EC和LCD层的组合。
在各种实施例中,显示器可以具有不同的尺寸,例如,11.6”或13.3"屏,且可以具有16:9长宽比和至少300尼特(nit)的亮度。显示器也可以是全高清(HD)分辨率(至少1920x1080p)、与嵌入式显示器端口(eDP)兼容的、以及具有面板自刷新的低功率面板。
关于触摸屏能力,***可以为显示器提供多点触摸面板,此多点触摸面板是多点触摸电容性的且具有至少5指能力。在一些实施例中,显示器可以具有10指能力。在一个实施例中,触摸屏容置在耐损伤和耐刮擦的玻璃和涂层(例如,大猩猩玻璃TM(GorillaGlassTM)或大猩猩玻璃2TM(GorillaGlass2TM))内以得到低摩擦,从而减少“手指发热”并避免“手指跳过”。为了提供增强的触摸体验和响应性,在一些实现方式中,触摸面板具有多点触摸功能,诸如,在抓捏变焦期间每静态视图少于2帧(30Hz)、以及对于200毫秒(手指到指针的滞后)的小于每帧(30赫兹)1厘米的单点触摸功能。在一些实现方式中,此显示器支持具有最小屏幕边框(此边框也与平板表面齐平)的边缘至边缘(edge-to-edge)玻璃以及在使用多点触摸时的有限的IO干扰。
对于感知计算和其他目的,各种传感器可以存在于***内,并且能以不同的方式耦合到处理器1710。某些惯性和环境传感器可以例如经由I2C互连、通过传感器中枢1740而耦合到处理器1710。在图17中所示的实施例中,这些传感器可以包括加速度计1741、环境光传感器(ALS)1742、罗盘1743和陀螺仪1744。其他环境传感器可以包括一个或多个热传感器1746,在一些实施例中,热传感器1746经由***管理总线(SM总线)总线而耦合到处理器1710。
使用存在于平台中的各种惯性和环境传感器,可实现许多不同的用例。这些用例允许包括感知计算在内的高级计算操作,并且也允许功率管理/电池寿命、安全和***响应性方面的增强。
例如,对于功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,确定平台的位置处的环境光条件,并且相应地控制显示器的亮度。因而,在某些光照条件下减少在操作显示器时消耗的功率。
对于安全操作,基于从传感器获取的诸如位置信息之类的上下文信息,可以判断是否允许用户访问某些安全文档。例如,可以准许用户在工作场所或家庭位置处访问此类文档。然而,当此平台存在于公共位置时,防止用户访问此类文档。在一个实施例中,此判断是基于例如经由GPS传感器或对地标的照相机识别而确定的位置信息。其他安全操作可以包括提供在彼此的近距离内的设备(例如,本文中所述的便携式平台和用户的台式计算机、移动电话等)的配对。在一些实现方式中,在这些设备如此配对时,经由近场通信实现某些共享。然而,在设备超过某个距离时,可以禁用此类共享。此外,当配对本文中描述的平台和智能电话时,可以将警报配置成当在公共位置处时,在设备移动距彼此大于预先确定的距离时触发。相比之下,当这些已配对的设备处于安全位置(例如,工作场所或家庭位置)时,设备可以超过此预先确定的限制而不触发此类警报。
也可以使用传感器信息来增强响应性。例如,即使当平台处于低功率状态时,仍然可以使传感器能够以相对低的频率运行。因此,确定了例如由惯性传感器、GPS传感器等确定的平台位置的任何改变。如果没有登记此类改变,则诸如Wi-FiTM接入点或类似的无线启用装置(enabler)之类的对先前的无线集线器的更快的连接发生,因为在这种情况下,无序扫描可用的无线网络资源。因而,当从低功率状态唤醒时,实现了更高等级的响应性。
应理解,可以使用经由如本文中所述的平台内的集成传感器而获取的传感器信息来启用许多其他用例,并且上文的示例仅用于阐释的目的。使用如本文中所述的***,感知计算***可以允许增加替代的输入模态(包括手势识别),并且使***能够感测用户操作和意图。
在一些实施例中,一个或多个红外或其他热感测元件或用于感测用户的存在性或移动的任何其他元件可以存在。此类感测元件可以包括一起工作、顺序工作或一起工作且顺序工作的多个不同的元件。例如,感测元件包括提供初始感测(诸如,光或声音投影)且随后通过例如,飞行相机或图案化光相机的超声时间来感测姿势检测的元件。
同样,在一些实施例中,***包括用于生成照明光线的光发生器。在一些实施例中,此光线提供关于虚拟边界(即,空间中的虚构的或虚拟的位置)的可视提示,其中,用户经过或突破虚拟边界或平面的动作被解释成与计算***互动的意图。在一些实施例中,照明光线可以随着计算***相对于用户过渡到不同的状态而改变颜色。照明光线可以用于为用户提供空间中虚拟边界的可视提示,并且可以由***用于确定计算机相对于用户的状态的过渡,包括确定用户希望何时希望与计算机互动。
在一些实施例中,计算机感测用户位置并且操作,以便将用户的手通过虚拟边界的移动解释成指示此用户与计算机交互的意图的手势。在一些实施例中,当用户穿过虚拟线或平面后,由光发生器生成的光可以改变,由此向用户提供此用户已经进入到用于提供手势以便向计算机提供输入的区域的可视反馈。
显示器屏幕可以提供计算***相对于用户的状态的过渡的可视指示。在一些实施例中,在第一状态中提供第一屏幕,在第一状态中,由***诸如通过使用感测元件中的一个或多个来感测用户的存在性。
在一些实现方式中,***诸如通过面部识别来执行以感测用户身份。在此,可在第二状态中提供到第二屏幕的过渡,在第二状态中,计算***已经识别用户身份,其中此第二屏幕向用户提供此用户已经过渡到新状态的可视反馈。到第三屏幕的过渡可在第三状态中发生,在第三状态中,用户已确认对此用户的识别。
在一些实施例中,计算***可以使用过渡机制来为用户确定虚拟边界的位置,其中虚拟边界的位置可以随用户和上下文而改变。计算***可以生成光(诸如,照明光线)以指示用于与***互动的虚拟边界。在一些实施例中,计算***可以处于等待状态,并且能以第一颜色产生光。计算***可以诸如通过使用感测元件感知用户的存在性和移动来检测此用户是否已经通过虚拟边界。
在一些实施例中,如果用户已被检测为已经跨过虚拟边界(诸如,用户的手比虚拟边界线更接近计算***),则计算***可以过渡到用于接收来自此用户的手势输入的状态,其中用于指示过渡的机制可以包括:指示虚拟边界的光改变为第二颜色。
在一些实施例中,计算***随后可以判断是否检测到手势移动。如果检测到手势移动,则计算***可以继续进行手势识别过程,手势识别过程可以包括使用来自手势数据库的数据,此手势数据库可以驻留在计算设备中的存储器中或者可以由计算设备以其他方式访问。
如果识别了用户的手势,则计算***可以响应于此输入来执行功能,并且如果用户在虚拟边界内则返回以接收附加的手势。在一些实施例中,如果没有识别到手势,则计算***可以过渡到错误状态,其中用于指示错误状态的机制可以包括指示虚拟边界的光改变成第三颜色,并且如果用户在虚拟边界内以与计算***交互则***返回以接收附加的手势。
如上所述,在其他实施例中,***可以配置成能以至少两种不同的模式(平板模式和笔记本模式)使用的可转换平板***。此可转换***可以具有两个面板(即,显示面板和基座面板),使得在平板模式中,这两个面板以堆叠的形式设置在彼此的顶部。在平板模式中,显示面板面朝外,并且可以提供常规平板中出现的触摸屏功能。在笔记本模式中,能以打开的翻盖式配置来布置这两个面板。
在各种实施例中,加速度计可以是具有至少50Hz的数据率的3轴加速度计。也可以包括陀螺仪,此陀螺仪可以是3轴陀螺仪。此外,电子罗盘/磁力计可以存在。同样,可以提供一个或多个接近度传感器(例如,对于打开的盖子,用于感测人何时接近(或不接近)***,并且调整功率/性能以延长电池寿命)。对于一些OS,包括加速度计、陀螺仪和罗盘在内的传感器融合能力可以提供增强的特征。另外,经由具有实时时钟(RTC)的传感器中枢,可以实现从传感器唤醒的机制,以便当***的其余部分处于低功率状态时接收传感器输入。
在一些实施例中,可使用用于指示盖何时被关闭/打开的内部盖/显示器打开开关或传感器来将***置于连接待机或自动从连接待机状态唤醒。其他***传感器可以包括ACPI传感器,ACPI传感器用于内部处理器、存储器以及用于允许基于感测到的而对处理器和***操作状态的改变的皮肤温度监视。
在实施例中,OS可以是实现连接待机的8操作***(本文中也称为Win8CS)。Windows8CS或具有类似状态的另一OS可以经由本文中描述的平台提供非常低的超待机功率以允许应用以非常低的功耗保持连接以保持连接到例如基于云的位置。平台可以支持3种功率状态,即,屏幕开启(正常);连接待机(作为默认的“关闭”状态);以及关机(0瓦特的功耗)。因而,在连接待机状态中,虽然屏幕是关闭的,但是平台处于逻辑开启(处于最小的功率等级)。在此类平台中,可以部分地由于用于启用最低供电组件以执行操作的卸载技术而使功率管理对应用透明,并且维持恒定的连接性。
同样在图17中可见,各种***设备可以经由低引脚数(LPC)互连而耦合到处理器1710。在所示实施例中,各种组件可以通过嵌入式控制器1735而耦合。此类组件可以包括键盘1736(例如,经由PS2接口耦合)、风扇1737和热传感器1739。在一些实施例中,触控板1730也可以经由PS2接口而耦合到EC1735。另外,诸如根据2003年10月2日发布的可信计算组(TCG)TPM规范1.2版的可信平台模块(TPM)1738之类的安全处理器也可以经由此LPC互连而耦合到处理器1710。然而,应理解,本发明的范围不限于这方面,并且安全处理和对安全信息的存储可以在另一受保护位置,诸如,安全协处理器中的静态随机存取存储器(SRAM),或作为仅在受到安全飞地(SE)处理器模式保护时可解密的经加密的数据团(blob)。
在特定实现方式中,***端口可以包括高清晰度媒体接口(HDMI)连接器(它可以使不同的形状因子,诸如,全尺寸、小型或微型);一个或多个USB端口,诸如,根据通用串行总线修订版3.0规范(2008年11月)的全尺寸外部端口,并且当***处于连接待机状态且***到AC墙上电源时,至少一个为USB设备(诸如,智能电话)的充电来供电。另外,可以提供一个或多个雷电TM(ThunderboltTM)端口。其他端口可以包括外部可访问的读卡器,诸如,全尺寸SD-XC读卡器和/或用于WWAN的SIM读卡器(例如,8针读卡器)。对于音频,具有立体声和话筒能力(例如,组合功能)的3.5mm插口可以存在,并且支持插口检测(例如,仅支持使用盖中的话筒的头戴耳机或电缆中带有话筒的头戴耳机)。在一些实施例中,此插口可以在立体声头戴耳机与立体声话筒输入之间重新分配任务。此外,可以提供功率插口以供耦合到AC模块。
***1700能以各种方式(包括无线地)来与外部设备通信。在图17中所示的实施例中,存在各种无线模块,其中的每一个都可以对应于被配置为用于特定的无线通信协议的无线电装置。用于在短距离(诸如,近场)内的无线通信的一种方式可以经由近场通信(NFC)单元1745,在一个实施例中,此近场通信(NFC)单元1745可以经由SM总线来与处理器1710通信。注意,经由此NFC单元1745,彼此密切接近的设备可以通信。例如,用户可以通过将两个设备一起适配为关系紧密并启用信息(诸如,标识信息、支付信息)、数据(诸如,图像数据)等的传输来使***1700能够与另一(例如)便携式设备(诸如,用户的智能电话)通信。也可以使用NFC***来执行无线功率传输。
使用本文中描述的NFC单元,用户可以并排磕碰设备,并且通过利用此类设备中的一个或多个的线圈之间的耦合来并排放置设备以获得近场耦合功能(诸如,近场通信和无线功率传输(WPT))。更具体而言,实施例将战略性地成型且放置的铁氧体材料提供给设备以提供更好的线圈耦合。每一个线圈具有与它相关联的电感,可以与***的阻性、容性和其他特征相结合来选择此电感,以便允许***的共振频率。
如图17中进一步所见,附加的无线单元可以包括其他短距离无线引擎,包括WLAN单元1750和蓝牙单元1752。使用WLAN单元1750,可以实现根据给定的电气与电子工程师学会(IEEE)802.11标准的Wi-FiTM通信,而经由蓝牙单元1752,经由蓝牙协议的短距离通信可发生。这些单元可以经由例如USB链路或通用异步收发机(UART)链路来与处理器1710通信。或者,这些单元可以经由例如根据根据PCIExpressTM规范基本规范3.0版(2007年1月17日公布)的***组件互连快速TM(PCIeTM)协议或另一此类协议(诸如,串行数据输入/输出(SDIO)标准)的互连而耦合到处理器1710。当然,这些***设备之间的实际物理连接可以借助于适配到主板的NGFF连接器,所述***设备可配置在一个或多个***卡上。
另外,例如根据蜂窝式或其他无线广域协议的无线广域通信可经由WWAN单元1756而发生,WWAN单元1756又可以耦合到订户身份模块(SIM)1757。另外,为了允许位置信息的接收和使用,GPS模块1755也可存在。注意,在图17中所示的实施例中,WWAN单元1756和集成捕捉设备(诸如,相机模块1754)可以经由给定的USB协议(诸如,USB2.0或3.0链路或UART或I2C协议)来通信。再次,这些单元的实际物理连接可以经由将NGFF***卡适配到在主板上配置的NGFF连接器。
在特定的实施例中,例如借助于支持Windows8CS的WiFiTM802.11ac解决方案(例如,向后与IEEE802.11abgn兼容的***卡),能以模块化方式提供无线功能。此卡可以配置在内部插槽(例如,经由NGFF适配器)中。附加的模块可以提供蓝牙能力(例如,具有向后兼容性的蓝牙4.0)以及无线显示功能。另外,可以经由分开的设备或多功能设备来提供NFC支持,并且作为示例,附加的NFC支持可以定位在机壳的前方右侧部分以便容易接入。进一步的附加模块可以是可以提供对3G/4G/LTE和GPS的支持的WWAN设备。此模块可以在内部(例如,NGFF)插槽中实现。可以为WiFiTM、蓝牙、WWAN、NFC和GPS提供集成天线支持,从而允许从WiFiTM无缝过渡到根据无线前兆位规范(2010年7月)的WWAN无线电无线千兆位(WiGig),且反之亦然。
如上所述,集成相机可以被合并在盖中。作为一个示例,照相机可以是高分辨率相机,例如,具有至少两百万像素(MP)的分辨率,且扩大到6.0MP及更高。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1760来实现音频处理器,此数字信号处理器(DSP)1760可以经由高清音频(HDA)链路而耦合到处理器1710。类似地,DSP1760可以与集成编码器/解码器30(编解码器)和放大器1762通信,编解码器和放大器1762又可以耦合到可以在机壳内实现的输出扬声器1763。类似地,放大器和编解码器1762可以经耦合以接收来自话筒1765的音频输入,在一个实施例中,可以经由双阵列话筒(诸如,数字话筒阵列)实现话筒1765,以提供高品质音频输入,从而允许在***内对各种操作的语音激活的控制。还应注意,可以将音频输出从放大器/编解码器1762提供至头戴耳机插口1764。尽管在图17的实施例中以这些特定的组件示出,但是应理解,本发明的范围不限于这方面。
在特定的实施例中,数字音频编解码器和放大器能够驱动立体声头戴耳机插口、立体声话筒插口、内部话筒阵列和立体声扬声器。在不同的实现方式中,编解码器可以集成到音频DSP中或经由HD音频路径而耦合到***控制器中枢(PCH)。在一些实现方式中,除了集成式立体声扬声器之外,还可以提供一个或多个低音扬声器,并且扬声器解决方案可以支持DTS音频。
在一些实施例中,可以由外部电压调节器(VR)和集成在处理器管芯中的多个内部电压调节器(称为全集成式电压调节器(FIVR))对处理器1710供电。在处理器中使用多个FIVR允许多个各组件分组成分开的功率平面,使得由FIVR调节功率,并由FIVR将功率仅供应至组中的那些组件。在功率管理期间,当将处理器置于某种低功率状态时,可以对一个FIVR的给定功率平面掉电或关机,而另一FIVR的另一功率平面保持活动或完全加电。
在一个实施例中,在某种深度睡眠状态期间可以使用维持功率平面,以便使I/O引脚(诸如,处理器与PCH之间的接口、与外部VR的接口以及与EC1735的接口)上电以获得若干I/O信号。此维持功率平面也对管芯上电压调节器供电,此管芯上电压调节器支持在睡眠状态期间将处理器上下文存储在其中的板载SRAM或其他高速缓存存储器。维持功率平面也用于使监视并处理各种唤醒源信号的处理器的唤醒逻辑上电。
在功率管理期间,尽管当处理器进入某些深度睡眠状态时使其他功率平面掉电或关机,但是维持功率平面保持上电以支持上文提及的组件。然而,档不需要那些组件时,这可能导致不必要的功率消耗或耗散。为此,各实施例可以提供连接待机睡眠状态,以便使用专用功率平面来维持处理器上下文。在一个实施例中,连接待机睡眠状态使用PCH的资源来促进处理器唤醒,PCH本身可以与处理器一起存在于封装中。在一个实施例中,连接待机睡眠状态促进维持PCH中的处理器架构的功能直到处理器唤醒为止,这允许关闭先前在深度睡眠状态期间保持上电的所有不必要的处理器组件,包括关闭所有时钟。在一个实施例中,PCH包含用于在连接待机状态期间控制***的时间戳计数器(TSC)和连接待机逻辑。用于维持功率平面的集成式电压调节器也可以驻留在PCH上。
在实施例中,在连接待机状态期间,集成式电压调节器可以充当专用功率平面,此专用电源层在处理器进入深度睡眠状态和连接待机状态时保持上电,以便支持在其中存储处理器上下文(诸如,关键状态变量)的专用高速缓存存储器。此关键状态可以包括与架构、微架构、调试状态相关联的状态变量和/或与处理器相关联的类似状态变量。
在连接待机状态期间,可以将来自EC1735的唤醒源信号发送至PCH而不是处理器,使得PCH可以代替处理器来管理唤醒处理。另外,在PCH中维护TSC以促进维持处理器架构功能。尽管图17的实施例中以这些特定的组件示出,但应理解,本发明的范围不限于这方面。
处理器中的功率控制可能产生增强的功率节省。例如,可以在多个核之间动态地分配功率,各个核可以改变频率/电压,并且可以提供多个深度低功率状态以允许非常低的功耗。另外,可以提供对核或独立的核部分的动态控制,以便通过当不是正在使用组件时使它们关机来减少功耗。
一些实现方式可以提供特定的功率管理IC(PMIC)来控制平台功率。使用此解决方案,当处于给定待机状态时(诸如,当处于Win8连接待机状态时),在延长的持续时间(例如,16小时)期间***可以看到非常低的(例如,小于5%)的电池降级。在Win8空闲状态中,可以实现超过例如9小时的电池寿命(例如,在150尼特下)。至于视频回放,可以实现长的电池寿命,例如,全HD视频回放可发生达最少6小时。一种实现方式中的平台对于使用SSD的Win8CS的平台可以具有例如35瓦特小时(Whr)的能量容量,并且对于使用具有RST高速缓存配置的HDD的Win8CS具有(例如)40-44Whr的能量容量。
特定的实现方式可以提供对15W标称CPU热设计功率(TDP)的支持,并且具有高达约25WTDP设计点的可配置CPUTDP。平台可以包括由上述热特征而导致的最小通气口(vent)。另外,平台是抱枕友好的(pillow-friendly)(体现在没有热空气吹向用户)。取决于机壳材料,可以实现不同的最高温度点。在一种塑料的机壳的实现方式(至少具有塑料盖或基座部分)中,最大操作温度可以是52度摄氏度(℃)。并且对于金属机壳的实现方式,最大操作温度可以是46℃。
在不同的实现方式中,诸如TPM之类的安全模块可以集成到处理器中,或者可以是分立的设备,诸如,TPM2.0设备。借助于也称为平台信任技术(PTT)的集成式安全模块,可以使BIOS/固件能够暴露用于某些安全特征的某些硬件特征,包括安全指令、安全引导、防盗技术、身份保护技术、可信执行技术(TXT)和可管理性引擎技术,以及安全用户接口(诸如,安全键盘和显示器)。
下文提供众多示例。应注意,这些示例是纯粹示例性的。此外,一些示例是指装置、方法、计算机可读介质、设备等等。然而,可以提供或相互交换示例中的任一者。例如,多个阐释中的一者提供计算机可读介质,此计算机可读介质具有代码,当执行这些代码时,用于执行某些项。那些项可以类似地被看作是方法项或装置中用于执行那些项的逻辑。
在一个示例中,一种用于设备配置的装置包括:接口逻辑,用于耦合到元件;配置存储设备,用于保存对与所述元件相关联的配置上下文的引用;以及配置控制逻辑,耦合到所述配置存储设备和所述第二接口,所述配置控制逻辑用于:响应于功率事件、基于被保存在所述配置存储设备中的对所述配置上下文的所述引用来配置与所述元件相关联的所述配置上下文的至少部分。
在一个示例中,所述接口逻辑包括基于选自由以下各项组成的组的物理层(PHY)规范的物理层逻辑:低功率PHY规范、移动行业***接口(MIPI)规范、***组件互连快速(PCIe)规范和更高性能和功率的PHY规范。
在一个示例中,所述元件包括能够识别多个PCIe规范定义的协议通信的高速***组件互连(PCIe)设备。
在一个示例中,所述配置上下文包括所述元件的多个配置空间参数的状态。
在一个示例中,用于保存对配置上下文的引用的所述配置存储设备包括用于保存对与所述元件相关联的存储器映射配置空间的地址引用的地址寄存器。
在一个示例中,所述装置包括根控制器,并且其中,所述配置存储设备包括用于保存对所述配置上下文的所述引用和所述配置上下文的高速缓存存储设备。
在一个示例中,所述高速缓存存储设备与被包括在处理器中的一个或多个处理器高速缓存一致,所述处理器耦合至所述根控制器。
在一个示例中,所述高速缓存存储不与被包括在处理器中的一个或多个处理器高速缓存一致,所述处理器耦合至所述根控制器。
在一个示例中,所述高速缓存存储设备用于实现直写策略。
在一个示例中,所述配置控制逻辑用于:如果进一步没有来自主机设备的用于配置所述元件的干预,则响应于功率事件来配置所述配置上下文的至少部分。
在一个示例中,所述功率事件包括所述元件将进入活动功率状态的指示。
在一个示例中,所述功率事件包括所述元件将完成链路训练的指示。
在一个示例中,所述接口逻辑、配置存储设备和配置控制逻辑被集成在片上***(SoC)上,所述SoC耦合到能够进行语音通信的无线接口逻辑。
在一个示例中,所述接口逻辑、配置存储设备和配置控制逻辑被集成在被耦合在非移动终端***中的集成电路上。
在一个示例中,一种用于设备配置的装置包括:主机处理设备;存储设备;集成设备,用于将用于所述集成设备的配置数据写入到所述存储设备,并且在将配置数据写入到所述存储设备之后进入低功率状态;以及控制器,耦合到所述主机处理设备、所述集成设备和所述存储设备,所述控制器用于:响应于所述集成设备发起进入活动功率状态、至少部分地基于保存在所述存储设备中的所述配置数据、在无需所述主机处理设备的直接干预的情况下来配置所述集成设备。
在一个示例中,所述低功率状态包括睡眠功率状态。
在一个示例中,所述配置数据包括来自在所述集成设备内的配置寄存器的数据。
在一个示例中,所述配置寄存器用于被映射到存储器中的配置空间,并且其中,对在所述集成设备内的特定的配置寄存器的写入用于对在存储器中的所述配置空间内的与所述特定的配置寄存器相关联的存储器地址寻址。
在一个示例中,一种用于设备配置的装置包括:第一端口,用于耦合到主机处理设备;第二端口,用于向下游耦合到元件,所述元件包括配置寄存器;高速缓存,用于保存用于所述配置寄存器的配置值;以及控制器,所述控制器能够在第一配置模式中,将存储器地址与所述配置寄存器相关联,并且将来自所述主机处理设备的对所述存储器地址的存储器访问转换成对所述配置寄存器的配置请求,并且其中,所述控制器进一步能够在第二配置模式中,在无需来自所述主机处理设备的对所述存储器地址的所述存储器访问的情况下,将用于所述配置寄存器的所述配置值提供给所述配置寄存器。
在一个示例中,所述第一配置模式包括增强型配置访问机制(ECAM)模式,并且其中,所述第二配置模式包括快速配置访问机制(FCAM)模式。
在一个示例中,所述控制器进一步能够在第二配置模式中在无需以第二配置模式来自所述主机处理设备的对所述存储器地址的所述存储器访问的情况下将用于所述配置寄存器的所述配置值提供给所述配置寄存器包括所述控制器用于:将被包括在来自所述主机处理设备的所述存储器访问的所述配置值高速缓存在所述高速缓存中;将所述存储器访问的完成提供给所述主机处理设备;以及将所述配置值从所述高速缓存提供至所述元件中的所述配置寄存器。
在一个示例中,一种用于设备配置的方法包括以下步骤:从设备接收指示快速配置兼容性的特定消息;响应于接收到所述特定消息,用对用于所述设备的配置地址空间的引用来更新配置寄存器;配置所述设备,其中,配置所述设备的步骤包括:发起对所述配置地址空间的第一存储器写入;以及发起对与所述配置地址空间正交的根复合体存储器空间的第二存储器写入。
在一个示例中,所述特定消息包括清洁基址寄存器消息。
在一个示例中,所述特定消息包括设备就绪状态(DRS)消息。
在一个示例中,一种用于快速设备配置的装置包括:配置逻辑,能够支持对包括一个或多个清洁配置寄存器的清洁块区域的写入组合与合并;端口,用于耦合到上游设备;以及协议逻辑,与所述端口相关联的,所述协议逻辑用于生成用于指示快速配置能力的特定消息。
在一个示例中,所述特定消息包括清洁基地址寄存器消息。
在一个示例中,所述配置逻辑进一步用于支持写入旧式块,
在一个示例中,对所述旧式块的所述写入包括与数据交织的读取/写入字节选择,并且按增加的地址顺序被提交。
在一个示例中,一种非暂态计算机可读介质,其具有代码,当执行所述代码时,所述代码使第一设备:接收用于指示第二设备的快速配置能力的特定消息;从第三设备接收写入消息,所述写入消息用于引用与所述第一设备的配置空间相关联的地址;以及发起对所述第一设备的所述配置空间的写入;在没有从所述第一设备接收对所述第一设备的所述配置空间的所述写入的响应的情况下,发起对所述第一设备的所述配置空间的写入。
在一个示例中,所述第一设备在端点设备中,并且所述第二设备是主机处理设备。
在一个示例中,所述第一、第二和第三设备连同用于保存所述代码的存储设备一起被包括在单个集成电路上。
尽管已经参考有限数量的实施例描述了本发明,但本领域技术人员将领会源于其的众多修改和变型。所附权利要求书旨在将此类修改和变型涵盖为落在本发明的真正精神和范围内。
设计可以经历从创建到仿真到制造的各种阶段。表示设计的数据能以多种方式表示此设计。首先,如在仿真中有用的那样,可以使用硬件描述语言或另一功能描述语言来表示硬件。另外,可以在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,在一些阶段,大多数设计达到表示硬件模型中各种设备的物理放置的数据水平。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于生产集成电路的掩模的不同掩模层上各种特征的存在或缺失的数据。在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或诸如盘之类的磁或光存储可以是用于存储经由光波或电波发送的信息的机器可读介质,所述光波或电波经调制或以其他方式生成以传送此类信息。当发送指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重传的程度上,制作了新副本。因而,通信提供商或网络提供商可以至少临时地在有形机器可读介质上存储制品,诸如,被编码成载波的、具体化本发明的实施例的技术的信息。
如本文中所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与用于存储适于由微控制器执行的代码的非暂态介质相关联的硬件(诸如,微控制器)。因此,在一个实施例中,对模块的引用是指专门被配置为识别和/或执行保存在非暂态介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,此代码专门适于由微控制器执行以执行预先确定的操作。并且如可以推断的那样,在又一实施例中,术语模块(在这一示例中)可以是指微控制器和非暂态介质的组合。通常,被阐释为分开的模块边界往往改变且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或它们的组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其他硬件。
在一个实施例中,短语“用于”或“配置成用于”的使用是指布置、集中、制造、许诺销售、进口和/或设计装置、硬件、逻辑或元件,以便执行指定的或确定的任务。在此示例中,如果不是正在操作的装置或其元件经设计、耦合和/或互连以执行所指定的任务,则它仍然“配置成用于”执行所指定的任务。作为纯粹说明性的示例,逻辑门在操作期间可以提供0或1。但“配置成”向时钟提供启用信号的逻辑门不包括可以提供1或0的每一个潜在逻辑门。相反,此逻辑门是以在操作期间1或0输出启用时钟的某种方式耦合的逻辑门。再次注意,术语“配置成用于”的使用不要求操作,相反确聚焦于装置、硬件和/或元件的可能状态,其中在此潜在状态中,装置、硬件和/或元件被设计成在装置、硬件和/或元件操作时执行特定的任务。
此外,在一个实施例中,短语“能够”和/或“操作以”的使用是指允许按照指定的方式使用装置、逻辑、硬件和/或元件的方式设计的某种装置、逻辑、硬件和/或元件。如上文所述,应注意,在一个实施例中,“能够”或“操作以”的使用是指装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件不是正在操作而是按照使用装置、逻辑、硬件和/或元件的方式来设计。
本文中所使用的值包括数量、状态、逻辑状态或二进制逻辑状态的任何已知的表示。通常,逻辑电平、逻辑值(logicvalue)或逻辑的值(logicalvalue)的使用也被称为1和0,它仅仅表示二进制逻辑状态。例如,1是指高逻辑电平,并且0是指低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保存单个逻辑的值或多个逻辑的值。然而,已经使用计算机***中各值的其他表示。例如十进制数字10也可以被表示成二进制值1010和十六进制字母A。因此,值包括能够保存在计算机中的信息的任何表示。
此外,状态可以由值或值的部分表示。作为示例,诸如逻辑1之类的第一值可以表示默认的或初始的状态,而诸如逻辑0之类的第二值可以表示非默认的状态。另外,在一个实施例中,术语复位和设置分别是指默认的和经更新的值或状态。例如,默认值可能包括高逻辑值,即复位,而经更新的值可能包括低逻辑值,即设置。注意,各值的任何组合都可以用于表示任何数量的状态。
可以经由可由处理元件执行的存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的指令或代码实现上面陈述的方法、硬件、软件固件或代码的实施例。非暂态机器可访问/可读介质包括以可由机器(诸如,计算机或电子***)读取的形式提供(即,存储和/或发送)信息的任何机制。例如,非暂态机器可访问介质包括:随机存取存储器(RAM),诸如,静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存器设备;电存储设备;光存储设备;声存储设备;用于保存从暂态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,它们有别于可以从中接收信息的非暂态介质。
用于将逻辑编程为执行本发明的实施例的指令可以被存储在***中的存储器内,所述存储器诸如,DRAM、高速缓存、闪存器或其他存储。此外,可以经由网络或通过其他计算机可读介质来分发指令。因而机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式存储或发送信息的任何机制,但不限于软盘、光盘、紧致盘只读存储器(CD-ROM)以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪存器或用于经由电、光、声或其他形式的传播信号(例如载波、红外信号、数字信号等等)在因特网上传输信息的有形机器可读存储。因此,计算机可读介质包括适用于以可由机器(例如,计算机)读取的形式存储或发送电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着,结合所述实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因而,贯穿本说明书各种场合出现短语“在一个实施例中”或“在实施例中”并不必定全都是指相同的实施例。此外,在一个或多个实施例中,可以按任何合适的方式组合所述特定的特征、结构或特性。
在前述的说明书中,已经参考特定的示例性实施例给出了详细描述。然而,应明显看出,可以对其作出各种修改和改变而不背离所附权利要求中陈述的本发明的更广发的精神和范围。因此,应以说明性意义而非限制性意义来看待本说明书和附图。此外,前面对实施例和其他示例性语言的使用并不必定是指相同的实施例或相同的示例,而是可以指不同的和有区别的实施例,也可能是指相同的实施例。
Claims (30)
1.一种用于设备配置的装置,包括:
接口逻辑,用于耦合到元件;
配置存储设备,用于保存对与所述元件相关联的配置上下文的引用;以及
配置控制逻辑,耦合到所述配置存储设备和所述第二接口,所述配置控制逻辑用于:基于被保存在所述配置存储设备中的对所述配置上下文的所述引用来配置与所述元件相关联的所述配置上下文的至少部分。
2.如权利要求1所述的装置,其特征在于,所述接口逻辑包括基于选自由以下各项组成的组的物理层(PHY)规范的物理层逻辑:低功率PHY规范、移动行业***接口(MIPI)规范、***组件互连快速(PCIe)规范和更高性能和功率的PHY规范。
3.如权利要求1所述的装置,其特征在于,所述元件包括能够识别多个PCIe规范定义的协议通信的***组件互连快速(PCIe)设备。
4.如权利要求1所述的装置,其特征在于,所述配置上下文包括所述元件的多个配置空间参数的状态。
5.如权利要求1所述的装置,其特征在于,用于保存对配置上下文的引用的所述配置存储设备包括用于保存对与所述元件相关联的存储器映射配置空间的地址引用的地址寄存器。
6.如权利要求1所述的装置,其特征在于,所述装置包括根控制器,并且其中,所述配置存储设备包括高速缓存存储设备,所述高速缓存存储设备用于保存对所述配置上下文的所述引用和所述配置上下文。
7.如权利要求6所述的装置,其特征在于,所述高速缓存存储设备与被包括在处理器中的一个或多个处理器高速缓存一致,所述处理器耦合到所述根控制器。
8.如权利要求6所述的装置,其特征在于,所述高速缓存存储不与被包括在处理器中的一个或多个处理器高速缓存一致,所述处理器耦合到所述控制器。
9.如权利要求6所述的装置,其特征在于,所述高速缓存存储设备用于实现直写策略。
10.如权利要求1所述的装置,其特征在于,用于配置所述配置上下文的至少部分的所述配置控制逻辑用于响应于功率事件。
11.如权利要求10所述的装置,其特征在于,所述功率事件包括所述元件将进入活动功率状态的指示。
12.如权利要求10所述的装置,其特征在于,所述功率事件包括所述元件将完成链路训练的指示。
13.如权利要求1所述的装置,其特征在于,所述接口逻辑、配置存储设备和配置控制逻辑被集成在片上***(SoC)上,所述SoC耦合到能够进行语音通信的无线接口逻辑。
14.如权利要求1所述的装置,其特征在于,所述接口逻辑、配置存储设备和配置控制逻辑被集成在被耦合在非移动终端***中的集成电路上。
15.一种用于设备配置的装置,包括:
主机处理设备;
存储设备;
集成设备,用于将用于所述集成设备的配置数据写入到所述存储设备,并且在将配置数据写入到所述存储设备之后进入低功率状态;以及
控制器,耦合到所述主机处理设备、所述集成设备和所述存储设备,所述控制器用于:响应于所述集成设备发起进入到活动功率状态、至少部分地基于保存在所述存储设备中的所述配置数据、在无需所述主机处理设备的直接干预的情况下来配置所述集成设备。
16.如权利要求15所述的装置,其特征在于,所述低功率状态包括睡眠功率状态。
17.如权利要求15所述的装置,其特征在于,所述配置数据包括来自在所述集成设备内的配置寄存器的数据。
18.如权利要求17所述的装置,其特征在于,所述配置寄存器用于被映射到存储器中的配置空间,并且其中,对在所述集成设备内的特定的配置寄存器的写入用于对在存储器中的所述配置空间内的、与所述特定的配置寄存器相关联的存储器地址寻址。
19.一种用于设备配置的装置,包括:
第一端口,用于耦合到主机处理设备;
第二端口,用于向下游耦合到元件,所述元件包括配置寄存器;
高速缓存,用于保存用于所述配置寄存器的配置值;以及
控制器,所述控制器能够在第一配置模式中,将存储器地址与所述配置寄存器相关联,并且将来自所述主机处理设备的对所述存储器地址的存储器访问转换成对所述配置寄存器的配置请求,并且其中,所述控制器进一步能够在第二配置模式中,在无需来自所述主机处理设备的对所述存储器地址的所述存储器访问的情况下,将用于所述配置寄存器的所述配置值提供给所述配置寄存器。
20.如权利要求19所述的装置,其特征在于,所述第一配置模式包括增强型配置访问机制(ECAM)模式,并且其中,所述第二配置模式包括快速配置访问机制(FCAM)模式。
21.如权利要求19所述的装置,其特征在于,所述控制器进一步能够在第二配置模式中在无需来自所述主机处理设备的对所述存储器地址的所述存储器访问的情况下将用于所述配置寄存器的所述配置值提供给所述配置寄存器包括所述控制器用于:
将被包括在来自所述主机处理设备的所述存储器访问中的所述配置值高速缓存在所述高速缓存中;
将所述存储器访问的完成提供给所述处理设备;以及
将所述配置值从所述高速缓存提供至所述元件中的所述配置寄存器。
22.一种用于设备配置的方法,包括以下步骤:
从设备接收指示快速配置兼容性的特定消息;
响应于接收到所述特定消息,用对所述设备的配置地址空间的引用来更新配置寄存器;
配置所述设备,其中,配置所述设备的步骤包括
发起对所述配置地址空间的第一存储器写入;以及
发起对与所述配置地址空间正交的根复合体存储器空间的第二存储器写入。
23.如权利要求22所述的方法,其特征在于,所述特定消息包括清洁基址寄存器消息。
24.如权利要求23所述的方法,其特征在于,所述特定消息包括设备就绪状态(DRS)消息。
25.一种用于快速设备配置的装置,包括:
配置逻辑,所述配置逻辑能够支持对包括一个或多个清洁配置寄存器的清洁块区域的写入组合与合并;
端口,用于耦合到上游设备;以及
协议逻辑,与所述端口相关联,所述协议逻辑用于生成用于指示快速配置能力的特定消息。
26.如权利要求25所述的装置,其特征在于,所述特定消息包括清洁基址寄存器消息。
27.如权利要求25所述的装置,其特征在于,所述配置逻辑进一步用于支持写入旧式块,其中,对所述旧式块的所述写入包括与数据交织的读取/写入字节选择,并且按增加的地址顺序被提交。
28.一种具有代码的非暂态计算机可读介质,当执行所述代码时,所述代码使机器:
接收用于指示第一设备的快速配置能力的特定消息;
从第二设备接收写入消息,所述写入消息用于引用与所述第一设备的配置空间相关联的地址;以及
发起对所述第一设备的所述配置空间的写入;以及
在没有从所述第一设备接收到对于对所述第一设备的所述配置空间的所述写入的响应的情况下,向所述第二设备发起所述写入消息的完成。
29.如权利要求28所述的计算机可读介质,其特征在于,所述第一设备在端点设备中,并且所述第二设备是主机处理设备。
30.如权利要求29所述的计算机可读介质,其特征在于,所述第一设备和第二设备连同所述计算机可读介质一起被包括在单个集成电路上。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/011899 WO2015108522A1 (en) | 2014-01-16 | 2014-01-16 | An apparatus, method, and system for a fast configuration mechanism |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105830053A true CN105830053A (zh) | 2016-08-03 |
Family
ID=53543281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480068881.9A Pending CN105830053A (zh) | 2014-01-16 | 2014-01-16 | 用于快速配置机制的装置、方法和*** |
Country Status (8)
Country | Link |
---|---|
US (1) | US20160274923A1 (zh) |
EP (1) | EP3095041A4 (zh) |
JP (1) | JP6286551B2 (zh) |
KR (1) | KR101995623B1 (zh) |
CN (1) | CN105830053A (zh) |
BR (1) | BR112016012902A2 (zh) |
DE (1) | DE112014006183T5 (zh) |
WO (1) | WO2015108522A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656895A (zh) * | 2017-10-27 | 2018-02-02 | 上海力诺通信科技有限公司 | 一种1u标准高度的正交平台高密度计算架构 |
CN109661649A (zh) * | 2016-10-01 | 2019-04-19 | 英特尔公司 | 用于支持优先***事件的增强的功率管理 |
CN110214309A (zh) * | 2017-01-26 | 2019-09-06 | 威斯康星校友研究基金会 | 可重新配置专用计算机加速器 |
CN110297818A (zh) * | 2019-06-26 | 2019-10-01 | 杭州数梦工场科技有限公司 | 构建数据仓库的方法及装置 |
CN111143255A (zh) * | 2018-11-01 | 2020-05-12 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN111240626A (zh) * | 2020-01-09 | 2020-06-05 | 中瓴智行(成都)科技有限公司 | 一种基于Hypervisor智能座舱操作***双屏互动的方法和*** |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
CN114461548A (zh) * | 2017-09-29 | 2022-05-10 | 英特尔公司 | 加速器结构 |
CN115039055A (zh) * | 2020-01-30 | 2022-09-09 | 苹果公司 | 用于上下文信息共享的告示板 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102371557B1 (ko) * | 2015-03-20 | 2022-03-07 | 삼성전자주식회사 | 호스트 장치, 그것과 복수의 장치들을 갖는 호스트 시스템 및 그것의 인터페이스 링크 레이어 구성 방법 |
GB201516127D0 (en) * | 2015-09-11 | 2015-10-28 | Red Lion 49 Ltd | Mixing digital audio |
US9760513B2 (en) * | 2015-09-22 | 2017-09-12 | Cisco Technology, Inc. | Low latency efficient sharing of resources in multi-server ecosystems |
US9984021B1 (en) * | 2015-09-28 | 2018-05-29 | Amazon Technologies, Inc. | Location-aware self-configuration of a peripheral device |
CN105843767A (zh) * | 2016-03-24 | 2016-08-10 | 山东超越数控电子有限公司 | 一种pci总线千兆网络实现方法 |
JP7163002B2 (ja) * | 2016-05-25 | 2022-10-31 | キヤノン株式会社 | プロセッサに接続されるデバイスから通知される復帰時間に応じてプロセッサの省電力のレベルを決定する情報処理装置及びプロセッサの省電力方法 |
US9946325B2 (en) * | 2016-06-30 | 2018-04-17 | Intel IP Corporation | Interprocessor power state transitions |
US10296338B2 (en) * | 2016-12-09 | 2019-05-21 | Intel Corporation | System, apparatus and method for low overhead control transfer to alternate address space in a processor |
US11232056B2 (en) * | 2016-12-28 | 2022-01-25 | Intel Corporation | System and method for vector communication |
US10795820B2 (en) * | 2017-02-08 | 2020-10-06 | Arm Limited | Read transaction tracker lifetimes in a coherent interconnect system |
US20190095554A1 (en) * | 2017-09-28 | 2019-03-28 | Intel Corporation | Root complex integrated endpoint emulation of a discreet pcie endpoint |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10761983B2 (en) * | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
KR102428450B1 (ko) * | 2017-12-21 | 2022-08-01 | 삼성전자주식회사 | 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템 |
US10545773B2 (en) * | 2018-05-23 | 2020-01-28 | Intel Corporation | System, method, and apparatus for DVSEC for efficient peripheral management |
US11151075B2 (en) | 2018-12-14 | 2021-10-19 | Ati Technologies Ulc | Data communications with enhanced speed mode |
CN111176408B (zh) * | 2019-12-06 | 2021-07-16 | 瑞芯微电子股份有限公司 | 一种SoC的低功耗处理方法和装置 |
KR20210073225A (ko) * | 2019-12-10 | 2021-06-18 | 삼성전자주식회사 | 다수 개의 집적 회로 사이의 인터페이스를 제어하기 위한 전자 장치 및 그의 동작 방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647434B1 (en) * | 1999-12-28 | 2003-11-11 | Dell Usa, L.P. | Multifunction device with register space for individually enabling or disabling a function of plurality of functions in response to function configuration |
US7603516B2 (en) * | 2000-12-15 | 2009-10-13 | Stmicroelectronics Nv | Disk controller providing for the auto-transfer of host-requested-data from a cache memory within a disk memory system |
DE60222782D1 (de) * | 2001-08-24 | 2007-11-15 | Intel Corp | Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur unterstützung von bestehenden unterbrechungen |
US7752361B2 (en) * | 2002-06-28 | 2010-07-06 | Brocade Communications Systems, Inc. | Apparatus and method for data migration in a storage processing device |
US8285907B2 (en) * | 2004-12-10 | 2012-10-09 | Intel Corporation | Packet processing in switched fabric networks |
WO2007146845A2 (en) * | 2006-06-08 | 2007-12-21 | Bitmicro Networks, Inc. | Configurable and scalable hybrid multi-tiered caching storage system |
US7613876B2 (en) * | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
JP2010211351A (ja) * | 2009-03-09 | 2010-09-24 | Ricoh Co Ltd | 半導体集積回路、省電力制御方法、省電力制御プログラム及び記録媒体 |
JP5731108B2 (ja) * | 2009-07-03 | 2015-06-10 | 日本電気株式会社 | 中継手段、中継システム、中継方法およびプログラム |
US8402320B2 (en) * | 2010-05-25 | 2013-03-19 | Oracle International Corporation | Input/output device including a mechanism for error handling in multiple processor and multi-function systems |
WO2012029147A1 (ja) * | 2010-09-01 | 2012-03-08 | 富士通株式会社 | システムおよび障害処理方法 |
JP5597104B2 (ja) * | 2010-11-16 | 2014-10-01 | キヤノン株式会社 | データ転送装置及びその制御方法 |
JP5915086B2 (ja) * | 2011-10-31 | 2016-05-11 | 富士通株式会社 | 切替制御装置、切替制御方法、情報処理装置および切替制御プログラム |
WO2013159315A1 (en) * | 2012-04-26 | 2013-10-31 | Hewlett-Packard Development Company, L.P. | Providing virtual optical disk drive |
US8880747B2 (en) * | 2012-05-15 | 2014-11-04 | Dell Products, L.P. | Endpoint device discovery system |
US8446903B1 (en) * | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
US20140119463A1 (en) * | 2012-10-29 | 2014-05-01 | Texas Instruments Incorporated | Scalable Multifunction Serial Link Interface |
US10129782B2 (en) * | 2015-01-30 | 2018-11-13 | Samsung Electronics Co., Ltd. | Methods and apparatus for CSI measurement configuration and reporting on unlicensed spectrum |
-
2014
- 2014-01-16 WO PCT/US2014/011899 patent/WO2015108522A1/en active Application Filing
- 2014-01-16 CN CN201480068881.9A patent/CN105830053A/zh active Pending
- 2014-01-16 JP JP2016535113A patent/JP6286551B2/ja active Active
- 2014-01-16 US US14/410,468 patent/US20160274923A1/en not_active Abandoned
- 2014-01-16 EP EP14878689.0A patent/EP3095041A4/en not_active Withdrawn
- 2014-01-16 DE DE112014006183.2T patent/DE112014006183T5/de active Pending
- 2014-01-16 KR KR1020167015893A patent/KR101995623B1/ko active IP Right Grant
- 2014-01-16 BR BR112016012902A patent/BR112016012902A2/pt not_active Application Discontinuation
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109661649A (zh) * | 2016-10-01 | 2019-04-19 | 英特尔公司 | 用于支持优先***事件的增强的功率管理 |
US11775036B2 (en) | 2016-10-01 | 2023-10-03 | Intel Corporation | Enhanced power management for support of priority system events |
CN109661649B (zh) * | 2016-10-01 | 2023-08-22 | 英特尔公司 | 用于支持优先***事件的增强的功率管理 |
CN110214309A (zh) * | 2017-01-26 | 2019-09-06 | 威斯康星校友研究基金会 | 可重新配置专用计算机加速器 |
CN110214309B (zh) * | 2017-01-26 | 2023-10-31 | 威斯康星校友研究基金会 | 可重新配置专用计算机加速器 |
CN114461548A (zh) * | 2017-09-29 | 2022-05-10 | 英特尔公司 | 加速器结构 |
CN107656895B (zh) * | 2017-10-27 | 2023-07-28 | 上海力诺通信科技有限公司 | 一种1u标准高度的正交平台高密度计算架构 |
CN107656895A (zh) * | 2017-10-27 | 2018-02-02 | 上海力诺通信科技有限公司 | 一种1u标准高度的正交平台高密度计算架构 |
CN111143255A (zh) * | 2018-11-01 | 2020-05-12 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN110297818A (zh) * | 2019-06-26 | 2019-10-01 | 杭州数梦工场科技有限公司 | 构建数据仓库的方法及装置 |
CN111240626A (zh) * | 2020-01-09 | 2020-06-05 | 中瓴智行(成都)科技有限公司 | 一种基于Hypervisor智能座舱操作***双屏互动的方法和*** |
CN115039055A (zh) * | 2020-01-30 | 2022-09-09 | 苹果公司 | 用于上下文信息共享的告示板 |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160274923A1 (en) | 2016-09-22 |
DE112014006183T5 (de) | 2016-09-22 |
BR112016012902A2 (pt) | 2017-08-08 |
EP3095041A4 (en) | 2018-04-25 |
EP3095041A1 (en) | 2016-11-23 |
JP6286551B2 (ja) | 2018-02-28 |
KR20160085882A (ko) | 2016-07-18 |
KR101995623B1 (ko) | 2019-07-02 |
JP2017503245A (ja) | 2017-01-26 |
WO2015108522A1 (en) | 2015-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105830053A (zh) | 用于快速配置机制的装置、方法和*** | |
TWI524184B (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
CN104063290B (zh) | 处理超时的***、方法和装置 | |
CN104981815B (zh) | 用于用安全属性限制cpu事务的方法、装置和*** | |
CN104050114B (zh) | 同步端口进入低功率状态的***、方法和设备 | |
CN108701109A (zh) | 用于计算机扩展总线的插件机制的方法、装置和*** | |
US11106474B2 (en) | System, method, and apparatus for DVSEC for efficient peripheral management | |
US20230022948A1 (en) | System, method, and apparatus for sris mode selection for pcie | |
CN108027785B (zh) | 用于对链路拆分进行去偏斜的方法、设备和*** | |
CN107924380A (zh) | 使用业务类别分配高速缓存的方法、装置和*** | |
TWI569146B (zh) | 用於高效能互連中之嵌入式串流路徑的方法、設備及系統 | |
CN109074341B (zh) | 减少引脚计数接口 | |
CN110121703B (zh) | 用于向量通信的***和方法 | |
CN116368477A (zh) | 使用具有电路切换的增强型重定时器对计算设备的分解 | |
TWI736559B (zh) | 用以針對實體層裝置的組件傳輸資料之控制器 | |
US11126554B2 (en) | Prefetching write permissions into address translation cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160803 |