Конференция "Прочее" » Устройство процессоров
 
  • ProgRAMmer Dimonych © (21.09.08 16:25) [0]
    В вузе преподаватель на лекциях неоднократно повторял, что вычитание числа в процессорах для упрощения их устройства реализуется через сложение с обратным. Звучало также, что (опять же для упрощения процессора) используется операция потактового умножения, т.е. на каждое промежуточное произведение (первый множитель на текущую цифру второго множителя) выполняется по 2 такта: сложение и сдвиг.

    У меня есть сомнения в истинности этих утверждений (например, продолжительность умножения в тактах не зависит от разрядности операндов). Подскажите, плз, где почитать про такие особенности реализации. Желательно - из первоисточников (Intel, AMD). За прямые ссылки буду особенно благодарен.
  • vrem (21.09.08 16:42) [1]
    в описании ассемблера для конкретного процессора обычно указывается как происходит умножение и остальные операции - div и т.д., сколько тактов и что конкретно происходит
  • ProgRAMmer Dimonych © (21.09.08 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 © (21.09.08 18:10) [3]
    > продолжительность умножения в тактах не зависит от разрядности операндов

    Поскольку у всех более-менее современных ЦП наличествует конвейерная архитектура, то 1 такт != 1 моп, т.к. сложные операции всегда распараллеливаются по нескольким конвейерам.
    Более того, байт/слово умножаются точно также как и двойные слова, ибо они сначала тупо дополняются до двойного. Посудите сами, рентабельно ли предусматривать отдельную последовательность команд для умножения каждого из типов?
  • БарЛог © (21.09.08 18:18) [4]
    преподаватели в ВУЗах часто врут :)
  • Правильный$Вася (21.09.08 18:47) [5]

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

    сведения 70х годов
  • tesseract © (21.09.08 19:31) [6]

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


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


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


    Для AMD справедливо intel, по жизни в 16 битах протормаживал после Pentium Pro.
  • blackman © (21.09.08 19:34) [7]
    Обзор микроархитектур современных десктопных процессоров
    http://www.ixbt.com/cpu/cpu-microarchitecture-part-1.shtml
  • Pavia © (22.09.08 02:29) [8]

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

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

    Что касается умножения то оно занимает фиксированное число тактов в большинстве случиев.
    Вот деление оно занисает не фиксированное число тактов.
  • Pavia © (22.09.08 02:33) [9]

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

    Что касается Intel то информация о тактах находиться в pdf Про оптимизацию.
    ADD И SUB (сложение и вычитание) занимают по такту.
 
Конференция "Прочее" » Устройство процессоров
Есть новые Нет новых   [134442   +15][b:0][p:0]