Pergunta

Eu estou escrevendo uma rotina para liberar o cache de dados PowerPC750 antes de desligá-lo quando utilizar o modo de gravação de volta.

Eu encontrei o nota de aplicação IBM na programação das caches que inclui uma rotina de flush, mas estou confuso com o código de exemplo. Eu acho que poderia ser um erro no exemplo, mas pensei que eu iria verificar. Na Listagem 2 existem dois circuitos que incluem e instruções para "mover para o próximo bloco". Passando para o próximo bloco é obtida pela adição de 0x10 para o endereço atual. Eu teria esperado que este seja um complemento de 0x20 (32) desde que eu acho que as linhas de cache são 32 bytes de largura. Alguém pode confirmar ou rejeitar o meu pensamento?!

Foi útil?

Solução 2

Após a confirmação de outros usuários para que eu e-mail o autor do nota de aplicação. Ele concordou que 0x10 deve ser 0x20 e pode atualizar a nota no futuro.

Outras dicas

Você parece estar certo. Com sua matemática declarou no topo da lista:

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

Eles sempre colocar o registro de contagem de 0x400 e afirma que existem 32bytes por bloco alguns lugares em que documento. Então seguinte que a matemática que você precisa para incrementar 0x20 0x10 não. Como acontece com qualquer montagem que você definitivamente deve testá-lo em ambos os sentidos, caso haja alguma errata silício estranho das sortes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top