Каждое ядро процессора может иметь свой собственный кеш. Кэш записывает и просматривает. Если два потока выполняются на разных ядрах и синхронизируются семафорами, может случиться так, что при чтении кеш-памяти они имеют другую версию этого местоположения или они как-то прозрачно синхронизируются процессором? Меня интересуют x86 и RISC.Кэш, синхронизированный между ядрами
0
A
ответ
0
Каждая машина SMP, которую вы, скорее всего, используете, имеет когерентность кэша, реализованную в аппаратном обеспечении.
0
Согласно Linux документации (https://www.kernel.org/doc/Documentation/memory-barriers.txt): для а кэши, как ожидается, будет когерентным, нет гарантии, что когерентность будут упорядочены. Это означает, что в то время как изменения, сделанные на одном процессоре, будут в конечном итоге станут видимыми на всех процессорах, нет гарантии, что они будут станут очевидными в том же порядке на этих других процессорах.
Смежные вопросы
- 1. Движение нитей между ядрами
- 2. OpenCL: синхронизация между ядрами
- 3. Перечислите разницу между двумя ядрами
- 4. Linux Kernel Module (* .ko) совместимость между ядрами
- 5. Как уменьшить дублирование кода между ядрами OpenCL?
- 6. Можно ли разделить работу между ядрами?
- 7. Pointer Array, разделяемый между ядрами OpenCL
- 8. Убедитесь, что mpi split работает между ядрами
- 9. Как JVM распространяет потоки между ядрами процессора?
- 10. Является ли TLB разделяемым между несколькими ядрами?
- 11. Наиболее эффективный способ обмена данными между ядрами
- 12. C# Эффективное разделение задач между ядрами
- 13. AOP + синхронизированный
- 14. синхронизированный переход между сценами в Xcode
- 15. Кэш-переменные PHP между страницами
- 16. Синхронизированный метод Java
- 17. Gzip со всеми ядрами
- 18. Python многопроцессорность делится ядрами
- 19. mkl_set_num_threads() ограничено физическими ядрами?
- 20. Работа с несколькими ядрами
- 21. GotoBLAS2 с несколькими ядрами
- 22. Какова связь между ядрами CUDA NVIDIA и процессорами OpenCL?
- 23. КАК CILKPLUS делит задачу между различными ядрами процессора
- 24. Количественные различия между ядрами RTOS для небольших микроконтроллеров ARM
- 25. SOLR 5.0 Доля только schema.xml и solrconfig.xml между ядрами
- 26. Связь между ядрами и числом потоков, которые я могу создать
- 27. Поддерживает ли двуядерный ARM7 когерентность кэша между ядрами?
- 28. Как можно использовать поля Solr fieldTypes между несколькими ядрами?
- 29. Как разбить работу python между ядрами? (Multiprocessing lib)
- 30. разница между более ядрами и одно ядром больше Dimension
Семафоры не являются аппаратной функцией и реализованы по-разному на разных языках. На каком языке и в библиотеке вы имеете в виду? –
@AlexeiKaigorodov Я рассказал о семафорах только для того, чтобы указать, что * время выполнения * строк кода синхронизировано правильно. Я действительно заинтересован в том, синхронизирован ли кеш прозрачно для программиста. Если нет, есть ли какие-либо команды сборки для его синхронизации, и если типичный язык говорит, что C++ и библиотека потоков (windows или linux) используют эту команду для синхронизации, например. при вызове функций семафора. – Trismegistos