TWI731233B - 用於校準元件的方法、電路與電腦可讀取媒體 - Google Patents
用於校準元件的方法、電路與電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI731233B TWI731233B TW107111211A TW107111211A TWI731233B TW I731233 B TWI731233 B TW I731233B TW 107111211 A TW107111211 A TW 107111211A TW 107111211 A TW107111211 A TW 107111211A TW I731233 B TWI731233 B TW I731233B
- Authority
- TW
- Taiwan
- Prior art keywords
- soc
- calibration parameters
- auxiliary
- previous
- new
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 60
- 238000013461 design Methods 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 3
- 239000000463 material Substances 0.000 claims description 2
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003287 optical effect 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
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment 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
- 238000003032 molecular docking Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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
- 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
- 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
- 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
本專利申請案主張享有於2017年4月7日提出申請的美國臨時專利案第62/483,189號,以及與2017年8月21日提出申請的美國專利申請案第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基於所決定的該等先前校準參數的有效性來操作該外部元件的構件。
在參閱以下詳細描述後將變得更充分地理解本發明的該等和其他態樣。在參閱下文結合附圖對本發明的特定的、示例性實施例的描述後,本發明的其他態樣、特徵和實施例對於本領域一般技藝人士而言將變得顯而易見。儘管可以相對於下文的某些實施例和附圖來論述本發明的特徵,但是本發明的所有實施例可以包括本文所論述的優勢特徵中的一或多個特徵。換句話說,儘管將一或多個實施例論述成具有某些優勢特徵,但根據本文所論述的本發明的各個實施例亦可以使用該等特徵中的一或多個特徵。以類似的方式,儘管下文可以將示例性實施例論述成設備、系統或者方法實施例,但應當理解的是,可以在各種設備、系統和方法中實現該等示例性實施例。
以下結合附圖所闡述的具體實施方式意欲作為對各種配置的說明,而非意欲表示可以實施本文所描述的概念的僅有配置。出於提供對各種概念的透徹理解的目的,具體實施方式包括具體的細節。然而,對於本領域技藝人士來說將顯而易見的是,在沒有該等具體細節的情況下亦可以實施該等概念。在一些實例中,以方塊圖形式圖示公知的結構和元件以避免混淆該等概念。
儘管圍繞積體電路(例如,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。CPUSS 105包括複數個CPU核心111、112、121和122。儘管CPUSS 105被圖示為具有特定數量的CPU核心,但應該注意,CPUSS 105中可以存在另外的或更少的核心。此外,CPU核心111和112是集群110的一部分,並且CPU核心121和122是集群120的一部分。再次,儘管被圖示為具有特定數量的CPU集群,但是CPUSS 105可以包括另外的或更少的集群。此外,每個集群可以包括相同或不同數量的CPU核心。CPU核心111、112、121和122可以是相同的類型,或者可以是不同的類型(例如,ARM設計、非ARM設計等等)。此外,給定集群(例如,CPU集群110或120)的CPU核心可以是相同類型或者可以是不同類型(例如,集群中的big.LITTLE設計、基於集群的big.LITTLE設計等等)。big.LITTLE設計可以指一種計算架構,該計算架構包括提供電池節省的低功率、較慢處理器核心(例如,LITTLE)連同提供較好處理效能的高功率、較快處理器核心(例如,big)。
此外,CPUSS 105可以包括CPU資源,例如一或多個快取記憶體。如所圖示的,每個集群110和120分別包括快取記憶體115和125。在某些態樣中,集群110和120的CPU核心可以分別共享快取記憶體115和125以用於記憶體儲存。應該注意,CPUSS 105可以包括除了所圖示的CPU資源之外的另外或不同的CPU資源。例如,在一些態樣中,一或多個CPU核心可以具有其自身相關聯的快取記憶體,一或多個集群可以具有其自身相關聯的快取記憶體(例如,由集群的CPU核心共享)及/或CPUSS 105可以包括由一或多個集群及/或CPU核心共享的一或多個快取記憶體。SoC 101亦可以包括另外的CPUSS 103,以及一或多個數位訊號處理器子系統(DSPSS),例如DSPSS 107和DSPSS 109。在某些態樣中,CPUSS 103、DSPSS 107和DSPSS 109中的每一個可以分別具有其自身的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)是一種包括代碼(例如,引導代碼)的積體電路,該代碼由CPUSS 105在初始上電期間或者在看門狗(watchdog)復位條件下(例如,在由電路100上的計時器偵測到的電路100的故障未被復位或「超時」之後)執行。在一些態樣中,ROM在韌體中實現。在一些態樣中,CPUSS 105經由執行儲存在儲存裝置195中用於引導SoC 101的可執行檔、資料鏡像等等來從儲存裝置195安全地引導。在一些態樣中,CPUSS 105從傳輸層而不是儲存裝置(例如,無快閃記憶體傳輸層)安全地引導,如針對SoC 102進一步論述的。在某些態樣中,CPUSS 105經由在執行軟體鏡像之前檢查用於引導的軟體鏡像的完整性(例如,使用密碼簽名協定、信任鏈、認證標籤、校驗和等等)來安全地引導。
此外,如上面論述的,作為引導序列的一部分,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。例如,在SoC 101的首次引導時(例如,在工廠處),儲存裝置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包括CPUSS 106。CPUSS 106包括複數個CPU核心133和134。儘管CPUSS 106被圖示為具有特定數量的CPU核心,但應該注意,CPUSS 106中可以存在另外的或更少的核心。此外,CPU核心133和134是集群132的一部分。再次,儘管被圖示為具有特定數量的CPU集群,但是CPUSS 106可以包括另外的或更少的集群。此外,每個集群可以包括相同或不同數量的CPU核心。CPU核心133和134可以是相同的類型,或者可以是不同的類型(例如,ARM設計、非ARM設計等等)。此外,給定集群(例如,CPU集群132)的CPU核心可以是相同類型或者可以是不同類型(例如,集群中的big.LITTLE設計、基於集群的big.LITTLE設計等等)。
此外,CPUSS 106可以包括CPU資源,例如一或多個快取記憶體。如所圖示的,集群132包括快取記憶體135。SoC 101亦可以包括另外的CPUSS以及一或多個DSPSS,例如DSPSS 108。在某些態樣中,每個另外的CPUSS和DSPSS可以具有其自身的SRAM(例如,DSPSS 108的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之類的晶片到晶片介面通訊。因此,SoC 101和SoC 102可以經由引導I/F控制器183和184在傳輸層上通訊。
具體而言,如所論述的,SoC 102可以不直接與外部儲存裝置對接以便節省材料清單(BoM)成本。因此,SoC 102可以被配置成:從傳輸層而不是儲存裝置(例如,無快閃記憶體傳輸層)安全地引導。例如,SoC 101可以從儲存裝置195讀取儲存在儲存裝置195中用於引導SoC 102的可執行檔、資料鏡像等等(亦被稱為引導資料)。SoC 101亦可以對SoC 102上電(例如,控制SoC 102以對SoC 102上電)。SoC 101隨後可以將引導資料推送到SoC 102,或者SoC 102可以在傳輸層上(例如,經由PCIe介面188與PCIe介面189之間的鏈路)從SoC 101拉取(例如,請求)引導資料。
在接收到引導資料時,SoC 102可以決定開始引導序列。因此,SoC 101可以發起對SoC 102的引導。在一些態樣中,復位控制器131在系統引導期間被配置為:將CPUSS 106的CPU核心從復位釋放。在一些態樣中,釋放的CPU核心隨後被配置為:執行來自ROM 161的代碼/資料(例如,引導代碼)以引導SoC 102(例如,以執行高級作業系統(OS))。ROM 161(例如,引導ROM)是包括代碼(例如,引導代碼)的積體電路,該等代碼由CPUSS 106在初始上電期間或者在看門狗復位條件下執行。在一些態樣中,ROM在韌體中實現。在一些態樣中,CPUSS 106經由利用從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針對DRAM 190或耦合到SoC 101或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亦接收與所決定的校準參數一起儲存的先前計算的校驗和。SoC 102亦基於以下各項中的至少一項來計算新的校驗和:可用於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可以是由CPUSS 106或者SoC 102的另一實體元件實現的邏輯單元,其被配置為實現金鑰產生演算法以基於辨識符來產生金鑰。金鑰產生演算法可以由SoC 102自身實現並且不可用於其他裝置或SoC。因此,即使其他裝置具有對SoC 102的辨識符的存取,其亦可能不能夠產生與SoC 102相同的金鑰。此外,SoC 102可以可選地包括認證邏輯元件194,該認證邏輯元件194可以是由CPUSS 106或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的校準參數和對應的校驗和及/或認證標籤,並在傳輸層上將該校準參數和校驗和及/或認證標籤傳輸到SoC 102。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決定接收到的校準參數是否有效。例如,SoC 102計算用於接收到的校準參數的校驗和及/或認證標籤,並決定所計算的校驗和及/或認證標籤是否匹配接收到的校驗和及/或認證標籤(例如,校準參數有效)或者校驗和及/或認證標籤是否不匹配(例如,校準參數無效)。若在步驟212處,輔助SoC決定校準參數有效,則在步驟214處,輔助SoC使用該校準參數來操作外部記憶體並繼續引導過程。例如,SoC 102使用用於DRAM 191的校準參數並指示SoC 101發送所有後續引導資料。
若在步驟212處,輔助SoC決定校準參數無效,則在步驟216處,輔助SoC決定用於外部記憶體的新的校準參數並繼續引導過程。例如,SoC 102經由執行針對DRAM 191的校準程序,使用訓練圖案來計算新的校準參數。在某些態樣中,例如在步驟206或210處未執行的情況下,輔助SoC亦可以請求並且主要SoC可以將用於校準輔助SoC的記憶體的訓練圖案傳輸到次要存放裝置SoC以用於決定新的校準參數。SoC 102亦可以計算用於新的校準參數的校驗和及/或認證標籤。在步驟218處,輔助SoC將所決定的校準參數發送給主要SoC。例如,SoC 102在傳輸層上將校準參數和校驗和及/或認證標籤發送給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。貫穿本案內容所描述的各個態樣的要素的對於本領域一般技藝人士來說是公知的或即將成為公知的所有結構性和功能性等效項,其經由引用被明確地併入本文中並且意欲被包含在申請專利範圍中。此外,本文中沒有任何揭示內容意欲捐獻給公眾,不管此種揭示內容是否明確記載在申請專利範圍中。不應依據專利法. § 112(f)中的規定來解釋任何請求項要素,除非該要素是使用「用於……的構件」的短語來明確地記載的,或者在方法請求項的情形下,該要素是使用「用於……的步驟」的短語來記載的。
該等裝置和方法在具體實施方式中進行描述,並在附圖中經由各種方塊、模組、元件、電路、步驟、過程、演算法等等(其統稱為「要素」)來予以圖示。可以使用硬體、軟體或者其組合來實現該等要素。至於該等要素是實現為硬體還是軟體,這取決於特定的應用和施加在整體系統上的設計約束。
舉例而言,要素或者要素的任何部分或者要素的任意組合可以用包括一或多個處理器的「處理系統」來實現。處理器的實例包括被配置為執行貫穿本案內容所描述的各種功能的微處理器、微控制器、數位訊號處理器(DSP)、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、閘控邏輯、個別硬體電路和其他適當的硬體。處理系統中的一或多個處理器可以執行軟體。無論是稱為軟體、韌體、仲介軟體、微代碼、硬體描述語言還是其他術語,軟體應當被廣義地解釋為表示指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體模組、應用、軟體應用、套裝軟體、韌體、常式、子常式、物件、可執行檔、執行的執行緒、程序、函數等等。
因此,在一或多個示例性實施例中,可以在硬體、軟體或者其組合中實現所描述的功能。若在軟體中實現,則該等功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或者編碼為電腦可讀取媒體上的一或多個指令或代碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是能夠由電腦存取的任何可用媒體。經由舉例而非限制性的方式,此種電腦可讀取媒體可以包括RAM、ROM、EEPROM、PCM(相變記憶體)、快閃記憶體、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置,或者可用於攜帶或儲存具有指令或資料結構形式的期望程式碼並且可以由電腦存取的任何其他媒體。如本文所使用的,磁碟(disk)和光碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟。上面各項的組合亦應該包括在電腦可讀取媒體的範圍內。
100‧‧‧電路101‧‧‧SoC102‧‧‧SoC103‧‧‧CPUSS105‧‧‧CPU子系統(CPUSS)106‧‧‧CPUSS107‧‧‧DSPSS108‧‧‧DSPSS109‧‧‧DSPSS110‧‧‧集群111‧‧‧CPU核心112‧‧‧CPU核心115‧‧‧快取記憶體120‧‧‧集群121‧‧‧CPU核心122‧‧‧CPU核心125‧‧‧快取記憶體130‧‧‧復位控制器131‧‧‧復位控制器132‧‧‧集群133‧‧‧CPU核心134‧‧‧CPU核心135‧‧‧快取記憶體140‧‧‧電熔絲元件141‧‧‧電熔絲元件150‧‧‧靜態隨機存取記憶體(SRAM)151‧‧‧靜態隨機存取記憶體(SRAM)152‧‧‧SRAM154‧‧‧SRAM155‧‧‧SRAM156‧‧‧SRAM160‧‧‧唯讀記憶體(ROM)161‧‧‧唯讀記憶體(ROM)170‧‧‧動態RAM(DRAM)控制器171‧‧‧動態RAM(DRAM)控制器175‧‧‧匯流排180‧‧‧儲存控制器183‧‧‧引導I/F控制器184‧‧‧引導介面(I/F)控制器185‧‧‧匯流排186‧‧‧USB介面187‧‧‧USB介面188‧‧‧PCIe介面189‧‧‧PCIe介面190‧‧‧DRAM191‧‧‧DRAM192‧‧‧匯流排193‧‧‧金鑰產生器194‧‧‧認證邏輯元件195‧‧‧儲存裝置197‧‧‧匯流排198‧‧‧匯流排200‧‧‧操作202‧‧‧步驟204‧‧‧步驟206‧‧‧步驟210‧‧‧步驟212‧‧‧步驟214‧‧‧步驟216‧‧‧步驟218‧‧‧步驟220‧‧‧步驟300‧‧‧操作302‧‧‧步驟304‧‧‧步驟306‧‧‧步驟308‧‧‧步驟310‧‧‧步驟312‧‧‧步驟400‧‧‧操作405‧‧‧步驟410‧‧‧步驟415‧‧‧步驟
為了能詳細地理解本案內容的上述特徵所用的方式,可以參照各態樣來對以上簡要概述的內容進行更具體的描述,其中一些態樣在附圖中說明。然而,要注意,附圖僅圖示本案內容的某些典型態樣,並且因此不應被認為限定本案內容的範圍,因為該描述可以允許其他等同有效的態樣。
圖1是根據本案內容的某些態樣,包括複數個積體片上系統(SoC)電路的示例性電路的簡要示意圖。
圖2是根據本案內容的某些態樣,圖示用於使用主要SoC對輔助SoC進行引導的示例性操作的流程圖。
圖3是根據本案內容的某些態樣,圖示用於決定記憶體的校準參數的示例性操作的流程圖。
圖4是根據本案內容的某些態樣,圖示用於決定耦合到SoC的元件的校準參數的示例性操作的流程圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
300:操作
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
310‧‧‧步驟
312‧‧‧步驟
Claims (30)
- 一種對一外部元件進行校準的方法,該方法包括以下步驟:在一輔助SoC處從一主要SoC接收用於一外部元件的先前校準參數,其中該輔助SoC耦合到該外部元件並且被配置為對該外部元件進行校準;由該輔助SoC決定該等先前校準參數的有效性;及由該輔助SoC基於所決定的該等先前校準參數的該有效性來操作該外部元件。
- 如請求項1所述之方法,亦包括以下步驟:由該主要SoC控制該輔助SoC的引導;由該輔助SoC基於決定該等先前校準參數無效而決定用於該外部元件的新的校準參數;將該等新的校準參數從該輔助SoC發送給該主要SoC;及使用該等新的校準參數來操作該外部元件。
- 如請求項2所述之方法,其中該等先前校準參數是基於用於決定校準參數的先前一或多個資料集來決定的,並且亦包括以下步驟:接收用於決定校準參數的一或多個新的資料集作為對用於決定校準參數的該先前一或多個資料集的一更新,其中該等新的校準參數是基於用於決定校準參數的該一或多個新的資 料集來決定的。
- 如請求項3所述之方法,其中該一或多個新的資料集包括以下各項中的一項或多項:一頻率矩陣、一電壓配置、一訓練演算法或者雙倍資料速率動態隨機存取記憶體參數。
- 如請求項2所述之方法,其中該等先前校準參數包括虛設資料。
- 如請求項2所述之方法,亦包括以下步驟:將該等新的校準參數儲存在該主要SoC的一儲存裝置中。
- 如請求項6所述之方法,其中該輔助SoC不與被配置為儲存該等新的校準參數或者該等先前校準參數的任何儲存裝置直接對接。
- 如請求項1所述之方法,亦包括以下步驟:在該輔助SoC處從該主要SoC接收與該等先前校準參數相對應的一先前校驗和;及在該輔助SoC處基於先前校準參數、由該輔助SoC用於決定校準參數的一或多個資料集中的至少一個資料集以及該輔助SoC的一辨識符來計算一新的校驗和,其中決定該等先前校準參數的該有效性包括:將該等先前校驗和與該新的校驗和進行比較。
- 如請求項1所述之方法,亦包括以下步驟: 在該輔助SoC處從該主要SoC接收與該等先前校準參數相對應的一先前認證標籤;及基於一認證演算法,在該輔助SoC處基於以下各項來計算新的認證標籤:先前校準參數、由該輔助SoC用於決定校準參數的一或多個資料集中的至少一個資料集以及基於該輔助SoC的一辨識符的一金鑰,其中該金鑰是由該輔助SoC計算的並且不可用於該主要SoC,其中該認證演算法不可用於該主要SoC,並且其中決定該等先前校準參數的該有效性包括:將該先前認證標籤與該新的認證標籤進行比較。
- 如請求項1所述之方法,其中該外部元件是以下情形中的一項:與該輔助SoC堆疊在一起、與該輔助SoC一起被配置為一封裝體層疊設計,或者在與該輔助SoC不同的一封裝體上。
- 如請求項1所述之方法,其中接收該等先前校準參數是在一傳輸層上執行的。
- 如請求項1所述之方法,亦包括以下步驟:基於決定該等先前校準參數有效而使用該等先前校準參數來操作該外部元件。
- 如請求項1所述之方法,其中該外部元件包括一外部記憶體。
- 一種電路,包括: 一主要SoC,該主要SoC包括:一第一匯流排;耦合到該第一匯流排的一第一處理器;耦合到該第一匯流排的一儲存控制器;及耦合到該匯流排的一第一晶片到晶片介面;一輔助SoC,該輔助SoC包括:一第二匯流排;耦合到該第二匯流排的一第二處理器;耦合到該第二匯流排的一元件介面,其中該元件介面被配置為與一外部元件對接;及耦合到該第二匯流排的一第二晶片到晶片介面,其中該第二晶片到晶片介面被配置為:與該第一晶片到晶片介面對接以提供該主要SoC與該輔助SoC之間的通訊;其中該第二處理器被配置為:從該第一處理器接收用於該外部元件的先前校準參數,其中該第一處理器被配置為:從耦合到該儲存控制器的一儲存裝置獲取該等先前校準參數;決定該等先前校準參數的有效性;及基於所決定的該等先前校準參數的該有效性來操作該外部元件。
- 如請求項14所述之電路,其中該主要 SoC被配置為:控制該輔助SoC的引導,其中該輔助SoC被配置為:基於決定該等先前校準參數無效而決定用於該外部元件的新的校準參數,其中該輔助SoC被配置為:將該等新的校準參數發送給該主要SoC,並且其中該輔助SoC被配置為:使用該等新的校準參數來操作該外部元件。
- 如請求項15所述之電路,其中該等先前校準參數是基於用於決定校準參數的先前一或多個資料集來決定的,並且其中該輔助SoC亦被配置為:接收用於決定校準參數的一或多個新的資料集作為對用於決定校準參數的該先前一或多個資料集的一更新,其中該等新的校準參數是基於用於決定校準參數的該一或多個新的資料集來決定的。
- 如請求項16所述之電路,其中該一或多個新的資料集包括以下各項中的一項或多項:一頻率矩陣、一電壓配置、一訓練演算法或者雙倍資料速率動態隨機存取記憶體參數。
- 如請求項15所述之電路,其中該等先前校準參數包括虛設資料。
- 如請求項15所述之電路,其中該主要SoC亦被配置為:將該等新的校準參數儲存在該主要SoC的一儲存裝置中。
- 如請求項19所述之電路,其中該輔助SoC不與被配置為儲存該等新的校準參數或者該等先前校準參數的任何儲存裝置直接對接。
- 如請求項14所述之電路,其中該輔助SoC亦被配置為:從該主要SoC接收與該等先前校準參數相對應的一先前校驗和;及基於先前校準參數、由該輔助SoC用於決定校準參數的一或多個資料集中的至少一個資料集、以及該輔助SoC的一辨識符來計算一新的校驗和,其中決定該等先前校準參數的該有效性包括:將該先前校驗和與該新的校驗和進行比較。
- 如請求項14所述之電路,其中該輔助SoC亦被配置為:從該主要SoC接收與該等先前校準參數相對應的一先前認證標籤;及基於一認證演算法,基於以下各項來計算一新的認證標籤:先前校準參數、由該輔助SoC用於決定校準參數的一或多個資料集中的至少一個資料集以及基於該輔助SoC的一辨識符的一金鑰,其中該金鑰是由該輔助SoC計算的並且不可用於該主要SoC,其中該認證演算法不可用於該主要SoC,並且其中決定該等先 前校準參數的該有效性包括:將該先前認證標籤與該新的認證標籤進行比較。
- 如請求項14所述之電路,其中該外部元件是以下情形中的一項:與該輔助SoC堆疊在一起、與該輔助SoC一起被配置為一封裝體層疊設計或者在與該輔助SoC不同的一封裝體上。
- 如請求項14所述之電路,其中接收該等先前校準參數是在一傳輸層上執行的。
- 如請求項14所述之電路,其中該輔助SoC被配置為:基於決定該等先前校準參數有效而使用該等先前校準參數來操作該外部元件。
- 如請求項14所述之電路,其中該外部元件包括一外部記憶體。
- 一種電路,包括:用於在一輔助SoC處從一主要SoC接收用於一外部元件的先前校準參數的構件,其中該輔助SoC耦合到該外部元件並且被配置為對該外部元件進行校準;用於由該輔助SoC決定該等先前校準參數的有效性的構件;及用於由該輔助SoC基於所決定的該等先前校準參數的有效性來操作該外部元件的構件。
- 如請求項27所述之電路,亦包括: 用於由該主要SoC控制該輔助SoC的引導的構件;用於由該輔助SoC基於決定該等先前校準參數無效而決定用於該外部元件的新的校準參數的構件;用於將該等新的校準參數從該輔助SoC發送給該主要SoC的構件;及用於使用該等新的校準參數來操作該外部元件的構件。
- 一種其上儲存有用於使得一電路執行對一外部元件進行校準的一方法的指令的非暫態性電腦可讀取媒體,該方法包括以下步驟:在一輔助SoC處從一主要SoC接收用於一外部元件的先前校準參數,其中該輔助SoC耦合到該外部元件並且被配置為對該外部元件進行校準;由該輔助SoC決定該等先前校準參數的有效性;及由該輔助SoC基於所決定的該等先前校準參數的有效性來操作該外部元件。
- 如請求項29所述之非暫態性電腦可讀取媒體,其中該方法亦包括以下步驟:由該主要SoC控制該輔助SoC的引導;由該輔助SoC基於決定該等先前校準參數無效而決定用於該外部元件的新的校準參數; 將該等新的校準參數從該輔助SoC發送給該主要SoC;及使用該等新的校準參數來操作該外部元件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762483189P | 2017-04-07 | 2017-04-07 | |
US62/483,189 | 2017-04-07 | ||
US15/682,296 | 2017-08-21 | ||
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201842451A TW201842451A (zh) | 2018-12-01 |
TWI731233B true TWI731233B (zh) | 2021-06-21 |
Family
ID=63711007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107111211A TWI731233B (zh) | 2017-04-07 | 2018-03-30 | 用於校準元件的方法、電路與電腦可讀取媒體 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10642781B2 (zh) |
EP (1) | EP3607438B1 (zh) |
CN (2) | CN116933701A (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 | 蜂巢能源科技有限公司 | 一种软件升级控制方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201234169A (en) * | 2011-01-14 | 2012-08-16 | Apple Inc | Coordinating performance parameters in multiple circuits |
US20130282951A1 (en) * | 2012-04-19 | 2013-10-24 | Qualcomm Incorporated | System and method for secure booting and debugging of soc devices |
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 |
TW201640872A (zh) * | 2015-03-26 | 2016-11-16 | 英特爾股份有限公司 | 用於通訊中封裝資訊之方法、裝置及系統 |
TW201643607A (zh) * | 2015-03-13 | 2016-12-16 | 高通公司 | 用於計算裝置內多個soc之操作狀態間協調之方法及系統 |
US9547497B2 (en) * | 2013-09-27 | 2017-01-17 | Intel Corporation | Sharing embedded hardware resources |
Family Cites Families (4)
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 |
WO2011119985A2 (en) | 2010-03-26 | 2011-09-29 | Maxlinear, Inc. | Firmware authentication and deciphering for secure tv receiver |
US8446903B1 (en) | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
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 CN202310987516.9A patent/CN116933701A/zh active Pending
- 2018-03-29 CN CN201880022712.XA patent/CN110785738B/zh active Active
- 2018-03-30 TW TW107111211A patent/TWI731233B/zh active
-
2020
- 2020-04-01 US US16/836,982 patent/US11126586B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201234169A (en) * | 2011-01-14 | 2012-08-16 | Apple Inc | Coordinating performance parameters in multiple circuits |
US20130282951A1 (en) * | 2012-04-19 | 2013-10-24 | Qualcomm Incorporated | System and method for secure booting and debugging of soc devices |
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 |
TW201643607A (zh) * | 2015-03-13 | 2016-12-16 | 高通公司 | 用於計算裝置內多個soc之操作狀態間協調之方法及系統 |
TW201640872A (zh) * | 2015-03-26 | 2016-11-16 | 英特爾股份有限公司 | 用於通訊中封裝資訊之方法、裝置及系統 |
Also Published As
Publication number | Publication date |
---|---|
WO2018187165A3 (en) | 2018-11-15 |
US20180293204A1 (en) | 2018-10-11 |
US10642781B2 (en) | 2020-05-05 |
CN110785738B (zh) | 2023-07-14 |
US20200257650A1 (en) | 2020-08-13 |
CN110785738A (zh) | 2020-02-11 |
EP3607438A2 (en) | 2020-02-12 |
WO2018187165A9 (en) | 2019-01-10 |
SG11201907666WA (en) | 2019-10-30 |
EP3607438B1 (en) | 2022-09-28 |
WO2018187165A2 (en) | 2018-10-11 |
TW201842451A (zh) | 2018-12-01 |
CN116933701A (zh) | 2023-10-24 |
US11126586B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI731233B (zh) | 用於校準元件的方法、電路與電腦可讀取媒體 | |
US10747883B2 (en) | Collated multi-image check in system-on-chips | |
KR101825005B1 (ko) | 하드웨어 플랫폼에 대한 펌웨어의 인-시스템 프로비저닝 | |
JP6319609B2 (ja) | 信頼できるカーネル起動方法および装置 | |
US9411601B2 (en) | Flexible bootstrap code architecture | |
TW201921257A (zh) | 用於在異構記憶體環境內進行引導的系統和方法 | |
US11320990B2 (en) | NVDIMM serial interface for out-of-band management by a baseboard management controller and method therefor | |
US11468200B2 (en) | System and method for cryptographically coupling a media controller to a baseboard management controller | |
US20210357202A1 (en) | Firmware updating | |
US10878100B2 (en) | Secure boot processor with embedded NVRAM | |
US9417884B2 (en) | Method for enabling calibration during start-up of a micro controller unit and integrated circuit therefor | |
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 | |
US20240160743A1 (en) | Boot firmware corruption detection & mitigation | |
CN111258658A (zh) | 计算机装置的网络连接方法 |