Померял быстродействие SAM9XE с кешами и без (данные внутри). В качестве теста использовал шифрование по ГОСТ 28147-89, результат - скорость шифрования в килобайтах в секунду. Измерение проводилось в течении 10 секунд, считалось число килобайтных блоков за это время. Тактовая частота ядра - 200 МГц.
Для каждой конфигурации проводились измерения с различной конфигурацией таблиц диспетчера памяти для ОЗУ (внутреннего и внешнего):
N/cache, N/buff - ОЗУ не кешируется, запись в ОЗУ не буферизируется.
N/cache buffered - ОЗУ не кешируется, запись в ОЗУ буферизируется.
Write-through - кеш со сквозной записью
Write-back - кеш с обратной записью
Столбцы в таблице отражают включение/выключение MMU (M) и кеша команд (I) и данных (D). Кеш команд может быть включен независимо от MMU, кеш данных - только при включенном MMU (особенность архитектуры ARM). Типы доступа к ОЗУ работают только при включенном MMU.
ARM, Code in flash, data in sdram-16
RAM mode \ Cache | -/-/- | -/I/- | M/-/- | M/-/D | M/I/- | M/I/D
N/cache, N/buff | 159 | 196 | 157 | 164 | 192 | 209
N/cache buffered | 159 | 196 | 168 | 179 | 210 | 234
Write-through | 159 | 196 | 168 | 339 | 210 | 1019
Write-back | 159 | 196 | 168 | 339 | 210 | 1019
ARM, Code in flash, data in internal sram
RAM mode \ Cache | -/-/- | -/I/- | M/-/- | M/-/D | M/I/- | M/I/D
N/cache, N/buff | 269 | 333 | 269 | 302 | 324 | 372
N/cache buffered | 269 | 333 | 283 | 334 | 383 | 445
Write-through | 269 | 333 | 283 | 339 | 383 | 1016
Write-back | 269 | 333 | 283 | 339 | 383 | 1016
ARM, Code in internal sram, data in internal sram
RAM mode \ Cache | -/-/- | -/I/- | M/-/- | M/-/D | M/I/- | M/I/D
N/cache, N/buff | 255 | 335 | 253 | 265 | 253 | 266
N/cache buffered | 255 | 335 | 274 | 304 | 274 | 304
Write-through | 255 | 335 | 274 | 593 | 385 | 1023
Write-back | 255 | 335 | 274 | 661 | 385 | 1023
ARM, Code in internal sram, data in sdram-16
RAM mode \ Cache | -/-/- | -/I/- | M/-/- | M/-/D | M/I/- | M/I/D
N/cache, N/buff | 176 | 196 | 173 | 183 | 173 | 183
N/cache buffered | 176 | 196 | 186 | 203 | 186 | 203
Write-through | 176 | 196 | 186 | 661 | 211 | 1026
Write-back | 176 | 196 | 186 | 661 | 211 | 1026
ARM, Code in sdram-16, data in sdram-16
RAM mode \ Cache | -/-/- | -/I/- | M/-/- | M/-/D | M/I/- | M/I/D
N/cache, N/buff | 89 | 196 | 88 | 90 | 89 | 90
N/cache buffered | 89 | 196 | 88 | 92 | 88 | 92
Write-through | 89 | 196 | 88 | 178 | 210 | 1023
Write-back | 89 | 196 | 88 | 217 | 210 | 1022