داوری (الکترونیک)

حاکمان یا داوران یا آربیتِرها (به انگلیسی: Arbiters) دستگاه‌های الکترونیکی هستند که دسترسی به منابع مشترک را بین مصرف کننده کان و درخواست کنندگان تقسیم می‌کنند. در واقع حمکیت انجام می‌شود.

حکمیت (داوری) بر روی گذرگاه

راه‌های متعددی برای انجام حکمیت یک گذرگاه رایانه‌ای وجود دارد. رایج‌ترین انواع آن عبارت‌اند از:[۱][۲]

  • موازی متمرکز پویا[الف] که در آن یک داور یا آربیتر مرکزی برای همه مسترها به‌کار می‌رود.
  • متمرکز سری[ب] ‎یا «زنجیره مروارید»[پ] که در آن پس از دست‌یابی هر مستر به گذرگاه، فرصت به مستر بعدی منتقل می‌شود و عملاً هر مستر یک داور داخلی مختص به خود را دارد.
  • داوری توزیع‌شده با انتخاب شخصی[ت] (‏داوری گذرگاه توزیع‌شده) که در آن دسترسی بر ساس تصمیم محلی هر مستر و با استفاده از اطلاعات سایر مسترها خودبه‌خود داده می‌شود.
  • داوری توزیع‌شده با تشخیص برخورد[ث] که در آن هر مستر به طور مستقل برای دسترسی به گذرگاه تلاش می‌کند، برخورد را تشخیص داده و عملیات ناموفق را تکرار می‌کند.

یک داور گذرگاه در یک سامانه گذرگاه چنداربابی تعیین می‌کند کدام مستر در هر چرخه گذرگاه اجازه کنترل گذرگاه را داشته باشد.

رایج‌ترین نمونه داوری گذرگاه، «داور حافظه»[ج] در یک سامانه گذرگاه سیستمی است.

داور حافظه در سامانه حافظه مشترک تعیین می‌کند که کدام سی‌پی‌یو می‌تواند در هر چرخه از حافظه، به آن دسترسی یابد.[۳][۴][۵]

برخی دستورهای اتمی برای جلوگیری از خواندن حافظه «در میانه» عملیاتِ خواندن‑تغییر‑نوشتن اتمی توسط سایر سی‌پی‌یوها به داور (آربیتر) وابسته‌اند.

آربیتر حافظه معمولاً در کنترلگر حافظه یا کنترل‌کننده دی‌اِم‌اِی یکپارچه می‌شود.

برخی سامانه‌ها همچون پی‌سی‌آی متعارف یک وسیله به عنوان داوری گذرگاه مرکزی واحد دارند که می‌توان آن را «داور گذرگاه» نامید و معمولاً در چیپ‌ست مجتمع شده است.[۶]

برخ دیگر از سامانه‌ها از داوری گذرگاه غیرمتمرکز استفاده می‌کنند که در آن همه دستگاه‌ها برای تعیین نوبت بعدی با هم همکاری می‌کنند.[۷][۸]

اگر همه سی‌پی‌یوهای متصل به آربیتر حافظه، چرخه‌های دسترسی به حافظه هم‌زمان داشته باشند، می‌توان داور حافظه را به صورت هم‌زمان (سنکرون) طراحی کرد؛ در غیر این صورت داور باید ناهمزمان (آسنکرون) باشد.

آربیترهای آسنکرون

یکی از شکل‌های مهم آربیتر در مدار آسنکرون به‌کار می‌رود تا ترتیب دسترسی به یک منبع مشترک را میان درخواست‌های آسنکرون تعیین کند. وظیفه آن جلوگیری از وقوع هم‌زمان دو عملیاتی است که تداخل دارند و نباید چنین شود. برای نمونه، در رایانه‌ای با چند سی‌پی‌یو یا دستگاه‌های دیگر که به حافظه رایانه دسترسی دارند، و هرکدام نیز ساعت (کلاک) جداگانه‌ای دارند، این امکان هست که دو درخواست نامستقل تقریباً هم‌زمان با هم وارد گذرگاه شوند. منظور از هم‌زمان «تقریباً» می‌تواند در حد زیر‑فمتوثانیه باشد. آربیتر حافظه باید تصمیم بگیرد کدام درخواست نخست رسیدگی شود. متأسفانه، انجام این کار در بازه‌های زمانی ثابت (حالت سنکرون) ممکن نیست [Anderson 1991].

آربیترهای آسنکرون و شبه‌پایداری

آربیترها گره‌گشا هستند. مانند یک فلیپ‌فلاپ، آربیتر دو حالت پایدار دارد که متناظر با دو انتخاب است. اگر دو درخواست در فاصله چند پیکوثانیه (امروزه فمتوثانیه) از هم برسند، مدار ممکن است پیش از رسیدن به یکی از حالت‌های پایدار، وارد شبه‌پایداری در الکترونیک شود. آربیترهای کلاسیک طوری طراحی می‌شوند که در هنگام متاپایداری نوسان نکنند و با استفاده از توان بیشتر، هرچه زودتر از آن خارج شوند؛ احتمال نرسیدن به حالت پایدار با گذر زمان پس از ارائه ورودی‌ها به‌طور نمایی کاهش می‌یابد.

در میانه دهه ۱۹۷۰ راهکاری قابل اعتماد برای این مسئله یافت شد. هرچند آربیترِ تصمیم‌گیر در زمان ثابت ممکن نیست، می‌توان مداری ساخت که در موارد «سخت» (فراخوانی‌های نزدیک) اندکی بیشتر زمان ببرد. باید یک مدار همگام‌سازی چندمرحله‌ای به‌کار رود که تشخیص دهد آربیتر هنوز پایدار نشده و تا رسیدن به پایداری پردازش را به‌تعویق اندازد. در نظریه، آربیتر می‌تواند بی‌نهایت طول بکشد (نگاه کنید به اصل بریدان), اما در عمل بندرت بیش از چند تأخیر گیت زمان می‌برد. مقاله کلاسیک [Kinniment and Woods 1976] «فلیپ‌فلاپ سه‌حالته» را توصیف می‌کند و [Ginosar 2003] درباره خطاهای رایج در طراحی آربیتر هشدار می‌دهد. این نتیجه اهمیت عملی فراوانی دارد، زیرا رایانه‌های چندپردازنده‌ای بدون آن به‌طور قابل اطمینان کار نمی‌کنند. نخستین رایانه‌های چندپردازنده‌ای مربوط به اواخر دهه ۱۹۶۰ و پیش از توسعه آربیترهای قابل اعتماد بودند؛ برخی از آن‌ها با ساعت‌های مستقل برای هر پردازنده از شرایط مسابقه در آربیتر رنج می‌بردند و نامطمئن بودند، اما امروزه این مشکل رفع شده است.

آربیترهای سنکرون

آربیترها در محیط‌های سنکرون نیز برای تخصیص دسترسی به منبع مشترک به‌کار می‌روند. یک نمونه از آربیتر سنکرون، آربیتر موج‌جبهه‌ای است که در نوعی سوئیچ شبکه بزرگ وجود دارد.

یادداشت‌ها

  1. dynamic centralized parallel
  2. centralized serial
  3. daisy chain
  4. distributed arbitration by self‑selection
  5. distributed arbitration by collision detection
  6. memory arbiter

مراجع

  1. Noergaard 2012, p. 297.
  2. Gottlieb 1999.
  3. Michael Fingeroff. "High-Level Synthesis Blue Book". 2010. p. 270. quote: "The bus or memory arbiter processes the request from the different processes and decides who gets access to the bus/memory."
  4. Arten Esa, Bryan Myers. "Design of an Arbiter for DDR3 Memory". 2013.
  5. Kearney, D.A.; Veldman, G. "A concurrent multi-bank memory arbiter for dynamic IP cores using idle skip round robin". 2003. DOI: 10.1109/FPT.2003.1275789.
  6. docs.oracle.com https://docs.oracle.com/cd/E19620-01/805-4447/auto2/index.html. Retrieved 2024-07-26. {{cite web}}: Missing or empty |title= (help)
  7. Tim Downey. "Bus Arbitration"
  8. Shun Yan Cheung. "Bus Arbitration" بایگانی‌شده در ۲۰۲۲-۰۵-۲۸ توسط Wayback Machine

منابع کتاب‌شناسی

پیوند به بیرون