07
.pdfIEEE-754.
32-битовый формат с плавающей точкой
смещ
NUMBER10 = (–1)S Ч1.M Ч2(E–127)
допустим
|
|
|
|
MSB |
|
|
|
|
|
|
|
LSBMSB |
|
|
|
|
|
|
LSB |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
0/1 |
27 |
26 |
|
|
25 |
24 |
23 |
22 |
21 |
20 2–1 |
2–2 |
2–3 |
|
2–4 |
|
2–22 |
2–23 |
|
|||||||||
|
знак |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
EXPONENT = E |
|
MANTISSA = |
M |
||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||
бит = S |
|
|
|
|
8-битов |
|
|
|
|
|
|
|
23-бита |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
|
00000111 |
1100…00 |
|
|
|
смещ |
+ 1,316554 Ч10–36 |
||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||
|
+ 1,75 Ч2(7– |
|
|
|||||||||||||||||||||||||
+ |
|
7 |
|
|
|
|
0.75 |
|
= |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
допустим |
|
|
|
|
|
|
|
|
||||
1 |
|
10000001 |
|
0110…00 |
|
|
|
|
|
|
|
смещ |
|
|
|
|
||||||||||||
|
|
– 1,375 Ч2(129– |
|
|
|
|
|
|
|
|
||||||||||||||||||
|
– |
129 |
|
|
0.375 |
|
= |
– 5,500000 |
допустим
Рис. 7.28
вычитается из экспоненты «Е» так, что «Е» — всегда положительное число. В случае использования арифметики с плавающей точкой с повышенной точностью используется один разряд для знака, 31-разрядная мантисса, 11разрядная экспонента, и полная длина слова, таким образом, составляет 43 разряда.
При работе с арифметикой повышенной точности динамический диапазон мантиссы увеличивается на 8 разрядов, скорость обработки данных при этом остается практически прежней, так как регистры-аккумуляторы уже имеют число разрядов больше 32. С другой стороны, 64-разрядная двойная точность (52-разрядная мантисса, 11-разрядная экспонента и разряд под знак) требует дополнительного цикла процессора при обработке. Необходимость использовать удвоенную точность при цифровой обработке сигналов встречается редко.
Многие приложения ЦОС используют преимущества более широкого динамического диапазона, обеспечиваемого 32-разрядной арифметикой с плавающей точкой. К тому же, гораздо проще программировать процессор с
плавающей точкой, так как проблемы, связанные с фиксированной точкой, такие как переполнение, потеря разрядов, масштабирование данных и ошибки округления, минимизируются, и даже полностью исчезают при использовании арифметики с плавающей точкой. Важно отметить также, что DSP с плавающей точкой могут стоить значительно выше, чем DSP с фиксированной точкой, а время на разработку эквивалентного программного обеспечения может быть значительно меньше при использовании процессора с плавающей точкой.
Хотя все DSP с плавающей точкой могут работать с фиксированной точкой (при необходимости на них можно реализовать счетчики, циклы и обработку сигналов АЦП/ЦАП), это не обязательно означает, что математические действия с фиксированной точкой выполняются в них так же быстро, как операции с плавающей точкой, что зависит от внутренней архитектуры DSP. Например, DSP семейства SHARC Analog Devices оптимизированы как для операций с плавающей точкой, так и для операций с фиксированной точкой, которые производятся с одинаковой эффективностью. По этой причине процессоры SHARC чаще называют «32-разрядными DSP», чем «процессорами с плавающей точкой».
Сравнение арифметики с фиксированной
точкой и с плавающей точкой
ν16-бит с фиксированной точкой:
υ216= 65536 возможных значений
ν32-бит с плавающей точкой:
υ |
Наиб. знач.: |
±6,8 Ч1038 |
754 |
Std: ±3,4 Ч1038 |
υ |
Наим.знач.: |
–39 |
754 |
–38 |
±5,9 Ч10 |
Std: ±1,2 Ч10 |
νРасширенная точность (40-бит.: знак + 8-бит. эксп. + 31-бит. мант.)
νДвойная точность (64-бит.: знак + 11-бит. эксп.+ 52-бит. мантисса)
ν32-бит с плавающей точкой
υБольшая точность
υГораздо больший динамический диапазон
υПроще программировать
Рис. 7.29
ЦИФРОВОЙ СИГНАЛЬНЫЙ ПРОЦЕССОР С ПЛАВАЮЩЕЙ ТОЧКОЙ SHARC® КОМПАНИИ ANALOG DEVICES
SHARC семейства ADSP –2106, построенный по модифицированной гарвардской архитектуре, представляет собой 32-разрядный высокопроизводительный цифровой сигнальный процессор. Процессор SHARC имеет в своей основе ядро процессорного семейства ADSP-21000, блок двухпортовой статической памяти и встроенные средства ввода-вывода, представляя, таким образом, полноценную микропроцессорную систему. Благодаря использованию встроенной кэш-памяти команд, процессор может выполнять каждую инструкцию за один машинный цикл. Модифицированная гарвардская архитектура процессоров семейства ADSP-2106x, показанная на рис. 7.30, включает в себя четыре независимых шины, предназначенных для передачи двойного набора данных, команд и осуществления ввода-вывода, а также набор коммутаторов адресов и данных между шинами адреса и данных программ и данных (crossbar switch memory connections).
Для передачи данных между вычислительными блоками и шинами данных и для запоминания промежуточных результатов используется регистровый файл общего назначения. Регистровый файл имеет два набора регистров (первичный и альтернативный) каждый из которых включает 16 регистров для быстрого переключения контекста, например, при обработке прерываний. Все регистры являются 40-разрядными. Наличие регистрового файла общего назначения и гарвардская архитектура ядра процессора позволяют осуществлять без ограничений перемещение данных между вычислительными блоками процессора и внутренней памятью.
Процессор SHARC семейства ADSP-2106x отвечает пяти главным требованиям к DSP семейства 16-разрядных сигнальных процессоров ADSP-21xx с фиксированной точкой. Это (1) быстрота и гибкость выполнения арифметических операций, (2) эффективная передача данных к вычислительным блокам и от вычислительных блоков, (3) обеспечение повышенной точности и расширенного динамического диапазона в вычислительных блоках, (4) наличие двух генераторов адреса, (5) эффективное управление выполнением команд с автоматической проверкой условия завершения цикла.
Устройство управления выполнением команд включает в себя КЭШ-память инструкций глубиной в 32 слова, которая позволяет производить выборку двух операндов и кода команды в одном машинном цикле. Занесение инструкций в КЭШ-память носит избирательный характер: в память заносятся только те команды, которые требуют двух операндов при выполнении выборки из памяти. Такая организация устройства управления выполнением команд позволяет производить умножение с накоплением и выполнение базовой операции «бабочка» при БПФ с весьма высокой скоростью.
Модифицированная гарвардская архитектура |
|
||||||||||
32-разрядного процессора SHARC семейства ADSP-2106x |
|||||||||||
ядро |
Таймер КЭШ команд |
Два независимых блока |
|
|
Двухпортовая память |
||||||
двухпортовой памяти |
|
|
|||||||||
процессора |
|
|
|
|
|||||||
|
|
Порт ядра проц. |
Порт процессора |
|
|
||||||
|
|
|
|
|
|
||||||
|
|
|
|
адр |
дан |
|
ввода-вывода |
JTAG |
7 |
||
|
|
|
|
|
дан |
адр |
|
||||
|
|
Устройство |
|
|
адр |
дан |
дан |
адр |
TEST & |
|
|
DAG1 |
DAG2 |
|
|
EMULATION |
|||||||
управления |
|
|
|
|
|
|
|
|
|
||
8x4x32 |
8x4x24 |
выполнением |
|
|
|
|
|
|
|
|
|
|
|
команд |
|
|
|
|
|
|
IOA Внешний порт |
||
|
|
|
|
|
|
|
|
IOD |
|||
|
|
PMA |
24 |
|
|
|
|
48 |
17 |
Мультипл. |
32 |
|
|
|
|
|
|
|
|
|
|
||
|
|
DMA |
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
шинаы адр |
|
||
|
|
|
|
|
|
|
|
|
|
Многопроцессор- |
|
Коммута- |
|
PMD |
48 |
|
|
|
|
|
|
ный интерфейс |
|
|
|
|
|
|
|
|
|
48 |
|||
тор шин |
|
DMD |
40 |
|
|
|
|
|
|
Мультипл. |
|
|
|
|
|
|
|
|
|
||||
(PX) |
|
|
|
|
|
|
|
шинаы данных |
|||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Хост интерфейс |
|
|
Регистро- |
|
|
|
|
|
|
|
|
|
|
|
вый файл |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P |
D |
E |
I |
|
DMA |
4 |
|
16x40 |
|
|
|
контроллер |
|
|||||
|
Устройство |
|
|
M |
M |
P |
O |
|
|||
|
BIT |
|
|
|
|
6 |
|||||
Умножитель |
сдвига |
AЛУ |
|
D |
D |
D |
D |
Послед. порты |
|||
|
|
|
|
|
Регистры |
|
|
6 |
|||
|
|
|
|
|
|
|
|
(2) |
|||
|
|
|
|
|
управления, |
|
|
|
|
||
|
|
|
|
|
состояния и |
|
Порты связи |
36 |
|||
|
|
|
|
|
буферные регистры |
||||||
|
|
|
|
|
|
(6) |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процессор ввода-вывода |
|
Рис.7.30
Важнейшие свойства процессора
SHARC
■100MHz Ядро/ до 300 MFLOPS
■Параллельная работа : умножителя, АЛУ, 2 генераторов адреса & устр-ва управления выполнением командами
Нет арифметического конвеера; все вычисления вып за 1 цикл
■Высокая точность и расширенный динамический диапазон
32/40-разр. формат IEEE с плавающей точкой
Результат операции 32-разр. умножения с накоплением с фикс. точкой сохраняется в 80-ти битовом аккумуляторе
■Быстрая двухпортовая статическая память
Наличие КЭШ программ и модифицированная гарвардская архитектура
■Встроенные средства для построения многопроцессорных
■JTAG Интерфейс
■DMA контроллер, последовательные порты, порты связи, внешняя шина, контроллер динамической памяти, таймер
Рис. 7.31
SHARC® - лидер в DSP с плавающей точкой
■SHARC — это стандарт de facto в многопроцессорных системах
■ADSP-21160 — это укрепление лидирующей позиции процессоров SHARC в области многопроцессорных систем ЦОС
■ADSP-21065L — это правильный выбор среди недорогих DSP-процессоров с плавающей точкой
Супер гарвардская архитектура:
Сбалансированный объем памяти, вычислительной мощности и ввода-вывода
■Высокая эффективность работы вычислительного блока
■Наличие 4 шин для:
выборки команд
доступа к 2 значениям данных
выполнения DMA
■Эффективная организация памяти
■DMA не замедляет работу ядра
Рис. 7.32
Процессоры семейства ADSP-2106x выполняют все команды за один цикл синхронизации. Процессоры поддерживают 32-разрядный формат IEEE с плавающей точкой, 32-разрядный целочисленный и дробный форматы с фиксированной точкой (дополнительный код и беззнаковый формат) и 40разрядный формат IEEE с плавающей точкой с повышенной точностью.
Процессоры поддерживают повышенную точность во всех своих вычислительных блоках, минимизируя ошибки промежуточного округления. При работе с данными внутри кристалла 32-разрядная мантисса расширенной точности может пересылаться между всеми вычислительными блоками. 40разрядная шина данных может выводиться и за пределы кристалла, если существует такая необходимость. При работе с числами, представленными в формате с фиксированной точкой, используется 80-разрядный аккумулятор, который позволяет без ограничений производить вычисления с 32-разрядными числами с фиксированной точкой.
Процессоры семейства ADSP-2106x построены по супергарвардской архитектуре, предполагающей наличие 10-портового регистрового файла данных. В каждом цикле синхронизации регистровый файл может поддерживать следующие операции: (1) два операнда могут записываться и считываться из регистрового файла, (2) два операнда могут подаваться на АЛУ,
(3) два операнда могут подаваться на умножитель и (4) два результата могут быть получены от АЛУ и умножителя.
Система команд процессоров семейства ADSP-2106x обеспечивает большие возможности для программирования. Многофункциональные команды позволяют производить вычисления параллельно с пересылкой данных, а также умножение одновременно с арифметическими операциями в АЛУ.
Представитель семейства ADSP–2106Х — процессор ADSP–21060 — содержит 4 Мбита SRAM, организованных в виде двух блоков по 2 Мбита каждый, которые могут быть сконфигурированы для хранения различных комбинаций программных модулей и модулей данных. Такие представители семейства, как
ADSP-21062, ADSP-21061 и ADSP-21065, содержат по 2 Мбита, 1Мбиту и 544
Кбит SRAM соответственно. Каждый блок памяти имеет по два порта, предназначенных для независимого одновременного доступа к памяти со стороны процессорного ядра и со стороны процессора ввода-вывода или контроллера DMA. Двухпортовая память и набор независимых шин на кристалле позволяют за один цикл синхронизации осуществлять передачу в память или из памяти данных от процессорного ядра и от контроллера вводавывода или контроллера DMA.
Поскольку в каждом блоке памяти может храниться комбинация кодов и данных, работа с памятью становится более эффективной, если для обращения к одному блоку применяется шина программ, а для обращения к другому блоку используется шина данных. Наличие двух шин — программ и данных,— каждая из которых используется для доступа к одному из блоков памяти, позволяет производить вычисления с передачей двух операндов в одном цикле синхронизации. В этом случае код команды должен присутствовать в КЭШпамяти инструкций. Вычисления производятся за один цикл даже тогда, когда один из операндов находится во внешней памяти и передается на кристалл процессора или с кристалла процессора через внешний порт.
Внешний порт процессоров семейства ADSP-2106x обеспечивает интерфейс между процессором, внешней памятью и периферийными устройствами. Адресное пространство внешней памяти размером 4 Гслов включено в унифицированное адресное пространство процессоров семейства ADSP-2106x. Отдельные шины внутри кристалла, служащие для адресации памяти программ, передачи данных из памяти программ, адресации памяти данных, передачи данных из памяти данных, адресации шины ввода/вывода и передачи данных шины ввода/вывода мультиплексируются во внешнем порту образуя внешнюю унифицированную системную шину, с единой 32-разрядной шиной адреса и единой 48-разрядной шиной данных. Процессоры семейства ADSP-2106x
обеспечивают возможность введения тактов ожидания и анализа готовности памяти для организации интерфейса с динамической памятью и с периферийными устройствами при различных требованиях к времени доступа и другим параметрам цикла шины.
Хост-интерфейс процессоров семейства ADSP-2106x позволяет легко устанавливать связь со стандартными микропроцессорными средствами как с 16-разрядными, так и с 32-разрядными шинами с незначительной доработкой аппаратуры. Хост-интерфейс имеет в своем распоряжении 4 канала DMA; передача команд и данных производится при минимальным вмешательстве программного обеспечения. Хост-процессор может напрямую осуществлять доступ во внутреннюю память процессоров семейства ADSP-2106x, а также модифицировать конфигурационные регистры канала DMA и почтовые регистры. Для эффективного выполнения команд, поступающих от хостпроцессора, для хост-интерфейса зарезервирован вектор прерывания .
Процессоры семейства ADSP-2106x обладают весьма эффективными средствами для организации многопроцессорных систем цифровой обработки сигналов. Унифицированное адресное пространство позволяет осуществлять прямой доступ каждому процессору, являющемуся элементом многопроцессорной системы, а также к внутренней памяти других процессоров системы. Для организации многопроцессорной системы, имеющей в своем составе до шести процессоров семейства ADSP-2106x и хост-процессор, на кристалле имеются встроенные средства арбитража шины. Передача управления шиной от одного процессора другому требует только одного дополнительного цикла шины. Приоритет при управлении доступом к общей шине может быть фиксированным либо циклическим. Максимальная скорость передачи данных между процессорами через порты связи (линк-порты) или внешний порт может составлять 240 Мбит/секунду (при тактовой частоте 40 МГц).
Процессор ввода/вывода (IOP) DSP семейства ADSP-2106x имеет два последовательных порта, шесть 4-разрядных портов связи (линк-портов) и контроллер DMA. Процессоры семейства ADSP-2106x обладают двумя последовательными синхронными портами, которые реализуют экономичный интерфейс с широким спектром периферийных цифровых устройств, а также периферийных устройств, осуществляющих смешанную обработку сигналов. Последовательные порты могут работать на скорости, соответствующей полной частоте внешнего тактового генератора, обеспечивая максимальную скорость передачи данных равную 50 Мбит/секунду. Независимые функции передачи и приема данных обеспечивают большую гибкость при организации обмена через последовательный порт. Данные через последовательный порт
могут автоматически передаваться из памяти процессора и в память процессора с использованием механизма DMA. Каждый последовательный порт поддерживает многоканальный режим с разделением каналов во времени, а также возможность компрессии данных по µ- или A-законам. Сигналы битовой и фреймовой синхронизации последовательного порта могут генерироваться самим процессором, но возможно и использование внешних сигналов синхронизации.
Процессоры семейства ADSP-21060 и ADSP-21062 имеют в своем составе шесть 4-разрядных портов связи (линк-портов), которые обеспечивают дополнительные возможности по вводу/выводу данных. Порты связи могут работать с двойной относительно тактовой частотой, позволяя передавать 8 бит за один цикл синхронизации процессора. Взаимодействие через порты связи особенно полезно в многопроцессорных системах, реализующих связь между процессорами по принципу точка-точка. Порты связи могут работать независимо и совместно, обеспечивая максимальную скорость передачи данных 240 Мбит/с. Данные, переданные через порт связи, представляются в виде 32разрядных или 48-разрядных слов и могут быть считаны напрямую ядром процессора или переданы во внутреннюю память с использованием механизма DMA. Каждый порт связи имеет свои собственные буферизованные входной и выходной регистры. Управление передачей данных между портами связи осуществляется с использованием сигналов тактовой синхронизации и подтверждения. Порты связи должны быть запрограммированы либо на прием, либо на передачу данных. Порты связи отсутствуют на процессорах ADSP21061 и ADSP-21065.
Внутренний контроллер DMA сигнального процессора семейства ADSP-2106x пересылает данные без вмешательства ядра процессора. Контроллер DMA работает независимо и незаметно для ядра процессора, позволяя проводить операции DMA тогда, когда ядро процессора выполняет свою программу. Как команды, так и данные могут быть загружены в процессор семейства ADSP2106x с использованием передающих средств DMA. Данные в DMA передаются между внутренней и внешней памятью процессора семейства ADSP-2106x, внешними периферийными устройствами или внутренним процессором. Пересылка в DMA может также выполняться между внутренней памятью процессора семейства ADSP-2106x и его последовательными портами или портами связи. Другой возможностью, предоставляемой механизмом DMA, является передача данных между внешней памятью и внешними периферийными устройствами системы.
Внутренняя память процессора семейства ADSP-2106x может быть загружена из 8-разрядного внешнего EPROM или из хост-процессора. К тому же, такие
представители семейства, как ADSP-21060 и ADSP-21062, могут загружаться через один из портов связи. Для загрузки могут быть использованы как 32разрядный, так и 16-разрядный хост-процессоры.
Для тестирования системы процессоры семейства ADSP-2106x используют стандарт IEEE P1149 JTAG. Этот стандарт определяет метод поочередного сканирования состояний входа/выхода каждого компонента системы.
Внутрисхемный эмулятор также использует последовательный порт JTAG для доступа к встроенной системе поддержки внутрисхемного эмулятора. Эмуляторы EZ-ICE используют порт JTAG для текущего контроля и управления процессором, установленным на печатной плате, в процессе отладки. Внутрисхемный эмулятор EZ-ICE тестирует процессор на полной скорости, поддерживая возможности модификации и чтения внутренней памяти, регистров и стеков процессора. Применение интерфейса процессора JTAG обеспечивает непрерывную внутрисхемную отладку работы системы, поскольку внутрисхемный эмулятор не влияет на загрузку и синхронизацию системы.
Архитектура процессоров SHARC не допускает появления узких мест при работе процессора, возникающих вследствие несоответствия между производительностью ядра, пропускной способностью процессора вводавывода, объемом встроенной памяти и набором встроенных периферийных устройств, как показано на рис. 7.30. Ядро поддерживает работу с 32разрядными данными с плавающей и фиксированной точкой. Память вносит свой вклад в сбалансированность архитектуры своим большим размером и наличием двух портов. Ядро может осуществлять доступ через один порт, другой порт может использоваться для передачи данных процессором вводавывода. Процессор ввода-вывода передает данные между периферийными устройствами и внутренней памятью, используя DMA, без вмешательства процессорного ядра. Такая передача происходит одновременно с операциями, выполняемыми ядром процессора.