یادگیری امروزم از کتاب معماری کامپیوتر موریس مانو(۱)
امروز دربارهی اینتراپت(وقفه) ها در معماری کامپیوتر خوندم. امیدوارم مطالبی که فهمیدم درست باشن ! :)
امروز دربارهی اینتراپت(وقفه) ها در معماری کامپیوتر خوندم. امیدوارم مطالبی که فهمیدم درست باشن ! :)
متاسفانه توی مطالعه معماری خیلی کًند پیش میرم ! :((
اینتراپت با سابروتین ها سه تا تفاوت مهم داره:
- اینتراپت معمولا بجای اینکه از طریق اجرای یک 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 هست.