هر بار که روی یک آیکون کلیک میکنید، یک بازی اجرا میکنید یا حتی یک حرف روی کیبورد مینویسید، پردازنده (CPU) میلیاردها عملیات کوچک را انجام میدهد. اما در عمیقترین سطح، CPU چیزی درباره برنامهها، فایلها یا حتی اعداد نمیداند. چیزی که واقعاً درون آن جریان دارد، فقط حرکت سیگنالهای الکتریکی میان میلیاردها ترانزیستور است.
این مقاله نگاهی به یکی از شگفتانگیزترین فناوریهای تاریخ بشر دارد: اجرای دستورها در سطح ترانزیستور.
پردازنده یک مدار الکترونیکی بسیار پیچیده است که از میلیاردها ترانزیستور ساخته شده است.
یک پردازنده مدرن ممکن است بیش از 10 میلیارد ترانزیستور داشته باشد که همگی در فضایی کوچکتر از کف دست قرار گرفتهاند.
اما ترانزیستور چیست؟
ترانزیستور یک کلید الکترونیکی فوقالعاده کوچک است.
تنها دو وضعیت دارد:
روشن (1)
خاموش (0)
همین دو حالت ساده پایه تمام دنیای دیجیتال را تشکیل میدهند.
وقتی میلیاردها ترانزیستور کنار هم قرار میگیرند، میتوانند:
محاسبه کنند
مقایسه انجام دهند
داده ذخیره کنند
تصمیمگیری منطقی انجام دهند
ترانزیستورها به تنهایی کار زیادی انجام نمیدهند.
برای ساخت سیستمهای پیچیدهتر، آنها در قالب مدارهایی به نام «گیت منطقی» سازماندهی میشوند.
گیتهای اصلی شامل:
AND
OR
NOT
XOR
هستند.
این گیتها اساس تمام محاسبات داخل پردازنده را تشکیل میدهند.
در قلب CPU بخشی به نام ALU یا Arithmetic Logic Unit قرار دارد.
وظایف آن:
جمع
تفریق
مقایسه
عملیات منطقی
است.
وقتی کامپیوتر محاسبهای مانند 5 + 3 را انجام میدهد، در واقع میلیونها ترانزیستور داخل ALU درگیر میشوند.
پردازنده معمولاً سه مرحله اصلی را برای هر دستور طی میکند:
CPU دستور را از حافظه RAM دریافت میکند.
مثلاً:
ADD A, B
واحد کنترل پردازنده بررسی میکند که این دستور چه معنایی دارد.
در اینجا CPU متوجه میشود که باید دو مقدار را با هم جمع کند.
ALU عملیات موردنظر را انجام میدهد و نتیجه تولید میشود.
این چرخه میلیونها یا میلیاردها بار در ثانیه تکرار میشود.
تمام بخشهای CPU با یک ساعت داخلی هماهنگ میشوند.
این ساعت سیگنالهایی منظم تولید میکند که مشخص میکنند چه زمانی عملیات انجام شود.
فرکانس کلاک معمولاً با گیگاهرتز (GHz) اندازهگیری میشود.
مثلاً:
1 GHz = یک میلیارد چرخه در ثانیه
4 GHz = چهار میلیارد چرخه در ثانیه
البته سرعت واقعی فقط به فرکانس وابسته نیست و معماری پردازنده نیز اهمیت زیادی دارد.
CPU برای انجام محاسبات از رجیسترها استفاده میکند.
رجیسترها:
بسیار کوچک هستند
فوقالعاده سریع هستند
مستقیماً داخل پردازنده قرار دارند
قبل از انجام بسیاری از عملیات، دادهها ابتدا وارد رجیسترها میشوند.
پردازندههای مدرن برای افزایش سرعت از تکنیکی به نام Pipeline استفاده میکنند.
به جای اینکه یک دستور را کامل تمام کنند و سپس سراغ دستور بعدی بروند، چند دستور را همزمان در مراحل مختلف پردازش میکنند.
مشابه یک خط تولید صنعتی:
ایستگاه اول دریافت دستور
ایستگاه دوم تفسیر
ایستگاه سوم اجرا
این روش باعث افزایش چشمگیر کارایی میشود.
دسترسی به RAM نسبتاً کند است.
برای حل این مشکل، CPU از حافظه Cache استفاده میکند.
سطوح رایج کش:
L1
L2
L3
هرچه داده به هسته پردازنده نزدیکتر باشد، سریعتر قابل دسترسی خواهد بود.
یکی از هوشمندانهترین قابلیتهای CPUهای مدرن، پیشبینی دستورهای آینده است.
پردازنده تلاش میکند حدس بزند برنامه در مرحله بعد چه کاری انجام خواهد داد.
اگر حدس درست باشد:
زمان زیادی ذخیره میشود
عملکرد سیستم افزایش پیدا میکند
اگر اشتباه باشد:
پردازنده مسیر را اصلاح میکند
در پایینترین لایه، تمام این فرآیندها به حرکت بارهای الکتریکی در ترانزیستورها ختم میشوند.
هیچ عددی وجود ندارد.
هیچ متنی وجود ندارد.
هیچ تصویری وجود ندارد.
فقط:
ولتاژهای الکتریکی
ترانزیستورهای روشن و خاموش
میلیاردها تغییر وضعیت در هر ثانیه
وجود دارد.
اما همین تغییرات ساده در کنار هم باعث میشوند بتوانید فیلم ببینید، بازی کنید، برنامه بنویسید و با جهان ارتباط برقرار کنید.
اگر بتوانید داخل یک پردازنده مدرن را از نزدیک ببینید، چیزی شبیه به یک شهر فوقالعاده پیشرفته مشاهده خواهید کرد:
خیابانها = مسیرهای انتقال داده
ساختمانها = واحدهای پردازشی
انبارها = حافظههای کش
چراغهای راهنمایی = سیگنالهای کلاک
و همه این شهر با سرعتی باورنکردنی، میلیاردها بار در ثانیه فعالیت میکند.
CPU یکی از پیچیدهترین ساختههای مهندسی بشر است. در ظاهر تنها یک تراشه کوچک به نظر میرسد، اما درون آن میلیاردها ترانزیستور در حال همکاری هستند تا دستورهای نرمافزار را به عملیات واقعی تبدیل کنند.
هر برنامه، هر بازی، هر وبسایت و حتی همین متنی که اکنون میخوانید، در نهایت به روشن و خاموش شدن میلیاردها ترانزیستور در قلب پردازنده وابسته است. این همان جایی است که دنیای نرمافزار به دنیای فیزیک و الکترونیک متصل میشود.