有谁知道一个网站,我可以在其中找到 32 位 MIPS 指令/操作码的列表,具有以下功能:

  • 清楚地区分实际操作码和汇编语言宏
  • 描述指令行为,包括取决于权限级别的差异。
  • 指示在哪个指令集修订版中引入/修订了指令(例如MIPS I、MIPS II、MIPS32 等)
  • 包括特权指令,例如系统调用。

我知道有许多网站记录了指令集的“部分”,主要用于教学目的。他们倾向于省略或仅部分描述浮点和特权指令。

如果您想知道,我正在查看 MIPS 处理器子集的 Verilog 代码,并试图弄清楚它在多大程度上符合任何真正的 MIPS 处理器的指令集!感谢您的指点。

有帮助吗?

解决方案

我只能部分回答这个问题:我会推荐 请参阅 MIPS 运行 作者:Dominic Sweetman,如果您还没有提到的话。我有这本书的第一版,现在是第二版。

  • 表 8.2 列出了每个操作码和预期行为,区分汇编器宏并列出它们分解为的指令。不幸的是,它不区分用户模式和内核模式。
  • 表 8.6 列出了引入每条指令的 ISA 级别,包括 LSI MiniRISC 等晦涩的变体
  • 系统调用出现在表中,但缺乏太多描述

第一版提到了内核。主管和用户权限级别,但没有讨论每个权限级别允许哪些操作。不知道第二版有哪些改动。

其他提示

好吧,我发现了一些东西!

MIPS 提供了一套“MIPS 32 参考手册”,其中引用了最新的标准化指令集(MIPS32v2): 这里

这些几乎包括所有内容,除了有关指令源自哪个版本的信息:-(

等一下...

康奈尔大学的此类网站 包括指向什么的链接 出现 是相同的手册,但实际上是 它的旧版本, , 和 第2卷 该旧版本的内容实际上包含有关首次引入说明的时间的信息。呜呼!

为什么 MIPS 会从修订后的文档中删除此信息?修订历史中似乎没有任何解释。

不包括指令描述,但 GNU 汇编器的源代码可能尽可能详细地说明了哪些指令在哪些特定 CPU 上可用。

得到 二进制工具 并查看 opcodes/mips-*.c

当前的指令集参考手册可在线免费获取: MIPS®架构II-A卷:MIPS32®指令集手册. 。该链接是修订版6.06 2016年12月15日。(IE。它记录了 MIPS32 版本 6).

它记录了所有用户和主管/内核模式指令以及所有浮点指令,详细记录了它们的机器代码编码,并通过操作部分显示了它们的作用。它仍然记录了 MIPS32 第 6 版中删除的所有指令。(MIPS32 Release 6 还移动了很多操作码,并且有详细记录)。


https://www.mips.com/products/architectures/mips32/ 获取最新版本。mips.com 有一个“经典内核”部分,但这似乎仍然只能追溯到 MIPS32,而不是历史的东西。


“可用性和兼容性”部分的示例 balc (分支和链接紧凑:没有分支延迟槽,GRP31 是隐式目的地,为分支释放 26 位 offset<<2):

此指令由版本 6 引入并要求。发布6指令 BALC 与预发行6指令相同的编码 SWC2. 。这 SWC2 指令已移至 COP2MIPS Release 6 中的主要操作码

或者为了 LDXC1 fd, index(base) (加载索引到浮点的双字)

该指令已在版本 6 中删除。自 MIPS64 Release 1 以来的所有 MIPS64 版本都需要。在 MIPS32 第 1 版中不可用。在MIPS32版本2和所有后续版本中,需要MIPS32。在需要时,无论何时存在FPU,无论是32位还是64位FPU,无论是32位还是64位FP寄存器模式(FIRF64 = 0或1,statusfr = 0或1)。


对于历史资料,我找到了 MIPS IV指令集修订版,1995年9月3日 在 cmu.edu 网页上。它列出了引入指令的时间,例如MIPS I 为 div, MIPS III 为 dmult 和其他 64 位指令,MIPS II 用于 ll / sc.

网站 描述 MIPS 指令集及其编码。但我不认为它是完整的。

米普斯 网站还提供有关各种内核的技术文档。
例如,我下载了 MIPS 4KE 内核的手册(文档#MD00103)“MIPS32® 4KE™ 处理器内核系列软件用户手册”,第 10 章包含指令集的详细说明。请注意,您必须注册才能访问这些文档。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top