Программирование на JAVA

Для того чтобы гарантировать согласованное выполнение программы, резуль­таты выполнения команд нужно записывать по целевым адресам точно в том по­рядке, в каком они следуют в программе. Это означает, что шаг W2 на рис. 9.10 не­обходимо отложить до такта 6. В свою очередь, целочисленное арифметическое устройство должно сохранять результаты выполнения команды I2, поэтому оно не может принять команду I4 до шага 6, как показано на рис. 9.11, а. Если исклю­чение происходит, когда команда активна, все последующие команды, которые на тот момент, возможно, уже частично выполнены, удаляются из конвейера. Такая обработка исключений называется точным исключением.


а


б

Рис. 9.11. Завершение работы команд в соответствии с порядком их следования в программе: отложенная запись (а); использование временных регистров (б)

Точные исключения легче обеспечить для внешних прерываний. Как только поступает сигнал внешнего прерывания, блок диспетчеризации прекращает счи­тывать из очереди новые команды и очищает ее. Команды, выполнение которых уже началось, завершают свой рабочий цикл. С этого момента процессор и все его регистры находятся в согласованном состоянии. Обработку исключения можно начинать.


<< назад вперед >>