Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

За сколько тактов выполняются основные арифметические операции на современных компьютерах?

Godric Мыслитель (8691), закрыт 13 лет назад
Интересуют операции сложения, вычетания, умножения, деления и может быть возведения в степень.

От чего вообще зависит этот параметр? Зависит ли он от мощности процессора, его разрядности, или эта величина постоянная?

А если величина большая или маленькая есть разница? Целая или вещественная?

Если есть, дайте ссылку на книгу или статью, только современную. Можно на английском.
Лучший ответ
Temur Знаток (270) 13 лет назад
Для современных компьютерных процов с полным набором команд, количество тактов на операцию не является постоянной величиной - если команды/данные в кэш 2 то время одно, если во внешней памяти - то другое. Может так получиться, что ваша команда придется на момент какого-нибудь прерывания и будет отложена. Кроме того современные процы имеют встроенную многопоточность - те разные задачи выполняются различными участками проца. Я думаю, в идеале команды типа Имул, Адд, Суб будут выполнены за 3 или более такта.
Остальные ответы
rus lan Знаток (318) 13 лет назад
В силу высокой производительности современных компьютеров, такие простые операции как сложение, вычитание, умножение, деление проводятся за один такт.
GodricМыслитель (8691) 13 лет назад
Ссылка есть?
rus lan Знаток (318) нет
GodricМыслитель (8691) 13 лет назад
Ссылка есть?
К.Знаток (270) 5 лет назад
Деление выполняется существенно медленнее остальных операций из-за невозможности внутреннего распараллеливания алгоритма.
Костя Кузнецов Мудрец (17143) 13 лет назад
ТС, у тебя каша в голове.

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

умножения, деления
за один или за несколько, см. также предыдущий текст

возведения в степень
нет такой операции

От чего вообще зависит этот параметр? Зависит ли он от мощности процессора, его разрядности, или эта величина постоянная?
От архитектуры процессора, программы в которой вызывается операция и т. д. Даже на асме не напишешь программы, где за одну команду (не такт процессора (!!)) будут умножаться два произвольных числа.

или вещественная?
лолшто?

Более-менее точно могу сказать, что быстро работают только операции сдвига, инкремент\декремент, xor быстрее обычного обнуления и т. д. Да и то - надо смотреть по конкретному процессору и компилятору.

Если есть, дайте ссылку на книгу или статью, только современную. Можно на английском.
Весь гугл пред тобой. Копай в сторону ассемблера, дизассемблирования, машинных команд процессора, архитектур и т. д. А мне сейчас лень это искать.
DeNzIlОракул (96121) 13 лет назад
разложил в доль и поперёк
молодец
ВРЕМЯВОДА Гуру (2617) 13 лет назад
вся цифровая хрень построена на логике и оптимизации- чтобы сложить два числа компьютеру нужно" взять в руки " одно число затем другое только потом сложить- сколько тактов? - правильно- три
Damir Aliev Ученик (105) 13 лет назад
>>Зависит ли он от мощности процессора, его разрядности
Нед, 1 такт это 1 такт. 3 Ггц это 3 миллиарда тактов. Зависит еще и от архитектуры проца, для х86 это одно, для АРМ эта цифра будет другая. Атлон тоже может выполнять некоторые операции иначе.

Некоторые операции могут выполняться параллельно, т. е. обе операции за 1 (или сколько там они) такт
Damir AlievУченик (105) 13 лет назад
http://www.wasm.ru/forum/viewtopic.php?id=10734
Damir AlievУченик (105) 13 лет назад
http://develab.narod.ru/asm/v15.htm
DEXTER!. Гуру (2604) 13 лет назад
Насколько я помню из курса программирования такие данные:
сложение - 4 такта
вычитание 5 тактов
умножение 8 тактов
деление 11 тактов
деление на 2 (обрабатывается препроцессором) - 1 такт, также умножение;
Эти данные для чисел <=32 бита (для x86) размера
Виктор КадышевОракул (60799) 2 года назад
И как за такой бред кто-то мог поставить лайк?
Сложение и вычитание - это одинаковая команда.
Сложение 1 такт
Умножение 2 такта
Деление 140 тактов
Пользователь удален Высший разум (166127) 13 лет назад
Зависит от архитектуры процессора, программы
Михаил Шишканов Просветленный (31819) 13 лет назад
В общем тебе уже ответили.
Все зависит от самой микросхемы.
Будет микросхема в 1 такт - в 1 и выполнит.
Будет в несколько - в несколько выполнит.
Источник: интеллект и никаких ссылок
Похожие вопросы