Является ли единственная цель транзисторов в ЦП, которые действуют как переключатели, которые определяют его набор команд? И если так, то почему увеличение количества транзисторов увеличивает его скорость?
cpu
computer-architecture
Tyler
источник
источник
Ответы:
С верхней части моей головы:
Больше кеша , который быстрее чем RAM
Больше SIMD-инструкций , которые обрабатываются быстрее, чем инструкции с одним данными
Больше ядер , так что вы можете сделать две или более вещи одновременно
Более функциональные блоки, как встроенные в FPU с, и несколько ALU s
Трубопроводы , поэтому каждое ядро может делать больше вещей одновременно
Лучшая логика обработки, как и более сложная логика предсказания ветвлений
источник
Если вам интересно подобные вещи, я настоятельно рекомендую книгу «Элементы вычислений » Ноама Нисана и Шимона Шоккена (по крайней мере, в первой половине). Пройдя через него, вы сможете подробно ответить на свой вопрос с полным пониманием участвующих частей.
На сопутствующем веб-сайте есть несколько примеров глав и заметок. Это очень доступная книга. Я прошел это самостоятельно без проблем, а затем взял новый класс в моем университете, который использовал его в качестве основного текста.
источник
Простой ответ заключается в том, что большее количество транзисторов не позволяет остальным работать быстрее , но вместо того, чтобы делать что-то одно за период времени, мы можем теперь сделать два (с некоторыми ограничениями).
источник
Кен уже суммировал некоторые причины в своем ответе . Чтобы расширить это далее
Очевидно, для больших кэшей требуется больше транзисторов. Но с большим количеством транзисторов у нас также есть выбор использования более быстрых кэшей . Кэши CPU - это просто SRAM, который обычно состоит из 6 транзисторов (AKA 6T SRAM). Однако при наличии достаточного количества транзисторов, возможно, стоит использовать более быстрые, но более крупные ячейки SRAM, сделанные из более чем 6 транзисторов (например, 8T, 10T SRAM).
Не только SIMD, но и любой тип ускоряющих инструкций. Например, современные архитектуры часто имеют блок AES для более быстрого шифрования / дешифрования, FMA для более качественных математических вычислений (особенно цифровой обработки сигналов) или виртуализацию для более быстрых виртуальных машин. Поддержка большего количества инструкций означает, что для их декодирования и выполнения требуется больше ресурсов
Это вполне понятно
В прошлом не хватало площади для FPU, поэтому люди должны покупать отдельную, если они предъявляют высокие требования к арифметике с плавающей точкой. Благодаря значительно большему количеству транзисторов можно встроить FPU, что значительно ускоряет вычисления с плавающей запятой.
Кроме того, современные процессоры являются суперскалярными и будут пытаться делать несколько вещей одновременно , находя независимые фрагменты данных и вычисляя их раньше, даже если поток инструкций является линейным и последовательным. Чем больше вещей они могут делать параллельно, тем быстрее они будут. Для этого у ЦПУ может быть несколько ALU, а у ALU может быть несколько исполнительных блоков. Например, если процессор имеет 5 сумматоров по сравнению с 4 в предыдущем поколении, то он работает на 25% быстрее в самой оптимистичной ситуации без каких-либо изменений тактовой частоты. Более сложные процессоры даже используют неупорядоченное выполнение (что имеет место для большинства современных высокопроизводительных процессоров)
Операции, как правило, могут быть выполнены различными способами. Если у вас больше транзисторов, у вас будет больше ресурсов для использования более быстрой техники. Несколько простых примеров:
Сдвиг битов:
Простой рычаг переключения осуществляется последовательно подключения триггеров вместе.
Для этого нужен всего один триггер на бит, а значит, очень компактный. Но для сдвига влево или вправо на один бит нужны одни часы. Вот почему микроконтроллеры и небольшие встроенные процессоры имеют только инструкции для смещения на единицу. Видеть
Когда у вас есть больше транзисторов, вы можете перейти на бочкообразную . Теперь процессор может сдвигать биты за один такт стоимостью сотен или тысяч транзисторов.
Дополнение:
То же самое относится и к другим единицам, таким как множители, делители, планировщики ... Например, мы можем очень быстро выполнить умножение за один такт, используя комбинационную логику . Вы можете увидеть несколько простых примеров в вопросе 3-битных множителей - как они работают? , Но необходимые транзисторы вырастут до квадрата ширины ввода, поэтому небольшие процессоры с множителем вместо этого используют последовательную логику, чтобы сэкономить много места для множителя:
Если у вас есть огромный пул транзисторов, вы даже можете использовать комбинационную логику для создания FMA, который требует гораздо больше ресурсов, чем множитель
источник
Увеличение количества транзисторов обычно выполняется путем уменьшения их размеров, что делает их ближе друг к другу, что сокращает время распространения сигнала.
источник