Почему производительность процессора рассчитывается как частота, а не мегабит в секунду? Частоты менее распространены в компьютерной терминологии.
3 ответа
Для надежной работы многие цифровые интегральные схемы, включая ЦП, используют генератор импульсов, называемый тактовым генератором, который генерирует последовательность импульсов. Различные логические элементы и / или, ни, и т.д. В ИС чувствуют свои входы и обновляют свои выходы в соответствии с тем, какую часть последовательности импульсов они видят. Тактовая частота ограничена, потому что логическим элементам требуется время для обновления своего выхода, а их выходным сигналам требуется время для перехода из одной части схемы в другую, прежде чем произойдет следующее обновление. Производители микросхем будут указывать максимальную тактовую частоту, на которой микросхема будет работать надежно. Следовательно, естественно классифицировать скорость логической схемы по ее тактовой частоте.
С другой стороны, количество передаваемых битов в секунду зависит от того, что делает процессор. Если он выполняет NOP, он может вообще не передавать биты. Если он передает биты, скорость часто зависит больше от того, откуда эти биты поступают или куда идут, чем от процессора. Таким образом, бит в секунду не является естественным способом классификации скоростей процессора.
В качестве меры скорости процессора, однако, тактовая частота является лишь частью истории. Некоторые процессоры выполняют за один такт больше, чем другие. Итак, если кто-то хочет знать, сколько операций с плавающей точкой в секунду (FLOPS) может выполнить ЦП, нужно разделить тактовую частоту на количество тактов, необходимых для выполнения некоторой операции с плавающей запятой. Этот вид измерения может быть более значимым, чем необработанная тактовая частота.
Поскольку тактовая частота четко определена, занят ли ЦП выполнением арифметических операций или ленивой передачей данных на периферийное устройство, для инженеров-электриков естественно классифицировать ЦП по их тактовой частоте.
Итак, как быстро процессор перемещает биты?
Чтобы проиллюстрировать сложность определения битов в секунду для ЦП, вот таблица количества тактов, необходимых для завершения передачи данных для некоторых из многих операций передачи данных в почтенном ЦП 8086: Как вы можете видеть, некоторые операции передачи данных в 8086 могут занимать всего 2 такта, а некоторые - более 16 циклов. Следовательно, число бит в секунду не является четко определенным числом даже для этого ограниченного диапазона инструкций процессора.
Нет, частоты очень важны для компьютерных исследований. С точки зрения ЦП, пропускная способность будет просто неадекватным измерением.
Если вы переходите к электронике, и уровень электричества электроники должен быть своего рода механизмом синхронизации.
Скажем, у нас есть 2-битный сумматор:
C 1 0
C 1 1
-----
1 0 1
C is Carry, with initial carry=0,
00+11 produces Resulting Carry = 0,
10+11 produces Resulting Carry = 1; basic maths.
право? Но что такое 0, что такое 1? И точный вопрос - WHEN the electronics decide that there is a 0/1 on the line?
Итак, прежде чем идти дальше, позвольте мне нарисовать схему этого bacis сумматора:
На самом деле есть два вопроса в приведенном выше вопросе. Первый - WHEN
, второй - the decision of data
. Из примера, when
AdderX decides
что на линии Xn или Yn есть 0/1, поскольку они поступили с выхода какой-либо другой схемы. А what is 0, what is 1?
Они просто напряжения! .. Точка зрения ЦП 1,25В - логическая-1, а все, что ниже, - логическая-0. Итак, the decision
1,25В равно логике-1 называется Sampling
. И when
это решение называется synchronisation
.
Отсюда сумматоры должны сэмплировать напряжения в одной из линий x, y и c, чтобы провести их через логику, и определить время. Это потому, что, в основном : the data, actually the voltage can change in time!
:
Подведите 1,25 вольт к линии y1. Это не 1,25В мгновенно. Это градиенты .. Или принять 1,25 вольт до 0, это не 0В мгновенно. Градиентный подъем / спуск измеряется в пикосекундах (10 ^ -12) в некоторых кругооборотах, наносекундах (10 ^ -9) в некоторых. Из-за этого градиента интегральные схемы -> логические вентили -> транзисторы с задержкой.
Вернуться к сумматорам. Представьте, что выборка проводится непрерывно, но вопрос состоит в том, чтобы решить, будет ли это правильный образец или неправильный. Когда эти ворота дают правильный результат? Здесь идет синхронизация. Давая достаточно времени, чтобы пройти, а затем попробовать его результаты. Как это сделать? Clock
! Помните The System Timer
? И этот таймер на материнской плате?
Под этими часами я имею в виду, что все микросхемы в процессоре синхронизируются. Идя дальше, вы могли заметить, что частота системного таймера, скажем, 133-МГц, а речь идет о 2,4-ГГц процессорах. Это связано с тем, что, поскольку ЦП могут работать быстрее, чем МБ, они в основном умножают SysTimer на 15–20, множитель ЦП.
Поскольку процессор полностью синхронизирован с этой частотой таймера, возможно ли вычислить 0 + 1 быстрее, чем эта частота? Нет; это не. Таким образом, это правда, когда мы говорим, a CPU can do ONE job per ONE timer tick
: cylce
.
Представьте себе перемещение 1 байта из памяти в процессор. Это делается несколькими работами. Так делается за несколько тактов. Скажем, это 5 цикла. Сколько операций перемещения можно сделать за 1 секунду? Но здесь начинается убийственная часть: как насчет операции с суммой? Должно быть 2 операнда, они находятся в памяти и должны быть перемещены в ЦП, затем выполнить вычисления, сохранить результат и т.д. Скажите, что операция выполняется 21 циклом. Но я сделал 8-битный за 5 циклов, а 24-битный (8-битный op1, 8-битный op2, 8-битный результат) за 21! Разве это не должно быть 15?
Как насчет загрузки инструкций? Микро-инструкция .. Это выходит за рамки глубже ..
А как насчет реальных операций в разных процессорах с одинаковой тактовой частотой? Например, учитывая те же характеристики, частоту, кэш и т.д., Сколько циклов требуется для выполнения самой сложной операции - деления? Один может делать 5/2 за 10 циклов, другой - за 8. Так что част. достаточно? К сожалению нет. И здесь начинается FLOPS (Floating Point Operations per Second)
.
Итак, подытоживая:
Xbps просто недостаточно, не точно. Это должно быть более конкретным и более точным. Измерение частоты является особенным, но не точным. FLOPS специфичен и точен.
В дополнение к убедительным ответам, предоставленным John1024 и The_aLiEn, я хотел бы указать на более серьезную проблему с использованием mbps. Это бессмысленное измерение в этой ситуации.
Во-первых, пропускная способность зависит от частоты и ширины. Поскольку разные шины в схеме системы имеют разную ширину в битах, измерения странные.
Во-вторых, разные части системы работают на разных частотах, но на одной частоте. Скалер частоты с фазовой автоподстройкой частоты намного легче понять, когда она ... 3,3 ГГц на самом деле 300 МГц х 11.
В-третьих, даже если учесть, что инструкции для фактов занимают разное время, разные инструкции имеют разные объемы ввода и вывода, так что пропускная способность данных будет зависеть от того, что вы пытаетесь сделать, даже если это было при 100% -ном использовании.
В-четвертых, современные процессоры используют конвейерный подход, так что он одновременно обрабатывает несколько команд. Насколько хорошо он может обрабатывать инструкции по конвейерной обработке, зависит от реальных обрабатываемых инструкций.
Частота является ключевым измерением для большинства микросхем, а не для FLOP, MIPS или Мбит / с, просто потому, что тактовая частота является наименьшим общим знаменателем для цепей: она всегда имеет разумное значение.