Кеш-пам'ять процесора. Рівні і принципи функціонування
- Що таке кеш-пам'ять і її структура
- Для чого потрібна кеш-пам'ять процесора?
- Рівні кеш-пам'яті процесора
Одним з важливих чинників що підвищують продуктивність процесора, є наявність кеш-пам'яті, а точніше її обсяг, швидкість доступу і розподіл за рівнями.
Вже досить давно практично всі процесори оснащуються даним типом пам'яті, що ще раз доводить корисність її наявності. У даній статті, ми поговоримо про структуру, рівнях і практичне призначення кеш-пам'яті, як про дуже важливою характеристиці процесора .
Що таке кеш-пам'ять і її структура
Кеш-пам'ять - це надшвидка пам'ять використовувана процесором, для тимчасового зберігання даних, які найбільш часто використовуються. Ось так, коротко, можна описати даний тип пам'яті.
Кеш-пам'ять побудована на тригерах, які, в свою чергу, складаються з транзисторів. Група транзисторів займає набагато більше місця, ніж ті ж самі конденсатори, з яких складається оперативна пам'ять . Це тягне за собою безліч труднощів у виробництві, а також обмеження в обсягах. Саме тому кеш пам'ять є дуже дорогою пам'яттю, при цьому маючи нікчемними обсягами. Але з такої структури, випливає головна перевага такої пам'яті - швидкість. Так як тригери не потребують регенерації, а час затримки вентиля, на яких вони зібрані, невелика, то час перемикання тригера з одного стану в інший відбувається дуже швидко. Це і дозволяє кеш-пам'яті працювати на таких же частотах, що і сучасні процесори.
Також, важливим фактором є розміщення кеш-пам'яті. Розміщена вона, на самому кристалі процесора, що значно зменшує час доступу до неї. Раніше, кеш пам'ять деяких рівнів, розміщувалася за межами кристала процесора, на спеціальній мікросхемі SRAM десь на просторах материнської плати. Зараз же, практично у всіх процесорів, кеш-пам'ять розміщена на кристалі процесора.
Для чого потрібна кеш-пам'ять процесора?
Як уже згадувалося вище, головне призначення кеш-пам'яті - це зберігання даних, які часто використовуються процесором. Кеш є буфером, в який завантажуються дані, і, незважаючи на його невеликий обсяг, (близько 4-16 Мбайт) в сучасних процесорах , Він дає значний приріст продуктивності в будь-яких додатках.
Щоб краще зрозуміти необхідність кеш-пам'яті, давайте уявимо собі організацію пам'яті комп'ютера у вигляді офісу. Оперативна пам'ять буде являти собою шафу з папками, до яких періодично звертається бухгалтер, щоб витягти великі блоки даних (тобто папки). А стіл, буде кеш-пам'яттю.
Є такі елементи, які розміщені на столі бухгалтера, до яких він звертається протягом години по кілька разів. Наприклад, це можуть бути номери телефонів, якісь приклади документів. Дані види інформації перебувають прямо на столі, що, в свою чергу, збільшує швидкість доступу до них.
Точно так же, дані можуть додатися з тих великих блоків даних (папок), на стіл, для швидкого використання, наприклад, який-небудь документ. Коли цей документ стає непотрібним, його поміщають назад в шафу (в оперативну пам'ять), тим самим очищаючи стіл (кеш-пам'ять) і звільняючи цей стіл для нових документів, які будуть використовуватися в наступний відрізок часу.
Також і з кеш-пам'яттю, якщо є якісь дані, до яких найімовірніше буде повторне звернення, то ці дані з оперативної пам'яті, завантажуються в кеш-пам'ять. Дуже часто, це відбувається з сумісним завантаженням тих даних, які найімовірніше, будуть використовуватися після поточних даних. Тобто, тут присутній наявність припущень про те, що ж буде використано «після». Ось такі непрості принципи функціонування.
Рівні кеш-пам'яті процесора
Сучасні процесори, оснащені кешем, який складається, найчастіше з 2-ух або 3-ох рівнів. Звичайно ж, бувають і винятки, але найчастіше це саме так.
Загалом, можуть бути такі рівні: L1 (перший рівень), L2 (другий рівень), L3 (третій рівень). Тепер трохи докладніше по кожному з них:
Кеш першого рівня (L1) - найбільш швидкий рівень кеш-пам'яті, який працює безпосередньо з ядром процесора, завдяки цьому щільному взаємодії, даний рівень має найменшим часом доступу і працює на частотах близьких процесору. Є буфером між процесором і кеш-пам'яттю другого рівня.
Ми будемо розглядати обсяги на процесорі високого рівня продуктивності Intel Core i7-3770K. Даний процесор оснащений 4х32 КБ кеш-пам'яті першого рівня 4 x 32 КБ = 128 Кб. (На кожне ядро по 32 КБ)
Кеш другого рівня (L2) - другий рівень більш масштабний, ніж перший, але в результаті, має меншими «швидкісними характеристиками». Відповідно, служить буфером між рівнем L1 і L3. Якщо звернутися знову до нашого прикладу Core i7-3770 K, то тут обсяг кеш-пам'яті L2 складає 4х256 Кб = 1 Мб.
Кеш третього рівня (L3) - третій рівень, знову ж таки, більш повільний, ніж два попередніх. Але все одно він набагато швидше, ніж оперативна пам'ять. Об'єм кешу L3 в i7-3770K складає 8 Мбайт. Якщо два попередніх рівня поділяються на кожне ядро, то даний рівень є загальним для всього процесора. Показник досить солідний, але не надзвичайний. Так як, наприклад, у процесорів Extreme-серії по типу i7-3960X, він дорівнює 15Мб, а у деяких нових процесорів Xeon, більше 20.
Для чого потрібна кеш-пам'ять процесора?