Динамическая поддержка расширений процессора в кросс-системе


Скачать 331.82 Kb.
Название Динамическая поддержка расширений процессора в кросс-системе
страница 1/3
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
  1   2   3
Динамическая поддержка расширений процессора в кросс-системе

В.В. Рубанов, А.И. Гриневич, Д.А. Марковцев, М.А. Миткевич

Аннотация.

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

1. Введение

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

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

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

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

2. Моделирование расширений процессора

В данной главе рассматриваются вопросы моделирования расширений процес-сора в виде акселераторов. Для этого вводится абстрактная (математическая) модель акселератора, охватывающая достаточно широкий класс возможной аппаратуры (см. 2.1). В рамках этой абстрактной модели определяются сред-ства описания конкретных моделей акселераторов в виде файлов на специа-льном языке ISE (см. 2.2). Описанные таким образом модели акселераторов используются для автоматической конфигурации компонентов кросс-системы - симулятора, ассемблера, дисассемблера, отладчика и профилировщика (см. главу 3).

2.1. Абстрактная модель акселератора

В нашей модели акселератор является сопроцессором, команды которому выдаются основным процессором. Акселератор работает синхронно с процессором. Акселератор может иметь собственную локальную память и имеет доступ к общей памяти между процессором и всеми акселераторами.

2.1.1. Состояние акселератора

2.1.1.1. Память акселератора

Ячейка памяти представляет собой набор двоичных переменных (далее битов), с возможными значениями 0 или 1. Число битов определяет разрядность ячейки. Набор из одной или более ячеек одинаковой разрядности образует область памяти. Набор из одной или более областей образует память. Память будем обозначать большой буквой S. Состояние ячейки памяти определяется набором конкретных значений всех ее битов. Состояние памяти определяется состоянием всех ячеек ее областей. Состояние памяти будем обозначать маленькой буквой s. Обозначим через N сумму разрядностей всех ячеек памяти S, тогда память может находиться в одном из 2N состояний. Множество состояний памяти будем обозначать {s}. Заметим, что это множество однозначно задается структурой памяти. Дескриптор структуры памяти представляет собой следующий набор чисел: число областей O и набор из O пар (Wi, Si), задающих разрядность Wi ячеек области и их количество Si.

В нашей модели память системы состоит из памяти основного процессора SP, разделяемой памяти SS и локальных памятей акселераторов Sa:

, - число акселераторов

Рассмотрение памяти процессора не принципиально для данной статьи, так как акселератор имеет доступ только к разделяемой и своей локальной памяти. Пара из этих памятей формирует полную память акселератора:

SA={SS,Sa}

Множество возможных состояний памяти акселератора обозначим как {S}A={S}Sx{S}a. Каждая область в локальной и разделяемой памяти характе-ризуется скоростью доступа - числом, означающим, сколько тактов проходит после записи в ячейку этой области, прежде чем измененное значение может быть прочитано; до этого момента при чтении считывается старое значение.

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

Набор из одной или более памятей данных

Набор из одного или более регистровых файлов

Одиночные регистры

2.1.1.2. Управляющее состояние

Акселератор имеет фиксированное количество управляющих слотов, совокупность которых обозначается pA. Каждый слот имеет номер, который далее будет отождествляться с соответствующим слотом. Каждый слот Li представляет собой пару целочисленных переменных (полей): поле номера команды nf и поле состояния команды t. Множество значений поля команды {nf} конечно. Ноль всегда принадлежит {nf}. Существует взаимно однозначное соответствие между {nf}\0 и множеством дескрипторов команд, определение которого будет дано ниже. Поэтому мы будем отождествлять номер и соответсвующий дескриптор f. Множество значений поля состояния команды есть натуральные числа (включая 0). Состояние слота с номером n обозначается ln=(nf,t) и определяется значениями полей этого слота. Множество возможных состояний слота {l}n={nf}xN. Слот в состоянии (0, 0) называется свободным, в ином случае активным. Управляющим состоянием p акселератора называется совокупность состояний всех его управляющих слотов. Множество управляющих состояний акселератора обозначим {p}A={l}NE, где Ns число слотов акселератора. Активные слоты соответствуют выполняющимся командам акселератора, число управляющих слотов задает максимальное количество параллельно выполняющихся команд. В состоянии активного слота значение поля номера команды задает выполняющуюся команду, а значение поля состояния команды соответствует количеству тактов, прошедших с начала выполнения этой команды.

2.1.1.3. Состояние акселератора

Состояние акселератора a задается парой из состояния памяти и управляющего состояния: a={s, p}. Множество состояний акселератора обозначим как {a}A={S}Ax{p}A.

Элементом состояния акселератора называется любая ячейка памяти акселератора или любой управляющий слот. Состоянием элемента называется соответственно состояние ячейки или слота. Параллельной композицией функций φ1,φ2,...,φn (заданных на множестве состояний акселератора) назовем функцию ω = φ1||φ2||...||φn(также заданную на множестве состояний акселератора), получаемую следующим образом: пусть множество всех элементов состояния акселератора, Ai - множество элементов, состояние aα которых было изменено функцией .

Если пересечение всех Ai,i=1..n не пустое множество, то значение функции ω не определено. В ином случае значение ω задается следующим образом:




, здесь a`α и a`α - новое и старое состояние элемента соответственно

2.1.2. Модель акселератора

Операцией [элементарной] называется, заданная на множестве состояний памяти акселератора {s}A (см. 2.1.1.1) функция ψ, формирующая следующее состояние памяти акселератора на основе предыдущего. Операции соответствуют действиям, которые могут быть выполнены за один такт (например, сложение двух регистров):

ψ : {s}A -> {s}A

Множество операций акселератора обозначим ΨA={ψ}. Для любого акселератора в этом множестве присутствует так называемая пустая операция, не изменяющая состояние и обозначаемая ψ0.

Каждая элементарная операция характеризуется функциональными ресурсами, которые необходимы для выполнения этой операции. Обозначим множество всех ресурсов акселератора как RA, а множество всех его подмножеств (включая пустое) как pA. Функция rA, отображающая множество операций ΨA на множество pA, называется функцией ресурсов. Она задает набор ресурсов для каждой операции в ΨA:

rA : ΨA -> PA

Обозначим множество всех подмножеств в ΨA, которые состоят из операций, использующих не пересекающиеся ресурсы, как ΩA:
Таким образом, элемент множества ΩA задает группу операций {ψi}, которые могут выполняться параллельно (в рамках одного такта). Применением параллельной композиции (см. выше) этот элемент задает функцию на множестве состояний памяти акселератора {s}A. Далее элементы множества ΩA будем отождествлять с задаваемыми ими функциями и называть комплекс-операциями. Заметим, что в этом смысле .

Определим два управляющих действия: продвижения next и окончания end. Каждое представляет собой параметрическую функцию на множестве управляющих состояний акселератора. Параметром функции является номер слота . Действие next увеличивает на 1 значение поля состояния команды t для слота, заданного параметром nl.
Действие end переводит соответствующий слот в холостое состояние.
Множество из этих управляющих действий обозначим UA={next,end}.

Дескриптором команды акселератора называется функция f, вычисляющая пару из комплекс-операции и управляющего действия на основании состояния памяти акселератора и состояния команды (см. 2.1.1.2):
Множество дескрипторов команд акселератора обозначается IA={fi}. Это множество конечно и каждому элементу f приписывается номер (например, в порядке возрастания машинного кода в соответствии с отображением, задаваемым функцией декодирования, см. ниже). При этом для дескриптора команды всегда верно следующее (единственность конца команды):
Дескриптор команды f однозначно задает функцию потактового поведения команды bf, определенную на множестве состояний акселератора и параметризуемую номером слота nl. Значение функции bf не определено, если значение поля номера команды в соответствующем слоте nl не совпадает с номером соответствующего дескриптора f. В ином случае функция bf(nl):{aA} -> {aA} задается следующим образом:

На основании состояния памяти s и значения поля состояния команды t в слоте c номером nl c помощью дескриптора команды определяется пара из комплекс-операции ω и управляющего действия u:

{ω,u} = f{s,t}

C помощью ω определяется следующее состояние памяти s`=ω(s), а управляющее действие задает следующее управляющее состояние p`=u(nl,p). Пара (s`,p`) задает значение bf(nl,s,p).

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

Множество кодов инструкций акселератора CA={ci} представляет собой множество двоичных чисел одинаковой разрядности. Каждый элемент этого множества соответствует одному из возможных значений поля код инструкции акселератора в машинном коде команды запуска акселератора (см. 2.1.3.1).

Функция декодирования dA задает отображение множества кодов инструкций акселератора CA на множество дескрипторов команд IA:

dA:CA -> IA

Функция декодирования однозначно задает декодер акселератора - функцию DA:

DA:CAx{p}A -> {p}A:

Функция DA определяется следующим образом: если , то , иначе значение DA не определено. Иными словами, в случае наличия свободного управляющего слота декодер инициирует состояние этого слота в (f,1), где f определяется по коду инструкции с помощью функции декодирования dA.

Тактовая функция TA на множестве состояний акселератора {a}A, определяет изменение состояния акселератора на каждом такте:

TA:{a}A -> {a}A

Эта функция однозначно задается параллельной композицией (см. 2.1.1.3) функций потактового поведения bf, соответствующих дескрипторам команд f, заданным в поле nf каждого активного управляющего слота. Иными словами для каждого такта управляющее состояние акселератора определяет набор активных команд, характеризуемых функциями потактового поведения. Параллельная композиция этих функций задает отображение TA (поведение акселератора) для текущего такта. Если активных слотов нет, то состояние акселератора не меняется.

Абстрактная модель акселератора MA определяется следующими описанными выше элементами:

MA={SA,PA,CA,DA,TA}

2.1.3. Симуляция акселератора

Для симуляции акселератора, заданного моделью MA (см. 2.1.2), необходим генератор тактов, а также определенное начальное состояние памяти . В начальном управляющем состоянии p0 все слоты свободны. В рассматриваемой системе акселераторы и основной процессор работают тактово-синхронно (тактовый генератор единый для всей системы), то есть такт работы акселератора равен такту работы процессора. Кроме тактового генератора, единственным внешним событием для акселератора является выдача очередной команды основным процессором (см. 2.1.3.1 ниже).
  1   2   3

Похожие:

Динамическая поддержка расширений процессора в кросс-системе icon Представление содержимого регистров
Цель работы: изучить назначение регистров процессора 8086 и основные принципы использования регистров для управления работой процессора....
Динамическая поддержка расширений процессора в кросс-системе icon Определения
Код процессора это численно-буквенная маркировка процессора, принятая производителем cpu
Динамическая поддержка расширений процессора в кросс-системе icon *Прочтите внимательно инструкцию перед использованием
Время работы от одной зарядки: ждущий режим — до 10 ч., игровой режим — до 4-5 часов. Поддержка просмотра 3D-фотографий, датчик положения...
Динамическая поддержка расширений процессора в кросс-системе icon И нструкция по монтажу и эксплуатации Расширительные баки
Используется для поддержания давления воды в системе, компенсации температурных расширений, гидроударов и в качестве ёмкости для...
Динамическая поддержка расширений процессора в кросс-системе icon Руководство по эксплуатации и монтажу содержание
Включен потенциальный режим работы калитки (включен J1 на кросс плате), переведите ее в импульсный режим (выключите J1 на кросс плате)...
Динамическая поддержка расширений процессора в кросс-системе icon Инструкция по установке Сетевого Процессора под linux. 1Требования к системе
Для хранения базы данных сп используется Sybase ase. Возможны следующие
Динамическая поддержка расширений процессора в кросс-системе icon Положение о районном осеннем легкоатлетическом кроссе в рамках Всероссийского дня бега
...
Динамическая поддержка расширений процессора в кросс-системе icon О проведении Всероссийского дня бега «Кросс Наций -2011»
Общее руководство подготовкой и проведением Всероссийского дня бега «Кросс Наций -2011» осуществляет управление физической культурой...
Динамическая поддержка расширений процессора в кросс-системе icon 1. Добавлена поддержка Windows 10 IoT. Рекомендации по настройке...
Реализована поддержка ккт атол, работающей в соответствии с форматами фискальных документов 05
Динамическая поддержка расширений процессора в кросс-системе icon Вы хотите найти новые рынки сбыта?
Приглашаем Вас пройти индивидуальный мастер-класс «Новый порядок участия в Госзакупках согласно изменениям к фз №44-фз «О контрактной...
Динамическая поддержка расширений процессора в кросс-системе icon Поддержка Агентств Поддержки мб и Центров Деловой Информации в Российской...
Данный Отчет был составлен ramb0ll cna veneto Euro-ln Consulting Консорциум в рамках Проекта Tacis smerus 9602 "Поддержка Агентств...
Динамическая поддержка расширений процессора в кросс-системе icon Ответственные исполнители направлений национального проекта в территориях
ОУ, активно внедряющих инновац. Образов программы поощрение лучших учителей поддержка оу пользователей информационных технологий...
Динамическая поддержка расширений процессора в кросс-системе icon Инструкция по подготовке статей для журнала “mathematica montisnigri” первый а. А
Ключевые слова: Математическое моделирование, лазерная плазма, динамическая адаптация
Динамическая поддержка расширений процессора в кросс-системе icon Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора
Лабораторная работа Изучение принципов функционирования простейшей микроэвм и процессора I8085A при реализации программы
Динамическая поддержка расширений процессора в кросс-системе icon Инструкция по интеграции платежного плагина PayOnline для j oom
Войти в меню «Расширения» «Менеджер расширений» «Установка» и установить плагин стандартным образом
Динамическая поддержка расширений процессора в кросс-системе icon Сборник задач по темам
Всего за смену рабочий обрабатывает 1 200 деталей. К какому классу относится его работа по показателю – динамическая региональная...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск