Intel запатентовала технологию под названием "Software Defined Supercore" (SDC), которая позволяет программному обеспечению объединять возможности нескольких ядер для создания виртуального сверхширокого "суперядра", способного улучшить однопоточную производительность при наличии достаточного объема параллельной работы. Если технология будет работать как задумано, будущие процессоры Intel смогут обеспечить более высокую однопоточную производительность в определенных приложениях, использующих SDC.
На данный момент это лишь патент, который может или не может стать реальностью. Технология Software Defined Supercore (SDC) от Intel объединяет два или более физических ядра процессора для совместной работы в качестве единого высокопроизводительного виртуального ядра путем разделения инструкций одного потока на отдельные блоки и их параллельного выполнения.
Каждое ядро выполняет отдельную часть программы, а специализированные инструкции синхронизации и передачи данных обеспечивают сохранение исходного порядка программы, максимизируя количество инструкций за цикл (IPC) с минимальными накладными расходами. Этот подход направлен на повышение однопоточной производительности без увеличения тактовой частоты или создания широких монолитных ядер, которые могут увеличить энергопотребление и/или бюджет транзисторов. Современные ядра x86 могут декодировать 4–6 инструкций и выполнять 8–9 микроопераций за цикл после декодирования инструкций в микрооперации, что обеспечивает пиковую производительность IPC для таких процессоров.
Для сравнения, высокопроизводительные ядра Apple на базе Arm (например, Firestorm, Avalanche, Everest) могут декодировать до 8 инструкций за цикл и выполнять более 10 инструкций за цикл в идеальных условиях. Поэтому процессоры Apple обычно обеспечивают значительно более высокую однопоточную производительность и меньшее энергопотребление по сравнению с аналогами на Arm. Хотя технически возможно создать 8-путевое ядро x86 (т.е. суперскалярный процессор x86, способный декодировать, выдавать и завершать до 8 инструкций за цикл), на практике это не реализовано из-за узких мест во фронт-энде и уменьшающихся приростов производительности при значительных затратах на мощность и площадь.
Фактически, даже современные процессоры x86 обычно достигают устойчивого IPC на уровне 2–3–4 на общих рабочих нагрузках в зависимости от программного обеспечения. Поэтому вместо создания 8-путевого ядра x86 Intel SDC предлагает объединять два или более 4-путевых блока для совместной работы в качестве одного большого ядра в случаях, когда это имеет смысл. На аппаратном уровне каждое ядро в системе с поддержкой SDC включает небольшой выделенный аппаратный модуль, который управляет синхронизацией, передачей регистров и порядком операций с памятью между парными ядрами.
Эти модули используют зарезервированную область памяти — так называемое адресное пространство "червоточины" — для координации данных live-in/live-out и операций синхронизации, обеспечивая завершение инструкций от разных ядер в правильном порядке программы. Конструкция поддерживает как упорядоченные, так и неупорядоченные ядра, требуя минимальных изменений в существующем исполнительном движке, что приводит к компактному дизайну с точки зрения площади кристалла. На программном уровне система использует JIT-компилятор, статический компилятор или бинарную инструментацию для разделения однопоточной программы на сегменты кода и распределения различных блоков по разным ядрам.
Она внедряет специальные инструкции для управления потоком, передачи регистров и синхронизации, позволяя аппаратному обеспечению сохранять целостность выполнения. Поддержка операционной системы имеет решающее значение, поскольку ОС динамически решает, когда переключать поток в режим суперядра или из него, в зависимости от условий выполнения, чтобы сбалансировать производительность и доступность ядер. В патенте Intel не указаны точные числовые оценки прироста производительности, но подразумевается, что в определенных сценариях производительность двух "узких" ядер может приближаться к производительности одного "широкого" ядра.
Оригинал
Уникальность