Difference between revisions of "Power ISA"
Jump to navigation
Jump to search
(Adding history) |
(starting to add info on privilege levels) |
||
Line 43: | Line 43: | ||
|- | |- | ||
|v3.0B||Instruction introduced in the Power ISA Architecture Version 3.0B. | |v3.0B||Instruction introduced in the Power ISA Architecture Version 3.0B. | ||
+ | |} | ||
+ | |||
+ | == Privilege Levels == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |+Key to Privilege Classification of Instructions | ||
+ | !Code | ||
+ | !2.07 | ||
+ | !3.0B | ||
+ | !Description | ||
+ | |- | ||
+ | |P | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |a privileged instruction. | ||
+ | |- | ||
+ | |O | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |an instruction that is treated as privileged or nonprivileged (or hypervisor, for mtspr), depend- | ||
+ | ing on the SPR or PMR number. | ||
+ | |- | ||
+ | |PI | ||
+ | |style="background:#F99;vertical-align:middle;text-align:center;"|No | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |an instruction that is illegal in privileged state. | ||
+ | |- | ||
+ | |H | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |an instruction that can be executed only in hypervisor state | ||
+ | |- | ||
+ | |PH | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |style="background:#F99;vertical-align:middle;text-align:center;"|No | ||
+ | |a hypervisor privileged instruction if Category Embedded.Hypervisor is implemented; otherwise | ||
+ | denotes a privileged instruction. | ||
+ | |- | ||
+ | |M | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |style="background:#F99;vertical-align:middle;text-align:center;"|No | ||
+ | |an instruction that is treated as privileged or nonprivileged, depending on the value of the UCLE | ||
+ | bit in the MSR | ||
+ | |- | ||
+ | |U | ||
+ | |style="background:#F99;vertical-align:middle;text-align:center;"|No | ||
+ | |style="background:#9F9;vertical-align:middle;text-align:center;"|Yes | ||
+ | |an instruction that can be executed only in ultravisor state | ||
|} | |} | ||
Revision as of 23:03, 19 January 2018
Power ISA is the specification for how Power architecture processors are to behave. It dictates the machine instructions available, and exactly how they are to process given data.
There are two primary versions of the Power ISA that are of interest to PowerNV platforms:
History
The Power ISA evolved from the PowerPC ISA which in turn was an evolution of the POWER ISA used by POWER1 and POWER2 chips.
POWER ISA → PowerPC ISA → Power ISA
When the Power ISA 3.0B specification lists all available instructions, it specifically mentions what version of which architecture introduced the instruction; this gives a fairly quick history of the ISA itself:
Code | Explanation |
---|---|
P1 | Instruction introduced in the POWER Architecture. |
P2 | Instruction introduced in the POWER2 Architecture. |
PPC | Instruction introduced in the PowerPC Architecture prior to v2.00. |
v2.00 | Instruction introduced in the PowerPC Architecture Version 2.00. |
v2.01 | Instruction introduced in the PowerPC Architecture Version 2.01. |
v2.02 | Instruction introduced in the PowerPC Architecture Version 2.02. |
v2.03 | Instruction introduced in the Power ISA Architecture Version 2.03. |
v2.04 | Instruction introduced in the Power ISA Architecture Version 2.04. |
v2.05 | Instruction introduced in the Power ISA Architecture Version 2.05. |
v2.06 | Instruction introduced in the Power ISA Architecture Version 2.06. |
v2.07 | Instruction introduced in the Power ISA Architecture Version 2.07. |
v3.0 | Instruction introduced in the Power ISA Architecture Version 3.0. |
v3.0B | Instruction introduced in the Power ISA Architecture Version 3.0B. |
Privilege Levels
Code | 2.07 | 3.0B | Description |
---|---|---|---|
P | Yes | Yes | a privileged instruction. |
O | Yes | Yes | an instruction that is treated as privileged or nonprivileged (or hypervisor, for mtspr), depend-
ing on the SPR or PMR number. |
PI | No | Yes | an instruction that is illegal in privileged state. |
H | Yes | Yes | an instruction that can be executed only in hypervisor state |
PH | Yes | No | a hypervisor privileged instruction if Category Embedded.Hypervisor is implemented; otherwise
denotes a privileged instruction. |
M | Yes | No | an instruction that is treated as privileged or nonprivileged, depending on the value of the UCLE
bit in the MSR |
U | No | Yes | an instruction that can be executed only in ultravisor state |