CN107408090A - 输入/输出控制器访问通道的动态配置 - Google Patents
输入/输出控制器访问通道的动态配置 Download PDFInfo
- Publication number
- CN107408090A CN107408090A CN201580076992.9A CN201580076992A CN107408090A CN 107408090 A CN107408090 A CN 107408090A CN 201580076992 A CN201580076992 A CN 201580076992A CN 107408090 A CN107408090 A CN 107408090A
- Authority
- CN
- China
- Prior art keywords
- configuration
- checking
- controllers
- passage
- soc
- 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.)
- Granted
Links
Classifications
-
- 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
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
- Information Transfer Systems (AREA)
Abstract
通常而言,该公开提供了针对至I/O控制器的访问通道的动态配置和实行的***、设备、方法、和计算机可读介质。所述***可以包括多个输入/输出(I/O)控制器以及多个通道。所述***还可以包括通道映射模块,其被配置为基于配置而将I/O控制器中的至少一个I/O控制器复用至通道中的至少一个通道。所述***还可以包括被配置为检测改变请求的第一处理器,所述改变请求用于将配置从现有配置修改成新的配置;以及第二处理器,其被配置为:基于与所述***相关联的库存量单位(SKU)来验证新的配置是有效的;并且如果验证是成功的,则将新的配置存储在非易失性存储器中并且重置所述***。
Description
技术领域
本公开涉及输入/输出(I/O)控制器访问,并且更加特别地,涉及至I/O控制器的访问通道的动态配置和实行。
背景技术
处理器芯片集或者片上***被设计为包括越来越多的相对高速的I/O控制器(HSIO),例如,快速***组件互连(PCIe)控制器、通用串行总线(USB)控制器、以太网控制器、和串行高级技术附接(SATA)控制器。SoC还可以支持较低速度或通用的I/O控制器、电力传送针脚、存储器控制器等。这些控制器通过针脚接合至外部世界。因此,消耗SoC上的越来越多的针脚(有限的资源)。
对该问题的一个解决方案已经是将HSIO控制器复用至多组针脚(也被称为HSIO通道)。可以通过对熔丝(fuse)和针脚带(pin strap)的使用来以静态方式完成对至通道的控制器的选择,从而针对每个SoC产品部件号或SKU(库存量单位)创建特定的配置。因为具有不同应用需求和预算的不同的客户可以每个需要不同数量和组合的每种类型的HSIO,因此供出售的产品变型(每个具有其自己的SKU)的数量可能会快速增长并且变得更加难以管理。
附图说明
随着以下的具体实施方式进行并且在参考了附图之后,所要求保护的主题的实施例的特征和优点将变得显而易见,其中,相同的数字描绘相同的部件,并且其中:
图1示出了根据本公开的示例实施例的***级框图;
图2示出了根据本公开的另一示例实施例的更加详细的框图;
图3(a)和3(b)示出了根据本公开的一个示例实施例的操作的流程图;
图4示出了根据本公开的另一示例实施例的操作的流程图;
图5示出了根据本公开的另一示例实施例的平台的***图。
尽管将关于对说明性实施例的参考而进行以下的具体实施方式,但是其许多替代物、修改、和变型将对本领域技术人员而言是显而易见的。
具体实施方式
通常而言,该公开提供了针对至访问通道的I/O控制器的映射的动态配置和实行的***、设备、方法、和计算机可读介质,例如,片上***(SoC)或服务平台控制器集线器(PCH)。本公开的实施例因此可以降低SoC针脚计数并且简化部件供应(例如,SKU编号和库存控制)。I/O控制器通常可以是相对高速的I/O控制器,例如PCIe、USB、以太网和SATA控制器等,它们在本文中统称为HSIO控制器。***可以被配置为允许远程代理:将通道映射/重新映射至HSIO;选择性地启用或禁用任何通道;并且将可用的通道的数量限制到任何期望的最大值。可以统称为HSIO配置或通道配置的这些配置属性可以全都与特定的SoC SKU相关联。远程代理例如可以包括在OEM(原始设备制造商)或ODM(原始设计制造商)提供的处理器上执行的软件,所述处理器可以被配置为在SoC内部或外部并且在配置阶段期间耦合至***,因此允许OEM将SoC配置为满足客户、终端用户、或数据中心的特定应用要求的产品。
尽管在本文中关于某些类型的HSIO控制器(例如,PCIe等)和特定的SoC组件描述了本公开的实施例,但应当理解的是,一般而言,这些原理可以应用于任何类型的SoC和HSIO控制器,并且术语“高速”是相对术语。例如,100百万次传送/秒针对一种类型的SoC可以被认为是高速的,而1十亿次传送/秒针对另一类型的SoC可以被认为是高速的。
图1示出了根据本公开的示例实施例的***级框图100。SoC被示出为包括通道映射模块130,其被配置为将多个(N个)HISO控制器120、122、…、124映射/复用至访问通道140、142、…、144,如将在下文中更加详细地描述的。存在M条通道,其中,M通常小于N。在一些实施例中,SoC 102还可以包括功率管理控制器PMC(104)、管理引擎微控制器(ME)106、以及可以被配置为动态地控制HSIO/通道配置的创新引擎微控制器(IE)和/或基板管理控制器(BMC)108,然而通常而言,任何合适的处理器或控制器可以用于该目的。
通常而言,ME 106可以是SoC专用处理器,其被提供以在初始上电期间配置SoC并且提供包括例如功率和/或热管理功能的额外的能力。在一些实施例中,ME 106可以具有对用于执行这些任务的SoC的大部分或全部内部组件和功能的相对宽泛/无约束的访问。额外地,在一些实施例中,对ME 106的访问或修改(例如,通过固件改变)可以限于SoC制造商或供应商。
通常而言,IE/BMC 108可以被配置为提供类似于ME 106但具有与对SoC的内部组件和功能的访问有关的增加的约束的能力。在一些实施例中,BMC 108可以作为用于提供额外的能力的增值平台组件而由OEM/ODM来供应或控制,而在其他实施例中,IE可以嵌入在SoC中。这些能力可以包括例如,监视到SoC能够通过独立的连接与***管理员通信,和/或提供可以跨不同产品线共享的SoC的能力的通用抽象。
SoC 102还可以包括用于存储默认配置参数的闪速存储器110(或者其他合适的非易失性存储器)以及用于存储覆写配置参数的RAM存储器112(或者其他合适的易失性存储器)。闪速存储器110还可以被配置为在验证之后存储经更新的配置参数,如将在下文中解释的。SoC 102还可以包括一个或多个通用处理核心114,其被配置为执行如由***的用户所要求的软件或应用,并且执行任何其他合适的任务。
与SoC 102相关联的硬件(HW)SKU值可以通过允许由各种处理器、控制器、和/或微控制器进行只读访问的任何合适的方式而被编码在SoC中。SoC 102可以是如在下文中结合图5所描述的电路板或者平台的一部分。
图2示出了根据本公开的通道映射模块130的实施例的更加详细的框图200。通道映射模块130被示出为包括与熔丝控制模块202一起的多个熔丝206、以及与软带(softstrap)控制器模块204一起的多个软带208。熔丝206和软带208可以分别由熔丝控制器模块202和软带控制器模块204基于存储在RAM 112中的信息来控制以提供对连接的动态重新配置(例如,短路对开路)。所述信息可以存储在RAM 112中的与PMC 104相关联或者能够由PMC 104访问的位置中。通道映射模块130被示出为还包括通道复用模块210,其被配置为在HSIO控制器信号线路与输出通道之间提供多个潜在的路径。通道映射模块130被示出为还包括活动通道选择(或启用)模块220,其被配置为例如基于SKU来启用和/或禁用一个或多个所选择的通道。通道映射模块130被示出为还包括最大通道实行模块230,其被配置为例如基于SKU将活动通道的数量限制到最大阈值。最大通道计数在本文中可以被称为“通道宽度”。在一些实施例中,模块202、204、220、230中的任何或全部模块可以被包含在ME106中。
图3(a)和3(b)示出了根据本公开的一个示例实施例的操作300的流程图。基于ME106处理器的机制被示出为HSIO通道的映射的配置和实行的示例。在以下的描述中,***可以经过不同的功率状态或水平,例如从相对较低的功率状态(例如,关闭状态或睡眠状态)到相对较高的功率状态(例如,操作状态)。在一些实施例中,功率状态可以遵守在高级配置和电源接口规范(包括在2014年八月12日发布的修订版5.1)中所定义的状态。更加具体地,功率状态G3可以表示机械断电状态。功率状态S5可以表示软断电状态,例如其中,电力被供应至***但是需要完整的重启来使***恢复。功率状态S0可以表示可以由唤醒事件触发的上电或者一般操作状态,所述唤醒事件包括键盘或鼠标事件、时钟事件、或者任何其他合适类型的输入。
过程可以在G3状态302中开始,一旦施加了电力,***就转换至S5状态310。在该转换期间,闪速存储器控制器在操作304处从使得对ME 106可访问的闪速存储器110中读取默认HSIO通道分配(和/或熔丝控制器模块202读取默认熔丝设置)。默认HSIO通道分配还可以以软带设置来配置。同样,在该转换期间,在操作306处,PMC 104引起ME 106将HSIO通道重新分配(配置改变)(如果有可用的)从闪速存储器100加载至与PMC 104相关联或者能够由PMC 104访问的RAM 112的区域。在操作308处,HSIO控制器(以及任何相关联的模拟逻辑控制器)从RAM 112中读取潜在地修改的软带和熔丝信息,因此使得ME 106能够针对HSIO至通道映射并且针对通道启用选择而应用对静态熔丝和软带设置的覆写。
接着,唤醒事件可以使得***从S5状态310转换至S0状态312,这使得处理器核心114中的一个处理器核心提取重置向量,并且在操作320处开始执行***BIOS(基本I/O***)。尽管在该公开中使用了术语BIOS,但应当理解的是,该术语可以包含任何类型的固件,所述固件包括例如统一可扩展固件或启动加载器的其他变型等。在操作322处,BIOS检查以确定是否已经进行了HSIO配置。可以由远程软件和远程代理(例如,示例560)、IE或BMC处理器108、或者由BIOS自身来生成这样的请求。可以在***的操作和启动期间的任何时间处进行这样的改变请求。BIOS可以将与任何配置改变有关的信息/状态转送至ME 106。在一些实施例中,BIOS与ME之间的通信可以是通过主机环境控制接口(HECI)进行的。应当理解的是,由IE所提供的配置改变通常可以比由BIOS所提供的改变更加安全,这是因为例如IE固件(FW)可以在执行之前由IE硬件签名和验证。这与BIOS形成对比,BIOS可以被重新编程并且因此签名/验证过程的安全性可以由于通用设计而被覆写。然而,在一些实施例中,如果在执行之前由IE硬件签名和验证,则BIOS有可能提供相同水平的安全性。
如果没有检测到改变,则在操作324处,ME 106例如通过固件的执行来验证当前的通道配置(包括通道映射、通道启用选择、和通道宽度)针对该HW SKU是有效的。例如,所请求的HSIO通道的数量可以不超过针对该SKU所允许的通道的最大数量(或通道宽度)。额外地,通道分配应该与HW熔断和其他HW能力相兼容。所述固件可以包括(或者咨询)提供针对给定的SKU的有效配置的列表的数据库。ME可以例如通过HECI或其他合适的通信路径来确认对BIOS的配置的有效(或无效)。
如果配置是有效的,则BIOS可以在操作326处继续平台初始化。如果无效,则BIOS可以在操作332处生成***错误,并且可以继续平台初始化或采取任何其他合适的动作。在一些实施例中,***错误可以通过信号被发送至远程代理560以便可以采取纠正性动作。
如果BIOS检测到HSIO改变请求,则在操作328处,BIOS将改变请求转发至ME 106。ME 106在操作330处验证所请求的配置改变(包括通道映射、通道启用选择、以及通道宽度)针对该HW SKU是有效的。ME可以例如通过HECI或其他合适的通信路径来确认对BIOS的配置的有效(或无效)。如果无效,则BIOS可以在操作332处生成***错误,并且可以继续平台初始化或者采取任何其他合适的操作。然而如果有效,则在操作334处,则ME将HSIO改变写至存储器110,并且在操作336处使得BIOS生成冷重置。重置将***返回至G3状态302。重置可以包括或可以不包括***的电力循环。
在一些实施例中,I/O控制器还可以包括存储器扩展和/或一致性控制器。应当理解的是,本公开的实施例可以使能对IO控制器与在不同的物理链路层和数据链路层协议上操作的其他类型的控制器之间的通道进行复用。
图4示出了根据本公开的另一示例实施例的操作400的流程图。所述操作提供针对***的输入/输出(I/O)控制器通道访问的配置的方法。在操作410处,例如由ME检测改变请求。所述改变请求用于将配置从现有配置修改为新的配置。所述改变请求可以在***(例如,SoC)的操作或启动期间的任何时间处进行。所述配置可以包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。在操作420处,新的配置基于与***相关联的库存量单位(SKU)而被验证为有效的。在操作430处,如果验证是成功的,则将新的配置存储在非易失性存储器中,并且将***重置,其可以包括或可以不包括电力循环。在重置之后,可以由I/O控制器来使用新的配置。
图5示出了根据本公开的一个示例实施例的***图500。平台510可以是***电路板、计算设备、工作站或台式计算机、智能电话、智能平板计算机、个人数字助理(PDA)、移动互联网设备(MID)、可折叠平板计算机、上网本、膝上型计算机、或者任何其他合适的设备。
平台510被示出为包括SoC 102以提供对HSIO访问通道的动态配置和实行,如先前所描述的。平台510还可以包括任何数量的其他处理器520、存储器530、存储***540、以及任何其他合适的计算组件550。在一些实施例中,处理器520可以被实现为任何数量的处理器核心。处理器(或处理器核心)可以是任何类型的处理器,例如微处理器、微控制器、嵌入式处理器、数字信号处理器(DSP)、图形处理器(GPU)、网络处理器、现场可编程门阵列、或者被配置为执行代码的其他设备。处理器可以是多线程核心,这在于他们可以每核心包括多于一个硬件线程上下文(或者“逻辑处理器”)。
存储器530可以耦合至处理器。存储器530可以是如本领域技术人员已知或者以其他方式可用的宽泛的多种存储器(包括存储器层级的各种层和/或存储器高速缓存)中的一种。应当理解的是,处理器和存储器可以被配置为存储、托管、和/或执行一个或多个用户应用或其他软件模块。这些应用可以包括但不限于例如任何类型的计算、通信、数据管理、数据存储、和/或用户接口任务。在一些实施例中,这些应用可以采用平台510的任何其他组件或者与它们交互。平台510也已知为包括存储***540,例如,HDD或SSD。
应当理解的是,在一些实施例中,可以将平台510的各种组件组合在片上***(SoC)架构中。在一些实施例中,所述组件可以是硬件组件、固件组件、软件组件、或者硬件、固件、或软件的任何合适的组合。
OEM(或者供应商)编程/配置工具560被示出为耦合至平台510,并且特别地,耦合至SoC 102。工具560可以是任何类型的处理器或计算平台,其被配置为执行软件以生成HSIO配置改变请求并且将那些请求传送至平台560。可以在SoC的操作或启动期间的任何时间处生成配置改变请求。工具560还可以被配置为生成和/或下载由ME 106所执行的固件,这使能由OEM对配置过程进行进一步控制。在一些实施例中,固件可以是以Quark编程语言编写的。
在本文中所描述的方法的实施例可以在包括具有个体地或组合地存储在其上的指令的一个或多个存储介质的***中实现,所述指令当由一个或多个处理器执行时执行方法。在这里,处理器可以包括例如***CPU(例如,核心处理器)和/或可编程电路。因此,根据在本文中所描述的方法的操作旨在能够跨多个物理设备而分布,例如,在几个不同的物理位置处处理指令。同样,方法操作旨在个体地或者组合地执行,如由本领域技术人员将理解的那样。因此,不需要执行流程图中的每个流程图的所有操作,并且本公开明确地想要支持这样的操作的所有子组合,如由本领域技术人员将理解的那样。
存储介质可以包括任何类型的有形介质,例如,任何类型的盘(包括软盘、光盘、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)、数字通用盘(DVD)和磁光盘)、诸如只读存储器(ROM)之类的半导体设备、诸如动态和静态RAM之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、磁或光卡、或者适合于存储电子指令的任何类型的介质。
如在本文中的任何实施例中所使用的“电路”可以例如单个地或组合地包括硬线电路、可编程电路、状态机电路、和/或存储由可编程电路所执行的指令的固件。应用(或“App”)可以被实施为代码或指令,其可以在诸如主机处理器或其他可编程电路之类的可编程电路上执行。如在本文中的任何实施例中所使用的模块可以被实施为电路。电路可以被实施为集成电路,例如,集成电路芯片。在一些实施例中,模块可以因此在软件和/或固件中实现,并且可以包括一个或多个处理器线程或单个进程的子例程。额外地,在一些实施例中,模块可以在分离的设备上分布或执行。
因此,本公开提供了针对至HSIO控制器的访问通道的动态配置和实行的***、设备、方法、和计算机可读介质。
根据示例1提供了一种***。所述***可以包括:多个输入/输出(I/O)控制器;多个通道;通道映射模块,其用于基于配置而将所述I/O控制器中的至少一个I/O控制器复用至所述通道中的至少一个通道;用于检测改变请求的第一处理器,所述改变请求用于将所述配置从现有配置修改成新的配置;以及第二处理器,其被配置为:基于与所述SoC相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且,如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述***。
示例2可以包括示例1的主题,并且所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
示例3可以包括示例1和2的主题,并且所述I/O控制器在所述重置之后从所述非易失性存储器中加载所述新的配置。
示例4可以包括示例1-3的主题,并且对所述新的配置的所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
示例5可以包括示例1-4的主题,并且所述改变请求检测是在所述SOC的功率状态从较低功率状态转换至较高功率状态期间执行的。
示例6可以包括示例1-5的主题,并且所述改变请求是从所述SoC外部的代理接收的。
示例7可以包括示例1-6的主题,并且所述第一处理器用于执行基本输入输出***(BIOS)。
示例8可以包括示例1-7的主题,并且所述第二处理是管理引擎微控制器。
示例9可以包括示例1-8的主题,并且所述多个输入/输出(I/O)控制器包括快速***组件互连(PCIe)控制器、通用串行总线(USB)控制器、和/或串行高级技术附接(SATA)控制器。
根据示例10,提供了具有存储在其上的指令的至少一个计算机可读存储介质,其中当所述指令由处理器执行时,引起针对***的输入/输出(I/O)控制器通道访问的配置的以下操作。所述操作可以包括:检测改变请求,所述改变请求用于将所述配置从现有配置修改成新的配置;基于与所述***相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述***。
示例11可以包括示例10的主题,并且所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
示例12可以包括示例10和11的主题,还包括在重置所述***之后,将所述新的配置从所述非易失性存储器提供至所述I/O控制器。
示例13可以包括示例10-12的主题,并且所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
示例14可以包括示例10-13的主题,还包括,如果所述验证失败,则通过信号发送错误。
示例15可以包括示例10-14的主题,并且所述改变请求检测是在所述***的功率状态从较低功率状态转换至较高功率状态期间执行的。
示例16可以包括示例10-15的主题,并且所述改变请求检测是由基本输入输出(BIOS)执行的。
示例17可以包括示例10-16的主题,还包括从所述***外部的代理接收所述改变请求。
根据示例18,提供了一种针对***的输入/输出(I/O)控制器通道访问的配置的方法。所述方法包括:检测改变请求,所述改变请求用于将所述配置从现有配置修改成新的配置;基于与所述***相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述***。
示例19可以包括示例18的主题,并且所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
示例20可以包括示例18和19的主题,还包括在重置所述***之后,将所述新的配置从所述非易失性存储器提供至所述I/O控制器。
示例21可以包括示例18-20的主题,并且所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
示例22可以包括示例18-21的主题,还包括,如果所述验证失败,则通过信号发送错误。
示例23可以包括示例18-22的主题,并且所述改变请求检测是在所述***的功率状态从较低功率状态转换至较高功率状态期间执行的。
示例24可以包括示例18-23的主题,并且所述改变请求检测是由基本输入输出(BIOS)执行的。
示例25可以包括示例18-24的主题,还包括从所述***外部的代理接收所述改变请求。
示例26可以包括示例18-25的主题,还包括在所述***的处理器上生成所述改变请求。
根据示例27,提供了针对***的输入/输出(I/O)控制器通道的配置的***。所述***可以包括用于检测改变请求的模块,所述改变请求用于将所述配置从现有配置修改成新的配置;用于基于与所述***相关联的库存量单位(SKU)来验证所述新的配置是有效的模块;并且如果所述验证是成功的,则用于将所述新的配置存储在非易失性存储器中并且重置所述***的模块。
示例29可以包括示例27的主题,并且所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
示例29可以包括示例27和28的主题,还包括用于在重置所述***之后,将所述新的配置从所述非易失性存储器提供至所述I/O控制器的模块。
示例30可以包括示例27-29的主题,并且所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
示例31可以包括示例27-30的主题,还包括,如果所述验证失败,则用于通过信号发送错误的模块。
示例32可以包括示例27-31的主题,并且所述改变请求检测是在所述***的功率状态从较低功率状态转换至较高功率状态期间执行的。
示例33可以包括示例27-32的主题,并且所述改变请求检测是由基本输入输出(BIOS)执行的。
示例34可以包括示例27-33的主题,还包括用于从所述***外部的代理接收所述改变请求的模块。
示例35可以包括示例27-34的主题,还包括用于在所述***的处理器上生成所述改变请求的模块。
已经在本文中所采用的术语和表达被用作描述的术语而不是限制的术语,并且在使用这样的术语和表达时不存在将所示出和描述的特征(或其部分)的任何等同物排除在外的意图,并且应当理解的是,在权利要求的范围内的各种修改是可能的。由此,权利要求旨在覆盖所有这样的等同物。已经在本文中描述了各种特征、方面、和实施例。所述特征、方面、和实施例容易彼此结合并且与变型和修改结合,如由本领域技术人员将理解的那样。因此,本公开应该被理解为包含这样的组合、变型、和修改。
Claims (26)
1.一种片上***(SoC),包括:
多个输入/输出(I/O)控制器;
多个通道;
通道映射模块,其用于基于配置而将所述I/O控制器中的至少一个I/O控制器复用至所述通道中的至少一个通道;
第一处理器,其用于检测改变请求,所述改变请求用于将所述配置从现有配置修改成新的配置;以及
第二处理器,其用于:基于与所述SoC相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且,如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述SoC。
2.根据权利要求1所述的***,其中,所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
3.根据权利要求1所述的***,其中,所述I/O控制器在所述重置之后从所述非易失性存储器中加载所述新的配置。
4.根据权利要求1所述的***,其中,对所述新的配置的所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
5.根据权利要求1-4中的任何一项所述的***,其中,所述改变请求检测是在所述SOC的功率状态从较低功率状态转换至较高功率状态期间执行的。
6.根据权利要求1-4中的任何一项所述的***,其中,所述改变请求是从所述SoC外部的代理接收的。
7.根据权利要求1-4中的任何一项所述的***,其中,所述第一处理器用于执行基本输入输出***(BIOS)。
8.根据权利要求1-4中的任何一项所述的***,其中,所述第二处理是管理引擎微控制器。
9.根据权利要求1-4中的任何一项所述的***,其中,所述多个输入/输出(I/O)控制器包括快速***组件互连(PCIe)控制器、通用串行总线(USB)控制器、和/或串行高级技术附接(SATA)控制器。
10.具有存储在其上的指令的至少一个计算机可读存储介质,所述指令当由处理器执行时,引起针对***的输入/输出(I/O)控制器通道访问的配置的以下操作,所述操作包括:
检测改变请求,所述改变请求用于将所述配置从现有配置修改成新的配置;
基于与所述***相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且
如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述***。
11.根据权利要求10所述的计算机可读存储介质,其中,所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
12.根据权利要求10所述的计算机可读存储介质,还包括在重置所述***之后,将所述新的配置从所述非易失性存储器提供至所述I/O控制器。
13.根据权利要求10所述的计算机可读存储介质,其中,所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
14.根据权利要求10-13中的任何一项所述的计算机可读存储介质,还包括,如果所述验证失败,则通过信号发送错误。
15.根据权利要求10-13中的任何一项所述的计算机可读存储介质,其中,所述改变请求检测是在所述***的功率状态从较低功率状态转换至较高功率状态期间执行的。
16.根据权利要求10-13中的任何一项所述的计算机可读存储介质,其中,所述改变请求检测是由基本输入输出***(BIOS)执行的。
17.根据权利要求10-13中的任何一项所述的计算机可读存储介质,还包括从所述***外部的代理接收所述改变请求。
18.一种针对***的输入/输出(I/O)控制器通道访问的配置的方法,所述方法包括:
检测改变请求,所述改变请求用于将所述配置从现有配置修改成新的配置;
基于与所述***相关联的库存量单位(SKU)来验证所述新的配置是有效的;并且
如果所述验证是成功的,则将所述新的配置存储在非易失性存储器中并且重置所述***。
19.根据权利要求18所述的方法,其中,所述配置包括用于通道映射的I/O控制器、通道启用选择、或者通道宽度。
20.根据权利要求18所述的方法,还包括在重置所述***之后,将所述新的配置从所述非易失性存储器提供至所述I/O控制器。
21.根据权利要求18所述的方法,其中,所述验证还包括验证用于通道映射的I/O控制器、验证通道启用选择、以及验证通道宽度。
22.根据权利要求21所述的方法,还包括,如果所述验证失败,则通过信号发送错误。
23.根据权利要求18-21中的任何一项所述的方法,其中,所述改变请求检测是在所述***的功率状态从较低功率状态转换至较高功率状态期间执行的。
24.根据权利要求18-21中的任何一项所述的方法,其中,所述改变请求检测是由基本输入输出***(BIOS)执行的。
25.根据权利要求18-21中的任何一项所述的方法,还包括从所述***外部的代理接收所述改变请求。
26.根据权利要求18-21中的任何一项所述的方法,还包括在所述***的处理器上生成所述改变请求。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/023043 WO2016159935A1 (en) | 2015-03-27 | 2015-03-27 | Dynamic configuration of input/output controller access lanes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408090A true CN107408090A (zh) | 2017-11-28 |
CN107408090B CN107408090B (zh) | 2021-03-26 |
Family
ID=57007391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580076992.9A Active CN107408090B (zh) | 2015-03-27 | 2015-03-27 | 输入/输出控制器访问通道的动态配置 |
Country Status (4)
Country | Link |
---|---|
US (4) | US20180081847A1 (zh) |
EP (1) | EP3274851B1 (zh) |
CN (1) | CN107408090B (zh) |
WO (1) | WO2016159935A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958837A (zh) * | 2018-06-29 | 2018-12-07 | 深圳市同泰怡信息技术有限公司 | 一种动态配置me固件的方法、***及介质 |
CN112241383A (zh) * | 2019-07-18 | 2021-01-19 | Wago管理有限责任公司 | 模块化***的部件的更新 |
CN113591094A (zh) * | 2021-07-30 | 2021-11-02 | 超越科技股份有限公司 | 一种基于双bios平台的soc验证装置、方法及存储介质 |
CN114253223A (zh) * | 2020-09-25 | 2022-03-29 | 深圳市英维克信息技术有限公司 | 一种控制器端口数据处理方法、装置、设备及存储介质 |
CN114297135A (zh) * | 2021-12-10 | 2022-04-08 | 苏州浪潮智能科技有限公司 | 动态调整高速输入输出通道分配的方法、装置及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10545769B2 (en) * | 2015-09-30 | 2020-01-28 | Dell Products, Lp | System and method for constructive bifurcation of I/O unit ports in an information handling system |
US10762006B2 (en) * | 2017-03-31 | 2020-09-01 | Intel Corporation | Techniques to dynamically enable memory channels on a compute platform |
JP7500994B2 (ja) * | 2020-02-27 | 2024-06-18 | セイコーエプソン株式会社 | 半導体装置 |
JP7400537B2 (ja) | 2020-02-27 | 2023-12-19 | セイコーエプソン株式会社 | 半導体装置 |
US11782726B1 (en) * | 2020-09-29 | 2023-10-10 | Amazon Technologies, Inc. | Serial bootstrap |
US11847226B1 (en) * | 2020-11-25 | 2023-12-19 | American Megatrends International, Llc | Baseboard Management Controller (BMC)-based security processor |
US20240004822A1 (en) * | 2022-06-30 | 2024-01-04 | Advanced Micro Devices, Inc. | Automatic provision of high speed serializer/deserializer lanes by firmware |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050232255A1 (en) * | 2004-01-09 | 2005-10-20 | Walton Derek T | General purpose pin mapping for a general purpose application specific integrated circuit (ASIC) |
CN1977228A (zh) * | 2004-06-30 | 2007-06-06 | 英特尔公司 | 可配置的特征选择机制 |
CN101013378A (zh) * | 2005-09-30 | 2007-08-08 | 英特尔公司 | 动态地迁移通道 |
CN101387993A (zh) * | 2007-09-14 | 2009-03-18 | 凹凸科技(中国)有限公司 | 对计算机***中的设备进行动态资源配置的方法及*** |
CN101454783A (zh) * | 2006-06-27 | 2009-06-10 | 英特尔公司 | 用于芯片上***器件中数据通路安全的***和技术 |
CN101517541A (zh) * | 2006-10-10 | 2009-08-26 | Lsi公司 | 横越冗余存储子***的连接sas raid控制器设备通道的***和方法 |
CN102103569A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 用于多核芯片上***(soc)的接口逻辑 |
CN102667802A (zh) * | 2009-12-31 | 2012-09-12 | 英特尔公司 | 硬件的配备、升级和/或更改 |
US20160378704A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Dynamically configure connection modes on a system based on host device capabilities |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331977B1 (en) * | 1998-08-28 | 2001-12-18 | Sharp Electronics Corporation | System on chip (SOC) four-way switch crossbar system and method |
US7124376B2 (en) * | 2000-05-02 | 2006-10-17 | Palmchip Corporation | Design tool for systems-on-a-chip |
US7802049B2 (en) * | 2002-10-30 | 2010-09-21 | Intel Corporation | Links having flexible lane allocation |
US7246192B1 (en) * | 2003-01-10 | 2007-07-17 | Marvell International Ltd. | Serial/parallel ATA controller and converter |
US7953074B2 (en) * | 2003-01-21 | 2011-05-31 | Emulex Design And Manufacturing Corporation | Apparatus and method for port polarity initialization in a shared I/O device |
US7353995B2 (en) * | 2003-04-10 | 2008-04-08 | Siemens Energy & Automation, Inc. | Method and system for automated setup of configuration parameters for a control processor |
US7353362B2 (en) * | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
US7849297B2 (en) * | 2003-08-28 | 2010-12-07 | Mips Technologies, Inc. | Software emulation of directed exceptions in a multithreading processor |
US20050097499A1 (en) * | 2003-11-03 | 2005-05-05 | Macronix International Co., Ltd. | In-circuit configuration architecture with non-volatile configuration store for embedded configurable logic array |
US7099969B2 (en) * | 2003-11-06 | 2006-08-29 | Dell Products L.P. | Dynamic reconfiguration of PCI Express links |
US7812844B2 (en) * | 2004-01-28 | 2010-10-12 | Lucid Information Technology, Ltd. | PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application |
US7174411B1 (en) * | 2004-12-02 | 2007-02-06 | Pericom Semiconductor Corp. | Dynamic allocation of PCI express lanes using a differential mux to an additional lane to a host |
US9003410B2 (en) * | 2007-01-30 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Abstracting a multithreaded processor core to a single threaded processor core |
US8893013B1 (en) * | 2007-10-11 | 2014-11-18 | Teradici Corporation | Method and apparatus for providing a hybrid computing environment |
US8596541B2 (en) * | 2008-02-22 | 2013-12-03 | Qualcomm Incorporated | Image capture device with integrated barcode scanning |
KR101489301B1 (ko) * | 2008-03-20 | 2015-02-06 | 삼성전자주식회사 | 가상환경 시스템 및 그의 구동방법 |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
US8601254B1 (en) * | 2009-04-30 | 2013-12-03 | Cypress Semiconductor Corp. | Configurable reset pin for input/output port |
US9465771B2 (en) * | 2009-09-24 | 2016-10-11 | Iii Holdings 2, Llc | Server on a chip and node cards comprising one or more of same |
US20110125990A1 (en) * | 2009-11-23 | 2011-05-26 | Hormuzd Khosravi | Computing device and method for wireless remote boot in a networked environment |
US8886849B2 (en) * | 2012-05-11 | 2014-11-11 | Apple Inc. | Multi-mode adapter |
US20120158919A1 (en) * | 2010-12-16 | 2012-06-21 | Google Inc. | Changing device configuration based on machine-readable codes |
US9164679B2 (en) * | 2011-04-06 | 2015-10-20 | Patents1, Llc | System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class |
US8601198B2 (en) * | 2011-06-30 | 2013-12-03 | Intel Corporation | Controllable transaction synchronization for merging peripheral devices |
US8612663B1 (en) * | 2011-07-27 | 2013-12-17 | Netlogic Microsystems, Inc. | Integrated circuit devices, systems and methods having automatic configurable mapping of input and/or output data connections |
US8762605B2 (en) * | 2011-11-30 | 2014-06-24 | Apple Inc. | Adapter for electronic devices |
US8862909B2 (en) * | 2011-12-02 | 2014-10-14 | Advanced Micro Devices, Inc. | System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller |
US8725925B2 (en) * | 2011-12-12 | 2014-05-13 | Universal Scientific Industrial (Shanghai) Co., Ltd. | Interface adapter between PCI express interface and HDMI interface and adapting method thereof |
US8887262B1 (en) * | 2013-03-15 | 2014-11-11 | Amplify Education, Inc. | Configuring a computing device |
US9146599B2 (en) * | 2013-05-20 | 2015-09-29 | Dell Products, Lp | Dynamic system management communication path selection |
US8943234B1 (en) * | 2013-08-05 | 2015-01-27 | Lsi Corporation | Multi-protocol storage controller |
US9716708B2 (en) * | 2013-09-13 | 2017-07-25 | Microsoft Technology Licensing, Llc | Security certificates for system-on-chip security |
-
2015
- 2015-03-27 EP EP15887944.5A patent/EP3274851B1/en active Active
- 2015-03-27 US US15/554,205 patent/US20180081847A1/en not_active Abandoned
- 2015-03-27 CN CN201580076992.9A patent/CN107408090B/zh active Active
- 2015-03-27 WO PCT/US2015/023043 patent/WO2016159935A1/en active Application Filing
-
2019
- 2019-09-10 US US16/566,576 patent/US10956351B2/en active Active
-
2021
- 2021-03-19 US US17/207,135 patent/US11693807B2/en active Active
-
2023
- 2023-05-18 US US18/199,042 patent/US20230367729A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050232255A1 (en) * | 2004-01-09 | 2005-10-20 | Walton Derek T | General purpose pin mapping for a general purpose application specific integrated circuit (ASIC) |
CN1977228A (zh) * | 2004-06-30 | 2007-06-06 | 英特尔公司 | 可配置的特征选择机制 |
CN101013378A (zh) * | 2005-09-30 | 2007-08-08 | 英特尔公司 | 动态地迁移通道 |
CN101454783A (zh) * | 2006-06-27 | 2009-06-10 | 英特尔公司 | 用于芯片上***器件中数据通路安全的***和技术 |
CN101517541A (zh) * | 2006-10-10 | 2009-08-26 | Lsi公司 | 横越冗余存储子***的连接sas raid控制器设备通道的***和方法 |
CN101387993A (zh) * | 2007-09-14 | 2009-03-18 | 凹凸科技(中国)有限公司 | 对计算机***中的设备进行动态资源配置的方法及*** |
CN102103569A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 用于多核芯片上***(soc)的接口逻辑 |
CN102667802A (zh) * | 2009-12-31 | 2012-09-12 | 英特尔公司 | 硬件的配备、升级和/或更改 |
US20160378704A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Dynamically configure connection modes on a system based on host device capabilities |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958837A (zh) * | 2018-06-29 | 2018-12-07 | 深圳市同泰怡信息技术有限公司 | 一种动态配置me固件的方法、***及介质 |
CN108958837B (zh) * | 2018-06-29 | 2021-10-01 | 深圳市同泰怡信息技术有限公司 | 一种动态配置me固件的方法、***及介质 |
CN112241383A (zh) * | 2019-07-18 | 2021-01-19 | Wago管理有限责任公司 | 模块化***的部件的更新 |
CN114253223A (zh) * | 2020-09-25 | 2022-03-29 | 深圳市英维克信息技术有限公司 | 一种控制器端口数据处理方法、装置、设备及存储介质 |
CN113591094A (zh) * | 2021-07-30 | 2021-11-02 | 超越科技股份有限公司 | 一种基于双bios平台的soc验证装置、方法及存储介质 |
CN113591094B (zh) * | 2021-07-30 | 2023-11-14 | 超越科技股份有限公司 | 一种基于双bios平台的soc验证装置、方法及存储介质 |
CN114297135A (zh) * | 2021-12-10 | 2022-04-08 | 苏州浪潮智能科技有限公司 | 动态调整高速输入输出通道分配的方法、装置及存储介质 |
CN114297135B (zh) * | 2021-12-10 | 2023-11-14 | 苏州浪潮智能科技有限公司 | 动态调整高速输入输出通道分配的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11693807B2 (en) | 2023-07-04 |
US10956351B2 (en) | 2021-03-23 |
US20230367729A1 (en) | 2023-11-16 |
EP3274851B1 (en) | 2020-06-17 |
US20200004713A1 (en) | 2020-01-02 |
EP3274851A1 (en) | 2018-01-31 |
CN107408090B (zh) | 2021-03-26 |
WO2016159935A1 (en) | 2016-10-06 |
EP3274851A4 (en) | 2018-12-05 |
US20180081847A1 (en) | 2018-03-22 |
US20210326285A1 (en) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408090A (zh) | 输入/输出控制器访问通道的动态配置 | |
EP3274788B1 (en) | Technologies for improved hybrid sleep power management | |
CN105745617B (zh) | 用于预启动固件更新的选择性功率管理 | |
EP2596423B1 (en) | Providing platform independent memory logic | |
JP6433198B2 (ja) | 安全なブートromパッチのためのシステム及び方法 | |
US9411601B2 (en) | Flexible bootstrap code architecture | |
CN101221509B (zh) | 可信嵌入式***总线仲裁启动方法 | |
US9075751B2 (en) | Secure data protection with improved read-only memory locking during system pre-boot | |
JP2017509085A (ja) | ユーザー選択可能なオペレーティング・システム | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
WO2013013396A1 (zh) | 基本输入/输出***bios配置数据管理方法及*** | |
US10922150B2 (en) | Deep hardware access and policy engine | |
US10996876B2 (en) | Systems and methods for dynamically modifying memory namespace allocation based on memory attributes and application requirements | |
US11068276B2 (en) | Controlled customization of silicon initialization | |
US12026520B2 (en) | Multiple module bootup operation | |
CN116775153A (zh) | 芯片启动方法及芯片 | |
WO2021150219A1 (en) | Customized thermal and power policies in computers |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |