Быстродействие динамической оперативной памяти и нелепая идея как ее увеличить. Intel Optane Memory: скоростная память для бюджетных ПК

Интересные инновации любят все, но появляются они не так часто, как хотелось бы. Новый тип накопителей Intel® Optane™ - тот самый редкий случай. Рассказываем, что это такое, почему он появился и для чего подойдет лучше всего.

Немного предыстории

Корпорация Intel известна как ведущий производитель процессоров для компьютеров и серверов. Однако не все помнят, что история компании началась не с легендарного микропроцессора Intel 4004: первым продуктом стала память емкостью всего 64 bit - в ней могло храниться ровно 64 значения (нулей или единиц). Было это в далеком 1968 году.

Микропроцессор Intel 4004, выпущенный в 1971 году

Сейчас для хранения данных используют два типа накопителей: HDD или SSD. Первые - медленные, довольно шумные в силу механической конструкции, но емкие, долговечные и очень доступные. Вторые - дорогие, с гораздо меньшей емкостью, абсолютно бесшумные, быстрые, но при этом имеют достаточно ограниченное количество циклов перезаписи.

По-настоящему быстрые и емкие SSD появились относительно недавно - во второй половине 2000-х годов, а у широкой аудитории стали востребованными лишь в начале 2010-х, когда цены на них постепенно снизились. До этого момента предпринимались как минимум три попытки найти решение, как сделать работу медлительных HDD быстрее.

Три попытки ускорить HDD

В 2008 году появилась технология ReadyDrive. Компания Microsoft предлагала пользователям Windows Vista вставить в один из USB-портов своего компьютера обычную флешку, чтобы система могла использовать ее в качестве программного кэша или, проще говоря, - для ускорения дисковых операций.

Решение казалось интересным, но не получило распространения по нескольким причинам: на тот момент флешки были гораздо медленнее, мешала ограниченная пропускная способность USB 2.0, а использование ReadyDrive в портативных устройствах оказалось банально неудобным.

Чуть позже появилось созданное для тех же целей решение компании Intel - Turbo Memory. Небольшой модуль NAND-памяти (фактически очень «маленький» SSD объемом от 512 Мб до 2 ГБ) подключался к материнской плате через интерфейс mini-PCIe и также использовался в качестве кэша. Сюда переносились наиболее востребованные файлы.

Turbo Memory можно было встретить чаще, чем флешки ReadyBoost, но технология тоже не «выстрелила» - прирост в скорости работы оказался скромным.


SSD и гибридный HDD

Третья попытка ускорить HDD пришлась на время появления первых ультрабуков, поскольку требования к этому классу устройств были четко формализованы (и вновь компанией Intel). Одним из них стала необходимость набора определенного количества очков в тесте на скорость встроенного накопителя. Производителям приходилось выбирать очень дорогие на тот момент SSD либо популяризировать гибридные диски - HDD со встроенной флеш-памятью объемом 8, 16 или 32 ГБ.

Последнюю попытку можно было назвать успешной, но со временем гибридные накопители ушли с рынка. SSD объемом 128 и 256 ГБ подешевели достаточно сильно, чтобы их заменить.

Если проблему со скоростью решили более-менее успешно, то проблема объема осталась. Выбирать сегодня доступный ноутбук - настоящее мучение. Нужно останавливаться на варианте с емким, но медленным HDD либо покупать более дорогую модификацию с быстрым SSD на 128 ГБ.

Похожая ситуация и при сборке бюджетного домашнего компьютера: основную часть данных здесь принято хранить на HDD, а систему записывать на бюджетный SSD, емкость которого, как правило, ограничивается все теми же 128 ГБ. Этого места хватит для системы и пары серьезных игр, но не более. И здесь на сцену выходит Intel Optane.


Эволюция способов хранения информации за 25 лет

Что такое Optane: коротко и понятно

Optane - семейство накопителей, построенных на базе технологии 3D X-Point™. Это не NAND, которая используется в SSD, не DRAM, которая применяется в оперативной памяти, а нечто совершенно иное.

3D X-Point в тесном партнерстве создали компании Intel и Micron. Подробности о принципах работы нового типа памяти держатся в секрете - все-таки коммерческая тайна. Энтузиасты и эксперты предполагают, что в основе кроется метод фазового перехода, но официальных подтверждений пока нет.

Однако все преимущества 3D X-Point по сравнению с другими видами памяти тщательно измерены и зафиксированы. Вот список самых важных:

В среднем 3D X-Point в 1000 раз быстрее, чем NAND-память в SSD-накопителях;

Примерно в 1000 раз долговечнее, чем SSD-накопители, что нивелирует проблему ограничения на количество циклов перезаписи;

Немного медленнее DRAM, на основе которой строится оперативная память, но при этом ощутимо дешевле;

Работает с данными на уровне отдельной ячейки в отличие от SSD, которая при записи обращается к целым страницам, а при стирании работает с блоками. Это повышает количество операций ввода-вывода в секунду, избавляет от необходимости стирать старые данные перед записью новых и уменьшает задержки доступа.

Вроде бы вот она, идеальная замена SSD, но есть один нюанс. Делать память на базе 3D X-Point пока довольно дорого. Поэтому емкость устройств Intel Optane меньше, но это не мешает эффективно применять их уже сейчас.

Optane Memory и Optane SSD

Серверное решение Optane SSD - это накопитель в виде карточки PCIe 3.0 c 375 ГБ памяти. Самые надежные серверные SSD можно полностью перезаписывать не более 10-17 раз в сутки, чтобы обеспечить их работу на протяжении пяти лет. Optane SSD можно перезаписывать 30 раз в сутки при том же сроке использования.

Второе его преимущество - стабильная скорость чтения и записи данных: в 99,99999 % случаев пользователь будет получать одинаковый результат, в то время как у SSD этот показатель находится на уровне 95 %. Для многих критически важных запросов этого недостаточно.

Учитывая отсутствие проблем с количеством циклов перезаписи и очень высокую скорость, Optane SSD можно объединить в единый массив с оперативной памятью сервера. Это идеальный вариант для востребованных сегодня задач, связанных с машинным обучением, распознаванием образов, нейросетей и т. д.

Optane Memory для настольных и портативных компьютеров - это плата М.2 c 16 или 32 ГБ встроенной памяти, созданная специально для того, чтобы ускорять быстродействие компьютеров с HDD-накопителями. То есть для тех случаев, когда пользователь не может или не хочет покупать дорогой и емкий SSD на 512 и более гигабайт.

Optane Memory работает ровно по тому же принципу, о котором мы писали в начале материала: память выступает в качестве кэша, в котором хранятся часто используемые системой файлы. Только теперь этот кэш работает с фантастической скоростью, а управляют им интеллектуальные алгоритмы, которые для выполнения конкретной задачи часто оперируют даже не целыми файлами, а отдельными кластерами файлов.

Может показаться, что 16 или 32 ГБ - это немного, но для кэширования офисных программ Optane Memory нужно несколько сотен мегабайтов, а для требовательных игр будет достаточно нескольких гигабайтов.

Процесс настройки полностью автоматизирован: пользователю нужно обновить драйвер Intel Rapid до версии 15.5, подключить Optane Memory к системной плате, нажать кнопку «Enable» и подождать 5-7 минут, пока машина перезагрузится, и система перенесет все самое востребованное с HDD на Optane, объединив оба компонента в единое пространство для хранения данных.

Для полноценной работы с Optane Memory важно, чтобы материнская плата была построена на 200-х или 300-х сериях чипсетов, а в качестве процессора выступали Core™ i3, i5 и i7 седьмого поколения или старше ( ). Если у пользователя более старый процессор и материнская плата с разъемом M.2, то Optane Memory определится как отдельный накопитель.

Для чего нужна Optane Memory и почему она лучше, чем SSD на 128-256 ГБ

Учитывая преимущества, для Intel Optane Memory вырисовываются два ключевых сценария использования. В первую очередь это отличное решение, чтобы улучшить производительность ноутбуков. Вместо SSD с маленькой емкостью можно купить лэптоп с HDD на терабайт и ускорить его при помощи Optane, приобретенного на сэкономленные деньги.

Вероятно, производители портативных компьютеров сами возьмут на вооружение такую схему, ведь Optane Memory с емкостью 16 ГБ стоит в пределах 3-3,5 тысяч рублей, а цены на версию с 32 ГБ варьируются между 5 и 5,5 тысячами. Это сравнимо со стоимостью самых бюджетных SSD на 120-128 и 240-256 ГБ.

Второй вариант - использование Optane Memory в бюджетных игровых компьютерах. Восьмое поколение Intel Core уже вполне позволяет раскрывать возможности мощных видеокарт при помощи Core i3-8100: в нем теперь не два, а четыре ядра плюс высокая тактовая частота 3,6 ГГц.

Если сэкономить и на покупке емкого SSD, то можно приобрести видеокарту классом повыше, а это - в связке с хорошим процессором - самое главное в ПК для игр. При этом также хочется быстрой загрузки, и тут возникает мысль взять бюджетный SSD на 128 ГБ, но Optane даже с 16 ГБ памяти его успешно заменит.

Пользователю не придется каждый раз думать, какие именно две-три игры хранить на быстром накопителе, а какие - на медленном HDD. С Optane у него будет единый массив, и все будет работать быстро.

Если сравнить скорость Optane Memory даже с дорогими SSD, то новая память Intel при домашнем использовании покажет более внушительные результаты. И не в бездушных тестах производительности, которые нагружают диски по полной программе, а в реальных сценариях.

Например, бенчмарк создает для теста SSD очень длинную очередь задач на выполнение, тем самым нагружая его по полной программе. В реальной жизни пользователь едва ли придумает для накопителя более чем три одновременные задачи. Для SSD это значимая разница: если с набором из 32 инструкций в очереди он работает на максимуме возможностей, то при работе с одной инструкцией его производительность падает в разы.

У Optane Memory такой особенности нет: на пик своей производительности накопитель выходит как раз начиная с 1-3 инструкций. Есть другая сторона медали: чем меньше памяти в SSD, тем медленнее он работает. Твердотельные накопители с емкостью 0,5-1 ТБ действительно можно назвать скоростными, а вот версии на 128 и 256 ГБ, увы, нет. Чем меньше памяти, тем меньшее количество каналов доступно контроллеру SSD. Это как попросить выкопать яму двух мускулистых человек вместо восьмерых.

Дальше - только интереснее. Совсем скоро появятся версии Optane Memory с емкостью 64 и 128 ГБ, а драйвер Intel Rapid обновится до 16-й версии. В ней опытные пользователи смогут самостоятельно выбирать, какую информацию кэшировать в памяти быстрого накопителя.

Также Intel планирует выпустить потребительскую версию Optane SSD, снизив стоимость продукта за счет отказа от многочисленных серверных технологий, которые простым пользователям ни к чему. А если заглянуть дальше в будущее, то в планах корпорации выпуск третьего компонента в семействе Optane - оперативной памяти для серверов на базе 3D X-Point.

На заре вычислительной техники динамическая память вполне себе работала на частоте процессора. Мой первый опыт работы с компьютером был связан с клоном компьютера «ZX Spectrum». Процессор Z80 осуществлял обработку инструкций в среднем по 4 такта на операцию, при этом два такта использовалось на осуществление регенерации динамической памяти, что дает нам при частоте в 3,5 МГц, не более 875 000 операций в секунду.

Однако спустя некоторое время частоты процессоров достигли такого уровня, когда динамическая память уже не справлялась с нагрузкой. Для компенсации этого, было введено промежуточное звено в виде кэш-памяти, что позволило за счет операций выполняемых на небольшом объеме данных сгладить разницу в скорости работы процессора и основной памяти.

Давайте рассмотрим что представляет из себя оперативная память компьютера сейчас, и что с ней можно сделать, чтобы увеличить быстродействие компьютерной системы.

Вкратце о статической и динамической памяти

Память строится в виде таблицы, состоящей из строк и столбцов. В каждой ячейке таблицы находится информационный бит (мы обсуждаем полупроводниковую память, впрочем множество других реализаций строиться по тому же принципу). Каждая такая таблица называется «банком». В микросхеме/модуле может размещаться несколько банков. Совокупность модулей памяти проецируется в линейное адресное пространство процессора в зависимости от разрядности отдельных элементов.

Ячейка статической памяти строится на основе триггера, который обычно находиться в одном из стабильных состояний «А» или «Б»(А =! Б). Минимальное количество транзисторов для одной ячейки составляет 6 штук, при этом сложность трассировки в ячейках видимо не позволяет сделать модули статической памяти в 1 гиг, по цене обычного модуля в 8 гиг.

В остальном принцип функционирования идентичен и заключается в следующем:

Первоначальная выборка строки памяти приводит к доступу ко всему ее содержимому помещаемому в буферную строку с которой идет дальнейшая работа, или происходит мультиплексирование обращения к столбцам (старый, медленный подход);
- запрошенные данные передаются к главному устройству (обычно это ЦПУ), или происходит модификация заданных ячеек при операции записи (тут есть небольшая разница, для статической памяти возможна непосредственная модификация ячейки выбранной строки, для динамической памяти модифицируется буферная строка, и только потом выполняется обратная запись содержимого всей строки в специальном цикле);
- закрытие и смена строки памяти так-же различна для разного типа памяти, для статической возможна мгновенная смена строки если данные не менялись, для динамической памяти необходимо содержимое буферной строки обязательно записать на место, и только потом можно выбрать другую строку.

Если на заре вычислительной техники каждая операция чтения или записи завершалась полным циклом памяти:

Выбор строки;
- операция чтения/записи из ячейки;
- смена/перевыбор строки.

Современный операции работы с микросхемами «синхронной памяти а ля DDRX» заключается в следующем:

Выбор строки;
- операции чтения/записи ячеек строки группами по 4-8 бит/слов (допускается множественное обращение в рамках одной строки);
- закрытие строки с записью информации на место;
- смена/перевыбор строки.

Такое решение позволило сэкономить время доступа к данным когда после чтения значения из ячейки «1», требуется обращение к ячейкам «2, 3, 4, или 7» расположенным в той-же строке, либо сразу после операции чтения, необходимо записать назад измененное значение.

Подробнее о работе динамической памяти в союзе с кэшем

Контроллер памяти (в чипсете или встроенный в процессор) выставляет адрес блока и номер строки (старшую часть адреса блока) в микросхему/модуль памяти. Выбирается соответствующий блок (дальше будет рассматриваться работа в рамках одного блока) и полученный «двоичный номер» декодируется в позиционный адрес строки, после чего происходит передача информации в буфер, из которого в последствии осуществляется доступ к данным. Время в тактах необходимое на данную операцию называется tRCD и отображается в схемах «9-9-9/9-9-9-27» на втором месте.

После того как строка активизирована можно обращаться к «столбцам» для этого контроллер памяти передает адрес ячейки в строке, и спустя время «CL» (указывается в выше обозначенной схеме «х-х-х» на 1 месте) данные начинают передаваться от микросхемы памяти в процессор (почему во множественном числе? потому что здесь вмешивается КЭШ) в виде пакета из 4-8 бит (для отдельно взятой микросхемы) в строку кэша (размер зависит от процессора, типовое значение 64 байта - 8 слов по 64 бита, но встречаются и другие значения). Спустя определенное количество тактов, необходимых для передачи пакета данных можно сформировать следующий запрос на чтение данных из других ячеек выбранной строки, или выдать команду на закрытие строки которая выражается в виде tRP указанное в виде третьего параметра из «х-х-х-...». Во время закрытия строки, данные из буфера записываются обратно в строку блока, после окончания записи можно выбрать другую строку в данном блоке. Кроме этих трех параметров есть минимальное время в течении которого строка должна быть активна «tRAS», и минимальное время полного цикла работы со строкой разделяющего две команды по активизации строки (влияет на случайный доступ).

grossws 19 апреля 2016 в 12:40

CL - CAS latency, tRCD - RAS to CAS delay, tRP - row precharge, CAS - column address strobe, RAS - row address strobe.

Быстродействие полупроводниковой техники определяется задержками элементов схемы. Для того чтобы на выходе получить достоверную информацию, необходимо выждать определенное время для того чтобы все элементы приняли устойчивое состояние. В зависимости от текущего состояния банка памяти меняется время доступа к данным, но в целом можно охарактеризовать следующие переходы:

Если блок находится в состоянии покоя (нет активной строки), контроллер выдает команду выбора строки, в результате двоичный номер строки преобразуется в позиционный номер, и происходит чтение содержимого строки за время «tRCD».

После того как содержимое строки было считано в буферную зону, можно выдавать команду выбора столбца, по которой двоичный номер столбца преобразуется в позиционый номер, за время «CL», но в зависимости от выравнивания младших адресов может поменяться очередность передачи бит.

Перед тем как сменить/закрыть строку, необходимо записать данные на место, так как во время чтения, информация была фактически уничтожена. Время необходимое на восстановление информации в строке «tRP».

По полной спецификации для динамической памяти есть еще множество временных параметров определяющих очередность и задержки изменения управляющих сигналов. Одним из таких является «tRCmin» определяющее минимальное время полного цикла строки, включающее в себя: выбор строки, доступ к данным и обратную запись.

Сигнал RAS определяет факт выдачи адреса строки;
Сигнал CAS определяет факт выдачи адреса столбца.

Если раньше все управление перекладывалось на сторону контроллера памяти и управлялось данными сигналами, то сейчас идет режим команд, когда в модуль/микросхему выдается команда, а спустя некоторое время идет передача данных. Более подробно лучше ознакомиться в спецификации стандарта, например DDR4 .

Если говорить о работе с dram в общем, то при массовом чтении она обычно выглядит следующим образом:

Выставили адрес строки,
выставили RAS (и через такт сняли),
выждали tRCD,
выставили адрес колонки с которой читаем (и каждый следующий такт выставляем следующий номер колонки),
выставили CAS,
выждали CL, начали читать данные,
сняли CAS, прочитали остаток данных (ещё CL тактов).

При переходе не следующий ряд делается precharge (RAS + WE), выжидается tRP, выполняется RAS с установленным адресом строки и далее выполняется чтение как описано выше.

Latency чтения случайной ячейки естественным образом вытекает из описанного выше: tRP + tRCD + CL.

В действительности зависит от предыдущего состояния «банка памяти» к которому идет обращение.

Нужно обязательно помнить что у оперативной памяти DDR есть две частоты:

Основная тактовая частота определяющая темп передачи команд и тайминги;
- эффективная частота передачи данных (удвоенная тактовая частота, которой и маркируются модули памяти).

Интеграция контроллера памяти увеличило быстродействия подсистемы памяти за счет отказа от промежуточного передающего звена. Увеличение каналов памяти требудет учитывать это со стороны приложения, так например четырех канальный режим при определенном расположении файлов не дает прироста производительности (12 и 14 конфигурации).


Обработка одного элемента связного списка с разным шагом (1 шаг = 16 байт)

Теперь немного математики

Процессор: рабочие частоты процессоров сейчас достигают 5 ГГц. По заявлениям производителей, схемотехнические решения (конвейеры, предсказания и прочие хитрости) позволяют выполнять одну инструкцию за такт. Для округления расчетов возьмем значение тактовой частоты в 4 ГГц что даст нам одну операцию за 0,25 нс.

Оперативная память: возьмем для примера оперативную память нового формата DDR4-2133 с таймингом 15-15-15.

Процессор
Fтакт = 4 ГГц
Tтакт = 0,25 нс (по совместительству время выполнения одной операции «условно»)

Оперативная память DDR4-2133
Fтакт = 1066 МГц
Fдата = 2133 МГц
tтакт = 0,94 нс
tдата = 0,47 нс
СПДмакс = 2133 МГц * 64 = 17064 Мбайт/с (скорость передачи данных)
tRCmin = 50 нс (минимальное время между двумя активациями строк)

Время получения данных
Из регистров и кэша, данные могут быть предоставлены в течении рабочего такта (регистры, кэш 1 уровня) или с задержкой в несколько тактов процессора для кэша 2-го и 3-го уровня.

Для оперативной памяти ситуация похуже:

Время выбора строки составляет: 15 clk * 0,94 нс = 14 нс
- время до получения данных с команды выбора столбца: 15 clk * 0,94 нс = 14 нс
- время закрытия строки: 15 clk * 0,94 нс = 14 нс (кто бы подумал)

Из чего следует что время между командой запрашивающей данные из ячейки памяти (в случае если в кэш не попали) может варьироваться:

14 нс - данные находятся в уже выбранной строке;
28 нс - данные находятся в невыбранной строке при условии что предыдущая строка уже закрыта (блок в состоянии «idle»);
42-50 нс - данные находятся в другой строке, при этом текущая строка нуждается в закрытии.

Количество операций которые может выполнить (вышеобозначенный) процессор за это время составляет от 56 (14 нс) до 200 (50 нс смена строки). Отдельно стоить отметить что ко времени между командой выбора столбца и получением всего пакета данных добавляется задержка загрузки строки кэша: 8 бит пакета * 0,47 нс = 3,76 нс. Для ситуации когда данные будут доступны «программе» только после загрузки строки кэша (кто знает что и как там накрутили разработчики процессоров, память по спецификации позволяет выдать нужные данные вперед), мы получаем еще до 15-и пропущенных тактов.

В рамках одной работы я проводил исследование скорости работы памяти, полученные результаты показали, что полностью «утилизировать» пропускную способность памяти возможно только в операциях последовательного обращения к памяти, в случае произвольного доступа увеличивается время обработки (на примере связного списка из 32-х битного указателя и трех двойных слов одно из которых обновляется) с 4-10 (последовательный доступ) до 60-120 нс (смена строк) что дает разницу в скорости обработки в 12-15 раз.

Скорость обработки данных
Для выбранного модуля имеем пиковую пропускную способность в 17064 Мбайт/с. Что для частоты в 4 ГГц дает возможность обрабатывать за такт 32-х битные слова (17064 Мб / 4000 МГц = 4,266 байт на такт). Здесь накладываются следующие ограничения:

Без явного планирования загрузки кэша, процессор будет вынужден простаивать (чем выше частота, тем больше ядро просто ждет данные);
- в циклах «чтение модификация запись» скорость обработки снижается в два раза;
- многоядерные процессоры разделят между ядрами пропускную способность шины памяти, а для ситуации когда будут конкурирующие запросы (вырожденный случай), производительность работы памяти может ухудшиться в «200 раз (смена строк) * Х ядер».

Посчитаем:

17064 Мбайт/с / 8 ядер = 2133 Мбайт/с на ядро в оптимальном случае.
17064 Мбайт/с / (8 ядер * 200 пропущенных операций) = 10 Мбайт/с на ядро для вырожденного случая.

В переводе на операции получаем для 8-и ядерного процессора: от 15 до 400 операций на обработку байта данных, или от 60 до 1600 операций/тактов на обработку 32-х битного слова.

На мой взгляд медленно как-то. По сравнению с памятью DDR3-1333 9-9-9, где время полного цикла примерно равно 50 нс, но отличаются время таймингов:

Время доступа к данным уменьшается до 13,5 нс (1,5 нс * 9 тактов);
- время передачи пакета из восьми слов 6 нс (0,75 * 8 вместо 3.75 нс) и при случайном доступе к памяти, разница в скорости передачи данных практически исчезает;
- пиковая скорость составит 10 664 МБайт/с.

Не слишком все далеко ушло. Ситуацию немного спасает наличие в модулях памяти «банков». Каждый «банк» представляет собой отдельную таблицу памяти к которой можно обращаться раздельно, что дает возможность сменить строку в одном банке пока идет чтение/запись данных из строки другого, за счет уменьшения простоя позволяет «забить» шину обмена данными под завязку в оптимизированных ситуациях.

Собственно здесь пошли нелепые идеи

Таблица памяти, содержит в себе заданное количество столбцов, равное 512, 1024, 2048 бит. С учетом времени цикла по активации строк в 50 нс, мы получаем потенциальную скорость обмена данными: «1/0,00000005 с * 512 столбцов * 64 бит слово = 81 920 Мбайт/с» вместо текущих 17 064 Мбайт/с (163 840 и 327 680 МБайт/с для строк из 1024 и 2048 столбцов). Скажете: «всего раз в 5 (4,8) быстрее», на что я отвечу: «это скорость обмена, когда все конкурирующие запросы обращены к одному банку памяти, и доступная пропускная возможность увеличивается пропорционально количеству банков, и увеличением длины строки каждой таблицы (потребует увеличение длины операционной строки), что в свою очередь упирается главным образом в скорость шины обмена данными».

Смена режима обмена данными потребует передачи всего содержимого строки в кэш нижнего уровня, для чего надо разделить уровни кэша не только по скорости работы, но и по размеру кэш строки. Так например реализовав «длину» строки кэша N-го уровня в (512 столбцов * 64 размер слова) 32 768 бит, мы можем за счет уменьшения количества операций сравнения увеличить общее количество строк кэша и соответственно увеличить максимальный его объем. Но если сделать параллельную шину в кэше такого размера, мы можем получить уменьшение частоты функционирования, из чего можно применить другой подход организации кэша, если разбить указанную «Jumbo»-строку кэша на блоки по длине строки верхнего кэша и производить обмен с небольшими порциями, это позволит сохранить частоту функционирования, разделив задержку доступа на этапы: поиск строки кэша, и выборку нужного «слова», в найденной строке.

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

Оценим скорость такого канала:

1/0,00000005 нс = 20 МГц (частота смены строк в рамках одного блока)
20 Мгц * 32 768 бит = 655 360 Мбит/с
Для дифференциальной передачи с тем-же размером шины данных получаем:
655 360 Мбит/с / 32 канала = 20 480 Мбит/с на канал.

Такая скорость выглядит приемлемо для электрического сигнала (10 Гбит/с для сигнала со встроенной синхронизацией на 15 метров доступен, почему бы и 20 ГБит/с с внешней синхронизацией на 1 метр не осилить), однако необходимое дальнейшее увеличение скорости передачи для уменьшения задержки передачи между первым и последним битом информации, может потребовать увеличения пропускной способности, с возможной интеграцией оптического канала передачи, но это уже вопрос к схемотехникам, у меня маловато опыта работы с такими частотами.

и тут Остапа понесло
Изменение концепции проецирования кэша на основную память к использованию «основной памяти как промежуточного сверхбыстродействующего блочного накопителя» позволит переложить предсказание загрузки данных с схемотехники контроллера на алгоритм обработки (а уж кому лучше знать куда он ломанется через некоторое время, явно не контроллеру памяти), что в свою очередь позволит увеличить объем кэша внешнего уровня, без ущерба производительности.

Если пойти дальше можно дополнительно изменить концепцию ориентирования архитектуры процессора с «переключение контекста исполнительного устройства», на «рабочее окружение программы». Такое изменение может существенно улучшить безопасность кода через определение программы как набора функций с заданными точками входа отдельных процедур, доступным регионом размещения данных для обработки, и возможностью аппаратного контроля возможности вызова той или иной функции из других процессов. Такая смена позволит также эффективнее использовать многоядерные процессоры за счет избавления от переключения контекста для части потоков, а для обработки событий использовать отдельный поток в рамках доступного окружения «процесса», что позволит эффективнее использовать 100+ ядерные системы.

P.S.: случайное использование зарегистрированных товарных знаков или патентов является случайным. Все оригинальные идеи доступны для использования по лицензионному соглашению «муравейник».

Большинство пользователей представляют себе, на что влияет скорость оперативной памяти . Она отвечает за передачу данных, и чем эта комплектующая часть будет мощнее, тем быстрее будут работать приложения, а особенно игры. При ее недостаточном объеме, все процессы, программы будут загружаться довольно долго, а то и вовсе вылетать, вплоть до незапланированной перезагрузки ОС, что будет вызывать неподдельное раздражение у пользователя.

Принцип работы и основные характеристики ОЗУ

  1. Объем памяти

Оперативная память представляет собой микросхему, в которой отсутствует автономное питание. Иными словами, если компьютер выключается, то и вся информация, хранившаяся в ОЗУ стирается. Взаимодействие оперативки с процессором осуществляется посредством кэш или память нулевого уровня.

Быстродействие ОЗУ зависит от нескольких параметров, среди которых можно выделить тип, а также частоту. При этом, наиболее важным показателем является объем. Для современных компьютеров, минимальный порог должен составлять 2 гигабайта. Это связано с тем, что начиная с версии Windows Vista, операционная система забирает под свои нужды 1 Гб, а соответственно для полноценной работы приложений необходимо иметь хотя бы такой же размер. Меньший объем конечно же встречается (хотя в магазинах таких планок уже нет), но эти компьютеры уже безнадежно устаревшие и на них практически невозможно установить , а также ресурсоемкие программы.

Наиболее оптимальным вариантом на данный момент для бюджетного компьютера будет установка 4-х гигабайт ОЗУ. Это обеспечит нормальную и быструю работу в интернете, даст возможность смотреть видео различного качества и устанавливать современные игры с использованием средних настроек (хотя видео и игры еще зависят и от ).

Для более продвинутых пользователей, которые работают с графикой или редактируют аудио- видео- потоки, необходим объем оперативки, который должен составлять от 8-ми до 16-ти Гб, при этом не нужно забывать, что в этом случае необходима и хорошая графическая карта c чипсетом GDDR5 и в которой будет не менее 4-х Гб оперативки. При установке большего объема ОЗУ, например 32 Гб, об установке дополнительных планок, в свободные слоты для нее (если таковые будут), можно за быть на несколько лет.

Примечание: при установке большего количества оперативной памяти, не стоит думать, что компьютер будет после этого летать, ведь быстродействие зависит и от процессора, и от иных комплектующих. К тому же, не нужно забывать, что 32-х битные версии операционных систем могут использовать лишь 3,2 Гб ОЗУ, остальной объем будет простаивать.

  1. Тип оперативной памяти

От этого параметра также зависит скорость передачи данных. В современных компьютерах уже нигде не используется DDR тип, а только лишь с индексами 2,3 или 4. Это обязательно стоит учитывать, если пользователь решил докупить и установить в свободный слот дополнительную планку, потому как хоть по длине и ширите они одинаковы, на соединении с материнской размещена прорезь, которая располагается на различных расстояниях (см. скриншот), а соответственно не смогут быть установлены.

Стоит отметить, что DDR 2 уже редко можно встретить и на данный момент, практически везде устанавливается тип DDR 3. Наиболее современный тип оперативной памяти DDR 4 встречается крайне редко, в основном на тех компьютерах, которые были приобретены или модернизированы относительно недавно. А если учесть то, что на все материнские платы, поддерживающие DDR 4, можно установить лишь процессоры Intel, которые в значительной степени дороже AMD, это тоже влияет на популяризацию современного типа памяти. Хотя можно с уверенностью утверждать, что с DDR 4, эффективность возрастет в 1,5-2 раза.

  1. Частота

Этот параметр также напрямую связан с . Чем выше частота, тем быстрее производится скорость обмена данных. Среди вышеупомянутых типов ОЗУ уже нет таких планок, в которых частота была бы ниже 1600 МГц, однако эта величина на последних моделях может достигать отметки 3200 МГц.

Опять же, если владелец компьютера решил приобрести оперативку и установить ее в дополнительный слот, ему следует учесть следующее:

  • частота новой планки должна быть идентична той, которая уже установлена, в противном случае они не смогут параллельно работать;
  • желательно устанавливать ОЗУ от одного производителя, ведь случаются ситуации, когда некоторые планки с одинаковой частотой, но разных брендов могут конфликтовать между собой и компьютер попросту не будет запускаться;
  • также может быть ограничена этим параметром: перед тем, как приобретать новую оперативку, просмотрите характеристики материнки, чтобы все нюансы были соблюдены и компьютер работал;
  1. Увеличение эффективности работы

Иногда у пользователя установлено достаточное количество оперативной памяти, при этом компьютер подтормаживает и человек принимает решение докупать ОЗУ. В некоторых случаях это может совершенно не понадобиться, можно лишь выполнить оптимизацию:

  • просмотрите в диспетчере задач, насколько загружена оперативная память, и если здесь имеется достаточный запас, тогда, скорее всего, дело не в ОЗУ и дополнительная планка проблему не решит;

  • выгрузите приложения, которые в данный момент не используются, а также проверьте список программ, которые расположены в автозапуске. Если в нем будут находиться такие приложения, которые довольно редко и точно не нужны при старте компьютера, также удалите их из этого списка;
  • , ведь иногда некоторые процессы могут подвисать в оперативной памяти и загромождать ее, что и может приводить к торможениям и фризам.

Можно также попробовать разогнать оперативку. Это можно сделать из-под БИОС. Но при этом стоит помнить, что некоторые магазины в подобных случаях могут отказать в гарантийном обслуживании (обмене), да и срок службы будет меньше, чем без выполнения этого действия.