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

Одлики и улога на компјутерска меморија Во рамките на целиот КС се употребуваат различни типови меморија. На пример во контролната единица постојат регистри што претставуваат RАМ мемории, додека микро програмите си реализирани преку ROM меморија. Аритметичко-логичката единица користи RОМ шеми за реализација на брза аритметика и заокружување. Кеш меморијата и главната меморија се реализирани како RAM меморија.http://en.wikipedia.org/wiki/Random-access_memory

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

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

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

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

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

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

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

Основната организација на RAM мемориската единица е приказана на сликата. Адресата преземена од обработувачот се сместува во меморискиот адресен регистар (MAR), без разлика дали се побарува операција на читање или запис. Потоа адресниот декодер ја одредува локацијата на податокот.