محمدرضا حقیری | Muhammadreza Haghiri
محمدرضا حقیری | Muhammadreza Haghiri
خواندن ۲ دقیقه·۵ سال پیش

تفاوت معماری و سازمان کامپیوتر

احتمالا اگر کامپیوتر بخونید، بعد از اخذ درس مدار منطقی، درس «معماری کامپیوتر» رو اخذ می‌کنید. معماری کامپیوتر درس جالبیه، یه جورایی کاربرد روتین مدار منطقی رو می‌بینید و «مهندسی سخت افزار» یاد می‌گیرید. اتفاقی که در لایه های پایین کامپیوتر می‌افته رو درک می‌کنید و در نهایت، می‌فهمید که یک کامپیوتر چطور برنامه اجرا می‌کنه و ... .

مفهومی که در بطن این درس نهفته، مفهومیه به نام «سازمان کامپیوتر» که خب، کمتر بهش توجه میشه. در این ویرگول قصد دارم در مورد تفاوت این دو واژه با هم صحبت کنم :)

معماری کامپیوتر چیست؟

معماری کامپیوتر، در واقع عبارت کوتاه شده «معماری مجموعه دستور العمل» کامپیوتره. موضوع اینه که وقتی قراره یک معماری طراحی کنیم، معمولا در نظر میگیریم که کامپیوتر ما قراره چه کنه، مثلا آیا میتونه دستورات پرشی (مثل fork و branch ) انجام بده؟ میتونه ضرب رو مستقیما انجام بده؟ میتونه وقفه (Interrupt) های مخصوص ارتباط با پرینتر رو داشته باشه؟ اینها میشه معماری.

بیاید یک مثال ساده ببینیم.

عکس بالا، معماری پردازنده MIPS رو به صورت ساده‌شده نشون میده (جهت اطلاعات بیشتر و حتی درک کارکرد، به کتاب معماری کامپیوتر آقای پترسون مراجعه کنید). همونطور که در تصویر مشخصه، ما فقط مشخص کردیم چه اجزایی میخوایم. مثلا ممکنه در ALU هم مشخص کرده باشیم چی می‌خواهیم :

اما موضوع مهم اینه که مشخص نکردیم هر کدوم از این اجزا، چطور ساخته شدن. یا مثلا عملیات جبری رو چطور انجام میدن و ... .

برای بررسی اون مورد به «سازمان» نیاز داریم.

سازمان کامپیوتر چیست؟

سازمان کامپیوتر یعنی هربخشی، چطور پیاده سازی شده باشه! بذارید مثال ملموس تر بزنم. عملیات ضرب میتونه توسط Shift منطقی یا محاسباتی انجام شه، میتونه به این شکل هم پیاده بشه :

و خب در طراحی سازمان کامپیوتر، ما در واقع در مرحله Feasibility Study یا «امکان‌سنجی» هستیم. مثلا اگر فقط قرار باشه ضرب در ۲،۴،۸ و ... انجام بشه، شیفت رجیستر گزینه منطقی تریه تا Binary Multiplier. ولی وقتی مثلا ضرب در ۵ هم داریم، منطقی تر استفاده از ضرب کننده دودوییه.

چرا نیاز داریم تفاوت این‌ها رو بدونیم؟

دو تفاوت عمده اینجا مطرح میشه که در ذیل بهشون اشاره میکنم

  • اول این که، معماری کامپیوتر هویت اونه. در واقع کامپیوترها با معماریشون دسته بندی میشن و نه سازمانشون. اما برای افرادی که میخوان عمقی در مورد معماری مطالعه کنند و برای عملیات خاصی کامپیوتری رو انتخاب کنن، سازمان هم موضوع مهمی میشه (بسته به تاخیر عملیات، تعداد پالس ساعت و ... )
  • دوم، معماری کامپیوتر از نظر حقوقی میتونه تحت مالکیت فکری (کپی‌رایت) قرار بگیره و Licensing خاص خودش رو داشته باشه (چه لایسنس های عمومی چه خصوصی)، ولی سازمان کامپیوتر نه. چرا که سازمان کامپیوتر بر پایه اصول جهان شمول علوم کامپیوتر تعیین شده (در واقع کپی‌رایت کردنش مثل اینه که شما وقتی یه مدار الکتریکی رو پتنت می‌کنید، معادله دیفرانسیل مرتبه دومی که از ساده سازی مدار به دست میاد رو هم پتنت کنید ?).

امیدوارم که این مطلب به دردتون خورده باشه. در مطالب آینده سعی میکنم در مورد معماری کامپیوتر بیشتر توضیح بدم :)

مهندسی کامپیوترکامپیوترسخت افزار
مهندس سخت افزاری که آهنگسازی میکنه و عاشق ادبیاته :) وبگاه شخصی : haghiri75.com
شاید از این پست‌ها خوشتان بیاید