Я из области компьютерных наук и хочу изучить исчисление процессов для использования в асинхронном проектировании схем.
Итак, я смотрю вокруг текущей практики на асинхронных схемах. Есть много статей, в которых говорится, что невозможность увеличить тактовую частоту приводит к архитектуре многоядерного процессора . Однако никто не может сказать, как достигается асинхронная координация между ядрами.
Я хочу, чтобы вы подтвердили / исправили мои следующие предположения о том, как текущий многоядерный процессор обрабатывает асинхронную координацию:
- Каждое ядро имеет отдельные тактовые сигналы, которые не должны быть в фазе друг с другом. Иначе проблема распределения тактового сигнала не была бы решена, не так ли?
- Ядра координируются только на уровне программирования. То есть выполняется проверка и установка некоторой памяти (ОЗУ или регистр). А не что-то низкоуровневое, как протокол рукопожатия с использованием схемы рандеву .
integrated-circuit
cpu
Апиват Чантавибул
источник
источник
Ответы:
Вы смешиваете две независимые (ортогональные) идеи в теории цифровых схем: асинхронные схемы и многоядерные процессоры.
Асинхронные схемы: схемы, которые имеют более одного тактового генератора, и тактовые импульсы асинхронны (то есть имеют непостоянное и непредсказуемое фазовое отношение).
Некоторые схемы могут использовать два такта (например), но один - это просто деление на 2 от другого. Эти схемы не являются асинхронными, поскольку между двумя тактовыми генераторами существует известная фазовая зависимость, хотя частоты тактовых импульсов различны.
У вас может быть одноядерный ЦП с несколькими асинхронными часами и многоядерный ЦП со всеми его ядрами, работающими на одинаковых тактовых частотах (последний - просто воображаемый ЦП - все настоящие многоядерные ЦП имеют много тактовых импульсов, которые состоят из нескольких взаимно наборы асинхронных часов).
Асинхронные схемы - главная тема в цифровом дизайне. Приведенное выше объяснение является основным.
Многоядерные процессоры: несколько параллельно подключенных микропроцессоров (ядер), в которых используется сложное аппаратное и программное обеспечение для достижения высокой производительности.
Обычная практика - сделать ядра как можно более независимыми с точки зрения часов / мощности / исполнения / и т. Д. Это позволяет динамически (во время выполнения) регулировать активность процессоров (т.е. потребляемую мощность) в соответствии с фактическими потребностями системы.
У меня сложилось впечатление, что вы ищете объяснение многоядерных процессоров , а не асинхронных схем.
Эта тема намного, намного больше, чем что-либо, что можно вставить в ответ.
Ответы на ваши вопросы, хотя:
Надеюсь это поможет.
источник