|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[1] Компоненты и технологии, № 92002 Слоты задержки перехода Слот задержки перехода - это команда, немедленно следующая после BR, BSR, CALL или JMP. Слот задержки перехода выполняется после команды перехода, но перед командой, которая будет выполняться по новому адресу после перехода. Таблица 12 иллюстрирует слот задержки перехода для команды BR. Таблица 12. Пример слота задержки команды BR Branch
После того как команда перехода (b) принята, команда (c) выполняется прежде, чем управление передается по адресу перехода (e). Последовательность выполнения вышеупомянутого фрагмента кода была бы (a), (b), (c), и (e). Команда (c) - слот задержки перехода команды (b). Команда (d) не выполняется. Большинство команд может использоваться как слот задержки перехода, кроме следующих: BR, RSR, CALL, IF1, IFO, IFRnz, IFRz, IFs, JMP, LRET, PFX, RET, SKP1, SKPO, SKPRnz, SKPRz, SKPs, TRET, TRAP. Прямая манипуляция CWP Каждая команда WRCTL, изменяющая регистр STATUS (%ctl0), должна сопровождаться командой NOP. Команды, определяемые пользователем В версии 2.0 процессора Nios фирмой Altera произведено важное дополнение к возможностям системы - введены команды, определяемые пользователем (заказные команды). Теперь проектировщики могут ускорять критические по времени выполнения программные алгоритмы, добавляя собственные коман- То FIFO, Memory, or Other Logic Nios ALU Nios Embedded Processor Рис. 6. Добавление логики пользователя к ALU процессора NIOS ды к системе команд Nios. Системные проектировщики могут использовать такие команды, чтобы добавить к ALU аппаратный узел собственной разработки, позволяющий обрабатывать задачи за один или несколько тактов процессора. Используя такие команды, дополнительно добавленная пользователем логика может обращаться к памяти и логике вне системы Nios (см. рис. 6). Используя заказные команды, системные проектировщики могут уменьшать сложную последовательность стандартных команд, применяя вместо них единственную команду, которая аппаратными средствами выполняет те же действия. Системные проектировщики могут использовать эту особенность для ряда прикладных программ, например, оптимизи- Таблица 13. Команды пользователя: код операции, тип и формат
Таблица 14. Описание формата записи команд для 32-битной версии
ровать программные циклы для обрабатываемого по алгоритмам DSP цифрового сигнала, обработки заголовка пакета и для прикладных программ со сложными вычислениями. Более того, как уже говорилось [1], применение заказных команд позволит реализовывать муль-тимикропроцессорные устройства, где ведущий процессор запускает на выполнение процесс в ведомом через обращение к нему заказной командой. Здесь необходимо отметить основное отличие микропроцессорного устройства, реализованного в FPGA от стандартного микропроцессора. В стандартном микропроцессоре скорость обработки задачи зависит только от скорости работы самого микропроцессора, ресурсов микропроцессора, таких, как разрядность шин, число регистров, наличие умножителей и т. д. и эффективности программного кода. При этом обычно все ресурсы микропроцессора участвуют в решении задачи последовательно, а данные из одного «элемента вычислительного процесса» переносятся в другой «элемент вычислительного процесса» под управлением программы, которая выполняется при данном решении задачи. Для микропроцессорного устройства, реализованного в FPGA, ресурс - это логические ячейки в Таблица 15. Формат команд для 32-битной версии RR Ri5
Rpi5 Ri6 Ri8
i10 i11 Ri2u i8v i6v Rw i4v
i9 Компоненты и технологии, № 92002 Таблица 16.1. Коды операций команд для 32-битной версии Таблица 16.2. Коды операций команд для 32-битной версии
Таблица 16.3. Коды операций команд для 32-битной версии
FPGA, и формально совершенно не важно, что из этого ресурса организовано и как именно этот ресурс связан с микропроцессором - как отдельный вычислительный узел, например умножитель с накоплением, или как микропрограммный автомат - аппаратный сопроцессор, реализующий конкретную процедуру вычислений, например FFT или FIR. Мало того, когда пользователь определил ресурс, требуемый для решения специфичных аппаратных задач пользователя, все остальные ресурсы микросхемы FPGA могут быть задействованы для реализации вычислительных узлов и аппаратных сопроцессоров. Далее необходимо отметить еще одну особенность реализации вычислительного процесса в FPGA. При реализации вычислений на аппаратном сопроцессоре данные передаются из одного «элемента вычислительного процесса» в другой аппаратно, не требуя затрат времени от основного процессора. При обработке массивов данных все элементы сопроцессора участвуют в вычислении одновременно, как стадии конвейера обработки данных. Сам же аппаратный сопроцессор может быть настроен на решение требуемой задачи пользователя - разрядность шин, число ступеней конвейера, тип умножителя и т. д. И есть еще одна возможность в FPGA, применив которую, можно значительно повысить скорость обработки задач для многоканальных вычислений. Так, например, при обработке многоканального потока HDLC возможно реализовать аппаратный сопроцессор и дополнительный стек данных для хранения временных результатов вычислений. Загрузка или выгрузка результатов вычислений из аппаратного сопроцессора потребует только одну команду, а сами вычисления для обработки данных в канале потребуют тоже только одну команду от основного процессора. Всего на обработку одного канала потребуется до 10 тактов синхрочастоты основного процессора (1 такт - загрузить сопроцессор состоянием вычислений на предыдущем этапе для данного канала, 8 тактов - обработка байта данных потока HDLC, 1 такт - сохранить результат вычислений сопроцессора для данного канала). Обобщая, можно сказать, что аппаратные сопроцессоры с возможностью их пе- Компоненты и технологии, № 92002 Таблица 17. Псевдокоманды GNU Compiler/Assembler Таблица 19. Пример организации регистрового файла
(Internal Register File) CWP=6 (HI LIMIT) Reg[120..127] Req[112..119l Reg[104..111] Reg[96..103] Reg[88..95] Reg[80..87] Reg[72..79] Reg[64..71] Reg[56.,63] Reg[48..55] Reg[40..47] Reg[32..39] Reg[24..31] Reg[16..23] Reg[8..15] Reg[0..7] %i0..%i7 %L0..%L7 %o0..%o7 %g0..%g7 CWP=5 Restore %io..%i7 %L0.. %L7 %o0..%o7 %g0..%g7 CWP=4 Save %i0..%i7 %L0..%L7 %o0..%o7 %g0..%g7 CWP=3 %i0..%i7 %L0,.%L7 %o0..%o7 %g0..%g7 CWP=2 %io..%i7 %L0..%L7 %o0..%o7 %g0..%g7 CWP=1 (LOW LIMIT) %i0..%i7 %L0..%L7 %o0..%o7 %g0..%g7 CWP=0 (Underflow or TRAP) %i0..%i7 %L0..%L7 %o0..%o7 %g0..%g7 This shows the smallest Nios register file, which is 128 registers. Larger files have more register windows.
резагрузки при переключении задач значительно повышают скорость отклика при переключении с задачи на задачу и эффективность работы микропроцессора. Для конфигурации Nios CPU фирмой Altera разработан Мастер конфигурации, к которому обращается SOPC Builder. Он обеспечивает графический интерфейс для определения конфигурации пяти заказных команд процессора Nios. Мастер конфигурации Nios интегрирует заказные логические блоки с процессором Nios ALU при формировании Nios. Он также создает программные макрокоманды в C/C++ и ассемблере, обеспечивая программный доступ к этим заказным логическим блокам. Пользователь должен задать название (имя) макрокоманды. Если заказная команда комбинаторная, то число циклов синхрочастоты, необходимых для исполнения команды, установлено в 1. Если заказная команда требует несколько циклов, то пользователь должен указать требуемое число циклов синхрочастоты. Код операции, тип и формат заказных команд приведены в таблице 13. Заказная команда USR0 берет содержимое двух регистров общего назначения Ra и Rb и выполняет над ними операцию, определяемую логическим блоком пользователя. Результат этой операции сохраняется в регистре Ra. Код операции для команды USR0 - RR. Заказные команды USR1... USR4 берут содержимое двух регистров общего назначения Ra и %r и выполняют над ними операцию, определяемую логическим блоком пользователя. Результаты этих операций так же сохраняются в регистре Ra. Код операции для команд USR1... USR4 - Rw. Более подробно заказные команды описаны в документации [10]. Таблица 14 содержит краткое описание синтаксиса команд для 32-битной версии, а таблица 15 - формат команд для 32-битной версии. Коды операций команд приведены в таблице 16. Команды, описание которых приведено в таблице 17, генерируются компилятором и совместимы с ассемблером. Операторы, описание которых приведено в таблице 18, могут быть использованы с константами и символическими адресами и совместимы с ассемблером и линкером. В таблице 19 показан пример организации регистрового файла для 128 регистров. Показано движение окна при выполнении команд SAVE и RESTORE. Литература 1.И. Каршенбойм, Н. Семенов. Микропрограммные автоматы на базе специализированных ИС Chip News. 2000. № 7. 2.Altera™. Nios an188 Custom Instructions. Таблица 18. Операторы NIOS
www.platan.ru платан ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ ОТ ВЕДУЩИХ ПРОИЗВОДИТЕЛЕЙ |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||