Это, возможно, глупый вопрос, и может быть результатом недоразумения. Я сейчас изучаю процессоры и память в частности. Я просто читал о том, насколько быстрее SRAM, чем DRAM, но дороже. SRAM очень дорогой: я немного покупал и нашел SRAM-карту с батарейным питанием на 16 МБ примерно за 400 долларов.
Недавно мой друг упомянул, что он запускает Puppy Linux в оперативной памяти, и что это быстро. Я заметил, однако, что крошечное ядро Linux может быть даже меньше ... до 8 МБ! Это заставило меня задуматься: можем ли мы запустить Linux в SRAM? Этот вопрос даже правильно сформулирован?
Поиск в Google этого вопроса оказался неэффективным, но он поднял еще больше вопросов. Можно ли запустить Linux в L3 Cache? Intel Core i7 может иметь кэш L3, достаточно большой, чтобы вместить 8 МБ ... но я делаю категорическую ошибку? В чем разница между этим и встроенным Linux?
Вот в чем вопрос: можем ли мы запустить Linux в SRAM или L3 Cache? Есть ли что-нибудь быстрее? Как быстро мы можем linux !?
г.
источник
Ответы:
Linux или любая другая ОС не знает, как работает RAM. До тех пор, пока контроллер памяти настроен правильно (например, частота обновления установлена для не-SRAM), ОС не заботится о том, работает ли она на простой динамической памяти (обычное ОЗУ), оперативном ОЗУ в режиме быстрой страницы (FP RAM, из C64-ish). раз), расширенный ОЗУ в режиме вывода данных (EDO), синхронное ОЗУ (SDRAM), любой из SDRAMS с двойной скоростью передачи данных (DDR 1/2/3) и т. д.
Все они поддерживают чтение и запись из разных мест. Все будет работать.
Теперь кеш немного другой. Вам не нужно писать в него, чтобы содержимое изменилось. Это будет мешать. Тем не менее, это несколько полезно. Я знаю, что coreboot использует кеш как своего рода память во время загрузки, прежде чем контроллер памяти будет правильно настроен. (Для получения подробной информации, посмотрите видео с выступлений coreboot во время FOSDEM 2011).
Так что в теории да, вы можете использовать это.
НО : для практических задач система с «обычной» «средней» памятью объемом 1 ГБ будет работать намного лучше, чем с очень быстрой памятью всего в несколько МБ. Это означает, что у вас есть три варианта:
За исключением очень редких случаев, последнее не имеет смысла.
источник
Да, вы можете, и это на самом деле, как это уже сделано, автоматически. Наиболее часто используемые части оперативной памяти копируются в кеш. Если ваше общее использование оперативной памяти меньше размера кэша (как вы предполагаете), существующий механизм кэширования скопирует все в оперативную память.
Единственный момент, когда кэш-память затем копируется обратно в обычную оперативную память, - это когда ПК переходит в режим ожидания S3. Это необходимо, потому что кэши отключены в режиме S3.
источник
Многие процессоры позволяют использовать кэш в качестве оперативной памяти. Например, большинство новых процессоров x86 могут конфигурировать определенные регионы как обратную запись с чтением без заполнения при чтении через MTRR. Это может использоваться для обозначения области адресного пространства как - эффективно - кеш-памяти.
Будет ли это полезно, другой вопрос - это заблокирует ядро в ОЗУ, но в то же время уменьшит эффективный размер кэша. Также могут быть побочные эффекты (такие как отключение кэширования для остальной части системы), которые замедляют процесс.
источник
"Можем ли мы запустить Linux в L3 Cache?"
Нет , это невозможно, поскольку кэш-память не имеет прямой / линейной адресации.
Из-за того, как кэш-память спроектирована, реестр счетчика программ ЦП (IP) не может указывать на местоположение в кэш-памяти.
Кэш ЦП имеет свою собственную «ассоциативность», и эта ассоциативность определяет способ, которым «нормальная» память «отображается» в кэш-памяти. Эта особенность кэш-памяти является одной из причин, по которой кэш-память так быстро работает.
источник
"Можем ли мы запустить Linux в L3 Cache?"
Нет, Cache предназначен для конкретной работы по хранению данных программы и инструкций, готовых к тому моменту, когда процессору они понадобятся. Вы все равно найдете операционную систему в кеше, потому что она постоянно используется. Загрузка всех ОС в кэш не эффективна, поскольку вы не используете каждый путь кода в ядре сразу.
"мы можем запустить Linux в SRAM?"
Конечно, вы можете использовать SRAM с резервным питанием от батареи в качестве загрузочного раздела, тогда вы можете использовать встроенный флаг выполнения на месте. Это может привести к более быстрому времени загрузки и немного более быстрым операциям. Однако основным фактором является пропускная способность между кэшем L3 и тем, где находится ядро (загрузочный диск или ОЗУ).
"Есть ли что-нибудь быстрее? Как быстро мы можем linux !?"
Как правило, производители оборудования и разработчики операционных систем работают над тем, чтобы сделать обработку максимально быстрой. Однако ваш вопрос носит очень общий характер: хотите ли вы ускорить загрузку, оптимизировать доступ к файловой системе, ускорить вычисления или что-то еще. Если у вас есть более конкретный вопрос, вы, безусловно, можете начать находить узкое место и устранять его. Ваш накопитель SRAM наверняка ускорит процесс загрузки. Добраться до GUI за 3 секунды было бы очень круто.
источник
Когда-то во времена 486-х годов были машины, где вся оперативная память была SRAM. Это вернулось, когда 8 МБ было много, но, похоже, соответствует вашим ограничениям. Я уверен, что 8 МБ SRAM намного дешевле, чем тогда.
Таким образом, вы можете запустить Linux в SRAM, если машина сделана таким образом. Это не теоретическое; это было сделано.
Но не в кеше. Кэш подключен по-разному, и, что более важно, адрес по-разному. Вы не можете обратиться к этому же. Чанки отображаются по-разному, а не как непрерывный чанк. И содержимое не обязательно соответствует тому, что вы видите на диске - новые чипы Intel выполняют своего рода «своевременную компиляцию» (скорее перекодирование CISC => RISC-микроопераций), где микрооперации - это самое главное. что в конечном итоге в кеше. Короче говоря, то, что находится в кеше, - это не ваша программа, а измененное представление о ней, поэтому вы больше не можете использовать ее в качестве представления вашей программы в памяти.
Вопрос в том, почему. Помимо «потому что я могу», для этого не так много причин. Система Cache дает вам большую часть выигрыша в скорости с гораздо меньшими затратами. И помните, что стоимость не просто доллары ... SRAM требует больше транзисторов, что означает больше электричества.
источник