Методы Оптимизации Кода Для Redd. Часть 1. Влияние На Кэш

В первая статья цикле я активно продвигал идею, что разработка кода для Redd вторична, а основной проект первичен.

Redd — это служебный инструмент, поэтому тратить на него много времени — не лучшая идея.

То есть разработка для него должна идти быстро.

Но это не означает, что полученные программы должны быть неоптимальными.

Собственно, если они вообще не оптимизированы, то мощности оборудования просто не хватит для реализации необходимой тестовой системы.

Поэтому процесс, как я уже сказал, должен быть быстрым и простым, но вот некоторые принципы оптимизации, которые разработчик должен всегда иметь в виду.



Методы оптимизации кода для Redd. Часть 1. Влияние на кэш

Об оптимизации изданы толстые книги.

Некоторые из этих книг полезны, некоторые уже устарели, так как описанные в них принципы давно перешли на стадию автоматической оптимизации при сборке кода.

Но есть некоторые вещи, которые не имеют никакой ценности при разработке обычных программ для обычных процессоров, поэтому они обычно не описываются в стандартных книгах.

Сейчас мы приступим к их рассмотрению.



Введение

До сих пор я писал по принципу «одна проблема — одна статья».

Причем статьи были представлены в формате лекций, затрагивая сразу несколько тем, объединенных общей проблемой.

Но некоторые читатели заявили, что такие статьи невозможно прочитать за один присест. Поэтому сейчас попробуем поговорить только об одной теме в одной статье.

Мне тоже так легче писать.

Посмотрим, всем ли так будет удобнее.

Также порадуем загадочных минусаторов.

Если статья публикуется утром, то первый минус за нее наступает через промежуток времени, в течение которого невозможно прочитать весь текст. Некоторые делают это чисто из принципа, жалея лишь темы про УДБ и балалайку.

Если публикация произошла не утром, а днем, то за задержку накидывает минус.

Второй минус прилетает днем (а тот друг, кстати, тоже обошёл темы про УДБ и балалайку).

В новом формате статей будет больше, а значит больше приятных моментов для этой парочки (хотя лично меня, как автора, их действия печалят и обижают).

Предыдущие статьи серии:

  1. Разработка простейшей «прошивки» для ПЛИС, установленной в Redd, и отладка на примере теста памяти.

  2. Разработка простейшей «прошивки» для ПЛИС, установленной в Redd. Часть 2. Программный код.
  3. Разработка собственного ядра для интеграции в процессорную систему на базе FPGA.
  4. Разработка программ для центрального процессора Redd на примере доступа FPGA.
  5. Первые эксперименты по использованию потокового протокола на примере связи ЦП и процессора в ПЛИС комплекса Redd.
  6. Весёлый Квартусель, или как процессор дошёл до такой жизни.



Загадочное поведение типичной системы

Давайте создадим простейшую процессорную систему, включающую тактовый генератор, процессор Nios II/f, контроллер SDRAM и порт вывода.

Вот как система выглядит по-спартански в Platform Designer

Методы оптимизации кода для Redd. Часть 1. Влияние на кэш

Программный код для него будет содержать всего одну функцию, тело которой выглядит несколько странно, так как содержит множество повторяющихся строк, но это нам пригодится.

Код скрыт, так как он слишком длинный.

   

extern "C" {

Теги: #Программирование микроконтроллеров #Компьютерное оборудование #микроконтроллеры #кэш #Системное программирование #оптимизация кода #FPGA #FPGA #FPGA #FPGA #Redd #Nios II
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.