Почему процессор MIPS имеет 32 регистра в файле регистра? Может быть больше или меньше? Как это повлияет, если мы изменим размер файла регистра?
Почему MIPS CPU имеет 32 регистра? [закрытый]
3 ответа
MIPS-это архитектура "RISC" или "load-store".
оперативная память используется так же быстро, как процессоры. Таким образом, люди будут писать программы, которые будут использовать оперативную память в качестве промежуточного или временного хранения. Ранние процессоры имели только несколько регистров из - за этого (т. е. 6502, Z80-6502 имели только 3 регистра общего назначения. Некоторые процессоры, такие как TMS9900, фактически использовали ОЗУ в качестве регистров). Это заставило процессоры использовать меньше транзисторов, что означает, что они были дешевле, легче получить хорошие урожаи, легче развиваться (нет CAD-основанный дизайн обломока в 70's...)
оперативная память так быстро, как процессор перестал быть правдой около 1985 года или около того, и только ухудшилось.
RISC пришел к тому, чтобы частично решить эту проблему (это было до того, как кэш процессора был обычным или большим, как сегодня) - имея кучу регистров, медленной оперативной памяти можно избежать много времени для промежуточных результатов расчетов и тому подобное.
сокращение доступных регистров означает, что для этого он должен чаще переходить на более медленную оперативную память цель.
Я не совсем уверен, почему 32 был выбран в качестве " сладкого пятна "-кроме 5 бит, и я знаю, что опкоды MIPS имеют 3 5 - битных поля, что означает, что их легко декодировать (еще один атрибут философии" RISC") - и это действительно 31, поскольку первый регистр всегда возвращает 0.
в системе с переименованием регистров можно изменять количество физических регистров и влиять только на производительность.
но вы не можете очень число имен регистра без создания совершенно новой архитектуры. Попробуйте удалить некоторые имена, и программы, которые использовали эти имена не удастся. Попробуйте добавить несколько имен, и 5-битной кодировки уже недостаточно, чтобы описать их все.
вы можете попробовать использовать трюки, как префиксы команд, чтобы расширить набор команд включите расширенные инструкции, которые принимают несколько или разные имена, сохраняя при этом старые кодировки нетронутыми для обеспечения обратной совместимости. Я не знаю, кто делает это с MIPS, но AMD64 aka EM64T aka x86_64 использовал подход "расширить с (в основном) обратной совместимостью" на основе x86.
Это не обязательно, но это хороший компромисс с другими дизайнерскими решениями.
Итак, во-первых, длина инструкции в MIPS составляет 32 бита(большинство MIPS, есть 64-разрядная версия). (Вы можете увидеть много деталей, как он ломается здесь). Во многих инструкциях MIPS необходимо предоставить три регистра, скажем, два источника и одно назначение (R4=r2+r4, например). Архитектура MIPS позволяет 5 битам определять каждый из тех регистров, и 32-максимальное число может представлять с пятью битами, поэтому нет смысла давать вам больше регистров, к которым вы не можете получить доступ.
Если MIPS позволяет выбрать регистр в 6 битах, то можно использовать до 64 различных регистров, но эти дополнительные биты должны были бы откуда-то исходить, возможно, за счет сокращения числа операций или режимов адресации.
есть и другие подходы, некоторые процессоры использовать перевод, который в основном говорит: "У меня есть эти 32 регистра, которые я использую прямо сейчас, но у меня также есть эта специальная инструкция SWITCH, которая позволяет мне вытащить эти другие 32 регистра, чтобы использовать некоторое время, прежде чем переключиться обратно" это удобно для некоторых приложений, но концептуально сложно для некоторых других.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]