Отговори на тема  [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3
Inline functions w/o substitution 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Inline functions w/o substitution
Позамислих се още за логиката на глобалния монитор... май има значение кой кур ще печели екслусива и кога.
Потенциалните проблеми са:
1) Ако е фикснат победителя и той започне изключителен достъп, всички други духат супата. Но победителя може да започне достъпа от някоя нископриоритетна нишка, тя да бъде прекъсната и целият достъп яко да се да проточи, което би оставило другите курове на сухо...
2) Ако не е фикснат победителя пък, да кажем последния опитал. То може един да започне (убивайки текущия) и тъй като между четенето и записа може да са му нужни няколко други инструкции, другата страна да повтори опита и да прекъсне нашия човек. Съответно ние повтаряме и прекъсваме друг и така да се зацикли без никой да не успее да завърши...

Затова логиката може би трябва да е малко по-различна. Мисля си, че който поиска първи да си вдига бита. Ако поискат едновременно, само един разбира се. След това на печелившия трябва да му се даде шанс да завърши, без да го прекъсват. Но заради първия проблем по-горе пък и не може да го чакаме безкрайно. Въпросът е колко точно да го чакаме. Фиксиран таймоут е малко рисковано, защото наистина не знаем колко инструкции са нужни. Но това което знаем е, че ако два кура се бият за едно и също нещо, то най-вероятно и на двата им трябват еднакъв брой инструкции. Така че може да се направи логика при която първия печели при първи конфликт. Ако се стигне до втори конфликт, това означава че победения е завъртял целия цикъл, а победителя не е. Или въртят различни цикли или победителя дреме. И в двата случая може да дръпнем бита на победителя и да го дадем на по-упорития.
Пак съществува някакъв минимален риск текущия победител да задреме след като вземе титлата, след време друг да я вземе и той да задреме и така до безкрай... Евентуално може да се помисли върху усложняване на смяната. Т.е. при първи конфликт не си разменят ролите. При втори конфликт си разменят ролите, но за следваща размяна да се изискват два нови кофликта. При четвърти пореден конфликт отново си разменят ролите, но следващата размята да е чак след още 4 нови конфликта. Демек размяната да става все по-трудна и накрая евентуално невъзможна.


Съб Дек 03, 2016 2:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Inline functions w/o substitution
HCL написа:
Не виждам как ще стане без промяна в DRAM арбитъра. Паметта е споделена и не гарантира атомарност на инструкциите. Т.е. няма кой да блокира/заключи за да се избегне промяна по средата на цикъла. В момента ако едното ядро направи store заявка в такт едно, а другото направи store заявка в такт две ще минат и двете.

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

_________________
Мразя да мразя ...


Нед Дек 04, 2016 2:05 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Inline functions w/o substitution
А да си се замислял за хардуерно детектване и отработка на deadlock?

_________________
Мразя да мразя ...


Нед Дек 04, 2016 12:26 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3

Кой е на линия

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


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

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