| Patron |
20th December 2012 00:38 |
Quote:
Originally Posted by Titus
(Post 560622)
Вовсе нет. В начале каждой команды он делает независимо ни от чего выборку следующего за командой слова.
|
В таком случае ВМ2 будет сильно проигрывать в эффективности ВМ1, потому что ВМ1 не осуществляет предвыборку в начале команд, изменяющих счётчик команд, не осуществляет предвыборку в начале команд, изменяющих следующее слово и т.д., и т.п. ( т.к. ВМ1 вообще не осуществляет предвыборку в начале команд ).
Из-за того, что продолжительность выполнения практически всех команд ВМ1 - почти точно равна продолжительности используемых в этих командах циклов шины ( т.к. при выполнении любой команды циклы идут по шине "сплошняком" ) - чем позже в ход выполнения команды будет "всунут" цикл предвыборки - тем выше будет итоговое быстродействие.
Оптимальная ( с точки зрения итогового быстродействия ) позиция для "всовывания" цикла предвыборки в команду - после завершающего шинного цикла команды, когда уже точно известно - нужна предвыборка или нет. ВМ1 так и делает - начиная предвыборку следующей команды после завершения последнего шинного цикла предыдущей.
Действительно - в описании ВМ2 указано, что изменение следующего слова в команде требует его повторной выборки, т.е. тем самым подразумевается, что это слово было прочитано после кода команды и до выполнения операции.
Но какой от этого выигрыш, кроме неизбежного проигрыша в быстродействии - совершенно не понятно.
|