CN116933701A - 对用于耦合到片上系统的组件的校准参数的引导时间确定 - Google Patents
对用于耦合到片上系统的组件的校准参数的引导时间确定 Download PDFInfo
- Publication number
- CN116933701A CN116933701A CN202310987516.9A CN202310987516A CN116933701A CN 116933701 A CN116933701 A CN 116933701A CN 202310987516 A CN202310987516 A CN 202310987516A CN 116933701 A CN116933701 A CN 116933701A
- Authority
- CN
- China
- Prior art keywords
- soc
- calibration parameters
- chip
- component
- external
- 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
- 238000013461 design Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 abstract description 41
- 230000006870 function Effects 0.000 description 14
- 238000012549 training Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0205—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric not using a model or a simulator of the controlled system
- G05B13/021—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric not using a model or a simulator of the controlled system in which a variable is automatically adjusted to optimise the performance
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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
-
- 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/4405—Initialisation of multiprocessor systems
-
- 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/4416—Network booting; Remote initial program loading [RIPL]
-
- 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
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
- Semiconductor Integrated Circuits (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
- Amplifiers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
对用于耦合到片上系统的组件的校准参数的引导时间确定方法。本文描述了各种另外的和替代的方面。在一些方面中,本公开内容提供了一种对组件进行校准的方法。该方法包括:在辅助SoC处从主要SoC接收用于外部组件的先前校准参数,其中,辅助SoC耦合到外部组件并且被配置为对外部组件进行校准。该方法还包括:由辅助SoC确定先前校准参数的有效性。该方法还包括:由辅助SoC基于所确定的先前校准参数的有效性来操作外部组件。
Description
本申请是申请日为2018年3月29日,申请号为201880022712.X(PCT/US2018/025243),发明名称为“对用于耦合到片上系统的组件的校准参数的引导时间确定”的中国专利申请的分案申请。
相关申请的交叉引用
本申请要求享有于2017年4月7日递交的美国临时专利No.62/483,189、以及与2017年8月21日递交的美国专利申请No.15/682,286的权益。临时申请的内容由此通过引用全部并入本文。
技术领域
概括说地,本公开内容的教导涉及片上系统(SoC)集成电路设计,并且在某些方面中,涉及确定用于耦合到SoC的组件的校准参数。
背景技术
计算设备普遍存在。一些计算设备是便携式的,例如移动电话、平板设备和膝上型计算机。随着这些便携式计算设备的功能增加,为了支持这种功能所需要的计算或处理能力以及一般性地数据存储容量也增加。除了这些设备的主要功能,许多设备还包括支持外围功能的元件。例如,蜂窝电话可以包括实现并支持蜂窝电话的主要功能以及静止相机、视频相机、全球定位系统(GPS)导航、网页浏览、发送和接收电子邮件、发送和接收文本消息、按键通话(push-to-talk)能力等外围功能。这些便携式设备中的许多设备包括片上系统(SoC)以实现特定设备上的一个或多个主要和外围功能。
SoC通常包括嵌入在集成电路或芯片并耦合到局部总线的多个中央处理单元(CPU)内核。这些CPU内核还可以被布置成更多的计算集群。SoC通常还可以包括硬件组件和其它处理器。
同较大的计算设备(例如台式和服务器计算机)一样,SoC在上电时依赖于引导序列或引导代码。引导序列是当功率首次施加于SoC时该SoC执行的初始操作集合。引导代码实现对SoC进行初始化的(例如,自举)过程。出于快速存取、低复杂度、空间效率、低成本和安全原因,引导代码通常存储在只读存储器(ROM)中。
引导序列可以利用内部存储器(例如,与SoC在相同芯片上的片上存储器,例如静态随机存取存储器(SRAM))和复杂驱动器来安全地引导SoC,以及外部存储器(例如,与SoC不在相同芯片上的片外存储器,包括动态随机存取存储器(DRAM),例如双倍数据速率(DDR)同步DRAM(SDRAM)、低功率DDR(LPDDR)等等)以便在SoC具有需要另外存储器来引导的更多功能时节省所使用的内部存储器的量的成本。外部存储器可以与SoC(例如,应用处理器、调制解调器芯片等等)堆叠、可以被配置为封装体层叠设计、可以完全在外部(例如,不与SoC在相同的封装体上)等等。
作为引导序列的一部分,为了使用耦合到SoC的外部存储器或其它组件(例如,温度传感器等等),可能需要校准(也被称为“训练”)外部存储器或其它组件。例如,外部存储器可以依赖于SoC来确定校准参数,例如用于在SoC的CPU与外部存储器之间通过总线、片上网络(NoC)进行通信的定时参数等等。外部存储器可以被配置为:在一个或多个电压下以一个或多个频率(例如,输入/输出(I/O)总线时钟频率)来操作。因此,SoC可能需要跨多个频率和电压来校准外部存储器,并针对各个频率/电压组合来确定定时值或其它校准参数值。用于外部存储器的这些校准参数值还可以取决于外部存储器的特定环境,包括工艺、电压和温度(PVT)变化对片上互连件的影响。因此,对外部存储器的校准可能需要针对包括该外部存储器的特定器件来执行。对于某些类型的外部存储器(例如,LPDDR4或者具有高操作频率和低功率的其它类型存储器),对外部存储器的校准可能花费显著的时间(例如,3-5秒的数量级来完成)。因此,用于高效外部组件校准的技术是令人期望的。
发明内容
以下给出了对本公开内容的一个或多个方面的简要概述,以便提供对这些方面的基本理解。该概述不是对本公开内容的所有预期方面的泛泛概括,也不旨在标识本公开内容的全部方面的关键或重要元素或者描述本公开内容的任何或全部方面的范围。其唯一目的在于以简化形式呈现本公开内容的一个或多个方面的一些概念,作为后文所给出的更详细描述的序言
在一些方面中,本公开内容提供了一种对组件进行校准的方法。所述方法包括:在辅助SoC处从主要SoC接收用于外部组件的先前校准参数,其中,所述辅助SoC耦合到所述外部组件并且被配置为对所述外部组件进行校准。所述方法还包括:由所述辅助SoC确定所述先前校准参数的有效性。所述方法还包括:由所述辅助SoC基于所确定的所述先前校准参数的有效性来操作所述外部组件。
在一些方面中,本公开内容提供了一种电路。所述电路包括:主要SoC,所述主要SoC包括:第一总线、耦合到所述第一总线的第一处理器、耦合到所述第一总线的存储控制器、以及耦合到所述第一总线的第一芯片到芯片接口。所述电路还包括:辅助SoC,所述辅助SoC包括:第二总线、耦合到所述第二总线的第二处理器、耦合到所述第二总线的组件接口,其中,所述组件接口被配置为与外部组件对接,以及耦合到所述第二总线的第二芯片到芯片接口,其中,所述第二芯片到芯片接口被配置为:与所述第一芯片到芯片接口对接以提供所述主要SoC与所述辅助SoC之间的通信。所述第二处理器被配置为:从所述第一处理器接收用于所述外部组件的先前校准参数,其中,所述第一处理器被配置为:从耦合到所述存储控制器的存储装置获取所述先前校准参数。所述第二处理器还被配置为:确定所述先前校准参数的有效性。所述第二处理器被配置为:基于所确定的所述先前校准参数的有效性来操作所述外部组件。
在一些方面中,本公开内容提供了一种一种其上存储有用于使得电路执行对组件进行校准的方法的指令的计算机可读介质。所述方法包括:在辅助SoC处从主要SoC接收用于外部组件的先前校准参数,其中,所述辅助SoC耦合到所述外部组件并且被配置为对所述外部组件进行校准。所述方法还包括:由所述辅助SoC确定所述先前校准参数的有效性。所述方法还包括:由所述辅助SoC基于所确定的所述先前校准参数的有效性来操作所述外部组件。
在一些方面中,本公开内容提供了一种电路。所述电路包括:用于在辅助SoC处从主要SoC接收用于外部组件的先前校准参数的单元,其中,所述辅助SoC耦合到所述外部组件并且被配置为对所述外部组件进行校准。所述电路还包括:用于由所述辅助SoC确定所述先前校准参数的有效性的单元。所述电路还包括:用于由所述辅助SoC基于所确定的所述先前校准参数的有效性来操作所述外部组件的单元。
在参阅以下详细描述后将变得更充分地理解本发明的这些和其它方面。在参阅下面结合附图对本发明的特定的、示例性实施例的描述后,本发明的其它方面、特征和实施例对于本领域普通技术人员而言将变得显而易见。虽然可以相对于下面的某些实施例和附图来讨论本发明的特征,但是本发明的所有实施例可以包括本文所讨论的优势特征中的一个或多个特征。换句话说,虽然将一个或多个实施例讨论成具有某些优势特征,但根据本文所讨论的本发明的各个实施例也可以使用这些特征中的一个或多个特征。以类似的方式,虽然下面可以将示例性实施例讨论成设备、系统或者方法实施例,但应当理解的是,可以在各种设备、系统和方法中实现这些示例性实施例。
附图说明
为了能详细地理解本公开内容的上述特征所用的方式,可以参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中说明。然而,要注意,附图仅示出本公开内容的某些典型方面,并且因此不应被认为限定本公开内容的范围,因为该描述可以允许其它等同有效的方面。
图1是根据本公开内容的某些方面,包括多个集成片上系统(SoC)电路的示例性电路的简要示意图。
图2是根据本公开内容的某些方面,示出了用于使用主要SoC对辅助SoC进行引导的示例性操作的流程图。
图3是根据本公开内容的某些方面,示出了用于确定存储器的校准参数的示例性操作的流程图。
图4是根据本公开内容的某些方面,示出了用于确定耦合到SoC的组件的校准参数的示例性操作的流程图。
具体实施方式
以下结合附图所阐述的具体实施方式旨在作为对各种配置的说明,而非旨在表示可以实施本文所描述的概念的仅有配置。出于提供对各种概念的透彻理解的目的,具体实施方式包括具体的细节。然而,对于本领域技术人员来说将显而易见的是,在没有这些具体细节的情况下也可以实施这些概念。在一些实例中,以框图形式示出公知的结构和组件以避免混淆这些概念。
尽管围绕集成电路(例如,SoC)示出了本公开内容的教导,但这些教导适用于其它领域。所公开的教导不应该被解释为限制于SoC设计或所示出的实施例。所示出的实施例仅仅是用于描述和示出本文所公开的创造性教导的例子的媒介。此外,尽管用于确定校准参数的某些技术是针对外部存储器来描述的,但类似的技术可以用于确定其它组件(例如需要在引导时(例如,由SoC)校准的高速器件/接口)的校准参数。
图1是根据本公开内容的某些方面的示例性电路100的简要示意图。例如,电路100可以对应于芯片、板或者包括多个集成SoC的其它电路布局。例如,如所示出的,电路100包括SoC 101和SoC 102。在某些方面中,电路100可以被称为包括多个集成SoC的SoC。尽管电路100被示出为包括两个SoC,但对于本领域普通技术人员应该显而易见的是,电路100可以包括两个以上SoC。具体而言,电路100包括主要SoC 101和一个或多个辅助或伴随SoC(例如,SoC 102)。主要SoC 101可以是控制整个电路100(包括任何辅助SoC(例如SoC 102)的引导和上电(例如,以及引导顺序))的应用处理器。每个辅助SoC可以提供另外的功能,例如调制解调器、WiFi、相机、或其它专用功能。SoC 101、102等等可以由一个或多个芯片到芯片接口互连,例如外围组件高速互连(PCIe)接口、通用串行总线(USB)接口、串行外围接口(SPI)等等。在某些方面中,该一个或多个芯片到芯片接口中的仅一个接口可以用于如本文所讨论的引导。
如所示出的,SoC 101包括CPU子系统(CPUSS)105。CPUSS105包括多个CPU内核111、112、121和122。尽管CPUSS105被示出为具有特定数量的CPU内核,但应该注意,CPUSS105中可以存在另外的或更少的内核。此外,CPU内核111和112是集群110的一部分,并且CPU内核121和122是集群120的一部分。再次,尽管被示出为具有特定数量的CPU集群,但是CPUSS105可以包括另外的或更少的集群。此外,每个集群可以包括相同或不同数量的CPU内核。CPU内核111、112、121和122可以是相同的类型,或者可以是不同的类型(例如,ARM设计、非ARM设计等等)。此外,给定集群(例如,CPU集群110或120)的CPU内核可以是相同类型或者可以是不同类型(例如,集群中的big.LITTLE设计、基于集群的big.LITTLE设计等等)。big.LITTLE设计可以指一种计算架构,该计算架构包括提供电池节省的低功率、较慢处理器内核(例如,LITTLE)连同提供较好处理性能的高功率、较快处理器内核(例如,big)。
此外,CPUSS105可以包括CPU资源,例如一个或多个高速缓存。如所示出的,每个集群110和120分别包括高速缓存115和125。在某些方面中,集群110和120的CPU内核可以分别共享高速缓存115和125以用于存储器存储。应该注意,CPUSS105可以包括除了所示出的CPU资源之外的另外或不同的CPU资源。例如,在一些方面中,一个或多个CPU内核可以具有其自身相关联的高速缓存,一个或多个集群可以具有其自身相关联的高速缓存(例如,由集群的CPU内核共享)和/或CPUSS105可以包括由一个或多个集群和/或CPU内核共享的一个或多个高速缓存。SoC 101还可以包括另外的CPUSS103,以及一个或多个数字信号处理器子系统(DSPSS),例如DSPSS107和DSPSS109。在某些方面中,CPUSS103、DSPSS107和DSPSS109中的每一个可以分别具有其自身的SRAM 152、154和156,这些SRAM充当(例如,代替)用于读取和写入数据的高速缓存。
SoC 101还包括复位控制器130、电熔丝组件140、静态随机存取存储器(SRAM)150、只读存储器(ROM)160、动态RAM(DRAM)控制器170、和存储控制器180、以及引导接口(I/F)控制器183,这些被示出为SoC 101的内部(例如,片上)组件。SoC 101的内部组件通过总线185耦合在一起。此外,DRAM控制器170由总线192耦合到SoC 101外部(例如,片外)的DRAM 190。DRAM 190的物理实现可以与SoC 101堆叠在一起、可以被配置为封装体层叠设计、可以完全在外部(例如,与SoC 101不在相同的封装体上)等等。存储控制器180通过总线197耦合到SoC 101外部(例如,片外)的存储装置195(例如,闪存)。SRAM 150、DRAM 190和存储装置195可以为SoC 101提供另外的存储容量。
在一些方面中,复位控制器130在系统引导期间被配置为:将CPUSS 105的CPU内核从复位释放。在一些方面中,释放的CPU内核随后被配置为:执行来自ROM 160的代码/数据(例如,引导代码)以引导SoC 101(例如,以运行高级操作系统(OS))。ROM 160(例如,引导ROM)是一种包括代码(例如,引导代码)的集成电路,该代码由CPUSS105在初始上电期间或者在看门狗(watchdog)复位条件下(例如,在由电路100上的定时器检测到的电路100的故障未被复位或“超时”之后)执行。在一些方面中,ROM在固件中实现。在一些方面中,CPUSS105通过运行存储在存储装置195中用于引导SoC 101的可执行文件、数据镜像等等来从存储装置195安全地引导。在一些方面中,CPUSS105从传输层而不是存储装置(例如,无闪存传输层)安全地引导,如针对SoC 102进一步讨论的。在某些方面中,CPUSS105通过在执行软件镜像之前检查用于引导的软件镜像的完整性(例如,使用密码签名协议、信任链、认证标签、校验和等等)来安全地引导。
此外,如上面讨论的,作为引导序列的一部分,SoC 101(例如,CPUSS 105的释放的CPU内核)确定用于操作耦合到SoC的组件的校准参数。例如,在某些方面中,作为引导序列的一部分,SoC 101可以确定用于组件(例如DRAM 190)的校准参数。例如,为了确定校准参数,用于校准组件的一组数据或图案(例如,预先确定的数据或图案)可以输入到用于校准该组件的训练算法中。该组数据/图案可以被称为“训练图案”。训练算法可以用于校准与组件相关联的项目集合(例如,存储器与存储器控制器之间的DQ(数据)线)。要被校准的项目集合可以被称为“校准项目”。根据用于校准项目的训练算法确定的实际参数可以被称为“校准参数”。
如所讨论的,确定校准参数可能花费长的时间(例如,在DRAM 190是LPDDR4的情况下),这在同时满足调制解调器或物联网(IoT)目标响应时间的引导时间关键性能指示符(KPI)度量时可能是不可行的。因此,在某些方面中,存储装置195可以存储来自先前校准的用于DRAM 190的校准参数并利用所存储的校准参数来操作DRAM 190。因此,对于在先前存储的用于DRAM 190的校准参数有效的实例,可以减少引导时间。
然而,在某些方面中,在不同的场景中(例如,创建了新的/改进的校准算法,初始校准、校准无效等等)确定新的校准参数可能是有用的。在某些方面中,SoC 101确定新的校准参数来操作DRAM 190。例如,在SoC101的首次引导时(例如,在工厂处),存储装置195可能未存储用于DRAM 190的任何校准参数,或者可能存储用于DRAM 190的虚设校准参数(例如,全部为0的数据)。SoC 101在确定存储装置195中未存储校准参数或者存储了无效(例如,虚设)的校准参数时可以确定用于DRAM 190的新的校准参数。在某些方面中,SoC 101可以将所确定的用于DRAM 190的校准参数存储在存储装置195中。
类似地,在某些方面中,甚至在SoC 101的后续引导处,SoC 101可以确定存储装置195包括用于DRAM 190的无效校准参数,并且因此确定新的校准参数。例如,存储装置195可以从一个SoC交换到另一SoC,并且因此,存储在存储装置195中的任何校准参数对于新SoC的DRAM可能不是有效的。在某些方面中,SoC 101可以基于与校准参数一起存储的依赖性列表(例如,一个或多个数据集、SoC的唯一标识符等等)来确定存储在存储装置195中的校准参数是否无效。
类似于主要SoC 101,辅助SoC 102包括CPUSS106。CPUSS106包括多个CPU内核133和134。尽管CPUSS106被示出为具有特定数量的CPU内核,但应该注意,CPUSS106中可以存在另外的或更少的内核。此外,CPU内核133和134是集群132的一部分。再次,尽管被示出为具有特定数量的CPU集群,但是CPUSS106可以包括另外的或更少的集群。此外,每个集群可以包括相同或不同数量的CPU内核。CPU内核133和134可以是相同的类型,或者可以是不同的类型(例如,ARM设计、非ARM设计等等)。此外,给定集群(例如,CPU集群132)的CPU内核可以是相同类型或者可以是不同类型(例如,集群中的big.LITTLE设计、基于集群的big.LITTLE设计等等)。
此外,CPUSS106可以包括CPU资源,例如一个或多个高速缓存。如所示出的,集群132包括高速缓存135。SoC 101还可以包括另外的CPUSS以及一个或多个DSPSS,例如DSPSS108。在某些方面中,每个另外的CPUSS和DSPSS可以具有其自身的SRAM(例如,DSPSS108的SRAM 155)。
SoC 102还包括复位控制器131、电熔丝组件141、静态随机存取存储器(SRAM)151、只读存储器(ROM)161、动态RAM(DRAM)控制器171以及引导接口(I/F)控制器184,这些被示出为SoC 102的内部(例如,片上)组件。SoC 102的内部组件通过总线175耦合在一起。此外,DRAM控制器171通过总线198耦合到SoC 102外部(例如,片外)的DRAM 191。DRAM 191的物理实现可以与SoC 102堆叠在一起、可以被配置为封装体层叠设计、可以完全在外部(例如,与SoC 102不在相同的封装体上)等等。不同于SoC 101,SoC 102不直接连接到外部存储装置,并且还可以不包括存储控制器。
如所讨论的,可以由主要SoC 101来控制辅助SoC 102的引导。具体而言,SoC 101可以利用引导I/F控制器183并且SoC 102可以利用引导I/F控制器184通过芯片到芯片接口在SoC 101与SoC 102之间通信。例如,SoC 101的引导I/F控制器183可以控制SoC 101的芯片到芯片接口(例如,传输层)(例如PCIe接口188或USB接口186)与诸如由引导I/F控制器184控制的SoC 102的PCIe接口189或USB接口187之类的芯片到芯片接口通信。因此,SoC101和SoC 102可以经由引导I/F控制器183和184在传输层上通信。
具体而言,如所讨论的,SoC 102可以不直接与外部存储装置对接以便节省材料清单(BoM)成本。因此,SoC 102可以被配置成:从传输层而不是存储装置(例如,无闪存传输层)安全地引导。例如,SoC 101可以从存储装置195读取存储在存储装置195中用于引导SoC102的可执行文件、数据镜像等等(也被称为引导数据)。SoC 101还可以对SoC 102上电(例如,控制SoC 102以对SoC 102上电)。SoC 101随后可以将引导数据推送到SoC 102,或者SoC102可以在传输层上(例如,通过PCIe接口188与PCIe接口189之间的链路)从SoC 101拉取(例如,请求)引导数据。
在接收到引导数据时,SoC 102可以确定开始引导序列。因此,SoC 101可以发起对SoC 102的引导。在一些方面中,复位控制器131在系统引导期间被配置为:将CPUSS106的CPU内核从复位释放。在一些方面中,释放的CPU内核随后被配置为:执行来自ROM 161的代码/数据(例如,引导代码)以引导SoC 102(例如,以运行高级操作系统(OS))。ROM 161(例如,引导ROM)是包括代码(例如,引导代码)的集成电路,这些代码由CPUSS106在初始上电期间或者在看门狗复位条件下执行。在一些方面中,ROM在固件中实现。在一些方面中,CPUSS106通过利用从SoC 101接收的引导数据从传输层安全地引导。
此外,如上面讨论的,作为引导序列的一部分,SoC 102(例如,CPUSS 106的释放的CPU内核)确定用于操作耦合到SoC 102的一个或多个组件(例如DRAM 191)的校准参数。在某些方面中,由于SoC 102不具有对具有校准参数的存储装置(如存储装置195)的直接访问,因此SoC 102可以在针对DRAM 191的每次引导时计算新的校准参数(并将参数存储在SRAM 151中以供使用)。在计算校准参数花费长的时间的情况下(例如,在DRAM 191是LPDDR4的情况下),这在同时满足调制解调器或物联网(IoT)目标响应时间的引导时间关键性能指示符(KPI)度量时可能是不可行的。在某些其它方面中,SoC 102可以计算一次用于DRAM 191的校准参数并将参数存储在一次性可编程存储器(例如,诸如在电熔丝组件141中的熔丝)中。然而,在此类方面中,校准参数不可重配置,并且限制对SoC 102或DRAM 191的适配。
因此,本文的某些方面涉及用于校准在传输层上耦合到SoC的组件的系统和方法,如本文进一步讨论的。例如,在某些方面中,辅助SoC可以在引导期间初始地确定用于耦合到辅助SoC的外部组件的校准参数并将该校准参数发送给主要SoC以供存储。在后续引导时,辅助SoC可以从主要SoC接收先前确定的校准参数。
具体而言,在某些方面中,主要SoC被配置为:在主要SoC可访问的存储装置中存储用于连接到辅助SoC的组件的校准参数。主要SoC还被配置为:将校准参数推送到辅助SoC,辅助SoC可以利用该校准参数来操作组件,而不必自己花费时间来确定校准参数。因此,例如在接收到的校准参数有效的情况下,可以减少辅助SoC的引导时间。
辅助SoC还可以被配置为:确定从主要SoC接收的校准参数是否有效,并且如果校准参数并非有效,则确定新的校准参数并利用新的校准参数来操作组件。辅助SoC还可以被配置为:将新的校准参数推送到主要SoC以便存储在主要SoC可访问的存储装置中以用于后续引导,以避免在后续引导期间必须重新确定新的校准参数。在某些方面中,通过使辅助SoC确定从主要SoC接收的校准参数的有效性,辅助SoC可以有利地检测所存储的校准参数的存储器利用率、强制重新校准、或者在工厂未提供场景下处理重新校准、或者为了重新提供(例如,由于空中(OTA)更新)。
在某些方面中,SoC(例如,SoC 101或SoC 102)被配置为:基于与校准参数相关联的依赖性列表来确定用于组件的校准参数是否有效。尽管确定用于组件的校准参数是否有效的某些方面是针对SoC 102和DRAM 191来讨论的,但应该注意,可以由SoC 101针对DRAM190或耦合到SoC101或SoC 102的其它组件来利用类似的技术。
在某些方面中,当SoC 102执行对DRAM 191的校准并确定校准参数时,SoC 102还可以计算关于DRAM 191的校准的数据(例如,依赖性列表)的校验和(例如,循环冗余校验(CRC))。例如,SoC 102可以利用可用于SoC 102的一个或多个数据集(例如,在存储装置195中并且从SoC 101接收),例如频率矩阵、电压配置、训练算法、DDR设备参数等等,来校准DRAM 191。SoC 102还可以具有与SoC 102相关联的唯一(或者部分地唯一)标识符。SoC 102可以基于以下各项中的至少一项来计算所确定的校准参数的校验和:一个或多个数据集、与SoC 102相关联的唯一标识符、以及所确定的校准参数。SoC 102随后可以将校验和与所确定的校准参数存储在一起(例如,存储装置195中)。
因此,当SoC 102获得先前确定的校准参数(例如,从存储装置195)时,SoC 102也接收与所确定的校准参数一起存储的先前计算的校验和。SoC102还基于以下各项中的至少一项来计算新的校验和:可用于SoC 102以便确定校准参数的一个或多个数据集、SoC 102的唯一标识符、以及所获取的先前确定的校准参数。SoC 102随后确定新的校验和是否匹配先前计算的校验和。如果新的校验和匹配先前计算的校验和,则SoC 102利用先前确定的校准参数。如果新的校验和不匹配先前计算的校验和,则SoC 102确定校准参数无效并确定新的校准参数。因此,如果校准参数被篡改、一个或多个数据集改变、或者校准参数用于具有不同标识符的不同SoC,则不使用这些校准参数。
在某些方面中,在利用SoC 102的唯一标识符来计算校验和的情况下,如果针对不同的SoC(例如,不同SoC的存储装置195的重用)计算校准参数,则SoC 102将确定校准参数无效。因此,可以避免将校准参数偶然用于不同的SoC。在某些方面中,在利用SoC 102的训练算法来计算校验和的情况下,如果用于DRAM 191的训练算法被更新(例如,经由OTA更新),则SoC 102将确定校准参数无效。因此,可以利用改进的训练算法来对校准参数进行更新。在某些方面中,在利用所确定的校准参数来计算校验和的情况下,在校准参数在存储装置195中改变的情况下(例如,故意地或者由于错误),SoC 102将确定校准参数无效。因此,可以防止使用有错误的校准参数。因此,用于确定校准参数的有效性的校验和过程可以提供若干优点。
然而,在某些方面中,校验和计算可能未充分地保护校准参数免受篡改。例如,由SoC 102使用的计算校验和的方法可以可用于除了SoC 102以外的器件/SoC。因此,另一器件(例如SoC 101)可以改变/篡改所存储的校准参数或数据集,并利用所改变的信息来计算新的校验和并存储该新的校验和。随后,当SoC 102接收经改变的数据和新的校验和时,在校准参数实际上已被篡改的情况下,SoC 102可以确定校准参数仍然有效。
因此,作为计算用于校准参数的校验和的补充或替代,某些方面涉及计算用于校准参数的认证标签。具体而言,SoC 102可以首先利用SoC 102的标识符来生成密钥,而不是使用该标识符(其可以是公开可获得的)来计算认证标签。例如,SoC 102可以可选地包括密钥生成器193,该密钥生成器193可以是由CPUSS106或者SoC 102另一物理组件实现的逻辑单元,其被配置为实现密钥生成算法以基于标识符来生成密钥。密钥生成算法可以由SoC102自身实现并且不可用于其它器件或SoC。因此,即使其它器件具有对SoC 102的标识符的访问,它们也可能不能够生成与SoC 102相同的密钥。此外,SoC 102可以可选地包括认证逻辑组件194,该认证逻辑组件194可以是由CPUSS106或SoC 102的另一物理组件实现的逻辑单元,其被配置为实现不可用于其它器件或SoC的认证逻辑(例如,认证算法、密码消息认证代码(MAC)、或者加密或密码算法等等),以生成经加密的认证标签。SoC 102可以利用认证逻辑组件194至少部分地基于以下各项的至少一项来计算认证标签:可用于SoC 102以便确定校准参数的一个或多个数据集、由SoC 102生成的密钥、由SoC 102计算的校验和以及校准参数。在某些方面中,所有该信息用于计算认证标签。在一些方面中,在计算认证标签时不计算并且不使用校验和。在某些方面中,认证标签随后与所计算的校准参数存储在一起。
图2是根据本公开内容的某些方面,示出了用于使用主要SoC对辅助SoC进行引导的示例性操作200的流程图。例如,可以由电路100或者另一适当电路来执行图2的操作。
在步骤202处,电路的主要SoC开始引导序列。例如,SoC 101发起引导序列,并例如从存储装置195执行引导,如本文所讨论的。此外,在步骤204处,主要SoC在传输层上发起对辅助SoC的引导。例如,SoC 101在传输层上发起SoC 102的引导序列并使SoC 102脱离复位。SoC 102还可以从ROM 161安全地引导并等待在传输层上从SoC 101接收(例如,下载)具有DDR驱动器的引导程序。
在步骤206处,主要SoC将辅助SoC的引导程序传输到辅助SoC。例如,SoC 101通过在传输层上传输存储在存储装置195中的SoC 102的可执行文件、数据镜像等等(也被称为引导数据),在传输层上传输SoC 102的引导程序。在某些方面中,主要SoC还可以将用于校准辅助SoC的存储器的训练图案连同引导程序传输到辅助SoC。在步骤210处,主要SoC向辅助SoC发送校准参数。例如,SoC 101从存储装置195获取用于DRAM 191的校准参数和对应的校验和和/或认证标签,并在传输层上将该校准参数和校验和和/或认证标签传输到SoC102。SoC 101可以将校准参数和校验和和/或认证标签推送到SoC 102,或者SoC 102可以从SoC 101拉取校准参数和校验和和/或认证标签。SoC 102可以将校准参数和校验和和/或认证标签存储在SRAM 151中。在某些方面中,诸如电路100的首次引导,存储装置195中可能未存储校准参数和校验和和/或认证标签,并且SoC 101可以生成虚设校准参数和校验和和/或认证标签(例如,全部为0的数据)并发送给SoC 102。在某些方面中,可以初始地在存储装置195中提供虚设数据。在某些方面中,例如在步骤206处未执行的情况下,主要SoC还可以将用于校准辅助SoC的存储器的训练图案连同校准参数和校验和和/或认证标签传输到辅助SoC。
在步骤212处,辅助SoC确定接收到的校准参数是否有效。例如,SoC102计算用于接收到的校准参数的校验和和/或认证标签,并确定所计算的校验和和/或认证标签是否匹配接收到的校验和和/或认证标签(例如,校准参数有效)或者校验和和/或认证标签是否不匹配(例如,校准参数无效)。如果在步骤212处,辅助SoC确定校准参数有效,则在步骤214处,辅助SoC使用该校准参数来操作外部存储器并继续引导过程。例如,SoC 102使用用于DRAM191的校准参数并指示SoC 101发送所有后续引导数据。
如果在步骤212处,辅助SoC确定校准参数无效,则在步骤216处,辅助SoC确定用于外部存储器的新的校准参数并继续引导过程。例如,SoC102通过执行针对DRAM 191的校准过程,使用训练图案来计算新的校准参数。在某些方面中,例如在步骤206或210处未执行的情况下,辅助SoC还可以请求并且主要SoC可以将用于校准辅助SoC的存储器的训练图案传输到辅助存储器SoC以用于确定新的校准参数。SoC 102还可以计算用于新的校准参数的校验和和/或认证标签。在步骤218处,辅助SoC将所确定的校准参数发送给主要SoC。例如,SoC102在传输层上将校准参数和校验和和/或认证标签发送给SoC 101。在步骤220处,主要SoC存储接收到的校准参数。例如,SoC 101将校准参数和校验和和/或认证标签存储在存储装置195中。继续步骤214,主要SoC可以继续引导辅助SoC,或者可以复位并重启对辅助SoC的引导。例如,SoC 101可以在214处继续对SoC 102的引导,或者返回到步骤204。
图3是根据本公开内容的某些方面,示出了用于确定存储器的校准参数的示例性操作300的流程图。例如,可以由电路100或者另一适当电路来执行图3的操作。在某些方面中,操作300中的某些部分可以对应于操作200的步骤210-220。
在步骤302处,主要SoC向辅助SoC发送用于耦合到辅助SoC的外部存储器的校准数据。例如,SoC 101(例如,在传输层上)向SoC 102发送用于DRAM 191的校准数据(例如,存储在存储装置195中)。在步骤304处,辅助SoC确定校准数据是否有效。例如,SoC 102计算针对校准数据的校验和和/或认证标签,并将该校验和和/或认证标签与由SoC 101与校准数据一起发送的校验和和/或认证标签进行比较。如果在步骤304处,辅助SoC确定校准数据有效,则在步骤306处,辅助SoC使用该校准数据来操作外部存储器。例如,SoC 102使用用于DRAM 191的校准数据。如果在步骤304处,辅助SoC确定校准数据无效,则在步骤308处,辅助SoC确定用于外部存储器的新的校准数据。例如,SoC 102通过执行针对DRAM 191的校准过程来计算新的校准数据。SoC 102还可以计算用于新的校准数据的校验和和/或认证标签。在步骤310处,辅助SoC将所确定的校准数据发送给主要SoC。例如,SoC 102在传输层上将校准数据和校验和和/或认证标签发送给SoC 101。在步骤312处,主要SoC存储接收到的校准数据。例如,SoC 101将校准数据和校验和和/或认证标签存储在存储装置195中。
图4是根据本公开内容的某些方面,示出了用于确定耦合到SoC的组件的校准参数的示例性操作400的流程图。例如,可以由电路100或者另一适当电路来执行图4的操作。
在步骤405处,辅助SoC从主要SoC接收用于外部组件的先前校准参数,其中该辅助SoC耦合到该外部组件并被配置为校准该外部组件。在步骤410处,辅助SoC确定先前校准参数的有效性。在步骤415处,辅助SoC基于所确定的先前校准参数的有效性来操作外部组件。
在一些配置中,术语“传送”、“进行通信”和/或“通信”可以指“接收”、“进行接收”、“接收到”和/或其它相关或适当的方面而不必偏离本公开内容的范围。在一些配置中,术语“传送”、“进行通信”、“通信”可以指“发送”、“进行发送”、“传输”和/或其它相关或适当的方面而不必偏离本公开内容的范围。
在本公开内容内,使用词语“示例性”表示“用作示例、实例或说明”。本文中描述为“示例性”的任何实现方式或方面不一定解释为比本公开内容的其它方面优选或有利。类似地,术语“方面”不要求本公开内容的所有方面包括所讨论的特征、优势或操作模式。本文中使用术语“耦合”来指代两个对象之间的直接或间接耦合。例如,如果对象A物理地接触对象B,并且对象B接触对象C,则仍可认为对象A和C是彼此耦合的—即使它们彼此并没有物理地接触。例如,第一对象可以耦合到第二对象,即使第一对象从未直接在物理上与第二对象接触。术语“电路”和“电路系统”广泛地使用,并且是在包括电子设备和导体二者的硬件实现方式,这些硬件实现方式在连接和配置时实现本公开内容中所描述的功能的执行,而不限于电子电路的类型。
本文示出的各组件、步骤、特征和/或功能中的一个或多个可以重新排列和/或组合成单个组件、步骤、特征或功能或者体现在若干个组件、步骤或功能中。在不偏离本文公开的新颖性特征的情况下还可以添加另外的要素、组件、步骤和/或功能。本文示出的装置、设备和/或组件可以被配置为执行本文所描述的方法、特征或步骤中的一个或多个。本文所描述的新颖性算法还可以有效地实现在软件中和/或嵌入在硬件中。
将理解,所公开的方法中各步骤的特定顺序或层次是对示例性过程的说明。要理解的是,基于设计偏好,可以对这些方法中的各步骤的特定顺序或层次重新排列。所附方法权利要求以示例顺序给出了各个步骤的要素,且并不旨在受限于所给出的特定顺序或层次,除非其中特别记载。
提供以上的描述以使得本领域任何技术人员能够实施本文所描述的各个方面。对于本领域技术人员来说,对这些方面的各种修改将是显而易见的,并且可以将本文定义的总体原理应用于其它方面。因此,权利要求并非旨在受限于本文所示出的各方面,而是要被给予与权利要求字面语言相一致的完整范围,其中,以单数形式引用要素并非旨在表示“一个且仅有一个”(除非特别地如此声明),而是表示“一个或更多”。除非另外特别地声明,否则术语“一些”是指一个或更多。提及项目列表“中的至少一个”的短语是指这些项目的任意组合,包括单一成员。举例而言,“a、b或c中的至少一个”旨在覆盖:a、b、c、a-b、a-c、b-c和a-b-c。贯穿本公开内容所描述的各个方面的要素的对于本领域普通技术人员来说是公知的或即将成为公知的所有结构性和功能性等效项,其通过引用被明确地并入本文中并且旨在被包含在权利要求中。此外,本文中没有任何公开内容旨在捐献给公众,不管这样的公开内容是否明确记载在权利要求书中。不应依据35U.S.C.§112(f)中的规定来解释任何权利要求要素,除非该要素是使用“用于……的单元”的短语来明确地记载的,或者在方法权利要求的情形下,该要素是使用“用于……的步骤”的短语来记载的。
这些装置和方法在具体实施方式中进行描述,并在附图中通过各种框、模块、组件、电路、步骤、过程、算法等等(其统称为“要素”)来予以示出。可以使用硬件、软件、或者其组合来实现这些要素。至于这些要素是实现为硬件还是软件,这取决于特定的应用和施加在整体系统上的设计约束。
举例而言,要素或者要素的任何部分或者要素的任意组合可以用包括一个或多个处理器的“处理系统”来实现。处理器的示例包括被配置为执行贯穿本公开内容所描述的各种功能的微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路和其它适当的硬件。处理系统中的一个或多个处理器可以执行软件。无论是称为软件、固件、中间件、微代码、硬件描述语言还是其它术语,软件应当被广义地解释为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、固件、例程、子例程、对象、可执行文件、执行的线程、过程、函数等等。
因此,在一个或多个示例性实施例中,可以在硬件、软件、或者其组合中实现所描述的功能。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或者编码为计算机可读介质上的一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是能够由计算机存取的任何可用介质。通过举例而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、PCM(相变存储器)、闪存、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于携带或存储具有指令或数据结构形式的期望程序代码并且可以由计算机存取的任何其它介质。如本文所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘。上面各项的组合也应该包括在计算机可读介质的范围内。
Claims (16)
1.一种片上系统(SoC),包括:
总线;
组件接口,被耦合到所述总线,其中所述组件接口被配置为与所述SoC外部的组件对接;
芯片到芯片接口,被耦合到所述总线,其中所述芯片到芯片接口被配置为与其它SoC对接;以及
处理器,被耦合到所述总线,所述处理器被配置为从所述其它SoC接收用于所述SoC外部的所述组件的先前校准参数,确定所述先前校准参数的有效性,并且基于所述先前校准参数的所确定的有效性来操作所述SoC外部的所述组件。
2.权利要求1的SoC,其中所述处理器还被配置为基于确定所述先前校准参数是无效的来为所述SoC外部的所述组件确定新校准参数。
3.权利要求2的SoC,其中所述芯片到芯片接口被配置为发送所述新校准参数给所述其它SoC。
4.权利要求3的SoC,其中所述处理器被配置为使用所述新校准参数来操作所述SoC外部的所述组件。
5.权利要求1的SoC,其中所述SoC外部的所述组件包括外部存储器。
6.权利要求5的SoC,其中所述外部存储器包括动态随机访问存储器(DRAM)。
7.权利要求1的SoC,其中所述外部组件是以下情形之一:与所述SoC堆叠在一起,与所述SoC一起被配置为封装体层叠设计,或者在与所述SoC不同的封装体上。
8.权利要求1的SoC,其中所述处理器被配置为在传输层上从所述其它SoC接收用于所述SoC外部的所述组件的所述先前校准参数。
9.一种片上系统(SoC),包括:
总线;
组件接口,被耦合到所述总线,其中所述组件接口被配置为与所述SoC外部的组件对接;
芯片到芯片接口,被耦合到所述总线,其中所述芯片到芯片接口被配置为与其它SoC对接;
用于从所述其它SoC接收用于所述SoC外部的所述组件的先前校准参数的单元;
用于确定所述先前校准参数的有效性的单元;以及
用于基于所述先前校准参数的所确定的有效性来操作所述SoC外部的所述组件的单元。
10.权利要求9的SoC,还包括用于基于确定所述先前校准参数是无效的来为所述SoC外部的所述组件确定新校准参数的单元。
11.权利要求10的SoC,其中所述芯片到芯片接口被配置为发送所述新校准参数给所述其它SoC。
12.权利要求11的SoC,还包括用于使用所述新校准参数来操作所述SoC外部的所述组件的单元。
13.权利要求9的SoC,其中所述SoC外部的所述组件包括外部存储器。
14.权利要求13的SoC,其中所述外部存储器包括动态随机访问存储器(DRAM)。
15.权利要求9的SoC,其中所述外部组件是以下情形之一:与所述SoC堆叠在一起,与所述SoC一起被配置为封装体层叠设计,或者在与所述SoC不同的封装体上。
16.权利要求9的SoC,还包括用于在传输层上从所述其它SoC接收用于所述SoC外部的所述组件的所述先前校准参数的单元。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762483189P | 2017-04-07 | 2017-04-07 | |
US62/483,189 | 2017-04-07 | ||
US15/682,296 US10642781B2 (en) | 2017-04-07 | 2017-08-21 | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
US15/682,296 | 2017-08-21 | ||
CN201880022712.XA CN110785738B (zh) | 2017-04-07 | 2018-03-29 | 对用于耦合到片上系统的组件的校准参数的引导时间确定 |
PCT/US2018/025243 WO2018187165A2 (en) | 2017-04-07 | 2018-03-29 | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880022712.XA Division CN110785738B (zh) | 2017-04-07 | 2018-03-29 | 对用于耦合到片上系统的组件的校准参数的引导时间确定 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116933701A true CN116933701A (zh) | 2023-10-24 |
Family
ID=63711007
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880022712.XA Active CN110785738B (zh) | 2017-04-07 | 2018-03-29 | 对用于耦合到片上系统的组件的校准参数的引导时间确定 |
CN202310987516.9A Pending CN116933701A (zh) | 2017-04-07 | 2018-03-29 | 对用于耦合到片上系统的组件的校准参数的引导时间确定 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880022712.XA Active CN110785738B (zh) | 2017-04-07 | 2018-03-29 | 对用于耦合到片上系统的组件的校准参数的引导时间确定 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10642781B2 (zh) |
EP (1) | EP3607438B1 (zh) |
CN (2) | CN110785738B (zh) |
SG (1) | SG11201907666WA (zh) |
TW (1) | TWI731233B (zh) |
WO (1) | WO2018187165A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10277283B2 (en) * | 2016-09-14 | 2019-04-30 | Sony Corporation | NFC device, reader/writer device and methods for authorizing and performing an update |
US10539455B2 (en) * | 2017-03-29 | 2020-01-21 | Ncr Corporation | Scale and scanner system |
US10642781B2 (en) * | 2017-04-07 | 2020-05-05 | Qualcomm Incorporated | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
US10796044B2 (en) * | 2018-09-28 | 2020-10-06 | Mentor Graphics Corporation | Interface connectivity for printed circuit board schematic |
CN111367569B (zh) * | 2018-12-26 | 2023-04-28 | 合肥杰发科技有限公司 | 一种存储器校准系统及方法、可读存储介质 |
US11356845B1 (en) * | 2019-07-10 | 2022-06-07 | Sprint Communications Company L.P. | Trusted operating system in an internet of things (IoT) device |
US11176986B2 (en) * | 2019-12-30 | 2021-11-16 | Advanced Micro Devices, Inc. | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
US20230094846A1 (en) * | 2021-09-29 | 2023-03-30 | Dell Products L.P. | Interactive Pre-Boot Intelligence Using Adaptive Row |
CN113849212B (zh) * | 2021-09-30 | 2024-05-14 | 蜂巢能源科技有限公司 | 一种软件升级控制方法、装置及电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925877B2 (en) | 2007-09-27 | 2011-04-12 | Texas Instruments Incorporated | Method, system and apparatus for providing a boot loader of an embedded system |
US9177152B2 (en) | 2010-03-26 | 2015-11-03 | Maxlinear, Inc. | Firmware authentication and deciphering for secure TV receiver |
US8468373B2 (en) * | 2011-01-14 | 2013-06-18 | Apple Inc. | Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state |
US20130282951A1 (en) | 2012-04-19 | 2013-10-24 | Qualcomm Incorporated | System and method for secure booting and debugging of soc devices |
US8446903B1 (en) | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
US9230112B1 (en) | 2013-02-23 | 2016-01-05 | Xilinx, Inc. | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis |
US9547497B2 (en) * | 2013-09-27 | 2017-01-17 | Intel Corporation | Sharing embedded hardware resources |
US9939869B2 (en) | 2015-03-13 | 2018-04-10 | Qualcomm Incorporated | Methods and systems for coordination of operating states amongst multiple SOCs within a computing device |
US9817787B2 (en) * | 2015-03-26 | 2017-11-14 | Intel Corporation | Method, apparatus and system for encapsulating information in a communication |
US10642781B2 (en) | 2017-04-07 | 2020-05-05 | Qualcomm Incorporated | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
-
2017
- 2017-08-21 US US15/682,296 patent/US10642781B2/en active Active
-
2018
- 2018-03-29 WO PCT/US2018/025243 patent/WO2018187165A2/en unknown
- 2018-03-29 SG SG11201907666W patent/SG11201907666WA/en unknown
- 2018-03-29 EP EP18731548.6A patent/EP3607438B1/en active Active
- 2018-03-29 CN CN201880022712.XA patent/CN110785738B/zh active Active
- 2018-03-29 CN CN202310987516.9A patent/CN116933701A/zh active Pending
- 2018-03-30 TW TW107111211A patent/TWI731233B/zh active
-
2020
- 2020-04-01 US US16/836,982 patent/US11126586B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI731233B (zh) | 2021-06-21 |
SG11201907666WA (en) | 2019-10-30 |
CN110785738A (zh) | 2020-02-11 |
US10642781B2 (en) | 2020-05-05 |
US11126586B2 (en) | 2021-09-21 |
CN110785738B (zh) | 2023-07-14 |
WO2018187165A9 (en) | 2019-01-10 |
US20180293204A1 (en) | 2018-10-11 |
WO2018187165A3 (en) | 2018-11-15 |
EP3607438B1 (en) | 2022-09-28 |
US20200257650A1 (en) | 2020-08-13 |
TW201842451A (zh) | 2018-12-01 |
EP3607438A2 (en) | 2020-02-12 |
WO2018187165A2 (en) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110785738B (zh) | 对用于耦合到片上系统的组件的校准参数的引导时间确定 | |
US10747883B2 (en) | Collated multi-image check in system-on-chips | |
KR101825005B1 (ko) | 하드웨어 플랫폼에 대한 펌웨어의 인-시스템 프로비저닝 | |
JP6318425B2 (ja) | リードオンリメモリのブートコードパッチ | |
US11567844B2 (en) | Nonvolatile memory devices, systems and methods for fast, secure, resilient system boot | |
US10909247B2 (en) | Computing device having two trusted platform modules | |
EP3063621A1 (en) | Flexible bootstrap code architecture | |
US10599442B2 (en) | Selectable boot CPU | |
US20210357202A1 (en) | Firmware updating | |
US9417884B2 (en) | Method for enabling calibration during start-up of a micro controller unit and integrated circuit therefor | |
US20210279052A1 (en) | Delta image update | |
CN107667346B (zh) | 用于基于熔断的固件块分派的设备、方法和系统 | |
US11068276B2 (en) | Controlled customization of silicon initialization | |
US11204781B2 (en) | Optimizing power, memory and load time of a computing system during image loading based on image segmentation | |
CN117908969A (zh) | 基于eFuse的SoC系统的启动方法、装置、系统、SoC芯片及电子设备 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40097459 Country of ref document: HK |