Может быть, это глупый вопрос, но я стараюсь, чтобы получить лучшее понимание аппаратных внутренней работы ...как основные инструкции выполняются параллельно
если процессор имеет несколько потоков и у нас есть группа набора команд на назначьте его. как я читал, как он работает с http://www.lighterra.com/papers/basicinstructionscheduling/. он говорит, что компилятор создаст дерево зависимостей инструкций, а инструкции будут выполняться параллельно. Как cpu будет знать, что зависимая инструкция закончена или нет. это увеличит сложность.
я писать код на переменном токе, чтобы увидеть эту
int main()
{
getchar();
putchar('a');
return 0;
}
я думаю, что инструкции GetChar() и putchar() являются независимыми и, когда я не даю ввод с клавиатуры, чем на другие инструкции резьбы putchar (» a '), и он должен показывать вывод перед запросом ввода. но он ждет кулак для ввода все время.
благодарит заранее.
Относится к инструкциям процессора, а не к HLL. Посмотрите вокруг поиска конвейерной обработки инструкций. –
Процессор не запускает C-код и не делает его многопоточным. Как сказал Frankie_C, конвейерная обработка инструкций - совершенно другая вещь. –
Как процессор знает, где поставить пузырь в конвейере, если две инструкции зависят. Инструкции одной и той же программы могут выполняться в разных ядрах процессора. –