درون ماشین: اجزای سخت‌افزاری، فناوری ساخت تراشه و سنجش سرعت

باز کردن یک کامپیوتر مجموعه کوچکی از بلوک‌های سازنده تکرارشونده را نشان می‌دهد که صرف‌نظر از اندازه یا کاربرد دستگاه، در کنار هم کار می‌کنند. این مقاله اجزای اصلی سخت‌افزاری که هر سیستمی به آن‌ها متکی است را مرور می‌کند، توضیح می‌دهد این اجزا چگونه فیزیکاً از سیلیکون خام ساخته می‌شوند، و روش درست سنجش و مقایسه کارایی پردازنده را نشان می‌دهد.

اجزای سخت‌افزار کامپیوترساخت مدار مجتمعسنجش کارایی پردازنده

~4 دقیقه مطالعه · آخرین به‌روزرسانی ۱۵ شهریور ۱۴۰۵

اجزای اصلی درون هر کامپیوتر

صرف‌نظر از اینکه یک دستگاه یک گوشی هوشمند باشد، یک لپ‌تاپ، یا یک سرور مرکز داده، سخت‌افزار آن را می‌توان به همان دسته‌های بنیادین تقسیم کرد.

  • 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، روی هر دو سیستم و سنجش زمان اجرای واقعی است.

چرا این پایه اهمیت دارد

درک این بلوک‌های سازنده و روش درست سنجش سرعت، از دو اشتباه رایج جلوگیری می‌کند: فرض کردن اینکه همه کامپیوترها داخلاً به یک شکل ساخته شده‌اند، و قضاوت کیفیت سخت‌افزار بر اساس یک عدد گمراه‌کننده به‌جای سنجشی متناسب با بار کاری.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

سخت‌افزار چگونه تقسیم انجام می‌دهد: خارج‌قسمت، باقیمانده و موارد خاص

تقسیم سخت‌افزارطلب‌ترین عملیات محاسباتی پایه است، که شامل تفریق و مقایسه تکراری است نه یک مدار تک‌مرحله‌ای. این مقاله الگوریتم مفهومی تقسیم طولانی که سخت‌افزار دنبال می‌کند را توضیح می‌دهد، خارج‌قسمت و باقیمانده چگونه با هم تولید می‌شوند را شرح می‌دهد، و موارد خاصی مانند تقسیم بر صفر که سخت‌افزار باید صراحتاً مدیریت کند را پوشش می‌دهد.

ادامه

سخت‌افزار چگونه اعداد را ضرب می‌کند: از منطق ساده تا مدارهای واقعی

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

ادامه

سخت‌افزار چگونه جمع و تفریق انجام می‌دهد و سرریز را تشخیص می‌دهد

سخت‌افزار چگونه جمع و تفریق انجام می‌دهد و سرریز را تشخیص می‌دهد

ادامه

آرایه‌ها در مقابل اشاره‌گرها در سطح سخت‌افزار

در C، آرایه‌ها و اشاره‌گرها اغلب قابل‌تعویض به‌نظر می‌رسند، و بسیاری از برنامه‌نویسان با آن‌ها به‌عنوان یک چیز واحد رفتار می‌کنند. با این حال در سطح سخت‌افزار، آن‌ها به توالی‌های دستوری قابل‌توجهی متفاوت با ویژگی‌های کارایی متفاوت کامپایل می‌شوند. این مقاله این دو رویکرد را با استفاده از اسمبلی RISC-V مقایسه می‌کند تا دقیقاً نشان دهد چرا کد مبتنی بر اشاره‌گر اغلب سریع‌تر است.

ادامه

از کد منبع تا یک فرآیند در حال اجرا: ترجمه و یک مثال کامل مرتب‌سازی

تبدیل یک برنامه C به چیزی که سیستم‌عامل واقعاً بتواند اجرا کند شامل چندین مرحله ترجمه مجزاست، که هرکدام یک فایل میانی متفاوت تولید می‌کنند. این مقاله کل این خط لوله را از کامپایلر تا loader مرور می‌کند، سپس مفاهیم این فصل را روی یک مثال کامل و واقعی به‌کار می‌برد: ترجمه گام‌به‌گام یک روال مرتب‌سازی C به اسمبلی RISC-V.

ادامه

مدیریت آدرس‌های بزرگ و همگام‌سازی در RISC-V

یک دستور ۳۲ بیتی نمی‌تواند یک ثابت بزرگ یا یک آدرس حافظه دور را مستقیماً درون خودش جا دهد، و چند پردازنده‌ای که حافظه را به اشتراک می‌گذارند نمی‌توانند بدون هماهنگی، یک داده یکسان را با امنیت به‌روزرسانی کنند. این مقاله توضیح می‌دهد RISC-V چگونه مقادیر فوری و آدرس‌های بزرگ را از قطعات کوچک‌تر می‌سازد، و دستورات اتمیک چگونه اجازه می‌دهند برنامه‌های موازی با امنیت همگام شوند.

ادامه