Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-1209896645
Vlad Oshin
2008-05-04 14:24
2008.11.23
select top @N


2-1224145722
SpiderWho
2008-10-16 12:28
2008.11.23
Отладка DLL


2-1223841694
Vayrus
2008-10-13 00:01
2008.11.23
Проблема с распаковкой архива


2-1223795220
Fox-22
2008-10-12 11:07
2008.11.23
Можно использовать TDBComboBox как обычный?


15-1222233440
Slider007
2008-09-24 09:17
2008.11.23
С днем рождения ! 24 сентября 2008 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский