Кеш меморије Приципи рада кеш меморија Величина кеша

Slides:



Advertisements
Similar presentations
Lecture History of microprocessor. 2.The IBM and IBM-Compatible Personal Computers. 3.Evolution of the INTEL Microprocessor Architecture. lecture.
Advertisements

Chapter 6 Computer Architecture
Computer Memory System
Computer Organization and Architecture
Associative Cache Mapping A main memory block can load into any line of cache Memory address is interpreted as tag and word (or sub-address in line) Tag.
Computer Architecture, Memory Hierarchy & Virtual Memory
Dr Masri Ayob TK 2123 COMPUTER ORGANISATION & ARCHITECTURE Lecture 7: CPU and Memory (3)
TK 2123 COMPUTER ORGANISATION & ARCHITECTURE
TK6123: COMPUTER ORGANISATION & ARCHITECTURE Lecture 8: CPU and Memory (3) 1 Prepared By: Associate Prof. Dr Masri Ayob.
Cache memory Direct Cache Memory Associate Cache Memory Set Associative Cache Memory.
Computer Organization and Architecture
Faculty of Information Technology Department of Computer Science Computer Organization and Assembly Language Chapter 4 Cache Memory.
Introduction CSE 410, Spring 2008 Computer Systems
Cache Memory. Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics Organisation.
Computer Architecture Lecture 3 Cache Memory. Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics.
03-04 Cache Memory Computer Organization. Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics.
Cache Memory.
Advanced Computer Architecture Cache Memory 1. Characteristics of Memory Systems 2.
Computer Architecture Lecture 8: Memory hierarchy. Cache memory Piotr Bilski.
L/O/G/O Cache Memory Chapter 3 (b) CS.216 Computer Architecture and Organization.
1 CACHE MEMORY 1. 2 Cache Memory ■ Small amount of fast memory, expensive memory ■ Sits between normal main memory (slower) and CPU ■ May be located on.
2007 Sept. 14SYSC 2001* - Fall SYSC2001-Ch4.ppt1 Chapter 4 Cache Memory 4.1 Memory system 4.2 Cache principles 4.3 Cache design 4.4 Examples.
©Richard L. Goldman 1 Microprocessors (Animated Presentation) ©Richard L. Goldman April 25, 2002.
Memory Hierarchy. Hierarchy List Registers L1 Cache L2 Cache Main memory Disk cache Disk Optical Tape.
Chapter 4: MEMORY Cache Memory.
A Look Inside The Processor
1 Chapter 5 Cache Memory Chapter Five : Cache Memory Memory Processor Input/Output.
Chapter 4 Cache Memory. Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics Organisation.
Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics Organisation.
Introduction to computer architecture April 7th. Access to main memory –E.g. 1: individual memory accesses for j=0, j++, j
Cache Memory.
William Stallings Computer Organization and Architecture 7th Edition
William Stallings Computer Organization and Architecture 8th Edition
Computer Speeds The cost of Computing One Numerical Operation
Lesson 8 CPUs Used in Personal Computers.
Computer Organization and Architecture William Stallings 8th Edition
Microprocessors (Animated Presentation)
William Stallings Computer Organization and Architecture 8th Edition
Yunju Baek 2006 spring Chapter 4 Cache Memory Yunju Baek 2006 spring.
William Stallings Computer Organization and Architecture 7th Edition
William Stallings Computer Organization and Architecture 7th Edition
Cache memory Direct Cache Memory Associate Cache Memory
. - t !!l t. - 1f1f J - /\/\ - ' I __.
بسم الله الرحمن الرحيم.
Computer Architecture
.. '.. ' 'i.., \. J'.....,....., ,., ,,.. '"'". ' · · f.. -··-·· '.,.. \...,., '.··.. ! f.f.
Chap. 12 Memory Organization
دانشکده فنی حرفه ای شهید بابایی مدرس : عليرضا پورقناد
William Stallings Computer Organization and Architecture 8th Edition
What is Computer Architecture?
William Stallings Computer Organization and Architecture 8th Edition
What is Computer Architecture?
What is Computer Architecture?
Lesson 8 CPUs Used in Personal Computers.
William Stallings Computer Organization and Architecture 8th Edition
William Stallings Computer Organization and Architecture 8th Edition
Lecture 9: Caching and Demand-Paged Virtual Memory
财务管理案例教学法 研究及示例 ——王遐昌 2006/11/10.
Principles of Computers 14th Lecture
CSE378 Introduction to Machine Organization
Presentation transcript:

Кеш меморије Приципи рада кеш меморија Величина кеша Функције пресликавања Алгоритми замене Политике уписа Величина линије кеша Број кеш меморија

Принципи рада кеш меморије Кеш (скривена) меморија је релативно мала и брза меморија између процесора и велике, али релативно споре главне меморије. CPU Кеш Главна меморија Пренос речи Пренос блока Сл. 1. Кеш и главна меморија.

Принципи рада кеш меморије Кеш садржи копију дела главне меморије. Када процесор покушава да прочита реч из меморије он најпре проверава да ли је у кешу. Ако је то тачно (кеш погодак), тражена реч се чита из кеша. Ако то није тачно (кеш промашај), блок података (фиксираног броја речи) се учитава у кеш из главне меморије и потом предаје процесору.

Принципи рада кеш меморије Због локалности референце велика је вероватноћа да ће и будуће меморијске референце бити из истог блока података. Ако главна меморија има 2n речи и ако су блокови фиксне дужине од K речи, онда је њихов број M=2n/K. Кеш се састоји од C линија (C<<M) од по K речи. Свака линија садржи поље ТАГ које идентификује блок из меморије и обични је део меморијске адресе.

Принципи рада кеш меморије . Блок (K речи) Блок Дужина речи Меморијске адресе 1 2 3 2n-1 Дужина блока (K речи) Број линије C - 1 Таг Сл. 2. Структура кеш меморије и главне меморије.

Принципи рада кеш меморије Почетак Прихвати адресу RA од CPU-a Да ли је блок који садржи RA у кешу? Добави реч RA и испоручи је CPU-у Додели линију кеша том блоку Приступи блоку главне меморије који садржи RA Испоручи реч RA CPU-у Напуни линију кеша тим блоком Крај Сл. 3. Операција читања кеша.

Принципи рада кеш меморије Процесор Адресе Бафер адреса Кеш Управљање Управљање Системска магистрала Бафер података Подаци Сл. 4. Типична организација кеша.

Величина кеша Пожељно је да величина кеша буде довољно мала да укупна цена по биту меморијског система буде блиска цени главне меморије. С друге стране, кеш треба да буде довољно велики тако да ефективно време приступа за читав меморијски систем буде блиско времену приступа кеш меморији.

Величина кеша Преостали мотиви за мањи капацитет кеш меморије: Са порастом кеша расте и логика за адресирање кеша. Расположиви чипови и матичне плоче лимитирају величину кеша. Рад кеша остељив је на природу меморијских референци и није могуће одредити оптималну величину.

High-end сервер/суперрачунар Величина кеша Процесор Тип Год. прозводње L1 кеш1 L2 кеш L3 кеш IBM 360/85 Mainframe 1968 16-32 kB - PDP-11/70 Mинирачунар 1975 1kB VAX 11/780 Минирачунар 1978 16kB IBM 3033 64kB IBM 3090 1985 128-256kB Intel 80486 PC 1989 8kB Pentium 1993 8kB/8kB 256kB-512kB PowerPC 601 32kB PowerPC 602 1996 32kB/32kB PowerPC G4 PC/сервер 1999 256kB-1MB 2MB IBM S/390 G4 1997 256kB IBM S/390 G6 8MB Pentium 4 2000 IBM SP High-end сервер/суперрачунар 2001 64kB/32kB CRAY MTA2 16kB/16kB 96kB 4MB Itanium SGI Origin 2001 High-end сервер 1Две вредности указују на кеш за инструкције и кеш за податке 2Оба кеша су за инструкције; нема кеша за податке

Функције пресликавања Како постоји мање кеш линија него блокова у меморији потребан је алгоритам за пресликавање меморијских блокова у линије кеша. Даље је потребно одредити који меморијски блок тренутно заузима неку линију кеша. Избор функција пресликавања диктира организцију кеша. Користе се три технике: Директно пресликавање. Асоцијативно пресликавање. Скупно-асоцијативно пресликавање

Функције пресликавања У сва три случаја, примера ради, претпоставићемо да је капацитет кеша 64kB, као и да се подаци преносе између главне и кеш меморије у блоковима од по 4kB. То значи да је кеш организован у 16k=214 линија од по 4B.

Функције пресликавања Директно пресликавање је најједноставнија техника где се сваки блок из главне меморије пресликава у јединствену линију кеша. Пресликавање је изражено као i = j mod m где је i – број линије кеша j – број блока у главној меморији m – број линије кеша

Функције пресликавања Једностава имплементација. Свака меморијска адреса састоји се од три поља. Најнижих w битова идентификују јединствену реч или бајт у оквиру меморијског блока. Преосталих s битова специфицира један од 2s блокова у меморији. Логика кеша интерпретира ових s битова као таг од s-r битова (највеће тежине) и поље линије од r битова. Ово поље идентификује једну од m=2r линија кеша.

Функције пресликавања Сл. 5. Организација кеша са директним пресликавањем.

Функције пресликавања Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у кешу = m = 2r . Величина поља таг = (s-r) битова.

Функције пресликавања Ефекат пресликавања је да се линијама додељују блокови као у табели. Линија кеша Додељују јој се блокови главне меморије 0, m, 2m, …, 2s-m 1 1, m + 1, 2m + 1, …, 2s - m + 1 . m-1 m - 1, 2m - 1, 3m - 1, …, 2s – 1

Функције пресликавања За наш пример пресликавање даје следеће. Линија кеша Почетна адреса блока 000000, 010000, …, FF0000 1 000004, 010004, …, FF0004 . 214 - 1 00FFFC, 01FFFC, …, FFFFFC Очигледно су вредности тагова редом 00, 01, ..., 0F.

Функције пресликавања Сл. 6. Пример директног пресликавања.

Функције пресликавања Директно пресликавање је једноставна и јефтина техника за имплементацију. Главни недостатак је постојање фиксираних локација за сваки блок. Ако програм понавља узастопно референцирање речи из два различита блока који се пресликавају у исту линију, онда се ти блокови стално смењују у истој линији и фактор поготка је низак (појава позната као trashing – батинање).

Функције пресликавања Асоцијативно пресликавање превазилази недостатак директног тако што дозвољава да се сваки од меморијских блокова пуни у произвољну линију кеша. Управљачка логика леша интерпретира меморијску адресу као поље тага и поље речи. Поље тага идентификује блок из главне меморије. Да би се одредило који блок је у кешу управљачка логика мора симултано да испита таг сваке линије.

Функције пресликавања Сл. 7. Организација кеша са асоцијативним пресликавањем.

Функције пресликавања Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у кешу = неодређен. Величина поља таг = s битова.

Функције пресликавања Сл. 8. Пример асоцијативног пресликавања.

Функције пресликавања Недостатак је сложеност кола потребних да се симултано испитају тагови у свим линијама кеша. Добра страна је у флексибилности коју иманмо код замене блока.

Функције пресликавања Скупно-асоцијативно пресликавање је компромис између претходна два приступа са тежњом да се искористе добре стране. Кеш меморија се дели на v скупова од по k линија: m = vk i = j mod v где је i – број скупа у кешу j – број блока у главној меморији m – број линија у кеша

Функције пресликавања Овакво пресликавање се означава и као k-тоструко скупно-асоцијативно пресликавање. Код овог пресликавања се блок Bj пресликава у произвољну линију из скупа i. Управљачка логика интерпретира меморијску адресу као три поља: таг, скуп и реч. d битова специфицира један од v=2d скупова. s битова поља таг и скуп специфицира један од 2s блокова из меморије.

Функције пресликавања Сл. 9. Организација k-тоструког скупно-асоцијативног кеша.

Функције пресликавања Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у скупу = k Број скупова = v=2d Број линија у кешу = kv=k2d. Величина поља таг = (s-d) битова.

Функције пресликавања Сл. 10. Пример организације двоструког скупно-асоцијативног кеша.

Алгоритми замене Када се нови блок учитава у кеш, један од постојећих блокова се мора заменити. Код директног пресликавања постоји само једна могућа линија за сваки од блокова! За асоцијативно и скупно-асоцијативно пресликавање потребан је одговарајући алгоритам замене. Да би се постигле веће брзине рада такви алгоритми се имплементирају хардверски.

Алгоритми замене У пракси се користе: LRU (Least Recently Used). FIFO (First In First Out) LFU (Least Frequently Used)

Политика уписа Пре него се неки блок у кешу замени новим од значаја је да ли је он пре тога измењен. Ако није био модификован једноставно се преко њега уписује нови блок. Ако је блок модификован, он мора и у главној меморији да се ажурира.

Политика уписа Срећемо се са два проблема: Могуће је да меморији приступа више од једног уређаја (нпр. У/И модул може да обавља DMA). Ако је реч измењена само у кешу, онда она у меморији није ваљана и обрнуто. Још сложенији проблем се јавља ако је више процесора прикључено на исту меморију а сваки има свој кеш.

Политика уписа Различите технике решавају ове проблеме паравећи компромис између цене и перформансе. Write through: Операција уписа врши се и у меморији и у кешу што обезбеђује да је реч у меморији увек ваљана. Write back: Минимизира упис у меморију тако што се упис врши само у кеш а свакој кеш линији придружује се бит који говори о томе да ли је дотичн и блок у кешу модификован.

Величина линија кеша Са порастом величине блока треба да расте и фактор поготка због принципа локалности. Међутим, почев од неких вредности величине блока/кеш линије овај фактор поготка опада!

Величина линија кеша Разлози су следећи: Већи блокови смањују број блокова у кешу. Осим тога, преко блокова се уписују нови убрзо по њиховом учитавању. Како величина блока расте, свака додатна реч у блоку је даља од тражене те је мања вероватноћа да ће и она бити потребна. Обично је величина блока/линије 8-32В а код HPC 64-128В.

Број кеш меморија Када је концепт кеш меморије уведен типични системи имали су само по један кеш. У новије време уобичајено је коришћење вишеструких кеш меморија. Са порастом густине интегрисаних кола омогућен је on-chip кеш. Поставља се питање када је off-chip кеш потребан. Резултујућа организација је двонивовски кеш: L1 (on-chip) i L2 (off-chip).

Број кеш меморија У почетку се on-chip кеш користио и за податке и за инструкције, али је у новије време постало уобичајено да се овај кеш подели на два посебна. Предности јединственог кеша су: За дату величину кеша постиже се већи фактор поготка. Једноставније је пројектовање и имплементација.

Број кеш меморија И поред ових предности, у тренду је дељење кеша, нарочито код суперскаларних машина (Pentium и PowerPC). Главна предност подељеног кеша је елиминација надметања за кеш између степена за припрему/декодирање и степена за извршење инструкција.