Первая отечественная СнК с быстродействующими ЦАП/АЦП. 600 Мвыборок/с по двум квадратурным каналам
В отличие от предшествующий разработки НТЦ "Модуль" – сигнального процессора NM6403 (Л1879 ВМ1) – ИС 1879 ВМ3 создавалась по заказу (ЦНИРТИ). Это наложило отпечаток на некоторые особенности ее архитектуры и программирования. Данная СБИС – одна из немногих реально произведенных отечественных систем на кристалле ( СнК, т.е. имеет программируемое ядро и периферийные IP-блоки), о которых сегодня столько говорят. Она предназначалась для бортовых систем с активными фазированными антенными решетками (АФАР), что предопределило ряд ее функциональных возможностей: два квадратурных ВЧ-канала ввода/вывода, специфические процедуры первичной обработки информации, мощная многоуровневая система прерываний с аппаратной поддержкой и т.д. Однако благодаря уникальным для российской ИС характеристикам – два 6-разрядных АЦП с быстродействием 600 Мвыборок/с и четыре 8-разрядных ЦАП по 300 Мвыборок/с (объединяемых в два ЦАП по 600 Мвыборок/с), встроенные память команд и данных, управляющий контроллер с VLIW-архитектурой, развитая шинная архитектура – СБИС 1879 ВМ3 может оказаться эффективной для многих задач современной электроники (измерительная техника, телекоммуникации, системы безопасности и т.д.).
ОБЩАЯ ОРГАНИЗАЦИЯ И ОСНОВНЫЕ ВОЗМОЖНОСТИ
Структурно (при минимальной детализации) в состав 1879 ВМ3 входят (рис.1): управляющий контроллер (CU), внутренняя память (команд и данных), ЦАП/АЦП с блоком первичной арифметической обработки (аналоговый интерфейс), цифровой управляющий интерфейс, контроллер внешней шины, тестовый интерфейс JTAG и так называемый блок сигнальных каналов. Основные действия СБИС: 6-разрядная оцифровка двух квадратурных каналов (I и Q), запись оцифрованных значений в память, первичная обработка оцифрованных значений, формирование аналоговых квадратурных сигналов, регистрация основных параметров аналоговых сигналов (максимальная мощность, время появления/пропадания сигнала и т.д.). Для выполнения этих действий предусмотрены четыре основных процедуры – Signal Store, Observe, Recall и Processing Store.
Процедура Signal Store означает оцифровку и запись в память микросхемы высокочастотных квадратурных аналоговых сигналов в реальном масштабе времени. При этом максимальная частота входного аналогового сигнала – 300 МГц; максимальная амплитуда входного дифференциального аналогового сигнала для каждой квадратурной составляющей – 0,5 В; минимальная длительность входного аналогового сигнала – 26,66 нс или 2 фрейма (фрейм – временной интервал длительностью 13,33 нс или 2 такта контроллера; в течение фрейма происходит 8 выборок входного сигнала); максимальная длительность записываемого входного аналогового сигнала – 654,7 мкс.
После запуска процедуры Signal Store квадратурные составляющие входного аналогового сигнала AII и AQI преобразуются в 6-разрядные цифровые отсчеты II и QI, а затем – в 8-разрядные выборки IS и QS в дополнительном коде и записываются в память ИС. Преобразование в дополнительный код в данном случае означает, что для удобства выполнения арифметических операций старший бит 6-разрядных чисел инвертируют и добавляют два младших разряда – всегда 10 (например, число 011011 преобразуется в 11101110). Запуск и останов процедуры происходит как программно (по команде контроллера), так и аппаратно по одному из внешних событий, которое выбирается программно.
Базовой процедуре Signal Store сопутствует ряд дополнительных функции, предназначенных для ее запуска и останова, а также для сбора информации о входном сигнале. Функция детектирования входного сигнала позволяет установить моменты его появления и окончания. Фиксируемые ей два внешних события можно применять для аппаратного запуска и останова базовых процедур, а также для прерывания программного режима работы ИС. Порог срабатывания детектора сигнала задается программно из ряда 16, 32, 64 или 128 мВ. Для предотвращения ложного срабатывания детектора от помех предназначена цифровая фильтрация входного сигнала.
Выявить повторяющиеся фрагменты входного сигнала поможет функция определения момента совпадения I- и Q-составляющих. Точность компаратора квадратурных составляющих задается программно из ряда 16, 32, 64 или 128 мВ. Момент совпадения квадратурных составляющих входного сигнала определяется с точностью до одного фрейма (13,33 нс). Данная функция полезна, чтобы запоминать не весь сигнал, а лишь его периодически повторяющийся фрагмент.
Для определения максимальной мощности входного сигнала PEAK служит специальная функция, производящая вычисления:
...
где IIi+j и QIi+j – значения оцифрованных квадратурных составляющих j-й выборки i-го полуфрейма входного сигнала. Данная функция аппаратно, в реальном масштабе времени определяет максимальное для текущего сигнала значение суммы модулей всех оцифрованных выборок, сделанных в течение одного полуфрейма (6,66 нс).
Фиксация и запись в память информации о входном аналоговом сигнале позволяет сохранить служебную информацию о входном сигнале, такую как моменты его начала и окончания, моменты первого и последнего совпадения квадратурных составляющих, число таких совпадений (0, 1, 2 или более 2), максимальная мощность сигнала, частота оцифровки и т.д. Эта информация может быть использована внешним процессором для обработки входного сигнала. Она накапливается в двух специальных 64-разрядных регистрах описания входного сигнала и может быть переписана в память ИС. В режиме Signal Store запись содержимого этих регистров, а также дополнительной информации о входном сигнале в память ИС происходит по команде контроллера (программно), что позволяет определять состав сохраняемых данных в каждом конкретном случае.
Процедура Observe предназначена для накопления информации о физических параметрах принимаемого сигнала. Она аналогична процедуре Signal Store, с той лишь разницей, что запись оцифрованных значений входного сигнала не производится, а при каждом останове процедуры Observe содержимое регистров описания входного сигнала переписывается (аппаратно) во внутреннюю память ИС 1879 ВМ3. Максимальная длительность входного аналогового сигнала для этой процедуры – 111,7 мс.
Процедура Recall позволяет не только оцифровывать входные сигналы (без записи в память ИС), но и формировать выходные сигналы, а также производить их арифметическую обработку. Для этого предназначены четыре разновидности данной процедуры – Direct Recall, Doppler Recall, Noise Recall и Gain Recall, различающиеся только видом математической операции и источником цифровых данных для выходного сигнала. После запуска любой из этих процедур входные аналоговые сигналы AII и AQI преобразуются в последовательность 6-разрядных цифровых выборок II и QI. Из них и/или из считанных из памяти ИС значений ранее оцифрованных сигналов IR и QR формируются соответствующие отсчеты выходного сигнала IO и QO с их последующим цифроаналоговым преобразованием.
Процедура Direct Recall – прямое преобразование – использует непосредственно оцифрованные значения входного сигнала II и QI. Выходные значения формируются в соответствии с формулой ..., где Dw – 16-разрядное значение программно задаваемого сдвига (доплеровского) частоты входного сигнала (от -293 до +293 кГц с шагом 8,94 Гц), t – значение 24-разрядного счетчика реального времени, переключающегося с частотой 150 МГц.
Процедура Doppler Recall – сдвиг частоты и фазы сигнала – полностью аналогична Direct Recall, только в качестве входного сигнала используются значения IR и QR, ранее записанные в память ИС.
Процедура Noise Recall – зашумление выходного сигнала – выдает значения ..., где NC и NS – программно задаваемые 8-разрядные коэффициенты зашумления, n – одноразрядный выход генератора случайных чисел. Частота переключения генератора случайных чисел программируется в диапазоне от 146 кГц до 150 МГц.
Процедура Gain Recall – сложение входного сигнала с эталоном – формирует значения выходного сигнала как ..., где Gi и Go – программно задаваемые 8-разрядные коэффициенты усиления входного и эталонного сигналов, соответственно.
Все процедуры Recall выполняются в реальном масштабе времени. Запускать и остановливать каждую из них можно как программно по команде БИС, так и аппаратно по одному из программно заданных внешних событий. Кроме того, предусмотрена программно задаваемая задержка выдачи выходного сигнала относительно какого-либо внешнего события.
Для записи в память СБИС результатов процедуры Recall (наборов отсчетов IO и QO) служит процедура Processing Store. Она аналогична процедуре Signal Store, за исключением того, что в память записывается не оцифрованный входной сигнал, а результат арифметической операции, тип которой определяет выполняемая в данный момент процедура Recall. Соответственно и запускаться Processing Store может только совместно с процедурой Recall. Одновременно с Recall может быть запущена и процедура Signal Store.
Отметим, что СБИС 1879 ВМ3 одновременно выполняет до восьми процедур Recall различного типа. Это означает возможность запуска новой процедуры Recall, не дожидаясь завершения работы текущей процедуры Recall. Причем каждая процедура запускается со своим программно задаваемым приоритетом. Все активизированные процедуры Recall могут считывать выборки оцифрованного сигнала из различных областей памяти ИС и использовать различные значения смещения частоты, а также коэффициентов усиления Gi и Go. Однако в каждом процессорном такте выполняется только одна из активизированных процедур Recall – у которой наибольший приоритет. При этом счетчики адреса у всех остальных активизированных процедур продолжают инкрементироваться в каждом фрейме, но обращения к памяти сигналов не происходит. В результате более приоритетные выходные сигналы как бы встраиваются в отдельные участки менее приоритетных.
Вместе с тем, в СБИС предусмотрена дополнительная функция микширования выходных сигналов – Mixed Recall. Она позволяет выдать выходной сигнал, в котором чередуются выборки, формируемые двумя наиболее приоритетными процедурами Recall (возможно, различных типов). В течение J фреймов выполняется преобразование выборок одного сигнала, в течение следующих J фреймов – другого и т.д. J задается программно от 1 до 4.
Выходные аналоговые сигналы формируются четырьмя 8-разрядными ЦАП (по два на каждый канал), быстродействие которых – 300 Мвыборок/с. Один из канальных ЦАП преобразует нечетные выборки, другой – четные. Поэтому применение внешнего мультиплексора, переключаемого с частотой 600 МГц, позволяет одновременно формировать аналоговые выходные сигналы I и Q с частотой до 300 МГц каждый. Выходы ЦАП – токовые, с максимальной амплитудой 20 мА и шагом преобразования 78 мкА.
АНАЛОГОВЫЙ ИНТЕРФЕЙС
Очевидно, чтобы достичь столь высоких характеристик обработки входных/выходных сигналов, соответствующие функции должны быть реализованы аппаратно. Для этого в 1879 ВМ3 предусмотрен набор функциональных устройств, объединенных в так называемый аналоговый интерфейс. Помимо двух АЦП и четырех ЦАП, в него входят: делитель частоты, формирующий синхросигналы 300 и 150 МГц для ЦАП/АЦП и цифровой части СБИС, соответственно; генератор случайного шума; таймер реального времени (24-разрядный счетчик с частотой тактирования 150 МГц, позволяющий отсчитывать интервалы от 0 до 111,85 мс); арифметические устройства; а также набор управляющих и накопительных (промежуточных) регистров (рис.2).
Данные, оцифрованные АЦП и преобразованные в дополнительный код, поступают в 64-разрядный буфер входного сигнала ISB (Input Signal Buffer). В конце каждого процессорного такта на выходах ISB формируется 64-разрядное слово, в котором упакованы по четыре выборки сигнала в I- и Q- каналах (рис.3). Такой же регистр OSB расположен на входах ЦАП – восемь записанных в него значений для I- и Q-канала преобразуются в аналоговые сигналы на выходах четырех ЦАП. Данные из входного буферного регистра при процедурах Signal Store и Processing Srore (в последнем случае – после арифметических преобразований) поступают в специальный 64-разрядный регистр SDB (Store Data Buffer). Уже из него данные могут быть переписаны в память ИС, причем если заданы частоты выборок, меньшие 600 МГц, то с помощью мультиплексоров на шину выдаются только четные выборки (300 МГц) или только отсчеты I0, Q0 (150 МГц). Аналогичный буфер RDB (Recall Data Buffer) предназначен для процедур Recall – в него переписываются данные из памяти ИС (эталонный или выходной сигналы). Мультиплексор на входе RDB позволяет восстановить сигнал, если заданы частоты преобразования 300 и 150 МГц. Информация из RDB при каждом такте поступает непосредственно в арифметические устройства и далее – в выходной регистр OSB.
Предварительные арифметические операции выполняют умножитель MUL, вычисляющий Dwt (значение Dw поступает из специального регистра, t – текущее значение счетчика реального времени RTC); устройства SIN и COS, формирующие 8-разрядные значения sin(Dwt) и cos(Dwt). К этому же набору устройств можно отнести генератор псевдослучайного шума NG (Noise Generator) на основе 24-разрядного сдвигового регистра. Частота тактирования этого регистра задается с помощью 10- разрядного регистра NGFR (NG Frequency Register). Она определяется как 150 (МГц) / NGFR и может быть задана в диапазоне от 146 КГц до 150 МГц. Результаты вычислений всех этих устройств, а также информация из буфера выходного сигнала RDB поступают в четыре одинаковых арифметических устройства AU, выполняющих, в зависимости от типа процедуры Recall, соответствующие операции умножения и сложения (вычитания) для формирования выходных сигналов.
Кроме перечисленных устройств, в состав аналогового интерфейса входят детекторы уровня входного сигнала совпадения Q- и I-составляющих входного сигнала, а также схема вычисления максимальной амплитуды сигнала.
СИГНАЛЬНЫЕ КАНАЛЫ
В ИС 1879 ВМ3 возможно одновременное выполнение нескольких функций (например, семи процедур Recall и одной Signal Store). Более того, одновременно с выполнением основных процедур ИС реализует и обмен информацией между внешними и внутренними запоминающими устройствами в режиме прямого доступа к памяти (ПДП). Такую возможность обеспечивает блок из восьми одинаковых сигнальных каналов. Сигнальный канал – это набор регистров, служащих для управления определенным процессом (базовой процедурой или ПДП). Именно в них хранится информация о типе выполняемых процедур и условиях их активизации, адреса областей хранения данных в памяти, константы для процедур (например, доплеровское смещение частоты) и т.п. Сигнальный канал может находиться в одном из двух состояний – в рабочем и в режиме ожидания. Последнее означает, что канал настроен на выполнение определенной процедуры и ожидает заданного события или команды контроллера для активизации.
Прежде всего, в состав сигнального канала входит 14-разрядный счетчик адреса данных АСх, записываемых или считываемых при обращении к внутренней памяти в процессе оцифровки сигналов или при обмене с внешней памятью в режиме ПДП. Счетчик имеет рабочий и теневой регистры. Первый хранит текущее значение адреса и автоинкрементируется в рабочем режиме канала (раз за два такта). В теневой регистр записывают начальный адрес области внутренней памяти, отведенной для хранения данных для определенного сигнала. При запуске канала, а также по команде записи содержимого регистра описания импульса во внутреннюю память значение теневого регистра автоматически переписывается в рабочий регистр. Благодаря теневому регистру можно программно настраивать канал на новый режим во время его текущей работы или многократно обращаться в одну и ту же область внутренней памяти. При каждом останове канала в зависимости от режима работы содержимое рабочего регистра ACx автоматически переписывается в теневой регистр либо теневой регистр не меняется. Это позволяет при каждом новом запуске канала обращаться либо к соседней области памяти, либо к той же области памяти без предварительной загрузки адресного счетчика.
Кроме счетчика адреса сигнальный канал хранит и последний адрес данных, записанный в специальном регистре LARx. Он также имеет рабочий и теневой регистр (рабочий доступен только по чтению, теневой – только по записи). Пересылка содержимого теневого регистра в рабочий происходит по тем же правилам, что и для адресного регистра.
В сигнальном канале предусмотрен датчик достижения последнего адреса, при совпадении значений ACx и LARx генерирующий соответствующее внутреннее событие. Его можно использовать для запуска или останова сигнального канала, запуска счетчика задержек, а также в качестве запроса на прерывания.
Управляющие регистры сигнального канала, настраиваемые контроллером, определяют работу аналогового интерфейса, когда канал активен. Условиями запуска и останова канала, режимом его работы, частотой выборок входного/выходного сигнала управляет 14-разрядный регистр режима работы канала CMRx (Channel Mode Register). Он также разрешает/запрещает повторный автоматический (по наступлению одного из заданных событий) запуск канала и определяет вид работы с внутренней памятью – в последовательном или циклическом режиме адресации (см. таблицу). Отметим, что набор внешних и внутренних событий для всех устройств практически одинаков – как в таблице для регистра CMRx. Приоритет процедур Recall и разрешение микширования задает регистр RCRx (Recall Control Register).
Для запуска канала через определенный интервал регистрации стартового события предназначен 18-разрядный счетчик задержки DCx (Delay Counter), инкреметируемый каждые два такта. Управляет счетчиком задержки регистр DCRx. Он задает однократный/многократный режим работы счетчика, а также определяет событие его запуска (набор событий – такой же, как в полях CFC/CSC регистра CMRx, см. табл.). Сигнальный канал может изменять свое состояние после определенного числа заданных событий. Данную возможность реализуют 12-разрядный счетчик событий ЕСх (Event Counter), инкрементирующийся каждый раз, когда наступает событие, заданное в регистре управления счетчиком событий ECRx.
Для хранения значения доплеровского смещения частоты Dw при работе канала в режимах Doppler Recall и Direct Recall предназначен 16-разрядный регистр DRx (Doppler Register). При выполнении процедур Gain Recall или Noise Recall в него записывают коэффициенты усиления входного и выходного сигналов (Gi и Go) или коэффициенты зашумления (NS и NC), соответственно.
СИСТЕМА ПРЕРЫВАНИЙ
В ИС1879 ВМ3 поддержана развитая система прерываний. Запросы на прерывания могут исходить от сигнальных каналов при наступлении рассмотренных выше событий, при переполнении счетчика реального времени, а также поступать извне – по входам маскируемых прерываний INT0-INT7, по входу немаскируемого прерывания и по входу PINT от внешнего процессора. Прерывания от переполнения счетчика реального времени и от внешнего процессора относят к системным, остальные – к канальным. Особняком стоит немаскируемое прерывание, обладающее высшим приоритетом – контроллер им никак не управляет. Отметим, что сигнал от внешнего процессора на входе PINT вызывает генерацию одновременно двух прерываний – высоко- и низкоприоритетного процессорных прерываний. Для управления этими прерываниями предусмотрены соответствующие маски.
Одна из важнейших функций сигнального канала – генерация прерываний. Каждый канал может выдать запрос на два прерывания – старшее канальное прерывание и младшее. Их отличает то, что, во-первых, приоритет старшего канального прерывания любого канала всегда выше, чем у младшего канального прерывания того же или иного канала. Кроме того, вектор старших канальных прерываний (адрес выполняемой при прерывании команды) задается программно и хранится в счетчике адресов прерываний IACx. При каждом следующем прерывании счетчик может сохранять свое значение или увеличиваться на единицу. Условия генерации (вид события) запроса на старшее канальное прерывание, разрешение на режиме инкрементирования счетчика IACx, а также вид команды перехода (безусловный переход или обращение к подпрограмме) хранятся в регистре управления HICRx (High Interrupt Condition Register).
Для младших канальных прерываний также предусмотрен управляющий регистр LICRx (Low Interrupt Condition Register). В отличие от HICRx, он содержит только тип события, вызывающего запрос на прерывание. Вектор младших канальных прерываний фиксирован, однако зависит от состояния и режима работы канала. Старшие биты адресов векторов младших канальных прерываний определяются номером канала, а младшие 4 бита адреса переписываются из регистра расширения адреса вектора младшего канального прерывания VAERx (Vectror Address Extention Register). Старший бит данного регистра зависит от состояния канала (активный/ожидание), остальные три – от режимов работы канала (ПДП, Observe, Signal Store, Processing Store, одна из процедур Recall) – всего 16 адресов на младшее прерывание от одного канала.
В каждом сигнальном канале специальный регистр конфигурации канальных прерываний ICRx (Interrupt Configuration Register) определяет источник входного канального прерывания CINTx, т.е. номер внешнего входа ИС INT0-INT7, появление сигнала на котором означает для данного канала внешнее прерывание.
Кроме собственно сигнальных каналов блок сигнальных каналов содержит блок прерываний. Он предназначен для фиксации запросов на системные и канальные (старшие и младшие) прерывания, их хранения и сброса. В нем же формируются адреса младших канальных прерываний. Каждое прерывание обладает свои приоритетом: высший – у немаскируемого прерывания, далее – высокоприоритетное прерывание от процессора, старшие и младшие канальные прерывания в соответствии с номером канала, низкоприоритетное прерывание от процессора, переполнение счетчика реального времени. Приоритет канальных прерываний определяется их номером (чем он меньше, тем выше приоритет), но может быть изменен программно контроллером. Для этого в каждом сигнальном канале предусмотрен регистр IPRx, задающий приоритет данного канала по отношению к другим. Регистры масок системных и канальных прерываний также позволяют гибко управлять последовательностью работы ИС 1879 ВМ3.
ПРОГРАММНОЕ УПРАВЛЕНИЕ ИС 1879 ВМ3
СБИС 1879 ВМ3 работает под управление программы. Эту возможность реализует микроконтроллер СБИС и встроенные запоминающие устройства – двухпортовая память команд DPIM (Dual Port Instruction Memory) и трехпортовая память данных TPDM (Triple Port Data Memory).
DPIM с организацией 8К х 64 предназначена для хранения программы контроллера и другой вспомогательной информации (характеристики входных сигналов, состояние ИС и т.д.). Два порта DPIM обеспечивают до двух обращений к ее ячейкам в каждом процессорном такте. Первый порт служит для выборки команд в программном режиме, второй – для записи содержимого регистров описания импульса, для обмена с внешней памятью в режиме ПДП, а также для произвольного доступа к ячейкам DPIM со стороны внешнего процессора.
Трехпортовая память данных TPDM с организацией 24К х 64 служит для хранения оцифрованных сигналов и вспомогательной информации. Три порта позволяют обращаться к ее ячейкам до трех раз за такт. Первый порт предназначен для чтения/записи выходных сигналов (в режиме ПДП) при выполнении процедур Recall. Второй порт – для записи входных сигналов в ходе процедур Signal Store или Processing Store (также в режиме ПДП). Назначение третьего порта – запись содержимого регистров описания импульса либо обмен между TPDM и внешней памятью в режиме ПДП, а также обеспечение произвольного доступа к ячейкам TPDM со стороны внешнего процессора.
Собственно контроллер (устройство управления CU) предназначен для формирования адресов команд, их считывания и дешифрации, а также для формирования сигналов управления всеми исполнительными узлами ИС. Команда контроллера состоит из двух 64-разрядных слов, каждое выполняется за такт. В целом 128-битная команда соответствует VLIW-архитектуре (Very Long Instruction Word), т.е. имеет несколько полей, каждое из которых управляет определенной группой устройств. Соответственно, различные устройства работают параллельно, каждое по своей команде. Основные виды команд контроллера СБИС 1879 ВМ3 – операции безусловного перехода, вызова подпрограммы и возврата из нее, команда перехода в режим ожидания, операции загрузки констант в регистры, межрегистровые пересылки, управление сигнальными каналами, а также загрузка содержимого регистров описания импульса в память DPIM или TPDM. Кроме того, поддерживаются команды управления масками прерываний, счетчиками событий и задержек сигнальных каналов и т.д.
Один из основных регистров CU, помимо регистра команд, – 20-разрядный регистр управления контроллера. Его поля определяют порог чувствительности детекторов входного сигнала и совпадения
I- и Q-составляющих, период чередования выходных сигналов при выполнении функции Mixed Recall, частоту выборок сигнала, тип перехода при младших канальных и системных прерываниях, направление передачи данных при обмене с внешней памятью в режиме ПДП и др. Этот регистр доступен программно.
Особенность контроллера – организация записи информации из регистров в память. К контроллеру структурно относится блок регистров описания импульса. Два его 64-разрядных регистра хранят информацию о сигнале, полученную в ходе выполнения процедур Signal Store или Observe, и заполняются автоматически. В память они переписываются также автоматически или по специальной команде. Кроме того, в данный блок входят четыре 32-разрядных регистра, доступные для записи в программном режиме. Содержимое только этих четырех регистров из всех программно доступных по записи может быть переписано во внутреннюю память – т.е. они выполняют роль буфера при записи содержимого внутренних регистров в память ИС.
ВНЕШНИЙ ИНТЕРФЕЙС
Для обмена служебной информацией с внешними устройствами ИС 1879 ВМ3 обладает цифровым интерфейсом, включающим 16-разрядный входной порт с четырьмя внешними стробовыми входами и 20-разрядный выходной порт. Входной порт содержит две пары
8-разрядных регистров, запись информации в каждый из которых происходит по соответствующему стробу (т.е. в каждую пару регистров данные поступают с одних и тех же входов).
Для обмена данными с внешними устройствами (памятью, процессором), в том числе – в мультипроцессорном режиме, предусмотрен интерфейс внешней шины EMI. Внешняя шина – 64- или 32-разрядная (усеченная), суммарное число внешних выводов интерфейса EMI – 105, в том числе 64 для шины данных и 23 для шины адресов.
EMI поддерживает два основных режима работы – Master и Slave. В режиме Master ИС 1879 ВМ3 выступает активным устройством, управляющим внешней шиной. В данном режиме EMI позволяет обращаться к двум банкам внешней памяти объемом до 64 Мбайт каждый (до 32 Мбайт каждый при 32 -разрядной шине) в режиме ПДП. EMI поддерживает асинхронные статические ОЗУ (SRAM), синхронные динамические ОЗУ (SDRAM, рис.4) и синхронные статические ОЗУ (SSRAM, рис.5) без дополнительного оборудования, включая регенерацию SDRAM. Со статической памятью возможна работа как в синхронном режиме (временные параметры циклов обращения к памяти задаются программно), так и в асинхронном (используется внешний сигнал готовности). Режим регенерации внешней памяти типа SDRAM поддерживается аппаратно. Благодаря программной настройке интерфейса СБИС эффективно работает с микросхемами внешней памяти различного объема и быстродействия.
В режиме Slave ИС 1879 ВМ3 – пассивное устройство, не управляющее внешней шиной. При этом EMI обеспечивает произвольный доступ внешнего процессора ко всем ячейкам внутренней памяти ИС в конвейерном и асинхронном режимах.
Важно отметить, что при взаимодействии по внешней шине в качестве управляющих используются сигналы готовности (Ready и Strob). Это позволяет подключать к ИС по внешней шине процессоры практически с любой глубиной конвейера доступа во внешнюю память. Тип доступа к внутренней памяти контроллера определяется состоянием конфигурационных выводов ИС. В результате возможны различные схемы построения систем с ИС 1879 ВМ3 (рис.6). Примечательно, что в мультипроцессорной конфигурации ИС может изменять режим работы с внешней шиной со Slave на Master и наоборот, что позволяет, например, произвести начальную загрузку под управлением внешнего процессора, переключиться в ведущий режим и обмениваться данными с процессором посредством внешней памяти (рис.6в).
В заключение отметим, что рассмотренная СБИС 1879 ВМ3 соответствует всем отечественным требованиям, в том числе – специальным, может поставляться с приемкой "5". Выпускается в 576-выводном корпусе BGA. Напряжение питания – 3,3 и 2,5 В, потребляемая мощность – не более 4,2 Вт. Рабочий диапазон температур – от -40°С до +85°С.
Уже сейчас разработчикам доступны инструментальные платы с ИС 1879 ВМ3 (рис.7), включающие 64 Мбайт ОЗУ, мультиплексор для ЦАП и контроллер шины PCI, а также отладочное ПО. Принимаются заказы на серийные поставки.