یک کامپیوتر چگونه اطلاعات را پردازش میکند؟ (به زبان ساده)

زمان مطالعه: حدود 4 دقیقه / 16 گفتگو

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

پردازنده (CPU) و حافظه موقت (RAM) نقش مهمی را در پردازش اطلاعات بر عهده دارند، بنابراین قبل از اینکه نحوه پردازش داده‌ها را مرور کنیم باید کمی با نحوه کار این دو بخش آشنا شویم.

پردازنده چگونه کار میکند؟

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

  1. فراخوانی: دستورات و داده‌ها از حافظه دریافت می‌شوند.
  2. رمزگشایی: اطلاعات به زبان باینری (زبان کامپیوتر) تبدیل شده و آماده پردازش می‌شوند.
  3. پردازش و اجرا: پردازنده با عملیات محاسباتی و منطقی (ALU) داده‌ها را مورد پردازش قرار می‌دهد.
  4. بازنویسی: نتیجه کار به واحدهای خروجی ارسال میشود و یا در حافظه ذخیره می‌گردد.

این‌ها مراحل اصلی پردازش داده در CPU هستند، به بیان دیگر اطلاعات با پشت سر گذاشتن این مراحل توسط پردازنده مورد تجزیه تحلیل و پردازش قرار می‌گیرند (در ادامه بیشتر با این مراحل آشنا خواهیم شد)

supercomputer-brain5

اجزای اصلی پردازنده را بشناسید:

تمام پردازنده‌ها از ۳ قسمت مهم تشکیل شده‌اند که عبارتند از:

  1. واحد کنترل: وظیفه کنترل ترتیب اجرای دستورات را بر عهده دارد، دستورات و داده‌ها باید یکی یکی به پردازنده ارسال شده و مورد پردازش قرار بگیرند، این بخش ترتیب اجرای فرامین را در CPU مشخص میکند.
  2. واحد حافظه: اطلاعات یا نتایج پردازش در حافظه موقت سی‌پی‌یو ذخیره می‌گردد و در صف پردازش قرار میگیرند یا برای پردازش های بعدی مورد استفاده قرار میگیرند، حافظه CPU دارای دو بخش است: حافظه کش (Cache) و حافظه رجیستر (Register) که در ادامه بیشتر با آنها آشنا خواهیم شد.
  3. واحد محاسبه و منطق: این قسمت را میتوان واقعا مغز متفکر پردازنده نامید!
    اطلاعات در این بخش توسط عملیات محاسبه‌ای، منطقی و مقایسه ای مورد تجزیه تحلیل و پردازش قرار می‌گیرند.

حافظه پردازنده چه نقشی در پردازش اطلاعات دارد؟

همانطور که متوجه شدید یکی از اجزای اصلی پردازنده را حافظه تشکیل میدهد، که شامل حافظه Cache و حافظه Register میشود، بیایید کمی بیشتر با این دو بخش آشنا شویم:

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

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

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

نحوه پردازش اطلاعات به چه صورت است؟

همانگونه که در ابتدا توضیح دادیم پردازش روی داده‌ها در ۴ مرحله اصلی انجام میشود، ابتدا اطلاعات موجود در هارد سیستم به RAM منتقل میشوند و پس از آن برای پردازش یکی یکی وارد پردازنده میگردند (مرحله فراخوانی)

پس از آن داده‌ها کامپایل شده و به زبان باینری تبدیل میشوند تا برای پردازنده قابل فهم باشند (مرحله رمزگشایی)

حال وقت آن رسیده تا داده ها مورد پردازش قرار بگیرند، در این مرحله اطلاعات یکی یکی توسط واحد کنترل به قسمت محاسبه و منطق (ALU) منتقل میشوند و با توجه به دستورات مورد تجزیه تحلیل قرار میگیرند (مرحله پردازش و اجرا)

پس از اینکه پردازش روی اطلاعات انجام شد نتایج کار به RAM منتقل میشود و از آنجا به واحدهای خروجی ارسال میگردد یا برای ذخیره در سیستم به هارد انتقال میابد.

مراحل پردازش اطلاعات توسط CPU را در نمودار بالا مشاهده میکنید
مراحل پردازش اطلاعات توسط CPU را در نمودار بالا مشاهده میکنید

در پایان این آموزش شما باید مهارت های زیر را کسب کرده باشید:

  1. با پردازنده آشنا شده باشید و نحوه کار آن را بدانید.
  2. نقش رم را در پردازش داده ها بدانید.
  3. با حافظه های کش و رجیستر آشنا شده باشید.
  4. مراحل پردازش داده را بدانید.
  5. با اجزای اصلی سی پی یو آشنا شده باشید و وظایف هر کدام را بدانید.
  6. با نحوه پردازش اطلاعات توسط پردازنده آشنا شده باشید.

شما یک گام جلوتر از دیگران باشید! اگر به آی‌تی و تکنولوژی علاقه‌مندید و دوست دارید سریع‌تر در این زمینه پیشرفت کنید، همین حالا به جمع ۲۷۷۵ عضو همیار آی‌تی بپیوندید، دسترسی به تمام آموزش‌های پریمیوم، دریافت جدیدترین آموزش‌های کاربردی مرتبط با آی‌تی و استفاده از مشاوره‌ی رایگان، برخی از مزایای عضویت در سایت هستد، شما نیز به کاربران همیار پیوسته و همین حالا وارد دنیای حرفه‌ای‌ها شوید... من هم می‌خواهم عضو ویژه‌ی همیار شوم

16 گفتگو

در بحث‌‌ پیرامون این مقاله شرکت کنید، سوالات شما توسط کارشناسان همیار آی‌تی پاسخ داده می‌شود...

  1. Avatar مرتضی گفت:

    کامل نبود. چطور یکسری فلز که با هم ترکیب می شوند میتوانند ۲ ضربدر ۳ را محاسبه کنن؟! cpu ها جامد و تشکیل شده از ترکیب فلزات بی جان هستند، پس چطور میتوانند ۳ ضربدر ۴ را محاسبه کنند؟!
    در این مقاله، سوالات بالا جواب داده نشده است.

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام مرتضی جان، ممنون از اینکه نظرتون رو با ما به اشتراک گذاشتید، توی این مقاله هدفمون این بوده که نحوه‌ی پردازش منطقی رو در CPU بررسی کنیم و مقاله‌ی جداگانه‌ای در خصوص نحوه‌ی عملکرد سخت‌افزاری CPU به‌زودی در همیار آی‌تی منتشر خواهد شد، اما برای اینکه پاسخ سوالتون رو بگیرید من به‌صورت خلاصه براتون توضیح میدم:
      مهم‌‌ترین جز تشکیل دهنده‌ی CPUها چیزی به اسم ترانزیستور هست، ترانزیستورها از عنصری به اسم سیلیکون تشکیل شدند (همون عنصر بی‌جان که مد نظر شماست که از شن و ماسه گرفته میشه) اما این ماده یه ویژگی مهم داره و اون هم اینه که نوعی نیمه‌رسانا محسوب میشه،‌ نیمه‌رساناها در صورتی که یه مقداری ولتاژ بهشون وارد بشه جریان رو از خودشون عبور میدند و در اصل با یه مقداری ولتاژ می‌تون روشن یا خاموش بشن که این روشن و خاموش بودن‌ها به معنی ۰ و ۱ هست (بیت روشن یعنی ۱ و بیت خاموش معادل ۰ هست) در پایان هم تمام عملیات ریاضی با همین ۰ و ۱ ها محاسبه میشن (می‌تونید در مورد قوانین جبر بولی مطالعه کنید)
      درسته که در ظاهر CPU ترکیبی از فلزات بی‌جان هست، اما این فلزات (عناصر سازنده) دارای ویژگی هستند که باعث تشکیل ترانزیستور و در نتیجه CPUهای امروزی شده :‌)

  2. Avatar ناشناس گفت:

    تشکر !

  3. Avatar مینا گفت:

    ممنون خیلی کامل بود

  4. Avatar ناشناس گفت:

    فرق میان Ram و ریجستیر چه است

    1. فرشاد گوهری فرشاد گوهری گفت:

      رم یک حافظه‌ی جداگونه هست، خارج از CPU قرار داره، رجیستر یا ثبات حافظه‌‌های کوچک داخل CPU هستن که پردازنده موقع محاسباتش، مقادیری رو داخل اونها ذخیره میکنه، در حقیقت داده‌ها موقع پردازش در رجیسترها ذخیره میشن و وقتی محاسبات روشون انجام شد به رم منتقل میشن، از اونجایی که رجیسترها داخل خود CPU هستن در نتیجه سرعت دسترسی بشون خیلی سریع‌تر هست نسبت به رم.

  5. Avatar iran_nasa گفت:

    سلام خدمت عزیزان دل خیلی ازتون ممنونم من تو کار رباتیکم بعد میخواستم بدونم بهترین پردازنده برای زبانcتو یه رباط کدوم icیا پردازنده میتونه باشه؟لطفا اسمش رو بگید با یه کم توضیخ خیلی مرسی دارین .
    تشکر

  6. Avatar محمد گفت:

    سلامی دوباره نمیدونم بخدا اصلا خیلی گیج شدم من برای یاد گرفتن دوره A+ به این منبع رجوع کردم : http://www.brainbell.com/tutors/A+/Hardware/How_Microprocessors_Work.htm
    هر شب که میخوام یک بخشو بخونم سر درد میگیرم کامل توضیح نمیده انگلیسی هم هست بعضی جاها جمله هارو قاطی میکنم میام منابع فارسیو میخونم بیشتر قاطی میکنم اصلا موندم ببینید درست نوشته تو سایتش؟
    منبع دیگه ای برای این دوره A+ نیست؟ فارسی یا انگلیسی ولی کامل توضیح داده باشند
    در مورد این میکروپروسسر روش کارش هم میشه توضیح بدین مخم ترکیده
    راستی میشه این نظر منتظر نشه به ایمیلم جوابشو بفرستید خواهشا علاقه دارم اما هیچی از اینا نمیفهمم

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام محمد جان
      ممکنه بتونید با ویدئو آموزشی راحت‌تر متوجه بشید، به این آدرس مراجعه کنید، ویدئوهای آموزشی رایگان در مورد ای پلاس و کامپتیا هست:
      https://www.cybrary.it/course/comptia-aplus/
      (برای استفاده از ویدئوها باید به صورت رایگان در سایتش عضو بشید)
      البته من خودم ویدئوها رو بررسی نکردم و از کیفیتشون اطلاعی ندارم، اگر شما بررسیش کردید و مناسب بود، لطفا بگید تا سایر دوستان هم استفاده کنن.
      من خودم خیلی در حوزه سخت‌افزار تخصص ندارم، واسه همین نظرتون رو به صورت عمومی منتشر کردم تا اگه سایر دوستان واردتر بودن راهنماییتون کنن.

    2. Avatar Abolfazl گفت:

      داداش به نظرم کلا بی خیال منابع فارسی شو، من چند وقت پیش میخواستم برنامه نویسی ++C رو یاد بگیرم. اول توی منابع فارسی دنبالش میگشتم تا اینکه بعد از ۲ ۳ ماه دیدم عملا هیچی بلد نیستم.
      واسه همین رفتم و به زبون انگلیسی دنبال مشکلم گشتم و بالاخره دست و پا شکسته یه چیزایی متوجه شدم، ولی چون خیلی زبان انگلیسم خوب نبود نفهمیدم بازم.
      واسه همین مجبور شدم برم کلاس 🙂
      الانم هر وقت مشکلی واسم پیش میاد هم منابع فارسی و هم انگلیسی رو جستجو میکنم و با هم میکس میکنمشون و بالاخره مشکلم حل میشه.

    3. Avatar دلارام گفت:

      آقا محمد اگه زبان انگلیسیتون خیلی خوب نیست، میتونید توی شهرتون بگردید و به مجتمع های فنی یا آموزشگاه های کامپیوتر مراجعه کنید و در دوره های CompTIA و +A شرکت کنید.
      (منم این مشکلو داشتم و اینطوری حل شد بالاخره)

  7. Avatar lind گفت:

    سلام توی متن منظور از دستور العمل چیه و چر باید برای دستور العمل صبر بکنه در مرحله اول؟

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام
      لطفا بیشتر توضیح بدین، کجای متن مد نظرتونه؟
      اگه منظورتون ترتیب اجرای دستورات در پردازنده هست، بله گاهی وقتا لازم میشه اول یه دستور پردازش بشه (که نتیجش معمولا در حافظه‌ی رجیستر ذخیره میشه) و نتیجه‌ی این پردازش در عملیات بعدی مورد استفاده قرار میگیره.

  8. Avatar محمد گفت:

    سلام طی تحقیقاتی که گردم فهمیدم ریجستری ها بر اساس زبون اسمبلی هستند درسته؟
    ممرحله دیکد دستورالعمل ها به چه دردی میخوره وقتی واکشی مستقیم از رم انجام میشه پس باید اطلاعات رو اول توی ریجستر ها سیو بکنه بعد از توی ریجستر ها بخونه؟
    اطلاعات وقتی از توی رم به CPU ارسال میشه به صورت باینری هستش چطوری توی ریجستری ها تبدیل به زبون اسمبلی میشه؟
    لطفا جواب بدید

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام دوست عزیز
      اطلاعات اول وارد کش میشن (به ترتیب از L3 به L1 منتقل میشن) و اون اطلاعاتی که پردازنده درحال کار روی اوناست در رجیستر ذخیره میشن (یا خود مقادیر یا آدرساشون)
      گاهی وقتا لازم میشه پردازنده قبل پردازش یه سری دستور، یه سری دستور دیگه رو پردازش کنه، در چنین شرایطی اطلاعات به زبان اسمبلی تبدیل میشن و در رجیستر ذخیره میشن (پردازنده بخشی داره با عنوان Assembler Unit که اطلاعات رو به زبان اسمبلی تبدیل میکنه) و بعد از پردازش دستورات اصلی، مجددا از رجیستر فراخوانی و دیکد میشن.
      (به همین دلیله که در زبان اسمبلی برنامه نویس میتونه مستقیم در رجیستر عمومی تغییر ایجاد کنه)
      و در نهایت اطلاعات به کمک واحد PC (Program Counter) به ترتیب دیکد میشن و میرن برای پردازش.

  9. Avatar Ali گفت:

    بسیار زیبا و گویا توضیح دادید.
    سپاس گزارم