Отключение ядер процессора происходит в BIOS, способы различаются в зависимости от модели и производителя. Обычно это установка битов в каком-либо PCI Config Space регистре чипсета.
На этапе запуска компьютера, активно только 0 ядро (0 поток в случае SMT), оно начинает исполнятся с адреса FFFFFFF0, где на этот момент находится образ BIOS (UEFI). Остальные ядра (потоки) находятся в состоянии WFS (Wait For Startup Inter-Processor Interrupt, ожидание внутрипроцессорного прерывания начала работы). В процессе загрузки, происходит настройка механизма многопоточности самой операционной системы, контексты, очереди, таблицы и так далее. В том числе для каждого процессора (потока) создаются Idle циклы, в которых каждый будет крутиться в ожидании новых задач. Как только все настроено, через SIPI (Startup Inter-Processor Interrupt) пробуждаются остальные ядра и им передается адрес этого самого Idle цикла.
А потом операционная система добавляет в очередь задач задачи, требующие выполнения и при очередном периодическом прерывании у ядра происходит смена контекста и начинает выполняться эта задача.. как именно это устроено в Windows и кто решает, какому ядру назначить задачу - не знаю. Где-то в ядре (ntoskrnl.exe)
Про кеш зависит от процессора. Например, в Ryzen кеш общий для процессорного блока из четырех ядер. В модели 1500 4 ядра, отключено по 2 ядра у каждого блока, при этом кеш не урезается, а вот в 1400 ядер тоже 4, но отключена одна из двух сборок целиком, поэтому кеш вдвое меньше