درس ریزپردازنده و
زبان اسمبلی
مدرس :استاد داوود یعقوبی تبار
دانشجو:سید امیر حسین محلاتی
موضوع:ریزپردازند
خرداد1400
فهرست مطالب
Microprocessor
- مقدمه اي بر ريزپرازنده
- ساختار عمومي ريزپردازنده هاي پيشرفته
- معماري ريزپردازنده؟
- مجموعه دستورالعمل هاي ريزپردازنده
- قالب داده ها
- قالب براي دستورالعمل ها
- شيوه هاي آدرس دهي
- سلسله مراتب حافظه
- رجيستر فايل
- Cache
- حافظه مجازي و صفحه بندي
- قطعه بندي
- جداول صفحه، TBL، حفاظت
- پايپ لاين
- خط لوله دستورالعمل
- مخابرات خط لوله
- پيشگويي انشعاب
- Bypassing يا Result Forwarding
- (Instruction Level Parallelism) IPL
- ILP چيست؟
- محدودتي هاي ILP
- پردازنده هاي سوپر اسكالر
- اجراي ترتيبي و خارج از نوبت
- Register renaming
- پردازنده هاي VLIW
- تكنيك هاي كامپايل براي ILP
- اصول كامپيوترهاي RISC
- RISC در برابر CISC
- ارزيابي سيستم هاي RISK
- ارزيابي Cache در مقابل رجيستر فايل تراشه
- I/O
- گذرگاه هاي I/O
- وقفه ها
- Memory Marred I/O
- DMA
- دستگاه هاي I/O
- سيستم هاي ديسك
- چند پردازنده اي
- speedup و كارآيي
- سيستم هاي چند پردازنده اي
- سيستم هاي Message passing
- سيستم هاي Shared Memory
Case Study
حانواده اينتل
- معماري خانواده اينتل
- مجموعه ثبات:
- قالب هاي داده
- شيوه هاي آدرس دهي
- ئقفه
- قطعه بندي
- صفحه بندي
- مكانيزم حفاظت
- پنتيوم
- ريزپردازنده هاي i486 و i386
- 8086 و 80186 و 80286
- 8086 و 8088
خانواده موتورولا M68000
- ثبات هاي پردازنده
- قالب هاي داده
- شيوه هاي آدرس دهي
- مجموعه دستورالعمل ها
- مديريت حافظه
ريزپردازنده هاي پيشرفته RISC
- پردازنده DEC Alpha AXP
- معماري آلفا
خانواده Power PC
- معماري Power PC
- IBM RS/6000
خانواده Sparc
- معماري اسپارك
- سوپر اسپارك
خانواده MIPS RX000
- معماري MIPS
- R4400 و MIPS R4000
- خانواده اينتل i86
خانواده موتورولا M88000
- معماري M88000
- معماري MC88110
معماري HP
- معماري
- حافظه
کنترل از راه دور
كتاب؟
1- MicroproGssors & Micro Computers
8086 & Z-80 , John Effenbeck
2- Advanced Computer Architecture , Hwang
3- Advanced Mocrocessor , Daniel Tabak.
در اواسط دهه 70 ريزپردازنده ها ساختار ساده اي داشتند و در اين زمان هر ريزپردازنده از يك واحد پردازشگر مركزي (cpu) و يك تراشه LSI(شامل 5/000ترازيستور) تشكيل شده بود و با فركانس 1 تا 5 مگاهرتز در يك سيستم 8 بيتي كار مي كرد و اين ريزپردازنده ها داراي 2 الي 7 ثبات 8 بيتي بودند. به خاطر قيمت و بهاي اندك و اندازه كوچك ريزپردازنده ها، در بيشتر سيستم هاي كامپيوتري از آنها استفاده مي شد و به جائي رسيد كه جايگزين سيستم هاي mainframe و ميكروكامپيوترها شدند. با ظهور ريزپردازنده ها هر خانه اي داراي يك كامپيوتر ديجيتالي است.
از دهه 70 به بعد ريزپردازنده ها تغييرات زيادي كرده اند و در دهه 90 ريزپردازنده ها 32 بيتي تا 64 بيتي شدند. و با فركانس هايي از 25 تا 200MHZ كار مي كردند و عملاً داراي تراشه هايي با سه ميليون ترازيستور بودند (VISI). اكثر اين ريزپردازنده ها قادر بودند بيشتر از يك دستورالعمل را در يك چرخه اجرا كنند. تمامي ريزپردازندههاي پيشرفته داراي يك تراشه FPU هستند و اكثر آن ها داراي 16تا 32 ثبات همه منظوره در cpu و يك رجيستر فايل با 32 ثبات براي IU و يك رجيستر فايل با 32 ثبات جداگانه براي FPU هستند.
خيلي از ريزپردازنده ها براي عمليات شناور و عمليات صحيح داراي Operational Unit هستند و مقدار قابل توجهي Cache دارند. در اكثر آنها Cache شامل Cache داده و Cacheدستورالعمل است . كارآيي ريزپردازنده هاي پيشرفته امروز مساوي يا بيشتر از Mainframe و يا سوپر كامپيوترهاي دوران قبل مي باشد.
تعداد زيادي كارخانه سازنده ريزپردازنده وجود دارد كه داراي ويژگي هاي خاص خود مي باشند و دو گروه از گسترده ترين خانواده ريزپردازنده كه در دهه 70ساخته شده اند عبارتند از اينتل X86 يا 80X86 و خانواده موتورولا M680X0.
نزديك به دهه 80 ما شاهد يك توسعه موازي روي معماري هاي جديد بوده ايم كه تمايل به كامپيوترهائي با مجموعه دستورالعمل كاهش يافته يا RISC بوده اند. خانواده هاي اينتل X86 و موتورولا M68000 از كلاس غيرRISK يعني كامپيوترهايي با مجموعه دستورهاي پيچيده يا CISC تشكيل شده اند.
اينتل، يك ريزپردازنده 4 بيتي به نام 4004 در سال 1971 شروع كرد كه در يك ماشين حساب معمولي بكار ميرفت، و به آساني محاسبات BCD را انجام ميداد. در سال 1972 ريزپردازنده 8 بيتي 8008 توسعه يافت و در سال 1974 يك ريزپردازنده قدرتمند 8 بيتي به نام 8080 تولد يافت و به دنبال آن 8085 در سال 1976 به بازار آمد. بخشي از معماري 8085/8080همانند مجموعه ثبات ها در خانواده X86همچنان استفاده مي شود. اينتل ساخت ريزپردازنده هاي خانواده X86 را با يك ريزپردازنده 16 بيتي به نام 8086 در 1978 آغاز كرد و عملاً تمامي كارخانه هاي معروف ريزپردازنده هاي 16 بيتي بعد از دهه 70 و تا نزديك دهه 80 از يك تراشه ارزان قيمت و يك گذرگاه خارجي 8 بيتي با يك معماري داخلي 16 بيتي استفاده مي كردند.
در سال 1969 ريزپردازنده 8080 با باس خارجي 8 بيتي و گذرگاه داخلي 16 بيتي ايجاد شد و براي گذرگاه داده خود 50% به تراشه هاي مياني كمتري در مقايسه با پردازنده هاي 16 بيتي نياز داشتند و هزينه آن ها نيز كمتر بود.
?
در واقع 8080 به پردازنده اصلي شركت IBM روي كامپيوتر هاي شخصي (PC) تبديل و در تمامي توليدات بعدي در جهان منتشر گرديد. به دنبال 8086، تكامل يافته آن يعني 80186 ساخته شد كه همان 8086 همراه با تعدادي اينترفيس I/O و واحدهاي منطقي وي يك تراشه بود و تعداد كمي دستورالعمل به آن اضافه شده بود.
وقتي 80286 به عنوان يك ريزپردازنده 16 بيتي در سال 1982 شناخته شد، مرحله جديدي در توسعه ريزپردازنده ها پديد آمد كه قابليت Protected mode ناميده شد. اين شويه در تمامي محصو.لات ديگر خانواده اينتل بكار گرفته شد.
اولين پردازنده 32 بيتي اينتل در سال 1985 بود كه i386 نام داشا. اينتل يك پردازنده 32 بيتي به نام 432 كه با خانواده X86 ناسازگار بود را زودتر از دهه 80 بيرون داده بود كه هرگز تجاري نشد. در سال 1989 ريزپردازنده i486 توسعه يافت كه سرعت عملكرد آن در مدل DX2 به 66MHZ ميرسيد. i486 داراي يك واحد FPU و يك Cache به اندازه 8KB در داخل تراشه است.
محصول بعدي خانواده اينتل پنتيوم بود كه در سال 1993 ساخته شد و قبل از گسترش به آن i586، P5 گفته مي شد اما اينتل تصميم گرفت نام آن را ذپنتيوم بگذارد. پنتيوم يك سوپر اسكالر دو سطحي است يعني دو دستورالعمل را موازي واكشي و كدگشايي و اجرا مي كند و داراي گذرگاه داخلي 64 بيتي و يك cache به اندازه 16KB است (8K data cache + 8K inst.cache)
اينتل مرتباً روي محصولات بعدي كار مي كرد و P6 ناميده شد كه طبق وعده آن كارآيي پنتيوم را حد اقل 2 برابر كرد و پس از آن به ترتيب Pentium II، Pentium III و Pentium IV نيز ساخته شدند.
توسعه ريزپردازنده هاي موتورولا نيز شبيه اينتل است. موتورولا در سال 1974 خانواده 8 بيتي 6800 را ايجاد كرد كه در سال 1977 به يك محصول 8 بيتي ويژه به نام 68096809 تبديل شد. موتورولا ذنخستين ريزپردزنده 16 بيتي خود را در سال 1979 به نام M68000 به بازار عرضه كرد. از ويژگي هاي اسم خانواده M68000 آن است كه ريزپردازنده MC68000 به طور پايه اي يك سيستم 16 بيتي با گذرگاه دارد. 16 بيتي و 16 ثبات پردازنده Gaps و شمارنده برنامه 32 بيتي است. در سال 1984 ريزپردازنده 32 بيتي MC60000 ناميده شد. هم چنين موتورولا روايت هاي توسعه يافته محصولات MC68000 را تحت عنوان MC68010 .و MC68012 ايجاد كرد. MC68010 از نظر پايه ها كاملاً با MC68000 سازگار بود بنابراين از نظر طراحي سيستم، يك MC68000 مي توانست با يك MC68010 جايگزين شود.
موتورولا ساخت ريزپردازنده هاي 32 بيتي خانواده M68000 را در سال 1984 با نام MC68020 شروع كرد. اين ريزپردازنده ها در سال 1978 به ريزپردازنده MC68030 و در سال 1989 به MC68040 توسعه پيدا كردند. 68020 داراي يك Cache دستور كوچك 256 بايتي در داخل تراشه بود. 68030 داراي يك حافظه Cache دستور كوچك 256 بايتي در داخل تراشه بود. 68030 داراي يك حافظه Cache دوگانه نسبتاً كوچك (256 data + 256 B inst.) .و 68040 داراي Cache 4KB دستور و Cache 4KB داده در يك تراشه مي باشد.
عضو بعدي خانواده M68000 كه در سال 1994 ساخته شد MC68060 نام گرفت كه يك سوپر اسكالر 2 سطحي با Cache 8KB دستور و Cache داده در تراشه بود و دستورالعمل ها با سرعت 66MHZ كار مي كرد.
البته چندين خانواده از ريزپردازنده ها وجود دارد كه به آن ها اشاره اندكي خواهد شد. مانند Z-80 مربوط به شركت Zilog كه ريزپردازنده معر وف 8 بيتي است و توسط گروهي از طراحان متخصص اينتل كه 8080 و 8085 را شاخته بودند ايجاد شد و از اينرو Z-80 شبيه معماري اينتل 8080 است ولي زبان اسمبلي هر دو متفاوت مي باشد و Z-80 داراي دستورهاي بيشتري نسبت به 8080 است. شركت Zilog خانواده 16 بيتي خود را با نام Z8000 موازي با اينتل 8086 منتشر كرد و Z80000 يك محصول 32 بود كه به توليد نرسيد.
توسعه ريزپردازنده هاي RISC به شكل مو ازي با اينتل و موتورولا انجام شد. اولين مستندات RISK درز دانشگاه بركلي در سال 1980 توسط Pattersonو Ditzel ارايه شد و لغت RISK توسط كارلو اسكوئين لرپرت اولين مقاله RISK عنوان شد. طراحيس سيستم محاسباتي از نوع RISK بدون استفاده از واژه RISK خيلي پيشتر توسط IBM در دهه 70 آغاز شد كه با نام IBM801 شناخته مي شد. هم چنين دانشگاه استنفورد در سال 1981 سيستم RISK خود را ايجاد كرد و به نام MIPS (Microprocessor without interlocked Pipeline Stage) ناميد.
شركت MIPS روايت هاي تجاري را تحت خانواده RX000 (X=6,4,3,2,) منتشر ساخته است. در برخي از خصوصيات اوليه طرح RISK بركلي در Sparc از شركت Sun Micri System به كار رفته است. شركت اينتل خانواده خود را با نام ROMP (Research Office Product Diriscow MicroGssor) ادامه داد و به اپل تركيب شد و Power PC ساخته گرديد. اولين محصول 601 است كه در 1991 منتشر شد و به دنبال آن 620 با توانائيهاي بيشتري ايجاد گرديد.
Intel 8086
در اين فصل معماري داخلي، شيوه هاي آدرس دهي، مجموعه دستورالعمل ها و تكنيك هاي I/O مرتبط با ريزپردازنده 8086 را معرفي خواهيم كرد.
?
?
مقدمه
8086 اولين ريزپردازنده 16 بيتي اينتل بود. طراحي آن بر اساس 8080 ولي مستقيماً با آن سازگار نبود. 8086 با استفاده از فناوري HMOS طراحي شده بود و شامل 29000 ترانزيستور بود. 8086 در يك بسته 40 پايه اي قرار داشت و با منبع تغذيه +5V كار مي كرد. 8086 در سه مد و سرعت مختلف Clock كار مي كند. 8086 استاندارد با فركانس كلاك داخلي 5MHZ و 8086-2 و 8086-4 با فركانس هاي داخلي به ترتيب 4MHZ , 8 كار مي كنند. به همين دليل از يك مولد / دراپو.ر تراشه مثل Intel 8284 براي توليد سيگنال كلاك 8086 استفاده مي شود. 8086 كلاك خارجي در پايه CLK را به 3 تقسيم مي كند. اين جمله به اين معني است كه براي كلاك داخلي 5MHZ، 8284 بايد كلاك خروجي 15MHZ را توليد كند تا به پايه CLK تراشه 8086 متصل شود.
8086 داراي آدرس 20 بيتي است و از اينرو مي توان حداكثر تا 220dh 1MB از حافظهرا آدرس دهي كند. 8086 از حافظه قطعه بندي شده استفاده مي كند. نكته جال توجه در 8086 اين است كه مي تواند حداكثر تا 6 بايت دستورالعمل را از حافظه پشي واكشي (Pre Fetch) كند و آن ها را به ترتيب به صف كند و بدين ترتيب سرعت اجراي دستورالعمل را بهبود بخشد.
حافظه ريزپردازنده دبر اساس 8086 برحسب بايت پيكره بندي مي شود. هر بايت مي تواند منحصراً با آدرس هاي 20 بيتي 0000016->FFFFF16 آدرس دهي شود. هر كلمه 16 بيتي 8086 شامل هر دو بايت مجاور يكديگر است. بايت آدرس كمتر (L.O.B) و بايت آدرس بيشتر (H.O,B) به شكل زير مي باشند:
بايت با ارزش كمتر
بايت با ارزش بيشتر
07H
26H
آدرس 0052016
آدرس 0052116
بنابراين كلمه 16 بيتي ذخيره شده در آدرس زوج 00520عبارت است از: 260716
اكنون كلمه اي را با آدرس فرد در نظر بگيريد:
L.O.B
H.O.B
OSH
3FH
آدرس 0125716
آدرس 0125816
كلمه ذخيره شده در آدرس فرد 0125716 عباتست از 3FOSH
معماري 8086
شكل زير نمودار بلكوكي معماري داخلي 8086 را نشان مي دهد:
همانظوري كه در شكل مي بينيم، ريزپردازنده 8086 از نظر داخلي به دو بخش تابعي جدا تقسيم مي شود. اين دو بخش واحد واسط گذرگاه (BIU) و واحد اجرا (Eu) مي باشند. واحد BIU دستورها را واكشي مي كند، داده ها را از حافظه و پورت ها ميخواند و داده ها را به حافظه و پورت هاي I/O مي نويسد. Eu دستورهايي را كه اخيراً توسط BIU واكشي شده اند را اجرا مي كند. وظايف واحدهاي BIU و Eu از يكديگر مستقل هستند. BIU پردازنده 8086 را به دنياي بيرون مرتبط مي سازد. BIU تمامي عمليات گذرگاه خارجي را آماده مي سازد. BIU شامل ثبات هاي سگمنت، اشاره گر به دستور (IP)، صف دستورالعمل و مدارهاي كنترل گذرگاه و توليد آدرس مي باشد و اعمالي چون واكشي و صف بندي دستورها و كنترل گذرگاه را انجام ميدهد.
جهت دستور BIU به شكل FIFO است و گروهي از ثبات هايي است كه شامل 6 بيات كد دستور واكشي شده از جافظه هستند. اين امر با توجه به تسريع (Speedup)، اجراي برنامه را با همپوشاني (Over latting) واكشي دستور با اجرا انجام ميدهد. اين مكاميزم را به عنوان پايپ اوين مي شناسيم. چنانچه صف پر باشد و Eu براي دستيابي بحافظه درخواستي به BIU ندهد، BIU هيچ سيكل گذرگاهي را انجام نمي دهد. از طرف ديگر، اگر BIU پر نباشد و حداقل بتواند دو بايت را ذخيره سازد و Eu درخواستي را براي دستيابي بحافظه ندهد، BIU مي تواند دستورالعمل ها را پيش واكشي كند. هرچند كه اگر BIU براي دستيابي بحافظهع توسط Eu وقفه داده شود درحاليكه BIU در حال پردازش واكشي يك دستورالعمل باشد، BIU ابتدا واكشي را كامل مي كند و سپس به Eu سرويس مي دهد. چنانچه دستوري مانند Jump يا Subroutine Call داشته باشيم، BIU صف را reset ميكند و پر كردن مجدد را پس از ارسال دستور جديد به Eu از نو شروع خواهد كرد.
همانطوري كه مي بينيم BIU شامل يك جمع كننده اختصاصي است كه براي توليد آدرس 20 بيتي استفاده مي شود. منطق كنترل گذرگاه BIU تمامي سيگنال هاي كنترل گذرگاه همچون سيگنال هاي خواندن و نوشتن را براي حافظه و I/O توليد مي كند.
BIU داراي چهار ثبات سگمنت 16 بيتي است. اين ثبات عبارتند از:
· ثبات سگمنت كد (CS) (2 بايت) 28=256
· ثبات سگمنت داده (DS)
· ثبات سگمنت پشته (SS)
· ثبات فوق العاده (ES)
حافظه يك مابايتي 8086 به سگمنتهايي حداكثر تا 64KB تقسيم يمشود. 8086 مي تواند مستقيماً چهار سگمنمت را در يك زمان ويژه (256 كيلوبايت در حافظه يك مگابايتي) آدرس دهي كند. برنامه ها دستيابي به كد و داده را در سگمنت ها با تغيير محتويات ثبات سگمنت براي اشاره كرن به سگمنت هاي مطلوب، فراهم مي سازد. تمامي دستورالعمل هاي جافظه بايد در حافظه اصلي ذخيره شوند كه توسط ثبات 16 بيتي CS و افت 16 بيتي در سگمنتي كه در اشاره گر دستور (IP) 16 بيتي گنجانده شده به آن ااشره مي شود. BIU آدرس فيزيكي 20 بيتي داخلي را به وسيله آدرس منطقي فراهم شده توسط برنامه نويس (16 بيت CS و 16 بيت IP) توليد مي شود. اين كار با شيفت منطقي چهار بيتي CS به چپ و افزودن محتواي 16 بيتي IP توليد مي شود. به عبارت ديگر CS توسط BIU براي توليد آدرس فيزيكي 20 بيتي در 16 ضرب مي شود. به اين معني كه تمامي دستورالعمل هاي برنامه نسبت به محتوبات CS در 16 ضرب شده و سپس به آفت به دست آمده از 16 IP بيتي اضافه ميشود.
دقت كميد كه براي آدرس هاي كلمه، برنامه نويس از آدرس هاي مرتبه كمتر (زوج يا فرد) براي مشخص ساختن كلمهع 16 بيتي استفاده مي كند.
8086 هميشه به يك كلمه 16 بيتي به . از حافظه دستيابي پيدا مي كند. 8086 مي تواند در صورتيكه اولين بايت كلمه در آدرس زوج واقع شده باشد، در يك عمليات كلمه 16 بيتي را بخواند. به عبارت ديگر اگر اولين بايت كلكه يك آدرس فرد باشد، 8086 بايد دو دستيابي به حافظه را براي خواندن دو تا بيت متوالي از حافظه انجام دهد. در اين حالت 8086 از بايت يا بايت هايي كه مورد نظرش نيست صرفنظر مي كند. بطور مثال، دستو.ر ADDR و MOV BX را در نظر بگيريد. دقت كنيد وجود X (H يا L) به دنبال ثبات 8086 نشان دهندة آن است كه انتقال 16 بيتي يا 8 بيتي است.
اين دسته محتواي مكان حافظه 20 بيتي آدرس دهي شده فيزيكي را كه توسط ADDR آدرس دهي مي شود به ثبات 16 بيتي BX منتقل مي كند. اگر ADDR آدرس 20 بيتي زوج مثل 3002416 باشد دستور MOV محتواي BL را با محتواي خانه حافظه 3002416 و محتوي ثبات BH را با محتوي آدرس 3002516 در يك بار دستيابي پر مي كند. اما اگر از ADDR در آدرس فرد مثلاً 4000516 باشد، دستور فوق BL را با محتواي 4000516 در و BH را با محتوي 4000616 در دو بار دستيابي حافظه Load مي كند. دقت كنيد 8086 به آدرس 4000416 و 4000516 دستيابي مي كند ولي محتوي 4000416 را كنار مي گذارد و نيز در عمل دوم به 4000416 و 4000716 دستيابي مي كند ولي محتوي 4000416 را كنار مي گذارد و نيز در عمل دوم به 4000616 و 4000716 دستيابي مي كند ولي از محتواي 4000716 چشم پوشي مي كند.
اكنون دستوري مانند ADDR و MOV BH را در نظر بگيريد. اگر ادرس ADDR زوج (مثل50002) باشد، اين دستور MOV به هر دو خانه 50002 و 50003 دستيابي مي كند ولي BH را با محتواي 50002 پر كرده و از محتوي 50003 صرفنظر مي كند. اما اگر ADDR در آدرس فرد باشد (مثل 5003) دستور MOV ثبات BH را با 50003 پر كرده و از 50002 صرفنظر مي كند.
خانواده 8086 داراي دو نوع ريزپردازنده 16 بيتي است: 8086 و 8088. اختلاف مهم اين است كه پردازنده چگونه با دنياي بيرون ارتباط برقرار مي كند. 8088 داراي يك مسير داده (data patch) 8 بيتي به حافظه I/O است ولي 8086 داراي يك مسير داده خارجي 16 بيتي در حافظه است. البته در بيشتر حالات اين دو پردازنده مشابه هستند. از 8088 در طراحي كامپيوترهاي شخصي IBM استفاده شده است.
8086 مي تواند به شكل يك سستم تك پردازنده كوچك (مي نيمم مد در صورتيكه پايه MN/MX به high تنظيم شود) و يا به شكل يك سيستم چند پردازنده اي (ماكزيمم مد در صوتيكه پايه MN/MX به low تنظيم شود) پيكره بندي مي گردد. در يك سيستم مفروض، پايه MN/MX دائماً به high يا low متصل مي شود. برخي پايه هخاي 8086 داراي توابعي دوگانه بسته به نوع انتخاب سطح ولتاژ پايه MN/MX هستند. در مد مي نيمم MN=MX=high اين پايه ها سيگنال هاي كنترلي را مستقيماً به حافظه و وسايل I/O انتقال مي دهند. از مد ماكزيمم MN/MX=Low اين پايه ها داراي وظايف متفاوتي براي نسهيلات سيستم هاي مالتي پروسسور است. در مد ماكزيمم توابع كنترلي كه معمولاُ در مد مي نيمم نشان داده مي شوند، فرض مي شود كه به وسيله تراشه اي مثل كنترل گذرگاه 8288 پشتيباني مي شوند.
پس از پيشرفت هاي فناوري، اينتل پردازنده اي پيشرفته تر 80186 و 80188 را كه نسخه هاي پيشرفته تري از 8086 و. بودند عرضه كرد. سرعت كلاك اين ها 8MHZ بود كه تقريباً دو برابر پردازنده هاي قبلي بودند. در روي اين پردازنده اي جديد از واحدهاي جانبي مانند كنترل كننده DMA با تايمر 16 بيتي و واحد كنترل كننده وقفه استفاده مي كنند. شبيه 8086، 80186 داراي گذرگاه داده 16 بيتي و 80188 داراي گذرگاه داده 8 بيتي است و به غير از اين، معماري و مجموعه دستورهاي 80186 و 80188 مشابه است. هم چنين 80186 و 80188 داراي يك مولد كلاك موجود در تراشه است كه فقط از يك كريستال براي توليد كلاك استفاده مي كند. مشابه 8085، فركانس كلاك از نظر داخلي به 2 تقسيم مي شود. يعني كريستال خارجي 12 يا 16MHZ بايد براي توليد فركانس داخلي كلاك 6MHZ يا 8MHZ استفاده شود. 80186/80188 در يك بسته 68 پايه اي ساخته شده و هر دو پردازنده داراي مدارهاي كنترل كننده اولويت وقفه براي فراهم ساختن 5 پايه وقفه هستند. مشابه 8086/8088 پردازنده هاي 80186/80188 مي توانند مستقيماً 1MB از حافظه را آدرس دهي كنند. و داراي 10 دستورالعمب جديد نسبت به مجموعه دستورهاي 8086/8088 هستند. مثلاً دستورهاي In و Out براي گرفتن و يا نوشتن بايت يا كلمه رشته به كار مي روند. از سوي ديگر 80286 داراي قابليت هاي اضافي چون حفاظت (Protection) و مديريت حافظه نسبت به معماري 8086 است. 80286 با سرعت 8MHZ داراي throughput تا 6برابر در مقايسه با 8086 با سرعت 5MHZ است. 80286 در بسته 68 پايه اي ساخته شده است و مي تواند در سرعتهاي كلاك 4، 6 يا 8 مگاهرتز كار كند و به مولد كلاك خارجي 82284 براي توليد كلاك نياز دارد. پردازنده 80286 كلاك خارجي را به 2 براي توليد كلاك داخلي تقسيم مي كند و نوعاً در سيستم هاي multiver و multitasking استفاده مي شود. 80286 در دو مد مختلف كار مي كند. Real Addr و آدرس مجازي حفاظت شده.
در واقع آدرس فيزيكي تقليدي از 8086 با كارآيي بالا است. در اين مد 80286 مستقيماً تا 16 مگابايت حافظه را آدرس دهي كند. مثلاً آدرس دهي مجازي، مديريت حافظه مجازي، مديريت Task و حفاظت را فراهم مي سازد. برنامه نيس مي تواند يكي از اين دو مد را، بارگذاري مناسب داده با دستورهاي Load و Store در ثبات كلمه حالت ماشين (MSW) (Machine Status Word)كه 16 بايتي است، انتخاب كند.
مثلاً دستورهاي
Store MSW register = SMSW
80286 به عنوان CPU در كامپيوترهاي شخصي IBM PC/AT به كار گرفته شد. نسخه هاي پيشرفته تري مانند 386 و 486 و ... بعداً بررسي خواهد شد.
مثال: [CS]=456A16
[IP]=162016
20 بيت آدرس فيزيكي به شكل زير محاسبه مي شود
[CS]=456A016 محتواي CS چهار بيت به يك شكل منطقي به چپ شيفت داده مي شود
+[IP]=162016
EA=46CC016
BIU هميشه چهار صفر را در چهار بيت مرتبة پائين آدرس فيزيكي (سگمنت) درج مي كند. به عبارت ديگر CS شامل base يا store سگمنت كه جاري و IP شامل فاصله يا distanG از اين آدرس به بايت دستور بعدي است كه مناسب واكشي شود. دقت كنيد كه داده هاي بعد فاصله بعدي به عنوان بخشي از سگمنت كه در نظر گرفته مي شوند.
ثبات به پشته جاري اشاره مي كند. ادرس فيزيكي بين پشته از ss و sp براي دستورهاي پشته مانند push و pop محاسبه مي شود. برنامه نويس مي تواند از ثبات BP به عوض sp براي دستيابي به پشته در مد آدري دهي پايه استفاده كند. در اين حالت آدرس فيزيكي 20 بيتي از Bp و ss محاسبه مي شود.
ثبات DS به سگمنت داده جاري اشاره مي كند. براي اغلب دستورها، علوندها از اين سگمنت واكشي مي شوند. محتوي 16 بيتي SI (شاخص مبدأ) و DI (شاخص مقصد به عنوان آفست براي محاسبه آدرس فيزيكي 20 بيتي استفاده مي شوند.
ثبات ES به سگمنت اضافي (Extra Degment) كه داده ذخيره يم شوند اشاره دارد (علاوه بر 64K اشاره شده توسط DS). دستورهاي رشته معمولاً از ES و DI براي تعيين آدرس فيزيكي 20 بيتي مقصد استفاده مي كنند.
سگمنت ها مي توانند داراي چهار وضعيت باشند:
· Continius
· Partially Overlorred
· Fully overlarred
· Dis joint
شكل زير پنج سگمنت (#0 تا #4) را نشان ميدهد كه در حافظه فيزيكي ذخيره شده اند:
نكته <= هر سگمنت بايد از مرزهاي حافظه 16 بايتي آغاز شود.
مثالهايي از مقادير سگمنت بر اساس آدرس فيزيكي شروع شده در 000016، 00000، 0002016 ،0003016، … و FFFF016 باشد. هر مكان حافظه فيزيكي مي تواند به يك يا چند سگمنت منطقي mar شود.
يك سگمنت ممكن است با بيش از يك ثبات سگمنت اشاره دهي شود. مثلاً، DS و ES ممكن است به سگمنت مشابهي در حافظه اشاره كنند اگر رشته گنجانده شده در آن سگمنت به عنوان يك سگمنت Source در يك دستور رشته و به عنوان سگمنت مقصد در دستور رشته اي ديگر باشد. دقت دكنيد كه در يك دستور رشته سگمنت مقصد بايد توسط ES اشاره دهي شود.
قابل يادآوري است كه كدها نبايد در 6 بايت آخر حافظه فيزيكي نوشته شوند. نقص اين مسأله ممكن است منجر به واكشي opcode از حافظه غيرموجود شوند و سبب hang كردن cpu گردد.
طراحي سيستم با استفاده از 8086
در اين بخش مي خواهيم مفاهيم اصلي مربوط به اينترفيس 8086 را به تراشه اي مبنايي مانند حافظه و I/O بررسي كنيم.
پايه ها و سيگنال هاي 8086
پايه ها و سيگنال هاي 8086 در شكل زير نشان داده شده است.
سيگنالهاي معمول
نوع
تابع
نام
دوطرفه
باس آدرس / داده
ADIS
خروجي سه حالته
آدرس/وضعيت
A19/56-A16/S3
خروجي سه حالته
Status/Bus high enable
BHE/S7
ورودي
Minimum/Maximum در كنترلي
MN/MX
خروجي سه حالته
كنترل خواندن
RD
ورودي
انتظار براي كنترل تست
TEST
ورودي
كنترل وضعيت انتظار
READY
ورودي
Reset سيستم
RESET
ورودي
Interrupt request
INTR
ورودي
كلاك سيستم
CLK
ورودي
زمين
GND
سيگنالهاي مد مي نيمم
نوع
تابع
نام
دوطرفه
Hold request
HOLD
خروجي
Hold ACK
HLDA
خورجي سه حالته
كنترل نوشتن
WR
خورجي سه حالته
Memory/IO Control
M/IO
خورجي سه حالته
Data Transmit/Recein
DT/R
خورجي سه حالته
Data Enable
DEN
خورجي سه حالته
Address Latch enable
ALE
خورجي
Interput ACK
INTA
سيگنال مد ماكزيمم (MN/MX=GND)
نوع
تابع
نام
دوطرفه
Hold request
Access Control
RQ/GT1,0
خروجي سه حالته
Bus priority lock
Control
LOCK
حروجي سه حالته
Bus cycle statuse
S2 , S0
خروجي
Instruction Queve
status
QS1, QS0
تمامي پايه هاي 8086 از نوع TTL هستند. همانطوري كه قبلاً گفتيم 8086 مي تواند در دو مد مختلف عمل كند. مي نيمم مد (تك پردازنده) و ماكزيمم مد (چند پردازنده اي). پايه ورودي MN/MX براي انتخاب يكي از اين دو مد بكار مي رود. اگر MN/MX=high باشد، 8086 در مد مي نيمم كار مي كند. در اين مد، 8086 براي پشتيباني مي نيمم در سيستم هاي تك پردازنده اي كه داراي وسايل كمي هستند كه از باس استفاده مي كنند، به كار مي رود.
اگر MN/MX=low باشد، 8086 در مد مالكزيمم تعريف مي شود تا از سيستم هاي چند پردازنده اي پشتيباني كند. در اين جالت اينتل 8288 كه يك باش كنترلي است به 8086 براي فراهم ساختن كنترل هاي باس و سازگاري با معماري چندگذرگاهي اضافه مي شود.
AD0-AD15 خطوط گذرگاه ادغام شده آدرس/داده 16 بيتي هستند. در اولين سيكل كلاك AD0-AD15 16 بيت مرتبه پائين آدرس مي باشند. 8086 آدرس 20 بيتي دارد و چهار خط مرتبه بالاي ادرس، با سيگنال هاي وضعيت 8086 مالتي پلكس هستند. اين سيگنال ها عهبارتتد از:
A16/S3 و A17/S4 و A18/S5 و A19/S6
در خلال اولين پريود كلاك از سيكل گذرگاه (سيكل نوشتن يا خواندن)، كل آدرس 20 بيتي در اين خطوط در دسترس است. در تمامي ديگر سيكل هاي كلاك براي عمليات حافظه و I/O، ADIS-ADO شامل داده 16 بيتي است و S3 و S4 و S5 و S6 خطوط وضعيت هستند. خطوط S3 و S4 به شرح زير ديكلود مي شوند:
A17/S4
A16/S3
تابع
0
0
Extra Segment
0
1
Stack Segment
1
0
Code or no Segement
1
1
Data Segment
بنابراين پس از اولين سيكل كلاك اجراي دستورالعمل، پايه هاي A17/S4 و A16/S3 مشخص مي كنند كه كدام ثبات سگمنت بخش سگمنت آدرس 8086 را توليد مي كند. بدين ترتيب، با ديكود كردن اين خطوط و استفاده از خروجي هاي ديكودر به عنوان انتخاب كننده هاي تراشه (Chip Selects) براي تراشه هخاي حافظه، حداكثر تا 4 مگابايت (1MB در هر سگمنت) را يم توان فراهم ساخت. اين امر درجه اي از حفاظت را به وسيله اجتناب از عمليات نادرست نوشتن در يك سگمنت كه با سگمنت ديگر همپوشاني دارد و نابود كردن اطلاعات آن سگمنت فراهم مي آورد.
A18/S5 و A19/S6 به عنوان A18 و A19 در خلال اولين پريود كلاك از اجراي دستور، به كار ميروند. چنانچه يك دستور I/O اجرا شود، در خلال اولين پريود كلاك low باقي مي ماند. در خلال تمامي ديگر سيكل ها، A18/S5 وضعيت پرچم تواناساز وقفه 8086 را نشان مي دهد و A19/S6 به S6 تبديل مي شود و Low بودن پايه A19/S6 نشان مي دهد كه 8086 در گذرگاه است. در اثناي hold Acknowledge پريود كلاك، 8086 پايه A19/S6 را سه حالته كرده وبدين ترتيب به bus master ديگر براي گرفتن كنترل گذرگاه سيستم اجازه يم دهد.
8086، ADIS-ADO را در خلال سيكل Interrupt ACK يا سيكل Hold ACK سه حالتي مي كند
سيكل اول
BHE/S7 به عنوان Bus high enable در خلال اولين سيكل كلاك اجراي دستاور به كار ميرود. 8086 در اين پايه در هنگام خواندن، نوشتن و Iinterrupt Ack كه داده ها به شكل مرتبه بالاي گذرگاه داده (ADIS-AD8) انتقال مي يابند، low قرار ميدهد. هم چنين BHE مي تواند با اتصال با ADO براي انتخاب بانك هاي حافظه استفاده شود. در خلال تمامي ديگر سيكل ها BHE/S7 به صورت استفاده مي شود و 8086 داراي سطح خروجي (BHE) اولين سيكل در اين پايه خواهد بود.
هنگامي كه 8086 داده ها را از حافظه يا يك مكان I/O مي خواند، RD=Low خواهد بود.
TEST يك پايه ورودي است و فقط به وسيله دستور WAIT استفاده يم شود. 8086 يك وضعيت Wait را پس از اجراي دستور WAIT تا هنگامي كه Low در پايه TEST باشد قرارز ميدهد. اين ورودي به شكل داخلي در اثناي هر سيكل كلاك در لبه كلاك سنكرون مي شود.
INTR يك ورودي وقفه maskable است. اين خط latch نمي شود و بنابراين تا هنگام تشخيص و توليد وقفه بايد در high نگاه داشته شود.
NMI ورودي non mastable interrupt است. RESET سيگنال .ورودي reset سيستم است و اين سيگنال بايد براي حداقل چهار سيكل تا هنگام تشخيص و شناسايي high باشد و سبب مي شود رجيسترهاي DS، SS، ES، , Ip و Flagها همگي صفر شوند. ?
هم چنين CS به FFFFH تنظيم مي گردد. پس از حذف reset از پايه RESET، 8086 دستورالعمل بعدي را از آدرس فيزيكي 20 بيتي FFFF0H يعني (CS:FFFFH,IP=0000) CS*16+IP واكشي مي كند.
هنگامي كه 8086 لبه هشت پالس را در RESET تنشخيص دهد، تمامي فعاليت هاي خويش را تا هنگام low شدن كلاك متوقف مي سازد. هرگاه reset برابر low گردد، 8086 سيستم را به شرح زير مقداردهي اوليه (initislize) مي كند.
مؤلفه هاي 8086
محتوي
پرچم ها
Clear
IP
0000H
CS
FFFFH
DS
0000H
SS
0000H
ES
0000H
Queue
Empty
سيگنال reset براي 8086 را مي توان با 8284 توليد كرد. 8284 يك ورودي تريگر اشميت (Schnitt Trigger) به نام RES براي توليد reset از خروجي next دارد.
براي توليد reset به شكل صحيح، ورودي بايد براي 50MS پس از اين كه Vcc به مي نيمم ولتاژ 4.5V رسيد زير 1.05 ولت نگاهداشته شود. سيگنال ورودي RES از 8284 را مي توان با مدار RC ساده اي شبيه شكل زير ساخت:
مقادير R و C به شرح زير قابل حصول هستند:
VC(t)=V(1-e-t/RC)
بطوريكه
مثلاً اگر C را به شكل اختياري F?0.1 انتخاب كنيم?R=1.88K
همانطوري كه قبلاً گفتيم 8086 مي تواند در مد مينيمم و ماكزيمم با استفاده از پايه MN/MX پيكره بندي شود. در مد مي نيمم، 8086 بخودي خود تمامي سيگنال هاي كنترل گذرگاه ذرا تولدي مي كند. اين سيگنال ها عبارتند از:
· DT/R (Database Transmit/ReCeive)
يك سيگكنال خروجي لازم بريا مد 8086 مي نيمم است كه از 8286/8287 (data bus transGeiver) استفاده مي كند و براي كنترل جهت جريان داده ها استفاده مي شود.
· (Data Enable) DEN
به شكل يك output enable براي 8286/8287 در سيستم مي نيمم استفاده مي شود. DEN در خلال هر دستيابي بحافظه و I/O براي سيكل هاي INTA، برابر low مي باشد.
· (Address Latch Enable)
يك سيگنال خروجي فراهم شده توسط 8086 است و براي دي ملتي پلكس كردن ADO-AD15 به A0-A15 و D0-D15 در لبه پائين رونده ALE استفاده مي شود. سيگنال ALE در 8086 مشابه ALE در 8085 است.
· M/IO اين سيگنال براي تمايز دستيابي حافظه (M/IO=high) از (M/IO=low) I/O استفاده يم شود. هنگامي كه 8086 يك دستور I/O را مانند In يا Out توليد مي كند، اين پايه را به low تنظيم مي كند و هنگامي كه رجوع به حافظه را مثل [SI] و MOV AX اجرا مي كند، اين پايه را به high تنظيم مي كند.
· WR
در هنگام نوشتن در حافظه يا I/O به low تنظيم مي شود.
INTA مانند INTA در 8085 است. و براي سيكل هاي تأئيد وقفه اين پايه low مي شود.
· ورودي HOLD و خروجي HLDA
از اين پايه ها در DMA استفاده يم شود. High بودن اين پايه يعني اين كه يك master ديگري تقاضاي در اختيار گرفتن سيستم Bus را دارد و پايه HLDA را به عنوان ACK برابر high مي كند و يه طور همزمان پردازنده، گذرگاه را سا حالته كرده تا هنگاميكه براي پايه HOLD سيگنال low را دريافت كند. در اين صورت پردازنده low را در پايه HLDA قرار ميدهد. HOLD يك ورودي آسنكرون نيست.
· CLK
ورودي فراهم كننده زمان بندي براي 8086 و كنترل كننده گذرگاه
در مد ماكزيمم برخي از پايه هاي 8086 به صورت دوباره تعريف مي شوند. مثلاً پايه هاي HOLD، HLDA، WR، M/IO، DT/R، DEN، LAE و INTA در مد مي نيمم به شكل RQ/GTO، RQ/GT1، LOCK، S2، S1، S0، QS0 و QS1 به ترتيب درصد ماكزيمم تعريف مي شوند. درصد ماكزيمم كنترل باش 8288 اطلاعات وضعيت را از S0، S1، S2 براي توليد زمان بندي گذرگاه و سيگنال هاي كنترل لازم براي سيكل گذرگاه ديكو.د مي كند. S0 و S1 و S2 در خروجي 8086 به شرح زير ديكود مي شوند:
S2
S1
S0
توضيح
0
0
0
int. ACK
0
0
1
خواندن پورت I/O
0
1
0
نوشتن در پورت I/O
0
1
1
halt
1
0
0
دستيابي به كد
1
0
1
خواندن حافظه
1
1
0
نوشتن در حافظه
1
1
1
غيرفعال
· RQ/GT0 و RQ/GT1
اين پايه ها به معناي request.grant و به وسيله bus master هاي محلي ديگر براي رهاسازي گذرگاه محلي توسط پردازنده در پايان سيكل گذرگاه جاري استفاده مي شوند.
RQ/GT0 و RQ/GT1
اين پايه ها به معناي request/grant و به وسيله bus master هاي ديگر براي رهاسازي گذرگاه محلي توسط پردازنده در پايان سيكل گذرگاه جاري استفاده مي شوند.
RQ/GT0 داراي اولويت بيشتري از RQ/GT! است. اين پايه ها به شرح زير عمل مي كنند:
1- يك پالس (به پهناي يك كلاك) از busmaster محلي ديگر نشان دهنده يك درخواست براي گذرگاه محلي به 8086 است.
2- در سيكل گذرگاه جاري يك پالس از 8086 به Master درخواست كننده نشان يم دهد كه 8086 سيستم باس را رها كرده و خروجي سه حالته است. بنابراينت، bus master جديد با ارسال low در RQ/GT0 يا RQ/GT1 كنترل را واگذار مي كند و 8086 آن را دوباره به دست مي گيرد.
· LOCK
8086 مقدار low را در پايه LOCK براي ممانعت از بدست آوردن كنترل باس سيستم توسط bus master ديگر قرار ميدهد.
· QS0 و QS1
8086 براي فراهم ساختن بررسي خارجي وضعيا صف دستورالعمل 8086 به شرح زير از QS0 و QS1 استفاده مي كند:
QS1
QS0
0
0
No operation
0
1
اولين بايت opedo از صف
1
0
خالي بودن از صف
1
1
بايت بعدي صف
QS0 .و QS1 در خلال پريود كلاكي به به دنبال هر عمل صف مي آيد، معتبر هستند. 8086 مي تواند از +5V تا +10V عنل كند. براي كاهش نويز منبع تغذيه از دو GND در سيستم استفاده شده است.
سيكل گذرگاه 8086
به منظور ارتباط با دستگاه هاي خارجي از طريق سيستم گذرگاه براي اتصال داده ها يا واكشي دستورالعمل ها، 8086 يك سيكل گذرگاه را اجرا مي كند. نمودار زمان بندي سيكل 8086 در شكل زير نشان داده شده است. مي نيمم سيكل گذرگاه شامل چهار پريود كلاك cpu است كه T sate نام دارند.
1- در اولين (T1) T sste، پردازنده 8086 آدرس 20 بيتي محاسبه شده از زوج سگمنت/افت را در باس سالتي پلكس شده آدرس/داده/وضعيت قرار مي دهد.
2- براي دومين وضعيت (T2) T، 8086 آدرس را از روي باس برداشته و خطوط ADIS-AD0 را فعال يا سه حالته مي كند تا براي خواندن از طريق خطوط ADIS-AD0 در خلال T3 آماده شوند.
در سيكل نوشتن در گذرگاه، 8086 داده ها را در خطوط ADIS-AD0 قرار مي دهد. هم چنين در خلال T2، چهار مرتبه بالدي باس كه ماتي پلكس شده اند از آدرس A19-A16 به وضعيت سيكل گذرگاه يعني S6، S5، S4 .و S3 سوئيج مي كنند. 8086 سيگنال RD (سيكل خواندن) را load كرده و يا اگر بخواهد سيكل نوشتن را انجام دهد در خلال T2، T3 و T4 سيگنال WR را load مي كند.
3- در خلال T3، 8086 به قرار دادن اطلاعات وضعيت در چهار خط A19-A16/S6-S3 مبادرت مي ورزد و داده ها را از خطوط AD15-AD0 ميخواند يا در آن خطوط مي نوسد.
چنانچه وسيله I/O، حافظه مورد نظر بقدر كافي براي انتقال داده ها به 8086 كافي نباشد، خط ورودي READY در شروع T3 در وضعيت low قرار مي گيرد و 8086 سيكل هاي كلاك اضافي (وضعيت هاي انتظار TW) را پس از درج مي كند. فعاليت گذرگاه در خلال TW شبيه T3 است. در صورتيكه وسيله مورد نظر زمان كافي براي تكميل انتقال داده ها داشته باشد، بايد سيگنال پايه READY را high كند. به مجرد اين كه پريودهاي كلاك TW تمام مي وشد، 8086 آخرين سيكل گذرگاه را اجرا مي كند (T4). 8086 داده ها را در حطوط AD15-AD0 در خلال آخرين وضعيت انتظار يا در اثتاي T3 در صورتيكه حالت انتظاري نياز نباشد، پچ خواهد كرد.
4- در خلال T4، 8086 خط زمان را disable كرده و هم چنين حافظه و I/O انتخاب شده از باس را از كار مي اندازد. يعني سيكل گذرگاه در T4 پايان مي پذيردو
5- پايه هاي DEN در خلال سيكل خواندن از پايه I/O و حعفظه فعال مي شود و DT/R توسط 8286/8287 در مي نيمم سيستم استفاده يم شوند. در خالل سيكل خواندن 8086، DEN را در خلال بخشي از T2 و تمامي سيكل T3 برابر low قرار مي دهد. اين سيگنال براي enable كردن 8286/8287 استفاده شود. از شروع T1 و بخشي از T4 پايه TD/R برابر low مي شود و 8086 از اين سيگنال براي خواندن، دريافت داده ها از گيرنده در خلال T3 تا T4 استفاده مي كند.
در اثناي سيكل نوشتن، DEN را برابر low قرار مي دهد (در بخشي از T1 و تمام T2 و T3) و بخشي از سيكل T4، اين سيگنال مي تواند براي enable كردن Trans Ceiver به كارز آيد. در چهار سيكل گذرگاه در DT/R مقدار high را براي نوشتن يا ارسال داده ها به trans Ceiver در خلال T3 تا T4 قرار مي دهد.
مفاهيم گذرگاه داده و گذرگاه آدرس در 8086
مهمترين قابليت اينترفيس كردن تراشه هاي حافظه و I/O به 8086 نياز به آدرس پادياري براي مدت زمان سيكل گذرگاه است. به همين خاطر، آدرس در گذرگاه مالتي پلكس شده آدرس / داده در خلال T1 بايد latch شود. آدرس latch شده سپس براي اناخاب I/O يا خانه حافظه مورد نظر استفاده يم شود. دقت كنيد 8086 داراي باس آدرس و داده مالتي پلكس شده 16 بيتي است. بنابراين، براي دي مالتي پلكس كردن گذرگاه، 8086 از سيگنال A/E براي در اختيار گرفتن آدري در پچ هاي 8 بيتي 8282 يا 8283 استفاده مي كند. اين پچ ها تا ماداميكه ALE=high است، آدرس را به خروجي منتقل مي كنند و در لبه پائين رونده ALE آدرس را پچ مي كنند. شكل زير نشان ميدهد كه چگونه 8086 با سهاي آدرس و داده را دي مالتي پلكس مي كند.
معمولاً برنامه نويس حافظه 8086 را فضاي آدرس شامل يك ميليون بايت متوالي داده اي مي بيند كه محتوي هر خانه 8 بيت و دو خانه 16 بيت مي باشد. در آدرس هاي بايت يا كلمه محدودتي وجود ندارد. اما در واقع فضاي آدرس به شكل فيزيكي تر گذرگاه داده 16 بيتي بنا شده است و فضاي آدرس به دو بانك 512 كيلو.بايتي تقسيم مي شود.
اين بانك ها مي توانند توسط BHE و A0 به شرح زير انتخاب شوند:
BHE
A0
بايت انتقال يافته
0
0
هر دو بايت
0
1
بايت مرتبه بالا به / از آدرس فرد
1
0
بايت مرتبه پائين به / از آدرس زوج
1
1
هيچ كدام
يك بانك به D7-D0 متصل است و شامل تمامي بايت هاي با آدرس زوج (A0=0) است. بانك ديگر به D15-D8 متصل است و شامل تمامي بيت هاي آدرس فرد (A0=1) است. هر بايت دو بايت را مي توان با A19-A1 آدرس دهي كرد. A0=low سبب فعال شدن بانك با آدرس زوج مي شود و بايت هاي داتده در خطوط D7-D0 انتقال مي يابند. 8086 سيگنال high را در BHE قرار داده و باتك آدرس هاي فرد را disable مي كند و هم چنين با low كردن اين پايه و high كردن A0 مي تواند يانك شامل آدرسي هاي زوج را اختيار كند. اين مسأله سبب انتقال داده ها به تيمي از باس داده خواهد شد. فعال ساختن A0 و BHE توسط 8086 انجام مي گيرد و به آدرس هاي زوج يا فرد بستگي دارد و براي برنامه نويس شفاف مي باشد.
مثال: دستور [BX] و MOV DH را در نظر بگيريد.
چنانچه آدرس 20 بيتي توسط DX و DS زوج باشد، 8086 مقدار A0 را low كرده و BHE را برابر high قرار مي دهد. يعني بانك حاوي آدرس هاي زوج انتخاب مي شود. محتواي حافظه انتخاب شده در D7-D0 قرار مي گيرد. 8086 اين داده ها را خوانده هاي اتوماتيك در DH قرار ميدهد. اكنون دستيابي به كلمه 16 بيتي را توسط 8086 با آدرس زوج و بايت مرتبه كمتر در شكل زير درنظر بگيريد.
مثلاً فرض كنيد 8086 دستور CX و Mov [BX] را اجرا مي كند. فرض كنيد:
[BX] = 0004H
[DS]=2000H
=20000+0004=20004H آدرس 20 بيتي
8086 هم A0 و هم BHE را low مي كند يعني هر دو بانك فعال خواهند شد. محتوي [CL] به D7-D0 و [CH] به D15-D8 انتقال پيدا مي كند. (WR=Low و M/IO=high) بانك هاي حافظه شامل داده 16 بيتي براي نوشتن هستند و [CL] به مكان 20004H و [CH] در مكان 20005H نوشته خواهند شد.
اكنون فرض كنيد كه آدرس محاسبه شده توسط 8086 فرد باشد. مثلاً آدرس فيزيكي 20 بيتي برابر 20005H باشد. 8086 اين كار را در دو سيكل گذرگاه انجام خواهد داد. در سيكل اول، 8086 بايد A0=high و BHE=low را انجام بدهد. يعني بانك محنوي آدرس فرد فعال و بانك محتوي آدرس زوج غيرفعال شود. هم چنين RD=low و M/IO=high.
در اين سيكل گذرگاه، مكان [20004H] در خطوط D15-D8 قرار مي گيرد. 8086 داده ها را از [CL] ميخواند. در سيكل دوم A0 را Low كرده و BH6 را high مي كنند و RD=low و M/IO=high مي شود و بانك آدرس زوج انتخاب شده و [20006H] در خطوط D7-D0 قرار داده مي شود. 8086 داده [CH] را مي خواند. به شكل هاي زير نگاه كنيد:
در خلال خواندن يك بايت، 8086 كل خطوط D15-D5 را شناور مي كند. اين مسئله ديكود كردن انتخاب تراشه را براي ROM ها و EPROMها ساده مي كند. در خلال نوشتن يك بايت، 8086 كل باس داده 16 بيتي را درايو خواند كرد. اطلاعات در نيمه گذرگاه داده داده هاي معيني را انتقال نميدهد.
چنانچه وسايل حافظه يا I/O مستقيماً به گذرگاه مالتي پلكس شده متصل شدند، طراح بايد ضمانت كند كه وسايل آدرس را در گذرگاه هنگام T1 خراب نخواهد كرد. براي اجتناب از اين مشكل، وسايل حافظه يا I/O بايد داراي يك enable خرذوجي باشند كه توسط سيگنال read پردازنده 8086 كنترل مي شود. اين مساله در شكل زير نشان داده شده است.
اينترفيس كردن با حافظه:
شكل زير بلوك دياگرام كلي آرايه حافظه 8086 را نشان ميدهد. در اين شكل، كلمه حافظه 16 بتي بتي به دو بانك 8 بيتي low و high در نيمه بالا و پائين گذرگاه داده انتخاب شده توسط BHE و A0 تقسيم شده است.
ROM و EPROM
SROM و SEPROM ساده ترين تراشه هاي حافظه براي اينترفيس با 8086 هستند. از آنجائيكه ROM و EPROM وسايلي read only هستند، لازم نيست كه A0 و BHE به عنوان بخشي از ديكودينگ enable/select تراشه گنجانده شوند زيرا enable مشابه chip select است با اين فرق كه chip enable هم چنين مشخص مي كند كه آيا chip فعال است يا در حالت standby ميباشد.
خطوط آدرس 8086 بايد به تراشه هاي ROM/EPROM كه با A1 شروع مي شوند و بالاتر از آن كه به تمامي خطوط تراشه هاي ROM و EPROM متصل هستند خطوط استفاده نشده آدرس 8086 مي تواند براي ديكودينگ enable/select تراشه استفاده شود. براي اينترفيس كردن ROM/RAM ها به گذرگاه مالتي پلكس شده 8086، آن ها بايد داراي سيگنال هاي enable خروجي باشند. شكل بعدي اينترفيس 8086 را با دو ماجول 2716 نشان ميدهد.
دستيابي به بايت توسط خواندن كامل 16 بيت كلمه در باس با كنار گذاشتن بايت غير مطلوب و پذيرش بايت مورد نظر انجام مي گيرد.
سيستم وقفه 8086
وقفه ها در 8086 را مي توان به سه نوع زير تقسيم بندي كرد:
1- وقفه هاي از پيش تعريف شده (Predefuned interrupts)
2- وقفه هاي نرم افزاري تعريف شده توسط كاربر (User defined software interupts)
3- وقفه هاي سخت افزاري تعريف شده توسط كاربر (User defined hardware interupts)
آدرس هاي بردار وقفه براي تمامي وقفه هاي 8086 از جدولي كه در آدرس 00000HÞ003FFH ذخيره شده معين مي شوند. آدرس شروع براي روتين هاي سرويس وقفه ها با استفاده از اين جدول فراهم مي شود. چهار بايت از جدول براي هر يك از از وقفه ها در نظر گرفته شده است. 2 بايت براي IP و 2 بايت براي CS. جدول مي تواند تا 256 بردار 8 بيتي را شامل باشد. چنانچه كمتر از 265 وقفه در سيستم تعريف شده باشد، كاربر فقط نياز به فراهم ساختن حافظه كافي براي اشاره گر به جدول وقفه براي فراهم ساختن وقفه هاي تعريف شده دارد.
براي آدرس وقفه (CS , IP) براي تمامي وقفه هاي 8086 به هر وقفه يك نوع كد را براي شناسائي وقفه اختصاص ميدهد. 256 كد نوع وجود دارد و هر مدخل جدول شامل دو آدرس يكي براي ذخيره محتوي IP و ديگري براي ذخيره سازي محتوي CS است. هر بردار آدرس فيزيكي وقفه 8086 داراي 20 بيت است و از محتويات 16 بيتي IP و CS محاسبه مي شود.
براي فراهم ساختن برادار آدرس وقفه، 8086 دو آدرس را در جدول اشاره گر جائيكه IP و CS براي نوع خاصي از وقفه ذخيره شده اند، محاسبه مي كند. بطور مثال، براي وقفه نوع int nn داريم:
IP=4*nn
CS=4*nn+2
براي سر.يس دادن به وقفه NM1 در 8086، پردازنده 8086 كد نوع 2 را به اين وقفه اختصاص داده است. 8086 به شكل اتوماتيك دستور INT2 را به شكل داخلي براي فراهم ساختن بردار آدرس وقفه به شرح زير اجرا كند:
=4*2=00008Hآدرس براي IP
=4*2+2=0000AHآدرس براي CS
8086 مقادير IP و CS را از آدرس فيزيكي 20 بيتي 0008H و 0000AH در جدول اشاره گر load مي كند. كاربر بايد مقادير 16 بيتي مناسب IP و CS را در اين مكان ها قرار دهد. مشابهاً، مقادير CS و IP براي ديگر وقفه ها قابل ملاحظه هستند. جدو.ل اشاره گر وقفه در 8086 در شكل زير بچشم مي خورد.
در پاسخ به يك وقفه، 8086، پرچم ها، CS و IP را در Stack دخيره (push) مي كند و پرچم هاي TF و IF را clear كرده و سپس IP و CS را از جدول اشاره گر مربوط به كد نوع وقفه load مي كند.
روتين هاي سرويس وقفه را بايد با (Interrupt Return) IRET خاتمه داد كه اين دستور سه كلمه اي بالاي stack يعني IP، CS و پرچم ها را pop كرده و به مكانهاي اصلي در برنامه اوليه بازگشت پيدا مي كند.
256 كد نوع به صورت زير مقداردهي مي شوند:
· نوع 0 تا 4 براي وقفه هاي از پيش تعريف شده.
· نوع 5 تا 31 براي كارها و هدفهاي آتي توسط اينتل رزرو شده اند.
· نوع 32 تا 255 براي وقفه هاي maskable در دسترش مي باشند.
وقفه هاي از پيش تعيين شده (0 تا 4)
وقفه هاي ازپيش تعيينشده شاملdivision by zero (نوع 0)، Single step (نوع 1)، پايه NMI (نوع 2)، Break point interypy (نوع 3) و interrupt on overflow (نوع 4) هستند. كاربر بايد مقادير مناسب IP و CS را از جدول وقفه فراهم سازد. چنانچه از وقفه پيش تعريف شده در سيستم استفاده نشود، كاربر مي تواند توابع ديگري را به نوع مربوطه اختصاص دهد.
هرزمان كه تقسيم بر صفر انجام شود، 8086 به شكل خودكار وقفه داده مي شود. اين وقفه non maskable است و توسط اينتل به عنوان بخشي از دستور تقسيم پياده سازي است. هنگامي كه (target flaf) TF توسط دستوري set مي شود، 8086 به مد single step ميرود. TF را مي توان به شكل زير clear كرد:
Save flag ; Push F
[SP] [BP] ; SP و BP MOV
Clear ; 0FEFFH و [BP+0] AND
Pop flag ; POPF
دو قطعه كد بالا، به جاي [BP] از [BP+0] استفاده شده زيرا را نمي توان بدون displacemant استفاده كرد. اكنون براي set كردن TF به جاي دستور AND مي توان از دستور زير استفاده كرد:
OR [BP+0] , 0100H
هر زمان كه TF را به 1 تنظيم مي كنيم، 8086 به شكا خودكار وقفه نوع 1 را پس از اجراي هر دستور تولدي مي كند. كاربر مي توان يك روتين سرويس را در بردار آدرس وقفه براي نمايش محتويات حافظه يا ثبات براي debug برنامه بنويسد. دقت كنيد single step يك وقفه non maskable است و نمي تواند به وسيله STI(تواناساز وقفه) و يا CLI (ناتوان ساز وقفه) تغيير پيدا كند. وقفه هاي non maskable توسط پين NMI تنظيم مي شود.
?اين وقفه edge teigger است (low high) و بايد براي دو سيكل كلاك (براي تخمين شناسايي) فعال شود و بطور نرمال براي خطاهاي catastionphic مثل power failure استفاده مي شود. 8086 آدرس بردار دقفه را به شكل خودكار با اجراي دستور int 2 فراهم مي سازد.
Type 3 براي break point و non maskable استفاده مي شود. كاربر دستور يك بايتي int 3 را در برنامه با جايگزين ساختن يك دستور درج مي كند. Breaking براي debug كردن برنامه سودمن مي باشد.
Type 4 وقفه براي سرريزي است و در صورتيكه هنگ OF تنظيم مس شود و دستور into اجرا گردد اتفاق مي افتد. مثلاً هنگ سرريزي پس از اجراي دستور رياضي مثل MULS (signal multiplication) اتفاق مي افتد. كاربر مي تواند دستور into را پس از muls اجرا كند. چنانچه سرريزي وجود داشته باشد، اولين سرويس نوشته شده توسط كاربر كه در آدرس وقفه نوع 4 نوشته شده، اجرا مي گردد.
User define software interrupts
كاربر مي تواند با اجراي يك دستور وقفه 2 بايتي به نام int un، وقفه نرم افزاري را توليد كند. اين دستور با هنگ وقفه IF قابل masl شدن نمي باشد. هم چنين دستور int un مي تواند براي آزمون كردن روتين سرويس وقفه براي وقفه هاي خارجي به كار رود. كدهاي نوع 0 تا 255 قابل استفاده هستند. چنانچه وقفه از پيش تعريف شده اي در سيستم استفاده نشود، كد نوع مرتبط با دستور int un را مي توان براي توليد وقفه هاي داخلي يا نرم افزاري استفاده كرد.
شكل زير اقسيم بندي انواع وقفه ها را را نشان مي دهد:
مثال: آدرس فيزيكي و منطقي بردار زير را پيدا كنيد:
1- int 14H
2- int 38H
??1- IP 14*4=SOH : CS SOH+2=SZH
?(محدوده آدرس 0000:0050 0000:0053
??2- IP 35*4=EOH : CS EOH+2=EZh
?(محدوده آدرس 0000:00E0 0000:00E3
مثال: فرض كنيد محتواي حافظه و آدرس هاي متناظر با آن به صورت زير باشند.
محتوي IP و CS را براي روتين سرويس وقفه int 5H پيدا كنيد.
CS=0014 + 2 =0014H
طبق فرض مسأله [IP]=FFS4H
[CS]=F000H
user define hardware (waskable interrupts)
??وقفه هاي قابل mask در 8086 از طريق پايه intr مقداردهي اوليه يم شوند. اين وقفه ها مي توانند به وسيلع دستور STI (set If or IF 1) يا ازطريقدستور CLI (0 IF يا IF clear) توانا و ناتوان شوند. چنانچه IF=1 و intr فعال (high) باشد، بدون وجود هرگونه وقفه ديگري، پردازنده 8086 پس از تكميل دستور جاري دوبار int A=low را اجرا مي كند. (هر بار در حدود 2 سيكل)
وضعيت پايه Intr در طي آخرين سيكل ساعت هر دستور، نمونه برداري مي شود. در برخي اوقات، 8086 پايه INTR را در زماذني ديگر نمونه گيري مي كند. مثالي از اين دست اجراي دستور pop براي سگمنت رجيستر است. در اين حالت، وقفه ها تا هنگام تكگميل دستور بعدي نمونه برداري مي شوند. اين امر سبب مي شود كه 32 بيت اشاره گر بتواند در SS و sp بدون مشكل رخداد وقفه در بين دو load، بارگذاري شود.
INTA توسط 8086 در پاسخ به INTR توليد مي شود. به شكل زير نگاه كنيد.
ترتيب تأئيد وقفه شامل دو سيكل INTA است كه بات دو سيكل كلاك idle از يكديگر جدا مي شوند. ALE نيز بوسيله 8086 توليد مي شود و آدرس پچ شده را در باس load مي كند. در طي سيكل هاي باس INTA، DT/R و DEN low هستند. يعني در نخستين سيكل باس INTA نشان ميدهد كه يك سيكل تأئيد وقفه در حال پيشرفت است و به سيستم اجاره مي دهد براي قرار دادن كد نوع وقفه در سيكل باس INTA بعدي آماده ميباشد. پس 8086 نمي تواند اطلاعات را در طي اولين سيكل باس فراهم كند. سخت افزار خارجي بايد كد نوع را در نيمة پائين باس داده 16 بيتي در طي سيكل دوم قرار دهد.
8086 DMA
هنگامي كه در مد مي نيمم هستيم، 8086 سيگنال HOLD (درخواست DMA) و HLDA (تأئيد DMA) را براي در اختيار گرفتن باس براي كاربردهاي DMA توليد مي كند. تراشه هاي كنترلر DMA يعني 8357 و 8237 مي توانند با 8086 بكار روند. اين تراشه ها مي توانند با فعال كردن پايه HOLD درخواست انتقال DMA را بين حافظه 8086 و وسيله I/O انجام دهند. 8086 سيكل گذرگاه جاري را كامل مي كند و سپس HLDA را فعال كرده و باس سيستم را به كنترلر DMA واگذار مي كند. 8086 تا هنگاميكه پايه HOLD منفي نشود سعي در استفاده كردن از آن نمي كند.
همانطوري كه قبلاً گفتيم آدرس هاي حافظه 8086 در دو بانك جداگانه كه يكي شامل آدرس هاي زوج و ديگري فرد است پيكره بندي مي شوند. كنترلر DMA هشت بيتي متناوباً اين دو بانك را براي دستيابي به بايت هاي منطقي مجاور در حافظه انتخاب كند.
فلسفه استفاده از DMA
بسياري از وسايل I/O برروي بلوك هاي بزرگ از داده ها عمل مي كنند (معمولاً چندين كيلوبايت طول دارند). اين مسئله سبب مي شود كه تاخير عمليات طولاني مثل دستيابي به هاردديسك در كل انتقال بلوك كاهش پيدا كند. اين وسايل معمولاً داراي يك بافر كوچك حافظه هستند كه بلوك هايي از داده را در خود نگاه ميد ارد. ثابت هاي فرمان نگاشت حافظه وسيله سبب مي شوند كه پردازنده بتواند كلمالت را از/به بافر با عمليات load و store بخواند يا بنويسد.
با چنين طرحي پردازنده بايد عمليات load يا store را براي هر كلمه از داده ها كنيد به يا از بافر وارد/خارج مي شوند، اجرا كند. درحاليكه تعاملات روي باس I/O معمولاً در سرعتي كمتر از سرعت كلاك پردازنده روي ميدهند. يعني وقت كافي بين نقل و انتقالات گذرگاه I/O براي پردازنده باقي نميماند تا به برخي از ديگر taskها سوئيچ كند. يعني به زبان ساده تر پردازنده بايد هر زمان كه داده ها روي گذرگاه I/O رد وب دل مي شوند مشغول و منتظر باشد.
سيستم هاي DMA براي حل اين مشكل بوجود آمده اند. در سيستم DMA، وسايل I/O مي توانند مستقيماً و بدون دخالت پردازنده به حافظه دستيابي پديا كنند. شكل زير مفهوم DMA را نشان ميدهد.
بكمك DMA مي توان تعداد سيكل هايي را كه يك ريزپردازنده صرف I/O مي كند كاهش داد و درنتيجه پردازنده براي انجام كارهاي ديگر آزاد خواهد بود. هرچند كه، وسيله I/O و پردازنده مجبور به استفاده از پهناي باند مشترك حافظه هستند يعني اين كه پهناي باند موجود حافظه براي برنامه ها در هنگام استفاده از DMA كاهش پيدا خواهد كرد.
ساختار عمومي ريزپردازنده هاي پيشرفته
در اين بخش ساختار ريزپردازنده هاي اواسط دهه 90 شرح داده مي شوند. اين ساختار در بيشتر ريزپردازنده هاي اين دوره وجود دارد و به ريزپردازنده هاي خاصي مربوط نيست. هرچند چندين سيستم 64 بيتي در اين دوره وجود دارد، بيشتر ريزپردازنده هاي اين دوره 32 بيتي هستند. شكل زير نمودار بلوكي ريزپردازنده ها را ناشن مي دهد:
تعداد سيستم هاي 64 بيتي روز به روز افزايش مي يابند و حتي در سيستم هاي 32 بيتي نيز تعداد گذرگاههاي داخلي و حارجي مي توانند چندين برابر باشند. در سيستم هاي 32 بيتي، Iu و ثبات هاي موجود در فايل ثبات 32 بيتي هستند و گذرگاه داده ممكن است 32 بيتي باشد. البته سيستم هايي نيز وجود دارند كه در آن ها گذرگاه داده ممكن است 32*2=64، 32*3=96 يا 32*4=128 بيتي باشند. در سيستم هاي 64 بيتي Iu، و ثبات ها در فايل ثبات 64 بيتي هستند و گذرگاه ها نميز مي توانند ضريبي از 64 باشند. گذرگاه آدرس در بيشتر سيستم ها 32 بيتي است كه براي آدرس دهي فضاي 4GB كافي مي باشد. اگرچه برخي سيستم هاي جديد از اين هم فراتر رفته اند مثلاً 32+j كه j يك عدد صحيح است.
Biu واسطي بين واحدهاي داخلي ريزپردازنده و سيستم هاي خارجي است. جزئيات بيشتر Biu در شكل زير نشان داده شده است:
Biu شامل سه بخش است:
1- واسط داده
2- واسط آدرس
3- واسط كنترل
بخش واسط داده رابطي بين گذرگاه داده سيستم و واحدهاي داخلي ريزپردازنده است. بطور عمومي انتقال داده ها بين واسط داده و ديگر اجزاي داخلي ريزپردازنده توسط گذرگاه خارجي انجام مي گيرد.
بخش واسط آدرس، آدرس هاي توليد شده داخلي يك دستورالعمل يا يك عنصر داده را به بخش آدرس گذرگاه سيستم ارسال مي كند. اين آدرس توسط (Memory Managemet unit) Mmu ساخته مي شود.
بخش واسط كنترل نيز وظيفه ارسال و دريافت تعدادي سيگنال هاي كنترل و وضعيت را از پردازنده به سيستم هاي خارجي و از آن ها به پردازنده برعهده دارد. اكثر خطوط كنترل در واسط كنترلي به واحد كنترل متصل هستند و واحد كنترل نيز به بقيه واحدهاي پردازنده مرتبط است. خطو كنترل خروجي نشان دهنده وضعيت عملكرد بخش هاي مختلف ريزپردازنده، فعال شدن و فرمان هايي براي خواندن يا نوشتن، تميز دادن بين ذسترسي به انواع مختلف فضاي آزاد آدرس دهي و پاسخ به وقفه ها و تقاضاي درخواست گذرگاه و خيلي از موارد ديگر است.
خطوط كنترل ورودي نيز نشان دهنده حالت تجهيزات خارجي مثل آگاه ساختن ريزپردازنده كه در حالتي كه سيستم يا گذرگاه دچار خطا شود، درخواست سرويس دادن يك وقفه يا جواب يك تقاضا براي استفاده از گذرگاه و درخواست يك چرخه گذرگاه كامل شده، غيرفعال شدن حافظه نهان داخلي و بسياري از موارد ديگر است.
واحد پيش كشي شامل يك مدار منطقي است كه وظيفه پيش كشي دستورالعمل ها را از حافظه نهان دستورالعمل و قرار دادن آن ها در يك صف دستورالعمل FIFO بر عهده دارد. يك صف دستورالعمل ممكن است شامل 8 تا 32 بايت باشد.
دستورهايي كه از اين صف خارج مي شوند وارد واحد كدگشايي خواهند شد. اين واحد دستورها را كئگشايي كرده و سيگنال هاي كنترلي لازم را در هر حالت به واحد كنترل ارسال مي كند. بيشتر ريزپردازنده هاي امروزي داراي يك سوپر اسكالر هستند. يعني بيشتر از يك دستورالعمل در هر زمان براي كدگشايي وارد مي گردد.
برخي ريزپردازنده ها ممكن است علاوه بر Iu و Fpu داراي يك واحد عمليات ويژه Sfu (Special Finction units) نيز باشند. يك Sfu ممكن است شامل يكي از موارد زير باشد (يا هر واحد ديگر بسته به كاربرد):
1- واحد گرافيكي
2- واحد پردازش سيگنال
3- واحد پردازش تصوير
4- پردازنده بردار يا ماتريس
هر ريزپردازنده ممكن است بيشتر از يك Sfu داشته باشد. فناوري امروزي اجازه مي دهد تا بيش از 100 ميليون ترازيستور را در يك تراشه جاي دهند و با اين ظرفيت قادر خواهيم بود چندين واحد عملياتي را در يك تراشه جاي دهيم. Sfu در يك تراشه تاخير انتقال را در انتقال اطلاعات بين Sfuها با واحدهاي ديگر حداقل گرده و باعث سرعت بيشتر اجراي عمليات مي شود.
حافظه پنهان (cache) حافظه اي با سرعت دسترسي بالا است كه بين cpu و حاذفظه اصلي قرار دارد. وجود آن باعث بالا رفتن كارآيي خواهد شد و به cpu اجازه ميدهد كه به اطلاعات موجود در حافظه با سرعت بالاتر دسترسي داشته باشد. امروزه ريزپردازنده هاي پيشرفته، 32KB يا بيشتر حافظه نهان تراشه دارند. عملاً تمام ريزپرذدازنده هاي پيشرفته به شكل pipe line عمل مي كنند. معمولاً از يك حافظه Dual cache در ريزپردازنده هاي پيشرفته استفاده مي شود يك cache براي دستور و يك cache براي داده كه در شكل زير نشان داده شده است.
در بسياري از ريزپردازنده ها، حافظه Cache به واحد عملياتي از طريق يك گذرگاه داده عملياتي به نام ODB (Operation Data Bus) متصل است. OBD به اندازه كافي بزرگ است (128 يا 256 بيت) طوري كه مي تواند تعدادي دستورالعمل را در يك زمان انتقال دهد و اين سبب بالا رفتن سرعا عمليات ريزپردازنده خواهد شد.
حافظه Cache ثانويه بين حافظه نهان اوليه و حافظه اصلي در سلسله مراتب حافظه قرار مي گيرد. زمان دسترسي از حافظه اصلي كمتر است و خارج از تراشه مي باشد و مي توانند خيلي بيشتر از حافظه نهان اوليه باشد. وجود Cache دوم كارآيي سيستم را در دسترسي سريع بحافظه افزايش مي دهد.
داخل تعدادي از ريزپردازنده هاي پيشرفته يك نوع (Branch Target Cache) BTC وجود دارد. در سيتم پاپ لوين هنگامي كه با دستورالعمل پرش مواجه شديم، دستورهاي زير دستور پرش بايد از خط لوله بيرون روند و دستورالعمل مقصد بايد به خط لوله واكشي شود. اگر دستور از حافظه باشد تاخير زيادي در اجراي دستورها باعث خواهد شد. چنانچه دستورهاي مقصد به داخل يك BTC در تراشه ارسال شوند، مي توانند سريعتر به خط لوله واكشي شوند. بدين ترتيب كارآيي پردازنده افزايش پيدا يم كند. در برخي سيستم ها BTC فقظ شامل آدرس هاي مقصد و نه دستورهاي مقصد مي باشند.
همانظور كه قبلاً گفته شد بيشتر ريزپردازنده هاي پيشرفته داراي خاصيت اجراي موازي دستورالعمل ILP هستند. در بيشار حاالت از يك سوپر اسكالر استفاده مي شود. در يك سيستم سوپر اسكالر Iدستورالعمل توسط واحد پيش واكشي در يك زمان واكشي شده و به واحد كدگشايي ارسال مي شوند. (به شكل زير نگاه كنيد).
معمولاً تعدا واحدهاي عملياتي خط لوله اي برابر تعداد حالات ILP نيست. اگر براي كارآيي بهتر، I دستور را در يك زمان صادر (issue) كنيم سبب مي شود كه I دستور در هر زمان بخوبي اجرا گردد. شكل فوق حالتي را نشان مي دهد كه تعداد واحدهاي عملياتي خط لوله اي برابر تعداد سطوح موازي I باشد كه عمل اين شرط هميشه امكانپذير نيست. زيرا محدوديت هايي كه مساحت هاي سيليكاني ايجاد مي كنند سبب مي شود كه نتوانيم تعداد كافي واحد عملياتي را در يك تراشه قرار دهيم. امكان مخاطرات خط لوله (hazard) مثل وابستگي داده در دستور بعدي و دستورهاي كنترلي (مانند پرش) ممكن است سبب stall و تاخير در خط لوله شوند.
واحد كنترل هم مي تواند به شكل hard wired و هم به صورت micro programmed پياده سازي شوند. بيشتر مدل هاي سنتي ريزپردازنده هاي cisc واحد كنترل معمولاً ريزبرنامه ريزي دارند ولي مدل هاي ريزپردازنده هاي RISKداراي كنترل سخت افزاري پياده سازي مي شود و اين مساله سبب بالا رفتن سرعت و يكي شدن چرخه اجرا در همه يا بيشتر دستورها خواهد شد.
جزئيات يك Iu در شكل زير نشان داده شده است:
بايد تعدادي واحد عملياتي موازي در سيستم سوپراسكالر وجود داشته باشد. بنابراين ممكن است به تعدادي واحد جمع، تفريق و ضري و تقسيم در Iu نياز داشته باشيم. در آن يك رجيستر به نام رجيستر فايل صحيح IRF يا Integer Register File قرار دارد كه شامل N رجيستر 32 يا 64 بيتي (بسته به 32 يا 64 بيتي بودن سيستم) است.
كامپيوترهاي CISC معمولاً 8 تا 16 ثبات دارند ولي ريزپردازنده هاي RISC معمولاً بيش از 32 ثبات دارند. تعدادي از سيستم هاي RISC بيش از 100 ثبات دارند. واحد توزيع كننده دستورالعمل (inst. dispatcher) دستورهاي كدگشايي شده را از واحد كنترل گرفته و اين دستورها را به واحد عملياتي مربوطه ارسال مي كند. دستورهاي مربوط به اعداد صحيح به سوي Iu و دستورهاي اعشاري به سوي Fpu ارسال مي گردند و دستورهاي عمليات ويژه به سوي Sfu ميروند. داده هاي مورد نياز واحد عملياتي از طريق ODB به Cache ارسال مي شوند. بيشتر سيستم ها يك شيفت شبكه اي دارند كه براي انجام عمل شيفت چند بيتي در يك چرخه استفاده مي شود.
مسير داده Fpu در شكل زير نشان داده شده است. چريان اطلاعات شبيه Iu مي باشد. در اين حالت يك فايل ثبات مميز شناور در (Floasting point Register File) FRF وج.د دارد كه شامل دو ثبات ميباشد. در سيتم هاي CISC تعداد ثبات هاي FRF معمولاً 8 عدد است ولي در سيستم هاي RISC معمولاً 32 عدد هستند.
عملاً تمام ريزپردازنده هاي مدرن از استاندارد IGGE-754-1985 استفاده مي كنند كه براي دقت ساده به شكل 32 بيتي و براي دقت مضاعف به شكل 64 بيتي مي باشند. حتي اگر سيستم 32 بيتي باشد. در برخي سيستم ها FRF از ثبات هاي 64 بيتي استفاده يم كند. البته برخي از سيستم ها از فرصت ديگري كه 80 بيتياست استفاده ميكنند (VAX) و بهمينجهت دراين سيستمها FRF ممكناست80 بيتي باشد. DEC Alpha از استاندارد IEEE بخوبي فرصت توسعهيافته VAX (Extension Precision) استفاده مي كند.
عمليات اصلي MMu بصورت زير است:
1- تبديل آدرس مجازي (منطقي) به آدرس فيزيكي (حقيقي9 و ارسال آدرس فيزيكي به حافظه نهان يا به Biu و گذرگاه آدرس براي تجهيزات خارجي
2- انجام عمليات صفحه بندي با حافظه مجازي كه از طريق واحد paging صورت ميگيرد.
3- فراهم ساختن انجام مكانيزم قطعه بندي (در صورت وجود) توسط واحد قطعه بندي
4- انجام حفاظت حافظه كه در واحدهاي صفحه بندي و قطعه بندي انجام مي شود.
5- مديريت يك TLB يا ATC (Address Translation Cache) با سرعت دسترسي بالا براي تعديل شماره صفحه اي مجازي به فيزيكي
شكل زير نمودار بلوكي MMu را نشان مي دهد:
عملاً تمام ريزپردازنده هاي پيشرفته واحد صفحه بندي و يك TLB و يا ATC دارند. فقط خانواده X86 داراي واحد مربوط به قطعه بندي است. در حالتي كه در TLB يك miss روي دهد، MMu داراي منطقي است تا دسترسي به فهرست صفحه خاص و جداول در حافظه اصلي را نظارت كند و TLB را با شماره صفحه miss شده بار كند.
ريزپردازنده هاي مدرن ممكن است داراي صدها پين باشند. اين ها اجازه ميدهد كه بتوانيم چندين گذرگاه داده يا گذرگاه آدرس جدا از هم داشته باشيم و نيز واسط هاي جداگانه اي براي گذرگاه سيستم و حافظه Cache ثانويه و كنترل هاي متنوع و سيگنال هاي وضعيت داشته باشيم. همچنين چندين پين براي Vcc و GND در تمام اطراف تراشه وجود دارد. اين پين ها اجازه ميدهند كه مسيرهاي تغذيه و زمين داخل تراشه كوتاه تر باشند. كه درنتيجه طراحي تراشه ساده تر و هزينه آن و نيز تاخير كاهش پيدا مي كند.
1- سه نوع گذرگاه كه توسط آن ها CPU با حافظه و وسايل I/O ارتباط دارند كدامند؟
2- ميكروكامپيوتر و ميكروپروسسور چه تفاتي با هم دارند؟
3- فرض كنيد در ريزپردازنده 808 دستور IN به 10 سيكل، دستور MOV به 13 سيكل و دستور HALT به 7 سيكل نياز داشته باشد. اجراي برنامه زير چقدر طول خواهد كشيد؟
?MOV mem ; Memory [AX]
HALT
4- منظور از سيكل ماشين چيست؟
5- يك ريزپردازنده 8 بيتي معمولاً تا چند بيات حافظه را مي تواند دستيابي كند؟
6- يك I/O درخواست كننده وقفه هنگام فعال شدن INTA عدد 03 را روي AD0 تا AD7 قرار ميدهد. آدرس پرش در چه مكاني ذخيره مي شود؟
7- سه نوع سيكل خواندن / نوشتن را در 8086 نام ببريد.
8- 8086 از كدام سيگنال براي دي مالتي پلكس كردن باس آدرس / داده استفاده مي كند؟
9- مد آدرس دهي [BP]+6 و MOV AX چيست و چه كاري اين دستوري انجام مي دهد؟
10- فرض كنيد محتواي حافظه و ثبات به شكل زير باشند:
[36000H]=02 , [36001H=3
[DS]=3000H , [8X] = 6000H , [SS]=6000H
[SP]=5000H , [AX] = 00A9H , START=05
پس از اجراي هر يك از دستورهاي زير دقيقاً محتواي ثبات ها و حافظه هاي مربوط را بنويسيد:
1) push [BX] , 2) MOV START[BX],AL
11- سيگنال هاي مد مي نيمم و ماكزيمم 8086 را بنويسيد. چگونه اين مدها انتخاب مي شوند؟
12- اختلاف اساسي بين ريزپردازنده هاي 8086 و 8088 چيست؟
کنترل از دور
واحد کنترل تلویزیون از راه دور (RCU)
کنترل از راه دور بخشی از دستگاه های الکترونیک، معمولا مجموعه ای از تلویزیون، دی وی دی پلیر و سیستم های سینمای خانگی در اصل برای کار با دستگاه تلویزیون بی سیم از یک فاصله کوتاه خط چشم استفاده می شود. کنترل از راه دور به طور مستمر در طول سال های اخیر تکامل یافته و پیشرفته که شامل اتصال بلوتوث، حرکت سنسور قابلیت را فعال کنید و کنترل صدا است.
تکنولوژی اصلی به کار رفته در صفحه اصلی کنترل از راه دور مادون قرمز (IR) است. سیگنال میان گوشی های کنترل از راه دور و دستگاه کنترل مادون قرمز، پالس هستند که به چشم انسان نامرئی هستند. فرستنده کنترل از راه دور در گوشی می فرستد یک پالس نور مادون قرمز را وقتی که یک دکمه بر روی گوشی فشرده است. فرستنده معمولا یک دیود ساطع نور (LED) است که به پایان اشاره کنترل گوشی از راه دور ساخته شده است. پالس نور مادون قرمز نشان دهنده یک کد باینری است که مربوط به یک دستور خاص، مانند (قدرت) است. گیرنده عبور کد به یک ریزپردازنده است، که رمز گشایی آن و انجام فرمان.
معمولا، کنترل از راه دور دستگاه های مصرف کننده IR مورد استفاده قرار گیرد به صدور دستورات از راه دور به تلویزیون یا لوازم الکترونیکی مصرفی دیگر از قبیل سیستم های استریو، پخش کننده های DVD و دیممرس. کنترل از راه دور را برای این دستگاه ها معمولا اشیاء بی سیم دستی کوچک را با مجموعه ای از دکمه های برای تنظیم تنظیمات مختلف مانند کانال تلویزیون، شماره مسیر و حجم. در واقع، برای اکثر دستگاه های مدرن و با این نوع از کنترل، از راه دور شامل تمام کنترل عملکرد در حالی که دستگاه کنترل خود تنها تعداد انگشت شماری از کنترل های اولیه ضروری است. بسیاری از این کنترل از راه دور و ارتباط به دستگاه های مربوطه خود را از طریق سیگنال های مادون قرمز و از طریق سیگنال های رادیویی چند. کنترل های از راه دور در 1970s اوایل با استفاده از زنگ های مافوق صوت است. تلویزیون سیگنال IR را می توان توسط یک کنترل از راه دور جهانی، است که قادر به شبیه سازی عملکرد بسیاری از کنترل های از راه دور تلویزیون بزرگ با نام تجاری تقلید شده است.
1 تاریخچه
1.1 کنترل تلویزیون از راه دور
1.2 اثر از کنترل تلویزیون از راه دور اولیه
1.3 کنترل های دیگر از راه دور
1.4 گسترش سلاح های کنترل از راه دور
1.5 برنامه های کنترل از راه دور بر روی دستگاه های تلفن همراه
2 تکنیک
2.1 OPTO قطعات، مدارات و ریاضیات
2.2 فروش الکترونیک پروتکل های مادون قرمز
2.3 مادون قرمز، خط چشم و زاویه عامل
2.4 رادیو سیستم کنترل از راه دور
3 طریقه استفاده
3.1 صنایع
3.2 نظامی
3.2.1 تاریخ نظامی
3.3 فضا
3.4 بازی های ویدئویی
3.5 کنترل کامپیوتر
3.6 عکاسی
4 برق در حالت آماده Standby
5 جایگزین
6 همچنین نگاه کنید به
7 پیوند به بیرون
8 پیوند به بیرون
تاریخ
یکی از اولین نمونه هایی از کنترل از راه دور در سال 1898 توسط نیکولا تسلا، و شرح داده شده در ثبت اختراع خود، ثبت اختراع ایالات متحده 613،809، روش نام یک دستگاه برای کنترل مکانیسم از حرکت وسیله نقلیه و یا وسایل نقلیه است. در سال 1898، او یک قایق رادیو کنترل به عموم مردم در نمایشگاه برق در Madison Square Garden. تسلا به نام قایق خود "teleautomaton".]
در سال 1903، لئوناردو تورس Quevedo Telekino در آکادمی علوم پاریس، به همراه مختصر ارائه شده است، و ساخت یک تظاهرات تجربی است. در همان زمان او ثبت اختراع در فرانسه، اسپانیا، بریتانیا، و ایالات متحده آمریکا به دست آمده است. Telekino متشکل از یک روبات است که اعدام دستورات منتقل شده توسط امواج الکترومغناطیسی است. این دستگاه اولین بار در جهان است برای کنترل رادیویی [نیازمند منبع] تشکیل شده و یکی از پیشگامان در زمینه کنترل از راه دور بود. در سال 1906، در حضور شاه و قبل از یک جمعیت بزرگ، تورس موفقیت اختراع در بندر بیلبائو نشان داد، هدایت یک قایق از ساحل است. پس از آن، او سعی کنید Telekino به درخواست پرتابه اژدر و، اما تا به حال به رها کردن این پروژه برای عدم تامین منابع مالی است.
اولین هواپیمای مدل کنترل از راه دور در سال 1932 پرواز کرد، و با استفاده از فن آوری کنترل از راه دور برای مقاصد نظامی به شدت در طول جنگ جهانی دوم، کار کرده، یکی از نتایج این موشک Wasserfall آلمان.
توسط 1930s اواخر، تولید کنندگان چند رادیو کنترل از راه دور را برای برخی از مدل های خود را در پایان بالاتر ارائه شده است. [5] بسیاری از این مجموعه که از طریق سیم های کنترل متصل می شدند، اما کنترل شرکت Philco فروختند رمز و راز (1939) کم و باطری فرکانس فرستنده رادیویی بنابراین ساخت آن را به اولین بی سیم کنترل از راه دور برای دستگاه الکترونیک مصرف کننده.
کنترل تلویزیون از راه دور
کنترل از راه دور تلویزیون، VHS و DVD-دستگاه
از راه دور برای اولین بار در نظر گرفته شده برای کنترل تلویزیون توسط شرکت زنیت رادیو در سال 1950 توسعه یافته است. از راه دور، به نام "تنبل استخوان"، توسط یک سیم به تلویزیون متصل می شود. ریموت کنترل از راه دور، "Flashmatic"، در سال 1955 توسط یوجین Polley توسعه یافته است. آن را با تاباندن باریکه ای از نور را بر روی یک سلول فوتوالکتریک کار می کرد، اما سلول تمایز بین نور از راه دور و از منابع دیگر نور نیست. Flashmatic نیز تا به حال به بسیار دقیق در گیرنده به منظور کار اشاره شده است.
فرمانده اوج فضا ششصد کنترل از راه دور
در سال 1956، رابرت آدلر "اوج فرماندهی فضایی"، از راه دور بی سیم. مکانیکی و با استفاده از سونوگرافی برای تغییر کانال و حجم بود. هنگامی که کاربر دکمه را بر روی کنترل از راه دور را تحت فشار قرار دادند، آن را کلیک کرده و یک بار، از این رو اصطلاح "صدای کلیک را زده است. هر نوار فرکانس و مدارهای مختلف در تلویزیون منتشر شناسایی این صدا. اختراع ترانزیستور ساخته شده است، ممکن است ارزانتر الکترونیکی کنترل از راه دور است که دارای یک کریستال پیزو الکتریک که توسط یک جریان الکتریکی نوسان در فرکانس نزدیک یا بالاتر از حد بالای شنوایی انسان تغذیه شده است، هر چند هنوز هم قابل شنیدن به سگ. گیرنده شامل میکروفون متصل به یک مدار است که به همان فرکانس تنظیم شده است. برخی از مشکلات با این روش بود که گیرنده می تواند به طور تصادفی به طور طبیعی رخ می دهد سر و صدا باعث شده است، و برخی از مردم می توانند از سیگنال های اولتراسونیک پر سر و صدا را بشنود. حادثه سنتور چوبی اسباب بازی است که در آن تغییر کانال در مجموعه به دلیل برخی از لایههای از سنتور چوبی همسان فرکانس مافوق صوت از راه دور وجود دارد.
انگیزه برای نوع پیچیده تر از کنترل تلویزیون از راه دور آمد در اواخر 1970s، با توسعه خدمات تله تکست Ceefax توسط بی بی سی. اکثر تجاری کنترل از راه دور که در آن زمان تا به حال تعداد محدودی از توابع، گاهی اوقات به عنوان به عنوان سه چند کانال بعدی، کانال قبلی و حجم / خاموش. این نوع از کنترل، آیا نیازهای از مجموعه تله تکست، جایی که صفحات با اعداد سه رقمی مشخص شد ملاقات نیست. کنترل از راه دور را انتخاب کنید صفحات تله تکست دکمه برای هر یک از اعداد از صفر تا نه نیاز است، و همچنین به عنوان توابع کنترل دیگر، مانند تعویض از متن به تصویر، و کنترل تلویزیون های معمولی حجم، کانال، روشنایی، شدت رنگ، و غیره تله تکست در اوایل با استفاده از کنترل های سیمی از راه دور مجموعه را انتخاب کنید این صفحه، اما استفاده مداوم از کنترل از راه دور مورد نیاز برای تله تکست به سرعت نشان داد که نیاز به یک دستگاه بی سیم است. بنابراین مهندسان BBC شروع به مذاکره با تولید کنندگان تلویزیون یک یا دو، که منجر به نمونه های اولیه در حدود 1977-1978 است که می تواند بسیاری از توابع بیشتر کنترل. ITT یکی از شرکت بود و بعدا نام خود را به پروتکل ITT ارتباطات مادون قرمز است.
در سال 1980، یک شرکت کانادایی، Viewstar، شرکت، توسط مهندس پل Hrivnak تشکیل شد و تولید کابل مبدل تلویزیون با کنترل از راه دور مادون قرمز آغاز شده است. این محصول از طریق فیلیپس برای حدود $ 190 CAD فروخته می شود. در آن زمان محبوب ترین کنترل از راه دور تهران Starcom Jerrold (تقسیم اسناد عمومی) است که با استفاده از 40 کیلو هرتز صدا را تغییر کانال بود. مبدل Viewstar موفقیت فوری، مبدل میلیون که در تاریخ 21 مارس سال 1985، با 1.6 میلیون فروخته شده در سال 1989 است. فروخته شد
در سال 2006، آزمایشگاه Hillcrest اشاره گر حلقه، یک کنترل از راه دور است که با استفاده از تکنولوژی کنترل Freespace حرکت Hillcrest اجازه می دهد تا کاربران را به کنترل تلویزیون خود را با حرکات طبیعی. حلقه به حال تنها چهار دکمه ها و چرخ اسکرول است. Freespace فعال کنترل از راه دور با استفاده از امواج رادیویی برای برقراری ارتباط USB با یک آنتن متصل به یک کامپیوتر است که به تلویزیون متصل، به طوری آنها لازم نیست به PCاشاره کرد، و یا حتی یک خط مستقیم دید.
برخی از تولید کنندگان تلویزیون در حال حاضر عبارتند از: کنترل از راه دور بلوتوث به کنترل تلویزیون را بدون نیاز به خط دید، غلبه بر طیف محدود در کنترل از راه دور IR-
اثر از کنترل تلویزیون از راه دور اولیه
این بخش، ممکن است پاکسازی ویکیپدیا برای دیدار با استانداردهای کیفیت نیاز دارد. بدون هیچ دلیل پاکسازی شده است مشخص شده است. لطفا کمک به بهبود این بخش اگر شما می توانید.
از راه دور اجازه مخاطبان، برای اولین بار، به ارتباط برقرار کردن با تلویزیون خود را بدون دست زدن به آن است. آنها دیگر تماشا برنامه ها فقط به خاطر اینکه آنها نمی خواهید برای دریافت کردن کانال را تغییر دهید. آنها همچنین می تواند کانال گشت و گذار در طول تبلیغات، و یا صدا را خاموش کنید.
اختراع کنترل از راه دور منجر به تغییرات متعددی در برنامه های تلویزیونی می شود. یکی از این ایجاد صفحه تقسیم اعتبارات بود. بر اساس به جیمز Gleick، یک تیم تحقیقاتی NBC کشف که وقتی اعتبارات شروع به نورد پس از برنامه، 25 درصد از بینندگان خود را به کانال قبل از آن بیش از تغییر. به این دلیل، واحد NBC سال 2000 اختراع "فشار و کسی را دست انداختن" است که اعتبارات را بر روی یک سوم از صفحه نمایش فشرده در حالی که دقایق پایانی از پخش به طور همزمان پخش شد.
کنترل از راه دور نیز به تنظیم در اکران تجاری منجر شده است. شبکه شروع به احساس می کنید که آنها نمی تواند به استطاعت تبلیغات بین برنامه ها به دلیل آن را به بینندگان از اقامت در کانال خود را تنظیم کم است. برنامه نویسان تصمیم برای قرار دادن تبلیغات در وسط برنامه انتقال را به نمایش بعدی مستقیم.
دیگر از راه دور کنترل های
در 1980s، استیو ووزنیاک اپل آغاز شده است یک شرکت به نام CL 9. هدف این شرکت برای ایجاد یک کنترل از راه دور است که می تواند چندین دستگاه الکترونیکی را به کار گیرند. واحد CORE (کنترل تجهیزات از راه دور) در پاییز سال 1987 معرفی شد. مزیت این کنترل از راه دور است که می تواند "یاد" سیگنال از راه دور از دستگاه های مختلف است. این توانایی برای انجام وظایف خاص و یا چند در زمان های مختلف با آن ساخته شده است در ساعت است. این کنترل از راه دور است که می توان به یک کامپیوتر متصل شده و پر شده با کد نرم افزار به روز رسانی به عنوان مورد نیاز بود.
واحد CORE تاثیر عظیمی در بازار ساخته شده است هرگز. این بسیار بیش از حد برای کاربر به طور متوسط به برنامه دست و پا گیر است، اما آن را بررسی دیوانه از کسانی که می تواند. [نیازمند منبع] این موانع در نهایت منجر به مرگ از CL 9، اما دو نفر از کارکنان خود را در کسب و کار تحت نام عشقبیاز ادامه داد. این یکی از اولین کامپیوتر کنترل کنترل های یادگیری از راه دور در بازار بوده است.
تکثیر از کنترل از راه دور
اوایل 2000s، تعدادی از دستگاه های الکترونیکی مصرف کننده در بسیاری از خانه ها تا حد زیادی افزایش یافته است، به همراه تعدادی از کنترل از راه دور برای کنترل آن دستگاه. بر اساس به انجمن فروش الکترونیک، به خانه های آمریکایی به طور متوسط دارای چهار کنترل از راه دور است. [نیازمند منبع] به کار تئاتر به عنوان بسیاری از خانه پنج یا شش کنترل از راه دور ممکن است لازم باشد، از جمله یکی برای کابل و یا گیرنده های ماهواره ای، VCR یا ضبط کننده ویدئویی دیجیتال (DVR / PVR)، دی وی دی پلیر، تلویزیون و آمپلی فایر صوتی. تعدادی از این کنترل از راه دور ممکن است نیاز به استفاده می شود پی در پی اما، به عنوان دستورالعمل های رابط پذیرفته شده وجود دارد، این روند به طور فزاینده ای دست و پا گیر است.
بسیاری از متخصصان، از جمله جاکوب نیلسن، یک متخصص قابلیت استفاده مشهور است، و رابرت آدلر، مخترع از راه دور مدرن، توجه داشته باشید که چگونه گیج کننده است، سنگین و خسته کننده کنترل از راه دور ضرب شده اند. از آنجا که از این تکثیر از کنترل از راه دور، کنترل از راه دور جهانی که مدیریت دستگاه های متعدد در حال تبدیل شدن به طور فزاینده ای محبوب است.
برنامه های کاربردی کنترل از راه دور بر روی دستگاه های تلفن همراه
در 2000s اواخر 2010sاولیه، یک شماره از سیستم عامل های گوشی های هوشمند و قابل حمل دستگاه پخش رسانه ای با نرم افزار نصب برنامه های کاربردی است که برای کنترل از راه دور از مراکز رسانه ها و بازیکنان رسانه ای بر روی رایانه های شخصی خانه تئاتر و همه منظوره از رایانه های شخصی بیش از Wi-Fi را اجازه می دهد ارائه شد. مانند آیتونز از راه دور در iOS است. در مقایسه با رابط های کاربری از لحاظ جسمی دکمههای اختصاص داده شده دستگاه های کنترل از راه دور، واسط کاربر از این برنامه های کاربردی کنترل از راه دور طراحی شده اند را به استفاده از گرافیک های پویا ارائه شده توسط دستگاه معمولا touchscreenedدستی، ساخت دکمه های مجازی بزرگتر و صفحه کلید مجازی.
بسیاری از توسعه دهندگان برنامه های کاربردی کنترل از راه دور دستی معمولا معمار نرم افزار برای استفاده خاص دستگاه پخش رسانه ای یا رسانه ها برنامه های کاربردی (به عنوان مثال، از راه دور برای iTunes آیتونز و آیتونز مبتنی بر نرم افزار اپل، Boxee از راه دور [23] برای Boxee، DVR از راه دور [24] برای استفاده از ویدئو، VLC از راه دور VLC، و غیره).
تکنیک
OPTOقطعات، مدارات و ریاضیات
طیف انتشار از سیستم کنترل صدای معمولی از راه دور در مادون قرمز نزدیک است.
دیود مادون قرمز مدوله در سرعت مربوط به یک تابع خاص است. هنگامی که از طریق یک دوربین دیجیتال دیده می شود، دیود به نظر می رسد برای روشن کردن نور بنفش است.
کنترل های از راه دور برای وسایل الکترونیکی استفاده از دیود مادون قرمز نزدیک به تابش پرتو نور است که به دستگاه می رسد. 940 نانومتر طول موج LEDمعمولی است. این نور مادون قرمز را به چشم انسان نامرئی است، اما توسط حسگرهای نصب شده روی دستگاه گیرنده را برداشت. دوربین فیلمبرداری دیود به عنوان اگر آن را به تولید نور مرئی بنفش است.
با یک کانال (تک منظوره، یک دکمه) کنترل از راه دور وجود یک سیگنال حامل را می توان مورد استفاده قرار گیرد به ماشه یک تابع است. چند کانال (نرمال چند تابع) کنترل از راه دور پیچیده تر روش لازم است: یکی شامل تعدیل حامل با سیگنال های فرکانس های مختلف است. پس از دمدولاسیون از سیگنال دریافت شده، فیلترهای فرکانس مناسب سیگنال های مربوطه داده می شود تا از هم جدا شده است. امروزه روش دیجیتالی معمول استفاده می شود. اغلب می تواند سیگنال های مدوله شده بر روی حامل مادون قرمز توسط عامل کنترل از راه دور در مجاورت بسیار نزدیک به یک رادیو AM به یک ایستگاه تنظیم می شنوید.
فروش الکترونیک مادون قرمز پروتکل
تولید کنندگان مختلف از کنترل های از راه دور مادون قرمز با استفاده از پروتکل های مختلف برای انتقال دستورات مادون قرمز است. RC-5 پروتکل است که ریشه های خود را در داخل فیلیپس، استفاده می کند، به عنوان مثال، در مجموع از 14 بیت برای هر فشار دکمه. الگوی بیت مدوله شده بر روی یک فرکانس حامل است که، دوباره می تواند برای تولید کنندگان و استانداردهای مختلف متفاوت است، در مورد RC-5، 36 KHz حامل استفاده شده است. مصرف کننده سایر پروتکل های مادون قرمز هستند، به عنوان مثال، نسخه های مختلف SIRCS توسط سونی، RC-6 از فیلیپس، Ruwido R-گام، و یا پروتکل NEC TC101استفاده می شود.
?
مادون قرمز، خط چشم و زاویه عامل
از آنجا که استفاده از نور مادون قرمز (IR) کنترل از راه دور، آنها نیاز به خط دید به کار دستگاه مقصد. سیگنال می تواند، با این حال، آینه، درست مثل هر نوع منبع نوری دیگر منعکس شده است.
اگر عملیات مورد نیاز است که در آن هیچ خط چشم امکان پذیر است، به عنوان مثال زمانی که کنترل تجهیزات در یک اتاق دیگر و یا در کابینه نصب شده است، علامت های تجاری بسیاری از توسعه دهنده های IR در دسترس هستند برای این در بازار است. بسیاری از این گیرنده IR، چیدن تا سیگنال IR و رله آن را از طریق امواج رادیویی به بخشی از راه دور، که دارای یک فرستنده IR تقلید اصلی کنترل IR.
گیرنده مادون قرمز نیز تمایل دارند که بیشتر یا کمتر محدود زاویه عامل، که عمدتا بر ویژگی های نوری فتو بستگی دارد. با این حال، آن را آسان برای افزایش زاویه عامل با استفاده از یک جسم مات و شفاف در مقابل از گیرنده است.
رادیو کنترل از راه دور سیستم های کنترل
قسمت های بیرونی و طرح داخلی کنترل از راه دور درب بازکن درب گاراژ
رادیو کنترل از راه دور (RF کنترل از راه دور) راهی برای کنترل اشیاء از راه دور با استفاده از انواع مختلفی از سیگنال های رادیویی که توسط دستگاه کنترل از راه دور منتقل شده است. با استفاده از سیستم کنترل از راه دور رادیویی، شما می توانید انواع مختلفی از دستگاه های مکانیکی و یا الکترونیکی برای تکمیل عملیات های مختلف از قبیل بسته شدن مدار کنترل، حرکت دسته، شروع موتور، و غیره به عنوان یک روش مکمل برای نوع مادون قرمز کنترل از راه دور، کنترل از راه دور رادیویی به طور گسترده ای در کنترل درب گاراژ از راه دور، کنترل از راه دور الکتریکی دروازه، مانع خودکار کنترل از راه دور، زنگ سارق، کنترل از راه دور صنعتی و سیستم های بی سیم خانگی زنگ استفاده می شود.
سیستم کنترل از راه دور رادیویی معمولا دارای دو بخش است: ارسال و دریافت می کند.
قسمت فرستنده است به طور کلی به دو نوع، یعنی، کنترل از راه دور و ماژول فرستنده RF، راه استفاده از کنترل از راه دور RF می تواند مورد استفاده قرار گیرد به طور مستقل به عنوان یک کل در حالی که ماژول فرستنده به عنوان یک جزء در مدار مورد استفاده قرار می گیرد، مزیت تقسیم با استفاده از مدل فرستنده است که می توان آن را به صورت یکپارچه با نرم افزار مدار متصل، و اندازه آن کوچک است، اما کاربران باید دانش مدار برای استفاده از ماژول فرستنده کنترل از راه دور RFبسیار آسان تر در این نقطه استفاده کنید.
در بخش گیرنده نیز به طور کلی به دو نوع، یعنی، گیرنده فوق العاده احیا کننده و گیرنده superheterodyne تقسیم، احیا گیرنده فوق العاده است که در واقع مانند بازسازی زیر مدار تشخیص نوسان متناوب کار می کند. در حالی که نوع Superheterodyne این است که به مانند یک گیرنده رادیویی است. Superheterodyne گیرنده ویژگی های ثبات، حساسیت بالا و توانایی ضد تداخل است نسبتا خوب است، در حالی که ویژگی های فوق العاده احیا کننده گیرنده یک بسته کوچک و قیمت ارزان تر است.
استفاده
?
صنعت
کنترل از راه دور برای کنترل پستهای، پمپ ذخیره سازی ایستگاه های قدرت و HVDC-گیاهان مورد استفاده قرار می گیرد. برای این سیستم ها اغلب PLC سیستم های مشغول به کار در محدوده طول موج استفاده می شود.
نظامی
کنترل از راه دور در استفاده نظامی از پارازیت و اقدامات متقابل در برابر متراکم است. Jammers استفاده می شود برای غیر فعال کردن و یا خرابکاری دشمن استفاده از کنترل از راه دور. فاصله برای کنترل نظامی از راه دور نیز تمایل به بسیار طولانی، تا ماهواره فاصله بین قاره ای با کنترل از راه دور که توسط ایالات متحده آمریکا برای هواپیماهای بدون سرنشین خود (هواپیماهای بدون سرنشین) در افغانستان، عراق و پاکستان استفاده می شود.
کنترل از راه دور توسط شورشیان در عراق و افغانستان مورد استفاده قرار گیرد برای حمله به نیروهای ائتلاف و نیروهای دولتی با کنار جاده ای دستگاه های منفجره، و تروریست ها در عراق در رسانه ها استفاده از کنترل از راه دور تلویزیون به بمب منفجر شده است.
?
تاریخ نظامی
در جنگ جهانی اول، نیروی دریایی شاهنشاهی آلمان، FL-قایق (Fernlenkboote) در برابر حمل و نقل ساحلی به کار گرفته شده است. این توسط موتور احتراق داخلی رانده شدند، و از راه دور کنترل از ایستگاه ساحل را از طریق چندین مایل از سیم زخم بر روی قرقره های در قایق. هواپیما به سیگنال جهت به ایستگاه ساحل مورد استفاده قرار گرفت. EMBs یک بار انفجاری بالا را در تعظیم انجام شده و سفر با سرعت سی گره است.
ارتش سرخ اتحاد جماهیر شوروی teletanks کنترل از راه دور در طول 1930s در جنگ زمستانی در برابر فنلاند و در مراحل اولیه جنگ جهانی دوم استفاده می شود. یک teletank توسط رادیو از مخزن کنترل از راه دور از 500 تا 1،500 متر، دو تشکیل یک گروه telemechanical کنترل می شود. ارتش سرخ حداقل دو گردان teletank در آغاز جنگ بزرگ میهنی میدان فرستاد. نیز وجود دارد که کنترل از راه دور برش و تجربی هواپیماهای کنترل از راه دور در ارتش سرخ.
فضا
کنترل از راه دور تلویزیون پرواز آزاد AERCamدوربین با حداکثر سرعت دویدن
فن آوری کنترل از راه دور نیز در سفر به فضا استفاده می شود، به عنوان مثال وسایل نقلیه Lunokhod شوروی کنترل از راه دور از زمین بود. بسیاری از فضای اکتشاف مریخ نوردها را می توان از راه دور، کنترل، هر چند فاصله گسترده به نتایج وسیله نقلیه در زمان تاخیر زمانی بین انتقال و دریافت یک فرمان است.
?
بازی های ویدئویی
کنسول بازی ویدیویی کنترل های بی سیم استفاده می شود تا این اواخر، به طور عمده به دلیل مشکل درگیر در بازی در حالی که نگه داشتن فرستنده مادون قرمز اشاره کرد در کنسول شده است. اولیه کنترل های بی سیم دست و پا گیر است و زمانی که بر روی باتری های قلیایی شده است، تنها چند ساعت به طول انجامید قبل از آنها مورد نیاز جایگزینی. بعضی از کنترل کننده های بی سیم توسط اشخاص ثالث، در اکثر موارد با استفاده از لینک های رادیویی به جای مادون قرمز تولید شده است. حتی این بسیار متناقض است، و در برخی موارد، تاخیر انتقال، ساخت آنها را عملا بی فایده است. اولین کنترل کننده بازی رسمی بی سیم ساخته شده توسط یک تولید کننده اولین حزب WaveBird برای نینتندو گیمکیوب بود. در نسل فعلی کنسول های بازی، کنترل کننده های بی سیم در حال حاضر استاندارد.
برخی از کنترل های بی سیم مانند PS3 سونی و نینتندو، استفاده از بلوتوث است. دیگر، مانند ایکس باکس 360، استفاده از پروتکل اختصاصی بی سیم.
کنترل PC
موجود مادون قرمز کنترل از راه دور را می توان مورد استفاده قرار گیرد برای کنترل برنامه های کاربردی PC. هر برنامه ای که با پشتیبانی از کلید های میانبر را می توان از طریق کنترل های از راه دور مادون قرمز از دستگاه های دیگر (TV، VCR، AC) کنترل می شود. [نیازمند منبع] این است که به طور گسترده ای استفاده می شود [نیازمند منبع] با برنامه های چند رسانه ای برای PC بر اساس صفحه اصلی سیستم های تئاتر است. برای این کار، نیاز به یک دستگاه که رمزگشایی سیگنال های IRکنترل از راه دور داده ها و نرم افزار PC که به این دستگاه متصل شده به PCارتباط برقرار است. ارتباط می تواند از طریق پورت سریال، پورت USB و یا اتصال IRDAمادربرد ساخته شده است. دستگاه به صورت تجاری در دسترس هستند اما می تواند خانه ساخته شده با استفاده از کنترل هزینه کم خرد است.
LIRC(لینوکس IR کنترل از راه دور) و برنده LIRC (برای ویندوز) بسته های نرم افزاری توسعه یافته برای هدف از کنترل تلویزیون از راه دور با استفاده از PC و همچنین می تواند برای گشتن از راه دور با تغییر کمتر استفاده می شود.
عکاسی
کنترل از راه دور در عکاسی استفاده می شود، به ویژه در طولانی مدت قرار گرفتن در معرض عکس های.
قدرت آماده به کار
دستگاه کنترل به وسیله کنترل از راه دور بی سیم تبدیل شده است، باید همیشه تا حدودی، مصرف قدرت آماده به کار باشد.
مدار گیرنده
?
مدار فرستنده