Изучаете MIPS как второй язык ассемблера? - PullRequest
3 голосов
/ 18 марта 2009

Я знаю сборку x86 (и работал с FPGA и т. Д.), Никогда не писал для RISC, у меня есть возможность пройти курс MIPS, но я занят, как есть, поэтому мой вопрос, Я знаю, что каждая вещь, которую я изучаю, выгодна в некотором роде, но действительно, насколько выгодно? (Я энтузиаст низкого уровня, но это обязательно?)

(мне известно о mips-is-it-важно , но я чувствую, что мой случай немного отличается, поскольку я уже знаю какую-то сборку)

Спасибо.

Ответы [ 7 ]

5 голосов
/ 18 марта 2009

Одна интересная вещь о MIPS заключается в том, что вам приходится управлять буфером перевода (TLB) вручную. Вам не нужно делать это с x86 (или большинством других ISA, которые я запрограммировал). Таким образом, он RISCier, чем другие процессоры RISC. Многие сетевые устройства и устройства хранения данных имеют встроенный процессор MIPS. Стартап, над которым я работал в начале этого десятилетия, сделал 16-ядерный процессор MIPS с ускорителями шифрования (как два сопроцессора). Этот дизайн был приобретен Juniper Networks и используется в их адаптивных сервисах PIC в их маршрутизаторах.

Итак, как уже говорили другие, MIPS - довольно хороший пример RISC ISA, и он все еще получает множество побед в дизайне. Я думаю, что это полезно учиться.

Мне показалось, что первое издание следующей книги - хороший способ выучить ее:

http://www.amazon.com/Second-Morgan-Kaufmann-Computer-Architecture/dp/0120884216/ref=sr_1_1?ie=UTF8&s=books&qid=1237328559&sr=1-1

2 голосов
/ 18 марта 2009

Я думаю, что изучение MIPS (по крайней мере, базового) не так уж сложно, также есть симулятор SPIM , который вы можете использовать для наблюдения за выполнением кода. Если вам нравится низкоуровневое программирование, стоит попробовать.

2 голосов
/ 18 марта 2009

Это, конечно, не необходимость , но это хороший пример архитектуры RISC. Добавьте к этому архитектуру IBM 360 (честно!), И вы получите достаточно хорошее представление о наборе нормальных наборов инструкций.

1 голос
/ 21 марта 2009

Один из моих занятий заставил нас выучить ассемблерный язык MIPS. Ну, технически ... это была наша собственная архитектура, основанная на MIPS. Вывод, сделай это. Знание сборки помогло мне до бесконечности, хотя я ненавижу работать так низко с металлом.

1 голос
/ 18 марта 2009

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

Однако, если это просто программирование на MIPS, и у вас уже есть дескриптор сборки x86 и концепции низкоуровневого программирования, я бы сказал, перейдите к классу. Сэкономьте время и деньги и проведите выходные или около того, балуясь MIPS, используя SPIM , на что указал schnaader.

Также помните, что вы недостаточно изучили этот материал, если вы никогда не писали рекурсивную функцию в ассемблере.

1 голос
/ 18 марта 2009

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

Если бы это был такой класс, я бы сказал, что это было бы очень ценно. Я обнаружил, что знания из этого класса невероятно полезны для понимания вещей в моем классе ОС (виртуальная память / разбиение на страницы / кэш, прерывания ...), а затем для понимания того, как JVM работает с байт-кодом. Понимание того, как сборка отображается на машинный код, отображается на мультиплексоры, ALU и регистры, сделало много вещей, которые я в значительной степени считал магическими перед тривиальным и простым для понимания.

В противном случае, это просто добавление еще одного набора инструкций к вашему поясу инструментов, и MIPS может не подходить для этого. Это очень легко / просто / регулярно по сравнению с x86, поэтому у вас не должно быть особых проблем с классом. Ценный, хотя? Вероятно, вы могли бы поднять его довольно легко, не посещая занятия, если вы достаточно хорошо разбираетесь в сборке и по какой-то причине вам это нужно.

1 голос
/ 18 марта 2009

Другой вопрос имел хорошее обоснование все более устаревшей архитектуры: само обучение сборке само по себе полезно. В вашем случае это не относится.

Я бы рассмотрел курс только в том случае, если он уже предполагает знание ассемблера (иначе вы потратите много времени на повторение основных понятий). В противном случае вам лучше провести время с чем-то более актуальным (а это вряд ли будет другим ассемблером, если только вы не ожидаете скорой работы над конкретным процессором (семейством).

Почему бы не узнать что-то новое (например, функциональное программирование).

...