71
Кеш меморија Кеш меморија

6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

Page 2: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

СадржајСадржај

• Увод

• Кеш меморија

• Технике пресликавања

• Алгоритми замене

• Ажурирање оперативне меморије

• Реализација

• Перформансе

2/71

Page 3: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Структура рачунараСтруктура рачунара

• Рачунари су електронски уређаји у којима се

решавање одређених проблема реализује

извршавањем одређеног скупа аритметичких,

логичких и померачких операција.

3/71

Page 4: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Једноставна организацијаЈедноставна организација

Процесор Меморија

Магистрала

Процесор Меморија

4/71

Page 5: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

ПроцесорПроцесор

• Операције које се у рачунару извршавају се

представљају помоћу бинарних речи које се

називају инструкције, команде или наредбе.

• Скуп операција које рачунар може да извршава је

такав да било који проблем који треба да се

решава у рачунару може да се разложи на решава у рачунару може да се разложи на

уређени низ инструкција рачунара који се назива

програм.

• Подаци над којима се операције извршавају се,

такође, представљају помоћу бинарних речи које

се називају операнди.

5/71

Page 6: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

ПроцесорПроцесор

Patterson, Hennessy - Computer Organization and Design: The Hardware-Software Interface, 5Th edition.

6/71

Page 7: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

МеморијаМеморија

• За складиштење бинарних речи користи се модул

рачунара који се назива меморија.

• Чување програма и података

• Организова на нивоу:

– Бита

– Бајтова = 8 бита– Бајтова = 8 бита

– Речи = (типично 4 бајта)

7/71

Page 8: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

МеморијаМеморија

Patterson, Hennessy - Computer Organization and Design: The Hardware-Software Interface, 5Th edition.

8/71

Page 9: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Процесор/Меморија перформансеПроцесор/Меморија перформансе

Patterson, Hennessy - Computer Organization and Design: The Hardware-Software Interface, 5Th edition.

9/71

Page 10: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Једноставна организација 2Једноставна организација 2

Процесор МеморијаКеш меморијаПроцесор МеморијаКеш меморија

10/71

Page 11: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Механизам кеш меморије подразумева да у

процесору постоји посебна компонента - кеш

меморија

• Кеш меморија се реализује са меморијским

компонентама чије је време приступа:

– далеко мање од времена приступа меморијских – далеко мање од времена приступа меморијских компонената оперативне меморије и

– веома блиско времену преноса података између регистара.

• Због тога је цена по биту кеш меморије далеко

већа од цене по биту оперативне меморије =>

Капацитет кеш меморије далеко мањи од

капацитета оперативне меморије

11/71

Page 12: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Алгоритам Алгоритам -- упрошћенупрошћен

• При сваком генерисању адресе оперативне

меморије од стране неког дела процесора ради

читања или уписа:

– врши се провера да ли се садржај са генерисане адресе налази у кеш меморији

– уколико садржај није у кеш меморији онда се садржај са дате и неколико суседних адреса пребацује из оперативне у кеш меморију (блок)

– садржај из кеш меморије се чита и прослеђује оном делу процесора који је адресу генерисао или уписује у кеш меморију садржај из оног дела процесора који је адресу генерисао

12/71

Page 13: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Алгоритам Алгоритам -- упрошћенупрошћен

William Stallings Computer Organization and Architecture8th Edition

13/71

Page 14: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• На почетку рада за неколико генерисаних адреса

оперативне меморије вероватно ће се утврђивати

да се садржаји не налазе у кеш меморији, па ће се

одговарајући блокови довлачити из оперативне

меморије у кеш меморију

• Повећавање броја довучених блокова повећава • Повећавање броја довучених блокова повећава

вероватноћу да се за неке од адреса утврди да

се садржаји налазе у кеш меморији

• У свакој таквој ситуацији:

– садржај ће се или читати из кеш меморије уместо из оперативне меморије или

– уписивати у кеш меморију уместо у оперативну меморију.

14/71

Page 15: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Перформансе кеш меморијеПерформансе кеш меморије

Зависе од:

• времена приступа кеш меморији при сагласности

(hit time),

• процента промашаја (miss rate) и

• просечног губитка времена при промашају

(miss penalty)(miss penalty)

и дато је формулом:

taverage memory access time = thit time + miss rate * tmiss penalty

15/71

Page 16: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Два ефекта који директно утичу на ефикасност

механизма кеш меморије.

– Једанпут генерисана адреса обично после тога још неколико пута се генерише. Овај ефекат се назива временски локалитет програма и јавља се код генерисања адреса инструкција и скаларних величина у петљипетљи

– После неке генерисане адресе веома често генеришу се адресе које следе секвенцијално. Овај ефекат се назива просторни локалитет програма и јавља се код секвенцијалног извршавања инструкција и секвенцијалног приступа подацима који представљају елементе вектора

16/71

Page 17: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

Величине

блока као

величина

групе

Кеш

меморије за

све блокове

Меморија

Кеш

1

2

Подаци

потребни

програму

17/71

Page 18: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Механизам кеш меморије је "скривен" од

програмера и програмер не може програмским

путем да утиче на кеш меморију

• Провера да ли се садржај са генерисане адресе

налази у кеш меморији, евентуално довлачење

блока података из оперативне меморије у кеш блока података из оперативне меморије у кеш

меморију, читање податка из кеш меморије и упис

податка у кеш меморију реализују се комплетно

хардверски

• Због тога механизам кеш меморије не припада

архитектури већ организацији процесора

18/71

Page 19: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Капацитет кеш меморије је мањи од капацитета

оперативне меморије и постоји потреба да се у

кеш меморији води евиденција о томе који се

блокови оперативне меморије налазе у кеш

меморији и где се налазе у кеш меморији.

Ово вођење евиденције се назива Ово вођење евиденције се назива

техника пресликавања.

19/71

Page 20: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Капацитет кеш меморије је мањи од капацитета

оперативне меморије, па ће се после одређеног

времена дешавати да се генеришу адресе са

којих се садржаји не налазе у кеш меморији, а кеш

меморија је попуњена. Тада постоји потреба да се

одлучи који ће се блок избацити из кеш меморије одлучи који ће се блок избацити из кеш меморије

да би се у њој створио простор за довлачење

блока из оперативне меморије коме припада

генерисана адреса.

Ово одлучивање се реализује према неком од

алгоритама замене.

20/71

Page 21: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Кеш меморијаКеш меморија

• Приликом операција уписа и утврђивања да у кеш

меморији постоји блок коме припада генерисана

адреса, упис ће се реализовати у кеш меморију.

Тиме се јавља разлика у вредности копије

садржаја са одређене адресе у кеш меморији и у

оперативној меморији. Начини реализације зависе оперативној меморији. Начини реализације зависе

од усвојене технике ажурирања садржаја

оперативне меморије.

21/71

Page 22: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Технике пресликавањаТехнике пресликавања

• Техника пресликавања одређује начин вођења

евиденције о томе који се блокови оперативне

меморије налазе у појединим блоковима кеш

меморије.

• Користе се три технике пресликавања и то:

– асоцијативно,– асоцијативно,

– директно и

– сет-асоцијативно.

22/71

Page 23: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавањеОперативна меморија

Генерисана адреса

23/71

Page 24: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавањеОперативна меморија

h l

Генерисана адреса

Блок (Tag) Реч (Word)

Подела на блокове фиксне величине

на основу најнижих l бита адресе

2l речи

на основу најнижих l бита адресе

2hблокова

24/71

Page 25: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавањеОперативна меморија

h l

Генерисана адреса

Блок (Tag) Реч (Word)

2l речи

Кеш меморија

2nблокова

улаза

2l речи

2hблокова

25/71

Page 26: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавањеОперативна меморија

Било који блок

оперативне меморије

може да се смести у

било који улаз кеш

h l

Генерисана адреса

Блок (Tag) Реч (Word)

2l речи

Кеш меморија

2nблокова

улаза

било који улаз кеш

меморије

2l речи

2hблокова

26/71

Page 27: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавањеОперативна меморија

h l

Генерисана адреса

Блок (Tag) Реч (Word)

2l речи

Кеш меморија

Дата меморија

Кеш меморија

Таг меморија

2nблокова

улаза

2l речиh бита

2hблокова

27/71

Page 28: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

Дата меморијаТаг меморија

h l

Генерисана адреса

Блок (Tag) Реч (Word)

2l речиh бита

= MX

Податак

2nблокова

улаза

2 речиh бита

Сагласност (Hit)28/71

Page 29: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

V Дата меморијаТаг меморија

h l

Генерисана адреса

Блок (Tag) Реч (Word)

2l речиh бита1

Сагласност (Hit)

2nблокова

улаза

Одабира реч

унутар блока,

не одабира

сам блок!= MX

Податак

2 речиh бита1

29/71

Page 30: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

h l

Генерисана адреса

Блок (Tag) Реч (Word)

Дата меморијаТаг меморијаV

2l речиh бита1

Асоцијативна меморија

=

Сагласност (Hit)

=

=MX

Податак30/71

Page 31: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

ATMn-1

ATM0

0

142

43

M0

.

.

.

M

V0

V

...

S0

.

.

.

S

.

.

.

CD

0

.

.

.

0

n-1

14

24

3

USn-1...0

MP0

1

n

n

n

l

0

ADMl+n-1

ADM0

ADMl

ADMl-1

...

12

3142

43

0

AOM1+h-1

AOMl

AOMl-1

14442

4443

12

3

...

TAG MEMORIJA DATA MEMORIJA

0

AVn-1

AV0 14

24

3

...

V

0

ADn-1

AD0 14

24

3

...

D

2n-1

... ...

...

...WDM

WOM

WTM UZn-1...0

n

14243

WVWD

KEŠ MEMORIJA

1444444444444444444444442444444444444444444444443

TOh-1...01424314243

TIh-1...0

hh

MV

0

1MPh

GENERISANA ADRESABROJAČ

REČI

123

0

1MP

123

l

l

h

144444424444443

h

h

l

l

h

l

S

SGL

W

DOw-1...01424314243

DIw-1...0

w w

OPERATIVNA MEMORIJA

1444442444443

2h+l-1

MOw-1...0 MIw-1...01424314243

ww

AOM0

12

3

V123

D123

2n-12n-1

2n-12n-1 2n-1

2n+l-12n-12n-1

Ah+1-1...0 A1-1...0

BR1-1...0

...

31/71

Page 32: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

Читање:

• Виших h битова адресе води се на TIh-1...0

• Истовременено се упоређују са садржајима свих

2n улаза ТАГ меморије

• Уколико се пронађе једнакост у неком улазу онда

сигнал М добија вредност 1сигнал Мx добија вредност 1

• Уколико је и индикатор Vx датог улаза 1 онда је

откривена сагласност важећа=>Sx je 1, односно

• Сигнал сагласности SGL (HIT) је такође 1

• Бинарна вредност броја улаза у коме је откривена

сагласност је одређена са n бита са излаза

кодера CD на основу сигнала S0 до S2n

-1.

32/71

Page 33: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

Читање, постоји сагласност:

• Уколико постоји сагласност, са n битова са излаза

кодера CD и l нижих битова генерисане адресе,

адресира се реч ДАТА меморије и обавља

читање.

33/71

Page 34: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

Читање, нема сагласности:

• Довлачење блока из оперативне у кеш меморију у

улаз за замену (UZn-1...0).

• Провера да ли се у улазу за замену налази

модификован блок на основу индикатора D

– Уколико је D=1, блок је модификован, па прво треба дати – Уколико је D=1, блок је модификован, па прво треба дати блок вратити у оперативну меморију па тек онда довући жељени блок.

– Уколико је индикатор D=0, блок није модификован, па се жељени блок одмах довлачи.

34/71

Page 35: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

• Приликом враћања блока одабраног за замену 2l

речи датог блока се чита из ДАТА меморије са

адреса формираних од вредности UZn-1...0 која даје

n старијих битова адресе и вредности BRl-1...0 која

је даје l млађих битова адресе. Дате речи се

уписују у оперативну меморију на адресама уписују у оперативну меморију на адресама

формираних од вредности на линијама ТОh-1...0

која даје n старијих битова адресе и вредности

BRl-1...0 која је даје l млађих битова адресе.

Вредност на линијама ТОh-1...0 прочитана је из ТАГ

меморије са адресе одређене вредношћу UZn-1...0.

35/71

Page 36: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

• Приликом довлачења жељеног блока 2l речи

датог блока се уписује у ДАТА меморију на

адресама формираним од вредности UZn-1...0 која

даје n старијих битова адресе и вредности BRl-1...0

која је даје l млађих битова адресе. Дате речи се

читају из оперативне меморије са адреса читају из оперативне меморије са адреса

формираних од вредности битова Аh-1...0

генерисане адресе која даје n старијих битова

адресе и вредности BRl-1...0 која је даје l млађих

битова адресе. Поред тога битови Аh-1...0

генерисане адресе се уписују у улаз ТАГ меморије

чија је адреса одређена вредношћу UZn-1...0.

Индикатори V и D улаза адресираних вредношћу

UZn-1...0 постављају се на 1 и 0, респективно.36/71

Page 37: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

Упис:

• При генерисању захтева за упис од стране

процесора, на исти начин се испитује сагласност

са садржајем кеш меморије као у случају

операције читања. Уколико постоји сагласност, на

исти начин се адресира реч ДАТА меморије и исти начин се адресира реч ДАТА меморије и

врши упис, при чему се сада индикатор

модификованог улаза D, адресиран вредношћу

USn-1...0 са излаза кодера CD и која представља

број улаза у коме је откривена сагласност,

поставља на 1.

37/71

Page 38: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање--алгортамалгортам

Упис:

• Ако сагласност не постоји, на идентичан начин као

и за операцију читања, се, најпре, блок из улаза

кеш меморије, одређеног вредношћу UZn-1...0,

враћа у оперативну меморију, уколико је

модификован, а затим, у исти улаз кеш меморије, модификован, а затим, у исти улаз кеш меморије,

довлачи нови блок из оперативне меморије.

Потом се поново, на већ описани начин, врши

провера да ли постоји сагласност, утврђује да

постоји сагласност и реализује упис.

38/71

Page 39: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

0

0

0

123 4

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

0123

0123456789ABCDEF

0123456789ABCDEF

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

MP

30

1

4

1212

12

123 0123456789ABCDEF

39/71

Page 40: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

1

0

123

1

123 4

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

X

0

4

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

MP

30

1

4

1212

12

40/71

Page 41: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

1

0

123

1

567 8

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

1567

0123456789ABCDEF

0123456789ABCDEF

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

MP

30

1

4

1212

12

567 0123456789ABCDEF

41/71

Page 42: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

1

1

123

567

0

567 8

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4X

1

8

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

MP

30

1

4

1212

12

42/71

Page 43: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

1

1

123

567

0

567 A

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

1

A

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

MP

30

1

4

1212

12

43/71

Page 44: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

123

567

1

567 A

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

1

A

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

MP

30

1

4

1212

12

44/71

Page 45: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

123

567

0

123 5

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

0

5

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

MP

30

1

4

1212

12

45/71

Page 46: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

123

567

0

123 5

X

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

0

5

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

MP

30

1

4

1212

12

46/71

Page 47: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

123

567

0

ABC D

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

0ABC

0123456789ABCDEF

0123456789ABCDEF

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

ABCD Rd ABC D Miss 0 [ABC0-ABCF] [00-0F]

MP

30

1

4

1212

12

ABC 0123456789ABCDEF

47/71

Page 48: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

ABC

567

1

ABC D

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

X0

D

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

ABCD Rd ABC D Miss 0 [ABC0-ABCF] [00-0F]

MP

30

1

4

1212

12

48/71

Page 49: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

0

1

1

1

ABC

567

1

891 0

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

4

12

1 1

1

4

4

1567

0123456789ABCDEF

0123456789ABCDEF

891

0123456789ABCDEF

0123456789ABCDEF

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

ABCD Rd ABC D Miss 0 [ABC0-ABCF] [00-0F]

8910 Rd 891 0 Miss 1 [5670-567F][8910-891F] [10-1F] [10-1F]

MP

30

1

4

1212

12

567

567

0123456789ABCDEF891 0123456789ABCDEF

49/71

Page 50: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

X

Асоцијативно пресликавањеАсоцијативно пресликавање

0

0

1

1

ABC

891

0

891 0

CD

MP

1

MP

2

0

1

0

1

0

1

1

0

D V

Data memory

Tag memory0

1

Hit

1

12 4

12

1 1

1

4

4

1

0

Адреса Тип Tag Word Hit? Улаз КМ ОМ адресе КМ адресе

1234 Rd 123 4 Miss 0 [1230-123F] [00-0F]

5678 Rd 567 8 Miss 1 [5670-567F] [10-1F]

567A Wr 567 A Hit 1 - 1A

1235 Rd 123 5 Hit 0 - 05

ABCD Rd ABC D Miss 0 [ABC0-ABCF] [00-0F]

8910 Rd 891 0 Miss 1 [5670-567F][8910-891F] [10-1F] [10-1F]

MP

30

1

1212

12

50/71

Page 51: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

• Комплетан поступак ажурирања кеш меморије се

обавља хардверски

• Водити рачуна да алгоритам рада кеш меморије

може да зависи од технике ажурирања садржаја

оперативне меморије!

51/71

Page 52: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

• Добра страна асоцијативног пресликавања је

велика вероватноћа да се податак нађе у кеш

меморији (блок може да се смести у произвољни

улаз кеш меморије).

• Лоша страна је велико време које је потребно да

се прочита податак из кеш меморије уколико се прочита податак из кеш меморије уколико

постоји сагласност (компаратор, и коло, или коло,

кодер, мултиплексер, приступ меморији).

52/71

Page 53: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Асоцијативно пресликавањеАсоцијативно пресликавање

• CacheSize = BlockNumC * BlockSize

• CacheSize = 2n * 2l AU

• MemSize = BlockNumM * BlockSize

• MemSize = 2h * 2l AU

53/71

Page 54: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Замена блокова кеш меморијеЗамена блокова кеш меморије

• Разматрају се четири алгоритма замене и то

– RANDOM,

– FIFO,

– LRU и

– PSEUDO LRU

• При избору алгоритма треба водити рачуна:• При избору алгоритма треба водити рачуна:

– Алгоритам треба да обезбеди минималну вероватноћу

да ће блок који је одабран за замену и враћен из кеш у оперативну меморију убрзо морати поново да се довуче из оперативне у кеш меморију.

– Други је да цена хардвера потребног за његову реализацију буде што је могуће нижа.

54/71

Page 55: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

RANDOMRANDOM

• Идеја: За замену се случајно бира блок

коришћењем генератора случајних бројева.

• Могућа реализација: користи бројач по модулу

броја улаза кеш меморије. Може се одабрати неки

произвољан сигнал и користити за

инкрементирање бројача. инкрементирање бројача.

• Лоше стране: не води се рачуна о томе да ће блок

који је одабран за замену и враћен из кеш у

оперативну меморију можда убрзо морати поново

да се довуче из оперативне у кеш меморију.

• Добре стране: хардвер за реализацију је

једноставан.

55/71

Page 56: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

FIFO (first inFIFO (first in——first out)first out)

• Идеја: За замену се бира блок који је најраније

унет из оперативне меморије у кеш меморију.

• Могућа реализација: користи бројач по модулу

броја улаза кеш меморије. У тренутку када нема

сагласности и треба одабрати блок за замену,

тренутна вредност бројача одређује улаз за тренутна вредност бројача одређује улаз за

замену. При томе се и врши инкрементирање

бројача.

• Лоше стране: не води се рачуна о томе да ће блок

који је одабран за замену и враћен из кеш у

оперативну меморију можда убрзо морати поново

да се довуче из оперативне у кеш меморију.

• Добре стране: хардвер за реализацију је

једноставан.56/71

Page 57: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

LRULRU (least recently used)(least recently used)

• Идеја: За замену се бира блок коме се најдуже

времена није приступало.

• Могућа реализација: користи 2n бројача по модулу

2n, 2n представља број улаза кеш меморије.

Сваком од 2n улаза кеш меморије додељује се

један од 2n бројача по модулу 2n. Бројачи се током један од 2n бројача по модулу 2n. Бројачи се током

рада тако ажурирају да је у њима увек 2n

различитих вредности и да бројач улаза коме се

најдуже времена није приступало има све

јединице (нуле).

57/71

Page 58: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

LRULRU (least recently used)(least recently used)

LDINC

CLK

n

CL

111

CNT(0)01n-1

01n-1

...

...123

LT

EQ

GT

CMP(0)

CNT(0)n-1...0

A

B

CNT(0)n-1...0

CNTn-1...0

n

n

LDINC

CLK

n

CL

011

CNT(1)01n-1

01n-1

...

...123

LT

EQ

GT

CMP(1)

CNT(1)n-1...0

A

B

CNT(1)n-1...0

CNTn-1...0

n

n

n

U(2n-1)

U(0)

U(1)

... ...

n

n

n

CNT(2n-1)

CNT(1)n-1...0

CNT(0)n-1...0

CNTn-1...0

LDINC

CLK

n

CL

000

CNT(2n-1)01n-1

01n-1

...

...123

LT

EQ

GT

CMP(2n-1)

CNT(2n-1)n-1...0

A

B

CNT(2n-1)n-1...0

CNTn-1...0

n

n

...... ...... ...

update init

nCNT(2n-1)n-1...0

MP0

1S0

Z0

S0

MP0

1S0

Z1

S1

MP0

1S0

SGL

CNT(0)1

CNT(0)0

CNT(0)n-1

......

CNT(1)1

CNT(1)0

CNT(1)n-1

......

CNT(2n-1)1

CNT(2n-1)0

CNT(2n-1)n-1

......

0

1

2n-1

...

n-1

0

1

...

14

44

24

44

3

...

CD

Z0

Z1

...

UZn-1...0n

......

U(0)

U(1)

U(2n-1)

Z2n-1 Z2n-1

S2n-1

58/71

Page 59: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

LRULRU (least recently used)(least recently used)

• Добре стране: Овај алгоритам је базиран на

претпоставци да оним блоковима којима је више

приступано у прошлости вероватно ће бити

приступано и у будућности, па се за замену бира

блок коме се најмање скоро приступало.

• Лоше стране: хардвер за његову реализацију је • Лоше стране: хардвер за његову реализацију је

сложен.

59/71

Page 60: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

PSEUDO PSEUDO LRULRU (least recently used)(least recently used)

• Идеја: алгоритмом замене се покушава

реализација принципа LRU алгоритма замене са

једноставнијим хардвером.

• Могућа реализација: Алгоритам замене често се

користи када је број улаза четири или осам. У

случају четири улаза потребан је регистар дужине случају четири улаза потребан је регистар дужине

три бита и пратећа комбинациона логика.

60/71

Page 61: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

PSEUDO PSEUDO LRULRU (least recently used)(least recently used)

I2=0, I1=0 I2=0, I1=1 I2=1, I0=0

0

I2=1, I0=1

ulaz 21

ulaz 11

ulaz 01

0

0

Дијаграм тока при ажурирању

Дијаграм тока при одређивању улаза за замену

61/71

Page 62: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

PSEUDO PSEUDO LRULRU (least recently used)(least recently used)

CD

0Z0I2

I1

Z1I2

I1

ZI

10

1 12

3

UZ1...02

S

R

I2Q

Q

CC

U(2)U(3)

U(1)U(0)

I2

S I1Q

CC

U(1)

U(0)

MP0

1S0

Z0

S0

MP0

1S0

U(0)

U(1)Z1

S1

Z2I2

I0

Z3I2

I0

3

21 1

23

UZ1...0R Q

CI1

S

R

I0Q

Q

CCU(2)

U(3)

I0

U(0)

update

MP0

1S0

SGL

U(3)

MP0

1S0

U(2)Z2

S2

Z3

S3

62/71

Page 63: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

PSEUDO PSEUDO LRULRU (least recently used)(least recently used)

MP0

1S0

Z0

S0

MP0

1S0

U(0)

U(1)Z1

S1

0

1

2

3

CD

E

1

0

10

DP

B2 LD

B1LD

ažururanje

E1E0

Ulaz0Ulaz1Ulaz2Ulaz3

14

24

3

referisaniulaz

I2

I1

update

MP0

1S0

SGL

U(3)

MP0

1S0

U(2)Z2

S2

Z3

S31

14

42

44

3

broj ulazaza zamenu

B0

B1

B2

0

1

MP 0

I2

I1

I0

B0LD I0

63/71

Page 64: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

PSEUDO PSEUDO LRULRU (least recently used)(least recently used)

• Добре стране: Овај алгоритам је базиран на истој

претпоставци као и LRU алгоритам и има за циљ

да за замену бира блок коме се најмање скоро

приступало.

• Лоше стране: Хардвер за његову реализацију је

једноставнији у односу на хардвер LRU једноставнији у односу на хардвер LRU

алгоритма, па је овај алгоритам мање прецизан у

односу на LRU алгоритам.

64/71

Page 65: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• Ажурирање оперативне меморије одређује како се

код операције уписа мења садржај у

оперативној меморији.

• Код захтева за упис, могу јавити две ситуације:

– прва је да у кеш меморији постоји сагласност,

– друга је да нема сагласности.– друга је да нема сагласности.

65/71

Page 66: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• За случај када је у кеш меморији откривена

сагласност, постоје два приступа и то

– упиши скроз (write through или store through) и

– врати назад (write back или copy back).

• Код приступа упиши скроз, при сваком захтеву за

упис истовремено се врши упис и у кеш меморију упис истовремено се врши упис и у кеш меморију

и у оперативну меморију.

• Код приступа врати назад, при сваком захтеву за

упис врши се упис само у кеш меморију, па

одговарајући садржај у оперативној меморији није

ажуран.

66/71

Page 67: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• Предност приступа упиши скроз је у томе да је

оперативна меморија увек ажурна чиме је

обезбеђена конзистентност садржаја оперативне

и кеш меморије.

• Недостатак овог приступа је у обраћању

оперативној меморији при сваком упису у кеш оперативној меморији при сваком упису у кеш

меморију, чиме се беспотребно оптерећује

магистрала уписивањем међурезултата у

оперативну меморију.

Нема потребе за D битима!

67/71

Page 68: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• Предност приступа врати назад је у томе што се

оперативној меморији и магистрали приступа

само онда када се блок враћа из кеш меморије у

оперативну меморију што резултује у мањем

саобраћају на магистрали.

• Недостатак овог приступа је потреба да се блок • Недостатак овог приступа је потреба да се блок

који се избацује из кеш меморије мора најпре

вратити у оперативну меморију, па тек онда

довући нови, што знатно успорава одзив кеш

меморије у случају промашаја.

68/71

Page 69: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• За случај када у кеш меморији није откривена

сагласност, постоје два приступа и то

– довуци блок (write allocate) и

– не довлачи блок (no write allocate).

• Код приступа довуци блок, блок се довлачи из

оперативне у кеш меморију, чиме се обезбеђује оперативне у кеш меморију, чиме се обезбеђује

да се сада у кеш меморији открива сагласност.

(ажурирање садржаја оперативне меморије

користи приступ упиши скроз или врати назад)

• Код приступа не довлачи блок, блок се не довлачи

из оперативне у кеш меморију, већ се упис врши

само у оперативну меморију.

69/71

Page 70: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Ажурирања садржаја оперативне меморијеАжурирања садржаја оперативне меморије

• Обично се уз приступ врати назад (write back)

користи приступ довуци блок (write allocate),

• док се уз приступ упиши скроз (write through)

користи приступ не довлачи блок (no write allocate).

70/71

Page 71: 6 Kes memorija asoc - rti.etf.bg.ac.rs · Кеш меморија • На почетку рада за неколико генерисаних адреса оперативне меморије

Питања?Питања?

Електротехнички Факултет

Универзитет у Београду