TW201923595A - 用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理 - Google Patents

用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理 Download PDF

Info

Publication number
TW201923595A
TW201923595A TW107133597A TW107133597A TW201923595A TW 201923595 A TW201923595 A TW 201923595A TW 107133597 A TW107133597 A TW 107133597A TW 107133597 A TW107133597 A TW 107133597A TW 201923595 A TW201923595 A TW 201923595A
Authority
TW
Taiwan
Prior art keywords
soc
nvram
power
software
memory
Prior art date
Application number
TW107133597A
Other languages
English (en)
Inventor
燕如 李
艾茲狄恩 圖茲尼
德斯特塔密歐 千
Original Assignee
美商高通公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW201923595A publication Critical patent/TW201923595A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

揭示用於對針對片上系統的低功率用例的記憶體存取進行管理的系統和方法。一種此類方法包括:引導包括複數個SoC處理設備的片上系統(SoC)。建立到安全非揮發性隨機存取記憶體(NVRAM)的可信通道。該方法決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的功率節省軟體程式。將與該功率節省軟體程式相關聯的軟體映射載入到該安全NVRAM。回應於將該軟體映射載入到該安全NVRAM,將該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備都斷電。

Description

用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理
本案內容係關於用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理。
可攜式計算設備(例如,蜂巢式電話、智慧手機、平板電腦、可攜式數位助理(PDA)、可攜式遊戲控制台、可穿戴設備和其他電池供電設備)以及其他計算設備繼續提供不斷擴展的功能和服務陣列,並且為使用者提供了前所未有的資訊、資源和通訊存取水平。為了跟上這些服務增強的步伐,這些設備變得更加強大和複雜。可攜式計算設備現在通常包括片上系統(SoC),片上系統包括嵌入在單個基板上的複數個記憶體客戶端(例如,一或多個中央處理單元(CPU)、圖形處理單元(GPU)、數位訊號處理器等)。記憶體客戶端可以從經由高速匯流排電耦合至SoC的外部系統記憶體(亦即,隨機存取記憶體(RAM))中讀取資料並將資料儲存在外部系統記憶體中。
由於其相對低的成本和高容量,揮發性記憶體(例如,動態RAM(DRAM)和靜態RAM(SRAM))廣泛用於數位電子設備(如可攜式計算設備)中的外部系統記憶體。儘管具有這些優點,但揮發性記憶體設備比非揮發性記憶體設備消耗相對更多的功率,因為記憶體單元在移除電源後丟失其內容,因此必須定期刷新。隨著非揮發性記憶體變得更具成本效益,它可能成為用作計算設備中的系統記憶體的更可行的解決方案。非揮發性RAM(NVRAM)包含非揮發性記憶體單元(與DRAM和SRAM不同),其在電源關閉後保留其資料。儘管這可以提高功率效率,但NVRAM中包含的資料可能容易遭受未經授權的讀取及/或寫入。
出於安全和隱私的目的,NV單元中包含的一些內容可能需要防篡改。為了提供這種能力,現有的解決方案可以採用加密來確保不能讀取和改變NV單元的內容。由記憶體客戶端讀取/寫入的所有資料首先被解密/加密,隨後儲存在NV單元中。但是,解密/加密會在讀/寫資料路徑中引入延時,這會降低上游記憶體客戶端的效能。
與NVRAM相關聯的隱私/安全問題的另一個解決方案是在斷電時覆蓋/擦除NVRAM的內容。這種方法的問題在於需要電源來寫入NVRAM,而不良的斷電可能無法完全完成該操作。而且,保持NVRAM內容完整可能是有利的,以使得下一次設備引導(boot)可以從內容的非揮發性保留中獲益。
因此,需要用於提供對NVRAM的安全存取並且支援各種低功率用例的改進的系統和方法。
揭示用於對針對片上系統的低功率用例的記憶體存取進行管理的系統和方法。一種此類方法包括:引導包括複數個SoC處理設備的片上系統(SoC)。建立到安全非揮發性隨機存取記憶體(NVRAM)的可信通道。該方法決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的功率節省軟體程式。將與該功率節省軟體程式相關聯的軟體映射載入到該安全NVRAM。回應於將該軟體映射載入到該安全NVRAM,將該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備都斷電。
系統的實施例包括片上系統(SoC)、雙倍資料速率(DDR)記憶體、安全非揮發性隨機存取記憶體(NVRAM)以及低功率用例管理模組。該SoC包括複數個SoC處理設備。該DDR記憶體電耦合至該SoC。該安全NVRAM具有帶有用於建立可信通道的通過閘值的熔斷器。該低功率用例管理模組被配置為:決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的功率節省軟體程式。該低功率用例管理模組亦被配置為:將與該功率節省軟體程式相關聯的軟體映射從該DDR記憶體載入到該安全NVRAM,並且作為回應,發起對該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備的斷電。
本文中使用的「示例性的」一詞意指「用作實例、例子或說明」。在本文中被描述為「示例性的」的任何態樣不一定被解釋為優選的或者比其他態樣更有優勢的。
在本說明書中,術語「應用」亦可以包括具有可執行內容的档案,諸如:物件代碼、腳本、位元組代碼、標記語言档案和補丁。此外,「應用」在本文中亦可以包括在性質上不可執行的档案,諸如需要打開的文件或需要存取的其他資料檔案。
術語「內容」亦可以包括具有可執行內容的档案,諸如:物件代碼、腳本、位元組代碼、標記語言档案和補丁。此外,「內容」在本文中亦可以包括在性質上不可執行的档案,諸如需要打開的文件或需要存取的其他資料檔案。
如在本說明書中所使用的,術語「部件」、「資料庫」、「模組」、「系統」等意指與電腦相關的實體,或者是硬體、韌體、硬體和軟體的組合、軟體、或執行中的軟體。例如,部件可以是但不限於是執行在處理器上的程序、處理器、物件、可執行程式,所執行的執行緒、程式、及/或電腦。經由說明的方式,在計算設備上執行的應用和計算設備都可以是部件。一或多個部件可以位於程序及/或所執行的執行緒之內,並且部件可以位於一台電腦上及/或分佈在兩台或更多台電腦之間。此外,這些部件可以從具有各種資料結構儲存在其上的各種電腦可讀取媒體執行。部件可以經由信號的方式經由本端及/或遠端程序與其他系統進行通訊,例如根據具有一或多個資料封包(例如,來自與本端系統、分散式系統及/或跨越例如網際網路的網路中的另一個部件進行互動的一個部件的資料)的信號。
在本說明書中,術語「通訊設備」、「可攜式計算設備」、「無線設備」、「無線電話」、「無線通訊設備」和「無線手持設備」可互換使用。隨著第三代(「3G」)、第四代(「4G」)和第五代(「5G」)無線技術的來臨,更多的可用頻寬以使更多的可攜式計算設備具有更加多種多樣的無線能力。因此,可攜式計算設備可以包括:蜂巢式電話、傳呼機、PDA、智慧型電話、導航設備、物聯網路(「IoT」)設備、可穿戴設備或具有無線連接或鏈路的手持電腦。
在一個實例中,術語「軟體映射」可以指編譯和連結用於特定機器類型的原始程式碼的輸出。如本領域中已知的,編譯和連結用於特定機器類型的原始程式碼的輸出可以包括為了在該類型的機器上執行而可能需要的指令(亦即,機器操作代碼)和資料結構。在行動設備的上下文中,嵌入式軟體映射(如引導載入程式)可以在工廠供應階段被程式設計到例如快閃記憶體中。行動應用軟體映射可以由端使用者下載到存放裝置。
圖1圖示用於提供對非揮發性隨機存取記憶體(NVRAM)的安全存取的系統100的實施例。系統100包括片上系統(SoC)102,其經由高速匯流排126電耦合至防篡改/窺探NVRAM 104。NVRAM 104可以包括任何期望類型的非揮發性記憶體,其在移除電源時保留NV單元內容(例如,自旋轉移扭矩磁性隨機存取記憶體(STT-RAM)、相變RAM(PC-RAM)、電阻性 RAM(RE-RAM)等)。如下文結合圖2-圖6更詳細描述的,NVRAM 104包括閘機制204,其通常包括用於以下操作的功能:防止讀/寫操作存取NV單元陣列202,除非在SoC 102與NVRAM 104之間發產生功的認證或密碼交換。
應當理解,系統100可以在任何計算設備中實現,包括個人電腦、工作站、伺服器、可攜式計算設備(PCD)(如蜂巢式電話、智慧型電話、可攜式數位助理(PDA)、可攜式遊戲控制台、導航設備、平板電腦)、可穿戴設備(如運動手錶、健身追蹤設備等),或者其他電池供電的、支援網路的設備。
SoC 102包括各種片上部件,其包括:中央處理單元(CPU)110、靜態隨機存取記憶體(SRAM)112、唯讀記憶體(ROM)114、RAM控制器120、儲存記憶體控制器122、功率管理介面118以及經由SoC匯流排116電耦合的熔斷器132。經由高速匯流排126電耦合至NVRAM 104的RAM控制器120控制與NVRAM 104的通訊。經由匯流排128電耦合至外部儲存記憶體106的儲存記憶體控制器122控制與儲存記憶體106的通訊。功率管理介面118經由連接124電耦合至功率管理器控制器108。功率管理器控制器108控制提供給各種系統部件的電源。如圖1所示,分別經由連接134、138和136向SoC 102、NVRAM 104和儲存記憶體106供電。系統100亦包括未圖示的電源(例如,電池)。
如圖1和圖2所示,SoC 102包括與常駐在NVRAM 104中的熔斷器210牢固配對的熔斷器132。SoC熔斷器132和NVRAM熔斷器210提供有認證資料、值、密碼、與加密/解密演算法相關聯的私密金鑰/公開金鑰等,用於實現認證程序或SoC 102和NVRAM 104之間的安全密碼交換。當斷電並且在啟動(boot-up)時,NVRAM 104中的閘機制204被配置為「鎖定」狀態,其阻止讀/寫操作存取NV單元陣列202。當系統100啟動時,可信引導程式130開始在CPU 110上執行。可信引導程式最初可以儲存在ROM 114中的SoC 102上,或者可以儲存在外部(例如,從儲存記憶體106或從諸如USB 342或網卡388的周邊設備中取回)。應當理解,可以允許在引導程序期間認證的安全且可信的引導程式執行安全解鎖動作。可以經由SoC片上認證方案決定(經由或失敗)可信引導程式130的真實性,該方案通常使用SoC 102內的不可變硬體和唯讀記憶體(ROM)來實現。這些或其他步驟可以確認解鎖NVRAM 104的程式的真實性,使得系統安全性不會被入侵者破壞。認證失敗可以使程式停止前進,從而導致NVRAM 104保持鎖定。在成功驗證其合法性之後,可信引導程式130(或其他安全軟體)可以經由獲取儲存在SoC 102上的熔斷器132中的安全密碼交換資料來進行解鎖程序。基於儲存在熔斷器132中的原始安全資料(或使用私密金鑰及/或公開金鑰、加密演算法等從其計算的資料),可以向RAM控制器120提供解鎖密碼並經由匯流排126將其發送到NVRAM 104。
如圖2所示,RAM控制器120包括介面控制器212和實體層214。介面控制器212將去往/來自SoC 102的客戶端(例如,CPU 110、GPU、DSP等)的資料重新格式化到與NVRAM設備104相容的封包及/或匯流排協定。重新格式化可以包括資料分段/重組、實體位址重新排列、鏈路錯誤處理,以及可以由實體層214經由匯流排126驅動/接收的控制和位址信號的產生。實體層214將SoC的外部電介面和高速匯流排126的實體連接提供給NVRAM 104中的對應實體層206。NVRAM 104中的實體層206電耦合至閘機制204。回應於從SoC 102接收到解鎖密碼,NVRAM 104將所接收的解鎖密碼與在熔斷器210中提供的通過閘值進行比較。熔斷器210可以利用NVRAM設備中的現有熔斷器功能。例如,可以使用通常在記憶體設備中使用的熔斷器功能來實現熔斷器210,以修復失敗的行替換(例如,用於儲存通過閘值的額外行)。在實施例中,熔斷器210可以包括可程式設計記憶體單元。然而,應該理解,通過閘值可以硬編碼在NVRAM 104中。在實施例中,可以使用例如邏輯電路、狀態機、唯讀記憶體、金屬跡線等將通過閘值硬編碼到記憶體設備中。若從SoC 102接收的解鎖密碼與通過閘值匹配時,閘機制204可以從「鎖定狀態」(其中禁止讀/寫操作)改變為「解鎖狀態」,其中SoC 102能夠對NV單元陣列202執行讀/寫操作。若從SoC 102接收的解鎖密碼與通過閘值不匹配,則閘機制204可以保持在「鎖定狀態」,其中讀/寫操作被禁用。若重複的解鎖嘗試失敗,則當自毀計數器超過閾值時,閘機制204可以永久地禁用NVRAM 104。
圖3圖示用於經由閘機制204、SoC熔斷器210和NVRAM熔斷器132向NVRAM 104提供安全存取的方法300的實施例。在方塊302處,系統100啟動,並且可信引導程式130開始在CPU 102上執行。可信引導程式130啟動儲存在SoC 102上的熔斷器210中的解鎖密碼的獲取。在方塊304處,解鎖密碼由RAM控制器120經由匯流排126發送到NVRAM 104。在一個實施例中,可以未加密或加密地發送解鎖密碼。可以在SoC 102內執行加密。它可以由在CPU 110上執行的軟體以程式設計方式加密,或者可以在專用加密硬體(未圖示)中加密。在方塊306處,NVRAM 104在實體層206處接收解鎖密碼。若解鎖密碼由SoC 102加密,則必須首先由硬體閘邏輯單元404解密。在方塊308處,NVRAM將未加密的解鎖密碼與儲存在熔斷器210中的通過閘值進行比較。在判決方塊310處,若解鎖密碼與通過閘值匹配,則通過閘機制204被解鎖。若解鎖密碼與通過閘值不匹配,則通過閘機制204可以保持在鎖定狀態以防止對NV單元陣列202的讀/寫存取。
應當理解,NVRAM 104中的閘機制204可以以各種方式實現,以適應例如成本、複雜性、效能、安全級別等。圖4圖示閘機制204的示例性實現方式的電路圖,該閘機制204被配置為提供具有成本效益、可批量生產的NVRAM裝置。在該實施例中,閘機制204包括一或多個通過閘402和控制邏輯單元404。本發明所屬領域中具有通常知識者將理解,在不使用更複雜的微控制器的情況下,利用相對簡單的電路和具有最小記憶體裸片面積的邏輯單元來實現閘機制204的設計優點。
如圖4中所示,通過閘402可以包括一或多個串聯開關,其將實體層206連接/斷開到介面控制器208,介面控制器208提供對NV單元陣列202的存取。如前述,實體層206提供與高速匯流排126相關聯的連接。連接126d與資料信號相對應,連接126c與位址/控制信號相對應。實體層206經由連接412d將與連接126d相關聯的資料信號提供給通過閘402和控制邏輯單元404。實體層206經由連接412c將與連接126d相關聯的位址/控制信號提供給通過閘402和控制邏輯單元404。
如圖4中進一步所示,每個通過閘402包括第一接觸點和第二接觸點。第一接觸點電耦合至對應的資料連接412d和位址/控制連接412c,並且閘或開關的另一側上的第二接觸點電耦合至對應的閘控資料連接414d和閘控位址/控制連接414c。控制邏輯單元404經由連接416電耦合至每個通過閘402,經由連接416可以提供閘控制信號以打開和關閉各個開關。在這一態樣,「鎖定狀態」與以下操作狀態相對應:在該操作狀態下,打開通過閘402以防止存取閘控連接414d和414c。
通過閘402功能的其他實施例可以包括:具有由閘控制416控制的輸出使能的雙向收發機、可以在閘控制416的控制下經由電源軌供電/斷電的雙向收發機,或者可以在閘控制416的控制下具有輸出使能或電源軌的雙向鎖存器/暫存器。所採用的電路可以有目的地設計用於雙向訊號傳遞,或者可以包括兩個單獨的電路,用於處理與寫和讀資料傳輸量相對應的每個(正向和反向)方向。
如前述,當設備斷電時,控制邏輯單元404可以從功率管理器控制器108接收相應的命令,並且作為回應,經由連接416向通過閘402發送「鎖定」閘控制信號。應該明白的是,閘控制信號可以包括單獨的信號(例如,用於一個通過閘的一個閘控制線)或單個信號(例如,用於所有通過閘的一個閘控制)。在其他實施例中,通過閘402可以由電源開關代替,該電源開關將NV單元陣列202的介面控制器208上電或斷電。回應於「鎖定」閘控制信號,打開通過閘402以防止存取閘控連接414d和414c。以這種方式,當設備在引導時,閘機制204處於「鎖定狀態」,其中通過閘402處於打開位置,以最初防止讀/寫操作存取NV單元陣列202。
當系統100啟動並且可信引導程式130開始在CPU 102上執行時,可以獲取儲存在SoC 102上的熔斷器132中的解鎖密碼並將其提供給實體層206,如前述。控制邏輯單元404經由例如熔斷器資料匯流排418和熔斷器控制匯流排420獲取在熔斷器210中規定的通過閘值。如圖4中所示,熔斷器210可包括控制器422以促進與控制邏輯單元404的通訊。控制邏輯單元404將通過閘值與從SoC 102接收的解鎖密碼進行比較。若解鎖密碼與通過閘值相匹配,則控制邏輯404經由連接416向通過閘402發送「解鎖」閘控制信號。回應於「解鎖」閘控制信號,通過閘402被關閉,從而將資料連接412d和位址/控制連接412c分別連接到閘控連接414d和閘控位址/控制連接414c。在該「解鎖狀態」中,閘機制204經由資料匯流排424和控制匯流排426提供對NV單元陣列210的不受限制的存取。
如前述,SoC 102和閘控NVRAM 104之間的密碼交換可以以各種方式實現。在一個實施例中,可以經由熔斷器132和210來實現簡單的未加密密碼交換。在其他實施例中,安全密碼交換可以採用任何期望的加密演算法來提高安全級別。如圖4所示,當安全密碼交換採用加密時,控制邏輯單元404可以包括用於支援解碼功能(方塊406)、雜湊功能(方塊408)和檢查功能(方塊410)的邏輯模組。
解碼邏輯單元406經由匯流排412c來接收控制和位址,並經由匯流排412d接收資料。在一個實施例中,可以實現預先決定的及/或標準化的協定,用於控制閘邏輯區塊404,交換諸如金鑰和密碼的資訊,或者諸如熔斷器210的部件的初始化和程式設計。例如,在控制和位址匯流排412d上可能存在特定命令,其在方塊406中被解碼,隨後可以發起特定命令功能。在其他實施例中,可以存在與每種類型的功能(例如,對閘邏輯單元進行重定、對熔斷器資料進行程式設計(多個位置)、對私密金鑰進行程式設計、對密碼進行程式設計、對自毀失敗嘗試進行程式設計、啟用篡改機制、輸入金鑰模數p、輸入金鑰基數g、檢索雜湊、解鎖未加密密碼、解鎖加密密碼等)相關聯的唯一命令和資料。
解碼邏輯單元406可以負責回應於輸入控制、位址和資料來解析和觸發適當的操作。如圖4中進一步所示,控制和位址412c以及資料412d亦到達通過閘402,並且若解鎖,則傳播到介面控制器208,在那裡它將執行類似的預先決定的及/或標準化任務模式操作,例如NV單元陣列讀取、NV單元陣列寫入、NV單元陣列頁面選擇、NV單元陣列修復、NVRAM設備配置、PHY高級配置以及與防篡改功能無關的任何其他功能。
雜湊功能408執行用於秘密金鑰交換程序的模運算操作,並且可以包括查閱資料表以及亦包括模數加法順序和平行計算邏輯。檢查功能410包括控制邏輯單元,其用於將從SoC 102發送的密碼與先前程式設計到本端NVRAM熔斷器210中的本機複本進行比較。解密邏輯單元(未圖示)可以包括在檢查功能410內,因為SoC 102可以選擇使用加密來發送密碼以防止窺探者在其經由外部匯流排126行進時查看密碼。若SoC 102已經加密了密碼,則解密邏輯將首先使用在安全交換程序(如Diffie-Hellman方法)期間匯出的共享秘密金鑰來解密密碼。
圖5圖示使用SoC 102和NVRAM 104之間的Diffie-Hillman密碼交換來解鎖閘機制204的示例性實施例。表500中的每行表示密碼交換方法中的相應步驟。列530中列出了每個步驟的操作。列532列出了SoC 102「已知」的資訊。列534列出了SoC 102「未知」的信息。列536列出了NVRAM 104「已知」的資訊。列538列出了NVRAM 104「未知」的信息。列540列出了可能易受惡意「窺探者」擷取的資訊。列542列出了不易被惡意「窺探者」擷取的資訊,例示了經由Diffie-Hillman密碼交換提供的安全性。
在步驟502和504處,SoC 102經由NVRAM匯流排126發送可變公開金鑰「g」和「p」。在步驟506處,SoC 102和NVRAM 104取回固定的私密金鑰,其可以分別被程式設計到熔斷器132和210中。在步驟508、510和512處,私密金鑰和公開金鑰在本端產生雜湊,該雜湊被交換。SoC 102將其雜湊「A」發送到NVRAM 104,並且亦讀回NVRAM的雜湊「B」。在步驟514和516處,使用雜湊、公開金鑰和它們各自的私密金鑰,SoC 102和NVRAM 104分別計算秘密共享金鑰。沒有任何對「a」或「b」的存取權限,窺探者無法計算「s」。在步驟518處,使用該秘密金鑰「s」,SoC 102加密並發送先前儲存在NVRAM熔斷器210中的密碼。在步驟520和522處,NVRAM 104接收密碼訊息,用金鑰「s」對其進行解密,並且若它與先前儲存的密碼匹配,則以上述方式打開閘機制204。
如前述,NVRAM 104中的閘機制204可以以各種替代方式配置以適應例如成本、複雜度、效能、安全級別等。在一個實施例中,可以對閘機制204進行如下配置以提供具有成本效益的設計,同時提供實際合理水平的安全保護。控制邏輯單元402可以包括自毀計數器,其被配置為在預先決定的數量的不成功密碼交換之後永久鎖定閘機制204。應當理解,自毀計數器提供額外的安全級別以抵抗暴力攻擊。可以簡化熔斷器132和210的結構和複雜度,以允許公開金鑰和私密金鑰的有限數量的允許值。在這態樣,可以使用例如查閱資料表、線性回饋移位暫存器或並行邏輯以直接的方式來實現上述雜湊函數(方塊408)。在具有有限的公開金鑰/私密金鑰值的實施例中,暴力攻擊者可以獲得秘密共享金鑰並嘗試密碼解鎖。但是,在不知道密碼的情況下,暴力攻擊者在自毀計數器機制永久禁用設備之前獲得存取權的可能性將極低。此外,密碼值可以足夠長(例如,任何256位元值),同時使用相對簡單的加密/解密實現(例如,流密碼、線性回饋移位暫存器、區塊編碼器、其他模數/異或邏輯等)。本發明所屬領域中具有通常知識者將理解,經由保持每個安全特徵的複雜度相對較低,NVRAM 104可以以具有合理水平的抵禦篡改/窺探的成本有效設計來實現。應當理解,在簡化的配置中,圖3、圖4和圖5中所示的系統和方法可以以降低水平的複雜度和安全保護來實現,例如,經由NVRAM 104中的密碼的非可程式設計硬編碼,其中SoC 102在不使用加密的情況下發送硬編碼密碼。
圖6是示出用於對被製造為併入SoC 102和NVRAM 104的計算設備進行初始化的方法600的實施例的流程圖。在方塊602處,NVRAM 104可以被配置為初始狀態,其中經由對閘機制204進行解鎖並設置私密金鑰=0來最初禁用通過閘特徵。在方塊604處,NVRAM 104可以經由提供私密金鑰= b、設置自毀計數器閾值(MAX_TRY_THRESHOLD)= n,密碼=「密碼」,以及啟用通過閘特徵來與SoC 102配對。在方塊606處,在設備啟動時,設備處於預設狀態,其中閘機制204被鎖定。可以執行金鑰交換序列,並且SoC 102可以從公開金鑰集合中隨機選擇p和g的。在判決方塊608處,NVRAM 104發起密碼認證。若密碼被認證,則在方塊616處,對閘機制204解鎖以啟用對NV單元陣列202的讀/寫存取。當發起使設備斷電時、重定或進入休眠模式時(方塊618),將閘機制204鎖定(方塊620),處理流程返回方塊606。然而,若密碼未被認證(判決方塊608),則方法600可以決定(判決方塊610)自毀失敗嘗試計數器是否已超過閾值(MAX_TRY_THRESHOLD)。若超過閾值,則啟動自毀功能以永久禁用NVRAM 104。若未超過閾值,則閘機制204可以保持在「鎖定狀態」,其中處理流程返回到方塊606並且失敗嘗試計數器遞增。在成功解鎖的方塊616處,可以重置失敗嘗試計數器。亦應當理解,在方塊604處,NVRAM 104可以與SoC 102配對而不啟用通過閘特徵。以這種方式,NVRAM 1064可以在具有SoC的傳統模式中使用,該SoC未被配置用於支援防篡改操作。例如,在一個實施例中,SoC 102可以不包括熔斷器132;或者,SoC 102可以不支援及閘機制404通訊並控制NVRAM閘邏輯單元404的額外命令。
如同上面所提到的,系統100可以納入任何期望的計算系統中。圖7圖示納入示例性可攜式計算設備(PCD)700的系統100。容易理解的是,系統100的某些部件可以包括在SoC 322上(例如,熔斷器132、RAM控制器120、可信引導程式130),而其他部件(例如,NVRAM 104)可以是耦合至SoC 322的外部部件。SoC 322可以包括多核CPU 702。多核CPU 702可以包括:第零核心710、第一核心712和第N核心714。這些核心中的一個核心可以包括例如,圖形處理單元(GPU),而其他核心中的一或多個核心包括CPU。
顯示器控制器328和觸控式螢幕控制器330可以耦合至CPU 702。進而,在片上系統322外部的觸控式螢幕顯示器706可以耦合至顯示器控制器328和觸控式螢幕控制器330。
圖7亦圖示視訊轉碼器334(例如,相位交替行(PAL)編碼器、順序儲存彩電制式(SECAM)編碼器或國家電視系統委員會(NTSC)編碼器)耦合至多核CPU 702。另外,視訊放大器336耦合至視訊轉碼器334和觸控式螢幕顯示器706。視訊連接埠338亦耦合至視訊放大器336。如圖7中所示,通用序列匯流排(USB)控制器340耦合至多核CPU 702。此外,USB埠342耦合至USB控制器340。
此外,如圖7中所示,數位攝像頭348可以耦合至多核CPU 702。在示例性態樣中,數位攝像頭348是電荷耦合設備(CCD)攝像頭或互補金屬氧化物半導體(CMOS)攝像頭。
如圖7中進一步所示,身歷聲音訊編碼器-解碼器(CODEC)350可以耦合至多核CPU 702。此外,音訊放大器352可以耦合至身歷聲音訊轉碼器350。在示例性態樣中,第一身歷聲揚聲器354和第二身歷聲揚聲器356耦合至到音訊放大器352。圖7圖示麥克風放大器358亦可以耦合至身歷聲音訊轉碼器350。另外,麥克風360亦可以耦合至麥克風放大器358。在特定態樣中,頻率調制(FM)無線電調諧器362可以耦合至身歷聲音訊轉碼器350。此外,FM天線364耦合至FM無線電調諧器362。此外,身歷聲耳機366可以耦合至身歷聲音訊轉碼器350。
圖7亦示出射頻(RF)收發機368可以耦合至多核CPU 702。RF開關370可以耦合至RF收發機368和RF天線372。鍵盤204可以耦合至多核CPU 702。此外,具有麥克風的單聲道耳機376可以耦合至多核CPU 702。此外,振動器設備378可以耦合至多核CPU 702。
圖7亦圖示電源380可以耦合至片上系統322。在特定態樣中,電源380是向需要電力的PCD 600的各個部件供電的直流(DC)電源。另外,在特定態樣中,電源是可再充電的DC電池或DC電源,其從去往連接到AC電源的DC變壓器的交流電流(AC)得到。
圖7亦指示PCD 700亦可以包括可用於存取資料網路(例如,區域網路、個人區域網路或任何其他網路)的網卡388。網卡388可以是藍芽網卡、WiFi網卡、個人區域網路(PAN)卡、個人區域網路超低功率技術(PeANUT)網卡、電視/有線/衛星調諧器、或本發明所屬領域中已知的任何其他網卡。另外,網卡388可併入晶片中,亦即,網卡388可以是晶片中的完整解決方案,並且可以不是單獨的網卡388。
如圖7中所圖示的,觸控式螢幕顯示器606、視訊連接埠338、USB埠342、攝像頭348、第一身歷聲揚聲器354、第二身歷聲揚聲器356、麥克風360、FM天線364、身歷聲耳機366、RF開關370、RF天線372、按鍵374、單聲道耳機376、振動器378和電源380可以在片上系統322外部。
圖8圖示可操作以在「正常」模式或「功率節省」模式下啟動的系統800的方塊圖。SoC 102包含多個子系統和邏輯區塊,其實現可攜式計算設備內的功能。中央處理單元(「CPU」)110可以經由匯流排116電子式耦合至SoC 102內的各種部件。本發明所屬領域中具有通常知識者將理解,匯流排116可以是邏輯結構、實體結構、片上網路(「NoC」)或任何數量的等效通訊通道。靜態隨機存取記憶體(「SRAM」)112可以經由匯流排116電子式耦合至SoC 102內的各種部件。SRAM 112是一種使用雙穩態鎖存電路的半導體記憶體,通常用於CPU相關的快取記憶體操作。唯讀記憶體(「ROM」)114可以經由匯流排116電子式耦合至SoC 102內的各種部件。ROM 114可以包含CPU 110可存取的資料,包括與引導相關的代碼及/或指令。在一個態樣中,可信引導程式130可以常駐在ROM 114內。SoC 102可以在引導操作期間利用可信引導程式130來為包含SoC 102的可攜式計算設備加電。當可攜式計算設備處於斷電狀態時,可能需要「冷」啟動。在這種「冷」啟動期間,揮發性記憶體(例如,RAM 105)可能是未知的並且包含不可靠的資料;因此,可信引導程式130可以儲存在ROM 114中,其中可信引導程式130可以以基本上不可改變的狀態儲存。儲存在儲存記憶體106中的次級引導程式106a可以在操作之前首先由可信引導程式130進行認證。可能存在多個次級不可信引導程式(未圖示)。這些次級不可信引導程式可以從儲存記憶體106複製到SRAM 112、RAM 105或NVRAM 104中,以在成功驗證及/或解密之後能夠進行程式設計執行。可以在整個引導程序期間順序地、同時地或者組合地驗證和執行次級不可信引導程式。解密可以調用內聯密碼引擎(「ICE」)160。在睡眠期間,揮發性記憶體是已知的並且仍然是可信的,因此比「冷」啟動需要的操作少得多。
認證引擎169可以經由匯流排116電子耦合,以提供與可攜式計算設備的引導操作有關的資料及/或指令的驗證。在一個態樣中,認證引擎169可以用次級不可信額外引導程式106A的認證來協助儲存在ROM 114中的可信引導程式130。在另一個態樣中,在一系列順序引導程式中,認證引擎169可以用第二次級不可信引導程式(未圖示)的認證來協助第一次級引導程式106A。在另一個態樣中,認證引擎169可用於解鎖閘機制172並經由秘密頻道提供對NVRAM 104的存取。
數位訊號處理器(「DSP」)167可以經由匯流排116電子式耦合至SoC 102內的各種部件。DSP 167可以用於量測、濾波及/或壓縮連續的真實世界類比信號。DSP 167內配置的許多演算法可用於在CPU 110上執行。然而,如本發明所屬領域中具有通常知識者將理解的,DSP 167可以對於某些操作具有更好的功率效率和更高的效能。因此,本發明所屬領域中具有通常知識者可以將操作的第一集合分配給CPU 110,並且將操作的第二集合分配給DSP 167,使得可以利用這兩個處理單元的優點。本發明所屬領域中具有通常知識者可以理解,操作的第一集合和操作的第二集合可以是共同延伸的及/或相關的。
金鑰產生引擎165可以經由匯流排116電子耦合至SoC 102內的各種部件。在一個態樣中,金鑰產生引擎165可以被配置為保護和解除由內聯密碼引擎(「ICE」)160控制的資料。在一個態樣中,金鑰產生引擎165可以是具有額外安全措施以防止駭客入侵、篡改、窺探等的硬體塊。在一個態樣中,ICE 160可以用於對包括儲存在SoC 102內的次級引導程式106A的軟體映射進行加密或解密。在一個態樣中,ICE 160可以在單獨的硬體塊中實現,而不是儲存在儲存媒體中。
熔斷器132可以經由匯流排116電子式耦合至SoC 102內的各種部件。熔斷器132可以是可程式設計唯讀記憶體(「PROM」)、現場可程式設計唯讀記憶體(「FPROM」)、一次性可程式設計非揮發性記憶體(「OTP NVM」)等。在一個態樣中,金鑰產生引擎165可以存取來自ROM 114及/或熔斷器132的資料,以便完成ICE 160的操作。
功率管理介面118可以經由匯流排124連接到功率管理控制器108。同樣地,功率管理介面118可以經由匯流排118電子式耦合至SoC 102內的各種部件。在功率管理控制器108內,計時器146可用於追蹤異常、協助電源控制及/或協助引導操作。功率管理控制器108可以具有標誌位元148,其可以用於在SoC 102啟動時指示SoC 102的期望電源狀態。例如,標誌位元148可以指示「正常」模式或「功率節省」模式。
NVRAM控制器120可以經由匯流排126電耦合至NVRAM 104。同樣地,NVRAM控制器120可以經由匯流排116電耦合至SoC 102內的各種部件。當SoC 102處於操作中或斷電時,NVRAM 104可用於資料和可執行代碼的操作儲存。本發明所屬領域中具有通常知識者將理解,NVRAM 104可以是自旋轉移扭矩磁阻隨機存取記憶體(「STT-MRAM」)、電阻隨機存取記憶體(「RE-RAM」)、三維交叉點(「3D-XPOINT」)等。在一個態樣中,NVRAM 104可以由閘機制172(或圖1、圖2和圖4中的閘204)固定,這防止對儲存在NVRAM 104內的資料及/或代碼的未授權存取。本發明所屬領域中具有通常知識者將理解對閘機制172的需要,因為即使在SoC 102斷電之後NVRAM 104亦可操作以儲存資料。因此,NVRAM 104中包含的資料對於使用者可能具有高價值並且需要額外的安全措施,這對於傳統形式的RAM可能是不必要的,因為傳統形式一旦斷電就往往快速丟失資料(亦即,記憶體是揮發性的)。
RAM控制器121可以經由匯流排125電子耦合至RAM 105。同樣地,RAM控制器121可以經由匯流排116電耦合至SoC 102內的各種部件。當SoC 102處於操作中時,RAM 105可用於資料和可執行代碼的操作儲存。
儲存記憶體控制器122可以經由匯流排128電子式耦合至儲存記憶體106。同樣地,儲存記憶體控制器122可以經由匯流排116電子式耦合至SoC 102的各種部件。當SoC 102處於操作中或斷電時,儲存記憶體106可用於資料的操作儲存、可執行代碼的非操作儲存。如先前所介紹的,ICE 160可以常駐在儲存記憶體控制器122內。在一個態樣中,ICE 160可以是硬體實現的邏輯片段並且具有適當的安全措施以防止篡改、駭客攻擊、窺探等。
外部應用處理器(「AP」)140可以經由匯流排142電子式耦合至SoC 102內的I/O控制器199,從而允許AP 140和SoC 102之間的通訊。此外,AP 140和SoC 102可以選擇性地共享資源。AP 140和SoC 102之間的通訊可以包括控制信號、狀態訊息及/或其他資料的雙向傳輸。SoC 102和AP 140之間的共享資源可以包括任何內部狀態或功能特徵,例如,永久唯讀記憶體、揮發性記憶體、非揮發性記憶體、處理器、加速器、引擎等。在一個態樣中,外部AP 140可以是與SoC 102類似的又一個SoC。在另一個態樣中,外部AP 140可以是被配置用於補充SoC 102的功能的專用任務的主機的處理器。本發明所屬領域中具有通常知識者將理解,現代可攜式計算設備具有無數的SoC、處理器、記憶體等。僅示出外部AP 140以強調另一個SoC及/或處理器可能需要與SoC 102互動以實現可攜式計算設備的期望功能(例如,經由蜂巢網路通訊、擷取視訊/圖像、播放三維遊戲等)。例如,外部AP 140可以是圖形處理單元(「GPU」),其被配置為向SoC 102提供圖形處理輔助。在另一個實例中,外部AP 140可以是蜂巢通訊SoC,其被配置為經由SoC 102實現可攜式通訊設備的無線通訊。
圖9是示出用於對被製造為併入SoC 102和NVRAM 104的可攜式計算設備進行初始化的程序900的態樣的流程圖。程序900開始於START方塊並前進到方塊902。在方塊902處,NVRAM 104可以被配置為初始狀態,其中經由對閘機制172進行解鎖並設置私密金鑰=0來最初禁用通過閘特徵。在方塊904處,NVRAM 104可以經由提供私密金鑰= b、設置自毀計數器閾值(MAX_TRY_THRESHOLD)= n,密碼=「密碼」,以及啟用通過閘特徵來與SoC 102配對。在方塊906處,在設備啟動時,設備處於預設狀態,其中閘機制172被鎖定。可以執行金鑰交換序列,並且SoC 102可以從公開金鑰集合中隨機選擇p和g。在判決方塊908處,NVRAM 104發起密碼認證。若密碼被認證,則在方塊916處,對閘機制172解鎖以啟用對NVRAM 104的讀/寫存取。當發起使設備斷電時、重定或進入休眠模式時(方塊918),閘機制172被鎖定(方塊920),處理流程返回方塊906。然而,若密碼未被認證(判決方塊908),則程序900可以在判決方塊910處決定自毀失敗嘗試計數器是否已超過閾值(MAX_TRY_THRESHOLD)。在方塊914處,可以啟動自毀功能以便永久地禁用NVRAM 104,此時程序900前進到END方塊並終止。
若未超過閾值,則閘機制172可以保持在「鎖定狀態」,其中程序900經由方塊912返回到方塊906,其中調整失敗嘗試計數器。在成功解鎖的方塊916處,可以重置失敗嘗試計數器。亦應當理解,在方塊904處,NVRAM 104可以與SoC 102配對而不啟用通過閘特徵。以這種方式,NVRAM 104可以在具有SoC的「傳統」模式中使用,該SoC未被配置用於支援防篡改操作。例如,在一個態樣中,SoC 102可以不包括熔斷器132;或者,SoC 102可以不支援及閘機制172通訊並控制閘機制172的額外命令。
圖10圖示用於經由閘機制172、熔斷器132和NVRAM熔斷器(未圖示)向NVRAM 104提供安全存取的程序1000。程序1000開始於START方塊並前進到方塊1002。在方塊1002處,系統100可以啟動,並且可信引導程式130可以開始在CPU 102上執行。可信引導程式130可以對儲存在SoC 102上的熔斷器132中的解鎖密碼的獲取進行初始化。在方塊1004處,解鎖密碼可以由RAM控制器120經由匯流排126發送到NVRAM 104。在一個態樣中,可以未加密或加密地發送解鎖密碼。在一個態樣中,可以在SoC 102內執行加密。在另一個態樣中,解鎖密碼可以由在CPU 110上執行的軟體以程式設計方式加密。在方塊1006處,NVRAM 104接收解鎖密碼。在方塊1008處,NVRAM將未加密的解鎖密碼與儲存在熔斷器132中的值進行比較。在判決方塊1010處,若解鎖密碼與熔斷器132中的值相匹配,則可以解鎖閘機制172,此時,程序1000前進到方塊1012,其中NVRAM 104被解鎖。在方塊1012中的功能完成之後,程序1000前進到END方塊並終止。
返回到判決方塊1010,程序1000可以決定密碼與熔斷器132中的值不匹配。若解鎖密碼與該值不匹配,則閘機制172可以保持在鎖定狀態以防止對NVRAM 104的讀/寫存取;隨後,程序1000可以進入END方塊並隨後終止。
應當理解,可以以各種方式實現NVRAM 104中的閘機制172以適應下列各項中的任意一項:成本、複雜度、效能、安全級別等。本發明所屬領域中具有通常知識者將理解,在不使用更複雜的微控制器的情況下,使用相對簡單的電路和具有最小記憶體裸片面積的邏輯單元來實現閘機制172的設計優點。然而,本發明所屬領域中具有通常知識者可以達到實現本文中描述的相同功能的複雜實現。
圖11A是圖示儲存記憶體資料1105的邏輯關係的方塊圖。儲存記憶體1105可以包含將被載入到RAM 105及/或NVRAM 104中並在其上執行的程式的非揮發性映射。儲存記憶體資料1105包括映射A 1107。映射A 1107可以與DSP 167相關聯。在一個態樣中,映射A 1107可以包括代碼部分1117、唯讀(「RO」)部分1120和讀寫(「RW」)部分1122。代碼部分1117可以被配置為執行DSP 167的操作。例如,DSP 167可操作用於:管理與SoC 102支援的特定功能相關的低功率處理操作(例如,類比到數位蜂巢通訊)。RO部分1120可以包含代碼部分1117對其進行操作的常數、預設值、查閱資料表及/或額外靜態資料。代碼部分1117和DSP 167可以利用RW部分1122來執行需要對RAM 105、NVRAM 104及/或儲存記憶體106進行讀和寫操作的操作。在一個態樣中,DSP 167可以利用代碼部分1117來將資料寫入RW部分1122。
儲存記憶體資料1105亦包括映射B 1110。在一個態樣中,映射B 1110可以與CPU 110相關聯。將映射A 1107與映射B1110進行比較,映射A 1107可以與DSP 167相關聯,而映射B 1110可以與CPU 110相關聯。映射B 1110可以與映射A 1107稍微不同地配置,因為映射B 1110具有代碼#1部分1130和代碼部分#2 1140。在一個態樣中,代碼#1部分1130可以被配置為在RAM 105中執行,而代碼#2部分1140可以被配置為在NVRAM 104內執行。代碼#1部分1130可以與RO#1部分1132和RW#1部分1134相關聯。RO#1部分1132可以包含代碼#1部分1130在對其進行操作的代碼及/或資料。代碼#1部分1130和CPU 110可以利用RW#1部分1134來執行需要對儲存記憶體106進行讀和寫操作的操作。
代碼#2部分1140可以被配置為在NVRAM 104內操作。RO#2部分1142可以與映射B 1110相關聯。RO#2部分1142可以被配置為由代碼#2部分1140結合CPU 110來操作。此外,RO#2部分1140可以具體配置為常駐在NVRAM 104中。在一個態樣中,RO#2部分1142可以儲存當SoC 102在操作中時不需要或不應該被改變的安全資料。兩個讀寫部分1144、1146被配置為兩個單獨的部分:RW#2-a部分1144和RW#2-b部分1146。在下文進一步詳細描述RW部分1144、1146。本發明所屬領域中具有通常知識者將理解,RW部分1144、1146可以與本文所述的其他RW部分/記憶體類似地使用。然而,如下所述,具有複數個RW部分1144、1146是有利的。
本發明所屬領域中具有通常知識者將理解,具有獨立代碼部分(例如,代碼#1部分1130和代碼#2部分1140)使得能夠動態處理涉及潛在可分離功能的任務。作為說明性實例,代碼#1部分1130可以與音訊編碼器相對應,而代碼#2部分1140可以與音訊解碼器相對應。若使用者僅希望聽音樂,則不需要示例性代碼#1部分1130(包含示例性音訊編碼器)來重播音訊;因此,代碼#2部分1140(包含示例性音訊解碼器)將被載入到記憶體(例如,RAM 105、NVRAM 104等)中。本發明所屬領域中具有通常知識者亦將理解:超出本說明書範疇的複雜用例但與提出的系統100完全一致。
檔案系統1112可以常駐在儲存記憶體106上。檔案系統1112可以是可操作以儲存使用者資料(例如,照片、電子郵件、應用等)的傳統檔案系統。例如,SoC 102可以存取檔案系統1112以實現使用者發起的操作(例如,在體育賽事期間擷取和儲存數位照片)。在一個態樣中,檔案系統1112可以與如圖所示的映射1107、1110分離。在另一個態樣中,檔案系統1112可以封裝和包含映射1107、1110。
圖11b是圖示RAM資料1106的邏輯關係的方塊圖。RAM資料1106可以常駐在RAM 105內,RAM 105在一態樣中可以是DRAM半導體。在一個態樣中,在RAM資料1106被載入到RAM 105之前,可能需要儲存RAM資料1106並隨後從儲存記憶體106中取回RAM資料1106。本發明所屬領域中具有通常知識者將理解,RAM資料1106可以小於RAM 105的容量,使得基本上整個映射A 1107A和映射B 1110A二者都可以被載入到RAM 105中。映射A 1107A包括代碼部分1117A、RO部分1120A、RW部分1122A和堆疊1125。在一個態樣中,映射A部分1107A可以基本上與映射A部分1107類似。然而,在一些態樣中,映射A部分1107A包括映射A部分1107的子集。類似地,代碼部分1117A、RO部分1120A和RW部分1122A可以分別基本上與代碼部分1117、RO部分1120和RW部分1122類似,因為RAM 105可以被配置為儲存整個映射A 1107A。提供堆疊1125是為了完整描述,並且示出映射A 1107A正在RAM 105中執行。
映射B部分1110A可以包括代碼#1部分1130、RO#1部分1132和RW#1部分1134,它們都與儲存記憶體資料1105中的它們各自的部分基本類似。本發明所屬領域中具有通常知識者將理解,映射B 1110A可以從儲存記憶體106載入到RAM 105中。
一系列RAM緩衝器1150可以常駐在RAM資料1106內。RAM緩衝器1150可以為載入到RAM 105中的各個代碼部分1117A、1130提供靜態讀取或讀寫記憶體。
圖11c是圖示NVRAM資料1107的邏輯關係的方塊圖。在一個態樣中,NVRAM資料1107可以被配置為常駐在NVRAM 104內。然而,在NVRAM資料1107被載入到NVRAM 105中之前,可能需要從儲存記憶體106中取回NVRAM資料1107。NVRAM資料1107包括映射A部分1107B。映射A部分1107B可以與儲存在儲存記憶體106中的映射A部分1107基本相似。同樣,映射A部分1107B可以與儲存在RAM 105中的映射A部分1107A基本相似。堆疊1125可以存在於NVRAM資料1107內,並且基本上類似於堆疊1125如何在RAM資料1106中操作。給定當前NVRAM實現的大小限制,映射A部分1107B可以是儲存在儲存記憶體106中的映射A 1107的整體的子集。例如,SoC 102可以在「功率節省」模式中操作並且僅需要DSP 167提供的功能的子集,因為「功率節省」模式部分經由僅利用映射A 1107的必要部分來節省功率以完成引導操作。因此,映射A部分1107B可以具有代碼部分1117B,RO部分1120B和RW部分1122B,所有這些可以僅包含儲存在映射A部分1107中作為相應地儲存在記憶體106中的對應部分中可用的全部功能的子集。
映射B部分1110B可以包括代碼#2部分1140、RO#2部分1142、RW#2-A部分1144、RW#2-B 1146和堆疊1136。本發明所屬領域中具有通常知識者將理解,映射B部分1110B可以與儲存在儲存記憶體106中的映射B部分1110基本類似。同樣,考慮到NVRAM 104的大小限制,可以載入整個映射B部分1110的一些部分作為映射B部分1110B。例如,SoC 102可以在「功率節省」模式中操作並且僅需要CPU 110提供的功能的子集,因為「功率節省」模式部分經由僅利用映射B 1110的必要部分來節省功率以完成引導操作。
一系列操作控制標誌位元1155可以常駐在NVRAM資料1107內。在一個態樣中,操作控制標誌位元1155可以用於向SoC 102指示是以「正常」模式還是以「省電」模式啟動。本發明所屬領域中具有通常知識者將理解,操作控制標誌位元1155可以儲存在記憶體/儲存的任何可操作部分中以完成預期的功能。
針對各個映射1107、1107A、1107B、1110、1110A、1110B,本發明所屬領域中具有通常知識者將理解,可以靜態地或動態地構建該等映射中的任何一個映射以適應其操作環境及/或相關聯的記憶體。例如,映射B 1110可以內置在RAM 105的一種配置(映射B 1110A)中。相比之下,映射B 1110可以內置在NVRAM 104的另一種配置(映射B 1110B)中。可以為特定用例建立更少或更多的映射,所有這些皆超出了本說明書的範疇。例如,可以受益於NVRAM 104的非揮發性就地執行(「XIP」)行為的軟體映射可以選擇利用這些益處。由於NVRAM 104可能僅是可攜式計算設備上可用的總記憶體的一部分,這些映射中許多映射的目標可以是常駐在RAM 105中。此外,與RAM 105相比,容量較小的NVRAM 104可以以降低的效能水平(例如,使用頻寬頻率)操作,從而當RAM 105處於睡眠模式、功率塌陷等時僅在從NVRAM 104操作時節省功率。
圖12是圖示以「正常模式」啟動SoC 102的程序1200的流程圖。在START方塊處開始,程序1200前進到方塊1205,其中SoC 102對可信引導程式130進行初始化。在一個態樣中,可以從ROM 114存取可信任引導程式130,從而使得SoC 102可以對適當的子系統進行初始化。程序1200前進到判決方塊1207,其中決定可信引導程式130是否被加密。若可信引導程式130被加密,則程序1200沿著YES分支前進到方塊1208。在方塊1208處,可信引導程式130可以被加密並要求由ICE 160解密。例如,CPU 110可以存取儲存在熔斷器132中的資訊以利用金鑰產生引擎165,使得可信引導程式130可以由ICE 160解密。本發明所屬領域中具有通常知識者將理解,可以利用用於安全啟動SoC 102的許多替代機制,並且該等替代機制將超出本具體實施方式的範疇。此外,若SoC 102的操作環境允許這樣缺乏安全性,則本發明所屬領域中具有通常知識者可以選擇不對可信引導程式130進行加密。相反,加密/解密程序可能需要比本文中描述的更加穩健;再次,SoC 102的操作環境將影響本發明所屬領域中具有通常知識者以實現適當的安全性。
返回到判決方塊1207,程序1200可以決定可信引導程式130不需要解密,並且程序1200隨後可以前進到方塊1210。
在方塊1210處,程序1200對SoC 102內的各種類型的記憶體進行初始化。在一個態樣中,程序1200對儲存記憶體106、RAM 105、NVRAM 104或者其組合進行初始化。本發明所屬領域中具有通常知識者將理解,其他記憶體和儲存子系統可能需要初始化。隨後,程序1200前進到方塊1215,其中可信安全程式130將映射A和映射B部分1107、1110載入到RAM 105中。在另一個態樣中,可信安全程式130將映射A和映射B部分1107、1110載入到SRAM 112中。本發明所屬領域中具有通常知識者可以根據SoC 102的預期用途將映射A和映射B部分1107、1110分配給不同的記憶體。在一個態樣中,程序1200在已經載入了部分1107、1110之後認證映射A和映射B部分1107、1110。
隨後,程序1200前進到方塊1220,其中SoC 102以「正常」模式操作。在一個態樣中,「正常」模式開始於程序1200將DSP 167重置為其開始狀態。此外,程序1200可以指示CPU 110載入高層作業系統(「HLOS」)。在程序1200中的此時,可攜式計算設備的使用者可以在可攜式計算設備的顯示器(未圖示)上看到一系列引導訊息。同樣地,可攜式計算設備可以播放啟動相關的聲音來指示成功引導。
程序1200前進到判決方塊1225,以決定使SoC 102的後續引導處於「正常」模式還是「功率節省」模式。在判決方塊1225之前,使用者可以使可攜式計算設備在操作中持續短至幾秒或長至幾個月,因此本發明所屬領域中具有通常知識者將理解,當程序1200從方塊1220移動到判決方塊1225時,可以經過了不小的時間量。若程序1200決定SoC 102應該以「正常」模式啟動,則程序1200沿NO分支前進到方塊1228。在方塊1228處,可以在功率管理控制器108中設置標誌位元148。可以在稍後的時間利用標誌位元148來指示後續引導應該處於「正常」模式。
返回到判決方塊1225,程序1200可以決定後續引導將處於「功率節省」模式。隨後,程序1200沿YES分支前進到方塊1227。在方塊1227處,可以設置標誌位元148以指示後續引導應該處於「功率節省」模式。同樣,標誌148可以位於功率管理控制器108中,然而,本發明所屬領域中具有通常知識者將理解,標誌位元148可以儲存在可操作以儲存在初始或後續引導期間可用的動態資料的任何位置。
隨後,程序1200從方塊1227、1228進行到方塊1230,其中SoC 102斷電。SoC 102的斷電操作超出了本說明書的範疇,但是本發明所屬領域中具有通常知識者將理解,可能需要執行無數的「清理」操作以實現SoC 102的成功的後續引導。隨後,程序1200前進到END塊,其中程序1200終止。如本發明所屬領域中具有通常知識者將理解的,在「正常」模式引導下,SoC 102可以重複程序1200若干次以實現任何數量的成功的後續啟動。
圖13圖示了以「功率節省」模式引導SoC 102的程序1300。程序1300開始於START方塊並且隨後前進到方塊1305。在方塊1305處,系統重置並執行儲存在ROM 114中的可信引導程式130。可信引導程式130可能需要進行其他操作以決定SoC 102的穩定性並啟動SoC 102的各種子系統,如圖1和圖8所圖示的。
程序1300前進到方塊1310,其中程序1300接收資訊以決定SoC 102將以「正常」模式還是「功率節省」模式引導。在一個態樣中,功率管理控制器108將標誌位元148發送到SoC 102,使得可信引導程式130可以決定是以「正常」模式還是「功率節省」模式引導。在另一個態樣中,可信引導程式130可以經由匯流排142從外部AP 140接收通用輸入/輸出(「GPIO」)命令。在一個態樣中,GPIO命令可以基本上類似於儲存在功率管理控制器108中的標誌位元148。本發明所屬領域中具有通常知識者將理解,上面的說明性實例僅表示可信引導程式130接收關於以「正常」模式還是「功率節省」模式來進行引導的指示的許多方式中的一些方式。
程序1300前進到判決方塊1315。若已經決定SoC 102以「正常」模式引導,則程序1300沿NO分支前進到調出方塊A,其中程序1300邏輯地前進到方塊A,如圖12中所圖示的,此時程序1200可以前進以操作本文中描述的SoC 102的引導程序。
返回到判決方塊1315,程序1300可以決定SoC 102可以以「功率節省」模式啟動,此時程序1300沿YES分支前進到方塊1320。本發明所屬領域中具有通常知識者將理解,可以使用圖9中概述的程序900及其隨後的上文的描述來預先配置SoC 102。在此類態樣中,NVRAM 104可以配置有可操作以控制對NVRAM 104的存取的閘機制172。程序1300可以利用圖10中概述的程序1000以及其相關聯的描述。一旦閘機制172已經被打開,則可以由SoC 102存取NVRAM 104,並且程序1300前進到方塊1325。
在方塊1325處,程序1300可能需要執行儲存在NVRAM 104中的資料的完整性檢查。在一個態樣中,NVRAM 105可以包含與NVRAM資料1107類似的資料,如圖11c中所圖示並且如前述的。在一個態樣中,NVRAM資料1107可以被預先配置為在NVRAM 104內執行。本發明所屬領域中具有通常知識者將理解,NVRAM 104的儲存容量可以小於位元於SoC 102內的其他記憶體(例如,RAM 105、儲存記憶體106等)。這樣,NVRAM資料1107可以具有RW資料的兩個部分,即RW#2-A部分1144和RW#2-B部分1146。程序1300可以利用RW部分1144、1146來提供將過量資料發送到具有足夠容量(或期望的效能特性)的其他存放裝置的機制。例如,RW#2-A部分1144可以主要用於儲存RW資料。一旦決定RW#2-A部分1144太滿,程序1300就可以開始將位元於RW#2-A部分1144中的資料發送到SoC 102內的其他存放裝置或記憶體。儘管RW#2-A部分1144被認為是不可用的,但程序1300可以利用RW#2-B部分1146來代替RW#2-A部分1144。本發明所屬領域中具有通常知識者將理解,存在許多在各種儲存塊及/或記憶體之間移位資料的機制。這樣,本發明所屬領域中具有通常知識者可以開發一種基本上類似的方法,以確保當SoC 102以「功率節省」模式操作時不超過NVRAM 104的容量。
隨後,程序1300前進到方塊1330,其中SoC 102以「功率節省」模式操作。在「功率節省」模式中,可以將SoC 102內未使用的子系統斷電或置於睡眠模式。在一個態樣中,RW#2-A部分1144可以在容量、延時及/或功率態樣足以執行SoC 102的操作,在這種情況下,RAM控制器121和RAM 105可以斷電或置於睡眠模式。此外,程序1300可以決定儲存記憶體控制器122,並且相關聯的儲存記憶體106可以斷電或置於睡眠模式。本發明所屬領域中具有通常知識者將理解能夠經由利用NVRAM 104來操作SoC 102的固有優點使得SoC 102內的許多子系統可以斷電或進入睡眠狀態。
程序1300前進到判決方塊1335,其中可能遇到操作異常(exception)。若遇到異常,則程序1300可以沿YES分支前進到調出方塊C,其在圖12中以其相關的調出方塊C繼續,此時程序1200可以將SoC 102返回到「正常」操作模式。返回到圖13的判決方塊1335,若在「功率節省」模式下操作時沒有遇到異常,則程序1300可以沿NO分支繼續。
程序1300前進到判決方塊1340,其中可以對是否繼續以「功率節省」模式操作進行決定。若程序1300繼續以「功率節省」模式操作,則程序1300沿YES分支前進到方塊1330,其中「功率節省」模式操作繼續。返回到判決方塊1340,程序1300可以決定「功率節省」模式應該終止。在一個態樣中,「功率節省」模式的終止可以經由使用者的操作(例如,使用者關閉包含SoC 102的可攜式計算設備)。若「功率節省」模式應該終止,則程序1300沿著NO分支前進到調出方塊B(其與圖12的調出方塊B相對應),此時程序1200在邏輯上繼續在其中。
各個態樣(包括但不限於,上文參考圖1至圖13論述的態樣)可以在包括行動設備1400的各種計算設備中的任何一種計算設備中實現,其實例在圖14中示出。因此,行動設備1400可以實現圖12及/或圖13中的程序1200及/或1300。例如,行動設備1400可以包括耦合至觸控式螢幕控制器1404和內部記憶體1402的處理器1401。處理器1401可以是指定用於通用或專用處理任務的一或多個多核積體電路(IC)。在一個態樣中,處理器1401可以與上述SoC 102基本相同。內部記憶體1402可以是揮發性或非揮發性記憶體,並且亦可以是安全的及/或加密的記憶體、或者不安全的及/或未加密的記憶體、或者它們的任意組合。觸控式螢幕控制器1404和處理器1401亦可以耦合至觸控式螢幕面板1412(諸如電阻感測觸控式螢幕、電容感測觸控式螢幕、紅外線感測觸控式螢幕等等)。
行動設備1400可以具有互相耦合及/或耦合至處理器1401的,用於進行發送和接收的兩個或更多個無線電信號收發機1408(例如,Peanut®、 Bluetooth®、Zigbee®、Wi-Fi,RF、蜂巢等)和天線1410。收發機1408和天線1410可與上述電路一起使用,以實現各個無線傳輸協定堆疊和介面以及建立本文中論述的各種無線鏈路。行動設備1400可以包括一或多個蜂巢網路無線數據機晶片1416(如一個蜂巢網路無線數據機晶片、兩個蜂巢網路無線數據機晶片、三個蜂巢網路無線資料機晶片、四個蜂巢網路無線數據機晶片,或者四個以上的蜂巢網路無線數據機晶片),其實現經由一或多個蜂巢網路的通訊並且耦合至處理器1401。這一或多個蜂巢網路無線數據機晶片1416可以使行動設備1400能夠從一或多個蜂巢網路(例如,CDMA、TDMA、GSM、3G、4G、5G、LTE或任何其他類型的蜂巢網路)接收服務,以實現各種無線傳輸協定堆疊和介面,以及建立本文中論述的各種無線鏈路。
行動設備1400可以包括耦合至處理器1401的周邊設備連接介面1418。周邊設備連接介面1418可以單獨被配置為接收一種類型的連接,或者多重配置為接收各種類型的實體和通訊連接(公共和專有的),如USB、火線、Thunderbolt、乙太網路或PCIe。周邊設備連接介面1418亦可以耦合至類似配置的周邊設備連接埠(未圖示)。行動設備1400可以包括用於提供音訊輸出的揚聲器1414。
行動設備1400亦可以包括由塑膠、金屬或材料的組合構造的,用於包含本文中論述的部件中的所有或一些部件的殼體1420。行動設備1400可以包括耦合至處理器1401的電源1422,如一次性的或可充電電池。可充電電池亦可以耦合至周邊設備連接埠,以便從行動設備1400外部的源接收充電電流。
應當理解,上述用於提供對NVRAM 104的安全存取、初始化NVRAM 104及/或以「省電」模式操作SoC的系統和方法可以支援各種低功率用例。在與行動設備相關的實施例中,例如,低功率用例可以包括操作模式或期望在不顯著消耗電池能量的情況下執行一段時間的設備的狀態。模式或狀態可以或可以不涉及使用者互動(例如,收聽、觀看、按鍵、心臟感測器等),並且可以是或不是自主的(例如,數據機傳呼、系統參數喚醒等)。時間長度可以是短暫的(毫秒)或持久的(小時或天)。用例可以是一次性的,例如,觀看電影,或者可以是週期性的(例如,電話傳呼)。軟體應用或程式可以包含並執行單個或多個用例。通常,低功耗用例可能不需要大量計算(CPU、GPU或FPU週期)或資料傳輸(有線或無線頻寬)。此外,低功耗用例可以利用低能量實體特性,可以依賴於較小的軟體任務,可以僅在短時間內活躍,或者可以涉及有限的SoC硬體子集。應當理解,SoC硬體的這種有限子集可以被稱為「低功率島」,因為它是與SoC的其餘部分功率隔離的,使得低功率島可以在SoC的其餘部分斷電時保持主動供電。SoC的其餘部分可以仍然只是根據需要間歇地和短暫地上電。
圖15是用於對經由NVRAM 104對低功率用例的SoC記憶體存取進行管理的系統1500的實施例的方塊圖。系統1500通常可以以與系統100(圖1)或系統800(圖8)類似的方式配置。在圖15的實施例中,SoC 102可以經由雙倍資料速率(DDR)介面1504電耦合至揮發性記憶體,例如,動態隨機存取記憶體(DRAM)1502。DRAM 1502可以包括一或多個DRAM晶片,每個晶片具有複數個儲存體(例如,每個DRAM晶片8個儲存體)。SoC 102和DRAM 1502之間的通訊可以由DRAM控制器1503控制,DRAM控制器1503電耦合至SoC匯流排116。
如圖15中進一步所示,SoC 102亦可以包括低功率用例管理模組1512。可以經由作業系統核心1510來實現一或多個低功率用例管理模組1512。如下文更詳細描述的,低功率用例管理模組1512包括用於利用安全NVRAM 104的邏輯單元及/或功能來使SoC 102能夠以特別配置的「功率節省」模式(被稱為「低功率島」配置)進行操作。應當理解,術語「低功率島」配置使得一或多個功率節省軟體程式能夠由來自安全NVRAM 104的相應SoC處理設備執行,而SoC 102上的其他處理設備被斷電以節省SoC成本和最小化功耗。
在圖15的實施例中,SoC 102包括各種SoC處理設備,包括例如CPU 110、通用處理單元(GPU)1506、一或多個DSP 167,或者其他處理設備1508(例如,微控制器、狀態機等)。「低功率島」配置可以經由NVRAM 104來隔離SoC處理設備中的一或多個SoC處理設備以進行低功率操作,而其他SoC處理設備及/或SoC部件斷電。應當理解,「低功率島」配置在一或多個SoC處理設備的隔離可以顯著降低功耗的某些低功率用例下可以是特別有利的。
下文更詳細地描述了「低功率島」配置和相應的低功率用例的各種實施例。圖16中圖示用於對經由NVRAM 104對低功率用例的SoC記憶體存取進行管理的方法1600的示例性實施例。在方塊1602處,可以引導包括複數個SoC處理設備的SoC 102。可以經由可信引導程式130以上述方式引導SoC 102,以便在SoC 102和安全NVRAM 104之間建立可信通道。在方塊1606處,取決於所支援的特定用例,方法1600可以決定要由相應的SoC處理設備在SoC 102上執行的一或多個功率節省軟體程式。根據所支援的用例,可以將與功率節省軟體程式相關聯的低功率軟體映射載入到安全NVRAM 104。回應於將軟體映射載入到安全NVRAM 104,方法1600將除了從安全NVRAM 104執行軟體映射的SoC處理設備之外的複數個SoC處理設備(及/或其他系統或SoC部件)之每一者SoC處理設備斷電。系統1500可以支援複數個低功率用例,而出於成本原因,NVRAM 104的大小可能不同時支援所有低功率用例,或者可能無法像其在沒有減小大小時那樣支援正常執行時軟體。因此,應當理解,可以開發大小減小的軟體版本,或者可以在步驟1608處辨識執行時軟體功能的子集並將其載入到NVRAM。這亦可以減少要載入的資料量並使進入低功率用例的能量管理負擔最小化。選擇要載入到NVRAM 104的軟體映射可以取決於執行時的低功率用例。當用例改變時,系統亦可以將另一個軟體映射交換到NVRAM 104中。
圖17和圖18圖示用於隔離系統1500中的DSP 167中的一個DSP的示例性低功率SoC島配置。應當理解,在SoC 102上隔離單個DSP 167對於以下任何一種或其他DSP用例可以是特別有益的:可攜式計算設備上的運動感測器偵測、WLAN定位及/或數據機傳呼;可穿戴設備上的心率監測器或計步器;物聯網路(IoT)設備上的感測器;等等。
如圖17所示,在步驟1701處,CPU 110可以將低功率軟體映射1702載入到DRAM 1502。低功率軟體映射1702包括與DSP 167相關聯的功率節省程式的可執行邏輯單元及/或功能。低功率軟體映射1702可以在執行期間動態載入或在引導時靜態載入。在動態載入實施例中,功率節省程式的可執行邏輯單元及/或功能可以不載入到目的地以便在系統1500的初始化程序中執行。該方法可用於以下用例:不清楚是否需要該程式;或者處理器有多個低功率用例,並且每個用例的程式可以在觸發特定用例時交換進出低功率島。在靜態載入實施例中,程式可以載入到目的地以便在系統1500的初始化程序中執行。例如,在感測器型DSP用例中,可以動態地載入低功率軟體映射1702,其中可以在用例執行之前執行載入(和稍後卸載)映射、映射的選擇以及映射的任何設置和配置的需要。在其他DSP用例(例如,WLAN、數據機)中,可以靜態載入低功率軟體映射1702,其中已知映射是需要的並且在引導時或在應用啟動時載入。應當理解,與儲存可以由HLOS專閘控制的現有解決方案相比,步驟1701可以使用CPU 110將映射從儲存載入到DRAM 1502。在一些實施例中,儲存架構可以為CPU 110上的HLOS之外的主設備(如DSP)提供直接存取。在這些實施例中,並且若這種方案的整體系統能量顯示出超過具有步驟1701的CPU載入方案的益處,則可以繞過步驟1701,並且在DSP上執行的程式可以直接存取存放裝置以便將低功率映射載入到NVRAM 104中。
當觸發低功率島配置時(步驟1703),將低功率軟體映射1702從DRAM 1502載入到安全NVRAM 104。應當理解,可以以各種方式觸發低功率島配置。在一個實施例中,使用者可以經由使用者介面控制項來控制某些類型的低功率用例(例如,語音啟動控制、位置偵測、運動感測、低功率/低解析度相機等)。例如,若達到低電池閾值,則可以啟動某些類型的低功率用例。在其他實施例中,可以經由應用程式介面(API)動態地觸發低功率島配置,該應用程式介面決定應用是否可以以「始終開啟」模式執行。在另外的實施例中,守護程序應用可以仲裁要執行的低功率感知用例。在步驟1703之後,DRAM 1502中可能不再需要低功率軟體映射1702。在一個實施例中,系統1500可以經由其他目的回收核心1510要使用的記憶體。例如,當觸發另一個低功率用例時,可以將初始低功率映射1702複製回DRAM 1502,並且可以將用於新用例的新低功率映射載入到NVRAM 104。利用這種方法,系統可以減小DRAM 1502上的記憶體壓力及/或減小DRAM大小。在另一個實施例中,系統1500可以將低功率軟體映射1702完好無損地保持在DRAM 1502中。
參照圖18,在將低功率軟體映射1702載入到安全NVRAM 104之後,可以禁用對其他SoC處理設備(示為灰色)的功率。在步驟1802處,DSP 167可以從安全NVRAM 104執行低功率軟體映射1702。
圖19是可以與低功率用例管理模組1512整合的資料表1900。資料表1900使得軟體程式(由行1901、1903、1905、1907、1909表示)能夠以程式設計方式爭用以低功率島模式存取安全NVRAM 104的機會。軟體程式可以向作業系統核心1510提供「提示」。在一個實施例中,提示資料可以包括與列1902、1904、1906、1908、1910和1912相關聯的資料值。提示1902指定程式類型1902(省電與傳統)。提示1904指定程式大小值。提示1906指定頻寬值。提示1908指定功率值。提示1910指定引導速度。提示1912指定記憶體存取類型(NVRAM存取與NAND / DRAM存取)。
圖20是示出用於對在圖15的系統中要被提供低功率NVRAM存取的軟體程式進行優先順序排序的方法2000的實施例的流程圖。在步驟2002處,作業系統可以從程式、處理器或任務傳遞中繼資料或「提示」。應當理解,提示可以表徵程式、程序或任務的行為。在示例性實施例中,特徵可以包括,例如,程式的總大小S(以百萬位元組為單位)、程式執行所需的最大及/或平均記憶體頻寬量W(以百萬位元組/秒為單位),平均值功率P(以毫焦耳或等效能量為單位元)和引導速度B(以毫秒或等效時間為單位)。這些特性可以包括來自程式建立者/作者的估計,並向作業系統提供關於是否將該程式視為低功率(或不是低功率)的指導。在步驟2004處,作業系統亦可以使用SoC 102內的硬體監測器,以便在程式、程序或任務執行時獲得這些相同特性的近似量測值。測得的特性可以被稱為「特徵」提示和特徵可以包括對方法2000的單獨輸入。例如,大小提示SH可以是由程式的建立者/作者提供的第一值,而大小特徵ST可以是在程式執行時由SoC硬體量測的第二值。每個提示和相應的特徵可以彼此進行比較並且亦可以與預先決定的閾值進行比較。在步驟2006處,可以將大小提示SH與大小特徵ST進行比較以決定值是否一致。該比較可以採用預先決定的或計算的餘量或閾值,並且不需要精確。作為實例,可以允許SH和ST彼此有例如50%不同。另外,亦可以將大小特徵ST與最大閾值進行比較。作為實例,大小特徵ST可以是以25百萬位元組量測的,並且可以將預先決定的閾值設置為40百萬位元組。儲存15百萬位元組(大小特徵小於閾值)的有利差異,並且稍後將其用於對NVRAM活動程式列表進行優先順序重新排序。大小閾值可適用於所有低功率用常式式、某個類別的低功率用常式式或特定的低功率用常式式。若提示和特徵相似,並且若特徵沒有超過閾值,則方法2000前進到下一個比較。若提示和特徵不相似,或者若特徵超過閾值,則流程跳到步驟2016。在步驟2008處,可以將提示與頻寬特徵進行比較。在步驟2010處,可以將提示與功率特徵進行比較。在步驟2012處,可以將提示與引導速度特徵進行比較。在步驟2014處,在程式成功完成所有比較步驟2006、2008、2010和2012之後,可以基於比較的結果對常駐在NVRAM中的所有低功率用常式式的列表重新進行優先順序排序。例如,可以向具有有利比較結果(例如,比預先決定的閾值更小的尺寸、更低的頻寬、更低的功率及/或更短的引導速度)的程式分配比具有不太有利比較結果的程式更高的優先順序。在步驟2016處,優先順序列表可以用於對NVRAM上積極執行的程式進行管理。步驟2014可以重新計算優先順序列表,而步驟2016執行它。可以從NVRAM中移除具有優先順序倒置(亦即,比未在NVRAM中執行的另一個程式更低的優先順序)的積極執行NVRAM程式。這可以經由對現有NVRAM程式進行分叉來完成,使得在一般系統記憶體中建立它的副本。程式執行可以在一般系統記憶體中恢復,隨後可以移除原始(當前未使用的)NVRAM程式並釋放NVRAM記憶體中的空間。可以重複該程序,直到NVRAM程式優先順序與優先順序列表協調。為了防止不必要的顛簸(亦即,程式不斷地旋轉進出NVRAM),可以採用時間滯後(優先順序重新排序之前的延遲迫使重新混洗)或距離滯後(優先順序反轉的幅度必須滿足最小閾值)。
圖21和22圖示用於為CPU 110實現低功率映射的示例性低功率SoC島配置。應當理解,將CPU 110隔離在低功率SoC島配置中對於某些類型的用例可能是有用的。如前述,可以為低功率用例決定軟體的大小減小的版本或者執行時軟體功能的子集。對於CPU,HLOS可以包含豐富的功能集,以便在不同場景中啟用許多不同的周邊設備。這可能導致HLOS程式在規模上較大以適合NVRAM 104,而在低功率用例中不需要所有這些功能。在這態樣,HLOS可以週期性地喚醒以便基於來自DSP的計時器或請求來更新檔案系統。例如,它可能需要檔案系統驅動程式,但可能不需要圖形功能。因此,可以為這種CPU低功率用例建立具有大小最佳化(例如,迷你核心)的HLOS程式的功能精簡版本。
如圖21中所示,在步驟2101處,CPU 110可以將低功率模型映射2102、正常模型映射2104和迷你核心2106載入到DRAM 1502。當觸發低功率島配置時(步驟2103),將低功率數據機映射2102和迷你核心2106從DRAM 1502載入到安全NVRAM 104。參照圖22,在將低功率模式映射2102載入到安全NVRAM 104之後,可以禁用對其他SoC處理設備(示為灰色)的功率。在步驟2200處,CPU 110可以從安全NVRAM 104執行低功率數據機映射。
另外,程式設計領域中具有通常知識者能夠寫電腦代碼或辨識合適的硬體及/或電路,以便例如基於本說明中的流程圖和相關聯的描述沒有困難地實現所揭示的發明。
因此,特定集合的程式碼指令或詳細硬體設備的公開不應該被認為是要充分理解怎樣實現和使用本發明所必要的。在上文的描述中並且結合可以示出各個處理流的附圖更詳細地解釋了所要求保護的電腦實現的程序的創造性功能。
在一或多個示例性態樣中,本文中所描述的功能可以用硬體、軟體、韌體或它們的任意組合來實現。若用軟體實現,則功能可以儲存在電腦可讀取媒體上或者作為電腦可讀取媒體上的一或多個指令或代碼發送。電腦可讀取媒體包括電腦儲存媒體和通訊媒體二者,通訊媒體包括有助於將電腦程式從一個地點傳輸到另一個地點的任意媒體。儲存媒體可以是可以由電腦存取的任何可用媒體。經由舉例而非限制的方式,這種電腦可讀取媒體可以包括RAM、ROM、EEPROM、NAND快閃記憶體、NOR快閃記憶體、M-RAM、P-RAM、 R-RAM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或者可以用於攜帶或儲存具有指令或資料結構形式的所期望的程式碼並可以由電腦存取的任何其他媒體。
此外,任何連接皆可以被適當地稱為電腦可讀取媒體。例如,若使用同軸電纜、光纖線纜、雙絞線、數位用戶線路(DSL)、或者諸如紅外線、無線電和微波的無線技術,從網站、伺服器、或其他遠端源反射軟體,則,同軸電纜、光纖線纜、雙絞線、DSL、或者諸如紅外線、無線電和微波的無線技術包含在媒體的定義中。
如本文中所使用的,磁碟(disk)和光碟(disc)包括壓縮光碟(「CD」)、鐳射光碟、光碟、數位多功能光碟(「DVD」)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟則用鐳射來光學地複製資料。上述各項的組合亦應該包括在電腦可讀取媒體的範疇之內。
在不脫離本發明的精神和範疇的前提下,替代態樣對本發明所涉及領域中具有通常知識者來說將變得顯而易見。因此,儘管已經示出並詳細描述了所選擇的態樣,但將理解的是:如同所附請求項所定義的,可以在不脫離本發明的精神和範疇的前提下進行各種替換和改變。
應該領會的是:本文中描述的方法步驟中的一或多個方法步驟可以在記憶體中作為電腦程式指令(如上述模組)儲存。這些指令可由任何合適的處理器結合或配合相應模組來執行,以便執行本文中描述的方法。
為了本發明如所述那樣運作,本說明中描述的程序或程序流中的某些步驟自然地先於其他步驟。然而,本發明並不局限於所描述的步驟的次序,若這種次序或順序並不改變本發明的功能的話。亦即,應該認識到:在不脫離本發明的範疇和精神的前提下,一些步驟可以在其他步驟之前、之後或與其他步驟平行(基本上同時)執行。在某些情況下,可以在不脫離本發明的情況下不執行或省略某些步驟。此外,諸如「此後」、「隨後」、「接下來」等等的詞並不意欲限制這些步驟的次序。這些詞語只是用於經由示例性方法的描述來引導讀者。
另外,程式設計領域中具有通常知識者能夠寫電腦代碼或辨識合適的硬體及/或電路,以便例如基於本說明中的流程圖和相關聯的描述沒有困難地實現所揭示的發明。
因此,特定集合的程式碼指令或詳細硬體設備的公開不應該被認為是要充分理解怎樣實現和使用本發明所必要的。在上文的描述中並且結合可以示出各個處理流的附圖更詳細地解釋了所要求保護的電腦實現的程序的創造性功能。
在一或多個示例性態樣中,本文中所描述的功能可以用硬體、軟體、韌體或它們的任意組合來實現。若用軟體實現,則功能可以儲存在電腦可讀取媒體上或者作為電腦可讀取媒體上的一或多個指令或代碼發送。電腦可讀取媒體包括電腦儲存媒體和通訊媒體二者,通訊媒體包括有助於將電腦程式從一個地點傳輸到另一個地點的任意媒體。儲存媒體可以是可以由電腦存取的任何可用媒體。經由舉例而非限制的方式,這種電腦可讀取媒體可以包括RAM、ROM、EEPROM、NAND快閃記憶體、NOR快閃記憶體、M-RAM、P-RAM、 R-RAM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或者可以用於攜帶或儲存具有指令或資料結構形式的所期望的程式碼並可以由電腦存取的任何其他媒體。
此外,任何連接都可以被適當地稱為電腦可讀取媒體。例如,若使用同軸電纜、光纖線纜、雙絞線、數位用戶線路(DSL)、或者諸如紅外線、無線電和微波的無線技術,從網站、伺服器、或其他遠端源反射軟體,則,同軸電纜、光纖線纜、雙絞線、DSL、或者諸如紅外線、無線電和微波的無線技術包含在媒體的定義中。
如本文中所使用的,磁碟(disk)和光碟(disc)包括壓縮光碟(「CD」)、鐳射光碟、光碟、數位多功能光碟(「DVD」)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟則用鐳射來光學地複製資料。上述各項的組合亦應該包括在電腦可讀取媒體的範疇之內。
在不脫離本發明的精神和範疇的前提下,替換的實施例對本發明所涉及領域中具有通常知識者來說將變得顯而易見。因此,儘管已經示出並詳細描述了所選擇的態樣,但將理解的是:如同所附請求項所定義的,可以在不脫離本發明的精神和範疇的前提下進行各種替換和改變。
100‧‧‧系統
102‧‧‧片上系統(SoC)
104‧‧‧NVRAM
105‧‧‧RAM
106‧‧‧儲存記憶體
106a‧‧‧次級引導程式
108‧‧‧功率管理控制器
110‧‧‧CPU
112‧‧‧SRAM
114‧‧‧SRAM
116‧‧‧匯流排
118‧‧‧功率管理介面
120‧‧‧NVRAM控制器
121‧‧‧RAM控制器
122‧‧‧儲存記憶體控制器
124‧‧‧連接
125‧‧‧匯流排
126‧‧‧匯流排
126c‧‧‧連接
126d‧‧‧連接
128‧‧‧匯流排
130‧‧‧可信引導程式
132‧‧‧熔斷器
134‧‧‧連接
136‧‧‧連接
138‧‧‧連接
140‧‧‧外部應用處理器(「AP」)
142‧‧‧匯流排
146‧‧‧計時器
148‧‧‧標誌位元
160‧‧‧ICE
165‧‧‧金鑰產生引擎
167‧‧‧DSP
169‧‧‧認證引擎
172‧‧‧閘機制
199‧‧‧I/O控制器
202‧‧‧NV單元陣列
204‧‧‧閘機制
206‧‧‧對應實體層
208‧‧‧介面控制器
210‧‧‧熔斷器
212‧‧‧介面控制器
214‧‧‧實體層
300‧‧‧方法
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
310‧‧‧方塊
312‧‧‧方塊
314‧‧‧方塊
322‧‧‧SoC
328‧‧‧顯示器控制器
330‧‧‧觸控式螢幕控制器
334‧‧‧視訊轉碼器
336‧‧‧視訊放大器
338‧‧‧視訊連接埠
340‧‧‧通用序列匯流排(USB)控制器
342‧‧‧USB埠
348‧‧‧攝像頭
350‧‧‧身歷聲音訊編碼器-解碼器(CODEC)
352‧‧‧音訊放大器
354‧‧‧第一身歷聲揚聲器
356‧‧‧第二身歷聲揚聲器
358‧‧‧麥克風放大器
360‧‧‧麥克風
362‧‧‧頻率調制(FM)無線電調諧器
364‧‧‧FM天線
366‧‧‧身歷聲耳機
368‧‧‧射頻(RF)收發機
370‧‧‧RF開關
372‧‧‧RF天線
374‧‧‧按鍵
376‧‧‧單聲道耳機
378‧‧‧振動器
380‧‧‧電源
388‧‧‧網卡
402‧‧‧控制邏輯單元
404‧‧‧閘機制
406‧‧‧方塊
408‧‧‧方塊
410‧‧‧方塊
412c‧‧‧匯流排
412d‧‧‧匯流排
414c‧‧‧閘控位址/控制連接
414d‧‧‧閘控連接
416‧‧‧連接
418‧‧‧熔斷器資料匯流排
420‧‧‧熔斷器控制匯流排
422‧‧‧控制器
424‧‧‧控制器
426‧‧‧控制匯流排
500‧‧‧表
530‧‧‧列
532‧‧‧列
534‧‧‧列
536‧‧‧列
538‧‧‧列
540‧‧‧列
542‧‧‧列
600‧‧‧方法
602‧‧‧方塊
604‧‧‧方塊
606‧‧‧方塊
608‧‧‧方塊
610‧‧‧方塊
612‧‧‧方塊
614‧‧‧方塊
616‧‧‧方塊
618‧‧‧方塊
620‧‧‧方塊
700‧‧‧可攜式計算設備(PCD)
702‧‧‧多核CPU
706‧‧‧觸控式螢幕顯示器
710‧‧‧第零核心
712‧‧‧第一核心
714‧‧‧第N核心
800‧‧‧系統
900‧‧‧程序
902‧‧‧方塊
904‧‧‧方塊
906‧‧‧方塊
908‧‧‧方塊
910‧‧‧方塊
912‧‧‧方塊
914‧‧‧方塊
916‧‧‧方塊
918‧‧‧方塊
920‧‧‧方塊
1000‧‧‧程序
1002‧‧‧方塊
1004‧‧‧方塊
1006‧‧‧方塊
1008‧‧‧方塊
1010‧‧‧方塊
1012‧‧‧方塊
1014‧‧‧方塊
1105‧‧‧儲存記憶體資料
1106‧‧‧RAM資料
1107‧‧‧映射A
1107A‧‧‧映射A
1107B‧‧‧映射A
1110‧‧‧映射A
1110A‧‧‧映射A
1110B‧‧‧映射A
1112‧‧‧檔案系統
1117‧‧‧代碼部分
1117A‧‧‧代碼部分
1117B‧‧‧代碼部分
1120‧‧‧RO部分
1120A‧‧‧RO部分
1120B‧‧‧RO部分
1122‧‧‧RW部分
1122A‧‧‧RW部分
1122B‧‧‧RW部分
1125‧‧‧堆疊
1130‧‧‧代碼#1部分
1132‧‧‧RO#1部分
1134‧‧‧RW#1部分
1136‧‧‧堆疊
1140‧‧‧代碼部分#2
1142‧‧‧RO#2部分
1144‧‧‧RW部分
1146‧‧‧RW部分
1150‧‧‧RAM緩衝器
1155‧‧‧操作控制標誌位元
1200‧‧‧程序
1205‧‧‧方塊
1207‧‧‧方塊
1208‧‧‧方塊
1210‧‧‧方塊
1215‧‧‧方塊
1220‧‧‧方塊
1225‧‧‧方塊
1227‧‧‧方塊
1228‧‧‧方塊
1230‧‧‧方塊
1300‧‧‧程序
1305‧‧‧方塊
1310‧‧‧方塊
1320‧‧‧方塊
1325‧‧‧方塊
1330‧‧‧方塊
1335‧‧‧方塊
1340‧‧‧方塊
1400‧‧‧行動設備
1401‧‧‧觸控式螢幕控制器
1402‧‧‧內部記憶體
1404‧‧‧觸控式螢幕控制器
1408‧‧‧無線電信號收發機
1410‧‧‧天線
1412‧‧‧觸控式螢幕面板
1414‧‧‧揚聲器
1416‧‧‧蜂巢網路無線數據機晶片
1418‧‧‧周邊設備連接介面
1420‧‧‧殼體
1422‧‧‧電源
1500‧‧‧系統
1502‧‧‧DRAM
1503‧‧‧DRAM控制器
1504‧‧‧雙倍資料速率(DDR)介面
1506‧‧‧通用處理單元(GPU)
1508‧‧‧處理設備
1510‧‧‧核心
1512‧‧‧低功率用例管理模組
1600‧‧‧方法
1602‧‧‧方塊
1604‧‧‧方塊
1606‧‧‧方塊
1608‧‧‧方塊
1610‧‧‧方塊
1701‧‧‧步驟
1702‧‧‧低功率軟體映射
1703‧‧‧步驟
1802‧‧‧步驟
1900‧‧‧資料表
1901‧‧‧行
1902‧‧‧列
1903‧‧‧行
1904‧‧‧列
1905‧‧‧行
1906‧‧‧列
1907‧‧‧行
1908‧‧‧列
1909‧‧‧行
1910‧‧‧列
1912‧‧‧列
2000‧‧‧方法
2002‧‧‧步驟
2004‧‧‧步驟
2006‧‧‧步驟
2008‧‧‧步驟
2010‧‧‧步驟
2012‧‧‧步驟
2014‧‧‧步驟
2016‧‧‧步驟
2101‧‧‧步驟
2102‧‧‧低功率模式映射
2103‧‧‧步驟
2104‧‧‧正常數據機映射
2106‧‧‧迷你核心
2200‧‧‧步驟
在附圖中,除非另有說明,否則相同的元件符號在各個圖中代表相同的部分。對於具有字母字元標示的元件符號,例如「102A」或「102B」,字母字元標示可以區分同一附圖中存在的兩個相同的部分或元素。當元件符號意欲涵蓋所有附圖中具有相同元件符號的所有部分時,可以省略元件符號的字母字元標示。
圖1是用於提供對非揮發性隨機存取記憶體(NVRAM)的安全存取的系統的實施例的方塊圖。
圖2是示出圖1中的NVRAM的實施例的方塊圖。
圖3是示出用於提供對圖1和圖2中的NVRAM的安全存取的方法的實施例的流程圖。
圖4是示出圖1和圖2的NVRAM中的通過閘的示例性實現方式的方塊圖。
圖5是示出圖1、圖2和圖4的SoC與NVRAM之間的加密密碼交換的示例性方法的表。
圖6是示出用於對圖1、圖2和圖4的SoC和NVRAM進行初始化的方法的實施例的流程圖。
圖7是用於併入圖1、圖2和圖4的系統的可攜式計算設備的實施例的方塊圖。
圖8圖示可操作以在「正常」模式或「功率節省」模式下啟動的系統的方塊圖。
圖9是示出用於初始化被製造為併入SoC和NVRAM的計算設備的程序的流程圖。
圖10是示出用於提供對NVRAM的安全存取的程序的流程圖。
圖11a是圖示儲存記憶體資料的邏輯關係的方塊圖。
圖11b是圖示RAM資料的邏輯關係的方塊圖。
圖11c是圖示NVRAM資料的邏輯關係的方塊圖。
圖12是圖示以「正常」模式啟動SoC的程序的流程圖。
圖13圖示以「功率節省」模式啟動SoC 102的示例性程序。
圖14是用於併入本文中描述的系統和方法的可攜式計算設備的態樣的方塊圖。
圖15是用於對經由NVRAM對低功率用例的SoC記憶體存取進行管理的系統的實施例的方塊圖。
圖16是說明在圖15的系統中實現的用於對經由NVRAM對低功率用例的SoC記憶體存取進行管理的方法的實施例的流程圖。
圖17是示出用於圖15的系統中的DSP的示例性低功率SoC島配置的下拉式列示方塊/流程圖。
圖18圖示圖17的系統,其中僅數位訊號處理器和NVRAM在低功率SoC島配置中上電。
圖19是用於使軟體程式能夠指定SoC記憶體存取類型的資料表。
圖20是示出用於對在圖15的系統中要被提供低功率NVRAM存取的軟體程式進行優先順序排序的方法的實施例的流程圖。
圖21是示出用於圖15的系統中的CPU的示例性低功率SoC島配置的下拉式列示方塊/流程圖。
圖22圖示圖21的系統,其中僅CPU和NVRAM在低功率SoC島配置中上電。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (30)

  1. 一種用於對針對一片上系統的低功率用例的記憶體存取進行管理的方法,該方法包括以下步驟: 引導包括複數個片上系統(SoC)處理設備的一SoC; 建立到一安全非揮發性隨機存取記憶體(NVRAM)的一可信通道; 決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的一功率節省軟體程式; 將與該功率節省軟體程式相關聯的軟體映射載入到該安全NVRAM;及 回應於將該軟體映射載入到該安全NVRAM,將該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備都斷電。
  2. 根據請求項1之方法,其中該決定該功率節省軟體程式包括:一作業系統從該功率節省軟體程式接收一提示。
  3. 根據請求項2之方法,其中該提示包括下列各項中的一項或多項:一軟體映射大小、一頻寬、一功率值和一引導速度。
  4. 根據請求項1之方法,其中該軟體映射從電耦合至該SoC的一雙倍資料速率(DDR)記憶體載入到該安全NVRAM。
  5. 根據請求項4之方法,其中該軟體映射在執行時或該SoC的該引導期間由一中央處理單元載入到該DDR記憶體。
  6. 根據請求項1之方法,其中該複數個SoC處理設備包括下列各項中的一項:一中央處理單元(CPU)、一圖形處理單元(GPU)和一數位訊號處理器。
  7. 根據請求項6之方法,其中該功率節省軟體程式是由該數位訊號處理器執行的,並且回應於將該軟體映射載入到該安全NVRAM,該複數個SoC處理設備中除了該數位訊號處理器之外的每個SoC處理設備都斷電。
  8. 根據請求項1之方法,其中該SoC是併入一行動電話中的。
  9. 根據請求項1之方法,其中該安全NVRAM包括具有一通過閘值的一熔斷器。
  10. 一種用於對一片上系統的低功率用例進行管理的系統,該系統包括: 用於引導包括複數個片上系統(SoC)處理設備的一SoC的單元; 用於建立到一安全非揮發性隨機存取記憶體(NVRAM)的一可信通道的單元; 用於決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的一功率節省軟體程式的單元; 用於將與該功率節省軟體程式相關聯的一軟體映射載入到該安全NVRAM的單元;及 用於回應於將該軟體映射載入到該安全NVRAM,將該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備都斷電的單元。
  11. 根據請求項10之系統,其中該用於決定該功率節省軟體程式的單元包括:作一業系統從該功率節省軟體程式接收一提示。
  12. 根據請求項11之系統,其中該提示包括下列各項中的一項或多項:一軟體映射大小、一頻寬、一功率值和一引導速度。
  13. 根據請求項10之系統,其中該軟體映射從電耦合至該SoC的一雙倍資料速率(DDR)記憶體載入到該安全NVRAM。
  14. 根據請求項13之系統,其中該軟體映射在執行時或該SoC的該引導期間由一中央處理單元載入到該DDR記憶體。
  15. 根據請求項10之系統,其中該複數個SoC處理設備包括下列各項中的一項:一中央處理單元(CPU)、一圖形處理單元(GPU)和一數位訊號處理器。
  16. 根據請求項15之系統,其中該功率節省軟體程式是由該數位訊號處理器和該CPU中的一項來執行的,並且回應於將該軟體映射載入到該安全NVRAM,該複數個SoC處理設備中除了該數位訊號處理器和該CPU中的該一項之外的每個SoC處理設備都斷電。
  17. 根據請求項10之系統,其中該SoC是併入一行動電話中的。
  18. 根據請求項10之系統,其中該安全NVRAM包括具有一通過閘值的一熔斷器。
  19. 一種用於對針對一片上系統的低功率用例的記憶體存取進行管理的系統,該系統包括: 一片上系統(SoC),其包括複數個SoC處理設備; 一雙倍資料速率(DDR)記憶體,其電耦合至該SoC; 一安全非揮發性隨機存取記憶體(NVRAM),其具有帶有用於建立可信通道的一通過閘值的一熔斷器;及 一低功率用例管理模組,其包括被配置用於以下操作的邏輯單元: 決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的一功率節省軟體程式; 將與該功率節省軟體程式相關聯的一軟體映射從該DDR記憶體載入到該安全NVRAM;及 回應於將該軟體映射載入到該安全NVRAM,發起對該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備的斷電。
  20. 根據請求項19之系統,其中該功率節省軟體程式是經由從該功率節省軟體程式接收一提示來決定的。
  21. 根據請求項20之系統,其中該提示包括下列各項中的一項或多項:一軟體映射大小、一頻寬、一功率值和一引導速度。
  22. 根據請求項19之系統,其中該軟體映射在執行時或該SoC的引導期間由一中央處理單元載入到該DDR記憶體。
  23. 根據請求項19之系統,其中該複數個SoC處理設備包括下列各項中的一項:一中央處理單元(CPU)、一圖形處理單元(GPU)和一數位訊號處理器。
  24. 根據請求項23之系統,其中該功率節省軟體程式是由該數位訊號處理器執行的,並且回應於將該軟體映射載入到該安全NVRAM,該複數個SoC處理設備中除了該數位訊號處理器之外的每個SoC處理設備都斷電。
  25. 根據請求項19之系統,其中該SoC是併入一行動電話中的。
  26. 一種體現為一電腦可讀取媒體並且由一處理器可執行用於對針對一片上系統的低功率用例的記憶體存取進行管理的電腦程式,該電腦程式包括被配置用於以下操作的邏輯單元: 引導包括複數個片上系統(SoC)處理設備的一SoC; 建立到一安全非揮發性隨機存取記憶體(NVRAM)的一可信通道; 決定要由該複數個SoC處理設備中的一個SoC處理設備在該SoC上執行的一功率節省軟體程式; 將與該功率節省軟體程式相關聯的一軟體映射載入到該安全NVRAM;及 回應於將該軟體映射載入到該安全NVRAM,將該複數個SoC處理設備中除了從該安全NVRAM執行該軟體映射的一個SoC處理設備之外的每個SoC處理設備都斷電。
  27. 根據請求項26之電腦程式,其中該決定該功率節省軟體程式包括一作業系統從該功率節省軟體程式接收一提示,該提示包括下列各項中的一項或多項:一軟體映射大小、一頻寬、一功率值和一引導速度。
  28. 根據請求項26之電腦程式,其中該複數個SoC處理設備包括下列各項中的一項:一中央處理單元(CPU)、一圖形處理單元(GPU)和一數位訊號處理器。
  29. 根據請求項26之電腦程式,其中該功率節省軟體程式是由該數位訊號處理器執行的,並且回應於將該軟體映射載入到該安全NVRAM,該複數個SoC處理設備中除了該數位訊號處理器之外的每個SoC處理設備都斷電。
  30. 根據請求項26之電腦程式,其中該SoC是併入一行動電話中的。
TW107133597A 2017-10-30 2018-09-25 用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理 TW201923595A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/798,116 US10591975B2 (en) 2017-10-30 2017-10-30 Memory access management for low-power use cases of a system on chip via secure non-volatile random access memory
US15/798,116 2017-10-30

Publications (1)

Publication Number Publication Date
TW201923595A true TW201923595A (zh) 2019-06-16

Family

ID=63862202

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107133597A TW201923595A (zh) 2017-10-30 2018-09-25 用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理

Country Status (3)

Country Link
US (1) US10591975B2 (zh)
TW (1) TW201923595A (zh)
WO (1) WO2019089155A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468300A (zh) * 2019-09-09 2021-03-09 新唐科技股份有限公司 具有旁通通道的金钥管理装置及处理器芯片
TWI769794B (zh) * 2020-10-14 2022-07-01 日商鎧俠股份有限公司 記憶體系統以及在記憶體系統中管理功率的方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10782772B2 (en) * 2017-07-12 2020-09-22 Wiliot, LTD. Energy-aware computing system
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
US11226667B2 (en) 2018-07-12 2022-01-18 Wiliot Ltd. Microcontroller operable in a battery-less wireless device
US10855478B2 (en) * 2018-08-13 2020-12-01 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for protecting embedded software
US10592710B1 (en) * 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10698846B2 (en) * 2018-11-07 2020-06-30 Realtek Semiconductor Corporation DDR SDRAM physical layer interface circuit and DDR SDRAM control device
US11636231B2 (en) * 2020-07-24 2023-04-25 Qualcomm Incorporated Methods and apparatus for in-memory device access control
CN111914032B (zh) * 2020-08-14 2024-03-22 青岛海信微联信号有限公司 应用于交通工具自动监控系统的数据处理装置和方法
KR102620949B1 (ko) * 2021-07-09 2024-01-09 한국전자통신연구원 메모리 방식의 위장 셀을 이용한 하드웨어 미터링 장치 및 방법
US11803472B2 (en) * 2021-07-30 2023-10-31 Qualcomm Incorporated Integrated circuits (IC) employing subsystem shared cache memory for facilitating extension of low-power island (LPI) memory and related methods

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003331241A (ja) 2002-05-09 2003-11-21 Fujitsu Ltd メモリデバイス及びその制御方法
US7500127B2 (en) * 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
ES2381329T3 (es) 2009-09-09 2012-05-25 Samsung Electronics Co., Ltd. Aparato de formación de imágenes y método correspondiente de control de ahorro de energía
US8949502B2 (en) * 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
WO2013089685A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
US9705869B2 (en) * 2013-06-27 2017-07-11 Intel Corporation Continuous multi-factor authentication
US9479331B2 (en) 2014-08-20 2016-10-25 Apple Inc. Managing security in a system on a chip (SOC) that powers down a secure processor
US9547361B2 (en) * 2015-04-29 2017-01-17 Qualcomm Incorporated Methods and apparatuses for memory power reduction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468300A (zh) * 2019-09-09 2021-03-09 新唐科技股份有限公司 具有旁通通道的金钥管理装置及处理器芯片
TWI731407B (zh) * 2019-09-09 2021-06-21 新唐科技股份有限公司 具有旁通通道的金鑰管理裝置及處理器晶片
US11368302B2 (en) 2019-09-09 2022-06-21 Nuvoton Technology Corporation Key management device and processor chip having bypass channels
CN112468300B (zh) * 2019-09-09 2023-07-04 新唐科技股份有限公司 具有旁通通道的金钥管理装置及处理器芯片
TWI769794B (zh) * 2020-10-14 2022-07-01 日商鎧俠股份有限公司 記憶體系統以及在記憶體系統中管理功率的方法

Also Published As

Publication number Publication date
US10591975B2 (en) 2020-03-17
US20190129493A1 (en) 2019-05-02
WO2019089155A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
TW201923595A (zh) 用於經由安全非揮發性隨機存取記憶體的片上系統的低功率用例的記憶體存取管理
US9202061B1 (en) Security enclave processor boot control
US9419794B2 (en) Key management using security enclave processor
US10387333B2 (en) Non-volatile random access memory with gated security access
US8775757B2 (en) Trust zone support in system on a chip having security enclave processor
US8832465B2 (en) Security enclave processor for a system on a chip
US9043632B2 (en) Security enclave processor power control
CN110998578B (zh) 用于在异构存储器环境内进行引导的系统和方法
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
US20180157849A1 (en) Anti-theft in firmware
US7613891B2 (en) Methods and apparatus for providing a read access control system associated with a flash device
US11941108B2 (en) Authentication and control of encryption keys
TW200941278A (en) Secure update of boot image without knowledge of secure key
US11757648B2 (en) System and method for remote startup management
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key