یادگیری امروزم از کتاب معماری کامپیوتر موریس مانو(۱)

امروز درباره‌ی اینتراپت(وقفه) ها در معماری کامپیوتر خوندم. امیدوارم مطالبی که فهمیدم درست باشن 🙂

متاسفانه توی مطالعه معماری خیلی کًند پیش میرم 🙁

اینتراپت با ساب‌روتین ها سه تا تفاوت مهم داره:

  • اینتراپت معمولا بجای اینکه از طریق اجرای یک instruction اجرا بشه، با انتشار یک سیگنال درونی/بیرونی اجرا میشه
  • آدرس سرویسِ اینتراپت برخلاف instruction ها معمولا توسط سخت افزار مشخص میشه نه توسط address field
  • در فرآیند اینتراپت برای مشخص کردن CPU state مقدار بیشتری اطلاعات(مثل رجیستر ها، شمارنده‌ی برنامه، و یه سری status condition ها) ذخیره میشه درحالی که در ساب‌روتین ها شمارنده‌ی برنامه ذخیره میشه.

کِی اینتراپت اتفاق میوفته؟

اینتراپت فقط اتفاق میوفته که دستور قبلی به صورت کامل انجام شده باشه و اگر CPU در حین انجام یک دستور باشه، به اینتراپت جواب نمیده. وقتی یک دستور تموم میشه، سی پی یو چک میکنه که آیا اینتراپتی در حالت pending هست یا نه. اگر بود، CPU وارد hardware interrupt cycle میشه. توی این سیکل محتویات PC و PSW(Program Status Word) توی استک قرار میگیره و آدرس برنچ سرویسی که قراره اجرا بشه بجای PC قرار میگیره. همچنین PSW جدید هم توی جای خودش قرار میگیره و اجرای دستورات آغاز میشه.

آخرین دستور اینتراپت، interrupt return cycle هست که طی اون سی پی یو به حالت قبل از وقوع وقفه برمیگرده و روتین خودش رو ادامه میده.

چند نوع اینتراپت داریم؟

سه نوع وقفه داریم که به صورت زیر هستن:

  • External Interrupt
  • Internal Interrupt
  • Software Interrupt

اینتراپت های اکسترنال و اینترنال تحت تاثیر انتشار سیگنال های سخت افزاری اتفاق میوفتن اما اینتراپت های نرم افزاری از طریق اجرای دستورات در برنامه اتفاق می‌افتن.

اینتراپت های نرم افزاری یک سری فراخوانی دستورات هستند که بیشتر بجای اینکه شبیه ساب‌روتین باشن، شبیه اینتراپت هستن. درواقع برنامه نویس با این وقفه ها میتونه CPU رو به حالت supervisor ببره و از دستورات اون بخش استفاده کنه. به عنوان مثال، استفاده از دستورات I/O نیازمند مد supervisor هست. برنامه در حالت یوزر مود هست و هنگامی که بخواد از انتقال I/O استفاده کنه از طریق supervisor call instruction موجب میشه که سی پی یو به حالت سوپروایزر بره.

بخش بعدی

بخش بعدی ای که قراره بخونم(فردا) درباره‌ی معماری RISC هست.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *