OSDev
http://osdev.su/

Виртуальные адресса
http://osdev.su/viewtopic.php?f=7&t=914
Страница 1 из 1

Автор:  pavia [ 22 апр 2014, 21:43 ]
Заголовок сообщения:  Виртуальные адресса

Тут подкинули интересную статейку.
http://research.cs.wisc.edu/multifacet/ ... egment.pdf
Так как в механизм кэширования современного процессора я не вникал, то прокомментировать их не могу. Надеюсь SII тут сможет что-то подсказать. Но заявление автора выглядит адекватными.
Суть в том что современный механизм кэширования попросту не адекватен. В кэше находится считанное число страниц и при случайном доступе процессору требуется прочитать таблицу страниц, а только после считать сами данные. Как вы понимаете это 2-4 раза потерь в скорости при промахе. А проблема как бы актуально для всяких там баз данных таких промахов 10-30%. Собственно автор также предлагает ряд решений этой проблемы.

Автор:  Himik [ 24 апр 2014, 12:37 ]
Заголовок сообщения:  Re: Виртуальные адресса

Статью ещё не прочитал, на инглише тяжеловато вникать в сложные проблемы. По идее, не должно быть 2-4 раза потерь в скорости, ведь размер таблицы в 1000 раз меньше размера отображаемых данных. Если читать всего один байт, то да, может быть и в 10 раз меньше в скорости. Надо оптимизировать алгоритмы обработки данных, чтобы располагать данные кучнее.

Автор:  pavia [ 24 апр 2014, 15:54 ]
Заголовок сообщения:  Re: Виртуальные адресса

Суть в том что кэше от 1 до 128 дескрипторов страниц!!! Что очень малло и не эффективно. Так как нужен 1 миллион таких записей.
Таблица страниц это 4МБ для 4Гбайт. Что в кэш целиком не влазит.
Следовательно при кэш промахе нужно загрузить кореневой каталог страниц затем загрузить каталог страниц, а после уже сами данные отсюда требуется 3 обращения к памяти. Откуда я и пишу о 2-4 разах в скорости.

Проблема актуальная хотя для большинства задач таких промахов составляет от 1 до 50% Что не так много. Но проблема актуальна. И она будет только ухудшаться с ростом размера памяти и её потребления прикладным ПО.

ОС разработчика это касается так. Если хочешь что-бы твоя ОС была бы скажем для примера на 15% быстрее конкурентов, то надо использовать хитрые методы. Как то использовать больших страниц. Что в статье называется не эффективным способом. Так как 2-МБ страницы уже на 1ГБ уже требует до 2-х обращений к озу.

А вот идею автора я ещё не разобрал, но вроде как при помощи виртуализации он смог сделать более эффективный способ работы с виртуальными адресами.

Ещё как вариант подождать пока появятся новые более быстрые процессоры.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/