Мы все знаем, что MIPS FPU имеет две точности, одну или двойную. Когда я посмотрел его в наборе инструкций, я нашел для одной и той же операции, инструкция для одинарной точности и двойной точности не отличается.Разница между инструкциями с одной и двойной точностью
Например, вот из MIPS Architecture For Programmers Volume II:, инструкции ADD.fmt
Независимо от того, является двойной или одинарной точностью, операнд и код функции является одинаковым. Как декодер знает, что это инструкция с одной или двойной точностью? Или любая скрытая информация в 5-битной области fmt? Я не могу найти никаких хороших ответов от Google, может кто-нибудь объяснить, как эта инструкция работает?
Область fmt в инструкции ADD.fmt является только 5-разрядной. Но в вашем ответе fmt содержит полностью 32-битный регистр. Является ли это fmt отдельным регистром или чем-то еще? Когда мы реализуем эту инструкцию, является ли аппаратное обеспечение двух разных этапов? Я имею в виду, что если FPU поддерживает двойную точность, тогда аппаратное обеспечение имеет двойную точность и независимо от того, какая инструкция является одиночной или двойной. –
Я написал «возможные ** значения **», а не битовые позиции. 5 бит - 0-31. – karatedog
@ShuaiyuJiang Я обновил ответ, чтобы избежать дальнейших путаниц. – karatedog