Преимущество in-order-процессора очевидно – это простота. Но можно ли как-то справиться с его недостатками? Частично их устраняют с помощью компиляторов, располагающих команды в оптимальном порядке, но есть и более продуктивный метод: многопоточность ядра. Если ядро процессора будет исполнять два потока команд одновременно, то, споткнувшись об обращение к системной памяти в одном потоке, оно может продолжить исполнять второй и таким образом минимизировать бесполезные простои. Подобную систему внедряли и в Pentium 4 (hyper-threading), но некоторые «особенности» архитектуры этого out-of-order-процессора привели к тому, что HT там не впечатляет – от 0 до 20-30% в зависимости от версии ядра (на старых ядрах наблюдался даже «отрицательный прирост»). В Xenon же многопоточность – вполне действенное средство поднятия производительности. Это на PC можно написать традиционный чисто однопоточный код, который сможет эффективно задействовать ресурсы одноядерного процессора. На Xbox 360 такой код даже не сможет эффективно использовать всего одно ядро – таким образом, Xenon вынуждает разработчиков к многопоточности и параллелизму. Из этого, кстати, следует, что игра, изначально разработанная на Xbox 360, может с минимумом доработок быть портирована на однопроцессорный PC. Высокопроизводительной процессор «персоналки» способен последовательно выполнить в течение кадра те задачи, которые три ядра Xenon исполняли бы параллельно. А вот традиционные «однопоточные» PC-игры при переносе на Xbox 360 однозначно нуждаются в серьезной доработке и «распараллеливании», иначе процессор приставки может и «не потянуть». Что характерно, примерно так же соотносятся Xbox 360 и PS3 – c консоли Sony на консоль Microsoft портировать движки намного легче, чем в обратном направлении. Xenon может выполнять код для Cell без особых сложностей – достаточно лишь относительно небольших правок и перекомпиляции, а вот чтобы заставить Cell выполнять работу Xenon, нужно здорово «попотеть».