PCILMR(8) The PCI Utilities PCILMR(8)

pcilmr - ابزار ارزیابی حاشیه خطوط ارتباطی PCIe (Lane Margin Tool)

pcilmr [--margin] [<common options>] <link port> [<link options>] [<link port> [<link options>] ...]
pcilmr --full [<common options>]
pcilmr --scan

فهرست پیش‌نیازهای پیوندها و تنظیمات سیستم برای اجرای آزمون ارزیابی حاشیه (margining).

تنظیمات BIOS (بسته به سیستم متفاوت است و برای بردهای اصلی سرور دارای پردازنده‌های Xeon کاربرد دارد):

•
ویژگی‌های PCIe Leaky Bucket، برابرسازی مجدد (Re-Equalization) و افت کیفیت پیوند (Link Degradation) را غیرفعال کنید؛
•
آستانه‌های خطا (Error Thresholds) را روی 0 تنظیم نمایید؛
•
قابلیت Intel VMD برای درایوهای NVMe SSD - در صورت بروز رفتار غیرعادی در pcilmr، تلاش کنید آن را در حالی که VMD غیرفعال است اجرا کنید.

پیش‌نیازهای دستگاه (پیوند):

پیش از اجرای ابزار توسط کاربر پیکربندی می‌شوند و ابزار آن‌ها را تغییر نمی‌دهد:
•
نرخ داده فعلی پیوند باید 16.0 GT/s یا بالاتر باشد (در حال حاضر ابزار از پیوندهای 16 GT/s و 32 GT/s پشتیبانی می‌کند)؛
•
مؤلفه پایین‌دست پیوند (Downstream Component) باید در وضعیت مدیریت توان D0 باشد.
در حین عملیات توسط ابزار پیکربندی می‌شوند و ابزار پس از دریافت نتایج آن‌ها را به وضعیت اولیه بازمی‌گرداند:
•
قابلیت ASPM باید هم در درگاه پایین‌دست (Downstream Port) و هم در درگاه بالادست (Upstream Port) غیرفعال باشد؛
•
بیت Hardware Autonomous Speed Disable از ثبات Link Control 2 باید هم در درگاه پایین‌دست و هم در درگاه بالادست تنظیم (Set) شده باشد؛
•
بیت Hardware Autonomous Width Disable از ثبات Link Control باید هم در درگاه پایین‌دست و هم در درگاه بالادست تنظیم (Set) شده باشد.

ابزار pcilmr امکان بهره‌گیری از قابلیت ارزیابی حاشیه خطوط PCIe در گیرنده (PCIe Lane Margining at the Receiver) را فراهم می‌کند؛ قابلیتی که برای تمامی درگاه‌های پشتیبانی‌کننده از نرخ داده 16.0 GT/s یا بالاتر، از جمله شبه‌درگاه‌ها (Retimers)، الزامی است. قابلیت Lane Margining at the Receiver به نرم‌افزار سیستم اجازه می‌دهد تا در حالی که پیوند در وضعیت L0 قرار دارد، اطلاعات حاشیه یک گیرنده مشخص را به دست آورد. این اطلاعات حاشیه شامل هر دو مؤلفه ولتاژ و زمان در هر دو جهت از موقعیت فعلی گیرنده است. پشتیبانی از ارزیابی حاشیه زمان‌بندی الزامی است، در حالی که پشتیبانی از ولتاژ در نرخ 16.0 GT/s اختیاری بوده و در نرخ‌های داده 32.0 GT/s و بالاتر الزامی است. همچنین، ارزیابی حاشیه مستقل زمان و ارزیابی حاشیه مستقل ولتاژ اختیاری است.

این ابزار امکان به دست آوردن تقریبی از نمودار حاشیه چشم (eye margin diagram) را به شکل یک لوزی (توسط چهار نقطه) فراهم می‌کند. قابلیت Lane Margining at the Receiver به کاربران امکان می‌دهد پیوندهای PCIe را بدون نیاز به یک دیباگر سخت‌افزاری و بدون نیاز به متوقف کردن سیستم هدف ارزیابی کنند. این ابزار می‌تواند برای خطایابی و رفع مشکلات پیوند ناشی از حاشیه‌های گیرنده بسیار مفید باشد.

ابزار pcilmr نیازمند دسترسی ریشه (root) است (برای دسترسی به فضای پیکربندی گسترش‌یافته)، اما در طول آزمایش‌های انجام‌شده مشکلی برای دستگاه‌ها پیش نیامد و آن‌ها پس از پایان آزمون با موفقیت به وضعیت اولیه و عادی خود بازگشتند.

مشخصات فنی PCIe مقادیر مرجعی را برای نمودار چشم ارائه می‌دهد که توسط pcilmr نیز برای ارزیابی نتایج استفاده می‌شود، اما به نظر می‌رسد تماس با سازنده یک دستگاه خاص برای دریافت مقادیر مرجع منطقی‌تر است.

این ابزار از مقادیر تعیین‌شده در بخش 8.4.2 از سند PCIe Base Spec Rev. 5.0 به عنوان مراجع پیشفرض حداقل پهنا و ارتفاع چشم استفاده می‌کند. مقادیر توصیه‌شده از سند PCIe Architecture PHY Test Spec Rev 5.0 (Transmitter Electrical Compliance) برگرفته شده‌اند.

مقادیر مرجع درجه‌بندی که در حال حاضر توسط ابزار استفاده می‌شوند در جدول زیر آمده است:

16 GT/s (Gen 4) 32 GT/s (Gen 5)
EW EH EW EH
Min 18.75 ps 30% UI 15 mV 9.375 ps 30% UI 15 mV
Rec 23.75 ps 38% UI 21 mV 10.157 ps 33% UI 19.75 mV

ابزار pcilmr از مقادیر کامل پهنا و ارتفاع چشم (EW و EH) برای درجه‌بندی خطوط استفاده می‌کند. با این حال، ممکن است دستگاه تنها از ارزیابی حاشیه یک‌طرفه پشتیبانی کند. در چنین مواردی، ابزار به طور پیشفرض EW یا EH را به عنوان دو برابر نتیجه یک طرف محاسبه خواهد کرد.

اگر اطلاعات مربوط به دستگاهی خاص در دسترس است، می‌توانید معیارهای درجه‌بندی را پیکربندی کرده و رفتار ابزار را در موارد تک‌طرفه با استفاده از گزینه مختص پیوند -g برای دستگاه خود تنظیم کنید (به بخش زیر مراجعه نمایید).

به لطف آزمایش‌ها یا مستقیماً بر اساس مستندات سازنده، می‌دانیم که برخی از دستگاه‌ها در حین ارزیابی حاشیه نیازمند رفتار ویژه‌ای هستند. ابزار چنین دستگاه‌هایی را بر اساس جفت شناسه سازنده - شناسه دستگاه (Vendor ID - Device ID) شناسایی می‌کند. در حال حاضر فهرست دستگاه‌های خاص در فایل margin_hw به صورت مستقیم در کد گنجانده شده است (hardcoded). برای چنین دستگاه‌هایی، ابزار می‌تواند به طور خودکار پارامترهای ارزیابی حاشیه درگاه یا گزینه‌های درجه‌بندی را تنظیم کند.

برای نمونه، برای درگاه‌های RC پردازنده‌های Ice Lake اینتل، ابزار pcilmr مقدار MaxVoltageOffset دستگاه را تغییر می‌دهد و استفاده از حالت درجه‌بندی 'one side is the whole' را اجباری می‌کند.

می‌توانید درگاه رو به پایین (Downstream) یا رو به بالای (Upstream) پیوند را مشخص کنید.

<device/component>
[<domain>:]<bus>:<dev>.<func> (ببینید lspci(8))

ارزیابی حاشیه پیوندهای انتخاب‌شده.
ارزیابی حاشیه تمام پیوندهای آماده برای آزمون در سیستم (با معنایی مشابه با گزینه --scan ) به صورت تک تک.
پویش برای یافتن پیوندهایی با سرعت توافق‌شده 16 GT/s یا بالاتر. آن دسته از پیوندها که حداقل در یکی از سمت‌های آن‌ها بیت Margining Ready فعال باشد به عنوان "Ready" (آماده) علامت‌گذاری می‌شوند، به این معنی که این پیوندها برای آزمون آماده هستند و می‌توانید ابزار را روی آن‌ها اجرا کنید.

-c فقط چاپ قابلیت‌های ارزیابی حاشیه خطوط دستگاه (Device Lane Margining Capabilities). آزمون ارزیابی حاشیه را اجرا نمی‌کند.

تعیین حد مجاز شمارش خطا (Error Count Limit) برای ارزیابی حاشیه.
پیشفرض: 4.
ذخیره نتایج ارزیابی حاشیه به فرمت csv در دایرکتوری مشخص‌شده. ابزار فایلی با نامی به فرم "lmr_<port>_Rx#_<timestamp>.csv" برای هر گیرنده‌ای که با موفقیت آزمایش شود تولید خواهد کرد.
تعیین زمان درنگ (dwell time) بر حسب ثانیه برای هر گام ارزیابی حاشیه.
پیشفرض: 1 ثانیه (1 s)
تعیین خطوط (lanes) برای ارزیابی حاشیه.
به یاد داشته باشید که ممکن است دستگاه از معکوس‌سازی خطوط (Lane Reversal) برای شماره‌گذاری خطوط استفاده کند. با این حال، این ابزار از شماره‌های منطقی خطوط در آرگومان‌ها و برای ثبت گزارش استفاده می‌کند. ابزار به طور خودکار Lane Reversal را تشخیص داده و فراخوانی‌های خود را متناسب با آن تنظیم می‌کند.
پیشفرض: تمامی خطوط پیوند.
تعیین گیرنده‌ها برای انتخاب اهداف ارزیابی حاشیه.
پیشفرض: تمامی گیرنده‌های در دسترس (از جمله ریتایمرها/Retimers).
تعیین تعداد خطوط برای ارزیابی حاشیه به صورت هم‌زمان.
مطابق مشخصات، این امکان برای گیرنده وجود دارد که تا حداکثر MaxLanes + 1 خط را به طور هم‌زمان ارزیابی حاشیه کند، اما در طول آزمایش‌ها، انجام ارزیابی حاشیه هم‌زمان روی چندین خط منجر به نتایجی شد که با ارزیابی متوالی تفاوت داشت؛ بنابراین این ویژگی نیازمند اعتبارسنجی بیشتر است و گزینه -p در حال حاضر بیشتر برای مقاصد آزمایشی و تجربی است.
پیشفرض: 1.

در هر زمان تنها از یکی از گزینه‌های -T/-t استفاده کنید (برای -V/-v نیز به همین ترتیب).
بدون این گزینه‌ها، ابزار از MaxSteps موجود در قابلیت‌های دستگاه به عنوان حد آزمون استفاده خواهد کرد.

ارزیابی حاشیه زمان تا زمانی ادامه خواهد یافت که شمارش خطا از حد مجاز شمارش خطا بیشتر نباشد. از این گزینه برای یافتن حد نهایی پیوند استفاده کنید.
تعیین حداکثر تعداد گام‌ها برای ارزیابی حاشیه زمان (Time Margining).
مشابه گزینه -T است، اما برای ولتاژ به کار می‌رود.
تعیین حداکثر تعداد گام‌ها برای ارزیابی حاشیه ولتاژ (Voltage Margining).
<recvn>t=f[,<criteria>{%|ps}]
<recvn>v=<criteria>[,f]
<recvn>v=f[,<criteria>]
تعیین معیارهای درجه‌بندی قبولی/ردی (pass/fail) برای پهنای چشم (زمان‌بندی - t) یا ارتفاع آن (ولتاژ - v) برای یکی از گیرنده‌های پیوند. برای EW باید یکی از واحدها (% UI یا ps) را انتخاب کنید؛ برای EH از mV استفاده می‌شود.
فلگ اضافی f برای شرایطی است که درگاه از ارزیابی حاشیه مستقل دوطرفه پشتیبانی نمی‌کند. در چنین مواردی، ابزار به طور پیشفرض EW یا EH را به عنوان دو برابر نتیجه یک طرف محاسبه می‌کند. شما می‌توانید فلگ f را به گزینه -g اضافه کنید تا به ابزار اعلام کند که نتیجه در یک جهت، در واقع اندازه‌گیری کل چشم است و نیازی به ضرب شدن ندارد. این حالت اصطلاحاً حالت درجه‌بندی 'one side is the whole' نامیده می‌شود.

مثال نحوه استفاده از ابزار:

pcilmr -o csv ab:0.0 -r 1,6 -g 1t=20% -g 1v=f,30 52:0.0 -l 0,1,2 -TV

نمونه‌هایی از نتایج جمع‌آوری‌شده در سیستم‌های مختلف.

lspci(8), PCI Express Base Specification (Lane Margining at Receiver)

ابزار pcilmr توسط نیکیتا پروشکین (Nikita Proshkin) برای بسته ابزارهای PCI توسعه داده شده است.

05 April 2026 pciutils-3.15.0