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



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

Владельцы патента RU 2422883:

Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." (KR)

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

 

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

Существующие способы размещения объектов в оперативной памяти состоят из следующих шагов (Фиг.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).

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

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

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

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

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



 

Похожие патенты:

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

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

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

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

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

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

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

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

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

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

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

Изобретение относится к системам управления доступа и привилегиями. .

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

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

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

Изобретение относится к переносному устройству хранения данных. .
Наверх