LINUX.ORG.RU

Cache as RAM в Linux

 ,


0

5

Привет, ЛОР!

Перечитывал тут про Coreboot и захотелось странного. В общем, в x86 можно использовать L3 кэш процессора вместо оперативной памяти. Coreboot так делает на начальных стадиях загрузки, когда память ещё не инициализирована, чтобы сунуть туда свой стэк и некоторые другие данные. Подробнее почитать можно тута: https://www.coreboot.org/data/yhlu/cache_as_ram_lb_09142006.pdf

Вопрос: а можно ли не занимаясь дичайшей содомией с прошивкой мат.платы сделать то же самое в Linux? Т.е. на начальной стадии загрузки отключить оперативную память и использовать вместо неё L3-кэш, а оперативную память в последствие адресовать как внешнее устройство? Пока что, всё что я читаю намекает на то, что для этого нужна полная перезагрузка процессора, но вдруг я что-то упускаю из вида.

Спасибо, ЛОР!

UPD: сам линукс тут даже не сильно причём. Мне интересно, можно ли такое в принципе сделать и делал ли кто-то.

★★★★★

Последнее исправление: hateyoufeel (всего исправлений: 1)

Зачем? Чтобы пришлось писать программных «сваппинг» из кэша в оперативу, вместо аппаратного имеющегося в процессоре?

anonymous
()
Ответ на: комментарий от anonymous

Самая быстрая винда (комментарий)

Да, я знаю про это. Тем не менее, работать это всё может. Просто скорее всего медленно.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Ну можно для начала попробовать ограничить память размером кеша черезmem=. Если речь про x86, то тут уже работы на месяц должно хватить.

У меня в проце L3 кэш 128 мегабайт. Не вижу тут проблемы.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Для всяких ACPI и возможно других девайсов нужно, чтобы определённые фиксированные адреса были доступны для IO. Здесь вижу проблему.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Ну и? Адресное пространство и собственно оперативная память не слишком связаны. Или ACPI нужно чтобы чтобы эти адреса прямо на RAM ложились?

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от vbr

Идея в том, чтобы использовать оперативную память для других целей.

Как пример, были эксперименты с системами, где оперативная память была зашифрована прямо с самого старта, что делает невозможными cold boot attacks и подобное.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Как пример, были эксперименты с системами, где оперативная память была зашифрована прямо с самого старта, что делает невозможными cold boot attacks и подобное.

Шифрование оперативной памяти есть в процессорах AMD (AMD Secure Memory Encryption).

vbr ★★★
()
Ответ на: комментарий от hateyoufeel

Идея в том, чтобы использовать оперативную память для других целей.

В x86 есть способы, позволяющие писать и читать память минуя кеши. Специальные инструкции, а также возможность пометить регион памяти некешируемым. Думаю, это позволит добиться желаемого. Т.е. к первым 256 MB обращаемся как обычно, они будут лежать в кеше и по сути это будет просто несущественная потеря 256 MB RAM, а к остальной памяти обращаемся минуя кеш.

Хотя полагаю, что без аппаратной поддержки такая зашифрованная память будет непрактично медленной.

vbr ★★★
()
Последнее исправление: vbr (всего исправлений: 4)
Ответ на: комментарий от vbr

Да, но нет. Эти штуки позволяют делать шифрованные анклавы. Они не позволяют шифровать вообще всю память.

Один хрен, применений кроме этого ещё вагон можно придумать. Мне интересна именно сама возможность, а не для чего это использовать.

hateyoufeel ★★★★★
() автор топика