Согласен. Всё может быть.
P.S.
Правильно Vslav сказал, что надо пользоваться лопатой, только где её взять...[свернуть]
Вид для печати
По ходу мой фикс с PC2 не работает как надо. Придется таки разбираться и патчить микрокод.
Даже не думай, почти сизифов труд)
- - - Добавлено - - -
Фикс PC2 и не поможет, т.к. не он виной, а сбой кэша.
- - - Добавлено - - -
Надо сделать тест типа ADD -(PC),R5, тогда мы хотя бы косвенно сможем понять, сколько раз эта команда выполнилась по итоговой сумме.
Посмотрел я пример @Alex_K, просчитал его теоретически по микропрограмме, и все сошлось:
Код:1012 MOV -(PC),R5
1014 INC R0
1016 INC R1
1020 INC R2
1022 INC R3
1012 MOV -(PC),R5 // PC1=1012, R5=14705 В кэше: INC R0 Запрос кэширования: MOV -(PC),R5
1012 INC R0 // R0=1 В кэше: MOV -(PC),R5 Запрос кэширования: INC R0
1014 MOV -(PC),R5 // PC1=1014, R5=5200 В кэше: INC R0 Запрос кэширования: INC R1
В кэше: INC R1 Запрос кэширования: INC R0
1014 INC R1 // R1=1 В кэше: INC R0 Запрос кэширования: INC R1
1016 INC R0 // R0=2 В кэше: INC R1 Запрос кэширования: INC R2
1020 INC R1 // R1=2 В кэше: INC R2 Запрос кэширования: INC R3
1022 INC R2 // R2=1 и т.д.
Что же касается второго примера с NOP'ами, то там непонятно, почему INC R2 не сработала, т.к. R2 в итоге = 0.
Нужны какие-то еще тесты с NOP'ами, чтобы понять что не так.
Код:1012 MOV -(PC),R5
1014 NOP
1016 INC R0
1020 NOP
1022 INC R2
1024 INC R3