Логотип встраиваемого процессора ALTERA AN748 Nios II Classic

Встроенный процессор ALTERA AN748 Nios II Classic

Продукт встроенного процессора 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, выполните следующие действия:

  1. Загрузите nios2_gen2_migration.tcl и поместите скрипт в каталог вашего проекта.
  2.  Запустите командную оболочку Nios II в системе Windows или консоль в системе Linux.
  3.  Перейдите в каталог вашего проекта и найдите свой системный проект Qsys. file:
    .qsys
  4. Оказавшись в каталоге, выполните следующую команду:
    qsys-script–script=nios2_gen2_migration.tcl–система-fileзнак равно .qsys
  5. Перегенерируйте Qsys и перекомпилируйте свой проект после применения приведенного выше Tcl-скрипта в Quartus II.
  6. Откройте 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Встроенный процессор ALTERA AN748 Nios II Classic 01В 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

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *