Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2015, 11:17   #1
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию Некешируемая память

влетел вопрос: как выделиь некешируемую память в винде? или как сделать переменную глобально видимой всем ядрам после последней модификации и до следующего обращения к ней?

Последний раз редактировалось f.hump; 07.07.2015 в 11:50.
f.hump вне форума Ответить с цитированием
Старый 07.07.2015, 11:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как выделиь некешеруемую память в винде?
Если я правильно понял: VirtualAllocEx() c MEM_RESERVE
Цитата:
как сделать переменную глобально видимой всем ядрам после последней модификации и до следующего обращения к ней?
Что значит "ядрам"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2015, 11:43   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

PAGE_NOCACHE в последнем параметре.
Никогда не проверял в деле.
waleri вне форума Ответить с цитированием
Старый 07.07.2015, 11:46   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

многоядерный проц, у каждого ядра свой кеш. переодически случается херня: код выполняющийся на ядре 1 берет значение переменной из своего кеша, в то время как переменная была обновлена на ядре 2, и значение переменной из кеша 1 уже недействительно.
пробовах выбивать переменную из кеша при помощи CLFLUSH, ситуация исправилась, все бы хорошо, но настолько медленно, что ну его нах.
дальше прочиал в книжке, что IA64 поддерживает несколько протоколов работы с памятью, и один из протоколов предназначен для некешируемой памяти, значит можно пометтиь страницу памяти как некешируюмую. вопрос как? хочу посмотреть будет ли это лучше чем CLFLUSH.
f.hump вне форума Ответить с цитированием
Старый 07.07.2015, 12:00   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
многоядерный проц, у каждого ядра свой кеш. переодически случается херня: код выполняющийся на ядре 1 берет значение переменной из своего кеша, в то время как переменная была обновлена на ядре 2, и значение переменной из кеша 1 уже недействительно.
пробовах выбивать переменную из кеша при помощи CLFLUSH, ситуация исправилась, все бы хорошо, но настолько медленно, что ну его нах.
может это подскажет как: http://www.tenouk.com/WinVirtualAddressSpace.html
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2015, 12:04   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
хочу посмотреть будет ли это лучше чем CLFLUSH.
Подозреваю, что будет много хуже.
Будет как если после каждой записи делать CLFLUSH
waleri вне форума Ответить с цитированием
Старый 07.07.2015, 15:05   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
дальше прочиал в книжке, что IA64 поддерживает несколько протоколов работы с памятью
IA-64 -- это Itanium. Ты точно под него пишешь? x86-64 в терминологии Intel называется EM64T.
Vapaamies вне форума Ответить с цитированием
Старый 07.07.2015, 15:12   #8
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
IA-64
действительно, пишу для х64.

в целом, проверил некеширумую память, давно таких тормозов видеть не приходилось.
видно прийдется логику переделать, чтобы снизить требования синхронизации.
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си память Praud Помощь студентам 17 08.03.2013 21:12
Статическая память в с++. Вадим Буренков Общие вопросы C/C++ 7 21.02.2012 13:00
память offname C# (си шарп) 1 01.10.2011 10:33
прожорливая память sagitron Компьютерное железо 7 09.11.2010 18:06
Память Ghennadiy Общие вопросы Delphi 9 25.08.2009 09:23