Рубрика «ОЗУ» - 2

В прошлой статье мы обсуждали, как процессоры Intel Sandy Bridge отображают физические адреса в кэше L3.

Теперь я расскажу, как контроллеры памяти этих процессоров сопоставляют физические адреса с местоположением в DRAM — в частности, с номерами строк, банков и столбцов в модулях DRAM. Назовём это отображением адресов DRAM. Я использую одну тестовую машину в качестве примера.

Мотивация: баг Rowhammer

Меня интересует отображение адресов DRAM, поскольку оно относится к багу Rowhammer.

Rowhammer — проблема с некоторыми модулями DRAM, когда определённые самые плохие модели доступа к памяти могут привести к повреждению памяти. В этих DRAM многократная активация строки памяти («забивание строки») вызывает электрические помехи, меняющие биты в уязвимых ячейках соседних строк.
Читать полностью »

Память вашего компьютера лагает каждые 7,8 мкс - 1

Современная DDR3 SDRAM. Источник: BY-SA/4.0 by Kjerish

Во время недавнего посещения Музея компьютерной истории в Маунтин-Вью моё внимание привлёк древний образец ферритовой памяти.

Память вашего компьютера лагает каждые 7,8 мкс - 2

Источник: BY-SA/3.0 by Konstantin Lanzet
Читать полностью »

Независимо от производителя или типа ОЗУ, почти вся компьютерная память содержит те или иные микродефекты. Изготовитель памяти может потратить от 10 до 15% стоимости модуля памяти DIMM на обширное тестирование на наличие ошибок, но память все равно может быть подвержена сбоям и отказам во время эксплуатации системы. Самые разнообразные факторы – от избыточного нагрева до «старения» и наличия в ней микродефектов — могут привести к ошибкам памяти.

Технология Dell Reliable Memory Technology PRO: обнаружение и изоляция ошибок памяти - 1
Читать полностью »

А вас тоже удивляют системные требования современных игр? Точнее, разочаровывают. Какой потенциальный суперхит не выйдет — обязательно подавай мощный и современный графический адаптер да процессор уровня Core i7. Не обходят стороной тайтлы ААА-класса и такой компонент, как оперативная память. Понятно, что «оперативки» много не бывает, но мы все же решили выяснить, сколько гигабайт необходимо современному игровому компьютеру.

Сколько вешать в граммах? Определяемся с объемом оперативной памяти для игрового ПК - 1
Читать полностью »

Асинхронная обработка запросов в СУБД в памяти, или как справиться с миллионом транзакций в секунду на одном ядре - 1

Привет! В двух моих последних статьях я говорил о том, как СУБД в оперативной памяти обеспечивают сохранность данных. Найти их можно здесь и здесь.

В этой статье я хотел бы затронуть проблему производительности СУБД в оперативной памяти. Давайте начнем обсуждение производительности с простейшего случая использования, когда просто изменяется значение по заданному ключу. Для еще большей простоты предположим, что серверная часть отсутствует, т.е. не происходит никакого клиент-серверного взаимодействия по сети (дальше будет понятно, зачем мы это сделали). Итак, СУБД (если ее можно так назвать) находится полностью в оперативной памяти вашего приложения.
Читать полностью »

Как избежать скачков во времени отклика и потреблении памяти при снятии снимков состояния в СУБД в оперативной памяти - 1

Помните мою недавнюю статью «Что такое СУБД в оперативной памяти и как она эффективно сохраняет данные»? В ней я привел краткий обзор механизмов, используемых в СУБД в оперативной памяти для обеспечения сохранности данных. Речь шла о двух основных механизмах: запись транзакций в журнал и снятие снимков состояния. Я дал общее описание принципов работы с журналом транзакций и лишь затронул тему снимков. Поэтому в этой статье о снимках я расскажу более обстоятельно: начну с простейшего способа делать снимки состояния в СУБД в оперативной памяти, выделю несколько связанных с этим способом проблем и подробно остановлюсь на том, как данный механизм реализован в Tarantool.

Итак, у нас есть СУБД, хранящая все данные в оперативной памяти. Как я уже упоминал в моей предыдущей статье, для снятия снимка состояния необходимо все эти данные записать на диск. Это означает, что нам нужно пройтись по всем таблицам и по всем строкам в каждой таблице и записать все это на диск одним файлом через системный вызов write. Довольно просто на первый взгляд. Однако проблема в том, что данные в базе постоянно изменяются. Даже если замораживать структуры данных при снятии снимка, в итоге на диске можно получить неконсистентное состояние базы данных.
Читать полностью »

Что такое СУБД в оперативной памяти и как она эффективно сохраняет данные - 1

Сальвадор Дали, Дезинтеграция постоянства памяти. 1952—1954. Холст, масло.

Всем привет. Кто-то из вас, возможно, уже знаком с СУБД для данных в оперативной памяти, но на всякий случай — по ссылке можно найти их общее описание. Если вкратце, такие СУБД хранят данные целиком в оперативной памяти. Что это означает? Каждый раз, отправляя запрос на поиск или обновление данных, вы обращаетесь только к оперативной памяти в обход жесткого диска — на нем никакие операции не производятся. И это хорошо, потому что оперативная память работает намного быстрее любого диска. Примером такой СУБД является Memcached.

Секундочку, скажете вы, а как же восстановить данные после перезагрузки или поломки машины с такой СУБД? Если на машине установлена СУБД для хранения данных только в оперативной памяти, о них можно забыть: при отключении питания данные бесследно исчезнут.

Можно ли объединить достоинства хранения данных в оперативной памяти с надежностью проверенных временем СУБД вроде MySQL или Postgres? Конечно! Повлияет ли это на производительность? Вы удивитесь, но нет!
Читать полностью »

А ты учел константу в О-большом?
На написание данного поста меня подвигла недавняя публикация этого и вот этого переводов, в которых авторы в интеллигентной форме выражают свое недовольство по поводу того, как O-оценки вычислительной сложности классических, казалось бы, алгоритмов вступили в диссонанс с их практическим опытом разработки. Основным предметом критики послужила модель памяти, в рамках которой эти оценки были получены — она, де, не учитывает особенности иерархической организации по принципу быстродействия, которая имеет место быть в современных вычислительных системах. От чего и произрастают все последующие неприятности. И судя по наблюдаемой реакции благодарных читателей, авторы далеко не одиноки в своем негодовании и желании «наехать» на классиков с их О-большими. Так возможно, действительно стоит отправить на свалку истории выкладки дядек в белых халатах, сделанные ими для ламповых тугодумающих и пышащих жаром машин, и дать дорогу молодым амбициозным моделям, более точно отражающим анатомию современного «железа»?

Читать полностью »

Миф о RAM и O(1) - 1
Городская библиотека Стокгольма. Фото minotauria.

В этой статье я хочу рассказать о том, что оценивать время обращения к памяти как O(1) — это очень плохая идея, и вместо этого мы должны использовать O(√N). Вначале мы рассмотрим практическую сторону вопроса, потом математическую, на основе теоретической физики, а потом рассмотрим последствия и выводы.

Введение

Если вы изучали информатику и анализ алгоритмической сложности, то знаете, что проход по связному списку это O(N), двоичный поиск это O(log(N)), а поиск элемента в хеш-таблице это O(1). Что, если я скажу вам, что все это неправда? Что, если проход по связному списку на самом деле O(N√N), а поиск в хеш-таблице это O(√N)?

Не верите? Я вас сейчас буду убеждать. Я покажу, что доступ к памяти это не O(1), а O(√N). Этот результат справедлив и в теории, и на практике. Давайте начнем с практики.

Измеряем

Давайте сначала определимся с определениями. Нотация “О” большое применима ко многим вещам, от использования памяти до запущенных инструкций. В рамках этой статьи мы O(f(N)) будет означать, что f(N) — это верхняя граница (худший случай) по времени, которое необходимо для получения доступа к N байтов памяти (или, соответственно, N одинаковых по размеру элементов). Я использую Big O для анализа времени, но не операций, и это важно. Мы увидим, что центральный процессор подолгу ждет медленную память. Лично меня не волнует, что делает процессор пока ждет. Меня волнует лишь время, как долго выполняется та или иная задача, поэтому я ограничиваюсь определением выше.Читать полностью »

Минимальный объём ОЗУ увеличен с 1 до 2 ГБ

Системные требования Windows подняли впервые с 2009 года - 1
Дизайн нового меню «Пуск»

Июльское обновление Windows 10 Anniversary Update принесёт много нововведений, в том числе больше рекламы в меню «Пуск» и обязательная активация криптопроцессора TPM 2.0. Он внесён в минимальную конфигурацию компьютера, работающего под Windows 10 Mobile и Windows 10 на настольных ПК. Для Windows Server 2016 эта сомнительная опция останется опциональной.

Многим пользователям важнее не столько потеря контроля над своим компьютером из-за TPM, сколько повышение системных требований для работы Windows 10, ведь такое происходит впервые с 2009 года. Минимальный объём оперативной памяти с обновлением Windows 10 повышен с 1 до 2 ГБ.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js