Попытка очистить кэш данных PowerPC 750

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

Я нашел примечание по приложению IBM о программировании кешей, которое включает процедуру очистки, но меня смущает пример кода. Я думаю, что это может быть ошибка в примере, но решил проверить. В листинге 2 есть два цикла, которые включают команду «перейти к следующему блоку». Переход к следующему блоку достигается добавлением 0x10 к текущему адресу. Я ожидал, что это будет добавление 0x20 (32), поскольку я думаю, что строки кэша имеют ширину 32 байта. Может ли кто-нибудь подтвердить или опровергнуть мое мнение ?!


person sparklewhiskers    schedule 24.08.2009    source источник
comment
Я ожидал, что это будет также 0x20 ... вы могли бы написать в IBM и спросить, не ошибка ли это?   -  person Goz    schedule 24.08.2009
comment
Linkrot 20120826: www. ibm.com/chips/techlib/techlib.nsf/techdocs/   -  person Eli Rosencruft    schedule 27.08.2012


Ответы (2)


Вы, кажется, правы. С их математикой, указанной в верхней части списка:

! CTR - the number of data blocks needed to fill the cache - save it in r3
!       32K (size of cache) / 32 (bytes per block) = 0x400

Они всегда устанавливают регистр счетчика на 0x400, и в нем указывается, что в нескольких местах этого документа на каждый блок приходится 32 байта. Итак, следуя этой математике, вам нужно будет увеличивать 0x20, а не 0x10. Как и в случае с любой другой сборкой, вы обязательно должны протестировать ее в обоих направлениях на случай, если есть какие-то странные ошибки в кремнии.

person ThePosey    schedule 24.08.2009

После подтверждения от других пользователей SO я отправил электронное письмо автору заметки о приложении. Он согласился, что 0x10 должно быть 0x20 и может обновить заметку в будущем.

person sparklewhiskers    schedule 25.08.2009