پث‌وایز

کامپیوتر چطور کار می‌کنه (How Computers Work) · درس ۴ از ۱۲ · ۱۲ دقیقه

پردازنده: رجیسترها، ALU و ساعت (CPU)

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

سه تا بخش

توی یه پردازنده چی هست

ALU، یعنی واحد حساب و منطق، ماشین‌حساب پردازنده‌ست: همون جمع‌کننده‌ها و مقایسه‌کننده‌های درس قبل. رجیسترها (Registers) چند تا خونه‌ی ذخیره‌ی خیلی کوچیکن درست کنار ALU، که هر کدوم یه عدد نگه می‌داره. واحد کنترل (Control Unit) هر دستور رو می‌خونه و به بقیه می‌گه چی‌کار کنن: از کدوم رجیسترها استفاده بشه، ALU روی چه عملیاتی تنظیم بشه، جواب کجا بره.

برای «۷ و ۵ رو جمع کن»، واحد کنترل مقدار دو تا رجیستر رو می‌فرسته توی ALU، اون رو روی جمع تنظیم می‌کنه، و ۱۲ای رو که بیرون میاد می‌فرسته توی یه رجیستر دیگه.

یه آشپزخونه‌ی کوچیک و خیلی سریع

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

خودت رو امتحان کن

کدوم بخش CPU واقعاً دو تا عدد رو با هم جمع می‌کنه؟

  1. واحد کنترل
  2. ALU
  3. یه رجیستر
  4. ساعت
جواب رو ببین

ALU

درسته. ALU، یعنی واحد حساب و منطق، از جمع‌کننده‌ها و مدارهای گیتی دیگه ساخته شده. حساب کردن واقعی رو اون انجام می‌ده.

رجیستر (Register)

اسم · سخت‌افزار

یه خونه‌ی ذخیره‌ی خیلی کوچیک داخل پردازنده، درست کنار ALU، که یه عدد نگه می‌داره. رجیسترها سریع‌ترین جای ذخیره توی کل کامپیوترن، ولی تعدادشون خیلی کمه: یه پردازنده‌ی x86-64 شونزده تا رجیستر همه‌منظوره داره و یه پردازنده‌ی ARM64 سی‌ویک تا، هر کدوم ۶۴ بیتی. ALU روی مقدارهایی که توی رجیسترن حساب می‌کنه، پس داده اول باید از حافظه آورده بشه.

توی پردازنده‌ی اسباب‌بازی ما، R1 عدد ۷ رو نگه داشته و R2 عدد ۵ رو. برای جمع کردنشون، هر دو باید از قبل توی رجیستر نشسته باشن.

خودت رو امتحان کن

توی پردازنده‌ی اسباب‌بازی ما، دو تا عدد قبل از این‌که ALU جمعشون کنه باید کجا باشن؟

  1. توی رجیسترها
  2. روی SSD
  3. هر جای رم؛ ALU مستقیم می‌خونه
  4. توی ساعت
جواب رو ببین

توی رجیسترها

درسته. ALU روی مقدارهای توی رجیسترها کار می‌کنه، همون خونه‌های ریز کنارش. عددهای توی رم اول باید توی رجیستر بار بشن.

قدم‌به‌قدم ببین

  1. داخل پردازنده‌ی اسباب‌بازی

    توی طرح چیپ، سمت چپ سه تا رجیستر هست، R1 = ۷، R2 = ۵ و R3 که خالیه؛ وسط ALU به‌شکل V، بالا واحد کنترل (CU)، و یه ساعت کوچیک که tick 0 رو نشون می‌ده. هنوز هیچی حرکت نمی‌کنه.

  2. واحد کنترل یه جمع رو آماده می‌کنه

    ساعت به تیک ۱ می‌رسه. واحد کنترل دستور ADD R3,R1,R2 رو نشون می‌ده، یعنی R1 و R2 رو جمع کن و جواب رو بذار توی R3، و یه خط کنترلی به سمت ALU با علامت به‌علاوه روشن می‌شه: ALU حالا روی جمع تنظیم شده.

  3. ۷ و ۵ می‌رن توی ALU

    توی تیک ۲، دو تا نقطه با برچسب ۷ و ۵ از R1 و R2 بیرون میان و می‌رن توی ALU. رجیسترها نسخه‌ی خودشون رو نگه می‌دارن؛ مقدارها فرستاده می‌شن، نه این‌که از جاشون خالی بشن.

  4. ۱۲ می‌شینه توی R3

    توی تیک ۳ سیم بین ALU و R3 روشن می‌شه و جواب می‌شینه اون‌جا: R3 حالا ۱۲ رو نشون می‌ده. روی یه چیپ ۳ گیگاهرتزی، سه تا تیک حدود یه میلیاردم ثانیه طول می‌کشه.

خودت رو امتحان کن

همون پردازنده‌ی اسباب‌بازی، عددهای جدید: R1 = ۹ و R2 = ۴. بعد از اجرای ADD R3,R1,R2، سه تا رجیستر چی نگه می‌دارن؟

  1. R1 = 9، R2 = 4، R3 = 13
  2. R1 = 0، R2 = 0، R3 = 13
  3. R1 = 13، R2 = 4، R3 = –
  4. R1 = 9، R2 = 4، R3 = 94
جواب رو ببین

R1 = 9، R2 = 4، R3 = 13

درسته. ALU عدد ۹ و ۴ رو جمع می‌کنه و ۱۳ رو توی R3 می‌نویسه. R1 و R2 فقط یه کپی از مقدارشون رو فرستادن، پس هنوز ۹ و ۴ رو دارن.

ساعت

میلیاردها تیک در ثانیه

ساعت (Clock) یه سیگناله که با یه ریتم ثابت روشن‌وخاموش می‌شه، و هر قدمی که پردازنده برمی‌داره با تیک‌هاش هماهنگه. سرعت ساعت با هرتز اندازه‌گیری می‌شه، یعنی تیک در ثانیه. ۳ گیگاهرتز یعنی هر ثانیه ۳ میلیارد تیک، پس هر تیک حدود یک‌سوم نانوثانیه طول می‌کشه.

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

خودت رو امتحان کن

پردازنده‌ی یه لپ‌تاپ ۳ گیگاهرتز نوشته شده. ساعتش هر ثانیه چند بار تیک می‌زنه؟

  1. ۳ هزار
  2. ۳ میلیون
  3. ۳ میلیارد
  4. ۳ هزار میلیارد
جواب رو ببین

۳ میلیارد

درسته. گیگا یعنی میلیارد، پس ۳ گیگاهرتز یعنی ۳ میلیارد تیک در ثانیه، هر کدوم حدود یک‌سوم نانوثانیه.

هسته و ۶۴ بیت

دو تا عدد روی هر مشخصات فنی

هسته (Core) یعنی یه پردازنده‌ی کامل: با رجیسترها، ALU و واحد کنترل خودش. یه چیپ «۶ هسته‌ای» یعنی شش تا از این‌ها روی یه تیکه سیلیکون، که می‌تونن شش تا کار رو واقعاً هم‌زمان انجام بدن. ۶۴ بیتی یعنی رجیسترها و ALU عددهای ۶۴ بیتی رو یه‌جا کار می‌کنن، مقدارهایی تا حدود ۱۸ میلیارد میلیارد.

روی یه چیپ گوشی ممکنه نوشته باشه «۸ هسته، ۶۴ بیتی»: هشت تا پردازنده کنار هم، که هر کدوم با عددهای ۶۴ بیتی کار می‌کنه.

خودت رو امتحان کن

بین دو تا پردازنده، اونی که عدد گیگاهرتزش بالاتره همیشه سریع‌تره.

جواب رو ببین

نادرست

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

مرور درس

  • CPU یه ALU داره که حساب می‌کنه، رجیسترهایی که چند تا عدد رو درست کنارش نگه می‌دارن، و یه واحد کنترل که بهشون دستور می‌ده.
  • رجیسترها سریع‌ترین جای ذخیره توی کامپیوترن ولی تعدادشون کمه: ۱۶ تا توی x86-64، ۳۱ تا توی ARM64، هر کدوم ۶۴ بیتی.
  • ADD R3,R1,R2: واحد کنترل ALU رو روی جمع تنظیم می‌کنه، R1 و R2 می‌رن تو، و جواب توی R3 نوشته می‌شه.
  • ساعت ریتم رو تعیین می‌کنه: ۳ گیگاهرتز یعنی ۳ میلیارد تیک در ثانیه، هر کدوم حدود یک‌سوم نانوثانیه.
  • هسته یعنی یه پردازنده‌ی کامل؛ گیگاهرتز به‌تنهایی سرعت رو تعیین نمی‌کنه، چون کار در هر تیک، تعداد هسته‌ها و کش هم مهمن.

فقط نخونش، نگهش دار

پث‌وایز هر ایده رو درست قبل از اینکه فراموشش کنی با یه سؤال کوتاه برمی‌گردونه. رایگان روی اندروید و وب، به فارسی و انگلیسی.

Cafe Bazaar Myket باز کردن نسخه‌ی وب

همه‌ی درس‌های این دوره

  1. توی جعبه چیه: اجزای کامپیوتر
  2. بیت و دودویی: شمردن با کلید (Binary)
  3. گیت‌های منطقی: کلیدهایی که جمع می‌کنن (Logic Gates)
  4. پردازنده: رجیسترها، ALU و ساعت (CPU)
  5. کد ماشین: برنامه به‌شکل عدد (Machine Code)
  6. واکشی، رمزگشایی، اجرا: حلقه‌ای که همه‌چیز رو اجرا می‌کنه
  7. رم: یه ردیف جعبه‌ی شماره‌دار (RAM)
  8. کش: داده‌ی داغ رو نزدیک نگه داشتن (Cache)
  9. ذخیره‌سازی و فایل‌ها: حافظه‌ای که می‌مونه
  10. پردازه‌ها: یه پردازنده، چند تا برنامه (Process)
  11. حافظه‌ی مجازی: هر برنامه نقشه‌ی خودش رو داره (Virtual Memory)
  12. کنار هم گذاشتنش: از دوبار کلیک تا برنامه‌ی در حال اجرا