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

Рис. 9.4, б— это альтернативное изображение происходящего в конвейере в слу­чае промаха при обращении к кэш-памяти. Показано, какие операции выполня­ются во время каждого такта на ступенях конвейера. Обратите внимание: во вре­мя тактов 3-5 простаивает блок декодирования, во время тактов 4-6 — блок вы­полнения, а во время тактов 5-7 — блок записи. Периоды простоя иногда называют остановом, конвейера или пузырями. Образовавшись в результате задержки на од­ной ступени, пузырь спускается вниз, пока не достигнет последнего блока.

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


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