Теперь, почему операции с плавающей запятой рассматриваются для производительности компьютера. Как насчет целочисленных операций?
Операции с плавающей запятой - это лишь одна из нескольких метрик, которые годами использовались для оценки производительности компьютера. Измерение операций FP считается более применимым для некоторых реальных приложений (таких как моделирование погоды), чем целочисленные операции. Если бы вы оценивали компьютеры для приложения базы данных, вы, вероятно, проигнорировали бы спецификации FLOPS и сосредоточились бы на IPS (количество команд в секунду) и производительности ввода-вывода.
Теперь, что именно означает операция в FLOP? Означает ли это математическую операцию, такую как MUL, ADD, DIV и т. Д.?
«Операция» - это выполнение «инструкции», которая представляет собой машинный код (то есть двоичное значение) или одно вычисление с помощью FPU, модуля с плавающей запятой. (Более старый) FPU обычно работает асинхронно с CPU и ALU, чтобы не препятствовать выполнению программы, которая не зависит от результата FP.
Обратите внимание, что компьютер (около 1980 года), который не имел FPU, можно было обновить с помощью периферийного устройства FPU. Библиотека программных подпрограмм FP, в которой реализованы базовые операции FP (сложение, вычитание, умножение, деление, квадратный корень и т. Д.), Будет заменена библиотекой, которая вызывает инструкции ввода / вывода для доступа к периферии FPU. Прерывание от FPU сообщит ЦПУ о завершении операции FP.
Ранние ПК были похожей конструкции. В оригинальном IBM PC использовался микропроцессор Intel 8088, который не имел возможности HW FP. Но можно установить математический сопроцессор 8087, чтобы инструкции FP могли выполняться аппаратно, а не перенаправляться на программные процедуры. В конце концов Intel интегрировала математический сопроцессор в пакет CPU для i486
В этом случае, что будет инструкция?
«Инструкция» не должна быть неоднозначной сущностью. Это один машинный код или один мнемомик процессора.
тогда одна инструкция может привести ко многим внутренним операциям. Это будет микрооперация или мопс?
Видимо, вы имеете в виду микропрограммирование.
(Раньше была компьютерная компания, которая подняла микропрограммирование на одну итерацию ниже: до уровня нано программирования. Продукты были предназначены для эмуляции ЦП.)
Микропрограммирование не имеет никакого отношения к производительности прикладных программ. То есть вы, как правило, не можете переписать / улучшить микропрограммирование, как на нанопрограммном процессоре.
Означает ли это, что процессор может выполнять, например, ADDPD и ADDSD (всего = 2 инструкции) за один цикл?
Вроде, как бы, что-то вроде. Выполнение более одной инструкции за такт требует трубопровода из «исполнительных устройств». Подумайте о (сборке) производственной линии. На каждой станции выполняется определенная задача. В конце конвейера (конвейера) одновременно выполняется только одно транспортное средство (инструкция). Параллелизм смещен, а не синхронизирован.
Какие инструкции приведены здесь?
Каждая инструкция является машинным кодом.
Другими словами, 1 инструкция FMA преобразуется в пару операций. Я прав?
Нет, одна инструкция соответствует одной операции.