معماری SPMI، SGPIO و DVC در Brooklands PMU؛ ارتباط Host، PMUها و کنترل ولتاژ
در پنجمین مقاله مجموعه معماری Brooklands PMU، رابط SPMI میان Host SoC و PMU، ارتباط SGPIO میان PMUهای Leader و Remote، ساختار vGPIO و مکانیزم DVC / Group-DVC را بررسی میکنیم.
دامنه این مقاله
تمرکز این مقاله روی سه بخش Digital Control Block است: 8.4 SPMI Interface، 8.5 SGPIO Interface و 8.13 DVC operation. هدف، فهم مسیر فرمان از SoC تا PMU، ارتباط میان چند PMIC و نحوه تغییر کنترلشده Target Voltage ریلهای DVC است.
سه لایه ارتباطی که باید از هم جدا شوند
مسیر اصلی ارتباط Host SoC با Brooklands برای Register Access، فرمانهای کنترلی و دریافت Eventها.
مسیر ارتباط PMUها برای کنترل منابع Remote، انتقال Event و ساخت یک Logical PMU از چند PMIC فیزیکی.
مکانیزم تغییر پویا و کنترلشده Target Voltage ریلهای قابل برنامهریزی.
SPMI؛ رابط اصلی Host با Brooklands
رابط اصلی Brooklands با Host SoC از طریق SPMI انجام میشود. Host میتواند از طریق این رابط Registerهای PMU را بخواند یا بنویسد، فرمانهای Power Management و DVC را ارسال کند و Eventها را دریافت کند.
در سند Brooklands، SPMI یک Slave Interface پرسرعت است که Clock آن توسط Host/Master تأمین میشود.
Clock ورودی که توسط Host/Master هدایت میشود.
مسیر Bidirectional برای انتقال داده میان Host و PMU.
یک فرمان SPMI چه مسیری طی میکند؟
بنابراین SPMI مستقیماً «ولتاژ تولید نمیکند». این رابط فرمان را وارد Digital Control Block میکند و سپس Register، Scheduler، Power FSM یا Peripheral مربوطه بر اساس آن عمل میکند.
Privileged و Non-Privileged SPMI
Brooklands برای کنترل دسترسی، دو سطح SPMI تعریف میکند و از Slave-ID متفاوت برای ترافیک Privileged و Non-Privileged استفاده میکند.
برای دسترسیهایی که سطح مجوز بالاتری دارند و میتوانند به Register Space گستردهتری دسترسی پیدا کنند.
برای دسترسیهای عادی Host و Software با محدودیتهای امنیتی بیشتر.
در معماری Host، فرمانهای سختافزاری PMGR میتوانند از Slave-ID Privileged استفاده کنند، در حالی که مسیرهای Software عادی به Non-Privileged محدود میشوند.
SPMI فقط برای Write نیست؛ PMU نیز با Host صحبت میکند
Brooklands میتواند Eventهای داخلی را از طریق Event Handler و SPMI به Host ارسال کند.
رخداد لحظهای Latched میشود تا حتی پس از حذف Level اولیه از دست نرود.
وضعیت سطحی تا زمانی که Host آن را Clear کند نگه داشته میشود.
چند رخداد مرتبط میتوانند در سطح بالاتر به یک Event گروهی تبدیل شوند.
SGPIO؛ وقتی یک PMIC برای سیستم کافی نیست
SGPIO روی Physical Layer خانواده SPMI ساخته شده و برای ارتباط بین Leader، Follower و Leaf PMUها استفاده میشود.
هدف این معماری آن است که چند PMIC فیزیکی بتوانند در سطح سیستم مانند یک Logical PMU واحد رفتار کنند.
Leader، Follower و Leaf چه تفاوتی دارند؟
PMU مرکزی که میتواند Power State و برخی منابع PMUهای Remote را مدیریت و هماهنگ کند.
PMU همراه که فرمانها یا اطلاعاتی را از Leader دریافت و بر اساس Topology سیستم عمل میکند.
PMU Remote که میتواند از طریق Leader به منابع یا DVC آن دسترسی داده شود.
vGPIO؛ GPIO مجازی برای کنترل PMU Remote
در Power Sequencing لازم نیست برای هر فرمان میان PMUها یک GPIO فیزیکی مستقل وجود داشته باشد. SGPIO از مفهوم vGPIO استفاده میکند تا فرمانهای منطقی به PMUهای Follower ارسال شوند.
Mapping این Triggerها و Slave-IDهای مقصد میتواند OTP-programmable باشد. بنابراین یک vGPIO مشخص میتواند به یک Action خاص در PMU Remote نگاشت شود.
ارتباط SGPIO با Power Sequencer
در مقاله Power Sequencer دیدیم هر Transition به Slotهای زمانی تقسیم میشود. Brooklands میتواند Triggerهای vGPIO را نیز در همین توالی استفاده کند.
در نتیجه یک Transition میتواند هم منابع داخلی Brooklands و هم منابع PMU Remote را در یک Sequence هماهنگ کند.
SGPIO دوطرفه است؛ Eventهای PMU Remote نیز باید برگردند
ارتباط بین PMUها فقط برای ارسال Enable یا vGPIO نیست. Eventهای Remote نیز میتوانند از SGPIO به Leader منتقل و سپس از طریق مسیر مناسب به Host SoC Forward شوند.
DVC چیست؟
DVC — Dynamic Voltage Control عملیات منطقی تغییر پویا و کنترلشده Target Voltage یک Supply قابل DVC است.
DVC به معنی پرش آنی خروجی از یک ولتاژ به ولتاژ دیگر نیست. Brooklands Target VSEL را با Ramp کنترلشده تغییر میدهد.
مسیر یک فرمان DVC
۱. Host Target Voltage جدید را از طریق SPMI درخواست میکند.
۲. DVC Scheduler فرمان و Rail هدف را بررسی میکند.
۳. Target VSEL از مقدار فعلی به مقدار جدید Ramp میشود.
۴. Rail عملیات DVC را تکمیل میکند.
۵. Brooklands پیام DVC_DONE یا Error مربوطه را از طریق SPMI به Host برمیگرداند.
DVC_DONE فقط یک اعلان نیست؛ بخشی از Flow Control است
Host برای فرمانهای DVC روی همان Rail یا Group، از Acknowledgement Brooklands بهعنوان Semaphore استفاده میکند. یعنی قبل از ارسال فرمان بعدی باید وضعیت فرمان قبلی مشخص شود.
Fast Enable و Fast Disable از طریق DVC
برخی DVC Supplyها میتوانند با DVC Command فعال شوند. به این رفتار Fast Enable گفته میشود. برای این منابع، Target برابر صفر نیز میتواند برای Fast Disable استفاده شود.
اگر هنگام Startup فرمان DVC برسد چه میشود؟
اگر Rail هنوز Startup خود را کامل نکرده باشد، DVC Ramp بلافاصله روی Startup سوار نمیشود. اجرای Ramp تا پایان Startup Rail به تعویق میافتد.
DVC Ramp چگونه ساخته میشود؟
Ramp از تغییرات گسسته VSEL DAC تشکیل میشود. سه پارامتر اصلی برای توصیف آن عبارتاند از:
تغییر VSEL در هر Step.
Clock داخلی 48MHz که Counter Step را هدایت میکند.
تعداد Tick میان دو تغییر متوالی DAC.
نکته بسیار مهم؛ DVC Ramp با رفتار واقعی VOUT یکی نیست
DVC روی Target Voltage و VSEL کنترل دارد، اما مشخص نمیکند ولتاژ واقعی خروجی در هر لحظه دقیقاً با چه dV/dt حرکت کند.
پاسخ واقعی VOUT همچنان به Power Stage، Load، COUT، Feedback، Settling Time و مشخصات خود Rail وابسته است.
Group-DVC؛ تغییر هماهنگ دو Supply
Brooklands علاوه بر DVC معمولی، از DVCg / Group-DVC پشتیبانی میکند. در این ساختار، Group شامل دو Supply است که Scheduler فرمان آنها را بهصورت هماهنگ مدیریت میکند.
Group-DVC الزاماً به معنی Ramp کاملاً یکسان دو Rail نیست
Scheduler با توجه به ولتاژ اولیه، Targetها، جهت Ramp و Slew Rate دو Rail رفتار هماهنگ را تعیین میکند.
اگر Rampها در یک جهت و محدوده مناسب قرار داشته باشند، بخشی از حرکت میتواند هماهنگ انجام شود.
اگر جهت دو Rail متفاوت باشد، هر Rail میتواند Ramp مستقل خود را اجرا کند.
برای Rampهای Non-overlapping ممکن است عملیات یکی پس از دیگری انجام شود.
در پایان یک Group-DVC موفق، Host یک Group DVC_DONE دریافت میکند.
DVC Lite در LDOها
DVC تنها مختص Buck نیست. برخی LDOهای Brooklands نیز DVC را با معماری سادهتر موسوم به DVC Lite پشتیبانی میکنند.
SGPIO DVC Tunneling؛ وقتی Rail روی Brooklands نیست
یکی از قابلیتهای مهم Brooklands Leader این است که یک DVC Command دریافتی از Host را برای یک Supply Remote از طریق SGPIO به Leaf PMU Tunnel کند.
DVC Dispatcher؛ Local یا Remote؟
DVC Dispatcher مشخص میکند فرمان دریافتی باید روی یکی از Supplyهای داخلی Brooklands اجرا شود یا به Supply موجود در Leaf PMU منتقل شود.
محدودیتهای مهم DVC Tunneling
Tunneling تک DVC در Topologyهای پشتیبانیشده قابل استفاده است، اما همه حالتهای Multi-PMU الزاماً پشتیبانی نمیشوند.
Group-DVC بین Supplyهایی که در PMUهای متفاوت قرار دارند پشتیبانی نمیشود.
در Topologyهای خاص Dual-Interface نیز محدودیتهایی برای DVC Tunneling وجود دارد.
از دید تعمیرات، این معماری چه چیزی را تغییر میدهد؟
وجود یک Rail روی شماتیک به این معنی نیست که کنترل آن فقط در همان PMIC انجام میشود. Rail میتواند تحت فرمان Host، DVC Scheduler، Power FSM، Secure Firmware یا حتی یک فرمان SGPIO از PMU دیگر قرار داشته باشد.
۱. آیا PMU روی SPMI پاسخ میدهد؟
۲. فرمان موردنظر Privileged است یا Non-Privileged؟
۳. Rail Local است یا روی PMU Remote قرار دارد؟
۴. فرمان باید از SGPIO Tunnel شود؟
۵. Rail از DVC پشتیبانی میکند؟
۶. Target VSEL جدید واقعاً ثبت شده؟
۷. DVC_DONE یا DVC_ERROR برگشته؟
۸. Rail در Startup بوده و DVC Pending شده؟
۹. Event یا IRQ از PMU Remote به Host Forward شده؟
۱۰. مشکل Digital Control است یا Power Stage واقعی Rail؟
سناریو ۱؛ Host ولتاژ جدید درخواست میکند اما VOUT تغییر نمیکند
ابتدا باید مشخص شود DVC Command واقعاً از SPMI دریافت شده یا خیر.
سپس DVC Scheduler، وضعیت Enable Rail، Pending بودن عملیات قبلی و Target VSEL بررسی میشود.
اگر DVC_DONE برگشته ولی VOUT واقعی صحیح نیست، مشکل میتواند بعد از Digital Control و در خود Power Stage، Feedback، Load یا PDN باشد.
سناریو ۲؛ Rail Remote فعال نمیشود
در این حالت بررسی فقط روی Brooklands کافی نیست:
خرابی یا Timeout در هر بخش از این زنجیره میتواند نتیجه نهایی مشابه «Rail Missing» ایجاد کند.
سناریو ۳؛ Target Voltage درست است اما Ramp متفاوت دیده میشود
Ramp برنامهریزیشده DVC و Waveform واقعی روی Oscilloscope دو مفهوم مرتبط اما متفاوتاند.
VSEL Step، Clock Tick و Target Voltage را تعیین میکند.
Load، COUT، Loop، Slew، Settling و Power Stage شکل واقعی VOUT را تعیین میکنند.
جمعبندی
SPMI رابط اصلی Host SoC با Brooklands است و Register Access، Event Handling و فرمانهای کنترلی از جمله DVC را منتقل میکند.
SGPIO چند PMIC فیزیکی را در سطح سیستم به یک Logical PMU نزدیک میکند و انتقال vGPIO، Event، Register Access و در برخی Topologyها DVC را ممکن میسازد.
DVC ولتاژ خروجی را بهصورت «آنی» تغییر نمیدهد؛ بلکه Target VSEL را با Ramp Rate کنترلشده تغییر میدهد و پاسخ واقعی Rail همچنان تابع رفتار Analog Power Stage است.
Group-DVC امکان هماهنگی دو Supply را فراهم میکند و DVC Dispatcher مشخص میکند فرمان باید روی Rail داخلی Brooklands اجرا شود یا از SGPIO به PMU Remote Tunnel شود.
مقاله ۶: Hyperion و Metis در Brooklands PMU
در مقاله بعدی دو زیرسامانه Arm Cortex-M23 یعنی Hyperion و Metis، نقش Telemetry Firmware و Secure Firmware، حافظهها، Clockها، Interruptها، Bridgeها و ارتباط این دو میکروکنترلر با معماری Brooklands را بررسی میکنیم.