Чем больше ядер в процессоре,тем сложнее добиться оптимальной совместной их работы. То,что сони пытает опять наступить на теже грабли,похоже никого не удивляет. Так вспомним же что такое
Cell'овкий SPU" и сделаем выводы:
SPU - (
Synergistic Processing Unit) вспомогательное субядро
Cell. В отличие от главного ядра (
PPU -
Power Processor Unit),
SPU сильно упрощен не только в плане того,что является
in-order-процессором (исполнение команд только в порядке их поступления в отличие от x86 процессоров),но и в плане отсутствия модуля предсказания переходов,в следствии чего одновременно может исполняться только один программный поток! Это является пожалуй самой серьёзной проблемой
Cell. Почему? Да пототу,что:
Вспомогательное ядро (SPU) очень бодро «перемалывает» цифры, но лишь до тех пор, пока ему не встретится условный переход. Конвейер обработки команд у Cell очень длинный (21 такт). Поскольку при выборе ошибочного направления декодирования команд его нужно сбрасывать и заполнять заново, все два десятка тактов SPU не будет делать ничего полезного.
"Механизм подсказок" в таком случае сводится лишь к помощи самого компилятора или программиста,который должен сам оставлять в теле программы так называемые "подсказки", указывающие предполагаемое направление будущего перехода.
Именно по этой причине IBM любит демонстрировать выдающиеся результаты Cell на не очень интеллектуальных задачах вроде перемножения матриц, где условных переходов нет, а циклы можно «развернуть». Большое количество проверок и переходов в коде многократно снижают производительность Cell. Справедливости ради, надо сказать, что по сравнению с современными архитектурами Intel и AMD, ядра Xenon тоже не особенно хороши в плане исполнения сложного кода. Но SPU еще хуже.
Вывод: Если Сони тупо увеличит кол-во
SPU без надлежащей их доработки,то получится так же,как с PS3...
