Отговори на тема  [ 17 мнения ]  Отиди на страница 1, 2  Следваща
инициализация на паметта чрез DDR контролер 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение инициализация на паметта чрез DDR контролер
Чудя се дали DDR контролерите (както интелските и тези в микроконтролерите) поддържат функция за инициализация на паметта during run time? Т.е. не става въпрос за първоначалното инициализиране на регистрите на контролера след power on, reset и calibration, а за възможността да запишеш 0-и в дадено адресно пространство без да хабиш процесорно време. Някой има ли опит по темата?


Пон Ное 22, 2021 9:54 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: инициализация на паметта чрез DDR контролер
А, кое налага тази инициализация?
И защо е фатално ако при инициализация на конторлера процесора загуби и още малко време да инициализира и паметта....?


Вто Ное 23, 2021 5:29 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: инициализация на паметта чрез DDR контролер
Най-различни причини

1. Ринг буфер до чиито write pointer нямаш достъп. Т.е. единственият начин да разбереш колко информация е записана в него е да го инициализираш със стойност, която не се среща в потока от данни и когато дойде време да четеш данните разбираш до къде е стигнал на базата на това на кой адрес са записани само нули.
2. Подобрена сигурност при споделяне на паметта. Не искаш следващият процес да знае какви променливи си съхранявал и затова нулираш след себеси
3. Пунктиране - когато структурата с данни съдържа голямо количество нули, процесора може да си спести писането по паметта ако е гарантирано, че същата е била инициализирана с нули. При процесори с малко ресурси за outstanding access това подобрява дирецтно CPI-то

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


Вто Ное 23, 2021 6:30 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: инициализация на паметта чрез DDR контролер
В мануала на STM32F1xx пише , че DMA-то заема макс 50% от шината, в мануала на MSP430F5xx пише че процесорът изпълнява 2 инструкции на всеки 4 трансфера на DMA - при такава задача.
ПС.нямам опит по темата :D

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


Вто Ное 23, 2021 8:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: инициализация на паметта чрез DDR контролер
Мисля си че таково животно няма.


Вто Ное 23, 2021 9:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 11:22 pm
Мнения: 3084
Мнение Re: инициализация на паметта чрез DDR контролер
то не било DMA ми DDR :D
Чукча писател....


Вто Ное 23, 2021 10:52 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение Re: инициализация на паметта чрез DDR контролер
няма


Чет Ное 25, 2021 8:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: инициализация на паметта чрез DDR контролер
HCL написа:
Чудя се дали DDR контролерите (както интелските и тези в микроконтролерите) поддържат функция за инициализация на паметта during run time?

Мисля си че ако забраниш рефреша и температурата е над 30*С градуса то след около 10 секунди почти цялата памет ще е само нули, но никой не ти го гарантира това.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Ное 26, 2021 1:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: инициализация на паметта чрез DDR контролер
ike интересна идея, но често резолюцията е в микро до милисекунди.

ДедоБоре, а защо няма? Подобна функционалност се резлизира много компактно, а под 10 нм силиконът е буквално безплатен. В смисъл жиците които се опъват изискват толкова място, че не е никакъв проблем да се турят няколко хиляди транзистора тук и там, особено ако не са масивно навързани. Аз дори си мисля, че е странно DDR контролерите в днешно време да нямат вградени DMA или дори Sequencer-и, достъпни до ниското ниво на FW или дори до крайния потребител, ако се вземат съответните мерки за сигурност.


Пет Ное 26, 2021 3:07 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: инициализация на паметта чрез DDR контролер
Никой не го прави по-скоро защото няма особена файда. Така или иначе докато забърсваш RAM-а
никой друг няма да има достъп до него, можеш спокойно да го забършеш и ползвайки за това време
някой от DMA каналите, някой, който инак би чакал да го забършеш. Или някое ядро, което би чакало.
Защо да си причиняваш всичките арбитражи и подобни когато това не ти купува практически нищо?
Освен ако нямаш някакъв по-странен сценарий при който да ти трябва баш това разбира се, нещо
нестандартно което не ми идва на ум.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Ное 26, 2021 4:42 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: инициализация на паметта чрез DDR контролер
От гледна точка на енергийната ефективност няма смисъл да лашкаш цяло ядро за подобна работа. Особено в модерните SoC архитектури, където броят на ядрата надминава пръстите на двете ръце и DDR BW-a съответно е щедро димензиониран. Освен това самият контролер на паметта е най-доброто място да повиши ефектиността на достъп, като му дадеш някоя друга ниско приоритетна задача да запълва свободните цикли. Да не говорим, че често е по-лесно да направиш нещо в хардуера отколкото да отвориш АПИ-то между софтуерните агенти на отделните ядра... парадоксално нали?

При "race to idle" архитектури, където ядрата бързат да свършат работата и да заспят, можеш да офлоаднеш инициализацията върху контролера на паметта и да ги преспиш по-рано. Ако това ти позволи да приспиш и кешевете файдата е още по-голяма.

При "race to Fmin" архитектурите можеш да офлоаднеш инициализацията и да използваш освободеното процесорно време за да свалиш честотата на ядрото. Ако това ти позволи да намалиш и напрежението файдата е голяма защото именно то влиза квадратно в енергийната смета.


Пет Ное 26, 2021 7:08 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: инициализация на паметта чрез DDR контролер
Не знам дали това е функция на качеството на фирмуера или природна константа, но понякога се чудя тези които го пишат дали не им се плаща повече ако успея да запълнят ядрата без оглед ефективното използване на наличния или възможния от концептуална гледна точка хардуер.


Пет Ное 26, 2021 7:11 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: инициализация на паметта чрез DDR контролер
Бях ти чел изначалния пост по-рано и съм го забравил. Мислех, че става дума за еднократно забърсване след инициализация.
Забърсвалка каквато искаш би могла да е полезна наистина, примерно когато деалокираш парче да го забършеш.
Май бих предпочел обаче самият DDRAM да го можеше, предполагам би било по-ефикасно да се бърше на цели
редове вместо на думи - ама не знам всъщност как ги правят вътре. Ако направиш собствено ДМА да бърше
както ти искаш (или както аз искам) остава въпросът как ще арбитрираш достъпа до парчето докато се забърсва,
това не е тривиално - всяко от ядрата и всяко от ДМА-тата трябва да не пипа през това време.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Ное 26, 2021 7:51 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение Re: инициализация на паметта чрез DDR контролер
Виж на това ще трябва да обърна внимание. Най-малкото едно асършън ако някое от ядрата тръгне да баря докато върви инициализацията иначе ще е кошмар да се дебъгва подобно нещо. Т.е. арбитрация няма да има. Когато се стартира инициализацията се блокира региона и ако някой опитва да баря там следва асърт. Иначе казано всякаква синхронизация на достъпа до този регион спрямо процесът на инициализация трябва да бъде реализирана на по-високо, софтуерно ниво.

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


Пет Ное 26, 2021 9:15 pm
Профил WWW
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение Re: инициализация на паметта чрез DDR контролер
e, аз поне не съм виждал.

във FPGA DDR 'контролерите' в същност искат обгрижване, обикновено с някакво просто процесорче (от вида на pico blaze). то се грижи да инициализира пиновете и самите DDR чипове, но да прави температурните компенсации на терминирането по време на работа. евентуално там би могъл да барнеш и да допишеш такава фунция. но сорсовете на това контролрче, ако въобще ги има, са такава салата от стари и нови спагети, че....

в по-класически SOC, това вероятно е реализирано по подобен начин, но там нямаш много варианти да бараш баш този 'фърмуер', дори и да е в RAM, а да не е зашит твърдо.


Пет Ное 26, 2021 9:28 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 17 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни