ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Динамічна підтримка розширень процесора в крос-системі
         

     

    Інформатика, програмування

    Динамічна підтримка розширень процесора в крос-системі

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

    Анотація.

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

    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)? слота. Іншими словами для кожного такту керуюче стан акселератора визначає набір активних команд, характеризуються функціями потактового поведінки. Паралельна композиція цих функцій задає відображення TA (поведінка акселератора) для поточного такту. Якщо активних слотів немає, то стан акселератора не змінюється.

    Абстрактна модель акселератора MA визначається наступними описаними вище елементами:

    MA = (SA, PA, CA, DA, TA)

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

    Для симуляції акселератора, заданого моделлю MA (див. 2.1.2), необхідний генератор тактів, а також певний початковий стан пам'яті . У початковому керуючого стані p0 всі слоти вільні. У розглянутій системі акселератори і основний процесор працюють тактовою-синхронно (тактовий генератор єдиний для всієї системи), тобто такт роботи акселератора дорівнює такту роботи процесора. Крім тактового генератора, єдиним зовнішнім подією для акселератора є видача чергової команди основним процесором (див. 2.1.3.1 нижче).

    2.1.3.1. Запуск команд акселератора

    В розглянутій моделі апаратури безліч команд основного процесора має мати непорожній підмножина, що є команди запуску акселераторів. Такі команди ініціюють запуск певної інструкції відповідного акселератора. З точки зору основного процесора команда запуску акселераторів визначається трьома полями машинного коду (порядок полів неістотний, також поля не обов'язково мають бути безперервними):

    (КОП, номер акселератора, код інструкції акселератора)

    Дії основного процесора при виконанні команди запуску акселератора полягають у активації акселератора з номером у відповідному полі та видачі цього акселератора коду інструкції аксель-ратора для подальшого декодування і виконання команди в самому акселератора паралельно з роботою процесора. Для основного процесора виконання команди запуску акселератора завжди займає один такт. У термінах абстрактної моделі видача команди акселератора основним процесором полягає в передачі коду інструкції акселератора у функцію декодера акселератора DA (CA це підмножина множини значень поля код інструкції акселератора). За один такт процесор може видати не більше однієї команди акселератора. Зауважимо, що код інструкції акселератора в свою чергу може містити КОП команди акселератора і операнди.

    Акселератор може паралельно виконувати декілька многотактових команд, у тому числі з однаковим дескриптором. Тобто основний процесор може видавати нову команду акселератора, до того як відпрацювали попередні команди. У рамках розглянутій моделі це можливо, якщо всі операції, що виконуються паралельно на кожному такті, використовують непересічні ресурси (див. 2.1.2). На практиці це можливо, якщо дозволяє конвеєр і функціональні пристрої акселератора, при цьому відповідальність за коректне (своєчасну) видачу команд акселератора лежить на прикладних програмістів.

    2.1.3.2. Тактовое поведінка акселератора

    В відповідь на подію від тактового генератора, в розглянутій моделі дії акселератора зводяться до зміни стану відповідно до своєї тактовою функцією TA. Ця функція визначає поведінку акселератора на кожному такті.

    2.1.3.3. Обмін даними і синхронізація з процесором

    Обмін даними між процесором і акселераторами здійснюється через поділювану (загальну) память (див. 2.1.1.1). Зауважимо, що додаткова інформація від процесора до акселератора може також надходити у вигляді параметрів інструкції (див. 2.1.3.1). Зауважимо, що різні акселератори не мають доступу до локальної пам'яті один одного.

    Поділ доступ до спільної пам'яті в нашій моделі відповідає типу CREW (Common Read Exclusive Write). Це означає, що процесор і акселератори можуть одночасно (в рамках поточного такту) читати з комірки пам'яті, проте одночасний запис заборонена. У розглянутій моделі області пам'яті можуть мати затримку запису, характеризується швидкістю доступу до пам'яті (див. 2.1.1.1). За замовчуванням, все області пам'яті мають затримку 1, тобто зміни можуть бути прочитані лише на наступному такті (flip-flop модель). Зауважимо, що якщо затримка більше нуля, то можлива одночасний запис і читання однієї і тієї ж комірки, при читанні зчитується попереднє значення.

    Команди акселератора можуть займати фіксоване або змінну (залежно від даних) число тактів. З точки зору прикладного програміста (компілятора) існує три способи синхронізації обчислень основного процесора і результатів роботи певної команди акселератора:

    Коли команда акселератора завжди має фіксоване число тактів виконання, програміст може статично прорахувати, коли будуть готові результати обчислень (процесор і акселератори працюють синхронно, см. 2.1.3).

    Акселератор в процесі виконання може виставляти певні прапори (міняти осередку) в загальної пам'яті. Програма основного процесора може зчитувати значення цих прапорів і визначати готовність результатів обчислень акселератора.

    Приватним випадком пункту 2 є виклик акселератором переривання основного процесора. Оброблювач переривання може прочитати результати обчислень акселератора.

    2.2. Засоби опису конкретних моделей акселераторів

    Для завдання конкретної моделі акселератора необхідно визначити наступні параметри, множини і функції:

    Відповідні визначення були дані в 2.1.1 та 2.1.2, де також було показано, що вони однозначно ставлять усі елементи абстрактної моделі:

    Для опису конкретних моделей акселераторів в ИСП РАН була розроблена мова специфікації ISE (Instruction Set Extension). Крім власне специфікації відповідних елементів конкретної моделі акселератора (див. вище), в мову також входять засоби опису додаткової інформації про асемблерні синтаксисі команд акселератора, відображенні асемблерних команд в машинні коди і опис форматів для візуалізації областей пам'яті в відладчик. Модель акселератора далі буде ототожнюватися зі специфікацією цієї моделі на мові ISE.

    2.2.1. Дескриптор структури пам'яті

    Існують окремі синтаксичні конструкції для опису наступних типів областей пам'яті:

    Пам'яті даних

    регістрові файли

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

    З допомогою цих конструкцій можна задати дескриптор структури пам'яті (див. 2.1.1.1).

    Приклад. Структура пам'яті простого акселератора:

    два пам'яті даних LDM і TM розміром 2048 слів кожна з розрядністю 16 і 64 біта зі швидкістю доступу 3 такту

    регістровий файл GRF з двох 16-ти розрядних регістрів GR0 і GR1

    Одиночний регістр-акумулятор ACR розрядністю 36 біт

    DECLARE_MEMORY (INT (16, 3), 2048) LDM;

    DECLARE_MEMORY (INT (64, 3), 2048) TM;

    DECLARE_REGISTERS_FILE (INT (16), 2) GRF;

    DECLARE_REGISTER (UINT (36)) ACR;

    // debugging names and registers file structure

    MEMORY (LDM, "Acc LDM ");

    MEMORY (TM, "Acc TM ");

    REGFILE_BEGIN (GRF, "General Registers ")

    REGISTER (0, "GR0 ");

    REGISTER (1, "GR1 ");

    REGFILE_END ()

    2.2.2. Опис поведінки

    До семантиці поведінки акселератора відносяться такі елементи моделі mA: безліч ресурсів RA, функція ресурсів rA, безліч операцій

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status