CPU چیست ؟ ـــ نحوه کار پردازنده چیست و CPU چگونه کار میکند؟

آیا می‌دانید پردازنده کامپیوتر یا CPU چیست و نحوه کار CPU چگونه است؟ قبل از اینکه شروع کنیم و بگوییم پردازنده چیست ؟ درباره cpu باید این نکته را مطرح کنیم که پردازنده های مدرن دستورات بسیار پیچیده تری نسبت به آن چه که ما در این مقاله به آن می‌پردازیم، دارند. تقریبا فهمیدن تمام ریزه کاری های یک تراشه پردازنده با داشتن بیش از میلیاردها ترانزیستور برای یک فرد، احتمالی نزدیک به صفر دارد. با این حال، اساس کار و چگونگی قرار گرفتن آن ها ثابت است، و فهمیدن اصول اولیه آن ها به شما یک درک بهتری برای فهمیدن سیستم های مدرن خواهد داد.
 
شروع آهسته
 

 
کامپیوترها به صورت باینری عمل می‌کنند و تنها دو حالت را متوجه می‌شوند: حالت خاموش و روشن. برای محاسبات در سیستم باینری (دودویی)، از وسیله‌ای به عنوان ترانزیستور استفاده می‌شود. ترانزیستور تنها اجازه‌ی عبور جریان از طریق سورس(Source)  به درین (Drain) به شرطی که در گیت (Gate) جریان وجود داشته باشد را خواهد داد. اساساً، ترانزیستور یک سوییچ بصورت باینری را شکل می‌دهد (قطع یا وصل) که توسط سیگنال دومی (سیگنال گیت) کنترل می‌شود.
کامپیوترهای امروزی از میلیاردها ترانزیستور برای انجام محاسبات استفاده می‌کنند، اما در پایین ترین سطح، شما تنها نیاز  به تعداد کمی ترانزیستور برای ساخت اجزای اصلی دارید، که به عنوان دروازه (Gate) شناخته می‌شوند.
 
دروازه های منطقی
 

 
اگر می‌خواهید بدانید که پردازنده چیست باید از مفهوم دروازه یا گیت منطقی شورع کنید. با قرار دادن تعداد مناسبی ترانزیستور در کنار یکدیگر می‌توان یک دروازه منطقی ایجاد کرد. دروازه منطقی را نوعی مدار کوچک تصور کنید. این دروازه های منطقی دو ورودی باینری را به عنوان ورودی دریافت کرده، یک عملیات روی آن‌ها انجام داده، و سپس خروجی را بر می‌گردانند. به طور مثال در دروازه OR، خروجی true (صحیح) است، به شرط اینکه تنها یکی از ورودی های آن صحیح باشد. دروازه AND شرط صحیح بودن دو ورودی، و دروازه XOR تعداد فرد صحیح بودن ورودی را بررسی می‌کند، و دروازه هایی که N در آن‌هاست (NOR , NAND , XNOR) شرط دروازه های اصلی را به صورت برعکس اجرا می‌کنند.
 
انجام ریاضیات با دروازه ها منطقی
 

 
شما می‌توانید با داشتن تنها دو دروازه عملیات پایه ای جمع را انجام دهید. در شکل بالا، که با Logicly که یک سایت آنلاین است ساخته شده، ساختار یک نیم جمع کننده نشان داده شده است. دروازه XOR در اینجا اگر یکی از ورودی هایش یک باشد خروجی یک را تولید کرده و دروازه AND اگر هر دوی ورودی در آن یک باشد روشن خواهد شد. با این توضیحات اگر هر دو ورودی A و B روشن باشند، خروجی دروازه XOR خاموش، و خروجی دروازه AND روشن می‌شود. و به جواب صحیح دو خواهیم رسید:
 

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

 
یک تمام جمع کننده سه ورودی دارد-دو ورودی برای جمع کردن، و دیگری برای “رقم نقلی (Carry in)”. رقم نقلی زمانی مورد استفاده قرار می‌گیرد که عدد نهایی که ما در یک بیت می‌توانیم ذخیره کنیم از مقدار حداکثر آن تجاوز کند. تمام جمع کننده ها به صورت زنجیرهایی به هم متصل شده، و رقم نقلی از یکی به دیگری انتقال پیدا می‌کند. رقم نقلی به نتیجه ی دروازه XOR در اولین نیم جمع کننده اضافه شده، همچنین یک دروازه OR اضافی برای کنترل دو خروجی نیم جمع‌کننده ها قرار داده شده است. در موقعیتی که هر دو ورودی در حالت روشن قرار بگیرند، رقم نقلی نیز روشن شده، و به ورودی تمام جمع کننده در طبقه بعدی ارسال می‌شود.
 

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

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

چگونه برنامه نویس شویم ؟ ___ آموزش برنامه نویسی از صفر (بسته جامع)

 
 
 
همچنان که ما ورودی ها را در این سلول ذخیره کردیم، نیاز به روشی برای خواندن این بیت ها نیز داریم. این عمل با مدار فعالساز که در خروجی قرار گرفته، انجام می‌شود. به این صورت که یک مجموعه ای از دروازه های AND برای هر بیت در حافظه قرار داده شده است، و تمام ورودی‌ این دروازه ها به بیت Read اتصال پیدا کرده اند. بیت های Read و Write در بعضی مواقع “Set” و “Enable” نیز نامیده می‌شوند.
کل این مجموعه در آنچه به عنوان رجیستر شناخته می شود بصورت یک پکیج بسته بندی شده اند. این رجیسترها به گذرگاه ها (Bus)، که مجموعه ای از سیم ها هستند، به تمام قسمت های مختلف در کل سیستم متصل شده‌اند. حتی کامپیوترهای مدرن نیز گذرگاه دارند، گرچه ممکن است برای عملکرد های چندگانه (multitasking)  از تعداد بیشتری گذرگاه برای بهبود عملکرد خود استفاده کنند.
 

 
هر رجیستر یک بیت برای خواندن و یک بیت برای نوشتن دارد، اما در این حالت قرار گیری، ورودی و خروجی مشترک هستند. بطور مثال، اگر شما نیاز به تهیه یک کپی از محتوی رجیستر R1 در R2 داشته باشید، باید بیت read را در رجیستر R1 فعال کرده، که محتوی R1 روی گذرگاه قرار گیرد، در همین حین که بیت read در رجیستر R1 روشن است، بیت write در رجیستر R2 را فعال کنید، تا کپی اطلاعات از روی گذرگاه به رجیستر R2 منتقل شود.
همچنین رجیسترها برای ساخت RAM نیز مورد استفاده قرار می‌گیرند. RAM ها معمولا در یک شبکه، با سیم هایی که در دو جهت هستند قرار دارند:
 

 
رمزگشاها (Decoder) ورودی های دودویی را گرفته و سیم های متناظر را در خروجی روشن می‌کنند. بطور مثال، “۱۱” عدد باینری ۳، که نمایش بیشترین عدد با دو بیت است، به همین علت سیم با بیشترین شماره در خروجی روشن می‌شود. در هر تقاطعی که سیم ها به یکدیگر برخوردکرده‌اند، رجیسترها وجود دارند. مانند رجیستر R که در محل تقاطع دو سیم قرار دارد.
تمام این سیم ها به یک گذرگاه مرکزی و یک ورودی read و write متصل شده اند. هر دو ورودی read و write به شرطی فعال می‌شوند که سیم هایی که از روی یکدیگر عبور داده شده اند روشن باشند، که به شما این اجازه را می‌دهند که رجیستری که میخواهید برای عملیات خواندن و نوشتن فعال شود. باز باید این را تکرار کنیم که RAM های پیشرفته تر بسیار پیچیده تر هستند اما این مجموعه هنوز کارایی خود را از نظر مفهومی دارد.
 
پالس ساعت، استپر و رمزگشا
رجیسترها تقریبا در همه جا استفاده دارند و ابزاری اساسی برای انتقال داده ها و ذخیره اطلاعات در هستند. پس اگر این چنین است چه چیزی به آن ها دستور می‌هد که حرکت انتقال داده ها را انجام دهند؟
پالس ساعت (Clock) اولین قسمت در هسته پردازنده مرکزی است. و در طول یک بازه زمانی مشخص خاموش و روشن می‌شود. و اندازه گیری آن با واحد هرتز بوده یا بصورت کلاک بر ثانیه بیان می‌شود. سرعتی که در کنار پردازنده مرکزی بصورت اطلاعات به شما داده می‌شود: یک تراشه با سرعت ۵GHz می‌تواند ۵ میلیارد سیکل بر ثانیه را تولید کند. سرعت پالس ساعت یک پارامتر اندازه گیری بسیار خوب برای سریع بودن واحد پردازنده مرکزی شما است.
 

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

 
این دروازه‌های AND همچنین به خروجی هر قسمت از رمزگشای دستورالعمل (Instruction Decoder) اتصال دارند. رمزگشای دستورالعمل یک دستورالعمل را دریافت کرده مانند “R2 را به R1 تنظیم کن” و سپس آن را رمزگشایی کرده بطوری که CPU بتواند این دستور را بفهمد. این واحد دارای رجیستر مخصوص به خود است و رجیستر دستورالعمل (Instruction Register) نام دارد، که عملیات در حال اجرا در آن قسمت ذخیره می‌شود. اینکه دقیقاً چطور این کار انجام می‌شود به سیستمی که شما با آن کار می‌کنید برمی‌گردد، اما پس از رمزگشایی، مجموعه صحیح روشن شده و بیت هایی را برای رجیسترهای فعال ارسال می کند.
 
 
 
هم رویش منتشر کرده است:

کامپیوتر چیست ؟ ____ کامپیوتر چگونه کار میکند ؟

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

 
اکنون تمام ساده سازی های ما برای درک نحوه کار پردازنده یا CPU به اتمام رسید. گذرگاه اصلی (Main Bus) کل سیستم را پوشش داده و تمام رجیسترها را با یکدیگر مرتبط می‌سازد. تمام جمع کننده‌ها، در کنار یک دسته از عملیات‌های دیگر، داخل واحد حساب منطقی (Arithmetic Logic unit) یا به طور اختصار ALU گردآوری شده‌اند. واحد ALU به گذرگاه اصلی متصل شده، و همچنین رجیستر مربوط به خود برای ذخیره عدد دوم را دارد تا بتواند عملیات بعدی را انجام دارد.
برای انجام محاسبه، داده های برنامه از قسمت RAM سیستم در قسمت کنترل بارگیری می‌شوند. سپس بخش کنترل دو عدد از RAM را می خواند، عدد اول را در قسمت رجیستر دستورالعمل بارگذاری کرده، بعد از آن عدد دوم را روی گذرگاه می‌گذارد. در این میان، دستوری برای ALU ارسال شده که باید چه عملیاتی را روی این دو عدد انجام دهد. واحد ALU تمام محاسبات خواسته شده را انجام می‌دهد و نتیجه را در رجیستر دیگری ذخیره می‌کند، که واحد پردازنده مرکزی می‌تواند داده‌های محاسبه شده را از آن رجیسترها دریافت کرده و سپس روند به همین شکل ادامه می‌یابد.
اگر در علوم کامپیوتر مبتدی هستید ما انتظار نداریم که شما این مقاله را به طور کامل درک کرده باشید. همین که یک دید کلی پیدا کرده باشید که پردازنده چیست، کافی خواهد بود. برای درک بهتر حتما این برگ رایگان کامپیوتر چیست (+) را ببینید.
 
کلیدواژگان
پردازنده چیست – وظایف cpu – همه چیز درباره cpu – مخفف cpu چیست – cpu چیست – سی پی یو چیست – cpu – سی پی یو – سی پی یو چیست و انواع آن – cpu کامپیوتر چیست – سی پی یو کامپیوتر – درباره cpu – همه چیز درباره cpu – تحقیق درباره cpu – پردازنده مرکزی – پردازنده چیست – cpu چیست به زبان ساده – معماری cpu – معماری cpu چیست – CPU چگونه کار میکند – یک CPU چگونه کار می کند – چطور بفهمیم cpu درست کار می کند – CPU چگونه کار می کند – گیت منطقی – گیت منطقی or – گیت منطقی nor – گیت منطقی and چیست – پردازنده چیست – گیت منطقی not – گیت منطقی اور – گیت منطقی چگونه کار میکند – گیت های منطقی – انواع گیت های منطقی – گیتهای منطقی – پردازنده چیست – درباره cpu
 
 
 
منبع
how-does-a-cpu-actually-work
دوره های آموزشی مرتبط

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

۵۹.۰۰۰ تومان

آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع

۱۲۵.۰۰۰ تومان

مقاله CPU چیست ؟ ـــ نحوه کار پردازنده چیست و CPU چگونه کار میکند؟ اولین بار در هم رویش. انتشار یافته است.