Каково значение инструкции CMOV CPU?

Ubuntu 10.10 отказался от поддержки процессоров i586 и меньшего размера, а также процессоров i686, которые не поддерживают инструкцию CMOV (условное MOVE, AFAIK).

Что особенного в команде CMOV? Он даже имеет собственный флаг в строке flags : /proc/cpuinfo.

6
задан 11 October 2010 в 04:18

22 ответа

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 26 May 2018 в 01:09
  • 1
    Ах, как и условные обозначения в ARM и архитектурах ia64, в этом случае применяется только к команде перемещения. Спасибо. – ΤΖΩΤΖΙΟΥ 14 October 2010 в 05:10
  • 2
    @ ΤΖΩΤΖΙΟΥ: См. Также blueraja.com/blog/285/… – BlueRaja - Danny Pflughoeft 21 December 2011 в 06:15

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 25 July 2018 в 23:08

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 27 July 2018 в 02:55

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 31 July 2018 в 11:19

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 31 July 2018 в 12:19

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 2 August 2018 в 04:28

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 4 August 2018 в 21:01

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 6 August 2018 в 04:32

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 7 August 2018 в 22:42

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 10 August 2018 в 10:48

Инструкция CMOV представляет собой заданную (или условную) команду перемещения. Он объединяет инструкцию ветвления и перемещения в один код операции.

Инструкция CMOV полезна в оптимизации компилятора, поскольку она помогает удалить некоторые из команд условного перехода из кода. Это важно в современных суперскалярных процессорах, потому что многие команды находятся в полете и выполняются параллельно, а инструкция условного перехода затрудняет предсказать, должен ли выполняться код или нет, пока ветвь не будет разрешена.

5
ответ дан 13 August 2018 в 17:22
  • 1
    Ах, как и условные обозначения в ARM и архитектурах ia64, в этом случае применяется только к команде перемещения. Спасибо. – ΤΖΩΤΖΙΟΥ 14 October 2010 в 05:10
  • 2
    @ ΤΖΩΤΖΙΟΥ: См. Также blueraja.com/blog/285/… – BlueRaja - Danny Pflughoeft 21 December 2011 в 06:15

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 26 May 2018 в 01:09
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 25 July 2018 в 23:08
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 27 July 2018 в 02:55
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 31 July 2018 в 11:19
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 31 July 2018 в 12:19
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 2 August 2018 в 04:28

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 4 August 2018 в 21:01

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 6 August 2018 в 04:32

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 7 August 2018 в 22:42

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 10 August 2018 в 10:48

Когда исходный код скомпилирован для архитектуры 686 с gcc и флагом -march, gcc иногда генерирует объектный код, который содержит инструкцию CMOV. Это потому, что CMOV был инструкцией, которая была оригинальной архитектурой 686, выпущенной 15 лет назад.

Несколько процессоров, которые утверждают, что совместимы с 686, не поддерживают эту инструкцию. Таким образом, нужно много работать, чтобы справиться с несколькими чипами, которые не поддерживают эту стандартную инструкцию, которая существует уже более 15 лет и является частью оригинальной архитектуры 686. Команда ядра Ubuntu имеет ограниченное количество времени и решила, что уже не стоит тратить время на поддержку, предположительно, 686 совместимых процессоров, которые за последние 15 лет не смогли включить эту инструкцию, которая является частью набора инструкций ядра 686 .

Нет ничего особенного в самой команде CMOV, кроме того, что она не была инструкцией в архитектуре pre-i686 (i486, i586 и т. д.) и что некоторые якобы совместимые с i686 чипы не имеют инструкции.

5
ответ дан 13 August 2018 в 17:22
  • 1
    Очень информативно. Где я могу получить подробную информацию о том, какой из так называемых чипов i686 не поддерживает это? Любая ссылка на сайт команды ядра Ubuntu, который имеет больше информации (например, что может сделать пользователь / упаковщик, чтобы справиться с этим)? – koushik 11 October 2010 в 10:30
  • 2
    koushik - этот журнал обсуждения из IRC должен ответить на некоторые из ваших вопросов - irclogs.ubuntu.com/2010/06/18/%23ubuntu-kernel.html#t14:16 – Dennis Sheil 11 October 2010 в 12:36
  • 3
    Спасибо, Деннис. Я все еще чувствую, что в этом есть что-то еще, на основе этой статьи , и я цитирую: «Инструкции CMOV, сильно используемые в оптимизации компилятора». Если sb else не придумает что-то более подробное, укажите эту ссылку в своем ответе, и я соглашусь с ней. – ΤΖΩΤΖΙΟΥ 11 October 2010 в 14:27

Другие вопросы по тегам:

Похожие вопросы: