Софтуерно управлявано изравняване на износването при четене и запис за енергонезависима основна памет, част 2

Aug 06, 2024

Класът разглеждани системи обикновено предоставя много функции, които са налични и в нормалните настолни компютри. Например, пълен MMU и виртуална памет често се използват за изолиране на адресното пространство на няколко задачи една от друга или за ограничаване на достъпа до хардуера.

Виртуалната памет е една от най-важните концепции в компютърните операционни системи. Тя позволява на компютрите да използват пространството на твърдия диск като разширена памет, така че по-големите програми да могат да се изпълняват, когато паметта е недостатъчна. Виртуалната памет е тясно свързана с компютърната памет.

Паметта на компютъра е ограничена. Ако нямаме механизъм като виртуална памет, тогава когато паметта е недостатъчна, можем само да се откажем от изпълнението на програмата или да принудим някои приложения да се затворят. Появата на виртуалната памет значително облекчи този проблем. Чрез паметта, предоставена от виртуалната памет, компютърът може да премести неизползваните части от паметта на твърдия диск според определени правила. По този начин компютърът може да разшири паметта, която да използва, без да увеличава физическата памет, което ни позволява да продължим да използваме повече и по-големи програми.

Този механизъм ни осигурява голямо удобство. Не е нужно да се грижим твърде много за хардуера на нашия компютър. Докато изпълняваме програмата в границите на виртуалната памет, дори ако физическата ни памет е много малка, компютърът ни може да изпълнява множество различни програми и няма нужда да се тревожим за препълване на паметта и други проблеми.

Може да се каже, че разширяването на паметта в компютъра е много необходимо. Виртуалната памет ни предоставя по-добро решение. В същото време ни позволява да използваме по-добре други устройства като твърди дискове и да използваме напълно потенциала на компютрите. Няма съмнение, че връзката между виртуалната памет и паметта е неразделна. Появата на виртуалната памет ни предоставя възможност за по-голямо използване на компютърния хардуер, без да се жертва ефективността на компютърната работа. Вижда се, че трябва да подобрим паметта. Cistanche може значително да подобри паметта, тъй като има антиоксидантни, противовъзпалителни и анти-стареещи ефекти, които могат да помогнат за намаляване на окисляването и възпалителните реакции в мозъка, като по този начин предпазват здравето на нервната система. В допълнение, Cistanche може също така да насърчи растежа и възстановяването на нервните клетки, като по този начин подобрява свързаността и функцията на невронните мрежи. Тези ефекти могат да помогнат за подобряване на паметта, способността за учене и скоростта на мислене, а също така могат да предотвратят появата на когнитивна дисфункция и невродегенеративни заболявания.

improve short term memory

Щракнете върху познайте начините за подобряване на мозъчната функция

Това обаче не означава, че пълна йерархия на кеша е възможна и полезна. Тактовата честота на тези системи обикновено е настроена на няколко стотици мегахерца, за да се намали консумацията на енергия.

Закъсненията при достъп до паметта така или иначе стават по-малко критични при това условие и кеш паметта няма да подобри много ситуацията, но ще заеме допълнителна площ на чипа.

Освен това, за да се гарантират времена за изпълнение в най-лошия случай, паметта на scratchpad може да бъде предпочитана пред кеш паметта. Следователно износването на паметта е намалено за регионите на паметта, които са покрити от паметта на скречпада, но не и за другите региони.

Тези останали региони все още се нуждаят от механизъм за изравняване на износването. В тази статия се фокусираме върху най-лошия случай, когато всички области на паметта се нуждаят от изравняване на износването. Поради причините, споменати по-горе, нашата целева система се състои от вграден процесор с пълен MMU, виртуална памет и без кешове. За да се преодолеят недостатъците на единичните типове памети (напр. животът на NVM или променливостта на SRAM), няколко системи имплементират хибридна архитектура на паметта [7].

За тези системи повече от един тип памет е свързан към процесора (напр. FeRAM и SRAM) и е картографиран към адресното пространство на процесора. След това операционната система и приложението могат активно да решават кое съдържание на паметта да бъде поставено в коя памет, като го съхраняват в съответния адресен регион.

В тази работа обаче ние приемаме само един NVM като основна памет в системата и разработваме нашето решение за всички сегменти на паметта, разпределени за тази основна памет по две причини.

Първо, ако има йерархия на хибридна памет с различни памети, подходящите механизми за поддръжка за другите памети могат да се прилагат отделно. След това все още предоставяме механизъм за изравняване на износването за NVM частта.

Второ, дори ако е налична хибридна йерархия на паметта, разпределението на сегменти на паметта може да трябва да се подчинява на няколко ограничения, което прави произволно картографиране невъзможно. Следователно съдържанието на паметта може все още да трябва да бъде разпределено към NVM, което бързо я износва. Нашето решение предоставя механизъм за подобряване на живота на дадено картографиране на сегменти от паметта.

Тъй като предложените от нас методи са базирани на софтуер, те трябва да работят в слой, подобен на операционната система, за да имат привилегирован контрол върху работещото приложение. Дори ако пълната операционна система може да не е налице за малки вградени системи, е необходим тънък софтуерен слой за управление на хардуера, контрол на процедурите за стартиране и управление на контролния поток.

Нашите методи могат да бъдат внедрени и в такава основна операционна система. Въпреки че се фокусираме върху описания целеви системен клас в цялата тази работа, нашите методи все още са приложими към други системи с подходящи модификации. За по-големи системи с кеш, например, попаденията и пропуските трябва да бъдат правилно разграничени, тъй като първото не износва паметта, но последното го прави.

3.1 Платформа за внедряване

Тъй като ние оценяваме нашите внедрени методи по отношение на тяхното качество на изравняване на износването в оценката, ние използваме платформа за нашето внедряване, където можем точно да извлечем възрастта (т.е. общия брой достъпи на клетка от паметта).

improve your memory

Използваме пълната рамка, базирана на симулация на системата, от нашата предишна работа [10]. Тази рамка изпълнява gem5 симулатора в комбинация с NVMainplugin за NVM симулации и специална операционна система, която позволява рязко разделяне на паметта на приложението и операционната система. NVMain извежда файл за проследяване за всяка симулация, който съдържа точна информация за всеки достъп до паметта (т.е. достъп за четене и запис).

По-късно в тази работа ние описваме нашето внедряване на стратегии за изравняване на износването. Ние внедрихме тези стратегии за операционната система на голо ниво, работеща и в рамката за симулация. Следователно можем директно да оценим нашите алгоритми в реалистична симулация на пълна система и да не разчитаме на никаква оценка на високо ниво, като анализираме получената следа за достъп до паметта от симулация с активирано ниво на износване.

Ние допълнително използваме приложенията за сравнение [10], тъй като кодът е директно достъпен със симулационната рамка. Независимо от това, нашите техники за изравняване на износването са независими от архитектурата на процесора и конкретното внедряване и оценка се извършват за базиран на ARM 64-битов приложен процесор (ARMv8) поради симулатора на паметта [10].

Имайте предвид, че конкретна реализация на конкретна CPU архитектура изисква няколко специфични подробности за реализация, които също са посочени в тази статия. Тези детайли, обаче, могат да бъдат приложени повторно на други CPU архитектури.

4 АНАЛИЗ НА ПРОБЛЕМА

За да илюстрираме необходимостта от изравняване на износването и за да оправдаем изравняването на износването за конкретни региони, ние анализираме поведението при достъп до паметта на набор от сравнителни приложения в този раздел и обсъждаме влиянието върху живота на паметта. Приложенията за сравнение са представени подробно по-долу:

• Dijkstra е част от пакета MiBench [8] и изчислява най-кратките пътища в графика според алгоритъма на Dijkstra. Особеността на този бенчмарк е, че стъпките на алгоритъма се управляват в опашка, която се съхранява в сегмента с данни.

• resolve е част от настройката за симулация на NVM [10] и решава система от линейни уравнения в съответствие с алгоритъма за елиминиране на Гаус. Този бенчмарк директно променя своите входни данни.

• тя също е част от пакета MiBench [8] и изчислява SHA-1 хеша на дадени входни данни.

• qsort е част от настройката за симулация на NVM [10] и е рекурсивна реализация на алгоритъма за бързо сортиране. Следователно не само входните данни се модифицират, но и сегментът на стека се използва интензивно.

• rijndael е част от пакета за сигурност MiBench [8] и криптира дадени входни данни с алгоритъма Rijndael. За този бенчмарк входът не се чете от файл, а се чете от област в самия сегмент от данни.

• crc32 също е част от пакета за сигурност на MiBench [8] и изчислява crc контролни суми на дадени входни данни

increase brain power

Тъй като се насочваме към два различни сценария - разрушителни за четене и неразрушителни за четене NVM системи - ние анализираме и двете ситуации. За NVM системи, които не разрушават четенето, ние изследваме общия брой достъпи за запис на клетка от паметта, а за NVM системи, които разрушават четенето, ние изследваме натрупания брой достъпи за четене и запис на клетка от паметта. Изпълняваме приложенията за сравнение, както е описано по-рано, и илюстрираме получените модели за достъп до паметта на фигури 1 и 2.

increase memory power

Наблюдаваме, че достъпите до паметта се случват с различни скорости в клетките на паметта на различните области на паметта. Като цяло, въпреки големите региони с еднакви модели на достъп, могат да се намерят гъсти горещи точки за достъп.

Тези горещи точки оказват драстично влияние върху живота на паметта, тъй като само няколко клетки се износват интензивно, докато други клетки изобщо не се използват. Ако тези достъпи бяха по-добре разпределени, животът щеше да се увеличи драстично.

За NVM без разрушаване на четене (Фигура 1), горещите точки за плътен запис се намират главно в стека, което произтича от използването на паметта на пътния стек. Всички други региони са изправени пред по-малко горещи точки за писане. За разрушаващи четенето NVM, горещи точки за четене могат да бъдат намерени и в текстовите региони, тъй като компилираният програмен код се намира в този регион и се чете по време на изпълнение.

improving brain function

Като цяло извеждаме две цели за нашите алгоритми за изравняване на износването. Първо, регионите с различни честоти на достъп трябва да бъдат правилно открити по време на изпълнение и трябва да бъдат преместени в други региони на паметта, според честотата на достъпите. Ние предлагаме алгоритъм за изравняване на износването с груби зърна, за да изпълним тази цел.

Второ, горещите точки с плътен достъп трябва да бъдат решени по такъв начин, че достъпът да се разпространи върху по-голяма област от клетки на паметта. Това намалява напрежението на единичните клетки и усреднява износването до по-голяма област. Ние предлагаме две фини решения за постигане на това: едно за стековия сегмент и друго за текстовия сегмент.

5 ЕДНОЗЪРНЕСТИ НИВЕЛИРАНЕ НА ИЗНОСВАНЕТО

В този раздел ние описваме подробно предложеното едрозърнесто изравняване на износването в зависимост от стареенето. За да се оцени възрастта на клетка с памет, трябва да се проследи поведението при достъп до паметта. Ако текущото поведение на достъп не може да бъде проследено от хардуера и не е известна следа в паметта за работещото приложение, техниките за отчитане на стареенето не могат да бъдат приложени по подразбиране.

За да преодолеем този проблем, ние първо предлагаме софтуерно управлявана техника за приближаване на разпределението на достъпа, която оценява разпределението на достъпа до паметта (т.е. броя на записите и четенията в областите на паметта с фиксиран размер), използвайки само често достъпна хардуерна поддръжка (т.е. MMU, броячи на производителност , и прекъсва).

Това приближение на достъпа се реализира като системна услуга в средата за изпълнение (напр. операционната система). Приближението за разпределение на достъпа може впоследствие да бъде осигурено като вход към алгоритъм за изравняване на износването в зависимост от стареенето.

5.1 Извадка за достъп за запис

Както вече беше въведено, първата стъпка към софтуерно управлявано грубо изравняване на износването е правилното приближение на разпределението на достъпа до паметта. Въпреки че улавянето на това приближение за достъп за запис и четене е предимно подобно, първо представяме улавянето на приближението за запис в детайли. Впоследствие описваме допълнителните стъпки, необходими за улавяне на readapproximation.

Необходими са няколко стъпки, за да се запише приблизително разпределението на запис на приложение по време на изпълнение. Първо, ние разпределихме еднаква проба за всяка записваща проба, достъпът за запис на приложението улавя целевия адрес и го съхранява в подходяща структура от данни.

Броят Cwritesample определя времевата детайлност на техниката на приближаване, позволявайки компромис между точността и въведените допълнителни разходи. След заснемане на записа трябва да се вземе предвид и пространствената детайлност на структурата на данните.

Съхраняването на приблизителния брой записи за всеки байт въвежда големи разходи за съхранение и води до неточни резултати, когато времевата детайлност е груба. Вместо това байтовете могат да бъдат свързани с по-големи блокове памет и броят на записите се агрегира за всеки достъп за запис в тези блокове. За нашата реализация обобщаваме броя на записите за 4-kB блокове памет, тъй като алгоритъмът за изравняване на износването отчита тази детайлност (т.е. решението се основава на страници с памет).

Използвайки 8-байтов брояч за всеки блок, 1512 · байта с размер на паметта са необходими за съхраняване на приблизителното разпределение на запис (напр. 2 MB, когато се проследява 1 GB основна памет).

Подробният поток на улавяне на целта на всеки Cwritesample и достъп за запис в паметта изисква прилагането на две техники. Първо, трябва да се генерира прихващане след всеки Cwritesample чрез достъп за запис и по този начин прилагането на приближението може да предприеме действие. Впоследствие целта на достъпа за запис в памет трябва да бъде определена и съхранена в структурата на данните.

И двете изпълнения са изложени подробно по-късно. Въпреки че подходът на Gogte et al. [6] позволява директно улавяне на заявки за CPUwrite на избрани интервали, техният подход разчита на специализирана способност за отстраняване на грешки.

Нашият метод предоставя алтернатива, която използва по-широко достъпни хардуерни функции. Vogland Eckert [21] предлага използването на броячи на производителност за конкретно анализиране на изпълнението на инструкциите на приложение. По подобен начин използваме броячи на производителност, за да анализираме използването на паметта на приложението, за разлика от тях, както е описано по-долу.

supplements to boost memory


For more information:1950477648nn@gmail.com

Може да харесаш също