По ходу мой фикс с 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 и т.д.
hobot(23.12.2020)
Что же касается второго примера с NOP'ами, то там непонятно, почему INC R2 не сработала, т.к. R2 в итоге = 0.
Нужны какие-то еще тесты с NOP'ами, чтобы понять что не так.
Код:1012 MOV -(PC),R5 1014 NOP 1016 INC R0 1020 NOP 1022 INC R2 1024 INC R3
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)