Electronic Joint Business

Solution for E-Business

Moxie

将 GCC 工具链迁移到 Moxie 处理器上 (一)— Moxie 处理器架构

Moxie 是一种通用的、采用混合编码(Bi-Endian,也成为大小端) 和加载/存储架构的处理器。所谓加载/存储架构也称为寄存器到寄存器架构。在该架构中,所有算术运算都要从可寻址寄存器中获得操作数,并将生成的结果送往可寻址寄存器。存储器和寄存器间的通信需要通过独立的”加载”和”存储”操作。加载/存储概念是 RISC 体系结构背后的基本理念之一。

Moxie 处理器有 16 个 32 位通用寄存器和完整的指令集体系架构(ISA — Instruction Set Architecture) ,它最早的设计目的是为 GNU 工具链提供一个假想目标(target),后来演化出许多监管级别指令(supervisor level)以满足运行诸如 RTEMS 这类实时操作系统(RTOS)的需要。1

大多数 moxie 指令长度是 16 位,再加上额外的 16 位或 32 位立即数,最终生成了 32 位或 48 位指令。之所以在固定宽度的 RISC 实现中混入了可变宽度指令架构,是为了优化指令内存带宽,这是影响许多 FPGA 应用性能的关键制约因素。

Moxie 寄存器
Moxie 定义了以下 16个 32位寄存器:

  • $fp 帧指针
  • $sp 栈指针
  • $r0 – $r13 14个通用寄存器

此外,Moxie 处理器还定义了一系列特殊寄存器(保留数目 256),这些寄存器的值只能通过 gsr (Get Special Register) 和 ssr (Set Special Registers) 等指令来访问, 下面列出一些特殊寄存器的用途:

>>> 阅读全文

 

,