Когда-нибудь, чтобы написать ассемблер x86, например, у вас были бы инструкции, указывающие: "Загрузите регистр EDX со значением 5", "Increment EDX" и т.д.
С современными процессорами, имеющими 4 ядра (или даже больше), на уровне машинного кода это просто похоже на 4 отдельных процессора (т.е. есть только 4 разных "EDX" регистра)? Если это так, когда вы говорите "увеличивайте регистр EDX", что определяет, какой регистр ЦП EDX увеличивается? Есть ли в x86-ассемблере концепция "CPU context" или "thread"?
Как работает связь/синхронизация между ядрами?
Если вы писали операционную систему, какой механизм подвергается через аппаратное обеспечение, чтобы вы могли планировать выполнение на разных ядрах? Это какая-то специальная привилегированная инструкция (ы)?
Если вы пишете оптимизированную компилятор/байт-код VM для многоядерного процессора, что вам нужно знать конкретно о, скажем, x86, чтобы заставить его генерировать код, который эффективно работает во всех ядрах?
Какие изменения были внесены в машинный код x86 для поддержки многоядерных функций?