最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

32位PowerPC常用指令集总结

IT圈 admin 28浏览 0评论

2024年5月6日发(作者:衅沈然)

32位PowerPC常用指令集总结

第一部分 PowerPC 精简指令集计算机(RISC)简介

PowerPC 体系结构是一种精减指令集计算机(Reduced Instruction Set Computer,

RISC)体系结构,定义了 200 多条指令。PowerPC 之所以是 RISC,原因在于大部分指

令在一个单一的周期内执行,而且通常只执行一个单一的操作(比如将内存加载到寄存器,

或者将寄存器数据存储到内存)。

PowerPC 体系结构分为三个级别(或者说是“book”)。通过对体系结构以这种方

式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实

现间的代码兼容性。

Book I. 用户指令集体系结构(Power ISA User Instruction Set Architecture)

定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指

令,为大多数程序所用。

Book II. 虚拟环境体系结构(Power ISA Virtual Environment Architecture)

定义了常规应用软件要求之外的附加的用户级功能,比如高速缓存管理、原子操作和

用户级计时器支持。虽然这些操作也是非特权的,但是程序通常还是通过操作系统调用来

访问这些函数。

Book III. 操作环境体系结构(Power ISA Operating Environment Architecture)

定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权

寄存器访问、特权计时器访问的函数。Book III 中详细说明了对各种系统服务和功能的直

接硬件支持。

由于我目前手上的开发板是基于e600内核,所以我在学习PowerPC指令集的过程中,

顺便总结了e600内核常用的指令集,如果大家发现我总结的指令集有错误或者不准确的

地方,欢迎留言指出来,O(∩_∩)O~

第二部分 e600指令集

飞思卡尔的e600内核实现了booke内核构架中64位指令集的中的32位指令(即

在e600的32位寄存器中,第0位相当于booke中的64寄存器的第32位,第31位相

当于booke中64寄存器的第63位),E600内核采用大端编码方式,指令的第0位是

MSB(Most Significant Bit)位,第31位是LSB(Least Significant Bit)。

e600内核指令的高6位字段(第0-5位)被称为OPCD字段(Primary Opcode Field),

根据OPCD字段的不同,PowerPC的指令集分为以下几类。

2.1 I-form指令格式

该类是无条件转移指令。

0-5 6-29 30 31

OPCD LI AA LK

2024年5月6日发(作者:衅沈然)

32位PowerPC常用指令集总结

第一部分 PowerPC 精简指令集计算机(RISC)简介

PowerPC 体系结构是一种精减指令集计算机(Reduced Instruction Set Computer,

RISC)体系结构,定义了 200 多条指令。PowerPC 之所以是 RISC,原因在于大部分指

令在一个单一的周期内执行,而且通常只执行一个单一的操作(比如将内存加载到寄存器,

或者将寄存器数据存储到内存)。

PowerPC 体系结构分为三个级别(或者说是“book”)。通过对体系结构以这种方

式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实

现间的代码兼容性。

Book I. 用户指令集体系结构(Power ISA User Instruction Set Architecture)

定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指

令,为大多数程序所用。

Book II. 虚拟环境体系结构(Power ISA Virtual Environment Architecture)

定义了常规应用软件要求之外的附加的用户级功能,比如高速缓存管理、原子操作和

用户级计时器支持。虽然这些操作也是非特权的,但是程序通常还是通过操作系统调用来

访问这些函数。

Book III. 操作环境体系结构(Power ISA Operating Environment Architecture)

定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权

寄存器访问、特权计时器访问的函数。Book III 中详细说明了对各种系统服务和功能的直

接硬件支持。

由于我目前手上的开发板是基于e600内核,所以我在学习PowerPC指令集的过程中,

顺便总结了e600内核常用的指令集,如果大家发现我总结的指令集有错误或者不准确的

地方,欢迎留言指出来,O(∩_∩)O~

第二部分 e600指令集

飞思卡尔的e600内核实现了booke内核构架中64位指令集的中的32位指令(即

在e600的32位寄存器中,第0位相当于booke中的64寄存器的第32位,第31位相

当于booke中64寄存器的第63位),E600内核采用大端编码方式,指令的第0位是

MSB(Most Significant Bit)位,第31位是LSB(Least Significant Bit)。

e600内核指令的高6位字段(第0-5位)被称为OPCD字段(Primary Opcode Field),

根据OPCD字段的不同,PowerPC的指令集分为以下几类。

2.1 I-form指令格式

该类是无条件转移指令。

0-5 6-29 30 31

OPCD LI AA LK

发布评论

评论列表 (0)

  1. 暂无评论