Как увеличение количества транзисторов в чипе увеличивает его скорость?


8

Является ли единственная цель транзисторов в ЦП, которые действуют как переключатели, которые определяют его набор команд? И если так, то почему увеличение количества транзисторов увеличивает его скорость?


На этот вопрос более подробно дан ответ на вопрос об обмене электротехническими стеками: electronics.stackexchange.com/questions/5592/… (неясно, уместны ли здесь такие подробности.)
Пол А. Клейтон,

Ответы:


9

С верхней части моей головы:

  • Больше кеша , который быстрее чем RAM

  • Больше SIMD-инструкций , которые обрабатываются быстрее, чем инструкции с одним данными

  • Больше ядер , так что вы можете сделать две или более вещи одновременно

  • Более функциональные блоки, как встроенные в FPU с, и несколько ALU s

  • Трубопроводы , поэтому каждое ядро ​​может делать больше вещей одновременно

  • Лучшая логика обработки, как и более сложная логика предсказания ветвлений



2

Если вам интересно подобные вещи, я настоятельно рекомендую книгу «Элементы вычислений » Ноама Нисана и Шимона Шоккена (по крайней мере, в первой половине). Пройдя через него, вы сможете подробно ответить на свой вопрос с полным пониманием участвующих частей.

На сопутствующем веб-сайте есть несколько примеров глав и заметок. Это очень доступная книга. Я прошел это самостоятельно без проблем, а затем взял новый класс в моем университете, который использовал его в качестве основного текста.


2

Простой ответ заключается в том, что большее количество транзисторов не позволяет остальным работать быстрее , но вместо того, чтобы делать что-то одно за период времени, мы можем теперь сделать два (с некоторыми ограничениями).


2

Кен уже суммировал некоторые причины в своем ответе . Чтобы расширить это далее

  • Больше кеша , который быстрее чем RAM

Очевидно, для больших кэшей требуется больше транзисторов. Но с большим количеством транзисторов у нас также есть выбор использования более быстрых кэшей . Кэши CPU - это просто SRAM, который обычно состоит из 6 транзисторов (AKA 6T SRAM). Однако при наличии достаточного количества транзисторов, возможно, стоит использовать более быстрые, но более крупные ячейки SRAM, сделанные из более чем 6 транзисторов (например, 8T, 10T SRAM).

  • Больше SIMD-инструкций , которые обрабатываются быстрее, чем инструкции с одним данными

Не только SIMD, но и любой тип ускоряющих инструкций. Например, современные архитектуры часто имеют блок AES для более быстрого шифрования / дешифрования, FMA для более качественных математических вычислений (особенно цифровой обработки сигналов) или виртуализацию для более быстрых виртуальных машин. Поддержка большего количества инструкций означает, что для их декодирования и выполнения требуется больше ресурсов

  • Больше ядер , так что вы можете сделать две или более вещи одновременно
  • Трубопроводы , поэтому каждое ядро ​​может делать больше вещей одновременно

Это вполне понятно

  • Более функциональные блоки, как встроенные в FPU с, и несколько ALU s

В прошлом не хватало площади для FPU, поэтому люди должны покупать отдельную, если они предъявляют высокие требования к арифметике с плавающей точкой. Благодаря значительно большему количеству транзисторов можно встроить FPU, что значительно ускоряет вычисления с плавающей запятой.

Кроме того, современные процессоры являются суперскалярными и будут пытаться делать несколько вещей одновременно , находя независимые фрагменты данных и вычисляя их раньше, даже если поток инструкций является линейным и последовательным. Чем больше вещей они могут делать параллельно, тем быстрее они будут. Для этого у ЦПУ может быть несколько ALU, а у ALU может быть несколько исполнительных блоков. Например, если процессор имеет 5 сумматоров по сравнению с 4 в предыдущем поколении, то он работает на 25% быстрее в самой оптимистичной ситуации без каких-либо изменений тактовой частоты. Более сложные процессоры даже используют неупорядоченное выполнение (что имеет место для большинства современных высокопроизводительных процессоров)

Операции, как правило, могут быть выполнены различными способами. Если у вас больше транзисторов, у вас будет больше ресурсов для использования более быстрой техники. Несколько простых примеров:

  • Сдвиг битов:

  • Дополнение:

    • Простой сумматор также создается путем последовательного соединения полных сумматоров . Таким образом, N-разрядному сумматору нужно N часов для завершения своей работы, что, конечно, не то, что люди ожидают от процессора 4-битный сумматор
    • С большим количеством транзисторов мы можем ускорить добавление по заранее вычисляя несет с собой переносным опережающим просмотром или переноса сохранить сумматор. Полные сумматоры все еще используются, но для блока переноса и предварительного расчета требуется намного больше места

То же самое относится и к другим единицам, таким как множители, делители, планировщики ... Например, мы можем очень быстро выполнить умножение за один такт, используя комбинационную логику . Вы можете увидеть несколько простых примеров в вопросе 3-битных множителей - как они работают? , Но необходимые транзисторы вырастут до квадрата ширины ввода, поэтому небольшие процессоры с множителем вместо этого используют последовательную логику, чтобы сэкономить много места для множителя:

В старых архитектурах множителей использовались сдвиг и накопитель для суммирования каждого частичного продукта, часто одного частичного продукта за цикл, компенсируя скорость для площади матрицы. Современные архитектуры умножителей используют (модифицированный) алгоритм Боуг-Вули, деревья Уоллеса или множители Дадды для сложения частичных произведений в одном цикле. Производительность реализации дерева Уолласа иногда улучшается за счет модифицированного Booth-кодирования одного из двух мультипликатов, что уменьшает количество частичных произведений, которые должны быть суммированы

https://en.wikipedia.org/wiki/Binary_multiplier#Implementations

Если у вас есть огромный пул транзисторов, вы даже можете использовать комбинационную логику для создания FMA, который требует гораздо больше ресурсов, чем множитель

Современные компьютеры могут содержать выделенный MAC, состоящий из умножителя, реализованного в комбинационной логике, за которым следуют сумматор и регистр аккумулятора, в котором хранится результат. Выходной регистр поступает обратно на один вход сумматора, так что на каждом тактовом цикле выходной сигнал умножителя добавляется в регистр. Комбинационные множители требуют большого количества логики, но могут вычислять продукт намного быстрее, чем метод смещения и добавления, типичный для более ранних компьютеров.

Умножить-накопить операцию


1

Увеличение количества транзисторов обычно выполняется путем уменьшения их размеров, что делает их ближе друг к другу, что сокращает время распространения сигнала.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.