بیشتر کاربران پورتهای USB را بخشی از زیرساخت کامپیوتر میدانند که قرار نیست توجه چندانی به آن داشته باشند. دستگاهی را وصل میکنید، کار میکند و احتمالاً تا زمانی که یک وسیله دیگر در ویندوز شناسایی نشود، حتی به تعداد پورتهای USB فکر نمیکنید.
اما USB محدودیتهایی دارد که ممکن است در استفاده عادی چندان مشخص نباشند. این محدودیتها فقط به تعداد فیزیکی پورتهای روی مادربورد مربوط نمیشوند و ترکیبی از ساختار USB، هابها، کنترلرها، توان مصرفی و منابع سختافزاری سیستم میتواند تعیین کند کامپیوتر در عمل چند دستگاه را مدیریت میکند.
میخواستم ببینم کامپیوترم چند دستگاه USB را میتواند تحمل کند
محاسبات تئوری در دنیای واقعی چندان قابل اتکا نیستند
در نگاه اول شاید تصور کنید پورتهای USB کامپیوتر دسکتاپ تقریباً محدودیتی ندارند. بالاخره یک کامپیوتر رومیزی مستقیماً به برق شهری متصل است و مانند لپتاپ برای تأمین انرژی به باتری متکی نیست.
با این حال، تعداد دستگاههایی که از نظر تئوری میتوانند به یک گذرگاه USB متصل شوند، با چیزی که در استفاده واقعی اتفاق میافتد تفاوت زیادی دارد.
در ساختار USB، برای آدرسدهی دستگاهها ۷ بیت در نظر گرفته شده است. این ساختار در مجموع ۱۲۸ مقدار مختلف ایجاد میکند، اما یکی از این مقادیر برای دستگاهی که هنوز پیکربندی نشده رزرو میشود. بنابراین از نظر تئوری، یک میزبان USB میتواند تا ۱۲۷ دستگاه را مدیریت کند.
اما این عدد به این معنی نیست که میتوانید ۱۲۷ دستگاه را به کامپیوتر وصل کنید و انتظار داشته باشید همه آنها بدون مشکل کار کنند.
USB از ساختاری شاخهای استفاده میکند که از یک Root Hub آغاز میشود. مشخصات USB تعداد سطوح این ساختار را محدود میکنند و نمیتوان هابها را بدون محدودیت پشت سر هم قرار داد. کنترلر میزبان و Root Hub داخلی یک سطح را اشغال میکنند و در عمیقترین سطح نیز باید یک دستگاه واقعی قرار داشته باشد، نه یک هاب دیگر.
در نتیجه، در یک ساختار ساده تنها تعداد محدودی هاب خارجی را میتوان به شکل زنجیرهای به یکدیگر متصل کرد. اگر از این محدودیت عبور کنید، ممکن است برخی دستگاهها دیگر شناسایی نشوند؛ حتی بدون اینکه پیام خطای واضحی درباره دلیل آن دریافت کنید.
البته این موضوع باز هم فقط بخشی از ماجراست. بسیاری از مادربوردها و هابهای چندپورته، ساختارهای هاب داخلی دارند. بنابراین ممکن است بخشی از این سطوح پیش از آنکه حتی یک هاب خارجی به کامپیوتر متصل کنید، مصرف شده باشد.
از طرف دیگر، کامپیوترها از نظر سختافزار و نحوه پیادهسازی USB یکسان نیستند. نوع کنترلر، مادربورد، هابها و دستگاههای متصلشده همگی میتوانند روی نتیجه تأثیر بگذارند.
به همین دلیل تصمیم گرفتم به جای تکیه بر اعداد تئوری، تعداد زیادی دستگاه مختلف را به کامپیوتر متصل کنم و ببینم در استفاده واقعی چه اتفاقی میافتد.
این آزمایش فقط با فلش مموری انجام نشد. دانگلها، گوشیها و تجهیزات جانبی مختلف نیز به سیستم متصل شدند تا شرایط آزمایش تا حد امکان به استفاده روزمره نزدیک باشد.
وقتی دستگاههای زیادی وصل میکنید، مشکلات شروع میشوند
کامپیوتر ممکن است بعضی دستگاهها را نادیده بگیرد یا تحت فشار قرار بگیرد
وقتی فلش مموری، کیبورد، وبکم و سایر تجهیزات را از طریق چند هاب USB به کامپیوتر متصل میکنید، ممکن است در ابتدا همه چیز کاملاً عادی به نظر برسد.
اما با افزایش تعداد دستگاهها، فشار بیشتری به ساختار USB وارد میشود. کنترلر میزبان باید زمان ارتباط هر دستگاه با سیستم را مدیریت کند و برای حفظ نظم، منابع ارتباطی را بین دستگاههای مختلف تقسیم کند.
مشکل زمانی جدیتر میشود که دستگاههای قدیمیتر یا تجهیزات خاص از طریق هابی متصل شوند که برای مدیریت ترافیک آنها منابع محدودی دارد. در چنین شرایطی، چند دستگاه ممکن است برای دسترسی به یک مسیر پردازشی مشترک با یکدیگر رقابت کنند.
با افزایش بار، احتمال افت داده و سرریز بیشتر میشود و عملکرد سیستم میتواند افت کند. تجهیزات جانبی با نرخ Polling بالا نیز میتوانند درخواستهای بسیار زیادی به پردازنده ارسال کنند و در شرایط خاص، بار پردازنده را به شکل محسوسی افزایش دهند.
در آزمایش من، انتظار داشتم ویندوز یک پیام خطای واضح درباره تمام شدن منابع کنترلر USB نمایش دهد. اما چیزی که واقعاً اتفاق افتاد، سادهتر و در عین حال عجیبتر بود: بعضی دستگاهها دیگر شناسایی نمیشدند.
دستگاهها عملاً از دید کامپیوتر ناپدید میشدند و در نتیجه نمیتوانستم از آنها استفاده کنم!
در ابتدا تصور میکردم افزایش تعداد دستگاهها باعث فشار زیادی به حافظه سیستم شده است، اما بررسی میزان استفاده از منابع نشان داد مشکل اصلی جای دیگری است. با افزایش بار، استفاده از پردازنده بالا رفت و صدای فنها نیز بیشتر شد.
در نهایت، مجبور شدم کامپیوتر را خاموش کنم و تعدادی از تجهیزات USB غیرضروری را جدا کنم.
این رفتار در واقع میتواند بهتر از آن چیزی باشد که به نظر میرسد. اگر سیستم در مواجهه با بار بیش از حد بعضی دستگاهها را از مدار خارج کند، دستکم از ادامه فشار غیرضروری به سختافزار جلوگیری میشود.
فشار بیش از حد به USB میتواند به کامپیوتر آسیب بزند
مدارهای محافظ پیش از آسیب جدی وارد عمل میشوند
با وجود تمام این محدودیتها، نباید تصور کرد که اتصال تعداد زیادی دستگاه USB الزاماً باعث سوختن فوری کامپیوتر میشود. مادربوردها و تجهیزات USB معمولاً به مدارهای حفاظتی مجهز هستند تا در شرایطی مانند جریان بیش از حد، از آسیب جدی جلوگیری کنند.
با این حال، امتحان کردن عمدی این موضوع ایده خوبی نیست.
وقتی تعداد زیادی دستگاه را روی یک گذرگاه USB قرار میدهید، دستگاهها در نهایت از منابع تغذیه مرتبط با مادربورد استفاده میکنند. این منابع برای تحمل هر مقدار بار طراحی نشدهاند و افزایش بیش از حد جریان میتواند باعث ایجاد مشکلات واقعی شود.
اگر فشار بیش از حد ادامه پیدا کند، سیستم ممکن است ناپایدار شود یا رفتارهایی نشان دهد که پیدا کردن علت آنها دشوار است. در شرایط بسیار نامناسب، عبور جریان بیش از ظرفیت طراحیشده میتواند به مسیرهای رسانا و قطعات مدار آسیب دائمی وارد کند.
مسئله فقط خود مادربورد نیست. برای مثال، فلش مموریها و حافظههای USB هنگام خواندن و نوشتن اطلاعات به تأمین برق پایدار نیاز دارند. اگر برق یک دستگاه ذخیرهسازی ناگهان قطع شود، احتمال خراب شدن اطلاعات یا فایلسیستم وجود دارد.
بنابراین اگر چندین حافظه USB را همزمان به کامپیوتر متصل کردهاید، قطع ناگهانی برق آنها میتواند پیامدهای ناخوشایندی داشته باشد.
خوشبختانه مدارهای محافظ USB برای مقابله با جریان بیش از حد طراحی شدهاند. سوئیچهای الکترونیکی محافظ میتوانند افزایش جریان را بسیار سریع تشخیص دهند و ابتدا آن را محدود کنند. اگر شرایط ادامه پیدا کند، ممکن است برق پورت موردنظر به طور کامل قطع شود.
این سیستمهای حفاظتی واقعاً کاربردی هستند، اما نباید آنها را به عنوان روشی برای استفاده روزمره از USB در نظر گرفت.
اتکا به مدارهای حفاظتی برای آزمایش اینکه «چقدر میتوان سیستم را تحت فشار قرار داد» با استفاده عادی تفاوت دارد. هر بار قطع شدن برق یک دستگاه ذخیرهسازی نیز میتواند ریسک خاص خود را داشته باشد، بهخصوص اگر دستگاه در حال نوشتن اطلاعات باشد.
به همین دلیل، بعد از انجام این آزمایش، تعداد تجهیزات و کابلهای USB متصل به کامپیوتر را کاهش دادم.
هدف آزمایش بیشتر این بود که تفاوت میان محدودیتهای نوشتهشده در مشخصات USB و رفتار یک سیستم واقعی را ببینم؛ نه اینکه مشخص کنم چطور میتوان یک کامپیوتر را تا مرز خرابی پیش برد.
پس محدودیت واقعی USB کامپیوتر چقدر است؟
پاسخ سادهای وجود ندارد. عدد ۱۲۷ دستگاه یک محدودیت تئوری در ساختار آدرسدهی USB است، اما این عدد به تنهایی نشان نمیدهد یک کامپیوتر مشخص در دنیای واقعی چند دستگاه را میتواند بدون مشکل مدیریت کند.
تعداد و نوع کنترلرهای USB، ساختار داخلی مادربورد، هابهای مورد استفاده، عمق زنجیره هابها، نوع دستگاهها، میزان ترافیک و مصرف توان همگی میتوانند روی نتیجه تأثیر بگذارند.
به همین دلیل ممکن است یک کامپیوتر با تعداد مشخصی دستگاه USB کاملاً پایدار باشد، در حالی که سیستم دیگری با تعداد بسیار کمتری دچار مشکل شود.
این آزمایش را در خانه تکرار نکنید
این نوع آزمایشها بیشتر برای خواندن و مشاهده نتیجه جذاب هستند تا اینکه بخواهید آنها را روی کامپیوتر خودتان تکرار کنید.
مدارهای حفاظتی میتوانند در بسیاری از شرایط از سختافزار در برابر جریان بیش از حد محافظت کنند، اما برای آزمایش مداوم و عمدی طراحی نشدهاند.
اگر میخواهید بدانید سیستم شما چه مقدار ظرفیت USB دارد، بهتر است به جای فشار آوردن عمدی به سختافزار، رفتار آن را در استفاده معمول زیر نظر بگیرید. ناپدید شدن دستگاهها، افزایش غیرعادی استفاده از پردازنده یا بالا رفتن دمای سیستم میتواند نشانهای باشد که تعداد تجهیزات یا نوع اتصال آنها برای سیستم مناسب نیست.
در نهایت، تفاوت مهمی میان «تعداد دستگاههایی که USB از نظر تئوری میتواند آدرسدهی کند» و «تعداد دستگاههایی که کامپیوتر شما در عمل میتواند به شکل پایدار مدیریت کند» وجود دارد.
همین فاصله میان مشخصات روی کاغذ و رفتار سختافزار واقعی است که محدودیت پنهان USB را جالب میکند.
سیارهی آیتی



