پردازنده ها

پردازنده ها:
تو این بخش یه توضیح اجمالی درباره ی کلیت پردازنده(CPU,CentralProcessUnit) ها میدم و بعد پردازنده هایی که باهاشون کار داریم رو معرفی میکنم. این که تموم شد میریم سراغ خود اسمبلی!!

سیستم های مبتنی بر پردازنده ها به طور کلی به این صورت کار میکنند:
داده ها رو از بخش ورودی میگیرند، طبق برنامه ای که به پردازنده داده شده روی داده پردازش رو انجام میدند، اطلاعات که همون داده ی پردازش شده هست رو در خروجی که داخل برنامه مشخص شده قرار میدند.
این عکس کوچک شده است . جهت مشاهده کامل در اندازه واقعی اینجا کلیک کنید. این تصویر در اندازه 954x249 و حجم آن 10 KB می باشد.


پیاده سازی این عمل در واقعیت احتیاج به یک سری ابزار داره که پردازنده ها به اونا تجهیز شدند:
اجزای پردازنده:
1- برای دریافت ورودی یا ارسال خروجی در پردازنده ها بخشی در نظر گرفته شده به نام گذرگاه داده (Data Bus) . پیاده سازیش در واقعیت یک سری پین هست. این پین ها در واقع هر کدوم سر یک سیم هستند که با صفر یا یک بودن این سیم ها اطلاعات با پردازنده رد و بدل میشه. اهمیت این گذرگاه در تاثیرش روی سرعت پردازنده هست. اگه پردازنده ای 8 تا از این پین ها
داشته باشه، در هر سیکل زمان 8بیت اطلاعات رو میتونه پردازش کنه، اصطلاحا میگند پردازنده 8بیتی هستش. این گذرگاه تنها راه ورود و خروج اطلاعات به پردازنده هست. پس CPU یا همون پردازنده از کجا بفهمه که در این لحظه ی خاص داده هارو از کجا بخونه یا کجا بنویسه؟؟
این عکس کوچک شده است . جهت مشاهده کامل در اندازه واقعی اینجا کلیک کنید. این تصویر در اندازه 734x323 و حجم آن 10 KB می باشد.


2- در جواب این سوال در cpu بخشی در نظر گرفته شده به نام گذرگاه آدرس(Address Bus) که این گذرگاه هم یک سری پین هست که عددی که تولید میکنه آدرس پورتی هست که اطلاعات با اون رد و بدل میشه. مثلا پردازنده ای که 20 پین آدرس داره میتونه 20^2 آدرس تولید کنه.
3- در عکس دو پین دیگه هم هست با نام های RD و WR. میتونید رابطشونو با گذرگاه آدرس پیدا کنید؟؟ اگه نتونید جواب این سوالو پیدا کنید دیگه تاپیک رو ادامه نمیدم!!! یه کم فکر کنید، هر چی به ذهنتون رسید بگید.
راهنمایی این که باس داده دوطرفه هست، یعنی هم میتونه داده بگیره و هم اینکه بده.
4- واحد محاسبه و منطق(ALU,ArithmeticLogicUnit) : انجام عملیات ریاضی مثل جمع، تفریق و .. و عملیات منطقی مثل AND,OR,... توسط این واحد انجام میشه.
5- واحد کنترل (CU,ControlUnit) : کار این بخش کنترل بقیه اجزا است، یکی از مهمترین کارهاش رمزگشایی دستور هست. تو این بخش مراحلی که برای اجرای هر دستور باید انجام بشه ذخیره شده. مثلا در کامپیوتر عمل تفریق توسط عمل جمع انجام میشه. یعنی وقتی برنامه در cpu به دستور SUB میرسه در این واحد یک سری مراحل که عمل جمع هم جزوش هست پیگیری میشه. کی میتونه این مراحلو توضیح بده؟ یکی بده چون من قصد ندارم بدم!!
این عکس کوچک شده است . جهت مشاهده کامل در اندازه واقعی اینجا کلیک کنید. این تصویر در اندازه 711x440 و حجم آن 11 KB می باشد.


6- ثبات(Register) ها که در واقع حافظه های داخلی cpu هستند و برای کارهای مختلف تو برنامه استفاده میشند.
7- پرچم(Flag) ها که هر کدوم یک بیت هستند که بر اساس صفر یا یک بودن اونا خود cpu یا روند برنامه تصمیم گیری میکند. مثلا پرچمی به نام Zero Flag وجود دارد که نشان میدهد که نتیجه ی آخرین عملیات صفر بوده.

این بخش ها رو تو مبحث بعدی به صورت تخصصی تر روی cpu که میخوام اسمبلی شو بهتون یاد بدم بیشتر توضیح میدم.

خوب، اینم پیشنیازها، تو مبحث بعدی میرسیم به 8086 و بعد از اون میتونیم شروع کنیم به برنامه نویسی!

2 تا سوال کردم، اگه میخواید تاپیک ادامه پیدا کنه جواب بدید، نترسید که جوابتون اشتباه باشه، مهم اینه که فعال باشید وگرنه بعد 2 تا مبحث دیگه ناخودآگاه اوت میشید!!!