Когда я учился в школе (BS CS Michigan Tech 2008), сборка MIPS (работающая на SPIM) преподавалась в обязательном классе «Введение в архитектуру компьютера», который также охватывал различные типы архитектур, кеш, DMA и т. Д. , Мы также узнали о том, как логические элементы и динамическая / статическая память строятся из компонентов более низкого уровня, таких как диоды, конденсаторы и транзисторы (мы не очень углубились в это; это был класс CS). Мы использовали программное обеспечение для логического моделирования (в основном вентили AND / OR / etc., Которые вы могли перетаскивать на сетку и соединять вместе) для создания сумматора, ALU и, в конечном итоге, очень простого 16-битного RISC-процессора с учетом спецификации машинного кода, ассемблер, примеры программ и пример вывода.
Если бы это был такой класс, я бы сказал, что это было бы очень ценно. Я обнаружил, что знания из этого класса невероятно полезны для понимания вещей в моем классе ОС (виртуальная память / разбиение на страницы / кэш, прерывания ...), а затем для понимания того, как JVM работает с байт-кодом. Понимание того, как сборка отображается на машинный код, отображается на мультиплексоры, ALU и регистры, сделало много вещей, которые я в значительной степени считал магическими перед тривиальным и простым для понимания.
В противном случае, это просто добавление еще одного набора инструкций к вашему поясу инструментов, и MIPS может не подходить для этого. Это очень легко / просто / регулярно по сравнению с x86, поэтому у вас не должно быть особых проблем с классом. Ценный, хотя? Вероятно, вы могли бы поднять его довольно легко, не посещая занятия, если вы достаточно хорошо разбираетесь в сборке и по какой-то причине вам это нужно.