Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 245 сообщений
Cообщения с меткой

dsp - Самое интересное в блогах

«  Предыдущие 30 Следующие 30  »
rss_rss_hh_new

Многоядерный DSP TMS320C6678. Операционные ядра: вычислительные ресурсы процессора

Четверг, 29 Июня 2017 г. 09:48 (ссылка)

Продолжаем рассматривать устройство многоядерного DSP TMS320C6678. Данная статья посвящена устройству операционных ядер процессора. Архитектура ядер описывается кратко с акцентом на сравнении платформы С66х с более ранними хорошо известными моделями С6000.



Операционное ядро сигнального процессора – это основной элемент, непосредственно реализующий вычислительные действия, направленные на осуществление обработки сигнала в соответствии с алгоритмом, диктуемым заложенной в процессор программой. Многоядерные процессоры семейства TMS320C66xх содержат набор операционных ядер, что является предпосылкой соответствующего роста вычислительной производительности устройства по сравнению с одноядерными процессорами. Далее будет рассмотрено одно типовое ЦСП-ядро процессора TMS320C66хх.



Процессоры TMS320C66x являются развитием платформы С6000 сигнальных процессоров фирмы Texas Instruments. Основы построения архитектуры являются одинаковыми, однако, их возможности и, частично, интерпретация их функционирования, претерпели некоторые модификации.



Ядро процессора TMS320C66xх строится по архитектуре с очень длинным командным словом (Very Long Instruction Word – VLIW – «Ви-Эл-Ай-Дабл-Ю»). Каждое ядро включает 8 работающих параллельно вычислительных блоков (2 умножителя и 6 АЛУ) и регистровый файл из 64 32-разрядных регистров. По сравнению с последними моделями процессоров линейки TMS320C6000 процессоры TMS320C66xх имеют следующие особенности.


  1. В 4 раза увеличено число выполняемых за такт операций умножения с накоплением как для фиксированной, так и для плавающей точки. Каждое ядро способно выполнить за один такт 32 умножения 16х16 бит с фиксированной точкой или 8 умножений 32х32 бита в формате с плавающей точкой.

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

  3. Расширены возможности векторной арифметики как в формате с фиксированной, так и с плавающей точкой. Под векторной арифметикой подразумевается следующая концепция. Операнды на входе арифметических блоков представляются 128-разрядными векторами, состоящими из 4-ёх 32-разрядных; 8-ми 16-разрядных или 16-ти 8-разрядных слов данных. Арифметические действия могут производиться одновременно над всеми операндами в составе векторов (SIMD-режим). Пример векторного перемножения с помощью команды QMPY32 показан на рисунке 1.



    Рисунок 1 — Пример векторного перемножения

  4. Появились дополнительные специальные наборы команд для комплексной и матричной арифметики. Данный функционал схож с векторным перемножением, однако, вместо режима SIMD используются более сложные схемы, позволяющие реализовывать, в частности, до двух комплексных перемножений вектора размерности (1х2) и матрицы размерностью (2х2) за один такт. Также поддерживаются дополнительные операции такие, как, например, взятие комплексно-сопряженного числа.



Таким образом, основной упор, с точки зрения вычислительных ресурсов процессора, в архитектуре С66х сделан на многоядерность и на расширение возможностей векторной арифметики. За счет этого вычислительная производительность повышается более, чем в 30 раз (если сравнивать процессор TMS320C6455 с тактовой частотой 1.2 ГГц и производительностью 9600 MMACS и процессор TMS320C6678 с частотой 1.25 ГГц и производительностью 320 GMACS). Основные вычислительные возможности процессоров TMS320C66x в сравнении с процессорами предыдущего семейства с плавающей точкой TMS320C674x сведены в таблицу 1.1. Заметим, что производительность, выражаемая в числе операций умножения с накоплением в секунду, не полностью отражает вычислительную мощь процессора. Векторная арифметика накладывает ряд ограничений на операнды. Один умножитель, реализующий 16 умножений за такт, это не то же самое, что 16 умножителей, выполняющих казалось бы те же 16 умножений за такт. Не все задачи могут хорошо поддерживаться векторной арифметикой. В таких случаях ресурсы процессора могут простаивать и выигрыш архитектуры не почувствуется.





































C674x C66x
Число умножений с накоплением за такт в формате 16х16 бит с фиксированной точкой 8 32
Число умножений с накоплением за такт в формате 32х32 бит с фиксированной точкой 2 8
Число умножений с накоплением за такт в формате обычной точности с плавающей точкой 2 8
Число общих операций в формате с плавающей точкой за такт 6 16
Пропускная способность каналов чтения/записи между ядром и памятью 2x64 бита 2x64 бита
Размерность векторных операндов

(возможности SIMD-обработки)

32 бита

(2х16 бит, 4х8 бит)

128 бит

(4х32 бита, 4х16 бит, 4х8 бит)



Архитектура ядра процессора TMS320C66x представлена на рисунке 1.3. Как и у любого цифрового сигнального процессора, ядро ЦСП TMS320C66xх включает набор вычислительных блоков, регистровый файл, программный автомат, память программ и данных.



Процессоры TMS320C66x содержат двойной набор вычислительных блоков – один на стороне А (Data Path A); другой на стороне В (Data Path B). Набор вычислительных блоков классический и включает умножитель .M, АЛУ .L, сдвигатель .S и генератор адреса данных .D. В современных ЦСП функции каждого из этих блоков существенно расширены и могут частично перекрываться, однако, для упрощения понимания удобно использовать классическую терминологию. Все блоки работают параллельно, извлекая операнды из регистров регистрового файла (А/В Register File) и возвращая результат соответствующей операции в один из регистров.



Данные, прежде чем попасть в регистровый файл на обработку, хранятся в памяти данных внутренней или внешней (L1D, L2 Cache/SRAM, MSM SRAM, DDR3 SRAM). В память записываются также результаты обработки и промежуточные массивы данных. Подсистема памяти процессора TMS320C66x будет рассмотрена отдельно в соответствующем разделе.



Данные обрабатываются в соответствии с программой, загруженной на процессор. В ходе работы программа располагается в памяти программ (L1P, L2 Cache/SRAM, MSM SRAM, DDR3 SRAM). За чтение программы из памяти (Instruction Fetch), ее декодирование (Decode) и распределение по соответствующим исполнительным элементам (Dispatch) отвечает программный автомат.





Рисунок 2 — Архитектура ядра процессора C66x



Дополнительными аппаратными модулями в составе ядра процессора являются набор регистров контроля и управления (Control Registers), логика внутрисхемной эмуляции (In-Circuit Emulation), контроллер прерываний и исключений (Interrupt and Exception Controller), менеджер работы с памятью, включающий модуль защиты памяти (Program/Data Memory Controller), и ряд других компонентов.



Далее рассмотрим более подробно вычислительные блоки и регистры операционного ядра. При этом будем акцентировать внимание только на отличиях ядра С66х от ядер предшествующих моделей процессоров.



В процессорах С66х применен принцип упакованных команд – наиболее часто используемые команды имеют 16-разрядную длину при базовой длине командного слова 32 разряда. Это позволяет экономить память программ. Программный автомат процессора способен извлекать из памяти, декодировать и распределять до 15 команд одновременно.

Регистровые файлы сторон А и В содержат по 32 32-разрядных регистра. Обеспечивается возможность работы с 8-, 16-, 32-, 64- и 128-разрядными данными (для формата с фиксированной точкой), а также с 40-разрядными данными. При этом регистры группируются по парам или четверкам.



Шины обмена между регистровым фалом и вычислительными блоками расширены до 64 бит. На блоки .L и .S одновременно может быть подано по два 64-разрядных операнда и получен 64-разряный результат. На умножитель подается два 128-разрядных операнда, формируемых как два по 64-разряда входных слов. Результат – 128-разрядный.



По каналам пересечения сторон А и В можно передавать только 64-разрядные слова.

Возможности по загрузке операндов из памяти в регистры не изменились – четыре 32-разрядных слова за один такт. Возможности записи в память расширены до четырех 32-разрядных слова за такт по сравнению с процессорами TMS320C67x.



Команды выбираются из памяти всегда по 8 слов, образуя пакет выборки. При этом такой пакет может в действительности включать до 14 команд за счет наличия 16-разрядных команд, упакованных в одно слово.



Если пакет содержит только обычные 32-разрядные команды, то в них каждый 0-й бит команды указывает параллельно эта команда выполняется со следующей или следующая команда выполняется на один такт позже. То есть наличие бита параллельности позволяет указывать, какие из команд выполняются параллельно. В результате формируются пакеты выполнения, которые могут содержать от 1-й до 8-и 32-разрядных команд.



Если пакет выборки включает упакованные команды, то такой пакет сопровождается заголовком, занимающим 2 старших слова. В заголовке указывается, что содержится в пакете, какие из команд являются 16-разрядными, и какие из команд выполняются параллельно.



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



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



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

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




Все статьи цикла:


  1. Обзор архитектуры процессора

  2. Операционные ядра: вычислительные ресурсы процессора


Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331842/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Чип для умных камер ELISE — одно из самых высокотехнологичных изделий России 2017 года. Плата для разработчиков и камера

Среда, 31 Мая 2017 г. 10:11 (ссылка)

У каждой российской микроэлектронной компании есть рассказ, почему она самая хорошая и передовая. По английски это называется «claim to fame» — «заявка на славу». Одни российские компании славятся оригинальной архитектурой CPU, другие — спроектированной в России системой на кристалле, третьи — спроектированными в России блоками, которые были лицензированы западными компаниями.



У российской компании ЭЛВИС (ELVEES), которая исторически специализировалась на космической электронике, DSP и хардверно-поддерживаемом распознавании образов, текущая «заявка на славу» выражена в совместном российско-британско-американско-тайваньском чипе для «умных камер» под названием ELISE. Инженеры в подмосковном Зеленограде спроектировали внутри этого чипа важные блоки для видео-обработки и GNSS, которые потом кросс-лицензировала британско-американская Imagination Technologies.



Блоки от элвисовцев интегрированы с тремя разнородными процессорными ядрами: двухядерным кластером суперскалярных ядер MIPS P5607 (Apache) с частотой 1.2 GHz, на котором работает Linux, процессором с аппаратно-поддерживаемой многопоточностью MIPS interAptiv (1 GHz) и небольшим вспомогательным процессором с аппаратно-поддерживаемой виртуализацией MIPS M5150 (Virtuoso).



На днях мне попали в руки два изделия с чипом ELISE — плата для разработчиков и трехмерная бинокулярная камера. Элвисовцы также дали мне список на 10 страниц, что есть на плате, что есть внутри чипа, и какой для этого поддерживается софтвер. К сожалению, они не разрешили мне выложить эти страницы в интернет, поэтому я кое-что перескажу своими словами, а также добавлю инфо про используемые ядра, после чего вы все остальное можете запросить у элвисовцев сами.



На фотографиях ниже некоторые из инженеров-участников проекта. Девушка слева спроектировала часть load-store unit в MIPS P5607, юноша в зеленой майке написал модели интерфейсов шин, а товарищ в клетчатой рубашке — архитектор софтверной экосистемы:







ЭЛВИС выпустил пресс-релиз о чипе ELISE год назад, в мае 2016:







На чипе стоит много разных блоков, включая графический процессор PowerVR Clyde (GX6250) и тяжелый DSP — 8-ядерный VLIW SIMD ELVEES Velcore2, но я расскажу только про ядра обычных процессоров, которых на чипе стоит три разных класса. Зачем вообще нужны разные классы процессоров, вы можете увидеть в слайдах Чарльза, про которого есть пост на Хабре (Разработка -> Можно скачать материалы семинара Nanometer ASIC (РОСНАНО / МИСиС / Imagination Technologies) — ликбез по всему про чипы). Я приведу оттуда один слайд:







Самый производительный процессор общего назначения (application processor) на чипе ELISE — это ядро MIPS P5607 с кодовым названием «Apache». Оно работает на частоте 1.2 GHz и имеет высокий показатель CoreMark. MIPS P5607 — это суперскалярное ядро с внеочередным выполнением инструкций и векторными операциями:







Два ядра MIPS P5600 «Apache» соединяются на элвисовской СнК в двухядерный кластер с общим кэшем второго уровня и менеджером когерентности, который использует MESI протокол для непротиворечивости состояний кэшей первого уровня в ядрах:







Следущим процессором на чипе ELISE является ядро MIPS interAptiv, которое синтезировано на частоте 1 GHz. Это ядро оптимизировано под эффективность (производительность/милливатт). Элвисовцы используют данное ядро для обработки звука. Помимо элвисовцев, похожие ядра любит компания MediaTek, которая использует предыдущую версию той же микроархитектуры в чипе MT7688 для интернета вещей.



У MIPS interAptiv есть интересная черта — аппаратная поддержка многопоточности, которая возникла в предшественника MIPS interAptiv — ядре MIPS 34K. У меня есть пара слайдов про MIPS 34K и вырезка из журнала The Microprocessor Report, которые иллюстрируют идею:















На элвисовском чипе еще есть ядро MIPS M5150 под кодовым названием «Virtuoso». Оно засинтезировано на частоту 600 MHz. Это простое компактное низкопотребляющее ядро с последовательным пятистадийным конвейером. MIPS M5150 в данном СнК используется как контроллер чего-то нетребовательного (housekeeping, «служанка» то бишь):







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







«Заявка на славу» ядра MIPS M5150 — это единственное в мире малое ядро микроконтроллерного класса, которое реализует аппаратную поддержку виртуализации. Зачем? Как я уже писал, виртуализация на таких ядрах удобна для секьюрити. Даже на небольшом чипе для IoT могут одновременно работать скажем встроенный Линукс и скажем очень защищенный код для работы с финансовыми транзакциями. Теперь если пользователь установит взломанную операционную систему, она не сможет получить доступ к другой ОС, выполняющей критические операции, потому что между двумя ОС стоит гипервайзер. Это становится особенно важно в случае интернета вещей, когда подброшенный в домашнюю сеть утюг или тостер может теоретически обмениваться информацией с главным компьютером хозяина.



Подробнее про виртуализацию см. в посте Разработка -> Придумываем название для нового гипервайзера для архитектуры MIPS с аппаратно-поддерживаемой виртуализацией">







Офис ЭЛВИСа находится в подмосковном Зеленограде, в здании в центре снимка ниже, через дорогу от института МИЭТ, из которого ЭЛВИС черпает кадры (а также из МИФИ, МФТИ и других мест). Вы можете запросить от элвисовцев информацию, когда-нибудь получить у них плату и что-нибудь на ней сделать (чтобы сфотографировать плату с девушкой, мне пришлось на время отобрать плату у другого коллеги, который сейчас портирует на плату Андроид. Вы тоже можете на эту плату что-нибудь спортировать или запрограммировать на ней что-нибудь встроенное, графическое и распознавательное, правда я не знаю, когда элвисовцы будут раздавать эти платы широко).




Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/329864/

Комментарии (0)КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество
Аноним

Среда, 01 Декабря 1970 г. 03:00 (ссылка)

Комментарии ()КомментироватьВ цитатник или сообщество

«  Предыдущие 30 Следующие 30  »

<dsp - Самое интересное в блогах

Страницы: 1 [2] 3 4 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda