وبسایت شخصی بابک بدریان

معماری کامپیوتر

معماری کامپیوتر و میکروکنترلرها

در این پست به ساختار و معماری کامپیوتر و CPU می پردازیم که با میکروکنترلرها (از جمله AVR) مشترک هستند.

مهمترین قسمت هر کامپیوتر یا هر وسیله هوشمندی، CPU هست که همون مغز اون دستگاه هست.

این ساختار یا معماری که در این پست نشان خواهم داد، برای کامپیوتر و لپ تاپ و موبایل و میکروکنترلرها مشترک و صادق است.

تصویر کلی ساختار به صورت شکل زیر است:

معماری کامپیوتر

 

همون طور که می بینیم، هر کامپیوتر یا میکروکنترلر 2 قسمت اصلی داره. CPU و حافظه (Memory).

CPU خودش شامل 4 قسمت هست شامل CU و ALU و Register و Cache.

Memory یا حافظه ها هم انواع مختلفی می تونن باشند شامل RAM و ROM و Flash و غیره.

نکته: حافظه ها دو مدل هستند. نوع Volatile حافظه هایی هستند که اگر برق قطع شود حافظه شان می پرد. نوع Non-Volatile که اگر برق قطع شود حافظه شان باقی می ماند.

در ادامه، هر قسمت را توضیح می دهم:

 

CPU

CPU مخفف عبارت Central Processing Unit هست. به CPU اصطلاحا پرسسور (processor) یا میکروپروسسور (microprocessor) هم می گویند. همون طور که گفتیم CPU مغز اصلی هر کامپیوتر یا میکروکنترلر هستش. هر CPU از 3 قسمت اصلی ساخته شده:

ALU یا Arithmetic Logic Unit: قسمتی است که عملیات های منطقی و حسابی را انجام می دهد مثل جمع و تفریق تعیین بیت ها.

CU یا Control Unit: این قسمت مدیریت دسترسی data ها و دستورها از حافظه ها را انجام می دهد یعنی data ها را از حافظه ها به CPU می آورد که به این عمل fetch کردن می گویند. همچنین کنترل اطلاعات بین ALU و رجیسترها را هم انجام می دهد.

Register و Cache: اینها حافظه های داخل CPU هستند. دقت کنید اینها نباید با حافظه های خود کامپیوتر (شامل RAM و ROM و غیره) اشتباه شوند چون آنها همان طور که از عکس بالا پیداست، خارج از CPU قرار دارند. Register ها و cache حافظه های خیلی کوچیک هستند ولی با سرعت بسیار بسیار بالا. ظرفیت رجیسترها 32 یا 64 کیلو بایت است و ظرفیت کش حدود 2 مگابایت است.

Cache کپی های دیتاهایی را ذخیره می کند که به کرات (زیاد) استفاده می شوند. CPU در واقع Cache را قبل از RAM چک می کند و اگر برنامه ای در cache وجود داشت از آن استفاده می کند و دیگر در RAM نمی گردد، بنابراین سرعت افزایش می یابد.

cache فقط مخصوص کامپیوتر و سخت افزار نیست. بلکه حتی مرورگرهای وب (مثلا Google chrome) هم از کش برای افزایش سرعت شان استفاده می کنند.

 

Memory یا حافظه ها

اما منظور از این حافظه ها، حافظه های خارج از CPU هست که به دو دسته تقسیم می شوند: Main Memory و Second Memory.

1.1 Main Memory

Main Memory از نامش پیداست یعنی “حافظه اصلی” یا “حافظه اولیه” که مستقیما توسط CPU قابل دسترسی هستند. اینها ظرفیت شون از حافظه های داخل CPU (یعنی cache و register ها) بیشتره اما سرعت شون پایین تره. سه نوع حافظه اصلی داریم:

RAM یا Random Access Memory: وظیفه RAM بارگذاری و اجرای برنامه هایی است که در حال حاضر در حال استفاده هستند. سرعت RAM از حافظه های ثانویه سریعتر است و CPU می تواند مستقیما به آن دسترسی داشته باشد.

این حافظه Volatile است یعنی با قطع برق، حافظه اش می پرد.

ROM یا Read Only Memory: همان طور که از نامش پیداست این حافظه فقط می تواند خوانده شود و زمانی که در کارخانه برنامه ریزی شده دیگر تغییر نمی کند.

مقدار حافظه بسیار بسیار کمی دارد که فقط برنامه های ضروری در آن قرار دارند مانند برنامه های برای boot کردن کامپیوتر قبل از اینکه ویندوز بالا بیاید.

این حافظه Non-Volatile است یعنی اگر برق قطع شود اطلاعاتش باقی می ماند.

لازم به ذکر است که اخیرا و در سیستم های جدید، دیگر ROM استفاده نمی شود و به جای از حافظه flash استفاده می شود.

 

1.2 Secondary Memory

این حافظه ها storage هم نامیده می شوند. برای مثال هارد کامپیوتر (Hard Drive) از این نوع هستند.

این نوع حافظه ها، Non-volatile هستند یعنی با قطع برق پاک نمی شوند.

 

======================================

جمع بندی

پس فهمیدیم CPU شامل CU و ALU است و 2 حافظه دارد با نامهای Register ها و Cache. حافظه هایی هم خارج از CPU وجود دارند که ظرفیت شان بالاتر اما سرعت شان کمتر است مانند RAM و ROM و Flash.

نمودار زیر، به خوبی حافظه ها را مقایسه کرده که هرچه ظرفیت (size) آن حافظه بیشتر باشد، سرعت (speed) آن پایین تر است و بلعکس.

حافظه کامپیوتر


توسط

برچسب‌ها:

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *