Сметачко памтење

## Користење на компјутерска меморија

### Одлики и улога на компјутерска меморија
Во рамките на целиот КС се употребуваат различни типови меморија. На пример во контролната единица постојат регистри што претставуваат RАМ мемории, додека микро програмите си реализирани преку ROM меморија. Аритметичко-логичката единица користи RОМ шеми за реализација на брза аритметика и заокружување. Кеш меморијата и главната меморија се реализирани како RAM меморија.

RОM мемориите се обично поевтини и побрзи од RАМ мемориите, за разлика од SАМ мемориите што се најбавни и најскапи. Користењето на мемориите во различни делови на КС ја градат мемориската хиерархија од регистри, преку кеш и примарната меморија до секундарна меморија.

Постојат ограничен број регистри, најчесто до 64, затоа што испитувањата покажуваат дека со денешната дека со денешната технологија постои големо забрзување на алгоритмите и зголемување на перформансите на системот со скок од 16 на 32 регистри. Скокот од 32 на 64 регистри знацително ја услознува хардверската организација и делумно го забавува системот поради адресирање регистри и воведување на големи патеки помеѓу регистрите.
Зависно од системите, кеш меморијата има големина од 8К до 2М зборови, а примарната меморија од 4М до 3G зборови. Ова се релативни величини важечки за 1997 година. Со развојот на технологијата овие параметри може да се зголемуваат на поголеми вредности.
Кеш меморијата е RАМ меморија што работи значително побрзо од примарната меморија и често со брзината на обработувачот и често со брзината на обработувачот заради неговото ефикасно искористување. Нејзината намена е да го снабди обработувачот со доволно податоци. SАМ меморијата во рамките на кеш меморијата служи за брзо откривање дали пребаруваниот податок или инструкцијата се наоѓа кеш меморијата или во инструкцискиот бафер. Слична улога има и во контролната единица каде што се употребува во табелата на страници.
Главната меморија може да биде организирана на ниво од збор или бајт. Се организира како меморија во еден модул или множество на паралелни модули. Главната меморија е најскапата компонента во скоро сите модерни КС во релација со обработувачите, контролните единици, секундарната меморија или влезно-излезните единици. Практично уцествуваат со околу 30-40% од вкупната цена на хардверот.
Сите дилеми околу намалувањето на цената на КС може да се сведат на:

* Систем дизајнерите се стрмата да ги конфигурираат главните мемории со цел да се добие најголем пропусен опсег за најниска цена.
* Корисниците и дизајнерите на софтвер треба да дизајнираат шеми што користата помала примарна меморија.
Користењето примарна меморија е проследено со идентификација на пристапот во форма на читање или запис, како и со односот на делотворниот пропусен опсег кон обликот на податоците или адресите. Полињата обично се пристапуваат секвенцијално, слично како и програмите, иако инструкциите за скок го менуваат педоследот на пристап. Можна е појава и на пристап во случаен редослед.
Според тоа делотворниот мемориски пропусен опсег е функција од обликот на адреси генерирани од програмите. Програмите што користат често можат да се сместат во RОМ како дел од главната меморија.

Пропусниот опсег може да се зголеми воведувајќи одделени мемориски модули што се пристапуваат паралелно. Ова, од друга страна, ги усложнува дизајните на програмите и создавањето програмски јазици со цел да се обезбеди ефикасно користење на паралелните мемории.
Пионерите во компјутерската технологија предвиделе ддека програмерите ќе побаруваат огромни големини на брза меморија. Меѓутоа сите податоци или инструкции во меморијата не се пристапуваат униформно.
Приципот на локалност наведува на употреба на помали хардверски парциња градејќи концепт на хиерархијата и виртуелната меморија. За пристапување на клучните принципи и маханизми за организација на меморијата се користи аналогија преку библиотеката и маса со поставени книги извлечени да се разгледуваат. Штом на мастата постои добар избор на книги тогаш огромна е веројатноста дека голем дел од времето ќе се помине во читање на тие книги отколку кога би имале само една книга и по потреба станувате и одите до полиците за да ја вратите или земете.
На истиот начин се формира илузијата на огромната меморија што и се пристапува брзо колку и на малата меморија. Исто како што не се потребни сите книги од библиотеката во исто време, така нити програмата не се пристапува до целиот код и податоците истовремено со иста веројатност. Од друга страна пак, не е возмозно да се има брз пристап до меморијата и да се има во машината големо количество на меморија, исто како што би било невозможно да се поседуваат сите книги на маса и да се најде потребното.
Принципот на локалност ги поврзува начинот на кој се работи во библиотеката и начинот на кој работи програмата. Тоа практично значи дека програмата во одреден момент од времето пристапува само до еден релативно мал дел од својот адресен простор исто како што и во одреден момент од времето е потребен само мал дел од библиотечната колекција. Принципот на временска локалност практично значи дека ако сте донеле книга на масата за да погледнете во неа, најверојатно, наскоро пак ќе треба да погледнете во неа. Слично на ова и просторната локалност специфицира дека книгите што се во близина на масата наскоро ќе бидат референцирани.
Како што пристапот до книгите од масата природно ја покажува локалноста така и локалноста во програмите се наметнува со простите и природни програмски структури. На пример, повеќето програми содржат јамки, т.е. циклуси, значи пристапот до иструкциите и податоците ќе биде повторуван, со што се покажува временската локалност. Бидејќи до инструкциите обично се пристапува секвенцијално, значи дека програмите покажуваат и голем степен на просторна локалност слично како и пристапот до податоците. Особено голем степен на просторна локалност покажува пристапот до елементите на една низа.
Принципот на локалност се применува со имплементирање на меморијата како мемориска хиерархија. Мемориската херархија се состои од повеќе нивоа на меморијата со различни големини и брзини. Побрзите мемории се поскапи од побавните па затоа и се помали.
Целта е на корисникот даму се овозможи толку меморија колку што има со евтината технологија и брзина на пристап колку брзата меморија. Ова е соодветно со книгите на маста до кои пристапот е побрз, но нема доволно место да се сместат сите потребни книги.
Концептите за градење на меморијата влијаат многу други аспекти на компјутерот, како што е начинот на кој оперативниот систем раководи со меморијата и влезот/излезот, како комплајлерот го генерира кодот и како апликациите ја користат машината. Бидејќи сите програми користат огромен дел од своето време во пристапување до меморијата, меморискиот истем претставува главен фактор во определување на перформансите на целокупниот систем.

### Системски параметри

Со помош на базни, индекси и гранични регистри и употреба на податочни дескриптори се постигнуваат ефекти на поделбата на меморијата и виртуелност. Принципот на поделба и трансформација на страниците од секундарната меморија дозволува обработка на големи програми и податочни полиња во мали примарни мемории и истовремена работа на повеќе корисници.
Една страница е фиксен блок на меморија, на пример 1КВ. Странична рамска е блок мемориски локации со фиксно одредени граници. Сртраничење е хардверска или софтверска метода за пресметување страници од секундарната и главната меморија, а по потреба и во обратна насока. Оваа метода овозможува виртуелно мемориско адресирање, односно го решава проблемот на мемориската ферментација.
За да се оствари концептот на странчење и виртуелност мора да се води евиденција за страниците што се во примарната меморија и за потребата од префрлање страница од главната во секундарната меморија. Сето ова се остварува со помош на поделбата на страниците каде се запишуваат логичките адреси. По префрлањето во страничната рамска на главната меморија се користат физички адреси.
Сигналот што се генерира кога постои потреба од трансфер на страница е наречен странична грешка. Во случај на промена на содржината на страницата се генерира потреба од нејзиното префрлање назад во секундарната меморија, во страничната табела таа се обележува со посебно одреден дескриптор.
Обично оперативниот систем го менува обработувачот кон друг корисник секогаш кога ја префрла страницата во било која насока од секундарната во главната меморија или обратно со што обработувачот се ослободува од мртвото време на чекање. Работата и контролата на префрлање страници ја презема контролната единица или меморискиот арбитер.
Принципот на виртуелната меморија дава процедури за униформно адресирање, делејќи ја меморијата на мали делови, така што голем број корисници истовремено можат да ја делат меморијата. Доста често се појавуваат податоци или програми што истовремено можат да се делат меѓу повеќе корисници. Техниката на страничење е техника со користење на блокови со фиксна големина. Постои и друга техника која користи блокови со променлива големина сегментирање и се користи за поддржување на помоќни методи на заштита и делење на адресен простор. Многу архитектури го делат адресниот простор на големи блокови со фиксна големина со што ја поедноставуваат заштитата помеѓу оперативниот систем и корисничките програми и ја зголемуваат ефикасноста во имплементација на страничењето.
Сегмент е блок на виртуелната меморија. Виртуелната мемориска адреса за сегментарната меморија се формира од сегментен, страничен или линиски број. Сегментирање е хардверска или софтверска метода за поделба на виртуелната меморија на повеќе сегменти. Ова дозволува корисникот засебно да употребува повеќе сегменти за неговата потреба и сегменти што ќе ги дели со други корисници. 
Сето тоа може да се разгледува на венови дијаграми за пресек на множества. На пример нека има три множества А, В и С асоцирани кон секој корисник, поделени на сегменти така што сите меѓусебни пресеци се содржани во некој сегмент. Во тој случај пресекот на сите три множества е сегмент што ќе се користи од сите три корисници и нема потреба од префрлање на овој сегмент во меморијата засебно за секој корисник. Сите можни пресеци меѓу два корисника на сличен начин ќе бидат поделени меѓу корисниците.
На сличен начин страничењето може да се разгледува како две можества од кои главната меморија е со помала големина во однос на множеството дефинирано според потребите на програмата што треба да се изведува. Ефектот на страничење е всушност ефект на прозорец што се движи во рамките на дефинираното множество и во даден момент само тој дел од потребната меморија се користи во главната меморија.
Страничењето е практично поделбата на виртуелната меморија во мали блокови со цел виртуелните мемориски блокови да се пресликуваат кон физичката главна меморија со помош на табелата за страници. Сегментирањето е начин на поделба на виртуелната меморија во блокови од повеќе виртуелни страници. Сегментите можат да добијат симболички имиња и не се ограничуваат според просторните граници за виртуелните страници. Секој корисник има своја сегментна табела аналогна на табелата на страници.
Разликата меѓу техниките на страничење и сегментирањето е одредена со тоа што страничењето е поделбата на меморијата според една димензија, додека сегментирањето може да се разгледува како дво- или повеќедимензионална поделба, што ја дели меморијата на мали сегменти, додека одредени множества на вакви сегменти формираат страници.

### Општа организација на RAM меморија

Основната организација на RAM мемориската единица е приказана на сликата. Адресата преземена од обработувачот се сместува во меморискиот адресен регистар (MAR), без разлика дали се побарува операција на читање или запис. Потоа адресниот декодер ја одредува локацијата на податокот.
Ако е одредена операцијата за читање тогаш податокот што се наоѓа на декодираната адреса се префрла во меморискиот податочен регистар (MDR) или меморискиот информациски регистар (MIR) а потоа во обработувачот. Доколку се реализира операцијата на запис тогаш вредноста на овој регистар се полни со податок од обработувачот и потоа истиот се сместува на одредената локација.
Сите дејствија на читање и запис во меморијата ги контролираат мемориската контролна единица (MDU). Кај оваа контролна единица се препознаваат 6 главни функции:

* Интерфејс кон надворешниот свет. Пристапот е остварен преку регистрите МАR и МDR. Надворесниот свет за меморијата на обработувачот, контролната единица и влезно-излезните единици. Понекогаш интерната меморија може да се организира со различна големина од обработувачккиот збор или магистралата на податоци. На пример, обработувачккиот збор може да е 32 битен, магистралата 16 битна а меморијата 8 битна. Потребен е посебен хардвер за составување и разложување на бајтови во потребните зборови, којшто се имплементира во (MCU).
* Хардверски интергритет на податоци. Се остварува преку битови на парност. Мемориската контролна еденица МCU ги тестира зборовите како при прием на податоците, така и при испорака кон надворешниот свет. Ако се појави грешка се презема соодветната акција генерирајќи прекин, за да се обнови приемот на податоци. Во случај на код што овозможува детекција и исправка на податоците, се презема акција на поправка.
* Управување со меморијата. Тоа е една од најважните улоги на МCU. Освен стандардната шема на адресирање и пристап се користи техника на крање циклуси. Циклусите се крадат од обработувачот кога постои влезно-излезна операција или пак проточноста во преземањето податоци на самата меморија. Доколку меморијата е значително побавна и ја зазма податочната магистрала, може да го закочи обработувачот во неговата нормална работа.
* Заштита на меморијата. Се остварува преку ситем на заклучување со брава и клуч или постапка на проверка и поставување. Заштитата е нужна активност со цел да се обезбеди правилна работа на меморијата.
* Локално адресирање. Повеќе паралелни преклопени мемориски единици можат да делат една МCU. Постојат ситуации кога во системот постојат повеќе единици, како на пример, 4 МCU со 8 мемориски единици. Кога меморискиот и обработувачккиот збор се со различна големина, тогаш постојат нови типови на проблеми како избор на вистинскиот бајт во меморискиот збор што треба да се пренесе во обработувачот.
* Управување со кеш меморијата. Ова опфаќа комплетна реализација на префрлање блокови од и назад во примарната меморија, правило на адресирање итн.

## Виртуелна компјутерска меморија

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

### Основни концепти

Како што кеш меморијата се користи како метода за овозможување брз пристап, така главната меморија меже да се однесува како кеш меморија за секундарна меморија, обично имплементирана како магнетен диск. Оваа техника се нарекува виртуелна меморија.
Постојат две главни мотивации за виртуелната меморија можноста за ефикасно делење на меморијата помеѓу повеќе програми и отстранување на тешкотиите за програмирање поради малото ограничено количество на главната меморија.
Другата мотивација е да им се овозможи на корисничките програми да зафаќаат повеќе меморија отколку што навистина има главната меморија. Порано програмерите ја одредувале поделбата на програмата на делови коишто во текот на извршувањето на програмата се сместувале во главната меморија и се обновувале во секундарната под контрола на корисничката програма. Поради тоа програмирањето претставува голем проблем. Виртуелната меморија, пак од друга страна, автоматски управува со дво нивовска хиерархија претставена со главната меморија и секундарната меморија.
За секоја програма се дефинира адресен простор односно одреден број на мемориски локации резервирани за таа програма. Со тоа се врши заштита на програмите една од друга и на оперативен систем од програмите. Виртуелната меморија го овозможува пренесувањето на адресниот простор за секоја програма. Концептот на работа на виртуелната меморија и на кеш меморијата е ист, но се користат различни термини. Така блок во виртуелната меморија се нарекува страница, а активноста што доведува до непогодување генерира грешка на страницата.
Обработувачот создава виртуелна адреса која со помош на хардверот и софтверот се преведува во физичка адреса во главната меморија. Виртуелната меморија исто така го поедноставува начинот на кој се записуваат програмите во меморијата, бедејќи врши релокација. Тоа значи дека мемориските страници се сместуваат на различни места во меморијата, т.е. за да се смести една програма или една податотека не е потребно да се бара континуиран слободен дел од меморијата туку се бараат празни односно непополнети мемориски страници во физичката меморија. За оваа активност порано бил потребен додатен хардвер или специјална поддршка на оперативниот систем која што виртуелната меморија ја спроведува.

### Табела на страници

За намалување непогодувањето на оптимизира начинот на сместување на страниците. Кога страниците се сместуваат на произволно место во меморијата, оперативниот систем при замена може да избере произволна страница. Полно асоцијативно мапирање постои кога виртуелната меморија дозволува виртуелната страница да биде мапирана за произволна физичка страница јасно користење пософистициран алгоритам за замена на страница, којшто овозможува да се замени страницата која повеќе нема да се користи.
Бидејќи секоја страница може да биде сместена на било кое место во меморијата потребен е механизам да се пронајде, т.е. се формира табела на страници. Табелата на страници е индексирана по бројот на страница од виртуелната адреса и ги содржи соодветните физички броеви на страници, како что е прикажано на сликата.
Таа ги содржи дури и оние страници што не се присутни во меморијата. На секоја програма и соодветствува табела на страници која го мапира виртуелниот адресен простор во физичка меморија. Позицијата на табелата на страници во меморијата се означува со помош на регистар кој покажува кон почетокот на табелата и кој се нарекува регистар на табелата на страници. Начинот на кој се формира физичката адреса со помош на регистарот на табелата на страници и табелата на страници е прикажано на сликата. Со помош на битот за валидност се означува дали страницата е во меморијата или не. Ако страницата е во меморијата тогаш во табелата се содржи бројот на физичката страница, а во споротива настанува грешка на страница. Бидејќи табелата ги содржи мапирањата за секоја можна страница нема потреба од ознака бит.
Освен техниката за полно асоцијативната реализација на виртуелната меморија теориски постојат и други техники за мапирање на блок од подолно во погорно мемориско ниво. Ограничено асоцијативна техника е онаа која што може страницата да ја мапира во одредено множество на страници, а дирекно мапирана страница се одредува со точно одредување каде може да се мапира секоја страница. Овие две техники не се приметуваат кај виртуелната меморија поради зголемениот трансвер на податоци помеѓу дискот и меморијата.

## Паралелни и кеш мемории

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

### Паралелни преклопени компјутерски мемории

Има две мемориски единици со ознаки 0 и 1, првата единица за непарни и втората за парни адреси. Мемориската контролна единица (MSU) ги испраќа псоодветните адреси до мемориските единици и ги презема потребните податоци. Главната идеја е да се преземат два последователни податоци истовремено во еден циклус и тоа да се искористи при секвенцијално изведување на програмата или при пристап на полињата од податоци. Ефектот на овие постапки е удвојување на меморискиот пропусен опсег. Но, ако програмите употребуваат секој втор податочен елемент или програма се состои од многу скокови тогаш пропусниот опсег нема да се зголеми двојно, како што логично би се очекувало.
Назначената идеја за изведување паралелни преклопени мемории кај произведувачите може да носи различни имиња како на пример преклопени, повеќемемориски или фазирани. Фазираните преклопени паралелни мемории се мала модификација на обичните преклопени мемории. Тие се управуваат според друг часовен интервал. 
Постојат повеќе примери на еднообработувачкки системи што користат паралелни преклопени мемории. Меѓутоа, повеќеобработувачкките системи користат друг тип паралелни мемории наречени паралелни мемориски модули.

### Паралелни мемориски модули

Ефикасноста на системот за користење еден обработувач и повеќе мемориски единици зависи од обликот на генерирани адреси. Меѓутоа во повеќеобработувачкките системи секој обработувач побарува пристап во исто време. Ако секој прецеоср генерира адреси во засебна мемориска единица тогаш се овозможува паралелна работа на секој од обработувачите. Со ваква техника програмите се здобиваат со практично забрзување.
Принципот според кој се разгледуваат паралелни мемориски модули не се сведува на тоа како да се одржат мемориите во работата, туку колку мемориски единици се потребни за да се одржат обработувачите во ефикасна работа. Ова настанува поради тоа што обработувачот е значително побрз од меморијата. На сликата е прикажана една можна архитектура каде што секој обработувач може да пристапи кон некоја мемориска единица.
Секој обработувач може да работи независно и пристапува кон одредена мемориска единица во секој временски чекор. Потенцијално постои можност повеќе обработувачи да пристапат кон исти податоци од една мемориска единица, односно пренос на податоци до повеќе обработувачи.
Ако аредсите се преклопени во мемориите, тогаш реализацијата на поврзување е изведена според функција модум. Меѓутоа некогаш се препорачува преземање податоци од една мемориска единица за да се избегнат мемориските конфликти. Тоа значи употреба на непреклопени адреси со што ориганалната идеја за забрзување нема повеќе ефект.
Конфликтите појавени за пристап кон меморијата обично се разрешуваат во рамките на мемориската контролна единица што се гради како засебно интегрирано коло за управување со меморијата ММU. Логички разгледано, проблемите на мемориските конфликти можат да се разрешуваат и на ниви на обработувачкка единица или преклопувачка мрежа, но во повеќеобработувачкките системи најдобра е употребата на засебно ММU интегрирано коло.
Проблемот на организирање полиња или матрици се истакнува посебно од аспект на ефикасно искористување или од аспект на зголемување на пропусниот опсег. Едноставно разместување на едно димензионалните полиња ие кога оперантите се пристапуваат паралелно, па се обрабутуваат од обработувачккото поле истовремено за еден временски чекор, потоа следните податоци итн.
Кај повеќе димензионални полиња постојат пристапи кон колони, редици, дијагонали, блокови што дополнително го усложнуваат начинот на пристап кон податоците односно нивната организација во меморијата.

## Заклучок

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

## Наводи

## Надворешни врски

РОМ меморија  дефиниција

РАМ меморија  дефиниција

САМ меморија  дефиниција

Виртуелна меморија дефиниција

Кеш меморија  дефиниција

Memory up  набавка на компјутерска меморија

Категорија:Сметачи