17
МАШИНСКИ ФАКУЛТЕТ УНИВЕРЗИТЕТ У БАЊА ЛУЦИ КЕШ МЕМОРИЈА Семинарски рад Предмет: Информатика Студент: Александар Toмић Матични број студента: 83025 Професор: Доц. Др. Тихомир Латиновић

Kes Memorija

Embed Size (px)

Citation preview

Page 1: Kes Memorija

МАШИНСКИ ФАКУЛТЕТУНИВЕРЗИТЕТ У БАЊА ЛУЦИ

КЕШ МЕМОРИЈАС е м и н а р с к и р а д

Предмет: Информатика Студент: Александар ToмићМатични број студента: 83025Професор: Доц. Др. Тихомир Латиновић

Page 2: Kes Memorija

Бања Лука, 08.10.2012.Садржај:

1. Увод ...............................................................................................................................3

2. Кеш меморија ................................................................................................................4

2.1 Величина кеша...............................................................................................6

2.2 Функције пресликавања...............................................................................6

2.3 Директно пресликавање................................................................................7

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

2.5 Алгоритми замјене.........................................................................................8

2.6 Величина реда................................................................................................9

2.7 Број кеш меморија.........................................................................................9

2.8 Проблеми коришћења кеш меморија........................................................10

2.9 Кеш меморија диска...................................................................................11

3. Закључак...........................................................................................................................12

Лирература............................................................................................................................13

2

Page 3: Kes Memorija

1. Увод

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

Назив кеш меморија потиче од ријечи cache memory, што у преводу значи скривена меморија. Скривена у смислу да је реализована хардверски, да је скривена од програмера, тј. програмер не може да утиче на кеш меморију.

3

Page 4: Kes Memorija

2. Кеш меморија (cache)

Кеш меморија је веома брзи простор за смјештање података који је мањи од главног простора за смјештање података. У кеш меморију се привремено смјештају инструкције и подаци из главног складишта које ће CPU вјероватно следеће користити.

Смјештање одређених података у cache убрзава операције рачунара. Постоје двије врсте cacheа: унутрашњи (или меморија cache) и спољни (или cache на диску). Унутрашњи cache је уграђен у CPU, а спољни cache се налази на матичној плочи. Када се позива одређени елемент, рачунар најприје провјерава унутрашњи cache, затим спољни cache а тек на крају спорије главне записе.

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

Баш зато је пожељно да количина кеш меморије буде што већа, али и да се тај простор што боље искористи. Кеш меморија је слична оперативној меморији, али знатно бржа. Задатак кеш меморије је да амортизује брзину измђу оперативне меморије и процесора. За меморисање података користе се исти елементи који се употребљавају у процесору. Такве меморије називају се статичке RAM меморије.

Брзина RAM меморије је све више заостајала за брзином микропроцесора. Да би се та несразмјера смањила, уведена је такозвана кеш меморија. За разлику од радне RAM меморије која је динамичког типа, кеш меморија је статичког типа и има за ред величине (око 10 пута) краће вријеме приступа. Кеш меморија је постављена између микропроцесора и радне меморије, а њеним радом је управљао посебни кеш контрокер. Овај контролер је на основу подарака које је микропроцесор тражио из меморије покушавао да предвиди који ће следећи податак бити потребан микропроцесору, па је унапријед, не чекајући захјев, тај податак очитавао из раде меморије и смјештао га у кеш меморију.

Слика 1. Принцип рада кеш меморије

4

Page 5: Kes Memorija

Оперативна и кеш меморија су подјељене на јединице које се називају блокови. Блок(понекад се назива и линија) представља скуп од n сукцесивних мемориских локација који се увјек као цјелина преноси између оперативне и кеш меморије. То значи да се сви подаци(или инструције) у неком блоку истовремено налазе или не налазе у кеш меморији.Јединица преноса између централног процесора и кеш меморије је физичка ријеч. Јединица преноса између кеш меморије и оперативне меморије је блок. Величина блока обично износи између 4 и 128 бајтова. Капацитет кеш меморије је у опсегу од 1 до 256 кВ.Број блокова оперативне меморије је знатно већи од броја блокова кеш меморије, тако да се у кеш меморији у истом тренутку налазе копије само малог броја блокова оперативне меморије. Када централни процесор генерише адресу мемориске локације, формира се управљачки сигнал за приступ кеш меморији.

Уколико се податак са траженом адресом налази у кеш меморији, он се преноси у процесор ради обраде или се замјењујуе новом вриједношћу из процесора која представља резултат обраде. Уколико у кеш меморији нема блока са траженом адресом, активира се процедура којом се из кеш меморије један блок шаље у оперативну меморију, а на његово мјесто се из оперативне меморије позива тражени блок.

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

Сacheman је програм који контролише кеш меморију на рачунару на више начина. Контролисањем кеша и компресовањем његовог садржаја могу се побољшати перформансе рачунара. Незахвално је очекивати од овог програма да убрза рачунар за 100 процената, али треба имати на уму да ће од кеша покушати да извуче максимум. Командни интерфејс је једноставан, а функције су груписане у четири групе: Info, Settings, Options и Support.Она омогућава повећање брзине обраде, јер се у њој налазе текући подаци и текуће инструкције програма којима процесор приступа знатно брже, циљ ефикасног мемориског систем је да ефикасно вријеме приступа процесора подацима буде врло блиско времену приступа кеш меморији.

Сваки програм у себи има пречицу (Shortcut) која се може налазити на више локација (у већини случајева на дектопу). Свака пречица мора имати иконицу и она се углавном „извлачи“ из EXE фајла програма, а за то је потребно отворити EXE фајл. Дотична операција понекад зна да одузме пуно времена, посебно ако се на екрану налази много иконица .Помоћу Сachemanа је могуће одредити број иконица које ће увјек стајати у кешу и неће нестати његовим попуњавањем. У оквиру дјела за контролу RAM-а могуће је испразнити меморију, одредити максималну величину меморије или укључити

5

Page 6: Kes Memorija

аутоматско „чишћење“ RAM-а, уколико слободни простор „падне“ испод унапријед одређене величине. Кликом миша на дугме Recover memory now програм ослобађа одређену количину меморије, а резултат ослобађања се исписује на статусној линији. Сходно великом броју подешавања , програмери су убацили и те како корисници описују снимања профила подешавања (Profiles) а како би корисницима олакшали посао , аутори су убацили неколико профила који би требало да задовоље сваког корисника (десктоп рачунар, сервер, игре, систем са мало RAMа и мобилни систем)

Слика 2. Интерни и екстерни кеш

2.1 Величина кеша

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

2.2 Функције пресликавања

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

6

Page 7: Kes Memorija

функције пресликавања диктира како је кеш организован. Могу се користити три технике: директно пресликавање, асоцијативно пресликавање и асоцијативно пресликавање скупа.

2.3 Директно пресликавање

Најједноставнија техника, позната као директно пресликавање, пресликава сваки блок главне меморије у само један могући ред кеша.

Пресликавање се израчунава као i=jmodulo mГдје је:i - број редај – број блокова глане меморијеm – број редова у кешу.

Функције пресликавања се лако имплементира користећи адресе. Када се приступа кешу, свака адреса главне меморије може да се посматра као да се састоји од три поља. Најмање значних w битова иденификују једноставну ријеч или бајт унутар блока главне меморије: у већини савремених машина, адреса је на нивоу бајта. Осталих s битова одређују ј блокова главне меморије. Логика кеша интерпретира тих s битова као таг од sr битова и поље рада од r битова.Ефекат овог пресликавања је да се блокови главне меморије додјељују редовима кеша. Дакле употреба дијела адресе као броја реда обезбјеђује јеноставно пресликавање сваког блока меморије у кеш.

Када се блок стварно учита у њему додјељен ред, потребно је да се обиљеже подаци како би се разликовали од других блокова који стају у тај ред.Техника директног пресликавања је једноставнија и јефтинија за имплементацију. Њен главни недостатак је то што постоји фиксирана локација у кешу за сваки блок.Дакле ако се догоди да програм поновљиво референцира ријеч из два различита блока који се пресликавају у исти ред , онда ће се блокови стално избацивати из кеша и вјероватноћа поготка ће бити мала.

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

Асоцијативно пресликавање скупа је компромис који показује снагу и директног и асоцијативног приступа, док смањује њихове недостатке. У том случају кеш је подјељен на v скупова од којих се сваки састоји од k редова.Односи су:m= v x ki=jmodulo vГдје је:i – број редај – број блокова главне меморијеm – број редова у кешуТо се зове к-струко асоцијативно пресликавање. Код асоцијативног пресликавањ скупа блока В може се преселити у било који од редова скупа. У том случају управљачка

7

Page 8: Kes Memorija

логика кеша интерпретира мемориску адресу једноставно као три поља за таг. скуп и ријеч. Код потпуно асоцијативног пресликавања, таг у мемориској адреси је прилично дугачак и мора да се пореди са тегом сваког реда у кешу.Код технике асоцијативног пресликавања кеш меморија се састоји из следећих дјелова:

- меморије DATA и- меморије TAG.

У меморију DATA се смјештају блокови пренијети из оперативне у кеш меморију. У меморију TAG се смјештају бројеви блокова, који се називају TAG-ови, за блокове пренијете из оперативне у кеш меморију. За реалитацију меморија DATA и TAG користе се RAM и асоцијативна меморија, респективно. Уколико у меморију DATA може да се смјести 2n блокова каже се да кеш меморија има 2n улаза.

Слика 3. Кеш меморија са асоцијативним пресликавањем

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

Једном када је кеш меморија напуњена а у њу се доноси нови блок, један од постојећих блокова мора да се замијени. Код директног пресликавања постоји само један могући ред за сваки појединачни блок, па нема никаквог избора. Код техника асоцијативног пресликавања скупа потребан је алгоритам за замјену. Да би се потигла велика брзина такав алгоритам мора да се имплементира у хардвер. Испробан је велики број алгоритама. Вјероватно најефикасније је да се замјени најмање скоро коришће блок. Мијења се онај блок у склопу који је најдуже био у кешу а да није референциран. За асоцијативно пресликавање двоструких скупова то се лако имлементира. Сваки ред укључује бити USE (бити у употреби).Када се ред референцира његов бит USE се постави на 1 а бит USE другог реда на 0. Са обтиром на то да предпостављамо да ће се скорије референциране мемориске локације вјероватније опет референцирати, алгоритам LRU би требало да обезбједи најбољу вјероватноћу података. Друга могућност је алгоритам према редосљеду доласка (FIFO) замјењује се онај блок који је у скупу најдуже вријеме. FIFO се лако имплементира ка техника са кружним додјељивањем, односно циркуларним бафером. Још једн

8

Page 9: Kes Memorija

амогућност је да се замјени најмање коришћени блок (LFU) мијења се онај блок у скупу који је најмање пута био референциран. LFU може да се имплементира придруживањем бројача сваком реду.Техника која се не заснива на искоришћењу је да се ред изабере на случај између редова који су кандидати.

2.6 Величина реда

Други елемент проектовања је величина реда. Када се издвоји блок података и смјести у кеш, позвана је не само жељена ријеч него и неколико сусједних ријечи. Када се величина блока повећа од веома малих ка већим вјероватноћа поготка ће најприје расти због принципа локалности који тврди да ће се подаци у сусједству референциране ријечи вјероватно и сами позвати у блиској будућности.Када се блок повећа, корисни подаци се доносе у кеш. Међутим, вјероватноћа поготка ће почети да се смањује када блок постане још већи и вјероватноћа употребе ноодонесених информација постане мања од вјероватноће поновне употребе информација које треба замјенити.

2.7 Број кеш меморија

Појавом пентијум процесора, појавила су се и два нивоа кеш меморије.Како се густина повећава постало је могуће имати кеш меморију на истом чипу као и процесор. У поређењу са кешо доступним преко спољашне магистрале кеш на чипу смањује спољашње активности процесора и натај начин убрзава вријеме извршења и повећава укупну перформансу система.Најједноставнија организација је организација у 2 нивоа са интерним кешом означен као ниво 1 или L1 и спољашњим кешом означеним као 2 или L2. Разлог укључења кеша „L“ је ако нема кеша L2 и процесор прави захтјев за приступом мемориској локацији која није L1 онда процесор мора да приступи DRAM или RОM меморији преко магистрале. Захваљујући малој брзини магистрале и дугом временском приступу то резултује слабом перформансом. Са друге стране ако се користи L2 онда често помјешана информација може да се позове ако је RAM меморија довољно брза да одговори брзини процесора.

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

Кеш меморија другог нивоа(L2 ниво) има знатно већи капацитет и код данашњих микро процесора је такође смјештена унутар самог процесорског чипа. Зависно од типа процесора, ова кеш меморија може да ради на пуном такту процесора или на нижем такту(обично половина учесталости такта процесора).

9

Page 10: Kes Memorija

Слика 4. Двонивоске кеш меморије

Увођењем кеш меморије у сам микропроцесор добило се даље повећање брзине рада рачунара, са тим да та брзина доста зависи од квалитета кеш контролера, односно од тога колико добро он предвиђа следеће податке који ће бити потребни микро процесору, да би могао унапријед да их примјени.

2.8 Проблеми кришћења кеш меморија

При коришћењу кеш меморије треба ријешити четири основна проблема: смјештање блокова - гдје ће у кеш меморији бити смјештен нови блок прочитан из

оперативне меморије; идентификација блока – како ће бити нађен блок који се налази у кеш меморији; замјена блокова – који блок ће бити замјењен, ако се тражени блок не налази у кеш

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

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

Асоцијативно пресликавање-сваки се блок може смјестити било гдје у кеш меморију. Међутим у том случају ради идентификације блокова (други проблем) погодно је као кеш меморију користити асоцијативну меморију у којој кључ представља мемориску адресу блока а информацио дио податке из оперативне меморије.

10

Page 11: Kes Memorija

2.9 Кеш меморија диска

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

Кеш меморија диска (кеш-бафер диска) има сличну улогу као кеш меморијна у систему кеш меморија-главна меморија. То је мемориски бафер који памти посљедње коришћене дјелове адресног простора диска, смањујући тако захтјевни број приступа и ефективно вријеме приступа диску, односно повећавају ефективну брзину диска. Процесор увјек приступа подацима предходно смјештених у кеш меморију диска кад год му затребају.

Слика 5. Принцип рада кеш меморије диска

Кеш меморија диска је величине од једног до више мегабајта. Јединица преноса између диска и кеш меморије диска обично садржи једну или више стаза диска. Кеш меморија диска може се придружити излазно-улазном уређају, контролеру тог уређаја или оперативној меморији процесора. Испитивања су показала да је ефикасност кеш меморије диска најбоља када је она укључена као дио оперативне меморије.

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

11

Page 12: Kes Memorija

3. Закључак

Вјероватно сви искуснији корисници рачунара знају шта је кеш меморија и чему она служи. За све оне који нису упућени у ову тематику даћемо краће објашњење. Кеш меморија је дио меморије у коју се привремено уписују подаци пре њиховог пребацивања у главну меморију. Зависно од тога колико имате слободног кеша, ваш рачунар ће радити брже или спорије. И зато бих препоручио свима који се одлучују на куповину рачунара да при куповини одаберу довољно кеш меморије јер само се увјерили да је брза кеш меморија нешто без чега би се одређени посао много спорије обављао.

12

Page 13: Kes Memorija

ЛИТЕРАТУРА

1. Велимир Сотировић, Ћамил Сукић: Рачунарски системи, 2007

2. Велимир Сотировић, Ћамил Сукић: Информатика и рачунска техника, 2007

3. http://bs.wikipedia.org/wiki/Ke%C5%A1

4. www.znanje.org/knjige/computer/hardware/02/ memorija .pdf

13