پردازنده مغز اصلی هر سیستم به شمار میرود. این قطعه، دادهها را دریافت کرده و گامهای محاسباتی را طی میکند. درون پردازنده، مدارهای گوناگونی وجود دارد که هرکدام وظیفه ی خاصی دارند. یکی از بخشهای مهم در پردازنده، واحد محاسبه و منطق یا ALU است. بسیاری از اعمال ریاضی و منطقی در همین مدار اجرا میشود. در حقیقت، ALU دادههای دودویی را دریافت کرده و جمع، تفریق یا کارهای مقایسهای را روی آنها اعمال میکند. این بخش تلاش میکند محاسبات را به سریعترین شکل انجام دهد تا مابقی واحدهای پردازنده کار اصلی خود را ادامه دهند. در ادامه، جزئیات مربوط به این واحد مهم را بیان میکنیم.
واحد محاسبه و منطق یا ALU در پردازنده چیست؟
واحد محاسبه و منطق یا Arithmetic Logic Unit مجموعهای از دروازههای دیجیتالی است که برای کارهای ریاضی و منطقی روی اعداد دودویی ساخته شده است. وقتی دستورها به پردازنده میرسند، بخش کنترلر پردازنده تصمیم میگیرد که کدام عمل ریاضی یا منطقی باید روی این اعداد انجام شود. وظیفه پردازنده تفسیر دستورهاست؛ آنها را دریافت میکند و سپس به ALU میگوید که چه کاری انجام شود.
در عمل، وقتی برنامهای اجرا میگردد، مقادیری در قالب صفر و یک به ALU راه مییابند. این مقادیر ممکن است جمع دو عدد صحیح باشد یا انجام عمل منطقی مانند AND یا OR. خروجی پس از محاسبه برای مراحل بعدی فرستاده میشود. بنابراین ALU مسئولیت مستقیم فعالیتهای عددی را بر دوش میکشد.
عبارت Arithmetic (محاسبه) نشاندهنده محاسباتی مثل جمع، تفریق و گاه ضرب و تقسیم است. Logic (منطق) نیز بیانگر اعمالی از جنس مقایسه یا ترکیب بیتی نظیر AND،OR و XOR است. این ترکیب محاسبه و منطق جزء پایهایترین فرایندهای یک پردازنده است.
ماهان شبکه ایرانیان در زمینه فروش سرور دست دوم و کارکرده از قبیل سرور استوک DL360 Gen9 و … فعالیت دارد. این شرکت محصولات خود را همراه با کیفیت بالا و گارانتی معتبر به مشتریان تقدیم می کند. برای تماس با این شرکت از طریق شماره ی ۰۲۱۹۱۰۰۸۴۱۳ اقدام نمایید.
بخش های مختلف پردازنده
اگرچه ALU بخش مهم پردازنده محسوب میشود اما پردازنده تنها همین واحد را در دل خود ندارد. بخشی همچون واحد کنترل (Control Unit) هم وجود دارد که هماهنگکننده ALU و حافظه است. گاهی واحد FPU نیز به صورت تخصصی، وظایف مرتبط با اعداد ممیزی و اعشاری را اجرا میکند. ALU بیشتر متمرکز بر اعداد صحیح است.
وقتی دادهای به ALU تحویل داده میشود، معمولا واحد کنترلر به آن اطلاع میدهد که چه عملی باید صورت بگیرد. مجموعهای از کدهای عملیاتی وجود دارد که نشان میدهد کدام کار مد نظر قرار گرفته است، برای مثال جمع دو عدد یا مقایسه آنها. خود این کد میتواند به شکلهای گوناگون باشد مثل عملیات روی اعداد صحیح یا روی دادههای اعشاری. در پایان، نتیجه وارد ثبات( رجیستر) مقصد شده و سپس در صورتی که لازم باشد به حافظه اصلی فرستاده میشود.
ورودی به ALU ممکن است “رجیستر” خوانده شود یا از بخش دیگری در پردازنده دریافت شود. ضمن اینکه خروجی هم ممکن است به بخش دیگری برود یا مستقیما در رجیستری مخصوص نگهداری گردد. اغلب، ثباتی به نام Accumulator وجود دارد که وظیفه دارد نتیجه محاسبات انجامشده در ALU را دریافت کند. همه اینها بخشی از گردش کار پردازشگر است که به صورت مرحلهبهمرحله داده را پردازش میکند.
ساختار ALU (واحد محاسبه و منطق) به چه صورت است؟
در نگاه ساده، ساختار ALU متشکل از دو قسمت اصلی است که در کنار هم فعالیت دارند: واحد حساب (Arithmetic Unit) و واحد منطق (Logic Unit).
بخش حسابی کارهایی چون جمع، تفریق یا در مواردی ضرب و تقسیم را انجام میدهد. بخش منطقی، کارهایی نظیر AND، OR، NOT، XOR و مقایسه را بر عهده دارد. این دو سیستم معمولا در قالب یک واحد یکپارچه تولید میشوند تا سرعت دسترسی به دادهها بالا باشد.
یک نگاه دیگر به ساختار ALU مسیرهای ورودی و خروجی آن است. دو ورودی به نام ورودی اول (A) و ورودی دوم (B) به ALU میرسند. این ورودیها ممکن است از حافظه بیایند. همچنین، یک بخش به نام Op code داریم که نوع کاری که باید انجام شود را به ALU اطلاع میدهد. این Op code توسط واحد کنترل تعیین میگردد. پس از تکمیل فرایند، خروجی (Y) در اختیار بخش مقصد گذاشته میشود.
هرچه پهنای گذرگاه(Bus) داده در پردازنده وسیعتر باشد، ALU بزرگتری خواهیم دید. به عنوان نمونه، اگر گذرگاه ۶۴ بیتی باشد، باید ۶۴ دروازه موازی برای جمع ایجاد شود یا چندین بلوک منطقی در کنار هم قرار بگیرند تا در یک چرخه، ۶۴ بیت به صورت همزمان پردازش شود. به همین صورت ساختار ALU سبکتر یا سنگینتر خواهد شد.
نحوه عملکرد مدار ALU
عملکرد یک مدار ALU در چند گام خلاصه میشود:
ابتدا دستورالعملی در واحد کنترل رمزگشایی میگردد. بخشی از این دستور، Op code است که به ALU فرستاده میشود تا مشخص کند چه کاری باید انجام شود: عمل جمع، تفریق، مقایسه یا موارد دیگر.
گام دوم، دریافت ورودی ها است. این ورودی ها معمولا در ثباتها یا حافظه ذخیره هستند. ALU آنها را از طریق مسیرهایی که گذرگاه یا Bus نامیده میشود، میگیرد. اگر دستور تعیین کند که جمع انجام شود، واحد حسابی داخلی اقدام میکند. اگر وظیفه منطقی مطرح باشد، بخش دروازههای منطقی فعال میشود.
در گام سوم، محاسبه در لحظه صورت میگیرد. ALU یک مدار ترکیبی است، یعنی خروجیاش صرفا به ورودی ها و Op code در همان لحظه بستگی دارد و حافظهای برای نگهداشتن خروجی در خودش ندارد.
گام نهایی، ارسال پاسخ است. نتیجه معمولا به یک رجیستر مقصد فرستاده میشود. در بسیاری از معماریها، نتیجه در ثباتی موسوم به Accumulator نگهداری میگردد تا در صورت نیاز، به حافظه اصلی یا واحد دیگری منتقل گردد. اگر پردازنده چند مرحله پایپلاین داشته باشد، مرحله بعد داده را از این ثبات مقصد تحویل میگیرد.
رجیستر یا ثبات در پردازنده (CPU) چیست ؟
رجیستر یا ثبات، محلی محدود درون پردازنده است که برای نگهداشتن دادهها استفاده میشود. این بخش از مجموعه دروازههای الکترونیکی تشکیل میگردد که هرکدام یک بیت را ذخیره میکنند. وقتی پردازنده دادهای را در رجیستر قرار میدهد، همانجا باقی میماند تا دوباره تغییر کند. اگر سیگنال نوشتن فعال شود، مقدار ثبات بر اساس ورودی جدید به روزرسانی میگردد.
هر پردازنده چندین رجیستر دارد. برخی ویژه ورودی ها و محاسبات هستند، بعضی دیگر برای آدرسدهی یا نگهداری دستورالعملها بهکار میروند. چون سرعت دسترسی به رجیسترهای داخلی بسیار بیشتر از حافظه اصلی است، این ساختار قویترین بخش ذخیره سازی را شکل میدهد. هنگامی که پردازنده میخواهد عملی را روی دادهها انجام دهد، آن دادهها اغلب ابتدا در ثباتها قرار میگیرند.
در یک پردازنده با معماری ۳۲ بیتی، طول هر رجیستر ۳۲ بیت است. برای پردازندههای ۶۴ بیتی هم رجیسترهایی ۶۴ بیتی داریم. این سرعت کار را بالا میبرد. وقتی دستور اجرا شد، نتیجه اغلب در همین ثباتها باقی میماند تا تصمیم بعدی گرفته شود. ممکن است نهایتا داده به حافظه اصلی منتقل شود. بدون رجیستر، پردازش بسیار کند و غیرعملی خواهد بود.
منظور از ALU پردازنده
در یک پردازنده ،ALU وظیفه محاسبات را بر عهده دارد. درون همان تراشه، ماژولهای دیگری وجود دارند، مانند واحد مدیریت حافظه، واحد کنترل یا حتی واحد اعشاری(FPU). اما ALU به صورت اختصاصی برای عملیات ریاضی پایه (جمع، تفریق) و اعمال منطقی ساخته شده است. این ساختار در تقسیم یا ضرب ساده هم دخالت دارد، گرچه برای برخی پردازشهای پیچیدهتر، افزونههای دیگری در نظر گرفته میشود.
وقتی از ALU پردازنده صحبت میکنیم، منظور قسمتی است که در دل سیلیکون پردازنده تعبیه شده تا چرخههای محاسباتی را اجرا کند. اگر بخواهیم مثالی بزنیم، در خانواده پردازندههای اینتل، ALU اغلب شامل بخشهایی است که میتوانند همزمان چند عمل ساده را پیش ببرند. در پردازندههای AMD نیز شرایط کمابیش مشابهی وجود دارد. برخی مدلها به جای یک ALU، چند واحد موازی دارند. هر واحد میتواند دستور خاصی را هندل کند.
همچنین گاهی محدودیتهایی در اوپ کدها (op codes) هست. برخی ALUها تنها یکسری دستور پایه را مدیریت میکنند. برای عملیات پیچیدهتر، بخش مخصوصی ایجاد شده که هنگامی که دستورالعملی خاص از راه میرسد، به آن قسمت ارجاع داده شود. هدف نهایی این است که پردازنده بتواند اعداد صحیح را خیلی سریع محاسبه کند و دیگر بخشها نیز از نتیجه استفاده کنند.
وظایف ALU پردازنده
ALU وظایف چندگانهای دارد. نخستین مسئولیت آن اجرای اعمال حسابی است. جمع دو عدد یکی از پرکاربردترین دستورها است. تفریق نیز در محاسبه بسیار کاربرد دارد. ضرب در بیشتر موارد میتواند با ترکیب چند جمع پشت سر هم پیاده شود اما گاه ALU مدار ضرب اختصاصی دارد. تقسیم هم شرایط مشابهی دارد؛ شاید خود ALU بتواند آن را اجرا کند یا این کار به بخش دیگری محول شده باشد.
دومین کار مهم ALU عملیات منطقی است. AND، OR، XOR،NOT و مقایسه از قواعد پایهای در محاسبات دودویی هستند. برای نمونه، اگر نیاز باشد دو عدد بیتی را ترکیب کرده و ببینیم کدام بیتها مشترکاند، عمل AND صورت میگیرد. در یک دستور دیگری ممکن است نیاز شود نتیجه برابری یا بزرگ تربودن بررسی گردد.
سومین مورد، اعمال شیفت و چرخش روی بیتهاست. گاهی لازم است یک عدد به چپ شیفت شود. این عمل برای ضرب توسط توانهای دو موثر است. شیفت راست در مواردی مانند تقسیم بر دو کاربرد دارد. برخی دستورها هم بیت راست را میچرخانند و در سمت چپ درج میکنند. تمام این کارها در ALU پردازنده انجام میگردد.
در آخر هم، ALU باید اطلاعاتی را وارد رجیستر مقصد کند. اگر عملی انجام گیرد که منجر به overflow یا carry bit شود، بیتهای وضعیت مربوطه فعال خواهند شد. آن بیتها گاهی در انجام دستور بعدی ضروری هستند.
مزایا و معایب ALU در سی پی یو
بهرهمندی از واحد محاسبه و منطق باعث سرعت بالای محاسبه در سی پی یو میشود. هنگامی که دادهها به ALU وارد میشوند، نتیجه در کسر کوچکی از ثانیه آماده خواهد بود. این سرعت، فرایند کلی سیستم را ارتقا میدهد. از آنجا که دستورات ریاضی بسیار فراواناند، وجود ALU قدرتمند، فرایندهای اجرایی را بهینه میکند.
وجود ALU چندگانه در یک تراشه شرایطی پدید میآورد که عملیات ریاضی یا منطقی همزمان به اجرا درآیند. این ساختار موازی سازی عملکرد کلی پردازنده را افزایش میدهد. از سمت دیگر، ALU معمولا برای اعداد صحیح طراحی میگردد. در صورت نیاز به محاسبه اعشاری، عموما از زیرسیستم FPU بهره گرفته میشود. در پردازندههایی که بیشتر وظایف گرافیکی دارند، ماژولهای موازی متعددی وجود دارد تا دادههای تصویری پردازش شوند.
از نظر معایب، ALU یک بخش سختافزاری است که طراحی آن زمان و هزینه بالایی نیاز دارد. هر چه پهنای گذرگاه بزرگتر شود، پیچیدگی ALU بالاتر میرود. طراحی مدار ضرب یا تقسیم دودویی هم میتواند پیچیده و سنگین باشد. افزون بر این، اگر تعداد ALU زیاد باشد، گرمای ایجاد شده در پردازنده هم بالا میرود که نیازمند خنککنندههای مناسب خواهد بود. در نتیجه یک تعادل میان قدرت پردازش، تعداد واحدها و مصرف انرژی برقرار میشود.
مدار ALU در کجا قرار دارد ؟
در هر پردازنده، مدار ALU داخل تراشه جای میگیرد. ممکن است این تراشه، یک پردازنده ساده نهفته در مدارهای کوچکی مثل کنترلکنندههای صنعتی باشد یا یک CPU چند هستهای مانند پردازندههای دسکتاپ امروزی. در هر صورت ALU را در دل پردازنده خواهیم دید. حتی دستگاههای تلفن همراه هم دارای پردازنده مرکزی هستند که درون آن واحد محاسبه و منطق تعبیه شده است.
گاهی بیش از یک ALU در پردازنده ساخته شده است. در معماریهای موازی، برای افزایش توان پردازش یا برای رسیدگی همزمان به چند دستور، چندین ALU در نظر میگیرند. هر ALU ممکن است مسیری اختصاصی در بخش کنترل داشته باشد. همه اینها بر روی همان چیپ سیلیکونی در نزدیکی بخش کنترل و پنهان در قالب معماری پردازنده قرار دارد.
بنابراین، فرقی نمیکند یک پردازنده ضعیف باشد یا یک پردازنده پیشرفته با تعداد هستههای زیاد؛ در هر حالت، واحد حساب و منطق یا ALU وجود دارد. بدون ALU، هیچ عملیاتی بر روی اعداد انجام نمیشود. حتی پردازندههای اولیه هم برای جمع و تفریق نیازمند یک ALU ساده بودند.
شرکت ماهان شبکه ایرانیان سرور استوک و کارکرده را با بهترین کیفیت همراه با ضمانت به بازار عرضه می کند. این شرکت علاوه بر سرور، تجهیزات مورد نیاز این سیستم ها را نیز ارائه می دهد. برای اطلاعات بیشتر در مورد سرور HP استوک و دست دوم می توانید با شماره ۰۲۱۹۱۰۰۸۴۱۳ تماس حاصل فرمایید.
جمع بندی
واحد محاسبه و منطق یا ALU در پردازنده، مسئول مستقیم کارهای ریاضی و منطقی است. وقتی دادهای باید جمع یا تفریق شود یا وقتی لازم است دو عدد بررسی شوند، ALU وارد عمل میشود. این ماژول نتایج آن را در رجیسترهای داخلی مینویسد تا دیگر بخشها از خروجی بهره ببرند. ALU دارای دو زیر واحد حسابی و منطقی است که هرکدام فعالیت منحصربهفردی دنبال میکنند. ساختار آن در کنار واحد کنترل، رجیسترها و حافظه اصلی، چارچوب اصلی پردازش را شکل میدهد. در نتیجه، حضور ALU باعث میشود فرایند محاسبه با سرعت و دقت مناسب انجام پذیرد تا پردازنده بتواند عملکرد قدرتمندی داشته باشد.