学习MIPS作为第二种汇编语言?

时间:2009-03-17 21:19:10

标签: mips low-level

我知道x86汇编(并且已经使用过FPGA等),从未为RISC写过,我有机会参加MIPS课程, 但是我很忙,所以我的问题是, 我知道我所学到的每一件事在某种程度上都是有益的, 但真的,有多大益处? (我是一个低级别的热情,但这是必须的吗?)

(我知道mips-is-it-important,但我觉得我的情况略有不同,因为我已经知道某种程序集了)

感谢。

7 个答案:

答案 0 :(得分:5)

MIPS的一个有趣之处在于您必须手动管理Translation Lookaside Buffer(TLB)。您不必使用x86(或我编程的大多数其他ISA)。这样,它比其他RISC CPU更好。很多网络和存储设备都嵌入了MIPS cpu。我在这个十年的早期工作的初创公司做了一个带有加密加速器的16核MIPS CPU(作为两个协处理器)。该设计由瞻博网络购买,用于其路由器中的自适应服务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

答案 1 :(得分:2)

肯定不是必须,但它是RISC-ish架构的一个很好的例子。再加上IBM 360体系结构(诚实!),您对普通指令集的范围非常了解。

答案 2 :(得分:2)

我认为学习MIPS(至少是基本的)并不难,还有the SPIM simulator可以用来观看代码运行。如果您喜欢低级编程,那值得一试。

答案 3 :(得分:1)

other question对于越来越过时的架构有充分的理由:学习装配本身就很有用。在你的情况下不适用。

我会考虑这个课程,只要它已经假设一个汇编程序的知识(否则你将花费大量时间重复基本概念)。否则你可能会更好地花时间处理更相关的事情(这不太可能是另一个汇编程序,除非你很快就会对特定的处理器(系列)有很高的期望。

为什么不学习新东西(例如函数式编程)。

答案 4 :(得分:1)

当我在学校时(BS CS Michigan Tech 2008),MIPS组装(在SPIM上运行)在所需的“计算机体系结构简介”课程中讲授,该课程还涵盖了不同类型的体系结构,缓存,DMA等等。我们还学习了逻辑门和动态/静态存储器是如何用低级元件构建的基础知识,例如二极管,电容器和晶体管(我们没有深入研究它;这是一个CS类)。我们使用逻辑仿真软件(基本上是AND / OR /等门,你可以拖放到网格上并连接在一起)构建一个加法器,一个ALU,最后给出一个非常简单的16位RISC处理器给出一个机器代码规范,汇编程序,示例程序和示例输出。

如果是那种类,我会说它会非常有价值。我发现该类中的知识非常有用,可以帮助我理解OS类中的内容(虚拟内存/分页/缓存,中断......),以及后来了解JVM如何处理字节码。了解程序集如何映射到机器代码映射到多路复用器以及ALU和寄存器,这些很多东西在我琐碎且容易理解之前就已经很神奇了。

否则,这只是为您的工具带添加另一个指令集,MIPS可能不适合。与x86相比, 非常简单/直接/常规,所以你不应该在课上遇到太多麻烦。但是有价值吗?如果你对装配很满意并且出于某种原因需要它,你可以很容易地拿起它而不需要上课。

答案 5 :(得分:1)

如果你的低级爱好者可能是值得的,但是你可以在周末自学mips,所以我想这个课程将更多只是在mips编程。如果它是使用mips的计算机硬件理论课程,那么我认为值得你花时间。

然而,如果它只是MIPS编程并且你已经掌握了x86程序集和低级编程的概念,我会说传递给类。节省时间和金钱,花一个周末左右使用SPIM搞乱MIPS,schnaader指出。

另外请记住,如果你从未在汇编中编写过递归函数,那么你还没有充分探索过这些东西。

答案 6 :(得分:1)

我的一个课程迫使我们学习MIPS汇编语言。嗯,从技术上讲......这是我们自己的定制架构,但很大程度上来自MIPS。结论,做到这一点。知道装配无限期地帮助了我,尽管我讨厌在低温下工作。