یک توضیح هم در مورد تفاوت Cache و رجیستر بدم که تاپیک کامل بشه.
کش،حافظه ای هستش که به عنوان بافر میانی بین رم اصی و رجیستر ها عمل میکنه و داده هایی (سگمنت هایی) از رم اصلی را نیگه میداره که بیشترین بار بهش رجوع و استفاده شده.
*کش تنها محل نگه داری هستش و هیچ پردازشی در این حافظه انجام نمیشه.فقط نوع سریعتری از حافظه رم هستش. در پردازنده های قدیمی این حافظه(L2) به طور جداگانه روی برد CPU قرار میگرفته و حتی روی مادربرد،یعنی جدا از CPU محسوب میشده!
در طراحی پردازنده ها معمولا کش L1 درون هسته قرار میگیره و با فرکانس کاری هسته کار میکنه و کش L2 و L3 جدا از هسته به همراه Die پردازنده مجتمع میشه.
کش L1 به دو بخش تقسیم میشه،یک قسمت برای نگه داری opcode ها(دستورات پردازنده) و قسمت دیگه برای نگه داری داده ها به کار میره.
CPU برای دریافت داده ها ابتدا به کش L1 مراجعه میکنه و سپس L2 و L3 اگر داده یافت نشد،نهایتا به RAM مراجعه میکنه.
رجیستر ها خانه های حافظه ی بسیار بسیار کوچکتر (حدود یک ده هزارم) نسبت به کش هستند و محلی برای پردازش داده هایی هستش که از رم اصلی و کش دریافت میشه!
یکی از دلایل سرعت بیشتر رجیستر ها نسبت به کش این هستش که تمامی رجیستر ها از یک نام منحصر به فرد استفاده می کنند که در واقع یک معادل در زبان ماشین CPU براشون تعریف شده! (مثل اینکه به یک اسم طولانی یک علامت تک حرفی اختصاص بدیم!) بدون وجود رجیستر ها برای رجوع به حافظه رم/کش بایستی مرتب از آدرس های 32 بیتی و 64 بیتی اونها استفاده بشه که نگهداری این ها و پردازش روی این خانه های حافظه تاخیر بیشتری داره،اما رجیستر ها همیشه برای CPU تعریف شده و شناخته شده هستند و کد ماشین اونها بسیار کوتاه تر هستش(بیش از نصف) به همین دلیل هم هستش که حجم و تعداد این حافظه ها بسیار کم هستش،چرا که پیاده سازی و بومی سازی چنین حافظه هایی درون CPU محدودیت داره! و اگر قرار باشه 1 مگابایت حافظه رجیستر درون CPU تعبیه بشه شاید یک CPU ده برابر بشه و مهم تر اینکه،پیاده سازی ست دستورات اون نیز تقریبا غیر ممکن میشه!
نام گذاری این حافظه ها با کلمه ی "Register" و یا ثبات به همین دلیل هستش که این حافظه ها درون CPU رجیستر و ثبت شدند و ثابت هستند و CPU ها همیشه اونها رو به عنوان جزئی از خودش میشناسه. اما خانه های حافظه رم برای CPU متغییر و یا Variable هستش! و از نگاه CPU بهتره به حافظه ی رم بگیم Unregsiterd Memory !
Bookmarks