Процессоры и частота их ядер

Насколько получилось нагуглить и полистав справочники понял следующее…
У процессора есть ядро(кристал) и электронная обвязка, которые с определенной частотой производят вычисления.
Т. е. процессор конца 90-х с частотой ядра 500 Мега Герц (МГц) производит на максимальной мощности определенное количество тактов в секунду, а именно 500 миллионов. Один такт - одна операция.
Двух-ядерный процессор 2000-х годов Pentium 4 с частотой 3 ГГц имеет на борту два ядра по 1,5 ГГц. Даже одно ядро быстрее своего младшего брата. Это хорошо.
Нетбучный четырех-ядерный процессор 2010-го года с суммарной тактовой частотой 1,86 МГц имеет на борту четыре ядра по 465 МГц, печалька :tired_face: уступаем младшему брату по производительности ибо нагрузкой управляет ОС и её драйвера, не юзер. Соответственно загрузить все ядра для одного вычисления не можем, точнее можем но не каждый программист при написании софта уделяет этому внимание, я до сейчас вообще не обращал на это внимания полагаясь на ОС.
Из этого вывод:
Pentium 4 по производительности одного ядра не особо то и уступает своим старшим братьям i3 и i5.

Поправте если ошибочны выводы…

Всё неправильно.
Такты производит генератор тактов он же кварц. Далее с него импульсы поступают на умножитель частоты который преобразует 14 МГц до 500 МГц и более. Умножитель частоты в терминах интела называется синтезатор частот.
В ядре находиться секвестр частоты - немецкий термин который можно перевести как делитель. Но мы будем его называть дирижером. Дирижор по поочерёдно дёргает разные исполнительные блоки ядра:

  1. Кэш-команд загрузить команду в АЛУ.
  2. Кэш-регистров загрузить регистр А в АЛУ.
  3. Кэш-регистров загрузить регистр Б в АЛУ.
  4. АЛУ - вычислить результат.
  5. АЛУ - выгрузить результат в Кэш-регистров.
    Вот и выходит, что одна команда выполняется 5 тактов. Как известно умножение состоит из операций сложения. Что-бы умножить 16 битное число надо 16 раз сложить. Вот получается для разных команд разное число тактов. Если для сложения было условные 5 тактов, то для умножения 20.

Двух-ядерный процессор 2000-х годов Pentium 4 с частотой 3 ГГц имеет на борту два ядра по 1,5 ГГц.

Нет ядра работают в параллель независимо друг от друга. У них у обоих по 3 ГГц. У каждого ядра свой кэш и свои регистры и свои АЛУ.
До тех пор пока данные не нужно выгрузить из кэша в ОЗУ или наоборот подгрузить. Тогда ядро выставляет сигнал хочу занять шину. Арбитр шины проверяет флаги от всех ядер и если кто-то запросил шину, то в ответ кидает сигнал шина свободна или шина занята.
В целом при таком подходе. 90% времени работа идет с кэшем и 10% ядра дерутся за шину.

Нетбучный четырех-ядерный процессор 2010-го года с суммарной тактовой частотой 1,86 МГц имеет на борту четыре ядра по 465 МГц, печалька :tired_face:

Частота там 1,86 МГц. Проблема в другом, разработчики Интела накосячили с проектированием арбитра шины. Они отдает шину для ГПУ только 10% времени. А так как современные браузеры постоянно загружают данные из ОЗУ в ГПУ то этих 10% не хватает. Если взять любой АРМ, то там 50% отводиться для ГПУ.

В неттопах ядра попросту ждет пока они сами освободит шину чтобы засунуть данные в ГПУ. При этом судя по всему вместо арбитра с приоритетами они тупо поставили счетчик с таймером для разделения шины.

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

Да тут важно писать распаралелиные программы.

Pentium 4 по производительности одного ядра не особо то и уступает своим старшим братьям i3 и i5.

Есть Pentium 4, а есть Pentium. Сейчас Pentium это i3 c одним рабочим ядром, а второе не прошло проверки и было залочено. Плюс кэш урезан.

Поправте если ошибочны выводы… Двух-ядерный процессор 2000-х годов Pentium 4 с частотой 3 ГГц

С 2000-х годов ядра сильно оптимизировали по сравнению с ядрами 2020-годов. К примеру JMP с 14 до 6 тактов. Практически все команды были ускорены более чем в 2 раза.
ADC с 0,5 такта до 0,25 такта. - правда это такты не до результата, а до освобождения АЛУ.


Лучше читать у Агнера Фога, а то оффициалы давно выкинула из таблиц Pentium4

Вот тест который наиболее приближен к реальности.

Наименование на 1 МГц на 1 ядро
Pentium 4 1.98 1.98
Atom N2800 2.28 2.28
Core i3-2350M 4.6 2.30
Core i5-3380M 23.13 5.78
Core i7-4750HQ 43.94 5.49
Core i5-8500 57.20 9.53
1 лайк

Последнюю ссылку вообще можно расценить как монополию. производителя.
Ну и вот что получается?
Приобрел i7, а производительность его ядер пшик по факту…

P. S.
Получается даже древний AMD K6, при разгоне до максимума который позволяла плата (максимальный разгон до 300 МГц), не очень то и отстает по соотношению к одному ядру i7.
Парадокс какой-то…
Т. е. i7 это грубо говоря четыре Целерона по 500 МГц, так выходит?

Так там же еще отличия в архитектуре, новых инструкциях типа SSE, AVX и т.д.

В итоге всё сложно, это как выбирать фотоаппарат по мегапикселям и видеокарту по объему памяти.
Надо смотреть тесты в реальном ПО.

Не совсем фотоаппарат и не в пикселях дело.
Меня эта тенденция не радует. Пиихают в процессор графический обработчик, северный мост…
А почему, удешевить материнскую плату и в очередной раз вынудить потребителя приобрести абсолютно не нужный ему товар.
Накрылся мост - меняй все комплектом.
Хотя мосты которые на платах меняются даже в любительской мастерской.
Так вскоре придем к:
купил компьютер, не вскрываемый куб или кругляшок;
накрылось что в кругляшку, покупай новый кругляшок…
Вместо один доллар заплати 800. Кому такое по душе?
И при этом всем, производителность ядра на уровне продаж в 90-е годы.

На последней ссылке этого не видно так как там мобильные процессоры, кроме Pentium 4 который в десктопной версии. Если брать десктопные процессоры, то частота ядра выросла с 3 ГГц до 5 ГГц.

Ваш код будет 1,6 раза за счёт частоты быстрее работать

У Intel’а монополия на большие кэши. Поэтому он всегда был быстрее конкурентов.
У i7 он больше в 1,25 чем у i5 у 1,5 в 1,25 раза больше чем у i3. У i3 1,25 кэш больше чем у Pentium+Celeron
Ваш AMD K6 обгоняет P4 и где-то на уровне i3, но не i7 который 1,5 быстрее.

Т. е. i7 это грубо говоря четыре Целерона по 500 МГц, так выходит?

Приведена удельная частота на 1 Мгц. Вы не указали поколение

Наименование на 1 МГц на 1 ядро
Celeron P6 2.28 2.28
AMD K6 2.45 2.45
i7 860 19.92 2.49
i7-2760QM 35.480 4.44
i7-4750HQ 43.94 5.49
i7 8 поколения в 2 раза быстрее 4 ~11.00

Целерон_P6 / i7-4Gen
Удельная производительность
= 5,49/2,28=2,4
Частота выросла
2000/1000=2 раза
Частота разогнанная
3200/1200=2.6 раза.
Количество ядер
4/1=4 раза
Количество потоков на ядро
2/1= 2 раза.

Целерона по 500 МГц, то производительность выросла для однопоточного в 4х2,4=9,6 почти в 10 раз, а не в 4.
А для 8 поколения еще раза в 2.

И при этом всем, производителность ядра на уровне продаж в 90-е годы.

Так все технологии были разработаны на векторном процессоре Cray-2 в 1985 году. С тех пор только нанометры и новые материалы.
Единственно что из супер-пупер добавилось это опережающее исполнение команд в Пентиуме P5. В 1993 году. А спустя 30 лет при помощи нейронных сетей смогли увеличить качество предсказания в 2 раза. Не сомневаюсь, что смогут поднять ещё раза в 2.

купил компьютер, не вскрываемый куб или кругляшок;
накрылось что в кругляшку, покупай новый кругляшок…

Нанометры скоро кончатся как раз перейдут на такую технологию. Иначе компы перестанут покупать.

Сообщение было перенесено в новую тему: Оптимизации высокоуровневого кода

А какой софт этот не каждый программист пишет? Если стандартный веб, мобилки, форма для ввода данных в БД, то может и не надо этому внимание уделять.
А если это какие-то долгие вычисления, и важна скорость, то обычно уделяют этому внимание.

Так нет же. Если запустить даже однопоточную программу (ессно нагружающую процессор, а не просто форму показывающую) на Пентиуме 4 и последнем i7, то будет большая разница.

Чот сложно такие тесты нормальные найти, вот например результат какого-то бенчмарка

и другого для Core 2 Quad

Тенденция зависит от категории потребителя.
Всякие “персональные предложения” легко дают возможность продавать богатым дороже, как завещал покойничек, “от каждого по возможностям” :smiley:
“Невскрываемые кубики”, например, с распаянными оперативками, кстати дешевле.
Рыночные потребители ушли в планшеты/смартфоны. У них просто не востребованы контакты, треб. физ. трудоемких действий и очистки от пыли. Устаревшие технологии мало кому нужны, неэффективны и поддерживать их дорого.
1,5 гб фильм грузит семилетний ноут на 10%, меньше чем на половину ядра. Лиса спокойно на одном ядре вращается. Помню пень-4, который у родителей еще работал, когда был этот ноут.

Под окушками, кстати, можно легко повесить программу или сразу несколько на одно ядро. Разница будет сразу очевидна по сравнению со старым железом. Ну или потому на каких настройках могут идти разные игры.
Тут дело и в том, что старые процессоры физически на слабое окружение посажены - шины там медленные, как и оператива. И если не ускорять процессор, слабым местом окажется он.

Так это выросла не частота ядра, а выросла суммарная частота ядер.
В этом и весь подвох производителя. Преподносится потребителю частичная информация.
Из них одно ядро будет обрабатывать аппаратный интерфейс, второе захватис ОС под себя. Третье отведено под обработку графики. А то что осталось не занятым отдадим юзерскому ПО.

Это почему? :thinking:

Ещё раз нет никакой суммарной частоты. Есть суммарная производительность и пропускная способность системной шины.
У каждого ядра выросла его собственная частота с 3 ГГц до 5 ГГц. Соответственно у P4 и i7 8 поколения.

А пропуская способность системной шины которая выросла c 4.2 ГБайт/с до 50 ГБайт/с - для последних процессоров.

Суммарная производительность в MIPS выросла 146 раза за счёт ядер, частоты и оптимизации ядра. И роста размера регистров.

Из них одно ядро будет обрабатывать аппаратный интерфейс

Откройте монитор ресурсов и посмотрите. Время на обработку прерываний потраченным ведущим ядрами исчисляется в 100 мкс. А остальными ядрами в единицы мкс.
И только на высоко нагруженном сервере оно может дойти, до 10 мс на ведущем ядре.

второе захватис ОС под себя.

Процесс system у меня потребляет 0,78% или 7,8 мс на 8 поточном процессоре. - это много. На работе раз в 10 меньше.

Третье отведено под обработку графики.

Графика давно считается на ГПУ.

Так что у имеем у 8 поточного ядра(4 ядерного) по 5 ГГц умножить на коэффициент потерь (1-0,0078) .

Похоже здесь я заблуждался…
Все же указана частота одного ядра, а не суммарная.
Протестил старенький Lenovo:

Результат

cpu-2


Только пока что не ясно что такое Logical CPUs ?

Сводка

Которые в свою очередь создают четыре потока вместо двух.

Потоки в диспетчере задач

d

Действительно, упустил эту технологию из вида…