بایگانی برچسب‌ها : arithmetic logic unit

واحد محاسبه و منطق Arithmetic Logic Unit – ALU

واحد محاسبه و منطق یا Arithmetic Logic Unit چیست؟

واحد محاسبه و منطق (Arithmetic Logic Unit به اختصار ALU) یک مدار الکترونیک دیجیتال ترکیبی است که قادر به انجام اعمال منطقی و حسابی روی اعداد صحیح باینری می‌باشد. این واحد به عنوان یکی از اجزای اساسی در بسیاری از مدارات رایانه ای (از جمله واحد پردازش مرکزی یا CPU و واحد پردازش گرافیکی یا GPU) به شمار می‌رود.

ساختار واحد محاسبه و منطق

همانطور که گفته شد واحد محاسبه و منطق نوعی مدار ترکیبی به شمار می‌رود به این معنا که خروجی آن صرفا وابسته به ورودی مدار در همان زمان است. ورودی‌های واحد محاسبه و منطق عبارتند از عملوندها (که قرار است عمل منطقی یا حسابی روی آن‌ها انجام شود) و همچنین کدی (Opcode) که نوع عمل را مشخص می‌کند. حاصل این واحد نیز نتیجه انجام عمل مشخص شده روی عملوندهاست. ممکن است ALU ها دارای ورودی‌ها و خروجی‌های وضعیت (Status) نیز باشند که به ترتیب حاوی اطلاعاتی راجع به عمل پیشین و کنونی خواهند بود.

عملوندها و حاصل که در تصویر زیر به ترتیب با A و B و Y نمایش داده شده‌اند در واقع هرکدام مجموعه‌ای از سیگنال ها هستند که یک عدد صحیح را در فرم باینری نشان می‌دهند. طبیعتا تعداد ارقام این اعداد (پهنای گذرگاه آن‌ها) متناسب با مدارهای خارجی هستند که برای ALU این ورودی‌ها را ارسال و از خروجی آن استفاده می‌کنند.

واحد محاسبه و منطق Arithmetic Logic Unit - ALU
نمایی ساده از وروی‌ها و خروجی‌ها در یک ALU

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

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

مدار منطقی یک ALU ساده
مدار منطقی 74181 – یک ALU ساده چهار بیتی

از جمله اعمال اصلی که در اغلب واحدهای محاسبه و منطق امروزی پشتیبانی می‌شود می‌توان به اعمال حسابی (از جمله عمل جمع، جمع با رقم نقلی، تفریق، تفریق با رقم قرضی، محاسبه مکمل دوم یک عملوند، افزایش و کاهش یک واحدی یکی از عملوندها)، اعمال منطقی بیتی (از جمله محاسبه AND و OR و XOR میان عملوندها و محاسبه مکمل اول یک عملوند) و اعمال شیفت بیتی (که در آن یک عملوند به سمت چپ یا راست شیفت داده می‌شود و شامل شیفت منطقی، شیفت حسابی و چرخش می‌باشد) اشاره نمود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پردازنده یا واحد پردازش مرکزی Central Processing Unit – CPU

پردازنده یا Central Processing Unit – CPU چیست؟

پردازنده (Processor) یا واحد پردازش مرکزی (Central Processing Unit) که به اختصار با عنوان سی پی یو (CPU) نیز شناخته می‌شود یک مدار الکترونیکی در رایانه است که مسئولیت پردازش و انجام دستورالعمل‌های یک برنامه را برعهده دارد.

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

  • واحد محاسبه و منطق یا Arithmetic Logic Unit (به اختصار ALU): که اعمال منطقی و حسابی را انجام می‌دهد.
  • ثبات‌های پردازنده یا CPU Registers: که عملوندهای مورد نیاز واحد محاسبه و منطق را فراهم می‌آورند و هم‌چنین حاصل اعمال آن را نگه‌داری می‌کنند.
  • واحد کنترل یا Control Unit: که اعمال پردازنده را هدایت و کنترل می‌کند. به عبارت بهتر، چگونگی واکنش واحد محاسبه و منطق، مموری و دستگاه‌های ورودی و خروجی در برابر دستورالعمل‌ها را تعیین می‌کند.

بسیاری از ریزپردازنده‌های امروزی دارای بخشی به نام واحد مدیریت حافظه (MMU) نیز هستند. اغلب رایانه‌های امروزی از پردازنده‌های چند هسته‌ای (Multi-Core Processor) استفاده می‌کنند. در این رایانه‌ها، یک یا چند CPU که به آن‌ها هسته (Core) گفته می‌شود روی یک چیپ واحد قرار می‌گیرند و امکان پردازش موازی و اجرای چندین دستور به طور همزمان را فراهم می‌کنند. البته چندنخی‌سازی (Multithreading) نیز قابلیتی رایج در پردازنده‌های ساده و هر هسته موجود در پردازنده‌های چند هسته‌ای است که امکان اجرای همزمان چندین فرایند (Process) یا نخ (Thread) را فراهم می‌آورد.

نحوه‌ی عملکرد پردازنده

دستوراتی که قرار است توسط پردازنده اجرا شوند (برنامه) روی نوعی حافظه رایانه‌ای قرار می‌گیرند. به این ترتیب روند اجرای دستورات توسط CPU نیازمند انجام سه مرحله‌ی واکشی (Fetch)، دیکد یا رمزگشایی (Decode) و اجرا (Execute) می‌باشد.

در فرایند واکشی، براساس محتوای ثبات شمارنده برنامه (Program Counter یا PC) محل دستور روی حافظه مشخص می‌شود. پس از اجرای یک دستور، با افزایش مقدار شمارنده برنامه، این روند برای دستور بعدی تکرار می‌شود. در صورتی که یک دستور جهش (Jump) اجرا شود شمارنده برنامه به آدرس دستوری که جهش به آن نقطه انجام شده است تغییر می‌یابد.

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

یک پردازنده ی ساخت شرکت اینتل
یک CPU ساخت شرکت اینتل