فی بوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی بوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلود مقاله جزوة‌ درس ساختار و زبان ماشین

اختصاصی از فی بوو دانلود مقاله جزوة‌ درس ساختار و زبان ماشین دانلود با لینک مستقیم و پر سرعت .

 

 

 

پیشگفتار
در اوایل دهه 60 میلادی ایالات متحده در آستانه شکل گیری تکنولوژی نوینی در مهندسی برق بود. ترانزیستور که کمی پس از پایان جنگ جهانی دوم توسط سه دانشمند در آزمایشگاههای کمپانی بل ابداع شده بود، کم کم جایگزین رقیبش لامپ خلا می شد.
در سال 1968 رابرت نویس و گوردون مور، دو نفر از پایه گذاران اصلی کمپانی فیرچایلد شرکت جدیدی موسوم به اینتل تاسیس نمو دند. در سال 1969 یک شرکت ژاپنی سازنده ماشین حساب, به آنها سفارش یک آی سی خاص برای ماشین حسابهای جدید خود داد و یک پردازنده مرکزی (CPU) چهار بیتی بر روی یک تراشه ساخته شد و بدین ترتیب خانواده IC های اینتل 4000 متولد گردید. این روند ادامه پیدا کرد و در سال 1972, آی سی هشت بیتی 8008 , پس از آن 8080 , 8085 ودر اواخر دهه1970 چند میکروپروسسور 16 بیتی به بازار عرضه شد .
این تحول تا امروز ادامه داشته است و میکروپروسسورهای 32 بیتی و 64 بیتی(پنتیوم) پا به عرصه وجود گذاشته‏اند. اکثر میکروکامپیوتر های اولیه به صورت کیت فروخته می شدند و برای انجام کاری خاص, باید به زبان ماشین برنامه ریزی می شدند و قابلیت تولید انبوه را نداشتند, تا اینکه در1982 شرکت IBM برای اولین بار شروع به فروش کامپیوترهای شخصی نمود و امروزه شاهد جهش های ناباورانه ای در زمینه رشد تکنولوژی وقا بلیت های کامپیوترهای شخصی هستیم.

 

گردآورنده

 

مقدمه

 


این مجموعه به بررسی مبانی تکنولوژی ریز پردازنده‏ها می پردازد و به عنوان یک منبع درسی, برای درس ساختار و زبان ماشین در نظر گرفته شده است. تمرکز ما در این کتاب، فهم اجزاء سخت افزاری یک سیستم میکروکامپیوتر و نقش نرم افزار در کنترل سخت افزار است.
قسمت عمده آنچه در این مجموعه ملاحظه می شود, از بخش های مختلف چند کتاب و نیز جزوه درس ساختار و زبان ماشین گردآوری شده است. در این مجموعه به بررسی میکروپروسسور هشت بیتی" شریف"، میکروپروسسور هشت بیتی 8085 , میکروکنترلر هشت بیتی 8051 و در انتها به اختصار به میکروکنترلر AVR می پردازیم. البته در مورد میکروپروسسور" شریف"، به دلیل آنکه صرفا یک مدل برای یادگیری و آشنایی اولیه است, به سخت افزار چندانی پرداخته نمی شود. دو مورد بعدی که از میکروپروسسور های واقعی و ساخت شرکت اینتل هستند بطور مفصل تر مورد بررسی قرار می گیرند. یادآوری می نمایدکه تاکید بر ساختار سه باسه( CPU های استفاده کننده از سه باس) است که در فصل های بعدی بهنگام افزودن حافظه و I/O به کار می آید، به همین منظور, در فصل اول به معرفی باس می پردازیم. همچنین، در این درس به آی‏سی‏های پشتیبان ویژه 8085 و روشهای I/O ی سری خواهیم پرداخت. همچنین، به اختصار به معرفی فلسفه و توری پایه DMA و AVR می پردازیم.

 


فصل اول
باس‏‏ها و اجزای داخلی یک کامپیوتر

 


در این فصل ابتدا با باس‏ها و زمان‏بندی عملکرد صحیح آنها, مطالبی از قبیل سه‏حالته و امکان اتصال خروجی‏های چند گیت به یکدیگر آشنا خواهیم شد. ادامه این فصل به سایر اجزای اصلی کامپیوتر(CPU) اختصاص دارد.

 

1-1 باس‏ها و عملکردشان

 

باس را می‏توان یک مجموعه خط(سیم) برای انتقال داده بین یک ارسال کننده داده و یک گیرنده تعریف کرد. معمولا خطوط سیگنالی را که با یکدیگر وجه مشترکی دارند پهلوی هم گذاشته و آن را یک باس می نامیم. به این ترتیب باس داده, باس آدرس و باس کنترل و غیره را به دست می‏آوریم. در یک طراحی مناسب, باید مسائلی از قبیل مصونیت در مقابل نویز, اثرهای بارگذاری ac و dc, انعکاس ناشی از پالس های منطقی سریع و نیز تداخل بین هادی‏‏های موازی باید در نظر گرفته شوند. ولی، از آنجا که ما در این درس درصدد پرداختن به جنبه الکترونیک عناصر نیستیم، از بحث در باره این مسائل صرف نظر می کنیم.
1-1-1 باس نوع اول

 

روی باس نوع 1, یک فرستنده سیگنال و یک گیرنده داریم. از آنجا که میکروپروسسورها با استفاده از تکنولژی MOS ساخته شده اند و توانایی جریاندهی شان بسیار محدود است, به عنوان یک قاعده کلی هرگاه بار روی باس از توانایی جریاندهی میکروپروسسور بیشتر باشد, یا گیرنده در برد اصلی نباشد بافر لازم است. منظور از بافرکردن باس, اتخاذ روشی برای اطمینان از انتقال سطوح منطقی معتبر بر روی باس است.
شکل 1-1 چند نوع بافر متداول را نشان می دهد. آی سی هایی از خانوادة TTL مانند 74LS245 و 4LS244 این جنبه گیرا را دارند که در هر آی‏سی هشت بافر وجود دارد. معمولا نه تنها بافر کردن فرستنده, که بافر کردن ورودی گیرنده ها نیز سودمند است, زیرا این کار مقدار بارهایی را که می توانند روی باس قرار بگیرند بسیار زیاد می‏کند. در مورد این دو آی‏سی در بخش 1-1-3 بیشتر توضیح داده شده است.

 

 

 


شکل 1-1 باس نوع یک
تمام بافرهای شکل 1-2 توانایی سه حالته بودن را دارند, به این معنی که علاوه بر دو حالت 0 و1 منطقی, یک حالت سوم هم می‏توانند داشته باشند. این حالت سوم در واقع حالت امپدانس بالا یا مدار باز است. بافرهای سه حالته اجازه می‏دهند چند فرستنده یک خط باس را کنترل کنند. اگر تمام فرستنده‏ها بجز یکی در حالت امپدانس بالا قرار گیرند هیچ تداخلی پیش نمی‏آید. این خاصیت در مورد باس نوع سوم مورد استفاده قرار می‏گیرد.
1-1-2 باس نوع دوم

 

در باس نوع 2, چند فرستنده و یک گیرندة سیگنال داریم. این نوع باس را نمی‏توان با گیت‏های TTL استاندارد ساخت. شکل 1-2 دلیل این امر را نشان می‏دهد. تا وقتی هر دو فرستنده می‏خواهند مقدار منطقی یکسانی روی خط قرار دهند, اشکالی پیش نمی‏آید. ولی همین که خروجی یکی 1 و یکی 0 باشد, باس وضعیت مبهمی پیدا می‏کند و بدتر اینکه امکان دارد از گیتی با خروجی 1 جریان زیادی وارد گیتی با خروجی 0 شود و هر دو گیت آسیب می ببینند. این وضعیت, نزاع بر سر باس نام دارد.

شکل 1-2 باس نوع دو
یک راه برای حل این مشکل استفاده از گیت‏های سه حالته به عنوان فرستنده است. با فعال کردن تنها یک فرستنده در هر زمان, نزاع بر سر باس ختم می‏شود. مساله‏ای که این راه حل به وجود می‏آورد یک مدار منطقی اضافه‏ای است که برای اطمینان از فعال کردن فقط یک فرستنده در هر زمان باید به کار برده شود.
راه حل دیگر استفاده از باس کلکتور باز (درین باز) شکل 1-3 است. در این طرح خروجی فرستنده‏ها, کلکتور باز است.یعنی اینها می‏توانند با اشباع کردن ترانزیستور خروجی‏شان, ولتاژ باس را به صفر بکشند, ولی برای رساندن ولتاژ باس به 1, به یک مقاومت بالابر(ولتاژ) خارجی احتیاج داریم. مثالی از این دست, NAND کلکتور باز 7401 است.
عیب این نوع باس این است که نمی‏توان تعیین کرد که کدام فرستنده باس را صفر کرده است. به این ترتیب پروسسور مجبور است وضعیت (خروجی ها) را بخواند تا بتواند وسیله فعال کننده را بیابد, این روش, همه‏پرسی نام دارد.

شکل 1-3 باس نوع 2 با دروازه های کلکتور باز
البته در بسیاری حالات لازم نیست CPU بداند چه وسیله‏ای باس را صفر کرده است, مثلا حالت انتظار که از طرف یک حافظه کند که نمی‏تواند به سرعت داده مورد تقاضای CPU را فراهم آورد درخواست می‏شود. در این حالت اینکه کدام حافظه تقاضای انتظار کرده مهم نیست.
1-1-3 باس نوع سوم

 

باس نوع3, یک باس دو جهته است که روی آن چند ین فرستنده وچند گیرنده قرار دارد.
متداولترین مثال, باس داده در یک سیستم میکروپروسسوری است. شکل 1-4 جهت عبور داده از یک وسیله ورودی به CPU را نشان میدهد. توجه کنید که تمام فرستنده‏ها به صورت گیت‏های سه حالته وتمام گیرنده‏ها به صورت لچ شامل فیلیپ‏ فلاپهای D نشان داده شده‏اند.
لزوم سه حالته بودن فرستنده‏ها باید روشن باشد. در هر زمان تنها باید یک فرستنده, کنترل باس را در دست داشته باشد، اما ممکن است لزوم لچ داشتن گیرنده چندان واضح نباشد. چیزی که باید به یاد داشته باشیم این است که داده برای مدت کوتاهی روی باس قرار می‏گیرد. به عنوان مثال، هنگام اجرای یک دستور ورودی در سیکل M1 روی باس

شکل 1-4 جهت عبور داده بر روی یک باس دو جهته
داده آپ کد دستور IN وجود دارد. (مراحل اجرای یک دستور در فصل‏های بعدی به تفضیل شرح داده خواهد شد) در سیکل ماشین بعدی این باس آدرس دریچه ورودی/خروجی را دارد. در سیکل ماشین سوم وسیله ورودی فعال شده و داده را روی باس قرار می‏دهد. چون هر سیکل ماشین تنها چهار یا پنج سیکل ساعت طول می‏کشد, هر گیرنده باید موقعی که نوبتش است داده را سریعا در لچ خود قرار دهد.
مساله اصلی باس3 همین است؛ چطور یک گیرنده یا فرستنده می‏فهمد که نوبتش رسیده است؟
پاسخ این سوال به روشهای کدگشایی باس آدرس وکنترل برمی‏گردد, این روشها را در آینده به تفضیل خواهیم دید؛ ولی ایده به حد کافی ساده است. در واقع زمان‏بندی عملکرد این باس از این قرار است : اگر خط خواندن I/O باس کنترل فعال است, و آدرس ما روی باس آدرس قرار دارد, نوبت ماست که داده را روی باس قرار دهیم و باید فرستنده سه حالته خود را فعال کنیم. البته باز هم بافر نیاز است. شکل 1-5 روش کار را نشان می‏دهد. برای هر خط دو گیت سه حالته با خطوط Enable, READ و WRITE مجزا لازم است. سیگنالهای فعال کننده را باید از باس کنترل میکروپرسسور گرفت.

 

 

 


شکل 1-5 بافر باس دو جهت. در هر زمان فقط یک دروازه فعال می شود
بعضی از انواع متداول این بافرها در شکل 1-6 نشان داده شده است. از این میان 74LS245 برای این کاربرد بسیار مناسب است؛ چون این آی‏سی هشت زوج سه حالته با خطوط کنترل مجزای Enable و انتخاب جهت دارد.

شکل 1-6 فرستنده گیرنده های متداول برای بافر کردن باس داده میکروپروسسور
همچنین در مورد لچ‏ 74LS373 , برای جدا کردن خطوط آدرس و داده در 8085 که مالتی‏پلکس شده‏اند لازم است. '373 (فرم اختصاری 74LS373 , درادامه مورد این نوع نمایش بیشتر توضیح خواهیم داد), هشت فیلیپ فلاپ با یک ورودی مشترک فعال بالا دارد. وقتی سیگنال ALE یک است خطوط AD0 تا AD7 بخش مرتبه پایین آدرس را حمل می‏کند. نیز لچ 74LS374 برای اتصالاتی از قبیل 8085 به خروجی‏هایی مانند LED مناسب است. هر دو لچ, با یک شدن OE, خروجیهایشان امپدانس بالا می‏شود. '373 دارای 20 پایه است, 8 پایه آن به عنوان ورودی و8 پایه به عنوان خروجی تعریف شده‌اند. علاوه بر این 16 پایه، یک پایه ورودی OE نیز وجود دارد که اگر فعال شود ورودی لچ را به خروجی مدار مجتمع متصل می کند و اگر اکتیو نباشد خروجی به حالت شناور می‌رود. پایه‌ دیگر این IC ، ورودی Clock است که با علامت اختصاری CLK نمایش داده می‌شود. CLK، ساعت سیستم (پالس مربعی با فرکانس ثابت) است. این پالس مربعی توسط یک کریستال تولید می شود. این پایه‌ها در شکل 1-7 نشان داده شده اند. این IC، حساس به سطح است یعنی در طول مدت زمانی که CLK اکتیو است، IC ورودی را به خروجی منتقل می‌کند. '374 مشابه '373 است، تنها تفاوتش در این است که این IC، حساس به لبه است یعنی زمانی که CLK، از صفر به یک می‌رود سیگنال ورودی به خروجی منتقل می‌شود. این پایه‌ها در شکل 1-8 نشان داده شده اند.
در این قسمت به نامگذاری و علامت اختصاری IC ها اشاره‌ای می‌کنیم. مثلاً چرا 74LS373 را با '373 نشان می‌دهند؟ IC ها به گروه های مختلفی تقسیم می شوند وهر IC در یک گروه قرار می‌گیرد. IC‌ های هم گروه IC‌ هایی هستند که چند حرف اول نامشان شبیه به هم است ولی تفاوت درحروف آخرشان است. بنابراین به جای تکرار حروف مشابه, علامت (') می‌گذاریم؛ مثلاً در گروه IC هایی که با 74 شروع می‌شوند، نامهایی از قبیل 74L ، 74LS ،‌74H، 74C، 74AC، 74S و... دیده می شود که هر کدام معرف خصوصیتی هستند.
بعنوان توضیح, 74LS که یکی از متداولترین گروههاست, Lاش به خاطر این است که فعال پایین است یعنی با صفر فعال و با یک غیر فعال می‌شود و S اش به خاطر این است که Shot key است یعنی سرعت عملکرد آن بالاست. و یا 74H، High power است و 74C به خاطر این است که از CMOS در این IC استفاده شده است. به عنوان مثالی دیگر بجای اینکه بنویسیم 00 74HC می‌نویسیم : 00 ' و... .


شکل 1-7 آی‏سی 74LS373 شکل 1-8 آی‏سی 74LS374

 

همچنین’138 (74LS138)یک دکودر 3 به 8 پرکاربرد است وخروجی‌های این دکودر، فعال پایین می‌باشند. سه ورودی Enable داردکه E1 وE2 باید Low باشند وE3 باید High باشد تا IC فعال باشد. 3 پایه دیگر انتخابگرها هستند و 8 پایه هم به عنوان خروجی تعیین شده‏اند. خروجیها توسط ترکیبی از سه ورودی توانا کننده فعال می‌شوند. ورودی‌های فعال کننده به پایه‌های A، B وC آی سی اعمال می‌شوند و با دیکد شدن ورودی‌ها خروجی مورد نظر فعال می‌شود. این خروجیها می‌تواند به فعال کننده‌ یک تراشه مثلRAM, ROM و... وصل شود. بنابراین با این IC می‌توانیم 8 تراشه را فعال یا غیر فعال کنیم. مثلاً اگر عدد 010 را به پایه‌های انتخابگر بدهیم خروجی 2 فعال می‌شود و به همین ترتیب برای 8 خروجی دیگر. شماتیک این IC مطابق شکل 1-9 است.

شکل 1-9 آی‏سی 74ALS138
مورد دیگر (74LS244)’244است. این قطعه شامل 8 خط بافر فعال بالا می‏باشد. خروجی آن سه حالته است، 0, 1 وحالت امپدانس بالا (Z)؛ این قطعه 8 پایه ورودی و8 پایه خروجی و 2 پایه Enable دارد. پایه‏های بافر به دو گروه تقسیم بندی می‏شوند، گروه یک شامل پایه‏های A0,A1,A2,A3 و است و اگر فعال باشد ورودی‏ها (A0-A3) در خروجیها (Y0-Y3) ظاهر می‏شوند وگرنه خروجی ها (Y0-Y3) به حالت Z می‏روند.
گروه دو شامل پایه‏های A4,A5,A6,A7 و است و اگر فعال باشد ورودی‏ها (A4-A7) در خروجیها (Y4-Y7) ظاهر می‏شوند وگرنه خروجی ها (Y4-Y7) به حالت Z می‏روند. این بافر در شکل 1-10 مشاهده می‏شود.
74LS245 هم یک بافر مانند 74LS244 است, با این تفاوت که دو طرفه است.

 


شکل 1-10 آی‏سی 74ALS244
1-2 ثبات‏ها
همه میکروپروسسورها معمولا دارای چندین ثبات‏ هستند. مثلا 8085 شش رجیستر همه منظوره هشت بیتی با نام‏های B, C, D, E, H و L دارد. همچنین دارای دو رجیستر خاص است, یکی A (آکومولاتور یا انباره) و دیگری رجیستر F (رجیستر پرچم) که این دو نیز هشت بیتی هستند. نیز دو رجیستر 16 بیتی با نامهای SP و PC دارد. رجیستر PC شمارنده برنامه است و طول آن (16 بیت) با باس آدرس 8085 سازگار است. شمارنده برنامه آدرس دستورالعمل بعدی را کهCPU از حافظه احضار می‏کند, نگه می دارد. این قضیه در مورد 8051 و ماشین شریف هم همین طور است. رجیستر SP اشاره‏گر پشته نامیده می شود. این رجیستر نیز یک آدرس 16 بیتی را در خود نگه می دارد, ولی این آدرس به بخش خاصی از حافظه موسوم به پشته اشاره می کند. از بخش پشته می‏توان به عنوان تعداد تقریبا نامحدودی رجیستر خارج از آی‏سی استفاده کرد. البته فلسفه اصلی تعریف پشته, حفظ آدرس برگشت هنگامی که یک زیر برنامه(سابروتین) صدا زده می‏شود, می‏باشد.
توضیح در مورد رجیستر F اینکه, در 8085 این رجیستر شامل پنج پرچم وضعیت و سه بیت تعریف نشده است؛ در واقع این پرچم‏ها فلیپ فلاپهای 1 بیتی هستند که می‏توانند یک یا صفر باشند. در حالت کلی بعضی دستورالعمل‏های 8085 بر تمام یا بعضی از آنها تاثیر دارد و بعضی از دستورالعمل‏ها نیز بر هیچ کدام تاثیر ندارند. این پنج پرچم عبارتند از:
CY (رقم نقلی) : اگر در جمع, رقم نقلی تولید شود یا اجرای دستور تفریق مستلزم رقم قرضی (borrow) شود این پرچم set در غیر این صورت reset می شود.
P (توازن) : اگر تعداد بیتهای حاصل یک عمل زوج باشد این پرچم set در غیر این صورت reset می شود.
AC (رقم نقلی کمکی) : اگر دستورالعملی باعث ایجاد رقم نقلی از بیت 3 به 4 شود, این بیت set در غیر این صورت reset خواهدشد.
Z (صفر) : اگر نتیجه یک دستورالعمل مقدار صفر باشد این پرچم set در غیر این صورت reset می شود.
S (علامت) : اگر با ارزش ترین بیت حاصل یک عمل 1 باشد, این پرچم set در غیر صورت reset می شود.
وضعیت در مورد 8051 و شریف نیز مشابه است که در جای خود توضیح داده خواهد شد.

 

1-3 واحد محاسبه و منطق(ALU)
واحد ALU که به آن واحد محاسبه و منطق‌گویند دو ورودی می‌گیرد یکی آکومولاتور و دیگری رجیستر Temp ؛ پس از انجام عمل خواسته شده (که از طریق پایه‌های کنترلی به این واحد دستور داده می‌شود) خروجی را تحویل می‌دهد. این واحد هم اعمال محاسباتی و هم اعمال منطقی را انجام می‌دهد. مثلاً برای جمع دو عدد 11 و20 , یکی از این اعداد در آکومولاتور ذخیره می شود و عدد دیگر به رجیستر کمکی Temp انتقال می‌یابد، پس از محاسبه در خروجی ALU عدد 31 قرار می‌گیرد.

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله  140  صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلود مقاله جزوة‌ درس ساختار و زبان ماشین