Встроенный процессор ALTERA AN748 Nios II Classic
Этот документ направляет пользователей через процесс миграции существующей встроенной системы, использующей встроенный процессор Altera® Nios® II Classic, на процессор Nios II Gen2. В этом документе обсуждаются все необходимые аппаратные и программные изменения для использования процессора Nios II Gen2, а также дополнительные изменения, которые можно внести для дальнейшего повышения производительности и функциональности системы. Семейство встроенных процессоров Nios II и наборы для разработки были приняты многими инженерными группами по всему миру отчасти из-за простоты их использования как при разработке, так и при реализации систем на программируемом кристалле (SOPC). Процессор Nios II представляет собой следующий революционный шаг в разработке встраиваемых систем. Процессорные ядра Nios II Gen2 представляют собой бинарно-совместимое обновление архитектуры процессора Nios II Classic. Эти новые ядра предлагают несколько новых функций по сравнению с существующими ядрами с небольшими усилиями по переносу из проекта Nios II Classic. Обновление системы с процессора Nios II Classic требует незначительных системных изменений, описанных в этом документе. Эти шаги включают замену процессора Nios II Classic на процессор Nios II Gen2 в Qsys вручную или с помощью скрипта.
Предпосылки
Вы должны убедиться, что установлены следующие инструменты:
- Quartus® II 14.0 или выше
- Nios II Embedded Design Suite 14.0 или выше
Для получения дополнительной информации обратитесь к главе «Создание экземпляра процессора Nios II Gen2» в Справочном руководстве по процессору Nios II Gen2 и Учебному руководству по разработке аппаратного обеспечения Nios II.
Сопутствующая информация
- Справочное руководство по процессору Nios II Gen2
- Учебник по разработке аппаратного обеспечения Nios II Gen2
Улучшения возможностей процессора Nios II Gen2
Семейство процессоров Nios II Gen2 состоит из ядер /e и /f. Он предлагает улучшения по сравнению с процессорными ядрами Nios II Classic:
- Дополнительное полное 32-битное адресное пространство
- Необязательная определяемая пользователем область периферийных адресов для обхода кэша данных
- Улучшенный интерфейс Qsys
Ядро Nios II Gen2 /e полностью обратно совместимо с ядром Nios II Classic /s. Ядро Nios II Classic /s не имеет прямого эквивалента в семействе Nios II Gen 2, однако процессор Nios II Gen2 /f (поскольку он имеет более гибкие возможности конфигурации) может быть сконфигурирован так, чтобы иметь тот же набор функций, что и Nios II. Классическое ядро. Корпорация Интел. Все права защищены. Intel, логотип Intel, слова и логотипы Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus и Stratix являются товарными знаками корпорации Intel или ее дочерних компаний в США и/или других странах. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги.
- Другие названия и бренды могут быть заявлены как собственность других лиц.
Миграция оборудования с процессоров Nios II Classic на процессоры Nios II Gen2
Ядро Nios II Gen2 /f предлагает следующие усовершенствования функций по сравнению с ядром Nios II Classic /f:
- Опциональная полная поддержка ECC, включая кэш данных и TCM (сильно связанные воспоминания)
- Необязательный статический прогноз ветвления
- Множитель более высокой производительности
- Улучшенный и более детерминированный делитель
- 64-битное умножение поддерживается на всех устройствах
- Улучшенная недорогая реализация модуля сдвига до 4 бит/цикл
- Кэш инструкций теперь является необязательным, даже когда JTAG отладка присутствует
- Новый системный интерфейс для системной трассировки
Для получения более подробной информации о любой из этих функций обратитесь к Справочному руководству по процессору Nios II Gen2.
Сопутствующая информация
Справочное руководство по процессору Nios II Gen2
Миграция оборудования с процессоров Nios II Classic на процессоры Nios II Gen2
IP-адрес и системный интерфейс Qsys для процессоров Nios II Classic и Nios II Gen2 одинаковы. Это позволяет вам напрямую заменить процессор Nios II Classic в вашем существующем проекте новым процессором Nios II Gen2 IP с минимальными усилиями. После замены существующего IP-адреса Nios II Classic требуется перегенерация Qsys и перекомпиляция проекта.
Начиная с Altera Complete Design Suite (ACDS) 14.1, переход с Nios II Classic на Nios II Gen2 автоматизирован. У вас будет возможность обновить вашу систему Nios II, когда проект Nios II Classic открыт в Quartus 14.1 и выше.
Ручное обновление с помощью Tcl-скрипта миграции
В ACDS 14.0 был создан сценарий миграции, который переносит проекты аппаратного обеспечения с Nios II Classic на Nios II Gen2. Чтобы перенести ваш существующий дизайн Qsys на процессор Nios II Gen2, выполните следующие действия:
- Загрузите nios2_gen2_migration.tcl и поместите скрипт в каталог вашего проекта.
- Запустите командную оболочку Nios II в системе Windows или консоль в системе Linux.
- Перейдите в каталог вашего проекта и найдите свой системный проект Qsys. file:
.qsys - Оказавшись в каталоге, выполните следующую команду:
qsys-script–script=nios2_gen2_migration.tcl–система-fileзнак равно .qsys - Перегенерируйте Qsys и перекомпилируйте свой проект после применения приведенного выше Tcl-скрипта в Quartus II.
- Откройте Nios II SBT и запустите «сгенерировать bsp-editor» в Nios II EDS, чтобы обновить BSP.
Сопутствующая информация
nios2_gen2_migration.tcl
Настройки Qys для переноса ядра Nios II Classic /s на ядро Nios II Gen2 /f без использования сценария Tcl
В отличие от Nios II Classic, семейство Nios II Gen2 не имеет стандартного ядра /s. Шаги ниже описывают, как настроить ядро Nios II Gen2 /f, чтобы иметь набор функций, эквивалентный ядру Nios II Classic /s.
Интерфейс Nios II Gen2 QsysВ Qsys создайте экземпляр процессора Nios II Gen2 и откройте окно конфигурации процессора. Во вкладках выберите следующие настройки:
Основная вкладка:
- Nios II Core: выберите Nios II /f
Вкладка Кэши и интерфейсы памяти:
- Кэш инструкций: выберите необходимый размер
- Кэш данных: размер = нет
Вкладка «Дополнительные функции»:
- Предсказание ветвления = Статическое
Миграция программного обеспечения на процессоры Nios II Gen2
Altera рекомендует, чтобы все BSP-пакеты в проектах Nios II Software Build Tools были пересобраны после миграции оборудования (с использованием нового файла .sopcinfo). file), чтобы обеспечить правильную передачу информации от оборудования.
Примечание: Если вы добавляете новые функции Nios II Gen2 (регионы периферийной памяти или 32-битную адресацию), убедитесь, что программное обеспечение было изменено с учетом этого.
Программные ограничения — некэшированные области памяти
Когда процессор с кешем данных выполняет чтение, а данных нет в кеше, кеш загружает небольшой блок или «строку» данных из памяти в кеш. Когда процессор выполняет запись, новое значение сохраняется в кэше данных. С кэшем данных с обратной записью, как в процессоре Nios II, новые значения данных записываются обратно в реальное физическое местоположение только тогда, когда кэш очищается или данные удаляются из кэша. Этот вид операции неприемлем для областей памяти, где данные должны быть записаны
Заключение
немедленно к аппаратному обеспечению, чтобы повлиять на желаемую функцию/операцию, такую как разделяемая память или запись в регистры управления периферийными/аппаратными средствами. Вам необходимо либо немедленно очистить кеш, либо использовать операцию с памятью, которая обходит кеш и переходит непосредственно к предпочитаемому оборудованию. Иногда могут быть другие причины, по которым вы не хотите кэшировать данные (например, если данные никогда не будут считываться обратно и/или нежелательно удалять другие данные из кэша по соображениям производительности или по другим причинам). В процессоре Nios II Classic обход кэша может быть достигнут с помощью специальных инструкций чтения/записи ввода-вывода (например, ldwio/stwio), путем установки 31-го бита адреса чтения/записи данных или путем реализации MMU/MPU и установки это правильно.
Примечание: Параметры MMU и бит-31 являются взаимоисключающими. Ядра Nios II Gen2 могут предлагать все те же механизмы обхода кэша, но реализация кэширования немного отличается и потенциально может вызвать проблему при миграции программного обеспечения Nios II Classic на Nios II Gen2.
Если процессор Nios II Classic выполняет некэшированную запись, и ячейка памяти (и, следовательно, соответствующая строка кэша) присутствует в кэше данных, новое значение данных также записывается в кэш, несмотря на то, что это некэшированная запись. Это означает, что данные в кеше всегда актуальны, и если дизайн программного обеспечения заставляет данные из мест, которые подвергались записи в некэшированную память, загружаться из кеша, не происходит потери согласованности данных. Следовательно, процессор Nios II Classic может поддерживать некэшированные области памяти любого размера и любого выравнивания адресов, поскольку это позволяет смешивать кэшированные и некэшированные области памяти в одной и той же строке кэша. Это неверно для ядер Nios II Gen2. В ядре процессора Nios II Gen2 некэшированные транзакции действительно обходят кэш данных, и содержимое кеша не обновляется (стандартная практика для большинства процессоров). Если некэшированная область памяти разделяет строку кеша с кешированной областью, некэшированная область будет отображена в кеш, и память может быть обновлена бесполезными данными при очистке кеша.
Вы должны убедиться, что некэшированные и кэшированные области памяти четко разделены и не используют одну и ту же строку кэша при отображении в кэш данных. Это достигается за счет того, что некэшированные области памяти выровнены по размеру строки кэша данных (32 байта) и имеют размер одной или нескольких строк кэша данных (кратные 32 байтам). Это предотвращает смешивание кэшируемых и некэшируемых данных в одной и той же строке кэша и, следовательно, запись устаревших/недействительных данных. Altera рекомендует, чтобы базовые адреса наборов периферийных регистров были выровнены с границами строк кэша данных и чтобы драйверы использовали инструкции чтения и записи ввода-вывода обхода кэша. Так что вряд ли потребуются модификации драйверов. Следует тщательно проверять другое программное обеспечение, использующее обход кэша/некэшированные области памяти, чтобы убедиться, что строки кэша не сопоставляются с областями, содержащими как кэшированные, так и некэшированные данные. Следует учитывать возможные последствия использования нового 32-разрядного диапазона адресов и параметров области периферийной памяти, если конфигурация оборудования изменена для их использования. Программное обеспечение должно быть изменено, чтобы поддерживать эти функции или обнаруживать их и выдавать сообщения об ошибках.
Примечание: Программное обеспечение, использующее функцию обхода 31-битного кэша, больше не будет работать, если 2-битный адрес Gen32 Если процессор Nios II Classic выполняет некэшированную запись, а ячейка памяти (и, следовательно, соответствующая строка кэша) присутствует в кэше данных, новое значение данных также записывается в кеш, несмотря на то, что это некэшированная запись. Это означает, что данные в кеше всегда актуальны, и если дизайн программного обеспечения заставляет данные из мест, которые подвергались записи в некэшированную память, загружаться из кеша, не происходит потери согласованности данных. Следовательно, процессор Nios II Classic может поддерживать некэшированные области памяти любого размера и любого выравнивания адресов, поскольку это позволяет смешивать кэшированные и некэшированные области памяти в одной и той же строке кэша. Это неверно для ядер Nios II Gen2.
В ядре процессора Nios II Gen2 некэшированные транзакции действительно обходят кэш данных, и содержимое кеша не обновляется (стандартная практика для большинства процессоров). Если некэшированная область памяти разделяет строку кеша с кешированной областью, некэшированная область будет отображена в кеш, и память может быть обновлена бесполезными данными при очистке кеша. Вы должны убедиться, что некэшированные и кэшированные области памяти четко разделены и не используют одну и ту же строку кэша при отображении в кэш данных. Это достигается за счет того, что некэшированные области памяти выровнены по размеру строки кэша данных (32 байта) и имеют размер одной или нескольких строк кэша данных (кратные 32 байтам). Это предотвращает смешивание кэшируемых и некэшируемых данных в одной и той же строке кэша и, следовательно, запись устаревших/недействительных данных. Altera рекомендует, чтобы базовые адреса наборов периферийных регистров были выровнены с границами строк кэша данных и чтобы драйверы использовали инструкции чтения и записи ввода-вывода обхода кэша.
Так что вряд ли потребуются модификации драйверов. Следует тщательно проверять другое программное обеспечение, использующее обход кэша/некэшированные области памяти, чтобы убедиться, что строки кэша не сопоставляются с областями, содержащими как кэшированные, так и некэшированные данные. Следует учитывать возможные последствия использования нового 32-разрядного диапазона адресов и параметров области периферийной памяти, если конфигурация оборудования изменена для их использования. Программное обеспечение должно быть изменено, чтобы поддерживать эти функции или обнаруживать их и выдавать сообщения об ошибках.
Примечание: Программное обеспечение, использующее функцию обхода 31-битного кэша, больше не будет работать, если выбран параметр диапазона 2-разрядных адресов Gen32, вместо этого следует использовать инструкции ввода-вывода обхода кэша или область периферийной памяти.
Код драйверов HAL и Linux был полностью обновлен, так что пока новый BSP сгенерирован и скомпилирован, не будет проблем с программными библиотеками Nios II.
Заключение
Используя этот документ, вы можете с минимальными усилиями перенести проект встраиваемой системы Nios II Classic на новый процессор Nios II Gen 2.
Документы / Ресурсы
![]() |
Встроенный процессор ALTERA AN748 Nios II Classic [pdf] Руководство пользователя AN748 Nios II Classic Embedded Processor, AN748, Nios II Classic Embedded Processor, Classic Embedded Processor, Embedded Processor, Processor |