Исключения MicroBlaze AXI4

Меня интересуют исключения шины данных для MicroBlaze. В руководстве по продукту MicroBlaze указано, что исключение может возникать только на M_AXI_DC, когда кеш отключен? Это не имеет для меня смысла; означает ли это, что если в строке M_AXI_DC дается ответ об ошибке, исключение не будет вызвано, если кэширование включено? В настоящее время у меня для C_DCACHE_ALWAYS_USED установлено значение 1, так что это не проблема.

Спасибо.

Выдержка из руководства по продукту MicroBlaze:

The data cache AXI4 interface (M_AXI_DC) exception is caused by:

    - An error response on M_AXI_DC_RRESP or M_AXI_DC_BRESP,
    - OKAY response on M_AXI_DC_RRESP in case of an exclusive access using LWX.

The exception can only occur when C_DCACHE_ALWAYS_USED is set to 1 and the
cache is turned off

person MateoConLechuga    schedule 02.08.2017    source источник


Ответы (1)


Основываясь на моих аппаратных/программных тестах и ​​использовании контроллера AXI BRAM для генерации ошибок ECC, MicroBlaze не будет выдавать исключение кэширования данных или инструкций, если кэширование включено, даже если кэширование отключено непосредственно перед записью; и повторно включен перед чтением, чтобы вызвать исключение. Это также имеет место, если кеш очищается и становится недействительным, а затем сразу же считывается обратно.

В основном это означает, что ECC бесполезен в проектах MicroBlaze с включенным кэшированием; поскольку они не вызывают никаких аппаратных исключений.

Несмотря на то, что ответом контроллера AXI BRAM является SLVERR, MicroBlaze примет данные как есть; как будто ничего плохого произойти не могло.

Кто это проектировал. Серьезно.

Я предполагаю, что единственный верный метод - использовать прерывания для обнаружения ошибок ECC; которые имеют более низкий приоритет, чем аппаратные исключения.

person MateoConLechuga    schedule 03.08.2017