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

Од Википедија — слободната енциклопедија
Прејди на прегледникот Прејди на пребарувањето

Користење на компјутерска меморија[уреди | уреди извор]

Карактеристики и улога на компјутерска меморија[уреди | уреди извор]

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

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

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

  • Систем дизајнерите се стрмата да ги конфигурираат главните мемории со цел да се добие најголем пропусен опсег за најниска цена.
  • Корисниците и дизајнерите на софтвер треба да дизајнираат шеми што користата помала примарна меморија.

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

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

Системски параметри[уреди | уреди извор]

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

Општа организација на RAM меморија[уреди | уреди извор]

Основната организација на RAM мемориската единица е приказана на сликата. Адресата преземена од процесорот се сместува во меморискиот адресен регистар (MAR), без разлика дали се побарува операција на читање или запис. Потоа адресниот декодер ја одредува локацијата на податокот. Ако е одредена операцијата за читање тогаш податокот што се наоѓа на декодираната адреса се префрла во меморискиот податочен регистар ( МDR ) или меморискиот информациски регистар ( МIR ) а потоа во процесорот. Доколку се реализира операцијата на запис тогаш вредноста на овој регистар се полни со податок од процесорот и потоа истиот се сместува на одредената локација. Сите дејствија на читање и запис во меморијата ги контролираат мемориската контролна единица ( МDU ).[2] Кај оваа контролна единица се препознаваат 6 главни функции:

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


Виртуелна компјутерска меморија[уреди | уреди извор]

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

Основни концепти[уреди | уреди извор]

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

Табела на страници[уреди | уреди извор]

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


Паралелни и кеш мемории[уреди | уреди извор]

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

Паралелни преклопени компјутерски мемории[уреди | уреди извор]

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

Паралелни мемориски модули[уреди | уреди извор]

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


Заклучок[уреди | уреди извор]

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

Наводи[уреди | уреди извор]

Надворешни врски[уреди | уреди извор]

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

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

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

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

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

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