Йерархия на устройствата за съхранение
Паметта често се нарича "тясното място" на von Neumann VM, поради сериозното й изоставане спрямо процесорите по отношение на скоростта и тази разлика непрекъснато се увеличава. Така че, ако производителността на процесорите се удвоява годишно приблизително на всеки 1,5 години, тогава за чиповете с памет увеличението на производителността не надвишава 9% годишно (удвояване за 10 години), което се изразява в увеличаване на разликата в производителността между процесора и паметта с приблизително 50% годишно.
Ако анализираме използваните в момента типове памет, се разкрива следният модел:
- колкото по-кратко е времето за достъп, толкова по-високи са разходите за съхранение на бит;
- колкото по-голям е капацитетът, толкова по-ниски са разходите за съхранение на малко, но толкова по-дълго е времето за достъп.
Когато създавате система с памет, постоянно трябва да решавате проблема с осигуряването на необходимия капацитет и висока производителност на достъпна цена. Най-често срещаният подход тук е да се изгради VM система с памет на йерархичен принцип.Йерархичната паметсе състои от различни типове памет (фиг. 5.1), които в зависимост от характеристиките се присвояват на определено ниво на йерархията. По-високият слой е с по-малък капацитет, по-бърз и има по-висока цена на бит от долния слой. Йерархичните нива са взаимосвързани: всички данни на едно ниво могат да бъдат намерени и на най-ниското ниво и всички данни на това по-ниско ниво могат да бъдат намерени на следващото по-ниско ниво и т.н.

Горните четири нива на йерархията формиратвътрешната паметна VM, а всички по-ниски нива савъншнаиливторичнапамет. Докато се движите надолу по йерархичната структура:
1. Съотношението цена/бит намалява.
2. Увеличаване на капацитета.
3. Времето за достъп нараства.
4. Намалявачестота на достъп до паметта от процесора.
Ако паметта е организирана в съответствие с точки 1-3 и характерът на разположението на данните и инструкциите в нея отговаря на точка 4, йерархичната организация води до намаляване на общите разходи при дадено ниво на производителност.
От свойството локалност следва, че е разумно програмата да се представи под формата на последователно обработени фрагменти - компактни групи от команди и данни. Чрез поставянето на такива фрагменти в по-бърза памет е възможно значително да се намалят общите забавяния на достъпа, тъй като командите и данните, веднъж прехвърлени от бавна памет към бърза, могат да се използват многократно и средното време за достъп до тях в този случай се определя от по-бързата памет. Това дава възможност да се съхраняват големи програми и масиви от данни на бавна, обемна, но евтина памет и в процеса на обработка да се използва активно сравнително малка бърза памет, чието увеличаване на капацитета е свързано с високи разходи.
На всяко ниво на йерархията информацията е разделена наблокове,действащи като най-малката информационна единица, изпратена между две съседни нива на йерархията. Размерът на блока може да бъде фиксиран или променлив. При фиксиран размер на блока капацитетът на паметта обикновено е кратен на неговия размер. Размерът на блоковете на всяко ниво на йерархията най-често е различен и се увеличава от горните нива към дъното.
Когато се осъществява достъп до команди и данни, например, за да се прочетат, първо се търси паметта от най-високо ниво. Фактът на намиране на необходимата информация се наричаhit(hit), в противен случай се наричаmiss(miss). При пропуск паметта се търси за следващото по-ниско ниво, където също е възможно попадение или пропуск. След намиране на необходимотоинформация се извършва последователно прехвърляне на блок, съдържащ необходимата информация от по-ниските нива към по-горните. Трябва да се отбележи, че независимо от броя на йерархичните нива, информация може да се изпраща само между две съседни нива.
При оценката на ефективността на такава организация на паметта обикновено се използват следните характеристики:скорост на попадение(скорост на попадение) - отношението на броя на достъпите до паметта, по време на които е настъпило попадение, към общия брой достъпи до паметта на дадено йерархично ниво;
скорост на пропуски(скорост на пропуски) — съотношението на броя на достъпите до паметта, при които е настъпил пропуск, към общия брой достъпи на паметта на дадено йерархично ниво;
-време за попадение(време за попадение) - времето, необходимо за намиране на желаната информация в паметта от горно ниво (включително установяване дали попадението е попадение), плюс времето за действително прочитане на данните 1
-загуба при пропуск(наказание за пропуск) — времето, необходимо за замяна на блок в паметта от по-високо ниво с блок с необходимите данни, разположен в паметта от следващото (по-ниско) ниво. Загубите при пропуск включват:време за достъп(време за достъп) - времето за достъп до първата дума от блока при пропуск ивреме за прехвърляне(време за прехвърляне) - допълнително време за прехвърляне на останалите думи от блока. Времето за достъп се дължи на забавянето на паметта от по-ниско ниво, докато времето за трансфер е свързано с честотната лента на връзката между паметта на две съседни нива.
Описанието на определено ниво на йерархията на паметта включва спецификацията на четири точки:
- разположение на блока - допустимото разположение на блока на съседното йерархично ниво отгоре;
- идентификация на блок - начин за намиране на блок на съседно ниво отгоре;
заместване на блок - избор на блок, който да бъде заменен при пропуск, за да се освободи място за нов блок;
-координиране на копия (стратегии за писане) - осигуряване на съгласуваност на копия на едни и същи блокове, разположени на различни нива при запис на нова информация в копие, разположено на по-високо ниво. Най-бързият, но и най-малък тип памет по отношение на капацитета са вътрешните регистри на процесора, които понякога се комбинират с концепцията засупер бърза памет -SRAM. По правило броят на регистрите е малък, въпреки че в архитектури с намален набор от инструкции техният брой може да достигне няколкостотин. Няколко нива по-надолу е разположена основната памет (OP), която е с много по-голям капацитет. Между регистрите на процесора и основната памет често се поставя кеш памет, която по отношение на капацитета значително губи от RAM, но значително надвишава последната по отношение на производителността, като в същото време отстъпва на SRAM. Повечето съвременни виртуални машини имат няколко нива на кеш памет, които се обозначават с буквата L и номера на нивото на кеша. На фиг. 5.1 показва две такива нива. В последните разработки все по-често се появява и трето ниво на кеш памет (L3), а разработчиците на VM говорят за препоръчителното въвеждане на четвърто ниво - L4. Всяко следващо ниво на кеш паметта има по-голям капацитет, но в същото време по-бавна производителност в сравнение с предишното. Както и да е, по отношение на "скорост" всяко ниво на кеш паметта превъзхожда основната памет. Всички видове вътрешна памет са реализирани на базата на полупроводникови технологии и са предимно летливи.
Дългосрочното съхранение на големи количества информация (програми и данни) се осигурява от външни устройства за съхранение, сред които най-често срещаните устройства за съхранение на базата на магнитни и оптични дискове, както ипамет с магнитна лента.
И накрая, може да се добави друго ниво на йерархия между основната памет и дисковете. Това ниво се нарича дискова кеш памет и се реализира като независима памет, включена в магнитния диск. Дисковият кеш значително подобрява производителността при обмена на информация между дисковете и основната памет.
Йерархията може да бъде допълнена с други видове памет. И така, някои модели на IBM VM включват така нареченото разширено хранилище, направено на базата на полупроводникова технология, но с по-ниска скорост и цена в сравнение с OP. Строго погледнато, този тип памет не е включен в йерархията, а е клон от нея, тъй като данните могат да се прехвърлят само между разширена и основна памет, но обменът между разширена и външна памет не е разрешен.