[an error occurred while processing this directive]
|
Короче имеем ARM LPC с внешней памятью 32разряда, 32 бита.
Имеем прогу
497 mov r3, #-2147483648
498 0348 FEFFFFEB mov r1, #0
499 034c 0231A0E3 mvn r2, #0
500 0350 0010A0E3 .L42:
501 0354 0020E0E3 .LBE11:
...................................
507 str r1, [r3, #0]
508 .loc 1 337 0
509 0358 001083E5 str r2, [r3, #0]
510 .loc 1 338 0
511 035c 002083E5 str r1, [r3, #0]
512 .loc 1 339 0
513 0360 001083E5 str r2, [r3, #0]
514 .loc 1 340 0
515 0364 002083E5 str r1, [r3, #0]
516 .loc 1 341 0
517 0368 001083E5 str r2, [r3, #0]
518 .loc 1 342 0
519 036c 002083E5 str r1, [r3, #0]
520 .loc 1 343 0
521 0370 001083E5 str r2, [r3, #0]
522 .loc 1 344 0
523 0374 002083E5 str r1, [r3, #0]
524 .loc 1 345 0
Это в цикле.
Щупом встал на шину данных, вижу меандр, частотой в 10 мегагерц (тоесть 3 такта на комманду). Частота самого ARMа - 60, переферии - 60.
Смотрю на BLS - там провал как раз на 1 такт. Тоесть 2 такта тратится на выполнение комманды, 1 на запись в память.
ГДЕ 1 ТАКТ? По идее - 1 такт команда, 1 такт исполнение.
E-mail: info@telesys.ru