Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.23;
Скачать: CL | DM;

Вниз

Устройство процессоров   Найти похожие ветки 

 
ProgRAMmer Dimonych ©   (2008-09-21 16:25) [0]

В вузе преподаватель на лекциях неоднократно повторял, что вычитание числа в процессорах для упрощения их устройства реализуется через сложение с обратным. Звучало также, что (опять же для упрощения процессора) используется операция потактового умножения, т.е. на каждое промежуточное произведение (первый множитель на текущую цифру второго множителя) выполняется по 2 такта: сложение и сдвиг.

У меня есть сомнения в истинности этих утверждений (например, продолжительность умножения в тактах не зависит от разрядности операндов). Подскажите, плз, где почитать про такие особенности реализации. Желательно - из первоисточников (Intel, AMD). За прямые ссылки буду особенно благодарен.


 
vrem   (2008-09-21 16:42) [1]

в описании ассемблера для конкретного процессора обычно указывается как происходит умножение и остальные операции - div и т.д., сколько тактов и что конкретно происходит


 
ProgRAMmer Dimonych ©   (2008-09-21 17:01) [2]

> vrem   (21.09.08 16:42) [1]

В Intel 64 and IA-32 Architectures Software Developer"s Manual. Volume 2B: Instruction St reference, N-Z ничего не сказано о том, что используется сложение вместо вычитания. Есть упоминание о том, что "The SUB instruction performs integer subtraction".

По умножению в имеющихся у меня PDF-ках Intel"а я ничего о продолжительности выполнения не нашёл. В "левом" справочнике есть такая таблица, там указаны (для Pentium"а) 11 тактов на 8- 16-битные операнды и 10 тактов на 32-битные. Т.е. от разрядности, вроде как не зависит (по крайней мере, в последних моделях).

Но всё вышеперечисленное - это лишь косвенные подтверждения. Можно ли им доверять и использовать их в качестве аргументов в споре?


 
Renegat ©   (2008-09-21 18:10) [3]

> продолжительность умножения в тактах не зависит от разрядности операндов

Поскольку у всех более-менее современных ЦП наличествует конвейерная архитектура, то 1 такт != 1 моп, т.к. сложные операции всегда распараллеливаются по нескольким конвейерам.
Более того, байт/слово умножаются точно также как и двойные слова, ибо они сначала тупо дополняются до двойного. Посудите сами, рентабельно ли предусматривать отдельную последовательность команд для умножения каждого из типов?


 
БарЛог ©   (2008-09-21 18:18) [4]

преподаватели в ВУЗах часто врут :)


 
Правильный$Вася   (2008-09-21 18:47) [5]


> для упрощения процессора

сведения 70х годов


 
tesseract ©   (2008-09-21 19:31) [6]


> выполняется по 2 такта: сложение и сдвиг.


Число переводиться в обратный код и подаёться на компаратор. За один такт АЛУ всё просиходит.


> байт/слово умножаются точно также как и двойные слова,


Для AMD справедливо intel, по жизни в 16 битах протормаживал после Pentium Pro.


 
blackman ©   (2008-09-21 19:34) [7]

Обзор микроархитектур современных десктопных процессоров
http://www.ixbt.com/cpu/cpu-microarchitecture-part-1.shtml


 
Pavia ©   (2008-09-22 02:29) [8]


> В вузе преподаватель на лекциях неоднократно повторял, что
> вычитание числа в процессорах для упрощения их устройства
> реализуется через сложение с обратным. Звучало также, что
> (опять же для упрощения процессора) используется операция
> потактового умножения, т.е. на каждое промежуточное произведение
> (первый множитель на текущую цифру второго множителя) выполняется
> по 2 такта: сложение и сдвиг.
>
> У меня есть сомнения в истинности этих утверждений (например,
>  продолжительность умножения в тактах не зависит от разрядности
> операндов). Подскажите, плз, где почитать про такие особенности
> реализации. Желательно - из первоисточников (Intel, AMD).
>  За прямые ссылки буду особенно благодарен.

В первых процессорах так оно и было.
Возьми Агнера Фога и посмотри сколько тиков занимает команда. Или на сайте интел и AMD.

Что касается умножения то оно занимает фиксированное число тактов в большинстве случиев.
Вот деление оно занисает не фиксированное число тактов.


 
Pavia ©   (2008-09-22 02:33) [9]


> По умножению в имеющихся у меня PDF-ках Intel"а я ничего
> о продолжительности выполнения не нашёл.

Что касается Intel то информация о тактах находиться в pdf Про оптимизацию.
ADD И SUB (сложение и вычитание) занимают по такту.



Страницы: 1 вся ветка

Текущий архив: 2008.11.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
15-1222095887
Городской Шаман
2008-09-22 19:04
2008.11.23
Опрос зарплата и работа.


2-1224140322
zsergey
2008-10-16 10:58
2008.11.23
Как корректно перевести большое шестнадцатеричное число в целое?


15-1221984481
Кое кто
2008-09-21 12:08
2008.11.23
Браузер Maxton


8-1187006365
Dio
2007-08-13 15:59
2008.11.23
Изменить уровень звука


1-1202327820
Urvin
2008-02-06 22:57
2008.11.23
Замена TListView