СИСТЕМА И СПОСОБ РАЗМЕЩЕНИЯ СТАТИЧЕСКИХ ОБЪЕКТОВ ДАННЫХ В НЕОДНОРОДНОЙ ОПЕРАТИВНОЙ ПАМЯТИ Российский патент 2011 года по МПК G06F12/00 G06F13/00 G11C14/00 

Описание патента на изобретение RU2422883C1

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

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

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

название год авторы номер документа
КОДИРОВАНИЕ И ИНИЦИАЛИЗАЦИЯ СЛУЖЕБНЫХ МЕТАДАННЫХ ПРИЛОЖЕНИЙ 2020
  • Трепаков, Иван Сергеевич
  • Павлов, Павел Евгеньевич
RU2827021C1
СИСТЕМА И СПОСОБ ДЕКЛАРАТИВНОГО ОПРЕДЕЛЕНИЯ И ИСПОЛЬЗОВАНИЯ ПОДКЛАССОВ ВНУТРИ РАЗМЕТКИ 2003
  • Рамани Сандарам
  • Релая Роберт А.
  • Богдан Джеффри Л.
RU2347269C2
СИСТЕМА И СПОСОБ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ 2010
  • Богданов Александр Яковлевич
RU2554509C2
СПОСОБ ДИНАМИЧЕСКОЙ ИНСТРУМЕНТАЦИИ 2008
  • Геренков Алексей Анатольевич
  • Комков Леонид Владимирович
RU2390821C1
КЭШИРОВАНИЕ ГЕНЕРИРУЕМОГО ВО ВРЕМЯ ВЫПОЛНЕНИЯ КОДА 2009
  • Херринг Натан
  • Райтон Дэвид К.
RU2520344C2
СИСТЕМА СРЕДЫ ВЫПОЛНЕНИЯ 2011
  • Ректор Брент Е.
  • Омия Эллиот Х.
  • Дунец Джерри Дж.
  • Лоувелл Мартин С.
  • Холечек Алеш
  • Пракрия Махеш
  • Роу Стефен К.
  • Спрингфилд Джеймс Ф.
  • Кросс Ноэль Р.
  • Басу Тассадук Х.
  • Дассад Патрик Х.
  • Кришнасвами Раджа
  • Лукко Стивен Эдвард
RU2601198C2
СИСТЕМА И СПОСОБ СТАТИЧЕСКОГО АНАЛИЗА ИСПОЛНЯЕМОГО ДВОИЧНОГО КОДА И ИСХОДНОГО КОДА С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОЙ ЛОГИКИ 2021
  • Чернов Даниил Владимирович
RU2783152C1
СИСТЕМА И СПОСОБ ПРОВЕРКИ ИСПОЛНЯЕМОГО КОДА ПЕРЕД ЕГО ВЫПОЛНЕНИЕМ 2012
  • Павлющик Михаил Александрович
RU2510074C2
ГЕНЕРАЦИЯ СОБСТВЕННОГО КОДА ИЗ КОДА НА ПРОМЕЖУТОЧНОМ ЯЗЫКЕ ДЛЯ ПРИЛОЖЕНИЯ 2013
  • Теджани Самир
  • Труфинеску Адина М.
  • Шаабан Яссер
  • Гбадегесин Аболаде
  • Баббар Ашиш
  • Цай Мэй-Чинь
  • Рамасвами Субраманиан
  • Фернандо Казимир Лакшан
RU2643484C2
КОНФИГУРАЦИЯ ИЗОЛИРОВАННЫХ РАСШИРЕНИЙ И ДРАЙВЕРОВ УСТРОЙСТВ 2006
  • Хант Гален К.
  • Ларус Джеймс Р.
  • Фандрич Мануэл А.
  • Ходсон Орион
  • Леви Стивен П.
  • Стенсгор Бьярне
  • Тардити Дэвид Р.
  • Спеар Майкл
  • Карбин Майкл
  • Абади Мартин
  • Айкен Марк
  • Бархэм Пол
  • Уоббер Тэд
  • Зилл Брайан
  • Хоблитцел Крис
  • Мерфи Ник
RU2443012C2

Иллюстрации к изобретению RU 2 422 883 C1

Реферат патента 2011 года СИСТЕМА И СПОСОБ РАЗМЕЩЕНИЯ СТАТИЧЕСКИХ ОБЪЕКТОВ ДАННЫХ В НЕОДНОРОДНОЙ ОПЕРАТИВНОЙ ПАМЯТИ

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

Формула изобретения RU 2 422 883 C1

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2011 года RU2422883C1

ОРГАНИЗАЦИЯ ПАМЯТИ КОМПЬЮТЕРА 1997
  • Сарфати Жан-Клод
  • Деклерк Кристоф
RU2182375C2
US 6292874 B1, 18.09.2001
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
Пломбировальные щипцы 1923
  • Громов И.С.
SU2006A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1

RU 2 422 883 C1

Авторы

Левин Михаил Петрович

Подшивалов Вячеслав Юрьевич

Карасёв Константин Александрович

Хванг Жу-Янг

Даты

2011-06-27Публикация

2009-12-09Подача