Hyperion و Metis در Brooklands PMU؛ بررسی Cortex-M23، Telemetry Firmware و Secure Firmware
در ششمین مقاله مجموعه معماری Brooklands PMU، دو زیرسامانه Arm Cortex-M23 یعنی Hyperion و Metis را بررسی میکنیم؛ از Firmware، حافظه و Clock گرفته تا Interrupt، DMA، PMU Bridge، PTMU، Debug، Security و ارتباط آنها با Power FSM، Telemetry و سایر بلوکهای Brooklands.
دامنه این مقاله
تمرکز اصلی مقاله روی Chapter 10 با عنوان Micro-controllers است. این فصل ابتدا معماری مشترک Hyperion و Metis را تعریف میکند و سپس Integration و Subsystem هرکدام را بهصورت جداگانه بررسی میکند.
چرا یک PMIC به دو میکروکنترلر Cortex-M23 نیاز دارد؟
Brooklands تنها مجموعهای از Buck، LDO و State Machine نیست. برخی قابلیتها به پردازش Firmware، مدیریت Buffer، Scheduling، Telemetry پیشرفته و اجرای توالیهای امن نیاز دارند.
به همین دلیل دو زیرسامانه قابل برنامهریزی مستقل در Digital Core قرار گرفتهاند؛ هر دو بر پایه Cortex-M23، اما با مأموریتها و سطح دسترسی متفاوت.
زیرسامانه مرتبط با Telemetry Firmware، پردازش ADC، DMA، Measurement Scheduling، Self-Test و قابلیتهای پردازشی پیشرفته.
زیرسامانه مرتبط با Secure Firmware و قابلیتهای حساس مانند Firmware Power Sequencing و ارتباط مستقیمتر با Power FSM.
نکته مهم؛ Brooklands بدون M23 هم باید بتواند Bring-Up پایه را انجام دهد
معماری Brooklands طوری طراحی شده که قابلیتهای ضروری برای Bring-Up اولیه و Platform Recovery به اجرای Firmware روی Hyperion یا Metis وابسته نباشند. برای نمونه، Button Sequenceها مستقل از M23ها کار میکنند.
بنابراین وجود Cortex-M23 به معنی جایگزینشدن Hardware State Machineها با Software نیست؛ Firmware روی یک معماری سختافزاری مستقل و محافظتشده قرار گرفته است.
مقایسه Hyperion و Metis
هر دو از یک خانواده Processor استفاده میکنند، اما Configuration و Peripheralهای آنها متفاوت است.
| ویژگی | Hyperion | Metis |
|---|---|---|
| Processor | Arm Cortex-M23 | Arm Cortex-M23 |
| نقش اصلی | Telemetry Firmware | Secure Firmware |
| Core Frequency | 48 MHz | 24 MHz |
| SRAM | 64 kB | 20 kB |
| Local OTP | ندارد | 16 kB |
| IRQ / Event | 52 | 24 |
| Hardware Divider | دارد | ندارد |
| DMA | دارد | ندارد |
| ETM Instruction Trace | ندارد | دارد |
| Trace Buffer | ندارد | 4 kB |
| SWD Multi-Drop | پشتیبانی میشود | پشتیبانی میشود |
| PMU Bridge | دارد | دارد |
Cortex-M23؛ هسته مشترک، معماری متفاوت
هر دو زیرسامانه از Cortex-M23 مبتنی بر ARMv8-M استفاده میکنند. با این حال همه قابلیتهای Optional این Core در Brooklands فعال نشدهاند.
Hyperion؛ موتور پردازشی Telemetry
Hyperion برای پردازش Featureهای پیشرفته ADC و Telemetry طراحی شده است. این Subsystem تنها یک CPU نیست؛ مجموعهای از Peripheralها و Interfaceهای اختصاصی در اطراف M23 قرار دارد.
Clock در Hyperion؛ دو Domain با 48 و 24MHz
Hyperion از دو Clock Domain اصلی استفاده میکند. Clockهای اصلی سپس به Sub-Clockهایی مانند SCLK، HCLK و DCLK Gate میشوند.
Domain سریع Hyperion و Core Frequency اصلی.
Clock Domain کندتر برای بخشهایی از Subsystem.
Interrupt، Event و WIC
Cortex-M23 از NVIC برای مدیریت Interruptها استفاده میکند. Hyperion در Feature Summary دارای 52 IRQ/Event و Metis دارای 24 IRQ/Event است.
WIC یا Wake-up Interrupt Controller به Subsystem اجازه میدهد در حالتهای Deep-Sleep قرار بگیرد و در صورت رخداد Event موردنیاز بیدار شود.
SRAM و Memory Power Management
هر دو Subsystem دارای SRAM داخلی هستند و برای کاهش Leakage دو سطح Power Saving حافظه تعریف شده است.
Leakage کاهش پیدا میکند ولی محتوای SRAM حفظ میشود.
مصرف کاهش بیشتری پیدا میکند اما محتوای حافظه حفظ نمیشود.
Telemetry Firmware چگونه وارد Hyperion میشود؟
Hyperion در معماری Brooklands Firmware دائمی محلی در OTP خود ندارد. Firmware آن در جریان Boot توسط Secure Boot / iBoot از Host و از طریق مسیر SPMI در SRAM بارگذاری میشود.
چرا Hyperion برای Telemetry مناسبتر است؟
Peripheralهای Hyperion نشان میدهند طراحی آن برای پردازش داده، Measurement و Automation بهینه شده است.
PTMU؛ پنجرهای میان Host و Firmware
Pointer Management Unit یا PTMU یک فضای Register مجازی ایجاد میکند تا Host بتواند به دادههایی که Firmware در SRAM مدیریت میکند دسترسی ساختاریافته داشته باشد.
در Hyperion این مفهوم برای دادههایی مانند Bufferهای Telemetry کاربرد دارد و در Metis نسخه Secure آن میتواند Interface مجازی Secure Firmware را برای Host ایجاد کند.
PMU Bridge؛ M23 چگونه Registerهای Brooklands را میبیند؟
هر دو M23 از PMU Bridge برخوردارند. این Bridge مسیر بین AHB داخلی 32 بیتی Subsystem و AHB اصلی 8 بیتی PMU را فراهم میکند.
Metis؛ اجرای Secure Firmware در قلب مدیریت State
Metis برای اجرای قابلیتهای Mission-Critical طراحی شده و مسیرهای اختصاصی برای ارتباط Secure Firmware با Power Control، PFSM و سایر بلوکهای حساس دارد.
Clock در Metis؛ یک Domain با 24MHz
برخلاف Hyperion که دو Domain اصلی 48/24MHz دارد، Metis تنها از Clock Domain 24MHz استفاده میکند.
Secure Firmware چگونه در Metis Boot میشود؟
اگر Secure Firmware در OTP وجود نداشته باشد چه میشود؟
در این حالت Metis میتواند خود را غیرفعال کند و Power FSM همچنان به ACTIVE برسد؛ SPMI نیز قابل استفاده باقی میماند.
این رفتار دوباره نشان میدهد Hardware پایه PMU عمداً به اجرای Secure Firmware وابستگی مطلق ندارد.
Metis چگونه با Power FSM و Power Sequencer ارتباط دارد؟
Metis برخلاف Hyperion دارای Private AHB Interface به Power Control است. این مسیر برای Firmware Power Sequencing و کنترل Functionهای حساس استفاده میشود.
TrustZone غیرفعال است؛ پس امنیت چگونه ایجاد میشود؟
جداسازی امنیتی Brooklands فقط به قابلیت TrustZone داخل Cortex-M23 متکی نیست. دو Subsystem مستقل، Security Center، Interface Lockها و Gateهای سختافزاری برای محدودکردن Access استفاده میشوند.
Debug؛ SWD Multi-Drop در هر دو Subsystem
Hyperion و Metis هر دو از Serial-Wire Debug با Multi-Drop پشتیبانی میکنند و میتوان از طریق PMU Bridge به Registerهای PMU نیز دسترسی داشت.
Metis علاوه بر Debug معمول، ETM Instruction Trace دارد که برای Firmware Code Trace و Code Coverage استفاده میشود.
ETM در Metis و Trace Buffer چهار کیلوبایتی
Metis از ETM برای Trace کردن اجرای Secure Firmware استفاده میکند. Buffer این Trace برابر 4kB است و از Bankهای Scratchpad SRAM استفاده میکند.
در صورت فعالبودن Trace، از Scratchpad ده کیلوبایتی مورد استفاده در این ساختار، تنها 6kB برای کاربردهای دیگر باقی میماند.
Low-Power Modeهای M23
هر دو Subsystem چند سطح Sleep دارند تا Firmware Processor در زمان عدم نیاز مصرف غیرضروری ایجاد نکند.
HCLK خاموش میشود.
SCLK و HCLK خاموش میشوند.
تمام Clockها خاموش میشوند و Main Oscillator نیز میتواند خاموش شود.
تفاوت فلسفه طراحی Hyperion و Metis
Hyperion = Data & Telemetry
ADC Scheduling
DMA
Telemetry Buffer
Self-Test / Trim
Profiling
Advanced Timers
Metis = Secure Power Control
Secure Firmware
Power FSM Interface
Power Sequencing
Secure PTMU
OTP Firmware
ETM Trace
Hyperion و Metis چگونه در معماری کل Brooklands قرار میگیرند؟
این دو Subsystem الزاماً مستقیماً جای یکدیگر را تکمیل نمیکنند؛ هرکدام Domain کاری مستقل دارد و از طریق Fabric، Bridgeها، Eventها، PTMU، SGPIO و Memory Interface با بخشهای دیگر PMU ارتباط برقرار میکند.
MCOM و Mailbox؛ ارتباط Firmware با Firmware
MCOM Mailboxها مسیری برای تبادل پیام میان Firmwareها و Subsystemهای M23 فراهم میکنند. Hyperion دو MCOM Mailbox و Metis یک Mailbox دارد.
Secure PTMU نیز میتواند برای Mailbox Communication میان PMUهای مجهز به M23 از طریق SGPIO استفاده شود.
از دید تعمیرات، Hyperion و Metis چه چیزی را تغییر میدهند؟
در نسلهای پیچیده PMU، همه رفتارها را نمیتوان فقط با اندازهگیری ولتاژ Coil و Output Rail تحلیل کرد. بخشی از رفتار PMU نتیجه Firmware، State، Security و ارتباط داخلی است.
سناریو ۱؛ PMU به ACTIVE میرسد اما Telemetry کامل نیست
رسیدن Power FSM به ACTIVE الزاماً به معنی فعالبودن Telemetry Firmware Hyperion نیست. Upload و Enable شدن Hyperion فرآیند جداگانهای دارد.
سناریو ۲؛ Secure Firmware Boot نمیشود
مسیر بررسی تنها SRAM نیست. OTP Image، Bootloader، Integrity Check، Security Configuration و Handshake با Power FSM همگی میتوانند در Startup Metis نقش داشته باشند.
سناریو ۳؛ SWD کار میکند اما Firmware اجرا نمیشود
Debug Path و CPU Execution یک مفهوم نیستند. حتی در برخی حالتها که Core در SUPER-SLEEPDEEP قرار دارد، Debug Mode میتواند دسترسی Register از طریق SWD را حفظ کند.
هرکدام برای یک Domain مشخص طراحی شدهاند؛ Hyperion برای پردازش، Measurement و Telemetry، و Metis برای Secure Firmware و کنترل Mission-Critical توان. سختافزار اصلی Brooklands نیز مستقل از آنها باقی میماند تا Bring-Up و Recovery سیستم به Firmware وابستگی مطلق نداشته باشد.
جمعبندی
Brooklands دو Subsystem مستقل Arm Cortex-M23 دارد که روی معماری AHB داخلی PMU بهصورت Co-Processor Integration قرار گرفتهاند.
Hyperion با Core فرکانس 48MHz، SRAM بیشتر، DMA، ADC Interface، Profiling و Peripheralهای پردازشی، عمدتاً زیرساخت Telemetry Firmware و پردازش Measurement را فراهم میکند.
Metis با Core فرکانس 24MHz، OTP محلی، Secure PTMU، Private Power-Control Interface و ETM Trace برای اجرای Secure Firmware و قابلیتهای حساس مدیریت توان طراحی شده است.
هر دو Subsystem SWD Multi-Drop، PMU Bridge، Watchdog، WIC، SRAM Power Management و Interfaceهای Security-Controlled دارند.
مهمتر از همه، معماری Brooklands قابلیتهای اساسی Bring-Up و Recovery را به اجرای M23 Firmware وابسته نمیکند؛ Firmware قابلیتهای پیشرفته را روی یک پایه سختافزاری مستقل اضافه میکند.
مقاله ۷: ADC و Telemetry در Brooklands PMU
در مقاله بعدی معماری ADC، GPADC، Fast Current Measurement، Telemetry Agentها، MUXها، اندازهگیری ولتاژ، جریان و دما، Buck Telemetry، Power Accumulatorها و مسیر انتقال دادههای Telemetry به Host را بررسی میکنیم.