cf7k 0 7 октября, 2006 Опубликовано 7 октября, 2006 · Жалоба В доку по ядру 920 про использование кэша без ММУ написано это: If the cache is enabled with the MMU disabled, all instruction fetches are treated as cachable. No protection checks are made, and the physical address is flat-mapped to the modified virtual address Так что на стадии освоения вполне можно ускоряться кэшированием и без виртуальной адресации... Так же для ускорения крайне положительно будет включить синхронный режим шины: //i-cache asm("MRC p15, 0, r0, c1, c0, 0"); asm("ORR r0, r0, #0x00001000"); asm("MCR p15, 0, r0, c1, c0, 0"); //sync bus asm("MRC p15, 0, r0, c1, c0, 0"); asm("ORR r0, r0, #0x40000000"); asm("MCR p15, 0, r0, c1, c0, 0"); Сам поездил... ускорение к "просто включенному кэшу" выводит на планируемые MIPS'ы :) Про DCache написано такое: You must only enable the DCache when the MMU is enabled. This is because the MMU translation tables define the cache and write buffer configuration for each memory region. Возможно как раз некогерентность кэша данных из-за этого и появилась... (т.е. ICache (у автора исходного сообщения) может совсем и не виноват). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 октября, 2006 Опубликовано 7 октября, 2006 · Жалоба Возможно как раз некогерентность кэша данных из-за этого и появилась... (т.е. ICache (у автора исходного сообщения) может совсем и не виноват). Так не включал он DCache, как я понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cf7k 0 7 октября, 2006 Опубликовано 7 октября, 2006 · Жалоба Так не включал он DCache, как я понял. Нда... это я стормозил... съедаю шляпу. %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться