PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله ساختمان داخلی يک پردازنده



آبجی
4th November 2009, 09:40 AM
به منظور آشنائی با نحوه عملکرد یک ریزپردازنده، در حالت کلی، لازم است نگاهی به ساختمان داخلی يک ريزپردازنده بیندازیم و با نحوه عملکرد آن بيشتر آشنا شويم. يک ريزپردازنده مجموعه ای از دستورالعمل ها را اجراء می کند. این دستورالعمل نوع عمليات مورد نظر را برای ریزپردازنده مشخص خواهند کرد. با توجه به نوع دستورالعمل ها، يک ريزپردازنده سه عمليات اساسی را انجام خواهد داد :
1 - يک ريزپردازنده با استفاده از واحد محاسبات و منطق خود (ALU) قادر به انجام عمليات محاسباتی نظير: جمع، تفريق و عملیات منطقی نظیر and و غیره ؛که بر روی بیت ها انجام می گیرد؛ است. ریزپردازنده های جديد دارای پردازنده های اختصاصی برای انجام عمليات مربوط به اعداد اعشاری نیز می باشند.
2 - يک ريزپردازنده قادر به انتقال داده از يک محل حافظه به محل ديگر است .
3 - يک ريزپردازنده قادر به اتخاذ تصميم (تصميم گيری) و پرش به يک محل ديگر برای اجرای دستورالعمل های مربوطه بر اساس تصميم اتخاذ شده است .

http://www.microrayaneh.com/Articles/Aimages/Cpu_Diagram.jpg
توضیح اجزاء شکل :
●گذرگاه آدرس (Address Bus ) که آدرس از طرف ریزپردازنده بر روی این گذرگاه قرار می گیرد. اصطلاحات اجزاء این شکل در سایر مقالات (http://www.microrayaneh.com/Articles/ArticlesList.htm) سایت میکرورایانه (http://www.microrayaneh.com/) آمده است. ریزپردازنده قادر به ارسال آدرس به حافظه یا مدارات جانبی جهت تعیین دستگاه ورودی- خروجی است. تعداد بیتهای آدرس (و بالطبع خطوط گذرگاه آدرس) بستگی به طراحی و نوع ریزپردازنده دارد. مثلا در ریزپردازنده های مختلف گذرگاه فوق 8، 16، 32 بيتی و ... است.
●گذرگاه داده ها (Data Bus ) که داده ها بر روی خطوط این گذرگاه قرار گرفته و از طرف حافظه یا دستگاه ورودی - خروجی به ریزپردازنده ارسال می شود يا از ریزپردازنده به سمت آنها فرستاده می شود.

قرارداد:
قرارداد می کنیم که ریزپردازنده محور نام گذاری برای عناوین ارسال و دریافت داده ها باشد. بنابراین منظور از دریافت داده ها یعنی دریافت به ریزپردازنده و ارسال داده ها یعنی ارسال از طرف ریزپردازنده به سمت دستگاهای I/O. گذرگاه فوق می تواند 8، 16، 32 و ... بيتی باشد.
● يک خط برای صدور فرمان خواندن از طرف ریزپردازنده (RD ) و يک خط برای صدور فرمان نوشتن از طرف ریزپردازنده (WR ) است و فعال شدن هر کدام از طرف ریزپردازنده (به ترتیب) تعیین می نماید که آیا ریزپردازنده در حال ارسال داده یا دریافت داده می باشد.
● خط Clock که پالس های ساعت ورودی به ریزپردازنده را تعیین می کند و ریزپردازنده خود را با پالس های ساعت ورودی به این خط همزمان خواهد کرد.
● يک خط Reset که مقدار شمارنده برنامه را صفر نموده و يا باعث اجرای مجدد يک فرآيند می گردد.
فرض کنيد پردازنده هشت بيتی بوده واز عناصر زير تشکيل شده است:
- ثبات (Register)های A,B,C ثبات (نگاهدارنده) هائی بوده که از فليپ فلاپ ها ساخته شده اند.
- Address Latch مشابه ثبات های A,B,C است.
- شمارنده برنامه (Program Counter ) نوع خاصی از يک نگهدارنده اطلاعات است که قابليت افزايش به ميزان يک و يا پذيرش مقدار صفر (یا هر مقدار دیگری) را داراست.
- واحد منطق و حساب (ALU ) می تواند يک مدار ساده جمع کننده هشت بيتی بوده و يا مداری است که قابليت انجام عمليات جمع، تفريق، ضرب و تقسيم را دارا باشد.
- ثبات Test يک نوع خاص نگاهدارنده بوده که قادر به نگهداری نتايج حاصل از انجام مقايسه ها توسط ALU است. ALU قادر به مقايسه دو عدد و تشخيص مساوی و يا نامساوی بودن آنها است. ثبات Test همچنين قادر به نگهداری يک بیت نقلی (Carry bit) ماحصل بیت انتقالی آخرين مرحله عمليات جمع است. ثبات فوق مقادير مورد نظر را در فليپ فلاپ ها ذخيره می کند که در ادامه Instruction Decoder (تشخيص دهنده دستورالعمل ها) با استفاده از مقادير فوق قادر به اتخاذ تصميمات لازم خواهد بود.
- همانگونه که در شکل فوق مشاهده می گردد از شش بافر سه حالته 3-State استفاده شده بافرهای فوق قادر به عبور دادن مقادير صفر و يا يک و يا حالت سوم یعنی قطع خروجی مربوطه می باشند. وجود اين نوع بافرها امکان ارتباط چندين خروجی را از طريق يک مسیر ارتباطی (سیم) فراهم می نمايد. در چنين حالتی فقط يکی از خروجی ها قادر به انتقال (حرکت) صفر و يا يک بر روی خط خواهد بود.
- ريجستر Instruction و Instruction Decoder مسئوليت کنترل ساير عناصر را برعهده خواهند داشت. بدين منظور از خطوط کنترلی متفاوتی استفاده می گردد. خطوط فوق در شکل فوق نشان داده نشده اند ولی مثلا می بايست قادر به انجام عمليات زير باشند:
- به ريجستر A اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاه دارد. (Latch )
- به ريجستر B اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاه دارد. (Latch )
- به ريجستر C اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاه دارد. (Latch )
- به " شمارنده برنامه " اعلام نمايد که مقدار موجود بر روی گذرگاه آدرس را در خود نگاه دارد. (Latch )
- به ريجستر Address اعلام نمايد که مقدار موجود بر روی گذرگاه آدرس را در خود نگاه دارد. (Latch )
- به ريجستر Instruction اعلام نمايد که مقدار موجود بر روی گذرگاه داده را در خود نگاه دارد. (Latch )
- به " شمارنده برنامه " اعلام نمايد که مقدار خود را افزايش دهد.
- به " شمارنده برنامه " اعلام نمايد که مقدار خود را صفر (Reset ) نمايد.
- به واحد منطق و حساب نوع عملياتی را که می بايست انجام گيرد، اعلام نمايد.
- به ريجستر Test اعلام نمايد که بيت های ماحصل عمليات ALU را در خود نگاه دارد.
- فعال نمودن خط RD ( خواندن )
- فعال نمودن خط WR ( نوشتن )

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد