система и способ размещения статических объектов данных в неоднородной оперативной памяти

Классы МПК:G06F12/00 Выборка, адресация или распределение данных в системах или архитектурах памяти
G06F13/00 Соединение запоминающих устройств, устройств ввода-вывода или устройств центрального процессора или передача информации или других сигналов между этими устройствами
G11C14/00 Цифровые запоминающие устройства, отличающиеся использованием энергозависимых и энергонезависимых ячеек для резервирования в случае отключения электропитания
Автор(ы):, , ,
Патентообладатель(и):Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." (KR)
Приоритеты:
подача заявки:
2009-12-09
публикация патента:

Изобретение относится к области обработки данных в вычислительных системах. Техническим результатом является повышение производительности вычислительной системы с неоднородной оперативной памятью за счет более эффективного размещения статических объектов данных в памяти. При выполнении способа размещения статических объектов данных в неоднородной оперативной памяти сначала генерируют исполняемый файл из исходного кода в соответствии с обычной схемой процесса генерации исполняемого файла и посылают его в анализатор доступа. Затем собирают в генераторе трассы трассу доступа к области данных во время исполнения оптимизируемого кода и посылают ее в анализатор доступа. Извлекают из исполняемого файла информацию о статических объектах данных, а из трассы - характеристику доступа для каждого статического объекта данных. Принимают решение о рекомендуемом размещении статических объектов данных в одном из двух типов неоднородной оперативной памяти (энергонезависимой или динамической). Создают список статических объектов данных с информацией об их рекомендуемом размещении по двум типам неоднородной оперативной памяти и посылают созданный список в компилятор. Объединяют статические объекты данных, рекомендованные для каждого типа однородной оперативной памяти, в секции с дополнительными флагами. Размещают секции с дополнительными флагами в сегментах для каждого типа однородной оперативной памяти. 2 н. и 3 з.п. ф-лы, 6 ил. система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883

система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883 система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883 система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883 система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883 система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883 система и способ размещения статических объектов данных в неоднородной   оперативной памяти, патент № 2422883

Формула изобретения

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

2. Система по п.1, отличающаяся тем, что компилятор выполнен с возможностью объединения статических объектов данных из списка, рекомендованных для каждого типа однородной оперативной памяти, в секции с дополнительными флагами и с возможностью размещения секций с дополнительными флагами в сегментах для каждого типа однородной оперативной памяти.

3. Система по п.1, отличающаяся тем, что типы неоднородной оперативной памяти выбраны из набора типов, содержащего энергонезависимую оперативную память и динамическую оперативную память.

4. Способ размещения статических объектов данных в неоднородной оперативной памяти, предусматривающий выполнение следующих операций:

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

собирают в генераторе трассы трассу доступа к области данных во время исполнения оптимизируемого кода и посылают ее в анализатор доступа;

извлекают в анализаторе доступа из исполняемого файла информацию о статических объектах данных;

извлекают в анализаторе доступа из трассы характеристику доступа для каждого статического объекта данных;

принимают в анализаторе доступа решение о рекомендуемом размещении статических объектов данных по типам неоднородной оперативной памяти;

создают в анализаторе доступа список статических объектов данных с информацией об их рекомендуемом размещении по типам неоднородной оперативной памяти и посылают созданный список в компилятор;

объединяют в компиляторе статические объекты данных (из списка), рекомендованные для каждого типа однородной оперативной памяти, в секции с дополнительными флагами;

размещают посредством компилятора секции с дополнительными флагами в сегментах для каждого типа однородной оперативной памяти.

5. Способ по п.4, отличающийся тем, что размещают статические объекты данных в неоднородной оперативной памяти путем перегруппировки таких объектов на основе характеристик доступа ним, и перемещение их в исполняемом файле без перекомпиляции.

Описание изобретения к патенту

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

Существующие способы размещения объектов в оперативной памяти состоят из следующих шагов (Фиг.1). Исходный код подают на вход компилятора, в котором генерируют объектный файл, содержащий набор секций, в которых размещены статические объекты данных. Секции комбинируют в сегменты в соответствии с флагами секций и помещают в неисполняемые, записываемые сегменты (Фиг.2). Исполняемый файл содержит исполняемые сегменты и сегменты данных. Сегменты загружают в оперативную память. Из уровня техники известны различные подходы к размещению объектов данных в памяти компьютера (см., например, опубликованные заявки US 20060248259 [1], US 20080082766 [2], WO 2009098311 [3]).

В известных способах размещения объектов в памяти не делается различий между объектами данных. Из-за этого возможны потери производительности в системе с неоднородной оперативной памятью в связи с неэффективным использованием типов неоднородной оперативной памяти с более долгим временем записи.

Наиболее близким к заявленному изобретению является способ поддержки неоднородной памяти (см. опубликованную заявку US 20070260827 [4]), в котором описывается способ представления областей неоднородной памяти операционной системе (ОС) на основе сходства памяти (логическое расстояние от центрального процессора/времен доступа). Данный способ выбран в качестве прототипа заявленного изобретения.

Недостатком способа прототипа является то, что в нем не описано размещение статических объектов данных в неоднородной оперативной памяти.

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

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

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

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

генерируют в компиляторе исполняемый файл из исходного кода в соответствии с обычной схемой процесса генерации исполняемого файла и посылают его в анализатор доступа;

собирают в генераторе трассы трассу доступа к области данных во время исполнения оптимизируемого кода и посылают ее в анализатор доступа;

извлекают в анализаторе доступа из исполняемого файла информацию о статических объектах данных;

извлекают в анализаторе доступа из трассы характеристику доступа для каждого статического объекта данных;

принимают в анализаторе доступа решение о рекомендуемом размещении статических объектов данных по типам неоднородной оперативной памяти;

создают в анализаторе доступа список статических объектов данных с информацией об их рекомендуемом размещении по типам неоднородной оперативной памяти и посылают созданный список в компилятор;

объединяют в компиляторе статические объекты данных (из списка), рекомендованные для каждого типа однородной оперативной памяти, в секции с дополнительными флагами;

размещают посредством компилятора секции с дополнительными флагами в сегментах для каждого типа однородной оперативной памяти.

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

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.

Фиг.1. Схема процесса генерации исполняемого файла, известная из уровня техники.

Фиг.2. Схема размещения сегментов в системе с однородной динамической памятью, известная из уровня техники.

Фиг.3. Схема системы размещения статических объектов данных в неоднородной оперативной памяти, выполненная согласно изобретению.

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

Фиг.5. Схема размещения сегментов для неоднородной оперативной памяти, содержащей энергонезависимую оперативную память и динамическую оперативную память, выполненная согласно изобретению.

Фиг.6. Схема способа перемещения статических объектов данных в сегменте данных исполняемого файла без перекомпиляции, выполненная согласно изобретению.

Рассмотрим вариант выполнения заявленной системы и способа, в котором неоднородная оперативная память (heterogeneous memory) содержит память двух типов: энергонезависимую оперативную память (NVRAM - Non-Volatile Random Access Memory) и динамическую оперативную память (DRAM - Dynamic Random Access Memory) (Фиг.3-5). Система размещения статических объектов данных в неоднородной оперативной памяти (Фиг.3) содержит соединенные между собой последовательно компилятор 1, генератор 2 трассы и анализатор 3 доступа.

При выполнении способа размещения статических объектов данных в неоднородной оперативной памяти (Фиг.4, 5) сначала генерируют в компиляторе 1 исполняемый файл из исходного кода в соответствии с обычной схемой процесса генерации исполняемого файла и посылают его в анализатор 3 доступа. Затем собирают в генераторе 2 трассы трассу доступа к области данных во время исполнения оптимизируемого кода и посылают ее в анализатор 3 доступа. Извлекают в анализаторе 3 доступа из исполняемого файла информацию о статических объектах данных. Извлекают в анализаторе 3 доступа из трассы характеристику доступа для каждого статического объекта данных. Принимают в анализаторе 3 доступа решение о рекомендуемом размещении статических объектов данных в одном из двух типов неоднородной оперативной памяти (энергонезависимой оперативной памяти или динамической оперативной памяти). Создают в анализаторе 3 доступа список статических объектов данных с информацией об их рекомендуемом размещении по двум типам неоднородной оперативной памяти и посылают созданный список в компилятор 1. Объединяют в компиляторе 1 статические объекты данных (из созданного списка), рекомендованные для каждого типа однородной оперативной памяти, в секции с дополнительными флагами. Размещают посредством компилятора 1 секции с дополнительными флагами в сегментах для каждого типа однородной оперативной памяти.

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

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

Класс G06F12/00 Выборка, адресация или распределение данных в системах или архитектурах памяти

способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации -  патент 2527758 (10.09.2014)
способ, сервер, компьютерная программа и компьютерный программный продукт для кэширования -  патент 2527736 (10.09.2014)
способ разрушения интегральных схем памяти носителей информации -  патент 2527241 (27.08.2014)
способ восстановления данных в системе управления базами данных -  патент 2526753 (27.08.2014)
система контроля доступа к файлам на основе их автоматической разметки -  патент 2524566 (27.07.2014)
носитель записи, устройство воспроизведения и интегральная схема -  патент 2523178 (20.07.2014)
устройство формирования файлов изображения, устройство обработки изображения, способ формирования файлов изображения, способ обработки изображения и структура данных файлов изображения -  патент 2519058 (10.06.2014)
обработка транзакций для действий с побочным эффектом в транзакционной памяти -  патент 2510977 (10.04.2014)
устройство для внедрения водяного знака в информационное представление, детектор для обнаружения водяного знака в информационном представлении, способ и компьютерная программа и информационный сигнал -  патент 2510937 (10.04.2014)
способ репликации информации в распределенных базах данных с конкурентным распределением потоков -  патент 2510623 (10.04.2014)

Класс G06F13/00 Соединение запоминающих устройств, устройств ввода-вывода или устройств центрального процессора или передача информации или других сигналов между этими устройствами

способ, сервер, компьютерная программа и компьютерный программный продукт для кэширования -  патент 2527736 (10.09.2014)
управление скоростью, с которой обрабатываются запросы на прерывание, формируемые адаптерами -  патент 2526287 (20.08.2014)
способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов -  патент 2526282 (20.08.2014)
способ, исключающий задержку передачи сообщений при устранении конфликтов доступа, и система его реализации -  патент 2525749 (20.08.2014)
облегчение операций ввода-вывода в режиме передачи между канальной подсистемой и устройствами ввода-вывода -  патент 2520356 (20.06.2014)
способ и устройство контроля активации подчиненных блоков сети lin посредством анализа причин активации -  патент 2519025 (10.06.2014)
система и язык разметки для извлечения информации из независимых устройств в веб-пространстве -  патент 2516694 (20.05.2014)
контроллер передачи данных -  патент 2514135 (27.04.2014)
гетерогенный процессор -  патент 2513759 (20.04.2014)
устройство для повышения пропускной способности асинхронных цифровых систем коммутации -  патент 2511553 (10.04.2014)

Класс G11C14/00 Цифровые запоминающие устройства, отличающиеся использованием энергозависимых и энергонезависимых ячеек для резервирования в случае отключения электропитания

флэш элемент памяти электрически перепрограммируемого постоянного запоминающего устройства -  патент 2403631 (10.11.2010)
флэш элемент памяти электрически перепрограммируемого постоянного запоминающего устройства -  патент 2402083 (20.10.2010)
прибор с картой памяти обновленных алгоритмов измерения и способы ее применения -  патент 2388407 (10.05.2010)
автоматическое резервное сохранение при модификациях встроенного программного обеспечения -  патент 2375769 (10.12.2009)
устройство энергонезависимой памяти -  патент 2374704 (27.11.2009)
флэш элемент памяти электрически перепрограммируемого постоянного запоминающего устройства -  патент 2310929 (20.11.2007)
элемент памяти для флэш электрически перепрограммируемого постоянного запоминающего устройства -  патент 2287865 (20.11.2006)
устройство защиты информации -  патент 2183895 (20.06.2002)
конструкция ячейки памяти с вертикально расположенными друг над другом пересечениями -  патент 2156013 (10.09.2000)
Наверх