Организация процессоров
То есть реально мы будем иметь в лучшем случае 1,5-2 CPI. Как же достигается такая высокая производительность в Celeron и других процессорах с архитектурой P6? Для этого в них используется суперскалярная обработка, то есть обработка с многопотоковым конвейером команд, когда процессор может выполнять больше 1 команды за такт (CPI < 1, или – IPC > 1).
Рис. Фактически в суперскалярном процессоре несколько потоков проходят через несколько исполнительных устройств, а остальные ступени так или иначе работают с одним потоком. Для согласования разных скоростей потоков декодирования, выборки, трансляции в RISC - подобные инструкции, переупорядочивания и потоков в исполнительных устройствах применяют различные очереди инструкций (буферы FIFO), которые есть у каждого из исполнительных устройств.
Необходимо отметить, что в суперскалярных процессорах происходит очень сложное и нетривиальное преобразование последовательного потока команд исходной программы в параллельный поток триад (операция + операнды + назначение результата), параллельно продвигающихся по очередям команд в исполнительные устройства. Процессор ограничен в возможностях такого преобразования, а также в возможностях спекулятивного исполнения (подготовки загрузки альтернативных ветвей ветвления) и прогнозирования ветвлений размером т.н. «окна исполнения», то есть той частью программного кода, который процессор «видит» в процессе выполнения в данном такте. Все это ограничивает возможности распараллеливания потоков команд до величин порядка 6-8 (что тоже в принципе неплохо).
3.5.5 Процессоры с длинным командным словом (VLIW). В процессорах с длинным командным словом (Very Long Instruction Word) используется альтернативный суперскалярной обработке принцип распараллеливания последовательного алгоритма. В основном вся тяжесть планирования загрузки большого числа исполнительных устройств в таком процессоре (а у него блочное операционное устройство) ложится на программиста, или – на оптимизирующий компилятор.
|