Рассматриваются три типичных метода хищения данных: добронамеренные сотрудники, нацеленные атаки извне и мстительные сотрудники. Наряду с обзором способов противодействия даны конкретные советы по предотвращению взлома.
Открытые системы :: Открытые системы
DSP и RISC объединились
Владимир Черников, Дмитрий Фомин, Михаил Яфраков, Павел Виксне, Павел Шевченко
Новая DSP-архитектура NeuroMatrix и традиционный RISC - единое вычислительное ядро процессора NM6403
В настоящее время рядом ведущих микроэлектронных фирм выпускаются процессоры, ориентированные на выполнение задач цифровой обработки сигналов и управления для различных применений. К ним относятся процессоры Digital Baseband для сотовых телефонов, универсальные DSP - процессоры для различных телекоммуникационных и специальных приложений, таких, как эмуляция различных нейронных сетей, обработка изображений и радиолокационных сигналов.
Существуют различные подходы к созданию эффективных процессорных архитектур, реализующих потребности по производительности и гибкости. Широкое распространение и доступность технологии полузаказных интегральных схем и появление мощных автоматизированных систем проектирования и синтеза интегральных схем (Cadence, Synopsys) привело к зарождению нового рынка интеллектуальной собственности - рынка процессорных ядер.
Во всем мире происходит процесс возникновения большого количества (компаний без собственного производства) fabless компаний, производящих интеллектуальную собственность (IP- Intellectual property) в виде процессорных ядер, лицензии на использование которых свободно продаются и покупаются. За последние пять лет этот ранок окреп и выявил ряд лидеров (ARM RISC, OAK DSP, TI ?C54 DSP, Hitachi SH-DSP и др.), ядрами которых пользуется большое число полупроводниковых компаний. Положительные стороны такого подхода очевидны - это повторное использование IP, сокращающее время выпуска конечного продукта, наличие широкого спектра прикладного и системного программного обеспечения, обеспечивающего преемственность поколений процессоров. Вместе с тем простое объединение на кристалле двух или более ядер от разных производителей зачастую приводит к проблемам на системном уровне. К таким проблемам можно отнести синхронизацию процессов и обмен данными, использование различных инструментальных средств программирования, в ряде случаев аппаратную избыточность и невозможность внести изменения в систему команд и формат обрабатываемых данных. Все это приводит к снижению общей производительности и усложнению прикладного ПО. Другим подходом, позволяющим использовать положительные стороны IP методологии и снизить влияние отрицательных, является применение «усовершенствованной схемы обработки потока данных и команд в рамках одного процессора» [1]. В этом случае процессор имеет мощное основание в виде высокопроизводительного RISC-процессора, на базе которого строится все остальное проблемно-ориентированное здание. В качестве дополнительных узлов могут быть использованы всевозможные ускорители: трехмерной графики, DSP, векторно-матричных функций и т.д. Данный подход упрощает архитектуру, делая ее единой, работающей под одной системой команд и способной обрабатывать множественный поток данных (архитектура SIMD). Подобная архитектура реализована в процессоре NeuroMatrix NM6403, разработанном в НТЦ «Модуль» и изготовленном компанией SAMSUNG Semiconductor по 0,5-микронной КМОП технологии в 1998 году.
Концепция
Для большинства DSP-приложений, взвешенное суммирование является доминирующим и требующим применения аппаратных узлов типа матричных умножителей с аккумулятором (MAC), для обеспечения производительности, необходимой для работы в реальном масштабе времени. Полупроводниковые компании, диктующие моду в современной DSP-индустрии, идут путем наращивания числа одновременно исполняемых команд (суперскаляр, VLIW) и/или увеличения количества MAC-операций в единицу времени. Одним из свежих примеров такого подхода является
DSP компании Texas Instruments TMS320C6201 (C6x). Его суперскалярная-VLIW архитектура включает восемь исполнительных узлов и способна эффективно выполнять две MAC-операции за один процессорный такт.
Идея, предложенная авторами статьи [2] и реализованная в процессоре NM6403, заключается в создании универсального узла, одновременно выполняющего столько MAC-операций, сколько требуется для оптимизации критерия производительность/точность. При решении ряда задач, связанных с обработкой большого потока «коротких»данных в реальном масштабе времени (обработка полутонового и черно-белого видео [3], радиолокация [4], нейросети и др.), традиционные DSP-архитектуры, имеющие 16-ти и 32-разрядный формат данных, используются неэффективно. Жесткая фиксация разрядной сетки, не позволяет подстроиться под изменяющийся формат данных. Попытку исправить положение предприняла Intel в своей MMX технологии, где возможна настройка аппаратуры на выполнение четырех 16-разрядных операций умножения и двух 32-разрядных операций сложения за один процессорный такт. Существует ряд нейропроцессоров, выполняющих MAC операции над данными, разрядность которых может быть задана программно в диапазоне от 1 до 16 [5, 6]. Как правило, такие процессоры обрабатывают 1-, 8- и 16- разрядные данные. Исключение составляет процессор L-neuro компании Philips [7], работающий с входными данными любой разрядности от 1 до 8. Однако в данном процессоре используется последовательный способ обработки данных, что является одной из основных причин его относительно низкой производительности.
Новая архитектура NeuroMatrix, позволяет обойти все вышеперечисленные ограничения и производить MAC операции над данными переменной разрядности от 1- до 64-разрядов, причем количество MAC, выполняемых в единицу времени, зависит от числа и разрядности операндов, умещающихся в 64-разрядном слове данных.
NeuroMatrix Engine
Архитектура NeuroMatrix предоставляет уникальную гибкость в выборе требуемого уровня производительности и точности для процедур умножения с накоплением. Исходя из требований приложения, можно выбрать необходимую длину операндов и результатов, упакованных в 64-разрядные слова данных. Количество MAC будет зависеть от количества и длины операндов и результатов. Наивысшая производительность достигается в случае использования 1-разрядных операндов. В этом случае, при тактовой частоте 50 МГц производительность составляет 14,4 GMAC (миллиардов умножений с накоплением). Для увеличения точности вычислений, можно использовать операнды длиной до 32-разрядов. Длина операндов может быть любой, даже не кратной степени двойки. В предельном случае, где используются 32-разрядные операнды и 64-разрядный результат, производительность составит
50 MMAC (миллионов арифметических умножений с накоплением). Такой подход позволяет делать выбор между точностью вычислений и их производительностью. Пример конфигурации NeuroMatrix Engine, для случая умножения матрицы байт на вектор байт показан на рис. 1.
Рис. 1. NeuroMatrix Engine
Ядром архитектуры является регулярная структура, похожая на матричный умножитель. Матрица состоит из 64x64 ячеек, каждая ячейка содержит элемент памяти (flip-flop) и несколько логических элементов. Матрица может быть разделена на несколько подматриц двумя 64-разрядными программируемыми регистрами: MB и DB. Эти регистры определяют границы MAC и входных данных соответственно. Например, для 8-разрядных данных (Xi) и
8-разрядных коэффициентов (Wi) количество подматриц (макроячеек) составляет 24. Каждая макроячейка производит операцию умножения элементов входных данных Xi на предварительно загруженные коэффициенты Wi и накапливает результат из макроячеек, расположенных выше, и входа Vi. Таким образом, каждый столбец вычисляет 21-разрядный результат MAC-операции над восемью данными и восемью коэффициентами. В нашем случае, имеется три таких столбца, которые производят 24 MAC-операции за один процессорный такт. При значении тактовой частоты 50 МГц, производительность составляет 1,2 GMAC.
На загрузку весовых коэффициентов в матрицу, требуется 32 такта. Для снижения накладных расходов, связанных с перезагрузкой матрицы весов, применяется «теневая» матрица SM. Новые коэффициенты загружаются в «теневую» матрицу на фоне вычислений и могут быть переданы в рабочую матрицу за один процессорный такт.
Рис. 2. Функция насыщения
Функции насыщения (Saturation Functions) рис. 2 используются для снижения разрядности результатов и защиты от арифметического переполнения.
В примере приведенном на рис. 1, функция насыщения снижает число значащих разрядов с 21 до 8. Ширина входов функции насыщения эквивалентна ширине колонки (выхода MAC), ширина выхода функции должна быть эквивалентна входу MAC. На первом проходе функции насыщения снижают количество значащих разрядов, на втором проходе, рабочая матрица упаковывает 8-разрядные выходы в 64- разрядные слова данных. Все параметры функций насыщения программируются.
Конфигурация матрицы может быть изменена динамически в течение вычислений. Вычисления могут быть начаты с максимальной точностью и минимальной производительностью, но при определенных условиях можно достичь пиковой производительность путем снижения точности.
Некоторые результаты вычисления соотношения производительность/точность приведены на диаграмме показанной на рис. 3.
Рис. 3. Диаграмма производительность/точность
Как видно из диаграммы, программист может выбрать желаемую точку в диапазоне - 50 MMAC - 14400 MMAC. При переходе от арифметических операций к логическим (бинарные данные и коэффициенты), пиковая производительность достигает более 50 GOPS. В какой-то степени, подобную гибкость можно сравнить с действиями водителя автомобиля. При движении по ровной и свободной дороге можно выбрать высшую передачу, дабы не перегружать двигатель и двигаться с высокой скоростью. Как только вы попадаете на разбитую дорогу с множеством ям (высокая точность вычислений), необходимо переключиться на пониженную передачу.
Следует отметить еще одну интересную особенность NeuroMatrix Engine. При использовании бинарных значений (1/0) коэффициентов, матрица превращается в мощный коммутатор, способный перенаправить поток входных данных Xi в любое направление Yi. Другими словами, перемещение любого разряда из 64- разрядных входных данных в любую другую позицию 64-разрядного выходного слова производится за один-два процессорных такта.
Структура процессора
Как уже отмечалось выше, NM6403 представляет собой систему на кристалле (system-on-a-chip), предназначенную для обработки 32-разрядных скалярных данных и векторных данных программируемой разрядности, упакованных в 64-разрядные слова.
Комментарии:
Для того, чтобы оставить комментарий авторизуйтесь или зарегистрируйтесь.