اجزای اصلی درون هر کامپیوتر
صرفنظر از اینکه یک دستگاه یک گوشی هوشمند باشد، یک لپتاپ، یا یک سرور مرکز داده، سختافزار آن را میتوان به همان دستههای بنیادین تقسیم کرد.
Input Devicesداده یا سیگنال را وارد سیستم میکنند، مانند صفحهکلید، صفحهلمسی یا رابط شبکه.Output Devicesنتایج را به دنیای بیرون تحویل میدهند، مانند نمایشگر، بلندگو، یا اتصال شبکهای که داده را به جای دیگری ارسال میکند.Memoryبهطور موقت دادهها و دستورات را در حین اجرای یک برنامه نگه میدارد.Datapathبخشی از پردازنده است که عملیات روی داده انجام میدهد، مانند جمع یا مقایسه.Controlرفتار datapath، حافظه، و دستگاههای ورودی/خروجی را بر اساس دستوراتی که در حال اجرا هستند هدایت میکند.
در مجموع، datapath و control اغلب Processor نامیده میشوند، یعنی مؤلفهای که مسئول اجرای واقعی دستورات یک برنامه است.
یک پردازنده فیزیکاً چگونه ساخته میشود
پردازندهها و تراشههای حافظه امروزی از Silicon ساخته میشوند، عنصری که بهطور طبیعی فراوان است و بهعنوان Semiconductor رفتار میکند — مادهای که رسانایی الکتریکی آن را میتوان بهطور دقیق کنترل کرد.
فرآیند ساخت از یک توالی کلی پیروی میکند:
- سیلیکون خالص به شکل یک
Ingotاستوانهای رشد داده شده و بهWafersنازک و گرد برش داده میشود. - هر ویفر مراحل شیمیایی و عکاسی متعددی را طی میکند تا الگوهای ترانزیستور تشکیلدهنده مدارهای منطقی ساخته شوند. این مرحله
DopingوPhotolithographyنامیده میشود. - ویفر نهایی به قطعات مستطیلی مجزا به نام
Diesبرش داده میشود. - هر die سالم درون یک بسته محافظ با اتصالات بیرونی قرار میگیرد و به
ChipیاIntegrated Circuitنهایی تبدیل میشود که روی برد مدار لحیم میشود.
از آنجا که نقصهای تولید در چنین مقیاس فیزیکی کوچکی اجتنابناپذیرند، هر die روی یک ویفر درست کار نمیکند. نسبت die هایی که آزمون را با موفقیت پشت سر میگذارند Yield نامیده میشود، و بهبود yield یکی از اصلیترین محرکهای هزینه در صنعت تراشه است.
روش درست سنجش کارایی کامپیوتر
گفتن اینکه یک کامپیوتر از دیگری "سریعتر" است بدون مشخص کردن اینکه دقیقاً چه چیزی سنجیده میشود، بیمعناست. دو تعریف متفاوت از کارایی بهطور رایج استفاده میشوند.
زمان پاسخ در مقابل توان عملیاتی
Response Time (که Execution Time نیز نامیده میشود) کل زمان بین شروع یک وظیفه و تکمیل آن است — این معیار برای یک کاربر منفرد که منتظر نتیجه است بیشترین اهمیت را دارد.
Throughput (که Bandwidth نیز نامیده میشود) کل حجم کاری که در واحد زمان انجام میشود را میسنجد — این معیار برای مرکز دادهای که بهطور همزمان درخواستهای زیادی را مدیریت میکند بیشترین اهمیت را دارد.
بهبود یکی از این دو بهطور خودکار دیگری را بهبود نمیبخشد؛ یک سیستم میتواند بهگونهای پیکربندی شود که در مجموع وظایف بیشتری در ساعت انجام دهد در حالی که هر وظیفه منفرد زمان بیشتری برای اتمام نیاز داشته باشد.
زمان CPU بهعنوان معیار مقایسه منصفانه
قابلاعتمادترین روش مقایسه پردازندهها، CPU Execution Time است که با یک رابطه ساده تعریف میشود:
CPU Time = Instruction Count × Clock Cycles per Instruction × Clock Cycle Timeاین فرمول نشان میدهد کارایی به سه عامل مستقل بستگی دارد: تعداد دستوراتی که یک برنامه نیاز دارد، تعداد سیکلهای ساعت که هر دستور بهطور میانگین مصرف میکند، و سرعت تیکزدن ساعت پردازنده. بهبود هرکدام از این عوامل، بدون بدتر کردن بقیه، کارایی کلی را بهبود میبخشد.
چرا فقط سرعت ساعت گمراهکننده است
یک اشتباه رایج، مقایسه پردازندهها صرفاً بر اساس فرکانس ساعت است، که بر حسب Hertz سنجیده میشود. دو پردازنده با سرعت ساعت یکسان میتوانند کارایی واقعی بسیار متفاوتی داشته باشند اگر یکی برای هر دستور به سیکلهای ساعت بیشتری نیاز داشته باشد یا برای یک وظیفه یکسان، توالی کمکاراتری از دستورات را اجرا کند. یک مقایسه معنادار نیازمند اجرای یک بار کاری یکسان، معروف به Benchmark، روی هر دو سیستم و سنجش زمان اجرای واقعی است.
چرا این پایه اهمیت دارد
درک این بلوکهای سازنده و روش درست سنجش سرعت، از دو اشتباه رایج جلوگیری میکند: فرض کردن اینکه همه کامپیوترها داخلاً به یک شکل ساخته شدهاند، و قضاوت کیفیت سختافزار بر اساس یک عدد گمراهکننده بهجای سنجشی متناسب با بار کاری.