Podcast
Questions and Answers
عملکرد سختافزار در یک درخواست فعال در ورودی درخواست قطع چگونه است؟
عملکرد سختافزار در یک درخواست فعال در ورودی درخواست قطع چگونه است؟
در صورت تغییر مثبت در ورودی CLK فلپفلاپ، خروجی Q آن سطح منطقی 1 میشود و سیگنال یک مثبت به ورودی INTR میرسد.
عدد نوع ارسالی به میکروپروسسور در درخواست قطع چه مقداری دارد؟
عدد نوع ارسالی به میکروپروسسور در درخواست قطع چه مقداری دارد؟
عدد نوع ارسالی به میکروپروسسور 60H است.
نقشه سازمان فضایی آدرس حافظه را با فرض مقادیر اولیه در ثباتهای سگمنت رسم کنید.
نقشه سازمان فضایی آدرس حافظه را با فرض مقادیر اولیه در ثباتهای سگمنت رسم کنید.
مقاطع حافظه شامل کد، داده و پشته به ترتیب با آدرسهای 1000H، 4000H و 2000H:0000H آغاز میشوند.
برنامه اصلی و روال خدماتی چگونه باید طراحی شوند تا تحولات مثبت در INTR به عدد دهدهی شمارش شوند؟
برنامه اصلی و روال خدماتی چگونه باید طراحی شوند تا تحولات مثبت در INTR به عدد دهدهی شمارش شوند؟
Signup and view all the answers
نقش سیگنال قطع ACK در واکنش 8088 به درخواست قطع چیست؟
نقش سیگنال قطع ACK در واکنش 8088 به درخواست قطع چیست؟
Signup and view all the answers
چگونه مدار میتواند درخواستهای قطع را شمارش کند؟
چگونه مدار میتواند درخواستهای قطع را شمارش کند؟
Signup and view all the answers
تفاوت بین سگمنت کد و سگمنت داده چیست؟
تفاوت بین سگمنت کد و سگمنت داده چیست؟
Signup and view all the answers
مکانیزم وقفه و انواع آن را توضیح دهید.
مکانیزم وقفه و انواع آن را توضیح دهید.
Signup and view all the answers
چرا منطقه آدرس حافظه میتواند در عملکرد میکروپروسسور حیاتی باشد؟
چرا منطقه آدرس حافظه میتواند در عملکرد میکروپروسسور حیاتی باشد؟
Signup and view all the answers
نقش جدول وکتور وقفه چیست؟
نقش جدول وکتور وقفه چیست؟
Signup and view all the answers
کنترلکننده وقفه 82C59A چیست و چه وظیفهای دارد؟
کنترلکننده وقفه 82C59A چیست و چه وظیفهای دارد؟
Signup and view all the answers
چگونه سیگنال CS برای 82C59A تولید میشود و چه تأثیری بر آدرسهای میکروپروسسور دارد؟
چگونه سیگنال CS برای 82C59A تولید میشود و چه تأثیری بر آدرسهای میکروپروسسور دارد؟
Signup and view all the answers
دستورات مربوط به وقفهها چه هستند؟
دستورات مربوط به وقفهها چه هستند؟
Signup and view all the answers
فروشگاه داده (Data Area) در کنترلکننده وقفه 82C59A به چه منظوری استفاده میشود؟
فروشگاه داده (Data Area) در کنترلکننده وقفه 82C59A به چه منظوری استفاده میشود؟
Signup and view all the answers
چگونه میتوان وقفهها را در یک روتین خدماتی مجدداً فعال کرد؟
چگونه میتوان وقفهها را در یک روتین خدماتی مجدداً فعال کرد؟
Signup and view all the answers
روند آغازین یک روتین خدماتی برای وقفه سختافزاری خارجی چیست؟
روند آغازین یک روتین خدماتی برای وقفه سختافزاری خارجی چیست؟
Signup and view all the answers
انواع وقفه نرمافزاری در سیستمهای مبتنی بر 82C59A چه کاربردی دارند؟
انواع وقفه نرمافزاری در سیستمهای مبتنی بر 82C59A چه کاربردی دارند؟
Signup and view all the answers
تفاوت بین حداقلمد و حداکثرمد در رابط وقفه سختافزاری چیست؟
تفاوت بین حداقلمد و حداکثرمد در رابط وقفه سختافزاری چیست؟
Signup and view all the answers
چگونه کد مرحلهای (Segment Code) یک روال خدماتی در 82C59A قرار میگیرد؟
چگونه کد مرحلهای (Segment Code) یک روال خدماتی در 82C59A قرار میگیرد؟
Signup and view all the answers
سیگنالهای رابط وقفه سختافزاری چه نقشی در میکروپردازنده دارند؟
سیگنالهای رابط وقفه سختافزاری چه نقشی در میکروپردازنده دارند؟
Signup and view all the answers
آدرس 120H در جدول بردار وقفه (Interrupt Vector Table) چه اطلاعاتی را ذخیره میکند؟
آدرس 120H در جدول بردار وقفه (Interrupt Vector Table) چه اطلاعاتی را ذخیره میکند؟
Signup and view all the answers
چرا نیاز به اتصال دائمی برای ورودیهای وقفه خارجی وجود دارد؟
چرا نیاز به اتصال دائمی برای ورودیهای وقفه خارجی وجود دارد؟
Signup and view all the answers
وقتی A1 برابر 0 است، 82C59A به چه آدرسهایی پاسخ میدهد؟
وقتی A1 برابر 0 است، 82C59A به چه آدرسهایی پاسخ میدهد؟
Signup and view all the answers
سیگنالهای غیرقابل ماسک (Nonmaskable Interrupt) چه کاربردی در 82C59A دارند؟
سیگنالهای غیرقابل ماسک (Nonmaskable Interrupt) چه کاربردی در 82C59A دارند؟
Signup and view all the answers
وقتی یک وقفه داخلی به وجود میآید، چه شرایطی باعث آن میشود؟
وقتی یک وقفه داخلی به وجود میآید، چه شرایطی باعث آن میشود؟
Signup and view all the answers
پیشامدهای مرتبط با تقسیم عدد در ارتباط با وقفه داخلی چگونه مدیریت میشوند؟
پیشامدهای مرتبط با تقسیم عدد در ارتباط با وقفه داخلی چگونه مدیریت میشوند؟
Signup and view all the answers
چگونه میتوان خطای overflow را در برنامه شناسایی کرد؟
چگونه میتوان خطای overflow را در برنامه شناسایی کرد؟
Signup and view all the answers
چه نوع وقفههایی بالاترین اولویت را دارند و به چه دلیل؟
چه نوع وقفههایی بالاترین اولویت را دارند و به چه دلیل؟
Signup and view all the answers
چرا وقفههای داخلی با پرچمهای فعالسازی وقفه مختل نمیشوند؟
چرا وقفههای داخلی با پرچمهای فعالسازی وقفه مختل نمیشوند؟
Signup and view all the answers
شما چگونه میتوانید یک روتین خدماتی برای خطای overflow را پیادهسازی کنید؟
شما چگونه میتوانید یک روتین خدماتی برای خطای overflow را پیادهسازی کنید؟
Signup and view all the answers
علت ایجاد وقفههای داخلی مانند خطای تقسیم و overflow چه چیزهایی هستند؟
علت ایجاد وقفههای داخلی مانند خطای تقسیم و overflow چه چیزهایی هستند؟
Signup and view all the answers
آیا تقسیم عددهایی که باعث overflow میشوند میتوانند موجب خطای داخلی شوند؟
آیا تقسیم عددهایی که باعث overflow میشوند میتوانند موجب خطای داخلی شوند؟
Signup and view all the answers
تعریف INTERRUPT در پردازنده 8088 و 8086 چیست و چه کاربردهایی دارد؟
تعریف INTERRUPT در پردازنده 8088 و 8086 چیست و چه کاربردهایی دارد؟
Signup and view all the answers
NMI یا غیرقابل ماسک چیست و چه مزایایی دارد؟
NMI یا غیرقابل ماسک چیست و چه مزایایی دارد؟
Signup and view all the answers
چگونه NMI در پردازنده 8088 یا 8086 شناسایی و به آن پاسخ داده میشود؟
چگونه NMI در پردازنده 8088 یا 8086 شناسایی و به آن پاسخ داده میشود؟
Signup and view all the answers
در چه شرایطی پرچم ENABLE INTERRUPT در زمان NMI غیرفعال میشود؟
در چه شرایطی پرچم ENABLE INTERRUPT در زمان NMI غیرفعال میشود؟
Signup and view all the answers
آدرسهای حافظه NMI vector کجا ذخیره میشوند و چه نقشی دارند؟
آدرسهای حافظه NMI vector کجا ذخیره میشوند و چه نقشی دارند؟
Signup and view all the answers
کدام وقفهها به عنوان وقفههای نرمافزاری شناخته میشوند؟
کدام وقفهها به عنوان وقفههای نرمافزاری شناخته میشوند؟
Signup and view all the answers
ورودی RESET چه وظیفهای در پردازنده 8088 و 8086 دارد؟
ورودی RESET چه وظیفهای در پردازنده 8088 و 8086 دارد؟
Signup and view all the answers
نقش 82C59A در زمینه مدیریت وقفهها چیست؟
نقش 82C59A در زمینه مدیریت وقفهها چیست؟
Signup and view all the answers
مکانیسم وقفه چیست و چگونه میتواند برنامه را تحت تأثیر قرار دهد?
مکانیسم وقفه چیست و چگونه میتواند برنامه را تحت تأثیر قرار دهد?
Signup and view all the answers
جدول وکتور وقفه چه نقشی در پردازش وقفهها دارد؟
جدول وکتور وقفه چه نقشی در پردازش وقفهها دارد؟
Signup and view all the answers
وقفههای غیرقابل ماسک چه نوعی از وقفهها هستند و چه ویژگیای دارند؟
وقفههای غیرقابل ماسک چه نوعی از وقفهها هستند و چه ویژگیای دارند؟
Signup and view all the answers
عملیات فعالسازی و غیرفعالسازی وقفهها چه تأثیری بر روی میکروپروسسور دارد؟
عملیات فعالسازی و غیرفعالسازی وقفهها چه تأثیری بر روی میکروپروسسور دارد؟
Signup and view all the answers
کنترلر وقفه برنامهپذیر 82C59A چه وظیفهای دارد؟
کنترلر وقفه برنامهپذیر 82C59A چه وظیفهای دارد؟
Signup and view all the answers
روال خدمات وقفه (ISR) چه وظیفهای دارد و چگونه کار میکند؟
روال خدمات وقفه (ISR) چه وظیفهای دارد و چگونه کار میکند؟
Signup and view all the answers
تعداد وقفههای قابل پیادهسازی در میکروپروسسورهای 8086 و 8088 چه میزان است؟
تعداد وقفههای قابل پیادهسازی در میکروپروسسورهای 8086 و 8088 چه میزان است؟
Signup and view all the answers
وقفههای داخلی چه نوعی از وقفهها هستند و در چه شرایطی به وجود میآیند؟
وقفههای داخلی چه نوعی از وقفهها هستند و در چه شرایطی به وجود میآیند؟
Signup and view all the answers
Study Notes
آشنایی با رابط وقفه در 8086 و 8088
- رابط وقفه 8086 و 8088 به شما امکان میدهد تا هر ترکیبی از حداکثر 256 وقفه را پیادهسازی کنید.
- وقفهها به پنج گروه تقسیم میشوند: وقفههای سختافزاری خارجی، وقفه غیرقابلماسکسازی، وقفههای نرمافزاری، وقفههای داخلی و ریست.
- کاربر میتواند عملکرد وقفههای سختافزاری خارجی، نرمافزاری و غیر ماسکسازی را تعریف کند. مثلاً وقفههای سختافزاری را میتوان با دستگاههایی همچون صفحه کلید، چاپگر و تایمرها مرتبط کرد.
- از سوی دیگر، عملکرد وقفههای داخلی و ریست توسط کاربر تعریف نمیشود. این وقفهها وظایف اختصاصیافتهای در سیستم را انجام میدهند.
مکانیزم وقفه
- انتقال کنترل برنامه با وقوع رویدادی درونی، یا بیرونی در سختافزار میکروپروسسور آغاز میشود.
- هنگامی که وقفهای رخ میدهد، واحد پردازش مرکزی (MPU) کاری را که در بخش اصلی برنامه انجام میدهد، متوقف میکند و کنترل را به یک روال ویژه که وظیفه دستگاه را انجام میدهد، منتقل میکند.
- بخش برنامهای که کنترل به آن واگذار میشود، روال سرویس وقفه نامیده میشود.
مکانیزم وقفه (شکل)
- میکروپروسسور پس از وقفه 32، اجرای برنامه اصلی را متوقف میکند و اطلاعاتی که نشاندهنده دستورالعمل بعدی است (N+1) را ذخیره میکند.
- سپس، اجرای برنامه با اولین دستورالعمل در روال سرویس وقفه 32 ادامه پیدا میکند.
- پس از اتمام روال، کنترل به دستورالعمل (N+1) در برنامه اصلی بر میگردد و اجرای برنامه از سر گرفته میشود.
مکانیزم وقفه (جزئیات)
- وقفهها بر اساس اولویت سرویس میشوند.
- اولویت به دو روش حاصل میشود:
- ترتیب پردازش وقفهها بر اساس اولویت آنها در 8088/8086 بررسی میشود.
- هر وقفه با یک شماره نوع متفاوت ارائهشده و رتبهبندی میشود. نوع 0 نشاندهنده بالاترین اولویت و نوع 255 نشاندهنده کمترین اولویت است.
- بعضی از اعداد نوع برای استفاده در وقفههای سختافزاری یا نرمافزاری در دسترس نیستند.
- این اعداد نوع برای وقفههای ویژه 8088/8086 (مانند وقفههای داخلی) رزرو شدهاند.
- مثلاً وقفه تقسیم بر صفر با شماره نوع 0 و وقفه ریزش با شماره نوع 4 مشخص میشوند.
- اولویت به این دلیل مهم است که اگر روال سرویس وقفه برای یک اولویت خاص شروع شده باشد، فقط دستگاهی با اولویت بالاتر میتواند آن را قطع کند.
جدول بردار وقفه
- جدول بردار وقفه، جدول آدرسگذاری است که از اعداد نوع وقفه به محل روالهای سرویسدهنده وقفه در حافظه برنامهریزی شده، ارتباط برقرار میکند.
- هر کدام از 256 نشانگر (pointer) به دو کلمه (4 بایت) حافظه نیاز دارند و همیشه در مرز آدرس زوج قرار میگیرند.
- کلمه آدرس بالاتر به عنوان آدرس پایه و کلمه آدرس پایین به عنوان آدرس جابجایی (Offset) شناخته میشود.
- مثلاً آدرس CS50 و IP50 در حافظه بهوسیله محاسبه (4*50=200) تعیین میشود و در آدرسهای 000C816 و 000CA16 قابل دسترسی است.
دستورات وقفه
- STI: فعالکردن وقفه
- CLI: غیرفعالکردن وقفه
- INT n: ایجاد وقفه نرمافزاری (شماره نوع n)
- IRET: بازگشت از روال وقفه
- INTO: ایجاد وقفه در صورت بروز حالت ریزش
- HLT: توقف
- WAIT: انتظار
رابط وقفه سختافزاری خارجی
- سیگنالهای ورودی وقفه خارجی (INTR) با استفاده از روشهای حداقل و حداکثری، با میکروپروسسور همراستا میشوند.
- برای مثال وقفهها از طریق INT32 تا INT255، به رابط وقفه 8088 متصل میگردند.
- مدار خارجی وظیفه شناسایی نوع وقفه با بالاترین اولویت را بر عهده دارد و شماره نوع وقفه را برای پردازش به میکروپروسسور ارسال میکند.
کنترل کننده وقفه برنامهریزیپذیر 82C59A
- 82C59A یک مدار مجتمع جانبی است که پیادهسازی رابط وقفه را در سیستمهای مبتنی بر 8088 و 8086 سادهتر میکند.
- این رابط از 8 خط دیتا (Do تا D7) و سیگنالهای کنترلی، خواندن (RD)، نوشتن (WR) و انتخاب مدار (CS) تشکیل میشود.
- سیگنال ورودی CS باید با منطق 0 باشد تا رابط Host Processor فعال شود. سیگنالهای WR و RD مشخص میکند که آیا دادهها باید به داخل یا خارج از ثباتهای داخلی 82C59A نوشته شوند یا خوانده شوند.
- خط A0 در انتخاب ثبات داخلی مورد استفاده در عملیات خواندن و نوشتن نقش دارد.
وقفههای نرمافزاری
- دستور INT n برای فعالسازی وقفههای نرمافزاری استفاده میشود.
- بردارهای روال سرویس وقفه نرمافزاری نیز در جدول بردار وقفه قرار دارند.
- مکانیسم فعالسازی وقفههای نرمافزاری مشابه مکانیزم وقفههای سختافزاری است، اما چرخههای تایید وقفه خارجی در اینجا استفاده نمیشوند. در عوض، کنترل بلافاصله پس از اجرای دستور وقفه به ابتدای روال سرویس دهی منتقل میشود.
- وقفههای نرمافزاری از اولویت بالاتری نسبت به وقفههای خارجی برخوردارند و توسط سیگنال IF ماسک نمیشوند.
وقفههای غیرقابل ماسکسازی (NMI)
- وقفه NMI یک وقفه دیگر است که از سختافزار بیرونی آغاز میشود.
- برخلاف وقفههای دیگر، نمیتوان آن را با استفاده از پرچم وقفه ماسک کرد.
- فعالسازی این وقفه با ارسال سیگنال منطقی 1 به ورودی NMI به میکروپروسسور اعلام میشود، نه ورودی INTR.
- ورودی NMI با لبه مثبت فعال میشود.
- اگر این وقفه فعال شود، محتویات ثبات NMI، پرچم وقفه، و شمارنده دستورالعمل فعلی در Stack ذخیره میشوند. سپس بردار مربوط به NMI از حافظه خوانده میشود و آدرس IP و CS به ثباتهای مربوطه منتقل شده، به نحوی که کنترل به ابتدای روال سرویسدهی وقفه منتقل شود. این عملیات باعث غیرفعالسازی وقفههای سختافزاری خارجی نیز میشود.
وقفههای داخلی
- وقفههای داخلی، بر خلاف وقفههای سختافزاری خارجی که بر اساس وقوع رویدادها در سختافزار بیرونی ایجاد میشوند، به دلیل اجرای یک دستورالعمل ایجاد میشوند.
- وقفههای داخلی ممكن است در قبل، حین، و یا بعد از اجرای دستورالعمل ایجاد شوند.
- وقفههای داخلی، توسط پرچم قابلیت وقفه ماسک نمیشوند.
- نمونههایی از وقفههای داخلی شامل (Divide Error)، (Overflow Error)، (Single Step) و(Breakpoint) هستند.
وقفه تقسیم بر صفر
- نتيجه تقسیم یک عدد بر صفر موجب فعال شدن یک وقفه از نوع 0 می شود.
- این وقفه، کنترل را به روال سرویسدهی وقفه در آدرس 0:0 در جدول بردار وقفه منتقل میکند.
وقفه ریزش
- اجرای دستورات حسابی ممکن است منجر به فعال شدن وقفه ریزش شود.
- برای فعالسازی روال سرویس این وقفه، به دستور INTO نیاز است.
- وقفه از نوع 4 شناخته شده است.
وقفه مرحله واحد
- فعالسازی پرچم تله (TF) در ثبات وضعیت، حالت مرحله واحد را فعال میکند.
- هر وقت که TF فعال باشد، با اجرای هر دستورالعمل، یک وقفه از نوع 1 به روال سرویسدهی مرتبط ارسال میشود.
وقفه نقطهی شکست
- برای اجرای دیباگ، نقطهی شکست در برنامه درج میشود و با اجرای دستور این نقطهی شکست، در حین اجرا، کنترل به روال سرویسدهی وقفه (از نوع 3) منتقل میشود.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
این آزمون به بررسی عملکرد و مدیریت درخواستهای قطع در میکروپروسسور 8088 و کنترلکننده وقفه 82C59A میپردازد. سوالات شامل مباحثی نظیر نقشههای سازمان فضایی، سیگنالهای ACK و مکانیسمهای وقفه است. این آزمون برای دانشجویان رشتههای مهندسی کامپیوتر و الکترونیک طراحی شده است.