۱- مقدمه اي بر ريزپرازنده
۲- ساختار عمومي ريزپردازنده هاي پيشرفته
۳- معماري ريزپردازنده؟
– مجموعه دستورالعمل هاي ريزپردازنده
– قالب داده ها
– قالب براي دستورالعمل ها
– شيوه هاي آدرس دهي
۴- سلسله مراتب حافظه
– رجيستر فايل
– Cache
– حافظه مجازي و صفحه بندي
– قطعه بندي
– جداول صفحه، TBL،‌ حفاظت
۵- پايپ لاين
– خط لوله دستورالعمل
– مخابرات خط لوله
– پيشگويي انشعاب
– Bypassing يا Result Forwarding
6- (Instruction Level Parallelism) IPL
– ILP چيست؟
– محدودتي هاي ILP
– پردازنده هاي سوپر اسكالر
– اجراي ترتيبي و خارج از نوبت
– Register renaming
– پردازنده هاي VLIW

 

– تكنيك هاي كامپايل براي ILP
7- اصول كامپيوترهاي 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 و ۸۰۱۸۶ و ۸۰۲۸۶
– ۸۰۸۶ و ۸۰۸۸
خانواده موتورولا M68000
– ثبات هاي پردازنده
– قالب هاي داده
– شيوه هاي آدرس دهي
– مجموعه دستورالعمل ها

– مديريت حافظه
ريزپردازنده هاي پيشرفته RISC
– پردازنده DEC Alpha AXP
– معماري آلفا
خانواده Power PC
– معماري Power PC
– IBM RS/6000
خانواده Sparc

– معماري اسپارك
– سوپر اسپارك
خانواده MIPS RX000
– معماري MIPS
– R4400 و MIPS R4000
– خانواده اينتل i86
خانواده موتورولا M88000
– معماري M88000

– معماري MC88110
معماري HP
– معماري
– حافظه

كتاب؟
۱- MicroproGssors & Micro Computers
8086 & Z-80 , John Effenbeck
2- Advanced Computer Architecture , Hwang
3- Advanced Mocrocessor , Daniel Tabak.

مقدمه
در اواسط دهه ۷۰ ريزپردازنده ها ساختار ساده اي داشتند و در اين زمان هر ريزپردازنده از يك واحد پردازشگر مركزي (cpu) و يك تراشه LSI (شامل ۵/۰۰۰ ترازيستور) تشكيل شده بود و با فركانس ۱ تا ۵ مگاهرتز در يك سيستم ۸ بيتي كار مي كرد و اين ريزپردازنده ها داراي ۲ الي ۷ ثبات ۸ بيتي بودند. به خاطر قيمت و بهاي اندك و اندازه كوچك ريزپردازنده ها، در بيشتر سيستم هاي كامپيوتري از آنها استفاده مي شد و به جائي رسيد كه جايگزين سيستم هاي mainframe و ميكروكامپيوترها شدند. با ظهور ريزپردازنده ها هر خانه اي داراي يك كامپيوتر ديجيتالي است.

از دهه ۷۰ به بعد ريزپردازنده ها تغييرات زيادي كرده اند و در دهه ۹۰ ريزپردازنده ها ۳۲ بيتي تا ۶۴ بيتي شدند. و با فركانس هايي از ۲۵ تا ۲۰۰MHZ كار مي كردند و عملاً داراي تراشه هايي با سه ميليون ترازيستور بودند (VISI). اكثر اين ريزپردازنده ها قادر بودند بيشتر از يك دستورالعمل را در يك چرخه اجرا كنند. تمامي ريزپردازنده‌هاي پيشرفته داراي يك تراشه FPU هستند و اكثر آن ها داراي ۱۶تا ۳۲ ثبات همه منظوره در cpu و يك رجيستر فايل با ۳۲ ثبات براي IU و يك رجيستر فايل با ۳۲ ثبات جداگانه براي FPU هستند.

خيلي از ريزپردازنده ها براي عمليات شناور و عمليات صحيح داراي Operational Unit هستند و مقدار قابل توجهي Cache دارند. در اكثر آنها Cache شامل Cache داده و Cache دستورالعمل است . كارآيي ريزپردازنده هاي پيشرفته امروز مساوي يا بيشتر از Mainframe و يا سوپر كامپيوترهاي دوران قبل مي باشد.
تعداد زيادي كارخانه سازنده ريزپردازنده وجود دارد كه داراي ويژگي هاي خاص خود مي باشند و دو گروه از گسترده ترين خانواده ريزپردازنده كه در دهه ۷۰ ساخته شده اند عبارتند از اينتل X86 يا ۸۰X86 و خانواده موتورولا M680X0.

نزديك به دهه ۸۰ ما شاهد يك توسعه موازي روي معماري هاي جديد بوده ايم كه تمايل به كامپيوترهائي با مجموعه دستورالعمل كاهش يافته يا RISC بوده اند. خانواده هاي اينتل X86 و موتورولا M68000 از كلاس غيرRISK يعني كامپيوترهايي با مجموعه دستورهاي پيچيده يا CISC تشكيل شده اند.

اينتل، يك ريزپردازنده ۴ بيتي به نام ۴۰۰۴ در سال ۱۹۷۱ شروع كرد كه در يك ماشين حساب معمولي بكار ميرفت، و به آساني محاسبات BCD را انجام ميداد. در سال ۱۹۷۲ ريزپردازنده ۸ بيتي ۸۰۰۸ توسعه يافت و در سال ۱۹۷۴ يك ريزپردازنده قدرتمند ۸ بيتي به نام ۸۰۸۰ تولد يافت و به

دنبال آن ۸۰۸۵ در سال ۱۹۷۶ به بازار آمد. بخشي از معماري ۸۰۸۵/۸۰۸۰ همانند مجموعه ثبات ها در خانواده X86 همچنان استفاده مي شود. اينتل ساخت ريزپردازنده هاي خانواده X86 را با يك ريزپردازنده ۱۶ بيتي به نام ۸۰۸۶ در ۱۹۷۸ آغاز كرد و عملاً تمامي كارخانه هاي معروف ريزپردازنده هاي ۱۶ بيتي بعد از دهه ۷۰ و تا نزديك دهه ۸۰ از يك تراشه ارزان قيمت و يك گذرگاه خارجي ۸ بيتي با يك معماري داخلي ۱۶ بيتي استفاده مي كردند.
در سال ۱۹۶۹ ريزپردازنده ۸۰۸۰ با باس خارجي ۸ بيتي و گذرگاه داخلي ۱۶ بيتي ايجاد شد و براي گذرگاه داده خود ۵۰% به تراشه هاي مياني كمتري در مقايسه با پردازنده هاي ۱۶ بيتي نياز

داشتند و هزينه آن ها نيز كمتر بود.
در واقع ۸۰۸۰ به پردازنده اصلي شركت IBM روي كامپيوتر هاي شخصي (PC) تبديل و در تمامي توليدات بعدي در جهان منتشر گرديد. به دنبال ۸۰۸۶، تكامل يافته آن يعني ۸۰۱۸۶ ساخته شد كه همان ۸۰۸۶ همراه با تعدادي اينترفيس I/O و واحدهاي منطقي وي يك تراشه بود و تعداد كمي دستورالعمل به آن اضافه شده بود.
وقتي ۸۰۲۸۶ به عنوان يك ريزپردازنده ۱۶ بيتي در سال ۱۹۸۲ شناخته شد، مرحله جديدي در توسعه ريزپردازنده ها پديد آمد كه قابليت Protected mode ناميده شد. اين شويه در تمامي

محصو.لات ديگر خانواده اينتل بكار گرفته شد.
اولين پردازنده ۳۲ بيتي اينتل در سال ۱۹۸۵ بود كه i386 نام داشا. اينتل يك پردازنده ۳۲ بيتي به نام ۴۳۲ كه با خانواده X86 ناسازگار بود را زودتر از دهه ۸۰ بيرون داده بود كه هرگز تجاري نشد. در سال ۱۹۸۹ ريزپردازنده i486 توسعه يافت كه سرعت عملكرد آن در مدل DX2 به ۶۶MHZ ميرسيد. i486 داراي يك واحد FPU و يك Cache به اندازه ۸KB در داخل تراشه است.
محصول بعدي خانواده اينتل پنتيوم بود كه در سال ۱۹۹۳ ساخته شد و قبل از گسترش به آن i586، P5 گفته مي شد اما اينتل تصميم گرفت نام آن را ذپنتيوم بگذارد. پنتيوم يك سوپر اسكالر دو سطحي است يعني دو دستورالعمل را موازي واكشي و كدگشايي و اجرا مي كند و داراي گذرگاه داخلي ۶۴ بيتي و يك cache به اندازه ۱۶KB است (۸K data cache + 8K inst.cache)

اينتل مرتباً روي محصولات بعدي كار مي كرد و P6 ناميده شد كه طبق وعده آن كارآيي پنتيوم را حد اقل ۲ برابر كرد و پس از آن به ترتيب Pentium II، Pentium III و Pentium IV نيز ساخته شدند.
توسعه ريزپردازنده هاي موتورولا نيز شبيه اينتل است. موتورولا در سال ۱۹۷۴ خانواده ۸ بيتي ۶۸۰۰ را ايجاد كرد كه در سال ۱۹۷۷ به يك محصول ۸ بيتي ويژه به نام ۶۸۰۹۶۸۰۹ تبديل شد. موتورولا ذنخستين ريزپردزنده ۱۶ بيتي خود را در سال ۱۹۷۹ به نام M68000 به بازار عرضه كرد. از ويژگي هاي اسم خانواده M68000 آن است كه ريزپردازنده MC68000 به طور پايه اي يك سيستم ۱۶

بيتي با گذرگاه دارد. ۱۶ بيتي و ۱۶ ثبات پردازنده Gaps و شمارنده برنامه ۳۲ بيتي است. در سال ۱۹۸۴ ريزپردازنده ۳۲ بيتي MC60000 ناميده شد. هم چنين موتورولا روايت هاي توسعه يافته محصولات MC68000 را تحت عنوان MC68010 .و MC68012 ايجاد كرد. MC68010 از نظر پايه ها كاملاً با MC68000 سازگار بود بنابراين از نظر طراحي سيستم، يك MC68000 مي توانست با يك MC68010 جايگزين شود.

موتورولا ساخت ريزپردازنده هاي ۳۲ بيتي خانواده M68000 را در سال ۱۹۸۴ با نام MC68020 شروع كرد. اين ريزپردازنده ها در سال ۱۹۷۸ به ريزپردازنده MC68030 و در سال ۱۹۸۹ به MC68040 توسعه پيدا كردند. ۶۸۰۲۰ داراي يك Cache دستور كوچك ۲۵۶ بايتي در داخل تراشه بود. ۶۸۰۳۰ داراي يك حافظه Cache دستور كوچك ۲۵۶ بايتي در داخل تراشه بود. ۶۸۰۳۰ داراي يك حافظه Cache دوگانه نسبتاً كوچك (۲۵۶ data + 256 B inst.) .و ۶۸۰۴۰ داراي Cache 4KB دستور و Cache 4KB داده در يك تراشه مي باشد.

عضو بعدي خانواده M68000 كه در سال ۱۹۹۴ ساخته شد MC68060 نام گرفت كه يك سوپر اسكالر ۲ سطحي با Cache 8KB دستور و Cache داده در تراشه بود و دستورالعمل ها با سرعت ۶۶MHZ كار مي كرد.
البته چندين خانواده از ريزپردازنده ها وجود دارد كه به آن ها اشاره اندكي خواهد شد. مانند Z-80 مربوط به شركت Zilog كه ريزپردازنده معر وف ۸ بيتي است و توسط گروهي از طراحان متخصص اينتل كه ۸۰۸۰ و ۸۰۸۵ را شاخته بودند ايجاد شد و از اينرو Z-80 شبيه معماري اينتل ۸۰۸۰ است ولي زبان اسمبلي هر دو متفاوت مي باشد و Z-80 داراي دستورهاي بيشتري نسبت به ۸۰۸۰ است. شركت Zilog خانواده ۱۶ بيتي خود را با نام Z8000 موازي با اينتل ۸۰۸۶ منتشر كرد و Z80000 يك محصول ۳۲ بود كه به توليد نرسيد.

توسعه ريزپردازنده هاي RISC به شكل مو ازي با اينتل و موتورولا انجام شد. اولين مستندات RISK درز دانشگاه بركلي در سال ۱۹۸۰ توسط Pattersonو Ditzel ارايه شد و لغت RISK توسط كارلو اسكوئين لرپرت اولين مقاله RISK عنوان شد. طراحيس سيستم محاسباتي از نوع RISK بدون استفاده از واژه RISK خيلي پيشتر توسط IBM در دهه ۷۰ آغاز شد كه با نام IBM801 شناخته مي شد. هم چنين دانشگاه استنفورد در سال ۱۹۸۱ سيستم 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 ساخته گرديد. اولين محصول ۶۰۱ است كه در ۱۹۹۱ منتشر شد و به دنبال آن ۶۲۰ با توانائيهاي بيشتري ايجاد گرديد.
Intel 8086

در اين فصل معماري داخلي، شيوه هاي آدرس دهي، مجموعه دستورالعمل ها و تكنيك هاي I/O مرتبط با ريزپردازنده ۸۰۸۶ را معرفي خواهيم كرد.

مقدمه
۸۰۸۶ اولين ريزپردازنده ۱۶ بيتي اينتل بود. طراحي آن بر اساس ۸۰۸۰ ولي مستقيماً با آن سازگار نبود. ۸۰۸۶ با استفاده از فناوري HMOS طراحي شده بود و شامل ۲۹۰۰۰ ترانزيستور بود. ۸۰۸۶ در يك بسته ۴۰ پايه اي قرار داشت و با منبع تغذيه +۵V كار مي كرد. ۸۰۸۶ در سه مد و سرعت مختلف Clock كار مي كند. ۸۰۸۶ استاندارد با فركانس كلاك داخلي ۵MHZ و ۸۰۸۶-۲ و ۸۰۸۶-۴ با فركانس هاي داخلي به ترتيب ۴MHZ , 8 كار مي كنند. به همين دليل از يك مولد / دراپو.ر تراشه مثل Intel 8284 براي توليد سيگنال كلاك ۸۰۸۶ استفاده مي شود. ۸۰۸۶ كلاك خارجي در پايه CLK را به ۳ تقسيم مي كند. اين جمله به اين معني است كه براي كلاك داخلي ۵MHZ، ۸۲۸۴ بايد كلاك خروجي ۱۵MHZ را توليد كند تا به پايه CLK تراشه ۸۰۸۶ متصل شود.

۸۰۸۶ داراي آدرس ۲۰ بيتي است و از اينرو مي توان حداكثر تا ۲۲۰ dh 1MB از حافظهرا آدرس دهي كند. ۸۰۸۶ از حافظه قطعه بندي شده استفاده مي كند. نكته جال توجه در ۸۰۸۶ اين است كه مي تواند حداكثر تا ۶ بايت دستورالعمل را از حافظه پشي واكشي (Pre Fetch) كند و آن ها را به ترتيب به صف كند و بدين ترتيب سرعت اجراي دستورالعمل را بهبود بخشد.
حافظه ريزپردازنده دبر اساس ۸۰۸۶ برحسب بايت پيكره بندي مي شود. هر بايت مي تواند منحصراً با آدرس هاي ۲۰ بيتي ۰۰۰۰۰۱۶->FFFFF16 آدرس دهي شود. هر كلمه ۱۶ بيتي ۸۰۸۶ شامل هر دو بايت مجاور يكديگر است. بايت آدرس كمتر (L.O.B) و بايت آدرس بيشتر (H.O,B) به شكل زير مي باشند:
بايت با ارزش كمتر بايت با ارزش بيشتر
۰۷H 26H
آدرس ۰۰۵۲۰۱۶ آدرس ۰۰۵۲۱۱۶
بنابراين كلمه ۱۶ بيتي ذخيره شده در آدرس زوج ۰۰۵۲۰عبارت است از: ۲۶۰۷۱۶
اكنون كلمه اي را با آدرس فرد در نظر بگيريد:
L.O.B H.O.B
OSH 3FH
آدرس ۰۱۲۵۷۱۶ آدرس ۰۱۲۵۸۱۶
كلمه ذخيره شده در آدرس فرد ۰۱۲۵۷۱۶ عباتست از ۳FOSH
معماري ۸۰۸۶
شكل زير نمودار بلكوكي معماري داخلي ۸۰۸۶ را نشان مي دهد:

همانظوري كه در شكل مي بينيم، ريزپردازنده ۸۰۸۶ از نظر داخلي به دو بخش تابعي جدا تقسيم مي شود. اين دو بخش واحد واسط گذرگاه (BIU) و واحد اجرا (Eu) مي باشند. واحد BIU دستورها را واكشي مي كند، داده ها را از حافظه و پورت ها ميخواند و داده ها را به حافظه و پورت هاي I/O مي نويسد. Eu دستورهايي را كه اخيراً توسط BIU واكشي شده اند را اجرا مي كند.

وظايف واحدهاي BIU و Eu از يكديگر مستقل هستند. BIU پردازنده ۸۰۸۶ را به دنياي بيرون مرتبط مي سازد. BIU تمامي عمليات گذرگاه خارجي را آماده مي سازد. BIU شامل ثبات هاي سگمنت، اشاره گر به دستور (IP)، صف دستورالعمل و مدارهاي كنترل گذرگاه و توليد آدرس مي باشد و اعمالي چون واكشي و صف بندي دستورها و كنترل گذرگاه را انجام ميدهد.
جهت دستور BIU به شكل FIFO است و گروهي از ثبات هايي است كه شامل ۶ بيات كد دستور واكشي شده از جافظه هستند. اين امر با توجه به تسريع (Speedup)، اجراي برنامه را با

همپوشاني (Over latting) واكشي دستور با اجرا انجام ميدهد. اين مكاميزم را به عنوان پايپ اوين مي شناسيم. چنانچه صف پر باشد و Eu براي دستيابي بحافظه درخواستي به BIU ندهد، BIU هيچ سيكل گذرگاهي را انجام نمي دهد. از طرف ديگر، اگر BIU پر نباشد و حداقل بتواند دو بايت را ذخيره سازد و Eu درخواستي را براي دستيابي بحافظه ندهد، BIU مي تواند دستورالعمل ها را پيش واكشي كند. هرچند كه اگر BIU براي دستيابي بحافظهع توسط Eu وقفه داده شود درحاليكه BIU در حال پردازش واكشي يك دستورالعمل باشد، BIU ابتدا واكشي را كامل مي كند و سپس

به Eu سرويس مي دهد. چنانچه دستوري مانند Jump يا Subroutine Call داشته باشيم، BIU صف را reset ميكند و پر كردن مجدد را پس از ارسال دستور جديد به Eu از نو شروع خواهد كرد.
همانطوري كه مي بينيم BIU شامل يك جمع كننده اختصاصي است كه براي توليد آدرس ۲۰ بيتي استفاده مي شود. منطق كنترل گذرگاه BIU تمامي سيگنال هاي كنترل گذرگاه همچون سيگنال هاي خواندن و نوشتن را براي حافظه و I/O توليد مي كند.

BIU داراي چهار ثبات سگمنت ۱۶ بيتي است. اين ثبات عبارتند از:
• ثبات سگمنت كد (CS) (2 بايت) ۲۸=۲۵۶
• ثبات سگمنت داده (DS)
• ثبات سگمنت پشته (SS)
• ثبات فوق العاده (ES)

حافظه يك مابايتي ۸۰۸۶ به سگمنتهايي حداكثر تا ۶۴KB تقسيم يمشود. ۸۰۸۶ مي تواند مستقيماً چهار سگمنمت را در يك زمان ويژه (۲۵۶ كيلوبايت در حافظه يك مگابايتي) آدرس دهي كند. برنامه ها دستيابي به كد و داده را در سگمنت ها با تغيير محتويات ثبات سگمنت براي اشاره كرن به سگمنت هاي مطلوب، فراهم مي سازد. تمامي دستورالعمل هاي جافظه بايد در حافظه اصلي ذخيره شوند كه توسط ثبات ۱۶ بيتي CS و افت ۱۶ بيتي در سگمنتي كه در اشاره گر دستور (IP) 16 بيتي گنجانده شده به آن ااشره مي شود. BIU آدرس فيزيكي ۲۰ بيتي داخلي را به

وسيله آدرس منطقي فراهم شده توسط برنامه نويس (۱۶ بيت CS و ۱۶ بيت IP) توليد مي شود. اين كار با شيفت منطقي چهار بيتي CS به چپ و افزودن محتواي ۱۶ بيتي IP توليد مي شود. به عبارت ديگر CS توسط BIU براي توليد آدرس فيزيكي ۲۰ بيتي در ۱۶ ضرب مي شود. به اين معني كه تمامي دستورالعمل هاي برنامه نسبت به محتوبات CS در ۱۶ ضرب شده و سپس به آفت به دست آمده از ۱۶ IP بيتي اضافه ميشود.

دقت كميد كه براي آدرس هاي كلمه، برنامه نويس از آدرس هاي مرتبه كمتر (زوج يا فرد) براي مشخص ساختن كلمهع ۱۶ بيتي استفاده مي كند.
۸۰۸۶ هميشه به يك كلمه ۱۶ بيتي به . از حافظه دستيابي پيدا مي كند. ۸۰۸۶ مي تواند در صورتيكه اولين بايت كلمه در آدرس زوج واقع شده باشد، در يك عمليات كلمه ۱۶ بيتي را بخواند. به عبارت ديگر اگر اولين بايت كلكه يك آدرس فرد باشد، ۸۰۸۶ بايد دو دستيابي به حافظه را براي خواندن دو تا بيت متوالي از حافظه انجام دهد. در اين حالت ۸۰۸۶ از بايت يا بايت هايي كه مورد

نظرش نيست صرفنظر مي كند. بطور مثال، دستو.ر ADDR و MOV BX را در نظر بگيريد. دقت كنيد وجود X (H يا L) به دنبال ثبات ۸۰۸۶ نشان دهندة آن است كه انتقال ۱۶ بيتي يا ۸ بيتي است.
اين دسته محتواي مكان حافظه ۲۰ بيتي آدرس دهي شده فيزيكي را كه توسط ADDR آدرس دهي مي شود به ثبات ۱۶ بيتي BX منتقل مي كند. اگر ADDR آدرس ۲۰ بيتي زوج مثل ۳۰۰۲۴۱۶ باشد دستور MOV محتواي BL را با محتواي خانه حافظه ۳۰۰۲۴۱۶ و محتوي ثبات BH را با محتوي

آدرس ۳۰۰۲۵۱۶ در يك بار دستيابي پر مي كند. اما اگر از ADDR در آدرس فرد مثلاً ۴۰۰۰۵۱۶ باشد، دستور فوق BL را با محتواي ۴۰۰۰۵۱۶ در و BH را با محتوي ۴۰۰۰۶۱۶ در دو بار دستيابي حافظه Load مي كند. دقت كنيد ۸۰۸۶ به آدرس ۴۰۰۰۴۱۶ و ۴۰۰۰۵۱۶ دستيابي مي كند ولي محتوي ۴۰۰۰۴۱۶ را كنار مي گذارد و نيز در عمل دوم به ۴۰۰۰۴۱۶ و ۴۰۰۰۷۱۶ دستيابي مي كند ولي محتوي ۴۰۰۰۴۱۶ را كنار مي گذارد و نيز در عمل دوم به ۴۰۰۰۶۱۶ و ۴۰۰۰۷۱۶ دستيابي مي كند ولي از محتواي ۴۰۰۰۷۱۶ چشم پوشي مي كند.

اكنون دستوري مانند ADDR و MOV BH را در نظر بگيريد. اگر ادرس ADDR زوج (مثل۵۰۰۰۲) باشد، اين دستور MOV به هر دو خانه ۵۰۰۰۲ و ۵۰۰۰۳ دستيابي مي كند ولي BH را با محتواي ۵۰۰۰۲ پر كرده و از محتوي ۵۰۰۰۳ صرفنظر مي كند. اما اگر ADDR در آدرس فرد باشد (مثل ۵۰۰۳) دستور MOV ثبات BH را با ۵۰۰۰۳ پر كرده و از ۵۰۰۰۲ صرفنظر مي كند.
خانواده ۸۰۸۶ داراي دو نوع ريزپردازنده ۱۶ بيتي است: ۸۰۸۶ و ۸۰۸۸٫ اختلاف مهم اين است كه پردازنده چگونه با دنياي بيرون ارتباط برقرار مي كند. ۸۰۸۸ داراي يك مسير داده (data patch) 8 بيتي به حافظه I/O است ولي ۸۰۸۶ داراي يك مسير داده خارجي ۱۶ بيتي در حافظه است. البته در بيشتر حالات اين دو پردازنده مشابه هستند. از ۸۰۸۸ در طراحي كامپيوترهاي شخصي IBM استفاده شده است.

۸۰۸۶ مي تواند به شكل يك سستم تك پردازنده كوچك (مي نيمم مد در صورتيكه پايه MN/MX به high تنظيم شود) و يا به شكل يك سيستم چند پردازنده اي (ماكزيمم مد در صوتيكه پايه MN/MX به low تنظيم شود) پيكره بندي مي گردد. در يك سيستم مفروض، پايه MN/MX دائماً به high يا low متصل مي شود. برخي پايه هخاي ۸۰۸۶ داراي توابعي دوگانه بسته به نوع انتخاب سطح ولتاژ پايه MN/MX هستند. در مد مي نيمم MN=MX=high اين پايه ها سيگنال هاي كنترلي را مستقيماً

به حافظه و وسايل I/O انتقال مي دهند. از مد ماكزيمم MN/MX=Low اين پايه ها داراي وظايف متفاوتي براي نسهيلات سيستم هاي مالتي پروسسور است. در مد ماكزيمم توابع كنترلي كه معمولاُ در مد مي نيمم نشان داده مي شوند، فرض مي شود كه به وسيله تراشه اي مثل كنترل گذرگاه ۸۲۸۸ پشتيباني مي شوند.