Микропроцессоры компании Analog Devices (1015569), страница 2
Текст из файла (страница 2)
Совершенствование данного семейства микропроцессоров идет в направлении повышения тактовой частоты, снижения энергопотребления и расширения коммуникационных возможностей процессора.
Новый микропроцессор семейства ADSP-219x содержит модифицированное ядро, которое рассматривается компанией Analog Devices как ключевой элемент в технологии создания перспективных 16-разрядных сигнальных процессоров общего назначения и процессоров для встроенных решений.
Специальные схемотехнические решения на основе данного ядра и программное обеспечение планируется создавать непосредственно для заказчика, под конкретно заданные требования и характеристики. Для приложений, требующих высокой производительности, будут создаваться процессоры, содержащие несколько ядер на одном кристалле. В будущем предполагается выпуск микропроцессоров, содержащих 4 ядра на одном кристалле и обладающих производительностью 1,2 миллиарда MAC в секунду на 1 квадратный дюйм площади кристалла.
Структура микропроцессора ADSP-219x показана на рис. 3.
Рис. 3. Структура микропроцессора ADSP-219X
По сравнению с процессорами семейства ADSP-218x, имеющими 14-разрядную шину адреса, в семействе ADSP-219x используется 24-разрядная шина адреса, что позволяет осуществлять прямую адресацию в пределах 64 Кслов или страничную адресацию в пределах 16 Мслов. Адресный генератор процессоров семейства 219х поддерживает все ранее использованные и пять новых режимов адресации.
ADSP-219x программно совместим с предыдущими микропроцессорами семейства ADSP-21xx, обладает большей производительностью (до 300 MIPS) и меньшим энергопотреблением (0,4 мBт/MIPS).
Микропроцессоры с архитектурой SHARC семейства ADSP-2106x
Следующее поколение семейства ADSP 21ххх представлено микропроцессорами ADSP-21060 и ADSP-21062. Будучи сходными с ранее рассмотренными микропроцессорами ADSP-210xx по структуре ядра и совместимыми снизу-вверх по системе команд, эти микропроцессоры обладают существенными архитектурными отличиями, что позволило разработчикам выделить их в отдельное архитектурное семейство SHARC (Super Harvad Architecture Computer). Архитектура SHARC (рис. 5) продолжает развитие транспьютерного направления в микропроцессорной технике и задает новый стандарт интеграции сигнальных процессоров в мультипроцессорную систему. Эта архитектура является примером гармоничного сочетания принципов по строения распределенных и связанных систем, объединяя в себе простоту и эффективность масштабирования распределенных систем с удобством программирования систем с разделяемой памятью.
Рис. 6. Архитектура SHARC
В SHARC-микропроцессоре объединены высокоэффективное процессорное ядро, выполняющее обработку данных в формате с плавающей точкой, интерфейс с хост-процессором, контроллер ПДП, последовательные порты, коммуникационные линки и разделяемая шина.
На тактовой частоте 40 МГц производительность микропроцессоров составляет 80 MIPS и 120 Mflops.
Шинный коммутатор соединяет ядро процессора с независимым процессором ввода/вывода, двухвходовой памятью и портом шины мультипроцессорной системы. Вычислительные модули на базе микропроцессоров ADSP-2106x выпуска ются в виде микропроцессорных кластеров: платы с шинным интерфейсом ISA, PCI или VME содержат от 3 до 8 узлов. Производятся также мезонинные модули SHARCPAC и TRANSPAC, устанавливаемые в специальныеразъемы материнских плат.
Вычислительные модули на базе микропроцессоров SHARC используются в системах радио- и гидролокации, в системах распознавания речи и обработки изображений, в средствах телекоммуникации и медицинской диагностики. Структура микропроцессора ADSP-2106x приведена на рис. 7.
Рис. 7. Структура микропроцессора ADSP-2106X
Микропроцессоры ADSP-21060 содержат на кристалле 4 Мбит статической двухвходовой памяти, которая может быть сконфигурирована для работы 16-битными (256 Кслов), 32-битными (128 Кслов) и/или 48-битными (80 Кслов) словами. Вся память может быть произвольно разделена на память программ и память данных.
Другой представитель этого семейства - микропроцессор ADSP-21062 - отличается от ADSP-21060 меньшим объемом внутрикристальной памяти (2 Мбит).
Общее адресуемое пространство микропроцессора составляет 4 Гслова. Встроенный контроллер внешней оперативной памяти позволяет задавать различное число генерируемых тактов ожидания и поддерживает странич-ный обмен с динамической памятью.
Интерфейс с хост-процессором обеспечивает простое соединение со стандартной 16- или 32-разрядной микропроцессорной шиной. Передача данных через интерфейс осуществляется асинхронно, со скоростью, ограниченной тактовой частотой микропроцессора. Хост-интерфейс доступен через внешний порт и отображается в адресное пространство микропроцессора. Четыре канала контроллера ПДП обеспечивают обмен данными и командами через хост-интерфейс с минимальным участием процессорного ядра. Расположенный на кристалле 10-канальный контроллер ПДП обеспечивает обмен данными между внутренней и внешней памятью, периферийными устройствами, хост-процессором, последовательными портами и линками микропроцессора.
ADSP-21060 имеет два синхронных последовательных порта для связи с разнообразными периферийными устройствами. Максимальная скорость передачи данных через последовательный порт составляет 40 Мбит/с. Передача может осуществляться одновременно в двух направлениях в режиме ПДП. В процессе обмена может выполняться дополнительное преобразование данных, такое, например, как мю- или А-компандирование. ADSP-21060 предоставляет разработчикам широкие возможности по созданию мультипроцессорных сигнальных систем. Общее адресное пространство может быть разделено между несколькими процессорами. Обеспечивается автоматическая поддержка семафоров для последовательностей операций чтение-изменение-запись в память. Встроенная распределенная шинная логика позволяет создавать системы, содержащие до 6 взаимодействующих процессоров ADSP-21060 и хост-процессор. Межпроцессорное управление осуществляется с помощью механизма векторов прерывания. Дополнительные возможности ввода/вывода процессору предоставляют шесть 4-разрядных линков. Линки передают данные по переднему и заднему фронту тактового импульса, обеспечивая, таким образом, передачу 8 бит за такт. Линки используются в мультипроцессорных системах для соединений типа "точка-точка". Передача данных по линку может осуществляться 32-или 48-разрядными словами непосредственно в процессорное ядро или, с использованием ПДП-канала, во внутреннюю память. Каждый линк содержит собственные буферные входные и выходные регистры. Максимальная скорость межпроцессорного обмена через все линки или внешний порт составляет 240 Мбайт/с. Загрузка микропроцессора может осуществляться из ПЗУ, хост-процессора или по одному из линков.
Линки микропроцессора
Каждый линк Lx, х = {0, 1, ..., 5}, состоит из 4 двунаправленных линий данных LxDAT (0, 1, 2, 3), а также из двух двунаправленных управляющих линий LxCLK и LxACK, обеспечивающих асинхронную передачу в режиме "запрос-ответ".
Порты на противоположных концах линка настраиваются на передачу и прием, либо находятся в третьем состоянии.
Порт каждого линка может выбрать для передачи или приема один из 6 буферов. Данные читаются из буферов и пишутся в буферы под управлением контроллера прямого доступа в память (ПДП) или процессора (ЦПУ). Буферы линков 5, 4, 3, 2, 1, 0 поддерживаются каналами ПДП 7, 6, 5, 4, 3, 1 соответственно.
Контроллер ПДП программируется для работы с буфером путем задания размера буфера, начального адреса в памяти, приращения адреса, а также направления передачи. Когда контроллер ПДП завершает операцию, вырабатывается прерывание, индивидуальное для каждого из 10 ПДП-каналов.
Буферы могут быть читаемы или пополняемы процессором посредством операций чтения/записи в области памяти внешних устройств. Если предпринимается попытка чтения из пустого буфера, процессор должен перейти в ждущее состояние до тех пор, пока не поступят данные извне. Естественно, при записи в заполненные буферы операция также должна быть приостановлена, вплоть до появления свободного места в буфере.
В приложениях, в которых задержка, вносимая контроллером ПДП, неприемлемо велика, процессор может непосредственно работать с буферами. Контроллер ПДП должен быть переведен в неактивное состояние.
При работе линков вырабатываются следующие прерывания:
-
если канал ПДП активизирован, то по завершении передачи сообщения ПДП-контроллером вырабатывается маскируемое прерывание;
-
генерируется маскируемое прерывание, если ПДП-контроллер не активизирован, а принимающий буфер не пуст или передающий буфер не полон. По прерыванию требуется выполнение операций с буфером (чтение или запись);
-
маскируемое прерывание, отличное от прерываний, вырабатываемых буферами, генерируется при внешнем доступе в порт линка, который не активизирован.
Асинхронный "запрос-ответ"
Передающий ADSP 2106х выставляет высокий уровень на LxCLK при выдаче очередного полубайта на линии LxDAT. Изменение этого уровня используется принимающим ADSP-2106x для приема полубайта. Принимающий ADSP-2106x выставляет LxACK, когда принято очередное слово в буфер. Передающий ADSP-2106x анализирует LxACK в начале передачи каждого слова. Если требуемый уровень LxACK в этот момент отсутствует, то передача слова не начинается.
Передающий ADSP-2106x оставляет LxCLK высоким, если LxACK отсутствует. При появлении LxACK, LxCLK становится низким и начинается передача следующего слова.
Принимающий буфер может заполняться, если выполняются высокоприоритетная ПДП- или цепочечная операция, при этом LxACK не выставляется. Однако сразу после завершения ПДП выставляется LxACK. Данные "защелкиваются" в принимающем буфере по спадающему уровню LxCLK. Передача полубайта данных происходит каждый такт ADSP-2106x или дважды за такт, если установлен специальный бит LCKx2.
Буферы
Каждый буфер состоит из внешнего и внутреннего регистров. При передаче внутренний регистр используется для приема данных из внутренней памяти под управлением ПДП-контроллера или ЦП. Внешний регистр используется для распаковки полубайтов для порта линка (старший полубайт следует первым). Эти два регистра формируют FIFO-очередь. Два слова могут быть помещены в буфер прежде, чем вырабатывается сигнал "заполнено". Если регистр пуст, уровень сигнала LxCLK становится низким.
При приеме внешний регистр упаковывает принимаемые полубайты в слова и передает их через внутренний регистр в память под управлением ПДП-контроллера или ЦП. Если ПДП-контроллер или ЦП не успели извлечь данные из внутреннего регистра и оба регистра буфера заняты, сигнал LxACK не выдается, и прием прекращается.
Длина регистров настраивается программно и составляет 32 или 48 битн. Для работы с 40-битными данными или командами должна устанавливаться длина регистров 48 битн.
Установление соглашения по использованию линка
Прежде чем два процессора начинают взаимодействовать по связывающему их линку, должно быть определено: кто из процессоров будет передавать данные, а кто принимать. Для этого используется обмен маркером. При начальной установке маркер (программно доступный флаг) устанавливается в одном из процессоров, определяя его как "хозяина" (master) линка и разрешая ему передачу.
Если принимающий порт желает стать "хозяином" линка для передачи данных, он должен выставить сигнал на LxACK (запрос данных) для текущего "хозяина" линка. "Хозяин", используя программный протокол, определяет, когда приходит подтверждение данных, а когда запрос на получение маркера.
Если "хозяин" решил передать маркер, он посылает обратно определенный пользователем в качестве маркера идентификатор и сбрасывает собственный маркер. Одновременно ведомый процессор проверяет полученные данные и, если в них содержится необходимое слово, то он устанавливает свою метку, переходя в состояние ведущего процессора.
Если полученные данные не содержат необходимого идентификатора, то ведомый процессор должен понять, что ведущий начинает новую передачу данных.
Ведущий процессор может также запросить получение данных с помощью программного протокола путем посылки маркера без получения запроса по LxACK.
Контроллер ПДП и порты линков передают данные между собой с помощью того же самого протокола ("запрос-подтверждение"), который используется всеми портами ввода/вывода.
Интерфейс с хост-компьютером