Jump to content

Разработка программного обеспечения для сотовой связи

Разработка программного обеспечения для микропроцессора Cell включает в себя сочетание традиционных методов разработки PowerPC -совместимого ядра PPU и новых задач разработки программного обеспечения, связанных с функционально уменьшенными сопроцессорами SPU.

Linux на сотовом телефоне

[ редактировать ]

Стратегия на основе программного обеспечения с открытым исходным кодом была принята для ускорения развития экосистемы Cell BE и предоставления среды для разработки приложений Cell, включая компилятор Cell на основе GCC, binutils и порт операционной системы Linux. [1]

Октопилер

[ редактировать ]

Octopiler — это IBM прототип компилятора , позволяющий разработчикам программного обеспечения писать код для процессоров Cell . [2] [3] [4]

Переносимость программного обеспечения

[ редактировать ]

Адаптация VMX для SPU

[ редактировать ]

Различия между VMX и SPU

[ редактировать ]

Технология VMX (Vector Multimedia Extensions) концептуально аналогична векторной модели, обеспечиваемой процессорами SPU, но имеет множество существенных отличий.

Сравнение VMX и SPU [1]
незавершенный
особенность ВМХ СПУ
слова размер 32 бита 32 бита
количество регистров 32 128
ширина регистра 128-битное четверное слово 128-битное четверное слово
целочисленные форматы 8, 16, 32 8, 16, 32, 64
поддержка насыщения да нет
порядок байтов большой (по умолчанию), маленький с прямым порядком байтов
с плавающей запятой режимы Java, не-Java одинарная точность, двойная IEEE
Выравнивание памяти только четверное слово только четверное слово

VMX Java Режим соответствует подмножеству спецификации языка Java по умолчанию 1 стандарта IEEE , расширенному за счет включения соответствия IEEE и C9X , где стандарт Java не работает. В типичной реализации режим, отличный от Java, преобразует ненормальные значения в ноль, но режим Java перехватывает эмулятор, когда процессор встречает такое значение.

В руководстве IBM PPE Vector/SIMD не определены операции для операций с плавающей запятой двойной точности, хотя IBM опубликовала материал, подразумевающий определенные показатели производительности двойной точности, связанные с технологией Cell PPE VMX.

Внутренности

[ редактировать ]

Компиляторы для Cell [ ВОЗ? ] предоставить встроенные функции для предоставления полезных инструкций SPU на C и C++. Инструкции, которые различаются только типом операнда (например, a, ai, ah, ahi, fa и dfa для сложения), обычно представляются одной встроенной функцией C/C++, которая выбирает правильную инструкцию в зависимости от типа операнда.

Портирование кода VMX для SPU

[ редактировать ]

был разработан большой объем кода Для других микропроцессоров IBM Power , который потенциально можно адаптировать и перекомпилировать для работы на SPU. Эта база кода включает в себя код VMX, который работает под PowerPC- версией Apple Mac OS X , где он более известен как Altivec . В зависимости от того, сколько специфических функций VMX задействовано, адаптация может варьироваться от простой до обременительной или совершенно непрактичной. Наиболее важные рабочие нагрузки для SPU обычно отображаются довольно хорошо.

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

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

Наиболее важное концептуальное сходство между VMX и архитектурой SPU — поддержка одной и той же модели векторизации . По этой причине большинство алгоритмов, адаптированных к Altivec, обычно успешно адаптируются и к архитектуре SPU.

Эксплуатация местного магазина

[ редактировать ]

Передача данных между локальными хранилищами разных SPU может иметь большие потери производительности. Локальные хранилища отдельных SPU можно использовать с использованием различных стратегий.

Приложения с высокой локальностью, такие как вычисления с плотной матрицей, представляют собой идеальный класс рабочей нагрузки для локальных хранилищ в Cell BE. [5]

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

Программный кеш предлагает решение для произвольного доступа. [6]

Более сложные приложения могут использовать несколько стратегий для разных типов данных. [7]

  1. ^ Jump up to: а б «Среда с открытым исходным кодом для программного обеспечения системы сотовой широкополосной связи» (PDF) . Июнь 2007.
  2. ^ Исследовательский проект IBM - Технология компилятора для масштабируемых архитектур
  3. ^ IBM Systems Journal - Использование передовой технологии компилятора для использования производительности архитектуры Cell Broadband Engine , 23 октября 2017 г., заархивировано из оригинала 11 апреля 2006 г.
  4. ^ IBM Octopiler, или Почему PS3 опаздывает , ArsTechnica, 26 февраля 2006 г.
  5. ^ «Синергетическая обработка в многоядерной архитектуре ячейки» (PDF) . Март 2006 года.
  6. ^ «Использование передовой технологии компилятора для повышения производительности архитектуры Cell Broadband Engine» (PDF) . Январь 2006 года.
  7. ^ «Cell GC: использование синергетического процессора Cell в качестве сопроцессора сборки мусора» (PDF) . Март 2008 года.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 52cc560ab1ff008f4f72bc94ae6738e3__1667174760
URL1:https://arc.ask3.ru/arc/aa/52/e3/52cc560ab1ff008f4f72bc94ae6738e3.html
Заголовок, (Title) документа по адресу, URL1:
Cell software development - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)