سلام
اگر پردازش ها رو رجیستر انجام میده.با این حساب پس ALU چی کاره هست؟ ما میگیم رجیستر ها حافظه بسیار سریع هستند. مگر حافظه میتواند عملیات محاسباتی و منطقی انجام دهد؟
ALU که عبارت کوچک شده ای Arithmetic Logic Unit هست، یکی از چندین عناصر بسیار زیاد درون پردازنده ها و یا واحد پردازندش گرافیکی میباشد، ALU برای انجام کارهای محاسبات ریاضی - منطقی - عملیات های صحیح که منجر به انجام پردازش نهایی توسط پردازنده میشود، بعد از اینکه اطلاعات پردازش شد توسط ALU این اطلاعات ارسال میشود به سمت MEMORY کامپیوتر، در پردازنده ها امروزی ALU به دو قسمت تقسیم می شود یک واحد AU و یک واحد دیگر LU ،
کار واحد AU انجام عملیات محاسباتی است و واحد دیگر LU محاسباتی منطقی را انجام میدهد، ALU دارای دستور العمل ها هستند : جمع - تفریق و یک واحد به نام Shifting Operations در حالی بخش منطقی یا Logic دارای مقدار Boolean میباشد که برای مقایسه True یا False بودن که شامل Operator های AND - OR - XOR و در اخر Not میباشد
ALU بیشتر طراحی و ایجاد شده است برای انجام محاسبات اعداد صحیح یا Integer ، از این رو ALU که قبلا گفتم به حالات جمع و تفریق اعداد می پردازد ، ALU غالبا به ضرب دو عدد صحیح Integer نیز را انجام میدهد از این رو نتیجه ای نهایی یک عدد صحیح میباشد ، هر چند که ALU عمل تقسیم را انجام نمی دهد از طریق واحد ممیز شناور یا FPU یا اعداد Floating Point انجام میشود که عملیات تقسیم معمولا توسط Floating Point Unit یا اعداد ممیز شناور انجام میشود و همچنین کار محاسبات اعداد غیر صحیح یا Non Integer را انجام میدهد در اصل ALU جزء مولفه های اساسی و اصلی در تمامی پردازند ها و واحد پردازش گرافیکی محسوب میشود ،
طراحی و توابعی که درون (ALU) پردازنده ها بسته نوع پردازنده متفاوت است مانند پردازنده های شرکت AMD و Intel ،
: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU) واحد کنترل یا حافظه).
پردازش ؛ واحد محاسبه و منطق یا ALU واحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و،یا،نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام می‌دهد. این واحد جاییست که «کار واقعی» در آن صورت می‌‌پذیردقابل ذکر است پردازنده‌های اینتل از نوع پردازنده مبتنی بر اعمال پیچیده هستند.) واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شونده است را تعقیب می‌کند، سپس به واحد محاسبه و منطق اعلام می‌کند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع می‌کند(که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام می‌کند دستورالعمل بعدی در خانه دیگر قرارگرفته است). واحد محاسبه و منطق (ALU) شامل مدارهای الکترونیکی است که همه عملیات حساب و منطق را اجرا می کند و ALU می تواند چهار نوع عملیات حساب ریاضی را انجام دهد:جمع ٬تفریق ٬ ضرب و تقسیم.واحد حساب ومنطق عملیات منطقی را هم انجام می دهد .یک عملیات منطقی معمولا یک مقایسه است این واحد می تواند اعداد و حروف یا کاراکترهای مخصوص را مقایسه کند.پس کامپیوتر می تواندعملیات اصلی را از روی نتایج مقایسه بگیرد و این یک توانایی خیلی مهم است.به وسیله مقایسه است که کامپیوتر می تواندبرای مثال بگوید آیا یک جای خالی در هواپیما است آیا پرکردن کارت مشتری از مشتری ها از محدودیت اعتبار آنها تجاوز می کند.آیا یک کاندیدا برای مجلس بیشترین رای را از دیگران دارد.واحد منطق سه شرط را امتحان می کند: حالت مساوی:در آزمودن برای این شرایط واحد محاسبه منطق دو ارزش معین شده را اگر مساوی بشد مقایسه می کند.برای مثال تعداد بلیط با تعداد جا در تالار سخنرانی برابر است. کمتر از:در برابر امتحان این شرایط کامپیوتر ارزشها را مقایسه می کندو معین می کند کدام کمتر از بقیه است.برای مثال اگر سرعت در یک تصادف رانندگی کمتر ازسه نرخ بیمه 425 دلار در غیر این صورت 500 دلار است. بزرگتر از:در این نوع مقایسه کامپیوتر اگر یک ارزش بزرگتر از بقیه باشد معین می کند.برای مثال اگرساعتهایی که یک شخص در هفته در یک شرکت کار می کند بیشتر ازچهل باشد سپس ضرب هر ساعت اضافه کار در 5/1 .این معمولا دستمزد ساعتی در هر زمان اضافه کاری است.یک کامپیوتر به طور همزمان می تواند بیشتر از یک حالت را امتحان بکند.در حقیقت یک واحد منطق می تواند. معمولا شش نسبت منطقی را تعیین کند:مساوی با٬ کمتر از ٬ بیشتر از ٬ کوچکتر یا مساوی ٬بزرگتر از٬بزرگتر یا مساوی و نا مساوی .سمبلهایی که اجازه دارید انواع مقایسه هایی که می خواهید کامپیوتر برای شما انجام دهد را تعریف کنید موسوم هستند به رابطه اپراتورها.بیشترین نسبت رایج اپراتورها . بیشترین نسبت رایج اپراتورها مساوی با علامت (=)٬سمبل کمتر از(>)و بیشتر از( · ورودی/خروجی ، (I/O) Input/Output بخش ورودی/خروجی (I/O) این امکان را به رایانه می‌‌دهد تا اطلاعات را از جهان بیرون تهیه و نتایج آنها را به همان جا برگرداند. محدوده فوق العاده وسیعی از دستگاههای ورودی/خروجی وجود دارد، از خانواده آشنای صفحه‌کلیدها، نمایشگرها، نَرم‌دیسک گرفته تا دستگاههای کمی غریب مانند رایابین‌ها (webcams). چیزی که تمامی دستگاههای عمومی در آن اشتراک دارند این است که آنها رمز کننده اطلاعات از نوعی به نوع دیگر که بتواند مورد استفاده سیستم‌های رایانه دیجیتالی قرار گیرد، هستند. از سوی دیگر، دستگاههای خروجی آن اطلاعات به رمز شده را رمزگشایی می‌کنند تا کاربران آنها را دریافت نمایند. از این رو یک سیستم رایانه دیجیتالی یک نمونه از یک سامانه داده‌پردازی می‌‌باشد. چه طور داده ها و دستورالعملهای بدست آمده از دستگاه های ورودی در حافظه کار می کند؟واحد کنترل در یک زمان مناسب آنها را از حافظه به واحد محاسبه و منطق می فرستد.سپس پردازش شروع می شود.اطلاعات از حافظه فرستاده می شود. اطلاعات تا وقتی که برای فرستادن در واحد خروجی آماده شوند در حافظه نگهداری می شود.مشخصه اصلی حافظه اجازه دستیابی سریع به اطلاعات و داده هاست.برای روشن شدن اینکه ریجسترها٬حافظه و حافظه ثانویه چه طور با همدیگر کار می کنند آن را با ساخت سالاد در آشپزخانه مقایسه می کنم. ○یخچال جایی برای نگهداری سبزی های سالاد. ○پیشخون جای برای گذاشتن تمام سبزی ها قبل از گذاشتن روی تخته برش. ○تخته برش روی پیشخون جایی که ما سبزیها را برای برش روی آن قرار می دهیم. ○دستور آشپزی که جزئیات برای خرد کردن سبزی ها را در آن است. ○کنار تخته برش جایی برای نگهداری اندکی سبزی که قصد خرد کردن یا مخلوط کردن آن را داریم. ○کاسه روی پیشخون که ما در آن سالاد را مخلوط کرده ونگهداری می کنیم. ○فضایی در یخچال برای گذاشتن سالاد مخلوط شده بعد از ساخته شدن آن. مراحل تهیه سالاد:آوردن سبزی ها از فریزر به بالای پیشخون٬گذاشتن مقداری از سبزی ها روی تخته خرد کردن سبزی ها بر طبق دستور٬ بعضی از سبزی های خرد شده ممکن است به طور موقت روی تخته برش نگهداری شود. جادادن همه سبزی ها در کاسه و برگرداندن دوباره به یخچال یا گذاشتن روی میز شام. یخچال مانند حافظه ثانویه (دیسک)می تواند حجم بالایی لز سبزی ها را برای مدت طولانی ذخیره کند.سر پیشخون مثل مادربرد در داخل کامپیوتر است و همه وسایل لازم روی پیشخون قرار دارد. تخته برش شبیه ALU است که همه کارها آنجا انجام می شود.دستور آشپزی هم مانند واحد کنترل است که به شما می گوید چه کاری روی تخته برش (ALU) انجام دهید.فضای بالای پیشخون مانند RAM است که همه سبزی ها باید از یخچال آورده شود و روی سر پیشخون برای دستیابی سریعتر قرار گیرد.(در نظر داشته باشید که سر پیشخون( (RAM از یخچال (disk) دستیابی سریعتری دارد اما نمی تواند مقدار زیادی از مواد را نگهداری کند و برای یکمدت زمان طولانی نمی تواند مواد را نگه دارد.کنار تخته برش که به طور موقت مقداری از سبزی های خرد شده را نگهداری می کند مثل ریجسترها است.گوشه تخته برش دستیابی خیلی سریعی برای خرد کردن سبزی ها دارد اما نمی تواند زیاد از آنها نگهداری کند.کاسه سالاد شبیه یک ریجستر موقتی است و برای ذخیره سازی سالاد تا وقتی که به یخچال برگردانده شود است(مثل برگرداندن داده ها به روی دیسک)یا برای گذاشتن روی میز شام (مثل خروجی دهی داده ها به سوی ابزار خروجی). برای یک مثال تخصصی تر به بررسی چگونگی کار برنامه لیست حقوقی می پردازیم.فرض کنید این برنامه حقوق یک کارمند را محاسبه می کند.داده های لازم ساعتهای کار و نرخ حقوق است.داده ها به محاسبه حقوق ساعت اضافه کاری ٬ پاداش٬ کسورات وابسته است.داده های کارکنان در حافظه ثانویه قابل دسترسی است.cpu محاسبات را برای یک کارمند داده ها را تکمیل می کند داده های کارمند بعدی از حافظه ثانویه به حافظه و در آخر در ریجستری آورده می شود.جدول زیر مشخصه هایی از انواع گوناگون داده را در سلسه مراتب ذخیره سازی خلاصه می کند. دوام قیمت نسبی ظرفیت سرعت ذخیره سازی ندارد بالاترین پایین ترین سریعترین ریجسترها ندارد بالا متوسط/کم خیلی سریع RAM دارد کم کم خیلی آهسته فلاپی دارد خیلی پایین خیلی بالا متعادل هارد دیسک RAM ارزانتر٬سریعتر و دائمی است . ممکن است دیسکها به مرور دیگر استفاده نشوند و دیسکهای قابل انتقال مثل فشرده یا cd ها شاید باقی بمانند. Cpu چه طور دستورالعمل را اجرا می کند؟ حال می خواهیم ببینیم دستورالعملها چه طور در برنامه اجرا می شود.بیشتر کامپیوترهای امروزی می تواند تنها یک دستور را در زمان خیلی سریع اجرا کند.بیشتر کامپیوتر های شخصی می توانند دستورالعملها را در کمتر از 1 بیلیون ثانیه اجرا کنند. قبل از اینکه یک دستورالعمل بتواند اجرا شود. دستورالعملهای برنامه و داده ها ورودی از یک دستگاه ورودی یا حافظه ثانویه در مکانی از حافظه مانند شکل قرار دارند.واحد پردازش مرکزی چهار مرحله زیر را برای هر دستور انجام می دهد : 1)واحد کنترل دستورالعملها را از حافظه می گیرد. 2)واحد کنترل دستورالعملها را رمزگشایی می کند و داده های لازم را از حافظه به واحد محاسبه و منطق هدایت می کند. این دو مرحله باهم زمان دستور یا I-time نامیده می شود. 3)واحد محاسبه و منطق عمل حساب یا دستور العملهای منطقی را اجرامی کندیعنیALU کنترل می کند و عمل واقعی را روی داده انجام می دهد. 4)واحدمحاسبه و منطق نتایج عملیات را در ریجستریا حافظه ذخیره می کند.مراحل 3 و 4 با هم زمان اجرا یا E-timeنامیده می شود. در آخر واحد کنترل نتایج را از حافظه به یک دستگاه خروجی یا یک حافظه ثانویه می فرستد.هر ترکیب I-time وE-time چرخه ماشین نامیده می شود.شکل زیر چرخه ماشین یک دستورالعمل را نشان می دهد. هر واحد پردازشگر مرکزی یک ساعت داخلی دارد که پالسهایی را با یک سرعت ثابت برای همزمان کردن اعمال کامپیوتر تولید می کند.هر دستور در چرخه ازتعداد زیادی دستورsub-instruction ساخته شده است که باید کمترین مقدار را از مدار ساعت بگیرند.هر نوع از واحد پردازش مرکزی برای فهمیدن یک گروه خاصی از دستورالعملها که مجموعه دستورات نامیده می شوند طراحی شده اند مثل زبانهای مختلفی که برای در بین مردم وجود دارد.بنابراین یک cpu دستورالعملهای cpu دیگر را نمی فهمد. جای دستورالعملها و داده ها در حافظه کاملا جداست پس واحد کنترل چه طور می تواند آنها را پیدا کند؟موقعیت هر دستورالعمل و داده شبیه صندوق های پست در جلوی خانه توسط یک آدرس عددی معرفی می شود و مانند آن آدرس ها مکان ثابتی دارند اما ممکن است محتوای آنها(دستورالعملها و داده ها)تغییر کند یعنی ممکن است دستور یا داده جدیدی در آنها قرار داده شود . واحد پردازشگر مرکزی cpu کامپیوتر به طور اساسی در یک بخش ماشین که ما آن را نمی بینیم کار می کند.یک کنترل مرکزی که داده های ورودی را به اطلاعات خروجی تبدیل می کند واحد پردازش مرکزی cpu که بسیار پیچیده است مجموعه ی وسیعی از مدارهای الکترونیکی است که دستورات برنامه های ذخیره شده را اجرا می کنند.همه کامپیوترها ی بزرگ یا کوچک یک واحد پردازشگر مرکزی دارند. واحد پردازشگر مرکزی شامل 2 بخش است :واحد کنترل و واحد حساب و منطق.هر بخش کارهای مخصوصی دارد. کامپیوتر ها از دو نوع حافظه استفاده می کنند: حافظه اصلی و حافظه جانبی Cpu مثل حافظه به دو بخش دستورالعملها و داده ارجاع داده می شود.با وجود اینکه به طور تکنیکی حافظه بخشی از cpu نیست. حافظه کامپیوتر داده ها را به طور موقت نگهداری می کند. در این زمان کامپیوتر یک برنامه را اجرا می کند .حافظه ثانویه به طور دائم یا نیمه دائم داده ها را روی مغناطیسی بیرونی یا واسطه نوری نگهداری می کند.دیسکتها و دیسکهای CD-ROM که شما در کامپیوتر های شخصی می بینید دستگاه های حافظه ثانویه هستند مثل هارد دیسک ها. اکنون اجزای یک cpu را بررسی می کنیم. معماری ها در رایانه‌های معاصر واحد محاسبه و منطق(ALU) را به همراه واحد کنترل در یک مدار مجتمع که واحد پردازشی مرکزی (CPU) نامیده می‌شود، جمع نموده اند. عموما، حافظه رایانه روی یک مدار مجتمع کوچک نزدیک CPU قرار گرفته. اکثریت قاطع بخش‌های رایانه تشکیل شده‌اند از سامانه‌های فرعی (به عنوان نمونه، منبع تغذیه) و یا دستگاههای ورودی/خروجی. برخی رایانه‌های بزرگ‌تر چندین CPU و واحد کنترل دارند که بصورت هم‌زمان با یکدیگر درحال کارند. این‌گونه رایانه‌ها بیشتر برای کاربردهای پژوهشی و محاسبات علمی بکار می‌روند. کارایی رایانه‌ها بنا به تیوری کاملاً درست است. رایانه داده‌ها و دستورالعمل‌ها را از حافظه اش واکشی (fetch) می‌کند. دستورالعمل‌ها اجرا می‌شوند، نتایج ذخیره می‌شوند، دستورالعمل بعدی واکشی می‌شود. این رویه تا زمانی که رایانه خاموش شود ادامه پیدا می‌کند. واحد پردازنده مرکزی در رایانه‌های شخصی امروزی مانند پردازنده‌های شرکت ای-ام-دی و شرکت اینتل از معماری موسوم به Pipeline استفاده می‌شود و در زمانی که پردازنده در حال ذخیره نتیجه یک دستور است مرحله اجرای دستور قبلی و مرحله واکشی دستور قبل از آن را آغاز می‌‌کند. همچنین این رایانه‌ها از سطوح مختلف حافظه نهانگاهی استفاده می‌کنند که در زمان دسترسی به حافظه اصلی صرفه جویی کنند. سیستم عامل os رایانه همیشه نیاز دارد تا برای بکارانداختنش حداقل یک برنامه روی آن در حال اجرا باشد. تحت عملکردهای عادی این برنامه همان سیستم عامل یا OS است. سیستم یا سامانه عامل تصمیم می‌گیرد که کدام برنامه اجرا شود، چه زمان، از کدام منابع (مثل حافظه، ورودی/خروجی و …) استفاده شود. همچنین سیستم عامل یک لایه انتزاعی بین سخت افزار و برنامه‌های دیگر که می‌‌خواهند از سخت افزار استفاده کنند، می‌‌باشد، که این امکان را به برنامه نویسان می‌‌دهد تا بدون اینکه جزییات ریز هر قطعه الکترونیکی از سخت افزار را بدانند بتوانند برای آن قطعه برنامه نویسی نمایند. برنامه ها برنامه رایانه‌ای فهرست‌های بزرگی از دستورالعمل‌ها (احتمالاً به همراه جدول‌هایی از داده) برای اجرا روی رایانه هستند. خیلی از رایانه‌ها حاوی میلیونها دستورالعمل هستند، و بسیاری از این دستورات به تکرار اجرا می‌شوند. یک رایانه‌ شخصی(PC) نوین نوعی (درسال ۲۰۰۳) می‌تواند در ثانیه میان ۲ تا ۳ میلیارد دستورالعمل را پیاده نماید. رایانه‌ها این مقدار محاسبه را صرف انجام دستورالعمل‌های پیچیده نمی‌کنند. بیشتر میلیونها دستورالعمل ساده را که توسط اشخاص باهوشی «برنامه نویسان» در کنار یکدیگر چیده شده‌اند را اجرا می‌کنند. برنامه نویسان خوب مجموعه‌هایی از دستورالعمل‌ها را توسعه می‌‌دهند تا یکسری از وظایف عمومی را انجام دهند(برای نمونه، رسم یک نقطه روی صفحه) و سپس آن مجموعه دستورالعمل‌ها را برای دیگر برنامه نویسان در دسترس قرار می‌‌دهند.(اگر مایلید «یک برنامه نویس خوب» باشید به این مطلب مراجعه نمایید.) رایانه‌های امروزه، قادرند چندین برنامه را در آن واحد اجرا نمایند. از این قابلیت به عنوان چندکارگی (multitasking) نام برده می‌شود. در واقع، CPU یک رشته دستورالعمل‌ها را از یک برنامه اجرا می‌کند، سپس پس از یک مقطع ویژه زمانی دستورالعمل‌هایی از یک برنامه دیگر را اجرا می‌کند. این فاصله زمانی اکثرا به‌عنوان یک برش زمانی (time slice) نام برده می‌شود. این ویژگی که CPU زمان اجرا را بین برنامه‌ها تقسیم می‌کند، این توهم را بوجود می‌‌آورد که رایانه هم‌زمان مشغول اجرای چند برنامه است. این شبیه به چگونگی نمایش فریمهای یک فیلم است، که فریمها با سرعت بالا در حال حرکت هستند و به نظر می‌‌رسد که صفحه ثابتی تصاویر را نمایش می‌‌دهد. سیستم عامل همان برنامه‌ای است که این اشتراک زمانی را بین برنامه‌های دیگر تعیین می‌کند.
نحوه ارتباط ALU با بخش های مختلف ریز پردازنده به چه صورتی است؟
ALU داده را از ثبات های روردی دریافت کرده وسپس واحد کنترل(CU) به ALU می گوید که چه عملیاتی را باید بر روی داده انجام دهد. ALUنتایج را بر روی یک ثبات خروجی ذخیره می کند.