مقدمه
یک واحد حسابی یا ALU کامپیوترها را قادر میسازد تا عملیات ریاضی را روی اعداد دودویی انجام دهند. آنها را می توان در قلب هر کامپیوتر دیجیتالی یافت و یکی از مهمترین بخشهای یک CPU (واحد پردازش مرکزی) هستند. این یادداشت به بررسی عملکرد، آناتومی و تاریخچه اصلی آنها میپردازد.
درک ماشین
اگر میتوانستید یک کامپیوتر بردارید و قلب آن را پاره کنید، شبیه چه چیزی به نظر می آمد؟ شاید فکر عجیبی به نظر برسد، اما واقعا این چیزی است که ما واقعا میتوانیم انجام دهیم؟ یا حتی این سوال معنی می دهد؟
امروزه حتی تصور این که یک کامپیوتر چیست دشوار است .بیشتر ما یک یا چند نوع از آن را در جیبمان، بر روی مچ و یا روی میزمان داریم .همه آنها کاملا متفاوت به نظر میرسند و برای اهداف مختلفی مورد استفاده قرار میگیرند آیا آنها حتی به یک شکل کار میکنند؟
خوب، ممکن است تعجب کنید که این دستگاهها همگی از مکانیزمهای بنیادی یکسانی برای کار کردن استفاده میکنند. همه آنها از DNA دیجیتالی اولیه ناشی میشوند و همه آنها یک ضربان قلب دائمی مشترک دارند حتی اگر برخی سریع تر از بقیه بتپند.
همچنین ممکن است برخی را شگفت زده کند که بفهمند کامپیوترها فقط ماشینهای بی عقلی هستند که از طریق جریان دستورالعملهای دودویی به طور مکرر کنترل میشوند که توسط مکانیسمهای بدون روح کنترل میشوند. هیچ چیز جادویی یا هوشمندی در مورد آنها وجود ندارد - صرف نظر از آنچه ممکن است دستیار صوتی به شما بگوید.
طبق تعریف، یک کامپیوتر، یا "ماشین محاسباتی"، یک قطعه سختافزاری است که محاسبات هدف کلی را براساس مجموعهای از دستورها ذخیرهشده انجام میدهد. به بیان سادهتر، یک کامپیوتر یک ماشینحساب دودویی در استروییدها است که از طریق یک فرآیند تکراری به نام "واکشی - رمزگشایی - اجرا" عمل میکند.
مکانیسمهای قراردادی
واکشی - رمزگشایی - اجرا به یک فرآیند محاسباتی اشاره دارد که به طور مداوم دستورالعملها را از یک انبار حافظه واکشی می کند، آنها را به عملیات تبدیل میکند و سپس آنها را برای انجام محاسبات اجرا میکند. و این گامهای سادهای است که رفتارهای پیچیده (و به ظاهر جادویی) که ما از ماشینهای محاسبات مدرن انتظار داریم را ایجاد میکند!
فرآیند واکشی - رمزگشایی - اجرا را می توان با ارتباط دادن هر مرحله چرخه FETCH) | DECODE|EXECUTE) با سه زیر سیستم سختافزاری توضیح داد:
· واحد حافظه
· واحد کنترل
· واحد حساب
واکشی – FETCH (که توسط یک واحد حافظه انجام میشود)
یک واحد حافظه بخشی از یک ماشین محاسباتی است که شامل دستورالعملها یا دادههای ماشین برای انجام محاسبات همه منظوره است. این سیستم فرعی به دستورالعملها یا دادههای ذخیرهشده اجازه میدهد تا در طول اجرای برنامه در دسترس قرار گرفته یا از آنها خارج شوند.
رمزگشایی – DECODE ( که توسط یک واحد کنترل انجام میشود)
واحد کنترل مسئول خودکارسازی و توالی یابی چرخه واکشی - اجرا است که میتوانید آن را به عنوان یک "هادی" سیستم تصور کنید. همچنین دستورالعملها را حذف میکند و اطمینان حاصل میکند که در نتیجه عملکردهای صحیح سیستم انجام می شود.
اجرا – EXECUTE (که توسط واحد حساب انجام میشود)
یک واحد حسابی یک زیر سیستم سختافزاری است که عملیات محاسباتی را بر روی ورودیهای دودویی انجام میدهد. سادهترین واحدهای ریاضی جمع و تفریق دودویی را انجام میدهند. AUهای پیچیدهتر میتوانند عملیات ضرب، تقسیم و دودویی منطقی را انجام دهند. با این حال، به آن AU های پیچیدهتر معمولا ALU گفته میشود: "واحد منطق ریاضی".
آناتومی واحد ریاضیات
واحد حسابی یا ALU کامپیوترها را قادر میسازد تا عملیات ریاضی را روی اعداد دودویی انجام دهند. آنها را می توان در قلب هر کامپیوتر دیجیتال یافت و یکی از مهمترین بخشهای یکCPU (واحد پردازش مرکزی) هستند.
در سادهترین شکل آن، یک واحد حسابی میتواند به عنوان یک ماشینحساب دودویی ساده که جمع یا تفریق دودویی را روی دو ورودی A و B انجام میدهد تا نتیجه را خروجی بدهد.
علاوه بر انجام عملیات پایه ریاضی، واحد حسابی ممکن است یک سری از "مسدود کنندهها" را نیز تولید کند که اطلاعات بیشتری در مورد وضعیت یک نتیجه ارایه میدهد:
· اگر صفر باشد
· اگر اجرا وجود داشته باشد
· اگر سرریز رخ داده باشد
این مهم است زیرا یک ماشین محاسباتی را قادر میسازد تا رفتارهای پیچیده تری مانند شاخه بندی شرطی را انجام دهد.
اما ماشینهای محاسباتی مدرن شامل واحدهای محاسباتی هستند که بسیار پیچیدهتر از چیزی هستند که در بالا توضیح داده شد. این واحدها ممکن است عملیات پایه ای ریاضی (تقسیم وسط ضرب) وعملیات بیتی( XOR, AND, OR و ...) را انجام دهند.
در نتیجه معمولا به آنها ALU (واحد منطق ریاضی) گفته میشود.
آن ها امکان انجام روشهای حسابی به صورت بهینه را فراهم میآورند و این امر میتواند به میزان قابلتوجهی تعداد مراحل مورد نیاز برای انجام محاسبات خاص را کاهش دهد.
امروزه بیشتر CPU ها (واحد پردازش مرکزی) حاوی ALU هایی هستند که میتوانند بر روی اعداد دودویی ۳۲ یا ۶۴ بیتی عمل کنند. با این حال، ALU هایی که اعداد کوچکتر را پردازش میکنند نیز جایگاه خود را در تاریخ محاسبات دارند.
تاریخچه کوتاه واحدهای منطق ریاضی
ایده محاسبه از زیر سیستمهای مجزا که برای ایجاد رفتارهای پیچیده با همکار میکنند، ایده قرن بیستم نیست. در واقع، ماشینهای برنامه ذخیرهشده توسط Charles Babbage بیش از ۱۰۰ سال قبل از رسمی سازی معروف آلن تورینگ از یک ماشین تورینگ جهانی در دهه ۱۹۳۰، تصور شدند.
کتاب "سریع از تفکر" (۱۹۵۳) توسط B.V.Bowden به زیبایی تجسم محاسبه را توصیف میکند که شامل مفهوم واحد کنترل، واحد حافظه و واحد حساب است! در یک اشاره زیبا به شرایط مکانیکی یک واحد محاسباتی در آن زمان، Babbage به این سیستم به عنوان "Mill" اشاره کرد.
مبانی نظری محاسبات، دیدن روزنه هایی از پیشرفت را از طریق ساخت کامپیوترهای دیجیتالی اولیه مشاهده کرد. ماشینهایی مانند کامپیوترMOSAIC، که اولین برنامه خود را در سال ۱۹۵۳ اجرا کردند، شامل بیش از ۶۴۸۰ دریچه الکترونیکی بودند و فضای چهار اتاق را اشغال می کردند! تصویر زیر یک تصویر از " Arithmetic Rack" آن را نشان میدهد که یکی از اولین واحدهای حسابی بود.
این دستگاه در مرکز کامپیوتر کار میکرد تا اینکه در اوایل دهه ۱۹۶۰ از کار افتاد.
در اکتشاف کامپیوترهای دیجیتال اولیه، همچنین لازم است به EDSAC 2 (عملیاتی ۱۹۵۸) نیز اشاره شود، که اولین کامپیوتری بود که یک واحد میکروکنترل برنامه ریزیشده داشت. برای سیستمهای خبره ALU، بازدید از "مرکز تاریخ محاسبات" در کمبریج که دارای بخشی از واحد منطق ریاضی از این دستگاه است، ارزشمند است:
از دهه ۱۹۶۰ به خاطر اختراع مدارهای مجتمع که جایگزین تکنولوژی لوله خلا مورد استفاده در کامپیوترهای اولیه شد، اندازه کامپیوترها به طور قابل توجهی کاهش یافت. در سال ۱۹۷۰ شرکت "Texas Instruments" یک ALU ۴ بیتی به نام TTL IC 74181 معرفی کرد که طراحی کامپیوتر های کوچک را ساده کرد. عملیات محاسباتی )جمع و تفریق( وعملیات منطقی AND) ، OR، XOR( را انجام داد. قرار بود در تاریخ طراحی و فنآوری محاسبهALU محوری شود، که در کامپیوترهای مشهوری مانند PDP - 11 مورد استفاده قرار میگرفت.
بسیاری آن را یک تراشه کلاسیک میدانند حتی اگر دیگر ساخته نشود. با این حال، نابودی آن نشان دهنده ظهور سی پی یوها است، که در آن زیر سیستمهای کامپیوتر کوچک شده و در قطعات سیلیکون، فناوری ریزپردازنده مدرن قرارگرفته اند.