تولزبازار
معماری SPMI، SGPIO و DVC در Brooklands PMU؛ ارتباط Host، PMUها و کنترل ولتاژ
1405/05/05 5 دقیقه مطالعه

معماری SPMI، SGPIO و DVC در Brooklands PMU؛ ارتباط Host، PMUها و کنترل ولتاژ

مجموعه مقالات تخصصی معماری PMU در دستگاه‌های اپل

معماری 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 است.

سه لایه ارتباطی که باید از هم جدا شوند

SPMI

مسیر اصلی ارتباط Host SoC با Brooklands برای Register Access، فرمان‌های کنترلی و دریافت Eventها.

SGPIO / vGPIO

مسیر ارتباط PMUها برای کنترل منابع Remote، انتقال Event و ساخت یک Logical PMU از چند PMIC فیزیکی.

DVC

مکانیزم تغییر پویا و کنترل‌شده Target Voltage ریل‌های قابل برنامه‌ریزی.

Host SoC → SPMI → Brooklands → SGPIO / vGPIO → Remote PMU

SPMI؛ رابط اصلی Host با Brooklands

رابط اصلی Brooklands با Host SoC از طریق SPMI انجام می‌شود. Host می‌تواند از طریق این رابط Registerهای PMU را بخواند یا بنویسد، فرمان‌های Power Management و DVC را ارسال کند و Eventها را دریافت کند.

در سند Brooklands، SPMI یک Slave Interface پرسرعت است که Clock آن توسط Host/Master تأمین می‌شود.

SPMI_SCLK

Clock ورودی که توسط Host/Master هدایت می‌شود.

SPMI_SDATA

مسیر Bidirectional برای انتقال داده میان Host و PMU.

Figure 8.3 SPMI interconnect
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۱ — ساختار ارتباطی SPMI میان Host SoC و Brooklands PMU.

یک فرمان SPMI چه مسیری طی می‌کند؟

Host SoC → SPMI → SPMI Slave / RCS → AHB Fabric → Target Register / Digital Block

بنابراین SPMI مستقیماً «ولتاژ تولید نمی‌کند». این رابط فرمان را وارد Digital Control Block می‌کند و سپس Register، Scheduler، Power FSM یا Peripheral مربوطه بر اساس آن عمل می‌کند.

Privileged و Non-Privileged SPMI

Brooklands برای کنترل دسترسی، دو سطح SPMI تعریف می‌کند و از Slave-ID متفاوت برای ترافیک Privileged و Non-Privileged استفاده می‌کند.

Privileged SPMI

برای دسترسی‌هایی که سطح مجوز بالاتری دارند و می‌توانند به Register Space گسترده‌تری دسترسی پیدا کنند.

Non-Privileged SPMI

برای دسترسی‌های عادی Host و Software با محدودیت‌های امنیتی بیشتر.

در معماری Host، فرمان‌های سخت‌افزاری PMGR می‌توانند از Slave-ID Privileged استفاده کنند، در حالی که مسیرهای Software عادی به Non-Privileged محدود می‌شوند.

SPMI فقط برای Write نیست؛ PMU نیز با Host صحبت می‌کند

Brooklands می‌تواند Eventهای داخلی را از طریق Event Handler و SPMI به Host ارسال کند.

Edge Event

رخداد لحظه‌ای Latched می‌شود تا حتی پس از حذف Level اولیه از دست نرود.

Level Event

وضعیت سطحی تا زمانی که Host آن را Clear کند نگه داشته می‌شود.

Group Event

چند رخداد مرتبط می‌توانند در سطح بالاتر به یک Event گروهی تبدیل شوند.

Event Source → Event Handler → Priority → SPMI RCS → Host SoC

SGPIO؛ وقتی یک PMIC برای سیستم کافی نیست

SGPIO روی Physical Layer خانواده SPMI ساخته شده و برای ارتباط بین Leader، Follower و Leaf PMUها استفاده می‌شود.

هدف این معماری آن است که چند PMIC فیزیکی بتوانند در سطح سیستم مانند یک Logical PMU واحد رفتار کنند.

نکته مهم: Host الزاماً لازم نیست تمام جزئیات فیزیکی هر PMIC Remote را در سطح Power Sequencing مدیریت کند؛ Brooklands Leader می‌تواند بخشی از این هماهنگی را از طریق SGPIO انجام دهد.
Figure 8.11 SPMI and SGPIO interface scenarios
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۲ — سناریوهای ارتباطی SPMI و SGPIO میان Host، PMU Leader و PMUهای Remote.

Leader، Follower و Leaf چه تفاوتی دارند؟

Leader PMU

PMU مرکزی که می‌تواند Power State و برخی منابع PMUهای Remote را مدیریت و هماهنگ کند.

Follower PMU

PMU همراه که فرمان‌ها یا اطلاعاتی را از Leader دریافت و بر اساس Topology سیستم عمل می‌کند.

Leaf PMU

PMU Remote که می‌تواند از طریق Leader به منابع یا DVC آن دسترسی داده شود.

vGPIO؛ GPIO مجازی برای کنترل PMU Remote

در Power Sequencing لازم نیست برای هر فرمان میان PMUها یک GPIO فیزیکی مستقل وجود داشته باشد. SGPIO از مفهوم vGPIO استفاده می‌کند تا فرمان‌های منطقی به PMUهای Follower ارسال شوند.

Power Sequencer → vGPIO Trigger → SGPIO Encoder → Follower PMU → Rail / GPIO Action

Mapping این Triggerها و Slave-IDهای مقصد می‌تواند OTP-programmable باشد. بنابراین یک vGPIO مشخص می‌تواند به یک Action خاص در PMU Remote نگاشت شود.

Figure 8.13 vGPIO block diagram
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۳ — بلوک‌دیاگرام vGPIO و ارتباط آن با Power Controller و SGPIO.

ارتباط SGPIO با Power Sequencer

در مقاله Power Sequencer دیدیم هر Transition به Slotهای زمانی تقسیم می‌شود. Brooklands می‌تواند Triggerهای vGPIO را نیز در همین توالی استفاده کند.

در نتیجه یک Transition می‌تواند هم منابع داخلی Brooklands و هم منابع PMU Remote را در یک Sequence هماهنگ کند.

Slot Timing باید به‌اندازه‌ای باشد که SGPIO فرصت ارسال تمام vGPIOهای برنامه‌ریزی‌شده را داشته باشد. اگر Bus هنوز Busy باشد و Slot بعدی آغاز شود، امکان از دست رفتن فرمان‌های Slot بعد وجود دارد.

SGPIO دوطرفه است؛ Eventهای PMU Remote نیز باید برگردند

ارتباط بین PMUها فقط برای ارسال Enable یا vGPIO نیست. Eventهای Remote نیز می‌توانند از SGPIO به Leader منتقل و سپس از طریق مسیر مناسب به Host SoC Forward شوند.

Remote PMU Event → SGPIO → Brooklands Event Handler → SPMI → Host SoC

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 استفاده می‌کند. یعنی قبل از ارسال فرمان بعدی باید وضعیت فرمان قبلی مشخص شود.

DVC Command → Ramp → DVC_DONE → Next DVC Command

Fast Enable و Fast Disable از طریق DVC

برخی DVC Supplyها می‌توانند با DVC Command فعال شوند. به این رفتار Fast Enable گفته می‌شود. برای این منابع، Target برابر صفر نیز می‌تواند برای Fast Disable استفاده شود.

Fast Enable اصطلاحی جدا از Power Sequencer Startup است؛ این دو مکانیزم نباید با یکدیگر یکی در نظر گرفته شوند.

اگر هنگام Startup فرمان DVC برسد چه می‌شود؟

اگر Rail هنوز Startup خود را کامل نکرده باشد، DVC Ramp بلافاصله روی Startup سوار نمی‌شود. اجرای Ramp تا پایان Startup Rail به تعویق می‌افتد.

Rail Startup in Progress → DVC Pending → Startup Complete → DVC Ramp

DVC Ramp چگونه ساخته می‌شود؟

Ramp از تغییرات گسسته VSEL DAC تشکیل می‌شود. سه پارامتر اصلی برای توصیف آن عبارت‌اند از:

Voltage Step

تغییر VSEL در هر Step.

DVC Clock

Clock داخلی 48MHz که Counter Step را هدایت می‌کند.

Clock Ticks

تعداد Tick میان دو تغییر متوالی DAC.

مفهوم Ramp Rate
DVC Ramp Rate = Voltage Step × DVC Clock / Number of Clock Ticks

نکته بسیار مهم؛ DVC Ramp با رفتار واقعی VOUT یکی نیست

DVC روی Target Voltage و VSEL کنترل دارد، اما مشخص نمی‌کند ولتاژ واقعی خروجی در هر لحظه دقیقاً با چه dV/dt حرکت کند.

پاسخ واقعی VOUT همچنان به Power Stage، Load، COUT، Feedback، Settling Time و مشخصات خود Rail وابسته است.

Figure 8.56 DVC and Group-DVC
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۴ — نمایش DVC و Group-DVC و روند تغییر ولتاژ در طول زمان.

Group-DVC؛ تغییر هماهنگ دو Supply

Brooklands علاوه بر DVC معمولی، از DVCg / Group-DVC پشتیبانی می‌کند. در این ساختار، Group شامل دو Supply است که Scheduler فرمان آن‌ها را به‌صورت هماهنگ مدیریت می‌کند.

Host DVCg → Target A + Target B → Group Scheduler → Rail A + Rail B

Group-DVC الزاماً به معنی Ramp کاملاً یکسان دو Rail نیست

Scheduler با توجه به ولتاژ اولیه، Targetها، جهت Ramp و Slew Rate دو Rail رفتار هماهنگ را تعیین می‌کند.

اگر Rampها در یک جهت و محدوده مناسب قرار داشته باشند، بخشی از حرکت می‌تواند هماهنگ انجام شود.

اگر جهت دو Rail متفاوت باشد، هر Rail می‌تواند Ramp مستقل خود را اجرا کند.

برای Rampهای Non-overlapping ممکن است عملیات یکی پس از دیگری انجام شود.

در پایان یک Group-DVC موفق، Host یک Group DVC_DONE دریافت می‌کند.

Figure 8.23 SGPIO DVC tunneling
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۵ — مسیر SGPIO DVC Tunneling از Host به Brooklands و سپس به Leaf PMU.

DVC Lite در LDOها

DVC تنها مختص Buck نیست. برخی LDOهای Brooklands نیز DVC را با معماری ساده‌تر موسوم به DVC Lite پشتیبانی می‌کنند.

جزئیات الکتریکی DVC Lite و Slew Rateهای LDO در مقاله معماری LDOها بررسی شد؛ در این مقاله تمرکز روی مسیر فرمان و هماهنگی Digital Control است.

SGPIO DVC Tunneling؛ وقتی Rail روی Brooklands نیست

یکی از قابلیت‌های مهم Brooklands Leader این است که یک DVC Command دریافتی از Host را برای یک Supply Remote از طریق SGPIO به Leaf PMU Tunnel کند.

Host → SPMI → Brooklands DVC Dispatcher → SGPIO → Leaf PMU → DVC_DONE → Brooklands → SPMI → Host

DVC Dispatcher؛ Local یا Remote؟

DVC Dispatcher مشخص می‌کند فرمان دریافتی باید روی یکی از Supplyهای داخلی Brooklands اجرا شود یا به Supply موجود در Leaf PMU منتقل شود.

Local DVC
DVC Scheduler → Local DVC Engine → Brooklands Rail
Remote DVC
DVC Dispatcher → SGPIO → Leaf PMU

محدودیت‌های مهم DVC Tunneling

Tunneling تک DVC در Topologyهای پشتیبانی‌شده قابل استفاده است، اما همه حالت‌های Multi-PMU الزاماً پشتیبانی نمی‌شوند.

Group-DVC بین Supplyهایی که در PMUهای متفاوت قرار دارند پشتیبانی نمی‌شود.

در Topologyهای خاص Dual-Interface نیز محدودیت‌هایی برای DVC Tunneling وجود دارد.

Figure 8.24 SGPIO DVC dispatcher
برای مشاهده کامل شکل، تصویر را به چپ و راست حرکت دهید.
شکل ۶ — دیاگرام SGPIO DVC Dispatcher و تفکیک مسیر Local DVC و Remote DVC.

از دید تعمیرات، این معماری چه چیزی را تغییر می‌دهد؟

وجود یک 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 کافی نیست:

Host / Power FSM → Brooklands → vGPIO / SGPIO → Remote PMU → Remote Rail

خرابی یا Timeout در هر بخش از این زنجیره می‌تواند نتیجه نهایی مشابه «Rail Missing» ایجاد کند.

سناریو ۳؛ Target Voltage درست است اما Ramp متفاوت دیده می‌شود

Ramp برنامه‌ریزی‌شده DVC و Waveform واقعی روی Oscilloscope دو مفهوم مرتبط اما متفاوت‌اند.

Digital DVC

VSEL Step، Clock Tick و Target Voltage را تعیین می‌کند.

Analog Rail Response

Load، COUT، Loop، Slew، Settling و Power Stage شکل واقعی VOUT را تعیین می‌کنند.

مسیر کامل کنترل یک Rail می‌تواند این باشد:
Host → SPMI → Digital Control → DVC / Power FSM → SGPIO if Remote → PMU Rail → Event → SPMI → Host

جمع‌بندی

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 را بررسی می‌کنیم.

مرجع اصلی مقاله
Apple — Brooklands PMU Top Level Architecture Specification, Revision 2.1.0

دیدگاه‌ها (0)

برای ثبت دیدگاه لازم است

هنوز دیدگاهی برای این مقاله ثبت نشده است.