Я использую процессор Microblaze Softcore во многих проектах. Я попытался измерить время, затрачиваемое на запись в регистр и чтение из регистровых операций. Вот некоторые результаты:
- Считать два значения таймера и вычесть их: 48 циклов
- Считать таймер, прочитать любой регистр, снова прочитать таймер и вычесть значения таймера : 76 циклов
- Чтение таймера, запись в любой регистр, повторное чтение таймера и вычитание значений таймера: 83 цикла
- Чтение таймера, чтение из любого регистра, запись в любой зарегистрироваться, снова прочитать таймер и вычесть значения: 111 циклов
Я понял, что операция чтения занимает почти 28 циклов, а одна операция записи занимает почти 35 циклов. Как я могу уменьшить эти циклы?
Кстати, конфигурация для Microblaze по умолчанию. Ничего не изменилось. Никакие кеши или шифтеры не используются. В дизайне нет усиленного оборудования. AXI-Lite Bus используется.