TWI815323B - 用於進入低功率狀態之電腦可實施方法以及相關運算系統 - Google Patents
用於進入低功率狀態之電腦可實施方法以及相關運算系統 Download PDFInfo
- Publication number
- TWI815323B TWI815323B TW111107141A TW111107141A TWI815323B TW I815323 B TWI815323 B TW I815323B TW 111107141 A TW111107141 A TW 111107141A TW 111107141 A TW111107141 A TW 111107141A TW I815323 B TWI815323 B TW I815323B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- computing device
- power state
- low power
- ambient
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 claims abstract description 88
- 230000008569 process Effects 0.000 claims abstract description 56
- 230000002618 waking effect Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 70
- 230000004044 response Effects 0.000 claims description 19
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 8
- 238000010801 machine learning Methods 0.000 description 71
- 238000004891 communication Methods 0.000 description 28
- 235000019800 disodium phosphate Nutrition 0.000 description 28
- 230000002093 peripheral effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 238000005192 partition Methods 0.000 description 10
- 230000007613 environmental effect Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 4
- 230000007958 sleep Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/171—Portable consumer electronics, e.g. mobile phone
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本發明揭示用於執行一預取處理以使一環境運算裝置準備好在一低功率狀態中操作而不喚醒一記憶體裝置之方法、系統及設備,包含編碼於電腦儲存媒體上之電腦程式。該等方法之一者包含:藉由一環境運算裝置執行一預取程序,該預取程序將該環境運算裝置在處於該低功率狀態中時處理至該系統之輸入所需之經預取指令及資料填入一快取區;及進入該低功率狀態;及藉由處於該低功率狀態中之該環境運算裝置使用儲存於該快取區中之該等經預取指令及資料處理至該系統之輸入。
Description
本說明書係關於具有積體電路裝置之系統。
一快取區係儲存從一系統中之一或多個不同硬體裝置之記憶體擷取之資料或待寫入至記憶體之資料之一裝置。硬體裝置可為整合至一系統單晶片(SOC)中之不同組件。在本說明書中,透過快取區提供讀取請求及寫入請求之裝置將被稱為用戶端裝置。一些快取區為整合至一單一系統(例如,一SOC)中之多個不同用戶端裝置之記憶體請求服務以作為到達記憶體之前的一最後快取區。此等快取區可被稱為系統級快取區(SLC)。
快取區可藉由減少對主記憶體之總體請求而減少功率消耗。另外,只要用戶端裝置可在快取區中存取其等所需之資料,便可藉由將主記憶體以及至主記憶體之資料路徑放置於一低功率狀態中而進一步節省功率。因此,快取區使用與總體功率消耗相互關聯,且增加快取區使用導致總體功率消耗之一減少。因此,依靠電池功率之裝置(例如,行動運算裝置)可藉由增加整合式用戶端裝置之快取區使用而延長其等之電池壽命。
一些SOC用戶端裝置係能夠在SOC仍處於一低功率狀態中
時監測及處理感測器輸入之環境運算裝置。若環境運算裝置偵測到一感測器輸入(例如,到達一麥克風之聲音),則環境運算裝置可觸發SOC以在需要額外處理功率來處置感測器輸入時結束低功率狀態。
本說明書描述一環境運算裝置執行一快取區準備程序,使得該環境運算裝置可在一低功率狀態期間僅使用儲存於該快取區中之資料操作之技術。此容許系統在一低功率狀態期間使其他高功率裝置斷電,其中該環境運算裝置仍可處理感測器輸入。例如,此等技術容許該系統使主記憶體、快取階層中之其他較大快取區以及此等組件之相關資料路徑及功率域斷電。
可實施本說明書中描述之標的物之特定實施例,以實現以下優點之一或多者。該運算裝置可在該裝置處於一低功率狀態中時處理感測器輸入。在處於該低功率狀態中時,該運算裝置可使其功率消耗組件斷電,諸如RAM、用戶端裝置、該等組件與控制器(例如,記憶體控制器)之間的資料路徑及介面。
該運算裝置可包含經組態以在該運算裝置之該低功率狀態期間處理該等感測器輸入之一或多個環境運算裝置(ACD)。該ACD能夠在該運算裝置處於該低功率狀態中時判定處理該等輸入可能需要之資料及指令。該ACD在該運算裝置進入該低功率狀態之前將此等資料及指令預取至一本端快取記憶體部分中。藉由使用該等經預取資料及指令,該ACD可在不喚醒該記憶體控制器或一記憶體裝置的情況下處理感測器輸入,此幫助最小化該低功率狀態期間之功率消耗。
另外,該ACD在該低功率狀態期間可能僅需該本端快取記
憶體之一部分來處理該等輸入。因此,該本端快取記憶體之其餘部分可在該低功率狀態期間斷電,從而導致節省甚至更多功率消耗。
在該ACD需要比在該低功率狀態期間專用於ACD操作之該本端快取記憶體之該部分更多之資源之情況中,該ACD可觸發該運算裝置以結束該低功率狀態。替代地或另外,該ACD可判定一記憶體裝置之具有該ACD所需之資源之一特定部分且觸發該記憶體裝置之該特定部分以結束該低功率狀態。因此,在該ACD從該記憶體之該特定部分提取其所需之資料時,該運算裝置之其他組件可仍處於該低功率模式中。
在下文之附圖及描述中闡述本說明書之標的物之一或多項實施例之細節。從描述、圖式及發明申請專利範圍將變得明白標的物之其他特徵、態樣及優點。
100:系統
102:系統單晶片(SOC)
110a至110n:用戶端裝置
120:快取區/系統級快取區(SLC)
122:快取區/本端快取區
130:記憶體控制器
140:記憶體裝置
150:系統單晶片(SOC)網狀架構
152:通信路徑
154:通信路徑
160:環境運算裝置(ACD)
200:事件/程序
202:軟體功率管理器(SPM)
204:環境運算裝置(ACD)
206:快取區
208:硬體功率管理器(HPM)
210:通知
212:程序
214:程序/預取程序
216:程序
218:程序
220:程序
222:程序
224:程序
226:通知/程序
228:程序
230:程序
236:程序
300:事件/程序
310:通知
312:通知
314:程序
316:通知
318:程序
320:通知
322:程序
324:程序
326:程序
328:程序
400:事件/程序
410:程序
412:程序
414:程序
416:程序
418:確認訊息
420:程序
422:程序
424:程序
426:程序
500:運算裝置
502:音訊感測器
504:雷達感測器
506:觸控感測器
508:全球定位系統(GPS)感測器
509:加速度計
510:加速度計/低功率環境運算系統
512:周邊感測器
514:周邊介面
520:控制子系統
521:功率控制單元(PCU)
522:功率管理單元(PMU)
523:時脈控制單元
524:中斷控制器
528:DMA控制器
529:計時器
530:處理子系統
532:低功率CPU
534:環境機器學習(ML)引擎
536:低功率DSP
538:高功率DSP
539:靜態隨機存取記憶體(SRAM)
540:主CPU叢集
550:主機器學習(ML)引擎
圖1係一例示性系統之一圖。
圖2係繪示轉變至一低功率狀態中之一例示性程序之一序列圖。
圖3係繪示結束一低功率狀態之一例示性程序之一序列圖。
圖4係繪示執行從一低功率狀態之一部分功率轉變之一例示性程序之一序列圖。
圖5係包含一低功率環境運算系統之一例示性運算裝置之一圖。
在各個圖式中,相似元件符號及名稱指示相似元件。
圖1係一例示性系統100之一圖。系統100包含通信地耦合至一記憶體裝置140之一系統單晶片(SOC)102。SOC 102具有一環境運算
裝置160、多個其他用戶端裝置110a至110n以及快取區120及122之一階層。快取區122係僅為來自環境運算裝置之記憶體請求服務之一本端快取區。快取區120係為來自包含ACD 160之全部用戶端裝置之記憶體請求服務之一系統級快取區。本說明書中描述之技術亦可用於具有ACD 160與記憶體140之間的快取區之額外層之系統。
SOC 102係可安裝於任何適當運算裝置(其可被稱為一主機裝置)上或整合至其中之一裝置之一實例。由於本說明書中描述之技術尤其適合於節省主機裝置之功率消耗,所以SOC 102在安裝於依靠電池功率之一行動主機裝置(例如,一智慧型電話、一智慧型手錶或另一穿戴式運算裝置、一平板電腦或一膝上型電腦(僅舉幾例))上時可為尤其有益的。在處於一低功率模式中時,SOC 102可接收輸入,諸如來自主機裝置之整合感測器之感測器輸入。此等感測器之實例包含位置感測器、存在感測器、手勢感測器、心率感測器及音訊感測器(僅舉幾例)。
SOC 102具有多個用戶端裝置110a至110n。用戶端裝置110a至110n之各者可為經組態以透過SOC網狀架構150讀取記憶體裝置140中之資料及將資料儲存於記憶體裝置140中之任何適當模組、裝置或功能組件。例如,一用戶端裝置可為一CPU、一特定應用積體電路或能夠起始透過SOC網狀架構150之通信之SOC自身之較低階組件。
用戶端裝置之一或多者可為一環境運算裝置(ACD)160。一環境運算裝置係經組態以在SOC 102處於一低功率狀態中時執行運算操作之一組件。環境運算裝置160經組態以在SOC 102處於低功率狀態中時處理至SOC 102之輸入。另外,環境運算裝置160可在SOC 102之其他功率狀態期間如任何其他用戶端裝置般操作。
SOC網狀架構150係SOC 102之一通信子系統。SOC網狀架構150包含容許用戶端裝置110a至110n彼此通信以及提出使用記憶體裝置140來讀取及寫入資料之請求之通信路徑。SOC網狀架構150可包含通信硬體(例如,匯流排或專用互連電路)之任何適當組合。
系統100亦包含容許SLC 120與記憶體控制器130之間的通信之通信路徑152以及容許記憶體控制器130與記憶體裝置140之間的通信之晶片間通信路徑154。
在一低功率狀態期間,SOC 102可藉由使通信路徑152及154之一或多者斷電而節省功率。替代地或另外,SOC 102可使記憶體裝置140、記憶體控制器130及/或用戶端運算裝置110a至110n之一或多者斷電以進一步節省功率。作為另一實例,SOC 102可進入一時脈關斷模式,其中針對一或多個裝置使各自時脈電路斷電。
快取區120及122定位於ACD 160與記憶體控制器130之間的資料路徑中。記憶體控制器130可處置往返於記憶體裝置140之請求。因此,來自環境運算裝置160之從記憶體裝置140讀取或寫入至記憶體裝置140之請求行進通過快取區120及122。例如,ACD 160可提出從記憶體裝置140讀取之一請求,該請求行進通過本端快取區122、SOC網狀架構150且至SLC 120上。SLC 120可在將請求轉發至記憶體裝置140之記憶體控制器130之前處置請求。
SLC 120可從用戶端裝置110a至110n及環境運算裝置160快取讀取請求、寫入請求或兩者。SLC 120可藉由用儲存於快取區中的資料對請求作出回應而非從記憶體裝置140提取資料而快取讀取請求。類似地,SLC 120可藉由將新資料寫入快取區中而非將新資料寫入記憶體裝置
140中而快取寫入請求。SLC 120可在一隨後時間執行一回寫以將經更新資料儲存於記憶體裝置140中。
在SOC 102處於低功率狀態中時,環境運算裝置160可僅使用儲存於快取區120或122之一者中之指令及資料處理至SOC 102之輸入。因此,SOC 102可減少或移除至系統之一或多個其他組件或系統之全部其他組件之功率。例如,在一些實施方案中,在處於低功率狀態中時,即使環境運算裝置160正在處理輸入,SOC 102仍可使記憶體裝置140斷電,此係因為環境運算裝置160無需存取記憶體裝置140。出於相同原因,SOC 102亦可使記憶體控制器130斷電。
為準備好進入低功率狀態,SOC 102可將在低功率狀態期間處理至SOC 102之輸入所需之指令及資料預取至快取區120或122之一者中。SOC 102可接著藉由使其他組件斷電而進入低功率狀態,且環境運算裝置160可在SOC 102處於低功率狀態中時使用儲存於快取區中之指令及資料來處理至SOC 102之輸入。
圖2係繪示將一系統單晶片(SOC)轉變至一低功率狀態中之一例示性程序之事件200之一序列之一序列圖。在此實例中,低功率狀態被稱為SLEEP(休眠)。例示性程序200可由SOC 102之組件執行。
圖2中繪示之程序係由四個主要組件執行:一軟體功率管理器SPM(SPM)202、一環境運算裝置(ACD)204、一快取區206及一硬體功率管理器(HPM)208。SPM 202控制一或多個電壓軌,該一或多個電壓軌各對應於SOC之多個組件之間的一資料路徑。例如,ACD 204可與快取區206之多個部分通信且各部分可透過一資料路徑連接至ACD 204。當SPM 202使一或多個電壓軌斷電時,ACD 204及快取區206可失去其等透
過與一或多個電壓軌相關聯之資料路徑之連接。
HPM 208控制SOC之組件之功率。例如,HPM 208指示使哪些組件開啟且使哪些組件斷電。
在SOC 102進入一低功率狀態之前,SPM 202將一通知210發送至ACD 204。在接收通知210之後,ACD 204準備好在SOC之低功率狀態期間操作。ACD 204判定ACD在低功率狀態期間是否應使用快取區206(212)。在一些實施方案中,此判定可係基於裝置正在進入若干低功率狀態之哪一者。例如,裝置可支援多個低功率狀態,且在其等之一些中,ACD可唯一地使用一快取區而不存取記憶體。
作為此程序之部分,ACD 204或另一組件可判定快取區之一階層中之哪一快取區應用於低功率狀態。一般言之,隨著快取區愈來愈接近記憶體,其等之速度降低且其等之儲存大小及功率消耗增加。因此,ACD 204可判定待在特定低功率狀態期間執行之一低功率程序之一大小且可選擇可容納在低功率狀態期間執行低功率程序所需之指令及資料之最小快取區。
為使快取區206準備好在SOC之低功率狀態期間使用,ACD 204執行一預取程序之指令以預填入快取區(214)。預取程序之指令包含預填入快取區之預取載入及預取儲存。此預取程序藉由確保在低功率狀態期間將需要之全部指令讀取及資料讀取被儲存於快取區中而準備快取區。換言之,ACD 204針對在低功率狀態中將需要之全部讀取發出指令。若任何讀取導致一快取未命中,則所請求資料將從DRAM或從快取階層中較低之一較大快取區填入至快取區中。
另外,預取程序214亦可藉由執行在低功率狀態期間可能
需要之寫入而準備快取區。換言之,ACD 204執行寫入指令,使得預分配對應快取線以供ACD 204在低功率狀態期間使用。預取程序之寫入指令不必使用實際資料。實情係,唯一重要的是,快取區為寫入分配一快取線,使得ACD 204在低功率狀態中之未來寫入指令將導致一快取命中且不會喚醒記憶體控制器、記憶體裝置或至此等組件之任何資料路徑。因此,ACD 204可在執行預取寫入時使用虛擬資料值,例如全部零或隨機值。
預取程序214亦可從在低功率狀態期間不會使用之快取區驅逐其他資料及指令。若快取區206係一系統級快取區,則經驅逐資料可為代表ACD 204或系統之其他用戶端裝置儲存之資料。
在一些實施方案中,預取程序之指令可藉由回應於ACD 204執行讀取及寫入指令而模擬快取區206之行為來產生。產生預取程序之指令可接著包含將預取載入及預取儲存指令添加至預取程序直至在低功率狀態期間執行之一實際載入及儲存很可能不會導致一快取未命中。此模擬技術亦可用於判定在低功率狀態期間將多少快取區分配至ACD 204。例如,若模擬指示在低功率狀態期間可能存在快取未命中,則系統可增加ACD 204之快取分區大小。
ACD 204未使用之其他快取分區可在進入低功率狀態之前斷電。在斷電之前,可保存快取區206之狀態,以便在結束低功率狀態之後恢復該等非ACD快取分區之狀態。
當預取程序(214)完成時,ACD 214將一通知發送至SPM 202,從而向SPM 202通知ACD 204已完成SLEEP(休眠)預備(216)。在一些實施方案中,ACD 204亦為將在低功率狀態期間使用之快取區206之部分提供識別資訊。例如,ACD 204可選擇快取區206在低功率狀態期間操
作之一或多個快取通道。在一些實施方案中,SOC將快取區206之一預設部分專用於低功率狀態期間之ACD 204操作。
SPM 202可在低功率狀態期間為ACD 204與選定快取區206之間的通信組態一資料路徑(218)。此程序涉及判定ACD 204與選定快取區之間的通信需要哪些資料路徑。例如,若選定快取區在ACD 204本端,則SPM 202可僅組態該兩個組件之間的一資料路徑。但若選定快取區係一系統級快取區,則SPM 202可能需要組態穿過至系統級快取區途中之其他較小快取區之額外路徑。
SPM 202指導快取區206為低功率狀態做準備(220)。作為回應,快取區206可執行一快取清空(222)以將經快取資料之非ACD分區寫入至一記憶體裝置中,此容許在低功率狀態結束之後進行擷取。例如,記憶體裝置可為一非揮發性記憶體裝置或將僅在低功率狀態期間保持在保留模式中之一記憶體裝置。在保留模式中,記憶體裝置可藉由維持先前儲存值但不支援先前儲存值之更新而節省功率。
快取區206可因此在SOC進入低功率狀態之前保存快取區206之非ACD分區之一狀態。快取區206之經保存狀態指示在SOC進入低功率狀態之前的快取通道之一狀態。例如,快取區206之經保存狀態可指示在ACD 204起始預取程序214以將指令及資料預取至快取區206中之前的快取通道之一狀態。快取區206可將快取狀態保存至一非揮發性記憶體或將保持在保留模式中之一記憶體裝置中。在結束低功率狀態之後,快取區206可恢復經保存快取狀態且覆寫在低功率狀態期間分配至ACD 204之快取部分(例如,快取通道)。快取區206將一通知226發送至SPM 202,從而指示快取區206已做好SOC進入低功率狀態之準備。
作為回應,SPM 202起始低功率狀態。例如,SPM 202可指導快取區206改變其RAM功率狀態(226)。此快取區206可接著使ACD 204在低功率狀態期間不會使用之快取區之部分斷電(228)。例如,快取區可使ACD 204未使用之快取通道或整個分區斷電。快取區206接著向SPM 202告知斷電程序已完成(230)。
SPM 202使將在低功率狀態期間斷電之一或多個電壓軌斷電(236)。一或多個電壓軌通常不包含專用於ACD 204與快取區206之預取部分之間的通信之電壓軌。
快取區206可使用確認進入休眠之預備已完成之一確認訊息做出回應(230)。系統可接著進入低功率狀態。在低功率狀態期間,ACD 204可在不喚醒記憶體控制器或一記憶體裝置的情況下處理感測器輸入。代替地,ACD 204可僅使用預取至快取區206中之指令及資料處理全部感測器輸入。
SPM 202亦可使具有與ACD 204之一連接之其他組件斷電。例如,若SPM 202可使與將在低功率狀態期間斷電之裝置相關聯之一或多個電壓軌斷電(236)。SPM 202亦可使與記憶體裝置相關聯之記憶體控制器、記憶體裝置本身及記憶體控制器與記憶體裝置之間的一或多個通信介面(例如,DDR PHY介面)斷電。為此,SPM 202可將電壓軌斷電之資訊或與各自電壓軌相關聯之組件之資訊傳送至HPM 208,使得HPM 208可使此等各自組件斷電。
SOC亦可使在快取階層中低於針對低功率狀態選擇之快取區之任何其他快取區斷電。例如,如圖1中繪示,若針對低功率狀態選擇本端快取區122,則系統可使SLC 120斷電。在該情況中,HPM 208可在
改變快取功率狀態之前保存SLC狀態。在結束低功率狀態之後,HPM 208可恢復經保存SLC狀態。
圖3係繪示使一系統單晶片(SOC)結束一低功率狀態之一例示性程序之事件300之一序列之一序列圖。例示性程序300可由SOC 102之組件執行。
SOC可回應於接收需要比ACD 204僅使用快取區206可存取或提供之資源更多之資源之一服務請求而結束低功率狀態。此服務請求之實例可包含與裝置之感測器之任一者相關之輸入,例如接收一電話呼叫、啟動一通電感測器或辨識一語音命令。因此,ACD 204可觸發結束程序。
例如,SOC可為一使用者互動運算裝置之部分。使用者互動運算裝置可在閒置達60秒之後進入一休眠模式。使用者互動運算裝置可包含能夠語音辨識之一ACD。一旦ACD偵測到一使用者之語音,ACD便可觸發運算裝置以結束休眠模式。
參考圖3,在SOC結束一低功率狀態之前,SPM 202可將一通知310發送至ACD 204。在接收通知310之後,ACD 204為SOC結束低功率狀態做準備。ACD 204可將一通知312發送至SPM 202,從而指示ACD 204已做好SOC結束低功率狀態之準備。
作為回應,SPM 202識別待為結束低功率狀態而開啟之電壓軌。在一些實施方案中,SPM 202恢復在SOC進入低功率狀態時在236處斷電之電壓軌之一記錄。SPM 202開啟從記錄恢復其資訊之電壓軌之全部或部分。
在一些實施方案中,ACD 204可提供ACD 204在214處用
於預取或在SOC之低功率狀態期間使用之快取部分之一識別資訊。使用此識別資訊,SPM 202可識別在低功率狀態期間斷電之快取部分且可開啟與此等快取部分相關聯之一或多個電壓軌。
在一些實施方案中,在SOC不處於低功率模式中時,SPM 202開啟與需要操作之SOC組件相關聯之全部電壓軌,而無關於在低功率狀態期間操作之組件之識別資訊。
在任一情況中,SPM 202將一通知316發送至HPM 208,從而向HPM 208通知SOC將開啟。作為回應,HPM 208開啟各自組件。HPM 208可將一通知320發送至SPM 202,從而向SPM 202通知HPM 208已完成開啟或恢復各自SOC組件之功率。
在一些實施方案中,HPM 208恢復在SOC進入低功率狀態之前在234處保存之快取功率狀態(318)。在此等實施方案中,若快取區206之一或多個快取通道在SOC進入低功率狀態之前不具有功率,則HPM 208在SOC結束低功率狀態時使此等一或多個快取通道保持斷電。
除電壓軌以外,SPM 202可判定在低功率狀態期間斷電之SOC組件。例如,SPM 202可已儲存在SOC進入低功率狀態時斷電之記憶體控制器及通信介面(例如,DDR PHY)之一清單且觸發HPM 208以開啟各自記憶體控制器及通信介面。
SPM 202可例如藉由將一訊息發送至快取區206而觸發快取區206以結束低功率狀態。為結束低功率模式,快取區206開啟(若干)快取RAM(322)。
在開啟各自組件之後,SOC結束低功率狀態且SOC可處理導致SOC結束低功率狀態之輸入。輸入可為由一用戶端裝置遞交之一請
求。SPM 202可向用戶端裝置SOC通知已準備好處理請求(324)。
在一些實施方案中,在SOC結束低功率狀態時,快取區206開啟全部快取RAM。在一些實施方案中,快取區206恢復在SOC進入低功率狀態之前操作之快取RAM之一記錄且僅開啟各自快取RAM。例如,快取區206可已在進入低功率狀態之前將此一記錄儲存於一非揮發性記憶體中。
如上文提及,在一些實施方案中,快取區206可在SOC進入低功率狀態之前保存快取區206之一狀態。在結束低功率狀態之後,快取區206可恢復經保存狀態且覆寫在低功率狀態期間分配至ACD 204之快取部分(例如,快取通道)。
當SOC結束低功率狀態時,快取區206可如其在SOC進入低功率狀態之前操作般開始操作。例如,快取區206可執行一快取分配演算法(326),以便在結束低功率狀態之後分配用於為記憶體請求服務之快取分區。
類似地,SOC之其他組件可如其等在SOC進入低功率狀態之前操作般開始操作。例如,快取區206可開始與一記憶體裝置(例如,記憶體裝置140)通信以為由一或多個用戶端裝置遞交之記憶體請求服務(328)。
SOC可回應於接收需要使用比ACD 204及快取區206之經預取部分可提供之資源更多之資源之一輸入而結束低功率狀態。ACD 204可判定快取區206中之經預取資訊不足以處理一特定輸入。例如,ACD 204可從一指紋感測器接收一指紋輸入。ACD 204可判定指紋不匹配儲存於經預取快取部分中之任何指紋圖案。因此,ACD 204可觸發SOC以結束
低功率模式以存取已儲存更多指紋圖案之一記憶體。
在一些實施方案中,可無需使整個SOC結束低功率狀態;實情係,僅開啟SOC之一部分可足以處理需要比ACD 204及經預取快取部分更多之資源之一特定輸入。在此等實施方案中,SOC執行低功率狀態之一轉變,其中為處理特定輸入之目的開啟一些而非全部SOC組件。
在上文實例中,SOC可判定提供對更多指紋圖案之存取可給予ACD 204其所需之資訊。因此,SOC可判定已儲存指紋圖案之快取區206之一部分或一非揮發性記憶體裝置且僅開啟各自SLC部分或至非揮發性記憶體裝置之路徑以為ACD 204提供ACD 204處理所接收指紋輸入所需之資訊。
圖4係繪示執行從一SOC之一低功率狀態之一部分功率轉變之一例示性程序之事件400之一序列之一序列圖。例示性程序400可由SOC 102之組件執行。SOC藉由開啟SOC之一或多個額外組件而不完全開啟整個系統而執行轉變。開啟一或多個組件以提供ACD 204處理ACD 204無法藉由僅使用預取於快取區206中之資訊而處理之一特定輸入所需之資源。
在ACD 204在SOC之低功率狀態期間處理至SOC之輸入(410)時,ACD 204可判定其需要ACD 204在SOC進入低功率狀態之前未預取至快取區206中之特定資訊。例如,ACD 204可判定處理一特定感測器輸入需要非預取資訊(412)。所需資訊可儲存於快取階層中之一下游快取區中或RAM中。因此,系統可開啟獲得資訊所必要之額外組件,以便使ACD 204繼續處理而不喚醒整個系統。
ACD 204將一請求發送至SPM 202,從而請求SPM 202啟
用存取特定資訊所需之資料路徑。ACD 204可判定資訊之位置且請求啟用至該位置之資料路徑(414)。
SPM 202開啟至所判定位置之資料路徑(416)。例如,SPM 202可開啟所需資料路徑上之電壓軌。SPM 202亦可與一HPM通信以開啟包含特定資訊之各自下游快取區或記憶體裝置。SPM 202可將一確認訊息418發送至ACD 204,從而確認開啟資料路徑及記憶體部分。
作為此程序之部分,ACD 204可利用快取區206。因此,ACD 204可啟用快取區之一ACD分區(420)。此容許所需資訊在其已儲存於快取區206的情況下從快取區206提取或在其需要從其他下游快取區或記憶體提取的情況下進行快取。啟用ACD分區可導致快取區206執行一分區演算法以判定將多少及哪些快取通道分配至ACD 204。在此期間,ACD可輪詢快取區206以完成分區演算法(422)。
當分區演算法完成時,快取區之ACD分區已準備好使用。因此,ACD 204可提取所需資訊(424),此可導致此資訊儲存於快取區206之ACD分區中。ACD使用案例可接著繼續處於低功率狀態中(426)。換言之,系統可在不喚醒系統之全部組件(例如,全部用戶端裝置)的情況下恢復低功率狀態。另外,一旦ACD 204完成提取特定資訊,從其提取該特定資訊之記憶體部分便可再次斷電且加入處於低功率狀態中之SOC之其他非作用組件。
在本發明中,在任何兩個組件之間發送之通知或通信訊息之任一者可呈一中斷之形式或回應於一輪詢而提供。例如,一第一裝置可回應於從一第二裝置接收查詢是否已由第一裝置執行一工作之一輪詢而將一訊息發送至第二裝置。替代地,一旦第一裝置完成工作,第一裝置便可
將訊息發送至第二裝置,而無關於第二裝置是否發送一輪詢。
圖5係包含一低功率環境運算系統510之一例示性運算裝置100之一圖。環境運算系統510係可執行上文描述之環境運算裝置之功能性之一系統之一實例。下文描述之功能性使用兩個其他例示性運算系統:一主CPU叢集540及一主機器學習(ML)引擎550。此兩個組件之各者可用作上文參考圖1描述之SOC 102之用戶端裝置110a至110n之一者。換言之,環境運算系統510、主CPU叢集540及主ML引擎550可全部整合至相同SOC中且共用一相同系統級快取區(例如,SLC 120)。
例示性裝置500可包含在任何適當運算裝置(例如,一智慧型電話、一智慧型手錶、一健身追蹤器、一個人數位助理、一電子平板、一膝上型電腦(僅舉幾例))中實施之一系統。可使用運算裝置500之系統,使得運算裝置500可保持在一低功率狀態中但仍繼續監測來自環境之輸入且藉由依序喚醒系統之適當處理組件而對該等輸入做出回應。在本說明書中,術語喚醒及啟動將用於意謂將一增加量之功率供應至一特定處理組件或其他電子電路。系統可已將或尚未將功率供應至正被喚醒或啟動之一處理組件或其他電路。換言之,被喚醒或啟動之一組件可在先前已完全或尚未完全斷電。喚醒或啟動一處理組件可導致處理組件執行一開機程序且導致處理組件之指令及資料載入至隨機存取記憶體中。替代地或另外,喚醒或啟動一處理組件可包含從一先前暫停狀態恢復。
運算裝置500之一或多個組件可實施在運算裝置內之一系統單晶片(SoC)上。一SoC可為將系統之各組件包含於一單一矽基板上或多個互連晶粒(例如,使用矽中介層、堆疊晶粒或互連橋)上之一積體電路。運算裝置之其他組件(包含一主CPU叢集540)可實施在相同或一單獨
晶粒上。運算裝置500可包含組件,包含感測器512、一或多個顯示器、一電池及與SoC分開且獨立於SoC且可例如安裝於一共同外殼上之其他組件。
簡言之且如下文進一步詳細描述,裝置500包含經組態以基於來自運算裝置之環境之輸入而產生感測器信號之數個周邊感測器512。裝置500包含用於控制至系統中之組件之功率供應及感測器信號之一控制子系統520。且裝置500包含用於處理感測器信號且產生輸出之一處理子系統530。
裝置500亦包含一主CPU叢集540。主CPU叢集540係包含與處理子系統530中之裝置分開之一或多個通用處理器之運算裝置之一組件。主CPU叢集540之處理器通常具有比處理子系統530中之裝置之任一者更多之運算能力,且因此主CPU叢集540之處理器亦可消耗比處理子系統530中之裝置之任一者更多之功率。
裝置500亦可視情況包含一主機器學習(ML)引擎550。主ML引擎550係經組態以透過一或多個機器學習模型執行推理遍次(inference pass)之一專用處理裝置。各推理遍次使用一機器學習模型之輸入及經學習參數值來產生由經學習模型預測之一或多個輸出。主ML引擎550可包含一或多個運算塊。一般言之,一運算塊係經組態以獨立執行一組運算之一自含型運算組件。主ML引擎550之塊可配置於一網路中且經程式化,使得主ML引擎550之各塊經組態以透過機器學習模型執行一推理遍次之一個部分之操作。例如,若機器學習模型係一神經網路,則主ML引擎550中之各塊可經組態以運算神經網路之一個層之運算。具有多個運算塊之一適合機器學習引擎在美國專利第9,710,265號中描述,該案
以引用的方式併入本文中。主ML引擎550亦提供效能高於環境運算系統510之處理子系統530中之裝置之任一者之運算能力。因此,主ML引擎550亦消耗多於處理子系統530中之裝置之任一者之功率。
處理子系統530包含一環境機器學習引擎534。環境ML引擎534亦係經組態以透過一或多個機器學習模型執行推理遍次之一專用處理裝置。當裝置500包含一主ML引擎550及一環境ML引擎534兩者時,環境ML引擎534具有較少運算塊且因此具有少於主ML引擎550之處理能力且消耗少於主ML引擎550之功率。例如,環境ML引擎534可被實施為一或兩個塊,而主ML引擎550可具有8至16個或更多個互連塊。
儘管未描繪,然運算裝置500亦可包含通常在此等運算裝置上找到之一或多個其他組件,例如一顯示器、一數據機、一圖形處理單元、一顯示處理器或一專用影像處理器(僅舉幾例)。此等組件可在下文描述之低功率狀態期間斷電且在系統判定感測器信號匹配需要其等啟動之一應用程式的情況下啟動。
裝置500包含數個周邊感測器512。周邊感測器512包含一或多個音訊感測器502、一或多個雷達感測器504、一或多個觸控感測器506、一全球定位系統(GPS)感測器508及一加速度計509。系統可包含額外、較少或替代周邊感測器。例如,系統可包含一Wi-Fi信號偵測器、一蜂巢式信號偵測器、一氣壓計、一溫度計、一磁力計或其他類型之周邊感測器。
周邊感測器512可為經組態以回應於環境輸入而產生感測器信號之裝置。一或多個音訊感測器502(例如,麥克風)可基於環境中之聲音產生音訊信號。例如,音訊感測器502可產生對應於人類語音之音訊
信號。一或多個雷達感測器504可基於由運算裝置之一傳輸器發射之反射無線電波偵測雷達信號。反射無線電波之變化可指示環境中之移動。舉例而言,例如當使用者在運算裝置附近做手勢時,雷達感測器504可產生歸因於從使用者反射而接收之雷達信號。類似地,一或多個觸控感測器506可歸因於由運算裝置之一使用者在裝置之一存在敏感或壓力敏感介面上做出之觸控手勢而產生信號。GPS感測器508可回應於所接收之位置資料通信而產生信號。且加速度計509可歸因於由運算裝置經歷之加速度而產生信號。在本說明書中,每當感測器信號被描述為至其他處理組件之輸入時,輸入可為由感測器自身產生之類比電信號、感測器信號之數位表示或表示原始信號之一或多個性質之感測器信號之經處理數位表示。運算裝置500之周邊感測器亦可包含一慣性量測感測器、一氣壓計、一比吸收率近接感測器及WiFi網路名稱感測器(僅舉幾例)。
環境運算系統510包含一或多個周邊介面514。周邊介面514可為即使在裝置處於其最低功率狀態中時仍開啟之運算裝置500之一組件。周邊介面514可包含用於將從周邊感測器512接收之輸入轉換為待由環境運算系統510使用之感測器信號之任何適當周邊介面。例如,周邊介面514可包含一脈衝密度調變(PDM)介面、一IC間聲音(I2S)介面、一積體電路間(I2C)介面、一I3C介面、一分時多工(TDM)介面及一串列周邊介面(SPI)(僅舉幾例)。
周邊介面514之各者經組態以在偵測到一環境輸入之後產生一各自中斷。一般言之,各中斷可識別感測器資料之一源,例如負責中斷之一周邊介面或感測器之一識別符。中斷藉由一或多個中斷控制器524接收及處理。例如,在接收一中斷之後,中斷控制器524可喚醒一功率控
制單元(PCU)521,該功率控制單元(PCU)521包含一功率管理單元(PMU)522及一時脈控制單元523。PMU 522可控制裝置500之哪些組件接收功率且各組件接收多少功率。時脈控制單元523可控制裝置500之組件操作之頻率。在一些實施方案中,各處理組件具有係一基礎時脈頻率之一倍數或一分率之一不同時脈頻率。藉由具有係一基礎時脈頻率之一倍數或一分率之一時脈頻率,各處理組件可更高效地與其他處理組件交換信號。
在接收一中斷之後,PCU 521可基於中斷之源判定應啟動環境運算系統510之哪些其他組件,以便進一步處理導致中斷之感測器信號。為了為此等組件提供處理支援,PCU 521可喚醒靜態隨機存取記憶體(SRAM)539及系統通信網狀架構。網狀架構係通信地耦合環境運算系統510之內部組件、其等至外部組件之通信或此等之某一組合之一通信子系統。網狀架構可包含通信硬體(例如,匯流排或專用互連電路)之任何適當組合。
靜態隨機存取記憶體(SRAM)539可為可由處理子系統530之多個處理組件共用之一通用隨機存取記憶體裝置。例如,SRAM 539可儲存感測器信號、處理器指令及資料、系統輸出及其他資料,例如由或將由環境ML引擎534實施之神經網路模型之神經網路參數。一般言之,一SRAM可與動態隨機存取記憶體(DRAM)區分之處在於一SRAM無需週期性地再新。如下文更詳細描述,SRAM 539可直接或透過一或多個DMA控制器由處理子系統530中之處理組件存取。在一些實施方案中,SRAM 539包含多個庫,該等庫可各儲存實質上類似量之資料,例如各1MB、10MB或100MB。另外,各個別庫可包含在進入低功率狀態時可個別斷電之多個區塊。藉由仔細定序該等區塊在四個區塊中斷電之順序,SRAM位址
空間可保持連續。
當PCU 521喚醒SRAM 539時,PCU 521可喚醒SRAM 539之少於全部區塊或全部記憶體庫。PCU 521可代替地僅喚醒足以使處理子系統530之下一組件判定是否進一步增加開啟裝置500之組件之數個區塊。
PCU 521亦可將不同功率位準供應至SRAM 539之不同區塊。例如,在監測功率狀態中,PMU 522可將一較低保留電壓供應至整個SRAM 539以減少其功率消耗。若處理組件皆無需存取SRAM 539,則PMU 522亦可將保留電壓供應至SRAM 539。在處理功率狀態中,PMU 522可將正常電壓提供至SRAM 539之全部或部分且將較低電壓或不將電壓提供至SRAM 539之其他部分。
在處置一中斷之程序期間,環境運算系統510亦可喚醒一或多個DMA控制器528。DMA控制器528可管理DMA路徑,該等DMA路徑容許傳入感測器信號之較高資料頻寬。例如,一DMA控制器528可用於將來自一麥克風之音訊資料連續串流傳輸至SRAM 539中以由處理子系統530中之處理組件存取。相反地,一DMA控制器亦可用於連續串流傳輸儲存於SRAM 539中之音訊資料以透過一或多個揚聲器輸出為聲音。DMA控制器528亦可用於將任何適當感測器資料串流傳輸至SRAM 539中,但使用程式化IO在運算上可比針對少量資料啟動一DMA控制器更便宜。因此,環境運算系統510可針對相對高頻寬感測器資料(例如,音訊資料及雷達資料)啟動及使用DMA控制器528且可針對其他類型之感測器資料使用程式化IO。
在準備好網狀架構及SRAM 539之後,PCU 521可接著使
用中斷來判定應喚醒處理子系統530之哪一其他組件。例如,PMU 522可取決於一或多個感測器之哪一者產生一中斷而控制是否將功率提供至低功率CPU 532、低功率DSP 536或處理子系統530之其他組件。在一些實施方案中,周邊介面514及控制子系統520之組件係裝置500在一監測功率狀態中開啟之僅有組件,該監測功率狀態係其中系統等待接收歸因於至運算裝置之環境輸入之中斷之一功率狀態。
處理子系統530之處理組件包含一低功率CPU 532、一環境ML引擎534、一低功率DSP 536及一高功率DSP 538。在一些實施方案中,處理子系統具有此等組件之一或多者之多個例項,例如多個低功率DSP或多個高功率DSP。例如,處理子系統530可具有專用於處理音訊信號之一個高功率DSP及專用於處理雷達信號之一單獨高功率DSP。替代地或另外,處理子系統530可具有專用於處理影像資料之一高功率DSP。
當執行上文參考圖2描述之預取程序時,環境運算系統510可針對處理子系統130中之裝置之任何適當組合發出預取載入及儲存指令。換言之,環境運算系統510可預取針對低功率CPU、環境ML引擎534、低功率DSP 536、高功率DSP 538或此等之某一組合之指令。在一些實施方案中,環境運算系統510僅預取針對消耗最少量功率之組件之指令。例如,環境運算系統510可僅預取針對低功率CPU 532及低功率DSP 536之指令。此將容許系統在低功率狀態期間處理大多數感測器信號而不喚醒記憶體控制器或記憶體裝置。若需要額外處理,則系統可在喚醒記憶體控制器及記憶體裝置之後使用DMA控制器528提取此等指令。
預取程序有效地擴展在低功率狀態中可用於環境運算系統510之記憶體之大小。換言之,代替在低功率狀態期間僅限於內部SRAM
539之量,環境運算系統510亦可存取用於預取程序之快取區之SRAM。此將可用記憶體有效擴展為至少相同於內部SRAM 539加上分配至環境運算系統510之快取區之大小。
在監測功率狀態中,處理子系統530中之處理組件可維持在一保留模式中。PCU 521可藉由減少或消除提供至一組件之功率而將組件維持在保留模式中。例如,在保留模式中,PCU 521可為一處理組件供應恰好足以維持暫存器狀態之功率但不足以處理暫存器中之資料之功率。
低功率CPU 532可為包含暫存器、控制電路及一算術邏輯單元(ALU)之一通用可程式化處理器。一般言之,低功率CPU 532消耗少於運算裝置之主CPU叢集540之功率且可含有較少處理核心。在一些實施方案中,低功率CPU 532主要係對單一指令及單一資料輸入操作之一標量處理器。
低功率CPU 532可在系統進入處理功率狀態時接收中斷及感測器信號。基於低功率CPU 532接收之感測器信號之類型且基於該等感測器信號之性質,低功率CPU 532可判定應啟動系統之其他組件,例如通信網狀架構、DMA控制器528、SRAM 539或此等之某一組合。在啟動此等組件之後,低功率CPU 532可視情況返回至一非操作狀態。
低功率CPU 532可將感測器信號或其等之一經處理版本提供至環境ML引擎534以供進一步解譯。例如,若低功率CPU 532接收對應於加速度計輸入之感測器信號,則低功率CPU 532可判定環境ML引擎534應進一步處理感測器信號。例如,環境ML引擎534可接著進一步處理感測器信號以判定該等信號表示行走、慢跑、騎自行車、跌倒或乘車旅行。
低功率CPU 532亦可針對一些信號繞開環境ML引擎534。
例如,若低功率CPU 532接收對應於運算裝置之一觸控介面上之一簡單觸控輸入之一感測器信號,則低功率CPU 532可處理觸控輸入而無需其他處理組件之幫助,例如藉由導致由主CPU叢集540或一圖形處理器開啟運算裝置之顯示器。低功率CPU 532亦可判定運算裝置之主CPU叢集540或裝置500外部之運算裝置之另一組件應進一步處理某些感測器信號。例如,若低功率CPU 532判定裝置500中之其他處理組件皆無法適當處理感測器信號,則低功率CPU 532可做出此一判定。
環境ML引擎534之一個任務係使用感測器信號以透過一模型執行一推理遍次以產生一輸出,該輸出可觸發喚醒其他處理組件以進一步處理感測器信號。換言之,環境ML引擎534可接收感測器信號或由低功率CPU 532或另一處理組件產生之其等之一經處理版本,且環境ML引擎534可產生表示哪些其他處理組件應進一步處理感測器信號之一輸出。由環境ML引擎534產生之輸出可明確指定處理組件ID之一組合或一例舉功率狀態之一識別符或該輸出可為由一低功率處理組件(例如,低功率CPU或低功率DSP)解譯之一功率狀態之一表示,以便識別應處理感測器信號之其他較高功率處理組件。作為此程序之部分,低功率處理組件可明確或隱含地判定是否需要任何其他處理。例如,低功率處理組件可基於機器學習引擎之輸出判定無需進一步處理且系統可轉變回至監測功率狀態。
在最低階監測功率狀態中,PCU 521可使環境ML引擎534保持在一低功率狀態中或完全斷電。在處理功率狀態中,PCU 521可取決於在周邊介面514處可用什麼感測器信號及低功率CPU 532或低功率DSP 536如何中斷信號而將或不將功率提供至環境ML引擎534。在一些實施方案中,低功率DSP 536或低功率CPU 532解譯信號以指導PCU 521為一額
外中間功率狀態提供功率,其中環境ML引擎534亦開啟以用於推理遍次,但尚未開啟其他高功率處理組件。
環境ML引擎534亦可實施用於處理感測器信號之其他機器學習模型。例如,環境ML引擎534可實施一簡化語音辨識模型,該簡化語音辨識模型容許環境ML引擎534辨識一些基於語音之命令。由於模型可安裝於具有有限記憶體容量之一行動運算裝置上,所以經辨識命令之數目可小於線上語音辨識程序。
環境ML引擎534可替代地或另外實施提供晶片上自動語音辨識之一機器學習模型。換言之,環境ML引擎534可透過模型執行推理遍次,以便產生在音訊信號中捕獲之語音之一實況轉錄。
作為另一實例,環境ML引擎534可實施從特定文字輸入產生音訊輸出信號之一文字至語音模型,其中音訊輸出信號可被使用者解譯為一特定語言之人類語音。在一些實施方案中,裝置500可同時使用一語音辨識模型及文字至語音模型以提供一低功率對話引擎。例如,在環境ML引擎534辨識一特定命令之後,低功率CPU 532可採取特定行動以實行命令且亦將一特定文字回應提供回至環境ML引擎534。環境ML引擎534可接著使用文字至語音模型來產生表示對初始命令之一回應之一音訊輸出。在一些實施方案中,語音辨識、行動執行及文字至語音回應之整個資料流可在不喚醒裝置之主CPU叢集540的情況下執行。
例如,若一使用者提供語音命令「大聲點」,則環境ML引擎534可產生表示對應於增加由裝置播放之音樂之音量之一語音命令之音訊信號之一輸出。機器學習引擎534可將輸出提供至低功率CPU 532,該低功率CPU 532可藉由將一信號發出至一或多個整合揚聲器子系統而實行
命令。低功率CPU 532可接著將一文字回應「音量級5」提供至環境ML引擎534。環境ML引擎534可接著使用文字至語音模型處理文字回應以產生一音訊輸出,裝置可透過一或多個整合揚聲器子系統播放該音訊輸出。因此,環境運算系統510在不喚醒裝置之主CPU的情況下處理整個對話序列。
環境ML引擎534亦可實施各種其他模型之任一者。環境ML引擎534亦可實施一手勢辨識模型,該手勢辨識模型解譯由運算裝置之一使用者做出之手勢之特徵。例如,至模型之輸入可為由運算裝置接收之經處理雷達信號,且模型之輸出可為對使用者已做出之手勢之預測。各手勢可對應於一特定命令,且環境ML引擎534可將輸出提供至低功率CPU 532或另一處理組件以進行進一步行動。
環境ML引擎534可包含用於儲存模型參數及其他模型組態資訊之一或多個記憶體庫。例如,機器學習引擎534可儲存表示神經網路連接及神經網路參數之資料。環境ML引擎534可包含用於運算神經網路啟動或其他神經網路層輸出之一或多個乘積累加(MAC)單元及一或多個總和暫存器以及用於控制記憶體庫與MAC單元之間的資料交換之一控制器。環境ML引擎534亦可包含指令記憶體、直接記憶體存取路徑、暫存器及其他處理組件。在一些實施方案中,環境ML引擎534係經組態以使機器學習推理遍次之運算加速之一機器學習運算塊。
低功率DSP 536及高功率DSP 538係經組態用於高度向量化信號之高效解碼及處理之專用處理器。處理子系統530可包含針對不同目的設計之各種DSP。例如,處理子系統530可包含經組態以處理雷達信號之一DSP、經組態以處理音訊信號之一DSP、經組態以執行資料平面演算
法之一DSP、經組態以處理無線通信信號之一DSP及經組態以處理GPS信號之一DSP(僅舉幾例)。
如上文描述,低功率DSP 536可執行來自控制子系統520之感測器信號之初始解譯。低功率DSP 536亦可執行其他信號處理任務。一般言之,由於高功率DSP具有更多作用暫存器,所以其等消耗高於低功率DSP之功率位準,由於其等更重度依賴於記憶體操作,所以其等並行存取及處理更多資料,或此等之某一組合。
控制子系統520亦可包含一計時器529,該計時器529係可偵測系統故障且解決該等故障之一電子計時器。在正常操作期間,系統可定期重設計時器529以防止計時器529逾時。例如,若系統歸因於一硬體故障或一程式錯誤而無法重設一計時器,則計時器將消逝且產生一逾時信號。逾時信號可用於起始一或多個校正行動。一校正行動可包含將系統置於一安全狀態中且恢復正常系統操作。
本說明書中描述之標的物及功能操作之實施例可在以下項中實施:數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(包含本說明書中揭示之結構及其等結構等效物),或其等之一或多者之組合。本說明書中描述之標的物之實施例可實施為一或多個電腦程式,即,編碼於一有形非暫時性儲存媒體上以由資料處理設備執行或控制資料處理設備之操作的電腦程式指令之一或多個模組。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。替代地或另外,可將程式指令編碼於一人工產生之傳播信號(例如,一機器產生之電信號、光學信號或電磁信號)上,該傳播信號經產生以編碼用於傳輸至適合接收器設備之資訊以由一資料處理設備執行。
本實施例包含使系統進入一低功率狀態中之系統及方法。該系統包含:多個整合式用戶端裝置,其等包含經組態以在該系統處於一低功率狀態中時控制該系統之操作之一環境運算裝置;一記憶體控制器,其經組態以從一記憶體裝置讀取資料以供該等用戶端裝置消耗;及一快取區,其經組態以將由該環境運算裝置發出之資料請求快取至該記憶體控制器。該系統經組態以藉由執行包含以下步驟之操作而進入該低功率狀態:藉由該環境運算裝置執行一預取程序,該預取程序將該環境運算裝置在處於該低功率狀態中時處理至該系統之輸入所需之經預取指令及資料填入該快取區;及進入該低功率狀態。在該低功率狀態中,該環境運算裝置經組態以使用儲存於該快取區中之該等經預取指令及資料處理至該系統之輸入。
在一些實施例中,該快取區係經組態以針對該多個整合式用戶端裝置之各者將資料請求快取至該記憶體控制器之一系統級快取區。在一些實施例中,該快取區係經組態以僅為針對該環境運算裝置而非針對該等其他整合式用戶端裝置之任一者之記憶體請求服務之一本端快取區。
執行該預取程序可增加在該低功率狀態期間可用於該環境運算裝置之SRAM記憶體之一量。在一些實施例中,在該低功率狀態期間可用於該環境運算裝置之該記憶體包含該環境運算裝置之一內部SRAM及該快取區之SRAM。
在一些實施例中,在該低功率狀態中,該環境運算裝置經組態以使用該等經預取指令及資料處理至該運算裝置之該等輸入而不喚醒該記憶體裝置或喚醒該記憶體控制器。
執行該預取程序可包含發出預取儲存記憶體請求,該等預
取儲存記憶體請求為該環境運算裝置在該低功率狀態期間將儲存之資料分配該快取區中之快取線。該預取可儲存各將虛擬資料寫入至該快取區之記憶體請求。
在一些實施例中,該系統包含多個快取區之一階層,其包含經組態以針對該多個整合式用戶端裝置之各者將資料請求快取至該記憶體控制器之一系統級快取區。進入該低功率狀態可包含:判定待藉由處於該低功率狀態中之該環境運算裝置執行之一低功率程序之一記憶體大小;基於待藉由處於該低功率狀態中之該環境運算裝置執行之該低功率程序之該記憶體大小判定多個快取區之該階層中之哪一快取區應用於儲存該環境運算裝置在處於該低功率狀態中時處理至該系統之輸入所需之該等經預取指令及資料;及基於該判定從該階層中之該多個快取區中選擇該快取區。
進入該低功率狀態可包含使在快取區之該階層中低於該選定快取區之全部快取區斷電。進入該低功率狀態可包含使至在快取區之該階層中低於該選定快取區之該等快取區之全部資料路徑斷電。使在快取區之該階層中低於該選定快取區之全部快取區斷電可包含使該系統級快取區斷電。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料之各種設備、裝置及機器,包含例如一可程式化處理器、一電腦或多個處理器或電腦。設備亦可為或進一步包含專用邏輯電路,例如一FPGA(場可程式化閘陣列)或一ASIC(特定應用積體電路)。除硬體之外,設備亦可視情況包含產生電腦程式之一執行環境之程式碼,例如構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。
一電腦程式(其亦可被稱為或描述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一指令檔或程式碼)可以任何形式之程式設計語言(包含編譯或解譯語言或宣告或程序語言)撰寫,且其可部署為任何形式,包含作為一獨立程式或作為一模組、組件、副常式或適用於一運算環境中之其他單元。一程式可(但無需)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令檔)之一檔案之一部分中、儲存於專用於所述程式之一單一檔案中,或儲存於多個協同檔案(例如,儲存一或多個模組、子程式或程式碼之部分之檔案)中。一電腦程式可經部署以在一個電腦上或在定位於一個位點處或跨多個位點分佈且藉由一通信網路互連之多個電腦上執行。
一或多個電腦之一系統經組態以執行特定操作或行動意謂該系統上已安裝其軟體、韌體、硬體或其等之一組合,該軟體、韌體、硬體或其等之一組合在操作中導致該系統執行操作或行動。一或多個電腦程式經組態以執行特定操作或行動意謂一或多個程式包含當藉由資料處理設備執行時導致該設備執行操作或行動之指令。
本說明書中描述之程序及邏輯流程可由專用邏輯電路(例如,一FPGA或一ASIC)或由專用邏輯電路與一或多個程式化電腦之一組合執行。
適於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體裝置,包含例如:半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換式磁碟;磁光碟;及CD-ROM及DVD-ROM光碟。
為提供與一使用者之互動,本說明書中描述之標的物之實施例可在一主機裝置上實施,該主機裝置具有用於顯示資訊給使用者之一顯示裝置(例如,一電子顯示器)及使用者可藉由其提供輸入至主機裝置之一鍵盤及指標裝置(例如,一滑鼠、軌跡球或一存在敏感顯示器或其他表面)。其他類型之裝置亦可用於提供與一使用者之互動;例如,提供給使用者之回饋可為任何形式之感覺回饋,例如視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式接收,包含聲學、語音或觸覺輸入。另外,一主機裝置可藉由將文件發送至供一使用者使用之一裝置及自該裝置接收文件(例如藉由回應於自一使用者之裝置上之一網頁瀏覽器接收之請求而將網頁發送至該網頁瀏覽器)而與使用者互動。而且,一主機裝置可藉由發送文字訊息或其他形式之訊息至一個人裝置(例如一智慧型電話)、運行一傳訊應用程式及接收自使用者返回之回應訊息而與使用者互動。
雖然本說明書含有許多特定實施方案細節,但此等不應被解釋為對任何發明之範疇或者可主張之內容之範疇之限制,而應當解釋為可特定於特定發明之特定實施例之特徵之描述。本說明書中在單獨實施例之內容脈絡中描述之某些特徵亦可實施在一單一實施例中組合。相反地,在一單一實施例之內容脈絡中描述之各種特徵亦可單獨地或者以任何合適之子組合在多個實施例中實施。而且,儘管上文可將特徵描述為以特定組合起作用且甚至最初如此主張,但在一些情況中,來自所主張組合之一或多個特徵可自組合中免除,且所主張組合可係關於一子組合或一子組合之變動。
類似地,雖然在圖式中按一特定順序描繪操作,但此不應
被理解為要求按所展示之特定順序或循序順序執行此等操作,或執行所有繪示之操作以達成所要結果。在特定境況中,多任務處理及平行處理可為有利的。而且,在上文中描述之實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中皆需要此分離,且應理解所描述之程式組件及系統可大體上一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下發明申請專利範圍之範疇內。例如,在發明申請專利範圍中敘述之動作可按一不同順序執行且仍達成所要結果。作為一個實例,在附圖中描繪之程序不必要求所展示之特定順序或依序順序來達成所要結果。在特定一些情況中,多任務處理及平行處理可為有利的。
100:系統
102:系統單晶片(SOC)
110a至110n:用戶端裝置
120:快取區/系統級快取區(SLC)
122:快取區/本端快取區
130:記憶體控制器
140:記憶體裝置
150:系統單晶片(SOC)網狀架構
152:通信路徑
154:通信路徑
160:環境運算裝置(ACD)
Claims (20)
- 一種電腦系統,其包括:多個整合式用戶端裝置,其等包含經組態以在該系統處於一低功率狀態中時控制該系統之操作的一環境運算裝置;一快取區(cache),其經組態以快取由該環境運算裝置發出之資料請求;及一硬體功率管理器,其控制該系統之組件之功率,其中該系統經組態以藉由執行包括以下步驟之操作而從該低功率狀態執行一部分功率轉變:在該系統處於該低功率狀態中時,藉由該環境運算裝置判定對該環境計算裝置之一服務請求需要該系統之該快取區中缺少的特定資訊,及藉由該硬體功率管理器,在不喚醒該系統之所有組件的情況下,啟動為獲得該特定資訊所必需的該系統之一或多個組件。
- 如請求項1之電腦系統,其中該等操作進一步包括:藉由該環境運算裝置判定該特定資訊所儲存之一特定位置;及藉由該環境運算裝置對該硬體功率管理器請求供電(power up)到該特定位置之一資料路徑。
- 如請求項1之電腦系統,其中該等操作進一步包括:藉由該環境運算裝置將該特定資訊提取(fetch)至該快取區;及 回應於該提取,藉由該硬體功率管理器使該系統之該一或多個組件斷電(power down)。
- 如請求項3之電腦系統,其中在該系統處於該低功率狀態中時,該快取區經分區以包含該環境運算裝置為處理該系統的輸入所需要之指令及資料的特定通道(particular ways),且其中該特定資訊被提取至該等特定通道中。
- 如請求項1之電腦系統,其中該等整合式用戶端裝置之至少一者為一感測器,且該等操作進一步包括藉由該環境運算裝置自該感測器接收該服務請求。
- 如請求項1之電腦系統,其中該快取區為一系統級快取區,該系統級快取區經組態而為該系統之該等多個整合式用戶端裝置之每一者快取資料請求。
- 如請求項1之電腦系統,其中該快取區為一本端快取區,該本端快取區經組態而僅為該環境運算裝置服務記憶體請求,且不為該系統之任何其他整合式用戶端裝置服務記憶體請求。
- 如請求項1之電腦系統,其中該系統經組態以自一記憶體裝置讀取資料,且其中在該低功率狀態期間,到該記憶體裝置之路徑被斷電。
- 如請求項1之電腦系統,其中在該低功率狀態期間,該等整合式用戶端裝置之至少一些被斷電。
- 如請求項1之電腦系統,其中該快取區為該系統中一快取階層中之一特定快取區,且其中在該低功率狀態期間,在該快取階層中低於該特定快取區的所有快取區都被斷電。
- 一種用於處理一系統之輸入的電腦可實施方法,該系統包括多個整合式用戶端裝置,其等包含一環境運算裝置,該方法包括:在該系統處於一低功率狀態中時,藉由該環境運算裝置,從該系統之一用戶端裝置接收一服務請求;藉由該環境運算裝置判定該服務請求需要該系統之一快取區中缺少的特定資訊,其中在該系統處於該低功率狀態中時該環境運算裝置為處理該系統之輸入所需之經預取指令及資料(prefetched instructions and data)填入(populate)該快取區;及在不喚醒該系統之所有組件的情況下,啟動為獲得該特定資訊所必需的該系統之一或多個組件。
- 如請求項11之方法,其進一步包括:藉由該環境運算裝置判定該特定資訊所儲存之一特定位置;及藉由該環境運算裝置請求供電(power up)到該特定位置之一資料路 徑。
- 如請求項11之方法,其進一步包括:藉由該環境運算裝置將該特定資訊提取(fetch)至該快取區;及回應於該提取,使該系統之該一或多個組件斷電(power down)。
- 如請求項13之方法,其進一步包括在該系統處於該低功率狀態中時,使該快取區分區以包含該環境運算裝置為處理該系統之輸入所需之該等指令及資料的特定通道(particular ways),其中該特定資訊被提取至該等特定通道中。
- 如請求項11之方法,其中該用戶端裝置為該系統之一感測器。
- 如請求項11之方法,其中該快取區為一系統級快取區,該系統級快取區經組態而為該系統之該等多個整合式用戶端裝置之每一者快取資料請求。
- 如請求項11之方法,其中該快取區為一本端快取區,該本端快取區經組態而僅為該環境運算裝置服務記憶體請求,且不為該系統之任何其他整合式用戶端裝置服務記憶體請求。
- 如請求項11之方法,其中該系統經組態以自一記憶體裝置讀取資料,且 其中在該低功率狀態期間,到該記憶體裝置之路徑被斷電。
- 如請求項11之方法,其中在該低功率狀態期間,該等整合式用戶端裝置之至少一些被斷電。
- 如請求項11之方法,其中該快取區為該系統中一快取階層中之一特定快取區,且其中在該低功率狀態期間,在該快取階層中低於該特定快取區的所有快取區都被斷電。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962805207P | 2019-02-13 | 2019-02-13 | |
US62/805,207 | 2019-02-13 | ||
US16/518,644 | 2019-07-22 | ||
US16/518,644 US11023379B2 (en) | 2019-02-13 | 2019-07-22 | Low-power cached ambient computing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202223883A TW202223883A (zh) | 2022-06-16 |
TWI815323B true TWI815323B (zh) | 2023-09-11 |
Family
ID=71944831
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112132224A TW202401413A (zh) | 2019-02-13 | 2019-11-29 | 用於進入低功率狀態之電腦可實施方法以及相關運算系統 |
TW111107141A TWI815323B (zh) | 2019-02-13 | 2019-11-29 | 用於進入低功率狀態之電腦可實施方法以及相關運算系統 |
TW108143750A TWI759656B (zh) | 2019-02-13 | 2019-11-29 | 用於進入低功率狀態之方法以及相關運算系統 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112132224A TW202401413A (zh) | 2019-02-13 | 2019-11-29 | 用於進入低功率狀態之電腦可實施方法以及相關運算系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108143750A TWI759656B (zh) | 2019-02-13 | 2019-11-29 | 用於進入低功率狀態之方法以及相關運算系統 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11023379B2 (zh) |
EP (1) | EP3850489A1 (zh) |
KR (3) | KR102536359B1 (zh) |
CN (2) | CN118227520A (zh) |
TW (3) | TW202401413A (zh) |
WO (1) | WO2020167358A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023379B2 (en) | 2019-02-13 | 2021-06-01 | Google Llc | Low-power cached ambient computing |
TWI695313B (zh) * | 2019-02-15 | 2020-06-01 | 矽統科技股份有限公司 | 音訊介面偵測裝置及方法 |
US11256318B2 (en) * | 2019-08-09 | 2022-02-22 | Intel Corporation | Techniques for memory access in a reduced power state |
US11996166B2 (en) * | 2019-08-29 | 2024-05-28 | Advanced Micro Devices, Inc. | Adaptable allocation of SRAM based on power |
US20220004399A1 (en) * | 2020-07-03 | 2022-01-06 | Mediatek Inc. | Dynamic loading neural network inference at dram/on-bus sram/serial flash for power optimization |
EP4182794A1 (en) * | 2020-09-11 | 2023-05-24 | Google LLC | Hardware-based save-and-restore controller |
US20240111442A1 (en) * | 2022-09-29 | 2024-04-04 | Advanced Micro Devices, Inc. | On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display |
US12079062B2 (en) * | 2022-10-21 | 2024-09-03 | Quanta Computer Inc. | Method and system for providing power saving in computer systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160274648A1 (en) * | 2015-03-19 | 2016-09-22 | Phison Electronics Corp. | Method of enabling sleep mode, memory control circuit unit and storage apparatus |
TWI609260B (zh) * | 2013-09-27 | 2017-12-21 | 英特爾公司 | 用於使平台子系統平行進入一較低功率狀態之技術 |
US20180074566A1 (en) * | 2016-09-12 | 2018-03-15 | Canon Kabushiki Kaisha | Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium |
TWI628599B (zh) * | 2010-12-21 | 2018-07-01 | 英特爾股份有限公司 | 用於使處理元件提早離開深度睡眠狀態的處理器和設備 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311280B1 (en) * | 1999-02-22 | 2001-10-30 | Nband Communications | Low-power memory system with incorporated vector processing |
US7493621B2 (en) * | 2003-12-18 | 2009-02-17 | International Business Machines Corporation | Context switch data prefetching in multithreaded computer |
US7174471B2 (en) * | 2003-12-24 | 2007-02-06 | Intel Corporation | System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached |
EP1653331B8 (en) * | 2004-10-29 | 2012-03-14 | ST-Ericsson SA | An apparatus and method for entering and exiting low power mode |
US7869835B1 (en) | 2005-03-02 | 2011-01-11 | Nvidia Corporation | Method and system for pre-loading and executing computer instructions within the cache memory |
KR100685664B1 (ko) * | 2005-08-12 | 2007-02-26 | 삼성전자주식회사 | 호스트 및 클라이언트로 구성된 데이터 통신 시스템 및데이터 통신 시스템의 작동 방법 |
US7937526B1 (en) * | 2007-06-29 | 2011-05-03 | Marvell International Ltd. | Storage device cache with phase change memory |
US8103894B2 (en) * | 2009-04-24 | 2012-01-24 | International Business Machines Corporation | Power conservation in vertically-striped NUCA caches |
US8285519B2 (en) | 2009-12-03 | 2012-10-09 | Osocad Remote Limited Liability Company | System and method for operating a network of sensors |
US8627123B2 (en) * | 2010-03-25 | 2014-01-07 | Microsoft Corporation | Managing power provisioning in distributed computing |
CN103338272B (zh) * | 2013-07-23 | 2016-08-10 | 星云融创(北京)科技有限公司 | 一种内容分发网络及其缓存实现方法 |
US9778728B2 (en) | 2014-05-29 | 2017-10-03 | Apple Inc. | System on a chip with fast wake from sleep |
US10089238B2 (en) | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
WO2016023448A1 (en) * | 2014-08-11 | 2016-02-18 | Mediatek Inc. | Dynamic memory control method and system thereof |
US10198274B2 (en) * | 2015-03-27 | 2019-02-05 | Intel Corporation | Technologies for improved hybrid sleep power management |
US10382304B2 (en) * | 2015-03-31 | 2019-08-13 | Motorola Mobility Llc | Methods and apparatus for controlling multiple-input and multiple-output operation in a communication device based on quality of service |
US20170024145A1 (en) | 2015-07-23 | 2017-01-26 | Qualcomm Incorporated | Address translation and data pre-fetch in a cache memory system |
US20170038813A1 (en) | 2015-08-05 | 2017-02-09 | Qualcomm Incorporated | System and method for cache aware low power mode control in a portable computing device |
US10127018B2 (en) * | 2016-03-30 | 2018-11-13 | Qualcomm Incorporated | Dynamic addition of code in shared libraries |
US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
EP3514705A1 (en) * | 2018-01-23 | 2019-07-24 | Becker, Stefan | Method for retrieving data stored in a database |
US11010067B2 (en) * | 2018-12-28 | 2021-05-18 | Intel Corporation | Defense against speculative side-channel analysis of a computer system |
US11023379B2 (en) | 2019-02-13 | 2021-06-01 | Google Llc | Low-power cached ambient computing |
-
2019
- 2019-07-22 US US16/518,644 patent/US11023379B2/en active Active
- 2019-11-26 EP EP19821484.3A patent/EP3850489A1/en active Pending
- 2019-11-26 KR KR1020217010501A patent/KR102536359B1/ko active Application Filing
- 2019-11-26 WO PCT/US2019/063274 patent/WO2020167358A1/en unknown
- 2019-11-26 KR KR1020247010748A patent/KR20240046922A/ko active IP Right Grant
- 2019-11-26 KR KR1020237016762A patent/KR102654723B1/ko active IP Right Grant
- 2019-11-26 CN CN202410191547.8A patent/CN118227520A/zh active Pending
- 2019-11-26 CN CN201980067609.1A patent/CN112840329B/zh active Active
- 2019-11-29 TW TW112132224A patent/TW202401413A/zh unknown
- 2019-11-29 TW TW111107141A patent/TWI815323B/zh active
- 2019-11-29 TW TW108143750A patent/TWI759656B/zh active
-
2021
- 2021-05-20 US US17/325,899 patent/US11599471B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI628599B (zh) * | 2010-12-21 | 2018-07-01 | 英特爾股份有限公司 | 用於使處理元件提早離開深度睡眠狀態的處理器和設備 |
TWI609260B (zh) * | 2013-09-27 | 2017-12-21 | 英特爾公司 | 用於使平台子系統平行進入一較低功率狀態之技術 |
US20160274648A1 (en) * | 2015-03-19 | 2016-09-22 | Phison Electronics Corp. | Method of enabling sleep mode, memory control circuit unit and storage apparatus |
US20180074566A1 (en) * | 2016-09-12 | 2018-03-15 | Canon Kabushiki Kaisha | Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
TW202401413A (zh) | 2024-01-01 |
TWI759656B (zh) | 2022-04-01 |
WO2020167358A1 (en) | 2020-08-20 |
CN112840329B (zh) | 2024-03-05 |
KR102536359B1 (ko) | 2023-05-30 |
US20200257627A1 (en) | 2020-08-13 |
US20210342269A1 (en) | 2021-11-04 |
EP3850489A1 (en) | 2021-07-21 |
CN118227520A (zh) | 2024-06-21 |
US11599471B2 (en) | 2023-03-07 |
US11023379B2 (en) | 2021-06-01 |
CN112840329A (zh) | 2021-05-25 |
TW202046298A (zh) | 2020-12-16 |
KR20230074305A (ko) | 2023-05-26 |
KR20240046922A (ko) | 2024-04-11 |
TW202223883A (zh) | 2022-06-16 |
KR102654723B1 (ko) | 2024-04-08 |
KR20210053334A (ko) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI815323B (zh) | 用於進入低功率狀態之電腦可實施方法以及相關運算系統 | |
US11714477B2 (en) | Low-power ambient computing system with machine learning | |
TWI816566B (zh) | 用於將外部記憶體虛擬化為機器學習加速器之局部記憶體之裝置及系統 |