С точки зрения команд, обрабатываемых процессором, что определяет тактовая частота?

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

Пример: mov R0, #1, Предполагая, что эта инструкция заняла один тактовый цикл, потребовалось бы одно искажение кристалла или она не работает так?

2 ответа

Решение

Тактовая частота - очень ОЧЕНЬ плохая оценка скорости процессора. В старые (до 2000-х годов) тактовые частоты были довольно хорошей оценкой скорости. Более высокая тактовая частота всегда означала лучшую производительность. Однако в наши дни это не так. У вас может быть процессор с тактовой частотой 4 ГГц, для выполнения которого требуется 20 тактов, и он будет значительно медленнее процессора с тактовой частотой 1 ГГц, который выполняет все за один такт. Эта инструкция: соотношение часов и циклов стало еще более сложным за последние несколько лет. Теперь необходимо рассмотреть кеши L1 и L2. Если есть ошибка в кэше, ожидайте дополнительный тактовый цикл или два... обычно. Кроме того, существуют механизмы выполнения и оптимизации вне очереди, которые могут привести к тому, что команда деления может занять от менее 1(своего рода) до 10 тактов. И там также есть гиперпоточность, что означает, что, когда другой поток использует компонент, другой поток должен будет ждать дополнительные тактовые циклы... Я мог бы продолжать и продолжать с этим.

По сути, нет. Если вы не работаете с простыми встроенными (т.е. не ARM или x86) архитектурами, тактовая частота по отношению к командам в секунду не имеет большого отношения. Конечно, два эквивалентных процессора, один из которых использует более высокую тактовую частоту, теоретически должен давать более высокие инструкции / секунду, но никто не догадывается, сколько еще инструкций в секунду.

Это не так, это во многом зависит от конкретной конструкции процессора. Грубо говоря, в конце 70-х и 80-х микропроцессорам требовалось несколько тактов для выполнения инструкции. У процессоров RISC был свой расцвет в 90-х годах, и они действительно сосредоточились на использовании одного цикла для инструкции, упрощая набор команд там, где это необходимо. В значительной степени вытеснены проекторами процессоров 2000-х годов, которые имеют несколько ядер выполнения, что позволяет удалять более одной инструкции за такт.

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

Другие вопросы по тегам