色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在MAX78000上開(kāi)發(fā)功耗優(yōu)化應(yīng)用

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-02-17 11:20 ? 次閱讀

功耗是邊緣人工智能AI) 應(yīng)用的關(guān)鍵因素,其中整個(gè)系統(tǒng)由小型電池供電,預(yù)計(jì)無(wú)需充電或更換電池即可運(yùn)行數(shù)月。MAX78000超低功耗AI微控制器專為物聯(lián)網(wǎng)邊緣的此類應(yīng)用而設(shè)計(jì)。本文介紹了各種配置,使用戶能夠在MAX78000上開(kāi)發(fā)功耗優(yōu)化應(yīng)用,并提供基準(zhǔn)測(cè)試示例。功耗優(yōu)化方法應(yīng)用于兩個(gè)案例研究應(yīng)用:20個(gè)關(guān)鍵詞的關(guān)鍵詞發(fā)現(xiàn)(KWS20)和人臉識(shí)別(FaceID),報(bào)告的結(jié)果可作為用戶應(yīng)用的指南。

介紹

MAX78000為超低功耗微控制器,具有專用卷積神經(jīng)網(wǎng)絡(luò)(CNN)加速器。這種架構(gòu)能夠在能源受限的環(huán)境中開(kāi)發(fā)非常節(jié)能的 AI 應(yīng)用程序。MAX78000提供多種選擇,便于開(kāi)發(fā)低功耗應(yīng)用(詳見(jiàn)數(shù)據(jù)資料[1]),例如可根據(jù)目標(biāo)應(yīng)用選擇不同的振蕩器時(shí)鐘源和工作模式。以下部分概述了這些選項(xiàng),包括MAX78000評(píng)估板的實(shí)際示例和實(shí)際測(cè)量結(jié)果。有關(guān)詳細(xì)信息,請(qǐng)遵循本文檔中的參考資料

注:本應(yīng)用筆記給出的測(cè)量結(jié)果基于MAX78000評(píng)估板上的示例代碼。用戶平臺(tái)和特定應(yīng)用程序的實(shí)際結(jié)果可能會(huì)有所不同。

MAX78000

MAX78000是新一代AI微控制器,用于以超低功耗執(zhí)行神經(jīng)網(wǎng)絡(luò),并位于物聯(lián)網(wǎng)邊緣。該產(chǎn)品將最節(jié)能的AI處理與Maxim Integrated成熟的超低功耗微控制器相結(jié)合。基于硬件的 CNN 加速器使電池供電的應(yīng)用程序能夠執(zhí)行 AI 推理,同時(shí)僅消耗微焦耳的能量。MAX78000具有帶FPU微控制器的Atarm Cortex-M4,通過(guò)超低功耗深度神經(jīng)網(wǎng)絡(luò)加速器實(shí)現(xiàn)高效的系統(tǒng)控制。還集成了一個(gè)RISC-V內(nèi)核,可以執(zhí)行應(yīng)用和控制代碼以及驅(qū)動(dòng)CNN加速器。圖1所示為MAX78000的頂層架構(gòu)。

pYYBAGPu8nqARp5uAACo-uh3EhY945.jpg?imgver=1

圖1.MAX78000的結(jié)構(gòu)

MAX78000評(píng)估板(EV kit)提供了一個(gè)平臺(tái),利用MAX78000的功能構(gòu)建新一代AI器件。評(píng)估板具有板載硬件,如數(shù)字麥克風(fēng)、串行端口、攝像頭模塊支持和3.5英寸觸摸彩色薄膜晶體管TFT)顯示屏[2]。它還包括用于監(jiān)控和顯示功率電平的電路。MAX34417 [3] 監(jiān)測(cè) VCOREA 和 VCOREB 電壓以及

pYYBAGPu8nyAFhiCAABOERtMmcA564.jpg?imgver=1

圖2.電源監(jiān)視器。

MAX78000,并將累積功率報(bào)告給MAX32625,MAX2用作電源數(shù)據(jù)處理器,同時(shí)控制功率顯示,如圖<>所示。

電源監(jiān)視器以兩種模式運(yùn)行;瞬時(shí),顯示平均功率、電源電流和電壓,以及窗口能量累積,根據(jù)觸發(fā)事件測(cè)量 CNN 功率或總系統(tǒng)功率。瞬時(shí)測(cè)量通常用于快速、粗略地估計(jì)功率電平。另一方面,窗口測(cè)量非常適合測(cè)量用戶定義的開(kāi)始實(shí)例和完整實(shí)例之間的累積能量。這些事件由MAX78000的兩個(gè)GPIO(P0.2和P0.3)的切換觸發(fā),這兩個(gè)GPIO也連接到LED1和LED2以及MAX32625功率數(shù)據(jù)處理器的端口。有關(guān)使用電源監(jiān)視器的詳細(xì)信息,請(qǐng)參閱 [4]。

MAX78000時(shí)鐘和工作模式

MAX78000支持不同的時(shí)鐘源和低功耗工作模式,可聯(lián)合配置以實(shí)現(xiàn)優(yōu)化的功耗和性能。本應(yīng)用筆記簡(jiǎn)要介紹了每種模式,以指導(dǎo)讀者根據(jù)所需應(yīng)用設(shè)置模式。有關(guān)更詳細(xì)的描述,請(qǐng)參閱 [5]。

時(shí)鐘

MAX78000包括多個(gè)可配置時(shí)鐘,供不同外設(shè)使用。用戶可以根據(jù)需要配置時(shí)鐘源,以選擇性能和電源效率的組合。選定的系統(tǒng)振蕩器(SYS_OSC)是大多數(shù)內(nèi)部模塊的時(shí)鐘源。以下振蕩器源可用,可以選擇SYS_OSC:

內(nèi)部初級(jí)振蕩器 (IPO) – 100MHz:
IPO 是頻率最快的振蕩器,消耗的功率最大。當(dāng)進(jìn)入低功耗模式(LPM)時(shí),該振蕩器可以關(guān)斷。

內(nèi)部次級(jí)振蕩器 (ISO) – 60MHz:
這是一款低功耗內(nèi)部次級(jí)振蕩器,是SYS_OSC的上電復(fù)位默認(rèn)設(shè)置。

內(nèi)部納米環(huán)振蕩器 (INRO) – 8kHz-30kHz:
INRO 是一種超低功耗內(nèi)部振蕩器,可以選擇作為SYS_OSC并始終啟用。頻率可配置為 8kHz、16kHz 或 30kHz(默認(rèn))。

內(nèi)部波特率振蕩器 (IBRO) – 7.3728MHz:
這是一款功耗非常低的內(nèi)部振蕩器,可以選擇作為SYS_OSC。該時(shí)鐘可以選擇用作UART的專用波特率時(shí)鐘。

外部實(shí)時(shí)時(shí)鐘振蕩器 (ERTCO) – 32.768kHz:
ERTCO 是一款功耗極低的內(nèi)部振蕩器,可以選擇作為SYS_OSC。ERTCO可以選擇使用32.768kHz輸入時(shí)鐘或8kHz獨(dú)立納米環(huán)振蕩器代替外部晶體。該振蕩器是實(shí)時(shí)時(shí)鐘 (RTC) 的默認(rèn)時(shí)鐘,一旦啟用 RTC,就會(huì)自動(dòng)啟用。

所選SYS_OSC是系統(tǒng)振蕩器分頻器的輸入,用于生成系統(tǒng)時(shí)鐘 (SYS_CLK)。分頻器可在 0 到 7 之間選擇,得到 1、2、4、8、16、32、64 或 128 的除數(shù)。SYS_CLK驅(qū)動(dòng)帶有 FPU 內(nèi)核的 Arm Cortex-M4,以及系統(tǒng)中的所有高級(jí)高性能總線 (AHB) 主站。通過(guò)兩個(gè)分頻器的固定分頻后,它還可以生成高級(jí)外設(shè)總線(APB)時(shí)鐘,為CNN加速器、RISC-V和外設(shè)供電。有關(guān)時(shí)鐘源、配置和要設(shè)置的寄存器列表的更多詳細(xì)信息,請(qǐng)參閱 [3] 的第 1.5 節(jié)。

表 1 中列出了用于設(shè)置時(shí)鐘的 API

應(yīng)用程序接口 描述
int MXC_SYS_ClockSourceEnable (mxc_sys_system_clock_t clock) 啟用時(shí)鐘源而不選擇它;以下來(lái)源可用:
MXC_SYS_CLOCK_IPO、MXC_SYS_CLOCK_IBRO、MXC_SYS_CLOCK_ISO、MXC_SYS_CLOCK_INRO、MXC_SYS_CLOCK_ERTCO MXC_SYS_CLOCK_EXTCLK
int MXC_SYS_Clock_Select (mxc_sys_system_clock_t clock) 選擇要用于SYS_CLK的時(shí)鐘源;有關(guān)列表,請(qǐng)參閱時(shí)鐘部分
void SystemCoreClockUpdate(void) 根據(jù)所選時(shí)鐘源更新系統(tǒng)核心時(shí)鐘
無(wú)效MXC_SYS_ClockEnable(mxc_sys_periph_clock_t時(shí)鐘) 支持外設(shè)時(shí)鐘:
MXC_SYS_PERIPH_CLOCK_GPIO0 至 2
MXC_SYS_PERIPH_CLOCK_DMA
MXC_SYS_PERIPH_CLOCK_SPI0和 1
MXC_SYS_PERIPH_CLOCK_UART0 至 3
MXC_SYS_PERIPH_CLOCK_I2C0 至 2
MXC_SYS_PERIPH_CLOCK_TMR0 至 5
MXC_SYS_PERIPH_CLOCK_ADC
MXC_SYS_PERIPH_CLOCK_CNN
MXC_SYS_PERIPH_CLOCK_PT
MXC_SYS_PERIPH_CLOCK_TRNG
MXC_SYS_PERIPH_CLOCK_SMPHR
MXC_SYS_PERIPH_CLOCK_OWIRE

MXC_SYS_PERIPH_CLOCK_CRC MXC_SYS_PERIPH_CLOCK_AES
MXC_SYS_PERIPH_CLOCK_I2S
MXC_SYS_PERIPH_CLOCK_PCIF
MXC_SYS_PERIPH_CLOCK_WDT0
MXC_SYS_PERIPH_CLOCK_CPU1 // RISC-V 時(shí)鐘
MXC_SYS_PERIPH_CLOCK_WDT1
MXC_SYS_PERIPH_CLOCK_LPCOMP1 至 3
無(wú)效MXC_SYS_ClockDisable(mxc_sys_periph_clock_t時(shí)鐘) 禁用外設(shè)時(shí)鐘;有關(guān)列表,請(qǐng)參閱時(shí)鐘部分

操作模式

MAX78000包括多種工作模式,能夠微調(diào)電源選項(xiàng)以優(yōu)化性能和功耗。系統(tǒng)支持以下操作模式,如表 2 所示。

Operation Mode Arm RISC-V Oscillators System CNN Quadrants CNN RAM Peripherals
ACTIVE On On All available Available Active, Configurable Active, Configurable Available
SLEEP Retention On/ Retention All available Available Active, Configurable Active, Configurable Available
LPM Retention On/ Retention ISO, IBRO,
ERTCO, INRO
0,1: Retention
2,3: Available
Active, Configurable Active, Configurable Available
UPM Retention Retention IBRO,
ERTCO, INRO
Retention Optionally off Selectable retention Retention,
LPUART0, LPTMR0-1 LPWDT0, LPCOMP0-3,
GPIO, WUT, RTC available
STANDBY Retention Retention IBRO,
ERTCO, INRO
Retention Off Selectable retention Retention,
WUT, RTC, COMP0, GPIO available
BACKUP Off Off ERCO Configurable
retention
Off Selectable retention Off
WUT, RTC, COMP0, GPIO available
POWER
DOWN
Off Off Off Off Off Off Off,
Configurable P3.0/1

活動(dòng)模式:

在這種模式下,Arm 和 RISC-V 內(nèi)核都可以執(zhí)行應(yīng)用代碼,并且所有數(shù)字和模擬外設(shè)均可按需提供。動(dòng)態(tài)時(shí)鐘禁用未使用的外設(shè),提供高性能和低功耗的最佳組合。每個(gè)外設(shè)都可以在活動(dòng)模式下單獨(dú)使能或斷電。CNN 和四個(gè) CNNx16_n 處理器陣列中的每一個(gè)及其相關(guān)存儲(chǔ)器都可以根據(jù)需要關(guān)閉電源或設(shè)置為活動(dòng)狀態(tài)。

睡眠模式:

當(dāng) Arm 或 RISC-V 執(zhí)行代碼時(shí),可以使用此模式,在此期間,另一個(gè)進(jìn)入睡眠狀態(tài)以降低功耗。可以選擇啟用時(shí)鐘以加快喚醒過(guò)程。CNN 可供使用,四個(gè)CNNx16_n象限中的每一個(gè)都可以單獨(dú)配置為關(guān)斷。除非明確禁用,否則所有外圍設(shè)備均處于打開(kāi)狀態(tài)

To enter SLEEP Mode:
     SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;  // Needed just once

Either directly set sleep mode bit in MXC_GCR->pm register, or use WFI instruction:
?  MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
MXC_GCR->pm   |= MXC_S_GCR_PM_MODE_CM4;
?  Or use WFI:
o   Arm:  __WFI(); // Enter to sleep and wait for interrupt to wake up
o   RISC-V: asm volatile("wfi");

To enter into this mode on Arm, MXC_LP_EnterSleepMode() API call can also be used.

低功耗模式:

如果RISC-V希望在Arm處于深度睡眠狀態(tài)時(shí)從啟用的外設(shè)收集和移動(dòng)數(shù)據(jù),則可以使用此模式。如果未使用 RISC-V 并且處于睡眠模式,則 Arm 還可以處理數(shù)據(jù)并在外圍設(shè)備或 CNN 處于活動(dòng)狀態(tài)并在中斷時(shí)喚醒時(shí)切換到 LPM。Arm、DMA 和 SPI0 處于狀態(tài)保留狀態(tài)。CNN 象限、內(nèi)存和其他外設(shè)處于活動(dòng)狀態(tài)且可配置。請(qǐng)注意,CNN 只能喚醒 RISC-V,而不能喚醒 LPM 中的 Arm。在這種情況下,如果 CNN 處理時(shí)間已知,則喚醒計(jì)時(shí)器 (WUT) 可用于喚醒 Arm。或者,CNN中斷可以喚醒RISC-V,RISC-V反過(guò)來(lái)可以喚醒Arm,然后RISC-V可以重新進(jìn)入睡眠狀態(tài)。

Before going to LPM:
Make sure the clock source is enabled during LPM in MXC_GCR->pm, for example:
 MXC_GCR->pm &= ~MXC_F_GCR_PM_ISO_PD;  // enable ISO during sleep

Power Sequencer Registers (PWRSEQ) are used to configure clock source and wake up source. The clock source for peripherals and RISC-V needs to be specified. By default, it uses ISO during LPM. If needed, set this field to 1 to use the PCLK (APB Clock = SYS_CLK/2)
PWRSEQ_LPCN ->lpcn |= MXC_F_PWRSEQ_LPCN_LPMCLKSEL;

The wakeup source of the low power peripheral (e.g GPIO, RISC-V) needs to be enabled. For example:
MXC_PWRSEQ->lppwen |= MXC_F_PWRSEQ_LPPWEN_CPU1;  // wake up on RISC-V interrupt

To enter LPM:
     SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;  // Needed just once
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 
    MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Either directly set sleep mode bit in MXC_GCR->pm register, or use WFI instruction:
  • MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE; MXC_GCR->pm |= MXC_S_GCR_PM_MODE_LPM;
  • Or use WFI:
    • Arm:__WFI(); // Enter to deepsleep, wait for interrupt to wake up

在LPM中,IPO斷電,應(yīng)使用IBRO,ERTCO,INRO或ISO。

注意:如果 Arm 內(nèi)核進(jìn)入 LPM,RISC-V 可以根據(jù)需要繼續(xù)執(zhí)行并進(jìn)入睡眠狀態(tài)。如果需要在兩個(gè)內(nèi)核之間管理 LPM 的入口,則可以使用多處理器通信來(lái)確保兩個(gè)內(nèi)核都處于已知狀態(tài)。有關(guān)詳細(xì)信息,請(qǐng)參閱 [3] 中的第 3.3.5 節(jié)。

微功耗模式:

此模式用于極低的功耗,同時(shí)使用最少的外設(shè)集來(lái)提供喚醒功能。在此模式下,將保留 Arm 和 RISC-V、系統(tǒng)和 CNN RAM 以及非 UPM 外設(shè)的狀態(tài)。CNN 象限可以關(guān)閉。IPO 和 ISO 振蕩器斷電,IBRO、ERTCO和INRO啟用。以下外設(shè)可用作喚醒源:WUT、LPUART0、LPTMR0、LPTMR1、LPWDT0、LPCOMP0-LPCOMP3 和 GPIO

To enter UPM Mode:
      /* Write 1 to clear */
     MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
     MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
     MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 
     MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Set UPM mode bit in MXC_GCR->pm register:
      MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
MXC_GCR->pm |= MXC_S_GCR_PM_MODE_UPM;

To enter into this mode on Arm, MXC_LP_EnterDeepSleepMode() API call can also be used.

這種模式在低活動(dòng)循環(huán)應(yīng)用中最有利于節(jié)省能源。

為了確保確定性地進(jìn)入 UPM 模式,Arm 和 RISC-V 可能需要使用多處理器通信進(jìn)行同步。有關(guān)更多信息,請(qǐng)參閱 [3] 中的第 3.4.5 節(jié)。

待機(jī)模式:

在此模式下,RTC 運(yùn)行時(shí)保留系統(tǒng)狀態(tài);Arm、RISC-V、System RAM、GPIO 和外設(shè)也保留其狀態(tài)。CNN 象限關(guān)閉,CNN 內(nèi)存具有可選擇的保留。IPO 和 ISO 振蕩器斷電,ERTCO、INRO 和 IBRO 啟用。如果需要對(duì)應(yīng)用進(jìn)行占空比,此模式可提供進(jìn)一步的功耗降低。

To enter STANDBY Mode:
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst = 0xFFFFFFFF; 
    MXC_MCR->ctrl |= MXC_F_MCR_CTRL_ERTCO_EN; // enable ERTCO 

Set STANDBY mode bit in MXC_GCR->pm register:
    MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
    MXC_GCR->pm |= MXC_S_GCR_PM_MODE_STANDBY;

To enter into this mode on Arm, MXC_LP_EnterStandbyMode() API call can also be used.

為了確保確定性地進(jìn)入待機(jī)模式,Arm 和 RISC-V 可能需要使用多處理器通信進(jìn)行同步。有關(guān)更多信息,請(qǐng)參閱 [3] 中的第 3.5.5 節(jié)。

備份模式:

此模式用于保留系統(tǒng)內(nèi)存。在此模式下,Arm、RISC-V、所有外設(shè)和除 ERTCO 之外的所有振蕩器都將關(guān)閉電源。系統(tǒng) RAM 0-3 可以獨(dú)立配置為使用 PWRSEQ_LPCN 寄存器保留狀態(tài)。

進(jìn)入備份模式不需要 Arm 和 RISC-V 之間的同步,任何一個(gè)內(nèi)核都可以將 GCR_PM.mode 設(shè)置為 BACKUP,這會(huì)導(dǎo)致設(shè)備立即進(jìn)入 BACKUP。

To enter BACKUP Mode:
     /* Write 1 to clear */
    MXC_PWRSEQ->lpwkst0 = 0xFFFFFFFF;
    MXC_PWRSEQ->lpwkst1 = 0xFFFFFFFF;
    MXC_PWRSEQ->lppwst  = 0xFFFFFFFF; 

 Set BACKUP mode bit in MXC_GCR->pm register:
    MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
    MXC_GCR->pm |= MXC_S_GCR_PM_MODE_BACKUP

To enter into this mode on Arm, MXC_LP_EnterBackupMode() API call can also be used.

掉電模式:

此模式在產(chǎn)品級(jí)別的分發(fā)和存儲(chǔ)期間使用。ARM、RISC-V、存儲(chǔ)器、外設(shè)和振蕩器均斷電。在此模式下沒(méi)有數(shù)據(jù)保留,但閃存中的值會(huì)保留。在此模式下,V雷吉POR電壓監(jiān)視器正在運(yùn)行。

如果已配置,可通過(guò)外部復(fù)位 (RSTN) 或 P3.0 或 P3.1 上的喚醒事件退出 PDM。

To enter PDM Mode:
 MXC_GCR->pm &= ~MXC_F_GCR_PM_MODE;
 MXC_GCR->pm |= MXC_S_GCR_PM_MODE_POWERDOWN

To enter into this mode on Arm, MXC_LP_ShutDownMode() API call can also be used.

喚醒配置

需要將 Arm 和 RISC-V 配置為在發(fā)生喚醒事件時(shí)喚醒。有關(guān)不同操作模式下的喚醒源列表,請(qǐng)參閱 [3] 中的第 4.5 節(jié)。

手臂喚醒配置:

應(yīng)啟用中斷。在 SLEEP 的情況下,Arm 內(nèi)核會(huì)喚醒 after__WFI() 以響應(yīng)任何中斷。

對(duì)于低功耗模式,需要啟用喚醒源:

在電源排序器寄存器 (PWRSEQ) 中:在低功耗外設(shè)喚醒中啟用外設(shè)和特定 GPIO 源 啟用寄存器(PWRSEQ_LPWKEN0 至 3,PWRSEQ_LPPWEN)

在全局控制寄存器 (GCR) 中:在電源管理寄存器 (GCR_PM) 中啟用 GPIO 喚醒使能和 RTC 報(bào)警喚醒啟用

Example of Arm wakeup configuration: 
Wakeup from LPM on GPIO:
 MXC_GCR->pm  |= MXC_F_GCR_PM_GPIO_WE;  // enable wakeup from GPIOs
 MXC_PWRSEQ->lpwken2 |= (1 << 7);   // Pb2: GPIO2.7 is selected for wakeup

Wakeup from LPM on RISC-V interrupt:
 MXC_PWRSEQ->lppwen |= MXC_F_PWRSEQ_LPPWEN_CPU1; // wakeup on RISC-V interrupt

RISC-V 喚醒配置:

要將RISC-V配置為在中斷時(shí)喚醒,需要啟用IRQ和EVENT。

Example of RISC-V wakeup configuration: 
 __enable_irq();
 NVIC_EnableIRQ(CNN_IRQn);
 NVIC_EnableEVENT(CNN_IRQn);

表 3 顯示了 Arm 和 RISC-V 代碼的示例。Arm 進(jìn)入 LPM(深度睡眠),RISC-V 初始化并啟動(dòng) CNN,然后進(jìn)入睡眠狀態(tài),直到 CNN 推理完成。之后,CNN中斷喚醒RISC-V,然后喚醒ARM也。

有關(guān)此示例的完整代碼,請(qǐng)參閱 [6]。

Arm RISC-V
mnist-riscv
int main(void)
{
MXC_ICC_Enable(MXC_ICC0); // 啟用緩存
// 切換到 100 MHz 時(shí)鐘
MXC_SYS_Clock_Select(MXC_SYS_CLOCK_IPO);
SystemCoreClockUpdate();
設(shè)置 RISC-V 引導(dǎo)地址
MXC_FCR->urvbootaddr = (uint32_t) &__FlashStart_;
啟用森帕霍爾時(shí)鐘MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SMPHR);設(shè)置喚醒 ISR NVIC_SetVector(RISCV_IRQn, WakeISR
); 不要?jiǎng)h除此行:
MXC_Delay(SEC(2));如果需要,讓調(diào)試器中斷 啟用 RISC-V 時(shí)鐘
MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CPU1);
轉(zhuǎn)到 LPM,等待 RISC-V 喚醒
MXC_LP_ClearWakeStatus();
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=1
__WFI(); // 轉(zhuǎn)到深度睡眠,讓 RISC-V 運(yùn)行
返回 0;
} void WakeISR(void)
{
MXC_SEMA->irq0 = MXC_F_SEMA_IRQ0_EN & ~MXC_F_SEMA_IRQ0_CM4_IRQ;
}
int main(void)
{
Debug_Init(); // 設(shè)置 RISCV JTAG
MXC_ICC_Enable(MXC_ICC1); // 啟用緩存 使能外設(shè), CNN 中斷, CNN 時(shí)鐘 // CNN 時(shí)鐘
: 50 MHz 分區(qū) 1
cnn_enable(MXC_S_GCR_PCLKDIV_CNNCLKSEL_PCLK, MXC_S_GCR_PCLKDIV_CNNCLKDIV_DIV1); cnn_init();使?fàn)顟B(tài)機(jī)進(jìn)入一致的狀態(tài)
cnn_load_weights();加載內(nèi)核
cnn_load_bias();
cnn_configure();配置狀態(tài)機(jī)
load_input();加載數(shù)據(jù)輸入

cnn_start(); // 在 (cnn_time == 0)
asm volatile(“WFI”) 時(shí)啟動(dòng) CNN 處理; 睡眠,等待 CNN 完成 // 現(xiàn)在信號(hào) Arm 喚醒
MXC_SEMA->irq0 = MXC_F_SEMA_IRQ0_EN |MXC_F_SEMA_IRQ0_CM4_IRQ;
} int cnn_enable(uint32_t clock_source, uint32_t clock_divider)
{ // 重置所有域,恢復(fù) CNN 的電源 MXC_BBFC->reg3 = 0xf; // 重置 MXC_BBFC->reg1 = 0xf; // 屏蔽內(nèi)存
MXC_BBFC->reg0 = 0xf; // Power
MXC_BBFC->reg2 = 0x0; // iso

MXC_BBFC->reg3 = 0x0; /
/ 重置
MXC_GCR->pclkdiv = (MXC_GCR->pclkdiv & ~(MXC_F_GCR_PCLKDIV_CNNCLKDIV |MXC_F_GCR_PCLKDIV_CNNCLKSEL))
|clock_divider |clock_source;
啟用 CNN 時(shí)鐘MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_CNN);
在 CNN
上啟用中斷和喚醒完成 __enable_irq();
NVIC_EnableIRQ(CNN_IRQn);
NVIC_EnableEVENT(CNN_IRQn);
返回CNN_OK;
}

不同模式下的功耗

在開(kāi)發(fā)應(yīng)用時(shí),用戶可以將MAX78000切換到不同的工作模式,并相應(yīng)地安排任務(wù)以節(jié)省功耗。了解每種操作模式下的功耗以及啟動(dòng)或喚醒所需的時(shí)間,有助于用戶選擇合適的模式并規(guī)劃任務(wù)的占空比。電源監(jiān)視器可在系統(tǒng)電源模式 [4] 下使用,以測(cè)量幾種情況下的功耗和喚醒或啟動(dòng)時(shí)間。在此測(cè)試中,RISC-V和外圍設(shè)備關(guān)閉,Arm在不同的操作模式下進(jìn)行測(cè)試。對(duì)于喚醒時(shí)間測(cè)試,RISC-V用作Arm的喚醒源。 圖3顯示了該實(shí)驗(yàn)的結(jié)果。使用ISO振蕩器在60MHz下測(cè)量活動(dòng)功率和睡眠功率。其他低功耗模式在休眠期間采用 ERTCO (32kHz)(API 默認(rèn)值)。

還測(cè)試了不同時(shí)鐘頻率的啟動(dòng)時(shí)間(定義為從上電到開(kāi)始執(zhí)行主代碼的時(shí)間)和喚醒時(shí)間,如圖4所示。喚醒時(shí)間隨所選時(shí)鐘頻率進(jìn)行縮放。啟動(dòng)時(shí)間以上電默認(rèn)時(shí)鐘(ISO 在 60MHz)測(cè)量。

pYYBAGPu8n6AdUiDAAAsFeS5Ckg180.jpg?imgver=1

圖3.不同運(yùn)行模式下的功耗。

poYBAGPu8oCAKeUpAABFMAtt0n0686.jpg?imgver=1

圖4.不同頻率的啟動(dòng)和喚醒時(shí)間。

美國(guó)有線電視新聞網(wǎng)電源

人工智能應(yīng)用程序的核心是由CNN加速器執(zhí)行的推理。根據(jù)應(yīng)用程序的不同,推理可以連續(xù)地對(duì)傳入的數(shù)據(jù)進(jìn)行,也可以按特定的時(shí)間間隔定期進(jìn)行。CNN推理可以在輸入數(shù)據(jù)準(zhǔn)備就緒后開(kāi)始(例如KWS案例研究),也可以在FIFO模式下(例如FaceID示例)開(kāi)始,一旦FIFO中存儲(chǔ)了足夠的數(shù)據(jù)來(lái)開(kāi)始該過(guò)程,它就會(huì)開(kāi)始。CNN 功耗分三個(gè)階段測(cè)量:

加載權(quán)重(內(nèi)核):在活動(dòng)模式下將權(quán)重加載到 CNN 內(nèi)存中發(fā)生一次

加載輸入數(shù)據(jù):每次有新的推理時(shí)。在FIFO模式下,它可以與推理重疊

推理:對(duì)輸入數(shù)據(jù)進(jìn)行操作并生成分類結(jié)果

功率監(jiān)視器使用 GPIO 信號(hào)觸發(fā)每個(gè)事件,并在 CNN 功率模式下測(cè)量每個(gè)相位的功率 [4]。為了進(jìn)行測(cè)量,在Maxim SDK中選擇了兩個(gè)示例:KWS20和FaceID。每個(gè)示例都經(jīng)過(guò)訓(xùn)練[7]、合成[8],并閃存到MAX78000評(píng)估板中。可以指示合成腳本僅為 Arm(默認(rèn):RISC-V 關(guān)閉)或 RISC-V(帶有 --deepsleep --riscv --riscv-debug 標(biāo)志)生成代碼,其中 Arm 初始化 RISC-V 并進(jìn)入睡眠狀態(tài)。合成腳本還可以包括 GPIO 信號(hào),以指示電源監(jiān)視器在 CNN 電源模式 (--energy) 下運(yùn)行。能量、時(shí)間、非活動(dòng) (I) 和活動(dòng) (A) 功率測(cè)量值顯示在功率監(jiān)視器顯示屏上。KWS20和FaceID在不同操作模式和時(shí)鐘源(100MHz時(shí)的IPO和60MHz的ISO)下的測(cè)試結(jié)果如表4和表5所示。請(qǐng)注意,F(xiàn)IFO用于FaceID,因此推理時(shí)間也包括加載時(shí)間。根據(jù)結(jié)果,當(dāng)CNN使用相同的時(shí)鐘時(shí),僅使用ARM以及ARM和RISC-V的推理時(shí)間和能量是相似的。使用較慢的時(shí)鐘源加載權(quán)重和數(shù)據(jù)需要更長(zhǎng)的時(shí)間,從而導(dǎo)致能量顯著增加。用戶應(yīng)考慮加載內(nèi)核和輸入所需的能量,以決定如何調(diào)度應(yīng)用程序。在活動(dòng)周期較小時(shí)的情況下,重新加載重量可能會(huì)改善整體功耗。在睡眠模式或LPM中,推理時(shí)間和能量預(yù)計(jì)不會(huì)改善,因?yàn)樗鼈儍H在CNN的活動(dòng)窗口內(nèi)測(cè)量。但是,它們會(huì)顯著影響應(yīng)用程序的總體功耗,如下文所示。

選擇ARM和RISC-V在空閑時(shí)間都處于睡眠狀態(tài)的案例,通過(guò)應(yīng)用不同的時(shí)鐘頻率和源來(lái)測(cè)試振蕩器頻率的影響。RISC-V驅(qū)動(dòng)加載權(quán)重和輸入,以及管理CNN。通過(guò)降低時(shí)鐘頻率,推理時(shí)間和能量呈指數(shù)級(jí)增長(zhǎng)。這表明以最高速度執(zhí)行加載和推理,然后進(jìn)入更長(zhǎng)的睡眠期往往會(huì)改善整體能耗。該實(shí)驗(yàn)的結(jié)果如圖5和圖6所示。

KWS20:
操作
模式
時(shí)鐘頻率(兆赫) 內(nèi)核加載 輸入加載 推理
Arm RISC-V CNN E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) A(毫瓦)
Arm Only 始終處于活動(dòng)狀態(tài) 100 不適用 50 0.146 11.6 7.2 19.8 0.013 1.1 7.2 19.27 0.14 2 37.45
SLEEP 100 不適用 50 0.148 11.6 7.02 19.8 0.013 1.1 7.02 19.33 0.136 2 35.82
LPM 60 不適用 30 0.154 19.3 5.33 13.29 0.014 1.8 5.33 13.06 0.139 4.1 18.32
Arm 和 RISC-V 始終處于活動(dòng)狀態(tài) 100 50 50 0.42854 34.72 5.47 17.81 0.04001 3.31 10.45 22.52 0.1401 1.99 21.86
Only Arm SLEEP 100 50 50 0.04036 3.31 5.5 17.71 0.14077 2.01 21.89
Both SLEEP 100 50 50 0.03829 3.15 5.47 17.63 0.14055 2.19 21.41
Both SLEEP 60 30 30 0.487 50.3 3.48 13.16 0.0481 5.53 3.63 12.31 0.14595 3.38 13.06
LPM 60 30 30 0.0456 4.7 3.48 12.92 0.1424 3.5 13.67
面容ID:
操作
模式
時(shí)鐘頻率(兆赫) 內(nèi)核加載 輸入加載 先進(jìn)先出加載
+ 推理
Arm RISC-V CNN E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) I(毫瓦) A(毫瓦) E(毫焦耳) T(毫秒) A(毫瓦)
Arm Only 始終處于活動(dòng)狀態(tài) 100 不適用 50 0.158 12.2 7.03 20.01 0.132 12.1 7.03 17.91 0.435 14 38.19
SLEEP 100 不適用 50 0.156 12.2 7.22 20.01 0.13 12.1 7.22 17.93 0.43 14 38
LPM 60 不適用 30 0.188 20.3 4.6 13.5 0.162 20 4.6 12.61 0.472 24 24.1
Arm 和 RISCV 始終處于活動(dòng)狀態(tài) 100 50 50 0.26 36 3.52 10.64 0.30203 24.82 14.54 26.72 0.57958 24.37 38.39
Only Arm SLEEP 100 50 50 0.29813 24.32 5.46 17.47 0.57823 24.87 29.3
Both SLEEP 100 50 50 0.29899 24.82 5.48 17.53 0.57921 24.37 29.18
Both SLEEP 60 30 30 0.53 52 3.45 13.48 0.36954 41.47 3.57 12.49 0.65009 40.72 19.52
LPM 60 30 30 0.328 36.5 3.45 12.45 0.608 36.1 20.36
LPM, Fast FIFO 60 30 30 不適用 不適用 不適用 不適用 0.524 25.2 24.29
LPM 60 60 60 不適用 不適用 不適用 不適用 0.254 18.2 6.02 19.19 0.533 18 35.58
Both SLEEP 60 60 60 不適用 不適用 不適用 不適用 不適用 不適用 不適用 不適用 0.471 12.6 43.57

pYYBAGPu8oOAWmJuAAIH-CW_DYs377.png?imgver=1

圖5.時(shí)鐘頻率對(duì)KWS20、Arm in SLEEP和RISC-V的影響驅(qū)動(dòng)CNN并在空閑時(shí)間休眠。

pYYBAGPu8oWAKlvzAAE3ugxc5as815.png?imgver=1

圖6.時(shí)鐘頻率對(duì)FaceID的影響;手臂處于睡眠狀態(tài);RISC-V驅(qū)動(dòng)CNN并在空閑時(shí)間休眠。

在 CNN 內(nèi)存中保留權(quán)重

四個(gè) CNN 掩碼 RAM(CNN 權(quán)重存儲(chǔ))中的每一個(gè)都可以配置為在 UPM、備份或待機(jī)的情況下保留權(quán)重。另一方面,無(wú)論 CNN 掩碼 RAM 保留設(shè)置如何,CNN 配置寄存器在任何這些省電模式下(SLEEP 和 LPM 除外)都會(huì)丟失,并且需要重新加載。

對(duì)于某些低占空比應(yīng)用,用戶可以選擇關(guān)閉掩碼RAM,以進(jìn)一步降低睡眠期間的功耗。在這種情況下,應(yīng)考慮用于反復(fù)重新加載砝碼的額外功率的影響。表 6 顯示了在 UPM 期間,當(dāng) FaceID 示例保留 CNN 權(quán)重時(shí),功耗從 0.17mW 增加到 0.38mW。在這種情況下,CNN 配置重新加載只需幾分之一毫秒。但是,如果 CNN 掩碼 RAM 關(guān)閉,則權(quán)重和配置的總重新加載時(shí)間大于 12 毫秒。用戶可以研究這種權(quán)衡,以優(yōu)化其應(yīng)用程序的計(jì)劃和操作模式。以下示例演示如何打開(kāi)/關(guān)閉體重保留以及如何在喚醒后重新初始化 CNN。


Example: Turn on weight retention 
 MXC_BBFC->reg3 = 0xf; // Reset on
 MXC_BBFC->reg1 = 0x0; // turn off CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset off
Example: Loading weights and configuring CNN with CNN Mask RAMs retention

 // wake up from UPM, BACKUP, or STANDBY – CNN memory was retained
 cnn_init(); // Bring state machine into consistent state
 cnn_load_bias();
 cnn_configure(); // Configure state machine
 …
 // proceed to loading data  
Example: Turn off weight retention prior to sleep (must turn back on after waking up)
 MXC_BBFC->reg3 = 0xf; // Reset on
 MXC_BBFC->reg1 = 0x0; // turn off CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset off
  
 /* get ready to go to sleep */
 MXC_LP_EnterDeepSleepMode(); // Arm enters LPM, waits for wakup

 /* restore power to CNN RAM0-3 after wakeup, or prior to next cnn_load() */
 MXC_BBFC->reg3 = 0xf; // Reset
 MXC_BBFC->reg1 = 0xf; // turn on CNN RAM0-3 power
 MXC_BBFC->reg3 = 0x0; // Reset
Example: Loading weights and configuring CNN without CNN Mask RAMs retention

 // Power up or wake up from UPM, BACKUP or STANDBY, CNN memory not retained
 cnn_init(); // Bring state machine into consistent state
 cnn_load_weights(); // Load kernels
 cnn_load_bias();
 cnn_configure(); // Configure state machine
 …
 // proceed to loading data  

UPM 從 UPM 喚醒后加載權(quán)重/CNN 配置
CNN Weight Retention P(毫瓦) E(μJ) T(毫秒) P(毫瓦)
Off 172 242.38 12.16 19.93
On 0.387 1.956 0.1089 17.95

應(yīng)用功率

開(kāi)發(fā)應(yīng)用時(shí),選擇每個(gè)內(nèi)核的工作模式、時(shí)鐘頻率和占空比非常重要。通常,在 Arm 上運(yùn)行的應(yīng)用程序可以以更高的頻率(100MHz 而不是 50MHz APB 時(shí)鐘)執(zhí)行,并具有更優(yōu)化的代碼,這可能導(dǎo)致更低的總能耗。如果存在可以同時(shí)分配給 Arm 和 RISC-V 內(nèi)核的并行任務(wù),則為每個(gè)內(nèi)核使用正確的操作模式非常重要。在 SLEEP 和 LPM 中,內(nèi)核可以獨(dú)立運(yùn)行或休眠。但是,在其他節(jié)能模式(如 UPM 或待機(jī))中,兩個(gè)內(nèi)核同時(shí)斷電。在這種情況下,Arm 和 RISC-V 可能需要協(xié)調(diào),以便它們都使用多處理器通信進(jìn)入低功耗模式,如 [8] 的第 2.5 節(jié)所述。

對(duì)于需要偶爾較短活動(dòng)時(shí)間的應(yīng)用程序,可以選擇 UPM、待機(jī)、備份或關(guān)機(jī)模式。用戶可以評(píng)估在睡眠期間在CNN內(nèi)存中維持權(quán)重的能量成本,并與在每個(gè)活動(dòng)窗口之前重新加載權(quán)重的能量進(jìn)行比較。MAX78000評(píng)估板上的功率監(jiān)測(cè)電路可用于測(cè)量一段時(shí)間內(nèi)的整體系統(tǒng)功耗[4]。這有助于用戶根據(jù)需要在運(yùn)行時(shí)分析應(yīng)用程序電源。

案例研究 1:在 Arm 和 CNN 上進(jìn)行關(guān)鍵字發(fā)現(xiàn) (KWS20) 演示

本示例應(yīng)用演示了使用MAX20評(píng)估板[78000]識(shí)別一組9個(gè)關(guān)鍵字。應(yīng)用程序讀取 I2S麥克風(fēng)以16kHz采樣,并監(jiān)視128個(gè)采樣窗口的閾值。一旦超過(guò)靜默閾值,應(yīng)用程序就會(huì)捕獲一秒鐘的樣本,對(duì)樣本運(yùn)行 CNN 推理,并在 TFT 顯示屏上顯示分類結(jié)果。

在此基準(zhǔn)測(cè)試示例中,不使用RISC-V,Arm內(nèi)核處理整個(gè)任務(wù)。測(cè)試了幾種操作模式。系統(tǒng)電源模式下的功率監(jiān)視器用于以十秒間隔測(cè)量總能量,無(wú)論是在完全靜音(即無(wú)推理或 TFT 更新)時(shí),還是當(dāng)關(guān)鍵字以每秒一個(gè)單詞的速度說(shuō)出時(shí)(十個(gè)推理和 TFT 更新)。結(jié)果如表7所示。在活動(dòng)模式下,Arm 內(nèi)核始終運(yùn)行。無(wú)論靜默還是檢測(cè),此模式下的功率約為20mW,因?yàn)橥评砟芰恐皇强偣牡囊恍〔糠帧Mㄟ^(guò)在收集 I 的空閑時(shí)間內(nèi)使用 LPM2S采樣以及推理時(shí)間,通過(guò)在推理后關(guān)閉CNN時(shí)鐘(功耗大幅降低),功耗降至8.3mW(靜默期間為6.58mW)。

poYBAGPu8oeANoq3AAERLRpFnkE919.png?imgver=1

圖7.KWS20的占空比和平均功率示例在靜音或關(guān)鍵字檢測(cè)期間,TFT可以打開(kāi)或關(guān)閉。

圖7分析并演示了表7中最后兩種功耗優(yōu)化工作模式的平均功耗和活動(dòng)占空比。

案例研究 2-A:Arm 和 CNN 上的 FaceID 演示

該演示應(yīng)用演示了在MAX78000上使用面部識(shí)別識(shí)別對(duì)象。FaceID CNN模型從評(píng)估板相機(jī)拍攝的實(shí)時(shí)圖像中生成尺寸為512的嵌入。計(jì)算嵌入與已知主題嵌入的距離,如果大于閾值,則選擇最佳候選者。已知嵌入的數(shù)據(jù)庫(kù)是從主題的圖片創(chuàng)建的,并與固件集成。推理在每個(gè)圖像的 160x120 面框上執(zhí)行。為了增強(qiáng)識(shí)別性能,推理在幀上執(zhí)行三次,每次在圖片上稍微移動(dòng)面部框時(shí)執(zhí)行。

在本案例研究中,RISC-V處于關(guān)閉狀態(tài),整個(gè)任務(wù)由Arm驅(qū)動(dòng)并按順序執(zhí)行。Arm 在推理期間進(jìn)入睡眠模式,并在幀之間進(jìn)入 UPM 或待機(jī)模式約半秒。表 8 總結(jié)了 FaceID 主要功能的執(zhí)行時(shí)間和功能。表 9 顯示了每種操作模式下的時(shí)間和功耗。

處理一幀 平均能源
系統(tǒng)時(shí)鐘 CNN Clock Arm duty cycle E(μJ ) T(毫秒) P(毫瓦)
ARM-100兆赫 50兆赫 圖像捕獲 1189.8 171.2 6.95
CNN 內(nèi)核負(fù)載(用于備用或 UPM) 935.3 37.5 24.94
3 x CNN 運(yùn)行 1164.7 42 27.73
3 x CNN 卸載 1.6 0.15 10.7
3x 距離計(jì)算 470.4 48 9.8
在 TFT 上顯示圖像 620.5 49.4 12.56
4382.2 348.25
模式 Active UPM Sleep Total
時(shí)間(毫秒) 227 498 160 885
功率(毫瓦) 18.14 0.3 6.92
能量(微焦) 4118 150 1112 5380
模式 積極 待機(jī)
時(shí)間(毫秒) 227 497 160 884
功率(毫瓦) 18.14 0.03 6.92
能量(微焦) 4118 15 1112 5245

poYBAGPu8omAHf0nAAFoA1LkgjI091.png?imgver=1

圖 8:在 Arm 上運(yùn)行的 FaceID 示例的占空比和平均功率。

案例研究2-B:Arm,RISC-V和CNN上的FaceID演示

在這種情況下,Arm處理TFT控制和顯示(只能通過(guò)MAX78000評(píng)估板上的Arm訪問(wèn)),RISC-V驅(qū)動(dòng)從相機(jī)捕獲的圖像、CNN加載和推理,以及針對(duì)數(shù)據(jù)庫(kù)的嵌入距離計(jì)算。共享內(nèi)存和郵箱用于協(xié)調(diào) Arm 和 RISC-V 通信。

表 10 總結(jié)了此模式下 FaceID 主要功能期間的執(zhí)行時(shí)間和功耗。處理完幀后,Arm 和 RISC-V 會(huì)像前一種情況一樣進(jìn)入待機(jī)模式大約半秒鐘。

Processing One Frame 平均能源
系統(tǒng)時(shí)鐘 美國(guó)有線電視新聞網(wǎng)時(shí)鐘 RISC-Arm E(μJ) T(毫秒) P(毫瓦)
ARM-100MHz RISCV-60MHz 50兆赫 圖像捕獲 1392.6 169 8.24
CNN 內(nèi)核加載 818.3 35.5 23.05
3 x CNN 運(yùn)行 7910.1 327 24.19
3 x CNN 卸載 9.5 0.9 10.5
3x 距離計(jì)算 699.6 66 10.6
在TFT上顯示圖像(在手臂上與RISC-V處理并行顯示圖像) 60 12.48
10830 658.9
模式 Active Standby Sleep Total
時(shí)間(毫秒) 448 500 169 1117
功率(毫瓦) 18.14 0.05 7.89
能量(微焦) 8126.72 25 1333.41 9485.13

pYYBAGPu8ouAcymuAADnn8gzwzs862.png?imgver=1

圖9.在 Arm 和 RISC-V 上運(yùn)行的 FaceID 示例的占空比和平均功率。

pYYBAGPu8o6AE1aNAABH17Pom1I678.png?imgver=1

圖 10.比較在實(shí)現(xiàn)FaceID時(shí)使用Arm,或同時(shí)使用Arm和RISC-V。

通過(guò)比較圖 10 中 FaceID 的兩種實(shí)現(xiàn),很明顯,使用 Arm 處理幀的總能量顯著降低,這主要是由于其速度更高,而不是 RISC-V(100MHz,vs 50MHz),導(dǎo)致活動(dòng)狀態(tài)的持續(xù)時(shí)間更短。

總結(jié)

本應(yīng)用筆記概述了MAX78000支持的功耗優(yōu)化技術(shù),以及與關(guān)鍵字識(shí)別和FaceID應(yīng)用配合使用時(shí)的結(jié)果。以下摘要重點(diǎn)介紹了一些改善功耗的一般建議:

通常越快越好。通常,使用更高的時(shí)鐘速率可以加快執(zhí)行速度,并減少恒定靜態(tài)功耗的影響,從而改善整體功耗。

如果沒(méi)有太多并行任務(wù)要執(zhí)行,則首選單核。在RISC-V上運(yùn)行任務(wù)由于其時(shí)鐘速率而較慢,并且與Arm相比,往往會(huì)導(dǎo)致能源使用量增加。

在沒(méi)有活動(dòng)時(shí)利用 UPM、備份和備用。當(dāng) Arm 在某些外圍設(shè)備運(yùn)行時(shí)可以休眠時(shí),請(qǐng)考慮使用 LPM。

加載內(nèi)核(權(quán)重)一次并保留在內(nèi)存中,以避免在 UPM、備份和待機(jī)模式下重新加載能量。但是,如果活動(dòng)占空比非常低,請(qǐng)考慮禁用砝碼保持或使用 POWERDOWN 模式并在每個(gè)周期中重新加載砝碼。

確保在 CNN 處理完成后關(guān)閉 CNN 時(shí)鐘,并在下一個(gè)活動(dòng)期間再次訪問(wèn) CNN 之前將其打開(kāi)。

當(dāng) CNN 正在運(yùn)行并且 Arm 正在等待推理完成時(shí),請(qǐng)使用 LPM。要喚醒,請(qǐng)使用RISC-V或喚醒定時(shí)器。CNN 中斷無(wú)法在 LPM 中直接喚醒 Arm。

使用快速FIFO或四快速FIFO(僅在RISC-V驅(qū)動(dòng)CNN時(shí)才支持)顯著改善了輸入加載時(shí)間和推理能量(--fast-fifo,--fast-fifo-quad)[8]。

審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7542

    瀏覽量

    151316
  • 加速器
    +關(guān)注

    關(guān)注

    2

    文章

    796

    瀏覽量

    37838
  • 電池
    +關(guān)注

    關(guān)注

    84

    文章

    10560

    瀏覽量

    129467
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于MAX78000FTHR的機(jī)器學(xué)習(xí)實(shí)時(shí)處理方案

    MAX78000本質(zhì)是一個(gè)ARM Cortex-M4F微控制器,周邊有很多硬件,其中包括Maxim設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)(CNN)加速器(圖1)。這種機(jī)器學(xué)習(xí)(ML)支持使芯片能夠?qū)崟r(shí)處理諸如識(shí)別
    的頭像 發(fā)表于 01-16 11:22 ?4420次閱讀
    基于<b class='flag-5'>MAX78000</b>FTHR的機(jī)器學(xué)習(xí)實(shí)時(shí)處理方案

    Maxim將AI推向邊緣 MAX78000功耗神經(jīng)網(wǎng)絡(luò)加速微控制器

    特性,那就意味著即使將其應(yīng)用在電池供電的物聯(lián)網(wǎng)(IoT)設(shè)備里,芯片性能并未受到影響。 如上圖所示,新芯片MAX78000包括兩個(gè)超低功耗內(nèi)核Arm Cortex-M4內(nèi)核和RISC-V內(nèi)核一個(gè)基于FPU的微控制器和一個(gè)卷積神
    發(fā)表于 10-10 10:27 ?1368次閱讀

    MAX78000將能耗和延遲降低100倍,從而在IoT邊緣實(shí)現(xiàn)復(fù)雜的嵌入式?jīng)Q策

    通過(guò)集成專用的神經(jīng)網(wǎng)絡(luò)加速器,MAX78000克服了這些局限性,憑借本地以低功耗實(shí)時(shí)執(zhí)行AI處理,使機(jī)器能夠看到和聽(tīng)到復(fù)雜的型態(tài)。由于MAX78000執(zhí)行推理的
    的頭像 發(fā)表于 11-04 09:54 ?1817次閱讀

    Maxim Integrated新型神經(jīng)網(wǎng)絡(luò)加速器MAX78000 SoC貿(mào)澤開(kāi)售

    MAX78000處理器提供高效的電源管理,最大限度地延長(zhǎng)電池供電的物聯(lián)網(wǎng) (IoT) 設(shè)備的續(xù)航時(shí)間。
    的頭像 發(fā)表于 12-09 16:53 ?2816次閱讀

    美信半導(dǎo)體新型神經(jīng)網(wǎng)絡(luò)加速器MAX78000 SoC

    ? ? 新型神經(jīng)網(wǎng)絡(luò)加速器 Maxim Integrated的新型MAX78000芯片,基于雙核MCU,結(jié)合了超低功耗深度神經(jīng)網(wǎng)絡(luò)加速器,為高性能人工智能 (AI) 應(yīng)用提供所需的算力,是機(jī)器視覺(jué)
    的頭像 發(fā)表于 01-04 11:48 ?2971次閱讀

    MAX78000 開(kāi)發(fā)功耗優(yōu)化應(yīng)用

    發(fā)表于 11-16 21:01 ?0次下載
    <b class='flag-5'>在</b> <b class='flag-5'>MAX78000</b> <b class='flag-5'>上</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應(yīng)用

    使用MAX78000進(jìn)行人臉識(shí)別

    本應(yīng)用筆記演示了MAX78000中實(shí)現(xiàn)人臉識(shí)別模型,以及如何在超低功耗MAX78000平臺(tái)上部署,用于資源受限的邊緣或物聯(lián)網(wǎng)應(yīng)用。該應(yīng)用遵循基于知識(shí)蒸餾的模型
    的頭像 發(fā)表于 12-16 16:12 ?1888次閱讀
    使用<b class='flag-5'>MAX78000</b>進(jìn)行人臉識(shí)別

    MAX78002開(kāi)發(fā)功耗優(yōu)化應(yīng)用

    功耗是邊緣人工智能 (AI) 應(yīng)用的關(guān)鍵因素,其中整個(gè)系統(tǒng)由小型電池供電,預(yù)計(jì)無(wú)需充電或更換電池即可運(yùn)行數(shù)月。MAX78002超低功耗AI微控制器專為物聯(lián)網(wǎng)邊緣的此類應(yīng)用而設(shè)計(jì)。本文介紹了各種選項(xiàng),使用戶能夠
    的頭像 發(fā)表于 02-17 11:31 ?1371次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAX</b>78002<b class='flag-5'>上</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應(yīng)用

    用于MAX78000模型訓(xùn)練的數(shù)據(jù)加載器設(shè)計(jì)

    應(yīng)用程序開(kāi)發(fā)周期中,第一步是準(zhǔn)備和預(yù)處理可用數(shù)據(jù)以創(chuàng)建訓(xùn)練和驗(yàn)證/測(cè)試數(shù)據(jù)集。除了通常的數(shù)據(jù)預(yù)處理外,MAX78000運(yùn)行模型還需要考
    的頭像 發(fā)表于 02-21 12:11 ?1372次閱讀

    厲害了,這3個(gè)項(xiàng)目獲得了MAX78000設(shè)計(jì)大賽一等獎(jiǎng)!

    AX78000FTHR開(kāi)發(fā)板。 AI微控制器 MAX78000 MAX78000是一款先進(jìn)的片系統(tǒng),集成帶FPU CPU的Arm ? C
    的頭像 發(fā)表于 03-10 19:45 ?839次閱讀

    MAX78000開(kāi)發(fā)功耗優(yōu)化應(yīng)用

    MAX78000為超低功耗微控制器,具有專用卷積神經(jīng)網(wǎng)絡(luò)(CNN)加速器。這種架構(gòu)能夠能源受限的環(huán)境中開(kāi)發(fā)非常節(jié)能的 AI 應(yīng)用程序。MAX780
    的頭像 發(fā)表于 06-16 11:41 ?746次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAX78000</b><b class='flag-5'>上</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>功耗</b><b class='flag-5'>優(yōu)化</b>應(yīng)用

    MAX78000人工智能設(shè)計(jì)大賽第二季回歸!賽題廣任意玩,獎(jiǎng)勵(lì)足直接沖!

    MAX78000設(shè)計(jì)大賽(第2季) MAX78000設(shè)計(jì)大賽(第2季)于9月1日正式上線,完成項(xiàng)目不止全額返還,還有千元現(xiàn)金大獎(jiǎng)等你來(lái)領(lǐng),摩拳擦掌的伙伴們沖沖沖!!!萬(wàn)分期待朋友們的精彩項(xiàng)目! 大賽
    的頭像 發(fā)表于 09-13 18:40 ?553次閱讀
    <b class='flag-5'>MAX78000</b>人工智能設(shè)計(jì)大賽第二季回歸!賽題廣任意玩,獎(jiǎng)勵(lì)足直接沖!

    MAX78000: Artificial Intelligence Microcontroller with Ultra-Low-Power Convolutional Neural Network Accelerator Data Sheet MAX78000: Artific

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)MAX78000: Artificial Intelligence Microcontroller with Ultra-Low-Power
    發(fā)表于 10-17 18:53
    <b class='flag-5'>MAX78000</b>: Artificial Intelligence Microcontroller with Ultra-Low-Power Convolutional Neural Network Accelerator Data Sheet <b class='flag-5'>MAX78000</b>: Artific

    MAX78000進(jìn)串口通信的驗(yàn)證和調(diào)試

    該資源提供了一個(gè)完整的工程,可在MAX78000開(kāi)發(fā)板上進(jìn)行UART2阻塞式發(fā)送字符串的測(cè)試。以下是相關(guān)的引腳配置信息:UART2引腳配置:UART2的發(fā)送引腳為P1.1?(TXD2)。UART2
    發(fā)表于 02-18 09:43 ?0次下載

    SEGGER為ADI超低功耗微控制器提供SystemView軟件分析工具

    2024年11月,SEGGER宣布ADI公司為選擇其超低功耗(ULP)微控制器的用戶免費(fèi)提供SystemView軟件分析工具,從而實(shí)現(xiàn)強(qiáng)大的開(kāi)箱即用的開(kāi)發(fā)體驗(yàn),可用的處理器包括MAX78000
    的頭像 發(fā)表于 11-09 17:32 ?599次閱讀
    主站蜘蛛池模板: 《乳色吐息》无删减版在线观看 | 9位美女厕所撒尿11分| 日本久久不射| 国产午夜精品美女免费大片| 伊人久久大香线蕉综合色啪| 欧美国产影院| 国产睡熟迷奷系列网站| 最美女人体内射精一区二区| 日本妈妈在线观看中文字幕| 国产自产视频在线观看香蕉| 2020精品极品国产色在线| 日本美女色| 精品国产中文字幕在线视频| 99久久综合精品免费| 午理论理影片被窝| 伦理片午夜在线视频| 丰满人妻妇伦又伦精品APP国产| 亚洲精品乱码电影在线观看| 男男h啪肉np文总受| 国产精品久久久久久52AVAV| 在线伦理电影网| 色久久一个亚洲综合网| 久久99亚洲热最新地址获取| yw193.c国产在线观看| 亚洲激情网站| 秋霞鲁丝片Av无码| 含羞草国产亚洲精品岁国产精品| 99久久99久久精品免费看子| 校花在公车上被内射好舒服| 免费观看99热只有精品| 国产午夜精品一区理论片飘花| 最近的2019中文字幕国语| 色色色久久久免费视频| 久久热免费视频| 国产二级一片内射视频播放 | 久久精品电影久久电影大全| 啊…嗯啊好深男男高h文| 亚洲色综合狠狠综合区| 日本精品久久久久中文字幕2 | 人善交XUANWEN200喷水| 九九热在线视频精品店|